--- a/.hgtags Thu Aug 04 17:41:07 2011 +0200
+++ b/.hgtags Thu Aug 04 17:44:55 2011 +0200
@@ -11,14 +11,34 @@
ae71dff40ecc405a55647b0f52f628674c1ebb51 0.9.14.1-release
ae0c6c35414ddc120c8ae94035f287f03a752e78 Hedgewars-iOS-1.2.3
19ba506ed86b6306f7cd01b2613069391f4e34e6 0.9.13-release
+19ba506ed86b6306f7cd01b2613069391f4e34e6 0.9.13
+0000000000000000000000000000000000000000 0.9.13
7d8d62a5566ed84688c596b8f55e83cfd171683e 0.9.12-release
+7d8d62a5566ed84688c596b8f55e83cfd171683e 0.9.12
+0000000000000000000000000000000000000000 0.9.12
89d0fa6734af24e439755b102080cf6268c50aa6 0.9.11-release
+89d0fa6734af24e439755b102080cf6268c50aa6 0.9.11
+0000000000000000000000000000000000000000 0.9.11
990f341a2332a7bef0822b313854544228375e36 0.9.10-release
+990f341a2332a7bef0822b313854544228375e36 0.9.10
+0000000000000000000000000000000000000000 0.9.10
8c3e71880f492c61086c2ca2541b52f82a5957b0 0.9.9.2-release
+8c3e71880f492c61086c2ca2541b52f82a5957b0 0.9.9.2
+0000000000000000000000000000000000000000 0.9.9.2
040cfeac98127d35f22ac8433b06b09e50d5b28f 0.9.8-release
44cc464de8f320e8018ed9e9cbb7281fd42d0a00 0.9.7-release
a32f1eed51a6df2513d471cb849eb110545c50b3 0.9.6-release
6bc4389344c7d7f41bcbc46f986c1dcf88846189 0.9.5-release
52c7981594f6bc3a7ed1b297b80cb38082015401 0.9.4-release
+52c7981594f6bc3a7ed1b297b80cb38082015401 0.9.4
+0000000000000000000000000000000000000000 0.9.4
9b2abea1071f83da8fbda70b0bf6cec0ca481b07 0.9.3-release
+9b2abea1071f83da8fbda70b0bf6cec0ca481b07 0.9.3
+0000000000000000000000000000000000000000 0.9.3
69f1dc50a1faddf1a52080600a3f4771bedd45c1 0.9.2-release
+69f1dc50a1faddf1a52080600a3f4771bedd45c1 0.9.2
+0000000000000000000000000000000000000000 0.9.2
+fee68e3a303998fdfcc69f74775dc84a36f587fb 0.9.9
+0000000000000000000000000000000000000000 0.9.9
+fee68e3a303998fdfcc69f74775dc84a36f587fb 0.9.9.1
+0000000000000000000000000000000000000000 0.9.9.1
--- a/CMakeLists.txt Thu Aug 04 17:41:07 2011 +0200
+++ b/CMakeLists.txt Thu Aug 04 17:44:55 2011 +0200
@@ -1,11 +1,15 @@
project(hedgewars)
+
+#initialise cmake environment
cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
FOREACH(policy CMP0003 CMP0012)
IF(POLICY ${policy})
CMAKE_POLICY(SET ${policy} NEW)
ENDIF()
ENDFOREACH()
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
+
#detect Mercurial revision (if present)
set(version_suffix "-dev") #UNSET THIS VARIABLE AT RELEASE TIME
@@ -20,7 +24,7 @@
OUTPUT_VARIABLE version_suffix
)
STRING(REGEX REPLACE "[^+]" "" HGCHANGED ${version_suffix})
- STRING(REGEX REPLACE "([0-9a-zA-Z]+)(.*) ([0-9]+)(.*)" "\\3:\\1" version_suffix ${version_suffix})
+ STRING(REGEX REPLACE "([0-9a-zA-Z]+)(.*) ([0-9]+)(.*)" "\\3-\\1" version_suffix ${version_suffix})
IF (HGCHANGED)
MESSAGE(STATUS "Building revision ${version_suffix} (SOURCE CODE MODIFIED)")
ELSE()
@@ -33,11 +37,14 @@
set(HW_DEV false)
ENDIF()
-set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
-set( CPACK_PACKAGE_VERSION_MAJOR 0 )
-set( CPACK_PACKAGE_VERSION_MINOR 9 )
-set( CPACK_PACKAGE_VERSION_PATCH 16${version_suffix} )
+#versioning
+set(CPACK_PACKAGE_VERSION_MAJOR 0)
+set(CPACK_PACKAGE_VERSION_MINOR 9)
+set(CPACK_PACKAGE_VERSION_PATCH 16${version_suffix})
+set(HEDGEWARS_PROTO_VER 38)
+set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
+
#set some safe values
IF(NOT WITH_SERVER)
@@ -49,6 +56,7 @@
set(target_dir "bin")
+#bundle .app setup
if(APPLE)
set(CMAKE_FIND_FRAMEWORK "FIRST")
@@ -165,8 +173,6 @@
endif()
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
-set( HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}" )
-set( HEDGEWARS_PROTO_VER 38 )
if(WITH_SERVER)
find_program(ghc_executable ghc)
@@ -195,8 +201,8 @@
add_subdirectory(tools)
endif()
-# CPack vars
+# CPack variables
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hedgewars, a free turn-based strategy")
set(CPACK_PACKAGE_VENDOR "Hedgewars Project")
set(CPACK_PACKAGE_FILE_NAME "hedgewars-${HEDGEWARS_VERSION}")
@@ -278,3 +284,4 @@
)
include(CPack)
+
--- a/ChangeLog.txt Thu Aug 04 17:41:07 2011 +0200
+++ b/ChangeLog.txt Thu Aug 04 17:44:55 2011 +0200
@@ -1,6 +1,46 @@
+ features
* bugfixes
+0.9.15 -> ???:
+ + New modes: The Specialists, Space Invasion
+ + Installing content (anything under Data/ - maps, sounds, and any such stuff) to user profile allows custom adding/overriding of any Data/ content
+ + Sudden Death art
+ + New Weapon/Utility: Land Spray Gun
+ + New Game mode: Tag team
+ + Allow up to 8 teams in a game
+ + Shoppa scheme by default resets ammo
+ + Shots are on a tenth of a second delay instead of a 1 and a quarter second delay (fast deagle/portal fire)
+ + Defective mines explode if they take enough damage
+ + Rope head can attach to hogs/crates/barrels again (rope still passes through them)
+ + Control of grenade bounce
+ + Drill Strike bombs don't explode when leaving ground, but after a (customizable!) timer
+ + Ukranian localization of Default voice. support for localized voices
+ + Theme cleanup, including the new theme config file change
+ + Improvements in scoring and tracking damage
+ + Camera tracking now toggleable
+ + Mudball does not end turn
+ + Indicator for height of plane when using napalm
+ + Land smoothing (looks less pixelated on generation and damage)
+ + Improved lua script support (e.g. possibility to change hats)
+ * Prevent portaling to impossible locations better
+ * Snow accumulates more smoothly
+ * Rope should be less sticky now
+ * Fix for last portal shot always being yellow
+ * More accurate napalm strike drop location
+ * AI fixes
+ * Fixed locales, such as korean
+ * Code refactoring
+ * Various bug/leak fixes
+
+Frontend/Menu and Netgame:
+ + Drawing straight lines in drawn map mode
+ + Autokick ignored players joining your room
+ + Improved nick sorting in lobby and rooms. (not case-sensitive, letters first, friend @ top, ignored @ bottom)
+ + Display player count in lobby
+ + Lobby: Player names of online players can be clicked in chat directly so that you don't have to find them in the player list
+ * Fix invisible icons in popup menus
+ * Various fixes and adjustments
+
0.9.14 -> 0.9.15:
+ Ability to create, save and load hand drawn maps
+ New maps: Capture the Flag (Blizzard) Map
--- a/QTfrontend/gamecfgwidget.cpp Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/gamecfgwidget.cpp Thu Aug 04 17:44:55 2011 +0200
@@ -49,10 +49,13 @@
QGridLayout *GBoxOptionsLayout = new QGridLayout(GBoxOptions);
- GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Gameplay"), GBoxOptions), 0, 0);
+ QLabel *titleLabel = new QLabel(QLabel::tr("Game Options"), GBoxOptions);
+ titleLabel->setMargin(7); // TODO: make the text larger/richer!!!!
+ GBoxOptionsLayout->addWidget(titleLabel, 0, 0, 1, 0, Qt::AlignHCenter);
+ GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Style"), GBoxOptions), 1, 0);
Scripts = new QComboBox(GBoxOptions);
- GBoxOptionsLayout->addWidget(Scripts, 0, 1);
+ GBoxOptionsLayout->addWidget(Scripts, 1, 1);
Scripts->addItem("Normal");
Scripts->insertSeparator(1);
@@ -91,7 +94,7 @@
connect(Scripts, SIGNAL(currentIndexChanged(int)), this, SLOT(scriptChanged(int)));
QWidget *SchemeWidget = new QWidget(GBoxOptions);
- GBoxOptionsLayout->addWidget(SchemeWidget, 1, 0, 1, 2);
+ GBoxOptionsLayout->addWidget(SchemeWidget, 2, 0, 1, 2);
QGridLayout *SchemeWidgetLayout = new QGridLayout(SchemeWidget);
SchemeWidgetLayout->setMargin(0);
@@ -100,7 +103,7 @@
SchemeWidgetLayout->addWidget(GameSchemes, 0, 2);
connect(GameSchemes, SIGNAL(currentIndexChanged(int)), this, SLOT(schemeChanged(int)));
- SchemeWidgetLayout->addWidget(new QLabel(QLabel::tr("Game scheme"), SchemeWidget), 0, 0);
+ SchemeWidgetLayout->addWidget(new QLabel(QLabel::tr("Scheme"), SchemeWidget), 0, 0);
QPixmap pmEdit(":/res/edit.png");
@@ -127,8 +130,6 @@
SchemeWidgetLayout->addWidget(goToWeaponPage, 1, 3);
connect(goToWeaponPage, SIGNAL(clicked()), this, SLOT(jumpToWeapons()));
- //GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Bind schemes with weapons"), GBoxOptions), 2, 0);
-
bindEntries = new QCheckBox(SchemeWidget);
bindEntries->setToolTip(tr("When this option is enabled selecting a game scheme will auto-select a weapon"));
bindEntries->setChecked(true);
@@ -136,7 +137,6 @@
bindEntries->setStyleSheet( "QCheckBox::indicator:checked { image: url(\":/res/lock.png\"); }"
"QCheckBox::indicator:unchecked { image: url(\":/res/unlock.png\"); }" );
SchemeWidgetLayout->addWidget(bindEntries, 0, 1, 0, 1, Qt::AlignVCenter);
- //GBoxOptionsLayout->addWidget(bindEntries, 2, 2);
connect(pMapContainer, SIGNAL(seedChanged(const QString &)), this, SLOT(seedChanged(const QString &)));
connect(pMapContainer, SIGNAL(mapChanged(const QString &)), this, SLOT(mapChanged(const QString &)));
--- a/QTfrontend/hwconsts.h Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/hwconsts.h Thu Aug 04 17:44:55 2011 +0200
@@ -99,13 +99,24 @@
// see http://en.wikipedia.org/wiki/List_of_colors
-#define HW_TEAMCOLOR_ARRAY { 0xff007fff, /* azure */ \
- 0xffdd0000, /* classic red */ \
- 0xff3e9321, /* classic green */ \
- 0xffa23dbb, /* classic purple */ \
- 0xffffb347, /* pastel orange */ \
- 0xffcfcfc4, /* pastel gray */ \
- 0xffbff000, /* lime */ \
- 0xffffef00, /* yellow */ \
+/*define HW_TEAMCOLOR_ARRAY {0xff007fff, /. azure ./ \
+ 0xffdd0000, /. classic red ./ \
+ 0xff3e9321, /. classic green ./ \
+ 0xffa23dbb, /. classic purple ./ \
+ 0xffffb347, /. pastel orange ./ \
+ 0xffcfcfc4, /. pastel gray ./ \
+ 0xffbff000, /. lime ./ \
+ 0xffffef00, /. yellow ./ \
+ // add new colors here
+ 0 }*/
+#define HW_TEAMCOLOR_ARRAY { 0xffd12b42, /* red */ \
+ 0xff4980c1, /* blue */ \
+ 0xff6ab530, /* green */ \
+ 0xffbc64c4, /* purple */ \
+ 0xffe76d14, /* orange */ \
+ 0xff3fb6e6, /* cyan */ \
+ 0xffe3e90c, /* yellow */ \
+ 0xff61d4ac, /* mint */ \
+ 0xfff1c3e1, /* pink */ \
/* add new colors here */ \
0 }
--- a/QTfrontend/mapContainer.cpp Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/mapContainer.cpp Thu Aug 04 17:44:55 2011 +0200
@@ -175,7 +175,7 @@
connect(cbTemplateFilter, SIGNAL(activated(int)), this, SLOT(setTemplateFilter(int)));
maze_size_label = new QLabel(tr("Type"), mapWidget);
- mainLayout.addWidget(maze_size_label, 2, 0);
+ mapLayout->addWidget(maze_size_label, 2, 0);
maze_size_label->hide();
cbMazeSize = new QComboBox(mapWidget);
cbMazeSize->addItem(tr("Small tunnels"), 0);
--- a/QTfrontend/pagemain.cpp Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/pagemain.cpp Thu Aug 04 17:44:55 2011 +0200
@@ -91,7 +91,7 @@
Tips << tr("Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.", "Tips");
Tips << tr("The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.", "Tips");
Tips << tr("The Piano Strike is the most damaging air strike. You'll lose the hedgehog performing it, so there's a huge downside as well.", "Tips");
- Tips << tr("The Homing Bee can be tricky to use. Its turn radius depends on it's velocity, so try to not use full power.", "Tips");
+ Tips << tr("The Homing Bee can be tricky to use. Its turn radius depends on its velocity, so try to not use full power.", "Tips");
Tips << tr("Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.", "Tips");
Tips << tr("The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.", "Tips");
Tips << tr("If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.", "Tips");
--- a/QTfrontend/pageoptions.cpp Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/pageoptions.cpp Thu Aug 04 17:44:55 2011 +0200
@@ -328,6 +328,12 @@
CBStereoMode->addItem(QComboBox::tr("Side-by-side"));
CBStereoMode->addItem(QComboBox::tr("Top-Bottom"));
CBStereoMode->addItem(QComboBox::tr("Wiggle"));
+ CBStereoMode->addItem(QComboBox::tr("Red/Cyan grayscale"));
+ CBStereoMode->addItem(QComboBox::tr("Cyan/Red grayscale"));
+ CBStereoMode->addItem(QComboBox::tr("Red/Blue grayscale"));
+ CBStereoMode->addItem(QComboBox::tr("Blue/Red grayscale"));
+ CBStereoMode->addItem(QComboBox::tr("Red/Green grayscale"));
+ CBStereoMode->addItem(QComboBox::tr("Green/Red grayscale"));
connect(CBStereoMode, SIGNAL(currentIndexChanged(int)), this, SLOT(forceFullscreen(int)));
GBAstereolayout->addWidget(CBStereoMode);
--- a/QTfrontend/teamselhelper.cpp Thu Aug 04 17:41:07 2011 +0200
+++ b/QTfrontend/teamselhelper.cpp Thu Aug 04 17:44:55 2011 +0200
@@ -49,7 +49,7 @@
QIcon(QString(":/res/botlevels/net%1.png").arg(m_team.difficulty))
: QIcon(QString(":/res/botlevels/%1.png").arg(m_team.difficulty));
- butt = new QPushButton(difficultyIcon, team.TeamName, this);
+ butt = new QPushButton(difficultyIcon, team.TeamName.replace("&","&&"), this);
butt->setFlat(true);
butt->setToolTip(team.Owner);
mainLayout.addWidget(butt);
--- a/gameServer/Actions.hs Thu Aug 04 17:41:07 2011 +0200
+++ b/gameServer/Actions.hs Thu Aug 04 17:44:55 2011 +0200
@@ -45,6 +45,8 @@
| KickClient ClientIndex
| KickRoomClient ClientIndex
| BanClient NominalDiffTime B.ByteString ClientIndex
+ | BanIP B.ByteString NominalDiffTime B.ByteString
+ | BanList
| ChangeMaster
| RemoveClientTeams ClientIndex
| ModifyClient (ClientInfo -> ClientInfo)
@@ -393,12 +395,25 @@
modify (\s -> s{clientIndex = Just banId})
clHost <- client's host
currentTime <- io getCurrentTime
- let msg = B.concat ["Ban for ", B.pack . show $ seconds, "seconds (", reason, ")"]
+ let msg = B.concat ["Ban for ", B.pack . show $ seconds, " (", reason, ")"]
mapM_ processAction [
AddIP2Bans clHost msg (addUTCTime seconds currentTime)
, KickClient banId
]
+processAction (BanIP ip seconds reason) = do
+ currentTime <- io getCurrentTime
+ let msg = B.concat ["Ban for ", B.pack . show $ seconds, " (", reason, ")"]
+ processAction $
+ AddIP2Bans ip msg (addUTCTime seconds currentTime)
+
+processAction BanList = do
+ ch <- client's sendChan
+ bans <- gets (bans . serverInfo)
+ processAction $
+ AnswerClients [ch] ["BANLIST", B.pack $ show bans]
+
+
processAction (KickRoomClient kickId) = do
modify (\s -> s{clientIndex = Just kickId})
@@ -442,15 +457,13 @@
si <- gets serverInfo
let validBans = filter (checkNotExpired clTime) $ bans si
let ban = L.find (checkBan clHost clNick) $ validBans
- when (isJust ban) $
- mapM_ processAction [
+ mapM_ processAction $
ModifyServerInfo (\s -> s{bans = validBans})
- , ByeClient (getBanReason $ fromJust ban)
- ]
+ : [ByeClient (getBanReason $ fromJust ban) | isJust ban]
where
checkNotExpired testTime (BanByIP _ _ time) = testTime `diffUTCTime` time <= 0
checkNotExpired testTime (BanByNick _ _ time) = testTime `diffUTCTime` time <= 0
- checkBan ip _ (BanByIP bip _ _) = bip == ip
+ checkBan ip _ (BanByIP bip _ _) = bip `B.isPrefixOf` ip
checkBan _ n (BanByNick bn _ _) = bn == n
getBanReason (BanByIP _ msg _) = msg
getBanReason (BanByNick _ msg _) = msg
--- a/gameServer/HWProtoLobbyState.hs Thu Aug 04 17:41:07 2011 +0200
+++ b/gameServer/HWProtoLobbyState.hs Thu Aug 04 17:44:55 2011 +0200
@@ -154,6 +154,16 @@
cl <- thisClient
banId <- clientByNick banNick
return [BanClient 60 reason (fromJust banId) | isAdministrator cl && isJust banId && fromJust banId /= ci]
+
+handleCmd_lobby ["BANIP", ip, reason, duration] = do
+ (ci, _) <- ask
+ cl <- thisClient
+ return [BanIP ip (readInt_ duration) reason | isAdministrator cl]
+
+handleCmd_lobby ["BANLIST"] = do
+ (ci, _) <- ask
+ cl <- thisClient
+ return [BanList | isAdministrator cl]
handleCmd_lobby ["SET_SERVER_VAR", "MOTD_NEW", newMessage] = do
--- a/hedgewars/ArgParsers.inc Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/ArgParsers.inc Thu Aug 04 17:44:55 2011 +0200
@@ -50,7 +50,14 @@
UserNick:= DecodeBase64(ParamStr(14));
val(ParamStr(15), cReducedQuality);
val(ParamStr(16), tmp);
- cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp)));
+ cGrayScale:= false;
+ if (tmp > 9) and (tmp < 16) then
+ begin
+ cGrayScale:= true;
+ cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp-9)))
+ end
+ else if tmp <= 9 then cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp)))
+ else cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp-6)));
cLocaleFName:= ParamStr(17);
end;
--- a/hedgewars/GSHandlers.inc Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/GSHandlers.inc Thu Aug 04 17:44:55 2011 +0200
@@ -156,12 +156,8 @@
AddCaption(Format(GetEventString(eidDrowned), Gear^.Hedgehog^.Name), cWhiteColor, capgrpMessage);
end
end
- else if Gear^.Kind = gtFlake then
- begin
- DeleteGear(Gear);
- exit
- end
- else Gear^.doStep := @doStepDrowningGear
+ else Gear^.doStep := @doStepDrowningGear;
+ if Gear^.Kind = gtFlake then exit // skip splashes
end;
if ((not isSubmersible) and (Y < cWaterLine + 64 + Gear^.Radius)) or
(isSubmersible and (Y < cWaterLine + 2 + Gear^.Radius) and ((CurAmmoGear^.Pos = 0) and (CurAmmoGear^.dY < _0_01))) then
@@ -361,12 +357,12 @@
else
Gear^.State := Gear^.State or gstMoving;
- if (Gear^.nImpactSounds > 0) then
- if ((Gear^.Damage <> 0) or ((Gear^.State and (gstCollision or gstMoving)) = (gstCollision or
- gstMoving))) and
- ((Gear^.dX.QWordValue > _0_1.QWordValue) or (Gear^.dY.QWordValue > _0_1.QWordValue)) then
- PlaySound(TSound(ord(Gear^.ImpactSound) + LongInt(GetRandom(Gear^.nImpactSounds))), true
- );
+ if (Gear^.nImpactSounds > 0) and
+ ((Gear^.Damage <> 0) or
+ ((Gear^.State and (gstCollision or gstMoving)) = (gstCollision or gstMoving))) and
+ ((Gear^.dX.QWordValue > _0_1.QWordValue) or
+ (Gear^.dY.QWordValue > _0_1.QWordValue)) then
+ PlaySound(TSound(ord(Gear^.ImpactSound) + LongInt(GetRandom(Gear^.nImpactSounds))), true);
end;
////////////////////////////////////////////////////////////////////////////////
@@ -500,9 +496,9 @@
gX := hwRound(Gear^.X);
gY := hwRound(Gear^.Y);
//doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 5, EXPLAutoSound);
- for i:= 0 to 20 do
+ for i:= 0 to 24 do
begin
- dX := AngleCos(i * 2) * ((_0_1*(i div 5))) * (GetRandom + _1);
+ dX := AngleCos(i * 2) * ((_0_15*(i div 5))) * (GetRandom + _1);
dY := AngleSin(i * 8) * _0_5 * (GetRandom + _1);
Fire := AddGear(gX, gY, gtFlame, 0, dX, dY, 0);
Fire^.State := Fire^.State or gsttmpFlag;
@@ -595,6 +591,7 @@
draw:= false;
if gun then
begin
+ Gear^.State:= Gear^.State and not gstInvisible;
doStepFallingGear(Gear);
CheckCollision(Gear);
if ((Gear^.State and gstCollision) <> 0) or ((Gear^.State and gstMoving) = 0) then draw:= true;
@@ -733,7 +730,8 @@
exit
end;
Gear^.X:= int2hwFloat(GetRandom(LAND_WIDTH+1024)-512);
- Gear^.Y:= int2hwFloat(750+(GetRandom(50)-25))
+ Gear^.Y:= int2hwFloat(750+(GetRandom(50)-25));
+ Gear^.State:= Gear^.State or gstInvisible;
end
end;
@@ -2113,6 +2111,7 @@
gX,gY,i: LongInt;
sticky: Boolean;
vgt: PVisualGear;
+ tdX,tdY: HWFloat;
begin
sticky:= (Gear^.State and gsttmpFlag) <> 0;
if not sticky then AllInactive := false;
@@ -2158,7 +2157,15 @@
if sticky then
begin
Gear^.Radius := 7;
- AmmoShove(Gear, 2, 30);
+ tdX:= Gear^.dX;
+ tdY:= Gear^.dY;
+ Gear^.dX.QWordValue:= 214748365;
+ Gear^.dY.QWordValue:= 429496730;
+ Gear^.dX.isNegative:= getrandom(2)<>1;
+ Gear^.dY.isNegative:= true;
+ AmmoShove(Gear, 2, 125);
+ Gear^.dX:= tdX;
+ Gear^.dY:= tdY;
Gear^.Radius := 1
end;
if Gear^.Timer > 0 then
@@ -2176,10 +2183,18 @@
if ((GameTicks and $1) = 0) then
begin
Gear^.Radius := 7;
- AmmoShove(Gear, 4, 150);
+ tdX:= Gear^.dX;
+ tdY:= Gear^.dY;
+ Gear^.dX.QWordValue:= 214748365;
+ Gear^.dY.QWordValue:= 429496730;
+ Gear^.dX.isNegative:= getrandom(2)<>1;
+ Gear^.dY.isNegative:= true;
+ AmmoShove(Gear, 6, 100);
+ Gear^.dX:= tdX;
+ Gear^.dY:= tdY;
Gear^.Radius := 1;
end
- else if ((GameTicks and $3) = 3) then doMakeExplosion(gX, gY, 6, Gear^.Hedgehog, 0);//, EXPLNoDamage);
+ else if ((GameTicks and $3) = 3) then doMakeExplosion(gX, gY, 8, Gear^.Hedgehog, 0);//, EXPLNoDamage);
//DrawExplosion(gX, gY, 4);
if ((GameTicks and $7) = 0) and (Random(2) = 0) then
for i:= 1 to Random(2)+1 do
@@ -3756,13 +3771,19 @@
or (iterator^.Y < Gear^.Y - r)
or (iterator^.Y > Gear^.Y + r) then
continue;
-
+(*
+Square check causes fail on many innocent cases. the 3/4s and 1.5 fudge factors... help.
+Might still need to remove this section
+*)
//Will if fit through?
//set r to be portal distance
- r := Int2hwFloat(Gear^.Radius +1);
-
- o_x := hwRound(conPortal^.X + conPortal^.dX);
- o_y := hwRound(conPortal^.Y + conPortal^.dY);
+ r := Int2hwFloat(Gear^.Radius * 3 div 4);
+ o_x := hwRound(conPortal^.X + (conPortal^.dX*_1_5));
+ o_y := hwRound(conPortal^.Y + (conPortal^.dY*_1_5));
+ //r := Int2hwFloat(Gear^.Radius +1);
+
+ //o_x := hwRound(conPortal^.X + conPortal^.dX);
+ //o_y := hwRound(conPortal^.Y + conPortal^.dY);
r_x := hwRound(conPortal^.X+r*conPortal^.dX);
r_y := hwRound(conPortal^.Y+r*conPortal^.dY);
rr_x := hwRound(conPortal^.X+r*conPortal^.dX*2);
@@ -4391,18 +4412,18 @@
if Gear^.Timer = 0 then
begin
dec(Gear^.Health);
- if (Gear^.Health mod 10) = 0 then
+ if (Gear^.Health mod 5) = 0 then
begin
rx := rndSign(getRandom * _0_1);
ry := rndSign(getRandom * _0_1);
- speed := _0_8 * (_10 / Gear^.Tag);
+ speed := _0_5 * (_10 / Gear^.Tag);
Fire := AddGear(gx, gy, gtFlame, 0,
SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
Fire^.State := Fire^.State or gsttmpFlag;
- if (Gear^.Health mod 20) = 0 then
+ if (Gear^.Health mod 30) = 0 then
Fire := AddGear(gx, gy, gtFlame, 0,
SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
@@ -4470,18 +4491,16 @@
if Gear^.Timer = 0 then
begin
dec(Gear^.Health);
- if (Gear^.Health mod 5) = 0 then
- begin
- rx := rndSign(getRandom * _0_1);
- ry := rndSign(getRandom * _0_1);
- speed := (_3 / Gear^.Tag);
-
- Flake := AddGear(gx, gy, gtFlake, 0, _0, _0, 0);
- Flake^.dX:= SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx;
- Flake^.dY:= AngleCos(HHGear^.Angle) * ( - speed) + ry;
- Flake^.State := Flake^.State or gsttmpFlag;
+
+ rx := rndSign(getRandom * _0_1);
+ ry := rndSign(getRandom * _0_1);
+ speed := (_3 / Gear^.Tag);
+
+ Flake := AddGear(gx, gy, gtFlake, 0, _0, _0, 0);
+ Flake^.dX:= SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx;
+ Flake^.dY:= AngleCos(HHGear^.Angle) * ( - speed) + ry;
+ Flake^.State := Flake^.State or gsttmpFlag;
- end;
Gear^.Timer:= Gear^.Tag
end;
--- a/hedgewars/HHHandlers.inc Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/HHHandlers.inc Thu Aug 04 17:44:55 2011 +0200
@@ -77,7 +77,7 @@
ammoidx:= -1;
//TryDo(i < 2, 'Engine bug: no ammo in current slot', true)
end;
- until ((Ammo^[slot, ammoidx].Count > 0) and (Team^.Clan^.TurnNumber > Ammoz[Ammo^[slot, ammoidx].AmmoType].SkipTurns)) or (i = 1)
+ until (i = 1) or ((Ammo^[slot, ammoidx].Count > 0) and (Team^.Clan^.TurnNumber > Ammoz[Ammo^[slot, ammoidx].AmmoType].SkipTurns))
end
else
begin
--- a/hedgewars/PascalExports.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/PascalExports.pas Thu Aug 04 17:44:55 2011 +0200
@@ -80,7 +80,6 @@
procedure HW_zoomReset; cdecl; export;
begin
ZoomValue:= cZoomVal;
- //middleClick:= true;
// center the camera at current hog
if CurrentHedgehog <> nil then
followGear:= CurrentHedgehog^.Gear;
@@ -237,8 +236,8 @@
function HW_isAmmoMenuNotAllowed: boolean; cdecl; export;
begin;
- exit ( (TurnTimeLeft = 0) or (not CurrentTeam^.ExtDriven and (((CurAmmoGear = nil) or
- ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_AltAttack) = 0)) and hideAmmoMenu)) );
+ exit( (TurnTimeLeft = 0) or (not CurrentTeam^.ExtDriven and (((CurAmmoGear = nil) or
+ ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_AltAttack) = 0)) and hideAmmoMenu)) );
end;
function HW_isWeaponRequiringClick: boolean; cdecl; export;
@@ -268,7 +267,7 @@
function HW_isWeaponRope: boolean cdecl; export;
begin
if (CurrentHedgehog <> nil) and (CurrentHedgehog^.Ammo <> nil) and (CurrentHedgehog^.BotLevel = 0) then
- exit (CurrentHedgehog^.CurAmmoType = amRope)
+ exit(CurrentHedgehog^.CurAmmoType = amRope)
else
exit(false);
end;
@@ -298,17 +297,17 @@
function HW_getWeaponNameByIndex(whichone: LongInt): PChar; cdecl; export;
begin
- exit (str2pchar(trammo[Ammoz[TAmmoType(whichone+1)].NameId]));
+ exit(str2pchar(trammo[Ammoz[TAmmoType(whichone+1)].NameId]));
end;
function HW_getWeaponCaptionByIndex(whichone: LongInt): PChar; cdecl; export;
begin
- exit (str2pchar(trammoc[Ammoz[TAmmoType(whichone+1)].NameId]));
+ exit(str2pchar(trammoc[Ammoz[TAmmoType(whichone+1)].NameId]));
end;
function HW_getWeaponDescriptionByIndex(whichone: LongInt): PChar; cdecl; export;
begin
- exit (str2pchar(trammod[Ammoz[TAmmoType(whichone+1)].NameId]));
+ exit(str2pchar(trammod[Ammoz[TAmmoType(whichone+1)].NameId]));
end;
function HW_getNumberOfWeapons:LongInt; cdecl; export;
@@ -318,6 +317,7 @@
procedure HW_setWeapon(whichone: LongInt); cdecl; export;
begin
+ if (CurrentTeam = nil) then exit;
if (not CurrentTeam^.ExtDriven) and (CurrentTeam^.Hedgehogs[0].BotLevel = 0) then
SetWeapon(TAmmoType(whichone+1));
end;
@@ -331,11 +331,12 @@
var a : PHHAmmo;
slot, index: LongInt;
begin
- if (CurrentTeam = nil) or
- (CurrentHedgehog = nil) or
- (CurrentTeam^.ExtDriven) or
- (CurrentTeam^.Hedgehogs[0].BotLevel <> 0) then
+ // nil check
+ if (CurrentHedgehog = nil) or (CurrentHedgehog^.Ammo = nil) or (CurrentTeam = nil) then
exit(-1);
+ // hog controlled by opponent (net or ai)
+ if (CurrentTeam^.ExtDriven) or (CurrentTeam^.Hedgehogs[0].BotLevel <> 0) then
+ exit(1);
a:= CurrentHedgehog^.Ammo;
for slot:= 0 to cMaxSlotIndex do
@@ -354,7 +355,10 @@
function HW_getTurnsForCurrentTeam: LongInt; cdecl; export;
begin
- exit(CurrentTeam^.Clan^.TurnNumber);
+ if (CurrentTeam <> nil) and (CurrentTeam^.Clan <> nil) then
+ exit(CurrentTeam^.Clan^.TurnNumber)
+ else
+ exit(0);
end;
function HW_getMaxNumberOfHogs: LongInt; cdecl; export;
--- a/hedgewars/SDLh.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/SDLh.pas Thu Aug 04 17:44:55 2011 +0200
@@ -297,6 +297,7 @@
PSDL_Window = Pointer;
PSDL_Renderer = Pointer;
PSDL_Texture = Pointer;
+ PSDL_GLContext= Pointer;
{$ENDIF}
PSDL_Rect = ^TSDL_Rect;
@@ -776,11 +777,16 @@
{$IFDEF SDL13}
function SDL_CreateWindow(title: PChar; x,y,w,h, flags: LongInt): PSDL_Window; cdecl; external SDLLibName;
function SDL_CreateRenderer(window: PSDL_Window; index, flags: LongInt): 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;
-function SDL_DestroyWindow(window: PSDL_Window): LongInt; cdecl; external SDLLibName;
+
+function SDL_GL_CreateContext(window: PSDL_Window): PSDL_GLContext; cdecl; external SDLLibName;
+procedure SDL_GL_DeleteContext(context: PSDL_GLContext); cdecl; external SDLLibName;
+function SDL_GL_SwapWindow(window: PSDL_Window): LongInt; cdecl; external SDLLibName;
procedure SDL_VideoQuit; cdecl; external SDLLibName;
function SDL_GetNumVideoDisplays: LongInt; cdecl; external SDLLibName;
+procedure SDL_ShowWindow(window: PSDL_Window); cdecl; external SDLLibName;
function SDL_SetRenderDrawColor(renderer: PSDL_Renderer; r,g,b,a: byte): LongInt; cdecl; external SDLLibName;
function SDL_GetRenderer(window: PSDL_Window): PSDL_Renderer; cdecl; external SDLLibName;
--- a/hedgewars/VGSHandlers.inc Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/VGSHandlers.inc Thu Aug 04 17:44:55 2011 +0200
@@ -258,7 +258,11 @@
if Gear^.FrameTicks <= Steps then
DeleteVisualGear(Gear)
else
+ begin
dec(Gear^.FrameTicks, Steps);
+ if (Gear^.FrameTicks < 501) and (Gear^.FrameTicks mod 5 = 0) then
+ Gear^.Tint:= (Gear^.Tint and $FFFFFF00) or (((Gear^.Tint and $000000FF) * Gear^.FrameTicks) div 500)
+ end
end;
////////////////////////////////////////////////////////////////////////////////
--- a/hedgewars/uAI.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uAI.pas Thu Aug 04 17:44:55 2011 +0200
@@ -74,6 +74,9 @@
with CurrentHedgehog^ do
a:= CurAmmoType;
aa:= a;
+
+ ThreadSwitch();
+
repeat
if (CanUseAmmo[a]) and
((not isMoved) or ((AmmoTests[a].flags and amtest_OnTurn) = 0)) then
@@ -279,10 +282,9 @@
begin
WalkMe:= BackMe;
Walk(@WalkMe);
- if (StartTicks > GameTicks - 1500) and not StopThinking then SDL_Delay(2000);
+ if (StartTicks > GameTicks - 1500) and not StopThinking then SDL_Delay(1000);
if BestActions.Score < -1023 then
begin
- addfilelog('AI: best score ' + inttostr(bestactions.score));
BestActions.Count:= 0;
AddAction(BestActions, aia_Skip, 0, 250, 0, 0);
end;
--- a/hedgewars/uAIActions.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uAIActions.pas Thu Aug 04 17:44:55 2011 +0200
@@ -158,7 +158,7 @@
end
else if hwRound(Me^.X) < Param then
begin
- OutError('AI: WaitXL assert (' + IntToStr(hwRound(Me^.X)) + ' < ' + IntToStr(Param) + ')', false);
+ //OutError('AI: WaitXL assert (' + IntToStr(hwRound(Me^.X)) + ' < ' + IntToStr(Param) + ')', false);
FreeActionsList;
exit
end
@@ -171,7 +171,7 @@
end
else if hwRound(Me^.X) > Param then
begin
- OutError('AI: WaitXR assert (' + IntToStr(hwRound(Me^.X)) + ' > ' + IntToStr(Param) + ')', false);
+ //OutError('AI: WaitXR assert (' + IntToStr(hwRound(Me^.X)) + ' > ' + IntToStr(Param) + ')', false);
FreeActionsList;
exit
end
--- a/hedgewars/uAIMisc.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uAIMisc.pas Thu Aug 04 17:44:55 2011 +0200
@@ -302,7 +302,6 @@
begin
bRes:= false;
GoInfo.Ticks:= 0;
-GoInfo.FallPix:= 0;
GoInfo.JumpType:= jmpNone;
bX:= hwRound(Gear^.X);
bY:= hwRound(Gear^.Y);
@@ -371,9 +370,7 @@
function HHGo(Gear, AltGear: PGear; var GoInfo: TGoInfo): boolean;
var pX, pY: LongInt;
- bRes: boolean;
begin
-bRes:= false;
AltGear^:= Gear^;
GoInfo.Ticks:= 0;
@@ -391,7 +388,7 @@
begin
Goinfo.FallPix:= 0;
HHJump(AltGear, jmpLJump, GoInfo); // try ljump instead of fall with damage
- exit(bRes)
+ exit(false)
end;
Gear^.Y:= Gear^.Y + Gear^.dY;
if hwRound(Gear^.Y) > pY then inc(GoInfo.FallPix);
@@ -400,14 +397,13 @@
inc(GoInfo.Ticks, 410);
Gear^.State:= Gear^.State and not (gstMoving or gstHHJumping);
Gear^.dY:= _0;
- bRes:= true;
HHJump(AltGear, jmpLJump, GoInfo); // try ljump instead of fall
- exit(bRes)
+ exit(true)
end;
continue
end;
if (Gear^.Message and gmLeft )<>0 then Gear^.dX:= -cLittle else
- if (Gear^.Message and gmRight )<>0 then Gear^.dX:= cLittle else exit(bRes);
+ if (Gear^.Message and gmRight )<>0 then Gear^.dX:= cLittle else exit(false);
if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) then
begin
if not (TestCollisionXwithXYShift(Gear, _0, -6, hwSign(Gear^.dX))
@@ -463,7 +459,7 @@
exit(true);
until (pX = hwRound(Gear^.X)) and (pY = hwRound(Gear^.Y)) and ((Gear^.State and gstMoving) = 0);
HHJump(AltGear, jmpHJump, GoInfo);
-HHGo:= bRes;
+HHGo:= false;
end;
function AIrndSign(num: LongInt): LongInt;
--- a/hedgewars/uConsts.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uConsts.pas Thu Aug 04 17:44:55 2011 +0200
@@ -120,6 +120,16 @@
cifAllInited = cifRandomize or cifTheme or cifMap;
cTransparentColor: Longword = $00000000;
+ cGrayScale: Boolean = false;
+
+ RGB_LUMINANCE_RED = 0.212671;
+ RGB_LUMINANCE_GREEN = 0.715160;
+ RGB_LUMINANCE_BLUE = 0.072169;
+(*
+ RGB_LUMINANCE_RED = 0.3333333333;
+ RGB_LUMINANCE_GREEN = 0.3333333333;
+ RGB_LUMINANCE_BLUE = 0.3333333333;
+*)
cMaxTeams = 8;
cMaxHHIndex = 7;
--- a/hedgewars/uGears.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uGears.pas Thu Aug 04 17:44:55 2011 +0200
@@ -914,7 +914,7 @@
CurrentHedgehog^.Gear^.State:= CurrentHedgehog^.Gear^.State and not gstAttacked;
if delay2 = 0 then
begin
- SweepDirty;
+ if (CurrentHedgehog^.Gear <> nil) and (CurrentHedgehog^.Gear^.State and gstAttacked = 0) then SweepDirty;
CheckNoDamage;
AliveCount:= 0; // shorter version of check for win to allow typical step activity to proceed
for i:= 0 to Pred(ClansCount) do
@@ -1069,7 +1069,7 @@
while i < vampDmg do
begin
vg:= AddVisualGear(hwRound(CurrentHedgehog^.Gear^.X), hwRound(CurrentHedgehog^.Gear^.Y), vgtHealth);
- if vg <> nil then vg^.Frame:= 10;
+ if vg <> nil then vg^.Tint:= $FF0000FF;
inc(i, 5);
end;
end
--- a/hedgewars/uGearsRender.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uGearsRender.pas Thu Aug 04 17:44:55 2011 +0200
@@ -1050,15 +1050,15 @@
end;
gtNapalmBomb: DrawRotated(sprNapalmBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
gtFlake: if (Gear^.State and gstTmpFlag) <> 0 then
- //DrawRotatedTextureF(SpritesData[sprSnowBall].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle)
begin
Tint((cExplosionBorderColor shr RShift) and $FF,
(cExplosionBorderColor shr GShift) and $FF,
(cExplosionBorderColor shr BShift) and $FF,
- (cExplosionBorderColor shr AShift) and $FF);
- //DrawRotated(sprSnow, x, y, 0, Gear^.DirAngle);
+ $FF);
// Needs a nicer white texture to tint
- DrawTexture(x, y, SpritesData[sprVampiric].Texture, 0.1);
+ DrawRotatedTextureF(SpritesData[sprSnowDust].Texture, 1, 0, 0, x, y, 0, 1, 8, 8, Gear^.DirAngle);
+ //DrawRotated(sprSnowDust, x, y, 0, Gear^.DirAngle);
+ //DrawTexture(x, y, SpritesData[sprVampiric].Texture, 0.1);
Tint($FF, $FF, $FF, $FF);
end
else if not isInLag then
--- a/hedgewars/uLand.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uLand.pas Thu Aug 04 17:44:55 2011 +0200
@@ -1096,6 +1096,7 @@
end;
Land[y,x]:= lfObject
end;
+
AddProgress();
end;
@@ -1314,6 +1315,32 @@
FreeLandObjects;
+if cGrayScale then
+ begin
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ for x:= leftX to rightX do
+ for y:= topY to LAND_HEIGHT-1 do
+ begin
+ w:= LandPixels[y,x];
+ w:= round(((w shr RShift and $FF) * RGB_LUMINANCE_RED +
+ (w shr BShift and $FF) * RGB_LUMINANCE_GREEN +
+ (w shr GShift and $FF) * RGB_LUMINANCE_BLUE));
+ if w > 255 then w:= 255;
+ w:= (w and $FF shl RShift) or (w and $FF shl BShift) or (w and $FF shl GShift) or (LandPixels[y,x] and AMask);
+ LandPixels[y,x]:= w or (LandPixels[y, x] and AMask)
+ end
+ else
+ for x:= leftX div 2 to rightX div 2 do
+ for y:= topY div 2 to LAND_HEIGHT-1 div 2 do
+ begin
+ w:= LandPixels[y div 2,x div 2];
+ w:= ((w shr RShift and $FF) + (w shr BShift and $FF) + (w shr GShift and $FF)) div 3;
+ if w > 255 then w:= 255;
+ w:= (w and $FF shl RShift) or (w and $FF shl BShift) or (w and $FF shl GShift) or (LandPixels[y div 2,x div 2] and AMask);
+ LandPixels[y,x]:= w or (LandPixels[y div 2, x div 2] and AMask)
+ end
+ end;
+
UpdateLandTexture(0, LAND_WIDTH, 0, LAND_HEIGHT);
end;
--- a/hedgewars/uLandGraphics.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uLandGraphics.pas Thu Aug 04 17:44:55 2011 +0200
@@ -210,81 +210,93 @@
end;
function FillLandCircleLinesBG(x, y, dx, dy: LongInt): Longword;
-var i, t: LongInt;
+var i, t, by, bx: LongInt;
cnt: Longword;
begin
cnt:= 0;
t:= y + dy;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
- if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
+ begin
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ by:= t; bx:= i;
+ end
+ else
+ begin
+ by:= t div 2; bx:= i div 2;
+ end;
+ if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
begin
inc(cnt);
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= LandBackPixel(i, t)
- else
- LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
+ LandPixels[by, bx]:= LandBackPixel(i, t)
end
else
- if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= 0
- else
- LandPixels[t div 2, i div 2]:= 0;
+ if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+ LandPixels[by, bx]:= 0
+ end;
t:= y - dy;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
- if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
+ begin
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ by:= t; bx:= i;
+ end
+ else
+ begin
+ by:= t div 2; bx:= i div 2;
+ end;
+ if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
begin
inc(cnt);
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= LandBackPixel(i, t)
- else
- LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
+ LandPixels[by, bx]:= LandBackPixel(i, t)
end
- else
- if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= 0
- else
- LandPixels[t div 2, i div 2]:= 0;
+ else if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+ LandPixels[by, bx]:= 0
+ end;
t:= y + dx;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
- if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
+ begin
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ by:= t; bx:= i;
+ end
+ else
+ begin
+ by:= t div 2; bx:= i div 2;
+ end;
+ if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
begin
inc(cnt);
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= LandBackPixel(i, t)
- else
- LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
+ LandPixels[by, bx]:= LandBackPixel(i, t)
end
- else
- if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= 0
- else
- LandPixels[t div 2, i div 2]:= 0;
-
+ else if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+ LandPixels[by, bx]:= 0
+ end;
t:= y - dx;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
- if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
+ begin
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ by:= t; bx:= i;
+ end
+ else
+ begin
+ by:= t div 2; bx:= i div 2;
+ end;
+ if ((Land[t, i] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
begin
inc(cnt);
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= LandBackPixel(i, t)
- else
- LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
+ LandPixels[by, bx]:= LandBackPixel(i, t)
end
- else
- if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= 0
- else
- LandPixels[t div 2, i div 2]:= 0;
+ else if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+ LandPixels[by, bx]:= 0
+ end;
FillLandCircleLinesBG:= cnt;
end;
@@ -430,23 +442,26 @@
end;
procedure DrawHLinesExplosions(ar: PRangeArray; Radius: LongInt; y, dY: LongInt; Count: Byte);
-var tx, ty, i: LongInt;
+var tx, ty, by, bx, i: LongInt;
begin
for i:= 0 to Pred(Count) do
begin
for ty:= Max(y - Radius, 0) to Min(y + Radius, LAND_HEIGHT) do
for tx:= Max(0, ar^[i].Left - Radius) to Min(LAND_WIDTH, ar^[i].Right + Radius) do
- if ((Land[ty, tx] and lfBasic) <> 0) and not disableLandBack then
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[ty, tx]:= LandBackPixel(tx, ty)
- else
- LandPixels[ty div 2, tx div 2]:= LandBackPixel(tx, ty)
+ begin
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ by:= ty; bx:= tx;
+ end
else
- if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) then
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[ty, tx]:= 0
- else
- LandPixels[ty div 2, tx div 2]:= 0;
+ begin
+ by:= ty div 2; bx:= tx div 2;
+ end;
+ if ((Land[ty, tx] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
+ LandPixels[by, bx]:= LandBackPixel(tx, ty)
+ else if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+ LandPixels[by, bx]:= 0
+ end;
inc(y, dY)
end;
@@ -479,7 +494,7 @@
//
procedure DrawTunnel(X, Y, dX, dY: hwFloat; ticks, HalfWidth: LongInt);
var nx, ny, dX8, dY8: hwFloat;
- i, t, tx, ty, stX, stY, ddy, ddx: Longint;
+ i, t, tx, ty, by, bx, stX, stY, ddy, ddx: Longint;
despeckle : Boolean;
begin // (-dY, dX) is (dX, dY) rotated by PI/2
stY:= hwRound(Y);
@@ -550,17 +565,18 @@
ty:= hwRound(Y);
if ((ty and LAND_HEIGHT_MASK) = 0) and ((tx and LAND_WIDTH_MASK) = 0) and ((Land[ty, tx] and lfIndestructible) = 0) then
begin
- if ((Land[ty, tx] and lfBasic) <> 0) and not disableLandBack then
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[ty, tx]:= LandBackPixel(tx, ty)
- else
- LandPixels[ty div 2, tx div 2]:= LandBackPixel(tx, ty)
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ by:= ty; bx:= tx;
+ end
else
- if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) then
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[ty, tx]:= 0
- else
- LandPixels[ty div 2, tx div 2]:= 0;
+ begin
+ by:= ty div 2; bx:= tx div 2;
+ end;
+ if ((Land[ty, tx] and lfBasic) <> 0) and ((LandPixels[by,bx] and AMask) shr AShift = 255) and not disableLandBack then
+ LandPixels[by, bx]:= LandBackPixel(tx, ty)
+ else if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) or ((LandPixels[by,bx] and AMask) shr AShift < 255) then
+ LandPixels[by, bx]:= 0;
Land[ty, tx]:= 0;
end
@@ -748,7 +764,7 @@
LandPixels[yy, xx]:= 0;
Land[Y, X]:= 0;
- if not pixelsweep then exit(1) // cannot exit true on pixel sweep, or risk desyncs due to inconsistent resweeps
+ if not pixelsweep then exit(1)
else exit(2)
end;
end;
--- a/hedgewars/uLandObjects.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uLandObjects.pas Thu Aug 04 17:44:55 2011 +0200
@@ -372,7 +372,7 @@
var s, key: shortstring;
f: textfile;
i: LongInt;
- ii: Longword;
+ ii, t: Longword;
c1, c2: TSDL_Color;
procedure CheckRect(Width, Height, x, y, w, h: LongWord);
@@ -415,6 +415,14 @@
c1.g:= StrToInt(Trim(Copy(s, 1, Pred(i))));
Delete(s, 1, i);
c1.b:= StrToInt(Trim(s));
+ if cGrayScale then
+ begin
+ t:= round(c1.r * RGB_LUMINANCE_RED + c1.g * RGB_LUMINANCE_GREEN + c1.b * RGB_LUMINANCE_BLUE);
+ if t > 255 then t:= 255;
+ c1.r:= t;
+ c1.g:= t;
+ c1.b:= t
+ end;
glClearColor(c1.r / 255, c1.g / 255, c1.b / 255, 0.99);
SDSkyColor.r:= byte(c1.r * SDTint div 255);
SDSkyColor.g:= byte(c1.g * SDTint div 255);
@@ -441,6 +449,14 @@
Delete(s, 1, i);
WaterColorArray[0].b:= StrToInt(Trim(s));
WaterColorArray[0].a := 255;
+ if cGrayScale then
+ begin
+ t:= round(WaterColorArray[0].r * RGB_LUMINANCE_RED + WaterColorArray[0].g * RGB_LUMINANCE_GREEN + WaterColorArray[0].b * RGB_LUMINANCE_BLUE);
+ if t > 255 then t:= 255;
+ WaterColorArray[0].r:= t;
+ WaterColorArray[0].g:= t;
+ WaterColorArray[0].b:= t
+ end;
WaterColorArray[1]:= WaterColorArray[0];
end
else if key = 'water-bottom' then
@@ -453,6 +469,14 @@
Delete(s, 1, i);
WaterColorArray[2].b:= StrToInt(Trim(s));
WaterColorArray[2].a := 255;
+ if cGrayScale then
+ begin
+ t:= round(WaterColorArray[2].r * RGB_LUMINANCE_RED + WaterColorArray[2].g * RGB_LUMINANCE_GREEN + WaterColorArray[2].b * RGB_LUMINANCE_BLUE);
+ if t > 255 then t:= 255;
+ WaterColorArray[2].r:= t;
+ WaterColorArray[2].g:= t;
+ WaterColorArray[2].b:= t
+ end;
WaterColorArray[3]:= WaterColorArray[2];
end
else if key = 'water-opacity' then
@@ -566,6 +590,14 @@
Delete(s, 1, i);
SDWaterColorArray[0].b:= StrToInt(Trim(s));
SDWaterColorArray[0].a := 255;
+ if cGrayScale then
+ begin
+ t:= round(SDWaterColorArray[0].r * RGB_LUMINANCE_RED + SDWaterColorArray[0].g * RGB_LUMINANCE_GREEN + SDWaterColorArray[0].b * RGB_LUMINANCE_BLUE);
+ if t > 255 then t:= 255;
+ SDWaterColorArray[0].r:= t;
+ SDWaterColorArray[0].g:= t;
+ SDWaterColorArray[0].b:= t
+ end;
SDWaterColorArray[1]:= SDWaterColorArray[0];
end
else if key = 'sd-water-bottom' then
@@ -578,6 +610,14 @@
Delete(s, 1, i);
SDWaterColorArray[2].b:= StrToInt(Trim(s));
SDWaterColorArray[2].a := 255;
+ if cGrayScale then
+ begin
+ t:= round(SDWaterColorArray[2].r * RGB_LUMINANCE_RED + SDWaterColorArray[2].g * RGB_LUMINANCE_GREEN + SDWaterColorArray[2].b * RGB_LUMINANCE_BLUE);
+ if t > 255 then t:= 255;
+ SDWaterColorArray[2].r:= t;
+ SDWaterColorArray[2].g:= t;
+ SDWaterColorArray[2].b:= t
+ end;
SDWaterColorArray[3]:= SDWaterColorArray[2];
end
else if key = 'sd-water-opacity' then cSDWaterOpacity:= StrToInt(Trim(s))
@@ -612,6 +652,14 @@
c1.g:= StrToInt(Trim(Copy(s, 1, Pred(i))));
Delete(s, 1, i);
c1.b:= StrToInt(Trim(s));
+ if cGrayScale then
+ begin
+ t:= round(c1.r * RGB_LUMINANCE_RED + c1.g * RGB_LUMINANCE_GREEN + c1.b * RGB_LUMINANCE_BLUE);
+ if t > 255 then t:= 255;
+ c1.r:= t;
+ c1.g:= t;
+ c1.b:= t
+ end;
glClearColor(c1.r / 255, c1.g / 255, c1.b / 255, 0.99);
SDSkyColor.r:= byte(c1.r * SDTint div 255);
SDSkyColor.g:= byte(c1.g * SDTint div 255);
--- a/hedgewars/uRender.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uRender.pas Thu Aug 04 17:44:55 2011 +0200
@@ -22,7 +22,7 @@
interface
-uses SDLh, uTypes, GLunit;
+uses SDLh, uTypes, GLunit, uConsts;
procedure DrawSpriteFromRect(Sprite: TSprite; r: TSDL_Rect; X, Y, Height, Position: LongInt);
procedure DrawFromRect(X, Y, W, H: LongInt; r: PSDL_Rect; SourceTexture: PTexture);
@@ -453,11 +453,20 @@
procedure Tint(r, g, b, a: Byte); inline;
-var nc: Longword;
+var nc, tw: Longword;
begin
nc:= (a shl 24) or (b shl 16) or (g shl 8) or r;
if nc = lastTint then
exit;
+if cGrayScale then
+ begin
+ tw:= round(r * RGB_LUMINANCE_RED + g * RGB_LUMINANCE_GREEN + b * RGB_LUMINANCE_BLUE);
+ if tw > 255 then tw:= 255;
+ r:= tw;
+ g:= tw;
+ b:= tw
+ end;
+
glColor4ub(r, g, b, a);
lastTint:= nc;
end;
--- a/hedgewars/uScript.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uScript.pas Thu Aug 04 17:44:55 2011 +0200
@@ -986,11 +986,28 @@
LuaError('Lua: Wrong number of parameters passed to SetEffect!')
else begin
gear := GearByUID(lua_tointeger(L, 1));
- if gear <> nil then
+ if (gear <> nil) and (gear^.Hedgehog <> nil) then
gear^.Hedgehog^.Effects[THogEffect(lua_tointeger(L, 2))]:= lua_toboolean(L, 3);
end;
lc_seteffect := 0;
end;
+function lc_geteffect(L : Plua_State) : LongInt; Cdecl;
+var gear : PGear;
+begin
+ if lua_gettop(L) <> 2 then
+ begin
+ LuaError('Lua: Wrong number of parameters passed to GetEffect!');
+ end
+ else
+ begin
+ gear:= GearByUID(lua_tointeger(L, 1));
+ if (gear <> nil) and (gear^.Hedgehog <> nil) then
+ lua_pushboolean(L, gear^.Hedgehog^.Effects[THogEffect(lua_tointeger(L, 2))])
+ else
+ lua_pushboolean(L, false)
+ end;
+ lc_geteffect:= 1
+end;
function lc_setstate(L : Plua_State) : LongInt; Cdecl;
var gear : PGear;
@@ -1840,6 +1857,7 @@
lua_register(luaState, 'SetHealth', @lc_sethealth);
lua_register(luaState, 'GetHealth', @lc_gethealth);
lua_register(luaState, 'SetEffect', @lc_seteffect);
+lua_register(luaState, 'GetEffect', @lc_geteffect);
lua_register(luaState, 'GetHogClan', @lc_gethogclan);
lua_register(luaState, 'GetClanColor', @lc_getclancolor);
lua_register(luaState, 'SetClanColor', @lc_setclancolor);
--- a/hedgewars/uTextures.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uTextures.pas Thu Aug 04 17:44:55 2011 +0200
@@ -131,6 +131,24 @@
if SDL_MustLock(surf) then
SDLTry(SDL_LockSurface(surf) >= 0, true);
+fromP4:= Surf^.pixels;
+
+if cGrayScale then
+ for y:= 0 to Pred(Surf^.h) do
+ begin
+ for x:= 0 to Pred(Surf^.w) do
+ begin
+ tw:= fromP4^[x];
+ tw:= round((tw shr RShift and $FF) * RGB_LUMINANCE_RED +
+ (tw shr GShift and $FF) * RGB_LUMINANCE_GREEN +
+ (tw shr BShift and $FF) * RGB_LUMINANCE_BLUE);
+ if tw > 255 then tw:= 255;
+ tw:= (tw and $FF shl RShift) or (tw and $FF shl BShift) or (tw and $FF shl GShift) or (fromP4^[x] and AMask);
+ fromP4^[x]:= tw;
+ end;
+ fromP4:= @(fromP4^[Surf^.pitch div 4])
+ end;
+
if (not SupportNPOTT) and (not (isPowerOf2(Surf^.w) and isPowerOf2(Surf^.h))) then
begin
tw:= toPowerOf2(Surf^.w);
--- a/hedgewars/uVisualGears.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uVisualGears.pas Thu Aug 04 17:44:55 2011 +0200
@@ -245,6 +245,7 @@
vgtHealth: begin
dx:= 0.001 * random(45);
dy:= 0.001 * (random(20) + 25);
+ Tint:= $00FF00FF; // default to green
if random(2) = 0 then dx := -dx;
Frame:= 0;
FrameTicks:= random(750) + 1250;
@@ -432,7 +433,7 @@
// this layer is on the land level (which is close but behind the screen plane) when stereo
1: while Gear <> nil do
begin
- tinted:= false;
+ //tinted:= false;
if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint);
case Gear^.Kind of
vgtSmokeTrace: if Gear^.State < 8 then DrawSprite(sprSmokeTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State);
@@ -461,7 +462,8 @@
DrawSprite(sprDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);
vgtBubble: DrawSprite(sprBubbles, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);//(RealTicks div 64 + Gear^.Frame) mod 8);
end;
- if (Gear^.Tint <> $FFFFFFFF) or tinted then Tint($FF,$FF,$FF,$FF);
+ //if (Gear^.Tint <> $FFFFFFFF) or tinted then Tint($FF,$FF,$FF,$FF);
+ if (Gear^.Tint <> $FFFFFFFF) then Tint($FF,$FF,$FF,$FF);
Gear:= Gear^.NextGear
end;
// this layer is on the screen plane (depth = 0) when stereo
@@ -482,14 +484,7 @@
end;
vgtSmallDamageTag: DrawCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex);
vgtHealthTag: if Gear^.Tex <> nil then DrawCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex);
- vgtHealth: begin
- tinted:= true;
- case Gear^.Frame div 10 of
- 0:Tint(0, $FF, 0, round(Gear^.FrameTicks * $FF / 1000));
- 1:Tint($FF, 0, 0, round(Gear^.FrameTicks * $FF / 1000));
- end;
- DrawSprite(sprHealth, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, 0);
- end;
+ vgtHealth: DrawSprite(sprHealth, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, 0);
end;
if (cReducedQuality and rqAntiBoom) = 0 then
case Gear^.Kind of
--- a/hedgewars/uWorld.pas Thu Aug 04 17:41:07 2011 +0200
+++ b/hedgewars/uWorld.pas Thu Aug 04 17:44:55 2011 +0200
@@ -971,7 +971,7 @@
end;
if smallScreenOffset <> 0 then
begin
- SetScale(zoom);
+ SetScale(cDefaultZoomLevel);
if TeamsCount * 20 > cScreenHeight div 5 then Tint($FF,$FF,$FF,$FF);
end;
--- a/misc/hedgewars.desktop Thu Aug 04 17:41:07 2011 +0200
+++ b/misc/hedgewars.desktop Thu Aug 04 17:44:55 2011 +0200
@@ -14,6 +14,7 @@
GenericName[pt]=Batalhas entre ouriços
GenericName[ru]=Битвы ежей
GenericName[sk]=Bojujúci ježkovia
+GenericName[cs]=Bojující ježci
GenericName[sv]=Stridande igelkottar
Icon=hedgewars.png
Exec=hedgewars
--- a/project_files/HedgewarsMobile/Classes/Appirater.h Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/Appirater.h Thu Aug 04 17:44:55 2011 +0200
@@ -45,7 +45,7 @@
/*
Place your Apple generated software id here.
*/
-#define APPIRATER_APP_ID 391234866
+#define APPIRATER_APP_ID 391234866
/*
Your app's name.
@@ -82,13 +82,13 @@
Users will need to have the same version of your app installed for this many
days before they will be prompted to rate it.
*/
-#define DAYS_UNTIL_PROMPT 5 // double
+#define DAYS_UNTIL_PROMPT 3 // double
/*
Users will need to launch the same version of the app this many times before
they will be prompted to rate it.
*/
-#define LAUNCHES_UNTIL_PROMPT 10 // integer
+#define LAUNCHES_UNTIL_PROMPT 5 // integer
/*
'YES' will show the Appirater alert everytime. Useful for testing how your message
--- a/project_files/HedgewarsMobile/Classes/Appirater.m Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/Appirater.m Thu Aug 04 17:44:55 2011 +0200
@@ -37,6 +37,7 @@
#import "Appirater.h"
#import <SystemConfiguration/SCNetworkReachability.h>
#import <netinet/in.h>
+#import "CommodityFunctions.h"
NSString *const kAppiraterLaunchDate = @"kAppiraterLaunchDate";
NSString *const kAppiraterLaunchCount = @"kAppiraterLaunchCount";
@@ -46,47 +47,6 @@
NSString *templateReviewURL = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software";
-@interface Appirater (hidden)
-
--(BOOL) connectedToNetwork;
-
-@end
-
-@implementation Appirater (hidden)
-
--(BOOL) connectedToNetwork {
- // Create zero addy
- struct sockaddr_in zeroAddress;
- bzero(&zeroAddress, sizeof(zeroAddress));
- zeroAddress.sin_len = sizeof(zeroAddress);
- zeroAddress.sin_family = AF_INET;
-
- // Recover reachability flags
- SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
- SCNetworkReachabilityFlags flags;
-
- BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
- CFRelease(defaultRouteReachability);
-
- if (!didRetrieveFlags) {
- NSLog(@"Error. Could not recover network reachability flags");
- return NO;
- }
-
- BOOL isReachable = flags & kSCNetworkFlagsReachable;
- BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
- BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
-
- NSURL *testURL = [NSURL URLWithString:@"http://www.apple.com/"];
- NSURLRequest *testRequest = [NSURLRequest requestWithURL:testURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20.0];
- NSURLConnection *testConnection = [[NSURLConnection alloc] initWithRequest:testRequest delegate:self];
-
- return ((isReachable && !needsConnection) || nonWiFi) ? (testConnection ? YES : NO) : NO;
-}
-
-@end
-
-
@implementation Appirater
+(void) appLaunched {
@@ -146,7 +106,7 @@
launchCount > LAUNCHES_UNTIL_PROMPT &&
!declinedToRate &&
!ratedApp) {
- if ([self connectedToNetwork]) { // check if they can reach the app store
+ if (isNetworkReachable()) { // check if they can reach the app store
willShowPrompt = YES;
[self performSelectorOnMainThread:@selector(showPrompt) withObject:nil waitUntilDone:NO];
}
--- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.h Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.h Thu Aug 04 17:44:55 2011 +0200
@@ -46,6 +46,7 @@
#define MAPS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Maps/"]
#define MISSIONS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Missions/Maps/"]
#define LOCALE_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Locale/"]
+#define SCRIPTS_DIRECTORY() [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Data/Scripts/plist/"]
#define MSG_MEMCLEAN() DLog(@"has cleaned up some memory");
#define MSG_DIDUNLOAD() DLog(@"unloaded");
@@ -75,6 +76,7 @@
UILabel *createLabelWithParams (NSString *title, CGRect frame, CGFloat borderWidth, UIColor *borderColor, UIColor *backgroundColor);
CGSize PSPNGSizeFromMetaData (NSString *aFileName);
+BOOL isNetworkReachable (void);
@interface NSString (extra)
--- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.m Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.m Thu Aug 04 17:44:55 2011 +0200
@@ -27,6 +27,8 @@
#import <QuartzCore/QuartzCore.h>
#import <AudioToolbox/AudioToolbox.h>
#import <CommonCrypto/CommonDigest.h>
+#import <SystemConfiguration/SCNetworkReachability.h>
+#import <netinet/in.h>
#import "PascalImports.h"
#import "hwconsts.h"
@@ -39,6 +41,7 @@
// by http://landonf.bikemonkey.org/code/iphone/Determining_Available_Memory.20081203.html
void print_free_memory () {
+#ifdef DEBUG
mach_port_t host_port;
mach_msg_type_number_t host_size;
vm_size_t pagesize;
@@ -57,6 +60,7 @@
natural_t mem_free = vm_stat.free_count * pagesize;
natural_t mem_total = mem_used + mem_free;
DLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);
+#endif
}
BOOL inline isApplePhone () {
@@ -128,6 +132,40 @@
return theLabel;
}
+BOOL isNetworkReachable (void) {
+ // Create zero addy
+ struct sockaddr_in zeroAddress;
+ bzero(&zeroAddress, sizeof(zeroAddress));
+ zeroAddress.sin_len = sizeof(zeroAddress);
+ zeroAddress.sin_family = AF_INET;
+
+ // Recover reachability flags
+ SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
+ SCNetworkReachabilityFlags flags;
+
+ BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
+ CFRelease(defaultRouteReachability);
+
+ if (!didRetrieveFlags) {
+ NSLog(@"Error. Could not recover network reachability flags");
+ return NO;
+ }
+
+ BOOL isReachable = flags & kSCNetworkFlagsReachable;
+ BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
+ BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
+
+ NSURL *testURL = [NSURL URLWithString:@"http://www.apple.com/"];
+ NSURLRequest *testRequest = [NSURLRequest requestWithURL:testURL
+ cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
+ timeoutInterval:20.0];
+ NSURLConnection *testConnection = [[NSURLConnection alloc] initWithRequest:testRequest delegate:nil];
+ BOOL testResult = testConnection ? YES : NO;
+ [testConnection release];
+
+ return ((isReachable && !needsConnection) || nonWiFi) ? testResult : NO;
+}
+
// this routine checks for the PNG size without loading it in memory
// https://github.com/steipete/PSFramework/blob/master/PSFramework%20Version%200.3/PhotoshopFramework/PSMetaDataFunctions.m
CGSize PSPNGSizeFromMetaData (NSString *aFileName) {
--- a/project_files/HedgewarsMobile/Classes/CreationChamber.m Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/CreationChamber.m Thu Aug 04 17:44:55 2011 +0200
@@ -28,8 +28,11 @@
[settings setObject:[NSNumber numberWithBool:YES] forKey:@"music"];
[settings setObject:[NSNumber numberWithBool:YES] forKey:@"sound"];
[settings setObject:[NSNumber numberWithBool:NO] forKey:@"classic_menu"];
- [settings setObject:[NSNumber numberWithBool:YES] forKey:@"enhanced"];
[settings setObject:[NSNumber numberWithBool:YES] forKey:@"multitasking"];
+ [settings setObject:[NSNumber numberWithBool:YES] forKey:@"sync_ws"];
+
+ // limit graphic usage on older devices
+ [settings setObject:[NSNumber numberWithBool:IS_VERY_POWERFUL(getModelType())] forKey:@"enhanced"];
// don't overwrite these two strings when present
if ([settings objectForKey:@"username"] == nil)
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Thu Aug 04 17:44:55 2011 +0200
@@ -212,6 +212,10 @@
if ([self isEverythingSet] == NO)
return;
+ NSString *script = self.mapConfigViewController.missionCommand;
+ if ([script isEqualToString:@""])
+ script = self.schemeWeaponConfigViewController.scriptCommand;
+
// create the configuration file that is going to be sent to engine
NSDictionary *gameDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
self.mapConfigViewController.seedCommand,@"seed_command",
@@ -220,10 +224,10 @@
self.mapConfigViewController.mazeSizeCommand,@"mazesize_command",
self.mapConfigViewController.themeCommand,@"theme_command",
self.mapConfigViewController.staticMapCommand,@"staticmap_command",
- self.mapConfigViewController.missionCommand,@"mission_command",
self.teamConfigViewController.listOfSelectedTeams,@"teams_list",
self.schemeWeaponConfigViewController.selectedScheme,@"scheme",
self.schemeWeaponConfigViewController.selectedWeapon,@"weapon",
+ script,@"mission_command",
nil];
GameInterfaceBridge *bridge = [[GameInterfaceBridge alloc] initWithController:self];
--- a/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Thu Aug 04 17:44:55 2011 +0200
@@ -84,6 +84,9 @@
case 30: //alternateSwitch
[settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"alternate"];
break;
+ case 90: //synched weapons/scheme
+ [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"sync_ws"];
+ break;
case 70: //enhanced graphics
[settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"enhanced"];
break;
@@ -117,16 +120,13 @@
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger )section {
switch (section) {
case 0: // user and pass
- return 1; // set 2 here for the password field
+ return 1; // set 2 here to show the password field
break;
case 1: // audio
return 2;
break;
- case 2: // other stuff
- if (IS_IPAD() == YES)
- return 4;
- else
- return 3;
+ case 2: // other options
+ return 5;
break;
default:
DLog(@"Nope");
@@ -225,6 +225,7 @@
}
switchContent = (UISwitch *)cell.accessoryView;
+ cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
switch (row) {
case 0:
cell.textLabel.text = NSLocalizedString(@"Alternate Damage", @"");
@@ -233,22 +234,34 @@
switchContent.tag = 30;
break;
case 1:
- cell.textLabel.text = NSLocalizedString(@"Enanched Graphics Mode", @"");
- cell.detailTextLabel.text = NSLocalizedString(@"The game will use more memory so it could crash!", @"");
- switchContent.on = [[settings objectForKey:@"enhanced"] boolValue];
- switchContent.tag = 70;
+ cell.textLabel.text = NSLocalizedString(@"Sync Schemes and Weapons", @"");
+ cell.detailTextLabel.text = NSLocalizedString(@"Choosing a Scheme will select its associated Weapon", @"");
+ switchContent.on = [[settings objectForKey:@"sync_ws"] boolValue];
+ switchContent.tag = 90;
break;
case 2:
- cell.textLabel.text = NSLocalizedString(@"Multitasking Enabled", @"");
+ cell.textLabel.text = NSLocalizedString(@"Multitasking", @"");
cell.detailTextLabel.text = NSLocalizedString(@"Disable it in case of issues when returing in game", @"");
switchContent.on = [[settings objectForKey:@"multitasking"] boolValue];
switchContent.tag = 80;
break;
case 3:
+ cell.textLabel.text = NSLocalizedString(@"Enanched Graphics", @"");
+ cell.detailTextLabel.text = NSLocalizedString(@"Beware that the game will consume more memory", @"");
+ switchContent.on = [[settings objectForKey:@"enhanced"] boolValue];
+ switchContent.tag = 70;
+ // prevent the oldest devices to even think about enabling it
+ if (IS_NOT_POWERFUL(getModelType()))
+ switchContent.enabled = NO;
+ break;
+ case 4:
cell.textLabel.text = NSLocalizedString(@"Classic Ammo Menu", @"");
cell.detailTextLabel.text = NSLocalizedString(@"Select which style of ammo menu you prefer",@"");
switchContent.on = [[settings objectForKey:@"classic_menu"] boolValue];
switchContent.tag = 60;
+ // remove this when classic ammomenu works on iphone as well
+ if (IS_IPAD() == NO)
+ switchContent.enabled = NO;
break;
default:
DLog(@"Nope");
--- a/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m Thu Aug 04 17:44:55 2011 +0200
@@ -25,7 +25,6 @@
#import "CommodityFunctions.h"
#import "MainMenuViewController.h"
#import "AVFoundation/AVAudioPlayer.h"
-#import "Appirater.h"
#include <unistd.h>
@@ -97,7 +96,6 @@
// override the direct execution of SDL_main to allow us to implement our own frontend
-(void) postFinishLaunch {
[[UIApplication sharedApplication] setStatusBarHidden:YES];
- [Appirater appLaunched];
self.uiwindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
--- a/project_files/HedgewarsMobile/Classes/InGameMenuViewController.m Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/InGameMenuViewController.m Thu Aug 04 17:44:55 2011 +0200
@@ -257,7 +257,8 @@
image = [[UIImage alloc] initWithCGImage:imageRef];
CGImageRelease(imageRef);
- UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), (void *)alert); // add callback for finish saving
+ // add callback for cleaning memory and removing alert
+ UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), (void *)alert);
}
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Thu Aug 04 17:44:55 2011 +0200
@@ -27,6 +27,7 @@
#import "AboutViewController.h"
#import "SavedGamesViewController.h"
#import "RestoreViewController.h"
+#import "Appirater.h"
#import "ServerSetup.h"
@implementation MainMenuViewController
@@ -72,7 +73,7 @@
[[NSFileManager defaultManager] removeItemAtPath:SCHEMES_DIRECTORY() error:NULL];
NSString *baseSchemesDir = [[NSString alloc] initWithFormat:@"%@/Settings/Schemes/",resourcesDir];
[[NSFileManager defaultManager] copyItemAtPath:baseSchemesDir toPath:SCHEMES_DIRECTORY() error:NULL];
-
+ [baseSchemesDir release];
// WEAPONS - always overwrite
if ([[NSFileManager defaultManager] fileExistsAtPath:WEAPONS_DIRECTORY()] == NO)
@@ -101,31 +102,40 @@
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSString *trackingVersion = [userDefaults stringForKey:@"HedgeVersion"];
+ if ([[userDefaults objectForKey:@"music"] boolValue])
+ [HedgewarsAppDelegate playBackgroundMusic];
+
if (trackingVersion == nil || [trackingVersion isEqualToString:version] == NO) {
+ // remove any reminder of previous games as saves are going to be wiped out
+ [userDefaults setObject:@"" forKey:@"savedGamePath"];
+ // update the tracking version with the new one
[userDefaults setObject:version forKey:@"HedgeVersion"];
+
[userDefaults synchronize];
[self createNecessaryFiles];
}
- if ([[userDefaults objectForKey:@"music"] boolValue])
- [HedgewarsAppDelegate playBackgroundMusic];
-
- NSString *saveString = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedGamePath"];
+ // prompt for restoring any previous game
+ NSString *saveString = [userDefaults objectForKey:@"savedGamePath"];
if (saveString != nil && [saveString isEqualToString:@""] == NO) {
if (self.restoreViewController == nil) {
- NSString *xibName = [@"RestoreViewController-" stringByAppendingString:(IS_IPAD() ? @"iPad" : @"iPhone")];
+ NSString *xibName = [@"RestoreViewController-" stringByAppendingString:(IS_IPAD() ? @"iPad" : @"iPhone")];
RestoreViewController *restored = [[RestoreViewController alloc] initWithNibName:xibName bundle:nil];
if ([restored respondsToSelector:@selector(setModalPresentationStyle:)])
restored.modalPresentationStyle = UIModalPresentationFormSheet;
self.restoreViewController = restored;
[restored release];
}
- [self performSelector:@selector(presentModalViewController:animated:) withObject:self.restoreViewController afterDelay:0.35];
+ [self performSelector:@selector(presentModalViewController:animated:) withObject:self.restoreViewController afterDelay:0.3];
+ } else {
+ // let's not prompt for rating when app crashed >_>
+ [Appirater appLaunched];
}
+
/*
ServerSetup *setup = [[ServerSetup alloc] init];
- if ([setup isNetworkReachable]) {
+ if (isNetworkReachable()) {
DLog(@"network is reachable");
[NSThread detachNewThreadSelector:@selector(serverProtocol)
toTarget:setup
@@ -147,11 +157,8 @@
switch (button.tag) {
case 0:
if (nil == self.gameConfigViewController) {
- if (IS_IPAD())
- xib = nil;
- else
- xib = @"GameConfigViewController";
-
+ xib = IS_IPAD() ? nil : @"GameConfigViewController";
+
GameConfigViewController *gcvc = [[GameConfigViewController alloc] initWithNibName:xib bundle:nil];
gcvc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
self.gameConfigViewController = gcvc;
@@ -172,7 +179,10 @@
break;
case 3:
#ifdef DEBUG
- debugStr = [[NSString alloc] initWithContentsOfFile:DEBUG_FILE()];
+ if ([[NSFileManager defaultManager] fileExistsAtPath:DEBUG_FILE()])
+ debugStr = [[NSString alloc] initWithContentsOfFile:DEBUG_FILE()];
+ else
+ debugStr = [[NSString alloc] initWithString:@"Here be log"];
UITextView *scroll = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.height, self.view.frame.size.width)];
scroll.text = debugStr;
[debugStr release];
@@ -186,6 +196,7 @@
[self.view addSubview:scroll];
[scroll release];
#else
+ debugStr = debugStr; // prevent compiler warning
if (nil == self.aboutViewController) {
AboutViewController *about = [[AboutViewController alloc] initWithNibName:@"AboutViewController" bundle:nil];
about.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
--- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Thu Aug 04 17:44:55 2011 +0200
@@ -387,6 +387,7 @@
NSString *checkPath = [[NSString alloc] initWithFormat:@"%@/%@/icon.png",THEMES_DIRECTORY(),themeName];
if ([[NSFileManager defaultManager] fileExistsAtPath:checkPath])
[themeArray addObject:themeName];
+ [checkPath release];
}
// remove images that are too big for certain devices without loading the whole image
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h Thu Aug 04 17:44:55 2011 +0200
@@ -25,24 +25,33 @@
@interface SchemeWeaponConfigViewController : UITableViewController {
NSArray *listOfSchemes;
NSArray *listOfWeapons;
+ NSArray *listOfScripts;
NSIndexPath *lastIndexPath_sc;
NSIndexPath *lastIndexPath_we;
+ NSIndexPath *lastIndexPath_lu;
NSString *selectedScheme;
NSString *selectedWeapon;
+ NSString *selectedScript;
+ NSString *scriptCommand;
- UISwitch *syncSwitch;
+ UISegmentedControl *topControl;
BOOL hideSections;
}
@property (nonatomic,retain) NSArray *listOfSchemes;
@property (nonatomic,retain) NSArray *listOfWeapons;
+@property (nonatomic,retain) NSArray *listOfScripts;
@property (nonatomic,retain) NSIndexPath *lastIndexPath_sc;
@property (nonatomic,retain) NSIndexPath *lastIndexPath_we;
+@property (nonatomic,retain) NSIndexPath *lastIndexPath_lu;
@property (nonatomic,retain) NSString *selectedScheme;
@property (nonatomic,retain) NSString *selectedWeapon;
-@property (nonatomic,retain) UISwitch *syncSwitch;
+@property (nonatomic,retain) NSString *selectedScript;
+@property (nonatomic,retain) NSString *scriptCommand;
+@property (nonatomic,retain) UISegmentedControl *topControl;
+@property (assign) BOOL hideSections;
-(void) fillSections;
-(void) emptySections;
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Thu Aug 04 17:44:55 2011 +0200
@@ -25,7 +25,8 @@
#define LABEL_TAG 57423
@implementation SchemeWeaponConfigViewController
-@synthesize listOfSchemes, listOfWeapons, lastIndexPath_sc, lastIndexPath_we, selectedScheme, selectedWeapon, syncSwitch;
+@synthesize listOfSchemes, listOfWeapons, listOfScripts, lastIndexPath_sc, lastIndexPath_we, lastIndexPath_lu,
+ selectedScheme, selectedWeapon, selectedScript, scriptCommand, topControl, hideSections;
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
@@ -41,6 +42,8 @@
self.selectedScheme = nil;
self.selectedWeapon = nil;
+ self.selectedScript = nil;
+ self.scriptCommand = nil;
if ([self.tableView respondsToSelector:@selector(setBackgroundView:)]) {
if (IS_IPAD())
@@ -74,7 +77,12 @@
if (self.selectedWeapon == nil && [listOfWeapons containsObject:@"Default.plist"])
self.selectedWeapon = @"Default.plist";
-
+
+ contentsOfDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:SCRIPTS_DIRECTORY() error:NULL];
+ self.listOfScripts = contentsOfDir;
+ self.selectedScript = @"Normal.plist";
+ self.scriptCommand = @"";
+
[self.tableView reloadData];
}
@@ -85,30 +93,30 @@
if (hideSections)
return 0;
else
- return 3;
+ return 1;
}
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
- if (section == 0)
+ if (self.topControl.selectedSegmentIndex == 0)
return [self.listOfSchemes count];
- else if (section == 1)
+ else if (self.topControl.selectedSegmentIndex == 1)
return [self.listOfWeapons count];
else
- return 1;
+ return [self.listOfScripts count];
}
// Customize the appearance of table view cells.
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
+ NSInteger index = self.topControl.selectedSegmentIndex;
NSInteger row = [indexPath row];
- NSInteger section = [indexPath section];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryView = nil;
- if (0 == section) {
+ if (0 == index) {
cell.textLabel.text = [[self.listOfSchemes objectAtIndex:row] stringByDeletingPathExtension];
NSString *str = [NSString stringWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),[self.listOfSchemes objectAtIndex:row]];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
@@ -120,7 +128,7 @@
[checkbox release];
self.lastIndexPath_sc = indexPath;
}
- } else if (1 == section) {
+ } else if (1 == index) {
cell.textLabel.text = [[self.listOfWeapons objectAtIndex:row] stringByDeletingPathExtension];
NSString *str = [NSString stringWithFormat:@"%@/%@",WEAPONS_DIRECTORY(),[self.listOfWeapons objectAtIndex:row]];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
@@ -133,44 +141,47 @@
self.lastIndexPath_we = indexPath;
}
} else {
- if (self.syncSwitch == nil) {
- UISwitch *theSwitch = [[UISwitch alloc] init];
- [theSwitch setOn:YES];
- self.syncSwitch = theSwitch;
- [theSwitch release];
+ cell.textLabel.text = [[self.listOfScripts objectAtIndex:row] stringByDeletingPathExtension];
+ NSString *str = [NSString stringWithFormat:@"%@/%@",SCRIPTS_DIRECTORY(),[self.listOfScripts objectAtIndex:row]];
+ NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
+ cell.detailTextLabel.text = [dict objectForKey:@"description"];
+ [dict release];
+ if ([[self.listOfScripts objectAtIndex:row] isEqualToString:self.selectedScript]) {
+ UIImageView *checkbox = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:@"checkbox.png"]];
+ cell.accessoryView = checkbox;
+ [checkbox release];
+ self.lastIndexPath_lu = indexPath;
}
- cell.textLabel.text = IS_IPAD() ? NSLocalizedString(@"Sync Schemes",@"") : NSLocalizedString(@"Sync Schemes and Weapons",@"");
- cell.detailTextLabel.text = IS_IPAD() ? nil : NSLocalizedString(@"Choosing a Scheme will select its associated Weapon",@"");
- cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
- cell.accessoryView = self.syncSwitch;
}
cell.backgroundColor = UICOLOR_HW_ALMOSTBLACK;
cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
cell.detailTextLabel.textColor = [UIColor whiteColor];
+ cell.textLabel.adjustsFontSizeToFitWidth = YES;
+ cell.detailTextLabel.adjustsFontSizeToFitWidth = YES;
return cell;
}
-(CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
- return 40.0;
+ return 50.0;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
- CGRect frame = CGRectMake(0, 0, self.view.frame.size.width * 80/100, 30);
- NSString *text;
- if (section == 0)
- text = NSLocalizedString(@"Schemes",@"");
- else if (section == 1)
- text = NSLocalizedString(@"Weapons",@"");
- else
- text = NSLocalizedString(@"Options",@"");
-
- UILabel *theLabel = createBlueLabel(text, frame);
- theLabel.center = CGPointMake(self.view.frame.size.width/2, 20);
+ if (self.topControl == nil) {
+ NSArray *array = [[NSArray alloc] initWithObjects:NSLocalizedString(@"Scheme",@""),NSLocalizedString(@"Weapon",@""),
+ NSLocalizedString(@"Style",@""),nil];
+ self.topControl = [[UISegmentedControl alloc] initWithItems:array];
+ [array release];
+ [self.topControl addTarget:self.tableView action:@selector(reloadData) forControlEvents:UIControlEventValueChanged];
+ self.topControl.segmentedControlStyle = UISegmentedControlStyleBar;
+ self.topControl.frame = CGRectMake(0, 0, self.view.frame.size.width * 80/100, 30);
+ self.topControl.center = CGPointMake(self.view.frame.size.width/2, 24);
+ self.topControl.tintColor = [UIColor lightGrayColor];
+ self.topControl.selectedSegmentIndex = 0;
+ }
UIView *theView = [[[UIView alloc] init] autorelease];
- [theView addSubview:theLabel];
- [theLabel release];
+ [theView addSubview:self.topControl];
return theView;
}
@@ -178,10 +189,13 @@
#pragma mark Table view delegate
-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSIndexPath *lastIndexPath;
- if ([indexPath section] == 0)
+ NSInteger index = self.topControl.selectedSegmentIndex;
+ if (index == 0)
lastIndexPath = self.lastIndexPath_sc;
+ else if (index == 1)
+ lastIndexPath = self.lastIndexPath_we;
else
- lastIndexPath = self.lastIndexPath_we;
+ lastIndexPath = self.lastIndexPath_lu;
int newRow = [indexPath row];
int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
@@ -195,10 +209,12 @@
UITableViewCell *oldCell = [aTableView cellForRowAtIndexPath:lastIndexPath];
oldCell.accessoryView = nil;
- if ([indexPath section] == 0) {
+ if (index == 0) {
self.lastIndexPath_sc = indexPath;
self.selectedScheme = [self.listOfSchemes objectAtIndex:newRow];
- if (self.syncSwitch.on) {
+
+ NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
+ if ([[settings objectForKey:@"sync_ws"] boolValue]) {
for (NSString *str in self.listOfWeapons) {
if ([str isEqualToString:self.selectedScheme]) {
int index = [self.listOfSchemes indexOfObject:str];
@@ -209,9 +225,36 @@
}
}
}
- } else {
+ } else if (index == 1) {
self.lastIndexPath_we = indexPath;
self.selectedWeapon = [self.listOfWeapons objectAtIndex:newRow];
+ } else {
+ self.lastIndexPath_lu = indexPath;
+ self.selectedScript = [self.listOfScripts objectAtIndex:newRow];
+
+ NSString *path = [[NSString alloc] initWithFormat:@"%@/%@",SCRIPTS_DIRECTORY(),selectedScript];
+ NSDictionary *scriptDict = [[NSDictionary alloc] initWithContentsOfFile:path];
+ [path release];
+ self.scriptCommand = [scriptDict objectForKey:@"command"];
+ NSString *scheme = [scriptDict objectForKey:@"scheme"];
+ if ([scheme isEqualToString:@""]) {
+ self.selectedScheme = @"Default.plist";
+ [self.topControl setEnabled:NO forSegmentAtIndex:0];
+ } else {
+ self.selectedScheme = scheme;
+ [self.topControl setEnabled:YES forSegmentAtIndex:0];
+ }
+
+ NSString *weapon = [scriptDict objectForKey:@"weapon"];
+ if ([weapon isEqualToString:@""]) {
+ self.selectedWeapon = @"Default.plist";
+ [self.topControl setEnabled:NO forSegmentAtIndex:1];
+ } else {
+ self.selectedWeapon = weapon;
+ [self.topControl setEnabled:YES forSegmentAtIndex:1];
+ }
+
+ [scriptDict release];
}
[aTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
@@ -224,11 +267,12 @@
hideSections = NO;
NSRange range;
range.location = 0;
- range.length = 3;
+ range.length = 1;
NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
[self.tableView insertSections:sections withRowAnimation:UITableViewRowAnimationFade];
self.selectedScheme = @"Default.plist";
self.selectedWeapon = @"Default.plist";
+ self.selectedScript = @"Normal.plist";
self.tableView.scrollEnabled = YES;
@@ -240,11 +284,12 @@
hideSections = YES;
NSRange range;
range.location = 0;
- range.length = 3;
+ range.length = 1;
NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range];
[self.tableView deleteSections:sections withRowAnimation:UITableViewRowAnimationFade];
self.selectedScheme = @"Default.plist";
self.selectedWeapon = @"Default.plist";
+ self.selectedScript = @"Normal.plist";
self.tableView.scrollEnabled = NO;
@@ -264,9 +309,11 @@
if ([[HedgewarsAppDelegate sharedAppDelegate] isInGame]) {
self.lastIndexPath_sc = nil;
self.lastIndexPath_we = nil;
+ self.lastIndexPath_lu = nil;
self.listOfSchemes = nil;
self.listOfWeapons = nil;
- self.syncSwitch = nil;
+ self.listOfScripts = nil;
+ self.topControl = nil;
MSG_MEMCLEAN();
}
[super didReceiveMemoryWarning];
@@ -275,11 +322,15 @@
-(void) viewDidUnload {
self.listOfSchemes = nil;
self.listOfWeapons = nil;
+ self.listOfScripts = nil;
self.lastIndexPath_sc = nil;
self.lastIndexPath_we = nil;
+ self.lastIndexPath_lu = nil;
self.selectedScheme = nil;
self.selectedWeapon = nil;
- self.syncSwitch = nil;
+ self.selectedScript = nil;
+ self.scriptCommand = nil;
+ self.topControl = nil;
MSG_DIDUNLOAD();
[super viewDidUnload];
}
@@ -288,11 +339,15 @@
-(void) dealloc {
releaseAndNil(listOfSchemes);
releaseAndNil(listOfWeapons);
+ releaseAndNil(listOfScripts);
releaseAndNil(lastIndexPath_sc);
releaseAndNil(lastIndexPath_we);
+ releaseAndNil(lastIndexPath_lu);
releaseAndNil(selectedScheme);
releaseAndNil(selectedWeapon);
- releaseAndNil(syncSwitch);
+ releaseAndNil(selectedScript);
+ releaseAndNil(scriptCommand);
+ releaseAndNil(topControl);
[super dealloc];
}
--- a/project_files/HedgewarsMobile/Classes/ServerSetup.h Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/ServerSetup.h Thu Aug 04 17:44:55 2011 +0200
@@ -30,6 +30,4 @@
@property (nonatomic, retain) NSDictionary *systemSettings;
--(BOOL) isNetworkReachable;
-
@end
--- a/project_files/HedgewarsMobile/Classes/ServerSetup.m Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Classes/ServerSetup.m Thu Aug 04 17:44:55 2011 +0200
@@ -22,8 +22,6 @@
#import "ServerSetup.h"
#import "PascalImports.h"
#import "CommodityFunctions.h"
-#import <SystemConfiguration/SCNetworkReachability.h>
-#import <netinet/in.h>
#import "hwconsts.h"
#define BUFFER_SIZE 256
@@ -43,39 +41,6 @@
[super dealloc];
}
-// reusing appirater method
--(BOOL) isNetworkReachable {
- // Create zero addy
- struct sockaddr_in zeroAddress;
- bzero(&zeroAddress, sizeof(zeroAddress));
- zeroAddress.sin_len = sizeof(zeroAddress);
- zeroAddress.sin_family = AF_INET;
-
- // Recover reachability flags
- SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
- SCNetworkReachabilityFlags flags;
-
- BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
- CFRelease(defaultRouteReachability);
-
- if (!didRetrieveFlags) {
- NSLog(@"Error. Could not recover network reachability flags");
- return NO;
- }
-
- BOOL isReachable = flags & kSCNetworkFlagsReachable;
- BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
- BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
-
- NSURL *testURL = [NSURL URLWithString:@"http://www.apple.com/"];
- NSURLRequest *testRequest = [NSURLRequest requestWithURL:testURL
- cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
- timeoutInterval:20.0];
- NSURLConnection *testConnection = [[NSURLConnection alloc] initWithRequest:testRequest delegate:self];
-
- return ((isReachable && !needsConnection) || nonWiFi) ? (testConnection ? YES : NO) : NO;
-}
-
-(int) sendToServer:(NSString *)command {
NSString *message = [[NSString alloc] initWithFormat:@"%@\n\n",command];
int result = SDLNet_TCP_Send(sd, [message UTF8String], [message length]);
--- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Thu Aug 04 17:44:55 2011 +0200
@@ -1370,7 +1370,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\n\n#create config.inc\necho \"Updating config file...\"\nPROTO=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep HEDGEWARS_PROTO_VER | cut -d ' ' -f 3`\nMAJN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MAJOR | xargs | cut -d ' ' -f 3`\nMINN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MINOR | xargs | cut -d ' ' -f 3`\nPATN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_PATCH | xargs | cut -d ' ' -f 3 | cut -d '$' -f 1`\nREVN=-`/usr/local/bin/hg id -n ${PROJECT_DIR}/../../`\necho \"const cNetProtoVersion = $PROTO; const cVersionString = '${MAJN}.${MINN}.${PATN}${REVN}'; const cLuaLibrary = '';\" > ${PROJECT_DIR}/../../hedgewars/config.inc\n\necho \"Copying Data...\"\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files from QTfrontend/res\necho \"Fetching additional graphics from QTfrontend/res...\"\nmkdir ${PROJECT_DIR}/Data/Graphics/Btn\ncp ${PROJECT_DIR}/../../QTfrontend/res/btn*.png ${PROJECT_DIR}/Data/Graphics/Btn/\ncp ${PROJECT_DIR}/../../QTfrontend/res/icon*.png ${PROJECT_DIR}/Data/Graphics/Btn/\ncp ${PROJECT_DIR}/../../QTfrontend/res/StatsMedal*.png ${PROJECT_DIR}/Data/Graphics/Btn/\ncp ${PROJECT_DIR}/../../QTfrontend/res/StatsR.png ${PROJECT_DIR}/Data/Graphics/Btn/StatsStar.png\ncp ${PROJECT_DIR}/../../QTfrontend/res/ammopic.png ${PROJECT_DIR}/Data/Graphics/Btn/iconAmmo.png\ncp -R ${PROJECT_DIR}/../../QTfrontend/res/botlevels ${PROJECT_DIR}/Data/Graphics/Hedgehog/botlevels/\n\necho \"Removing text and dummy files...\"\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg -delete\nfind ${PROJECT_DIR}/Data -name *.svgz -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\nfind ${PROJECT_DIR}/Data -name *.orig -delete\n\n#delete desktop frontend translation\nrm -rf ${PROJECT_DIR}/Data/Locale/hedgewars_*\n\n#delete dummy maps and hats, misc stuff\nrm -rf ${PROJECT_DIR}/Data/Maps/{test*,Ruler}\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/{TeamCap,TeamHeadband,TeamHair}\nrm -rf ${PROJECT_DIR}/Data/misc/\n\n#delete forbidden maps\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\n\n#delete useless fonts\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\n#delete all names, reserved hats\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\n\necho \"Handling audio files...\"\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n#delete the main theme file\nrm -rf ${PROJECT_DIR}/Data/Music/main_theme.ogg\n#copy mono audio\ncp -R ${PROJECT_DIR}/Audio/* ${PROJECT_DIR}/Data/\n#remove unused voices\nfor i in {Amazing,Brilliant,Bugger,Bungee,Cutitout,Drat,Excellent,Fire,FlawlessPossibility,Gonnagetyou,Grenade,Hmm,Justyouwait,Leavemealone,Ohdear,Ouch,Perfect,Revenge,Runaway,Solong,Thisoneismine,VictoryPossibility,Watchthis,Whatthe,Whoopsee}; do find Data/Sounds/voices/ -name $i.ogg -delete; done\n\necho \"Tweaking Data contents...\"\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nmv ${PROJECT_DIR}/Data/Maps/{Basketball,Knockball,TrophyRace,CTF_Blizzard,Control} ${PROJECT_DIR}/Data/Missions/Maps/\n#workaround for missing map in CTF_Blizzard\nln -s ../../../Maps/Blizzard/map.png ${PROJECT_DIR}/Data/Missions/Maps/CTF_Blizzard/map.png\n\n#reduce the number of flakes for City\nawk '{if ($1 == 1500) $1=40; print $0}' < ${PROJECT_DIR}/Data/Themes/City/theme.cfg > /tmp/tempfile\nmv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n\n#remove WIP themes (check they are not used in Maps)\nrm -rf ${PROJECT_DIR}/Data/Themes/{Beach,Digital}\n\necho \"Done\"";
+ shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\n\n#create config.inc\necho \"Updating config file...\"\nPROTO=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep HEDGEWARS_PROTO_VER | cut -d ' ' -f 2 | cut -d ')' -f 1`\nMAJN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MAJOR | xargs | cut -d ' ' -f 2 |cut -d ')' -f 1`\nMINN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_MINOR | xargs | cut -d ' ' -f 2 |cut -d ')' -f 1`\nPATN=`cat ${PROJECT_DIR}/../../CMakeLists.txt | grep CPACK_PACKAGE_VERSION_PATCH | xargs | cut -d ' ' -f 2 | cut -d '$' -f 1`\nREVN=-`/usr/local/bin/hg id -n ${PROJECT_DIR}/../../`\necho \"const cNetProtoVersion = $PROTO; const cVersionString = '${MAJN}.${MINN}.${PATN}${REVN}'; const cLuaLibrary = '';\" > ${PROJECT_DIR}/../../hedgewars/config.inc\n\necho \"Copying Data...\"\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files from QTfrontend/res\necho \"Fetching additional graphics from QTfrontend/res...\"\nmkdir ${PROJECT_DIR}/Data/Graphics/Btn\ncp ${PROJECT_DIR}/../../QTfrontend/res/btn*.png ${PROJECT_DIR}/Data/Graphics/Btn/\ncp ${PROJECT_DIR}/../../QTfrontend/res/icon*.png ${PROJECT_DIR}/Data/Graphics/Btn/\ncp ${PROJECT_DIR}/../../QTfrontend/res/StatsMedal*.png ${PROJECT_DIR}/Data/Graphics/Btn/\ncp ${PROJECT_DIR}/../../QTfrontend/res/StatsR.png ${PROJECT_DIR}/Data/Graphics/Btn/StatsStar.png\ncp ${PROJECT_DIR}/../../QTfrontend/res/ammopic.png ${PROJECT_DIR}/Data/Graphics/Btn/iconAmmo.png\ncp -R ${PROJECT_DIR}/../../QTfrontend/res/botlevels ${PROJECT_DIR}/Data/Graphics/Hedgehog/botlevels/\n\necho \"Removing text and dummy files...\"\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg -delete\nfind ${PROJECT_DIR}/Data -name *.svgz -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\nfind ${PROJECT_DIR}/Data -name *.orig -delete\n\n#delete desktop frontend translation\nrm -rf ${PROJECT_DIR}/Data/Locale/hedgewars_*\n\n#delete dummy maps and hats, misc stuff\nrm -rf ${PROJECT_DIR}/Data/Maps/{test*,Ruler}\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/{TeamCap,TeamHeadband,TeamHair}\nrm -rf ${PROJECT_DIR}/Data/misc/\n\n#delete forbidden maps and WIP themes (remember to check that no Map uses them)\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\nrm -rf ${PROJECT_DIR}/Data/Themes/{Beach,Digital}\n\n#delete unused fonts\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\n#delete all names, reserved hats\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\n\necho \"Handling audio files...\"\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n#delete the main theme file\nrm -rf ${PROJECT_DIR}/Data/Music/main_theme.ogg\n#copy mono audio\ncp -R ${PROJECT_DIR}/Audio/* ${PROJECT_DIR}/Data/\n#remove unused voices\nfor i in {Amazing,Brilliant,Bugger,Bungee,Cutitout,Drat,Excellent,Fire,FlawlessPossibility,Gonnagetyou,Grenade,Hmm,Justyouwait,Leavemealone,Ohdear,Ouch,Perfect,Revenge,Runaway,Solong,Thisoneismine,VictoryPossibility,Watchthis,Whatthe,Whoopsee}; do find Data/Sounds/voices/ -name $i.ogg -delete; done\n\necho \"Tweaking Data contents...\"\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nmv ${PROJECT_DIR}/Data/Maps/{Basketball,Knockball,TrophyRace,CTF_Blizzard,Control} ${PROJECT_DIR}/Data/Missions/Maps/\n#workaround for missing map in CTF_Blizzard\nln -s ../../../Maps/Blizzard/map.png ${PROJECT_DIR}/Data/Missions/Maps/CTF_Blizzard/map.png\n#remove cfg files since we have plists\nfind ${PROJECT_DIR}/Data/Scripts -name *.cfg -delete\n\n#reduce the number of flakes for City\nawk '{if ($1 == 1500) $1=40; print $0}' < ${PROJECT_DIR}/Data/Themes/City/theme.cfg > /tmp/tempfile\nmv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n\necho \"Done\"";
showEnvVarsInLog = 0;
};
9283011B0F10CB2D00CC5A3C /* Build libfpc.a */ = {
@@ -1522,49 +1522,24 @@
1D6058940D05DD3E006BFB54 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
- COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_GENERATE_TEST_COVERAGE_FILES = YES;
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
INFOPLIST_FILE = Info.plist;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)\"",
- );
- OTHER_LDFLAGS = (
- "$(inherited)",
- "-lgcov",
- );
PRODUCT_NAME = Hedgewars;
- TARGETED_DEVICE_FAMILY = "$(inherited)";
};
name = Debug;
};
1D6058950D05DD3E006BFB54 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- CODE_SIGN_ENTITLEMENTS = "Entitlements-Development.plist";
- CODE_SIGN_IDENTITY = "iPhone Developer";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
INFOPLIST_FILE = Info.plist;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)\"",
- );
PRODUCT_NAME = Hedgewars;
- PROVISIONING_PROFILE = "";
- "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
- TARGETED_DEVICE_FAMILY = "$(inherited)";
};
name = Release;
};
@@ -1584,7 +1559,7 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_DEBUGGING_SYMBOLS = default;
GCC_FAST_MATH = YES;
- GCC_OPTIMIZATION_LEVEL = 2;
+ GCC_OPTIMIZATION_LEVEL = s;
GCC_PREPROCESSOR_DEFINITIONS = "";
GCC_STRICT_ALIASING = YES;
GCC_THUMB_SUPPORT = NO;
@@ -1599,6 +1574,7 @@
"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
);
IPHONEOS_DEPLOYMENT_TARGET = 3.1;
+ LLVM_LTO = NO;
ONLY_ACTIVE_ARCH = NO;
OTHER_CODE_SIGN_FLAGS = "";
OTHER_LDFLAGS = (
@@ -1618,30 +1594,17 @@
61022D7D12305A2800B08935 /* Distro AppStore */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
- CODE_SIGN_ENTITLEMENTS = "Entitlements-Distribution.plist";
- CODE_SIGN_IDENTITY = "iPhone Distribution";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
INFOPLIST_FILE = Info.plist;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)\"",
- );
PRODUCT_NAME = Hedgewars;
- PROVISIONING_PROFILE = "";
- "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
- TARGETED_DEVICE_FAMILY = "$(inherited)";
};
name = "Distro AppStore";
};
61022D7E12305A2800B08935 /* Distro AppStore */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_ENABLE_FIX_AND_CONTINUE = NO;
@@ -1674,12 +1637,12 @@
FPC_COMPILER_BINARY_DIR = /usr/local/lib/fpc/2.5.1;
FPC_MAIN_FILE = "$(PROJECT_DIR)/../../hedgewars/hwLibrary.pas";
FPC_RTL_UNITS_BASE = /usr/local/lib/fpc;
- FPC_SPECIFIC_OPTIONS = "-dDEBUGFILE -Ci- -Cr- -Co- -O-2 -Xs -Cfvfpv2";
+ FPC_SPECIFIC_OPTIONS = "-dDEBUGFILE -O- -g -gl -gw2 -gt -ghttt -Xs- -Cfvfpv2";
FPC_UNITS_PATH = "-Fu\"$(PROJECT_DIR)\"";
GCC_C_LANGUAGE_STANDARD = c99;
- GCC_DEBUGGING_SYMBOLS = default;
+ GCC_DEBUGGING_SYMBOLS = full;
GCC_FAST_MATH = YES;
- GCC_OPTIMIZATION_LEVEL = 2;
+ GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
GCC_STRICT_ALIASING = YES;
GCC_THUMB_SUPPORT = NO;
@@ -1712,28 +1675,17 @@
6137064C117B1CB3004EE44A /* Distro Adhoc */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
- CODE_SIGN_ENTITLEMENTS = "Entitlements-Distribution.plist";
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = Hedgewars_Prefix.pch;
INFOPLIST_FILE = Info.plist;
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "\"$(SRCROOT)\"",
- );
PRODUCT_NAME = Hedgewars;
- "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
- TARGETED_DEVICE_FAMILY = "$(inherited)";
};
name = "Distro Adhoc";
};
6137064D117B1CB3004EE44A /* Distro Adhoc */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_ENABLE_FIX_AND_CONTINUE = NO;
@@ -1778,7 +1730,6 @@
928301180F10CAFD00CC5A3C /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
@@ -1790,7 +1741,6 @@
928301190F10CAFD00CC5A3C /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_ENABLE_FIX_AND_CONTINUE = NO;
@@ -1816,7 +1766,7 @@
FPC_UNITS_PATH = "-Fu\"$(PROJECT_DIR)\"";
GCC_C_LANGUAGE_STANDARD = c99;
GCC_DEBUGGING_SYMBOLS = full;
- GCC_FAST_MATH = NO;
+ GCC_FAST_MATH = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
GCC_STRICT_ALIASING = YES;
@@ -1863,7 +1813,7 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_DEBUGGING_SYMBOLS = default;
GCC_FAST_MATH = YES;
- GCC_OPTIMIZATION_LEVEL = 2;
+ GCC_OPTIMIZATION_LEVEL = s;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
GCC_STRICT_ALIASING = YES;
GCC_THUMB_SUPPORT = NO;
@@ -1878,6 +1828,7 @@
"\"$(SRCROOT)/../../../Library/SDL_mixer/\"",
);
IPHONEOS_DEPLOYMENT_TARGET = 3.1;
+ LLVM_LTO = NO;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"-lz",
--- a/project_files/HedgewarsMobile/Resources/GameConfigViewController.xib Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/GameConfigViewController.xib Thu Aug 04 17:44:55 2011 +0200
@@ -2,9 +2,9 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10H574</string>
+ <string key="IBDocument.SystemVersion">10K540</string>
<string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.35</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
<string key="IBDocument.HIToolboxVersion">461.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@@ -50,7 +50,7 @@
<object class="IBUISegmentedControl" id="563596142">
<reference key="NSNextResponder" ref="836721772"/>
<int key="NSvFlags">292</int>
- <string key="NSFrame">{{96, 8}, {269, 30}}</string>
+ <string key="NSFrame">{{96, 8}, {270, 30}}</string>
<reference key="NSSuperview" ref="836721772"/>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">12345</int>
@@ -94,8 +94,8 @@
<reference ref="4"/>
</object>
<object class="NSColor" key="IBTintColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MC4yMzEzNzI1NjUgMCAwLjQ2Mjc0NTEzMDEAA</bytes>
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC42IDAuNiAwLjYAA</bytes>
</object>
</object>
</object>
--- a/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPad.xib Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPad.xib Thu Aug 04 17:44:55 2011 +0200
@@ -2,9 +2,9 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10H574</string>
+ <string key="IBDocument.SystemVersion">10K540</string>
<string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.35</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
<string key="IBDocument.HIToolboxVersion">461.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@@ -12,7 +12,7 @@
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="9"/>
+ <integer value="1"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -58,7 +58,7 @@
<object class="IBUISegmentedControl" id="88728219">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">289</int>
- <string key="NSFrame">{{725, 166}, {277, 30}}</string>
+ <string key="NSFrame">{{724, 166}, {280, 30}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
@@ -101,8 +101,8 @@
<reference ref="4"/>
</object>
<object class="NSColor" key="IBTintColor">
- <int key="NSColorSpace">1</int>
- <bytes key="NSRGB">MCAwIDAAA</bytes>
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="IBUISlider" id="938256702">
@@ -566,6 +566,7 @@
<string>57.IBPluginDependency</string>
<string>66.IBPluginDependency</string>
<string>7.IBPluginDependency</string>
+ <string>7.IBViewBoundsToFrameTransform</string>
<string>70.IBPluginDependency</string>
<string>72.IBPluginDependency</string>
<string>75.IBPluginDependency</string>
@@ -585,6 +586,9 @@
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABENUAAw0IAAA</bytes>
+ </object>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
--- a/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPhone.xib Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPhone.xib Thu Aug 04 17:44:55 2011 +0200
@@ -2,9 +2,9 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1056</int>
- <string key="IBDocument.SystemVersion">10H574</string>
+ <string key="IBDocument.SystemVersion">10K540</string>
<string key="IBDocument.InterfaceBuilderVersion">823</string>
- <string key="IBDocument.AppKitVersion">1038.35</string>
+ <string key="IBDocument.AppKitVersion">1038.36</string>
<string key="IBDocument.HIToolboxVersion">461.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@@ -57,7 +57,7 @@
<object class="IBUISegmentedControl" id="88728219">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
- <string key="NSFrame">{{13, 166}, {256, 30}}</string>
+ <string key="NSFrame">{{9, 14}, {270, 30}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@@ -100,14 +100,14 @@
<reference ref="4"/>
</object>
<object class="NSColor" key="IBTintColor">
- <int key="NSColorSpace">2</int>
- <bytes key="NSRGB">MC4wMjM1Mjk0MTQwOSAwLjM3NjQ3MDYyNTQgMAA</bytes>
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="IBUISlider" id="938256702">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
- <string key="NSFrame">{{98, 240}, {149, 23}}</string>
+ <string key="NSFrame">{{119, 207}, {149, 23}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@@ -119,7 +119,7 @@
<object class="IBUIButton" id="326163764">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
- <string key="NSFrame">{{13, 20}, {256, 128}}</string>
+ <string key="NSFrame">{{16, 58}, {256, 128}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@@ -146,7 +146,7 @@
<object class="IBUILabel" id="634417433">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
- <string key="NSFrame">{{20, 221}, {48, 35}}</string>
+ <string key="NSFrame">{{58, 221}, {48, 35}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
@@ -154,6 +154,11 @@
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<string key="IBUIText">...</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">17</double>
+ <int key="NSfFlags">16</int>
+ </object>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">2</int>
<bytes key="NSRGB">MC45NDkwMTk2NzA1IDAuNzY4NjI3NTI0NCAwAA</bytes>
@@ -166,7 +171,7 @@
<object class="IBUILabel" id="743202682">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
- <string key="NSFrame">{{88, 210}, {169, 29}}</string>
+ <string key="NSFrame">{{109, 237}, {169, 29}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
@@ -210,6 +215,31 @@
<float key="IBUISectionHeaderHeight">10</float>
<float key="IBUISectionFooterHeight">10</float>
</object>
+ <object class="IBUILabel" id="32436512">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{-9, 225}, {92, 27}}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Max</string>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-BoldOblique</string>
+ <double key="NSSize">18</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <object class="NSColor" key="IBUITextColor">
+ <int key="NSColorSpace">2</int>
+ <bytes key="NSRGB">MC45NDkwMTk2NzA1IDAuNzY4NjI3NTI0NCAwAA</bytes>
+ </object>
+ <reference key="IBUIHighlightedColor" ref="437070330"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <int key="IBUITextAlignment">1</int>
+ </object>
</object>
<string key="NSFrameSize">{480, 276}</string>
<reference key="NSSuperview"/>
@@ -358,10 +388,11 @@
<reference ref="326163764"/>
<reference ref="565214171"/>
<reference ref="938256702"/>
- <reference ref="88728219"/>
+ <reference ref="743202682"/>
<reference ref="574494641"/>
- <reference ref="743202682"/>
+ <reference ref="88728219"/>
<reference ref="634417433"/>
+ <reference ref="32436512"/>
</object>
<reference key="parent" ref="0"/>
</object>
@@ -412,6 +443,11 @@
<reference key="object" ref="574494641"/>
<reference key="parent" ref="191373211"/>
</object>
+ <object class="IBObjectRecord">
+ <int key="objectID">36</int>
+ <reference key="object" ref="32436512"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@@ -430,7 +466,10 @@
<string>25.IBViewBoundsToFrameTransform</string>
<string>35.IBPluginDependency</string>
<string>35.IBViewBoundsToFrameTransform</string>
+ <string>36.IBPluginDependency</string>
+ <string>36.IBViewBoundsToFrameTransform</string>
<string>7.IBPluginDependency</string>
+ <string>7.IBViewBoundsToFrameTransform</string>
<string>8.IBPluginDependency</string>
<string>9.CustomClassName</string>
<string>9.IBPluginDependency</string>
@@ -440,11 +479,11 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>MapConfigViewController</string>
<string>UIResponder</string>
- <string>{{507, 233}, {480, 320}}</string>
+ <string>{{790, 298}, {480, 320}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAABB6AAAw3kAAA</bytes>
+ <bytes key="NSTransformStruct">P4AAAL+AAABB+AAAw4QAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<object class="NSAffineTransform">
@@ -456,9 +495,16 @@
</object>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<object class="NSAffineTransform">
- <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw58AAA</bytes>
+ <bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw4kAAA</bytes>
</object>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBMAAAw2gAAA</bytes>
+ </object>
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <object class="NSAffineTransform">
+ <bytes key="NSTransformStruct">P4AAAL+AAABBUAAAwigAAA</bytes>
+ </object>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>MapPreviewButtonView</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@@ -483,7 +529,7 @@
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">35</int>
+ <int key="maxID">36</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
<false/>
<false/>
<false/>
+ <false/>
</array>
</dict>
</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Clean Slate.plist Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Clean Slate.plist Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
<false/>
<false/>
<false/>
+ <false/>
</array>
</dict>
</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
<false/>
<false/>
<false/>
+ <false/>
</array>
</dict>
</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Fort Mode.plist Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Fort Mode.plist Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
<false/>
<false/>
<false/>
+ <false/>
</array>
</dict>
</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/King Mode.plist Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/King Mode.plist Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
<false/>
<false/>
<false/>
+ <false/>
</array>
</dict>
</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
<false/>
<false/>
<false/>
+ <false/>
</array>
</dict>
</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
<false/>
<false/>
<false/>
+ <false/>
</array>
</dict>
</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist Thu Aug 04 17:44:55 2011 +0200
@@ -40,6 +40,7 @@
<false/>
<false/>
<false/>
+ <true/>
<false/>
<false/>
<false/>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Thinking with Portals.plist Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Thinking with Portals.plist Thu Aug 04 17:44:55 2011 +0200
@@ -30,9 +30,10 @@
<false/>
<false/>
<false/>
+ <true/>
<false/>
<true/>
- <true/>
+ <false/>
<false/>
<false/>
<false/>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist Thu Aug 04 17:44:55 2011 +0200
@@ -35,7 +35,7 @@
<true/>
<false/>
<false/>
- <true/>
+ <false/>
<false/>
<false/>
<false/>
@@ -44,6 +44,7 @@
<true/>
<false/>
<false/>
+ <false/>
</array>
</dict>
</plist>
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist Thu Aug 04 17:41:07 2011 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist Thu Aug 04 17:44:55 2011 +0200
@@ -44,6 +44,7 @@
<false/>
<false/>
<false/>
+ <false/>
</array>
</dict>
</plist>
Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png has changed
Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos_bw.png has changed
--- a/share/hedgewars/Data/Locale/bg.txt Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/bg.txt Thu Aug 04 17:44:55 2011 +0200
@@ -12,7 +12,7 @@
00:09=Пистолет
00:10=Динамит
00:11=Бухалка
-00:12=Shoryuken
+00:12=Шурикен
00:13=сек
00:14=Парашут
00:15=Въздушна Атака
@@ -45,22 +45,22 @@
01:04=На Пауза
01:05=Наистина ли напускате (Y/Esc)?
01:06=Внезапна смърт!
-01:07=%1 Remaining
-01:08=Fuel
+01:07=%1 остава
+01:08=Гориво
; Event messages
-; Hog (%1) died
-02:00=%1 has kicked the bucket!
-02:00=%1 has seen the light!
-02:00=%1 never saw that comming!
-; Hog (%1) drowned
-02:01=%1 plays submarine!
-02:01=%1 mimics the Titanic!
-02:01=%1 swims like a stone!
+; Hog (%1) умря
+02:00=%1 гушна букета!
+02:00=%1 видя светлината!
+02:00=%1 не видя откъде му дойде!
+; Таралежа (%1) се удави
+02:01=%1 се прави на подводница!
+02:01=%1 имитира Титаник!
+02:01=%1 плува като камък!
; Match starts
-02:02=Let's fight!
-02:02=Armed and ready!
-; Hog shot an home run (using the bat and another hog)
-02:10=Home Run!
-02:10=A bird, a plane, ...
-02:10=That one is out!
+02:02=Бой!
+02:02=Зареден и готов!
+; Таралежа отбеляза хоумрън (използвайки бухалка и друг таралеж)
+02:10=Х!оумрън
+02:10=Птица ли е, самолет ли е, ...
+02:10=Този е вън от играта!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/cs.lua Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,176 @@
+locale = {
+ [":("] = ":(",
+ ["!!!"] = "!!!",
+ ["..."] = "...",
+ ["Accuracy Bonus!"] = "Bonus za přesnost!",
+ ["a Hedgewars mini-game"] = "Hedgewars mini-hra", -- Space_Invasion, The_Specialists
+ ["Aiming Practice"] = "Trénink přesnosti", --Bazooka, Shotgun, SniperRifle
+ ["Ammo"] = "Munice",
+ ["Ammo Depleted!"] = "Munice vyčerpána!",
+ ["Ammo Maniac!"] = "Muniční maniak!",
+ ["Available points remaining: "] = "Zbývá bodů:",
+ ["Bat balls at your enemies and|push them into the sea!"] = "Odpal míčky na své nepřátele|a odstrč je do vody!",
+ ["Bat your opponents through the|baskets and out of the map!"] = "Odpal protivníky skrz|koše a pryč z mapy!",
+ ["Bazooka Training"] = "Trénink s bazukou",
+ ["Best laps per team: "] = "Nejlepší kola dle týmů:",
+ ["Best Team Times: "] = "Nejlepší týmový čas:",
+ ["Bloody Rookies"] = "Zatravení zelenáči", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+ ["Boom!"] = "Bum!",
+ ["BOOM!"] = "BUM!",
+ ["Boss defeated!"] = "Velitel poražen!",
+ ["Boss Slayer!"] = "Velitel zabit!",
+ ["CAPTURE THE FLAG"] = "ZAJMI VLAJKU",
+ ["Careless"] = "Neopatrný",
+ ["Clumsy"] = "Nešikovný",
+ ["Codename: Teamwork"] = "Krycí jméno: Týmová práce",
+ ["Complete the track as fast as you can!"] = "Dokonči trasu tak rychle, jak můžeš!",
+ ["Congratulations!"] = "Gratuluji!",
+ ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratuluji! Eliminoval jsi všechny cíle|během stanoveného limitu", --Bazooka, Shotgun, SniperRifle
+ ["Control pillars to score points."] = "Obsaď všechny sloupy, abys dostal body.",
+ ["Cybernetic Empire"] = "Kybernetická říše",
+ ["DAMMIT, ROOKIE!"] = "ZATRACENĚ, ZELENÁČI!",
+ ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "ZATRACENĚ, ZELENÁČI! VYPADNI Z MOJI HLAVY!",
+ ["Dangerous Ducklings"] = "Nebezpečná káčátka",
+ ["Deadweight"] = "Mrtvá váha",
+ ["Depleted Kamikaze!"] = "Vyčerpaný sebevrah!",
+ ["Destroy invaders to score points."] = "Znič nájezdníky k získání bodů.",
+ ["Drone Hunter!"] = "Lovec trubců!",
+ ["Drowner"] = "Utopenec",
+ ["Each turn you get 1-3 random weapons"] = "Každý tah dostaneš 1-3 náhodné zbraně",
+ ["Each turn you get one random weapon"] = "Každý tah dostaneš jednu náhodnou zbraň",
+ ["Eliminate all enemies"] = "Znič všechny nepřátele",
+ ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Znič všechny cíle, než ti vyprší čas.|Na tuto misi máš neomezeně munice.", --Bazooka, Shotgun, SniperRifle
+ ["Eliminate Poison before the time runs out"] = "Odstraň Otravu, než vyprší čas.",
+ ["Eliminate the Blue Team"] = "Znič modrý tým",
+ ["Eliminate the enemy specialists."] = "Zabij nepřátelské specialisty",
+ ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Znič Jednotku 3378 |- Slabý odpor musí přežít",
+ ["Enjoy the swim..."] = "Užij si plavání...",
+ ["[Enter]"] = "[Enter]",
+ ["Fastest lap: "] = "Nejrychlejší kolo: ",
+ ["Feeble Resistance"] = "Slabý odpor",
+ ["Fire"] = "Oheň",
+ ["Flag captured!"] = "Vlajka zabrána!",
+ ["Flag respawned!"] = "Vlajka obnovena!",
+ ["Flag returned!"] = "Vlajka navrácena!",
+ ["Flags, and their home base will be placed where each team ends their first turn."] = "Vlajky a domovské základny budou umístěny tam, kde každý tým skončí svůj první tah.",
+ ["GAME BEGUN!!!"] = "HRA ZAČALA!!!",
+ ["Game Modifiers: "] = "Herní modifikátory: ",
+ ["GAME OVER!"] = "KONEC HRY!",
+ ["Game Started!"] = "Hra začala!",
+ ["Get on over there and take him out!"] = "Běž tamhle a dostaň ho!",
+ ["Goal"] = "Cíl",
+ ["GO! GO! GO!"] = "Běž! Běž! Běž!",
+ ["Good birdy......"] = "Hodný ptáček......",
+ ["Good luck out there!"] = "Hodně štěstí tam venku!",
+ ["GOTCHA!"] = "Mám tě!",
+ ["Hahahaha!"] = "Hahahaha!",
+ ["Haha, now THAT would be something!"] = "Haha, tak TOHLE bude něco!",
+ ["Hapless Hogs"] = "Nešťastný ježek",
+ [" Hapless Hogs left!"] = "Nešťastný ježek odešel!",
+ ["Heavy"] = "Těžký",
+ ["Hedgewars-Basketball"] = "Hedgewars-Basketbal",
+ ["Hedgewars-Knockball"] = "Hedgewars=Vybíjená",
+ ["Heh, it's not that bad."] = "Heh, to není tak špatné.",
+ ["Hit Combo!"] = "Opakovaný zásah!",
+ ["Hmmm..."] = "Hmmm...",
+ ["Hooray!"] = "Hurá!",
+ ["Hunter"] = "Lovec", --Bazooka, Shotgun, SniperRifle
+ ["Instructor"] = "Instruktor", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+ ["invaders destroyed"] = "nájezdník zničen",
+ ["It's a good thing SUDDEN DEATH is 99 turns away..."] = "To je dobře, že NÁHLÁ SMRT je 99 tahů vzdálená...",
+ ["Jumping is disabled"] = "Skákání je vypnuto",
+ ["Kamikaze Expert!"] = "Expert na sebevraždy!",
+ ["KILLS"] = "ÚLOVKY",
+ ["[Left Shift]"] = "[Levý shift]",
+ ["Listen up, maggot!!"] = "Poslouchej, bídný červe!!",
+ ["|- Mines Time:"] = "|- Časovač min:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION FAILED"] = "MISE NEÚSPĚŠNÁ", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESS"] = "MISE ÚSPĚŠNÁ",
+ ["MISSION SUCCESSFUL"] = "MISE ÚSPĚŠNÁ", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["Movement: [Up], [Down], [Left], [Right]"] = "Pohyb: [nahoru], [dolu], [vlevo], [vpravo]",
+ ["Multi-shot!"] = "Vícenásobná rána!",
+ ["Nameless Heroes"] = "Bezejmenní hrdinové",
+ ["NEW CLAN RECORD: "] = "NOVÝ KLANOVÝ REKORD: ",
+ ["NEW fastest lap: "] = "NOVÉ nejrychlejší kolo: ",
+ ["NEW RACE RECORD: "] = "NOVÝ TRAŤOVÝ REKORD: ",
+ ["NOT ENOUGH WAYPOINTS"] = "NEDOSTATEK NAVIGAČNÍCH BODŮ",
+ ["Not So Friendly Match"] = "Ne moc přátelský zápas", -- Basketball, Knockball
+ ["Oh no! Just try again!"] = "Ale ne! Prostě to zkus znovu!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["Oh no! Time's up! Just try again."] = "Ale ne! Čas vypršel! Zkus to znova!", --Bazooka, Shotgun, SniperRifle
+ ["Operation Diver"] = "Operace potápěč",
+ ["Opposing Team: "] = "Protivníkův tým: ",
+ ["Pathetic Hog #%d"] = "Žalostný ježek #%d",
+ ["Per-Hog Ammo"] = "Individuální munice",
+ ["Place more waypoints using [ENTER]"] = "Umísti více navigačních bodů pomocí klávesy [enter]",
+ ["points"] = "body", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
+ ["Poison"] = "Otrava",
+ ["Power Remaining"] = "Zbývající energie",
+ ["Press [Precise] to skip intro"] = "Stiskni [přesnost] pro přeskočení",
+ ["Race complexity limit reached."] = "Dosažen limit složitosti závodu.",
+ [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = " - Dones nepřátelskou vlajku do své základny k získání bodů | - První tým se třemi ukořistěními vítězí | - Můžeš bodovat, pokud je tvá vlajka v základně | - Ježci pustí vlajku, pokud jsou zabiti, nebo utopeni | - Upuštěná vlajka může být navrácena, nebo opět zajmuta | - Ježci jsou po smrti oživeni",
+ ["Round Limit"] = "Limit kol",
+ ["Rounds Complete"] = "Dokončených kol",
+ ["RULES OF THE GAME [Press ESC to view]"] = "PRAVIDLA HRY [Stiskni ESC pro prohlédnutí]",
+ ["s|"] = "s|",
+ ["Save as many hapless hogs as possible!"] = "Zachraň tolik nešťastných ježků, kolik jen můžeš!",
+ ["SCORE"] = "SKÓRE",
+ ["sec"] = "vt.", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+ ["See ya!"] = "Uvidíme se!",
+ ["s"] = "s", -- GaudyRacer, Space_Invasion
+ ["Shield boosted! +30 power"] = "Štít posílen! +30 energie",
+ ["Shield Depleted"] = "Štít vyčerpán",
+ ["Shield is fully recharged!"] = "Štít je plně dobit",
+ ["Shield Master!"] = "Štítový odborník!",
+ ["Shield Miser!"] = "Štítový škrt!",
+ ["Shield OFF:"] = "Štít VYPNUT:",
+ ["Shield ON:"] = "Štít ZAPNUT:",
+ ["Shield Seeker!"] = "Hledač štítů!",
+ ["Shotgun Team"] = "Brokovnicový tým",
+ ["Shotgun Training"] = "Trénink s brokovnicí",
+ ["Shots Left: "] = "Zbývá střel: ", -- GaudyRacer, Tumbler
+ ["Silly"] = "Hloupý",
+ ["Sinky"] = "Propadlý",
+ ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s je venku a tým %d|má penaltu!| |Skóre:", -- Basketball, Knockball
+ ["%s is out and Team %d|scored a point!| |Score:"] = "%s je venku a tým %d|skóruje!| |Skóre:", -- Basketball, Knockball
+ ["Sniper Training"] = "Odstřelovací trénink",
+ ["Sniperz"] = "Snajpři",
+ ["Sponge"] = "Mycí houba",
+ ["Spooky Tree"] = "Strašidelný strom",
+ ["STATUS UPDATE"] = "AKTUALIZACE STAVU", -- GaudyRacer, Space_Invasion
+ ["Switched to "] = "Přepnut na ",
+ ["Team %d: "] = "Tým %d: ",
+ ["Team Scores"] = "Týmové skóre", -- Control, Space_Invasion
+ ["That Sinking Feeling"] = "Potopené pocity",
+ ["That was pointless."] = "To bylo bezúčelné.",
+ ["The enemy is hiding out on yonder ducky!"] = "Nepřítel se skrývá na tamté kachničce!",
+ ["The flag will respawn next round."] = "Vlajka se obnoví příští kolo.",
+ ["The Nameless One"] = "Bezejmenný",
+ ["THE SPECIALISTS"] = "SPECIALISTÉ",
+ ["This rain is really something..."] = "Tenhle déšť je opravdu něco...",
+ ["TIME: "] = "ČAS: ",
+ ["Timed Kamikaze!"] = "Časovaná sebevražda!",
+ ["Time Extended!"] = "Čas prodloužen!",
+ ["Time Left: "] = "Zbývá času: ",
+ ["Toggle Shield"] = "Přepnout štít",
+ ["Toxic Team"] = "Jedovatý tým", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["TRACK COMPLETED"] = "TRASA KOMPLETNÍ",
+ ["Track Time: "] = "Čas na trati: ",
+ ["TrophyRace"] = "Závod o trofej",
+ ["T_T"] = "T_T",
+ ["Turn Time"] = "Čas kola",
+ ["Unit 3378"] = "Jednotka 3378",
+ ["Unlimited Attacks"] = "Neomezeně útoků",
+ ["User Challenge"] = "Výzva",
+ ["Use your rope to get from start to finish as fast as you can!"] = "Použij lano a dostaň se ze startu do cíle, jak nejrychleji umíš!",
+ ["v.06"] = "v.06",
+ ["Victory for the "] = "Vítězství pro ", -- CTF_Blizzard, Capture_the_Flag
+ ["Waypoint placed."] = "Navigační bod umístěn.",
+ ["Weapons Reset"] = "Zbraně obnoveny",
+ ["WINNING TIME: "] = "VÍTĚZNÝ ČAS: ",
+ ["You'd almost swear the water was rising!"] = "Přísahal bys, že voda stoupá!",
+ ["You have SCORED!!"] = "SKÓROVAL jsi!!",
+ ["You saved"] = "Uložil jsi",
+ ["You've failed. Try again."] = "Zklamal jsi. Zkus to znovu.",
+ ["You've reached the goal!| |Time: "] = "Dosáhl jsi cíle!| |Čas: ",
+ ["'Zooka Team"] = "Bazukáři",
+ }
--- a/share/hedgewars/Data/Locale/cs.txt Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/cs.txt Thu Aug 04 17:44:55 2011 +0200
@@ -1,46 +1,57 @@
; Czech locale
00:00=Granát
-00:01=Tříštivý Granát
+00:01=Tříštivý granát
00:02=Bazuka
-00:03=UFO
+00:03=Naváděná včela
00:04=Brokovnice
00:05=Sbíječka
00:06=Přeskočit
00:07=Lano
00:08=Mina
-00:09=DEagle
+00:09=Pistole Desert Eagle
00:10=Dynamit
00:11=Basebalová pálka
-00:12=Shoryuken
-00:13=sec
+00:12=Ohnivý úder
+00:13=vt.
00:14=Padák
-00:15=Nálet
-00:16=Minový nálet
-00:17=Blow Torch
+00:15=Vzdušný útok
+00:16=Minový útok
+00:17=Svářečka
00:18=Výstavba
00:19=Teleportace
-00:20=Vyměnit Ježka
-00:21=Mortar
+00:20=Vyměnit ježka
+00:21=Minomet
00:22=Švihnutí bičem
-00:23=Kamikaze
+00:23=Kamikadze
00:24=Dort
00:25=Omámení
00:26=Bomba z vodního melounu
00:27=Ďábelský ruční granát
00:28=Vrtáková raketa
-00:29=Ballgun
+00:29=Kuličkomet
00:30=Napalm
00:31=RC Letadlo
-00:32=Low Gravity
-00:33=Extra Damage
-00:34=Invulnerable
-00:35=Extra Time
-00:36=Laser Sight
-00:37=Vampirism
-00:38=Sniper Rifle
-00:39=Flying Saucer
-00:40=Molotov Cocktail
+00:32=Nízká gravitace
+00:33=Extra zranění
+00:34=Nesmrtelnost
+00:35=Extra čas
+00:36=Laserové zaměřování
+00:37=Vampyrismus
+00:38=Odsřelovačská puška
+00:39=Létající talíř
+00:40=Molotov koktejl
+00:41=Ptáček
+00:42=Přenosný vytvářeč portálů
+00:43=Pianový útok
+00:44=Olomoucké tvarůžky
+00:45=Sinová puška (beta)
+00:46=Plamenomet
+00:47=Přísavná mina
+00:48=Kladivo
+00:49=Oživovač
+00:50=Vrtákový útok
+00:51=Hrouda bláta
01:00=Do boje!
01:01=Kolo nerozhodně
@@ -49,22 +60,453 @@
01:04=Pauza
01:05=Opravdu ukončit (Y/Esc)?
01:06=Náhlá smrt!
-01:07=%1 Remaining
-01:08=Fuel
+01:07=%1 zbývá
+01:08=Palivo
+01:09=Synchronizuji...
+01:10=Použití tohoto nástroje neukončí tvůj tah!
+01:11=Tato zbraň nebo nástroj není dosud povolena!
+01:12=Poslední kolo před Náhlou smrtí!
+01:13=%1 kol do Náhlé smrti!
+01:14=Připrav se, %1!
; Event messages
; Hog (%1) died
-02:00=%1 has kicked the bucket!
-02:00=%1 has seen the light!
-02:00=%1 never saw that comming!
+02:00=%1 natáhl bačkory!
+02:00=%1 viděl světlo na konci tunelu!
+02:00=%1 to neviděl přicházet!
+02:00=%1 mává na rozloučenou!
+02:00=%1 odešel na lepší místo!
+02:00=%1 potkal svého tvůrce!
+02:00=%1 už nemůže čekat!
+02:00=%1 splnil svou povinnost!
+02:00=%1 provedl obrovskou oběť!
+02:00=%1 je na smrtelné posteli!
+02:00=%1 opadal jak listí ze stromů!
+02:00=%1 přišel o svůj čas!
+02:00=%1 říká mír s vámi!
+02:00=%1 nebude nikdy zapomenut!
+02:00=%1 má aneurisma!
+02:00=%1 po sobě zanechal ženu a děti
+02:00=%1 si naposledy vystřelil z bazuky
+02:00=%1 odhodil svůj poslední granát
+02:00=%1 dopekl svůj poslední dort
+02:00=%1 se naposledy zhoupl na laně
+02:00=%1 zavolal svou poslední leteckou podporu
+02:00=%1 si naposledy pohladil brokovnici
+02:00=%1 hodil poslední meloun
+02:00=%1 naposledy vytáhl svou pistoli
+02:00=%1 schytal příliš mnoho ran
+02:00=%1 by opravdu využil bednu se zdravím
+02:00=%1 odešel hrát lepší hru
+02:00=%1 vztekle opustil život
+02:00=%1 zklamal
+02:00=Ubohý %1...
+02:00=%1 preferuje wormux
+02:00=%1 blokoval rány svou tváří
+02:00=%1 je hrdina mezi li...ehm...ježky
+02:00=%1 našel své místo ve Valhalle
+02:00=%1 opustil budovu
+02:00=%1 zvolil stejnou cestu jako dinosauři
+02:00=%1 dovedl ježky o krok blíže k vymření
+02:00=%1 přinesl slzu do mého oka
+02:00=%1 je ex-ježek
+02:00=%1 hnojí kytičky
+02:00=%1 přestal existovat
+02:00=Řekněte sbohem %1
+02:00=Pro %1 již není naděje
+02:00=%1 stojí za poslední oponou
+02:00=Pokud můžeš, zapal si, %1
+02:00=%1 trpí masivní spontánní poruchou existence
+02:00=%1 odešel
+02:00=%1 je tuhý
+02:00=%1 už není
+02:00=%1 vypršel
+02:00=Odpočívej v pokoji, %1
+02:00=%1 se přidal k zástupům neviditelných
+02:00=Sbohem %1, sotva jsme tě poznali!
+02:00=%1 je náchylný k zastřelení
+02:00=%1 by využil život navíc
+02:00=Je v domě doktor?
+
; Hog (%1) drowned
-02:01=%1 plays submarine!
-02:01=%1 mimics the Titanic!
-02:01=%1 swims like a stone!
-; Match starts
-02:02=Let's fight!
-02:02=Armed and ready!
+02:01=%1 si hraje na ponorku!
+02:01=%1 napodobuje Titanik!
+02:01=%1 plave jako kámen!
+02:01=%1 se vznáší jako cihla!
+02:01=%1 našel konec v hlubinách
+02:01=Glo glo glo glo
+02:01=%1 žbluňkl
+02:01=%1 si zapomněl rukávky
+02:01=%1 si měl nejprve zaplatit plavecký kurz
+02:01=%1 zapomněl doma surf
+02:01=%1 je umytý
+02:01=%1 je rozmočený ježek
+02:01=%1 si zapomněl přinést záchrannou vestu
+02:01=%1 udělal žbluňky žbluňk
+02:01=%1 spí dnes s rybami
+02:01=%1 si myslí, že podvodní fyzika je v této hře na nic
+02:01=%1 vypadá žíznivě
+02:01=Moře si vzalo %1
+02:01=%1 je ztracen v moři
+02:01=%1 si měl přinést podvodní výstroj
+02:01=%1 má pohřeb do moře
+02:01=%1 má pocit, jako by se potápěl
+02:01=%1 trénuje znak
+02:01=%1 jde hledat Titanik
+02:01=%1 není Ježíš
+02:01=%1 hledá Nema
+02:01=%1 objevil prasklinu
+02:01=Budeš se divit, kolik je tam dole ježků!
+02:01=%1 zvedl o kousek hladinu oceánů
+02:01=%1 nebude v námořnictvu
+02:01=%1 zkouší své ztělesnění mrtvé ryby
+02:01=Alespoň tě nespláchli do záchoda, %1
+02:01=Sonic neuměl plavat a ani ty ne, %1
+02:01=%1 chce hrát delfína Ecca
+02:01=%1 odešel navštívit akvárium
+02:01=%1 našel ztracené město Atlantidu
+02:01=%1 míří na hlavní roli v Bioshocku 3
+02:01=Na tvém stylu čubička by ještě chtělo zapracovat, %1
+02:01=%1 si neměl vozit vodní lyže
+02:01=%1 nemá rád vodní sporty
+02:01=%1 navždy vypouští bubliny
+02:01=%1 nemá raft
+02:01=%1 si myslí, že slaná voda je dobrá na pleť
+02:01=%1 má v ranách slanou vodu
+02:01=%1 šel po prkně
+02:01=%1 si dává koupel
+02:01=%1 je moc moc moc mokrý
+02:01=%1 si namočil bodliny
+02:01=%1 našel truhlu Mrtvého muže
+
+; Round starts
+02:02=Do boje!
+02:02=Nabito a odjištěno!
+02:02=Připrav se na rachot!
+02:02=Jdeme na to!
+02:02=Ať párty začne
+02:02=Poslední stojící ježek vyhrává
+02:02=Jdeme!
+02:02=Válíme!
+02:02=Improvizace!
+02:02=Na začátku...
+02:02=Tohle je začátek něčeho většího
+02:02=Vítej v Hedgewars
+02:02=Vítej v první linii
+02:02=Rozdrť své nepřátele!
+02:02=Nechť vyhraje ten lepší ježek
+02:02=Vítězství nebo smrt
+02:02=Kořist patří vítězům
+02:02=Pro prohru zde není místo
+02:02=Křič blázne! Vypusť válečné ježky!
+02:02=Hedgewars vám přináší Hedgewars.org
+02:02=Hodně štěstí, dobrou zábavu
+02:02=Buď rád, že proti tobě nehraje Tiyuri
+02:02=Buď rád, že proti tobě nehraje unC0Rr
+02:02=Buď rád, že proti tobě nehraje Nemo
+02:02=Buď rád, že proti tobě nehraje Smaxx
+02:02=Buď rád, že proti tobě nehraje Jessor
+02:02=Vezmi si vše!
+02:02=Poražený bude dělat úklid!
+02:02=Nechť bitva tisíciletí započne
+02:02=Nechť bitva století započne
+02:02=Nechť bitva desetiletí započne
+02:02=Nechť bitva roku započne
+02:02=Nechť bitva měsíce započne
+02:02=Nechť bitva týdne započne
+02:02=Nechť bitva dne započne
+02:02=Nechť bitva hodiny započne
+02:02=Snaž se, jak umíš!
+02:02=Rozdrť své nepřátele!
+02:02=Hodně štěstí
+02:02=Bav se
+02:02=Bojuj dobře
+02:02=Bojuj špinavě
+02:02=Vyhraj se ctí
+02:02=Nevzdávej to
+02:02=Nikdy se nevzdávej
+02:02=Znič je!
+02:02=Nechť zabíjení započne!
+02:02=Doufám, že jsi připraven na zápas!
+02:02=Běž běž běž!
+02:02=Ježci, kupředu!
+02:02=Nandej jim co proto!
+02:02=Neměj strach!
+02:02=Buď statečný a dobývej
+
+; Round ends (win; unused atm)
+02:03=...
+
+; Round ends (draw; unused atm)
+02:04=...
+
+; New health crate
+02:05=Přichází pomoc!
+02:05=Zdravotník!
+02:05=První pomoc z nebes!
+02:05=Zdravotní balíček pro tebe
+02:05=Dobré zdraví... v podobě krabice!
+02:05=Doktor volá
+02:05=Čerstvé náplasti!
+02:05=Po tomhle se ti udělá lépe
+02:05=Flakónek zdraví! Hups, jiná hra
+02:05=Vem si mne!
+02:05=Zvedni to
+02:05=Zdravá svačinka
+02:05=Lék na bolest
+02:05=Správné dávkování: tolik, kolik jen najdeš!
+02:05=Urgentní dodávka
+02:05=Zásoby!
+
+; New ammo crate
+02:06=Víc zbraní!
+02:06=Posily!
+02:06=Nabít a odjistit!
+02:06=Jsem zvědavý, jaká zbraň je uvnitř?
+02:06=Zásoby!
+02:06=Co může být uvnitř?
+02:06=Vánoce přišli dřív v Hedgewars
+02:06=Dárek!
+02:06=Speciální donáška!
+02:06=Bylo to peklo, dostat tohle přes celnici
+02:06=Ničící hračky z nebe
+02:06=Varování! Nebezpečný obsah
+02:06=Zvedni to, nebo vyhoď do vzduchu! Volba je na tobě
+02:06=Dárečky!
+02:06=Mmmmm munice
+02:06=Krabice ničivé síly
+02:06=Letecká pošta!
+02:06=Cokoliv je uvnitř té krabice, není to pizza
+02:06=Vem to!
+02:06=Je tu schazování zbraní
+02:06=Nenech nepřítele to vzít!
+02:06=Lesklé nové hračky!
+02:06=Záhadná krabice!
+
+; New utility crate
+02:07=Čas na nářadí!
+02:07=Tohle by se mohlo hodit...
+02:07=Nářadí!
+02:07=Využij tuhle bednu
+02:07=Pozor tam dole
+02:07=Víc nástrojů!
+02:07=Nástroje pro všechny!
+02:07=Tohle bude dobré!
+02:07=Využij to s rozumem
+02:07=Ou, tahle bedna je těžká
+02:07=Možná bys mohl potřebovat tohle
+
+; Hog (%1) skips his turn
+02:08=%1 je nudný...
+02:08=%1 se nemusel obtěžovat
+02:08=%1 je líný ježek
+02:08=%1 je bez nápadu
+02:08=%1 to vzdal
+02:08=Kdo zaváhá má smůlu, %1
+02:08=%1 nestydatě přeskakuje
+02:08=%1 je opravdu líný
+02:08=%1 potřebuje trochu motivovat
+02:08=%1 je pacifista
+02:08=%1 potřebuje oddych
+02:08=%1 odpočívá
+02:08=%1 potřebuje vychladnout
+02:08=%1 nemá víru ve své schopnosti
+02:08=%1 se rozhodl nic nedělat
+02:08=%1 nechává nepřátele zničit se navzájem
+02:08=%1 by byl na párty neschopný
+02:08=%1 se schovává
+02:08=%1 se rozhodl nevyužít tuto příležitost
+02:08=%1 se rozhodl, že nejlepší věc, kterou může udělat je... nic
+02:08=%1 je slaboch
+02:08=Kvo kvo kvo, %1 je slepice
+02:08=%1 vypadá jako strašpytel
+02:08=%1 je zbabělec!
+02:08=%1 čeká na náhlou smrt
+02:08=%1 není bojovný typ
+02:08=%1 pátrá po smyslu života
+02:08=%1 stejně nikdy dobře nestřílel
+02:08=%1 se v prvé řadě nechtěl dostat do armády
+02:08=Přestaň plýtvat našim časem, %1
+02:08=Zklamal jsi mne, %1
+02:08=No tak, umíš víc %1
+02:08=%1 nemá vůli
+02:08=%1 má evidentně něco lepšího na práci
+02:08=%1 je slušně vystrašený
+02:08=%1 usnul
+
+; Hog (%1) hurts himself only
+02:09=%1 by měl trénovat míření!
+02:09=%1 se asi nenávidí
+02:09=%1 je na špatné straně!
+02:09=%1 vypadá jako emo
+02:09=%1 držel svou zbraň obráceně
+02:09=%1 je trochu sadista
+02:09=%1 je masochista
+02:09=%1 nemá pud sebezáchovy
+02:09=%1 to zkonil
+02:09=%1 to pokazil
+02:09=To byla špatná rána, %1
+02:09=%1 je s nebezpečnými zbraněmi trochu nezodpovědný
+02:09=%1 by měl zvážit, zda nezměnit povolání
+02:09=Nejhorší. Střela. V historii!
+02:09=Ne ne ne %1, máš střílet na NEPŘÍTELE!
+02:09=%1 by měl ničit jen nepřátele
+02:09=%1 udělal krůček k sebevraždě
+02:09=%1 pomáhá nepříteli
+02:09=To bylo hloupé %1
+02:09=%1 žije heslem "Bez bolesti to nejde"
+02:09=%1 je zmatený
+02:09=%1 se ve svém pomatení poranil
+02:09=%1 se ztrapnil
+02:09=%1 je nešika!
+02:09=%1 je nemotorný
+02:09=%1 ukázal nepříteli, čeho je schopen
+02:09=%1 nemůže být pořád perfektní
+02:09=Neboj %1, nikdo není dokonalý
+02:09=%1 to neudělal záměrně
+02:09=Já to nikomu neřeknu, %1
+02:09=Jak trapné!
+02:09=Jsem si jistý, že to nikdo neviděl %1
+02:09=%1 by si měl přečíst polní příručku
+02:09=%1 měl určitě porouchanou zbraň
+
; Hog shot an home run (using the bat and another hog)
02:10=Home Run!
-02:10=A bird, a plane, ...
-02:10=That one is out!
+02:10=Je to pták, je to letadlo, ...
+02:10=Tenhle je pryč!
+
+; Hog (%1) has to leave (team is gone)
+02:11=%1 musí jít spát!
+02:11=%1 je příliš zaneprázdněn na hraní
+02:11=Transportuj ho nahoru, Scotty!
+02:11=%1 musel jít
+
+; Weapon Categories
+03:00=Časovaný granát
+03:01=Časovaný granát
+03:02=Balistická zbraň
+03:03=Naváděná zbraň
+03:04=Puška (víc ran)
+03:05=Kopací nástroj
+03:06=Akce
+03:07=Transportní nástroj
+03:08=Bomba reagující na blízkost
+03:09=Puška (více ran)
+03:10=BUM!
+03:11=Bonk!
+03:12=Bojové umění
+03:13=NEPOUŽITO
+03:14=Transportní nástroj
+03:15=Letecký útok
+03:16=Letecký útok
+03:17=Kopací nástroj
+03:18=Nástroj
+03:19=Transportní nástroj
+03:20=Akce
+03:21=Balistická zbraň
+03:22=Říkej mne Indiano!
+03:23=(Opravdu) Bojové umění
+03:24=Koláč NENÍ lež!
+03:25=Převlek
+03:26=Šťavnatý granát
+03:27=Vznětlivý granát
+03:28=Balistická zbraň
+03:29=Balistická zbraň
+03:30=Letecký útok
+03:31=Dálkově odpalovaná bomba
+03:32=Dočasný efekt
+03:33=Dočasný efekt
+03:34=Dočasný efekt
+03:35=Dočasný efekt
+03:36=Dočasný efekt
+03:37=Dočasný efekt
+03:38=Puška (více ran)
+03:39=Transportní nástroj
+03:40=Zápalný granát
+03:41=Velký fanda Vřískotu
+03:42=Zde píši poznámku...
+; the misspelled "Beethoven" is intentional (-> to beat) - cannot be translated (poor me)
+03:43=Osudová symfonie
+03:44=Spotřebovat do 1923
+03:45=Síla vědy
+03:46=Horké horké horké!
+03:47=Strč je na užitečné místo!
+03:48=Čas na kladivo!
+03:49=Dělá to, co myslíš
+03:50=Krtkův fanda
+
+; Weapon Descriptions (use | as line breaks)
+04:00=Zaútoč na nepřítele pomocí obyčejného granátu.|Exploduje jakmile časovač dojde k nule.|1-5: Nastavuje časovač|Útok: Drž pro hození větší silou
+04:01=Zaútoč na nepřítele pomocí tříštivého granátu.|Jakmile dojde časovač k nule, roztříští se do|několika střepin.|1-5: Nastavuje časovač|Útok: Drž pro hození větší silou
+04:02=Zaútoč na nepřítele pomocí balistického projektilu,|který může být ovlivněn větrem.|Útok: Drž pro vystřelení větší silou
+04:03=Vypusť explozivní včelu, která se zaměří na zvolený|cíl. Nestřílej plnou silou, abys vylepšil přesnost.|Kurzor: Zvol cíl|Útok: Drž pro vystřelení větší silou
+04:04=Zaútoč na nepřítele pomocí brokovnice s dvěma ranami.|Díky jejímu rozptylu nepotřebuješ přímý zásah, abys|zranil protivníka.|Útok: Výstřel (vícekrát)
+04:05=Zakopej se! Použij sbíječku k vykopání díry|pod zem a k dosaženích jiných míst.|Útok: Začni nebo přestaň kopat
+04:06=Znuděn? Nechce se ti útočit? Šetříš municí?|Žádný problém! Prostě přeskoč tah, zbabělče!|Útok: Přeskoč tah bez boje
+04:07=Překonej velké vzdálenosti pomocí přesně načasovaných|střel lanem. Využij setrvačnosti k postrčení ostatních|ježků nebo na ně pouštěj granáty a podobné zbraně.|Útok: Vystřel nebo pusť lano|Dlouhý skok: Pusť granát nebo podobnou zbraň
+04:08=Udrž si nepřátele od těla položením miny v úzkých průlezech|nebo třeba přimo pod jejich nohy. Ujisti se, že máš kam utéct,|ať ji neaktivuješ sám!|Útok: Polož minu k nohám
+04:09=Nejsi si jistý mířením? Použij Desert Eagle|a využij jeho čtyř střel.|Útok: Výstřel (vícekrát)
+04:10=Hrubá sílá je vždycky možnost. Polož tuto klasickou|výbušninu k nepříteli a utíkej do bezpečí.|Útok: Polož dynamit k nohám
+04:11=Zbav se nepřátelských ježků tak, že je odpálíš na jinou|stranu mapy, nebo třeba do vody. Nebo co takhle odpálení|nějakých min ke svým přátelům?|Útok: Odpal všechno před sebou
+04:12=Dostaň se blízko a ukaž sílu těchto téměř smrtelných|bojových umění.|Útok: Proveď Ohnivý úder
+04:13=NEPOUŽITO
+04:14=Bojíš se výšek? Raději si vezmi padák. Rozvine se,|jakmile padáš příliš dlouho a ochrání tvého ježka|před zraněním z pádu.|Útok: Otevři padák|Dlouhý skok: Pusť granát nebo podobnou zbraň
+04:15=Zavolej si letadlo a nech ho provést bombový nálet|na nepřátele.|Vlevo/Vpravo: Vyber směr útoku|Kursor: Vyber cílové místo
+04:16=Zavolej letadlo a nech ho shodit pár min|do cílové oblasti.|Vlevo/Vpravo: Vyber směr útoku|Kursor: Vyber cílové místo
+04:17=Potřebuješ krytí? Vezmi svářečku, vytvoř si tunel|a krytí je na světě.|Útok: Začni nebo přestaň kopat
+04:18=Potřebuješ další ochranu nebo přejít skrz neprůchodnou|oblast? Umísti pár traverz, jak potřebuješ.|Vlevo/Vpravo: Vyber traverzu|Kursor: Umísti traverzu na platné místo
+04:19=Použita v pravé situaci dokáže být teleportace silnější|než jakákoliv zbraň. Umožní ti zachránit ježka z nebezpečné|situace během vteřiny.|Kursor: Vyber cílové místo
+04:20=Umožní ti odehrát tah s jiným ježkem.|Útok: Aktivuj výměnu ježků
+04:21=Vystřel granátu podobný projektil, který po dopadu|uvolní ještě několik střepin.|Útok: Vystřel plnou silou
+04:22=Nejen pro Indianu Jonese! Bič je zbraň použitelná|v každé situaci. Především, když chceš někoho shodit|z útesu.|Útok: Udeř vše před sebou
+04:23=Pokud nemáš co ztratit, mohlo by se ti tohle hodit.|Obětuj svého ježka a vypusť ho zranit vše, co mu bude|stát v cestě. Jeho život bude ukončen krásným výbuchem.|Útok: Vypusť smrtelný a devastující útok
+04:24=Veselé narozeniny! Vypusť tento dort a nech ho dojít|hned vedle svých nepřátel a začni opravdu výbušnou párty.|Dort dokáže překonat téměř veškerý terén, ale může tak|vybuchnout dříve.|Útok: Odešli dort nebo ho zastav a nech vybouchnout
+04:25=Použij tento převlek, abys nalákal nepřítele ke skoku|za tebou (a do nějaké mezery nebo propasti).|Útok: Použij převlek a zkus navábit jiného ježka
+04:26=Hoď tento šťavnatý meloun na své nepřátele. Jakmile časovač|sepne, rozdělí se na několik výbušných kousků.|1-5: Nastav časovač melounu|Útok: Drž pro hození větší silou
+04:27=Nechť ohně pekelné stráví tvé odpůrce díky této|pekelné trhavině. Nedostaň se moc blízko k explozi,|jelikož menší oheň může vydržet déle.|Útok: Drž pro hození větší silou
+04:28=Krátce po vypuštění této rakety začne vrtat|skrz pevný terén a exploduje, jakmile ji|sepne časovač, nebo po vynoření na povrch.|Útok: Drž pro hození větší silou
+04:29=Tohle není nic pro malé děti! Kuličkomet vystřelí spoustu|malých barevných kuliček naplněných výbušninou.|Útok: Vystřel plnou silou|Nahoru/Dolu: Pokračuj v míření
+04:30=Zavolej si leteckou podporu a nech ji vypustit napalm.|Se správným mířením dokáže tenhle útok vymazat obrovské|území včetně nešťastných ježků, kteří tam stojí.|Vlevo/Vpravo: Vyber směr útoku|Kursor: Vyber cílové místo
+04:31=Dálkově ovládané letadýlko je ideální zbraň na sbírání beden,|nebo útočení na vzdálené ježky. Buď ho naveď mezi nepřátele,|nebo nejprve shoď několik bomb.|Útok: Vypusť letadlo nebo shoď bombu|Dlouhý skok: Nech valkýru vyjet do boje|Vlevo/Vpravo: Řiď letadlo
+04:32=Nízká gravitace je mnohem efektivnější než jakákoliv|dieta! Skákej výš a do větších vzdáleností, nebo nech|nepřátele doletět ještě o kus dál.|Útok: Aktivace
+04:33=Občas jen potřebuješ tuhle pomůcku ke zvýšení|poškození, které způsobíš.|Útok: Aktivace
+04:34=Jsem nedotknutelný!|Útok: Aktivace
+04:35=Občas ten čas strašně letí. Vezmi si nějaké vteřiny|navíc na dokončení útoku.|Útok: Aktivace
+04:36=Ano, občas jen nemíříš tak dobře. Využij pomoc|moderní technologie.|Útok: Aktivace
+04:37=Neboj se denního světla. Tohle bude trvat jen jeden tah, ale|umožní ti to uzdravit se poškozením, které způsobíš ostatním.|Útok: Aktivace
+04:38=Odstřelovací puška může být nejničivější zbraní|ve tvém arzenálu, ale na malé vzdálenosti je|značně neefektivní. Poškození, které způsobí|je zvyšuje se vzdáleností od cíle.|Útok: Výstřel (dvakrát)
+04:39=Odleť do jiných částí mapy pomocí létajícího talíře.|Tento těžce ovladatelný nástroj ti umožní dostat se|téměř na jakékoliv místo na bojišti.|Útok: Aktivace|Nahoru/Vlevo/Vpravo: Zažehni trysku v daném směru|Dlouhý skok: Pusť granát nebo podobnou zbraň
+04:40=Zapal nějakou zem pomocí této lahve naplněné|(už za chvíli) hořící kapalinou.|Útok: Drž pro hození větší silou
+; TODO - not very good translation of Birdy (the evidence of nature)
+04:41=Známka přírody dokáže být ještě mocnější než létající talíř.|Ptáček může nést tvého ježka a shazovat vejce na nepřátele!|Útok: Aktivace a shazování vajec|Nahoru/Vlevo/Vpravo: Mávnutí křídly v daném směru
+04:42=Toto zařízení je schopno v okamžiku přemístit|tebe, tvé nepřátele, nebo tvoji palebnou sílu|mezi dvěma body v krajině. Využij to rozumně|a tvé tažení bude... VELKÝ ÚSPĚCH!|Útok: Vystřel portál|Výměna: Změň barvu portálu
+04:43=Udělej ze svého prvního hudebního vystoupení explozivně|úspěšný koncert! Shoď piano z nebes, ale pozor...|někdo na něj musí hrát a to tě může stát život!|Kursor: Vyber cílové místo|F1-F9: Hraj na piano
+04:44=Tohle není jen tak ledajaký sýr, to je biologická zbraň!|Najednou nenapáchá příliš škod, ale jakmile časovač dojde|k nule zapáchá tak silně, že otráví každého, kdo si jen|přičichne!|1-5: Nastav časovač|Útok: Drž pro hození větší silou
+04:45=Všechny ty hodiny fyziky se konečně vyplatí.|Vypusť ničivou sinovou vlnu na své protivníky.|Dej pozor, tahle zbraň docela kope.|(Tato zbraň není dokončena)|Útok: Výstřel
+04:46=Pokryj své protivníky prskajícím tekutým ohněm.|Zahřeje u srdce!|Útok: Aktivace|Nahoru/Dolu: Pokračuj v míření|Vlevo/Vpravo: Změň sílu plivání
+04:47=Zdvojnásob zábavu pomocí dvou ostnatých, zákeřných, lepkavých|min. Vytvoř řetězovou reakci nebo se braň (nebo oboje!)|Útok: Drž pro hození větší silou (dvakrát)
+04:48=Proč by se měli týrat jen krtci? Mlácení ježků může|být stejná zábava! Jedna dobrá rána tímhle kladivem|uštědří poškození za jednu třetinu ježkova zdraví a|zarazí ho pod zem.|Útok: Aktivace
+04:49=Vzkřis své přátele! Ale měj se na pozoru, protože|tohle vzkřísí i tvé protivníky.|Útok: Drž stisknuto pro pomalé oživování|Nahoru: Zrychlí oživování
+
+; Game goal strings
+05:00=Herní módy
+05:01=Platí následující pravidla
+05:02=Pevnosti: Braň svou pevnost; znič nepřátele!
+05:03=Nízká gravitace: Koukej, kam šlapeš
+05:04=Nesmrtelnost: Ježci jsou (skoro) nesmrtelní
+05:05=Vampyrismus: Ježci budou oživeni poškozením, které způsobí
+05:06=Karma: Ježci trpí stejně jako jejich oběť
+05:07=Chraň krále: Nenech svého krále zemřít.|Umísti krále: Umísti chráněný bod pro svého krále
+05:08=Umísti ježky: Umísti ježky před začátkem hry
+05:09=Dělostřelectvo: Ježci nemohou změnit polohu chůzí
+05:10=Nezničitelný terén: Většina zbraní neničí terén
+05:11=Sdílená munice: Všechny týmy stejné barvy sdílí munici
+05:12=Časovač min: Miny vybuchnou za %1 vt.
+05:13=Časovač min: Miny vybuchnou okamžitě
+05:14=Časovač min: Miny vybuchnou za 0 - 5 vteřin
+05:15=Změna poškození: Všechny zbraně způsobují %1% poškození
+05:16=Zdraví všech ježků je obnoveno na konci každého tahu
+05:17=Počítačem ovládaní ježci jsou oživeni po smrti
+05:18=Neomezeně útoků
+05:19=Zbraně jsou obnoveny na konci tahu
+05:20=Zbraně nejsou sdíleny mezi ježky
--- a/share/hedgewars/Data/Locale/fr.txt Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/fr.txt Thu Aug 04 17:44:55 2011 +0200
@@ -1,7 +1,7 @@
; French locale
00:00=Grenade
-00:01=Grenade à fragments
+00:01=Grenade à fragmentation
00:02=Bazooka
00:03=Abeille Missile
00:04=Fusil
@@ -111,6 +111,8 @@
02:00=Adieu %1, nous tenions beaucoup a toi !
02:00=%1 avait une faible tolérance aux coups à balles
02:00=%1 aurait dû utiliser une vie supplémentaire
+02:00=%1 rejoint ses ancêtres
+02:00=%1 sera muet comme une tombe
; Hog (%1) drowned
02:01=%1 joue au sous-marin !
02:01=%1 imite le Titanic !
@@ -157,6 +159,9 @@
02:01=%1 prend un bain
02:01=%1 est tout mouillé
02:01=%1 trouve que l'eau est un peu trop froide
+02:01=%1 flotte comme une enclume
+02:01=%1 a oublié son masque et ses palmes
+02:01=%1 a vu une sirène !
; Match starts
02:02=Aux armes !
02:02=Prêts à combattre !
@@ -177,6 +182,7 @@
02:02=Sois heureux, tu n'est pas contre Nemo !
02:02=Sois heureux, tu n'est pas contre Smaxx !
02:02=Sois heureux, tu n'est pas contre Jessor !
+02:02=Rien à perdre, tout à gagner !
02:02=Donnez tout ce que vous avez !
02:02=Les perdants font le ménage !
02:02=Que la bataille du millénaire commence !
@@ -200,7 +206,10 @@
02:02=Hérissons, en avant !
02:02=N'ayez pas peur !
02:02=Soyez braves !
+02:02=3,2,1... Massacrez !
+02:02=Ave Caesar, Morituri te salutant !
02:02=Combattez jusqu'à la fin !
+02:02=Que la force soit avec vous !
; Round ends (win; unused atm)
02:03=...
; Round ends (draw; unused atm)
@@ -220,6 +229,9 @@
02:05=Meilleur dosage: autant que vous pouvez !
02:05=Livraison urgente
02:05=Ravitaillements !
+02:05=Voilà la Croix Rouge !
+02:05=Médecin Sans Frontière à votre service !
+02:05=Hausse de l'espérance de vie en vue
; New ammo crate
02:06=Plus d'armes !
02:06=Du renfort !
@@ -241,6 +253,9 @@
02:06=Ne laisse pas l'ennemi prendre ça !
02:06=Des nouveaux jouets flambant neufs !
02:06=Une boîte mystérieuse !
+02:06=L'espoir fait vivre
+02:06=Surement quelquechose d'utile
+02:06=Que la chance soit avec vous !
; New utility crate
02:07=Boite à outils !
02:07=Ça peut être pratique...
@@ -250,6 +265,10 @@
02:07=Ça devrait être bien !
02:07=Utilisez-le avec précaution
02:07=Vous devriez avoir besoin de ça
+02:07=C'est toujours bon à prendre
+02:07=Elle s'est peut être blessée en tombant, vous devriez aller la voir
+02:07=Bob le bricoleur sait être généreux
+02:07=Le moment donné par le hasard vaut mieux que le moment choisi
; Hog (%1) skips his turn
02:08=%1 est une lopette...
02:08=%1 est trooooop rasant...
@@ -285,6 +304,12 @@
02:08=%1 a apparemment mieux a faire
02:08=%1 est mort de peur
02:08=%1 s'est endormi
+02:08=%1 est timide
+02:08=%1 ne voulait pas quitter sa maman
+02:08=%1 a peur de se blesser
+02:08=Les gens heureux n'ont pas besoin de se presser selon %1
+02:08=Ne crains pas d'avancer lentement, crains seulement de t'arrêter %1
+02:08=Patience ! Avec le temps, l'herbe devient du lait
; Hog (%1) hurts himself only
02:09=%1 devrait apprendre à viser !
02:09=%1 s'en veut
@@ -315,12 +340,17 @@
02:09=Je suis sûr que personne n'a vu cela %1
02:09=%1 a besoin de réviser son manuel de terrain
02:09=L'arme de %1 fonctionne clairement mal
-02:00=%1 aurait dû dire NON à la drogue
+02:09=%1 aurait dû dire NON à la drogue
+02:09=%1 se cache
+02:09=%1 ne peut pas échapper à son destin
+02:09=%1 a pris son arme dans le mauvais sens
+02:09=%1 est surement daltonien
; Hog shot an home run (using the bat and another hog)
02:10=Home Run !
02:10=C'est un oiseau ! C'est un avion ! ...
02:10=Hors du parc !
-
+02:10=Coup gagnant !
+02:10=I believe I can FLY ! I believe I can... *boum*
; Weapon Categories
03:00=Grenade à retardement
03:01=Grenade à retardement
@@ -368,54 +398,54 @@
; Weapon Descriptions (use | as line breaks)
04:00=Attaquez vos ennemis en utilisant une simple grenade.|Elle explosera une fois que le compte à rebours atteindra zéro.|1-5: Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
04:01=Attaquez vos ennemis en utilisant une bombe à retardement.|Elle se désintégrera en de multiples petites bombes |quand le compte à rebours atteindra zéro|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
-04:02=Attaquez vos ennemis en utilisant un missile balistique|qui pourrait subir l'influence du vent.|Attaque : maintenez pour tirer avec plus de force
+04:02=Attaquez vos ennemis en utilisant un missile balistique|subissant l'influence du vent.|Attaque : maintenez pour tirer avec plus de force
04:03=Lancez une bombe téléguidée qui se verrouillera|sur la cible choisie. Ne tirez pas à pleine puissance|pour une meilleure précision.|Curseur : choix de la cible|Attaque : maintenez pour tirer avec plus de force
-04:04=Attaquez votre ennemi en utilisant un pistolet à deux coups.|Grâce à son pouvoir de dispersion vous n'avez pas besoin de frapper directement sur la cible|pour toucher votre ennemi.|Attaque : tirez (coups multiples)
+04:04=Attaquez votre ennemi en utilisant un fusil à deux coups.|Grâce à son pouvoir de dispersion vous n'avez pas besoin de frapper directement sur la cible|pour toucher votre ennemi.|Attaque : tirez (coups multiples)
04:05=Descendez sous terre ! Utilisez le marteau-piqueur pour creuser un trou|dans le sol et atteindre d'autres zones.|Attaque : commencez/achevez de creuser
04:06=Vous en avez marre ? Pas moyen d'attaquer ? Vous économisez vos munitions ?|Pas de problèmes ! Passez simplement votre tour, espèce de lâche !|Attaque : Passez votre tour sans combattre
-04:07=Franchissez les grandes distances en utilisant par intervalles la |corde ninja. Utilisez votre élan pour vous lancer contre les autres hérissons|ou balancez des grenades ou autres armes offensives sur eux.|Attaque : Tirer ou lâchez la corde ninja|Saut longue distance : jetez des grenades ou des armes similaires
-04:08=Maintenez vos ennemis à distance en laissant une mine|dans les passages étroits ou juste sous leurs pieds. Assurez-vous|que vous pouvez vous sauver avant de déclencher la grenade !|Attaque : lâchez la grenade à votre pied
-04:09=Vous n'êtes pas sûr de ce que vous voulez ? Utilisez l'Aigle| du Désert pour attaquer en utilisant vos quatre coups.|Attaque : tirez (coups multiples)
-04:10=La force brute est toujours une possibilité. Lancez cet explosif|classique sur vos ennemis et retirez-vous.|Attaque : Lâchez la dynamite à vos pieds
-04:11=Débarrassez-vous des hérissons ennemis en leur donnant des coups pour les chasser |au-delà de la frontière ou en les jetant à l'eau. Ou bien préférez-vous|envoyer quelques mines sur vos ennemis ?|Attaque : donnez des coups sur tout ce qui bouge devant vous.
+04:07=Franchissez les grandes distances en utilisant par intervalles la |corde ninja. Utilisez votre élan pour vous lancer contre les autres hérissons,|balancez leurs des grenades ou d'autres armes explosives.|Attaque : Tirer ou lâchez la corde ninja|Saut longue distance : jetez des grenades ou des armes similaires
+04:08=Maintenez vos ennemis à distance en laissant une mine|dans les passages étroits ou juste sous leurs pieds. Assurez-vous|que vous pouvez vous sauver avant son déclenchement !|Attaque : lâchez la mine à vos pieds
+04:09=Vous n'êtes pas sûr de ce que vous voulez ? Utilisez l'Aigle| du Désert pour attaquer en utilisant vos quatre coups. Poussez dans l'eau vos ennemis ou transpercez leur défense|Attaque : tirez (coups multiples)
+04:10=La force brute est toujours une possibilité. Lancez cet explosif|classique sur vos ennemis et prenez le temps de vous retirer.|Attaque : Lâchez la dynamite à vos pieds
+04:11=Débarrassez-vous des hérissons ennemis en leur donnant des coups pour les chasser |vers d'autres horizons ou en les jetant à l'eau. Ou bien préférez-vous|envoyer quelques tonneaux ou mines sur vos ennemis ?|Attaque : frappez un bon coup sur tout ce qui bouge.
04:12=Allez au combat rapproché corps à corps pour utiliser toute la force presque mortelle de ces arts martiaux.|Attaque : lancez un coup de poing fulgurant
04:13=non-utilisé
04:14=Vous avez le vertige ? Prenez donc un parachute.|Il se déploiera lorsque|vous serez tombé trop loin|et épargnera le choc de la chute à votre hérisson.|Attaque: Dépliez le parachute
-04:15=Appelez un avion pour attaquer vos ennemis|en utilisant le bombardement.|Gauche/Droite : Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible
+04:15=Appelez le 3615 BOMBE pour commander une frappe aérienne dévastatrice sur vos ennemis.|Gauche/Droite : Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible
04:16=Appelez un avion qui enverra plusieurs mines|sur la zone cible.|Gauche/Droite : Détermine la direction de l'attaque|Curseur : Sélectionnez la zone cible
-04:17=vous avez besoin d'un abri ? Utilisez la lampe-torche pour creuser|un tunnel dans le sol pour vous garantir |un bon abri.|Attaque : Commencez/cessez de creuser.
-04:18=Vous avez besoin de vous protéger davantage ou de franchir un |obstacle infranchissable ? Placez quelques poutrelles|où vous voulez .|Gauche/Droite : Choisissez la poutrelle à placer|Curseur : Placez la poutrelle dans la bonne position
+04:17=vous avez besoin d'un abri ? de pousser quelques ennemis dans l'eau ? Utilisez le chalumeau| pour creuser un tunnel dans le sol, vous protéger ou faire de nouvelles victimes.|Attaque : Commencez/cessez de creuser.
+04:18=Vous avez besoin de vous protéger davantage ou de passer un |obstacle infranchissable ? Placez quelques poutrelles|où vous voulez .|Gauche/Droite : Choisissez la poutrelle à placer|Curseur : Placez la poutrelle dans la bonne position
04:19=La téléportation utilisée au bon moment|peut être bien plus efficace|que la plupart des autres armes|car elle vous permet de sauver des hérissons de situations dangereuses|en quelques secondes.|Curseur : Choisissez la zone cible
04:20=Vous permet de jouer la partie en cours avec|un hérisson différent.|Attaque : Activez le changement de hérisson
-04:21=Tirez une grenade balistique qui va|envoyer de multiples bombes au point d'impact.|Attaque : Tirez à pleine puissance
-04:22=Ce n'est pas réservé à Indiana Jones! Le fouet est une|arme bien utile dans plusieurs situations. Particulièrement|quand vous devez hisser quelqu'un en haut d'une falaise.|Attaque : Frappez tout ce qui bouge devant vous
-04:23=Si vous n'avez rien à perdre, voilà qui peut être |bien pratique. Sacrifiez votre hérisson en le lançant dans une direction| particulière et en heurtant tout sur son passage|avant d'exploser finalement.|Attaque : Lancer l'attaque mortelle et dévastatrice
+04:21=Tirez un missile balistique qui va|envoyer de multiples bombes au point d'impact.|Attaque : Tirez à pleine puissance
+04:22=Ce n'est pas réservé à Indiana Jones ! Le fouet est une|arme bien utile dans plusieurs situations. Particulièrement|quand vous devez hisser quelqu'un en haut d'une falaise.|Attaque : Frappez tout ce qui bouge devant vous
+04:23=Si vous n'avez rien à perdre, voilà qui peut être |bien pratique. Sacrifiez votre hérisson en le lançant dans une direction| particulière. Il heurtera tout sur son passage avant |d'exploser finalement.|Attaque : Lancer l'attaque mortelle et dévastatrice
04:24=Joyeux anniversaire ! Lancez ce gâteau, faites-le atterrir|tout près de vos ennemis et offrez-leur une fête explosive.|Le gâteau peut franchir presque tous les environnements mais|il se peut qu'il explose à mi-chemin.|Attaque : Lancez le gâteau ou bien faites-le s'arrêter et exploser
-04:25=Utilisez le déguisement pour amener vos ennemis à sauter vers|votre hérisson (et donc vers un piège ou un trou).|Attaque : Utilisez le déguisement et tentez de séduire un autre hérisson
-04:26=Envoyez cette pastèque explosive à la tête de vos ennemis. Lorsque|le compte à rebours s'achève, elle se désintègrera en de multiples fragments explosifs|1-5 : Lancer le compte à rebours|Attaque : Maintenez pour tirer avec plus de puissance
-04:27=Faites tomber un déluge de feu sur vos adversaires en utilisant|cet explosif dévastateur.|Ne vous tenez pas trop prêt|de l'impact car les petits feux peuvent durer longtemps|Attaque : Maintenez pour tirer avec plus de puissance
-04:28=Peu après le lancement de ce missile, il va se mettre|à creuser le sol le plus résistant et va exploser|une fois son détonateur amorcé, sinon il refait surface.|Attaque : Maintenez pour tirer avec plus de puissance
+04:25=Arme de séduction massive ! Utilisez le déguisement pour amener vos ennemis| à sauter vers votre hérisson (et donc vers un piège ou un trou).|Attaque : Utilisez le déguisement et tentez de séduire un autre hérisson
+04:26=Envoyez cette pastèque explosive à la tête de vos ennemis. Une fois le compte-à-rebours achevé, elle se désintégrera en de multiples fragments explosifs|1-5 : Lancer le compte à rebours|Attaque : Maintenez pour tirer avec plus de puissance
+04:27=Faites tomber un déluge de feu sur vos adversaires en utilisant|cet explosif dévastateur.|Ne vous tenez pas trop prêt|de l'impact car les flammes peuvent durer longtemps|Attaque : Maintenez pour tirer avec plus de puissance
+04:28=Peu après le lancement de ce missile, il va se mettre|à creuser le sol le plus résistant et explosera|une fois son détonateur amorcé ou une fois atteint l'air libre.|Attaque : Maintenez pour tirer avec plus de puissance
04:29=Ce n'est pas un jouet pour les enfants ! La mitrailleuse envoie|des centaines de petites balles colorées explosives.|Attaque : Tirez à pleine puissance|Haut/Bas : Continuez à tirer
04:30=Appelez un avion pour larguer une puissante giclée de napalm.|En la menant correctement cette attaque peut éradiquer|des zones entières du paysage, et notamment les hérissons qui auraient la malchance de se trouver là.|Gauche/Droite: Déterminez la direction de l'attaque|Curseur : Choisissez la zone cible
-04:31=L'avion télécommandé est l'arme idéale pour récolter des coupes ou|attaquer des hérissons très éloignés. Vous pouvez soit le lancer au milieu de vos adversaires|bombarder auparavant.|Attaque : Lancez l'avion ou larguez des bombes|Saut longue distance : laissez les valkyries entrer dans la danse guerrière|Haut/Bas : Pilotez l'avion
-04:32=La fable gravité est plus efficace que n'importe quel régime ! Sautez|plus haut et franchissez de plus grandes distances ou bien faites voler vos ennemis |voltiger encore plus loin.|Attaque : Activez
+04:31=L'avion télécommandé est l'arme idéale pour récolter des boites ou|attaquer des hérissons très éloignés. Une fois vos ennemis bombardés, vous pourrez lancer votre avion sur l'ennemi dans une explosion incendiaire.|Attaque : Lancez l'avion ou larguez des bombes|Saut longue distance : laissez les valkyries entrer dans la danse guerrière|Haut/Bas : Pilotez l'avion
+04:32=La fable gravité est plus efficace que n'importe quel régime ! Sautez|plus haut et franchissez de plus grandes distances ou bien faites voltiger vos ennemis |encore plus loin.|Attaque : Activez
04:33=Parfois vous avez besoin d'un petit coup de pouce supplémentaire|pour gérer les dégâts.|Attaque : Activez
04:34=Personne ne peut me toucher !|Attaque : Activez
04:35=Parfois le temps passe trop vite. Grappillez quelques secondes de plus pour terminer votre attaque|Attaque : Activez
-04:36=Eh bien, parfois vous ratez complètement la cible. Demandez plutôt l'aide|de la technologie actuelle la meilleure.|Attaque : Activez
-04:37=Ne craignez pas la lumière du jour. Elle ne durera qu'une manche|mais vous permettra de repérer les dégâts que vous avez faits aux|autres hérissons.|Attaque : Activez
-04:38= Le fusil à lunettes peut être une de armes les plus dévastatrices|de tout votre arsenal, toutefois il est totalement inefficace|en combat rapproché. Les dommages qu'il cause augmentent suivant|la distance de la cible.|Attaque : Tirez (deux fois)
-04:39=Volez vers d'autres secteurs de la carte en utilisant une soucoupe|volante. Ce moyen de transport pas facile à dompter est capable de vous|emporter vers presque tous les lieux du champ de bataille|Attaque : Activer|Haut/Gauche/Droite : appliquez la force dans une direction
+04:36=Eh bien, parfois vous ratez complètement la cible. Demandez plutôt de l'aide|à la technologie de pointe actuelle pour bien viser.|Attaque : Activez
+04:37=Ne craignez pas la lumière du jour. Rafraichissez vous |d'un peu de sang en récupérant des points de vie sur les dégats faits aux ennemis.|Attaque : Activez
+04:38= Le fusil à lunette peut être une des armes les plus dévastatrices|de tout votre arsenal, toutefois il est totalement inefficace|en combat rapproché. Les dommages qu'il cause augmentent suivant|la distance de la cible.|Attaque : Tirez (deux fois)
+04:39=Volez vers d'autres secteurs de la carte en utilisant une soucoupe|volante. Ce moyen de transport, pas facile à dompter, vous|emportera vers presque tous les horizons du champ de bataille|Attaque : Activer|Haut/Gauche/Droite : Prenez de l'altitude et controllez votre direction
04:40=Mettez le feu à un territoire en utilisant cette bouteille remplie|de liquide inflammable.|Attaque : maintenez pour tirer avec plus de force
-04:41=Une arme naturelle qui peut suffire à dégommer même la soucoupe|volante. Le piaf peut transporter votre hérisson et|balancer des œufs sur vos ennemis !|Attaque : Activez et larguez des œufs|Haut/Gauche/Droite: voltigez vers une direction.
-04:42=Ce fusil à portails est capable de vous transporter instantanément,| ainsi que vos ennemis ou des armes entre deux points du terrain. |Utilisez-le intelligemment et votre campagne sera un ... GRAND SUCCÈS !|Attaque : Crée un portail|Modificateur : Change la couleur du portail
-04:43=Faites de vos débuts musicaux un succès explosif !| Lâchez un piano depuis les cieux, mais attention ... quelqu'un doit|jouer dessus, et cela pourrait lui coûter sa vie !|Curseur : Choix de la cible|F1-F9 : Jouer du piano
-04:44=Ce n'est pas juste un fromage, c'est une arme biologique !|Il ne provoquera de gros dommages une fois que le compteur|atteindra zéro mais il empoisonnera tous les malchanceux touchés par l'odeur !|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
-04:45=Tous ces cours de physique ont finalement payé,|lancez une onde Sinus dévastatrice à vos ennemis.|Attention au recul ! (cette arme est incomplète)|Attaque : Activez
-04:46=Recouvrez vos ennemis de sifflantes flammes liquides.|Hauts les cœurs !|Attaque : Activez|Haut/Bas : Continuez à viser|Droite/Gauche : Changer la puissance de tir
-04:47=Doublez le fun avec deux mines, piquantes, furtives et collantes.|Provoquez une réaction en chaine ou défendez-vous ! (ou les deux)|Attaque : maintenez pour tirer avec plus de force (deux fois)
-04:48=Pourquoi les taupes auraient tous le fun ?|Un bon coup de ce marteau enlèvera un tiers de la santé du hérisson et l'enverra dans le sol|Attaque : Activez
-04:49=Ressuscite vos amis !Mais méfiez-vous, cela ressuscite également vos ennemis.|Attaque : Maintenez attaque pressée pour ressusciter lentement|Haut : Accélérer la résurrection
+04:41=Une arme naturelle qui peut suffire à remplacer la soucoupe volante. |Cet oiseau a du manger un vieux fromage pourri (du Limburger vous dites ?) car ses oeufs ont comme quelquechose de ... toxique. Le piaf peut donc transporter votre hérisson et|balancer des œufs sur vos ennemis !|Attaque : Activez et larguez des œufs|Haut/Gauche/Droite: voltigez vers une direction.
+04:42=Ce fusil à portails est capable de transporter instantanément hérissons,|tonneaux ou mines entre deux points du terrain. |Utilisez-le intelligemment et votre campagne sera un ... GRAND SUCCÈS !|Attaque : Crée un portail|Modificateur : Change la couleur du portail
+04:43=Faites de vos débuts musicaux un succès explosif !| Lâchez un piano depuis les cieux, mais attention ... si quelqu'un doit|jouer dessus, cela pourrait lui coûter la vie !|Curseur : Choix de la cible|F1-F9 : Jouer du piano
+04:44=Ce n'est pas juste un fromage, c'est une arme bactériologique !|Si il ne provoque que de faibles dommages, sa puissance se trouve dans sa durée. Il empoisonnera tous les malchanceux touchés par l'odeur et réduira leur vie à l'agonie !|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
+04:45=Tous ces cours de physique ont finalement payé,|lancez une onde Sinus dévastatrice sur vos ennemis.|Attention au recul ! (cette arme est incomplète)|Attaque : Activez
+04:46=Aspergez vos ennemis de flammes liquides ou creusez vous un passage dans le sol.|Hardi !|Attaque : Activez|Haut/Bas : Continuez à viser|Droite/Gauche : Changer la puissance de tir
+04:47=Doublez le fun avec deux mines, piquantes, furtives et collantes.|Provoquez une réaction en chaine dévastatrice et/ou défendez-vous ! |Attaque : maintenez pour tirer avec plus de force (deux fois)
+04:48=Outre une bonne bosse, un bon coup de ce marteau enlèvera un tiers de la santé |du hérisson ennemi et l'enfoncera dans le sol ou dans l'eau comme un vulgaire asticot !|Attaque : Activez
+04:49=Ressuscite vos amis oubliés six pieds sous terre ! Mais méfiez-vous, ressuscite également vos ennemis. |Attaque : Maintenez attaque pressée pour ressusciter lentement|Haut : Accélérer la résurrection
; Game goal strings
05:00=Modes de jeu
@@ -423,8 +453,8 @@
05:02=Forts : Défendez votre forteresse ; exterminez vos ennemis !
05:03=Faible gravité : Attention à vos mouvements
05:04=Invulnérabilité : Les hérissons sont (presque) invulnérables
-05:05=Vampirisme : Les hérissons seront guéris de leurs blessures
-05:06=Karma: Les hérissons seront victimes de leurs blessures
+05:05=Vampirisme : Les hérissons récupèrent des points de vie par les dégats qu'ils infligent
+05:06=Karma: Les hérissons sont victimes des blessures qu'ils infligent
05:07=Protégez le roi : Ne laissez pas mourir le roi !|Placez le roi : Choisissez un point de départ sécurisé pour le roi
05:08=Placez les hérissons : Placez vos hérissons avant le début de la partie
05:09=Artillerie : Les hérissons ne peuvent pas se déplacer pour changer de place
@@ -432,6 +462,6 @@
05:11=Munitions partagées : Toutes les équipes de la même couleur partagent leurs munitions
05:12=Mines à retardement : Les mines exploseront après %1 seconde(s)
05:13=Mines à retardement : Les mines explosent immédiatement
-05:14=Mines à retardement : Les mines exploseront dans un délai entre 0 et 3 secondes
+05:14=Mines à retardement : Les mines exploseront dans un délai compris entre 0 et 3 secondes
05:15=Modificateur de dégâts : Toutes les armes feront %1% de dégâts
--- a/share/hedgewars/Data/Locale/hedgewars_bg.ts Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_bg.ts Thu Aug 04 17:44:55 2011 +0200
@@ -5,18 +5,18 @@
<name>AmmoSchemeModel</name>
<message>
<source>new</source>
- <translation type="unfinished">Нов отбор</translation>
+ <translation>Нов</translation>
</message>
<message>
<source>copy of</source>
- <translation type="unfinished"></translation>
+ <translation>копие на</translation>
</message>
</context>
<context>
<name>FreqSpinBox</name>
<message>
<source>Never</source>
- <translation type="unfinished"></translation>
+ <translation>Никога</translation>
</message>
<message numerus="yes">
<source>Every %1 turn</source>
@@ -30,11 +30,11 @@
<name>GameCFGWidget</name>
<message>
<source>Edit schemes</source>
- <translation type="unfinished"></translation>
+ <translation>Редактиране на схемите</translation>
</message>
<message>
<source>Edit weapons</source>
- <translation type="unfinished"></translation>
+ <translation>Редактиране на оръжията</translation>
</message>
<message>
<source>Error</source>
@@ -46,26 +46,26 @@
</message>
<message>
<source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
- <translation type="unfinished"></translation>
+ <translation>Когато тази настройка е включена, при избирането на игрова схема автоматично ще се избере оръжие</translation>
</message>
</context>
<context>
<name>HWChatWidget</name>
<message>
<source>%1 *** %2 has been removed from your ignore list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 беше премахнат от списъка с игнорирани</translation>
</message>
<message>
<source>%1 *** %2 has been added to your ignore list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 беше добавен към списъка с игнорирани</translation>
</message>
<message>
<source>%1 *** %2 has been removed from your friends list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 беше премахнат от списъка с приятели</translation>
</message>
<message>
<source>%1 *** %2 has been added to your friends list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 беше добавен към списъка с приятели</translation>
</message>
</context>
<context>
@@ -96,17 +96,17 @@
</message>
<message>
<source>DefaultTeam</source>
- <translation type="unfinished"></translation>
+ <translation>СтандартенОтбор</translation>
</message>
<message>
<source>Hedgewars Demo File</source>
<comment>File Types</comment>
- <translation type="unfinished"></translation>
+ <translation>Файл с демо на Hedgewars</translation>
</message>
<message>
<source>Hedgewars Save File</source>
<comment>File Types</comment>
- <translation type="unfinished"></translation>
+ <translation>Файл със запазена игра на Hedgewars</translation>
</message>
</context>
<context>
@@ -160,31 +160,31 @@
</message>
<message>
<source>Type</source>
- <translation type="unfinished"></translation>
+ <translation>Тип</translation>
</message>
<message>
<source>Small tunnels</source>
- <translation type="unfinished"></translation>
+ <translation>Малки тунели</translation>
</message>
<message>
<source>Medium tunnels</source>
- <translation type="unfinished"></translation>
+ <translation>Средни тунели</translation>
</message>
<message>
<source>Large tunnels</source>
- <translation type="unfinished"></translation>
+ <translation>Големи тунели</translation>
</message>
<message>
<source>Small floating islands</source>
- <translation type="unfinished"></translation>
+ <translation>Малки плаващи острови</translation>
</message>
<message>
<source>Medium floating islands</source>
- <translation type="unfinished"></translation>
+ <translation>Средни плаващи острови</translation>
</message>
<message>
<source>Large floating islands</source>
- <translation type="unfinished"></translation>
+ <translation>Големи плаващи острови</translation>
</message>
<message>
<source>Seed</source>
@@ -222,11 +222,11 @@
</message>
<message>
<source>You got kicked</source>
- <translation type="unfinished"></translation>
+ <translation>Вие бяхте изхвърлен</translation>
</message>
<message>
<source>Password</source>
- <translation type="unfinished"></translation>
+ <translation>Парола</translation>
</message>
<message>
<source>Quit reason: </source>
@@ -238,26 +238,29 @@
</message>
<message>
<source>%1 *** %2 has joined the room</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 се присъедини към стаята</translation>
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 се присъедини</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 напусна (%3)</translation>
</message>
<message>
<source>%1 *** %2 has left</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 напусна</translation>
</message>
<message>
<source>Your nickname %1 is
registered on Hedgewars.org
Please provide your password below
or pick another nickname in game config:</source>
- <translation type="unfinished"></translation>
+ <translation>Прякорът ви %1 е
+регистриран на Hedgewars.org
+Моля въдете паролата си по-долу
+или изберете друг прякор в настройките на играта:</translation>
</message>
</context>
<context>
@@ -271,69 +274,69 @@
<name>PageAdmin</name>
<message>
<source>Clear Accounts Cache</source>
- <translation type="unfinished"></translation>
+ <translation>Изчистване на кеша на профилите</translation>
</message>
<message>
<source>Fetch data</source>
- <translation type="unfinished"></translation>
+ <translation>Получаване на данни</translation>
</message>
<message>
<source>Server message for latest version:</source>
- <translation type="unfinished"></translation>
+ <translation>Съобщение на сървъра за последната версия:</translation>
</message>
<message>
<source>Server message for previous versions:</source>
- <translation type="unfinished"></translation>
+ <translation>Съобщение на сървъра за предишната версия:</translation>
</message>
<message>
<source>Latest version protocol number:</source>
- <translation type="unfinished"></translation>
+ <translation>Номер на протокола на последната версия:</translation>
</message>
<message>
<source>MOTD preview:</source>
- <translation type="unfinished"></translation>
+ <translation>Преглед на съобщението за деня:</translation>
</message>
<message>
<source>Set data</source>
- <translation type="unfinished"></translation>
+ <translation>Задаване на данни</translation>
</message>
</context>
<context>
<name>PageConnecting</name>
<message>
<source>Connecting...</source>
- <translation type="unfinished"></translation>
+ <translation>Свързване...</translation>
</message>
</context>
<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
- <translation type="unfinished"></translation>
+ <translation>Отмяна</translation>
</message>
<message>
<source>Clear</source>
- <translation type="unfinished"></translation>
+ <translation>Изчистване</translation>
</message>
<message>
<source>Load</source>
- <translation type="unfinished">Зареждане</translation>
+ <translation>Зареждане</translation>
</message>
<message>
<source>Save</source>
- <translation type="unfinished"></translation>
+ <translation>Запазване</translation>
</message>
<message>
<source>Load drawn map</source>
- <translation type="unfinished"></translation>
+ <translation>Зареждане на начертана карта</translation>
</message>
<message>
<source>Drawn Maps (*.hwmap);;All files (*.*)</source>
- <translation type="unfinished"></translation>
+ <translation>Начертани карти (*.hwmap);;Всички файлове (*.*)</translation>
</message>
<message>
<source>Save drawn map</source>
- <translation type="unfinished"></translation>
+ <translation>Запазване на начертана карта</translation>
</message>
</context>
<context>
@@ -355,19 +358,19 @@
</message>
<message>
<source>Details</source>
- <translation type="unfinished"></translation>
+ <translation>Подробности</translation>
</message>
<message>
<source>Health graph</source>
- <translation type="unfinished"></translation>
+ <translation>Графика на здрането</translation>
</message>
<message>
<source>Ranking</source>
- <translation type="unfinished"></translation>
+ <translation>Класиране</translation>
</message>
<message>
<source>The best shot award was won by <b>%1</b> with <b>%2</b> pts.</source>
- <translation type="unfinished"></translation>
+ <translation>Наградата за най-добър изстрел беше спечелена от <b>%1</b> с <b>%2</b> pts.</translation>
</message>
<message numerus="yes">
<source>The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</source>
@@ -380,7 +383,6 @@
<source>A total of <b>%1</b> hedgehog(s) were killed during this round.</source>
<translation type="unfinished">
<numerusform></numerusform>
- <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
@@ -392,8 +394,7 @@
</message>
<message numerus="yes">
<source><b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.</source>
- <translation type="unfinished">
- <numerusform></numerusform>
+ <translation>
<numerusform></numerusform>
</translation>
</message>
@@ -401,14 +402,12 @@
<source><b>%1</b> killed <b>%2</b> of his own hedgehogs.</source>
<translation type="unfinished">
<numerusform></numerusform>
- <numerusform></numerusform>
</translation>
</message>
<message numerus="yes">
<source><b>%1</b> was scared and skipped turn <b>%2</b> times.</source>
<translation type="unfinished">
<numerusform></numerusform>
- <numerusform></numerusform>
</translation>
</message>
</context>
@@ -690,18 +689,18 @@
<name>PageNetGame</name>
<message>
<source>Control</source>
- <translation type="unfinished"></translation>
+ <translation>Контрол</translation>
</message>
</context>
<context>
<name>PageNetType</name>
<message>
<source>LAN game</source>
- <translation type="unfinished"></translation>
+ <translation>Игра по локална мрежа</translation>
</message>
<message>
<source>Official server</source>
- <translation type="unfinished"></translation>
+ <translation>Официален сървър</translation>
</message>
</context>
<context>
@@ -716,35 +715,35 @@
</message>
<message>
<source>Delete team</source>
- <translation type="unfinished"></translation>
+ <translation>Изтриване на отбор</translation>
</message>
<message>
<source>You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
- <translation type="unfinished"></translation>
+ <translation>Не можете да редактиране отбори от избирането на отбори. Върнете се назад за да добавите, редактирате или изтриете отбори.</translation>
</message>
<message>
<source>New scheme</source>
- <translation type="unfinished"></translation>
+ <translation>Нова схема</translation>
</message>
<message>
<source>Edit scheme</source>
- <translation type="unfinished"></translation>
+ <translation>Редактиране на схема</translation>
</message>
<message>
<source>Delete scheme</source>
- <translation type="unfinished"></translation>
+ <translation>Изтриване на схема</translation>
</message>
<message>
<source>New weapon set</source>
- <translation type="unfinished"></translation>
+ <translation>Нов комплект оръжия</translation>
</message>
<message>
<source>Edit weapon set</source>
- <translation type="unfinished"></translation>
+ <translation>Редактиране на комплекта оръжия</translation>
</message>
<message>
<source>Delete weapon set</source>
- <translation type="unfinished"></translation>
+ <translation>Изтриване на комплекта оръжия</translation>
</message>
</context>
<context>
@@ -794,7 +793,7 @@
</message>
<message>
<source>Admin features</source>
- <translation type="unfinished"></translation>
+ <translation>Административни функционалности</translation>
</message>
<message>
<source>Error</source>
@@ -806,37 +805,39 @@
</message>
<message>
<source>Room Name:</source>
- <translation type="unfinished"></translation>
+ <translation>Име на стаята:</translation>
</message>
<message>
<source>This game is in lobby.
You may join and start playing once the game starts.</source>
- <translation type="unfinished"></translation>
+ <translation>Тази игра е в лоби.
+След като започне, може да се присъедините и да играете.</translation>
</message>
<message>
<source>This game is in progress.
You may join and spectate now but you'll have to wait for the game to end to start playing.</source>
- <translation type="unfinished"></translation>
+ <translation>Играта тече в момента.
+Можете да се присъедините и да гледате, но ще трябва да изчакате да свърши, за да започнете да играете.</translation>
</message>
<message>
<source>%1 is the host. He may adjust settings and start the game.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 е домакина. Той може да променя настройките и да започне играта.</translation>
</message>
<message>
<source>Random Map</source>
- <translation type="unfinished"></translation>
+ <translation>Случайна карта</translation>
</message>
<message>
<source>Games may be played on precreated or randomized maps.</source>
- <translation type="unfinished"></translation>
+ <translation>Игрите могат да се играят на предварително създадени или случайно генерирани карти.</translation>
</message>
<message>
<source>The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.</source>
- <translation type="unfinished"></translation>
+ <translation>Игровата схема определя общите настройки и предпочитания, като продължителност на рунда, внезапна смърт или вампиризъм.</translation>
</message>
<message>
<source>The Weapon Scheme defines available weapons and their ammunition count.</source>
- <translation type="unfinished"></translation>
+ <translation>Схемата на оръжията определя наличните оръжия и количеството боеприпаси за тях.</translation>
</message>
<message numerus="yes">
<source>There are %1 clients connected to this room.</source>
@@ -849,7 +850,6 @@
<source>There are %1 teams participating in this room.</source>
<translation type="unfinished">
<numerusform></numerusform>
- <numerusform></numerusform>
</translation>
</message>
<message>
@@ -862,36 +862,37 @@
</message>
<message>
<source>Random Maze</source>
- <translation type="unfinished"></translation>
+ <translation>Случан лабиринт</translation>
</message>
<message>
<source>State:</source>
- <translation type="unfinished"></translation>
+ <translation>Състояние:</translation>
</message>
<message>
<source>Rules:</source>
- <translation type="unfinished"></translation>
+ <translation>Правила:</translation>
</message>
<message>
<source>Weapons:</source>
- <translation type="unfinished"></translation>
+ <translation>Оръжия:</translation>
</message>
<message>
<source>Search:</source>
- <translation type="unfinished"></translation>
+ <translation>Търсене:</translation>
</message>
<message>
<source>Clear</source>
- <translation type="unfinished"></translation>
+ <translation>Изчистване</translation>
</message>
<message>
<source>Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Внимание</translation>
</message>
<message>
<source>The game you are trying to join has started.
Do you still want to join the room?</source>
- <translation type="unfinished"></translation>
+ <translation>Играта, към която се опитвате да се присъедините вече е започнала.
+Все още ли желаете да се присъедините към стаята?</translation>
</message>
</context>
<context>
@@ -1021,11 +1022,11 @@
</message>
<message>
<source>New</source>
- <translation type="unfinished"></translation>
+ <translation>Ново</translation>
</message>
<message>
<source>Copy</source>
- <translation type="unfinished"></translation>
+ <translation>Копиране</translation>
</message>
</context>
<context>
@@ -1040,7 +1041,7 @@
</message>
<message>
<source>Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT</source>
- <translation>Тренировка (упражнете уменията си в редица тренировъчни мисии). РАЗРАБОТВА СЕ</translation>
+ <translation>Тренировка (упражнете уменията си в редица тренировъчни мисии). В ПРОЦЕС НА РАЗРАБОТКА</translation>
</message>
<message>
<source>Demos (Watch recorded demos)</source>
@@ -1052,7 +1053,7 @@
</message>
<message>
<source>Campaign Mode (...). IN DEVELOPMENT</source>
- <translation type="unfinished"></translation>
+ <translation>Режим кампания (...). В ПРОЦЕС НА РАЗРАБОТКА</translation>
</message>
</context>
<context>
@@ -1063,7 +1064,7 @@
</message>
<message>
<source>Ban</source>
- <translation type="unfinished"></translation>
+ <translation>Забраняване</translation>
</message>
<message>
<source>Start</source>
@@ -1083,30 +1084,30 @@
</message>
<message>
<source>Follow</source>
- <translation type="unfinished"></translation>
+ <translation>Следване</translation>
</message>
<message>
<source>Ignore</source>
- <translation type="unfinished"></translation>
+ <translation>Игнориране</translation>
</message>
<message>
<source>Add friend</source>
- <translation type="unfinished"></translation>
+ <translation>Добавяне на приятел</translation>
</message>
<message>
<source>Unignore</source>
- <translation type="unfinished"></translation>
+ <translation>Отмяна на игнориране</translation>
</message>
<message>
<source>Remove friend</source>
- <translation type="unfinished"></translation>
+ <translation>Премахване на приятел</translation>
</message>
</context>
<context>
<name>QCheckBox</name>
<message>
<source>Check for updates at startup</source>
- <translation type="unfinished"></translation>
+ <translation>Проверяване за обновления при стартиране</translation>
</message>
<message>
<source>Enable sound</source>
@@ -1130,7 +1131,7 @@
</message>
<message>
<source>Frontend fullscreen</source>
- <translation>Преден пълен екран</translation>
+ <translation>Пълен екран</translation>
</message>
<message>
<source>Append date and time to record file name</source>
@@ -1138,19 +1139,19 @@
</message>
<message>
<source>Show ammo menu tooltips</source>
- <translation type="unfinished"></translation>
+ <translation>Показване на подсказки за боеприпасите</translation>
</message>
<message>
<source>Enable frontend sounds</source>
- <translation type="unfinished"></translation>
+ <translation>Включване на звуци</translation>
</message>
<message>
<source>Enable frontend music</source>
- <translation type="unfinished"></translation>
+ <translation>Включване на музика</translation>
</message>
<message>
<source>Frontend effects</source>
- <translation type="unfinished"></translation>
+ <translation>Ефекти</translation>
</message>
</context>
<context>
@@ -1169,31 +1170,31 @@
</message>
<message>
<source>(System default)</source>
- <translation type="unfinished"></translation>
+ <translation>(Стандартно за системата)</translation>
</message>
<message>
<source>generated maze...</source>
- <translation type="unfinished"></translation>
+ <translation>генериран лабиринт...</translation>
</message>
<message>
<source>Mission</source>
- <translation type="unfinished"></translation>
+ <translation>Мисия</translation>
</message>
<message>
<source>Community</source>
- <translation type="unfinished"></translation>
+ <translation>Общност</translation>
</message>
<message>
<source>Any</source>
- <translation type="unfinished"></translation>
+ <translation>Без значение</translation>
</message>
<message>
<source>In lobby</source>
- <translation type="unfinished"></translation>
+ <translation>В лоби</translation>
</message>
<message>
<source>In progress</source>
- <translation type="unfinished"></translation>
+ <translation>В прогрес</translation>
</message>
<message>
<source>Default</source>
@@ -1201,11 +1202,11 @@
</message>
<message>
<source>hand drawn map...</source>
- <translation type="unfinished"></translation>
+ <translation>Ръчно нарисувана карта...</translation>
</message>
<message>
<source>Disabled</source>
- <translation type="unfinished"></translation>
+ <translation>Изключено</translation>
</message>
<message>
<source>Red/Cyan</source>
@@ -1248,11 +1249,11 @@
<name>QGroupBox</name>
<message>
<source>Game Modifiers</source>
- <translation type="unfinished"></translation>
+ <translation>Модификатори на играта</translation>
</message>
<message>
<source>Basic Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Основни настройки</translation>
</message>
<message>
<source>Team Members</source>
@@ -1288,54 +1289,54 @@
</message>
<message>
<source>Team Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Настройки на отборите</translation>
</message>
<message>
<source>Misc</source>
- <translation type="unfinished"></translation>
+ <translation>Разни</translation>
</message>
<message>
<source>Schemes and Weapons</source>
- <translation type="unfinished"></translation>
+ <translation>Схеми и оръжия</translation>
</message>
</context>
<context>
<name>QLabel</name>
<message>
<source>Game scheme</source>
- <translation type="unfinished">Игрови настройки</translation>
+ <translation>Игрови схеми</translation>
</message>
<message>
<source>Damage Modifier</source>
- <translation type="unfinished"></translation>
+ <translation>Модификатор на щетите</translation>
</message>
<message>
<source>Turn Time</source>
- <translation type="unfinished"></translation>
+ <translation>Време за ход</translation>
</message>
<message>
<source>Initial Health</source>
- <translation type="unfinished"></translation>
+ <translation>Начално здраве</translation>
</message>
<message>
<source>Sudden Death Timeout</source>
- <translation type="unfinished"></translation>
+ <translation>Изтичане на времето на внезапната смърт</translation>
</message>
<message>
<source>Crate Drops</source>
- <translation type="unfinished"></translation>
+ <translation>Пускане на кашони</translation>
</message>
<message>
<source>Mines Time</source>
- <translation type="unfinished"></translation>
+ <translation>Време на мините</translation>
</message>
<message>
<source>Mines</source>
- <translation type="unfinished"></translation>
+ <translation>Мини</translation>
</message>
<message>
<source>Scheme Name:</source>
- <translation type="unfinished"></translation>
+ <translation>Име на схемата:</translation>
</message>
<message>
<source>Net nick</source>
@@ -1407,39 +1408,39 @@
</message>
<message>
<source>Name</source>
- <translation type="unfinished"></translation>
+ <translation>Име</translation>
</message>
<message>
<source>Type</source>
- <translation type="unfinished"></translation>
+ <translation>Тип</translation>
</message>
<message>
<source>Grave</source>
- <translation type="unfinished"></translation>
+ <translation>Надгробна плоча</translation>
</message>
<message>
<source>Flag</source>
- <translation type="unfinished"></translation>
+ <translation>Знаме</translation>
</message>
<message>
<source>Voice</source>
- <translation type="unfinished"></translation>
+ <translation>Глас</translation>
</message>
<message>
<source>Locale</source>
- <translation type="unfinished"></translation>
+ <translation>Локал</translation>
</message>
<message>
<source>Restart game to apply</source>
- <translation type="unfinished"></translation>
+ <translation>Рестартирайте играта за да влезе в сила</translation>
</message>
<message>
<source>Explosives</source>
- <translation type="unfinished"></translation>
+ <translation>Експлозиви</translation>
</message>
<message>
<source>Tip: </source>
- <translation type="unfinished"></translation>
+ <translation>Съвет:</translation>
</message>
<message>
<source>This development build is 'work in progress' and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
@@ -1447,35 +1448,35 @@
</message>
<message>
<source>Quality</source>
- <translation type="unfinished"></translation>
+ <translation>Качество</translation>
</message>
<message>
<source>% Health Crates</source>
- <translation type="unfinished"></translation>
+ <translation>% кашони със здраве</translation>
</message>
<message>
<source>Health in Crates</source>
- <translation type="unfinished"></translation>
+ <translation>Здраве в кашоните</translation>
</message>
<message>
<source>Sudden Death Water Rise</source>
- <translation type="unfinished"></translation>
+ <translation>Покачване на водата при Внезапна смърт</translation>
</message>
<message>
<source>Sudden Death Health Decrease</source>
- <translation type="unfinished"></translation>
+ <translation>Намаляване на здравето при Внезапна смърт</translation>
</message>
<message>
<source>% Rope Length</source>
- <translation type="unfinished"></translation>
+ <translation>% Дължина на въжето</translation>
</message>
<message>
<source>Gameplay</source>
- <translation type="unfinished"></translation>
+ <translation>Геймплей</translation>
</message>
<message>
<source>Stereo rendering</source>
- <translation type="unfinished"></translation>
+ <translation>Стерео режим</translation>
</message>
</context>
<context>
@@ -1532,39 +1533,39 @@
</message>
<message>
<source>Can not overwrite default weapon set '%1'!</source>
- <translation type="unfinished"></translation>
+ <translation>Не моге да се презапише стандартния комплект с оръжия '%1'!</translation>
</message>
<message>
<source>All file associations have been set.</source>
- <translation type="unfinished"></translation>
+ <translation>Всички файлови асоциации са зададени.</translation>
</message>
<message>
<source>File association failed.</source>
- <translation type="unfinished"></translation>
+ <translation>Файловата асоциация се провали.</translation>
</message>
<message>
<source>Teams</source>
- <translation type="unfinished">Отбори</translation>
+ <translation>Отбори</translation>
</message>
<message>
<source>Really delete this team?</source>
- <translation type="unfinished"></translation>
+ <translation>Наистина ли да бъде изтрит този отбор?</translation>
</message>
<message>
<source>Schemes</source>
- <translation type="unfinished"></translation>
+ <translation>Схеми</translation>
</message>
<message>
<source>Can not delete default scheme '%1'!</source>
- <translation type="unfinished"></translation>
+ <translation>Стандартната схема '%1' не може да бъде изтрита!</translation>
</message>
<message>
<source>Really delete this game scheme?</source>
- <translation type="unfinished"></translation>
+ <translation>Наистина ли да бъде изтрите тази игрова схема?</translation>
</message>
<message>
<source>Can not delete default weapon set '%1'!</source>
- <translation type="unfinished"></translation>
+ <translation>Не моге да се изтрие стандартния комплект с оръжия '%1'!</translation>
</message>
</context>
<context>
@@ -1583,11 +1584,11 @@
</message>
<message>
<source>Nickname</source>
- <translation type="unfinished"></translation>
+ <translation>Прякор</translation>
</message>
<message>
<source>Please enter your nickname</source>
- <translation type="unfinished"></translation>
+ <translation>Моля въведете прякорът си</translation>
</message>
</context>
<context>
@@ -1654,73 +1655,73 @@
</message>
<message>
<source>Random Team</source>
- <translation type="unfinished"></translation>
+ <translation>Случаен отбор</translation>
</message>
<message>
<source>Associate file extensions</source>
- <translation type="unfinished"></translation>
+ <translation>Асоцииране на файлови разширения</translation>
</message>
<message>
<source>more</source>
- <translation type="unfinished"></translation>
+ <translation>повече</translation>
</message>
</context>
<context>
<name>QTableWidget</name>
<message>
<source>Room Name</source>
- <translation type="unfinished"></translation>
+ <translation>Име на стаята</translation>
</message>
<message>
<source>C</source>
- <translation type="unfinished"></translation>
+ <translation>C</translation>
</message>
<message>
<source>T</source>
- <translation type="unfinished"></translation>
+ <translation>T</translation>
</message>
<message>
<source>Owner</source>
- <translation type="unfinished"></translation>
+ <translation>Притежател</translation>
</message>
<message>
<source>Map</source>
- <translation type="unfinished">Карта</translation>
+ <translation>Карта</translation>
</message>
<message>
<source>Rules</source>
- <translation type="unfinished"></translation>
+ <translation>Правила</translation>
</message>
<message>
<source>Weapons</source>
- <translation type="unfinished">Оръжия</translation>
+ <translation>Оръжия</translation>
</message>
</context>
<context>
<name>SelWeaponWidget</name>
<message>
<source>Weapon set</source>
- <translation type="unfinished"></translation>
+ <translation>Комплект оръжия</translation>
</message>
<message>
<source>Probabilities</source>
- <translation type="unfinished"></translation>
+ <translation>Веротности</translation>
</message>
<message>
<source>Ammo in boxes</source>
- <translation type="unfinished"></translation>
+ <translation>Боеприпаси в кашоните</translation>
</message>
<message>
<source>Delays</source>
- <translation type="unfinished"></translation>
+ <translation>Закъснения</translation>
</message>
<message>
<source>new</source>
- <translation type="unfinished">Нов отбор</translation>
+ <translation>нов</translation>
</message>
<message>
<source>copy of</source>
- <translation type="unfinished"></translation>
+ <translation>копие на</translation>
</message>
</context>
<context>
@@ -1742,95 +1743,95 @@
<name>ToggleButtonWidget</name>
<message>
<source>Fort Mode</source>
- <translation type="unfinished"></translation>
+ <translation>Режим на фортове</translation>
</message>
<message>
<source>Divide Teams</source>
- <translation type="unfinished"></translation>
+ <translation>Разделяне на отборите</translation>
</message>
<message>
<source>Solid Land</source>
- <translation type="unfinished"></translation>
+ <translation>Твърда земя</translation>
</message>
<message>
<source>Add Border</source>
- <translation type="unfinished">Добави гранична ивица</translation>
+ <translation>Добави гранична ивица</translation>
</message>
<message>
<source>Low Gravity</source>
- <translation type="unfinished"></translation>
+ <translation>Ниска гравитация</translation>
</message>
<message>
<source>Laser Sight</source>
- <translation type="unfinished"></translation>
+ <translation>Лазерен мерник</translation>
</message>
<message>
<source>Invulnerable</source>
- <translation type="unfinished"></translation>
+ <translation>Неуязвимост</translation>
</message>
<message>
<source>Vampirism</source>
- <translation type="unfinished"></translation>
+ <translation>Вампиризъм</translation>
</message>
<message>
<source>Karma</source>
- <translation type="unfinished"></translation>
+ <translation>Карма</translation>
</message>
<message>
<source>Artillery</source>
- <translation type="unfinished"></translation>
+ <translation>Артилерия</translation>
</message>
<message>
<source>Random Order</source>
- <translation type="unfinished"></translation>
+ <translation>Произволен ред</translation>
</message>
<message>
<source>King</source>
- <translation type="unfinished"></translation>
+ <translation>Крал</translation>
</message>
<message>
<source>Place Hedgehogs</source>
- <translation type="unfinished"></translation>
+ <translation>Поставяне на таралежи</translation>
</message>
<message>
<source>Clan Shares Ammo</source>
- <translation type="unfinished"></translation>
+ <translation>Кланът споделя оръжията</translation>
</message>
<message>
<source>Disable Girders</source>
- <translation type="unfinished"></translation>
+ <translation>Изкбючване на греди</translation>
</message>
<message>
<source>Disable Land Objects</source>
- <translation type="unfinished"></translation>
+ <translation>Изключване на обекти по земята</translation>
</message>
<message>
<source>AI Survival Mode</source>
- <translation type="unfinished"></translation>
+ <translation>Режим ИИ оцеляване</translation>
</message>
<message>
<source>Reset Health</source>
- <translation type="unfinished"></translation>
+ <translation>Изчистване на здрането</translation>
</message>
<message>
<source>Unlimited Attacks</source>
- <translation type="unfinished"></translation>
+ <translation>Неограничени атаки</translation>
</message>
<message>
<source>Reset Weapons</source>
- <translation type="unfinished"></translation>
+ <translation>Изчистване на оръжията</translation>
</message>
<message>
<source>Per Hedgehog Ammo</source>
- <translation type="unfinished"></translation>
+ <translation>Боеприпаси за всеки таралеж поотделно</translation>
</message>
<message>
<source>Disable Wind</source>
- <translation type="unfinished"></translation>
+ <translation>Изключване на вятъра</translation>
</message>
<message>
<source>More Wind</source>
- <translation type="unfinished"></translation>
+ <translation>Още вятър</translation>
</message>
</context>
<context>
@@ -1975,120 +1976,120 @@
</message>
<message>
<source>zoom in</source>
- <translation type="unfinished"></translation>
+ <translation>Приближаване</translation>
</message>
<message>
<source>zoom out</source>
- <translation type="unfinished"></translation>
+ <translation>Отдалечаване</translation>
</message>
<message>
<source>reset zoom</source>
- <translation type="unfinished"></translation>
+ <translation>Изчиставане на мащабирането</translation>
</message>
<message>
<source>long jump</source>
- <translation type="unfinished"></translation>
+ <translation>Дълъг скок</translation>
</message>
<message>
<source>high jump</source>
- <translation type="unfinished"></translation>
+ <translation>Висок скок</translation>
</message>
<message>
<source>slot 10</source>
- <translation type="unfinished">Слот 10</translation>
+ <translation>Слот 10</translation>
</message>
</context>
<context>
<name>binds (categories)</name>
<message>
<source>Basic controls</source>
- <translation type="unfinished"></translation>
+ <translation>Основни контроли</translation>
</message>
<message>
<source>Weapon controls</source>
- <translation type="unfinished"></translation>
+ <translation>Контроли за оръжията</translation>
</message>
<message>
<source>Camera and cursor controls</source>
- <translation type="unfinished"></translation>
+ <translation>Контроли за камерата и показалеца</translation>
</message>
<message>
<source>Other</source>
- <translation type="unfinished">Друго</translation>
+ <translation>Друго</translation>
</message>
</context>
<context>
<name>binds (descriptions)</name>
<message>
<source>Move your hogs and aim:</source>
- <translation type="unfinished"></translation>
+ <translation>Преместете таралежите си и се прицелете:</translation>
</message>
<message>
<source>Traverse gaps and obstacles by jumping:</source>
- <translation type="unfinished"></translation>
+ <translation>Преодолявайте празнини и препятствия чрез скачане:</translation>
</message>
<message>
<source>Fire your selected weapon or trigger an utility item:</source>
- <translation type="unfinished"></translation>
+ <translation>Стреляйте с избраното оръжие или задействайте инструмент:</translation>
</message>
<message>
<source>Pick a weapon or a target location under the cursor:</source>
- <translation type="unfinished"></translation>
+ <translation>Изберете оръжие или местоположение под показалеца:</translation>
</message>
<message>
<source>Switch your currently active hog (if possible):</source>
- <translation type="unfinished"></translation>
+ <translation>Превключете текущо избрания таралеж ( ако е възможно):</translation>
</message>
<message>
<source>Pick a weapon or utility item:</source>
- <translation type="unfinished"></translation>
+ <translation>Изберете оръжие или инструмент:</translation>
</message>
<message>
<source>Set the timer on bombs and timed weapons:</source>
- <translation type="unfinished"></translation>
+ <translation>Задайте таймер на бомбите и оръжията с таймер:</translation>
</message>
<message>
<source>Move the camera to the active hog:</source>
- <translation type="unfinished"></translation>
+ <translation>Преместете камерата към активния таралеж:</translation>
</message>
<message>
<source>Move the cursor or camera without using the mouse:</source>
- <translation type="unfinished"></translation>
+ <translation>Преместете показалеца или камерата без помощта на мишката:</translation>
</message>
<message>
<source>Modify the camera's zoom level:</source>
- <translation type="unfinished"></translation>
+ <translation>Променете нивото на мащабиране на картата:</translation>
</message>
<message>
<source>Talk to your team or all participants:</source>
- <translation type="unfinished"></translation>
+ <translation>Говорете с отбора си или всички участници:</translation>
</message>
<message>
<source>Pause, continue or leave your game:</source>
- <translation type="unfinished"></translation>
+ <translation>Сложете на пауза, продължете или напудснете играта:</translation>
</message>
<message>
<source>Modify the game's volume while playing:</source>
- <translation type="unfinished"></translation>
+ <translation>Променете силата на звука на играта докато играете:</translation>
</message>
<message>
<source>Toggle fullscreen mode:</source>
- <translation type="unfinished"></translation>
+ <translation>Превключване на пълен екран:</translation>
</message>
<message>
<source>Take a screenshot:</source>
- <translation type="unfinished"></translation>
+ <translation>Прихващане на екран:</translation>
</message>
<message>
<source>Toggle labels above hedgehogs:</source>
- <translation type="unfinished"></translation>
+ <translation>Премключване на надписи над таралежите:</translation>
</message>
</context>
<context>
<name>binds (keys)</name>
<message>
<source>Axis</source>
- <translation type="unfinished"></translation>
+ <translation>Ос</translation>
</message>
<message>
<source>(Up)</source>
@@ -2112,11 +2113,11 @@
</message>
<message>
<source>Button</source>
- <translation type="unfinished"></translation>
+ <translation>Бутон</translation>
</message>
<message>
<source>Keyboard</source>
- <translation type="unfinished"></translation>
+ <translation>Клавиатура</translation>
</message>
<message>
<source>Delete</source>
--- a/share/hedgewars/Data/Locale/hedgewars_cs.ts Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_cs.ts Thu Aug 04 17:44:55 2011 +0200
@@ -5,25 +5,25 @@
<name>AmmoSchemeModel</name>
<message>
<source>new</source>
- <translation type="unfinished">nový</translation>
+ <translation>nový</translation>
</message>
<message>
<source>copy of</source>
- <translation type="unfinished"></translation>
+ <translation>kopie</translation>
</message>
</context>
<context>
<name>FreqSpinBox</name>
<message>
<source>Never</source>
- <translation type="unfinished"></translation>
+ <translation>Nikdy</translation>
</message>
<message numerus="yes">
<source>Every %1 turn</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>Každý %1 tah</numerusform>
+ <numerusform>Každé %1 tahy</numerusform>
+ <numerusform>Každých %1 tahů</numerusform>
</translation>
</message>
</context>
@@ -31,7 +31,7 @@
<name>GameCFGWidget</name>
<message>
<source>Edit weapons</source>
- <translation type="unfinished"></translation>
+ <translation>Editovat zbraně</translation>
</message>
<message>
<source>Error</source>
@@ -43,30 +43,30 @@
</message>
<message>
<source>Edit schemes</source>
- <translation type="unfinished"></translation>
+ <translation>Editovat schémata</translation>
</message>
<message>
<source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
- <translation type="unfinished"></translation>
+ <translation>Pokud je tato volba aktivována, výběr herního schématu vybere automaticky i zbraňové schéma</translation>
</message>
</context>
<context>
<name>HWChatWidget</name>
<message>
<source>%1 *** %2 has been removed from your ignore list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 byl odstraněn ze seznamu ignorovaných</translation>
</message>
<message>
<source>%1 *** %2 has been added to your ignore list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 byl přidán na seznam ignorovaných</translation>
</message>
<message>
<source>%1 *** %2 has been removed from your friends list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 byl odstraněn ze seznamu přátel</translation>
</message>
<message>
<source>%1 *** %2 has been added to your friends list</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 byl přidán na seznam přátel</translation>
</message>
</context>
<context>
@@ -97,17 +97,17 @@
</message>
<message>
<source>DefaultTeam</source>
- <translation type="unfinished"></translation>
+ <translation>VýchozíTeam</translation>
</message>
<message>
<source>Hedgewars Demo File</source>
<comment>File Types</comment>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars Demo Soubor</translation>
</message>
<message>
<source>Hedgewars Save File</source>
<comment>File Types</comment>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars Save Soubor</translation>
</message>
</context>
<context>
@@ -133,67 +133,67 @@
</message>
<message>
<source>Filter</source>
- <translation type="unfinished"></translation>
+ <translation>Filtr</translation>
</message>
<message>
<source>All</source>
- <translation type="unfinished"></translation>
+ <translation>Vše</translation>
</message>
<message>
<source>Small</source>
- <translation type="unfinished"></translation>
+ <translation>Malá</translation>
</message>
<message>
<source>Medium</source>
- <translation type="unfinished"></translation>
+ <translation>Střední</translation>
</message>
<message>
<source>Large</source>
- <translation type="unfinished"></translation>
+ <translation>Velká</translation>
</message>
<message>
<source>Cavern</source>
- <translation type="unfinished"></translation>
+ <translation>Jeskyně</translation>
</message>
<message>
<source>Wacky</source>
- <translation type="unfinished"></translation>
+ <translation>Šílená</translation>
</message>
<message>
<source>Type</source>
- <translation type="unfinished"></translation>
+ <translation>Typ</translation>
</message>
<message>
<source>Small tunnels</source>
- <translation type="unfinished"></translation>
+ <translation>Malé tunely</translation>
</message>
<message>
<source>Medium tunnels</source>
- <translation type="unfinished"></translation>
+ <translation>Střední tunely</translation>
</message>
<message>
<source>Large tunnels</source>
- <translation type="unfinished"></translation>
+ <translation>Velké tunely</translation>
</message>
<message>
<source>Small floating islands</source>
- <translation type="unfinished"></translation>
+ <translation>Malé plovoucí ostrovy</translation>
</message>
<message>
<source>Medium floating islands</source>
- <translation type="unfinished"></translation>
+ <translation>Střední plovoucí ostrovy</translation>
</message>
<message>
<source>Large floating islands</source>
- <translation type="unfinished"></translation>
+ <translation>Velké plovoucí ostrovy</translation>
</message>
<message>
<source>Seed</source>
- <translation type="unfinished"></translation>
+ <translation>Semínko</translation>
</message>
<message>
<source>Set</source>
- <translation type="unfinished"></translation>
+ <translation>Sada</translation>
</message>
</context>
<context>
@@ -219,11 +219,11 @@
</message>
<message>
<source>Connection refused</source>
- <translation>Spojení odmítnuto.</translation>
+ <translation>Spojení odmítnuto</translation>
</message>
<message>
<source>Room destroyed</source>
- <translation>Místnost zničena.</translation>
+ <translation>Místnost zničena</translation>
</message>
<message>
<source>Quit reason: </source>
@@ -231,34 +231,37 @@
</message>
<message>
<source>You got kicked</source>
- <translation type="unfinished"></translation>
+ <translation>Byl jsi vykopnut</translation>
</message>
<message>
<source>Password</source>
- <translation type="unfinished"></translation>
+ <translation>Heslo</translation>
</message>
<message>
<source>%1 *** %2 has joined the room</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 se připojil do místnosti</translation>
</message>
<message>
<source>%1 *** %2 has joined</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 se připojil</translation>
</message>
<message>
<source>%1 *** %2 has left (%3)</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 odešel (%3)</translation>
</message>
<message>
<source>%1 *** %2 has left</source>
- <translation type="unfinished"></translation>
+ <translation>%1 *** %2 odešel</translation>
</message>
<message>
<source>Your nickname %1 is
registered on Hedgewars.org
Please provide your password below
or pick another nickname in game config:</source>
- <translation type="unfinished"></translation>
+ <translation>Tvoje přezdívka %1 je
+registrovaná na Hedgewars.org
+Prosím, zadej své heslo
+nebo si v konfiguraci vyber jinou přezdívku:</translation>
</message>
</context>
<context>
@@ -272,69 +275,69 @@
<name>PageAdmin</name>
<message>
<source>Clear Accounts Cache</source>
- <translation type="unfinished"></translation>
+ <translation>Vyčistit mezipaměť účtů</translation>
</message>
<message>
<source>Fetch data</source>
- <translation type="unfinished"></translation>
+ <translation>Načíst data</translation>
</message>
<message>
<source>Server message for latest version:</source>
- <translation type="unfinished"></translation>
+ <translation>Zpráva serveru pro nejnovějši verzi:</translation>
</message>
<message>
<source>Server message for previous versions:</source>
- <translation type="unfinished"></translation>
+ <translation>Zpráva serveru pro předchozí verzi:</translation>
</message>
<message>
<source>Latest version protocol number:</source>
- <translation type="unfinished"></translation>
+ <translation>Číslo protokolu nejnovější verze:</translation>
</message>
<message>
<source>MOTD preview:</source>
- <translation type="unfinished"></translation>
+ <translation>Motto dne:</translation>
</message>
<message>
<source>Set data</source>
- <translation type="unfinished"></translation>
+ <translation>Nastavit data</translation>
</message>
</context>
<context>
<name>PageConnecting</name>
<message>
<source>Connecting...</source>
- <translation type="unfinished"></translation>
+ <translation>Připojuji...</translation>
</message>
</context>
<context>
<name>PageDrawMap</name>
<message>
<source>Undo</source>
- <translation type="unfinished"></translation>
+ <translation>Zpět</translation>
</message>
<message>
<source>Clear</source>
- <translation type="unfinished"></translation>
+ <translation>Vymazat</translation>
</message>
<message>
<source>Load</source>
- <translation type="unfinished">Nahrát</translation>
+ <translation>Nahrát</translation>
</message>
<message>
<source>Save</source>
- <translation type="unfinished"></translation>
+ <translation>Uložit</translation>
</message>
<message>
<source>Load drawn map</source>
- <translation type="unfinished"></translation>
+ <translation>Nahrát nakreslenou mapu</translation>
</message>
<message>
<source>Drawn Maps (*.hwmap);;All files (*.*)</source>
- <translation type="unfinished"></translation>
+ <translation>Nakreslené mapy (*.hwmap);;Všechny soubory (*.*)</translation>
</message>
<message>
<source>Save drawn map</source>
- <translation type="unfinished"></translation>
+ <translation>Uložit nakreslenou mapu</translation>
</message>
</context>
<context>
@@ -356,66 +359,66 @@
</message>
<message>
<source>Details</source>
- <translation type="unfinished"></translation>
+ <translation>Detaily</translation>
</message>
<message>
<source>Health graph</source>
- <translation type="unfinished"></translation>
+ <translation>Graf zdraví</translation>
</message>
<message>
<source>Ranking</source>
- <translation type="unfinished"></translation>
+ <translation>Hodnocení</translation>
</message>
<message>
<source>The best shot award was won by <b>%1</b> with <b>%2</b> pts.</source>
- <translation type="unfinished"></translation>
+ <translation>Cenu za nejlepší zásah vyhrál <b>%1</b> s <b>%2</b> body.</translation>
</message>
<message numerus="yes">
<source>The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>Nejlepší zabiják je <b>%1</b> s <b>%2</b> úlovkem za tah.</numerusform>
+ <numerusform>Nejlepší zabiják je <b>%1</b> se <b>%2</b> úlovky za tah.</numerusform>
+ <numerusform>Nejlepší zabiják je <b>%1</b> s <b>%2</b> úlovky za tah.</numerusform>
</translation>
</message>
<message numerus="yes">
<source>A total of <b>%1</b> hedgehog(s) were killed during this round.</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>Celkem <b>%1</b> ježek byl zabit toto kolo.</numerusform>
+ <numerusform>Celkem <b>%1</b> ježci byli zabiti toto kolo.</numerusform>
+ <numerusform>Celkem <b>%1</b> ježků bylo zabito toto kolo.</numerusform>
</translation>
</message>
<message numerus="yes">
<source>(%1 kill)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>(%1 úlovek)</numerusform>
+ <numerusform>(%1 úlovky)</numerusform>
+ <numerusform>(%1 úlovků)</numerusform>
</translation>
</message>
<message numerus="yes">
<source><b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform><b>%1</b> si myslel, že je dobré střílet do vlastních ježků s <b>%2</b> bodem.</numerusform>
+ <numerusform><b>%1</b> si myslel, že je dobré střílet do vlastních ježků se <b>%2</b> body.</numerusform>
+ <numerusform><b>%1</b> si myslel, že je dobré střílet do vlastních ježků s <b>%2</b> body.</numerusform>
</translation>
</message>
<message numerus="yes">
<source><b>%1</b> killed <b>%2</b> of his own hedgehogs.</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform><b>%1</b> zabil <b>%2</b> vlastního ježka.</numerusform>
+ <numerusform><b>%1</b> zabil <b>%2</b> vlastní ježky.</numerusform>
+ <numerusform><b>%1</b> zabil <b>%2</b> vlastních ježků.</numerusform>
</translation>
</message>
<message numerus="yes">
<source><b>%1</b> was scared and skipped turn <b>%2</b> times.</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform><b>%1</b> byl vystrašený a přeskočil tah <b>%2</b> krát.</numerusform>
+ <numerusform><b>%1</b> byl vystrašený a přeskočil tah <b>%2</b> krát.</numerusform>
+ <numerusform><b>%1</b> byl vystrašený a přeskočil tah <b>%2</b> krát.</numerusform>
</translation>
</message>
</context>
@@ -432,247 +435,247 @@
<message>
<source>Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they'll win or lose together.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Jednoduše zvol stejnou barvu jako spoluhráč, abys hrál ve stejném týmu. Každý z vás bude mít kontrolu nad svými vlastními ježky, ale vyhraje nebo prohraje společně.</translation>
</message>
<message>
<source>Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Některé zbraně mohou způsobovat jen malé poškození, ale mohou být devastující v pravé chvíli. Zkus použít pistoli Desert Eagle ke sražení několika nepřátelských ježků do vody.</translation>
</message>
<message>
<source>If you're unsure what to do and don't want to waste ammo, skip one round. But don't let too much time pass as there will be Sudden Death!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Pokud si nejsi jistý, co dělat a nechceš plýtvat municí, přeskoč tah. Ale nenech uběhnout moc času, protože pak přijde Náhlá smrt!</translation>
</message>
<message>
<source>If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Pokud chceš zabránit ostatním, aby používali tvoji oblíbenou přezdívku na oficiálním serveru, zaregistruj se na http://www.hedgewars.org/.</translation>
</message>
<message>
<source>You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Jsi znuděn standardní hrou? Vyzkoušej některou misi - nabídnou jiný herní zážitek v závislosti na tom, kterou si vybereš.</translation>
</message>
<message>
<source>By default the game will always record the last game played as a demo. Select 'Local Game' and pick the 'Demos' button on the lower right corner to play or manage them.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Standardně hra vždycky nahrává poslední odehraný zápas jako ukázku. Vyber si 'Místní hru' a zvol tlačítko 'Ukázky' v pravém spodním rohu k jejich přehrávání a správě.</translation>
</message>
<message>
<source>Hedgewars is Open Source and Freeware we create in our spare time. If you've got problems, ask on our forums but please don't expect 24/7 support!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars je Open Source a Freeware, který jsme vytvořili v našem volném čase. Pokud máš problémy, zeptej se na našem fóru, ale neočekávej prosím nonstop podporu!</translation>
</message>
<message>
<source>Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars je Open Source a Freeware, který jsme vytvořili v našem volném čase. Pokud se ti líbí, pomož nám malým příspěvkem, nebo se podílej na práci!</translation>
</message>
<message>
<source>Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars je Open Source a Freeware, který jsme vytvořili v našem volném čase. Sdílej ho se svoji rodinou a přáteli dle libosti!</translation>
</message>
<message>
<source>From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Čas od času se konají oficiální turnaje. Nadcházející události budou publikovány na http://www.hedgewars.org/ s několika denním předstihem.</translation>
</message>
<message>
<source>Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars je k dispozici v mnoha jazycích. Pokud překlad do tvého jazyka vypadá zastaralý nebo chybí, neváhej nás kontaktovat!</translation>
</message>
<message>
<source>Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars může být spuštěno na mnoha různých operačních systémech včetně Microsoft Windows, Mac OS X a Linuxu.</translation>
</message>
<message>
<source>Always remember you're able to set up your own games in local and network/online play. You're not restricted to the 'Simple Game' option.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Vždycky si pamatuj, že můžeš vytvořit vlastní hru na místní síti i internetu. Nejsi odkázán jen na možnost 'Prostá hra'.</translation>
</message>
<message>
<source>While playing you should give yourself a short break at least once an hour.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Během hraní bys měl dělat krátké přestávky alespoň jednou za hodinu.</translation>
</message>
<message>
<source>If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Pokud tvoje grafická karta nepodporuje hardwarovou akceleraci OpenGL, zkus zapnout nízkou kvalitu pro zlepšení výkonu.</translation>
</message>
<message>
<source>We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Jsme otevřeni návrhům a konstruktivní kritice. Pokud se ti něco nelíbí, nebo máš skvělý nápad, dej nám vědět!</translation>
</message>
<message>
<source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Obzvláště při hře online buď slušný a vždy pamatuj na to, že s tebou nebo proti tobě může hrát někdo z nějaké menšiny!</translation>
</message>
<message>
<source>Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Speciální herní módy jako třeba 'Vampyrismus' nebo 'Karma' ti dovolují vymýšlet úplně jiné herní taktiky. Vyzkoušej je v nějaké hře!</translation>
</message>
<message>
<source>You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Nikdy bys neměl instalovat Hedgewars na počítači, který ti nepatří (škola, univerzita, práce a jiné). Prosím, zeptej se nejprve zodpovědné osoby!</translation>
</message>
<message>
<source>Hedgewars can be perfect for short games during breaks. Just ensure you don't add too many hedgehogs or use an huge map. Reducing time and health might help as well.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars mohou být perfektní pro krátkou hru během pauzy. Jen se ujisti, že jsi nepřidal příliš mnoho ježků nebo nezvolil velkou mapu. Zmenšit čas nebo zdraví také urychlí hru.</translation>
</message>
<message>
<source>No hedgehogs were harmed in making this game.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Žádný ježek nebyl zraněn během vytváření této hry.</translation>
</message>
<message>
<source>Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Hedgewars je Open Source a Freeware, který jsme vytvořili v našem volném čase. Pokud ti tuto hru někdo prodal, měl bys chtít vrátit peníze!</translation>
</message>
<message>
<source>Connect one or more gamepads before starting the game to be able to assign their controls to your teams.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Připojenim jednoho nebo více gamepadů před začátkem hry ti umožní nastavit je jako ovladač pro tvé týmy.</translation>
</message>
<message>
<source>Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Vytvoř si účet na %1, abys zabránil ostatním používat tvoji oblíbenou přezdívku na oficiálním serveru.</translation>
</message>
<message>
<source>If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Pokud tvoje grafická karta nepodporuje hardwarovou akceleraci OpenGL, zkus aktualizovat ovladače.</translation>
</message>
<message>
<source>There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">K dispozici jsou tři různé druhy skoků. Zmáčkni [Vysoký skok] dvakrát, abys udělal skok do větší výšky a dozadu.</translation>
</message>
<message>
<source>Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Bojíš se pádu z útesu? Stiskni [přesnost], aby ses otočil [vlevo], či [vpravo] bez jakéhokoliv pohybu.</translation>
</message>
<message>
<source>Some weapons require special strategies or just lots of training, so don't give up on a particular tool if you miss an enemy once.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Některé zbraně vyžadují speciální strategii, nebo jen spoustu cvičení. Nezavrhuj hned některou zbraň, pokud jednou mineš cíl.</translation>
</message>
<message>
<source>Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Většina zbraní nefunguje, jakmile se ponoří do vody. Naváděná včela nebo dort jsou vyjímka z tohoto pravidla.</translation>
</message>
<message>
<source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Olomoucké tvarůžky vybuchují jen málo, ale vítr ovlivňuje oblak smradu, který může nakazit mnoho ježků najednou.</translation>
</message>
<message>
<source>The Piano Strike is the most damaging air strike. You'll lose the hedgehog performing it, so there's a huge downside as well.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Útok pianem je nejničivější letecký útok. Na druhé straně ale ztratíš ježka, který tento útok vykoná.</translation>
</message>
<message>
<source>Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Přisavné miny jsou perfektní nástroj na vytváření malých řetězových reakcí, které mohou nepřátelské ježky dostat do divokých situací ... nebo vody.</translation>
</message>
<message>
<source>The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Kladivo je nejefektivnější při použitǐ na mostech a traverzách. Zasažený ježek prostě prorazí skrz zem.</translation>
</message>
<message>
<source>If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Pokud jsi zaseklý za nepřátelským ježkem, použij kladivo, aby ses osvobodil a nemusel riskovat zranění z exploze.</translation>
</message>
<message>
<source>The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Maximální vzdálenost, do které dort dojde, je ovlivněna terénem, kterým musí jít. Použij [útok] k dřívější explozi.</translation>
</message>
<message>
<source>The Flame Thrower is a weapon but it can be used for tunnel digging as well.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Plamenomet je zbraň, ale dá se použít i pro kopání tunelů.</translation>
</message>
<message>
<source>Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Chceš vědět, kdo stojí za touto hrou? Klikni na logo Hedgewars v hlavním menu a podívej se.</translation>
</message>
<message>
<source>Like Hedgewars? Become a fan on %1 or follow us on %2!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Líbí se ti Hedgewars? Staň se fanouškem na %1 nebo nás sleduj na %2!</translation>
</message>
<message>
<source>Feel free to draw your own graves, hats, flags or even maps and themes! But note that you'll have to share them somewhere to use them online.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Neboj se kreslit vlastní hroby, čepice, vlajky nebo mapy a témata! Ale pamatuj, že je musíš někde sdílet, abys je mohl používat online.</translation>
</message>
<message>
<source>Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Opravdu chceš nosit specifickou čepici? Daruj nám něco a dostaneš exklusivní čepici dle svého výběru!</translation>
</message>
<message>
<source>Keep your video card drivers up to date to avoid issues playing the game.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Udržuj ovladače grafické karty aktuální, aby ses vyhnul problémům při hře.</translation>
</message>
<message>
<source>You can find your Hedgewars configuration files under "My Documents\Hedgewars". Create backups or take the files with you, but don't edit them by hand.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Své nastavení Hedgewars najdeš v "Dokumenty\Hedgewars". Vytvoř si zálohu nebo si je přenášej s sebou, ale needituj je ručně.</translation>
</message>
<message>
<source>You're able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Můžeš si asociovat Hedgewars soubory (uložené hry a nahrávky) tak, abys je mohl ihned spouštět z internetového prohlížeče nebo prúzkumníka souborů.</translation>
</message>
<message>
<source>Want to save ropes? Release the rope in mid air and then shoot again. As long as you don't touch the ground you'll reuse your rope without wasting ammo!</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Chceš ušetřit lana? Uvolni ho ve vzduchu a vystřel znovu. Dokud se nedotkneš země, využíváš ho bez plýtvání munice!</translation>
</message>
<message>
<source>You can find your Hedgewars configuration files under "Library/Application Support/Hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Konfigurace Hedgewars je k nalezení ve tvém domovském adresáři pod "Library/Application Support/Hedgewars". Vytvoř si zálohu, přenášej ho s sebou, ale neměň ho ručně.</translation>
</message>
<message>
<source>You can find your Hedgewars configuration files under ".hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Konfigurace Hedgewars je k nalezení ve tvém domovském adresáři pod ".hedgewars". Vytvoř si zálohu, přenášej ho s sebou, ale neměň ho ručně.</translation>
</message>
<message>
<source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Windows verze Hedgewars podporuje Xfire. Přidej si Hedgewars do jeho seznamu her, abys viděl přátele, kteří ho hrají.</translation>
</message>
<message>
<source>The Homing Bee can be tricky to use. Its turn radius depends on it's velocity, so try to not use full power.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Naváděná včela může být obtížná na použití. Její poloměr otáčení je závislý na její rychlosti, zkus ji nepoužívat při plné síle.</translation>
</message>
<message>
<source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation>Použij Molotov nebo plamenomet, abys dočasně zamezil ježkům v přechodu terénu jako jsou tunely nebo plošiny.</translation>
</message>
</context>
<context>
@@ -704,11 +707,11 @@
<name>PageNetType</name>
<message>
<source>LAN game</source>
- <translation type="unfinished"></translation>
+ <translation>Hra po místní síti</translation>
</message>
<message>
<source>Official server</source>
- <translation type="unfinished"></translation>
+ <translation>Oficiální server</translation>
</message>
</context>
<context>
@@ -723,35 +726,35 @@
</message>
<message>
<source>Delete team</source>
- <translation type="unfinished"></translation>
+ <translation>Smazat tým</translation>
</message>
<message>
<source>You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.</source>
- <translation type="unfinished"></translation>
+ <translation>Nemůžeš upravovat týmy z výběru týmu. Vrať se do hlavní nabídky, kde můžeš přidávat, upravovat a mazat týmy.</translation>
</message>
<message>
<source>New scheme</source>
- <translation type="unfinished"></translation>
+ <translation>Nové schéma</translation>
</message>
<message>
<source>Edit scheme</source>
- <translation type="unfinished"></translation>
+ <translation>Upravit schéma</translation>
</message>
<message>
<source>Delete scheme</source>
- <translation type="unfinished"></translation>
+ <translation>Smazat schéma</translation>
</message>
<message>
<source>New weapon set</source>
- <translation type="unfinished"></translation>
+ <translation>Nový sada zbraní</translation>
</message>
<message>
<source>Edit weapon set</source>
- <translation type="unfinished"></translation>
+ <translation>Upravit sadu zbraní</translation>
</message>
<message>
<source>Delete weapon set</source>
- <translation type="unfinished"></translation>
+ <translation>Smazat sadu zbraní</translation>
</message>
</context>
<context>
@@ -793,7 +796,7 @@
</message>
<message>
<source>Join</source>
- <translation>Připojit</translation>
+ <translation>Připojit se</translation>
</message>
<message>
<source>Refresh</source>
@@ -809,56 +812,58 @@
</message>
<message>
<source>Admin features</source>
- <translation type="unfinished"></translation>
+ <translation>Možnosti správce</translation>
</message>
<message>
<source>Room Name:</source>
- <translation type="unfinished"></translation>
+ <translation>Jméno místnosti:</translation>
</message>
<message>
<source>This game is in lobby.
You may join and start playing once the game starts.</source>
- <translation type="unfinished"></translation>
+ <translation>Tato hra je v čekárně.
+Můžeš se přidat a začít hrát, jakmile hra začne.</translation>
</message>
<message>
<source>This game is in progress.
You may join and spectate now but you'll have to wait for the game to end to start playing.</source>
- <translation type="unfinished"></translation>
+ <translation>Tato hra právě probíhá.
+Můžeš se přidat a pozorovat, ale musíš počkat, než hra skončí, jestli chceš začít hrát.</translation>
</message>
<message>
<source>%1 is the host. He may adjust settings and start the game.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 je hostitel. On může nastavovat a odstartovat hru.</translation>
</message>
<message>
<source>Random Map</source>
- <translation type="unfinished"></translation>
+ <translation>Náhodná mapa</translation>
</message>
<message>
<source>Games may be played on precreated or randomized maps.</source>
- <translation type="unfinished"></translation>
+ <translation>Hra může být hrána na předem vytvořené nebo na náhodné mapě.</translation>
</message>
<message>
<source>The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.</source>
- <translation type="unfinished"></translation>
+ <translation>Herní schéma definuje obecné možnosti a nastavení jako třeba počet kol, náhlou smrt nebo vampyrismus.</translation>
</message>
<message>
<source>The Weapon Scheme defines available weapons and their ammunition count.</source>
- <translation type="unfinished"></translation>
+ <translation>Zbraňové schéma definuje zbraně, které budou k dispozici a jejich munici.</translation>
</message>
<message numerus="yes">
<source>There are %1 clients connected to this room.</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>V místnosti je %1 připojený klient.</numerusform>
+ <numerusform>V místnosti jsou %1 připojení klienti.</numerusform>
+ <numerusform>V místnosti je %1 připojených klientů.</numerusform>
</translation>
</message>
<message numerus="yes">
<source>There are %1 teams participating in this room.</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>V místnosti je %1 účastnící se tým.</numerusform>
+ <numerusform>V místnosti jsou %1 účastnící se týmy.</numerusform>
+ <numerusform>V místnosti je %1 účastnících se týmů.</numerusform>
</translation>
</message>
<message>
@@ -871,151 +876,152 @@
</message>
<message>
<source>Random Maze</source>
- <translation type="unfinished"></translation>
+ <translation>Náhodný labyrint</translation>
</message>
<message>
<source>State:</source>
- <translation type="unfinished"></translation>
+ <translation>Stav:</translation>
</message>
<message>
<source>Rules:</source>
- <translation type="unfinished"></translation>
+ <translation>Pravidla:</translation>
</message>
<message>
<source>Weapons:</source>
- <translation type="unfinished"></translation>
+ <translation>Zbraně:</translation>
</message>
<message>
<source>Search:</source>
- <translation type="unfinished"></translation>
+ <translation>Hledej:</translation>
</message>
<message>
<source>Clear</source>
- <translation type="unfinished"></translation>
+ <translation>Vyčisti</translation>
</message>
<message>
<source>Warning</source>
- <translation type="unfinished"></translation>
+ <translation>Pozor</translation>
</message>
<message>
<source>The game you are trying to join has started.
Do you still want to join the room?</source>
- <translation type="unfinished"></translation>
+ <translation>Hra, do které se snažíš připojit, začala.
+Ještě stále se chceš připojit do místosti?</translation>
</message>
</context>
<context>
<name>PageScheme</name>
<message>
<source>New</source>
- <translation type="unfinished"></translation>
+ <translation>Nové</translation>
</message>
<message>
<source>Delete</source>
- <translation type="unfinished">Smazat</translation>
+ <translation>Smazat</translation>
</message>
<message>
<source>Defend your fort and destroy the opponents, two team colours max!</source>
- <translation type="unfinished"></translation>
+ <translation>Braň svou pevnoust a znič protivníky, dvě barvy týmů maximálně!</translation>
</message>
<message>
<source>Teams will start on opposite sides of the terrain, two team colours max!</source>
- <translation type="unfinished"></translation>
+ <translation>Týmy startují na opačných stranách terénu, dvě barvy týmů maximálně!</translation>
</message>
<message>
<source>Land can not be destroyed!</source>
- <translation type="unfinished"></translation>
+ <translation>Krajina nejde zničit!</translation>
</message>
<message>
<source>Add an indestructable border around the terrain</source>
- <translation type="unfinished"></translation>
+ <translation>Přidá nezničitelnou hranici okolo terénu</translation>
</message>
<message>
<source>Lower gravity</source>
- <translation type="unfinished"></translation>
+ <translation>Nižší gravitace</translation>
</message>
<message>
<source>Assisted aiming with laser sight</source>
- <translation type="unfinished"></translation>
+ <translation>Podpora míření pomocí laserového mířidla</translation>
</message>
<message>
<source>All hogs have a personal forcefield</source>
- <translation type="unfinished"></translation>
+ <translation>Všichni ježci mají osobní silové pole</translation>
</message>
<message>
<source>Gain 80% of the damage you do back in health</source>
- <translation type="unfinished"></translation>
+ <translation>Získej zpět 80% z poškození, které učiníš</translation>
</message>
<message>
<source>Share your opponents pain, share their damage</source>
- <translation type="unfinished"></translation>
+ <translation>Sdílej protivníkovu bolest, sdílej jeho poškození</translation>
</message>
<message>
<source>Your hogs are unable to move, put your artillery skills to the test</source>
- <translation type="unfinished"></translation>
+ <translation>Tvoji ježci se nemohou hýbat, prozkoušej své dělostřelecké dovednosti</translation>
</message>
<message>
<source>Random</source>
- <translation type="unfinished"></translation>
+ <translation>Náhodné</translation>
</message>
<message>
<source>Seconds</source>
- <translation type="unfinished"></translation>
+ <translation>Vteřiny</translation>
</message>
<message>
<source>Order of play is random instead of in room order.</source>
- <translation type="unfinished"></translation>
+ <translation>Pořadí hraní je náhodné, nikoliv podle pořadí v místnosti.</translation>
</message>
<message>
<source>Play with a King. If he dies, your side dies.</source>
- <translation type="unfinished"></translation>
+ <translation>Hraj s králem. Pokud zemře on, tvoje strana zemře.</translation>
</message>
<message>
<source>Take turns placing your hedgehogs before the start of play.</source>
- <translation type="unfinished"></translation>
+ <translation>Získej tah na úmistění ježků před začátkem hry.</translation>
</message>
<message>
<source>Ammo is shared between all teams that share a colour.</source>
- <translation type="unfinished"></translation>
+ <translation>Munice je sdílená mezi týmy se stejnou barvou.</translation>
</message>
<message>
<source>Disable girders when generating random maps.</source>
- <translation type="unfinished"></translation>
+ <translation>Vypni traverzy při generování náhodné mapy.</translation>
</message>
<message>
<source>Disable land objects when generating random maps.</source>
- <translation type="unfinished"></translation>
+ <translation>Vypni teréní objekty při generování náhodné mapy.</translation>
</message>
<message>
<source>AI respawns on death.</source>
- <translation type="unfinished"></translation>
+ <translation>Počítač se po smrti obnoví.</translation>
</message>
<message>
<source>All (living) hedgehogs are fully restored at the end of turn</source>
- <translation type="unfinished"></translation>
+ <translation>Všichni (žijící) ježci jsou plně uzdraveni na konci tahu</translation>
</message>
<message>
<source>Attacking does not end your turn.</source>
- <translation type="unfinished"></translation>
+ <translation>Útočení neukončí tah.</translation>
</message>
<message>
<source>Weapons are reset to starting values each turn.</source>
- <translation type="unfinished"></translation>
+ <translation>Zbraně jsou obnoveny na startovní hodnoty každý tah.</translation>
</message>
<message>
<source>Each hedgehog has its own ammo. It does not share with the team.</source>
- <translation type="unfinished"></translation>
+ <translation>Každý ježek má svou vlastní munici. Nesdílí ji s týmem.</translation>
</message>
<message>
<source>You will not have to worry about wind anymore.</source>
- <translation type="unfinished"></translation>
+ <translation>Nemusíš se už starat o vítr.</translation>
</message>
<message>
<source>Wind will affect almost everything.</source>
- <translation type="unfinished"></translation>
+ <translation>Vítr bude ovlivňovat téměř všechno.</translation>
</message>
<message>
<source>Copy</source>
- <translation type="unfinished"></translation>
+ <translation>Kopie</translation>
</message>
</context>
<context>
@@ -1030,26 +1036,26 @@
</message>
<message>
<source>New</source>
- <translation type="unfinished"></translation>
+ <translation>Nová</translation>
</message>
<message>
<source>Copy</source>
- <translation type="unfinished"></translation>
+ <translation>Kopie</translation>
</message>
</context>
<context>
<name>PageSinglePlayer</name>
<message>
<source>Simple Game (a quick game against the computer, settings are chosen for you)</source>
- <translation>Hra jednoho hráče (rychlá hra proti počítači, nastavení si volíte sami)</translation>
+ <translation>Prostá hra (rychlá hra proti počítači, nastavení je zvoleno)</translation>
</message>
<message>
<source>Multiplayer (play a hotseat game against your friends, or AI teams)</source>
- <translation>Hra více hráčů (hrát na jednom počítači proti vašim přátelům nebo AI týmům)</translation>
+ <translation>Hra více hráčů (hrát na jednom počítači proti přátelům nebo počítači)</translation>
</message>
<message>
<source>Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT</source>
- <translation>Tréningový mód (Procvičte si vaše schopnosti v řadě tréningových misí). VE VÝVOJI</translation>
+ <translation>Výcvikový mód (Procvič si schopnosti v řadě tréningových misí). VE VÝVOJI</translation>
</message>
<message>
<source>Demos (Watch recorded demos)</source>
@@ -1061,7 +1067,7 @@
</message>
<message>
<source>Campaign Mode (...). IN DEVELOPMENT</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Mód tažení (...). VE VÝVOJI</translation>
</message>
</context>
<context>
@@ -1088,42 +1094,42 @@
</message>
<message>
<source>Ban</source>
- <translation type="unfinished"></translation>
+ <translation>Zákaz</translation>
</message>
<message>
<source>Follow</source>
- <translation type="unfinished"></translation>
+ <translation>Sledovat</translation>
</message>
<message>
<source>Ignore</source>
- <translation type="unfinished"></translation>
+ <translation>Ignorovat</translation>
</message>
<message>
<source>Add friend</source>
- <translation type="unfinished"></translation>
+ <translation>Přidat přítele</translation>
</message>
<message>
<source>Unignore</source>
- <translation type="unfinished"></translation>
+ <translation>Přestat ignorovat</translation>
</message>
<message>
<source>Remove friend</source>
- <translation type="unfinished"></translation>
+ <translation>Odstranit přítele</translation>
</message>
</context>
<context>
<name>QCheckBox</name>
<message>
<source>Check for updates at startup</source>
- <translation type="unfinished"></translation>
+ <translation>Zkontrolovat při startu novou verzi</translation>
</message>
<message>
<source>Fullscreen</source>
- <translation>Celoobrazovkový režim</translation>
+ <translation>Celá obrazovka</translation>
</message>
<message>
<source>Frontend fullscreen</source>
- <translation>Celoobrazovkový režim v menu</translation>
+ <translation>Celá obrazovka v menu</translation>
</message>
<message>
<source>Enable sound</source>
@@ -1143,23 +1149,23 @@
</message>
<message>
<source>Append date and time to record file name</source>
- <translation>Připojit datim a čas k jménu záznamu</translation>
+ <translation>Připojit datum a čas k jménu záznamu</translation>
</message>
<message>
<source>Show ammo menu tooltips</source>
- <translation type="unfinished"></translation>
+ <translation>Ukazovat tipy ke zbraním</translation>
</message>
<message>
<source>Enable frontend sounds</source>
- <translation type="unfinished"></translation>
+ <translation>Zapnout zvuky v menu</translation>
</message>
<message>
<source>Enable frontend music</source>
- <translation type="unfinished"></translation>
+ <translation>Zapnout hudbu v menu</translation>
</message>
<message>
<source>Frontend effects</source>
- <translation type="unfinished"></translation>
+ <translation>Efekty v menu</translation>
</message>
</context>
<context>
@@ -1178,31 +1184,31 @@
</message>
<message>
<source>(System default)</source>
- <translation type="unfinished"></translation>
+ <translation>(Podle systému)</translation>
</message>
<message>
<source>generated maze...</source>
- <translation type="unfinished"></translation>
+ <translation>generovaný labyrint...</translation>
</message>
<message>
<source>Mission</source>
- <translation type="unfinished"></translation>
+ <translation>Mise</translation>
</message>
<message>
<source>Community</source>
- <translation type="unfinished"></translation>
+ <translation>Komunita</translation>
</message>
<message>
<source>Any</source>
- <translation type="unfinished"></translation>
+ <translation>Jakékoliv</translation>
</message>
<message>
<source>In lobby</source>
- <translation type="unfinished"></translation>
+ <translation>V čekárně</translation>
</message>
<message>
<source>In progress</source>
- <translation type="unfinished"></translation>
+ <translation>Probíhá</translation>
</message>
<message>
<source>Default</source>
@@ -1210,54 +1216,54 @@
</message>
<message>
<source>hand drawn map...</source>
- <translation type="unfinished"></translation>
+ <translation>ručně kreslená mapa...</translation>
</message>
<message>
<source>Disabled</source>
- <translation type="unfinished"></translation>
+ <translation>Vypnuto</translation>
</message>
<message>
<source>Red/Cyan</source>
- <translation type="unfinished"></translation>
+ <translation>Červená/Azurová</translation>
</message>
<message>
<source>Cyan/Red</source>
- <translation type="unfinished"></translation>
+ <translation>Azurová/Červená</translation>
</message>
<message>
<source>Red/Blue</source>
- <translation type="unfinished"></translation>
+ <translation>Červená/Modrá</translation>
</message>
<message>
<source>Blue/Red</source>
- <translation type="unfinished"></translation>
+ <translation>Modrá/Červená</translation>
</message>
<message>
<source>Red/Green</source>
- <translation type="unfinished"></translation>
+ <translation>Červená/Zelená</translation>
</message>
<message>
<source>Green/Red</source>
- <translation type="unfinished"></translation>
+ <translation>Zelená/Červená</translation>
</message>
<message>
<source>Side-by-side</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Bok-po-boku</translation>
</message>
<message>
<source>Top-Bottom</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Shora-Dolu</translation>
</message>
<message>
<source>Wiggle</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Kývat se</translation>
</message>
</context>
<context>
<name>QGroupBox</name>
<message>
<source>Team Members</source>
- <translation>Týmoví členové</translation>
+ <translation>Členové týmu</translation>
</message>
<message>
<source>Fort</source>
@@ -1289,23 +1295,23 @@
</message>
<message>
<source>Game Modifiers</source>
- <translation type="unfinished"></translation>
+ <translation>Herní modifikátory</translation>
</message>
<message>
<source>Basic Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Základní nastavení</translation>
</message>
<message>
<source>Team Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Týmová nastavení</translation>
</message>
<message>
<source>Misc</source>
- <translation type="unfinished"></translation>
+ <translation>Ostatní</translation>
</message>
<message>
<source>Schemes and Weapons</source>
- <translation type="unfinished"></translation>
+ <translation>Schémata a zbraně</translation>
</message>
</context>
<context>
@@ -1376,115 +1382,115 @@
</message>
<message>
<source>Damage Modifier</source>
- <translation type="unfinished"></translation>
+ <translation>Modifikátor poškození</translation>
</message>
<message>
<source>Turn Time</source>
- <translation type="unfinished"></translation>
+ <translation>Čas tahu</translation>
</message>
<message>
<source>Initial Health</source>
- <translation type="unfinished"></translation>
+ <translation>Počáteční zdraví</translation>
</message>
<message>
<source>Sudden Death Timeout</source>
- <translation type="unfinished"></translation>
+ <translation>Čas do náhlé smrti</translation>
</message>
<message>
<source>Mines Time</source>
- <translation type="unfinished"></translation>
+ <translation>Časovač min</translation>
</message>
<message>
<source>Mines</source>
- <translation type="unfinished"></translation>
+ <translation>Počet min</translation>
</message>
<message>
<source>Scheme Name:</source>
- <translation type="unfinished"></translation>
+ <translation>Jméno schématu:</translation>
</message>
<message>
<source>Crate Drops</source>
- <translation type="unfinished"></translation>
+ <translation>Shazování beden</translation>
</message>
<message>
<source>Game scheme</source>
- <translation type="unfinished"></translation>
+ <translation>Herní schéma</translation>
</message>
<message>
<source>% Dud Mines</source>
- <translation type="unfinished"></translation>
+ <translation>% falešných min</translation>
</message>
<message>
<source>Name</source>
- <translation type="unfinished"></translation>
+ <translation>Jméno</translation>
</message>
<message>
<source>Type</source>
- <translation type="unfinished"></translation>
+ <translation>Typ</translation>
</message>
<message>
<source>Grave</source>
- <translation type="unfinished"></translation>
+ <translation>Hrob</translation>
</message>
<message>
<source>Flag</source>
- <translation type="unfinished"></translation>
+ <translation>Vlajka</translation>
</message>
<message>
<source>Voice</source>
- <translation type="unfinished"></translation>
+ <translation>Hlas</translation>
</message>
<message>
<source>Locale</source>
- <translation type="unfinished"></translation>
+ <translation>Jazyk</translation>
</message>
<message>
<source>Restart game to apply</source>
- <translation type="unfinished"></translation>
+ <translation>Aby se nastavení použilo, restartuj hru</translation>
</message>
<message>
<source>Explosives</source>
- <translation type="unfinished"></translation>
+ <translation>Výbušniny</translation>
</message>
<message>
<source>Tip: </source>
- <translation type="unfinished"></translation>
+ <translation>Tip: </translation>
</message>
<message>
<source>This development build is 'work in progress' and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk!</source>
- <translation type="unfinished"></translation>
+ <translation>Tato vývojová verze je 'v průběhu práce' a může být kompatibilní s jinými verzemi hry. Některé možnosti mohou být rozbité nebo nekompletní. Používej na vlastní riziko!</translation>
</message>
<message>
<source>Quality</source>
- <translation type="unfinished"></translation>
+ <translation>Kvalita</translation>
</message>
<message>
<source>% Health Crates</source>
- <translation type="unfinished"></translation>
+ <translation>% zdravotních beden</translation>
</message>
<message>
<source>Health in Crates</source>
- <translation type="unfinished"></translation>
+ <translation>Zdraví v bedně</translation>
</message>
<message>
<source>Sudden Death Water Rise</source>
- <translation type="unfinished"></translation>
+ <translation>Zvyšování hladiny</translation>
</message>
<message>
<source>Sudden Death Health Decrease</source>
- <translation type="unfinished"></translation>
+ <translation>Snižování života</translation>
</message>
<message>
<source>% Rope Length</source>
- <translation type="unfinished"></translation>
+ <translation>% délky lana</translation>
</message>
<message>
<source>Gameplay</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Hra</translation>
</message>
<message>
<source>Stereo rendering</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Duální vykreslování</translation>
</message>
</context>
<context>
@@ -1541,39 +1547,39 @@
</message>
<message>
<source>Can not overwrite default weapon set '%1'!</source>
- <translation type="unfinished"></translation>
+ <translation>Nemohu přepsat výchozí sadu zbraní '%1'!</translation>
</message>
<message>
<source>All file associations have been set.</source>
- <translation type="unfinished"></translation>
+ <translation>Všechny asociace souborů byly nastaveny.</translation>
</message>
<message>
<source>File association failed.</source>
- <translation type="unfinished"></translation>
+ <translation>Asociace souborů selhala.</translation>
</message>
<message>
<source>Teams</source>
- <translation type="unfinished">Týmy</translation>
+ <translation>Týmy</translation>
</message>
<message>
<source>Really delete this team?</source>
- <translation type="unfinished"></translation>
+ <translation>Opravdu smazat tento tým?</translation>
</message>
<message>
<source>Schemes</source>
- <translation type="unfinished"></translation>
+ <translation>Schémata</translation>
</message>
<message>
<source>Can not delete default scheme '%1'!</source>
- <translation type="unfinished"></translation>
+ <translation>Nemohu smazat výchozí schéma '%1'!</translation>
</message>
<message>
<source>Really delete this game scheme?</source>
- <translation type="unfinished"></translation>
+ <translation>Opravdu smazat toto herní schéma?</translation>
</message>
<message>
<source>Can not delete default weapon set '%1'!</source>
- <translation type="unfinished"></translation>
+ <translation>Nemohu smazat výchozí sadu zbraní '%1'!</translation>
</message>
</context>
<context>
@@ -1592,11 +1598,11 @@
</message>
<message>
<source>Nickname</source>
- <translation type="unfinished"></translation>
+ <translation>Přezdívka</translation>
</message>
<message>
<source>Please enter your nickname</source>
- <translation type="unfinished"></translation>
+ <translation>Prosím zadej svou přezdívku</translation>
</message>
</context>
<context>
@@ -1615,7 +1621,7 @@
</message>
<message>
<source>Start server</source>
- <translation>Spusti server</translation>
+ <translation>Spusť server</translation>
</message>
<message>
<source>Connect</source>
@@ -1663,73 +1669,73 @@
</message>
<message>
<source>Random Team</source>
- <translation type="unfinished"></translation>
+ <translation>Náhodný tým</translation>
</message>
<message>
<source>Associate file extensions</source>
- <translation type="unfinished"></translation>
+ <translation>Asociovat přípony souborů</translation>
</message>
<message>
<source>more</source>
- <translation type="unfinished"></translation>
+ <translation>více</translation>
</message>
</context>
<context>
<name>QTableWidget</name>
<message>
<source>Room Name</source>
- <translation type="unfinished"></translation>
+ <translation>Jméno místnosti</translation>
</message>
<message>
<source>C</source>
- <translation type="unfinished"></translation>
+ <translation>K</translation>
</message>
<message>
<source>T</source>
- <translation type="unfinished"></translation>
+ <translation>T</translation>
</message>
<message>
<source>Owner</source>
- <translation type="unfinished"></translation>
+ <translation>Vlastník</translation>
</message>
<message>
<source>Map</source>
- <translation type="unfinished">Mapa</translation>
+ <translation>Mapa</translation>
</message>
<message>
<source>Rules</source>
- <translation type="unfinished"></translation>
+ <translation>Pravidla</translation>
</message>
<message>
<source>Weapons</source>
- <translation type="unfinished">Zbraně</translation>
+ <translation>Zbraně</translation>
</message>
</context>
<context>
<name>SelWeaponWidget</name>
<message>
<source>Weapon set</source>
- <translation type="unfinished"></translation>
+ <translation>Sada zbraní</translation>
</message>
<message>
<source>Probabilities</source>
- <translation type="unfinished"></translation>
+ <translation>Pravděpodobnosti</translation>
</message>
<message>
<source>Ammo in boxes</source>
- <translation type="unfinished"></translation>
+ <translation>Munice v bednách</translation>
</message>
<message>
<source>Delays</source>
- <translation type="unfinished"></translation>
+ <translation>Prodlevy</translation>
</message>
<message>
<source>new</source>
- <translation type="unfinished">nový</translation>
+ <translation>nový</translation>
</message>
<message>
<source>copy of</source>
- <translation type="unfinished"></translation>
+ <translation>kopie</translation>
</message>
</context>
<context>
@@ -1751,95 +1757,95 @@
<name>ToggleButtonWidget</name>
<message>
<source>Vampirism</source>
- <translation type="unfinished"></translation>
+ <translation>Vampyrismus</translation>
</message>
<message>
<source>Karma</source>
- <translation type="unfinished"></translation>
+ <translation>Karma</translation>
</message>
<message>
<source>Artillery</source>
- <translation type="unfinished"></translation>
+ <translation>Dělostřelectvo</translation>
</message>
<message>
<source>Fort Mode</source>
- <translation type="unfinished"></translation>
+ <translation>Pevnosti</translation>
</message>
<message>
<source>Divide Teams</source>
- <translation type="unfinished"></translation>
+ <translation>Rozděl týmy</translation>
</message>
<message>
<source>Solid Land</source>
- <translation type="unfinished"></translation>
+ <translation>Pevná zem</translation>
</message>
<message>
<source>Add Border</source>
- <translation type="unfinished"></translation>
+ <translation>Přidej hranice</translation>
</message>
<message>
<source>Low Gravity</source>
- <translation type="unfinished"></translation>
+ <translation>Nízká gravitace</translation>
</message>
<message>
<source>Laser Sight</source>
- <translation type="unfinished"></translation>
+ <translation>Laserové zaměřování</translation>
</message>
<message>
<source>Invulnerable</source>
- <translation type="unfinished"></translation>
+ <translation>Nesmrtelnost</translation>
</message>
<message>
<source>Random Order</source>
- <translation type="unfinished"></translation>
+ <translation>Náhodné pořadí</translation>
</message>
<message>
<source>King</source>
- <translation type="unfinished"></translation>
+ <translation>Král</translation>
</message>
<message>
<source>Place Hedgehogs</source>
- <translation type="unfinished"></translation>
+ <translation>Umísti ježky</translation>
</message>
<message>
<source>Clan Shares Ammo</source>
- <translation type="unfinished"></translation>
+ <translation>Klan sdílí munici</translation>
</message>
<message>
<source>Disable Girders</source>
- <translation type="unfinished"></translation>
+ <translation>Vypni traverzy</translation>
</message>
<message>
<source>Disable Land Objects</source>
- <translation type="unfinished"></translation>
+ <translation>Vypni teréní objekty</translation>
</message>
<message>
<source>AI Survival Mode</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Mód 'Počítač přežívá'</translation>
</message>
<message>
<source>Reset Health</source>
- <translation type="unfinished"></translation>
+ <translation>Obnova zdraví</translation>
</message>
<message>
<source>Unlimited Attacks</source>
- <translation type="unfinished"></translation>
+ <translation>Neomezeně útoků</translation>
</message>
<message>
<source>Reset Weapons</source>
- <translation type="unfinished"></translation>
+ <translation>Obnova zbraní</translation>
</message>
<message>
<source>Per Hedgehog Ammo</source>
- <translation type="unfinished"></translation>
+ <translation>Individuální munice</translation>
</message>
<message>
<source>Disable Wind</source>
- <translation type="unfinished"></translation>
+ <translation>Vypni vítr</translation>
</message>
<message>
<source>More Wind</source>
- <translation type="unfinished"></translation>
+ <translation>Více větru</translation>
</message>
</context>
<context>
@@ -1882,7 +1888,7 @@
</message>
<message>
<source>ammo menu</source>
- <translation>menu střeliva</translation>
+ <translation>menu zbraní</translation>
</message>
<message>
<source>slot 1</source>
@@ -1922,23 +1928,23 @@
</message>
<message>
<source>timer 1 sec</source>
- <translation>časovač 1 sec</translation>
+ <translation>časovač 1 vt</translation>
</message>
<message>
<source>timer 2 sec</source>
- <translation>časovač 2 sec</translation>
+ <translation>časovač 2 vt</translation>
</message>
<message>
<source>timer 3 sec</source>
- <translation>časovač 3 sec</translation>
+ <translation>časovač 3 vt</translation>
</message>
<message>
<source>timer 4 sec</source>
- <translation>časovač 4 sec</translation>
+ <translation>časovač 4 vt</translation>
</message>
<message>
<source>timer 5 sec</source>
- <translation>časovač 5 sec</translation>
+ <translation>časovač 5 vt</translation>
</message>
<message>
<source>chat</source>
@@ -1954,7 +1960,7 @@
</message>
<message>
<source>confirmation</source>
- <translation>natavení</translation>
+ <translation>potvrzení</translation>
</message>
<message>
<source>volume down</source>
@@ -1970,7 +1976,7 @@
</message>
<message>
<source>capture</source>
- <translation>zajmout</translation>
+ <translation>sejmout</translation>
</message>
<message>
<source>hedgehogs
@@ -1983,148 +1989,148 @@
</message>
<message>
<source>zoom in</source>
- <translation type="unfinished"></translation>
+ <translation>přiblížit</translation>
</message>
<message>
<source>zoom out</source>
- <translation type="unfinished"></translation>
+ <translation>oddálit</translation>
</message>
<message>
<source>reset zoom</source>
- <translation type="unfinished"></translation>
+ <translation>obnovit přiblížení</translation>
</message>
<message>
<source>long jump</source>
- <translation type="unfinished"></translation>
+ <translation>dlouhý skok</translation>
</message>
<message>
<source>high jump</source>
- <translation type="unfinished"></translation>
+ <translation>vysoký skok</translation>
</message>
<message>
<source>slot 10</source>
- <translation type="unfinished">pozice 10</translation>
+ <translation>pozice 10</translation>
</message>
</context>
<context>
<name>binds (categories)</name>
<message>
<source>Basic controls</source>
- <translation type="unfinished"></translation>
+ <translation>Základní ovládání</translation>
</message>
<message>
<source>Weapon controls</source>
- <translation type="unfinished"></translation>
+ <translation>Ovládání zbraní</translation>
</message>
<message>
<source>Camera and cursor controls</source>
- <translation type="unfinished"></translation>
+ <translation>Ovládání kamery a kurzoru</translation>
</message>
<message>
<source>Other</source>
- <translation type="unfinished">Ostatní</translation>
+ <translation>Ostatní</translation>
</message>
</context>
<context>
<name>binds (descriptions)</name>
<message>
<source>Move your hogs and aim:</source>
- <translation type="unfinished"></translation>
+ <translation>Pohybuj ježkem a miř:</translation>
</message>
<message>
<source>Traverse gaps and obstacles by jumping:</source>
- <translation type="unfinished"></translation>
+ <translation>Překonej mezery a překážky skokem:</translation>
</message>
<message>
<source>Fire your selected weapon or trigger an utility item:</source>
- <translation type="unfinished"></translation>
+ <translation>Odpal zvolenou zbraň nebo použij nástroj:</translation>
</message>
<message>
<source>Pick a weapon or a target location under the cursor:</source>
- <translation type="unfinished"></translation>
+ <translation>Vyber zbraň nebo cílové místo pod kurzorem:</translation>
</message>
<message>
<source>Switch your currently active hog (if possible):</source>
- <translation type="unfinished"></translation>
+ <translation>Přepni aktivního ježka (pokud je to možné):</translation>
</message>
<message>
<source>Pick a weapon or utility item:</source>
- <translation type="unfinished"></translation>
+ <translation>Vyber zbraň nebo nástroj:</translation>
</message>
<message>
<source>Set the timer on bombs and timed weapons:</source>
- <translation type="unfinished"></translation>
+ <translation>Nastav časovač bomby nebo časované zbraně:</translation>
</message>
<message>
<source>Move the camera to the active hog:</source>
- <translation type="unfinished"></translation>
+ <translation>Pohni kamerou na aktivního ježka:</translation>
</message>
<message>
<source>Move the cursor or camera without using the mouse:</source>
- <translation type="unfinished"></translation>
+ <translation>Pohni kurzorem nebo kamerou bez použití myši:</translation>
</message>
<message>
<source>Modify the camera's zoom level:</source>
- <translation type="unfinished"></translation>
+ <translation>Změň přiblížení kamery:</translation>
</message>
<message>
<source>Talk to your team or all participants:</source>
- <translation type="unfinished"></translation>
+ <translation>Mluv ke svému týmu nebo všem účastníkům:</translation>
</message>
<message>
<source>Pause, continue or leave your game:</source>
- <translation type="unfinished"></translation>
+ <translation>Pozastav, pokračuj nebo opusť hru:</translation>
</message>
<message>
<source>Modify the game's volume while playing:</source>
- <translation type="unfinished"></translation>
+ <translation>Zmeň hlasitost hry během hraní:</translation>
</message>
<message>
<source>Toggle fullscreen mode:</source>
- <translation type="unfinished"></translation>
+ <translation>Přepni mód celé obrazovky:</translation>
</message>
<message>
<source>Take a screenshot:</source>
- <translation type="unfinished"></translation>
+ <translation>Vyfoť obrazovku:</translation>
</message>
<message>
<source>Toggle labels above hedgehogs:</source>
- <translation type="unfinished"></translation>
+ <translation>Přepni popisky nad ježky:</translation>
</message>
</context>
<context>
<name>binds (keys)</name>
<message>
<source>Axis</source>
- <translation type="unfinished"></translation>
+ <translation>Osa</translation>
</message>
<message>
<source>(Up)</source>
- <translation type="unfinished"></translation>
+ <translation>(Nahoru)</translation>
</message>
<message>
<source>(Down)</source>
- <translation type="unfinished"></translation>
+ <translation>(Dolů)</translation>
</message>
<message>
<source>Hat</source>
- <translation type="unfinished"></translation>
+ <translation>Klobouček</translation>
</message>
<message>
<source>(Left)</source>
- <translation type="unfinished"></translation>
+ <translation>(Vlevo)</translation>
</message>
<message>
<source>(Right)</source>
- <translation type="unfinished"></translation>
+ <translation>(Vpravo)</translation>
</message>
<message>
<source>Button</source>
- <translation type="unfinished"></translation>
+ <translation>Tlačítko</translation>
</message>
<message>
<source>Keyboard</source>
- <translation type="unfinished"></translation>
+ <translation>Klávesnice</translation>
</message>
<message>
<source>Delete</source>
@@ -2132,199 +2138,199 @@
</message>
<message>
<source>Mouse: Left button</source>
- <translation type="unfinished"></translation>
+ <translation>Myš: Levé tlačítko</translation>
</message>
<message>
<source>Mouse: Middle button</source>
- <translation type="unfinished"></translation>
+ <translation>Myš: Prostřední tlačítko</translation>
</message>
<message>
<source>Mouse: Right button</source>
- <translation type="unfinished"></translation>
+ <translation>Myš: Pravé tlačítko</translation>
</message>
<message>
<source>Mouse: Wheel up</source>
- <translation type="unfinished"></translation>
+ <translation>Myš: Kolečko nahoru</translation>
</message>
<message>
<source>Mouse: Wheel down</source>
- <translation type="unfinished"></translation>
+ <translation>Myš: Kolečko dolů</translation>
</message>
<message>
<source>Backspace</source>
- <translation type="unfinished"></translation>
+ <translation>Backspace</translation>
</message>
<message>
<source>Tab</source>
- <translation type="unfinished"></translation>
+ <translation>Tabulátor</translation>
</message>
<message>
<source>Clear</source>
- <translation type="unfinished"></translation>
+ <translation>Vymazat</translation>
</message>
<message>
<source>Return</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Návrat</translation>
</message>
<message>
<source>Pause</source>
- <translation type="unfinished"></translation>
+ <translation>Pauza</translation>
</message>
<message>
<source>Escape</source>
- <translation type="unfinished"></translation>
+ <translation>Escape</translation>
</message>
<message>
<source>Space</source>
- <translation type="unfinished"></translation>
+ <translation>Mezerník</translation>
</message>
<message>
<source>Numpad 0</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad 0</translation>
</message>
<message>
<source>Numpad 1</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad 1</translation>
</message>
<message>
<source>Numpad 2</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad 2</translation>
</message>
<message>
<source>Numpad 3</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad 3</translation>
</message>
<message>
<source>Numpad 4</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad 4</translation>
</message>
<message>
<source>Numpad 5</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad 5</translation>
</message>
<message>
<source>Numpad 6</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad 6</translation>
</message>
<message>
<source>Numpad 7</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad 7</translation>
</message>
<message>
<source>Numpad 8</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad 8</translation>
</message>
<message>
<source>Numpad 9</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad 9</translation>
</message>
<message>
<source>Numpad .</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad .</translation>
</message>
<message>
<source>Numpad /</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad /</translation>
</message>
<message>
<source>Numpad *</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad *</translation>
</message>
<message>
<source>Numpad -</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad -</translation>
</message>
<message>
<source>Numpad +</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Numpad +</translation>
</message>
<message>
<source>Enter</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Enter</translation>
</message>
<message>
<source>Equals</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Rovná se</translation>
</message>
<message>
<source>Up</source>
- <translation type="unfinished"></translation>
+ <translation>Nahoru</translation>
</message>
<message>
<source>Down</source>
- <translation type="unfinished"></translation>
+ <translation>Dolu</translation>
</message>
<message>
<source>Right</source>
- <translation type="unfinished"></translation>
+ <translation>Vpravo</translation>
</message>
<message>
<source>Left</source>
- <translation type="unfinished"></translation>
+ <translation>Vlevo</translation>
</message>
<message>
<source>Insert</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Insert</translation>
</message>
<message>
<source>Home</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Home</translation>
</message>
<message>
<source>End</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">End</translation>
</message>
<message>
<source>Page up</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Page up</translation>
</message>
<message>
<source>Page down</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Page down</translation>
</message>
<message>
<source>Num lock</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Num lock</translation>
</message>
<message>
<source>Caps lock</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Caps lock</translation>
</message>
<message>
<source>Scroll lock</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Scroll lock</translation>
</message>
<message>
<source>Right shift</source>
- <translation type="unfinished"></translation>
+ <translation>Pravý shift</translation>
</message>
<message>
<source>Left shift</source>
- <translation type="unfinished"></translation>
+ <translation>Levý shift</translation>
</message>
<message>
<source>Right ctrl</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Pravý ctrl</translation>
</message>
<message>
<source>Left ctrl</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Levý ctrl</translation>
</message>
<message>
<source>Right alt</source>
- <translation type="unfinished"></translation>
+ <translation>Pravý alt</translation>
</message>
<message>
<source>Left alt</source>
- <translation type="unfinished"></translation>
+ <translation>Levý alt</translation>
</message>
<message>
<source>Right meta</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Pravá meta</translation>
</message>
<message>
<source>Left meta</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Levá meta</translation>
</message>
<message>
<source>A button</source>
--- a/share/hedgewars/Data/Locale/hedgewars_fr.ts Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_fr.ts Thu Aug 04 17:44:55 2011 +0200
@@ -46,7 +46,7 @@
</message>
<message>
<source>When this option is enabled selecting a game scheme will auto-select a weapon</source>
- <translation>Quand cette option est active choisir des paramètres de jeu sélectionnera les armes</translation>
+ <translation>Une fois cette option activée, choisir les paramètres de jeu sélectionne automatiquement les armes correspondantes</translation>
</message>
</context>
<context>
@@ -421,7 +421,7 @@
<message numerus="yes">
<source>(%1 kill)</source>
<translation type="unfinished">
- <numerusform>(%1 Tue)</numerusform>
+ <numerusform>(%1 tue)</numerusform>
<numerusform></numerusform>
</translation>
</message>
@@ -540,7 +540,7 @@
<message>
<source>Especially while playing online be polite and always remember there might be some minors playing with or against you as well!</source>
<comment>Tips</comment>
- <translation>Particulièrement quand vous jouez en ligne soyez polis et pensez que certains joueurs avec vous peuvent être mineurs.</translation>
+ <translation>Particulièrement quand vous jouez en ligne soyez polis et n'oubliez pas que certains joueurs peuvent être mineurs.</translation>
</message>
<message>
<source>Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!</source>
@@ -610,12 +610,12 @@
<message>
<source>The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.</source>
<comment>Tips</comment>
- <translation type="unfinished">Le Old Limbuger cause seulement une petite explosion. En revanche le vent affecte le petit nuage empoisonné qui peut contaminer de nombreux hérissons à la fois.</translation>
+ <translation type="unfinished">Le vieux Limburger cause seulement une petite explosion. En revanche le vent affecte le petit nuage empoisonné qui peut contaminer de nombreux hérissons à la fois.</translation>
</message>
<message>
<source>The Piano Strike is the most damaging air strike. You'll lose the hedgehog performing it, so there's a huge downside as well.</source>
<comment>Tips</comment>
- <translation type="unfinished">L'attaque du Piano est la plus dévastatrice des attaques aériennes. Vous perdrez le hérisson qui la lance, donc il y a une contrepartie énorme.</translation>
+ <translation type="unfinished">L'attaque du Piano est la plus dévastatrice des attaques aériennes. Mais la contrepartie est grande puisque vous perdrez le hérisson qui la lance.</translation>
</message>
<message>
<source>The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power.</source>
@@ -705,17 +705,17 @@
<message>
<source>The Windows version of Hedgewars supports Xfire. Make sure to add Hedgewars to its game list so your friends can see you playing.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">La version Windows de Hedgewars supporte Xfire. Ajoutez Hedgewars à la liste des jeux pour que vos amis puissent vous voir jouer</translation>
</message>
<message>
<source>The Homing Bee can be tricky to use. Its turn radius depends on it's velocity, so try to not use full power.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">L'Abeille Missile peut être délicate à utiliser. Sa courbe de lancer dépend de sa vitesse, pour plus de précision ne l'envoyez pas à pleine puissance. </translation>
</message>
<message>
<source>Use the Molotov or Flame Thrower to temporary keep hedgehogs from passing terrain such as tunnels or platforms.</source>
<comment>Tips</comment>
- <translation type="unfinished"></translation>
+ <translation type="unfinished"> Utilisez le Lance-Flammes ou le Cocktail Molotov pour empêcher temporairement les hérissons de circuler dans les tunnels ou sur les plateformes.</translation>
</message>
</context>
<context>
@@ -1030,7 +1030,7 @@
</message>
<message>
<source>Disable land objects when generating random maps.</source>
- <translation type="unfinished">Désactiver les objets de terrain en générant des cartes aléatoires.</translation>
+ <translation type="unfinished">Désactiver les objets de terrain lorsque des cartes aléatoires sont générées.</translation>
</message>
<message>
<source>AI respawns on death.</source>
@@ -1198,7 +1198,7 @@
</message>
<message>
<source>Show ammo menu tooltips</source>
- <translation type="unfinished">Montrer le menu d'aide des munitions.</translation>
+ <translation type="unfinished">Montrer les astuces du menu des armes.</translation>
</message>
<message>
<source>Enable frontend sounds</source>
@@ -1245,11 +1245,11 @@
</message>
<message>
<source>Any</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Aucun</translation>
</message>
<message>
<source>In lobby</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">En attente</translation>
</message>
<message>
<source>In progress</source>
@@ -1269,27 +1269,27 @@
</message>
<message>
<source>Red/Cyan</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Rouge/Cyan</translation>
</message>
<message>
<source>Cyan/Red</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Cyan/Rouge</translation>
</message>
<message>
<source>Red/Blue</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Rouge/Bleu</translation>
</message>
<message>
<source>Blue/Red</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Bleu/Rouge</translation>
</message>
<message>
<source>Red/Green</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Rouge/Vert</translation>
</message>
<message>
<source>Green/Red</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Vert/Rouge</translation>
</message>
<message>
<source>Side-by-side</source>
@@ -1531,11 +1531,11 @@
</message>
<message>
<source>Gameplay</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Mode de jeu</translation>
</message>
<message>
<source>Stereo rendering</source>
- <translation type="unfinished"></translation>
+ <translation type="unfinished">Rendu stéréo</translation>
</message>
</context>
<context>
--- a/share/hedgewars/Data/Locale/sk.txt Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Locale/sk.txt Thu Aug 04 17:44:55 2011 +0200
@@ -55,6 +55,7 @@
00:52=Žiadna zbraň nie je vybraná
00:53=TARDIS
00:54=Budova
+00:55=Postrek zeme
01:00=Do boja!
01:01=Remíza
@@ -71,6 +72,12 @@
01:12=Posledné kolo pred Rýchlou smrťou!
01:13=Ešte %1 kolá do Rýchlej smrti!
01:14=Priprav sa, %1!
+01:15=Nepatrný
+01:16=Nízky
+01:17=Normálny
+01:18=Vysoký
+01:19=Extrémny
+01:20=%1 odskok
; Správy o udalostiach
; Ježko (%1) zomrel
@@ -99,6 +106,7 @@
02:00=%1 odišiel za lepším
02:00=%1 už nespotrebováva pamäť tohto počítača
02:00=%1 odišiel a už sa nevrátil
+02:00=Je tu niekde doktor?
; Ježko (%1) sa utopil
02:01=%1 sa hrá na ponorku!
02:01=%1 napodobnil Titanik!
@@ -132,6 +140,10 @@
02:02=Dajme im na frak!
02:02=Nikdy sa nevzdávaj
02:02=Bojuj čestne!
+; Kolo končí (výhra, momentálne nepoužívané)
+02:03=...
+; Kolo končí (remíza, momentálne nepoužívané)
+02:04=...
; Nová krabica so zdravím
02:05=Doktora!
02:05=Prvá pomoc z nebies!
@@ -191,7 +203,7 @@
02:09=Išlo o jasné zlyhanie techniky!
; Hog shot an home run (using the bat and another hog)
02:10=Home Run!
-02:10=Vták, lietadlo, ...
+02:10=Letí, letí, všetko letí...
02:10=A je z kola von!
; Ježko (%1) musí odísť (team skončil)
@@ -331,3 +343,4 @@
05:18=Neobmedzené útoky
05:19=Zbrane sú na konci ťahu resetované
05:20=Zbrane nie sú zdieľané ježkami
+05:21=Tag tím: Teamy v spoločnom klane sa postupne striedajú v ťahaní|Zdieľaný čas: Tímy v rámci klanu zdieľajú čas na ťah
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Bamboo_Thicket.lua Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,87 @@
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+local player = nil
+local enemy = nil
+local firedShell = false
+local turnNumber = 0
+
+local hhs = {}
+local numhhs = 0
+
+function onGameInit()
+
+ Seed = 0
+ TurnTime = 20000
+ CaseFreq = 0
+ MinesNum = 0
+ Explosives = 0
+ Map = "Bamboo"
+ Theme = "Bamboo"
+
+ AddTeam(loc("Pathetic Resistance"), 14483456, "Simple", "Island", "Default")
+ player = AddHog("Ikeda", 0, 10, "StrawHat")
+
+ AddTeam(loc("Cybernetic Empire"), 1175851, "Simple", "Island", "Default")
+ enemy = AddHog(loc("Unit 835"), 1, 10, "cyborg")
+
+ SetGearPosition(player,1166,1680)
+ SetGearPosition(enemy,2848,1443)
+
+end
+
+
+function onGameStart()
+
+ ShowMission(loc("Bamboo Thicket"), loc("User Challenge"), loc("Eliminate the enemy before the time runs out"), -amBazooka, 0)
+
+ --WEAPON CRATE LIST. WCRATES: 1
+ SpawnAmmoCrate(1915,1876,amBazooka)
+ --UTILITY CRATE LIST. UCRATES: 2
+ SpawnUtilityCrate(1986,1141,amBlowTorch)
+ SpawnUtilityCrate(1427,1527,amParachute)
+
+ AddAmmo(enemy, amGrenade, 100)
+
+end
+
+function onNewTurn()
+ SetWind(100)
+ turnNumber = turnNumber + 1
+end
+
+function onAmmoStoreInit()
+ SetAmmo(amSkip, 9, 0, 0, 0)
+ SetAmmo(amGirder, 4, 0, 0, 0)
+ SetAmmo(amBlowTorch, 0, 0, 0, 1)
+ SetAmmo(amParachute, 0, 0, 0, 2)
+ SetAmmo(amBazooka, 0, 0, 0, 2)
+end
+
+
+function onGearAdd(gear)
+
+ if GetGearType(gear) == gtHedgehog then
+ hhs[numhhs] = gear
+ numhhs = numhhs + 1
+ elseif GetGearType(gear) == gtShell then
+ firedShell = true
+ end
+
+end
+
+function onGearDelete(gear)
+
+ if (gear == enemy) then
+
+ ShowMission(loc("Bamboo Thicket"), loc("MISSION SUCCESSFUL"), loc("Congratulations!"), 0, 0)
+
+ if (turnNumber < 6) and (firedShell == false) then
+ AddCaption(loc("Achievement Unlocked") .. ": " .. loc("Energetic Engineer"),0xffba00ff,capgrpMessage2)
+ end
+
+ elseif gear == player then
+ ShowMission(loc("Bamboo Thicket"), loc("MISSION FAILED"), loc("Oh no! Just try again!"), -amSkip, 0)
+ end
+
+end
--- a/share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua Thu Aug 04 17:44:55 2011 +0200
@@ -1,5 +1,5 @@
----------------------------------
--- THE SPECIALISTS MODE 0.4
+-- THE SPECIALISTS MODE 0.5
-- by mikade
----------------------------------
@@ -29,15 +29,22 @@
-- fix potential switch explit
-- improve user feedback on start
+----------------
+-- version 0.5
+----------------
+-- provision for variable minetimer / demo mines set to 5000ms
+-- don't autoswitch if player only has 1 hog on his team
+
--------------------
--TO DO
--------------------
--- add proper gameflag checking, maybe
--- set crate drops etc.
--- add alternative switch
+-- balance hog health, maybe
+-- add proper gameflag checking, maybe (so that we can throw in a .cfg and let the users break everything)
+-- set crate drops etc. (super crate for each class? or will this ruin the mode's simplicity?)
loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+loadfile(GetDataPath() .. "Scripts/Tracker.lua")()
local numhhs = 0
local hhs = {}
@@ -47,6 +54,12 @@
local started = false
local switchStage = 0
+local hogCounter
+
+function CountHog(gear)
+ hogCounter = hogCounter +1
+end
+
function CreateTeam()
currTeam = ""
@@ -222,6 +235,8 @@
"", 4, 4000
)
+ trackTeams()
+
end
@@ -229,14 +244,8 @@
currName = GetHogName(CurrentHedgehog)
lastName = GetHogName(CurrentHedgehog)
AssignAmmo()
-
- ---------------
- --switch
- started = false
+ started = true
switchStage = 0
- --AddAmmo(CurrentHedgehog, amSwitch, 1)
- ---------------
-
end
function onGameTick()
@@ -254,19 +263,30 @@
AddCaption(loc("Prepare yourself") .. ", " .. currName .. "!")
- switchStage = switchStage + 1
+ hogCounter = 0
+ runOnHogsInTeam(CountHog, GetHogTeamName(CurrentHedgehog) )
+
+ if hogCounter > 1 then
+
+ switchStage = switchStage + 1
- if switchStage == 1 then
- AddAmmo(CurrentHedgehog, amSwitch, 1)
+ if switchStage == 1 then
+ AddAmmo(CurrentHedgehog, amSwitch, 1)
- elseif switchStage == 2 then
- ParseCommand("setweap " .. string.char(amSwitch))
- elseif switchStage == 3 then
- SetGearMessage(CurrentHedgehog,gmAttack)
- elseif switchStage == 4 then
+ elseif switchStage == 2 then
+ ParseCommand("setweap " .. string.char(amSwitch))
+ elseif switchStage == 3 then
+ SetGearMessage(CurrentHedgehog,gmAttack)
+ elseif switchStage == 4 then
+ switchStage = 110
+ AddAmmo(CurrentHedgehog, amSwitch, 0)
+ end
+
+ else
switchStage = 110
- AddAmmo(CurrentHedgehog, amSwitch, 0)
end
+
+
end
lastName = currName
@@ -280,12 +300,21 @@
if GetGearType(gear) == gtHedgehog then
hhs[numhhs] = gear
numhhs = numhhs + 1
- end
+ elseif (GetGearType(gear) == gtMine) and (started == true) then
+ SetTimer(gear,5000)
+ end
+
+ if (GetGearType(gear) == gtHedgehog) or (GetGearType(gear) == gtResurrector) then
+ trackGear(gear)
+ end
+
end
function onGearDelete(gear)
---
+ if (GetGearType(gear) == gtHedgehog) or (GetGearType(gear) == gtResurrector) then
+ trackDeletion(gear)
+ end
end
function onAmmoStoreInit()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Balanced Random Weapon.plist Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>command</key>
+ <string>escript Scripts/Multiplayer/Balanced_Random_Weapon.lua</string>
+ <key>description</key>
+ <string></string>
+ <key>scheme</key>
+ <string>Default.plist</string>
+ <key>weapon</key>
+ <string></string>
+</dict>
+</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Capture the Flag.plist Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>command</key>
+ <string>escript Scripts/Multiplayer/Capture_the_Flag.lua</string>
+ <key>description</key>
+ <string></string>
+ <key>scheme</key>
+ <string>Default.plist</string>
+ <key>weapon</key>
+ <string>Default.plist</string>
+</dict>
+</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Gaudy Racer.plist Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>command</key>
+ <string>escript Scripts/Multiplayer/GaudyRacer.lua</string>
+ <key>description</key>
+ <string></string>
+ <key>scheme</key>
+ <string>Default.plist</string>
+ <key>weapon</key>
+ <string>Default.plist</string>
+</dict>
+</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/No Jumping.plist Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>command</key>
+ <string>escript Scripts/Multiplayer/No_Jumping.lua</string>
+ <key>description</key>
+ <string></string>
+ <key>scheme</key>
+ <string>Default.plist</string>
+ <key>weapon</key>
+ <string>Default.plist</string>
+</dict>
+</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Normal.plist Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>command</key>
+ <string></string>
+ <key>description</key>
+ <string></string>
+ <key>scheme</key>
+ <string>Default.plist</string>
+ <key>weapon</key>
+ <string>Default.plist</string>
+</dict>
+</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Random Weapon.plist Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>command</key>
+ <string>escript Scripts/Multiplayer/Balanced_Random_Weapon.lua</string>
+ <key>description</key>
+ <string></string>
+ <key>scheme</key>
+ <string>Default.plist</string>
+ <key>weapon</key>
+ <string></string>
+</dict>
+</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Space Invasion.plist Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>command</key>
+ <string>escript Scripts/Multiplayer/Space_Invasion.lua</string>
+ <key>description</key>
+ <string></string>
+ <key>scheme</key>
+ <string>Default.plist</string>
+ <key>weapon</key>
+ <string>Default.plist</string>
+</dict>
+</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/The Specialists.plist Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>command</key>
+ <string>escript Scripts/Multiplayer/The_Specialists.lua</string>
+ <key>description</key>
+ <string></string>
+ <key>scheme</key>
+ <string></string>
+ <key>weapon</key>
+ <string></string>
+</dict>
+</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/plist/Tumbler.plist Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>command</key>
+ <string>escript Scripts/Multiplayer/Tumbler.lua</string>
+ <key>description</key>
+ <string></string>
+ <key>scheme</key>
+ <string>Default.plist</string>
+ <key>weapon</key>
+ <string>Default.plist</string>
+</dict>
+</plist>
Binary file share/hedgewars/Data/Themes/Golf/Ball.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Border.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Car.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Chunk.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Clouds.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Club.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Flag1.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Flag2.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Flake.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Girder.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Hole.png has changed
Binary file share/hedgewars/Data/Themes/Golf/LandBackTex.png has changed
Binary file share/hedgewars/Data/Themes/Golf/LandTex.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Sky.png has changed
Binary file share/hedgewars/Data/Themes/Golf/SkyL.png has changed
Binary file share/hedgewars/Data/Themes/Golf/SkyR.png has changed
Binary file share/hedgewars/Data/Themes/Golf/Tee.png has changed
Binary file share/hedgewars/Data/Themes/Golf/horizont.png has changed
Binary file share/hedgewars/Data/Themes/Golf/icon.png has changed
Binary file share/hedgewars/Data/Themes/Golf/icon@2x.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Golf/theme.cfg Thu Aug 04 17:44:55 2011 +0200
@@ -0,0 +1,15 @@
+sky = 117, 141, 186
+border = 38, 114, 35
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = nature.ogg
+clouds = 9
+object = Ball, 3, 0, 18, 24, 6, 1, 0, 0, 24, 13
+object = Tee, 1, 6, 22, 5, 4, 1, 0, 0, 16, 20
+object = Car, 1, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = Hole, 5, 0, 44, 100, 4, 1, 19, 0, 54, 41
+object = Flag1, 1, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = Flag2, 1, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = Club, 2, 162, 254, 21, 6, 1, 0, 0, 240, 245
+flakes = 100, 1, 1000, 50, 50
Binary file share/hedgewars/Data/Themes/Underwater/SDFlake.png has changed
--- a/share/hedgewars/Data/Themes/Underwater/theme.cfg Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/Themes/Underwater/theme.cfg Thu Aug 04 17:44:55 2011 +0200
@@ -11,5 +11,5 @@
object = coral, 3, 10, 193, 38, 32, 2, 128, 66, 66, 94, 39, 0, 88, 167
object = coral2, 3, 119, 146, 23, 22, 1, 5, 0, 123, 130
flakes = 20, 20, 150, 0, 5
-sd-flakes = 20, 20, 150, 0, 5
+sd-flakes = 5, 16, 150, 0, 1
rq-sky = 0, 70, 210
--- a/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml Thu Aug 04 17:44:55 2011 +0200
@@ -15,6 +15,7 @@
<comment xml:lang="pl">Demo gry Hedgewars</comment>
<comment xml:lang="pt">Hedgewars Demo</comment>
<comment xml:lang="sk">Demo hry Hedgewars</comment>
+ <comment xml:lang="cs">Ukázka hry Hedgewars</comment>
<comment xml:lang="sv">Demo för Hedgewars</comment>
<magic priority="50">
<match required="yes" type="byte" offset="0" value="2"/>
@@ -34,6 +35,7 @@
<comment xml:lang="pl">Zapis gry Hedgewars</comment>
<comment xml:lang="pt">Partida guardada de Hedgewars</comment>
<comment xml:lang="sk">Uložená hra Hedgewars</comment>
+ <comment xml:lang="cs">Uložená hra Hedgewars</comment>
<comment xml:lang="sv">Sparfil för Hedgewars</comment>
<magic priority="50">
<match required="yes" type="byte" offset="0" value="2"/>
--- a/share/hedgewars/Data/misc/hwengine.desktop.in Thu Aug 04 17:41:07 2011 +0200
+++ b/share/hedgewars/Data/misc/hwengine.desktop.in Thu Aug 04 17:44:55 2011 +0200
@@ -13,6 +13,7 @@
GenericName[pt]=Motor de jogo Hedgewars, para reprodução de jogos guardados e demos
GenericName[ru]=Движок Hedgewars для проигрывания сохранённых игр и демок
GenericName[sk]=Engine hry Hedgewars, pre prehrávanie uložených hier a demo súborov
+GenericName[cs]=Engine hry Hedgewars pro přehrávání uložených her a ukázkových souborů
GenericName[sv]=Hedgewarsmotorn, för att öppna demo- och sparfiler
Icon=hedgewars.png
Exec=${CMAKE_INSTALL_PREFIX}/bin/hwengine ${HEDGEWARS_DATADIR}/hedgewars/Data %f