# HG changeset patch # User unc0rr # Date 1455041476 -10800 # Node ID b69f5f22a3ba7987eae27d10efd183fa30769d20 # Parent caa1e84c3ac29faa6efdd7e7b673da6cc3b5bda6# Parent c22d292e7266fa0060845e1235d5a24b3db188e2 Merge default diff -r caa1e84c3ac2 -r b69f5f22a3ba .travis.yml --- a/.travis.yml Fri Jan 01 19:15:32 2016 +0300 +++ b/.travis.yml Tue Feb 09 21:11:16 2016 +0300 @@ -59,4 +59,4 @@ - "See details at %{build_url}" on_success: change on_failure: always - skip_join: true + skip_join: false diff -r caa1e84c3ac2 -r b69f5f22a3ba ChangeLog.txt --- a/ChangeLog.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/ChangeLog.txt Tue Feb 09 21:11:16 2016 +0300 @@ -2,11 +2,21 @@ * bugfixes 0.9.22 -> 0.9.23 - * Hammer damage is now rounded down. This means it will cause NO DAMAGE to a hedgehog with less than 3 hp. + + Improved hedgehog spawns on maps that lack land mass or free space + + Highlander mode displays game scheme specifics (mines timer, etc.) in ESC info + + AI hedgehogs know how to use Bee now + + Small visual effects enhancements + * Video recording functionality is restored + * Gameplay fix: Hammer damage is now rounded down. This means it will cause NO DAMAGE to a hedgehog with less than 3 hp. * Fixed bee not being affected by wrap world edge while still being thrown * Fixed turn not ending when sticky mine was trapped on rubberband + * Fixed screenshots being too bright if taken in quick succession + * Fixed hog-speech missing a response type (Justyouwait/"You're gonna pay for that") on some platforms (e.g. Linux) * Various other fixes +Lua-API: + + New call: SetCinematicMode(enable) -- e.g. for cutscenes etc. + 0.9.21 -> 0.9.22 + New Weapon / Map object: AirMine (floating mine that will follow nearby hedgehogs) + Extensive changes to TechRacer: Variable terrain types, enhanced parameters, hwmap interpreter, fuel limiter, etc. diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/Doxyfile --- a/QTfrontend/Doxyfile Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/Doxyfile Tue Feb 09 21:11:16 2016 +0300 @@ -190,7 +190,7 @@ # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. -ALIASES = "repo{1}=http://code.google.com/p/hedgewars/source/browse/QTfrontend/\1" +ALIASES = "repo{1}=http://hg.hedgewars.org/hedgewars/file/default/QTfrontend/\1" # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/main.cpp --- a/QTfrontend/main.cpp Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/main.cpp Tue Feb 09 21:11:16 2016 +0300 @@ -28,6 +28,7 @@ #include <QDate> #include <QDesktopWidget> #include <QLabel> +#include <QLibraryInfo> #include "hwform.h" #include "hwconsts.h" @@ -318,7 +319,8 @@ engine->setWriteDir(cfgdir->absolutePath()); engine->mountPacks(); - QTranslator Translator; + QTranslator TranslatorHedgewars; + QTranslator TranslatorQt; { QSettings settings(DataManager::instance().settingsFileName(), QSettings::IniFormat); settings.setIniCodec("UTF-8"); @@ -333,10 +335,13 @@ cc = HWApplication::keyboardInputLocale().name(); } - // load locale file into translator - if (!Translator.load(QString("physfs://Locale/hedgewars_%1").arg(cc))) - qWarning("Failed to install translation (%s)", qPrintable(cc)); - app.installTranslator(&Translator); + // Load locale files into translators + if (!TranslatorHedgewars.load(QString("physfs://Locale/hedgewars_%1").arg(cc))) + qWarning("Failed to install Hedgewars translation (%s)", qPrintable(cc)); + if (!TranslatorQt.load(QString("%1/qt_%2").arg(QLibraryInfo::location(QLibraryInfo::TranslationsPath), cc))) + qWarning("Failed to install Qt translation (%s)", qPrintable(cc)); + app.installTranslator(&TranslatorHedgewars); + app.installTranslator(&TranslatorQt); app.setLayoutDirection(QLocale(cc).textDirection()); } diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/res/StatsBestKiller.png Binary file QTfrontend/res/StatsBestKiller.png has changed diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/res/StatsCustomAchievement.png Binary file QTfrontend/res/StatsCustomAchievement.png has changed diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/res/StatsHedgehogsKilled.png Binary file QTfrontend/res/StatsHedgehogsKilled.png has changed diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/res/StatsMostSelfDamage.png Binary file QTfrontend/res/StatsMostSelfDamage.png has changed diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/res/StatsSelfKilled.png Binary file QTfrontend/res/StatsSelfKilled.png has changed diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/res/StatsSkipped.png Binary file QTfrontend/res/StatsSkipped.png has changed diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/ui/dialog/bandialog.cpp --- a/QTfrontend/ui/dialog/bandialog.cpp Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/ui/dialog/bandialog.cpp Tue Feb 09 21:11:16 2016 +0300 @@ -58,6 +58,7 @@ connect(btnCancel, SIGNAL(clicked()), this, SLOT(reject())); this->setWindowModality(Qt::WindowModal); + this->setWindowTitle(tr("Ban player")); } bool BanDialog::byIP() diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/ui/dialog/input_ip.cpp --- a/QTfrontend/ui/dialog/input_ip.cpp Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/ui/dialog/input_ip.cpp Tue Feb 09 21:11:16 2016 +0300 @@ -63,6 +63,7 @@ connect(pbDefault, SIGNAL(clicked()), this, SLOT(setDefaultPort())); this->setWindowModality(Qt::WindowModal); + this->setWindowTitle(tr("Connect to server")); } void HWHostPortDialog::setDefaultPort() diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/ui/page/pagenetserver.cpp --- a/QTfrontend/ui/page/pagenetserver.cpp Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/ui/page/pagenetserver.cpp Tue Feb 09 21:11:16 2016 +0300 @@ -83,7 +83,7 @@ labelURL->setText( "<style type=\"text/css\"> a { color: #ffcc00; } </style>" "<div align=\"center\">" - "<a href=\"https://code.google.com/p/hedgewars/wiki/HWPlaySchemeSyntax\">" + + "<a href=\"hedgewars.org/kb/HWPlaySchemeSyntax\">" + tr("Click here for details") + "</a></div>"); labelURL->setOpenExternalLinks(true); diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/ui/widget/chatwidget.cpp --- a/QTfrontend/ui/widget/chatwidget.cpp Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/ui/widget/chatwidget.cpp Tue Feb 09 21:11:16 2016 +0300 @@ -373,7 +373,7 @@ return QString("<span class=\"nick\">%1</span>").arg(Qt::escape(nickname)); } -const QRegExp HWChatWidget::URLREGEXP = QRegExp("(http(s)?://)?(www\\.)?((hedgewars\\.org|code\\.google\\.com|googlecode\\.com|hh\\.unit22\\.org)(/[^ ]*)?)"); +const QRegExp HWChatWidget::URLREGEXP = QRegExp("(http(s)?://)?(www\\.)?((([^/:?&#]+\\.)?hedgewars\\.org|code\\.google\\.com|googlecode\\.com|hh\\.unit22\\.org)(/[^ ]*)?)"); bool HWChatWidget::containsHighlight(const QString & sender, const QString & message) { diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/ui/widget/feedbackdialog.cpp --- a/QTfrontend/ui/widget/feedbackdialog.cpp Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/ui/widget/feedbackdialog.cpp Tue Feb 09 21:11:16 2016 +0300 @@ -60,6 +60,7 @@ setModal(true); setWindowFlags(Qt::Sheet); setWindowModality(Qt::WindowModal); + setWindowTitle(tr("Feedback")); setMinimumSize(700, 460); resize(700, 460); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); @@ -84,7 +85,7 @@ "</style>" "<div align=\"center\"><h1>%1</h1>" "<h3>%2<h3>" - "<h4>%3 <a href=\"http://code.google.com/p/hedgewars/wiki/KnownBugs\">known bugs</a><h4>" + "<h4>%3 <a href=\"http://hedgewars.org/kb/KnownBugs\">known bugs</a><h4>" "<h4>%4<h4>" "</div>") .arg(tr("Send us feedback!")) diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/ui/widget/hatprompt.cpp --- a/QTfrontend/ui/widget/hatprompt.cpp Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/ui/widget/hatprompt.cpp Tue Feb 09 21:11:16 2016 +0300 @@ -60,6 +60,7 @@ setModal(true); setWindowFlags(Qt::Sheet); setWindowModality(Qt::WindowModal); + setWindowTitle(tr("Choose a hat")); setMinimumSize(550, 430); resize(550, 430); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/ui/widget/roomnameprompt.cpp --- a/QTfrontend/ui/widget/roomnameprompt.cpp Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/ui/widget/roomnameprompt.cpp Tue Feb 09 21:11:16 2016 +0300 @@ -32,6 +32,7 @@ setModal(true); setWindowFlags(Qt::Sheet); setWindowModality(Qt::WindowModal); + setWindowTitle(tr("Create room")); setMinimumSize(360, 130); resize(360, 180); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/ui/widget/seedprompt.cpp --- a/QTfrontend/ui/widget/seedprompt.cpp Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/ui/widget/seedprompt.cpp Tue Feb 09 21:11:16 2016 +0300 @@ -31,6 +31,7 @@ setModal(true); setWindowFlags(Qt::Sheet); setWindowModality(Qt::WindowModal); + setWindowTitle(tr("Seed")); setMinimumSize(360, 160); resize(360, 160); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/ui/widget/themeprompt.cpp --- a/QTfrontend/ui/widget/themeprompt.cpp Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/ui/widget/themeprompt.cpp Tue Feb 09 21:11:16 2016 +0300 @@ -61,6 +61,7 @@ setModal(true); setWindowFlags(Qt::Sheet); setWindowModality(Qt::WindowModal); + setWindowTitle(tr("Choose a theme")); setMinimumSize(550, 430); resize(550, 430); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); diff -r caa1e84c3ac2 -r b69f5f22a3ba QTfrontend/weapons.h --- a/QTfrontend/weapons.h Fri Jan 01 19:15:32 2016 +0300 +++ b/QTfrontend/weapons.h Tue Feb 09 21:11:16 2016 +0300 @@ -17,11 +17,67 @@ */ -// TODO: keep on documenting all the weapons -//skip---------------------------------| -//structure------------------------------------------------------------------| +/* + AmmoType lookup table (use monospace font / cursor movements) - + amGrenade-----------------------| + amClusterBomb--------------------| + amBazooka-------------------------| + amBee------------------------------| + amShotgun---------------------------| + amPickHammer-------------------------| + amSkip--------------------------------| + amRope---------------------------------| + amMine----------------------------------| + amDEagle---------------------------------| + amDynamite--------------------------------| + amFirePunch--------------------------------| + amWhip--------------------------------------| + amBaseballBat--------------------------------| + amParachute-----------------------------------| + amAirAttack------------------------------------| + amMineStrike------------------------------------| + amBlowTorch--------------------------------------| + amGirder------------------------------------------| + amTeleport-----------------------------------------| + amSwitch--------------------------------------------| + amMortar---------------------------------------------| + amKamikaze--------------------------------------------| + amCake-------------------------------------------------| + amSeduction---------------------------------------------| + amWatermelon---------------------------------------------| + amHellishBomb---------------------------------------------| + amNapalm---------------------------------------------------| + amDrill-----------------------------------------------------| + amBallgun----------------------------------------------------| + amRCPlane-----------------------------------------------------| + amLowGravity---------------------------------------------------| + amExtraDamage---------------------------------------------------| + amInvulnerable---------------------------------------------------| + amExtraTime-------------------------------------------------------| + amLaserSight-------------------------------------------------------| + amVampiric----------------------------------------------------------| + amSniperRifle--------------------------------------------------------| + amJetpack-------------------------------------------------------------| + amMolotov--------------------------------------------------------------| + amBirdy-----------------------------------------------------------------| + amPortalGun--------------------------------------------------------------| + amPiano-------------------------------------------------------------------| + amGasBomb------------------------------------------------------------------| + amSineGun-------------------------------------------------------------------| + amFlamethrower---------------------------------------------------------------| + amSMine-----------------------------------------------------------------------| + amHammer-----------------------------------------------------------------------| + amResurrector-------------------------------------------------------------------| + amDrillStrike--------------------------------------------------------------------| + amSnowball------------------------------------------------------------------------| + amTardis---------------------------------------------------------------------------| + amLandGun---------------------------------------------------------------------------| + amIceGun-----------------------------------------------------------------------------| + amKnife-------------------------------------------------------------------------------| + amRubber-------------------------------------------------------------------------------| + amAirMine-------------------------------------------------------------------------------| +*/ #define AMMOLINE_DEFAULT_QT "939192942219912103223511100120000000021110010101111100010" #define AMMOLINE_DEFAULT_PROB "040504054160065554655446477657666666615551010111541111111" #define AMMOLINE_DEFAULT_DELAY "000000000000020550000004000700400000000022000000060002000" diff -r caa1e84c3ac2 -r b69f5f22a3ba README.md --- a/README.md Fri Jan 01 19:15:32 2016 +0300 +++ b/README.md Tue Feb 09 21:11:16 2016 +0300 @@ -28,7 +28,7 @@ Contribute: ----------- If you see a bug or have any suggestion please use the official bug tracker at -http://code.google.com/p/hedgewars/issues/list or the integrated feedback +http://hedgewars.org/bugs or the integrated feedback button. If you want to help or get to know the sources better you can do that with some diff -r caa1e84c3ac2 -r b69f5f22a3ba gameServer/HWProtoInRoomState.hs --- a/gameServer/HWProtoInRoomState.hs Fri Jan 01 19:15:32 2016 +0300 +++ b/gameServer/HWProtoInRoomState.hs Tue Feb 09 21:11:16 2016 +0300 @@ -342,6 +342,7 @@ isJust maybeClientId && (kickId /= thisClientId) && sameRoom + && (not $ hasSuperPower kickCl) && ((isNothing $ gameInfo rm) || notOnly2Players || teamsInGame kickCl == 0) ] diff -r caa1e84c3ac2 -r b69f5f22a3ba gameServer/OfficialServer/checker.hs --- a/gameServer/OfficialServer/checker.hs Fri Jan 01 19:15:32 2016 +0300 +++ b/gameServer/OfficialServer/checker.hs Tue Feb 09 21:11:16 2016 +0300 @@ -153,10 +153,12 @@ CheckFailed msg -> do warningM "Check" "Check failed" answer ["CHECKED", "FAIL", msg] + threadDelay 1500000 answer ["READY"] CheckSuccess msgs -> do warningM "Check" "Check succeeded" answer ("CHECKED" : "OK" : msgs) + threadDelay 1500000 answer ["READY"] where answer :: [B.ByteString] -> IO () @@ -176,7 +178,7 @@ main :: IO () -main = withSocketsDo $ do +main = withSocketsDo . forever $ do #if !defined(mingw32_HOST_OS) installHandler sigPIPE Ignore Nothing installHandler sigCHLD Ignore Nothing diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/ArgParsers.pas --- a/hedgewars/ArgParsers.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/ArgParsers.pas Tue Feb 09 21:11:16 2016 +0300 @@ -105,7 +105,7 @@ WriteLn(stdout, ' --help'); WriteLn(stdout, ''); WriteLn(stdout, 'For more detailed help and examples go to:'); - WriteLn(stdout, 'http://code.google.com/p/hedgewars/wiki/CommandLineOptions'); + WriteLn(stdout, 'http://hedgewars.org/kb/CommandLineOptions'); GameType:= gmtSyntax; end; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/SDLh.pas --- a/hedgewars/SDLh.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/SDLh.pas Tue Feb 09 21:11:16 2016 +0300 @@ -88,11 +88,19 @@ SDL_ALLEVENTS = $FFFFFFFF; // dummy event type to prevent stack corruption SDL_APPINPUTFOCUS = $02; + // (some) audio formats from SDL_audio.h + AUDIO_S16LSB = $8010; // Signed 16-bit samples, in little-endian byte order + AUDIO_S16MSB = $9010; // Signed 16-bit samples, in big-endian byte order + AUDIO_S16SYS = {$IFDEF ENDIAN_LITTLE}AUDIO_S16LSB{$ELSE}AUDIO_S16MSB{$ENDIF}; + + // default audio format from SDL_mixer.h + MIX_DEFAULT_FORMAT = AUDIO_S16SYS; + SDL_BUTTON_LEFT = 1; SDL_BUTTON_MIDDLE = 2; SDL_BUTTON_RIGHT = 3; - SDL_BUTTON_WHEELUP = 4; - SDL_BUTTON_WHEELDOWN = 5; + SDL_BUTTON_X1 = 4; + SDL_BUTTON_X2 = 5; SDL_TEXTEDITINGEVENT_TEXT_SIZE = 32; @@ -1008,6 +1016,17 @@ sockets: PTCPSocket; end; +{$IFDEF WIN32} + TThreadFunction = function (p: pointer): Longword; stdcall; + pfnSDL_CurrentBeginThread = function ( + _Security: pointer; + _StackSize: LongWord; + _StartAddress: TThreadFunction; + _ArgList: pointer; + _InitFlag: Longword; + _ThrdAddr: PLongword): PtrUInt; cdecl; + pfnSDL_CurrentEndThread = procedure (_Retval: LongInt); cdecl; +{$ENDIF} ///////////////////////////////////////////////////////////////// ///////////////////// FUNCTION DEFINITIONS ///////////////////// @@ -1060,7 +1079,9 @@ function SDL_CreateRenderer(window: PSDL_Window; index: LongInt; flags: LongWord): PSDL_Renderer; cdecl; external SDLLibName; function SDL_DestroyWindow(window: PSDL_Window): LongInt; cdecl; external SDLLibName; function SDL_DestroyRenderer(renderer: PSDL_Renderer): LongInt; cdecl; external SDLLibName; +procedure SDL_SetWindowPosition(window: PSDL_Window; w, h: LongInt); cdecl; external SDLLibName; procedure SDL_SetWindowSize(window: PSDL_Window; w, h: LongInt); cdecl; external SDLLibName; +procedure SDL_SetWindowFullscreen(window: PSDL_Window; flags: LongWord); cdecl; external SDLLibName; function SDL_GetCurrentVideoDriver:Pchar; cdecl; external SDLLibName; function SDL_GL_CreateContext(window: PSDL_Window): PSDL_GLContext; cdecl; external SDLLibName; @@ -1117,7 +1138,13 @@ (* remember to mark the threaded functions as 'cdecl; export;' (or have fun debugging nil arguments) *) +{$IFDEF WIN32} +// SDL uses wrapper in windows +function SDL_CreateThread(fn: Pointer; name: PChar; data: Pointer; bt: pfnSDL_CurrentBeginThread; et: pfnSDL_CurrentEndThread): PSDL_Thread; cdecl; external SDLLibName; +function SDL_CreateThread(fn: Pointer; name: PChar; data: Pointer): PSDL_Thread; cdecl; overload; +{$ELSE} function SDL_CreateThread(fn: Pointer; name: PChar; data: Pointer): PSDL_Thread; cdecl; external SDLLibName; +{$ENDIF} procedure SDL_WaitThread(thread: PSDL_Thread; status: PLongInt); cdecl; external SDLLibName; procedure SDL_DetachThread(thread: PSDL_Thread); cdecl; external SDLLibName; @@ -1304,6 +1331,12 @@ (PByteArray(buf)^[0] shl 24) end; +{$IFDEF WIN32} +function SDL_CreateThread(fn: Pointer; name: PChar; data: Pointer): PSDL_Thread; cdecl; +begin + SDL_CreateThread:= SDL_CreateThread(fn, name, data, nil, nil) +end; +{$ENDIF} end. diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/hwengine.pas Tue Feb 09 21:11:16 2016 +0300 @@ -71,6 +71,7 @@ AddFlakes; SetRandomSeed(cSeed, false); StoreLoad(false); + if not allOK then exit; AssignHHCoords; AddMiscGears; InitWorld; @@ -89,6 +90,9 @@ end; gsConfirm, gsGame, gsChat: begin + // disable screenshot flash effect when about to make another screenshot + if flagMakeCapture and (ScreenFade = sfFromWhite) then + ScreenFade:= sfNone; if not cOnlyStats then // never place between ProcessKbd and DoGameTick - bugs due to /put cmd and isCursorVisible DrawWorld(Lag); @@ -127,7 +131,7 @@ ScreenFade:= sfFromWhite; ScreenFadeValue:= sfMax; ScreenFadeSpeed:= 5; - + if (not flagDumpLand and MakeScreenshot(s, 1, 0)) or (flagDumpLand and MakeScreenshot(s, 1, 1) and ((cReducedQuality and rqBlurryLand <> 0) or MakeScreenshot(s, 1, 2))) then WriteLnToConsole('Screenshot saved: ' + s) @@ -145,11 +149,13 @@ PrevTime, CurrTime: LongWord; isTerminated: boolean; previousGameState: TGameState; + wheelEvent: boolean; begin isTerminated:= false; PrevTime:= SDL_GetTicks; - while isTerminated = false do + while (not isTerminated) and allOK do begin + wheelEvent:= false; SDL_PumpEvents(); while SDL_PeepEvents(@event, 1, SDL_GETEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT) > 0 do @@ -177,35 +183,48 @@ if (GameState >= gsGame) then ProcessMouse(event.button, false); SDL_MOUSEWHEEL: + begin + wheelEvent:= true; ProcessMouseWheel(event.wheel.x, event.wheel.y); + end; - SDL_TEXTINPUT: uChat.TextInput(event.text); + SDL_TEXTINPUT: if GameState = gsChat then uChat.TextInput(event.text); SDL_WINDOWEVENT: - if event.window.event = SDL_WINDOWEVENT_SHOWN then begin - cHasFocus:= true; - onFocusStateChanged() - end - else if event.window.event = SDL_WINDOWEVENT_MINIMIZED then - begin - previousGameState:= GameState; - GameState:= gsSuspend; - end - else if event.window.event = SDL_WINDOWEVENT_RESTORED then - begin - GameState:= previousGameState; + case event.window.event of + SDL_WINDOWEVENT_FOCUS_GAINED: + begin + cHasFocus:= true; + onFocusStateChanged(); + end; + SDL_WINDOWEVENT_FOCUS_LOST: + begin + cHasFocus:= false; + onFocusStateChanged(); + end; + SDL_WINDOWEVENT_MINIMIZED: + begin + previousGameState:= GameState; + GameState:= gsSuspend; + end; + SDL_WINDOWEVENT_RESTORED: + begin + GameState:= previousGameState; {$IFDEF ANDROID} - //This call is used to reinitialize the glcontext and reload the textures - ParseCommand('fullscr '+intToStr(LongInt(cFullScreen)), true); + //This call is used to reinitialize the glcontext and reload the textures + ParseCommand('fullscr '+intToStr(LongInt(cFullScreen)), true); {$ENDIF} - end - else if event.window.event = SDL_WINDOWEVENT_RESIZED then - begin - cNewScreenWidth:= max(2 * (event.window.data1 div 2), cMinScreenWidth); - cNewScreenHeight:= max(2 * (event.window.data2 div 2), cMinScreenHeight); - cScreenResizeDelay:= RealTicks + 500{$IFDEF IPHONEOS}div 2{$ENDIF}; + end; + SDL_WINDOWEVENT_RESIZED: + begin + cNewScreenWidth:= max(2 * (event.window.data1 div 2), cMinScreenWidth); + cNewScreenHeight:= max(2 * (event.window.data2 div 2), cMinScreenHeight); + cScreenResizeDelay:= RealTicks + 500{$IFDEF IPHONEOS}div 2{$ENDIF}; + end; + end; // case closed end; + {$IFDEF USE_TOUCH_INTERFACE} SDL_FINGERMOTION: onTouchMotion(event.tfinger.x, event.tfinger.y, event.tfinger.dx, event.tfinger.dy, event.tfinger.fingerId); @@ -229,6 +248,9 @@ end; //end case event.type_ of end; //end while SDL_PollEvent(@event) <> 0 do + if (not wheelEvent) then + ResetMouseWheel(); + if (CursorMovementX <> 0) or (CursorMovementY <> 0) then handlePositionUpdate(CursorMovementX * cameraKeyboardSpeed, CursorMovementY * cameraKeyboardSpeed); @@ -296,12 +318,11 @@ {$ENDIF} /////////////////////////////////////////////////////////////////////////////// -procedure Game; +procedure GameRoutine; //var p: TPathType; var s: shortstring; i: LongInt; begin - initEverything(true); WriteLnToConsole('Hedgewars engine ' + cVersionString + '-r' + cRevisionString + ' (' + cHashString + ') with protocol #' + inttostr(cNetProtoVersion)); //AddFileLog('Prefix: "' + shortstring(PathPrefix) +'"'); @@ -311,18 +332,19 @@ AddFileLog(inttostr(i) + ': ' + ParamStr(i)); WriteToConsole('Init SDL... '); - if not cOnlyStats then SDLTry(SDL_Init(SDL_INIT_VIDEO or SDL_INIT_NOPARACHUTE) >= 0, 'SDL_Init', true); + if not cOnlyStats then SDLCheck(SDL_Init(SDL_INIT_VIDEO or SDL_INIT_NOPARACHUTE) >= 0, 'SDL_Init', true); WriteLnToConsole(msgOK); + if not cOnlyStats then + begin + WriteToConsole('Init SDL_ttf... '); + SDLCheck(TTF_Init() <> -1, 'TTF_Init', true); + WriteLnToConsole(msgOK); + end; + if not allOK then exit; //SDL_StartTextInput(); SDL_ShowCursor(0); - if not cOnlyStats then - begin - WriteToConsole('Init SDL_ttf... '); - SDLTry(TTF_Init() <> -1, 'TTF_Init', true); - WriteLnToConsole(msgOK); - end; {$IFDEF USE_VIDEO_RECORDING} if GameType = gmtRecord then @@ -340,6 +362,7 @@ ControllerInit(); // has to happen before InitKbdKeyTable to map keys InitKbdKeyTable(); AddProgress(); + if not allOK then exit; LoadLocale(cPathz[ptLocale] + '/en.txt'); // Do an initial load with english if cLocaleFName <> 'en.txt' then @@ -353,6 +376,7 @@ end else cLocale := 'en'; + if not allOK then exit; WriteLnToConsole(msgGettingConfig); if cTestLua then @@ -369,6 +393,7 @@ LoadRecordFromFile(recordFileName); end; + if not allOK then exit; ScriptOnGameInit; s:= 'eproto ' + inttostr(cNetProtoVersion); SendIPCRaw(@s[0], Length(s) + 1); // send proto version @@ -382,8 +407,9 @@ InitSound(); isDeveloperMode:= false; - TryDo(InitStepsFlags = cifAllInited, 'Some parameters not set (flags = ' + inttostr(InitStepsFlags) + ')', true); + if checkFails(InitStepsFlags = cifAllInited, 'Some parameters not set (flags = ' + inttostr(InitStepsFlags) + ')', true) then exit; //ParseCommand('rotmask', true); + if not allOK then exit; {$IFDEF USE_VIDEO_RECORDING} if GameType = gmtRecord then @@ -395,16 +421,22 @@ {$ENDIF} MainLoop; +end; + +procedure Game; +begin + initEverything(true); + GameRoutine; // clean up all the memory allocated freeEverything(true); end; - /////////////////////////////////////////////////////////////////////////////// // preInitEverything - init variables that are going to be ovewritten by arguments // initEverything - init variables only. Should be coupled by below // freeEverything - free above. Pay attention to the init/free order! procedure preInitEverything; begin + allOK:= true; Randomize(); uVariables.preInitModule; @@ -502,19 +534,23 @@ begin initEverything(false); - IPCWaitPongEvent; - TryDo(InitStepsFlags = cifRandomize, 'Some parameters not set (flags = ' + inttostr(InitStepsFlags) + ')', true); + if allOK then + begin + IPCWaitPongEvent; + if checkFails(InitStepsFlags = cifRandomize, 'Some parameters not set (flags = ' + inttostr(InitStepsFlags) + ')', true) then exit; - ScriptOnPreviewInit; -{$IFDEF MOBILE} - GenPreview(Preview); -{$ELSE} - GenPreviewAlpha(Preview); -{$ENDIF} - WriteLnToConsole('Sending preview...'); - SendIPCRaw(@Preview, sizeof(Preview)); - SendIPCRaw(@MaxHedgehogs, sizeof(byte)); - WriteLnToConsole('Preview sent, disconnect'); + ScriptOnPreviewInit; + {$IFDEF MOBILE} + GenPreview(Preview); + {$ELSE} + GenPreviewAlpha(Preview); + {$ENDIF} + WriteLnToConsole('Sending preview...'); + SendIPCRaw(@Preview, sizeof(Preview)); + SendIPCRaw(@MaxHedgehogs, sizeof(byte)); + WriteLnToConsole('Preview sent, disconnect'); + end; + freeEverything(false); end; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uAI.pas --- a/hedgewars/uAI.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uAI.pas Tue Feb 09 21:11:16 2016 +0300 @@ -52,10 +52,11 @@ ThinkThread:= nil; SDL_UnlockMutex(ThreadLock); - with CurrentHedgehog^ do - if Gear <> nil then - if BotLevel <> 0 then - StopMessages(Gear^.Message); + if CurrentHedgehog <> nil then + with CurrentHedgehog^ do + if Gear <> nil then + if BotLevel <> 0 then + StopMessages(Gear^.Message); BestActions.Count:= 0; BestActions.Pos:= 0 @@ -552,7 +553,7 @@ if Gear^.Message <> 0 then begin StopMessages(Gear^.Message); - TryDo((Gear^.Message and gmAllStoppable) = 0, 'Engine bug: AI may break demos playing', true); + if checkFails((Gear^.Message and gmAllStoppable) = 0, 'Engine bug: AI may break demos playing', true) then exit; end; if Gear^.Message <> 0 then diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uAmmos.pas --- a/hedgewars/uAmmos.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uAmmos.pas Tue Feb 09 21:11:16 2016 +0300 @@ -70,7 +70,7 @@ begin if newAmmo[a].Count > 0 then begin - TryDo(mi[Ammoz[a].Slot] <= cMaxSlotAmmoIndex, 'Ammo slot overflow', true); + if checkFails(mi[Ammoz[a].Slot] <= cMaxSlotAmmoIndex, 'Ammo slot overflow', true) then exit; Ammo^[Ammoz[a].Slot, mi[Ammoz[a].Slot]]:= newAmmo[a]; inc(mi[Ammoz[a].Slot]) end @@ -85,10 +85,13 @@ ammos: TAmmoCounts; newAmmos: TAmmoArray; begin -TryDo((byte(ammoLoadout[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoProbability[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoDelay[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoReinforcement[0]) = byte(ord(High(TAmmoType)))), 'Incomplete or missing ammo scheme set (incompatible frontend or demo/save?)', true); + if checkFails((byte(ammoLoadout[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoProbability[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoDelay[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoReinforcement[0]) = byte(ord(High(TAmmoType)))) + , 'Incomplete or missing ammo scheme set (incompatible frontend or demo/save?)' + , true) + then exit; +if checkFails(StoreCnt < cMaxHHs, 'Ammo stores overflow', true) then exit; inc(StoreCnt); -TryDo(StoreCnt <= cMaxHHs, 'Ammo stores overflow', true); new(StoresList[Pred(StoreCnt)]); @@ -153,8 +156,10 @@ function GetAmmoByNum(num: LongInt): PHHAmmo; begin - TryDo(num < StoreCnt, 'Invalid store number', true); - GetAmmoByNum:= StoresList[num] + if checkFails(num < StoreCnt, 'Invalid store number', true) then + GetAmmoByNum:= nil + else + GetAmmoByNum:= StoresList[num] end; function GetCurAmmoEntry(var Hedgehog: THedgehog): PAmmo; @@ -364,7 +369,7 @@ inc(slot) end end; - TryDo(slot <= cMaxSlotIndex, 'Ammo slot index overflow', true); + if checkFails(slot <= cMaxSlotIndex, 'Ammo slot index overflow', true) then exit; CurAmmoType:= Ammo^[slot, ammoidx].AmmoType; end end; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uCollisions.pas --- a/hedgewars/uCollisions.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uCollisions.pas Tue Feb 09 21:11:16 2016 +0300 @@ -62,7 +62,7 @@ function CalcSlopeTangent(Gear: PGear; collisionX, collisionY: LongInt; var outDeltaX, outDeltaY: LongInt; TestWord: LongWord): boolean; implementation -uses uConsts, uLandGraphics, uVariables, uDebug; +uses uConsts, uLandGraphics, uVariables; type TCollisionEntry = record X, Y, Radius: LongInt; @@ -76,10 +76,10 @@ procedure AddCI(Gear: PGear); begin -if (Gear^.CollisionIndex >= 0) or +if (Gear^.CollisionIndex >= 0) or (Count > MAXRECTSINDEX) or ((Count > MAXRECTSINDEX-200) and ((Gear^.Kind = gtMine) or (Gear^.Kind = gtSMine) or (Gear^.Kind = gtKnife))) then exit; -TryDo(Count <= MAXRECTSINDEX, 'Collision rects array overflow', true); + with cinfos[Count] do begin X:= hwRound(Gear^.X); diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uCommandHandlers.pas --- a/hedgewars/uCommandHandlers.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uCommandHandlers.pas Tue Feb 09 21:11:16 2016 +0300 @@ -93,8 +93,8 @@ if isDeveloperMode then begin i:= StrToInt(s); - TryDo(i <= cNetProtoVersion, 'Protocol version mismatch: engine is too old (got '+intToStr(i)+', expecting '+intToStr(cNetProtoVersion)+')', true); - TryDo(i >= cNetProtoVersion, 'Protocol version mismatch: engine is too new (got '+intToStr(i)+', expecting '+intToStr(cNetProtoVersion)+')', true); + checkFails(i <= cNetProtoVersion, 'Protocol version mismatch: engine is too old (got '+intToStr(i)+', expecting '+intToStr(cNetProtoVersion)+')', true); + checkFails(i >= cNetProtoVersion, 'Protocol version mismatch: engine is too new (got '+intToStr(i)+', expecting '+intToStr(cNetProtoVersion)+')', true); end end; @@ -379,7 +379,7 @@ begin s:= s; // avoid compiler hint - TryDo(AllInactive, '/nextturn called when not all gears are inactive', true); + if checkFails(AllInactive, '/nextturn called when not all gears are inactive', true) then exit; CheckSum:= CheckSum xor GameTicks; gi := GearsList; @@ -398,7 +398,7 @@ SendIPC(s) end else - TryDo(CurrentTeam^.hasGone or (CheckSum = lastTurnChecksum), 'Desync detected', true); + checkFails(CurrentTeam^.hasGone or (CheckSum = lastTurnChecksum), 'Desync detected', true); AddFileLog('Next turn: time '+inttostr(GameTicks)); end; @@ -408,7 +408,7 @@ if CheckNoTeamOrHH then exit; -TryDo((s[0] = #1) and (s[1] >= '1') and (s[1] <= '5'), 'Malformed /timer', true); +if checkFails((s[0] = #1) and (s[1] >= '1') and (s[1] <= '5'), 'Malformed /timer', true) then exit; if not isExternalSource then SendIPC(s); @@ -450,7 +450,7 @@ if CheckNoTeamOrHH then exit; - TryDo((s[0] = #1) and (s[1] <= char(High(TAmmoType))), 'Malformed /setweap', true); + if checkFails((s[0] = #1) and (s[1] <= char(High(TAmmoType))), 'Malformed /setweap', true) then exit; if not isExternalSource then SendIPC('w' + s); diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uDebug.pas --- a/hedgewars/uDebug.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uDebug.pas Tue Feb 09 21:11:16 2016 +0300 @@ -23,8 +23,12 @@ interface procedure OutError(Msg: shortstring; isFatalError: boolean); -procedure TryDo(Assert: boolean; Msg: shortstring; isFatal: boolean); inline; -procedure SDLTry(Assert: boolean; Msg: shortstring; isFatal: boolean); +//procedure TryDo(Assert: boolean; Msg: shortstring; isFatal: boolean); inline; +function checkFails(Assert: boolean; Msg: shortstring; isFatal: boolean): boolean; +function SDLCheck(Assert: boolean; Msg: shortstring; isFatal: boolean): boolean; + +var + allOK: boolean; implementation uses SDLh, uConsole, uCommands, uConsts; @@ -42,14 +46,26 @@ OutError(Msg, isFatal) end; -procedure SDLTry(Assert: boolean; Msg: shortstring; isFatal: boolean); +function checkFails(Assert: boolean; Msg: shortstring; isFatal: boolean): boolean; +begin + if not Assert then + OutError(Msg, false); + + allOK:= allOK and (Assert or (not isFatal)); + checkFails:= (not Assert) and isFatal +end; + +function SDLCheck(Assert: boolean; Msg: shortstring; isFatal: boolean): boolean; var s: shortstring; begin -if not Assert then + if not Assert then begin - s:= SDL_GetError(); - OutError(Msg + ': ' + s, isFatal) - end + s:= SDL_GetError(); + OutError(Msg + ': ' + s, false) + end; + + allOK:= allOK and (Assert or (not isFatal)); + SDLCheck:= (not Assert) and isFatal end; end. diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uGame.pas --- a/hedgewars/uGame.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uGame.pas Tue Feb 09 21:11:16 2016 +0300 @@ -28,7 +28,7 @@ //////////////////// uses uInputHandler, uTeams, uIO, uAI, uGears, uSound, uLocale, uCaptions, uTypes, uVariables, uCommands, uConsts, uVisualGearsList, uUtils - {$IFDEF USE_TOUCH_INTERFACE}, uTouch{$ENDIF}; + {$IFDEF USE_TOUCH_INTERFACE}, uTouch{$ENDIF}, uDebug; procedure DoGameTick(Lag: LongInt); var i,j : LongInt; @@ -40,6 +40,7 @@ if (not CurrentTeam^.ExtDriven) then begin NetGetNextCmd; // its for the case of receiving "/say" message + if not allOK then exit; isInLag:= false; FlushMessages(Lag) end; @@ -87,7 +88,7 @@ end; PlayNextVoice; i:= 1; -while (GameState <> gsExit) and (i <= Lag) do +while (GameState <> gsExit) and (i <= Lag) and allOK do begin if not CurrentTeam^.ExtDriven then begin @@ -99,6 +100,8 @@ else begin NetGetNextCmd; + if not allOK then exit; + if isInLag then case GameType of gmtNet: begin diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uGears.pas --- a/hedgewars/uGears.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uGears.pas Tue Feb 09 21:11:16 2016 +0300 @@ -748,7 +748,7 @@ if (ClansCount = 2) and ((GameFlags and gfDivideTeams) <> 0) then begin t:= 0; - TryDo(ClansCount = 2, 'More or less than 2 clans on map in divided teams mode!', true); + if checkFails(ClansCount = 2, 'More or less than 2 clans on map in divided teams mode!', true) then exit; for p:= 0 to 1 do begin with ClansArray[p]^ do @@ -821,7 +821,7 @@ hwRound(Gear^.Y) - SpritesData[sprTargetBee].Height div 2, sprTargetBee, 0, lfBasic, $FFFFFFFF, false, false, false); Gear^.Y:= int2hwFloat(hwRound(Gear^.Y) - 16 - Gear^.Radius); - Gear^.State:= Gear^.State and not gsttmpFlag; + Gear^.State:= Gear^.State and (not gsttmpFlag); AddFileLog('Carved a hole for hog at coordinates (' + inttostr(hwRound(Gear^.X)) + ',' + inttostr(hwRound(Gear^.Y)) + ')') end end; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uGearsHandlersMess.pas Tue Feb 09 21:11:16 2016 +0300 @@ -86,7 +86,7 @@ procedure doStepKamikaze(Gear: PGear); procedure doStepCakeExpl(Gear: PGear); procedure doStepCakeDown(Gear: PGear); -procedure doStepCakeWork(Gear: PGear); +procedure doStepCakeWalk(Gear: PGear); procedure doStepCakeUp(Gear: PGear); procedure doStepCakeFall(Gear: PGear); procedure doStepCake(Gear: PGear); @@ -2003,9 +2003,11 @@ //////////////////////////////////////////////////////////////////////////////// procedure doStepDynamite(Gear: PGear); +var VGear: PVisualGear; begin doStepFallingGear(Gear); AllInactive := false; + if Gear^.Timer mod 166 = 0 then inc(Gear^.Tag); if Gear^.Timer = 1000 then // might need better timing @@ -3163,6 +3165,7 @@ if Gear^.Tag < 2250 then exit; + InCinematicMode:= false; doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), Gear^.Boom, Gear^.Hedgehog, EXPLAutoSound); AfterAttack; DeleteGear(Gear) @@ -3171,8 +3174,9 @@ procedure doStepCakeDown(Gear: PGear); var gi: PGear; - dmg, dmgBase: LongInt; + dmg, dmgBase, partyEpicness, i: LongInt; fX, fY, tdX, tdY: hwFloat; + sparkles: PVisualGear; begin AllInactive := false; @@ -3191,6 +3195,7 @@ fX:= int2hwFloat(hwRound(Gear^.X)); fY:= int2hwFloat(hwRound(Gear^.Y)); dmgBase:= cakeDmg shl 1 + cHHRadius div 2; + partyEpicness:= 0; gi := GearsList; while gi <> nil do begin @@ -3204,21 +3209,46 @@ if (dmg > 1) then dmg:= ModifyDamage(min(dmg div 2, cakeDmg), gi); if (dmg > 1) then if (CurrentHedgehog^.Gear = gi) and (gi^.Hedgehog^.Effects[heInvulnerable] = 0) then - gi^.State := gi^.State or gstLoser + begin + gi^.State := gi^.State or gstLoser; + // probably not too epic if hitting self too... + dec(partyEpicness, 45); + end else + begin gi^.State := gi^.State or gstWinner; + if CurrentHedgehog^.Gear = gi then + dec(partyEpicness, 45) + else + inc(partyEpicness); + end; end; gi := gi^.NextGear end; ////////////////////////////////////////////////////////////////////// Gear^.doStep := @doStepCakeExpl; + if (partyEpicness > 6) and (abs(90 - abs(trunc(Gear^.DirAngle))) < 20) then + begin + for i := 0 to (2 * partyEpicness) do + begin + sparkles:= AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtEgg, 1); + if sparkles <> nil then + begin + sparkles^.dX:= 0.008 * (random(100) - 50); + sparkles^.dY:= -0.3 + 0.002 * (random(100) - 50); + sparkles^.Tint:= ((random(210)+45) shl 24) or ((random(210)+45) shl 16) or ((random(210)+45) shl 8) or $FF; + sparkles^.Angle:= random(360); + end + end; + InCinematicMode:= true; + end; PlaySound(sndCake) end else dec(Gear^.Pos) end; -procedure doStepCakeWork(Gear: PGear); +procedure doStepCakeWalk(Gear: PGear); var tdx, tdy: hwFloat; cakeData: PCakeData; @@ -3285,7 +3315,7 @@ end; CakeI := 0; end; - Gear^.doStep := @doStepCakeWork + Gear^.doStep := @doStepCakeWalk end else inc(Gear^.Pos) @@ -3718,6 +3748,7 @@ Gear^.State := Gear^.State or gsttmpFlag; PauseMusic; playSound(sndRideOfTheValkyries); + inCinematicMode:= true; end; // pickup bonuses @@ -3729,6 +3760,7 @@ if ((Gear^.State and gstCollision) <> 0) or CheckGearDrowning(Gear) then begin + inCinematicMode:= false; StopSoundChan(Gear^.SoundChannel); StopSound(sndRideOfTheValkyries); ResumeMusic; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uGearsHandlersRope.pas --- a/hedgewars/uGearsHandlersRope.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uGearsHandlersRope.pas Tue Feb 09 21:11:16 2016 +0300 @@ -270,7 +270,7 @@ Gear^.X := Gear^.X + nx * len; Gear^.Y := Gear^.Y + ny * len; inc(RopePoints.Count); - TryDo(RopePoints.Count <= MAXROPEPOINTS, 'Rope points overflow', true); + if checkFails(RopePoints.Count <= MAXROPEPOINTS, 'Rope points overflow', true) then exit; Gear^.Elasticity := Gear^.Elasticity - len; Gear^.Friction := Gear^.Friction - len; haveDivided := true; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uGearsHedgehog.pas --- a/hedgewars/uGearsHedgehog.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uGearsHedgehog.pas Tue Feb 09 21:11:16 2016 +0300 @@ -873,9 +873,59 @@ //////////////////////////////////////////////////////////////////////////////// +procedure moveHedgehogOutOfWall(Gear: PGear); +var + hx: hwFloat; + colly, collxl, collxr: boolean; +begin +colly:= (TestCollisionYwithGear(Gear, 1) <> 0); + +while colly do + begin + // don't use TestCollisionXwithXYShift, because it checks for gears + // save real x-position + hx:= Gear^.X; + + Gear^.X:= hx + _1; + collxl:= (TestCollisionX(Gear, -1) <> 0); + + Gear^.X:= hx - _1; + collxr:= (TestCollisionX(Gear, 1) <> 0); + + // restore original value + Gear^.X:= hx; + + // do nothing if trapped between 2 walls + if collxl = collxr then + break; + + // if we in a wall - fix that + if collxl then + begin + // check for obstacle + if (TestCollisionX(Gear, 1) <> 0) then + break; + Gear^.X:= Gear^.X + _1; + end + else + begin + // check for obstacle + if (TestCollisionX(Gear, -1) <> 0) then + break; + Gear^.X:= Gear^.X - _1; + end; + + colly:= (TestCollisionYwithGear(Gear, 1) <> 0); + end; + + +end; + +//////////////////////////////////////////////////////////////////////////////// procedure doStepHedgehogMoving(Gear: PGear); var isFalling, isUnderwater: boolean; land: Word; + cnt: LongWord; begin if Gear^.Hedgehog^.Unplaced then begin @@ -892,7 +942,15 @@ if Gear^.dY.QWordValue > 8160437862 then Gear^.dY.QWordValue:= 8160437862; -isFalling:= (Gear^.dY.isNegative) or (TestCollisionYKick(Gear, 1) = 0); +isFalling:= (Gear^.dY.isNegative); +if (not isFalling) then + begin + // make sure we're not just stuck in wall + moveHedgehogOutOfWall(Gear); + // test for floor/obstacle below + isFalling:= (TestCollisionYKick(Gear, 1) = 0); + end; + if isFalling then begin land:= TestCollisionYKick(Gear, -1); @@ -935,6 +993,7 @@ land:= TestCollisionYwithGear(Gear, 1); if ((Gear^.dX.QWordValue + Gear^.dY.QWordValue) < _0_55.QWordValue) and ((land and lfIce) = 0) and ((land and lfBouncy = 0) or (Gear^.State and gstCollision <> 0)) + and (Gear^.Damage = 0) and ((Gear^.State and gstHHJumping) <> 0) then SetLittle(Gear^.dX); @@ -1037,15 +1096,24 @@ else begin Gear^.State:= Gear^.State and (not gstMoving); - while TestCollisionYWithGear(Gear,1) = 0 do - Gear^.Y:= Gear^.Y+_1; + cnt:= 0; + while (cnt < 6) and (not CheckGearDrowning(Gear)) and (Gear <> nil) and (TestCollisionYWithGear(Gear,1) = 0) do + begin + Gear^.Y:= Gear^.Y + _1; + inc(cnt) + end; + SetLittle(Gear^.dX) end else begin Gear^.State:= Gear^.State and (not gstMoving); - while TestCollisionYWithGear(Gear,1) = 0 do - Gear^.Y:= Gear^.Y+_1; + cnt:= 0; + while (cnt < 6) and (not CheckGearDrowning(Gear)) and (Gear <> nil) and (TestCollisionYWithGear(Gear,1) = 0) do + begin + Gear^.Y:= Gear^.Y + _1; + inc(cnt) + end; SetLittle(Gear^.dX) end else if (hwAbs(Gear^.dX) > cLittle) @@ -1059,8 +1127,12 @@ begin Gear^.State:= Gear^.State and (not gstWinner); Gear^.State:= Gear^.State and (not gstMoving); - while (not CheckGearDrowning(Gear)) and (Gear <> nil) and (TestCollisionYWithGear(Gear,1) = 0) do + cnt:= 0; + while (cnt < 6) and (not CheckGearDrowning(Gear)) and (Gear <> nil) and (TestCollisionYWithGear(Gear,1) = 0) do + begin Gear^.Y:= Gear^.Y + _1; + inc(cnt) + end; // could become nil in CheckGearDrowning if ai's hog fails to respawn in ai survival if Gear = nil then exit; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uGearsList.pas --- a/hedgewars/uGearsList.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uGearsList.pas Tue Feb 09 21:11:16 2016 +0300 @@ -150,7 +150,8 @@ AddFileLog('Attempted to remove Gear #'+inttostr(Gear^.uid)+' from the list twice.'); exit end; -TryDo((Gear = nil) or (curHandledGear = nil) or (Gear = curHandledGear), 'You''re doing it wrong', true); + +checkFails((Gear = nil) or (curHandledGear = nil) or (Gear = curHandledGear), 'You''re doing it wrong', true); if Gear^.NextGear <> nil then Gear^.NextGear^.PrevGear:= Gear^.PrevGear; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uGearsRender.pas --- a/hedgewars/uGearsRender.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uGearsRender.pas Tue Feb 09 21:11:16 2016 +0300 @@ -846,6 +846,7 @@ end else // not gstHHDriven begin + // check if hedgehog is sliding/rolling if (Gear^.Damage > 0) and (HH^.Effects[heFrozen] = 0) and (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) > _0_003) then begin @@ -855,6 +856,23 @@ 2, 1, Gear^.DirAngle); + + // dust effect + // TODO fix: this gives different results based on framerate + if (sx mod 8) = 0 then + begin + if Gear^.dX.isNegative then + tx := hwRound(Gear^.X) + cHHRadius + else + tx := hwRound(Gear^.X) - cHHRadius; + ty:= hwRound(Gear^.Y) + cHHRadius + 2; + if ((tx and LAND_WIDTH_MASK) = 0) and + ((ty and LAND_HEIGHT_MASK) = 0) and + (Land[ty, tx] <> 0) then + AddVisualGear(tx - 2 + Random(4), ty - 8, vgtDust); + end; + + // draw april's fool hat if AprilOne and (curhat <> nil) then DrawTextureRotatedF(curhat, 1.0, -1.0, 0, sx, sy, 18, sign, 32, 32, sign*Gear^.DirAngle) @@ -1250,7 +1268,29 @@ else 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); + gtDynamite: begin + DrawSprite(sprDynamite, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1); + if (random(3) = 0) then + begin + vg:= AddVisualGear(hwRound(Gear^.X)+12-(Gear^.Tag shr 1), hwRound(Gear^.Y)-16, vgtStraightShot); + if vg <> nil then + with vg^ do + begin + Tint:= $FFCC00FF; + Angle:= random(360); + dx:= 0.0005 * (random(200)); + dy:= 0.0005 * (random(200)); + if random(2) = 0 then + dx := -dx; + if random(2) = 0 then + dy := -dy; + FrameTicks:= 100+random(300); + Scale:= 0.1+1/(random(3)+3); + State:= ord(sprStar) + end + end; + + end; gtClusterBomb: DrawSpriteRotated(sprClusterBomb, x, y, 0, Gear^.DirAngle); gtCluster: DrawSprite(sprClusterParticle, x - 8, y - 8, 0); gtFlame: if Gear^.Tag and 1 = 0 then diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uIO.pas --- a/hedgewars/uIO.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uIO.pas Tue Feb 09 21:11:16 2016 +0300 @@ -70,28 +70,36 @@ function AddCmd(Time: Word; str: shortstring): PCmd; var command: PCmd; begin -new(command); -FillChar(command^, sizeof(TCmd), 0); -command^.loTime:= Time; -command^.str:= str; -if (command^.cmd <> 'F') and (command^.cmd <> 'G') then dec(command^.len, 2); // cut timestamp -if headcmd = nil then + if (lastcmd <> nil) and (lastcmd^.cmd = '+') then + begin + command:= lastcmd; + end else begin - headcmd:= command; - lastcmd:= command - end -else - begin - lastcmd^.Next:= command; - lastcmd:= command + new(command); + + if headcmd = nil then + begin + headcmd:= command; + lastcmd:= command + end + else + begin + lastcmd^.Next:= command; + lastcmd:= command + end; end; -AddCmd:= command; + + FillChar(command^, sizeof(TCmd), 0); + command^.loTime:= Time; + command^.str:= str; + if (command^.cmd <> 'F') and (command^.cmd <> 'G') then dec(command^.len, 2); // cut timestamp + + AddCmd:= command; end; procedure RemoveCmd; var tmp: PCmd; begin -TryDo(headcmd <> nil, 'Engine bug: headcmd = nil', true); tmp:= headcmd; headcmd:= headcmd^.Next; if headcmd = nil then @@ -202,7 +210,8 @@ {$I-} assign(f, fileName); reset(f, 1); -tryDo(IOResult = 0, 'Error opening file ' + fileName, true); +if checkFails(IOResult = 0, 'Error opening file ' + fileName, true) then + exit; i:= 0; // avoid compiler hints s[0]:= #0; @@ -212,13 +221,13 @@ begin s[0]:= char(i); ss:= ss + s; - while (Length(ss) > 1)and(Length(ss) > byte(ss[1])) do + while (Length(ss) > 1)and(Length(ss) > byte(ss[1])) and allOK do begin ParseIPCCommand(copy(ss, 2, byte(ss[1]))); Delete(ss, 1, Succ(byte(ss[1]))); end end -until i = 0; +until (i = 0) or (not allOK); close(f) {$I+} @@ -284,7 +293,7 @@ repeat IPCCheckSock; SDL_Delay(1) -until isPonged +until isPonged or (not allOK) end; procedure SendIPCAndWaitReply(s: shortstring); @@ -391,7 +400,7 @@ end; if (headcmd <> nil) and tmpflag and (not CurrentTeam^.hasGone) then - TryDo(GameTicks < LongWord(hiTicks shl 16) + headcmd^.loTime, + checkFails(GameTicks < LongWord(hiTicks shl 16) + headcmd^.loTime, 'oops, queue error. in buffer: ' + headcmd^.cmd + ' (' + IntToStr(GameTicks) + ' > ' + IntToStr(hiTicks shl 16 + headcmd^.loTime) + ')', diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uInputHandler.pas --- a/hedgewars/uInputHandler.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uInputHandler.pas Tue Feb 09 21:11:16 2016 +0300 @@ -35,6 +35,7 @@ procedure ProcessKey(code: LongInt; KeyDown: boolean); procedure ResetKbd; +procedure ResetMouseWheel; procedure FreezeEnterKey; procedure InitKbdKeyTable; @@ -226,20 +227,40 @@ ProcessKey(KeyNameToCode('mousem'), ButtonDown); SDL_BUTTON_RIGHT: ProcessKey(KeyNameToCode('mouser'), ButtonDown); - SDL_BUTTON_WHEELDOWN: - ProcessKey(KeyNameToCode('wheeldown'), ButtonDown); - SDL_BUTTON_WHEELUP: - ProcessKey(KeyNameToCode('wheelup'), ButtonDown); end; end; +var mwheelupCode, mwheeldownCode: Integer; + procedure ProcessMouseWheel(x, y: LongInt); begin //writelntoconsole('[MOUSEWHEEL] '+inttostr(x)+', '+inttostr(y)); if y > 0 then - ProcessKey(KeyNameToCode('wheelup'), true) + begin + // reset other direction + if tkbd[mwheeldownCode] then + ProcessKey(mwheeldownCode, false); + // trigger "button down" event + if (not tkbd[mwheelupCode]) then + ProcessKey(mwheelupCode, true); + end else if y < 0 then - ProcessKey(KeyNameToCode('wheeldown'), true); + begin + // reset other direction + if tkbd[mwheelupCode] then + ProcessKey(mwheelupCode, false); + // trigger "button down" event + if (not tkbd[mwheeldownCode]) then + ProcessKey(mwheeldownCode, true); + end; +end; + +procedure ResetMouseWheel(); +begin + if tkbd[mwheelupCode] then + ProcessKey(mwheelupCode, false); + if tkbd[mwheeldownCode] then + ProcessKey(mwheeldownCode, false); end; procedure ResetKbd; @@ -311,8 +332,10 @@ KeyNames[cKeyMaxIndex ]:= 'mousel'; KeyNames[cKeyMaxIndex - 1]:= 'mousem'; KeyNames[cKeyMaxIndex - 2]:= 'mouser'; - KeyNames[cKeyMaxIndex - 3]:= 'wheelup'; - KeyNames[cKeyMaxIndex - 4]:= 'wheeldown'; + mwheelupCode:= cKeyMaxIndex - 3; + KeyNames[mwheelupCode]:= 'wheelup'; + mwheeldownCode:= cKeyMaxIndex - 4; + KeyNames[mwheeldownCode]:= 'wheeldown'; for i:= 0 to cKeyMaxIndex - 5 do begin @@ -596,6 +619,10 @@ procedure initModule; begin + // assign 0 until InitKbdKeyTable is called + mwheelupCode:= 0; + mwheeldownCode:= 0; + RegisterVariable('dbind', @chDefaultBind, true ); end; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uLand.pas --- a/hedgewars/uLand.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uLand.pas Tue Feb 09 21:11:16 2016 +0300 @@ -260,10 +260,10 @@ var x, y: LongInt; p: PLongwordArray; begin -TryDo(Surface <> nil, 'Assert (LandSurface <> nil) failed', true); +if checkFails(Surface <> nil, 'Assert (LandSurface <> nil) failed', true) then exit; if SDL_MustLock(Surface) then - SDLTry(SDL_LockSurface(Surface) >= 0, 'SDL_LockSurface', true); + if SDLCheck(SDL_LockSurface(Surface) >= 0, 'SDL_LockSurface', true) then exit; p:= Surface^.pixels; for y:= 0 to LAND_HEIGHT - 1 do @@ -291,7 +291,7 @@ tmpsurf:= SDL_CreateRGBSurface(SDL_SWSURFACE, LAND_WIDTH, LAND_HEIGHT, 32, RMask, GMask, BMask, AMask); - TryDo(tmpsurf <> nil, 'Error creating pre-land surface', true); + if checkFails(tmpsurf <> nil, 'Error creating pre-land surface', true) then exit; ColorizeLand(tmpsurf); if gameFlags and gfShoppaBorder = 0 then DrawBorderFromImage(tmpsurf); AddOnLandObjects(tmpsurf); @@ -451,8 +451,10 @@ cpX:= (LAND_WIDTH - tmpsurf^.w) div 2; cpY:= LAND_HEIGHT - tmpsurf^.h; if SDL_MustLock(tmpsurf) then - SDLTry(SDL_LockSurface(tmpsurf) >= 0, 'SDL_LockSurface', true); + SDLCheck(SDL_LockSurface(tmpsurf) >= 0, 'SDL_LockSurface', true); + if allOK then + begin p:= tmpsurf^.pixels; for y:= 0 to Pred(tmpsurf^.h) do begin @@ -461,15 +463,16 @@ p:= PLongwordArray(@(p^[tmpsurf^.pitch div 4])); end; - if SDL_MustLock(tmpsurf) then - SDL_UnlockSurface(tmpsurf); - if not disableLandBack then - begin - // freed in freeModule() below - LandBackSurface:= LoadDataImage(ptCurrTheme, 'LandBackTex', ifIgnoreCaps or ifTransparent); - if (LandBackSurface <> nil) and GrayScale then - Surface2GrayScale(LandBackSurface) - end; + if SDL_MustLock(tmpsurf) then + SDL_UnlockSurface(tmpsurf); + if not disableLandBack then + begin + // freed in freeModule() below + LandBackSurface:= LoadDataImage(ptCurrTheme, 'LandBackTex', ifIgnoreCaps or ifTransparent); + if (LandBackSurface <> nil) and GrayScale then + Surface2GrayScale(LandBackSurface) + end; + end; end; if (tmpsurf <> nil) then SDL_FreeSurface(tmpsurf); @@ -487,9 +490,11 @@ begin mapName:= ExtractFileName(cPathz[ptMapCurrent]); tmpsurf:= LoadDataImage(ptMissionMaps, mapName + '/map', ifAlpha or ifCritical or ifTransparent or ifIgnoreCaps); + if not allOK then exit; end; // (bare) Sanity check. Considering possible LongInt comparisons as well as just how much system memoery it would take -TryDo((tmpsurf^.w < $40000000) and (tmpsurf^.h < $40000000) and (QWord(tmpsurf^.w) * tmpsurf^.h < 6*1024*1024*1024), 'Map dimensions too big!', true); +if checkFails((tmpsurf^.w < $40000000) and (tmpsurf^.h < $40000000) and (QWord(tmpsurf^.w) * tmpsurf^.h < 6*1024*1024*1024), 'Map dimensions too big!', true) + then exit; ResizeLand(tmpsurf^.w, tmpsurf^.h); LoadMapConfig; @@ -500,16 +505,16 @@ rightX:= (playWidth + ((LAND_WIDTH - playWidth) div 2)) - 1; topY:= LAND_HEIGHT - playHeight; -TryDo(tmpsurf^.format^.BytesPerPixel = 4, 'Map should be 32bit', true); +if not checkFails(tmpsurf^.format^.BytesPerPixel = 4, 'Map should be 32bit', true) then + BlitImageAndGenerateCollisionInfo( + (LAND_WIDTH - tmpsurf^.w) div 2, + LAND_HEIGHT - tmpsurf^.h, + tmpsurf^.w, + tmpsurf); -BlitImageAndGenerateCollisionInfo( - (LAND_WIDTH - tmpsurf^.w) div 2, - LAND_HEIGHT - tmpsurf^.h, - tmpsurf^.w, - tmpsurf); SDL_FreeSurface(tmpsurf); -LoadMask; +if allOK then LoadMask; end; procedure DrawBottomBorder; // broken out from other borders for doing a floor-only map, or possibly updating bottom during SD @@ -663,6 +668,8 @@ FreeLandObjects; +if not allOK then exit; + if GrayScale then begin if (cReducedQuality and rqBlurryLand) = 0 then @@ -794,7 +801,7 @@ if digest = '' then digest:= s else - TryDo(s = digest, 'Different maps generated, sorry', true); + checkFails(s = digest, 'Different maps generated, sorry', true); end; procedure chSendLandDigest(var s: shortstring); @@ -808,7 +815,7 @@ ScriptSetString('LandDigest', s); chLandCheck(s); - SendIPCRaw(@s[0], Length(s) + 1) + if allOK then SendIPCRaw(@s[0], Length(s) + 1) end; procedure initModule; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uLandGenTemplateBased.pas --- a/hedgewars/uLandGenTemplateBased.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uLandGenTemplateBased.pas Tue Feb 09 21:11:16 2016 +0300 @@ -9,7 +9,7 @@ var minDistance, dabDiv: LongInt; // different details size implementation -uses uVariables, uTypes, uConsts, uFloat, uLandUtils, uRandom, SDLh, math; +uses {$IFDEF IPHONEOS}uTypes, {$ENDIF} uVariables, uConsts, uFloat, uLandUtils, uRandom, SDLh, math; procedure SetPoints(var Template: TEdgeTemplate; var pa: TPixAr; fps: PPointArray); diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uLandGraphics.pas --- a/hedgewars/uLandGraphics.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uLandGraphics.pas Tue Feb 09 21:11:16 2016 +0300 @@ -705,7 +705,7 @@ if outOfMap then doPlace:= false; // just using for a check -TryDo(SpritesData[Obj].Surface <> nil, 'Assert SpritesData[Obj].Surface failed', true); +if checkFails(SpritesData[Obj].Surface <> nil, 'Assert SpritesData[Obj].Surface failed', true) then exit; Image:= SpritesData[Obj].Surface; w:= SpritesData[Obj].Width; @@ -716,10 +716,15 @@ col:= Frame div numFramesFirstCol; if SDL_MustLock(Image) then - SDLTry(SDL_LockSurface(Image) >= 0, 'TryPlaceOnLand', true); + if SDLCheck(SDL_LockSurface(Image) >= 0, 'TryPlaceOnLand', true) then exit; bpp:= Image^.format^.BytesPerPixel; -TryDo(bpp = 4, 'It should be 32 bpp sprite', true); +if checkFails(bpp = 4, 'It should be 32 bpp sprite', true) then +begin + if SDL_MustLock(Image) then + SDL_UnlockSurface(Image); + exit +end; // Check that sprite fits free space p:= PByteArray(@(PByteArray(Image^.pixels)^[ Image^.pitch * row * h + col * w * 4 ])); case bpp of @@ -824,7 +829,7 @@ begin numFramesFirstCol:= SpritesData[Obj].imageHeight div SpritesData[Obj].Height; -TryDo(SpritesData[Obj].Surface <> nil, 'Assert SpritesData[Obj].Surface failed', true); +if checkFails(SpritesData[Obj].Surface <> nil, 'Assert SpritesData[Obj].Surface failed', true) then exit; Image:= SpritesData[Obj].Surface; w:= SpritesData[Obj].Width; @@ -835,14 +840,19 @@ col:= Frame div numFramesFirstCol; if SDL_MustLock(Image) then - SDLTry(SDL_LockSurface(Image) >= 0, 'EraseLand', true); + if SDLCheck(SDL_LockSurface(Image) >= 0, 'EraseLand', true) then exit; bpp:= Image^.format^.BytesPerPixel; -TryDo(bpp = 4, 'It should be 32 bpp sprite', true); +if checkFails(bpp = 4, 'It should be 32 bpp sprite', true) then +begin + if SDL_MustLock(Image) then + SDL_UnlockSurface(Image); + exit +end; // Check that sprite fits free space p:= PByteArray(@(PByteArray(Image^.pixels)^[ Image^.pitch * row * h + col * w * 4 ])); -case bpp of - 4: for y:= 0 to Pred(h) do + + for y:= 0 to Pred(h) do begin for x:= 0 to Pred(w) do if ((PLongword(@(p^[x * 4]))^) and AMask) <> 0 then @@ -854,13 +864,11 @@ exit end; p:= PByteArray(@(p^[Image^.pitch])) - end - end; + end; // Checked, now place p:= PByteArray(@(PByteArray(Image^.pixels)^[ Image^.pitch * row * h + col * w * 4 ])); -case bpp of - 4: for y:= 0 to Pred(h) do + for y:= 0 to Pred(h) do begin for x:= 0 to Pred(w) do if ((PLongword(@(p^[x * 4]))^) and AMask) <> 0 then @@ -875,7 +883,7 @@ gX:= (cpX + x) div 2; gY:= (cpY + y) div 2; end; - if (not eraseOnLFMatch or (Land[cpY + y, cpX + x] and LandFlags <> 0)) and + if (not eraseOnLFMatch or (Land[cpY + y, cpX + x] and LandFlags <> 0)) and ((PLongword(@(p^[x * 4]))^) and AMask <> 0) then begin if not onlyEraseLF then @@ -888,7 +896,6 @@ end; p:= PByteArray(@(p^[Image^.pitch])); end; - end; if SDL_MustLock(Image) then SDL_UnlockSurface(Image); @@ -910,7 +917,7 @@ GetPlaceCollisionTex:= nil; numFramesFirstCol:= SpritesData[Obj].imageHeight div SpritesData[Obj].Height; -TryDo(SpritesData[Obj].Surface <> nil, 'Assert SpritesData[Obj].Surface failed', true); +checkFails(SpritesData[Obj].Surface <> nil, 'Assert SpritesData[Obj].Surface failed', true); Image:= SpritesData[Obj].Surface; w:= SpritesData[Obj].Width; h:= SpritesData[Obj].Height; @@ -918,19 +925,32 @@ col:= Frame div numFramesFirstCol; if SDL_MustLock(Image) then - SDLTry(SDL_LockSurface(Image) >= 0, 'SDL_LockSurface', true); + if SDLCheck(SDL_LockSurface(Image) >= 0, 'SDL_LockSurface', true) then + exit; bpp:= Image^.format^.BytesPerPixel; -TryDo(bpp = 4, 'It should be 32 bpp sprite', true); +checkFails(bpp = 4, 'It should be 32 bpp sprite', true); finalSurface:= SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 32, RMask, GMask, BMask, AMask); -TryDo(finalSurface <> nil, 'GetPlaceCollisionTex: fail to create surface', true); +checkFails(finalSurface <> nil, 'GetPlaceCollisionTex: fail to create surface', true); if SDL_MustLock(finalSurface) then - SDLTry(SDL_LockSurface(finalSurface) >= 0, 'GetPlaceCollisionTex', true); + SDLCheck(SDL_LockSurface(finalSurface) >= 0, 'GetPlaceCollisionTex', true); + +if not allOK then + begin + if SDL_MustLock(Image) then + SDL_UnlockSurface(Image); + + if SDL_MustLock(finalSurface) then + SDL_UnlockSurface(finalSurface); + + if finalSurface <> nil then + SDL_FreeSurface(finalSurface); + end; p:= PLongWordArray(@(PLongWordArray(Image^.pixels)^[ (Image^.pitch div 4) * row * h + col * w ])); pt:= PLongWordArray(finalSurface^.pixels); diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uLandObjects.pas --- a/hedgewars/uLandObjects.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uLandObjects.pas Tue Feb 09 21:11:16 2016 +0300 @@ -109,10 +109,14 @@ WriteToConsole('Generating collision info... '); if SDL_MustLock(Image) then - SDLTry(SDL_LockSurface(Image) >= 0, 'SDL_LockSurface', true); + if SDLCheck(SDL_LockSurface(Image) >= 0, 'SDL_LockSurface', true) then exit; bpp:= Image^.format^.BytesPerPixel; -TryDo(bpp = 4, 'Land object should be 32bit', true); +if checkFails(bpp = 4, 'Land object should be 32bit', true) then +begin +if SDL_MustLock(Image) then + SDL_UnlockSurface(Image); +end; if Width = 0 then Width:= Image^.w; @@ -160,10 +164,14 @@ WriteToConsole('Generating collision info... '); if SDL_MustLock(Image) then - SDLTry(SDL_LockSurface(Image) >= 0, 'SDL_LockSurface', true); + if SDLCheck(SDL_LockSurface(Image) >= 0, 'SDL_LockSurface', true) then exit; bpp:= Image^.format^.BytesPerPixel; -TryDo(bpp = 4, 'Land object should be 32bit', true); +if checkFails(bpp = 4, 'Land object should be 32bit', true) then +begin +if SDL_MustLock(Image) then + SDL_UnlockSurface(Image); +end; p:= Image^.pixels; mp:= Mask^.pixels; @@ -203,7 +211,7 @@ h:= h1 end; inc(RectCount); -TryDo(RectCount < MaxRects, 'AddRect: overflow', true) +checkFails(RectCount < MaxRects, 'AddRect: overflow', true) end; procedure InitRects; @@ -512,12 +520,12 @@ s:= cPathz[ptCurrTheme] + '/' + cThemeCFGFilename; WriteLnToConsole('Reading objects info...'); f:= pfsOpenRead(s); -TryDo(f <> nil, 'Bad data or cannot access file ' + s, true); +if checkFails(f <> nil, 'Bad data or cannot access file ' + s, true) then exit; ThemeObjects.Count:= 0; SprayObjects.Count:= 0; -while not pfsEOF(f) do +while (not pfsEOF(f)) and allOK do begin pfsReadLn(f, s); if Length(s) = 0 then diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uLandOutline.pas --- a/hedgewars/uLandOutline.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uLandOutline.pas Tue Feb 09 21:11:16 2016 +0300 @@ -30,7 +30,7 @@ procedure Push(_xl, _xr, _y, _dir: LongInt); begin - TryDo(Stack.Count <= 8192, 'FillLand: stack overflow', true); + if checkFails(Stack.Count <= 8192, 'FillLand: stack overflow', true) then exit; _y:= _y + _dir; if (_y < 0) or (_y >= LAND_HEIGHT) then exit; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uLandTexture.pas --- a/hedgewars/uLandTexture.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uLandTexture.pas Tue Feb 09 21:11:16 2016 +0300 @@ -72,10 +72,11 @@ if cOnlyStats then exit; if (Width <= 0) or (Height <= 0) then exit; - TryDo((X >= 0) and (X < LAND_WIDTH), 'UpdateLandTexture: wrong X parameter', true); - TryDo(X + Width <= LAND_WIDTH, 'UpdateLandTexture: wrong Width parameter', true); - TryDo((Y >= 0) and (Y < LAND_HEIGHT), 'UpdateLandTexture: wrong Y parameter', true); - TryDo(Y + Height <= LAND_HEIGHT, 'UpdateLandTexture: wrong Height parameter', true); + checkFails((X >= 0) and (X < LAND_WIDTH), 'UpdateLandTexture: wrong X parameter', true); + checkFails(X + Width <= LAND_WIDTH, 'UpdateLandTexture: wrong Width parameter', true); + checkFails((Y >= 0) and (Y < LAND_HEIGHT), 'UpdateLandTexture: wrong Y parameter', true); + checkFails(Y + Height <= LAND_HEIGHT, 'UpdateLandTexture: wrong Height parameter', true); + if not allOK then exit; tSize:= TEXSIZE; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uLocale.pas --- a/hedgewars/uLocale.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uLocale.pas Tue Feb 09 21:11:16 2016 +0300 @@ -50,7 +50,7 @@ first[e]:= true; f:= pfsOpenRead(FileName); -TryDo(f <> nil, 'Cannot load locale "' + FileName + '"', false); +checkFails(f <> nil, 'Cannot load locale "' + FileName + '"', false); s:= ''; @@ -63,18 +63,19 @@ continue; if (s[1] < '0') or (s[1] > '9') then continue; - TryDo(Length(s) > 6, 'Load locale: empty string', true); + checkFails(Length(s) > 6, 'Load locale: empty string', true); {$IFNDEF PAS2C} val(s[1]+s[2], a, c); - TryDo(c = 0, ansistring('Load locale: numbers should be two-digit: ') + s, true); + checkFails(c = 0, ansistring('Load locale: numbers should be two-digit: ') + s, true); val(s[4]+s[5], b, c); - TryDo(c = 0, ansistring('Load locale: numbers should be two-digit: ') + s, true); + checkFails(c = 0, ansistring('Load locale: numbers should be two-digit: ') + s, true); {$ELSE} val(s[1]+s[2], a); val(s[4]+s[5], b); {$ENDIF} - TryDo(s[3] = ':', 'Load locale: ":" expected', true); - TryDo(s[6] = '=', 'Load locale: "=" expected', true); + checkFails(s[3] = ':', 'Load locale: ":" expected', true); + checkFails(s[6] = '=', 'Load locale: "=" expected', true); + if not allOK then exit; Delete(s, 1, 6); case a of 0: if (b >=0) and (b <= ord(High(TAmmoStrId))) then @@ -83,7 +84,7 @@ trmsg[TMsgStrId(b)]:= s; 2: if (b >=0) and (b <= ord(High(TEventId))) then begin - TryDo(trevt_n[TEventId(b)] < MAX_EVENT_STRINGS, 'Too many event strings in ' + IntToStr(a) + ':' + IntToStr(b), false); + checkFails(trevt_n[TEventId(b)] < MAX_EVENT_STRINGS, 'Too many event strings in ' + IntToStr(a) + ':' + IntToStr(b), false); if first[TEventId(b)] then begin trevt_n[TEventId(b)]:= 0; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uRenderUtils.pas --- a/hedgewars/uRenderUtils.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uRenderUtils.pas Tue Feb 09 21:11:16 2016 +0300 @@ -99,7 +99,8 @@ tmpsurf:= TTF_RenderUTF8_Blended(Fontz[Font].Handle, PChar(s), clr); finalRect.x:= X + cFontBorder + 2; finalRect.y:= Y + cFontBorder; - SDLTry(tmpsurf <> nil, 'TTF_RenderUTF8_Blended', true); + if SDLCheck(tmpsurf <> nil, 'TTF_RenderUTF8_Blended', true) then + exit; SDL_UpperBlit(tmpsurf, @textRect, Surface, @finalRect); SDL_FreeSurface(tmpsurf); finalRect.x:= X; @@ -114,7 +115,8 @@ tmpPixel: Longword; pixels: PLongWordArray; begin - TryDo(Surface^.format^.BytesPerPixel = 4, 'flipSurface failed, expecting 32 bit surface', true); + if checkFails(Surface^.format^.BytesPerPixel = 4, 'flipSurface failed, expecting 32 bit surface', true) then + exit; SDL_LockSurface(Surface); pixels:= Surface^.pixels; if Vertical then @@ -129,7 +131,7 @@ end else for x := 0 to (Surface^.w div 2) - 1 do - for y := 0 to Surface^.h -1 do + for y := 0 to Surface^.h - 1 do begin i:= y*Surface^.w + x; j:= y*Surface^.w + (Surface^.w - x - 1); @@ -245,8 +247,9 @@ var y, x, i, j: LongInt; srcPixels, destPixels: PLongWordArray; begin - TryDo(src^.format^.BytesPerPixel = 4, 'rotateSurface failed, expecting 32 bit surface', true); - TryDo(dest^.format^.BytesPerPixel = 4, 'rotateSurface failed, expecting 32 bit surface', true); + checkFails(src^.format^.BytesPerPixel = 4, 'rotateSurface failed, expecting 32 bit surface', true); + checkFails(dest^.format^.BytesPerPixel = 4, 'rotateSurface failed, expecting 32 bit surface', true); + if not allOK then exit; SDL_LockSurface(src); SDL_LockSurface(dest); @@ -292,11 +295,12 @@ finalSurface:= SDL_CreateRGBSurface(SDL_SWSURFACE, w + cFontBorder * 2 + 4, h + cFontBorder * 2, 32, RMask, GMask, BMask, AMask); - TryDo(finalSurface <> nil, 'RenderString: fail to create surface', true); + if checkFails(finalSurface <> nil, 'RenderString: fail to create surface', true) then + exit(nil); WriteInRoundRect(finalSurface, 0, 0, Color, font, s, maxLength); - TryDo(SDL_SetColorKey(finalSurface, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true); + checkFails(SDL_SetColorKey(finalSurface, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, false); RenderStringTexLim:= Surface2Tex(finalSurface, false); @@ -443,7 +447,8 @@ finalSurface:= SDL_CreateRGBSurface(SDL_SWSURFACE, rect.w, rect.h, 32, RMask, GMask, BMask, AMask); - TryDo(finalSurface <> nil, 'RenderString: fail to create surface', true); + if checkFails(finalSurface <> nil, 'RenderString: fail to create surface', true) then + exit(nil); //////////////////////////////// CORNERS /////////////////////////////// copyToXY(SpritesData[corner].Surface, finalSurface, 0, 0); /////////////////// NW @@ -522,9 +527,11 @@ rect.x:= edgeHeight + 1 + ((i - w) div 2); // trying to more evenly position the text, vertically rect.y:= edgeHeight + ((j-(numLines*h)) div 2) + line * h; - SDLTry(tmpsurf <> nil, 'TTF_Init', true); - SDL_UpperBlit(tmpsurf, nil, finalSurface, @rect); - SDL_FreeSurface(tmpsurf); + if not SDLCheck(tmpsurf <> nil, 'TTF_RenderUTF8_Blended', true) then + begin + SDL_UpperBlit(tmpsurf, nil, finalSurface, @rect); + SDL_FreeSurface(tmpsurf); + end; inc(line); end; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uScript.pas --- a/hedgewars/uScript.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uScript.pas Tue Feb 09 21:11:16 2016 +0300 @@ -23,7 +23,7 @@ * This unit defines, implements and registers functions and * variables/constants bindings for usage in Lua scripts. * - * Please keep http://code.google.com/p/hedgewars/wiki/LuaAPI up to date! + * Please keep http://hedgewars.org/kb/LuaAPI up to date! * * Note: If you add a new function, make sure to test if _all_ parameters * work as intended! (Especially conversions errors can sneak in @@ -440,6 +440,19 @@ lc_setweapon:= 0; end; +// enable/disable cinematic effects +function lc_setcinematicmode(L : Plua_State) : LongInt; Cdecl; +const + call = 'SetCinematicMode'; + params = 'enable'; +begin + if (CheckLuaParamCount(L, 1, call, params)) then + begin + CinematicScript:= lua_toboolean(L, 1); + end; + lc_setcinematicmode:= 0; +end; + // no parameter means reset to default (and 0 means unlimited) function lc_setmaxbuilddistance(L : Plua_State) : LongInt; Cdecl; var np: LongInt; @@ -3097,7 +3110,7 @@ begin // initialize lua luaState:= lua_open; -TryDo(luaState <> nil, 'lua_open failed', true); +if checkFails(luaState <> nil, 'lua_open failed', true) then exit; // open internal libraries luaopen_base(luaState); @@ -3340,6 +3353,7 @@ lua_register(luaState, _P'SetWaterLine', @lc_setwaterline); lua_register(luaState, _P'SetNextWeapon', @lc_setnextweapon); lua_register(luaState, _P'SetWeapon', @lc_setweapon); +lua_register(luaState, _P'SetCinematicMode', @lc_setcinematicmode); lua_register(luaState, _P'SetMaxBuildDistance', @lc_setmaxbuilddistance); // drawn map functions lua_register(luaState, _P'AddPoint', @lc_addPoint); diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uSound.pas --- a/hedgewars/uSound.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uSound.pas Tue Feb 09 21:11:16 2016 +0300 @@ -290,10 +290,10 @@ exit(AskForVoicepack('Default')); end; - while (voicepacks[i].name <> name) and (voicepacks[i].name <> '') do + while (voicepacks[i].name <> name) and (voicepacks[i].name <> '') and (i < cMaxTeams) do begin inc(i); - TryDo(i <= cMaxTeams, 'Engine bug: AskForVoicepack i > cMaxTeams', true) + //TryDo(i <= cMaxTeams, 'Engine bug: AskForVoicepack i > cMaxTeams', true) end; voicepacks[i].name:= name; @@ -310,7 +310,7 @@ success:= SDL_InitSubSystem(SDL_INIT_AUDIO) >= 0; if success then - success:= Mix_OpenAudio(44100, $8010, channels, 1024) = 0; + success:= Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, channels, 1024) = 0; if success then WriteLnToConsole(msgOK) @@ -322,10 +322,11 @@ end; WriteToConsole('Init SDL_mixer... '); - SDLTry(Mix_Init(MIX_INIT_OGG) <> 0, 'Mix_Init', true); + if SDLCheck(Mix_Init(MIX_INIT_OGG) <> 0, 'Mix_Init', true) then exit; WriteLnToConsole(msgOK); Mix_AllocateChannels(Succ(chanTPU)); + previousVolume:= cInitVolume; ChangeVolume(cInitVolume); end; @@ -424,7 +425,7 @@ s:= cPathz[Soundz[snd].Path] + '/' + Soundz[snd].FileName; WriteToConsole(msgLoading + s + ' '); defVoicepack^.chunks[snd]:= Mix_LoadWAV_RW(rwopsOpenRead(s), 1); - SDLTry(defVoicepack^.chunks[snd] <> nil, 'Mix_LoadWAV_RW', true); + if not SDLCheck(defVoicepack^.chunks[snd] <> nil, 'Mix_LoadWAV_RW', true) then exit; WriteLnToConsole(msgOK); end; lastChan[snd]:= Mix_PlayChannelTimed(-1, defVoicepack^.chunks[snd], 0, -1) @@ -523,7 +524,7 @@ s:= cPathz[Soundz[snd].Path] + '/' + Soundz[snd].FileName; WriteToConsole(msgLoading + s + ' '); defVoicepack^.chunks[snd]:= Mix_LoadWAV_RW(rwopsOpenRead(s), 1); - SDLTry(defVoicepack^.chunks[snd] <> nil, 'Mix_LoadWAV_RW', true); + if SDLCheck(defVoicepack^.chunks[snd] <> nil, 'Mix_LoadWAV_RW', true) then exit; WriteLnToConsole(msgOK); end; if fadems > 0 then @@ -574,10 +575,10 @@ WriteToConsole(msgLoading + s + ' '); Mus:= Mix_LoadMUS_RW(rwopsOpenRead(s)); - SDLTry(Mus <> nil, 'Mix_LoadMUS_RW', false); + SDLCheck(Mus <> nil, 'Mix_LoadMUS_RW', false); WriteLnToConsole(msgOK); - SDLTry(Mix_FadeInMusic(Mus, -1, 3000) <> -1, 'Mix_FadeInMusic', false) + SDLCheck(Mix_FadeInMusic(Mus, -1, 3000) <> -1, 'Mix_FadeInMusic', false) end; procedure SetVolume(vol: LongInt); diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uStats.pas --- a/hedgewars/uStats.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uStats.pas Tue Feb 09 21:11:16 2016 +0300 @@ -38,7 +38,7 @@ procedure declareAchievement(id, teamname, location: shortstring; value: LongInt); implementation -uses uSound, uLocale, uVariables, uUtils, uIO, uCaptions, uDebug, uMisc, uConsole, uScript; +uses uSound, uLocale, uVariables, uUtils, uIO, uCaptions, uMisc, uConsole, uScript; var DamageClan : Longword = 0; DamageTotal : Longword = 0; @@ -99,7 +99,7 @@ var i, t: LongInt; s: ansistring; begin -TryDo(not bBetweenTurns, 'Engine bug: TurnReaction between turns', true); +//TryDo(not bBetweenTurns, 'Engine bug: TurnReaction between turns', true); inc(FinishedTurnsTotal); if FinishedTurnsTotal <> 0 then diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uStore.pas --- a/hedgewars/uStore.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uStore.pas Tue Feb 09 21:11:16 2016 +0300 @@ -112,15 +112,19 @@ clr.g:= (Color shr 8) and $FF; clr.b:= Color and $FF; tmpsurf:= TTF_RenderUTF8_Blended(Fontz[Font].Handle, s, clr); -SDLTry(tmpsurf <> nil, 'TTF_RenderUTF8_Blended', true); +if tmpsurf = nil then exit; tmpsurf:= doSurfaceConversion(tmpsurf); -SDLTry(tmpsurf <> nil, 'TTF_RenderUTF8_Blended, doSurfaceConversion', true); -SDL_UpperBlit(tmpsurf, nil, Surface, @finalRect); -SDL_FreeSurface(tmpsurf); -finalRect.x:= X; -finalRect.y:= Y; -finalRect.w:= w + cFontBorder * 2 + 4; -finalRect.h:= h + cFontBorder * 2; + +if tmpsurf <> nil then +begin + SDL_UpperBlit(tmpsurf, nil, Surface, @finalRect); + SDL_FreeSurface(tmpsurf); + finalRect.x:= X; + finalRect.y:= Y; + finalRect.w:= w + cFontBorder * 2 + 4; + finalRect.h:= h + cFontBorder * 2; +end; + WriteInRect:= finalRect end; @@ -145,8 +149,10 @@ rr.h:= h; texsurf:= SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 32, RMask, GMask, BMask, AMask); - TryDo(texsurf <> nil, errmsgCreateSurface, true); - TryDo(SDL_SetColorKey(texsurf, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true); + if not checkFails(texsurf <> nil, errmsgCreateSurface, true) then + checkFails(SDL_SetColorKey(texsurf, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true); + + if not allOK then exit(nil); DrawRoundRect(@rr, cWhiteColor, cNearBlackColor, texsurf, true); @@ -192,8 +198,9 @@ r.w:= 32; r.h:= 32; texsurf:= SDL_CreateRGBSurface(SDL_SWSURFACE, r.w, r.h, 32, RMask, GMask, BMask, AMask); - TryDo(texsurf <> nil, errmsgCreateSurface, true); - TryDo(SDL_SetColorKey(texsurf, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true); + if not checkFails(texsurf <> nil, errmsgCreateSurface, true) then + checkFails(SDL_SetColorKey(texsurf, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true); + if not allOK then exit; r.w:= 26; r.h:= 19; @@ -225,20 +232,20 @@ Flag:= 'hedgewars'; flagsurf:= LoadDataImageAltFile(ptFlags, Flag, 'hedgewars', ifNone); - TryDo(flagsurf <> nil, 'Failed to load flag "' + Flag + '" as well as the default flag', true); + if not checkFails(flagsurf <> nil, 'Failed to load flag "' + Flag + '" as well as the default flag', true) then + begin + case maxLevel of + 1: copyToXY(SpritesData[sprBotlevels].Surface, flagsurf, 0, 0); + 2: copyToXYFromRect(SpritesData[sprBotlevels].Surface, flagsurf, 5, 2, 17, 13, 5, 2); + 3: copyToXYFromRect(SpritesData[sprBotlevels].Surface, flagsurf, 9, 5, 13, 10, 9, 5); + 4: copyToXYFromRect(SpritesData[sprBotlevels].Surface, flagsurf, 13, 9, 9, 6, 13, 9); + 5: copyToXYFromRect(SpritesData[sprBotlevels].Surface, flagsurf, 17, 11, 5, 4, 17, 11) + end; - case maxLevel of - 1: copyToXY(SpritesData[sprBotlevels].Surface, flagsurf, 0, 0); - 2: copyToXYFromRect(SpritesData[sprBotlevels].Surface, flagsurf, 5, 2, 17, 13, 5, 2); - 3: copyToXYFromRect(SpritesData[sprBotlevels].Surface, flagsurf, 9, 5, 13, 10, 9, 5); - 4: copyToXYFromRect(SpritesData[sprBotlevels].Surface, flagsurf, 13, 9, 9, 6, 13, 9); - 5: copyToXYFromRect(SpritesData[sprBotlevels].Surface, flagsurf, 17, 11, 5, 4, 17, 11) - end; - - copyToXY(flagsurf, texsurf, 2, 2); - SDL_FreeSurface(flagsurf); - flagsurf:= nil; - + copyToXY(flagsurf, texsurf, 2, 2); + SDL_FreeSurface(flagsurf); + flagsurf:= nil; + end; // restore black border pixels inside the flag PLongwordArray(texsurf^.pixels)^[32 * 2 + 2]:= cNearBlackColor; @@ -251,6 +258,8 @@ SDL_FreeSurface(texsurf); texsurf:= nil; + if not allOK then exit; + AIKillsTex := RenderStringTex(ansistring(inttostr(stats.AIKills)), Clan^.Color, fnt16); dec(drY, r.h + 2); @@ -356,7 +365,7 @@ s:= cPathz[ptFonts] + '/' + Name; WriteToConsole(msgLoading + s + ' (' + inttostr(Height) + 'pt)... '); Handle:= TTF_OpenFontRW(rwopsOpenRead(s), true, Height); - SDLTry(Handle <> nil, 'TTF_OpenFontRW', true); + if SDLCheck(Handle <> nil, 'TTF_OpenFontRW', true) then exit; TTF_SetFontStyle(Handle, style); WriteLnToConsole(msgOK) end; @@ -387,6 +396,7 @@ and ((cCloudsNumber > 0) or (ii <> sprCloud)) and ((vobCount > 0) or (ii <> sprFlake)) and (savesurf or (not cOnlyStats)) // in stats-only only load those which are needed later + and allOK then begin if reload then @@ -445,7 +455,7 @@ Surface:= nil end; -if not cOnlyStats then +if (not cOnlyStats) and allOK then begin WriteNames(fnt16); @@ -471,9 +481,9 @@ for ai:= Low(TAmmoType) to High(TAmmoType) do with Ammoz[ai] do begin - TryDo(length(trAmmo[NameId]) > 0,'No default text/translation found for ammo type #' + intToStr(ord(ai)) + '!',true); + if checkFails(length(trAmmo[NameId]) > 0,'No default text/translation found for ammo type #' + intToStr(ord(ai)) + '!',true) then exit; tmpsurf:= TTF_RenderUTF8_Blended(Fontz[CheckCJKFont(trAmmo[NameId],fnt16)].Handle, PChar(trAmmo[NameId]), cWhiteColorChannels); - TryDo(tmpsurf <> nil,'Name-texture creation for ammo type #' + intToStr(ord(ai)) + ' failed!',true); + if checkFails(tmpsurf <> nil,'Name-texture creation for ammo type #' + intToStr(ord(ai)) + ' failed!',true) then exit; tmpsurf:= doSurfaceConversion(tmpsurf); FreeAndNilTexture(NameTex); NameTex:= Surface2Tex(tmpsurf, false); @@ -605,7 +615,7 @@ // anounce that loading failed OutError(msgFailed, false); - SDLTry(false, 'LoadImage', (imageFlags and ifCritical) <> 0); + if SDLCheck(false, 'LoadImage', (imageFlags and ifCritical) <> 0) then exit; // rwops was already freed by IMG_Load_RW rwops:= nil; end else @@ -625,7 +635,7 @@ tmpsurf:= doSurfaceConversion(tmpsurf); if (imageFlags and ifTransparent) <> 0 then - TryDo(SDL_SetColorKey(tmpsurf, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true); + if checkFails(SDL_SetColorKey(tmpsurf, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true) then exit; WriteLnToConsole(msgOK + ' (' + inttostr(tmpsurf^.w) + 'x' + inttostr(tmpsurf^.h) + ')'); @@ -734,7 +744,6 @@ end; procedure SetupOpenGL; -var buf: array[byte] of char; begin AddFileLog('Setting up OpenGL (using driver: ' + shortstring(SDL_GetCurrentVideoDriver()) + ')'); @@ -744,7 +753,7 @@ //SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); if SDLGLcontext = nil then SDLGLcontext:= SDL_GL_CreateContext(SDLwindow); - SDLTry(SDLGLcontext <> nil, 'SDLGLcontext', true); + if SDLCheck(SDLGLcontext <> nil, 'SDLGLcontext', true) then exit; SDL_GL_SetSwapInterval(1); RendererSetup(); @@ -775,7 +784,7 @@ {$ENDIF} end; - TryDo(ProgrTex <> nil, 'Error - Progress Texure is nil!', true); + if checkFails(ProgrTex <> nil, 'Error - Progress Texure is nil!', true) then exit; RenderClear(); if Step < numsquares then @@ -876,7 +885,7 @@ inc(h, ha + 8); tmpsurf:= SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, 32, RMask, GMask, BMask, AMask); -TryDo(tmpsurf <> nil, 'RenderHelpWindow: fail to create surface', true); +if checkFails(tmpsurf <> nil, 'RenderHelpWindow: fail to create surface', true) then exit(nil); // render border and background r.x:= 0; @@ -988,7 +997,7 @@ SDL_WINDOWPOS_CENTERED_MASK, SDL_WINDOWPOS_CENTERED_MASK, cScreenWidth, cScreenHeight, SDL_WINDOW_HIDDEN or SDL_WINDOW_OPENGL); - SDLTry(SDLwindow <> nil, 'SDL_CreateWindow', true); + if SDLCheck(SDLwindow <> nil, 'SDL_CreateWindow', true) then exit; SetupOpenGL(); end; {$ENDIF} // USE_VIDEO_RECORDING @@ -1024,7 +1033,7 @@ begin // set window title WriteToConsole('Init SDL_image... '); - SDLTry(IMG_Init(IMG_INIT_PNG) <> 0, 'IMG_Init', true); + if SDLCheck(IMG_Init(IMG_INIT_PNG) <> 0, 'IMG_Init', true) then exit; WriteLnToConsole(msgOK); end else @@ -1063,26 +1072,48 @@ *) SetupOpenGLAttributes(); {$ENDIF} + // these values in x and y make the window appear in the center x:= SDL_WINDOWPOS_CENTERED_MASK; y:= SDL_WINDOWPOS_CENTERED_MASK; - // SDL_WINDOW_RESIZABLE makes the window resizable and - // respond to rotation events on mobile devices - flags:= SDL_WINDOW_OPENGL or SDL_WINDOW_SHOWN or SDL_WINDOW_RESIZABLE; - - {$IFDEF MOBILE} - if isPhone() then - SDL_SetHint('SDL_IOS_ORIENTATIONS','LandscapeLeft LandscapeRight'); - // no need for borders on mobile devices - flags:= flags or SDL_WINDOW_BORDERLESS; - {$ENDIF} - - if cFullScreen then - flags:= flags or SDL_WINDOW_FULLSCREEN; if SDLwindow = nil then + begin + + // SDL_WINDOW_RESIZABLE makes the window resizable and + // respond to rotation events on mobile devices + flags:= SDL_WINDOW_OPENGL or SDL_WINDOW_SHOWN or SDL_WINDOW_RESIZABLE; + + {$IFDEF MOBILE} + if isPhone() then + SDL_SetHint('SDL_IOS_ORIENTATIONS','LandscapeLeft LandscapeRight'); + // no need for borders on mobile devices + flags:= flags or SDL_WINDOW_BORDERLESS; + {$ENDIF} + + if cFullScreen then + flags:= flags or SDL_WINDOW_FULLSCREEN; + SDLwindow:= SDL_CreateWindow(PChar('Hedgewars'), x, y, cScreenWidth, cScreenHeight, flags); - SDLTry(SDLwindow <> nil, 'SDL_CreateWindow', true); + end + // we're toggling + else if Length(s) = 0 then + begin + if cFullScreen then + begin + SDL_SetWindowSize(SDLwindow, cScreenWidth, cScreenHeight); + SDL_SetWindowFullscreen(SDLwindow, SDL_WINDOW_FULLSCREEN); + end + else + begin + SDL_SetWindowFullscreen(SDLwindow, 0); + SDL_SetWindowSize(SDLwindow, cScreenWidth, cScreenHeight); + SDL_SetWindowPosition(SDLwindow, x, y); + end; + updateViewLimits(); + end; + + if SDLCheck(SDLwindow <> nil, 'SDL_CreateWindow', true) then exit; // load engine ico {$IFNDEF DARWIN} diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uTeams.pas --- a/hedgewars/uTeams.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uTeams.pas Tue Feb 09 21:11:16 2016 +0300 @@ -119,7 +119,7 @@ PrevHH, PrevTeam : LongWord; begin TargetPoint.X:= NoPointX; -TryDo(CurrentTeam <> nil, 'nil Team', true); +if checkFails(CurrentTeam <> nil, 'nil Team', true) then exit; with CurrentHedgehog^ do if (PreviousTeam <> nil) and PlacingHogs and Unplaced then begin @@ -355,9 +355,9 @@ var team: PTeam; c, t: LongInt; begin -TryDo(TeamsCount < cMaxTeams, 'Too many teams', true); +if checkFails(TeamsCount < cMaxTeams, 'Too many teams', true) then exit(nil); New(team); -TryDo(team <> nil, 'AddTeam: team = nil', true); +if checkFails(team <> nil, 'AddTeam: team = nil', true) then exit(nil); FillChar(team^, sizeof(TTeam), 0); team^.AttackBar:= 2; team^.CurrHedgehog:= 0; @@ -551,10 +551,10 @@ s:= ''; if (not isDeveloperMode) then exit; -TryDo((CurrentTeam <> nil), 'Can''t add hedgehogs yet, add a team first!', true); +if checkFails((CurrentTeam <> nil), 'Can''t add hedgehogs yet, add a team first!', true) then exit; with CurrentTeam^ do begin - TryDo(HedgehogsNumber<=cMaxHHIndex, 'Can''t add hedgehog to "' + TeamName + '"! (already ' + intToStr(HedgehogsNumber) + ' hogs)', true); + if checkFails(HedgehogsNumber<=cMaxHHIndex, 'Can''t add hedgehog to "' + TeamName + '"! (already ' + intToStr(HedgehogsNumber) + ' hogs)', true) then exit; SplitBySpace(id, s); SwitchCurrentHedgehog(@Hedgehogs[HedgehogsNumber]); CurrentHedgehog^.BotLevel:= StrToInt(id); @@ -562,7 +562,7 @@ Gear:= AddGear(0, 0, gtHedgehog, 0, _0, _0, 0); SplitBySpace(s, id); Gear^.Health:= StrToInt(s); - TryDo(Gear^.Health > 0, 'Invalid hedgehog health', true); + if checkFails(Gear^.Health > 0, 'Invalid hedgehog health', true) then exit; if (GameFlags and gfSharedAmmo) <> 0 then CurrentHedgehog^.AmmoStore:= Clan^.ClanIndex else if (GameFlags and gfPerHogAmmo) <> 0 then @@ -608,14 +608,18 @@ // color is always little endian so the mask must be constant also in big endian archs Color:= Color or $FF000000; AddTeam(Color); - CurrentTeam^.TeamName:= ts; - CurrentTeam^.PlayerHash:= s; - loadTeamBinds(ts); + + if CurrentTeam <> nil then + begin + CurrentTeam^.TeamName:= ts; + CurrentTeam^.PlayerHash:= s; + loadTeamBinds(ts); - if GameType in [gmtDemo, gmtSave, gmtRecord] then - CurrentTeam^.ExtDriven:= true; + if GameType in [gmtDemo, gmtSave, gmtRecord] then + CurrentTeam^.ExtDriven:= true; - CurrentTeam^.voicepack:= AskForVoicepack('Default') + CurrentTeam^.voicepack:= AskForVoicepack('Default') + end end end; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uTextures.pas --- a/hedgewars/uTextures.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uTextures.pas Tue Feb 09 21:11:16 2016 +0300 @@ -176,6 +176,9 @@ r, slr, w, si, li: LongWord; begin w:= surf^.w; + // just a single pixel, nothing to do here + if (w < 2) and (surf^.h < 2) then + exit; slr:= surf^.h - 2; si:= 0; li:= w - 1; @@ -226,7 +229,7 @@ if (surf^.format^.BytesPerPixel <> 4) then begin - TryDo(false, 'Surface2Tex failed, expecting 32 bit surface', true); + checkFails(false, 'Surface2Tex failed, expecting 32 bit surface', true); Surface2Tex^.id:= 0; exit end; @@ -236,7 +239,8 @@ glBindTexture(GL_TEXTURE_2D, Surface2Tex^.id); if SDL_MustLock(surf) then - SDLTry(SDL_LockSurface(surf) >= 0, 'Lock surface', true); + if SDLCheck(SDL_LockSurface(surf) >= 0, 'Lock surface', true) then + exit(nil); fromP4:= Surf^.pixels; diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uVariables.pas --- a/hedgewars/uVariables.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uVariables.pas Tue Feb 09 21:11:16 2016 +0300 @@ -209,6 +209,10 @@ ScreenFade : TScreenFade; ScreenFadeValue : LongInt; ScreenFadeSpeed : LongInt; + InCinematicMode : boolean; + CinematicSteps : LongInt; + CinematicBarH : LongInt; + CinematicScript : boolean; UIDisplay : TUIDisplay; LocalMessage : LongWord; @@ -2680,6 +2684,10 @@ disableLandBack := false; ScreenFade := sfNone; + InCinematicMode := false; + CinematicSteps := 0; + CinematicBarH := 0; + CinematicScript := false; // those values still are not perfect cLeftScreenBorder:= round(-cMinZoomLevel * cScreenWidth); diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uVideoRec.pas --- a/hedgewars/uVideoRec.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uVideoRec.pas Tue Feb 09 21:11:16 2016 +0300 @@ -109,7 +109,7 @@ filename:= UserPathPrefix + '/VideoTemp/' + RecPrefix; soundFilePath:= UserPathPrefix + '/VideoTemp/' + RecPrefix + '.sw'; - TryDo(AVWrapper_Init(@AddFileLogRaw + if checkFails(AVWrapper_Init(@AddFileLogRaw , PChar(ansistring(filename)) , PChar(ansistring(desc)) , PChar(ansistring(soundFilePath)) @@ -118,7 +118,7 @@ , PChar(ansistring(cAudioCodec)) , cScreenWidth, cScreenHeight, cVideoFramerateNum, cVideoFramerateDen, cVideoQuality) >= 0, 'AVWrapper_Init failed', - true); + true) then exit(false); numPixels:= cScreenWidth*cScreenHeight; YCbCr_Planes[0]:= GetMem(numPixels); diff -r caa1e84c3ac2 -r b69f5f22a3ba hedgewars/uWorld.pas --- a/hedgewars/uWorld.pas Fri Jan 01 19:15:32 2016 +0300 +++ b/hedgewars/uWorld.pas Tue Feb 09 21:11:16 2016 +0300 @@ -1382,6 +1382,39 @@ // this scale is used to keep the various widgets at the same dimension at all zoom levels SetScale(cDefaultZoomLevel); +// cinematic effects +if CinematicScript or (InCinematicMode and autoCameraOn + and ((CurrentHedgehog = nil) or CurrentHedgehog^.Team^.ExtDriven + or (CurrentHedgehog^.BotLevel <> 0) or (GameType = gmtDemo))) then + begin + if CinematicSteps < 300 then + begin + inc(CinematicSteps, Lag); + if CinematicSteps > 300 then + CinematicSteps:= 300; + end; + end +else if CinematicSteps > 0 then + begin + dec(CinematicSteps, Lag); + if CinematicSteps < 0 then + CinematicSteps:= 0; + end; + +// render black bars +if CinematicSteps > 0 then + begin + r.x:= ViewLeftX; + r.w:= ViewWidth; + r.y:= ViewTopY; + CinematicBarH:= (ViewHeight * CinematicSteps) div 2048; + r.h:= CinematicBarH; + DrawRect(r, 0, 0, 0, $FF, true); + r.y:= ViewBottomY - r.h; + DrawRect(r, 0, 0, 0, $FF, true); + end; + + // Turn time if UIDisplay <> uiNone then begin @@ -1751,7 +1784,7 @@ WorldDx:= WorldDx + LongInt(rightX) - leftX; end; -wdy:= trunc(cScreenHeight / cScaleFactor) + cScreenHeight div 2 - cWaterLine - cVisibleWater; +wdy:= trunc(cScreenHeight / cScaleFactor) + cScreenHeight div 2 - cWaterLine - (cVisibleWater + trunc(CinematicBarH / (cScaleFactor / 2.0))); if WorldDy < wdy then WorldDy:= wdy; diff -r caa1e84c3ac2 -r b69f5f22a3ba misc/OfficialChallenges/racer_#18.hwmap --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/misc/OfficialChallenges/racer_#18.hwmap Tue Feb 09 21:11:16 2016 +0300 @@ -0,0 +1,1 @@ +AAABrnicJcsxS0JRGMbx55xzzz2ecymJllwCCYeGPoDjJaVR1K0tihoEa2nR1dD6BBdBCDIIahACxwzqonIXDRochIIGh4Yg2ju+d/nx8Od9kymsI/GtctAb/AbuoTyHGcod6KTzBfdU3MJtsgPIFqt1ZMu5QOKEYDVqUEVR76iiSsO7J0SdGvRcNjp6jheoZ0I2qEEGrB3JwLmEHhOsTQ2qh0Gkem4BekpgQA1eX1Qir69SUD4hKtSgN9l+pFedz4lb5d3Qcgf5GNPFssGMnFJoRqIJ80o4JWrwyjwIvbLYhVcgeEANesbsxwOzJ3sqFVp+aMF7khhbEljJxYAa1MJNvstrnhlatiHKMRksG9wrdvymFmJrqv94NjRHPIvEr/Inas2ZTUya+2PzwX0YyfORxa5uTJ4azBnXka7K3+k/hAxnGg== \ No newline at end of file diff -r caa1e84c3ac2 -r b69f5f22a3ba misc/OfficialChallenges/racer_#19.hwmap --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/misc/OfficialChallenges/racer_#19.hwmap Tue Feb 09 21:11:16 2016 +0300 @@ -0,0 +1,1 @@ +AAACWHicJdGxS1tRFMfx3825556TtJ0cRdCpFIpLJzOktIUGQZBCh0hLx+IoCoKDFFok2CJFKDilon9AEB/SwRZKhEDiEGhxKTg5+FQchEAtYuh95y2f4TtcOL97b9qNgd/gH7hG1+Az/gx9Ty8QRHZRWpM96CI/QnhcmEvCn8JORh96krODrEHrJInW+Rvkp0FiDdLnqUT6YRj82+Apa5AR6iYy4lcRnhnUtQZ/7MqJP6ZfkFXDla1B9+k80X1+iOKtQefW4C9dJfWX1II8MVzFGkKVBmmo+ivogkEDa+Abnk35JtyBfDd41hr0lT9KIxUUOzlH1qAHhX6qB/QB+s7Izo8NpUm/fBhp4O5MzrI1hKHQPAxD+jK+bISmNciEK7VlAkDoGq5kDf6p225HfoCqOdvW4Feo1Y58gvuY07KG4lu//jWyBlnJWbeWbTC/EdcYhjww3Lw1hPt80WClesNfuecNfo2/vfjxgx5f8JdeaNKgE5q+jOK4kQ0WG2SLNjuyVZiDLBm0aQ06yrWOjvpb6KnBNWv4DxsWmqM= \ No newline at end of file diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_ar.ts --- a/share/hedgewars/Data/Locale/hedgewars_ar.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_ar.ts Tue Feb 09 21:11:16 2016 +0300 @@ -76,6 +76,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -114,6 +118,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -464,6 +472,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -689,6 +704,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -722,6 +741,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1675,6 +1698,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2161,6 +2192,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2628,6 +2663,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2698,6 +2737,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3462,10 +3505,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3473,5 +3512,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_bg.ts --- a/share/hedgewars/Data/Locale/hedgewars_bg.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_bg.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -467,6 +475,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -692,6 +707,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -725,6 +744,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1694,6 +1717,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2196,6 +2227,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2664,6 +2699,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2738,6 +2777,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3502,10 +3545,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3513,5 +3552,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_cs.ts --- a/share/hedgewars/Data/Locale/hedgewars_cs.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_cs.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -473,6 +481,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -698,6 +713,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -731,6 +750,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1710,6 +1733,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2212,6 +2243,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2681,6 +2716,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Semínko</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2755,6 +2794,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3519,10 +3562,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3530,5 +3569,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_da.ts --- a/share/hedgewars/Data/Locale/hedgewars_da.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_da.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -471,6 +479,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -696,6 +711,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -729,6 +748,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1698,6 +1721,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2204,6 +2235,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2672,6 +2707,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Spire</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2746,6 +2785,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3510,10 +3553,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3521,5 +3560,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_de.ts --- a/share/hedgewars/Data/Locale/hedgewars_de.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_de.ts Tue Feb 09 21:11:16 2016 +0300 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> -<TS version="2.1" language="de"> +<TS version="2.0" language="de"> <context> <name>About</name> <message> @@ -38,7 +38,7 @@ <name>BanDialog</name> <message> <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="41"/> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>IP</source> <translation>IP-Adresse</translation> </message> @@ -73,22 +73,27 @@ <translation>Abbrechen</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="80"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="61"/> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="81"/> <source>you know why</source> <translation>du weißt schon, warum</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>Warning</source> <translation>Warnung</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>Please, specify %1</source> <translation>Bitte leg %1 fest</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>nickname</source> <translation>Spitzname</translation> </message> @@ -109,17 +114,22 @@ <context> <name>FeedbackDialog</name> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="124"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="63"/> + <source>Feedback</source> + <translation type="unfinished">Feedback</translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="125"/> <source>View</source> <translation>Ansehen</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="150"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="151"/> <source>Cancel</source> <translation>Abbrechen</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="178"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="179"/> <source>Send Feedback</source> <translation>Feedback senden</translation> </message> @@ -128,7 +138,7 @@ <translation type="obsolete">Bitte gib uns Feedback!</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="91"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="92"/> <source>We are always happy about suggestions, ideas, or bug reports.</source> <translation>Wir freuen uns immer über Vorschläge, Ideen oder Fehlerberichte.</translation> </message> @@ -141,17 +151,17 @@ <translation type="obsolete">Deine E-Mail-Adresse ist optional, aber wir könnten sie brauchen, um dich zu kontaktieren.</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="90"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="91"/> <source>Send us feedback!</source> <translation>Schicke uns dein Feedback!</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>Falls du einen Fehler gefunden hast, kannst du hier sehen, ob er bereits bekannt is (auf Englisch):</translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="93"/> + <source>If you found a bug, you can see if it's already been reported here: </source> + <translation>Falls du einen Fehler gefunden hast, kannst du hier sehen, ob er bereits bekannt is (auf Englisch):</translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="94"/> <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation>Deine E-Mail-Adresse ist optional, es sei denn du möchtest, dass wir dir antworten.</translation> </message> @@ -207,7 +217,7 @@ <context> <name>GameUIConfig</name> <message> - <location filename="../../../../QTfrontend/gameuiconfig.cpp" line="115"/> + <location filename="../../../../QTfrontend/gameuiconfig.cpp" line="116"/> <source>Guest</source> <translation>Gast</translation> </message> @@ -265,12 +275,12 @@ <translation>Das Spielprofil »%1« wird nicht unterstützt</translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="102"/> + <location filename="../../../../QTfrontend/main.cpp" line="105"/> <source>Cannot create directory %1</source> <translation>Das Verzeichnis %1 konnte nicht angelegt werden</translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="305"/> + <location filename="../../../../QTfrontend/main.cpp" line="310"/> <source>Failed to open data directory: %1 @@ -281,62 +291,62 @@ Bitte überprüfe deine Installation!</translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="138"/> + <location filename="../../../../QTfrontend/main.cpp" line="141"/> <source>Usage</source> <comment>command-line</comment> <translation>Verwendung</translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="139"/> - <source>OPTION</source> - <comment>command-line</comment> - <translation>SCHALTER</translation> - </message> - <message> - <location filename="../../../../QTfrontend/main.cpp" line="140"/> - <location filename="../../../../QTfrontend/main.cpp" line="145"/> - <source>CONNECTSTRING</source> - <comment>command-line</comment> - <translation>VERBINDUNGSTEXT</translation> - </message> - <message> - <location filename="../../../../QTfrontend/main.cpp" line="141"/> - <source>Options</source> - <comment>command-line</comment> - <translation>Schalter</translation> - </message> - <message> <location filename="../../../../QTfrontend/main.cpp" line="142"/> - <source>Display this help</source> + <source>OPTION</source> <comment>command-line</comment> - <translation>Diese Hilfe anzeigen</translation> + <translation>SCHALTER</translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="143"/> + <location filename="../../../../QTfrontend/main.cpp" line="148"/> + <source>CONNECTSTRING</source> + <comment>command-line</comment> + <translation>VERBINDUNGSTEXT</translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="144"/> + <source>Options</source> + <comment>command-line</comment> + <translation>Schalter</translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="145"/> + <source>Display this help</source> + <comment>command-line</comment> + <translation>Diese Hilfe anzeigen</translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="146"/> <source>Custom path for configuration data and user data</source> <comment>command-line</comment> <translation>Benutzerdefinierter Pfad für Konfigurations- und Benutzerdaten</translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="144"/> + <location filename="../../../../QTfrontend/main.cpp" line="147"/> <source>Custom path to the game data folder</source> <comment>command-line</comment> <translation>Benutzerdefinierter Pfad für das Spieldatenverzeichnis</translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="145"/> + <location filename="../../../../QTfrontend/main.cpp" line="148"/> <source>Hedgewars can use a %1 (e.g. "%2") to connect on start.</source> <comment>command-line</comment> <translation>Hedgewars kann ein %1 (z.B. »%2«) verwenden, um beim Start zu verbinden.</translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="191"/> + <location filename="../../../../QTfrontend/main.cpp" line="196"/> <source>Malformed option argument: %1</source> <comment>command-line</comment> <translation>Fehlerhaftes Schalterargument: %1</translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="231"/> + <location filename="../../../../QTfrontend/main.cpp" line="236"/> <source>Unknown option argument: %1</source> <comment>command-line</comment> <translation>Unbekannter Schalter: %1</translation> @@ -578,18 +588,18 @@ <context> <name>HWGame</name> <message> - <location filename="../../../../QTfrontend/game.cpp" line="399"/> + <location filename="../../../../QTfrontend/game.cpp" line="386"/> <location filename="../../../../QTfrontend/net/recorder.cpp" line="113"/> <source>en.txt</source> <translation>de.txt</translation> </message> <message> - <location filename="../../../../QTfrontend/game.cpp" line="449"/> + <location filename="../../../../QTfrontend/game.cpp" line="436"/> <source>Cannot open demofile %1</source> <translation>Wiederholungsdatei »%1« konnte nicht geöffnet werden</translation> </message> <message> - <location filename="../../../../QTfrontend/game.cpp" line="256"/> + <location filename="../../../../QTfrontend/game.cpp" line="255"/> <source>A Fatal ERROR occured! - The game engine had to stop. We are very sorry for the inconvenience :( @@ -609,6 +619,14 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <location filename="../../../../QTfrontend/ui/dialog/input_ip.cpp" line="66"/> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="203"/> @@ -927,17 +945,22 @@ <context> <name>HatPrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="119"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="63"/> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="120"/> <source>Cancel</source> <translation>Abbrechen</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="123"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="124"/> <source>Use selected hat</source> <translation>Gewählten Hut auswählen</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="83"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="84"/> <source>Search for a hat:</source> <translation>Nach einem Hut suchen:</translation> </message> @@ -973,27 +996,27 @@ <translation type="obsolete">%1 Bilder pro Sekunde, </translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="305"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="314"/> <source>Audio: </source> <translation>Audio: </translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="309"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="318"/> <source>unknown</source> <translation>unbekannt</translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="285"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="294"/> <source>Duration: %1m %2s</source> <translation>Dauer: %1m %2s</translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="297"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="306"/> <source>Video: %1x%2</source> <translation>Video: %1x%2</translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="301"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="310"/> <source>%1 fps</source> <translation>%1 Hz</translation> </message> @@ -2683,7 +2706,7 @@ <translation>Tags (durch Kommas getrennt): </translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="136"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="137"/> <source>Description</source> <translation>Beschreibung</translation> </message> @@ -2738,22 +2761,22 @@ <translation>Fenster-Auflösung</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="103"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="104"/> <source>Your Email</source> <translation>Deine E-Mail-Adresse</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="111"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="112"/> <source>Summary</source> <translation>Zusammenfassung</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="121"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="122"/> <source>Send system information</source> <translation>Systeminformation senden</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="164"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="165"/> <source>Type the security code:</source> <translation>Gib den Sicherheitscode ein:</translation> </message> @@ -2884,14 +2907,14 @@ <translation>Server konnte nicht gestartet werden</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="349"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="350"/> <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="26"/> <source>Hedgewars - Error</source> <translation>Hedgewars – Fehler</translation> </message> <message> <location filename="../../../../QTfrontend/hwform.cpp" line="2028"/> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="436"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="437"/> <source>Hedgewars - Success</source> <translation>Hedgewars – Erfolg</translation> </message> @@ -3097,23 +3120,23 @@ <translation>Hedgewars – Spitzname nicht registriert</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="359"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="360"/> <source>System Information Preview</source> <translation>Systeminformations-Vorschau</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="374"/> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="385"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="375"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="386"/> <source>Failed to generate captcha</source> <translation>Captcha-Generierung fehlgeschlagen</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="402"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="403"/> <source>Failed to download captcha</source> <translation>Captcha-Download fehlgeschlagen</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="466"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="467"/> <source>Please fill out all fields. Email is optional.</source> <translation>Bitte füll alle Felder aus. Das Feld »E-Mail« ist optional.</translation> </message> @@ -3316,22 +3339,23 @@ <context> <name>RoomNamePrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="43"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="44"/> <source>Enter a name for your room.</source> <translation>Gib einen Namen für deinen Raum ein.</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="72"/> - <source>Cancel</source> - <translation>Abbrechen</translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="73"/> + <source>Cancel</source> + <translation>Abbrechen</translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="35"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="74"/> <source>Create room</source> <translation>Raum erstellen</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="56"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="57"/> <source>set password</source> <translation>Kennwort setzen</translation> </message> @@ -3407,22 +3431,27 @@ <context> <name>SeedPrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="42"/> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="34"/> + <source>Seed</source> + <translation type="unfinished">Seed</translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="43"/> <source>The map seed is the basis for all random values generated by the game.</source> <translation>Der sog. Seed (wörtlich übersetzt: engl. für »Saat«) ist die Basis für alle Zufallswerte, die vom Spiel generiert werden.</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="61"/> - <source>Cancel</source> - <translation>Abbrechen</translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="62"/> + <source>Cancel</source> + <translation>Abbrechen</translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="63"/> <source>Set seed</source> <translation>Seed setzen</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="76"/> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="77"/> <source>Close</source> <translation>Schließen</translation> </message> @@ -3516,17 +3545,22 @@ <context> <name>ThemePrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="120"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="121"/> <source>Cancel</source> <translation>Abbrechen</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="84"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="85"/> <source>Search for a theme:</source> <translation>Nach einer Szenerie suchen:</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="124"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="64"/> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="125"/> <source>Use selected theme</source> <translation>Ausgewählte Szenerie benutzen</translation> </message> @@ -3880,39 +3914,39 @@ <context> <name>binds (keys)</name> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="134"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="133"/> <source>Axis</source> <translation>Achse</translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="138"/> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="153"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="137"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="152"/> <source>(Up)</source> <translation>(Hoch)</translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="142"/> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="157"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="141"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="156"/> <source>(Down)</source> <translation>(Runter)</translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="149"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="148"/> <source>Hat</source> <translation>Cooliehat</translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="161"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="160"/> <source>(Left)</source> <translation>(Links)</translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="165"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="164"/> <source>(Right)</source> <translation>(Rechts)</translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="173"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="172"/> <source>Button</source> <translation>Taste</translation> </message> @@ -4280,280 +4314,279 @@ <context> <name>server</name> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="13"/> + <location filename="../../../../QTfrontend/servermessages.h" line="40"/> <source>Authentication failed</source> <translation>Authentifizierung fehlgeschlagen</translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="14"/> - <source>60 seconds cooldown after kick</source> - <translation>60 Sekunden Abkühlzeit nach Hinauswurf</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="15"/> - <source>kicked</source> - <translation>hinausgeworfen</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="17"/> - <source>Ping timeout</source> - <translation>Ping-Timeout</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="18"/> - <source>bye</source> - <translation>tschüss</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="21"/> - <source>Your vote counted</source> - <translation>Deine Stimme zählte</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="23"/> - <source>Pause toggled</source> - <translation>Pause umgeschaltet</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="29"/> - <source>new seed</source> - <translation>Neuer Seed</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="30"/> - <source>number of hedgehogs in team</source> - <translation>Anzahl der Igel im Team</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="37"/> - <source>Empty config entry</source> - <translation>Leerer Konfigurations-Eintrag</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="40"/> - <source>Corrupted hedgehogs info</source> - <translation>Kaputte Igel-Info</translation> - </message> - <message> <location filename="../../../../QTfrontend/servermessages.h" line="41"/> - <source>too many teams</source> - <translation>zu viele Teams</translation> + <source>60 seconds cooldown after kick</source> + <translation>60 Sekunden Abkühlzeit nach Hinauswurf</translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="42"/> - <source>too many hedgehogs</source> - <translation>zu viele Igel</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="43"/> - <source>There's already a team with same name in the list</source> - <translation>Es gibt bereits ein Team mit dem selben Namen in der Liste</translation> + <source>kicked</source> + <translation>hinausgeworfen</translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="44"/> - <source>round in progress</source> - <translation>laufende Runde</translation> + <source>Ping timeout</source> + <translation>Ping-Timeout</translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="45"/> + <source>bye</source> + <translation>tschüss</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="3"/> + <source>Your vote counted</source> + <translation>Deine Stimme zählte</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="5"/> + <source>Pause toggled</source> + <translation>Pause umgeschaltet</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="11"/> + <source>new seed</source> + <translation>Neuer Seed</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="12"/> + <source>number of hedgehogs in team</source> + <translation>Anzahl der Igel im Team</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="14"/> + <source>Empty config entry</source> + <translation>Leerer Konfigurations-Eintrag</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="17"/> + <source>Corrupted hedgehogs info</source> + <translation>Kaputte Igel-Info</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="18"/> + <source>too many teams</source> + <translation>zu viele Teams</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="19"/> + <source>too many hedgehogs</source> + <translation>zu viele Igel</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="20"/> + <source>There's already a team with same name in the list</source> + <translation>Es gibt bereits ein Team mit dem selben Namen in der Liste</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="21"/> + <source>round in progress</source> + <translation>laufende Runde</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="22"/> <source>restricted</source> <translation>eingeschränkt</translation> </message> <message> + <location filename="../../../../QTfrontend/servermessages.h" line="23"/> + <source>REMOVE_TEAM: no such team</source> + <translation>REMOVE_TEAM: kein solches Team</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="24"/> + <source>Not team owner!</source> + <translation>Nicht Team-Besitzer*In!</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="13"/> + <source>Less than two clans!</source> + <translation>Weniger als zwei Klans!</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="26"/> + <source>Room with such name already exists</source> + <translation>ein Raum mit einem solchen Namen existiert bereits</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="27"/> + <source>/maxteams: specify number from 2 to 8</source> + <translation>/maxteams: Zahl zwischen 2 und 8 wählen</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="28"/> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation>Verfügbare »callvote«-Befehle: kick <Spitzname>, map <Name>, pause, newseed, hedgehogs</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="29"/> + <source>callvote kick: specify nickname</source> + <translation>callvote kick: Spitznamen festlegen</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="30"/> + <source>callvote kick: no such user</source> + <translation>callvote kick: Benutzer existiert nicht</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="31"/> + <source>callvote map: no such map</source> + <translation>callvote map: Karte existiert nicht</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="32"/> + <source>callvote pause: no game in progress</source> + <translation>callvote pause: es läuft kein Spiel</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="33"/> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation>callvote hedgehogs: Zahl zwischen 1 und 8 wählen</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="25"/> + <source>Illegal room name</source> + <translation>Verbotener Raumname</translation> + </message> + <message> <location filename="../../../../QTfrontend/servermessages.h" line="46"/> - <source>REMOVE_TEAM: no such team</source> - <translation>REMOVE_TEAM: kein solches Team</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="47"/> - <source>Not team owner!</source> - <translation>Nicht Team-Besitzer*In!</translation> + <source>No such room</source> + <translation>Ein solcher Raum existiert nicht</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="48"/> + <source>Joining restricted</source> + <translation>Zutritt verboten</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="49"/> + <source>Registered users only</source> + <translation>Nur für registrierte Benutzer</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="50"/> + <source>You are banned in this room</source> + <translation>Du wurdest aus diesem Raum verbannt</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="34"/> + <source>Nickname already chosen</source> + <translation>Spitzname bereits gewählt</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="35"/> + <source>Illegal nickname</source> + <translation>Verbotener Spitzname</translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="36"/> - <source>Less than two clans!</source> - <translation>Weniger als zwei Klans!</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="48"/> - <source>Room with such name already exists</source> - <translation>ein Raum mit einem solchen Namen existiert bereits</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="49"/> - <source>/maxteams: specify number from 2 to 8</source> - <translation>/maxteams: Zahl zwischen 2 und 8 wählen</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="50"/> - <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> - <translation>Verfügbare »callvote«-Befehle: kick <Spitzname>, map <Name>, pause, newseed, hedgehogs</translation> + <source>Protocol already known</source> + <translation>Protokoll bereits bekannt</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="37"/> + <source>Bad number</source> + <translation>Schlechte Zahl</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="38"/> + <source>Nickname is already in use</source> + <translation>Spitzname bereits in Benutzung</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="15"/> + <source>Restricted</source> + <translation>Eingeschränkt</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="16"/> + <source>Not room master</source> + <translation>Nicht Gastgeber</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="39"/> + <source>No checker rights</source> + <translation>Keine Rechte zum Benutzen des Inspektionshilfsprogramms</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="47"/> + <source>Room version incompatible to your hedgewars version</source> + <translation>Die Raumversion ist inkompatibel zu deiner Hedgewars-Version</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="2"/> + <source>You already have voted</source> + <translation>Du hast bereits deine Stimme abgegeben</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="4"/> + <source>Voting closed</source> + <translation>Abstimmung abgeschlossen</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="6"/> + <source>New voting started</source> + <translation>Neue Abstimmung gestartet</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="7"/> + <source>Voting expired</source> + <translation>Abstimmung abgelaufen</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="8"/> + <source>kick</source> + <translation>hinauswerfen</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="9"/> + <source>map</source> + <translation>Karte</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="10"/> + <source>pause</source> + <translation>pausieren</translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="43"/> + <source>Reconnected too fast</source> + <translation>Zu schnell wieder verbunden</translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="51"/> - <source>callvote kick: specify nickname</source> - <translation>callvote kick: Spitznamen festlegen</translation> + <source>Warning! Chat flood protection activated</source> + <translatorcomment>Nicht jeder weiß, was »Flooding« heißt, daher ist die Übersetzung etwas ausführlicher.</translatorcomment> + <translation>Achtung! Chat-Flood-Schutz ist aktiv. Bitte red etwas langsamer.</translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="52"/> - <source>callvote kick: no such user</source> - <translation>callvote kick: Benutzer existiert nicht</translation> + <source>Excess flood</source> + <translatorcomment>Nicht jeder weiß, was »Flooding« heißt, daher wird es hier umschrieben.</translatorcomment> + <translation>Zu viele Nachrichten in kurzer Zeit abgeschickt</translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="53"/> - <source>callvote map: no such map</source> - <translation>callvote map: Karte existiert nicht</translation> + <source>Game messages flood detected - 1</source> + <translation>Zu viele Spielnachrichten in kurzer Zeit ermittelt – 1</translation> + </message> + <message> + <source>Game messages flood detected - 2</source> + <translation type="obsolete">Zu viele Spielnachrichten in kurzer Zeit ermittelt – 2</translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="54"/> - <source>callvote pause: no game in progress</source> - <translation>callvote pause: es läuft kein Spiel</translation> + <source>Warning! Joins flood protection activated</source> + <translatorcomment>Nicht jeder weiß, was »Flooding« heißt, daher ist die Übersetzung etwas ausführlicher und umschreibend.</translatorcomment> + <translation>Achtung! Der Server wird ein zu schnelles Beitreten in kurzer Zeit nicht akzeptieren</translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="55"/> - <source>callvote hedgehogs: specify number from 1 to 8</source> - <translation>callvote hedgehogs: Zahl zwischen 1 und 8 wählen</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="56"/> - <source>Illegal room name</source> - <translation>Verbotener Raumname</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="2"/> - <source>No such room</source> - <translation>Ein solcher Raum existiert nicht</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="4"/> - <source>Joining restricted</source> - <translation>Zutritt verboten</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="5"/> - <source>Registered users only</source> - <translation>Nur für registrierte Benutzer</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="6"/> - <source>You are banned in this room</source> - <translation>Du wurdest aus diesem Raum verbannt</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="7"/> - <source>Nickname already chosen</source> - <translation>Spitzname bereits gewählt</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="8"/> - <source>Illegal nickname</source> - <translation>Verbotener Spitzname</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="9"/> - <source>Protocol already known</source> - <translation>Protokoll bereits bekannt</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="10"/> - <source>Bad number</source> - <translation>Schlechte Zahl</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="11"/> - <source>Nickname is already in use</source> - <translation>Spitzname bereits in Benutzung</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="38"/> - <source>Restricted</source> - <translation>Eingeschränkt</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="39"/> - <source>Not room master</source> - <translation>Nicht Gastgeber</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="12"/> - <source>No checker rights</source> - <translation>Keine Rechte zum Benutzen des Inspektionshilfsprogramms</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="3"/> - <source>Room version incompatible to your hedgewars version</source> - <translation>Die Raumversion ist inkompatibel zu deiner Hedgewars-Version</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="20"/> - <source>You already have voted</source> - <translation>Du hast bereits deine Stimme abgegeben</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="22"/> - <source>Voting closed</source> - <translation>Abstimmung abgeschlossen</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="24"/> - <source>New voting started</source> - <translation>Neue Abstimmung gestartet</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="25"/> - <source>Voting expired</source> - <translation>Abstimmung abgelaufen</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="26"/> - <source>kick</source> - <translation>hinauswerfen</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="27"/> - <source>map</source> - <translation>Karte</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="28"/> - <source>pause</source> - <translation>pausieren</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="16"/> - <source>Reconnected too fast</source> - <translation>Zu schnell wieder verbunden</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="31"/> - <source>Warning! Chat flood protection activated</source> - <translatorcomment>Nicht jeder weiß, was »Flooding« heißt, daher ist die Übersetzung etwas ausführlicher.</translatorcomment> - <translation>Achtung! Chat-Flood-Schutz ist aktiv. Bitte red etwas langsamer.</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="32"/> - <source>Excess flood</source> - <translatorcomment>Nicht jeder weiß, was »Flooding« heißt, daher wird es hier umschrieben.</translatorcomment> - <translation>Zu viele Nachrichten in kurzer Zeit abgeschickt</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="33"/> - <source>Game messages flood detected - 1</source> - <translation>Zu viele Spielnachrichten in kurzer Zeit ermittelt – 1</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="34"/> - <source>Game messages flood detected - 2</source> - <translation>Zu viele Spielnachrichten in kurzer Zeit ermittelt – 2</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="35"/> - <source>Warning! Joins flood protection activated</source> - <translatorcomment>Nicht jeder weiß, was »Flooding« heißt, daher ist die Übersetzung etwas ausführlicher und umschreibend.</translatorcomment> - <translation>Achtung! Der Server wird ein zu schnelles Beitreten in kurzer Zeit nicht akzeptieren</translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="19"/> <source>There's no voting going on</source> <translation>Zur Zeit findet keine Abstimmung statt</translation> </message> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_el.ts --- a/share/hedgewars/Data/Locale/hedgewars_el.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_el.ts Tue Feb 09 21:11:16 2016 +0300 @@ -76,6 +76,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -114,6 +118,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -465,6 +473,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -690,6 +705,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -723,6 +742,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1692,6 +1715,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2194,6 +2225,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2662,6 +2697,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2732,6 +2771,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3496,10 +3539,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3507,5 +3546,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_en.ts --- a/share/hedgewars/Data/Locale/hedgewars_en.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_en.ts Tue Feb 09 21:11:16 2016 +0300 @@ -76,6 +76,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -114,6 +118,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -463,6 +471,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -688,6 +703,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -721,6 +740,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1674,6 +1697,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2160,6 +2191,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2628,6 +2663,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2698,6 +2737,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3462,10 +3505,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3473,5 +3512,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_es.ts --- a/share/hedgewars/Data/Locale/hedgewars_es.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_es.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -471,6 +479,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -696,6 +711,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -729,6 +748,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1698,6 +1721,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2200,6 +2231,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2668,6 +2703,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Semilla</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2742,6 +2781,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3506,10 +3549,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3517,5 +3556,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_fi.ts --- a/share/hedgewars/Data/Locale/hedgewars_fi.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_fi.ts Tue Feb 09 21:11:16 2016 +0300 @@ -1,15 +1,11 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="fi"> - -<!-- Finnish translation updated by Janne Uusitupa <ju@cockli> on 2014/11/23. --> -<!-- Based on the older translation. --> - <context> <name>About</name> <message> <source>Unknown Compiler</source> - <translation>Tuntematon kääntäjä</translation> + <translation>Tuntematon kääntäjä</translation> </message> </context> <context> @@ -27,7 +23,7 @@ </message> <message> <source>copy of %1</source> - <translation>%1 kopio</translation> + <translation>%1 kopio</translation> </message> </context> <context> @@ -42,7 +38,7 @@ </message> <message> <source>IP/Nick</source> - <translation>IP/Nimi</translation> + <translation>IP/Nimi</translation> </message> <message> <source>Reason</source> @@ -70,7 +66,7 @@ </message> <message> <source>Please, specify %1</source> - <translation>Tarkenna: %1</translation> + <translation>Tarkenna: %1</translation> </message> <message> <source>nickname</source> @@ -80,6 +76,10 @@ <source>permanent</source> <translation>ikuinen</translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +118,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation>Sähköposti on valinnainen, jos et halua meidän ottavan yhteyttä.</translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished">Palaute</translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -202,7 +206,7 @@ </message> <message> <source>Scheme '%1' not supported</source> - <translation>Säännöille '%1' ei ole tukea</translation> + <translation>Säännöille '%1' ei ole tukea</translation> </message> <message> <source>Cannot create directory %1</source> @@ -213,7 +217,7 @@ %1 Please check your installation!</source> - <translation>Hakemiston avaaminen epäonnistui: + <translation>Hakemiston avaaminen epäonnistui: %1 Tarkista, että peli on asennettu oikein!</translation> @@ -374,7 +378,7 @@ <message> <source>Someone already uses your nickname %1 on the server. Please pick another nickname:</source> - <translation>Nimimerkkisi %1 on jo käytössä. + <translation>Nimimerkkisi %1 on jo käytössä. Valiste jokin muu:</translation> </message> <message> @@ -391,7 +395,7 @@ If this nick isn't yours, please register your own nick at www.hedgewars.org Password:</source> - <translation>Tämä nimimerkki on rekisteröity, etkä antanut salasanaa. + <translation>Tämä nimimerkki on rekisteröity, etkä antanut salasanaa. Jos tämä ei ole nimesi, rekisteröi omasi osoitteessa hedgewars.org @@ -401,7 +405,7 @@ <source>Your nickname is not registered. To prevent someone else from using it, please register it at www.hedgewars.org</source> - <translation>Nimimerkkiäsi ei ole rekisteröity. + <translation>Nimimerkkiäsi ei ole rekisteröity. Estääksesi muita käyttämästä sitä, voit rekisteröidä sen osoitteessa hedgewars.org</translation> </message> @@ -409,7 +413,7 @@ <source> Your password wasn't saved either.</source> - <translation> + <translation> Salasanaasi ei tallennettu.</translation> </message> @@ -436,7 +440,7 @@ <message> <source>You reconnected too fast. Please wait a few seconds and try again.</source> - <translation>Yhdistit uudelleen liian pian. + <translation>Yhdistit uudelleen liian pian. Odota hetki ja yritä uudelleen.</translation> </message> <message> @@ -454,7 +458,7 @@ <message> <source>The room is protected with password. Please, enter the password:</source> - <translation>Huoneeseen pääsee vain salasanalla. + <translation>Huoneeseen pääsee vain salasanalla. Salasana:</translation> </message> </context> @@ -477,7 +481,7 @@ Last two engine messages: %2</source> - <translation>Vakava virhe tapahtui, ja pelimoottori kaatui! + <translation>Vakava virhe tapahtui, ja pelimoottori kaatui! Olemme pahoillamme, että näin pääsi käymään :( @@ -488,6 +492,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -703,7 +714,7 @@ If you don't have an account on www.hedgewars.org, just enter your nickname.</source> - <translation>Kirjaudu yhdistääksesi palvelimelle. + <translation>Kirjaudu yhdistääksesi palvelimelle. Jos et ole rekisteröitynyt, pelkkä nimimerkki riittää.</translation> @@ -718,7 +729,7 @@ </message> <message> <source>New Account</source> - <translation>Rekisteröidy</translation> + <translation>Rekisteröidy</translation> </message> </context> <context> @@ -753,6 +764,10 @@ <source>Search for a hat:</source> <translation>Etsi hattua:</translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -788,7 +803,7 @@ </message> <message> <source>%1 fps</source> - <translation>%1 kuvaa/s</translation> + <translation>%1 kuvaa/s</translation> </message> </context> <context> @@ -838,7 +853,7 @@ </message> <message> <source>IP/Nick</source> - <translation>IP/Nimim</translation> + <translation>IP/Nimim</translation> </message> <message> <source>Expiration</source> @@ -1106,7 +1121,7 @@ </message> <message> <source>Manage videos recorded from game</source> - <translation>Hallinnoi peleistä nauhoitettuja videoita</translation> + <translation>Hallinnoi peleistä nauhoitettuja videoita</translation> </message> <message> <source>Edit game preferences</source> @@ -1604,7 +1619,7 @@ </message> <message> <source>Load a previously saved game</source> - <translation>Avaa tallennettu peli</translation> + <translation>Avaa tallennettu peli</translation> </message> </context> <context> @@ -1722,6 +1737,14 @@ <source>Show games in-progress</source> <translation>Näytä alkaneet pelit</translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -1866,27 +1889,27 @@ </message> <message> <source>Red/Cyan</source> - <translation>Punainen/Syaani</translation> + <translation>Punainen/Syaani</translation> </message> <message> <source>Cyan/Red</source> - <translation>Syaani/Punainen</translation> + <translation>Syaani/Punainen</translation> </message> <message> <source>Red/Blue</source> - <translation>Punainen/Sininen</translation> + <translation>Punainen/Sininen</translation> </message> <message> <source>Blue/Red</source> - <translation>Sininen/Punainen</translation> + <translation>Sininen/Punainen</translation> </message> <message> <source>Red/Green</source> - <translation>Punainen/Vihreä</translation> + <translation>Punainen/Vihreä</translation> </message> <message> <source>Green/Red</source> - <translation>Vihreä/Punainen</translation> + <translation>Vihreä/Punainen</translation> </message> <message> <source>Side-by-side</source> @@ -1898,27 +1921,27 @@ </message> <message> <source>Red/Cyan grayscale</source> - <translation>Punainen/Syaani harmaasävy</translation> + <translation>Punainen/Syaani harmaasävy</translation> </message> <message> <source>Cyan/Red grayscale</source> - <translation>Syaani/Punainen harmaasävy</translation> + <translation>Syaani/Punainen harmaasävy</translation> </message> <message> <source>Red/Blue grayscale</source> - <translation>Punainen/Sininen harmaasävy</translation> + <translation>Punainen/Sininen harmaasävy</translation> </message> <message> <source>Blue/Red grayscale</source> - <translation>Sininen/Punainen harmaasävy</translation> + <translation>Sininen/Punainen harmaasävy</translation> </message> <message> <source>Red/Green grayscale</source> - <translation>Punainen/Vihreä harmaasävy</translation> + <translation>Punainen/Vihreä harmaasävy</translation> </message> <message> <source>Green/Red grayscale</source> - <translation>Vihreä/Punainen harmaasävy</translation> + <translation>Vihreä/Punainen harmaasävy</translation> </message> </context> <context> @@ -2110,7 +2133,7 @@ <source>There are videos that are currently being processed. Exiting now will abort them. Do you really want to quit?</source> - <translation>Videoiden prosessointi on käynnissä. + <translation>Videoiden prosessointi on käynnissä. Sulkeminen keskeyttää tämän. Haluatko varmasti lopettaa?</translation> </message> @@ -2136,7 +2159,7 @@ </message> <message> <source>Tags (comma separated): </source> - <translation>Hakusanat (pilkulla eroteltuna): </translation> + <translation>Hakusanat (pilkulla eroteltuna): </translation> </message> <message> <source>Description</source> @@ -2196,7 +2219,7 @@ </message> <message> <source>Type the security code:</source> - <translation>Todista, että olet ihminen:</translation> + <translation>Todista, että olet ihminen:</translation> </message> <message> <source>Revision</source> @@ -2226,6 +2249,10 @@ <source>Script parameter</source> <translation>Skriptin parametri</translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2266,7 +2293,7 @@ <message> <source>Error while authenticating at google.com: </source> - <translation>Virhe kirjautuessa google.comiin: + <translation>Virhe kirjautuessa google.comiin: </translation> </message> <message> @@ -2276,7 +2303,7 @@ <message> <source>Error while sending metadata to youtube.com: </source> - <translation>Virhe lähetettäessä oheistietoja youtube.comiin: + <translation>Virhe lähetettäessä oheistietoja youtube.comiin: </translation> </message> <message> @@ -2410,7 +2437,7 @@ </message> <message> <source>Cannot open '%1' for reading</source> - <translation>Ei voi avata '%1' lukua varten</translation> + <translation>Ei voi avata '%1' lukua varten</translation> </message> <message> <source>Cannot use the ammo '%1'!</source> @@ -2471,7 +2498,7 @@ <message> <source>Are you sure you want to start this game? Not all players are ready.</source> - <translation>Haluatko varmasti aloittaa pelin? + <translation>Haluatko varmasti aloittaa pelin? Kaikki pelaajat eivät ole valmiita.</translation> </message> </context> @@ -2697,6 +2724,10 @@ <source>Close</source> <translation>Sulje</translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Siemen</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2734,7 +2765,7 @@ <message> <source>Unable to run engine at %1 Error code: %2</source> - <translation>Pelimoottorin käynnistäminen %1:ssä epäonnistui + <translation>Pelimoottorin käynnistäminen %1:ssä epäonnistui Vikakoodi: %2</translation> </message> <message> @@ -2744,7 +2775,7 @@ We are very sorry for the inconvenience :( If this keeps happening, please click the '%2' button in the main menu!</source> - <translation>Pelimoottori kaatui yllättäen! + <translation>Pelimoottori kaatui yllättäen! (Vikakoodi: %1) Olemme pahoillamme tapahtuneesta :( @@ -2773,6 +2804,10 @@ <source>Use selected theme</source> <translation>Käytä valittua teemaa</translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -2794,7 +2829,7 @@ </message> <message> <source>attack</source> - <translation>hyökkäys</translation> + <translation>hyökkäys</translation> </message> <message> <source>precise aim</source> @@ -2946,7 +2981,7 @@ </message> <message> <source>autocam / find hedgehog</source> - <translation>automaattikamera / etsi siili</translation> + <translation>automaattikamera / etsi siili</translation> </message> <message> <source>speed up replay</source> @@ -3450,7 +3485,7 @@ </message> <message> <source>Authentication failed</source> - <translation>Tunnistautuminen epäonnistui</translation> + <translation>Tunnistautuminen epäonnistui</translation> </message> <message> <source>60 seconds cooldown after kick</source> @@ -3514,7 +3549,7 @@ </message> <message> <source>map</source> - <translation>kartta</translation> + <translation>kartta</translation> </message> <message> <source>pause</source> @@ -3538,7 +3573,7 @@ </message> <message> <source>Game messages flood detected - 2</source> - <translation>Peliviestien tulva havaittu - 2</translation> + <translation type="obsolete">Peliviestien tulva havaittu - 2</translation> </message> <message> <source>Warning! Joins flood protection activated</source> @@ -3548,5 +3583,49 @@ <source>There's no voting going on</source> <translation>Äänestyksiä ei ole meneillään</translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> -</TS> \ No newline at end of file +</TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_fr.ts --- a/share/hedgewars/Data/Locale/hedgewars_fr.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_fr.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation>Permanent</translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -130,6 +134,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation>L'adresse email est optionnelle, mais nécessaire si vous voulez que l'on vous recontacte.</translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished">Contact</translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -492,6 +500,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -724,6 +739,10 @@ <source>Password:</source> <translation>Mot de passe:</translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -757,6 +776,10 @@ <source>Search for a hat:</source> <translation>Chercher un chapeau:</translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1754,6 +1777,14 @@ <source>Show games in-progress</source> <translation>Parties en cours</translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2258,6 +2289,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2733,6 +2768,10 @@ <source>Close</source> <translation>Fermer</translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Graine</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2815,6 +2854,10 @@ <source>Use selected theme</source> <translation>Utiliser le thème séléctionné</translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3580,10 +3623,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3591,5 +3630,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_gl.ts --- a/share/hedgewars/Data/Locale/hedgewars_gl.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_gl.ts Tue Feb 09 21:11:16 2016 +0300 @@ -76,6 +76,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -114,6 +118,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -463,6 +471,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -688,6 +703,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -721,6 +740,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1678,6 +1701,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2164,6 +2195,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2631,6 +2666,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2701,6 +2740,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3465,10 +3508,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3476,5 +3515,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_hu.ts --- a/share/hedgewars/Data/Locale/hedgewars_hu.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_hu.ts Tue Feb 09 21:11:16 2016 +0300 @@ -76,6 +76,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -114,6 +118,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -457,6 +465,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -682,6 +697,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -715,6 +734,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1662,6 +1685,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2148,6 +2179,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2614,6 +2649,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2684,6 +2723,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3448,10 +3491,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3459,5 +3498,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_it.ts --- a/share/hedgewars/Data/Locale/hedgewars_it.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_it.ts Tue Feb 09 21:11:16 2016 +0300 @@ -76,6 +76,10 @@ <source>permanent</source> <translation>permanente</translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -114,6 +118,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation>Il tuo indirizzo di posta elettronica è opzionale, ma potremmo volerti contattare.</translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished">Opinioni</translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -252,7 +260,7 @@ <message> <source>Hedgewars can use a %1 (e.g. "%2") to connect on start.</source> <comment>command-line</comment> - <translation>Hedgewars può usare un %1 (per esempio "%2") per connettersi all'avvio.</translation> + <translation>Hedgewars può usare un %1 (per esempio "%2") per connettersi all'avvio.</translation> </message> <message> <source>Malformed option argument: %1</source> @@ -475,7 +483,7 @@ %2</source> <translation>ERRORE non recuperabile! Il motore di gioco si è dovuto arrestare. -Ci dispiace molto per l'inconveniente :( +Ci dispiace molto per l'inconveniente :( Se continua a succedere, per piacere clicca il bottone '%1' nel menu principale! @@ -484,6 +492,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -708,6 +723,10 @@ <source>Password:</source> <translation>Password:</translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -741,6 +760,10 @@ <source>Search for a hat:</source> <translation>Cerca un cappello:</translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KeyBinder</name> @@ -1667,6 +1690,14 @@ <source>Show games in-progress</source> <translation>Mostra partite in corso</translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2151,6 +2182,10 @@ <source>Script parameter</source> <translation>Parametro dello script</translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2612,6 +2647,10 @@ <source>Close</source> <translation>Chiudi</translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Seed</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2662,7 +2701,7 @@ <translation>Il motore del gioco è morto inaspettatamente! (codice di uscita %1) -Ci dispiace molto per l'inconveniente :( +Ci dispiace molto per l'inconveniente :( Se questo continua a succedere, per piacere clicca il bottone '%2' nel menu principale!</translation> </message> @@ -2688,6 +2727,10 @@ <source>Use selected theme</source> <translation>Usa tema selezionato</translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3445,7 +3488,7 @@ </message> <message> <source>Game messages flood detected - 2</source> - <translation>Rilevato numero messaggi di gioco eccessivo - 2</translation> + <translation type="obsolete">Rilevato numero messaggi di gioco eccessivo - 2</translation> </message> <message> <source>Warning! Joins flood protection activated</source> @@ -3455,5 +3498,49 @@ <source>There's no voting going on</source> <translation>Non ci sono votazioni in questo momento</translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_ja.ts --- a/share/hedgewars/Data/Locale/hedgewars_ja.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_ja.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -461,6 +469,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -686,6 +701,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -719,6 +738,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1662,6 +1685,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2148,6 +2179,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2614,6 +2649,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">乱数シード</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2688,6 +2727,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3448,10 +3491,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3459,5 +3498,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_ko.ts --- a/share/hedgewars/Data/Locale/hedgewars_ko.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_ko.ts Tue Feb 09 21:11:16 2016 +0300 @@ -76,6 +76,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -114,6 +118,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -457,6 +465,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -678,6 +693,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -711,6 +730,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KeyBinder</name> @@ -1627,6 +1650,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2109,6 +2140,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2567,6 +2602,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2637,6 +2676,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3393,10 +3436,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3404,5 +3443,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_lt.ts --- a/share/hedgewars/Data/Locale/hedgewars_lt.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_lt.ts Tue Feb 09 21:11:16 2016 +0300 @@ -20,12 +20,12 @@ <context> <name>AmmoSchemeModel</name> <message> - <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="697"/> + <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="758"/> <source>new</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="703"/> + <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="764"/> <source>copy of %1</source> <translation type="unfinished"></translation> </message> @@ -39,7 +39,7 @@ </message> <message> <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="41"/> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>IP</source> <translation type="unfinished"></translation> </message> @@ -74,22 +74,27 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="80"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="61"/> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="81"/> <source>you know why</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>Warning</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>Please, specify %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>nickname</source> <translation type="unfinished"></translation> </message> @@ -105,37 +110,42 @@ <context> <name>FeedbackDialog</name> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="91"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="92"/> <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="90"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="91"/> <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> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="63"/> + <source>Feedback</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="93"/> + <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="94"/> <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"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="125"/> <source>View</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="150"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="151"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="178"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="179"/> <source>Send Feedback</source> <translation type="unfinished"></translation> </message> @@ -188,7 +198,7 @@ <context> <name>GameUIConfig</name> <message> - <location filename="../../../../QTfrontend/gameuiconfig.cpp" line="115"/> + <location filename="../../../../QTfrontend/gameuiconfig.cpp" line="116"/> <source>Guest</source> <translation type="unfinished"></translation> </message> @@ -251,72 +261,73 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="102"/> + <location filename="../../../../QTfrontend/main.cpp" line="105"/> <source>Cannot create directory %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="138"/> - <source>Usage</source> - <comment>command-line</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/main.cpp" line="139"/> - <source>OPTION</source> - <comment>command-line</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/main.cpp" line="140"/> - <source>CONNECTSTRING</source> - <comment>command-line</comment> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/main.cpp" line="141"/> - <source>Options</source> + <source>Usage</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="142"/> - <source>Display this help</source> + <source>OPTION</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="143"/> - <source>Custom path for configuration data and user data</source> + <location filename="../../../../QTfrontend/main.cpp" line="148"/> + <source>CONNECTSTRING</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="144"/> - <source>Custom path to the game data folder</source> + <source>Options</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="145"/> + <source>Display this help</source> + <comment>command-line</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="146"/> + <source>Custom path for configuration data and user data</source> + <comment>command-line</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="147"/> + <source>Custom path to the game data folder</source> + <comment>command-line</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="148"/> <source>Hedgewars can use a %1 (e.g. "%2") to connect on start.</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="191"/> + <location filename="../../../../QTfrontend/main.cpp" line="196"/> <source>Malformed option argument: %1</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="231"/> + <location filename="../../../../QTfrontend/main.cpp" line="236"/> <source>Unknown option argument: %1</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="305"/> + <location filename="../../../../QTfrontend/main.cpp" line="310"/> <source>Failed to open data directory: %1 @@ -335,67 +346,67 @@ <context> <name>HWChatWidget</name> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="505"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="509"/> <source>%1 has joined</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="526"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="530"/> <source>%1 has left</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="528"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="532"/> <source>%1 has left (%2)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="657"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="661"/> <source>%1 has been removed from your ignore list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="667"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="671"/> <source>%1 has been added to your ignore list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="697"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="701"/> <source>%1 has been removed from your friends list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="706"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="710"/> <source>%1 has been added to your friends list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="772"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="776"/> <source>Stylesheet imported from %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="777"/> <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="781"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="785"/> <source>Couldn't read %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="789"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="793"/> <source>StyleSheet discarded</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="813"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="817"/> <source>StyleSheet saved to %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="816"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="820"/> <source>Failed to save StyleSheet to %1</source> <translation type="unfinished"></translation> </message> @@ -403,52 +414,52 @@ <context> <name>HWForm</name> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="481"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="479"/> <source>DefaultTeam</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="641"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="639"/> <source>Game aborted</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1124"/> <source>Nickname</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1131"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1452"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1129"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1450"/> <source>No nickname supplied.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1124"/> <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="156"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="476"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1399"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1418"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="474"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1397"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1416"/> <source>Guest</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="485"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="483"/> <source>%1's Team</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1080"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1078"/> <source>Hedgewars - Nick registered</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1081"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1079"/> <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 @@ -457,92 +468,92 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1109"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/> <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="1114"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1112"/> <source> Your password wasn't saved either.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1131"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1452"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1129"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1450"/> <source>Hedgewars - Empty nickname</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1158"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1156"/> <source>Hedgewars - Wrong password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1158"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1156"/> <source>You entered a wrong password.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1170"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1168"/> <source>Room password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1170"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1168"/> <source>The room is protected with password. Please, enter the password:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1186"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1184"/> <source>Try Again</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1556"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1554"/> <source>Hedgewars - Connection error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1556"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1554"/> <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="1713"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="2060"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1711"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2058"/> <source>Cannot save record to file %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1990"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1988"/> <source>Hedgewars Demo File</source> <comment>File Types</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1991"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1989"/> <source>Hedgewars Save File</source> <comment>File Types</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2052"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2050"/> <source>Demo name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2052"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2050"/> <source>Demo name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2120"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2118"/> <source>This page requires an internet connection.</source> <translation type="unfinished"></translation> </message> @@ -550,7 +561,7 @@ <context> <name>HWGame</name> <message> - <location filename="../../../../QTfrontend/game.cpp" line="252"/> + <location filename="../../../../QTfrontend/game.cpp" line="255"/> <source>A Fatal ERROR occured! - The game engine had to stop. We are very sorry for the inconvenience :( @@ -562,182 +573,190 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/game.cpp" line="383"/> + <location filename="../../../../QTfrontend/game.cpp" line="386"/> <location filename="../../../../QTfrontend/net/recorder.cpp" line="113"/> <source>en.txt</source> <translation>lt.txt</translation> </message> <message> - <location filename="../../../../QTfrontend/game.cpp" line="433"/> + <location filename="../../../../QTfrontend/game.cpp" line="436"/> <source>Cannot open demofile %1</source> <translation type="unfinished"></translation> </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <location filename="../../../../QTfrontend/ui/dialog/input_ip.cpp" line="66"/> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="100"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="103"/> <source>Map type:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="103"/> - <source>Image map</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="104"/> - <source>Mission map</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="105"/> - <source>Hand-drawn</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="106"/> - <source>Randomly generated</source> + <source>Image map</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="107"/> - <source>Random maze</source> + <source>Mission map</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="108"/> + <source>Hand-drawn</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="109"/> + <source>Randomly generated</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="110"/> + <source>Random maze</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="111"/> <source>Random perlin</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="118"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="121"/> <source>Random</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="142"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="145"/> <source>Map preview:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="181"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="184"/> <source>Load map drawing</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="187"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="190"/> <source>Edit map drawing</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="200"/> - <source>All</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="201"/> - <source>Small</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="202"/> - <source>Medium</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="203"/> - <source>Large</source> + <source>All</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="204"/> - <source>Cavern</source> + <source>Small</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="205"/> + <source>Medium</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="206"/> + <source>Large</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="207"/> + <source>Cavern</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="208"/> <source>Wacky</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="215"/> - <source>Large tunnels</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="216"/> - <source>Small islands</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/> - <source>Medium islands</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="218"/> + <source>Large tunnels</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="219"/> + <source>Small islands</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/> + <source>Medium islands</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="221"/> <source>Large islands</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="726"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="760"/> <source>Map size:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="733"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="767"/> <source>Maze style:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="740"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="774"/> <source>Style:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="754"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="789"/> <source>Mission:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="765"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="801"/> <source>Map:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="829"/> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="960"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="884"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="1012"/> <source>Theme: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="911"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="963"/> <source>Load drawn map</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="911"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="963"/> <source>Drawn Maps</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="911"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="963"/> <source>All files</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="213"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="216"/> <source>Small tunnels</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="214"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/> <source>Medium tunnels</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="133"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="136"/> <source>Seed</source> <translation type="unfinished"></translation> </message> @@ -819,7 +838,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1576"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1574"/> <source>Quit reason: </source> <translation type="unfinished"></translation> </message> @@ -849,6 +868,11 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="59"/> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -874,17 +898,22 @@ <context> <name>HatPrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="83"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="63"/> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="84"/> <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="119"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="120"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="123"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="124"/> <source>Use selected hat</source> <translation type="unfinished"></translation> </message> @@ -900,27 +929,27 @@ <context> <name>LibavInteraction</name> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="285"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="294"/> <source>Duration: %1m %2s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="297"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="306"/> <source>Video: %1x%2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="301"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="310"/> <source>%1 fps</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="305"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="314"/> <source>Audio: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="309"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="318"/> <source>unknown</source> <translation type="unfinished"></translation> </message> @@ -1075,34 +1104,34 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="48"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="49"/> <source>Load</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="49"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="50"/> <source>Save</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="78"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="79"/> <source>Load drawn map</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="78"/> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="86"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="79"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="87"/> <source>Drawn Maps</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="78"/> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="86"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="79"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="87"/> <source>All files</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="86"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="87"/> <source>Save drawn map</source> <translation type="unfinished"></translation> </message> @@ -1629,17 +1658,17 @@ <context> <name>PageRoomsList</name> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="85"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="93"/> <source>Search for a room:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="112"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="120"/> <source>Create room</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="116"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="124"/> <source>Join room</source> <translation type="unfinished"></translation> </message> @@ -1649,17 +1678,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="169"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="177"/> <source>Admin features</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="171"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="179"/> <source>Open server administration page</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="531"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="541"/> <source>%1 players online</source> <translation type="unfinished"> <numerusform></numerusform> @@ -1806,37 +1835,37 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="395"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="409"/> <source>None (Default)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="396"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="410"/> <source>Wrap (World wraps)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="397"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="411"/> <source>Bounce (Edges reflect)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="398"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="412"/> <source>Sea (Edges connect to sea)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="434"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="448"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="435"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="449"/> <source>New</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="436"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="450"/> <source>Delete</source> <translation type="unfinished"></translation> </message> @@ -1970,44 +1999,44 @@ <context> <name>QAction</name> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="256"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="258"/> <source>Info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="260"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="262"/> <source>Kick</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="264"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="266"/> <source>Ban</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="268"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="270"/> <source>Follow</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="272"/> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="895"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="274"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="905"/> <source>Ignore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="276"/> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="907"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="278"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="917"/> <source>Add friend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="890"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="900"/> <source>Unignore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="902"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="912"/> <source>Remove friend</source> <translation type="unfinished"></translation> </message> @@ -2036,6 +2065,16 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="80"/> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="83"/> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2534,21 +2573,26 @@ </message> <message> <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="372"/> - <source>% Get Away Time</source> + <source>Air Mines</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="386"/> + <source>% Get Away Time</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="400"/> <source>World Edge</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="404"/> - <source>Script parameter</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="418"/> + <source>Script parameter</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="432"/> <source>Scheme Name:</source> <translation type="unfinished"></translation> </message> @@ -2590,27 +2634,27 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="103"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="104"/> <source>Your Email</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="111"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="112"/> <source>Summary</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="121"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="122"/> <source>Send system information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="136"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="137"/> <source>Description</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="164"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="165"/> <source>Type the security code:</source> <translation type="unfinished"></translation> </message> @@ -2643,7 +2687,7 @@ <context> <name>QLineEdit</name> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="957"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="955"/> <source>unnamed</source> <translation type="unfinished"></translation> </message> @@ -2680,92 +2724,92 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="986"/> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="534"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="984"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="549"/> <source>Cannot delete default scheme '%1'!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1012"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1010"/> <source>Please select a record from the list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1105"/> <source>Hedgewars - Nick not registered</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1515"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1513"/> <source>Unable to start server</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1576"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1574"/> <source>Connection to server is lost</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2127"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2125"/> <source>Not all players are ready</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2128"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2126"/> <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="349"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="350"/> <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="26"/> <source>Hedgewars - Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="359"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="360"/> <source>System Information Preview</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="374"/> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="385"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="375"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="386"/> <source>Failed to generate captcha</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="402"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="403"/> <source>Failed to download captcha</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="466"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="467"/> <source>Please fill out all fields. Email is optional.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2030"/> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="436"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2028"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="437"/> <source>Hedgewars - Success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2031"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2029"/> <source>All file associations have been set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2036"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2034"/> <source>File association failed.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="370"/> + <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="373"/> <source>Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="371"/> + <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="374"/> <source>Cannot use the ammo '%1'!</source> <translation type="unfinished"></translation> </message> @@ -2833,38 +2877,38 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="492"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="502"/> <source>Room Name - Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="493"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="503"/> <source>Please select room from the list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="518"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="528"/> <source>Room Name - Are you sure?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="519"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="529"/> <source>The game you are trying to join has started. Do you still want to join the room?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="533"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="548"/> <source>Schemes - Warning</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="542"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="557"/> <source>Schemes - Are you sure?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="543"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="558"/> <source>Do you really want to delete the game scheme '%1'?</source> <translation type="unfinished"></translation> </message> @@ -2897,7 +2941,7 @@ <message> <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="146"/> <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="166"/> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="921"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="973"/> <source>File error</source> <translation type="unfinished"></translation> </message> @@ -2908,7 +2952,7 @@ </message> <message> <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="167"/> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="922"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="974"/> <source>Cannot open '%1' for reading</source> <translation type="unfinished"></translation> </message> @@ -3121,22 +3165,23 @@ <context> <name>RoomNamePrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="43"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="44"/> <source>Enter a name for your room.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="56"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="57"/> <source>set password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="72"/> - <source>Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="73"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="35"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="74"/> <source>Create room</source> <translation type="unfinished"></translation> </message> @@ -3189,22 +3234,22 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="133"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="149"/> <source>Random Map</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="134"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="150"/> <source>Random Maze</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="135"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="151"/> <source>Random Perlin</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="136"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="152"/> <source>Hand-drawn</source> <translation type="unfinished"></translation> </message> @@ -3212,22 +3257,27 @@ <context> <name>SeedPrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="42"/> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="34"/> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="43"/> <source>The map seed is the basis for all random values generated by the game.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="61"/> - <source>Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="62"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="63"/> <source>Set seed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="76"/> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="77"/> <source>Close</source> <translation type="unfinished"></translation> </message> @@ -3302,17 +3352,22 @@ <context> <name>ThemePrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="84"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="64"/> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="85"/> <source>Search for a theme:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="120"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="121"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="124"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="125"/> <source>Use selected theme</source> <translation type="unfinished"></translation> </message> @@ -3658,39 +3713,39 @@ <context> <name>binds (keys)</name> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="134"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="133"/> <source>Axis</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="138"/> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="153"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="137"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="152"/> <source>(Up)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="142"/> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="157"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="141"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="156"/> <source>(Down)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="149"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="148"/> <source>Hat</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="161"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="160"/> <source>(Left)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="165"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="164"/> <source>(Right)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="173"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="172"/> <source>Button</source> <translation type="unfinished"></translation> </message> @@ -4058,57 +4113,57 @@ <context> <name>server</name> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="11"/> + <location filename="../../../../QTfrontend/servermessages.h" line="15"/> <source>Restricted</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="12"/> - <source>Not room master</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="13"/> - <source>Corrupted hedgehogs info</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="14"/> - <source>too many teams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="15"/> - <source>too many hedgehogs</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/servermessages.h" line="16"/> - <source>There's already a team with same name in the list</source> + <source>Not room master</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="17"/> - <source>round in progress</source> + <source>Corrupted hedgehogs info</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="18"/> - <source>restricted</source> + <source>too many teams</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="19"/> - <source>REMOVE_TEAM: no such team</source> + <source>too many hedgehogs</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="20"/> + <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="21"/> + <source>round in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="22"/> + <source>restricted</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="23"/> + <source>REMOVE_TEAM: no such team</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="24"/> <source>Not team owner!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="9"/> + <location filename="../../../../QTfrontend/servermessages.h" line="13"/> <source>Less than two clans!</source> <translation type="unfinished"></translation> </message> @@ -4119,161 +4174,211 @@ </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="3"/> - <source>Voting closed</source> + <source>Your vote counted</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="4"/> - <source>New voting started</source> + <source>Voting closed</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="5"/> - <source>Voting expired</source> + <source>Pause toggled</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="6"/> - <source>kick</source> + <source>New voting started</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="7"/> - <source>map</source> + <source>Voting expired</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="8"/> + <source>kick</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="9"/> + <source>map</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="10"/> <source>pause</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="21"/> - <source>Illegal room name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="22"/> - <source>Room with such name already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="23"/> - <source>Nickname already chosen</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="24"/> - <source>Illegal nickname</source> + <location filename="../../../../QTfrontend/servermessages.h" line="11"/> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="12"/> + <source>number of hedgehogs in team</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="25"/> - <source>Protocol already known</source> + <source>Illegal room name</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="26"/> - <source>Bad number</source> + <source>Room with such name already exists</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="27"/> - <source>Nickname is already in use</source> + <source>/maxteams: specify number from 2 to 8</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="28"/> - <source>No checker rights</source> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="29"/> - <source>Authentication failed</source> + <source>callvote kick: specify nickname</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="30"/> - <source>60 seconds cooldown after kick</source> + <source>callvote kick: no such user</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="31"/> - <source>kicked</source> + <source>callvote map: no such map</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="32"/> - <source>Reconnected too fast</source> + <source>callvote pause: no game in progress</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="33"/> - <source>Ping timeout</source> + <source>callvote hedgehogs: specify number from 1 to 8</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="34"/> - <source>bye</source> + <source>Nickname already chosen</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="35"/> - <source>No such room</source> + <source>Illegal nickname</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="36"/> - <source>Room version incompatible to your hedgewars version</source> + <source>Protocol already known</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="37"/> - <source>Joining restricted</source> + <source>Bad number</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="38"/> - <source>Registered users only</source> + <source>Nickname is already in use</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="39"/> - <source>You are banned in this room</source> + <source>No checker rights</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="40"/> - <source>Warning! Chat flood protection activated</source> + <source>Authentication failed</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="41"/> - <source>Excess flood</source> + <source>60 seconds cooldown after kick</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="42"/> - <source>Game messages flood detected - 1</source> + <source>kicked</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="43"/> - <source>Game messages flood detected - 2</source> + <source>Reconnected too fast</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="44"/> - <source>Warning! Joins flood protection activated</source> + <source>Ping timeout</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="45"/> + <source>bye</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="46"/> + <source>No such room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="47"/> + <source>Room version incompatible to your hedgewars version</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="48"/> + <source>Joining restricted</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="49"/> + <source>Registered users only</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="50"/> + <source>You are banned in this room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="51"/> + <source>Warning! Chat flood protection activated</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="52"/> + <source>Excess flood</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="53"/> + <source>Game messages flood detected - 1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="54"/> + <source>Warning! Joins flood protection activated</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="55"/> <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="10"/> + <location filename="../../../../QTfrontend/servermessages.h" line="14"/> <source>Empty config entry</source> <translation type="unfinished"></translation> </message> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_ms.ts --- a/share/hedgewars/Data/Locale/hedgewars_ms.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_ms.ts Tue Feb 09 21:11:16 2016 +0300 @@ -20,12 +20,12 @@ <context> <name>AmmoSchemeModel</name> <message> - <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="697"/> + <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="758"/> <source>new</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="703"/> + <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="764"/> <source>copy of %1</source> <translation type="unfinished"></translation> </message> @@ -39,7 +39,7 @@ </message> <message> <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="41"/> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>IP</source> <translation type="unfinished"></translation> </message> @@ -74,22 +74,27 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="80"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="61"/> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="81"/> <source>you know why</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>Warning</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>Please, specify %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>nickname</source> <translation type="unfinished"></translation> </message> @@ -105,37 +110,42 @@ <context> <name>FeedbackDialog</name> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="91"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="92"/> <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="90"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="91"/> <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> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="63"/> + <source>Feedback</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="93"/> + <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="94"/> <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"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="125"/> <source>View</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="150"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="151"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="178"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="179"/> <source>Send Feedback</source> <translation type="unfinished"></translation> </message> @@ -186,7 +196,7 @@ <context> <name>GameUIConfig</name> <message> - <location filename="../../../../QTfrontend/gameuiconfig.cpp" line="115"/> + <location filename="../../../../QTfrontend/gameuiconfig.cpp" line="116"/> <source>Guest</source> <translation type="unfinished"></translation> </message> @@ -239,72 +249,73 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="102"/> + <location filename="../../../../QTfrontend/main.cpp" line="105"/> <source>Cannot create directory %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="138"/> - <source>Usage</source> - <comment>command-line</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/main.cpp" line="139"/> - <source>OPTION</source> - <comment>command-line</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/main.cpp" line="140"/> - <source>CONNECTSTRING</source> - <comment>command-line</comment> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/main.cpp" line="141"/> - <source>Options</source> + <source>Usage</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="142"/> - <source>Display this help</source> + <source>OPTION</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="143"/> - <source>Custom path for configuration data and user data</source> + <location filename="../../../../QTfrontend/main.cpp" line="148"/> + <source>CONNECTSTRING</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="144"/> - <source>Custom path to the game data folder</source> + <source>Options</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="145"/> + <source>Display this help</source> + <comment>command-line</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="146"/> + <source>Custom path for configuration data and user data</source> + <comment>command-line</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="147"/> + <source>Custom path to the game data folder</source> + <comment>command-line</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="148"/> <source>Hedgewars can use a %1 (e.g. "%2") to connect on start.</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="191"/> + <location filename="../../../../QTfrontend/main.cpp" line="196"/> <source>Malformed option argument: %1</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="231"/> + <location filename="../../../../QTfrontend/main.cpp" line="236"/> <source>Unknown option argument: %1</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="305"/> + <location filename="../../../../QTfrontend/main.cpp" line="310"/> <source>Failed to open data directory: %1 @@ -323,67 +334,67 @@ <context> <name>HWChatWidget</name> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="505"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="509"/> <source>%1 has joined</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="526"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="530"/> <source>%1 has left</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="528"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="532"/> <source>%1 has left (%2)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="657"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="661"/> <source>%1 has been removed from your ignore list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="667"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="671"/> <source>%1 has been added to your ignore list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="697"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="701"/> <source>%1 has been removed from your friends list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="706"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="710"/> <source>%1 has been added to your friends list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="772"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="776"/> <source>Stylesheet imported from %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="777"/> <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="781"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="785"/> <source>Couldn't read %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="789"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="793"/> <source>StyleSheet discarded</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="813"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="817"/> <source>StyleSheet saved to %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="816"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="820"/> <source>Failed to save StyleSheet to %1</source> <translation type="unfinished"></translation> </message> @@ -392,34 +403,34 @@ <name>HWForm</name> <message> <location filename="../../../../QTfrontend/hwform.cpp" line="156"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="476"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1399"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1418"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="474"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1397"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1416"/> <source>Guest</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="481"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="479"/> <source>DefaultTeam</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="485"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="483"/> <source>%1's Team</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="641"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="639"/> <source>Game aborted</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1080"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1078"/> <source>Hedgewars - Nick registered</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1081"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1079"/> <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 @@ -428,109 +439,109 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1109"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/> <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="1114"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1112"/> <source> Your password wasn't saved either.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1124"/> <source>Nickname</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1124"/> <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="1131"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1452"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1129"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1450"/> <source>No nickname supplied.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1131"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1452"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1129"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1450"/> <source>Hedgewars - Empty nickname</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1158"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1156"/> <source>Hedgewars - Wrong password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1158"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1156"/> <source>You entered a wrong password.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1170"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1168"/> <source>Room password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1170"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1168"/> <source>The room is protected with password. Please, enter the password:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1186"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1184"/> <source>Try Again</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1556"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1554"/> <source>Hedgewars - Connection error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1556"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1554"/> <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="1713"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="2060"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1711"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2058"/> <source>Cannot save record to file %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1990"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1988"/> <source>Hedgewars Demo File</source> <comment>File Types</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1991"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1989"/> <source>Hedgewars Save File</source> <comment>File Types</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2052"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2050"/> <source>Demo name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2052"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2050"/> <source>Demo name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2120"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2118"/> <source>This page requires an internet connection.</source> <translation type="unfinished"></translation> </message> @@ -538,7 +549,7 @@ <context> <name>HWGame</name> <message> - <location filename="../../../../QTfrontend/game.cpp" line="252"/> + <location filename="../../../../QTfrontend/game.cpp" line="255"/> <source>A Fatal ERROR occured! - The game engine had to stop. We are very sorry for the inconvenience :( @@ -550,182 +561,190 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/game.cpp" line="383"/> + <location filename="../../../../QTfrontend/game.cpp" line="386"/> <location filename="../../../../QTfrontend/net/recorder.cpp" line="113"/> <source>en.txt</source> <translation>ms.txt</translation> </message> <message> - <location filename="../../../../QTfrontend/game.cpp" line="433"/> + <location filename="../../../../QTfrontend/game.cpp" line="436"/> <source>Cannot open demofile %1</source> <translation type="unfinished"></translation> </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <location filename="../../../../QTfrontend/ui/dialog/input_ip.cpp" line="66"/> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="100"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="103"/> <source>Map type:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="103"/> - <source>Image map</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="104"/> - <source>Mission map</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="105"/> - <source>Hand-drawn</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="106"/> - <source>Randomly generated</source> + <source>Image map</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="107"/> - <source>Random maze</source> + <source>Mission map</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="108"/> + <source>Hand-drawn</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="109"/> + <source>Randomly generated</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="110"/> + <source>Random maze</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="111"/> <source>Random perlin</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="118"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="121"/> <source>Random</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="142"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="145"/> <source>Map preview:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="181"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="184"/> <source>Load map drawing</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="187"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="190"/> <source>Edit map drawing</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="200"/> - <source>All</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="201"/> - <source>Small</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="202"/> - <source>Medium</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="203"/> - <source>Large</source> + <source>All</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="204"/> - <source>Cavern</source> + <source>Small</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="205"/> + <source>Medium</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="206"/> + <source>Large</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="207"/> + <source>Cavern</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="208"/> <source>Wacky</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="215"/> - <source>Large tunnels</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="216"/> - <source>Small islands</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/> - <source>Medium islands</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="218"/> + <source>Large tunnels</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="219"/> + <source>Small islands</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/> + <source>Medium islands</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="221"/> <source>Large islands</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="726"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="760"/> <source>Map size:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="733"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="767"/> <source>Maze style:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="740"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="774"/> <source>Style:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="754"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="789"/> <source>Mission:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="765"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="801"/> <source>Map:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="829"/> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="960"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="884"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="1012"/> <source>Theme: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="911"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="963"/> <source>Load drawn map</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="911"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="963"/> <source>Drawn Maps</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="911"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="963"/> <source>All files</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="213"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="216"/> <source>Small tunnels</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="214"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/> <source>Medium tunnels</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="133"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="136"/> <source>Seed</source> <translation type="unfinished"></translation> </message> @@ -751,7 +770,7 @@ <context> <name>HWNewNet</name> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1576"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1574"/> <source>Quit reason: </source> <translation type="unfinished"></translation> </message> @@ -837,6 +856,11 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="59"/> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -862,17 +886,22 @@ <context> <name>HatPrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="83"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="63"/> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="84"/> <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="119"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="120"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="123"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="124"/> <source>Use selected hat</source> <translation type="unfinished"></translation> </message> @@ -888,27 +917,27 @@ <context> <name>LibavInteraction</name> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="285"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="294"/> <source>Duration: %1m %2s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="297"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="306"/> <source>Video: %1x%2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="301"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="310"/> <source>%1 fps</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="305"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="314"/> <source>Audio: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="309"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="318"/> <source>unknown</source> <translation type="unfinished"></translation> </message> @@ -1063,34 +1092,34 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="48"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="49"/> <source>Load</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="49"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="50"/> <source>Save</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="78"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="79"/> <source>Load drawn map</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="78"/> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="86"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="79"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="87"/> <source>Drawn Maps</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="78"/> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="86"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="79"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="87"/> <source>All files</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="86"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="87"/> <source>Save drawn map</source> <translation type="unfinished"></translation> </message> @@ -1601,17 +1630,17 @@ <context> <name>PageRoomsList</name> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="85"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="93"/> <source>Search for a room:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="112"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="120"/> <source>Create room</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="116"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="124"/> <source>Join room</source> <translation type="unfinished"></translation> </message> @@ -1621,17 +1650,17 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="169"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="177"/> <source>Admin features</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="171"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="179"/> <source>Open server administration page</source> <translation type="unfinished"></translation> </message> <message numerus="yes"> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="531"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="541"/> <source>%1 players online</source> <translation type="unfinished"> <numerusform></numerusform> @@ -1776,37 +1805,37 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="395"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="409"/> <source>None (Default)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="396"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="410"/> <source>Wrap (World wraps)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="397"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="411"/> <source>Bounce (Edges reflect)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="398"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="412"/> <source>Sea (Edges connect to sea)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="434"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="448"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="435"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="449"/> <source>New</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="436"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="450"/> <source>Delete</source> <translation type="unfinished"></translation> </message> @@ -1953,44 +1982,44 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="256"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="258"/> <source>Info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="260"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="262"/> <source>Kick</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="264"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="266"/> <source>Ban</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="268"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="270"/> <source>Follow</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="272"/> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="895"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="274"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="905"/> <source>Ignore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="276"/> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="907"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="278"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="917"/> <source>Add friend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="890"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="900"/> <source>Unignore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="902"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="912"/> <source>Remove friend</source> <translation type="unfinished"></translation> </message> @@ -2004,6 +2033,16 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="80"/> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="83"/> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2362,27 +2401,27 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="103"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="104"/> <source>Your Email</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="111"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="112"/> <source>Summary</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="121"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="122"/> <source>Send system information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="136"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="137"/> <source>Description</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="164"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="165"/> <source>Type the security code:</source> <translation type="unfinished"></translation> </message> @@ -2544,21 +2583,26 @@ </message> <message> <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="372"/> - <source>% Get Away Time</source> + <source>Air Mines</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="386"/> + <source>% Get Away Time</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="400"/> <source>World Edge</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="404"/> - <source>Script parameter</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="418"/> + <source>Script parameter</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="432"/> <source>Scheme Name:</source> <translation type="unfinished"></translation> </message> @@ -2611,7 +2655,7 @@ <context> <name>QLineEdit</name> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="957"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="955"/> <source>unnamed</source> <translation type="unfinished"></translation> </message> @@ -2648,82 +2692,82 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="986"/> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="534"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="984"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="549"/> <source>Cannot delete default scheme '%1'!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1012"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1010"/> <source>Please select a record from the list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1105"/> <source>Hedgewars - Nick not registered</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1515"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1513"/> <source>Unable to start server</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1576"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1574"/> <source>Connection to server is lost</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2127"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2125"/> <source>Not all players are ready</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2128"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2126"/> <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="349"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="350"/> <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="26"/> <source>Hedgewars - Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="359"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="360"/> <source>System Information Preview</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="374"/> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="385"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="375"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="386"/> <source>Failed to generate captcha</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="402"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="403"/> <source>Failed to download captcha</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="466"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="467"/> <source>Please fill out all fields. Email is optional.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2030"/> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="436"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2028"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="437"/> <source>Hedgewars - Success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2031"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2029"/> <source>All file associations have been set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2036"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2034"/> <source>File association failed.</source> <translation type="unfinished"></translation> </message> @@ -2791,38 +2835,38 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="492"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="502"/> <source>Room Name - Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="493"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="503"/> <source>Please select room from the list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="518"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="528"/> <source>Room Name - Are you sure?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="519"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="529"/> <source>The game you are trying to join has started. Do you still want to join the room?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="533"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="548"/> <source>Schemes - Warning</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="542"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="557"/> <source>Schemes - Are you sure?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="543"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="558"/> <source>Do you really want to delete the game scheme '%1'?</source> <translation type="unfinished"></translation> </message> @@ -2853,7 +2897,7 @@ <message> <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="146"/> <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="166"/> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="921"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="973"/> <source>File error</source> <translation type="unfinished"></translation> </message> @@ -2864,17 +2908,17 @@ </message> <message> <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="167"/> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="922"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="974"/> <source>Cannot open '%1' for reading</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="370"/> + <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="373"/> <source>Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="371"/> + <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="374"/> <source>Cannot use the ammo '%1'!</source> <translation type="unfinished"></translation> </message> @@ -3087,22 +3131,23 @@ <context> <name>RoomNamePrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="43"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="44"/> <source>Enter a name for your room.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="56"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="57"/> <source>set password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="72"/> - <source>Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="73"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="35"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="74"/> <source>Create room</source> <translation type="unfinished"></translation> </message> @@ -3155,22 +3200,22 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="133"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="149"/> <source>Random Map</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="134"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="150"/> <source>Random Maze</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="135"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="151"/> <source>Random Perlin</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="136"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="152"/> <source>Hand-drawn</source> <translation type="unfinished"></translation> </message> @@ -3178,22 +3223,27 @@ <context> <name>SeedPrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="42"/> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="34"/> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="43"/> <source>The map seed is the basis for all random values generated by the game.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="61"/> - <source>Cancel</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="62"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="63"/> <source>Set seed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="76"/> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="77"/> <source>Close</source> <translation type="unfinished"></translation> </message> @@ -3268,17 +3318,22 @@ <context> <name>ThemePrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="84"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="64"/> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="85"/> <source>Search for a theme:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="120"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="121"/> <source>Cancel</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="124"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="125"/> <source>Use selected theme</source> <translation type="unfinished"></translation> </message> @@ -3984,39 +4039,39 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="134"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="133"/> <source>Axis</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="138"/> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="153"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="137"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="152"/> <source>(Up)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="142"/> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="157"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="141"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="156"/> <source>(Down)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="149"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="148"/> <source>Hat</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="161"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="160"/> <source>(Left)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="165"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="164"/> <source>(Right)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="173"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="172"/> <source>Button</source> <translation type="unfinished"></translation> </message> @@ -4024,57 +4079,57 @@ <context> <name>server</name> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="11"/> + <location filename="../../../../QTfrontend/servermessages.h" line="15"/> <source>Restricted</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="12"/> - <source>Not room master</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="13"/> - <source>Corrupted hedgehogs info</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="14"/> - <source>too many teams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="15"/> - <source>too many hedgehogs</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/servermessages.h" line="16"/> - <source>There's already a team with same name in the list</source> + <source>Not room master</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="17"/> - <source>round in progress</source> + <source>Corrupted hedgehogs info</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="18"/> - <source>restricted</source> + <source>too many teams</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="19"/> - <source>REMOVE_TEAM: no such team</source> + <source>too many hedgehogs</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="20"/> + <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="21"/> + <source>round in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="22"/> + <source>restricted</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="23"/> + <source>REMOVE_TEAM: no such team</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="24"/> <source>Not team owner!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="9"/> + <location filename="../../../../QTfrontend/servermessages.h" line="13"/> <source>Less than two clans!</source> <translation type="unfinished"></translation> </message> @@ -4085,161 +4140,211 @@ </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="3"/> - <source>Voting closed</source> + <source>Your vote counted</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="4"/> - <source>New voting started</source> + <source>Voting closed</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="5"/> - <source>Voting expired</source> + <source>Pause toggled</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="6"/> - <source>kick</source> + <source>New voting started</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="7"/> - <source>map</source> + <source>Voting expired</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="8"/> + <source>kick</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="9"/> + <source>map</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="10"/> <source>pause</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="21"/> - <source>Illegal room name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="22"/> - <source>Room with such name already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="23"/> - <source>Nickname already chosen</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="24"/> - <source>Illegal nickname</source> + <location filename="../../../../QTfrontend/servermessages.h" line="11"/> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="12"/> + <source>number of hedgehogs in team</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="25"/> - <source>Protocol already known</source> + <source>Illegal room name</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="26"/> - <source>Bad number</source> + <source>Room with such name already exists</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="27"/> - <source>Nickname is already in use</source> + <source>/maxteams: specify number from 2 to 8</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="28"/> - <source>No checker rights</source> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="29"/> - <source>Authentication failed</source> + <source>callvote kick: specify nickname</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="30"/> - <source>60 seconds cooldown after kick</source> + <source>callvote kick: no such user</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="31"/> - <source>kicked</source> + <source>callvote map: no such map</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="32"/> - <source>Reconnected too fast</source> + <source>callvote pause: no game in progress</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="33"/> - <source>Ping timeout</source> + <source>callvote hedgehogs: specify number from 1 to 8</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="34"/> - <source>bye</source> + <source>Nickname already chosen</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="35"/> - <source>No such room</source> + <source>Illegal nickname</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="36"/> - <source>Room version incompatible to your hedgewars version</source> + <source>Protocol already known</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="37"/> - <source>Joining restricted</source> + <source>Bad number</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="38"/> - <source>Registered users only</source> + <source>Nickname is already in use</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="39"/> - <source>You are banned in this room</source> + <source>No checker rights</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="40"/> - <source>Warning! Chat flood protection activated</source> + <source>Authentication failed</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="41"/> - <source>Excess flood</source> + <source>60 seconds cooldown after kick</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="42"/> - <source>Game messages flood detected - 1</source> + <source>kicked</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="43"/> - <source>Game messages flood detected - 2</source> + <source>Reconnected too fast</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="44"/> - <source>Warning! Joins flood protection activated</source> + <source>Ping timeout</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="45"/> + <source>bye</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="46"/> + <source>No such room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="47"/> + <source>Room version incompatible to your hedgewars version</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="48"/> + <source>Joining restricted</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="49"/> + <source>Registered users only</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="50"/> + <source>You are banned in this room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="51"/> + <source>Warning! Chat flood protection activated</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="52"/> + <source>Excess flood</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="53"/> + <source>Game messages flood detected - 1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="54"/> + <source>Warning! Joins flood protection activated</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="55"/> <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="10"/> + <location filename="../../../../QTfrontend/servermessages.h" line="14"/> <source>Empty config entry</source> <translation type="unfinished"></translation> </message> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_nl.ts --- a/share/hedgewars/Data/Locale/hedgewars_nl.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_nl.ts Tue Feb 09 21:11:16 2016 +0300 @@ -76,6 +76,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -114,6 +118,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -463,6 +471,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -684,6 +699,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -717,6 +736,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KeyBinder</name> @@ -1643,6 +1666,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2125,6 +2156,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2584,6 +2619,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2654,6 +2693,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3410,10 +3453,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3421,5 +3460,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_pl.ts --- a/share/hedgewars/Data/Locale/hedgewars_pl.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_pl.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation>dożywotni</translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <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> + <message> + <source>Feedback</source> + <translation type="unfinished">Twoja opinia</translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -490,6 +498,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -718,6 +733,10 @@ <source>Password:</source> <translation>Hasło:</translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -751,6 +770,10 @@ <source>Search for a hat:</source> <translation>Szukaj czapki:</translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1757,6 +1780,14 @@ <source>Show games in-progress</source> <translation>Pokaż trwające gry</translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2265,6 +2296,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2765,6 +2800,10 @@ <source>Close</source> <translation>Zamknij</translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Ziarno</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2847,6 +2886,10 @@ <source>Use selected theme</source> <translation>Użyj wybranego motywu</translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3611,10 +3654,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3622,5 +3661,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_pt_BR.ts --- a/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation>permanente</translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation>Seu endereço de e-mail é opcional, mas é necessário se quiser que lhe dermos um retorno. </translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished">Retorno</translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -480,6 +488,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -709,6 +724,10 @@ <source>Password:</source> <translation>Senha:</translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -742,6 +761,10 @@ <source>Search for a hat:</source> <translation>Buscar por um chapéu:</translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1738,6 +1761,14 @@ <source>Show games in-progress</source> <translation>Mostrar jogos em andamento</translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2242,6 +2273,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2715,6 +2750,10 @@ <source>Close</source> <translation>Fechar</translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Semear</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2797,6 +2836,10 @@ <source>Use selected theme</source> <translation>Usar o tema selecionado</translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3563,10 +3606,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3574,5 +3613,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_pt_PT.ts --- a/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation>permanente</translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation>O teu e-mail é opcional, mas necessário se quiseres que te contactemos de volta.</translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished">Feedback</translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -484,6 +492,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -716,6 +731,10 @@ <source>Password:</source> <translation>Password:</translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -749,6 +768,10 @@ <source>Search for a hat:</source> <translation>Procurar:</translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1722,6 +1745,14 @@ <source>Show games in-progress</source> <translation>Mostrar jogos em progresso</translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2214,6 +2245,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2719,6 +2754,10 @@ <source>Close</source> <translation>Fechar</translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Semente</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2801,6 +2840,10 @@ <source>Use selected theme</source> <translation>Utilizar o tema selecionado</translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3565,10 +3608,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3576,5 +3615,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_ro.ts --- a/share/hedgewars/Data/Locale/hedgewars_ro.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_ro.ts Tue Feb 09 21:11:16 2016 +0300 @@ -76,6 +76,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -114,6 +118,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -469,6 +477,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -694,6 +709,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -727,6 +746,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1690,6 +1713,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2176,6 +2207,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2645,6 +2680,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2715,6 +2754,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3479,10 +3522,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3490,5 +3529,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_ru.ts --- a/share/hedgewars/Data/Locale/hedgewars_ru.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_ru.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation>постоянный</translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation>Адрес e-mail необязателен, но необходим, если вы хотите получить ответ.</translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished">Отзыв</translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -489,6 +497,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -717,6 +732,10 @@ <source>Password:</source> <translation>Пароль:</translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -750,6 +769,10 @@ <source>Search for a hat:</source> <translation>Поиск по шляпам:</translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1073,6 +1096,8 @@ <source>(%1 %2)</source> <translation type="unfinished"> <numerusform></numerusform> + <numerusform></numerusform> + <numerusform></numerusform> </translation> </message> </context> @@ -1754,6 +1779,14 @@ <source>Show games in-progress</source> <translation>Показывать текущие игры</translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2262,6 +2295,10 @@ <source>Script parameter</source> <translation>Параметр скрипта</translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2427,6 +2464,8 @@ <source>Do you really want to remove %1 file(s)?</source> <translation type="unfinished"> <numerusform></numerusform> + <numerusform></numerusform> + <numerusform></numerusform> </translation> </message> <message> @@ -2730,6 +2769,10 @@ <source>Close</source> <translation>Закрыть</translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Зерно</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2811,6 +2854,10 @@ <source>Use selected theme</source> <translation>Использовать выбранную тему</translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3575,10 +3622,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3586,5 +3629,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_sk.ts --- a/share/hedgewars/Data/Locale/hedgewars_sk.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_sk.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -480,6 +488,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -705,6 +720,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -738,6 +757,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1730,6 +1753,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2236,6 +2267,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2731,6 +2766,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Zrno</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2805,6 +2844,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3569,10 +3612,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3580,5 +3619,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_sv.ts --- a/share/hedgewars/Data/Locale/hedgewars_sv.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_sv.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation type="unfinished"></translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -471,6 +479,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -696,6 +711,10 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -729,6 +748,10 @@ <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1698,6 +1721,14 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2200,6 +2231,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2668,6 +2703,10 @@ <source>Close</source> <translation type="unfinished"></translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Frö</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2742,6 +2781,10 @@ <source>Use selected theme</source> <translation type="unfinished"></translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3506,10 +3549,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3517,5 +3556,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_tr_TR.ts --- a/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation>kalıcı</translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -130,6 +134,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation type="unfinished"></translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished">Geri Bildirim</translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -489,6 +497,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -721,6 +736,10 @@ <source>Password:</source> <translation>Parola:</translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -754,6 +773,10 @@ <source>Search for a hat:</source> <translation>Şapka ara:</translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1733,6 +1756,14 @@ <source>Show games in-progress</source> <translation>Süren oyunları göster</translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2229,6 +2260,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2731,6 +2766,10 @@ <source>Close</source> <translation>Kapat</translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Besleme</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2813,6 +2852,10 @@ <source>Use selected theme</source> <translation>Seçili temayı kullan</translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3577,10 +3620,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3588,5 +3627,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_uk.ts --- a/share/hedgewars/Data/Locale/hedgewars_uk.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_uk.ts Tue Feb 09 21:11:16 2016 +0300 @@ -80,6 +80,10 @@ <source>permanent</source> <translation>постійний</translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -118,6 +122,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation>Ваша електронна адреса не є обов'язковою, але потрібною, якщо ви хочете, щоб ми з вами зв'язались.</translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished">Відгук</translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -491,6 +499,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -719,6 +734,10 @@ <source>Password:</source> <translation>Пароль:</translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -752,6 +771,10 @@ <source>Search for a hat:</source> <translation>Шукати капелюх:</translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1731,6 +1754,14 @@ <source>Show games in-progress</source> <translation>Показувати триваючі ігри</translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2235,6 +2266,10 @@ <source>Script parameter</source> <translation type="unfinished"></translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2707,6 +2742,10 @@ <source>Close</source> <translation>Закрити</translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">Висів</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2782,6 +2821,10 @@ <source>Use selected theme</source> <translation>Використати вибрану тему</translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3546,10 +3589,6 @@ <translation type="unfinished"></translation> </message> <message> - <source>Game messages flood detected - 2</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Warning! Joins flood protection activated</source> <translation type="unfinished"></translation> </message> @@ -3557,5 +3596,49 @@ <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_zh_CN.ts --- a/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Tue Feb 09 21:11:16 2016 +0300 @@ -20,12 +20,12 @@ <context> <name>AmmoSchemeModel</name> <message> - <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="697"/> + <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="758"/> <source>new</source> <translation type="unfinished">新</translation> </message> <message> - <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="703"/> + <location filename="../../../../QTfrontend/model/ammoSchemeModel.cpp" line="764"/> <source>copy of %1</source> <translation type="unfinished"></translation> </message> @@ -39,7 +39,7 @@ </message> <message> <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="41"/> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>IP</source> <translation type="unfinished">IP</translation> </message> @@ -74,22 +74,27 @@ <translation type="unfinished">取消</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="80"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="61"/> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="81"/> <source>you know why</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>Warning</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>Please, specify %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="87"/> + <location filename="../../../../QTfrontend/ui/dialog/bandialog.cpp" line="88"/> <source>nickname</source> <translation type="unfinished"></translation> </message> @@ -105,37 +110,42 @@ <context> <name>FeedbackDialog</name> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="91"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="92"/> <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="90"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="91"/> <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> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="63"/> + <source>Feedback</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="93"/> + <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="94"/> <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"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="125"/> <source>View</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="150"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="151"/> <source>Cancel</source> <translation type="unfinished">取消</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="178"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="179"/> <source>Send Feedback</source> <translation type="unfinished"></translation> </message> @@ -186,7 +196,7 @@ <context> <name>GameUIConfig</name> <message> - <location filename="../../../../QTfrontend/gameuiconfig.cpp" line="115"/> + <location filename="../../../../QTfrontend/gameuiconfig.cpp" line="116"/> <source>Guest</source> <translation type="unfinished"></translation> </message> @@ -239,72 +249,73 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="102"/> + <location filename="../../../../QTfrontend/main.cpp" line="105"/> <source>Cannot create directory %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="138"/> - <source>Usage</source> - <comment>command-line</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/main.cpp" line="139"/> - <source>OPTION</source> - <comment>command-line</comment> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/main.cpp" line="140"/> - <source>CONNECTSTRING</source> - <comment>command-line</comment> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/main.cpp" line="141"/> - <source>Options</source> + <source>Usage</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="142"/> - <source>Display this help</source> + <source>OPTION</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="143"/> - <source>Custom path for configuration data and user data</source> + <location filename="../../../../QTfrontend/main.cpp" line="148"/> + <source>CONNECTSTRING</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="144"/> - <source>Custom path to the game data folder</source> + <source>Options</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/main.cpp" line="145"/> + <source>Display this help</source> + <comment>command-line</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="146"/> + <source>Custom path for configuration data and user data</source> + <comment>command-line</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="147"/> + <source>Custom path to the game data folder</source> + <comment>command-line</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/main.cpp" line="148"/> <source>Hedgewars can use a %1 (e.g. "%2") to connect on start.</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="191"/> + <location filename="../../../../QTfrontend/main.cpp" line="196"/> <source>Malformed option argument: %1</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="231"/> + <location filename="../../../../QTfrontend/main.cpp" line="236"/> <source>Unknown option argument: %1</source> <comment>command-line</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/main.cpp" line="305"/> + <location filename="../../../../QTfrontend/main.cpp" line="310"/> <source>Failed to open data directory: %1 @@ -323,67 +334,67 @@ <context> <name>HWChatWidget</name> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="505"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="509"/> <source>%1 has joined</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="526"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="530"/> <source>%1 has left</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="528"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="532"/> <source>%1 has left (%2)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="657"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="661"/> <source>%1 has been removed from your ignore list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="667"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="671"/> <source>%1 has been added to your ignore list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="697"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="701"/> <source>%1 has been removed from your friends list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="706"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="710"/> <source>%1 has been added to your friends list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="772"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="776"/> <source>Stylesheet imported from %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="777"/> <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="781"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="785"/> <source>Couldn't read %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="789"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="793"/> <source>StyleSheet discarded</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="813"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="817"/> <source>StyleSheet saved to %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="816"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="820"/> <source>Failed to save StyleSheet to %1</source> <translation type="unfinished"></translation> </message> @@ -392,34 +403,34 @@ <name>HWForm</name> <message> <location filename="../../../../QTfrontend/hwform.cpp" line="156"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="476"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1399"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1418"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="474"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1397"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1416"/> <source>Guest</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="481"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="479"/> <source>DefaultTeam</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="485"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="483"/> <source>%1's Team</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="641"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="639"/> <source>Game aborted</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1080"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1078"/> <source>Hedgewars - Nick registered</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1081"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1079"/> <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 @@ -428,109 +439,109 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1109"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/> <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="1114"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1112"/> <source> Your password wasn't saved either.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1124"/> <source>Nickname</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1126"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1124"/> <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="1131"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1452"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1129"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1450"/> <source>No nickname supplied.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1131"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="1452"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1129"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1450"/> <source>Hedgewars - Empty nickname</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1158"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1156"/> <source>Hedgewars - Wrong password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1158"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1156"/> <source>You entered a wrong password.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1170"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1168"/> <source>Room password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1170"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1168"/> <source>The room is protected with password. Please, enter the password:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1186"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1184"/> <source>Try Again</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1556"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1554"/> <source>Hedgewars - Connection error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1556"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1554"/> <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="1990"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1988"/> <source>Hedgewars Demo File</source> <comment>File Types</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1991"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1989"/> <source>Hedgewars Save File</source> <comment>File Types</comment> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2052"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2050"/> <source>Demo name</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2052"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2050"/> <source>Demo name:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2120"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2118"/> <source>This page requires an internet connection.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1713"/> - <location filename="../../../../QTfrontend/hwform.cpp" line="2060"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1711"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2058"/> <source>Cannot save record to file %1</source> <translation>无法录入文件 %1</translation> </message> @@ -538,7 +549,7 @@ <context> <name>HWGame</name> <message> - <location filename="../../../../QTfrontend/game.cpp" line="252"/> + <location filename="../../../../QTfrontend/game.cpp" line="255"/> <source>A Fatal ERROR occured! - The game engine had to stop. We are very sorry for the inconvenience :( @@ -550,182 +561,190 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/game.cpp" line="383"/> + <location filename="../../../../QTfrontend/game.cpp" line="386"/> <location filename="../../../../QTfrontend/net/recorder.cpp" line="113"/> <source>en.txt</source> <translation>zh_CN.txt</translation> </message> <message> - <location filename="../../../../QTfrontend/game.cpp" line="433"/> + <location filename="../../../../QTfrontend/game.cpp" line="436"/> <source>Cannot open demofile %1</source> <translation>DEMO %1 打不开</translation> </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <location filename="../../../../QTfrontend/ui/dialog/input_ip.cpp" line="66"/> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="213"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="216"/> <source>Small tunnels</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="214"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/> <source>Medium tunnels</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="133"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="136"/> <source>Seed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="100"/> - <source>Map type:</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="103"/> - <source>Image map</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="104"/> - <source>Mission map</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="105"/> - <source>Hand-drawn</source> + <source>Map type:</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="106"/> - <source>Randomly generated</source> + <source>Image map</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="107"/> - <source>Random maze</source> + <source>Mission map</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="108"/> + <source>Hand-drawn</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="109"/> + <source>Randomly generated</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="110"/> + <source>Random maze</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="111"/> <source>Random perlin</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="118"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="121"/> <source>Random</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="142"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="145"/> <source>Map preview:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="181"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="184"/> <source>Load map drawing</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="187"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="190"/> <source>Edit map drawing</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="200"/> - <source>All</source> - <translation>全部</translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="201"/> - <source>Small</source> - <translation>小型</translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="202"/> - <source>Medium</source> - <translation>中型</translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="203"/> - <source>Large</source> - <translation>大型</translation> + <source>All</source> + <translation>全部</translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="204"/> - <source>Cavern</source> - <translation>洞穴</translation> + <source>Small</source> + <translation>小型</translation> </message> <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="205"/> + <source>Medium</source> + <translation>中型</translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="206"/> + <source>Large</source> + <translation>大型</translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="207"/> + <source>Cavern</source> + <translation>洞穴</translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="208"/> <source>Wacky</source> <translation>曲折</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="215"/> - <source>Large tunnels</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="216"/> - <source>Small islands</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="217"/> - <source>Medium islands</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="218"/> + <source>Large tunnels</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="219"/> + <source>Small islands</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="220"/> + <source>Medium islands</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="221"/> <source>Large islands</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="726"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="760"/> <source>Map size:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="733"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="767"/> <source>Maze style:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="740"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="774"/> <source>Style:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="754"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="789"/> <source>Mission:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="765"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="801"/> <source>Map:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="829"/> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="960"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="884"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="1012"/> <source>Theme: %1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="911"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="963"/> <source>Load drawn map</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="911"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="963"/> <source>Drawn Maps</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="911"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="963"/> <source>All files</source> <translation type="unfinished"></translation> </message> @@ -797,7 +816,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1576"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1574"/> <source>Quit reason: </source> <translation>退出原因:</translation> </message> @@ -837,6 +856,11 @@ <source>Password:</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../../../../QTfrontend/ui/dialog/input_password.cpp" line="59"/> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -862,17 +886,22 @@ <context> <name>HatPrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="83"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="63"/> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="84"/> <source>Search for a hat:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="119"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="120"/> <source>Cancel</source> <translation type="unfinished">取消</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="123"/> + <location filename="../../../../QTfrontend/ui/widget/hatprompt.cpp" line="124"/> <source>Use selected hat</source> <translation type="unfinished"></translation> </message> @@ -895,27 +924,27 @@ <context> <name>LibavInteraction</name> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="285"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="294"/> <source>Duration: %1m %2s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="297"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="306"/> <source>Video: %1x%2</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="301"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="310"/> <source>%1 fps</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="305"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="314"/> <source>Audio: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="309"/> + <location filename="../../../../QTfrontend/util/LibavInteraction.cpp" line="318"/> <source>unknown</source> <translation type="unfinished"></translation> </message> @@ -1070,34 +1099,34 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="48"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="49"/> <source>Load</source> <translation type="unfinished">读取</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="49"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="50"/> <source>Save</source> <translation type="unfinished">保存</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="78"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="79"/> <source>Load drawn map</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="78"/> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="86"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="79"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="87"/> <source>Drawn Maps</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="78"/> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="86"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="79"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="87"/> <source>All files</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="86"/> + <location filename="../../../../QTfrontend/ui/page/pagedrawmap.cpp" line="87"/> <source>Save drawn map</source> <translation type="unfinished"></translation> </message> @@ -1612,17 +1641,17 @@ <context> <name>PageRoomsList</name> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="85"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="93"/> <source>Search for a room:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="112"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="120"/> <source>Create room</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="116"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="124"/> <source>Join room</source> <translation type="unfinished"></translation> </message> @@ -1632,7 +1661,7 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="171"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="179"/> <source>Open server administration page</source> <translation type="unfinished"></translation> </message> @@ -1645,14 +1674,14 @@ <translation type="obsolete">加入</translation> </message> <message numerus="yes"> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="531"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="541"/> <source>%1 players online</source> <translation type="unfinished"> <numerusform></numerusform> </translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="169"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="177"/> <source>Admin features</source> <translation>管理员功能</translation> </message> @@ -1795,37 +1824,37 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="395"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="409"/> <source>None (Default)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="396"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="410"/> <source>Wrap (World wraps)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="397"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="411"/> <source>Bounce (Edges reflect)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="398"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="412"/> <source>Sea (Edges connect to sea)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="434"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="448"/> <source>Copy</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="435"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="449"/> <source>New</source> <translation>新游戏</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="436"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="450"/> <source>Delete</source> <translation>删除</translation> </message> @@ -1957,7 +1986,7 @@ <context> <name>QAction</name> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="260"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="262"/> <source>Kick</source> <translation>踢</translation> </message> @@ -1981,39 +2010,39 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="256"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="258"/> <source>Info</source> <translation>信息</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="264"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="266"/> <source>Ban</source> <translation>屏蔽</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="268"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="270"/> <source>Follow</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="272"/> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="895"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="274"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="905"/> <source>Ignore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="276"/> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="907"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="278"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="917"/> <source>Add friend</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="890"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="900"/> <source>Unignore</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="902"/> + <location filename="../../../../QTfrontend/ui/widget/chatwidget.cpp" line="912"/> <source>Remove friend</source> <translation type="unfinished"></translation> </message> @@ -2027,6 +2056,16 @@ <source>Show games in-progress</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="80"/> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="83"/> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2478,21 +2517,26 @@ </message> <message> <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="372"/> - <source>% Get Away Time</source> + <source>Air Mines</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="386"/> + <source>% Get Away Time</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="400"/> <source>World Edge</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="404"/> - <source>Script parameter</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="418"/> + <source>Script parameter</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="432"/> <source>Scheme Name:</source> <translation>设置名称:</translation> </message> @@ -2564,27 +2608,27 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="103"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="104"/> <source>Your Email</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="111"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="112"/> <source>Summary</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="121"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="122"/> <source>Send system information</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="136"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="137"/> <source>Description</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="164"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="165"/> <source>Type the security code:</source> <translation type="unfinished"></translation> </message> @@ -2638,7 +2682,7 @@ <context> <name>QLineEdit</name> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="957"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="955"/> <source>unnamed</source> <translation>无名</translation> </message> @@ -2665,12 +2709,12 @@ <context> <name>QMessageBox</name> <message> - <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="370"/> + <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="373"/> <source>Error</source> <translation>错误</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="371"/> + <location filename="../../../../QTfrontend/ui/widget/gamecfgwidget.cpp" line="374"/> <source>Cannot use the ammo '%1'!</source> <translation type="unfinished"></translation> </message> @@ -2685,82 +2729,82 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="986"/> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="534"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="984"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="549"/> <source>Cannot delete default scheme '%1'!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1012"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1010"/> <source>Please select a record from the list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1107"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1105"/> <source>Hedgewars - Nick not registered</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1515"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1513"/> <source>Unable to start server</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="1576"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="1574"/> <source>Connection to server is lost</source> <translation>服务器连接丢失</translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2127"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2125"/> <source>Not all players are ready</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2128"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2126"/> <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="349"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="350"/> <location filename="../../../../QTfrontend/util/MessageDialog.cpp" line="26"/> <source>Hedgewars - Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="359"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="360"/> <source>System Information Preview</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="374"/> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="385"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="375"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="386"/> <source>Failed to generate captcha</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="402"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="403"/> <source>Failed to download captcha</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="466"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="467"/> <source>Please fill out all fields. Email is optional.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2030"/> - <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="436"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2028"/> + <location filename="../../../../QTfrontend/ui/widget/feedbackdialog.cpp" line="437"/> <source>Hedgewars - Success</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2031"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2029"/> <source>All file associations have been set</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/hwform.cpp" line="2036"/> + <location filename="../../../../QTfrontend/hwform.cpp" line="2034"/> <source>File association failed.</source> <translation type="unfinished"></translation> </message> @@ -2828,38 +2872,38 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="492"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="502"/> <source>Room Name - Error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="493"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="503"/> <source>Please select room from the list</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="518"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="528"/> <source>Room Name - Are you sure?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="519"/> + <location filename="../../../../QTfrontend/ui/page/pageroomslist.cpp" line="529"/> <source>The game you are trying to join has started. Do you still want to join the room?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="533"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="548"/> <source>Schemes - Warning</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="542"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="557"/> <source>Schemes - Are you sure?</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="543"/> + <location filename="../../../../QTfrontend/ui/page/pagescheme.cpp" line="558"/> <source>Do you really want to delete the game scheme '%1'?</source> <translation type="unfinished"></translation> </message> @@ -2890,7 +2934,7 @@ <message> <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="146"/> <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="166"/> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="921"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="973"/> <source>File error</source> <translation type="unfinished"></translation> </message> @@ -2901,7 +2945,7 @@ </message> <message> <location filename="../../../../QTfrontend/ui/widget/drawmapwidget.cpp" line="167"/> - <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="922"/> + <location filename="../../../../QTfrontend/ui/widget/mapContainer.cpp" line="974"/> <source>Cannot open '%1' for reading</source> <translation type="unfinished"></translation> </message> @@ -3114,22 +3158,23 @@ <context> <name>RoomNamePrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="43"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="44"/> <source>Enter a name for your room.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="56"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="57"/> <source>set password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="72"/> - <source>Cancel</source> - <translation type="unfinished">取消</translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="73"/> + <source>Cancel</source> + <translation type="unfinished">取消</translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="35"/> + <location filename="../../../../QTfrontend/ui/widget/roomnameprompt.cpp" line="74"/> <source>Create room</source> <translation type="unfinished"></translation> </message> @@ -3182,22 +3227,22 @@ <translation type="unfinished">武器</translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="133"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="149"/> <source>Random Map</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="134"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="150"/> <source>Random Maze</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="135"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="151"/> <source>Random Perlin</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="136"/> + <location filename="../../../../QTfrontend/model/roomslistmodel.cpp" line="152"/> <source>Hand-drawn</source> <translation type="unfinished"></translation> </message> @@ -3205,22 +3250,27 @@ <context> <name>SeedPrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="42"/> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="34"/> + <source>Seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="43"/> <source>The map seed is the basis for all random values generated by the game.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="61"/> - <source>Cancel</source> - <translation type="unfinished">取消</translation> - </message> - <message> <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="62"/> + <source>Cancel</source> + <translation type="unfinished">取消</translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="63"/> <source>Set seed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="76"/> + <location filename="../../../../QTfrontend/ui/widget/seedprompt.cpp" line="77"/> <source>Close</source> <translation type="unfinished"></translation> </message> @@ -3295,17 +3345,22 @@ <context> <name>ThemePrompt</name> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="84"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="64"/> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="85"/> <source>Search for a theme:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="120"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="121"/> <source>Cancel</source> <translation type="unfinished">取消</translation> </message> <message> - <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="124"/> + <location filename="../../../../QTfrontend/ui/widget/themeprompt.cpp" line="125"/> <source>Use selected theme</source> <translation type="unfinished"></translation> </message> @@ -4015,39 +4070,39 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="134"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="133"/> <source>Axis</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="138"/> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="153"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="137"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="152"/> <source>(Up)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="142"/> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="157"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="141"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="156"/> <source>(Down)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="149"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="148"/> <source>Hat</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="161"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="160"/> <source>(Left)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="165"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="164"/> <source>(Right)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="173"/> + <location filename="../../../../QTfrontend/util/SDLInteraction.cpp" line="172"/> <source>Button</source> <translation type="unfinished"></translation> </message> @@ -4055,57 +4110,57 @@ <context> <name>server</name> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="11"/> + <location filename="../../../../QTfrontend/servermessages.h" line="15"/> <source>Restricted</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="12"/> - <source>Not room master</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="13"/> - <source>Corrupted hedgehogs info</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="14"/> - <source>too many teams</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="15"/> - <source>too many hedgehogs</source> - <translation type="unfinished"></translation> - </message> - <message> <location filename="../../../../QTfrontend/servermessages.h" line="16"/> - <source>There's already a team with same name in the list</source> + <source>Not room master</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="17"/> - <source>round in progress</source> + <source>Corrupted hedgehogs info</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="18"/> - <source>restricted</source> + <source>too many teams</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="19"/> - <source>REMOVE_TEAM: no such team</source> + <source>too many hedgehogs</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="20"/> + <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="21"/> + <source>round in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="22"/> + <source>restricted</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="23"/> + <source>REMOVE_TEAM: no such team</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="24"/> <source>Not team owner!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="9"/> + <location filename="../../../../QTfrontend/servermessages.h" line="13"/> <source>Less than two clans!</source> <translation type="unfinished"></translation> </message> @@ -4116,161 +4171,211 @@ </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="3"/> - <source>Voting closed</source> + <source>Your vote counted</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="4"/> - <source>New voting started</source> + <source>Voting closed</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="5"/> - <source>Voting expired</source> + <source>Pause toggled</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="6"/> - <source>kick</source> + <source>New voting started</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="7"/> - <source>map</source> + <source>Voting expired</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="8"/> + <source>kick</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="9"/> + <source>map</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="10"/> <source>pause</source> <translation type="unfinished">暂停</translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="21"/> - <source>Illegal room name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="22"/> - <source>Room with such name already exists</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="23"/> - <source>Nickname already chosen</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../../../../QTfrontend/servermessages.h" line="24"/> - <source>Illegal nickname</source> + <location filename="../../../../QTfrontend/servermessages.h" line="11"/> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="12"/> + <source>number of hedgehogs in team</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="25"/> - <source>Protocol already known</source> + <source>Illegal room name</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="26"/> - <source>Bad number</source> + <source>Room with such name already exists</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="27"/> - <source>Nickname is already in use</source> + <source>/maxteams: specify number from 2 to 8</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="28"/> - <source>No checker rights</source> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="29"/> - <source>Authentication failed</source> + <source>callvote kick: specify nickname</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="30"/> - <source>60 seconds cooldown after kick</source> + <source>callvote kick: no such user</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="31"/> - <source>kicked</source> + <source>callvote map: no such map</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="32"/> - <source>Reconnected too fast</source> + <source>callvote pause: no game in progress</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="33"/> - <source>Ping timeout</source> + <source>callvote hedgehogs: specify number from 1 to 8</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="34"/> - <source>bye</source> + <source>Nickname already chosen</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="35"/> - <source>No such room</source> + <source>Illegal nickname</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="36"/> - <source>Room version incompatible to your hedgewars version</source> + <source>Protocol already known</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="37"/> - <source>Joining restricted</source> + <source>Bad number</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="38"/> - <source>Registered users only</source> + <source>Nickname is already in use</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="39"/> - <source>You are banned in this room</source> + <source>No checker rights</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="40"/> - <source>Warning! Chat flood protection activated</source> + <source>Authentication failed</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="41"/> - <source>Excess flood</source> + <source>60 seconds cooldown after kick</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="42"/> - <source>Game messages flood detected - 1</source> + <source>kicked</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="43"/> - <source>Game messages flood detected - 2</source> + <source>Reconnected too fast</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="44"/> - <source>Warning! Joins flood protection activated</source> + <source>Ping timeout</source> <translation type="unfinished"></translation> </message> <message> <location filename="../../../../QTfrontend/servermessages.h" line="45"/> + <source>bye</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="46"/> + <source>No such room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="47"/> + <source>Room version incompatible to your hedgewars version</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="48"/> + <source>Joining restricted</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="49"/> + <source>Registered users only</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="50"/> + <source>You are banned in this room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="51"/> + <source>Warning! Chat flood protection activated</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="52"/> + <source>Excess flood</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="53"/> + <source>Game messages flood detected - 1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="54"/> + <source>Warning! Joins flood protection activated</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../../../QTfrontend/servermessages.h" line="55"/> <source>There's no voting going on</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../../../../QTfrontend/servermessages.h" line="10"/> + <location filename="../../../../QTfrontend/servermessages.h" line="14"/> <source>Empty config entry</source> <translation type="unfinished"></translation> </message> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Locale/hedgewars_zh_TW.ts --- a/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Tue Feb 09 21:11:16 2016 +0300 @@ -76,6 +76,10 @@ <source>permanent</source> <translation>永久</translation> </message> + <message> + <source>Ban player</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>DataManager</name> @@ -114,6 +118,10 @@ <source>Your email address is optional, but necessary if you want us to get back at you.</source> <translation>如果希望我們回覆你, 請留下你的電子郵件地址。</translation> </message> + <message> + <source>Feedback</source> + <translation type="unfinished">信息反饋</translation> + </message> </context> <context> <name>FreqSpinBox</name> @@ -469,6 +477,13 @@ </message> </context> <context> + <name>HWHostPortDialog</name> + <message> + <source>Connect to server</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>HWMapContainer</name> <message> <source>All</source> @@ -697,6 +712,10 @@ <source>Password:</source> <translation>密碼:</translation> </message> + <message> + <source>New Account</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>HWUploadVideoDialog</name> @@ -730,6 +749,10 @@ <source>Search for a hat:</source> <translation>搜索一頂帽子:</translation> </message> + <message> + <source>Choose a hat</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>KB</name> @@ -1677,6 +1700,14 @@ <source>Show games in-progress</source> <translation>顯示正在進行的遊戲</translation> </message> + <message> + <source>Show password protected</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Show join restricted</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QCheckBox</name> @@ -2165,6 +2196,10 @@ <source>Script parameter</source> <translation type="unfinished">腳本參數</translation> </message> + <message> + <source>Air Mines</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>QLineEdit</name> @@ -2633,6 +2668,10 @@ <source>Close</source> <translation>關閉</translation> </message> + <message> + <source>Seed</source> + <translation type="unfinished">種子</translation> + </message> </context> <context> <name>SelWeaponWidget</name> @@ -2709,6 +2748,10 @@ <source>Use selected theme</source> <translation type="unfinished">使用選定的主題</translation> </message> + <message> + <source>Choose a theme</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>binds</name> @@ -3474,7 +3517,7 @@ </message> <message> <source>Game messages flood detected - 2</source> - <translation type="unfinished">已經偵測到遊戲訊息氾濫 - 2</translation> + <translation type="obsolete">已經偵測到遊戲訊息氾濫 - 2</translation> </message> <message> <source>Warning! Joins flood protection activated</source> @@ -3484,5 +3527,49 @@ <source>There's no voting going on</source> <translation type="unfinished">沒有正在進行的投票</translation> </message> + <message> + <source>Your vote counted</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Pause toggled</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>new seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>number of hedgehogs in team</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>/maxteams: specify number from 2 to 8</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Available callvote commands: kick <nickname>, map <name>, pause, newseed, hedgehogs</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: specify nickname</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote kick: no such user</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote map: no such map</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote pause: no game in progress</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>callvote hedgehogs: specify number from 1 to 8</source> + <translation type="unfinished"></translation> + </message> </context> </TS> diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua Tue Feb 09 21:11:16 2016 +0300 @@ -184,7 +184,8 @@ ------------- other functions --------------- function isHeroNextToRunner() - if GetHealth(hero.gear) and math.abs(GetX(hero.gear) - GetX(runner.gear)) < 75 and + if GetGearType(hero.gear) == gtHedgehog and GetGearType(runner.gear) == gtHedgehog and + math.abs(GetX(hero.gear) - GetX(runner.gear)) < 75 and math.abs(GetY(hero.gear) - GetY(runner.gear)) < 75 and StoppedGear(hero.gear) then return true end diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua Tue Feb 09 21:11:16 2016 +0300 @@ -36,6 +36,9 @@ local target = nil local last_hit_time = 0 + +local cinematic = false + -- This is a custom function to make it easier to -- spawn more targets with just one line of code -- You may define as many custom functions as you @@ -48,6 +51,10 @@ end function blowUp(x, y) + if cinematic == false then + cinematic = true + SetCinematicMode(true) + end -- adds some TNT gear = AddGear(x, y, gtDynamite, 0, 0, 0, 0) end @@ -178,13 +185,20 @@ -- This function is called before a gear is destroyed. -- We use it to count the number of targets destroyed. function onGearDelete(gear) + local gt = GetGearType(gear) - if GetGearType(gear) == gtCase then + if gt == gtCase then game_lost = true return end - if (GetGearType(gear) == gtTarget) then + if (gt == gtDynamite) and cinematic then + cinematic = false + SetCinematicMode(false) + return + end + + if gt == gtTarget then -- remember when the target was hit for adjusting the camera last_hit_time = TurnTimeLeft -- Add one point to our score/counter diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Missions/Training/User_Mission_-_That_Sinking_Feeling.lua --- a/share/hedgewars/Data/Missions/Training/User_Mission_-_That_Sinking_Feeling.lua Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_That_Sinking_Feeling.lua Tue Feb 09 21:11:16 2016 +0300 @@ -12,6 +12,7 @@ local waterPix = 0 local frig = 0 local watGear = nil +local cinematic = false -- allow skipping of the intro via hitting precise key function onPrecise() @@ -68,6 +69,8 @@ function onGameStart() + cinematic = true + SetCinematicMode(true) SendHealthStatsOff() ShowMission(loc("That Sinking Feeling"), loc("Challenge"), loc("Save as many hapless hogs as possible!"), 4, 1) @@ -207,6 +210,11 @@ -- start the water rising when the intro is finished if introStage == 110 then + if cinematic then + SetCinematicMode(false) + cinematic = false + end + waterCounter = waterCounter + 1 if (waterCounter == 100) and (waterPix < 1615) then waterCounter = 0 diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Scripts/Multiplayer/Continental_supplies.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/Continental_supplies.lua Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Continental_supplies.lua Tue Feb 09 21:11:16 2016 +0300 @@ -727,7 +727,7 @@ --============================================================================ --for custom made continent, follows the same standards as the globalism one. You can make your continent with <Name>~<Information>~<Weapons>. Take the weapons generated from globalism, if you want a GUI :P ---weapons=<ammo><types>, ammo = ascii[116(1 ammo) to 125(inf ammo)] types = ascii[36(Grenade), 37(Clusterbomb) to 90(knife)] see https://code.google.com/p/hedgewars/wiki/AmmoTypes +--weapons=<ammo><types>, ammo = ascii[116(1 ammo) to 125(inf ammo)] types = ascii[36(Grenade), 37(Clusterbomb) to 90(knife)] see http://hedgewars.org/kb/AmmoTypes --ex "Own continent~this continent rocks!~tZ}$" will get 1 knife and inf grenades function onParameters() diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Scripts/Multiplayer/Highlander.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/Highlander.lua Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Highlander.lua Tue Feb 09 21:11:16 2016 +0300 @@ -242,6 +242,8 @@ EnableGameFlags(gfInfAttack, gfRandomOrder, gfPerHogAmmo) DisableGameFlags(gfResetWeps, gfSharedAmmo) HealthCaseProb = 100 + Goals = loc("Highlander: Eliminate enemy hogs and take their weapons.") .."|" .. + loc("Weapons are reset on end of turn.") end function onGameStart() @@ -271,16 +273,6 @@ --WriteLnToConsole('utiltot:'..utiltot..' atktot:'..atktot) - ShowMission ( - loc("HIGHLANDER"), - loc("Not all hogs are born equal."), - - "- " .. loc("Eliminate enemy hogs and take their weapons.") .. "|" .. - "- " .. loc("Per-Hog Ammo") .. "|" .. - "- " .. loc("Weapons reset.") .. "|" .. - "- " .. loc("Unlimited Attacks") .. "|" .. - "", 4, 4000 - ) runOnGears(StartingSetUp) runOnGears(ConvertValues) diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Scripts/Multiplayer/ShoppaMap.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/ShoppaMap.lua Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Scripts/Multiplayer/ShoppaMap.lua Tue Feb 09 21:11:16 2016 +0300 @@ -4,14 +4,26 @@ -- Overall padding for roping freedom local Padding = 430 +local TeamRope = false function onParameters() parseParams() if params["pad"] ~= nil then Padding = params["pad"] end + if params["teamrope"] ~= nil then + TeamRope = true + end end +function onGearAdd(gear) + if GetGearType(gear) == gtRope and TeamRope then + SetTag(gear,1) + SetGearValues(gear,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,GetClanColor(GetHogClan(CurrentHedgehog))) + end +end + + -- This could probably use less points and more precision -- 700x700 for object space function DrawStar(x, y, d, f) diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Scripts/OfficialChallenges.lua --- a/share/hedgewars/Data/Scripts/OfficialChallenges.lua Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Scripts/OfficialChallenges.lua Tue Feb 09 21:11:16 2016 +0300 @@ -26,6 +26,10 @@ return("Racer Challenge #14") elseif LandDigest == "M-528106034Scripts/Multiplayer/Racer.lua" then return("Racer Challenge #16") + elseif LandDigest == "M-534640804Scripts/Multiplayer/Racer.lua" then + return("Racer Challenge #18") + elseif LandDigest == "M-1839546856Scripts/Multiplayer/Racer.lua" then + return("Racer Challenge #19") end -- challenges without border elseif LandDigest == "M-134869715Scripts/Multiplayer/Racer.lua" then diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/Default_es/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Default_es/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/Default_es/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/Default_ru/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Default_ru/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/Default_ru/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/HillBilly/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/HillBilly/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/HillBilly/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt Fri Jan 01 19:15:32 2016 +0300 +++ b/share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt Tue Feb 09 21:11:16 2016 +0300 @@ -12,7 +12,7 @@ Illgetyou.ogg Incoming.ogg Jump*.ogg -JustYouwait.ogg +Justyouwait.ogg Kamikaze.ogg Laugh.ogg Melon.ogg diff -r caa1e84c3ac2 -r b69f5f22a3ba share/hedgewars/Data/Themes/Castle/LandBackTex.png diff -r caa1e84c3ac2 -r b69f5f22a3ba tools/docgen.sh --- a/tools/docgen.sh Fri Jan 01 19:15:32 2016 +0300 +++ b/tools/docgen.sh Tue Feb 09 21:11:16 2016 +0300 @@ -25,13 +25,7 @@ branch=$(hg identify -b) rev=$(hg identify -rdefault -i) -#branchurl="<a href=http://code.google.com/p/hedgewars/source/list?name=${branch}>${branch}</a>" -#revurl="<a href=http://code.google.com/p/hedgewars/source/detail?r=${rev}>${rev}</a>" - -branchurl="$branch" -revurl="$rev" - -export PROJECT_NUMBER="${branchurl} branch, ${revurl}" +export PROJECT_NUMBER="${branch} branch, ${rev}" export OUTPUT_DIRECTORY fi diff -r caa1e84c3ac2 -r b69f5f22a3ba tools/rgit2hg.sh --- a/tools/rgit2hg.sh Fri Jan 01 19:15:32 2016 +0300 +++ b/tools/rgit2hg.sh Tue Feb 09 21:11:16 2016 +0300 @@ -26,7 +26,7 @@ echo "Checking $url ..." echo page=$(wget -q -O- "$url") - author=$(echo "$page" | sed -rn 's/^.*"author-name">(<[^>]*>)*([^ <]*).*/\2/ p') + author=$(echo "$page" | sed -rn '1,/"user-mention"/{s/^.*"user-mention"( *[^>]*)?> *([^ <]*).*$/\2/ p}') if [ -z "$author" ]; then echo 'Couldn'\''t find author! Skipping '"$1"' ...' >&2 shift @@ -45,13 +45,18 @@ echo result=$(hg log -R "$HW_HG" -u "$author" -d "$date" -v -l1) if [ -z "$result" ]; then + echo 'No match with this author'\''s name. It might differ, so let'\''s try using date only ...' + echo + result=$(hg log -R "$HW_HG" -d "$date" -v) + fi + if [ -z "$result" ]; then echo 'No match :(' shift continue fi rev=$(echo "$result" | sed 's/^.*://;q') echo 'Found match: r'"$rev" - echo 'Link: https://code.google.com/p/hedgewars/source/detail?r='"$rev" + echo 'Link: http://hg.hedgewars.org/hedgewars/rev/'"$rev" echo echo "$result" # proceed to next parameter