--- a/.hgignore Sun Apr 21 01:36:08 2013 +0200
+++ b/.hgignore Wed May 29 22:52:37 2013 +0400
@@ -3,6 +3,7 @@
glob:moc_*.cxx
glob:qrc_*.cxx
glob:*.o
+glob:*.a
glob:*.qm
glob:Makefile
glob:bin
@@ -54,8 +55,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
@@ -63,3 +64,5 @@
glob:_CPack_Packages/
glob:version_info.txt
glob:*.tar.*
+glob:*.or
+glob:*.res
\ No newline at end of file
--- a/CMakeLists.txt Sun Apr 21 01:36:08 2013 +0200
+++ b/CMakeLists.txt Wed May 29 22:52:37 2013 +0400
@@ -211,6 +211,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}")
--- a/ChangeLog.txt Sun Apr 21 01:36:08 2013 +0200
+++ b/ChangeLog.txt Wed May 29 22:52:37 2013 +0400
@@ -2,15 +2,39 @@
* bugfixes
0.9.18 -> 0.9.19:
- + new icegun weapon
- + main graphical user interface overhaul
- + 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
- * rope sliding
- * forbid kicking on 1v1 matches
+ + 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 targetted 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/QTfrontend/campaign.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/campaign.cpp Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/campaign.h Wed May 29 22:52:37 2013 +0400
@@ -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/gameuiconfig.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/gameuiconfig.cpp Wed May 29 22:52:37 2013 +0400
@@ -112,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);
@@ -521,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/hwform.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/hwform.cpp Wed May 29 22:52:37 2013 +0400
@@ -153,7 +153,7 @@
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);
@@ -319,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");
@@ -472,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())
@@ -598,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();
@@ -1373,13 +1375,11 @@
connect(hwnet, SIGNAL(configAsked()), ui.pageNetGame->pGameCFG, SLOT(fullNetConfig()));
//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 && AskForNickAndPwd() != 0)
+ return;
- hwnet->m_private_game = !(hostName == NETGAME_DEFAULT_SERVER && port == NETGAME_DEFAULT_PORT);
- if (hwnet->m_private_game == false)
- if (AskForNickAndPwd() != 0)
- return;
-
+ QString nickname = config->value("net/nick",tr("Guest")+QString("%1").arg(rand())).toString();
ui.pageRoomsList->setUser(nickname);
ui.pageNetGame->setUser(nickname);
@@ -1392,16 +1392,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
@@ -1418,62 +1420,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;
}
@@ -1546,7 +1540,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();
}
--- a/QTfrontend/main.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/main.cpp Wed May 29 22:52:37 2013 +0400
@@ -268,8 +268,13 @@
QString cc = settings.value("misc/locale", QString()).toString();
if (cc.isEmpty())
- cc = HWApplication::keyboardInputLocale().name();
- // QLocale::system().name() returns only "C"...
+ {
+ 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)))
--- a/QTfrontend/model/ammoSchemeModel.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/model/ammoSchemeModel.cpp Wed May 29 22:52:37 2013 +0400
@@ -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
--- a/QTfrontend/net/newnetclient.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/net/newnetclient.cpp Wed May 29 22:52:37 2013 +0400
@@ -425,8 +425,7 @@
{
if (nick == mynick)
{
- if (isChief && !setFlag) ToggleReady();
- else emit setMyReadyStatus(setFlag);
+ emit setMyReadyStatus(setFlag);
}
m_playersModel->setFlag(nick, PlayersListModel::Ready, setFlag);
}
--- a/QTfrontend/res/css/qt.css Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/res/css/qt.css Wed May 29 22:52:37 2013 +0400
@@ -176,9 +176,15 @@
height: 10px;
}
+QLabel {
+overflow: hidden;
+}
+
QComboBox {
border-radius: 10px;
padding: 3px;
+height: 18px;
+overflow: hidden;
}
QComboBox:pressed{
border-color: white;
@@ -326,4 +332,8 @@
TeamSelWidget, #gameStackContainer, #GBoxOptions {
border-radius: 10px;
-}
\ No newline at end of file
+}
+
+PageMultiplayer TeamSelWidget {
+min-height: 500px;
+}
--- a/QTfrontend/res/xml/tips.xml Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/res/xml/tips.xml Wed May 29 22:52:37 2013 +0400
@@ -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/ui/page/pagegamestats.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/ui/page/pagegamestats.cpp Wed May 29 22:52:37 2013 +0400
@@ -101,11 +101,22 @@
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);
- btnRestart = addButton(":/res/Start.png", bottomLayout, 0, true);
- 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;
}
--- a/QTfrontend/ui/page/pagegamestats.h Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/ui/page/pagegamestats.h Wed May 29 22:52:37 2013 +0400
@@ -45,6 +45,7 @@
QPushButton *btnSave;
QPushButton *btnRestart;
+ QLabel *mainNote;
QLabel *labelGameStats;
QLabel *labelGameWin;
QLabel *labelGameRank;
--- a/QTfrontend/ui/page/pagemain.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/ui/page/pagemain.cpp Wed May 29 22:52:37 2013 +0400
@@ -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
}
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/ui/page/pagemain.h Wed May 29 22:52:37 2013 +0400
@@ -29,6 +29,7 @@
public:
PageMain(QWidget * parent = 0);
+ void resetNetworkChoice();
QPushButton * BtnSinglePlayer;
QPushButton * BtnNet;
--- a/QTfrontend/ui/page/pageoptions.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/ui/page/pageoptions.cpp Wed May 29 22:52:37 2013 +0400
@@ -587,11 +587,12 @@
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);
--- a/QTfrontend/ui/page/pageroomslist.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/ui/page/pageroomslist.cpp Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/ui/page/pageroomslist.h Wed May 29 22:52:37 2013 +0400
@@ -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/widget/feedbackdialog.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/ui/widget/feedbackdialog.cpp Wed May 29 22:52:37 2013 +0400
@@ -286,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;
--- a/QTfrontend/ui/widget/mapContainer.cpp Sun Apr 21 01:36:08 2013 +0200
+++ b/QTfrontend/ui/widget/mapContainer.cpp Wed May 29 22:52:37 2013 +0400
@@ -801,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();
}
@@ -932,5 +932,5 @@
m_theme = name;
btnTheme->setIcon(QIcon());
- btnTheme->setText(tr("Theme: ") + name);
+ btnTheme->setText(tr("Theme: %1").arg(name));
}
--- a/gameServer/Actions.hs Sun Apr 21 01:36:08 2013 +0200
+++ b/gameServer/Actions.hs Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/gameServer/CoreTypes.hs Wed May 29 22:52:37 2013 +0400
@@ -75,6 +75,7 @@
| CheckRecord
| CheckFailed B.ByteString
| CheckSuccess [B.ByteString]
+ | Random [ClientChan] [B.ByteString]
type ClientChan = Chan [B.ByteString]
--- a/gameServer/HWProtoCore.hs Sun Apr 21 01:36:08 2013 +0200
+++ b/gameServer/HWProtoCore.hs Wed May 29 22:52:37 2013 +0400
@@ -43,12 +43,14 @@
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 ("PART":m:ms) = handleCmd ["PART", B.unwords $ m:ms]
+ h ("QUIT":m:ms) = handleCmd ["QUIT", B.unwords $ m:ms]
+ h ("RND":rs) = handleCmd ("RND":rs)
+ h ("GLOBAL":m:ms) = do
+ cl <- thisClient
rnc <- liftM snd ask
let chans = map (sendChan . client rnc) $ allClients rnc
- return [AnswerClients chans ["CHAT", "[global notice]", msg]]
+ return [AnswerClients chans ["CHAT", "[global notice]", B.unwords $ m:ms] | isAdministrator cl]
h c = return [Warning . B.concat . L.intersperse " " $ "Unknown cmd" : c]
handleCmd cmd = do
@@ -72,9 +74,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 Sun Apr 21 01:36:08 2013 +0200
+++ b/gameServer/HWProtoInRoomState.hs Wed May 29 22:52:37 2013 +0400
@@ -169,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
@@ -350,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 Sun Apr 21 01:36:08 2013 +0200
+++ b/gameServer/HWProtoLobbyState.hs Wed May 29 22:52:37 2013 +0400
@@ -144,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/hedgewars-server.cabal Sun Apr 21 01:36:08 2013 +0200
+++ b/gameServer/hedgewars-server.cabal Wed May 29 22:52:37 2013 +0400
@@ -22,6 +22,7 @@
bytestring,
bytestring-show,
network >= 2.3,
+ random,
time,
mtl >= 2,
dataenc,
--- a/hedgewars/ArgParsers.inc Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/ArgParsers.inc Wed May 29 22:52:37 2013 +0400
@@ -189,12 +189,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);
+ {--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/GSHandlers.inc Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/GSHandlers.inc Wed May 29 22:52:37 2013 +0400
@@ -178,6 +178,12 @@
if Gear^.dY.Round > 2 then
Gear^.dY.QWordValue:= 8589934592;
+ if (Gear^.State and gstSubmersible <> 0) and (hwRound(Gear^.Y) > cWaterLine) then
+ begin
+ Gear^.dX:= Gear^.dX * _0_999;
+ Gear^.dY:= Gear^.dY * _0_999
+ end;
+
Gear^.State := Gear^.State and (not gstCollision);
collV := 0;
collH := 0;
@@ -185,6 +191,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
@@ -491,7 +498,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;
////////////////////////////////////////////////////////////////////////////////
@@ -508,24 +519,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
@@ -1404,7 +1422,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);
@@ -1422,14 +1442,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
@@ -1563,46 +1577,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
@@ -1641,23 +1647,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
@@ -1670,22 +1672,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
@@ -1737,34 +1771,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
@@ -2416,25 +2422,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;
@@ -2443,7 +2448,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;
////////////////////////////////////////////////////////////////////////////////
@@ -2943,7 +2952,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
@@ -3193,10 +3206,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
@@ -3263,10 +3277,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;
@@ -3283,7 +3299,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))
@@ -5074,7 +5090,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;
@@ -5091,17 +5118,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;
@@ -5116,20 +5132,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;
+ 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
@@ -5153,7 +5171,7 @@
if Target.X <> NoPointX then
begin
- CheckCollisionWithLand(Gear);
+ CheckCollision(Gear);
if (State and gstCollision) <> 0 then
begin
if Timer = iceWaitCollision then
@@ -5185,6 +5203,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;
@@ -5193,10 +5254,26 @@
if (Timer = iceCollideWithWater) and ((GameTicks - Power) > groundFreezingTime) then
begin
+ PlaySound(sndHogFreeze);
DrawIceBreak(Target.X, cWaterLine - iceHeight, iceRadius, iceHeight);
SetAllHHToActive;
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);
@@ -5209,7 +5286,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
@@ -5222,14 +5302,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/hwengine.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/hwengine.pas Wed May 29 22:52:37 2013 +0400
@@ -93,13 +93,7 @@
ScriptCall('onGameStart');
GameState:= gsGame;
end;
- gsConfirm, gsGame:
- begin
- if not cOnlyStats then DrawWorld(Lag);
- DoGameTick(Lag);
- if not cOnlyStats then ProcessVisualGears(Lag);
- end;
- gsChat:
+ gsConfirm, gsGame, gsChat:
begin
if not cOnlyStats then DrawWorld(Lag);
DoGameTick(Lag);
@@ -168,10 +162,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:
@@ -213,22 +207,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
--- a/hedgewars/uAI.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uAI.pas Wed May 29 22:52:37 2013 +0400
@@ -126,10 +126,10 @@
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);
@@ -366,7 +366,6 @@
switchImmediatelyAvailable: boolean;
Actions: TActions;
begin
-AddFileLog('Think thread started');
dmgMod:= 0.01 * hwFloat2Float(cDamageModifier) * cDamagePercent;
StartTicks:= GameTicks;
currHedgehogIndex:= CurrentTeam^.CurrHedgehog;
@@ -378,7 +377,7 @@
switchCount:= HHHasAmmo(PGear(Me)^.Hedgehog^, amSwitch)
else switchCount:= 0;
-if (Me^.State and gstAttacked) = 0 then
+if ((Me^.State and gstAttacked) = 0) or isInMultiShoot then
if Targets.Count > 0 then
begin
// iterate over current team hedgehogs
@@ -427,7 +426,8 @@
else
begin
BackMe:= Me^;
- while (not StopThinking) and (BestActions.Count = 0) do
+ i:= 12;
+ while (not StopThinking) and (BestActions.Count = 0) and (i > 0) do
begin
(*
// Maybe this would get a bit of movement out of them? Hopefully not *toward* water. Need to check how often he'd choose that strategy
@@ -440,6 +440,7 @@
Actions.Pos:= 0;
Actions.Score:= 0;
Walk(@WalkMe, Actions);
+ dec(i);
if not StopThinking then
SDL_Delay(100)
end
@@ -478,14 +479,16 @@
exit
end;
-FillBonuses((Me^.State and gstAttacked) <> 0);
+FillBonuses(((Me^.State and gstAttacked) <> 0) and (not isInMultiShoot));
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;
@@ -507,17 +510,21 @@
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)
--- a/hedgewars/uAIAmmoTests.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uAIAmmoTests.pas Wed May 29 22:52:37 2013 +0400
@@ -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
@@ -171,8 +171,8 @@
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));
@@ -189,7 +189,7 @@
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
@@ -229,7 +229,7 @@
until (((Me = CurrentHedgehog^.Gear) and TestColl(trunc(x), trunc(y), 5)) or
((Me <> CurrentHedgehog^.Gear) and TestCollExcludingMe(Me^.Hedgehog^.Gear, trunc(x), trunc(y), 5))) or (y > cWaterLine);
- if TestCollExcludingObjects(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,7 +239,7 @@
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)
@@ -250,7 +250,7 @@
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.X - trunc(x)) + Abs(Targ.Y - trunc(y)) > 21) then exit(BadTurn);
+ 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);
@@ -269,7 +269,7 @@
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;
@@ -287,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
@@ -308,10 +308,10 @@
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
@@ -327,7 +327,7 @@
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;
@@ -341,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
@@ -378,7 +378,7 @@
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;
@@ -393,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
@@ -434,7 +434,7 @@
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;
@@ -450,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
@@ -476,7 +476,7 @@
else
Score:= BadTurn;
- if valueResult < Score then
+ if Score > 0 then
begin
ap.Angle:= DxDy2AttackAnglef(Vx, Vy) + AIrndSign(random(Level * 2));
ap.Power:= trunc(sqrt(r) * cMaxPower) + AIrndSign(random(Level) * 15);
@@ -491,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;
@@ -506,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
@@ -567,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;
@@ -583,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;
@@ -608,8 +608,8 @@
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
@@ -618,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;
@@ -629,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;
@@ -643,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;
@@ -662,14 +662,14 @@
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)
@@ -678,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;
@@ -708,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;
@@ -758,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;
@@ -802,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
@@ -830,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
@@ -848,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);
@@ -861,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);
@@ -888,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
@@ -907,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);
@@ -943,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;
@@ -965,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;
@@ -975,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;
@@ -986,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);
@@ -998,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
@@ -1016,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;
@@ -1027,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
@@ -1044,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;
@@ -1058,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;
@@ -1095,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
@@ -1104,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;
@@ -1114,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;
@@ -1127,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
@@ -1178,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 Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uAIMisc.pas Wed May 29 22:52:37 2013 +0400
@@ -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
@@ -55,6 +59,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;
@@ -63,11 +68,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 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;
@@ -99,43 +104,72 @@
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
- begin
- with Targets.ar[Targets.Count], Hedgehogs[i] do
- begin
- skip:= false;
- matters:= (Hedgehogs[i].Gear^.AIHints and aihDoesntMatter) = 0;
+ 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 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)
+ 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
+ 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))
@@ -286,7 +320,7 @@
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) or
(Land[y+r, x+r] > lfAllObjMask) then
exit(true);
@@ -300,7 +334,7 @@
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) or
(Land[y+r, x+r] and lfNotCurrentMask <> 0) then
exit(true);
@@ -326,43 +360,64 @@
-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 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
- 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;
@@ -373,32 +428,55 @@
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: 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;
@@ -410,10 +488,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;
@@ -421,51 +501,88 @@
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: 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;
@@ -473,42 +590,78 @@
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: real;
+var i, dmg, fallDmg, baseDmg, rate, subrate, erasure: LongInt;
+ pX, pY, dX, dY: real;
hadSkips: boolean;
begin
rate:= 0;
@@ -521,6 +674,9 @@
Point.y:= hwRound(Me^.Y);
skip:= false;
matters:= true;
+ Kind:= gtHedgehog;
+ Density:= 1;
+ Radius:= cHHRadius;
Score:= - ThinkingHH^.Health
end;
// rate shot
@@ -532,48 +688,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;
@@ -586,9 +774,8 @@
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)));
--- a/hedgewars/uCollisions.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uCollisions.pas Wed May 29 22:52:37 2013 +0400
@@ -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/uConsts.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uConsts.pas Wed May 29 22:52:37 2013 +0400
@@ -212,6 +212,8 @@
gstLoser = $00080000;
gstHHGone = $00100000;
gstInvisible = $00200000;
+ gstSubmersible = $00400000;
+ gstFrozen = $00800000;
// gear messages
gmLeft = $00000001;
--- a/hedgewars/uGearsHedgehog.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uGearsHedgehog.pas Wed May 29 22:52:37 2013 +0400
@@ -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,
@@ -514,7 +526,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;
@@ -547,6 +561,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;
@@ -798,7 +813,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
@@ -961,8 +976,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
@@ -982,7 +1000,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
@@ -1059,7 +1080,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 Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uGearsList.pas Wed May 29 22:52:37 2013 +0400
@@ -469,7 +469,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 Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uGearsRender.pas Wed May 29 22:52:37 2013 +0400
@@ -979,6 +979,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)
@@ -1038,11 +1040,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)
@@ -1056,26 +1060,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
@@ -1096,7 +1112,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);
@@ -1285,6 +1301,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 Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uGearsUtils.pas Wed May 29 22:52:37 2013 +0400
@@ -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,7 +340,7 @@
Gear^.DirAngle := Gear^.DirAngle - 360
end;
-function CheckGearDrowning(Gear: PGear): boolean;
+function CheckGearDrowning(var Gear: PGear): boolean;
var
skipSpeed, skipAngle, skipDecay: hwFloat;
i, maxDrops, X, Y: LongInt;
@@ -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;
@@ -402,9 +409,12 @@
Gear^.doStep := @doStepDrowningGear;
if Gear^.Kind = gtFlake then
exit // skip splashes
- end;
+ 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/uLandGenMaze.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uLandGenMaze.pas Wed May 29 22:52:37 2013 +0400
@@ -1,3 +1,5 @@
+{$INCLUDE "options.inc"}
+
unit uLandGenMaze;
interface
--- a/hedgewars/uLandTemplates.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uLandTemplates.pas Wed May 29 22:52:37 2013 +0400
@@ -1815,7 +1815,7 @@
FillPointsCount: Succ(High(Template0FPoints));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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));
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/uPhysFSLayer.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uPhysFSLayer.pas Wed May 29 22:52:37 2013 +0400
@@ -46,6 +46,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;
implementation
uses uUtils, uVariables, sysutils;
--- a/hedgewars/uScript.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uScript.pas Wed May 29 22:52:37 2013 +0400
@@ -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/uSound.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uSound.pas Wed May 29 22:52:37 2013 +0400
@@ -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/uTeams.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uTeams.pas Wed May 29 22:52:37 2013 +0400
@@ -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/uTypes.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uTypes.pas Wed May 29 22:52:37 2013 +0400
@@ -140,7 +140,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/uVariables.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uVariables.pas Wed May 29 22:52:37 2013 +0400
@@ -1765,7 +1765,6 @@
Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_ForwMsgs or
ammoprop_AttackInMove or
- ammoprop_NoCrosshair or
ammoprop_DontHold or
ammoprop_Utility or
ammoprop_NeedUpDown or
@@ -2100,7 +2099,7 @@
TimeAfterTurn: 3000;
minAngle: 0;
maxAngle: 0;
- isDamaging: true;
+ isDamaging: false;
SkipTurns: 0;
PosCount: 1;
PosSprite: sprWater;
@@ -2177,7 +2176,7 @@
AmmoType: amLandGun;
AttackVoice: sndNone;
Bounciness: 1000);
- Slot: 2;
+ Slot: 6;
TimeAfterTurn: 0;
minAngle: 0;
maxAngle: 0;
@@ -2202,11 +2201,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/uWorld.pas Sun Apr 21 01:36:08 2013 +0200
+++ b/hedgewars/uWorld.pas Wed May 29 22:52:37 2013 +0400
@@ -1320,7 +1320,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
@@ -1357,7 +1357,7 @@
// draw health bar
r.w:= TeamHealthBarWidth + 1;
r.h:= HealthTex^.h - 4;
- DrawTextureFromRect(16, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, HealthTex);
+ DrawTextureFromRect(15, cScreenHeight + DrawHealthY + smallScreenOffset + 2, @r, HealthTex);
if not hasGone and (TeamHealth > 1) then
begin
Tint(Clan^.Color shl 8 or $FF);
--- a/misc/libphyslayer/hwpacksmounter.c Sun Apr 21 01:36:08 2013 +0200
+++ b/misc/libphyslayer/hwpacksmounter.c Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/misc/libphyslayer/hwpacksmounter.h Wed May 29 22:52:37 2013 +0400
@@ -8,7 +8,7 @@
#endif
PHYSFS_DECL void hedgewarsMountPackages();
-
+PHYSFS_DECL void hedgewarsMountPackage(char * fileName);
#ifdef __cplusplus
}
Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png has changed
Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos_bw.png has changed
--- a/share/hedgewars/Data/Locale/hedgewars_ar.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ar.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1958,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>
@@ -3059,119 +3098,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_bg.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_bg.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1973,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>
@@ -3075,119 +3114,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_cs.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_cs.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1987,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>
@@ -3090,119 +3129,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_da.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_da.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1981,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>
@@ -3083,119 +3122,4 @@
<translation>DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_de.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_de.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1986,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>
@@ -3116,119 +3155,4 @@
<translation>Steuerkreuz</translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_el.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_el.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1975,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>
@@ -3077,119 +3116,4 @@
<translation type="unfinished">DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_en.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_en.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1957,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>
@@ -3059,119 +3098,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_es.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_es.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1977,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>
@@ -3079,119 +3118,4 @@
<translation>DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_fi.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_fi.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1973,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>
@@ -3075,119 +3114,4 @@
<translation>Hiiri: Vasen nappi</translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_fr.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_fr.ts Wed May 29 22:52:37 2013 +0400
@@ -100,7 +100,7 @@
</message>
<message>
<source>Please give us feedback!</source>
- <translation>Nous avons besoin de votre avis!</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>
@@ -108,11 +108,23 @@
</message>
<message>
<source>If you found a bug, you can see if it's already known here (english): </source>
- <translation>Si vous trouvez un bug, vous pouvez vérifier si il est déjà connu ici (anglais): </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>Votre adresse email est optionelle, mais il est possible que nous essayons de vous contacter.</translation>
+ <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>
<context>
@@ -227,11 +239,11 @@
</message>
<message>
<source>%1 has been removed from your friends list</source>
- <translation>%1 a été retiré de votre liste d'amis</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>%1 a été ajouté à votre liste d'amis</translation>
+ <translation>%1 a été ajouté à votre liste d'amis</translation>
</message>
<message>
<source>Stylesheet imported from %1</source>
@@ -239,7 +251,7 @@
</message>
<message>
<source>Enter %1 if you want to use the current StyleSheet in future, enter %2 to reset!</source>
- <translation>Entrez %1 si vous voulez utiliser cette Feuille de style (Stylesheet) à l'avenir, entrez %2 pour rétablir l'ancienne apparence!</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>
@@ -255,14 +267,26 @@
</message>
<message>
<source>Failed to save StyleSheet to %1</source>
- <translation>Impossible d'enregistrer la feuille de style (Stylesheet) dans %1</translation>
+ <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>
<context>
<name>HWForm</name>
<message>
<source>Cannot save record to file %1</source>
- <translation>Impossible de sauvegarder l'enregistrement dans le fichier %1</translation>
+ <translation>Impossible de sauvegarder l'enregistrement dans le fichier %1</translation>
</message>
<message>
<source>DefaultTeam</source>
@@ -301,7 +325,7 @@
<message>
<source>Someone already uses your nickname %1 on the server.
Please pick another nickname:</source>
- <translation>Quelqu'un utilise déjà le pseudo %1 sur le serveur
+ <translation>Quelqu'un utilise déjà le pseudo %1 sur le serveur
Veuillez choisir un autre pseudo:</translation>
</message>
<message>
@@ -318,9 +342,9 @@
If this nick isn't yours, please register your own nick at www.hedgewars.org
Password:</source>
- <translation>Ce pseudo est enregistré, vous n'avez spécifié aucun mot de passe.
+ <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
+Si ce pseudo n'est pas le votre, veuillez enregistrer votre propre pseudo sur www.hedgewars.org
Mot de passe:</translation>
</message>
@@ -328,9 +352,9 @@
<source>Your nickname is not registered.
To prevent someone else from using it,
please register it at www.hedgewars.org</source>
- <translation>Votre pseudo n'est pas enregistré.
-Pour éviter que d'autre joueurs l'utilisent,
-veuillez l'enregistrer sur www.hedgewars.org</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>
@@ -338,7 +362,7 @@
Your password wasn't saved either.</source>
<translation>
-Votre mot de passe non plus n'a pas été sauvegardé.</translation>
+Votre mot de passe non plus n'a pas été sauvegardé.</translation>
</message>
<message>
<source>Hedgewars - Empty nickname</source>
@@ -358,7 +382,7 @@
</message>
<message>
<source>Hedgewars - Connection error</source>
- <translation >Hedgewars - Erreur de connexion</translation>
+ <translation>Hedgewars - Erreur de connexion</translation>
</message>
<message>
<source>You reconnected too fast.
@@ -366,6 +390,10 @@
<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>
<context>
<name>HWGame</name>
@@ -450,11 +478,11 @@
</message>
<message>
<source>Load map drawing</source>
- <translation>Charger un carte dessinée</translation>
+ <translation>Charger un dessin</translation>
</message>
<message>
<source>Edit map drawing</source>
- <translation>Editer un carte dessinée</translation>
+ <translation>Editer un dessin</translation>
</message>
<message>
<source>Small islands</source>
@@ -486,7 +514,7 @@
</message>
<message>
<source>Theme: </source>
- <translation>Theme</translation>
+ <translation type="obsolete">Theme: </translation>
</message>
<message>
<source>Load drawn map</source>
@@ -504,6 +532,10 @@
<source>Large tunnels</source>
<translation>Grands tunnels</translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -548,7 +580,7 @@
</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>
@@ -560,7 +592,7 @@
</message>
<message>
<source>User quit</source>
- <translation>S'est déconnecté</translation>
+ <translation>S'est déconnecté</translation>
</message>
<message>
<source>Remote host has closed connection</source>
@@ -568,7 +600,7 @@
</message>
<message>
<source>The server is too old. Disconnecting now.</source>
- <translation>La version du serveur n'est pas à jour. Déconnexion.</translation>
+ <translation>La version du serveur n'est pas à jour. Déconnexion.</translation>
</message>
</context>
<context>
@@ -583,7 +615,7 @@
If you don't have an account on www.hedgewars.org,
just enter your nickname.</source>
<translation>Pour vous connecter sur le serveur, veuillez entrer vos identifiants.
-Si vous n'avez pas de compte sur www.hedgewars.org,
+Si vous n'avez pas de compte sur www.hedgewars.org,
entrez juste votre pseudo.</translation>
</message>
<message>
@@ -655,7 +687,7 @@
</message>
<message>
<source>%1 fps, </source>
- <translation>%1 fps</translation>
+ <translation>%1 fps, </translation>
</message>
<message>
<source>Audio: </source>
@@ -744,6 +776,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>
@@ -790,7 +833,7 @@
</message>
<message>
<source>Select an action to choose a custom key bind for this team</source>
- <translation>Choisissez une action afin d'y attribuer une touche pour cette équipe</translation>
+ <translation>Choisissez une action afin d'y attribuer une touche pour cette équipe</translation>
</message>
<message>
<source>Use my default</source>
@@ -885,6 +928,14 @@
<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>
@@ -897,7 +948,7 @@
<name>PageInfo</name>
<message>
<source>Open the snapshot folder</source>
- <translation>Ouvrir le dossier de captures d'écran</translation>
+ <translation>Ouvrir le dossier de captures d'écran</translation>
</message>
</context>
<context>
@@ -1088,7 +1139,7 @@
</message>
<message>
<source>Select an action to change what key controls it</source>
- <translation>Choisissez une action afin d'y attribuer une touche</translation>
+ <translation>Choisissez une action afin d'y attribuer une touche</translation>
</message>
<message>
<source>Reset to default</source>
@@ -1148,7 +1199,7 @@
</message>
<message>
<source>Frontend audio</source>
- <translation>Son de l'interface</translation>
+ <translation>Son de l'interface</translation>
</message>
<message>
<source>Account</source>
@@ -1172,7 +1223,7 @@
</message>
<message>
<source>Video recording options</source>
- <translation>Option d'enregistrement vidéo</translation>
+ <translation>Option d'enregistrement vidéo</translation>
</message>
</context>
<context>
@@ -1194,7 +1245,7 @@
</message>
<message>
<source>Join</source>
- <translation>Rejoindre</translation>
+ <translation type="obsolete">Rejoindre</translation>
</message>
<message>
<source>Admin features</source>
@@ -1249,7 +1300,7 @@
</message>
<message>
<source>Open server administration page</source>
- <translation>Ouvre la page d'administration du serveur</translation>
+ <translation>Ouvre la page d'administration du serveur</translation>
</message>
</context>
<context>
@@ -1398,11 +1449,11 @@
<name>PageSinglePlayer</name>
<message>
<source>Play a quick game against the computer with random settings</source>
- <translation>Jouer une partie rapide contre l'ordinateur avec des règles aléatoires</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>Jouer une partie sur cet ordinateur contre vos amis ou l'IA</translation>
+ <translation>Jouer une partie sur cet ordinateur contre vos amis ou l'IA</translation>
</message>
<message>
<source>Campaign Mode</source>
@@ -1528,7 +1579,7 @@
</message>
<message>
<source>Restrict Unregistered Players Join</source>
- <translation>Bloquer l'acces au joueurs non-enregistrés</translation>
+ <translation>Bloquer l'acces au joueurs non-enregistrés</translation>
</message>
<message>
<source>Show games in lobby</source>
@@ -1607,11 +1658,11 @@
</message>
<message>
<source>Frontend sound effects</source>
- <translation>Effet sonores de l'interface</translation>
+ <translation>Effet sonores de l'interface</translation>
</message>
<message>
<source>Frontend music</source>
- <translation>Musique de l'interface</translation>
+ <translation>Musique de l'interface</translation>
</message>
</context>
<context>
@@ -1638,11 +1689,11 @@
</message>
<message>
<source>In lobby</source>
- <translation>En attente</translation>
+ <translation type="obsolete">En attente</translation>
</message>
<message>
<source>In progress</source>
- <translation>En cours</translation>
+ <translation type="obsolete">En cours</translation>
</message>
<message>
<source>Disabled</source>
@@ -1848,7 +1899,7 @@
</message>
<message>
<source>Tip: </source>
- <translation>Conseil : </translation>
+ <translation>Conseil: </translation>
</message>
<message>
<source>Quality</source>
@@ -1952,7 +2003,7 @@
</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>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>
+ <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>
@@ -1990,6 +2041,10 @@
<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>
<context>
<name>QLineEdit</name>
@@ -2034,7 +2089,7 @@
<message>
<source>Error while authenticating at google.com:
</source>
- <translation>Erreur lors de l'authentification à google.com:
+ <translation>Erreur lors de l'authentification à google.com:
</translation>
</message>
<message>
@@ -2044,7 +2099,7 @@
<message>
<source>Error while sending metadata to youtube.com:
</source>
- <translation>Erreur lors de l'envoi des metadata à youtube.com:
+ <translation>Erreur lors de l'envoi des metadata à youtube.com:
</translation>
</message>
<message>
@@ -2053,11 +2108,11 @@
</message>
<message>
<source>Do you really want to delete the team '%1'?</source>
- <translation>Voulez-vous vraiment supprimer l'équipe "%1"</translation>
+ <translation>Voulez-vous vraiment supprimer l'équipe "%1"</translation>
</message>
<message>
<source>Cannot delete default scheme '%1'!</source>
- <translation>Impossible de retirer la règle par défaut "%1"</translation>
+ <translation>Impossible de retirer la règle par défaut "%1"</translation>
</message>
<message>
<source>Please select a record from the list</source>
@@ -2077,7 +2132,7 @@
</message>
<message>
<source>All file associations have been set</source>
- <translation>Les associations d'extensions de fichiers ont été effectuées</translation>
+ <translation>Les associations d'extensions de fichiers ont été effectuées</translation>
</message>
<message>
<source>Cannot create directory %1</source>
@@ -2101,11 +2156,11 @@
</message>
<message>
<source>Please enter room name</source>
- <translation>Veuillez saisir le nom d'une room</translation>
+ <translation>Veuillez saisir le nom d'une room</translation>
</message>
<message>
<source>Record Play - Error</source>
- <translation>Jouer l'enregistrement - Erreur</translation>
+ <translation>Jouer l'enregistrement - Erreur</translation>
</message>
<message>
<source>Please select record from the list</source>
@@ -2113,11 +2168,11 @@
</message>
<message>
<source>Cannot rename to </source>
- <translation>Impossible de renommer en</translation>
+ <translation>Impossible de renommer en </translation>
</message>
<message>
<source>Cannot delete file </source>
- <translation>Impossible de supprimer le fichier</translation>
+ <translation>Impossible de supprimer le fichier </translation>
</message>
<message>
<source>Room Name - Error</source>
@@ -2147,7 +2202,7 @@
</message>
<message>
<source>Do you really want to delete the game scheme '%1'?</source>
- <translation>Etes-vous sûr de vouloir supprimer cette règle : "%1" ?</translation>
+ <translation>Etes-vous sûr de vouloir supprimer cette règle : "%1" ?</translation>
</message>
<message>
<source>Videos - Are you sure?</source>
@@ -2155,7 +2210,7 @@
</message>
<message>
<source>Do you really want to delete the video '%1'?</source>
- <translation>Etes-vous sûr de vouloir supprimer cette vidéo : "%1" ?</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>
@@ -2166,7 +2221,7 @@
</message>
<message>
<source>Do you really want to cancel uploading %1?</source>
- <translation>Voulez-vous arreter l'importation de %1?</translation>
+ <translation>Voulez-vous arreter l'importation de %1?</translation>
</message>
<message>
<source>File error</source>
@@ -2174,7 +2229,7 @@
</message>
<message>
<source>Cannot open '%1' for writing</source>
- <translation>Impossible d'écrire le fichier %1</translation>
+ <translation>Impossible d'écrire le fichier %1</translation>
</message>
<message>
<source>Cannot open '%1' for reading</source>
@@ -2182,7 +2237,7 @@
</message>
<message>
<source>Cannot use the ammo '%1'!</source>
- <translation>Impossible d'utiliser cette arme : "%1"</translation>
+ <translation>Impossible d'utiliser cette arme : "%1"</translation>
</message>
<message>
<source>Weapons - Warning</source>
@@ -2190,11 +2245,11 @@
</message>
<message>
<source>Cannot overwrite default weapon set '%1'!</source>
- <translation>Impossible de remplacer le set d'arme "%1"</translation>
+ <translation>Impossible de remplacer le set d'arme "%1"</translation>
</message>
<message>
<source>Cannot delete default weapon set '%1'!</source>
- <translation>Impossible de supprimer le set d'arme par défaut "%1"</translation>
+ <translation>Impossible de supprimer le set d'arme par défaut "%1"</translation>
</message>
<message>
<source>Weapons - Are you sure?</source>
@@ -2202,7 +2257,7 @@
</message>
<message>
<source>Do you really want to delete the weapon set '%1'?</source>
- <translation>Etes-vous sûr de vouloir supprimer le set d'arme "%1"?</translation>
+ <translation>Etes-vous sûr de vouloir supprimer le set d'arme "%1"?</translation>
</message>
<message>
<source>Hedgewars - Nick not registered</source>
@@ -2303,7 +2358,7 @@
</message>
<message>
<source>More info</source>
- <translation>Plus d'info</translation>
+ <translation>Plus d'info</translation>
</message>
<message>
<source>Set default options</source>
@@ -2323,7 +2378,7 @@
</message>
<message>
<source>Cancel uploading</source>
- <translation>Annuler l'importation</translation>
+ <translation>Annuler l'importation</translation>
</message>
<message>
<source>Restore default coding parameters</source>
@@ -3099,116 +3154,112 @@
<context>
<name>server</name>
<message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Authentication failed</source>
- <translation>Echec d'authentification</translation>
+ <translation type="obsolete">Echec d'authentification</translation>
</message>
<message>
<source>60 seconds cooldown after kick</source>
- <translation>Bannis pour 60 sec après un kick</translation>
+ <translation type="obsolete">Bannis pour 60 sec après un kick</translation>
</message>
<message>
<source>kicked</source>
- <translation>Exclus (kick)</translation>
+ <translation type="obsolete">Exclus (kick)</translation>
</message>
<message>
<source>Ping timeout</source>
- <translation>Met trop de temps à répondre</translation>
+ <translation type="obsolete">Met trop de temps à répondre</translation>
</message>
<message>
<source>bye</source>
- <translation>Aurevoir</translation>
+ <translation type="obsolete">Aurevoir</translation>
</message>
<message>
<source>Empty config entry</source>
- <translation>Configuration vide</translation>
+ <translation type="obsolete">Configuration vide</translation>
</message>
<message>
<source>Not room master</source>
- <translation>Vous n'êtes pas le propriétaire de la room</translation>
+ <translation type="obsolete">Vous n'êtes pas le propriétaire de la room</translation>
</message>
<message>
<source>Corrupted hedgehogs info</source>
- <translation>Info hérisson corrompus</translation>
+ <translation type="obsolete">Info hérisson corrompus</translation>
</message>
<message>
<source>too many teams</source>
- <translation>trop d'équipes</translation>
+ <translation type="obsolete">trop d'équipes</translation>
</message>
<message>
<source>too many hedgehogs</source>
- <translation>trop de hérissons</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>Il y a déja une équipe avec le même nom dans la liste</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>La partie est en cour</translation>
+ <translation type="obsolete">La partie est en cour</translation>
</message>
<message>
<source>restricted</source>
- <translation>Ajout interdis</translation>
+ <translation type="obsolete">Ajout interdis</translation>
</message>
<message>
<source>REMOVE_TEAM: no such team</source>
- <translation>REMOVE_TEAM: aucune équipe de ce nom</translation>
+ <translation type="obsolete">REMOVE_TEAM: aucune équipe de ce nom</translation>
</message>
<message>
<source>Not team owner!</source>
- <translation>Vous n'êtes pas le propriétaire de cette équipe!</translation>
+ <translation type="obsolete">Vous n'êtes pas le propriétaire de cette équipe!</translation>
</message>
<message>
<source>Less than two clans!</source>
- <translation>Il faut 2 clans minimum!</translation>
+ <translation type="obsolete">Il faut 2 clans minimum!</translation>
</message>
<message>
<source>Room with such name already exists</source>
- <translation>Ce nom de room existe déjà</translation>
+ <translation type="obsolete">Ce nom de room existe déjà</translation>
</message>
<message>
<source>Illegal room name</source>
- <translation>Nom de room invalide</translation>
+ <translation type="obsolete">Nom de room invalide</translation>
</message>
<message>
<source>No such room</source>
- <translation>Cette room n'existe pas</translation>
+ <translation type="obsolete">Cette room n'existe pas</translation>
</message>
<message>
<source>Joining restricted</source>
- <translation>Accès interdis</translation>
+ <translation type="obsolete">Accès interdis</translation>
</message>
<message>
<source>Registered users only</source>
- <translation>Accès réservé aux utilisateurs enregistré</translation>
+ <translation type="obsolete">Accès réservé aux utilisateurs enregistré</translation>
</message>
<message>
<source>You are banned in this room</source>
- <translation>Vous avez été bannis de cette room</translation>
+ <translation type="obsolete">Vous avez été bannis de cette room</translation>
</message>
<message>
<source>Nickname already chosen</source>
- <translation>Pseudo déjà choisis</translation>
+ <translation type="obsolete">Pseudo déjà choisis</translation>
</message>
<message>
<source>Illegal nickname</source>
- <translation>Pseudo invalide</translation>
+ <translation type="obsolete">Pseudo invalide</translation>
</message>
<message>
<source>Protocol already known</source>
- <translation>Protocole déjà connu</translation>
+ <translation type="obsolete">Protocole déjà connu</translation>
</message>
<message>
<source>Bad number</source>
- <translation>Mauvais numéro</translation>
+ <translation type="obsolete">Mauvais numéro</translation>
</message>
<message>
<source>Nickname is already in use</source>
- <translation>Ce pseudo est actuellement utilisé sur le serveur</translation>
+ <translation type="obsolete">Ce pseudo est actuellement utilisé sur le serveur</translation>
</message>
</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_gl.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_gl.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1961,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>
@@ -3062,119 +3101,4 @@
<translation>Mando</translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_hu.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_hu.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1947,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>
@@ -3047,119 +3086,4 @@
<translation>DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_it.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_it.ts Wed May 29 22:52:37 2013 +0400
@@ -100,7 +100,7 @@
</message>
<message>
<source>Please give us feedback!</source>
- <translation>Per favore, inviaci un commento!</translation>
+ <translation type="obsolete">Per favore, inviaci un commento!</translation>
</message>
<message>
<source>We are always happy about suggestions, ideas, or bug reports.</source>
@@ -108,11 +108,23 @@
</message>
<message>
<source>If you found a bug, you can see if it's already known here (english): </source>
- <translation>Se torvi u nbaco, puoi vedere se è già conosciuto qui (in inglese): </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>Il tuo indirizzo di posta elettronica è opzionale, ma potremmo volerti contattare.</translation>
+ <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>
<context>
@@ -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>
@@ -749,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>
@@ -890,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>
@@ -2001,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>
@@ -3139,115 +3194,111 @@
<name>server</name>
<message>
<source>Not room master</source>
- <translation type="unfinished">Non proprietario della stanza</translation>
+ <translation type="obsolete">Non proprietario della stanza</translation>
</message>
<message>
<source>Corrupted hedgehogs info</source>
- <translation type="unfinished">Informazioni ricci corrotte</translation>
+ <translation type="obsolete">Informazioni ricci corrotte</translation>
</message>
<message>
<source>too many teams</source>
- <translation type="unfinished">troppe squadre</translation>
+ <translation type="obsolete">troppe squadre</translation>
</message>
<message>
<source>too many hedgehogs</source>
- <translation type="unfinished">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 type="unfinished">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 type="unfinished">turno in corso</translation>
+ <translation type="obsolete">turno in corso</translation>
</message>
<message>
<source>restricted</source>
- <translation type="unfinished">proibito</translation>
+ <translation type="obsolete">proibito</translation>
</message>
<message>
<source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished">CANCELLA_SQUADRA: squadra non presente</translation>
+ <translation type="obsolete">CANCELLA_SQUADRA: squadra non presente</translation>
</message>
<message>
<source>Not team owner!</source>
- <translation type="unfinished">Non proprietario della squadra!</translation>
+ <translation type="obsolete">Non proprietario della squadra!</translation>
</message>
<message>
<source>Less than two clans!</source>
- <translation type="unfinished">Meno di due clan!</translation>
+ <translation type="obsolete">Meno di due clan!</translation>
</message>
<message>
<source>Room with such name already exists</source>
- <translation type="unfinished">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 type="unfinished">Nome già scelto</translation>
+ <translation type="obsolete">Nome già scelto</translation>
</message>
<message>
<source>Illegal nickname</source>
- <translation type="unfinished">Nome non valido</translation>
+ <translation type="obsolete">Nome non valido</translation>
</message>
<message>
<source>Protocol already known</source>
- <translation type="unfinished">Protocollo già conosciuto</translation>
+ <translation type="obsolete">Protocollo già conosciuto</translation>
</message>
<message>
<source>Bad number</source>
- <translation type="unfinished">Numero non valido</translation>
+ <translation type="obsolete">Numero non valido</translation>
</message>
<message>
<source>Nickname is already in use</source>
- <translation type="unfinished">Nome già in uso</translation>
+ <translation type="obsolete">Nome già in uso</translation>
</message>
<message>
<source>Authentication failed</source>
- <translation type="unfinished">Autenticazione fallita</translation>
+ <translation type="obsolete">Autenticazione fallita</translation>
</message>
<message>
<source>60 seconds cooldown after kick</source>
- <translation type="unfinished">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 type="unfinished">espulso</translation>
+ <translation type="obsolete">espulso</translation>
</message>
<message>
<source>Ping timeout</source>
- <translation type="unfinished">Scadenza ping</translation>
+ <translation type="obsolete">Scadenza ping</translation>
</message>
<message>
<source>bye</source>
- <translation type="unfinished">ciao</translation>
+ <translation type="obsolete">ciao</translation>
</message>
<message>
<source>Illegal room name</source>
- <translation type="unfinished">Nome stanza non valido</translation>
+ <translation type="obsolete">Nome stanza non valido</translation>
</message>
<message>
<source>No such room</source>
- <translation type="unfinished">Stanza non esistente</translation>
+ <translation type="obsolete">Stanza non esistente</translation>
</message>
<message>
<source>Joining restricted</source>
- <translation type="unfinished">Ingresso riservato</translation>
+ <translation type="obsolete">Ingresso riservato</translation>
</message>
<message>
<source>Registered users only</source>
- <translation type="unfinished">Solo utenti registrati</translation>
+ <translation type="obsolete">Solo utenti registrati</translation>
</message>
<message>
<source>You are banned in this room</source>
- <translation type="unfinished">Sei stato espulso dalla stanza</translation>
+ <translation type="obsolete">Sei stato espulso dalla stanza</translation>
</message>
<message>
<source>Empty config entry</source>
- <translation type="unfinished">Configurazione vuota</translation>
- </message>
- <message>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
+ <translation type="obsolete">Configurazione vuota</translation>
</message>
</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_ja.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ja.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1943,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>
@@ -3043,119 +3082,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_ko.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ko.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1919,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>
@@ -3011,119 +3046,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_lt.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_lt.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1338,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>
@@ -1449,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>
@@ -1808,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>
@@ -1844,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>
@@ -1857,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>
@@ -1940,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>
@@ -1968,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>
@@ -2087,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>
@@ -2185,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>
@@ -2220,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>
@@ -2352,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>
@@ -2405,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>
@@ -2416,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>
@@ -2447,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>
@@ -2600,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>
@@ -2664,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>
@@ -2675,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>
@@ -2791,7 +2832,7 @@
<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>
@@ -2824,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>
@@ -3027,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>
@@ -3426,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>
@@ -3786,147 +3827,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="2"/>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="3"/>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="4"/>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="5"/>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="6"/>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="7"/>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="8"/>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="9"/>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="10"/>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="11"/>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="12"/>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="13"/>
- <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="14"/>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="15"/>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="16"/>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="17"/>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="18"/>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="19"/>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="20"/>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="21"/>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="22"/>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="23"/>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="24"/>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="25"/>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="26"/>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="27"/>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="28"/>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="29"/>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_ms.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ms.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1314,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>
@@ -1425,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>
@@ -1795,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>
@@ -1830,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>
@@ -1845,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>
@@ -1940,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>
@@ -2069,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>
@@ -2149,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>
@@ -2199,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>
@@ -2234,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>
@@ -2329,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>
@@ -2377,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>
@@ -2388,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>
@@ -2419,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>
@@ -2562,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>
@@ -2624,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>
@@ -2635,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>
@@ -2766,7 +2807,7 @@
<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>
@@ -2794,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>
@@ -2997,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>
@@ -3714,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>
@@ -3756,147 +3797,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="2"/>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="3"/>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="4"/>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="5"/>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="6"/>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="7"/>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="8"/>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="9"/>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="10"/>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="11"/>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="12"/>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="13"/>
- <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="14"/>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="15"/>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="16"/>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="17"/>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="18"/>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="19"/>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="20"/>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="21"/>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="22"/>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="23"/>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="24"/>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="25"/>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="26"/>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="27"/>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="28"/>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="29"/>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_nl.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_nl.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1933,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>
@@ -3026,119 +3061,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_pl.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_pl.ts Wed May 29 22:52:37 2013 +0400
@@ -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,30 +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 type="unfinished"></translation>
+ <translation>Pokaż szczegóły</translation>
</message>
<message>
<source>Insert your address here</source>
- <translation type="unfinished"></translation>
+ <translation>Wprowadź adres</translation>
</message>
</context>
<context>
@@ -1093,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>
@@ -1235,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>
@@ -1378,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>
@@ -1479,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>
@@ -1535,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>
@@ -1594,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>
@@ -1963,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>
@@ -2025,7 +2087,7 @@
</message>
<message>
<source>-r%1 (%2)</source>
- <translation type="unfinished"></translation>
+ <translation>-r%1 (%2)</translation>
</message>
</context>
<context>
@@ -2242,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>
@@ -2342,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>
@@ -2362,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>
@@ -2467,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>
@@ -2513,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>
@@ -2718,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>
@@ -2808,7 +2872,7 @@
</message>
<message>
<source>Hedgehog movement</source>
- <translation type="unfinished"></translation>
+ <translation>Poruszanie się jeżem</translation>
</message>
</context>
<context>
@@ -3130,119 +3194,4 @@
<translation>DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1974,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>
@@ -3082,119 +3121,4 @@
<translation>DPad</translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Wed May 29 22:52:37 2013 +0400
@@ -99,19 +99,19 @@
<translation>Enviar Feedback</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>Não foi possível gravar o StyleSheet em %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>
@@ -370,6 +382,10 @@
<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 type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWGame</name>
@@ -494,7 +510,7 @@
</message>
<message>
<source>Theme: </source>
- <translation>Tema: </translation>
+ <translation type="obsolete">Tema: </translation>
</message>
<message>
<source>Load drawn map</source>
@@ -508,6 +524,10 @@
<source>All files</source>
<translation>Todos os ficheiros</translation>
</message>
+ <message>
+ <source>Theme: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HWNetServersModel</name>
@@ -552,7 +572,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>
@@ -747,6 +767,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>
@@ -888,6 +919,14 @@
<numerusform><b>%1</b> estava tão amedrontado que passou <b>%2</b> turnos.</numerusform>
</translation>
</message>
+ <message>
+ <source>Play again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation type="unfinished">Gravar</translation>
+ </message>
</context>
<context>
<name>PageInGame</name>
@@ -1955,6 +1994,10 @@
<source>This program is distributed under the %1</source>
<translation>Este programa é distribuído sob a %1</translation>
</message>
+ <message>
+ <source>This setting will be effective at next restart.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QLineEdit</name>
@@ -3094,115 +3137,115 @@
<name>server</name>
<message>
<source>Not room master</source>
- <translation type="unfinished">Não és o anfitrião da sala</translation>
+ <translation type="obsolete">Não és o anfitrião da sala</translation>
</message>
<message>
<source>Corrupted hedgehogs info</source>
- <translation type="unfinished">Informação dos ouriços corrompida</translation>
+ <translation type="obsolete">Informação dos ouriços corrompida</translation>
</message>
<message>
<source>too many teams</source>
- <translation type="unfinished">demasiadas equipas</translation>
+ <translation type="obsolete">demasiadas equipas</translation>
</message>
<message>
<source>too many hedgehogs</source>
- <translation type="unfinished">demasiados ouriços</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">Já existe uma equipa com o mesmo nome na lista</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">partida em progresso</translation>
+ <translation type="obsolete">partida em progresso</translation>
</message>
<message>
<source>restricted</source>
- <translation type="unfinished">limitada</translation>
+ <translation type="obsolete">limitada</translation>
</message>
<message>
<source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished">REMOVE_TEAM: equipa inexistente</translation>
+ <translation type="obsolete">REMOVE_TEAM: equipa inexistente</translation>
</message>
<message>
<source>Not team owner!</source>
- <translation type="unfinished">A equipa não te pertence!</translation>
+ <translation type="obsolete">A equipa não te pertence!</translation>
</message>
<message>
<source>Less than two clans!</source>
- <translation type="unfinished">Menos de 2 clãs!</translation>
+ <translation type="obsolete">Menos de 2 clãs!</translation>
</message>
<message>
<source>Room with such name already exists</source>
- <translation type="unfinished">Já existe uma sala com esse nome</translation>
+ <translation type="obsolete">Já existe uma sala com esse nome</translation>
</message>
<message>
<source>Nickname already chosen</source>
- <translation type="unfinished">Utilizador já em uso</translation>
+ <translation type="obsolete">Utilizador já em uso</translation>
</message>
<message>
<source>Illegal nickname</source>
- <translation type="unfinished">Nome de utilizador ilegal</translation>
+ <translation type="obsolete">Nome de utilizador ilegal</translation>
</message>
<message>
<source>Protocol already known</source>
- <translation type="unfinished">Protocolo já conhecido</translation>
+ <translation type="obsolete">Protocolo já conhecido</translation>
</message>
<message>
<source>Bad number</source>
- <translation type="unfinished">Número inválido</translation>
+ <translation type="obsolete">Número inválido</translation>
</message>
<message>
<source>Nickname is already in use</source>
- <translation type="unfinished">Nome de utilizador já em uso</translation>
+ <translation type="obsolete">Nome de utilizador já em uso</translation>
</message>
<message>
<source>No checker rights</source>
- <translation type="unfinished">Não possui permissões para verificar</translation>
+ <translation type="obsolete">Não possui permissões para verificar</translation>
</message>
<message>
<source>Authentication failed</source>
- <translation type="unfinished">A autenticação falhou</translation>
+ <translation type="obsolete">A autenticação falhou</translation>
</message>
<message>
<source>60 seconds cooldown after kick</source>
- <translation type="unfinished">É necessário aguardar 60 segundos após uma expulsão</translation>
+ <translation type="obsolete">É necessário aguardar 60 segundos após uma expulsão</translation>
</message>
<message>
<source>kicked</source>
- <translation type="unfinished">expulso</translation>
+ <translation type="obsolete">expulso</translation>
</message>
<message>
<source>Ping timeout</source>
- <translation type="unfinished">Ping timeout</translation>
+ <translation type="obsolete">Ping timeout</translation>
</message>
<message>
<source>bye</source>
- <translation type="unfinished">tchau (bye)</translation>
+ <translation type="obsolete">tchau (bye)</translation>
</message>
<message>
<source>Illegal room name</source>
- <translation type="unfinished">Nome da sala ilegal</translation>
+ <translation type="obsolete">Nome da sala ilegal</translation>
</message>
<message>
<source>No such room</source>
- <translation type="unfinished">Sala inexistente</translation>
+ <translation type="obsolete">Sala inexistente</translation>
</message>
<message>
<source>Joining restricted</source>
- <translation type="unfinished">Entrada restrita</translation>
+ <translation type="obsolete">Entrada restrita</translation>
</message>
<message>
<source>Registered users only</source>
- <translation type="unfinished">Apenas utilizadores registados</translation>
+ <translation type="obsolete">Apenas utilizadores registados</translation>
</message>
<message>
<source>You are banned in this room</source>
- <translation type="unfinished">Estás banido desta sala</translation>
+ <translation type="obsolete">Estás banido desta sala</translation>
</message>
<message>
<source>Empty config entry</source>
- <translation type="unfinished">Campo vazio na configuração</translation>
+ <translation type="obsolete">Campo vazio na configuração</translation>
</message>
</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_ro.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ro.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1971,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>
@@ -3074,119 +3113,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_ru.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ru.ts Wed May 29 22:52:37 2013 +0400
@@ -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,19 +1019,19 @@
</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>
@@ -1094,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>
@@ -1142,7 +1181,7 @@
</message>
<message>
<source>Custom colors</source>
- <translation type="unfinished">Свои цвета</translation>
+ <translation>Свои цвета</translation>
</message>
<message>
<source>Game audio</source>
@@ -1158,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>
@@ -1232,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>
@@ -1476,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>
@@ -1532,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>
@@ -1540,7 +1579,7 @@
</message>
<message>
<source>Show games in-progress</source>
- <translation type="unfinished"></translation>
+ <translation>Показать текущие игры</translation>
</message>
</context>
<context>
@@ -1591,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>
@@ -1603,7 +1642,7 @@
</message>
<message>
<source>Music</source>
- <translation type="unfinished"></translation>
+ <translation>Музыка</translation>
</message>
<message>
<source>In-game music</source>
@@ -1964,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>
@@ -1998,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>
@@ -2241,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>
@@ -2376,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>
@@ -2438,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>
@@ -2496,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>
@@ -2689,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>
@@ -2779,7 +2823,7 @@
</message>
<message>
<source>Hedgehog movement</source>
- <translation type="unfinished"></translation>
+ <translation>Движение ежа</translation>
</message>
</context>
<context>
@@ -3101,119 +3145,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_sk.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_sk.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1998,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>
@@ -3127,119 +3166,4 @@
<translation>Pravý joystick (Doľava)</translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_sv.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_sv.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1977,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>
@@ -3079,119 +3118,4 @@
<translation>Styrkors</translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Wed May 29 22:52:37 2013 +0400
@@ -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</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>
@@ -1939,6 +1970,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>
@@ -3039,119 +3074,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_uk.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_uk.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1991,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>
@@ -3094,119 +3133,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1318,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>
@@ -1429,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>
@@ -1477,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>
@@ -1811,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>
@@ -1845,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>
@@ -1928,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>
@@ -1956,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>
@@ -2060,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>
@@ -2093,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>
@@ -2128,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>
@@ -2177,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>
@@ -2324,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>
@@ -2359,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>
@@ -2397,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>
@@ -2408,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>
@@ -2449,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>
@@ -2592,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>
@@ -2654,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>
@@ -2665,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>
@@ -2809,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>
@@ -3017,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>
@@ -3734,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>
@@ -3776,147 +3817,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="2"/>
- <source>No checker rights</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="3"/>
- <source>Authentication failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="4"/>
- <source>60 seconds cooldown after kick</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="5"/>
- <source>kicked</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="6"/>
- <source>Ping timeout</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="7"/>
- <source>bye</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="8"/>
- <source>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="9"/>
- <source>Not room master</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="10"/>
- <source>Corrupted hedgehogs info</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="11"/>
- <source>too many teams</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="12"/>
- <source>too many hedgehogs</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="13"/>
- <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="14"/>
- <source>round in progress</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="15"/>
- <source>restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="16"/>
- <source>REMOVE_TEAM: no such team</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="17"/>
- <source>Not team owner!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="18"/>
- <source>Less than two clans!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="19"/>
- <source>Room with such name already exists</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="20"/>
- <source>Illegal room name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="21"/>
- <source>No such room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="22"/>
- <source>Joining restricted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="23"/>
- <source>Registered users only</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="24"/>
- <source>You are banned in this room</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="25"/>
- <source>Nickname already chosen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="26"/>
- <source>Illegal nickname</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="27"/>
- <source>Protocol already known</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="28"/>
- <source>Bad number</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../../QTfrontend/servermessages.h" line="29"/>
- <source>Nickname is already in use</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Wed May 29 22:52:37 2013 +0400
@@ -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>
@@ -1947,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>
@@ -3047,119 +3086,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>server</name>
- <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>Empty config entry</source>
- <translation type="unfinished"></translation>
- </message>
- <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>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>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>
-</context>
</TS>
--- a/share/hedgewars/Data/Locale/it.txt Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/it.txt Wed May 29 22:52:37 2013 +0400
@@ -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!
@@ -453,7 +453,7 @@
03:53=TARDIS Modello 40
;03:54=(Arma in sviluppo)
03:54=Utilità di costruzione
-03:55=(Arma in sviluppo)
+03:55=Arma di ibernazione di massa
03:56=Ecco il grande chef!
; Weapon Descriptions (use | as line breaks)
@@ -513,7 +513,7 @@
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: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=DESCRIZIONE NON DISPONIBILE
+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
--- a/share/hedgewars/Data/Locale/missions_fr.txt Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/missions_fr.txt Wed May 29 22:52:37 2013 +0400
@@ -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 Grappin
+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
@@ -44,4 +44,4 @@
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 ?"
--- a/share/hedgewars/Data/Locale/pl.txt Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Locale/pl.txt Wed May 29 22:52:37 2013 +0400
@@ -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
@@ -286,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!
@@ -309,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!
@@ -541,6 +542,8 @@
03:53=Typ 40
;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łą
@@ -599,6 +602,8 @@
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: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/Maps/CMakeLists.txt Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Maps/CMakeLists.txt Wed May 29 22:52:37 2013 +0400
@@ -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
Binary file share/hedgewars/Data/Maps/Eyes/preview.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/SB_Bones/CMakeLists.txt Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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 Wed May 29 22:52:37 2013 +0400
@@ -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/Missions/Campaign/A Classic Fairytale/CMakeLists.txt Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/CMakeLists.txt Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/backstab.lua Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/dragon.lua Wed May 29 22:52:37 2013 +0400
@@ -399,7 +399,9 @@
function DoMissionFinished()
AddCaption(loc("Salvation was one step closer now..."))
- SaveCampaignVar("Progress", "6")
+ if progress and progress<6 then
+ SaveCampaignVar("Progress", "6")
+ end
ParseCommand("teamgone " .. loc("011101001"))
TurnTimeLeft = 0
end
@@ -451,6 +453,7 @@
end
function GetVariables()
+ progress = tonumber(GetCampaignVar("Progress"))
m5DeployedNum = tonumber(GetCampaignVar("M5DeployedNum"))
end
--- a/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/enemy.lua Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/enemy.lua Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/family.lua Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/first_blood.lua Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/journey.lua Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/queen.lua Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/shadow.lua Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/A Classic Fairytale/united.lua Wed May 29 22:52:37 2013 +0400
@@ -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()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/ShoppaMap.cfg Wed May 29 22:52:37 2013 +0400
@@ -0,0 +1,2 @@
+Default
+Default
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/ShoppaMap.lua Wed May 29 22:52:37 2013 +0400
@@ -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/tools/CMakeLists.txt Sun Apr 21 01:36:08 2013 +0200
+++ b/tools/CMakeLists.txt Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/tools/CreateMacBundle.cmake.in Wed May 29 22:52:37 2013 +0400
@@ -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 Sun Apr 21 01:36:08 2013 +0200
+++ b/tools/build_windows.bat Wed May 29 22:52:37 2013 +0400
@@ -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\
)
--- a/tools/w32DownloadUnzip.vbs Sun Apr 21 01:36:08 2013 +0200
+++ b/tools/w32DownloadUnzip.vbs Wed May 29 22:52:37 2013 +0400
@@ -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" )