--- a/.hgignore Thu Apr 04 14:37:19 2013 +0200
+++ b/.hgignore Tue Jun 04 22:28:12 2013 +0200
@@ -3,6 +3,7 @@
glob:moc_*.cxx
glob:qrc_*.cxx
glob:*.o
+glob:*.a
glob:*.qm
glob:Makefile
glob:bin
@@ -56,8 +57,8 @@
glob:project_files/Android-build/SDL-android-project/.*
glob:project_files/Android-build/out
glob:project_files/Android-build/Makefile.android
-glob:hedgewars-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug
-glob:hedgewars-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Release
+glob:hedgewars-build-desktop-Qt*
+glob:hedgewars-build-desktop-Qt*
glob:*.depends
glob:tools/build_windows_koda.bat
glob:share/hedgewars/Data/misc/hwengine.desktop
@@ -65,3 +66,5 @@
glob:_CPack_Packages/
glob:version_info.txt
glob:*.tar.*
+glob:*.or
+glob:*.res
\ No newline at end of file
--- a/.hgtags Thu Apr 04 14:37:19 2013 +0200
+++ b/.hgtags Tue Jun 04 22:28:12 2013 +0200
@@ -59,3 +59,4 @@
0000000000000000000000000000000000000000 0.9.18-release
0000000000000000000000000000000000000000 0.9.18-release
2fc02902c7cbf3c29bfe08a50e5f37983582b251 0.9.18-release
+1617149e01a4fa25637e2ab655d0287ef9c21b7c 0.9.19-release
--- a/CMakeLists.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -24,7 +24,7 @@
option(NOVIDEOREC "Disable video recording (off)" OFF)
#set this to ON when 2.1.0 becomes more widespread (and only for linux)
-option(SYSTEM_PHYSFS "Use system physfs (off)" OFF)
+option(PHYSFS_SYSTEM "Use system physfs (off)" OFF)
option(LIBENGINE "Enable hwengine library (off)" OFF)
option(ANDROID "Enable Android build (off)" OFF)
@@ -88,7 +88,7 @@
set(CPACK_PACKAGE_VERSION_MAJOR 0)
set(CPACK_PACKAGE_VERSION_MINOR 9)
set(CPACK_PACKAGE_VERSION_PATCH 19)
-set(HEDGEWARS_PROTO_VER 44)
+set(HEDGEWARS_PROTO_VER 45)
set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
set(required_clang_version 3.0)
@@ -198,8 +198,8 @@
if(NOT ${minimum_macosx_version} VERSION_EQUAL ${current_macosx_version})
if(minimum_macosx_version VERSION_EQUAL "10.4")
set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/")
- set(CMAKE_C_COMPILER "gcc-4.0")
- set(CMAKE_CXX_COMPILER "g++-4.0")
+ set(CMAKE_C_COMPILER "/Developer/usr/bin/gcc-4.0")
+ set(CMAKE_CXX_COMPILER "/Developer/usr/bin/g++-4.0")
else()
string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" sdk_version ${minimum_macosx_version})
set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX${sdk_version}.sdk/")
@@ -227,6 +227,10 @@
#set default flags values for all projects (unless MINIMAL_FLAGS is true)
if(NOT ${MINIMAL_FLAGS})
+ if(WINDOWS)
+ #this flags prevents a few dll hell problems
+ set(CMAKE_C_FLAGS "-static-libgcc ${CMAKE_C_FLAGS}")
+ endif(WINDOWS)
set(CMAKE_C_FLAGS "-pipe ${CMAKE_C_FLAGS}")
set(CMAKE_C_FLAGS_RELEASE "-w -Os -fomit-frame-pointer ${CMAKE_C_FLAGS_RELEASE}")
set(CMAKE_C_FLAGS_DEBUG "-Wall -O0 -g -DDEBUG ${CMAKE_C_FLAGS_DEBUG}")
@@ -241,25 +245,36 @@
set(CMAKE_CXX_FLAGS_DEBUG "-Wall -DDEBUG")
endif()
-#TODO: find out why we need this...
+
+#TESTING TIME
include(CheckCCompilerFlag)
+
+#check for noexecstack on ELF, should be set on Gentoo and similar
set(CMAKE_REQUIRED_FLAGS "-Wl,-z -Wl,noexecstack")
check_c_compiler_flag("" HAVE_NOEXECSTACK) #empty because we are testing a linker flag
if(HAVE_NOEXECSTACK)
list(APPEND pascal_flags "-k-z" "-knoexecstack")
- if(NOT ${MINIMAL_FLAGS})
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_REQUIRED_FLAGS}")
- endif()
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_REQUIRED_FLAGS}")
+endif()
+unset(CMAKE_REQUIRED_FLAGS)
+
+#check for ASLR and DEP security features on Windows
+#both supported in binutils >= 2.20, available since Vista and XP SP2 respectively
+set(CMAKE_REQUIRED_FLAGS "-Wl,--nxcompat -Wl,--dynamicbase")
+check_c_compiler_flag("" HAVE_WINASLRDEP) #empty because we are testing a linker flag
+if(HAVE_WINASLRDEP)
+ list(APPEND pascal_flags "-k--nxcompat" "-k--dynamicbase")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_REQUIRED_FLAGS}")
endif()
unset(CMAKE_REQUIRED_FLAGS)
#parse additional parameters
if(FPFLAGS OR GHFLAGS)
if(${allow_parse_args})
- message(${WARNING} "FPFLAGS and GHFLAGS are available only when using CMake >= 2.8")
- else()
separate_arguments(fpflags_parsed UNIX_COMMAND ${FPFLAGS})
separate_arguments(ghflags_parsed UNIX_COMMAND ${GHFLAGS})
+ else()
+ message(${WARNING} "FPFLAGS and GHFLAGS are available only when using CMake >= 2.8")
endif()
endif()
@@ -344,7 +359,7 @@
#physfs discovery
-if (${SYSTEM_PHYSFS})
+if (${PHYSFS_SYSTEM})
if (NOT PHYSFS_LIBRARY OR NOT PHYSFS_INCLUDE_DIR)
find_package(PhysFS)
endif()
@@ -410,5 +425,5 @@
endif(ANDROID)
endif(WEBGL)
-include(${CMAKE_MODULE_PATH}/CPackConfig.cmake)
+include(${CMAKE_MODULE_PATH}/cpackvars.cmake)
--- a/ChangeLog.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/ChangeLog.txt Tue Jun 04 22:28:12 2013 +0200
@@ -1,10 +1,45 @@
+ features
* bugfixes
+0.9.18 -> 0.9.19:
+ + New Freezer weapon - freezes terrain, water, hedgehogs, mines, cases, explosives
+ + Saucer can aim weapons and fire underwater
+ + Main graphical user interface overhaul
+ + Splashscreen on Windows *_*
+ + Up and down keys navigate in chat history
+ + Several commands from chat available
+ + Support hwplay:// scheme syntax
+ + Supply full revision and hash information in version tag
+ + Better set of options for driving engine
+ + Downloadable content can now be stored in packages for easy uninstall
+ + Lua scripts can load a sidecar overlay package of game resources
+ + Math improvements for better performance/reliability
+ + Smarter AI - now uses drill rocket accurately and is aware of barrels and dud mines. More aggressive in infinite attack, lua can tell to target specific hogs, such as in Mutant
+ + New fort, Steel Tower
+ + New theme, Fruit
+ + New hats - some national ones, Portal, harlequin, more animals...
+ + New maps based on StarBound. SB_Bones, SB_Crystal, SB_Grassy, SB_Grove, SB_Haunty, SB_Oaks, SB_Shrooms, SB_Tentacles
+ + Translation updates - Turkish, French, German, Japanese, Portuguese, Italian, Russian - Campaign french should work correctly now
+ + Theme object masks
+ + Easier weapon selection in shoppa. F1 will select from F5 if there are no weps in F1-F4
+ + Cleaver radius shrunk to improve usability on horizontal throws
+ + Map hog limit is now just a suggestion, not enforced
+ + Static map theme is now just the default, can be changed
+ + Themeable static maps (provide a mask.png without a map.png)
+ + Split seed with '|' to keep the land shape but change the hog placement
+ * You can now move out of the way when throwing a sticky mine or cleaver straight up
+ * Rope sliding should behave more like pre-0.9.18 again
+ * Forbid kicking on 1v1 matches
+ * Desync fixes
+ * Fixed fort mode
+ * Making very large maps now works properly with targeted weapons
+ * ParseCommand should be safe to use in Lua now, at any time
+ * Fixes to many weapons. Mudball, blowtorch, explosives, cluster bomb spread, portal.
+
0.9.17 -> 0.9.18:
+ 'A Classic Fairytale' Campaign
- + Video recorder (requires ffmpeg)
+ + Video recorder (requires ffmpeg/libav)
+ Cleaver weapon
+ AI is now aware of drowning and fall damage
+ AI learned how to use Sniper Rifle and Cake
--- a/QTfrontend/KB.h Thu Apr 04 14:37:19 2013 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
-
-#ifndef KB_H
-#define KB_H
-
-#include <QString>
-
-const ulong KBmsgsCount = 1;
-
-const QString KBMessages[KBmsgsCount] =
-{
- QT_TRANSLATE_NOOP("KB", "SDL_ttf returned error while rendering text, "
- "most propably it is related to the bug "
- "in freetype2. It's recommended to update your "
- "freetype lib.")
-};
-
-#endif // KB_H
--- a/QTfrontend/achievements.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/achievements.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/achievements.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/achievements.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/binds.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/binds.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/binds.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/binds.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/campaign.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/campaign.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -16,43 +16,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
-#include <QDir>
-#include <QFile>
-#include <QTextStream>
-#include <QPushButton>
-#include <QListWidget>
-#include <QStackedLayout>
-#include <QLineEdit>
-#include <QLabel>
-#include <QRadioButton>
-#include <QSpinBox>
-#include <QCloseEvent>
-#include <QCheckBox>
-#include <QTextBrowser>
-#include <QAction>
-#include <QTimer>
-#include <QScrollBar>
-#include <QDataWidgetMapper>
-#include <QTableView>
-#include <QCryptographicHash>
-#include <QSignalMapper>
-#include <QShortcut>
-#include <QDesktopServices>
-#include <QInputDialog>
-#include <QPropertyAnimation>
+#include "campaign.h"
+
+#include "hwconsts.h"
+
#include <QSettings>
-#include "campaign.h"
-#include "gameuiconfig.h"
-#include "hwconsts.h"
-#include "gamecfgwidget.h"
-#include "bgwidget.h"
-#include "mouseoverfilter.h"
-#include "tcpBase.h"
-
-#include "DataManager.h"
-
-extern QString campaign, campaignTeam;
QStringList getCampMissionList(QString & campaign)
{
--- a/QTfrontend/campaign.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/campaign.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -19,21 +19,8 @@
#ifndef CAMPAIGN_H
#define CAMPAIGN_H
-#include <QMainWindow>
-#include <QStack>
-#include <QTime>
-#include <QPointer>
-#include <QPropertyAnimation>
-#include <QUrl>
-#include <QNetworkReply>
-#include <QNetworkRequest>
-#include <QNetworkAccessManager>
-
-#include "netserver.h"
-#include "game.h"
-#include "ui_hwform.h"
-#include "SDLInteraction.h"
-#include "bgwidget.h"
+#include <QString>
+#include <QStringList>
QStringList getCampMissionList(QString & campaign);
unsigned int getCampProgress(QString & teamName, QString & campName);
--- a/QTfrontend/drawmapscene.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/drawmapscene.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/drawmapscene.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/drawmapscene.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/game.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/game.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -38,6 +38,13 @@
#include <QTextStream>
#include "ThemeModel.h"
+// last game info
+QList<QVariant> lastGameStartArgs = QList<QVariant>();
+GameType lastGameType = gtNone;
+GameCFGWidget * lastGameCfg = NULL;
+QString lastGameAmmo = NULL;
+TeamSelWidget * lastGameTeamSel = NULL;
+
QString training, campaign, campaignScript, campaignTeam; // TODO: Cleaner solution?
HWGame::HWGame(GameUIConfig * config, GameCFGWidget * gamecfg, QString ammo, TeamSelWidget* pTeamSelWidget) :
@@ -48,6 +55,10 @@
this->config = config;
this->gamecfg = gamecfg;
netSuspend = false;
+
+ lastGameCfg = gamecfg;
+ lastGameAmmo = ammo;
+ lastGameTeamSel = pTeamSelWidget;
}
HWGame::~HWGame()
@@ -228,6 +239,7 @@
SendQuickConfig();
break;
}
+ case gtNone:
case gtSave:
case gtDemo:
break;
@@ -306,8 +318,8 @@
int size = msg.size();
QString newResolution = QString().append(msg.mid(2)).left(size - 4);
QStringList wh = newResolution.split('x');
- config->Form->ui.pageOptions->windowWidthEdit->setText(wh[0]);
- config->Form->ui.pageOptions->windowHeightEdit->setText(wh[1]);
+ config->Form->ui.pageOptions->windowWidthEdit->setValue(wh[0].toInt());
+ config->Form->ui.pageOptions->windowHeightEdit->setValue(wh[1].toInt());
break;
}
default:
@@ -343,7 +355,7 @@
readbuffer.remove(0, msglen + 1);
ParseMessage(msg);
}
-
+
flushNetBuffer();
}
@@ -352,7 +364,7 @@
if(m_netSendBuffer.size())
{
emit SendNet(m_netSendBuffer);
-
+
m_netSendBuffer.clear();
}
}
@@ -435,6 +447,9 @@
void HWGame::StartLocal()
{
+ lastGameStartArgs.clear();
+ lastGameType = gtLocal;
+
gameType = gtLocal;
demo.clear();
Start(false);
@@ -443,6 +458,9 @@
void HWGame::StartQuick()
{
+ lastGameStartArgs.clear();
+ lastGameType = gtQLocal;
+
gameType = gtQLocal;
demo.clear();
Start(false);
@@ -451,6 +469,10 @@
void HWGame::StartTraining(const QString & file)
{
+ lastGameStartArgs.clear();
+ lastGameStartArgs.append(file);
+ lastGameType = gtTraining;
+
gameType = gtTraining;
training = "Missions/Training/" + file + ".lua";
demo.clear();
@@ -460,6 +482,12 @@
void HWGame::StartCampaign(const QString & camp, const QString & campScript, const QString & campTeam)
{
+ lastGameStartArgs.clear();
+ lastGameStartArgs.append(camp);
+ lastGameStartArgs.append(campScript);
+ lastGameStartArgs.append(campTeam);
+ lastGameType = gtCampaign;
+
gameType = gtCampaign;
campaign = camp;
campaignScript = "Missions/Campaign/" + camp + "/" + campScript;
--- a/QTfrontend/game.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/game.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -29,6 +29,18 @@
class GameCFGWidget;
class TeamSelWidget;
+enum GameType
+{
+ gtNone = 0,
+ gtLocal = 1,
+ gtQLocal = 2,
+ gtDemo = 3,
+ gtNet = 4,
+ gtTraining = 5,
+ gtCampaign = 6,
+ gtSave = 7,
+};
+
enum GameState
{
gsNotStarted = 0,
@@ -49,6 +61,13 @@
bool checkForDir(const QString & dir);
+// last game info
+extern QList<QVariant> lastGameStartArgs;
+extern GameType lastGameType;
+extern GameCFGWidget * lastGameCfg;
+extern QString lastGameAmmo;
+extern TeamSelWidget * lastGameTeamSel;
+
class HWGame : public TCPBase
{
Q_OBJECT
@@ -86,16 +105,6 @@
void FromNetChat(const QString & msg);
private:
- enum GameType
- {
- gtLocal = 1,
- gtQLocal = 2,
- gtDemo = 3,
- gtNet = 4,
- gtTraining = 5,
- gtCampaign = 6,
- gtSave = 7,
- };
char msgbuf[MAXMSGCHARS];
QString ammostr;
GameUIConfig * config;
--- a/QTfrontend/gameuiconfig.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/gameuiconfig.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -25,6 +25,7 @@
#include <QNetworkProxy>
#include <QNetworkProxyFactory>
#include <utility>
+#include <QVariant>
#include "gameuiconfig.h"
#include "hwform.h"
@@ -94,8 +95,8 @@
// If left blank reset the resolution to the default
wWidth = (wWidth == "" ? widthStr : wWidth);
wHeight = (wHeight == "" ? heightStr : wHeight);
- Form->ui.pageOptions->windowWidthEdit->setText(wWidth);
- Form->ui.pageOptions->windowHeightEdit->setText(wHeight);
+ Form->ui.pageOptions->windowWidthEdit->setValue(wWidth.toInt());
+ Form->ui.pageOptions->windowHeightEdit->setValue(wHeight.toInt());
Form->ui.pageOptions->CBResolution->setCurrentIndex((t < 0) ? 1 : t);
Form->ui.pageOptions->CBFullscreen->setChecked(value("video/fullscreen", false).toBool());
@@ -111,7 +112,7 @@
Form->ui.pageOptions->CBFrontendMusic->setChecked(value("frontend/music", true).toBool());
Form->ui.pageOptions->SLVolume->setValue(value("audio/volume", 100).toUInt());
- QString netNick = value("net/nick", "").toString();
+ QString netNick = value("net/nick", tr("Guest")+QString("%1").arg(rand())).toString();
Form->ui.pageOptions->editNetNick->setText(netNick);
bool savePwd = value("net/savepassword",true).toBool();
Form->ui.pageOptions->CBSavePassword->setChecked(savePwd);
@@ -156,7 +157,7 @@
{ // load colors
QStandardItemModel * model = DataManager::instance().colorsModel();
for(int i = model->rowCount() - 1; i >= 0; --i)
- model->item(i)->setData(value(QString("colors/color%1").arg(i), model->item(i)->data()));
+ model->item(i)->setData(QColor(value(QString("colors/color%1").arg(i), model->item(i)->data()).toString()));
}
{ // load binds
@@ -319,7 +320,7 @@
{ // save colors
QStandardItemModel * model = DataManager::instance().colorsModel();
for(int i = model->rowCount() - 1; i >= 0; --i)
- setValue(QString("colors/color%1").arg(i), model->item(i)->data());
+ setValue(QString("colors/color%1").arg(i), model->item(i)->data().value<QColor>().name());
}
sync();
@@ -520,14 +521,28 @@
setValue("net/passwordhash", QString());
setValue("net/passwordlength", 0);
setValue("net/savepassword", false); //changes the savepassword value to false in order to not let the user save an empty password in PAGE_SETUP
- reloadValues(); //reloads the values of PAGE_SETUP
+ Form->ui.pageOptions->editNetPassword->setEnabled(false);
+ Form->ui.pageOptions->editNetPassword->setText("");
}
void GameUIConfig::setPasswordHash(const QString & passwordhash)
{
setValue("net/passwordhash", passwordhash);
- setValue("net/passwordlength", passwordhash.size()/4);
- setNetPasswordLength(passwordhash.size()/4); //the hash.size() is divided by 4 let PAGE_SETUP use a reasonable number of stars to display the PW
+ if (passwordhash!=NULL && passwordhash.size() > 0)
+ {
+ // WTF - the whole point of "password length" was to have the dots match what they typed. This is totally pointless, and all hashes are the same length for a given hash so might as well hardcode it.
+ // setValue("net/passwordlength", passwordhash.size()/4);
+ setValue("net/passwordlength", 8);
+
+ // More WTF
+ //setNetPasswordLength(passwordhash.size()/4); //the hash.size() is divided by 4 let PAGE_SETUP use a reasonable number of stars to display the PW
+ setNetPasswordLength(8);
+ }
+ else
+ {
+ setValue("net/passwordlength", 0);
+ setNetPasswordLength(0);
+ }
}
QString GameUIConfig::passwordHash()
--- a/QTfrontend/gameuiconfig.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/gameuiconfig.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/hwconsts.cpp.in Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/hwconsts.cpp.in Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/hwconsts.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/hwconsts.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/hwform.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/hwform.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -45,6 +45,7 @@
#include <QInputDialog>
#include <QPropertyAnimation>
#include <QSettings>
+#include <QSortFilterProxyModel>
#if (QT_VERSION >= 0x040600)
#include <QGraphicsEffect>
@@ -150,9 +151,9 @@
ui.pageOptions->CBResolution->addItems(SDLInteraction::instance().getResolutions());
- config = new GameUIConfig(this, "physfs://hedgewars.ini");
+ config = new GameUIConfig(this, DataManager::instance().settingsFileName());
frontendEffects = config->value("frontend/effects", true).toBool();
- playerHash = QString(QCryptographicHash::hash(config->value("net/nick","").toString().toUtf8(), QCryptographicHash::Md5).toHex());
+ playerHash = QString(QCryptographicHash::hash(config->value("net/nick",tr("Guest")+QString("%1").arg(rand())).toString().toUtf8(), QCryptographicHash::Md5).toHex());
ui.pageRoomsList->setSettings(config);
ui.pageNetGame->setSettings(config);
@@ -285,6 +286,7 @@
connect(ui.pageInfo->BtnSnapshots, SIGNAL(clicked()), this, SLOT(OpenSnapshotFolder()));
connect(ui.pageGameStats, SIGNAL(saveDemoRequested()), this, SLOT(saveDemoWithCustomName()));
+ connect(ui.pageGameStats, SIGNAL(restartGameRequested()), this, SLOT(restartGame()));
connect(ui.pageSinglePlayer->BtnSimpleGamePage, SIGNAL(clicked()), this, SLOT(SimpleGame()));
connect(ui.pageSinglePlayer->BtnTrainPage, SIGNAL(clicked()), pageSwitchMapper, SLOT(map()));
@@ -317,8 +319,6 @@
connect(ui.pageMain->BtnNetLocal, SIGNAL(clicked()), this, SLOT(GoToNet()));
connect(ui.pageMain->BtnNetOfficial, SIGNAL(clicked()), this, SLOT(NetConnectOfficialServer()));
- connect(ui.pageConnecting, SIGNAL(cancelConnection()), this, SLOT(GoBack()));
-
connect(ui.pageVideos, SIGNAL(goBack()), config, SLOT(SaveVideosOptions()));
ammoSchemeModel = new AmmoSchemeModel(this, cfgdir->absolutePath() + "/schemes.ini");
@@ -470,7 +470,7 @@
if(teamslist.empty())
{
- QString currentNickName = config->value("net/nick","").toString().toUtf8();
+ QString currentNickName = config->value("net/nick",tr("Guest")+QString("%1").arg(rand())).toString().toUtf8();
QString teamName;
if (currentNickName.isEmpty())
@@ -596,6 +596,10 @@
#endif
qDebug("Leaving %s, entering %s", qPrintable(stringifyPageId(lastid)), qPrintable(stringifyPageId(id)));
+ if (lastid == ID_PAGE_MAIN)
+ {
+ ui.pageMain->resetNetworkChoice();
+ }
// pageEnter and pageLeave events
((AbstractPage*)ui.Pages->widget(lastid))->triggerPageLeave();
@@ -673,6 +677,21 @@
}
}
+ if (id == ID_PAGE_GAMESTATS)
+ {
+ switch(lastGameType) {
+ case gtLocal:
+ case gtQLocal:
+ case gtTraining:
+ case gtCampaign:
+ ui.pageGameStats->restartBtnVisible(true);
+ break;
+ default:
+ ui.pageGameStats->restartBtnVisible(false);
+ break;
+ }
+ }
+
if (id == ID_PAGE_MAIN)
{
ui.pageOptions->setTeamOptionsEnabled(true);
@@ -1246,20 +1265,20 @@
// room status stuff
connect(hwnet, SIGNAL(roomMaster(bool)),
- this, SLOT(NetGameChangeStatus(bool)), Qt::QueuedConnection);
+ this, SLOT(NetGameChangeStatus(bool)));
// net page stuff
connect(hwnet, SIGNAL(roomNameUpdated(const QString &)),
ui.pageNetGame, SLOT(setRoomName(const QString &)), Qt::QueuedConnection);
- connect(hwnet, SIGNAL(chatStringFromNet(const QString&)),
- ui.pageNetGame->chatWidget, SLOT(onChatString(const QString&)), Qt::QueuedConnection);
+ connect(hwnet, SIGNAL(roomChatAction(const QString&, const QString&)),
+ ui.pageNetGame->chatWidget, SLOT(onChatAction(const QString&, const QString&)), Qt::QueuedConnection);
+ connect(hwnet, SIGNAL(roomChatMessage(const QString&, const QString&)),
+ ui.pageNetGame->chatWidget, SLOT(onChatMessage(const QString&, const QString&)), Qt::QueuedConnection);
- connect(hwnet, SIGNAL(chatStringFromMe(const QString&)),
- ui.pageNetGame->chatWidget, SLOT(onChatString(const QString&)), Qt::QueuedConnection);
connect(hwnet, SIGNAL(roomMaster(bool)),
ui.pageNetGame->chatWidget, SLOT(adminAccess(bool)), Qt::QueuedConnection);
connect(ui.pageNetGame->chatWidget, SIGNAL(chatLine(const QString&)),
- hwnet, SLOT(chatLineToNet(const QString&)));
+ hwnet, SLOT(chatLineToNetWithEcho(const QString&)));
connect(ui.pageNetGame->BtnGo, SIGNAL(clicked()), hwnet, SLOT(ToggleReady()));
connect(hwnet, SIGNAL(setMyReadyStatus(bool)),
ui.pageNetGame, SLOT(setReadyStatus(bool)), Qt::QueuedConnection);
@@ -1286,25 +1305,38 @@
connect(ui.pageRoomsList->chatWidget, SIGNAL(consoleCommand(const QString&)),
hwnet, SLOT(consoleCommand(const QString&)));
+// player info
+ connect(hwnet, SIGNAL(playerInfo(const QString&, const QString&, const QString&, const QString&)),
+ ui.pageRoomsList->chatWidget, SLOT(onPlayerInfo(const QString&, const QString&, const QString&, const QString&)), Qt::QueuedConnection);
+ connect(hwnet, SIGNAL(playerInfo(const QString&, const QString&, const QString&, const QString&)),
+ ui.pageNetGame->chatWidget, SLOT(onPlayerInfo(const QString&, const QString&, const QString&, const QString&)), Qt::QueuedConnection);
+
// chatting
connect(ui.pageRoomsList->chatWidget, SIGNAL(chatLine(const QString&)),
hwnet, SLOT(chatLineToLobby(const QString&)));
- connect(hwnet, SIGNAL(chatStringLobby(const QString&)),
- ui.pageRoomsList->chatWidget, SLOT(onChatString(const QString&)), Qt::QueuedConnection);
- connect(hwnet, SIGNAL(chatStringLobby(const QString&, const QString&)),
- ui.pageRoomsList->chatWidget, SLOT(onChatString(const QString&, const QString&)), Qt::QueuedConnection);
- connect(hwnet, SIGNAL(chatStringFromMeLobby(const QString&)),
- ui.pageRoomsList->chatWidget, SLOT(onChatString(const QString&)), Qt::QueuedConnection);
+ connect(hwnet, SIGNAL(lobbyChatAction(const QString&,const QString&)),
+ ui.pageRoomsList->chatWidget, SLOT(onChatAction(const QString&,const QString&)), Qt::QueuedConnection);
+ connect(hwnet, SIGNAL(lobbyChatMessage(const QString&, const QString&)),
+ ui.pageRoomsList->chatWidget, SLOT(onChatMessage(const QString&, const QString&)), Qt::QueuedConnection);
// nick list stuff
- connect(hwnet, SIGNAL(nickAdded(const QString&, bool)),
- ui.pageNetGame->chatWidget, SLOT(nickAdded(const QString&, bool)), Qt::QueuedConnection);
- connect(hwnet, SIGNAL(nickRemoved(const QString&)),
- ui.pageNetGame->chatWidget, SLOT(nickRemoved(const QString&)), Qt::QueuedConnection);
- connect(hwnet, SIGNAL(nickAddedLobby(const QString&, bool)),
- ui.pageRoomsList->chatWidget, SLOT(nickAdded(const QString&, bool)), Qt::QueuedConnection);
- connect(hwnet, SIGNAL(nickRemovedLobby(const QString&)),
- ui.pageRoomsList->chatWidget, SLOT(nickRemoved(const QString&)), Qt::QueuedConnection);
+ {
+ QSortFilterProxyModel * playersSortFilterModel = qobject_cast<QSortFilterProxyModel *>(hwnet->lobbyPlayersModel());
+ if(playersSortFilterModel)
+ {
+ PlayersListModel * players = qobject_cast<PlayersListModel *>(playersSortFilterModel->sourceModel());
+ connect(players, SIGNAL(nickAdded(const QString&, bool)),
+ ui.pageNetGame->chatWidget, SLOT(nickAdded(const QString&, bool)));
+ connect(players, SIGNAL(nickRemoved(const QString&)),
+ ui.pageNetGame->chatWidget, SLOT(nickRemoved(const QString&)));
+ connect(players, SIGNAL(nickAddedLobby(const QString&, bool)),
+ ui.pageRoomsList->chatWidget, SLOT(nickAdded(const QString&, bool)));
+ connect(players, SIGNAL(nickRemovedLobby(const QString&)),
+ ui.pageRoomsList->chatWidget, SLOT(nickRemoved(const QString&)));
+ connect(players, SIGNAL(nickRemovedLobby(const QString&, const QString&)),
+ ui.pageRoomsList->chatWidget, SLOT(nickRemoved(const QString&, const QString&)));
+ }
+ }
// teams selecting stuff
connect(ui.pageNetGame->pNetTeamsWidget, SIGNAL(hhogsNumChanged(const HWTeam&)),
@@ -1342,14 +1374,15 @@
connect(ui.pageNetGame->pGameCFG, SIGNAL(paramChanged(const QString &, const QStringList &)), hwnet, SLOT(onParamChanged(const QString &, const QStringList &)));
connect(hwnet, SIGNAL(configAsked()), ui.pageNetGame->pGameCFG, SLOT(fullNetConfig()));
+ // using proxy slot to prevent loss of game messages when they're sent to not yet connected slot of game object
+ connect(hwnet, SIGNAL(FromNet(const QByteArray &)), this, SLOT(FromNetProxySlot(const QByteArray &)), Qt::QueuedConnection);
+
//nick and pass stuff
- QString nickname = config->value("net/nick", "").toString();
-
hwnet->m_private_game = !(hostName == NETGAME_DEFAULT_SERVER && port == NETGAME_DEFAULT_PORT);
- if (hwnet->m_private_game == false)
- if (AskForNickAndPwd() != 0)
- return;
+ if (hwnet->m_private_game == false && AskForNickAndPwd() != 0)
+ return;
+ QString nickname = config->value("net/nick",tr("Guest")+QString("%1").arg(rand())).toString();
ui.pageRoomsList->setUser(nickname);
ui.pageNetGame->setUser(nickname);
@@ -1362,16 +1395,18 @@
config->clearTempHash();
//initialize
- QString hash = config->passwordHash();
- QString temphash = config->tempHash();
- QString nickname = config->value("net/nick", "").toString();
+ QString hash;
+ QString temphash;
+ QString nickname;
QString password;
- //if something from login is missing, start dialog loop
- if (nickname.isEmpty() || hash.isEmpty())
- {
- while (nickname.isEmpty() || (hash.isEmpty() && temphash.isEmpty())) //while a nickname, or both hashes are missing
- {
+ do {
+ nickname = config->value("net/nick",tr("Guest")+QString("%1").arg(rand())).toString();
+ hash = config->passwordHash();
+ temphash = config->tempHash();
+
+ //if something from login is missing, start dialog loop
+ if (nickname.isEmpty() || hash.isEmpty()) {
//open dialog
HWPasswordDialog * pwDialog = new HWPasswordDialog(this);
// make the "new account" button dialog open a browser with the registration page
@@ -1388,62 +1423,54 @@
if (pwDialog->exec() != QDialog::Accepted) {
delete pwDialog;
GoBack();
- return -1;
+ break;
}
//set nick and pass from the dialog
nickname = pwDialog->leNickname->text();
password = pwDialog->lePassword->text();
+ bool save = pwDialog->cbSave->isChecked();
+ //clean up
+ delete pwDialog;
//check the nickname variable
if (nickname.isEmpty()) {
int retry = RetryDialog(tr("Hedgewars - Empty nickname"), tr("No nickname supplied."));
GoBack();
- delete pwDialog;
if (retry) {
if (hwnet->m_private_game) {
QStringList list = hwnet->getHost().split(":");
NetConnectServer(list.at(0), list.at(1).toShort());
} else
NetConnectOfficialServer();
- }
- return -1;
+ }
+ break; //loop restart
+ } else {
+ //update nickname if it's fine
+ config->setValue("net/nick", nickname);
+ config->updNetNick();
}
- if (!password.isEmpty()) {
+ //check the password variable
+ if (password.isEmpty()) {
+ config->clearPasswordHash();
+ break;
+ } else {
//calculate temphash and set it into config
temphash = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Md5).toHex();
config->setTempHash(temphash);
//if user wants to save password
- bool save = pwDialog->cbSave->isChecked();
config->setValue("net/savepassword", save);
- if (save) // user wants to save password
- {
+ if (save) {
+ // user wants to save password
ui.pageOptions->CBSavePassword->setChecked(true);
config->setPasswordHash(temphash);
}
}
- else {
- delete pwDialog;
- config->setValue("net/nick", nickname);
- config->updNetNick();
- config->clearPasswordHash();
- break;
- }
-
- delete pwDialog;
+ }
+ } while (nickname.isEmpty() || (hash.isEmpty() && temphash.isEmpty())); //while a nickname, or both hashes are missing
- //update nickname
- config->setValue("net/nick", nickname);
- config->updNetNick();
-
- //and all the variables
- hash = config->passwordHash();
- temphash = config->tempHash();
- nickname = config->value("net/nick", "").toString();
- }
- }
return 0;
}
@@ -1516,7 +1543,7 @@
if (retry) {
if (hwnet->m_private_game) {
QStringList list = hwnet->getHost().split(":");
- NetConnectServer(list.at(0), list.at(1).toShort());
+ NetConnectServer(list.at(0), list.at(1).toUInt());
} else
NetConnectOfficialServer();
}
@@ -1702,6 +1729,11 @@
void HWForm::CreateNetGame()
{
+ // go back in pages to prevent user from being stuck on certain pages
+ if(ui.Pages->currentIndex() == ID_PAGE_GAMESTATS ||
+ ui.Pages->currentIndex() == ID_PAGE_INGAME)
+ GoBack();
+
QString ammo;
ammo = ui.pageNetGame->pGameCFG->WeaponsName->itemData(
ui.pageNetGame->pGameCFG->WeaponsName->currentIndex()
@@ -1712,7 +1744,6 @@
connect(game, SIGNAL(SendNet(const QByteArray &)), hwnet, SLOT(SendNet(const QByteArray &)));
connect(game, SIGNAL(SendChat(const QString &)), hwnet, SLOT(chatLineToNet(const QString &)));
connect(game, SIGNAL(SendTeamMessage(const QString &)), hwnet, SLOT(SendTeamMessage(const QString &)));
- connect(hwnet, SIGNAL(FromNet(const QByteArray &)), game, SLOT(FromNet(const QByteArray &)), Qt::QueuedConnection);
connect(hwnet, SIGNAL(chatStringFromNet(const QString &)), game, SLOT(FromNetChat(const QString &)), Qt::QueuedConnection);
game->StartNet();
@@ -1740,9 +1771,6 @@
void HWForm::NetGameChangeStatus(bool isMaster)
{
- ui.pageNetGame->pGameCFG->setMaster(isMaster);
- ui.pageNetGame->pNetTeamsWidget->setInteractivity(isMaster);
-
if (isMaster)
NetGameMaster();
else
@@ -1794,6 +1822,7 @@
{
NetAmmoSchemeModel * netAmmo = new NetAmmoSchemeModel(hwnet);
connect(hwnet, SIGNAL(netSchemeConfig(QStringList &)), netAmmo, SLOT(setNetSchemeConfig(QStringList &)));
+
ui.pageNetGame->pGameCFG->GameSchemes->setModel(netAmmo);
ui.pageNetGame->setRoomName(hwnet->getRoom());
@@ -1806,6 +1835,13 @@
ui.pageNetGame->setMasterMode(false);
}
+void HWForm::FromNetProxySlot(const QByteArray & msg)
+{
+ if(game)
+ game->FromNet(msg);
+
+}
+
void HWForm::selectFirstNetScheme()
{
ui.pageNetGame->pGameCFG->GameSchemes->setCurrentIndex(0);
@@ -2002,6 +2038,31 @@
}
}
+void HWForm::restartGame()
+{
+ // get rid off old game stats page
+ if(ui.Pages->currentIndex() == ID_PAGE_GAMESTATS)
+ GoBack();
+
+ CreateGame(lastGameCfg, lastGameTeamSel, lastGameAmmo);
+
+ switch(lastGameType) {
+ case gtTraining:
+ game->StartTraining(lastGameStartArgs.at(0).toString());
+ break;
+ case gtQLocal:
+ game->StartQuick();
+ break;
+ case gtCampaign:
+ game->StartCampaign(lastGameStartArgs.at(0).toString(), lastGameStartArgs.at(1).toString(), lastGameStartArgs.at(2).toString());
+ break;
+ case gtLocal:
+ game->StartLocal();
+ break;
+ default:
+ break;
+ }
+}
void HWForm::ShowErrorMessage(const QString & msg)
{
@@ -2010,8 +2071,22 @@
void HWForm::showFeedbackDialog()
{
- FeedbackDialog dialog(this);
- dialog.exec();
+ QNetworkRequest newRequest(QUrl("http://www.hedgewars.org"));
+
+ QNetworkAccessManager *manager = new QNetworkAccessManager(this);
+ QNetworkReply *reply = manager->get(newRequest);
+ connect(reply, SIGNAL(finished()), this, SLOT(showFeedbackDialogNetChecked()));
+}
+
+void HWForm::showFeedbackDialogNetChecked()
+{
+ QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
+
+ if (reply && (reply->error() == QNetworkReply::NoError)) {
+ FeedbackDialog dialog(this);
+ dialog.exec();
+ } else
+ MessageDialog::ShowErrorMessage(tr("This page requires an internet connection."), this);
}
void HWForm::startGame()
--- a/QTfrontend/hwform.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/hwform.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -129,6 +129,7 @@
void UpdateCampaignPageProgress(int index);
void InitCampaignPage();
void showFeedbackDialog();
+ void showFeedbackDialogNetChecked();
void NetGameChangeStatus(bool isMaster);
void NetGameMaster();
@@ -142,6 +143,9 @@
void openRegistrationPage();
void startGame();
+ void restartGame();
+
+ void FromNetProxySlot(const QByteArray &);
private:
void _NetConnect(const QString & hostName, quint16 port, QString nick);
--- a/QTfrontend/main.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/main.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -261,18 +261,24 @@
engine->setWriteDir(cfgdir->absolutePath());
engine->mountPacks();
- DataManager::ensureFileExists("physfs://hedgewars.ini");
-
QTranslator Translator;
{
- QSettings settings("physfs://hedgewars.ini", QSettings::IniFormat);
+ QSettings settings(DataManager::instance().settingsFileName(), QSettings::IniFormat);
+ settings.setIniCodec("UTF-8");
+
QString cc = settings.value("misc/locale", QString()).toString();
- if(cc.isEmpty())
+ if (cc.isEmpty())
+ {
cc = QLocale::system().name();
+ // Fallback to current input locale if "C" locale is returned
+ if(cc == "C")
+ cc = HWApplication::keyboardInputLocale().name();
+ }
+
// load locale file into translator
- if(!Translator.load(QString("physfs://Locale/hedgewars_%1").arg(cc)))
- qWarning("Failed to install translation");
+ if (!Translator.load(QString("physfs://Locale/hedgewars_%1").arg(cc)))
+ qWarning("Failed to install translation (%s)", qPrintable(cc));
app.installTranslator(&Translator);
}
--- a/QTfrontend/model/GameStyleModel.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/GameStyleModel.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/GameStyleModel.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/GameStyleModel.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/HatModel.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/HatModel.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/HatModel.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/HatModel.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/MapModel.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/MapModel.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/MapModel.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/MapModel.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/ThemeModel.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/ThemeModel.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/ThemeModel.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/ThemeModel.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/ammoSchemeModel.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/ammoSchemeModel.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -194,7 +194,7 @@
<< QVariant(false) // place hog 14
<< QVariant(true) // shared ammo 15
<< QVariant(true) // disable girders 16
- << QVariant(false) // disable land objects 17
+ << QVariant(true) // disable land objects 17
<< QVariant(false) // AI survival 18
<< QVariant(false) // inf. attack 19
<< QVariant(true) // reset weps 20
@@ -407,7 +407,7 @@
<< QVariant(true) // team divide 2
<< QVariant(false) // solid land 3
<< QVariant(false) // border 4
- << QVariant(true) // low gravity 5
+ << QVariant(false) // low gravity 5
<< QVariant(false) // laser sight 6
<< QVariant(false) // invulnerable 7
<< QVariant(false) // reset health 8
--- a/QTfrontend/model/ammoSchemeModel.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/ammoSchemeModel.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/netserverslist.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/netserverslist.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/netserverslist.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/netserverslist.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/playerslistmodel.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/playerslistmodel.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -84,7 +84,7 @@
}
-void PlayersListModel::addPlayer(const QString & nickname)
+void PlayersListModel::addPlayer(const QString & nickname, bool notify)
{
insertRow(rowCount());
@@ -92,11 +92,18 @@
setData(mi, nickname);
checkFriendIgnore(mi);
+
+ emit nickAddedLobby(nickname, notify);
}
-void PlayersListModel::removePlayer(const QString & nickname)
+void PlayersListModel::removePlayer(const QString & nickname, const QString &msg)
{
+ if(msg.isEmpty())
+ emit nickRemovedLobby(nickname);
+ else
+ emit nickRemovedLobby(nickname, msg);
+
QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly);
if(mil.size())
@@ -104,7 +111,7 @@
}
-void PlayersListModel::playerJoinedRoom(const QString & nickname)
+void PlayersListModel::playerJoinedRoom(const QString & nickname, bool notify)
{
QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly);
@@ -114,11 +121,15 @@
updateIcon(mil[0]);
updateSortData(mil[0]);
}
+
+ emit nickAdded(nickname, notify);
}
void PlayersListModel::playerLeftRoom(const QString & nickname)
{
+ emit nickRemoved(nickname);
+
QModelIndexList mil = match(index(0), Qt::DisplayRole, nickname, 1, Qt::MatchExactly);
if(mil.size())
--- a/QTfrontend/model/playerslistmodel.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/playerslistmodel.h Tue Jun 04 22:28:12 2013 +0200
@@ -41,13 +41,20 @@
bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
public slots:
- void addPlayer(const QString & nickname);
- void removePlayer(const QString & nickname);
- void playerJoinedRoom(const QString & nickname);
+ void addPlayer(const QString & nickname, bool notify);
+ void removePlayer(const QString & nickname, const QString & msg = QString());
+ void playerJoinedRoom(const QString & nickname, bool notify);
void playerLeftRoom(const QString & nickname);
void resetRoomFlags();
void setNickname(const QString & nickname);
+signals:
+ void nickAdded(const QString& nick, bool notifyNick);
+ void nickRemoved(const QString& nick);
+ void nickAddedLobby(const QString& nick, bool notifyNick);
+ void nickRemovedLobby(const QString& nick);
+ void nickRemovedLobby(const QString& nick, const QString& message);
+
private:
QHash<quint32, QIcon> & m_icons();
typedef QHash<int, QVariant> DataEntry;
--- a/QTfrontend/model/roomslistmodel.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/roomslistmodel.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/model/roomslistmodel.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/model/roomslistmodel.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/hwmap.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/hwmap.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Ulyanov Igor <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/hwmap.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/hwmap.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/netregister.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/netregister.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/netregister.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/netregister.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/netserver.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/netserver.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/netserver.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/netserver.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/netudpserver.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/netudpserver.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2007-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/netudpserver.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/netudpserver.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2007-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/netudpwidget.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/netudpwidget.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/netudpwidget.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/netudpwidget.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/newnetclient.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/newnetclient.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -336,10 +336,24 @@
qWarning("Net: Empty CHAT message");
return;
}
+
+ QString action = HWProto::chatStringToAction(lst[2]);
+
if (netClientState == InLobby)
- emit chatStringLobby(lst[1], HWProto::formatChatMsgForFrontend(lst[2]));
+ {
+ if (action != NULL)
+ emit lobbyChatAction(lst[1], action);
+ else
+ emit lobbyChatMessage(lst[1], lst[2]);
+ }
else
+ {
emit chatStringFromNet(HWProto::formatChatMsg(lst[1], lst[2]));
+ if (action != NULL)
+ emit roomChatAction(lst[1], action);
+ else
+ emit roomChatMessage(lst[1], lst[2]);
+ }
return;
}
@@ -350,12 +364,13 @@
qWarning("Net: Malformed INFO message");
return;
}
- QStringList tmp = lst;
- tmp.removeFirst();
- if (netClientState == InLobby)
- emit chatStringLobby(tmp.join("\n").prepend('\x01'));
- else
- emit chatStringFromNet(tmp.join("\n").prepend('\x01'));
+ emit playerInfo(lst[1], lst[2], lst[3], lst[4]);
+ if (netClientState != InLobby)
+ {
+ QStringList tmp = lst;
+ tmp.removeFirst();
+ emit chatStringFromNet(tmp.join(" ").prepend('\x01'));
+ }
return;
}
@@ -410,8 +425,7 @@
{
if (nick == mynick)
{
- if (isChief && !setFlag) ToggleReady();
- else emit setMyReadyStatus(setFlag);
+ emit setMyReadyStatus(setFlag);
}
m_playersModel->setFlag(nick, PlayersListModel::Ready, setFlag);
}
@@ -490,9 +504,7 @@
emit connected();
}
- m_playersModel->addPlayer(lst[i]);
- emit nickAddedLobby(lst[i], false);
- emit chatStringLobby(lst[i], tr("%1 *** %2 has joined").arg('\x03').arg("|nick|"));
+ m_playersModel->addPlayer(lst[i], false);
}
return;
}
@@ -539,13 +551,11 @@
qWarning("Net: Bad LOBBY:LEFT message");
return;
}
- emit nickRemovedLobby(lst[1]);
+
if (lst.size() < 3)
- emit chatStringLobby(tr("%1 *** %2 has left").arg('\x03').arg(lst[1]));
+ m_playersModel->removePlayer(lst[1]);
else
- emit chatStringLobby(lst[1], tr("%1 *** %2 has left (%3)").arg('\x03').arg("|nick|", lst[2]));
-
- m_playersModel->removePlayer(lst[1]);
+ m_playersModel->removePlayer(lst[1], lst[2]);
return;
}
@@ -636,8 +646,8 @@
emit configAsked();
}
- m_playersModel->playerJoinedRoom(lst[i]);
- emit nickAdded(lst[i], isChief && (lst[i] != mynick));
+ m_playersModel->playerJoinedRoom(lst[i], isChief && (lst[i] != mynick));
+
emit chatStringFromNet(tr("%1 *** %2 has joined the room").arg('\x03').arg(lst[i]));
}
return;
@@ -769,9 +779,8 @@
for(int i = 1; i < lst.size(); ++i)
{
- emit nickAdded(lst[i], isChief && (lst[i] != mynick));
emit chatStringFromNet(tr("%1 *** %2 has joined the room").arg('\x03').arg(lst[i]));
- m_playersModel->playerJoinedRoom(lst[i]);
+ m_playersModel->playerJoinedRoom(lst[i], isChief && (lst[i] != mynick));
}
return;
}
@@ -783,7 +792,7 @@
qWarning("Net: Bad LEFT message");
return;
}
- emit nickRemoved(lst[1]);
+
if (lst.size() < 3)
emit chatStringFromNet(tr("%1 *** %2 has left").arg('\x03').arg(lst[1]));
else
@@ -836,12 +845,25 @@
);
}
+void HWNewNet::chatLineToNetWithEcho(const QString& str)
+{
+ if(str != "")
+ {
+ emit chatStringFromNet(HWProto::formatChatMsg(mynick, str));
+ chatLineToNet(str);
+ }
+}
+
void HWNewNet::chatLineToNet(const QString& str)
{
if(str != "")
{
RawSendNet(QString("CHAT") + delimeter + str);
- emit(chatStringFromMe(HWProto::formatChatMsg(mynick, str)));
+ QString action = HWProto::chatStringToAction(str);
+ if (action != NULL)
+ emit(roomChatAction(mynick, action));
+ else
+ emit(roomChatMessage(mynick, str));
}
}
@@ -850,7 +872,11 @@
if(str != "")
{
RawSendNet(QString("CHAT") + delimeter + str);
- emit chatStringLobby(mynick, HWProto::formatChatMsgForFrontend(str));
+ QString action = HWProto::chatStringToAction(str);
+ if (action != NULL)
+ emit(lobbyChatAction(mynick, action));
+ else
+ emit(lobbyChatMessage(mynick, str));
}
}
--- a/QTfrontend/net/newnetclient.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/newnetclient.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -99,10 +99,6 @@
void AuthFailed();
void EnteredGame();
void LeftRoom(const QString & reason);
- void nickAdded(const QString& nick, bool notifyNick);
- void nickRemoved(const QString& nick);
- void nickAddedLobby(const QString& nick, bool notifyNick);
- void nickRemovedLobby(const QString& nick);
void FromNet(const QByteArray & buf);
void adminAccess(bool);
void roomMaster(bool);
@@ -117,11 +113,16 @@
void RemoveNetTeam(const HWTeam&);
void hhnumChanged(const HWTeam&);
void teamColorChanged(const HWTeam&);
- void chatStringLobby(const QString&);
- void chatStringLobby(const QString&, const QString&);
+ void playerInfo(
+ const QString & nick,
+ const QString & ip,
+ const QString & version,
+ const QString & roomInfo);
+ void lobbyChatMessage(const QString & nick, const QString & message);
+ void lobbyChatAction(const QString & nick, const QString & action);
+ void roomChatMessage(const QString & nick, const QString & message);
+ void roomChatAction(const QString & nick, const QString & action);
void chatStringFromNet(const QString&);
- void chatStringFromMe(const QString&);
- void chatStringFromMeLobby(const QString&);
void roomsList(const QStringList&);
void serverMessage(const QString &);
@@ -137,6 +138,7 @@
public slots:
void ToggleReady();
void chatLineToNet(const QString& str);
+ void chatLineToNetWithEcho(const QString&);
void chatLineToLobby(const QString& str);
void SendTeamMessage(const QString& str);
void SendNet(const QByteArray & buf);
--- a/QTfrontend/net/proto.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/proto.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -45,11 +45,6 @@
return buf;
}
-QString HWProto::formatChatMsgForFrontend(const QString & msg)
-{
- return formatChatMsg("|nick|", msg);
-}
-
QString HWProto::formatChatMsg(const QString & nick, const QString & msg)
{
if(msg.left(4) == "/me ")
@@ -57,3 +52,11 @@
else
return QString("\x01%1: %2").arg(nick).arg(msg);
}
+
+QString HWProto::chatStringToAction(const QString & string)
+{
+ if(string.left(4) == "/me ")
+ return string.mid(4);
+ else
+ return NULL;
+}
--- a/QTfrontend/net/proto.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/proto.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -35,6 +35,12 @@
static QByteArray & addStringListToBuffer(QByteArray & buf, const QStringList & strList);
static QString formatChatMsg(const QString & nick, const QString & msg);
static QString formatChatMsgForFrontend(const QString & msg);
+ /**
+ * @brief Determines if a chat string represents a chat action and returns the action.
+ * @param string chat string
+ * @return the action-message or NULL if message is no action
+ */
+ static QString chatStringToAction(const QString & string);
};
#endif // _PROTO_H
--- a/QTfrontend/net/recorder.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/recorder.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/recorder.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/recorder.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/tcpBase.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/tcpBase.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/net/tcpBase.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/net/tcpBase.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/res/css/chat.css Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/res/css/chat.css Tue Jun 04 22:28:12 2013 +0200
@@ -61,15 +61,20 @@
.msg_FriendChat .nick { color: #30ff30; }
.msg_UserJoin { color: #c0c0c0; }
.msg_UserJoin .nick { color: #d0d0d0; }
+.msg_UserLeave { color: #b8b8b8; }
+.msg_UserLeave .nick { color: #c8c8c8; }
.msg_FriendJoin { font-weight: bold; color: #c0f0c0; }
.msg_FriendJoin .nick { color: #d8f0d8; }
+.msg_FriendLeave { font-weight: bold; color: #ffe090; }
+.msg_FriendLeave .nick { color: #f8e878; }
.msg_UserAction { color: #ff80ff; }
.msg_UserAction .nick { color: #ffa0ff;}
.msg_FriendAction { color: #ff00ff; }
.msg_FriendAction .nick { color: #ff30ff; }
-/* uncomment next line to disable join and leave messages of non-friends */
+/* uncomment next lines to disable join and leave messages of non-friends */
/* .msg_UserJoin { display:none; } */
+/* .msg_UserLeave { display:none; } */
/* timestamps */
.timestamp {
--- a/QTfrontend/res/css/qt.css Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/res/css/qt.css Tue Jun 04 22:28:12 2013 +0200
@@ -179,6 +179,7 @@
QComboBox {
border-radius: 10px;
padding: 3px;
+height: 18px;
}
QComboBox:pressed{
border-color: white;
@@ -326,4 +327,8 @@
TeamSelWidget, #gameStackContainer, #GBoxOptions {
border-radius: 10px;
-}
\ No newline at end of file
+}
+
+PageMultiplayer TeamSelWidget {
+min-height: 500px;
+}
--- a/QTfrontend/res/html/about.html Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/res/html/about.html Tue Jun 04 22:28:12 2013 +0200
@@ -73,11 +73,11 @@
Chinese: Jie Luo <<a href="mailto:lililjlj@gmail.com">lililjlj@gmail.com</a>><br>
English: Andrey Korotaev <<a href="mailto:unC0Rr@gmail.com">unC0Rr@gmail.com</a>><br>
Finnish: Nina Kuisma <<a href="mailto:ninnnu@gmail.com">ninnnu@gmail.com</a>><br>
- French: Antoine Turmel <<a href="mailto:geekshadow@gmail.com">geekshadow@gmail.com</a>>, Clement Woitrain <<a href="mailto:sphrixclement@gmail.com">sphrixclement@gmail.com</a>><br>
+ French: Antoine Turmel <<a href="mailto:geekshadow@gmail.com">geekshadow@gmail.com</a>>, Clement Woitrain <<a href="mailto:sphrixclement@gmail.com">sphrixclement@gmail.com</a>>, Matisumi<br>
German: Peter Hüwe <<a href="mailto:PeterHuewe@gmx.de">PeterHuewe@gmx.de</a>>, Mario Liebisch <<a href="mailto:mario.liebisch@gmail.com">mario.liebisch@gmail.com</a>>, Richard Karolyi <<a href="mailto:sheepluva@ercatec.net">sheepluva@ercatec.net</a>><br>
Greek: <<a href="mailto:talos_kriti@yahoo.gr">talos_kriti@yahoo.gr</a>><br>
- Italian: Luca Bonora <<a href="mailto:bonora.luca@gmail.com">bonora.luca@gmail.com</a>>, Marco Bresciani<br>
- Japanese: ADAM Etienne <<a href="mailto:etienne.adam@gmail.com">etienne.adam@gmail.com</a>><br>
+ Italian: Luca Bonora <<a href="mailto:bonora.luca@gmail.com">bonora.luca@gmail.com</a>>, Marco Bresciani <<a href="mailto:m.bresciani@email.it">m.bresciani@email.it</a>><br>
+ Japanese: ADAM Etienne <<a href="mailto:etienne.adam@gmail.com">etienne.adam@gmail.com</a>>, Marco Bresciani <<a href="mailto:m.bresciani@email.it">m.bresciani@email.it</a>>, 梅津洋恵<br>
Korean: Anthony Bellew <<a href="mailto:anthonyreflected@gmail.com">anthonyreflected@gmail.com</a>><br>
Lithuanian: Lukas Urbonas <<a href="mailto:lukasu08@gmail.com">lukasu08@gmail.com</a>><br>
Polish: Maciej Mroziński <<a href="mailto:mynick2@o2.pl">mynick2@o2.pl</a>>, Wojciech Latkowski <<a href="mailto:magik17l@gmail.com">magik17l@gmail.com</a>>, Piotr Mitana, Maciej Górny<br>
--- a/QTfrontend/res/xml/tips.xml Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/res/xml/tips.xml Tue Jun 04 22:28:12 2013 +0200
@@ -46,6 +46,7 @@
<tip>Like Hedgewars? Become a fan on <a href="http://www.facebook.com/Hedgewars">Facebook</a> or follow us on <a href="http://twitter.com/hedgewars">Twitter</a></tip>
<tip>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you'll have to share them somewhere to use them online.</tip>
<tip>Keep your video card drivers up to date to avoid issues playing the game.</tip>
+ <tip>Heads or tails? Type '/rnd' in lobby and you'll find out. Also '/rnd rock paper scissors' works!</tip>
<tip>You're able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</tip>
<windows-only>
<tip>The version of Hedgewars supports <a href="http://www.xfire.com">Xfire</a>. Make sure to add Hedgewars to its game list so your friends can see you playing.</tip>
--- a/QTfrontend/sdlkeys.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/sdlkeys.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/team.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/team.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/team.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/team.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@gmail.com>
* Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
--- a/QTfrontend/ui/dialog/ask_quit.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/dialog/ask_quit.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/dialog/ask_quit.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/dialog/ask_quit.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/dialog/input_ip.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/dialog/input_ip.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/dialog/input_ip.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/dialog/input_ip.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/dialog/input_password.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/dialog/input_password.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/dialog/input_password.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/dialog/input_password.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/dialog/upload_video.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/dialog/upload_video.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/dialog/upload_video.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/dialog/upload_video.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/AbstractPage.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/AbstractPage.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/AbstractPage.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/AbstractPage.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageadmin.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageadmin.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageadmin.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageadmin.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagecampaign.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagecampaign.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagecampaign.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagecampaign.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageconnecting.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageconnecting.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageconnecting.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageconnecting.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagedata.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagedata.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -60,7 +60,10 @@
web->setOpenLinks(false);
// fetchList();
-
+ web->setHtml(QString(
+ "<center><h2>Hedgewars Downloadable Content</h2><br><br>"
+ "<i>%1</i></center>")
+ .arg(tr("Loading, please wait.")));
m_contentDownloaded = false;
}
@@ -106,8 +109,7 @@
{
QNetworkReply * reply = qobject_cast<QNetworkReply *>(sender());
- if(reply)
- {
+ if (reply && (reply->error() == QNetworkReply::NoError)) {
QString html = QString::fromUtf8(reply->readAll());
int begin = html.indexOf("<!-- BEGIN -->");
int end = html.indexOf("<!-- END -->");
@@ -117,7 +119,11 @@
html.remove(0, begin);
}
web->setHtml(html);
- }
+ } else
+ web->setHtml(QString(
+ "<center><h2>Hedgewars Downloadable Content</h2><br><br>"
+ "<p><i><h4>%1</i></h4></p></center>")
+ .arg(tr("This page requires an internet connection.")));
}
void PageDataDownload::fileDownloaded()
--- a/QTfrontend/ui/page/pagedata.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagedata.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagedrawmap.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagedrawmap.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagedrawmap.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagedrawmap.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageeditteam.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageeditteam.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -320,7 +320,7 @@
);
if (!list.isEmpty())
- SDLInteraction::instance().playSoundFile("physfs://" + voiceDir + "/" +
+ SDLInteraction::instance().playSoundFile("/" + voiceDir + "/" +
list[rand() % list.size()]);
}
--- a/QTfrontend/ui/page/pageeditteam.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageeditteam.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagegamestats.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagegamestats.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -97,13 +97,26 @@
return pageLayout;
}
+//TODO button placement, image etc
QLayout * PageGameStats::footerLayoutDefinition()
{
QHBoxLayout * bottomLayout = new QHBoxLayout();
+
+ mainNote = new QLabel(this);
+ mainNote->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
+ mainNote->setWordWrap(true);
+
+ bottomLayout->addWidget(mainNote, 0);
+ bottomLayout->setStretch(0,1);
- btnSave = addButton(":/res/Save.png", bottomLayout, 0, true);
+ btnRestart = addButton(":/res/Start.png", bottomLayout, 1, true);
+ btnRestart->setWhatsThis(tr("Play again"));
+ btnRestart->setFixedWidth(58);
+ btnRestart->setFixedHeight(81);
+ btnRestart->setStyleSheet("QPushButton{margin-top:24px}");
+ btnSave = addButton(":/res/Save.png", bottomLayout, 2, true);
+ btnSave->setWhatsThis(tr("Save"));
btnSave->setStyleSheet("QPushButton{margin: 24px 0 0 0;}");
- bottomLayout->setAlignment(btnSave, Qt::AlignRight | Qt::AlignBottom);
return bottomLayout;
}
@@ -112,6 +125,7 @@
{
connect(this, SIGNAL(pageEnter()), this, SLOT(renderStats()));
connect(btnSave, SIGNAL(clicked()), this, SIGNAL(saveDemoRequested()));
+ connect(btnRestart, SIGNAL(clicked()), this, SIGNAL(restartGameRequested()));
}
PageGameStats::PageGameStats(QWidget* parent) : AbstractPage(parent)
@@ -133,6 +147,11 @@
lastColor = 0;
}
+void PageGameStats::restartBtnVisible(bool visible)
+{
+ btnRestart->setVisible(visible);
+}
+
void PageGameStats::renderStats()
{
QGraphicsScene * scene = new QGraphicsScene();
--- a/QTfrontend/ui/page/pagegamestats.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagegamestats.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -44,6 +44,8 @@
PageGameStats(QWidget* parent = 0);
QPushButton *btnSave;
+ QPushButton *btnRestart;
+ QLabel *mainNote;
QLabel *labelGameStats;
QLabel *labelGameWin;
QLabel *labelGameRank;
@@ -53,9 +55,11 @@
void GameStats(char type, const QString & info);
void clear();
void renderStats();
+ void restartBtnVisible(bool visible);
signals:
void saveDemoRequested();
+ void restartGameRequested();
private:
void AddStatText(const QString & msg);
--- a/QTfrontend/ui/page/pageinfo.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageinfo.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageinfo.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageinfo.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageingame.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageingame.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageingame.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageingame.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagemain.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagemain.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -120,8 +120,8 @@
void PageMain::connectSignals()
{
connect(BtnNet, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
- connect(BtnNetLocal, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
- connect(BtnNetOfficial, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
+ //connect(BtnNetLocal, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
+ //connect(BtnNetOfficial, SIGNAL(clicked()), this, SLOT(toggleNetworkChoice()));
// TODO: add signal-forwarding required by (currently missing) encapsulation
}
@@ -136,7 +136,7 @@
#ifdef DEBUG
setDefaultDescription(QLabel::tr("This development build is 'work in progress' and may not be compatible with other versions of the game, while some features might be broken or incomplete!"));
#else
- setDefaultDescription(QLabel::tr("Tip: ") + randomTip());
+ setDefaultDescription(QLabel::tr("Tip: %1").arg(randomTip()));
#endif
}
@@ -189,3 +189,10 @@
if (visible) BtnNet->setIcon(originalNetworkIcon);
else BtnNet->setIcon(disabledNetworkIcon);
}
+
+void PageMain::resetNetworkChoice()
+{
+ BtnNetLocal->setVisible(false);
+ BtnNetOfficial->setVisible(false);
+ BtnNet->setIcon(originalNetworkIcon);
+}
--- a/QTfrontend/ui/page/pagemain.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagemain.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -29,6 +29,7 @@
public:
PageMain(QWidget * parent = 0);
+ void resetNetworkChoice();
QPushButton * BtnSinglePlayer;
QPushButton * BtnNet;
--- a/QTfrontend/ui/page/pagemultiplayer.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagemultiplayer.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -31,15 +31,13 @@
QLayout * PageMultiplayer::bodyLayoutDefinition()
{
- QGridLayout * pageLayout = new QGridLayout();
+ QHBoxLayout * pageLayout = new QHBoxLayout();
gameCFG = new GameCFGWidget(this);
- pageLayout->addWidget(gameCFG, 0, 0, 1, 2);
-
- pageLayout->setRowStretch(2, 1);
+ pageLayout->addWidget(gameCFG, 3, Qt::AlignTop);
teamsSelect = new TeamSelWidget(this);
- pageLayout->addWidget(teamsSelect, 0, 2, 3, 2);
+ pageLayout->addWidget(teamsSelect, 2, Qt::AlignTop);
return pageLayout;
}
--- a/QTfrontend/ui/page/pagemultiplayer.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagemultiplayer.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagenet.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagenet.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagenet.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagenet.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagenetgame.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagenetgame.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagenetgame.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagenetgame.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagenetserver.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagenetserver.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -79,6 +79,16 @@
BtnShare->setWhatsThis(QPushButton::tr("Click to copy your unique server URL in your clipboard. Send this link to your friends ands and they will be able to join you."));
gbLayout->addWidget(BtnShare, 2, 1);
+ labelURL = new QLabel(gb);
+ labelURL->setText(
+ "<style type=\"text/css\"> a { color: #ffcc00; } </style>"
+ "<div align=\"center\">"
+ "<a href=\"https://code.google.com/p/hedgewars/wiki/HWPlaySchemeSyntax\">" +
+ tr("Click here for details") +
+ "</a></div>");
+ labelURL->setOpenExternalLinks(true);
+ gbLayout->addWidget(labelURL, 3, 1);
+
return pageLayout;
}
--- a/QTfrontend/ui/page/pagenetserver.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagenetserver.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -32,8 +32,9 @@
QPushButton *BtnDefault;
QPushButton *BtnShare;
QLabel *labelSD;
+ QLabel *labelPort;
+ QLabel *labelURL;
QLineEdit *leServerDescr;
- QLabel *labelPort;
QSpinBox *sbPort;
protected:
--- a/QTfrontend/ui/page/pageoptions.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageoptions.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -275,11 +275,13 @@
winLabelX->setFixedWidth(40);
winLabelX->setAlignment(Qt::AlignCenter);
- windowWidthEdit = new QLineEdit(groupGame);
- windowWidthEdit->setValidator(new QIntValidator(this));
+ // TODO: less random max. also:
+ // make some min/max-consts, shared with engine?
+ windowWidthEdit = new QSpinBox(groupGame);
+ windowWidthEdit->setRange(640, 102400);
windowWidthEdit->setFixedSize(55, CBResolution->height());
- windowHeightEdit = new QLineEdit(groupGame);
- windowHeightEdit->setValidator(new QIntValidator(this));
+ windowHeightEdit = new QSpinBox(groupGame);
+ windowHeightEdit->setRange(480, 102400);
windowHeightEdit->setFixedSize(55, CBResolution->height());
winResLayout->addWidget(windowWidthEdit, 0);
@@ -585,13 +587,19 @@
CBLanguage = new QComboBox(groupMisc);
groupMisc->layout()->addWidget(CBLanguage, 0, 1);
QStringList locs = DataManager::instance().entryList("Locale", QDir::Files, QStringList("hedgewars_*.qm"));
- CBLanguage->addItem(QComboBox::tr("(System default)"), QString(""));
+ CBLanguage->addItem(QComboBox::tr("(System default)"), QString());
for(int i = 0; i < locs.count(); i++)
{
- QLocale loc(locs[i].replace(QRegExp("hedgewars_(.*)\\.qm"), "\\1"));
- CBLanguage->addItem(QLocale::languageToString(loc.language()) + " (" + QLocale::countryToString(loc.country()) + ")", loc.name());
+ QString lname = locs[i].replace(QRegExp("hedgewars_(.*)\\.qm"), "\\1");
+ QLocale loc(lname);
+ CBLanguage->addItem(QLocale::languageToString(loc.language()) + " (" + QLocale::countryToString(loc.country()) + ")", lname);
}
+ QLabel *restartNoticeLabel = new QLabel(groupMisc);
+ restartNoticeLabel->setText(QLabel::tr("This setting will be effective at next restart."));
+ groupMisc->layout()->addWidget(restartNoticeLabel, 1, 1);
+
+
// Divider
groupMisc->addDivider(); // row 1
@@ -600,14 +608,14 @@
CBNameWithDate = new QCheckBox(groupMisc);
CBNameWithDate->setText(QCheckBox::tr("Append date and time to record file name"));
- groupMisc->layout()->addWidget(CBNameWithDate, 2, 0, 1, 2);
+ groupMisc->layout()->addWidget(CBNameWithDate, 3, 0, 1, 2);
// Associate file extensions
BtnAssociateFiles = new QPushButton(groupMisc);
BtnAssociateFiles->setText(QPushButton::tr("Associate file extensions"));
BtnAssociateFiles->setVisible(!custom_data && !custom_config);
- groupMisc->layout()->addWidget(BtnAssociateFiles, 3, 0, 1, 2);
+ groupMisc->layout()->addWidget(BtnAssociateFiles, 4, 0, 1, 2);
}
#ifdef __APPLE__
--- a/QTfrontend/ui/page/pageoptions.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageoptions.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -77,8 +77,8 @@
QComboBox *CBTeamName;
IconedGroupBox *AGGroupBox;
QComboBox *CBResolution;
- QLineEdit *windowWidthEdit;
- QLineEdit *windowHeightEdit;
+ QSpinBox *windowWidthEdit;
+ QSpinBox *windowHeightEdit;
QComboBox *CBStereoMode;
QCheckBox *CBFrontendSound;
QCheckBox *CBFrontendMusic;
--- a/QTfrontend/ui/page/pageplayrecord.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageplayrecord.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageplayrecord.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageplayrecord.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageroomslist.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageroomslist.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -28,6 +28,7 @@
#include <QGroupBox>
#include <QMenu>
#include <QDebug>
+#include <QSplitter>
#include <QSortFilterProxyModel>
@@ -107,7 +108,18 @@
topLayout->setRowStretch(1, 0);
topLayout->setColumnStretch(3, 1);
+ // Rooms list and chat with splitter
+ m_splitter = new QSplitter();
+ m_splitter->setChildrenCollapsible(false);
+ pageLayout->addWidget(m_splitter, 100);
+
// Room list
+ QWidget * roomsListWidget = new QWidget(this);
+ m_splitter->setOrientation(Qt::Vertical);
+ m_splitter->addWidget(roomsListWidget);
+
+ QVBoxLayout * roomsLayout = new QVBoxLayout(roomsListWidget);
+ roomsLayout->setMargin(0);
roomsList = new RoomTableView(this);
roomsList->setSelectionBehavior(QAbstractItemView::SelectRows);
@@ -118,7 +130,7 @@
roomsList->setSelectionMode(QAbstractItemView::SingleSelection);
roomsList->setStyleSheet("QTableView { border-top-left-radius: 0px; }");
roomsList->setFocusPolicy(Qt::NoFocus);
- pageLayout->addWidget(roomsList, 200);
+ roomsLayout->addWidget(roomsList, 200);
// Room filters container
@@ -126,9 +138,9 @@
filtersContainer->setMaximumWidth(800);
filtersContainer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- pageLayout->addSpacing(7);
- pageLayout->addWidget(filtersContainer, 0, Qt::AlignHCenter);
- pageLayout->addSpacing(7);
+ roomsLayout->addSpacing(7);
+ roomsLayout->addWidget(filtersContainer, 0, Qt::AlignHCenter);
+ roomsLayout->addSpacing(7);
QHBoxLayout * filterLayout = new QHBoxLayout(filtersContainer);
filterLayout->setSpacing(0);
@@ -194,7 +206,7 @@
// Lobby chat
chatWidget = new HWChatWidget(this, false);
- pageLayout->addWidget(chatWidget, 350);
+ m_splitter->addWidget(chatWidget);
CBRules->addItem(QComboBox::tr("Any"));
@@ -251,6 +263,8 @@
void PageRoomsList::roomSelectionChanged(const QModelIndex & current, const QModelIndex & previous)
{
+ Q_UNUSED(previous);
+
BtnJoin->setEnabled(current.isValid());
}
@@ -732,14 +746,24 @@
bool PageRoomsList::restoreHeaderState()
{
- if (!m_gameSettings->contains("frontend/roomslist_header"))
- return false;
- return roomsList->horizontalHeader()->restoreState(QByteArray::fromBase64(
- (m_gameSettings->value("frontend/roomslist_header").toByteArray())));
+ if (m_gameSettings->contains("frontend/roomslist_splitter"))
+ {
+ m_splitter->restoreState(QByteArray::fromBase64(
+ (m_gameSettings->value("frontend/roomslist_splitter").toByteArray())));
+ }
+
+ if (m_gameSettings->contains("frontend/roomslist_header"))
+ {
+ return roomsList->horizontalHeader()->restoreState(QByteArray::fromBase64(
+ (m_gameSettings->value("frontend/roomslist_header").toByteArray())));
+ } else return false;
}
void PageRoomsList::saveHeaderState()
{
m_gameSettings->setValue("frontend/roomslist_header",
QString(roomsList->horizontalHeader()->saveState().toBase64()));
+
+ m_gameSettings->setValue("frontend/roomslist_splitter",
+ QString(m_splitter->saveState().toBase64()));
}
--- a/QTfrontend/ui/page/pageroomslist.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageroomslist.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -27,6 +27,7 @@
class QTableView;
class RoomsListModel;
class QSortFilterProxyModel;
+class QSplitter;
class RoomTableView : public QTableView
{
@@ -101,6 +102,7 @@
QSortFilterProxyModel * weaponsFilteredModel;
QAction * showGamesInLobby;
QAction * showGamesInProgress;
+ QSplitter * m_splitter;
AmmoSchemeModel * ammoSchemeModel;
--- a/QTfrontend/ui/page/pagescheme.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagescheme.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagescheme.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagescheme.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageselectweapon.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageselectweapon.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pageselectweapon.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pageselectweapon.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagesingleplayer.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagesingleplayer.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagesingleplayer.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagesingleplayer.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagetraining.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagetraining.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -118,7 +118,7 @@
DataManager & dataMgr = DataManager::instance();
// get locale
- QSettings settings("physfs://hedgewars.ini",
+ QSettings settings(dataMgr.settingsFileName(),
QSettings::IniFormat);
QString loc = settings.value("misc/locale", "").toString();
--- a/QTfrontend/ui/page/pagetraining.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagetraining.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagevideos.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagevideos.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/page/pagevideos.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/page/pagevideos.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/FreqSpinBox.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/FreqSpinBox.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/FreqSpinBox.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/FreqSpinBox.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/HistoryLineEdit.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/HistoryLineEdit.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/HistoryLineEdit.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/HistoryLineEdit.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/SmartLineEdit.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/SmartLineEdit.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/SmartLineEdit.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/SmartLineEdit.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/SquareLabel.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/SquareLabel.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/SquareLabel.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/SquareLabel.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/about.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/about.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/about.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/about.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/bgwidget.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/bgwidget.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/bgwidget.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/bgwidget.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/chatwidget.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/chatwidget.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -295,9 +295,9 @@
void HWChatWidget::linkClicked(const QUrl & link)
{
- if (link.scheme() == "http")
+ if ((link.scheme() == "http") or (link.scheme() == "https"))
QDesktopServices::openUrl(link);
- if (link.scheme() == "hwnick")
+ else if (link.scheme() == "hwnick")
{
// decode nick
QString nick = QString::fromUtf8(QByteArray::fromBase64(link.encodedQuery()));
@@ -368,15 +368,43 @@
return QString("<span class=\"nick\">%1</span>").arg(Qt::escape(nickname));
}
+const QRegExp HWChatWidget::URLREGEXP = QRegExp("(http(s)?://)?(www\\.)?((hedgewars\\.org|code\\.google\\.com|googlecode\\.com|hh\\.unit22\\.org)(/[^ ]*)?)");
-void HWChatWidget::onChatString(const QString& str)
+bool HWChatWidget::containsHighlight(const QString & sender, const QString & message)
{
- onChatString("", str);
+ if ((sender != m_userNick) && (!m_userNick.isEmpty()))
+ {
+ QString lcStr = message.toLower();
+
+ foreach (const QRegExp & hl, m_highlights)
+ {
+ if (lcStr.contains(hl))
+ return true;
+ }
+ }
+ return false;
}
-const QRegExp HWChatWidget::URLREGEXP = QRegExp("(http://)?(www\\.)?(hedgewars\\.org(/[^ ]*)?)");
+QString HWChatWidget::messageToHTML(const QString & message)
+{
+ QString formattedStr = Qt::escape(message);
+ // link some urls
+ formattedStr = formattedStr.replace(URLREGEXP, "<a href=\"http\\2://\\4\">\\4</a>");
+ return formattedStr;
+}
-void HWChatWidget::onChatString(const QString& nick, const QString& str)
+void HWChatWidget::onChatAction(const QString & nick, const QString & action)
+{
+ printChatString(nick, "* " + linkedNick(nick) + " " + messageToHTML(action), "Action", containsHighlight(nick, action));
+}
+
+void HWChatWidget::onChatMessage(const QString & nick, const QString & message)
+{
+ printChatString(nick, linkedNick(nick) + ": " + messageToHTML(message), "Chat", containsHighlight(nick, message));
+}
+
+void HWChatWidget::printChatString(
+ const QString & nick, const QString & str, const QString & cssClassPart, bool highlight)
{
QSortFilterProxyModel * playersSortFilterModel = qobject_cast<QSortFilterProxyModel *>(chatNicks->model());
if(!playersSortFilterModel)
@@ -387,58 +415,15 @@
if(!players)
return;
- if (!nick.isEmpty())
- {
- // don't show chat lines that are from ignored nicks
- if (players->isFlagSet(nick, PlayersListModel::Ignore))
- return;
- }
+ // don't show chat lines that are from ignored nicks
+ if (players->isFlagSet(nick, PlayersListModel::Ignore))
+ return;
bool isFriend = (!nick.isEmpty()) && players->isFlagSet(nick, PlayersListModel::Friend);
- QString formattedStr = Qt::escape(str.mid(1));
- // make hedgewars.org urls actual links
- formattedStr = formattedStr.replace(URLREGEXP, "<a href=\"http://\\3\">\\3</a>");
-
- // link the nick
- if(!nick.isEmpty())
- formattedStr.replace("|nick|", linkedNick(nick));
-
- QString cssClass("msg_UserChat");
+ QString cssClass = (isFriend ? "msg_Friend" : "msg_User") + cssClassPart;
- // check first character for color code and set color properly
- char c = str[0].toAscii();
- switch (c)
- {
- case 3:
- cssClass = (isFriend ? "msg_FriendJoin" : "msg_UserJoin");
- break;
- case 2:
- cssClass = (isFriend ? "msg_FriendAction" : "msg_UserAction");
- break;
- default:
- if (isFriend)
- cssClass = "msg_FriendChat";
- }
-
- bool isHL = false;
-
- if ((c != 3) && (!nick.isEmpty()) &&
- (nick != m_userNick) && (!m_userNick.isEmpty()))
- {
- QString lcStr = str.toLower();
-
- foreach (const QRegExp & hl, m_highlights)
- {
- if (lcStr.contains(hl))
- {
- isHL = true;
- break;
- }
- }
- }
-
- addLine(cssClass, formattedStr, isHL);
+ addLine(cssClass, str, highlight);
}
void HWChatWidget::addLine(const QString & cssClass, QString line, bool isHighlight)
@@ -513,6 +498,9 @@
emit nickCountUpdate(chatNicks->model()->rowCount());
+ if (!isIgnored)
+ printChatString(nick, QString("*** ") + tr("%1 has joined").arg(linkedNick(nick)), "Join", false);
+
if (notifyNick && notify && (m_helloSounds.size() > 0))
{
SDLInteraction::instance().playSoundFile(
@@ -522,9 +510,19 @@
void HWChatWidget::nickRemoved(const QString& nick)
{
+ nickRemoved(nick, "");
+}
+
+void HWChatWidget::nickRemoved(const QString& nick, const QString & message)
+{
chatEditLine->removeNickname(nick);
emit nickCountUpdate(chatNicks->model()->rowCount());
+
+ if (message.isEmpty())
+ printChatString(nick, QString("*** ") + tr("%1 has left").arg(linkedNick(nick)), "Leave", false);
+ else
+ printChatString(nick, QString("*** ") + tr("%1 has left (%2)").arg(linkedNick(nick)).arg(messageToHTML(message)), "Leave", false);
}
void HWChatWidget::clear()
@@ -583,6 +581,19 @@
}
}
+void HWChatWidget::onPlayerInfo(
+ const QString & nick,
+ const QString & ip,
+ const QString & version,
+ const QString & roomInfo)
+{
+ addLine("msg_PlayerInfo", QString(" >>> %1 - <span class=\"ipaddress\">%2</span> <span class=\"version\">%3</span> <span class=\"location\">%4</span>")
+ .arg(linkedNick(nick))
+ .arg(ip)
+ .arg(version)
+ .arg(roomInfo));
+}
+
void HWChatWidget::onKick()
{
QModelIndexList mil = chatNicks->selectionModel()->selectedRows();
--- a/QTfrontend/ui/widget/chatwidget.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/chatwidget.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -86,14 +86,39 @@
void beforeContentAdd();
void afterContentAdd();
+ /**
+ * @brief Checks whether the message contains a highlight.
+ * @param sender the sender of the message
+ * @param message the message
+ * @return true if the sender is somebody else and the message contains a highlight, otherwise false
+ */
+ bool containsHighlight(const QString & sender, const QString & message);
+ /**
+ * @brief Escapes HTML chars in the message and converts URls to HTML links.
+ * @param message the message to be converted to HTML
+ * @return the HTML message
+ */
+ QString messageToHTML(const QString & message);
+ void printChatString(
+ const QString & nick,
+ const QString & str,
+ const QString & cssClassPart,
+ bool highlight);
+
public slots:
- void onChatString(const QString& str);
- void onChatString(const QString& nick, const QString& str);
+ void onChatAction(const QString & nick, const QString & str);
+ void onChatMessage(const QString & nick, const QString & str);
void onServerMessage(const QString& str);
void nickAdded(const QString& nick, bool notifyNick);
void nickRemoved(const QString& nick);
+ void nickRemoved(const QString& nick, const QString& message);
void clear();
void adminAccess(bool);
+ void onPlayerInfo(
+ const QString & nick,
+ const QString & ip,
+ const QString & version,
+ const QString & roomInfo);
signals:
void chatLine(const QString& str);
--- a/QTfrontend/ui/widget/databrowser.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/databrowser.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/databrowser.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/databrowser.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/drawmapwidget.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/drawmapwidget.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/drawmapwidget.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/drawmapwidget.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/feedbackdialog.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/feedbackdialog.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -44,6 +44,9 @@
#ifdef Q_WS_MAC
#include <sys/sysctl.h>
+#ifndef _SC_NPROCESSORS_ONLN
+#define _SC_NPROCESSORS_ONLN 58
+#endif
#endif
#include <stdint.h>
@@ -84,10 +87,10 @@
"<h4>%3 <a href=\"http://code.google.com/p/hedgewars/wiki/KnownBugs\">known bugs</a><h4>"
"<h4>%4<h4>"
"</div>")
- .arg(tr("Please give us feedback!"))
+ .arg(tr("Send us feedback!"))
.arg(tr("We are always happy about suggestions, ideas, or bug reports."))
- .arg(tr("If you found a bug, you can see if it's already known here (english): "))
- .arg(tr("Your email address is optional, but we may want to contact you."))
+ .arg(tr("If you found a bug, you can see if it's already been reported here: "))
+ .arg(tr("Your email address is optional, but necessary if you want us to get back at you."))
);
info->setOpenExternalLinks(true);
pageLayout->addWidget(info);
@@ -244,12 +247,14 @@
MEMORYSTATUSEX status;
status.dwLength = sizeof(status);
GlobalMemoryStatusEx(&status);
- total_ram += QString::number(status.ullTotalPhys) + "\n";
+ total_ram += QString::number(status.ullTotalPhys/1024/1024) + " MB\n";
- switch(QSysInfo::WinVersion())
+ switch(QSysInfo::windowsVersion())
{
+ case QSysInfo::WV_NT: os_version += "Windows NT\n"; break;
case QSysInfo::WV_2000: os_version += "Windows 2000\n"; break;
case QSysInfo::WV_XP: os_version += "Windows XP\n"; break;
+ case QSysInfo::WV_2003: os_version += "Windows Server 2003\n"; break;
case QSysInfo::WV_VISTA: os_version += "Windows Vista\n"; break;
case QSysInfo::WV_WINDOWS7: os_version += "Windows 7\n"; break;
//case QSysInfo::WV_WINDOWS8: os_version += "Windows 8\n"; break; //QT 5+
@@ -266,8 +271,8 @@
#else
available_pages = 0,
#endif*/
- page_size = sysconf(_SC_PAGE_SIZE);
- total_ram += QString::number(pages * page_size) + "\n";
+ page_size = sysconf(_SC_PAGE_SIZE);
+ total_ram += QString::number(pages*page_size/1024/1024) + " MB\n";
os_version += "GNU/Linux or BSD\n";
#endif
@@ -281,7 +286,7 @@
delete process;
#endif
-#if defined(__i386__) || defined(__x86_64__)
+#if (!defined(Q_WS_MACX) && defined(__i386__)) || defined(__x86_64__)
// cpu info
quint32 registers[4];
quint32 i;
@@ -456,7 +461,7 @@
QString email = this->email->text();
QString captchaCode = this->captcha_code->text();
QString captchaID = QString::number(this->captchaID);
- QString version = "HedgewarsFoundation-Hedgewars-v" + *cVersionString + "_r" +
+ QString version = "HedgewarsFoundation-Hedgewars-v" + *cVersionString + "_r" +
*cRevisionString + "|" + *cHashString;
if (summary.isEmpty() || description.isEmpty())
--- a/QTfrontend/ui/widget/feedbackdialog.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/feedbackdialog.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/fpsedit.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/fpsedit.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/fpsedit.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/fpsedit.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/frameTeam.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/frameTeam.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/frameTeam.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/frameTeam.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/gamecfgwidget.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/gamecfgwidget.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -599,7 +599,7 @@
GameSchemes->setEnabled(false);
GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
}
- else
+ else if (m_master)
{
GameSchemes->setEnabled(true);
int num = GameSchemes->findText(scheme);
@@ -614,7 +614,7 @@
WeaponsName->setEnabled(false);
WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
}
- else
+ else if (m_master)
{
WeaponsName->setEnabled(true);
int num = WeaponsName->findText(weapons);
--- a/QTfrontend/ui/widget/gamecfgwidget.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/gamecfgwidget.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/hatbutton.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/hatbutton.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/hatbutton.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/hatbutton.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/hatprompt.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/hatprompt.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/hatprompt.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/hatprompt.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/hedgehogerWidget.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/hedgehogerWidget.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2008 Ulyanov Igor <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/hedgehogerWidget.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/hedgehogerWidget.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Ulyanov Igor <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/igbox.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/igbox.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/igbox.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/igbox.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/keybinder.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/keybinder.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/keybinder.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/keybinder.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/lineeditcursor.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/lineeditcursor.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/lineeditcursor.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/lineeditcursor.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/mapContainer.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/mapContainer.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -75,8 +75,11 @@
/* Layouts */
- QHBoxLayout * typeLayout = new QHBoxLayout();
- QHBoxLayout * seedLayout = new QHBoxLayout();
+ QWidget * topWidget = new QWidget();
+ QHBoxLayout * topLayout = new QHBoxLayout(topWidget);
+ topWidget->setContentsMargins(0, 0, 0, 0);
+ topLayout->setContentsMargins(0, 0, 0, 0);
+
QHBoxLayout * twoColumnLayout = new QHBoxLayout();
QVBoxLayout * leftLayout = new QVBoxLayout();
QVBoxLayout * rightLayout = new QVBoxLayout();
@@ -84,15 +87,13 @@
twoColumnLayout->addStretch(1);
twoColumnLayout->addLayout(rightLayout, 0);
QVBoxLayout * drawnControls = new QVBoxLayout();
- leftLayout->addLayout(typeLayout, 0);
- rightLayout->addLayout(seedLayout, 0);
/* Map type combobox */
- typeLayout->setSpacing(10);
- typeLayout->addWidget(new QLabel(tr("Map type:")), 0);
+ topLayout->setSpacing(10);
+ topLayout->addWidget(new QLabel(tr("Map type:")), 0);
cType = new QComboBox(this);
- typeLayout->addWidget(cType, 1);
+ topLayout->addWidget(cType, 1);
cType->insertItem(0, tr("Image map"), MapModel::StaticMap);
cType->insertItem(1, tr("Mission map"), MapModel::MissionMap);
cType->insertItem(2, tr("Hand-drawn"), MapModel::HandDrawnMap);
@@ -103,7 +104,7 @@
/* Randomize button */
- seedLayout->addStretch(1);
+ topLayout->addStretch(1);
const QIcon& lp = QIcon(":/res/dice.png");
QSize sz = lp.actualSize(QSize(65535, 65535));
btnRandomize = new QPushButton();
@@ -117,15 +118,16 @@
m_childWidgets << btnRandomize;
btnRandomize->setStyleSheet("padding: 5px;");
btnRandomize->setFixedHeight(cType->height());
- seedLayout->addWidget(btnRandomize, 1);
+ topLayout->addWidget(btnRandomize, 1);
/* Seed button */
+
btnSeed = new QPushButton(parentWidget()->parentWidget());
btnSeed->setText(tr("Seed"));
btnSeed->setStyleSheet("padding: 5px;");
btnSeed->setFixedHeight(cType->height());
connect(btnSeed, SIGNAL(clicked()), this, SLOT(showSeedPrompt()));
- seedLayout->addWidget(btnSeed, 0);
+ topLayout->addWidget(btnSeed, 0);
/* Map preview label */
@@ -137,6 +139,7 @@
mapPreview = new QPushButton(this);
mapPreview->setObjectName("mapPreview");
+ mapPreview->setFlat(true);
mapPreview->setFixedSize(256, 128);
mapPreview->setContentsMargins(0, 0, 0, 0);
leftLayout->addWidget(mapPreview, 0);
@@ -240,13 +243,15 @@
/* Theme chooser */
btnTheme = new QPushButton();
+ btnTheme->setFlat(true);
connect(btnTheme, SIGNAL(clicked()), this, SLOT(showThemePrompt()));
m_childWidgets << btnTheme;
bottomLeftLayout->addWidget(btnTheme, 0);
/* Add everything to main layout */
- mainLayout.addLayout(twoColumnLayout, 0);
+ mainLayout.addWidget(topWidget, 0);
+ mainLayout.addLayout(twoColumnLayout, 1);
/* Set defaults */
@@ -463,7 +468,7 @@
void HWMapContainer::setRandomMap()
{
if (!m_master) return;
-
+
setRandomSeed();
switch(m_mapInfo.type)
{
@@ -796,7 +801,7 @@
btnTheme->setFixedHeight(64);
btnTheme->setIconSize(iconSize);
btnTheme->setIcon(icon);
- btnTheme->setText(tr("Theme: ") + current.data(Qt::DisplayRole).toString());
+ btnTheme->setText(tr("Theme: %1").arg(current.data(Qt::DisplayRole).toString()));
updateThemeButtonSize();
}
@@ -927,5 +932,5 @@
m_theme = name;
btnTheme->setIcon(QIcon());
- btnTheme->setText(tr("Theme: ") + name);
+ btnTheme->setText(tr("Theme: %1").arg(name));
}
--- a/QTfrontend/ui/widget/mapContainer.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/mapContainer.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/qpushbuttonwithsound.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/qpushbuttonwithsound.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/qpushbuttonwithsound.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/qpushbuttonwithsound.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/roomnameprompt.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/roomnameprompt.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/roomnameprompt.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/roomnameprompt.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/seedprompt.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/seedprompt.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/seedprompt.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/seedprompt.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/selectWeapon.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/selectWeapon.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/selectWeapon.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/selectWeapon.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/teamselect.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/teamselect.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -38,7 +38,9 @@
curPlayingTeams.push_back(team);
connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)),
this, SLOT(hhNumChanged(const HWTeam&)));
+ blockSignals(true);
dynamic_cast<TeamShowWidget*>(framePlaying->getTeamWidget(team))->hhNumChanged();
+ blockSignals(false);
connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)),
this, SLOT(proxyTeamColorChanged(const HWTeam&)));
}
@@ -210,7 +212,9 @@
{
connect(framePlaying->getTeamWidget(team), SIGNAL(hhNmChanged(const HWTeam&)),
this, SLOT(hhNumChanged(const HWTeam&)));
+ blockSignals(true);
dynamic_cast<TeamShowWidget*>(framePlaying->getTeamWidget(team))->hhNumChanged();
+ blockSignals(false);
connect(framePlaying->getTeamWidget(team), SIGNAL(teamColorChanged(const HWTeam&)),
this, SLOT(proxyTeamColorChanged(const HWTeam&)));
emit teamColorChanged(((TeamShowWidget*)framePlaying->getTeamWidget(team))->getTeam());
@@ -258,12 +262,16 @@
// Add notice about number of required teams.
numTeamNotice = new QLabel(tr("At least two teams are required to play!"));
+ numTeamNotice->setWordWrap(true);
mainLayout.addWidget(numTeamNotice);
QPalette p;
p.setColor(QPalette::Window, QColor(0x00, 0x00, 0x00));
addScrArea(framePlaying, p.color(QPalette::Window).light(105), 150);
addScrArea(frameDontPlaying, p.color(QPalette::Window).dark(105), 0);
+
+ this->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
+ this->setMinimumWidth(200);
}
void TeamSelWidget::setAcceptOuter(bool acceptOuter)
--- a/QTfrontend/ui/widget/teamselect.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/teamselect.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/teamselhelper.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/teamselhelper.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/teamselhelper.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/teamselhelper.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2007 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/themeprompt.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/themeprompt.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/themeprompt.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/themeprompt.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/togglebutton.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/togglebutton.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/togglebutton.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/togglebutton.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2009 Kristian Lehmann <email@thexception.net>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/vertScrollArea.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/vertScrollArea.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/vertScrollArea.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/vertScrollArea.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/weaponItem.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/weaponItem.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui/widget/weaponItem.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui/widget/weaponItem.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/ui_hwform.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui_hwform.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -56,7 +56,7 @@
HWForm->setMinimumSize(QSize(720, 450));
QString title = QMainWindow::tr("Hedgewars %1").arg(*cVersionString);
#ifdef DEBUG
- title += QMainWindow::tr("-r%1 (%2)").arg(*cRevisionString, *cHashString);
+ title += QString("-r%1 (%2)").arg(*cRevisionString, *cHashString);
#endif
HWForm->setWindowTitle(title);
centralWidget = new QWidget(HWForm);
--- a/QTfrontend/ui_hwform.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/ui_hwform.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/DataManager.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/DataManager.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -25,6 +25,8 @@
#include <QStringList>
#include <QStandardItemModel>
#include <QFileInfo>
+#include <QSettings>
+#include <QColor>
#include "hwconsts.h"
#include "HWApplication.h"
@@ -162,6 +164,41 @@
return m_bindsModel;
}
+QString DataManager::settingsFileName()
+{
+ if(m_settingsFileName.isEmpty())
+ {
+ QFile settingsFile("physfs://settings.ini");
+
+ if(!settingsFile.exists())
+ {
+ QFile oldSettingsFile("physfs://hedgewars.ini");
+
+ settingsFile.open(QFile::WriteOnly);
+ settingsFile.close();
+
+ if(oldSettingsFile.exists())
+ {
+ QSettings sOld(oldSettingsFile.fileName(), QSettings::IniFormat);
+ QSettings sNew(settingsFile.fileName(), QSettings::IniFormat);
+ sNew.setIniCodec("UTF-8");
+
+ foreach(const QString & key, sOld.allKeys())
+ {
+ if(key.startsWith("colors/color"))
+ sNew.setValue(key, sOld.value(key).value<QColor>().name());
+ else
+ sNew.setValue(key, sOld.value(key));
+ }
+ }
+ }
+
+ m_settingsFileName = settingsFile.fileName();
+ }
+
+ return m_settingsFileName;
+}
+
void DataManager::reload()
{
// removed for now (also code was a bit unclean, could lead to segfault if
--- a/QTfrontend/util/DataManager.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/DataManager.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -117,6 +117,8 @@
QStandardItemModel * colorsModel();
QStandardItemModel * bindsModel();
+ QString settingsFileName();
+
static bool ensureFileExists(const QString & fileName);
public slots:
@@ -148,6 +150,7 @@
ThemeModel * m_themeModel; ///< theme model instance
QStandardItemModel * m_colorsModel;
QStandardItemModel * m_bindsModel;
+ QString m_settingsFileName;
};
#endif // HEDGEWARS_DATAMANAGER_H
--- a/QTfrontend/util/LibavInteraction.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/LibavInteraction.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/LibavInteraction.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/LibavInteraction.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/MessageDialog.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/MessageDialog.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/MessageDialog.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/MessageDialog.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/SDLInteraction.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/SDLInteraction.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/SDLInteraction.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/SDLInteraction.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/namegen.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/namegen.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2009 Martin Minarik <ttsmj@pokec.sk>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/namegen.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/namegen.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2009 Martin Minarik <ttsmj@pokec.sk>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/platform/CocoaInitializer.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/platform/CocoaInitializer.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/platform/CocoaInitializer.mm Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/platform/CocoaInitializer.mm Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/platform/InstallController.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/platform/InstallController.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/platform/InstallController.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/platform/InstallController.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/platform/M3InstallController.m Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/platform/M3InstallController.m Tue Jun 04 22:28:12 2013 +0200
@@ -35,8 +35,8 @@
@implementation M3InstallController
-- (id) init {
- if ((self = [super init])) {
+-(id) init {
+ if ((self = [super init])) {
NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
NSString *title = [NSString stringWithFormat:NSLocalizedString(@"%@ is currently running from a disk image", @"AppName is currently running from a disk image"), appName];
NSString *body = [NSString stringWithFormat:NSLocalizedString(@"Would you like to install %@ in your applications folder before quitting?", @"Would you like to install App Name in your applications folder before quitting?"), appName];
@@ -50,70 +50,91 @@
return self;
}
-- (void)displayInstaller {
+-(void) displayInstaller {
NSString *imageFilePath = [[[NSWorkspace sharedWorkspace] propertiesForPath:[[NSBundle mainBundle] bundlePath]] objectForKey:NSWorkspace_RBimagefilepath];
if (imageFilePath && ![imageFilePath isEqualToString:[NSString stringWithFormat:@"/Users/.%@/%@.sparseimage", NSUserName(), NSUserName()]] && ![[NSUserDefaults standardUserDefaults] boolForKey:@"M3DontAskInstallAgain"]) {
NSInteger returnValue = [alert runModal];
if (returnValue == NSAlertDefaultReturn) {
[self installApp];
}
- if ([[alert suppressionButton] state] == NSOnState) {
- [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"M3DontAskInstallAgain"];
+ if ([NSAlert instancesRespondToSelector:@selector(suppressionButton)])
+ if ([[alert performSelector:@selector(suppressionButton)] state] == NSOnState)
+ [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"M3DontAskInstallAgain"];
}
- }
}
-- (void)installApp {
+-(void) installApp {
NSString *appsPath = [[NSString stringWithString:@"/Applications"] stringByAppendingPathComponent:[[[NSBundle mainBundle] bundlePath] lastPathComponent]];
NSString *userAppsPath = [[[NSString stringWithString:@"~/Applications"] stringByAppendingPathComponent:[[[NSBundle mainBundle] bundlePath] lastPathComponent]] stringByExpandingTildeInPath];
NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"];
+ NSString *currentPath = [[NSBundle mainBundle] bundlePath];
+ NSString *finalPath;
+ NSError *error = nil;
+ BOOL success;
- //Delete the app that is installed
+ // Prepare the remove invocation
+ SEL removeSelector;
+ if ([NSFileManager instancesRespondToSelector:@selector(removeItemAtPath:error:)])
+ removeSelector = @selector(removeItemAtPath:error:);
+ else
+ removeSelector = @selector(removeFileAtPath:handler:);
+
+ NSMethodSignature *removeSignature = [NSFileManager instanceMethodSignatureForSelector:removeSelector];
+ NSInvocation *removeInvocation = [NSInvocation invocationWithMethodSignature:removeSignature];
+ [removeInvocation setTarget:[NSFileManager defaultManager]];
+ [removeInvocation setSelector:removeSelector];
+
+ // Delete the app if already installed
if ([[NSFileManager defaultManager] fileExistsAtPath:appsPath]) {
- if ([NSFileManager instancesRespondToSelector:@selector(removeItemAtPath:error:)])
- [[NSFileManager defaultManager] removeItemAtPath:appsPath error:nil];
- else
- //casting hides the deprecation warning
- [(id)[NSFileManager defaultManager] removeFileAtPath:appsPath handler:nil];
+ [removeInvocation setArgument:&appsPath atIndex:2];
+ [removeInvocation setArgument:&error atIndex:3];
+ [removeInvocation invoke];
}
- //Delete the app that is installed
- BOOL success = NO;
+
+ // Prepare the copy invocation
+ SEL copySelector;
if ([NSFileManager instancesRespondToSelector:@selector(copyItemAtPath:toPath:error:)])
- success = [[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] bundlePath]
- toPath:appsPath
- error:nil];
+ copySelector = @selector(copyItemAtPath:toPath:error:);
else
- success = [(id)[NSFileManager defaultManager] copyPath:[[NSBundle mainBundle] bundlePath]
- toPath:appsPath
- handler:nil];
- if (success) {
- NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"%@ installed successfully", @"App Name installed successfully"), appName],
- [NSString stringWithFormat:NSLocalizedString(@"%@ was installed in /Applications", @"App Name was installed in /Applications"), appName],
- NSLocalizedString(@"Quit", @"Quit"), nil, nil);
- } else {
+ copySelector = @selector(copyPath:toPath:handler:);
+
+ NSMethodSignature *copySignature = [NSFileManager instanceMethodSignatureForSelector:copySelector];
+ NSInvocation *copyInvocation = [NSInvocation invocationWithMethodSignature:copySignature];
+
+ [copyInvocation setTarget:[NSFileManager defaultManager]];
+ [copyInvocation setSelector:copySelector];
+
+ // Copy the app in /Applications
+ [copyInvocation setArgument:¤tPath atIndex:2];
+ [copyInvocation setArgument:&appsPath atIndex:3];
+ [copyInvocation setArgument:&error atIndex:4];
+ [copyInvocation invoke];
+ [copyInvocation getReturnValue:&success];
+ finalPath = @"/Applications";
+
+ // In case something went wrong, let's try again somewhere else
+ if (success == NO) {
+ // Delete the app if already installed
if ([[NSFileManager defaultManager] fileExistsAtPath:userAppsPath]) {
- if ([NSFileManager instancesRespondToSelector:@selector(removeItemAtPath:error:)])
- [[NSFileManager defaultManager] removeItemAtPath:userAppsPath error:nil];
- else
- [(id)[NSFileManager defaultManager] removeFileAtPath:userAppsPath handler:nil];
+ [removeInvocation setArgument:&userAppsPath atIndex:2];
+ [removeInvocation invoke];
}
- if ([NSFileManager instancesRespondToSelector:@selector(copyItemAtPath:toPath:error:)])
- success = [[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] bundlePath]
- toPath:userAppsPath
- error:nil];
- else
- success = [(id)[NSFileManager defaultManager] copyPath:[[NSBundle mainBundle] bundlePath]
- toPath:userAppsPath
- handler:nil];
- if (success) {
- NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"%@ installed successfully", @"AppName installed successfully"), appName],
- [NSString stringWithFormat:NSLocalizedString(@"%@ was installed in %@", @"App Name was installed in %@"), appName, [[NSString stringWithString:@"~/Applications"] stringByExpandingTildeInPath]],
- NSLocalizedString(@"Quit", @"Quit"), nil, nil);
- } else {
- NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"Could not install %@", @"Could not install App Name"), appName],
- NSLocalizedString(@"An error occurred when installing", @"An error occurred when installing"), NSLocalizedString(@"Quit", @"Quit"), nil, nil);
- }
+
+ // Copy the app in ~/Applications
+ [copyInvocation setArgument:&userAppsPath atIndex:3];
+ [copyInvocation invoke];
+ [copyInvocation getReturnValue:&success];
+ finalPath = [[NSString stringWithString:@"~/Applications"] stringByExpandingTildeInPath];
}
+
+ if (success)
+ NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"%@ installed successfully", @"successful installation title"), appName],
+ [NSString stringWithFormat:NSLocalizedString(@"%@ was installed in %@", @"successfull installation text"), appName, finalPath],
+ NSLocalizedString(@"Ok", @"ok message"), nil, nil);
+ else
+ NSRunAlertPanel([NSString stringWithFormat:NSLocalizedString(@"Could not install %@", @"installation failure title"), appName],
+ NSLocalizedString(@"An error occurred when installing", @"installation failure text"),
+ NSLocalizedString(@"Quit", @"exit message"), nil, nil);
}
@end
--- a/QTfrontend/util/platform/M3Panel.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/platform/M3Panel.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/platform/M3Panel.mm Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/platform/M3Panel.mm Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/platform/SparkleAutoUpdater.mm Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/platform/SparkleAutoUpdater.mm Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/platform/xfire.cpp Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/platform/xfire.cpp Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/util/platform/xfire.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/util/platform/xfire.h Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/QTfrontend/weapons.h Thu Apr 04 14:37:19 2013 +0200
+++ b/QTfrontend/weapons.h Tue Jun 04 22:28:12 2013 +0200
@@ -58,9 +58,9 @@
#define AMMOLINE_ONEEVERY_QT "1111119111111111111111111111111111111111111111111111111"
#define AMMOLINE_ONEEVERY_PROB "1111110111111111111111111111111111111111111111111111111"
-#define AMMOLINE_ONEEVERY_DELAY "0000000000000205500000040007004000000000220000000600020"
+#define AMMOLINE_ONEEVERY_DELAY "0000000000000000000000000000000000000000000000000000000"
#define AMMOLINE_ONEEVERY_CRATE "1111110111111111111111111111111111111111111111111111111"
-//When adding new weapons also inster one element in cDefaultAmmos list (hwconsts.cpp.in)
+//When adding new weapons also insert one element in cDefaultAmmos list (hwconsts.cpp.in)
--- a/README Thu Apr 04 14:37:19 2013 +0200
+++ b/README Tue Jun 04 22:28:12 2013 +0200
@@ -3,7 +3,7 @@
Images and sounds are distributed under the terms of the GNU FDL licence.
Source:
-Copyright 2004-2011 Andrey Korotaev <unC0Rr@gmail.com>
+Copyright 2004-2013 Andrey Korotaev <unC0Rr@gmail.com>
Portions copyright 2006-2008 Igor Ulyanov aka Displacer <iulyanov@gmail.com>
Instructions:
--- a/cmake_modules/CPackConfig.cmake Thu Apr 04 14:37:19 2013 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-
-# revision information in cpack-generated names
-if(CMAKE_BUILD_TYPE MATCHES DEBUG)
- set(full_suffix "${HEDGEWARS_VERSION}-r${HEDGEWARS_REVISION}")
-else()
- set(full_suffix "${HEDGEWARS_VERSION}")
-endif()
-
-# CPack variables
-set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hedgewars, a free turn-based strategy game")
-set(CPACK_PACKAGE_VENDOR "Hedgewars Project")
-set(CPACK_PACKAGE_FILE_NAME "Hedgewars-${full_suffix}")
-set(CPACK_SOURCE_PACKAGE_FILE_NAME "hedgewars-src-${full_suffix}")
-set(CPACK_SOURCE_GENERATOR "TBZ2")
-set(CPACK_PACKAGE_EXECUTABLES "hedgewars" "Hedgewars")
-set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
-set(CPACK_PACKAGE_INSTALL_DIRECTORY "Hedgewars ${full_suffix}")
-set(CPACK_STRIP_FILES true)
-
-if(WIN32 AND NOT UNIX)
- set(CPACK_NSIS_DISPLAY_NAME "Hedgewars")
- set(CPACK_NSIS_HELP_LINK "http://www.hedgewars.org/")
- set(CPACK_NSIS_URL_INFO_ABOUT "http://www.hedgewars.org/")
- set(CPACK_NSIS_CONTACT "unC0Rr@gmail.com")
- set(CPACK_NSIS_MODIFY_PATH OFF)
- set(CPACK_NSIS_EXECUTABLES_DIRECTORY "${target_binary_install_dir}")
- set(CPACK_NSIS_MUI_FINISHPAGE_RUN "hedgewars${CMAKE_EXECUTABLE_SUFFIX}")
- set(CPACK_GENERATOR "ZIP;NSIS")
- set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "hedgewars")
-endif(WIN32 AND NOT UNIX)
-
-set(CPACK_SOURCE_IGNORE_FILES
- #temporary files
- "~"
- ".swp"
- #version control
- "\\\\.hg"
- #output binary/library
- "\\\\.exe$"
- "\\\\.a$"
- "\\\\.so$"
- "\\\\.dylib$"
- "\\\\.dll$"
- "\\\\.ppu$"
- "\\\\.o$"
- "\\\\.cxx$"
- #graphics
- "\\\\.xcf$"
- "\\\\.svg$"
- "\\\\.svgz$"
- "\\\\.psd$"
- "\\\\.sifz$"
- #misc
- "\\\\.core$"
- "\\\\.sh$"
- "\\\\.orig$"
- "\\\\.layout$"
- "\\\\.db$"
- "\\\\.dof$"
- #archives
- "\\\\.zip$"
- "\\\\.gz$"
- "\\\\.bz2$"
- "\\\\.tmp$"
- #cmake-configured files
- "hwconsts\\\\.cpp$"
- "config\\\\.inc$"
- "hwengine\\\\.desktop$"
- "Info\\\\.plist$"
- #other cmake generated files
- "Makefile"
- "Doxyfile"
- "CMakeFiles"
- "[dD]ebug$"
- "[rR]elease$"
- "CPack"
- "cmake_install\\\\.cmake$"
- "CMakeCache\\\\.txt$"
-# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libtremor"
-# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libfreetype"
-# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/liblua"
- "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libopenalbridge"
- "^${CMAKE_CURRENT_SOURCE_DIR}/project_files/frontlib"
- "^${CMAKE_CURRENT_SOURCE_DIR}/project_files/promotional_art"
- "^${CMAKE_CURRENT_SOURCE_DIR}/project_files/cmdlineClient"
- "^${CMAKE_CURRENT_SOURCE_DIR}/tools/templates"
- "^${CMAKE_CURRENT_SOURCE_DIR}/bin/checkstack*"
- "^${CMAKE_CURRENT_SOURCE_DIR}/doc"
- "^${CMAKE_CURRENT_SOURCE_DIR}/templates"
- "^${CMAKE_CURRENT_SOURCE_DIR}/tmp"
- "^${CMAKE_CURRENT_SOURCE_DIR}/utils"
- "^${CMAKE_CURRENT_SOURCE_DIR}/share/hedgewars/Data/Maps/test"
- "^${CMAKE_CURRENT_SOURCE_DIR}/install_manifest.txt"
- "^${CMAKE_CURRENT_SOURCE_DIR}/CMakeCache.txt"
- "^${CMAKE_CURRENT_SOURCE_DIR}/hedgewars\\\\."
-)
-
-include(CPack)
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cmake_modules/cpackvars.cmake Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,105 @@
+
+# revision information in cpack-generated names
+if(CMAKE_BUILD_TYPE MATCHES DEBUG)
+ set(full_suffix "${HEDGEWARS_VERSION}-r${HEDGEWARS_REVISION}")
+else()
+ set(full_suffix "${HEDGEWARS_VERSION}")
+endif()
+
+# CPack variables
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hedgewars, a free turn-based strategy game")
+set(CPACK_PACKAGE_VENDOR "Hedgewars Project")
+set(CPACK_PACKAGE_FILE_NAME "Hedgewars-${full_suffix}")
+set(CPACK_SOURCE_PACKAGE_FILE_NAME "hedgewars-src-${full_suffix}")
+set(CPACK_SOURCE_GENERATOR "TBZ2")
+set(CPACK_PACKAGE_EXECUTABLES "hedgewars" "Hedgewars")
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "Hedgewars ${full_suffix}")
+set(CPACK_STRIP_FILES true)
+
+if(WIN32 AND NOT UNIX)
+ set(CPACK_NSIS_DISPLAY_NAME "Hedgewars")
+ set(CPACK_NSIS_HELP_LINK "http://www.hedgewars.org/")
+ set(CPACK_NSIS_URL_INFO_ABOUT "http://www.hedgewars.org/")
+ set(CPACK_NSIS_CONTACT "unC0Rr@gmail.com")
+ set(CPACK_NSIS_MODIFY_PATH OFF)
+ set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
+ set(CPACK_NSIS_MUI_FINISHPAGE_RUN "hedgewars${CMAKE_EXECUTABLE_SUFFIX}")
+ set(CPACK_NSIS_CREATE_ICONS "CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Hedgewars.lnk' '$INSTDIR\\\\hedgewars.exe'")
+ set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "hedgewars")
+endif(WIN32 AND NOT UNIX)
+
+set(CPACK_SOURCE_IGNORE_FILES
+ #temporary files
+ "~"
+ ".swp"
+ #version control
+ "\\\\.hg"
+ "\\\\.orig$"
+ #output binary/library
+ "\\\\.exe$"
+ "\\\\.a$"
+ "\\\\.so$"
+ "\\\\.dylib$"
+ "\\\\.dll$"
+ "\\\\.ppu$"
+ "\\\\.o$"
+ "\\\\.cxx$"
+ "\\\\.hi$"
+ #graphics
+ "\\\\.xcf$"
+ "\\\\.svg$"
+ "\\\\.svgz$"
+ "\\\\.psd$"
+ "\\\\.sifz$"
+ #misc
+ "\\\\.core$"
+ "\\\\.layout$"
+ "\\\\.db$"
+ "\\\\.dof$"
+ "\\\\.or$"
+ #archives
+ "\\\\.zip$"
+ "\\\\.gz$"
+ "\\\\.bz2$"
+ "\\\\.tmp$"
+ #cmake-configured files
+ "hwconsts\\\\.cpp$"
+ "config\\\\.inc$"
+ "hwengine\\\\.desktop$"
+ "Info\\\\.plist$"
+ #qt extra files
+ "moc_.*\\\\.cxx_parameters"
+ "\\\\.qrc.depends$"
+ "\\\\.qm$"
+ #other cmake generated files
+ "Makefile$"
+ "Doxyfile"
+ "CMakeFiles"
+ "[dD]ebug$"
+ "[rR]elease$"
+ "CPack"
+ "cmake_install\\\\.cmake$"
+ "cmake_uninstall\\\\.cmake$"
+ "CMakeCache\\\\.txt$"
+ "build_windows_.*\\\\.bat$"
+# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libtremor"
+# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libfreetype"
+# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/liblua"
+# "^${CMAKE_CURRENT_SOURCE_DIR}/project_files/frontlib"
+# "^${CMAKE_CURRENT_SOURCE_DIR}/project_files/cmdlineClient"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libopenalbridge"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/misc/winutils/bin"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/project_files/promotional_art"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/tools/templates"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/tools/drawMapTest"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/doc"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/tmp"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/utils"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/share/hedgewars/Data/Maps/test"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/install_manifest.txt"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/CMakeCache.txt"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/hedgewars\\\\."
+)
+
+include(CPack)
--- a/gameServer/Actions.hs Thu Apr 04 14:37:19 2013 +0200
+++ b/gameServer/Actions.hs Tue Jun 04 22:28:12 2013 +0200
@@ -20,6 +20,7 @@
import Control.Exception
import System.Process
import Network.Socket
+import System.Random
-----------------------------
#if defined(OFFICIAL_SERVER)
import OfficialServer.GameReplayStore
@@ -206,8 +207,9 @@
rnc <- gets roomsClients
newMasterId <- liftM (\ids -> fromMaybe (last . filter (/= ci) $ ids) delegateId) . io $ roomClientsIndicesM rnc ri
newMaster <- io $ client'sM rnc id newMasterId
+ oldMasterId <- io $ room'sM rnc masterID ri
+ oldMaster <- io $ client'sM rnc id oldMasterId
oldRoomName <- io $ room'sM rnc name ri
- oldMaster <- client's nick
kicked <- client's isKickedFromServer
thisRoomChans <- liftM (map sendChan) $ roomClientsS ri
let newRoomName = if (proto < 42) || kicked then nick newMaster else oldRoomName
@@ -216,12 +218,13 @@
, name = newRoomName
, isRestrictedJoins = False
, isRestrictedTeams = False
- , isRegisteredOnly = False
- , readyPlayers = if isReady newMaster then readyPlayers r else readyPlayers r + 1})
- , ModifyClient2 newMasterId (\c -> c{isMaster = True, isReady = True})
+ , isRegisteredOnly = False}
+ )
+ , ModifyClient2 newMasterId (\c -> c{isMaster = True})
+ , ModifyClient2 oldMasterId (\c -> c{isMaster = False})
, AnswerClients [sendChan newMaster] ["ROOM_CONTROL_ACCESS", "1"]
- , AnswerClients thisRoomChans ["CLIENT_FLAGS", "-h", oldMaster]
- , AnswerClients thisRoomChans ["CLIENT_FLAGS", "+hr", nick newMaster]
+ , AnswerClients thisRoomChans ["CLIENT_FLAGS", "-h", nick oldMaster]
+ , AnswerClients thisRoomChans ["CLIENT_FLAGS", "+h", nick newMaster]
]
newRoom' <- io $ room'sM rnc id ri
@@ -381,7 +384,7 @@
if p < 38 then
processAction $ ByeClient $ loc "Nickname is already in use"
else
- processAction $ NoticeMessage NickAlreadyInUse
+ mapM_ processAction [NoticeMessage NickAlreadyInUse, ModifyClient $ \c -> c{nick = B.empty}]
else
do
db <- gets (dbQueries . serverInfo)
@@ -615,6 +618,12 @@
processAction $ Warning versionsStats
+processAction (Random chans items) = do
+ let i = if null items then ["heads", "tails"] else items
+ n <- io $ randomRIO (0, length i - 1)
+ processAction $ AnswerClients chans ["CHAT", "[random]", i !! n]
+
+
#if defined(OFFICIAL_SERVER)
processAction SaveReplay = do
ri <- clientRoomA
--- a/gameServer/CoreTypes.hs Thu Apr 04 14:37:19 2013 +0200
+++ b/gameServer/CoreTypes.hs Tue Jun 04 22:28:12 2013 +0200
@@ -75,6 +75,7 @@
| CheckRecord
| CheckFailed B.ByteString
| CheckSuccess [B.ByteString]
+ | Random [ClientChan] [B.ByteString]
type ClientChan = Chan [B.ByteString]
@@ -108,8 +109,7 @@
isKickedFromServer :: Bool,
clientClan :: !(Maybe B.ByteString),
checkInfo :: Maybe CheckInfo,
- teamsInGame :: Word,
- actionsPending :: [Action]
+ teamsInGame :: Word
}
instance Eq ClientInfo where
@@ -238,8 +238,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.18 is out! Please update.</h3><p align=center><a href=http://hedgewars.org/download.html>Download page here</a></font>"
- 43 -- latestReleaseVersion
+ "<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>"
+ 45 -- latestReleaseVersion
41 -- earliestCompatibleVersion
46631
""
--- a/gameServer/HWProtoCore.hs Thu Apr 04 14:37:19 2013 +0200
+++ b/gameServer/HWProtoCore.hs Tue Jun 04 22:28:12 2013 +0200
@@ -4,7 +4,6 @@
import Control.Monad.Reader
import Data.Maybe
import qualified Data.ByteString.Char8 as B
-import qualified Data.List as L
--------------------------------------
import CoreTypes
import Actions
@@ -30,26 +29,28 @@
handleCmd ["PONG"] = do
cl <- thisClient
if pingsQueue cl == 0 then
- return $ actionsPending cl ++ [ModifyClient (\c -> c{actionsPending = []})]
+ return [ProtocolError "Protocol violation"]
else
return [ModifyClient (\c -> c{pingsQueue = pingsQueue c - 1})]
-handleCmd ("CMD" : parameters) =
- let c = concatMap B.words parameters in
- if not $ null c then
- h $ (upperCase . head $ c) : tail c
- else
- return []
+handleCmd ["CMD", parameters] = do
+ let (cmd, plist) = B.break (== ' ') parameters
+ let param = B.dropWhile (== ' ') plist
+ h (upperCase cmd) param
where
- h ["DELEGATE", n] = handleCmd ["DELEGATE", n]
- h ["STATS"] = handleCmd ["STATS"]
- h ["PART", msg] = handleCmd ["PART", msg]
- h ["QUIT", msg] = handleCmd ["QUIT", msg]
- h ["GLOBAL", msg] = do
+ h "DELEGATE" n | not $ B.null n = handleCmd ["DELEGATE", n]
+ h "STATS" _ = handleCmd ["STATS"]
+ h "PART" m | not $ B.null m = handleCmd ["PART", m]
+ | otherwise = handleCmd ["PART"]
+ h "QUIT" m | not $ B.null m = handleCmd ["QUIT", m]
+ | otherwise = handleCmd ["QUIT"]
+ h "RND" p = handleCmd ("RND" : B.words p)
+ h "GLOBAL" p = do
+ cl <- thisClient
rnc <- liftM snd ask
let chans = map (sendChan . client rnc) $ allClients rnc
- return [AnswerClients chans ["CHAT", "[global notice]", msg]]
- h c = return [Warning . B.concat . L.intersperse " " $ "Unknown cmd" : c]
+ return [AnswerClients chans ["CHAT", "[global notice]", p] | isAdministrator cl]
+ h c p = return [Warning $ B.concat ["Unknown cmd: /", c, p]]
handleCmd cmd = do
(ci, irnc) <- ask
@@ -72,9 +73,9 @@
let cl = rnc `client` fromJust maybeClientId
let roomId = clientRoom rnc clientId
let clRoom = room rnc roomId
- let roomMasterSign = if isMaster cl then "@" else ""
+ let roomMasterSign = if isMaster cl then "+" else ""
let adminSign = if isAdministrator cl then "@" else ""
- let rInfo = if roomId /= lobbyId then B.concat [roomMasterSign, "room ", name clRoom] else adminSign `B.append` "lobby"
+ let rInfo = if roomId /= lobbyId then B.concat [adminSign, roomMasterSign, "room ", name clRoom] else adminSign `B.append` "lobby"
let roomStatus = if isJust $ gameInfo clRoom then
if teamsInGame cl > 0 then "(playing)" else "(spectating)"
else
--- a/gameServer/HWProtoInRoomState.hs Thu Apr 04 14:37:19 2013 +0200
+++ b/gameServer/HWProtoInRoomState.hs Tue Jun 04 22:28:12 2013 +0200
@@ -59,7 +59,7 @@
else
liftM (head . (L.\\) (map B.singleton ['0'..]) . map teamcolor . teams) thisRoom
let roomTeams = teams rm
- let hhNum = let p = if not $ null roomTeams then hhnum $ head roomTeams else 4 in newTeamHHNum roomTeams p
+ let hhNum = let p = if not $ null roomTeams then minimum [hhnum $ head roomTeams, canAddNumber roomTeams] else 4 in newTeamHHNum roomTeams p
let newTeam = clNick `seq` TeamInfo ci clNick tName teamColor grave fort voicepack flag dif hhNum (hhsList hhsInfo)
return $
if not . null . drop (maxTeams rm - 1) $ roomTeams then
@@ -79,10 +79,7 @@
AnswerClients clChan ["TEAM_ACCEPTED", tName],
AnswerClients othChans $ teamToNet $ newTeam,
AnswerClients roomChans ["TEAM_COLOR", tName, teamColor],
- ModifyClient $ \c -> c{actionsPending = actionsPending cl
- ++ [AnswerClients clChan ["HH_NUM", tName, showB $ hhnum newTeam]]
- },
- AnswerClients [sendChan cl] ["PING"]
+ AnswerClients roomChans ["HH_NUM", tName, showB $ hhnum newTeam]
]
where
canAddNumber rt = (48::Int) - (sum $ map hhnum rt)
@@ -172,17 +169,15 @@
handleCmd_inRoom ["TOGGLE_READY"] = do
cl <- thisClient
chans <- roomClientsChans
- if isMaster cl then
- return []
- else
- return [
- ModifyRoom (\r -> r{readyPlayers = readyPlayers r + (if isReady cl then -1 else 1)}),
- ModifyClient (\c -> c{isReady = not $ isReady cl}),
- AnswerClients chans $ if clientProto cl < 38 then
- [if isReady cl then "NOT_READY" else "READY", nick cl]
- else
- ["CLIENT_FLAGS", if isReady cl then "-r" else "+r", nick cl]
- ]
+
+ return [
+ ModifyRoom (\r -> r{readyPlayers = readyPlayers r + (if isReady cl then -1 else 1)}),
+ ModifyClient (\c -> c{isReady = not $ isReady cl}),
+ AnswerClients chans $ if clientProto cl < 38 then
+ [if isReady cl then "NOT_READY" else "READY", nick cl]
+ else
+ ["CLIENT_FLAGS", if isReady cl then "-r" else "+r", nick cl]
+ ]
handleCmd_inRoom ["START_GAME"] = do
@@ -353,6 +348,10 @@
else
return []
+handleCmd_inRoom ("RND":rs) = do
+ n <- clientNick
+ s <- roomClientsChans
+ return [AnswerClients s ["CHAT", n, B.unwords $ "/rnd" : rs], Random s rs]
handleCmd_inRoom ["LIST"] = return [] -- for old clients (<= 0.9.17)
--- a/gameServer/HWProtoLobbyState.hs Thu Apr 04 14:37:19 2013 +0200
+++ b/gameServer/HWProtoLobbyState.hs Tue Jun 04 22:28:12 2013 +0200
@@ -92,12 +92,9 @@
, AnswerClients [sendChan cl] $ ["CLIENT_FLAGS", "+h", ownerNick]
]
++ (if clientProto cl < 38 then map (readynessMessage cl) jRoomClients else [sendStateFlags cl jRoomClients])
- ++ [AnswerClients [sendChan cl] ["PING"]
- , ModifyClient $ \c -> c{actionsPending = actionsPending cl
- ++ answerFullConfig cl (mapParams jRoom) (params jRoom)
- ++ answerTeams cl jRoom
- ++ watchRound cl jRoom chans}
- ]
+ ++ answerFullConfig cl (mapParams jRoom) (params jRoom)
+ ++ answerTeams cl jRoom
+ ++ watchRound cl jRoom chans
where
readynessMessage cl c = AnswerClients [sendChan cl] [if isReady c then "READY" else "NOT_READY", nick c]
@@ -147,6 +144,11 @@
else
liftM ((:) (AnswerClients [clChan] ["JOINING", roomName])) $ handleCmd_lobby ["JOIN_ROOM", roomName]
+
+handleCmd_lobby ("RND":rs) = do
+ c <- liftM sendChan thisClient
+ return [Random [c] rs]
+
---------------------------
-- Administrator's stuff --
--- a/gameServer/NetRoutines.hs Thu Apr 04 14:37:19 2013 +0200
+++ b/gameServer/NetRoutines.hs Tue Jun 04 22:28:12 2013 +0200
@@ -47,7 +47,6 @@
Nothing
Nothing
0
- []
)
writeChan chan $ Accept newClient
--- a/gameServer/OfficialServer/extdbinterface.hs Thu Apr 04 14:37:19 2013 +0200
+++ b/gameServer/OfficialServer/extdbinterface.hs Tue Jun 04 22:28:12 2013 +0200
@@ -14,7 +14,7 @@
dbQueryAccount =
- "SELECT users.pass, users_roles.rid FROM users LEFT JOIN users_roles ON users.uid = users_roles.uid WHERE users.name = ?"
+ "SELECT users.pass, users_roles.rid FROM users LEFT JOIN users_roles ON (users.uid = users_roles.uid AND users_roles.rid = 3) WHERE users.name = ?"
dbQueryStats =
"INSERT INTO gameserver_stats (players, rooms, last_update) VALUES (?, ?, UNIX_TIMESTAMP())"
@@ -29,7 +29,7 @@
execute statement [SqlByteString clNick]
passAndRole <- fetchRow statement
finish statement
- let response =
+ let response =
if isJust passAndRole then
(
clId,
--- a/gameServer/Utils.hs Thu Apr 04 14:37:19 2013 +0200
+++ b/gameServer/Utils.hs Tue Jun 04 22:28:12 2013 +0200
@@ -90,6 +90,8 @@
, (42, "0.9.18-dev")
, (43, "0.9.18")
, (44, "0.9.19-dev")
+ , (45, "0.9.19")
+ , (46, "0.9.20-dev")
]
askFromConsole :: B.ByteString -> IO B.ByteString
--- a/gameServer/hedgewars-server.cabal Thu Apr 04 14:37:19 2013 +0200
+++ b/gameServer/hedgewars-server.cabal Tue Jun 04 22:28:12 2013 +0200
@@ -21,6 +21,7 @@
bytestring,
bytestring-show,
network >= 2.3,
+ random,
time,
mtl >= 2,
dataenc,
--- a/hedgewars/ArgParsers.inc Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/ArgParsers.inc Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -173,9 +173,9 @@
mediaarray: array [0..9] of shortstring = ('--fullscreen-width', '--fullscreen-height', '--width', '--height', '--depth', '--volume','--nomusic','--nosound','--locale','--fullscreen');
allarray: array [0..13] of shortstring = ('--fullscreen-width','--fullscreen-height', '--width', '--height', '--depth','--volume','--nomusic','--nosound','--locale','--fullscreen','--showfps','--altdmg','--frame-interval','--low-quality');
reallyAll: array[0..30] of shortstring = (
- '--prefix', '--user-prefix', '--locale', '--fullscreen-width', '--fullscreen-height', '--width',
+ '--prefix', '--user-prefix', '--locale', '--fullscreen-width', '--fullscreen-height', '--width',
'--height', '--frame-interval', '--volume','--nomusic', '--nosound',
- '--fullscreen', '--showfps', '--altdmg', '--low-quality', '--raw-quality', '--stereo', '--nick',
+ '--fullscreen', '--showfps', '--altdmg', '--low-quality', '--raw-quality', '--stereo', '--nick',
{deprecated} '--depth', '--set-video', '--set-audio', '--set-other', '--set-multimedia', '--set-everything',
{internal} '--internal', '--port', '--recorder', '--landpreview',
{misc} '--stats-only', '--gci', '--help');
@@ -192,12 +192,12 @@
{--prefix} 0 : PathPrefix := getStringParameter (arg, paramIndex, parseParameter);
{--user-prefix} 1 : UserPathPrefix := getStringParameter (arg, paramIndex, parseParameter);
{--locale} 2 : cLocaleFName := getStringParameter (arg, paramIndex, parseParameter);
- {--fullscreen-width} 3 : cFullscreenWidth := getLongIntParameter(arg, paramIndex, parseParameter);
- {--fullscreen-height} 4 : cFullscreenHeight := getLongIntParameter(arg, paramIndex, parseParameter);
- {--width} 5 : cWindowedWidth := getLongIntParameter(arg, paramIndex, parseParameter);
- {--height} 6 : cWindowedHeight := getLongIntParameter(arg, paramIndex, parseParameter);
+ {--fullscreen-width} 3 : cFullscreenWidth := max(getLongIntParameter(arg, paramIndex, parseParameter), cMinScreenWidth);
+ {--fullscreen-height} 4 : cFullscreenHeight := max(getLongIntParameter(arg, paramIndex, parseParameter), cMinScreenHeight);
+ {--width} 5 : cWindowedWidth := max(2 * (getLongIntParameter(arg, paramIndex, parseParameter) div 2), cMinScreenWidth);
+ {--height} 6 : cWindowedHeight := max(2 * (getLongIntParameter(arg, paramIndex, parseParameter) div 2), cMinScreenHeight);
{--frame-interval} 7 : cTimerInterval := getLongIntParameter(arg, paramIndex, parseParameter);
- {--volume} 8 : SetVolume ( getLongIntParameter(arg, paramIndex, parseParameter) );
+ {--volume} 8 : SetVolume ( max(getLongIntParameter(arg, paramIndex, parseParameter), 0) );
{--nomusic} 9 : SetMusic ( false );
{--nosound} 10 : SetSound ( false );
{--fullscreen} 11 : cFullScreen := true;
--- a/hedgewars/CMakeLists.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -175,7 +175,7 @@
if(PNG_FOUND)
list(REMOVE_AT PNG_LIBRARIES 1) #removing the zlib library path
get_filename_component(PNG_LIBRARY_DIR ${PNG_LIBRARIES} PATH)
- list(APPEND pascal_flags "-dPNG_SCREENSHOTS" "-Fl${PNG_LIBRARY_DIR}")
+ list(APPEND pascal_flags "-dPNG_SCREENSHOTS" "-Fl${PNG_LIBRARY_DIR}" "-k-L${PNG_LIBRARY_DIR}")
endif()
--- a/hedgewars/GSHandlers.inc Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/GSHandlers.inc Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -197,6 +197,7 @@
tdY := Gear^.dY;
+
// might need some testing/adjustments - just to avoid projectiles to fly forever (accelerated by wind/skips)
if (hwRound(Gear^.X) < min(LAND_WIDTH div -2, -2048))
or (hwRound(Gear^.X) > max(LAND_WIDTH * 3 div 2, 6144)) then
@@ -429,14 +430,13 @@
CalcRotationDirAngle(Gear);
// let's add some smoke depending on speed
- s:= max(32,152 - hwRound(Distance(Gear^.dX,Gear^.dY)*120))+random(10);
+ s:= max(32,152 - round((abs(hwFloat2FLoat(Gear^.dX))+abs(hwFloat2Float(Gear^.dY)))*120))+random(10);
if (GameTicks mod s) = 0 then
begin
// adjust angle to match the texture
if Gear^.dX.isNegative then
- i:= 130
- else
- i:= 50;
+ i:= 130
+ else i:= 50;
smoke:= AddVisualGear(hwRound(Gear^.X)-round(cos((Gear^.DirAngle+i) * pi / 180)*20), hwRound(Gear^.Y)-round(sin((Gear^.DirAngle+i) * pi / 180)*20), vgtSmoke);
if smoke <> nil then
@@ -504,7 +504,11 @@
or (Gear^.Kind = gtBall) then
CalcRotationDirAngle(Gear)
else if (GameTicks and $1F) = 0 then
- AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace)
+ begin
+ if hwRound(Gear^.Y) > cWaterLine then
+ AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble)
+ else AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace)
+ end
end;
////////////////////////////////////////////////////////////////////////////////
@@ -521,24 +525,31 @@
exit
end;
if (GameTicks and $3F) = 0 then
- AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace);
+ begin
+ if hwRound(Gear^.Y) > cWaterLine then
+ AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble)
+ else AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace)
+ end
end;
////////////////////////////////////////////////////////////////////////////////
procedure doStepSnowball(Gear: PGear);
var kick, i: LongInt;
particle: PVisualGear;
+ gdX, gdY: hwFloat;
begin
AllInactive := false;
if (GameFlags and gfMoreWind) = 0 then
Gear^.dX := Gear^.dX + cWindSpeed;
+ gdX := Gear^.dX;
+ gdY := Gear^.dY;
doStepFallingGear(Gear);
CalcRotationDirAngle(Gear);
if (Gear^.State and gstCollision) <> 0 then
begin
- kick:= hwRound((hwAbs(Gear^.dX)+hwAbs(Gear^.dY)) * _20);
- Gear^.dY.isNegative:= (not Gear^.dY.isNegative);
- Gear^.dX.isNegative:= (not Gear^.dX.isNegative);
+ kick:= hwRound((hwAbs(gdX)+hwAbs(gdY)) * _20);
+ Gear^.dX:= gdX;
+ Gear^.dY:= gdY;
AmmoShove(Gear, 0, kick);
for i:= 15 + kick div 10 downto 0 do
begin
@@ -1418,7 +1429,9 @@
////////////////////////////////////////////////////////////////////////////////
procedure doStepMine(Gear: PGear);
var vg: PVisualGear;
+ dxdy: hwFloat;
begin
+ if Gear^.Health = 0 then dxdy:= hwAbs(Gear^.dX)+hwAbs(Gear^.dY);
if (Gear^.State and gstMoving) <> 0 then
begin
DeleteCI(Gear);
@@ -1436,14 +1449,8 @@
doStepFallingGear(Gear);
if (Gear^.Health = 0) then
begin
- if (not Gear^.dY.isNegative) and (Gear^.dY > _0_2) and (TestCollisionYwithGear(Gear, 1) <> 0) then
- inc(Gear^.Damage, hwRound(Gear^.dY * _70))
- else if (not Gear^.dX.isNegative) and (Gear^.dX > _0_2) and TestCollisionXwithGear(Gear, 1) then
- inc(Gear^.Damage, hwRound(Gear^.dX * _70))
- else if Gear^.dY.isNegative and (Gear^.dY < -_0_2) and (TestCollisionYwithGear(Gear, -1) <> 0) then
- inc(Gear^.Damage, hwRound(Gear^.dY * -_70))
- else if Gear^.dX.isNegative and (Gear^.dX < -_0_2) and TestCollisionXwithGear(Gear, -1) then
- inc(Gear^.Damage, hwRound(Gear^.dX * -_70));
+ if (dxdy > _0_4) and (Gear^.State and gstCollision <> 0) then
+ inc(Gear^.Damage, hwRound(dxdy * _50));
if ((GameTicks and $FF) = 0) and (Gear^.Damage > random(30)) then
begin
@@ -1577,46 +1584,38 @@
///////////////////////////////////////////////////////////////////////////////
-(*
-TODO
-Increase damage as barrel smokes?
-Try tweaking friction some more
-*)
procedure doStepRollingBarrel(Gear: PGear);
var
i: LongInt;
particle: PVisualGear;
+ dxdy: hwFloat;
begin
if (Gear^.dY.QWordValue = 0) and (Gear^.dY.QWordValue = 0) and (TestCollisionYwithGear(Gear, 1) = 0) then
SetLittle(Gear^.dY);
Gear^.State := Gear^.State or gstAnimation;
+ if Gear^.Health < cBarrelHealth then Gear^.State:= Gear^.State and not gstFrozen;
if ((Gear^.dX.QWordValue <> 0)
or (Gear^.dY.QWordValue <> 0)) then
begin
DeleteCI(Gear);
AllInactive := false;
- if (not Gear^.dY.isNegative) and (Gear^.dY > _0_2) and (TestCollisionYwithGear(Gear, 1) <> 0) then
+ dxdy:= hwAbs(Gear^.dX)+hwAbs(Gear^.dY);
+ doStepFallingGear(Gear);
+ if (Gear^.State and gstCollision <> 0) and(dxdy > _0_4) then
begin
- Gear^.State := Gear^.State or gsttmpFlag;
- inc(Gear^.Damage, hwRound(Gear^.dY * _70));
- for i:= min(12, hwRound(Gear^.dY*_10)) downto 0 do
+ if (TestCollisionYwithGear(Gear, 1) <> 0) then
begin
- particle := AddVisualGear(hwRound(Gear^.X) - 5 + Random(10), hwRound(Gear^.Y) + 12,vgtDust);
- if particle <> nil then
- particle^.dX := particle^.dX + (Gear^.dX.QWordValue / 21474836480)
- end
- end
- else if (not Gear^.dX.isNegative) and (Gear^.dX > _0_2) and TestCollisionXwithGear(Gear, 1) then
- inc(Gear^.Damage, hwRound(Gear^.dX * _70))
-
- else if Gear^.dY.isNegative and (Gear^.dY < -_0_2) and (TestCollisionYwithGear(Gear, -1) <> 0) then
- inc(Gear^.Damage, hwRound(Gear^.dY * -_70))
-
- else if Gear^.dX.isNegative and (Gear^.dX < -_0_2) and TestCollisionXwithGear(Gear, -1) then
- inc(Gear^.Damage, hwRound(Gear^.dX * -_70));
-
- doStepFallingGear(Gear);
+ Gear^.State := Gear^.State or gsttmpFlag;
+ for i:= min(12, hwRound(dxdy*_10)) downto 0 do
+ begin
+ particle := AddVisualGear(hwRound(Gear^.X) - 5 + Random(10), hwRound(Gear^.Y) + 12,vgtDust);
+ if particle <> nil then
+ particle^.dX := particle^.dX + (Gear^.dX.QWordValue / 21474836480)
+ end
+ end;
+ inc(Gear^.Damage, hwRound(dxdy * _50))
+ end;
CalcRotationDirAngle(Gear);
//CheckGearDrowning(Gear)
end
@@ -1655,23 +1654,19 @@
dec(Gear^.Health, Gear^.Damage);
Gear^.Damage := 0;
if Gear^.Health <= 0 then
- Gear^.doStep := @doStepCase;
- // Hand off to doStepCase for the explosion
-
+ doStepCase(Gear);
end;
procedure doStepCase(Gear: PGear);
var
i, x, y: LongInt;
k: TGearType;
- exBoom: boolean;
dX, dY: HWFloat;
hog: PHedgehog;
sparkles: PVisualGear;
gi: PGear;
begin
k := Gear^.Kind;
- exBoom := false;
if (Gear^.Message and gmDestroy) > 0 then
begin
@@ -1684,22 +1679,54 @@
Gear^.Message := Gear^.Message and (not (gmLJump or gmHJump));
exit
end;
+ if (k = gtExplosives) and (Gear^.Health < cBarrelHealth) then Gear^.State:= Gear^.State and not gstFrozen;
+
+ if ((k <> gtExplosives) and (Gear^.Damage > 0)) or ((k = gtExplosives) and (Gear^.Health<=0)) then
+ begin
+ x := hwRound(Gear^.X);
+ y := hwRound(Gear^.Y);
+ hog:= Gear^.Hedgehog;
+
+ DeleteGear(Gear);
+ // <-- delete gear!
+
+ if k = gtCase then
+ begin
+ doMakeExplosion(x, y, 25, hog, EXPLAutoSound);
+ for i:= 0 to 63 do
+ AddGear(x, y, gtFlame, 0, _0, _0, 0);
+ end
+ else if k = gtExplosives then
+ begin
+ doMakeExplosion(x, y, 75, hog, EXPLAutoSound);
+ for i:= 0 to 31 do
+ begin
+ dX := AngleCos(i * 64) * _0_5 * (getrandomf + _1);
+ dY := AngleSin(i * 64) * _0_5 * (getrandomf + _1);
+ AddGear(x, y, gtFlame, 0, dX, dY, 0);
+ AddGear(x, y, gtFlame, gstTmpFlag, -dX, -dY, 0);
+ end
+ end;
+ exit
+ end;
if k = gtExplosives then
begin
//if V > _0_03 then Gear^.State:= Gear^.State or gstAnimation;
if (hwAbs(Gear^.dX) > _0_15) or ((hwAbs(Gear^.dY) > _0_15) and (hwAbs(Gear^.dX) > _0_02)) then
+ begin
Gear^.doStep := @doStepRollingBarrel;
-
- if (Gear^.Health > 0) and ((Gear^.Health * 100 div cBarrelHealth) < random(90)) and ((GameTicks and $FF) = 0) then
+ exit;
+ end
+ else Gear^.dX:= _0;
+
+ if ((Gear^.Health * 100 div cBarrelHealth) < random(90)) and ((GameTicks and $FF) = 0) then
if (cBarrelHealth div Gear^.Health) > 2 then
AddVisualGear(hwRound(Gear^.X) - 16 + Random(32), hwRound(Gear^.Y) - 2, vgtSmoke)
- else
- AddVisualGear(hwRound(Gear^.X) - 16 + Random(32), hwRound(Gear^.Y) - 2, vgtSmokeWhite);
+ else
+ AddVisualGear(hwRound(Gear^.X) - 16 + Random(32), hwRound(Gear^.Y) - 2, vgtSmokeWhite);
dec(Gear^.Health, Gear^.Damage);
Gear^.Damage := 0;
- if Gear^.Health <= 0 then
- exBoom := true;
end
else
begin
@@ -1751,34 +1778,6 @@
end
end;
- if (Gear^.Damage > 0) or exBoom then
- begin
- x := hwRound(Gear^.X);
- y := hwRound(Gear^.Y);
- hog:= Gear^.Hedgehog;
-
- DeleteGear(Gear);
- // <-- delete gear!
-
- if k = gtCase then
- begin
- doMakeExplosion(x, y, 25, hog, EXPLAutoSound);
- for i:= 0 to 63 do
- AddGear(x, y, gtFlame, 0, _0, _0, 0);
- end
- else if k = gtExplosives then
- begin
- doMakeExplosion(x, y, 75, hog, EXPLAutoSound);
- for i:= 0 to 31 do
- begin
- dX := AngleCos(i * 64) * _0_5 * (getrandomf + _1);
- dY := AngleSin(i * 64) * _0_5 * (getrandomf + _1);
- AddGear(x, y, gtFlame, 0, dX, dY, 0);
- AddGear(x, y, gtFlame, gstTmpFlag, -dX, -dY, 0);
- end
- end;
- exit
- end;
if (Gear^.dY.QWordValue <> 0)
or (TestCollisionYwithGear(Gear, 1) = 0) then
@@ -2432,25 +2431,24 @@
var
dX, dY, gdX, gdY: hwFloat;
i: LongInt;
- dxn, dyn: boolean;
begin
AllInactive := false;
- dxn := Gear^.dX.isNegative;
- dyn := Gear^.dY.isNegative;
+ gdX := Gear^.dX;
+ gdY := Gear^.dY;
doStepFallingGear(Gear);
if (Gear^.State and gstCollision) <> 0 then
begin
- gdX := Gear^.dX;
- gdY := Gear^.dY;
doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, Gear^.Hedgehog, EXPLAutoSound);
-
- gdX.isNegative := not dxn;
- gdY.isNegative := not dyn;
+ gdX.isNegative := not gdX.isNegative;
+ gdY.isNegative := not gdY.isNegative;
+ gdX:= gdX*_0_2;
+ gdY:= gdY*_0_2;
+
for i:= 0 to 4 do
begin
- dX := gdX + (GetRandomf - _0_5) * _0_03;
- dY := gdY + (GetRandomf - _0_5) * _0_03;
+ dX := gdX + rndSign(GetRandomf) * _0_03;
+ dY := gdY + rndSign(GetRandomf) * _0_03;
AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtCluster, 0, dX, dY, 25);
end;
@@ -2459,7 +2457,11 @@
end;
if (GameTicks and $3F) = 0 then
- AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace)
+ begin
+ if hwRound(Gear^.Y) > cWaterLine then
+ AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble)
+ else AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace)
+ end
end;
////////////////////////////////////////////////////////////////////////////////
@@ -2767,7 +2769,6 @@
procedure doStepSeductionWork(Gear: PGear);
var i: LongInt;
hogs: PGearArrayS;
- len: Integer;
begin
AllInactive := false;
hogs := GearsNear(Gear^.X, Gear^.Y, gtHedgehog, Gear^.Radius);
@@ -2960,7 +2961,11 @@
doStepFallingGear(Gear);
if (GameTicks and $3F) = 0 then
- AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace);
+ begin
+ if hwRound(Gear^.Y) > cWaterLine then
+ AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBubble)
+ else AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace)
+ end;
if ((Gear^.State and gstCollision) <> 0) then
begin
@@ -3210,10 +3215,11 @@
move:= _0_02;
fuel:= 5;
end;*)
-
- if Gear^.Health > 0 then
- begin
- if (HHGear^.Message and gmUp) <> 0 then
+ if HHGear^.Message and gmPrecise <> 0 then
+ HedgehogChAngle(HHGear)
+ else if Gear^.Health > 0 then
+ begin
+ if HHGear^.Message and gmUp <> 0 then
begin
if (not HHGear^.dY.isNegative) or (HHGear^.Y > -_256) then
begin
@@ -3280,10 +3286,12 @@
Gear^.Tex := RenderStringTex(trmsg[sidFuel] + ': ' + inttostr(i) + '%', cWhiteColor, fntSmall)
end;
- if HHGear^.Message and (gmAttack or gmUp or gmPrecise or gmLeft or gmRight) <> 0 then
+ if (HHGear^.Message and (gmAttack or gmUp or gmLeft or gmRight) <> 0) and
+ (HHGear^.Message and gmPrecise = 0) then
Gear^.State := Gear^.State and (not gsttmpFlag);
- HHGear^.Message := HHGear^.Message and (not (gmUp or gmPrecise or gmLeft or gmRight));
+ if HHGear^.Message and gmPrecise = 0 then
+ HHGear^.Message := HHGear^.Message and (not (gmUp or gmLeft or gmRight));
HHGear^.State := HHGear^.State or gstMoving;
Gear^.X := HHGear^.X;
@@ -3300,7 +3308,7 @@
if // (Gear^.Health = 0)
(HHGear^.Damage <> 0)
//or CheckGearDrowning(HHGear)
- or (cWaterLine + 512 < hwRound(HHGear^.Y))
+ or (cWaterLine + cVisibleWater * 4 < hwRound(HHGear^.Y))
or (TurnTimeLeft = 0)
// allow brief ground touches - to be fair on this, might need another counter
or (((GameTicks and $1FF) = 0) and (not HHGear^.dY.isNegative) and (TestCollisionYwithGear(HHGear, 1) <> 0))
@@ -3701,7 +3709,11 @@
// wow! good candidate there, let's see if the distance and direction is okay!
if hasdxy then
begin
- s := r / Distance(iterator^.dX, iterator^.dY);
+ s := Distance(iterator^.dX, iterator^.dY);
+ // if the resulting distance is 0 skip this gear
+ if s.QWordValue = 0 then
+ continue;
+ s := r / s;
ox:= iterator^.X + s * iterator^.dX;
oy:= iterator^.Y + s * iterator^.dY;
end
@@ -4650,7 +4662,6 @@
resgear: PGear;
hh: PHedgehog;
i: LongInt;
- len: Integer;
begin
if (TurnTimeLeft > 0) then
dec(TurnTimeLeft);
@@ -4743,7 +4754,6 @@
graves: PGearArrayS;
hh: PHedgehog;
i: LongInt;
- len: Integer;
begin
AllInactive := false;
graves := GearsNear(Gear^.X, Gear^.Y, gtGrave, Gear^.Radius);
@@ -5093,7 +5103,18 @@
Gear^.Tex := RenderStringTex(trmsg[sidFuel] + ': ' + inttostr(t) +
'%', cWhiteColor, fntSmall)
end;
- if GameTicks mod 10 = 0 then dec(Gear^.Health);
+ if Gear^.Message and (gmUp or gmDown) <> 0 then
+ begin
+ StopSoundChan(Gear^.SoundChannel);
+ Gear^.SoundChannel:= -1;
+ if GameTicks mod 40 = 0 then dec(Gear^.Health)
+ end
+ else
+ begin
+ if Gear^.SoundChannel = -1 then
+ Gear^.SoundChannel := LoopSound(sndIceBeam);
+ if GameTicks mod 10 = 0 then dec(Gear^.Health)
+ end
end;
@@ -5110,17 +5131,6 @@
LastDamage:= nil;
X:= Hedgehog^.Gear^.X;
Y:= Hedgehog^.Gear^.Y;
- //unfreeze all semifrozen hogs - make this generic hog cleanup
-(*
- iter := GearsList;
- while iter <> nil do
- begin
- if (iter^.Kind = gtHedgehog) and
- (iter^.Hedgehog^.Effects[heFrozen] and $FF = 0) then
- iter^.Hedgehog^.Effects[heFrozen]:= 0;
- iter:= iter^.NextGear
- end
-*)
end;
end;
@@ -5135,21 +5145,22 @@
const iceRadius = 32;
const iceHeight = 40;
var
- HHGear: PGear;
+ HHGear, iter: PGear;
landRect: TSDL_Rect;
ndX, ndY: hwFloat;
- i, t, gX, gY: LongInt;
+ i, j, t, gX, gY: LongInt;
hogs: PGearArrayS;
- len: Integer;
+ vg: PVisualGear;
begin
HHGear := Gear^.Hedgehog^.Gear;
- if (Gear^.Message and gmAttack <> 0) or (Gear^.Health = 0) or (HHGear = nil) or (HHGear^.Damage <> 0) then
- begin
+ if (Gear^.Message and gmAttack <> 0) or (Gear^.Health = 0) or (HHGear = nil) or (HHGear^.Damage <> 0) or (HHGear^.dX.QWordValue > 4294967) then
+ begin
+ StopSoundChan(Gear^.SoundChannel);
DeleteGear(Gear);
AfterAttack;
exit
- end
- else if Gear^.Message and (gmUp or gmDown) = 0 then updateFuel(Gear);
+ end;
+ updateFuel(Gear);
with Gear^ do
begin
@@ -5173,7 +5184,7 @@
if Target.X <> NoPointX then
begin
- CheckCollisionWithLand(Gear);
+ CheckCollision(Gear);
if (State and gstCollision) <> 0 then
begin
if Timer = iceWaitCollision then
@@ -5205,6 +5216,49 @@
landRect.w := min(2*iceRadius, LAND_WIDTH - landRect.x - 1);
landRect.h := min(2*iceRadius, LAND_HEIGHT - landRect.y - 1);
UpdateLandTexture(landRect.x, landRect.w, landRect.y, landRect.h, true);
+
+ // Freeze nearby mines/explosives/cases too
+ iter := GearsList;
+ while iter <> nil do
+ begin
+ if (iter^.State and gstFrozen = 0) and
+ ((iter^.Kind = gtExplosives) or (iter^.Kind = gtCase) or (iter^.Kind = gtMine)) and
+ (abs(iter^.X.Round-target.x)+abs(iter^.Y.Round-target.y)+2<2*iceRadius) and (Distance(iter^.X-int2hwFloat(target.x),iter^.Y-int2hwFloat(target.y))<int2hwFloat(iceRadius*2)) then
+ begin
+ for t:= 0 to 5 do
+ begin
+ vg:= AddVisualGear(hwRound(iter^.X)+random(4)-8, hwRound(iter^.Y)+random(8), vgtDust, 1);
+ if vg <> nil then
+ begin
+ i:= random(100) + 155;
+ vg^.Tint:= i shl 24 or i shl 16 or $FF shl 8 or Longword(random(200) + 55);
+ vg^.Angle:= random(360);
+ vg^.dx:= 0.001 * random(80);
+ vg^.dy:= 0.001 * random(80)
+ end
+ end;
+ PlaySound(sndHogFreeze);
+ iter^.State:= iter^.State or gstFrozen;
+ if iter^.Kind = gtMine then // dud mine block
+ begin
+ vg:= AddVisualGear(hwRound(iter^.X) - 4 + Random(8), hwRound(iter^.Y) - 4 - Random(4), vgtSmoke);
+ if vg <> nil then
+ vg^.Scale:= 0.5;
+ PlaySound(sndVaporize);
+ iter^.Health := 0;
+ iter^.Damage := 0;
+ iter^.State := iter^.State and (not gstAttacking)
+ end
+ else if iter^.Kind = gtCase then
+ begin
+ DeleteCI(iter);
+ AddGearCI(iter)
+ end
+ else // gtExplosives
+ iter^.Health:= iter^.Health + cBarrelHealth
+ end;
+ iter:= iter^.NextGear
+ end;
// FillRoundInLandWithIce(Target.X, Target.Y, iceRadius);
SetAllHHToActive(true);
@@ -5213,10 +5267,26 @@
if (Timer = iceCollideWithWater) and ((GameTicks - Power) > groundFreezingTime) then
begin
+ PlaySound(sndHogFreeze);
DrawIceBreak(Target.X, cWaterLine - iceHeight, iceRadius, iceHeight);
SetAllHHToActive(true);
Timer := iceWaitCollision;
end;
+(*
+ Any ideas for something that would look good here?
+ if (Target.X <> NoPointX) and ((Timer = iceCollideWithGround) or (Timer = iceCollideWithWater)) and (GameTicks mod max((groundFreezingTime-((GameTicks - Power)*2)),2) = 0) then //and CheckLandValue(Target.X, Target.Y, lfIce) then
+ begin
+ vg:= AddVisualGear(Target.X+random(20)-10, Target.Y+random(40)-10, vgtDust, 1);
+ if vg <> nil then
+ begin
+ i:= random(100) + 155;
+ vg^.Tint:= IceColor or $FF;
+ vg^.Angle:= random(360);
+ vg^.dx:= 0.001 * random(80);
+ vg^.dy:= 0.001 * random(80)
+ end
+ end;
+*)
// freeze nearby hogs
hogs := GearsNear(int2hwFloat(Target.X), int2hwFloat(Target.Y), gtHedgehog, Gear^.Radius*2);
@@ -5229,7 +5299,10 @@
if hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] < 256 then
hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] := hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] + 1
else if hogs.ar^[i]^.Hedgehog^.Effects[heFrozen] = 256 then
- hogs.ar^[i]^.Hedgehog^.Effects[heFrozen]:= 200000;//cHedgehogTurnTime + cReadyDelay
+ begin
+ hogs.ar^[i]^.Hedgehog^.Effects[heFrozen]:= 200000-1;//cHedgehogTurnTime + cReadyDelay
+ PlaySound(sndHogFreeze);
+ end;
end;
inc(Pos)
end
@@ -5242,14 +5315,16 @@
X:= HHGear^.X;
Y:= HHGear^.Y
end;
- {if (gX > max(LAND_WIDTH,4096)*2) or
+ if (gX > max(LAND_WIDTH,4096)*2) or
(gX < -max(LAND_WIDTH,4096)) or
(gY < -max(LAND_HEIGHT,4096)) or
(gY > max(LAND_HEIGHT,4096)+512) then
- begin
- X:= HHGear^.X;
- Y:= HHGear^.Y
- end}
+ begin
+ //X:= HHGear^.X;
+ //Y:= HHGear^.Y
+ Target.X:= gX;
+ Target.Y:= gY;
+ end
end
end;
end;
--- a/hedgewars/PNGh.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/PNGh.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/SDLh.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/SDLh.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -35,12 +35,6 @@
{$ENDIF}
{$IFDEF UNIX}
- {$IFNDEF DARWIN}
- {necessary for statically linking physfs (divdi3 undefined on 32 bit)}
- {$IFDEF CPU32}
- {$linklib stdc++}
- {$ENDIF}
- {$ENDIF}
{$IFDEF HAIKU}
{$linklib root}
{$ELSE}
@@ -962,12 +956,11 @@
procedure SDL_StartTextInput; cdecl; external SDLLibName;
function SDL_PeepEvents(event: PSDL_Event; numevents: LongInt; action: TSDL_eventaction; minType, maxType: LongWord): LongInt; cdecl; external SDLLibName;
-function SDL_CreateThread(fn: Pointer; name: PChar; data: Pointer): PSDL_Thread; cdecl; external SDLLibName;
{$ELSE}
-function SDL_CreateThread(fn: Pointer; data: Pointer): PSDL_Thread; cdecl; external SDLLibName;
function SDL_PeepEvents(event: PSDL_Event; numevents: LongInt; action: TSDL_eventaction; mask: LongWord): LongInt; cdecl; external SDLLibName;
{$ENDIF}
+
function SDL_GetMouseState(x, y: PLongInt): Byte; cdecl; external SDLLibName;
function SDL_GetKeyName(key: LongWord): PChar; cdecl; external SDLLibName;
function SDL_GetScancodeName(key: LongWord): PChar; cdecl; external SDLLibName;
@@ -985,7 +978,13 @@
procedure SDL_WM_SetCaption(title: PChar; icon: PChar); cdecl; external SDLLibName;
function SDL_WM_ToggleFullScreen(surface: PSDL_Surface): LongInt; cdecl; external SDLLibName;
+
+// remember to mark the threaded functions as 'cdecl; export;'
+// (or have fun debugging nil arguments)
+function SDL_CreateThread(fn: Pointer; {$IFDEF SDL13}name: PChar;{$ENDIF} data: Pointer): PSDL_Thread; cdecl; external SDLLibName;
procedure SDL_WaitThread(thread: PSDL_Thread; status: PLongInt); cdecl; external SDLLibName;
+procedure SDL_KillThread(thread: PSDL_Thread); cdecl; external SDLLibName;
+
function SDL_CreateMutex: PSDL_mutex; cdecl; external SDLLibName;
procedure SDL_DestroyMutex(mutex: PSDL_mutex); cdecl; external SDLLibName;
function SDL_LockMutex(mutex: PSDL_mutex): LongInt; cdecl; external SDLLibName name 'SDL_mutexP';
--- a/hedgewars/VGSHandlers.inc Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/VGSHandlers.inc Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/config.inc.in Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/config.inc.in Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/hwLibrary.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/hwLibrary.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/hwengine.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/hwengine.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -32,7 +32,7 @@
uses SDLh, uMisc, uConsole, uGame, uConsts, uLand, uAmmos, uVisualGears, uGears, uStore, uWorld, uInputHandler
, uSound, uScript, uTeams, uStats, uIO, uLocale, uChat, uAI, uAIMisc, uAILandMarks, uLandTexture, uCollisions
, SysUtils, uTypes, uVariables, uCommands, uUtils, uCaptions, uDebug, uCommandHandlers, uLandPainted
- , uPhysFSLayer, uCursor
+ , uPhysFSLayer, uCursor, uRandom
{$IFDEF USE_VIDEO_RECORDING}, uVideoRec {$ENDIF}
{$IFDEF USE_TOUCH_INTERFACE}, uTouch {$ENDIF}
{$IFDEF ANDROID}, GLUnit{$ENDIF}
@@ -94,6 +94,7 @@
DisableSomeWeapons;
AddClouds;
AddFlakes;
+ SetRandomSeed(cSeed, false);
AssignHHCoords;
AddMiscGears;
StoreLoad(false);
@@ -107,7 +108,7 @@
ScriptCall('onGameStart');
GameState:= gsGame;
end;
- gsConfirm, gsGame:
+ gsConfirm, gsGame, gsChat:
begin
if not cOnlyStats then
{$IFDEF WEBGL}
@@ -119,12 +120,6 @@
DoGameTick(Lag);
if not cOnlyStats then ProcessVisualGears(Lag);
end;
- gsChat:
- begin
- if not cOnlyStats then DrawWorld(Lag);
- DoGameTick(Lag);
- if not cOnlyStats then ProcessVisualGears(Lag);
- end;
gsExit:
begin
DoTimer:= true;
@@ -200,10 +195,10 @@
// sdl on iphone supports only ashii keyboards and the unicode field is deprecated in sdl 1.3
KeyPressChat(SDL_GetKeyFromScancode(event.key.keysym.sym), event.key.keysym.sym); //TODO correct for keymodifiers
end
- else
- ProcessKey(event.key);
+ else
+ if GameState >= gsGame then ProcessKey(event.key);
SDL_KEYUP:
- if GameState <> gsChat then
+ if (GameState <> gsChat) and (GameState >= gsGame) then
ProcessKey(event.key);
SDL_WINDOWEVENT:
@@ -245,22 +240,19 @@
if GameState = gsChat then
KeyPressChat(event.key.keysym.unicode, event.key.keysym.sym)
else
- ProcessKey(event.key);
+ if GameState >= gsGame then ProcessKey(event.key);
SDL_KEYUP:
- if GameState <> gsChat then
+ if (GameState <> gsChat) and (GameState >= gsGame) then
ProcessKey(event.key);
SDL_MOUSEBUTTONDOWN:
if GameState = gsConfirm then
- begin
- resetPosition();
- ParseCommand('quit', true);
- end
+ ParseCommand('quit', true)
else
- ProcessMouse(event.button, true);
+ if (GameState >= gsGame) then ProcessMouse(event.button, true);
SDL_MOUSEBUTTONUP:
- ProcessMouse(event.button, false);
+ if (GameState >= gsGame) then ProcessMouse(event.button, false);
SDL_ACTIVEEVENT:
if (event.active.state and SDL_APPINPUTFOCUS) <> 0 then
@@ -390,7 +382,7 @@
' (' + cHashString + ') with protocol #' + inttostr(cNetProtoVersion));
AddFileLog('Prefix: "' + PathPrefix +'"');
AddFileLog('UserPrefix: "' + UserPathPrefix +'"');
-
+
for i:= 0 to ParamCount do
AddFileLog(inttostr(i) + ': ' + ParamStr(i));
--- a/hedgewars/options.inc Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/options.inc Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -39,7 +39,6 @@
{$IFDEF ANDROID}
{$DEFINE MOBILE}
- {$DEFINE USE_SDLTHREADS}
{$DEFINE USE_CONTEXT_RESTORE}
{$DEFINE Java_Prefix:= 'Java_org_hedgewars_hedgeroid_EngineProtocol_PascalExports_'}
{$ENDIF}
--- a/hedgewars/uAI.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uAI.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -30,7 +30,7 @@
implementation
uses uConsts, SDLh, uAIMisc, uAIAmmoTests, uAIActions,
- uAmmos, SysUtils{$IFNDEF USE_SDLTHREADS} {$IFDEF UNIX}, cthreads{$ENDIF} {$ENDIF}, uTypes,
+ uAmmos, SysUtils, uTypes,
uVariables, uCommands, uUtils, uDebug, uAILandMarks;
{$IFDEF AI_MAINTHREAD}
@@ -41,25 +41,21 @@
var BestActions: TActions;
CanUseAmmo: array [TAmmoType] of boolean;
StopThinking: boolean;
-{$IFDEF USE_SDLTHREADS}
- ThinkThread: PSDL_Thread = nil;
-{$ELSE}
- ThinkThread: TThreadID;
-{$ENDIF}
- hasThread: LongInt;
- StartTicks: LongInt;
+ StartTicks: Longword;
+ ThinkThread: PSDL_Thread;
+ ThreadLock: PSDL_Mutex;
procedure FreeActionsList;
begin
AddFileLog('FreeActionsList called');
- if hasThread <> 0 then
- begin
- AddFileLog('Waiting AI thread to finish');
+ if (ThinkThread <> nil) then
+ begin
StopThinking:= true;
- repeat
- SDL_Delay(10)
- until hasThread = 0
- end;
+ SDL_WaitThread(ThinkThread, nil);
+ end;
+ SDL_LockMutex(ThreadLock);
+ ThinkThread:= nil;
+ SDL_UnlockMutex(ThreadLock);
with CurrentHedgehog^ do
if Gear <> nil then
@@ -71,7 +67,6 @@
end;
-
const cBranchStackSize = 12;
type TStackEntry = record
WastedTicks: Longword;
@@ -128,22 +123,18 @@
with Me^.Hedgehog^ do
a:= CurAmmoType;
aa:= a;
-{$IFDEF USE_SDLTHREADS}
- SDL_delay(0); //ThreadSwitch was only a hint
-{$ELSE}
- ThreadSwitch();
-{$ENDIF}
+ SDL_delay(0); // hint to let the context switch run
repeat
- if (CanUseAmmo[a])
- and ((not rareChecks) or ((AmmoTests[a].flags and amtest_Rare) = 0))
- and ((i = 0) or ((AmmoTests[a].flags and amtest_NoTarget) = 0))
+ if (CanUseAmmo[a])
+ and ((not rareChecks) or ((AmmoTests[a].flags and amtest_Rare) = 0))
+ and ((i = 0) or ((AmmoTests[a].flags and amtest_NoTarget) = 0))
then
begin
{$HINTS OFF}
- Score:= AmmoTests[a].proc(Me, Targets.ar[i].Point, BotLevel, ap);
+ Score:= AmmoTests[a].proc(Me, Targets.ar[i], BotLevel, ap);
{$HINTS ON}
if Actions.Score + Score > BestActions.Score then
- if (BestActions.Score < 0) or (Actions.Score + Score > BestActions.Score + Byte(BotLevel) * 2048) then
+ if (BestActions.Score < 0) or (Actions.Score + Score > BestActions.Score + Byte(BotLevel - 1) * 2048) then
begin
BestActions:= Actions;
inc(BestActions.Score, Score);
@@ -155,10 +146,10 @@
AddAction(BestActions, aia_LookRight, 0, 200, 0, 0)
else if (ap.Angle < 0) then
AddAction(BestActions, aia_LookLeft, 0, 200, 0, 0);
-
+
if (Ammoz[a].Ammo.Propz and ammoprop_Timerable) <> 0 then
AddAction(BestActions, aia_Timer, ap.Time div 1000, 400, 0, 0);
-
+
if (Ammoz[a].Ammo.Propz and ammoprop_NoCrosshair) = 0 then
begin
dAngle:= LongInt(Me^.Angle) - Abs(ap.Angle);
@@ -173,23 +164,23 @@
AddAction(BestActions, aia_Down, aim_release, -dAngle, 0, 0)
end
end;
-
+
if (Ammoz[a].Ammo.Propz and ammoprop_NeedTarget) <> 0 then
begin
AddAction(BestActions, aia_Put, 0, 1, ap.AttackPutX, ap.AttackPutY)
end;
-
+
if (Ammoz[a].Ammo.Propz and ammoprop_OscAim) <> 0 then
begin
AddAction(BestActions, aia_attack, aim_push, 350 + random(200), 0, 0);
AddAction(BestActions, aia_attack, aim_release, 1, 0, 0);
-
+
if abs(ap.Angle) > 32 then
begin
AddAction(BestActions, aia_Down, aim_push, 100 + random(150), 0, 0);
AddAction(BestActions, aia_Down, aim_release, 32, 0, 0);
end;
-
+
AddAction(BestActions, aia_waitAngle, ap.Angle, 250, 0, 0);
AddAction(BestActions, aia_attack, aim_push, 1, 0, 0);
AddAction(BestActions, aia_attack, aim_release, 1, 0, 0);
@@ -248,21 +239,21 @@
if (Me^.State and gstAttacked) = 0 then
TestAmmos(Actions, Me, false);
-
+
BestRate:= RatePlace(Me);
BaseRate:= Max(BestRate, 0);
-// switch to 'skip' if we can't move because of mouse cursor being shown
+// switch to 'skip' if we cannot move because of mouse cursor being shown
if (Ammoz[Me^.Hedgehog^.CurAmmoType].Ammo.Propz and ammoprop_NeedTarget) <> 0 then
AddAction(Actions, aia_Weapon, Longword(amSkip), 100 + random(200), 0, 0);
-
-if ((CurrentHedgehog^.MultiShootAttacks = 0) or ((Ammoz[Me^.Hedgehog^.CurAmmoType].Ammo.Propz and ammoprop_NoMoveAfter) = 0))
+
+if ((CurrentHedgehog^.MultiShootAttacks = 0) or ((Ammoz[Me^.Hedgehog^.CurAmmoType].Ammo.Propz and ammoprop_NoMoveAfter) = 0))
and (GameFlags and gfArtillery = 0) then
begin
tmp:= random(2) + 1;
Push(0, Actions, Me^, tmp);
Push(0, Actions, Me^, tmp xor 3);
-
+
while (Stack.Count > 0) and (not StopThinking) do
begin
Pop(ticks, Actions, Me^);
@@ -272,7 +263,7 @@
AddAction(Actions, aia_WaitXL, hwRound(Me^.X), 0, 0, 0)
else
AddAction(Actions, aia_WaitXR, hwRound(Me^.X), 0, 0, 0);
-
+
steps:= 0;
while (not StopThinking) do
@@ -285,8 +276,8 @@
if ticks > maxticks then
break;
- if (BotLevel < 5)
- and (GoInfo.JumpType = jmpHJump)
+ if (BotLevel < 5)
+ and (GoInfo.JumpType = jmpHJump)
and (not checkMark(hwRound(Me^.X), hwRound(Me^.Y), markHJumped))
then // hjump support
begin
@@ -300,7 +291,7 @@
AddAction(MadeActions, aia_LookRight, 0, 200, 0, 0)
else
AddAction(MadeActions, aia_LookLeft, 0, 200, 0, 0);
-
+
AddAction(MadeActions, aia_HJump, 0, 305 + random(50), 0, 0);
AddAction(MadeActions, aia_HJump, 0, 350, 0, 0);
end;
@@ -308,8 +299,8 @@
Push(ticks, Stack.States[Pred(Stack.Count)].MadeActions, AltMe, Me^.Message)
end;
end;
- if (BotLevel < 3)
- and (GoInfo.JumpType = jmpLJump)
+ if (BotLevel < 3)
+ and (GoInfo.JumpType = jmpLJump)
and (not checkMark(hwRound(Me^.X), hwRound(Me^.Y), markLJumped))
then // ljump support
begin
@@ -328,7 +319,7 @@
// push current position so we proceed from it after checking jump+forward walk opportunities
if CanGo then Push(ticks, Actions, Me^, Me^.Message);
-
+
// first check where we go after jump walking forward
if Push(ticks, Actions, AltMe, Me^.Message) then
with Stack.States[Pred(Stack.Count)] do
@@ -336,10 +327,10 @@
break
end;
- // 'not CanGO' means we can't go straight, possible jumps are checked above
- if (not CanGo) then
+ // 'not CanGO' means we cannot go straight, possible jumps are checked above
+ if not CanGo then
break;
-
+
inc(steps);
Actions.actions[Pred(Actions.Count)].Param:= hwRound(Me^.X);
Rate:= RatePlace(Me);
@@ -352,17 +343,17 @@
end
else if Rate < BestRate then
break;
-
+
if ((Me^.State and gstAttacked) = 0) and ((steps mod 4) = 0) then
begin
if (steps > 4) and checkMark(hwRound(Me^.X), hwRound(Me^.Y), markWalkedHere) then
- break;
+ break;
addMark(hwRound(Me^.X), hwRound(Me^.Y), markWalkedHere);
TestAmmos(Actions, Me, ticks shr 12 = oldticks shr 12);
-
+
end;
-
+
if GoInfo.FallPix >= FallPixForBranching then
Push(ticks, Actions, Me^, Me^.Message xor 3); // aia_Left xor 3 = aia_Right
@@ -382,31 +373,26 @@
end {if}
end;
-function Think(Me: Pointer): ptrint;
+function Think(Me: PGear): LongInt; cdecl; export;
var BackMe, WalkMe: TGear;
switchCount: LongInt;
currHedgehogIndex, itHedgehog, switchesNum, i: Longword;
switchImmediatelyAvailable: boolean;
Actions: TActions;
begin
-InterlockedIncrement(hasThread);
-
-{$IFDEF AI_MAINTHREAD}
-StartTicks:= SDL_GetTicks();
-{$ELSE}
+dmgMod:= 0.01 * hwFloat2Float(cDamageModifier) * cDamagePercent;
StartTicks:= GameTicks;
-{$ENDIF}
currHedgehogIndex:= CurrentTeam^.CurrHedgehog;
itHedgehog:= currHedgehogIndex;
switchesNum:= 0;
switchImmediatelyAvailable:= (CurAmmoGear <> nil) and (CurAmmoGear^.Kind = gtSwitcher);
-if PGear(Me)^.Hedgehog^.BotLevel <> 5 then
+if Me^.Hedgehog^.BotLevel <> 5 then
switchCount:= HHHasAmmo(PGear(Me)^.Hedgehog^, amSwitch)
else switchCount:= 0;
-if (PGear(Me)^.State and gstAttacking) = 0 then
+if ((Me^.State and gstAttacked) = 0) or isInMultiShoot then
if Targets.Count > 0 then
begin
// iterate over current team hedgehogs
@@ -422,7 +408,7 @@
begin
// when AI has to use switcher, make it cost smth unless they have a lot of switches
if (switchCount < 10) then Actions.Score:= (-27+switchCount*3)*4000;
- AddAction(Actions, aia_Weapon, Longword(amSwitch), 300 + random(200), 0, 0);
+ AddAction(Actions, aia_Weapon, Longword(amSwitch), 300 + random(200), 0, 0);
AddAction(Actions, aia_attack, aim_push, 300 + random(300), 0, 0);
AddAction(Actions, aia_attack, aim_release, 1, 0, 0);
end;
@@ -436,10 +422,9 @@
itHedgehog:= Succ(itHedgehog) mod CurrentTeam^.HedgehogsNumber;
until (itHedgehog = currHedgehogIndex) or ((CurrentTeam^.Hedgehogs[itHedgehog].Gear <> nil) and (CurrentTeam^.Hedgehogs[itHedgehog].Effects[heFrozen]=0));
-
inc(switchesNum);
until (not (switchImmediatelyAvailable or (switchCount > 0)))
- or StopThinking
+ or StopThinking
or (itHedgehog = currHedgehogIndex)
or BestActions.isWalkingToABetterPlace;
@@ -460,10 +445,9 @@
end else SDL_Delay(100)
else
begin
- BackMe:= PGear(Me)^;
-
-//{$IFNDEF AI_MAINTHREAD}
- while (not StopThinking) and (BestActions.Count = 0) do
+ BackMe:= Me^;
+ i:= 12;
+ while (not StopThinking) and (BestActions.Count = 0) and (i > 0) do
begin
(*
@@ -478,17 +462,17 @@
Actions.Pos:= 0;
Actions.Score:= 0;
Walk(@WalkMe, Actions);
-{$IFNDEF AI_MAINTHREAD}
- if (not StopThinking) then
+ dec(i);
+ if not StopThinking then
SDL_Delay(100)
-{$ENDIF}
end
-//{$ENDIF}
end;
-PGear(Me)^.State:= PGear(Me)^.State and (not gstHHThinking);
+Me^.State:= Me^.State and (not gstHHThinking);
+SDL_LockMutex(ThreadLock);
+ThinkThread:= nil;
+SDL_UnlockMutex(ThreadLock);
Think:= 0;
-InterlockedDecrement(hasThread)
end;
procedure StartThink(Me: PGear);
@@ -517,22 +501,16 @@
exit
end;
-FillBonuses((Me^.State and gstAttacked) <> 0);
-AddFileLog('Enter Think Thread');
+FillBonuses(((Me^.State and gstAttacked) <> 0) and (not isInMultiShoot));
-{$IFDEF AI_MAINTHREAD}
-Think(Me);
-{$ELSE}
-{$IFDEF USE_SDLTHREADS}
-ThinkThread := SDL_CreateThread(@Think{$IFDEF SDL13}, nil{$ENDIF}, Me);
-{$ELSE}
-BeginThread(@Think, Me, ThinkThread);
-{$ENDIF}
-AddFileLog('Thread started');
-{$ENDIF}
+SDL_LockMutex(ThreadLock);
+ThinkThread:= SDL_CreateThread(@Think{$IFDEF SDL13}, 'think'{$ENDIF}, Me);
+SDL_UnlockMutex(ThreadLock);
end;
-//var scoreShown: boolean = false;
+{$IFDEF DEBUGAI}
+var scoreShown: boolean = false;
+{$ENDIF}
procedure ProcessBot;
const cStopThinkTime = 40;
@@ -550,21 +528,25 @@
StopMessages(Gear^.Message);
TryDo((Gear^.Message and gmAllStoppable) = 0, 'Engine bug: AI may break demos playing', true);
end;
-
+
if Gear^.Message <> 0 then
exit;
-
- //scoreShown:= false;
+
+{$IFDEF DEBUGAI}
+ scoreShown:= false;
+{$ENDIF}
StartThink(Gear);
StartTicks:= GameTicks
-
+
end else
begin
- {if not scoreShown then
+{$IFDEF DEBUGAI}
+ if not scoreShown then
begin
if BestActions.Score > 0 then ParseCommand('/say Expected score = ' + inttostr(BestActions.Score div 1024), true);
scoreShown:= true
- end;}
+ end;
+{$ENDIF}
ProcessAction(BestActions, Gear)
end
else if ((GameTicks - StartTicks) > cMaxAIThinkTime)
@@ -574,16 +556,15 @@
procedure initModule;
begin
- hasThread:= 0;
StartTicks:= 0;
-{$IFNDEF PAS2C}
- ThinkThread:= ThinkThread;
-{$ENDIF}
+ ThinkThread:= nil;
+ ThreadLock:= SDL_CreateMutex();
end;
procedure freeModule;
begin
FreeActionsList();
+ SDL_DestroyMutex(ThreadLock);
end;
end.
--- a/hedgewars/uAIActions.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uAIActions.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uAIAmmoTests.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uAIAmmoTests.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -20,7 +20,7 @@
unit uAIAmmoTests;
interface
-uses SDLh, uConsts, uFloat, uTypes;
+uses SDLh, uConsts, uFloat, uTypes, uAIMisc;
const
amtest_Rare = $00000001; // check only several positions
amtest_NoTarget = $00000002; // each pos, but no targetting
@@ -34,27 +34,27 @@
AttackPutX, AttackPutY: LongInt;
end;
-function TestBazooka(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestSnowball(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestGrenade(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestMolotov(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestClusterBomb(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestWatermelon(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestDrillRocket(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestMortar(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestShotgun(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestDesertEagle(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestSniperRifle(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestBaseballBat(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestFirePunch(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestWhip(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestKamikaze(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestAirAttack(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestTeleport(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestHammer(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-function TestCake(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestBazooka(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestSnowball(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestGrenade(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestMolotov(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestClusterBomb(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestWatermelon(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestDrillRocket(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestMortar(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestShotgun(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestDesertEagle(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestSniperRifle(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestBaseballBat(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestFirePunch(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestWhip(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestKamikaze(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestAirAttack(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestTeleport(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestHammer(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestCake(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
-type TAmmoTestProc = function (Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+type TAmmoTestProc = function (Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
TAmmoTest = record
proc: TAmmoTestProc;
flags: Longword;
@@ -123,14 +123,14 @@
);
implementation
-uses uAIMisc, uVariables, uUtils, uGearsHandlers;
+uses uVariables, uUtils, uGearsHandlers;
function Metric(x1, y1, x2, y2: LongInt): LongInt; inline;
begin
Metric:= abs(x1 - x2) + abs(y1 - y2)
end;
-function TestBazooka(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestBazooka(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
var Vx, Vy, r, mX, mY: real;
rTime: LongInt;
EX, EY: LongInt;
@@ -147,8 +147,8 @@
valueResult:= BadTurn;
repeat
rTime:= rTime + 300 + Level * 50 + random(300);
- Vx:= - windSpeed * rTime * 0.5 + (Targ.X + AIrndSign(2) - mX) / rTime;
- Vy:= cGravityf * rTime * 0.5 - (Targ.Y + 1 - mY) / rTime;
+ Vx:= - windSpeed * rTime * 0.5 + (Targ.Point.X + AIrndSign(2) - mX) / rTime;
+ Vy:= cGravityf * rTime * 0.5 - (Targ.Point.Y + 1 - mY) / rTime;
r:= sqr(Vx) + sqr(Vy);
if not (r > 1) then
begin
@@ -164,15 +164,15 @@
dY:= dY + cGravityf;
dec(t)
until (((Me = CurrentHedgehog^.Gear) and TestColl(trunc(x), trunc(y), 5)) or
- ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me, trunc(x), trunc(y), 5))) or (t <= 0);
+ ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me^.Hedgehog^.Gear, trunc(x), trunc(y), 5))) or (t <= 0);
EX:= trunc(x);
EY:= trunc(y);
if Level = 1 then
value:= RateExplosion(Me, EX, EY, 101, afTrackFall or afErasesLand)
else value:= RateExplosion(Me, EX, EY, 101);
- if value = 0 then
- value:= 1024 - Metric(Targ.X, Targ.Y, EX, EY) div 64;
+ if (value = 0) and (Targ.Kind = gtHedgehog) and (Targ.Score > 0) then
+ value:= 1024 - Metric(Targ.Point.X, Targ.Point.Y, EX, EY) div 64;
if valueResult <= value then
begin
ap.Angle:= DxDy2AttackAnglef(Vx, Vy) + AIrndSign(random((Level - 1) * 9));
@@ -184,12 +184,12 @@
end;
end
//until (value > 204800) or (rTime > 4250); not so useful since adding score to the drowning
-until rTime > 4250;
+until rTime > 5050 - Level * 800;
TestBazooka:= valueResult
end;
-function TestDrillRocket(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestDrillRocket(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
var Vx, Vy, r, mX, mY: real;
rTime: LongInt;
EX, EY: LongInt;
@@ -210,8 +210,8 @@
valueResult:= BadTurn;
repeat
rTime:= rTime + 300 + Level * 50 + random(300);
- Vx:= - windSpeed * rTime * 0.5 + (Targ.X + AIrndSign(2) - mX) / rTime;
- Vy:= cGravityf * rTime * 0.5 - (Targ.Y - 35 - mY) / rTime;
+ Vx:= - windSpeed * rTime * 0.5 + (Targ.Point.X + AIrndSign(2) - mX) / rTime;
+ Vy:= cGravityf * rTime * 0.5 - (Targ.Point.Y - 35 - mY) / rTime;
r:= sqr(Vx) + sqr(Vy);
if not (r > 1) then
begin
@@ -227,9 +227,9 @@
dY:= dY + cGravityf;
dec(t)
until (((Me = CurrentHedgehog^.Gear) and TestColl(trunc(x), trunc(y), 5)) or
- ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me, trunc(x), trunc(y), 5))) or (y > cWaterLine);
+ ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me^.Hedgehog^.Gear, trunc(x), trunc(y), 5))) or (y > cWaterLine);
- if TestCollWithLand(trunc(x), trunc(y), 5) and (Abs(Targ.X - trunc(x)) + Abs(Targ.Y - trunc(y)) > 21) then
+ if TestCollExcludingObjects(trunc(x), trunc(y), 5) and (Abs(Targ.Point.X - trunc(x)) + Abs(Targ.Point.Y - trunc(y)) > 21) then
begin
timer := 500;
t2 := 0.5 / sqrt(sqr(dX) + sqr(dY));
@@ -239,16 +239,18 @@
x:= x + dX;
y:= y + dY;
dec(timer);
- until (Abs(Targ.X - trunc(x)) + Abs(Targ.Y - trunc(y)) < 22)
+ until (Abs(Targ.Point.X - trunc(x)) + Abs(Targ.Point.Y - trunc(y)) < 22)
or (x < 0)
or (y < 0)
or (trunc(x) > LAND_WIDTH)
or (trunc(y) > LAND_HEIGHT)
- or (not TestCollWithLand(trunc(x), trunc(y), 5))
+ or not TestCollExcludingObjects(trunc(x), trunc(y), 5)
or (timer = 0)
end;
EX:= trunc(x);
EY:= trunc(y);
+ // Try to prevent AI from thinking firing into water will cause a drowning
+ if (EY < cWaterLine-5) and (Timer > 0) and (Abs(Targ.Point.X - trunc(x)) + Abs(Targ.Point.Y - trunc(y)) > 21) then exit(BadTurn);
if Level = 1 then
value:= RateExplosion(Me, EX, EY, 101, afTrackFall or afErasesLand)
else value:= RateExplosion(Me, EX, EY, 101);
@@ -262,12 +264,12 @@
valueResult:= value-2500 // trying to make it slightly less attractive than a bazooka, to prevent waste. AI could use awareness of weapon count
end;
end
- until rTime > 4250;
+ until rTime > 5050 - Level * 800;
TestDrillRocket:= valueResult
end;
-function TestSnowball(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestSnowball(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
var Vx, Vy, r: real;
rTime: LongInt;
EX, EY: LongInt;
@@ -285,8 +287,8 @@
valueResult:= BadTurn;
repeat
rTime:= rTime + 300 + Level * 50 + random(1000);
- Vx:= - windSpeed * rTime * 0.5 + ((Targ.X + AIrndSign(2)) - meX) / rTime;
- Vy:= cGravityf * rTime * 0.5 - (Targ.Y - meY) / rTime;
+ Vx:= - windSpeed * rTime * 0.5 + ((Targ.Point.X + AIrndSign(2)) - meX) / rTime;
+ Vy:= cGravityf * rTime * 0.5 - (Targ.Point.Y - meY) / rTime;
r:= sqr(Vx) + sqr(Vy);
if not (r > 1) then
begin
@@ -302,14 +304,14 @@
dY:= dY + cGravityf;
dec(t)
until (((Me = CurrentHedgehog^.Gear) and TestColl(trunc(x), trunc(y), 5)) or
- ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me, trunc(x), trunc(y), 5))) or (t <= 0);
+ ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me^.Hedgehog^.Gear, trunc(x), trunc(y), 5))) or (t <= 0);
EX:= trunc(x);
EY:= trunc(y);
- value:= RateShove(trunc(x), trunc(y), 5, 1, trunc((abs(dX)+abs(dY))*20), -dX, -dY, afTrackFall);
+ value:= RateShove(Me, trunc(x), trunc(y), 5, 1, trunc((abs(dX)+abs(dY))*20), -dX, -dY, afTrackFall);
// LOL copypasta: this is score for digging with... snowball
//if value = 0 then
- // value:= - Metric(Targ.X, Targ.Y, EX, EY) div 64;
+ // value:= - Metric(Targ.Point.X, Targ.Point.Y, EX, EY) div 64;
if valueResult <= value then
begin
@@ -321,11 +323,11 @@
valueResult:= value
end;
end
-until (rTime > 4250);
+until (rTime > 5050 - Level * 800);
TestSnowball:= valueResult
end;
-function TestMolotov(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestMolotov(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
var Vx, Vy, r: real;
Score, EX, EY, valueResult: LongInt;
TestTime: Longword;
@@ -339,8 +341,8 @@
ap.ExplR:= 0;
repeat
inc(TestTime, 300);
- Vx:= (Targ.X - meX) / TestTime;
- Vy:= cGravityf * (TestTime div 2) - Targ.Y - meY / TestTime;
+ Vx:= (Targ.Point.X - meX) / TestTime;
+ Vy:= cGravityf * (TestTime div 2) - Targ.Point.Y - meY / TestTime;
r:= sqr(Vx) + sqr(Vy);
if not (r > 1) then
begin
@@ -354,7 +356,7 @@
dY:= dY + cGravityf;
dec(t)
until (((Me = CurrentHedgehog^.Gear) and TestColl(trunc(x), trunc(y), 6)) or
- ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me, trunc(x), trunc(y), 6))) or (t = 0);
+ ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me^.Hedgehog^.Gear, trunc(x), trunc(y), 6))) or (t = 0);
EX:= trunc(x);
EY:= trunc(y);
if t < 50 then
@@ -372,11 +374,11 @@
valueResult:= Score
end;
end
-until (TestTime > 4250);
+until (TestTime > 5050 - Level * 800);
TestMolotov:= valueResult
end;
-function TestGrenade(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestGrenade(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
const tDelta = 24;
var Vx, Vy, r: real;
Score, EX, EY, valueResult: LongInt;
@@ -391,8 +393,8 @@
meY:= hwFloat2Float(Me^.Y);
repeat
inc(TestTime, 1000);
- Vx:= (Targ.X - meX) / (TestTime + tDelta);
- Vy:= cGravityf * ((TestTime + tDelta) div 2) - (Targ.Y - meY) / (TestTime + tDelta);
+ Vx:= (Targ.Point.X - meX) / (TestTime + tDelta);
+ Vy:= cGravityf * ((TestTime + tDelta) div 2) - (Targ.Point.Y - meY) / (TestTime + tDelta);
r:= sqr(Vx) + sqr(Vy);
if not (r > 1) then
begin
@@ -406,7 +408,7 @@
dY:= dY + cGravityf;
dec(t)
until (((Me = CurrentHedgehog^.Gear) and TestColl(trunc(x), trunc(y), 5)) or
- ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me, trunc(x), trunc(y), 5))) or (t = 0);
+ ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me^.Hedgehog^.Gear, trunc(x), trunc(y), 5))) or (t = 0);
EX:= trunc(x);
EY:= trunc(y);
if t < 50 then
@@ -418,8 +420,8 @@
if (valueResult < Score) and (Score > 0) then
begin
- ap.Angle:= DxDy2AttackAnglef(Vx, Vy) + AIrndSign(random(Level));
- ap.Power:= trunc(sqrt(r) * cMaxPower) + AIrndSign(random(Level) * 15);
+ ap.Angle:= DxDy2AttackAnglef(Vx, Vy) + AIrndSign(random(Level * 3));
+ ap.Power:= trunc(sqrt(r) * cMaxPower) + AIrndSign(random(Level) * 20);
ap.Time:= TestTime;
ap.ExplR:= 100;
ap.ExplX:= EX;
@@ -428,11 +430,11 @@
end;
end
//until (Score > 204800) or (TestTime > 4000);
-until TestTime > 4000;
+until TestTime > 4500 - Level * 512;
TestGrenade:= valueResult
end;
-function TestClusterBomb(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestClusterBomb(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
const tDelta = 24;
var Vx, Vy, r: real;
Score, EX, EY, valueResult: LongInt;
@@ -448,11 +450,11 @@
repeat
inc(TestTime, 900);
// Try to overshoot slightly, seems to pay slightly better dividends in terms of hitting cluster
- if meX<Targ.X then
- Vx:= ((Targ.X+10) - meX) / (TestTime + tDelta)
+ if meX<Targ.Point.X then
+ Vx:= ((Targ.Point.X+10) - meX) / (TestTime + tDelta)
else
- Vx:= ((Targ.X-10) - meX) / (TestTime + tDelta);
- Vy:= cGravityf * ((TestTime + tDelta) div 2) - ((Targ.Y-50) - meY) / (TestTime + tDelta);
+ Vx:= ((Targ.Point.X-10) - meX) / (TestTime + tDelta);
+ Vy:= cGravityf * ((TestTime + tDelta) div 2) - ((Targ.Point.Y-50) - meY) / (TestTime + tDelta);
r:= sqr(Vx)+sqr(Vy);
if not (r > 1) then
begin
@@ -466,7 +468,7 @@
dY:= dY + cGravityf;
dec(t)
until (((Me = CurrentHedgehog^.Gear) and TestColl(trunc(x), trunc(y), 5)) or
- ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me, trunc(x), trunc(y), 5))) or (t = 0);
+ ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me^.Hedgehog^.Gear, trunc(x), trunc(y), 5))) or (t = 0);
EX:= trunc(x);
EY:= trunc(y);
if t < 50 then
@@ -474,9 +476,9 @@
else
Score:= BadTurn;
- if valueResult < Score then
+ if Score > 0 then
begin
- ap.Angle:= DxDy2AttackAnglef(Vx, Vy) + AIrndSign(random(Level));
+ ap.Angle:= DxDy2AttackAnglef(Vx, Vy) + AIrndSign(random(Level * 2));
ap.Power:= trunc(sqrt(r) * cMaxPower) + AIrndSign(random(Level) * 15);
ap.Time:= TestTime div 1000 * 1000;
ap.ExplR:= 90;
@@ -489,7 +491,7 @@
TestClusterBomb:= valueResult
end;
-function TestWatermelon(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestWatermelon(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
const tDelta = 24;
var Vx, Vy, r: real;
Score, EX, EY, valueResult: LongInt;
@@ -504,8 +506,8 @@
meY:= hwFloat2Float(Me^.Y);
repeat
inc(TestTime, 900);
- Vx:= (Targ.X - meX) / (TestTime + tDelta);
- Vy:= cGravityf * ((TestTime + tDelta) div 2) - ((Targ.Y-50) - meY) / (TestTime + tDelta);
+ Vx:= (Targ.Point.X - meX) / (TestTime + tDelta);
+ Vy:= cGravityf * ((TestTime + tDelta) div 2) - ((Targ.Point.Y-50) - meY) / (TestTime + tDelta);
r:= sqr(Vx)+sqr(Vy);
if not (r > 1) then
begin
@@ -519,7 +521,7 @@
dY:= dY + cGravityf;
dec(t)
until (((Me = CurrentHedgehog^.Gear) and TestColl(trunc(x), trunc(y), 6)) or
- ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me, trunc(x), trunc(y), 6))) or (t = 0);
+ ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me^.Hedgehog^.Gear, trunc(x), trunc(y), 6))) or (t = 0);
EX:= trunc(x);
EY:= trunc(y);
@@ -565,7 +567,7 @@
Solve:= 0
end;
-function TestMortar(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestMortar(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
//const tDelta = 24;
var Vx, Vy: real;
Score, EX, EY: LongInt;
@@ -581,13 +583,13 @@
if (Level > 2) then
exit(BadTurn);
- TestTime:= Solve(Targ.X, Targ.Y, trunc(meX), trunc(meY));
+ TestTime:= Solve(Targ.Point.X, Targ.Point.Y, trunc(meX), trunc(meY));
if TestTime = 0 then
exit(BadTurn);
- Vx:= (Targ.X - meX) / TestTime;
- Vy:= cGravityf * (TestTime div 2) - (Targ.Y - meY) / TestTime;
+ Vx:= (Targ.Point.X - meX) / TestTime;
+ Vy:= cGravityf * (TestTime div 2) - (Targ.Point.Y - meY) / TestTime;
x:= meX;
y:= meY;
@@ -600,14 +602,14 @@
EX:= trunc(x);
EY:= trunc(y);
until (((Me = CurrentHedgehog^.Gear) and TestColl(EX, EY, 4)) or
- ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me, EX, EY, 4))) or (EY > cWaterLine);
+ ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me^.Hedgehog^.Gear, EX, EY, 4))) or (EY > cWaterLine);
if (EY < cWaterLine) and (dY >= 0) then
begin
Score:= RateExplosion(Me, EX, EY, 91);
if (Score = 0) then
- if (dY > 0.15) then
- Score:= - abs(Targ.Y - EY) div 32
+ if (dY > 0.15) and (Targ.Kind = gtHedgehog) and (Targ.Score > 0) then
+ Score:= - abs(Targ.Point.Y - EY) div 32
else
Score:= BadTurn
else if (Score < 0) then
@@ -616,7 +618,7 @@
else
Score:= BadTurn;
- if BadTurn < Score then
+ if Score > 0 then
begin
ap.Angle:= DxDy2AttackAnglef(Vx, Vy) + AIrndSign(random(Level));
ap.Power:= 1;
@@ -627,7 +629,7 @@
end;
end;
-function TestShotgun(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestShotgun(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
const
MIN_RANGE = 80;
MAX_RANGE = 400;
@@ -641,12 +643,12 @@
ap.Power:= 1;
x:= hwFloat2Float(Me^.X);
y:= hwFloat2Float(Me^.Y);
-range:= Metric(trunc(x), trunc(y), Targ.X, Targ.Y);
+range:= Metric(trunc(x), trunc(y), Targ.Point.X, Targ.Point.Y);
if ( range < MIN_RANGE ) or ( range > MAX_RANGE ) then
exit(BadTurn);
-Vx:= (Targ.X - x) * 1 / 1024;
-Vy:= (Targ.Y - y) * 1 / 1024;
+Vx:= (Targ.Point.X - x) * 1 / 1024;
+Vy:= (Targ.Point.Y - y) * 1 / 1024;
ap.Angle:= DxDy2AttackAnglef(Vx, -Vy);
repeat
x:= x + vX;
@@ -654,20 +656,20 @@
rx:= trunc(x);
ry:= trunc(y);
if ((Me = CurrentHedgehog^.Gear) and TestColl(rx, ry, 2)) or
- ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me, rx, ry, 2)) then
+ ((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me^.Hedgehog^.Gear, rx, ry, 2)) then
begin
x:= x + vX * 8;
y:= y + vY * 8;
valueResult:= RateShotgun(Me, vX, vY, rx, ry);
- if valueResult = 0 then
- valueResult:= 1024 - Metric(Targ.X, Targ.Y, rx, ry) div 64
+ if (valueResult = 0) and (Targ.Kind = gtHedgehog) and (Targ.Score > 0) then
+ valueResult:= 1024 - Metric(Targ.Point.X, Targ.Point.Y, rx, ry) div 64
else
dec(valueResult, Level * 4000);
// 27/20 is reuse bonus
exit(valueResult * 27 div 20)
end
-until (Abs(Targ.X - trunc(x)) + Abs(Targ.Y - trunc(y)) < 4)
+until (Abs(Targ.Point.X - trunc(x)) + Abs(Targ.Point.Y - trunc(y)) < 4)
or (x < 0)
or (y < 0)
or (trunc(x) > LAND_WIDTH)
@@ -676,27 +678,26 @@
TestShotgun:= BadTurn
end;
-function TestDesertEagle(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-var Vx, Vy, x, y, t, dmgMod: real;
+function TestDesertEagle(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+var Vx, Vy, x, y, t: real;
d: Longword;
fallDmg, valueResult: LongInt;
begin
-if Level > 4 then exit(BadTurn);
-dmgMod:= 0.01 * hwFloat2Float(cDamageModifier) * cDamagePercent;
+if (Level > 4) or (Targ.Score < 0) or (Targ.Kind <> gtHedgehog) then exit(BadTurn);
Level:= Level; // avoid compiler hint
-ap.ExplR:= 0;
+ap.ExplR:= 1;
ap.Time:= 0;
ap.Power:= 1;
x:= hwFloat2Float(Me^.X);
y:= hwFloat2Float(Me^.Y);
-if Abs(trunc(x) - Targ.X) + Abs(trunc(y) - Targ.Y) < 20 then
+if Abs(trunc(x) - Targ.Point.X) + Abs(trunc(y) - Targ.Point.Y) < 20 then
exit(BadTurn);
-t:= 2 / sqrt(sqr(Targ.X - x)+sqr(Targ.Y-y));
-Vx:= (Targ.X - x) * t;
-Vy:= (Targ.Y - y) * t;
+t:= 2 / sqrt(sqr(Targ.Point.X - x)+sqr(Targ.Point.Y-y));
+Vx:= (Targ.Point.X - x) * t;
+Vy:= (Targ.Point.Y - y) * t;
ap.Angle:= DxDy2AttackAnglef(Vx, -Vy);
d:= 0;
@@ -706,47 +707,40 @@
if ((trunc(x) and LAND_WIDTH_MASK) = 0)and((trunc(y) and LAND_HEIGHT_MASK) = 0)
and (Land[trunc(y), trunc(x)] <> 0) then
inc(d);
-until (Abs(Targ.X - trunc(x)) + Abs(Targ.Y - trunc(y)) < 5)
+until (Abs(Targ.Point.X - trunc(x)) + Abs(Targ.Point.Y - trunc(y)) < 5)
or (x < 0)
or (y < 0)
or (trunc(x) > LAND_WIDTH)
or (trunc(y) > LAND_HEIGHT)
or (d > 48);
-if Abs(Targ.X - trunc(x)) + Abs(Targ.Y - trunc(y)) < 5 then
- begin
- fallDmg:= TraceShoveFall(Targ.X, Targ.Y, vX * 0.00125 * 20, vY * 0.00125 * 20);
- if fallDmg < 0 then
- valueResult:= 204800
- else valueResult:= Max(0, (4 - d div 12) * trunc((7 + fallDmg) * dmgMod) * 1024)
- end
-else
- valueResult:= BadTurn;
+if Abs(Targ.Point.X - trunc(x)) + Abs(Targ.Point.Y - trunc(y)) < 5 then
+ valueResult:= RateShove(Me, Targ.Point.X, Targ.Point.Y, 1, 7, 20, vX*0.125, vY*0.125, afTrackFall)
+else valueResult:= BadTurn;
TestDesertEagle:= valueResult
end;
-function TestSniperRifle(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
-var Vx, Vy, x, y, t, dmg, dmgMod: real;
+function TestSniperRifle(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
+var Vx, Vy, x, y, t, dmg: real;
d: Longword;
fallDmg: LongInt;
begin
-if Level > 3 then exit(BadTurn);
-dmgMod:= 0.01 * hwFloat2Float(cDamageModifier) * cDamagePercent;
+if (Level > 3) or (Targ.Score < 0) or (Targ.Kind <> gtHedgehog) then exit(BadTurn);
Level:= Level; // avoid compiler hint
ap.ExplR:= 0;
ap.Time:= 0;
ap.Power:= 1;
x:= hwFloat2Float(Me^.X);
y:= hwFloat2Float(Me^.Y);
-if Abs(trunc(x) - Targ.X) + Abs(trunc(y) - Targ.Y) < 40 then
+if Abs(trunc(x) - Targ.Point.X) + Abs(trunc(y) - Targ.Point.Y) < 40 then
exit(BadTurn);
-dmg:= sqrt(sqr(Targ.X - x)+sqr(Targ.Y-y));
+dmg:= sqrt(sqr(Targ.Point.X - x)+sqr(Targ.Point.Y-y));
t:= 1.5 / dmg;
dmg:= dmg * 0.025; // div 40
-Vx:= (Targ.X - x) * t;
-Vy:= (Targ.Y - y) * t;
+Vx:= (Targ.Point.X - x) * t;
+Vy:= (Targ.Point.Y - y) * t;
ap.Angle:= DxDy2AttackAnglef(Vx, -Vy);
d:= 0;
@@ -756,27 +750,20 @@
if ((trunc(x) and LAND_WIDTH_MASK) = 0)and((trunc(y) and LAND_HEIGHT_MASK) = 0)
and (Land[trunc(y), trunc(x)] <> 0) then
inc(d);
-until (Abs(Targ.X - trunc(x)) + Abs(Targ.Y - trunc(y)) < 4)
+until (Abs(Targ.Point.X - trunc(x)) + Abs(Targ.Point.Y - trunc(y)) < 4)
or (x < 0)
or (y < 0)
or (trunc(x) > LAND_WIDTH)
or (trunc(y) > LAND_HEIGHT)
or (d > 22);
-if Abs(Targ.X - trunc(x)) + Abs(Targ.Y - trunc(y)) < 4 then
- begin
- fallDmg:= TraceShoveFall(Targ.X, Targ.Y, vX * 0.00166 * dmg, vY * 0.00166 * dmg);
- if fallDmg < 0 then
- TestSniperRifle:= BadTurn
- else
- TestSniperRifle:= Max(0, trunc((dmg + fallDmg) * dmgMod) * 1024)
- end
-else
- TestSniperRifle:= BadTurn
+if Abs(Targ.Point.X - trunc(x)) + Abs(Targ.Point.Y - trunc(y)) < 4 then
+ TestSniperRifle:= RateShove(Me, Targ.Point.X, Targ.Point.Y, 1, trunc(dmg), 20, vX*0.166, vY*0.166, afTrackFall)
+else TestSniperRifle:= BadTurn;
end;
-function TestBaseballBat(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestBaseballBat(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
var valueResult, a, v1, v2: LongInt;
x, y, trackFall: LongInt;
dx, dy: real;
@@ -800,10 +787,10 @@
dx:= sin(a / cMaxAngle * pi) * 0.5;
dy:= cos(a / cMaxAngle * pi) * 0.5;
- v1:= RateShove(x - 10, y + 2
+ v1:= RateShove(Me, x - 10, y + 2
, 32, 30, 115
, -dx, -dy, trackFall);
- v2:= RateShove(x + 10, y + 2
+ v2:= RateShove(Me, x + 10, y + 2
, 32, 30, 115
, dx, -dy, trackFall);
if (v1 > valueResult) or (v2 > valueResult) then
@@ -828,7 +815,7 @@
TestBaseballBat:= valueResult;
end;
-function TestFirePunch(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestFirePunch(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
var valueResult, v1, v2, i: LongInt;
x, y, trackFall: LongInt;
begin
@@ -846,11 +833,11 @@
v1:= 0;
for i:= 0 to 8 do
begin
- v1:= v1 + RateShove(x - 5, y - 10 * i
+ v1:= v1 + RateShove(Me, x - 5, y - 10 * i
, 19, 30, 40
, -0.45, -0.9, trackFall or afSetSkip);
end;
- v1:= v1 + RateShove(x - 5, y - 90
+ v1:= v1 + RateShove(Me, x - 5, y - 90
, 19, 30, 40
, -0.45, -0.9, trackFall);
@@ -859,11 +846,11 @@
v2:= 0;
for i:= 0 to 8 do
begin
- v2:= v2 + RateShove(x + 5, y - 10 * i
+ v2:= v2 + RateShove(Me, x + 5, y - 10 * i
, 19, 30, 40
, 0.45, -0.9, trackFall or afSetSkip);
end;
- v2:= v2 + RateShove(x + 5, y - 90
+ v2:= v2 + RateShove(Me, x + 5, y - 90
, 19, 30, 40
, 0.45, -0.9, trackFall);
@@ -886,7 +873,7 @@
end;
-function TestWhip(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestWhip(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
var valueResult, v1, v2: LongInt;
x, y, trackFall: LongInt;
begin
@@ -905,19 +892,19 @@
{first RateShove checks farthermost of two whip's AmmoShove attacks
to encourage distant attacks (damaged hog is excluded from view of second
RateShove call)}
- v1:= RateShove(x - 13, y
+ v1:= RateShove(Me, x - 13, y
, 30, 30, 25
, -1, -0.8, trackFall or afSetSkip);
v1:= v1 +
- RateShove(x - 2, y
+ RateShove(Me, x - 2, y
, 30, 30, 25
, -1, -0.8, trackFall);
// now try opposite direction
- v2:= RateShove(x + 13, y
+ v2:= RateShove(Me, x + 13, y
, 30, 30, 25
, 1, -0.8, trackFall or afSetSkip);
v2:= v2 +
- RateShove(x + 2, y
+ RateShove(Me, x + 2, y
, 30, 30, 25
, 1, -0.8, trackFall);
@@ -941,7 +928,7 @@
TestWhip:= valueResult;
end;
-function TestKamikaze(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestKamikaze(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
const step = 8;
var valueResult, i, v, tx: LongInt;
trackFall: LongInt;
@@ -963,7 +950,7 @@
x:= hwFloat2Float(Me^.X);
y:= hwFloat2Float(Me^.Y);
- d:= sqrt(sqr(Targ.X - x) + sqr(Targ.Y - y));
+ d:= sqrt(sqr(Targ.Point.X - x) + sqr(Targ.Point.Y - y));
if d < 10 then
begin
dx:= 0;
@@ -973,8 +960,8 @@
else
begin
t:= step / d;
- dx:= (Targ.X - x) * t;
- dy:= (Targ.Y - y) * t;
+ dx:= (Targ.Point.X - x) * t;
+ dy:= (Targ.Point.Y - y) * t;
ap.Angle:= DxDy2AttackAnglef(dx, -dy)
end;
@@ -984,7 +971,7 @@
for i:= 0 to 512 div step - 2 do
begin
valueResult:= valueResult +
- RateShove(trunc(x), trunc(y)
+ RateShove(Me, trunc(x), trunc(y)
, 30, 30, 25
, cx, -0.9, trackFall or afSetSkip);
@@ -996,14 +983,14 @@
x:= hwFloat2Float(Me^.X);
y:= hwFloat2Float(Me^.Y);
tx:= trunc(x);
- v:= RateShove(tx, trunc(y)
+ v:= RateShove(Me, tx, trunc(y)
, 30, 30, 25
, -cx, -0.9, trackFall);
for i:= 1 to 512 div step - 2 do
begin
y:= y + dy;
v:= v +
- RateShove(tx, trunc(y)
+ RateShove(Me, tx, trunc(y)
, 30, 30, 25
, -cx, -0.9, trackFall or afSetSkip);
end
@@ -1014,7 +1001,7 @@
valueResult:= v
end;
- v:= RateShove(trunc(x), trunc(y)
+ v:= RateShove(Me, trunc(x), trunc(y)
, 30, 30, 25
, cx, -0.9, trackFall);
valueResult:= valueResult + v - KillScore * friendlyfactor div 100 * 1024;
@@ -1025,7 +1012,7 @@
TestKamikaze:= valueResult;
end;
-function TestHammer(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestHammer(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
var rate: LongInt;
begin
Level:= Level; // avoid compiler hint
@@ -1042,7 +1029,7 @@
TestHammer:= rate;
end;
-function TestAirAttack(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestAirAttack(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
const cShift = 4;
var bombsSpeed, X, Y, dY: real;
b: array[0..9] of boolean;
@@ -1056,12 +1043,12 @@
exit(BadTurn);
ap.Angle:= 0;
-ap.AttackPutX:= Targ.X;
-ap.AttackPutY:= Targ.Y;
+ap.AttackPutX:= Targ.Point.X;
+ap.AttackPutY:= Targ.Point.Y;
bombsSpeed:= hwFloat2Float(cBombsSpeed);
-X:= Targ.X - 135 - cShift; // hh center - cShift
-X:= X - bombsSpeed * sqrt(((Targ.Y + 128) * 2) / cGravityf);
+X:= Targ.Point.X - 135 - cShift; // hh center - cShift
+X:= X - bombsSpeed * sqrt(((Targ.Point.Y + 128) * 2) / cGravityf);
Y:= -128;
dY:= 0;
@@ -1093,7 +1080,7 @@
for i:= 0 to 5 do inc(valueResult, dmg[i]);
t:= valueResult;
-ap.AttackPutX:= Targ.X - 60;
+ap.AttackPutX:= Targ.Point.X - 60;
for i:= 0 to 3 do
begin
@@ -1102,7 +1089,7 @@
if t > valueResult then
begin
valueResult:= t;
- ap.AttackPutX:= Targ.X - 30 - cShift + i * 30
+ ap.AttackPutX:= Targ.Point.X - 30 - cShift + i * 30
end
end;
@@ -1112,7 +1099,7 @@
end;
-function TestTeleport(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestTeleport(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
var
i, failNum: longword;
maxTop: longword;
@@ -1125,15 +1112,15 @@
begin
if Me^.Health <= 100 then
begin
- maxTop := Targ.Y - cHHRadius * 2;
+ maxTop := Targ.Point.Y - cHHRadius * 2;
- while (not TestColl(Targ.X, maxTop, cHHRadius)) and (maxTop > topY + cHHRadius * 2 + 1) do
+ while not TestColl(Targ.Point.X, maxTop, cHHRadius) and (maxTop > topY + cHHRadius * 2 + 1) do
dec(maxTop, cHHRadius*2);
- if not TestColl(Targ.X, maxTop + cHHRadius, cHHRadius) then
+ if not TestColl(Targ.Point.X, maxTop + cHHRadius, cHHRadius) then
begin
- ap.AttackPutX := Targ.X;
+ ap.AttackPutX := Targ.Point.X;
ap.AttackPutY := maxTop + cHHRadius;
- TestTeleport := Targ.Y - maxTop;
+ TestTeleport := Targ.Point.Y - maxTop;
end;
end;
end
@@ -1176,7 +1163,7 @@
end;
end;
-function TestCake(Me: PGear; Targ: TPoint; Level: LongInt; var ap: TAttackParams): LongInt;
+function TestCake(Me: PGear; Targ: TTarget; Level: LongInt; var ap: TAttackParams): LongInt;
var valueResult, v1, v2: LongInt;
cake: TGear;
begin
--- a/hedgewars/uAIMisc.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uAIMisc.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -30,14 +30,18 @@
BadTurn = Low(LongInt) div 4;
-type TTarget = record
+type TTarget = record // starting to look more and more like a gear
Point: TPoint;
- Score: LongInt;
- skip, matters: boolean;
+ Score, Radius: LongInt;
+ State: LongWord;
+ Density: real;
+ skip, matters, dead: boolean;
+ Kind: TGearType;
end;
TTargets = record
Count: Longword;
- ar: array[0..Pred(cMaxHHs)] of TTarget;
+ ar: array[0..Pred(256)] of TTarget;
+ reset: boolean;
end;
TJumpType = (jmpNone, jmpHJump, jmpLJump);
TGoInfo = record
@@ -65,6 +69,7 @@
procedure freeModule;
procedure FillTargets;
+procedure ResetTargets; inline;
procedure AddBonus(x, y: LongInt; r: Longword; s: LongInt); inline;
procedure FillBonuses(isAfterAttack: boolean);
procedure AwareOfExplosion(x, y, r: LongInt); inline;
@@ -73,12 +78,11 @@
function TestColl(x, y, r: LongInt): boolean; inline;
function TestCollExcludingObjects(x, y, r: LongInt): boolean; inline;
function TestCollExcludingMe(Me: PGear; x, y, r: LongInt): boolean; inline;
-function TraceShoveFall(x, y, dX, dY: Real): LongInt;
-function TestCollWithLand(x, y, r: LongInt): boolean; inline;
function RateExplosion(Me: PGear; x, y, r: LongInt): LongInt; inline;
-function RateExplosion(Me: PGear; x, y, r: LongInt; Flags: LongWord): LongInt;
-function RateShove(x, y, r, power, kick: LongInt; gdX, gdY: real; Flags: LongWord): LongInt;
+function RateExplosion(Me: PGear; x, y, r: LongInt; Flags: LongWord): LongInt; inline;
+function RealRateExplosion(Me: PGear; x, y, r: LongInt; Flags: LongWord): LongInt;
+function RateShove(Me: PGear; x, y, r, power, kick: LongInt; gdX, gdY: real; Flags: LongWord): LongInt;
function RateShotgun(Me: PGear; gdX, gdY: real; x, y: LongInt): LongInt;
function RateHammer(Me: PGear): LongInt;
@@ -94,52 +98,82 @@
const KillScore = 200;
var friendlyfactor: LongInt = 300;
+var dmgMod: real = 1.0;
implementation
uses uCollisions, uVariables, uUtils, uLandTexture, uGearsUtils;
-var
+var
KnownExplosion: record
X, Y, Radius: LongInt
end = (X: 0; Y: 0; Radius: 0);
+procedure ResetTargets; inline;
+var i: LongWord;
+begin
+if Targets.reset then
+ for i:= 0 to Targets.Count do
+ Targets.ar[i].dead:= false;
+Targets.reset:= false;
+end;
procedure FillTargets;
var i, t: Longword;
f, e: LongInt;
+ Gear: PGear;
begin
Targets.Count:= 0;
+Targets.reset:= false;
f:= 0;
e:= 0;
-for t:= 0 to Pred(TeamsCount) do
- with TeamsArray[t]^ do
- if not hasGone then
+Gear:= GearsList;
+while Gear <> nil do
+ begin
+ if (((Gear^.Kind = gtHedgehog) and
+ (Gear <> ThinkingHH) and
+ (Gear^.Health > Gear^.Damage) and
+ not(Gear^.Hedgehog^.Team^.hasgone)) or
+ ((Gear^.Kind = gtExplosives) and
+ (Gear^.Health > Gear^.Damage)) or
+ ((Gear^.Kind = gtMine) and
+ (Gear^.Health = 0) and
+ (Gear^.Damage < 35))
+ ) and
+ (Targets.Count < 256) then
+ begin
+ with Targets.ar[Targets.Count] do
begin
- for i:= 0 to cMaxHHIndex do
- if (Hedgehogs[i].Gear <> nil)
- and (Hedgehogs[i].Gear <> ThinkingHH)
- and (Hedgehogs[i].Gear^.Health > Hedgehogs[i].Gear^.Damage)
- then
+ skip:= false;
+ dead:= false;
+ Kind:= Gear^.Kind;
+ Radius:= Gear^.Radius;
+ Density:= hwFloat2Float(Gear^.Density)/3;
+ State:= Gear^.State;
+ matters:= (Gear^.AIHints and aihDoesntMatter) = 0;
+
+ Point.X:= hwRound(Gear^.X);
+ Point.Y:= hwRound(Gear^.Y);
+ if (Gear^.Kind = gtHedgehog) then
+ begin
+ if (Gear^.Hedgehog^.Team^.Clan = CurrentTeam^.Clan) then
begin
- with Targets.ar[Targets.Count], Hedgehogs[i] do
- begin
- skip:= false;
- matters:= (Hedgehogs[i].Gear^.AIHints and aihDoesntMatter) = 0;
-
- Point.X:= hwRound(Gear^.X);
- Point.Y:= hwRound(Gear^.Y);
- if Clan <> CurrentTeam^.Clan then
- begin
- Score:= Gear^.Health - Gear^.Damage;
- inc(e)
- end else
- begin
- Score:= Gear^.Damage - Gear^.Health;
- inc(f)
- end
- end;
- inc(Targets.Count)
+ Score:= Gear^.Damage - Gear^.Health;
+ inc(f)
+ end
+ else
+ begin
+ Score:= Gear^.Health - Gear^.Damage;
+ inc(e)
end;
+ end
+ else if Gear^.Kind = gtExplosives then
+ Score:= Gear^.Health - Gear^.Damage
+ else if Gear^.Kind = gtMine then
+ Score:= max(0,35-Gear^.Damage);
end;
+ inc(Targets.Count)
+ end;
+ Gear:= Gear^.NextGear
+ end;
if e > f then friendlyfactor:= 300 + (e - f) * 30
else friendlyfactor:= max(30, 300 - f * 80 div max(1,e))
@@ -185,24 +219,24 @@
gtFlame:
if (Gear^.State and gsttmpFlag) <> 0 then
AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 20, -50);
-// avoid mines unless they are very likely to be duds, or are duds. also avoid if they are about to blow
+// avoid mines unless they are very likely to be duds, or are duds. also avoid if they are about to blow
gtMine:
if ((Gear^.State and gstAttacking) = 0) and (((cMineDudPercent < 90) and (Gear^.Health <> 0))
or (isAfterAttack and (Gear^.Health = 0) and (Gear^.Damage > 30))) then
AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 50, -50)
else if (Gear^.State and gstAttacking) <> 0 then
AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 100, -50); // mine is on
-
+
gtExplosives:
if isAfterAttack then
AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 75, -60 + Gear^.Health);
-
+
gtSMine:
AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 50, -30);
-
+
gtDynamite:
AddBonus(hwRound(Gear^.X), hwRound(Gear^.Y), 150, -75);
-
+
gtHedgehog:
begin
if Gear^.Damage >= Gear^.Health then
@@ -260,6 +294,58 @@
RatePlace:= rate;
end;
+function CheckBounds(x, y, r: Longint): boolean; inline;
+begin
+ CheckBounds := (((x-r) and LAND_WIDTH_MASK) = 0) and
+ (((x+r) and LAND_WIDTH_MASK) = 0) and
+ (((y-r) and LAND_HEIGHT_MASK) = 0) and
+ (((y+r) and LAND_HEIGHT_MASK) = 0);
+end;
+
+
+function TestCollWithEverything(x, y, r: LongInt): boolean; inline;
+begin
+ if not CheckBounds(x, y, r) then
+ exit(false);
+
+ if (Land[y-r, x-r] <> 0) or
+ (Land[y+r, x-r] <> 0) or
+ (Land[y-r, x+r] <> 0) or
+ (Land[y+r, x+r] <> 0) then
+ exit(true);
+
+ TestCollWithEverything := false;
+end;
+
+function TestCollExcludingObjects(x, y, r: LongInt): boolean; inline;
+begin
+ if not CheckBounds(x, y, r) then
+ exit(false);
+
+ if (Land[y-r, x-r] > lfAllObjMask) or
+ (Land[y+r, x-r] > lfAllObjMask) or
+ (Land[y-r, x-r] > lfAllObjMask) or
+ (Land[y+r, x+r] > lfAllObjMask) then
+ exit(true);
+
+ TestCollExcludingObjects:= false;
+end;
+
+function TestColl(x, y, r: LongInt): boolean; inline;
+begin
+ if not CheckBounds(x, y, r) then
+ exit(false);
+
+ if (Land[y-r, x-r] and lfNotCurrentMask <> 0) or
+ (Land[y+r, x-r] and lfNotCurrentMask <> 0) or
+ (Land[y+r, x-r] and lfNotCurrentMask <> 0) or
+ (Land[y+r, x+r] and lfNotCurrentMask <> 0) then
+ exit(true);
+
+ TestColl:= false;
+end;
+
+
// Wrapper to test various approaches. If it works reasonably, will just replace.
// Right now, converting to hwFloat is a tad inefficient since the x/y were hwFloat to begin with...
function TestCollExcludingMe(Me: PGear; x, y, r: LongInt): boolean; inline;
@@ -270,155 +356,134 @@
MeX:= hwRound(Me^.X);
MeY:= hwRound(Me^.Y);
// We are still inside the hog. Skip radius test
- if ((((x-MeX)*(x-MeX)) + ((y-MeY)*(y-MeY))) < 256) and (Land[y, x] <= lfAllObjMask) and ((Land[y, x] and lfObjMask) < 2) then
+ if ((sqr(x-MeX) + sqr(y-MeY)) < 256) and (Land[y, x] and lfObjMask = 0) then
exit(false);
end;
- TestCollExcludingMe:= TestColl(x, y, r)
-end;
-
-function TestCollExcludingObjects(x, y, r: LongInt): boolean; inline;
-var b: boolean;
-begin
- b:= (((x-r) and LAND_WIDTH_MASK) = 0) and (((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x-r] > lfAllObjMask);
- if b then
- exit(true);
-
- b:= (((x-r) and LAND_WIDTH_MASK) = 0) and (((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x-r] > lfAllObjMask);
- if b then
- exit(true);
-
- b:= (((x+r) and LAND_WIDTH_MASK) = 0) and (((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x+r] > lfAllObjMask);
- if b then
- exit(true);
-
- b:= (((x+r) and LAND_WIDTH_MASK) = 0) and (((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x+r] > lfAllObjMask);
- if b then
- exit(true);
-
- TestCollExcludingObjects:= false;
+ TestCollExcludingMe:= TestCollWithEverything(x, y, r)
end;
-function TestColl(x, y, r: LongInt): boolean; inline;
-var b: boolean;
-begin
- b:= (((x-r) and LAND_WIDTH_MASK) = 0) and (((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x-r] and lfNotCurrentMask <> 0);
- if b then
- exit(true);
-
- b:= (((x-r) and LAND_WIDTH_MASK) = 0) and (((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x-r] and lfNotCurrentMask <> 0);
- if b then
- exit(true);
-
- b:= (((x+r) and LAND_WIDTH_MASK) = 0) and (((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x+r] and lfNotCurrentMask <> 0);
- if b then
- exit(true);
-
- b:= (((x+r) and LAND_WIDTH_MASK) = 0) and (((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x+r] and lfNotCurrentMask <> 0);
- if b then
- exit(true);
-
- TestColl:= false;
-end;
+
-function TestCollWithLand(x, y, r: LongInt): boolean; inline;
-var b: boolean;
-begin
- b:= (((x-r) and LAND_WIDTH_MASK) = 0) and (((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x-r] > lfAllObjMask);
- if b then
- exit(true);
-
- b:= (((x-r) and LAND_WIDTH_MASK) = 0) and (((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x-r] > lfAllObjMask);
- if b then
- exit(true);
-
- b:= (((x+r) and LAND_WIDTH_MASK) = 0) and (((y-r) and LAND_HEIGHT_MASK) = 0) and (Land[y-r, x+r] > lfAllObjMask);
- if b then
- exit(true);
-
- b:= (((x+r) and LAND_WIDTH_MASK) = 0) and (((y+r) and LAND_HEIGHT_MASK) = 0) and (Land[y+r, x+r] > lfAllObjMask);
- if b then
- exit(true);
-
- TestCollWithLand:= false;
-end;
-
-function TraceFall(eX, eY: LongInt; x, y, dX, dY: Real; r: LongWord): LongInt;
+function TraceFall(eX, eY: LongInt; var x, y: Real; dX, dY: Real; r: LongWord; Target: TTarget): LongInt;
var skipLandCheck: boolean;
- rCorner: real;
+ rCorner, dxdy, odX, odY: real;
dmg: LongInt;
begin
+ odX:= dX;
+ odY:= dY;
skipLandCheck:= true;
- if x - eX < 0 then dX:= -dX;
- if y - eY < 0 then dY:= -dY;
// ok. attempt approximate search for an unbroken trajectory into water. if it continues far enough, assume out of map
rCorner:= r * 0.75;
while true do
- begin
+ begin
x:= x + dX;
y:= y + dY;
dY:= dY + cGravityf;
skipLandCheck:= skipLandCheck and (r <> 0) and (abs(eX-x) + abs(eY-y) < r) and ((abs(eX-x) < rCorner) or (abs(eY-y) < rCorner));
- if (not skipLandCheck) and TestCollWithLand(trunc(x), trunc(y), cHHRadius) then
- begin
- if 0.4 < dY then
- begin
- dmg := 1 + trunc((abs(dY) - 0.4) * 70);
- if dmg >= 1 then
- exit(dmg);
+ if not skipLandCheck and TestCollExcludingObjects(trunc(x), trunc(y), Target.Radius) then
+ with Target do
+ begin
+ if (Kind = gtHedgehog) and (0.4 < dY) then
+ begin
+ dmg := 1 + trunc((dY - 0.4) * 70);
+ exit(dmg)
+ end
+ else
+ begin
+ dxdy:= abs(dX)+abs(dY);
+ if ((Kind = gtMine) and (dxdy > 0.35)) or
+ ((Kind = gtExplosives) and
+ (((State and gstTmpFlag <> 0) and (dxdy > 0.35)) or
+ ((State and gstTmpFlag = 0) and
+ ((abs(odX) > 0.15) or ((abs(odY) > 0.15) and
+ (abs(odX) > 0.02))) and (dxdy > 0.35)))) then
+ begin
+ dmg := trunc(dxdy * 25);
+ exit(dmg)
+ end
+ else if (Kind = gtExplosives) and not((abs(odX) > 0.15) or ((abs(odY) > 0.15) and (abs(odX) > 0.02))) and (dY > 0.2) then
+ begin
+ dmg := trunc(dy * 70);
+ exit(dmg)
+ end
+ end;
+ exit(0)
end;
- exit(0)
- end;
- if (y > cWaterLine) or (x > 4096) or (x < 0) then
- exit(-1);
- end;
+ if (y > cWaterLine) or (x > rightX) or (x < leftX) then exit(-1)
+ end
end;
-function TraceShoveFall(x, y, dX, dY: Real): LongInt;
+function TraceShoveFall(var x, y: Real; dX, dY: Real; Target: TTarget): LongInt;
var dmg: LongInt;
+ dxdy, odX, odY: real;
begin
+ odX:= dX;
+ odY:= dY;
//v:= random($FFFFFFFF);
while true do
- begin
+ begin
x:= x + dX;
y:= y + dY;
dY:= dY + cGravityf;
-{ if ((trunc(y) and LAND_HEIGHT_MASK) = 0) and ((trunc(x) and LAND_WIDTH_MASK) = 0) then
+{ if ((trunc(y) and LAND_HEIGHT_MASK) = 0) and ((trunc(x) and LAND_WIDTH_MASK) = 0) then
begin
LandPixels[trunc(y), trunc(x)]:= v;
UpdateLandTexture(trunc(X), 1, trunc(Y), 1, true);
end;}
-
- // consider adding dX/dY calc here for fall damage
- if TestCollExcludingObjects(trunc(x), trunc(y), cHHRadius) then
- begin
- if 0.4 < dY then
- begin
- dmg := 1 + trunc((abs(dY) - 0.4) * 70);
- if dmg >= 1 then
+ if TestCollExcludingObjects(trunc(x), trunc(y), Target.Radius) then
+ with Target do
+ begin
+ if (Kind = gtHedgehog) and (0.4 < dY) then
+ begin
+ dmg := trunc((dY - 0.4) * 70);
exit(dmg);
- end;
+ end
+ else
+ begin
+ dxdy:= abs(dX)+abs(dY);
+ if ((Kind = gtMine) and (dxdy > 0.4)) or
+ ((Kind = gtExplosives) and
+ (((State and gstTmpFlag <> 0) and (dxdy > 0.4)) or
+ ((State and gstTmpFlag = 0) and
+ ((abs(odX) > 0.15) or ((abs(odY) > 0.15) and
+ (abs(odX) > 0.02))) and (dxdy > 0.35)))) then
+ begin
+ dmg := trunc(dxdy * 50);
+ exit(dmg)
+ end
+ else if (Kind = gtExplosives) and not((abs(odX) > 0.15) or ((abs(odY) > 0.15) and (abs(odX) > 0.02))) and (dY > 0.2) then
+ begin
+ dmg := trunc(dy * 70);
+ exit(dmg)
+ end
+ end;
exit(0)
end;
- if (y > cWaterLine) or (x > 4096) or (x < 0) then
+ if (y > cWaterLine) or (x > rightX) or (x < leftX) then
// returning -1 for drowning so it can be considered in the Rate routine
exit(-1)
end;
end;
-function RateExplosion(Me: PGear; x, y, r: LongInt): LongInt;
+function RateExplosion(Me: PGear; x, y, r: LongInt): LongInt; inline;
begin
- RateExplosion:= RateExplosion(Me, x, y, r, 0);
+ RateExplosion:= RealRateExplosion(Me, x, y, r, 0);
+ ResetTargets;
+end;
+function RateExplosion(Me: PGear; x, y, r: LongInt; Flags: LongWord): LongInt; inline;
+begin
+ RateExplosion:= RealRateExplosion(Me, x, y, r, Flags);
+ ResetTargets;
end;
-function RateExplosion(Me: PGear; x, y, r: LongInt; Flags: LongWord): LongInt;
-var i, fallDmg, dmg, dmgBase, rate, erasure: LongInt;
- dX, dY, dmgMod: real;
+function RealRateExplosion(Me: PGear; x, y, r: LongInt; Flags: LongWord): LongInt;
+var i, fallDmg, dmg, dmgBase, rate, subrate, erasure: LongInt;
+ pX, pY, dX, dY: real;
hadSkips: boolean;
begin
fallDmg:= 0;
-dmgMod:= 0.01 * hwFloat2Float(cDamageModifier) * cDamagePercent;
rate:= 0;
// add our virtual position
with Targets.ar[Targets.Count] do
@@ -427,10 +492,12 @@
Point.y:= hwRound(Me^.Y);
skip:= false;
matters:= true;
+ Kind:= gtHedgehog;
+ Density:= 1;
+ Radius:= cHHRadius;
Score:= - ThinkingHH^.Health
end;
// rate explosion
-dmgBase:= r + cHHRadius div 2;
if (Flags and afErasesLand <> 0) and (GameFlags and gfSolidLand = 0) then erasure:= r
else erasure:= 0;
@@ -438,98 +505,169 @@
hadSkips:= false;
for i:= 0 to Targets.Count do
- with Targets.ar[i] do
- if not matters then hadSkips:= true
- else
- begin
- dmg:= 0;
- if abs(Point.x - x) + abs(Point.y - y) < dmgBase then
- dmg:= trunc(dmgMod * min((dmgBase - trunc(sqrt(sqr(Point.x - x)+sqr(Point.y - y)))) div 2, r));
+ if not Targets.ar[i].dead then
+ with Targets.ar[i] do
+ if not matters then hadSkips:= true
+ else
+ begin
+ dmg:= 0;
+ dmgBase:= r + Radius div 2;
+ if abs(Point.x - x) + abs(Point.y - y) < dmgBase then
+ dmg:= trunc(dmgMod * min((dmgBase - trunc(sqrt(sqr(Point.x - x)+sqr(Point.y - y)))) div 2, r));
- if dmg > 0 then
- begin
- if (Flags and afTrackFall <> 0) and (dmg < abs(Score)) then
+ if dmg > 0 then
begin
- dX:= 0.005 * dmg + 0.01;
- dY:= dX;
- if (x and LAND_WIDTH_MASK = 0) and ((y+cHHRadius+2) and LAND_HEIGHT_MASK = 0) and
- (Land[y+cHHRadius+2, x] and lfIndestructible <> 0) then
- fallDmg:= trunc(TraceFall(x, y, Point.x, Point.y, dX, dY, 0) * dmgMod)
- else fallDmg:= trunc(TraceFall(x, y, Point.x, Point.y, dX, dY, erasure) * dmgMod)
- end;
- if fallDmg < 0 then // drowning. score healthier hogs higher, since their death is more likely to benefit the AI
- if Score > 0 then
- inc(rate, (KillScore + Score div 10) * 1024) // Add a bit of a bonus for bigger hog drownings
- else
- dec(rate, (KillScore * friendlyfactor div 100 - Score div 10) * 1024) // and more of a punishment for drowning bigger friendly hogs
- else if (dmg+fallDmg) >= abs(Score) then
- if Score > 0 then
- inc(rate, KillScore * 1024 + (dmg + fallDmg)) // tiny bonus for dealing more damage than needed to kill
- else
- dec(rate, KillScore * friendlyfactor div 100 * 1024)
- else
- if Score > 0 then
- inc(rate, (dmg + fallDmg) * 1024)
- else dec(rate, (dmg + fallDmg) * friendlyfactor div 100 * 1024)
+ pX:= Point.x;
+ pY:= Point.y;
+ fallDmg:= 0;
+ if (Flags and afTrackFall <> 0) and (Score > 0) and (dmg < Score) then
+ begin
+ dX:= (0.005 * dmg + 0.01) / Density;
+ dY:= dX;
+ if (Kind = gtExplosives) and (State and gstTmpFlag = 0) and
+ (((abs(dY) > 0.15) and (abs(dX) < 0.02)) or
+ ((abs(dY) < 0.15) and (abs(dX) < 0.15))) then
+ dX:= 0;
+
+ if pX - x < 0 then dX:= -dX;
+ if pY - y < 0 then dY:= -dY;
+
+ if (x and LAND_WIDTH_MASK = 0) and ((y+cHHRadius+2) and LAND_HEIGHT_MASK = 0) and
+ (Land[y+cHHRadius+2, x] and lfIndestructible <> 0) then
+ fallDmg:= trunc(TraceFall(x, y, pX, pY, dX, dY, 0, Targets.ar[i]) * dmgMod)
+ else fallDmg:= trunc(TraceFall(x, y, pX, pY, dX, dY, erasure, Targets.ar[i]) * dmgMod)
+ end;
+ if Kind = gtHedgehog then
+ begin
+ if fallDmg < 0 then // drowning. score healthier hogs higher, since their death is more likely to benefit the AI
+ begin
+ if Score > 0 then
+ inc(rate, (KillScore + Score div 10) * 1024) // Add a bit of a bonus for bigger hog drownings
+ else
+ dec(rate, (KillScore * friendlyfactor div 100 - Score div 10) * 1024) // and more of a punishment for drowning bigger friendly hogs
+ end
+ else if (dmg+fallDmg) >= abs(Score) then
+ begin
+ dead:= true;
+ Targets.reset:= true;
+ if dX < 0.035 then
+ begin
+ subrate:= RealRateExplosion(Me, round(pX), round(pY), 61, afErasesLand or (Flags and afTrackFall));
+ if abs(subrate) > 2000 then inc(Rate,subrate)
+ end;
+ if Score > 0 then
+ inc(rate, KillScore * 1024 + (dmg + fallDmg)) // tiny bonus for dealing more damage than needed to kill
+ else dec(rate, KillScore * friendlyfactor div 100 * 1024)
+ end
+ else
+ begin
+ if Score > 0 then
+ inc(rate, (dmg + fallDmg) * 1024)
+ else dec(rate, (dmg + fallDmg) * friendlyfactor div 100 * 1024)
+ end
+ end
+ else if (fallDmg >= 0) and ((dmg+fallDmg) >= Score) then
+ begin
+ dead:= true;
+ Targets.reset:= true;
+ if Kind = gtExplosives then
+ subrate:= RealRateExplosion(Me, round(pX), round(pY), 151, afErasesLand or (Flags and afTrackFall))
+ else subrate:= RealRateExplosion(Me, round(pX), round(pY), 101, afErasesLand or (Flags and afTrackFall));
+ if abs(subrate) > 2000 then inc(Rate,subrate);
+ end
+ end
end;
- end;
if hadSkips and (rate = 0) then
- RateExplosion:= BadTurn
+ RealRateExplosion:= BadTurn
else
- RateExplosion:= rate;
+ RealRateExplosion:= rate;
end;
-function RateShove(x, y, r, power, kick: LongInt; gdX, gdY: real; Flags: LongWord): LongInt;
-var i, fallDmg, dmg, rate: LongInt;
- dX, dY, dmgMod: real;
+function RateShove(Me: PGear; x, y, r, power, kick: LongInt; gdX, gdY: real; Flags: LongWord): LongInt;
+var i, fallDmg, dmg, rate, subrate: LongInt;
+ dX, dY, pX, pY: real;
begin
fallDmg:= 0;
dX:= gdX * 0.01 * kick;
dY:= gdY * 0.01 * kick;
-dmgMod:= 0.01 * hwFloat2Float(cDamageModifier) * cDamagePercent;
rate:= 0;
for i:= 0 to Pred(Targets.Count) do
with Targets.ar[i] do
- if skip then
- if (Flags and afSetSkip = 0) then skip:= false else {still skip}
- else if matters then
- begin
- dmg:= 0;
- if abs(Point.x - x) + abs(Point.y - y) < r then
- dmg:= r - trunc(sqrt(sqr(Point.x - x)+sqr(Point.y - y)));
-
- if dmg > 0 then
+ if skip then
+ begin
+ if Flags and afSetSkip = 0 then skip:= false
+ end
+ else if matters then
begin
- if (Flags and afSetSkip <> 0) then skip:= true;
- if (Flags and afTrackFall <> 0) and (Score > 0) then
- fallDmg:= trunc(TraceShoveFall(Point.x, Point.y - 2, dX, dY) * dmgMod);
- if fallDmg < 0 then // drowning. score healthier hogs higher, since their death is more likely to benefit the AI
- if Score > 0 then
- inc(rate, KillScore + Score div 10) // Add a bit of a bonus for bigger hog drownings
- else
- dec(rate, KillScore * friendlyfactor div 100 - Score div 10) // and more of a punishment for drowning bigger friendly hogs
- else if power+fallDmg >= abs(Score) then
- if Score > 0 then
- inc(rate, KillScore)
- else
- dec(rate, KillScore * friendlyfactor div 100)
- else
- if Score > 0 then
- inc(rate, power+fallDmg)
- else
- dec(rate, (power+fallDmg) * friendlyfactor div 100)
+ dmg:= 0;
+ if abs(Point.x - x) + abs(Point.y - y) < r then
+ dmg:= r - trunc(sqrt(sqr(Point.x - x)+sqr(Point.y - y)));
+
+ if dmg > 0 then
+ begin
+ pX:= Point.x;
+ pY:= Point.y-2;
+ fallDmg:= 0;
+ if (Flags and afSetSkip <> 0) then skip:= true;
+ if not(dead) and (Flags and afTrackFall <> 0) and (Score > 0) and (power < Score) then
+ if (Kind = gtExplosives) and (State and gstTmpFlag = 0) and
+ (((abs(dY) > 0.15) and (abs(dX) < 0.02)) or
+ ((abs(dY) < 0.15) and (abs(dX) < 0.15))) then
+ fallDmg:= trunc(TraceShoveFall(pX, pY, 0, dY, Targets.ar[i]) * dmgMod)
+ else
+ fallDmg:= trunc(TraceShoveFall(pX, pY, dX, dY, Targets.ar[i]) * dmgMod);
+ if Kind = gtHedgehog then
+ begin
+ if fallDmg < 0 then // drowning. score healthier hogs higher, since their death is more likely to benefit the AI
+ begin
+ if Score > 0 then
+ inc(rate, KillScore + Score div 10) // Add a bit of a bonus for bigger hog drownings
+ else
+ dec(rate, KillScore * friendlyfactor div 100 - Score div 10) // and more of a punishment for drowning bigger friendly hogs
+ end
+ else if power+fallDmg >= abs(Score) then
+ begin
+ dead:= true;
+ Targets.reset:= true;
+ if dX < 0.035 then
+ begin
+ subrate:= RealRateExplosion(Me, round(pX), round(pY), 61, afErasesLand or afTrackFall);
+ if abs(subrate) > 2000 then inc(Rate,subrate div 1024)
+ end;
+ if Score > 0 then
+ inc(rate, KillScore)
+ else
+ dec(rate, KillScore * friendlyfactor div 100)
+ end
+ else
+ begin
+ if Score > 0 then
+ inc(rate, power+fallDmg)
+ else
+ dec(rate, (power+fallDmg) * friendlyfactor div 100)
+ end
+ end
+ else if (fallDmg >= 0) and ((dmg+fallDmg) >= Score) then
+ begin
+ dead:= true;
+ Targets.reset:= true;
+ if Kind = gtExplosives then
+ subrate:= RealRateExplosion(Me, round(pX), round(pY), 151, afErasesLand or (Flags and afTrackFall))
+ else subrate:= RealRateExplosion(Me, round(pX), round(pY), 101, afErasesLand or (Flags and afTrackFall));
+ if abs(subrate) > 2000 then inc(Rate,subrate div 1024);
+ end
+ end
end;
- end;
-RateShove:= rate * 1024
+RateShove:= rate * 1024;
+ResetTargets
end;
function RateShotgun(Me: PGear; gdX, gdY: real; x, y: LongInt): LongInt;
-var i, dmg, fallDmg, baseDmg, rate, erasure: LongInt;
- dX, dY, dmgMod: real;
+var i, dmg, fallDmg, baseDmg, rate, subrate, erasure: LongInt;
+ pX, pY, dX, dY: real;
hadSkips: boolean;
begin
-dmgMod:= 0.01 * hwFloat2Float(cDamageModifier) * cDamagePercent;
rate:= 0;
gdX:= gdX * 0.01;
gdY:= gdX * 0.01;
@@ -540,6 +678,9 @@
Point.y:= hwRound(Me^.Y);
skip:= false;
matters:= true;
+ Kind:= gtHedgehog;
+ Density:= 1;
+ Radius:= cHHRadius;
Score:= - ThinkingHH^.Health
end;
// rate shot
@@ -551,48 +692,80 @@
hadSkips:= false;
for i:= 0 to Targets.Count do
- with Targets.ar[i] do
- if not matters then hadSkips:= true
- else
- begin
- dmg:= 0;
- if abs(Point.x - x) + abs(Point.y - y) < baseDmg then
- begin
- dmg:= min(baseDmg - trunc(sqrt(sqr(Point.x - x)+sqr(Point.y - y))), 25);
- dmg:= trunc(dmg * dmgMod);
- end;
- if dmg > 0 then
+ if not Targets.ar[i].dead then
+ with Targets.ar[i] do
+ if not matters then hadSkips:= true
+ else
begin
- dX:= gdX * dmg;
- dY:= gdY * dmg;
- if dX < 0 then dX:= dX - 0.01
- else dX:= dX + 0.01;
- if (x and LAND_WIDTH_MASK = 0) and ((y+cHHRadius+2) and LAND_HEIGHT_MASK = 0) and
- (Land[y+cHHRadius+2, x] and lfIndestructible <> 0) then
- fallDmg:= trunc(TraceFall(x, y, Point.x, Point.y, dX, dY, 0) * dmgMod)
- else fallDmg:= trunc(TraceFall(x, y, Point.x, Point.y, dX, dY, erasure) * dmgMod);
- if fallDmg < 0 then // drowning. score healthier hogs higher, since their death is more likely to benefit the AI
- if Score > 0 then
- inc(rate, KillScore + Score div 10) // Add a bit of a bonus for bigger hog drownings
- else
- dec(rate, KillScore * friendlyfactor div 100 - Score div 10) // and more of a punishment for drowning bigger friendly hogs
- else if (dmg+fallDmg) >= abs(Score) then
- if Score > 0 then
- inc(rate, KillScore)
- else
- dec(rate, KillScore * friendlyfactor div 100)
- else
- if Score > 0 then
- inc(rate, dmg+fallDmg)
- else
- dec(rate, (dmg+fallDmg) * friendlyfactor div 100)
+ dmg:= 0;
+ if abs(Point.x - x) + abs(Point.y - y) < baseDmg then
+ begin
+ dmg:= min(baseDmg - trunc(sqrt(sqr(Point.x - x)+sqr(Point.y - y))), 25);
+ dmg:= trunc(dmg * dmgMod);
+ end;
+ if dmg > 0 then
+ begin
+ if not(dead) and (Score > 0) and (dmg < Score) then
+ begin
+ pX:= Point.x;
+ pY:= Point.y;
+ dX:= gdX * dmg / Density;
+ dY:= gdY * dmg / Density;
+ if dX < 0 then dX:= dX - 0.01
+ else dX:= dX + 0.01;
+ if (Kind = gtExplosives) and (State and gstTmpFlag = 0) and
+ (((abs(dY) > 0.15) and (abs(dX) < 0.02)) or
+ ((abs(dY) < 0.15) and (abs(dX) < 0.15))) then
+ dX:= 0;
+ if (x and LAND_WIDTH_MASK = 0) and ((y+cHHRadius+2) and LAND_HEIGHT_MASK = 0) and
+ (Land[y+cHHRadius+2, x] and lfIndestructible <> 0) then
+ fallDmg:= trunc(TraceFall(x, y, pX, pY, dX, dY, 0, Targets.ar[i]) * dmgMod)
+ else fallDmg:= trunc(TraceFall(x, y, pX, pY, dX, dY, erasure, Targets.ar[i]) * dmgMod)
+ end;
+ if Kind = gtHedgehog then
+ begin
+ if fallDmg < 0 then // drowning. score healthier hogs higher, since their death is more likely to benefit the AI
+ begin
+ if Score > 0 then
+ inc(rate, KillScore + Score div 10) // Add a bit of a bonus for bigger hog drownings
+ else
+ dec(rate, KillScore * friendlyfactor div 100 - Score div 10) // and more of a punishment for drowning bigger friendly hogs
+ end
+ else if (dmg+fallDmg) >= abs(Score) then
+ begin
+ dead:= true;
+ Targets.reset:= true;
+ if dX < 0.035 then
+ begin
+ subrate:= RealRateExplosion(Me, round(pX), round(pY), 61, afErasesLand or afTrackFall);
+ if abs(subrate) > 2000 then inc(Rate,subrate div 1024)
+ end;
+ if Score > 0 then
+ inc(rate, KillScore)
+ else
+ dec(rate, KillScore * friendlyfactor div 100)
+ end
+ else if Score > 0 then
+ inc(rate, dmg+fallDmg)
+ else dec(rate, (dmg+fallDmg) * friendlyfactor div 100)
+ end
+ else if (fallDmg >= 0) and ((dmg+fallDmg) >= Score) then
+ begin
+ dead:= true;
+ Targets.reset:= true;
+ if Kind = gtExplosives then
+ subrate:= RealRateExplosion(Me, round(pX), round(pY), 151, afErasesLand or afTrackFall)
+ else subrate:= RealRateExplosion(Me, round(pX), round(pY), 101, afErasesLand or afTrackFall);
+ if abs(subrate) > 2000 then inc(Rate,subrate div 1024);
+ end
+ end
end;
- end;
if hadSkips and (rate = 0) then
RateShotgun:= BadTurn
else
RateShotgun:= rate * 1024;
+ ResetTargets;
end;
function RateHammer(Me: PGear): LongInt;
@@ -605,14 +778,13 @@
for i:= 0 to Pred(Targets.Count) do
with Targets.ar[i] do
- if matters then
// hammer hit radius is 8, shift is 10
- if abs(Point.x - x) + abs(Point.y - y) < 18 then
+ if matters and (Kind = gtHedgehog) and (abs(Point.x - x) + abs(Point.y - y) < 18) then
begin
r:= trunc(sqrt(sqr(Point.x - x)+sqr(Point.y - y)));
if r <= 18 then
- if Score > 0 then
+ if Score > 0 then
inc(rate, Score div 3)
else
inc(rate, Score div 3 * friendlyfactor div 100)
@@ -630,7 +802,7 @@
bY:= hwRound(Gear^.Y);
case JumpType of
jmpNone: exit(false);
-
+
jmpHJump:
if TestCollisionYwithGear(Gear, -1) = 0 then
begin
@@ -640,7 +812,7 @@
end
else
exit(false);
-
+
jmpLJump:
begin
if TestCollisionYwithGear(Gear, -1) <> 0 then
@@ -662,12 +834,12 @@
end;
repeat
- {if ((hwRound(Gear^.Y) and LAND_HEIGHT_MASK) = 0) and ((hwRound(Gear^.X) and LAND_WIDTH_MASK) = 0) then
+ {if ((hwRound(Gear^.Y) and LAND_HEIGHT_MASK) = 0) and ((hwRound(Gear^.X) and LAND_WIDTH_MASK) = 0) then
begin
LandPixels[hwRound(Gear^.Y), hwRound(Gear^.X)]:= Gear^.Hedgehog^.Team^.Clan^.Color;
UpdateLandTexture(hwRound(Gear^.X), 1, hwRound(Gear^.Y), 1, true);
end;}
-
+
if not (hwRound(Gear^.Y) + cHHRadius < cWaterLine) then
exit(false);
if (Gear^.State and gstMoving) <> 0 then
@@ -725,7 +897,7 @@
GoInfo.JumpType:= jmpNone;
tY:= hwRound(Gear^.Y);
repeat
- {if ((hwRound(Gear^.Y) and LAND_HEIGHT_MASK) = 0) and ((hwRound(Gear^.X) and LAND_WIDTH_MASK) = 0) then
+ {if ((hwRound(Gear^.Y) and LAND_HEIGHT_MASK) = 0) and ((hwRound(Gear^.X) and LAND_WIDTH_MASK) = 0) then
begin
LandPixels[hwRound(Gear^.Y), hwRound(Gear^.X)]:= random($FFFFFFFF);//Gear^.Hedgehog^.Team^.Clan^.Color;
UpdateLandTexture(hwRound(Gear^.X), 1, hwRound(Gear^.Y), 1, true);
@@ -739,8 +911,8 @@
AddWalkBonus(pX, tY, 250, -40);
exit(false)
end;
-
- // hog is falling
+
+ // hog is falling
if (Gear^.State and gstMoving) <> 0 then
begin
inc(GoInfo.Ticks);
@@ -749,7 +921,7 @@
begin
GoInfo.FallPix:= 0;
// try ljump instead of fall with damage
- HHJump(AltGear, jmpLJump, GoInfo);
+ HHJump(AltGear, jmpLJump, GoInfo);
if AltGear^.Hedgehog^.BotLevel < 4 then
AddWalkBonus(pX, tY, 175, -20);
exit(false)
--- a/hedgewars/uAmmos.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uAmmos.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uCaptions.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uCaptions.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uChat.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uChat.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uCollisions.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uCollisions.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -83,7 +83,7 @@
X:= hwRound(Gear^.X);
Y:= hwRound(Gear^.Y);
Radius:= Gear^.Radius;
- ChangeRoundInLand(X, Y, Radius - 1, true, (Gear = CurrentHedgehog^.Gear) or (Gear^.Kind = gtCase));
+ ChangeRoundInLand(X, Y, Radius - 1, true, (Gear = CurrentHedgehog^.Gear) or ((Gear^.Kind = gtCase) and (Gear^.State and gstFrozen <> 0)));
cGear:= Gear
end;
Gear^.CollisionIndex:= Count;
@@ -104,7 +104,7 @@
if Gear^.CollisionIndex >= 0 then
begin
with cinfos[Gear^.CollisionIndex] do
- ChangeRoundInLand(X, Y, Radius - 1, false, (Gear = CurrentHedgehog^.Gear) or (Gear^.Kind = gtCase));
+ ChangeRoundInLand(X, Y, Radius - 1, false, (Gear = CurrentHedgehog^.Gear) or ((Gear^.Kind = gtCase) and (Gear^.State and gstFrozen <> 0)));
cinfos[Gear^.CollisionIndex]:= cinfos[Pred(Count)];
cinfos[Gear^.CollisionIndex].cGear^.CollisionIndex:= Gear^.CollisionIndex;
Gear^.CollisionIndex:= -1;
--- a/hedgewars/uCommandHandlers.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uCommandHandlers.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -574,7 +574,7 @@
begin
if isDeveloperMode then
begin
- SetRandomSeed(s);
+ SetRandomSeed(s, true);
cSeed:= s;
InitStepsFlags:= InitStepsFlags or cifRandomize
end
--- a/hedgewars/uCommands.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uCommands.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uConsole.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uConsole.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uConsts.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uConsts.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -214,6 +214,8 @@
gstLoser = $00080000;
gstHHGone = $00100000;
gstInvisible = $00200000;
+ gstSubmersible = $00400000;
+ gstFrozen = $00800000;
// gear messages
gmLeft = $00000001;
--- a/hedgewars/uDebug.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uDebug.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uFloat.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uFloat.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -86,7 +86,8 @@
function hwAbs(const t: hwFloat): hwFloat; inline; // Returns the value of t with positive sign.
function hwSqr(const t: hwFloat): hwFloat; inline; // Returns the square value of parameter t.
function hwPow(const t: hwFloat; p: LongWord): hwFloat; inline; // Returns the power of the value
-function hwSqrt(const t: hwFloat): hwFloat; inline; // Returns the the positive square root of parameter t.
+function hwSqrt1(const t: hwFloat): hwFloat; inline; // Returns the the positive square root of parameter t.
+function hwSqrt(const x: hwFloat): hwFloat; inline; // Returns the the positive square root of parameter t.
function Distance(const dx, dy: hwFloat): hwFloat; // Returns the distance between two points in 2-dimensional space, of which the parameters are the horizontal and vertical distance.
function DistanceI(const dx, dy: LongInt): hwFloat; // Same as above for integer parameters.
function AngleSin(const Angle: Longword): hwFloat;
@@ -274,7 +275,7 @@
end
end;
-function isZero(const z: hwFloat): boolean; inline;
+function isZero(const z: hwFloat): boolean; inline;
begin
isZero := z.QWordValue = 0;
end;
@@ -287,7 +288,7 @@
if z1.QWordValue = z2.QWordValue then
b:= false
else
- b:= not((z1.QWordValue = z2.QWordValue) or ((z2.QWordValue < z1.QWordValue) <> z1.isNegative))
+ b:= (z2.QWordValue < z1.QWordValue) = z1.isNegative
end;
operator > (const z1, z2: hwFloat) b : boolean; inline;
@@ -418,24 +419,23 @@
end;
operator / (const z1: hwFloat; z2: hwFloat) z : hwFloat; inline;
-var t: hwFloat;
+var t: QWord;
begin
z.isNegative:= z1.isNegative xor z2.isNegative;
z.Round:= z1.QWordValue div z2.QWordValue;
-t:= z1 - z2 * z.Round;
-if t.QWordValue = 0 then
- z.Frac:= 0
-else
+t:= z1.QWordValue - z2.QWordValue * z.Round;
+z.Frac:= 0;
+
+if t <> 0 then
begin
- while ((t.QWordValue and $8000000000000000) = 0) and ((z2.QWordValue and $8000000000000000) = 0) do
+ while ((t and $FF00000000000000) = 0) and ((z2.QWordValue and $FF00000000000000) = 0) do
begin
- t.QWordValue:= t.QWordValue shl 1;
- z2.QWordValue:= z2.QWordValue shl 1
+ t:= t shl 8;
+ z2.QWordValue:= z2.QWordValue shl 8
end;
+
if z2.Round > 0 then
- z.Frac:= (t.QWordValue) div (z2.Round)
- else
- z.Frac:= 0
+ inc(z.QWordValue, t div z2.Round);
end
end;
@@ -491,14 +491,14 @@
end
end;
-function hwSqrt(const t: hwFloat): hwFloat;
+function hwSqrt1(const t: hwFloat): hwFloat;
const pwr = 8; // even value, feel free to adjust
rThreshold = 1 shl (pwr + 32);
lThreshold = 1 shl (pwr div 2 + 32);
var l, r: QWord;
c: hwFloat;
begin
-hwSqrt.isNegative:= false;
+hwSqrt1.isNegative:= false;
if t.Round = 0 then
begin
@@ -531,12 +531,47 @@
l:= c.QWordValue
until r - l <= 1;
-hwSqrt.QWordValue:= l
+hwSqrt1.QWordValue:= l
end;
-function Distance(const dx, dy: hwFloat): hwFloat;
+function hwSqrt(const x: hwFloat): hwFloat;
+var r, t, s, q: QWord;
+ i: integer;
begin
-Distance:= hwSqrt(hwSqr(dx) + hwSqr(dy))
+hwSqrt.isNegative:= false;
+
+t:= $4000000000000000;
+r:= 0;
+q:= x.QWordValue;
+
+for i:= 0 to 31 do
+ begin
+ s:= r + t;
+ r:= r shr 1;
+ if s <= q then
+ begin
+ dec(q, s);
+ inc(r, t);
+ end;
+ t:= t shr 2;
+ end;
+
+hwSqrt.QWordValue:= r shl 16
+end;
+
+
+
+function Distance(const dx, dy: hwFloat): hwFloat;
+var r: QWord;
+begin
+r:= dx.QWordValue or dy.QWordValue;
+
+if r < $10000 then
+ begin
+ Distance.QWordValue:= r;
+ Distance.isNegative:= false
+ end else
+ Distance:= hwSqrt(hwSqr(dx) + hwSqr(dy))
end;
function DistanceI(const dx, dy: LongInt): hwFloat;
--- a/hedgewars/uGame.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uGame.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uGears.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uGears.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -768,7 +768,8 @@
begin
dec(i);
Gear:= t^.ar[i];
- if (Ammo^.Kind = gtFlame) and (Gear^.Kind = gtHedgehog) and (Gear^.Hedgehog^.Effects[heFrozen] > 255) then
+ if ((Ammo^.Kind = gtFlame) or (Ammo^.Kind = gtBlowTorch)) and
+ (Gear^.Kind = gtHedgehog) and (Gear^.Hedgehog^.Effects[heFrozen] > 255) then
Gear^.Hedgehog^.Effects[heFrozen]:= max(255,Gear^.Hedgehog^.Effects[heFrozen]-10000);
tmpDmg:= ModifyDamage(Damage, Gear);
if (Gear^.State and gstNoDamage) = 0 then
--- a/hedgewars/uGearsHandlers.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uGearsHandlers.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uGearsHandlersRope.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uGearsHandlersRope.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uGearsHedgehog.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uGearsHedgehog.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -257,8 +257,16 @@
and ((Gear^.Message and gmLJump) <> 0)
and ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_AltUse) <> 0) then
begin
- newDx:= dX;
- newDy:= dY;
+ if (CurAmmoGear^.AmmoType = amJetpack) and (Gear^.Message and gmPrecise <> 0) then
+ begin
+ newDx:= xx*cMaxPower/cPowerDivisor;
+ newDy:= yy*cMaxPower/cPowerDivisor
+ end
+ else
+ begin
+ newDx:= dX;
+ newDy:= dY
+ end;
altUse:= true
end
else
@@ -385,11 +393,15 @@
amTardis: newGear:= AddGear(hwRound(X), hwRound(Y), gtTardis, 0, _0, _0, 5000);
amIceGun: newGear:= AddGear(hwRound(X), hwRound(Y), gtIceGun, 0, _0, _0, 0);
end;
- if altUse and (newGear <> nil) then
+ if altUse and (newGear <> nil) and
+ ((CurAmmoGear = nil) or (CurAmmoGear^.AmmoType <> amJetpack) or (Gear^.Message and gmPrecise = 0)) then
begin
newGear^.dX:= newDx / newGear^.Density;
newGear^.dY:= newDY / newGear^.Density
end;
+ if (CurAmmoGear <> nil) and (CurAmmoGear^.AmmoType = amJetpack) and
+ (Gear^.Message and gmPrecise <> 0) and (hwRound(Y) > cWaterLine) then
+ newGear^.State:= newGear^.State or gstSubmersible;
case CurAmmoType of
amGrenade, amMolotov,
@@ -513,7 +525,9 @@
begin
if TagTurnTimeLeft = 0 then
TagTurnTimeLeft:= TurnTimeLeft;
- TurnTimeLeft:=(Ammoz[a].TimeAfterTurn * cGetAwayTime) div 100;
+ if (CurAmmoGear <> nil) and (CurAmmoGear^.State and gstSubmersible <> 0) and (hwRound(CurAmmoGear^.Y) > cWaterLine) then
+ TurnTimeLeft:=(Ammoz[a].TimeAfterTurn * cGetAwayTime) div 25
+ else TurnTimeLeft:=(Ammoz[a].TimeAfterTurn * cGetAwayTime) div 100;
end;
if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) = 0) and (HHGear <> nil) then
HHGear^.State:= HHGear^.State or gstAttacked;
@@ -546,6 +560,7 @@
end
else if Gear^.Timer = 1 then
begin
+ 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;
@@ -797,7 +812,7 @@
da:= 2
else da:= 1;
-if (((HHGear^.Message and gmPrecise) = 0) or ((GameTicks mod 5) = 1)) then
+if ((HHGear^.Message and gmPrecise = 0) or ((CurAmmoGear <> nil) and (CurAmmoGear^.AmmoType = amJetpack))) or (GameTicks mod 5 = 1) then
if ((HHGear^.Message and gmUp) <> 0) and (HHGear^.Angle >= CurMinAngle + da) then
dec(HHGear^.Angle, da)
else
@@ -960,8 +975,11 @@
begin
Gear^.State:= Gear^.State and (not gstWinner);
Gear^.State:= Gear^.State and (not gstMoving);
- while (TestCollisionYWithGear(Gear,1) = 0) and (not CheckGearDrowning(Gear)) do
- Gear^.Y:= Gear^.Y+_1;
+ while (TestCollisionYWithGear(Gear,1) = 0) and (not CheckGearDrowning(Gear)) and (Gear <> nil) do
+ Gear^.Y:= Gear^.Y + _1;
+
+ // could become nil in CheckGearDrowning if ai's hog fails to respawn in ai survival
+ if Gear = nil then exit;
SetLittle(Gear^.dX);
Gear^.dY:= _0
end
@@ -981,7 +999,10 @@
Gear^.dY:= _0;
Gear^.Y:= Gear^.Y + _1
end;
+
CheckGearDrowning(Gear);
+ // could become nil if ai's hog fails to respawn in ai survival
+ if Gear = nil then exit;
// hide target cursor if current hog is drowning
if (Gear^.State and gstDrowning) <> 0 then
if (CurrentHedgehog^.Gear = Gear) then
@@ -1063,7 +1084,7 @@
HHGear^.Message:= HHGear^.Message or gmAttack;
// check for case with ammo
t:= CheckGearNear(HHGear, gtCase, 36, 36);
- if t <> nil then
+ if (t <> nil) and (t^.State and gstFrozen = 0) then
PickUp(HHGear, t)
end;
--- a/hedgewars/uGearsList.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uGearsList.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -471,7 +471,8 @@
end;
gtJetpack: begin
gear^.Health:= 2000;
- gear^.Damage:= 100
+ gear^.Damage:= 100;
+ gear^.State:= gstSubmersible
end;
gtMolotov: begin
gear^.Radius:= 6;
--- a/hedgewars/uGearsRender.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uGearsRender.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -365,13 +365,7 @@
lx:= lx + ax;
ly:= ly + ay;
tx:= round(lx);
- ty:= round(ly);
- if (abs(tx-hx) > 1000) or (abs(hy-ty) > 1000) then
- begin
- DrawLine(hx, hy, tx, ty, 1.0, $FF, $00, $00, $C0);
- hx:= tx;
- hy:= ty
- end
+ ty:= round(ly)
end;
// reached edge of land. assume infinite beam. Extend it way out past camera
if ((ty and LAND_HEIGHT_MASK) <> 0) or ((tx and LAND_WIDTH_MASK) <> 0) then
@@ -381,7 +375,6 @@
end;
//if (abs(lx-tx)>8) or (abs(ly-ty)>8) then
- if (tx <> hx) or (ty <> hy) then
begin
DrawLine(hx, hy, tx, ty, 1.0, $FF, $00, $00, $C0);
end;
@@ -999,6 +992,8 @@
aAngle: real;
startX, endX, startY, endY: LongInt;
begin
+ if Gear^.State and gstFrozen <> 0 then Tint($A0, $A0, $FF, $FF);
+ //if Gear^.State and gstFrozen <> 0 then Tint(IceColor or $FF);
if Gear^.Target.X <> NoPointX then
if Gear^.AmmoType = amBee then
DrawSpriteRotatedF(sprTargetBee, Gear^.Target.X + WorldDx, Gear^.Target.Y + WorldDy, 0, 0, (RealTicks shr 3) mod 360)
@@ -1058,11 +1053,13 @@
gtPickHammer: DrawSprite(sprPHammer, x - 16, y - 50 + LongInt(((GameTicks shr 5) and 1) * 2), 0);
gtRope: DrawRope(Gear);
- gtMine: if (((Gear^.State and gstAttacking) = 0)or((Gear^.Timer and $3FF) < 420)) and (Gear^.Health <> 0) then
+ gtMine: begin
+ if (((Gear^.State and gstAttacking) = 0)or((Gear^.Timer and $3FF) < 420)) and (Gear^.Health <> 0) then
DrawSpriteRotated(sprMineOff, x, y, 0, Gear^.DirAngle)
- else if Gear^.Health <> 0 then
- DrawSpriteRotated(sprMineOn, x, y, 0, Gear^.DirAngle)
- else DrawSpriteRotated(sprMineDead, x, y, 0, Gear^.DirAngle);
+ else if Gear^.Health <> 0 then
+ DrawSpriteRotated(sprMineOn, x, y, 0, Gear^.DirAngle)
+ else DrawSpriteRotated(sprMineDead, x, y, 0, Gear^.DirAngle);
+ end;
gtSMine: if (((Gear^.State and gstAttacking) = 0)or((Gear^.Timer and $3FF) < 420)) and (Gear^.Health <> 0) then
DrawSpriteRotated(sprSMineOff, x, y, 0, Gear^.DirAngle)
@@ -1076,26 +1073,38 @@
begin
if ((Gear^.Pos and posCaseAmmo) <> 0) then
begin
- i:= (GameTicks shr 6) mod 64;
- if i > 18 then
- i:= 0;
- DrawSprite(sprCase, x - 24, y - 24, i);
+ if Gear^.State and gstFrozen <> 0 then
+ DrawSprite(sprCase, x - 24, y - 28, 0)
+ else
+ begin
+ i:= (GameTicks shr 6) mod 64;
+ if i > 18 then i:= 0;
+ DrawSprite(sprCase, x - 24, y - 24, i)
+ end
end
else if ((Gear^.Pos and posCaseHealth) <> 0) then
begin
- i:= ((GameTicks shr 6) + 38) mod 64;
- if i > 13 then
- i:= 0;
- DrawSprite(sprFAid, x - 24, y - 24, i);
+ if Gear^.State and gstFrozen <> 0 then
+ DrawSprite(sprFAid, x - 24, y - 28, 0)
+ else
+ begin
+ i:= ((GameTicks shr 6) + 38) mod 64;
+ if i > 13 then i:= 0;
+ DrawSprite(sprFAid, x - 24, y - 24, i)
+ end
end
else if ((Gear^.Pos and posCaseUtility) <> 0) then
begin
- i:= (GameTicks shr 6) mod 70;
- if i > 23 then
- i:= 0;
- i:= i mod 12;
- DrawSprite(sprUtility, x - 24, y - 24, i);
- end;
+ if Gear^.State and gstFrozen <> 0 then
+ DrawSprite(sprUtility, x - 24, y - 28, 0)
+ else
+ begin
+ i:= (GameTicks shr 6) mod 70;
+ if i > 23 then i:= 0;
+ i:= i mod 12;
+ DrawSprite(sprUtility, x - 24, y - 24, i)
+ end
+ end
end;
if Gear^.Timer < 1833 then
begin
@@ -1116,7 +1125,7 @@
else if Gear^.State and gsttmpFlag = 0 then
DrawSpriteRotatedF(sprExplosivesRoll, x, y + 4, 0, 0, Gear^.DirAngle)
else
- DrawSpriteRotatedF(sprExplosivesRoll, x, y + 4, 1, 0, Gear^.DirAngle);
+ DrawSpriteRotatedF(sprExplosivesRoll, x, y + 4, 1, 0, Gear^.DirAngle)
end;
gtDynamite: DrawSprite(sprDynamite, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1);
gtClusterBomb: DrawSpriteRotated(sprClusterBomb, x, y, 0, Gear^.DirAngle);
@@ -1305,6 +1314,7 @@
end;
if Gear^.RenderTimer and (Gear^.Tex <> nil) then
DrawTextureCentered(x + 8, y + 8, Gear^.Tex);
+ if Gear^.State and gstFrozen <> 0 then Tint($FF, $FF, $FF, $FF)
end;
end.
--- a/hedgewars/uGearsUtils.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uGearsUtils.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -31,13 +31,13 @@
procedure HHHurt(Hedgehog: PHedgehog; Source: TDamageSource);
procedure CheckHHDamage(Gear: PGear);
procedure CalcRotationDirAngle(Gear: PGear);
-procedure ResurrectHedgehog(gear: PGear);
+procedure ResurrectHedgehog(var gear: PGear);
procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt); inline;
procedure FindPlace(var Gear: PGear; withFall: boolean; Left, Right: LongInt; skipProximity: boolean);
function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear;
-function CheckGearDrowning(Gear: PGear): boolean;
+function CheckGearDrowning(var Gear: PGear): boolean;
procedure CheckCollision(Gear: PGear); inline;
procedure CheckCollisionWithLand(Gear: PGear); inline;
@@ -263,6 +263,7 @@
procedure HHHurt(Hedgehog: PHedgehog; Source: TDamageSource);
begin
+if Hedgehog^.Effects[heFrozen] <> 0 then exit;
if (Source = dsFall) or (Source = dsExplosion) then
case random(3) of
0: PlaySoundV(sndOoff1, Hedgehog^.Team^.voicepack);
@@ -289,32 +290,34 @@
i: LongWord;
particle: PVisualGear;
begin
- if _0_4 < Gear^.dY then
- begin
- dmg := ModifyDamage(1 + hwRound((hwAbs(Gear^.dY) - _0_4) * 70), Gear);
- PlaySound(sndBump);
- if dmg < 1 then
- exit;
+if _0_4 < Gear^.dY then
+ begin
+ dmg := ModifyDamage(1 + hwRound((Gear^.dY - _0_4) * 70), Gear);
+ if Gear^.Hedgehog^.Effects[heFrozen] = 0 then
+ PlaySound(sndBump)
+ else PlaySound(sndFrozenHogImpact);
+ if dmg < 1 then
+ exit;
- for i:= min(12, (3 + dmg div 10)) downto 0 do
- begin
- particle := AddVisualGear(hwRound(Gear^.X) - 5 + Random(10), hwRound(Gear^.Y) + 12, vgtDust);
- if particle <> nil then
- particle^.dX := particle^.dX + (Gear^.dX.QWordValue / 21474836480);
- end;
+ for i:= min(12, (3 + dmg div 10)) downto 0 do
+ begin
+ particle := AddVisualGear(hwRound(Gear^.X) - 5 + Random(10), hwRound(Gear^.Y) + 12, vgtDust);
+ if particle <> nil then
+ particle^.dX := particle^.dX + (Gear^.dX.QWordValue / 21474836480);
+ end;
- if (Gear^.Invulnerable) then
- exit;
+ if (Gear^.Invulnerable) then
+ exit;
- //if _0_6 < Gear^.dY then
- // PlaySound(sndOw4, Gear^.Hedgehog^.Team^.voicepack)
- //else
- // PlaySound(sndOw1, Gear^.Hedgehog^.Team^.voicepack);
+ //if _0_6 < Gear^.dY then
+ // PlaySound(sndOw4, Gear^.Hedgehog^.Team^.voicepack)
+ //else
+ // PlaySound(sndOw1, Gear^.Hedgehog^.Team^.voicepack);
- if Gear^.LastDamage <> nil then
- ApplyDamage(Gear, Gear^.LastDamage, dmg, dsFall)
- else
- ApplyDamage(Gear, CurrentHedgehog, dmg, dsFall);
+ if Gear^.LastDamage <> nil then
+ ApplyDamage(Gear, Gear^.LastDamage, dmg, dsFall)
+ else
+ ApplyDamage(Gear, CurrentHedgehog, dmg, dsFall);
end
end;
@@ -337,8 +340,8 @@
Gear^.DirAngle := Gear^.DirAngle - 360
end;
-function CheckGearDrowning(Gear: PGear): boolean;
-var
+function CheckGearDrowning(var Gear: PGear): boolean;
+var
skipSpeed, skipAngle, skipDecay: hwFloat;
i, maxDrops, X, Y: LongInt;
vdX, vdY: real;
@@ -361,7 +364,7 @@
else DeleteGear(Gear);
exit
end;
- isSubmersible:= (Gear = CurrentHedgehog^.Gear) and (CurAmmoGear <> nil) and (CurAmmoGear^.AmmoType = amJetpack);
+ isSubmersible:= ((Gear = CurrentHedgehog^.Gear) and (CurAmmoGear <> nil) and (CurAmmoGear^.State and gstSubmersible <> 0)) or (Gear^.State and gstSubmersible <> 0);
skipSpeed := _0_25;
skipAngle := _1_9;
skipDecay := _0_87;
@@ -369,7 +372,7 @@
vdX:= hwFloat2Float(Gear^.dX);
vdY:= hwFloat2Float(Gear^.dY);
// this could perhaps be a tiny bit higher.
- if (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) > skipSpeed)
+ if (cWaterLine + 64 + Gear^.Radius > Y) and (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) > skipSpeed)
and (hwAbs(Gear^.dX) > skipAngle * hwAbs(Gear^.dY)) then
begin
Gear^.dY.isNegative := true;
@@ -390,7 +393,11 @@
if Gear^.Kind = gtHedgehog then
begin
if Gear^.Hedgehog^.Effects[heResurrectable] <> 0 then
- ResurrectHedgehog(Gear)
+ begin
+ // Gear could become nil after this, just exit to skip splashes
+ ResurrectHedgehog(Gear);
+ exit
+ end
else
begin
Gear^.doStep := @doStepDrowningGear;
@@ -401,10 +408,13 @@
else
Gear^.doStep := @doStepDrowningGear;
if Gear^.Kind = gtFlake then
- exit // skip splashes
- end;
+ exit // skip splashes
+ end
+ else if (Y > cWaterLine + cVisibleWater*4) and
+ ((Gear <> CurrentHedgehog^.Gear) or (CurAmmoGear = nil) or (CurAmmoGear^.State and gstSubmersible = 0)) then
+ Gear^.doStep:= @doStepDrowningGear;
if ((not isSubmersible) and (Y < cWaterLine + 64 + Gear^.Radius))
- or (isSubmersible and (Y < cWaterLine + 2 + Gear^.Radius) and ((CurAmmoGear^.Pos = 0)
+ or (isSubmersible and (Y < cWaterLine + 2 + Gear^.Radius) and (Gear = CurAmmoGear) and ((CurAmmoGear^.Pos = 0)
and (CurAmmoGear^.dY < _0_01))) then
if Gear^.Density * Gear^.dY > _1 then
PlaySound(sndSplash)
@@ -416,7 +426,7 @@
if ((cReducedQuality and rqPlainSplash) = 0)
and (((not isSubmersible) and (Y < cWaterLine + 64 + Gear^.Radius))
- or (isSubmersible and (Y < cWaterLine + 2 + Gear^.Radius) and ((CurAmmoGear^.Pos = 0)
+ or (isSubmersible and (Y < cWaterLine + 2 + Gear^.Radius) and (Gear = CurAmmoGear) and ((CurAmmoGear^.Pos = 0)
and (CurAmmoGear^.dY < _0_01)))) then
begin
splash:= AddVisualGear(X, cWaterLine, vgtSplash);
@@ -457,7 +467,7 @@
end
end
end;
- if isSubmersible and (CurAmmoGear^.Pos = 0) then
+ if isSubmersible and (Gear = CurAmmoGear) and (CurAmmoGear^.Pos = 0) then
CurAmmoGear^.Pos := 1000
end
else
@@ -465,7 +475,7 @@
end;
-procedure ResurrectHedgehog(gear: PGear);
+procedure ResurrectHedgehog(var gear: PGear);
var tempTeam : PTeam;
sparkles: PVisualGear;
gX, gY: LongInt;
@@ -507,7 +517,7 @@
RenderHealth(gear^.Hedgehog^);
ScriptCall('onGearResurrect', gear^.uid);
gear^.State := gstWait;
- end;
+ end;
RecountTeamHealth(tempTeam);
end;
--- a/hedgewars/uIO.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uIO.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uInputHandler.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uInputHandler.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -289,8 +289,8 @@
DefaultBinds[KeyNameToCode(_S'y')]:= 'confirm';
DefaultBinds[KeyNameToCode('mousem')]:= 'zoomreset';
-DefaultBinds[KeyNameToCode('wheelup')]:= 'zoomout';
-DefaultBinds[KeyNameToCode('wheeldown')]:= 'zoomin';
+DefaultBinds[KeyNameToCode('wheelup')]:= 'zoomin';
+DefaultBinds[KeyNameToCode('wheeldown')]:= 'zoomout';
DefaultBinds[KeyNameToCode('f12')]:= 'fullscr';
--- a/hedgewars/uLand.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uLand.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -484,28 +484,11 @@
p:= tmpsurf^.pixels;
for y:= 0 to Pred(tmpsurf^.h) do
- begin
+ begin
for x:= 0 to Pred(tmpsurf^.w) do
- begin
- // this an if instead of masking colours to avoid confusing map creators
- if ((AMask and p^[x]) = 0) then
- Land[cpY + y, cpX + x]:= 0
- else if p^[x] = $FFFFFFFF then // white
- Land[cpY + y, cpX + x]:= lfObject
- else if p^[x] = AMask then // black
- begin
- Land[cpY + y, cpX + x]:= lfBasic;
- disableLandBack:= false
- end
- else if p^[x] = (AMask or RMask) then // red
- Land[cpY + y, cpX + x]:= lfIndestructible
- else if p^[x] = (AMask or BMask) then // blue
- Land[cpY + y, cpX + x]:= lfObject or lfIce
- else if p^[x] = (AMask or GMask) then // green
- Land[cpY + y, cpX + x]:= lfObject or lfBouncy
+ SetLand(Land[cpY + y, cpX + x], p^[x]);
+ p:= @(p^[tmpsurf^.pitch div 4]);
end;
- p:= @(p^[tmpsurf^.pitch div 4]);
- end;
if SDL_MustLock(tmpsurf) then
SDL_UnlockSurface(tmpsurf);
--- a/hedgewars/uLandGenMaze.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uLandGenMaze.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,3 +1,5 @@
+{$INCLUDE "options.inc"}
+
unit uLandGenMaze;
interface
--- a/hedgewars/uLandGraphics.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uLandGraphics.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uLandObjects.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uLandObjects.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -27,7 +27,9 @@
procedure LoadThemeConfig;
procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface); inline;
procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface; extraFlags: Word);
+procedure BlitImageUsingMask(cpX, cpY: Longword; Image, Mask: PSDL_Surface);
procedure AddOnLandObjects(Surface: PSDL_Surface);
+procedure SetLand(var LandWord: Word; Pixel: LongWord); inline;
implementation
uses uStore, uConsts, uConsole, uRandom, uSound, GLunit
@@ -42,7 +44,7 @@
type TRectsArray = array[0..MaxRects] of TSDL_Rect;
PRectArray = ^TRectsArray;
TThemeObject = record
- Surf: PSDL_Surface;
+ Surf, Mask: PSDL_Surface;
inland: TSDL_Rect;
outland: array[0..Pred(MAXOBJECTRECTS)] of TSDL_Rect;
rectcnt: Longword;
@@ -68,7 +70,25 @@
ThemeObjects: TThemeObjects;
SprayObjects: TSprayObjects;
-
+procedure SetLand(var LandWord: Word; Pixel: LongWord); inline;
+begin
+ // this an if instead of masking colours to avoid confusing map creators
+ if ((AMask and Pixel) = 0) then
+ LandWord:= 0
+ else if Pixel = $FFFFFFFF then // white
+ LandWord:= lfObject
+ else if Pixel = AMask then // black
+ begin
+ LandWord:= lfBasic;
+ disableLandBack:= false
+ end
+ else if Pixel = (AMask or RMask) then // red
+ LandWord:= lfIndestructible
+ else if Pixel = (AMask or BMask) then // blue
+ LandWord:= lfObject or lfIce
+ else if Pixel = (AMask or GMask) then // green
+ LandWord:= lfObject or lfBouncy
+end;
procedure BlitImageAndGenerateCollisionInfo(cpX, cpY, Width: Longword; Image: PSDL_Surface); inline;
begin
@@ -121,6 +141,47 @@
WriteLnToConsole(msgOK)
end;
+procedure BlitImageUsingMask(cpX, cpY: Longword; Image, Mask: PSDL_Surface);
+var p, mp: PLongwordArray;
+ x, y: Longword;
+ bpp: LongInt;
+begin
+WriteToConsole('Generating collision info... ');
+
+if SDL_MustLock(Image) then
+ SDLTry(SDL_LockSurface(Image) >= 0, true);
+
+bpp:= Image^.format^.BytesPerPixel;
+TryDo(bpp = 4, 'Land object should be 32bit', true);
+
+p:= Image^.pixels;
+mp:= Mask^.pixels;
+for y:= 0 to Pred(Image^.h) do
+ begin
+ for x:= 0 to Pred(Image^.w) do
+ begin
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ if (LandPixels[cpY + y, cpX + x] = 0)
+ or (((p^[x] and AMask) <> 0) and (((LandPixels[cpY + y, cpX + x] and AMask) shr AShift) < 255)) then
+ LandPixels[cpY + y, cpX + x]:= p^[x];
+ end
+ else
+ if LandPixels[(cpY + y) div 2, (cpX + x) div 2] = 0 then
+ LandPixels[(cpY + y) div 2, (cpX + x) div 2]:= p^[x];
+
+ if (Land[cpY + y, cpX + x] <= lfAllObjMask) or (Land[cpY + y, cpX + x] and lfObject <> 0) then
+ SetLand(Land[cpY + y, cpX + x], mp^[x]);
+ end;
+ p:= @(p^[Image^.pitch shr 2]);
+ mp:= @(mp^[Mask^.pitch shr 2])
+ end;
+
+if SDL_MustLock(Image) then
+ SDL_UnlockSurface(Image);
+WriteLnToConsole(msgOK)
+end;
+
procedure AddRect(x1, y1, w1, h1: LongInt);
begin
with Rects^[RectCount] do
@@ -328,7 +389,9 @@
if bRes then
begin
i:= getrandom(cnt);
- BlitImageAndGenerateCollisionInfo(ar[i].x, ar[i].y, 0, Obj.Surf);
+ if Obj.Mask <> nil then
+ BlitImageUsingMask(ar[i].x, ar[i].y, Obj.Surf, Obj.Mask)
+ else BlitImageAndGenerateCollisionInfo(ar[i].x, ar[i].y, 0, Obj.Surf);
AddRect(ar[i].x, ar[i].y, Width, Height);
dec(Maxcnt)
end
@@ -557,9 +620,10 @@
with ThemeObjects.objs[Pred(ThemeObjects.Count)] do
begin
i:= Pos(',', s);
- Surf:= LoadDataImage(ptCurrTheme, Trim(Copy(s, 1, Pred(i))), ifTransparent or ifIgnoreCaps);
+ Surf:= LoadDataImage(ptCurrTheme, Trim(Copy(s, 1, Pred(i))), ifTransparent or ifIgnoreCaps or ifCritical);
Width:= Surf^.w;
Height:= Surf^.h;
+ Mask:= LoadDataImage(ptCurrTheme, Trim(Copy(s, 1, Pred(i)))+'_mask', ifTransparent or ifIgnoreCaps);
Delete(s, 1, i);
i:= Pos(',', s);
Maxcnt:= StrToInt(Trim(Copy(s, 1, Pred(i))));
--- a/hedgewars/uLandPainted.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uLandPainted.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uLandTemplates.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uLandTemplates.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -1815,7 +1815,7 @@
FillPointsCount: Succ(High(Template0FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 8;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1826,7 +1826,7 @@
FillPointsCount: Succ(High(Template1FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 7;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1837,7 +1837,7 @@
FillPointsCount: Succ(High(Template2FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 6;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1848,7 +1848,7 @@
FillPointsCount: Succ(High(Template3FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 4;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1859,7 +1859,7 @@
FillPointsCount: Succ(High(Template4FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 4;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1870,7 +1870,7 @@
FillPointsCount: Succ(High(Template5FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 8;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1881,7 +1881,7 @@
FillPointsCount: Succ(High(Template6FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 5;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1892,7 +1892,7 @@
FillPointsCount: Succ(High(Template7FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 4;
RandPassesCount: 4;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1903,7 +1903,7 @@
FillPointsCount: Succ(High(Template8FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 7;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1914,7 +1914,7 @@
FillPointsCount: Succ(High(Template9FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 1;
RandPassesCount: 5;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1925,7 +1925,7 @@
FillPointsCount: Succ(High(Template10FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 6;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1936,7 +1936,7 @@
FillPointsCount: Succ(High(Template11FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 1;
RandPassesCount: 8;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1947,7 +1947,7 @@
FillPointsCount: Succ(High(Template12FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 8;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1958,7 +1958,7 @@
FillPointsCount: Succ(High(Template13FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 5;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1969,7 +1969,7 @@
FillPointsCount: Succ(High(Template14FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 7;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1980,7 +1980,7 @@
FillPointsCount: Succ(High(Template15FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 6;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -1991,7 +1991,7 @@
FillPointsCount: Succ(High(Template16FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 6;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -2002,7 +2002,7 @@
FillPointsCount: Succ(High(Template17FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 7;
- TemplateHeight: 1424; TemplateWidth: 2848;
+ TemplateHeight: 1424; TemplateWidth: 3072;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 18;
@@ -2013,7 +2013,7 @@
FillPointsCount: Succ(High(Template18FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 8;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2024,7 +2024,7 @@
FillPointsCount: Succ(High(Template19FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 7;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2035,7 +2035,7 @@
FillPointsCount: Succ(High(Template20FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 6;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2046,7 +2046,7 @@
FillPointsCount: Succ(High(Template21FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 4;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2057,7 +2057,7 @@
FillPointsCount: Succ(High(Template22FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 4;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2068,7 +2068,7 @@
FillPointsCount: Succ(High(Template23FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 8;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2079,7 +2079,7 @@
FillPointsCount: Succ(High(Template24FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 5;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2090,7 +2090,7 @@
FillPointsCount: Succ(High(Template25FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 4;
RandPassesCount: 4;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2101,7 +2101,7 @@
FillPointsCount: Succ(High(Template26FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 7;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2112,7 +2112,7 @@
FillPointsCount: Succ(High(Template27FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 1;
RandPassesCount: 5;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2123,7 +2123,7 @@
FillPointsCount: Succ(High(Template28FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 6;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2134,7 +2134,7 @@
FillPointsCount: Succ(High(Template29FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 1;
RandPassesCount: 8;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2145,7 +2145,7 @@
FillPointsCount: Succ(High(Template30FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 8;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2156,7 +2156,7 @@
FillPointsCount: Succ(High(Template31FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 5;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2167,7 +2167,7 @@
FillPointsCount: Succ(High(Template32FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 7;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2178,7 +2178,7 @@
FillPointsCount: Succ(High(Template33FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 6;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2189,7 +2189,7 @@
FillPointsCount: Succ(High(Template34FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 2;
RandPassesCount: 6;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
@@ -2200,7 +2200,7 @@
FillPointsCount: Succ(High(Template35FPoints)){$IFDEF PAS2C}-1{$ENDIF};
BezierizeCount: 3;
RandPassesCount: 7;
- TemplateHeight: 1424; TemplateWidth: 3900;
+ TemplateHeight: 1424; TemplateWidth: 4096;
canMirror: true; canFlip: false; isNegative: false; canInvert: false;
hasGirders: true;
MaxHedgeHogs: 36;
--- a/hedgewars/uLandTexture.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uLandTexture.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uLocale.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uLocale.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uMisc.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uMisc.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -38,8 +38,7 @@
implementation
uses SysUtils, uVariables, uUtils
- {$IFDEF PNG_SCREENSHOTS}, PNGh, png {$ENDIF}
- {$IFNDEF USE_SDLTHREADS} {$IFDEF UNIX}, cthreads{$ENDIF} {$ENDIF};
+ {$IFDEF PNG_SCREENSHOTS}, PNGh, png {$ENDIF};
type PScreenshot = ^TScreenshot;
TScreenshot = record
@@ -64,7 +63,7 @@
{$IFDEF PNG_SCREENSHOTS}
// this funtion will be executed in separate thread
-function SaveScreenshot(screenshot: pointer): PtrInt;
+function SaveScreenshot(screenshot: pointer): LongInt; cdecl; export;
var i: LongInt;
png_ptr: ^png_struct;
info_ptr: ^png_info;
@@ -119,7 +118,7 @@
{$ELSE} // no PNG_SCREENSHOTS
// this funtion will be executed in separate thread
-function SaveScreenshot(screenshot: pointer): PtrInt;
+function SaveScreenshot(screenshot: pointer): LongInt; cdecl; export;
var f: file;
// Windows Bitmap Header
head: array[0..53] of Byte = (
@@ -263,11 +262,7 @@
image^.size:= size;
image^.buffer:= p;
-{$IFDEF USE_SDLTHREADS}
-SDL_CreateThread(@SaveScreenshot{$IFDEF SDL13}, nil{$ENDIF}, image);
-{$ELSE}
-BeginThread(@SaveScreenshot, image);
-{$ENDIF}
+SDL_CreateThread(@SaveScreenshot{$IFDEF SDL13}, 'snapshot'{$ENDIF}, image);
MakeScreenshot:= true; // possibly it is not true but we will not wait for thread to terminate
end;
--- a/hedgewars/uPhysFSLayer.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uPhysFSLayer.pas Tue Jun 04 22:28:12 2013 +0200
@@ -9,6 +9,8 @@
{$IFNDEF WIN32}
{$linklib physfs}
{$linklib physlayer}
+
+ {statically linking physfs brings IOKit dependency on OSX}
{$IFDEF DARWIN}
{$linkframework IOKit}
{$ENDIF}
@@ -34,6 +36,7 @@
function physfsReader(L: Plua_State; f: PFSFile; sz: Psize_t) : PChar; cdecl; external PhyslayerLibName;
procedure physfsReaderSetBuffer(buf: pointer); cdecl; external PhyslayerLibName;
+procedure hedgewarsMountPackage(filename: PChar); cdecl; external PhyslayerLibName;
{$IFNDEF PAS2C}
//apparently pas2c doesn't render the functions below if it finds 'implementation' first
--- a/hedgewars/uRandom.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uRandom.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -30,8 +30,8 @@
interface
uses uFloat;
-procedure SetRandomSeed(Seed: shortstring); // Sets the seed that should be used for generating pseudo-random values.
-function GetRandomf: hwFloat; // Returns a pseudo-random hwFloat.
+procedure SetRandomSeed(Seed: shortstring; dropAdditionalPart: boolean); // Sets the seed that should be used for generating pseudo-random values.
+function GetRandomf: hwFloat; overload; // Returns a pseudo-random hwFloat.
function GetRandom(m: LongWord): LongWord; overload; inline; // Returns a positive pseudo-random integer smaller than m.
procedure AddRandomness(r: LongWord); inline;
function rndSign(num: hwFloat): hwFloat; // Returns num with a random chance of having a inverted sign.
@@ -61,18 +61,24 @@
str(GetNext, s);
end;
-procedure SetRandomSeed(Seed: shortstring);
-var i: Longword;
+procedure SetRandomSeed(Seed: shortstring; dropAdditionalPart: boolean);
+var i, t, l: Longword;
begin
n:= 54;
if Length(Seed) > 54 then
Seed:= copy(Seed, 1, 54); // not 55 to ensure we have odd numbers in cirbuf
-for i:= 0 to Pred(Length(Seed)) do
- cirbuf[i]:= byte(Seed[i + 1]);
+t:= 0;
+l:= Length(Seed);
-for i:= Length(Seed) to 54 do
+while (t < l) and ((not dropAdditionalPart) or (Seed[t + 1] <> '|')) do
+ begin
+ cirbuf[t]:= byte(Seed[t + 1]);
+ inc(t)
+ end;
+
+for i:= t to 54 do
cirbuf[i]:= $A98765 + 68; // odd number
for i:= 0 to 1023 do
--- a/hedgewars/uRender.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uRender.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uRenderUtils.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uRenderUtils.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uScript.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uScript.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -2039,7 +2039,8 @@
// call the script file
lua_pcall(luaState, 0, 0, 0);
ScriptLoaded:= true
- end
+ end;
+ hedgewarsMountPackage(Str2PChar(copy(s, 1, length(s)-4)+'.hwp'));
end;
procedure SetGlobals;
@@ -2261,6 +2262,7 @@
ScriptSetInteger('gfMultiWeapon', gfMultiWeapon);
ScriptSetInteger('gfSolidLand', gfSolidLand);
ScriptSetInteger('gfBorder', gfBorder);
+ScriptSetInteger('gfBottomBorder', gfBottomBorder);
ScriptSetInteger('gfDivideTeams', gfDivideTeams);
ScriptSetInteger('gfLowGravity', gfLowGravity);
ScriptSetInteger('gfLaserSight', gfLaserSight);
--- a/hedgewars/uSinTable.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uSinTable.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uSound.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uSound.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -155,7 +155,7 @@
(FileName: 'Yessir.ogg'; Path: ptVoices),// sndYesSir
(FileName: 'Laugh.ogg'; Path: ptVoices),// sndLaugh
(FileName: 'Illgetyou.ogg'; Path: ptVoices),// sndIllGetYou
- (FileName: 'JustYouWait.ogg'; Path: ptVoices),// sndJustYouWait
+ (FileName: 'Justyouwait.ogg'; Path: ptVoices),// sndJustyouwait
(FileName: 'Incoming.ogg'; Path: ptVoices),// sndIncoming
(FileName: 'Missed.ogg'; Path: ptVoices),// sndMissed
(FileName: 'Stupid.ogg'; Path: ptVoices),// sndStupid
@@ -248,7 +248,10 @@
(FileName: 'bump.ogg'; Path: ptSounds),// sndBump
(FileName: 'hogchant3.ogg'; Path: ptSounds),// sndResurrector
(FileName: 'plane.ogg'; Path: ptSounds),// sndPlane
- (FileName: 'TARDIS.ogg'; Path: ptSounds) // sndTardis
+ (FileName: 'TARDIS.ogg'; Path: ptSounds),// sndTardis
+ (FileName: 'frozen_hog_impact.ogg'; Path: ptSounds),// sndFrozenHogImpact
+ (FileName: 'ice_beam.ogg'; Path: ptSounds),// sndIceBeam
+ (FileName: 'hog_freeze.ogg'; Path: ptSounds) // sndHogFreeze
);
--- a/hedgewars/uStats.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uStats.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uStore.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uStore.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -603,19 +603,19 @@
tmpsurf:= IMG_Load_RW(rwopsOpenRead(s), true);
if tmpsurf = nil then
- begin
+ begin
OutError(msgFailed, (imageFlags and ifCritical) <> 0);
exit;
- end;
+ end;
if ((imageFlags and ifIgnoreCaps) = 0) and ((tmpsurf^.w > MaxTextureSize) or (tmpsurf^.h > MaxTextureSize)) then
- begin
+ begin
SDL_FreeSurface(tmpsurf);
OutError(msgFailedSize, ((not cOnlyStats) and ((imageFlags and ifCritical) <> 0)));
// dummy surface to replace non-critical textures that failed to load due to their size
LoadImage:= SDL_CreateRGBSurface(SDL_SWSURFACE, 2, 2, 32, RMask, GMask, BMask, AMask);
exit;
- end;
+ end;
tmpsurf:= doSurfaceConversion(tmpsurf);
--- a/hedgewars/uTeams.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uTeams.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -110,7 +110,7 @@
end;
procedure SwitchHedgehog;
-var c, i, j: LongWord;
+var c, i, t, j: LongWord;
PrevHH, PrevTeam : LongWord;
begin
TargetPoint.X:= NoPointX;
@@ -173,15 +173,7 @@
if c = ClansCount then
begin
if not PlacingHogs then
- begin
inc(TotalRounds);
- for i:= 0 to Pred(TeamsCount) do
- with TeamsArray[i]^ do
- for j:= 0 to Pred(HedgehogsNumber) do
- with Hedgehogs[j] do
- if Effects[heFrozen] > 255 then
- Effects[heFrozen]:= max(255,Effects[heFrozen]-50000)
- end;
c:= 0
end;
@@ -196,11 +188,22 @@
PrevHH:= CurrHedgehog mod HedgehogsNumber; // prevent infinite loop when CurrHedgehog = 7, but HedgehogsNumber < 8 (team is destroyed before its first turn)
repeat
CurrHedgehog:= Succ(CurrHedgehog) mod HedgehogsNumber;
- until ((Hedgehogs[CurrHedgehog].Gear <> nil) and (Hedgehogs[CurrHedgehog].Effects[heFrozen] = 0)) or (CurrHedgehog = PrevHH)
+ until ((Hedgehogs[CurrHedgehog].Gear <> nil) and (Hedgehogs[CurrHedgehog].Effects[heFrozen] < 256)) or (CurrHedgehog = PrevHH)
end
- until (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear <> nil) or (PrevTeam = CurrTeam) or ((CurrTeam = TagTeamIndex) and ((GameFlags and gfTagTeam) <> 0));
- end
-until (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear <> nil) and (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Effects[heFrozen] = 0);
+ until ((CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear <> nil) and (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Effects[heFrozen] < 50256)) or (PrevTeam = CurrTeam) or ((CurrTeam = TagTeamIndex) and ((GameFlags and gfTagTeam) <> 0))
+ end;
+ if (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear = nil) or (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Effects[heFrozen] > 255) then
+ begin
+ inc(CurrentTeam^.Clan^.TurnNumber);
+ with CurrentTeam^.Clan^ do
+ for t:= 0 to Pred(TeamsNumber) do
+ with Teams[t]^ do
+ for i:= 0 to Pred(HedgehogsNumber) do
+ with Hedgehogs[i] do
+ if Effects[heFrozen] > 255 then
+ Effects[heFrozen]:= max(255,Effects[heFrozen]-50000)
+ end
+until (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Gear <> nil) and (CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog].Effects[heFrozen] < 256);
SwitchCurrentHedgehog(@(CurrentTeam^.Hedgehogs[CurrentTeam^.CurrHedgehog]));
{$IFDEF USE_TOUCH_INTERFACE}
@@ -247,6 +250,13 @@
end;
inc(CurrentTeam^.Clan^.TurnNumber);
+with CurrentTeam^.Clan^ do
+ for t:= 0 to Pred(TeamsNumber) do
+ with Teams[t]^ do
+ for i:= 0 to Pred(HedgehogsNumber) do
+ with Hedgehogs[i] do
+ if Effects[heFrozen] > 255 then
+ Effects[heFrozen]:= max(255,Effects[heFrozen]-50000);
CurWeapon:= GetCurAmmoEntry(CurrentHedgehog^);
if CurWeapon^.Count = 0 then
--- a/hedgewars/uTextures.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uTextures.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uTypes.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uTypes.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -141,7 +141,8 @@
sndPoisonCough, sndPoisonMoan, sndBirdyLay, sndWhistle, sndBeeWater,
sndPiano0, sndPiano1, sndPiano2, sndPiano3, sndPiano4, sndPiano5, sndPiano6, sndPiano7, sndPiano8,
sndSkip, sndSineGun, sndOoff1, sndOoff2, sndOoff3, sndWhack,
- sndComeonthen, sndParachute, sndBump, sndResurrector, sndPlane, sndTardis);
+ sndComeonthen, sndParachute, sndBump, sndResurrector, sndPlane, sndTardis, sndFrozenHogImpact, sndIceBeam, sndHogFreeze
+ );
// Available ammo types to be used by hedgehogs
TAmmoType = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, // 6
--- a/hedgewars/uUtils.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uUtils.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uVariables.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uVariables.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -1767,7 +1767,6 @@
Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_ForwMsgs or
ammoprop_AttackInMove or
- ammoprop_NoCrosshair or
ammoprop_DontHold or
ammoprop_Utility or
ammoprop_NeedUpDown or
@@ -2102,7 +2101,7 @@
TimeAfterTurn: 3000;
minAngle: 0;
maxAngle: 0;
- isDamaging: true;
+ isDamaging: false;
SkipTurns: 0;
PosCount: 1;
PosSprite: sprWater;
@@ -2179,7 +2178,7 @@
AmmoType: amLandGun;
AttackVoice: sndNone;
Bounciness: 1000);
- Slot: 2;
+ Slot: 6;
TimeAfterTurn: 0;
minAngle: 0;
maxAngle: 0;
@@ -2204,11 +2203,11 @@
AmmoType: amIceGun;
AttackVoice: sndNone;
Bounciness: 1000);
- Slot: 9;
+ Slot: 2;
TimeAfterTurn: 0;
minAngle: 0;
maxAngle: 0;
- isDamaging: true;
+ isDamaging: false;
SkipTurns: 0;
PosCount: 1;
PosSprite: sprWater;
--- a/hedgewars/uVideoRec.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uVideoRec.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uVisualGears.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uVisualGears.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/hedgewars/uWorld.pas Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/uWorld.pas Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
(*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
@@ -1387,7 +1387,7 @@
// draw health bars right border
inc(r.x, cTeamHealthWidth + 2);
r.w:= 3;
- DrawTextureFromRect(TeamHealthBarWidth + 16, cScreenHeight + DrawHealthY + smallScreenOffset, @r, HealthTex);
+ DrawTextureFromRect(TeamHealthBarWidth + 15, cScreenHeight + DrawHealthY + smallScreenOffset, @r, HealthTex);
if (not highlight) and (not hasGone) then
for i:= 0 to cMaxHHIndex do
@@ -1424,8 +1424,8 @@
// draw health bar
r.w:= TeamHealthBarWidth + 1;
r.h:= HealthTex^.h - 4;
- DrawTextureFromRect(16, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, HealthTex);
- if (not hasGone) and (TeamHealth > 1) then
+ DrawTextureFromRect(15, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, HealthTex);
+ if not hasGone and (TeamHealth > 1) then
begin
Tint(Clan^.Color shl 8 or $FF);
for i:= 0 to cMaxHHIndex do
--- a/hedgewars/videorec/avwrapper.c Thu Apr 04 14:37:19 2013 +0200
+++ b/hedgewars/videorec/avwrapper.c Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
/*
* Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@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
--- a/misc/libphysfs/CMakeLists.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/misc/libphysfs/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -35,6 +35,15 @@
include(CheckCSourceCompiles)
+# 32bit platforms won't link unless this is set
+# although Windows doesn't like it
+if(NOT WINDOWS)
+ if(CMAKE_SIZEOF_VOID_P LESS 8)
+ add_definitions(-DPHYSFS_NO_64BIT_SUPPORT=1)
+ endif(CMAKE_SIZEOF_VOID_P LESS 8)
+endif(NOT WINDOWS)
+
+
if(MACOSX)
# Fallback to older OS X on PowerPC to support wider range of systems...
if(CMAKE_OSX_ARCHITECTURES MATCHES ppc)
--- a/misc/libphysfs/physfs_internal.h Thu Apr 04 14:37:19 2013 +0200
+++ b/misc/libphysfs/physfs_internal.h Tue Jun 04 22:28:12 2013 +0200
@@ -322,8 +322,13 @@
#define __PHYSFS_ARRAYLEN(x) ( (sizeof (x)) / (sizeof (x[0])) )
#ifdef PHYSFS_NO_64BIT_SUPPORT
-#define __PHYSFS_SI64(x) ((PHYSFS_sint64) (x))
-#define __PHYSFS_UI64(x) ((PHYSFS_uint64) (x))
+/* if a 32bit compiler sees something with this many bits: 0xFFFFFFFFFFFFFFFF
+ * it doesn't know if it really means 64bit or if it's supposed to squeeze
+ * it into 32 bit, so without the ULL it squeezes the number to 32 bit,
+ * with it it forces it to be 64bits
+ */
+#define __PHYSFS_SI64(x) ((PHYSFS_sint64) (x##LL))
+#define __PHYSFS_UI64(x) ((PHYSFS_uint64) (x##ULL))
#elif (defined __GNUC__)
#define __PHYSFS_SI64(x) x##LL
#define __PHYSFS_UI64(x) x##ULL
--- a/misc/libphysfs/platform_macosx.c Thu Apr 04 14:37:19 2013 +0200
+++ b/misc/libphysfs/platform_macosx.c Tue Jun 04 22:28:12 2013 +0200
@@ -29,6 +29,25 @@
#include "physfs_internal.h"
+#if defined(__APPLE__)
+#if defined(TARGET_OS_MAC) && MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4
+/* __eprintf shouldn't have been made visible from libstdc++, or anywhere, but
+ on Mac OS X 10.4 it was defined in libstdc++.6.0.3.dylib; so on that platform
+ we have to keep defining it to keep binary compatibility.
+ We can't just put the libgcc version in the export list, because that
+ doesn't work; once a symbol is marked as hidden, it stays that way. */
+
+void __eprintf (const char *string, const char *expression,
+ unsigned int line, const char *filename)
+{
+ fprintf(stderr, string, expression, line, filename);
+ fflush(stderr);
+ abort();
+}
+#endif
+#endif /* __APPLE__ */
+
+
/* Wrap PHYSFS_Allocator in a CFAllocator... */
static CFAllocatorRef cfallocator = NULL;
--- a/misc/libphyslayer/hwpacksmounter.c Thu Apr 04 14:37:19 2013 +0200
+++ b/misc/libphyslayer/hwpacksmounter.c Tue Jun 04 22:28:12 2013 +0200
@@ -33,3 +33,24 @@
PHYSFS_freeList(filesList);
}
+
+PHYSFS_DECL void hedgewarsMountPackage(char * fileName)
+{
+ int fileNameLength = strlen(fileName);
+ if (fileNameLength > 4)
+ if (strcmp(fileName + fileNameLength - 4, ".hwp") == 0)
+ {
+ const char * dir = PHYSFS_getRealDir(fileName);
+ if(dir)
+ {
+ char * fullPath = (char *)malloc(strlen(dir) + fileNameLength + 2);
+ strcpy(fullPath, dir);
+ strcat(fullPath, "/");
+ strcat(fullPath, fileName);
+
+ PHYSFS_mount(fullPath, NULL, 0);
+
+ free(fullPath);
+ }
+ }
+}
--- a/misc/libphyslayer/hwpacksmounter.h Thu Apr 04 14:37:19 2013 +0200
+++ b/misc/libphyslayer/hwpacksmounter.h Tue Jun 04 22:28:12 2013 +0200
@@ -8,7 +8,7 @@
#endif
PHYSFS_DECL void hedgewarsMountPackages();
-
+PHYSFS_DECL void hedgewarsMountPackage(char * fileName);
#ifdef __cplusplus
}
--- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/SDLActivity.java Thu Apr 04 14:37:19 2013 +0200
+++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/SDLActivity.java Tue Jun 04 22:28:12 2013 +0200
@@ -2,7 +2,7 @@
* Hedgewars for Android. An Android port of Hedgewars, a free turn based strategy game
* Copyright (c) 2011-2012 Richard Deurwaarder <xeli@xelification.com>
* Copyright (C) 2012 Simeon Maxein <smaxein@googlemail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@gmail.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
--- a/project_files/frontlib/net/netconn.c Thu Apr 04 14:37:19 2013 +0200
+++ b/project_files/frontlib/net/netconn.c Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,7 @@
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
- * Copyright (c) 2004-2012 Andrey Korotaev <unC0Rr@gmail.com>
+ * Copyright (c) 2004-2013 Andrey Korotaev <unC0Rr@gmail.com>
* Copyright (c) 2012 Simeon Maxein <smaxein@googlemail.com>
*
* This program is free software; you can redistribute it and/or modify
--- a/project_files/hedgewars.pro Thu Apr 04 14:37:19 2013 +0200
+++ b/project_files/hedgewars.pro Tue Jun 04 22:28:12 2013 +0200
@@ -250,7 +250,7 @@
RESOURCES += ../QTfrontend/hedgewars.qrc
-LIBS += -L../bin -lphysfs
+LIBS += -L../bin -lhw_physfs -lphyslayer
macx {
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6
Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png has changed
Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos_bw.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/Dan.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/Dauber.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/DayAndNight.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/Evil.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/Joker.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/Meteorhelmet.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/Moustache.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/Moustache_glasses.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/SunWukong.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/TeamWheatley.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/bubble.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/cap_thinking.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/car.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/flag_french.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/flag_germany.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/flag_italy.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/flag_usa.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/footballhelmet.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/lamp.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/mechanicaltoy.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/noface.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/war_UNPeacekeeper01.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/war_UNPeacekeeper02.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/war_airwarden02.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/war_airwarden03.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/war_americanww2helmet.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/war_trenchfrench01.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/war_trenchfrench02.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/zoo_chicken.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/zoo_elephant.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/zoo_fish.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/zoo_frog.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/zoo_snail.png has changed
Binary file share/hedgewars/Data/Graphics/Hats/zoo_turtle.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Nobody_Laugh.png has changed
Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Nobody_Laugh@2x.png has changed
--- a/share/hedgewars/Data/Graphics/hedgehog.svg Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Graphics/hedgehog.svg Tue Jun 04 22:28:12 2013 +0200
@@ -9,11 +9,11 @@
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="800"
+ width="1600"
height="800"
id="svg2902"
version="1.1"
- inkscape:version="0.47 r22583"
+ inkscape:version="0.48.3.1 r9886"
sodipodi:docname="hedgehog.svg">
<title
id="title3631">Hedgehog</title>
@@ -76,17 +76,17 @@
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
- inkscape:zoom="0.49497475"
- inkscape:cx="523.00419"
- inkscape:cy="282.86638"
+ inkscape:zoom="0.45185547"
+ inkscape:cx="842.9141"
+ inkscape:cy="306.27016"
inkscape:document-units="px"
- inkscape:current-layer="g3598"
+ inkscape:current-layer="layer3"
showgrid="false"
- inkscape:window-width="1280"
- inkscape:window-height="946"
- inkscape:window-x="-4"
- inkscape:window-y="-3"
- inkscape:window-maximized="1" />
+ inkscape:window-width="1250"
+ inkscape:window-height="852"
+ inkscape:window-x="170"
+ inkscape:window-y="184"
+ inkscape:window-maximized="0" />
<metadata
id="metadata2907">
<rdf:RDF>
@@ -112,17 +112,20 @@
style="color:#000000;fill:#2c78d2;fill-opacity:1;stroke:none;stroke-width:22;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 539.75014,184.97991 289.94272,20.934533 c -10.12171,-6.646795 -18.53237,-1.405552 -18.77514,8.934515 l -6.50762,277.176512"
id="path3847"
- sodipodi:nodetypes="cccc" />
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:#54a2fa;fill-opacity:1;stroke:none;stroke-width:22;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 480.10727,181.8052 317.21732,74.837421 c -12.48356,-8.197799 -12.24256,-8.157389 -12.24256,5.825858 l -4.24337,180.736311"
id="path3821"
- sodipodi:nodetypes="cccc" />
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccc"
id="path3790"
d="M 539.75014,184.97991 289.94272,20.934533 c -10.12171,-6.646795 -18.53237,-1.405552 -18.77514,8.934515 l -6.50762,277.176512"
- style="color:#000000;fill:none;stroke:#9f086e;stroke-width:22;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ style="color:#000000;fill:none;stroke:#9f086e;stroke-width:22;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
</g>
<g
id="g3839"
@@ -131,16 +134,19 @@
sodipodi:nodetypes="cccc"
id="path3823"
d="M 394.49409,176.74515 96.356601,156.04088 C 84.276653,155.202 79.509956,163.89039 84.36166,173.02478 l 130.05508,244.85679"
- style="color:#000000;fill:#54a2fa;fill-opacity:1;stroke:none;stroke-width:22;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ style="color:#000000;fill:#54a2fa;fill-opacity:1;stroke:none;stroke-width:22;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:#2c78d2;fill-opacity:1;stroke:none;stroke-width:22;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 94.1875,156 c -10.459488,0.29677 -14.360973,8.46776 -9.8125,17.03125 L 102.0625,206.3125 359.09375,224.15625 394.5,176.75 96.34375,156.03125 c -0.754997,-0.0524 -1.458951,-0.051 -2.15625,-0.0313 z"
- id="path3849" />
+ id="path3849"
+ inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:none;stroke:#9f086e;stroke-width:22;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 394.49409,176.74515 96.356601,156.04088 C 84.276653,155.202 79.509956,163.89039 84.36166,173.02478 l 130.05508,244.85679"
id="path3813"
- sodipodi:nodetypes="cccc" />
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
</g>
<g
id="g3835">
@@ -148,16 +154,19 @@
style="color:#000000;fill:#54a2fa;fill-opacity:1;stroke:none;stroke-width:22;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 305.99695,247.38296 28.159159,357.4774 c -11.257429,4.46082 -11.804016,14.3558 -3.482965,20.49879 L 247.73076,542.64501"
id="path3827"
- sodipodi:nodetypes="cccc" />
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:#2c78d2;fill-opacity:1;stroke:none;stroke-width:22;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 306,247.375 28.15625,357.46875 c -11.257429,4.46082 -11.789801,14.35701 -3.46875,20.5 l 37.5,27.6875 230.625,-91.375 L 306,247.375 z"
- id="path3854" />
+ id="path3854"
+ inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccc"
id="path3815"
d="M 305.99695,247.38296 28.159159,357.4774 c -11.257429,4.46082 -11.804016,14.3558 -3.482965,20.49879 L 247.73076,542.64501"
- style="color:#000000;fill:none;stroke:#9f086e;stroke-width:22;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ style="color:#000000;fill:none;stroke:#9f086e;stroke-width:22;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
</g>
<g
id="g3831">
@@ -165,16 +174,19 @@
sodipodi:nodetypes="cccc"
id="path3829"
d="M 228.84636,338.65556 53.568239,580.71384 c -7.101908,9.80772 -2.250103,18.44887 8.068116,19.16343 l 276.590465,19.15401"
- style="color:#000000;fill:#54a2fa;fill-opacity:1;stroke:none;stroke-width:22;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ style="color:#000000;fill:#54a2fa;fill-opacity:1;stroke:none;stroke-width:22;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:#2c78d2;fill-opacity:1;stroke:none;stroke-width:22;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 228.84375,338.65625 53.5625,580.71875 c -7.101908,9.80772 -2.255719,18.44169 8.0625,19.15625 l 41.84375,2.90625 148.4375,-205 -23.0625,-59.125 z"
- id="path3859" />
+ id="path3859"
+ inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:none;stroke:#9f086e;stroke-width:22;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 228.84636,338.65556 53.568239,580.71384 c -7.101908,9.80772 -2.250103,18.44887 8.068116,19.16343 l 276.590465,19.15401"
id="path3817"
- sodipodi:nodetypes="cccc" />
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0" />
</g>
<g
id="g3775"
@@ -182,7 +194,7 @@
style="display:inline">
<path
transform="matrix(1.1172821,0,0,1.1172821,-112.39265,21.533965)"
- d="m 738.42152,441.39584 c 0,131.10459 -106.28126,237.38585 -237.38584,237.38585 -131.10459,0 -237.38585,-106.28126 -237.38585,-237.38585 0,-131.10458 106.28126,-237.38585 237.38585,-237.38585 131.10458,0 237.38584,106.28127 237.38584,237.38585 z"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
sodipodi:ry="237.38585"
sodipodi:rx="237.38585"
sodipodi:cy="441.39584"
@@ -194,7 +206,8 @@
style="color:#000000;fill:#d66bcc;fill-opacity:1;stroke:none;stroke-width:19.6906414;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 508.09375,637.78125 c -23.96329,13.08576 -40.0625,37.31152 -40.0625,65.0625 0,41.63359 36.22695,75.40625 80.90625,75.40625 42.42516,0 77.22179,-30.44094 80.625,-69.15625 -12.12099,21.1102 -36.01048,35.46875 -63.5,35.46875 -39.74819,0 -71.96875,-30.02388 -71.96875,-67.0625 0,-14.86821 5.21282,-28.59929 14,-39.71875 z"
transform="matrix(3.2784936,0,0,3.518332,-1352.2438,-1958.1729)"
- id="path3783" />
+ id="path3783"
+ inkscape:connector-curvature="0" />
<path
sodipodi:type="arc"
style="color:#000000;fill:none;stroke:#9f086e;stroke-width:66.8752594;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
@@ -203,7 +216,7 @@
sodipodi:cy="441.39584"
sodipodi:rx="237.38585"
sodipodi:ry="237.38585"
- d="m 738.42152,441.39584 c 0,131.10459 -106.28126,237.38585 -237.38584,237.38585 -131.10459,0 -237.38585,-106.28126 -237.38585,-237.38585 0,-131.10458 106.28126,-237.38585 237.38585,-237.38585 131.10458,0 237.38584,106.28127 237.38584,237.38585 z"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
transform="matrix(1.1172821,0,0,1.1172821,-112.39265,21.533965)" />
</g>
<g
@@ -218,16 +231,17 @@
sodipodi:cy="441.39584"
sodipodi:rx="237.38585"
sodipodi:ry="237.38585"
- d="m 738.42152,441.39584 c 0,131.10459 -106.28126,237.38585 -237.38584,237.38585 -131.10459,0 -237.38585,-106.28126 -237.38585,-237.38585 0,-131.10458 106.28126,-237.38585 237.38585,-237.38585 131.10458,0 237.38584,106.28127 237.38584,237.38585 z"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
transform="matrix(1.1172821,0,0,1.1172821,-112.39265,21.533965)" />
<path
style="color:#000000;fill:#d66bcc;fill-opacity:1;stroke:none;stroke-width:19.6906414;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 370.4375,624.5 c -25.06339,13.93043 -42.0625,40.92272 -42.0625,71.9375 0,45.28185 36.22695,81.96875 80.90625,81.96875 39.38878,0 72.18745,-28.53029 79.40625,-66.3125 -13.43862,16.95561 -34.05861,27.84375 -57.1875,27.84375 -40.49511,0 -73.3125,-33.27127 -73.3125,-74.3125 0,-15.20419 4.51856,-29.35023 12.25,-41.125 z"
transform="matrix(3.2784936,0,0,3.234868,-894.42536,-1738.1438)"
- id="path3762" />
+ id="path3762"
+ inkscape:connector-curvature="0" />
<path
transform="matrix(1.1172821,0,0,1.1172821,-112.39265,21.533965)"
- d="m 738.42152,441.39584 c 0,131.10459 -106.28126,237.38585 -237.38584,237.38585 -131.10459,0 -237.38585,-106.28126 -237.38585,-237.38585 0,-131.10458 106.28126,-237.38585 237.38585,-237.38585 131.10458,0 237.38584,106.28127 237.38584,237.38585 z"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
sodipodi:ry="237.38585"
sodipodi:rx="237.38585"
sodipodi:cy="441.39584"
@@ -247,16 +261,17 @@
sodipodi:cy="441.39584"
sodipodi:rx="237.38585"
sodipodi:ry="237.38585"
- d="m 738.42152,441.39584 c 0,131.10459 -106.28126,237.38585 -237.38584,237.38585 -131.10459,0 -237.38585,-106.28126 -237.38585,-237.38585 0,-131.10458 106.28126,-237.38585 237.38585,-237.38585 131.10458,0 237.38584,106.28127 237.38584,237.38585 z"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
transform="matrix(1.1172821,0,0,1.1172821,-112.39265,21.533965)" />
<path
style="color:#000000;fill:#d66bcc;fill-opacity:1;stroke:none;stroke-width:19.6906414;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 625.15625,428.34375 c -18.64041,15.11242 -30.4375,37.36149 -30.4375,62.21875 0,45.5224 39.51787,82.4375 88.28125,82.4375 43.93405,0 80.36954,-29.96153 87.15625,-69.1875 C 754.65821,516.38108 734.45365,524 712.3125,524 663.54912,524 624,487.0849 624,441.5625 c 0,-4.5054 0.4112,-8.90962 1.15625,-13.21875 z"
transform="matrix(3.0039103,0,0,3.2177742,-1604.2803,-1063.8187)"
- id="path3749" />
+ id="path3749"
+ inkscape:connector-curvature="0" />
<path
transform="matrix(1.1172821,0,0,1.1172821,-112.39265,21.533965)"
- d="m 738.42152,441.39584 c 0,131.10459 -106.28126,237.38585 -237.38584,237.38585 -131.10459,0 -237.38585,-106.28126 -237.38585,-237.38585 0,-131.10458 106.28126,-237.38585 237.38585,-237.38585 131.10458,0 237.38584,106.28127 237.38584,237.38585 z"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
sodipodi:ry="237.38585"
sodipodi:rx="237.38585"
sodipodi:cy="441.39584"
@@ -276,16 +291,17 @@
sodipodi:cy="441.39584"
sodipodi:rx="237.38585"
sodipodi:ry="237.38585"
- d="m 738.42152,441.39584 c 0,131.10459 -106.28126,237.38585 -237.38584,237.38585 -131.10459,0 -237.38585,-106.28126 -237.38585,-237.38585 0,-131.10458 106.28126,-237.38585 237.38585,-237.38585 131.10458,0 237.38584,106.28127 237.38584,237.38585 z"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
transform="matrix(1.1172821,0,0,1.1172821,-112.39265,21.533965)" />
<path
style="color:#000000;fill:#d66bcc;fill-opacity:1;stroke:none;stroke-width:19.6906414;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 300.8125,211.5625 c -68.32219,47.97926 -113,127.39175 -113,217.21875 0,146.48081 118.76919,265.21875 265.25,265.21875 109.76155,0 203.92541,-66.69307 244.25,-161.75 -46.77743,53.90709 -115.77378,88 -192.75,88 -140.90189,0 -255.125,-114.22311 -255.125,-255.125 0,-57.6502 19.12817,-110.84078 51.375,-153.5625 z"
id="path3688"
- transform="translate(-5.6478893,85.928699)" />
+ transform="translate(-5.6478893,85.928699)"
+ inkscape:connector-curvature="0" />
<path
transform="matrix(1.1172821,0,0,1.1172821,-112.39265,21.533965)"
- d="m 738.42152,441.39584 c 0,131.10459 -106.28126,237.38585 -237.38584,237.38585 -131.10459,0 -237.38585,-106.28126 -237.38585,-237.38585 0,-131.10458 106.28126,-237.38585 237.38585,-237.38585 131.10458,0 237.38584,106.28127 237.38584,237.38585 z"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
sodipodi:ry="237.38585"
sodipodi:rx="237.38585"
sodipodi:cy="441.39584"
@@ -301,11 +317,11 @@
sodipodi:cy="356.07144"
sodipodi:rx="63.676994"
sodipodi:ry="82.367821"
- d="m 597.60558,356.07144 c 0,45.49049 -28.50916,82.36782 -63.67699,82.36782 -35.16783,0 -63.677,-36.87733 -63.677,-82.36782 0,-45.49049 28.50917,-82.36782 63.677,-82.36782 35.16783,0 63.67699,36.87733 63.67699,82.36782 z"
+ d="m 597.60558,356.07144 a 63.676994,82.367821 0 1 1 -127.35399,0 63.676994,82.367821 0 1 1 127.35399,0 z"
transform="matrix(1.2137522,-0.32948394,0.32948394,1.2137522,-228.90683,201.80994)" />
<path
transform="matrix(1.0305506,-0.24075443,0.24075443,1.0305506,-13.067694,205.73896)"
- d="m 589.43368,356.07144 c 0,45.49049 -24.85047,82.36782 -55.50509,82.36782 -30.65462,0 -55.50509,-36.87733 -55.50509,-82.36782 0,-45.49049 24.85047,-82.36782 55.50509,-82.36782 30.65462,0 55.50509,36.87733 55.50509,82.36782 z"
+ d="m 589.43368,356.07144 a 55.505093,82.367821 0 1 1 -111.01018,0 55.505093,82.367821 0 1 1 111.01018,0 z"
sodipodi:ry="82.367821"
sodipodi:rx="55.505093"
sodipodi:cy="356.07144"
@@ -315,7 +331,7 @@
sodipodi:type="arc" />
<path
transform="matrix(0.46703901,-0.01512391,0.01512391,0.46703901,296.71933,307.7045)"
- d="m 597.60558,356.07144 c 0,45.49049 -28.50916,82.36782 -63.67699,82.36782 -35.16783,0 -63.677,-36.87733 -63.677,-82.36782 0,-45.49049 28.50917,-82.36782 63.677,-82.36782 35.16783,0 63.67699,36.87733 63.67699,82.36782 z"
+ d="m 597.60558,356.07144 a 63.676994,82.367821 0 1 1 -127.35399,0 63.676994,82.367821 0 1 1 127.35399,0 z"
sodipodi:ry="82.367821"
sodipodi:rx="63.676994"
sodipodi:cy="356.07144"
@@ -331,7 +347,7 @@
sodipodi:cy="356.07144"
sodipodi:rx="63.676994"
sodipodi:ry="82.367821"
- d="m 597.60558,356.07144 c 0,45.49049 -28.50916,82.36782 -63.67699,82.36782 -35.16783,0 -63.677,-36.87733 -63.677,-82.36782 0,-45.49049 28.50917,-82.36782 63.677,-82.36782 35.16783,0 63.67699,36.87733 63.67699,82.36782 z"
+ d="m 597.60558,356.07144 a 63.676994,82.367821 0 1 1 -127.35399,0 63.676994,82.367821 0 1 1 127.35399,0 z"
transform="matrix(0.43341707,-0.01403515,0.01403515,0.43341707,401.4873,306.23785)" />
</g>
<g
@@ -339,7 +355,7 @@
transform="matrix(0.33724075,0,0,0.29575944,129.84878,456.31455)">
<path
transform="matrix(1.1172821,0,0,1.1172821,-112.39265,21.533965)"
- d="m 738.42152,441.39584 c 0,131.10459 -106.28126,237.38585 -237.38584,237.38585 -131.10459,0 -237.38585,-106.28126 -237.38585,-237.38585 0,-131.10458 106.28126,-237.38585 237.38585,-237.38585 131.10458,0 237.38584,106.28127 237.38584,237.38585 z"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
sodipodi:ry="237.38585"
sodipodi:rx="237.38585"
sodipodi:cy="441.39584"
@@ -351,7 +367,8 @@
style="color:#000000;fill:#d66bcc;fill-opacity:1;stroke:none;stroke-width:19.6906414;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 234.03125,541.65625 c -25.63909,13.79302 -42.75,38.56291 -42.75,66.875 0,43.32308 40.0382,78.46875 89.4375,78.46875 45.82189,0 83.61297,-30.23476 88.84375,-69.1875 -13.96723,21.00047 -39.90418,35.125 -69.625,35.125 -44.50072,0 -80.59375,-31.62921 -80.59375,-70.65625 0,-15.13034 5.45433,-29.1289 14.6875,-40.625 z"
transform="matrix(2.9652407,0,0,3.3811262,-385.03289,-1542.8571)"
- id="path3736" />
+ id="path3736"
+ inkscape:connector-curvature="0" />
<path
sodipodi:type="arc"
style="color:#000000;fill:none;stroke:#9f086e;stroke-width:62.34770966;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
@@ -360,13 +377,354 @@
sodipodi:cy="441.39584"
sodipodi:rx="237.38585"
sodipodi:ry="237.38585"
- d="m 738.42152,441.39584 c 0,131.10459 -106.28126,237.38585 -237.38584,237.38585 -131.10459,0 -237.38585,-106.28126 -237.38585,-237.38585 0,-131.10458 106.28126,-237.38585 237.38585,-237.38585 131.10458,0 237.38584,106.28127 237.38584,237.38585 z"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
transform="matrix(1.1172821,0,0,1.1172821,-112.39265,21.533965)" />
</g>
<path
style="fill:#9f086e;fill-opacity:1;stroke:none;display:inline"
d="m 561.23109,498.93811 c -8.0798,4.38775 -2.8235,17.08495 9.0914,18.56155 31.062,3.84947 81.3892,-18.32936 94.3319,-49.03093 3.2596,-7.73202 -2.8605,-10.93033 -5.4385,-7.79015 -5.4066,6.58563 -15.6937,16.18387 -30.9805,25.24132 -24.5934,14.57155 -58.397,8.344 -67.0043,13.01821 z"
id="path3864"
- sodipodi:nodetypes="csssss" />
+ sodipodi:nodetypes="csssss"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;fill:#5297ec;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1297.4937,158.66282 -238.971,-141.536508 -21.5382,12.30752 4.1025,145.639008 -178.45904,2.05126 -6.15376,21.53816 83.07579,128.20334 -130.25464,63.58886 0,14.35878 127.17776,83.07576 -79.99891,131.28025 6.15376,16.41002 214.35604,-5.12814 z"
+ id="path3828"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ style="color:#000000;fill:#4586d7;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 996.0713,579.34584 c 88.6762,-140.43932 171.6697,-293.0426 260.3459,-433.48193 -48.9448,-13.62653 -96.3579,-8.12687 -123.6124,20.4849 -39.7553,15.44224 -86.2567,43.76314 -109.4128,70.97281 -8.7505,10.67062 -9.8093,35.12327 -41.01216,70.63462 -7.24253,14.08935 -18.95382,78.81319 -18.03713,115.99556 0.77233,31.32786 3.1183,60.37332 9.75985,84.02789 7.15158,25.4711 16.67826,52.05789 21.96874,71.36615 z"
+ id="path3968"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccssc" />
+ <path
+ style="color:#000000;fill:#63a0e7;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1053.4726,169.57961 -13.9695,-149.111506 17.1836,-5.091476 209.6592,134.737182 C 1108.4783,109.28175 1069.954,-0.417003 1053.4726,169.57961 z"
+ id="path3936"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3938"
+ d="m 1049.9214,88.575018 -6.3681,-72.094187 7.9698,-2.454287 99.3272,64.731386 c -71.9635,-22.811108 -95.9442,-66.873331 -100.9289,9.817088 z"
+ style="color:#000000;fill:#85b0e5;fill-opacity:1;stroke:none;stroke-width:0.99999994px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="opacity:0.31512607;color:#000000;fill:#ffffff;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1075.694,36.381658 c 59.6468,39.147935 114.2708,70.794462 170.5596,104.405892 -16.3851,9.62444 -100.1489,-45.926375 -166.0593,-89.150263 -4.2868,-5.995922 -4.3503,-11.80543 -4.5003,-15.255629 z"
+ id="path3945"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3948"
+ d="m 944.79988,307.20064 -88.74005,-120.64243 12.11049,-13.21124 249.10568,7.57657 C 960.9147,227.18955 871.41374,152.97689 944.79988,307.20064 z"
+ style="color:#000000;fill:#63a0e7;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#85b0e5;fill-opacity:1;stroke:none;stroke-width:0.99999994px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 900.05353,239.58317 -42.57405,-58.52837 5.56899,-6.20699 118.47801,4.36082 C 908.08845,196.7 864.84596,171.27073 900.05351,239.58395 z"
+ id="path3950"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path3952"
+ d="m 895.27893,181.5696 c 71.28915,2.85496 134.41057,1.86473 199.97067,1.70214 -9.0923,16.68627 -109.50142,12.18461 -188.25886,9.05983 -6.76185,-2.93349 -9.80702,-7.88134 -11.71181,-10.76197 z"
+ style="opacity:0.31512607;color:#000000;fill:#ffffff;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#63a0e7;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 940.67934,476.3477 807.0374,408.75169 811.88047,391.49638 1037.5841,285.81319 C 918.94276,397.67761 805.57981,371.85556 940.67934,476.3477 z"
+ id="path3954"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3956"
+ d="M 870.22916,436.20893 805.82,403.20005 l 2.16759,-8.05247 107.6895,-49.58857 c -57.63527,48.75723 -107.7002,45.58532 -45.44764,90.65062 z"
+ style="color:#000000;fill:#85b0e5;fill-opacity:1;stroke:none;stroke-width:0.99999994px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="opacity:0.31512607;color:#000000;fill:#ffffff;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 819.86604,395.50715 c 64.45185,-32.78186 115.82948,-56.30755 179.20746,-88.74602 -0.5805,18.9938 -90.41093,67.05092 -163.89883,93.0626 -7.35793,0.43447 -12.30865,-2.60591 -15.30863,-4.31658 z"
+ id="path3958"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3960"
+ d="m 1012.1539,619.00845 -149.53856,8.22179 -4.42659,-17.36685 75.84074,-91.26068 c 11.77007,-12.26421 18.232,-3.18375 8.73964,11.00107 -32.19367,54.76267 -40.53362,74.45962 69.38477,89.40467 z"
+ style="color:#000000;fill:#63a0e7;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#85b0e5;fill-opacity:1;stroke:none;stroke-width:0.99999994px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 931.07268,619.44017 -72.28579,3.58935 -2.14586,-8.05826 68.50599,-96.76255 c -25.56323,71.03251 -70.51551,93.30016 5.92627,101.23192 z"
+ id="path3962"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="color:#000000;fill:none;stroke:#920a6b;stroke-width:19.72619247;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1044.924,174.04722 -7.1794,-147.177445 c -0.4653,-9.538716 14.473,-12.270939 21.5381,-8.205023 l 234.3558,134.869928 -44.102,21.53816 -372.30252,-3.07686 c -25.29878,0.51283 -22.39285,14.35876 -17.43566,22.56378 l 80.5117,127.17772"
+ id="path3834"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssccccc" />
+ <path
+ style="color:#000000;fill:none;stroke:#920a6b;stroke-width:19.72619247;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 934.66909,482.76089 820.31168,409.94142 c -19.49946,-11.24579 -9.07588,-24.45921 9.74346,-32.8201 L 1025.437,282.76366 987.48887,404.30045 859.2855,606.86173 c -4.21618,6.73156 -3.18413,21.66812 7.29892,21.73313 l 231.67218,-0.19494"
+ id="path3836"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ transform="matrix(1.0031723,0,0,0.89280342,1164.6215,42.540495)"
+ d="m 427.53431,473.53146 a 98.586678,98.586678 0 1 1 -197.17336,0 98.586678,98.586678 0 1 1 197.17336,0 z"
+ sodipodi:ry="98.586678"
+ sodipodi:rx="98.586678"
+ sodipodi:cy="473.53146"
+ sodipodi:cx="328.94763"
+ id="path3872"
+ style="color:#000000;fill:#dd8fd8;fill-opacity:1;stroke:none;stroke-width:0.52631909;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ style="color:#000000;fill:#dda4db;fill-opacity:0.98431582;stroke:none;stroke-width:0.10557491;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1480.2231,380.35651 -51.0504,23.41165 c -50.2007,85.10898 -6.3297,46.41727 30.579,25.3517 17.0773,-9.74689 36.2525,-8.81552 70.2334,8.4997 17.2558,-1.2852 6.4051,-28.22108 -7.0597,-38.64965 z"
+ id="path3874"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3876"
+ d="m 1491.0248,557.20287 c -83.498,8.84305 -97.248,-67.54086 -87.8199,-72.25438 6.4431,-6.9755 38.8646,-40.54988 80.4085,-17.71203 24.3903,14.96397 41.1247,50.99615 88.6614,14.23773 13.1708,28.37108 -46.6663,74.93238 -81.25,75.72868 z"
+ style="color:#000000;fill:#cb65c3;fill-opacity:0.98431444;stroke:none;stroke-width:0.10557491;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="ccsccc"
+ inkscape:connector-curvature="0"
+ id="path3878"
+ d="m 1471.1409,382.81375 -41.6831,16.29741 c -37.165,54.32695 -2.488,28.86438 27.3933,14.52808 13.8258,-6.63329 30.0815,-6.75547 59.8535,2.69134 14.4978,-1.41985 3.6726,-17.64203 -8.3443,-23.58605 z"
+ style="color:#000000;fill:#e0b0e0;fill-opacity:1;stroke:none;stroke-width:0.10557491;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#c251b8;fill-opacity:1;stroke:none;stroke-width:0.10557491;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1486.6388,557.20287 c -64.6242,5.47558 -73.7439,-33.87811 -66.9543,-42.00055 1.4755,-8.10961 26.9162,-29.61879 59.1885,-15.34935 26.331,3.94312 63.4983,15.97221 87.2465,-5.80162 10.1937,17.56719 -52.7143,62.65842 -79.4807,63.15152 z"
+ id="path3880"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="sssss"
+ inkscape:connector-curvature="0"
+ id="path3882"
+ d="m 1585.0046,469.44365 c 0,47.18453 -49.5837,95.26254 -104.5013,88.7218 -52.2238,-6.21996 -85.2198,-38.52447 -88.0105,-85.70903 -2.7851,-47.08863 43.2921,-88.44787 96.3827,-88.44787 53.0906,0 96.1291,38.25057 96.1291,85.4351 z"
+ style="color:#000000;fill:none;stroke:#920a6b;stroke-width:20.88655663;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#dd8fd8;fill-opacity:1;stroke:none;stroke-width:58.48065567;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3777-1"
+ sodipodi:cx="501.03568"
+ sodipodi:cy="441.39584"
+ sodipodi:rx="237.38585"
+ sodipodi:ry="237.38585"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
+ transform="matrix(0.3703166,0,0,0.33518837,1197.9319,545.75332)" />
+ <path
+ id="path3783-2"
+ d="m 1339.1042,619.21816 c -26.0394,13.81216 -43.5334,39.38274 -43.5334,68.67422 0,43.9447 39.3656,79.59214 87.9158,79.59214 46.1007,0 83.9121,-32.13075 87.6101,-72.99521 -13.1711,22.28207 -39.1303,37.43767 -69.0015,37.43767 -43.1919,0 -78.2039,-31.69056 -78.2039,-70.78523 0,-15.69355 5.6644,-30.18688 15.2129,-41.92359 z"
+ style="color:#000000;fill:#dc7ad5;fill-opacity:1;stroke:none;stroke-width:19.2384243;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#d368cb;fill-opacity:1;stroke:none;stroke-width:19.2384243;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1339.1042,630.8218 c -26.0394,13.81217 -43.5334,39.38274 -43.5334,68.67422 0,43.94471 39.3656,79.59214 87.9158,79.59214 46.1007,0 83.9121,-32.13075 87.6101,-72.99521 -13.1711,22.28207 -39.1303,37.43768 -69.0015,37.43768 -43.1919,0 -78.2039,-31.69057 -78.2039,-70.78524 0,-15.69355 5.6644,-30.18688 15.2129,-41.92359 z"
+ id="path3934" />
+ <path
+ transform="matrix(0.3703166,0,0,0.33518837,1197.9319,545.75332)"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
+ sodipodi:ry="237.38585"
+ sodipodi:rx="237.38585"
+ sodipodi:cy="441.39584"
+ sodipodi:cx="501.03568"
+ id="path3781-1"
+ style="color:#000000;fill:none;stroke:#9f086e;stroke-width:57.63699341;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.3703166,0,0,0.36456015,1046.1907,531.80511)"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
+ sodipodi:ry="237.38585"
+ sodipodi:rx="237.38585"
+ sodipodi:cy="441.39584"
+ sodipodi:cx="501.03568"
+ id="path3756-3"
+ style="color:#000000;fill:#dd8fd8;fill-opacity:1;stroke:none;stroke-width:56.07536697;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ id="path3762-8"
+ d="m 1189.5218,611.00145 c -27.2348,14.70373 -45.7067,43.19441 -45.7067,75.93084 0,47.79552 39.3656,86.51897 87.9158,86.51897 42.8013,0 78.4416,-30.11407 86.2858,-69.99361 -14.6029,17.89685 -37.0094,29.38939 -62.1421,29.38939 -44.0035,0 -79.6641,-35.1182 -79.6641,-78.43767 0,-16.04822 4.91,-30.97952 13.3113,-43.40792 z"
+ style="color:#000000;fill:#dc7ad5;fill-opacity:1;stroke:none;stroke-width:19.2384243;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;fill:#d368cb;fill-opacity:1;stroke:none;stroke-width:19.2384243;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1189.5218,622.60509 c -27.2348,14.70373 -45.7067,43.19442 -45.7067,75.93084 0,47.79553 39.3656,86.51897 87.9158,86.51897 42.8013,0 78.4416,-30.11406 86.2858,-69.99361 -14.6029,17.89685 -37.0094,29.38939 -62.1421,29.38939 -44.0035,0 -79.6641,-35.11819 -79.6641,-78.43767 0,-16.04821 4.91,-30.97952 13.3113,-43.40792 z"
+ id="path3921" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:none;stroke:#9f086e;stroke-width:55.26640701;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3760-6"
+ sodipodi:cx="501.03568"
+ sodipodi:cy="441.39584"
+ sodipodi:rx="237.38585"
+ sodipodi:ry="237.38585"
+ d="m 738.42152,441.39584 a 237.38585,237.38585 0 1 1 -474.77169,0 237.38585,237.38585 0 1 1 474.77169,0 z"
+ transform="matrix(0.3703166,0,0,0.36456015,1046.1907,531.80511)" />
+ <path
+ transform="matrix(2.7477273,0,0,2.7477273,350.43501,-875.30896)"
+ d="m 427.53431,473.53146 a 98.586678,98.586678 0 1 1 -197.17336,0 98.586678,98.586678 0 1 1 197.17336,0 z"
+ sodipodi:ry="98.586678"
+ sodipodi:rx="98.586678"
+ sodipodi:cy="473.53146"
+ sodipodi:cx="328.94763"
+ id="path3794"
+ style="color:#000000;fill:#dd8fd8;fill-opacity:1;stroke:none;stroke-width:7.81254339;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ style="color:#000000;fill:#dc7ad5;fill-opacity:1;stroke:none;stroke-width:0.10557491;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1510.5011,514.02272 c -36.5879,106.30828 -137.4775,182.69295 -256.2077,182.69295 -149.608,0 -270.88932,-121.28127 -270.88932,-270.88931 0,-108.69657 64.02002,-202.44048 156.41052,-245.58222 44.2231,-4.40546 22.6855,17.99764 15.6524,25.95085 -127.8469,120.0212 -75.0469,288.89817 -12.5129,340.35434 30.5359,25.14299 68.5478,62.04178 131.7468,68.69988 75.8575,7.99171 159.3497,-14.0133 228.6513,-102.2016 2.383,0.32505 4.7659,0.65008 7.1489,0.97511 z"
+ id="path3815-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscccscc" />
+ <path
+ sodipodi:nodetypes="csscccscc"
+ inkscape:connector-curvature="0"
+ id="path3818"
+ d="m 1409.6994,647.73287 c -43.993,30.86638 -97.5839,48.9828 -155.406,48.9828 -149.608,0 -270.88932,-121.28127 -270.88932,-270.88931 0,-101.74562 56.09382,-190.3898 139.04322,-236.69423 l 0.9853,9.81057 c -132.97508,126.68776 -74.8709,332.92464 -8.7624,383.868 30.5359,25.14299 115.396,85.9233 178.8866,83.20445 50.4746,-2.16147 57.0926,-4.22273 119.8672,-23.1518 z"
+ style="color:#000000;fill:#d368cb;fill-opacity:1;stroke:none;stroke-width:0.10557491;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:none;stroke:#920a6b;stroke-width:7.58704424;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3022"
+ sodipodi:cx="328.94763"
+ sodipodi:cy="473.53146"
+ sodipodi:rx="98.586678"
+ sodipodi:ry="98.586678"
+ d="m 427.53431,473.53146 a 98.586678,98.586678 0 1 1 -197.17336,0 98.586678,98.586678 0 1 1 197.17336,0 z"
+ transform="matrix(2.7581306,0,0,2.7477273,345.98722,-875.30896)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#dd8fd8;fill-opacity:1;stroke:none;stroke-width:0.52631909;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3842"
+ sodipodi:cx="328.94763"
+ sodipodi:cy="473.53146"
+ sodipodi:rx="98.586678"
+ sodipodi:ry="98.586678"
+ d="m 427.53431,473.53146 a 98.586678,98.586678 0 1 1 -197.17336,0 98.586678,98.586678 0 1 1 197.17336,0 z"
+ transform="matrix(1.0138611,0,0,0.83582014,766.30162,216.32669)" />
+ <path
+ sodipodi:nodetypes="ccsccc"
+ inkscape:connector-curvature="0"
+ id="path3844"
+ d="m 1094.4298,532.58156 -60.7583,21.91743 c -59.74685,79.67685 -7.5333,43.45468 36.3941,23.7336 20.3247,-9.12476 43.1463,-8.25286 83.5891,7.95719 20.5372,-1.20315 7.6231,-26.41984 -8.4022,-36.18282 z"
+ style="color:#000000;fill:#dda4db;fill-opacity:0.98431582;stroke:none;stroke-width:0.10557491;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:#cb65c3;fill-opacity:0.98431444;stroke:none;stroke-width:0.10557491;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1096.1827,698.14069 c -84.3876,8.27864 -98.2841,-63.23005 -88.7556,-67.64272 6.5118,-6.53029 39.2787,-37.96181 81.2653,-16.58157 24.4482,13.88094 38.7971,56.31808 79.9763,29.33914 -2.5997,29.10597 -37.5338,54.13967 -72.486,54.88515 z"
+ id="path3846"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="color:#000000;fill:#e0b0e0;fill-opacity:1;stroke:none;stroke-width:0.10557491;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1083.6206,534.88199 -49.6097,15.25722 c -44.2324,50.85952 -2.9611,27.0221 32.6025,13.6008 16.4549,-6.20989 35.8018,-6.32427 71.2354,2.51959 17.2547,-1.32926 4.3709,-16.51605 -9.9311,-22.08069 z"
+ id="path3864-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3866"
+ d="m 1091.7499,698.14069 c -65.3127,5.12608 -74.5295,-31.71584 -67.6676,-39.31985 1.4912,-7.59203 27.203,-27.72838 59.8191,-14.36969 15.3572,8.86922 9.9214,30.28122 60.3798,22.40246 10.3023,16.44593 -25.4796,30.82548 -52.5313,31.28708 z"
+ style="color:#000000;fill:#ca5dc1;fill-opacity:1;stroke:none;stroke-width:0.10557491;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ style="color:#000000;fill:none;stroke:#920a6b;stroke-width:20.88655663;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1191.1638,615.98274 c 0,44.17297 -50.1119,89.1824 -105.6147,83.05911 -52.7803,-5.82293 -86.1278,-36.06567 -88.9483,-80.23864 -2.8147,-44.08319 43.7534,-82.8027 97.4097,-82.8027 53.6563,0 97.1533,35.80927 97.1533,79.98223 z"
+ id="path3848"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssss" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e7e6ec;fill-opacity:1;stroke:none;stroke-width:0.21143535;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3797"
+ sodipodi:cx="400.45596"
+ sodipodi:cy="543.44366"
+ sodipodi:rx="28.702562"
+ sodipodi:ry="38.914051"
+ d="m 429.15853,543.44366 a 28.702562,38.914051 0 1 1 -57.40513,0 28.702562,38.914051 0 1 1 57.40513,0 z"
+ transform="matrix(2.7668095,-0.53171129,0.60305704,2.6271943,-101.00341,-845.85488)" />
+ <path
+ transform="matrix(2.0229222,-0.64328997,0.64066389,2.1866177,263.33691,-575.45403)"
+ d="m 429.15853,543.44366 a 28.702562,38.914051 0 1 1 -57.40513,0 28.702562,38.914051 0 1 1 57.40513,0 z"
+ sodipodi:ry="38.914051"
+ sodipodi:rx="28.702562"
+ sodipodi:cy="543.44366"
+ sodipodi:cx="400.45596"
+ id="path3799"
+ style="color:#000000;fill:#e7e6ec;fill-opacity:1;stroke:none;stroke-width:0.26384211;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#000000;stroke:none;stroke-width:0.19265361;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3801"
+ sodipodi:cx="410.1113"
+ sodipodi:cy="543.21143"
+ sodipodi:rx="8.8794022"
+ sodipodi:ry="13.465467"
+ d="m 418.9907,543.21143 a 8.8794022,13.465467 0 1 1 -17.7588,0 8.8794022,13.465467 0 1 1 17.7588,0 z"
+ transform="matrix(3.2515702,0,0,2.8168263,16.153846,-1151.625)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e7e6ec;fill-opacity:1;stroke:none;stroke-width:0.21396993;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3805"
+ sodipodi:cx="403.18341"
+ sodipodi:cy="536.96655"
+ sodipodi:rx="3.7078824"
+ sodipodi:ry="8.781827"
+ d="m 406.89129,536.96655 a 3.7078824,8.781827 0 1 1 -7.41576,0 3.7078824,8.781827 0 1 1 7.41576,0 z"
+ transform="matrix(2.824571,0,0,2.6752843,195.83727,-1074.7315)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#000000;stroke:none;stroke-width:0.21279597;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3807"
+ sodipodi:cx="437.62769"
+ sodipodi:cy="539.99139"
+ sodipodi:rx="10.830919"
+ sodipodi:ry="13.367891"
+ d="m 448.4586,539.99139 a 10.830919,13.367891 0 1 1 -21.66183,0 10.830919,13.367891 0 1 1 21.66183,0 z"
+ transform="matrix(2.7179252,0,0.04087328,2.8162126,225.89822,-1154.3949)" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#e7e6ec;fill-opacity:1;stroke:none;stroke-width:0.21908903;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3803"
+ sodipodi:cx="432.7489"
+ sodipodi:cy="533.64899"
+ sodipodi:rx="2.4393961"
+ sodipodi:ry="7.6109161"
+ d="m 435.1883,533.64899 a 2.4393961,7.6109161 0 1 1 -4.87879,0 2.4393961,7.6109161 0 1 1 4.87879,0 z"
+ transform="matrix(2.9009107,0,0,2.4174256,164.77528,-936.74172)" />
+ <path
+ style="color:#000000;fill:#dbdae0;fill-opacity:1;stroke:none;stroke-width:0.1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1266.2787,415.02633 c 43.5553,42.0038 82.798,64.16719 138.8391,21.13328 -36.4054,61.36761 -110.6571,38.53849 -138.8391,-21.13328 z"
+ id="path3811"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="color:#000000;fill:#dbdae0;fill-opacity:1;stroke:none;stroke-width:0.1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1407.8883,434.94901 c -1.5473,-1.84347 6.478,-3.69434 8.8336,-2.84429 19.4697,10.30798 29.3064,3.67479 52.6715,-8.30815 -12.9069,16.73141 -34.8,25.92144 -61.5051,11.15244 z"
+ id="path3813-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="color:#000000;fill:#920a6b;fill-opacity:0.98431582;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 1358.5,497.8375 c -17.2473,-2.90752 -11.846,17.56737 0.7253,21.39422 27.6225,8.40866 89.2781,-16.1311 98.9935,-50.04071 -0.4579,-6.8454 -3.1275,-12.49509 -8.3401,-5.0766 -26.7546,29.86128 -65.1477,37.93736 -91.3787,33.72309 z"
+ id="path3868"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csccc" />
</g>
</svg>
--- a/share/hedgewars/Data/Locale/ar.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/ar.txt Tue Jun 04 22:28:12 2013 +0200
@@ -152,7 +152,6 @@
02:01=%1 wants to play Ecco the dolphin
02:01=%1 has gone to visit Aquaria
02:01=%1 has found the lost city of Atlantis
-02:01=%1 aims for the lead role in Bioshock 3
02:01=Your doggy paddle could use a little work, %1
02:01=%1 should have brought a jet ski
02:01=%1 doesn't like watersports
--- a/share/hedgewars/Data/Locale/cs.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/cs.txt Tue Jun 04 22:28:12 2013 +0200
@@ -175,7 +175,6 @@
02:01=%1 chce hrát delfína Ecca
02:01=%1 odešel navštívit akvárium
02:01=%1 našel ztracené město Atlantidu
-02:01=%1 míří na hlavní roli v Bioshocku 3
02:01=Na tvém stylu čubička by ještě chtělo zapracovat, %1
02:01=%1 si neměl vozit vodní lyže
02:01=%1 nemá rád vodní sporty
@@ -447,8 +446,8 @@
03:51=Nalezeno na zemi
03:52=NEPOUŽITO
03:53=Typ 40
-03:54=Vytvořit něco
-03:55=Užitečnost
+;03:54=Vytvořit něco
+03:54=Užitečnost
; Weapon Descriptions (use | as line breaks)
04:00=Zaútoč na nepřítele pomocí obyčejného granátu.|Exploduje jakmile časovač dojde k nule.|1-5: Nastavuje časovač|Útok: Drž pro hození větší silou
@@ -506,8 +505,8 @@
04:51=Získat ve volném záběru vrhá kouli bláta.|Žihadla bit, a srazí prasata zpět.
04:52=NEPOUŽITO
04:53=Vydejte se na dobrodružství v čase a prostoru,|přičemž vaši kamarádi bojovat dál sám.|Být připraven vrátit kdykoliv,|nebo náhlé smrti nebo pokud jsou všichni poraženi.|Prohlášení. Nefunguje v náhlé smrti,|Pokud jste sami, nebo jste-li král.
-04:54=NEÚPLNÝ
-04:55=Sprej proud lepkavými vločkami.|Stavět mosty, pohřbít nepřátele, utěsnění tunely.|Buďte opatrní, nechcete dostat každý z vás!
+;04:54=NEÚPLNÝ
+04:54=Sprej proud lepkavými vločkami.|Stavět mosty, pohřbít nepřátele, utěsnění tunely.|Buďte opatrní, nechcete dostat každý z vás!
; Game goal strings
05:00=Herní módy
--- a/share/hedgewars/Data/Locale/da.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/da.txt Tue Jun 04 22:28:12 2013 +0200
@@ -175,7 +175,6 @@
02:01=%1 leger delfin
02:01=%1 er taget til Lalandia
02:01=%1 har fundet den forsvundne by Atlantis
-02:01=%1 håber på en hovedrolle i Bioshock 3
02:01=Du burde arbejde lidt med din hundesvømning, %1
02:01=%1 burde have medbragt jetski
02:01=%1 bryder sig ikke om vandsport
@@ -447,8 +446,8 @@
03:51=Lige til at samle op
03:52=UBRUGT
03:53=Årgang 40
-03:54=Byg noget
-03:55=Værktøj
+;03:54=Byg noget
+03:54=Værktøj
; Weapon Descriptions (use |as line breaks)
04:00=Angrib dine fjender med en simpel granat.|Den eksploderer når uret når nul.|1-5: Indstil uret|Angrib: Hold knappen inde for at kaste hårdere
@@ -505,8 +504,8 @@
04:51=Få et skud lige ind med en Mudderklat.|Bider en smule og slår fjender omkuld.
04:52=UBRUGT
04:53=Tag på et eventyr gennem tid og rum,|mens du efterlader kampen til dine kammerater.|Vær klar til at vende tilbage når som helst,|eller hvis Pludselig Død indtræder|eller alle dine andre pindsvin dør.|Advarsel! Virker ikke under Pludselig Død,|hvis du er alene eller er Konge.
-04:54=UFÆRDIG
-04:55=Sprøjt rundt med klistrende flammer.|Byg broer, begrav fjender, luk tunneler af.|Pas på ikke selv at få noget på dig.
+;04:54=UFÆRDIG
+04:54=Sprøjt rundt med klistrende flammer.|Byg broer, begrav fjender, luk tunneler af.|Pas på ikke selv at få noget på dig.
; Game goal strings
05:00=Spilsystemer
--- a/share/hedgewars/Data/Locale/de.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/de.txt Tue Jun 04 22:28:12 2013 +0200
@@ -31,7 +31,7 @@
00:28=Bohrkopfrakete
00:29=Ballpistole
00:30=Napalm-Luftangriff
-00:31=RC-Flugzeug
+00:31=Funkflugzeug
00:32=Schwerkraft verringern
00:33=Zusatzschaden
00:34=Unverwundbarkeit
@@ -101,12 +101,10 @@
02:00=Für %1 gehen alle Lichter aus!
02:00=%1 kommt wieder!
02:00=%1 ist urlaubsreif!
-02:00=%1 trifft seine Ahnen.
02:00=%1 war nicht hartnäckig genug!
02:00=%1 war einmal
02:00=%1 hat wohl versagt
02:00=Mach’s gut, %1!
-02:00=%1 hinterlässt Frau und Kind
02:00=%1 hat die letzte Bazooka gefeuert
02:00=%1 hat die letzte Granate geworfen
02:00=%1 hat den letzten Kuchen gebacken
@@ -117,27 +115,27 @@
02:00=%1 nahm einen Schuss zu viel
02:00=%1 hätte wirklich ein Erste-Hilfe-Kit gebrauchen können
02:00=%1 ist gegangen, um ein besseres Spiel zu spielen
-02:00=%1 verlässt sein Leben aus Wut
+02:00=%1 will nicht mehr
02:00=%1 scheitert
02:00=Schlecht, schlecht, %1 …
02:00=%1 sollte lieber WarMUX spielen
-02:00=%1 hat versucht die Kugeln mit den Zähnen zu fangen
-02:00=%1 findet seinen Platz in der Walhall
+02:00=%1 hat versucht, die Kugeln mit den Zähnen zu fangen
+02:00=%1 findet einen Platz in der Walhall
02:00=%1 geht den Weg der Dinosaurier
02:00=%1 bringt die Igelspezies einen Schritt näher zum Aussterben
02:00=%1 wird vermisst werden
02:00=%1 ist ab jetzt ein Ex-Igel
02:00=%1 sieht sich die Radieschen von unten an
-02:00=%1 hat aufgehört, zu sein
+02:00=%1 hat aufgehört zu existieren
02:00=Verabschieden Sie sich von %1
02:00=Für %1 gibt es keine Hoffnung mehr
02:00=%1 trat von der Lebensbühne ab
02:00=%1 erleidet ein spontanes multiples Organversagen
02:00=%1 ist mausetot
-02:00=%1s Lebensuhr ist abgelaufen
+02:00=Für %1 ist die Lebensuhr abgelaufen
02:00=Beraubt des Lebens, ruht %1 in Frieden
02:00=%1 hatte eine geringe Schadenstoleranz
-02:00=%1 hat all seine Extraleben aufgebraucht
+02:00=%1 hat alle Extraleben aufgebraucht
02:00=Ist ein Arzt im Haus?!
02:00=%1 ist tot
02:00=%1 ist hinüber
@@ -145,6 +143,13 @@
02:00=Schade um %1
02:00=Wir trauern um %1
02:00=%1 beißt ins Gras
+02:00=%1 ist jetzt im Igel-Himmel
+02:00=%1 spielt nicht mehr mit
+02:00=%1 ist ausgeschieden
+02:00=Hat %1 eigentlich ein Testament gemacht?
+02:00=%1 spürt keinen Schmerz mehr
+02:00=%1 muss nicht mehr leiden
+02:00=%1 hat eine Abkürzung gefunden …
; Hog (%1) drowned
02:01=%1 geht auf Tauchstation!
@@ -165,35 +170,33 @@
02:01=%1 geht unter die Perlentaucher!
02:01=%1 über Bord!
02:01=%1 verlässt das sinkende Schiff
-02:01=%1 überschätzt seinen Auftrieb!
+02:01=%1 überschätzt den eigenen Auftrieb!
02:01=%1 erliegt dem Sog der Tiefe!
02:01=%1 geht der Sache auf den Grund!
02:01=%1 wäre fast verdurstet!
02:01=%1 macht »Gluck, gluck, gluck!«
02:01=%1 macht »Platsch!«
-02:01=%1 vergaß seine Schwimmflügel
+02:01=%1 hätte die Schwimmflügel diesmal nicht zu Hause lassen sollen
02:01=%1 hätte Schwimmunterricht nehmen sollen
-02:01=%1 ließ sein Surfbrett zu Hause
+02:01=%1 ließ das Surfbrett zu Hause
02:01=%1 wird gewaschen
02:01=%1 ist ein nasser Igel
-02:01=%1 hat seine Schwimmweste vergessen
+02:01=%1 hat die Schwimmweste vergessen
02:01=%1 macht »Plitsch-platsch!«
02:01=%1 sieht durstig aus
02:01=%1 ist auf dem Meer verschollen
02:01=%1 bekommt eine Seebestattung
-02:01=%1 übt sein Rückenschwimmen
-02:01=%1 geht auf der Suche nach der Titanic
+02:01=%1 übt Rückenschwimmen
02:01=%1 ist nicht Jesus
02:01=%1 hat ein Leck
02:01=Wie viele Igel wohl da unten liegen?
02:01=%1 macht das Meer etwas höher
02:01=%1 ist absolut nicht Marinetauglich
-02:01=%1 glaubt, er sei ein Fisch
+02:01=%1 hält sich für einen Fisch
02:01=Wenigstens ging die Sache nicht ins Klo, %1!
02:01=Sonic konnte nicht schwimmen, %1 auch nicht
02:01=%1 spielt »Flipper der Delphin«
02:01=%1 ist von uns gegangen, um Aquaria zu besuchen
-02:01=%1 strebt die Hauptrolle in Bioshock 3 an
02:01=%1 hasst Wassersport
02:01=%1 wird für immer Blasen machen
02:01=%1 war ganz, ganz knapp vor einem Floß
@@ -206,6 +209,15 @@
02:01=%1, Igel, der mit dem Blubb
02:01=Nächster Halt: Meeresgrund
02:01=%1 hätte den Schwimmkurs nicht schwänzen sollen
+02:01=Fischers Fritze fischt frische ... Igel?!
+02:01=Grüß die Fische von uns, %1!
+02:01=%1 erkundet das Meer
+02:01=%1 folgt dem Ruf der Meere
+02:01=%1 ist jetzt ein Seeigel!
+02:01=Igel haben keine Kiemen, %1!
+02:01=%1 lässt sich diese einmalige Tauchgelegenheit nicht entgehen
+02:01=Und wir dachten %1 könnte nicht noch tiefer sinken …
+02:01=%1 zieht eine Etage tiefer
; Round starts
02:02=Auf in die Schlacht!
@@ -275,6 +287,8 @@
02:05=Vorräte!
02:05=Ein Erste-Hilfe-Koffer!
02:05=Ein Grund zur Hoffnung!
+02:05=Frisch aus dem Jungbrunnen
+02:05=Lebenszeit in Kisten
; New ammo crate
02:06=Nachschub!
@@ -298,6 +312,10 @@
02:06=Lassen Sie nicht zu, dass sich der Feind sie holt!
02:06=Schönes neues Spielzeug!
02:06=Eine geheimnisvolle Kiste!
+02:06=Ein eckiges Ü-Ei!
+02:06=Die Holzkiste der Pandora!
+02:06=Willst du mit mir spielen?
+02:06=Quadratisch, praktisch, … gefährlich?
; New utility crate
02:07=Nützliches?
@@ -310,6 +328,7 @@
02:07=Dies sollte gut sein!
02:07=Verwenden Sie diese mit Bedacht
02:07=Uff, diese Box ist schwer
+02:07=Futter für Strategen
; Hog (%1) skips his turn
02:08=%1 ist so ein Langeweiler …
@@ -325,19 +344,17 @@
02:08=%1 braucht etwas Motivation
02:08=%1 ist ein Pazifist
02:08=%1 hat eine Verschnaufpause
-02:08=%1 hat eine Pause
-02:08=%1 ist dem Schüttelfrost ausgesetz
-02:08=%1 hat kein Vertrauen in seine eigenen Fähigkeiten
+02:08=%1 nimmt sich eine Auszeit
+02:08=%1 hat kein Vertrauen in die eigenen Fähigkeiten
02:08=%1 beschließt, nichts zu tun
02:08=%1 lässt den Feind sich selbst vernichten
02:08=%1 wäre furchtbar auf Partys
02:08=%1 versteckt sich
02:08=%1 verpasst die Gelegenheit
02:08=%1 verschenkt die Chance
-02:08=%1 meint, das Beste, was er tun kann, ist nichts …
+02:08=%1 meint Nichtstun sei der beste Plan …
02:08=%1 ist ein großes Weichei
-02:08=Gock, gock, gock, %1 ist ein Huhn
-02:08=%1 sieht etwas gelblich aus
+02:08=%1 hat Angst …
02:08=%1 ist ein Feigling!
02:08=%1 wartet auf Sudden Death
02:08=%1 ist nicht so der Kämpfertyp
@@ -350,6 +367,16 @@
02:08=%1 hat anscheinend Besseres zu tun
02:08=%1 hat sich fast zu Tode erschrocken
02:08=%1 ist eingeschlafen
+02:08=%1 ist wohl nur aus Versehen hier
+02:08=%1 steckt den Kopf in den Sand
+02:08=%1 spielt lieber Skat
+02:08=%1 guckt zu
+02:08=%1 vertraut auf das Karma
+02:08=%1 igelt sich ein
+02:08=%1 zählt Schäfchen
+02:08=%1 lässt sich die Sonne auf den Bauch scheinen
+02:08=%1 genießt die Stille
+02:08=%1 fragt sich ob es schon Zeit für den Winterschlaf ist
; Hog (%1) hurts himself only
02:09=%1 sollte lieber zielen üben!
@@ -359,20 +386,17 @@
02:09=%1 hat keinen Selbsterhaltungstrieb
02:09=%1 ist durcheinander
02:09=%1 vermasselt’s
-02:09=Das war ein schlechter Schuss, %1
+02:09=Das hat wohl nicht ganz geklappt, %1
02:09=%1 geht ein wenig zu sorglos mit gefährlichen Waffen um
02:09=%1 sollte eine Änderung der Laufbahn betrachten
-02:09=Das. War. Schlecht!
02:09=Nein, nein, nein, %1, Sie müssen auf den Feind schießen!
02:09=%1 bewegt sich einen Schritt näher zum Selbstmord
02:09=%1, Helfer des Feindes
-02:09=Das war dumm, %1
+02:09=%1 hatte das anders geplant
02:09=%1 lebt nach dem Mantra des »Ohne Schmerz kein Sieg!«
02:09=%1 ist verwirrt
-02:09=%1 ist geistig verwirrt
02:09=%1 verletzt sich selbst
02:09=%1 blamiert sich!
-02:09=%1 ist ein Trottel!
02:09=%1 ist ungeschickt
02:09=%1 zeigt dem Feind, wozu er fähig ist
02:09=%1 ist nicht perfekt
@@ -382,8 +406,15 @@
02:09=Wie peinlich!
02:09=Ich hoffe, dass das niemand gesehen hat, %1
02:09=%1 sollte dringend die Gebrauchsanweisung noch einmal durchlesen
-02:09=%1s hat eindeutig versagt
02:09=%1s Schuss ging nach hinten los!
+02:09=%1 macht sich mit den Waffen vertraut
+02:09=%1 schießt ein Eigentor
+02:09=%1 kennt keinen Schmerz
+02:09=%1 mag Bumerangs und Jo-Jos
+02:09=Wer Anderen eine Grube gräbt …
+02:09=%1 wird vom Pech verfolgt
+02:09=Auch %1 macht mal Fehler
+02:09=Hoppla?!
; Hog (%1) shot an home run (using the bat and another hog)
02:10=Home Run!
@@ -393,6 +424,10 @@
02:10=%1 vor, noch ein Tor!
02:10=Ausgezeichnet, %1!
02:10=Bravo, %1!
+02:10=Sehr sportlich, %1!
+02:10=Flieg, Iglein, flieg!
+02:10=%1 lässt Igel fliegen
+02:10=%1 ist Physikstudent
; Hog (%1) has to leave (team is gone)
02:11=%1 muss ins Bett!
@@ -410,6 +445,10 @@
02:11=%1 verschwindet
02:11=%1 ist futsch
02:11=%1 hat wohl besseres zu tun
+02:11=%1 löst sich in Luft auf
+02:11=%1 bringt den Müll raus
+02:11=%1 flieht
+02:11=%1 braucht Urlaub
; Weapon Categories
03:00=Zeitzünder-Granate
@@ -467,8 +506,8 @@
03:51=Am Boden gefunden
03:52=NICHT IN VERWENDUNG
03:53=Typ 40
-03:54=Baue etwas
-03:55=Werkzeug
+;03:54=Baue etwas
+03:54=Werkzeug
; Weapon Descriptions (use | as line breaks)
04:00=Greife deine Feinde mit einfachen Granaten an.|Der Zeitzünder steuert den Explosionszeitpunkt.|1-5: Zeitzünder einstellen|Angriff: Halten, um mit mehr Kraft zu werfen
@@ -502,7 +541,7 @@
04:28=Kurz nach dem Start wird diese Rakete beginnen,|sich durch soliden Grund zu graben. Sobald sie|wieder austritt oder der Zeitzünder abläuft,|wird sie explodieren.|Angriff: Halten, um mit mehr Kraft zu feuern
04:29=Das ist nichts für kleine Kinder! Die Ballpistole|feuert Tonnen kleiner farbiger Bälle, die mit|Sprengstoff gefüllt sind.|Angriff: Mit voller Kraft feuern|Hoch/Runter: Im Feuern zielen
04:30=Rufe ein Flugzeug, um ein Areal gezielt mit|tödlichem Napalm einzudecken. Gut gezielt|lassen sich so große Teile der Karte auslöschen.|Links/Rechts: Angriffsrichtung wählen|Cursor: Zielgebiet wählen und Angriff starten
-04:31=Das RC-Flugzeug kann Kisten einsammeln und weit|entfernte Igel angreifen. Steuere es direkt in|ein Opfer oder wirf erst einige Bomben ab.|Angriff: Flugzeug starten und Bomben abwerfen|Weiter Sprung: "Ritt der Walküren"|Hoch/Runter: Flugzeug lenken
+04:31=Das Funkflugzeug kann Kisten einsammeln und weit|entfernte Igel angreifen. Steuere es direkt in|ein Opfer oder wirf erst einige Bomben ab.|Angriff: Flugzeug starten und Bomben abwerfen|Weiter Sprung: "Ritt der Walküren"|Hoch/Runter: Flugzeug lenken
04:32=Niedrige Schwerkraft ist effektiver als jede|Diät! Springe höher und weiter oder lass|einfach deine Gegner noch weiter fliegen.|Angriff: Aktivieren
04:33=Manchmal muss es eben doch ein bisschen|mehr sein …|Angreifen: Aktivieren
04:34=Can’t touch me!|Angreifen: Aktivieren
@@ -525,8 +564,8 @@
04:51=Wirf mit Dreck um dich!|Schmerzt ein wenig und schubst Igel weg.
04:52=NICHT IN VERWENDUNG
04:53=Unternimm eine Reise durch Zeit und Raum,|während du deine Kameraden alleine am Schlachtfeld zurücklässt.|Sei darauf vorbereitet jederzeit wieder zurückzukommen,|oder auf Sudden Death wenn sie alle besiegt wurden.|Disclaimer: Nicht funktionstüchtig wenn in Sudden Death,|wenn du alleine bist - oder der König.
-04:54=IN ARBEIT
-04:55=Versprühe einen Strahl klebriger Flocken.|Baue Brücken, begrabe Gegner, versiegle Tunnel.|Pass auf, dass du selbst nichts abbekommst!
+;04:54=IN ARBEIT
+04:54=Versprühe einen Strahl klebriger Flocken.|Baue Brücken, begrabe Gegner, versiegle Tunnel.|Pass auf, dass du selbst nichts abbekommst!
; Game goal strings
05:00=Spielmodifikationen
--- a/share/hedgewars/Data/Locale/en.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/en.txt Tue Jun 04 22:28:12 2013 +0200
@@ -45,7 +45,7 @@
00:42=Portable Portal Device
00:43=Piano Strike
00:44=Old Limburger
-00:45=Sine Gun (beta)
+00:45=Sine Gun
00:46=Flamethrower
00:47=Sticky Mine
00:48=Hammer
@@ -178,7 +178,6 @@
02:01=%1 wants to play Ecco the dolphin
02:01=%1 has gone to visit Aquaria
02:01=%1 has found the lost city of Atlantis
-02:01=%1 aims for the lead role in Bioshock 3
02:01=Your doggy paddle could use a little work, %1
02:01=%1 should have brought a jet ski
02:01=%1 doesn't like watersports
@@ -445,13 +444,15 @@
03:46=Hot Hot Hot!
03:47=Stick these somewhere useful!
03:48=It's Hammer time!
-03:49=Does what you guess
+03:49=Bring back the dead TO hell!
03:50=Moles fan
03:51=Found on the ground
03:52=UNUSED
03:53=Type 40
-03:54=Build something
-03:55=Utility
+;03:54=Build something
+03:54=Utility
+03:55=It doesn't get cooler than this!
+03:56=Please use or misuse
; Weapon Descriptions (use | as line breaks)
04:00=Attack your enemies using a simple grenade.|It will explode once its timer reaches zero.|1-5: Set grenade's timer|Attack: Hold to throw with more power
@@ -504,12 +505,13 @@
04:47=Double the fun with two spiky, sneaky, sticky mines.|Set up a chain reaction or defend yourself (or both!)|Attack: Hold to shoot with more power (twice)
04:48=Why should the moles get all the abuse?|Wacking a hog can be just as fun! A good|blow from this hammer will shave off one|third of a hog's health and plunge them|underground.|Attack: Activate
04:49=Resurrect your friends!|But beware that this also resurrects your foes.|Attack: Keep attack pressed to resurrect slowly|Up: Accelerate resurrection
-04:50=Is someone hiding underground?|Dig them out with a drill strike!|Timer controls how far it will dig.
-04:51=Get in a free shot by hurling a ball of mud.|Stings a bit, and knocks hogs back.
+04:50=Is someone hiding underground?|Dig them out with a drill strike!|Timer controls how far it will dig.|Left/Right: Determine attack direction|Cursor: Select target region
+04:51=Get in a free shot by hurling a ball of mud.|Stings a bit, and knocks hogs back.|Attack: Hold to shoot with more power
04:52=UNUSED
-04:53=Take a trip through time and space,|while leaving your comrades to fight on alone.|Be prepared to return at any time,|or for Sudden Death or if they are all defeated.|Disclaimer. Does not function in Sudden Death,|if you are alone, or if you are a King.
-04:54=INCOMPLETE
-04:55=Spray a stream of sticky flakes.|Build bridges, bury enemies, seal off tunnels.|Be careful you don't get any on you!
+04:53=Take a trip through time and space,|while leaving your comrades to fight on alone.|Be prepared to return at any time,|or for Sudden Death or if they are all defeated.|Disclaimer. Does not function in Sudden Death,|if you are alone, or if you are a King.|Attack: Activate
+04:54=Spray a stream of sticky flakes.|Build bridges, bury enemies, seal off tunnels.|Be careful you don't get any on you!|Attack: Activate|Up/Down: Continue aiming|Left/Right: Modify spitting power
+04:55=Bring back the ice-age!|Freeze hedgehogs, make the floor slippery or|save yourself from drowning by freezing the water.|Attack: Shoot
+04:56=You can throw two cleavers at your enemy,|block passages and tunnels and even use them for climbing!|Be careful! Playing with knifes is dangerous.|Attack: Hold to shoot with more power (twice)
; Game goal strings
05:00=Game Modes
--- a/share/hedgewars/Data/Locale/es.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/es.txt Tue Jun 04 22:28:12 2013 +0200
@@ -171,7 +171,6 @@
02:01=%1 prefiere jugar a Ecco the dolphin
02:01=%1 ha ido a visitar Aquaria
02:01=%1 ha encontrado la ciudad perdida de la Atlántida
-02:01=%1 hace audiciones para el personaje principal de Bioshock 3
02:01=Necesitas practicar más tu estilo perrito, %1
02:01=Necesitas practicar más tu brazada, %1
02:01=Necesitas practicar más tu estilo mariposa, %1
@@ -446,8 +445,8 @@
03:51=Me la encontré por el suelo
03:52=SIN USAR
03:53=Tipo 40
-03:54=Construye algo
-03:55=Herramienta
+;03:54=Construye algo
+03:54=Herramienta
; Descripciones de armamento ( líneas delimitadas con | )
04:00=Ataca a tus enemigos usando una sencilla granada.|Explotará una vez el temporizador llegue a cero.|1-5: ajustar temporizador.|Atacar: mantener presionado para lanzar más lejos.
@@ -504,8 +503,8 @@
04:51=¿Qué hay más barato que el barro?|Un tiro gratis gracias a la bola de barro.|Hará que el enemigo salga volando|y escuece un poco si te entra en los ojos.
04:52=SIN USAR
04:53=Vive una trepidante aventura a través del|espacio y el tiempo mientras tus compañeros|siguen luchando en tu lugar.|Estate preparado para volver en cualquier momento,|o al llegar la Muerte súbita si te has quedado solo.|Aviso: no funciona durante la Muerte súbita,|si estás solo o si eres el rey.
-04:54=INCOMPLETO
-04:55=Esparce un chorro de pegajoso barro.|Construye puentes, entierra enemigos o cierra túneles.|¡Ten especial cuidado de no mancharte!
+;04:54=INCOMPLETO
+04:54=Esparce un chorro de pegajoso barro.|Construye puentes, entierra enemigos o cierra túneles.|¡Ten especial cuidado de no mancharte!
; Game goal strings
05:00=Modos de juego
--- a/share/hedgewars/Data/Locale/fi.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/fi.txt Tue Jun 04 22:28:12 2013 +0200
@@ -159,7 +159,6 @@
02:01=%1 haluaa näytellä Ecco-delfiiniä
02:01=%1 lähti käymään Aquariassa
02:01=%1 löysi Atlantiksen kadonneen kaupungin
-02:01=%1 tähtää Bioshock 3:en päärooliin
02:01=%1:n olisi pitänyt ottaa vesiskootteri mukaan
02:01=%1 ei pidä vesiurheilusta
02:01=%1 puhaltaa ikuisesti kuplia
--- a/share/hedgewars/Data/Locale/fr.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/fr.txt Tue Jun 04 22:28:12 2013 +0200
@@ -3,22 +3,22 @@
00:00=Grenade
00:01=Grenade à fragmentation
00:02=Bazooka
-00:03=Abeille Missile
+00:03=Abeille à tête chercheuse
00:04=Fusil
00:05=Marteau-piqueur
00:06=Passer
-00:07=Corde ninja
+00:07=Grappin
00:08=Mine
-00:09=Révolver
+00:09=Pistolet
00:10=Dynamite
00:11=Batte de baseball
00:12=Shoryuken
00:13=sec
00:14=Parachute
-00:15=Attaque aérienne
-00:16=Lancer de mines
+00:15=Frappe aérienne
+00:16=Pluie de mines
00:17=Chalumeau
-00:18=Poutre
+00:18=Construction
00:19=Téléportation
00:20=Changer de hérisson
00:21=Mortier
@@ -29,39 +29,44 @@
00:26=Bombe pastèque
00:27=Grenade infernale
00:28=Roquette perforante
-00:29=Canon à billes
+00:29=Mitrailleuse à balles
00:30=Napalm
00:31=Avion télécommandé
00:32=Faible gravité
-00:33=Plus de dégâts
+00:33=Dégats supplémentaires
00:34=Invulnérable
00:35=Temps supplémentaire
00:36=Visée laser
00:37=Vampirisme
-00:38=Fusil de sniper
+00:38=Sniper
00:39=Soucoupe Volante
00:40=Cocktail Molotov
00:41=Piaf
-00:42=Fusil à portails
-00:43=Attaque du Piano
+00:42=Générateur de portails
+00:43=Chute de Piano
00:44=Vieux Limburger
-00:45=Fusil Sinus (bêta)
+00:45=Fusil Sinusoidale
00:46=Lance-flammes
00:47=Mines adhésives
00:48=Marteau
00:49=Resurrecteur
00:50=Attaque perforante
00:51=Boule de terre
+00:52=Aucune arme sélectionnée
+00:53=Boîte temporelle
+00:54=Aéro-Sol
+00:55=Congélateur
+00:56=Hachoir
01:00=C'est parti !
01:01=Round ex-aequo
01:02=%1 gagne !
01:03=Volume %1%
01:04=Pause
-01:05=Quitter (Y/Esc) ?
+01:05=Quitter? (Y/Esc) (Clique pour reprendre)
01:06=Mort subite !
01:07=%1 Restantes
-01:08=Essence
+01:08=Carburant
; Event messages
; Hog (%1) died
@@ -78,41 +83,42 @@
02:00=%1 fait l'ultime sacrifice !
02:00=%1 sera profondément regretté !
02:00=%1 a un anévrisme !
-02:00=%1 s'en va, laissant sa femme et ses enfants
-02:00=%1 a lancé sa dernière roquette
-02:00=%1 a jeté sa dernière grenade
-02:00=%1 a fait cuire son dernier gâteau
-02:00=%1 s'est balancé sur sa dernière corde
-02:00=%1 a appelé son dernier raid aérien
-02:00=%1 a rechargé son dernier fusil de chasse
-02:00=%1 a envoyé son dernier melon
-02:00=%1 a tiré sa dernière balle
-02:00=%1 aurait vraiment dû utiliser une caisse de vie
-02:00=%1 est parti pour jouer à un meilleur jeu
+02:00=%1 s'en va, laissant sa femme et ses enfants !
+02:00=%1 a lancé sa dernière roquette !
+02:00=%1 a jeté sa dernière grenade !
+02:00=%1 a fait cuire son dernier gâteau !
+02:00=%1 s'est balancé sur sa dernière corde !
+02:00=%1 a appelé son dernier raid aérien !
+02:00=%1 a rechargé son dernier fusil de chasse !
+02:00=%1 a envoyé son dernier melon !
+02:00=%1 a tiré sa dernière balle !
+02:00=%1 aurait vraiment dû utiliser une caisse de vie !
+02:00=%1 est parti pour jouer à un meilleur jeu !
02:00=%1 est mauvais joueur !
-02:00=%1 a échoué
+02:00=%1 a échoué !
02:00=Pauvre %1...
-02:00=%1 préfère Warmux
-02:00=%1 a bloqué les balles avec sa tête
-02:00=%1 s'en va à la façon des dinosaures
-02:00=%1 fait avancer les hérissons d'un pas vers l'extinction
-02:00=%1 me fait pleurer une larme
-02:00=%1 a cessé d'être
-02:00=Dites au revoir à %1
-02:00=Plus d'espoir restant pour %1
-02:00=%1 ferme le rideau final
-02:00=%1 souffre d'Échec Spontané et Massif d'Existence
-02:00=%1 est mort
-02:00=%1 est raide mort
-02:00=%1 n'existe plus
-02:00=%1 est périmé
-02:00=Privé de la vie, %1, reste en paix
-02:00=%1 rejoins le chœur invisible
+02:00=%1 préfère Warmux !
+02:00=%1 a bloqué les balles avec sa tête !
+02:00=%1 s'en va à la façon des dinosaures !
+02:00=%1 fait avancer les hérissons d'un pas vers l'extinction !
+02:00=%1 me fait pleurer une larme !
+02:00=%1 a cessé d'être !
+02:00=Dites au revoir à %1 !
+02:00=Plus d'espoir restant pour %1 !
+02:00=%1 ferme le rideau final !
+02:00=%1 souffre d'Échec Spontané et Massif d'Existence !
+02:00=%1 est mort !
+02:00=%1 est raide mort !
+02:00=%1 n'existe plus !
+02:00=%1 est périmé !
+02:00=Privé de la vie, %1, reste en paix !
+02:00=%1 rejoins le chœur invisible !
02:00=Adieu %1, nous tenions beaucoup a toi !
-02:00=%1 avait une faible tolérance aux coups à balles
-02:00=%1 aurait dû utiliser une vie supplémentaire
-02:00=%1 rejoint ses ancêtres
+02:00=%1 avait une faible tolérance aux coups à balles !
+02:00=%1 aurait dû utiliser une vie supplémentaire !
+02:00=%1 rejoint ses ancêtres !
02:00=%1 sera muet comme une tombe
+
; Hog (%1) drowned
02:01=%1 joue au sous-marin !
02:01=%1 imite le Titanic !
@@ -148,7 +154,6 @@
02:01=%1 veut jouer à Ecco the Dolphin
02:01=%1 est parti visiter l'aquarium
02:01=%1 a trouvé la cité perdue d'Atlantide
-02:01=%1 se propose pour le rôle principal de Bioshock 3
02:01=Ta pagaie pour chiens aurait pû servir, %1
02:01=%1 aurait dû acheter un jet ski
02:01=%1 n'aime pas les sports aquatiques
@@ -162,6 +167,7 @@
02:01=%1 flotte comme une enclume
02:01=%1 a oublié son masque et ses palmes
02:01=%1 a vu une sirène !
+
; Match starts
02:02=Aux armes !
02:02=Prêts à combattre !
@@ -210,10 +216,13 @@
02:02=Ave Caesar, Morituri te salutant !
02:02=Combattez jusqu'à la fin !
02:02=Que la force soit avec vous !
+
; Round ends (win; unused atm)
02:03=...
+
; Round ends (draw; unused atm)
02:04=...
+
; New health crate
02:05=Pharmacie !
02:05=De l'aide !
@@ -232,6 +241,7 @@
02:05=Voilà la Croix Rouge !
02:05=Médecin Sans Frontière à votre service !
02:05=Hausse de l'espérance de vie en vue
+
; New ammo crate
02:06=Plus d'armes !
02:06=Du renfort !
@@ -256,6 +266,7 @@
02:06=L'espoir fait vivre
02:06=Surement quelquechose d'utile
02:06=Que la chance soit avec vous !
+
; New utility crate
02:07=Boite à outils !
02:07=Ça peut être pratique...
@@ -269,6 +280,7 @@
02:07=Elle s'est peut être blessée en tombant, vous devriez aller la voir
02:07=Bob le bricoleur sait être généreux
02:07=Le moment donné par le hasard vaut mieux que le moment choisi
+
; Hog (%1) skips his turn
02:08=%1 est une lopette...
02:08=%1 est trooooop rasant...
@@ -310,6 +322,7 @@
02:08=Les gens heureux n'ont pas besoin de se presser selon %1
02:08=Ne crains pas d'avancer lentement, crains seulement de t'arrêter %1
02:08=Patience ! Avec le temps, l'herbe devient du lait
+
; Hog (%1) hurts himself only
02:09=%1 devrait apprendre à viser !
02:09=%1 s'en veut
@@ -345,43 +358,50 @@
02:09=%1 ne peut pas échapper à son destin
02:09=%1 a pris son arme dans le mauvais sens
02:09=%1 est surement daltonien
+
; Hog shot an home run (using the bat and another hog)
02:10=Home Run !
02:10=C'est un oiseau ! C'est un avion ! ...
02:10=Hors du parc !
02:10=Coup gagnant !
02:10=I believe I can FLY ! I believe I can... *boum*
+
+; Hog (%1) Has to leave (team is gone)
+02:11=%1 a du aller se coucher!
+02:11=%1 est trop occupé pour jouer
+02:11=%1 a du partir
+
; Weapon Categories
03:00=Grenade à retardement
03:01=Grenade à retardement
03:02=Arme balistique
03:03=Arme téléguidée
03:04=Fusil (plusieurs coups)
-03:05=Engin excavateur
+03:05=Outil de creusage
03:06=Action
-03:07=Véhicule utilitaire
+03:07=Moyen de transport
03:08=Bombe de proximité
03:09=Révolver (à plusieurs coups)
03:10=BOUM!
03:11=Bonk!
03:12=Arts martiaux
03:13=Non Utilisé
-03:14=Véhicule utilitaire
+03:14=Moyen de transport
03:15=Attaque aéroportée
03:16=Attaque aéroportée
-03:17=Engin excavateur
+03:17=Outil de creusage
03:18=Utilitaire
-03:19=Véhicule utilitaire
+03:19=Moyen de transport
03:20=Action
03:21=Engin balistique
03:22=Appelez-moi Indiana !
03:23=Arts (vraiment) martiaux !
03:24=Le gâteau n'est PAS un mensonge !
03:25=Déguisement
-03:26=Grenade à fragmentation
-03:27=Grenade infernale
-03:28=Missile balistique
-03:29=Missile balistique
+03:26=Grenade juteuse
+03:27=Grenade enflammée
+03:28=Arme balistique
+03:29=Arme balistique
03:30=Attaque aéroportée
03:31=Bombe à déclenchement télécommandé
03:32=Effet temporaire
@@ -394,21 +414,37 @@
03:39=Moyen de transport
03:40=Grenade incendiaire
03:41=Un supporter enragé de Squawks
+; they wont get the original joke the song is in english so Ill use "for science" instead since its said a lot in the game
+03:42=Pour la science ...
+03:43=Joue la douloureuse sonate de Beethoven
+03:44=A consommer de préference avant : 1923
+03:45=La puissance de la science
+03:46=Chaud ! Chaud ! Chaud!
+03:47=Colle ça là où ce sera utile!
+03:48=C'est l'heure de marteler !
+03:49=Ramène les morts en ENFER !!!
+03:50=Un fan de taupes
+03:51=Trouvé par terre
+03:52=UNUSED
+03:53=Type 40
+03:54=Trace ta route
+03:55=Qui a commandé un herisson-glacé?
+03:56=Grand couteau, Multi-fonctions !
; Weapon Descriptions (use | as line breaks)
-04:00=Attaquez vos ennemis en utilisant une simple grenade.|Elle explosera une fois que le compte à rebours atteindra zéro.|1-5: Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
-04:01=Attaquez vos ennemis en utilisant une bombe à retardement.|Elle se désintégrera en de multiples petites bombes |quand le compte à rebours atteindra zéro|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
-04:02=Attaquez vos ennemis en utilisant un missile balistique|subissant l'influence du vent.|Attaque : maintenez pour tirer avec plus de force
-04:03=Lancez une bombe téléguidée qui se verrouillera|sur la cible choisie. Ne tirez pas à pleine puissance|pour une meilleure précision.|Curseur : choix de la cible|Attaque : maintenez pour tirer avec plus de force
+04:00=Attaquez vos ennemis en utilisant une simple grenade.|Elle explosera une fois que le compte à rebours atteindra zéro.|1-5: Réglez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
+04:01=Attaquez vos ennemis en utilisant une grenade a fragmentation.|Elle se désintégrera en de multiples petits fragements explosifs |quand le compte à rebours atteindra zéro|1-5 : Réglez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
+04:02=Attaquez vos ennemis en utilisant un bazooka dont la roquette|subira l'influence du vent.|Attaque : maintenez pour tirer avec plus de force
+04:03=Lancez une abeille à tête chercheuse qui se verrouillera|sur la cible choisie. Ne tirez pas à pleine puissance|pour une meilleure précision.|Curseur : choix de la cible|Attaque : maintenez pour tirer avec plus de force
04:04=Attaquez votre ennemi en utilisant un fusil à deux coups.|Grâce à son pouvoir de dispersion vous n'avez pas besoin de frapper directement sur la cible|pour toucher votre ennemi.|Attaque : tirez (coups multiples)
04:05=Descendez sous terre ! Utilisez le marteau-piqueur pour creuser un trou|dans le sol et atteindre d'autres zones.|Attaque : commencez/achevez de creuser
04:06=Vous en avez marre ? Pas moyen d'attaquer ? Vous économisez vos munitions ?|Pas de problèmes ! Passez simplement votre tour, espèce de lâche !|Attaque : Passez votre tour sans combattre
-04:07=Franchissez les grandes distances en utilisant par intervalles la |corde ninja. Utilisez votre élan pour vous lancer contre les autres hérissons,|balancez leurs des grenades ou d'autres armes explosives.|Attaque : Tirer ou lâchez la corde ninja|Saut longue distance : jetez des grenades ou des armes similaires
+04:07=Franchissez les grandes distances en utilisant par intervalles le |Grappin. Utilisez votre élan pour vous lancer contre les autres hérissons,|leur balancer des grenades ou d'autres armes explosives.|Attaque : Tirer ou lâchez la corde ninja|Saut longue distance : jetez des grenades ou des armes similaires
04:08=Maintenez vos ennemis à distance en laissant une mine|dans les passages étroits ou juste sous leurs pieds. Assurez-vous|que vous pouvez vous sauver avant son déclenchement !|Attaque : lâchez la mine à vos pieds
-04:09=Vous n'êtes pas sûr de ce que vous voulez ? Utilisez l'Aigle| du Désert pour attaquer en utilisant vos quatre coups. Poussez dans l'eau vos ennemis ou transpercez leur défense|Attaque : tirez (coups multiples)
+04:09=Vous n'êtes pas sûr de ce que vous voulez ? Utilisez le| pistolet pour attaquer en utilisant vos quatre coups. Poussez dans l'eau vos ennemis ou transpercez leur défense|Attaque : tirez (coups multiples)
04:10=La force brute est toujours une possibilité. Lancez cet explosif|classique sur vos ennemis et prenez le temps de vous retirer.|Attaque : Lâchez la dynamite à vos pieds
-04:11=Débarrassez-vous des hérissons ennemis en leur donnant des coups pour les chasser |vers d'autres horizons ou en les jetant à l'eau. Ou bien préférez-vous|envoyer quelques tonneaux ou mines sur vos ennemis ?|Attaque : frappez un bon coup sur tout ce qui bouge.
-04:12=Allez au combat rapproché corps à corps pour utiliser toute la force presque mortelle de ces arts martiaux.|Attaque : lancez un coup de poing fulgurant
+04:11=Débarrassez-vous des hérissons ennemis en leur donnant des coups pour les éjecter |vers d'autres horizons ou en les jetant à l'eau. Ou bien préférez-vous|envoyer quelques tonneaux ou mines sur vos ennemis ?|Attaque : frappez un bon coup sur tout ce qui bouge.
+04:12=Allez au corps-à-corps pour utiliser toute la force presque mortelle de ces arts martiaux.|Attaque : lancez un coup de poing fulgurant
04:13=non-utilisé
04:14=Vous avez le vertige ? Prenez donc un parachute.|Il se déploiera lorsque|vous serez tombé trop loin|et épargnera le choc de la chute à votre hérisson.|Attaque: Dépliez le parachute
04:15=Appelez le 3615 BOMBE pour commander une frappe aérienne dévastatrice sur vos ennemis.|Gauche/Droite : Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible
@@ -416,36 +452,44 @@
04:17=vous avez besoin d'un abri ? de pousser quelques ennemis dans l'eau ? Utilisez le chalumeau| pour creuser un tunnel dans le sol, vous protéger ou faire de nouvelles victimes.|Attaque : Commencez/cessez de creuser.
04:18=Vous avez besoin de vous protéger davantage ou de passer un |obstacle infranchissable ? Placez quelques poutrelles|où vous voulez .|Gauche/Droite : Choisissez la poutrelle à placer|Curseur : Placez la poutrelle dans la bonne position
04:19=La téléportation utilisée au bon moment|peut être bien plus efficace|que la plupart des autres armes|car elle vous permet de sauver des hérissons de situations dangereuses|en quelques secondes.|Curseur : Choisissez la zone cible
-04:20=Vous permet de jouer la partie en cours avec|un hérisson différent.|Attaque : Activez le changement de hérisson
+04:20=Vous permet de changer de herisson|pendant votre tour.|Attaque : Activez le changement de hérisson
04:21=Tirez un missile balistique qui va|envoyer de multiples bombes au point d'impact.|Attaque : Tirez à pleine puissance
04:22=Ce n'est pas réservé à Indiana Jones ! Le fouet est une|arme bien utile dans plusieurs situations. Particulièrement|quand vous devez hisser quelqu'un en haut d'une falaise.|Attaque : Frappez tout ce qui bouge devant vous
-04:23=Si vous n'avez rien à perdre, voilà qui peut être |bien pratique. Sacrifiez votre hérisson en le lançant dans une direction| particulière. Il heurtera tout sur son passage avant |d'exploser finalement.|Attaque : Lancer l'attaque mortelle et dévastatrice
-04:24=Joyeux anniversaire ! Lancez ce gâteau, faites-le atterrir|tout près de vos ennemis et offrez-leur une fête explosive.|Le gâteau peut franchir presque tous les environnements mais|il se peut qu'il explose à mi-chemin.|Attaque : Lancez le gâteau ou bien faites-le s'arrêter et exploser
-04:25=Arme de séduction massive ! Utilisez le déguisement pour amener vos ennemis| à sauter vers votre hérisson (et donc vers un piège ou un trou).|Attaque : Utilisez le déguisement et tentez de séduire un autre hérisson
-04:26=Envoyez cette pastèque explosive à la tête de vos ennemis. Une fois le compte-à-rebours achevé, elle se désintégrera en de multiples fragments explosifs|1-5 : Lancer le compte à rebours|Attaque : Maintenez pour tirer avec plus de puissance
-04:27=Faites tomber un déluge de feu sur vos adversaires en utilisant|cet explosif dévastateur.|Ne vous tenez pas trop prêt|de l'impact car les flammes peuvent durer longtemps|Attaque : Maintenez pour tirer avec plus de puissance
-04:28=Peu après le lancement de ce missile, il va se mettre|à creuser le sol le plus résistant et explosera|une fois son détonateur amorcé ou une fois atteint l'air libre.|Attaque : Maintenez pour tirer avec plus de puissance
+04:23=Si vous n'avez rien à perdre, voilà qui peut être |bien pratique. Sacrifiez votre hérisson en le lançant dans une direction| particulière. Il heurtera tout sur son passage avant |d'exploser.|Attaque : Lancer l'attaque mortelle et dévastatrice
+04:24=Joyeux anniversaire ! Lancez ce gâteau, et déposez-le|tout près de vos ennemis et offrez-leur une fête explosive.|Le gâteau peut franchir presque tous les environnements mais|il se peut qu'il explose à mi-chemin ou apès votre cible.|Attaque : Lancez le gâteau ou bien faites-le s'arrêter et exploser
+04:25=Arme de séduction massive ! Utilisez le déguisement pour ammener vos ennemis| à sauter vers votre hérisson (et donc vers un piège ou un trou).|Attaque : Utilisez le déguisement et tentez de séduire un autre hérisson
+04:26=Envoyez cette pastèque explosive à la tête de vos ennemis. Une fois le compte-à-rebours achevé, elle se désintégrera en de multiples tranches explosives|1-5 : Régler le compte à rebours|Attaque : Maintenez pour tirer avec plus de puissance
+04:27=Faites tomber un déluge de feu sur vos adversaires en utilisant|cet explosif diabolique et dévastateur.|Ne vous tenez pas trop prêt|de l'impact car les flammes peuvent durer longtemps|Attaque : Maintenez pour tirer avec plus de puissance
+04:28=Peu après le lancement de cette roquette, elle va se mettre|à creuser le sol le plus résistant et explosera|une fois son compte à rebours ou une fois atteint l'air libre.|Attaque : Maintenez pour tirer avec plus de puissance
04:29=Ce n'est pas un jouet pour les enfants ! La mitrailleuse envoie|des centaines de petites balles colorées explosives.|Attaque : Tirez à pleine puissance|Haut/Bas : Continuez à tirer
-04:30=Appelez un avion pour larguer une puissante giclée de napalm.|En la menant correctement cette attaque peut éradiquer|des zones entières du paysage, et notamment les hérissons qui auraient la malchance de se trouver là.|Gauche/Droite: Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible
+04:30=Appelez un avion pour larguer une pluie de napalm soumise à la force du vent.|En la menant correctement cette attaque peut éradiquer|des zones entières du paysage, et notamment les hérissons qui auraient la malchance de se trouver là.|Gauche/Droite: Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible
04:31=L'avion télécommandé est l'arme idéale pour récolter des boites ou|attaquer des hérissons très éloignés. Une fois vos ennemis bombardés, vous pourrez lancer votre avion sur l'ennemi dans une explosion incendiaire.|Attaque : Lancez l'avion ou larguez des bombes|Saut longue distance : laissez les valkyries entrer dans la danse guerrière|Haut/Bas : Pilotez l'avion
-04:32=La fable gravité est plus efficace que n'importe quel régime ! Sautez|plus haut et franchissez de plus grandes distances ou bien faites voltiger vos ennemis |encore plus loin.|Attaque : Activez
+04:32=La faible gravité est plus efficace que n'importe quel régime ! Sautez|plus haut et franchissez de plus grandes distances ou bien faites voltiger vos ennemis |encore plus loin.|Attaque : Activez
04:33=Parfois vous avez besoin d'un petit coup de pouce supplémentaire|pour gérer les dégâts.|Attaque : Activez
04:34=Personne ne peut me toucher !|Attaque : Activez
04:35=Parfois le temps passe trop vite. Grappillez quelques secondes de plus pour terminer votre attaque|Attaque : Activez
-04:36=Eh bien, parfois vous ratez complètement la cible. Demandez plutôt de l'aide|à la technologie de pointe actuelle pour bien viser.|Attaque : Activez
+04:36=Eh bien, parfois vous ratez complètement la cible. Demandez plutôt de l'aide|à la technologie de pointe pour bien viser.|Attaque : Activez
04:37=Ne craignez pas la lumière du jour. Rafraichissez vous |d'un peu de sang en récupérant des points de vie sur les dégats faits aux ennemis.|Attaque : Activez
-04:38= Le fusil à lunette peut être une des armes les plus dévastatrices|de tout votre arsenal, toutefois il est totalement inefficace|en combat rapproché. Les dommages qu'il cause augmentent suivant|la distance de la cible.|Attaque : Tirez (deux fois)
-04:39=Volez vers d'autres secteurs de la carte en utilisant une soucoupe|volante. Ce moyen de transport, pas facile à dompter, vous|emportera vers presque tous les horizons du champ de bataille|Attaque : Activer|Haut/Gauche/Droite : Prenez de l'altitude et controllez votre direction
+04:38= Le sniper peut être une des armes les plus dévastatrices|de tout votre arsenal, toutefois il est totalement inefficace|en combat rapproché. Les dommages qu'il cause augmentent suivant|la distance de la cible.|Attaque : Tirez (deux fois)
+04:39=Volez vers d'autres secteurs de la carte en utilisant une soucoupe|volante. Ce moyen de transport, pas facile à dompter, vous|emportera vers presque tous les horizons du champ de bataille mais attention au carburant!|Attaque : Activer|Haut/Gauche/Droite : Prenez de l'altitude et controllez votre direction
04:40=Mettez le feu à un territoire en utilisant cette bouteille remplie|de liquide inflammable.|Attaque : maintenez pour tirer avec plus de force
04:41=Une arme naturelle qui peut suffire à remplacer la soucoupe volante.|Cet oiseau a du manger un vieux fromage pourri (du Limburger vous dites ?)|car ses oeufs ont comme quelquechose de ... toxique.|Le piaf peut donc transporter votre hérisson et balancer des œufs|sur vos ennemis !|Attaque : Activez et larguez des œufs|Haut/Gauche/Droite: voltigez vers une direction.
-04:42=Ce fusil à portails est capable de transporter instantanément hérissons,|tonneaux ou mines entre deux points du terrain. |Utilisez-le intelligemment et votre campagne sera un ... GRAND SUCCÈS !|Attaque : Crée un portail|Modificateur : Change la couleur du portail
+04:42=Ce générateur de portails est capable de transporter instantanément hérissons,|tonneaux ou mines entre deux points du terrain. |Utilisez-le intelligemment et votre campagne sera un ... GRAND SUCCÈS !|Attaque : Crée un portail|Modificateur : Change la couleur du portail
04:43=Faites de vos débuts musicaux un succès explosif !| Lâchez un piano depuis les cieux, mais attention ... si quelqu'un doit|jouer dessus, cela pourrait lui coûter la vie !|Curseur : Choix de la cible|F1-F9 : Jouer du piano
-04:44=Ce n'est pas juste un fromage, c'est une arme bactériologique !|Si il ne provoque que de faibles dommages, sa puissance se|trouve dans sa durée. Il empoisonnera tous les malchanceux|touchés par l'odeur et réduira leur vie à l'agonie !|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
-04:45=Tous ces cours de physique ont finalement payé,|lancez une onde Sinus dévastatrice sur vos ennemis.|Attention au recul ! (cette arme est incomplète)|Attaque : Activez
+04:44=Ce n'est pas juste un fromage, c'est une arme bactériologique !|Si il ne provoque que de faibles dommages, sa puissance se|trouve dans sa durée. Il empoisonnera tous les malchanceux|touchés par l'odeur et réduira leur vie à l'agonie !|1-5 : Réglez le minuteur de l'arme|Attaque : maintenez pour la lancer avec plus de force
+04:45=Tous ces cours de physique ont finalement payé,|lancez une onde Sinusoidale dévastatrice sur vos ennemis.|Attention au recul ! |Attaque : Activez
04:46=Aspergez vos ennemis de flammes liquides ou creusez vous un passage dans le sol.|Hardi !|Attaque : Activez|Haut/Bas : Continuez à viser|Droite/Gauche : Changer la puissance de tir
04:47=Doublez le fun avec deux mines, piquantes, furtives et collantes.|Provoquez une réaction en chaine dévastatrice et/ou défendez-vous ! |Attaque : maintenez pour tirer avec plus de force (deux fois)
04:48=Outre une bonne bosse, un bon coup de ce marteau enlèvera un tiers de la santé |du hérisson ennemi et l'enfoncera dans le sol ou dans l'eau comme un vulgaire asticot !|Attaque : Activez
04:49=Ressuscite vos amis oubliés six pieds sous terre ! Mais méfiez-vous, ressuscite également vos ennemis. |Attaque : Maintenez attaque pressée pour ressusciter lentement|Haut : Accélérer la résurrection
+04:50=Un ennemi se cache sous terre ?|Faîtes le sortir avec l'attaque perforante! |Un avion vous délivrera des roquettes perforantes qui creuseront vers le bas jusqu'a la fin du compte a rebours|ou du contact a l'air libre où elles exploseront|1-5 : Réglez le minuteur des roquettes|Gauche/Droite: Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible
+04:51=Gagnez un tir gratuit en lançant une boule de terre sur vos ennemis.|Elle poussera les herissons dans l'eau ou dans un trou afin d'utiliser votre deuxième arme pour l'achever|Attaque : Maintenez pour tirer avec plus de puissance
+04:52=UNUSED
+04:53=Faîtes un voyage dans le temps et l'espace en|laissant vos camarades se battre seuls!|Soyez préparé à revenir a n'importequel moment|ou lors d'une mort subite ou encore si tout vos camarades sont morts|Attention ne marche pas pendant la mort subite, si vous êtes le dernier survivant ou le roi.|Attaque : Activer
+04:54=Et voici le nouveau sol en bouteille! Ce spray produit des flocon collants sur lesquels vous pouvez marchez!|Construisez des pont,enterrez vos ennemis, scellez des tunnels.|Attention à ne pas en mettre sur vous!|Attaque : Activez|Haut/Bas : Continuez à viser|Droite/Gauche : Changer la puissance de tir
+04:55=Apportez l'ère glacière sur vos ennemis!|Avec le congélateur gelez les herissons rendez le sol glissant|et sauvez vous de la noyade en gelant l'eau!!|Attaque : Tirez
+04:56=Un couteau mais bien plus,|ce hachoir se lance sur les ennemis, bloc les passages et tunnels et|peut même servir d'appui pour gravir une montagne!|Mais attention à ne pas vous blesser.|Attaque : maintenez pour la lancer avec plus de force (deux fois)
+
; Game goal strings
05:00=Modes de jeu
@@ -461,7 +505,13 @@
05:10=Terrain indestructible : La plupart des armes sont incapables de modifier le terrain
05:11=Munitions partagées : Toutes les équipes de la même couleur partagent leurs munitions
05:12=Mines à retardement : Les mines exploseront après %1 seconde(s)
-05:13=Mines à retardement : Les mines explosent immédiatement
+05:13=Mines à retardement : Les mines explosent instentanément
05:14=Mines à retardement : Les mines exploseront dans un délai compris entre 0 et 3 secondes
05:15=Modificateur de dégâts : Toutes les armes feront %1% de dégâts
+05:16=La vie de tout les hérissons est restaurée à la fin du tour
+05:17=Les hérissons IA réapparaissent lorsqu'ils meurent
+05:18=Attaques illimitées
+05:19=Les armes sont réinitialisées à la fin du tour
+05:20=Les armes ne sont pas partagées entre les hérissons
+05:21=Relais: Des équipes sous la même couleur partagent le tour|Temps partagé: Dès que l'un à fini son action il passe la main à sont camarade pour qu'il agisse|avant la fin du tour
--- a/share/hedgewars/Data/Locale/hedgewars_ar.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ar.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -255,6 +255,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -354,6 +366,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -473,10 +489,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
@@ -492,6 +504,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -536,7 +552,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 انضم</translation>
+ <translation type="obsolete">%1 *** %2 انضم</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -730,6 +746,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -871,6 +898,14 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -982,6 +1017,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1954,6 +1993,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3055,119 +3098,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_bg.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_bg.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -254,6 +254,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -353,6 +365,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -472,10 +488,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished">Зареждане на начертана карта</translation>
</message>
@@ -491,6 +503,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -535,7 +551,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 се присъедини</translation>
+ <translation type="obsolete">%1 *** %2 се присъедини</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -729,6 +745,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -870,6 +897,14 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Запазване</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -981,6 +1016,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1969,6 +2008,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3071,119 +3114,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_cs.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_cs.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -260,6 +260,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -359,6 +371,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -478,10 +494,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished">Nahrát nakreslenou mapu</translation>
</message>
@@ -497,6 +509,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -541,7 +557,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 se připojil</translation>
+ <translation type="obsolete">%1 *** %2 se připojil</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -735,6 +751,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -882,6 +909,14 @@
<numerusform><b>%1</b> byl vystrašený a přeskočil tah <b>%2</b> krát.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Uložit</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -993,6 +1028,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1983,6 +2022,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3086,119 +3129,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_da.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_da.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
+ <source>Send us feedback!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -258,6 +258,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation>Mislykkedes at gemme typografiark til %1</translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -357,6 +369,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -476,10 +492,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished">Indlæs tegnet bane</translation>
</message>
@@ -495,6 +507,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -539,7 +555,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 har tilsluttet sig</translation>
+ <translation type="obsolete">%1 *** %2 har tilsluttet sig</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -733,6 +749,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -874,6 +901,14 @@
<numerusform><b>%1</b> blev bange og sprang over sin tur <b>%2</b> gange.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Gem</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -985,6 +1020,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1977,6 +2016,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3079,119 +3122,4 @@
<translation>DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_de.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_de.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
+ <source>Send us feedback!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -261,6 +261,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation>Style-Sheet konnte nich nach %1 gesichert werden</translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -360,6 +372,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -479,10 +495,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished">Gezeichnete Karte laden</translation>
</message>
@@ -498,6 +510,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -542,7 +558,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 ist beigetreten</translation>
+ <translation type="obsolete">%1 *** %2 ist beigetreten</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -736,6 +752,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -877,6 +904,14 @@
<numerusform><b>%1</b> hatte Angst und übersprang <b>%2</b> Runden.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Sichern</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -904,7 +939,7 @@
</message>
<message>
<source>Play a game across a network</source>
- <translation>Spiele über ein Netwerk</translation>
+ <translation>Spiele über ein Netzwerk</translation>
</message>
<message>
<source>Read about who is behind the Hedgewars Project</source>
@@ -988,6 +1023,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1982,6 +2021,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -2111,7 +2154,7 @@
</message>
<message>
<source>Netgame - Error</source>
- <translation>Netwerkspiel - Fehler</translation>
+ <translation>Netzwerkspiel - Fehler</translation>
</message>
<message>
<source>Please select a server from the list</source>
@@ -3112,119 +3155,4 @@
<translation>Steuerkreuz</translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_el.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_el.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -254,6 +254,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -355,6 +367,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -474,10 +490,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
@@ -493,6 +505,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -537,7 +553,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation type="unfinished">%1 *** %2 εισήλθε</translation>
+ <translation type="obsolete">%1 *** %2 εισήλθε</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -731,6 +747,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Eraser</source>
@@ -872,6 +899,14 @@
<numerusform>Ο <b>%1</b> φοβήθηκε και παραχώρησε τη σειρά του <b>%2</b> φορές.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -983,6 +1018,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1971,6 +2010,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3073,119 +3116,4 @@
<translation type="unfinished">DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_en.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_en.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -254,6 +254,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -353,6 +365,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -472,10 +488,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
@@ -491,6 +503,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -535,7 +551,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 has joined</translation>
+ <translation type="obsolete">%1 *** %2 has joined</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -729,6 +745,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -870,6 +897,14 @@
<numerusform><b>%1</b> was scared and skipped turn <b>%2</b> times.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -981,6 +1016,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1953,6 +1992,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3055,119 +3098,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_es.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_es.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
+ <source>Send us feedback!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -258,6 +258,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -357,6 +369,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -476,10 +492,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished">Cargar mapa</translation>
</message>
@@ -495,6 +507,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -539,7 +555,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 ha entrado</translation>
+ <translation type="obsolete">%1 *** %2 ha entrado</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -733,6 +749,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -874,6 +901,14 @@
<numerusform><b>%1</b> tenía demasiado miedo y pasó <b>%2</b> turnos.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Guardar</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -985,6 +1020,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1973,6 +2012,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3075,119 +3118,4 @@
<translation>DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_fi.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_fi.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -254,6 +254,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -353,6 +365,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -472,10 +488,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
@@ -491,6 +503,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -535,7 +551,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 liittyi</translation>
+ <translation type="obsolete">%1 *** %2 liittyi</translation>
</message>
<message>
<source>%1 *** %2 has left</source>
@@ -729,6 +745,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -870,6 +897,14 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -981,6 +1016,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1969,6 +2008,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3071,119 +3114,4 @@
<translation>Hiiri: Vasen nappi</translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_fr.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_fr.ts Tue Jun 04 22:28:12 2013 +0200
@@ -5,14 +5,14 @@
<name>About</name>
<message>
<source>Unknown Compiler</source>
- <translation type="unfinished"></translation>
+ <translation>Compilateur inconnu</translation>
</message>
</context>
<context>
<name>AbstractPage</name>
<message>
<source>Go back</source>
- <translation type="unfinished"></translation>
+ <translation>Retour</translation>
</message>
</context>
<context>
@@ -30,88 +30,100 @@
<name>BanDialog</name>
<message>
<source>IP</source>
- <translation type="unfinished">IP</translation>
+ <translation>IP</translation>
</message>
<message>
<source>Nick</source>
- <translation type="unfinished"></translation>
+ <translation>Pseudo</translation>
</message>
<message>
<source>IP/Nick</source>
- <translation type="unfinished"></translation>
+ <translation>IP/Pseudo</translation>
</message>
<message>
<source>Reason</source>
- <translation type="unfinished"></translation>
+ <translation>Raison</translation>
</message>
<message>
<source>Duration</source>
- <translation type="unfinished"></translation>
+ <translation>Durée</translation>
</message>
<message>
<source>Ok</source>
- <translation type="unfinished"></translation>
+ <translation>Ok</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Annuler</translation>
+ <translation>Annuler</translation>
</message>
<message>
<source>you know why</source>
- <translation type="unfinished"></translation>
+ <translation>Tu sait très bien pourquoi</translation>
</message>
<message>
<source>Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Attention</translation>
</message>
<message>
<source>Please, specify %1</source>
- <translation type="unfinished"></translation>
+ <translation>Veuillez spécifier %1</translation>
</message>
<message>
<source>nickname</source>
- <translation type="unfinished"></translation>
+ <translation>Pseudo</translation>
</message>
<message>
<source>permanent</source>
- <translation type="unfinished"></translation>
+ <translation>Permanent</translation>
</message>
</context>
<context>
<name>DataManager</name>
<message>
<source>Use Default</source>
- <translation type="unfinished"></translation>
+ <translation>Par défaut</translation>
</message>
</context>
<context>
<name>FeedbackDialog</name>
<message>
<source>View</source>
- <translation type="unfinished"></translation>
+ <translation>Voir</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Annuler</translation>
+ <translation>Annuler</translation>
</message>
<message>
<source>Send Feedback</source>
- <translation type="unfinished"></translation>
+ <translation>Envoyez</translation>
</message>
<message>
<source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Nous avons besoin de votre avis!</translation>
</message>
<message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
- <translation type="unfinished"></translation>
+ <translation>Toutes suggestions, idées ou rapport de bug sont les bienvenus</translation>
</message>
<message>
<source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Si vous trouvez un bug, vous pouvez vérifier si il est déjà connu ici (anglais): </translation>
</message>
<message>
<source>Your email address is optional, but we may want to contact you.</source>
+ <translation type="obsolete">Votre adresse email est optionelle, mais il est possible que nous essayons de vous contacter.</translation>
+ </message>
+ <message>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -137,121 +149,136 @@
</message>
<message>
<source>Edit schemes</source>
- <translation>Éditer les paramètres</translation>
+ <translation>Éditer les règles</translation>
</message>
<message>
<source>Game scheme will auto-select a weapon</source>
- <translation type="unfinished"></translation>
+ <translation>La règle choisis va choisir automatiquement les armes</translation>
</message>
<message>
<source>Map</source>
- <translation type="unfinished">Carte</translation>
+ <translation>Carte</translation>
</message>
<message>
<source>Game options</source>
- <translation type="unfinished"></translation>
+ <translation>Option de jeu</translation>
</message>
</context>
<context>
<name>HWApplication</name>
<message numerus="yes">
<source>%1 minutes</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 minute</numerusform>
+ <numerusform>%1 minutes</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hour</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 heure</numerusform>
+ <numerusform>%1 heures</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hours</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 heure</numerusform>
+ <numerusform>%1 heures</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 day</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 jour</numerusform>
+ <numerusform>%1 jours</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 days</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 jour</numerusform>
+ <numerusform>%1 jours</numerusform>
</translation>
</message>
<message>
<source>Scheme '%1' not supported</source>
- <translation type="unfinished"></translation>
+ <translation>Règle incomprise</translation>
</message>
<message>
<source>Cannot create directory %1</source>
- <translation type="unfinished">Impossible de créer le dossier %1</translation>
+ <translation>Impossible de créer le dossier %1</translation>
</message>
<message>
<source>Failed to open data directory:
%1
Please check your installation!</source>
- <translation type="unfinished"></translation>
+ <translation>Impossible de trouver les fichiers:
+%1
+
+Veuillez verifier que votre jeu est installé correctement!</translation>
</message>
</context>
<context>
<name>HWAskQuitDialog</name>
<message>
<source>Do you really want to quit?</source>
- <translation type="unfinished"></translation>
+ <translation>Êtes-vous sûr de vouloir quitter ?</translation>
</message>
</context>
<context>
<name>HWChatWidget</name>
<message>
<source>%1 has been removed from your ignore list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 a été retiré de votre liste noire</translation>
</message>
<message>
<source>%1 has been added to your ignore list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 a été ajouté à votre liste noire</translation>
</message>
<message>
<source>%1 has been removed from your friends list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 a été retiré de votre liste d'amis</translation>
</message>
<message>
<source>%1 has been added to your friends list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 a été ajouté à votre liste d'amis</translation>
</message>
<message>
<source>Stylesheet imported from %1</source>
- <translation type="unfinished"></translation>
+ <translation>Feuille de style (Stylesheet) importée de %1</translation>
</message>
<message>
<source>Enter %1 if you want to use the current StyleSheet in future, enter %2 to reset!</source>
- <translation type="unfinished"></translation>
+ <translation>Entrez %1 si vous voulez utiliser cette Feuille de style (Stylesheet) à l'avenir, entrez %2 pour rétablir l'ancienne apparence!</translation>
</message>
<message>
<source>Couldn't read %1</source>
- <translation type="unfinished"></translation>
+ <translation>Impossible de lire %1</translation>
</message>
<message>
<source>StyleSheet discarded</source>
- <translation type="unfinished"></translation>
+ <translation>Feuille de style (Stylesheet) effacée</translation>
</message>
<message>
<source>StyleSheet saved to %1</source>
- <translation type="unfinished"></translation>
+ <translation>Feuille de style (Stylesheet) enregistrée dans %1</translation>
</message>
<message>
<source>Failed to save StyleSheet to %1</source>
+ <translation>Impossible d'enregistrer la feuille de style (Stylesheet) dans %1</translation>
+ </message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -259,7 +286,7 @@
<name>HWForm</name>
<message>
<source>Cannot save record to file %1</source>
- <translation>Impossible de sauvegarder la partie dans le fichier %1</translation>
+ <translation>Impossible de sauvegarder l'enregistrement dans le fichier %1</translation>
</message>
<message>
<source>DefaultTeam</source>
@@ -268,7 +295,7 @@
<message>
<source>Hedgewars Demo File</source>
<comment>File Types</comment>
- <translation>Fichier de démonstration d'Hedgewars</translation>
+ <translation>Fichier de demo d'Hedgewars</translation>
</message>
<message>
<source>Hedgewars Save File</source>
@@ -277,36 +304,37 @@
</message>
<message>
<source>Demo name</source>
- <translation type="unfinished"></translation>
+ <translation>Nom de la Demo</translation>
</message>
<message>
<source>Demo name:</source>
- <translation type="unfinished"></translation>
+ <translation>Nom de la Demo:</translation>
</message>
<message>
<source>Game aborted</source>
- <translation type="unfinished"></translation>
+ <translation>Abandon de la partie</translation>
</message>
<message>
<source>Nickname</source>
- <translation type="unfinished">Pseudo</translation>
+ <translation>Pseudo</translation>
</message>
<message>
<source>No nickname supplied.</source>
- <translation type="unfinished"></translation>
+ <translation>Aucun pseudo renseigné.</translation>
</message>
<message>
<source>Someone already uses your nickname %1 on the server.
Please pick another nickname:</source>
- <translation type="unfinished"></translation>
+ <translation>Quelqu'un utilise déjà le pseudo %1 sur le serveur
+Veuillez choisir un autre pseudo:</translation>
</message>
<message>
<source>%1's Team</source>
- <translation type="unfinished"></translation>
+ <translation>Equipe de %1</translation>
</message>
<message>
<source>Hedgewars - Nick registered</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Pseudo enregistré</translation>
</message>
<message>
<source>This nick is registered, and you haven't specified a password.
@@ -314,43 +342,56 @@
If this nick isn't yours, please register your own nick at www.hedgewars.org
Password:</source>
- <translation type="unfinished"></translation>
+ <translation>Ce pseudo est enregistré, vous n'avez spécifié aucun mot de passe.
+
+Si ce pseudo n'est pas le votre, veuillez enregistrer votre propre pseudo sur www.hedgewars.org
+
+Mot de passe:</translation>
</message>
<message>
<source>Your nickname is not registered.
To prevent someone else from using it,
please register it at www.hedgewars.org</source>
- <translation type="unfinished"></translation>
+ <translation>Votre pseudo n'est pas enregistré.
+Pour éviter que d'autre joueurs l'utilisent,
+veuillez l'enregistrer sur www.hedgewars.org</translation>
</message>
<message>
<source>
Your password wasn't saved either.</source>
- <translation type="unfinished"></translation>
+ <translation>
+
+Votre mot de passe non plus n'a pas été sauvegardé.</translation>
</message>
<message>
<source>Hedgewars - Empty nickname</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Pseudo vide</translation>
</message>
<message>
<source>Hedgewars - Wrong password</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Mauvais mot de passe</translation>
</message>
<message>
<source>You entered a wrong password.</source>
- <translation type="unfinished"></translation>
+ <translation>Le mot de passe que vous avez entré est incorrect</translation>
</message>
<message>
<source>Try Again</source>
- <translation type="unfinished"></translation>
+ <translation>Réessayez</translation>
</message>
<message>
<source>Hedgewars - Connection error</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Erreur de connexion</translation>
</message>
<message>
<source>You reconnected too fast.
Please wait a few seconds and try again.</source>
+ <translation>Vous vous êtes reconnecté trop rapidement.
+Attendez quelques secondes et réessayez.</translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -362,7 +403,7 @@
</message>
<message>
<source>Cannot open demofile %1</source>
- <translation>Erreur lors de l'ouverture du fichier de démonstration %1</translation>
+ <translation>Erreur lors de l'ouverture du fichier de demo %1</translation>
</message>
</context>
<context>
@@ -405,90 +446,94 @@
</message>
<message>
<source>Map type:</source>
- <translation type="unfinished"></translation>
+ <translation>Type de carte:</translation>
</message>
<message>
<source>Image map</source>
- <translation type="unfinished"></translation>
+ <translation>Image de la carte</translation>
</message>
<message>
<source>Mission map</source>
- <translation type="unfinished"></translation>
+ <translation>Carte avec mission</translation>
</message>
<message>
<source>Hand-drawn</source>
- <translation type="unfinished"></translation>
+ <translation>Dessinée</translation>
</message>
<message>
<source>Randomly generated</source>
- <translation type="unfinished"></translation>
+ <translation>Générée aléatoirement</translation>
</message>
<message>
<source>Random maze</source>
- <translation type="unfinished"></translation>
+ <translation>Labyrinthe généré aléatoirement</translation>
</message>
<message>
<source>Random</source>
- <translation type="unfinished">Aléatoire</translation>
+ <translation>Aléatoire</translation>
</message>
<message>
<source>Map preview:</source>
- <translation type="unfinished"></translation>
+ <translation>Apperçu de la carte</translation>
</message>
<message>
<source>Load map drawing</source>
- <translation type="unfinished"></translation>
+ <translation>Charger un dessin</translation>
</message>
<message>
<source>Edit map drawing</source>
- <translation type="unfinished"></translation>
+ <translation>Editer un dessin</translation>
</message>
<message>
<source>Small islands</source>
- <translation type="unfinished"></translation>
+ <translation>Petites îles</translation>
</message>
<message>
<source>Medium islands</source>
- <translation type="unfinished"></translation>
+ <translation>Moyennes îles</translation>
</message>
<message>
<source>Large islands</source>
- <translation type="unfinished"></translation>
+ <translation>Grandes îles</translation>
</message>
<message>
<source>Map size:</source>
- <translation type="unfinished"></translation>
+ <translation>Taille de la carte</translation>
</message>
<message>
<source>Maze style:</source>
- <translation type="unfinished"></translation>
+ <translation>Style du labyrinthe</translation>
</message>
<message>
<source>Mission:</source>
- <translation type="unfinished"></translation>
+ <translation>Mission</translation>
</message>
<message>
<source>Map:</source>
- <translation type="unfinished"></translation>
+ <translation>Carte:</translation>
</message>
<message>
<source>Theme: </source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Theme: </translation>
</message>
<message>
<source>Load drawn map</source>
- <translation type="unfinished">Charger une carte dessinée</translation>
+ <translation>Charger une carte dessinée</translation>
</message>
<message>
<source>Drawn Maps</source>
- <translation type="unfinished"></translation>
+ <translation>Cartes dessinées</translation>
</message>
<message>
<source>All files</source>
- <translation type="unfinished"></translation>
+ <translation>Tout les fichiers</translation>
</message>
<message>
<source>Large tunnels</source>
+ <translation>Grands tunnels</translation>
+ </message>
+ <message>
+ <source>Theme: %1</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -523,7 +568,7 @@
</message>
<message>
<source>Room destroyed</source>
- <translation>Salon fermé</translation>
+ <translation>Room fermée</translation>
</message>
<message>
<source>You got kicked</source>
@@ -531,11 +576,11 @@
</message>
<message>
<source>%1 *** %2 has joined the room</source>
- <translation>%1 *** %2 a rejoint la salle</translation>
+ <translation>%1 *** %2 a rejoint la room</translation>
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 vient d'arriver</translation>
+ <translation type="obsolete">%1 *** %2 vient d'arriver</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -547,84 +592,86 @@
</message>
<message>
<source>User quit</source>
- <translation type="unfinished"></translation>
+ <translation>S'est déconnecté</translation>
</message>
<message>
<source>Remote host has closed connection</source>
- <translation type="unfinished"></translation>
+ <translation>Le serveur à fermé la connection</translation>
</message>
<message>
<source>The server is too old. Disconnecting now.</source>
- <translation type="unfinished"></translation>
+ <translation>La version du serveur n'est pas à jour. Déconnexion.</translation>
</message>
</context>
<context>
<name>HWPasswordDialog</name>
<message>
<source>Login</source>
- <translation type="unfinished"></translation>
+ <translation>Connexion</translation>
</message>
<message>
<source>To connect to the server, please log in.
If you don't have an account on www.hedgewars.org,
just enter your nickname.</source>
- <translation type="unfinished"></translation>
+ <translation>Pour vous connecter sur le serveur, veuillez entrer vos identifiants.
+Si vous n'avez pas de compte sur www.hedgewars.org,
+entrez juste votre pseudo.</translation>
</message>
<message>
<source>Nickname:</source>
- <translation type="unfinished"></translation>
+ <translation>Pseudo</translation>
</message>
<message>
<source>Password:</source>
- <translation type="unfinished"></translation>
+ <translation>Mot de passe</translation>
</message>
</context>
<context>
<name>HWUploadVideoDialog</name>
<message>
<source>Upload video</source>
- <translation type="unfinished"></translation>
+ <translation>Importer une vidéo </translation>
</message>
<message>
<source>Upload</source>
- <translation type="unfinished"></translation>
+ <translation>Importer</translation>
</message>
</context>
<context>
<name>HatButton</name>
<message>
<source>Change hat (%1)</source>
- <translation type="unfinished"></translation>
+ <translation>Changer de chapeau (%1)</translation>
</message>
</context>
<context>
<name>HatPrompt</name>
<message>
<source>Cancel</source>
- <translation type="unfinished">Annuler</translation>
+ <translation>Annuler</translation>
</message>
<message>
<source>Use selected hat</source>
- <translation type="unfinished"></translation>
+ <translation>Mettre le chapeau sélectionné</translation>
</message>
<message>
<source>Search for a hat:</source>
- <translation type="unfinished"></translation>
+ <translation>Chercher un chapeau:</translation>
</message>
</context>
<context>
<name>KB</name>
<message>
<source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It's recommended to update your freetype lib.</source>
- <translation>SDL_ttf a retourné une erreur pendant l'affichage du texte, cela est sûrement causé par le bogue de freetype2. Il est recommandé de mettre à jour la librairie freetype.</translation>
+ <translation>SDL_ttf a renvoyé une erreur pendant l'affichage du texte, cela est sûrement causé par le bug de freetype2. Il est recommandé de mettre à jour la librairie freetype.</translation>
</message>
</context>
<context>
<name>KeyBinder</name>
<message>
<source>Category</source>
- <translation type="unfinished"></translation>
+ <translation>Catégorie</translation>
</message>
</context>
<context>
@@ -632,30 +679,30 @@
<message>
<source>Duration: %1m %2s
</source>
- <translation type="unfinished"></translation>
+ <translation>Durée: %1m %2s</translation>
</message>
<message>
<source>Video: %1x%2, </source>
- <translation type="unfinished"></translation>
+ <translation>Vidéo: %1x%2</translation>
</message>
<message>
<source>%1 fps, </source>
- <translation type="unfinished"></translation>
+ <translation>%1 fps, </translation>
</message>
<message>
<source>Audio: </source>
- <translation type="unfinished"></translation>
+ <translation>Audio: </translation>
</message>
<message>
<source>unknown</source>
- <translation type="unfinished"></translation>
+ <translation>inconnu</translation>
</message>
</context>
<context>
<name>MapModel</name>
<message>
<source>No description available.</source>
- <translation type="unfinished"></translation>
+ <translation>Aucune description disponible.</translation>
</message>
</context>
<context>
@@ -690,42 +737,53 @@
</message>
<message>
<source>General</source>
- <translation type="unfinished">Général</translation>
+ <translation>Général</translation>
</message>
<message>
<source>Bans</source>
- <translation type="unfinished"></translation>
+ <translation>Bans</translation>
</message>
<message>
<source>IP/Nick</source>
- <translation type="unfinished"></translation>
+ <translation>IP/Pseudo</translation>
</message>
<message>
<source>Expiration</source>
- <translation type="unfinished"></translation>
+ <translation>Durée</translation>
</message>
<message>
<source>Reason</source>
- <translation type="unfinished"></translation>
+ <translation>Raison</translation>
</message>
<message>
<source>Refresh</source>
- <translation type="unfinished"></translation>
+ <translation>Rafraichir</translation>
</message>
<message>
<source>Add</source>
- <translation type="unfinished"></translation>
+ <translation>Ajouter</translation>
</message>
<message>
<source>Remove</source>
- <translation type="unfinished"></translation>
+ <translation>Supprimer</translation>
</message>
</context>
<context>
<name>PageConnecting</name>
<message>
<source>Connecting...</source>
- <translation>En connexion...</translation>
+ <translation>Connexion...</translation>
+ </message>
+</context>
+<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -756,15 +814,15 @@
</message>
<message>
<source>Drawn Maps</source>
- <translation type="unfinished"></translation>
+ <translation>Cartes dessinées</translation>
</message>
<message>
<source>All files</source>
- <translation type="unfinished"></translation>
+ <translation>Tout les fichiers</translation>
</message>
<message>
<source>Eraser</source>
- <translation type="unfinished"></translation>
+ <translation>Gomme</translation>
</message>
</context>
<context>
@@ -775,39 +833,39 @@
</message>
<message>
<source>Select an action to choose a custom key bind for this team</source>
- <translation type="unfinished"></translation>
+ <translation>Choisissez une action afin d'y attribuer une touche pour cette équipe</translation>
</message>
<message>
<source>Use my default</source>
- <translation type="unfinished"></translation>
+ <translation>Touche par defaut</translation>
</message>
<message>
<source>Reset all binds</source>
- <translation type="unfinished"></translation>
+ <translation>Reinitialiser toutes les touches</translation>
</message>
<message>
<source>Custom Controls</source>
- <translation type="unfinished"></translation>
+ <translation>Préferences de commandes</translation>
</message>
<message>
<source>Hat</source>
- <translation type="unfinished">Chapeau</translation>
+ <translation>Chapeau</translation>
</message>
<message>
<source>Name</source>
- <translation type="unfinished">Nom</translation>
+ <translation>Nom</translation>
</message>
<message>
<source>This hedgehog's name</source>
- <translation type="unfinished"></translation>
+ <translation>Le nom de ce herisson</translation>
</message>
<message>
<source>Randomize this hedgehog's name</source>
- <translation type="unfinished"></translation>
+ <translation>Choisis un nom aléatoire pour ce herisson</translation>
</message>
<message>
<source>Random Team</source>
- <translation type="unfinished">Équipes aléatoires</translation>
+ <translation>Équipes aléatoires</translation>
</message>
</context>
<context>
@@ -818,7 +876,7 @@
</message>
<message>
<source>Health graph</source>
- <translation>Courbes de santé-</translation>
+ <translation>Courbes de santé:</translation>
</message>
<message>
<source>Ranking</source>
@@ -844,8 +902,8 @@
</message>
<message numerus="yes">
<source>(%1 kill)</source>
- <translation type="unfinished">
- <numerusform>(%1 tue)</numerusform>
+ <translation>
+ <numerusform>(%1 tué)</numerusform>
<numerusform></numerusform>
</translation>
</message>
@@ -870,78 +928,86 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Enregistrer</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
<message>
<source>In game...</source>
- <translation type="unfinished"></translation>
+ <translation>En jeu...</translation>
</message>
</context>
<context>
<name>PageInfo</name>
<message>
<source>Open the snapshot folder</source>
- <translation type="unfinished"></translation>
+ <translation>Ouvrir le dossier de captures d'écran</translation>
</message>
</context>
<context>
<name>PageMain</name>
<message>
<source>Downloadable Content</source>
- <translation type="unfinished"></translation>
+ <translation>Contenu téléchargeable</translation>
</message>
<message>
<source>Play a game on a single computer</source>
- <translation type="unfinished"></translation>
+ <translation>Jouer une partie en solo</translation>
</message>
<message>
<source>Play a game across a network</source>
- <translation type="unfinished"></translation>
+ <translation>Jouer en ligne</translation>
</message>
<message>
<source>Read about who is behind the Hedgewars Project</source>
- <translation type="unfinished"></translation>
+ <translation>A propos de ceux qui sont derrière le projet Hedgewars</translation>
</message>
<message>
<source>Leave a feedback here reporting issues, suggesting features or just saying how you like Hedgewars</source>
- <translation type="unfinished"></translation>
+ <translation>Donnez-nous votre avis, signalez un bug, déposez vos idées, ou dites nous juste à quel point vous aimez Hedgewars</translation>
</message>
<message>
<source>Access the user created content downloadable from our website</source>
- <translation type="unfinished"></translation>
+ <translation>Acces au contenu téléchargeable créé par les joueurs, disponible sur notre site</translation>
</message>
<message>
<source>Exit game</source>
- <translation type="unfinished"></translation>
+ <translation>Quitter le jeu</translation>
</message>
<message>
<source>Manage videos recorded from game</source>
- <translation type="unfinished"></translation>
+ <translation>Gérer les vidéos de parties enregistrées</translation>
</message>
<message>
<source>Edit game preferences</source>
- <translation type="unfinished"></translation>
+ <translation>Editer vos préférences de jeu</translation>
</message>
<message>
<source>Play a game across a local area network</source>
- <translation type="unfinished"></translation>
+ <translation>Jouer une partie en réseau local</translation>
</message>
<message>
<source>Play a game on an official server</source>
- <translation type="unfinished"></translation>
+ <translation>Jouer une partie sur un serveur officiel</translation>
</message>
<message>
<source>Feedback</source>
- <translation type="unfinished"></translation>
+ <translation>Contact</translation>
</message>
<message>
<source>Play local network game</source>
- <translation type="unfinished"></translation>
+ <translation>Jouer en réseau local</translation>
</message>
<message>
<source>Play official network game</source>
- <translation type="unfinished"></translation>
+ <translation>Jouer sur le réseau officiel</translation>
</message>
</context>
<context>
@@ -952,7 +1018,7 @@
</message>
<message>
<source>Edit game preferences</source>
- <translation type="unfinished"></translation>
+ <translation>Editer les préférences de jeu</translation>
</message>
</context>
<context>
@@ -963,26 +1029,30 @@
</message>
<message>
<source>Edit game preferences</source>
- <translation type="unfinished"></translation>
+ <translation>Editer les préférences de jeu</translation>
</message>
<message>
<source>Start</source>
- <translation type="unfinished">Démarrer</translation>
+ <translation>Démarrer</translation>
</message>
<message>
<source>Update</source>
- <translation type="unfinished">Mise à jour</translation>
+ <translation>Mise à jour</translation>
</message>
<message>
<source>Room controls</source>
- <translation type="unfinished"></translation>
+ <translation>Contrôle de la room</translation>
</message>
</context>
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation>Clique pour plus de détails</translation>
+ </message>
+ <message>
<source>Insert your address here</source>
- <translation type="unfinished"></translation>
+ <translation>Insert ton adresse ici</translation>
</message>
</context>
<context>
@@ -1001,19 +1071,19 @@
</message>
<message>
<source>You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
- <translation>Vous ne pouvez pas modifier d'équipe depuis la sélection d'équipes. Retournez au manu principal pour ajouter, modifier ou supprimer des équipes.</translation>
+ <translation>Vous ne pouvez pas modifier d'équipe depuis la sélection d'équipes. Retournez au menu principal pour ajouter, modifier ou supprimer des équipes.</translation>
</message>
<message>
<source>New scheme</source>
- <translation>Nouveaux paramètres</translation>
+ <translation>Nouvelle règle</translation>
</message>
<message>
<source>Edit scheme</source>
- <translation>Modifier paramètres</translation>
+ <translation>Modifier règles</translation>
</message>
<message>
<source>Delete scheme</source>
- <translation>Supprimer paramètres</translation>
+ <translation>Supprimer règles</translation>
</message>
<message>
<source>New weapon set</source>
@@ -1029,11 +1099,11 @@
</message>
<message>
<source>Advanced</source>
- <translation type="unfinished">Avancé</translation>
+ <translation>Avancé</translation>
</message>
<message>
<source>Reset to default colors</source>
- <translation type="unfinished"></translation>
+ <translation>Remettre les couleurs de départ</translation>
</message>
<message>
<source>Proxy host</source>
@@ -1053,7 +1123,7 @@
</message>
<message>
<source>No proxy</source>
- <translation type="unfinished"></translation>
+ <translation>Pas de proxy</translation>
</message>
<message>
<source>Socks5 proxy</source>
@@ -1069,71 +1139,71 @@
</message>
<message>
<source>Select an action to change what key controls it</source>
- <translation type="unfinished"></translation>
+ <translation>Choisissez une action afin d'y attribuer une touche</translation>
</message>
<message>
<source>Reset to default</source>
- <translation type="unfinished"></translation>
+ <translation>Par défaut</translation>
</message>
<message>
<source>Reset all binds</source>
- <translation type="unfinished"></translation>
+ <translation>Remettre les touches par défaut</translation>
</message>
<message>
<source>Game</source>
- <translation type="unfinished"></translation>
+ <translation>Jeu</translation>
</message>
<message>
<source>Graphics</source>
- <translation type="unfinished"></translation>
+ <translation>Graphismes</translation>
</message>
<message>
<source>Audio</source>
- <translation type="unfinished"></translation>
+ <translation>Audio</translation>
</message>
<message>
<source>Controls</source>
- <translation type="unfinished"></translation>
+ <translation>Contrôles</translation>
</message>
<message>
<source>Video Recording</source>
- <translation type="unfinished"></translation>
+ <translation>Enregistrement vidéo</translation>
</message>
<message>
<source>Network</source>
- <translation type="unfinished"></translation>
+ <translation>Réseau</translation>
</message>
<message>
<source>Teams</source>
- <translation type="unfinished">Équipes</translation>
+ <translation>Équipes</translation>
</message>
<message>
<source>Schemes</source>
- <translation type="unfinished"></translation>
+ <translation>Règles</translation>
</message>
<message>
<source>Weapons</source>
- <translation type="unfinished">Armes</translation>
+ <translation>Armes</translation>
</message>
<message>
<source>Frontend</source>
- <translation type="unfinished"></translation>
+ <translation>Interface</translation>
</message>
<message>
<source>Custom colors</source>
- <translation type="unfinished"></translation>
+ <translation>Couleurs personalisées</translation>
</message>
<message>
<source>Game audio</source>
- <translation type="unfinished"></translation>
+ <translation>Son du jeu</translation>
</message>
<message>
<source>Frontend audio</source>
- <translation type="unfinished"></translation>
+ <translation>Son de l'interface</translation>
</message>
<message>
<source>Account</source>
- <translation type="unfinished"></translation>
+ <translation>Compte</translation>
</message>
<message>
<source>Proxy settings</source>
@@ -1141,26 +1211,26 @@
</message>
<message>
<source>Miscellaneous</source>
- <translation type="unfinished"></translation>
+ <translation>Autre</translation>
</message>
<message>
<source>Updates</source>
- <translation type="unfinished"></translation>
+ <translation>Mises à jour</translation>
</message>
<message>
<source>Check for updates</source>
- <translation type="unfinished"></translation>
+ <translation>Vérifier les mises à jours</translation>
</message>
<message>
<source>Video recording options</source>
- <translation type="unfinished"></translation>
+ <translation>Option d'enregistrement vidéo</translation>
</message>
</context>
<context>
<name>PagePlayDemo</name>
<message>
<source>Rename dialog</source>
- <translation>Boîte de dialogue de renommage</translation>
+ <translation>Renommer</translation>
</message>
<message>
<source>Enter new file name:</source>
@@ -1183,7 +1253,7 @@
</message>
<message>
<source>Room Name:</source>
- <translation type="obsolete">Nom du salon:</translation>
+ <translation type="obsolete">Nom de la room: </translation>
</message>
<message>
<source>Rules:</source>
@@ -1203,34 +1273,34 @@
</message>
<message numerus="yes">
<source>%1 players online</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 joueur en ligne</numerusform>
+ <numerusform>%1 joueurs en ligne</numerusform>
</translation>
</message>
<message>
<source>Search for a room:</source>
- <translation type="unfinished"></translation>
+ <translation>Chercher une room</translation>
</message>
<message>
<source>Create room</source>
- <translation type="unfinished"></translation>
+ <translation>Créer une room</translation>
</message>
<message>
<source>Join room</source>
- <translation type="unfinished"></translation>
+ <translation>Rejoindre</translation>
</message>
<message>
<source>Room state</source>
- <translation type="unfinished"></translation>
+ <translation>Etat de la room</translation>
</message>
<message>
<source>Clear filters</source>
- <translation type="unfinished"></translation>
+ <translation>Enlever les filtres</translation>
</message>
<message>
<source>Open server administration page</source>
- <translation type="unfinished"></translation>
+ <translation>Ouvre la page d'administration du serveur</translation>
</message>
</context>
<context>
@@ -1289,7 +1359,7 @@
</message>
<message>
<source>Order of play is random instead of in room order.</source>
- <translation>Ordre de jeu aléatoire plutôt que par ordre dans la salle.</translation>
+ <translation>Ordre de jeu aléatoire plutôt que par ordre dans la room.</translation>
</message>
<message>
<source>Play with a King. If he dies, your side dies.</source>
@@ -1309,7 +1379,7 @@
</message>
<message>
<source>Disable land objects when generating random maps.</source>
- <translation type="unfinished">Désactiver les objets de terrain lorsque des cartes aléatoires sont générées.</translation>
+ <translation>Désactiver les objets de terrain lorsque des cartes aléatoires sont générées.</translation>
</message>
<message>
<source>AI respawns on death.</source>
@@ -1345,7 +1415,7 @@
</message>
<message>
<source>Teams in each clan take successive turns sharing their turn time.</source>
- <translation type="unfinished"></translation>
+ <translation>Les équipes de chaque clans jouent successivement, partageant le temps de leur tour.</translation>
</message>
<message>
<source>Add an indestructible border around the terrain</source>
@@ -1353,7 +1423,7 @@
</message>
<message>
<source>Add an indestructible border along the bottom</source>
- <translation type="unfinished"></translation>
+ <translation>Ajouter une bordure indestructible en bas</translation>
</message>
</context>
<context>
@@ -1379,86 +1449,86 @@
<name>PageSinglePlayer</name>
<message>
<source>Play a quick game against the computer with random settings</source>
- <translation type="unfinished"></translation>
+ <translation>Jouer une partie rapide contre l'ordinateur avec des règles aléatoires</translation>
</message>
<message>
<source>Play a hotseat game against your friends, or AI teams</source>
- <translation type="unfinished"></translation>
+ <translation>Jouer une partie sur cet ordinateur contre vos amis ou l'IA</translation>
</message>
<message>
<source>Campaign Mode</source>
- <translation type="unfinished"></translation>
+ <translation>Campagne</translation>
</message>
<message>
<source>Practice your skills in a range of training missions</source>
- <translation type="unfinished"></translation>
+ <translation>Améliorez vos competences avec un large choix de missions</translation>
</message>
<message>
<source>Watch recorded demos</source>
- <translation type="unfinished"></translation>
+ <translation>Regarder les parties enregistrées</translation>
</message>
<message>
<source>Load a previously saved game</source>
- <translation type="unfinished"></translation>
+ <translation>Charger une partie</translation>
</message>
</context>
<context>
<name>PageTraining</name>
<message>
<source>No description available</source>
- <translation type="unfinished"></translation>
+ <translation>Aucune description disponible</translation>
</message>
<message>
<source>Select a mission!</source>
- <translation type="unfinished"></translation>
+ <translation>Choisis une mission!</translation>
</message>
<message>
<source>Pick the mission or training to play</source>
- <translation type="unfinished"></translation>
+ <translation>Choisis une mission ou entraine-toi à jouer</translation>
</message>
<message>
<source>Start fighting</source>
- <translation type="unfinished"></translation>
+ <translation>Commencer le combat</translation>
</message>
</context>
<context>
<name>PageVideos</name>
<message>
<source>Name</source>
- <translation type="unfinished">Nom</translation>
+ <translation>Nom</translation>
</message>
<message>
<source>Size</source>
- <translation type="unfinished"></translation>
+ <translation>Taille</translation>
</message>
<message numerus="yes">
<source>%1 bytes</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 octet</numerusform>
+ <numerusform>%1 octets</numerusform>
</translation>
</message>
<message>
<source>(in progress...)</source>
- <translation type="unfinished"></translation>
+ <translation>(en cours ...)</translation>
</message>
<message>
<source>encoding</source>
- <translation type="unfinished"></translation>
+ <translation>encodage</translation>
</message>
<message>
<source>uploading</source>
- <translation type="unfinished"></translation>
+ <translation>importation</translation>
</message>
<message>
<source>Date: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>Date: %1</translation>
</message>
<message>
<source>Size: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>Taille: %1</translation>
</message>
</context>
<context>
@@ -1509,15 +1579,15 @@
</message>
<message>
<source>Restrict Unregistered Players Join</source>
- <translation type="unfinished"></translation>
+ <translation>Bloquer l'acces au joueurs non-enregistrés</translation>
</message>
<message>
<source>Show games in lobby</source>
- <translation type="unfinished"></translation>
+ <translation>Parties en attentes</translation>
</message>
<message>
<source>Show games in-progress</source>
- <translation type="unfinished"></translation>
+ <translation>Parties en cours</translation>
</message>
</context>
<context>
@@ -1544,55 +1614,55 @@
</message>
<message>
<source>Show ammo menu tooltips</source>
- <translation type="unfinished">Montrer les astuces du menu des armes.</translation>
+ <translation>Montrer les astuces du menu des armes.</translation>
</message>
<message>
<source>Save password</source>
- <translation type="unfinished"></translation>
+ <translation>Enregistrer le mot de passe</translation>
</message>
<message>
<source>Save account name and password</source>
- <translation type="unfinished"></translation>
+ <translation>Enregistrer le nom de compte et mot de passe</translation>
</message>
<message>
<source>Video is private</source>
- <translation type="unfinished"></translation>
+ <translation>Vidéo privée</translation>
</message>
<message>
<source>Record audio</source>
- <translation type="unfinished"></translation>
+ <translation>Enregistrer le son</translation>
</message>
<message>
<source>Use game resolution</source>
- <translation type="unfinished"></translation>
+ <translation>Utiliser la résolution du jeu</translation>
</message>
<message>
<source>Visual effects</source>
- <translation type="unfinished"></translation>
+ <translation>Effets visuels</translation>
</message>
<message>
<source>Sound</source>
- <translation type="unfinished"></translation>
+ <translation>Son</translation>
</message>
<message>
<source>In-game sound effects</source>
- <translation type="unfinished"></translation>
+ <translation>Effets sonores en jeu</translation>
</message>
<message>
<source>Music</source>
- <translation type="unfinished"></translation>
+ <translation>Musique</translation>
</message>
<message>
<source>In-game music</source>
- <translation type="unfinished"></translation>
+ <translation>Musique en jeu</translation>
</message>
<message>
<source>Frontend sound effects</source>
- <translation type="unfinished"></translation>
+ <translation>Effet sonores de l'interface</translation>
</message>
<message>
<source>Frontend music</source>
- <translation type="unfinished"></translation>
+ <translation>Musique de l'interface</translation>
</message>
</context>
<context>
@@ -1607,15 +1677,15 @@
</message>
<message>
<source>(System default)</source>
- <translation type="unfinished">Réglage du système</translation>
+ <translation>Automatique (systeme)</translation>
</message>
<message>
<source>Community</source>
- <translation type="unfinished">Communauté</translation>
+ <translation>Communauté</translation>
</message>
<message>
<source>Any</source>
- <translation type="unfinished">Aucun</translation>
+ <translation>Tout</translation>
</message>
<message>
<source>In lobby</source>
@@ -1627,63 +1697,63 @@
</message>
<message>
<source>Disabled</source>
- <translation type="unfinished"></translation>
+ <translation>Aucun</translation>
</message>
<message>
<source>Red/Cyan</source>
- <translation type="unfinished">Rouge/Cyan</translation>
+ <translation>Rouge/Cyan</translation>
</message>
<message>
<source>Cyan/Red</source>
- <translation type="unfinished">Cyan/Rouge</translation>
+ <translation>Cyan/Rouge</translation>
</message>
<message>
<source>Red/Blue</source>
- <translation type="unfinished">Rouge/Bleu</translation>
+ <translation>Rouge/Bleu</translation>
</message>
<message>
<source>Blue/Red</source>
- <translation type="unfinished">Bleu/Rouge</translation>
+ <translation>Bleu/Rouge</translation>
</message>
<message>
<source>Red/Green</source>
- <translation type="unfinished">Rouge/Vert</translation>
+ <translation>Rouge/Vert</translation>
</message>
<message>
<source>Green/Red</source>
- <translation type="unfinished">Vert/Rouge</translation>
+ <translation>Vert/Rouge</translation>
</message>
<message>
<source>Side-by-side</source>
- <translation type="unfinished"></translation>
+ <translation>Côte-à-côte</translation>
</message>
<message>
<source>Top-Bottom</source>
- <translation type="unfinished"></translation>
+ <translation>Dessus-dessous</translation>
</message>
<message>
<source>Red/Cyan grayscale</source>
- <translation type="unfinished"></translation>
+ <translation>Rouge/Cyan niveaux de gris</translation>
</message>
<message>
<source>Cyan/Red grayscale</source>
- <translation type="unfinished"></translation>
+ <translation>Cyan/Rouge niveaux de gris</translation>
</message>
<message>
<source>Red/Blue grayscale</source>
- <translation type="unfinished"></translation>
+ <translation>Rouge/Bleu niveaux de gris</translation>
</message>
<message>
<source>Blue/Red grayscale</source>
- <translation type="unfinished"></translation>
+ <translation>Bleu/Rouge niveaux de gris</translation>
</message>
<message>
<source>Red/Green grayscale</source>
- <translation type="unfinished"></translation>
+ <translation>Rouge/Vert niveaux de gris</translation>
</message>
<message>
<source>Green/Red grayscale</source>
- <translation type="unfinished"></translation>
+ <translation>Vert/Rouge niveaux de gris</translation>
</message>
</context>
<context>
@@ -1718,11 +1788,11 @@
</message>
<message>
<source>Videos</source>
- <translation type="unfinished"></translation>
+ <translation>Vidéos</translation>
</message>
<message>
<source>Description</source>
- <translation type="unfinished"></translation>
+ <translation>Description</translation>
</message>
</context>
<context>
@@ -1789,7 +1859,7 @@
</message>
<message>
<source>Scheme Name:</source>
- <translation>Nom de la Configuration:</translation>
+ <translation>Nom de la règle:</translation>
</message>
<message>
<source>Crate Drops</source>
@@ -1805,7 +1875,7 @@
</message>
<message>
<source>Type</source>
- <translation type="unfinished">Type</translation>
+ <translation>Type</translation>
</message>
<message>
<source>Grave</source>
@@ -1821,7 +1891,7 @@
</message>
<message>
<source>Locale</source>
- <translation type="unfinished">Langue</translation>
+ <translation>Langue</translation>
</message>
<message>
<source>Explosives</source>
@@ -1829,7 +1899,7 @@
</message>
<message>
<source>Tip: </source>
- <translation>Conseil : </translation>
+ <translation>Conseil: </translation>
</message>
<message>
<source>Quality</source>
@@ -1853,120 +1923,126 @@
</message>
<message>
<source>% Rope Length</source>
- <translation>% longueur de la Corde Ninja</translation>
+ <translation>% longueur du grappin</translation>
</message>
<message>
<source>Stereo rendering</source>
- <translation type="unfinished">Rendu stéréo</translation>
+ <translation>Rendu stéréo</translation>
</message>
<message>
<source>Style</source>
- <translation type="unfinished"></translation>
+ <translation>Style</translation>
</message>
<message>
<source>Scheme</source>
- <translation type="unfinished"></translation>
+ <translation>Règles</translation>
</message>
<message>
<source>% Get Away Time</source>
- <translation type="unfinished"></translation>
+ <translation>% de temp de fuite</translation>
</message>
<message>
<source>There are videos that are currently being processed.
Exiting now will abort them.
Do you really want to quit?</source>
- <translation type="unfinished"></translation>
+ <translation>Il y a des vidéos actuellement en cours de traitement.
+Quitter maintenant arretera le processus
+Voulez-vous vraiment quitter?</translation>
</message>
<message>
<source>Please provide either the YouTube account name or the email address associated with the Google Account.</source>
- <translation type="unfinished"></translation>
+ <translation>Veuillez indiquer votre email et mot de passe de conexion à youtube</translation>
</message>
<message>
<source>Account name (or email): </source>
- <translation type="unfinished"></translation>
+ <translation>Email du compte: </translation>
</message>
<message>
<source>Password: </source>
- <translation type="unfinished"></translation>
+ <translation>Mot de passe: </translation>
</message>
<message>
<source>Video title: </source>
- <translation type="unfinished"></translation>
+ <translation>Titre de la video: </translation>
</message>
<message>
<source>Video description: </source>
- <translation type="unfinished"></translation>
+ <translation>Description de la vidéo: </translation>
</message>
<message>
<source>Tags (comma separated): </source>
- <translation type="unfinished"></translation>
+ <translation>Tags (séparer avec une virgule): </translation>
</message>
<message>
<source>Description</source>
- <translation type="unfinished"></translation>
+ <translation>Description</translation>
</message>
<message>
<source>Nickname</source>
- <translation type="unfinished">Pseudo</translation>
+ <translation>Pseudo</translation>
</message>
<message>
<source>Format</source>
- <translation type="unfinished"></translation>
+ <translation>Format</translation>
</message>
<message>
<source>Audio codec</source>
- <translation type="unfinished"></translation>
+ <translation>Codecs audio</translation>
</message>
<message>
<source>Video codec</source>
- <translation type="unfinished"></translation>
+ <translation>Codecs vidéo</translation>
</message>
<message>
<source>Framerate</source>
- <translation type="unfinished"></translation>
+ <translation>Images/secondes</translation>
</message>
<message>
<source>Bitrate (Kbps)</source>
- <translation type="unfinished"></translation>
+ <translation>Bitrate(Kb/s)</translation>
</message>
<message>
<source>This development build is 'work in progress' and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
- <translation type="unfinished"></translation>
+ <translation>Cette version est "en cours de développement" il est possible qu'elle ne soit pas compatible avec les autres versions du jeu, des parties peuvent ne pas fonctionner ou être incompletes!</translation>
</message>
<message>
<source>Fullscreen</source>
- <translation type="unfinished">Plein écran</translation>
+ <translation>Plein écran</translation>
</message>
<message>
<source>Fullscreen Resolution</source>
- <translation type="unfinished"></translation>
+ <translation>Résolution en plein écran</translation>
</message>
<message>
<source>Windowed Resolution</source>
- <translation type="unfinished"></translation>
+ <translation>Résolution fenêtrée</translation>
</message>
<message>
<source>Your Email</source>
- <translation type="unfinished"></translation>
+ <translation>Votre email</translation>
</message>
<message>
<source>Summary</source>
- <translation type="unfinished"></translation>
+ <translation>Sujet</translation>
</message>
<message>
<source>Send system information</source>
- <translation type="unfinished"></translation>
+ <translation>Envoyer des informations système</translation>
</message>
<message>
<source>Type the security code:</source>
- <translation type="unfinished"></translation>
+ <translation>Entrez le code de sécurité</translation>
</message>
<message>
<source>Revision</source>
- <translation type="unfinished"></translation>
+ <translation>Version de développement</translation>
</message>
<message>
<source>This program is distributed under the %1</source>
+ <translation>Ce programme est distribué par %1</translation>
+ </message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1978,11 +2054,11 @@
</message>
<message>
<source>hedgehog %1</source>
- <translation type="unfinished"></translation>
+ <translation>Hérisson %1</translation>
</message>
<message>
<source>anonymous</source>
- <translation type="unfinished"></translation>
+ <translation>anonyme</translation>
</message>
</context>
<context>
@@ -1993,7 +2069,7 @@
</message>
<message>
<source>-r%1 (%2)</source>
- <translation type="unfinished"></translation>
+ <translation>-r%1 (%2)</translation>
</message>
</context>
<context>
@@ -2013,48 +2089,50 @@
<message>
<source>Error while authenticating at google.com:
</source>
- <translation type="unfinished"></translation>
+ <translation>Erreur lors de l'authentification à google.com:
+</translation>
</message>
<message>
<source>Login or password is incorrect</source>
- <translation type="unfinished"></translation>
+ <translation>Identifiant ou mot de passe incorrecte</translation>
</message>
<message>
<source>Error while sending metadata to youtube.com:
</source>
- <translation type="unfinished"></translation>
+ <translation>Erreur lors de l'envoi des metadata à youtube.com:
+</translation>
</message>
<message>
<source>Teams - Are you sure?</source>
- <translation type="unfinished"></translation>
+ <translation>Equipes - Etes-vous sûr?</translation>
</message>
<message>
<source>Do you really want to delete the team '%1'?</source>
- <translation type="unfinished"></translation>
+ <translation>Voulez-vous vraiment supprimer l'équipe "%1"</translation>
</message>
<message>
<source>Cannot delete default scheme '%1'!</source>
- <translation type="unfinished"></translation>
+ <translation>Impossible de retirer la règle par défaut "%1"</translation>
</message>
<message>
<source>Please select a record from the list</source>
- <translation type="unfinished"></translation>
+ <translation>Veuillez choisir un enregistrement dans la liste</translation>
</message>
<message>
<source>Unable to start server</source>
- <translation type="unfinished"></translation>
+ <translation>Impossible de démarrer le serveur</translation>
</message>
<message>
<source>Hedgewars - Error</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Erreur</translation>
</message>
<message>
<source>Hedgewars - Success</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Succès</translation>
</message>
<message>
<source>All file associations have been set</source>
- <translation type="unfinished"></translation>
+ <translation>Les associations d'extensions de fichiers ont été effectuées</translation>
</message>
<message>
<source>Cannot create directory %1</source>
@@ -2066,156 +2144,158 @@
</message>
<message>
<source>Video upload - Error</source>
- <translation type="unfinished"></translation>
+ <translation>Importation de vidéo - Erreur</translation>
</message>
<message>
<source>Netgame - Error</source>
- <translation type="unfinished"></translation>
+ <translation>Partie en ligne - Erreur</translation>
</message>
<message>
<source>Please select a server from the list</source>
- <translation type="unfinished"></translation>
+ <translation>Veuillez choisir un serveur dans la liste</translation>
</message>
<message>
<source>Please enter room name</source>
- <translation type="unfinished">Veuillez saisir le nom du salon</translation>
+ <translation>Veuillez saisir le nom d'une room</translation>
</message>
<message>
<source>Record Play - Error</source>
- <translation type="unfinished"></translation>
+ <translation>Jouer l'enregistrement - Erreur</translation>
</message>
<message>
<source>Please select record from the list</source>
- <translation type="unfinished">Veuillez sélectionner une partie dans cette liste</translation>
+ <translation>Veuillez choisir un enregistrement dans liste</translation>
</message>
<message>
<source>Cannot rename to </source>
- <translation type="unfinished"></translation>
+ <translation>Impossible de renommer en </translation>
</message>
<message>
<source>Cannot delete file </source>
- <translation type="unfinished"></translation>
+ <translation>Impossible de supprimer le fichier </translation>
</message>
<message>
<source>Room Name - Error</source>
- <translation type="unfinished"></translation>
+ <translation>Nom de la room - Erreur</translation>
</message>
<message>
<source>Please select room from the list</source>
- <translation type="unfinished">Veuillez sélectionner un salon dans la liste</translation>
+ <translation>Veuillez choisir une room dans la liste</translation>
</message>
<message>
<source>Room Name - Are you sure?</source>
- <translation type="unfinished"></translation>
+ <translation>Nom de la room - Etes-vous sûr?</translation>
</message>
<message>
<source>The game you are trying to join has started.
Do you still want to join the room?</source>
- <translation type="unfinished">Vous voulez rejoindre une partie qui a déjà commencée. Voulez-vous tout de même rejoindre la salle ?</translation>
+ <translation>Vous essayez de rejoindre une partie qui a déjà commencée.
+Voulez-vous tout de même rejoindre la room?</translation>
</message>
<message>
<source>Schemes - Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Règles - Attention</translation>
</message>
<message>
<source>Schemes - Are you sure?</source>
- <translation type="unfinished"></translation>
+ <translation>Règles - Etes-vous sûr?</translation>
</message>
<message>
<source>Do you really want to delete the game scheme '%1'?</source>
- <translation type="unfinished"></translation>
+ <translation>Etes-vous sûr de vouloir supprimer cette règle : "%1" ?</translation>
</message>
<message>
<source>Videos - Are you sure?</source>
- <translation type="unfinished"></translation>
+ <translation>Vidéos - Etes-vous sûr?</translation>
</message>
<message>
<source>Do you really want to delete the video '%1'?</source>
- <translation type="unfinished"></translation>
+ <translation>Etes-vous sûr de vouloir supprimer cette vidéo : "%1" ?</translation>
</message>
<message numerus="yes">
<source>Do you really want to remove %1 file(s)?</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>Etes-vous sûr de vouloir supprimer %1 fichier?</numerusform>
+ <numerusform>Etes-vous sûr de vouloir supprimer %1 fichiers?</numerusform>
</translation>
</message>
<message>
<source>Do you really want to cancel uploading %1?</source>
- <translation type="unfinished"></translation>
+ <translation>Voulez-vous arreter l'importation de %1?</translation>
</message>
<message>
<source>File error</source>
- <translation type="unfinished"></translation>
+ <translation>Erreur de fichier</translation>
</message>
<message>
<source>Cannot open '%1' for writing</source>
- <translation type="unfinished"></translation>
+ <translation>Impossible d'écrire le fichier %1</translation>
</message>
<message>
<source>Cannot open '%1' for reading</source>
- <translation type="unfinished"></translation>
+ <translation>Impossible de lire le fichier %1</translation>
</message>
<message>
<source>Cannot use the ammo '%1'!</source>
- <translation type="unfinished"></translation>
+ <translation>Impossible d'utiliser cette arme : "%1"</translation>
</message>
<message>
<source>Weapons - Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Armes - Attention</translation>
</message>
<message>
<source>Cannot overwrite default weapon set '%1'!</source>
- <translation type="unfinished"></translation>
+ <translation>Impossible de remplacer le set d'arme "%1"</translation>
</message>
<message>
<source>Cannot delete default weapon set '%1'!</source>
- <translation type="unfinished"></translation>
+ <translation>Impossible de supprimer le set d'arme par défaut "%1"</translation>
</message>
<message>
<source>Weapons - Are you sure?</source>
- <translation type="unfinished"></translation>
+ <translation>Armes - Etes-vous sûr?</translation>
</message>
<message>
<source>Do you really want to delete the weapon set '%1'?</source>
- <translation type="unfinished"></translation>
+ <translation>Etes-vous sûr de vouloir supprimer le set d'arme "%1"?</translation>
</message>
<message>
<source>Hedgewars - Nick not registered</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Pseudo non-enregistré</translation>
</message>
<message>
<source>System Information Preview</source>
- <translation type="unfinished"></translation>
+ <translation>Apreçu des informations système</translation>
</message>
<message>
<source>Failed to generate captcha</source>
- <translation type="unfinished"></translation>
+ <translation>Echec de la génération du Captcha</translation>
</message>
<message>
<source>Failed to download captcha</source>
- <translation type="unfinished"></translation>
+ <translation>Echec du téléchargement du Captcha</translation>
</message>
<message>
<source>Please fill out all fields. Email is optional.</source>
- <translation type="unfinished"></translation>
+ <translation>Veuillez remplir tout les champs. Email optionel.</translation>
</message>
<message>
<source>Hedgewars - Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Attention</translation>
</message>
<message>
<source>Hedgewars - Information</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Information</translation>
</message>
<message>
<source>Not all players are ready</source>
- <translation type="unfinished"></translation>
+ <translation>Les joueurs ne sont pas tous prêts</translation>
</message>
<message>
<source>Are you sure you want to start this game?
Not all players are ready.</source>
- <translation type="unfinished"></translation>
+ <translation>Etes-vous sûr de vouloir lancer cette partie?
+Les joueurs ne sont pas tous prêts.</translation>
</message>
</context>
<context>
@@ -2230,7 +2310,7 @@
</message>
<message>
<source>Go!</source>
- <translation>C'est parti !</translation>
+ <translation>C'est parti!</translation>
</message>
<message>
<source>Start</source>
@@ -2278,148 +2358,148 @@
</message>
<message>
<source>More info</source>
- <translation type="unfinished"></translation>
+ <translation>Plus d'info</translation>
</message>
<message>
<source>Set default options</source>
- <translation type="unfinished"></translation>
+ <translation>Mettre les options par défaut</translation>
</message>
<message>
<source>Open videos directory</source>
- <translation type="unfinished"></translation>
+ <translation>Ouvrir le répertoire Vidéos</translation>
</message>
<message>
<source>Play</source>
- <translation type="unfinished"></translation>
+ <translation>Jouer</translation>
</message>
<message>
<source>Upload to YouTube</source>
- <translation type="unfinished"></translation>
+ <translation>Importer vers Youtube</translation>
</message>
<message>
<source>Cancel uploading</source>
- <translation type="unfinished"></translation>
+ <translation>Annuler l'importation</translation>
</message>
<message>
<source>Restore default coding parameters</source>
- <translation type="unfinished"></translation>
+ <translation>Remettre les paramètres de codage par défaut</translation>
</message>
<message>
<source>Open the video directory in your system</source>
- <translation type="unfinished"></translation>
+ <translation>Ouvrir le répertoire vidéo dans votre système</translation>
</message>
<message>
<source>Play this video</source>
- <translation type="unfinished"></translation>
+ <translation>Lancer cette vidéo</translation>
</message>
<message>
<source>Delete this video</source>
- <translation type="unfinished"></translation>
+ <translation>Supprimer cette vidéo</translation>
</message>
<message>
<source>Upload this video to your Youtube account</source>
- <translation type="unfinished"></translation>
+ <translation>Importer cette vidéo sur votre compte Youtube</translation>
</message>
<message>
<source>Reset</source>
- <translation type="unfinished"></translation>
+ <translation>Réinitialiser</translation>
</message>
<message>
<source>Set the default server port for Hedgewars</source>
- <translation type="unfinished"></translation>
+ <translation>Mettre le port serveur par défaut pour Hedgewars</translation>
</message>
<message>
<source>Invite your friends to your server in just 1 click!</source>
- <translation type="unfinished"></translation>
+ <translation>Invitez vos amis sur votre serveur en 1 clique!</translation>
</message>
<message>
<source>Click to copy your unique server URL in your clipboard. Send this link to your friends ands and they will be able to join you.</source>
- <translation type="unfinished"></translation>
+ <translation>Cliquez pour copier votre URL serveur unique. Envoyez ce lien a vos amis et il pourront vous rejoindre.</translation>
</message>
<message>
<source>Start private server</source>
- <translation type="unfinished"></translation>
+ <translation>Démarrer un serveur privé</translation>
</message>
</context>
<context>
<name>RoomNamePrompt</name>
<message>
<source>Enter a name for your room.</source>
- <translation type="unfinished"></translation>
+ <translation>Entrez un nom pour votre room.</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Annuler</translation>
+ <translation>Annuler</translation>
</message>
<message>
<source>Create room</source>
- <translation type="unfinished"></translation>
+ <translation>Créer une room</translation>
</message>
</context>
<context>
<name>RoomsListModel</name>
<message>
<source>In progress</source>
- <translation type="unfinished">En cours</translation>
+ <translation>En cours</translation>
</message>
<message>
<source>Room Name</source>
- <translation type="unfinished">Nom de la salle</translation>
+ <translation>Nom de la room</translation>
</message>
<message>
<source>C</source>
- <translation type="unfinished">C</translation>
+ <translation>J</translation>
</message>
<message>
<source>T</source>
- <translation type="unfinished">É</translation>
+ <translation>É</translation>
</message>
<message>
<source>Owner</source>
- <translation type="unfinished">Propriétaire</translation>
+ <translation>Propriétaire</translation>
</message>
<message>
<source>Map</source>
- <translation type="unfinished">Carte</translation>
+ <translation>Carte</translation>
</message>
<message>
<source>Rules</source>
- <translation type="unfinished">Règles</translation>
+ <translation>Règles</translation>
</message>
<message>
<source>Weapons</source>
- <translation type="unfinished">Armes</translation>
+ <translation>Armes</translation>
</message>
<message>
<source>Random Map</source>
- <translation type="unfinished">Carte Aléatoire</translation>
+ <translation>Carte Aléatoire</translation>
</message>
<message>
<source>Random Maze</source>
- <translation type="unfinished">Labyrinthe aléatoire</translation>
+ <translation>Labyrinthe aléatoire</translation>
</message>
<message>
<source>Hand-drawn</source>
- <translation type="unfinished"></translation>
+ <translation>Dessinée</translation>
</message>
</context>
<context>
<name>SeedPrompt</name>
<message>
<source>The map seed is the basis for all random values generated by the game.</source>
- <translation type="unfinished"></translation>
+ <translation>Cette carte est la base pour toutes valeurs aléatoire générées par le jeu.</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Annuler</translation>
+ <translation>Annuler</translation>
</message>
<message>
<source>Set seed</source>
- <translation type="unfinished"></translation>
+ <translation>Générer une base (graine)</translation>
</message>
<message>
<source>Close</source>
- <translation type="unfinished"></translation>
+ <translation>Fermer</translation>
</message>
</context>
<context>
@@ -2453,41 +2533,41 @@
<name>TCPBase</name>
<message>
<source>Unable to start server at %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Impossible de démarrer un serveur sur %1.</translation>
</message>
<message>
<source>Unable to run engine at %1
Error code: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Impossible de lancer le jeu sur %1</translation>
</message>
</context>
<context>
<name>TeamSelWidget</name>
<message>
<source>At least two teams are required to play!</source>
- <translation type="unfinished"></translation>
+ <translation>Il doit y avoir deux équipes minimum pour jouer!</translation>
</message>
</context>
<context>
<name>TeamShowWidget</name>
<message>
<source>%1's team</source>
- <translation type="unfinished"></translation>
+ <translation>Equipe de %1</translation>
</message>
</context>
<context>
<name>ThemePrompt</name>
<message>
<source>Cancel</source>
- <translation type="unfinished">Annuler</translation>
+ <translation>Annuler</translation>
</message>
<message>
<source>Search for a theme:</source>
- <translation type="unfinished"></translation>
+ <translation>Chercher un thème</translation>
</message>
<message>
<source>Use selected theme</source>
- <translation type="unfinished"></translation>
+ <translation>Utiliser le thème séléctionné</translation>
</message>
</context>
<context>
@@ -2647,38 +2727,38 @@
</message>
<message>
<source>slot 10</source>
- <translation type="unfinished">slot 10</translation>
+ <translation>slot 10</translation>
</message>
<message>
<source>mute audio</source>
- <translation type="unfinished"></translation>
+ <translation>couper le son</translation>
</message>
<message>
<source>record</source>
- <translation type="unfinished"></translation>
+ <translation>enregistrer</translation>
</message>
<message>
<source>hedgehog info</source>
- <translation type="unfinished"></translation>
+ <translation>Info hérisson</translation>
</message>
</context>
<context>
<name>binds (categories)</name>
<message>
<source>Movement</source>
- <translation type="unfinished"></translation>
+ <translation>Mouvements</translation>
</message>
<message>
<source>Weapons</source>
- <translation type="unfinished">Armes</translation>
+ <translation>Armes</translation>
</message>
<message>
<source>Camera</source>
- <translation type="unfinished"></translation>
+ <translation>Caméra</translation>
</message>
<message>
<source>Miscellaneous</source>
- <translation type="unfinished"></translation>
+ <translation>Autre</translation>
</message>
</context>
<context>
@@ -2689,7 +2769,7 @@
</message>
<message>
<source>Fire your selected weapon or trigger an utility item:</source>
- <translation>Tirez avec l'arme sélectionnée et activez un objet utilitaire:</translation>
+ <translation>Tirez avec l'arme sélectionnée ou activez un objet:</translation>
</message>
<message>
<source>Pick a weapon or a target location under the cursor:</source>
@@ -2701,7 +2781,7 @@
</message>
<message>
<source>Pick a weapon or utility item:</source>
- <translation>Sélectionnez une arme ou un objet utilitaire:</translation>
+ <translation>Sélectionnez une arme ou un objet:</translation>
</message>
<message>
<source>Set the timer on bombs and timed weapons:</source>
@@ -2725,7 +2805,7 @@
</message>
<message>
<source>Pause, continue or leave your game:</source>
- <translation>Stoppez, continuez ou quittez votre partie:</translation>
+ <translation>Pause, continuez ou quittez votre partie:</translation>
</message>
<message>
<source>Modify the game's volume while playing:</source>
@@ -2745,11 +2825,11 @@
</message>
<message>
<source>Record video:</source>
- <translation type="unfinished"></translation>
+ <translation>Enregistrer la vidéo</translation>
</message>
<message>
<source>Hedgehog movement</source>
- <translation type="unfinished"></translation>
+ <translation>Déplacement du herisson</translation>
</message>
</context>
<context>
@@ -2768,7 +2848,7 @@
</message>
<message>
<source>Hat</source>
- <translation type="unfinished">Chapeau</translation>
+ <translation>Chapeau</translation>
</message>
<message>
<source>(Left)</source>
@@ -2808,11 +2888,11 @@
</message>
<message>
<source>Backspace</source>
- <translation>Backspace</translation>
+ <translation>Retour/Effacer</translation>
</message>
<message>
<source>Tab</source>
- <translation>Tabulation</translation>
+ <translation>Tab</translation>
</message>
<message>
<source>Return</source>
@@ -3074,116 +3154,112 @@
<context>
<name>server</name>
<message>
+ <source>Authentication failed</source>
+ <translation type="obsolete">Echec d'authentification</translation>
+ </message>
+ <message>
+ <source>60 seconds cooldown after kick</source>
+ <translation type="obsolete">Bannis pour 60 sec après un kick</translation>
+ </message>
+ <message>
+ <source>kicked</source>
+ <translation type="obsolete">Exclus (kick)</translation>
+ </message>
+ <message>
+ <source>Ping timeout</source>
+ <translation type="obsolete">Met trop de temps à répondre</translation>
+ </message>
+ <message>
+ <source>bye</source>
+ <translation type="obsolete">Aurevoir</translation>
+ </message>
+ <message>
+ <source>Empty config entry</source>
+ <translation type="obsolete">Configuration vide</translation>
+ </message>
+ <message>
<source>Not room master</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Vous n'êtes pas le propriétaire de la room</translation>
</message>
<message>
<source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Info hérisson corrompus</translation>
</message>
<message>
<source>too many teams</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">trop d'équipes</translation>
</message>
<message>
<source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">trop de hérissons</translation>
</message>
<message>
<source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Il y a déja une équipe avec le même nom dans la liste</translation>
</message>
<message>
<source>round in progress</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">La partie est en cour</translation>
</message>
<message>
<source>restricted</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Ajout interdis</translation>
</message>
<message>
<source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">REMOVE_TEAM: aucune équipe de ce nom</translation>
</message>
<message>
<source>Not team owner!</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Vous n'êtes pas le propriétaire de cette équipe!</translation>
</message>
<message>
<source>Less than two clans!</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Il faut 2 clans minimum!</translation>
</message>
<message>
<source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Ce nom de room existe déjà</translation>
+ </message>
+ <message>
+ <source>Illegal room name</source>
+ <translation type="obsolete">Nom de room invalide</translation>
+ </message>
+ <message>
+ <source>No such room</source>
+ <translation type="obsolete">Cette room n'existe pas</translation>
+ </message>
+ <message>
+ <source>Joining restricted</source>
+ <translation type="obsolete">Accès interdis</translation>
+ </message>
+ <message>
+ <source>Registered users only</source>
+ <translation type="obsolete">Accès réservé aux utilisateurs enregistré</translation>
+ </message>
+ <message>
+ <source>You are banned in this room</source>
+ <translation type="obsolete">Vous avez été bannis de cette room</translation>
</message>
<message>
<source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Pseudo déjà choisis</translation>
</message>
<message>
<source>Illegal nickname</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Pseudo invalide</translation>
</message>
<message>
<source>Protocol already known</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Protocole déjà connu</translation>
</message>
<message>
<source>Bad number</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Mauvais numéro</translation>
</message>
<message>
<source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Ce pseudo est actuellement utilisé sur le serveur</translation>
</message>
</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_gl.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_gl.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -254,6 +254,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -353,6 +365,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -472,10 +488,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
@@ -491,6 +503,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -535,7 +551,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 uniuse</translation>
+ <translation type="obsolete">%1 *** %2 uniuse</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -729,6 +745,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Eraser</source>
@@ -870,6 +897,14 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -981,6 +1016,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1957,6 +1996,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3058,119 +3101,4 @@
<translation>Mando</translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_hu.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_hu.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -248,6 +248,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -347,6 +359,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -466,10 +482,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
@@ -485,6 +497,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -529,7 +545,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 csatlakozott</translation>
+ <translation type="obsolete">%1 *** %2 csatlakozott</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -723,6 +739,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -858,6 +885,14 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -969,6 +1004,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1943,6 +1982,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3043,119 +3086,4 @@
<translation>DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_it.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_it.ts Tue Jun 04 22:28:12 2013 +0200
@@ -100,18 +100,30 @@
</message>
<message>
<source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Per favore, inviaci un commento!</translation>
</message>
<message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
- <translation type="unfinished"></translation>
+ <translation>Siamo sempre felici di ricevere suggerimenti, idee o segnalazioni di bachi.</translation>
</message>
<message>
<source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Se torvi u nbaco, puoi vedere se è già conosciuto qui (in inglese): </translation>
</message>
<message>
<source>Your email address is optional, but we may want to contact you.</source>
+ <translation type="obsolete">Il tuo indirizzo di posta elettronica è opzionale, ma potremmo volerti contattare.</translation>
+ </message>
+ <message>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -199,14 +211,14 @@
</message>
<message>
<source>Cannot create directory %1</source>
- <translation type="unfinished">Impossibile creare la directory %1</translation>
+ <translation>Impossibile creare la directory %1</translation>
</message>
<message>
<source>Failed to open data directory:
%1
Please check your installation!</source>
- <translation type="unfinished">Impossibile creare la directory dati:
+ <translation>Impossibile creare la directory dati:
%1
Per favore controlla l'installazione!</translation>
@@ -261,6 +273,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation>Impossibile salvare la StyleSheet in %1! Errore interno!</translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -370,6 +394,10 @@
<translation>Ti sei ricollegato troppo velocemente.
Per favore aspetta qualche secondo e prova di nuovo.</translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -490,7 +518,7 @@
</message>
<message>
<source>Theme: </source>
- <translation>Tema: </translation>
+ <translation type="obsolete">Tema: </translation>
</message>
<message>
<source>Load drawn map</source>
@@ -508,6 +536,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -552,7 +584,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 è entrato</translation>
+ <translation type="obsolete">%1 *** %2 è entrato</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -586,15 +618,18 @@
If you don't have an account on www.hedgewars.org,
just enter your nickname.</source>
- <translation type="unfinished"></translation>
+ <translation>Per collegarsi al server, per favore accedi.
+
+Se non possiedi un account su www.hedgewars.org,
+inserisci solo il tuo soprannome.</translation>
</message>
<message>
<source>Nickname:</source>
- <translation type="unfinished"></translation>
+ <translation>Soprannome:</translation>
</message>
<message>
<source>Password:</source>
- <translation type="unfinished"></translation>
+ <translation>Password:</translation>
</message>
</context>
<context>
@@ -746,6 +781,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -887,6 +933,14 @@
<numerusform><b>%1</b> aveva paura e ha passato il turno <b>%2</b> volte.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Salva</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -954,11 +1008,11 @@
</message>
<message>
<source>Play local network game</source>
- <translation type="unfinished"></translation>
+ <translation>Gioca una partita in rete locale</translation>
</message>
<message>
<source>Play official network game</source>
- <translation type="unfinished"></translation>
+ <translation>Gioca una partita sul server ufficiale</translation>
</message>
</context>
<context>
@@ -998,8 +1052,12 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
- <translation type="unfinished"></translation>
+ <translation>Inserisci il tuo indirizzo</translation>
</message>
</context>
<context>
@@ -1994,6 +2052,10 @@
<source>This program is distributed under the %1</source>
<translation>Questo programma è distribuito secondo i termini di %1</translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -2379,23 +2441,23 @@
</message>
<message>
<source>Reset</source>
- <translation type="unfinished"></translation>
+ <translation>Ripristina</translation>
</message>
<message>
<source>Set the default server port for Hedgewars</source>
- <translation type="unfinished"></translation>
+ <translation>Seleziona la porta di configurazione del server di Hedgewars</translation>
</message>
<message>
<source>Invite your friends to your server in just 1 click!</source>
- <translation type="unfinished"></translation>
+ <translation>Invita i tuoi amici sul tuo serve con 1 solo clic!</translation>
</message>
<message>
<source>Click to copy your unique server URL in your clipboard. Send this link to your friends ands and they will be able to join you.</source>
- <translation type="unfinished"></translation>
+ <translation>Clicca per copiare il tuo URL univoco del serve negli appunti. Invia questo collegamento ai tuoi amici e potranno unirsi a te.</translation>
</message>
<message>
<source>Start private server</source>
- <translation type="unfinished"></translation>
+ <translation>Avvia un server privato</translation>
</message>
</context>
<context>
@@ -2510,19 +2572,20 @@
<name>TCPBase</name>
<message>
<source>Unable to start server at %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Impossibile avviare il server a %1.</translation>
</message>
<message>
<source>Unable to run engine at %1
Error code: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Impossibile eseguire il motore a %1
+Codice di errore: %2</translation>
</message>
</context>
<context>
<name>TeamSelWidget</name>
<message>
<source>At least two teams are required to play!</source>
- <translation type="unfinished"></translation>
+ <translation>Servono almeno due squadre per giocare!</translation>
</message>
</context>
<context>
@@ -3131,115 +3194,111 @@
<name>server</name>
<message>
<source>Not room master</source>
- <translation>Non proprietario della stanza</translation>
+ <translation type="obsolete">Non proprietario della stanza</translation>
</message>
<message>
<source>Corrupted hedgehogs info</source>
- <translation>Informazioni ricci corrotte</translation>
+ <translation type="obsolete">Informazioni ricci corrotte</translation>
</message>
<message>
<source>too many teams</source>
- <translation>troppe squadre</translation>
+ <translation type="obsolete">troppe squadre</translation>
</message>
<message>
<source>too many hedgehogs</source>
- <translation>troppi ricci</translation>
+ <translation type="obsolete">troppi ricci</translation>
</message>
<message>
<source>There's already a team with same name in the list</source>
- <translation>C'è già una quadra collo stesso nome in lista</translation>
+ <translation type="obsolete">C'è già una quadra collo stesso nome in lista</translation>
</message>
<message>
<source>round in progress</source>
- <translation>turno in corso</translation>
+ <translation type="obsolete">turno in corso</translation>
</message>
<message>
<source>restricted</source>
- <translation>proibito</translation>
+ <translation type="obsolete">proibito</translation>
</message>
<message>
<source>REMOVE_TEAM: no such team</source>
- <translation>CANCELLA_SQUADRA: squadra non presente</translation>
+ <translation type="obsolete">CANCELLA_SQUADRA: squadra non presente</translation>
</message>
<message>
<source>Not team owner!</source>
- <translation>Non proprietario della squadra!</translation>
+ <translation type="obsolete">Non proprietario della squadra!</translation>
</message>
<message>
<source>Less than two clans!</source>
- <translation>Meno di due clan!</translation>
+ <translation type="obsolete">Meno di due clan!</translation>
</message>
<message>
<source>Room with such name already exists</source>
- <translation>Esiste già una stanza con questo nome</translation>
+ <translation type="obsolete">Esiste già una stanza con questo nome</translation>
</message>
<message>
<source>Nickname already chosen</source>
- <translation>Nome già scelto</translation>
+ <translation type="obsolete">Nome già scelto</translation>
</message>
<message>
<source>Illegal nickname</source>
- <translation>Nome non valido</translation>
+ <translation type="obsolete">Nome non valido</translation>
</message>
<message>
<source>Protocol already known</source>
- <translation>Protocollo già conosciuto</translation>
+ <translation type="obsolete">Protocollo già conosciuto</translation>
</message>
<message>
<source>Bad number</source>
- <translation>Numero non valido</translation>
+ <translation type="obsolete">Numero non valido</translation>
</message>
<message>
<source>Nickname is already in use</source>
- <translation>Nome già in uso</translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Nome già in uso</translation>
</message>
<message>
<source>Authentication failed</source>
- <translation>Autenticazione fallita</translation>
+ <translation type="obsolete">Autenticazione fallita</translation>
</message>
<message>
<source>60 seconds cooldown after kick</source>
- <translation>60 secondi di raffreddamento prima dell'espulsione</translation>
+ <translation type="obsolete">60 secondi di raffreddamento prima dell'espulsione</translation>
</message>
<message>
<source>kicked</source>
- <translation>espulso</translation>
+ <translation type="obsolete">espulso</translation>
</message>
<message>
<source>Ping timeout</source>
- <translation>Scadenza ping</translation>
+ <translation type="obsolete">Scadenza ping</translation>
</message>
<message>
<source>bye</source>
- <translation>ciao</translation>
+ <translation type="obsolete">ciao</translation>
</message>
<message>
<source>Illegal room name</source>
- <translation>Nome stanza non valido</translation>
+ <translation type="obsolete">Nome stanza non valido</translation>
</message>
<message>
<source>No such room</source>
- <translation>Stanza non esistente</translation>
+ <translation type="obsolete">Stanza non esistente</translation>
</message>
<message>
<source>Joining restricted</source>
- <translation>Ingresso riservato</translation>
+ <translation type="obsolete">Ingresso riservato</translation>
</message>
<message>
<source>Registered users only</source>
- <translation>Solo utenti registrati</translation>
+ <translation type="obsolete">Solo utenti registrati</translation>
</message>
<message>
<source>You are banned in this room</source>
- <translation>Sei stato espulso dalla stanza</translation>
+ <translation type="obsolete">Sei stato espulso dalla stanza</translation>
</message>
<message>
<source>Empty config entry</source>
- <translation>Configurazione vuota</translation>
+ <translation type="obsolete">Configurazione vuota</translation>
</message>
</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_ja.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ja.ts Tue Jun 04 22:28:12 2013 +0200
@@ -34,11 +34,11 @@
</message>
<message>
<source>Nick</source>
- <translation type="unfinished"></translation>
+ <translation>ニックネーム</translation>
</message>
<message>
<source>IP/Nick</source>
- <translation type="unfinished"></translation>
+ <translation>IP/ニックネーム</translation>
</message>
<message>
<source>Reason</source>
@@ -50,11 +50,11 @@
</message>
<message>
<source>Ok</source>
- <translation type="unfinished"></translation>
+ <translation>オッケー</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">キャンセル</translation>
+ <translation>キャンセル</translation>
</message>
<message>
<source>you know why</source>
@@ -62,7 +62,7 @@
</message>
<message>
<source>Warning</source>
- <translation type="unfinished"></translation>
+ <translation>警報メッセージ</translation>
</message>
<message>
<source>Please, specify %1</source>
@@ -70,7 +70,7 @@
</message>
<message>
<source>nickname</source>
- <translation type="unfinished"></translation>
+ <translation>ニックネーム</translation>
</message>
<message>
<source>permanent</source>
@@ -92,26 +92,26 @@
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">キャンセル</translation>
+ <translation>キャンセル</translation>
</message>
<message>
<source>Send Feedback</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -144,7 +144,7 @@
</message>
<message>
<source>Map</source>
- <translation type="unfinished">地図</translation>
+ <translation>地図</translation>
</message>
<message>
<source>Game options</source>
@@ -155,32 +155,32 @@
<name>HWApplication</name>
<message numerus="yes">
<source>%1 minutes</source>
- <translation type="unfinished">
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1分</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hour</source>
- <translation type="unfinished">
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1時</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hours</source>
- <translation type="unfinished">
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1時</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 day</source>
<translation type="unfinished">
- <numerusform></numerusform>
+ <numerusform>%1日</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 days</source>
- <translation type="unfinished">
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1日</numerusform>
</translation>
</message>
<message>
@@ -248,6 +248,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -283,7 +295,7 @@
</message>
<message>
<source>Nickname</source>
- <translation type="unfinished"></translation>
+ <translation>ニックネーム</translation>
</message>
<message>
<source>No nickname supplied.</source>
@@ -296,7 +308,7 @@
</message>
<message>
<source>%1's Team</source>
- <translation type="unfinished"></translation>
+ <translation>%1のチーム</translation>
</message>
<message>
<source>Hedgewars - Nick registered</source>
@@ -347,6 +359,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -466,10 +482,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
@@ -485,6 +497,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -529,7 +545,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 さんは参加</translation>
+ <translation type="obsolete">%1 *** %2 さんは参加</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -556,7 +572,7 @@
<name>HWPasswordDialog</name>
<message>
<source>Login</source>
- <translation type="unfinished"></translation>
+ <translation>ログイン</translation>
</message>
<message>
<source>To connect to the server, please log in.
@@ -582,7 +598,7 @@
</message>
<message>
<source>Upload</source>
- <translation type="unfinished"></translation>
+ <translation>アップロード</translation>
</message>
</context>
<context>
@@ -596,7 +612,7 @@
<name>HatPrompt</name>
<message>
<source>Cancel</source>
- <translation type="unfinished">キャンセル</translation>
+ <translation>キャンセル</translation>
</message>
<message>
<source>Use selected hat</source>
@@ -684,7 +700,7 @@
</message>
<message>
<source>General</source>
- <translation type="unfinished">一般</translation>
+ <translation>一般</translation>
</message>
<message>
<source>Bans</source>
@@ -692,7 +708,7 @@
</message>
<message>
<source>IP/Nick</source>
- <translation type="unfinished"></translation>
+ <translation>IP/ニックネーム</translation>
</message>
<message>
<source>Expiration</source>
@@ -723,6 +739,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -734,11 +761,11 @@
</message>
<message>
<source>Load</source>
- <translation type="unfinished">ロード</translation>
+ <translation>ロード</translation>
</message>
<message>
<source>Save</source>
- <translation type="unfinished"></translation>
+ <translation>セーブ</translation>
</message>
<message>
<source>Load drawn map</source>
@@ -858,6 +885,14 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">セーブ</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -955,11 +990,11 @@
</message>
<message>
<source>Start</source>
- <translation type="unfinished">スタート</translation>
+ <translation>スタート</translation>
</message>
<message>
<source>Update</source>
- <translation type="unfinished">更新</translation>
+ <translation>更新</translation>
</message>
<message>
<source>Room controls</source>
@@ -969,6 +1004,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1017,7 +1056,7 @@
</message>
<message>
<source>Advanced</source>
- <translation type="unfinished">高級</translation>
+ <translation>高級</translation>
</message>
<message>
<source>Reset to default colors</source>
@@ -1069,7 +1108,7 @@
</message>
<message>
<source>Game</source>
- <translation type="unfinished"></translation>
+ <translation>ゲーム</translation>
</message>
<message>
<source>Graphics</source>
@@ -1877,7 +1916,7 @@
</message>
<message>
<source>Nickname</source>
- <translation type="unfinished"></translation>
+ <translation>ニックネーム</translation>
</message>
<message>
<source>Format</source>
@@ -1939,6 +1978,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -2318,7 +2361,7 @@
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">キャンセル</translation>
+ <translation>キャンセル</translation>
</message>
<message>
<source>Create room</source>
@@ -2380,7 +2423,7 @@
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">キャンセル</translation>
+ <translation>キャンセル</translation>
</message>
<message>
<source>Set seed</source>
@@ -2448,7 +2491,7 @@
<name>ThemePrompt</name>
<message>
<source>Cancel</source>
- <translation type="unfinished">キャンセル</translation>
+ <translation>キャンセル</translation>
</message>
<message>
<source>Search for a theme:</source>
@@ -3039,119 +3082,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_ko.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ko.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -248,6 +248,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -347,6 +359,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -466,10 +482,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
@@ -485,6 +497,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -528,10 +544,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>%1 *** %2 has joined</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>%1 *** %2 has left (%3)</source>
<translation type="unfinished"></translation>
</message>
@@ -723,6 +735,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -858,6 +881,14 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -965,6 +996,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1915,6 +1950,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3007,119 +3046,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_lt.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_lt.ts Tue Jun 04 22:28:12 2013 +0200
@@ -97,7 +97,7 @@
<context>
<name>DataManager</name>
<message>
- <location filename="../../../../QTfrontend/util/DataManager.cpp" line="149"/>
+ <location filename="../../../../QTfrontend/util/DataManager.cpp" line="151"/>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
@@ -105,37 +105,37 @@
<context>
<name>FeedbackDialog</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="87"/>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="88"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="91"/>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="89"/>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="90"/>
- <source>Your email address is optional, but we may want to contact you.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="121"/>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="92"/>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="93"/>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="124"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="147"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="150"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="175"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="178"/>
<source>Send Feedback</source>
<translation type="unfinished"></translation>
</message>
@@ -267,52 +267,67 @@
<context>
<name>HWChatWidget</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="641"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="502"/>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="523"/>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="525"/>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="652"/>
<source>%1 has been removed from your ignore list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="651"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="662"/>
<source>%1 has been added to your ignore list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="681"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="692"/>
<source>%1 has been removed from your friends list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="690"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="701"/>
<source>%1 has been added to your friends list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="756"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="767"/>
<source>Stylesheet imported from %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="757"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="768"/>
<source>Enter %1 if you want to use the current StyleSheet in future, enter %2 to reset!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="765"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="776"/>
<source>Couldn't read %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="773"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="784"/>
<source>StyleSheet discarded</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="797"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="808"/>
<source>StyleSheet saved to %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="800"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="811"/>
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
@@ -325,23 +340,23 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="632"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="636"/>
<source>Game aborted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1102"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1121"/>
<source>Nickname</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1400"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1435"/>
<source>No nickname supplied.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1102"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1121"/>
<source>Someone already uses your nickname %1 on the server.
Please pick another nickname:</source>
<translation type="unfinished"></translation>
@@ -352,12 +367,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1056"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1075"/>
<source>Hedgewars - Nick registered</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1057"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1076"/>
<source>This nick is registered, and you haven't specified a password.
If this nick isn't yours, please register your own nick at www.hedgewars.org
@@ -366,90 +381,95 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1085"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1104"/>
<source>Your nickname is not registered.
To prevent someone else from using it,
please register it at www.hedgewars.org</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1090"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1109"/>
<source>
Your password wasn't saved either.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1400"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1435"/>
<source>Hedgewars - Empty nickname</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1133"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1152"/>
<source>Hedgewars - Wrong password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1133"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1152"/>
<source>You entered a wrong password.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1154"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1173"/>
<source>Try Again</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1515"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1539"/>
<source>Hedgewars - Connection error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1515"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1539"/>
<source>You reconnected too fast.
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1672"/>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1993"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1696"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2015"/>
<source>Cannot save record to file %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1923"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1945"/>
<source>Hedgewars Demo File</source>
<comment>File Types</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1924"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1946"/>
<source>Hedgewars Save File</source>
<comment>File Types</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1985"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2007"/>
<source>Demo name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1985"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2007"/>
<source>Demo name:</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2075"/>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
<message>
- <location filename="../../../../QTfrontend/game.cpp" line="374"/>
+ <location filename="../../../../QTfrontend/game.cpp" line="386"/>
<location filename="../../../../QTfrontend/net/recorder.cpp" line="112"/>
<source>en.txt</source>
<translation>lt.txt</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/game.cpp" line="415"/>
+ <location filename="../../../../QTfrontend/game.cpp" line="427"/>
<source>Cannot open demofile %1</source>
<translation type="unfinished"></translation>
</message>
@@ -457,158 +477,158 @@
<context>
<name>HWMapContainer</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="93"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="94"/>
<source>Map type:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="96"/>
- <source>Image map</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="97"/>
- <source>Mission map</source>
+ <source>Image map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="98"/>
- <source>Hand-drawn</source>
+ <source>Mission map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="99"/>
- <source>Randomly generated</source>
+ <source>Hand-drawn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="100"/>
+ <source>Randomly generated</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="101"/>
<source>Random maze</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="110"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="111"/>
<source>Random</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="133"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="135"/>
<source>Map preview:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="185"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="188"/>
<source>Load map drawing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="191"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="194"/>
<source>Edit map drawing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="204"/>
- <source>All</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="205"/>
- <source>Small</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="206"/>
- <source>Medium</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="207"/>
- <source>Large</source>
+ <source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="208"/>
- <source>Cavern</source>
+ <source>Small</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="209"/>
+ <source>Medium</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="210"/>
+ <source>Large</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="211"/>
+ <source>Cavern</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="212"/>
<source>Wacky</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="219"/>
- <source>Large tunnels</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/>
- <source>Small islands</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="221"/>
- <source>Medium islands</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="222"/>
+ <source>Large tunnels</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="223"/>
+ <source>Small islands</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="224"/>
+ <source>Medium islands</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="225"/>
<source>Large islands</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="705"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="710"/>
<source>Map size:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="712"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="717"/>
<source>Maze style:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="725"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="730"/>
<source>Mission:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="735"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="740"/>
<source>Map:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="799"/>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="930"/>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="804"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="935"/>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="886"/>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="886"/>
<source>Drawn Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="886"/>
<source>All files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/>
<source>Small tunnels</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="218"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="221"/>
<source>Medium tunnels</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="124"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="126"/>
<source>Seed</source>
<translation type="unfinished"></translation>
</message>
@@ -659,40 +679,33 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="697"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="707"/>
<source>Room destroyed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="470"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="484"/>
<source>You got kicked</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="641"/>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="773"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="651"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="782"/>
<source>%1 *** %2 has joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="495"/>
- <source>%1 *** %2 has joined</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="544"/>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="788"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="797"/>
<source>%1 *** %2 has left</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="546"/>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="790"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="799"/>
<source>%1 *** %2 has left (%3)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1535"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1559"/>
<source>Quit reason: </source>
<translation type="unfinished"></translation>
</message>
@@ -902,6 +915,19 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagedata.cpp" line="66"/>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagedata.cpp" line="126"/>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="32"/>
@@ -1022,12 +1048,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="174"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="113"/>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="118"/>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="193"/>
<source>The best shot award was won by <b>%1</b> with <b>%2</b> pts.</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="182"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="201"/>
<source>The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -1036,7 +1072,7 @@
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="189"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="208"/>
<source>A total of <b>%1</b> hedgehog(s) were killed during this round.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -1045,7 +1081,7 @@
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="253"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="272"/>
<source>(%1 kill)</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -1054,7 +1090,7 @@
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="264"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="283"/>
<source><b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -1063,7 +1099,7 @@
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="272"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="291"/>
<source><b>%1</b> killed <b>%2</b> of his own hedgehogs.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -1072,7 +1108,7 @@
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="280"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="299"/>
<source><b>%1</b> was scared and skipped turn <b>%2</b> times.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -1173,12 +1209,12 @@
<context>
<name>PageMultiplayer</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="52"/>
+ <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="50"/>
<source>Edit game preferences</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="64"/>
+ <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="62"/>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
@@ -1209,7 +1245,12 @@
<context>
<name>PageNetServer</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="128"/>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="87"/>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="138"/>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1333,97 +1374,97 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="369"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="371"/>
<source>Frontend</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="386"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="388"/>
<source>Custom colors</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="416"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="418"/>
<source>Reset to default colors</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="429"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="431"/>
<source>Game audio</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="467"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="469"/>
<source>Frontend audio</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="490"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="492"/>
<source>Account</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="516"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="518"/>
<source>Proxy settings</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="522"/>
- <source>Proxy host</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="523"/>
- <source>Proxy port</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="524"/>
- <source>Proxy login</source>
+ <source>Proxy host</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="525"/>
+ <source>Proxy port</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="526"/>
+ <source>Proxy login</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="527"/>
<source>Proxy password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="538"/>
- <source>No proxy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="539"/>
- <source>System proxy settings</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="540"/>
- <source>Socks5 proxy</source>
+ <source>No proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="541"/>
+ <source>System proxy settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="542"/>
+ <source>Socks5 proxy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="543"/>
<source>HTTP proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="576"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="578"/>
<source>Miscellaneous</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="616"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="624"/>
<source>Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="629"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="637"/>
<source>Check for updates</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="643"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="651"/>
<source>Video recording options</source>
<translation type="unfinished"></translation>
</message>
@@ -1444,52 +1485,52 @@
<context>
<name>PageRoomsList</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="63"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="64"/>
<source>Search for a room:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="90"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="91"/>
<source>Create room</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="94"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="95"/>
<source>Join room</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="141"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="153"/>
<source>Room state</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="165"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="177"/>
<source>Rules:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="179"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="191"/>
<source>Weapons:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="190"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="202"/>
<source>Clear filters</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="208"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="220"/>
<source>Admin features</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="210"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="222"/>
<source>Open server administration page</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="595"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="609"/>
<source>%1 players online</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -1803,23 +1844,23 @@
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="269"/>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="874"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="885"/>
<source>Ignore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="273"/>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="886"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="897"/>
<source>Add friend</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="869"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="880"/>
<source>Unignore</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="892"/>
<source>Remove friend</source>
<translation type="unfinished"></translation>
</message>
@@ -1839,12 +1880,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="150"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="162"/>
<source>Show games in lobby</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="153"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="165"/>
<source>Show games in-progress</source>
<translation type="unfinished"></translation>
</message>
@@ -1852,75 +1893,75 @@
<context>
<name>QCheckBox</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="364"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="366"/>
<source>Show ammo menu tooltips</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="358"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="360"/>
<source>Alternative damage show</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="381"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="383"/>
<source>Visual effects</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="454"/>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="471"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="456"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="473"/>
<source>Sound</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="455"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="457"/>
<source>In-game sound effects</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="461"/>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="476"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="463"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="478"/>
<source>Music</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="462"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="464"/>
<source>In-game music</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="472"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="474"/>
<source>Frontend sound effects</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="477"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="479"/>
<source>Frontend music</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="602"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="610"/>
<source>Append date and time to record file name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="622"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="630"/>
<source>Check for updates at startup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="375"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="377"/>
<source>Fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="347"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="349"/>
<source>Show FPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="55"/>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="507"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="509"/>
<source>Save password</source>
<translation type="unfinished"></translation>
</message>
@@ -1935,12 +1976,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="683"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="691"/>
<source>Record audio</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="732"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="740"/>
<source>Use game resolution</source>
<translation type="unfinished"></translation>
</message>
@@ -1963,88 +2004,88 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="588"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="590"/>
<source>(System default)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="311"/>
- <source>Disabled</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="312"/>
- <source>Red/Cyan</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="313"/>
- <source>Cyan/Red</source>
+ <source>Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="314"/>
- <source>Red/Blue</source>
+ <source>Red/Cyan</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="315"/>
- <source>Blue/Red</source>
+ <source>Cyan/Red</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="316"/>
- <source>Red/Green</source>
+ <source>Red/Blue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="317"/>
+ <source>Blue/Red</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="318"/>
+ <source>Red/Green</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="319"/>
<source>Green/Red</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="326"/>
+ <source>Side-by-side</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="327"/>
+ <source>Top-Bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="320"/>
+ <source>Red/Cyan grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="321"/>
+ <source>Cyan/Red grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="322"/>
+ <source>Red/Blue grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="323"/>
+ <source>Blue/Red grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="324"/>
- <source>Side-by-side</source>
+ <source>Red/Green grayscale</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="325"/>
- <source>Top-Bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="318"/>
- <source>Red/Cyan grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="319"/>
- <source>Cyan/Red grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="320"/>
- <source>Red/Blue grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="321"/>
- <source>Blue/Red grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="322"/>
- <source>Red/Green grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="323"/>
<source>Green/Red grayscale</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="199"/>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="272"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="211"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="286"/>
<source>Any</source>
<translation type="unfinished"></translation>
</message>
@@ -2082,7 +2123,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="255"/>
+ <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="259"/>
<source>Playing teams</source>
<translation type="unfinished"></translation>
</message>
@@ -2180,22 +2221,27 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="582"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="584"/>
<source>Locale</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="496"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="498"/>
<source>Nickname</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="708"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="599"/>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="716"/>
<source>Resolution</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="293"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="295"/>
<source>Quality</source>
<translation type="unfinished"></translation>
</message>
@@ -2215,17 +2261,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="307"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="309"/>
<source>Stereo rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="437"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="439"/>
<source>Initial sound volume</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="338"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="340"/>
<source>FPS limit</source>
<translation type="unfinished"></translation>
</message>
@@ -2347,52 +2393,52 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="100"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="103"/>
<source>Your Email</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="108"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="111"/>
<source>Summary</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="118"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="121"/>
<source>Send system information</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="133"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="136"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="161"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="164"/>
<source>Type the security code:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="652"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="660"/>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="672"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="680"/>
<source>Audio codec</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="697"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="705"/>
<source>Video codec</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="738"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="746"/>
<source>Framerate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="752"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="760"/>
<source>Bitrate (Kbps)</source>
<translation type="unfinished"></translation>
</message>
@@ -2400,7 +2446,7 @@
<context>
<name>QLineEdit</name>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="933"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="952"/>
<source>unnamed</source>
<translation type="unfinished"></translation>
</message>
@@ -2411,7 +2457,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="501"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="503"/>
<source>anonymous</source>
<translation type="unfinished"></translation>
</message>
@@ -2442,82 +2488,82 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="962"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="981"/>
<location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="500"/>
<source>Cannot delete default scheme '%1'!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="988"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1007"/>
<source>Please select a record from the list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1083"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1102"/>
<source>Hedgewars - Nick not registered</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1474"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1498"/>
<source>Unable to start server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1535"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1559"/>
<source>Connection to server is lost</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="2021"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2082"/>
<source>Not all players are ready</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="2022"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2083"/>
<source>Are you sure you want to start this game?
Not all players are ready.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="347"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="352"/>
<location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="24"/>
<source>Hedgewars - Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="357"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="362"/>
<source>System Information Preview</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="372"/>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="383"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="377"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="388"/>
<source>Failed to generate captcha</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="400"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="405"/>
<source>Failed to download captcha</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="464"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="469"/>
<source>Please fill out all fields. Email is optional.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1963"/>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="434"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1985"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="439"/>
<source>Hedgewars - Success</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1964"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1986"/>
<source>All file associations have been set</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1969"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1991"/>
<source>File association failed.</source>
<translation type="unfinished"></translation>
</message>
@@ -2595,22 +2641,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="546"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="560"/>
<source>Room Name - Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="547"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="561"/>
<source>Please select room from the list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="582"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="596"/>
<source>Room Name - Are you sure?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="583"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="597"/>
<source>The game you are trying to join has started.
Do you still want to join the room?</source>
<translation type="unfinished"></translation>
@@ -2659,7 +2705,7 @@
<message>
<location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="101"/>
<location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="121"/>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="891"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="896"/>
<source>File error</source>
<translation type="unfinished"></translation>
</message>
@@ -2670,7 +2716,7 @@
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="122"/>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="892"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="897"/>
<source>Cannot open '%1' for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -2776,17 +2822,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="89"/>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="99"/>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="90"/>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="100"/>
<source>Start private server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="608"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="616"/>
<source>Associate file extensions</source>
<translation type="unfinished"></translation>
</message>
@@ -2819,12 +2865,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="765"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="773"/>
<source>Set default options</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="766"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="774"/>
<source>Restore default coding parameters</source>
<translation type="unfinished"></translation>
</message>
@@ -3022,7 +3068,7 @@
<context>
<name>TeamSelWidget</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="260"/>
+ <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="264"/>
<source>At least two teams are required to play!</source>
<translation type="unfinished"></translation>
</message>
@@ -3421,7 +3467,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/util/DataManager.cpp" line="156"/>
+ <location filename="../../../../QTfrontend/util/DataManager.cpp" line="158"/>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
@@ -3781,147 +3827,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="2"/>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="3"/>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="4"/>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="5"/>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="6"/>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="7"/>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="8"/>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="9"/>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="10"/>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="11"/>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="12"/>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="13"/>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="14"/>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="15"/>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="16"/>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="17"/>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="18"/>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="19"/>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="20"/>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="21"/>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="22"/>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="23"/>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="24"/>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="25"/>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="26"/>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="27"/>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="28"/>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="29"/>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_ms.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ms.ts Tue Jun 04 22:28:12 2013 +0200
@@ -97,7 +97,7 @@
<context>
<name>DataManager</name>
<message>
- <location filename="../../../../QTfrontend/util/DataManager.cpp" line="149"/>
+ <location filename="../../../../QTfrontend/util/DataManager.cpp" line="151"/>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
@@ -105,37 +105,37 @@
<context>
<name>FeedbackDialog</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="87"/>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="88"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="91"/>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="89"/>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="90"/>
- <source>Your email address is optional, but we may want to contact you.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="121"/>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="92"/>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="93"/>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="124"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="147"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="150"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="175"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="178"/>
<source>Send Feedback</source>
<translation type="unfinished"></translation>
</message>
@@ -255,52 +255,67 @@
<context>
<name>HWChatWidget</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="641"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="502"/>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="523"/>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="525"/>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="652"/>
<source>%1 has been removed from your ignore list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="651"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="662"/>
<source>%1 has been added to your ignore list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="681"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="692"/>
<source>%1 has been removed from your friends list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="690"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="701"/>
<source>%1 has been added to your friends list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="756"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="767"/>
<source>Stylesheet imported from %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="757"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="768"/>
<source>Enter %1 if you want to use the current StyleSheet in future, enter %2 to reset!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="765"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="776"/>
<source>Couldn't read %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="773"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="784"/>
<source>StyleSheet discarded</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="797"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="808"/>
<source>StyleSheet saved to %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="800"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="811"/>
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
@@ -318,17 +333,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="632"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="636"/>
<source>Game aborted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1056"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1075"/>
<source>Hedgewars - Nick registered</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1057"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1076"/>
<source>This nick is registered, and you haven't specified a password.
If this nick isn't yours, please register your own nick at www.hedgewars.org
@@ -337,107 +352,112 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1085"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1104"/>
<source>Your nickname is not registered.
To prevent someone else from using it,
please register it at www.hedgewars.org</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1090"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1109"/>
<source>
Your password wasn't saved either.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1102"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1121"/>
<source>Nickname</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1102"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1121"/>
<source>Someone already uses your nickname %1 on the server.
Please pick another nickname:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1400"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1435"/>
<source>No nickname supplied.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1400"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1435"/>
<source>Hedgewars - Empty nickname</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1133"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1152"/>
<source>Hedgewars - Wrong password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1133"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1152"/>
<source>You entered a wrong password.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1154"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1173"/>
<source>Try Again</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1515"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1539"/>
<source>Hedgewars - Connection error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1515"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1539"/>
<source>You reconnected too fast.
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1672"/>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1993"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1696"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2015"/>
<source>Cannot save record to file %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1923"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1945"/>
<source>Hedgewars Demo File</source>
<comment>File Types</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1924"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1946"/>
<source>Hedgewars Save File</source>
<comment>File Types</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1985"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2007"/>
<source>Demo name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1985"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2007"/>
<source>Demo name:</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2075"/>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
<message>
- <location filename="../../../../QTfrontend/game.cpp" line="374"/>
+ <location filename="../../../../QTfrontend/game.cpp" line="386"/>
<location filename="../../../../QTfrontend/net/recorder.cpp" line="112"/>
<source>en.txt</source>
<translation>ms.txt</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/game.cpp" line="415"/>
+ <location filename="../../../../QTfrontend/game.cpp" line="427"/>
<source>Cannot open demofile %1</source>
<translation type="unfinished"></translation>
</message>
@@ -445,158 +465,158 @@
<context>
<name>HWMapContainer</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="93"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="94"/>
<source>Map type:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="96"/>
- <source>Image map</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="97"/>
- <source>Mission map</source>
+ <source>Image map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="98"/>
- <source>Hand-drawn</source>
+ <source>Mission map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="99"/>
- <source>Randomly generated</source>
+ <source>Hand-drawn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="100"/>
+ <source>Randomly generated</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="101"/>
<source>Random maze</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="110"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="111"/>
<source>Random</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="133"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="135"/>
<source>Map preview:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="185"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="188"/>
<source>Load map drawing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="191"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="194"/>
<source>Edit map drawing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="204"/>
- <source>All</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="205"/>
- <source>Small</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="206"/>
- <source>Medium</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="207"/>
- <source>Large</source>
+ <source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="208"/>
- <source>Cavern</source>
+ <source>Small</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="209"/>
+ <source>Medium</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="210"/>
+ <source>Large</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="211"/>
+ <source>Cavern</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="212"/>
<source>Wacky</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="219"/>
- <source>Large tunnels</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/>
- <source>Small islands</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="221"/>
- <source>Medium islands</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="222"/>
+ <source>Large tunnels</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="223"/>
+ <source>Small islands</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="224"/>
+ <source>Medium islands</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="225"/>
<source>Large islands</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="705"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="710"/>
<source>Map size:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="712"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="717"/>
<source>Maze style:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="725"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="730"/>
<source>Mission:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="735"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="740"/>
<source>Map:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="799"/>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="930"/>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="804"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="935"/>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="886"/>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="886"/>
<source>Drawn Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="886"/>
<source>All files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/>
<source>Small tunnels</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="218"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="221"/>
<source>Medium tunnels</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="124"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="126"/>
<source>Seed</source>
<translation type="unfinished"></translation>
</message>
@@ -622,7 +642,7 @@
<context>
<name>HWNewNet</name>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1535"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1559"/>
<source>Quit reason: </source>
<translation type="unfinished"></translation>
</message>
@@ -652,35 +672,28 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="470"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="484"/>
<source>You got kicked</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="495"/>
- <source>%1 *** %2 has joined</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="544"/>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="788"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="797"/>
<source>%1 *** %2 has left</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="546"/>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="790"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="799"/>
<source>%1 *** %2 has left (%3)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="641"/>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="773"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="651"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="782"/>
<source>%1 *** %2 has joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="697"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="707"/>
<source>Room destroyed</source>
<translation type="unfinished"></translation>
</message>
@@ -890,6 +903,19 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagedata.cpp" line="66"/>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagedata.cpp" line="126"/>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="32"/>
@@ -1010,47 +1036,57 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="174"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="113"/>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="118"/>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="193"/>
<source>The best shot award was won by <b>%1</b> with <b>%2</b> pts.</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="182"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="201"/>
<source>The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="189"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="208"/>
<source>A total of <b>%1</b> hedgehog(s) were killed during this round.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="253"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="272"/>
<source>(%1 kill)</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="264"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="283"/>
<source><b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="272"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="291"/>
<source><b>%1</b> killed <b>%2</b> of his own hedgehogs.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="280"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="299"/>
<source><b>%1</b> was scared and skipped turn <b>%2</b> times.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -1149,12 +1185,12 @@
<context>
<name>PageMultiplayer</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="52"/>
+ <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="50"/>
<source>Edit game preferences</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="64"/>
+ <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="62"/>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
@@ -1185,7 +1221,12 @@
<context>
<name>PageNetServer</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="128"/>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="87"/>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="138"/>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1309,97 +1350,97 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="369"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="371"/>
<source>Frontend</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="386"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="388"/>
<source>Custom colors</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="416"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="418"/>
<source>Reset to default colors</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="429"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="431"/>
<source>Game audio</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="467"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="469"/>
<source>Frontend audio</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="490"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="492"/>
<source>Account</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="516"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="518"/>
<source>Proxy settings</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="522"/>
- <source>Proxy host</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="523"/>
- <source>Proxy port</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="524"/>
- <source>Proxy login</source>
+ <source>Proxy host</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="525"/>
+ <source>Proxy port</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="526"/>
+ <source>Proxy login</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="527"/>
<source>Proxy password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="538"/>
- <source>No proxy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="539"/>
- <source>System proxy settings</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="540"/>
- <source>Socks5 proxy</source>
+ <source>No proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="541"/>
+ <source>System proxy settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="542"/>
+ <source>Socks5 proxy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="543"/>
<source>HTTP proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="576"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="578"/>
<source>Miscellaneous</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="616"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="624"/>
<source>Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="629"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="637"/>
<source>Check for updates</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="643"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="651"/>
<source>Video recording options</source>
<translation type="unfinished"></translation>
</message>
@@ -1420,52 +1461,52 @@
<context>
<name>PageRoomsList</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="63"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="64"/>
<source>Search for a room:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="90"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="91"/>
<source>Create room</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="94"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="95"/>
<source>Join room</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="141"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="153"/>
<source>Room state</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="165"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="177"/>
<source>Rules:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="179"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="191"/>
<source>Weapons:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="190"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="202"/>
<source>Clear filters</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="208"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="220"/>
<source>Admin features</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="210"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="222"/>
<source>Open server administration page</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="595"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="609"/>
<source>%1 players online</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -1790,33 +1831,33 @@
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="269"/>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="874"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="885"/>
<source>Ignore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="273"/>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="886"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="897"/>
<source>Add friend</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="869"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="880"/>
<source>Unignore</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="892"/>
<source>Remove friend</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="150"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="162"/>
<source>Show games in lobby</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="153"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="165"/>
<source>Show games in-progress</source>
<translation type="unfinished"></translation>
</message>
@@ -1825,7 +1866,7 @@
<name>QCheckBox</name>
<message>
<location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="55"/>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="507"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="509"/>
<source>Save password</source>
<translation type="unfinished"></translation>
</message>
@@ -1840,79 +1881,79 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="622"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="630"/>
<source>Check for updates at startup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="375"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="377"/>
<source>Fullscreen</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="358"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="360"/>
<source>Alternative damage show</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="347"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="349"/>
<source>Show FPS</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="364"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="366"/>
<source>Show ammo menu tooltips</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="381"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="383"/>
<source>Visual effects</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="454"/>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="471"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="456"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="473"/>
<source>Sound</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="455"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="457"/>
<source>In-game sound effects</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="461"/>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="476"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="463"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="478"/>
<source>Music</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="462"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="464"/>
<source>In-game music</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="472"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="474"/>
<source>Frontend sound effects</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="477"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="479"/>
<source>Frontend music</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="602"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="610"/>
<source>Append date and time to record file name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="683"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="691"/>
<source>Record audio</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="732"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="740"/>
<source>Use game resolution</source>
<translation type="unfinished"></translation>
</message>
@@ -1935,88 +1976,88 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="588"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="590"/>
<source>(System default)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="311"/>
- <source>Disabled</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="312"/>
- <source>Red/Cyan</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="313"/>
- <source>Cyan/Red</source>
+ <source>Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="314"/>
- <source>Red/Blue</source>
+ <source>Red/Cyan</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="315"/>
- <source>Blue/Red</source>
+ <source>Cyan/Red</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="316"/>
- <source>Red/Green</source>
+ <source>Red/Blue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="317"/>
+ <source>Blue/Red</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="318"/>
+ <source>Red/Green</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="319"/>
<source>Green/Red</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="326"/>
+ <source>Side-by-side</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="327"/>
+ <source>Top-Bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="320"/>
+ <source>Red/Cyan grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="321"/>
+ <source>Cyan/Red grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="322"/>
+ <source>Red/Blue grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="323"/>
+ <source>Blue/Red grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="324"/>
- <source>Side-by-side</source>
+ <source>Red/Green grayscale</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="325"/>
- <source>Top-Bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="318"/>
- <source>Red/Cyan grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="319"/>
- <source>Cyan/Red grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="320"/>
- <source>Red/Blue grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="321"/>
- <source>Blue/Red grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="322"/>
- <source>Red/Green grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="323"/>
<source>Green/Red grayscale</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="199"/>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="272"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="211"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="286"/>
<source>Any</source>
<translation type="unfinished"></translation>
</message>
@@ -2064,7 +2105,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="255"/>
+ <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="259"/>
<source>Playing teams</source>
<translation type="unfinished"></translation>
</message>
@@ -2144,27 +2185,27 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="100"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="103"/>
<source>Your Email</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="108"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="111"/>
<source>Summary</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="118"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="121"/>
<source>Send system information</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="133"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="136"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="161"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="164"/>
<source>Type the security code:</source>
<translation type="unfinished"></translation>
</message>
@@ -2194,22 +2235,27 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="582"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="584"/>
<source>Locale</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="496"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="498"/>
<source>Nickname</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="708"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="599"/>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="716"/>
<source>Resolution</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="293"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="295"/>
<source>Quality</source>
<translation type="unfinished"></translation>
</message>
@@ -2229,17 +2275,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="307"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="309"/>
<source>Stereo rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="437"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="439"/>
<source>Initial sound volume</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="338"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="340"/>
<source>FPS limit</source>
<translation type="unfinished"></translation>
</message>
@@ -2324,27 +2370,27 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="652"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="660"/>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="672"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="680"/>
<source>Audio codec</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="697"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="705"/>
<source>Video codec</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="738"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="746"/>
<source>Framerate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="752"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="760"/>
<source>Bitrate (Kbps)</source>
<translation type="unfinished"></translation>
</message>
@@ -2372,7 +2418,7 @@
<context>
<name>QLineEdit</name>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="933"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="952"/>
<source>unnamed</source>
<translation type="unfinished"></translation>
</message>
@@ -2383,7 +2429,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="501"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="503"/>
<source>anonymous</source>
<translation type="unfinished"></translation>
</message>
@@ -2414,82 +2460,82 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="962"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="981"/>
<location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="500"/>
<source>Cannot delete default scheme '%1'!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="988"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1007"/>
<source>Please select a record from the list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1083"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1102"/>
<source>Hedgewars - Nick not registered</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1474"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1498"/>
<source>Unable to start server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1535"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1559"/>
<source>Connection to server is lost</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="2021"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2082"/>
<source>Not all players are ready</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="2022"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2083"/>
<source>Are you sure you want to start this game?
Not all players are ready.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="347"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="352"/>
<location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="24"/>
<source>Hedgewars - Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="357"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="362"/>
<source>System Information Preview</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="372"/>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="383"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="377"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="388"/>
<source>Failed to generate captcha</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="400"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="405"/>
<source>Failed to download captcha</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="464"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="469"/>
<source>Please fill out all fields. Email is optional.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1963"/>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="434"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1985"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="439"/>
<source>Hedgewars - Success</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1964"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1986"/>
<source>All file associations have been set</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1969"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1991"/>
<source>File association failed.</source>
<translation type="unfinished"></translation>
</message>
@@ -2557,22 +2603,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="546"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="560"/>
<source>Room Name - Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="547"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="561"/>
<source>Please select room from the list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="582"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="596"/>
<source>Room Name - Are you sure?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="583"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="597"/>
<source>The game you are trying to join has started.
Do you still want to join the room?</source>
<translation type="unfinished"></translation>
@@ -2619,7 +2665,7 @@
<message>
<location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="101"/>
<location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="121"/>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="891"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="896"/>
<source>File error</source>
<translation type="unfinished"></translation>
</message>
@@ -2630,7 +2676,7 @@
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="122"/>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="892"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="897"/>
<source>Cannot open '%1' for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -2751,17 +2797,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="89"/>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="99"/>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="90"/>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="100"/>
<source>Start private server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="608"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="616"/>
<source>Associate file extensions</source>
<translation type="unfinished"></translation>
</message>
@@ -2789,12 +2835,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="765"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="773"/>
<source>Set default options</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="766"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="774"/>
<source>Restore default coding parameters</source>
<translation type="unfinished"></translation>
</message>
@@ -2992,7 +3038,7 @@
<context>
<name>TeamSelWidget</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="260"/>
+ <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="264"/>
<source>At least two teams are required to play!</source>
<translation type="unfinished"></translation>
</message>
@@ -3709,7 +3755,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/util/DataManager.cpp" line="156"/>
+ <location filename="../../../../QTfrontend/util/DataManager.cpp" line="158"/>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
@@ -3751,147 +3797,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="2"/>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="3"/>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="4"/>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="5"/>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="6"/>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="7"/>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="8"/>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="9"/>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="10"/>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="11"/>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="12"/>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="13"/>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="14"/>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="15"/>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="16"/>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="17"/>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="18"/>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="19"/>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="20"/>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="21"/>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="22"/>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="23"/>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="24"/>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="25"/>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="26"/>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="27"/>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="28"/>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="29"/>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_nl.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_nl.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -254,6 +254,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -353,6 +365,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -472,10 +488,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
@@ -491,6 +503,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -534,10 +550,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>%1 *** %2 has joined</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>%1 *** %2 has left (%3)</source>
<translation type="unfinished"></translation>
</message>
@@ -729,6 +741,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -870,6 +893,14 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -977,6 +1008,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1929,6 +1964,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3022,119 +3061,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_pl.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_pl.ts Tue Jun 04 22:28:12 2013 +0200
@@ -5,7 +5,7 @@
<name>About</name>
<message>
<source>Unknown Compiler</source>
- <translation type="unfinished"></translation>
+ <translation>Nieznany kompilator</translation>
</message>
</context>
<context>
@@ -30,89 +30,89 @@
<name>BanDialog</name>
<message>
<source>IP</source>
- <translation type="unfinished">IP</translation>
+ <translation>IP</translation>
</message>
<message>
<source>Nick</source>
- <translation type="unfinished"></translation>
+ <translation>Nick</translation>
</message>
<message>
<source>IP/Nick</source>
- <translation type="unfinished"></translation>
+ <translation>IP/Nick</translation>
</message>
<message>
<source>Reason</source>
- <translation type="unfinished"></translation>
+ <translation>Powód</translation>
</message>
<message>
<source>Duration</source>
- <translation type="unfinished"></translation>
+ <translation>Czas trwania</translation>
</message>
<message>
<source>Ok</source>
- <translation type="unfinished"></translation>
+ <translation>Ok</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Anuluj</translation>
+ <translation>Anuluj</translation>
</message>
<message>
<source>you know why</source>
- <translation type="unfinished"></translation>
+ <translation>Wiesz za co</translation>
</message>
<message>
<source>Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Ostrzeżenie</translation>
</message>
<message>
<source>Please, specify %1</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Proszę, opisz %1</translation>
</message>
<message>
<source>nickname</source>
- <translation type="unfinished"></translation>
+ <translation>ksywka</translation>
</message>
<message>
<source>permanent</source>
- <translation type="unfinished"></translation>
+ <translation>dożywotni</translation>
</message>
</context>
<context>
<name>DataManager</name>
<message>
<source>Use Default</source>
- <translation type="unfinished"></translation>
+ <translation>Użyj domyślnych</translation>
</message>
</context>
<context>
<name>FeedbackDialog</name>
<message>
<source>View</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Anuluj</translation>
+ <translation>Anuluj</translation>
</message>
<message>
<source>Send Feedback</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
+ <translation>Wyśłij opinię</translation>
</message>
<message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
- <translation type="unfinished"></translation>
+ <translation>Jesteśmy wdzięczni za sugestie, pomysły i znalezione błędy.</translation>
+ </message>
+ <message>
+ <source>Send us feedback!</source>
+ <translation>Wyślij swoją opinię!</translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation>Jeśli znalazłeś błąd, możesz sprawdzić czy został już zgłoszony w tym miejscu: </translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
+ <translation>E-mail jest opcjonalny chyba, że chcesz byśmy się z tobą skontaktowali.</translation>
</message>
</context>
<context>
@@ -146,73 +146,80 @@
</message>
<message>
<source>Game scheme will auto-select a weapon</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Schemat gry automatycznie wybierze uzbrojenie</translation>
</message>
<message>
<source>Map</source>
- <translation type="unfinished">Mapa</translation>
+ <translation>Mapa</translation>
</message>
<message>
<source>Game options</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia gry</translation>
+ </message>
+</context>
+<context>
+ <name>GameUIConfig</name>
+ <message>
+ <source>Guest</source>
+ <translation>Gość</translation>
</message>
</context>
<context>
<name>HWApplication</name>
<message numerus="yes">
<source>%1 minutes</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 minuta</numerusform>
+ <numerusform>%1 minuty</numerusform>
+ <numerusform>%1 minut</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hour</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 godzina</numerusform>
+ <numerusform>%1 godziny</numerusform>
+ <numerusform>%1 godzin</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hours</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 godziny</numerusform>
+ <numerusform>%1 godziny</numerusform>
+ <numerusform>%1 godzin</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 day</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 dzień</numerusform>
+ <numerusform>%1 dni</numerusform>
+ <numerusform>%1 dni</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 days</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 dni</numerusform>
+ <numerusform>%1 dni</numerusform>
+ <numerusform>%1 dni</numerusform>
</translation>
</message>
<message>
<source>Scheme '%1' not supported</source>
- <translation type="unfinished"></translation>
+ <translation>Shemat '%1' nie jest wspierany</translation>
</message>
<message>
<source>Cannot create directory %1</source>
- <translation type="unfinished">Nie można utworzyć katalogu %1</translation>
+ <translation>Nie można utworzyć katalogu %1</translation>
</message>
<message>
<source>Failed to open data directory:
%1
Please check your installation!</source>
- <translation type="unfinished">Nie można otworzyć katalogu z danymi:
+ <translation>Nie można otworzyć katalogu z danymi:
%1
Sprawdź poprawność instalacji!</translation>
@@ -267,6 +274,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation>Nie można było zapisać arkusza stylów jako %1</translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation>%1 dołączył</translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation>%1 wyszedł</translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation>%1 wyszedł (%2)</translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -316,11 +335,11 @@
</message>
<message>
<source>%1's Team</source>
- <translation type="unfinished"></translation>
+ <translation>Zespół %1</translation>
</message>
<message>
<source>Hedgewars - Nick registered</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Zarejestrowany nick</translation>
</message>
<message>
<source>This nick is registered, and you haven't specified a password.
@@ -328,44 +347,61 @@
If this nick isn't yours, please register your own nick at www.hedgewars.org
Password:</source>
- <translation type="unfinished"></translation>
+ <translation>Ten nick jest zarejestrowany i musisz podać hasło.
+
+Jeżeli ten nick nie jest twój, zarejestrój własny na www.hedgewars.org
+
+Hasło:</translation>
</message>
<message>
<source>Your nickname is not registered.
To prevent someone else from using it,
please register it at www.hedgewars.org</source>
- <translation type="unfinished"></translation>
+ <translation>Twój nick nie jest zarejestrowany.
+By zapobiec używania go przez kogoś innego
+zarejestruj go na www.hedgewars.org</translation>
</message>
<message>
<source>
Your password wasn't saved either.</source>
- <translation type="unfinished"></translation>
+ <translation>
+
+Twoje hasło nie zostało zapisane.</translation>
</message>
<message>
<source>Hedgewars - Empty nickname</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Brak nicku</translation>
</message>
<message>
<source>Hedgewars - Wrong password</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Złe hasło</translation>
</message>
<message>
<source>You entered a wrong password.</source>
- <translation type="unfinished"></translation>
+ <translation>Wpisałeś złe hasło.</translation>
</message>
<message>
<source>Try Again</source>
- <translation type="unfinished"></translation>
+ <translation>Spróbuj ponownie</translation>
</message>
<message>
<source>Hedgewars - Connection error</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Błąd połączenia</translation>
</message>
<message>
<source>You reconnected too fast.
Please wait a few seconds and try again.</source>
- <translation type="unfinished"></translation>
+ <translation>Za szybko połączyłes się ponownie.
+Poczekaj kilka sekund i spróbuj ponownie.</translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation>Ta strona wymaga połączenia z internetem.</translation>
+ </message>
+ <message>
+ <source>Guest</source>
+ <translation>Gość</translation>
</message>
</context>
<context>
@@ -419,91 +455,91 @@
</message>
<message>
<source>Map type:</source>
- <translation type="unfinished"></translation>
+ <translation>Typ mapy:</translation>
</message>
<message>
<source>Image map</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Mapa z obrazka</translation>
</message>
<message>
<source>Mission map</source>
- <translation type="unfinished"></translation>
+ <translation>Misja</translation>
</message>
<message>
<source>Hand-drawn</source>
- <translation type="unfinished">Rys. ręcznie</translation>
+ <translation>Rysowana ręcznie</translation>
</message>
<message>
<source>Randomly generated</source>
- <translation type="unfinished"></translation>
+ <translation>Losowa mapa</translation>
</message>
<message>
<source>Random maze</source>
- <translation type="unfinished"></translation>
+ <translation>Losowe labirynty</translation>
</message>
<message>
<source>Random</source>
- <translation type="unfinished">Losowo</translation>
+ <translation>Losowo</translation>
</message>
<message>
<source>Map preview:</source>
- <translation type="unfinished"></translation>
+ <translation>Podgląd:</translation>
</message>
<message>
<source>Load map drawing</source>
- <translation type="unfinished"></translation>
+ <translation>Wczytaj rysowana mapę</translation>
</message>
<message>
<source>Edit map drawing</source>
- <translation type="unfinished"></translation>
+ <translation>Edytuj mapę</translation>
</message>
<message>
<source>Small islands</source>
- <translation type="unfinished"></translation>
+ <translation>Małe wyspy</translation>
</message>
<message>
<source>Medium islands</source>
- <translation type="unfinished"></translation>
+ <translation>Średnie wyspy</translation>
</message>
<message>
<source>Large islands</source>
- <translation type="unfinished"></translation>
+ <translation>Duże wyspy</translation>
</message>
<message>
<source>Map size:</source>
- <translation type="unfinished"></translation>
+ <translation>Rozmiar mapy:</translation>
</message>
<message>
<source>Maze style:</source>
- <translation type="unfinished"></translation>
+ <translation>Styl labiryntu:</translation>
</message>
<message>
<source>Mission:</source>
- <translation type="unfinished"></translation>
+ <translation>Misja:</translation>
</message>
<message>
<source>Map:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
+ <translation>Mapa:</translation>
</message>
<message>
<source>Load drawn map</source>
- <translation type="unfinished">Załaduj mapę</translation>
+ <translation>Załaduj mapę</translation>
</message>
<message>
<source>Drawn Maps</source>
- <translation type="unfinished">Narysowane mapy</translation>
+ <translation>Narysowane mapy</translation>
</message>
<message>
<source>All files</source>
- <translation type="unfinished">Wszystkie pliki</translation>
+ <translation>Wszystkie pliki</translation>
</message>
<message>
<source>Large tunnels</source>
- <translation type="unfinished"></translation>
+ <translation>Duże tunele</translation>
+ </message>
+ <message>
+ <source>Theme: %1</source>
+ <translation>Motyw: %1</translation>
</message>
</context>
<context>
@@ -549,7 +585,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 dołączył</translation>
+ <translation type="obsolete">%1 *** %2 dołączył</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -576,22 +612,25 @@
<name>HWPasswordDialog</name>
<message>
<source>Login</source>
- <translation type="unfinished"></translation>
+ <translation>Login</translation>
</message>
<message>
<source>To connect to the server, please log in.
If you don't have an account on www.hedgewars.org,
just enter your nickname.</source>
- <translation type="unfinished"></translation>
+ <translation>Zaloguj się by połączyć się z serwerem.
+
+Jeśli nie masz konta na www.hedgewars.org,
+po prostu wpisz swój nick.</translation>
</message>
<message>
<source>Nickname:</source>
- <translation type="unfinished"></translation>
+ <translation>Nick:</translation>
</message>
<message>
<source>Password:</source>
- <translation type="unfinished"></translation>
+ <translation>Hasło:</translation>
</message>
</context>
<context>
@@ -609,22 +648,22 @@
<name>HatButton</name>
<message>
<source>Change hat (%1)</source>
- <translation type="unfinished"></translation>
+ <translation>Zmień czapkę (%1)</translation>
</message>
</context>
<context>
<name>HatPrompt</name>
<message>
<source>Cancel</source>
- <translation type="unfinished">Anuluj</translation>
+ <translation>Anuluj</translation>
</message>
<message>
<source>Use selected hat</source>
- <translation type="unfinished"></translation>
+ <translation>Użyj wybranej czapki</translation>
</message>
<message>
<source>Search for a hat:</source>
- <translation type="unfinished"></translation>
+ <translation>Szukaj czapki:</translation>
</message>
</context>
<context>
@@ -638,7 +677,7 @@
<name>KeyBinder</name>
<message>
<source>Category</source>
- <translation type="unfinished"></translation>
+ <translation>Kategoria</translation>
</message>
</context>
<context>
@@ -646,30 +685,30 @@
<message>
<source>Duration: %1m %2s
</source>
- <translation type="unfinished">Długość: %1m %2s </translation>
+ <translation>Długość: %1m %2s </translation>
</message>
<message>
<source>Video: %1x%2, </source>
- <translation type="unfinished">Wideo: %1x%2, </translation>
+ <translation>Wideo: %1x%2, </translation>
</message>
<message>
<source>%1 fps, </source>
- <translation type="unfinished">%1 kl/s, </translation>
+ <translation>%1 kl/s, </translation>
</message>
<message>
<source>Audio: </source>
- <translation type="unfinished">Audio: </translation>
+ <translation>Audio: </translation>
</message>
<message>
<source>unknown</source>
- <translation type="unfinished"></translation>
+ <translation>nieznany</translation>
</message>
</context>
<context>
<name>MapModel</name>
<message>
<source>No description available.</source>
- <translation type="unfinished"></translation>
+ <translation>Brak opisu.</translation>
</message>
</context>
<context>
@@ -704,35 +743,35 @@
</message>
<message>
<source>General</source>
- <translation type="unfinished">Ogólne</translation>
+ <translation>Ogólne</translation>
</message>
<message>
<source>Bans</source>
- <translation type="unfinished"></translation>
+ <translation>Bany</translation>
</message>
<message>
<source>IP/Nick</source>
- <translation type="unfinished"></translation>
+ <translation>IP/Nick</translation>
</message>
<message>
<source>Expiration</source>
- <translation type="unfinished"></translation>
+ <translation>Wygaśnie</translation>
</message>
<message>
<source>Reason</source>
- <translation type="unfinished"></translation>
+ <translation>Powód</translation>
</message>
<message>
<source>Refresh</source>
- <translation type="unfinished"></translation>
+ <translation>Odśwież</translation>
</message>
<message>
<source>Add</source>
- <translation type="unfinished"></translation>
+ <translation>Dodaj</translation>
</message>
<message>
<source>Remove</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń</translation>
</message>
</context>
<context>
@@ -743,6 +782,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation>Ładowanie, proszę czekać.</translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation>Ta strona wymaga połączenia z internetem.</translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -789,39 +839,39 @@
</message>
<message>
<source>Select an action to choose a custom key bind for this team</source>
- <translation type="unfinished"></translation>
+ <translation>Wybierz czynność by przypisać klawisz dla tego zespołu</translation>
</message>
<message>
<source>Use my default</source>
- <translation type="unfinished"></translation>
+ <translation>Użyj domyślnych</translation>
</message>
<message>
<source>Reset all binds</source>
- <translation type="unfinished"></translation>
+ <translation>Zresetuj przypisania</translation>
</message>
<message>
<source>Custom Controls</source>
- <translation type="unfinished"></translation>
+ <translation>Własne ustawienia</translation>
</message>
<message>
<source>Hat</source>
- <translation type="unfinished">Grzybek</translation>
+ <translation>Czapka</translation>
</message>
<message>
<source>Name</source>
- <translation type="unfinished">Nazwa</translation>
+ <translation>Nazwa</translation>
</message>
<message>
<source>This hedgehog's name</source>
- <translation type="unfinished"></translation>
+ <translation>Imię jeża</translation>
</message>
<message>
<source>Randomize this hedgehog's name</source>
- <translation type="unfinished"></translation>
+ <translation>Losuj imię</translation>
</message>
<message>
<source>Random Team</source>
- <translation type="unfinished">Losowa Drużyna</translation>
+ <translation>Losowa Drużyna</translation>
</message>
</context>
<context>
@@ -890,6 +940,14 @@
<numerusform><b>%1</b> trząsł portkami i opuścił turę <b>%2</b> razy.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation>Zagraj ponownie</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Zapisz</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -945,23 +1003,23 @@
</message>
<message>
<source>Play a game across a local area network</source>
- <translation type="unfinished"></translation>
+ <translation>Zagraj poprzez sieć lokalną</translation>
</message>
<message>
<source>Play a game on an official server</source>
- <translation type="unfinished"></translation>
+ <translation>Zagraj na oficjalnym serwerze</translation>
</message>
<message>
<source>Feedback</source>
- <translation type="unfinished"></translation>
+ <translation>Twoja opinia</translation>
</message>
<message>
<source>Play local network game</source>
- <translation type="unfinished"></translation>
+ <translation>Zagraj poprzez LAN</translation>
</message>
<message>
<source>Play official network game</source>
- <translation type="unfinished"></translation>
+ <translation>Zagraj na oficjalnym serwerze</translation>
</message>
</context>
<context>
@@ -972,7 +1030,7 @@
</message>
<message>
<source>Edit game preferences</source>
- <translation type="unfinished">Zmień ustawienia gry</translation>
+ <translation>Zmień ustawienia gry</translation>
</message>
</context>
<context>
@@ -983,26 +1041,30 @@
</message>
<message>
<source>Edit game preferences</source>
- <translation type="unfinished">Zmień ustawienia gry</translation>
+ <translation>Zmień ustawienia gry</translation>
</message>
<message>
<source>Start</source>
- <translation type="unfinished">Start</translation>
+ <translation>Start</translation>
</message>
<message>
<source>Update</source>
- <translation type="unfinished"></translation>
+ <translation>Aktualizuj</translation>
</message>
<message>
<source>Room controls</source>
- <translation type="unfinished"></translation>
+ <translation>Ustawienia pokoju</translation>
</message>
</context>
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation>Pokaż szczegóły</translation>
+ </message>
+ <message>
<source>Insert your address here</source>
- <translation type="unfinished"></translation>
+ <translation>Wprowadź adres</translation>
</message>
</context>
<context>
@@ -1089,91 +1151,91 @@
</message>
<message>
<source>Select an action to change what key controls it</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Wybierz czynność by przypisać do niej klawisz</translation>
</message>
<message>
<source>Reset to default</source>
- <translation type="unfinished"></translation>
+ <translation>Przywróć domyślne</translation>
</message>
<message>
<source>Reset all binds</source>
- <translation type="unfinished"></translation>
+ <translation>Zresetuj klawisze</translation>
</message>
<message>
<source>Game</source>
- <translation type="unfinished"></translation>
+ <translation>Gra</translation>
</message>
<message>
<source>Graphics</source>
- <translation type="unfinished"></translation>
+ <translation>Grafika</translation>
</message>
<message>
<source>Audio</source>
- <translation type="unfinished"></translation>
+ <translation>Dźwięk</translation>
</message>
<message>
<source>Controls</source>
- <translation type="unfinished"></translation>
+ <translation>Sterowanie</translation>
</message>
<message>
<source>Video Recording</source>
- <translation type="unfinished"></translation>
+ <translation>Nagrywanie wideo</translation>
</message>
<message>
<source>Network</source>
- <translation type="unfinished"></translation>
+ <translation>Sieć</translation>
</message>
<message>
<source>Teams</source>
- <translation type="unfinished">Drużyny</translation>
+ <translation>Drużyny</translation>
</message>
<message>
<source>Schemes</source>
- <translation type="unfinished"></translation>
+ <translation>Schematy</translation>
</message>
<message>
<source>Weapons</source>
- <translation type="unfinished">Uzbrojenie</translation>
+ <translation>Uzbrojenie</translation>
</message>
<message>
<source>Frontend</source>
- <translation type="unfinished"></translation>
+ <translation>Interfejs</translation>
</message>
<message>
<source>Custom colors</source>
- <translation type="unfinished">Własne kolory</translation>
+ <translation>Własne kolory</translation>
</message>
<message>
<source>Game audio</source>
- <translation type="unfinished"></translation>
+ <translation>Dźwięki w grze</translation>
</message>
<message>
<source>Frontend audio</source>
- <translation type="unfinished"></translation>
+ <translation>Dźwięki interfejsu</translation>
</message>
<message>
<source>Account</source>
- <translation type="unfinished"></translation>
+ <translation>Konto</translation>
</message>
<message>
<source>Proxy settings</source>
- <translation type="unfinished">Ustawienia proxy</translation>
+ <translation>Ustawienia proxy</translation>
</message>
<message>
<source>Miscellaneous</source>
- <translation type="unfinished">Różne</translation>
+ <translation>Różne</translation>
</message>
<message>
<source>Updates</source>
- <translation type="unfinished"></translation>
+ <translation>Aktualizacja</translation>
</message>
<message>
<source>Check for updates</source>
- <translation type="unfinished"></translation>
+ <translation>Sprawdź aktualizacje</translation>
</message>
<message>
<source>Video recording options</source>
- <translation type="unfinished">Ustawienia nagrywania</translation>
+ <translation>Ustawienia nagrywania</translation>
</message>
</context>
<context>
@@ -1231,27 +1293,27 @@
</message>
<message>
<source>Search for a room:</source>
- <translation type="unfinished"></translation>
+ <translation>Szukaj pokoju:</translation>
</message>
<message>
<source>Create room</source>
- <translation type="unfinished"></translation>
+ <translation>Stwórz pokój</translation>
</message>
<message>
<source>Join room</source>
- <translation type="unfinished"></translation>
+ <translation>Dołącz do gry</translation>
</message>
<message>
<source>Room state</source>
- <translation type="unfinished"></translation>
+ <translation>Stan gry</translation>
</message>
<message>
<source>Clear filters</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń filtry</translation>
</message>
<message>
<source>Open server administration page</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz ustawienia admina</translation>
</message>
</context>
<context>
@@ -1374,7 +1436,7 @@
</message>
<message>
<source>Add an indestructible border along the bottom</source>
- <translation>>Dodaje niezniszczalną ramkę u dołu mapy</translation>
+ <translation>Dodaje niezniszczalną ramkę u dołu mapy</translation>
</message>
</context>
<context>
@@ -1475,12 +1537,12 @@
<message>
<source>Date: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>Data: %1</translation>
</message>
<message>
<source>Size: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>Rozmiar: %1</translation>
</message>
</context>
<context>
@@ -1531,15 +1593,15 @@
</message>
<message>
<source>Restrict Unregistered Players Join</source>
- <translation type="unfinished"></translation>
+ <translation>Blokuj niezarejestrowanych graczy</translation>
</message>
<message>
<source>Show games in lobby</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż nierozpoczęte gry</translation>
</message>
<message>
<source>Show games in-progress</source>
- <translation type="unfinished"></translation>
+ <translation>Pokaż trwające gry</translation>
</message>
</context>
<context>
@@ -1590,31 +1652,31 @@
</message>
<message>
<source>Visual effects</source>
- <translation type="unfinished"></translation>
+ <translation>Efekty wizualne</translation>
</message>
<message>
<source>Sound</source>
- <translation type="unfinished"></translation>
+ <translation>Dźwięk</translation>
</message>
<message>
<source>In-game sound effects</source>
- <translation type="unfinished"></translation>
+ <translation>Efekty dźwiękowe w grze</translation>
</message>
<message>
<source>Music</source>
- <translation type="unfinished"></translation>
+ <translation>Muzyka</translation>
</message>
<message>
<source>In-game music</source>
- <translation type="unfinished"></translation>
+ <translation>Muzyka w grze</translation>
</message>
<message>
<source>Frontend sound effects</source>
- <translation type="unfinished"></translation>
+ <translation>Efekty dźwiękowe w menu</translation>
</message>
<message>
<source>Frontend music</source>
- <translation type="unfinished"></translation>
+ <translation>Muzyka w menu</translation>
</message>
</context>
<context>
@@ -1959,43 +2021,47 @@
</message>
<message>
<source>This development build is 'work in progress' and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
- <translation type="unfinished"></translation>
+ <translation>Ta wersja deweloperska nie jest końcową wersją gry i może być niekompatybilna z innymi wersjami i niektóre funkcje mogą być niekompletne lub nie działać w ogóle!</translation>
</message>
<message>
<source>Fullscreen</source>
- <translation type="unfinished">Pełny ekran</translation>
+ <translation>Pełny ekran</translation>
</message>
<message>
<source>Fullscreen Resolution</source>
- <translation type="unfinished"></translation>
+ <translation>Rozdzielczość</translation>
</message>
<message>
<source>Windowed Resolution</source>
- <translation type="unfinished"></translation>
+ <translation>Rozmiar okna</translation>
</message>
<message>
<source>Your Email</source>
- <translation type="unfinished"></translation>
+ <translation>Twój e-mail</translation>
</message>
<message>
<source>Summary</source>
- <translation type="unfinished"></translation>
+ <translation>Krótki opis</translation>
</message>
<message>
<source>Send system information</source>
- <translation type="unfinished"></translation>
+ <translation>Wyśłij informacje o systemie</translation>
</message>
<message>
<source>Type the security code:</source>
- <translation type="unfinished"></translation>
+ <translation>Wpisz litery z obrazka:</translation>
</message>
<message>
<source>Revision</source>
- <translation type="unfinished"></translation>
+ <translation>Wersja</translation>
</message>
<message>
<source>This program is distributed under the %1</source>
- <translation type="unfinished"></translation>
+ <translation>Ten program jest rozpowszechniany na licencji %1</translation>
+ </message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation>Ustawienia zadziałają po restarcie gry.</translation>
</message>
</context>
<context>
@@ -2021,7 +2087,7 @@
</message>
<message>
<source>-r%1 (%2)</source>
- <translation type="unfinished"></translation>
+ <translation>-r%1 (%2)</translation>
</message>
</context>
<context>
@@ -2238,40 +2304,41 @@
</message>
<message>
<source>Hedgewars - Nick not registered</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Niezarejestrowany nick</translation>
</message>
<message>
<source>System Information Preview</source>
- <translation type="unfinished"></translation>
+ <translation>Podgląd informacji o systemie</translation>
</message>
<message>
<source>Failed to generate captcha</source>
- <translation type="unfinished"></translation>
+ <translation>Nie udało się wygenerować captchy</translation>
</message>
<message>
<source>Failed to download captcha</source>
- <translation type="unfinished"></translation>
+ <translation>Nie udało się pobrać captchy</translation>
</message>
<message>
<source>Please fill out all fields. Email is optional.</source>
- <translation type="unfinished"></translation>
+ <translation>Wypełnij wszystkie pola. E-mail nie jest wymagany.</translation>
</message>
<message>
<source>Hedgewars - Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Ostrzeżenie</translation>
</message>
<message>
<source>Hedgewars - Information</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Informacja</translation>
</message>
<message>
<source>Not all players are ready</source>
- <translation type="unfinished"></translation>
+ <translation>Nie wszyscy gracze są gotowi</translation>
</message>
<message>
<source>Are you sure you want to start this game?
Not all players are ready.</source>
- <translation type="unfinished"></translation>
+ <translation>Jesteś pewien, że chcesz rozpocząc grę?
+Nie wszyscy gracze są gotowi.</translation>
</message>
</context>
<context>
@@ -2338,7 +2405,7 @@
</message>
<message>
<source>Set default options</source>
- <translation>Zapisz jako domyśłne ustawienia</translation>
+ <translation>Przywróć domyślne ustawienia</translation>
</message>
<message>
<source>Open videos directory</source>
@@ -2358,58 +2425,58 @@
</message>
<message>
<source>Restore default coding parameters</source>
- <translation type="unfinished"></translation>
+ <translation>Przywróć domyślne ustawienia</translation>
</message>
<message>
<source>Open the video directory in your system</source>
- <translation type="unfinished"></translation>
+ <translation>Otwórz katalog z filmami</translation>
</message>
<message>
<source>Play this video</source>
- <translation type="unfinished"></translation>
+ <translation>Odtwórz wideo</translation>
</message>
<message>
<source>Delete this video</source>
- <translation type="unfinished"></translation>
+ <translation>Usuń wideo</translation>
</message>
<message>
<source>Upload this video to your Youtube account</source>
- <translation type="unfinished"></translation>
+ <translation>Wyślij to wideo na konto Youtube</translation>
</message>
<message>
<source>Reset</source>
- <translation type="unfinished"></translation>
+ <translation>Zresetuj</translation>
</message>
<message>
<source>Set the default server port for Hedgewars</source>
- <translation type="unfinished"></translation>
+ <translation>Ustaw domyślny port serwera Hedgewars</translation>
</message>
<message>
<source>Invite your friends to your server in just 1 click!</source>
- <translation type="unfinished"></translation>
+ <translation>Zaproś swoich znajomych jednym kliknięciem!</translation>
</message>
<message>
<source>Click to copy your unique server URL in your clipboard. Send this link to your friends ands and they will be able to join you.</source>
- <translation type="unfinished"></translation>
+ <translation>Kliknij by skopiować unikalny link twojego serwera do schowka. Wyślij link swoim znajomym aby mogli dołączyć do gry.</translation>
</message>
<message>
<source>Start private server</source>
- <translation type="unfinished"></translation>
+ <translation>Uruchom prywatny serwer</translation>
</message>
</context>
<context>
<name>RoomNamePrompt</name>
<message>
<source>Enter a name for your room.</source>
- <translation type="unfinished"></translation>
+ <translation>Wprowadź nazwę pokoju.</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Anuluj</translation>
+ <translation>Anuluj</translation>
</message>
<message>
<source>Create room</source>
- <translation type="unfinished"></translation>
+ <translation>Stwórz pokój</translation>
</message>
</context>
<context>
@@ -2463,19 +2530,19 @@
<name>SeedPrompt</name>
<message>
<source>The map seed is the basis for all random values generated by the game.</source>
- <translation type="unfinished"></translation>
+ <translation>Ziarno jest podstawą wszystkich losowych wartości tworzynych przez grę.</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Anuluj</translation>
+ <translation>Anuluj</translation>
</message>
<message>
<source>Set seed</source>
- <translation type="unfinished"></translation>
+ <translation>Ustaw ziarno</translation>
</message>
<message>
<source>Close</source>
- <translation type="unfinished"></translation>
+ <translation>Zamknij</translation>
</message>
</context>
<context>
@@ -2509,41 +2576,42 @@
<name>TCPBase</name>
<message>
<source>Unable to start server at %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Nie można uruchomić serwera na %1.</translation>
</message>
<message>
<source>Unable to run engine at %1
Error code: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Nie można uruchomić silnika na %1
+Kod błędu: %2</translation>
</message>
</context>
<context>
<name>TeamSelWidget</name>
<message>
<source>At least two teams are required to play!</source>
- <translation type="unfinished"></translation>
+ <translation>Do rozpoczęcia gry potrzeba dwóch druzyn!</translation>
</message>
</context>
<context>
<name>TeamShowWidget</name>
<message>
<source>%1's team</source>
- <translation type="unfinished"></translation>
+ <translation>Drużyna %1</translation>
</message>
</context>
<context>
<name>ThemePrompt</name>
<message>
<source>Cancel</source>
- <translation type="unfinished">Anuluj</translation>
+ <translation>Anuluj</translation>
</message>
<message>
<source>Search for a theme:</source>
- <translation type="unfinished"></translation>
+ <translation>Szukaj motywu:</translation>
</message>
<message>
<source>Use selected theme</source>
- <translation type="unfinished"></translation>
+ <translation>Użyj wybranego motywu</translation>
</message>
</context>
<context>
@@ -2714,26 +2782,26 @@
</message>
<message>
<source>hedgehog info</source>
- <translation type="unfinished"></translation>
+ <translation>informacje o jeżu</translation>
</message>
</context>
<context>
<name>binds (categories)</name>
<message>
<source>Movement</source>
- <translation type="unfinished"></translation>
+ <translation>Ruch</translation>
</message>
<message>
<source>Weapons</source>
- <translation type="unfinished">Uzbrojenie</translation>
+ <translation>Uzbrojenie</translation>
</message>
<message>
<source>Camera</source>
- <translation type="unfinished"></translation>
+ <translation>Kamera</translation>
</message>
<message>
<source>Miscellaneous</source>
- <translation type="unfinished">Różne</translation>
+ <translation>Różne</translation>
</message>
</context>
<context>
@@ -2804,7 +2872,7 @@
</message>
<message>
<source>Hedgehog movement</source>
- <translation type="unfinished"></translation>
+ <translation>Poruszanie się jeżem</translation>
</message>
</context>
<context>
@@ -3126,119 +3194,4 @@
<translation>DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -254,6 +254,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -353,6 +365,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -473,10 +489,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished">Carregar mapa</translation>
</message>
@@ -492,6 +504,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -536,7 +552,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 entrou</translation>
+ <translation type="obsolete">%1 *** %2 entrou</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -730,6 +746,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -871,6 +898,14 @@
<numerusform><b>%1</b> estava assustado e passou o turno <b>%2</b> vezes.</p>.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Salvar</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -982,6 +1017,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1970,6 +2009,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3078,119 +3121,4 @@
<translation>DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Tue Jun 04 22:28:12 2013 +0200
@@ -5,14 +5,14 @@
<name>About</name>
<message>
<source>Unknown Compiler</source>
- <translation type="unfinished"></translation>
+ <translation>Compilador Desconhecido</translation>
</message>
</context>
<context>
<name>AbstractPage</name>
<message>
<source>Go back</source>
- <translation>Retrodecer</translation>
+ <translation>Retroceder</translation>
</message>
</context>
<context>
@@ -23,96 +23,96 @@
</message>
<message>
<source>copy of</source>
- <translation>copia de</translation>
+ <translation>cópia de</translation>
</message>
</context>
<context>
<name>BanDialog</name>
<message>
<source>IP</source>
- <translation type="unfinished">IP</translation>
+ <translation>IP</translation>
</message>
<message>
<source>Nick</source>
- <translation type="unfinished"></translation>
+ <translation>Utilizador</translation>
</message>
<message>
<source>IP/Nick</source>
- <translation type="unfinished"></translation>
+ <translation>IP/Utilizador</translation>
</message>
<message>
<source>Reason</source>
- <translation type="unfinished"></translation>
+ <translation>Motivo</translation>
</message>
<message>
<source>Duration</source>
- <translation type="unfinished"></translation>
+ <translation>Duração</translation>
</message>
<message>
<source>Ok</source>
- <translation type="unfinished"></translation>
+ <translation>Ok</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Cancelar</translation>
+ <translation>Cancelar</translation>
</message>
<message>
<source>you know why</source>
- <translation type="unfinished"></translation>
+ <translation>tu sabes porquê</translation>
</message>
<message>
<source>Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Aviso</translation>
</message>
<message>
<source>Please, specify %1</source>
- <translation type="unfinished"></translation>
+ <translation>Por favor, especifica %1</translation>
</message>
<message>
<source>nickname</source>
- <translation type="unfinished"></translation>
+ <translation>utilizador</translation>
</message>
<message>
<source>permanent</source>
- <translation type="unfinished"></translation>
+ <translation>permanente</translation>
</message>
</context>
<context>
<name>DataManager</name>
<message>
<source>Use Default</source>
- <translation type="unfinished"></translation>
+ <translation>Utilizar configuração por omissão</translation>
</message>
</context>
<context>
<name>FeedbackDialog</name>
<message>
<source>View</source>
- <translation type="unfinished"></translation>
+ <translation>Ver</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Cancelar</translation>
+ <translation>Cancelar</translation>
</message>
<message>
<source>Send Feedback</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
+ <translation>Enviar Feedback</translation>
</message>
<message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
- <translation type="unfinished"></translation>
+ <translation>Estamos sempre abertos a novas sugestões, ideias, ou submissões de bugs encontrados.</translation>
+ </message>
+ <message>
+ <source>Send us feedback!</source>
+ <translation>Envia-nos feedback!</translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation>Se encontraste um bug, podes verificar se já foi submetido aqui: </translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
+ <translation>O teu e-mail é opcional, mas necessário se quiseres que te contactemos de volta.</translation>
</message>
</context>
<context>
@@ -145,68 +145,68 @@
</message>
<message>
<source>Game scheme will auto-select a weapon</source>
- <translation type="unfinished"></translation>
+ <translation>O esquema de jogo irá auto-selecionar uma arma</translation>
</message>
<message>
<source>Map</source>
- <translation type="unfinished">Mapa</translation>
+ <translation>Mapa</translation>
</message>
<message>
<source>Game options</source>
- <translation type="unfinished"></translation>
+ <translation>Opções de jogo</translation>
</message>
</context>
<context>
<name>HWApplication</name>
<message numerus="yes">
<source>%1 minutes</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 minuto</numerusform>
+ <numerusform>%1 minutos</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hour</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 hora</numerusform>
+ <numerusform>%1 horas</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hours</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 hora</numerusform>
+ <numerusform>%1 horas</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 day</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 dia</numerusform>
+ <numerusform>%1 dias</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 days</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 dia</numerusform>
+ <numerusform>%1 dias</numerusform>
</translation>
</message>
<message>
<source>Scheme '%1' not supported</source>
- <translation type="unfinished"></translation>
+ <translation>Esquema '%1' não suportado</translation>
</message>
<message>
<source>Cannot create directory %1</source>
- <translation type="unfinished">Não foi possível criar o diretório %1</translation>
+ <translation>Não foi possível criar o diretório %1</translation>
</message>
<message>
<source>Failed to open data directory:
%1
Please check your installation!</source>
- <translation type="unfinished">Erro ao abrir o diretório:
+ <translation>Erro ao abrir o diretório:
%1
Por favor verifica a tua instalação!</translation>
@@ -247,7 +247,7 @@
</message>
<message>
<source>Couldn't read %1</source>
- <translation>Não foi possivel carregar %1</translation>
+ <translation>Não foi possível carregar %1</translation>
</message>
<message>
<source>StyleSheet discarded</source>
@@ -261,6 +261,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation>Não foi possível gravar o StyleSheet em %1</translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation>%1 entrou</translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation>%1 saíu</translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation>%1 saíu (%2)</translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -305,16 +317,16 @@
<message>
<source>Someone already uses your nickname %1 on the server.
Please pick another nickname:</source>
- <translation>Alguem já está a utilizar o teu nome de utilizador %1 no servidor.
+ <translation>Alguém já está a utilizar o teu nome de utilizador %1 no servidor.
Por favor escolhe outro nome de utilizador:</translation>
</message>
<message>
<source>%1's Team</source>
- <translation type="unfinished"></translation>
+ <translation>Equipa de %1</translation>
</message>
<message>
<source>Hedgewars - Nick registered</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Utilizador registado</translation>
</message>
<message>
<source>This nick is registered, and you haven't specified a password.
@@ -322,44 +334,57 @@
If this nick isn't yours, please register your own nick at www.hedgewars.org
Password:</source>
- <translation type="unfinished"></translation>
+ <translation>Este utilizador está registado, e não foi especificada uma palavra-passe.
+
+Se este utilizador não te pertence, acede a www.hedgewars.org e regista o teu próprio utilizador.
+
+Palavra-passe:</translation>
</message>
<message>
<source>Your nickname is not registered.
To prevent someone else from using it,
please register it at www.hedgewars.org</source>
- <translation type="unfinished"></translation>
+ <translation>O teu nome de utilizador não está registado.
+De forma a prevenir que alguém o utilize,
+por favor regista-o em www.hedgewars.org</translation>
</message>
<message>
<source>
Your password wasn't saved either.</source>
- <translation type="unfinished"></translation>
+ <translation>
+
+A tua palavra-passe também não foi gravada.</translation>
</message>
<message>
<source>Hedgewars - Empty nickname</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Utilizador vazio</translation>
</message>
<message>
<source>Hedgewars - Wrong password</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Palavra-passe incorreta</translation>
</message>
<message>
<source>You entered a wrong password.</source>
- <translation type="unfinished"></translation>
+ <translation>Introduziste a palavra-passe errada.</translation>
</message>
<message>
<source>Try Again</source>
- <translation type="unfinished"></translation>
+ <translation>Tenta Novamente</translation>
</message>
<message>
<source>Hedgewars - Connection error</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Erro na ligação</translation>
</message>
<message>
<source>You reconnected too fast.
Please wait a few seconds and try again.</source>
- <translation type="unfinished"></translation>
+ <translation>Tentás-te voltar ao servidor num espaço de tempo demasiado curto.
+Por favor, aguarda alguns segundos e tenta novamente.</translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation>Esta página requer ligação à internet</translation>
</message>
</context>
<context>
@@ -401,11 +426,11 @@
</message>
<message>
<source>Small tunnels</source>
- <translation>Túneis pequenos</translation>
+ <translation>Túneis estreitos</translation>
</message>
<message>
<source>Medium tunnels</source>
- <translation>Túneis medios</translation>
+ <translation>Túneis médios</translation>
</message>
<message>
<source>Seed</source>
@@ -413,91 +438,95 @@
</message>
<message>
<source>Map type:</source>
- <translation type="unfinished"></translation>
+ <translation>Mapa:</translation>
</message>
<message>
<source>Image map</source>
- <translation type="unfinished"></translation>
+ <translation>Imagem</translation>
</message>
<message>
<source>Mission map</source>
- <translation type="unfinished"></translation>
+ <translation>Missão</translation>
</message>
<message>
<source>Hand-drawn</source>
- <translation type="unfinished">Desenhado à mão</translation>
+ <translation>Desenhado à mão</translation>
</message>
<message>
<source>Randomly generated</source>
- <translation type="unfinished"></translation>
+ <translation>Aleatoriamente gerado</translation>
</message>
<message>
<source>Random maze</source>
- <translation type="unfinished"></translation>
+ <translation>Labirinto aleatório</translation>
</message>
<message>
<source>Random</source>
- <translation type="unfinished">Aleatório</translation>
+ <translation>Aleatório</translation>
</message>
<message>
<source>Map preview:</source>
- <translation type="unfinished"></translation>
+ <translation>Pré-visualização do mapa:</translation>
</message>
<message>
<source>Load map drawing</source>
- <translation type="unfinished"></translation>
+ <translation>Carregar mapa desenhado</translation>
</message>
<message>
<source>Edit map drawing</source>
- <translation type="unfinished"></translation>
+ <translation>Editar mapa desenhado</translation>
+ </message>
+ <message>
+ <source>Large tunnels</source>
+ <translation>Túneis largos</translation>
</message>
<message>
<source>Small islands</source>
- <translation type="unfinished"></translation>
+ <translation>Ilhas pequenas</translation>
</message>
<message>
<source>Medium islands</source>
- <translation type="unfinished"></translation>
+ <translation>Ilhas médias</translation>
</message>
<message>
<source>Large islands</source>
- <translation type="unfinished"></translation>
+ <translation>Ilhas grandes</translation>
</message>
<message>
<source>Map size:</source>
- <translation type="unfinished"></translation>
+ <translation>Tamanho do mapa:</translation>
</message>
<message>
<source>Maze style:</source>
- <translation type="unfinished"></translation>
+ <translation>Estilo de labirinto:</translation>
</message>
<message>
<source>Mission:</source>
- <translation type="unfinished"></translation>
+ <translation>Missão:</translation>
</message>
<message>
<source>Map:</source>
- <translation type="unfinished"></translation>
+ <translation>Mapa:</translation>
</message>
<message>
<source>Theme: </source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Tema: </translation>
</message>
<message>
<source>Load drawn map</source>
- <translation type="unfinished">Carregar mapa desenhado</translation>
+ <translation>Carregar mapa desenhado</translation>
</message>
<message>
<source>Drawn Maps</source>
- <translation type="unfinished">Mapas Desenhados</translation>
+ <translation>Mapas Desenhados</translation>
</message>
<message>
<source>All files</source>
- <translation type="unfinished">Todos os ficheiros</translation>
- </message>
- <message>
- <source>Large tunnels</source>
- <translation type="unfinished"></translation>
+ <translation>Todos os ficheiros</translation>
+ </message>
+ <message>
+ <source>Theme: %1</source>
+ <translation>Tema: %1</translation>
</message>
</context>
<context>
@@ -535,7 +564,7 @@
</message>
<message>
<source>You got kicked</source>
- <translation>Foi expulso</translation>
+ <translation>Foste expulso</translation>
</message>
<message>
<source>%1 *** %2 has joined the room</source>
@@ -543,7 +572,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 juntou-se</translation>
+ <translation type="obsolete">%1 *** %2 entrou</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -570,22 +599,25 @@
<name>HWPasswordDialog</name>
<message>
<source>Login</source>
- <translation type="unfinished"></translation>
+ <translation>Login</translation>
</message>
<message>
<source>To connect to the server, please log in.
If you don't have an account on www.hedgewars.org,
just enter your nickname.</source>
- <translation type="unfinished"></translation>
+ <translation>Por favor faz login para aceder ao servidor.
+
+Se ainda não tens uma conta em www.hedgewars.org,
+simplesmente insere o teu nome de utilizador.</translation>
</message>
<message>
<source>Nickname:</source>
- <translation type="unfinished"></translation>
+ <translation>Utilizador:</translation>
</message>
<message>
<source>Password:</source>
- <translation type="unfinished"></translation>
+ <translation>Password:</translation>
</message>
</context>
<context>
@@ -603,36 +635,36 @@
<name>HatButton</name>
<message>
<source>Change hat (%1)</source>
- <translation type="unfinished"></translation>
+ <translation>Trocar chapéu (%1)</translation>
</message>
</context>
<context>
<name>HatPrompt</name>
<message>
<source>Cancel</source>
- <translation type="unfinished">Cancelar</translation>
+ <translation>Cancelar</translation>
</message>
<message>
<source>Use selected hat</source>
- <translation type="unfinished"></translation>
+ <translation>Utiliza o chapéu selecionado</translation>
</message>
<message>
<source>Search for a hat:</source>
- <translation type="unfinished"></translation>
+ <translation>Procurar:</translation>
</message>
</context>
<context>
<name>KB</name>
<message>
<source>SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It's recommended to update your freetype lib.</source>
- <translation>SDL_ttf retornou um erro ao renderizar o texto, muito provavelmente está relacionado com o bug no freetype2. É recomendado actualizar a sua lib freetype.</translation>
+ <translation>SDL_ttf retornou um erro ao renderizar o texto, muito provavelmente está relacionado com o bug no freetype2. É recomendado atualizar a sua lib freetype.</translation>
</message>
</context>
<context>
<name>KeyBinder</name>
<message>
<source>Category</source>
- <translation type="unfinished"></translation>
+ <translation>Categoria</translation>
</message>
</context>
<context>
@@ -653,18 +685,18 @@
</message>
<message>
<source>Audio: </source>
- <translation>Audio: </translation>
+ <translation>Áudio: </translation>
</message>
<message>
<source>unknown</source>
- <translation type="unfinished"></translation>
+ <translation>desconhecido</translation>
</message>
</context>
<context>
<name>MapModel</name>
<message>
<source>No description available.</source>
- <translation type="unfinished"></translation>
+ <translation>Nenhuma descrição disponível.</translation>
</message>
</context>
<context>
@@ -699,35 +731,35 @@
</message>
<message>
<source>General</source>
- <translation type="unfinished">Geral</translation>
+ <translation>Geral</translation>
</message>
<message>
<source>Bans</source>
- <translation type="unfinished"></translation>
+ <translation>Expulsões</translation>
</message>
<message>
<source>IP/Nick</source>
- <translation type="unfinished"></translation>
+ <translation>IP/Utilizador</translation>
</message>
<message>
<source>Expiration</source>
- <translation type="unfinished"></translation>
+ <translation>Expiração</translation>
</message>
<message>
<source>Reason</source>
- <translation type="unfinished"></translation>
+ <translation>Motivo</translation>
</message>
<message>
<source>Refresh</source>
- <translation type="unfinished"></translation>
+ <translation>Atualizar</translation>
</message>
<message>
<source>Add</source>
- <translation type="unfinished"></translation>
+ <translation>Adicionar</translation>
</message>
<message>
<source>Remove</source>
- <translation type="unfinished"></translation>
+ <translation>Remover</translation>
</message>
</context>
<context>
@@ -738,6 +770,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation>A carregar, aguarda por favor.</translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation>Esta página requer ligação à internet.</translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -784,39 +827,39 @@
</message>
<message>
<source>Select an action to choose a custom key bind for this team</source>
- <translation type="unfinished"></translation>
+ <translation>Seleciona uma ação para personalizar uma tecla com esta equipa</translation>
</message>
<message>
<source>Use my default</source>
- <translation type="unfinished"></translation>
+ <translation>Configuração por omissão</translation>
</message>
<message>
<source>Reset all binds</source>
- <translation type="unfinished"></translation>
+ <translation>Repor todos os valores</translation>
</message>
<message>
<source>Custom Controls</source>
- <translation type="unfinished"></translation>
+ <translation>Controlos Personalizados</translation>
</message>
<message>
<source>Hat</source>
- <translation type="unfinished">Chapéu</translation>
+ <translation>Chapéu</translation>
</message>
<message>
<source>Name</source>
- <translation type="unfinished">Nome</translation>
+ <translation>Nome</translation>
</message>
<message>
<source>This hedgehog's name</source>
- <translation type="unfinished"></translation>
+ <translation>Nome deste ouriço</translation>
</message>
<message>
<source>Randomize this hedgehog's name</source>
- <translation type="unfinished"></translation>
+ <translation>Escolhe um nome para este ouriço aleatoriamente</translation>
</message>
<message>
<source>Random Team</source>
- <translation type="unfinished">Equipa aleatória</translation>
+ <translation>Gerar Equipa Aleatória</translation>
</message>
</context>
<context>
@@ -879,6 +922,14 @@
<numerusform><b>%1</b> estava tão amedrontado que passou <b>%2</b> turnos.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation>Jogar novamente</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Gravar</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -910,7 +961,7 @@
</message>
<message>
<source>Read about who is behind the Hedgewars Project</source>
- <translation>Lê sobre quem está por trás do Projecto Hedgewars</translation>
+ <translation>Descobre quem está por trás do Projecto Hedgewars</translation>
</message>
<message>
<source>Leave a feedback here reporting issues, suggesting features or just saying how you like Hedgewars</source>
@@ -930,27 +981,27 @@
</message>
<message>
<source>Edit game preferences</source>
- <translation>Editar as preferencias de jogo</translation>
+ <translation>Editar as preferências de jogo</translation>
</message>
<message>
<source>Play a game across a local area network</source>
- <translation type="unfinished"></translation>
+ <translation>Joga na rede local</translation>
</message>
<message>
<source>Play a game on an official server</source>
- <translation type="unfinished"></translation>
+ <translation>Joga num servidor oficial</translation>
</message>
<message>
<source>Feedback</source>
- <translation type="unfinished"></translation>
+ <translation>Feedback</translation>
</message>
<message>
<source>Play local network game</source>
- <translation type="unfinished"></translation>
+ <translation>Jogar na rede local</translation>
</message>
<message>
<source>Play official network game</source>
- <translation type="unfinished"></translation>
+ <translation>Jogar no servidor oficial</translation>
</message>
</context>
<context>
@@ -961,37 +1012,37 @@
</message>
<message>
<source>Edit game preferences</source>
- <translation type="unfinished">Editar as preferencias de jogo</translation>
+ <translation>Editar preferências de jogo</translation>
</message>
</context>
<context>
<name>PageNetGame</name>
<message>
- <source>Control</source>
- <translation type="obsolete">Controlo</translation>
- </message>
- <message>
<source>Edit game preferences</source>
- <translation type="unfinished">Editar as preferencias de jogo</translation>
+ <translation>Editar preferências de jogo</translation>
</message>
<message>
<source>Start</source>
- <translation type="unfinished">Iniciar</translation>
+ <translation>Iniciar</translation>
</message>
<message>
<source>Update</source>
- <translation type="unfinished">Actualizar</translation>
+ <translation>Atualizar</translation>
</message>
<message>
<source>Room controls</source>
- <translation type="unfinished"></translation>
+ <translation>Restrições</translation>
</message>
</context>
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation>Clica aqui para detalhes</translation>
+ </message>
+ <message>
<source>Insert your address here</source>
- <translation type="unfinished"></translation>
+ <translation>Insere aqui o teu endereço</translation>
</message>
</context>
<context>
@@ -1042,7 +1093,7 @@
</message>
<message>
<source>Reset to default colors</source>
- <translation>Repor cores por omisão</translation>
+ <translation>Repor cores por omissão</translation>
</message>
<message>
<source>Proxy host</source>
@@ -1078,91 +1129,91 @@
</message>
<message>
<source>Select an action to change what key controls it</source>
- <translation type="unfinished"></translation>
+ <translation>Seleciona uma ação para alterar a tecla que a controla</translation>
</message>
<message>
<source>Reset to default</source>
- <translation type="unfinished"></translation>
+ <translation>Repor valor por omissão</translation>
</message>
<message>
<source>Reset all binds</source>
- <translation type="unfinished"></translation>
+ <translation>Repor todos os valores</translation>
</message>
<message>
<source>Game</source>
- <translation type="unfinished"></translation>
+ <translation>Jogo</translation>
</message>
<message>
<source>Graphics</source>
- <translation type="unfinished"></translation>
+ <translation>Gráficos</translation>
</message>
<message>
<source>Audio</source>
- <translation type="unfinished"></translation>
+ <translation>Áudio</translation>
</message>
<message>
<source>Controls</source>
- <translation type="unfinished"></translation>
+ <translation>Controlos</translation>
</message>
<message>
<source>Video Recording</source>
- <translation type="unfinished"></translation>
+ <translation>Vídeo Gravação</translation>
</message>
<message>
<source>Network</source>
- <translation type="unfinished"></translation>
+ <translation>Rede</translation>
</message>
<message>
<source>Teams</source>
- <translation type="unfinished">Equipas</translation>
+ <translation>Equipas</translation>
</message>
<message>
<source>Schemes</source>
- <translation type="unfinished"></translation>
+ <translation>Esquemas</translation>
</message>
<message>
<source>Weapons</source>
- <translation type="unfinished"></translation>
+ <translation>Armamento</translation>
</message>
<message>
<source>Frontend</source>
- <translation type="unfinished"></translation>
+ <translation>Frontend</translation>
</message>
<message>
<source>Custom colors</source>
- <translation type="unfinished">Cores personalizadas</translation>
+ <translation>Cores personalizadas</translation>
</message>
<message>
<source>Game audio</source>
- <translation type="unfinished"></translation>
+ <translation>Áudio de jogo</translation>
</message>
<message>
<source>Frontend audio</source>
- <translation type="unfinished"></translation>
+ <translation>Áudio do frontend</translation>
</message>
<message>
<source>Account</source>
- <translation type="unfinished"></translation>
+ <translation>Conta</translation>
</message>
<message>
<source>Proxy settings</source>
- <translation type="unfinished">Definições do Proxy</translation>
+ <translation>Definições do Proxy</translation>
</message>
<message>
<source>Miscellaneous</source>
- <translation type="unfinished">Outras opções</translation>
+ <translation>Outras opções</translation>
</message>
<message>
<source>Updates</source>
- <translation type="unfinished"></translation>
+ <translation>Atualizações</translation>
</message>
<message>
<source>Check for updates</source>
- <translation type="unfinished"></translation>
+ <translation>Procurar atualizações</translation>
</message>
<message>
<source>Video recording options</source>
- <translation type="unfinished">Opções de criação de vídeo</translation>
+ <translation>Opções de criação de vídeo</translation>
</message>
</context>
<context>
@@ -1179,22 +1230,10 @@
<context>
<name>PageRoomsList</name>
<message>
- <source>Create</source>
- <translation type="obsolete">Criar</translation>
- </message>
- <message>
- <source>Join</source>
- <translation type="obsolete">Entrar</translation>
- </message>
- <message>
<source>Admin features</source>
<translation>Recursos de administrador</translation>
</message>
<message>
- <source>Room Name:</source>
- <translation type="obsolete">Nome da Sala:</translation>
- </message>
- <message>
<source>Rules:</source>
<translation>Regras:</translation>
</message>
@@ -1202,14 +1241,6 @@
<source>Weapons:</source>
<translation>Armamento:</translation>
</message>
- <message>
- <source>Search:</source>
- <translation type="obsolete">Pesquisa:</translation>
- </message>
- <message>
- <source>Clear</source>
- <translation type="obsolete">Limpar</translation>
- </message>
<message numerus="yes">
<source>%1 players online</source>
<translation>
@@ -1219,27 +1250,27 @@
</message>
<message>
<source>Search for a room:</source>
- <translation type="unfinished"></translation>
+ <translation>Procurar sala:</translation>
</message>
<message>
<source>Create room</source>
- <translation type="unfinished"></translation>
+ <translation>Criar sala</translation>
</message>
<message>
<source>Join room</source>
- <translation type="unfinished"></translation>
+ <translation>Entrar no jogo</translation>
</message>
<message>
<source>Room state</source>
- <translation type="unfinished"></translation>
+ <translation>Estado da sala</translation>
</message>
<message>
<source>Clear filters</source>
- <translation type="unfinished"></translation>
+ <translation>Limpar filtros</translation>
</message>
<message>
<source>Open server administration page</source>
- <translation type="unfinished"></translation>
+ <translation>Abrir menu de administração do servidor</translation>
</message>
</context>
<context>
@@ -1278,7 +1309,7 @@
</message>
<message>
<source>Your hogs are unable to move, put your artillery skills to the test</source>
- <translation>Os teus ouriços serão impossibilidados de se mover, testa as tuas capacidades no modo artilharia</translation>
+ <translation>Os teus ouriços serão impossibilitados de se mover, testa as tuas capacidades no modo artilharia</translation>
</message>
<message>
<source>Random</source>
@@ -1310,15 +1341,15 @@
</message>
<message>
<source>Ammo is shared between all teams that share a colour.</source>
- <translation>As armas são partilhadas entre todas as equipas da mesma cor.</translation>
+ <translation>O armamento é partilhado entre todas as equipas da mesma cor.</translation>
</message>
<message>
<source>Disable girders when generating random maps.</source>
- <translation>Desactivar vigas em mapas gerados aleatoriamente.</translation>
+ <translation>Desativar vigas em mapas gerados aleatoriamente.</translation>
</message>
<message>
<source>Disable land objects when generating random maps.</source>
- <translation>Não adicionar objectos no terreno ao gerar mapas aleatórios.</translation>
+ <translation>Não adicionar objetos no terreno ao gerar mapas aleatórios.</translation>
</message>
<message>
<source>AI respawns on death.</source>
@@ -1346,7 +1377,7 @@
</message>
<message>
<source>Wind will affect almost everything.</source>
- <translation>O vento afecta praticamente tudo.</translation>
+ <translation>O vento afeta praticamente tudo.</translation>
</message>
<message>
<source>Copy</source>
@@ -1419,7 +1450,7 @@
</message>
<message>
<source>Select a mission!</source>
- <translation>Selecciona uma missão!</translation>
+ <translation>Seleciona uma missão!</translation>
</message>
<message>
<source>Pick the mission or training to play</source>
@@ -1462,12 +1493,14 @@
<message>
<source>Date: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>Data: %1
+</translation>
</message>
<message>
<source>Size: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>Tamanho: %1
+</translation>
</message>
</context>
<context>
@@ -1482,11 +1515,11 @@
</message>
<message>
<source>Restrict Joins</source>
- <translation>Restringir entradas</translation>
+ <translation>Impedir a entrada de novos utilizadores</translation>
</message>
<message>
<source>Restrict Team Additions</source>
- <translation>Restringir adição de equipas</translation>
+ <translation>Trancar a adição de equipas</translation>
</message>
<message>
<source>Ban</source>
@@ -1513,27 +1546,23 @@
<translation>Remover amigo</translation>
</message>
<message>
- <source>Update</source>
- <translation type="obsolete">Actualizar</translation>
- </message>
- <message>
<source>Restrict Unregistered Players Join</source>
- <translation type="unfinished"></translation>
+ <translation>Impedir a entrada de utilizadores não registados</translation>
</message>
<message>
<source>Show games in lobby</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar jogos a aguardar jogadores</translation>
</message>
<message>
<source>Show games in-progress</source>
- <translation type="unfinished"></translation>
+ <translation>Mostrar jogos em progresso</translation>
</message>
</context>
<context>
<name>QCheckBox</name>
<message>
<source>Check for updates at startup</source>
- <translation>Verificar por actualizações no arranque</translation>
+ <translation>Verificar por atualizações no arranque</translation>
</message>
<message>
<source>Fullscreen</source>
@@ -1553,7 +1582,7 @@
</message>
<message>
<source>Show ammo menu tooltips</source>
- <translation>Mostrar a ajuda no menu das armas</translation>
+ <translation>Mostrar a ajuda no menu de armamento</translation>
</message>
<message>
<source>Save password</source>
@@ -1569,7 +1598,7 @@
</message>
<message>
<source>Record audio</source>
- <translation>Gravar audio</translation>
+ <translation>Gravar áudio</translation>
</message>
<message>
<source>Use game resolution</source>
@@ -1577,31 +1606,31 @@
</message>
<message>
<source>Visual effects</source>
- <translation type="unfinished"></translation>
+ <translation>Efeitos visuais</translation>
</message>
<message>
<source>Sound</source>
- <translation type="unfinished"></translation>
+ <translation>Som</translation>
</message>
<message>
<source>In-game sound effects</source>
- <translation type="unfinished"></translation>
+ <translation>Efeitos sonoros durante o jogo</translation>
</message>
<message>
<source>Music</source>
- <translation type="unfinished"></translation>
+ <translation>Musica</translation>
</message>
<message>
<source>In-game music</source>
- <translation type="unfinished"></translation>
+ <translation>Musica durante o jogo</translation>
</message>
<message>
<source>Frontend sound effects</source>
- <translation type="unfinished"></translation>
+ <translation>Efeitos sonoros no frontend</translation>
</message>
<message>
<source>Frontend music</source>
- <translation type="unfinished"></translation>
+ <translation>Musica no frontend</translation>
</message>
</context>
<context>
@@ -1627,16 +1656,8 @@
<translation>Qualquer</translation>
</message>
<message>
- <source>In lobby</source>
- <translation type="obsolete">No lobby</translation>
- </message>
- <message>
- <source>In progress</source>
- <translation type="obsolete">Em progresso</translation>
- </message>
- <message>
<source>Disabled</source>
- <translation>Desactivado</translation>
+ <translation>Desativado</translation>
</message>
<message>
<source>Red/Cyan</source>
@@ -1745,12 +1766,8 @@
<translation>Minas</translation>
</message>
<message>
- <source>Version</source>
- <translation type="obsolete">Versão</translation>
- </message>
- <message>
<source>Weapons</source>
- <translation>Armas</translation>
+ <translation>Armamento</translation>
</message>
<message>
<source>Host:</source>
@@ -1854,7 +1871,7 @@
</message>
<message>
<source>Sudden Death Water Rise</source>
- <translation>Súbida da Água durante Morte Súbita</translation>
+ <translation>Subida da Água durante Morte Súbita</translation>
</message>
<message>
<source>Sudden Death Health Decrease</source>
@@ -1881,14 +1898,10 @@
<translation>% Tempo Para Retirar</translation>
</message>
<message>
- <source>This program is distributed under the GNU General Public License v2</source>
- <translation type="obsolete">Esta aplicação é distribuída sob a GNU General Public License v2</translation>
- </message>
- <message>
<source>There are videos that are currently being processed.
Exiting now will abort them.
Do you really want to quit?</source>
- <translation>Existem vídeos a serem currentemente processados.
+ <translation>Existem vídeos a serem correntemente processados.
Sair irá cancela-los.
Deseja mesmo sair?</translation>
</message>
@@ -1930,7 +1943,7 @@
</message>
<message>
<source>Audio codec</source>
- <translation>Codec de Audio</translation>
+ <translation>Codec de Áudio</translation>
</message>
<message>
<source>Video codec</source>
@@ -1946,43 +1959,47 @@
</message>
<message>
<source>This development build is 'work in progress' and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
- <translation type="unfinished"></translation>
+ <translation>Esta versão de desenvolvimento demonstra um "trabalho em progresso" o qual pode não ser compatível com outras versões do jogo, enquanto algumas funcionalidades podem estar inutilizáveis ou incompletas!</translation>
</message>
<message>
<source>Fullscreen</source>
- <translation type="unfinished">Ecrã completo</translation>
+ <translation>Ecrã completo</translation>
</message>
<message>
<source>Fullscreen Resolution</source>
- <translation type="unfinished"></translation>
+ <translation>Resolução Ecrã Completo</translation>
</message>
<message>
<source>Windowed Resolution</source>
- <translation type="unfinished"></translation>
+ <translation>Resolução da Janela</translation>
</message>
<message>
<source>Your Email</source>
- <translation type="unfinished"></translation>
+ <translation>E-mail</translation>
</message>
<message>
<source>Summary</source>
- <translation type="unfinished"></translation>
+ <translation>Sumário</translation>
</message>
<message>
<source>Send system information</source>
- <translation type="unfinished"></translation>
+ <translation>Enviar informações de sistema</translation>
</message>
<message>
<source>Type the security code:</source>
- <translation type="unfinished"></translation>
+ <translation>Digita o código de segurança:</translation>
</message>
<message>
<source>Revision</source>
- <translation type="unfinished"></translation>
+ <translation>Revisão</translation>
</message>
<message>
<source>This program is distributed under the %1</source>
- <translation type="unfinished"></translation>
+ <translation>Este programa é distribuído sob a %1</translation>
+ </message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation>Esta opção entrará em efeito quando o jogo for reiniciado.</translation>
</message>
</context>
<context>
@@ -2008,7 +2025,7 @@
</message>
<message>
<source>-r%1 (%2)</source>
- <translation type="unfinished"></translation>
+ <translation>-r%1 (%2)</translation>
</message>
</context>
<context>
@@ -2023,7 +2040,7 @@
</message>
<message>
<source>File association failed.</source>
- <translation>Não foi possivel associar os ficheiros.</translation>
+ <translation>Não foi possível associar os ficheiros.</translation>
</message>
<message>
<source>Error while authenticating at google.com:
@@ -2051,7 +2068,7 @@
</message>
<message>
<source>Cannot delete default scheme '%1'!</source>
- <translation>Não é possivel apagar o esquema por omisão '%1'!</translation>
+ <translation>Não é possível apagar o esquema por omissão '%1'!</translation>
</message>
<message>
<source>Please select a record from the list</source>
@@ -2101,7 +2118,7 @@
</message>
<message>
<source>Unable to run engine at </source>
- <translation type="obsolete">Não foi possivel lançar o motor de jogo em </translation>
+ <translation type="obsolete">Não foi possível lançar o motor de jogo em </translation>
</message>
<message>
<source>Error code: %1</source>
@@ -2129,15 +2146,15 @@
</message>
<message>
<source>Please select record from the list</source>
- <translation>Por favor selecciona uma gravação da lista</translation>
+ <translation>Por favor seleciona uma gravação da lista</translation>
</message>
<message>
<source>Cannot rename to </source>
- <translation>Não é possivel renomear para </translation>
+ <translation>Não é possível renomear para </translation>
</message>
<message>
<source>Cannot delete file </source>
- <translation>Não é possivel apagar o ficheiro </translation>
+ <translation>Não é possível apagar o ficheiro </translation>
</message>
<message>
<source>Room Name - Error</source>
@@ -2145,7 +2162,7 @@
</message>
<message>
<source>Please select room from the list</source>
- <translation>Por favor selecciona uma sala da lista</translation>
+ <translation>Por favor seleciona uma sala da lista</translation>
</message>
<message>
<source>Room Name - Are you sure?</source>
@@ -2194,31 +2211,31 @@
</message>
<message>
<source>Cannot open '%1' for writing</source>
- <translation>Impossivel abrir '%1' para escrita</translation>
+ <translation>Impossível abrir '%1' para escrita</translation>
</message>
<message>
<source>Cannot open '%1' for reading</source>
- <translation>Impossivel abrir '%1' para leitura</translation>
+ <translation>Impossível abrir '%1' para leitura</translation>
</message>
<message>
<source>Cannot use the ammo '%1'!</source>
- <translation>Impossivel utilizar as munições '%1'!</translation>
+ <translation>Impossível utilizar as munições '%1'!</translation>
</message>
<message>
<source>Weapons - Warning</source>
- <translation>Armas - Aviso</translation>
+ <translation>Armamento - Aviso</translation>
</message>
<message>
<source>Cannot overwrite default weapon set '%1'!</source>
- <translation>Não é possivel substituir o esquema de armas '%1'!</translation>
+ <translation>Não é possível substituir o esquema de armas '%1'!</translation>
</message>
<message>
<source>Cannot delete default weapon set '%1'!</source>
- <translation>Não é possivel apagar o esquema de armas por omisão '%1'!</translation>
+ <translation>Não é possível apagar o esquema de armas por omissão '%1'!</translation>
</message>
<message>
<source>Weapons - Are you sure?</source>
- <translation>Armas - Tens a certeza?</translation>
+ <translation>Armamento - Tens a certeza?</translation>
</message>
<message>
<source>Do you really want to delete the weapon set '%1'?</source>
@@ -2226,40 +2243,45 @@
</message>
<message>
<source>Hedgewars - Nick not registered</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Utilizador não registado</translation>
</message>
<message>
<source>System Information Preview</source>
- <translation type="unfinished"></translation>
+ <translation>Pré-visualizar Informação do Sistema</translation>
</message>
<message>
<source>Failed to generate captcha</source>
- <translation type="unfinished"></translation>
+ <translation>Não foi possível gerar o captcha</translation>
</message>
<message>
<source>Failed to download captcha</source>
- <translation type="unfinished"></translation>
+ <translation>Não foi possível descarregar o captcha</translation>
</message>
<message>
<source>Please fill out all fields. Email is optional.</source>
- <translation type="unfinished"></translation>
+ <translation>Por favor preenche todos os campos. O e-mail é opcional.</translation>
</message>
<message>
<source>Hedgewars - Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Aviso</translation>
</message>
<message>
<source>Hedgewars - Information</source>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars - Informação</translation>
+ </message>
+ <message>
+ <source>Hedgewars</source>
+ <translation type="obsolete">Hedgewars</translation>
</message>
<message>
<source>Not all players are ready</source>
- <translation type="unfinished"></translation>
+ <translation>Nem todos os jogadores se encontram prontos</translation>
</message>
<message>
<source>Are you sure you want to start this game?
Not all players are ready.</source>
- <translation type="unfinished"></translation>
+ <translation>Tens a certeza que queres iniciar este jogo?
+Nem todos os jogadores estão prontos.</translation>
</message>
</context>
<context>
@@ -2286,7 +2308,7 @@
</message>
<message>
<source>Update</source>
- <translation>Actualizar</translation>
+ <translation>Atualizar</translation>
</message>
<message>
<source>Specify</source>
@@ -2326,7 +2348,7 @@
</message>
<message>
<source>Set default options</source>
- <translation>Restaurar opções por omisão</translation>
+ <translation>Restaurar opções por omissão</translation>
</message>
<message>
<source>Open videos directory</source>
@@ -2346,7 +2368,7 @@
</message>
<message>
<source>Restore default coding parameters</source>
- <translation>Restaurar os parametros de conversão por omisão</translation>
+ <translation>Restaurar os parâmetros de conversão por omissão</translation>
</message>
<message>
<source>Open the video directory in your system</source>
@@ -2366,38 +2388,38 @@
</message>
<message>
<source>Reset</source>
- <translation type="unfinished"></translation>
+ <translation>Repor</translation>
</message>
<message>
<source>Set the default server port for Hedgewars</source>
- <translation type="unfinished"></translation>
+ <translation>Define a porta por omisão do servidor Hedgewars</translation>
</message>
<message>
<source>Invite your friends to your server in just 1 click!</source>
- <translation type="unfinished"></translation>
+ <translation>Convida os teus amigos para o teu servidor com apenas 1 click!</translation>
</message>
<message>
<source>Click to copy your unique server URL in your clipboard. Send this link to your friends ands and they will be able to join you.</source>
- <translation type="unfinished"></translation>
+ <translation>Clica para copiar o URL do teu servidor. Partilha este link com os teus amigos para que se possam juntar a ti.</translation>
</message>
<message>
<source>Start private server</source>
- <translation type="unfinished"></translation>
+ <translation>Iniciar o servidor privado</translation>
</message>
</context>
<context>
<name>RoomNamePrompt</name>
<message>
<source>Enter a name for your room.</source>
- <translation type="unfinished"></translation>
+ <translation>Introduz um nome para a tua sala de jogo.</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Cancelar</translation>
+ <translation>Cancelar</translation>
</message>
<message>
<source>Create room</source>
- <translation type="unfinished"></translation>
+ <translation>Criar sala</translation>
</message>
</context>
<context>
@@ -2451,19 +2473,19 @@
<name>SeedPrompt</name>
<message>
<source>The map seed is the basis for all random values generated by the game.</source>
- <translation type="unfinished"></translation>
+ <translation>A semente do mapa é a base de todos os valores aleatórios gerados pelo jogo.</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Cancelar</translation>
+ <translation>Cancelar</translation>
</message>
<message>
<source>Set seed</source>
- <translation type="unfinished"></translation>
+ <translation>Definir semente</translation>
</message>
<message>
<source>Close</source>
- <translation type="unfinished"></translation>
+ <translation>Fechar</translation>
</message>
</context>
<context>
@@ -2478,7 +2500,7 @@
</message>
<message>
<source>Ammo in boxes</source>
- <translation>Caixas de armas</translation>
+ <translation>Munições por caixa</translation>
</message>
<message>
<source>Delays</source>
@@ -2497,41 +2519,42 @@
<name>TCPBase</name>
<message>
<source>Unable to start server at %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Não foi possível iniciar o servidor em %1.</translation>
</message>
<message>
<source>Unable to run engine at %1
Error code: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Não foi possível iniciar o motor de jogo em %1
+Código de erro:: %2</translation>
</message>
</context>
<context>
<name>TeamSelWidget</name>
<message>
<source>At least two teams are required to play!</source>
- <translation type="unfinished"></translation>
+ <translation>São necessárias pelo menos 2 equipas (para jogar)!</translation>
</message>
</context>
<context>
<name>TeamShowWidget</name>
<message>
<source>%1's team</source>
- <translation type="unfinished"></translation>
+ <translation>Equipa de %1</translation>
</message>
</context>
<context>
<name>ThemePrompt</name>
<message>
<source>Cancel</source>
- <translation type="unfinished">Cancelar</translation>
+ <translation>Cancelar</translation>
</message>
<message>
<source>Search for a theme:</source>
- <translation type="unfinished"></translation>
+ <translation>Procurar:</translation>
</message>
<message>
<source>Use selected theme</source>
- <translation type="unfinished"></translation>
+ <translation>Utilizar o tema selecionado</translation>
</message>
</context>
<context>
@@ -2574,7 +2597,7 @@
</message>
<message>
<source>ammo menu</source>
- <translation>menu de armas</translation>
+ <translation>menu de armamento</translation>
</message>
<message>
<source>slot 1</source>
@@ -2694,7 +2717,7 @@
</message>
<message>
<source>mute audio</source>
- <translation>Silenciar audio</translation>
+ <translation>silenciar áudio</translation>
</message>
<message>
<source>record</source>
@@ -2702,65 +2725,65 @@
</message>
<message>
<source>hedgehog info</source>
- <translation type="unfinished"></translation>
+ <translation>informação do ouriço</translation>
</message>
</context>
<context>
<name>binds (categories)</name>
<message>
<source>Movement</source>
- <translation type="unfinished"></translation>
+ <translation>Movimento</translation>
</message>
<message>
<source>Weapons</source>
- <translation type="unfinished"></translation>
+ <translation>Armamento</translation>
</message>
<message>
<source>Camera</source>
- <translation type="unfinished"></translation>
+ <translation>Câmara</translation>
</message>
<message>
<source>Miscellaneous</source>
- <translation type="unfinished">Outras opções</translation>
+ <translation>Outras opções</translation>
</message>
</context>
<context>
<name>binds (descriptions)</name>
<message>
<source>Traverse gaps and obstacles by jumping:</source>
- <translation>Ultrapassar fendas e obstaculos saltando:</translation>
+ <translation>Ultrapassar fendas e obstáculos:</translation>
</message>
<message>
<source>Fire your selected weapon or trigger an utility item:</source>
- <translation>Disparar a arma currentemente seleccionada ou utilizar um utilitario:</translation>
+ <translation>Disparar a arma correntemente selecionada ou utilizar um utilitario:</translation>
</message>
<message>
<source>Pick a weapon or a target location under the cursor:</source>
- <translation>Seleccionar uma arma ou escolher um alvo com o cursor:</translation>
+ <translation>Selecionar uma arma ou escolher um alvo com o cursor:</translation>
</message>
<message>
<source>Switch your currently active hog (if possible):</source>
- <translation>Trocar de ouriço currentemente seleccionado (se possivel):</translation>
+ <translation>Trocar de ouriço correntemente selecionado (se possível):</translation>
</message>
<message>
<source>Pick a weapon or utility item:</source>
- <translation>Apanhar armas ou utilitarios:</translation>
+ <translation>Selecionar armas ou utilitários:</translation>
</message>
<message>
<source>Set the timer on bombs and timed weapons:</source>
- <translation>Escolher o tempo nas bombas e outras armas temporizadas:</translation>
+ <translation>Definir o temporizador nas bombas e em outras armas temporizadas:</translation>
</message>
<message>
<source>Move the camera to the active hog:</source>
- <translation>Mover a camara para o ouriço currentemente activo:</translation>
+ <translation>Mover a câmara para o ouriço correntemente activo:</translation>
</message>
<message>
<source>Move the cursor or camera without using the mouse:</source>
- <translation>Mover o cursor ou camara sem usar o rato:</translation>
+ <translation>Mover o cursor ou câmara sem utilizar o rato:</translation>
</message>
<message>
<source>Modify the camera's zoom level:</source>
- <translation>Modificar o nível de zoom da camara:</translation>
+ <translation>Modificar o nível de zoom da câmara:</translation>
</message>
<message>
<source>Talk to your team or all participants:</source>
@@ -2776,7 +2799,7 @@
</message>
<message>
<source>Toggle fullscreen mode:</source>
- <translation>Alterar para modo de ecrã inteiro:</translation>
+ <translation>Ativar ou desativar o modo ecrã inteiro:</translation>
</message>
<message>
<source>Take a screenshot:</source>
@@ -2792,7 +2815,7 @@
</message>
<message>
<source>Hedgehog movement</source>
- <translation type="unfinished"></translation>
+ <translation>Movimentar ouriço</translation>
</message>
</context>
<context>
@@ -3118,115 +3141,115 @@
<name>server</name>
<message>
<source>Not room master</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Não és o anfitrião da sala</translation>
</message>
<message>
<source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Informação dos ouriços corrompida</translation>
</message>
<message>
<source>too many teams</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">demasiadas equipas</translation>
</message>
<message>
<source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">demasiados ouriços</translation>
</message>
<message>
<source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Já existe uma equipa com o mesmo nome na lista</translation>
</message>
<message>
<source>round in progress</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">partida em progresso</translation>
</message>
<message>
<source>restricted</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">limitada</translation>
</message>
<message>
<source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">REMOVE_TEAM: equipa inexistente</translation>
</message>
<message>
<source>Not team owner!</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">A equipa não te pertence!</translation>
</message>
<message>
<source>Less than two clans!</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Menos de 2 clãs!</translation>
</message>
<message>
<source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Já existe uma sala com esse nome</translation>
</message>
<message>
<source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Utilizador já em uso</translation>
</message>
<message>
<source>Illegal nickname</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Nome de utilizador ilegal</translation>
</message>
<message>
<source>Protocol already known</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Protocolo já conhecido</translation>
</message>
<message>
<source>Bad number</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Número inválido</translation>
</message>
<message>
<source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Nome de utilizador já em uso</translation>
</message>
<message>
<source>No checker rights</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Não possui permissões para verificar</translation>
</message>
<message>
<source>Authentication failed</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">A autenticação falhou</translation>
</message>
<message>
<source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">É necessário aguardar 60 segundos após uma expulsão</translation>
</message>
<message>
<source>kicked</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">expulso</translation>
</message>
<message>
<source>Ping timeout</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Ping timeout</translation>
</message>
<message>
<source>bye</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">tchau (bye)</translation>
</message>
<message>
<source>Illegal room name</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Nome da sala ilegal</translation>
</message>
<message>
<source>No such room</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Sala inexistente</translation>
</message>
<message>
<source>Joining restricted</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Entrada restrita</translation>
</message>
<message>
<source>Registered users only</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Apenas utilizadores registados</translation>
</message>
<message>
<source>You are banned in this room</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Estás banido desta sala</translation>
</message>
<message>
<source>Empty config entry</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Campo vazio na configuração</translation>
</message>
</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_ro.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ro.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -260,6 +260,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -359,6 +371,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -478,10 +494,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
@@ -497,6 +509,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -541,7 +557,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 has joined</translation>
+ <translation type="obsolete">%1 *** %2 has joined</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -735,6 +751,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -882,6 +909,14 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -993,6 +1028,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1967,6 +2006,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3070,119 +3113,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_ru.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ru.ts Tue Jun 04 22:28:12 2013 +0200
@@ -5,7 +5,7 @@
<name>About</name>
<message>
<source>Unknown Compiler</source>
- <translation type="unfinished"></translation>
+ <translation>Неизвестный компилятор</translation>
</message>
</context>
<context>
@@ -30,31 +30,31 @@
<name>BanDialog</name>
<message>
<source>IP</source>
- <translation type="unfinished">IP</translation>
+ <translation>IP</translation>
</message>
<message>
<source>Nick</source>
- <translation type="unfinished"></translation>
+ <translation>Псевдоним</translation>
</message>
<message>
<source>IP/Nick</source>
- <translation type="unfinished"></translation>
+ <translation>IP/Псевдоним</translation>
</message>
<message>
<source>Reason</source>
- <translation type="unfinished"></translation>
+ <translation>Причина</translation>
</message>
<message>
<source>Duration</source>
- <translation type="unfinished"></translation>
+ <translation>Длительность</translation>
</message>
<message>
<source>Ok</source>
- <translation type="unfinished"></translation>
+ <translation>ОК</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Отмена</translation>
+ <translation>Отмена</translation>
</message>
<message>
<source>you know why</source>
@@ -62,57 +62,57 @@
</message>
<message>
<source>Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Предупреждение</translation>
</message>
<message>
<source>Please, specify %1</source>
- <translation type="unfinished"></translation>
+ <translation>Пожалуйста, укажите %1</translation>
</message>
<message>
<source>nickname</source>
- <translation type="unfinished"></translation>
+ <translation>псевдоним</translation>
</message>
<message>
<source>permanent</source>
- <translation type="unfinished"></translation>
+ <translation>постоянный</translation>
</message>
</context>
<context>
<name>DataManager</name>
<message>
<source>Use Default</source>
- <translation type="unfinished"></translation>
+ <translation>Использовать значение по умолчанию</translation>
</message>
</context>
<context>
<name>FeedbackDialog</name>
<message>
<source>View</source>
- <translation type="unfinished"></translation>
+ <translation>Вид</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Отмена</translation>
+ <translation>Отмена</translation>
</message>
<message>
<source>Send Feedback</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
+ <translation>Отослать отзыв</translation>
</message>
<message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
- <translation type="unfinished"></translation>
+ <translation>Мы всегда рады новым предложениям, идям или сообщениям об ошибках.</translation>
+ </message>
+ <message>
+ <source>Send us feedback!</source>
+ <translation>Пришлите нам отзыв!</translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation>Если вы нашли ошибку, можете проверить, не было ли уже сообщения о ней здесь:</translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
+ <translation>Адрес e-mail необязателен, но необходим, если вы хотите получить ответ.</translation>
</message>
</context>
<context>
@@ -146,73 +146,76 @@
</message>
<message>
<source>Game scheme will auto-select a weapon</source>
- <translation type="unfinished"></translation>
+ <translation>Схема игры определяет набор оружия</translation>
</message>
<message>
<source>Map</source>
- <translation type="unfinished">Карта</translation>
+ <translation>Карта</translation>
</message>
<message>
<source>Game options</source>
- <translation type="unfinished"></translation>
+ <translation>Настройки игры</translation>
</message>
</context>
<context>
<name>HWApplication</name>
<message numerus="yes">
<source>%1 minutes</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 минута</numerusform>
+ <numerusform>%1 минуты</numerusform>
+ <numerusform>%1 минут</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hour</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 час</numerusform>
+ <numerusform>%1 часа</numerusform>
+ <numerusform>%1 часов</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hours</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 час</numerusform>
+ <numerusform>%1 часа</numerusform>
+ <numerusform>%1 часов</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 day</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 день</numerusform>
+ <numerusform>%1 дня</numerusform>
+ <numerusform>%1 дней</numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 days</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%1 день</numerusform>
+ <numerusform>%1 дня</numerusform>
+ <numerusform>%1 дней</numerusform>
</translation>
</message>
<message>
<source>Scheme '%1' not supported</source>
- <translation type="unfinished"></translation>
+ <translation>Схема "%1" не поддерживается</translation>
</message>
<message>
<source>Cannot create directory %1</source>
- <translation type="unfinished">Не могу создать папку %1</translation>
+ <translation>Не могу создать папку %1</translation>
</message>
<message>
<source>Failed to open data directory:
%1
Please check your installation!</source>
- <translation type="unfinished"></translation>
+ <translation>Не могу открыть папку:
+%1
+
+Пожалуйста, проверьте установку приложения!</translation>
</message>
</context>
<context>
@@ -264,6 +267,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation>Ошибка при сохранении стиля в %1</translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation>%1 вошёл</translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation>%1 вышел</translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation>%1 вышел (%2)</translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -313,7 +328,7 @@
</message>
<message>
<source>%1's Team</source>
- <translation type="unfinished"></translation>
+ <translation>Команда %1</translation>
</message>
<message>
<source>Hedgewars - Nick registered</source>
@@ -362,6 +377,11 @@
<message>
<source>You reconnected too fast.
Please wait a few seconds and try again.</source>
+ <translation>Вы переподключились слишком быстро.
+Пожалуйста, попробуйте снова через несколько секунд.</translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -416,91 +436,91 @@
</message>
<message>
<source>Map type:</source>
- <translation type="unfinished"></translation>
+ <translation>Тип карты:</translation>
</message>
<message>
<source>Image map</source>
- <translation type="unfinished"></translation>
+ <translation>Изображение</translation>
</message>
<message>
<source>Mission map</source>
- <translation type="unfinished"></translation>
+ <translation>Миссия</translation>
</message>
<message>
<source>Hand-drawn</source>
- <translation type="unfinished">Рисованная карта</translation>
+ <translation>Рисованная карта</translation>
</message>
<message>
<source>Randomly generated</source>
- <translation type="unfinished"></translation>
+ <translation>Случайно сгенерированная</translation>
</message>
<message>
<source>Random maze</source>
- <translation type="unfinished"></translation>
+ <translation>Случайный лабиринт</translation>
</message>
<message>
<source>Random</source>
- <translation type="unfinished">Случайно</translation>
+ <translation>Случайно</translation>
</message>
<message>
<source>Map preview:</source>
- <translation type="unfinished"></translation>
+ <translation>Предпросмотр карты:</translation>
</message>
<message>
<source>Load map drawing</source>
- <translation type="unfinished"></translation>
+ <translation>Загрузить рисованную карту</translation>
</message>
<message>
<source>Edit map drawing</source>
- <translation type="unfinished"></translation>
+ <translation>Редактировать рисованную карту</translation>
</message>
<message>
<source>Small islands</source>
- <translation type="unfinished"></translation>
+ <translation>Маленькие острова</translation>
</message>
<message>
<source>Medium islands</source>
- <translation type="unfinished"></translation>
+ <translation>Средние острова</translation>
</message>
<message>
<source>Large islands</source>
- <translation type="unfinished"></translation>
+ <translation>Большие острова</translation>
</message>
<message>
<source>Map size:</source>
- <translation type="unfinished"></translation>
+ <translation>Размер карты:</translation>
</message>
<message>
<source>Maze style:</source>
- <translation type="unfinished"></translation>
+ <translation>Стиль лабиринта:</translation>
</message>
<message>
<source>Mission:</source>
- <translation type="unfinished"></translation>
+ <translation>Миссия:</translation>
</message>
<message>
<source>Map:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
+ <translation>Карта:</translation>
</message>
<message>
<source>Load drawn map</source>
- <translation type="unfinished">Загрузить рисованную карту</translation>
+ <translation>Загрузить рисованную карту</translation>
</message>
<message>
<source>Drawn Maps</source>
- <translation type="unfinished">Рисованные карты</translation>
+ <translation>Рисованные карты</translation>
</message>
<message>
<source>All files</source>
- <translation type="unfinished">Все файлы</translation>
+ <translation>Все файлы</translation>
</message>
<message>
<source>Large tunnels</source>
- <translation type="unfinished"></translation>
+ <translation>Большие туннели</translation>
+ </message>
+ <message>
+ <source>Theme: %1</source>
+ <translation>Тема: %1</translation>
</message>
</context>
<context>
@@ -546,7 +566,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 вошёл</translation>
+ <translation type="obsolete">%1 *** %2 вошёл</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -584,11 +604,11 @@
</message>
<message>
<source>Nickname:</source>
- <translation type="unfinished"></translation>
+ <translation>Псевдоним:</translation>
</message>
<message>
<source>Password:</source>
- <translation type="unfinished"></translation>
+ <translation>Пароль:</translation>
</message>
</context>
<context>
@@ -606,22 +626,22 @@
<name>HatButton</name>
<message>
<source>Change hat (%1)</source>
- <translation type="unfinished"></translation>
+ <translation>Сменить шляпу (%1)</translation>
</message>
</context>
<context>
<name>HatPrompt</name>
<message>
<source>Cancel</source>
- <translation type="unfinished">Отмена</translation>
+ <translation>Отмена</translation>
</message>
<message>
<source>Use selected hat</source>
- <translation type="unfinished"></translation>
+ <translation>Использовать выбранную шляпу</translation>
</message>
<message>
<source>Search for a hat:</source>
- <translation type="unfinished"></translation>
+ <translation>Поиск по шляпам:</translation>
</message>
</context>
<context>
@@ -635,7 +655,7 @@
<name>KeyBinder</name>
<message>
<source>Category</source>
- <translation type="unfinished"></translation>
+ <translation>Категория</translation>
</message>
</context>
<context>
@@ -643,30 +663,30 @@
<message>
<source>Duration: %1m %2s
</source>
- <translation type="unfinished">Длительность: %1мин %2сек</translation>
+ <translation>Длительность: %1мин %2сек</translation>
</message>
<message>
<source>Video: %1x%2, </source>
- <translation type="unfinished">Видео: %1x%2, </translation>
+ <translation>Видео: %1x%2, </translation>
</message>
<message>
<source>%1 fps, </source>
- <translation type="unfinished">%1 кадров/сек,</translation>
+ <translation>%1 кадров/сек,</translation>
</message>
<message>
<source>Audio: </source>
- <translation type="unfinished">Аудио: </translation>
+ <translation>Аудио: </translation>
</message>
<message>
<source>unknown</source>
- <translation type="unfinished"></translation>
+ <translation>неизвестно</translation>
</message>
</context>
<context>
<name>MapModel</name>
<message>
<source>No description available.</source>
- <translation type="unfinished"></translation>
+ <translation>Описание отсутствует.</translation>
</message>
</context>
<context>
@@ -701,35 +721,35 @@
</message>
<message>
<source>General</source>
- <translation type="unfinished">Основные настройки</translation>
+ <translation>Основные настройки</translation>
</message>
<message>
<source>Bans</source>
- <translation type="unfinished"></translation>
+ <translation>Баны</translation>
</message>
<message>
<source>IP/Nick</source>
- <translation type="unfinished"></translation>
+ <translation>IP/Псевдоним</translation>
</message>
<message>
<source>Expiration</source>
- <translation type="unfinished"></translation>
+ <translation>Окончание</translation>
</message>
<message>
<source>Reason</source>
- <translation type="unfinished"></translation>
+ <translation>Причина</translation>
</message>
<message>
<source>Refresh</source>
- <translation type="unfinished"></translation>
+ <translation>Обновить</translation>
</message>
<message>
<source>Add</source>
- <translation type="unfinished"></translation>
+ <translation>Добавить</translation>
</message>
<message>
<source>Remove</source>
- <translation type="unfinished"></translation>
+ <translation>Удалить</translation>
</message>
</context>
<context>
@@ -740,6 +760,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation>Идёт загрузка пожалуйста, подождите.</translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -790,35 +821,35 @@
</message>
<message>
<source>Use my default</source>
- <translation type="unfinished"></translation>
+ <translation>Использовать мои настройки по умолчанию</translation>
</message>
<message>
<source>Reset all binds</source>
- <translation type="unfinished"></translation>
+ <translation>Сбросить все привязки</translation>
</message>
<message>
<source>Custom Controls</source>
- <translation type="unfinished"></translation>
+ <translation>Настройка управления</translation>
</message>
<message>
<source>Hat</source>
- <translation type="unfinished">Шляпа</translation>
+ <translation>Шляпа</translation>
</message>
<message>
<source>Name</source>
- <translation type="unfinished">Название</translation>
+ <translation>Название</translation>
</message>
<message>
<source>This hedgehog's name</source>
- <translation type="unfinished"></translation>
+ <translation>Имя этого ежа</translation>
</message>
<message>
<source>Randomize this hedgehog's name</source>
- <translation type="unfinished"></translation>
+ <translation>Выбрать случайное имя для этого ежа</translation>
</message>
<message>
<source>Random Team</source>
- <translation type="unfinished">Случайная команда</translation>
+ <translation>Случайная команда</translation>
</message>
</context>
<context>
@@ -887,6 +918,14 @@
<numerusform><b>%1</b> испугался и пропустил <b>%2</b> ходов.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Сохранить</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -942,23 +981,23 @@
</message>
<message>
<source>Play a game across a local area network</source>
- <translation type="unfinished"></translation>
+ <translation>Играть по локальной сети</translation>
</message>
<message>
<source>Play a game on an official server</source>
- <translation type="unfinished"></translation>
+ <translation>Играть на официальном сервере</translation>
</message>
<message>
<source>Feedback</source>
- <translation type="unfinished"></translation>
+ <translation>Отзыв</translation>
</message>
<message>
<source>Play local network game</source>
- <translation type="unfinished"></translation>
+ <translation>Играть по локальной сети</translation>
</message>
<message>
<source>Play official network game</source>
- <translation type="unfinished"></translation>
+ <translation>Играть на официальном сервере</translation>
</message>
</context>
<context>
@@ -969,7 +1008,7 @@
</message>
<message>
<source>Edit game preferences</source>
- <translation type="unfinished">Редактировать настройки игры</translation>
+ <translation>Редактировать настройки игры</translation>
</message>
</context>
<context>
@@ -980,24 +1019,28 @@
</message>
<message>
<source>Edit game preferences</source>
- <translation type="unfinished">Редактировать настройки игры</translation>
+ <translation>Редактировать настройки игры</translation>
</message>
<message>
<source>Start</source>
- <translation type="unfinished">Старт</translation>
+ <translation>Старт</translation>
</message>
<message>
<source>Update</source>
- <translation type="unfinished">Обновить</translation>
+ <translation>Обновить</translation>
</message>
<message>
<source>Room controls</source>
- <translation type="unfinished"></translation>
+ <translation>Управление комнатой</translation>
</message>
</context>
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1090,47 +1133,47 @@
</message>
<message>
<source>Reset to default</source>
- <translation type="unfinished"></translation>
+ <translation>Сбросить на значения по умолчанию</translation>
</message>
<message>
<source>Reset all binds</source>
- <translation type="unfinished"></translation>
+ <translation>Сбросить все привязки</translation>
</message>
<message>
<source>Game</source>
- <translation type="unfinished"></translation>
+ <translation>Игра</translation>
</message>
<message>
<source>Graphics</source>
- <translation type="unfinished"></translation>
+ <translation>Графика</translation>
</message>
<message>
<source>Audio</source>
- <translation type="unfinished"></translation>
+ <translation>Звук</translation>
</message>
<message>
<source>Controls</source>
- <translation type="unfinished"></translation>
+ <translation>Управление</translation>
</message>
<message>
<source>Video Recording</source>
- <translation type="unfinished"></translation>
+ <translation>Запись видео</translation>
</message>
<message>
<source>Network</source>
- <translation type="unfinished"></translation>
+ <translation>Сеть</translation>
</message>
<message>
<source>Teams</source>
- <translation type="unfinished">Команды</translation>
+ <translation>Команды</translation>
</message>
<message>
<source>Schemes</source>
- <translation type="unfinished"></translation>
+ <translation>Схемы</translation>
</message>
<message>
<source>Weapons</source>
- <translation type="unfinished">Оружие</translation>
+ <translation>Оружие</translation>
</message>
<message>
<source>Frontend</source>
@@ -1138,7 +1181,7 @@
</message>
<message>
<source>Custom colors</source>
- <translation type="unfinished">Свои цвета</translation>
+ <translation>Свои цвета</translation>
</message>
<message>
<source>Game audio</source>
@@ -1154,23 +1197,23 @@
</message>
<message>
<source>Proxy settings</source>
- <translation type="unfinished">Настройки прокси</translation>
+ <translation>Настройки прокси</translation>
</message>
<message>
<source>Miscellaneous</source>
- <translation type="unfinished">Разное</translation>
+ <translation>Разное</translation>
</message>
<message>
<source>Updates</source>
- <translation type="unfinished"></translation>
+ <translation>Обновления</translation>
</message>
<message>
<source>Check for updates</source>
- <translation type="unfinished"></translation>
+ <translation>Проверить обновления</translation>
</message>
<message>
<source>Video recording options</source>
- <translation type="unfinished">Настройки видео</translation>
+ <translation>Настройки видео</translation>
</message>
</context>
<context>
@@ -1228,27 +1271,27 @@
</message>
<message>
<source>Search for a room:</source>
- <translation type="unfinished"></translation>
+ <translation>Искать комнату:</translation>
</message>
<message>
<source>Create room</source>
- <translation type="unfinished"></translation>
+ <translation>Создать комнату</translation>
</message>
<message>
<source>Join room</source>
- <translation type="unfinished"></translation>
+ <translation>Войти в комнату</translation>
</message>
<message>
<source>Room state</source>
- <translation type="unfinished"></translation>
+ <translation>Состояние комнаты</translation>
</message>
<message>
<source>Clear filters</source>
- <translation type="unfinished"></translation>
+ <translation>Очистить фильтры</translation>
</message>
<message>
<source>Open server administration page</source>
- <translation type="unfinished"></translation>
+ <translation>Открыть страницу администрирования сервера</translation>
</message>
</context>
<context>
@@ -1472,12 +1515,12 @@
<message>
<source>Date: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>Дата: %1</translation>
</message>
<message>
<source>Size: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>Размер: %1</translation>
</message>
</context>
<context>
@@ -1528,7 +1571,7 @@
</message>
<message>
<source>Restrict Unregistered Players Join</source>
- <translation type="unfinished"></translation>
+ <translation>Запретить вход незарегистрированным игрокам</translation>
</message>
<message>
<source>Show games in lobby</source>
@@ -1536,7 +1579,7 @@
</message>
<message>
<source>Show games in-progress</source>
- <translation type="unfinished"></translation>
+ <translation>Показать текущие игры</translation>
</message>
</context>
<context>
@@ -1587,11 +1630,11 @@
</message>
<message>
<source>Visual effects</source>
- <translation type="unfinished"></translation>
+ <translation>Визуальные эффекты</translation>
</message>
<message>
<source>Sound</source>
- <translation type="unfinished"></translation>
+ <translation>Звук</translation>
</message>
<message>
<source>In-game sound effects</source>
@@ -1599,7 +1642,7 @@
</message>
<message>
<source>Music</source>
- <translation type="unfinished"></translation>
+ <translation>Музыка</translation>
</message>
<message>
<source>In-game music</source>
@@ -1960,15 +2003,15 @@
</message>
<message>
<source>Fullscreen</source>
- <translation type="unfinished">Полный экран</translation>
+ <translation>Полный экран</translation>
</message>
<message>
<source>Fullscreen Resolution</source>
- <translation type="unfinished"></translation>
+ <translation>Разрешение в полноэкранном режиме</translation>
</message>
<message>
<source>Windowed Resolution</source>
- <translation type="unfinished"></translation>
+ <translation>Разрешение в оконном режиме</translation>
</message>
<message>
<source>Your Email</source>
@@ -1994,6 +2037,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -2237,12 +2284,13 @@
</message>
<message>
<source>Not all players are ready</source>
- <translation type="unfinished"></translation>
+ <translation>Не все игроки готовы</translation>
</message>
<message>
<source>Are you sure you want to start this game?
Not all players are ready.</source>
- <translation type="unfinished"></translation>
+ <translation>Вы действительно хотите запустить игру?
+Не все игроки готовы.</translation>
</message>
</context>
<context>
@@ -2372,15 +2420,15 @@
<name>RoomNamePrompt</name>
<message>
<source>Enter a name for your room.</source>
- <translation type="unfinished"></translation>
+ <translation>Введите название для вашей комнаты.</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Отмена</translation>
+ <translation>Отмена</translation>
</message>
<message>
<source>Create room</source>
- <translation type="unfinished"></translation>
+ <translation>Создать комнату</translation>
</message>
</context>
<context>
@@ -2434,19 +2482,19 @@
<name>SeedPrompt</name>
<message>
<source>The map seed is the basis for all random values generated by the game.</source>
- <translation type="unfinished"></translation>
+ <translation>Зерно карты - это основа для всех псведослучайных значений, используемых в игре.</translation>
</message>
<message>
<source>Cancel</source>
- <translation type="unfinished">Отмена</translation>
+ <translation>Отмена</translation>
</message>
<message>
<source>Set seed</source>
- <translation type="unfinished"></translation>
+ <translation>Установить зерно</translation>
</message>
<message>
<source>Close</source>
- <translation type="unfinished"></translation>
+ <translation>Закрыть</translation>
</message>
</context>
<context>
@@ -2492,29 +2540,29 @@
<name>TeamSelWidget</name>
<message>
<source>At least two teams are required to play!</source>
- <translation type="unfinished"></translation>
+ <translation>Для игры нужны как минимум две команды!</translation>
</message>
</context>
<context>
<name>TeamShowWidget</name>
<message>
<source>%1's team</source>
- <translation type="unfinished"></translation>
+ <translation>Команда %1</translation>
</message>
</context>
<context>
<name>ThemePrompt</name>
<message>
<source>Cancel</source>
- <translation type="unfinished">Отмена</translation>
+ <translation>Отмена</translation>
</message>
<message>
<source>Search for a theme:</source>
- <translation type="unfinished"></translation>
+ <translation>Искать тему:</translation>
</message>
<message>
<source>Use selected theme</source>
- <translation type="unfinished"></translation>
+ <translation>Использовать выбранную тему</translation>
</message>
</context>
<context>
@@ -2685,26 +2733,26 @@
</message>
<message>
<source>hedgehog info</source>
- <translation type="unfinished"></translation>
+ <translation>информация о еже</translation>
</message>
</context>
<context>
<name>binds (categories)</name>
<message>
<source>Movement</source>
- <translation type="unfinished"></translation>
+ <translation>Передвижение</translation>
</message>
<message>
<source>Weapons</source>
- <translation type="unfinished">Оружие</translation>
+ <translation>Оружие</translation>
</message>
<message>
<source>Camera</source>
- <translation type="unfinished"></translation>
+ <translation>Камера</translation>
</message>
<message>
<source>Miscellaneous</source>
- <translation type="unfinished">Разное</translation>
+ <translation>Разное</translation>
</message>
</context>
<context>
@@ -2775,7 +2823,7 @@
</message>
<message>
<source>Hedgehog movement</source>
- <translation type="unfinished"></translation>
+ <translation>Движение ежа</translation>
</message>
</context>
<context>
@@ -3097,119 +3145,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_sk.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_sk.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
+ <source>Send us feedback!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -267,6 +267,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation>Nepodarilo sa uložiť súbor so štýlom do %1</translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -366,6 +378,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -485,10 +501,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished">Načítať nakreslenú mapu</translation>
</message>
@@ -504,6 +516,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -548,7 +564,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 sa pridal</translation>
+ <translation type="obsolete">%1 *** %2 sa pridal</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -742,6 +758,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -889,6 +916,14 @@
<numerusform><b>%1</b> sa zľakol a preskočil ťah <b>%2</b>krát.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Uložiť</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -1000,6 +1035,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1994,6 +2033,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3123,119 +3166,4 @@
<translation>Pravý joystick (Doľava)</translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_sv.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_sv.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
+ <source>Send us feedback!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -258,6 +258,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -357,6 +369,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -476,10 +492,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished">Läs in ritad karta</translation>
</message>
@@ -495,6 +507,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -539,7 +555,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 har gått med</translation>
+ <translation type="obsolete">%1 *** %2 har gått med</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -733,6 +749,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -874,6 +901,14 @@
<numerusform><b>%1</b> var rädd och hoppade över turer <b>%2</b> gånger.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Spara</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -985,6 +1020,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1973,6 +2012,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3075,119 +3118,4 @@
<translation>Styrkors</translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Tue Jun 04 22:28:12 2013 +0200
@@ -5,14 +5,14 @@
<name>About</name>
<message>
<source>Unknown Compiler</source>
- <translation>Bilinmeyen Derleyici</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AbstractPage</name>
<message>
<source>Go back</source>
- <translation>Geri Dön</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -23,83 +23,79 @@
</message>
<message>
<source>copy of</source>
- <translation>kopya</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BanDialog</name>
<message>
<source>IP</source>
- <translation>IP</translation>
+ <translation type="unfinished">IP</translation>
</message>
<message>
<source>Nick</source>
- <translation>Takma Ad</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>IP/Nick</source>
- <translation>IP</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Reason</source>
- <translation>Sebep</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Duration</source>
- <translation>Süre</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Ok</source>
- <translation>Tamam</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
- <translation>İptal</translation>
+ <translation type="unfinished">İptal</translation>
</message>
<message>
<source>you know why</source>
- <translation>biliyor musunuz</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
- <translation>Uyarı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Please, specify %1</source>
- <translation>Lütfen %1 belirtin</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>nickname</source>
- <translation>takmaad</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>permanent</source>
- <translation>kalıcı</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DataManager</name>
<message>
<source>Use Default</source>
- <translation>Varsayılanı Kullan</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FeedbackDialog</name>
<message>
<source>View</source>
- <translation>Göster</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
- <translation>İptal</translation>
+ <translation type="unfinished">İptal</translation>
</message>
<message>
<source>Send Feedback</source>
- <translation>Geribildirim Gönder</translation>
- </message>
- <message>
- <source>Please give us feedback!</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -107,11 +103,15 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -119,12 +119,12 @@
<name>FreqSpinBox</name>
<message>
<source>Never</source>
- <translation>Asla</translation>
+ <translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>Every %1 turn</source>
- <translation>
- <numerusform>Her %1 turda</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
</context>
@@ -140,47 +140,47 @@
</message>
<message>
<source>Game scheme will auto-select a weapon</source>
- <translation>Oyun planı otomatik bir silah seçecek</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Map</source>
- <translation>Harita</translation>
+ <translation type="unfinished">Harita</translation>
</message>
<message>
<source>Game options</source>
- <translation>Oyun seçenekleri</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HWApplication</name>
<message numerus="yes">
<source>%1 minutes</source>
- <translation>
- <numerusform>%1 dakika</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hour</source>
- <translation>
- <numerusform>%1 saat</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 hours</source>
- <translation>
- <numerusform>%1 saat</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 day</source>
- <translation>
- <numerusform>%1 gün</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<source>%1 days</source>
- <translation>
- <numerusform>%1 gün</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
<message>
@@ -196,63 +196,68 @@
%1
Please check your installation!</source>
- <translation type="unfinished">Veri dizini açılamadı:
-%1
-
-Lütfen kurulumunuzu denetleyin!</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HWAskQuitDialog</name>
<message>
<source>Do you really want to quit?</source>
- <translation>Gerçekten çıkmak istiyor musunuz?</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HWChatWidget</name>
<message>
<source>%1 has been removed from your ignore list</source>
- <translation>%1 yoksayma listenizden kaldırıldı</translation>
- </message>
- <message>
- <source>%1 has been added toINCOMPLETE your ignore list</source>
- <translation type="obsolete">%1 yoksayma listenize eklendi</translation>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has been added to your ignore list</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>%1 has been removed from your friends list</source>
- <translation>%1 arkadaş listenizden kaldırıldı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>%1 has been added to your friends list</source>
- <translation>%1 arkadaş listenize eklendi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Stylesheet imported from %1</source>
- <translation>%1 biçembelgesi aktarıldı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Enter %1 if you want to use the current StyleSheet in future, enter %2 to reset!</source>
- <translation>Geçerli BiçemBelgesini ileride kullanmak için %1, sıfırlamak için %3 girin!</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Couldn't read %1</source>
- <translation>%1 okunamadı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>StyleSheet discarded</source>
- <translation>BiçemBelgesi silindi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>StyleSheet saved to %1</source>
- <translation>BiçemBelgesi %1 konumuna kaydedildi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Failed to save StyleSheet to %1</source>
- <translation>BiçemBelgesi %1 konumuna kaydedilemedi</translation>
- </message>
- <message>
- <source>%1 has been added to your ignore list</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -264,50 +269,50 @@
</message>
<message>
<source>DefaultTeam</source>
- <translation>VarsayılanTakım</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgewars Demo File</source>
<comment>File Types</comment>
- <translation>Hedgewars Gösteri Dosyası</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgewars Save File</source>
<comment>File Types</comment>
- <translation>Hedgewars Kayıt Dosyası</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Demo name</source>
- <translation type="unfinished">Gösteri adı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Demo name:</source>
- <translation type="unfinished">Gösteri adı:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Game aborted</source>
- <translation>Oyun sonlandı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Nickname</source>
- <translation>Takma ad</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>No nickname supplied.</source>
- <translation>Takma ad girilmedi.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Someone already uses your nickname %1 on the server.
Please pick another nickname:</source>
- <translation>Sunucuda başka biri %1 takma adını kullanıyor. Başka bir isim girin:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>%1's Team</source>
- <translation>%1 Oyuncusunun Takımı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgewars - Nick registered</source>
- <translation>Hedgewars - Takma ad kayıtlı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>This nick is registered, and you haven't specified a password.
@@ -315,53 +320,48 @@
If this nick isn't yours, please register your own nick at www.hedgewars.org
Password:</source>
- <translation>Bu takma ad kayıtlı ve bir parola belirtmediniz.
-
-Bu takma ad sizin değilse, lütfen kendi takma adınızı www.hedgewars.org adresinden kaydedin.
-
-Parola:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Your nickname is not registered.
To prevent someone else from using it,
please register it at www.hedgewars.org</source>
- <translation>Takma adınız kayıtlı değil.
-Başkasının kullanmaması için lütfen,
-www.hedgewars.org sitesinde kaydedin</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>
Your password wasn't saved either.</source>
- <translation>
-
-Parolanız da kaydedilmedi.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgewars - Empty nickname</source>
- <translation>Hedgewars - Boş takma ad</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgewars - Wrong password</source>
- <translation>Hedgewars - Hatalı parola</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>You entered a wrong password.</source>
- <translation>Hatalı parola girdiniz.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Try Again</source>
- <translation>Tekrar Dene</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgewars - Connection error</source>
- <translation>Hedgewars - Bağlantı hatası</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>You reconnected too fast.
Please wait a few seconds and try again.</source>
- <translation>Çok hızlı yeniden bağlandınız.
-Birkaç saniye bekleyin ve yeniden deneyin.</translation>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -403,103 +403,103 @@
</message>
<message>
<source>Small tunnels</source>
- <translation>Küçük tüneller</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Medium tunnels</source>
- <translation>Orta tüneller</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Seed</source>
- <translation>Besleme</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Map type:</source>
- <translation>Harita türü:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Image map</source>
- <translation>Resim haritası</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Mission map</source>
- <translation>Görev haritası</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hand-drawn</source>
- <translation>El çizimi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Randomly generated</source>
- <translation>Rastgele oluşturulmuş</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Random maze</source>
- <translation>Rastgele labirent</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Random</source>
- <translation>Rastgele</translation>
+ <translation type="unfinished">Rastgele</translation>
</message>
<message>
<source>Map preview:</source>
- <translation>Harita önizleme:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Load map drawing</source>
- <translation>Yerel harita çizimi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Edit map drawing</source>
- <translation>Harita çizimini düzenle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Small islands</source>
- <translation>Küçük adalar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Medium islands</source>
- <translation>Orta adalar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Large islands</source>
- <translation>Büyük adalar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Map size:</source>
- <translation>Harita boyutu:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Maze style:</source>
- <translation>Labirent biçemi:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Mission:</source>
- <translation>Görev:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Map:</source>
- <translation>Harita:</translation>
- </message>
- <message>
- <source>Theme: </source>
- <translation>Tema:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Load drawn map</source>
- <translation>Çizili harita yükle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Drawn Maps</source>
- <translation>Çizili Haritalar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>All files</source>
- <translation>Tüm dosyalar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Large tunnels</source>
- <translation>Büyük tüneller</translation>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -533,7 +533,7 @@
</message>
<message>
<source>Quit reason: </source>
- <translation>Çıkma sebebi: </translation>
+ <translation>Çıkma sebebi:</translation>
</message>
<message>
<source>You got kicked</source>
@@ -541,38 +541,34 @@
</message>
<message>
<source>%1 *** %2 has joined the room</source>
- <translation>%1 *** %2 odaya katıldı</translation>
- </message>
- <message>
- <source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 katıldı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>%1 *** %2 has left</source>
- <translation>%1 *** %2 ayrıldı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
- <translation>%1 *** %2 ayrıldı (%3)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>User quit</source>
- <translation>Kullanıcı çıktı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Remote host has closed connection</source>
- <translation>Uzak sunucu bağlantıyı kapattı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>The server is too old. Disconnecting now.</source>
- <translation>Sunucu çok eski. Bağlantı kesiliyor.</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HWPasswordDialog</name>
<message>
<source>Login</source>
- <translation>Oturum aç</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>To connect to the server, please log in.
@@ -594,33 +590,33 @@
<name>HWUploadVideoDialog</name>
<message>
<source>Upload video</source>
- <translation>Video yükle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Upload</source>
- <translation>Yükle</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HatButton</name>
<message>
<source>Change hat (%1)</source>
- <translation>Şapkayı değiştir (%1)</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HatPrompt</name>
<message>
<source>Cancel</source>
- <translation>İptal</translation>
+ <translation type="unfinished">İptal</translation>
</message>
<message>
<source>Use selected hat</source>
- <translation>Seçili şapkayı kullan</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Search for a hat:</source>
- <translation>Şapka ara:</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -634,7 +630,7 @@
<name>KeyBinder</name>
<message>
<source>Category</source>
- <translation>Kategori</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -642,94 +638,93 @@
<message>
<source>Duration: %1m %2s
</source>
- <translation>Süre: %1d %2s
-</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Video: %1x%2, </source>
- <translation>Video: %1x%2, </translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>%1 fps, </source>
- <translation>%1 fps, </translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Audio: </source>
- <translation>Ses: </translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>unknown</source>
- <translation>bilinmiyor</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MapModel</name>
<message>
<source>No description available.</source>
- <translation>Kullanılabilir açıklama yok.</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageAdmin</name>
<message>
<source>Clear Accounts Cache</source>
- <translation>Hesap Belleğini Temizle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Fetch data</source>
- <translation>Veri getir</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Server message for latest version:</source>
- <translation type="unfinished">Son sürüm için sunucu iletisi:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Server message for previous versions:</source>
- <translation>Önceki sürümler için sunucu iletisi:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Latest version protocol number:</source>
- <translation>En son sürüm protokol numarası:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>MOTD preview:</source>
- <translation>MOTD önizleme:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Set data</source>
- <translation>Veri ayarla</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>General</source>
- <translation>Genel</translation>
+ <translation type="unfinished">Genel</translation>
</message>
<message>
<source>Bans</source>
- <translation>Engellemeler</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>IP/Nick</source>
- <translation>IP/Takma Ad</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Expiration</source>
- <translation>Dolum</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Reason</source>
- <translation>Sebep</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Refresh</source>
- <translation>Yenile</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Add</source>
- <translation>Ekle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Remove</source>
- <translation>Kaldır</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -740,42 +735,53 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
- <translation>Geri al</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Clear</source>
- <translation>Temizle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Load</source>
- <translation>Yükle</translation>
+ <translation type="unfinished">Yükle</translation>
</message>
<message>
<source>Save</source>
- <translation>Kaydet</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Load drawn map</source>
- <translation>Çizili harita yükle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Save drawn map</source>
- <translation>Çizili haritayı kaydet</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Drawn Maps</source>
- <translation>Çizili Haritalar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>All files</source>
- <translation>Tüm dosyalar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Eraser</source>
- <translation>Silgi</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -786,167 +792,175 @@
</message>
<message>
<source>Select an action to choose a custom key bind for this team</source>
- <translation>Bu takıma özel tuş ataması için bir eylem seçin</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Use my default</source>
- <translation>Varsayılanı kullan</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Reset all binds</source>
- <translation>Tüm atamaları sıfırla</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Custom Controls</source>
- <translation>Özel Denetimler</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hat</source>
- <translation>Şapka</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Name</source>
- <translation>İsim</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>This hedgehog's name</source>
- <translation>Bu kirpinin adı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Randomize this hedgehog's name</source>
- <translation>Kirpi adını rastgele ata</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Random Team</source>
- <translation>Rastgele Takım</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageGameStats</name>
<message>
<source>Details</source>
- <translation>Ayrıntılar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Health graph</source>
- <translation>Sağlık Grafiği</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Ranking</source>
- <translation>Sıralama</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>The best shot award was won by <b>%1</b> with <b>%2</b> pts.</source>
- <translation>En iyi atış ödülü: <b>%2</b> puanla <b>%1</b></translation>
+ <translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</source>
- <translation>
- <numerusform>En iyi öldürücü: <b>%1</b> bir turda <b>%2</b> öldürme.</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<source>A total of <b>%1</b> hedgehog(s) were killed during this round.</source>
- <translation>
- <numerusform>Bu turda toplam <b>%1</b> kirpi öldürüldü.</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<source>(%1 kill)</source>
- <translation>
- <numerusform>(%1 öldürme)</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<source><b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.</source>
- <translation>
- <numerusform><b>%1</b> kendi kirpilerini <b>%2</b> puanla vurmanın güzel olduğunu düşündü</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<source><b>%1</b> killed <b>%2</b> of his own hedgehogs.</source>
- <translation>
- <numerusform><b>%1</b> kendi <b>%2</b> kirpisini öldürdü</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<source><b>%1</b> was scared and skipped turn <b>%2</b> times.</source>
- <translation>
- <numerusform><b>%1</b> korktu ve <b>%2</b> kez turu pas geçti.</numerusform>
+ <translation type="unfinished">
+ <numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
<message>
<source>In game...</source>
- <translation>Oyunda...</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageInfo</name>
<message>
<source>Open the snapshot folder</source>
- <translation>Ekran görüntü klasörünü aç</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageMain</name>
<message>
<source>Downloadable Content</source>
- <translation>İndirilebilir İçerik</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Play a game on a single computer</source>
- <translation>Tek bir bilgisayarda oyna</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Play a game across a network</source>
- <translation>Ağ üzerinde oyna</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Read about who is behind the Hedgewars Project</source>
- <translation>Hedgewars Projesinin arkasında kimlerin olduğunu göster</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Leave a feedback here reporting issues, suggesting features or just saying how you like Hedgewars</source>
- <translation>Sorunları bildirme, özellik önerme veya Hedgewars oyununu ne kadar sevdiğinizi söylemek için geri bildirim bırakın</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Access the user created content downloadable from our website</source>
- <translation>Websitemizden kullanıcılar tarafından oluşturulmuş indirilebilir içeriğe bakın</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Exit game</source>
- <translation>Oyundan çık</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Manage videos recorded from game</source>
- <translation>Oyunda kayıtlı videolarınızı yönetin</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Edit game preferences</source>
- <translation>Oyun tercihlerini düzenle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Play a game across a local area network</source>
- <translation>Yerel ağda bir oyun oyna</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Play a game on an official server</source>
- <translation>Resmi bir sunucuda oyun oyna</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Feedback</source>
- <translation>Geri Bildirim</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Play local network game</source>
- <translation>Yerel ağ oyunu oyna</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Play official network game</source>
- <translation>Resmi ağ oyunu oyna</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -957,35 +971,39 @@
</message>
<message>
<source>Edit game preferences</source>
- <translation>Oyun tercihlerini düzenle</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageNetGame</name>
<message>
<source>Control</source>
- <translation type="obsolete">Denetim</translation>
+ <translation type="obsolete">Kontrol</translation>
</message>
<message>
<source>Edit game preferences</source>
- <translation>Oyun tercihlerini düzenle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Start</source>
- <translation>Başla</translation>
+ <translation type="unfinished">Başla</translation>
</message>
<message>
<source>Update</source>
- <translation>Güncelle</translation>
+ <translation type="unfinished">Güncelle</translation>
</message>
<message>
<source>Room controls</source>
- <translation>Oda denetimleri</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1002,111 +1020,111 @@
</message>
<message>
<source>Delete team</source>
- <translation>Takımı sil</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
- <translation>Takım seçiminden takımları düzenleyemezsiniz. Takım eklemek, düzenlemek ve silmek için ana menüye dönün.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>New scheme</source>
- <translation>Yeni plan</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Edit scheme</source>
- <translation>Planı düzenle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Delete scheme</source>
- <translation>Planı sil</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>New weapon set</source>
- <translation>Yeni silah seti</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Edit weapon set</source>
- <translation>Silah setini düzenle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Delete weapon set</source>
- <translation>Silah setini sil</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Advanced</source>
- <translation>Gelişmiş</translation>
+ <translation type="unfinished">Gelişmiş</translation>
</message>
<message>
<source>Reset to default colors</source>
- <translation type="unfinished">Varsayılan renklere sıfırla</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Proxy host</source>
- <translation type="unfinished">Vekil sunucusu</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Proxy port</source>
- <translation type="unfinished">Vekil portu</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Proxy login</source>
- <translation type="unfinished">Vekil kullanıcı adı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Proxy password</source>
- <translation type="unfinished">Vekil parolası</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>No proxy</source>
- <translation type="unfinished">Vekil sunucu yok</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Socks5 proxy</source>
- <translation type="unfinished">Socks5 vekil sunucusu</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>HTTP proxy</source>
- <translation type="unfinished">HTTp vekil sunucusu</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>System proxy settings</source>
- <translation type="unfinished">Sistem vekil ayarları</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Select an action to change what key controls it</source>
- <translation type="unfinished">Denetimi kullanan tuşu değiştirmek için bir eylem seçin</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Reset to default</source>
- <translation type="unfinished">Varsayılana sıfırla</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Reset all binds</source>
- <translation type="unfinished">Tüm atamaları sıfırla</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Game</source>
- <translation type="unfinished">Oyun</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Graphics</source>
- <translation type="unfinished">Grafik</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Audio</source>
- <translation type="unfinished">Ses</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Controls</source>
- <translation type="unfinished">Denetimler</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Video Recording</source>
- <translation type="unfinished">Video Kaydı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Network</source>
- <translation type="unfinished">Ağ</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Teams</source>
@@ -1114,7 +1132,7 @@
</message>
<message>
<source>Schemes</source>
- <translation type="unfinished">Planlar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Weapons</source>
@@ -1122,43 +1140,43 @@
</message>
<message>
<source>Frontend</source>
- <translation type="unfinished">Ön Uç</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Custom colors</source>
- <translation type="unfinished">Özel renkler</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Game audio</source>
- <translation type="unfinished">Oyun sesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Frontend audio</source>
- <translation type="unfinished">Ön uç sesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Account</source>
- <translation type="unfinished">Hesap</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Proxy settings</source>
- <translation type="unfinished">Vekil sunucu ayarları</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Miscellaneous</source>
- <translation type="unfinished">Çeşitli</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Updates</source>
- <translation type="unfinished">Güncellemeler</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Check for updates</source>
- <translation type="unfinished">Güncellemeleri Denetle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Video recording options</source>
- <translation type="unfinished">Video kayıt seçenekleri</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -1188,41 +1206,41 @@
</message>
<message>
<source>Rules:</source>
- <translation type="unfinished">Kurallar:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Weapons:</source>
- <translation type="unfinished">Silahlar:</translation>
+ <translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>%1 players online</source>
<translation type="unfinished">
- <numerusform>%1 oyuncu çevrimiçi</numerusform>
+ <numerusform></numerusform>
</translation>
</message>
<message>
<source>Search for a room:</source>
- <translation type="unfinished">Bir oda ara:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Create room</source>
- <translation type="unfinished">Oda oluştur</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Join room</source>
- <translation type="unfinished">Odaya katıl</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Room state</source>
- <translation type="unfinished">Oda durumu</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Clear filters</source>
- <translation type="unfinished">Süzgeçleri temizle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Open server administration page</source>
- <translation type="unfinished">Sunucu yönetim sayfasını aç</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -1233,7 +1251,7 @@
</message>
<message>
<source>Teams will start on opposite sides of the terrain, two team colours max!</source>
- <translation>Takımlar bölgenin farklı taraflarında başlarlar, en fazla iki takım rengi!</translation>
+ <translation>Takımlar bölgenin faklı taraflarında başlarlar, en fazla iki takım rengi!</translation>
</message>
<message>
<source>Land can not be destroyed!</source>
@@ -1253,7 +1271,7 @@
</message>
<message>
<source>Gain 80% of the damage you do back in health</source>
- <translation>Verdiğin hasarın %80'ini sağlık olarak kazan</translation>
+ <translation>Verdiğin hasarın %%80'ini sağlık olarak kazan</translation>
</message>
<message>
<source>Share your opponents pain, share their damage</source>
@@ -1281,63 +1299,63 @@
</message>
<message>
<source>Order of play is random instead of in room order.</source>
- <translation type="unfinished">Oda sırası yerine oynama sırası rastgeledir.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Play with a King. If he dies, your side dies.</source>
- <translation type="unfinished">Bir Kralla oyna. O ölürse takımın ölür.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Take turns placing your hedgehogs before the start of play.</source>
- <translation type="unfinished">Oyuna başlamadan önce kirpileri sırayla yerleştirin.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Ammo is shared between all teams that share a colour.</source>
- <translation type="unfinished">Aynı rengi paylaşan tüm takımlar cephaneyi paylaşır.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Disable girders when generating random maps.</source>
- <translation type="unfinished">Rastgele haritalar oluştururken kirişleri devre dışı bırak.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Disable land objects when generating random maps.</source>
- <translation type="unfinished">Rastgele haritalar oluştururken zemin nesnelerini devre dışı bırak.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>AI respawns on death.</source>
- <translation type="unfinished">Yapay zeka, öldükten sonra yeniden doğar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>All (living) hedgehogs are fully restored at the end of turn</source>
- <translation type="unfinished">Tüm (yaşayan) kirpiler tur sonunda eski haline gelir</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Attacking does not end your turn.</source>
- <translation type="unfinished">Saldırmak sıranı bitirmez.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Weapons are reset to starting values each turn.</source>
- <translation type="unfinished">Silahlar her turda başlangıç değerlerine sıfırlanır.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Each hedgehog has its own ammo. It does not share with the team.</source>
- <translation type="unfinished">Her kirpinin kendi cephanesi olur. Takımla paylaşmaz.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>You will not have to worry about wind anymore.</source>
- <translation type="unfinished">Artık rüzgarı dert etmen gerekmiyor.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Wind will affect almost everything.</source>
- <translation type="unfinished">Rüzgar neredeyse her şeyi etkiler.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Copy</source>
- <translation type="unfinished">Kopyala</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Teams in each clan take successive turns sharing their turn time.</source>
- <translation type="unfinished">Her klandaki takımlar kendi sıralarındaki zamanı paylaşarak değişirler.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Add an indestructible border around the terrain</source>
@@ -1345,14 +1363,14 @@
</message>
<message>
<source>Add an indestructible border along the bottom</source>
- <translation type="unfinished">Alta yok edilemez bir sınır ekle</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageSelectWeapon</name>
<message>
<source>Default</source>
- <translation>Varsayılan</translation>
+ <translation>Öntanımlı</translation>
</message>
<message>
<source>Delete</source>
@@ -1364,94 +1382,92 @@
</message>
<message>
<source>Copy</source>
- <translation type="unfinished">Kopyala</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageSinglePlayer</name>
<message>
<source>Play a quick game against the computer with random settings</source>
- <translation type="unfinished">Rastgele ayarlarla bilgisayara karşı hızlı bir oyun oyna</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Play a hotseat game against your friends, or AI teams</source>
- <translation type="unfinished">Arkadaşlarınla veya Yapay Zeka takımlarıyla ayarlanmış bir oyun oyna</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Campaign Mode</source>
- <translation type="unfinished">Mücadele Kipi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Practice your skills in a range of training missions</source>
- <translation type="unfinished">Yeteneklerini çeşitli eğitim görevleri ile geliştir</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Watch recorded demos</source>
- <translation type="unfinished">Kayıtlı gösterileri izle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Load a previously saved game</source>
- <translation type="unfinished">Önceden kayıtlı bir oyun yükle</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageTraining</name>
<message>
<source>No description available</source>
- <translation type="unfinished">Kullanılabilir açıklama yok</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Select a mission!</source>
- <translation type="unfinished">Bir görev seç!</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Pick the mission or training to play</source>
- <translation type="unfinished">Oynamak üzere bir görev veya eğitim seç</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Start fighting</source>
- <translation type="unfinished">Dövüşe başla</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageVideos</name>
<message>
<source>Name</source>
- <translation type="unfinished">İsim</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Size</source>
- <translation type="unfinished">Boyut</translation>
+ <translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>%1 bytes</source>
<translation type="unfinished">
- <numerusform>%1 bayt</numerusform>
+ <numerusform></numerusform>
</translation>
</message>
<message>
<source>(in progress...)</source>
- <translation type="unfinished">(yapım aşamasında...)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>encoding</source>
- <translation type="unfinished">kodlanıyor</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>uploading</source>
- <translation type="unfinished">yükleniyor</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Date: %1
</source>
- <translation type="unfinished">Tarih: %1
-</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Size: %1
</source>
- <translation type="unfinished">Boyut: %1
-</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -1478,23 +1494,23 @@
</message>
<message>
<source>Follow</source>
- <translation type="unfinished">Takip Et</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Ignore</source>
- <translation type="unfinished">Yoksay</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Add friend</source>
- <translation type="unfinished">Arkadaş ekle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Unignore</source>
- <translation type="unfinished">Yoksaymayı kapat</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Remove friend</source>
- <translation type="unfinished">Arkadaş kaldır</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Update</source>
@@ -1502,15 +1518,15 @@
</message>
<message>
<source>Restrict Unregistered Players Join</source>
- <translation type="unfinished">Kayıtsız Oyuncuların Katılmasını Kısıtla</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Show games in lobby</source>
- <translation type="unfinished">Lobideki oyunları göster</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Show games in-progress</source>
- <translation type="unfinished">Süren oyunları göster</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -1533,59 +1549,59 @@
</message>
<message>
<source>Check for updates at startup</source>
- <translation type="unfinished">Başlangıçta güncellemeleri denetle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Show ammo menu tooltips</source>
- <translation type="unfinished">Cephane menüsü araç ipuçlarını göster</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Save password</source>
- <translation type="unfinished">Parolayı kaydet</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Save account name and password</source>
- <translation type="unfinished">Hesap adı ve parolasını kaydet</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Video is private</source>
- <translation type="unfinished">Video özel</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Record audio</source>
- <translation type="unfinished">Sesi kaydet</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Use game resolution</source>
- <translation type="unfinished">Oyun çözünürlüğünü kullan</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Visual effects</source>
- <translation type="unfinished">Görsel efektler</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Sound</source>
- <translation type="unfinished">Ses</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>In-game sound effects</source>
- <translation type="unfinished">Oyun ses efektleri</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Music</source>
- <translation type="unfinished">Müzik</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>In-game music</source>
- <translation type="unfinished">Oyun içi müzik</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Frontend sound effects</source>
- <translation type="unfinished">Ön uç ses efektleri</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Frontend music</source>
- <translation type="unfinished">Ön uç müziği</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -1596,79 +1612,79 @@
</message>
<message>
<source>Level</source>
- <translation>Seviye</translation>
+ <translation>Bilgisayar</translation>
</message>
<message>
<source>(System default)</source>
- <translation type="unfinished">(Sistem varsayılanı)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Community</source>
- <translation type="unfinished">Topluluk</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Any</source>
- <translation type="unfinished">Herhangi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Disabled</source>
- <translation type="unfinished">Kapalı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Red/Cyan</source>
- <translation type="unfinished">Kırmızı/Camgöbeği</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cyan/Red</source>
- <translation type="unfinished">Camgöbeği/Kırmızı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Red/Blue</source>
- <translation type="unfinished">Kırmızı/Mavi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Blue/Red</source>
- <translation type="unfinished">Mavi/Kırmızı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Red/Green</source>
- <translation type="unfinished">Kırmızı/Yeşil</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Green/Red</source>
- <translation type="unfinished">Yeşil/Kırmızı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Side-by-side</source>
- <translation type="unfinished">Yan yana</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Top-Bottom</source>
- <translation type="unfinished">Üst-Alt</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Red/Cyan grayscale</source>
- <translation type="unfinished">Kırmızı/Camgöbeği gri</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cyan/Red grayscale</source>
- <translation type="unfinished">Camgöbeği/Kırmızı gri</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Red/Blue grayscale</source>
- <translation type="unfinished">Kırmızı/Mavi gri</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Blue/Red grayscale</source>
- <translation type="unfinished">Mavi/Kırmızı gri</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Red/Green grayscale</source>
- <translation type="unfinished">Kırmızı/Yeşil gri</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Green/Red grayscale</source>
- <translation type="unfinished">Yeşil/Kırmızı gri</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -1699,15 +1715,15 @@
</message>
<message>
<source>Team Settings</source>
- <translation type="unfinished">Takım ayarları</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Videos</source>
- <translation type="unfinished">Videolar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Description</source>
- <translation type="unfinished">Açıklama</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -1782,143 +1798,141 @@
</message>
<message>
<source>% Dud Mines</source>
- <translation type="unfinished">Sahte Mayın %</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Name</source>
- <translation type="unfinished">İsim</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Type</source>
- <translation type="unfinished">Tür</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Grave</source>
- <translation type="unfinished">Mezar taşı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Flag</source>
- <translation type="unfinished">Bayrak</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Voice</source>
- <translation type="unfinished">Ses</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Locale</source>
- <translation type="unfinished">Dil</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Explosives</source>
- <translation type="unfinished">Patlayıcılar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Tip: </source>
- <translation type="unfinished">İpucu: </translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Quality</source>
- <translation type="unfinished">Kalite</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>% Health Crates</source>
- <translation type="unfinished">Sağlık Sandık %'si</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Health in Crates</source>
- <translation type="unfinished">Sandıklardaki Sağlık</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Sudden Death Water Rise</source>
- <translation type="unfinished">Ani Ölüm Su Yükselmesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Sudden Death Health Decrease</source>
- <translation type="unfinished">Ani Ölüm Sağlık Azaltması</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>% Rope Length</source>
- <translation type="unfinished">Halat Uzunluk %'si</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Stereo rendering</source>
- <translation type="unfinished">Stereo hazırlama</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Style</source>
- <translation type="unfinished">Biçem</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Scheme</source>
- <translation type="unfinished">Plan</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>% Get Away Time</source>
- <translation type="unfinished">Uzakta Zamanı %'si</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>There are videos that are currently being processed.
Exiting now will abort them.
Do you really want to quit?</source>
- <translation type="unfinished">Şu anda işlenen videolar var.
-Çıkmak bu işlemi sonlandıracak.
-Gerçekten çıkmak istiyor musunuz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Please provide either the YouTube account name or the email address associated with the Google Account.</source>
- <translation type="unfinished">Lütfen YouTube hesap adını veya Google Hesabınız ile ilişkilendirmiş e-posta adresinizi girin.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Account name (or email): </source>
- <translation type="unfinished">Hesap adı (veya e-posta): </translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Password: </source>
- <translation type="unfinished">Parola: </translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Video title: </source>
- <translation type="unfinished">Video başlığı: </translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Video description: </source>
- <translation type="unfinished">Video açıklaması: </translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Tags (comma separated): </source>
- <translation type="unfinished">Etiketler (virgülle ayrılmış): </translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Description</source>
- <translation type="unfinished">Açıklama</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Nickname</source>
- <translation type="unfinished">Takma ad</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
- <translation type="unfinished">Biçim</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Audio codec</source>
- <translation type="unfinished">Ses kodlayıcı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Video codec</source>
- <translation type="unfinished">Video kodlayıcı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Framerate</source>
- <translation type="unfinished">Kare oranı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Bitrate (Kbps)</source>
- <translation type="unfinished">Bit oranı (Kbps)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>This development build is 'work in progress' and may not be compatible with other versions of the game, while some features might be broken or incomplete!</source>
- <translation type="unfinished">Bu geliştirme derlemesi 'yapım aşamasındadır' ve oyunun diğer sürümleri ile uyumlu olmayabilir; bazı özellikler bozuk veya tamamlanmamış olabilir!</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Fullscreen</source>
@@ -1926,35 +1940,39 @@
</message>
<message>
<source>Fullscreen Resolution</source>
- <translation type="unfinished">Tam Ekran Çözünürlüğü</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Windowed Resolution</source>
- <translation type="unfinished">Pencere Çözünürlüğü</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Your Email</source>
- <translation type="unfinished">E-postanız</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Summary</source>
- <translation type="unfinished">Özet</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Send system information</source>
- <translation type="unfinished">Sistem bilgisi gönder</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Type the security code:</source>
- <translation type="unfinished">Güvenlik kodunu yaz:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Revision</source>
- <translation type="unfinished">Gözden Geçirme</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>This program is distributed under the %1</source>
- <translation type="unfinished">Bu program %1 altında dağıtılmaktadır</translation>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -1965,11 +1983,11 @@
</message>
<message>
<source>hedgehog %1</source>
- <translation type="unfinished">kirpi %1</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>anonymous</source>
- <translation type="unfinished">anonim</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -1980,7 +1998,7 @@
</message>
<message>
<source>-r%1 (%2)</source>
- <translation type="unfinished">-r%1 (%2)</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -1995,95 +2013,73 @@
</message>
<message>
<source>File association failed.</source>
- <translation type="unfinished">Dosya ilişkilendirme başarısız.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Error while authenticating at google.com:
</source>
- <translation type="unfinished">Google.com ile kimlik açma başarısız</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Login or password is incorrect</source>
- <translation type="unfinished">Kullanıcı adı veya parolası yanlış</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Error while sending metadata to youtube.com:
</source>
- <translation type="unfinished">Youtube.com üst verisi gönderilirken hata</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Teams - Are you sure?</source>
- <translation type="unfinished">Takımlar - Emin misiniz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Do you really want to delete the team '%1'?</source>
- <translation type="unfinished">'%1' takımını gerçekten silmek istiyor musunuz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cannot delete default scheme '%1'!</source>
- <translation type="unfinished">Varsayılan '%1' planı silinemez</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Please select a record from the list</source>
- <translation type="unfinished">Lütfen listeden bir kayıt seçin</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Unable to start server</source>
- <translation type="unfinished">Sunucu başlatılamadı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgewars - Error</source>
- <translation type="unfinished">Hedgewars - Hata</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgewars - Success</source>
- <translation type="unfinished">Hedgewars - Başarılı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>All file associations have been set</source>
- <translation type="unfinished">Tüm dosya ilişkilendirmeleri ayarlandı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cannot create directory %1</source>
<translation type="obsolete">%1 dizini oluşturulamadı</translation>
</message>
<message>
- <source>Failed to open data directory:
-%1
-
-Please check your installation!</source>
- <translation type="obsolete">Veri dizini açılamadı:
-%1
-
-Lütfen kurulumunuzu denetleyin!</translation>
- </message>
- <message>
- <source>TCP - Error</source>
- <translation type="obsolete">TCP - Hata</translation>
- </message>
- <message>
<source>Unable to start the server: %1.</source>
<translation type="obsolete">Sunucu başlatılamadı: %1.</translation>
</message>
<message>
- <source>Unable to run engine at </source>
- <translation type="obsolete">Motor şurada başlatılamadı: </translation>
- </message>
- <message>
- <source>Error code: %1</source>
- <translation type="obsolete">Hata kodu: %1</translation>
- </message>
- <message>
<source>Video upload - Error</source>
- <translation type="unfinished">Video yükleme - Hata</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Netgame - Error</source>
- <translation type="unfinished">Ağ oyunu - Hata</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Please select a server from the list</source>
- <translation type="unfinished">Lütfen listeden bir sunucu seçin</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Please enter room name</source>
@@ -2091,7 +2087,7 @@
</message>
<message>
<source>Record Play - Error</source>
- <translation type="unfinished">Oyunu Kaydet - Hata</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Please select record from the list</source>
@@ -2099,15 +2095,15 @@
</message>
<message>
<source>Cannot rename to </source>
- <translation type="unfinished">Adlandırma başarısız: </translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cannot delete file </source>
- <translation type="unfinished">Dosya silinemedi: </translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Room Name - Error</source>
- <translation type="unfinished">Oda Adı - Hata</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Please select room from the list</source>
@@ -2115,128 +2111,122 @@
</message>
<message>
<source>Room Name - Are you sure?</source>
- <translation type="unfinished">Oda Adı - Emin misiniz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>The game you are trying to join has started.
Do you still want to join the room?</source>
- <translation type="unfinished">Katılmaya çalıştığınız oyun başlamış.
-Hala odaya katılmak istiyor musunuz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Schemes - Warning</source>
- <translation type="unfinished">Planlar - Uyarı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Schemes - Are you sure?</source>
- <translation type="unfinished">Planlar - Emin misiniz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Do you really want to delete the game scheme '%1'?</source>
- <translation type="unfinished">Gerçekten '%1' oyun planını silmek istiyor musunuz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Videos - Are you sure?</source>
- <translation type="unfinished">Videolar - Emin misiniz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Do you really want to delete the video '%1'?</source>
- <translation type="unfinished">Gerçekten '%1' videosunu silmek istiyor musunuz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message numerus="yes">
<source>Do you really want to remove %1 file(s)?</source>
<translation type="unfinished">
- <numerusform>Gerçekten %1 dosyayı kaldırmak istiyor musunuz?</numerusform>
+ <numerusform></numerusform>
</translation>
</message>
<message>
<source>Do you really want to cancel uploading %1?</source>
- <translation type="unfinished">Gerçekten %1 yüklemesini iptal etmek istiyor musunuz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>File error</source>
- <translation type="unfinished">Dosya hatası</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cannot open '%1' for writing</source>
- <translation type="unfinished">'%1' yazmak için açılamıyor</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cannot open '%1' for reading</source>
- <translation type="unfinished">'%1' okumak için açılamıyor</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cannot use the ammo '%1'!</source>
- <translation type="unfinished">'%1' cephanesi kullanılamıyor!</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Weapons - Warning</source>
- <translation type="unfinished">Silahlar - Uyarı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cannot overwrite default weapon set '%1'!</source>
- <translation type="unfinished">Varsayılan '%1' silah setinin üzerine yazılamaz!</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cannot delete default weapon set '%1'!</source>
- <translation type="unfinished">Varsayılan '%1' silah seti silinemez!</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Weapons - Are you sure?</source>
- <translation type="unfinished">Silahlar - Emin misiniz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Do you really want to delete the weapon set '%1'?</source>
- <translation type="unfinished">Gerçekten '%1' silah setini silmek istiyor musunuz?</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgewars - Nick not registered</source>
- <translation type="unfinished">Hedgewars - Takma ad kayıtlı değil</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>System Information Preview</source>
- <translation type="unfinished">Sistem Bilgi Önizlemesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Failed to generate captcha</source>
- <translation type="unfinished">Captcha oluşturulamadı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Failed to download captcha</source>
- <translation type="unfinished">Captcha indirilemedi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Please fill out all fields. Email is optional.</source>
- <translation type="unfinished">Lütfen tüm alanları doldurun. E-posta isteğe bağlıdır.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgewars - Warning</source>
- <translation type="unfinished">Hedgewars - Uyarı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgewars - Information</source>
- <translation type="unfinished">Hedgewars - Bilgi</translation>
- </message>
- <message>
- <source>Hedgewars</source>
- <translation type="obsolete">Hedgewars</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Not all players are ready</source>
- <translation type="unfinished">Tüm oyuncular hazır değil</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to start this game?
Not all players are ready.</source>
- <translation type="unfinished">Oyunu başlatmak istiyor musunuz?
-Tüm oyuncular hazır değil.</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QPushButton</name>
<message>
<source>default</source>
- <translation>varsayılan</translation>
+ <translation>öntanımlı</translation>
</message>
<message>
<source>OK</source>
@@ -2288,51 +2278,51 @@
</message>
<message>
<source>Associate file extensions</source>
- <translation type="unfinished">Dosya uzantılarını ilişkilendir</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>More info</source>
- <translation type="unfinished">Daha fazla bilgi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Set default options</source>
- <translation type="unfinished">Varsayılan seçenekleri ayarla</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Open videos directory</source>
- <translation type="unfinished">Video dizinini aç</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Play</source>
- <translation type="unfinished">Oynat</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Upload to YouTube</source>
- <translation type="unfinished">YouTube'a Yükle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cancel uploading</source>
- <translation type="unfinished">Yüklemeyi iptal et</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Restore default coding parameters</source>
- <translation type="unfinished">Varsayılan kodlama parametrelerini geri al</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Open the video directory in your system</source>
- <translation type="unfinished">Sisteminizdeki video dizinini aç</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Play this video</source>
- <translation type="unfinished">Bu videoyu oynat</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Delete this video</source>
- <translation type="unfinished">Bu videoyu sil</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Upload this video to your Youtube account</source>
- <translation type="unfinished">Bu videoyu Youtube hesabınıza yükle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Reset</source>
@@ -2359,7 +2349,7 @@
<name>RoomNamePrompt</name>
<message>
<source>Enter a name for your room.</source>
- <translation type="unfinished">Odanız için bir ad girin.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
@@ -2367,30 +2357,30 @@
</message>
<message>
<source>Create room</source>
- <translation type="unfinished">Oda oluştur</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RoomsListModel</name>
<message>
<source>In progress</source>
- <translation type="unfinished">Sürüyor</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Room Name</source>
- <translation type="unfinished">Oda Adı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>C</source>
- <translation type="unfinished">K</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>T</source>
- <translation type="unfinished">T</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Owner</source>
- <translation type="unfinished">Sahip</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Map</source>
@@ -2398,7 +2388,7 @@
</message>
<message>
<source>Rules</source>
- <translation type="unfinished">Kurallar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Weapons</source>
@@ -2406,22 +2396,22 @@
</message>
<message>
<source>Random Map</source>
- <translation type="unfinished">Rastgele Harita</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Random Maze</source>
- <translation type="unfinished">Rastgele Labirent</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hand-drawn</source>
- <translation type="unfinished">El Çizimi</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SeedPrompt</name>
<message>
<source>The map seed is the basis for all random values generated by the game.</source>
- <translation type="unfinished">Harita beslemesi, oyun tarafından oluşturulan tüm rastgele değerler için bir tabandır.</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
@@ -2429,30 +2419,30 @@
</message>
<message>
<source>Set seed</source>
- <translation type="unfinished">Besleme ayarla</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Close</source>
- <translation type="unfinished">Kapat</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SelWeaponWidget</name>
<message>
<source>Weapon set</source>
- <translation type="unfinished">Silah seti</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Probabilities</source>
- <translation type="unfinished">Olasılıklar</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Ammo in boxes</source>
- <translation type="unfinished">Kutulardaki cephane</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Delays</source>
- <translation type="unfinished">Gecikmeler</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>new</source>
@@ -2460,7 +2450,7 @@
</message>
<message>
<source>copy of</source>
- <translation type="unfinished">kopya</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -2486,7 +2476,7 @@
<name>TeamShowWidget</name>
<message>
<source>%1's team</source>
- <translation type="unfinished">%1 takımı</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -2497,11 +2487,11 @@
</message>
<message>
<source>Search for a theme:</source>
- <translation type="unfinished">Tema arayın:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Use selected theme</source>
- <translation type="unfinished">Seçili temayı kullan</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -2628,7 +2618,7 @@
</message>
<message>
<source>change mode</source>
- <translation>kipi değiştir</translation>
+ <translation>modu değiştir</translation>
</message>
<message>
<source>capture</source>
@@ -2640,23 +2630,23 @@
</message>
<message>
<source>long jump</source>
- <translation type="unfinished">uzun zıplama</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>high jump</source>
- <translation type="unfinished">yüksek zıplama</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>zoom in</source>
- <translation type="unfinished">yakınlaştırma</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>zoom out</source>
- <translation type="unfinished">uzaklaştırma</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>reset zoom</source>
- <translation type="unfinished">yakınlaştırmayı sıfırla</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>slot 10</source>
@@ -2664,22 +2654,22 @@
</message>
<message>
<source>mute audio</source>
- <translation type="unfinished">sesi kapat</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>record</source>
- <translation type="unfinished">kaydet</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>hedgehog info</source>
- <translation type="unfinished">kirpi bilgisi</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>binds (categories)</name>
<message>
<source>Movement</source>
- <translation type="unfinished">Hareket</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Weapons</source>
@@ -2687,117 +2677,117 @@
</message>
<message>
<source>Camera</source>
- <translation type="unfinished">Kamera</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Miscellaneous</source>
- <translation type="unfinished">Çeşitli</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>binds (descriptions)</name>
<message>
<source>Traverse gaps and obstacles by jumping:</source>
- <translation type="unfinished">Boşluklardan ve engellerden zıplayarak kaçın:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Fire your selected weapon or trigger an utility item:</source>
- <translation type="unfinished">Seçili silahını ateşle veya bir yardımcı öge tetikle:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Pick a weapon or a target location under the cursor:</source>
- <translation type="unfinished">Bir silah seç veya imleç altında konum işaretle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Switch your currently active hog (if possible):</source>
- <translation type="unfinished">Geçerli kirpiyi değiştir (mümkünse):</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Pick a weapon or utility item:</source>
- <translation type="unfinished">Bir silah veya yardımcı öge al:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Set the timer on bombs and timed weapons:</source>
- <translation type="unfinished">Bombalarda ve zamanlı silahlarda zamanlayıcıyı ayarla:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Move the camera to the active hog:</source>
- <translation type="unfinished">Kamerayı etkin kirpiye götür:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Move the cursor or camera without using the mouse:</source>
- <translation type="unfinished">Kamera veya imleci fare kullanmadan hareket ettir</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Modify the camera's zoom level:</source>
- <translation type="unfinished">Kamera yakınlaştırma seviyesini değiştir:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Talk to your team or all participants:</source>
- <translation type="unfinished">Takımla veya tüm katılanlarla konuş</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Pause, continue or leave your game:</source>
- <translation type="unfinished">Oyunu beklet, devam et veya oyundan ayrıl</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Modify the game's volume while playing:</source>
- <translation type="unfinished">Oynarken oyunun sesini değiştir:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Toggle fullscreen mode:</source>
- <translation type="unfinished">Tam ekran kipini değiştir:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Take a screenshot:</source>
- <translation type="unfinished">Ekran görüntüsü al:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Toggle labels above hedgehogs:</source>
- <translation type="unfinished">Kirpilerin üzerindeki etiketleri aç/kapat</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Record video:</source>
- <translation type="unfinished">Video kaydet:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hedgehog movement</source>
- <translation type="unfinished">Kirpi hareketi</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
<name>binds (keys)</name>
<message>
<source>Axis</source>
- <translation type="unfinished">Eksen</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>(Up)</source>
- <translation type="unfinished">(Yukarı)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>(Down)</source>
- <translation type="unfinished">(Aşağı)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Hat</source>
- <translation type="unfinished">Şapka</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>(Left)</source>
- <translation type="unfinished">(Sol)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>(Right)</source>
- <translation type="unfinished">(Sağ)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Button</source>
- <translation type="unfinished">Düğme</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard</source>
- <translation type="unfinished">Klavye</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Delete</source>
@@ -2805,398 +2795,283 @@
</message>
<message>
<source>Mouse: Left button</source>
- <translation type="unfinished">Fare: Sol düğme</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Mouse: Middle button</source>
- <translation type="unfinished">Fare: Orta düğme</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Mouse: Right button</source>
- <translation type="unfinished">Fare: Sağ düğme</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Mouse: Wheel up</source>
- <translation type="unfinished">Fare: Tekerlek yukarı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Mouse: Wheel down</source>
- <translation type="unfinished">Fare: Tekerlek aşağı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Backspace</source>
- <translation type="unfinished">Backspace</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Tab</source>
- <translation type="unfinished">Sekme</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Clear</source>
- <translation type="unfinished">Temizle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Return</source>
- <translation type="unfinished">Enter</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Pause</source>
- <translation type="unfinished">Pause</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Escape</source>
- <translation type="unfinished">Escape</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Space</source>
- <translation type="unfinished">Boşluk</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad 0</source>
- <translation type="unfinished">Nümerik 0</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad 1</source>
- <translation type="unfinished">Nümerik 1</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad 2</source>
- <translation type="unfinished">Nümerik 2</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad 3</source>
- <translation type="unfinished">Nümerik 3</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad 4</source>
- <translation type="unfinished">Nümerik 4</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad 5</source>
- <translation type="unfinished">Nümerik 5</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad 6</source>
- <translation type="unfinished">Nümerik 6</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad 7</source>
- <translation type="unfinished">Nümerik 7</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad 8</source>
- <translation type="unfinished">Nümerik 8</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad 9</source>
- <translation type="unfinished">Nümerik 9</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad .</source>
- <translation type="unfinished">Nümerik .</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad /</source>
- <translation type="unfinished">Nümerik /</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad *</source>
- <translation type="unfinished">Nümerik *</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad -</source>
- <translation type="unfinished">Nümerik -</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Numpad +</source>
- <translation type="unfinished">Nümerik +</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Enter</source>
- <translation type="unfinished">Enter</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Equals</source>
- <translation type="unfinished">Eşittir</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Up</source>
- <translation type="unfinished">Yukarı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Down</source>
- <translation type="unfinished">Aşağı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
- <translation type="unfinished">Sağ</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left</source>
- <translation type="unfinished">Sol</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Insert</source>
- <translation type="unfinished">Ekle</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Home</source>
- <translation type="unfinished">Ev</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>End</source>
- <translation type="unfinished">Son</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Page up</source>
- <translation type="unfinished">Sayfa yukarı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Page down</source>
- <translation type="unfinished">Sayfa aşağı</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Num lock</source>
- <translation type="unfinished">Nümerik kilit</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Caps lock</source>
- <translation type="unfinished">Büyük harf</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Scroll lock</source>
- <translation type="unfinished">Kaydırma kilidi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right shift</source>
- <translation type="unfinished">Sağ üst karakter</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left shift</source>
- <translation type="unfinished">Sol üst karakter</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right ctrl</source>
- <translation type="unfinished">Sağ kontrol</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left ctrl</source>
- <translation type="unfinished">Sol kontrol</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right alt</source>
- <translation type="unfinished">Sağ alt</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left alt</source>
- <translation type="unfinished">Sol alt</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right meta</source>
- <translation type="unfinished">Sağ meta</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left meta</source>
- <translation type="unfinished">Sol meta</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>A button</source>
- <translation type="unfinished">A düğmesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>B button</source>
- <translation type="unfinished">B düğmesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>X button</source>
- <translation type="unfinished">X düğmesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Y button</source>
- <translation type="unfinished">Y düğmesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>LB button</source>
- <translation type="unfinished">LB düğmesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>RB button</source>
- <translation type="unfinished">RB düğmesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Back button</source>
- <translation type="unfinished">Geri düğmesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Start button</source>
- <translation type="unfinished">Start düğmesi</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left stick</source>
- <translation type="unfinished">Sol çubuk</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right stick</source>
- <translation type="unfinished">Sağ çubuk</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left stick (Right)</source>
- <translation type="unfinished">Sol çubuk (Sağ)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left stick (Left)</source>
- <translation type="unfinished">Sol çubuk (Sol)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left stick (Down)</source>
- <translation type="unfinished">Sol çubuk (Aşağı)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left stick (Up)</source>
- <translation type="unfinished">Sol çubuk (Yukarı)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left trigger</source>
- <translation type="unfinished">Sol tetik</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right trigger</source>
- <translation type="unfinished">Sağ tetik</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right stick (Down)</source>
- <translation type="unfinished">Sağ çubuk (Aşağı)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right stick (Up)</source>
- <translation type="unfinished">Sağ çubuk (Yukarı)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right stick (Right)</source>
- <translation type="unfinished">Sağ çubuk (Sağ)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right stick (Left)</source>
- <translation type="unfinished">Sağ çubuk (Sol)</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>DPad</source>
- <translation type="unfinished">DPad</translation>
- </message>
-</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished">Oda uzmanı değil</translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished">Bozuk kirpi bilgisi</translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished">çok fazla takım</translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished">çok fazla kirpi</translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished">Listede aynı isimde başka bir takım var</translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished">tur sürüyor</translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished">kısıtlı</translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished">REMOVE_TEAM: böyle bir takım yok</translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished">Takım sahibi değil!</translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished">İki klandan daha az!</translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished">Oda adı zaten mevcut</translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished">Takma ad zaten seçilmiş</translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished">Geçersiz takma ad</translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished">Protokol zaten biliniyor</translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished">Hatalı sayı</translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished">Takma ad zaten kullanımda</translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished">Denetim hakları yok</translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished">Kimlik doğrulama başarısız</translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished">Kovulduktan sonra 60 saniye sakinleşme</translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished">kovuldu</translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished">Ping zaman aşımı</translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished">hoşça kal</translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished">Geçersiz oda adı</translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished">Böyle bir oda yok</translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished">Katılma kısıtlı</translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished">Sadece kayıtlı kullanıcılar</translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished">Bu odadan engellendiniz</translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished">Boş yapılandırma girdisi</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_uk.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_uk.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -264,6 +264,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -363,6 +375,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -482,10 +498,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished">Завантажити намальовану мапу</translation>
</message>
@@ -501,6 +513,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -545,7 +561,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1 *** %2 приєднався</translation>
+ <translation type="obsolete">%1 *** %2 приєднався</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -739,6 +755,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -886,6 +913,14 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Зберегти</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -997,6 +1032,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1987,6 +2026,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3090,119 +3133,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Tue Jun 04 22:28:12 2013 +0200
@@ -97,7 +97,7 @@
<context>
<name>DataManager</name>
<message>
- <location filename="../../../../QTfrontend/util/DataManager.cpp" line="149"/>
+ <location filename="../../../../QTfrontend/util/DataManager.cpp" line="151"/>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
@@ -105,37 +105,37 @@
<context>
<name>FeedbackDialog</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="87"/>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="88"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="91"/>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="89"/>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="90"/>
- <source>Your email address is optional, but we may want to contact you.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="121"/>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="92"/>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="93"/>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="124"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="147"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="150"/>
<source>Cancel</source>
<translation type="unfinished">取消</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="175"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="178"/>
<source>Send Feedback</source>
<translation type="unfinished"></translation>
</message>
@@ -255,52 +255,67 @@
<context>
<name>HWChatWidget</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="641"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="502"/>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="523"/>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="525"/>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="652"/>
<source>%1 has been removed from your ignore list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="651"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="662"/>
<source>%1 has been added to your ignore list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="681"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="692"/>
<source>%1 has been removed from your friends list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="690"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="701"/>
<source>%1 has been added to your friends list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="756"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="767"/>
<source>Stylesheet imported from %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="757"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="768"/>
<source>Enter %1 if you want to use the current StyleSheet in future, enter %2 to reset!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="765"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="776"/>
<source>Couldn't read %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="773"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="784"/>
<source>StyleSheet discarded</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="797"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="808"/>
<source>StyleSheet saved to %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="800"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="811"/>
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
@@ -318,17 +333,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="632"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="636"/>
<source>Game aborted</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1056"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1075"/>
<source>Hedgewars - Nick registered</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1057"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1076"/>
<source>This nick is registered, and you haven't specified a password.
If this nick isn't yours, please register your own nick at www.hedgewars.org
@@ -337,93 +352,98 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1085"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1104"/>
<source>Your nickname is not registered.
To prevent someone else from using it,
please register it at www.hedgewars.org</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1090"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1109"/>
<source>
Your password wasn't saved either.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1102"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1121"/>
<source>Nickname</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1102"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1121"/>
<source>Someone already uses your nickname %1 on the server.
Please pick another nickname:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1400"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1435"/>
<source>No nickname supplied.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1400"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1435"/>
<source>Hedgewars - Empty nickname</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1133"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1152"/>
<source>Hedgewars - Wrong password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1133"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1152"/>
<source>You entered a wrong password.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1154"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1173"/>
<source>Try Again</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1515"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1539"/>
<source>Hedgewars - Connection error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1515"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1539"/>
<source>You reconnected too fast.
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1923"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1945"/>
<source>Hedgewars Demo File</source>
<comment>File Types</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1924"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1946"/>
<source>Hedgewars Save File</source>
<comment>File Types</comment>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1985"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2007"/>
<source>Demo name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1985"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2007"/>
<source>Demo name:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1672"/>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1993"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2075"/>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1696"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2015"/>
<source>Cannot save record to file %1</source>
<translation>无法录入文件 %1</translation>
</message>
@@ -431,13 +451,13 @@
<context>
<name>HWGame</name>
<message>
- <location filename="../../../../QTfrontend/game.cpp" line="374"/>
+ <location filename="../../../../QTfrontend/game.cpp" line="386"/>
<location filename="../../../../QTfrontend/net/recorder.cpp" line="112"/>
<source>en.txt</source>
<translation>zh_CN.txt</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/game.cpp" line="415"/>
+ <location filename="../../../../QTfrontend/game.cpp" line="427"/>
<source>Cannot open demofile %1</source>
<translation>DEMO %1 打不开</translation>
</message>
@@ -445,158 +465,158 @@
<context>
<name>HWMapContainer</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/>
<source>Small tunnels</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="218"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="221"/>
<source>Medium tunnels</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="124"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="126"/>
<source>Seed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="93"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="94"/>
<source>Map type:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="96"/>
- <source>Image map</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="97"/>
- <source>Mission map</source>
+ <source>Image map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="98"/>
- <source>Hand-drawn</source>
+ <source>Mission map</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="99"/>
- <source>Randomly generated</source>
+ <source>Hand-drawn</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="100"/>
+ <source>Randomly generated</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="101"/>
<source>Random maze</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="110"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="111"/>
<source>Random</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="133"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="135"/>
<source>Map preview:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="185"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="188"/>
<source>Load map drawing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="191"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="194"/>
<source>Edit map drawing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="204"/>
- <source>All</source>
- <translation>全部</translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="205"/>
- <source>Small</source>
- <translation>小型</translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="206"/>
- <source>Medium</source>
- <translation>中型</translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="207"/>
- <source>Large</source>
- <translation>大型</translation>
+ <source>All</source>
+ <translation>全部</translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="208"/>
- <source>Cavern</source>
- <translation>洞穴</translation>
+ <source>Small</source>
+ <translation>小型</translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="209"/>
+ <source>Medium</source>
+ <translation>中型</translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="210"/>
+ <source>Large</source>
+ <translation>大型</translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="211"/>
+ <source>Cavern</source>
+ <translation>洞穴</translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="212"/>
<source>Wacky</source>
<translation>曲折</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="219"/>
- <source>Large tunnels</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/>
- <source>Small islands</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="221"/>
- <source>Medium islands</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="222"/>
+ <source>Large tunnels</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="223"/>
+ <source>Small islands</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="224"/>
+ <source>Medium islands</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="225"/>
<source>Large islands</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="705"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="710"/>
<source>Map size:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="712"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="717"/>
<source>Maze style:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="725"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="730"/>
<source>Mission:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="735"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="740"/>
<source>Map:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="799"/>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="930"/>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="804"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="935"/>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="886"/>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="886"/>
<source>Drawn Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="886"/>
<source>All files</source>
<translation type="unfinished"></translation>
</message>
@@ -647,40 +667,33 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="495"/>
- <source>%1 *** %2 has joined</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="544"/>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="788"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="797"/>
<source>%1 *** %2 has left</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="546"/>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="790"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="799"/>
<source>%1 *** %2 has left (%3)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="641"/>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="773"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="651"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="782"/>
<source>%1 *** %2 has joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1535"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1559"/>
<source>Quit reason: </source>
<translation>退出原因:</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="697"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="707"/>
<source>Room destroyed</source>
<translation>房间损坏</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="470"/>
+ <location filename="../../../../QTfrontend/net/newnetclient.cpp" line="484"/>
<source>You got kicked</source>
<translation>被踢出</translation>
</message>
@@ -890,6 +903,19 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagedata.cpp" line="66"/>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagedata.cpp" line="126"/>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="32"/>
@@ -1010,47 +1036,57 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="174"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="113"/>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="118"/>
+ <source>Save</source>
+ <translation type="unfinished">保存</translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="193"/>
<source>The best shot award was won by <b>%1</b> with <b>%2</b> pts.</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="182"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="201"/>
<source>The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="189"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="208"/>
<source>A total of <b>%1</b> hedgehog(s) were killed during this round.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="253"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="272"/>
<source>(%1 kill)</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="264"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="283"/>
<source><b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="272"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="291"/>
<source><b>%1</b> killed <b>%2</b> of his own hedgehogs.</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="280"/>
+ <location filename="../../../../QTfrontend/ui/page/pagegamestats.cpp" line="299"/>
<source><b>%1</b> was scared and skipped turn <b>%2</b> times.</source>
<translation type="unfinished">
<numerusform></numerusform>
@@ -1149,12 +1185,12 @@
<context>
<name>PageMultiplayer</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="52"/>
+ <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="50"/>
<source>Edit game preferences</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="64"/>
+ <location filename="../../../../QTfrontend/ui/page/pagemultiplayer.cpp" line="62"/>
<source>Start</source>
<translation>开始</translation>
</message>
@@ -1189,7 +1225,12 @@
<context>
<name>PageNetServer</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="128"/>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="87"/>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="138"/>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1313,97 +1354,97 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="369"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="371"/>
<source>Frontend</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="386"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="388"/>
<source>Custom colors</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="416"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="418"/>
<source>Reset to default colors</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="429"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="431"/>
<source>Game audio</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="467"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="469"/>
<source>Frontend audio</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="490"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="492"/>
<source>Account</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="516"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="518"/>
<source>Proxy settings</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="522"/>
- <source>Proxy host</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="523"/>
- <source>Proxy port</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="524"/>
- <source>Proxy login</source>
+ <source>Proxy host</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="525"/>
+ <source>Proxy port</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="526"/>
+ <source>Proxy login</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="527"/>
<source>Proxy password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="538"/>
- <source>No proxy</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="539"/>
- <source>System proxy settings</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="540"/>
- <source>Socks5 proxy</source>
+ <source>No proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="541"/>
+ <source>System proxy settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="542"/>
+ <source>Socks5 proxy</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="543"/>
<source>HTTP proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="576"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="578"/>
<source>Miscellaneous</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="616"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="624"/>
<source>Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="629"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="637"/>
<source>Check for updates</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="643"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="651"/>
<source>Video recording options</source>
<translation type="unfinished"></translation>
</message>
@@ -1424,42 +1465,42 @@
<context>
<name>PageRoomsList</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="63"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="64"/>
<source>Search for a room:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="90"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="91"/>
<source>Create room</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="94"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="95"/>
<source>Join room</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="141"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="153"/>
<source>Room state</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="165"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="177"/>
<source>Rules:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="179"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="191"/>
<source>Weapons:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="190"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="202"/>
<source>Clear filters</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="210"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="222"/>
<source>Open server administration page</source>
<translation type="unfinished"></translation>
</message>
@@ -1472,14 +1513,14 @@
<translation type="obsolete">加入</translation>
</message>
<message numerus="yes">
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="595"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="609"/>
<source>%1 players online</source>
<translation type="unfinished">
<numerusform></numerusform>
</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="208"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="220"/>
<source>Admin features</source>
<translation>管理员功能</translation>
</message>
@@ -1806,33 +1847,33 @@
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="269"/>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="874"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="885"/>
<source>Ignore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="273"/>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="886"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="897"/>
<source>Add friend</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="869"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="880"/>
<source>Unignore</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="881"/>
+ <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="892"/>
<source>Remove friend</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="150"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="162"/>
<source>Show games in lobby</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="153"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="165"/>
<source>Show games in-progress</source>
<translation type="unfinished"></translation>
</message>
@@ -1840,75 +1881,75 @@
<context>
<name>QCheckBox</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="375"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="377"/>
<source>Fullscreen</source>
<translation>游戏全屏幕</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="347"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="349"/>
<source>Show FPS</source>
<translation>显示帧率 (FPS)</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="358"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="360"/>
<source>Alternative damage show</source>
<translation>另一种伤害显示方式</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="381"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="383"/>
<source>Visual effects</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="454"/>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="471"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="456"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="473"/>
<source>Sound</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="455"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="457"/>
<source>In-game sound effects</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="461"/>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="476"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="463"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="478"/>
<source>Music</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="462"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="464"/>
<source>In-game music</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="472"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="474"/>
<source>Frontend sound effects</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="477"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="479"/>
<source>Frontend music</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="622"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="630"/>
<source>Check for updates at startup</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="364"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="366"/>
<source>Show ammo menu tooltips</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="602"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="610"/>
<source>Append date and time to record file name</source>
<translation>记录名称中包含具体时间日期</translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="55"/>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="507"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="509"/>
<source>Save password</source>
<translation type="unfinished"></translation>
</message>
@@ -1923,12 +1964,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="683"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="691"/>
<source>Record audio</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="732"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="740"/>
<source>Use game resolution</source>
<translation type="unfinished"></translation>
</message>
@@ -1951,88 +1992,88 @@
<translation>Lv 级别</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="588"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="590"/>
<source>(System default)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="311"/>
- <source>Disabled</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="312"/>
- <source>Red/Cyan</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="313"/>
- <source>Cyan/Red</source>
+ <source>Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="314"/>
- <source>Red/Blue</source>
+ <source>Red/Cyan</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="315"/>
- <source>Blue/Red</source>
+ <source>Cyan/Red</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="316"/>
- <source>Red/Green</source>
+ <source>Red/Blue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="317"/>
+ <source>Blue/Red</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="318"/>
+ <source>Red/Green</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="319"/>
<source>Green/Red</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="326"/>
+ <source>Side-by-side</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="327"/>
+ <source>Top-Bottom</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="320"/>
+ <source>Red/Cyan grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="321"/>
+ <source>Cyan/Red grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="322"/>
+ <source>Red/Blue grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="323"/>
+ <source>Blue/Red grayscale</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="324"/>
- <source>Side-by-side</source>
+ <source>Red/Green grayscale</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="325"/>
- <source>Top-Bottom</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="318"/>
- <source>Red/Cyan grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="319"/>
- <source>Cyan/Red grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="320"/>
- <source>Red/Blue grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="321"/>
- <source>Blue/Red grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="322"/>
- <source>Red/Green grayscale</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="323"/>
<source>Green/Red grayscale</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="199"/>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="272"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="211"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="286"/>
<source>Any</source>
<translation type="unfinished"></translation>
</message>
@@ -2055,7 +2096,7 @@
<translation>城堡模式</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="255"/>
+ <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="259"/>
<source>Playing teams</source>
<translation>玩家队伍</translation>
</message>
@@ -2088,22 +2129,27 @@
<context>
<name>QLabel</name>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="582"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="584"/>
<source>Locale</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="496"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="498"/>
<source>Nickname</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="708"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="599"/>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="716"/>
<source>Resolution</source>
<translation>分辨率</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="293"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="295"/>
<source>Quality</source>
<translation type="unfinished"></translation>
</message>
@@ -2123,12 +2169,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="307"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="309"/>
<source>Stereo rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="338"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="340"/>
<source>FPS limit</source>
<translation>FPS 上限</translation>
</message>
@@ -2172,7 +2218,7 @@
<translation type="obsolete">版本</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="437"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="439"/>
<source>Initial sound volume</source>
<translation>初始音量</translation>
</message>
@@ -2319,27 +2365,27 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="100"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="103"/>
<source>Your Email</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="108"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="111"/>
<source>Summary</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="118"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="121"/>
<source>Send system information</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="133"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="136"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="161"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="164"/>
<source>Type the security code:</source>
<translation type="unfinished"></translation>
</message>
@@ -2354,27 +2400,27 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="652"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="660"/>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="672"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="680"/>
<source>Audio codec</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="697"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="705"/>
<source>Video codec</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="738"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="746"/>
<source>Framerate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="752"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="760"/>
<source>Bitrate (Kbps)</source>
<translation type="unfinished"></translation>
</message>
@@ -2392,7 +2438,7 @@
<context>
<name>QLineEdit</name>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="933"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="952"/>
<source>unnamed</source>
<translation>无名</translation>
</message>
@@ -2403,7 +2449,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="501"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="503"/>
<source>anonymous</source>
<translation type="unfinished"></translation>
</message>
@@ -2444,82 +2490,82 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="962"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="981"/>
<location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="500"/>
<source>Cannot delete default scheme '%1'!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="988"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1007"/>
<source>Please select a record from the list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1083"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1102"/>
<source>Hedgewars - Nick not registered</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1474"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1498"/>
<source>Unable to start server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1535"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1559"/>
<source>Connection to server is lost</source>
<translation>服务器连接丢失</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="2021"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2082"/>
<source>Not all players are ready</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="2022"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="2083"/>
<source>Are you sure you want to start this game?
Not all players are ready.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="347"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="352"/>
<location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="24"/>
<source>Hedgewars - Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="357"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="362"/>
<source>System Information Preview</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="372"/>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="383"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="377"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="388"/>
<source>Failed to generate captcha</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="400"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="405"/>
<source>Failed to download captcha</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="464"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="469"/>
<source>Please fill out all fields. Email is optional.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1963"/>
- <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="434"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1985"/>
+ <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="439"/>
<source>Hedgewars - Success</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1964"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1986"/>
<source>All file associations have been set</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/hwform.cpp" line="1969"/>
+ <location filename="../../../../QTfrontend/hwform.cpp" line="1991"/>
<source>File association failed.</source>
<translation type="unfinished"></translation>
</message>
@@ -2587,22 +2633,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="546"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="560"/>
<source>Room Name - Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="547"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="561"/>
<source>Please select room from the list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="582"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="596"/>
<source>Room Name - Are you sure?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="583"/>
+ <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="597"/>
<source>The game you are trying to join has started.
Do you still want to join the room?</source>
<translation type="unfinished"></translation>
@@ -2649,7 +2695,7 @@
<message>
<location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="101"/>
<location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="121"/>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="891"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="896"/>
<source>File error</source>
<translation type="unfinished"></translation>
</message>
@@ -2660,7 +2706,7 @@
</message>
<message>
<location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="122"/>
- <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="892"/>
+ <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="897"/>
<source>Cannot open '%1' for reading</source>
<translation type="unfinished"></translation>
</message>
@@ -2741,12 +2787,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="89"/>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="99"/>
<source>Start</source>
<translation>开始</translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="90"/>
+ <location filename="../../../../QTfrontend/ui/page/pagenetserver.cpp" line="100"/>
<source>Start private server</source>
<translation type="unfinished"></translation>
</message>
@@ -2804,17 +2850,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="608"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="616"/>
<source>Associate file extensions</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="765"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="773"/>
<source>Set default options</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="766"/>
+ <location filename="../../../../QTfrontend/ui/page/pageoptions.cpp" line="774"/>
<source>Restore default coding parameters</source>
<translation type="unfinished"></translation>
</message>
@@ -3012,7 +3058,7 @@
<context>
<name>TeamSelWidget</name>
<message>
- <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="260"/>
+ <location filename="../../../../QTfrontend/ui/widget/teamselect.cpp" line="264"/>
<source>At least two teams are required to play!</source>
<translation type="unfinished"></translation>
</message>
@@ -3729,7 +3775,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../../../QTfrontend/util/DataManager.cpp" line="156"/>
+ <location filename="../../../../QTfrontend/util/DataManager.cpp" line="158"/>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
@@ -3771,147 +3817,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="2"/>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="3"/>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="4"/>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="5"/>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="6"/>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="7"/>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="8"/>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="9"/>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="10"/>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="11"/>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="12"/>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="13"/>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="14"/>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="15"/>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="16"/>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="17"/>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="18"/>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="19"/>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="20"/>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="21"/>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="22"/>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="23"/>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="24"/>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="25"/>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="26"/>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="27"/>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="28"/>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="29"/>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Tue Jun 04 22:28:12 2013 +0200
@@ -99,19 +99,19 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Please give us feedback!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>If you found a bug, you can see if it's already known here (english): </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Your email address is optional, but we may want to contact you.</source>
+ <source>Send us feedback!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>If you found a bug, you can see if it's already been reported here: </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Your email address is optional, but necessary if you want us to get back at you.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -248,6 +248,18 @@
<source>Failed to save StyleSheet to %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>%1 has joined</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 has left (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWForm</name>
@@ -347,6 +359,10 @@
Please wait a few seconds and try again.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -466,10 +482,6 @@
<translation type="unfinished"></translation>
</message>
<message>
- <source>Theme: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Load drawn map</source>
<translation type="unfinished"></translation>
</message>
@@ -485,6 +497,10 @@
<source>Large tunnels</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -529,7 +545,7 @@
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation>%1***%2已經進入</translation>
+ <translation type="obsolete">%1***%2已經進入</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
@@ -723,6 +739,17 @@
</message>
</context>
<context>
+ <name>PageDataDownload</name>
+ <message>
+ <source>Loading, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This page requires an internet connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
@@ -858,6 +885,14 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -969,6 +1004,10 @@
<context>
<name>PageNetServer</name>
<message>
+ <source>Click here for details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Insert your address here</source>
<translation type="unfinished"></translation>
</message>
@@ -1943,6 +1982,10 @@
<source>This program is distributed under the %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3043,119 +3086,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>There's already a team with same name in the list</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hu.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/hu.txt Tue Jun 04 22:28:12 2013 +0200
@@ -146,7 +146,6 @@
02:01=%1 Eccot, a delfint játssza
02:01=%1 meglátogatja Aquaria-t
02:01=%1 meglelte Atlantiszt
-02:01=%1 a Bioshock 3 főszerepére vágyik
02:01=A kutyaúszásod még nem tőkéletes, %1
02:01=%1 hozhatott volna jet ski-t is
02:01=%1 nem szereti a vízisportokat
--- a/share/hedgewars/Data/Locale/it.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/it.txt Tue Jun 04 22:28:12 2013 +0200
@@ -56,7 +56,7 @@
00:53=Macchina Spazio-Temporale
; 00:54=Attrezzi da Costruzione
00:54=Terreno Spray
-00:55=Congelatore
+00:55=Raggio Congelatore
00:56=Mannarino
01:00=Combattiamo!
@@ -451,10 +451,10 @@
03:51=Terreno al 100%
03:52=NON USATO
03:53=TARDIS Modello 40
-03:54=(Arma in sviluppo)
-03:55=Utilità di costruzione
-03:56=(Arma in sviluppo)
-03:57=Ecco il grande chef!
+;03:54=(Arma in sviluppo)
+03:54=Utilità di costruzione
+03:55=Arma di ibernazione di massa
+03:56=Ecco il grande chef!
; Weapon Descriptions (use | as line breaks)
04:00=Attacca i tuoi nemici con una semplice granata.|Esploderà quando il timer arriverà a zero secondi.|1-5: Imposta il timer della granata|Attacco: Tieni premuto per lanciare con più forza|Mirino di Precisione + 1-5: Imposta livello di rimbalzo
@@ -511,10 +511,10 @@
04:51=Spingete i nemici in acqua o sopra le mine!|Questa semplice arma non farà molti danni ma|spingerà con forza i nemici che colpisce!|Nei temi Snow e Christmas è una palla di neve!|Attacco: Tieni premuto per lanciare con più forza
04:52=NON USATO
04:53=Parti per un'avventura unica attraverso spazio e tempo,|lasciando i tuoi compagni da soli a combattere.|Preparati a ritornare in qualsiasi momento,|o per il Sudden Death o se sei l'ultimo sopravvissuto.|Attenzione! Non è utilizzabile durante il Sudden Death,|se sei rimasto da solo, o se sei il Re.|Attacco: Inzia la tua avventura nello spazio-tempo!
-04:54=DESCRIZIONE NON DISPONIBILE (arma ancora in sviluppo)
-04:55=Con questo terreno spray non ti mancherà mai la terra |sotto ai piedi. Utilissimo per costruire ponti, |seppellire nemici e sigillare tunnel.|Ma fai attenzione a non usarlo a tuo svantaggio!|Attacco: Attiva|Su/Giù: Continua a mirare|Sinistra/Destra: Modifica la potenza di fuoriuscita del terreno
-04:56=DESCRIZIONE NON DISPONIBILE (arma ancora in sviluppo)
-04:57=Lancia due mannarini da cucina verso i tuoi nemici, se |lanciati con potenza possono rappresentare una... tagliente sorpresa!|Ricorda che rimarranno sul terreno dopo averli lanciati!|Attacco: Tieni premuto per lanciare con più forza
+;04:54=DESCRIZIONE NON DISPONIBILE (arma ancora in sviluppo)
+04:54=Con questo terreno spray non ti mancherà mai la terra |sotto ai piedi. Utilissimo per costruire ponti, |seppellire nemici e sigillare tunnel.|Ma fai attenzione a non usarlo a tuo svantaggio!|Attacco: Attiva|Su/Giù: Continua a mirare|Sinistra/Destra: Modifica la potenza di fuoriuscita del terreno
+04:55=L'era glaciale non è mai stata così imminente!|Con questo potente raggio potrai congelare i ricci nemici,|rendere il terreno scivoloso e salvarti dalle cadute|in acqua trasformando il mare in una distesa di ghiaccio!|Attacco: Attiva|Su/Giù: Continua a mirare
+04:56=Lancia due mannarini da cucina verso i tuoi nemici, se |lanciati con potenza possono rappresentare una... tagliente sorpresa!|Ricorda che rimarranno sul terreno dopo averli lanciati!|Attacco: Tieni premuto per lanciare con più forza
; Game goal strings
05:00=Modalità di Gioco
--- a/share/hedgewars/Data/Locale/ja.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/ja.txt Tue Jun 04 22:28:12 2013 +0200
@@ -177,7 +177,6 @@
02:01=%1はエコーザのイルカを再生したい
02:01=%1は水族館を訪問してしまった
02:01=%1がアトランティスの失われた都市を発見した
-02:01=%1でBioshock3の先導的な役割を目指して
02:01=あなたの犬のパドルは、少し作業は、%1を使用することができます
02:01=%1はジェットスキーを持っている必要があります
02:01=%1はウォータースポーツが好きではありません。
@@ -466,8 +465,8 @@
03:51=地上で発見
03:52=UNUSED
03:53=タイプ40
-03:54=何かを構築
-03:55=ユーティリティ
+;03:54=何かを構築
+03:54=ユーティリティ
; Weapon Descriptions (use | as line breaks)
04:00=シンプルな手榴弾を使って敵を攻撃。|そのタイマーがゼロに達するとそれが爆発する。|1-5:セットグレネードのタイマー攻撃:より多くの電力をスローするようにホールド
@@ -524,8 +523,8 @@
04:51=泥のボールを投げつけることによって自由なショットで取得します。|刺されは、ビット、豚をバックノックする。
04:52=UNUSED
04:53=あなたの仲間が単独で戦うために残しながら、時間と空間を介して冒険に出る。|いつでも返すように準備する、または突然死の場合、または、それらはすべて敗北しています。|免責事項。|あなたは一人である場合は、突然死で機能するか、キングである場合ではありません。
-04:54=INCOMPLETE
-04:55=スティッキーフレークのストリームをスプレー。|トンネルを封鎖、敵を埋める、ブリッジを構築します。|あなたが上の任意のを取得しないように注意してください!
+;04:54=INCOMPLETE
+04:54=スティッキーフレークのストリームをスプレー。|トンネルを封鎖、敵を埋める、ブリッジを構築します。|あなたが上の任意のを取得しないように注意してください!
; Game goal strings
05:00=ゲームモード
--- a/share/hedgewars/Data/Locale/lt.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/lt.txt Tue Jun 04 22:28:12 2013 +0200
@@ -175,7 +175,6 @@
02:01=%1 nori žaisti delfinus
02:01=%1 nuejo i Aquaria
02:01=%1 rado prarasta atlantijos miesta
-02:01=%1 bando pajimti pagrindini vaidmeni Bioshock 3
02:01=Tavo šuniuko stylius galėtu panaudoti šiek tiek daugiau praktikos, %1
02:01=%1 galėjo atsinešti laiva
02:01=%1 nepatinka vandens sportas
@@ -447,7 +446,7 @@
03:51=Rastas Ant Žemės
03:52=UNUSED
03:53=Tipas 40
-03:54=Pastatyk Ka Nors
+;03:54=Pastatyk Ka Nors
; Weapon Descriptions (use | as line breaks)
04:00=Atakuok savo priešus su paprasta granata.|Ji sprogs kaip jos laikmatis pasieks nuli.|1-5: Nustatyk granatos laikmati|Ataka: Laikyk kad mestum stipriau
--- a/share/hedgewars/Data/Locale/missions_en.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/missions_en.txt Tue Jun 04 22:28:12 2013 +0200
@@ -43,8 +43,11 @@
User_Mission_-_Rope_Knock_Challenge.name=Challenge: Rope Knocking
User_Mission_-_Rope_Knock_Challenge.desc="Look behind you!"
+User_Mission_-_Nobody_Laugh.name=Mission: Nobody Laugh
+User_Mission_-_Nobody_Laugh.desc="This ain't no joke."
+
User_Mission_-_RCPlane_Challenge.name=Challenge: RC Plane
User_Mission_-_RCPlane_Challenge.desc="Feeling pretty confident, eh, flyboy?"
-portal.name= Mission: Portal training mission
+portal.name=Mission: Portal Mind Challenge
portal.desc="Use the portal to move fast and far, use it to kill, use it with caution!"
--- a/share/hedgewars/Data/Locale/missions_fr.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/missions_fr.txt Tue Jun 04 22:28:12 2013 +0200
@@ -13,7 +13,7 @@
Basic_Training_-_Sniper_Rifle.name=Initiation au Sniper
Basic_Training_-_Sniper_Rifle.desc="Pan ! En pleine tête !"
-Basic_Training_-_Rope.name=Initiation à la Corde Ninja
+Basic_Training_-_Rope.name=Initiation au Grappin
Basic_Training_-_Rope.desc="Bouge de là et Balance toi !"
User_Mission_-_Dangerous_Ducklings.name=Mission: Canards dangereux
@@ -40,8 +40,11 @@
User_Mission_-_The_Great_Escape.name=Mission: La grande évasion
User_Mission_-_The_Great_Escape.desc="Tu pense que tu peux me capturer ?!"
-User_Mission_-_Rope_Knock_Challenge.name=Challenge: A coup de Corde Ninja
+User_Mission_-_Rope_Knock_Challenge.name=Challenge: A coup de Grappin
User_Mission_-_Rope_Knock_Challenge.desc="Regarde derrière toi !"
User_Mission_-_RCPlane_Challenge.name=Challenge: Avion télécommandé
-User_Mission_-_RCPlane_Challenge.desc="Plutôt confiant, hein, aviateur ?"
\ No newline at end of file
+User_Mission_-_RCPlane_Challenge.desc="Plutôt confiant, hein, aviateur ?"
+
+portal.name=Portal Casse Tête
+portal.desc="Utilisez le fusil à portail pour voyager loin et rapidemment ou pour tuer ! Utiliser avec prudence !"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/missions_pt.txt Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,50 @@
+Basic_Training_-_Bazooka.name=Treino Básico com Bazuca
+Basic_Training_-_Bazooka.desc="Saber utilizar o vento para tua vantagem é a chave!"
+
+Basic_Training_-_Grenade.name=Treino Básico com Granada
+Basic_Training_-_Grenade.desc="Lembra-te, tens de retirar a cavilha E ATIRAR!"
+
+Basic_Training_-_Cluster_Bomb.name=Treino Básico com Bomba de Fragmentos
+Basic_Training_-_Cluster_Bomb.desc="Alguem está a precisar de um duche bem quente!"
+
+Basic_Training_-_Shotgun.name=Treino Básico com Caçadeira
+Basic_Training_-_Shotgun.desc="Dispara primeiro, questiona depois!"
+
+Basic_Training_-_Sniper_Rifle.name=Treino Básico com Sniper
+Basic_Training_-_Sniper_Rifle.desc="Boom, headshot!"
+
+Basic_Training_-_Rope.name=Treino Básico com Corda
+Basic_Training_-_Rope.desc="Get out there and swing!"
+
+User_Mission_-_Dangerous_Ducklings.name=Missão: Dangerous Ducklings
+User_Mission_-_Dangerous_Ducklings.desc="Alright, rookie! Time to put what we learned in Basic Training into practice!"
+
+User_Mission_-_Diver.name=Missão: Diver
+User_Mission_-_Diver.desc="Esta coisa do 'assalto anfíbio' é mais difícil do que parece..."
+
+User_Mission_-_Teamwork.name=Missão: Teamwork
+User_Mission_-_Teamwork.desc="Por vezes, o amor doi."
+
+User_Mission_-_Spooky_Tree.name=Missão: Spooky Tree
+User_Mission_-_Spooky_Tree.desc="Imensas caixas por todo o lado. Só espero que este pássaro não se esteja a sentir com fome."
+
+User_Mission_-_Bamboo_Thicket.name=Missão: Bamboo Thicket
+User_Mission_-_Bamboo_Thicket.desc="Death comes from above."
+
+User_Mission_-_That_Sinking_Feeling.name=Missão: That Sinking Feeling
+User_Mission_-_That_Sinking_Feeling.desc="A água está a subir rapidamente e o tempo é limitado. Muitos tentaram e falharam. Consegues salvá-los todos?"
+
+User_Mission_-_Newton_and_the_Hammock.name=Missão: Newton and the Hammock
+User_Mission_-_Newton_and_the_Hammock.desc="Remember hoglets: The velocity of a body remains constant unless the body is acted upon by an external force!"
+
+User_Mission_-_The_Great_Escape.name=Missão: The Great Escape
+User_Mission_-_The_Great_Escape.desc="Pensas que me consegues enjaular!?"
+
+User_Mission_-_Rope_Knock_Challenge.name=Desafio: Rope Knocking
+User_Mission_-_Rope_Knock_Challenge.desc="Look behind you!"
+
+User_Mission_-_RCPlane_Challenge.name=Desafio: Avião Telecomandado
+User_Mission_-_RCPlane_Challenge.desc="Feeling pretty confident, eh, flyboy?"
+
+portal.name=Missão: Treino com Portais
+portal.desc="Use the portal to move fast and far, use it to kill, use it with caution!"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/missions_tr.txt Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,50 @@
+Basic_Training_-_Bazooka.name=Temel Roketatar Eğitimi
+Basic_Training_-_Bazooka.desc="Rüzgarı yararına kullanmak bir anahtar!"
+
+Basic_Training_-_Grenade.name=Temel Bomba Eğitimi
+Basic_Training_-_Grenade.desc="Unutma, pimi çek VE at!"
+
+Basic_Training_-_Cluster_Bomb.name=Temel Parça Tesirli Bomba Eğitimi
+Basic_Training_-_Cluster_Bomb.desc="Birinin sıcak duşa ihtiyacı var!"
+
+Basic_Training_-_Shotgun.name=Temel Tüfek Eğitimi
+Basic_Training_-_Shotgun.desc="Önce atış yap, soruları sonra sor!"
+
+Basic_Training_-_Sniper_Rifle.name=Temel Keskin Nişancı Tüfeği Eğitimi
+Basic_Training_-_Sniper_Rifle.desc="Bum, kafadan!"
+
+Basic_Training_-_Rope.name=Temel Halat Eğitimi
+Basic_Training_-_Rope.desc="Ordan çık ve sallan!"
+
+User_Mission_-_Dangerous_Ducklings.name=Görev: Tehlikeli Ördek Yavruları
+User_Mission_-_Dangerous_Ducklings.desc="Peki acemi! Şimdi Temel Eğitimde öğrendiklerini uygulamanın zamanı!"
+
+User_Mission_-_Diver.name=Görev: Dalıcı
+User_Mission_-_Diver.desc="Bu 'iki yönlü saldırı' göründüğünden daha zor..."
+
+User_Mission_-_Teamwork.name=Görev: Takım Çalışması
+User_Mission_-_Teamwork.desc="Bazen, aşk acıtır."
+
+User_Mission_-_Spooky_Tree.name=Görev: Korkak Ağaç
+User_Mission_-_Spooky_Tree.desc="Burada çok fazla kasa var. Eminim bu kuş aç değildir."
+
+User_Mission_-_Bamboo_Thicket.name=Görev: Bambu Ormanı
+User_Mission_-_Bamboo_Thicket.desc="Ölüm yukardan gelir."
+
+User_Mission_-_That_Sinking_Feeling.name=Görev: Batıyormuş Hissi
+User_Mission_-_That_Sinking_Feeling.desc="Su hızlıca yükseliyor ve zaman kısıtlı. Çoğu denedi ve kaybetti. Hepsini kurtarabilecek misin?"
+
+User_Mission_-_Newton_and_the_Hammock.name=Görev: Newton ve Hamak
+User_Mission_-_Newton_and_the_Hammock.desc="Kirpişleri unutma: Bir vücudun hızı harici bir kuvvetle itilmedikçe sabit kalır!"
+
+User_Mission_-_The_Great_Escape.name=Görev: Büyük Kaçış
+User_Mission_-_The_Great_Escape.desc="Beni hapsedebileceğini mi sanıyorsun!?"
+
+User_Mission_-_Rope_Knock_Challenge.name=Mücadele: Halat Vuruşu
+User_Mission_-_Rope_Knock_Challenge.desc="Arkana bak!"
+
+User_Mission_-_RCPlane_Challenge.name=Mücadele: RC Uçağı
+User_Mission_-_RCPlane_Challenge.desc="Çok emin görünüyorsun değil mi, uçan çocuk?"
+
+portal.name= Görev: Portal eğitim görevi
+portal.desc="Hızlı ve uzak yerlere hareket için portalı kullan, öldürmek için kullan, dikkatli kullan!"
--- a/share/hedgewars/Data/Locale/nl.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/nl.txt Tue Jun 04 22:28:12 2013 +0200
@@ -164,7 +164,6 @@
02:01=%1 wants to play Ecco the dolphin
02:01=%1 has gone to visit Aquaria
02:01=%1 has found the lost city of Atlantis
-02:01=%1 aims for the lead role in Bioshock 3
02:01=Your doggy paddle could use a little work, %1
02:01=%1 should have brought a jet ski
02:01=%1 doesn't like watersports
--- a/share/hedgewars/Data/Locale/pl.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/pl.txt Tue Jun 04 22:28:12 2013 +0200
@@ -174,7 +174,7 @@
02:01=%1 śpi z rybami
02:01=%1 uważa, że fizyka płynów w tej grze jest do bani!
02:01=%1 wygląda na spragnionego
-02:01=Morze Ciebie wzywa, %1
+02:01=Morze Cię wzywa, %1
02:01=%1 zaginął na morzu
02:01=%1 powinien przynieść zestaw do nurkowania
02:01=%1 ma pogrzeb na morzu
@@ -193,7 +193,6 @@
02:01=%1 będzie grał w "Uwolnić Orkę"
02:01=%1 szuka rybek do akwarium!
02:01=%1 odnalazł Atlantydę!
-02:01=%1 chce być główną postacią w Bioshock 3
02:01=Trzeba było się uczyć pływać...
02:01=%1 powinien ze sobą zabrać narty wodne
02:01=%1 nie lubi sportów wodnych
@@ -287,7 +286,7 @@
02:05=Dobre życie... w formie skrzyneczki!
02:05=Ktoś dzwonił po doktora?
02:05=Świeże bandaże!
-02:05=To pomoże poczuć się Tobie lepiej
+02:05=Po tym poczujesz sie lepiej!
02:05=Pomniejszy Eliksir Żywotności! Eeee... To chyba nie ta nazwa.
02:05=Zbierz mnie!
02:05=Zbierz to!
@@ -310,6 +309,7 @@
02:05=W Hedgewars opieka zdrowotna naprawdę wymiata!
02:05=Na zdrowie!
02:05=Szczepionka!
+02:05=Ostatnio coś niewyraźnie wyglądasz. Weź tę apteczkę!
; New ammo crate
02:06=Więcej broni!
@@ -540,8 +540,10 @@
03:51=Znalezione na ziemi
03:52=UNUSED
03:53=Typ 40
-03:54=Zbuduj coś przydatnego
-03:55=Narzędzie
+;03:54=Zbuduj coś przydatnego
+03:54=Narzędzie
+03:55=Przełammy lody!
+03:56=Nie przytnij sobie igieł!
; Weapon Descriptions (use | as line breaks)
04:00=Atakuj przeciwników zwykłym granatem.|Wybuchnie kiedy zapalnik skończy odliczanie.|1-5: Ustawia zapalnik|Atak: Przytrzymaj by rzucić z większą siłą
@@ -598,8 +600,10 @@
04:51=Obrzuć kogoś błotem! Broń ta nie zadaje dużych|obrażeń ale może Gogol zepchnąć z krawędzi!|Atak: Przytrzymaj by strzelić z większą siłą
04:52=UNUSED
04:53=Wybierz się na podróż w czasie i przestrzeni|zostawiając inne jeże na polu walki.|Bądź przygotowany na powrót w dowolnym momencie.|Gdy rozpocznie się|Nagła Śmierć lub większość jeży zostanie wybita.|Uwaga. Nie zadziała podczas Nagłej Śmierci,|gdy jesteś sam lub jeśli jesteś Królem.
-04:54=INCOMPLETE
-04:55=Wystrzel strumień kleistej mazi.|Buduj mosty, zasypuj wrogów, zatykaj tunele.|Uważaj by nie zasypać samego siebie!
+;04:54=INCOMPLETE
+04:54=Wystrzel strumień kleistej mazi.|Buduj mosty, zasypuj wrogów, zatykaj tunele.|Uważaj by nie zasypać samego siebie!
+04:55=Epoka lodowcowa powraca!!|Zamroź jeże, uczyń podłoże śliskim lub zapobiegnij|utonięciu zamrażając wodę.|Atak: Strzał
+04:56=Rzuć w przeciwnika dwoma tasakami i zablokuj mu |drogę lub użyj ich do wspinaczki! Jednak uważaj! |Te tasaki są naprawdę ostre!|Atak: Przytrzymaj by rzucić z większą siłą (dwukrotnie)
; Game goal strings
05:00=Ustawienia gry
--- a/share/hedgewars/Data/Locale/pt_BR.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/pt_BR.txt Tue Jun 04 22:28:12 2013 +0200
@@ -328,8 +328,8 @@
03:51=Encontrei no chão
03:52=Sem uso
03:53=Tipo 40
-03:54=Constrói algo
-03:55=Utilidade
+;03:54=Constrói algo
+03:54=Utilidade
; Weapon Descriptions (use | as line breaks)
@@ -392,8 +392,8 @@
04:51=Ganhe um tiro de graça, atirando uma bola de barro.|Fará com que o inimigo saia voando|e arde a vista.
04:52=Sem Uso
04:53=Viage através do tempo e espaço,|deixando seus camaradas na mão.|Esteja preparado para retornar a qualquer momento,|ou para a Morte Súbita se todos os aliados foram mortos.|Aviso. Não funciona na Morte Súbita,|se você estiversozinho, ou se você for o Rei.
-04:54=INCOMPLETO
-04:55=Atira um jorro de barro pegajoso.|Constrói pontes, enterra inimigos, sela túneis.|Cuidado para que não pegue em você!
+;04:54=INCOMPLETO
+04:54=Atira um jorro de barro pegajoso.|Constrói pontes, enterra inimigos, sela túneis.|Cuidado para que não pegue em você!
; Game goal strings
05:00=Modos de Jogo
--- a/share/hedgewars/Data/Locale/pt_PT.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/pt_PT.lua Tue Jun 04 22:28:12 2013 +0200
@@ -5,19 +5,19 @@
["011101000"] = "011101000", -- A_Classic_Fairytale:dragon
["011101001"] = "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
["30 minutes later..."] = "30 minutos depois...", -- A_Classic_Fairytale:shadow
--- ["About a month ago, a cyborg came and told us that you're the cannibals!"] = "ácerca de\aproximadamente um mês atrás, um cyborg veio e disse-nos que voces é que eram os cabinais!", -- A_Classic_Fairytale:enemy
+ ["About a month ago, a cyborg came and told us that you're the cannibals!"] = "À volta de um mês atrás, apareceu um cyborg e disse-nos que voces é que eram os cabinais!", -- A_Classic_Fairytale:enemy
["Accuracy Bonus!"] = "Bónus de Precisão!",
["Ace"] = "Ás", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
["Achievement Unlocked"] = "Proeza Desbloqueada", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_That_Sinking_Feeling, Tumbler
["???"] = "???", -- A_Classic_Fairytale:backstab
["A Classic Fairytale"] = "Um Clássico Conto de Fadas", -- A_Classic_Fairytale:first_blood
--- ["Actually, you aren't worthy of life! Take this..."] = "Pensando melhor, não mereçes viver\a vida que te foi dada\não mereces o ar que respiras! Toma\Pega isto...", -- A_Classic_Fairytale:shadow
+ ["Actually, you aren't worthy of life! Take this..."] = "Pensando melhor, não mereçes viver! Toma isto...", -- A_Classic_Fairytale:shadow
["A cy-what?"] = "Um cy-quê?", -- A_Classic_Fairytale:enemy
["Adventurous"] = "Aventureiro", -- A_Classic_Fairytale:journey
["Africa"] = "África", -- Continental_supplies
--- ["After Leaks A Lot betrayed his tribe, he joined the cannibals..."] = "Depois do Leaks A Lot ter traido a sua tribo, ele juntou-se aos canibais...", -- A_Classic_Fairytale:first_blood
+ ["After Leaks A Lot betrayed his tribe, he joined the cannibals..."] = "Depois do Leaks A Lot ter traído a sua tribo, ele juntou-se aos canibais...", -- A_Classic_Fairytale:first_blood
["After the shock caused by the enemy spy, Leaks A Lot and Dense Cloud went hunting to relax."] = "Depois do choque causado pelo espião inimigo, Leaks A Lot e Nuvem Densa foram caçar para relaxar.", -- A_Classic_Fairytale:shadow
--- ["Again with the 'cannibals' thing!"] = "Outra vez com a cena dos 'canibais'!", -- A_Classic_Fairytale:enemy
+ ["Again with the 'cannibals' thing!"] = "Outra vez com a cena dos 'canibais'!", -- A_Classic_Fairytale:enemy
["a Hedgewars challenge"] = "um desafio Hedgewars", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
["a Hedgewars mini-game"] = "um mini-jogo Hedgewars", -- Space_Invasion, The_Specialists
["Aiming Practice"] = "Pratica a tua pontaria", --Bazooka, Shotgun, SniperRifle
@@ -31,27 +31,27 @@
["Ammo is reset at the end of your turn."] = "O armamento é reposto no fim do teu turno.",
-- ["Ammo Maniac!"] = "",
["Ammo"] = "Munições",
--- ["And how am I alive?!"] = "E como (raio) estou eu ainda vivo?!", -- A_Classic_Fairytale:enemy
+ ["And how am I alive?!"] = "E como raio estou eu vivo ainda?!", -- A_Classic_Fairytale:enemy
-- ["And so happenned that Leaks A Lot failed to complete the challenge! He landed, pressured by shame..."] = "", -- A_Classic_Fairytale:first_blood
["And so it began..."] = "E assim começou...", -- A_Classic_Fairytale:first_blood
--- ["...and so the cyborgs took over the world..."] = "...e então os cyborgs tomaram conta\apoderaram-se do mundo...", -- A_Classic_Fairytale:shadow
--- ["And so they discovered that cyborgs weren't invulnerable..."] = "", -- A_Classic_Fairytale:journey
--- ["And where's all the weed?"] = "E onde está a erva toda?", -- A_Classic_Fairytale:dragon
--- ["And you believed me? Oh, god, that's cute!"] = "E tu acreditaste em mim? Ai Jesus, tão fofo!", -- A_Classic_Fairytale:journey
+ ["...and so the cyborgs took over the world..."] = "...e então os cyborgs apoderaram-se do mundo...", -- A_Classic_Fairytale:shadow
+ ["And so they discovered that cyborgs weren't invulnerable..."] = "E então descobriram que os cyborgs não eram invulneráveis...", -- A_Classic_Fairytale:journey
+ ["And where's all the weed?"] = "E onde está a erva toda?", -- A_Classic_Fairytale:dragon
+ ["And you believed me? Oh, god, that's cute!"] = "E tu acreditaste em mim? Ai meu deus, tão fofo!", -- A_Classic_Fairytale:journey
-- ["Anno 1032: [The explosion will make a strong push ~ wide range, wont affect hogs close to the target]"] = "", -- Continental_supplies
["Antarctica"] = "Antártica", -- Continental_supplies
["Are we there yet?"] = "Já chegámos?", -- A_Classic_Fairytale:shadow
-- ["Are you accusing me of something?"] = "Estás a acusar-me de alguma coisa?", -- A_Classic_Fairytale:backstab
-- ["Are you saying that many of us have died for your entertainment?"] = "Estás a tentar dizer-me que estas quantidade de nós morreu para o teu entertenimento?", -- 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
+ ["As a reward for your performance, here's some new technology!"] = "De forma a recompensar o teu desempenho, aqui tens alguma nova tecnologia!", -- A_Classic_Fairytale:dragon
["a shoppa minigame"] = "um minijogo shoppa", -- WxW
["Asia"] = "Ásia", -- Continental_supplies
-- ["Assault Team"] = "", -- A_Classic_Fairytale:backstab
--- ["As the ammo is sparse, you might want to reuse ropes while mid-air.|"] = "Como o armamento\munições é escaço, podes querer re-usar as cordas enquanto no ar.|", -- A_Classic_Fairytale:dragon
+ ["As the ammo is sparse, you might want to reuse ropes while mid-air.|"] = "Como o armamento está muito disperso, podes querer reutilizar a corda enquanto no ar.|", -- 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
+ ["As you can see, there is no way to get on the other side!"] = "Como podes ver, não existe forma de passarmos para o outro lado!", -- A_Classic_Fairytale:dragon
+ ["Attack From Rope"] = "Ataca Da Corda", -- WxW
["Australia"] = "Austrália", -- Continental_supplies
-- ["Available points remaining: "] = "Pontos activos restantes: ",
-- ["Back Breaker"] = "Parte Costas", -- A_Classic_Fairytale:backstab
@@ -136,7 +136,7 @@
-- ["Corpse Thrower"] = "", -- A_Classic_Fairytale:epil
-- ["Crates Left:"] = "", -- User_Mission_-_RCPlane_Challenge
["Cybernetic Empire"] = "Império Cibernético",
--- ["Cyborg. It's what the aliens call themselves."] = "Cyborg. É o que os extra terrestres se chamam a eles mesmos(errrr)", -- A_Classic_Fairytale:enemy
+-- ["Cyborg. It's what the aliens call themselves."] = "Cyborg. É o que os extra terrestres se chamam a eles mesmos(errrr)\autointitulam", -- A_Classic_Fairytale:enemy
-- ["Dahmer"] = "", -- A_Classic_Fairytale:backstab
-- ["DAMMIT, ROOKIE!"] = "",
-- ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
@@ -147,7 +147,7 @@
-- ["Defeat the cannibals!|Grenade hint: set the timer with [1-5], aim with [Up]/[Down] and hold [Space] to set power"] = "", -- A_Classic_Fairytale:shadow
-- ["Defeat the cyborgs!"] = "", -- A_Classic_Fairytale:enemy
-- ["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
--- ["Demolition is fun!"] = "Demolir é divertido!",
+ ["Demolition is fun!"] = "Demolir é divertido!",
["Dense Cloud"] = "Nuvem Densa", -- 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..."] = "O Nuvem Densa já lhes deve ter dito tudo...", -- A_Classic_Fairytale:shadow
-- ["Depleted Kamikaze!"] = "",
@@ -155,10 +155,10 @@
-- ["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
--- ["Did anyone follow you?"] = "", -- A_Classic_Fairytale:united
+ ["Did anyone follow you?"] = "Foste seguido por alguém?", -- 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
+ ["Did you warn the village?"] = "Avisaste a aldeia?", -- A_Classic_Fairytale:shadow
+ ["Die, die, die!"] = "Morre, morre, morre!", -- A_Classic_Fairytale:dragon
-- ["Disguise as a Rockhopper Penguin: [Swap place with a random enemy hog in the circle]"] = "", -- Continental_supplies
-- ["Dist: "] = "", -- Space_Invasion
-- ["Do not laugh, inexperienced one, for he speaks the truth!"] = "", -- A_Classic_Fairytale:backstab
@@ -324,11 +324,11 @@
-- ["Hint: you might want to stay out of sight and take all the crates...|"] = "", -- A_Classic_Fairytale:journey
-- ["His arms are so strong!"] = "Os braços dele são tão fortes!", -- A_Classic_Fairytale:first_blood
-- ["Hit Combo!"] = "",
--- ["Hmmm...actually...I didn't either."] = "", -- A_Classic_Fairytale:enemy
+ ["Hmmm...actually...I didn't either."] = "Hmmm...na verdade...uu também não fazia ideia.", -- A_Classic_Fairytale:enemy
["Hmmm..."] = "Hmmm...",
-- ["Hmmm, I'll have to find some way of moving him off this anti-portal surface..."] = "", -- portal
["Hmmm...it's a draw. How unfortunate!"] = "Hmmm...é um empate. Que azar!", -- A_Classic_Fairytale:enemy
--- ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
+ ["Hmmm...perhaps a little more time will help."] = "Hmmm...talvez um pouco mais de tempo ajude.", -- A_Classic_Fairytale:first_blood
-- ["Hogminator"] = "", -- A_Classic_Fairytale:family
-- ["Hogs in sight!"] = "", -- Continental_supplies
-- ["HOLY SHYTE!"] = "", -- Mutant
@@ -337,7 +337,7 @@
-- ["Hostage Situation"] = "", -- A_Classic_Fairytale:family
-- ["How can I ever repay you for saving my life?"] = "Como posso eu (possivelmente) recompensar-te por teres salvo a minha vida?", -- A_Classic_Fairytale:journey
-- ["How come in a village full of warriors, it's up to me to save it?"] = "", -- A_Classic_Fairytale:dragon
--- ["How difficult would you like it to be?"] = "", -- A_Classic_Fairytale:first_blood
+ ["How difficult would you like it to be?"] = "Quão difícil gostarias que fosse?", -- A_Classic_Fairytale:first_blood
-- ["HOW DO THEY KNOW WHERE WE ARE???"] = "", -- A_Classic_Fairytale:united
-- ["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
@@ -779,7 +779,7 @@
["TIME: "] = "TEMPO: ",
-- ["Tip: The rope physics are different than in the real world, |use it to your advantage!"] = "", -- Basic_Training_-_Rope
["Toggle Shield"] = "Ligar\Desligar Escudo",
--- ["To help you, of course!"] = "", -- A_Classic_Fairytale:journey
+ ["To help you, of course!"] = "Para te ajudar claro!", -- A_Classic_Fairytale:journey
-- ["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
@@ -848,14 +848,14 @@
-- ["We have to unite and defeat those cylergs!"] = "Temos de nos unir e derrotar estes ciber-pernudos!", -- A_Classic_Fairytale:enemy
["Welcome, Leaks A Lot!"] = "Bem vindo, Leaks a Lot!", -- A_Classic_Fairytale:journey
["Well done."] = "Bom trabalho.",
--- ["We'll give you a problem then!"] = "", -- A_Classic_Fairytale:enemy
+ ["We'll give you a problem then!"] = "Nós arranjamos-te um problema então!", -- A_Classic_Fairytale:enemy
-- ["We'll spare your life for now!"] = "Vamos poupar a tua vida para ja!", -- A_Classic_Fairytale:backstab
-- ["Well, that was a waste of time."] = "Bem, isto foi um desperdicio de tempo.", -- A_Classic_Fairytale:dragon
--- ["Well, well! Isn't that the cutest thing you've ever seen?"] = "", -- A_Classic_Fairytale:journey
--- ["Well, yes. This was a cyborg television show."] = "Bem, claro. Isto era um programa de televisão para cyborgs.", -- A_Classic_Fairytale:enemy
--- ["We made sure noone followed us!"] = "Certificamo-nos que ninguem nos seguiu!", -- A_Classic_Fairytale:backstab
--- ["We need to move!"] = "Temos de nos mover!", -- A_Classic_Fairytale:united
--- ["We need to prevent their arrival!"] = "Temos de prevenir que cheguem!", -- A_Classic_Fairytale:backstab
+-- ["Well, well! Isn't that the cutest thing you've ever seen?"] = "Bem, bem! Não isto é coisa mais fofa que já alguma vez viste?", -- A_Classic_Fairytale:journey
+ ["Well, yes. This was a cyborg television show."] = "Bem, claro. Isto era um programa de televisão para cyborgs.", -- A_Classic_Fairytale:enemy
+ ["We made sure noone followed us!"] = "Certificá-mo-nos que ninguém nos seguiu! que ninguem nos seguiu!", -- A_Classic_Fairytale:backstab
+ ["We need to move!"] = "Temos de ir!", -- A_Classic_Fairytale:united
+-- ["We need to prevent their arrival!"] = "Temos de prevenir a sua chegada!", -- A_Classic_Fairytale:backstab
["We need to warn the village."] = "Temos de avisar a aldeia.", -- A_Classic_Fairytale:shadow
-- ["We should head back to the village now."] = "", -- A_Classic_Fairytale:shadow
-- ["We were trying to save her and we got lost."] = "Estavamos a tentar salva-la e acabamos por nos perder.", -- A_Classic_Fairytale:family
@@ -863,18 +863,18 @@
-- ["What?! A cannibal? Here? There is no time to waste! Come, you are prepared."] = "O quê? Um canibal? Aqui? Não ha tempo a perder! Vem, estás preparado.", -- A_Classic_Fairytale:first_blood
["What a douche!"] = "Que otário!", -- A_Classic_Fairytale:enemy
-- ["What am I gonna...eat, yo?"] = "", -- A_Classic_Fairytale:family
--- ["What are you doing at a distance so great, young one?"] = "O que estás a tão grande distancia, jovem?", -- A_Classic_Fairytale:first_blood
+-- ["What are you doing at a distance so great, young one?"] = "O que estás a fazer a tão grande distancia, jovem?", -- A_Classic_Fairytale:first_blood
-- ["What are you doing? Let her go!"] = "Que estás a fazer? Larga-a!", -- A_Classic_Fairytale:journey
["What a ride!"] = "Que viagem!", -- A_Classic_Fairytale:shadow
["What a strange cave!"] = "Que caverna estranha!", -- A_Classic_Fairytale:dragon
--- ["What a strange feeling!"] = "", -- A_Classic_Fairytale:backstab
+-- ["What a strange feeling!"] = "Tenho um mau persentimento!", -- A_Classic_Fairytale:backstab
["What do my faulty eyes observe? A spy!"] = "O que vêm observam os meus defeituoso olhos? Um espião!", -- A_Classic_Fairytale:first_blood
-- ["Whatever floats your boat..."] = "O que quer que seja que faz o teu barco flutuar... (preciso melhor expressão verdadeiramente portuguesa)", -- A_Classic_Fairytale:shadow
[" What !! For all of this struggle i just win some ... TIME o0"] = " O quê !! Por todo este esforço tudo o que ganho é ... TEMPO o0", -- portal
-- ["What has "] = "Foi aquilo ", -- A_Classic_Fairytale:backstab
["What? Here? How did they find us?!"] = "O quê? Aqui? Como raio nos encontraram?!", -- A_Classic_Fairytale:backstab
-- ["What is this place?"] = "O que é este sitio?\Que (raio de) sitio é este?", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:enemy
--- ["What shall we do with the traitor?"] = "O que fazemos com o traidor?", -- A_Classic_Fairytale:backstab
+ ["What shall we do with the traitor?"] = "O que fazemos com o traidor?", -- A_Classic_Fairytale:backstab
-- ["WHAT?! You're the ones attacking us!"] = "O QUÊ?! Voces é que nos atacaram\estão a atacar!", -- A_Classic_Fairytale:enemy
["When?"] = "Quando?", -- A_Classic_Fairytale:enemy
["When I find it..."] = "Quando o encontrar...", -- A_Classic_Fairytale:dragon
--- a/share/hedgewars/Data/Locale/pt_PT.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/pt_PT.txt Tue Jun 04 22:28:12 2013 +0200
@@ -78,7 +78,7 @@
01:16=Pouco
01:17=Normal
01:18=Muito
-01:19=Excessivo
+01:19=Imenso
01:20=Ressalto: %1
01:21=Áudio Silenciado
@@ -178,7 +178,6 @@
02:01=%1 foi brincar com os golfinhos
02:01=%1 foi visitar o Oceanário
02:01=%1 encontrou a Atlântida perdida
-02:01=%1 inscreve-se no papel principal do Bioshock 3
02:01=O teu pato insuflável ficou triste %1
02:01=%1 devia ter comprado uma mota de água
02:01=%1 não gosta de desportos náuticos
@@ -450,8 +449,8 @@
03:51=Encontrado no chão
03:52=UNUSED
03:53=Modelo 40
-03:54=Constroi qualquer coisa
-03:55=Utilitário
+;03:54=Constroi qualquer coisa
+03:54=Utilitário
; Weapon Descriptions (use | as line breaks)
04:00=Ataca os teus inimigos usando uma simples granada.|Explodirá quando o tempo chegar a zero.|1-5: Define o temporizador da granada|Ataque: Deixa premido para lançar com mais força
@@ -508,8 +507,8 @@
04:51=Empurra um ouriço sem perder o turno|criando uma bola de lama tu mesmo!
04:52=UNUSED
04:53=Parte numa aventura pelo tempo e espaço,|deixando os teus colegas para se defenderem sozinhos.|Está preparado para regressar a qualquer altura,|para Morte Súbita ou se todos forem derrotados.|Atenção: Não funciona em Morte Súbita,|se estiveres sozinho, ou se fores o Rei.
-04:54=INCOMPLETO
-04:55=Aplica estas particulas de terreno em spray onde quiseres.|Constroi pontes, enterra inimigos ou fecha túneis.|Tem apenas cuidado, não o uses em ti proprio!
+;04:54=INCOMPLETO
+04:54=Aplica estas particulas de terreno em spray onde quiseres.|Constroi pontes, enterra inimigos ou fecha túneis.|Tem apenas cuidado, não o uses em ti proprio!
; Game goal strings
05:00=Modos de Jogo
--- a/share/hedgewars/Data/Locale/ro.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/ro.txt Tue Jun 04 22:28:12 2013 +0200
@@ -175,7 +175,6 @@
02:01=%1 wants to play Ecco the dolphin
02:01=%1 has gone to visit Aquaria
02:01=%1 has found the lost city of Atlantis
-02:01=%1 aims for the lead role in Bioshock 3
02:01=Your doggy paddle could use a little work, %1
02:01=%1 should have brought a jet ski
02:01=%1 doesn't like watersports
@@ -447,8 +446,8 @@
03:51=Found on the ground
03:52=UNUSED
03:53=Type 40
-03:54=Build something
-03:55=Utility
+;03:54=Build something
+03:54=Utility
; Weapon Descriptions (use | as line breaks)
04:00=Attack your enemies using a simple grenade.|It will explode once its timer reaches zero.|1-5: Set grenade's timer|Attack: Hold to throw with more power
@@ -505,8 +504,8 @@
04:51=Get in a free shot by hurling a ball of mud.|Stings a bit, and knocks hogs back.
04:52=UNUSED
04:53=Go on an adventure through time and space,|while leaving your comrades to fight on alone.|Be prepared to return at any time,|or for Sudden Death or if they are all defeated.|Disclaimer. Does not function in Sudden Death,|if you are alone, or if you are a King.
-04:54=INCOMPLETE
-04:55=Spray a stream of sticky flakes.|Build bridges, bury enemies, seal off tunnels.|Be careful you don't get any on you!
+;04:54=INCOMPLETE
+04:54=Spray a stream of sticky flakes.|Build bridges, bury enemies, seal off tunnels.|Be careful you don't get any on you!
; Game goal strings
05:00=Game Modes
--- a/share/hedgewars/Data/Locale/ru.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/ru.txt Tue Jun 04 22:28:12 2013 +0200
@@ -177,7 +177,6 @@
02:01=%1 хочет поиграть в Ecco the Dolphin
02:01=%1 пошел посмотреть аквариум
02:01=%1 нашёл потерянный город Атлантиды
-02:01=%1 стремится к главной роли в игре Bioshock 3
02:01=Твое плаванье по-собачьи принесло мало пользы, %1
02:01=%1 забыл взять гидроцикл
02:01=%1 не любит водный спорт
@@ -450,8 +449,8 @@
03:51=Найденный на земле
03:52=Не используется
03:53=Модель 40
-03:54=Построй что нибудь
-03:55=Полезная вещь
+;03:54=Построй что нибудь
+03:54=Полезная вещь
; Weapon Descriptions (use | as line breaks)
04:00=Атакуй своих врагов обычной гранатой.|Она взорвется сразу, как только таймер|достигнет нуля.|1-5: Установить таймер гранаты|Атака: Удерживай для более дальнего броска
--- a/share/hedgewars/Data/Locale/sk.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/sk.txt Tue Jun 04 22:28:12 2013 +0200
@@ -269,8 +269,8 @@
03:51=Nájdené na zemi
03:52=NEPOUŽÍVANÉ
03:53=Typ 40
-03:54=Postavte niečo
-03:55=Pomôcka
+;03:54=Postavte niečo
+03:54=Pomôcka
; Popis zbraní (ako oddeľovač riadkov použite |)
04:00=Zaútočte na vašich nepriateľov obyčajným granátom.|Vybuchne vtedy, keď vyprší časomiera.|1‐5: Nastavenie časovača granátu|Útok: Držanie tlačidla zvyšuje silu hodu|
@@ -327,8 +327,8 @@
04:51=Nemíňajte muníciu - hod blatom je zdarma.|Trošku štípe a dokáže ježka zhodiť.
04:52=NEPOUŽITÉ
04:53=Vyberte sa na cestu časom a priestorom|a nechajte vašich priateľov bojovať bez vás.|Buďte pripravený vrátiť sa kedykoľvek,|buď pri Náhlej smrti alebo keď sú všetci porazení.|Poznámka: Nefunguje počas Náhlej smrti,|ak ste sám alebo ak ste kráľom.
-04:54=NEKOMPLETNÉ
-04:55=Rozprášte prúd lepkavej hliny.|Postavte mosty, pochovajte nepriateľov,|zapečaťte tunely. Buďte|však opatrný a nezašpinte sa|od nej aj vy.
+;04:54=NEKOMPLETNÉ
+04:54=Rozprášte prúd lepkavej hliny.|Postavte mosty, pochovajte nepriateľov,|zapečaťte tunely. Buďte|však opatrný a nezašpinte sa|od nej aj vy.
; Reťazce pre ciele hry
--- a/share/hedgewars/Data/Locale/sv.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/sv.txt Tue Jun 04 22:28:12 2013 +0200
@@ -180,7 +180,6 @@
02:01=%1 vill leka Ecco the dolphin
02:01=%1 har gått för att besöka Aquaria
02:01=%1 har funnit den förlorade staden Atlantis
-02:01=%1 siktar på huvudrollen i Bioshock 3
02:01=Du borde träna på ditt hundsim, %1
02:01=%1 skulle ha tagit med sig vattenskidor
02:01=%1 gillar inte vattensporter
@@ -477,8 +476,8 @@
03:51=Upphittad på marken
03:52=UNUSED
03:53=Typ 40
-03:54=Bygg något
-03:55=Verktyg
+;03:54=Bygg något
+03:54=Verktyg
; Weapon Descriptions (use | as line breaks)
04:00=Attackera fienden med en enkel granat.|Exploderar när tiden når noll.|1-5: Ställ in granatens tid|Attack: Håll ner för att kasta med mer kraft
@@ -535,8 +534,8 @@
04:51=Få till en gratisträff genom att kasta en boll med|jord. Känns lite gran, och knuffar tillbaka|igelkottar.
04:52=UNUSED
04:53=Åk på ett äventyr genom tid och rymd, medan dina|kamrater blir kvar själva att slåss. Var beredd|att komma tillbaka när som helst, eller till|Sudden Death eller om de andra blir besegrade.|Varning. Fungerar inte under Sudden Death, om du|är ensam, eller om du är en kung.
-04:54=INCOMPLETE
-04:55=Spruta en ström av fästande jord.|Bygg broar, gräv ner fienden, stäng igen tunnlar.|Var försiktig så att du inte får något på dig!
+;04:54=INCOMPLETE
+04:54=Spruta en ström av fästande jord.|Bygg broar, gräv ner fienden, stäng igen tunnlar.|Var försiktig så att du inte får något på dig!
; Game goal strings
05:00=Spellägen
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/tr.lua Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,989 @@
+locale = {
+-- [":("] = "",
+-- ["!!!"] = "",
+-- ["..."] = "",
+-- ["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
+ ["30 minutes later..."] = "30 dakika sonra...", -- 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!"] = "Güzel Nişan Bonusu!",
+-- ["Ace"] = "", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
+-- ["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
+-- ["A cy-what?"] = "", -- A_Classic_Fairytale:enemy
+-- ["Adventurous"] = "", -- A_Classic_Fairytale:journey
+-- ["Africa"] = "", -- Continental_supplies
+-- ["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
+-- ["a Hedgewars challenge"] = "", -- User_Mission_-_RCPlane_Challenge, User_Mission_-_Rope_Knock_Challenge
+ ["a Hedgewars mini-game"] = "Hedgewars mini oyunu", -- Space_Invasion, The_Specialists
+ ["Aiming Practice"] = "Atış Eğitimi", --Bazooka, Shotgun, SniperRifle
+-- ["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
+-- ["All right, we just need to get to the other side of the island!"] = "", -- A_Classic_Fairytale:journey
+-- ["All walls touched!"] = "", -- WxW
+ ["Ammo Depleted!"] = "Munition erschöpft!",
+ ["ammo extended!"] = "Munition aufgestockt!",
+ ["Ammo is reset at the end of your turn."] = "Munition wird am Ende des Spielzuges zurückgesetzt.",
+ ["Ammo Maniac!"] = "Munitionsverrückter!",
+ ["Ammo"] = "Mermi",
+-- ["And how am I alive?!"] = "", -- A_Classic_Fairytale:enemy
+-- ["And so happenned that Leaks A Lot failed to complete the challenge! He landed, pressured by shame..."] = "", -- A_Classic_Fairytale:first_blood
+-- ["And so it began..."] = "", -- A_Classic_Fairytale:first_blood
+-- ["...and so the cyborgs took over the world..."] = "", -- A_Classic_Fairytale:shadow
+-- ["And so they discovered that cyborgs weren't invulnerable..."] = "", -- A_Classic_Fairytale:journey
+-- ["And where's all the weed?"] = "", -- A_Classic_Fairytale:dragon
+-- ["And you believed me? Oh, god, that's cute!"] = "", -- A_Classic_Fairytale:journey
+-- ["Anno 1032: [The explosion will make a strong push ~ wide range, wont affect hogs close to the target]"] = "", -- Continental_supplies
+-- ["Antarctica"] = "", -- Continental_supplies
+-- ["Are we there yet?"] = "", -- A_Classic_Fairytale:shadow
+-- ["Are you accusing me of something?"] = "", -- A_Classic_Fairytale:backstab
+-- ["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
+-- ["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
+-- ["Australia"] = "", -- Continental_supplies
+ ["Available points remaining: "] = "Verfügbare Punkte verbleibend:",
+-- ["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
+-- ["Bamboo Thicket"] = "",
+ ["Barrel Eater!"] = "Fassfresser!",
+ ["Barrel Launcher"] = "Fasswerfer",
+-- ["Baseballbat"] = "", -- Continental_supplies
+ ["Bat balls at your enemies and|push them into the sea!"] = "Schlage Bälle auf deine Widersacher|und lass sie ins Meer fallen!",
+ ["Bat your opponents through the|baskets and out of the map!"] = "Schlage deine Widersacher durch|die Körbe und aus der Karte hinaus!",
+ ["Bazooka Training"] = "Bazooka-Training",
+-- ["Beep Loopers"] = "", -- A_Classic_Fairytale:queen
+ ["Best laps per team: "] = "Beste Rundenzeiten pro Team: ",
+ ["Best Team Times: "] = "Beste Team-Zeiten: ",
+-- ["Beware, though! If you are slow, you die!"] = "", -- A_Classic_Fairytale:dragon
+-- ["Biomechanic Team"] = "", -- A_Classic_Fairytale:family
+-- ["Blender"] = "", -- A_Classic_Fairytale:family
+-- ["Bloodpie"] = "", -- A_Classic_Fairytale:backstab
+-- ["Bloodrocutor"] = "", -- A_Classic_Fairytale:shadow
+-- ["Bloodsucker"] = "", -- A_Classic_Fairytale:shadow
+ ["Bloody Rookies"] = "Blutige Anfänger", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+-- ["Bone Jackson"] = "", -- A_Classic_Fairytale:backstab
+-- ["Bonely"] = "", -- A_Classic_Fairytale:shadow
+ ["Boom!"] = "Bumm!",
+ ["BOOM!"] = "KABUMM!",
+ ["Boss defeated!"] = "Boss wurde besiegt!",
+ ["Boss Slayer!"] = "Boss-Töter!",
+-- ["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
+-- ["Brain Stu"] = "", -- A_Classic_Fairytale:united
+-- ["Brain Teaser"] = "", -- A_Classic_Fairytale:backstab
+-- ["Brutal Lily"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:epil
+-- ["Brutus"] = "", -- A_Classic_Fairytale:backstab
+ ["Build a track and race."] = "Konstruiere eine Strecke und mach ein Wettrennen.",
+-- ["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
+-- ["But the ones alive are stronger in their heart!"] = "", -- A_Classic_Fairytale:enemy
+-- ["But...we died!"] = "", -- A_Classic_Fairytale:backstab
+-- ["But where can we go?"] = "", -- A_Classic_Fairytale:united
+-- ["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
+-- ["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"] = "EROBERE DIE FAHNE",
+ ["Careless"] = "Achtlos",
+-- ["Carol"] = "", -- A_Classic_Fairytale:family
+-- ["CHALLENGE COMPLETE"] = "", -- User_Mission_-_RCPlane_Challenge
+ ["Change Weapon"] = "Waffenwechsel",
+-- ["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
+ ["Clumsy"] = "Hoppla",
+-- ["Cluster Bomb MASTER!"] = "", -- Basic_Training_-_Cluster_Bomb
+-- ["Cluster Bomb Training"] = "", -- Basic_Training_-_Cluster_Bomb
+ ["Codename: Teamwork"] = "Code-Name: 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 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!"] = "Durchlaufe die Strecke so schnell du kannst!",
+-- ["COMPLETION TIME"] = "", -- User_Mission_-_Rope_Knock_Challenge
+-- ["Configuration accepted."] = "", -- WxW
+-- ["Congratulations"] = "", -- Basic_Training_-_Rope
+ ["Congratulations!"] = "Gratulation!",
+-- ["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."] = "Gratulation! Du hast alle Ziele innerhalb der|verfügbaren Zeit ausgeschaltet.", --Bazooka, Shotgun, SniperRifle
+-- ["Continental supplies"] = "", -- Continental_supplies
+ ["Control pillars to score points."] = "Kontrolliere die Säulen um Punkte zu erhalten.",
+-- ["Corporationals"] = "", -- A_Classic_Fairytale:queen
+-- ["Corpsemonger"] = "", -- A_Classic_Fairytale:shadow
+-- ["Corpse Thrower"] = "", -- A_Classic_Fairytale:epil
+-- ["Crates Left:"] = "", -- User_Mission_-_RCPlane_Challenge
+ ["Cybernetic Empire"] = "Kybernetisches Imperium",
+-- ["Cyborg. It's what the aliens call themselves."] = "", -- A_Classic_Fairytale:enemy
+-- ["Dahmer"] = "", -- A_Classic_Fairytale:backstab
+ ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "VERDAMMT, REKRUT! RUNTER VON MEINEM KOPF!",
+ ["DAMMIT, ROOKIE!"] = "VERDAMMT, REKRUT!",
+-- ["Dangerous Ducklings"] = "",
+ ["Deadweight"] = "Gravitus",
+-- ["Defeat the cannibals"] = "", -- A_Classic_Fairytale:backstab
+-- ["Defeat the cannibals!|"] = "", -- A_Classic_Fairytale:united
+-- ["Defeat the cannibals!|Grenade hint: set the timer with [1-5], aim with [Up]/[Down] and hold [Space] to set power"] = "", -- A_Classic_Fairytale:shadow
+-- ["Defeat the cyborgs!"] = "", -- A_Classic_Fairytale:enemy
+-- ["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
+ ["Demolition is fun!"] = "Zerstörung macht Spaß!",
+-- ["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!"] = "Munitionsloses Kamikaze!",
+-- ["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."] = "Zerstöre die Angreifer um Punkte zu erhalten.",
+-- ["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
+-- ["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
+-- ["Disguise as a Rockhopper Penguin: [Swap place with a random enemy hog in the circle]"] = "", -- Continental_supplies
+-- ["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!"] = "",
+-- ["DOUBLE KILL"] = "", -- Mutant
+-- ["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
+-- ["Drills"] = "", -- A_Classic_Fairytale:backstab
+-- ["Drone Hunter!"] = "",
+-- ["Drop a bomb: [drop some heroic wind that will turn into a bomb on impact]"] = "", -- Continental_supplies
+ ["Drowner"] = "Absäufer",
+-- ["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
+-- ["Dude, we really need a new shaman..."] = "", -- A_Classic_Fairytale:shadow
+-- ["Dude, what's this place?!"] = "", -- A_Classic_Fairytale:dragon
+-- ["Dude, where are we?"] = "", -- A_Classic_Fairytale:backstab
+-- ["Dude, wow! I just had the weirdest high!"] = "", -- A_Classic_Fairytale:backstab
+-- ["Duration"] = "", -- Continental_supplies
+-- ["Dust storm: [Deals 20 damage to all enemies in the circle]"] = "", -- Continental_supplies
+ ["Each turn you get 1-3 random weapons"] = "Du bekommst jede Runde 1-3 zufällig gewählte Waffen",
+ ["Each turn you get one random weapon"] = "Du bekommst jede Runde eine zufällig gewählte Waffe.",
+-- ["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
+-- ["Elderbot"] = "", -- A_Classic_Fairytale:family
+-- ["Elimate your captor."] = "", -- User_Mission_-_The_Great_Escape
+ ["Eliminate all enemies"] = "Vernichte alle Gegner",
+ ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Eliminiere alle Ziele bevor die Zeit ausläuft.|Du hast in dieser Mission unbegrenzte Munition.", --Bazooka, Shotgun, SniperRifle
+-- ["Eliminate enemy hogs and take their weapons."] = "", -- Highlander
+ ["Eliminate Poison before the time runs out"] = "Neutralisiere das Gift bevor die Zeit abgelaufen ist",
+ ["Eliminate the Blue Team"] = "Lösche das Blaue Team aus",
+ ["Eliminate the enemy before the time runs out"] = "Vernichte den Feind bevor die Zeit abgelaufen ist", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_Newton_and_the_Hammock
+ ["Eliminate the enemy hogs to win."] = "Vernichte alle gegnerischen Igel um zu gewinnen",
+ ["Eliminate the enemy specialists."] = "Vernichte die gegnerischen Spezialisten",
+ ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Vernichte Einheit 3378 | Kraftloser Widerstand muss überleben",
+-- ["Elmo"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
+-- ["Energetic Engineer"] = "",
+ ["Enjoy the swim..."] = "Viel Spaß beim Schwimmen...",
+-- ["[Enter]"] = "",
+-- ["Europe"] = "", -- Continental_supplies
+-- [" ever done to you?!"] = "", -- A_Classic_Fairytale:backstab
+-- ["Everyone knows this."] = "", -- A_Classic_Fairytale:enemy
+-- ["Every single time!"] = "", -- A_Classic_Fairytale:dragon
+-- ["Everything looks OK..."] = "", -- A_Classic_Fairytale:enemy
+-- ["Exactly, man! That was my dream."] = "", -- A_Classic_Fairytale:backstab
+-- ["Eye Chewer"] = "", -- A_Classic_Fairytale:journey
+-- ["INSANITY"] = "", -- Mutant
+-- ["Family Reunion"] = "", -- A_Classic_Fairytale:family
+ ["Fastest lap: "] = "Schnellste Runde: ",
+ ["Feeble Resistance"] = "Kraftloser Widerstand",
+-- ["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
+-- ["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 a mine: [Does what it says ~ Cant be dropped close to an enemy ~ 1 sec]"] = "", -- Continental_supplies
+ ["Fire"] = "Feuer",
+-- ["First aid kits?!"] = "", -- A_Classic_Fairytale:united
+-- ["First Blood"] = "", -- A_Classic_Fairytale:first_blood
+-- ["FIRST BLOOD MUTATES"] = "", -- Mutant
+-- ["First Steps"] = "", -- A_Classic_Fairytale:first_blood
+ ["Flag captured!"] = "Fahne erobert!",
+ ["Flag respawned!"] = "Fahne wieder erschienen!",
+ ["Flag returned!"] = "Fahne zurückgebracht!",
+ ["Flags, and their home base will be placed where each team ends their first turn."] = "Fahnen und deren Heimatstandort werden dort plaziert wo jedes Team deren ersten Zug beendet.",
+-- ["Flamer"] = "",
+-- ["Flaming Worm"] = "", -- A_Classic_Fairytale:backstab
+-- ["Flare: [fire up some bombs depending on hogs depending on hogs in the circle"] = "", -- Continental_supplies
+-- ["Flesh for Brainz"] = "", -- A_Classic_Fairytale:journey
+-- ["For improved features/stability, play 0.9.18+"] = "", -- WxW
+-- ["Free Dense Cloud and continue the mission!"] = "", -- A_Classic_Fairytale:journey
+-- ["Friendly Fire!"] = "",
+ ["fuel extended!"] = "Treibstoff aus!",
+ ["GAME BEGUN!!!"] = "SPIEL GESTARTET!!!",
+-- ["Game Modifiers: "] = "", -- The_Specialists
+ ["GAME OVER!"] = "SPIEL ZU ENDE!",
+ ["Game Started!"] = "Spiel Gestartet!]",
+-- ["Game? Was this a game to you?!"] = "", -- A_Classic_Fairytale:enemy
+-- ["GasBomb"] = "", -- Continental_supplies
+-- ["Gas Gargler"] = "", -- A_Classic_Fairytale:queen
+-- ["Get Dense Cloud out of the pit!"] = "", -- A_Classic_Fairytale:journey
+ ["Get on over there and take him out!"] = "Mach, dass du hinüber kommst und schalte ihn aus!",
+-- ["Get on the head of the mole"] = "", -- A_Classic_Fairytale:first_blood
+-- ["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 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
+-- ["Gimme Bones"] = "", -- A_Classic_Fairytale:backstab
+-- ["Glark"] = "", -- A_Classic_Fairytale:shadow
+ ["Goal"] = "Ziel",
+ ["GO! GO! GO!"] = "Bewegung, Bewegung, Bewegung!",
+ ["Good birdy......"] = "Braver Vogel......",
+-- ["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!"] = "Viel Glück da draußen!",
+ ["Good so far!"] = "Gut soweit!",
+ ["Good to go!"] = "Startklar!",
+-- ["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
+ ["GOTCHA!"] = "ERWISCHT!",
+ ["Grab Mines/Explosives"] = "Sammle Minen/Fässer",
+-- ["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! You will be contacted soon for assistance."] = "", -- A_Classic_Fairytale:shadow
+-- ["Green lipstick bullet: [Is poisonous]"] = "", -- Continental_supplies
+-- ["Greetings, "] = "", -- A_Classic_Fairytale:dragon
+-- ["Greetings, cloudy one!"] = "", -- A_Classic_Fairytale:shadow
+-- ["Grenade Training"] = "", -- Basic_Training_-_Grenade
+-- ["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!"] = "Haha, na DAS wär ja was!",
+-- ["Hannibal"] = "", -- A_Classic_Fairytale:epil
+ ["Hapless Hogs"] = "Glücklose Igel",
+ [" Hapless Hogs left!"] = " Glücklose Igel verbleibend!",
+
+-- [" 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
+ ["Health crates extend your time."] = "Medipacks verlängern deine Zeit.",
+-- ["Heavy Cannfantry"] = "", -- A_Classic_Fairytale:united
+ ["Heavy"] = "Schwierig",
+-- ["Hedge-cogs"] = "", -- A_Classic_Fairytale:enemy
+-- ["Hedgehog projectile: [fire your hog like a Sticky Bomb]"] = "", -- Continental_supplies
+ ["Hedgewars-Basketball"] = "Hedgewars-Basketball",
+ ["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+-- ["Hedgibal Lecter"] = "", -- A_Classic_Fairytale:backstab
+ ["Heh, it's not that bad."] = "Hehe, so schlimm ist es nicht.",
+-- ["Hello again, "] = "", -- A_Classic_Fairytale:family
+-- ["Help me, Leaks!"] = "", -- A_Classic_Fairytale:journey
+-- ["Help me, please!!!"] = "", -- A_Classic_Fairytale:journey
+-- ["Help me, please!"] = "", -- A_Classic_Fairytale:journey
+-- ["He moves like an eagle in the sky."] = "", -- A_Classic_Fairytale:first_blood
+-- ["He must be in the village already."] = "", -- A_Classic_Fairytale:journey
+-- ["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
+-- ["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
+-- ["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
+-- ["Hint: Select the LowGravity and press [Fire]."] = "", -- A_Classic_Fairytale:journey
+-- ["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!"] = "",
+-- ["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
+-- ["Hmmm...it's a draw. How unfortunate!"] = "", -- A_Classic_Fairytale:enemy
+-- ["Hmmm...perhaps a little more time will help."] = "", -- A_Classic_Fairytale:first_blood
+-- ["Hogminator"] = "", -- A_Classic_Fairytale:family
+-- ["Hogs in sight!"] = "", -- Continental_supplies
+-- ["HOLY SHYTE!"] = "", -- Mutant
+-- ["Honest Lee"] = "", -- A_Classic_Fairytale:enemy
+ ["Hooray!"] = "Hurra!",
+-- ["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
+-- ["How difficult would you like it to be?"] = "", -- A_Classic_Fairytale:first_blood
+-- ["HOW DO THEY KNOW WHERE WE ARE???"] = "", -- A_Classic_Fairytale:united
+-- ["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
+ ["Hunter"] = "Jäger", --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
+-- ["I can't believe it worked!"] = "", -- A_Classic_Fairytale:shadow
+-- ["I can't believe this!"] = "", -- A_Classic_Fairytale:enemy
+-- ["I can't believe what I'm hearing!"] = "", -- A_Classic_Fairytale:backstab
+-- ["I can't wait any more, I have to save myself!"] = "", -- A_Classic_Fairytale:shadow
+-- ["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 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
+-- ["I forgot that she's the daughter of the chief, too..."] = "", -- A_Classic_Fairytale:backstab
+-- ["If they try coming here, they can have a taste of my delicious knuckles!"] = "", -- A_Classic_Fairytale:united
+-- ["If you agree to provide the information we need, you will be spared!"] = "", -- A_Classic_Fairytale:shadow
+-- ["If you can get that crate fast enough, your beloved \"princess\" may go free."] = "", -- A_Classic_Fairytale:journey
+-- ["If you decide to help us, though, we will no longer need to find a new governor for the island."] = "", -- A_Classic_Fairytale:shadow
+-- ["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
+
+-- ["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
+-- ["I have to follow that alien."] = "", -- A_Classic_Fairytale:backstab
+-- ["I have to get back to the village!"] = "", -- A_Classic_Fairytale:shadow
+-- ["I hope you are prepared for a small challenge, young one."] = "", -- A_Classic_Fairytale:first_blood
+-- ["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
+-- ["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
+-- ["I'm a ninja."] = "", -- A_Classic_Fairytale:dragon
+-- ["I marked the place of their arrival. You're welcome!"] = "", -- A_Classic_Fairytale:backstab
+-- ["I'm certain that this is a misunderstanding, fellow hedgehogs!"] = "", -- A_Classic_Fairytale:first_blood
+-- ["I mean, none of you ceased to live."] = "", -- A_Classic_Fairytale:enemy
+-- ["I'm getting old for this!"] = "", -- A_Classic_Fairytale:family
+-- ["I'm getting thirsty..."] = "", -- A_Classic_Fairytale:family
+-- ["I'm here to help you rescue her."] = "", -- A_Classic_Fairytale:family
+-- ["I'm not sure about that!"] = "", -- A_Classic_Fairytale:united
+-- ["Impressive...you are still dry as the corpse of a hawk after a week in the desert..."] = "", -- A_Classic_Fairytale:first_blood
+-- ["I'm so scared!"] = "", -- A_Classic_Fairytale:united
+-- ["Incredible..."] = "", -- A_Classic_Fairytale:shadow
+-- ["I need to find the others!"] = "", -- A_Classic_Fairytale:backstab
+-- ["I need to get to the other side of this island, fast!"] = "", -- A_Classic_Fairytale:journey
+-- ["I need to move the tribe!"] = "", -- A_Classic_Fairytale:united
+-- ["I need to prevent their arrival!"] = "", -- A_Classic_Fairytale:backstab
+-- ["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
+ ["Instructor"] = "Ausbilder", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+-- ["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"] = "Angreifer zerstört",
+-- ["Invasion"] = "", -- A_Classic_Fairytale:united
+-- ["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 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
+-- ["I think we are safe here."] = "", -- A_Classic_Fairytale:backstab
+-- ["I thought their shaman died when he tried our medicine!"] = "", -- A_Classic_Fairytale:shadow
+-- ["It is called 'Hogs of Steel'."] = "", -- A_Classic_Fairytale:enemy
+-- ["It is time to practice your fighting skills."] = "", -- A_Classic_Fairytale:first_blood
+-- ["It must be a childhood trauma..."] = "", -- A_Classic_Fairytale:family
+-- ["It must be the aliens!"] = "", -- A_Classic_Fairytale:backstab
+-- ["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..."] = "Gut, dass SUDDEN DEATH noch 99 Runden entfernt ist...",
+-- ["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
+-- ["It's over..."] = "", -- A_Classic_Fairytale:shadow
+-- ["It's time you learned that your actions have consequences!"] = "", -- A_Classic_Fairytale:journey
+-- ["It's worth more than wood!"] = "", -- A_Classic_Fairytale:enemy
+-- ["It wants our brains!"] = "", -- A_Classic_Fairytale:shadow
+-- ["It was not a dream, unwise one!"] = "", -- A_Classic_Fairytale:backstab
+-- ["I've seen this before. They just appear out of thin air."] = "", -- A_Classic_Fairytale:united
+-- ["I want to play a game..."] = "", -- A_Classic_Fairytale:journey
+-- ["I want to see how it handles this!"] = "", -- A_Classic_Fairytale:backstab
+-- ["I wish to help you, "] = "", -- A_Classic_Fairytale:dragon
+-- ["I wonder where Dense Cloud is..."] = "", -- A_Classic_Fairytale:journey, A_Classic_Fairytale:shadow
+-- ["I wonder why I'm so angry all the time..."] = "", -- A_Classic_Fairytale:family
+-- ["I won't let you kill her!"] = "", -- A_Classic_Fairytale:journey
+-- ["Jack"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
+-- ["Jeremiah"] = "", -- A_Classic_Fairytale:dragon
+-- ["John"] = "", -- A_Classic_Fairytale:journey
+-- ["Judas"] = "", -- A_Classic_Fairytale:backstab
+ ["Jumping is disabled"] = "Sprünge sind deaktiviert!",
+-- ["Just kidding, none of you have died!"] = "", -- A_Classic_Fairytale:enemy
+-- ["Just on a walk."] = "", -- A_Classic_Fairytale:united
+-- ["Just wait till I get my hands on that trauma! ARGH!"] = "", -- A_Classic_Fairytale:family
+ ["Kamikaze Expert!"] = "Kamikazeexperte!",
+ ["Keep it up!"] = "Weiter so!",
+-- ["Kerguelen"] = "", -- Continental_supplies
+ ["Killing spree!"] = "Blutrausch!",
+-- ["KILL IT!"] = "", -- A_Classic_Fairytale:first_blood
+-- ["KILLS"] = "",
+-- ["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
+ ["Last Target!"] = "Letzte Zielscheibe!",
+-- ["Leader"] = "", -- A_Classic_Fairytale:enemy
+-- ["Leaderbot"] = "", -- A_Classic_Fairytale:queen
+-- ["Leaks A Lot"] = "", -- 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
+-- ["Leaks A Lot, depressed for killing his loved one, failed to save the village..."] = "", -- A_Classic_Fairytale:journey
+-- ["Leaks A Lot gave his life for his tribe! He should have survived!"] = "", -- A_Classic_Fairytale:first_blood
+-- ["Leaks A Lot must survive!"] = "", -- A_Classic_Fairytale:journey
+-- ["Led Heart"] = "", -- A_Classic_Fairytale:queen
+-- ["Lee"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
+-- ["[Left Shift]"] = "",
+-- ["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
+-- ["Let's head back to the village!"] = "", -- A_Classic_Fairytale:shadow
+-- ["Let's see what your comrade does now!"] = "", -- A_Classic_Fairytale:journey
+-- ["Let's show those cannibals what we're made of!"] = "", -- A_Classic_Fairytale:backstab
+-- ["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
+ ["Listen up, maggot!!"] = "Aufgepasst, du Made!!",
+-- ["Little did they know that this hunt will mark them forever..."] = "", -- A_Classic_Fairytale:shadow
+-- ["Lively Lifeguard"] = "",
+-- ["Lonely Cries: [Rise the water if no hog is in the circle and deal 1 damage to all hogs]"] = "", -- Continental_supplies
+-- ["Look, I had no choice!"] = "", -- A_Classic_Fairytale:backstab
+-- ["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
+-- ["Luckily, I've managed to snatch some of them."] = "", -- A_Classic_Fairytale:united
+-- ["LUDICROUS KILL"] = "", -- Mutant
+-- ["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
+-- ["Meiwes"] = "", -- A_Classic_Fairytale:backstab
+-- ["Mindy"] = "", -- A_Classic_Fairytale:united
+ ["Mine Deployer"] = "Minenleger",
+ ["Mine Eater!"] = "Minenfresser!",
+ ["|- Mines Time:"] = "| - Minenzündzeit: ", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION FAILED"] = "MISSION GESCHEITERT", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESSFUL"] = "MISSION ERFOLGREICH", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESS"] = "MISSIONSERFOLG",
+-- ["Molotov"] = "", -- Continental_supplies
+-- ["MONSTER KILL"] = "", -- Mutant
+-- ["More Natives"] = "", -- A_Classic_Fairytale:epil
+ ["Movement: [Up], [Down], [Left], [Right]"] = "Bewegung: [Hoch], [Runter], [Links], [Rechts]",
+-- ["Multi-shot!"] = "",
+ ["Munition!"] = "Munition erschöpft!",
+-- ["Muriel"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
+-- ["Muscle Dissolver"] = "", -- A_Classic_Fairytale:shadow
+-- ["-------"] = "", -- Mutant
+-- ["Nade Boy"] = "", -- Basic_Training_-_Grenade
+-- ["Name"] = "", -- A_Classic_Fairytale:queen
+ ["Nameless Heroes"] = "Namenlose Helden",
+-- ["Nancy Screw"] = "", -- A_Classic_Fairytale:enemy, A_Classic_Fairytale:queen
+-- ["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
+ ["New Barrels Per Turn"] = "Neue Fässer jede Runde",
+ ["NEW CLAN RECORD: "] = "NEUER KLAN-REKORD",
+ ["NEW fastest lap: "] = "NEUE schnellste Runde: ",
+ ["New Mines Per Turn"] = "Neue Minen jede Runde",
+ ["NEW RACE RECORD: "] = "NEUER RENNREKORD: ",
+-- ["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
+-- ["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
+-- ["NomNom"] = "", -- A_Classic_Fairytale:united
+-- ["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
+-- ["North America"] = "", -- Continental_supplies
+-- ["Not all hogs are born equal."] = "", -- Highlander
+ ["NOT ENOUGH WAYPOINTS"] = "NICHT GENUG WEGPUNKTE",
+-- ["Not now, Fiery Water!"] = "", -- A_Classic_Fairytale:backstab
+ ["Not So Friendly Match"] = "Kein-so-Freundschaftsspiel", -- 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
+-- ["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
+-- ["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!"] = "Oh nein! Versuch's nochmal!", -- 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."] = "Oh nein! Die Zeit ist um! Versuche es nochmal.", --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 tribe was peaceful, spending their time hunting and training, enjoying the small pleasures of life..."] = "", -- A_Classic_Fairytale:first_blood
+-- ["Oops...I dropped them."] = "", -- A_Classic_Fairytale:united
+-- ["Open that crate and we will continue!"] = "", -- A_Classic_Fairytale:first_blood
+-- ["Operation Diver"] = "",
+ ["Opposing Team: "] = "Gegnerisches Team: ",
+-- ["Orlando Boom!"] = "", -- A_Classic_Fairytale:queen
+-- ["Ouch!"] = "", -- User_Mission_-_Rope_Knock_Challenge
+-- ["Our tribe, our beautiful island!"] = "", -- A_Classic_Fairytale:enemy
+-- ["Parachute"] = "", -- Continental_supplies
+ ["Pathetic Hog #%d"] = "Erbärmlicher Igel #%d",
+ ["Pathetic Resistance"] = "Erbärmlicher Widerstand", -- User_Mission_-_Bamboo_Thicket, User_Mission_-_Newton_and_the_Hammock
+-- ["Perfect! Now try to get the next crate without hurting yourself!"] = "", -- A_Classic_Fairytale:first_blood
+ ["Per-Hog Ammo"] = "Munition pro Igel",
+-- ["- Per team weapons|- 9 weaponschemes|- Unique new weapons| |Select continent first round with the Weapon Menu or by ([switch/tab]=Increase,[precise/left shift]=Decrease) on Skip|Some weapons have a second option. Find them with [switch/tab]"] = "", -- Continental_supplies
+
+-- ["Pfew! That was close!"] = "", -- A_Classic_Fairytale:shadow
+-- ["Piñata bullet: [Contains some sweet candy!]"] = "", -- Continental_supplies
+-- ["Pings left:"] = "", -- Space_Invasion
+
+ ["Place more waypoints using the 'Air Attack' weapon."] = "Platziere mehr Wegpunkte durch Verwenden der 'Luftangriff'-Waffe",
+-- ["Planes Used:"] = "", -- User_Mission_-_RCPlane_Challenge
+-- ["Planes Used"] = "", -- 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
+-- ["Please, stop releasing your \"smoke signals\"!"] = "", -- A_Classic_Fairytale:shadow
+-- ["Point Blank Combo!"] = "", -- Space_Invasion
+ ["points"] = "Punkte", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
+ ["Poison"] = "Gift",
+-- ["Portal hint: one goes to the destination, and one is the entrance.|"] = "", -- A_Classic_Fairytale:dragon
+-- ["Portal mission"] = "", -- portal
+ ["Power Remaining"] = "Verbleibende Energie",
+ ["Prepare yourself"] = "Mach dich bereit",
+-- ["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"] = "",
+-- ["Private Novak"] = "", -- Basic_Training_-_Cluster_Bomb
+-- ["Protect yourselves!|Grenade hint: set the timer with [1-5], aim with [Up]/[Down] and hold [Space] to set power"] = "", -- A_Classic_Fairytale:shadow
+ ["PUNKTESTAND"] = "",
+ ["Race complexity limit reached."] = "Rennkomplexitätslimit erreicht.",
+-- ["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
+-- ["RC PLANE TRAINING"] = "", -- User_Mission_-_RCPlane_Challenge
+-- ["Really?! You thought you could harm me with your little toys?"] = "", -- A_Classic_Fairytale:shadow
+-- ["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 this, pathetic animal: when the day comes, you will regret your blind loyalty!"] = "", -- A_Classic_Fairytale:shadow
+ [" - 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"] = " - Bringe die gegnerische Flagge zu deiner Heimatbasis um zu punkten. | - Das Team das zuerst 3 Flaggen erobert gewinnt. | - Du kannst nur punkten wenn deine eigene Flagge in deiner Basis ist | - Igel lassen die Flagge fallen wenn sie sterben oder ertrinken | - Fallen gelassene Flaggen können zurückgebracht oder wieder gestohlen werden | - Igel tauchen nach ihrem Tod wieder auf",
+-- ["Return to Leaks A Lot! If you get stuck, press [Precise] to try again!"] = "", -- A_Classic_Fairytale:shadow
+-- ["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-KNOCKING"] = "", -- User_Mission_-_Rope_Knock_Challenge
+-- ["Rope Training"] = "", -- Basic_Training_-_Rope
+-- ["Rot Molester"] = "", -- A_Classic_Fairytale:shadow
+-- ["Round Limit:"] = "",
+ ["Round Limit"] = "Rundenbegrenzung",
+-- ["Rounds Complete: "] = "",
+ ["Rounds Complete"] = "Runden Gespielt",
+ ["RULES OF THE GAME [Press ESC to view]"] = "SPIEL REGELN (Drücke ESC zum Anzeigen)",
+-- ["Rusty Joe"] = "", -- A_Classic_Fairytale:queen
+-- ["s|"] = "",
+-- ["Sabotage: [Sabotage all hogs in the circle and deal ~10 dmg]"] = "", -- Continental_supplies
+-- ["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!"] = "Rette so viele glücklose Igel als möglich!",
+-- ["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"] = "", -- Mutant
+-- ["SCORE"] = "", -- Space_Invasion
+-- ["Scream from a Walrus: [Deal 20 damage + 10% of your hogs health to all hogs around you and get half back]"] = "", -- Continental_supplies
+-- ["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
+-- ["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!"] = "Mach's gut!",
+-- ["Segmentation Paul"] = "", -- A_Classic_Fairytale:dragon
+-- ["Select continent!"] = "", -- Continental_supplies
+-- ["Select difficulty: [Left] - easier or [Right] - harder"] = "", -- A_Classic_Fairytale:first_blood
+ ["selected!"] = "ausgewählt!",
+-- ["s"] = "", -- GaudyRacer, Space_Invasion
+-- ["... share your beauty with the world every morning, my princess!"] = "", -- A_Classic_Fairytale:journey
+-- ["She's behind that tall thingy."] = "", -- A_Classic_Fairytale:family
+ ["Shield boosted! +30 power"] = "Schild verstärkt! +30 Energie",
+ ["Shield Depleted"] = "Schild aufgebraucht!",
+ ["Shield is fully recharged!"] = "Schild vollständig aufgeladen!",
+ ["Shield Master!"] = "Schildmeister!",
+ ["Shield Miser!"] = "Schildgieriger",
+ ["Shield OFF:"] = "Schild AUS:",
+ ["Shield ON:"] = "Schild AN:",
+ ["Shield Seeker!"] = "Schildsucher!",
+-- ["Shotgun"] = "", -- Continental_supplies
+ ["Shotgun Team"] = "Schrotflinten-Team",
+ ["Shotgun Training"] = "Schrotflinten-Training",
+ ["shots remaining."] = "Schüsse übrig",
+ ["Silly"] = "Doofi",
+ ["Sinky"] = "Blubb",
+-- ["Sirius Lee"] = "", -- A_Classic_Fairytale:enemy
+ ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s ist draußen und Team %d|erhält eine Strafe!| |Punktestand:", -- Basketball, Knockball
+ ["%s is out and Team %d|scored a point!| |Score:"] = "%s ist draußen und Team %d|erhält einen Punkt!| |Punktestand:", -- Basketball, Knockball
+-- ["Slippery"] = "", -- A_Classic_Fairytale:journey
+-- ["Smith 0.97"] = "", -- A_Classic_Fairytale:enemy
+-- ["Smith 0.98"] = "", -- A_Classic_Fairytale:enemy
+-- ["Smith 0.99a"] = "", -- A_Classic_Fairytale:enemy
+-- ["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!"] = "", -- Space_Invasion
+ ["Sniper Training"] = "Scharfschützen-Training",
+ ["Sniperz"] = "Heckenschützen",
+-- ["So humiliating..."] = "", -- A_Classic_Fairytale:first_blood
+-- ["South America"] = "", -- Continental_supplies
+-- ["So? What will it be?"] = "", -- A_Classic_Fairytale:shadow
+-- ["Spawn the crate, and attack!"] = "", -- WxW
+-- ["Special Weapons:"] = "", -- Continental_supplies
+ ["Spielmodifikatoren: "] = "",
+-- ["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"] = "Schwamm",
+-- ["Spooky Tree"] = "",
+-- ["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
+-- ["Stronglings"] = "", -- A_Classic_Fairytale:shadow
+-- ["Structure"] = "", -- Continental_supplies
+-- ["Super Weapons"] = "", -- WxW
+-- ["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
+ ["Switched to "] = "Gewechselt zu ",
+-- ["Syntax Errol"] = "", -- A_Classic_Fairytale:dragon
+-- ["Talk about mixed signals..."] = "", -- A_Classic_Fairytale:dragon
+-- ["Team %d: "] = "",
+ ["Team Scores"] = "Teampunktestand", -- Control, Space_Invasion
+-- ["Teleport hint: just use the mouse to select the destination!"] = "", -- A_Classic_Fairytale:dragon
+-- ["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
+-- ["Thank you, oh, thank you, my heroes!"] = "", -- A_Classic_Fairytale:journey
+-- ["That is, indeed, very weird..."] = "", -- A_Classic_Fairytale:united
+-- ["That makes it almost invaluable!"] = "", -- A_Classic_Fairytale:enemy
+-- ["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'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."] = "Das war sinnlos.",
+-- ["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 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 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!"] = "Der Feind versteckt sich auf dem Entlein dort drüben!",
+-- ["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 flag will respawn next round."] = "Die Fahne wird nächste Runde wieder auftauchen.",
+-- ["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 guardian"] = "", -- A_Classic_Fairytale:shadow
+-- ["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 Nameless One"] = "Der Namenlose",
+-- ["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
+-- ["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
+-- ["There's nothing more satisfying to us than seeing you share your beauty..."] = "", -- A_Classic_Fairytale:journey
+-- ["There's nothing more satisfying to us than seeing you share your beauty with the world every morning, my princess!"] = "", -- A_Classic_Fairytale:journey
+-- ["The Rising"] = "", -- A_Classic_Fairytale:first_blood
+-- ["The Savior"] = "", -- A_Classic_Fairytale:journey
+-- ["These primitive people are so funny!"] = "", -- A_Classic_Fairytale:backstab
+-- ["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"] = "DIE SPEZIALISTEN",
+-- ["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
+-- ["The Ultimate Weapon"] = "", -- A_Classic_Fairytale:first_blood
+-- ["The Union"] = "", -- A_Classic_Fairytale:enemy
+-- ["The village, unprepared, was destroyed by the cyborgs..."] = "", -- A_Classic_Fairytale:journey
+-- ["The walk of Fame"] = "", -- A_Classic_Fairytale:shadow
+-- ["The wasted youth"] = "", -- A_Classic_Fairytale:first_blood
+-- ["The weapon in that last crate was bestowed upon us by the ancients!"] = "", -- A_Classic_Fairytale:first_blood
+-- ["The what?!"] = "", -- A_Classic_Fairytale:dragon
+-- ["The wind whispers that you are ready to become familiar with tools, now..."] = "", -- A_Classic_Fairytale:first_blood
+-- ["They are all waiting back in the village, haha."] = "", -- A_Classic_Fairytale:enemy
+-- ["They Call Me Bullseye!"] = "", -- Space_Invasion
+-- ["They have weapons we've never seen before!"] = "", -- A_Classic_Fairytale:united
+-- ["They keep appearing like this. It's weird!"] = "", -- A_Classic_Fairytale:united
+-- ["They killed "] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
+-- ["They must be trying to weaken us!"] = "", -- A_Classic_Fairytale:enemy
+-- ["They never learn"] = "", -- A_Classic_Fairytale:journey
+-- ["They told us to wear these clothes. They said that this is the newest trend."] = "", -- A_Classic_Fairytale:enemy
+-- ["They've been manipulating us all this time!"] = "", -- A_Classic_Fairytale:enemy
+-- ["Thighlicker"] = "", -- A_Classic_Fairytale:united
+-- ["This is it! It's time to make Fell From Heaven fall for me..."] = "", -- A_Classic_Fairytale:first_blood
+-- ["This island is the only place left on Earth with grass on it!"] = "", -- A_Classic_Fairytale:enemy
+-- ["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."] = "Der hier ist knifflig.",
+ ["This rain is really something..."] = "Das nenne ich mal einen Regenschauer...",
+-- ["This will be fun!"] = "", -- A_Classic_Fairytale:enemy
+-- ["Those aliens are destroying the island!"] = "", -- A_Classic_Fairytale:family
+ ["Timed Kamikaze!"] = "Pünktliches Kamikaze!",
+ ["Time Extended!"] = "Zeit verlängert!",
+ ["Time Extension"] = "Zeitverlängerung",
+ ["Time Left: "] = "Verbleibende Zeit",
+ ["TIME: "] = "ZEIT: ",
+-- ["Tip: The rope physics are different than in the real world, |use it to your advantage!"] = "", -- Basic_Training_-_Rope
+ ["Toggle Shield"] = "Schild ein/aus",
+-- ["To help you, of course!"] = "", -- A_Classic_Fairytale:journey
+-- ["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"] = "Giftige Gegner", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["TRACK COMPLETED"] = "STRECKENLAUF BEENDET",
+ ["TRACK FAILED!"] = "STRECKENLAUF GESCHEITERT",
+-- ["training"] = "", -- portal
+-- ["Traitors"] = "", -- A_Classic_Fairytale:epil
+-- ["Tribe"] = "", -- A_Classic_Fairytale:backstab
+-- ["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!"] = "Purzelzeit verlängert!",
+-- ["Turns until Sudden Death: "] = "", -- A_Classic_Fairytale:dragon
+-- [" turns until Sudden Death! Better hurry!"] = "", -- A_Classic_Fairytale:dragon
+ ["Turn Time"] = "Zeit pro Zug",
+-- ["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
+-- ["Under Construction"] = "", -- A_Classic_Fairytale:shadow
+-- ["Unexpected Igor"] = "", -- A_Classic_Fairytale:dragon
+-- ["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"] = "Einheit 3378",
+ ["Unit 835"] = "Einheit 3378",
+-- ["United We Stand"] = "", -- A_Classic_Fairytale:united
+ ["Unit"] = "Einheit",
+ ["Unlimited Attacks"] = "Unbegrenzte Angriffe",
+-- ["Unlucky Sods"] = "", -- User_Mission_-_Rope_Knock_Challenge
+ ["Unstoppable!"] = "Unaufhaltbar!",
+-- ["Unsuspecting Louts"] = "", -- User_Mission_-_Rope_Knock_Challenge
+-- ["[Up], [Down] to aim, [Space] to shoot!"] = "", -- A_Classic_Fairytale:first_blood
+-- ["Use it wisely!"] = "", -- A_Classic_Fairytale:dragon
+-- ["Use it with precaution!"] = "", -- A_Classic_Fairytale:first_blood
+-- ["User Challenge"] = "",
+
+-- ["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 your rope to get from start to finish as fast as you can!"] = "Nutze das Seil um von Start zu Ziel zu gelangen - so schnell du kannst!",
+-- ["Vedgies"] = "", -- A_Classic_Fairytale:journey
+-- ["Vegan Jack"] = "", -- A_Classic_Fairytale:enemy
+-- ["Victory!"] = "", -- Basic_Training_-_Rope
+ ["Victory for the "] = "Sieg für ", -- CTF_Blizzard, Capture_the_Flag
+-- ["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
+-- ["Watch your steps, young one!"] = "", -- A_Classic_Fairytale:first_blood
+ ["Waypoint placed."] = "Wegpunkt gesetzt",
+ ["Way-Points Remaining"] = "Wegpunkte verbleibend",
+-- ["Weaklings"] = "", -- A_Classic_Fairytale:shadow
+-- ["We all know what happens when you get frightened..."] = "", -- A_Classic_Fairytale:first_blood
+-- ["Weapons reset."] = "", -- Highlander
+ ["Weapons Reset"] = "Waffenzurücksetzung",
+-- ["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
+-- ["We can't let them take over our little island!"] = "", -- A_Classic_Fairytale:enemy
+-- ["We have no time to waste..."] = "", -- A_Classic_Fairytale:journey
+-- ["We have nowhere else to live!"] = "", -- A_Classic_Fairytale:enemy
+-- ["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."] = "Gut gemacht.",
+-- ["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
+-- ["Well, well! Isn't that the cutest thing you've ever seen?"] = "", -- A_Classic_Fairytale:journey
+-- ["Well, yes. This was a cyborg television show."] = "", -- A_Classic_Fairytale:enemy
+-- ["We made sure noone followed us!"] = "", -- A_Classic_Fairytale:backstab
+-- ["We need to move!"] = "", -- A_Classic_Fairytale:united
+-- ["We need to prevent their arrival!"] = "", -- A_Classic_Fairytale:backstab
+-- ["We need to warn the village."] = "", -- A_Classic_Fairytale:shadow
+-- ["We should head back to the village now."] = "", -- A_Classic_Fairytale:shadow
+-- ["We were trying to save her and we got lost."] = "", -- A_Classic_Fairytale:family
+-- ["We won't let you hurt her!"] = "", -- A_Classic_Fairytale:journey
+-- ["What?! A cannibal? Here? There is no time to waste! Come, you are prepared."] = "", -- A_Classic_Fairytale:first_blood
+-- ["What a douche!"] = "", -- A_Classic_Fairytale:enemy
+-- ["What am I gonna...eat, yo?"] = "", -- A_Classic_Fairytale:family
+-- ["What are you doing at a distance so great, young one?"] = "", -- A_Classic_Fairytale:first_blood
+-- ["What are you doing? Let her go!"] = "", -- A_Classic_Fairytale:journey
+-- ["What a ride!"] = "", -- A_Classic_Fairytale:shadow
+-- ["What a strange cave!"] = "", -- A_Classic_Fairytale:dragon
+-- ["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 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
+-- ["What shall we do with the traitor?"] = "", -- A_Classic_Fairytale:backstab
+-- ["WHAT?! You're the ones attacking us!"] = "", -- A_Classic_Fairytale:enemy
+-- ["When?"] = "", -- A_Classic_Fairytale:enemy
+-- ["When I find it..."] = "", -- A_Classic_Fairytale:dragon
+-- ["Where are all these crates coming from?!"] = "", -- A_Classic_Fairytale:shadow
+-- ["Where are they?!"] = "", -- A_Classic_Fairytale:backstab
+-- ["Where did that alien run?"] = "", -- A_Classic_Fairytale:dragon
+-- ["Where did you get the exploding apples?"] = "", -- A_Classic_Fairytale:shadow
+-- ["Where did you get the exploding apples and the magic bow that shoots many arrows?"] = "", -- A_Classic_Fairytale:shadow
+-- ["Where did you get the magic bow that shoots many arrows?"] = "", -- A_Classic_Fairytale:shadow
+-- ["Where did you get the weapons in the forest, Dense Cloud?"] = "", -- A_Classic_Fairytale:backstab
+-- ["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
+-- ["? Why?"] = "", -- A_Classic_Fairytale:backstab
+-- ["Why "] = "", -- A_Classic_Fairytale:backstab
+-- ["! Why?!"] = "", -- A_Classic_Fairytale:backstab, A_Classic_Fairytale:united
+-- ["Why are you doing this?"] = "", -- A_Classic_Fairytale:journey
+-- ["Why are you helping us, uhm...?"] = "", -- A_Classic_Fairytale:family
+-- ["Why can't he just let her go?!"] = "", -- A_Classic_Fairytale:family
+-- ["Why do men keep hurting me?"] = "", -- A_Classic_Fairytale:first_blood
+-- ["Why do you not like me?"] = "", -- A_Classic_Fairytale:shadow
+-- ["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 Get 1-3 random weapons"] = "", -- Continental_supplies
+-- ["- Will refresh Parachute each turn."] = "", -- Continental_supplies
+-- ["- Will refresh portalgun each turn."] = "", -- Continental_supplies
+ ["Will this ever end?"] = "Bu sona erecek mi?",
+-- ["WINNER IS "] = "", -- Mutant
+ ["WINNING TIME: "] = "KAZANMA SÜRESİ: ",
+-- ["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
+-- ["Worry not, for it is a peaceful animal! There is no reason to be afraid..."] = "", -- A_Classic_Fairytale:first_blood
+-- ["Wow, what a dream!"] = "", -- A_Classic_Fairytale:backstab
+-- ["Y3K1337"] = "", -- A_Classic_Fairytale:journey, A_Classic_Fairytale:shadow
+-- ["Yay, we won!"] = "", -- A_Classic_Fairytale:enemy
+-- ["Y Chwiliad"] = "", -- A_Classic_Fairytale:dragon
+-- ["Yeah...I think it's a 'he', lol."] = "", -- A_Classic_Fairytale:shadow
+-- ["Yeah, sure! I died. Hillarious!"] = "", -- A_Classic_Fairytale:backstab
+-- ["Yeah, take that!"] = "", -- A_Classic_Fairytale:dragon
+-- ["Yeah? Watcha gonna do? Cry?"] = "", -- A_Classic_Fairytale:journey
+-- ["Yes!"] = "", -- A_Classic_Fairytale:enemy
+-- ["Yes, yeees! You are now ready to enter the real world!"] = "", -- A_Classic_Fairytale:first_blood
+-- ["Yo, dude, we're here, too!"] = "", -- A_Classic_Fairytale:family
+-- ["You are given the chance to turn your life around..."] = "", -- A_Classic_Fairytale:shadow
+-- ["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 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!"] = "Suyun yükseldiğine yemin edebilirdin!",
+-- ["You'd better watch your steps..."] = "", -- A_Classic_Fairytale:journey
+-- ["You did not make it in time, try again!"] = "", -- Basic_Training_-_Rope
+-- ["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 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 kidnapped our whole tribe!"] = "", -- A_Classic_Fairytale:enemy
+-- ["You have killed an innocent hedgehog!"] = "", -- A_Classic_Fairytale:backstab
+-- ["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!!"] = "VURDUN!",
+-- ["You have to destroy 12 targets in 180 seconds"] = "", -- Basic_Training_-_Cluster_Bomb
+-- ["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
+-- ["You killed my father, you monster!"] = "", -- A_Classic_Fairytale:backstab
+-- ["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 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
+-- ["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 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 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 hogs must survive!"] = "", -- A_Classic_Fairytale:journey
+-- ["Your movement skills will be evaluated now."] = "", -- A_Classic_Fairytale:first_blood
+ ["You saved"] = "Kurtarılan: ",
+-- ["You've been assaulting us, we have been just defending ourselves!"] = "", -- A_Classic_Fairytale:enemy
+ ["You've failed. Try again."] = "Başaramadın. Yeniden dene!",
+ ["You've reached the goal!| |Time: "] = "Hedefe ulaştın!| |Süre: ",
+-- ["You will be avenged!"] = "", -- A_Classic_Fairytale:shadow
+-- ["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"] = "Roketatar Takımı",
+-- ["Zork"] = "", -- A_Classic_Fairytale:dragon, A_Classic_Fairytale:family, A_Classic_Fairytale:queen
+ }
--- a/share/hedgewars/Data/Locale/tr.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/tr.txt Tue Jun 04 22:28:12 2013 +0200
@@ -2,7 +2,7 @@
00:00=El Bombası
00:01=Parça Tesirli Bomba
-00:02=Bazuka
+00:02=Roketatar
00:03=UFO
00:04=Pompalı Tüfek
00:05=Kompresör
@@ -12,7 +12,7 @@
00:09=Çöl Kartalı
00:10=Dinamit
00:11=Beyzbol Sopası
-00:12=Shoryuken
+00:12=Yükselen Ejderha
00:13=san
00:14=Paraşüt
00:15=Hava Saldırısı
@@ -37,34 +37,501 @@
00:34=Ölümsüzlük
00:35=Arttırılmış Zaman
00:36=Lazer Görüşü
-00:37=Vampirism
-00:38=Sniper Rifle
-00:39=Flying Saucer
-00:40=Molotov Cocktail
+00:37=Vampirleşme
+00:38=Keskin Nişansı Tüfeği
+00:39=Uçan Daire
+00:40=Molotof Kokteyli
+00:41=Kuşçuk
+00:42=Taşınabilir Portal Aygıtı
+00:43=Piano Vuruşu
+00:44=Eski Limburger
+00:45=Sinüs Tabancası (beta)
+00:46=Alev Püskürtücü
+00:47=Yapışkan Mayın
+00:48=Çekiç
+00:49=Yeniden Doğuş
+00:50=Matkap Vuruşu
+00:51=Çamur Topu
+00:52=Silah Seçilmedi
+00:53=Zaman Kutusu
+; 00:54=Yapı
+00:54=Zemin Spreyi
+00:55=Dondurucu
+00:56=Satır
01:00=Savaş başlasın!
01:01=Beraberlik
01:02=%1 kazandı!
-01:03=Bölüm %1%
+01:03=Bölüm %%1
01:04=Duraklatıldı
01:05=Çıkılsın mı (Y/Esc)?
01:06=Ani ölüm!
-01:07=%1 Remaining
-01:08=Fuel
+01:07=%1 Kaldı
+01:08=Yakıt
+01:09=Eşzamanlanıyor...
+01:10=Bu yardımcıyı kullanmak sıranı bitirmeyecek!
+01:11=Bu silah veya yardımcı henüz kullanılamıyor!
+01:12=Ani Ölüm için son tur!
+01:13=Ani Ölüme %1 tur kaldı!
+01:14=Hazırlan, %1!
+01:15=Az
+01:16=Düşük
+01:17=Normal
+01:18=Yüksek
+01:19=En Yüksek
+01:20=%1 Sekmesi
+01:21=Ses Kapalı
+
; Event messages
; Hog (%1) died
-02:00=%1 has kicked the bucket!
-02:00=%1 has seen the light!
-02:00=%1 never saw that comming!
+02:00=%1 sepeti boyladı!
+02:00=%1 ışığı gördü!
+02:00=%1 bunun geldiğini farketmemişti!
+02:00=%1 baş baş yapıyor!
+02:00=%1 daha iyi bir yere gitti!
+02:00=%1 yapan ile buluşuyor!
+02:00=%1 daha fazla dayanamıyor!
+02:00=%1 görevini yaptı!
+02:00=%1 mükemmel fedakarlık yapıyor!
+02:00=%1 havan sarımını ateşliyor!
+02:00=%1 ağaç olup ayrılıyor!
+02:00=%1 zaman aşımına uğradı!
+02:00=%1 dünya barışı istiyor!
+02:00=%1 sevgiyle hatırlanacak!
+02:00=%1 damar genişlemesi başladı!
+02:00=%1 arkasında gözü yaşlı eş ve çocuk bırakıyor
+02:00=%1 son roketatarını fırlattı
+02:00=%1 son el bombasını fırlattı
+02:00=%1 son pastasını pişirdi
+02:00=%1 son halatında sallandı
+02:00=%1 son hava saldırısını çağırdı
+02:00=%1 son tüfeğini ateşledi
+02:00=%1 son karpuzunu attı
+02:00=%1 son çizimini yaptı
+02:00=%1 bir atışı çok kez aldı
+02:00=%1 gerçekten bir sağlık sandığı kullanabilirdi
+02:00=%1 daha iyi bir oyun oynamak için gitti
+02:00=%1 hayata kaçtı
+02:00=%1 başarısız oldu
+02:00=Zavallı %1...
+02:00=%1 wormux'u tercih ediyor
+02:00=%1 yüzüyle vuruşları engelliyordu
+02:00=%1 bana göre bir kahraman...hımmm...kirpi
+02:00=%1 kendi yerini Valhalla'da buldu
+02:00=%1 binayı terketti
+02:00=%1 dinazorların yanına gidiyor
+02:00=%1 kirpileri nesillerini tüketmeye bir adım daha yaklaştırdı
+02:00=%1 gözlerimi yaşarttı
+02:00=%1 eskiden bir kirpiydi
+02:00=%1 papatya ekiyor
+02:00=%1 artık yok
+02:00=%1 için bir veda yapalım
+02:00=%1 ümidi kesildi
+02:00=%1 son perdeyi kapattı
+02:00=Varsa iç bir tane %1
+02:00=%1 Anlık Yoğun Varlık Sorunu çekiyor
+02:00=%1 hayata veda etti
+02:00=%1 kaya gibi öldü
+02:00=%1 artık yok
+02:00=%1 son kullanma tarihi doldu
+02:00=Yaşamdan yoksun, %1 huzur içinde yatsın
+02:00=%1 görünmezler korosuna katıldı
+02:00=Hoşça kal %1, seni iyi bilirdik!
+02:00=%1 vurulmaya çok az dayanabildi
+02:00=%1 ek bir can kullanabilirdi
+02:00=Evde bir doktor var mı?
+
; Hog (%1) drowned
-02:01=%1 plays submarine!
-02:01=%1 mimics the Titanic!
-02:01=%1 swims like a stone!
-; Match starts
-02:02=Let's fight!
-02:02=Armed and ready!
+02:01=%1 deniz altı oynuyor!
+02:01=%1 Titanik'i taklit ediyor!
+02:01=%1 kaya gibi yüzüyor!
+02:01=%1 tuğla gibi havada kaldı!
+02:01=%1 derin dibi kontrol ediyor
+02:01=%1 bir şey diyor: "gulu gulu gulu"
+02:01=%1 atlama yapıyor
+02:01=%1 kolluklarını unuttu
+02:01=%1 gerçekten yüzme dersi almalıydı
+02:01=%1 sörf tahtasını evde bırakmış
+02:01=%1 yıkanıyor
+02:01=%1 ıslak bir kirpi
+02:01=%1 can yeleğini getirmeyi unuttu
+02:01=%1 bıcı bıcıya gidiyor
+02:01=%1 balıklarla yüzüyor
+02:01=%1 oyundaki su fiziğinin berbat olduğunu düşünüyor
+02:01=%1 susamış görünüyor
+02:01=Deniz seni istiyor %1
+02:01=%1 denizde kayboldu
+02:01=%1 dalış takımını getirmeliydi
+02:01=%1 denizde gömülüyor
+02:01=%1 batıyor gibi hissediyor
+02:01=%1 sırtüstü yüzme denemesi yapıyor
+02:01=%1 Titanik'i aramaya gidiyor
+02:01=%1 bu sefer güldürmedi
+02:01=%1 Nemo'yu arıyor
+02:01=%1 su alıyor
+02:01=Aşağıda kaç kirpi var bir bilsen
+02:01=%1 okyanus seviyesini yükseltiyor
+02:01=%1 orduya katılmamıştı
+02:01=%1 ölü balık taklidi yapıyor
+02:01=En azından tuvalette boğulmadın, %1
+02:01=Sonic yüzemezdi %1 de öyle
+02:01=%1 Ecco the dolphin oyunu oynamak istiyor
+02:01=%1 Akvaryum ziyaretine gitti
+02:01=%1 kayıp şehir Atlantis'i buldu
+02:01=%1 Bioshock 3'te baş rolü oynamaya gidiyor
+02:01=Patilerin biraz çalışabilirdi, %1
+02:01=%1 bir jet ski getirmeliydi
+02:01=%1 su sporlarını sevmiyor
+02:01=%1 sonsuza kadar baloncuk çıkarıyor
+02:01=%1 bir sala ihtiyaç duyuyor
+02:01=%1 tuzlu suyun cilt için iyi geldiğini düşünüyor
+02:01=%1 yarasına tuz basıyor
+02:01=%1 tahtada yürüdü
+02:01=%1 bir banyoya sahip
+02:01=%1 artık ıslak ıslak ıslak
+02:01=%1 tüylerini ıslattı
+02:01=O, %1 için bir Davy Jones dolabı
+
+; Round starts
+02:02=Savaş başlasın!
+02:02=Hazır ve nazır!
+02:02=Haykırmaya hazır ol!
+02:02=Hadi başlayalım!
+02:02=Artık parti başlasın
+02:02=Son kalan kirpi kazansın
+02:02=Hadi gidelim!
+02:02=Başlayalım!
+02:02=Bastır!
+02:02=Başlıyor...
+02:02=Bu büyük şeyin bir başlangıcı
+02:02=Hedgewars'a Hoş Geldin
+02:02=Sınır hattına hoş geldin
+02:02=Düşmanını ez!
+02:02=En iyi kirpi kazansın
+02:02=Zafer ya da ölüm
+02:02=Zafer ganimettir
+02:02=Kaybetmek bir seçenek değil
+02:02=Ağla tahribat! Kirpi savaşı başlasın!
+02:02=Hedgewars, Hedgewars.org tarafından sağlandı
+02:02=GL HF
+02:02=Şansın varmış Tiyuri'ye karşı oynamıyorsun
+02:02=Şansın varmış C0Rr'e karşı oynamıyorsunun
+02:02=Şansın varmış Nemo'ya karşı oynamıyorsun
+02:02=Şansın varmış Smaxx'e karşı oynamıyorsun
+02:02=Şansın varmış Jessor'e karşı oynamıyorsun
+02:02=Her şeyi ortaya koy!
+02:02=Kaybeden bulaşıkları yıkar!
+02:02=Binyıl dövüşü başlasın
+02:02=Yüzyıl dövüşü başlasın
+02:02=Onyıl dövüşü başlasın
+02:02=Yılın dövüşü başlasın
+02:02=Ayın dövüşü başlasın
+02:02=Haftanın dövüşü başlasın
+02:02=Günün dövüşü başlasın
+02:02=Saatin dövüşü başlasın
+02:02=Elinden geleni yap!
+02:02=Düşmanı yok et!
+02:02=İyi şanslar
+02:02=İyi eğlenceler
+02:02=İyi dövüş
+02:02=Pis dövüş
+02:02=Onura dövüş
+02:02=Pes etme
+02:02=Asla teslim olma
+02:02=Yen ve parçala!
+02:02=Parçalama festivali başlasın!
+02:02=Umarım mücadeleye hazırsın!
+02:02=Hadi Hadi Hadi!
+02:02=Hedgehogs devam!
+02:02=Göster onlara!
+02:02=Asla korkma!
+02:02=Cesur ol ve fethet
+
+; Round ends (win; unused atm)
+02:03=...
+
+; Round ends (draw; unused atm)
+02:04=...
+
+; New health crate
+02:05=Yardım geliyor!
+02:05=İlkyardım!
+02:05=Göklerden ilkyardım!
+02:05=Size bir sağlık paketi
+02:05=İyi sağlık... kutu biçiminde!
+02:05=Doktor çağırıyor
+02:05=Taze yara bantları!
+02:05=Bu daha iyi hissetmeni sağlayacak
+02:05=Büyük iksir! Aaa, yanlış oyun
+02:05=Bir beni-al!
+02:05=Yakala
+02:05=Sağlıklı bir atıştırmalık
+02:05=Acıya tedavi
+02:05=Kullanım dozu: bulabildiğin kadar çok!
+02:05=Acele posta
+02:05=Emanetler!
+
+; New ammo crate
+02:06=Daha çok silah!
+02:06=Destek geliyor!
+02:06=Kilitlen ve bırak!
+02:06=Acaba içinde hangi silah var?
+02:06=Tedarikler!
+02:06=İçinde ne olabilir?
+02:06=Hedgewars'ta yılbaşı erken geliyor
+02:06=Bir hediye!
+02:06=Özel posta!
+02:06=Bunu gümrükten geçirmek bir kabustu
+02:06=Cennetten yok edici oyuncaklar
+02:06=Uyarı! Uçucu İçerik
+02:06=Kaldır veya havaya uçur, seçim senin
+02:06=Eşyalar!
+02:06=Hım hım Cephane
+02:06=Yok edici güç kutusu
+02:06=Uçak postası!
+02:06=Bu kutuda ne varsa pizza olmadığı kesin
+02:06=Al şunu!
+02:06=Silah bırakılıyor
+02:06=Düşmanın bunu almasın!
+02:06=Yeni parlak oyuncaklar!
+02:06=Gizemli bir kutu!
+
+; New utility crate
+02:07=Araç zamanı!
+02:07=Bu işe yarayabilir...
+02:07=Araçlar!
+02:07=Bu kutudan yararlan
+02:07=Dikkat et
+02:07=Daha fazla alet!
+02:07=Senin için alet!
+02:07=Bu güzel olmalı!
+02:07=Zekice kullan
+02:07=Off bu kutu da ağırmış
+02:07=Buna ihtiyacın olabilir
+
+; Hog (%1) skips his turn
+02:08=%1 çoook sıkıcı...
+02:08=%1 rahatsız olamazdı
+02:08=%1 tembel bir kirpi
+02:08=%1 düşüncesiz
+02:08=%1 pes etti
+02:08=Ertelersen kaybedersin, %1
+02:08=%1 utanmaksızın geçiyor
+02:08=%1 gerçekten tembel
+02:08=%1 daha fazla motivasyona ihtiyacın var
+02:08=%1 bir barışcı
+02:08=%1 bir mola alıyor
+02:08=%1 dinleniyor
+02:08=%1 moral bozmuyor
+02:08=%1 yeteneklerine inanmıyor
+02:08=%1 hiçbir şey yapmamaya karar veriyor
+02:08=%1 düşmanın kendisini yok etmesine izin veriyor
+02:08=%1 partilerde berbat olur
+02:08=%1 saklanıyor
+02:08=%1 bu fırsatı değerlendirmek istemedi
+02:08=%1 yapabileceği en iyi şeyin...hiçbir şey olduğuna karar verdi
+02:08=%1 koca bir korkak
+02:08=Gıt gıt gıdak, %1 bir tavuk
+02:08=%1 küçük bir sarı arıyor
+02:08=%1 bir ürkek!
+02:08=%1 ani ölümü bekliyor
+02:08=%1 dövüş istemiyor
+02:08=%1 hayattaki amacını tekrar düşünüyor
+02:08=%1 hiçbir zaman iyi bir atış yapamadı zaten
+02:08=%1 orduya da isteyerek katılmamıştı
+02:08=Zamanımızı boşa harcamayı kes, %1
+02:08=Beni hayal kırıklığına uğrattın, %1
+02:08=Hadi ama, bundan daha iyisini yapabilirsin %1
+02:08=%1 kalbi kırıldı
+02:08=Görünüyor ki %1 daha iyi yapacak şeylere sahip
+02:08=%1 korkak bir ölü
+02:08=%1 uyuya kaldı
+
+; Hog (%1) hurts himself only
+02:09=%1 atış çalışmalı!
+02:09=%1 kendinden nefret ediyor gibi görünüyor
+02:09=%1 yanlış tarafta duruyor!
+02:09=%1 emo gibi yapıyor
+02:09=%1 silahını yanlış yönde tutuyordu
+02:09=%1 sanki biraz sadist
+02:09=%1 bir mazoşist
+02:09=%1 kendini koruma iç güdüsüne sahip değil
+02:09=%1 batırdı
+02:09=%1 mahvetti
+02:09=Kötü bir atıştı, %1
+02:09=%1 tehlikeli silahlarla çok dikkatsiz
+02:09=%1 kariyerini değiştirmeyi düşünmeli
+02:09=Dünyadaki. En berbat. Atıştı!
+02:09=Yo yo yo %1, DÜŞMANA ateş etmelisin!
+02:09=%1 sadece düşmanı yok etmeli
+02:09=%1 intihara bir adım daha yaklaşıyor
+02:09=%1 düşmana yardım ediyor
+02:09=Bu aptalcaydı %1
+02:09=%1 "acı yok, kazanmak yok" deyimiyle yaşıyor
+02:09=%1, sanki kafan karışık
+02:09=%1 yanlışlıkla kendine zarar veriyor
+02:09=%1, kendini utandırmakta üstüne yok
+02:09=%1 bir saloz!
+02:09=Sakarsın %1
+02:09=%1 düşmana yeteneklerini gösteriyor
+02:09=%1 her zaman mükemmel olması beklenemez
+02:09=Sorun değil %1, hiç kimse mükemmel değildir
+02:09=%1 bunu kesinlikle bilerek yaptı
+02:09=Yapmazsan kimseye söylemem, %1
+02:09=Ne utanç verici ama!
+02:09=Eminim kimse bunu görmedi %1
+02:09=%1 kendi alan kılavuzunu gözden geçirmeli
+02:09=%1 silahında sorun vardı
+
; Hog shot an home run (using the bat and another hog)
-02:10=Home Run!
-02:10=A bird, a plane, ...
-02:10=That one is out!
+02:10=Tur Vuruşu!
+02:10=Bu bir kuş. Hayır uçak, ...
+02:10=Bu çıkar!
+
+; Hog (%1) has to leave (team is gone)
+02:11=%1 uyumaya gitmeli!
+02:11=%1 oynamak için çok meşgul görünüyor
+02:11=Ateşle onu, Scotty!
+02:11=%1 gitmeli
+
+; Weapon Categories
+03:00=Zamanlı El Bombası
+03:01=Zamanlı El Bombası
+03:02=Balistik Silah
+03:03=Kılavuzlu Silah
+03:04=Tabanca (çok atışlı)
+03:05=Kazma Aracı
+03:06=Eylem
+03:07=Taşıma Yardımcısı
+03:08=Yakınlık Bombası
+03:09=Tabanca (çok atışlı)
+03:10=BUM!
+03:11=Bum!
+03:12=Dövüş Sanatları
+03:13=KULLANILMIYOR
+03:14=Taşıma Yardımcısı
+03:15=Hava Saldırısı
+03:16=Hava Saldırısı
+03:17=Kazma Aracı
+03:18=Yardımcı
+03:19=Taşıma Yardımcısı
+03:20=Eylem
+03:21=Balistik Silah
+03:22=Bana Indiana de!
+03:23=(Gerçekten) Dövüş Sanatları
+03:24=Pasta yalan DEĞİL!
+03:25=Kostüm Seti
+03:26=Meyveli El Bombası
+03:27=Ateşli El Bombası
+03:28=Balistik Silah
+03:29=Balistik Silah
+03:30=Hava Saldırısı
+03:31=Uzaktan Kumandalı Bomba
+03:32=Geçici Etki
+03:33=Geçici Etki
+03:34=Geçici Etki
+03:35=Geçici Etki
+03:36=Geçici Etki
+03:37=Geçici Etki
+03:38=Tabanca (çok atışlı)
+03:39=Taşıma Yardımcısı
+03:40=Yakıcı El Bombası
+03:41=Cıvıldamaların büyük fanı
+03:42=Burada bir şey demek istiyorum...
+; the misspelled "Beethoven" is intentional (-> to beat)
+03:43=Beathoven'ın ölümcül sonatasını gösteriyor
+03:44=Son kullanma tarihi: 1923
+03:45=Bilimin gücü
+03:46=Sıcak Sıcak Sıcak!
+03:47=Bunları kullanışlı bir yere yapıştır!
+03:48=Çekiç zamanı!
+03:49=Tahmin ettiğin şeyi yapıyor
+03:50=Köstebek fanı
+03:51=Zeminde bulunan
+03:52=KULLANILMIYOR
+03:53=Tür 40
+03:54=Bir şey inşa et
+03:55=Yardımcı
+
+; Weapon Descriptions (use | as line breaks)
+04:00=Düşmanlarına basit el bombası ile saldır.|Zamanlayıcı sıfır olduğunda patlayacak.|1-5: Bomba süresini ayarla|Saldır: Daha fazla güçte atmak için basılı tut
+04:01=Düğmanlarına parça tesirli bomba ile saldır.|Zamanlayıcı sıfır olduğunda daha küçük|bombalara dönüşür.|1-5: Bomba süresini ayarla|Saldır: Daha fazla güçte atmak için basılı tut
+04:02=Düşmanlarına rüzgardan etkilenebilecek|balistik mermi kullanarak saldır.|Saldır: Daha fazla güçle atış için basılı tut
+04:03=Seçili hedefe kilitlenecek patlayıcı bir arı|fırlat. Kesinliğini arttırmak için tam güçle|fırlatma.|İmleç: Hedef seç|Saldır: Daha fazla güçle atış için basılı tut
+04:04=Düşmanına iki atışla tüfek kullanarak saldır.|Yayılması sayesinde rakibine zarar vermen için|keskin vuruş yapman gerekmiyor.|Saldır: Ateş (çok kez)
+04:05=Yer altına hareket et! Çekici kullanarak|zemine bir delik kaz ve diğer yerlere ulaş.|Saldır: Kazmayı başlat ve durdur
+04:06=Sıkıldın mı? Saldıracak yer mi yok? Cephane mi |kurtarmak istiyorsun? Problem yok!|Pas geç korkak!|Saldır: Dövüşmeden turu atla
+04:07=İp kullanarak zamanlı atışlarla uzun mesafelere|bağlan. Diğer kirpilere doğru kaymak için|momentumunu kullan veya üzerlerine el bombası|ve diğer silahları at.|Saldır: At ve ipi bırak|Uzun Atlama: El bombası veya benzer silahları|bırak
+04:08=Küçük geçişlere veya ayaklarının yanına mayın|bırakarak düşmanı uzaklaştır. Kendin için|tetiklemediğinden emin ol!|Saldır: Ayağının yanına mayın bırak
+04:09=Hedefinden emin değil misin? Tabanca|kullanarak dört atışa kadar düşmanı vur.|Saldır: Ateş (çok kez)
+04:10=Zor kullanım her zaman bir seçenek. Bu klasik|patlayıcıyı düşmanının yanına koy ve çekil.|Saldır: Ayağının yanına dinamit bırak
+04:11=Düşman kirpilerden üzerlerine sopa ile vurarak|uzaklara veya suya düşür. Veya|arkadaşlarına birkaç mayın fırlatmak nasıl olurdu?|Saldır: Önündeki herşeye vurarak fırlat
+04:12=Yakınlaş ve neredeyse bu ölümcül dövüş sanatı|teknik gücünü ortaya çıkar.|Saldır: Muhteşem Yükselen Ejderha yap.
+04:13=KULLANILMIYOR
+04:14=Yükseklikten mi korkuyorsun? O zaman bir paraşüt|kullan.|Uzağa düşerken açılacak ve kirpinin düşme zararı|almasını engelleyecek|Saldır: Paraşütü aç|Uzun Atlama: El bombası veya benzeri silahlar bırak
+04:15=Bombalayıcı kulanarak uçakla düşmanlarına saldır.|Sol/Sağ: Saldırı yönünü belirle|İmleç: Hedef bölgeyi seç
+04:16=Hedef alana çeşitli mayın atacak bir uçak çağır.|Sol/Sağ: Saldırı yönünü belirle|İmleç: Hedef bölgeyi seç
+04:17=Korunak mı gerekiyor? Seni kaplayabilecek bir|tünel için kaynak makinesi kullan|Saldır: Kazmayı başlat/durdur
+04:18=Ek koruma mı gerekiyor? Yoksa geçilemez|zemini mi geçmek istiyorsun? İstediğin kadar|merdiven koy|Sol/Sağ: Yerleştilecek merdiveni seç|İmleç: Geçerli yere merdiven yerleştir
+04:19=Doğru yerde kullanıldığında ışınlanma tüm|silahlardan daha güçlü olabilir. Kirpileri|saniyeler içerisinde tehlikeli durumlardan|kurtarır.|İmleç: Hedef bölgeyi seç
+04:20=Geçerli turu başka bir kirpiyle oynamanı|sağlar.|Saldır: Kirpi değiştirmeyi etkinleştir
+04:21=El bombasına benzer bir füze fırlatır ve|çarpma sonrası çok sayıda bombaya dönüşür.|Saldır: Tam güçte fırlat
+04:22=Sadece Indiana Jones için değil! Kamçı|çoğu durumda çok kullanışlı bir silahtır.|Özellikle birini yamaçtan uçurmak için.|Saldır: Önündeki her şeye vur
+04:23=Eğer kaybedecek hiçbir şeyin yoksa, bu|kullanışlı olabilir. Kirpini özel bir yönde|başlatarak feda et ve önündeki her şeye|zarar verip sonunda patlamasını sağla.|Saldır: Şiddetli ve ölümcül bir saldırı başlat
+04:24=Mutlu Yıllar! Bu keki çalıştır, düşmanının yanına|yürümesine izin ver ve patlayan bir parti yapmalarını|sağla. Kek neredeyse tüm zeminlerden geçebilir|fakat yolun ortasında patlayabilir.|Saldır: Keki başlat ve durdurup patlat
+04:25=Bu kiti kullanarak düşmanlarının kirpine doğru zıplamasını|sağla (ve bir boşluk veya deliğe).|Saldır: Kiti kullan ve diğer kirpiyi etkile
+04:26=Bu sulu karpuzu düşmanına at. Zaman dolduğunda|çok sayıda patlayıcı parçaya ayrılacaktır.|1-5: Karpuz zaanlayıcısını ayarla.|Saldır: Daha fazla güçle atış için basılı tut
+04:27=Bu zalim patlayıcıyı kullanarak rakibini cehennem|ateş yağmuruna tut. Küçük ateşler daha|uzun süreceğinden yakın olmamaya dikkat et.|Saldır: Daha fazla güçle atış için basılı tut
+04:28=Bu roketi fırlattıktan kısa süre sonra katı zemini|kazmaya başlayacak ve tekrar yüzeye çıktığında|veya süresi dolduğunda patlayacak.|Saldır: Daha fazla güçle atış için basılı tut
+04:29=Bu küçük çocuklar için değil! Top tabancası patlayıcı|dolu tonlarca küçük renkli top fırlatır.|Saldır: Tam güçte atış yap|Yukarı/Aşağı: Nişan al
+04:30=Muhteşem napalm atışı için bir uçak çağır.|Doğru nişan ile bu saldırı zeminin büyük bölümünü|yok edebilir ve tabii ki şansız kirpileri de.|Sol/Sağ: Saldırı yönünü belirle|İmleç: Hedef bölgeyi seç
+04:31=RC uçağı sandıkları toplamak veya uzaktaki kirpilere|saldırmak için kullanışlı bir silahtır.|Doğrudan düşmanlara çarp veya ilk olarak bomba bırak.|Saldır: Uçağı başlat veya bomba bırak|Uzun Zıplama: Valkrie'lerin savaşa gelmelerini sağla|Sol/Sağ: Uçağı kontrol et
+04:32=Düşük yer çekimi diğer tüm diyetlerden daha etkilidir!|Daha yukarı ve büyük uzaklıklara zıpla|veya düşmanının daha uzağa uçmasını sağla|Saldır: Etkinleştir
+04:33=Bazen daha fazla zarar vermek için bu küçük ek güce|ihtiyacın olabilir.|Saldır: Etkinleştir
+04:34=Bana dokunamazsın!|Saldır: Etkinleştir
+04:35=Bazen zaman su gibi akıp geçiyor. Saldırını bitirmek|için ek saniye al.|Saldır: Etkinleştir
+04:36=Aslında bazen hedef tutturmada çok kötüsün. Modern|teknoloji kullanarak biraz yardım al.|Saldır: Etkinleştir
+04:37=Gün ışığından korkma. Sadece bir tur sürecek fakat|Diğer kirpilere verdiğin zararı emmeni sağlayacak.|Saldır: Etkinleştir
+04:38=Keskin nişancı tüfeği birliğindeki en zarar verici silah|olabilir ancak yakın mesafede etkisi azdır.|Hasar, hedef uzak oldukça daha çok artar.|Saldır: Ateş et (iki kez)
+04:39=Haritanın diğer yerlerine uçan daire ile uç.|Bu uzmanlaşmak için zaman gerektirir ve|alışana kadar savaş alanında her yere|götürebilir.|Saldır: Etkinleştir|Yukarı/Sol/Sağ: Bir yöne güç uygula|Uzun Atlama: El bombası veya|benzer silahlar bırak
+04:40=Set some ground on fire using this bottle filled|with (soon to be) burning liquid.|Saldır: Daha fazla güçle atış için basılı tut
+04:41=Doğa uçan dairenin üzerinde de olabilir|Kuşçuk kirpini taşıyabilir ve|düşmanlarına yumurta bırakabilir!|Hızlı ol, çünkü Kuşçuğu kullanmak |zamanını tüketir!|Saldır: Etkinleştir ve yumurta bırak|Yukarı/Sol/Sağ: Bir yöne kanat çırp
+04:42=Bu taşınabilir portal aygıtı seni, düşmanlarını|veya bir silahını zemindeki iki nokta arasında|hemen taşıma yeteneğine|sahip.|Zekice kullan ve maceran bir... BAŞARIYA|DÖNÜŞSÜN!|Saldır: Bir portal ateş et|Değiştir: Portal renkleri arasında geçiş yap
+04:43=Müzikal kariyerine başarılı bir patlamayla başla!|Cennetten bir piyano düşür, fakat dikkat et...|birinin çalması gerekiyor ve|bu senin hayatın olmasın.|İmleç: Hedef bölgeyi seç|F1-F9: Piyanoyu çal
+04:44=Bu sadece bir peynir değil, bir biyolojik silah!|Zamanlayıcı sıfır olduğunda koca bir hasar|vermenin yanında, kokuya dokunan şanssız|herkesi de zehirleyecek!|1-5: Bombanın zamanını ayarla|Saldır: Daha fazla güç ile fırlatmak için tut
+04:45=Sonunda fizik dersleri işe yaradı.|Düşmanlarına kocaman bir sinüs dalgası at.|Dikkatli ol, bu silah oldukça büyük bir vuruşa sahip|(Bu silah bitmedi)|Saldır: Ateş et
+04:46=Düşmanlarını sızan akışkan alevle kapla|Kalp ısıtıcı!|Saldır: Etkinleştir|Yukarı/Aşağı: Hedef almaya devam et|Sol/Sağ: Fışkırtma gücünü değiştir
+04:47=Dikenli, sinsi, yapışkan mayınlarla çifte zevk!|Zincirleme reaksiyon ayarla veya kendini koru (veya ikisi de!)|Saldır: Daha fazla güçle atış için basılı tut (iki kez)
+04:48=Niçin köstebeklere kötü davranılsın?|Bir kirpi de zevk için dövülebilir! Bu|çekicin iyi bir yanı kirpinin canının |üçte birini alması ve yer altına sokması.|Saldır: Etkinleştir
+04:49=Arkadaşlarını yeniden canlandır!|Fakat dikkatli ol, bu ayrıca düşmanlarını da|canlandırır.|Saldır: Yavaşça canlandırmak için saldırma|düğmesini basılı tut|Yukarı: Canlandırmayı hızlandır
+04:50=Biri altta mı saklanıyor?|Matkap saldırısı ile kaz!|Zamanlayıcı ne kadar kazılacağını denetler.
+04:51=Bir çamur topu fırlatarak ücretsiz bir atış kap.|Biraz kokar ancak kirpileri geri sektirir.
+04:52=KULLANILMIYOR
+04:53=Arkadaşlarını savaşta yalnız bırakarak|zaman ve uzaya seyahat et.|Herhangi bir an, Ani Ölüm veya tümü|ölmüşse geri gelmeye hazır ol.|Yadsıma: Ani Ölüm kipinde, tek isen veya|Kralsan çalışmaz.
+04:54=TAM DEĞİL
+04:55=Yapışkan tanecikler püskürt.|Köprü yap, düşmanı göm, tünelleri kapat.|Dikkatli ol sana gelmesin!
+
+; Game goal strings
+05:00=Oyun Kipleri
+05:01=Aşağıdaki kurallar uygulanır
+05:02=Kaleler: Kaleni savun; düşmanlarını alt et!
+05:03=Düşük Yer Çekimi: Adımına dikkat et
+05:04=Dayanıklılık: Kirpiler (neredeyse) zarar görmezler
+05:05=Vampirleşme: Verilen hasar kirpileri iyileştirir
+05:06=Karma: Verilen hasar kirpilere zarar verir
+05:07=Kralı Koru: Kralın ölmesine izin verme!|Kralı Yerleştir: Kralın için korunaklı bir başlangıç noktası seç
+05:08=Kirpileri Yerleştir: Kirpilerini oyun başlamadan önce yerleştir
+05:09=Ağır Sınıf: Kirpiler hareket etmek için yer değiştiremezler
+05:10=Yıkılmaz Zemin: Çoğu silah zemine zarar veremez
+05:11=Paylaşılan Cephane: Aynı renkteki tüm takımlar cephaneyi paylaşır
+05:12=Mayın Zamanlayıcı: Mayınlar %1 saniye sonra patlayacak
+05:13=Mayın Zamanlayıcı: Mayınlar hemen patlayacak
+05:14=Mayın Zamanlayıcı: Mayınlar 0 - 5 saniye içinde patlayacak
+05:15=Hasar Değiştirici: Tüm silahlar %%1 hasar verecek
+05:16=Tur sonunda tüm kirpilerin sağlığı sıfırlanacak
+05:17=Yapay zeka kirpileri öldükten sonra yeniden doğar
+05:18=Sınırsız Saldırı
+05:19=Silahlar her tur sonunda sıfırlanır
+05:20=Silahlar kirpiler arasında paylaşılmaz
+05:21=Takımları Etiketle: Klandaki takımlar başarılı turlar alır|Paylaşılan Zaman: Klandaki takımlar tur zamanını paylaşırlar
--- a/share/hedgewars/Data/Locale/uk.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/uk.txt Tue Jun 04 22:28:12 2013 +0200
@@ -286,8 +286,8 @@
03:51=Знайдено на землі
03:52=UNUSED
03:53=Тип 40
-03:54=Збудуй щось
-03:55=Утиліта
+;03:54=Збудуй щось
+03:54=Утиліта
; Weapon Descriptions (use | as line breaks)
04:00=Атакуй ворогів використовуючи просту гранату.|Вона вибухне як тільки її таймер доходить до нуля.|1-5: Вистав таймер гранати|Атака: Утримуй щоб метнути сильніше
@@ -344,8 +344,8 @@
04:51=Здійсни халявний удар, шпурни грудку багна.|Трохи пече і відкидає їжака назад.
04:52=UNUSED
04:53=Здійсни подорож крізь час та простір,|залишивши товаришів битись далі самим.|Будь готовий повернутись в кожну мить,|або до Раптової смерті або до їх поразки.|Відмова. Не працює в Раптовій Смерті,|якщо ти один, або якщо ти Король.
-04:54=НЕЗАВЕРШЕНО
-04:55=Розпили потік лепких пластівців.|будуй мости, хорони ворогів, перекривай тунелі.|Стеж щоб на тебе не впала жодна з них!
+;04:54=НЕЗАВЕРШЕНО
+04:54=Розпили потік лепких пластівців.|будуй мости, хорони ворогів, перекривай тунелі.|Стеж щоб на тебе не впала жодна з них!
; Game goal strings
05:00=Режими Гри
--- a/share/hedgewars/Data/Locale/zh_TW.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Locale/zh_TW.txt Tue Jun 04 22:28:12 2013 +0200
@@ -237,8 +237,6 @@
02:01=%1 去水族館報到了
;02:01=%1 has found the lost city of Atlantis
02:01=%1 找到了傳說中的亞特蘭蒂斯城
-;02:01=%1 aims for the lead role in Bioshock 3
-02:01=%1 的目的是為了在生化危機3中起帶頭作用
;02:01=Your doggy paddle could use a little work, %1
02:01=狗爬式會有用的, %1
;02:01=%1 should have brought a jet ski
--- a/share/hedgewars/Data/Maps/Basketball/map.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Maps/Basketball/map.lua Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
-- Hedgewars - Basketball for 2+ Players
-HedgewarsScriptLoad("Scripts/Locale.lua")()
+HedgewarsScriptLoad("/Scripts/Locale.lua")
local score = {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0}
--- a/share/hedgewars/Data/Maps/CMakeLists.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Maps/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -33,6 +33,14 @@
portal
Ropes
Ruler
+ SB_Bones
+ SB_Crystal
+ SB_Grassy
+ SB_Grove
+ SB_Haunty
+ SB_Oaks
+ SB_Shrooms
+ SB_Tentacles
Sheep
ShoppaKing
Sticks
--- a/share/hedgewars/Data/Maps/CTF_Blizzard/map.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Maps/CTF_Blizzard/map.lua Tue Jun 04 22:28:12 2013 +0200
@@ -91,7 +91,7 @@
-- add support for more players
-- re-enable sudden death, but set water rise to 0
-HedgewarsScriptLoad("Scripts/Locale.lua")()
+HedgewarsScriptLoad("/Scripts/Locale.lua")
---------------------------------------------------------------
----------lots of bad variables and things
--- a/share/hedgewars/Data/Maps/Control/map.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Maps/Control/map.lua Tue Jun 04 22:28:12 2013 +0200
@@ -49,7 +49,7 @@
--script begins
-----------------
-HedgewarsScriptLoad("Scripts/Locale.lua")()
+HedgewarsScriptLoad("/Scripts/Locale.lua")
---------------------------------------------------------------
----------lots of bad variables and things
Binary file share/hedgewars/Data/Maps/Eyes/preview.png has changed
--- a/share/hedgewars/Data/Maps/Knockball/map.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Maps/Knockball/map.lua Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
-- Hedgewars - Knockball for 2+ Players
-HedgewarsScriptLoad("Scripts/Locale.lua")()
+HedgewarsScriptLoad("/Scripts/Locale.lua")
local score = {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0}
Binary file share/hedgewars/Data/Maps/Octorama/preview.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Bones/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,5 @@
+install(FILES
+ map.png
+ map.cfg
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/SB_Bones)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Bones/map.cfg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,2 @@
+Desert
+48
Binary file share/hedgewars/Data/Maps/SB_Bones/map.png has changed
Binary file share/hedgewars/Data/Maps/SB_Bones/preview.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Crystal/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,6 @@
+install(FILES
+ map.png
+ mask.png
+ map.cfg
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/SB_Crystal)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Crystal/map.cfg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,2 @@
+Cave
+32
Binary file share/hedgewars/Data/Maps/SB_Crystal/map.png has changed
Binary file share/hedgewars/Data/Maps/SB_Crystal/mask.png has changed
Binary file share/hedgewars/Data/Maps/SB_Crystal/preview.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Grassy/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,6 @@
+install(FILES
+ map.png
+ mask.png
+ map.cfg
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/SB_Grassy)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Grassy/map.cfg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,2 @@
+Castle
+40
Binary file share/hedgewars/Data/Maps/SB_Grassy/map.png has changed
Binary file share/hedgewars/Data/Maps/SB_Grassy/mask.png has changed
Binary file share/hedgewars/Data/Maps/SB_Grassy/preview.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Grove/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,6 @@
+install(FILES
+ map.png
+ mask.png
+ map.cfg
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/SB_Grove)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Grove/map.cfg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,2 @@
+Nature
+48
Binary file share/hedgewars/Data/Maps/SB_Grove/map.png has changed
Binary file share/hedgewars/Data/Maps/SB_Grove/mask.png has changed
Binary file share/hedgewars/Data/Maps/SB_Grove/preview.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Haunty/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,6 @@
+install(FILES
+ map.png
+ mask.png
+ map.cfg
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/SB_Haunty)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Haunty/map.cfg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,2 @@
+Halloween
+24
Binary file share/hedgewars/Data/Maps/SB_Haunty/map.png has changed
Binary file share/hedgewars/Data/Maps/SB_Haunty/mask.png has changed
Binary file share/hedgewars/Data/Maps/SB_Haunty/preview.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Oaks/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,6 @@
+install(FILES
+ map.png
+ mask.png
+ map.cfg
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/SB_Oaks)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Oaks/map.cfg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,2 @@
+Nature
+48
Binary file share/hedgewars/Data/Maps/SB_Oaks/map.png has changed
Binary file share/hedgewars/Data/Maps/SB_Oaks/mask.png has changed
Binary file share/hedgewars/Data/Maps/SB_Oaks/preview.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Shrooms/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,6 @@
+install(FILES
+ map.png
+ mask.png
+ map.cfg
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/SB_Shrooms)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Shrooms/map.cfg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,2 @@
+Nature
+48
Binary file share/hedgewars/Data/Maps/SB_Shrooms/map.png has changed
Binary file share/hedgewars/Data/Maps/SB_Shrooms/mask.png has changed
Binary file share/hedgewars/Data/Maps/SB_Shrooms/preview.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Tentacles/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,6 @@
+install(FILES
+ map.png
+ mask.png
+ map.cfg
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/SB_Tentacles)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Tentacles/map.cfg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,2 @@
+Hell
+40
Binary file share/hedgewars/Data/Maps/SB_Tentacles/map.png has changed
Binary file share/hedgewars/Data/Maps/SB_Tentacles/mask.png has changed
Binary file share/hedgewars/Data/Maps/SB_Tentacles/preview.png has changed
--- a/share/hedgewars/Data/Maps/TrophyRace/map.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Maps/TrophyRace/map.lua Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
-- Hedgewars - Roperace for 2+ Players
-HedgewarsScriptLoad("Scripts/Locale.lua")()
+HedgewarsScriptLoad("/Scripts/Locale.lua")
-- store number of hedgehogs
local numhhs = 0
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/CMakeLists.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,9 @@
file(GLOB Config *.ini)
file(GLOB Missions *.lua)
+file(GLOB Packs *.hwp)
install(FILES
${Config}
${Missions}
+ ${Packs}
DESTINATION "${SHAREPATH}Data/Missions/Campaign/A Classic Fairytale")
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/backstab.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/backstab.lua Tue Jun 04 22:28:12 2013 +0200
@@ -760,7 +760,9 @@
SaveCampaignVar("M5ChiefDead", "0")
end
SaveCampaignVar("M5Choice", "" .. choice)
- SaveCampaignVar("Progress", "5")
+ if progress and progress<5 then
+ SaveCampaignVar("Progress", "5")
+ end
for i = 1, 7 do
if natives[i] == deployedHog then
@@ -814,6 +816,7 @@
end
function GetVariables()
+ progress = tonumber(GetCampaignVar("Progress"))
m2DenseDead = tonumber(GetCampaignVar("M2DenseDead"))
m2Choice = tonumber(GetCampaignVar("M2Choice"))
m4DenseDead = tonumber(GetCampaignVar("M4DenseDead"))
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/dragon.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/dragon.lua Tue Jun 04 22:28:12 2013 +0200
@@ -399,8 +399,11 @@
function DoMissionFinished()
AddCaption(loc("Salvation was one step closer now..."))
- SaveCampaignVar("Progress", "6")
- ParseCommand("teamgone " .. loc("011101001"))
+ if progress and progress<6 then
+ SaveCampaignVar("Progress", "6")
+ end
+ RestoreHedge(cyborg)
+ DeleteGear(cyborg)
TurnTimeLeft = 0
end
@@ -419,8 +422,8 @@
end
function EndMission()
- ParseCommand("teamgone " .. loc("Natives"))
- ParseCommand("teamgone " .. loc("011101001"))
+ RestoreHedge(cyborg)
+ DeleteGear(cyborg)
TurnTimeLeft = 0
end
@@ -451,6 +454,7 @@
end
function GetVariables()
+ progress = tonumber(GetCampaignVar("Progress"))
m5DeployedNum = tonumber(GetCampaignVar("M5DeployedNum"))
end
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/enemy.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/enemy.lua Tue Jun 04 22:28:12 2013 +0200
@@ -400,7 +400,9 @@
end
function WinMission()
- SaveCampaignVar("Progress", "9")
+ if progress and progress<9 then
+ SaveCampaignVar("Progress", "9")
+ end
ParseCommand("teamgone " .. loc("011101001"))
TurnTimeLeft = 0
end
@@ -420,6 +422,7 @@
end
function GetVariables()
+ progress = tonumber(GetCampaignVar("Progress"))
m5DeployedNum = tonumber(GetCampaignVar("M5DeployedNum"))
m2Choice = tonumber(GetCampaignVar("M2Choice"))
m5Choice = tonumber(GetCampaignVar("M5Choice"))
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/family.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/family.lua Tue Jun 04 22:28:12 2013 +0200
@@ -284,7 +284,9 @@
function DoPrincessFreed()
AnimSay(princess, loc("Thank you, my hero!"), SAY_SAY, 0)
- SaveCampaignVar("Progress", "7")
+ if progress and progress<7 then
+ SaveCampaignVar("Progress", "7")
+ end
ParseCommand("teamgone " .. loc("011101001"))
TurnTimeLeft = 0
end
@@ -390,6 +392,7 @@
end
function GetVariables()
+ progress = tonumber(GetCampaignVar("Progress"))
m5DeployedNum = tonumber(GetCampaignVar("M5DeployedNum"))
m2Choice = tonumber(GetCampaignVar("M2Choice"))
m5Choice = tonumber(GetCampaignVar("M5Choice"))
Binary file share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/first_blood.hwp has changed
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/first_blood.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/first_blood.lua Tue Jun 04 22:28:12 2013 +0200
@@ -56,6 +56,7 @@
canKilled = false
desertTaken = false
challengeFailed = false
+deleteCrate = false
difficultyChoice = false
princessFace = "Left"
elderFace = "Left"
@@ -220,6 +221,9 @@
end
-----------------------------Events------------------------------------
function CheckNeedToTurn(gear)
+ if youngKilled then
+ return false
+ end
if gear == princess then
if princessKilled ~= true then
if (GetX(princess) > GetX(youngh) and princessFace == "Right")
@@ -466,6 +470,7 @@
function DoTimesUp()
challengeFailed = true
+ deleteCrate = true
DeleteGear(crates[1])
TurnTimeLeft = -1
AddCaption(loc("And so happenned that Leaks A Lot failed to complete the challenge! He landed, pressured by shame..."))
@@ -538,7 +543,9 @@
function DoCannibalKilled()
AddAnim(cannKilledAnim)
- SaveCampaignVar("Progress", "1")
+ if not progress then
+ SaveCampaignVar("Progress", "1")
+ end
end
function DoCannibalKilledEarly()
@@ -603,9 +610,7 @@
MinesTime = 3000
Explosives = 0
Delay = 10
- MapGen = 0
- TemplateFilter = 6
- TemplateNumber = 33
+ Map = "A_Classic_Fairytale_first_blood"
Theme = "Nature"
@@ -630,6 +635,7 @@
end
function onGameStart()
+ progress = tonumber(GetCampaignVar("Progress"))
TurnTimeLeft = -1
FollowGear(youngh)
ShowMission(loc("A Classic Fairytale"), loc("First Blood"), loc("Finish your training|Hint: Animations can be skipped with the [Precise] key."), -amSkip, 0)
@@ -664,6 +670,8 @@
rope2Taken = true
elseif gear == ropeCrate3 then
rope3Taken = true
+ elseif gear == crates[1] and deleteCrate == true then
+ deleteCrate = false
elseif gear == crates[1] and challengeFailed == false then
crates[1] = nil
cratesCollected = cratesCollected + 1
Binary file share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/journey.hwp has changed
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/journey.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/journey.lua Tue Jun 04 22:28:12 2013 +0200
@@ -903,7 +903,9 @@
end
function DoWon()
- SaveCampaignVar("Progress", "3")
+ if progress and progress<3 then
+ SaveCampaignVar("Progress", "3")
+ end
AddAnim(winAnim)
AddFunction({func = FinishWon, args = {}})
end
@@ -939,11 +941,10 @@
MinesTime = 3000
Explosives = 0
Delay = 5
- MapGen = 0
- TemplateFilter = 6
- TemplateNumber = 27
- Theme = "Nature"
- SuddenDeathTurns = 3000
+ Map = "A_Classic_Fairytale_journey"
+ Theme = "Nature"
+
+ SuddenDeathTurns = 3000
AddTeam(loc("Natives"), 29439, "Bone", "Island", "HillBilly", "cm_birdy")
leaks = AddHog(loc("Leaks A Lot"), 0, 100, "Rambo")
@@ -974,6 +975,7 @@
end
function onGameStart()
+ progress = tonumber(GetCampaignVar("Progress"))
m2Choice = tonumber(GetCampaignVar("M2Choice"))
m2DenseDead = tonumber(GetCampaignVar("M2DenseDead"))
m2RamonDead = tonumber(GetCampaignVar("M2RamonDead"))
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/queen.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/queen.lua Tue Jun 04 22:28:12 2013 +0200
@@ -575,6 +575,7 @@
end
function GetVariables()
+ progress = tonumber(GetCampaignVar("Progress"))
m5DeployedNum = tonumber(GetCampaignVar("M5DeployedNum"))
m2Choice = tonumber(GetCampaignVar("M2Choice"))
m5Choice = tonumber(GetCampaignVar("M5Choice"))
@@ -606,7 +607,9 @@
SaveCampaignVar("M8PrincessLeader", princessLeader)
SaveCampaignVar("M8EnemyFled", enemyFled)
SaveCampaignVar("M8Scene", "" .. scene)
- SaveCampaignVar("Progress", "8")
+ if progress and progress<8 then
+ SaveCampaignVar("Progress", "8")
+ end
end
function SetupPlace()
Binary file share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/shadow.hwp has changed
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/shadow.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/shadow.lua Tue Jun 04 22:28:12 2013 +0200
@@ -761,7 +761,9 @@
SaveCampaignVar("M2RamonDead", "0")
SaveCampaignVar("M2SpikyDead", "0")
AddFunction({func = KillCyborg, args = {}})
- SaveCampaignVar("Progress", "2")
+ if progress and progress<2 then
+ SaveCampaignVar("Progress", "2")
+ end
SaveCampaignVar("M2Choice", "" .. choice)
end
@@ -783,7 +785,9 @@
end
AddAnim(refusedFinalAnim)
AddFunction({func = KillCyborg, args = {}})
- SaveCampaignVar("Progress", "2")
+ if progress and progress<2 then
+ SaveCampaignVar("Progress", "2")
+ end
SaveCampaignVar("M2Choice", "" .. choice)
end
@@ -791,7 +795,9 @@
SaveCampaignVar("M2DenseDead", "1")
SaveCampaignVar("M2RamonDead", "0")
SaveCampaignVar("M2SpikyDead", "0")
- SaveCampaignVar("Progress", "2")
+ if progress and progress<2 then
+ SaveCampaignVar("Progress", "2")
+ end
SaveCampaignVar("M2Choice", "" .. choice)
AddAnim(attackedFinalAnim)
AddFunction({func = KillCyborg, args = {}})
@@ -839,11 +845,9 @@
MinesTime = 3000
Explosives = 0
Delay = 10
- MapGen = 0
- TemplateFilter = 6
- TemplateNumber = 22
+ Map = "A_Classic_Fairytale_shadow"
Theme = "Nature"
- SuddenDeathTurns = 3000
+ SuddenDeathTurns = 3000
AddHogs()
PlaceHogs()
@@ -854,6 +858,7 @@
end
function onGameStart()
+ progress = tonumber(GetCampaignVar("Progress"))
HideHogs()
AddAmmo(leaks, amSwitch, 100)
AddAmmo(dense, amSwitch, 100)
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/united.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/united.lua Tue Jun 04 22:28:12 2013 +0200
@@ -109,7 +109,9 @@
else
SaveCampaignVar("M4DenseDead", "0")
end
- SaveCampaignVar("Progress", "4")
+ if progress and progress<4 then
+ SaveCampaignVar("Progress", "4")
+ end
ParseCommand("teamgone " .. loc("011101001"))
TurnTimeLeft = 0
end
@@ -416,6 +418,7 @@
end
function onGameStart()
+ progress = tonumber(GetCampaignVar("Progress"))
GetVariables()
SetupAmmo()
SetupPlace()
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_Dangerous_Ducklings.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Dangerous_Ducklings.lua Tue Jun 04 22:28:12 2013 +0200
@@ -1,11 +1,9 @@
HedgewarsScriptLoad("/Scripts/Locale.lua")
-
local player = nil -- This variable will point to the hog's gear
local instructor = nil
local enemy = nil
---local givenSpeech = false
local speechStage = 0
@@ -33,22 +31,18 @@
AddTeam(loc("Bloody Rookies"), 14483456, "Simple", "Island", "Default")
player = AddHog(loc("Hunter"), 0, 1, "NoHat")
+ instructor = AddHog(loc("Instructor"), 0, 100, "sf_vega")
- --AddTeam("Instructors", 14483456, "Simple", "Island", "Default")
- instructor = AddHog(loc("Instructor"), 1, 1, "sf_vega")
-
- AddTeam("Blue Team", 29439, "Simple", "Island", "Default")
- enemy = AddHog("Filthy Blue", 1, 100, "Skull")
+ AddTeam(loc("Blue Team"), 29439, "Simple", "Island", "Default")
+ enemy = AddHog(loc("Filthy Blue"), 1, 100, "Skull")
SetGearPosition(player,146,902)
SetGearPosition(instructor,317,902)
SetGearPosition(enemy,1918,837)
-
HogSay(player, ".............................", SAY_THINK)
HogTurnLeft(instructor, true)
-
end
@@ -59,15 +53,7 @@
FollowGear(player)
- --spawnTarget()
-
- -- Show some nice mission goals.
- -- Parameters are: caption, sub caption, description,
- -- extra text, icon and time to show.
- -- A negative icon parameter (-n) represents the n-th weapon icon
- -- A positive icon paramter (n) represents the (n+1)-th mission icon
- -- A timeframe of 0 is replaced with the default time to show.
- ShowMission(loc("Dangerous Ducklings"), "", loc("Eliminate the Blue Team"), -amRope, 1);
+ ShowMission(loc("Dangerous Ducklings"), "", loc("Eliminate the Blue Team"), -amRope, 5000);
end
@@ -101,15 +87,14 @@
end
-
-- if player falls in water or if player ignores speech
if (CurrentHedgehog ~= nil) and (CurrentHedgehog == player) then
- if (GetY(player) > 2060) and (gameLost == false) then
+ if (GetY(player) > WaterLine) and (gameLost == false) then
HogSay(instructor, loc("DAMMIT, ROOKIE!"), SAY_SHOUT)
gameLost = true
end
- if (GetX(player) > 1324) and (GetY(player) > 1908) and (notListening == false) and (speechStage < 3) then
+ if (GetX(player) > 300) and (GetY(player) > 880) and (notListening == false) and (speechStage < 3) then
HogSay(instructor, loc("DAMMIT, ROOKIE! GET OFF MY HEAD!"), SAY_SHOUT)
notListening = true
end
@@ -126,10 +111,11 @@
endTimer = endTimer + 1
if (CurrentHedgehog ~= nil) and (CurrentHedgehog == instructor) then
if endTimer >= 3000 then
- SetHealth(instructor,0)
- TurnTimeLeft = 0
+ --SetHealth(instructor,0)
+ TurnTimeLeft = 1
+ ParseCommand("teamgone " .. loc("Bloody Rookies"))
end
- ShowMission(loc("MISSION FAILED"), loc(":("), loc("You've failed. Try again."), -amRope, 1);
+ ShowMission(loc("MISSION FAILED"), loc(":("), loc("You've failed. Try again."), -amRope, 5000);
end
end
@@ -146,9 +132,12 @@
if GetGearType(gear) == gtHedgehog then
if gear == player then
gameLost = true
- elseif gear == instructor then
+ elseif (gear == instructor) and (GetY(gear) > WaterLine) then
HogSay(player, loc("See ya!"), SAY_THINK)
TurnTimeLeft = 3000
+ AddCaption(loc("Achievement Unlocked") .. ": " .. loc("Naughty Ninja"),0xffba00ff,capgrpMessage2)
+ ParseCommand("teamgone " .. loc("Blue Team"))
+ gameWon = true
elseif gear == enemy then
HogSay(player, loc("Enjoy the swim..."), SAY_THINK)
gameWon = true
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Nobody_Laugh.lua Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,130 @@
+--------------------------------------
+-- NOBODY LAUGH
+-- a hilarious (not really) adventure
+--------------------------------------
+
+HedgewarsScriptLoad("/Scripts/Locale.lua")
+HedgewarsScriptLoad("/Scripts/Tracker.lua")
+
+local hhs = {}
+
+function onGameInit()
+
+ Seed = 0
+ GameFlags = gfInfAttack + gfPerHogAmmo +gfDisableWind
+ SuddenDeathTurns = 9999
+ TurnTime = 180000
+ CaseFreq = 0
+ MinesNum = 0
+ Explosives = 0
+ Map = "Bath"
+ Theme = "Nature"
+
+ AddTeam(loc("Nameless Heroes"), 14483456, "eyecross", "Wood", "HillBilly", "cm_birdy")
+ hhs[1] = AddHog(loc( "Hunter" ), 0, 1, "Skull")
+ SetGearPosition(hhs[1], 1267, 451)
+ hhs[2] = AddHog(loc("Drowner"), 0, 31, "mp3")
+ SetGearPosition(hhs[2], 1332, 451)
+
+ AddTeam(loc("Clowns"), 1175851, "Duck2", "Tank", "Mobster", "cm_spider")
+ hhs[3] = AddHog("Poison", 5, 100, "WhySoSerious")
+ SetGearPosition(hhs[3], 1133, 446)
+ hhs[4] = AddHog("Bobo", 5, 100, "clown")
+ SetGearPosition(hhs[4], 1215, 553)
+ hhs[5] = AddHog("Copper", 5, 10, "clown-copper")
+ SetGearPosition(hhs[5], 414, 376)
+ hhs[6] = AddHog("Derp", 5, 100, "clown-crossed")
+ SetGearPosition(hhs[6], 1590, 886)
+ hhs[7] = AddHog("Eckles", 5, 100, "clown-copper")
+ SetGearPosition(hhs[7], 772, 754)
+ hhs[8] = AddHog("Frank", 5, 50, "clown-copper")
+ SetGearPosition(hhs[8], 1688, 714)
+ hhs[9] = AddHog("Harry", 5, 50, "clown-copper")
+ SetGearPosition(hhs[9], 1932, 837)
+ hhs[10] = AddHog("Igmund", 5, 50, "WhySoSerious")
+ SetGearPosition(hhs[10], 1601, 733)
+
+end
+
+function onGameStart()
+
+ AddAmmo(enemy, amAirAttack, 100)
+
+ ShowMission( loc("Nobody Laugh"),
+ loc("User Challenge"),
+ loc("Eliminate the enemy before the time runs out")
+ , 0, 0
+ )
+
+ -- GIRDERS
+ PlaceGirder(1212, 710, 7)
+ PlaceGirder(1215, 570, 4)
+ PlaceGirder(1288, 520, 2)
+ PlaceGirder(1184, 468, 4)
+ PlaceGirder(1344, 468, 4)
+ PlaceGirder(1247, 346, 4)
+
+ PlaceGirder(667, 438, 4)
+ PlaceGirder(507, 438, 4)
+ PlaceGirder(434, 487, 2)
+ PlaceGirder(505, 537, 4)
+ PlaceGirder(665, 537, 4)
+ PlaceGirder(737, 487, 2)
+
+ PlaceGirder(416, 465, 6)
+ PlaceGirder(1415, 378, 6)
+ PlaceGirder(1300, 625, 3)
+ PlaceGirder(1359, 566, 3)
+ PlaceGirder(1436, 538, 0)
+ PlaceGirder(1505, 468, 4)
+
+ ------ AMMO CRATE LIST ------
+ tempG = SpawnAmmoCrate(1242, 315, amBaseballBat)
+ tempG = SpawnAmmoCrate(1309, 315, amAirAttack)
+ tempG = SpawnAmmoCrate(144, 895, amAirAttack)
+ tempG = SpawnAmmoCrate(664, 699, amIceGun)
+ tempG = SpawnAmmoCrate(1572, 444, amFirePunch)
+ tempG = SpawnAmmoCrate(1574, 382, amDynamite)
+
+ ------ UTIL CRATE LIST ------
+ tempG = SpawnUtilityCrate(654, 513, amParachute)
+ tempG = SpawnUtilityCrate(1569, 413, amParachute)
+
+ -- HOG AMMO
+ AddAmmo(hhs[1],amParachute,1)
+ AddAmmo(hhs[1],amHammer,1)
+ AddAmmo(hhs[2],amWhip,1)
+
+ for i = 3, 10 do
+ AddAmmo(hhs[i], amDeagle, 100)
+ AddAmmo(hhs[i], amShotgun, 100)
+ AddAmmo(hhs[i], amGrenade, 100)
+ AddAmmo(hhs[i], amBazooka, 100)
+ AddAmmo(hhs[i], amDrill, 100)
+ end
+
+end
+
+function onNewTurn()
+ SetWind(100)
+end
+
+function onAmmoStoreInit()
+
+ SetAmmo(amBaseballBat, 0, 0, 0, 1)
+ SetAmmo(amAirAttack, 0, 0, 0, 1)
+ SetAmmo(amFirePunch, 0, 0, 0, 1)
+ SetAmmo(amDynamite, 0, 0, 0, 1)
+ SetAmmo(amHammer, 0, 0, 0, 1)
+ SetAmmo(amIceGun, 0, 0, 0, 1)
+
+ SetAmmo(amParachute, 0, 0, 0, 1)
+
+ SetAmmo(amSwitch, 9, 0, 0, 0)
+ SetAmmo(amSkip, 9, 0, 0, 0)
+
+end
+
+------------------------------
+-- I'm in whitesppaaaaaaaaaacceeeee :D
+------------------------------
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_RCPlane_Challenge.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_RCPlane_Challenge.lua Tue Jun 04 22:28:12 2013 +0200
@@ -20,7 +20,7 @@
Explosives = 0
AddTeam(loc("Wannabe Flyboys"), 14483456, "Simple", "Island", "Default", "Hedgewars")
- player = AddHog(loc("Ace"), 0, 80, "Gasmask") --NoHat
+ player = AddHog(loc("Ace"), 0, 80, "Gasmask")
SetGearPosition(player, 1380, 1500)
end
@@ -314,6 +314,10 @@
if cratesLeft == 0 then
+ if planesUsed == 1 then
+ AddCaption(loc("Achievement Unlocked") .. ": " .. loc("Prestigious Pilot"),0xffba00ff,capgrpMessage2)
+ end
+
ShowMission (
loc("CHALLENGE COMPLETE"),
loc("Congratulations!"),
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Frenzy.cfg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,2 @@
+Default
+locked
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Frenzy.lua Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,142 @@
+-------------------------------------------
+-- FRENZY
+-- a hedgewars mode inspired by Hysteria
+-------------------------------------------
+
+HedgewarsScriptLoad("/Scripts/Locale.lua")
+HedgewarsScriptLoad("/Scripts/Tracker.lua")
+
+local cTimer = 0
+local cn = 0
+
+function initialSetup(gear)
+ SetHealth(gear, 75) -- official is 80, but that assumes bazookas/grenades that do 50 damage
+end
+
+function showStartingInfo()
+
+ ruleSet = "" ..
+ loc("RULES") .. ": " .. "|" ..
+ loc("Each turn is only ONE SECOND!") .. "|" ..
+ loc("Use your ready time to think.") .. "|" ..
+ loc("Slot keys save time! (F1-F10 by default)") .. "|" ..
+ " |" ..
+ loc("SLOTS") .. ": " .. "|" ..
+ loc("Slot") .. " 1 - " .. loc("Bazooka") .. "|" ..
+ loc("Slot") .. " 2 - " .. loc("Grenade") .. "|" ..
+ loc("Slot") .. " 3 - " .. loc("Shotgun") .. "|" ..
+ loc("Slot") .. " 4 - " .. loc("Shoryuken") .. "|" ..
+ loc("Slot") .. " 5 - " .. loc("Mine") .. "|" ..
+ loc("Slot") .. " 6 - " .. loc("Teleport") .. "|" ..
+ loc("Slot") .. " 7 - " .. loc("Blowtorch") .. "|" ..
+ loc("Slot") .. " 8 - " .. loc("Flying Saucer") .. "|" ..
+ loc("Slot") .. " 9 - " .. loc("Molotov") .. "|" ..
+ loc("Slot") .. " 10 - " .. loc("Low Gravity")
+
+ ShowMission(loc("FRENZY"),
+ loc("a frenetic Hedgewars mini-game"),
+ ruleSet, 0, 4000)
+
+end
+
+function onGameInit()
+
+ if TurnTime > 10001 then
+ Ready = 8000
+ else
+ Ready = TurnTime
+ end
+
+ TurnTime = 1000
+
+ --These are the official settings, but I think I prefer allowing customization in this regard
+ --MinesNum = 8
+ --MinesTime = 3000
+ --MinesDudPercent = 30
+ --Explosives = 0
+
+ --Supposedly official settings
+ HealthCaseProb = 0
+ CrateFreq = 0
+
+ --Approximation of Official Settings
+ --SuddenDeathTurns = 10
+ --WaterRise = 47
+ --HealthDecrease = 0
+
+end
+
+function onGameStart()
+ showStartingInfo()
+ runOnHogs(initialSetup)
+end
+
+function onSlot(sln)
+ cTimer = 8
+ cn = sln
+end
+
+function onGameTick()
+ if cTimer ~= 0 then
+ cTimer = cTimer -1
+ if cTimer == 1 then
+ ChangeWep(cn)
+ cn = 0
+ cTimer = 0
+ end
+ end
+end
+
+function ChangeWep(s)
+
+ if s == 0 then
+ ParseCommand("setweap " .. string.char(amBazooka))
+ elseif s == 1 then
+ ParseCommand("setweap " .. string.char(amGrenade))
+ elseif s == 2 then
+ ParseCommand("setweap " .. string.char(amShotgun))
+ elseif s == 3 then
+ ParseCommand("setweap " .. string.char(amFirePunch))
+ elseif s == 4 then
+ ParseCommand("setweap " .. string.char(amMine))
+ elseif s == 5 then
+ ParseCommand("setweap " .. string.char(amTeleport))
+ elseif s == 6 then
+ ParseCommand("setweap " .. string.char(amBlowTorch))
+ elseif s == 7 then
+ ParseCommand("setweap " .. string.char(amJetpack))
+ elseif s == 8 then
+ ParseCommand("setweap " .. string.char(amMolotov))
+ elseif s == 9 then
+ ParseCommand("setweap " .. string.char(amLowGravity))
+ end
+
+end
+
+function onGearAdd(gear)
+ if GetGearType(gear) == gtHedgehog then
+ trackGear(gear)
+ end
+end
+
+function onGearDelete(gear)
+ if GetGearType(gear) == gtHedgehog then
+ trackDeletion(gear)
+ end
+end
+
+function onAmmoStoreInit()
+ SetAmmo(amBazooka, 9, 0, 0, 0)
+ SetAmmo(amGrenade, 9, 0, 0, 0)
+ SetAmmo(amMolotov, 9, 0, 0, 0)
+ SetAmmo(amShotgun, 9, 0, 0, 0)
+ --SetAmmo(amFlamethrower, 9, 0, 0, 0) -- this was suggested on hw.org but it's not present on base
+ SetAmmo(amFirePunch, 9, 0, 0, 0)
+ SetAmmo(amMine, 9, 0, 0, 0)
+ --SetAmmo(amCake, 1, 0, 2, 0) -- maybe it's beefcake?
+ SetAmmo(amJetpack, 9, 0, 0, 0)
+ SetAmmo(amBlowTorch, 9, 0, 0, 0)
+ SetAmmo(amTeleport, 9, 0, 0, 0)
+ SetAmmo(amLowGravity, 9, 0, 0, 0)
+ --SetAmmo(amSkipGo, 9, 0, 0, 0) -- not needed with 1s turn time
+end
--- a/share/hedgewars/Data/Scripts/Multiplayer/Highlander.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Highlander.lua Tue Jun 04 22:28:12 2013 +0200
@@ -1,6 +1,6 @@
--------------------------------
-- HIGHLANDER / HOGS OF WAR
--- version 0.4
+-- version 0.4b
-- by mikade
--------------------------------
@@ -63,10 +63,15 @@
-- add more whitespace
-- break everything
+-----------
+--0.4b
+-----------
+-- as per request, add ice-gun
+
-------------------------
-- ideas for the future
-------------------------
--- add ice gun, structure
+-- add structure
-- allow switcher, resurrector
-- add abuse
-- nerf teleport
@@ -90,7 +95,7 @@
local atkArray = {
amBazooka, amBee, amMortar, amDrill, --[[amSnowball,]]
amGrenade, amClusterBomb, amMolotov, amWatermelon, amHellishBomb, amGasBomb,
- amShotgun, amDEagle, amFlamethrower, amSniperRifle, amSineGun,
+ amShotgun, amDEagle, amFlamethrower, amSniperRifle, amSineGun, amIceGun,
amFirePunch, amWhip, amBaseballBat, --[[amKamikaze,]] amSeduction, --[[amHammer,]]
amMine, amDynamite, amCake, amBallgun, amRCPlane, amSMine,
amRCPlane, amSMine,
--- a/share/hedgewars/Data/Scripts/Multiplayer/Mutant.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Mutant.lua Tue Jun 04 22:28:12 2013 +0200
@@ -1,625 +1,615 @@
-local MUTANT_VERSION = "v0.9.4"
-
---[[ ___ ___
- ( ) ( )
-___ .-. .-. ___ ___ | |_ .---. ___ .-. | |_
-( ) ' ( )( ( __) / .-, ( ) ( __)
-| .-. .-. | | | | | | (__) ; || .-. .| |
-| | | | | | | | | | | ___ .'` || | | || | ___
-| | | | | | | | | | |( / .'| || | | || |( )
-| | | | | | | | | | | | | / | || | | || | | |
-| | | | | | | ; ' | ' | ; | ; || | | || ' | |
-| | | | | ' `-' / ' `-' ' `-' || | | |' `-' ;
-(___)(___)(___'.__.' `.__.`.__.'_(___)(___)`.__.
-
-
----- IMPORTANT!
-----
----- You should save (press Ctrl+S) this script to:
----- Program Files\Hedgewars\share\hedgewars\Data\Scripts\Multiplayer\Mutant.lua
----- or (on Linux):
----- ~/.hedgewars/Data/Scripts/Multiplayer/Mutant.lua
-----
----- (or wherever scripts like Highlander.lua, Racer.lua are on your system)
-----
----- Also, if you didn't have Mutant script yet, you need to restart Hedgewars for it to find the script file.
-----
-
-
----- GAME RULES
-----
----- Recommended settings:
----- * one hedgehog per team
----- * 'Small' one-island map
-----
----- First one to kill anyone becomes Mutant. Mutant has super-weapons
----- and a lot of health, which however depletes if he doesn't frag fast.
----- Goal of Mutant is to use his weapons to hold his status for as long
----- as he can.
----- Goal of others is to hunt the Mutant down. The one who kills Mutant,
----- becomes Mutant himself.
----- The player with least points (or most deaths) is Bottom Feeder. He
----- can gain points by killing anyone. Other normal players only get points
----- for killing Mutant.
-----
----- Points:
----- +2 for becoming a Mutant
----- +1 to a Mutant for killing anyone
----- +1 to a Bottom Feeder for killing anyone
----- -1 to anyone for a suicide
----- other kills don't give you points.
-----
-
---]]
-
-HedgewarsScriptLoad("/Scripts/Locale.lua")
-HedgewarsScriptLoad("/Scripts/Tracker.lua")
-
---[[
- MUTANT SCRIPT
-
- To Do: -Clean-up this fucking piece of code
- -Debug
- -Find a girlfriend
- -Fix Sheepluva's hat +[p]
- -Cookies
-
------------------------]]
-
-local hhs = {}
-local numhhs = 0
-
-local gameOver=false
-
-local mutant = nil
-local mutant_base_health = 200
-local mutant_base_disease = 25
-local disease_timer = 2000
-
-local kill_reward = nil
-local mt_hurt=false
-
-local killsCounter = 0
-
-local team_fire_punishment = 3
-local mutant_kill_reward = 2
-
-local hh_weapons = { amBazooka, amGrenade, amShotgun, amMine}
-
-local mt_weapons = {amWatermelon, amHellishBomb, amBallgun, amRCPlane, amTeleport}
-
-local disease=0
-local timer=0
-
-local winScore = 15
-local hogsLimit = 1
-
-local teams = {}
-
-local circles = {}
-local circleFrame = -1
-
-function onGameInit()
- TurnTime = 20000
- WaterRise = 0
- GameFlags = GameFlags + gfResetWeps + gfPerHogAmmo
- HealthCaseProb=0
- HealthCaseAmount=0
- MinesTime=1000
- CaseFreq = 2
-
-end
-
-
-function limitHogs(gear)
- cnthhs = cnthhs + 1
- if cnthhs > 1 then
- hogLimitHit = true
- SetEffect(gear, heResurrectable, false)
- --SetHealth(gear, 0)
- SetGearPosition(gear, -100,LAND_HEIGHT)
- end
-end
-
-function onGameStart()
- trackTeams()
- teamScan()
- runOnHogs(saveStuff)
- --local str = "/say " .. MUTANT_VERSION
- --ParseCommand(str)
-
- hogLimitHit = false
- for i=0 , TeamsCount - 1 do
- cnthhs = 0
- runOnHogsInTeam(limitHogs, teams[i])
- end
- if hogLimitHit then
- AddCaption(loc("ONE HOG PER TEAM! KILLING EXCESS HEDGES"))
- end
-end
-
-
-
-function giveWeapons(gear)
-
- if gear == mutant then
- AddAmmo(gear, amRope)
- for i=1, #mt_weapons do
- AddAmmo(gear, mt_weapons[i])
- end
-
- else
- for i=1, #hh_weapons do
- AddAmmo(gear,hh_weapons[i])
- end
- end
-end
-
-function onAmmoStoreInit()
-
- SetAmmo(amSkip, 9, 0, 0, 0)
- SetAmmo(amRope,0,1,0,5)
- SetAmmo(amSnowball,0,1,0,1)
-
- for i=1, #hh_weapons do
- SetAmmo(hh_weapons[i], 0, 0, 0, 1)
- end
-
- for i=1, #mt_weapons do
- SetAmmo(mt_weapons[i], 0, 3, 0, 1)
- end
-
-end
-
-function drawCircles()
- for i = 0, #hhs do
- if circles[hhs[i]] ~= nil then
- DeleteVisualGear(circles[hhs[i]])
- circles[hhs[i]] = nil
- end
-
- if hhs[i] ~= CurrentHedgehog then
- if mutant == nil then
- circles[hhs[i]] = AddVisualGear(0, 0, vgtCircle, 0, false)
- SetVisualGearValues(circles[hhs[i]], 0, 0, 0, 0, 0, 0, 0, 22, 5, 0xff000080)
- elseif CurrentHedgehog == mutant then
- circles[hhs[i]] = AddVisualGear(0, 0, vgtCircle, 0, false)
- SetVisualGearValues(circles[hhs[i]], 0, 0, 0, 0, 0, 0, 0, 22, 3, 0xaa000070)
- elseif getGearValue(CurrentHedgehog, "Feeder") and hhs[i] ~= mutant then
- circles[hhs[i]] = AddVisualGear(0, 0, vgtCircle, 0, false)
- SetVisualGearValues(circles[hhs[i]], 0, 0, 0, 0, 0, 0, 0, 22, 3, 0xaa000070)
- elseif hhs[i] == mutant then
- circles[hhs[i]] = AddVisualGear(0, 0, vgtCircle, 0, false)
- SetVisualGearValues(circles[hhs[i]], 0, 0, 0, 0, 0, 0, 0, 22, 5, 0xff000080)
- end
- end
- end
- circleFrame = 0
-end
-
-function onNewTurn()
-
- trackTeams()
- killsCounter = 0
-
- if mutant == nil then
- AddCaption( loc("FIRST BLOOD MUTATES") )
- end
-
- checkScore()
- giveWeapons(CurrentHedgehog)
- drawCircles()
- setAIHints()
- kill_reward= numhhs*10
-
- if CurrentHedgehog == mutant then
- mt_hurt=true
- disease= mutant_base_disease - numhhs
- else
- mt_hurt=false
- end
-
- setGearValue(CurrentHedgehog, "Alive", true)
-
-end
-
-function countBodies()
- if killsCounter == 2 then
- AddCaption(loc("DOUBLE KILL"))
- elseif killsCounter == 3 then
- AddCaption(loc("MEGA KILL"))
- PlaySound(sndRegret)
- elseif killsCounter == 4 then
- AddCaption(loc("ULTRA KILL"))
- elseif killsCounter == 5 then
- AddCaption(loc("MONSTER KILL"))
- PlaySound(sndIllGetYou)
- elseif killsCounter == 6 then
- AddCaption(loc("LUDICROUS KILL"))
- PlaySound(sndNutter)
- elseif killsCounter == 7 then
- AddCaption(loc("HOLY SHYTE!"))
- PlaySound(sndLaugh)
- elseif killsCounter > 8 then
- AddCaption(loc("INSANITY"))
- end
-
-end
-
-function onGameTick()
-
- if circleFrame > -1 then
- for i = 0, #hhs do
- if circles[hhs[i]] ~= nil and hhs[i]~= nil then
- hhx, hhy = GetGearPosition(hhs[i])
- X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint = GetVisualGearValues(circles[hhs[i]])
- SetVisualGearValues(circles[hhs[i]], hhx + 1, hhy - 3, 0, 0, 0, 0, 0, 40 - (circleFrame % 25), Timer, Tint)
- end
- end
-
- circleFrame = circleFrame + 0.06
-
- if circleFrame >= 25 then
- for i = 0, #hhs do
- if circles[hhs[i]] ~= nil then
- DeleteVisualGear(circles[hhs[i]])
- circles[hhs[i]] = nil
- end
- end
- end
- end
-
- if TurnTimeLeft==0 and mt_hurt then
- mt_hurt = false
- end
-
- if mt_hurt and mutant~=nil then
- timer = timer + 1
- if timer > disease_timer then
- timer = 0
- SetHealth(mutant, GetHealth(mutant)-disease )
- AddVisualGear(GetX(mutant), GetY(mutant)-5, vgtHealthTag, disease, true)
- if GetHealth(mutant)<=0 then
- SetHealth(mutant,0)
- mt_hurt= false
- setGearValue(mutant,"SelfDestruct",true)
- TurnTimeLeft = 0
- end
- end
- end
-end
-
-function saveStuff(gear)
- setGearValue(gear,"Name",GetHogName(gear))
- setGearValue(gear,"Hat",GetHogHat(gear))
-end
-
-function armageddon(gear)
- SetState(gear, gstLoser)
- SetEffect(gear, heResurrectable, false)
- SetHealth(gear, 0)
-end
-
-function updateScore()
-local showScore = ""
-
- for i=0, TeamsCount-1 do
- if teams[i]~= nil then
-
- local curr_score = getTeamValue(teams[i], "Score")
- showScore = showScore .. teams[i] .. ": " .. curr_score .. " (deaths: " .. getTeamValue(teams[i], "DeadHogs") .. ") " .. "|"
-
- end
- end
-
- ShowMission(loc("Score"),
- "-------",
- showScore, 0, 200)
-
- HideMission()
-
-end
-
-function checkScore()
-local showScore = ""
-local lowest_score_team = nil
-local min_score=nil
-local winTeam = nil
-
-local only_low_score = true
-
- for i=0, TeamsCount-1 do
- if teams[i]~=nil then
- local curr_score = getTeamValue(teams[i], "Score")
-
- runOnHogsInTeam(removeFeeder, teams[i])
-
- showScore = showScore .. teams[i] ..": " .. curr_score .. " (deaths: " .. getTeamValue(teams[i], "DeadHogs") .. ") " .. "|"
-
- if curr_score >= winScore then
- gameOver = true
- winTeam = teams[i]
- end
-
- if min_score==nil then
- min_score= curr_score
- lowest_score_team = teams[i]
- else
- if curr_score <= min_score then
- if curr_score == min_score then
- if getTeamValue(teams[i], "DeadHogs") == getTeamValue(lowest_score_team, "DeadHogs") then
- only_low_score = false
- else
- if getTeamValue(teams[i], "DeadHogs") > getTeamValue(lowest_score_team, "DeadHogs") then
- lowest_score_team = teams[i]
- end
- only_low_score = true
- end
-
- else
- min_score= curr_score
- lowest_score_team = teams[i]
- only_low_score = true
- end
- end
- end
- end
- end
-
- if gameOver then
- TurnTimeLeft = 0
- for i=0, #teams do
- if teams[i]~=winTeam then
- runOnHogsInTeam(armageddon, teams[i])
- end
- end
-
- ShowMission( loc("WINNER IS ") .. winTeam,
- "~~~~~~~~~~~~~~~~~~~~~~~~~",
- showScore, 0, 200)
- else
-
- if only_low_score then
- runOnHogsInTeam(setFeeder, lowest_score_team)
- end
-
- ShowMission( loc("Score"),
- loc("-------"),
- showScore, 0, 200)
-
- end
-end
-
-function backToNormal(gear)
-
- SetHogName(gear, getGearValue(gear,"Name"))
- SetHogHat(gear, 'NoHat')
- SetHogHat(gear, getGearValue(gear,"Hat"))
- setGearValue(mutant,"SelfDestruct",false)
- mt_hurt=false
- mutant=nil
-end
-
-function setAIHints()
- for i = 0, #hhs do
- if mutant == nil or hhs[i] == mutant or CurrentHedgehog == mutant then
- SetGearAIHints(hhs[i], aihUsual)
- else
- SetGearAIHints(hhs[i], aihDoesntMatter)
- end
- end
-end
-
-function removeFeeder(gear)
-
- if gear~=nil then
- setGearValue(gear,"Feeder",false)
- if gear~= mutant then
- SetHogName(gear, getGearValue(gear,"Name") )
- SetHogHat(gear, 'NoHat')
- SetHogHat(gear, getGearValue(gear,"Hat"))
- end
- end
-end
-
-function setFeeder(gear)
-
- if gear~= mutant and gear~= nil then
- SetHogName(gear,"BOTTOM FEEDER")
- SetHogHat(gear, 'poke_slowpoke')
- setGearValue(gear,"Feeder", true)
- end
-end
-
-function setMutantStuff(gear)
- mutant = gear
-
- SetHogName(gear,"MUTANT")
- SetHogHat(gear,'WhySoSerious')
- SetHealth(gear, ( mutant_base_health + numhhs*25) )
- SetEffect(gear, hePoisoned, 1)
- setGearValue(mutant,"SelfDestruct",false)
- setGearValue(gear, "Feeder", false)
-
- AddCaption(getGearValue(gear, "Name") .. loc(" HAS MUTATED"))
-
- TurnTimeLeft=0
-
- AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
- AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
- AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
- AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
- AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
- PlaySound(sndSuddenDeath)
-end
-
-function teamScan()
-
- for i=0, TeamsCount-1 do --nil filling
- teams[i]=nil
- end
-
- for i=0, #hhs do
- for j=0, TeamsCount-1 do
- if teams[j] ==nil and hhs[i]~=nil then
- teams[j] = GetHogTeamName(hhs[i])
- setTeamValue(teams[j],"Score",0)
- setTeamValue(teams[j], "DeadHogs",0)
- break
- end
-
- if teams[j] == GetHogTeamName(hhs[i]) then
- break
- end
- end
- end
-
- ---***---
-end
-
-
-function onGearDamage(gear, dmg)
-
-end
-
-function set_Mutant_and_Score(gear)
-
-local curr_team = GetHogTeamName(CurrentHedgehog)
-
- if gear == CurrentHedgehog then
- if CurrentHedgehog == mutant then
- PlaySound(sndHomerun)
- if getGearValue(gear, "SelfDestruct")==false then
- decreaseTeamValue(curr_team,"Score")
- end
- backToNormal(gear)
- else
- decreaseTeamValue(curr_team,"Score")
- end
-
- else
- if gear == mutant then
- backToNormal(mutant)
- if curr_team ~=GetHogTeamName(gear) then
- if getGearValue(CurrentHedgehog, "Alive") then
- setMutantStuff(CurrentHedgehog)
- setTeamValue(curr_team,"Score",(getTeamValue(curr_team,"Score") + mutant_kill_reward))
- end
- else
- setTeamValue(curr_team,"Score",(getTeamValue(curr_team,"Score") - team_fire_punishment))
- end
- else
- if mutant==nil then
- if curr_team ~=GetHogTeamName(gear) then
- if getGearValue(CurrentHedgehog, "Alive") then
- setMutantStuff(CurrentHedgehog)
- setTeamValue(curr_team,"Score",(getTeamValue(curr_team,"Score") + mutant_kill_reward))
- else
- increaseTeamValue(curr_team,"Score")
- end
- else
- setTeamValue(curr_team,"Score",(getTeamValue(curr_team,"Score") - team_fire_punishment))
- end
- else
- if curr_team ~=GetHogTeamName(gear) then
- if CurrentHedgehog==mutant and getGearValue(mutant,"SelfDestruct")==false then
- SetHealth(CurrentHedgehog, GetHealth(CurrentHedgehog)+kill_reward)
- AddCaption("+" .. kill_reward .. loc(" HP") )
- increaseTeamValue(curr_team,"Score")
- end
- if getGearValue(CurrentHedgehog,"Feeder") then
- increaseTeamValue(curr_team,"Score")
- end
- else
- setTeamValue(curr_team,"Score",(getTeamValue(curr_team,"Score") - team_fire_punishment))
- end
- end
- end
- end
-end
-
-function onGearResurrect(gear)
-if not gameOver then
- if GetGearType(gear) == gtHedgehog then
-
- increaseTeamValue(GetHogTeamName(gear), "DeadHogs")
-
- if gear==CurrentHedgehog then
- setGearValue(CurrentHedgehog, "Alive", false)
- end
- set_Mutant_and_Score(gear)
- if gear~=CurrentHedgehog then
- killsCounter = killsCounter + 1
- countBodies()
- end
- AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
- PlaySound(sndWhack)
- updateScore()
- end
-end
-end
-
-function onGearAdd(gear)
-
- -- Catch hedgehogs for the tracker
- if GetGearType(gear) == gtHedgehog then
- trackGear(gear)
- hhs[numhhs] = gear
- numhhs = numhhs + 1
- SetEffect(gear, heResurrectable, 1)
- end
-end
-
-function checkEmptyTeam (teamName)
- for i=0 , #hhs do
- if hhs[i]~=nil then
- if teamName == GetHogTeamName(hhs[i]) then
- return false
- end
- end
- end
- return true
-end
-
-function onGearDelete(gear)
- -- Remove hogs that are gone
- if GetGearType(gear) == gtHedgehog then
- numhhs = numhhs - 1
-
- local found
- for i=0, #hhs do
- if hhs[i] == gear then
- found = i
- break
- end
- end
- for i = found, #hhs - 1 do
- hhs[i] = hhs[i + 1]
- end
- hhs[#hhs] = nil
-
- local t_name = GetHogTeamName(gear)
- if checkEmptyTeam(t_name) then
- for i = 0, TeamsCount - 1 do
- if teams[i] == t_name then
- found = i
- break
- end
- end
- for i = found, TeamsCount - 2 do
- teams[i] = teams[i + 1]
- end
- teams[TeamsCount - 1] = nil
- TeamsCount = TeamsCount - 1
- end
- AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false)
- trackDeletion(gear)
- end
-end
-
---[[
-S T A R R I N G
-
- prof - Coding, implementing and evangelism
- vos - Initial idea and script improvements
---]]
+local MUTANT_VERSION = "v0.9.5"
+
+--[[ ___ ___
+ ( ) ( )
+___ .-. .-. ___ ___ | |_ .---. ___ .-. | |_
+( ) ' ( )( ( __) / .-, ( ) ( __)
+| .-. .-. | | | | | | (__) ; || .-. .| |
+| | | | | | | | | | | ___ .'` || | | || | ___
+| | | | | | | | | | |( / .'| || | | || |( )
+| | | | | | | | | | | | | / | || | | || | | |
+| | | | | | | ; ' | ' | ; | ; || | | || ' | |
+| | | | | ' `-' / ' `-' ' `-' || | | |' `-' ;
+(___)(___)(___'.__.' `.__.`.__.'_(___)(___)`.__.
+
+
+---- Recommended settings:
+---- * one hedgehog per team
+---- * 'Small' one-island map
+
+--]]
+
+HedgewarsScriptLoad("/Scripts/Locale.lua")
+HedgewarsScriptLoad("/Scripts/Tracker.lua")
+
+--[[
+ MUTANT SCRIPT
+
+ To Do: -Clean-up this fucking piece of code
+ -Debug
+ -Find a girlfriend
+ -Fix Sheepluva's hat +[p]
+ -Cookies
+-----------------------]]
+
+local hhs = {}
+local numhhs = 0
+local meh = false
+
+local gameOver=false
+
+local mutant = nil
+local mutant_base_health = 200
+local mutant_base_disease = 25
+local disease_timer = 2000
+
+local kill_reward = nil
+local mt_hurt=false
+
+local killsCounter = 0
+
+local team_fire_punishment = 3
+local mutant_kill_reward = 2
+
+local hh_weapons = { amBazooka, amGrenade, amShotgun, amMine}
+
+local mt_weapons = {amWatermelon, amHellishBomb, amBallgun, amRCPlane, amTeleport}
+
+local disease=0
+local timer=0
+
+local winScore = 15
+local hogsLimit = 1
+
+local teams = {}
+
+local circles = {}
+local circleFrame = -1
+
+function showStartingInfo()
+
+ ruleSet = loc("RULES") .. ": " ..
+ " |" .. --" |" ..
+ loc("The first player to kill someone becomes the Mutant.") .. "|" ..
+ loc("The Mutant has super-weapons and a lot of health.") .. "|" ..
+ loc("The Mutant loses health quickly if he doesn't keep scoring kills.") .. "|" ..
+ " |" ..
+ loc("Normal players can only score points by killing the mutant.") .. "|" ..
+ " |" .. "" ..
+ loc("The player with least points (or most deaths) becomes the Bottom Feeder.") .. "|" ..
+ loc("The Bottom Feeder can score points by killing anyone.") .. "|" ..
+ " |" ..
+ loc("POINTS") .. ": " ..
+ " |" ..
+ loc("+2 for becoming a Mutant") .. "|" ..
+ loc("+1 to a Mutant for killing anyone") .. "|" ..
+ loc("+1 to a Bottom Feeder for killing anyone") .. "|" ..
+ loc("-1 to anyone for a suicide") .. "|" ..
+ loc("Other kills don't give you points.")
+
+ ShowMission(loc("Mutant"),
+ loc("a Hedgewars tag game"),
+ ruleSet, 0, 5000)
+
+end
+
+function onGameInit()
+ TurnTime = 20000
+ WaterRise = 0
+ GameFlags = GameFlags + gfResetWeps + gfPerHogAmmo
+ HealthCaseProb=0
+ HealthCaseAmount=0
+ MinesTime=1000
+ CaseFreq = 2
+end
+
+
+function limitHogs(gear)
+ cnthhs = cnthhs + 1
+ if cnthhs > 1 then
+ hogLimitHit = true
+ SetEffect(gear, heResurrectable, false)
+ --SetHealth(gear, 0)
+ SetGearPosition(gear, -100,LAND_HEIGHT)
+ end
+end
+
+function onGameStart()
+ trackTeams()
+ teamScan()
+ runOnHogs(saveStuff)
+ --local str = "/say " .. MUTANT_VERSION
+ --ParseCommand(str)
+
+ hogLimitHit = false
+ for i=0 , TeamsCount - 1 do
+ cnthhs = 0
+ runOnHogsInTeam(limitHogs, teams[i])
+ end
+ if hogLimitHit then
+ AddCaption(loc("ONE HOG PER TEAM! KILLING EXCESS HEDGES"))
+ end
+ showStartingInfo()
+end
+
+
+
+function giveWeapons(gear)
+ if gear == mutant then
+ AddAmmo(gear, amRope)
+ for i=1, #mt_weapons do
+ AddAmmo(gear, mt_weapons[i])
+ end
+
+ else
+ for i=1, #hh_weapons do
+ AddAmmo(gear,hh_weapons[i])
+ end
+ end
+end
+
+function onAmmoStoreInit()
+
+ SetAmmo(amSkip, 9, 0, 0, 0)
+ SetAmmo(amRope,0,1,0,5)
+ SetAmmo(amSnowball,0,1,0,1)
+
+ for i=1, #hh_weapons do
+ SetAmmo(hh_weapons[i], 0, 0, 0, 1)
+ end
+
+ for i=1, #mt_weapons do
+ SetAmmo(mt_weapons[i], 0, 3, 0, 1)
+ end
+
+end
+
+function drawCircles()
+ for i = 0, #hhs do
+ if circles[hhs[i]] ~= nil then
+ DeleteVisualGear(circles[hhs[i]])
+ circles[hhs[i]] = nil
+ end
+
+ if hhs[i] ~= CurrentHedgehog then
+ if mutant == nil then
+ circles[hhs[i]] = AddVisualGear(0, 0, vgtCircle, 0, false)
+ SetVisualGearValues(circles[hhs[i]], 0, 0, 0, 0, 0, 0, 0, 22, 5, 0xff000080)
+ elseif CurrentHedgehog == mutant then
+ circles[hhs[i]] = AddVisualGear(0, 0, vgtCircle, 0, false)
+ SetVisualGearValues(circles[hhs[i]], 0, 0, 0, 0, 0, 0, 0, 22, 3, 0xaa000070)
+ elseif getGearValue(CurrentHedgehog, "Feeder") and hhs[i] ~= mutant then
+ circles[hhs[i]] = AddVisualGear(0, 0, vgtCircle, 0, false)
+ SetVisualGearValues(circles[hhs[i]], 0, 0, 0, 0, 0, 0, 0, 22, 3, 0xaa000070)
+ elseif hhs[i] == mutant then
+ circles[hhs[i]] = AddVisualGear(0, 0, vgtCircle, 0, false)
+ SetVisualGearValues(circles[hhs[i]], 0, 0, 0, 0, 0, 0, 0, 22, 5, 0xff000080)
+ end
+ end
+ end
+ circleFrame = 0
+end
+
+function onNewTurn()
+
+ trackTeams()
+ killsCounter = 0
+
+ if mutant == nil then
+ AddCaption( loc("FIRST BLOOD MUTATES") )
+ end
+
+ checkScore()
+ giveWeapons(CurrentHedgehog)
+ drawCircles()
+ setAIHints()
+ kill_reward= numhhs*10
+
+ if CurrentHedgehog == mutant then
+ mt_hurt=true
+ disease= mutant_base_disease - numhhs
+ else
+ mt_hurt=false
+ end
+
+ setGearValue(CurrentHedgehog, "Alive", true)
+
+end
+
+function countBodies()
+ if killsCounter == 2 then
+ AddCaption(loc("DOUBLE KILL"))
+ elseif killsCounter == 3 then
+ AddCaption(loc("MEGA KILL"))
+ PlaySound(sndRegret)
+ elseif killsCounter == 4 then
+ AddCaption(loc("ULTRA KILL"))
+ elseif killsCounter == 5 then
+ AddCaption(loc("MONSTER KILL"))
+ PlaySound(sndIllGetYou)
+ elseif killsCounter == 6 then
+ AddCaption(loc("LUDICROUS KILL"))
+ PlaySound(sndNutter)
+ elseif killsCounter == 7 then
+ AddCaption(loc("HOLY SHYTE!"))
+ PlaySound(sndLaugh)
+ elseif killsCounter > 8 then
+ AddCaption(loc("INSANITY"))
+ end
+end
+
+function onGameTick()
+
+ if circleFrame > -1 then
+ for i = 0, #hhs do
+ if circles[hhs[i]] ~= nil and hhs[i]~= nil then
+ hhx, hhy = GetGearPosition(hhs[i])
+ X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint = GetVisualGearValues(circles[hhs[i]])
+ SetVisualGearValues(circles[hhs[i]], hhx + 1, hhy - 3, 0, 0, 0, 0, 0, 40 - (circleFrame % 25), Timer, Tint)
+ end
+ end
+
+ circleFrame = circleFrame + 0.06
+
+ if circleFrame >= 25 then
+ for i = 0, #hhs do
+ if circles[hhs[i]] ~= nil then
+ DeleteVisualGear(circles[hhs[i]])
+ circles[hhs[i]] = nil
+ end
+ end
+ end
+ end
+
+ if TurnTimeLeft==0 and mt_hurt then
+ mt_hurt = false
+ end
+
+ if mt_hurt and mutant~=nil then
+ timer = timer + 1
+ if timer > disease_timer then
+ timer = 0
+ SetHealth(mutant, GetHealth(mutant)-disease )
+ AddVisualGear(GetX(mutant), GetY(mutant)-5, vgtHealthTag, disease, true)
+ if GetHealth(mutant)<=0 then
+ SetHealth(mutant,0)
+ mt_hurt= false
+ setGearValue(mutant,"SelfDestruct",true)
+ TurnTimeLeft = 0
+ end
+ end
+ end
+
+end
+
+function saveStuff(gear)
+ setGearValue(gear,"Name",GetHogName(gear))
+ setGearValue(gear,"Hat",GetHogHat(gear))
+end
+
+function armageddon(gear)
+ SetState(gear, gstLoser)
+ SetEffect(gear, heResurrectable, false)
+ SetHealth(gear, 0)
+end
+
+function updateScore()
+
+ local showScore = ""
+
+ for i=0, TeamsCount-1 do
+ if teams[i]~= nil then
+
+ local curr_score = getTeamValue(teams[i], "Score")
+ showScore = showScore .. teams[i] .. ": " .. curr_score .. " (deaths: " .. getTeamValue(teams[i], "DeadHogs") .. ") " .. "|"
+
+ end
+ end
+
+ ShowMission(loc("Score"),
+ "-------",
+ showScore, 0, 200)
+
+ HideMission()
+
+end
+
+function checkScore()
+local showScore = ""
+local lowest_score_team = nil
+local min_score=nil
+local winTeam = nil
+
+local only_low_score = true
+
+ for i=0, TeamsCount-1 do
+ if teams[i]~=nil then
+ local curr_score = getTeamValue(teams[i], "Score")
+
+ runOnHogsInTeam(removeFeeder, teams[i])
+
+ showScore = showScore .. teams[i] ..": " .. curr_score .. " (deaths: " .. getTeamValue(teams[i], "DeadHogs") .. ") " .. "|"
+
+ if curr_score >= winScore then
+ gameOver = true
+ winTeam = teams[i]
+ end
+
+ if min_score==nil then
+ min_score= curr_score
+ lowest_score_team = teams[i]
+ else
+ if curr_score <= min_score then
+ if curr_score == min_score then
+ if getTeamValue(teams[i], "DeadHogs") == getTeamValue(lowest_score_team, "DeadHogs") then
+ only_low_score = false
+ else
+ if getTeamValue(teams[i], "DeadHogs") > getTeamValue(lowest_score_team, "DeadHogs") then
+ lowest_score_team = teams[i]
+ end
+ only_low_score = true
+ end
+
+ else
+ min_score= curr_score
+ lowest_score_team = teams[i]
+ only_low_score = true
+ end
+ end
+ end
+ end
+ end
+
+ if gameOver then
+ TurnTimeLeft = 0
+ for i=0, #teams do
+ if teams[i]~=winTeam then
+ runOnHogsInTeam(armageddon, teams[i])
+ end
+ end
+
+ ShowMission( loc("WINNER IS ") .. winTeam,
+ "~~~~~~~~~~~~~~~~~~~~~~~~~",
+ showScore, 0, 200)
+ else
+
+ if only_low_score then
+ runOnHogsInTeam(setFeeder, lowest_score_team)
+ end
+
+ if meh == false then
+ meh = true
+ else
+ ShowMission( loc("Score"),
+ loc("-------"),
+ showScore, 0, 200)
+ end
+
+ end
+end
+
+function backToNormal(gear)
+ SetHogName(gear, getGearValue(gear,"Name"))
+ SetHogHat(gear, 'NoHat')
+ SetHogHat(gear, getGearValue(gear,"Hat"))
+ setGearValue(mutant,"SelfDestruct",false)
+ mt_hurt=false
+ mutant=nil
+end
+
+function setAIHints()
+ for i = 0, #hhs do
+ if mutant == nil or hhs[i] == mutant or CurrentHedgehog == mutant then
+ SetGearAIHints(hhs[i], aihUsual)
+ else
+ SetGearAIHints(hhs[i], aihDoesntMatter)
+ end
+ end
+end
+
+function removeFeeder(gear)
+ if gear~=nil then
+ setGearValue(gear,"Feeder",false)
+ if gear~= mutant then
+ SetHogName(gear, getGearValue(gear,"Name") )
+ SetHogHat(gear, 'NoHat')
+ SetHogHat(gear, getGearValue(gear,"Hat"))
+ end
+ end
+end
+
+function setFeeder(gear)
+ if gear~= mutant and gear~= nil then
+ SetHogName(gear,"BOTTOM FEEDER")
+ SetHogHat(gear, 'poke_slowpoke')
+ setGearValue(gear,"Feeder", true)
+ end
+end
+
+function setMutantStuff(gear)
+ mutant = gear
+
+ SetHogName(gear,"MUTANT")
+ SetHogHat(gear,'WhySoSerious')
+ SetHealth(gear, ( mutant_base_health + numhhs*25) )
+ SetEffect(gear, hePoisoned, 1)
+ setGearValue(mutant,"SelfDestruct",false)
+ setGearValue(gear, "Feeder", false)
+
+ AddCaption(getGearValue(gear, "Name") .. loc(" HAS MUTATED"))
+
+ TurnTimeLeft=0
+
+ AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
+ AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
+ AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
+ AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
+ AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
+ PlaySound(sndSuddenDeath)
+end
+
+function teamScan()
+
+ for i=0, TeamsCount-1 do --nil filling
+ teams[i]=nil
+ end
+
+ for i=0, #hhs do
+ for j=0, TeamsCount-1 do
+ if teams[j] ==nil and hhs[i]~=nil then
+ teams[j] = GetHogTeamName(hhs[i])
+ setTeamValue(teams[j],"Score",0)
+ setTeamValue(teams[j], "DeadHogs",0)
+ break
+ end
+
+ if teams[j] == GetHogTeamName(hhs[i]) then
+ break
+ end
+ end
+ end
+
+ ---***---
+end
+
+function set_Mutant_and_Score(gear)
+
+local curr_team = GetHogTeamName(CurrentHedgehog)
+
+ if gear == CurrentHedgehog then
+ if CurrentHedgehog == mutant then
+ PlaySound(sndHomerun)
+ if getGearValue(gear, "SelfDestruct")==false then
+ decreaseTeamValue(curr_team,"Score")
+ end
+ backToNormal(gear)
+ else
+ decreaseTeamValue(curr_team,"Score")
+ end
+
+ else
+ if gear == mutant then
+ backToNormal(mutant)
+ if curr_team ~=GetHogTeamName(gear) then
+ if getGearValue(CurrentHedgehog, "Alive") then
+ setMutantStuff(CurrentHedgehog)
+ setTeamValue(curr_team,"Score",(getTeamValue(curr_team,"Score") + mutant_kill_reward))
+ end
+ else
+ setTeamValue(curr_team,"Score",(getTeamValue(curr_team,"Score") - team_fire_punishment))
+ end
+ else
+ if mutant==nil then
+ if curr_team ~=GetHogTeamName(gear) then
+ if getGearValue(CurrentHedgehog, "Alive") then
+ setMutantStuff(CurrentHedgehog)
+ setTeamValue(curr_team,"Score",(getTeamValue(curr_team,"Score") + mutant_kill_reward))
+ else
+ increaseTeamValue(curr_team,"Score")
+ end
+ else
+ setTeamValue(curr_team,"Score",(getTeamValue(curr_team,"Score") - team_fire_punishment))
+ end
+ else
+ if curr_team ~=GetHogTeamName(gear) then
+ if CurrentHedgehog==mutant and getGearValue(mutant,"SelfDestruct")==false then
+ SetHealth(CurrentHedgehog, GetHealth(CurrentHedgehog)+kill_reward)
+ AddCaption("+" .. kill_reward .. loc(" HP") )
+ increaseTeamValue(curr_team,"Score")
+ end
+ if getGearValue(CurrentHedgehog,"Feeder") then
+ increaseTeamValue(curr_team,"Score")
+ end
+ else
+ setTeamValue(curr_team,"Score",(getTeamValue(curr_team,"Score") - team_fire_punishment))
+ end
+ end
+ end
+ end
+end
+
+function onGearResurrect(gear)
+if not gameOver then
+ if GetGearType(gear) == gtHedgehog then
+
+ increaseTeamValue(GetHogTeamName(gear), "DeadHogs")
+
+ if gear==CurrentHedgehog then
+ setGearValue(CurrentHedgehog, "Alive", false)
+ end
+ set_Mutant_and_Score(gear)
+ if gear~=CurrentHedgehog then
+ killsCounter = killsCounter + 1
+ countBodies()
+ end
+ AddVisualGear(GetX(gear), GetY(gear), vgtSmokeRing, 0, false)
+ PlaySound(sndWhack)
+ updateScore()
+ end
+end
+end
+
+function onGearAdd(gear)
+
+ -- Catch hedgehogs for the tracker
+ if GetGearType(gear) == gtHedgehog then
+ trackGear(gear)
+ hhs[numhhs] = gear
+ numhhs = numhhs + 1
+ SetEffect(gear, heResurrectable, 1)
+ end
+end
+
+function checkEmptyTeam (teamName)
+ for i=0 , #hhs do
+ if hhs[i]~=nil then
+ if teamName == GetHogTeamName(hhs[i]) then
+ return false
+ end
+ end
+ end
+ return true
+end
+
+function onGearDelete(gear)
+ -- Remove hogs that are gone
+ if GetGearType(gear) == gtHedgehog then
+ numhhs = numhhs - 1
+
+ local found
+ for i=0, #hhs do
+ if hhs[i] == gear then
+ found = i
+ break
+ end
+ end
+ for i = found, #hhs - 1 do
+ hhs[i] = hhs[i + 1]
+ end
+ hhs[#hhs] = nil
+
+ local t_name = GetHogTeamName(gear)
+ if checkEmptyTeam(t_name) then
+ for i = 0, TeamsCount - 1 do
+ if teams[i] == t_name then
+ found = i
+ break
+ end
+ end
+ for i = found, TeamsCount - 2 do
+ teams[i] = teams[i + 1]
+ end
+ teams[TeamsCount - 1] = nil
+ TeamsCount = TeamsCount - 1
+ end
+ AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false)
+ trackDeletion(gear)
+ end
+end
+
+--[[
+S T A R R I N G
+ prof - Coding, implementing and evangelism
+ vos - Initial idea and script improvements
+ mikade - Moving the `how to play` into the game so that people know `how to play`, and whitespace :D
+--]]
--- a/share/hedgewars/Data/Scripts/Multiplayer/Racer.lua Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Racer.lua Tue Jun 04 22:28:12 2013 +0200
@@ -1,700 +1,706 @@
-
-------------------------------------------
--- RACER 0.5
--- map-independant racing script
--- by mikade
------------------------------------------
-
------------------------------------
---0.1: took all the code from crazy racer and scrapped most of it
------------------------------------
-
--- Removed tumbler system
--- Removed extra adds like boosters etc
--- Added experimental waypoint placement system
--- More user feedback
--- Reduced race complexity limit to 5 waypoints
--- stop placement at complexity limit reached and end turn
--- guys dont keep racing after dying
--- invulnerable feasibility
--- reverted time keeping method
--- reduced feedback display time
--- colour-coded addcaptions
--- cleaned up code
--- support for more players properly added
--- tardis fix
--- remove airstrikes
-
--- i think the remainder 0 .456 sec of the tracktime isnt getting reset on newturn
-
--- update feedback
-
--------
--- 0.2
--------
-
--- allow gameflags
--- extend time to 90s
--- remove other air-attack based weps
--- turn off water rise for sd
-
--------
--- 0.3
--------
-
--- prevent WP being placed in land
--- prevent waypoints being placed outside border
-
--------
--- 0.4
--------
-
--- update user feedback
--- add more sounds
-
--------
--- 0.5
--------
-
--- fix ghost disappearing if hog falls in water or somehow dies
--- lengthen ghost tracking interval to improve performance on slower machines
--- increase waypoint limit to 8
--- allow for persistent showmission information
-
------------------------------
--- SCRIPT BEGINS
------------------------------
-
-HedgewarsScriptLoad("/Scripts/Locale.lua")
-
-------------------
--- Got Variables?
-------------------
-
-local fMod = 1000000 -- 1
-local roundLimit = 3
-local roundNumber = 0
-local firstClan = 10
-
-local fastX = {}
-local fastY = {}
-local fastCount = 0
-local fastIndex = 0
-local fastColour
-
-local currX = {}
-local currY = {}
-local currCount = 0
-
---------------------------
--- hog and team tracking variales
---------------------------
-
-local numhhs = 0 -- store number of hedgehogs
-local hhs = {} -- store hedgehog gears
-
-local numTeams -- store the number of teams in the game
-local teamNameArr = {} -- store the list of teams
-local teamClan = {}
-local teamSize = {} -- store how many hogs per team
-local teamIndex = {} -- at what point in the hhs{} does each team begin
-
-local teamComment = {}
-local teamScore = {}
-
--------
--- racer vars
---------
-
-local cGear = nil
-
-local bestClan = nil
-local bestTime = nil
-
-local gameBegun = false
-local gameOver = false
-local racerActive = false
-local trackTime = 0
-
-local wpCirc = {}
-local wpX = {}
-local wpY = {}
-local wpCol = {}
-local wpActive = {}
-local wpRad = 450 --75
-local wpCount = 0
-local wpLimit = 8
-
-local roundN
-local lastRound
-local RoundHasChanged
-
--------------------
--- general methods
--------------------
-
-function RebuildTeamInfo()
-
-
- -- make a list of individual team names
- for i = 0, (TeamsCount-1) do
- teamNameArr[i] = " " -- = i
- teamSize[i] = 0
- teamIndex[i] = 0
- teamScore[i] = 100000
- end
- numTeams = 0
-
- for i = 0, (numhhs-1) do
-
- z = 0
- unfinished = true
- while(unfinished == true) do
-
- newTeam = true
- tempHogTeamName = GetHogTeamName(hhs[i]) -- this is the new name
-
- if tempHogTeamName == teamNameArr[z] then
- newTeam = false
- unfinished = false
- end
-
- z = z + 1
-
- if z == TeamsCount then
- unfinished = false
- if newTeam == true then
- teamNameArr[numTeams] = tempHogTeamName
- numTeams = numTeams + 1
- end
- end
-
- end
-
- end
-
- -- find out how many hogs per team, and the index of the first hog in hhs
- for i = 0, (numTeams-1) do
- for z = 0, (numhhs-1) do
- if GetHogTeamName(hhs[z]) == teamNameArr[i] then
- teamClan[i] = GetHogClan(hhs[z])
- if teamSize[i] == 0 then
- teamIndex[i] = z -- should give starting index
- end
- teamSize[i] = teamSize[i] + 1
- --add a pointer so this hog appears at i in hhs
- end
- end
-
- end
-
-end
-
-
------------------
--- RACER METHODS
------------------
-
-function CheckWaypoints()
-
- trackFinished = true
-
- for i = 0, (wpCount-1) do
-
- g1X, g1Y = GetGearPosition(CurrentHedgehog)
- g2X, g2Y = wpX[i], wpY[i]
-
- g1X = g1X - g2X
- g1Y = g1Y - g2Y
- dist = (g1X*g1X) + (g1Y*g1Y)
-
- --if i == 0 then
- -- AddCaption(dist .. "/" .. (wpRad*wpRad) )
- --end
-
- NR = (48/100*wpRad)/2
-
- if dist < (NR*NR) then
- --if dist < (wpRad*wpRad) then
- --AddCaption("howdy")
- wpActive[i] = true
- wpCol[i] = GetClanColor(GetHogClan(CurrentHedgehog)) -- new --GetClanColor(1)
- SetVisualGearValues(wpCirc[i], wpX[i], wpY[i], 20, 100, 1, 10, 0, wpRad, 5, wpCol[i])
-
- wpRem = 0
- for k = 0, (wpCount-1) do
- if wpActive[k] == false then
- wpRem = wpRem + 1
- end
- end
-
- AddCaption(loc("Way-Points Remaining") .. ": " .. wpRem,0xffba00ff,capgrpAmmoinfo)
-
- end
-
- if wpActive[i] == false then
- trackFinished = false
- end
-
- end
-
- return(trackFinished)
-
-end
-
-function AdjustScores()
-
- if bestTime == nil then
- bestTime = 100000
- bestClan = 10
- bestTimeComment = "N/A"
- end
-
- newScore = false
-
- -- update this clan's time if the new track is better
- for i = 0, (numTeams-1) do
- if teamClan[i] == GetHogClan(CurrentHedgehog) then
- if trackTime < teamScore[i] then
- teamScore[i] = trackTime
- newScore = true
- else
- newScore = false
- end
- end
- end
-
- --bestTime = 100000
- --bestClan = 10
-
- -- find the best time out of those so far
- for i = 0, (numTeams-1) do
- if teamScore[i] < bestTime then
- bestTime = teamScore[i]
- bestClan = teamClan[i]
- end
- end
-
- if bestTime ~= 100000 then
- bestTimeComment = (bestTime/1000) ..loc("s")
- end
-
- if newScore == true then
- if trackTime == bestTime then -- best time of the race
- ShowMission(loc("RACER"),
- loc("TRACK COMPLETED"),
- loc("NEW RACE RECORD: ") .. (trackTime/1000) ..loc("s") .. "|" ..
- loc("WINNING TIME: ") .. bestTimeComment, 0, 4000)
- PlaySound(sndHomerun)
- else -- best time for the clan
- ShowMission(loc("RACER"),
- loc("TRACK COMPLETED"),
- loc("NEW CLAN RECORD: ") .. (trackTime/1000) ..loc("s") .. "|" ..
- loc("WINNING TIME: ") .. bestTimeComment, 4, 4000)
- end
- else -- not any kind of new score
- ShowMission(loc("RACER"),
- loc("TRACK COMPLETED"),
- loc("TIME: ") .. (trackTime/1000) ..loc("s") .. "|" ..
- loc("WINNING TIME: ") .. bestTimeComment, -amSkip, 4000)
- PlaySound(sndHellish)
- end
-
-
- --------
- --new
- --------
-
- if bestTime == trackTime then
- --AddCaption("wooooooooooooooooooooooooooooo")
-
- fastColour = GetClanColor(GetHogClan(CurrentHedgehog))
-
- for i = 0, (currCount-1) do
- fastX[i] = currX[i]
- fastY[i] = currY[i]
- end
-
- fastCount = currCount
- fastIndex = 0
-
- --currCount = 0 -- is this needed?
-
- else
- currCount = 0
- fastIndex = 0
- end
-
-
-end
-
-function onNewRound()
-
- roundNumber = roundNumber + 1
-
- totalComment = ""
- for i = 0, (TeamsCount-1) do
- if teamNameArr[i] ~= " " then -- teamScore[teamClan[i]]
- teamComment[i] = teamNameArr[i] .. ": " .. (teamScore[i]/1000) .. loc("s|")
- totalComment = totalComment .. teamComment[i]
- elseif teamNameArr[i] == " " then
- teamComment[i] = "|"
- end
- end
-
- ShowMission( loc("RACER"),
- loc("STATUS UPDATE"),
- loc("Rounds Complete: ") .. roundNumber .. "/" .. roundLimit .. "|" .. " " .. "|" ..
- loc("Best Team Times: ") .. "|" .. totalComment, 0, 4000)
-
- -- end game if its at round limit
- if roundNumber == roundLimit then
- for i = 0, (numhhs-1) do
- if GetHogClan(hhs[i]) ~= bestClan then
- SetEffect(hhs[i], heResurrectable, 0)
- SetHealth(hhs[i],0)
- end
- end
- gameOver = true
- TurnTimeLeft = 1
- end
-
-end
-
-function CheckForNewRound()
-
- -------------
- ------ new
- -------------
-
- --[[turnN = turnN + 1
- if gameBegun == false then
- if turnN == 2 then
- for i = 0, (numhhs-1) do
- if hhs[i] ~= nil then
- SetEffect(hhs[i], heResurrectable, 0)
- SetHealth(hhs[i],0)
- end
- end
- gameOver = true
- TurnTimeLeft = 1
- end
- else
-
-
- end]]
-
- --[[if roundBegun == true then
-
- if RoundHasChanged == true then
- roundN = roundN + 1
- RoundHasChanged = false
- onNewRound()
- end
-
- if lastRound ~= TotalRounds then -- new round, but not really
-
- if RoundHasChanged == false then
- RoundHasChanged = true
- end
-
- end
-
- AddCaption("RoundN:" .. roundN .. "; " .. "TR: " .. TotalRounds)
-
- lastRound = TotalRounds
-
- end]]
-
- ------------
- ----- old
- ------------
-
- if GetHogClan(CurrentHedgehog) == firstClan then
- onNewRound()
- end
-
-end
-
-function DisableTumbler()
- currCount = 0
- fastIndex = 0
- TurnTimeLeft = 0
- racerActive = false -- newadd
-end
-
-function HandleGhost()
-
- -- get the current xy of the racer at this point
- currX[currCount] = GetX(CurrentHedgehog)
- currY[currCount] = GetY(CurrentHedgehog)
- currCount = currCount + 1
-
- -- draw a ping of smoke where the fastest player was at this point
- if (fastCount ~= 0) and (fastIndex < fastCount) then
-
- fastIndex = fastIndex + 1
-
- tempE = AddVisualGear(fastX[fastIndex], fastY[fastIndex], vgtSmoke, 0, false)
- g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE)
- SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, fastColour )
-
- --AddCaption("fC: " .. fastIndex .. " / " .. fastCount)
-
- else
-
- --AddCaption("excep fC: " .. fastIndex .. " / " .. fastCount)
-
- end
-
-
-
-end
-
-----------------------------------
--- GAME METHODS / EVENT HANDLERS
-----------------------------------
-
-function onGameInit()
- GameFlags = GameFlags + gfInfAttack + gfInvulnerable
- CaseFreq = 0
- TurnTime = 90000
- WaterRise = 0
-end
-
-
-function onGameStart()
-
- roundN = 0
- lastRound = TotalRounds
- RoundHasChanged = false -- true
-
- RebuildTeamInfo()
-
- ShowMission (
- loc("RACER"),
- loc("a Hedgewars mini-game"),
-
- loc("Build a track and race.") .. "|" ..
- loc("Round Limit:") .. " " .. roundLimit .. "|" ..
-
- "", 4, 4000
- )
-end
-
-function PlaceWayPoint(x,y)
-
- if (wpCount < wpLimit) then -- seems to not work with a hedgehog nil chek
-
- wpX[wpCount] = x
- wpY[wpCount] = y
- wpCol[wpCount] = 0xffffffff
- wpCirc[wpCount] = AddVisualGear(wpX[wpCount],wpY[wpCount],vgtCircle,0,true)
- --100
- SetVisualGearValues(wpCirc[wpCount], wpX[wpCount], wpY[wpCount], 20, 100, 1, 10, 0, wpRad, 5, wpCol[wpCount])
-
- wpCount = wpCount + 1
-
- AddCaption(loc("Waypoint placed.") .. " " .. loc("Available points remaining: ") .. (wpLimit-wpCount))
-
- end
-
-end
-
-function onNewTurn()
-
- CheckForNewRound()
-
- racerActive = false
-
- trackTime = 0
-
- currCount = 0 -- hopefully this solves problem
- AddAmmo(CurrentHedgehog, amAirAttack, 0)
- gTimer = 0
-
- -- Set the waypoints to unactive on new round
- for i = 0,(wpCount-1) do
- wpActive[i] = false
- wpCol[i] = 0xffffffff
- SetVisualGearValues(wpCirc[i], wpX[i], wpY[i], 20, 100, 1, 10, 0, wpRad, 5, wpCol[i])
- end
-
- -- Handle Starting Stage of Game
- if (gameOver == false) and (gameBegun == false) then
- if wpCount >= 3 then
- gameBegun = true
- roundNumber = 0
- firstClan = GetHogClan(CurrentHedgehog)
- ShowMission(loc("RACER"),
- loc("GAME BEGUN!!!"),
- loc("Complete the track as fast as you can!"), 2, 4000)
- else
- ShowMission(loc("RACER"),
- loc("NOT ENOUGH WAYPOINTS"),
- loc("Place more waypoints using the 'Air Attack' weapon."), 2, 4000)
- AddAmmo(CurrentHedgehog, amAirAttack, 4000)
- ParseCommand("setweap " .. string.char(amAirAttack))
- end
- end
-
- if gameOver == true then
- gameBegun = false
- racerActive = false -- newadd
- end
-
- AddAmmo(CurrentHedgehog, amTardis, 0)
- AddAmmo(CurrentHedgehog, amDrillStrike, 0)
- AddAmmo(CurrentHedgehog, amMineStrike, 0)
- AddAmmo(CurrentHedgehog, amNapalm, 0)
- AddAmmo(CurrentHedgehog, amPiano, 0)
-
-end
-
-function onGameTick20()
-
- -- airstrike detected, convert this into a potential waypoint spot
- if cGear ~= nil then
- x,y = GetGearPosition(cGear)
- if x > -9000 then
- x,y = GetGearTarget(cGear)
-
-
- if TestRectForObstacle(x-20, y-20, x+20, y+20, true) then
- AddCaption(loc("Please place the way-point in the open, within the map boundaries."))
- PlaySound(sndDenied)
- elseif (y > WaterLine-50) then
- AddCaption(loc("Please place the way-point further from the waterline."))
- PlaySound(sndDenied)
- else
- PlaceWayPoint(x, y)
- if wpCount == wpLimit then
- AddCaption(loc("Race complexity limit reached."))
- DisableTumbler()
- end
- end
- else
- DeleteGear(cGear)
- end
- SetGearPosition(cGear, -10000, 0)
- end
-
-
- -- start the player tumbling with a boom once their turn has actually begun
- if racerActive == false then
-
- if (TurnTimeLeft > 0) and (TurnTimeLeft ~= TurnTime) then
-
- -- if the gamehas started put the player in the middle of the first
- --waypoint that was placed
- if gameBegun == true then
- AddCaption(loc("Good to go!"))
- racerActive = true
- trackTime = 0
-
- SetGearPosition(CurrentHedgehog, wpX[0], wpY[0])
- AddGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), gtGrenade, 0, 0, 0, 1)
- FollowGear(CurrentHedgehog)
-
- HideMission()
-
- else
- -- still in placement mode
- end
-
- end
- end
-
-
-
- -- has the player started his tumbling spree?
- if (CurrentHedgehog ~= nil) then
-
- --airstrike conversion used to be here
-
- -- if the RACE has started, show tracktimes and keep tabs on waypoints
- if (racerActive == true) and (gameBegun == true) then
-
- --ghost
- if GameTime%40 == 0 then
- HandleGhost()
- end
-
- trackTime = trackTime + 20
-
- if GameTime%100 == 0 then
-
- if trackTime%1000 == 0 then
- AddCaption((trackTime/1000)..'.0',GetClanColor(GetHogClan(CurrentHedgehog)),capgrpMessage2)
- else
- AddCaption(trackTime/1000,GetClanColor(GetHogClan(CurrentHedgehog)),capgrpMessage2)
- end
-
- if (CheckWaypoints() == true) then
- AdjustScores()
- racerActive = false
- DisableTumbler()
- end
-
- end
-
- end
-
-
-
- -- if the player has expended his tunbling time, stop him tumbling
- if TurnTimeLeft <= 20 then
- DisableTumbler()
- end
-
- end
-
-end
-
-function onGearResurrect(gear)
-
- AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false)
-
- if gear == CurrentHedgehog then
- DisableTumbler()
- end
-
- -- if the player stops and "dies" or flies into water, stop him racing
- --[[if gear == CurrentHedgehog then
- DisableTumbler()
- ShowMission(loc("RACER"),
- loc("TRACK FAILED!"),
- loc("WINNING TIME: ") .. bestTimeComment, -amSkip, 4000)
- end]]
-
-end
-
-function onGearAdd(gear)
-
- if GetGearType(gear) == gtHedgehog then
- hhs[numhhs] = gear
- numhhs = numhhs + 1
- SetEffect(gear, heResurrectable, 1)
- end
-
- if GetGearType(gear) == gtAirAttack then
- cGear = gear
- end
-
-end
-
-function onGearDelete(gear)
-
- if GetGearType(gear) == gtAirAttack then
- cGear = nil
- end
-
-end
-
---[[function onAmmoStoreInit()
- SetAmmo(amRope, 9, 0, 0, 0)
- SetAmmo(amJetpack, 9, 0, 0, 0)
- SetAmmo(amSkip, 9, 0, 0, 0)
-end]]
-
-
+
+------------------------------------------
+-- RACER 0.6
+-- map-independant racing script
+-- by mikade
+-----------------------------------------
+
+-----------------------------------
+--0.1: took all the code from crazy racer and scrapped most of it
+-----------------------------------
+
+-- Removed tumbler system
+-- Removed extra adds like boosters etc
+-- Added experimental waypoint placement system
+-- More user feedback
+-- Reduced race complexity limit to 5 waypoints
+-- stop placement at complexity limit reached and end turn
+-- guys dont keep racing after dying
+-- invulnerable feasibility
+-- reverted time keeping method
+-- reduced feedback display time
+-- colour-coded addcaptions
+-- cleaned up code
+-- support for more players properly added
+-- tardis fix
+-- remove airstrikes
+
+-- i think the remainder 0 .456 sec of the tracktime isnt getting reset on newturn
+
+-- update feedback
+
+-------
+-- 0.2
+-------
+
+-- allow gameflags
+-- extend time to 90s
+-- remove other air-attack based weps
+-- turn off water rise for sd
+
+-------
+-- 0.3
+-------
+
+-- prevent WP being placed in land
+-- prevent waypoints being placed outside border
+
+-------
+-- 0.4
+-------
+
+-- update user feedback
+-- add more sounds
+
+-------
+-- 0.5
+-------
+
+-- fix ghost disappearing if hog falls in water or somehow dies
+-- lengthen ghost tracking interval to improve performance on slower machines
+-- increase waypoint limit to 8
+-- allow for persistent showmission information
+
+-------
+-- 0.6
+-------
+
+-- remove hogs from racing area as per request
+
+-----------------------------
+-- SCRIPT BEGINS
+-----------------------------
+
+HedgewarsScriptLoad("/Scripts/Locale.lua")
+
+------------------
+-- Got Variables?
+------------------
+
+local fMod = 1000000 -- 1
+local roundLimit = 3
+local roundNumber = 0
+local firstClan = 10
+
+local fastX = {}
+local fastY = {}
+local fastCount = 0
+local fastIndex = 0
+local fastColour
+
+local currX = {}
+local currY = {}
+local currCount = 0
+
+--------------------------
+-- hog and team tracking variales
+--------------------------
+
+local numhhs = 0 -- store number of hedgehogs
+local hhs = {} -- store hedgehog gears
+
+local numTeams -- store the number of teams in the game
+local teamNameArr = {} -- store the list of teams
+local teamClan = {}
+local teamSize = {} -- store how many hogs per team
+local teamIndex = {} -- at what point in the hhs{} does each team begin
+
+local teamComment = {}
+local teamScore = {}
+
+-------
+-- racer vars
+--------
+
+local cGear = nil
+
+local bestClan = nil
+local bestTime = nil
+
+local gameBegun = false
+local gameOver = false
+local racerActive = false
+local trackTime = 0
+
+local wpCirc = {}
+local wpX = {}
+local wpY = {}
+local wpCol = {}
+local wpActive = {}
+local wpRad = 450 --75
+local wpCount = 0
+local wpLimit = 8
+
+local roundN
+local lastRound
+local RoundHasChanged
+
+-------------------
+-- general methods
+-------------------
+
+function RebuildTeamInfo()
+
+
+ -- make a list of individual team names
+ for i = 0, (TeamsCount-1) do
+ teamNameArr[i] = " " -- = i
+ teamSize[i] = 0
+ teamIndex[i] = 0
+ teamScore[i] = 100000
+ end
+ numTeams = 0
+
+ for i = 0, (numhhs-1) do
+
+ z = 0
+ unfinished = true
+ while(unfinished == true) do
+
+ newTeam = true
+ tempHogTeamName = GetHogTeamName(hhs[i]) -- this is the new name
+
+ if tempHogTeamName == teamNameArr[z] then
+ newTeam = false
+ unfinished = false
+ end
+
+ z = z + 1
+
+ if z == TeamsCount then
+ unfinished = false
+ if newTeam == true then
+ teamNameArr[numTeams] = tempHogTeamName
+ numTeams = numTeams + 1
+ end
+ end
+
+ end
+
+ end
+
+ -- find out how many hogs per team, and the index of the first hog in hhs
+ for i = 0, (numTeams-1) do
+ for z = 0, (numhhs-1) do
+ if GetHogTeamName(hhs[z]) == teamNameArr[i] then
+ teamClan[i] = GetHogClan(hhs[z])
+ if teamSize[i] == 0 then
+ teamIndex[i] = z -- should give starting index
+ end
+ teamSize[i] = teamSize[i] + 1
+ --add a pointer so this hog appears at i in hhs
+ end
+ end
+
+ end
+
+end
+
+
+-----------------
+-- RACER METHODS
+-----------------
+
+function CheckWaypoints()
+
+ trackFinished = true
+
+ for i = 0, (wpCount-1) do
+
+ g1X, g1Y = GetGearPosition(CurrentHedgehog)
+ g2X, g2Y = wpX[i], wpY[i]
+
+ g1X = g1X - g2X
+ g1Y = g1Y - g2Y
+ dist = (g1X*g1X) + (g1Y*g1Y)
+
+ --if i == 0 then
+ -- AddCaption(dist .. "/" .. (wpRad*wpRad) )
+ --end
+
+ NR = (48/100*wpRad)/2
+
+ if dist < (NR*NR) then
+ --if dist < (wpRad*wpRad) then
+ --AddCaption("howdy")
+ wpActive[i] = true
+ wpCol[i] = GetClanColor(GetHogClan(CurrentHedgehog)) -- new --GetClanColor(1)
+ SetVisualGearValues(wpCirc[i], wpX[i], wpY[i], 20, 100, 1, 10, 0, wpRad, 5, wpCol[i])
+
+ wpRem = 0
+ for k = 0, (wpCount-1) do
+ if wpActive[k] == false then
+ wpRem = wpRem + 1
+ end
+ end
+
+ AddCaption(loc("Way-Points Remaining") .. ": " .. wpRem,0xffba00ff,capgrpAmmoinfo)
+
+ end
+
+ if wpActive[i] == false then
+ trackFinished = false
+ end
+
+ end
+
+ return(trackFinished)
+
+end
+
+function AdjustScores()
+
+ if bestTime == nil then
+ bestTime = 100000
+ bestClan = 10
+ bestTimeComment = "N/A"
+ end
+
+ newScore = false
+
+ -- update this clan's time if the new track is better
+ for i = 0, (numTeams-1) do
+ if teamClan[i] == GetHogClan(CurrentHedgehog) then
+ if trackTime < teamScore[i] then
+ teamScore[i] = trackTime
+ newScore = true
+ else
+ newScore = false
+ end
+ end
+ end
+
+ --bestTime = 100000
+ --bestClan = 10
+
+ -- find the best time out of those so far
+ for i = 0, (numTeams-1) do
+ if teamScore[i] < bestTime then
+ bestTime = teamScore[i]
+ bestClan = teamClan[i]
+ end
+ end
+
+ if bestTime ~= 100000 then
+ bestTimeComment = (bestTime/1000) ..loc("s")
+ end
+
+ if newScore == true then
+ if trackTime == bestTime then -- best time of the race
+ ShowMission(loc("RACER"),
+ loc("TRACK COMPLETED"),
+ loc("NEW RACE RECORD: ") .. (trackTime/1000) ..loc("s") .. "|" ..
+ loc("WINNING TIME: ") .. bestTimeComment, 0, 4000)
+ PlaySound(sndHomerun)
+ else -- best time for the clan
+ ShowMission(loc("RACER"),
+ loc("TRACK COMPLETED"),
+ loc("NEW CLAN RECORD: ") .. (trackTime/1000) ..loc("s") .. "|" ..
+ loc("WINNING TIME: ") .. bestTimeComment, 4, 4000)
+ end
+ else -- not any kind of new score
+ ShowMission(loc("RACER"),
+ loc("TRACK COMPLETED"),
+ loc("TIME: ") .. (trackTime/1000) ..loc("s") .. "|" ..
+ loc("WINNING TIME: ") .. bestTimeComment, -amSkip, 4000)
+ PlaySound(sndHellish)
+ end
+
+
+ --------
+ --new
+ --------
+
+ if bestTime == trackTime then
+ --AddCaption("wooooooooooooooooooooooooooooo")
+
+ fastColour = GetClanColor(GetHogClan(CurrentHedgehog))
+
+ for i = 0, (currCount-1) do
+ fastX[i] = currX[i]
+ fastY[i] = currY[i]
+ end
+
+ fastCount = currCount
+ fastIndex = 0
+
+ --currCount = 0 -- is this needed?
+
+ else
+ currCount = 0
+ fastIndex = 0
+ end
+
+
+end
+
+function onNewRound()
+
+ roundNumber = roundNumber + 1
+
+ totalComment = ""
+ for i = 0, (TeamsCount-1) do
+ if teamNameArr[i] ~= " " then -- teamScore[teamClan[i]]
+ teamComment[i] = teamNameArr[i] .. ": " .. (teamScore[i]/1000) .. loc("s|")
+ totalComment = totalComment .. teamComment[i]
+ elseif teamNameArr[i] == " " then
+ teamComment[i] = "|"
+ end
+ end
+
+ ShowMission( loc("RACER"),
+ loc("STATUS UPDATE"),
+ loc("Rounds Complete: ") .. roundNumber .. "/" .. roundLimit .. "|" .. " " .. "|" ..
+ loc("Best Team Times: ") .. "|" .. totalComment, 0, 4000)
+
+ -- end game if its at round limit
+ if roundNumber == roundLimit then
+ for i = 0, (numhhs-1) do
+ if GetHogClan(hhs[i]) ~= bestClan then
+ SetEffect(hhs[i], heResurrectable, 0)
+ SetHealth(hhs[i],0)
+ end
+ end
+ gameOver = true
+ TurnTimeLeft = 1
+ end
+
+end
+
+function CheckForNewRound()
+
+ -------------
+ ------ new
+ -------------
+
+ --[[turnN = turnN + 1
+ if gameBegun == false then
+ if turnN == 2 then
+ for i = 0, (numhhs-1) do
+ if hhs[i] ~= nil then
+ SetEffect(hhs[i], heResurrectable, 0)
+ SetHealth(hhs[i],0)
+ end
+ end
+ gameOver = true
+ TurnTimeLeft = 1
+ end
+ else
+
+
+ end]]
+
+ --[[if roundBegun == true then
+
+ if RoundHasChanged == true then
+ roundN = roundN + 1
+ RoundHasChanged = false
+ onNewRound()
+ end
+
+ if lastRound ~= TotalRounds then -- new round, but not really
+
+ if RoundHasChanged == false then
+ RoundHasChanged = true
+ end
+
+ end
+
+ AddCaption("RoundN:" .. roundN .. "; " .. "TR: " .. TotalRounds)
+
+ lastRound = TotalRounds
+
+ end]]
+
+ ------------
+ ----- old
+ ------------
+
+ if GetHogClan(CurrentHedgehog) == firstClan then
+ onNewRound()
+ end
+
+end
+
+function DisableTumbler()
+ currCount = 0
+ fastIndex = 0
+ TurnTimeLeft = 0
+ racerActive = false -- newadd
+end
+
+function HandleGhost()
+
+ -- get the current xy of the racer at this point
+ currX[currCount] = GetX(CurrentHedgehog)
+ currY[currCount] = GetY(CurrentHedgehog)
+ currCount = currCount + 1
+
+ -- draw a ping of smoke where the fastest player was at this point
+ if (fastCount ~= 0) and (fastIndex < fastCount) then
+
+ fastIndex = fastIndex + 1
+
+ tempE = AddVisualGear(fastX[fastIndex], fastY[fastIndex], vgtSmoke, 0, false)
+ g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE)
+ SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, fastColour )
+
+ --AddCaption("fC: " .. fastIndex .. " / " .. fastCount)
+
+ else
+
+ --AddCaption("excep fC: " .. fastIndex .. " / " .. fastCount)
+
+ end
+
+
+
+end
+
+function TryRepositionHogs()
+
+ if MapHasBorder() == true then
+
+ for i = 0, (numhhs-1) do
+ if hhs[i] ~= nil then
+ SetGearPosition(hhs[i],GetX(hhs[i]), TopY-10)
+ end
+ end
+
+ end
+
+end
+
+----------------------------------
+-- GAME METHODS / EVENT HANDLERS
+----------------------------------
+
+function onGameInit()
+ GameFlags = bor(GameFlags,gfInfAttack + gfInvulnerable)
+ CaseFreq = 0
+ TurnTime = 90000
+ WaterRise = 0
+end
+
+
+function onGameStart()
+
+ roundN = 0
+ lastRound = TotalRounds
+ RoundHasChanged = false -- true
+
+ RebuildTeamInfo()
+
+ ShowMission (
+ loc("RACER"),
+ loc("a Hedgewars mini-game"),
+
+ loc("Build a track and race.") .. "|" ..
+ loc("Round Limit:") .. " " .. roundLimit .. "|" ..
+
+ "", 4, 4000
+ )
+
+ TryRepositionHogs()
+
+end
+
+function PlaceWayPoint(x,y)
+
+ if (wpCount < wpLimit) then -- seems to not work with a hedgehog nil chek
+
+ wpX[wpCount] = x
+ wpY[wpCount] = y
+ wpCol[wpCount] = 0xffffffff
+ wpCirc[wpCount] = AddVisualGear(wpX[wpCount],wpY[wpCount],vgtCircle,0,true)
+ --100
+ SetVisualGearValues(wpCirc[wpCount], wpX[wpCount], wpY[wpCount], 20, 100, 1, 10, 0, wpRad, 5, wpCol[wpCount])
+
+ wpCount = wpCount + 1
+
+ AddCaption(loc("Waypoint placed.") .. " " .. loc("Available points remaining: ") .. (wpLimit-wpCount))
+
+ end
+
+end
+
+function onNewTurn()
+
+ CheckForNewRound()
+ TryRepositionHogs()
+
+ racerActive = false
+
+ trackTime = 0
+
+ currCount = 0 -- hopefully this solves problem
+ AddAmmo(CurrentHedgehog, amAirAttack, 0)
+ gTimer = 0
+
+ -- Set the waypoints to unactive on new round
+ for i = 0,(wpCount-1) do
+ wpActive[i] = false
+ wpCol[i] = 0xffffffff
+ SetVisualGearValues(wpCirc[i], wpX[i], wpY[i], 20, 100, 1, 10, 0, wpRad, 5, wpCol[i])
+ end
+
+ -- Handle Starting Stage of Game
+ if (gameOver == false) and (gameBegun == false) then
+ if wpCount >= 3 then
+ gameBegun = true
+ roundNumber = 0
+ firstClan = GetHogClan(CurrentHedgehog)
+ ShowMission(loc("RACER"),
+ loc("GAME BEGUN!!!"),
+ loc("Complete the track as fast as you can!"), 2, 4000)
+ else
+ ShowMission(loc("RACER"),
+ loc("NOT ENOUGH WAYPOINTS"),
+ loc("Place more waypoints using the 'Air Attack' weapon."), 2, 4000)
+ AddAmmo(CurrentHedgehog, amAirAttack, 4000)
+ ParseCommand("setweap " .. string.char(amAirAttack))
+ end
+ end
+
+ if gameOver == true then
+ gameBegun = false
+ racerActive = false -- newadd
+ end
+
+ AddAmmo(CurrentHedgehog, amTardis, 0)
+ AddAmmo(CurrentHedgehog, amDrillStrike, 0)
+ AddAmmo(CurrentHedgehog, amMineStrike, 0)
+ AddAmmo(CurrentHedgehog, amNapalm, 0)
+ AddAmmo(CurrentHedgehog, amPiano, 0)
+
+end
+
+function onGameTick20()
+
+ -- airstrike detected, convert this into a potential waypoint spot
+ if cGear ~= nil then
+ x,y = GetGearPosition(cGear)
+ if x > -9000 then
+ x,y = GetGearTarget(cGear)
+
+
+ if TestRectForObstacle(x-20, y-20, x+20, y+20, true) then
+ AddCaption(loc("Please place the way-point in the open, within the map boundaries."))
+ PlaySound(sndDenied)
+ elseif (y > WaterLine-50) then
+ AddCaption(loc("Please place the way-point further from the waterline."))
+ PlaySound(sndDenied)
+ else
+ PlaceWayPoint(x, y)
+ if wpCount == wpLimit then
+ AddCaption(loc("Race complexity limit reached."))
+ DisableTumbler()
+ end
+ end
+ else
+ DeleteGear(cGear)
+ end
+ SetGearPosition(cGear, -10000, 0)
+ end
+
+
+ -- start the player tumbling with a boom once their turn has actually begun
+ if racerActive == false then
+
+ if (TurnTimeLeft > 0) and (TurnTimeLeft ~= TurnTime) then
+
+ -- if the gamehas started put the player in the middle of the first
+ --waypoint that was placed
+ if gameBegun == true then
+ AddCaption(loc("Good to go!"))
+ racerActive = true
+ trackTime = 0
+
+ SetGearPosition(CurrentHedgehog, wpX[0], wpY[0])
+ AddGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), gtGrenade, 0, 0, 0, 1)
+ FollowGear(CurrentHedgehog)
+
+ HideMission()
+
+ else
+ -- still in placement mode
+ end
+
+ end
+ end
+
+
+
+ -- has the player started his tumbling spree?
+ if (CurrentHedgehog ~= nil) then
+
+ --airstrike conversion used to be here
+
+ -- if the RACE has started, show tracktimes and keep tabs on waypoints
+ if (racerActive == true) and (gameBegun == true) then
+
+ --ghost
+ if GameTime%40 == 0 then
+ HandleGhost()
+ end
+
+ trackTime = trackTime + 20
+
+ if GameTime%100 == 0 then
+
+ if trackTime%1000 == 0 then
+ AddCaption((trackTime/1000)..'.0',GetClanColor(GetHogClan(CurrentHedgehog)),capgrpMessage2)
+ else
+ AddCaption(trackTime/1000,GetClanColor(GetHogClan(CurrentHedgehog)),capgrpMessage2)
+ end
+
+ if (CheckWaypoints() == true) then
+ AdjustScores()
+ racerActive = false
+ DisableTumbler()
+ end
+
+ end
+
+ end
+
+ -- if the player has expended his tunbling time, stop him tumbling
+ if TurnTimeLeft <= 20 then
+ DisableTumbler()
+ end
+
+ end
+
+end
+
+function onGearResurrect(gear)
+
+ AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false)
+
+ if gear == CurrentHedgehog then
+ DisableTumbler()
+ end
+
+end
+
+function onGearAdd(gear)
+
+ if GetGearType(gear) == gtHedgehog then
+ hhs[numhhs] = gear
+ numhhs = numhhs + 1
+ SetEffect(gear, heResurrectable, 1)
+ end
+
+ if GetGearType(gear) == gtAirAttack then
+ cGear = gear
+ end
+
+end
+
+function onGearDelete(gear)
+
+ if GetGearType(gear) == gtAirAttack then
+ cGear = nil
+ end
+
+end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/ShoppaMap.cfg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,2 @@
+Default
+Default
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/ShoppaMap.lua Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,450 @@
+ObjectList = {}
+PointsBuffer = '' -- A string to accumulate points in
+
+-- Overall padding for roping freedom
+Padding = 430
+
+function AddPoint(x, y, width, erase)
+ PointsBuffer = PointsBuffer .. string.char(band(x,0xff00) / 256 , band(x,0xff) , band(y,0xff00) / 256 , band(y,0xff))
+ if width then
+ width = bor(width,0x80)
+ if erase then
+ width = bor(width,0x40)
+ end
+ PointsBuffer = PointsBuffer .. string.char(width)
+ else
+ PointsBuffer = PointsBuffer .. string.char(0)
+ end
+ if #PointsBuffer > 245 then
+ ParseCommand('draw '..PointsBuffer)
+ PointsBuffer = ''
+ end
+end
+function FlushPoints()
+ if #PointsBuffer > 0 then
+ ParseCommand('draw '..PointsBuffer)
+ PointsBuffer = ''
+ end
+end
+
+-- This could probably use less points and more precision
+-- 700x700 for object space
+function DrawStar(x, y, d, f)
+-- default scale is 700x700 or so
+ s = 700
+ if not(d == 1) then s = div(s,d) end
+ if NoOverlap(x,y,s,s) then
+ AddCollision(x,y,s,s)
+ if not(d == 1) then
+ i = 6-d
+ j = math.min(div(5,d),1)
+ -- centre
+ AddPoint(x,y,div(20,d))
+ -- arms
+ AddPoint(x-div(325,d),y-f*div(108,d),2)
+ AddPoint(x+div(325,d),y-f*div(108,d))
+ AddPoint(x-div(205,d),y+f*div(270,d))
+ AddPoint(x,y-f*div(345,d))
+ AddPoint(x+div(205,d),y+f*div(270,d))
+ AddPoint(x-div(325,d),y-f*div(108,d))
+ if d < 4 then
+ -- fill in arm 1
+ AddPoint(x-div(275,d),y-f*div(92,d),i)
+ AddPoint(x-div(50,d),y-f*div(92,d))
+ AddPoint(x-div(105,d),y+f*div(25,d))
+ AddPoint(x-div(250,d),y-f*div(80,d))
+ AddPoint(x-div(115,d),y-f*div(70,d))
+ AddPoint(x-div(130,d),y-f*div(25,d))
+ AddPoint(x-div(175,d),y-f*div(60,d))
+ -- fill in arm 2
+ AddPoint(x+div(275,d),y-f*div(92,d),i)
+ AddPoint(x+div(50,d),y-f*div(92,d))
+ AddPoint(x+div(105,d),y+f*div(25,d))
+ AddPoint(x+div(250,d),y-f*div(80,d))
+ AddPoint(x+div(115,d),y-f*div(70,d))
+ AddPoint(x+div(130,d),y-f*div(25,d))
+ AddPoint(x+div(175,d),y-f*div(60,d))
+ -- fill in arm 3
+ AddPoint(x-div(175,d),y+f*div(230,d),i)
+ AddPoint(x-div(110,d),y+f*div(60,d))
+ AddPoint(x,y+f*div(120,d))
+ AddPoint(x-div(155,d),y+f*div(215,d))
+ AddPoint(x-div(105,d),y+f*div(95,d))
+ AddPoint(x-div(60,d),y+f*div(130,d))
+ AddPoint(x-div(85,d),y+f*div(155,d),j)
+ -- fill in arm 4
+ AddPoint(x,y-f*div(300,d),3)
+ AddPoint(x+div(50,d),y-f*div(125,d))
+ AddPoint(x-div(50,d),y-f*div(125,d))
+ AddPoint(x,y-f*div(270,d))
+ AddPoint(x-div(40,d),y-f*div(160,d))
+ AddPoint(x+div(40,d),y-f*div(160,d))
+ AddPoint(x,y-f*div(195,d),j)
+ -- fill in arm 5
+ AddPoint(x+div(175,d),y+f*div(230,d),i)
+ AddPoint(x+div(110,d),y+f*div(60,d))
+ AddPoint(x,y+f*div(120,d))
+ AddPoint(x+div(155,d),y+f*div(215,d))
+ AddPoint(x+div(105,d),y+f*div(95,d))
+ AddPoint(x+div(60,d),y+f*div(130,d))
+ AddPoint(x+div(85,d),y+f*div(155,d),j)
+ end
+ else
+ -- centre
+ AddPoint(x,y,20)
+ -- arms
+ AddPoint(x-325,y-f*108,1)
+ AddPoint(x+325,y-f*108)
+ AddPoint(x-205,y+f*270)
+ AddPoint(x,y-f*345)
+ AddPoint(x+205,y+f*270)
+ AddPoint(x-325,y-f*108)
+ -- fill in arm 1
+ AddPoint(x-275,y-f*92,4)
+ AddPoint(x-50,y-f*92)
+ AddPoint(x-105,y+f*25)
+ AddPoint(x-250,y-f*80)
+ AddPoint(x-115,y-f*70)
+ AddPoint(x-130,y-f*25)
+ AddPoint(x-175,y-f*60)
+ -- fill in arm 2
+ AddPoint(x+275,y-f*92,4)
+ AddPoint(x+50,y-f*92)
+ AddPoint(x+105,y+f*25)
+ AddPoint(x+250,y-f*80)
+ AddPoint(x+115,y-f*70)
+ AddPoint(x+130,y-f*25)
+ AddPoint(x+175,y-f*60)
+ -- fill in arm 3
+ AddPoint(x-175,y+f*230,4)
+ AddPoint(x-110,y+f*60)
+ AddPoint(x-10,y+f*120)
+ AddPoint(x-155,y+f*215)
+ AddPoint(x-105,y+f*95)
+ AddPoint(x-60,y+f*130)
+ AddPoint(x-85,y+f*155,5)
+ -- fill in arm 4
+ AddPoint(x,y-f*300,3)
+ AddPoint(x+50,y-f*125)
+ AddPoint(x-50,y-f*125)
+ AddPoint(x,y-f*270)
+ AddPoint(x-40,y-f*160)
+ AddPoint(x+40,y-f*160)
+ AddPoint(x,y-f*195,5)
+ -- fill in arm 5
+ AddPoint(x+175,y+f*230,4)
+ AddPoint(x+110,y+f*60)
+ AddPoint(x+10,y+f*120)
+ AddPoint(x+155,y+f*215)
+ AddPoint(x+105,y+f*95)
+ AddPoint(x+60,y+f*130)
+ AddPoint(x+85,y+f*155,5)
+ end
+ return true
+ else
+ return false
+ end
+end
+
+-- well. this was easy
+function DrawCircle(x, y, w)
+ if NoOverlap(x,y,w*10+6,w*10+6) then
+ AddCollision(x,y,w*10+6,w*10+6)
+ AddPoint(x,y,w)
+ return true
+ else
+ return false
+ end
+end
+
+function DrawCrescent(x, y, w, s)
+ b = div(w*(GetRandom(4)+1)*10+6,6)
+
+ if NoOverlap(x,y,w*10+6,w*10+6) then
+ AddCollision(x,y,w*10+6,w*10+6)
+ AddPoint(x,y,w)
+ if s then -- side
+ if GetRandom(1) == 0 then
+ b = b*-1
+ end
+ AddPoint(x-b,y,w,true)
+ else -- top
+ AddPoint(x,y-b,w,true)
+ end
+ return true
+ else
+ return false
+ end
+end
+
+function DrawCones(x,w,h,c)
+ y = 2048-h
+ hw = div(w,2)
+ if NoOverlap(x+div(w*c,2),y+div(h,2),w*c,h) then
+ AddCollision(x+div(w*c,2),y+div(h,2),w*c,h)
+ x = x + hw
+ for i = 1,c do -- I'm guessing outlining is slightly more efficient than fanning at 16px brush
+ AddPoint(x,y,1)
+ AddPoint(x-hw+8,2048)
+ AddPoint(x+hw-8,2048)
+ AddPoint(x,y)
+ for j = x-hw+25,x+hw,34 do
+ AddPoint(x,y+30,3)
+ AddPoint(j,2048)
+ end
+ if GetRandom(2)==0 then
+ AddPoint(x,y-20,8)
+ end
+ x = x + w
+ end
+ else
+ return false
+ end
+
+end
+
+function DrawPlateau(x,y,l,t,b)
+ if NoOverlapXY(x-28,y-28,x+l+28,y+l+28) then
+ AddPoint(x,y,5)
+ AddPoint(x+l,y)
+
+ to = GetRandom(6)
+ if not(to==0) then
+ if GetRandom(2)==0 then
+ to = div(l,to)
+ else
+ to = l-div(l,to)
+ end
+ end
+ if t>0 and NoOverlapXY(x+to-28,y-t-28,x+to+28,y+28) then
+ AddPoint(x+to,y-t,5)
+ AddPoint(x+to,y)
+ if GetRandom(2)==0 then
+ AddPoint(x+to,y-t+75,20)
+ else -- square off
+ AddPoint(x+to-20,y-t,1)
+ AddPoint(x+to-20,y-t-20)
+ AddPoint(x+to+20,y-t-20)
+ AddPoint(x+to+20,y-t)
+ end
+ tSucc = true
+ end
+
+ if to > 120 and GetRandom(2)==0 then -- left bumper
+ AddPoint(x+15,y-20,9)
+ else -- square off
+ --AddPoint(x-50,y,2)
+ AddPoint(x,y+20,1)
+ AddPoint(x-20,y+20)
+ AddPoint(x-20,y-20)
+ AddPoint(x,y-20)
+ end
+ if to < (l-120) and GetRandom(2)==0 then -- right bumper
+ AddPoint(x+l-15,y-20,9)
+ else -- square off
+ --AddPoint(x+l+50,y,2)
+ AddPoint(x+l,y+20,1)
+ AddPoint(x+l+20,y+20)
+ AddPoint(x+l+20,y-20)
+ AddPoint(x+l,y-20)
+ end
+ bo = GetRandom(6)
+ if not(bo == 0) then
+ if GetRandom(2)==0 then
+ bo = div(l,bo)
+ else
+ bo = l-div(l,bo)
+ end
+ end
+ -- still consider a success even if we can't place this one. Might need to return more than true/false
+ if b>0 and NoOverlapXY(x+bo-28,y-28,x+bo+28,y+b+28) then
+ AddPoint(x+bo,y,5)
+ AddPoint(x+bo,y+b)
+ if GetRandom(2)==0 then
+ AddPoint(x+bo,y+b-75,20)
+ else -- square off
+ AddPoint(x+bo-20,y+b,1)
+ AddPoint(x+bo-20,y+b+20)
+ AddPoint(x+bo+20,y+b+20)
+ AddPoint(x+bo+20,y+b)
+ end
+ bSucc = true
+ end
+ if bSucc then AddCollisionXY(x+bo-28,y-28,x+bo+28,y+b+28) end
+ if tSucc then AddCollisionXY(x+to-28,y-t-28,x+to+28,y+28) end
+ AddCollisionXY(x-28,y-28,x+l+28,y+28)
+ return true
+ else
+ return false
+ end
+end
+
+function AddCollision(x,y,w,h)
+ table.insert(ObjectList,{x-div(w+Padding,2),
+ y-div(h+Padding,2),
+ x+div(w+Padding,2),
+ y+div(h+Padding,2)})
+end
+
+function AddCollisionXY(x,y,x2,y2)
+ table.insert(ObjectList,{x-div(Padding,2),
+ y-div(Padding,2),
+ x2+div(Padding,2),
+ y2+div(Padding,2)})
+end
+
+-- bounding box check
+function NoOverlap(x,y,w,h)
+ w = w
+ h = h
+ x = x-div(w,2)
+ y = y-div(h,2)
+ x2 = x+w
+ y2 = y+h
+ return NoOverlapXY(x,y,x2,y2)
+end
+function NoOverlapXY(x,y,x2,y2)
+ i=1
+ l=table.getn(ObjectList)
+ while i<=l do
+ ox = ObjectList[i][1]
+ oy = ObjectList[i][2]
+ ox2 = ObjectList[i][3]
+ oy2 = ObjectList[i][4]
+ -- WriteLnToConsole(ox..' '..oy..' '..ox2..' '..oy2..' - '..x..' '..y..' '..x2..' '..y2)
+ --if (math.abs(ox + ox2 -x - x2) <= (ox2 - ox + x2 - x)) and (math.abs(oy + oy2 - y - y2) <= (oy - oy2 + y - y2)) then
+ if x < ox2 and ox < x2 and y < oy2 and oy < y2 then
+ return false
+ end
+ i=i+1
+ end
+ return true
+end
+
+function dbg()
+ i=1
+ l=table.getn(ObjectList)
+ while i<=l do
+ ox = ObjectList[i][1]
+ oy = ObjectList[i][2]
+ ox2 = ObjectList[i][3]
+ oy2 = ObjectList[i][4]
+ AddPoint(ox,oy,1)
+ AddPoint(ox2,oy)
+ AddPoint(ox2,oy2)
+ AddPoint(ox,oy2)
+ AddPoint(ox,oy)
+ AddPoint(ox2,oy2)
+ i=i+1
+ end
+end
+
+function onGameInit()
+ MapGen = 2
+ TemplateFilter = 0
+ TotGen = 0
+ Tries = 0
+ if band(GameFlags,gfBottomBorder) == 0 and GetRandom(2) == 0 then
+ AddPoint(-50,2010,7)
+ AddPoint(4150,2010)
+ for i = 0,GetRandom(3) do
+ x = GetRandom(4096)
+ w = GetRandom(40)+10
+ AddPoint(x,2200,w,true)
+ AddPoint(x,1900)
+ table.insert(ObjectList,{x-div(w*9,2),
+ 2010-div(100,2),
+ x+div(w*9,2),
+ 2010+div(100,2)})
+ end
+ end
+
+ if GetRandom(2) == 0 then
+ l = GetRandom(3)+1
+ w = GetRandom(200)+200
+ h = GetRandom(350)+200
+ x = GetRandom(4096-w*l)
+ DrawCones(x,w,h,l)
+ --if DrawCones(x,w,h,l) then TotGen = TotGen+1
+ end
+ if GetRandom(2) == 0 then
+ for i = 1,GetRandom(5)+1 do
+ w = GetRandom(35)+15
+ x = GetRandom(4096-w*12)+w
+ if GetRandom(2)==0 then
+ y = 2048-GetRandom(w*10+6)
+ else
+ y = 2048
+ end
+ -- if AddPoint(x,y,w) then TotGetn = TotGen+1
+ DrawCircle(x,y,w)
+ end
+ end
+ if GetRandom(2)==0 then
+ x = GetRandom(3300)+350
+ y = GetRandom(1300)+350
+ if DrawStar(x,y, 1, 1+GetRandom(2)*-2) then
+ TotGen = TotGen+1
+ end
+ end
+
+ while (TotGen < 6) and (Tries < 100) do
+ l = GetRandom(1000-Tries*10)+300
+ x = GetRandom(3900-l)+100
+ y = GetRandom(1900)+100
+ if GetRandom(2)==0 then b = GetRandom(800)+300
+ else b = 0 end
+ if GetRandom(2)==0 then t = GetRandom(800)+300
+ else t = 0 end
+ if y-t < 50 then t = y - 50 end
+ if t < 200 then t = 0 end
+ if DrawPlateau(x,y,l,t,b) then
+ TotGen = TotGen+1
+ end
+ Tries = Tries + 1
+ end
+ Tries = 0
+ while (TotGen < 17) and (Tries < 1000) do
+ if Tries < 500 and GetRandom(2)==0 then
+ x = GetRandom(3300)+350
+ y = GetRandom(1300)+350
+ if DrawStar(x,y, 1, 1+GetRandom(2)*-2) then
+ TotGen = TotGen+1
+ end
+ else
+ if Tries > 500 then d = GetRandom(2)+3
+ else d = GetRandom(3)+2 end
+ x = GetRandom(4000-div(700,d))+div(700,d*2)
+ y = GetRandom(1300-div(700,d))+div(700,d*2)
+ if DrawStar(x,y, d, 1+GetRandom(2)*-2) then
+ TotGen = TotGen+1
+ end
+ end
+ w = GetRandom(35-div(Tries,29))+15
+ x = GetRandom(4050-w*20)+w*10
+ y = GetRandom(2000-w*20)+w*10
+ if DrawCircle(x,y,w) then
+ TotGen = TotGen+1
+ end
+ w = GetRandom(35-div(Tries,29))+5
+ x = GetRandom(4050-w*20)+w*10
+ y = GetRandom(2000-w*20)+w*10
+ if DrawCrescent(x,y,w,GetRandom(2)==0) then
+ TotGen = TotGen+1
+ end
+ Tries = Tries + 1
+ end
+-- Padding = div(Padding,2)
+-- Tries = 0
+-- while (TotGen < 21) and (Tries < 10000) do
+-- r = GetRandom(20-div(Tries,223))+5
+-- x = GetRandom(4050-r*20)+r*10
+-- y = GetRandom(2000-r*20)+r*10
+-- if DrawCircle(x,y,r) then
+-- TotGen = TotGen+1
+-- end
+-- Tries = Tries + 1
+-- end
+ --dbg()
+ FlushPoints()
+end
Binary file share/hedgewars/Data/Sounds/frozen_hog_impact.ogg has changed
Binary file share/hedgewars/Data/Sounds/hog_freeze.ogg has changed
Binary file share/hedgewars/Data/Sounds/ice_beam.ogg has changed
Binary file share/hedgewars/Data/Sounds/voices/Default_uk/JustYouwait.ogg has changed
Binary file share/hedgewars/Data/Sounds/voices/Default_uk/Justyouwait.ogg has changed
Binary file share/hedgewars/Data/Themes/Bamboo/Flake.png has changed
Binary file share/hedgewars/Data/Themes/Blox/LandBackTex.png has changed
--- a/share/hedgewars/Data/Themes/CMakeLists.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/Themes/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -9,14 +9,15 @@
Castle
Cheese
Christmas
+ City
Compost
+ CrazyMission
Deepspace
Desert
- City
- CrazyMission
EarthRise
Eyes
Freeway
+ Fruit
Golf
Halloween
Hell
Binary file share/hedgewars/Data/Themes/Cave/Stalactite.png has changed
Binary file share/hedgewars/Data/Themes/Cave/Stalactite_mask.png has changed
Binary file share/hedgewars/Data/Themes/Cave/Stalagmite01.png has changed
Binary file share/hedgewars/Data/Themes/Cave/Stalagmite01_mask.png has changed
Binary file share/hedgewars/Data/Themes/Cave/Stalagmite02.png has changed
Binary file share/hedgewars/Data/Themes/Cave/Stalagmite02_mask.png has changed
Binary file share/hedgewars/Data/Themes/Cheese/cheese.png has changed
Binary file share/hedgewars/Data/Themes/Cheese/cheese_mask.png has changed
Binary file share/hedgewars/Data/Themes/EarthRise/Chunk.png has changed
Binary file share/hedgewars/Data/Themes/EarthRise/Rock.png has changed
Binary file share/hedgewars/Data/Themes/EarthRise/RockShort.png has changed
Binary file share/hedgewars/Data/Themes/EarthRise/RockShort_mask.png has changed
Binary file share/hedgewars/Data/Themes/EarthRise/Rock_mask.png has changed
Binary file share/hedgewars/Data/Themes/EarthRise/horizontL.png has changed
Binary file share/hedgewars/Data/Themes/EarthRise/horizontR.png has changed
Binary file share/hedgewars/Data/Themes/EarthRise/icon.png has changed
Binary file share/hedgewars/Data/Themes/EarthRise/icon@2x.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/Banana.svg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg4227"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="188"
+ height="122"
+ sodipodi:docname="Banana.svg"
+ inkscape:export-filename="/home/alumno/Banana2.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata4233">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs4231" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1024"
+ inkscape:window-height="576"
+ id="namedview4229"
+ showgrid="false"
+ inkscape:zoom="1.4142136"
+ inkscape:cx="188.27075"
+ inkscape:cy="88.86354"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g3851" />
+ <rect
+ style="opacity:0;fill:#ba9d00;fill-opacity:1;fill-rule:evenodd;stroke:#ff73e1;stroke-width:0.6600787;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2996"
+ width="199.33992"
+ height="199.33992"
+ x="-5.6699605"
+ y="-39.66996"
+ rx="7.4470072"
+ ry="0.11719175" />
+ <g
+ id="g3851"
+ transform="matrix(-1,0,0,1,189.2706,0)">
+ <g
+ id="g2999"
+ transform="matrix(-0.8235295,-0.56727344,-0.56727344,0.8235295,206.82408,64.339957)">
+ <rect
+ transform="matrix(-1,0,0,1,189.2706,0)"
+ ry="0.14342025"
+ rx="9.2296047"
+ y="-2.4507911"
+ x="-1.4142135"
+ height="128.69344"
+ width="193.04016"
+ id="rect3892"
+ style="fill:#ba9d00;fill-opacity:0;fill-rule:evenodd;stroke:none" />
+ <path
+ style="fill:#aeb800;fill-opacity:1;stroke:#c8af00;stroke-width:0.46497238;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 173.22161,12.368156 c 0.38299,-1.254549 2.88882,-2.136399 5.31113,-2.136399 0.80919,0.197421 8.56261,0.719772 7.31308,4.737604 -2.73447,1.357662 -12.82099,0.135614 -12.62421,-2.601205 z"
+ id="path3763"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:#f6ee00;fill-opacity:1;stroke:#ba9d00;stroke-width:2.23267698;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 174.72691,14.430121 c 3.68436,1.59464 6.76084,1.396765 10.53259,0.852596 3.16749,12.573215 -6.38409,38.106194 -11.05639,22.947806 -0.56544,-1.970698 1.04489,-7.745226 1.5155,-13.284104 0.38228,-4.499216 -0.30164,-8.900955 -0.9917,-10.516298 z"
+ id="path3759"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsc" />
+ <path
+ style="fill:#f6ee00;fill-opacity:1;stroke:#ba9d00;stroke-width:2.86675739;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 14.118276,98.012947 C 6.5242914,93.166946 2.9983654,84.741923 1.8511903,80.802314 1.5117082,79.636462 1.6496188,78.973436 1.6160582,78.77484 c 0,0 -0.7585206,-2.515724 0.8157026,-3.080172 37.5043142,-13.447416 79.3121062,2.84349 108.7990492,-7.238897 42.1655,-15.932764 67.15724,-40.596497 69.14144,-36.895025 0.87923,1.640186 1.60235,3.283492 2.18586,4.925062 4.87426,13.712407 1.19063,27.947485 -4.97935,37.929279 C 140.38936,134.58 70.667237,128.54467 14.290595,98.119144 c -0.05869,-0.03263 -0.115089,-0.07075 -0.172319,-0.106197 z"
+ id="path3755"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssscssscc" />
+ <path
+ style="fill:#f6d700;fill-opacity:1;stroke:none"
+ d="m 126.05682,97.959228 c 30.99402,-10.590639 51.90402,-42.860122 55.76745,-41.990571 4.6666,-1.178675 -5.68246,21.512754 -16.3621,32.394781 -22.4607,21.518362 -41.68714,33.775812 -88.869476,29.914632 -6.714536,-0.54948 -12.127377,-2.52613 -16.24804,-3.51148 -15.230481,-3.64199 -19.540632,-6.44601 -19.2136,-7.60165 21.074895,-6.16755 62.599736,-2.3449 84.925766,-9.205712 z"
+ id="path3755-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsscc" />
+ <path
+ style="fill:#f6ee00;fill-opacity:1;stroke:none"
+ d="m 176.69271,18.470917 c 3.28193,1.594639 4.25223,0.117875 7.612,-0.426293 2.8215,12.573216 -7.75472,47.26985 -11.91666,32.11147 -0.50369,-1.970699 2.99871,-16.908889 3.41791,-22.447761 0.34053,-4.499223 1.50144,-7.622073 0.88675,-9.237416 z"
+ id="path3759-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsc" />
+ <path
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ d="m 185.22914,16.262035 c 0.3729,6.793985 -0.95213,14.4881 -3.35782,19.872777 0.43982,-2.493879 2.50799,-6.855983 2.99692,-19.508125 0.0193,-0.500018 0.36693,-0.187987 0.36098,-0.364652 z"
+ id="path3811"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscc" />
+ <path
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ d="m 184.04975,16.447571 c 0.3729,6.793979 -0.95213,14.488101 -3.35781,19.87277 0.43981,-2.493879 2.50799,-6.855976 2.99691,-19.508125 0.0193,-0.500018 0.36693,-0.187987 0.36098,-0.364645 z"
+ id="path3811-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscc" />
+ <path
+ style="fill:#ffff00;fill-opacity:1;stroke:none"
+ d="m 46.396036,78.059476 c 9.61941,-0.782867 18.50776,0.447762 28.49952,0.400598 C 131.10109,71.001302 127.57596,62.608275 151.79818,50.65543 162.6647,67.30652 120.1764,81.050393 111.67801,82.77471 68.769756,90.815892 20.384966,88.60193 13.808626,86.848176 9.191806,85.616977 2.2070864,78.930403 3.4871764,78.177117 c 2.90155,-1.707452 29.0777996,0.36669 42.9088596,-0.117641 z"
+ id="path3938-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccssc" />
+ <path
+ style="fill:#ebb000;fill-opacity:1;stroke:none"
+ d="m 178.34655,69.354915 c -1.03692,3.62674 -4.80002,9.760945 -8.75445,14.805148 -2.07159,2.642479 -4.51976,5.046467 -5.97744,6.482336 -6.73661,6.635803 -11.3907,10.605581 -18.39689,14.945561 -19.68708,12.19516 -40.18229,14.72677 -64.772767,12.90932 -8.039936,-0.30915 -24.115294,-3.44612 -34.95135,-8.30855 -1.57065,-0.92962 -0.49367,-1.64994 2.08257,-1.73924 6.45203,-0.22363 47.8998,6.01939 68.962127,0.53135 23.21067,-6.04783 43.20085,-21.762931 60.04973,-40.131212 0.41027,-0.44727 1.41173,-0.681808 1.75847,0.505287 z"
+ id="path3755-8-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csssccsssc" />
+ <path
+ style="opacity:0.65591401;fill:#fffff4;fill-opacity:0.50965247;stroke:none"
+ d="m 63.141072,72.675461 c 9.34075,0.02053 13.86867,1.433303 22.55808,0.89946 5.39675,-0.331557 10.066969,-0.03862 19.666538,-1.532352 21.56711,-7.693615 34.5254,-14.683402 47.59194,-22.765952 4.44492,5.066169 -3.38161,11.38085 -16.63807,18.19416 -4.76161,2.447286 -9.90984,5.73305 -16.09555,7.385835 -6.81999,1.822262 -14.15651,4.734903 -22.034838,5.739436 C 55.958072,85.980763 0.5346416,79.992728 3.5135516,77.270766 23.441754,69.890694 39.153934,70.772391 63.141072,72.675461 z"
+ id="path3938"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csccssscc" />
+ <path
+ style="opacity:0.17204303;fill:#808080;fill-opacity:1;stroke:none"
+ d="m 184.92002,19.005236 c 0.59659,6.950201 1.04615,8.860806 -2.99505,15.99138 -0.17966,0.317013 -1.10197,-0.231739 -1.33716,0.07181 0.0362,-1.570984 0.72315,-4.863702 1.22582,-8.631549 0.39707,-2.976307 0.80244,-6.125771 -0.17436,-9.81309 3.46833,-0.09551 3.12785,0.600195 3.28075,2.381442 z"
+ id="path3811-4-6-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sscscs" />
+ <path
+ style="fill:#ba9d00;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 1.854167,79.082528 0,-3.875 c 2.5833333,0 5.7228328,-1.144256 5.875,-0.75 0,0 2.457974,2.169987 2.40533,4.625 -0.08906,4.153477 -1.9276336,5.758883 -5.8169417,5.758883 l -2.375,-1 z"
+ id="path3781"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccssccc" />
+ <path
+ style="opacity:0.17204303;fill:#808080;fill-opacity:1;stroke:none"
+ d="m 176.45515,18.530647 c -0.59659,6.950201 -0.86937,10.982126 0.16662,16.698487 0.065,0.358542 1.10197,-0.231739 1.33716,0.07181 -0.0362,-1.570984 2.10528,-5.570809 1.60261,-9.338656 -0.39707,-2.976307 -0.80244,-6.125771 0.17436,-9.81309 -3.46833,-0.09551 -3.12785,0.600195 -3.28075,2.381449 z"
+ id="path3811-4-6-7-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sscscs" />
+ <rect
+ style="opacity:0;fill:#ba9d00;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect3835"
+ width="188.56349"
+ height="122.03048"
+ x="-189.2706"
+ y="-0.32947311"
+ rx="9.0267563"
+ ry="0.13948013"
+ transform="scale(-1,1)" />
+ </g>
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Fruit/Banana1.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/Banana2.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/BlueWater.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/Border.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/Border.svg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="128"
+ height="32"
+ sodipodi:docname="Border.svg"
+ inkscape:export-filename="/home/alumno/Border.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1024"
+ inkscape:window-height="576"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="4.6875"
+ inkscape:cx="64"
+ inkscape:cy="18.499355"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <g
+ id="g3070"
+ transform="translate(0.2245075,0.10721314)">
+ <path
+ sodipodi:nodetypes="ccccccsssssccccscc"
+ inkscape:connector-curvature="0"
+ id="path2989"
+ d="m 128.00989,4.540193 0,-1.5555713 -63.918366,0.4002938 -64.16231572,-3.33453995 -0.13317,4.11842995 c 0,0 0.0416,5.4350374 0.25739,5.4450807 1.12729002,3.1826308 3.75077002,2.8905698 5.61735002,2.9254808 2.6968,0.05044 4.8541697,-0.05992 7.5499797,-0.224285 4.21062,-0.256723 8.4917,2.455958 12.66232,1.191102 1.90205,-0.576845 5.276394,0.04414 7.731429,-2.234525 2.759525,-2.5612649 5.552523,3.62746 8.388817,3.621123 4.79433,-0.01069 6.835152,-3.509979 10.711598,-3.291019 6.699636,2.456307 11.479518,0.607804 18.365457,1.247273 3.106412,0.193695 5.169745,-2.9922912 8.271262,-2.572101 9.382295,7.019144 17.230978,-1.9735465 24.547659,-0.7092611 6.60817,1.3665811 12.59694,0.4820161 17.35256,1.5555521 2.28252,0.515259 6.7314,-1.3747811 6.7314,-1.3747811 z"
+ style="fill:#008b00;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ </g>
+ <path
+ style="fill:#00a900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 0.37712361,5.1624845 0,-5.1618448348 10.89016439,-0.0794579952 31.077592,0.0980617 12.489991,-0.0813154 9.316134,0.10831885 28.825199,-0.11555165 13.102566,0.023414 22.19235,-0.00601 0.19966,5.33746513 C 125.73695,7.9109204 115.48311,5.1549724 105.04283,5.3825149 94.419613,9.6233867 80.886124,5.5266001 78.082063,4.7039006 74.041553,3.5184322 70.9642,7.6927091 66.691245,7.9211814 62.69452,5.9294814 55.788358,4.7432211 50.673272,5.2061815 44.476156,5.7670746 39.471408,7.6849911 34.688255,7.2617296 27.833951,6.655192 24.143873,4.2520626 18.722054,4.0892781 8.7898029,3.7910726 2.1851718,5.1308145 0.37712361,5.1624845 z"
+ id="path2991"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccsccccc" />
+ <g
+ id="g3070-0"
+ transform="matrix(1,0,0,-1,0.2245075,31.950753)"
+ style="fill:#004600;fill-opacity:1">
+ <path
+ sodipodi:nodetypes="ccccccsssssccccscc"
+ inkscape:connector-curvature="0"
+ id="path2989-1"
+ d="m 128.00989,4.540193 0,-1.5555713 -63.918366,0.4002938 -64.16231572,-3.33453995 -0.13317,4.11842995 c 0,0 0.0416,5.4350374 0.25739,5.4450807 1.12729002,3.1826308 3.75077002,2.8905698 5.61735002,2.9254808 2.6968,0.05044 4.8541697,-0.05992 7.5499797,-0.224285 4.21062,-0.256723 8.4917,2.455958 12.66232,1.191102 1.90205,-0.576845 5.276394,0.04414 7.731429,-2.234525 2.759525,-2.5612649 5.552523,3.62746 8.388817,3.621123 4.79433,-0.01069 6.835152,-3.509979 10.711598,-3.291019 6.699636,2.456307 11.479518,0.607804 18.365457,1.247273 3.106412,0.193695 5.169745,-2.9922912 8.271262,-2.572101 9.382295,7.019144 17.230978,-1.9735465 24.547659,-0.7092611 6.60817,1.3665811 12.59694,0.4820161 17.35256,1.5555521 2.28252,0.515259 6.7314,-1.3747811 6.7314,-1.3747811 z"
+ style="fill:#004600;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ </g>
+ <path
+ style="fill:#002d00;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="M 0,26.758679 0,31.920541 10.890164,32 l 31.077592,-0.09807 12.489991,0.0813 9.316134,-0.108331 28.825199,0.115551 13.10257,-0.02342 22.19235,0.0059 0.19966,-5.337483 c -2.73383,-2.625369 -12.98767,0.130591 -23.42795,-0.09695 C 94.042489,22.29779 80.509,26.394591 77.704939,27.217291 73.664429,28.402766 70.587076,24.228474 66.314121,24 62.317396,25.991707 55.411234,27.177973 50.296148,26.715011 44.099032,26.154085 39.094284,24.236161 34.311131,24.659425 27.456827,25.265966 23.766749,27.669102 18.34493,27.831888 8.4126793,28.130095 1.8080482,26.790346 0,26.758679 z"
+ id="path2991-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccsccccc" />
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,6 @@
+file(GLOB images *.png)
+
+install(FILES
+ theme.cfg
+ ${images}
+ DESTINATION ${SHAREPATH}Data/Themes/Fruit)
Binary file share/hedgewars/Data/Themes/Fruit/Chunk.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/Clouds.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/Clouds.svg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="256"
+ height="512"
+ sodipodi:docname="Clouds.svg"
+ inkscape:export-filename="/home/alumno/Clouds.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective10" />
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#081471"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1024"
+ inkscape:window-height="576"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="0.5"
+ inkscape:cx="167.15145"
+ inkscape:cy="322.26631"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <path
+ style="fill:#d8320e;fill-opacity:1;stroke:#291c2e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 167.79628,429.90625 c 6.88621,-54.20506 -95.910233,-47.98209 -91.152321,6.33998 -36.780523,13.44756 -17.393783,55.60537 68.176851,45.15254 6.07372,5.86147 14.71644,7.1321 22.90295,4.54859 50.44072,0.35828 33.06824,-64.7277 0.0725,-56.04111 z"
+ id="path3628"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fa4307;fill-opacity:1;stroke:none"
+ d="m 162.03744,441.25881 c -1.36319,-49.25801 -70.84174,-44.59276 -73.56421,-0.0256 -37.89558,0.67449 -29.98797,47.87467 57.17122,35.71956 6.0099,7.17251 13.2001,8.57757 21.7257,5.87623 43.45828,-5.64496 20.24934,-50.77328 -5.33271,-41.57015 z"
+ id="path3624"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#d8320e;fill-opacity:1;stroke:none"
+ d="M 35.51038,60.826602 C 30.10945,5.369057 173.31939,8.812326 176.54237,56.135592 202.32043,49.47102 245.36426,58.660968 243.28372,83.01503 241.20317,107.36909 165.62848,112.01794 126.37288,101.9661 14.82644,110.79522 -9.11426,74.486646 35.51038,60.826602 z"
+ id="path2818"
+ sodipodi:nodetypes="cczcc" />
+ <path
+ style="fill:#fa4307;fill-opacity:1;stroke:none;opacity:1"
+ d="M 47.935121,67.693673 C 55.279955,21.727655 154.13261,20.419517 165.21999,67.471595 c 17.14098,-3.43759 63.50622,-0.561734 63.15549,20.35266 -0.35074,20.914395 -62.747,24.193685 -102.0026,14.141845 C 14.82644,110.79522 4.5308199,68.60796 47.935121,67.693673 z"
+ id="path3594"
+ sodipodi:nodetypes="cczcc" />
+ <path
+ sodipodi:nodetypes="cczcc"
+ id="path3592"
+ d="M 58.290041,72.487617 C 50.71962,34.11482 162.60753,34.981818 158.50847,75.525421 180.25962,71.545459 222.35333,78.028505 219.69751,92.027645 217.0417,106.02679 165.62848,112.01794 126.37288,101.9661 14.82644,110.79522 23.156926,71.503599 58.290041,72.487617 z"
+ style="fill:#fc7d01;fill-opacity:1;stroke:none;opacity:1" />
+ <path
+ sodipodi:nodetypes="cczcc"
+ id="path3596"
+ d="M 35.51038,60.826602 C 30.10945,5.3690574 173.31939,8.8123258 176.54237,56.135592 202.32043,49.47102 245.36426,58.660968 243.28372,83.015027 241.20317,107.36909 165.62848,112.01794 126.37288,101.9661 14.82644,110.79522 -9.11426,74.486646 35.51038,60.826602 z"
+ style="fill:none;fill-opacity:1;stroke:#291c2e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ style="fill:#d8320e;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 91.280324,186.44749 c -0.572532,-52.33401 78.269996,-60.0929 77.262046,6.50166 25.56939,18.81678 9.23638,58.58843 -50.30508,47.32204 -7.93005,7.2174 -19.934946,7.40328 -28.344387,4.54859 -50.462498,6.87804 -46.267598,-69.35997 1.387421,-58.37229 z"
+ id="path3598"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path3600"
+ d="m 97.00091,200.50411 c 2.307391,-48.17327 59.56702,-58.37674 63.55102,-0.2503 25.9859,2.78382 20.49274,49.59484 -42.32241,39.74083 -7.88081,7.17251 -19.811166,7.35723 -28.16839,4.5203 -41.903581,3.57537 -33.516057,-54.16312 6.93978,-44.01083 z"
+ style="fill:#fa4307;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
+ <path
+ style="fill:#fc7d01;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;fill-opacity:1"
+ d="m 100.64431,209.90024 c 0.40908,-42.47835 53.97713,-52.6313 55.11368,-3.31842 20.0414,-0.66782 26.05371,40.96574 -37.52847,33.41282 -7.88081,7.17251 -19.811166,7.35723 -28.16839,4.5203 -36.344259,-0.62802 -24.042151,-43.27546 10.58318,-34.6147 z"
+ id="path3602"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path3604"
+ d="m 91.280324,186.44749 c -0.572532,-52.33401 78.269996,-60.0929 77.262046,6.50166 25.56939,18.81678 9.23638,58.58843 -50.30508,47.32204 -7.93005,7.2174 -19.934946,7.40328 -28.344387,4.54859 -50.462498,6.87804 -46.267598,-69.35997 1.387421,-58.37229 z"
+ style="fill:none;stroke:#291c2e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cczcc"
+ id="path3606"
+ d="m 200.66036,311.36124 c 3.82282,-50.33223 -108.617799,-46.47836 -110.791616,-3.53573 -20.29452,-5.91384 -54.028615,2.64179 -52.210845,24.72238 1.817778,22.08058 61.203712,25.91198 91.956301,16.59385 87.66707,7.43976 106.19423,-25.6173 71.04616,-37.7805 z"
+ style="fill:#d8320e;fill-opacity:1;stroke:none" />
+ <path
+ sodipodi:nodetypes="cczcc"
+ id="path3608"
+ d="m 190.95474,317.65364 c -6.11513,-41.6576 -83.75665,-42.33994 -92.108644,0.39683 -13.487225,-3.03075 -49.877382,-0.1856 -49.444047,18.78374 0.433343,18.96934 49.459562,21.62566 80.212151,12.30753 87.66707,7.43976 95.43399,-30.88016 61.34054,-31.4881 z"
+ style="fill:#fa4307;fill-opacity:1;stroke:none" />
+ <path
+ style="fill:#fc7d01;fill-opacity:1;stroke:none"
+ d="m 182.85893,322.05497 c 5.65555,-34.84599 -82.20648,-33.4888 -78.6813,3.26676 -17.111802,-3.4992 -50.120181,2.59619 -47.928803,15.28105 2.191368,12.68487 42.612784,17.85709 73.365373,8.53896 87.66707,7.43976 80.82828,-28.15856 53.24473,-27.08677 z"
+ id="path3610"
+ sodipodi:nodetypes="cczcc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#291c2e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 200.66037,311.36125 c 3.82282,-50.33223 -108.617806,-46.47837 -110.791623,-3.53574 -20.29452,-5.91384 -54.028616,2.6418 -52.210846,24.72238 1.817778,22.08058 61.203715,25.91199 91.956299,16.59386 87.66708,7.43976 106.19424,-25.61731 71.04617,-37.7805 z"
+ id="path3612"
+ sodipodi:nodetypes="cczcc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path3626"
+ d="m 159.62078,452.65494 c 2.4529,-46.81733 -66.020473,-42.32621 -62.612044,-3.5896 -29.498451,-3.1085 -38.604784,40.92719 48.134714,29.30647 8.04379,8.39285 14.92143,7.93815 21.27755,5.10122 35.16882,3.16859 20.7172,-41.91953 -6.80022,-30.81809 z"
+ style="fill:#fc7d01;fill-opacity:1;stroke:none"
+ inkscape:connector-curvature="0" />
+</svg>
Binary file share/hedgewars/Data/Themes/Fruit/Droplet.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/Droplet.svg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,478 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="16"
+ height="64"
+ sodipodi:docname="Droplet.svg"
+ inkscape:export-filename="/home/alumno/Droplet.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Carlos Vives B.</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective10" />
+ <linearGradient
+ y2="48"
+ x2="64"
+ y1="31.882462"
+ x1="64"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3615"
+ xlink:href="#linearGradient3617"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective2851" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective2837" />
+ <linearGradient
+ y2="48"
+ x2="64"
+ y1="39.058487"
+ x1="64"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3743"
+ xlink:href="#linearGradient3718"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="48"
+ x2="64"
+ y1="39.058487"
+ x1="64"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3738"
+ xlink:href="#linearGradient3718"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="48"
+ x2="64"
+ y1="39.058487"
+ x1="64"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3733"
+ xlink:href="#linearGradient3718"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="48"
+ x2="64"
+ y1="39.058487"
+ x1="64"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3728"
+ xlink:href="#linearGradient3718"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="48"
+ x2="64"
+ y1="31.882462"
+ x1="64"
+ id="linearGradient3724"
+ xlink:href="#linearGradient3605"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective10-6"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient3706">
+ <stop
+ id="stop3708"
+ offset="0"
+ style="stop-color:#9aa3dc;stop-opacity:1;" />
+ <stop
+ id="stop3710"
+ offset="1"
+ style="stop-color:#9aa3dc;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3718">
+ <stop
+ id="stop3720"
+ offset="0"
+ style="stop-color:#545c9d;stop-opacity:1;" />
+ <stop
+ style="stop-color:#545c9d;stop-opacity:0.49803922;"
+ offset="0.5"
+ id="stop3603" />
+ <stop
+ id="stop3722"
+ offset="1"
+ style="stop-color:#545c9d;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3605">
+ <stop
+ style="stop-color:#545c9d;stop-opacity:1;"
+ offset="0"
+ id="stop3607" />
+ <stop
+ style="stop-color:#545c9d;stop-opacity:0.24705882;"
+ offset="0.5907774"
+ id="stop3613" />
+ <stop
+ style="stop-color:#545c9d;stop-opacity:0;"
+ offset="1"
+ id="stop3611" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3617">
+ <stop
+ id="stop3619"
+ offset="0"
+ style="stop-color:#545c9d;stop-opacity:1;" />
+ <stop
+ id="stop3621"
+ offset="0.52097768"
+ style="stop-color:#545c9d;stop-opacity:0.24705882;" />
+ <stop
+ id="stop3623"
+ offset="1"
+ style="stop-color:#545c9d;stop-opacity:0;" />
+ </linearGradient>
+ <inkscape:perspective
+ id="perspective2844"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3644"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ gradientTransform="matrix(1,0,0,2.7977291,-2.1118922,-84.521709)"
+ gradientUnits="userSpaceOnUse"
+ y2="53.688095"
+ x2="67.920876"
+ y1="42.525238"
+ x1="67.903694"
+ id="linearGradient3780"
+ xlink:href="#linearGradient3774"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3774">
+ <stop
+ id="stop3776"
+ offset="0"
+ style="stop-color:#ff9300;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ff9300;stop-opacity:0.99607843;"
+ offset="0.00048828"
+ id="stop3802" />
+ <stop
+ style="stop-color:#ff9300;stop-opacity:0.99607843;"
+ offset="0.00097656"
+ id="stop3800" />
+ <stop
+ style="stop-color:#44ab00;stop-opacity:0.99607843;"
+ offset="0.00195312"
+ id="stop3798" />
+ <stop
+ style="stop-color:#ff9300;stop-opacity:0.99607843;"
+ offset="0.00390625"
+ id="stop3796" />
+ <stop
+ style="stop-color:#ff9300;stop-opacity:0.99215686;"
+ offset="0.0078125"
+ id="stop3794" />
+ <stop
+ style="stop-color:#ff9300;stop-opacity:0.98431373;"
+ offset="0.015625"
+ id="stop3792" />
+ <stop
+ style="stop-color:#ff9300;stop-opacity:0.96862745;"
+ offset="0.03125"
+ id="stop3790" />
+ <stop
+ style="stop-color:#ff9300;stop-opacity:0.9372549;"
+ offset="0.0625"
+ id="stop3788" />
+ <stop
+ style="stop-color:#ff9300;stop-opacity:0.8745098;"
+ offset="0.17754041"
+ id="stop3786" />
+ <stop
+ style="stop-color:#ff9300;stop-opacity:0.74901961;"
+ offset="0.37418443"
+ id="stop3784" />
+ <stop
+ style="stop-color:#fedbf8;stop-opacity:0"
+ offset="0.5"
+ id="stop3782" />
+ <stop
+ id="stop3778"
+ offset="1"
+ style="stop-color:#ff9300;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ y2="48"
+ x2="64"
+ y1="31.882462"
+ x1="64"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3615-4"
+ xlink:href="#linearGradient3617-6"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective2851-5" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ id="perspective2837-2" />
+ <linearGradient
+ y2="48"
+ x2="64"
+ y1="39.058487"
+ x1="64"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3743-0"
+ xlink:href="#linearGradient3718-5"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="48"
+ x2="64"
+ y1="39.058487"
+ x1="64"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3738-0"
+ xlink:href="#linearGradient3718-5"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="48"
+ x2="64"
+ y1="39.058487"
+ x1="64"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3733-4"
+ xlink:href="#linearGradient3718-5"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="48"
+ x2="64"
+ y1="39.058487"
+ x1="64"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3728-3"
+ xlink:href="#linearGradient3718-5"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="48"
+ x2="64"
+ y1="31.882462"
+ x1="64"
+ id="linearGradient3724-3"
+ xlink:href="#linearGradient3605-3"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective10-4"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient3706-4">
+ <stop
+ id="stop3708-6"
+ offset="0"
+ style="stop-color:#9aa3dc;stop-opacity:1;" />
+ <stop
+ id="stop3710-0"
+ offset="1"
+ style="stop-color:#9aa3dc;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3718-5">
+ <stop
+ id="stop3720-1"
+ offset="0"
+ style="stop-color:#545c9d;stop-opacity:1;" />
+ <stop
+ style="stop-color:#545c9d;stop-opacity:0.49803922;"
+ offset="0.5"
+ id="stop3603-9" />
+ <stop
+ id="stop3722-1"
+ offset="1"
+ style="stop-color:#545c9d;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3605-3">
+ <stop
+ style="stop-color:#545c9d;stop-opacity:1;"
+ offset="0"
+ id="stop3607-9" />
+ <stop
+ style="stop-color:#545c9d;stop-opacity:0.24705882;"
+ offset="0.5907774"
+ id="stop3613-4" />
+ <stop
+ style="stop-color:#545c9d;stop-opacity:0;"
+ offset="1"
+ id="stop3611-7" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3617-6">
+ <stop
+ id="stop3619-6"
+ offset="0"
+ style="stop-color:#ff6200;stop-opacity:1;" />
+ <stop
+ id="stop3621-4"
+ offset="0.52097768"
+ style="stop-color:#ff6200;stop-opacity:0.24705882;" />
+ <stop
+ id="stop3623-3"
+ offset="1"
+ style="stop-color:#ff6200;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3617-6"
+ id="linearGradient3714"
+ gradientUnits="userSpaceOnUse"
+ x1="64"
+ y1="31.882462"
+ x2="64"
+ y2="48" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3617-6"
+ id="linearGradient3717"
+ gradientUnits="userSpaceOnUse"
+ x1="64"
+ y1="31.882462"
+ x2="64"
+ y2="48"
+ gradientTransform="translate(-133.491,9.5795401)" />
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#949ed6"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1024"
+ inkscape:window-height="576"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="7.9999999"
+ inkscape:cx="-1.3666015"
+ inkscape:cy="38.637082"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:#ffd42a;stroke-width:1.73254383000000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path2884"
+ sodipodi:cx="7.7661896"
+ sodipodi:cy="8.4255676"
+ sodipodi:rx="4.5063076"
+ sodipodi:ry="4.5063076"
+ d="m 12.272497,8.4255676 a 4.5063076,4.5063076 0 1 1 -9.012615,0 4.5063076,4.5063076 0 1 1 9.012615,0 z"
+ transform="matrix(0.57718597,0,0,0.57718597,3.5174643,51.136881)" />
+ <path
+ transform="matrix(0.48723869,0,0,0.48723869,4.2160119,35.894737)"
+ d="m 12.272497,8.4255676 a 4.5063076,4.5063076 0 1 1 -9.012615,0 4.5063076,4.5063076 0 1 1 9.012615,0 z"
+ sodipodi:ry="4.5063076"
+ sodipodi:rx="4.5063076"
+ sodipodi:cy="8.4255676"
+ sodipodi:cx="7.7661896"
+ id="path3630"
+ style="color:#000000;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:#ffd42a;stroke-width:2.05238217000000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:#ffd42a;stroke-width:1.32086337000000009;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path3632"
+ sodipodi:cx="7.7661896"
+ sodipodi:cy="8.4255676"
+ sodipodi:rx="4.5063076"
+ sodipodi:ry="4.5063076"
+ d="m 12.272497,8.4255676 a 4.5063076,4.5063076 0 1 1 -9.012615,0 4.5063076,4.5063076 0 1 1 9.012615,0 z"
+ transform="matrix(0.75708055,0,0,0.75708055,2.1203692,17.621166)" />
+ <path
+ transform="matrix(0.43791409,0,0,0.43791409,4.5990761,4.3103248)"
+ d="m 12.272497,8.4255676 a 4.5063076,4.5063076 0 1 1 -9.012615,0 4.5063076,4.5063076 0 1 1 9.012615,0 z"
+ sodipodi:ry="4.5063076"
+ sodipodi:rx="4.5063076"
+ sodipodi:cy="8.4255676"
+ sodipodi:cx="7.7661896"
+ id="path3634"
+ style="color:#000000;fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:#ffd42a;stroke-width:2.28355289000000017;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <rect
+ style="color:#000000;fill:#545c9d;fill-opacity:1;fill-rule:nonzero;stroke:#9aa3dc;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect3603"
+ x="-38.614849"
+ y="21.853107"
+ width="0"
+ height="0"
+ rx="128"
+ ry="128" />
+</svg>
Binary file share/hedgewars/Data/Themes/Fruit/Flake.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/Girder.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/LandBackTex.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/LandBackTex.svg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,355 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="240"
+ height="240"
+ sodipodi:docname="LandBackTex.svg"
+ inkscape:export-filename="/home/alumno/LandTex.png"
+ inkscape:export-xdpi="180"
+ inkscape:export-ydpi="180">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1024"
+ inkscape:window-height="576"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="0.98333333"
+ inkscape:cx="2.4185786"
+ inkscape:cy="89.959001"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <rect
+ style="fill:#a00000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect6362-2"
+ width="245.06123"
+ height="240"
+ x="-0.82381439"
+ y="0" />
+ <path
+ style="fill:#a00000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m -0.8238169,45.299127 0,-45.13296469 122.9694569,0 122.96946,0 0,45.13296469 c -32.5153,34.430713 -73.21598,9.738833 -104.79755,9.01344 -40.989815,0 -73.180476,35.557016 -102.164654,7.935503 C 26.990153,51.610128 -0.8238169,45.299127 -0.8238169,45.299127 z"
+ id="path8053-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccsc" />
+ <path
+ style="fill:#8e0000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m -0.7839639,77.974368 0,-43.103353 1.7255681,0 c 0.9490608,0 5.6802538,1.564059 10.5137498,3.475687 11.928457,4.717653 20.698709,10.134467 27.219686,16.811829 5.25494,5.38095 11.234577,9.419576 16.095131,10.870589 1.743305,0.520428 5.484593,0.820972 9.605155,0.771601 8.522995,-0.102126 13.076477,-1.482101 33.822605,-10.250281 21.033349,-8.889575 30.596649,-11.541829 41.587409,-11.533722 6.32058,0.0048 10.94939,0.857754 30.50628,5.622335 19.50463,4.75185 24.43939,3.199429 35.03832,2.736834 10.58496,-0.461987 14.2368,-4.053646 22.51845,-9.136336 4.75027,-2.915379 5.15199,-2.503138 9.72367,-7.306932 1.94047,-2.038992 6.56319,-2.285711 6.7215,-2.285711 0.15831,0 0.4714,60.184143 0.4714,83.890982 0,0 -11.52851,-11.23072 -19.85007,-1.07116 -29.00312,35.40905 -68.50781,2.83973 -102.64905,3.61099 -36.863209,0.83275 -80.483557,27.25966 -110.589063,1.27434 -4.4934327,-3.87847 -9.7723273,3.15878 -11.5159686,-5.47155 -1.7640732,-8.73149 -0.9447723,-38.906142 -0.9447723,-38.906142 z"
+ id="path8825-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsssssssssssscssssc" />
+ <path
+ style="fill:#7e0000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m -1.0847357,106.17198 c 15.2834687,-5.81848 10.6054128,8.77873 34.7161807,14.75411 25.166073,6.23693 63.820796,-5.31895 84.613955,-5.25031 21.25889,0.0701 86.65679,-2.74298 112.65186,-8.32828 10.47951,-2.25163 12.90054,-1.70704 12.90054,-1.70704 l 0.18355,69.01918 c 0,0 -5.98471,-3.08321 -16.37315,4.67838 -25.76305,19.24849 -52.70289,9.29007 -93.33067,9.59254 -35.958875,0.26771 -67.699114,4.80055 -110.534816,-2.87936 -11.50153,-2.06207 -14.7175712,-12.47698 -24.1394709,-11.39156 0.3760056,-33.36102 -0.4090583,-52.79629 -0.687989,-68.48766 z"
+ id="path8829-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csssccsssccc" />
+ <g
+ id="g3044"
+ style="fill:#000000"
+ transform="matrix(1.0210885,0,0,1,-1.0847459,0)">
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,38.8411,-83.851215)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-0"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,41.55609,-94.925726)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-3"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.59238187,-0.43174056,-0.28113037,0.90973907,10.08477,24.974226)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-4"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,112.1639,58.32996)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-6"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,87.72489,-63.875755)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-3"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,151.98454,79.27951)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-6"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,132.40971,-22.248043)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-3-3"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,88.97635,16.973638)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-3-5-3"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,176.41453,29.407128)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-3-5-4-4"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,220.06267,-107.27773)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-3-5-4-3-4"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,131.33797,-105.77486)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-3-5-4-3-1-39"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,214.54084,-1.3396008)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-74-7"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,222.21373,-47.072616)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-1-2"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,156.05786,93.089866)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-8-58"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,184.94882,-47.600392)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-5-9"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,113.26926,114.8096)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-9-0"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,135.81205,14.052233)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-3-7-2"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,201.50517,80.230526)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-3-5-5-4"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,97.00118,80.340996)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-3-5-4-38-7"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,74.8708,-27.846868)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-3-5-4-3-8-6"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,125.75391,-93.350442)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-3-5-4-3-1-3-5"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,32.19821,75.374751)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-0-7"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,31.09286,89.955298)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-8-5-1"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.54173473,-0.3954267,0.25709444,0.83322058,70.91349,110.90484)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-9-9-3"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,34.17129,-66.115345)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-2-3-5-4-3-0-3"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,5.30853,-49.040812)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-1-5-8"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.54173473,-0.3954267,-0.25709444,0.83322058,30.70157,-20.301408)"
+ d="m -74.745762,103.72881 c 0,2.52741 -1.024433,4.57627 -2.288135,4.57627 -1.263703,0 -2.288136,-2.04886 -2.288136,-4.57627 0,-2.5274 1.024433,-4.576268 2.288136,-4.576268 1.263702,0 2.288135,2.048868 2.288135,4.576268 z"
+ sodipodi:ry="4.5762715"
+ sodipodi:rx="2.2881358"
+ sodipodi:cy="103.72881"
+ sodipodi:cx="-77.033897"
+ id="path7309-7-5-9-5-5-0-5"
+ style="opacity:0.50879995;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Fruit/LandTex.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/LandTex.svg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,462 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ width="240"
+ height="240"
+ sodipodi:docname="LandTex.svg"
+ inkscape:export-filename="/home/ranitas/LandTex.png"
+ inkscape:export-xdpi="180"
+ inkscape:export-ydpi="180">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="959"
+ inkscape:window-height="744"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="1.4142136"
+ inkscape:cx="197.60139"
+ inkscape:cy="139.98653"
+ inkscape:window-x="65"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <rect
+ style="fill:#007800;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="rect6362-2"
+ width="242.12071"
+ height="240"
+ x="-2"
+ y="1.5258789e-05" />
+ <path
+ style="fill:#006900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m -2,67.454553 0.1872007,-44.682327 1.7001611,0 c 0.9350872,0 5.5966192,1.621355 10.3589482,3.603012 11.752825,4.89047 20.393945,10.505717 26.818911,17.427682 5.177567,5.578068 11.069161,9.76464 15.85815,11.268806 1.717635,0.539489 5.40384,0.851047 9.463731,0.799867 8.397503,-0.105872 12.883942,-1.536394 33.324608,-10.625775 20.72365,-9.215217 30.14616,-11.964634 40.9751,-11.956226 6.2275,0.0049 10.78816,0.889173 30.0571,5.828293 19.21745,4.925924 24.07955,3.316632 34.52243,2.837087 10.4291,-0.478906 14.02718,-4.202139 22.18689,-9.471017 4.68033,-3.022177 5.07613,-2.594834 9.5805,-7.574602 1.91189,-2.113685 6.93102,-2.36944 7.08698,-2.36944 0.15599,0 0,62.388826 0,86.964117 0,0 -7.90828,-5.1699 -19.55779,-1.11041 -38.85174,13.53861 -67.84012,5.10113 -101.13767,6.66942 C 83.126555,116.77276 40.126713,140.39512 10.464473,113.4579 6.0372003,109.43735 0.1833992,116.73239 -1.5345691,107.78588 -1.8855187,94.859569 -2,67.454553 -2,67.454553 z"
+ id="path8825-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsssssssssssccssscc" />
+ <path
+ style="fill:#005500;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m -1.9999898,104.11919 c 15.0997808,-6.400835 10.4779488,9.65741 34.2989348,16.23088 24.863609,6.86114 63.05375,-5.85136 83.596995,-5.77583 21.00341,0.077 85.61529,-3.01755 111.29794,-9.16188 10.35355,-2.47696 12.92683,-1.87786 12.92683,-1.87786 l 0,75.92721 c 0,0 -5.91279,-3.39184 -16.17637,5.1466 -25.45341,21.17505 -52.06946,10.2199 -92.20894,10.55268 -35.526705,0.29447 -66.885465,5.28102 -109.206335,-3.16757 C 11.165768,189.72493 7.3086609,178.26762 -2,179.46171 c 0.3714865,-36.7001 0.2755784,-58.08059 0,-75.34252 z"
+ id="path8829-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csssccsssccc" />
+ <g
+ id="g4094"
+ transform="matrix(1.1298943,0,0,1,-17.696501,11.237427)">
+ <path
+ transform="matrix(0.07239434,-0.02732889,0.037041,0.1144023,26.89849,170.0357)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.07239434,-0.02732889,-0.037041,0.1144023,96.00332,152.69877)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.02694078,-0.07343725,-0.11277764,-0.03757461,177.39469,123.4436)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-9"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.02694078,0.07343725,-0.11277764,0.03757461,131.96895,82.086464)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.07239434,-0.02732889,-0.037041,0.1144023,186.20497,154.78254)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-9-6"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.07239434,-0.02732889,0.037041,0.1144023,117.10014,137.44561)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8-8"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.02694078,-0.07343725,-0.11277764,-0.03757461,208.12515,43.269483)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-9-63"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.02694078,0.07343725,-0.11277764,0.03757461,162.69941,1.9123473)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8-2"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.07239434,-0.02732889,-0.037041,0.1144023,216.93543,74.608424)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-9-6-6"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.07239434,-0.02732889,0.037041,0.1144023,147.8306,57.2715)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8-8-3"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.02694078,-0.07343725,-0.11277764,-0.03757461,93.2099,72.154264)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-9-63-6"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.02694078,0.07343725,-0.11277764,0.03757461,47.78416,30.797124)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8-2-2"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.07239434,-0.02732889,-0.037041,0.1144023,102.02018,103.4932)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-9-6-6-0"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.07239434,-0.02732889,0.037041,0.1144023,32.91535,86.156274)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8-8-3-5"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.02694078,0.07343725,-0.11277764,0.03757461,176.93669,126.73584)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8-2-2-8"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.07239434,-0.02732889,-0.037041,0.1144023,231.17272,199.43192)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-9-6-6-0-3"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.07239434,-0.02732889,0.037041,0.1144023,162.06788,182.09499)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8-8-3-5-5"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.02694078,0.07343725,-0.11277764,0.03757461,75.24178,124.67265)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8-2-2-8-0"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.07239434,-0.02732889,-0.037041,0.1144023,129.47781,197.36873)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-9-6-6-0-3-2"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.07239434,-0.02732889,0.037041,0.1144023,60.37297,180.0318)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8-8-3-5-5-4"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.02694078,0.07343725,0.11277764,0.03757461,70.77317,51.879468)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-9-63-6-5-1-7"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.02694078,-0.07343725,0.11277764,-0.03757461,116.19893,93.236604)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8-2-2-8-0-9"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.07239434,0.02732889,0.037041,-0.1144023,61.96289,20.540524)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-9-6-6-0-3-2-2"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.07239434,0.02732889,-0.037041,-0.1144023,131.06773,37.877451)"
+ sodipodi:open="true"
+ sodipodi:end="6.2714539"
+ sodipodi:start="0"
+ d="m 76.223709,211.41611 c 0,15.98502 -9.3365,28.94343 -20.853657,28.94343 -11.517156,0 -20.853656,-12.95841 -20.853656,-28.94343 0,-15.98502 9.3365,-28.94344 20.853656,-28.94344 11.421734,0 20.718232,12.75241 20.852222,28.6039"
+ sodipodi:ry="28.943438"
+ sodipodi:rx="20.853657"
+ sodipodi:cy="211.41611"
+ sodipodi:cx="55.370052"
+ id="path4642-2-8-8-3-5-5-4-7"
+ style="opacity:0.1971326;fill:#e6e6e6;fill-opacity:1;fill-rule:evenodd;stroke:#0a190d;stroke-width:5.79517746;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ </g>
+ <path
+ style="fill:#6eab00;fill-opacity:1;stroke:#354b00;stroke-width:1.48919702;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 26.991263,122.01389 c 0,-11.35826 -7.842673,-23.905005 -9.284214,-35.727881 C 16.040721,72.61953 25.491641,57.149018 25.491641,44.019605 26.393947,30.350894 20.742837,17.139212 20.742837,3.6249996 l 0,-5.3803995 3.225252,0 3.22525,0 0,5.3803995 c -1.837153,13.8043924 5.328349,27.8250894 5.019737,40.1029874 -0.436437,9.065082 -9.8388,32.242107 -8.563751,43.10109 1.616625,11.643683 9.792441,24.062173 9.792441,35.184813 0,26.02756 -13.246664,43.99954 -13.246664,70.0271 -0.519947,14.80744 6.998237,28.71299 6.998237,43.33401 l 0,6.3804 -3.22525,0 -3.225252,0 0,-4.1304 0,-2.625 c 0.220685,-12.40328 -6.665416,-23.80402 -6.998238,-35.91037 0,-28.37711 13.246664,-48.69863 13.246664,-77.07574 z"
+ id="path3966"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccsccccccccs" />
+ <path
+ style="fill:#6eab00;fill-opacity:1;stroke:#354b00;stroke-width:1.48919702;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 108.60168,98.486116 c 0,11.358274 -15.657325,38.904994 -14.215795,50.727874 1.666335,13.66648 18.715415,34.63699 18.715415,47.76641 1.77557,13.53693 -9.7512,26.69557 -9.7512,39.26961 l 0,5.50539 -3.22524,0 -3.225261,0 0,-5.50539 c 0.235201,-13.52038 8.820341,-28.06255 9.480261,-38.978 0.43644,-9.06508 -16.661195,-37.7421 -17.936245,-48.60109 -1.61662,-11.64368 13.707555,-39.06216 13.707555,-50.184804 0,-26.02756 -12.253335,-28.99954 -12.253335,-55.0271 -0.40636,-13.6612 7.001764,-26.12426 7.001764,-39.5840099 l 0,-5.6304 3.225261,0 3.22524,0 0,5.5054 c 0.8124,11.7559299 -6.681704,21.2300199 -7.001758,32.6603799 0,28.37711 12.253338,33.69862 12.253338,62.07573 z"
+ id="path3966-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccscccccccs" />
+ <path
+ style="fill:#6eab00;fill-opacity:1;stroke:#354b00;stroke-width:1.48919702;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 68.97362,127.76389 c 0,-11.35826 -15.592677,-39.655008 -17.034218,-51.477878 -1.666328,-13.66648 10.534588,-33.63699 10.534588,-46.76641 0.90231,-13.66871 -6.4988,-12.38039 -6.4988,-25.8945997 l 0,-5.3804 3.22525,0 3.22525,0 0,5.3804 c -1.83715,13.8043897 7.07835,13.3250897 6.76974,25.6029897 -0.43644,9.06508 -12.588801,36.7421 -11.31375,47.60109 1.61662,11.64368 17.54244,39.812168 17.54244,50.934808 0,15.26111 -14.52986,22.94031 -13.10676,36.47903 1.00397,9.55134 11.3601,19.03162 11.3601,29.79807 -0.51995,14.80744 -11.25177,26.71299 -11.25177,41.33401 l 0,6.3804 -3.22525,0 -3.22525,0 0,-4.1304 0,-2.625 c 0.220685,-12.40328 11.58458,-21.80402 11.25176,-33.91037 0,-13.15442 -10.575141,-24.75757 -11.728646,-36.51589 -1.334871,-13.60708 13.475316,-21.58716 13.475316,-36.80985 z"
+ id="path3966-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccssccccccccss" />
+ <path
+ style="fill:#6eab00;fill-opacity:1;stroke:#354b00;stroke-width:1.48919702;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 222.92548,122.01389 c 0,-11.35826 -7.84268,-23.905006 -9.28422,-35.727876 -1.66633,-13.66648 7.78459,-29.13699 7.78459,-42.26641 0.90231,-13.66871 -4.7488,-26.88039 -4.7488,-40.3946004 l 0,-5.3804 3.22525,0 3.22525,0 0,5.3804 c -1.83715,13.8043904 5.32835,27.8250904 5.01974,40.1029904 -0.43644,9.06508 -9.8388,32.2421 -8.56375,43.10109 1.61662,11.64368 9.79244,24.062166 9.79244,35.184806 0,26.02756 -13.24667,43.99954 -13.24667,70.0271 -0.51994,14.80744 6.99824,28.71299 6.99824,43.33401 l 0,6.3804 -3.22525,0 -3.22525,0 0,-4.1304 0,-2.625 c 0.22068,-12.40328 -6.66542,-23.80402 -6.99824,-35.91037 0,-28.37711 13.24667,-48.69863 13.24667,-77.07574 z"
+ id="path3966-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccsccccccccs" />
+ <path
+ style="fill:#6eab00;fill-opacity:1;stroke:#354b00;stroke-width:1.48919702;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 188.11089,98.486114 c 0,11.358266 -15.65733,38.904986 -14.21579,50.727876 1.66633,13.66648 18.71541,34.63699 18.71541,47.76641 1.77557,13.53693 -9.75119,26.69557 -9.75119,39.2696 l 0,5.50539 -3.22525,0 -3.22526,0 0,-5.50539 c 0.2352,-13.52037 8.82034,-28.06254 9.48027,-38.97799 0.43644,-9.06508 -16.66121,-37.7421 -17.93626,-48.60109 -1.61662,-11.64369 13.70757,-39.06217 13.70757,-50.184806 0,-26.02756 -12.25335,-28.99954 -12.25335,-55.027101 -0.40636,-13.6612 7.00177,-26.12426 7.00177,-39.5840094 l 0,-5.6304 3.22526,0 3.22525,0 0,5.5054 c 0.81239,11.7559294 -6.68171,21.2300194 -7.00176,32.6603794 0,28.377111 12.25333,33.698621 12.25333,62.075731 z"
+ id="path3966-1-6"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccscccccccs" />
+ <path
+ style="fill:#6eab00;fill-opacity:1;stroke:#354b00;stroke-width:1.48919702;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 134.14695,127.76389 c 0,-11.35826 15.59268,-39.655006 17.03422,-51.477876 1.66633,-13.66648 -10.53459,-33.636991 -10.53459,-46.766411 -0.90231,-13.66871 6.4988,-12.38039 6.4988,-25.8945994 l 0,-5.3804 -3.22525,0 -3.22525,0 0,5.3804 c 1.83715,13.8043894 -7.07835,13.3250894 -6.76974,25.6029894 0.43644,9.06508 12.5888,36.742101 11.31375,47.601091 -1.61662,11.64368 -17.54244,39.812166 -17.54244,50.934806 0,15.26111 14.52986,22.94031 13.10676,36.47903 -1.00397,9.55134 -11.3601,19.03162 -11.3601,29.79807 0.51995,14.80744 11.25177,26.71299 11.25177,41.33401 l 0,6.3804 3.22525,0 3.22525,0 0,-4.1304 0,-2.625 c -0.22068,-12.40328 -11.58458,-21.80402 -11.25176,-33.91037 0,-13.15442 10.57514,-24.75757 11.72865,-36.51589 1.33487,-13.60708 -13.47532,-21.58716 -13.47532,-36.80985 z"
+ id="path3966-8-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccssccccccccss" />
+ <path
+ style="opacity:0.42000002;fill:#000000;fill-opacity:1;stroke:#354b00;stroke-width:1.46265709;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 30.52332,122.01389 c 0,-11.35826 -7.56563,-23.905009 -8.956247,-35.727883 C 19.959609,72.619528 29.076665,57.149016 29.076665,44.019603 29.947101,30.350892 24.49562,17.13921 24.49562,3.6249985 l 0,-5.380399 3.111316,0 3.111316,0 0,5.380399 C 28.946,17.42939 35.858374,31.450087 35.560666,43.727985 c -0.421022,9.065082 -9.491239,32.242107 -8.26123,43.10109 1.559512,11.643686 9.446516,24.062175 9.446516,35.184815 0,26.02756 -12.778718,43.99954 -12.778718,70.0271 -0.50158,14.80744 6.751018,28.71299 6.751018,43.33401 l 0,6.3804 -3.111316,0 -3.111316,0 0,-4.1304 0,-2.625 c 0.212889,-12.40328 -6.429956,-23.80402 -6.751021,-35.91037 0,-28.37711 12.778721,-48.69863 12.778721,-77.07574 z"
+ id="path3966-6"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccsccccccccs" />
+ <path
+ style="opacity:0.42000002;fill:#000000;fill-opacity:1;stroke:#354b00;stroke-width:1.44404352;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 71.178261,127.76389 c 0,-11.35826 -14.661451,-39.655009 -16.0169,-51.477882 -1.566811,-13.66648 9.90544,-33.63699 9.90544,-46.76641 0.848423,-13.66871 -6.110678,-12.38039 -6.110678,-25.8945985 l 0,-5.3804 3.032632,0 3.032631,0 0,5.3804 c -1.727432,13.8043885 6.655617,13.3250885 6.365438,25.6029885 -0.410375,9.06508 -11.836973,36.7421 -10.63807,47.60109 1.520072,11.643683 16.494769,39.812172 16.494769,50.934812 0,15.26111 -13.662107,22.94031 -12.323998,36.47903 0.944012,9.55134 10.681652,19.03162 10.681652,29.79807 -0.488897,14.80744 -10.579791,26.71299 -10.579791,41.33401 l 0,6.3804 -3.032631,0 -3.032632,0 0,-4.1304 0,-2.625 c 0.207505,-12.40328 10.892726,-21.80402 10.579782,-33.91037 0,-13.15442 -9.943572,-24.75757 -11.028187,-36.51589 -1.25515,-13.60708 12.670543,-21.58716 12.670543,-36.80985 z"
+ id="path3966-8-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccssccccccccss" />
+ <path
+ style="opacity:0.42000002;fill:#000000;fill-opacity:1;stroke:#354b00;stroke-width:1.48919702;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 112.62153,98.486122 c 0,11.358268 -15.657321,38.904988 -14.215791,50.727868 1.666331,13.66648 18.715411,34.63699 18.715411,47.76641 1.77557,13.53693 -9.7512,26.69557 -9.7512,39.26961 l 0,5.50539 -3.22524,0 -3.22526,0 0,-5.50539 c 0.2352,-13.52038 8.82034,-28.06255 9.48026,-38.978 0.43644,-9.06508 -16.661191,-37.7421 -17.936241,-48.60109 -1.61662,-11.64368 13.707551,-39.06216 13.707551,-50.184798 0,-26.027562 -12.253331,-28.999542 -12.253331,-55.027102 -0.40636,-13.6612 7.001761,-26.12426 7.001761,-39.584008 l 0,-5.6304 3.22526,0 3.22524,0 0,5.5054 c 0.8124,11.755928 -6.6817,21.230018 -7.00175,32.660378 0,28.37711 12.25333,33.69862 12.25333,62.075732 z"
+ id="path3966-1-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccscccccccs" />
+ <path
+ style="opacity:0.42000002;fill:#000000;fill-opacity:1;stroke:#354b00;stroke-width:1.44518554;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 137.4293,127.76389 c 0,-11.35826 14.68465,-39.655003 16.04224,-51.477873 1.5693,-13.66648 -9.92111,-33.636991 -9.92111,-46.76641 -0.84977,-13.668711 6.12035,-12.380391 6.12035,-25.8945995 l 0,-5.3804 -3.03743,0 -3.03743,0 0,5.3804 c 1.73016,13.8043885 -6.66615,13.3250885 -6.37551,25.6029895 0.41102,9.06508 11.8557,36.7421 10.6549,47.60109 -1.52248,11.64368 -16.52087,39.812163 -16.52087,50.934803 0,15.26111 13.68372,22.94031 12.3435,36.47903 -0.94551,9.55134 -10.69856,19.03162 -10.69856,29.79807 0.48968,14.80744 10.59654,26.71299 10.59654,41.33401 l 0,6.3804 3.03743,0 3.03743,0 0,-4.1304 0,-2.625 c -0.20783,-12.40328 -10.90996,-21.80402 -10.59653,-33.91037 0,-13.15442 9.95931,-24.75757 11.04564,-36.51589 1.25714,-13.60708 -12.69059,-21.58716 -12.69059,-36.80985 z"
+ id="path3966-8-7-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccssccccccccss" />
+ <path
+ style="opacity:0.42000002;fill:#000000;fill-opacity:1;stroke:#354b00;stroke-width:1.46899056;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 191.13477,98.486135 c 0,11.358255 -15.23532,38.904975 -13.83263,50.727865 1.62141,13.66648 18.21097,34.63699 18.21097,47.76641 1.72771,13.53693 -9.48837,26.69557 -9.48837,39.2696 l 0,5.50539 -3.13832,0 -3.13833,0 0,-5.50539 c 0.22886,-13.52037 8.58261,-28.06254 9.22475,-38.97799 0.42468,-9.06508 -16.21214,-37.7421 -17.45282,-48.60109 -1.57305,-11.64369 13.33811,-39.06217 13.33811,-50.184795 0,-26.027561 -11.92309,-28.999541 -11.92309,-55.027102 -0.3954,-13.6612 6.81305,-26.12426 6.81305,-39.5840095 l 0,-5.6303999 3.13833,0 3.13832,0 0,5.5053999 c 0.7905,11.7559295 -6.50161,21.2300195 -6.81304,32.6603795 0,28.377111 11.92307,33.698621 11.92307,62.075732 z"
+ id="path3966-1-6-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccscccccccs" />
+ <path
+ style="opacity:0.42000002;fill:#000000;fill-opacity:1;stroke:#354b00;stroke-width:1.48919702;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 226.57307,122.01389 c 0,-11.35826 -7.84268,-23.904999 -9.28422,-35.727866 -1.66633,-13.66648 7.78459,-29.13699 7.78459,-42.26641 0.90231,-13.66871 -4.7488,-26.88039 -4.7488,-40.3945995 l 0,-5.3804 3.22525,0 3.22525,0 0,5.3804 c -1.83715,13.8043895 5.32835,27.8250895 5.01974,40.1029895 -0.43644,9.06508 -9.8388,32.2421 -8.56375,43.10109 1.61662,11.643677 9.79244,24.062156 9.79244,35.184796 0,26.02756 -13.24667,43.99954 -13.24667,70.0271 -0.51994,14.80744 6.99824,28.71299 6.99824,43.33401 l 0,6.3804 -3.22525,0 -3.22525,0 0,-4.1304 0,-2.625 c 0.22068,-12.40328 -6.66542,-23.80402 -6.99824,-35.91037 0,-28.37711 13.24667,-48.69863 13.24667,-77.07574 z"
+ id="path3966-2-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccccccccsccccccccs" />
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/Orange.svg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ width="128"
+ height="112"
+ sodipodi:docname="Orange.svg"
+ inkscape:export-filename="Orange1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="959"
+ inkscape:window-height="744"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="1.489975"
+ inkscape:cx="88.580237"
+ inkscape:cy="95.117618"
+ inkscape:window-x="65"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g3957" />
+ <g
+ id="g3109"
+ transform="matrix(1.0331379,0,0,1.0130054,-3.3010509,-0.24371002)">
+ <g
+ transform="matrix(1.0329798,0,0,1.0764546,2.4775277,177.96782)"
+ id="g3957">
+ <path
+ style="fill:#fd872b;fill-opacity:1;stroke:#f57319;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ d="m 51.304166,-63.96069 c -10.207682,-0.867542 -20.243789,-4.635127 -27.999996,-10.511286 -2.10329,-1.593468 -6.881355,-5.843962 -6.881355,-6.072153 0,-0.08124 18.840677,-13.512632 38.677961,-32.747731 19.83729,-19.2351 37.32916,-36.21307 38.87083,-37.72882 l 2.80303,-2.7559 2.07438,2.15394 c 9.629134,9.99848 14.655504,23.78925 13.585994,37.2757 -0.99798,12.58457 -6.00751,23.602736 -14.946894,32.874798 -9.18635,9.528232 -21.44213,15.631508 -34.65945,17.260116 -2.89562,0.356791 -8.77499,0.485012 -11.5245,0.251336 z"
+ id="path3941"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csssscsssscc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#fd872b;fill-opacity:1;stroke:#f57219;stroke-width:2.11780047;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path2982"
+ sodipodi:cx="-22.819176"
+ sodipodi:cy="-42.02943"
+ sodipodi:rx="59.061394"
+ sodipodi:ry="31.208578"
+ d="m 36.242218,-42.02943 c 0,17.236021 -26.4426867,31.208578 -59.061394,31.208578 -32.618707,0 -59.061393,-13.972557 -59.061393,-31.208578 0,-17.236022 26.442686,-31.208578 59.061393,-31.208578 32.6187073,0 59.061394,13.972556 59.061394,31.208578 z"
+ transform="matrix(-0.72680035,0.59922422,-0.60467638,-0.72854865,11.762587,-137.63201)" />
+ <g
+ id="g3924">
+ <rect
+ transform="matrix(-0.639732,0.76859805,0.71021217,0.70398769,0,0)"
+ ry="0"
+ y="-63.931553"
+ x="-125.27991"
+ height="30.56741"
+ width="1.4072362"
+ id="rect3814-2"
+ style="fill:#ffd776;fill-opacity:1;stroke:#f5aa19;stroke-width:0.5109638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ transform="matrix(0.67235945,0.74022481,-0.74022481,0.67235945,0,0)"
+ ry="0"
+ y="-170.95041"
+ x="-54.178646"
+ height="44.102364"
+ width="2.0134568"
+ id="rect3814"
+ style="fill:#ffd776;fill-opacity:1;stroke:#f5aa19;stroke-width:0.50999999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ transform="matrix(-0.67235945,-0.74022481,0.74022481,-0.67235945,0,0)"
+ ry="0"
+ y="73.316986"
+ x="52.724506"
+ height="44.102364"
+ width="2.0134568"
+ id="rect3814-9"
+ style="fill:#ffd776;fill-opacity:1;stroke:#f5aa19;stroke-width:0.50999999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ transform="matrix(-0.639732,0.76859805,0.71021217,0.70398769,0,0)"
+ ry="0"
+ y="-39.901241"
+ x="-125.67917"
+ height="30.56741"
+ width="1.4072362"
+ id="rect3814-2-5"
+ style="fill:#ffd776;fill-opacity:1;stroke:#f5aa19;stroke-width:0.5109638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ transform="matrix(-0.99024252,-0.1393548,-0.22472136,0.97442307,0,0)"
+ ry="0"
+ y="-162.71594"
+ x="-25.775795"
+ height="30.56741"
+ width="1.4072362"
+ id="rect3814-2-7"
+ style="fill:#ffd776;fill-opacity:1;stroke:#f5aa19;stroke-width:0.5109638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ transform="matrix(-0.99024252,-0.1393548,-0.22472136,0.97442307,0,0)"
+ ry="0"
+ y="-123.78313"
+ x="-25.984497"
+ height="30.56741"
+ width="1.4072362"
+ id="rect3814-2-7-8"
+ style="fill:#ffd776;fill-opacity:1;stroke:#f5aa19;stroke-width:0.5109638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ transform="matrix(-0.08785817,-0.99613299,-0.99999937,0.00112435,0,0)"
+ ry="0"
+ y="-100.37899"
+ x="121.80799"
+ height="30.56741"
+ width="1.4072362"
+ id="rect3814-2-7-7"
+ style="fill:#ffd776;fill-opacity:1;stroke:#f5aa19;stroke-width:0.5109638;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ <rect
+ style="fill:#ffd776;fill-opacity:1;stroke:#f5aa19;stroke-width:0.5000546;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3814-2-7-9"
+ width="1.4134246"
+ height="36.565731"
+ x="-108.69991"
+ y="-70.077881"
+ ry="0"
+ transform="matrix(0.16729488,0.9859069,-0.98219628,0.18785757,0,0)" />
+ <g
+ id="g3834">
+ <path
+ transform="matrix(0.9649508,0.88457471,-0.67573977,0.73714026,-22.464501,-132.27382)"
+ d="m 52.685449,-42.86837 c 0,4.540672 -1.577547,8.221615 -3.523549,8.221615 -1.946003,0 -3.52355,-3.680943 -3.52355,-8.221615 0,-4.540673 1.577547,-8.221615 3.52355,-8.221615 1.946002,0 3.523549,3.680942 3.523549,8.221615 z"
+ sodipodi:ry="8.2216148"
+ sodipodi:rx="3.5235491"
+ sodipodi:cy="-42.86837"
+ sodipodi:cx="49.1619"
+ id="path3794"
+ style="fill:#fcde7c;fill-opacity:1;stroke:#f5aa19;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.55692107,0.44000692,-0.39000302,0.36666978,9.6469899,-126.2285)"
+ d="m 52.685449,-42.86837 c 0,4.540672 -1.577547,8.221615 -3.523549,8.221615 -1.946003,0 -3.52355,-3.680943 -3.52355,-8.221615 0,-4.540673 1.577547,-8.221615 3.52355,-8.221615 1.946002,0 3.523549,3.680942 3.523549,8.221615 z"
+ sodipodi:ry="8.2216148"
+ sodipodi:rx="3.5235491"
+ sodipodi:cy="-42.86837"
+ sodipodi:cx="49.1619"
+ id="path3794-1"
+ style="opacity:0.35114507;fill:#ffffff;fill-opacity:1;stroke:#f5aa19;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#ffd776;stroke-width:1.99791515;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path2982-1"
+ sodipodi:cx="-22.819176"
+ sodipodi:cy="-42.02943"
+ sodipodi:rx="59.061394"
+ sodipodi:ry="31.208578"
+ d="m 36.242218,-42.02943 c 0,17.236021 -26.4426867,31.208578 -59.061394,31.208578 -32.618707,0 -59.061393,-13.972557 -59.061393,-31.208578 0,-17.236022 26.442686,-31.208578 59.061393,-31.208578 32.6187073,0 59.061394,13.972556 59.061394,31.208578 z"
+ transform="matrix(-0.6392895,0.52237525,-0.54855265,-0.6425389,16.124617,-136.42274)" />
+ <path
+ style="opacity:0.2;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 20.41363,-121.52941 c 16.696134,-26.7849 54.947754,-44.08447 69.020352,-31.21496 2.932816,2.68208 3.999899,5.0841 4.38017,9.85982 0.403496,5.06876 -0.141491,7.93613 -2.637734,13.87527 -5.381256,-21.16665 -30.452933,-22.39506 -70.762788,7.47987 z"
+ id="path3770"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csccc" />
+ <path
+ style="opacity:0.2;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 41.029298,-142.85342 c 4.739952,-3.49212 9.815419,-6.49375 15.027355,-8.84316 8.69884,-3.92122 15.462072,-5.378 22.491221,-4.84454 6.451797,0.48963 10.920921,2.98436 13.442292,7.50365 0.888003,1.59166 1.14036,2.74104 1.440302,6.55997 -6.419737,-18.70494 -44.723148,-4.34045 -52.40117,-0.37592 z"
+ id="path3772"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssscc" />
+ <path
+ style="opacity:0.15;fill:#f9f9f9;fill-opacity:1;stroke:none"
+ d="m 100.45997,-135.14946 c 0.81257,-3.01852 1.03266,-4.5023 1.1877,-8.00692 l 0.14952,-3.37979 1.50388,2.24691 c 6.39627,9.55649 9.15542,20.98807 7.76184,32.15851 -1.43017,11.46372 -6.20076,21.30662 -14.471617,29.858491 -8.607176,8.899625 -19.617886,14.638294 -31.9297,16.64144 28.387068,-22.152548 37.865847,-40.830641 35.798377,-69.518641 z"
+ id="path3953"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscssscc" />
+ <path
+ style="opacity:0.18;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 101.22635,-138.17339 c 0.26678,-1.47653 0.49032,-3.70392 0.49676,-4.94974 0.006,-1.24583 0.15199,-2.26514 0.32345,-2.26514 0.84815,0 5.26914,8.36429 6.74007,12.75189 2.29139,6.83493 2.95566,15.5134 1.73378,22.65139 -1.52985,8.93706 -4.91231,16.454859 -10.64443,23.65811 10.88118,-31.13981 5.76188,-38.114 1.35037,-51.84651 z"
+ id="path3955"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccssscc" />
+ </g>
+ <path
+ transform="matrix(0.48016759,-0.38790087,0.59894087,0.28471474,46.068156,60.997191)"
+ d="m 29.530697,-20.384773 c 0,2.316669 -1.20194,4.194701 -2.684609,4.194701 -1.482668,0 -2.684609,-1.878032 -2.684609,-4.194701 0,-2.31667 1.201941,-4.194701 2.684609,-4.194701 1.482669,0 2.684609,1.878031 2.684609,4.194701 z"
+ sodipodi:ry="4.1947012"
+ sodipodi:rx="2.6846089"
+ sodipodi:cy="-20.384773"
+ sodipodi:cx="26.846088"
+ id="path3082"
+ style="fill:#fdeaaa;fill-opacity:1;stroke:#ffe680"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.48016759,-0.38790087,-0.59894087,0.28471474,73.992871,58.172661)"
+ d="m 29.530697,-20.384773 c 0,2.316669 -1.20194,4.194701 -2.684609,4.194701 -1.482668,0 -2.684609,-1.878032 -2.684609,-4.194701 0,-2.31667 1.201941,-4.194701 2.684609,-4.194701 1.482669,0 2.684609,1.878031 2.684609,4.194701 z"
+ sodipodi:ry="4.1947012"
+ sodipodi:rx="2.6846089"
+ sodipodi:cy="-20.384773"
+ sodipodi:cx="26.846088"
+ id="path3082-9"
+ style="fill:#fdeaaa;fill-opacity:1;stroke:#ffe680"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(-0.38790087,0.48016759,0.28471474,0.59894087,77.44825,58.388228)"
+ d="m 29.530697,-20.384773 c 0,2.316669 -1.20194,4.194701 -2.684609,4.194701 -1.482668,0 -2.684609,-1.878032 -2.684609,-4.194701 0,-2.31667 1.201941,-4.194701 2.684609,-4.194701 1.482669,0 2.684609,1.878031 2.684609,4.194701 z"
+ sodipodi:ry="4.1947012"
+ sodipodi:rx="2.6846089"
+ sodipodi:cy="-20.384773"
+ sodipodi:cx="26.846088"
+ id="path3082-91"
+ style="fill:#fdeaaa;fill-opacity:1;stroke:#ffe680"
+ sodipodi:type="arc" />
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Fruit/Orange1.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/Orange2.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/Sky.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/SkyL.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/Snowball.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/Splash.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/Splash.svg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,1024 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ width="160"
+ height="500"
+ sodipodi:docname="Splash.svg"
+ inkscape:export-filename="/home/ranitas/Splash.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="959"
+ inkscape:window-height="744"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="2.6700353"
+ inkscape:cx="121.13111"
+ inkscape:cy="316.39606"
+ inkscape:window-x="65"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <image
+ y="0"
+ x="0"
+ id="image4345"
+ xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAH0CAYAAAC6pyZ4AAAABHNCSVQICAgIfAhkiAAAIABJREFU
+eJzsnXm8HFWZ979PdffdcpPcm5WwCQriqygoCooKKuI24w446iABkhtgBmfU1xlnnBlkdHR8B5cR
+heQmkKCio1FwAx1xwQUQQRREUdQIYcme3Ny9l6rz/nHqdFX37e67VfXpeznfz6fTud3VVaeqf/2c
+pc55fqKUwuGwhWe7AI4nNk6ADqs4ATqs4gTosIoToMMqToAOqzgBOqziBOiwihOgwypOgA6rOAE6
+rOIE6LCKE6DDKk6ADqs4ATqs4gTosIoToMMqToAOqzgBOqziBOiwihOgwypOgA6rOAE6rOIE6LCK
+E6DDKk6ADqs4ATqs4gTosIoToMMqToAOqzgBOqziBOiwihOgwypZ2wWYHiL083oUZwFH4uERcAfw
+Q9apm22XzjF9xHqK3i3SQZGzUVwEHAfcD/wauB/FAyiGgCIeLwfWAU8DQAFSsaebEP6RDh5ilP+H
+8A6Ez6N4H33qYDNPacb0y5HA+cBChBJwFzluYrUan9LnPycLGOcwPAIUPll2NPzs1fJkspyA4j76
+1J8SOYdpkq4AN8gLEM5DOAKFQvEAwh8ROlD0AIcCbwaWooBxdEzO1diXDwwBw0AJLb42oAtYFP6t
+gDECOvDKjQvFjaxTb0rvJBOiX94LfATIVL0zhOIbwNfw+Q6XqOHyO5+QTro4FY+XAC9FcTKVV+8x
+FO9jnfp8xR63SAcFbgReFb5SBPoJ+HcuUrsblvNqOY4Mp1Pi21yiHpn+iVaSngD75RTgZ4AWRjF8
+PQsxcejXh8NHYEqFvoy58P8BMBZuXwsjxDEgH35uBearuIs+dXIi55QWG+WpKO6jRDsH0dfCRPh2
+YAH6/DLkgbvCv5YBq4AcAfq8x9E/TsLPdoafhV8A2zBXuMQxDHESebTcF6Ovof6J/xMjXMu71Fi5
+fJeLx2G8BJ93I7yGqO75Hp28gXPVyExPPb02oJBBoRhD2IuOYAYPfYGrBRWEjyxQCB+GEjBKdIFz
+QEf4XAjfy6AvTRE4gBYhfCmxc0qLgJOBdnYTnbNCXzMfLax9QBvtdPIiMujr5KOFV5i4S0ALeQBY
+wEnkOKn8+gGi6wgwgpb0QhbSyadZwMfol3vQV1WxjOeylx6G0d9NJ9ADCC9nnKuA82Z66ukJcK26
+nX75IiO8rUJ8PvqCGbGYC22il/nlZ2Kl84kiqKGIvjwd4fZj4Wd6ws+1A7CPTtYnfWqJk+UnjBAJ
+aYjKiO+hz6cdLcb42IVCi6kYPkzzhHD7LiqvnQr3b47VhRbUaPjIAl20I7wAwnKMEn0nJjDkgUOA
+2g2mKZNuL9jjQ/TwVkYQxoGD1K9G45iLWppsQ/QXYjDibgMWArB+NtVD07hQPcx6eQThCIbRX3gc
+0wQxlaL51syPtx6meWOaMhBFVcMQOgJ2hI8AfU0D9PUfp7L5tCjcn/luAu6d2knWJt1xwDXqAbJ8
+k4VE1W7atAPdgEeBEp9uwhGTweNHtDG1a2R+nI3EF6dIFLlqfSZAi34/sAdd3R+AcPyh8riD4f/b
+wmfhlimWoibpD0QLH2URusAdKR+rjehXCtdzidqZ8hGTQ7iDTqIvtlUx0bcLUPyMPnXPbHaXvgDX
+qtvJ8igLMD2y9DDHyAIBH0/5aMkSsI02KqvLVqQDfX0XAB7/PtvdNetW3DbaiXcOkieHjh46+n2X
+i9T9KR0pHTI8XBbfrJr1KWJGHpYBwqdZq7492102R4CKbeXQndbFXYAWt67CvpPSUdKjwHB5CLp6
+KLoV8NDjhQuBDoaBy5PabfoI28rCS+vithOJWzHrEfqmk2VBUzppM6WbaNAabqJP7U1it80TYJq/
+bnMW0TEeTeEo6aLoLt8JakUhtqOvs77G25PabXNmwwRsK9+7FWYm+0YN8xyKDAE5RoAxvOQuUBPp
+AnQUz9Ba1bC5JRipJbEfuP3ZMI4nNG5CqsMqToAOqzgBOqziBOiwihOgwypOgA6rOAE6rOIE6LCK
+E6DDKk6ADqs4ATqs4gTosIoToMMqToAOqzgBOqziBOiwihOgwypOgA6rOAE6rOIE6LCKE6DDKk6A
+Dqs4ATqs4gTosIoToMMqToAOqzgBOqziBOiwyhzziouxSVbi82RG+VWFqYpjTjH3smNdJd1kuQk4
+LXxlBLgZn/dxsdpmsWSOGZCmVdfTEDqAURR/pk9VW81Ub78M4WXASwlYCOwFvssoPyxHuPWyAuHr
+CM+vsYdBYA19auuEd66RJfi0s4NdXKaCiR+dj4hA60eX5AW4QV6D8N/AMbFXS8CfUfweCR8Bvw8F
++vLwcSK101COAw+gbVqORrGKQbTnRUDkpRblnv4vSvx72dSvX94AbEZ7KN2B4jzWqT8kes6txObF
+r0S8fwZOAgYQ7kCpL7N6YOIPswVIVoCXS5ZVbAdWkY+97qFbm42ynBpXHvO5HNpCKp7UfAxtplLt
+oCTAEnQeY81B4DoEQXFp1da/YQfPmpeR8LqePpRsoBjAWAk8gc4sZASEyzjvwKxtFZIm+QjYLz/C
+57SaSVyNFat5Fia6PFaTIeqrN67EtWAXEol9HO0AFKCNCyOXzmewTv12SuczV9i89FQk+CF7xtoY
+yFe+15WDVV3gyQdYfSCR7PZJkbwAN8obUdzAHvSXX0SLwXZ/+7ByGe6lT51otzAJc/3SRRT937M/
+fwj7xqMfXpHI26M3A4d1F/EyJ3L+vpb58SU/DriWrwE/pRctvBF0d2IXuptgo1ls3H3gUTKcZaEE
+6VLw38qor8U3iLZoLaCvdQH92l4f9ozlkOBq3UFpDVIYiFaKgIvJUipXh6AvxijaCK+Wv60xXTau
+6HkiA+v4NkNoQ71d4fOB2Pb58P8HiFw0M2hnHy2+l3Kh+uPsz7HFELmAXaNR5KvFCLC7AAX/NLYs
+bpkfYZrDMFcQ8B4eQYul+jAe2rbBQwuyXhsw8qaYvA1oELTosmhP27Z5LL7rlj6DkcL9PDoMu2lc
+w2SAo3Jw6IJ7WX2gJZoh6d2KK/EBPB5lIbVNCo0vbdwFvRYBkRnzVFmAvtjLgTYemxviE2G9nMzV
+chyXyzS+F/+FDBYis++GmwJ7ipD3T2Dzkr+cRWETI907If1yNkW+zOPoqnc6IpopHlp4S9E9YuF8
+1qotTTjyzOmXLuAO4FnhK0PAL4FfIPwM4XbWKD2u8AnppJOVCMficSySW8NI8dkI+sdqTKz3o695
+9Y+7GzgqAwu9Xajit1A8AHyBPrVjkjLmCHghGR5nrXowmRNP/VacCP3cw25OZBB9QdKmCy2+QwHY
+RZ4ncanKN/yMbfrlPcAVZbf0DLp5YuxbdTwcRXenKqOjMa6OC80LtzSdwPh7C4mEGo1O+Ag/QHEz
+Hv8LDOGzFGEJihUIrwDegB5tBdiF4gOsU+tne+opD44ohciVdHMNY+HRGlW3SdCOHg/UfKblxQcg
+lBgh+oEacRi0FW1XOcoFRMKrFz+MCNtj+1LATiprohzQRYZOzqSNMys6fj568H8M3U43QzoLWYlw
+NRvk+7O9q9SM0bk7y0dJW4DGj04LcAy4OsWjJUfAzrKgDqCvkel8ZWOPDFpECi1Cv+rZCNdDC69A
+peecudtkRNZG1MY+GPus2VdANGJhvruxcPul7GEds25Xpy/Acf5YPkrao0/G6K8DUHyfdclYiqaO
+YhcZ9JdrfqAm0s203Tw++SaYSWzxO1PxdmR1sGhDV8L69ugdSUx2SH9C6qU1R/3SwbSbADzuatpx
+Z4uwEA9704NNZBsluh9fq6YykVO3L3+RxKGbcMpKYU4n7bsguq2kCbg75aMlh8eTCWj9+emmPamr
+7l8mscvmnLIKK5JmCNDMnmmbQxEw4GiK6Gqvlan0DE5EO836zaUfAU0VpiPgTs5Xe1I8WrIIR1Mi
+/RGCJDA/Eo+lSeyuWY7pOgLGb6vB1DsljbdTCKbH6JNlB/Cb6RfSIsIIigPAYjIpddVUg/3WCwzV
+r0e9bYW5wz5L5t6aEMe8otWbvY55jhOgwypOgA6rOAE6rOIE6LCKE6DDKk6ADqs4ATqs4gTosIoT
+oMMqToAOqzgBOqziBOiwihOgwypOgA6rOAE6rOIE6LCKE6DDKk6ADqs4ATqs4gTosIrt1OGzY6O8
+HMWrEAYpcSUXqwO2i+SYHnNzWeYnpJMutiCcE3v1AIrLWKeutFYux7SZewK8So4gy41oJ6BavJs+
+9YlmFskxc5ITYL88Bfg4Os3sEoQ7UdyKcCuKu2p6xV0tvWQ5E8WrgFei8y5tR/FtPLZMSAW7Qd6E
+sBFYwig6m1MBnY6jB9OgUAh/xVr15bpl3SoZ9vFisuxijXpg9ifvmCnJCHCDnIFwIzoBbC1GEG5H
+cSuKexCeB7waOJl4so4SlNNsACh+BnwX2IHHGSjOKuc/rrYjEExGfNAJxt5Mn7qpYputkmE/b0d4
+P/BUdJKJd7BOfX6GZ+6YJckIsF++ArwZ0PlE4nmJ49Zc1X1uhZbKKJXJGTNoKXcTF6NO3X2Qif4h
+xD53aMVxvo3HFQSMILwMxQVUmigSluBw+uZIMsupcNWKbrqKF6Lk6UhwNwsOXsfZqnl5GqdBUgJ8
+GDgS0NFpqM52JuVsjsimoZFloKBTgmWonzSxmg502pxM1esBlKvtdmBxxbuX0KfmRjrfydjUvZJc
+7g58dQSlQMh4ioz8ljZex9sOPGy7eNUkMw6ouH5K2/lEbkbGRLDxfrVIqzO9N2IceAxtD7YvfOwG
+Hg3/b3IcxxHmh+P65ZIlk/siA4UnsW0wy8NDGbYdzLJ77HjyfIHLpeWG3ZIR4E7+DfgmAL3oCFdE
+f/F7mFq+4plgvNBqvT6CFvowWnTxQN9Zse2NPM78aAMe3XsRpeA09ox5FembD+Y9xkqn8KSei+0V
+rjbJCPAyVaKXs4BrEbQ1ajvas8NHm+cNJ3KkiCG0Bdh+dLSrlV20yESBZogL8BsIb+EyNRdSQzZm
+q2Tw1d8xUhSU0j+6uC/fWEmAi+wVsDbJ3Yo7WxXoUxci/DNZtFlMN5FN1zA6KtXCRLIxoojVSBLV
++ypR2StWUDbGGYy9bn4cHiDcTC9n1xwemouMLn4DHkcxWtKJKIfRP8CB8P1xXxCeyube020VsRYp
+2LWqjwB30IXuyS4kShxuerEmHW0+/HsPOpIdRF+4g+iothctrHj1OUjtaGp60kW018YoWnDxzsby
+clluYJw3tWrPcEYoeQ2gI53xHIHI62M8FKbwOhvFq0c6jVKPfyTgxyxEi64HLaaAyHlnKpTQghsi
+6jnXi4wKLdw4i4mSli8FOlHAZfTxoSQ8LloKxbMZ94VATWx25IE2BXlfaMs+w0bx6pHObJg16ico
+vkUO3Rb00CKcKaaKnk5LrQs9JAO6Y9RNAeEN9KkPzjvxbZEORP4Po0Ud5arNyUwncMwXRD0BBAiQ
+4f2Aojv82xjvNQvT9uwFFgHwTtaqbzSxBE2k91hEZRkrSc2RAeN6pDsih3DN4iUTdmGJ9AS4Rt2H
+8D8sIKroOxp9IEE6iCy7tPiupU9taNLRLaCOBXSEK1A7630eGAurkEymZaJguhNSAz6EYETQPAGa
+YZbod355k45sB1HHUAj08Eu9Pn0eKAVCSQE8s3mFa0y6AlynfgtspxtiXh7pE/fahd30qe1NOKo9
+AjmWQtjtrSfAIuHtz5KAOrlJJZuU9KfkK35QvqcL6bcDjetjJPRETPVaGuEY8oHugDQaJSig24FK
+nt+sok1G+gIUfg5E1W/1JIGkMWcUCX3umBZukBPYKK8M51ZOh2Mp+rqz0chvLo8ekPbUU/jsokSs
+tmZL+hWiYqAiIqUtQIMRoOJXTTri7OiXNQgbyx2IDfID4FPs5JtcpmpP21gvK/C4As87lEWBlDtf
+u6k90SMPFHzBLwl+/gNskP3AHQg/pk9Vz7A08ycvweNVwF4U9+PxA9aoxGqV9Kfkb5S/RPFNxtAX
+pkhkTZ8G7eihl1XodqDP07hY/T7FIyZDvzyEz5M4gBZPDn0rM8efUXwO+BOK7Qi78TgeeBGKt+Gz
+lDw68mXQ5++jZwTtQVe9GfRA/Aqi4SnzteuKuwDcjeIuPH5BwEhYggspcCZQOZ9TsZF1qi+J026G
+AE9HcSvj6MkDPvrCpIUR4BGAR55eFnC2am0j1C3SQ4EDPIq+Psa6NUN0P93Mi/SI2nPj6DtFCi1a
+Cd/vQo88mFpAwm1Hw33HrWHbwn2bTpupoQroW5rxNmUWfXdJj+0+KYnOXTOqYD091Xg1NmMlsvmi
+4HctLz6APM8vi2KQyokVA2iBGK9ePZFCC84nurVp4oiHbm8PEA1HBWjRmUm9pq1omkZm1roRn080
+OSQIXzeziErhc4Y3AJ+a7ak3R4DmlwlTt2idDdEv/7dNONosEUE4h3G0iKrvk/tEM7nLH6G+xWp8
+5neGSKz1Jv8WaxyzmvjkkV70ZJDF9PE5uYZzVb05TlMi/XjkV0XA6v+nQbSO5PGUjzQ7rpVD6ecW
+xjmfISiLcDKm2moyt+Amm3k+HUbQkz7yPIMxvsBWmVW3Mn0BLgwFGD9S2keNLsmulI80c66W4yhy
+J/s4o7yEoHo2TytSQHcidwCjvI4DfJMtMuN7XOkLUIdoH4n9DqsjoNR5eDUemfJDVTyy5YdPhkeB
++1A8SCtyjRyD4jZ2cji70F9oWssWGlHvuk/2KKJ/MHvwKfFMSjxvxkWYc5kRHPMKlx3LYRUnQIdV
+nAAdVnECdFjFCdBhFSdAh1WcAB1WcQJ0WMUJ0GEVJ0CHVZwAHVZxAnRYxQnQYRUnQIdVnAAdVmm5
+pNXTZqtkGOBs4GgU+/C4jzXqZ7aL5Zgac3tCar8sBm6Bqhm5wm0McybvUvMj+/08ZnYR8EpZRAdn
+oHg6ip2081VWq4HJP5gAW6UNuJFq8QEoXsgC/gN4d1PK4pgxM4+A6+UoPG4Cnh57NQ98G+GLFLmZ
+S9TkufGvlHY6eTKKYwko4PMbLlGPNPyMThnxhbJb5gjR0sJ29LrVLAGKZ4YZuhwtyswEeK0spMSD
+aHe2eoyj+B4eN6L4RtkKq19yeLwYxV+geDVwHBM7QweBryF8hrXqrop3+iUHXA+cTQm9OKY6Ja2H
+zoyg2MI6dX7Dc9HV+N8Cr0EYQfi/rFH3NfyMIzFmJsCNci6Kz5b/3oVe1ZVDp4XoIsqMr/GBn6LY
+j/Byqk0NS1DO7GlWvUWLy39OQD/CrejEEP8O/AWj6NVk9da8HgK0UyTgRVykfj7h/X5ZBvw9Wnzx
+XPrb6ORZs11w7ZgaM2sDqnLOU43JSVxEx66DaBF1oavDDjIIp5eXY5bQVaaxW60loiw6B0k3J5Mh
+SqhYzy2zGp2QI4fHt9ko72Et19FPFsVpCG8EVhOl6onzZMb4MPB3kxzBkQAzi4Dr5Xg8fl3+ex+N
+nZAELcQcWnjTdefoIMr6NBWPOdDiX17nPeNBZ8rSRjydL8BB+tRs8vo7psjMOyEb5EvlTkCAXinf
+aoZXpkNiFlRDJLzq015BpYeczxIuVgdSL+MTnJnfCRHOR7itvJflNCfxUBzjN1wvp0oenSXqALra
+NlV3rW0nGmAflVg5HXWZ+ThgnxrlcjmNVVwCfIg2FrOMKPefydBk2oFJi3OESl9iQf8Iav2kTKqx
+LurnqK6s1hWSuL1ic/jcwhX4mfNAXonOEngbyvs45+9rPLRliWTuhGySlSiuRfEaBtERxyfqpZqk
+iV3Uj7km/ZfZPkuU2DyOj+7k1GpH9lZ9RlFpbLgoLEM1Heg2YCTOm+hTf1mnpK3Llu5DIPc9FMcx
+VhREoCOrEPaBOpfVA7fYLmI1Cd6KE6GfjwN/z170l55HizFOB1oExgW9QP2esIfpRevtjZtmvSJ3
+Q9mZqYSufuPtUiNQM1xkEj/qH8VDKH4J3IDwpTnnorl54XIk+0OE49gxmmGoEJoTCizpCFjSPgzB
+c1l98A+WS1pBgpMRlGKHvIdVnEAvL2UM/eV2U9lDHmfqmaACtJCnOiIXP84IlUJtRwu5l2gUUriF
+gC+R5dtcoFo7l+BkSO5sRB3HUFHK4gNti7dvzMMPulneuYWtclorZY1NdjbMZSqgX95Ohl+xmBUc
+QAtwjMb2AUlSq+XWia5+l2JG/vII72atuqpJpUofQfsA7xvT8dw0P0z+54G8x5KOkxnpeRvwOUul
+nEDy8wH71A7gPyqSZHc32D5tFqLvcyzGiK8EnD6vxIcISp1OIRAKoWGNqTkOEN2qHCsJSl1sqZA1
+SWdCaifXAPvLFq06qXXz6USLrtK4ej196k4LpUmPzy96CsJShotR1Ws6aWbQHWC0JHjyPDb3PKfZ
+RaxHOgI8V40gXFXubEDtm15p4hGZJC7AnOkBMlzW5JKkTxHtepT3tQAVlZ5xRozmfeHs5hWuMelN
+yRe0Papp8DfLKdPQRTT2aJoAwoe5UO1vcknSxxMd3+OGhfEOmElWbgSIPLWJpWtImn7BjwJ/Kkc+
+M7bXLMxttfh4onBTE0vQPFTYwDDtv1pjpAV0j7gYgJ4C1xKkuyhJ8ZMKA5RmOabXPuYga/hdk0rQ
+ZLylFAMtMKgvQDBR8OjZ2iskRdqr4n4MRBGorf6GiRKv7qNj3hV9Q/MMFRxJMajd/jPEBSi0Mbz4
+Sc0qXiPSdky/HWi+AOPHiSLg/Or5xvHkiHL1W93+Mxi7LrOdZFqiHZiuAEs8BEQiiDzc0iVeuUS2
+rRNnRc8XFEdSCu9lNrqBWCDqqBAcm3KppkS6crhU5YF9FYJIuyMiRAIUIgH68zgCEhNgozmZeSAf
+GMug6Zpip0Iz4tFjFaJLu+lbHf10hbOdS9TOlI9sh8slC6zCV/pMGwmwSNgT9gXF0c0o3mQ0R4DG
+YhTSj4Dx/Udtwfkb/Q7vOQwhM6UIaDoohQDgyamXbQqkL0AJHStNZEo7AsaHep4IAhQ5AoBiIJSY
+3EmzgL4nLDyZ/sNqzY5sKukPDQc8Vm6XlZpwxPj+Te87YG7kitkkz0dxCoqH8bg7HMxvjHAUgS94
+amqLtQKgUNJDMbmxlwHfmrBNvzwlXDm4DOEm1qifTPdUpkr6uWH6pQ/YwB6i9RhpmqiuIHIVPwIQ
+SoywqKXzxOjF9h9Fr1OOL164F/gGHl9nDfdUjGNeK4dS5P0IfZifnSJa/zIQ7qkLPQ1tIbpGKNdA
+AiI7CIIvA79GuJ+AP+NxKopNwFKikcVPsoN/4DKV+LKzZgjwL4BvsZ9oDcce0pkfmCFaitkGrALg
+HvrUSSkcLRmukiPI8GWE51MABtHzJz10cyL+yMo4nhQpBe3kaKOIvqYBUdXbET5MU6SIng1TRF/z
++JKHLJEos+Fx42lOuoiECz/G4xzWqETDRzOq4MfLPr+GDOkIcK51QDbIa8myGZ+lDKAnkJosET6V
+PslZIKM6yKkOvNh21Y7oZnszAhAQCS8uwEzsWYhWGJr95dCiHcHMqTwN+AUbZA3r1HeSugTNmB7w
+GMCEscDpLk6fCvEOSLQ4qfUE2C+vAC7D51SG0VHMRJ7JrosRWMDU2nxTwQiw1usdYZm0EA+jm2/T
+L3cg/Btr1fdmfej08wOK0M9uxuhkb7gmbRQYTGEVcS+KzvBSLmeUNnx8TuFi9fvEjzUTNstySmwk
+z+vZh17dlw8frXiXOv4NZTCLuBS9FOmhQJavkeHvZjPFbW4nqHTMeVyOaIdVnAAdVnECdFjFCdBh
+FSdAh1WcAB1WcQJ0WMUJ0GEVJ0CHVZwAHVZxAnRYxQnQYRUnQIdV5r5fsOEaOYYSpwLD7OQbaUwf
+dyTP3J+OtUU6KPBJYA3RtNftwMfo5Brn+dbazFyAV0svHn+Bx2vQc5EPEnAD69TNSRawIZvkcAJu
+oJZnsOY+2jiF1WqqadEdTWamdq2HUuIu4NAa7/4C4W2sVQ9OaV96RdhTgKeh8BDupk9tn/Rz6+Ul
+ePwPASvL6ylAJ6NcRLxx0U+fWjelsjiazvQFuFUyHOAO4HmMoKdtmxVWUZfmAIo+dnIDl6nKlQva
+L/j5BJwBnAGcwsTMgY+i2EAbGzhf7ZnweW3Z+g8U8djNxIQ8Jie0yVGteAPr1Ncbnle/5FC8BeHF
+aK/jn7GTra4tmS7TF+A1cgw+f2CMiet7M+gItBATgf6E4kaEhcByhJUoTqRexugSlcmFII/ii8AN
+ePyegGcjvBc4iTH08s5GC3NWYjKl7iLgWVykdtfcbqO8HMWVwNOq3vkdAa/mIvVQg6M4ZsH0BbhJ
+TiLgbnygnvuYENkj1EvFYZYBxh9mqWYWvSa1siqNPjeAXtAzGRngMExk3gO8lz51Xfn99XIUHlcA
+by7v25Q/4pv0qddN4WiOGTB9AV4pi2gPv/4dRB4UNfdOpWVqCS2yIvUTKVazAB1VzTrVgUmOWU03
+sKzilZ8i3IbiGOANQIYx9IJw47rZS9zWYTt9qiWyic5HZtYJ6ZcNQB95dDWc1PrUtOhEp6eIR1Pj
+JDRI7TbkEZjIWaSP9nmb3tcyM7sTsoO/QXEj7cAhVFaz0/GCS5Ii9X8IY+jl8XvReVN2oZsP+6id
+UVQRr4Zz9Ic+HI7EmcVAtAj9fBh4H0X0l1oiskfNEFm0poWPzipQoDI3ygKmdo/HR1fn1WVchLZv
+1fyaPk5wETAdZn8nZIO8A2ETJXLsRH+he2PvmwQ3STOGFl+t4mfQVW6j3AujRGOHK8LnLHroJu5t
+J7yFterLsytsk9my+FjEex0QgPddztv3G9tFqkcyt+J0rpOvUqSbnegeavwGmHGrrEWJqFNiMjhl
+iTx9q3vRJiPUZG6+pvNSTSH8vBndWxhutzgsYyTaXxPwTi5St05ypNZiy5L/RNR7yn8rApR6P+cP
+XGGxVHVJ7l7wBnkuws0UWM4OdBSMD+Ea82lBi8zYR03WgWlD96QFLZ7ptC870eIy2aSGiXrQWbTg
+FqOjpRb6MIqvIHyWPm6dc9Xu5t5/weMy9o177M97dGQU3TlFb3sAvI+3Ypi9AAAgAElEQVTzDnzM
+dhGrSXYywkY5EcVtjNHFY+gGv+2vUNACjKeDM9ExGm7ZjnAlio30qamMMLYeW3qPQvgDoyXh0eHK
+emNxe8DKzlFU8JxWc0xPdj7gWvUrFOfRGbqXWc9AjP4BxMXXTTQ2qMX3aXbwFNaqK+as+AACeSEA
+e0LD6njtcjDvMVLqBO+/7BSuPslPSF2nvoLig/QSefW2CqaHvBjopgCspU9dOi/u93rBqZQCbcVV
+QA8x7SNqBo37AryKTUsPt1bGGqQzI3odHyDLbnpojSgIkX9wJ7rqFS6gT22yW6gEUXIyY37klmki
+v2nzFnxByJBV77BUwpqkNCVfKRT3s5jINtU2JhrrGTI/Zq263mp5kkZYxlgp8oszlE0Kw1Co1FlN
+LdckpGlYfT8eutqzPfHfDIp3AO34KN5puURpsKjsmFlLgIVA8BV4HAvSMg2jdAUIejyvWS6Z9TDN
+AD0WuYl16l57hUmNbopBlIjcELdv1V7BHWxacljTS1eH9AQYxATY3njT1GknmuIlfMVyaZLn+qWL
+EDyKgTT0Ch4P24i5oCVsuiBNARbQt39y2K2CjQ+G/hH4FOeIa9J0UKUVlFRoRFjj/Uq3dFCt4RMH
+aQrwUjUIPEIbkbWADYx7uhbgfVyihutvPEcpZA6hVKP9V34/fM6HA6JKHdOUck2BtGVxf3m1h60o
+aI6v26G3WypFumSClQ0Nq8sumb4QKPCeCBEQQPGbikVLzcYcG7QAFbdZKEX6KG8lRSX41L/1Ga+G
+lRzfpJJNSroCFPSKNlvtQHNHNIexu5qfEVCplfhBY/uzio6IHMuVYrtrCKQvwOHyUWwI0BxTX+qd
+XKgetlCKJiCH4KvJ3dJBtwNFZVnQU70C0ApptwG1P2blUsvmYdp/WoDzr/drELUSP5CGETBAC9T0
+hEWe2YyiTUbacSmKgDZ6wXEBqnksQNRKfDW5A2kByAYSDlS3hACbFwHjz83AdEAE0wacvwIUWUkx
+aFwFQ9gOVOHEBHVyE0o2KWn3gocqjtJMARrxtQGCTwd3N/Ho02erZLhcZvZ9KFbiq8ZVMEQC1ZMW
+TuGqFbUWLWg2y/K67yVIulWwMIzCjgDN/Wfd/ru/ZdO0aUf5i4EXs4p2NsifEX6H4gHgd3g8wDB/
+4l0xS9R+eRpwPopnIHQgGZ8lSg/BDKEXXBmv30VEDupt4YO8hx+00zbyMTbIt1D8mYCHyPAcPN6K
+4hUEPJl+eRjF18jw36xRf07j9NPND9gvRwIPM4xeIxKfIJk2PWjxLQcWsIE+dVGTjjw1+uVFwEcI
+eBEj6EVcZh5fhmjstPyQgIyMEwQdFPEoEGWXMF9hjsrJH4ooG0WJaJa0cUrPxI7lhfsbD8thXNM7
+0JN32/kE43w4vMOVGOlGwAzDZet5aG5HJN4BkRZp/31COunidQgXUOAVDKO7aYXwYfLjmIXxXvyh
+PDKqC0GLw4gqHj+k6nOE7wdUOqzHtzH/N71kM5vGCL8dGKSNTv6Rbi5hvXwe2MJF6udJXJJ0Begz
+BIwjeHjkyCBNEaG+eIoMAVmGKXFHE45an6ullwzvJMM6DrCEQXKMoSgi5aWo1RjhTJXpNm8atRfj
+KxfzmI6coo0FtNHHQt7Bx+WPdPIBLlZfm+aRKw8151P0OuY0Lku+wypOgA6rOAE6rOIE6LCKE6DD
+Kk6ADqs4ATqs4gTosIoToMMqToAOqzgBOqziBOiwihOgwyq2E6clg7YP+zvgKSi+xTq+OucSjD9B
+SWY61mZZToDPoww2Pd3tVXIEWX4KHBl79R4U/8A69f2mlsUxbWYnwI3ydhTvAZ4dvrID+ARZ1nOB
+GkqgfI3pl2XAT/B5GnmiKekaPzTOnlsmM08wZi7AfjkbqPflPoZiDevUd6a8v2vlUIocAxyJ8Afg
+HvpUfTuaLdJDgVsY5bnsJZo9vBC9HkQvhB+jjUNZrQamXA5HU5mZADfLcoo8ACylROQTZxaxLAz/
+r7gej/9mrbprwj42yUp8zsTjTBRnAquqthgHtqL4T9ap31a8c40swee7jHESu5mYkMdDm1Xr9SDn
+s1ZtmdqJibi2Y3OZmQA3yitR6Oi2l8hzLc4iTDZ6gF8C9wFLEJagWAEcW95WES3KyaBXdeVi7+ql
+gZ+mnTsZ4UQ8riLPsxpaxWYAbUhwBevUe+uei46k5wNnAycDQyjuQfg4feqmxhfCMVtmJsAN8iaE
+rwKwG70OtRZtaBusenmYSmg3pTFqR7Fuarumj4fHnWzRzgqgiwE83swaflgR3TbICQh/C7yN2mYS
+AYpXsU7dMslRHLNgpsMw0Yr66tVYAdHywAK6W7IAXS2bbKUKbWh4kPr57AK0mfQQla7pY+j1xVP5
+3RSALnoI+D79bAcZCEuyEGEZo+j1uGPh9hki0euVfK8FnABTZGYC9PgjigLQVpH1KgAOoMWxhGiY
+2yy8NnYJ40zudmkwzuYzSaw7hI6+2qvkSOBI/HBfccfM6vJn0aJXHDqDozqmwczuhKxVt6N4IzBO
+D1F7Lb5oulZ0MwbTUxXfbPHRHaTt4eMhtFP6ARpnaIhsJZwAU2bmt+LWqZuB1+MxxgqiVfbGGamA
+rkJbgXhWANARuN7CbJNHBUCxM81iOWZ7L7hPfRfFa8kxjsmltCC213FMgrZ0CNDtt0F0tTrZPZh4
+p6dWwsw2IJ4TKsMnEiilowHJ3IrbIK9C+DoDtDGAjn4DRFVwN1qYtSjFHiaPjMlLkqvzGfO5ASZG
+snru7EV01Svonnn8p5fDdE1Mp+rXCP/MWvWtBiVocebGmGaSjumvR/gKO8kyjo5+cfddkyrM9Jqr
+HcxrYVzWu6gUTJ7GPeglVIrXR0e+gChrFuG+F2N6578CvoTi23Payuu6nj6UnAO8ABhAcTdZ9UHO
+HWjJ/IjJ5obpl4vxuYrH0V/6AaLs7EDZvDBAC3Q6tKNFVZrCZ+NRUIXlKKIjXBe6+l2CicpfIuDj
+SWV7ssrmJR/FU+9msCCM+UJXVtGVVWQEUH/DeQP9totYTfLJiTbKVkY5i13oL33/ZB9IAUFHtiw6
+yo6jhWeq2FVAG0XgUvrUBgslTJ4tPe9F5MMMFoSdo1ELN+PB4Qt82jJ5CF7C6oMTb4taJPkJqYo1
+dPJnFmPPKVOh24d70eITojboUqCNPPCyeSM+AOSvKCnYPVbZvfIDeGQ4QzFoR3kftVS4uiQvwD51
+EHg3vUTVpm06iNqT+h7OJ+hTP7VZpES5ZvES4JmMFrUVF0Q/wCIQKNg96iGcytU9vfYKOpF0puQr
+HgS0AG34g1Rj7vRq8e0iy4ftFSYFMt5pCMJISX+fpp1cIhoGGy0JBT9Lh/cqS6WsSToCFB4D7HnE
+xWkjyoGs/YL/tSmTZZvLkwAtMqi802TySAMMFgVRZzS1ZJOQjgB1NTxKDvsR0DQBtPjy9HCdzeKk
+gmIhJaXbe1ApQDPVDWC0KMDRzS1cY9JcFfdYOfI0056hmrhfnHAvZ6tCo83nJCKLyn7BUDn0Ff+7
+EAiqYu2MddIU4ONl4dlc/Bl3zFS01BBEgvRQDKOfsWaIYwb7lYKSf7i+S9IapBsBW0+Ac3+wuRai
+VlEMI2Ct+G78QQCKKkf/skOaVbTJSE8aqgUiYNwLQ5uyzM8IqDi0HAHrTXUrV8O+0FE4ohnFmgrp
+SUNaQIDx6AdDrOF3lkqSLsKqchuwngBNNVwIoCRHNaFUUyLNCDhW/n8rCFC4by7MDpk2W6UNxTJK
+YQSsNyUtHgGFZzWjaFMhzQgo5fEnW01e0wPWEfDXlkqRLoM9qxCEktLXu95E27LzkS8IJzWvgI15
+YgiwDVDcZ6kU6ZLx9Hpqfwp+wXn0bbmCel7q5ZoizakcbVV8cQHO1whIcCil8AJPxTEdoOj3sKX3
+qBQLNWXSbANGEdCGAE3P18ywnq8CFIk6IFNyTAfGfUFUS1TDaUZAsRb5ILoFp58fCW8Pzj9UcCh+
+eKEnE2BA6AnsC4G0xKSE9KYK2I6AldVv67b/tkqG/RwPPBMYQniENrZNmlCpX7qAxeQWPpWgJGWL
+1VoI0cQQDyiUBOEsPnfI33Puzkon+c/JAsY4GTiBgF+xlNvTvH2ZngAl1vWwIcDKCNh61W+/LAb6
+gL9DcVjFoqwSsEH2I/wJyQCym4LagVJtdMhTCfyVKI4iQCgN6c8cBqxAMUrAGB4eUp7/mCVamqqA
+jILCQA/INjbKb1E8is5h8WyKnE6JHIL+8R5gmH65loD/x0XqsaQvQ7qTpWxWwS3ZARFhE88h4K0E
+9DHCQkbRy0SL4SNav7wEjyVk/WiFYCZ8Px9ua9zVy7tHyJAhg/7MGDqHjnFBj6dN8YCMWkGGFXhE
+5tSl8D0zm72Tbrp4J11cRL9sAf6HHfwkqUSkaVbBBWAYYUF4Yabz2caYiwhUxFn9ugoXyOfxCMjx
+IILdFWHr5Xh83k2BN5NnEUNocZSIhNeKQ+TmOus5lW20sZZuLqCbg3xKbqGdq1nHT2YzwO8c0x1W
+cVnyHVZxAnRYxQnQYRUnQIdVnAAdVnECdFjFCdBhFSdAh1WcAB1WcQJ0WMUJ0GEVJ0CHVZwAHVZx
+AnRYxQnQYRUnQIdV5pcALxePfmmFrNSOKTL7GdFbJcMwS8jTxkU8biX/ygY5DeE/geejzVk+inAl
+faqek7GjRZidADfJywi4CjgufOUh4Hp8PsbF6sDsizcFNsrbUWxmYj7++4FTnAhbm5kLcLMsp8h2
+IhvqOI+iWM069f2G+1gvx+OxGjgV8BB2oriFLDdygXp80jL0y7uAj1E/+8y76FOfnHQ/DmvMXIAb
+5HKEfwOitLAe1UnJryPg/RPWk+rFz/8CvHfCJzRFYCvCJ1mrJiaV3CptHOAzwBoU2i1zBL20sAPt
+kqSXY36TPvW6aZ3X5eJxCE9B6KBPtchyzvnLzAW4UW5C8RpAG6IYR/MMkfNkJK3fAj9AsR9hKXAW
+sBKgnFKsRLSCv1KStwOfJMt3uEANhVGzH3gBeSIzloqzAg4HMuxgB0dOuoZ1k6xEcS6Ks9AZCoyz
+yFb61DlTuRyOmTEbAX4NxesB7UJenRYiAywjMrCOkwdGw0etjJ7G1LA7/LyuYI0BVy8B2oCwkdtH
+T/iATWT4Ry5Ula51/ZJD+EsU5wOvBrI108l5HMEa9WiDIzlmwWwWpkfSqdUC84Fd6FjSGf5dpLFb
+uSEgEqiH9nnrQMjQW7ZqDRp8HnSVrAW4Bp+3s1FuIgh9Mz3agdejWIYKjzOCXiyeAw6t2NNTASfA
+lJi5ALXlwVlA5WiiolKQRkgzJUBHuul6GxmD6h5A6ERxVrlcKnx/CN10iIu5emQ04DjgB9MttmNq
+zHwgupePAXcCxoNNUwT2oaOJ7aQLB4Ht6EisvZt0pNsJPIbuvFRH0vaqv4V9KZfyCc3sxgGvluPI
+8Eugk53o6jXuEaxztOgqNK17LgE68aIfHms2x4m8hA276eWIeemu1CLMThYXq98D/wDoDofJumQw
+7atGEdG4px9EC3cvOqPTXqKoVa/NGISfOYiuSieLVaY89dqPvcTF9yPgVCe+dEkmOdEG+RLCOQyi
+BTFE7Xaf8eyFqB1Wz9eimjZ0h8ZUkaYnXD3AUikiTSl8DKPFXL1NR/haOyMovoDHFtaq26dYstah
+f8liOjiXgBeBOhY4gLAD5V3P6v3/24o2FckI8CrpJsudwNPZiY52+5i8tztTMmgB14pkGXSVb9LR
+Fqu2E2B5+JxDC6+LARSfosSn+Bs1N9t8n190HEXvRjw5lqGiMFYSch50ZBSdWYXit3j+y3jHYEud
+X3Lp2frlacDPKbKQx9Fjfc25Gzx1BN0rbkPfLdE95HvJ8HouVA9bLdtsuKb3SWS4B8UiHh3OMF6q
+HBhbkFOs6PTJeh9i9YHLLZWyJsl1DfrU7xDOL0cVnV2ztYiLrxfw+DqdvHBOiw8gy+sRFrF3zCuL
+LyCqgUaKwoG8B1zMVrHt4FxBsn3TteqrKK5gEbqtVnk7zi5dRO3IXgAeo4O3c64aafSxOYFC3+8e
+LOrvMw/sQXfkjGHaUNFDWMpo7/NtFLEeyQ+O7OSfgN0sRVd5ixI/wvTxiMYqe8Nnxfvmhfh0RHsR
+oyUhCBu7eXQbWaHHPUE7KRUCAdUS9gyG5AWob/w/QBtRfmHbVXF3WJYOjG/wz1jH9XYLlRCDixYj
+ZBiNtfviA0dmBACg4IPi1GYWbzLSGh7Wtqhmimj13YVmkiH6AZho7HFFKw5JzIg2WQyE0Y1oZlEc
+Y9Waby2nTEhPgL8HojvNNtuBcfEbIfr8xEZRUmIpAMWwx5GvscV4+KxF2kP/kiObUbCpkI4ApSoC
+toIAtWcwwO+5SO22Vp6k8UWLKR9GwFr3bYynSD4Uaa51omA6AiyFEdAIsPoWXTMxZTB3PhQ/tlSS
+tDgy7Fzov+rdOBxHm1Vrs5p5LsDdPATkKyZ72YiCGaKpYUaA3ryqfgGOohj2fqvv+sQxVXPBF1DP
+aUK5pkQ6ArxMBcBO6wKMH99EQo87LJQkPYQjKU7BrtWIs+ADvCD9gk2NNCvGyjvBNqrguAB1BBzn
+UbZZKEl6BBxFKRYB66HQUXDcF4QVbFl8bBNKNylpymKySfPpY6KuWewED4bRef4gHFkW4GT2gePA
+WDhe6HktMR7YPAHWW7mbJiYCRkvWH7BQivTY0tuDsLhcBU82ta2AjoCFQPB5UerlmwLpCtCG6OKY
+CDhfBeiFQzDFQEe/yYbWTTU8XBRE/rIV8uik6Rdst6rziH5e5iylBQU4G8f0zMJn44kgShpe7bhj
+ugDjRUHal5HreQ3w9Yptm+yYnp5da7/8Gp/jeST8e5joxngzyAFLwv8vw0xGeFbLZDuIHNP/ngKH
+lqvPTPjIsh+PPwJ/QoXPeiLZ84CTKXEsAVKOetp02meccUbpRPDKjunGkNpHCzATvubJMKLuLjum
++5xMgRdSIouHHsTPMgyk5piepgDvxedZ1gRoUnSAXmjUjk+eBVyqat2sahKhY7rPXzNOH6N0MUpl
+9WmWtZoInok94ssYVOwzEntAJDAzJzA+HlFrWwm3KRDvsGmy6ClsCyjQxhYSdkxPU4DvxOdo9vAS
+AEZYzFjF5CyJ/Wv8zpnwfi0mbqvt6uN0MkIXIwiwkh8h7KFP/dP0TiIhrpITGecDjPIKRuksu6Ub
+x/RGX0FcMPWWIdTaPi7QRttRY1sTJU21bX4AbQR04dPBEG3cQhtXOcd0x5xmfmVIdcw5nAAdVnEC
+dFjFCdBhFSdAh1WcAB1WcQJ0WMUJ0GEVJ0CHVZwAHVZxAnRYxQnQYRUnQIdVnAAdVnECdFjFCdBh
+FSdAh1WcAB1WcQJ0WMUJ0GGVNBemN5/1cjwZljLOz+wuv3RMlSSNahYDq/BRlHioqQLYJCcRcA1w
+QvjK48BH2cGn510yonnG7AW4WZZT4goUZxNlYR4DfoTiI6xT6WYk3SBvQdhM7Vz8H6ZPvT/V4ztm
+xewF2C9fh9AopRaKL+Pzf7lEPVLz/cvFYxVHo3g6wjOADhTbELaR5666kfRyybKK/wD+oZx0pxA+
+OtB+ccJ+drDcRcHWZXYC3Cino7gV0KkdhtCr/TPovCKdmNX3o8B/0sZ/sVqNs16OIsOZKM4EziDK
+4lLNIPB1hC/Tw3fLSXI2ydEEfBE4hWFggIm58RagTQkDnslF6v6653CltNPGm4DzEJYD32GED/Eu
+NVb3M47EmK0A34jiBkC7kld/ZcaedSE6Kmn/8gJwTMV25eydRLlJOqhO6zsE3IsgKE5mhBwD1M+J
+J8DhQIabaOOvJ2SbukaOwacPOB+dvij+2S+yVr2t0ak7kmF2Atwgb0X4AqCl1aii60CbBXaEfxcI
+M3aGz7WKYdzWO9Ci9NGx9CCTZwOFeFasMRQ3IOwDuhGejOJ08gijaBFnwm2NrYPHGaxRP5jCURyz
+YHbDMIrt5QQ3kyWjHAd2onM1V2dsqscYUVQ1CXemw350ZG2nkyxvJ4sW7gi1ndiH0dV2FxDwQcAJ
+MGVmNxB9kboNuBOY6FJeTywFZmZk3Uh8RbSgxqq2C9AV9160+B8Nn4fqlEERj6yrZlBKxzSZ/Z0Q
+xUcAbRgV39setGF1veo1CYpoZ/b9aFENMrlJtkmJVotO4u6eC2ZfQMdkzF6A69TXEb5Clsq+rKCj
+3UFgN1okw9SPfgG6uhwKPzNEffGayLafiW1Bk8CxGj/crxFs9X5z6OrXoKpS1zpSIZlbcQUuIseL
+6OYQRtHVYUf4bDDCGEE39LvQIihQXzQQ2ay2oX8uZh+NomqeKDG58cwdjX0mGh7SdKE7LPrnuA3Y
+QsCnG51y6yLC5p7TEPUKRPajvN/w8P7vJZXRNGmSvBX3F8C38NE3wkroaDOT9l4SmAyfpVgZzAC1
++dl1otP4dlACvoqafcZPq2zuPR/hX4Gjq97Zjah/5ryBa2wUqxHJZkjdIP0IaxlDjwsW0dWdbXJo
+oZlxxQy6utVDQr8i4I1cpB6yUrak2NzzHDy5kzE/y1ABRkvgCXRkYFEbtGcA+Sir97/PdlHjJCvA
+q6SbLNuB3vLA9BCVVbENllPZ2l2BrnaFWyjyJi5Rw3YKlhBXSjsLe37B7rFncDC8c1kiyvUMsKQD
+lnYA3qtZve87dgo6kWTnA16ihpHQDNAM6HYleoTZ04Yp0zDCuXNefADdvWsZKWrxjaCHnfaiRyJ2
+ozt/+8dhzxigPtkKBjWG5CekKn4GROOCNs2qa2F+GMJ/sUbtslqWxFDnsGtUi8/cjzcEaAEeAA7k
+IV86jrae19ooZS3SFyDYF2G8x6sFuI8OPmanMAmzeeFyRoovJK+00OqRRwt03zigzmhO4SYneQEW
+uBMIyMb2bnPeddwPA8wP41bOVc20zUmRzOsZLXmTDk1BGCFLoJjHArxUDWJMAVuhGpaq/+vWz0+t
+lCUNhDcyUtTjqZOhgHEF4/5xXLv80LSLNhXSWZQkLdQOjJ9hGyYi3mapNMnSLzkKwcsYD6Y+3lpA
+D9Fk/JemWbSpko4AtbleVPW2SgTUP4hRHueXdgqTMO29JzNS6mA6q28KwFiJVmkHphUBB8Nn+0yM
+gPe36m2paROolzJaZFoCDIDhEvjqzLSKNR3SEWAQCrAVVh3HfwQ6Eu+wU5AUUOrljJYmd0qvJg+M
+lQ7n2t4TJt02ZdKSyEGg9SLgfBLgldLOaPFU8kx/upt2TQevwWKyJpHOAInHYNn3FuwKsdUFqJe1
+nobi6cBuhIdQ/JEdPFy3qdAvORZ0vJWBYo4ceg7jOLV7wh66558j+raLwGgRFK8DPlix/QY5AY8X
+ojgWxU8o8L1wZCMV0hGgz2DZcNk2mQn/bw0B6kVR/wi8gxJtFNF3MIxJ9TJ81ssjeDwI/AlhG4pD
+gVNQPIex8Q5yRPO2jUH1WGw/XegJFz6ReXXZCFtB8eBz6ZcHUWxDsY8SL6PIIfhowbbz97RToF82
+o9dYb0/6MqQjQNWCVbCHKY89AV4p7bRzOnABPmczgh5Arj2GlwGOwuOosmG00HhGt8GIbJRJDK4V
+ZDgWj2MrXNvjdNBGN+vo4nw2yucI+BLCrfSp6bY8a5LWPYoDwL1kyNHOkWQIGKWrwqFbP9d2STfV
+t6q5Ta0LJXXfaycIqx9teK94fLonM2s2yGkoLsXnteynvbyIfioE4WM6X7f5zFSoXiAWX/wl6PZi
+HthHjnZW085f085BNsjX8NjEWnXXNEo2AeeY7rBKK7TSHE9gnAAdVnECdFjFCdBhFSdAh1WcAB1W
+cQJ0WMUJ0GEVJ0CHVZwAHVZxAnRYxQnQYRUnQIdVnAAdVnECdFjFCdBhFSdAh1WcAB1WcQJ0WMUJ
+0GEVJ0CHVZwAHVZxAnRYxQnQYRUnQIdVbKYPnz3a7+I9wInA7eTZwKVqOukaHZZJJjXHNbKEEm/H
+4zAUPQh/JOBm1qnfzn7ndfiMLKWNr6B4SezVB4Dz6VN3pnZcR6LMXoAb5RwUm6ntibQduAHhataq
+Bye8u16OwuONwAlog73D0W6Vd4e56b5fM6Ktl+Px+Drw5Io8hBof+CB96vJZnZejKcxOgJtkJQF/
+BLrLrwVE2ZWi3HwKuAXhM5T4PRneCLwZeO4kRxhGcTPwNeBufIbI8nrgCvJ0swedrqwDbZhdaUB1
+Dn1qa8O96yr8bOCdwCqEL7JWtZSZ33xndgLcKG9EcQOg043tR2fqNOTQlqjmUY8Cka1qBi2oRt2j
+YbQVbLzognbEXIyJiGMI/0QPn+ZsVWlisF5W4LEWuASo9MsQ/oa16qoGR3ckyGwF+GYUXwHgMRrn
+sMsCC9Gx0kML1Zhb1/K4aEcL0TwEHV0PoP3Q6rGISud2zTA6b/Ug0AscAkR59Cq7Yr+hTx3f4AiO
+BJldL9jjh/gEKLxJEyiW0OIZIBJTI0xixIOxkvpMnpB7EC3wKBKCln03cFg5je1I+KzQJtbLy9uu
+wtE0ZifAC9V++uWXCCfRQWX1Ww/F9LO6Q6UDJOhqu4DJZVzJAJEQzcNk/qyVVX4E6MG0Ie+dQekc
+M2T244DCN1CcRDeVAjTVm0K365Ia8lboCjVugt2Ort7jCcmnk6Y2jsdlMy+cY7rMfhhmq7RxgFtR
+vIAdhFZQQHVi/yw6wrSFz9ViMTYDpk3WQaXlK+gq+CC125oeuqMjsb/bIMwMHXV0uqjsEAm6zbgQ
+UNzIOvWmKZ13yyMCrZ9/OZmB6H5ZBfwCn1XswCS1blzVZtBCNNVivW06iNp/k2Z9nwK9RMJuQ7f9
+dNV7JyVePucd1K/ruRBkNYqTgX0o9Ss87zOcd+DmVhRkcknKN8gLEG6jiLAD3a5Kzd5khnShIx3o
+3nIvIPwZuJxePj9huGausaXniyB/BUCgwIuP0KurWD3wN3YKVp9ks+T3y33AM9mNjla1qmIbCFp4
+neiotwxTPb8P4eNJeV5YZXPv+QjXsn8cBgpQCiDnwYIcLMjqZ1Am+HMAAAkBSURBVOFDnHfgX20X
+NU7Ss2G0EbSp4jqJIo4tMuhIZ9qHyzGumR9nnfrovBDfpu6VCB9jxwjsHdfi84FCAAN5eGwE9o6B
+4l/Y3Psu28WNk6wAFT8BKjsP1R2JZhMNr+jxvuh23bU2ipMK2ewnGSz0MlTUNc8eYG/4PICuifbn
+Yd84CFewZfGxNosbJ1kB+mEEjN+TtTnhS6qOH40XPsha9ZumlycNtix5JiX1FvaM6Xb3EFFHzXTw
+BglvX47DwYIH8m5LpZ1AsgK8RD0CbCdH5QwVWyLMVf0dReMbmluQVHk/e8eFvNICrMcIkQgVq9m8
+cHmDrZtGGjOi7wFaIwrGjytEApR5IsDPLnoqRf9sBgs6yk3WnxwBRgMYLHZA9m+bUMJJSUOAE50y
+M7U3TJ1c1f91mfbN1mCvZfCzH2TfuEeeqZsZjgD7x0F4J59dtDTF0k2J5AUoLTHwoolHQBP91Dy5
+17t5ycUUS+cwVNBV61QpoKPgwUIPfubf0ireVEm+clThZKl4BLThG1zdAYmq3/sslKY+n5BOOnkO
+Hscg7Aa2M8w23qXG6n7ms0tfgPI/ya6R6NZlbW91TSbcJn5Hae8YLMxdzJbFn2b1wT/oDUXo5ziE
+UwkokOEW1qhdyZxobdJonU0UoA2qq/0oAraGAK+SI8jyLhawloBuxoiq0SyKT8leMmwjx28R/oDi
+YeApCM8nkDMoqjYWo+/orAw/l0ffU1fob3YB+lamcUuPO6aLgrHBEm3e9fTLz/HposBrKbIMhb5e
+HSg2yE/x+A/Wqv9N4zKkJ0DbVJ+ZaQ+KxSq4X3IEvBCPC8jyV4yRK8/sMRMm9JxHQbEcYTkep5Sj
+Vw4tpryqNJo262Kqp5/tpXJWksTe0yLsRPnPw+d5FIlqjTbMYL2wgBfTzXfYKD8HribLTZyv9iR1
+SZIXoLAPxUEydJIlS4CEF0VmNA9wpuRiXutZFBmGAJ820lupV49N8mIUayjwZsZZwDj6Z2o6D0Vq
+zwq3QQH9gzCjBiPoicRtPI9OnkMHBT4td5HjOny2znbyhnNMd1jFZUZwWMUJ0GEVJ0CHVZwAHVZx
+AnRYxQnQYRUnQIdVnAAdVnECdFjFCdBhFSdAh1WcAB1WcQJ0WMUJ0GEVJ0CHVZwAHVZxAnRYxQnQ
+YRUnQIdVnAAdVnECdFjFCdBhFSdAh1WcAB1WcQJ0WMUJ0GEVJ0CHVZwAHVZxAnRYxQnQYRWbLh7J
+sFFeDRyN4j76uK0VDfkc9Uk2P6C2br0IeA7wTOCpwHaEH1Piv7hYbav72S3SQYEXAKej6EF4GMV9
+LOHWmiaCW6SHAtcAcXvVbcB6YDN9am9yJ+ZIi+QEuElWovgqihfW2SIAvo3iKnbyHVbRgXAqcDoB
+pyOcQm1jrx0IX0T4Ao/xSy5TARvllSiuAQ4r77myMZEHvoziatapOxqW2WOUC1RrpBV+ApKUX/CR
+aKPCIwCdj3gQne61GP5tjKI7ANiFtomu9DIqoJNsl4hyFXdUbDGIFtdyxtCpY01i78XhY2Jy9F8h
+/ADFToQ9KI4Anhs+DgVAuIUSb+FidWBmF8AxU5JqA74HI74SsBstpjgHw0cOWMhKFoTbjoePPLXN
+qE22904gyyJAG/BVZyYeQOdd7gm3jyLiiShOBPQPoYTOx5yLbaM4kwxfA06f+ik7kiCpCHg78AJ8
+4HEmJtw2h5iqdYPJ6D5ThMgZU8L9mehqyuah7Q3aKz75YvrUT2dxZMc0SSoCjgI6o7r5gsfDv+MG
+KsZqoB1jA6DFYSwKTMZ4hfb5aENHvmrTwQDKvho+UZQ0Z6OY3D0oQEfqw4nEruie/FQdSZKMAIUv
+oDijwrfiYI3tSuFjjMirop49gR9uN0bk9JMhEmn1fsfRwu6m8qxU7DNZKiOeH36uE4AfsZPvNj5R
+R9IkUwVvlQwDfIMRXsNudHTZy+TujWlRHV3j5VhG5KLkofvRGQaAE+hT25tZTEdSd0LOVj4dnEMn
+j9Ee7rUnkT3PjAK6U1Ng4o8g3tFZCmQoorjQic8OyQ5E98sGfPrKHZFhGpsoN5ssevBH0FX1Mnbg
+8SbWqJ/ZLViCfG7Jkf+/vbMHjSKKovB35+2y2V3Jz0YiamPjX5kqAW0lErRTsVALCagoomAlaAhq
+YWURxbgR3cQuVhZWtgEbG9MIFhJNSIzJJtEk+7/zLN7Mboy7GJMZJ4UHhhmGYebyOLx575wLhzLH
+wD4O0gqMIYxhqTecnfsQdHlr4TUBTwIjpDGSSAGj1W0VuMpjM9DMFDaHuKjHgy3KQ6QSNymW77FS
+hGVnodygIKIgHi4iVi9fFu7Tq2sJXoHAWwI+klbCfCODVVkLehZrt0k0YUTtBCZhUnOLC/pusEV5
+iKGW26RzfczlzN8n79wP44j6FuyMQ1SNUg51c352S7g/3nbDXNZp4H3FvXCTG4NGBEM+BY6UbaNI
+BViRt3ieOMNCvo+ZHKQxG8Al55jHTAKLNkwswWLhMFJ6GGS5q+EHPSaxqGp3a3N7g0DMObsqn/CW
+Hj0ZVDme4sX2g2QLg0xnzXKnVnC1q4umgZkM5MvnSCVO/9M668APAuaA4AOrXVhUWxzcmVkzEVA1
+tfFMdjEge3gptZox6mO4cR+F0mumsw0s8ufI1yLGTf+6AtoeZLil/bdn+qWRp9JJUpr+qpYNwo9+
+QLP62CoEVDWuNb7G0K8Lj2U/iivAKaDNcWY0AzKL8AlhHJzDXOcwvnY70A7sRiSBrYUdmNl9BTP6
+FmbZEXPOIX4V/m0bMj+2EQmNklRJsD8CByhyFGEvJQSLMkl5hyZFhiGu66wfw+AHAXM+vHPjWD3H
+VwXoYAj4QKLE6QIuIRxhGSGDcXtMArqgaQPasOisWJfu2RXW3aBre9UG0qLaQeQ+u0T1t2xTJaEC
+QhpCxRiKa+Sp+uSq8h5FlA7idBDnDkl5gsUIPXrMyyHxg4DfMT18jQhRBAtFNSoeajsk9Tbjm72v
+Kt/VKMcE1EzVK95zpKSBPN1oTgBdzBNnmRA5oIimhKw7Md11d/yGYMbNkF8TJkGMG8S5Sr98JsII
+Fq+8IOP/xPT/CBQ/AbqdEIgXnY9lAAAAAElFTkSuQmCC
+"
+ height="500"
+ width="160" />
+ <g
+ id="g4166"
+ transform="translate(200,0)">
+ <g
+ transform="matrix(1.0075215,0,0,1,-1.023657,-1.2477538)"
+ id="g3074">
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 21.295625,500.21348 c -0.0024,-4.20042 0.05945,-6.39271 -1.292793,-9.4943 -4.619609,-4.06863 -0.306832,-8.84104 4.451392,-8.46278 3.425134,0.32851 1.953043,1.17025 5.998446,2.16699 7.918352,-2.18995 7.247275,-2.51622 12.843321,-0.3418 4.266851,1.65795 4.02667,-3.50847 7.996265,-2.04615 6.110478,2.25098 6.450795,4.01932 13.020656,2.05375 2.038667,-0.52552 4.17023,2.6697 3.509292,3.87722 -3.195314,5.8378 -4.00775,2.08432 -5.521203,7.69564 l -0.393921,4.55143 C 48.519597,500.28218 35.591328,500.26483 24.67274,500 z"
+ id="path3834-5-8-2-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccsscscccc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 23.108743,500.21348 c -0.0021,-3.7632 0.137332,-5.53604 -1.0723,-8.31479 -4.13241,-3.64513 -0.274473,-7.92079 3.981934,-7.5819 3.063909,0.29432 1.747069,1.04844 5.365831,1.94143 7.083257,-1.962 6.482954,-2.25431 11.488824,-0.30622 3.816855,1.48538 3.384797,-2.18208 7.152953,-1.83317 5.051582,2.9051 5.770474,3.60095 11.647457,1.83998 1.823662,-0.47082 3.730424,2.39181 3.139191,3.47364 -2.858327,5.23016 -3.58508,1.86737 -4.93892,6.89462 l -0.352844,3.88641 c -12.449398,0.0615 -23.362267,0 -33.307021,0 z"
+ id="path3834-5-8-2-3-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccsccscccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 25.032047,500.21348 c -0.0019,-3.23853 0.401689,-6.10129 -0.665331,-8.49264 -3.645212,-3.13694 -1.17843,-4.85022 2.576159,-4.55858 2.702683,0.25329 1.915622,0.52774 5.107744,1.29623 6.248163,-1.68846 5.718633,-1.75276 10.134327,-0.0763 3.366859,1.27829 4.202951,-1.31607 7.526853,-1.0158 4.456016,2.50008 4.153836,2.91165 9.337941,1.39619 1.608657,-0.40518 2.260669,1.49656 1.73914,2.42757 -2.521338,4.50098 -2.13246,1.13886 -3.326687,5.46522 l -0.310832,3.55811 C 46.169708,500.26641 36.543022,500 27.770723,500 z"
+ id="path3834-5-8-2-3-1-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccsccscccc" />
+ </g>
+ <g
+ transform="translate(-0.513536,-1.0658767)"
+ id="g3813">
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 21.154648,450 c -0.0024,-5.51241 -0.312727,-8.10931 -1.654892,-12.17967 -4.102964,-3.35623 -5.690835,-10.9599 1.908999,-10.36885 3.399605,0.43111 3.23956,1.29002 7.25481,2.59809 7.859331,-2.87398 7.56499,-2.07339 13.769863,-0.20281 4.429834,1.33546 4.94936,-4.9435 8.773066,-3.17677 6.135729,2.835 1.540823,4.81329 9.221262,4.59312 1.633702,0.37579 0.659177,-0.34625 5.932755,-2.14364 2.023472,-0.68967 3.674477,2.64344 3.018466,4.22813 -3.171498,7.66122 -6.115356,1.13794 -7.896329,10.9595 L 60.441126,450 c -13.81341,0.0901 -25.271923,0 -36.30627,0 z"
+ id="path3834-5-8-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccsscsscccc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 22.816018,449.91831 c -0.0022,-4.90122 0.09195,-8.43936 -1.120826,-12.05843 -3.707421,-2.98411 -5.516741,-8.43391 1.350437,-7.90839 3.071869,0.38331 2.927253,1.147 6.555416,2.31003 7.101659,-2.55533 6.835694,-1.84351 12.442391,-0.18032 4.00278,1.18739 4.472221,-4.3954 7.927306,-2.82455 5.544219,2.52068 1.392281,4.27962 8.332294,4.08387 1.476207,0.33412 1.344684,0.1603 6.109867,-1.43781 1.828401,-0.6132 3.133133,2.28955 1.97842,3.29118 -6.108369,5.29858 -5.633793,0.96139 -7.135091,9.7444 L 58.315117,450 c -12.48174,0.0801 -22.835605,0 -32.806194,0 z"
+ id="path3834-5-8-2-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccsscsscccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 26.079362,449.96479 c -0.0018,-4.22456 0.0747,-7.33498 -0.910498,-10.4544 -3.011708,-2.57213 -5.408408,-5.1509 0.170115,-4.69793 2.495419,0.33039 4.231756,0.72382 7.179078,1.72628 5.769003,-2.20255 4.228793,-1.32417 8.783371,0.10941 3.25164,1.02345 4.824727,-4.31824 7.631451,-2.96426 4.503823,2.17268 0.336521,2.0998 5.974211,1.93108 1.19919,0.28799 1.092347,0.98085 4.963324,-0.39662 1.485293,-0.52854 1.61828,1.13077 0.680254,1.99411 -4.962107,4.56706 -3.64968,0.82866 -4.869254,8.3991 l -0.76451,4.42365 c -10.139488,0.069 -18.550407,0 -26.649972,0 z"
+ id="path3834-5-8-2-7-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccsscsscccc" />
+ </g>
+ <g
+ transform="translate(-0.513536,-1.1729936)"
+ id="g3808">
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 22.457296,400 c -0.0023,-6.71319 -0.57052,-9.3962 -1.882478,-14.35322 -2.960564,-3.69012 -4.35086,-6.7694 -4.436949,-7.24019 -0.861248,-4.70991 2.567173,-5.82442 5.282446,-5.39544 3.323094,0.52502 3.056954,1.87399 6.981838,3.467 8.337872,-2.35976 8.602537,-2.50549 14.667764,-0.22743 4.330137,1.62637 6.132538,-4.96688 10.219452,-4.34445 1.462132,0.22269 3.206609,1.54244 3.221552,2.96606 0.02248,2.14219 1.562374,2.42261 2.74387,2.76119 1.596935,0.45765 2.658803,-0.0409 7.813695,-2.2298 1.977932,-0.8399 4.021633,1.83342 4.268031,3.16192 1.588116,8.56263 -8.014904,-0.1857 -10.020626,14.83925 l -0.643555,6.74109 c -13.502527,0.10972 -24.515894,-0.15024 -35.301904,-0.15024 z"
+ id="path3834-5-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsscsssssscccc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 24.399686,400 c -0.0021,-6.2708 -0.42776,-9.91708 -1.626743,-14.54744 -2.705625,-3.44694 -4.069833,-5.48061 -4.148509,-5.92037 -0.787084,-4.39953 1.409793,-4.22339 3.89125,-3.82268 3.036937,0.49042 3.07461,1.28234 6.661516,2.77037 7.619887,-2.20425 6.831811,-2.62127 12.374753,-0.49333 3.957263,1.51919 8.038882,-4.07778 11.773865,-3.49637 1.336227,0.20802 2.368693,1.06627 2.382349,2.39607 0.02054,2.00102 1.240573,1.60754 2.320329,1.92381 1.45942,0.42749 2.429849,0.80449 7.140846,-1.24017 1.80761,-0.78455 4.606311,1.06563 3.900505,2.11087 -5.25011,7.77498 -7.444265,-0.17745 -9.157735,13.86135 L 59.323973,400 c -12.339804,0.10249 -22.404794,-0.30133 -32.262005,-0.30133 z"
+ id="path3834-5-8-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsscsssssscccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 26.272365,400 c -0.0018,-5.61973 0.09585,-9.60293 -0.947694,-13.75255 -2.354867,-3.08906 -2.576529,-3.62622 -2.645006,-4.02032 -0.685046,-3.94275 0.455255,-1.61805 2.615016,-1.25894 2.643228,0.4395 2.940849,0.75195 6.062748,2.08548 6.632045,-1.97539 6.343382,-2.21669 11.167737,-0.30969 3.444244,1.36147 5.9374,-3.6544 9.18818,-3.13335 1.162999,0.18642 2.061616,0.95555 2.073503,2.14729 0.01788,1.79326 1.079744,1.44064 2.01952,1.72407 1.270221,0.38311 1.187938,-0.7356 5.288201,-2.56798 1.573271,-0.70309 1.99149,1.34933 1.011368,1.89171 -6.964609,3.85408 -3.441814,-0.96415 -4.924976,11.6277 l -0.511892,5.68026 c -10.740074,0.0919 -19.500239,-0.16294 -28.079562,-0.16294 z"
+ id="path3834-5-8-1-6"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsscsssssscccc" />
+ </g>
+ <g
+ transform="matrix(1.0111723,0,0,0.9658163,-1.324153,10.603623)"
+ id="g3803">
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 23.24255,349.89256 c -0.0023,-7.81704 0.226574,-10.01106 -1.100628,-15.78317 -2.994963,-4.29688 -6.451043,-8.24582 -6.631764,-9.35582 -0.892364,-5.48096 1.659324,-7.0905 4.406147,-6.59098 3.361706,0.61134 3.654161,3.22353 8.000639,3.78366 3.081936,0.39717 3.502609,-1.98322 6.179807,-2.39619 2.907489,-0.4485 4.671951,0.9697 8.658385,2.69315 4.380452,1.8938 6.203793,-5.78358 10.338195,-5.0588 1.47912,0.2593 3.243867,1.79606 3.258984,3.45376 0.02274,2.49444 1.580528,2.82096 2.775751,3.21522 1.61549,0.5329 3.493419,0.33788 8.708206,-2.21098 2.000914,-0.978 4.296551,-0.74386 4.719484,0.75226 3.080062,10.89571 -9.715476,1.55693 -11.744503,19.05242 l -1.320801,8.5089 c -13.659417,0.12776 -25.336566,-0.0633 -36.247902,-0.0634 z"
+ id="path3834-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsssssssssscccc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 24.955277,349.94528 c -0.0021,-7.34396 0.204653,-10.15425 -0.994149,-15.57704 -2.705216,-4.03684 -5.536984,-8.36823 -5.615647,-8.88326 -0.786966,-5.15245 0.749738,-4.50786 3.23082,-4.03857 3.036478,0.57434 3.206212,3.78095 6.945722,2.39711 6.430014,-2.3795 8.515993,-2.36639 14.058095,0.12571 3.956664,1.77919 6.352662,-4.21635 10.087081,-3.53543 1.336023,0.2436 2.649145,1.2192 2.6628,2.77658 0.02054,2.34348 2.457569,2.46298 3.537159,2.83338 1.459201,0.50065 1.750973,0.78559 6.461256,-1.60902 1.807337,-0.91881 4.289218,-1.77483 4.169266,-0.32321 -0.759777,9.19459 -8.996486,1.39772 -10.608282,17.89939 l -1.193021,7.99395 c -12.337937,0.12003 -22.885382,-0.0595 -32.7411,-0.0596 z"
+ id="path3834-5-61"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccssssssssscccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 27.506919,349.94449 c -0.0019,-6.85654 0.180311,-9.21547 -0.875905,-14.27835 -2.383454,-3.76891 -4.6148,-6.88591 -4.684107,-7.36675 -0.693363,-4.81048 -0.393878,-2.48727 1.792102,-2.04913 2.675316,0.53622 4.933748,4.05967 8.228477,2.76767 5.665224,-2.22157 8.293925,-1.67967 13.176845,0.64703 3.486055,1.6611 2.82916,-3.27444 6.119405,-2.63871 1.177115,0.22743 1.806832,1.00587 1.818863,2.45989 0.0181,2.18794 4.274148,-0.34881 5.225332,-0.003 1.285642,0.46742 3.395241,-2.8654 3.734497,-0.79849 0.490935,2.991 -4.621322,2.35365 -5.823787,13.8522 l -1.051123,7.46338 c -10.870453,0.11206 -18.977128,-0.0555 -27.660599,-0.0556 z"
+ id="path3834-5-61-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsssssssscccc" />
+ </g>
+ <g
+ transform="matrix(1,0,0,0.97330928,-0.513536,0.33453616)"
+ id="g3255">
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 99.273179,49.438245 c 0.634112,-5.388716 -0.662666,-7.418003 -1.217212,-10.674016 0.74095,-3.074463 4.631243,-3.516086 7.807973,-1.803224 4.49421,2.406283 7.56946,-0.148748 10.68758,-0.484549 0.72804,-0.07841 2.25851,-0.01366 3.13337,0.05071 1.93065,0.367669 1.1283,1.524021 3.18348,1.488012 l 3.18348,0 c 0.48272,-1.465119 2.54827,-1.774053 3.41756,-1.776942 2.7853,0.809822 2.83684,2.368791 5.47745,2.71322 3.90076,0.508795 4.04819,-0.979297 6.83512,-1.779003 1.99573,0.276444 3.07673,1.044146 3.55801,2.15353 l -0.46816,2.621688 C 143.79285,45.903276 141.87561,44.807147 141.87561,50 l -21.5353,0 -21.067131,0 0,-0.561791 z"
+ id="path4116"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsccccccccccccc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 100.3224,49.335893 c 0.59515,-4.702226 -0.621928,-6.472994 -1.142389,-9.314211 0.695407,-2.682794 4.346569,-3.068157 7.328019,-1.573504 4.21796,2.099737 7.10419,-0.129798 10.03065,-0.42282 0.68327,-0.06842 2.11967,-0.01192 2.94075,0.04425 1.81198,0.320829 1.05894,1.329869 2.98781,1.298448 l 2.9878,0 c 0.45303,-1.278471 2.39162,-1.54805 3.20748,-1.55057 2.61409,0.706655 2.66246,2.067021 5.14075,2.367571 3.66098,0.443979 3.79936,-0.85454 6.41498,-1.552368 1.87305,0.241227 2.88761,0.911128 3.33931,1.879183 l -0.43939,2.287701 c -1.01266,3.451684 -2.81205,2.495196 -2.81205,7.02651 l -20.21156,0 -19.77216,0 0,-0.490222 z"
+ id="path4116-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsccccccccccccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 101.8255,49.495699 c 0.54492,-3.983082 -0.56944,-5.483035 -1.04598,-7.889724 0.63671,-2.272496 3.97974,-2.598923 6.70957,-1.332857 3.86198,1.778609 6.50462,-0.109948 9.1841,-0.358156 0.62561,-0.05795 1.94078,-0.0101 2.69257,0.03748 1.65905,0.271763 0.96957,1.126483 2.73565,1.099868 l 2.73565,0 c 0.41479,-1.082946 2.18977,-1.311297 2.93677,-1.313431 2.39348,0.598582 2.43777,1.750897 4.7069,2.005483 3.35201,0.376077 3.47872,-0.723851 5.87358,-1.314955 1.71498,0.204335 2.64391,0.771784 3.0575,1.591787 l -0.40232,1.937828 c -0.92719,2.923793 -2.57472,2.113588 -2.57472,5.951897 l -18.50579,0 -18.10348,0 0,-0.415249 z"
+ id="path4116-0-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsccccccccccccc" />
+ </g>
+ <g
+ transform="matrix(1,0,0,0.96980155,-0.513536,2.0198451)"
+ id="g3499">
+ <g
+ id="g3296">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3028"
+ d="m 112.71253,91.780824 c 0.2152,-4.12484 2.27805,-10.276226 6.67173,-10.383607 3.87594,-0.04782 5.46358,3.337354 8.23078,9.480685 l 1.67517,0.0025 c -14.90487,1.803846 -9.68179,1.257979 -16.57768,0.900392 z"
+ style="fill:#ff9f10;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3028-1"
+ d="m 113.065,93.410276 c 0.20661,-4.12484 2.18707,-10.276226 6.40528,-10.383607 3.72114,-0.04782 5.24537,3.337354 7.90206,9.480685 l 1.60826,0.0025 c -14.3096,1.803846 -9.29512,1.257979 -15.9156,0.900392 z"
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3028-1-4"
+ d="m 114.05811,94.204767 c 0.18598,-3.861846 1.96872,-9.621028 5.76579,-9.721563 3.34963,-0.04477 4.72168,3.124569 7.11313,8.87621 l 1.4477,0.0023 c -12.88096,1.688835 -8.36712,1.177772 -14.32662,0.842984 z"
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ </g>
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 97.696675,99.399413 c 0.634112,-3.964885 0.835442,-5.832511 0.280896,-8.228205 0.74095,-2.262114 3.133139,-2.212522 6.309869,-0.952241 2.9961,1.395957 7.56946,-0.109445 10.68758,-0.356519 0.72804,-0.05769 2.25851,-0.01005 3.13337,0.03731 1.93065,0.270522 1.1283,1.121337 3.18348,1.094843 l 3.18348,0 c 0.48272,-1.077999 3.20369,-0.930778 4.07298,-0.932903 2.7853,0.595847 2.18141,1.368371 4.82203,1.621793 3.90076,0.374359 4.04818,-0.720543 6.83511,-1.308946 1.99574,0.2034 3.07673,0.768256 3.55802,1.584514 l -0.46816,1.928973 c -1.07898,2.910437 -0.2809,2.291195 -0.2809,6.111968 l -24.25062,-0.187263 -21.067135,0 0,-0.413352 z"
+ id="path4116-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsccccccccccccc" />
+ <path
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 98.717675,99.489039 c 0.599481,-3.3732 0.789815,-4.962118 0.265555,-7.0003 0.700484,-1.924536 2.96203,-1.882345 5.96526,-0.810137 2.83247,1.187637 7.15606,-0.09311 10.10389,-0.303315 0.68828,-0.04908 2.13517,-0.0086 2.96225,0.03174 1.82521,0.230152 1.06668,0.953999 3.00961,0.931458 l 3.00962,0 c 0.45636,-0.917127 3.02873,-0.791877 3.85054,-0.793684 2.63318,0.506928 2.06227,1.164167 4.55868,1.37977 3.68772,0.318494 3.82709,-0.613016 6.46182,-1.113609 1.88674,0.173046 2.9087,0.653607 3.3637,1.348054 l -0.44259,1.64111 c -1.02005,2.476109 -0.26556,1.949277 -0.26556,5.199872 l -22.9262,-0.159317 -19.916575,0 0,-0.351668 z"
+ id="path4116-2-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsccccccccccccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 99.710789,99.586135 c 0.563031,-2.732209 0.741781,-4.019193 0.2494,-5.67007 0.657901,-1.558827 2.781911,-1.524654 5.602521,-0.656191 2.66023,0.961956 6.7209,-0.07542 9.48948,-0.245678 0.64642,-0.03975 2.00533,-0.0069 2.78211,0.02571 1.71422,0.186417 1.00182,0.772715 2.8266,0.754458 l 2.82661,0 c 0.42861,-0.742851 2.84455,-0.641401 3.61639,-0.642865 2.47306,0.410599 1.93686,0.942947 4.28147,1.11758 3.46347,0.257972 3.59437,-0.496527 6.06888,-0.901996 1.77201,0.140163 2.73182,0.529406 3.15915,1.091891 l -0.41567,1.329258 c -0.95802,2.005587 -0.24941,1.578867 -0.24941,4.211768 l -21.53207,-0.129043 -18.705461,0 0,-0.284842 z"
+ id="path4116-2-5-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsccccccccccccc" />
+ </g>
+ <g
+ transform="matrix(1.0184293,0,0,1,-2.2495165,-0.99999959)"
+ id="g3373">
+ <g
+ id="g3209"
+ transform="translate(-0.56179,0.749054)">
+ <path
+ sodipodi:nodetypes="sscccsssssssscccscsccccs"
+ inkscape:connector-curvature="0"
+ id="path3028-8"
+ d="m 104.533,146.88074 c 0,-0.31712 1.00858,-0.37553 0.54682,-0.37553 l 0.54681,0 0,0.0451 0,-2.62875 0.54682,0 c 0.43039,0 2.88284,1.27337 2.88284,1.0384 0,-0.26797 0.12313,-0.30733 1.20298,-0.38455 1.0866,-0.0777 1.203,-0.11542 1.203,-0.38995 0,-0.29648 0.0429,-0.30394 1.7498,-0.30394 1.6981,0 1.74981,0.009 1.74981,0.29852 0,0.26797 0.12314,0.30733 1.203,0.38454 1.0866,0.0777 1.65046,0.4889 1.20298,0.38996 l -2.33602,-1.03298 6.38245,-1.33693 -7.82855,-0.11794 c 0.0831,-1.01688 0.88043,-3.95119 1.03928,-7.29679 0.1936,-4.07735 2.90157,-8.56077 5.02178,-8.59385 2.24541,-0.0177 4.00409,1.28525 5.37484,5.8126 0.6849,2.26207 0.97487,8.30985 1.77585,9.44491 2.72663,6.41758 -0.23192,5.39291 -9.48672,5.42275 l -12.77777,0 0,-0.37554 z"
+ style="opacity:0.98279993;fill:#ff9f10;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="sscccsssssssscccscscccccs"
+ inkscape:connector-curvature="0"
+ id="path3028-4-0"
+ d="m 106.82686,147.28051 c 0,-0.30135 0.85371,-0.35687 0.46285,-0.35687 l 0.46285,0 0,0.0429 0,-2.49804 0.46285,0 c 0.3643,0 2.44015,1.21005 2.44015,0.98677 0,-0.25465 0.10423,-0.29205 1.01826,-0.36543 0.91974,-0.0738 1.01826,-0.10968 1.01826,-0.37057 0,-0.28172 0.0363,-0.28882 1.48111,-0.28882 1.43735,0 1.48112,0.008 1.48112,0.28368 0,0.25464 0.10422,0.29204 1.01826,0.36542 0.91975,0.0738 1.39701,0.46458 1.01826,0.37057 l -1.9773,-0.98162 5.40237,-1.27045 -6.40226,-0.23791 c 0.0866,-1.19006 1.80554,-12.02253 2.765,-13.15487 0.79303,-0.93592 0.6791,-1.72963 2.14117,-1.75523 1.60535,-0.0142 2.06678,-0.0163 3.06015,1.05378 0.77031,0.82981 2.10372,11.96652 2.99251,13.3805 l 1.23186,0.001 c -1.32448,4.49451 6.65979,5.12444 -9.26182,5.15177 l -10.81565,0 0,-0.35686 z"
+ style="opacity:0.98279993;fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="sscccssssssssccccccccccs"
+ inkscape:connector-curvature="0"
+ id="path3028-4-7-4"
+ d="m 109.77781,147.40471 c 0,-0.28427 0.67988,-0.33663 0.36861,-0.33663 l 0.3686,0 0,0.0404 0,-2.35643 0.36861,0 c 0.29013,0 1.9433,1.14146 1.9433,0.93083 0,-0.24021 0.083,-0.27549 0.81093,-0.34471 0.73247,-0.0696 0.81093,-0.10347 0.81093,-0.34956 0,-0.26576 0.029,-0.27245 1.17954,-0.27245 1.14468,0 1.17954,0.008 1.17954,0.2676 0,0.2402 0.083,0.27549 0.81093,0.3447 0.73247,0.0697 1.11256,0.43825 0.81093,0.34956 l -1.5747,-0.92597 4.30238,-1.19843 -5.09867,-0.22442 c 0.069,-1.12259 2.17975,-11.42719 2.94384,-12.49534 0.764,-1.00252 1.60538,-0.50307 2.37047,0.35574 0.61347,0.78277 2.70533,10.35693 3.41314,11.69076 l 0.98104,0.001 c -1.0548,4.23972 5.30377,4.83393 -7.37599,4.85972 l -8.61343,0 0,-0.33663 z"
+ style="opacity:0.98279993;fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ </g>
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 94.196751,149.67888 c 0.826217,-1.66292 2.939123,-2.00809 3.705354,-3.12014 0.612398,-0.88878 0.341288,-2.91439 0.743913,-3.60387 0.977471,-1.67389 2.260062,-1.42967 3.195842,-1.15048 5.5649,3.34485 9.42162,2.01923 10.92453,0.47234 0.54613,-0.56211 2.4273,-0.008 3.36754,0.0289 5.79781,4.02971 5.05722,0.34065 11.22017,0.12569 2.99346,0.46247 2.34444,1.06206 5.1824,1.25876 4.19228,0.29056 1.82267,-1.02741 4.81788,-1.4841 2.14488,0.15787 3.58757,0.68992 4.10482,1.32345 0.55,4.79259 3.9914,4.59914 3.49456,6.3507 -10.44581,0.13291 -28.11543,0.11949 -28.11543,0.11949 l -22.641579,0 0,-0.32083 z"
+ id="path4116-2-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscscccccccccc" />
+ <path
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 95.224556,149.73982 c 0.791204,-1.34764 2.814573,-1.62737 3.548332,-2.52857 0.586452,-0.72027 0.326831,-2.36184 0.712387,-2.92059 0.936045,-1.35653 2.164295,-1.15861 3.060425,-0.93235 5.32907,2.71067 9.02236,1.63639 10.46158,0.38279 0.52299,-0.45554 2.32444,-0.007 3.22484,0.0234 5.55211,3.26568 4.8429,0.27606 10.74469,0.10186 2.86661,0.37478 2.24509,0.86069 4.96278,1.02009 4.01463,0.23548 1.74544,-0.83261 4.61372,-1.20271 2.05399,0.12794 3.43554,0.55911 3.93087,1.07252 0.52669,3.88394 3.82226,3.72717 3.34647,5.14663 -10.00315,0.10771 -26.92399,0.0968 -26.92399,0.0968 l -21.682104,0 0,-0.26 z"
+ id="path4116-2-3-6"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscscccccccccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 96.581943,149.79365 c 0.753138,-1.06945 2.679161,-1.29143 3.377613,-2.00659 0.558224,-0.57158 0.311104,-1.87429 0.678114,-2.31769 0.89101,-1.0765 2.06016,-0.91943 2.91318,-0.73988 5.07267,2.1511 8.58827,1.29859 9.95825,0.30376 0.49782,-0.3615 2.21261,-0.006 3.06968,0.0185 5.28499,2.59154 4.6099,0.21907 10.22774,0.0808 2.72869,0.29741 2.13707,0.68301 4.72401,0.80951 3.82148,0.18687 1.66147,-0.66073 4.39175,-0.95443 1.95517,0.10152 3.27025,0.44368 3.74175,0.85111 0.50134,3.08217 3.63835,2.95776 3.18546,4.08421 -9.52188,0.0855 -25.62862,0.0768 -25.62862,0.0768 l -20.638927,0 0,-0.20633 z"
+ id="path4116-2-3-6-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscscccccccccc" />
+ </g>
+ <g
+ id="g4132">
+ <g
+ id="g3232"
+ transform="matrix(1.1040865,0,0,1.0255883,-12.754726,-3.8254288)">
+ <path
+ sodipodi:nodetypes="sscccsssssscccsscsccccs"
+ inkscape:connector-curvature="0"
+ id="path3028-8-0"
+ d="m 104.04864,196.40367 c 0,-0.32834 1.04235,-0.38882 0.56513,-0.38882 l 0.56511,0 0,0.0467 c -0.54369,-3.4381 1.69961,-1.58113 3.5445,-1.64664 0,-0.27745 0.12725,-0.3182 1.24326,-0.39815 1.12298,-0.0805 1.24328,1.88049 1.24328,1.59624 0,-0.30697 0.0443,-0.31469 1.80839,-0.31469 1.75495,0 1.80839,0.009 1.80839,0.30908 0,0.27746 0.12727,-1.68179 1.24328,-1.60185 1.12299,0.0805 1.70573,0.5062 1.24326,0.40376 l -2.41423,0.93046 6.59615,-1.38424 -8.09067,-0.12211 c 0.0859,-1.05287 0.90989,-6.09103 1.07407,-9.55503 0.10044,-2.11916 0.0606,-5.2399 0.99865,-7.16757 0.93064,-1.91251 2.83517,-2.64028 3.92645,-2.65734 2.32059,-0.0183 4.40299,2.25765 5.81963,6.94523 0.70783,2.34212 1.00751,10.60394 1.83531,11.77917 2.81793,6.6447 -0.23968,3.58377 -9.80436,3.61466 l -13.2056,0 0,-0.38883 z"
+ style="opacity:0.98279993;fill:#ff9f10;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="sscccsssssssscccscscccccs"
+ inkscape:connector-curvature="0"
+ id="path3028-4-0-8"
+ d="m 106.4193,196.81759 c 0,-0.31201 0.8823,-0.3695 0.47835,-0.3695 l 0.47835,0 0,0.0444 0,-2.58645 0.47834,0 c 0.3765,0 2.52186,1.25288 2.52186,1.02169 0,-0.26366 0.10772,-0.30238 1.05235,-0.37836 0.95054,-0.0764 1.05235,-0.11356 1.05235,-0.38368 0,-0.29169 0.0375,1.70096 1.53071,1.70096 1.48547,0 1.53071,-1.992 1.53071,-1.70629 0,0.26366 0.10771,0.30238 1.05235,0.37836 0.95055,0.0764 1.44379,0.48102 1.05236,0.38368 l -2.04351,0.98364 5.58326,-1.31541 -6.61663,-0.24633 c 0.0895,-1.23218 1.27013,-14.77906 2.26171,-15.95147 0.81958,-0.96905 0.96667,-2.45292 2.47769,-2.47942 1.65911,-0.0147 2.46703,0.97621 3.49366,2.08418 0.7961,0.85918 2.17415,14.39003 3.0927,15.85405 l 1.27311,0.001 c -1.36883,4.65357 6.88278,3.30579 -9.57193,3.33409 l -11.17779,0 0,-0.36949 z"
+ style="opacity:0.98279993;fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="sscccssssssssccccccccccs"
+ inkscape:connector-curvature="0"
+ id="path3028-4-7-4-1"
+ d="m 109.46906,196.93498 c 0,-0.3038 0.70264,-0.35975 0.38095,-0.35975 l 0.38094,0 0,0.0432 0,-2.51832 0.38095,0 c 0.29985,0 2.00837,1.21988 2.00837,0.99479 0,-0.25672 0.0858,-0.29443 0.83808,-0.3684 0.757,-0.0743 0.83808,-0.11058 0.83808,-0.37358 0,-0.28401 0.03,-0.29116 1.21904,-0.29116 1.18301,0 1.21903,0.008 1.21903,0.28598 0,0.2567 0.0858,0.29442 0.83808,0.36838 0.757,0.0745 1.14982,0.46836 0.83809,0.37358 l -1.62743,-0.98959 4.44644,0.71925 -5.26939,-0.23984 c 0.0713,-1.19972 2.25273,-14.21225 3.04241,-15.35378 0.78958,-1.07139 1.65913,-0.53764 2.44984,0.38018 0.63401,0.83654 2.79591,13.06845 3.52742,14.49392 l 1.01389,0.001 c -1.09012,4.53098 5.48135,3.16602 -7.62296,3.19358 l -8.90183,0 0,-0.35976 z"
+ style="opacity:0.98279993;fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ </g>
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 91.727015,198.79487 c 0.858518,-1.06221 2.866763,-1.28269 3.66295,-1.99302 0.636339,-0.56772 3.06995,-2.21932 3.488316,-2.65973 1.015683,-1.06922 2.535679,-0.46608 3.508039,-0.28774 5.78246,2.13656 7.79037,1.58991 9.75988,0.21228 0.54918,-0.38413 2.14766,-0.18363 3.12466,-0.16042 6.02448,2.57402 3.66319,0.0388 10.06708,-0.0985 3.11049,0.29541 3.27878,1.03612 6.2277,1.16176 2.6708,-0.4404 0.58307,-1.28226 3.69538,-1.57398 1.39617,-0.20965 2.87283,1.81421 4.92014,3.1788 1.90542,1.27004 4.44294,1.8613 4.28718,2.34915 -10.85418,0.0849 -29.21459,0.0763 -29.21459,0.0763 l -23.526735,0 0,-0.20493 z"
+ id="path4116-2-3-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccccsccccc" />
+ </g>
+ <path
+ sodipodi:nodetypes="csscsccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4116-2-3-8-0"
+ d="m 93.365354,198.85031 c 0.803657,-0.77484 2.68357,-0.93567 3.428878,-1.45382 0.595676,-0.41412 2.873772,-1.61889 3.265398,-1.94015 0.95078,-0.77994 2.37365,-0.33998 3.28387,-0.20989 5.41295,1.55852 7.29255,1.15976 9.1362,0.15486 0.51409,-0.28022 2.01042,-0.13397 2.92499,-0.11703 5.6395,1.87764 3.4291,0.0283 9.42377,-0.0718 2.91172,0.21549 3.06925,0.7558 5.82973,0.84745 2.50013,-0.32125 0.54581,-0.93535 3.45924,-1.14815 1.30695,-0.15294 2.68924,1.32338 4.60573,2.31878 1.78366,0.92644 4.15902,1.35773 4.01321,1.7136 -10.16057,0.062 -27.3477,0.0557 -27.3477,0.0557 l -22.023316,0 0,-0.14948 z"
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="csscsccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4116-2-3-8-0-3"
+ d="m 94.488937,198.9025 c 0.764035,-0.50437 2.551264,-0.60906 3.259829,-0.94634 0.56631,-0.26957 2.732074,-1.05379 3.104404,-1.26291 0.9039,-0.50769 2.25662,-0.22131 3.12196,-0.13663 5.14608,1.0145 6.93301,0.75494 8.68577,0.10081 0.48874,-0.18241 1.9113,-0.0872 2.78078,-0.0762 5.36146,1.22221 3.26004,0.0184 8.95915,-0.0467 2.76817,0.14027 2.91793,0.49198 5.54231,0.55164 2.37687,-0.20912 0.5189,-0.60886 3.2887,-0.74738 1.24251,-0.0995 2.55665,0.86144 4.37865,1.50938 1.69572,0.60305 3.95397,0.88379 3.81535,1.11544 -9.65963,0.0404 -25.99939,0.0363 -25.99939,0.0363 l -20.937513,0 0,-0.0973 z"
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <g
+ transform="translate(-0.513536,-0.99999935)"
+ id="g3749">
+ <g
+ id="g4148">
+ <g
+ transform="matrix(1.0327683,0,0,1.0317587,-3.3982859,-7.6505542)"
+ id="g3328">
+ <path
+ style="opacity:0.98279993;fill:#ff9f10;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 103.15922,296.1299 c 0,-0.30325 0.43537,1.91224 0.56513,1.48809 l 0.56511,0 0,0.0431 c -0.54369,-3.17543 1.69961,-1.46033 3.5445,-1.52084 0,-0.25625 0.12725,-0.29389 1.24326,-0.36773 1.12298,-0.0744 1.24328,1.73682 1.24328,1.47429 0,-0.28352 0.0443,-0.29065 1.80839,-0.29065 1.75495,0 1.80839,0.008 1.80839,0.28547 0,0.25626 0.12727,-1.5533 1.24328,-1.47947 1.12299,0.0744 1.67634,0.55011 1.24326,0.37291 l -2.41423,0.85938 6.59615,-1.27849 -8.09067,-0.11278 c 0.0859,-0.97243 0.90989,-7.47288 1.07407,-10.67223 0.10044,-1.95726 0.0606,-4.83958 0.99865,-6.61997 0.93064,-1.7664 2.83517,-2.43857 3.92645,-2.45432 2.32059,-0.0169 5.06191,0.89735 5.95205,6.24909 0.34529,2.07601 0.91387,10.16834 1.74167,11.25378 2.81793,6.13705 0.93875,3.40536 -8.62593,3.43389 l -14.42281,-0.3044 z"
+ id="path3028-8-0-3-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscccsssssscccsscscccc" />
+ <path
+ style="opacity:0.98279993;fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 106.96492,295.67028 c 0.3765,0 2.52186,1.15716 2.52186,0.94363 0,-0.24351 0.10772,-0.27927 1.05235,-0.34945 0.95054,-0.0706 1.05235,-0.10488 1.05235,-0.35437 0,-0.2694 0.0375,1.57101 1.53071,1.57101 1.48547,0 1.53071,-1.83981 1.53071,-1.57593 0,0.24352 0.10771,0.27928 1.05235,0.34945 0.95055,0.0706 1.41351,0.52027 1.05236,0.35437 l -2.04351,0.90849 5.58326,-1.21491 -6.61663,-0.22751 c 0.0895,-1.13804 1.27013,-15.49715 2.26171,-16.57999 0.81958,-0.89501 0.96667,-2.26552 2.47769,-2.28999 1.65911,-0.0136 2.46703,0.90163 3.49366,1.92495 0.25643,0.2556 1.27723,1.71577 1.68547,3.62318 0.85916,4.01424 1.25271,10.00937 1.87539,10.926 1.34949,5.61906 1.34159,3.19484 -8.76698,3.17392 12.18105,-4.66738 -10.37944,2.06307 -9.74275,-1.18285 z"
+ id="path3028-4-0-8-0-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssssssscccscssccc" />
+ <path
+ style="opacity:0.98279993;fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 108.57964,296.62062 c 0,-0.28059 0.70264,-0.33227 0.38095,-0.33227 l 0.38094,0 0,0.0399 0.42134,0.52787 0.33414,0 c 1.15144,-1.20667 2.91339,-0.31184 3.31,-0.77309 0,-0.26231 0.03,-0.26892 1.21904,-0.26892 1.18301,0 1.21903,0.007 1.21903,0.26414 0,0.23708 0.0858,0.27192 0.83808,0.34023 0.757,0.0688 0.29572,-0.36706 -0.0226,-0.42629 l -0.76673,-0.14266 1.0533,0.24056 -1.87625,0.20223 c 0.0713,-1.10806 2.25273,-14.97365 3.04241,-16.02796 0.78958,-0.98954 1.65913,-0.49657 2.44984,0.35113 0.63401,0.77263 2.79591,12.07003 3.52742,13.38659 1.83227,4.33999 -0.089,2.95845 -6.60907,2.95052 l -8.90183,0 0,-0.33228 z"
+ id="path3028-4-7-4-1-7-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sscccccsssscccccccccs" />
+ </g>
+ <path
+ sodipodi:nodetypes="csscsccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4116-2-3-8-8-9"
+ d="m 89.812846,299.87217 c 0.893001,-0.66158 2.981907,-0.79891 3.810073,-1.24133 0.661898,-0.3536 3.193256,-1.38228 3.628425,-1.65659 1.056479,-0.66595 2.637531,-0.29029 3.648946,-0.17921 6.01471,1.33073 8.10327,0.99026 10.15189,0.13222 0.57124,-0.23926 2.23392,-0.11437 3.25017,-0.0999 6.26645,1.6032 3.81031,0.0242 10.47142,-0.0613 3.23542,0.184 3.41047,0.64534 6.47783,0.72359 2.77808,-0.2743 0.6065,-0.79864 3.84381,-0.98034 1.45225,-0.13058 2.98822,1.12997 5.11775,1.97989 1.98196,0.79103 4.6214,1.15929 4.45938,1.46314 -11.29014,0.0529 -30.38799,0.0475 -30.38799,0.0475 l -24.471704,0 0,-0.12764 z"
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="csscsccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4116-2-3-8-8-9-9"
+ d="m 90.853304,299.91308 c 0.859475,-0.44919 2.869955,-0.54243 3.667029,-0.84283 0.637048,-0.24008 3.073373,-0.93853 3.492203,-1.12477 1.01682,-0.45217 2.538514,-0.19711 3.511954,-0.12168 5.78889,0.90353 7.79904,0.67235 9.77075,0.0898 0.54979,-0.16245 2.15005,-0.0776 3.12815,-0.0678 6.03118,1.08852 3.66725,0.0165 10.07828,-0.0416 3.11395,0.12492 3.28243,0.43816 6.23463,0.49129 2.67378,-0.18624 0.58373,-0.54225 3.6995,-0.66562 1.39773,-0.0886 2.87603,0.76721 4.92561,1.34428 1.90755,0.53709 4.4479,0.78713 4.29196,0.99344 -10.86627,0.036 -29.24712,0.0323 -29.24712,0.0323 l -23.552946,0 0,-0.0867 z"
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="csscsccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4116-2-3-8-8-9-9-5"
+ d="m 93.38136,299.93702 c 0.78785,-0.3253 2.630786,-0.39282 3.361435,-0.61037 0.58396,-0.17386 2.817249,-0.67968 3.201179,-0.81455 0.932076,-0.32746 2.326956,-0.14275 3.219276,-0.0881 5.30647,0.65433 7.1491,0.48691 8.9565,0.065 0.50397,-0.11764 1.97088,-0.0562 2.86746,-0.0491 5.52857,0.7883 3.36164,0.012 9.23841,-0.0301 2.85444,0.0905 3.00888,0.31732 5.71506,0.35579 2.45096,-0.13487 0.53508,-0.39269 3.3912,-0.48203 1.28125,-0.0642 2.63636,0.5556 4.51513,0.97352 1.74859,0.38895 4.07723,0.57003 3.93429,0.71944 -9.96072,0.0261 -26.8098,0.0234 -26.8098,0.0234 l -21.59014,0 0,-0.0628 z"
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ </g>
+ </g>
+ <g
+ transform="translate(-0.513536,-0.99999523)"
+ id="g3740">
+ <g
+ id="g4157">
+ <g
+ transform="matrix(1,0,0,1.0501642,0.07569744,-16.512303)"
+ id="g3333">
+ <path
+ style="opacity:0.98279993;fill:#ff9f10;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 111.63228,347.34693 c 1.93476,0 1.99367,0.007 1.99367,0.24599 0,0.22081 0.14031,-1.33845 1.37067,-1.27483 1.23805,0.0641 1.8481,0.47402 1.37065,0.32133 l -2.6616,0.74051 7.272,-1.10165 -8.91965,-0.0972 c 0.0947,-0.83792 1.00312,-6.4392 1.18412,-9.19601 0.11074,-1.68652 0.0668,-4.17015 1.10098,-5.70427 1.02599,-1.52206 3.12566,-2.10126 4.32875,-2.11483 1.37867,-0.008 3.57489,0.0842 4.72728,1.15141 0.98606,0.91321 0.96847,2.6557 1.68863,4.37591 0.78034,1.86398 1.11074,8.4391 2.02336,9.37439 3.10666,5.28815 -0.30073,3.53102 -10.84541,3.55561 -0.34657,-1.20967 -12.52529,-0.27414 -4.63345,-0.27638 z"
+ id="path3028-8-0-3-9-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssscccsscsscccc" />
+ <path
+ style="opacity:0.98279993;fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 112.72735,347.79926 c 1.63767,0 1.68755,-1.58532 1.68755,-1.35794 0,0.20984 0.11874,0.24065 1.16017,0.30111 1.04795,0.0608 1.55834,0.44831 1.16019,0.30536 l -2.25289,0.78282 6.15532,-1.04686 -7.29457,-0.19604 c 0.0987,-0.98062 1.40027,-13.35353 2.49344,-14.28659 0.90356,-0.77121 1.06572,-1.95214 2.73156,-1.97323 1.8291,-0.0117 3.08394,0.44588 4.21576,1.32765 0.87767,0.68377 2.03278,11.78327 3.04544,12.9484 1.48776,4.84181 1.99518,2.67224 -9.14912,2.65422 -1.69116,-0.41712 -5.75991,0.36356 -3.95285,0.5411 z"
+ id="path3028-4-0-8-0-1-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cssscccscsccc" />
+ <path
+ style="opacity:0.98279993;fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 113.04135,346.59458 c 0,-0.22603 0.0331,-0.23172 1.34395,-0.23172 1.30422,0 1.34393,0.006 1.34393,0.2276 0,0.20429 0.0946,0.23431 0.92395,0.29317 0.83456,0.0593 0.32602,-0.31629 -0.0249,-0.36733 l -0.84529,-0.12292 1.16123,0.20728 -2.0685,0.17426 c 0.0786,-0.95479 2.48355,-12.90244 3.35414,-13.81092 0.87048,-0.85266 1.82913,-0.42788 2.70085,0.30256 0.69897,0.66576 3.08238,10.40046 3.88884,11.53491 2.02001,3.73967 -0.0981,2.54923 -7.28624,2.5424 1.27773,-0.97571 -1.94297,-0.88619 -4.49194,-0.74929 z"
+ id="path3028-4-7-4-1-7-3-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csssscccccccc" />
+ </g>
+ <path
+ sodipodi:nodetypes="csscsccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4116-2-3-8-8-9-5"
+ d="m 89.812846,349.87217 c 0.893001,-0.66158 2.981907,-0.79891 3.810073,-1.24133 0.661898,-0.3536 3.193256,-1.38228 3.628425,-1.65659 1.056479,-0.66595 2.637531,-0.29029 3.648946,-0.17921 6.01471,1.33073 8.10327,0.99026 10.15189,0.13222 0.57124,-0.23926 2.23392,-0.11437 3.25017,-0.0999 6.26645,1.6032 3.81031,0.0242 10.47142,-0.0613 3.23542,0.184 3.41047,0.64534 6.47783,0.72359 2.77808,-0.2743 0.6065,-0.79864 3.84381,-0.98034 1.45225,-0.13058 2.98822,1.12997 5.11775,1.97989 1.98196,0.79103 4.6214,1.15929 4.45938,1.46314 -11.29014,0.0529 -30.38799,0.0475 -30.38799,0.0475 l -24.471704,0 0,-0.12764 z"
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="csscsccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4116-2-3-8-8-9-5-3"
+ d="m 90.317678,349.90979 c 0.868618,-0.46688 2.900488,-0.5638 3.706041,-0.87603 0.643826,-0.24954 3.10607,-0.9755 3.529357,-1.16908 1.027631,-0.46999 2.565514,-0.20487 3.549304,-0.12648 5.85048,0.93913 7.88202,0.69885 9.8747,0.0933 0.55564,-0.16885 2.17293,-0.0807 3.16143,-0.0705 6.09534,1.13141 3.70627,0.0171 10.18551,-0.0433 3.14707,0.12986 3.31734,0.45543 6.30095,0.51065 2.70222,-0.19357 0.58994,-0.56361 3.73885,-0.69185 1.4126,-0.0922 2.90664,0.79745 4.97801,1.39726 1.92786,0.55824 4.49523,0.81814 4.33762,1.03257 -10.98186,0.0374 -29.55826,0.0335 -29.55826,0.0335 l -23.803512,0 0,-0.0901 z"
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="csscsccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4116-2-3-8-8-9-5-3-8"
+ d="m 91.066736,349.95424 c 0.81528,-0.23681 2.722383,-0.28601 3.478471,-0.44439 0.604292,-0.12656 2.915343,-0.49485 3.312633,-0.59307 0.96453,-0.23842 2.40798,-0.10388 3.33136,-0.0641 5.49123,0.47639 7.39803,0.35449 9.26835,0.0471 0.52152,-0.0857 2.0395,-0.0411 2.9673,-0.036 5.72105,0.57394 3.47869,0.009 9.56007,-0.0218 2.95382,0.0658 3.11364,0.23102 5.91404,0.25902 2.53629,-0.0982 0.55371,-0.28591 3.50926,-0.35094 1.32586,-0.0467 2.72816,0.40451 4.67234,0.70878 1.80948,0.28322 4.2192,0.41506 4.07126,0.52382 -10.30751,0.0188 -27.74323,0.0173 -27.74323,0.0173 l -22.341854,0 0,-0.0456 z"
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ </g>
+ </g>
+ <g
+ transform="translate(-0.513536,-1.0000036)"
+ id="g3733">
+ <path
+ style="fill:#ff9f10;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 109.15151,399.21681 c 0.37497,-0.72046 1.77906,-1.37088 1.96352,-2.09418 2.51377,-9.85676 3.06493,-14.33506 7.74433,-14.69592 2.59527,-0.0156 5.30251,0.84258 6.88683,4.66076 0.79162,1.90774 2.37664,10.89974 3.30243,11.85701 -9.6137,0.12331 -2.92079,0.35917 -19.89711,0.27233 z"
+ id="path3028-8-0-3-9-8-5-7-3-2-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscscc" />
+ <path
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 109.8163,399.32638 c 0.34752,-0.65228 1.64882,-1.24114 1.81978,-1.896 2.32975,-8.92394 2.84056,-12.97843 7.17741,-13.30514 2.40528,-0.0141 4.91434,0.76284 6.38268,4.21969 0.73367,1.72719 2.20265,9.86822 3.06067,10.73489 -8.90993,0.11164 -2.70697,0.32518 -18.44054,0.24656 z"
+ id="path3028-8-0-3-9-8-5-7-3-2-4-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscscc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 110.84544,399.95608 c 0.31399,-0.60809 1.48975,-1.15705 1.64422,-1.76754 2.105,-8.3193 2.56652,-12.09909 6.48499,-12.40366 2.17324,-0.0131 4.44024,0.71115 5.76693,3.9338 0.66289,1.61016 1.99015,9.1996 2.76539,10.00755 -8.05036,0.10407 -2.44581,0.30314 -16.66153,0.22985 z"
+ id="path3028-8-0-3-9-8-5-7-3-2-4-0-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscscc" />
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 89.680431,399.86733 c 0.893001,-0.68661 2.981907,-0.82914 3.810073,-1.28829 0.661898,-0.36698 3.193256,-1.43458 3.628425,-1.71927 1.056479,-0.69115 2.637531,-0.30127 3.648951,-0.18599 6.0147,1.38107 8.10327,1.02773 10.15188,0.13722 0.57125,-0.24831 2.23393,-0.11874 3.25017,-0.1037 6.26645,1.66386 3.81032,0.0251 10.47142,-0.0636 3.23542,0.19097 3.41048,0.66976 6.47784,0.75097 2.77807,-0.28468 0.60649,-0.82886 3.84381,-1.01743 1.45225,-0.13552 2.98822,1.17273 5.11775,2.05479 1.98196,0.82096 4.6214,1.20316 4.45938,1.51851 -11.29014,0.0549 -30.388,0.0493 -30.388,0.0493 l -24.471699,0 0,-0.13246 z"
+ id="path4116-2-3-8-8-9-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccccsccccc" />
+ <path
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 91.040566,399.90833 c 0.84576,-0.47422 2.824157,-0.57266 3.608511,-0.88979 0.626882,-0.25346 3.024321,-0.99082 3.436467,-1.18745 1.000587,-0.47736 2.497996,-0.20808 3.455916,-0.12845 5.6965,0.95386 7.67459,0.70982 9.61482,0.0948 0.54103,-0.17151 2.11575,-0.082 3.07823,-0.0716 5.93494,1.14918 3.60875,0.0174 9.91745,-0.0439 3.06427,0.13191 3.23006,0.46259 6.13515,0.51868 2.6311,-0.19662 0.57441,-0.57247 3.64047,-0.70272 1.37542,-0.0936 2.83013,0.80998 4.84701,1.4192 1.8771,0.56701 4.37692,0.83099 4.22347,1.04879 -10.69287,0.0379 -28.78041,0.034 -28.78041,0.034 l -23.177084,0 0,-0.0915 z"
+ id="path4116-2-3-8-8-9-3-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccccsccccc" />
+ </g>
+ <g
+ transform="translate(-0.513536,-0.99999974)"
+ id="g3725">
+ <path
+ style="fill:#ff9f10;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 109.34037,447.7481 c 4.28287,-3.42936 4.17177,-11.49506 9.70786,-11.76394 2.59527,-0.0109 4.77284,1.33256 6.35717,4.00776 0.79162,1.33665 2.9063,6.89466 3.83209,7.56537 -9.6137,0.0864 -2.9208,0.25165 -19.89712,0.19081 z"
+ id="path3028-8-0-3-9-8-5-7-3-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 110.01491,448.43374 c 3.98056,-3.07453 3.8773,-10.30568 9.02261,-10.54673 2.41208,-0.01 4.43594,1.19468 5.90844,3.59308 0.73574,1.19834 2.70115,6.18127 3.56159,6.78258 -8.93509,0.0775 -2.71463,0.22561 -18.49264,0.17107 z"
+ id="path3028-8-0-3-9-8-5-7-3-2-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 110.91578,449.41479 c 3.63853,-2.80432 3.54414,-9.39996 8.24734,-9.61983 2.20482,-0.009 4.05478,1.08969 5.40076,3.2773 0.67252,1.09303 2.46905,5.63803 3.25556,6.18649 -8.16734,0.0707 -2.48138,0.20579 -16.90366,0.15604 z"
+ id="path3028-8-0-3-9-8-5-7-3-2-2-6"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscc" />
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 89.680431,449.87217 c 0.88438,-0.66158 2.953121,-0.79891 3.773292,-1.24133 0.655508,-0.3536 3.16243,-1.38228 3.593398,-1.65659 1.04628,-0.66595 2.612069,-0.29029 3.613719,-0.17921 5.95665,1.33073 8.02505,0.99026 10.05389,0.13222 0.56572,-0.23926 2.21236,-0.11437 3.21879,-0.0999 6.20596,1.6032 3.77353,0.0242 10.37033,-0.0613 3.20419,0.184 3.37756,0.64534 6.4153,0.72359 2.75126,-0.2743 0.60064,-0.79864 3.80671,-0.98034 1.43823,-0.13058 2.95937,1.12997 5.06835,1.97989 1.96282,0.79103 4.57678,1.15929 4.41632,1.46314 -11.18115,0.0529 -30.09464,0.0475 -30.09464,0.0475 l -24.235459,0 0,-0.12764 z"
+ id="path4116-2-3-8-8-9-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccccsccccc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 91.679927,449.90643 c 0.827994,-0.48459 2.764839,-0.58518 3.532718,-0.90924 0.613715,-0.259 2.960799,-1.01248 3.364294,-1.21341 0.979571,-0.48779 2.445531,-0.21263 3.383321,-0.13126 5.57687,0.97472 7.5134,0.72534 9.41289,0.0968 0.52964,-0.17525 2.0713,-0.0838 3.01357,-0.0732 5.81028,1.1743 3.53293,0.0177 9.70914,-0.0449 2.99991,0.13477 3.16222,0.47269 6.00628,0.53001 2.57586,-0.20092 0.56235,-0.58498 3.56401,-0.71807 1.34653,-0.0957 2.77069,0.82767 4.74521,1.45021 1.83767,0.57941 4.28498,0.84916 4.13475,1.07172 -10.46828,0.0387 -28.1759,0.0348 -28.1759,0.0348 l -22.690283,0 0,-0.0935 z"
+ id="path4116-2-3-8-8-9-1-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccccsccccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 94.314693,449.93374 c 0.730462,-0.343 2.439162,-0.4142 3.116591,-0.64357 0.541427,-0.18333 2.612036,-0.71665 2.967996,-0.85887 0.8642,-0.34527 2.15748,-0.1505 2.9848,-0.0929 4.91996,0.68992 6.62838,0.51341 8.30412,0.0685 0.46725,-0.12405 1.82732,-0.0593 2.6586,-0.0518 5.12588,0.83119 3.11678,0.0125 8.56547,-0.0318 2.64655,0.0954 2.78974,0.33458 5.29879,0.37515 2.27244,-0.14221 0.49611,-0.41405 3.1442,-0.50826 1.18792,-0.0677 2.44432,0.58584 4.18625,1.02648 1.62121,0.41011 3.78025,0.60105 3.64771,0.75858 -9.23519,0.0274 -24.85699,0.0246 -24.85699,0.0246 l -20.017537,0 0,-0.0662 z"
+ id="path4116-2-3-8-8-9-1-5-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccccsccccc" />
+ </g>
+ <g
+ transform="translate(-0.513536,-1.0475145)"
+ id="g3717">
+ <path
+ style="fill:#ff9f10;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 110.50335,498.21417 c 3.9836,-2.04891 3.88025,-6.86787 9.02949,-7.02852 2.41393,-0.007 4.43933,0.79616 5.91295,2.39449 0.73631,0.7986 2.70322,4.11931 3.56431,4.52003 -8.94191,0.0516 -2.71669,0.15036 -18.50675,0.114 z"
+ id="path3028-8-0-3-9-8-5-7-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 110.71871,499.22991 c 3.82237,-2.04891 3.7232,-6.86787 8.66402,-7.02852 2.31623,-0.007 4.25965,0.79616 5.67363,2.39449 0.70651,0.7986 2.59381,4.11931 3.42005,4.52003 -8.57999,0.0516 -2.60674,0.15036 -17.7577,0.114 z"
+ id="path3028-8-0-3-9-8-5-7-3-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 111.65502,499.5108 c 3.39913,-1.74867 3.31094,-5.86147 7.70467,-5.99858 2.05976,-0.006 3.78799,0.67949 5.04541,2.04361 0.62828,0.68157 2.3066,3.51568 3.04135,3.85768 -7.62995,0.044 -2.3181,0.12832 -15.79143,0.0973 z"
+ id="path3028-8-0-3-9-8-5-7-3-0-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccscc" />
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 89.267296,499.88186 c 0.88438,-0.61152 2.953121,-0.73846 3.773292,-1.1474 0.655508,-0.32684 3.16243,-1.27769 3.593398,-1.53124 1.04628,-0.61556 2.612069,-0.26833 3.613714,-0.16565 5.95665,1.23004 8.02505,0.91533 10.05389,0.12221 0.56572,-0.22115 2.21236,-0.10571 3.21879,-0.0923 6.20596,1.48189 3.77353,0.0224 10.37033,-0.0567 3.20419,0.17008 3.37756,0.59651 6.4153,0.66884 2.75126,-0.25354 0.60064,-0.73821 3.80671,-0.90616 1.43823,-0.1207 2.95937,1.04447 5.06835,1.83008 1.96282,0.73117 4.57678,1.07157 4.41632,1.35242 -11.18115,0.0489 -30.09464,0.0439 -30.09464,0.0439 l -24.235454,0 0,-0.11798 z"
+ id="path4116-2-3-8-8-9-1-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccccsccccc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 90.994666,499.91943 c 0.827995,-0.41683 2.764839,-0.50336 3.532718,-0.78211 0.613715,-0.22278 2.960803,-0.87091 3.364294,-1.04374 0.979572,-0.41958 2.445532,-0.1829 3.383312,-0.11291 5.57687,0.83843 7.5134,0.62392 9.41289,0.0833 0.52965,-0.15074 2.0713,-0.072 3.01357,-0.0629 5.81028,1.0101 3.53294,0.0153 9.70914,-0.0386 2.9999,0.11593 3.16222,0.4066 6.00628,0.4559 2.57585,-0.17282 0.56235,-0.50318 3.56401,-0.61766 1.34653,-0.0823 2.77069,0.71194 4.74521,1.24744 1.83767,0.49838 4.28497,0.73041 4.13475,0.92185 -10.46828,0.0333 -28.1759,0.0299 -28.1759,0.0299 l -22.690274,0 0,-0.0804 z"
+ id="path4116-2-3-8-8-9-1-3-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccccsccccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 93.20294,499.99604 c 0.765495,-0.26665 2.55614,-0.322 3.266057,-0.50032 0.567387,-0.14251 2.737312,-0.55713 3.110351,-0.66769 0.905622,-0.2684 2.260932,-0.117 3.127922,-0.0722 5.15591,0.53635 6.94627,0.39912 8.70237,0.0533 0.48967,-0.0964 1.91496,-0.046 2.7861,-0.0403 5.3717,0.64616 3.26626,0.01 8.97626,-0.0247 2.77346,0.0741 2.92352,0.2601 5.5529,0.29164 2.38142,-0.11056 0.51991,-0.32189 3.295,-0.39512 1.24488,-0.0527 2.56154,0.45543 4.38702,0.79799 1.69896,0.31881 3.96153,0.46724 3.82264,0.58971 -9.67809,0.0213 -26.04909,0.0191 -26.04909,0.0191 l -20.97753,0 0,-0.0514 z"
+ id="path4116-2-3-8-8-9-1-3-0-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccccsccccc" />
+ </g>
+ <g
+ transform="translate(-0.513536,-1.0768751)"
+ id="g3794">
+ <g
+ id="g4139">
+ <g
+ transform="matrix(1.0077978,0,0,1,60.411961,0)"
+ id="g3323">
+ <path
+ style="opacity:0.98279993;fill:#ff9f10;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 43.229321,247.43726 c 0,-0.32834 0.43537,2.07042 0.56513,1.61118 l 0.56511,0 0,0.0467 c -0.54369,-3.4381 1.69961,-1.58113 3.5445,-1.64664 0,-0.27745 0.12725,-0.3182 1.24326,-0.39815 1.12298,-0.0805 1.24328,1.88049 1.24328,1.59624 0,-0.30697 0.0443,-0.31469 1.80839,-0.31469 1.75495,0 1.80839,0.009 1.80839,0.30908 0,0.27746 0.12727,-1.68179 1.24328,-1.60185 1.12299,0.0805 1.67634,0.59562 1.24326,0.40376 l -2.41423,0.93046 6.59615,-1.38424 -8.09067,-0.12211 c 0.0859,-1.05287 0.90989,-8.09103 1.07407,-11.55503 0.10044,-2.11916 0.0606,-5.2399 0.99865,-7.16757 0.93064,-1.91251 2.83517,-2.64028 3.92645,-2.65734 2.32059,-0.0183 4.40299,2.25765 5.81963,6.94523 0.70783,2.34212 1.00751,10.60394 1.83531,11.77917 2.81793,6.6447 -0.23968,5.58377 -9.80436,5.61466 l -13.2056,-2 0,-0.38883 z"
+ id="path3028-8-0-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sscccsssssscccsscsccccs" />
+ <path
+ style="opacity:0.98279993;fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 45.412718,249.94481 c 0,0.31201 0.38439,0.0234 0.47835,-0.3695 l 0.47835,0 0,0.0444 c -0.07984,-2.02135 0.57401,-1.72322 3.0002,-1.56476 0,-0.26366 0.10772,-0.30238 1.05235,-0.37836 0.95054,-0.0764 1.05235,-0.11356 1.05235,-0.38368 0,-0.29169 0.0375,1.70096 1.53071,1.70096 1.48547,0 1.53071,-1.992 1.53071,-1.70629 0,0.26366 0.10771,0.30238 1.05235,0.37836 0.95055,0.0764 1.41351,0.5633 1.05236,0.38368 l -2.04351,0.98364 5.58326,-1.31541 -6.61663,-0.24633 c 0.0895,-1.23218 1.27013,-16.77906 2.26171,-17.95147 0.81958,-0.96905 0.96667,-2.45292 2.47769,-2.47942 1.65911,-0.0147 2.46703,0.97621 3.49366,2.08418 0.7961,0.85918 2.17415,14.39003 3.0927,15.85405 1.34949,6.08387 1.80975,3.35774 -8.29882,3.33509 l -11.17779,0 0,1.63051 z"
+ id="path3028-4-0-8-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sscccsssssscccscsccccs" />
+ <path
+ style="opacity:0.98279993;fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 47.900687,247.96857 c 0,-0.3038 0.70264,-0.35975 0.38095,-0.35975 l 0.38094,0 0,0.0432 0.42134,0.57153 0.33414,0 c 1.40524,-1.75629 2.813527,-1.46483 3.31,-0.83704 0,-0.28401 0.03,-0.29116 1.21904,-0.29116 1.18301,0 1.21903,0.008 1.21903,0.28598 0,0.2567 0.0858,0.29442 0.83808,0.36838 1.126931,0.51193 0.407251,-0.20691 -0.78934,-0.61601 4.443693,0.45499 3.234114,0.717 -0.82295,0.47941 0.0713,-1.19972 2.25273,-16.21225 3.04241,-17.35378 0.78958,-1.07139 1.65913,-0.53764 2.44984,0.38018 0.63401,0.83654 2.79591,13.06845 3.52742,14.49392 l 0.177725,1.31184 c -1.09012,4.53098 6.317515,1.85518 -6.786795,1.88274 l -8.90183,0 0,-0.35976 z"
+ id="path3028-4-7-4-1-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sscccccssccccccccccs" />
+ </g>
+ <path
+ sodipodi:nodetypes="csscsccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4116-2-3-8-8"
+ d="m 90.210092,249.85095 c 0.886166,-0.77207 2.959083,-0.93233 3.78091,-1.44865 0.656831,-0.41264 3.168814,-1.61312 3.600652,-1.93324 1.048392,-0.77717 2.617346,-0.33877 3.621026,-0.20914 5.96867,1.55297 8.04124,1.15563 10.07417,0.15429 0.56688,-0.27921 2.21683,-0.13347 3.22529,-0.1166 6.2185,1.87095 3.78116,0.0282 10.39128,-0.0716 3.21065,0.21472 3.38436,0.75312 6.42824,0.84443 2.75682,-0.3201 0.60185,-0.93202 3.8144,-1.14406 1.44113,-0.15239 2.96534,1.31868 5.07858,2.31054 1.96677,0.92314 4.58601,1.3529 4.42524,1.7075 -11.20373,0.0617 -30.15539,0.0554 -30.15539,0.0554 l -24.284398,0 0,-0.14896 z"
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="csscsccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4116-2-3-8-8-5"
+ d="m 91.625075,249.88853 c 0.85264,-0.57738 2.847132,-0.69723 3.637866,-1.08335 0.631981,-0.30858 3.048924,-1.20634 3.464427,-1.44574 1.008728,-0.58119 2.518332,-0.25334 3.484042,-0.1564 5.74285,1.16136 7.73701,0.86422 9.69303,0.11538 0.54544,-0.2088 2.13296,-0.0998 3.10327,-0.0872 5.98323,1.39916 3.63811,0.0211 9.99814,-0.0535 3.08918,0.16057 3.25632,0.56321 6.18504,0.63149 2.65252,-0.23938 0.57908,-0.69699 3.67009,-0.85556 1.3866,-0.11397 2.85315,0.98615 4.88644,1.72789 1.89236,0.69036 4.41251,1.01175 4.25782,1.27693 -10.77986,0.0461 -29.01452,0.0414 -29.01452,0.0414 l -23.365645,0 0,-0.1114 z"
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="csscsccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path4116-2-3-8-8-5-2"
+ d="m 93.310443,249.92954 c 0.799303,-0.36498 2.669028,-0.44075 3.410296,-0.68483 0.592447,-0.19507 2.858188,-0.76258 3.247715,-0.91392 0.945626,-0.3674 2.360786,-0.16015 3.266086,-0.0989 5.3836,0.73414 7.25301,0.5463 9.08668,0.0729 0.51132,-0.13198 1.99953,-0.0631 2.90914,-0.0551 5.60895,0.88448 3.41052,0.0134 9.37269,-0.0338 2.89594,0.10151 3.05262,0.35603 5.79813,0.3992 2.48659,-0.15133 0.54286,-0.4406 3.44052,-0.54085 1.29985,-0.072 2.67466,0.62339 4.58075,1.09228 1.77398,0.43641 4.13649,0.63958 3.99147,0.8072 -10.10551,0.0291 -27.19948,0.0262 -27.19948,0.0262 l -21.903997,0 0,-0.0704 z"
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ </g>
+ </g>
+ <g
+ transform="matrix(1.011322,0,0,0.98755459,-1.152843,-0.427648)"
+ id="g3256">
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 24.309493,40.570783 c -2.498687,-2.496849 0.629161,-3.659397 2.827572,-3.423365 2.690526,0.288873 1.378375,0.633113 5.172116,0.19094 3.686856,-1.799953 3.038119,-1.920903 7.948799,-0.667468 3.505872,0.894858 4.233221,-1.981112 7.542169,-1.638641 1.183807,0.122521 3.958707,0.834825 3.970806,1.618118 2.345006,1.230956 2.03859,-1.575218 3.723508,-0.687526 1.968089,1.02333 2.608466,1.648715 0.971287,4.536374 -2.687676,5.333265 -2.838275,6.17824 -2.856401,9.450237 -4.347409,0.05751 -24.753951,0.101096 -26.909151,0.101096 -0.419234,-6.302446 -0.872445,-6.437845 -2.390705,-9.479765 z"
+ id="path3834-5-6-3-7-4-5-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscsscccccc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 25.912889,41.679787 c -2.218982,-2.191438 0.558733,-3.211784 2.511051,-3.004624 2.389348,0.253539 1.224079,0.555672 4.593146,0.167585 3.274148,-1.579785 2.69803,-1.68594 7.059006,-0.585824 3.113422,0.7854 3.75935,-1.738784 6.697893,-1.438205 1.05129,0.107535 3.515565,0.732711 3.52631,1.420192 2.082505,1.080387 1.810389,-1.382539 3.306695,-0.603428 1.74778,0.898157 2.316473,1.447046 0.862561,3.98149 -2.386816,4.680907 -2.520557,5.422526 -2.536654,8.294296 C 48.07214,49.961744 29.949922,50 28.035976,50 27.663673,44.46846 27.261195,44.349622 25.912889,41.679787 z"
+ id="path3834-5-6-3-7-4-5-8-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscsscccccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 27.992848,43.097995 c -1.904633,-1.8179 0.47958,-2.664324 2.155326,-2.492475 2.050864,0.210322 1.050671,0.460955 3.942464,0.139019 2.810319,-1.310505 2.315817,-1.398565 6.059001,-0.485968 2.672362,0.651526 3.226786,-1.442402 5.749044,-1.193057 0.90236,0.0892 3.017537,0.607817 3.026759,1.178115 1.78749,0.896231 1.553924,-1.146881 2.838258,-0.500572 1.500182,0.745063 1.988311,1.200392 0.740366,3.302831 -2.048691,3.883029 -2.163486,4.498236 -2.177302,6.880502 C 47.012936,49.96826 31.457979,50 29.81517,50 29.49561,45.411331 29.150148,45.31275 27.992848,43.097998 z"
+ id="path3834-5-6-3-7-4-5-8-4-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscsscccccc" />
+ </g>
+ <g
+ transform="matrix(1,0,0,0.98191228,-0.513536,0.80877237)"
+ id="g3261">
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 24.27716,90.464712 c -1.139418,-2.182153 -1.543144,-3.075305 -2.959905,-4.907838 -2.665636,-3.447914 1.178763,-4.4068 3.524061,-4.080862 2.870291,0.398906 1.47047,0.227786 6.735846,1.03945 6.775557,-1.451193 4.865319,-2.393995 10.104104,-0.663119 3.740116,1.235715 2.891852,-2.994322 6.421887,-2.521402 3.780898,0.544505 3.944194,3.18875 7.186335,3.939763 1.379338,0.347721 0.613071,-0.883893 2.849306,-1.749626 1.693533,-0.655624 5.016038,2.147425 3.066445,4.066265 -4.847303,4.770841 -3.949778,3.39993 -5.910569,8.393615 -1.006211,3.794125 -0.99418,5.879438 -0.99418,5.879438 C 49.662612,99.939816 27.892616,100 25.593417,100 25.474391,94.544006 25.825727,92.808834 24.27716,90.464712 z"
+ id="path3834-5-6-3-7-4-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccsscccc" />
+ <path
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 25.533114,90.750488 c -1.03664,-1.945332 -1.029423,-3.209711 -2.318389,-4.843366 -2.425191,-3.073724 0.323382,-2.711334 2.45713,-2.420769 2.611386,0.355614 1.337831,0.203065 6.12826,0.926642 6.164389,-1.2937 4.426458,-2.134183 9.192695,-0.591153 3.402751,1.101607 3.754583,-2.388465 6.966202,-1.966868 3.439854,0.485411 2.371207,2.000001 5.320902,2.669509 1.254918,0.309985 2.055878,0.14835 4.090401,-0.623428 1.540773,-0.584472 2.035525,1.539846 0.261788,3.250441 -4.410066,4.253079 -2.469919,3.030948 -4.253843,7.482687 -0.915449,3.382362 -0.904503,5.241364 -0.904503,5.241364 C 48.254224,99.946347 28.447922,100 26.356115,100 c -0.10829,-4.863875 0.585882,-7.159789 -0.823001,-9.249512 z"
+ id="path3834-5-6-3-7-4-5-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccsscccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 27.189003,91.033099 c -0.936234,-1.704467 -1.730966,-2.108073 -2.281101,-3.869148 -0.799936,-2.560731 -0.105186,-1.736269 1.821895,-1.481681 2.358457,0.311584 1.6055,1.965529 5.931946,2.599515 5.567328,-1.133518 4.19635,-1.737519 8.500947,-0.385543 3.073173,0.96521 3.390928,-1.496865 6.291481,-1.127468 3.106683,0.425309 1.413257,0.229592 4.077255,0.816204 1.133371,0.271603 2.187791,-1.127964 3.628012,-0.347615 -1.634114,1.953559 -2.158363,4.081879 -3.009531,7.550373 -0.826781,2.963569 -0.816895,4.989642 -0.816895,4.989642 -3.810845,0.06204 -21.698781,0.109043 -23.587984,0.109043 -0.0978,-4.261646 0.716399,-7.022341 -0.556025,-8.853322 z"
+ id="path3834-5-6-3-7-4-5-1-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccccccc" />
+ </g>
+ <g
+ transform="matrix(1,0,0,0.98007354,-0.513536,1.988969)"
+ id="g3266">
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 22.736302,135.0422 c -1.204006,-2.95831 -1.468482,-2.77513 -3.528651,-4.49558 -4.092595,-3.41769 0.243174,-6.48197 2.721415,-6.0401 3.032995,0.54079 1.553824,0.68961 7.11767,1.78997 7.159632,-1.96736 5.842797,-2.73776 11.378544,-0.39124 3.952126,1.67524 5.762279,-4.69403 9.492415,-4.0529 3.956539,1.23961 3.400826,4.40069 6.99225,5.46801 1.457526,0.4714 3.655048,-0.94441 6.018044,-2.11807 1.789531,-0.88882 3.796762,3.1651 2.939545,4.24322 -5.132245,6.45481 -8.584268,5.11697 -8.952113,12.39457 -0.662284,1.97026 -1.050534,7.97066 -1.050534,7.97066 C 50.96411,149.91841 27.960073,150 25.530543,150 25.204289,141.71485 25.67578,139.74331 22.736302,135.0422 z"
+ id="path3834-5-6-3-7-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccsscccc" />
+ <path
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 25.064022,136.13507 c -1.050052,-2.74216 -0.906183,-3.50869 -2.702922,-5.10343 -3.569282,-3.16799 -0.630607,-4.41664 1.530747,-4.00705 2.645171,0.50128 1.823298,-0.0162 6.675704,1.00376 6.244143,-1.82361 5.09569,-2.53772 9.92359,-0.36265 3.446775,1.55284 5.77452,-3.69565 9.027691,-3.10136 3.450623,1.14904 2.216915,3.42374 5.349109,4.41308 1.271155,0.43696 4.311265,-0.12636 6.372108,-1.21427 1.560707,-0.82388 1.064116,2.37206 0.316509,3.37141 -4.475994,5.98319 -6.363032,4.55584 -6.683841,11.30171 -0.577599,1.82631 -0.916204,7.3883 -0.916204,7.3883 C 49.68239,149.92437 29.619838,150 27.500968,150 c -0.284536,-7.67981 0.126666,-9.5073 -2.436946,-13.86493 z"
+ id="path3834-5-6-3-7-4-59"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccsscccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 25.118008,132.26433 c -3.251031,-2.99338 -2.030946,-2.98538 -0.06231,-2.59836 2.409317,0.47365 3.305638,5.24358 6.838129,3.78011 4.581544,-1.89807 5.995672,-1.73578 10.393098,0.31942 3.139447,1.46725 3.948797,-4.05376 6.911903,-3.49222 3.142952,1.08571 0.521138,2.39235 3.374054,3.32716 1.157814,0.41288 2.803275,-2.92834 4.493102,-2.36455 1.537439,0.51295 -1.133259,2.58655 -1.771609,3.56012 -2.399462,4.49452 -2.380138,6.21592 -2.053547,15.03823 C 49.347805,149.92854 31.635897,150 29.705954,150 c -0.280175,-7.89869 -0.61624,-13.99718 -4.587946,-17.73567 z"
+ id="path3834-5-6-3-7-4-59-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csssccscccc" />
+ </g>
+ <g
+ transform="matrix(1,0,0,0.97812443,-0.3187027,3.3178323)"
+ id="g3271">
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 21.64439,180.55753 c -2.849057,-4.60893 -3.81898,-3.25148 -5.991183,-5.33761 -4.315154,-4.14416 0.05895,-7.97331 2.671961,-7.43751 3.197932,0.65574 3.217899,1.74446 9.084313,3.0787 7.54898,-2.38553 8.628622,-2.63847 14.465409,0.20682 4.167047,2.03133 5.384573,-6.0324 9.317559,-5.25499 5.696083,0.21635 2.99157,4.97936 7.273771,6.63029 1.536788,0.5716 5.137219,-1.25869 7.628717,-2.68182 1.886848,-1.07775 3.684308,1.04263 4.086637,2.64741 2.930009,11.68698 -9.779402,-1.12565 -11.709581,17.64041 l -2.094898,9.94927 c -5.167286,0.13056 -28.435072,0.003 -30.996722,0.003 -0.582394,-9.05309 -1.339154,-15.51914 -3.735983,-19.44388 z"
+ id="path3834-5-6-3-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccssccccc" />
+ <path
+ style="fill:#ff7a00;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 23.760317,181.63128 c -2.516108,-4.34158 -2.048532,-3.85736 -3.966886,-5.82248 -3.810874,-3.90377 -2.861075,-5.92183 -0.553426,-5.41711 2.824214,0.61771 3.239093,1.37844 8.419945,2.63529 6.666788,-2.24716 8.811997,-3.01508 13.966683,-0.33484 3.680076,1.9135 6.741549,-4.75557 10.214916,-4.02326 5.030425,0.2038 0.655739,3.76362 4.437511,5.31879 1.357196,0.53844 5.728609,0.13847 7.928944,-1.20211 1.666347,-1.01524 3.142442,1.35055 2.946987,2.89109 -0.590365,4.65313 -9.166218,-2.78175 -10.870832,14.89576 l -1.850084,9.37214 c -4.563424,0.12299 -25.11208,0.003 -27.37437,0.003 -0.514334,-8.52795 -1.182657,-14.61893 -3.299388,-18.31601 z"
+ id="path3834-5-6-3-7-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscsccssccccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 25.154482,179.5718 c -3.003337,-3.1029 -3.049296,-4.3097 -1.230645,-3.90852 2.225753,0.49098 2.420303,1.89014 6.503315,2.88914 5.254074,-1.78615 6.944705,-2.39653 11.007097,-0.26615 2.900256,1.52095 5.312993,-3.77996 8.050342,-3.19788 3.964462,0.16199 0.516786,2.99151 3.497188,4.22763 1.069602,0.42798 3.295379,-2.52783 5.189452,-3.27276 1.737078,-0.68318 1.734758,0.25348 1.594227,1.5035 -0.416454,3.70435 -5.43626,0.90068 -6.779661,14.95163 l -1.458045,7.44943 c -3.596419,0.0977 -19.790747,0.003 -21.57365,0.003 -0.679605,-4.87003 -1.91053,-17.23417 -4.79962,-20.37902 z"
+ id="path3834-5-6-3-7-0-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cscsccsscccc" />
+ </g>
+ <g
+ transform="matrix(1,0,0,0.96925179,0.24308763,6.6437531)"
+ id="g3276">
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 23.743124,249.99998 c -0.0021,-8.38473 -0.674478,-13.21106 -1.947372,-19.40235 -2.872411,-4.60893 -8.660165,-7.98126 -9.00852,-9.36377 -1.45177,-5.76161 3.219163,-6.38157 5.853588,-5.84577 3.224147,0.65574 3.00822,4.48264 8.858827,2.89143 7.800011,-2.12139 7.371568,-2.4512 13.2562,0.39409 4.201205,2.03133 7.439447,-5.93877 11.404672,-5.16136 5.88637,1.47719 3.32255,5.27447 8.482387,7.09844 1.549385,0.5716 3.83884,-1.44595 6.350762,-2.86908 1.902314,-1.07775 5.150747,0.29358 5.556374,1.89836 2.954028,11.68698 -11.678801,1.6833 -13.624802,20.44936 l -2.112071,9.89196 c -5.209643,0.13056 -30.487397,0.019 -33.070045,0.0187 z"
+ id="path3834-5-6-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccssssccsscccc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 25.496074,249.95921 c -0.0019,-7.80617 -0.613588,-12.29948 -1.771569,-18.06356 -2.348268,-6.14472 -7.854441,-9.22953 -8.592502,-10.70389 -2.475121,-4.94432 1.736809,-3.55775 4.133405,-3.05892 2.93308,0.61049 4.32563,3.77608 9.64806,2.29467 7.095848,-1.97502 6.706084,-2.28207 12.059468,0.36689 3.821932,1.89117 6.767834,-5.52898 10.37509,-4.80522 5.354965,1.37527 3.022599,4.91053 7.716621,6.60864 1.409511,0.53216 4.816432,-0.81652 7.101585,-2.14145 1.730578,-1.00338 3.411783,-0.26785 3.730608,1.23771 1.098363,5.1867 -10.624472,1.56715 -12.394793,19.03833 l -1.921399,9.2094 c -4.739331,0.12155 -27.735081,0.0176 -30.084574,0.0174 z"
+ id="path3834-5-6-3-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccssssccssccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 27.065792,249.95841 c -0.0017,-6.40851 -0.539507,-10.09732 -1.55768,-14.82937 -1.005428,-5.70662 -4.018476,-8.65907 -4.667428,-9.86945 -2.176288,-4.05906 0.367507,-2.79775 2.474751,-1.45191 2.214151,1.41411 2.168956,4.05903 6.848785,2.84286 6.239133,-1.62141 5.802795,-2.06075 10.509841,0.11393 3.360492,1.55256 6.887038,-4.44541 10.058774,-3.85123 4.708435,1.12903 1.721349,3.18863 5.84864,4.5827 1.239334,0.43688 3.433776,-1.43268 5.443032,-2.52039 1.521637,-0.82373 2.466305,-2.06039 2.746635,-0.8244 0.479655,2.11481 -1.679538,1.87114 -3.976849,4.07261 -2.328176,2.23105 -4.803273,6.94048 -5.586757,14.15986 l -1.68942,7.56051 c -4.16713,0.0998 -24.386496,0.0144 -26.452324,0.0143 z"
+ id="path3834-5-6-3-9-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccssssccssscccc" />
+ </g>
+ <g
+ transform="matrix(0.96289698,0,0,0.98960187,1.0985144,2.0458593)"
+ id="g3281">
+ <path
+ style="fill:#ff9900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 22.29079,299.99998 c -0.0021,-8.38473 0.408741,-12.55759 -0.863963,-18.74888 -2.871983,-4.60893 -8.382106,-8.51092 -8.465619,-9.09894 -0.835479,-5.88265 3.218684,-7.04365 5.852716,-6.50785 3.223667,0.65574 4.943793,4.84775 10.79351,3.25655 7.799166,-2.12148 7.329923,-2.28666 13.213678,0.55863 4.200579,2.03133 5.94905,-6.2036 9.913685,-5.42619 1.418383,0.27813 4.642426,2.30102 4.656922,4.0791 0.02181,2.6756 1.324158,2.46404 2.470304,2.88693 1.549154,0.5716 4.785995,-0.38663 7.297542,-1.80976 1.902031,-1.07775 5.55615,-0.23608 5.961716,1.3687 2.953588,11.68698 -11.135502,0.35914 -13.081213,19.1252 l -1.840976,10.15679 c 11.579461,0.39539 -33.326038,0.16006 -35.908302,0.15976 z"
+ id="path3834-5-6"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccssssssssscccc" />
+ <path
+ style="fill:#ff7900;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 23.511372,299.99999 c -0.002,-7.82741 0.779178,-12.68366 -0.41005,-18.46342 -2.683611,-4.30259 -7.170252,-8.60729 -7.248287,-9.15622 -0.78068,-5.49165 1.418589,-4.85408 3.879856,-4.35389 3.012229,0.61215 3.514653,3.06065 9.040402,4.30621 6.126595,-4.41217 8.423986,-3.53321 13.921828,-0.87704 3.925065,1.89631 5.558855,-5.79126 9.263452,-5.06552 1.325352,0.25964 4.337931,2.14808 4.351477,3.80797 0.02038,2.49776 1.237307,2.30026 2.308278,2.69504 1.447545,0.53361 4.472084,-0.36093 6.8189,-1.68947 1.777277,-1.00611 5.852269,-0.2417 5.57069,1.27773 -1.404478,7.5787 -11.002374,-0.14252 -12.223223,17.85398 l -1.720228,9.48169 c 10.81997,0.36911 -31.1402,0.18326 -33.553095,0.18296 z"
+ id="path3834-5-6-36"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsscsssssscccc" />
+ <path
+ style="fill:#ff6200;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ d="m 25.193947,299.95293 c -0.0018,-6.39776 0.689282,-10.36704 -0.362741,-15.09115 -0.126835,-7.63655 -4.283101,-8.34605 -4.726661,-10.4801 -0.924185,-4.4464 -1.773422,0.7313 -0.125778,-2.43508 1.251523,-2.40513 4.045474,5.49784 8.933702,6.51591 5.419753,-3.60631 9.137458,-2.51336 14.000999,-0.34233 3.472219,1.54996 4.542987,-3.60992 7.820175,-3.01673 1.172441,0.21221 3.462924,1.00667 3.474907,2.36339 0.01802,2.04156 1.094556,2.06741 2.041966,2.39007 1.280537,0.43616 2.832546,-3.47848 4.908603,-4.56437 1.572227,-0.82235 2.876194,-1.77222 2.306295,-0.64101 -2.366019,4.69637 -5.987729,2.69246 -7.067726,17.40198 l -1.52176,7.7499 c 9.571639,0.30169 -27.547467,0.14979 -29.681981,0.14954 z"
+ id="path3834-5-6-36-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsscsssssscccc" />
+ </g>
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Fruit/Watermelon.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/Watermelon.svg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,395 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="330"
+ height="380"
+ sodipodi:docname="Watermelon.svg"
+ inkscape:export-filename="/home/alumno/Watermelon.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1024"
+ inkscape:window-height="576"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="1.2421053"
+ inkscape:cx="205.80343"
+ inkscape:cy="202.92468"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <g
+ id="g4067"
+ transform="matrix(1.0009098,0,0,1,-0.01662335,0)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path3846"
+ d="M 21.16176,304.90446 C 79.192603,199.15863 79.320882,201.26339 155.45626,63.017853 c 0,0 39.67701,-5.551263 42.63457,0.354572 36.04224,84.574805 37.29601,87.965105 101.09507,236.310815 -48.58642,56.96906 -291.41475,35.09134 -278.024141,5.22121 z"
+ style="fill:#ea0000;fill-opacity:1;fill-rule:evenodd;stroke:#9e1e00;stroke-width:4.1789999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="ccsccc"
+ inkscape:connector-curvature="0"
+ id="path3866-6"
+ d="m 157.39382,64.105403 c 2.84301,-1.024045 36.6574,-4.26847 41.38895,-1.733055 3.01899,1.617656 11.03073,25.264922 51.1483,119.135242 27.33564,63.96217 50.86987,116.7313 50.89689,117.77572 0.14494,5.56099 -23.08054,19.2874 -44.96726,25.54942 C 235.56204,225.55549 195.46747,140.34641 157.39382,64.105403 z"
+ style="opacity:0.49800002;fill:#e2e3db;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="cccccscccc"
+ inkscape:connector-curvature="0"
+ id="path3016"
+ d="m 130.1346,338.21986 c -29.49569,-1.30665 -62.692724,-5.33246 -88.484704,-14.00661 -13.892079,-4.86676 -22.58368,-12.389 -21.622294,-16.51372 2.552584,-6.17739 2.011312,-5.0554 7.8672,-15.76023 80.814378,32.39629 140.992688,28.35017 218.801108,7.41858 0.78617,-0.15815 7.91845,-0.53857 19.49563,-6.677 9.7244,-5.15605 23.77009,-12.70268 24.79453,-12.63676 6.17219,12.94032 6.29945,13.67306 10.3437,19.90908 -7.60478,11.45407 -29.21256,20.63481 -45.73155,25.82614 -38.40429,11.3478 -92.39878,13.95855 -125.46362,12.44052 z"
+ style="fill:#a3ff3d;fill-opacity:1;fill-rule:evenodd;stroke:#008200;stroke-width:3.36641192;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="ccsccc"
+ inkscape:connector-curvature="0"
+ id="path3866"
+ d="m 155.41075,63.626026 c 2.84301,-1.024045 36.65739,-4.268469 41.38895,-1.733055 3.01898,1.617657 11.03073,25.264923 51.14829,119.135239 27.33565,63.96217 50.86987,116.7313 50.8969,117.77571 0.14494,5.561 -23.08055,19.2874 -44.96727,25.54942 C 233.57896,225.07611 193.4844,139.86704 155.41075,63.626026 z"
+ style="opacity:0.49800002;fill:#ff5555;fill-opacity:1;fill-rule:evenodd;stroke:#9e1e00;stroke-width:3.36641192;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3836"
+ d="m 254.18308,326.22044 c -0.81393,-3.86474 -1.49705,-12.4723 -5.98386,-27.0405 19.92422,-9.22497 20.27979,-9.7719 41.68233,-22.15942 2.17558,5.55195 8.93128,18.53558 11.3554,22.98857 0.0787,0.2861 -7.34861,9.49354 -17.73467,14.34728 -12.93589,6.90227 -25.30393,11.09865 -29.3192,11.86407 z"
+ style="opacity:0.91397861;fill:#99ff55;fill-opacity:1;fill-rule:evenodd;stroke:#008200;stroke-width:3.36641192;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3016-1"
+ d="m 130.6765,338.82657 c -29.48675,-0.83955 -64.157215,-7.80493 -89.905333,-14.1916 -20.141557,-5.74449 -23.484138,-14.98988 -17.869072,-22.78129 74.099538,37.91124 156.369735,33.30432 228.166585,14.327 2.09032,5.93688 1.61619,9.52952 1.91745,9.94844 -38.45505,8.70038 -89.25508,13.67857 -122.30963,12.69745 z"
+ style="fill:#008200;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path3836-8"
+ d="m 255.5856,324.30115 c -0.79061,-2.64831 -0.62017,-1.57929 -1.85209,-8.97896 17.28722,-7.39585 22.18956,-8.88175 42.1268,-22.20468 2.14196,3.79844 1.34711,2.77666 3.36035,6.67271 -2.0962,2.98757 -5.06544,6.63137 -14.65868,12.18729 -12.37988,6.86736 -24.95698,11.77402 -28.97638,12.32364 z"
+ style="opacity:0.91397861;fill:#009100;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="ccsccscsssccc"
+ inkscape:connector-curvature="0"
+ id="path4300"
+ d="M 287.88498,306.91447 C 263.19743,260.46929 248.01975,203.20913 230.0716,160.95809 220.57806,138.63452 202.75696,104.75545 188.37582,75.646776 l -21.83006,-11.253711 18.80525,-1.405653 c 5.07392,-0.03467 8.27847,-0.11547 10.19087,0.490056 0.78187,0.247543 1.11402,1.577898 1.73412,2.485702 1.14479,2.216137 9.68241,22.297237 18.59243,43.73076 12.28631,29.55527 32.10044,76.03877 53.29087,125.0189 12.29435,28.41753 23.97997,54.57522 25.8858,57.88051 l 4.18218,7.25317 c -1.61883,3.04764 -9.50074,9.16182 -10.12146,9.15079 z"
+ style="opacity:0.28999999;fill:#ffd5d5;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="csccssc"
+ inkscape:connector-curvature="0"
+ id="path4324-3-3-7"
+ d="M 97.379797,336.8774 C 86.523,335.2669 48.937505,329.8389 42.3935,326.58443 33.942272,322.38106 18.984981,315.99933 18.495824,307.57188 17.944787,305.18361 43.475302,266.00098 134.04434,98.123201 c 2.77103,-1.479598 6.77679,-0.833882 3.74816,3.154899 -6.10802,8.04447 -18.53627,38.4123 -30.29404,72.7588 -22.498625,65.7224 -13.789881,142.34249 -10.118663,162.8405 z"
+ style="opacity:0.22999998;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <g
+ id="g3260">
+ <path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ id="path8533-2"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(-5.8199827,1.3156875,1.2680928,3.9270891,306.66538,-39.969783)" />
+ <path
+ style="opacity:0.13999999;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 138.82052,172.60263 c 0.92585,-3.05699 -0.0898,-7.39736 -1.84206,-11.563 -2.17162,-5.16257 -6.06788,-9.02073 -8.77101,-6.0901 -0.2495,0.27046 -0.19417,0.66253 -0.44027,1.03343 7.75195,5.62701 8.23658,20.5463 11.05334,16.61967 z"
+ id="path3801-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ id="path8533-2-7"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(-3.9406429,-4.6066071,-2.7242581,3.0386962,419.01701,263.10664)" />
+ <path
+ style="opacity:0.13999999;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 156.88808,214.58954 c 3.04823,-0.64244 6.24627,-3.6534 8.9386,-7.24332 3.33671,-4.44917 4.72801,-9.82174 0.92551,-10.84112 -0.35094,-0.094 -0.65751,0.14486 -1.09217,0.10245 -1.02585,9.69959 -13.47642,17.34119 -8.77194,17.98191 z"
+ id="path3801-5-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ id="path8533-2-77"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(-5.8661423,-1.0916073,1.116613,-3.9728155,357.88556,345.64936)" />
+ <path
+ style="opacity:0.13999999;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 182.01497,139.66765 c 1.04236,3.01924 0.19381,7.39538 -1.39742,11.62511 -1.97211,5.24204 -5.71762,9.24672 -8.53109,6.42188 -0.25969,-0.2607 -0.21944,-0.6546 -0.47957,-1.0158 7.53053,-5.92005 7.44287,-20.84694 10.40808,-17.03119 z"
+ id="path3801-5-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ id="path8533-2-3"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(5.8661423,1.0916073,-1.116613,3.9728155,-87.196134,40.736602)" />
+ <path
+ style="opacity:0.13999999;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 88.674466,246.7183 c -1.042368,-3.01923 -0.193815,-7.39536 1.397422,-11.62509 1.972109,-5.24205 5.717614,-9.24674 8.53108,-6.4219 0.259699,0.26071 0.219447,0.65462 0.47958,1.01581 -7.530537,5.92004 -7.442869,20.84695 -10.408082,17.03118 z"
+ id="path3801-5-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ id="path8533-2-7-4"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(3.7611487,-4.7542881,2.8387461,2.9320262,-115.01541,334.61757)" />
+ <path
+ style="opacity:0.13999999;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 145.06089,276.08726 c -3.07061,-0.52511 -6.38173,-3.41127 -9.20971,-6.89533 -3.5048,-4.318 -5.10104,-9.63327 -1.34042,-10.79768 0.34708,-0.10742 0.66259,0.11994 1.09531,0.0605 1.39691,9.65313 14.13128,16.81182 9.45481,17.6324 z"
+ id="path3801-5-8-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ id="path8533-2-7-4-5"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(3.7611487,-4.7542881,2.8387461,2.9320262,-53.119343,314.93041)" />
+ <path
+ style="opacity:0.13999999;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 206.95695,256.40009 c -3.07057,-0.52512 -6.38172,-3.41126 -9.2097,-6.89532 -3.50477,-4.318 -5.10105,-9.63328 -1.34041,-10.79768 0.3471,-0.10742 0.6626,0.11954 1.09533,0.0605 1.39692,9.65314 14.13128,16.81182 9.45478,17.63241 z"
+ id="path3801-5-8-0-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.11000001;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8533-2-77-7"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(-7.721515,-1.1643855,1.4879863,-4.3355191,414.38136,361.90062)" />
+ <path
+ style="opacity:0.01540001;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 183.64004,138.13151 c 1.35974,3.28667 0.22307,8.06067 -1.89117,12.67829 -2.62028,5.72279 -7.57092,10.1045 -11.26425,7.03746 -0.34082,-0.28316 -0.28633,-0.71261 -0.62719,-1.10518 9.94418,-6.48609 9.89374,-22.75712 13.78261,-18.61057 z"
+ id="path3801-5-5-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.11000001;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8533-2-77-7-5"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(7.6712015,-1.4595392,-1.6530977,-4.2752892,-96.517136,389.48274)" />
+ <path
+ style="opacity:0.01540001;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 125.47623,157.03247 c -1.23274,3.33638 0.0861,8.06329 2.37582,12.59648 2.83773,5.61812 7.95271,9.80684 11.52571,6.60047 0.32972,-0.29602 0.25881,-0.72306 0.58439,-1.12842 -10.18556,-6.10012 -10.7589,-22.36111 -14.48592,-18.06853 z"
+ id="path3801-5-5-9-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.11000001;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8533-2-77-7-0"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(7.0389454,-3.4572185,-2.6731564,-3.6891431,38.251181,525.81349)" />
+ <path
+ style="opacity:0.01540001;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 194.0278,242.00418 c -0.34973,3.55223 2.11447,7.76686 5.46727,11.53527 4.15522,4.67029 10.14907,7.35196 12.79107,3.30081 0.24408,-0.37388 0.0675,-0.76757 0.28014,-1.24613 -11.37105,-3.17505 -16.02125,-18.73158 -18.53829,-13.58996 z"
+ id="path3801-5-5-9-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.11000001;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8533-2-77-7-0-2"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(7.0389454,-3.4572185,-2.6731564,-3.6891431,-24.792104,544.64346)" />
+ <path
+ style="opacity:0.01540001;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 130.98447,260.83414 c -0.34969,3.55223 2.11452,7.76687 5.46729,11.53528 4.15525,4.67028 10.14908,7.35196 12.7911,3.3008 0.24408,-0.37387 0.0675,-0.76756 0.28012,-1.24614 -11.37104,-3.17504 -16.02123,-18.73156 -18.53832,-13.58995 z"
+ id="path3801-5-5-9-3-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.11000001;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8533-2-77-7-0-2-5"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(-7.1663061,-3.1848343,2.5297656,-3.7889086,337.21841,476.64219)" />
+ <path
+ style="opacity:0.01540001;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 170.67632,199.01329 c 0.48563,3.53622 -1.81521,7.84222 -5.02105,11.73638 -3.97317,4.82615 -9.85976,7.73564 -12.65516,3.78875 -0.25786,-0.36426 -0.0969,-0.76442 -0.32771,-1.23449 11.24101,-3.60863 15.29139,-19.33197 18.00372,-14.29064 z"
+ id="path3801-5-5-9-3-7-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.11000001;fill:#ffffff;fill-opacity:1;stroke:none"
+ id="path8533-2-77-7-2"
+ sodipodi:cx="38.383335"
+ sodipodi:cy="39.279999"
+ sodipodi:rx="0.86166668"
+ sodipodi:ry="2.7416666"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ transform="matrix(-7.721515,-1.1643855,1.4879863,-4.3355191,332.03828,452.96841)" />
+ <path
+ style="opacity:0.01540001;fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 101.29696,229.19929 c 1.35974,3.28667 0.22307,8.06067 -1.891171,12.6783 -2.620282,5.72277 -7.570919,10.1045 -11.264252,7.03745 -0.340815,-0.28316 -0.286333,-0.71259 -0.627181,-1.10518 9.944171,-6.48608 9.893723,-22.7571 13.782604,-18.61057 z"
+ id="path3801-5-5-9-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csscc" />
+ <g
+ id="g3916"
+ transform="matrix(1.1059245,-0.02120599,0.02182428,1.1381693,-21.956204,17.765538)">
+ <path
+ transform="matrix(-5.194422,-1.432084,-0.59815551,3.584494,456.19379,78.176358)"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ sodipodi:ry="2.7416666"
+ sodipodi:rx="0.86166668"
+ sodipodi:cy="39.279999"
+ sodipodi:cx="38.383335"
+ id="path8533-2-3-4"
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="csscc"
+ inkscape:connector-curvature="0"
+ id="path3801-5-2-5"
+ d="m 234.69635,172.49498 c 1.99545,-1.98372 2.96512,-5.78277 3.27406,-9.75663 0.38283,-4.92494 -1.14908,-9.56402 -4.51393,-8.42776 -0.31058,0.10485 -0.4273,0.43266 -0.77637,0.61694 3.88912,7.63845 -1.8484,19.42931 2.01624,17.56745 z"
+ style="opacity:0.13999999;fill:#ffffff;fill-opacity:1;stroke:none" />
+ <path
+ transform="matrix(6.7339091,2.1008916,0.43321785,-4.0172396,-41.900207,240.59956)"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ sodipodi:ry="2.7416666"
+ sodipodi:rx="0.86166668"
+ sodipodi:cy="39.279999"
+ sodipodi:cx="38.383335"
+ id="path8533-2-77-7-2-2"
+ style="opacity:0.11000001;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="csscc"
+ inkscape:connector-curvature="0"
+ id="path3801-5-5-9-5-8"
+ d="m 231.06086,153.67403 c -2.35558,2.07132 -3.24149,6.29838 -3.27151,10.78431 -0.0372,5.55958 2.33366,10.96921 6.50741,9.98558 0.3852,-0.0909 0.50382,-0.45241 0.93057,-0.62996 -5.64102,-9.03192 0.57638,-21.90217 -4.16647,-20.13993 z"
+ style="opacity:0.01540001;fill:#ffffff;fill-opacity:1;stroke:none" />
+ <path
+ inkscape:transform-center-y="6.8275839"
+ inkscape:transform-center-x="-0.26748628"
+ transform="matrix(5.194422,-1.432084,0.59815551,3.584494,-15.781326,34.350269)"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ sodipodi:ry="2.7416666"
+ sodipodi:rx="0.86166668"
+ sodipodi:cy="39.279999"
+ sodipodi:cx="38.383335"
+ id="path8533-2-3-4-6"
+ style="fill:#000000;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ inkscape:transform-center-y="6.2348523"
+ inkscape:transform-center-x="1.7675182"
+ sodipodi:nodetypes="csscc"
+ inkscape:connector-curvature="0"
+ id="path3801-5-2-5-3"
+ d="m 205.71611,128.6689 c -1.99545,-1.98372 -2.96512,-5.78277 -3.27406,-9.75663 -0.38283,-4.92494 1.14908,-9.56402 4.51393,-8.42776 0.31058,0.10485 0.4273,0.43266 0.77637,0.61694 -3.88912,7.63845 1.8484,19.42931 -2.01624,17.56745 z"
+ style="opacity:0.13999999;fill:#ffffff;fill-opacity:1;stroke:none" />
+ <path
+ inkscape:transform-center-y="6.2620898"
+ transform="matrix(-6.7339091,2.1008916,-0.43321785,-4.0172396,482.31266,196.77348)"
+ d="m 39.245002,39.279999 c 0,1.51418 -0.385782,2.741666 -0.861667,2.741666 -0.475885,0 -0.861667,-1.227486 -0.861667,-2.741666 0,-1.514181 0.385782,-2.741667 0.861667,-2.741667 0.475885,0 0.861667,1.227486 0.861667,2.741667 z"
+ sodipodi:ry="2.7416666"
+ sodipodi:rx="0.86166668"
+ sodipodi:cy="39.279999"
+ sodipodi:cx="38.383335"
+ id="path8533-2-77-7-2-2-8"
+ style="opacity:0.11000001;fill:#ffffff;fill-opacity:1;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ inkscape:transform-center-y="6.8559754"
+ inkscape:transform-center-x="-2.0783619"
+ sodipodi:nodetypes="csscc"
+ inkscape:connector-curvature="0"
+ id="path3801-5-5-9-5-8-5"
+ d="m 209.3516,109.84795 c 2.35558,2.07132 3.24149,6.29838 3.27151,10.78431 0.0372,5.55958 -2.33366,10.96921 -6.50741,9.98558 -0.3852,-0.0909 -0.50382,-0.45241 -0.93057,-0.62996 5.64102,-9.03192 -0.57638,-21.90217 4.16647,-20.13993 z"
+ style="opacity:0.01540001;fill:#ffffff;fill-opacity:1;stroke:none" />
+ </g>
+ </g>
+ <path
+ sodipodi:nodetypes="csscssc"
+ inkscape:connector-curvature="0"
+ id="path4324-3-3"
+ d="m 151.68608,340.36278 c -3.88672,-0.98839 -49.89593,0.0178 -53.096146,-3.55068 -9.560172,-10.66043 -5.926707,-69.64748 -3.526383,-99.59695 5.813229,-72.53316 32.358169,-107.28524 35.328259,-123.68635 1.57027,-1.81852 4.11171,3.50037 2.6094,7.72918 -3.02982,8.52856 -13.21211,34.68085 -17.34321,68.92223 -7.90489,65.52124 30.49617,133.81434 36.02808,150.18257 z"
+ style="opacity:0.13980001;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ inkscape:connector-curvature="0"
+ id="path4065"
+ d="m 246.44092,298.29719 c 4.77968,-0.93282 12.21599,-4.51421 21.58491,-9.9264 18.51184,-10.69424 4.24552,-3.5196 21.90139,-13.4431 8.22485,10.62851 10.61617,19.74684 12.98654,25.28297 -3.63314,11.56373 -49.73924,31.94783 -48.77382,26.07618 -3.77558,-13.95519 -6.36858,-20.30775 -7.69902,-27.98965 z"
+ style="opacity:0.13980001;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Fruit/Watermelon_mask.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/amSnowball.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/amSnowball.svg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ width="128"
+ height="128"
+ sodipodi:docname="amSnowball.svg"
+ inkscape:export-filename="/home/alumno/amSnowball.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1024"
+ inkscape:window-height="576"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="3.6875"
+ inkscape:cx="64"
+ inkscape:cy="74.847458"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <g
+ id="g3142"
+ transform="matrix(0.97742508,0,0,1,1.4010943,0)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path3042-5-9"
+ d="m 72.669985,69.529726 c -3.145615,-0.545235 -6.42249,-2.890076 -7.857041,-5.622279 -2.153306,-4.101119 -1.281836,-8.75168 2.238774,-11.947152 4.341942,-3.940947 11.319436,-3.916319 15.69527,0.05542 2.276723,2.066462 3.362698,4.488259 3.342379,7.453728 -0.04453,6.493099 -6.420873,11.273368 -13.419382,10.060305 z"
+ style="opacity:0.98999999;fill:#572503;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3042-5"
+ d="m 72.074486,68.809188 c -3.09694,-0.567087 -6.323115,-3.005907 -7.735469,-5.847611 -2.119987,-4.265488 -1.262002,-9.102438 2.204136,-12.425982 4.274754,-4.098893 11.144289,-4.073279 15.452411,0.05764 2.241505,2.14928 3.310668,4.668144 3.290664,7.752461 -0.04387,6.753336 -6.321516,11.725191 -13.211742,10.463512 z"
+ style="opacity:0.98999999;fill:#d55703;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3042"
+ d="m 72.905865,68.276034 c -2.852123,-0.514902 -5.823256,-2.729293 -7.123962,-5.3095 -1.952396,-3.872965 -1.162237,-8.264804 2.029895,-11.282508 3.936826,-3.721701 10.263302,-3.698445 14.230855,0.05233 2.064304,1.951499 3.048953,4.238569 3.030526,7.039063 -0.04043,6.131874 -5.821789,10.646207 -12.167314,9.50063 z"
+ style="opacity:0.98999999;fill:#fe6600;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ sodipodi:nodetypes="ssssss"
+ inkscape:connector-curvature="0"
+ id="path3044"
+ d="m 68.982076,51.717606 c 0.861953,-1.131965 3.213824,-1.87446 4.576469,-1.991795 2.584283,-0.222525 3.623455,0.924895 3.925261,1.57017 0.477735,1.021442 -1.42965,1.434157 -3.365277,1.63189 -0.912988,0.09327 -1.806892,0.862345 -2.209507,1.308315 -2.821253,3.125022 -5.607197,1.001252 -2.926946,-2.51858 z"
+ style="opacity:0.3;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
+ <path
+ transform="matrix(2.6350423,0,0,2.2478717,-126.91421,-91.700602)"
+ d="m 75.073167,70.232971 c 0,0.97962 -0.751213,1.77376 -1.67788,1.77376 -0.926668,0 -1.677881,-0.79414 -1.677881,-1.77376 0,-0.97962 0.751213,-1.773759 1.677881,-1.773759 0.926667,0 1.67788,0.794139 1.67788,1.773759 z"
+ sodipodi:ry="1.7737594"
+ sodipodi:rx="1.6778805"
+ sodipodi:cy="70.232971"
+ sodipodi:cx="73.395287"
+ id="path3100-1"
+ style="fill:#a3086a;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.5536423,0,0,1.4518088,-47.784407,-35.849202)"
+ d="m 75.073167,70.232971 c 0,0.97962 -0.751213,1.77376 -1.67788,1.77376 -0.926668,0 -1.677881,-0.79414 -1.677881,-1.77376 0,-0.97962 0.751213,-1.773759 1.677881,-1.773759 0.926667,0 1.67788,0.794139 1.67788,1.773759 z"
+ sodipodi:ry="1.7737594"
+ sodipodi:rx="1.6778805"
+ sodipodi:cy="70.232971"
+ sodipodi:cx="73.395287"
+ id="path3100"
+ style="fill:#f49ee9;fill-opacity:1;fill-rule:evenodd;stroke:#db2efe;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ </g>
+</svg>
Binary file share/hedgewars/Data/Themes/Fruit/horizont.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/icon.png has changed
Binary file share/hedgewars/Data/Themes/Fruit/icon@2x.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Fruit/theme.cfg Tue Jun 04 22:28:12 2013 +0200
@@ -0,0 +1,13 @@
+sky = 50, 40, 131
+border = 0, 128, 0
+water-top = 255, 98, 0
+water-bottom = 255, 68, 0
+water-opacity = 125
+music = oriental.ogg
+clouds = 20
+object = Orange1, 1, 50, 84, 15, 3, 1, 8, 2, 90, 73
+object = Orange2, 1, 50, 84, 15, 3, 1, 8, 2, 90, 73
+object = Watermelon, 1, 87, 272, 77, 10, 1, 21, 2, 242, 219
+object = Banana1, 1, 152, 191, 37, 24, 1, 2, 1, 163, 174
+object = Banana2, 1, 1, 190, 37, 24, 1, 22, 0, 163, 174
+flakes = 20, 3, 999999999, 100, 260
--- a/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml Tue Jun 04 22:28:12 2013 +0200
@@ -18,6 +18,7 @@
<comment xml:lang="cs">Ukázka hry Hedgewars</comment>
<comment xml:lang="sv">Demo för Hedgewars</comment>
<comment xml:lang="da">Hedgewars-demo</comment>
+ <comment xml:lang="tr">Hedgewars Dösteri</comment>
<magic priority="50">
<match required="yes" type="byte" offset="0" value="2"/>
<match required="yes" type="big16" offset="1" value="21572"/>
@@ -39,6 +40,7 @@
<comment xml:lang="cs">Uložená hra Hedgewars</comment>
<comment xml:lang="sv">Sparfil för Hedgewars</comment>
<comment xml:lang="da">Gemt Hedgewars-spil</comment>
+ <comment xml:lang="tr">Hedgewars kayıtlı oyun</comment>
<magic priority="50">
<match required="yes" type="byte" offset="0" value="2"/>
<match required="yes" type="big16" offset="1" value="21587"/>
--- a/share/hedgewars/Data/misc/hedgewars.desktop Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/misc/hedgewars.desktop Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,6 @@
[Desktop Entry]
Type=Application
Version=1.0
-Encoding=UTF-8
Name=Hedgewars
GenericName=Fighting Hedgehogs
GenericName[de]=Kämpfende Igel
@@ -16,6 +15,7 @@
GenericName[sk]=Bojujúci ježkovia
GenericName[cs]=Bojující ježci
GenericName[sv]=Stridande igelkottar
+GenericName[tr]=Dövüşen Kirpiler
Icon=hedgewars.png
Exec=hedgewars %U
Terminal=false
--- a/share/hedgewars/Data/misc/hwengine.desktop.in Thu Apr 04 14:37:19 2013 +0200
+++ b/share/hedgewars/Data/misc/hwengine.desktop.in Tue Jun 04 22:28:12 2013 +0200
@@ -1,7 +1,6 @@
[Desktop Entry]
Type=Application
Version=1.0
-Encoding=UTF-8
Name=Hedgewars Engine
GenericName=Hedgewars engine, for playback of saves and demos
GenericName[de]=Hedgewars engine, für die Wiedergabe von gespeicherten Spielen und Demos
@@ -13,6 +12,7 @@
GenericName[pt]=Motor de jogo Hedgewars, para reprodução de jogos guardados e demos
GenericName[ru]=Движок Hedgewars для проигрывания сохранённых игр и демок
GenericName[sk]=Engine hry Hedgewars, pre prehrávanie uložených hier a demo súborov
+GenericName[tr]=Kayıtların ve gösterilerin oynatılması için Hedgewars motoru
GenericName[cs]=Engine hry Hedgewars pro přehrávání uložených her a ukázkových souborů
GenericName[sv]=Hedgewarsmotorn, för att öppna demo- och sparfiler
GenericName[da]=Kæmpende Pindsvin
--- a/tools/CMakeLists.txt Thu Apr 04 14:37:19 2013 +0200
+++ b/tools/CMakeLists.txt Tue Jun 04 22:28:12 2013 +0200
@@ -33,6 +33,7 @@
if(NOT NOPNG)
#get the neme of the library (harmelss if it is static)
string(REGEX REPLACE ".*/(.*)$" "\\1" PNG_LIBNAME "${PNG_LIBRARY}")
+ string(REGEX REPLACE ".*/(.*)$" "\\1" ZLIB_LIBNAME "${ZLIB_LIBRARY}")
endif()
set(frameworks_dir ${CMAKE_INSTALL_PREFIX}/${target_library_install_dir})
--- a/tools/CreateMacBundle.cmake.in Thu Apr 04 14:37:19 2013 +0200
+++ b/tools/CreateMacBundle.cmake.in Tue Jun 04 22:28:12 2013 +0200
@@ -16,6 +16,7 @@
#same here, for libpng and hwengine, let's assume the version pulled by macdeployqt is the same
#(yes libpng is pulled by macdeployqt even when NOVIDEOREC is active)
execute_process(COMMAND install_name_tool -change ${PNG_LIBRARY} @executable_path/../Frameworks/${PNG_LIBNAME} ${engine_full_path})
+ execute_process(COMMAND install_name_tool -change ${ZLIB_LIBRARY} @executable_path/../Frameworks/${ZLIB_LIBNAME} ${engine_full_path})
endif()
if(doBundle EQUAL 1)
--- a/tools/build_windows.bat Thu Apr 04 14:37:19 2013 +0200
+++ b/tools/build_windows.bat Tue Jun 04 22:28:12 2013 +0200
@@ -13,7 +13,8 @@
if %BUILD_TYPE%=="Debug" (
for %%G in (QtCored4 QtGuid4 QtNetworkd4) do xcopy /d/y %QTDIR%\%%G.dll %CD%\bin\
)
-for %%G in (QtCore4 QtGui4 QtNetwork4 libgcc_s_dw2-1 mingwm10) do (
+:: should you libgcc dynamically you should try adding libgcc_s_dw2-1 and mingwm10
+for %%G in (QtCore4 QtGui4 QtNetwork4) do (
xcopy /d/y %QTDIR%\%%G.dll %CD%\bin\
)
@@ -39,7 +40,8 @@
echo Running cmake...
set ERRORLEVEL=
-cmake . -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH="%CD%\misc\winutils\" -DPNG_LIBRARY="%CD%\misc\winutils\bin\libpng13.dll" -DCMAKE_BUILD_TYPE="%BUILD_TYPE%"
+cmake . -G "MinGW Makefiles" -DPNG_LIBRARY="%CD%\misc\winutils\bin\libpng13.dll" -DCMAKE_BUILD_TYPE="%BUILD_TYPE%" -DCMAKE_PREFIX_PATH="%CD%\misc\winutils\\"
+:: prefix should be last
if %ERRORLEVEL% NEQ 0 goto exitpoint
--- a/tools/w32DownloadUnzip.vbs Thu Apr 04 14:37:19 2013 +0200
+++ b/tools/w32DownloadUnzip.vbs Tue Jun 04 22:28:12 2013 +0200
@@ -7,6 +7,7 @@
' References
' http://superuser.com/questions/59465/is-it-possible-to-download-using-the-windows-command-line
' http://stackoverflow.com/questions/1021557/how-to-unzip-a-file-using-the-command-line
+' http://stackoverflow.com/questions/424331/get-the-current-temporary-directory-path-in-vbscript
Set ArgObj = WScript.Arguments
@@ -23,7 +24,8 @@
End if
End if
-strHDLocation = "C:\Windows\Temp\temp.zip"
+' Temporary directory
+strHDLocation = WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2) + "\hwlibtemp.zip"
' Fetch the file
WScript.Echo ( "Trying to download from " & strFileURL)
@@ -37,7 +39,7 @@
objADOStream.Type = 1 'adTypeBinary
objADOStream.Write objXMLHTTP.ResponseBody
- objADOStream.Position = 0 'Set the stream position to the start
+ objADOStream.Position = 0 'Set the stream position to the start
Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
@@ -46,12 +48,12 @@
objADOStream.SaveToFile strHDLocation
objADOStream.Close
Set objADOStream = Nothing
+ Set objXMLHTTP = Nothing
Else
WScript.Echo ("Error downloading file (error code: " & objXMLHTTP.Status & ")")
Set objXMLHTTP = Nothing
WScript.Quit
End if
-Set objXMLHTTP = Nothing
WScript.Echo ( "Extracting file to " & strOutputPath)
Set objShell = CreateObject( "Shell.Application" )