# HG changeset patch
# User koda
# Date 1289821059 -3600
# Node ID 19cbea33e4d2dd673b15266999cf965aece4fd2a
# Parent 45b63c2a694f0fbfd51836b6a6db0282657d721d# Parent 46b8791e577f04110fa516e5987caf1afa0ade4e
update the 3d branch after release
diff -r 45b63c2a694f -r 19cbea33e4d2 CMakeLists.txt
--- a/CMakeLists.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -7,7 +7,7 @@
cmake_policy(SET CMP0012 NEW)
ENDIF()
-#detect subversion revision (if present)
+#detect Mercurial revision (if present)
set(version_suffix "-dev") #UNSET THIS VARIABLE AT RELEASE TIME
IF(version_suffix MATCHES "-dev")
set(HW_DEV true)
@@ -35,7 +35,7 @@
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "9")
-set(CPACK_PACKAGE_VERSION_PATCH "14${version_suffix}")
+set(CPACK_PACKAGE_VERSION_PATCH "15${version_suffix}")
#forbid in-tree building
#IF (${CMAKE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR})
@@ -150,10 +150,6 @@
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
set(pascal_compiler_flags_cmn "-B" "-FE../bin" "-Cs2000000" "-vewn" ${pascal_compiler_flags_cmn})
-if(LOWRES)
- set(pascal_compiler_flags_cmn "-dLOWRES" ${pascal_compiler_flags_cmn})
- add_definitions(-DLOWRES)
-endif(LOWRES)
if(Optz)
# set(pascal_compiler_flags_cmn "-O3" "-OpPENTIUM4" "-CfSSE3" "-Xs" "-Si" ${pascal_compiler_flags_cmn})
@@ -173,7 +169,7 @@
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 32)
+set(HEDGEWARS_PROTO_VER 34)
if(WITH_SERVER)
message(STATUS "Server is going to be built! Make sure you have GHC installed")
@@ -218,6 +214,7 @@
set(CPACK_SOURCE_IGNORE_FILES
"~"
+ "\\\\.hg"
"\\\\.svn"
"\\\\.exe$"
"\\\\.a$"
@@ -233,7 +230,11 @@
"\\\\.tmp$"
"\\\\.core$"
"\\\\.sh$"
+ "\\\\.sifz$"
+ "\\\\.svg$"
+ "\\\\.svgz$"
"\\\\.ppu$"
+ "\\\\.psd$"
"\\\\.o$"
"Makefile"
"Doxyfile"
@@ -246,7 +247,10 @@
"hwconsts.cpp$"
"playlist.inc$"
"CPack"
-# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libopenalbridge"
+ "cmake_install.cmake$"
+ "config.inc$"
+ "hwengine.desktop$"
+# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libopenalbridge"
"^${CMAKE_CURRENT_SOURCE_DIR}/project_files/HedgewarsMobile/"
"^${CMAKE_CURRENT_SOURCE_DIR}/bin/[a-z]"
"^${CMAKE_CURRENT_SOURCE_DIR}/tools/templates"
diff -r 45b63c2a694f -r 19cbea33e4d2 CREDITS
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CREDITS Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,51 @@
+EXTENDED CREDITS LIST
+
+==========
+= FONTS
+==========
+- see Fonts_LICENSE.txt
+
+==========
+= HATS
+==========
+- Robinator -> Terminator (2010)
+- shingo666 -> Samus (2010)
+- MeinCookie95 -> InfernalHorns (2010)
+- MeinCookie95 -> Mummy (2010)
+- thuban -> Elvis (2010)
+- Miphica -> Disguise (2010)
+- Blayde -> Deer (2010), Moose (2010)
+- hillis -> AkuAku (2010)
+- Lortinak -> OldMan (2010), ShortHair (2010)
+- chujoii -> BrainSlug (2010), Dragon (2010), Ladle (2010), Laminaria (2010), Pantsu (2010), Pig (2010), Plunger (2010), SauceBoat (2010), ShaggyYeti (2010), SleepWalker (2010), SunWukong (2010), Teapot (2010), Teacup (2010), Zombi (2010)
+
+==========
+= MAPS
+==========
+- John Dum -> Bath (2008), Hedgelove (2008), Hedgewars (2008), Hydrant (2008), mushrooms (2008), Plane (2008)
+- Joshua Frese -> Bamboo (2008), EarthRise (2008), Freeway (2008), BambooPlinko (2008)
+- Stanko Tadić -> Castle (2008), PirateFlag (2008)
+- dctPL -> Sticks (2010)
+- wolfmark & Dragonfly -> TrophyRace (2010), ShoppaKing (2010)
+
+==========
+= MUSIC
+==========
+- John Dum -> Nature theme
+- Jonatan Nilsson -> Pirate theme, City theme, Oriental theme, Snow theme
+
+==========
+= THEMES
+==========
+- John Dum -> Nature (2008), Snow (2008), City
+- Joshua Frese -> Bamboo (2008), EarthRise (2008), Freeway (2008), BambooPlinko (2008)
+- Stanko Tadić -> Hell (2008)
+- Julien Koesten -> Sheep (2008)
+- KoRn666 - Jungle (2010)
+
+==========
+= VOICES
+==========
+- Stephen Alexander
+
+ALL OTHER CONTENT IS PROPERTY OF Andrey Korotaev UNLESS OTHERWISE SPECIFIED
\ No newline at end of file
diff -r 45b63c2a694f -r 19cbea33e4d2 ChangeLog.txt
--- a/ChangeLog.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/ChangeLog.txt Mon Nov 15 12:37:39 2010 +0100
@@ -1,6 +1,44 @@
+ features
* bugfixes
+0.9.13 -> 0.9.14:
+ + New audio tracks
+ + New forts: EvilChicken, Tank
+ + New game modes: AI Survival Mode, Per Hedgehog Ammo, Reset Health, Reset Weapons, Unlimited Attacks
+ + New grave: ring
+ + Over 30 new hats
+ + New themes: Art, Brick, Jungle, Stage
+ + New maps: ShoppaKing, Sticks, TrophyRace (Mission)
+ + New utilities: Portal Gun, Resurrector
+ + New weapons: Flamethrower, Hammer, Old Limburger, Piano Strike, Sticky Mines
+ + Weapons' projectiles will now be launched from their barrels instead of the hog's center
+ + Flying Saucers may be used for moving below the water surface
+ + New default game schemes: Clean Slate, Fort Mode, Timeless, Thinking with Portals, King Mode
+ + New default weapon set: Clean Slate, Thinking with Portals
+ + Bomb clusters/Melon parts inherit some of the original bomb's speed
+ + Extended game statistics
+ + Improved health bar updating
+ + Hogs that blow themselves up will use triggers in their team color
+ + Settings allow better control over the level of details/effects
+ + Improved Lua support
+ + On empty ammo switch to no weapon rather than the first available one (to avoid shooting by accident)
+ + Display of hints in the frontend
+ + Some improvements of existing Themes of Maps
+ + Land destruction effects added
+ + Improved fire effects
+ + Improved Melon explosion effects
+ + Online game lobby now features game filters
+ + Other Frontend enhancements
+ + Additional sounds
+ + Show special game rules in Esc screen
+ + Updated translation
+ + Speed optimizations
+ + Hedgewars will now use a sub directory of "My Documents" like other games instead of "%userprofile%/.hedgewars" under Windows
+ + Added support for graphics cards/drivers that have a 512x512 pixel textures limit
+ + Team colors are more distinguishable from each other now
+ * Fixed bug that allowed charging a weapon while on rope, leading to frozen timer
+ * Various bug fixes
+
0.9.12 -> 0.9.13:
+ Speed optimizations
+ New weapon: Birdy (carries your hog and lets you throw poisonous eggs at your foes)
@@ -221,7 +259,7 @@
+ New animations, weapon sprites
+ New themes 'Snow' and 'Nature'
+ Many new sounds
- + Hedgehog somersaults like in worms
+ + Hedgehog backjump
+ Automated parachute
+ Hedgehog can jump even when someone is on its head
* Improve and bugfix statistics
diff -r 45b63c2a694f -r 19cbea33e4d2 INSTALL
--- a/INSTALL Wed Oct 27 14:23:47 2010 +0200
+++ b/INSTALL Mon Nov 15 12:37:39 2010 +0100
@@ -23,7 +23,7 @@
$ cmake -DCMAKE_BUILD_TYPE="Release" -DBUNDLE=1 .
-if you have QT installed but it is not found you can set it up with -DQT_QMAKE_EXECUTABLE="path_to_qmake"
+if you have Qt installed but it is not found you can set it up with -DQT_QMAKE_EXECUTABLE="path_to_qmake"
2. Compile:
$ make
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/CMakeLists.txt
--- a/QTfrontend/CMakeLists.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -1,5 +1,5 @@
# Configure for Qt4
-set(QT_MIN_VERSION "4.4.0")
+set(QT_MIN_VERSION "4.5.0")
set(QT_USE_QTCORE TRUE)
set(QT_USE_QTGUI TRUE)
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/about.cpp
--- a/QTfrontend/about.cpp Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/about.cpp Mon Nov 15 12:37:39 2010 +0100
@@ -74,15 +74,16 @@
"Frontend improvements: Martin Minarik <ttsmj@pokec.sk > "
"Frontend improvements: Kristian Lehmann <email@thexception.net > "
"Mac OS X/iPhone port, OpenGL-ES conversion: Vittorio Giovara <vittorio.giovara@gmail.com > "
- "Gamepad and Lua integration, misc effects: Mario Liebisch <mario.liebisch@gmail.com > "
+ "Gamepad and Lua integration: Mario Liebisch <mario.liebisch@gmail.com > "
"Many engine improvements and graphics: Carlos Vives <mail@carlosvives.es > "
"Few engine and frontend improvements: Richard Karolyi <sheepluva@ercatec.net > "
- "Maze maps: Henning Kühn <prg@cooco.de >"
+ "Maze maps: Henning Kühn <prg@cooco.de > "
+ "Engine and frontend improvements: Henrik Rostedt <henrik.rostedt@gmail.com > "
"
" +
QLabel::tr("Art:") + " "
+ QString::fromUtf8(
- "Finn Brice <tiyuri@gmail.com >"
+ "
John Dum <fizzy@gmail.com >"
" "
"Joshua Frese <joshfrese@gmail.com >"
" "
@@ -99,7 +100,7 @@
QLabel::tr("Sounds:") + ""
"Hedgehogs voice: Stephen Alexander <ArmagonNo1@gmail.com >"
" "
- "Finn Brice <tiyuri@gmail.com >"
+ "John Dum <fizzy@gmail.com >"
" "
"Jonatan Nilsson <jonatanfan@gmail.com >"
" "
@@ -123,14 +124,14 @@
"Russian: Andrey Korotaev <unC0Rr@gmail.com > "
"Slovak: Jose Riha "
"Spanish: Carlos Vives <mail@carlosvives.es > "
- "Swedish: Niklas Grahn <raewolusjoon@yaoo.com > "
+ "Swedish: Niklas Grahn <raewolusjoon@yaoo.com >, Henrik Rostedt <henrik.rostedt@gmail.com > "
"Ukrainian: Eugene V. Lyubimkin <jackyf.devel@gmail.com >"
"
") +
QLabel::tr("Special thanks:") + " "
"Aleksey Andreev <blaknayabr@gmail.com > "
"Aleksander Rudalev <alexv@pomorsu.ru > "
- "Natasha Stafeeva <layout@pisem.net > "
+ "Natasha Korotaeva <layout@pisem.net > "
"Adam Higerd (aka ahigerd at FreeNode)"
"
"
);
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/ammoSchemeModel.cpp
--- a/QTfrontend/ammoSchemeModel.cpp Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/ammoSchemeModel.cpp Mon Nov 15 12:37:39 2010 +0100
@@ -31,7 +31,7 @@
<< QVariant(false) // low gravity 5
<< QVariant(false) // laser sight 6
<< QVariant(false) // invulnerable 7
- << QVariant(true) // add mines 8
+ << QVariant(false) // reset health 8
<< QVariant(false) // vampiric 9
<< QVariant(false) // karma 10
<< QVariant(false) // artillery 11
@@ -39,36 +39,46 @@
<< QVariant(false) // king 13
<< QVariant(false) // place hog 14
<< QVariant(false) // shared ammo 15
- << QVariant(false) //disable girders 16
+ << QVariant(false) // disable girders 16
<< QVariant(false) // disable land objects 17
<< QVariant(false) // AI survival 18
<< QVariant(false) // inf. attack 19
<< QVariant(false) // reset weps 20
<< QVariant(false) // per hog ammo 21
- << QVariant(100) // damage modfier 22
- << QVariant(45) // turn time 23
- << QVariant(100) // init health 24
- << QVariant(15) // sudden death 25
- << QVariant(5) // case prob 26
- << QVariant(3) // mines time 27
- << QVariant(4) // landadds 28
- << QVariant(0) // mine dud pct 29
- << QVariant(2) // explosives 30
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(100) // damage modfier 24
+ << QVariant(45) // turn time 25
+ << QVariant(100) // init health 26
+ << QVariant(15) // sudden death 27
+ << QVariant(5) // case prob 28
+ << QVariant(3) // mines time 29
+ << QVariant(4) // mines number 30
+ << QVariant(0) // mine dud pct 31
+ << QVariant(2) // explosives 32
+ << QVariant(35) // health case pct 33
+ << QVariant(25) // health case amt 34
+ << QVariant(47) // water rise amt 35
+ << QVariant(5) // health dec amt 36
;
AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) :
QAbstractTableModel(parent),
fileConfig(fileName, QSettings::IniFormat)
{
- QStringList predefSchemesNames;
- predefSchemesNames
+ predefSchemesNames = QStringList()
<< "Default"
<< "Pro Mode"
<< "Shoppa"
- << "Basketball"
+ << "Clean Slate"
<< "Minefield"
<< "Barrel Mayhem"
- << "Tunnel Hogs";
+ << "Tunnel Hogs"
+ << "Fort Mode"
+ << "Timeless"
+ << "Thinking with Portals"
+ << "King Mode"
+ ;
numberOfDefaultSchemes = predefSchemesNames.size();
@@ -81,7 +91,7 @@
<< "lowgrav" // 5
<< "laser" // 6
<< "invulnerability" // 7
- << "mines" // 8
+ << "resethealth" // 8
<< "vampiric" // 9
<< "karma" // 10
<< "artillery" // 11
@@ -95,15 +105,21 @@
<< "infattack" // 19
<< "resetweps" // 20
<< "perhogammo" // 21
- << "damagefactor" // 22
- << "turntime" // 23
- << "health" // 24
- << "suddendeath" // 25
- << "caseprobability" // 26
- << "minestime" // 27
- << "landadds" // 28
- << "minedudpct" // 29
- << "explosives" // 30
+ << "disablewind" // 22
+ << "morewind" // 23
+ << "damagefactor" // 24
+ << "turntime" // 25
+ << "health" // 26
+ << "suddendeath" // 27
+ << "caseprobability" // 28
+ << "minestime" // 29
+ << "minesnum" // 30
+ << "minedudpct" // 31
+ << "explosives" // 32
+ << "healthprobability" // 33
+ << "healthcaseamount" // 34
+ << "waterrise" // 35
+ << "healthdecrease" // 36
;
QList proMode;
@@ -116,7 +132,7 @@
<< QVariant(false) // low gravity 5
<< QVariant(false) // laser sight 6
<< QVariant(false) // invulnerable 7
- << QVariant(false) // add mines 8
+ << QVariant(false) // reset health 8
<< QVariant(false) // vampiric 9
<< QVariant(false) // karma 10
<< QVariant(false) // artillery 11
@@ -124,21 +140,27 @@
<< QVariant(false) // king 13
<< QVariant(false) // place hog 14
<< QVariant(true) // shared ammo 15
- << QVariant(false) //disable girders 16
+ << QVariant(false) // disable girders 16
<< QVariant(false) // disable land objects 17
<< QVariant(false) // AI survival 18
<< QVariant(false) // inf. attack 19
<< QVariant(false) // reset weps 20
<< QVariant(false) // per hog ammo 21
- << QVariant(100) // damage modfier 22
- << QVariant(15) // turn time 23
- << QVariant(100) // init health 24
- << QVariant(15) // sudden death 25
- << QVariant(0) // case prob 26
- << QVariant(3) // mines time 27
- << QVariant(4) // landadds 28
- << QVariant(0) // mine dud pct 29
- << QVariant(2) // explosives 30
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(100) // damage modfier 24
+ << QVariant(15) // turn time 25
+ << QVariant(100) // init health 26
+ << QVariant(15) // sudden death 27
+ << QVariant(0) // case prob 28
+ << QVariant(3) // mines time 29
+ << QVariant(0) // mines number 30
+ << QVariant(0) // mine dud pct 31
+ << QVariant(2) // explosives 32
+ << QVariant(35) // health case pct 33
+ << QVariant(25) // health case amt 34
+ << QVariant(47) // water rise amt 35
+ << QVariant(5) // health dec amt 36
;
QList shoppa;
@@ -151,7 +173,7 @@
<< QVariant(false) // low gravity 5
<< QVariant(false) // laser sight 6
<< QVariant(false) // invulnerable 7
- << QVariant(false) // add mines 8
+ << QVariant(false) // reset health 8
<< QVariant(false) // vampiric 9
<< QVariant(false) // karma 10
<< QVariant(false) // artillery 11
@@ -159,56 +181,68 @@
<< QVariant(false) // king 13
<< QVariant(false) // place hog 14
<< QVariant(true) // shared ammo 15
- << QVariant(true) //disable girders 16
+ << QVariant(true) // disable girders 16
<< QVariant(false) // disable land objects 17
<< QVariant(false) // AI survival 18
<< QVariant(false) // inf. attack 19
<< QVariant(false) // reset weps 20
<< QVariant(false) // per hog ammo 21
- << QVariant(100) // damage modfier 22
- << QVariant(30) // turn time 23
- << QVariant(100) // init health 24
- << QVariant(50) // sudden death 25
- << QVariant(1) // case prob 26
- << QVariant(3) // mines time 27
- << QVariant(4) // landadds 28
- << QVariant(0) // mine dud pct 29
- << QVariant(0) // explosives 30
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(100) // damage modfier 24
+ << QVariant(30) // turn time 25
+ << QVariant(100) // init health 26
+ << QVariant(50) // sudden death 27
+ << QVariant(1) // case prob 28
+ << QVariant(3) // mines time 29
+ << QVariant(0) // mines number 30
+ << QVariant(0) // mine dud pct 31
+ << QVariant(0) // explosives 32
+ << QVariant(0) // health case pct 33
+ << QVariant(25) // health case amt 34
+ << QVariant(47) // water rise amt 35
+ << QVariant(5) // health dec amt 36
;
- QList basketball;
- basketball
+ QList cleanslate;
+ cleanslate
<< predefSchemesNames[3] // name 0
<< QVariant(false) // fortsmode 1
<< QVariant(false) // team divide 2
- << QVariant(true) // solid land 3
- << QVariant(true) // border 4
- << QVariant(true) // low gravity 5
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
<< QVariant(false) // laser sight 6
- << QVariant(true) // invulnerable 7
- << QVariant(false) // add mines 8
+ << QVariant(false) // invulnerable 7
+ << QVariant(true) // reset health 8
<< QVariant(false) // vampiric 9
<< QVariant(false) // karma 10
<< QVariant(false) // artillery 11
<< QVariant(true) // random order 12
<< QVariant(false) // king 13
<< QVariant(false) // place hog 14
- << QVariant(true) // shared ammo 15
- << QVariant(true) //disable girders 16
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
<< QVariant(false) // disable land objects 17
<< QVariant(false) // AI survival 18
- << QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
+ << QVariant(true) // inf. attack 19
+ << QVariant(true) // reset weps 20
<< QVariant(false) // per hog ammo 21
- << QVariant(100) // damage modfier 22
- << QVariant(30) // turn time 23
- << QVariant(100) // init health 24
- << QVariant(15) // sudden death 25
- << QVariant(0) // case prob 26
- << QVariant(3) // mines time 27
- << QVariant(4) // landadds 28
- << QVariant(0) // mine dud pct 29
- << QVariant(0) // explosives 30
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(100) // damage modfier 24
+ << QVariant(45) // turn time 25
+ << QVariant(100) // init health 26
+ << QVariant(15) // sudden death 27
+ << QVariant(5) // case prob 28
+ << QVariant(3) // mines time 29
+ << QVariant(4) // mines number 30
+ << QVariant(0) // mine dud pct 31
+ << QVariant(2) // explosives 32
+ << QVariant(35) // health case pct 33
+ << QVariant(25) // health case amt 34
+ << QVariant(47) // water rise amt 35
+ << QVariant(5) // health dec amt 36
;
QList minefield;
@@ -221,7 +255,7 @@
<< QVariant(false) // low gravity 5
<< QVariant(false) // laser sight 6
<< QVariant(false) // invulnerable 7
- << QVariant(true) // add mines 8
+ << QVariant(false) // reset health 8
<< QVariant(false) // vampiric 9
<< QVariant(false) // karma 10
<< QVariant(false) // artillery 11
@@ -229,21 +263,27 @@
<< QVariant(false) // king 13
<< QVariant(false) // place hog 14
<< QVariant(true) // shared ammo 15
- << QVariant(true) //disable girders 16
+ << QVariant(true) // disable girders 16
<< QVariant(false) // disable land objects 17
<< QVariant(false) // AI survival 18
<< QVariant(false) // inf. attack 19
<< QVariant(false) // reset weps 20
<< QVariant(false) // per hog ammo 21
- << QVariant(150) // damage modfier 22
- << QVariant(30) // turn time 23
- << QVariant(50) // init health 24
- << QVariant(15) // sudden death 25
- << QVariant(0) // case prob 26
- << QVariant(0) // mines time 27
- << QVariant(80) // landadds 28
- << QVariant(0) // mine dud pct 29
- << QVariant(0) // explosives 30
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(150) // damage modfier 24
+ << QVariant(30) // turn time 25
+ << QVariant(50) // init health 26
+ << QVariant(15) // sudden death 27
+ << QVariant(0) // case prob 28
+ << QVariant(0) // mines time 29
+ << QVariant(80) // mines number 30
+ << QVariant(0) // mine dud pct 31
+ << QVariant(0) // explosives 32
+ << QVariant(35) // health case pct 33
+ << QVariant(25) // health case amt 34
+ << QVariant(47) // water rise amt 35
+ << QVariant(5) // health dec amt 36
;
QList barrelmayhem;
@@ -256,7 +296,7 @@
<< QVariant(false) // low gravity 5
<< QVariant(false) // laser sight 6
<< QVariant(false) // invulnerable 7
- << QVariant(false) // add mines 8
+ << QVariant(false) // reset health 8
<< QVariant(false) // vampiric 9
<< QVariant(false) // karma 10
<< QVariant(false) // artillery 11
@@ -264,21 +304,27 @@
<< QVariant(false) // king 13
<< QVariant(false) // place hog 14
<< QVariant(true) // shared ammo 15
- << QVariant(false) //disable girders 16
+ << QVariant(false) // disable girders 16
<< QVariant(false) // disable land objects 17
<< QVariant(false) // AI survival 18
<< QVariant(false) // inf. attack 19
<< QVariant(false) // reset weps 20
<< QVariant(false) // per hog ammo 21
- << QVariant(100) // damage modfier 22
- << QVariant(30) // turn time 23
- << QVariant(100) // init health 24
- << QVariant(15) // sudden death 25
- << QVariant(0) // case prob 26
- << QVariant(0) // mines time 27
- << QVariant(0) // landadds 28
- << QVariant(0) // mine dud pct 29
- << QVariant(80) // explosives 30
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(100) // damage modfier 24
+ << QVariant(30) // turn time 25
+ << QVariant(100) // init health 26
+ << QVariant(15) // sudden death 27
+ << QVariant(0) // case prob 28
+ << QVariant(0) // mines time 29
+ << QVariant(0) // mines number 30
+ << QVariant(0) // mine dud pct 31
+ << QVariant(80) // explosives 32
+ << QVariant(35) // health case pct 33
+ << QVariant(25) // health case amt 34
+ << QVariant(47) // water rise amt 35
+ << QVariant(5) // health dec amt 36
;
QList tunnelhogs;
@@ -291,7 +337,7 @@
<< QVariant(false) // low gravity 5
<< QVariant(false) // laser sight 6
<< QVariant(false) // invulnerable 7
- << QVariant(true) // add mines 8
+ << QVariant(false) // reset health 8
<< QVariant(false) // vampiric 9
<< QVariant(false) // karma 10
<< QVariant(false) // artillery 11
@@ -299,30 +345,205 @@
<< QVariant(false) // king 13
<< QVariant(false) // place hog 14
<< QVariant(true) // shared ammo 15
- << QVariant(true) //disable girders 16
+ << QVariant(true) // disable girders 16
<< QVariant(true) // disable land objects 17
<< QVariant(false) // AI survival 18
<< QVariant(false) // inf. attack 19
<< QVariant(false) // reset weps 20
<< QVariant(false) // per hog ammo 21
- << QVariant(100) // damage modfier 22
- << QVariant(30) // turn time 23
- << QVariant(100) // init health 24
- << QVariant(15) // sudden death 25
- << QVariant(5) // case prob 26
- << QVariant(3) // mines time 27
- << QVariant(10) // landadds 28
- << QVariant(10) // mine dud pct 29
- << QVariant(10) // explosives 30
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(100) // damage modfier 24
+ << QVariant(30) // turn time 25
+ << QVariant(100) // init health 26
+ << QVariant(15) // sudden death 27
+ << QVariant(5) // case prob 28
+ << QVariant(3) // mines time 29
+ << QVariant(10) // mines number 30
+ << QVariant(10) // mine dud pct 31
+ << QVariant(10) // explosives 32
+ << QVariant(35) // health case pct 33
+ << QVariant(25) // health case amt 34
+ << QVariant(47) // water rise amt 35
+ << QVariant(5) // health dec amt 36
+ ;
+
+ QList forts;
+ forts
+ << predefSchemesNames[7] // name 0
+ << QVariant(true) // fortsmode 1
+ << QVariant(true) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(true) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(100) // damage modfier 24
+ << QVariant(45) // turn time 25
+ << QVariant(100) // init health 26
+ << QVariant(15) // sudden death 27
+ << QVariant(5) // case prob 28
+ << QVariant(3) // mines time 29
+ << QVariant(0) // mines number 30
+ << QVariant(0) // mine dud pct 31
+ << QVariant(0) // explosives 32
+ << QVariant(35) // health case pct 33
+ << QVariant(25) // health case amt 34
+ << QVariant(47) // water rise amt 35
+ << QVariant(5) // health dec amt 36
;
+ QList timeless;
+ timeless
+ << predefSchemesNames[8] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(true) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(100) // damage modfier 24
+ << QVariant(9999) // turn time 25
+ << QVariant(100) // init health 26
+ << QVariant(15) // sudden death 27
+ << QVariant(5) // case prob 28
+ << QVariant(3) // mines time 29
+ << QVariant(5) // mines number 30
+ << QVariant(10) // mine dud pct 31
+ << QVariant(2) // explosives 32
+ << QVariant(35) // health case pct 33
+ << QVariant(30) // health case amt 34
+ << QVariant(0) // water rise amt 35
+ << QVariant(0) // health dec amt 36
+ ;
+
+ QList thinkingportals;
+ thinkingportals
+ << predefSchemesNames[9] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(true) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(false) // king 13
+ << QVariant(false) // place hog 14
+ << QVariant(false) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(100) // damage modfier 24
+ << QVariant(45) // turn time 25
+ << QVariant(100) // init health 26
+ << QVariant(15) // sudden death 27
+ << QVariant(2) // case prob 28
+ << QVariant(3) // mines time 29
+ << QVariant(5) // mines number 30
+ << QVariant(0) // mine dud pct 31
+ << QVariant(5) // explosives 32
+ << QVariant(25) // health case pct 33
+ << QVariant(25) // health case amt 34
+ << QVariant(47) // water rise amt 35
+ << QVariant(5) // health dec amt 36
+ ;
+
+ QList kingmode;
+ kingmode
+ << predefSchemesNames[10] // name 0
+ << QVariant(false) // fortsmode 1
+ << QVariant(false) // team divide 2
+ << QVariant(false) // solid land 3
+ << QVariant(false) // border 4
+ << QVariant(false) // low gravity 5
+ << QVariant(false) // laser sight 6
+ << QVariant(false) // invulnerable 7
+ << QVariant(false) // reset health 8
+ << QVariant(false) // vampiric 9
+ << QVariant(false) // karma 10
+ << QVariant(false) // artillery 11
+ << QVariant(true) // random order 12
+ << QVariant(true) // king 13
+ << QVariant(true) // place hog 14
+ << QVariant(true) // shared ammo 15
+ << QVariant(false) // disable girders 16
+ << QVariant(false) // disable land objects 17
+ << QVariant(false) // AI survival 18
+ << QVariant(false) // inf. attack 19
+ << QVariant(false) // reset weps 20
+ << QVariant(false) // per hog ammo 21
+ << QVariant(false) // no wind 22
+ << QVariant(false) // more wind 23
+ << QVariant(100) // damage modfier 24
+ << QVariant(45) // turn time 25
+ << QVariant(100) // init health 26
+ << QVariant(15) // sudden death 27
+ << QVariant(5) // case prob 28
+ << QVariant(3) // mines time 29
+ << QVariant(3) // mines number 30
+ << QVariant(20) // mine dud pct 31
+ << QVariant(3) // explosives 32
+ << QVariant(35) // health case pct 33
+ << QVariant(30) // health case amt 34
+ << QVariant(30) // water rise amt 35
+ << QVariant(5) // health dec amt 36
+ ;
+
+
schemes.append(defaultScheme);
schemes.append(proMode);
schemes.append(shoppa);
- schemes.append(basketball);
+ schemes.append(cleanslate);
schemes.append(minefield);
schemes.append(barrelmayhem);
schemes.append(tunnelhogs);
+ schemes.append(forts);
+ schemes.append(timeless);
+ schemes.append(thinkingportals);
+ schemes.append(kingmode);
int size = fileConfig.beginReadArray("schemes");
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/ammoSchemeModel.h
--- a/QTfrontend/ammoSchemeModel.h Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/ammoSchemeModel.h Mon Nov 15 12:37:39 2010 +0100
@@ -41,6 +41,7 @@
QVariant data(const QModelIndex &index, int role) const;
int numberOfDefaultSchemes;
+ QStringList predefSchemesNames;
public slots:
void Save();
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/game.h
--- a/QTfrontend/game.h Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/game.h Mon Nov 15 12:37:39 2010 +0100
@@ -38,6 +38,7 @@
gsDestroyed = 5
};
+bool checkForDir(const QString & dir);
class HWGame : public TCPBase
{
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/gamecfgwidget.cpp
--- a/QTfrontend/gamecfgwidget.cpp Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/gamecfgwidget.cpp Mon Nov 15 12:37:39 2010 +0100
@@ -78,6 +78,13 @@
connect(goToWeaponPage, SIGNAL(clicked()), this, SLOT(jumpToWeapons()));
+ GBoxOptionsLayout->addWidget(new QLabel(QLabel::tr("Bind schemes and weapons"), GBoxOptions), 2, 0);
+
+ bindEntries = new QCheckBox(GBoxOptions);
+ bindEntries->setToolTip(tr("When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)"));
+ bindEntries->setChecked(true);
+ 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 &)));
connect(pMapContainer, SIGNAL(mapgenChanged(MapGenerator)), this, SLOT(mapgenChanged(MapGenerator)));
@@ -101,54 +108,58 @@
quint32 result = 0;
if (schemeData(1).toBool())
- result |= 0x00001000;
+ result |= 0x00001000; // fort
if (schemeData(2).toBool())
- result |= 0x00000010;
+ result |= 0x00000010; // divide teams
if (schemeData(3).toBool())
- result |= 0x00000004;
+ result |= 0x00000004; // solid land
if (schemeData(4).toBool())
- result |= 0x00000008;
+ result |= 0x00000008; // border
if (schemeData(5).toBool())
- result |= 0x00000020;
+ result |= 0x00000020; // low gravity
if (schemeData(6).toBool())
- result |= 0x00000040;
+ result |= 0x00000040; // laser sight
if (schemeData(7).toBool())
- result |= 0x00000080;
+ result |= 0x00000080; // invulnerable
if (schemeData(8).toBool())
- result |= 0x00000100;
+ result |= 0x00000100; // mines
if (schemeData(9).toBool())
- result |= 0x00000200;
+ result |= 0x00000200; // vampirism
if (schemeData(10).toBool())
- result |= 0x00000400;
+ result |= 0x00000400; // karma
if (schemeData(11).toBool())
- result |= 0x00000800;
+ result |= 0x00000800; // artillery
if (schemeData(12).toBool())
- result |= 0x00002000;
+ result |= 0x00002000; // random
if (schemeData(13).toBool())
- result |= 0x00004000;
+ result |= 0x00004000; // king
if (schemeData(14).toBool())
- result |= 0x00008000;
+ result |= 0x00008000; // place hogs
if (schemeData(15).toBool())
- result |= 0x00010000;
+ result |= 0x00010000; // shared ammo
if (schemeData(16).toBool())
- result |= 0x00020000;
+ result |= 0x00020000; // disable girders
if (schemeData(17).toBool())
- result |= 0x00040000;
+ result |= 0x00040000; // disable land obj
if (schemeData(18).toBool())
- result |= 0x00080000;
+ result |= 0x00080000; // ai survival
if (schemeData(19).toBool())
- result |= 0x00100000;
+ result |= 0x00100000; // infinite attacks
if (schemeData(20).toBool())
- result |= 0x00200000;
+ result |= 0x00200000; // reset weaps
if (schemeData(21).toBool())
- result |= 0x00400000;
+ result |= 0x00400000; // per hog ammo
+ if (schemeData(22).toBool())
+ result |= 0x00800000; // no wind
+ if (schemeData(23).toBool())
+ result |= 0x01000000; // more wind
return result;
}
quint32 GameCFGWidget::getInitHealth() const
{
- return schemeData(24).toInt();
+ return schemeData(26).toInt();
}
QStringList GameCFGWidget::getFullConfig() const
@@ -156,14 +167,18 @@
QStringList sl;
sl.append("eseed " + pMapContainer->getCurrentSeed());
sl.append(QString("e$gmflags %1").arg(getGameFlags()));
- sl.append(QString("e$damagepct %1").arg(schemeData(22).toInt()));
- sl.append(QString("e$turntime %1").arg(schemeData(23).toInt() * 1000));
- sl.append(QString("e$minestime %1").arg(schemeData(27).toInt() * 1000));
- sl.append(QString("e$landadds %1").arg(schemeData(28).toInt()));
- sl.append(QString("e$sd_turns %1").arg(schemeData(25).toInt()));
- sl.append(QString("e$casefreq %1").arg(schemeData(26).toInt()));
- sl.append(QString("e$minedudpct %1").arg(schemeData(29).toInt()));
- sl.append(QString("e$explosives %1").arg(schemeData(30).toInt()));
+ sl.append(QString("e$damagepct %1").arg(schemeData(24).toInt()));
+ sl.append(QString("e$turntime %1").arg(schemeData(25).toInt() * 1000));
+ sl.append(QString("e$sd_turns %1").arg(schemeData(27).toInt()));
+ sl.append(QString("e$casefreq %1").arg(schemeData(28).toInt()));
+ sl.append(QString("e$minestime %1").arg(schemeData(29).toInt()));
+ sl.append(QString("e$minesnum %1").arg(schemeData(30).toInt()));
+ sl.append(QString("e$minedudpct %1").arg(schemeData(31).toInt()));
+ sl.append(QString("e$explosives %1").arg(schemeData(32).toInt()));
+ sl.append(QString("e$healthprob %1").arg(schemeData(33).toInt()));
+ sl.append(QString("e$hcaseamount %1").arg(schemeData(34).toInt()));
+ sl.append(QString("e$waterrise %1").arg(schemeData(35).toInt()));
+ sl.append(QString("e$healthdec %1").arg(schemeData(36).toInt()));
sl.append(QString("e$template_filter %1").arg(pMapContainer->getTemplateFilter()));
sl.append(QString("e$mapgen %1").arg(pMapContainer->get_mapgen()));
sl.append(QString("e$maze_size %1").arg(pMapContainer->get_maze_size()));
@@ -259,11 +274,23 @@
void GameCFGWidget::ammoChanged(int index)
{
- if (index >= 0)
+ if (index >= 0) {
emit paramChanged(
"AMMO",
QStringList() << WeaponsName->itemText(index) << WeaponsName->itemData(index).toString()
);
+ if (bindEntries->isChecked() == true) {
+ QString weapName = WeaponsName->itemText(index);
+ for (int i = 0; i < GameSchemes->count(); i++) {
+ QString schemeName = GameSchemes->itemText(i);
+ int res = QString::compare(weapName, schemeName, Qt::CaseSensitive);
+ if (0 == res) {
+ GameSchemes->setCurrentIndex(i);
+ break;
+ }
+ }
+ }
+ }
}
void GameCFGWidget::mapChanged(const QString & value)
@@ -272,6 +299,7 @@
{
GameSchemes->setEnabled(false);
WeaponsName->setEnabled(false);
+ bindEntries->setEnabled(false);
GameSchemes->setCurrentIndex(GameSchemes->findText("Default"));
WeaponsName->setCurrentIndex(WeaponsName->findText("Default"));
}
@@ -279,6 +307,7 @@
{
GameSchemes->setEnabled(true);
WeaponsName->setEnabled(true);
+ bindEntries->setEnabled(true);
}
emit paramChanged("MAP", QStringList(value));
}
@@ -298,7 +327,7 @@
emit paramChanged("THEME", QStringList(value));
}
-void GameCFGWidget::schemeChanged(int value)
+void GameCFGWidget::schemeChanged(int index)
{
QStringList sl;
@@ -307,6 +336,18 @@
sl << schemeData(i).toString();
emit paramChanged("SCHEME", sl);
+
+ if (bindEntries->isChecked() == true) {
+ QString schemeName = GameSchemes->itemText(index);
+ for (int i = 0; i < WeaponsName->count(); i++) {
+ QString weapName = WeaponsName->itemText(i);
+ int res = QString::compare(weapName, schemeName, Qt::CaseSensitive);
+ if (0 == res) {
+ WeaponsName->setCurrentIndex(i);
+ break;
+ }
+ }
+ }
}
void GameCFGWidget::mapgenChanged(MapGenerator m)
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/gamecfgwidget.h
--- a/QTfrontend/gamecfgwidget.h Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/gamecfgwidget.h Mon Nov 15 12:37:39 2010 +0100
@@ -68,7 +68,7 @@
private:
QGridLayout mainLayout;
-
+ QCheckBox * bindEntries;
QString curNetAmmoName;
QString curNetAmmo;
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/hedgewars.qrc
--- a/QTfrontend/hedgewars.qrc Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/hedgewars.qrc Mon Nov 15 12:37:39 2010 +0100
@@ -21,6 +21,7 @@
res/net.png
res/About.png
res/SimpleGame.png
+ res/Campaign.png
res/Multiplayer.png
res/Trainings.png
res/Background.png
@@ -54,7 +55,7 @@
res/btnInvulnerable.png
res/btnLaserSight.png
res/btnLowGravity.png
- res/btnMines.png
+ res/btnResetHealth.png
res/btnTeamsDivide.png
res/btnSolid.png
res/btnVampiric.png
@@ -70,6 +71,8 @@
res/btnInfAttack.png
res/btnResetWeps.png
res/btnPerHogAmmo.png
+ res/btnNoWind.png
+ res/btnMoreWind.png
res/iconBox.png
res/iconHealth.png
res/iconSuddenDeath.png
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/hwconsts.cpp.in
--- a/QTfrontend/hwconsts.cpp.in Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/hwconsts.cpp.in Mon Nov 15 12:37:39 2010 +0100
@@ -36,10 +36,10 @@
int cMaxTeams = 6;
QString * cDefaultAmmoStore = new QString(
- "9391929422199121032235111001201000000211110101011"
- "0405040541600655546554464776576666666155510101117"
- "0000000000000205500000040007004000000000200000000"
- "1311110312111111123114111111111111111211111101111"
+ "93919294221991210322351110012010000002111101010111"
+ "04050405416006555465544647765766666661555101011154"
+ "00000000000002055000000400070040000000002000000006"
+ "13111103121111111231141111111111111112111111011111"
);
int cAmmoNumber = cDefaultAmmoStore->size() / 4;
@@ -48,45 +48,51 @@
<< qMakePair(QString("Default"), *cDefaultAmmoStore)
<< qMakePair(QString("Crazy"), QString(
// TODO: Remove Piano's unlimited uses!
- "9999999999999999992999999999999999299999999909999"
- "1111110111111111111111111111111111111111111101111"
- "0000000000000000000000000000000000000000000000000"
- "1311110312111111123114111111111111111211110101111"
+ "99999999999999999929999999999999992999999999099999"
+ "11111101111111111111111111111111111111111111011111"
+ "00000000000000000000000000000000000000000000000000"
+ "13111103121111111231141111111111111112111101011111"
))
- << qMakePair(QString("Pro mode"), QString(
- "9090009000000000000009000000000000000000000000000"
- "0000000000000000000000000000000000000000000000000"
- "0000000000000205500000040007004000000000200000000"
- "1111111111111111111111111111111111111111100101111"
+ << qMakePair(QString("Pro Mode"), QString(
+ "90900090000000000000090000000000000000000000000000"
+ "00000000000000000000000000000000000000000000000000"
+ "00000000000002055000000400070040000000002000000000"
+ "11111111111111111111111111111111111111111001011111"
))
<< qMakePair(QString("Shoppa"), QString(
- "0000009900000000000000000000000000000000000000000"
- "4444410044244402210112121222422000000002000400010"
- "0000000000000000000000000000000000000000000000000"
- "1111111111111111111111111111111111111111101101111"
+ "00000099000000000000000000000000000000000000000000"
+ "44444100442444022101121212224220000000020004000100"
+ "00000000000000000000000000000000000000000000000000"
+ "11111111111111111111111111111111111111111011011111"
))
- << qMakePair(QString("Basketball"),QString(
- "0000009000000900000000000000000000000000000000000"
- "0000000000000000000000000000000000000000000000000"
- "0000000000000005500000040007004000000000200000000"
- "1111111111111111111111111111111111111111111101111"
+ << qMakePair(QString("Clean Slate"),QString(
+ "10100090000100000110000000000000000000000000000010"
+ "04050405416006555465544647765766666661555101011154"
+ "00000000000000000000000000000000000000000000000000"
+ "13111103121111111231141111111111111112111111011111"
))
<< qMakePair(QString("Minefield"), QString(
- "0000009900090000000300000000000000000000000000000"
- "0000000000000000000000000000000000000000000000000"
- "0000000000000205500000040007004000000000200000000"
- "1111111111111111111111111111111111111111111101111"
+ "00000099000900000003000000000000000000000000000000"
+ "00000000000000000000000000000000000000000000000000"
+ "00000000000002055000000400070040000000002000000006"
+ "11111111111111111111111111111111111111111111011111"
+ ))
+ << qMakePair(QString("Thinking with Portals"), QString(
+ "90000090020000000021000000000000001100000900000000"
+ "04050405416006555465544647765766666661555101011154"
+ "00000000000002055000000400070040000000002000000006"
+ "13111103121111111231141111111111111112111111011111"
));
QColor *colors[] = {
new QColor(221, 0, 0), // classic red
- new QColor( 67, 118, 233), // classic blue
+ new QColor( 51, 102, 217), // dark blue
new QColor( 62, 147, 33), // classic green
new QColor(162, 61, 187), // classic purple
- new QColor(255, 147, 41), // classic orange
+ new QColor(255, 255, 0), // yellow
new QColor(115, 115, 115), // classic gray
- new QColor(187, 162, 61), // gold
- new QColor( 61, 162, 187), // cyan
+ new QColor(0, 255, 255), // cyan
+ new QColor(255, 136, 136), // peach
// add new colors here
0};
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/hwform.cpp
--- a/QTfrontend/hwform.cpp Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/hwform.cpp Mon Nov 15 12:37:39 2010 +0100
@@ -141,7 +141,7 @@
connect(ui.pageOptions->BtnDeleteTeam, SIGNAL(clicked()), this, SLOT(DeleteTeam()));
connect(ui.pageOptions->BtnSaveOptions, SIGNAL(clicked()), config, SLOT(SaveOptions()));
connect(ui.pageOptions->BtnSaveOptions, SIGNAL(clicked()), this, SLOT(GoBack()));
-#ifdef _WIN32
+#ifndef __APPLE__
connect(ui.pageOptions->BtnAssociateFiles, SIGNAL(clicked()), this, SLOT(AssociateFiles()));
#endif
@@ -1122,6 +1122,8 @@
void HWForm::AssociateFiles()
{
+ bool success = true;
+#ifdef _WIN32
QSettings registry_hkcr("HKEY_CLASSES_ROOT", QSettings::NativeFormat);
registry_hkcr.setValue(".hwd/Default", "Hedgewars.Demo");
registry_hkcr.setValue(".hws/Default", "Hedgewars.Save");
@@ -1131,6 +1133,25 @@
registry_hkcr.setValue("Hedgewars.Save/DefaultIcon/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwsfile.ico\",0");
registry_hkcr.setValue("Hedgewars.Demo/Shell/Open/Command/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwengine.exe\" \"" + datadir->absolutePath().replace("/", "\\") + "\" \"%1\"");
registry_hkcr.setValue("Hedgewars.Save/Shell/Open/Command/Default", "\"" + bindir->absolutePath().replace("/", "\\") + "\\hwengine.exe\" \"" + datadir->absolutePath().replace("/", "\\") + "\" \"%1\"");
- QMessageBox::information(0, "", QMessageBox::tr("All file associations have been set."));
+#elif defined __APPLE__
+ success = false;
+ // TODO; also enable button in pages.cpp and signal in hwform.cpp
+#else
+ // this is a little silly due to all the system commands below anyway - just use mkdir -p ? Does have the advantage of the alert I guess
+ if (success) success = checkForDir(QDir::home().absolutePath() + "/.local");
+ if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share");
+ if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share/mime");
+ if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share/mime/packages");
+ if (success) success = checkForDir(QDir::home().absolutePath() + "/.local");
+ if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share");
+ if (success) success = checkForDir(QDir::home().absolutePath() + "/.local/share/applications");
+ if (success) success = system(("cp "+datadir->absolutePath()+"/misc/hedgewars-mimeinfo.xml "+QDir::home().absolutePath()+"/.local/share/mime/packages").toLocal8Bit().constData())==0;
+ if (success) success = system(("cp "+datadir->absolutePath()+"/misc/hwengine.desktop "+QDir::home().absolutePath()+"/.local/share/applications").toLocal8Bit().constData())==0;
+ if (success) success = system(("update-mime-database "+QDir::home().absolutePath()+"/.local/share/mime").toLocal8Bit().constData())==0;
+ if (success) success = system("xdg-mime default hwengine.desktop application/x-hedgewars-demo")==0;
+ if (success) success = system("xdg-mime default hwengine.desktop application/x-hedgewars-save")==0;
+#endif
+ if (success) QMessageBox::information(0, "", QMessageBox::tr("All file associations have been set."));
+ else QMessageBox::information(0, "", QMessageBox::tr("File association failed."));
}
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/mapContainer.cpp
--- a/QTfrontend/mapContainer.cpp Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/mapContainer.cpp Mon Nov 15 12:37:39 2010 +0100
@@ -62,8 +62,14 @@
chooseMap = new QComboBox(this);
chooseMap->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- chooseMap->addItem(QIcon(":/res/mapRandom.png"), QComboBox::tr("generated map..."));
- chooseMap->addItem(QIcon(":/res/mapMaze.png"), QComboBox::tr("generated maze..."));
+ chooseMap->addItem(
+// FIXME - need real icons. Disabling until then
+//QIcon(":/res/mapRandom.png"),
+QComboBox::tr("generated map..."));
+ chooseMap->addItem(
+// FIXME - need real icons. Disabling until then
+//QIcon(":/res/mapMaze.png"),
+QComboBox::tr("generated maze..."));
chooseMap->insertSeparator(chooseMap->count()); // separator between generators and missions
int missionindex = chooseMap->count();
@@ -95,11 +101,17 @@
mapInfo.push_back(mapLuaFile.exists());
if(mapLuaFile.exists())
{
- chooseMap->insertItem(missionindex++, QIcon(":/res/mapMission.png"), QComboBox::tr("Mission") + ": " + map, mapInfo);
+ chooseMap->insertItem(missionindex++,
+// FIXME - need real icons. Disabling until then
+//QIcon(":/res/mapMission.png"),
+QComboBox::tr("Mission") + ": " + map, mapInfo);
numMissions++;
}
else
- chooseMap->addItem(QIcon(":/res/mapCustom.png"), map, mapInfo);
+ chooseMap->addItem(
+// FIXME - need real icons. Disabling until then
+//QIcon(":/res/mapCustom.png"),
+map, mapInfo);
mapCfgFile.close();
}
}
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/mapContainer.h
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/pages.cpp
--- a/QTfrontend/pages.cpp Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/pages.cpp Mon Nov 15 12:37:39 2010 +0100
@@ -100,7 +100,7 @@
Tips << tr("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.", "Tips");
Tips << tr("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.", "Tips");
Tips << tr("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!", "Tips");
- Tips << tr("Want to save ropse? 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!", "Tips");
+ Tips << tr("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!", "Tips");
Tips << tr("If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.", "Tips");
Tips << tr("You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.", "Tips");
Tips << tr("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.", "Tips");
@@ -138,18 +138,22 @@
Tips << tr("The Flame Thrower is a weapon but it can be used for tunnel digging as well.", "Tips");
Tips << tr("Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.", "Tips");
Tips << tr("Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.", "Tips");
- Tips << tr("Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!", "Tips").arg("Facebook ").arg("Steam Community ").arg("Twitter ");
+ Tips << tr("Like Hedgewars? Become a fan on %1 or follow us on %2!", "Tips").arg("Facebook ").arg("Twitter ");
Tips << tr("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.", "Tips");
Tips << tr("Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!", "Tips");
// The following tip will require links to app store entries first.
//Tips << tr("Want to play Hedgewars any time? Grab the Mobile version for %1 and %2.", "Tips").arg("").arg("");
Tips << tr("Keep your video card drivers up to date to avoid issues playing the game.", "Tips");
//Tips << tr("", "Tips");
+#ifndef __APPLE__
+ Tips << tr("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.", "Tips");
+#endif
#ifdef _WIN32
Tips << tr("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.", "Tips");
- Tips << tr("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.", "Tips");
-#else
- Tips << tr("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.", "Tips");
+#elif defined __APPLE__
+ Tips << tr("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.", "Tips");
+#else
+ Tips << tr("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.", "Tips");
#endif
mainNote->setText(QLabel::tr("Tip: ") + Tips[QTime(0, 0, 0).secsTo(QTime::currentTime()) % Tips.length()]);
}
@@ -611,7 +615,7 @@
CBAutoUpdate->setText(QCheckBox::tr("Check for updates at startup"));
MiscLayout->addWidget(CBAutoUpdate, 4, 0, 1, 2);
#endif
-#ifdef _WIN32
+#ifndef __APPLE__
BtnAssociateFiles = new QPushButton(groupMisc);
BtnAssociateFiles->setText(QPushButton::tr("Associate file extensions"));
BtnAssociateFiles->setEnabled(!custom_data && !custom_config);
@@ -1024,8 +1028,9 @@
topLine->addStretch();
- BtnCampaignPage = addButton(":/res/SimpleGame.png", middleLine, 0, true);
+ BtnCampaignPage = addButton(":/res/Campaign.png", middleLine, 0, true);
BtnCampaignPage->setToolTip(tr("Campaign Mode (...). IN DEVELOPMENT"));
+ BtnCampaignPage->setVisible(false);
BtnTrainPage = addButton(":/res/Trainings.png", middleLine, 1, true);
BtnTrainPage->setToolTip(tr("Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT"));
@@ -1161,13 +1166,10 @@
ruleLabel->setText(tr("Rules:"));
CBRules = new QComboBox(this);
CBRules->addItem(QComboBox::tr("Any"));
- CBRules->addItem(QComboBox::tr("Default"));
- CBRules->addItem(QComboBox::tr("Pro mode"));
- CBRules->addItem(QComboBox::tr("Shoppa"));
- CBRules->addItem(QComboBox::tr("Basketball"));
- CBRules->addItem(QComboBox::tr("Minefield"));
- CBRules->addItem(QComboBox::tr("Barrel mayhem"));
- CBRules->addItem(QComboBox::tr("Tunnel hogs"));
+ // not the most elegant solution but it works
+ ammoSchemeModel = new AmmoSchemeModel(this, NULL);
+ for (int i = 0; i < ammoSchemeModel->predefSchemesNames.count(); i++)
+ CBRules->addItem(ammoSchemeModel->predefSchemesNames.at(i).toAscii().constData());
filterLayout->addWidget(ruleLabel);
filterLayout->addWidget(CBRules);
filterLayout->addSpacing(30);
@@ -1176,12 +1178,10 @@
weaponLabel->setText(tr("Weapons:"));
CBWeapons = new QComboBox(this);
CBWeapons->addItem(QComboBox::tr("Any"));
- CBWeapons->addItem(QComboBox::tr("Basketball"));
- CBWeapons->addItem(QComboBox::tr("Crazy"));
- CBWeapons->addItem(QComboBox::tr("Default"));
- CBWeapons->addItem(QComboBox::tr("Minefield"));
- CBWeapons->addItem(QComboBox::tr("Pro mode"));
- CBWeapons->addItem(QComboBox::tr("Shoppa"));
+ for (int i = 0; i < cDefaultAmmos.count(); i++) {
+ QPair ammo = cDefaultAmmos.at(i);
+ CBWeapons->addItem(ammo.first.toAscii().constData());
+ }
filterLayout->addWidget(weaponLabel);
filterLayout->addWidget(CBWeapons);
filterLayout->addSpacing(30);
@@ -1346,12 +1346,14 @@
if(list[i + 5] == "+rnd+")
{
item = new QTableWidgetItem(tr("Random Map")); // selected map (is randomized)
- item->setIcon(QIcon(":/res/mapRandom.png"));
+// FIXME - need real icons. Disabling until then
+// item->setIcon(QIcon(":/res/mapRandom.png"));
}
else if (list[i+5] == "+maze+")
{
item = new QTableWidgetItem(tr("Random Maze"));
- item->setIcon(QIcon(":/res/mapMaze.png"));
+// FIXME - need real icons. Disabling until then
+// item->setIcon(QIcon(":/res/mapMaze.png"));
}
else
{
@@ -1366,8 +1368,9 @@
}
else
{
- // todo: mission icon?
- item->setIcon(QIcon(":/res/mapCustom.png"));
+ // todo: mission icon?
+// FIXME - need real icons. Disabling until then
+// item->setIcon(QIcon(":/res/mapCustom.png"));
}
}
@@ -1375,12 +1378,12 @@
item->setToolTip(tr("Games may be played on precreated or randomized maps."));
roomsList->setItem(r, 4, item);
- item = new QTableWidgetItem(list[i + 6].left(20)); // selected game scheme
+ item = new QTableWidgetItem(list[i + 6].left(24)); // selected game scheme
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
item->setToolTip(tr("The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism."));
roomsList->setItem(r, 5, item);
- item = new QTableWidgetItem(list[i + 7].left(20)); // selected weapon scheme
+ item = new QTableWidgetItem(list[i + 7].left(24)); // selected weapon scheme
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
item->setToolTip(tr("The Weapon Scheme defines available weapons and their ammunition count."));
roomsList->setItem(r, 6, item);
@@ -1545,9 +1548,9 @@
TBW_invulnerable->setToolTip("" + ToggleButtonWidget::tr("Invulnerable") + " : " + tr("All hogs have a personal forcefield"));
glGMLayout->addWidget(TBW_invulnerable,1,1,1,1);
- TBW_mines = new ToggleButtonWidget(gbGameModes, ":/res/btnMines.png");
- TBW_mines->setToolTip("" + ToggleButtonWidget::tr("Add Mines") + " : " + tr("Enable random mines"));
- glGMLayout->addWidget(TBW_mines,1,2,1,1);
+ TBW_resethealth = new ToggleButtonWidget(gbGameModes, ":/res/btnResetHealth.png");
+ TBW_resethealth->setToolTip("" + ToggleButtonWidget::tr("Reset Health") + " : " + tr("All (living) hedgehogs are fully restored at the end of turn"));
+ glGMLayout->addWidget(TBW_resethealth,1,2,1,1);
TBW_vampiric = new ToggleButtonWidget(gbGameModes, ":/res/btnVampiric.png");
TBW_vampiric->setToolTip("" + ToggleButtonWidget::tr("Vampirism") + " : " + tr("Gain 80% of the damage you do back in health"));
@@ -1601,6 +1604,14 @@
TBW_perhogammo->setToolTip("" + ToggleButtonWidget::tr("Per Hedgehog Ammo") + " : " + tr("Each hedgehog has its own ammo. It does not share with the team."));
glGMLayout->addWidget(TBW_perhogammo,4,0,1,1);
+ TBW_nowind = new ToggleButtonWidget(gbGameModes, ":/res/btnNoWind.png");
+ TBW_nowind->setToolTip("" + ToggleButtonWidget::tr("Disable Wind") + " : " + tr("You will not have to worry about wind anymore."));
+ glGMLayout->addWidget(TBW_nowind,4,1,1,1);
+
+ TBW_morewind = new ToggleButtonWidget(gbGameModes, ":/res/btnMoreWind.png");
+ TBW_morewind->setToolTip("" + ToggleButtonWidget::tr("More Wind") + " : " + tr("Wind will affect almost everything."));
+ glGMLayout->addWidget(TBW_morewind,4,2,1,1);
+
// Right
QLabel * l;
@@ -1612,7 +1623,6 @@
l->setFixedSize(32,32);
l->setPixmap(QPixmap(":/res/iconDamage.png"));
glBSLayout->addWidget(l,0,1,1,1);
-
SB_DamageModifier = new QSpinBox(gbBasicSettings);
SB_DamageModifier->setRange(10, 300);
SB_DamageModifier->setValue(100);
@@ -1627,7 +1637,6 @@
l->setFixedSize(32,32);
l->setPixmap(QPixmap(":/res/iconTime.png"));
glBSLayout->addWidget(l,1,1,1,1);
-
SB_TurnTime = new QSpinBox(gbBasicSettings);
SB_TurnTime->setRange(1, 9999);
SB_TurnTime->setValue(45);
@@ -1642,7 +1651,6 @@
l->setFixedSize(32,32);
l->setPixmap(QPixmap(":/res/iconHealth.png"));
glBSLayout->addWidget(l,2,1,1,1);
-
SB_InitHealth = new QSpinBox(gbBasicSettings);
SB_InitHealth->setRange(50, 200);
SB_InitHealth->setValue(100);
@@ -1657,7 +1665,6 @@
l->setFixedSize(32,32);
l->setPixmap(QPixmap(":/res/iconSuddenDeath.png"));
glBSLayout->addWidget(l,3,1,1,1);
-
SB_SuddenDeath = new QSpinBox(gbBasicSettings);
SB_SuddenDeath->setRange(0, 50);
SB_SuddenDeath->setValue(15);
@@ -1665,77 +1672,132 @@
glBSLayout->addWidget(SB_SuddenDeath,3,2,1,1);
l = new QLabel(gbBasicSettings);
- l->setText(QLabel::tr("Crate Drops"));
+ l->setText(QLabel::tr("Sudden Death Water Rise"));
l->setWordWrap(true);
glBSLayout->addWidget(l,4,0,1,1);
l = new QLabel(gbBasicSettings);
l->setFixedSize(32,32);
- l->setPixmap(QPixmap(":/res/iconBox.png"));
+ l->setPixmap(QPixmap(":/res/iconSuddenDeath.png")); // TODO: icon
glBSLayout->addWidget(l,4,1,1,1);
+ SB_WaterRise = new QSpinBox(gbBasicSettings);
+ SB_WaterRise->setRange(0, 100);
+ SB_WaterRise->setValue(47);
+ SB_WaterRise->setSingleStep(5);
+ glBSLayout->addWidget(SB_WaterRise,4,2,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Sudden Death Health Decrease"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,5,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconSuddenDeath.png")); // TODO: icon
+ glBSLayout->addWidget(l,5,1,1,1);
+ SB_HealthDecrease = new QSpinBox(gbBasicSettings);
+ SB_HealthDecrease->setRange(0, 100);
+ SB_HealthDecrease->setValue(5);
+ SB_HealthDecrease->setSingleStep(1);
+ glBSLayout->addWidget(SB_HealthDecrease,5,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Crate Drops"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,6,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconBox.png"));
+ glBSLayout->addWidget(l,6,1,1,1);
SB_CaseProb = new FreqSpinBox(gbBasicSettings);
SB_CaseProb->setRange(0, 9);
SB_CaseProb->setValue(5);
- glBSLayout->addWidget(SB_CaseProb,4,2,1,1);
+ glBSLayout->addWidget(SB_CaseProb,6,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("% Health Crates"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,7,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconHealth.png")); // TODO: icon
+ glBSLayout->addWidget(l,7,1,1,1);
+ SB_HealthCrates = new QSpinBox(gbBasicSettings);
+ SB_HealthCrates->setRange(0, 100);
+ SB_HealthCrates->setValue(35);
+ SB_HealthCrates->setSingleStep(5);
+ glBSLayout->addWidget(SB_HealthCrates,7,2,1,1);
+
+ l = new QLabel(gbBasicSettings);
+ l->setText(QLabel::tr("Health in Crates"));
+ l->setWordWrap(true);
+ glBSLayout->addWidget(l,8,0,1,1);
+ l = new QLabel(gbBasicSettings);
+ l->setFixedSize(32,32);
+ l->setPixmap(QPixmap(":/res/iconHealth.png")); // TODO: icon
+ glBSLayout->addWidget(l,8,1,1,1);
+ SB_CrateHealth = new QSpinBox(gbBasicSettings);
+ SB_CrateHealth->setRange(0, 200);
+ SB_CrateHealth->setValue(25);
+ SB_CrateHealth->setSingleStep(5);
+ glBSLayout->addWidget(SB_CrateHealth,8,2,1,1);
l = new QLabel(gbBasicSettings);
l->setText(QLabel::tr("Mines Time"));
l->setWordWrap(true);
- glBSLayout->addWidget(l,5,0,1,1);
+ glBSLayout->addWidget(l,9,0,1,1);
l = new QLabel(gbBasicSettings);
l->setFixedSize(32,32);
l->setPixmap(QPixmap(":/res/iconTime.png")); // TODO: icon
- glBSLayout->addWidget(l,5,1,1,1);
+ glBSLayout->addWidget(l,9,1,1,1);
SB_MinesTime = new QSpinBox(gbBasicSettings);
- SB_MinesTime->setRange(-1, 3);
+ SB_MinesTime->setRange(-1, 5);
SB_MinesTime->setValue(3);
SB_MinesTime->setSingleStep(1);
SB_MinesTime->setSpecialValueText(tr("Random"));
SB_MinesTime->setSuffix(" "+ tr("Seconds"));
- glBSLayout->addWidget(SB_MinesTime,5,2,1,1);
+ glBSLayout->addWidget(SB_MinesTime,9,2,1,1);
l = new QLabel(gbBasicSettings);
l->setText(QLabel::tr("Mines"));
l->setWordWrap(true);
- glBSLayout->addWidget(l,6,0,1,1);
+ glBSLayout->addWidget(l,10,0,1,1);
l = new QLabel(gbBasicSettings);
l->setFixedSize(32,32);
l->setPixmap(QPixmap(":/res/iconMine.png")); // TODO: icon
- glBSLayout->addWidget(l,6,1,1,1);
+ glBSLayout->addWidget(l,10,1,1,1);
SB_Mines = new QSpinBox(gbBasicSettings);
- SB_Mines->setRange(1, 80);
- SB_Mines->setValue(1);
+ SB_Mines->setRange(0, 80);
+ SB_Mines->setValue(0);
SB_Mines->setSingleStep(5);
- glBSLayout->addWidget(SB_Mines,6,2,1,1);
+ glBSLayout->addWidget(SB_Mines,10,2,1,1);
l = new QLabel(gbBasicSettings);
l->setText(QLabel::tr("% Dud Mines"));
l->setWordWrap(true);
- glBSLayout->addWidget(l,7,0,1,1);
+ glBSLayout->addWidget(l,11,0,1,1);
l = new QLabel(gbBasicSettings);
l->setFixedSize(32,32);
l->setPixmap(QPixmap(":/res/iconDud.png"));
- glBSLayout->addWidget(l,7,1,1,1);
+ glBSLayout->addWidget(l,11,1,1,1);
SB_MineDuds = new QSpinBox(gbBasicSettings);
SB_MineDuds->setRange(0, 100);
SB_MineDuds->setValue(0);
SB_MineDuds->setSingleStep(5);
- glBSLayout->addWidget(SB_MineDuds,7,2,1,1);
+ glBSLayout->addWidget(SB_MineDuds,11,2,1,1);
l = new QLabel(gbBasicSettings);
l->setText(QLabel::tr("Explosives"));
l->setWordWrap(true);
- glBSLayout->addWidget(l,8,0,1,1);
+ glBSLayout->addWidget(l,12,0,1,1);
l = new QLabel(gbBasicSettings);
l->setFixedSize(32,32);
l->setPixmap(QPixmap(":/res/iconDamage.png"));
- glBSLayout->addWidget(l,8,1,1,1);
+ glBSLayout->addWidget(l,12,1,1,1);
SB_Explosives = new QSpinBox(gbBasicSettings);
SB_Explosives->setRange(0, 40);
SB_Explosives->setValue(0);
SB_Explosives->setSingleStep(1);
- glBSLayout->addWidget(SB_Explosives,8,2,1,1);
+ glBSLayout->addWidget(SB_Explosives,12,2,1,1);
l = new QLabel(gbBasicSettings);
@@ -1774,7 +1836,7 @@
mapper->addMapping(TBW_lowGravity, 5);
mapper->addMapping(TBW_laserSight, 6);
mapper->addMapping(TBW_invulnerable, 7);
- mapper->addMapping(TBW_mines, 8);
+ mapper->addMapping(TBW_resethealth, 8);
mapper->addMapping(TBW_vampiric, 9);
mapper->addMapping(TBW_karma, 10);
mapper->addMapping(TBW_artillery, 11);
@@ -1788,15 +1850,21 @@
mapper->addMapping(TBW_infattack, 19);
mapper->addMapping(TBW_resetweps, 20);
mapper->addMapping(TBW_perhogammo, 21);
- mapper->addMapping(SB_DamageModifier, 22);
- mapper->addMapping(SB_TurnTime, 23);
- mapper->addMapping(SB_InitHealth, 24);
- mapper->addMapping(SB_SuddenDeath, 25);
- mapper->addMapping(SB_CaseProb, 26);
- mapper->addMapping(SB_MinesTime, 27);
- mapper->addMapping(SB_Mines, 28);
- mapper->addMapping(SB_MineDuds, 29);
- mapper->addMapping(SB_Explosives, 30);
+ mapper->addMapping(TBW_nowind, 22);
+ mapper->addMapping(TBW_morewind, 23);
+ mapper->addMapping(SB_DamageModifier, 24);
+ mapper->addMapping(SB_TurnTime, 25);
+ mapper->addMapping(SB_InitHealth, 26);
+ mapper->addMapping(SB_SuddenDeath, 27);
+ mapper->addMapping(SB_CaseProb, 28);
+ mapper->addMapping(SB_MinesTime, 29);
+ mapper->addMapping(SB_Mines, 30);
+ mapper->addMapping(SB_MineDuds, 31);
+ mapper->addMapping(SB_Explosives, 32);
+ mapper->addMapping(SB_HealthCrates, 33);
+ mapper->addMapping(SB_CrateHealth, 34);
+ mapper->addMapping(SB_WaterRise, 35);
+ mapper->addMapping(SB_HealthDecrease, 36);
mapper->toFirst();
}
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/pages.h
--- a/QTfrontend/pages.h Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/pages.h Mon Nov 15 12:37:39 2010 +0100
@@ -425,6 +425,7 @@
bool gameInLobby;
QString gameInLobbyName;
QStringList listFromServer;
+ AmmoSchemeModel * ammoSchemeModel;
public slots:
void setRoomsList(const QStringList & list);
@@ -475,7 +476,7 @@
ToggleButtonWidget * TBW_lowGravity;
ToggleButtonWidget * TBW_laserSight;
ToggleButtonWidget * TBW_invulnerable;
- ToggleButtonWidget * TBW_mines;
+ ToggleButtonWidget * TBW_resethealth;
ToggleButtonWidget * TBW_vampiric;
ToggleButtonWidget * TBW_karma;
ToggleButtonWidget * TBW_artillery;
@@ -489,12 +490,18 @@
ToggleButtonWidget * TBW_infattack;
ToggleButtonWidget * TBW_resetweps;
ToggleButtonWidget * TBW_perhogammo;
+ ToggleButtonWidget * TBW_nowind;
+ ToggleButtonWidget * TBW_morewind;
QSpinBox * SB_DamageModifier;
QSpinBox * SB_TurnTime;
QSpinBox * SB_InitHealth;
QSpinBox * SB_SuddenDeath;
+ QSpinBox * SB_WaterRise;
+ QSpinBox * SB_HealthDecrease;
FreqSpinBox * SB_CaseProb;
+ QSpinBox * SB_HealthCrates;
+ QSpinBox * SB_CrateHealth;
QSpinBox * SB_MinesTime;
QSpinBox * SB_Mines;
QSpinBox * SB_MineDuds;
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/Campaign.png
Binary file QTfrontend/res/Campaign.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/HedgewarsTitle.png
Binary file QTfrontend/res/HedgewarsTitle.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/StatsMedal1.png
Binary file QTfrontend/res/StatsMedal1.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/StatsMedal2.png
Binary file QTfrontend/res/StatsMedal2.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/StatsMedal3.png
Binary file QTfrontend/res/StatsMedal3.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/StatsMedal4.png
Binary file QTfrontend/res/StatsMedal4.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnAISurvival.png
Binary file QTfrontend/res/btnAISurvival.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnBorder.png
Binary file QTfrontend/res/btnBorder.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnDisabled.png
Binary file QTfrontend/res/btnDisabled.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnForts.png
Binary file QTfrontend/res/btnForts.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnInfAttack.png
Binary file QTfrontend/res/btnInfAttack.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnMines.png
Binary file QTfrontend/res/btnMines.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnMoreWind.png
Binary file QTfrontend/res/btnMoreWind.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnNoWind.png
Binary file QTfrontend/res/btnNoWind.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnOverlay.png
Binary file QTfrontend/res/btnOverlay.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnPerHogAmmo.png
Binary file QTfrontend/res/btnPerHogAmmo.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnResetHealth.png
Binary file QTfrontend/res/btnResetHealth.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnResetWeps.png
Binary file QTfrontend/res/btnResetWeps.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnSolid.png
Binary file QTfrontend/res/btnSolid.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/btnTeamsDivide.png
Binary file QTfrontend/res/btnTeamsDivide.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/mapCustom.png
Binary file QTfrontend/res/mapCustom.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/mapMaze.png
Binary file QTfrontend/res/mapMaze.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/mapMissing.png
Binary file QTfrontend/res/mapMissing.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/mapMission.png
Binary file QTfrontend/res/mapMission.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/res/mapRandom.png
Binary file QTfrontend/res/mapRandom.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 QTfrontend/statsPage.cpp
--- a/QTfrontend/statsPage.cpp Wed Oct 27 14:23:47 2010 +0200
+++ b/QTfrontend/statsPage.cpp Mon Nov 15 12:37:39 2010 +0100
@@ -177,72 +177,69 @@
team.Wins++; // should draws count as wins?
//team.SaveToFile(); // don't save yet
}
- break;
- }
-
+ break;
+ }
+
case 'P' : {
int i = info.indexOf(' ');
- playerPosition++;
- QString color = info.left(i);
- quint32 c = color.toInt();
- QColor clanColor = QColor(qRgb((c >> 16) & 255, (c >> 8) & 255, c & 255));
+ playerPosition++;
+ QString color = info.left(i);
+ quint32 c = color.toInt();
+ QColor clanColor = QColor(qRgb((c >> 16) & 255, (c >> 8) & 255, c & 255));
+
+ QString playerinfo = info.mid(i + 1);
- QString playerinfo = info.mid(i + 1);
-
- i = playerinfo.indexOf(' ');
+ i = playerinfo.indexOf(' ');
- QString kills = playerinfo.left(i);
- QString playername = playerinfo.mid(i + 1);
- QString image;
+ int kills = playerinfo.left(i).toInt();
+ QString playername = playerinfo.mid(i + 1);
+ QString image;
- if (lastColor == c && playerPosition <= 2) playerPosition = 1;
- lastColor = c;
+ if (lastColor == c) playerPosition--;
+ lastColor = c;
- switch (playerPosition)
- {
- case 1:
- image = " ";
- break;
- case 2:
- image = " ";
- break;
- case 3:
- image = " ";
- break;
- default:
- image = " ";
- break;
- }
+ switch (playerPosition)
+ {
+ case 1:
+ image = " ";
+ break;
+ case 2:
+ image = " ";
+ break;
+ case 3:
+ image = " ";
+ break;
+ default:
+ image = " ";
+ break;
+ }
QString message;
- QString killstring;
- if (kills.toInt() == 1)
- {
- killstring = PageGameStats::tr("(%1 kill)").arg(kills);
- } else {
- killstring = PageGameStats::tr("(%1 kills)").arg(kills);
- }
-
- message = QString("
%1 %2. %3 ").arg(image, QString::number(playerPosition), playername, clanColor.name()) + killstring + " ";
-
- labelGameRank->setText(labelGameRank->text() + message);
- break;
- }
+ QString killstring = PageGameStats::tr("(%1 kill)", "", kills).arg(kills);
+
+ message = QString("
%1 %2. %3 ").arg(image, QString::number(playerPosition), playername, clanColor.name()) + killstring + " ";
+
+ labelGameRank->setText(labelGameRank->text() + message);
+ break;
+ }
case 's' : {
int i = info.indexOf(' ');
- QString message = " " + PageGameStats::tr("%1 thought it's good to shoot his own hedgehogs with %2 pts.").arg(info.mid(i + 1), info.left(i)) + "
";
+ int num = info.left(i).toInt();
+ QString message = " " + PageGameStats::tr("%1 thought it's good to shoot his own hedgehogs with %2 pts.", "", num).arg(info.mid(i + 1)).arg(num) + "
";
AddStatText(message);
break;
}
case 'S' : {
int i = info.indexOf(' ');
- QString message = " " + PageGameStats::tr("%1 killed %2 of his own hedgehogs.").arg(info.mid(i + 1), info.left(i)) + "
";
+ int num = info.left(i).toInt();
+ QString message = " " + PageGameStats::tr("%1 killed %2 of his own hedgehogs.", "", num).arg(info.mid(i + 1)).arg(num) + "
";
AddStatText(message);
break;
}
case 'B' : {
int i = info.indexOf(' ');
- QString message = " " + PageGameStats::tr("%1 was scared and skipped turn %2 times.").arg(info.mid(i + 1), info.left(i)) + "
";
+ int num = info.left(i).toInt();
+ QString message = " " + PageGameStats::tr("%1 was scared and skipped turn %2 times.", "", num).arg(info.mid(i + 1)).arg(num) + "
";
AddStatText(message);
break;
}
diff -r 45b63c2a694f -r 19cbea33e4d2 README
--- a/README Wed Oct 27 14:23:47 2010 +0200
+++ b/README Mon Nov 15 12:37:39 2010 +0100
@@ -3,35 +3,5 @@
Images and sounds are distributed under the terms of the GNU FDL licence.
Source:
-Copyright 2004-2009 Andrey Korotaev
-Copyright 2006-2008 Igor Ulyanov aka Displacer
-
-Sounds in Data/Sounds/Voices
-Copyright 2008, 2009 Stephen Alexander
-
-'Nature' music theme:
-Copyright 2008 Finn Brice
-
-'Pirate', 'City', 'Oriental', 'Snow' music themes:
-Copyright 2008 Jonatan Nilsson
-
-Images in Data/Graphics,
-themes "nature", "Snow", "City",
-maps "Bath", "Hedgelove", "Hedgewars", "Hydrant", "mushrooms", "Plane"
-Copyright 2008 Finn Brice
-
-Fonts: see Fonts_LICENSE.txt
-
-Map and theme "cheese":
-based on Wormux map "cheese" by Anthony Carré
-
-Maps and themes "Bamboo", "EarthRise", "Freeway",
-map "BambooPlinko":
-Copyright 2008 Joshua Frese
-
-Maps "Castle", "PirateFlag"
-theme "hell":
-Copyright 2008 Stanko Tadić
-
-Theme "Sheep"
-Copyright 2008 Julien Koesten
+Copyright 2004-2010 Andrey Korotaev
+Portions copyright 2006-2008 Igor Ulyanov aka Displacer
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/Actions.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/CMakeLists.txt
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/ClientIO.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/CoreTypes.hs
--- a/gameServer/CoreTypes.hs Wed Oct 27 14:23:47 2010 +0200
+++ b/gameServer/CoreTypes.hs Mon Nov 15 12:37:39 2010 +0100
@@ -143,8 +143,8 @@
ServerInfo
True
"http://www.hedgewars.org/
"
- "Hedgewars 0.9.13 is out! Please update. Download page here
"
- 31
+ "Hedgewars 0.9.14.1 is out! Please update. Download page here
"
+ 35
46631
0
""
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/HWProtoCore.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/HWProtoInRoomState.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/HWProtoLobbyState.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/HWProtoNEState.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/NetRoutines.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/OfficialServer/DBInteraction.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/OfficialServer/extdbinterface.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/Opts.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/ServerCore.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/Utils.hs
--- a/gameServer/Utils.hs Wed Oct 27 14:23:47 2010 +0200
+++ b/gameServer/Utils.hs Mon Nov 15 12:37:39 2010 +0100
@@ -95,6 +95,9 @@
protoNumber2ver 30 = "0.9.13-dev"
protoNumber2ver 31 = "0.9.13"
protoNumber2ver 32 = "0.9.14-dev"
+protoNumber2ver 33 = "0.9.14"
+protoNumber2ver 34 = "0.9.15-dev"
+protoNumber2ver 35 = "0.9.14.1"
protoNumber2ver _ = "Unknown"
askFromConsole :: String -> IO String
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/hedgewars-server.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/stresstest.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 gameServer/stresstest2.hs
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/CCHandlers.inc
--- a/hedgewars/CCHandlers.inc Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/CCHandlers.inc Mon Nov 15 12:37:39 2010 +0100
@@ -170,6 +170,7 @@
else CurrentHedgehog^.AmmoStore:= TeamsCount - 1;
CurrentHedgehog^.Gear:= Gear;
CurrentHedgehog^.Name:= id;
+ CurrentHedgehog^.InitialHealth:= Gear^.Health;
CurrHedgehog:= HedgehogsNumber;
inc(HedgehogsNumber)
end
@@ -685,7 +686,7 @@
if bShowAmmoMenu then bShowAmmoMenu:= false
else if ((Gear^.State and (gstAttacking or gstAttacked)) <> 0) or
- ((MultiShootAttacks > 0) and ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_NoRoundEndHint) = 0)) or
+ ((MultiShootAttacks > 0) and ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_NoRoundEnd) = 0)) or
((Gear^.State and gstHHDriven) = 0) then else bShowAmmoMenu:= true
end;
if ReadyTimeLeft > 1 then ReadyTimeLeft:= 1
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/CMakeLists.txt
--- a/hedgewars/CMakeLists.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -91,7 +91,7 @@
find_program(fpc_executable ${fpc_tryexe})
if(fpc_executable)
- exec_program(${fpc_executable} ARGS "-h" OUTPUT_VARIABLE fpc_output)
+ exec_program(${fpc_executable} ARGS "-iV" OUTPUT_VARIABLE fpc_output)
endif(fpc_executable)
set(noexecstack_flags "-k-z" "-knoexecstack")
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/GSHandlers.inc
--- a/hedgewars/GSHandlers.inc Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/GSHandlers.inc Mon Nov 15 12:37:39 2010 +0100
@@ -317,7 +317,11 @@
if Gear^.AdvBounce > 1 then dec(Gear^.AdvBounce);
- if isFalling then Gear^.dY := Gear^.dY + cGravity;
+ if isFalling then
+ begin
+ Gear^.dY := Gear^.dY + cGravity;
+ if (GameFlags and gfMoreWind) <> 0 then Gear^.dX := Gear^.dX + cWindSpeed * _16 / max(12,sqr(Gear^.Radius))
+ end;
Gear^.X := Gear^.X + Gear^.dX;
Gear^.Y := Gear^.Y + Gear^.dY;
@@ -352,7 +356,7 @@
dec(Gear^.Timer);
if Gear^.Timer = 1000 then // might need adjustments
case Gear^.Kind of
- gtAmmo_Bomb: makeHogsWorry(Gear^.X, Gear^.Y, 50);
+ gtBomb: makeHogsWorry(Gear^.X, Gear^.Y, 50);
gtClusterBomb: makeHogsWorry(Gear^.X, Gear^.Y, 20);
gtWatermelon: makeHogsWorry(Gear^.X, Gear^.Y, 75);
gtHellishBomb: makeHogsWorry(Gear^.X, Gear^.Y, 90);
@@ -376,7 +380,7 @@
if Gear^.Timer = 0 then
begin
case Gear^.Kind of
- gtAmmo_Bomb: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
+ gtBomb: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
gtBall: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 40, EXPLAutoSound);
gtClusterBomb:
begin
@@ -422,7 +426,11 @@
begin
doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, EXPLAutoSound);
for i:= 0 to 2 do
- AddGear(int64(hwRound(Gear^.X)) - 30 + GetRandom(60), int64(hwRound(Gear^.Y)) - 20 + GetRandom(40), gtPoisonCloud, 0, _0, _0, 0);
+ begin
+ x:= GetRandom(60);
+ y:= GetRandom(40);
+ AddGear(hwRound(Gear^.X) - 30 + x, hwRound(Gear^.Y) - 20 + y, gtPoisonCloud, 0, _0, _0, 0);
+ end
end;
end;
DeleteGear(Gear);
@@ -505,10 +513,10 @@
end;
////////////////////////////////////////////////////////////////////////////////
-procedure doStepGrenade(Gear: PGear);
+procedure doStepShell(Gear: PGear);
begin
AllInactive := false;
- Gear^.dX := Gear^.dX + cWindSpeed;
+ if (GameFlags and gfMoreWind) = 0 then Gear^.dX := Gear^.dX + cWindSpeed;
doStepFallingGear(Gear);
if (Gear^.State and gstCollision) <> 0 then
begin
@@ -618,6 +626,10 @@
dec(Gear^.Timer);
if Gear^.Timer = 0 then
begin
+ PHedgehog(Gear^.Hedgehog)^.Gear^.Message:= PHedgehog(Gear^.Hedgehog)^.Gear^.Message and not gmAttack;
+ PHedgehog(Gear^.Hedgehog)^.Gear^.State:= PHedgehog(Gear^.Hedgehog)^.Gear^.State and not gstAttacking;
+ AttackBar:= 0;
+
Gear^.SoundChannel := LoopSound(sndBee);
Gear^.Timer := 5000;
// save initial speed in otherwise unused Friction variable
@@ -696,6 +708,7 @@
var
i, x, y: LongWord;
oX, oY: hwFloat;
+ VGear: PVisualGear;
begin
AllInactive := false;
inc(Gear^.Timer);
@@ -742,6 +755,41 @@
cLaserSighting := false;
if (Ammoz[Gear^.AmmoType].Ammo.NumPerTurn <= CurrentHedgehog^.MultiShootAttacks) and
((GameFlags and gfArtillery) = 0) then cArtillery := false;
+
+ // Bullet Hit
+ if (hwRound(Gear^.X) and LAND_WIDTH_MASK = 0)
+ and (hwRound(Gear^.Y) and LAND_HEIGHT_MASK = 0) then
+ begin
+ VGear := AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtBulletHit);
+ if VGear <> nil then
+ begin
+ VGear^.Angle := DxDy2Angle(-Gear^.dX, Gear^.dY);
+ end;
+ end;
+
+ // Bullet trail
+ VGear := AddVisualGear(
+ hwround(CurrentHedgehog^.Gear^.X) + GetLaunchX(CurrentHedgehog^.CurAmmoType, hwSign(CurrentHedgehog^.Gear^.dX), CurrentHedgehog^.Gear^.Angle),
+ hwround(CurrentHedgehog^.Gear^.Y) + GetLaunchY(CurrentHedgehog^.CurAmmoType, CurrentHedgehog^.Gear^.Angle),
+ vgtLineTrail
+ );
+ if VGear <> nil then
+ begin
+ // http://mantis.freepascal.org/view.php?id=17714 hits again
+ VGear^.dX := Gear^.X.QWordValue / SignAs(_1,_1).QWordValue;
+ VGear^.dY := Gear^.Y.QWordValue / SignAs(_1,_1).QWordValue;
+
+ // reached edge of land. assume infinite beam. Extend it way out past camera
+ if (hwRound(Gear^.X) and LAND_WIDTH_MASK <> 0)
+ or (hwRound(Gear^.Y) and LAND_HEIGHT_MASK <> 0) then
+ begin
+ VGear^.dX := VGear^.dX + (CurrentHedgehog^.Gear^.dX * LAND_WIDTH).QWordValue / SignAs(_1,_1).QWordValue;
+ VGear^.dY := VGear^.dY + (CurrentHedgehog^.Gear^.dY * LAND_WIDTH).QWordValue / SignAs(_1,_1).QWordValue;
+ end;
+
+ VGear^.Timer := 200;
+ end;
+
Gear^.doStep := @doStepShotIdle
end;
end;
@@ -1073,6 +1121,7 @@
HHGear^.X := HHGear^.X + HHGear^.dX;
HHGear^.Y := HHGear^.Y + HHGear^.dY;
HHGear^.dY := HHGear^.dY + cGravity;
+ if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed * _0_2;
if (Gear^.Message and gmAttack) <> 0 then
begin
@@ -1135,7 +1184,11 @@
else
if (Gear^.Message and gmRight <> 0) then HHGear^.dX := HHGear^.dX + _0_0002;
- if not TestCollisionYwithGear(HHGear, 1) then HHGear^.dY := HHGear^.dY + cGravity;
+ if not TestCollisionYwithGear(HHGear, 1) then
+ begin
+ HHGear^.dY := HHGear^.dY + cGravity;
+ if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed * _0_2
+ end;
ropeDx := HHGear^.X - Gear^.X;
// vector between hedgehog and rope attaching point
@@ -1219,8 +1272,7 @@
end;
nx := nx - tx;
ny := ny - ty;
- lx := hwRound(nx);
- ly := hwRound(ny);
+
// len := len - _0_3 // should be the same as increase step
len.QWordValue := len.QWordValue - _0_3.QWordValue;
end;
@@ -1319,7 +1371,7 @@
DeleteCI(HHGear);
if (HHGear^.State and gstMoving) <> 0 then
- begin
+ begin
if TestCollisionXwithGear(HHGear, hwSign(HHGear^.dX)) then SetLittle(HHGear^.dX);
if HHGear^.dY.isNegative and TestCollisionYwithGear(HHGear, -1) then HHGear^.dY := _0;
@@ -1327,44 +1379,48 @@
Gear^.X := Gear^.X + HHGear^.dX;
if TestCollisionYwithGear(HHGear, 1) then
- begin
+ begin
CheckHHDamage(HHGear);
- HHGear^.dY := _0;
+ HHGear^.dY := _0
//HHGear^.State:= HHGear^.State and not (gstHHJumping or gstHHHJump);
- end
+ end
else
- begin
+ begin
HHGear^.Y := HHGear^.Y + HHGear^.dY;
Gear^.Y := Gear^.Y + HHGear^.dY;
HHGear^.dY := HHGear^.dY + cGravity;
- end;
+ if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed * _0_2
+ end;
tt := Gear^.Elasticity;
tx := _0;
ty := _0;
while tt > _20 do
- begin
+ begin
if TestCollisionXwithXYShift(Gear, tx, hwRound(ty), -hwSign(Gear^.dX))
or TestCollisionYwithXYShift(Gear, hwRound(tx), hwRound(ty), -hwSign(Gear^.dY)) then
- begin
+ begin
Gear^.X := Gear^.X + tx;
Gear^.Y := Gear^.Y + ty;
Gear^.Elasticity := tt;
Gear^.doStep := @doStepRopeWork;
PlaySound(sndRopeAttach);
with HHGear^ do
+ begin
State := State and not (gstAttacking or gstHHJumping or gstHHHJump);
+ Message := Message and not gmAttack
+ end;
RemoveFromAmmo;
tt := _0;
exit
- end;
+ end;
tx := tx + Gear^.dX + Gear^.dX;
ty := ty + Gear^.dY + Gear^.dY;
tt := tt - _2;
+ end;
end;
- end;
CheckCollision(Gear);
@@ -1372,29 +1428,32 @@
if Gear^.Elasticity < _10 then
Gear^.Elasticity := _10000
else
- begin
+ begin
Gear^.doStep := @doStepRopeWork;
PlaySound(sndRopeAttach);
with HHGear^ do
+ begin
State := State and not (gstAttacking or gstHHJumping or gstHHHJump);
+ Message := Message and not gmAttack
+ end;
RemoveFromAmmo;
exit
- end;
+ end;
if (Gear^.Elasticity > Gear^.Friction)
or ((Gear^.Message and gmAttack) = 0)
or ((HHGear^.State and gstHHDriven) = 0)
or (HHGear^.Damage > 0) then
- begin
+ begin
with PHedgehog(Gear^.Hedgehog)^.Gear^ do
- begin
+ begin
State := State and not gstAttacking;
Message := Message and not gmAttack
- end;
+ end;
DeleteGear(Gear)
- end
+ end
end;
procedure doStepRope(Gear: PGear);
@@ -1427,35 +1486,35 @@
if ((Gear^.State and gsttmpFlag) <> 0) and (Gear^.Health <> 0) then
if ((Gear^.State and gstAttacking) = 0) then
- begin
+ begin
if ((GameTicks and $1F) = 0) then
if CheckGearNear(Gear, gtHedgehog, 46, 32) <> nil then Gear^.State := Gear^.State or
gstAttacking
- end
- else // gstAttacking <> 0
- begin
- AllInactive := false;
- if (Gear^.Timer and $FF) = 0 then PlaySound(sndMineTick);
- if Gear^.Timer = 0 then
- begin
- if ((Gear^.State and gstWait) <> 0) or
- (cMineDudPercent = 0) or
- (getRandom(100) > cMineDudPercent) then
+ end
+ else // gstAttacking <> 0
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
- DeleteGear(Gear)
+ AllInactive := false;
+ if (Gear^.Timer and $FF) = 0 then PlaySound(sndMineTick);
+ if Gear^.Timer = 0 then
+ begin
+ if ((Gear^.State and gstWait) <> 0) or
+ (cMineDudPercent = 0) or
+ (getRandom(100) > cMineDudPercent) then
+ begin
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
+ DeleteGear(Gear)
+ end
+ else
+ begin
+ AddVisualGear(hwRound(Gear^.X) - 4 + Random(8), hwRound(Gear^.Y) - 4 - Random(4),
+ vgtSmoke);
+ PlaySound(sndVaporize);
+ Gear^.Health := 0;
+ end;
+ exit
+ end;
+ dec(Gear^.Timer);
end
- else
- begin
- AddVisualGear(hwRound(Gear^.X) - 4 + Random(8), hwRound(Gear^.Y) - 4 - Random(4),
- vgtSmoke);
- PlaySound(sndVaporize);
- Gear^.Health := 0;
- end;
- exit
- end;
- dec(Gear^.Timer);
- end
else // gsttmpFlag = 0
if (TurnTimeLeft = 0) or ((GameFlags and gfInfAttack) <> 0) then Gear^.State := Gear^.State or gsttmpFlag;
end;
@@ -1755,7 +1814,7 @@
AmmoShove(Gear, 30, 115);
- HHGear^.State := HHGear^.State and not gstNoDamage;
+ HHGear^.State := (HHGear^.State and (not gstNoDamage)) or gstMoving;
Gear^.Timer := 250;
Gear^.doStep := @doStepIdle
end;
@@ -1776,7 +1835,8 @@
Gear^.X := Gear^.X + Gear^.dX * 5
end;
- HHGear^.State := HHGear^.State and not gstNoDamage;
+ HHGear^.State := (HHGear^.State and (not gstNoDamage)) or gstMoving;
+
Gear^.Timer := 250;
Gear^.doStep := @doStepIdle
end;
@@ -2027,8 +2087,6 @@
////////////////////////////////////////////////////////////////////////////////
procedure doStepAirAttackWork(Gear: PGear);
-var
- i: Longint;
begin
AllInactive := false;
Gear^.X := Gear^.X + cAirPlaneSpeed * Gear^.Tag;
@@ -2041,9 +2099,12 @@
Gear^.Tag, _0, 0);
1: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtMine, 0, cBombsSpeed *
Gear^.Tag, _0, 0);
- 2: for i:= -19 to 19 do
- FollowGear := AddGear(hwRound(Gear^.X) + i div 3, hwRound(Gear^.Y), gtFlame, 0,
- _0_001 * i, _0, 0);
+ 2: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtNapalmBomb, 0, cBombsSpeed *
+ Gear^.Tag, _0, 0);
+ 3: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtDrill, gsttmpFlag, cBombsSpeed *
+ Gear^.Tag, _0, 0);
+ //4: FollowGear := AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtWaterMelon, 0, cBombsSpeed *
+ // Gear^.Tag, _0, 5000);
end;
Gear^.dX := Gear^.dX + int2hwFloat(30 * Gear^.Tag)
end;
@@ -2072,7 +2133,7 @@
Gear^.Y := int2hwFloat(topY-300);
Gear^.dX := int2hwFloat(TargetPoint.X - 5 * Gear^.Tag * 15);
- if (int2hwFloat(TargetPoint.Y) - Gear^.Y > _0) and (Gear^.State <> 2) then
+ if (int2hwFloat(TargetPoint.Y) - Gear^.Y > _0) then
Gear^.dX := Gear^.dX - cBombsSpeed * hwSqrt((int2hwFloat(TargetPoint.Y) - Gear^.Y) * 2 /
cGravity) * Gear^.Tag;
@@ -2090,6 +2151,7 @@
begin
doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLAutoSound);
DeleteGear(Gear);
+ performRumble();
exit
end;
if (GameTicks and $3F) = 0 then
@@ -2644,6 +2706,12 @@
var
i: LongWord;
begin
+ if (Gear^.Tag = 0) or (cWaterLine = 0) then
+ begin
+ DeleteGear(Gear);
+ exit
+ end;
+
AllInactive := false;
inc(Gear^.Timer);
@@ -2660,9 +2728,7 @@
SetAllToActive
end;
- inc(Gear^.Tag);
- if (Gear^.Tag = 47) or (cWaterLine = 0) then
- DeleteGear(Gear)
+ dec(Gear^.Tag);
end;
////////////////////////////////////////////////////////////////////////////////
@@ -2680,6 +2746,8 @@
Gear^.X := Gear^.X + Gear^.dX;
Gear^.Y := Gear^.Y + Gear^.dY;
DrawTunnel(oX, oY, Gear^.dX, Gear^.dY, 2, 6);
+ if (Gear^.Timer mod 30) = 0 then
+ AddVisualGear(hwRound(Gear^.X + _20 * Gear^.dX), hwRound(Gear^.Y + _20 * Gear^.dY), vgtDust);
if (CheckGearDrowning(Gear)) then
begin
StopSound(Gear^.SoundChannel);
@@ -2698,7 +2766,10 @@
begin
//out of time or exited ground
StopSound(Gear^.SoundChannel);
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
+ if (Gear^.State and gsttmpFlag) <> 0 then
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLAutoSound)
+ else
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
DeleteGear(Gear);
exit
end;
@@ -2714,7 +2785,9 @@
begin
AllInactive := false;
- Gear^.dX := Gear^.dX + cWindSpeed;
+ if (Gear^.State and gsttmpFlag) = 0 then
+ Gear^.dX := Gear^.dX + cWindSpeed;
+
oldDx := Gear^.dX;
oldDy := Gear^.dY;
@@ -2740,7 +2813,10 @@
else
begin
//explode right on contact with HH
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
+ if (Gear^.State and gsttmpFlag) <> 0 then
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLAutoSound)
+ else
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
DeleteGear(Gear);
exit;
end;
@@ -3015,7 +3091,7 @@
if (move.isNegative) then
begin
bubble^.X := bubble^.X + 28;
- bubble^.dX *= -1
+ bubble^.dX:= bubble^.dX * (-1)
end
else bubble^.X := bubble^.X - 28;
end;
@@ -3029,17 +3105,19 @@
// erases them all at once :-/
if (Gear^.Timer <> 0) and (GameTicks - Gear^.Timer > 250) then
- begin
+ begin
Gear^.Timer := 0;
Gear^.MsgParam := 0
- end;
+ end;
if Gear^.Health < 0 then Gear^.Health := 0;
- if (GameTicks and $3F) = 0 then
+ i:= Gear^.Health div 20;
+ if (i <> Gear^.Damage) and ((GameTicks and $3F) = 0) then
begin
+ Gear^.Damage:= i;
//AddCaption('Fuel: '+inttostr(round(Gear^.Health/20))+'%', cWhiteColor, capgrpAmmostate);
if Gear^.Tex <> nil then FreeTexture(Gear^.Tex);
- Gear^.Tex := RenderStringTex(trmsg[sidFuel] + ': ' + inttostr(round(Gear^.Health / 20)) +
+ Gear^.Tex := RenderStringTex(trmsg[sidFuel] + ': ' + inttostr(i) +
'%', cWhiteColor, fntSmall)
end;
@@ -3051,8 +3129,9 @@
Gear^.X := HHGear^.X;
Gear^.Y := HHGear^.Y;
// For some reason I need to reapply followgear here, something else grabs it otherwise.
- if not bShowAmmoMenu then FollowGear := HHGear;
-
+ if not bShowAmmoMenu and not CurrentTeam^.ExtDriven then FollowGear := HHGear;
+
+ if not isUnderWater and hasBorder and ((HHGear^.X < _0) or (hwRound(HHGear^.X) > LAND_WIDTH)) then HHGear^.dY.isNegative:= false;
if ((Gear^.State and gsttmpFlag) = 0) or (HHGear^.dY < _0) then doStepHedgehogMoving(HHGear);
if // (Gear^.Health = 0)
@@ -3066,11 +3145,11 @@
or ((Gear^.Message and gmAttack) <> 0) then
begin
with HHGear^ do
- begin
+ begin
Message := 0;
Active := true;
State := State or gstMoving
- end;
+ end;
DeleteGear(Gear);
isCursorVisible := false;
ApplyAmmoChanges(PHedgehog(HHGear^.Hedgehog)^);
@@ -3079,7 +3158,7 @@
// Gear^.Tex:= RenderStringTex(trmsg[sidFuel] + ': ' + inttostr(round(Gear^.Health / 20)) + '%', cWhiteColor, fntSmall)
//AddCaption(trmsg[sidFuel]+': '+inttostr(round(Gear^.Health/20))+'%', cWhiteColor, capgrpAmmostate);
- end
+ end
end;
////////////////////////////////////////////////////////////////////////////////
@@ -3141,19 +3220,19 @@
Gear^.Tag := 1;
if (HHGear^.Message and gmUp) <> 0 then
- begin
+ begin
if (not HHGear^.dY.isNegative) or (HHGear^.Y > -_256) then
HHGear^.dY := HHGear^.dY - move;
dec(Gear^.Health, fuel);
Gear^.MsgParam := Gear^.MsgParam or gmUp;
- end;
+ end;
if (HHGear^.Message and gmLeft) <> 0 then move.isNegative := true;
if (HHGear^.Message and (gmLeft or gmRight)) <> 0 then
- begin
+ begin
HHGear^.dX := HHGear^.dX + (move * _0_1);
dec(Gear^.Health, fuel div 5);
Gear^.MsgParam := Gear^.MsgParam or (HHGear^.Message and (gmLeft or gmRight));
- end;
+ end;
if Gear^.Health < 0 then Gear^.Health := 0;
if ((GameTicks and $FF) = 0) and (Gear^.Health < 500) then
@@ -3161,16 +3240,15 @@
AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtFeather);
if (HHGear^.Message and gmAttack <> 0) then
- begin
+ begin
HHGear^.Message := HHGear^.Message and not gmAttack;
if Gear^.FlightTime > 0 then
- begin
- AddGear(hwRound(Gear^.X), hwRound(Gear^.Y) + 32, gtEgg, 0, Gear^.dX * _0_5, Gear^.dY, 0)
- ;
+ begin
+ AddGear(hwRound(Gear^.X), hwRound(Gear^.Y) + 32, gtEgg, 0, Gear^.dX * _0_5, Gear^.dY, 0);
PlaySound(sndBirdyLay);
dec(Gear^.FlightTime)
+ end;
end;
- end;
if HHGear^.Message and (gmUp or gmPrecise or gmLeft or gmRight) <> 0 then
Gear^.State := Gear^.State and not gsttmpFlag;
@@ -3192,25 +3270,25 @@
or (((GameTicks and $1FF) = 0) and (not HHGear^.dY.isNegative) and TestCollisionYwithGear(
HHGear, 1))
or ((Gear^.Message and gmAttack) <> 0) then
- begin
+ begin
with HHGear^ do
- begin
+ begin
Message := 0;
Active := true;
State := State or gstMoving
- end;
+ end;
Gear^.State := Gear^.State or gstAnimation or gstTmpFlag;
if HHGear^.dY < _0 then
- begin
+ begin
Gear^.dX := HHGear^.dX;
Gear^.dY := HHGear^.dY;
- end;
+ end;
Gear^.Timer := 0;
Gear^.doStep := @doStepBirdyDisappear;
CurAmmoGear := nil;
isCursorVisible := false;
AfterAttack;
- end
+ end
end;
////////////////////////////////////////////////////////////////////////////////
@@ -3341,8 +3419,8 @@
procedure doStepPortal(Gear: PGear);
var
iterator, conPortal: PGear;
- s, acptRadius, nx, ny, ox, oy, poffs, noffs, pspeed, nspeed: hwFloat;
- hasdxy: Boolean;
+ s, r, nx, ny, ox, oy, poffs, noffs, pspeed, nspeed: hwFloat;
+ hasdxy, isbullet, iscake: Boolean;
begin
doPortalColorSwitch();
@@ -3387,10 +3465,13 @@
break;
// don't port portals or other gear that wouldn't make sense
- if (iterator^.Kind = gtPortal) or (iterator^.Kind = gtRope) or (iterator^.PortalCounter > 20) then
- continue;
+ if (iterator^.Kind in [gtPortal, gtRope, gtRCPlane])
+ or (iterator^.PortalCounter > 32) then
+ continue;
// don't port hogs on rope
+ // TODO: this will also prevent hogs while falling after rope use from
+ // falling through portals... fix that!
if (CurrentHedgehog <> nil) and (CurrentHedgehog^.Gear <> nil)
and (iterator = CurrentHedgehog^.Gear) and (CurAmmoGear <> nil) and (CurAmmoGear^.Kind =
gtRope) then
@@ -3401,63 +3482,80 @@
continue;
// this is the max range we accept incoming gears in
- acptRadius := Int2hwFloat(iterator^.Radius+Gear^.Radius);
+ r := Int2hwFloat(iterator^.Radius+Gear^.Radius);
// too far away?
- if (iterator^.X < Gear^.X - acptRadius)
- or (iterator^.X > Gear^.X + acptRadius)
- or (iterator^.Y < Gear^.Y - acptRadius)
- or (iterator^.Y > Gear^.Y + acptRadius) then
+ if (iterator^.X < Gear^.X - r)
+ or (iterator^.X > Gear^.X + r)
+ or (iterator^.Y < Gear^.Y - r)
+ or (iterator^.Y > Gear^.Y + r) then
continue;
- hasdxy := ((iterator^.dX.QWordValue <> 0) or (iterator^.dY.QWordValue <> 0));
-
- // won't port stuff that moves away from me!
- if hasdxy and not (Gear^.dX*iterator^.dX + Gear^.dY*iterator^.dY).isNegative then
+ hasdxy := (((iterator^.dX.QWordValue <> 0) or (iterator^.dY.QWordValue <> 0))
+ or ((iterator^.State or gstMoving) = 0));
+
+ // in case the object is not moving, let's asume it's falling towards the portal
+ if not hasdxy then
+ begin
+ if Gear^.Y < iterator^.Y then
continue;
-
- if (iterator^.Kind <> gtCake) then
+ ox:= Gear^.X - iterator^.X;
+ oy:= Gear^.Y - iterator^.Y;
+ end
+ else
+ begin
+ ox:= iterator^.dX;
+ oy:= iterator^.dY;
+ end;
+
+ // cake will need extra treatment... it's so delicious and moist!
+ iscake:= (iterator^.Kind = gtCake);
+
+ // won't port stuff that does not move towards the front/portal entrance
+ if iscake then
+ begin
+ if not ((iterator^.X - Gear^.X)*ox + (iterator^.Y - Gear^.Y)*oy).isNegative then
+ continue;
+ end
+ else
+ if not (Gear^.dX*ox + Gear^.dY*oy).isNegative then
+ continue;
+
+ isbullet:= (iterator^.Kind in [gtShotgunShot, gtDEagleShot, gtSniperRifleShot, gtSineGunShot]);
+
+ r:= int2hwFloat(iterator^.Radius);
+
+ if not (isbullet or iscake) then
begin
// wow! good candidate there, let's see if the distance and direction is okay!
if hasdxy then
begin
- s := int2hwFloat(iterator^.Radius) / Distance(iterator^.dX, iterator^.dY);
+ s := r / Distance(iterator^.dX, iterator^.dY);
ox:= iterator^.X + s * iterator^.dX;
oy:= iterator^.Y + s * iterator^.dY;
end
else
begin
ox:= iterator^.X;
- oy:= iterator^.Y + Int2hwFloat(iterator^.Radius);
+ oy:= iterator^.Y + r;
end;
if (hwRound(Distance(Gear^.X-ox,Gear^.Y-oy)) > Gear^.Radius + 1 ) then
continue;
end;
-(*
- noTrap := ((not Gear^.dY.isNegative or (Gear^.dY.QWordValue = 0))
- // can't be entered from above
- or ((conPortal^.dY.isNegative and not (conPortal^.dY.QWordValue = 0))));
- // can't be left downwards;
-
- // prevent getting stuck in a ground portal loop
- if noTrap and (iterator^.dY.QWordValue < _0_08.QWordValue) then
- continue; *)
-
- iterator^.Active := true;
- iterator^.State := iterator^.State or gstMoving;
- DeleteCI(iterator);
-
- // Until loops are reliably broken
- inc(iterator^.PortalCounter);
-
- // find out how much speed parallel to the portal vector
- // the gear has, also get the vector offset
- pspeed:= (Gear^.dX * iterator^.dX + Gear^.dY * iterator^.dY);
+ // calc gear offset in portal vector direction
ox := (iterator^.X - Gear^.X);
oy := (iterator^.Y - Gear^.Y);
poffs:= (Gear^.dX * ox + Gear^.dY * oy);
+
+ if poffs < _0 then
+ continue;
+
+ //
+ // gears that make it till here will definately be ported
+ //
+
// create a normal of the portal vector, but ...
nx := Gear^.dY;
ny := Gear^.dX;
@@ -3467,12 +3565,31 @@
else
ny.isNegative := not ny.isNegative;
- // now let's find out how much speed the gear has in the
- // direction of that normal
- nspeed:= (nx * iterator^.dX + ny * iterator^.dY);
+ // calc gear offset in portal normal vector direction
noffs:= (nx * ox + ny * oy);
- // now let's project those back to the connected portal's vectors
+ // avoid gravity related loops of not really moving gear
+ if not iscake and (Gear^.dY.isNegative) and (conPortal^.dY.isNegative)
+ and ((iterator^.dX.QWordValue + iterator^.dY.QWordValue) < _0_08.QWordValue)
+ and (iterator^.PortalCounter > 0) then
+ continue;
+
+ // Until loops are reliably broken
+ inc(iterator^.PortalCounter);
+
+ // calc gear speed along to the vector and the normal vector of the portal
+ if hasdxy then
+ begin
+ pspeed:= (Gear^.dX * iterator^.dX + Gear^.dY * iterator^.dY);
+ nspeed:= (nx * iterator^.dX + ny * iterator^.dY);
+ end
+ else
+ begin
+ pspeed:= hwAbs(cGravity * oy);
+ nspeed:= _0;
+ end;
+
+ // creating normal vector of connected (exit) portal
nx := conPortal^.dY;
ny := conPortal^.dX;
if conPortal^.Elasticity.isNegative then
@@ -3480,15 +3597,47 @@
else
ny.isNegative := not ny.isNegative;
+ // inverse cake's normal movement direction,
+ // as if it just walked through a hole
+ if iscake then
+ nspeed.isNegative:= not nspeed.isNegative;
+
//AddFileLog('poffs:'+cstr(poffs)+' noffs:'+cstr(noffs)+' pspeed:'+cstr(pspeed)+' nspeed:'+cstr(nspeed));
iterator^.dX := -pspeed * conPortal^.dX + nspeed * nx;
iterator^.dY := -pspeed * conPortal^.dY + nspeed * ny;
- if iterator^.Kind = gtCake then
- poffs := poffs * _0_5;
+
+ // make the gear's exit position close to the portal while
+ // still respecting the movement direction
+
+ // determine the distance (in exit vector direction)
+ // that we want the gear at
+ if iscake then
+ ox:= (r - _0_7)
+ else
+ ox:= (r + _1_9);
+ s:= ox / poffs;
+ poffs:= ox;
+ if (nspeed.QWordValue <> 0) and (pspeed > _0) then
+ noffs:= noffs * s * (nspeed / pspeed);
+
+ // move stuff with high normal offset closer to the portal's center
+ if not isbullet then
+ begin
+ s := hwAbs(noffs) + r - int2hwFloat(Gear^.Radius);
+ if s > _0 then
+ noffs:= noffs - SignAs(s,noffs)
+ end;
+
iterator^.X := conPortal^.X + poffs * conPortal^.dX + noffs * nx;
iterator^.Y := conPortal^.Y + poffs * conPortal^.dY + noffs * ny;
- FollowGear := iterator;
+ if not hasdxy and not (conPortal^.dY.isNegative) then
+ begin
+ iterator^.dY:= iterator^.dY + hwAbs(cGravity * (iterator^.Y - conPortal^.Y))
+ end;
+
+ if not isbullet then
+ FollowGear := iterator;
//AddFileLog('portal''d');
{
@@ -3496,6 +3645,20 @@
iterator^.dX := s * iterator^.dX;
iterator^.dY := s * iterator^.dY;
}
+ // This jiggles gears, to ensure a portal connection just placed under a gear takes effect.
+ iterator:= GearsList;
+ while iterator <> nil do
+ begin
+ if iterator^.Kind <> gtPortal then
+ begin
+ iterator^.Active:= true;
+ if iterator^.dY.QWordValue = _0.QWordValue then iterator^.dY.isNegative:= false;
+ iterator^.State:= iterator^.State or gstMoving;
+ DeleteCI(iterator);
+ //inc(iterator^.dY.QWordValue,10);
+ end;
+ iterator:= iterator^.NextGear
+ end;
if Gear^.Health > 1 then dec(Gear^.Health);
@@ -3871,7 +4034,8 @@
Gear^.dX.isNegative := not Gear^.dX.isNegative;
Gear^.dY.isNegative := not Gear^.dY.isNegative;
- Gear^.doStep := @doStepSineGunShotWork;
+ Gear^.doStep := @doStepSineGunShotWork;
+ performRumble();
end;
////////////////////////////////////////////////////////////////////////////////
@@ -3879,7 +4043,7 @@
var
HHGear: PGear;
rx, ry, speed: hwFloat;
- gX, gY: LongInt;
+ i, gX, gY: LongInt;
Fire: PGear;
begin
AllInactive := false;
@@ -3889,25 +4053,25 @@
gY := hwRound(Gear^.Y) + GetLaunchY(amBallgun, HHGear^.Angle);
if (GameTicks and $FF) = 0 then
- begin
+ begin
if (HHGear^.Message and gmRight) <> 0 then
- begin
+ begin
if HHGear^.dX.isNegative and (Gear^.Tag < 20) then inc(Gear^.Tag)
else if Gear^.Tag > 5 then dec(Gear^.Tag);
- end
+ end
else if (HHGear^.Message and gmLeft) <> 0 then
- begin
+ begin
if HHGear^.dX.isNegative and (Gear^.Tag > 5) then dec(Gear^.Tag)
else if Gear^.Tag < 20 then inc(Gear^.Tag);
- end
- end;
+ end
+ end;
dec(Gear^.Timer);
if Gear^.Timer = 0 then
- begin
+ begin
dec(Gear^.Health);
if (Gear^.Health mod 10) = 0 then
- begin
+ begin
rx := rndSign(getRandom * _0_1);
ry := rndSign(getRandom * _0_1);
speed := _0_8 * (_10 / Gear^.Tag);
@@ -3921,21 +4085,26 @@
Fire := AddGear(gx, gy, gtFlame, 0,
SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx,
AngleCos(HHGear^.Angle) * ( - speed) + ry, 0);
- end;
+ end;
Gear^.Timer:= Gear^.Tag
- end;
+ end;
if (Gear^.Health = 0) or (HHGear^.Damage <> 0) then
- begin
+ begin
DeleteGear(Gear);
AfterAttack
- end
+ end
else
- begin
- if Gear^.Tex <> nil then FreeTexture(Gear^.Tex);
- Gear^.Tex := RenderStringTex(trmsg[sidFuel] + ': ' + inttostr(round(Gear^.Health / 5)) +
- '%', cWhiteColor, fntSmall)
- end
+ begin
+ i:= Gear^.Health div 5;
+ if (i <> Gear^.Damage) and ((GameTicks and $3F) = 0) then
+ begin
+ Gear^.Damage:= i;
+ if Gear^.Tex <> nil then FreeTexture(Gear^.Tex);
+ Gear^.Tex := RenderStringTex(trmsg[sidFuel] + ': ' + inttostr(i) +
+ '%', cWhiteColor, fntSmall)
+ end
+ end
end;
procedure doStepFlamethrower(Gear: PGear);
@@ -4084,7 +4253,7 @@
Gear^.doStep := @doStepHammerHitWork
end;
-
+////////////////////////////////////////////////////////////////////////////////
procedure doStepResurrectorWork(Gear: PGear);
var
graves: TPGearArray;
@@ -4092,45 +4261,60 @@
hh: PHedgehog;
i: LongInt;
begin
+ if (TurnTimeLeft > 0) then
+ dec(TurnTimeLeft);
+
AllInactive := false;
hh := PHedgehog(Gear^.Hedgehog);
- RenderHealth(hh^);
- DrawCentered(hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy -
+ DrawCentered(hwRound(hh^.Gear^.X) + WorldDx, hwRound(hh^.Gear^.Y) + WorldDy -
cHHRadius - 14 - hh^.HealthTagTex^.h, hh^.HealthTagTex);
- DrawCircle(hwRound(Gear^.X), hwRound(Gear^.Y), Gear^.Radius, 1.5, 0, 0, $FF,
- $FF);
-
- doStepHedgehogMoving(hh^.Gear);
-
- if ((Gear^.Message and gmUp) <> 0) then begin
+ (*DrawCircle(hwRound(Gear^.X), hwRound(Gear^.Y), Gear^.Radius, 1.5, 0, 0, $FF,
+ $FF);*)
+
+ if ((Gear^.Message and gmUp) <> 0) then
+ begin
if (GameTicks and $F) <> 0 then exit;
- end else begin
- if (GameTicks and $1FF) <> 0 then exit;
- end;
-
- graves := GearsNear(hh^.Gear, gtGrave, Gear^.Radius);
-
- if Length(graves) = 0 then begin
+ end
+ else if (GameTicks and $1FF) <> 0 then exit;
+
+ if Gear^.Power < 45 then
+ begin
+ inc(Gear^.Power);
+ if not TestCollisionYwithGear(hh^.Gear, -1) then hh^.Gear^.Y := hh^.Gear^.Y - _1;
+ end;
+
+ graves := GearsNear(Gear^.X, Gear^.Y, gtGrave, Gear^.Radius);
+
+ if Length(graves) = 0 then
+ begin
StopSound(Gear^.SoundChannel);
Gear^.Timer := 250;
Gear^.doStep := @doStepIdle;
exit;
- end;
-
- if ((Gear^.Message and gmAttack) <> 0) and (hh^.Gear^.Health > 0) then begin
- i := getRandom(Length(graves));
+ end;
+
+ if ((Gear^.Message and gmAttack) <> 0) and (hh^.Gear^.Health > 0) and (TurnTimeLeft > 0) then
+ begin
+ if Length(graves) <= Gear^.Tag then Gear^.Tag:= 0;
dec(hh^.Gear^.Health);
- inc(graves[i]^.Health);
+ if (hh^.Gear^.Health = 0) and (hh^.Gear^.Damage = 0) then
+ hh^.Gear^.Damage:= 1;
+ RenderHealth(hh^);
+ inc(graves[Gear^.Tag]^.Health);
+ inc(Gear^.Tag)
{-for i:= 0 to High(graves) do begin
if hh^.Gear^.Health > 0 then begin
dec(hh^.Gear^.Health);
inc(graves[i]^.Health);
end;
end; -}
- end else begin
+ end
+ else
+ begin
// now really resurrect the hogs with the hp saved in the graves
- for i:= 0 to High(graves) do begin
- if graves[i]^.Health > 0 then begin
+ for i:= 0 to High(graves) do
+ if graves[i]^.Health > 0 then
+ begin
resgear := AddGear(hwRound(graves[i]^.X), hwRound(graves[i]^.Y),
gtHedgehog, gstWait, _0, _0, 0);
resgear^.Hedgehog := graves[i]^.Hedgehog;
@@ -4139,34 +4323,88 @@
DeleteGear(graves[i]);
RenderHealth(PHedgehog(resgear^.Hedgehog)^);
RecountTeamHealth(Phedgehog(resgear^.Hedgehog)^.Team);
- end;
- end;
+ PHedgehog(resgear^.Hedgehog)^.Effects[heResurrected]:= true;
+ if PHedgehog(resgear^.Hedgehog)^.Hat = 'NoHat' then
+ begin
+ FreeTexture(PHedgehog(resgear^.Hedgehog)^.HatTex);
+ PHedgehog(resgear^.Hedgehog)^.HatTex := Surface2Tex(
+ LoadImage(Pathz[ptHats] + '/Reserved/Zombie', ifNone),
+ True)
+ end
+ end;
+
+ hh^.Gear^.dY := _0;
+ hh^.Gear^.dX := _0;
+ doStepHedgehogMoving(hh^.Gear);
StopSound(Gear^.SoundChannel);
Gear^.Timer := 250;
Gear^.doStep := @doStepIdle;
- end;
+ end
+ //if hh^.Gear^.Health = 0 then doStepHedgehogFree(hh^.Gear);
end;
procedure doStepResurrector(Gear: PGear);
var
graves: TPGearArray;
- hh: PHedgehog;
i: LongInt;
begin
AllInactive := false;
- hh := PHedgehog(Gear^.Hedgehog);
- graves := GearsNear(hh^.Gear, gtGrave, Gear^.Radius);
-
- if Length(graves) > 0 then begin
- for i:= 0 to High(graves) do begin
+ graves := GearsNear(Gear^.X, Gear^.Y, gtGrave, Gear^.Radius);
+
+ if Length(graves) > 0 then
+ begin
+ for i:= 0 to High(graves) do
+ begin
PHedgehog(graves[i]^.Hedgehog)^.Gear := nil;
graves[i]^.Health := 0;
- end;
+ end;
Gear^.doStep := @doStepResurrectorWork;
- end else begin
+ end
+ else
+ begin
StopSound(Gear^.SoundChannel);
Gear^.Timer := 250;
Gear^.doStep := @doStepIdle;
- end;
+ end
end;
+////////////////////////////////////////////////////////////////////////////////
+procedure doStepNapalmBomb(Gear: PGear);
+var
+ i, gX, gY: LongInt;
+ dX, dY: hwFloat;
+begin
+ AllInactive := false;
+ doStepFallingGear(Gear);
+ if (Gear^.Timer > 0) and ((Gear^.State and gstCollision) <> 0) then
+ begin
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 10, EXPLAutoSound);
+ gX := hwRound(Gear^.X);
+ gY := hwRound(Gear^.Y);
+ for i:= 0 to 10 do
+ begin
+ dX := AngleCos(i * 2) * ((_0_1*(i div 5))) * (GetRandom + _1);
+ dY := AngleSin(i * 8) * _0_5 * (GetRandom + _1);
+ AddGear(gX, gY, gtFlame, 0, dX, dY, 0);
+ AddGear(gX, gY, gtFlame, 0, dX, -dY, 0);
+ AddGear(gX, gY, gtFlame, 0, -dX, dY, 0);
+ AddGear(gX, gY, gtFlame, 0, -dX, -dY, 0);
+ end;
+ DeleteGear(Gear);
+ exit
+ end;
+ if (Gear^.Timer = 0) then
+ begin
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 10, EXPLAutoSound);
+ for i:= -19 to 19 do
+ FollowGear := AddGear(hwRound(Gear^.X) + i div 3, hwRound(Gear^.Y), gtFlame, 0, _0_001 * i, _0, 0);
+ DeleteGear(Gear);
+ exit
+ end;
+ if (GameTicks and $3F) = 0 then
+ AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace);
+ dec(Gear^.Timer)
+end;
+
+////////////////////////////////////////////////////////////////////////////////
+
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/GearDrawing.inc
--- a/hedgewars/GearDrawing.inc Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/GearDrawing.inc Mon Nov 15 12:37:39 2010 +0100
@@ -1,10 +1,9 @@
-procedure DrawHH(Gear: PGear);
+procedure DrawHH(Gear: PGear; ox, oy: LongInt);
var i, t: LongInt;
amt: TAmmoType;
- hx, hy, cx, cy, tx, ty, sx, sy, m: LongInt; // hedgehog, crosshair, temp, sprite, direction
+ sign, hx, hy, cx, cy, tx, ty, sx, sy, m: LongInt; // hedgehog, crosshair, temp, sprite, direction
dx, dy, ax, ay, aAngle, dAngle, hAngle, lx, ly: real; // laser, change
defaultPos, HatVisible: boolean;
- VertexBuffer: array [0..1] of TVertex2f;
HH: PHedgehog;
CurWeapon: PAmmo;
begin
@@ -12,25 +11,27 @@
if HH^.Unplaced then exit;
m:= 1;
if ((Gear^.State and gstHHHJump) <> 0) and not cArtillery then m:= -1;
+sx:= ox + 1; // this offset is very common
+sy:= oy - 3;
+sign:= hwSign(Gear^.dX);
+
if (Gear^.State and gstHHDeath) <> 0 then
begin
- DrawSprite(sprHHDeath, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 26 + WorldDy, Gear^.Pos);
+ DrawSprite(sprHHDeath, ox - 16, oy - 26, Gear^.Pos);
Tint(HH^.Team^.Clan^.Color);
- DrawSprite(sprHHDeath, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 26 + WorldDy, Gear^.Pos + 8);
+ DrawSprite(sprHHDeath, ox - 16, oy - 26, Gear^.Pos + 8);
Tint($FF, $FF, $FF, $FF);
exit
end
else if (Gear^.State and gstHHGone) <> 0 then
begin
- DrawRotatedF(sprTeleport, hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, Gear^.Pos, hwSign(Gear^.dX), 0);
+ DrawRotatedF(sprTeleport, sx, sy, Gear^.Pos, sign, 0);
exit
end;
defaultPos:= true;
HatVisible:= false;
-sx:= hwRound(Gear^.X) + 1 + WorldDx;
-sy:= hwRound(Gear^.Y) - 3 + WorldDy;
if HH^.Effects[hePoisoned] then
begin
@@ -43,7 +44,7 @@
((CurAmmoGear = nil) or (CurAmmoGear^.Kind <> gtPickHammer)) then
begin
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
2,
0,
0);
@@ -52,7 +53,7 @@
if (Gear^.State and gstDrowning) <> 0 then
begin
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
1,
7,
0);
@@ -61,7 +62,7 @@
if (Gear^.State and gstLoser) <> 0 then
begin
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
2,
3,
0);
@@ -80,11 +81,11 @@
3: I need to extend the beam beyond land.
This routine perhaps should be pushed into uStore or somesuch instead of continuuing the increase in size of this function.
*)
- dx:= hwSign(Gear^.dX) * m * Sin(Gear^.Angle * pi / cMaxAngle);
+ dx:= sign * m * Sin(Gear^.Angle * pi / cMaxAngle);
dy:= -Cos(Gear^.Angle * pi / cMaxAngle);
if cLaserSighting then
begin
- lx:= GetLaunchX(HH^.CurAmmoType, hwSign(Gear^.dX) * m, Gear^.Angle);
+ lx:= GetLaunchX(HH^.CurAmmoType, sign * m, Gear^.Angle);
ly:= GetLaunchY(HH^.CurAmmoType, Gear^.Angle);
// ensure we start outside the hedgehog (he's solid after all)
@@ -95,8 +96,8 @@
end;
// add hog's position
- lx:= lx + hwRound(Gear^.X);
- ly:= ly + hwRound(Gear^.Y);
+ lx:= lx + ox - WorldDx;
+ ly:= ly + oy - WorldDy;
// decrease number of iterations required
ax:= dx * 4;
@@ -124,53 +125,38 @@
//if (abs(lx-tx)>8) or (abs(ly-ty)>8) then
begin
- glDisable(GL_TEXTURE_2D);
- glEnable(GL_LINE_SMOOTH);
-
- glLineWidth(1.0);
-
- Tint($FF, $00, $00, $C0);
- VertexBuffer[0].X:= hx + WorldDx;
- VertexBuffer[0].Y:= hy + WorldDy;
- VertexBuffer[1].X:= tx + WorldDx;
- VertexBuffer[1].Y:= ty + WorldDy;
-
- glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
- glDrawArrays(GL_LINES, 0, Length(VertexBuffer));
- Tint($FF, $FF, $FF, $FF);
- glEnable(GL_TEXTURE_2D);
- glDisable(GL_LINE_SMOOTH);
+ DrawLine(hx, hy, tx, ty, 1.0, $FF, $00, $00, $C0);
end;
end;
// draw crosshair
- cx:= Round(hwRound(Gear^.X) + dx * 80 + GetLaunchX(HH^.CurAmmoType, hwSign(Gear^.dX) * m, Gear^.Angle));
+ cx:= Round(hwRound(Gear^.X) + dx * 80 + GetLaunchX(HH^.CurAmmoType, sign * m, Gear^.Angle));
cy:= Round(hwRound(Gear^.Y) + dy * 80 + GetLaunchY(HH^.CurAmmoType, Gear^.Angle));
DrawRotatedTex(HH^.Team^.CrosshairTex,
12, 12, cx + WorldDx, cy + WorldDy, 0,
- hwSign(Gear^.dX) * (Gear^.Angle * 180.0) / cMaxAngle);
+ sign * (Gear^.Angle * 180.0) / cMaxAngle);
end;
- hx:= hwRound(Gear^.X) + 8 * hwSign(Gear^.dX) + WorldDx;
- hy:= hwRound(Gear^.Y) - 2 + WorldDy;
+ hx:= ox + 8 * sign;
+ hy:= oy - 2;
aangle:= Gear^.Angle * 180 / cMaxAngle - 90;
if CurAmmoGear <> nil then
begin
case CurAmmoGear^.Kind of
gtShotgunShot: begin
if (CurAmmoGear^.State and gstAnimation <> 0) then
- DrawRotated(sprShotgun, hx, hy, hwSign(Gear^.dX), aangle)
+ DrawRotated(sprShotgun, hx, hy, sign, aangle)
else
- DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
+ DrawRotated(sprHandShotgun, hx, hy, sign, aangle);
end;
- gtDEagleShot: DrawRotated(sprDEagle, hx, hy, hwSign(Gear^.dX), aangle);
+ gtDEagleShot: DrawRotated(sprDEagle, hx, hy, sign, aangle);
gtSniperRifleShot: begin
if (CurAmmoGear^.State and gstAnimation <> 0) then
- DrawRotatedF(sprSniperRifle, hx, hy, 1, hwSign(Gear^.dX), aangle)
+ DrawRotatedF(sprSniperRifle, hx, hy, 1, sign, aangle)
else
- DrawRotatedF(sprSniperRifle, hx, hy, 0, hwSign(Gear^.dX), aangle)
+ DrawRotatedF(sprSniperRifle, hx, hy, 0, sign, aangle)
end;
- gtBallgun: DrawRotated(sprHandBallgun, hx, hy, hwSign(Gear^.dX), aangle);
+ gtBallgun: DrawRotated(sprHandBallgun, hx, hy, sign, aangle);
gtRCPlane: begin
- DrawRotated(sprHandPlane, hx, hy, hwSign(Gear^.dX), 0);
+ DrawRotated(sprHandPlane, hx, hy, sign, 0);
defaultPos:= false
end;
gtRope: begin
@@ -185,11 +171,9 @@
hAngle:= 0;
i:= -1
end;
- sx:= hwRound(Gear^.X) + WorldDx;
- sy:= hwRound(Gear^.Y) + WorldDy;
if ((Gear^.State and gstWinner) = 0) then
begin
- DrawHedgehog(sx, sy,
+ DrawHedgehog(ox, oy,
i,
1,
0,
@@ -197,24 +181,24 @@
with HH^ do
if (HatTex <> nil) then
begin
- DrawRotatedTextureF(HatTex, 1.0, -1.0, -6.0, sx, sy, 0, i, 32, 32,
+ DrawRotatedTextureF(HatTex, 1.0, -1.0, -6.0, ox, oy, 0, i, 32, 32,
i*DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + hAngle);
if HatTex^.w > 64 then
begin
Tint(HH^.Team^.Clan^.Color);
- DrawRotatedTextureF(HatTex, 1.0, -1.0, -6.0, sx, sy, 32, i, 32, 32,
+ DrawRotatedTextureF(HatTex, 1.0, -1.0, -6.0, ox, oy, 32, i, 32, 32,
i*DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + hAngle);
Tint($FF, $FF, $FF, $FF)
end
end
end;
- DrawAltWeapon(Gear, sx, sy);
+ DrawAltWeapon(Gear, ox, oy);
defaultPos:= false
end;
gtBlowTorch: begin
- DrawRotated(sprBlowTorch, hx, hy, hwSign(Gear^.dX), aangle);
+ DrawRotated(sprBlowTorch, hx, hy, sign, aangle);
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
3,
HH^.visStepPos div 2,
0);
@@ -224,9 +208,9 @@
DrawTextureF(HatTex,
1,
sx,
- hwRound(Gear^.Y) - 8 + WorldDy,
+ sy - 5,
0,
- hwSign(Gear^.dX),
+ sign,
32,
32);
if HatTex^.w > 64 then
@@ -235,9 +219,9 @@
DrawTextureF(HatTex,
1,
sx,
- hwRound(Gear^.Y) - 8 + WorldDy,
+ sy - 5,
32,
- hwSign(Gear^.dX),
+ sign,
32,
32);
Tint($FF, $FF, $FF, $FF)
@@ -245,10 +229,10 @@
end;
defaultPos:= false
end;
- gtShover: DrawRotated(sprHandBaseball, hx, hy, hwSign(Gear^.dX), aangle + 180);
+ gtShover: DrawRotated(sprHandBaseball, hx, hy, sign, aangle + 180);
gtFirePunch: begin
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
1,
4,
0);
@@ -264,7 +248,7 @@
sx,
sy,
1,
- hwSign(Gear^.dX),
+ sign,
0);
defaultPos:= false
end;
@@ -273,52 +257,49 @@
sx,
sy,
1,
- hwSign(Gear^.dX),
+ sign,
0);
defaultPos:= false
end;
gtResurrector: begin
- DrawRotated(sprHandResurrector, hwRound(Gear^.X) + WorldDx,
- hwRound(Gear^.Y) + WorldDy, 0, 0);
- defaultPos := false;
- end;
+ DrawRotated(sprHandResurrector, sx, sy, 0, 0);
+ defaultPos:= false
+ end;
gtKamikaze: begin
if CurAmmoGear^.Pos = 0 then
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
1,
6,
0)
else
DrawRotatedF(sprKamikaze,
- hwRound(Gear^.X) + WorldDx,
- hwRound(Gear^.Y) + WorldDy,
+ ox, oy,
CurAmmoGear^.Pos - 1,
- hwSign(Gear^.dX),
+ sign,
aangle);
defaultPos:= false
end;
gtSeduction: begin
if CurAmmoGear^.Pos >= 6 then
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
2,
2,
0)
else
begin
DrawRotatedF(sprDress,
- hwRound(Gear^.X) + WorldDx,
- hwRound(Gear^.Y) + WorldDy,
+ ox, oy,
CurAmmoGear^.Pos,
- hwSign(Gear^.dX),
+ sign,
0);
- DrawSprite(sprCensored, hwRound(Gear^.X) - 32 + WorldDx, hwRound(Gear^.Y) - 20 + WorldDy, 0)
+ DrawSprite(sprCensored, ox - 32, oy - 20, 0)
end;
defaultPos:= false
end;
gtFlamethrower: begin
- DrawRotatedF(sprHandFlamethrower, hx, hy, (RealTicks div 125) mod 4, hwSign(Gear^.dX), aangle);
+ DrawRotatedF(sprHandFlamethrower, hx, hy, (RealTicks div 125) mod 4, sign, aangle);
if CurAmmoGear^.Tex <> nil then DrawCentered(sx, sy - 40, CurAmmoGear^.Tex)
end;
end;
@@ -329,7 +310,7 @@
gtSniperRifleShot,
gtShover: begin
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
0,
4,
0);
@@ -342,7 +323,7 @@
if ((Gear^.State and gstHHJumping) <> 0) then
begin
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX)*m,
+ sign*m,
1,
1,
0);
@@ -353,7 +334,7 @@
if (Gear^.Message and (gmLeft or gmRight) <> 0) and (not isCursorVisible) then
begin
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
0,
HH^.visStepPos div 2,
0);
@@ -374,7 +355,7 @@
sx,
sy,
Gear^.Pos,
- hwSign(Gear^.dX),
+ sign,
0.0);
defaultPos:= false
end
@@ -393,66 +374,64 @@
amt:= CurrentHedgehog^.CurAmmoType;
CurWeapon:= GetAmmoEntry(HH^);
case amt of
- amBazooka: DrawRotated(sprHandBazooka, hx, hy, hwSign(Gear^.dX), aangle);
- amMortar: DrawRotated(sprHandMortar, hx, hy, hwSign(Gear^.dX), aangle);
- amMolotov: DrawRotated(sprHandMolotov, hx, hy, hwSign(Gear^.dX), aangle);
- amBallgun: DrawRotated(sprHandBallgun, hx, hy, hwSign(Gear^.dX), aangle);
- amDrill: DrawRotated(sprHandDrill, hx, hy, hwSign(Gear^.dX), aangle);
- amRope: DrawRotated(sprHandRope, hx, hy, hwSign(Gear^.dX), aangle);
- amShotgun: DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
- amDEagle: DrawRotated(sprHandDEagle, hx, hy, hwSign(Gear^.dX), aangle);
- amSineGun: DrawRotated(sprHandShotgun, hx, hy, hwSign(Gear^.dX), aangle);
+ amBazooka: DrawRotated(sprHandBazooka, hx, hy, sign, aangle);
+ amMortar: DrawRotated(sprHandMortar, hx, hy, sign, aangle);
+ amMolotov: DrawRotated(sprHandMolotov, hx, hy, sign, aangle);
+ amBallgun: DrawRotated(sprHandBallgun, hx, hy, sign, aangle);
+ amDrill: DrawRotated(sprHandDrill, hx, hy, sign, aangle);
+ amRope: DrawRotated(sprHandRope, hx, hy, sign, aangle);
+ amShotgun: DrawRotated(sprHandShotgun, hx, hy, sign, aangle);
+ amDEagle: DrawRotated(sprHandDEagle, hx, hy, sign, aangle);
+ amSineGun: DrawRotated(sprHandShotgun, hx, hy, sign, aangle);
amPortalGun: if (CurWeapon^.Timer and 2) <> 0 then // Add a new Hedgehog value instead of abusing timer?
- DrawRotatedF(sprPortalGun, hx, hy, 0, hwSign(Gear^.dX), aangle)
+ DrawRotatedF(sprPortalGun, hx, hy, 0, sign, aangle)
else
- DrawRotatedF(sprPortalGun, hx, hy, 1+(CurWeapon^.Timer and 1), hwSign(Gear^.dX), aangle);
- amSniperRifle: DrawRotatedF(sprSniperRifle, hx, hy, 0, hwSign(Gear^.dX), aangle);
- amBlowTorch: DrawRotated(sprHandBlowTorch, hx, hy, hwSign(Gear^.dX), aangle);
- amCake: DrawRotated(sprHandCake, hx, hy, hwSign(Gear^.dX), aangle);
- amGrenade: DrawRotated(sprHandGrenade, hx, hy, hwSign(Gear^.dX), aangle);
- amWatermelon: DrawRotated(sprHandMelon, hx, hy, hwSign(Gear^.dX), aangle);
- amSkip: DrawRotated(sprHandSkip, hx, hy, hwSign(Gear^.dX), aangle);
- amClusterBomb: DrawRotated(sprHandCluster, hx, hy, hwSign(Gear^.dX), aangle);
- amDynamite: DrawRotated(sprHandDynamite, hx, hy, hwSign(Gear^.dX), aangle);
- amHellishBomb: DrawRotated(sprHandHellish, hx, hy, hwSign(Gear^.dX), aangle);
- amGasBomb: DrawRotated(sprHandCheese, hx, hy, hwSign(Gear^.dX), aangle);
- amMine: DrawRotated(sprHandMine, hx, hy, hwSign(Gear^.dX), aangle);
- amSMine: DrawRotated(sprHandSMine, hx, hy, hwSign(Gear^.dX), aangle);
- amSeduction: DrawRotated(sprHandSeduction, hx, hy, hwSign(Gear^.dX), aangle);
- amVampiric: DrawRotatedF(sprHandVamp, hx, hy, (RealTicks div 125) mod 4, hwSign(Gear^.dX), aangle);
+ DrawRotatedF(sprPortalGun, hx, hy, 1+(CurWeapon^.Timer and 1), sign, aangle);
+ amSniperRifle: DrawRotatedF(sprSniperRifle, hx, hy, 0, sign, aangle);
+ amBlowTorch: DrawRotated(sprHandBlowTorch, hx, hy, sign, aangle);
+ amCake: DrawRotated(sprHandCake, hx, hy, sign, aangle);
+ amGrenade: DrawRotated(sprHandGrenade, hx, hy, sign, aangle);
+ amWatermelon: DrawRotated(sprHandMelon, hx, hy, sign, aangle);
+ amSkip: DrawRotated(sprHandSkip, hx, hy, sign, aangle);
+ amClusterBomb: DrawRotated(sprHandCluster, hx, hy, sign, aangle);
+ amDynamite: DrawRotated(sprHandDynamite, hx, hy, sign, aangle);
+ amHellishBomb: DrawRotated(sprHandHellish, hx, hy, sign, aangle);
+ amGasBomb: DrawRotated(sprHandCheese, hx, hy, sign, aangle);
+ amMine: DrawRotated(sprHandMine, hx, hy, sign, aangle);
+ amSMine: DrawRotated(sprHandSMine, hx, hy, sign, aangle);
+ amSeduction: DrawRotated(sprHandSeduction, hx, hy, sign, aangle);
+ amVampiric: DrawRotatedF(sprHandVamp, hx, hy, (RealTicks div 125) mod 4, sign, aangle);
amRCPlane: begin
- DrawRotated(sprHandPlane, hx, hy, hwSign(Gear^.dX), 0);
+ DrawRotated(sprHandPlane, hx, hy, sign, 0);
defaultPos:= false
end;
amGirder: begin
- DrawRotated(sprHandConstruction, hx, hy, hwSign(Gear^.dX), aangle);
+ DrawRotated(sprHandConstruction, hx, hy, sign, aangle);
DrawSpriteClipped(sprGirder,
- sx-256,
- sy-256,
+ ox-256,
+ oy-256,
LongInt(topY)+WorldDy,
LongInt(rightX)+WorldDx,
cWaterLine+WorldDy,
LongInt(leftX)+WorldDx)
end;
- amBee: DrawRotatedF(sprHandBee, hx, hy, (RealTicks div 125) mod 4, hwSign(Gear^.dX), aangle);
- amFlamethrower: DrawRotatedF(sprHandFlamethrower, hx, hy, (RealTicks div 125) mod 4, hwSign(Gear^.dX), aangle);
- amResurrector: begin
- DrawCircle(hwRound(Gear^.X), hwRound(Gear^.y), 100, 1.5, 0, 0,
- $FF, $FF); // I'd rather not like to hardcore 100 here
- end;
+ amBee: DrawRotatedF(sprHandBee, hx, hy, (RealTicks div 125) mod 4, sign, aangle);
+ amFlamethrower: DrawRotatedF(sprHandFlamethrower, hx, hy, (RealTicks div 125) mod 4, sign, aangle);
+ amResurrector: DrawCircle(ox, oy, 98, 4, $F5, $DB, $35, $AA); // I'd rather not like to hardcode 100 here
end;
case amt of
amAirAttack,
- amMineStrike: DrawRotated(sprHandAirAttack, sx, hwRound(Gear^.Y) + WorldDy, hwSign(Gear^.dX), 0);
+ amMineStrike,
+ amDrillStrike: DrawRotated(sprHandAirAttack, sx, oy, sign, 0);
amPickHammer: DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
1,
2,
0);
- amTeleport: DrawRotatedF(sprTeleport, sx, sy, 0, hwSign(Gear^.dX), 0);
+ amTeleport: DrawRotatedF(sprTeleport, sx, sy, 0, sign, 0);
amKamikaze: DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
1,
5,
0);
@@ -460,17 +439,17 @@
sx,
sy,
0,
- hwSign(Gear^.dX),
+ sign,
0);
amHammer: DrawRotatedF(sprHammer,
sx,
sy,
0,
- hwSign(Gear^.dX),
+ sign,
0);
else
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
0,
4,
0);
@@ -482,17 +461,17 @@
DrawTextureF(HatTex,
HatVisibility,
sx,
- hwRound(Gear^.Y) - 8 + WorldDy,
+ sy - 5,
0,
- hwSign(Gear^.dX),
+ sign,
32,
32); *)
end;
case amt of
amBaseballBat: DrawRotated(sprHandBaseball,
- hwRound(Gear^.X) + 1 - 4 * hwSign(Gear^.dX) + WorldDx,
- hwRound(Gear^.Y) + 6 + WorldDy, hwSign(Gear^.dX), aangle);
+ sx - 4 * sign,
+ sy + 9, sign, aangle);
end;
defaultPos:= false
@@ -504,7 +483,7 @@
and (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) > _0_003) then
begin
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX),
+ sign,
2,
1,
Gear^.DirAngle);
@@ -514,7 +493,7 @@
if ((Gear^.State and gstHHJumping) <> 0) then
begin
DrawHedgehog(sx, sy,
- hwSign(Gear^.dX)*m,
+ sign*m,
1,
1,
0);
@@ -530,7 +509,7 @@
sx,
sy,
(RealTicks div 128 + Gear^.Pos) mod 19,
- hwSign(Gear^.dX),
+ sign,
0);
HatVisible:= true;
end;
@@ -550,9 +529,9 @@
DrawTextureF(HatTex,
HatVisibility,
sx,
- hwRound(Gear^.Y) - 8 + WorldDy,
+ sy - 5,
(RealTicks div 128 + Gear^.Pos) mod 19,
- hwSign(Gear^.dX),
+ sign,
32,
32);
if HatTex^.w > 64 then
@@ -561,9 +540,9 @@
DrawTextureF(HatTex,
HatVisibility,
sx,
- hwRound(Gear^.Y) - 8 + WorldDy,
+ sy - 5,
(RealTicks div 128 + Gear^.Pos) mod 19 + 32,
- hwSign(Gear^.dX),
+ sign,
32,
32);
Tint($FF, $FF, $FF, $FF)
@@ -574,9 +553,9 @@
DrawTextureF(HatTex,
HatVisibility,
sx,
- hwRound(Gear^.Y) - 8 + WorldDy,
+ sy - 5,
0,
- hwSign(Gear^.dX)*m,
+ sign*m,
32,
32);
if HatTex^.w > 64 then
@@ -585,9 +564,9 @@
DrawTextureF(HatTex,
HatVisibility,
sx,
- hwRound(Gear^.Y) - 8 + WorldDy,
+ sy - 5,
32,
- hwSign(Gear^.dX)*m,
+ sign*m,
32,
32);
Tint($FF, $FF, $FF, $FF)
@@ -624,25 +603,26 @@
with HH^ do
begin
if ((Gear^.State and not gstWinner) = 0)
+ or ((Gear^.State = gstWait) and (Gear^.dY.QWordValue = 0))
or (bShowFinger and ((Gear^.State and gstHHDriven) <> 0)) then
begin
- t:= hwRound(Gear^.Y) - cHHRadius - 12 + WorldDy;
+ t:= sy - cHHRadius - 9;
if (cTagsMask and htTransparent) <> 0 then
Tint($FF, $FF, $FF, $80);
if ((cTagsMask and htHealth) <> 0) then
begin
dec(t, HealthTagTex^.h + 2);
- DrawCentered(hwRound(Gear^.X) + WorldDx, t, HealthTagTex)
+ DrawCentered(ox, t, HealthTagTex)
end;
if (cTagsMask and htName) <> 0 then
begin
dec(t, NameTagTex^.h + 2);
- DrawCentered(hwRound(Gear^.X) + WorldDx, t, NameTagTex)
+ DrawCentered(ox, t, NameTagTex)
end;
if (cTagsMask and htTeamName) <> 0 then
begin
dec(t, Team^.NameTagTex^.h + 2);
- DrawCentered(hwRound(Gear^.X) + WorldDx, t, Team^.NameTagTex)
+ DrawCentered(ox, t, Team^.NameTagTex)
end;
if (cTagsMask and htTransparent) <> 0 then
Tint($FF, $FF, $FF, $FF)
@@ -650,12 +630,12 @@
if (Gear^.State and gstHHDriven) <> 0 then // Current hedgehog
begin
if bShowFinger and ((Gear^.State and gstHHDriven) <> 0) then
- DrawSprite(sprFinger, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 64 + WorldDy,
+ DrawSprite(sprFinger, ox - 16, oy - 64,
GameTicks div 32 mod 16);
if (Gear^.State and gstDrowning) = 0 then
if (Gear^.State and gstHHThinking) <> 0 then
- DrawSprite(sprQuestion, hwRound(Gear^.X) - 10 + WorldDx, hwRound(Gear^.Y) - cHHRadius - 34 + WorldDy, (RealTicks shr 9) mod 8)
+ DrawSprite(sprQuestion, ox - 10, oy - cHHRadius - 34, (RealTicks shr 9) mod 8)
end
end;
@@ -664,6 +644,11 @@
Tint($00, $FF, $40, $80);
DrawRotatedTextureF(SpritesData[sprSmokeWhite].texture, 1.5, 0, 0, sx, sy, 0, 1, 22, 22, 360 - (RealTicks shr 37) mod 360);
end;
+if HH^.Effects[heResurrected] then
+ begin
+ Tint($f5, $db, $35, $20);
+ DrawSprite(sprVampiric, sx - 24, sy - 24, 0);
+ end;
if Gear^.Invulnerable then
begin
@@ -674,7 +659,7 @@
(CurrentHedgehog^.Gear <> nil) and
(CurrentHedgehog^.Gear = Gear) then
begin
- Tint($FF, $FF, $FF, max($40, floor($FF * abs(1 - (RealTicks mod 1500) / 750))));
+ Tint($FF, 0, 0, max($40, floor($FF * abs(1 - (RealTicks mod 1500) / 750))));
DrawSprite(sprVampiric, sx - 24, sy - 24, 0);
end;
Tint($FF, $FF, $FF, $FF)
@@ -683,122 +668,135 @@
procedure DrawGears;
var Gear, HHGear: PGear;
i: Longword;
- startX, endX, startY, endY: LongInt;
+ x, y, startX, endX, startY, endY: LongInt;
begin
Gear:= GearsList;
while Gear<>nil do
begin
+ x:= hwRound(Gear^.X) + WorldDx;
+ y:= hwRound(Gear^.Y) + WorldDy;
case Gear^.Kind of
- gtAmmo_Bomb: DrawRotated(sprBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
- gtGasBomb: DrawRotated(sprCheese, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
- gtMolotov: DrawRotated(sprMolotov, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
+ gtBomb: DrawRotated(sprBomb, x, y, 0, Gear^.DirAngle);
+ gtGasBomb: DrawRotated(sprCheese, x, y, 0, Gear^.DirAngle);
+ gtMolotov: DrawRotated(sprMolotov, x, y, 0, Gear^.DirAngle);
gtRCPlane: begin
if (Gear^.Tag = -1) then
- DrawRotated(sprPlane, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, -1, DxDy2Angle(Gear^.dX, Gear^.dY) + 90)
+ DrawRotated(sprPlane, x, y, -1, DxDy2Angle(Gear^.dX, Gear^.dY) + 90)
else
- DrawRotated(sprPlane, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy,0,DxDy2Angle(Gear^.dY, Gear^.dX));
+ DrawRotated(sprPlane, x, y,0,DxDy2Angle(Gear^.dY, Gear^.dX));
if ((TrainingFlags and tfRCPlane) <> 0) and (TrainingTargetGear <> nil) and ((Gear^.State and gstDrowning) = 0) then
- DrawRotatedf(sprFinger, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, GameTicks div 32 mod 16, 0, DxDy2Angle(Gear^.X - TrainingTargetGear^.X, TrainingTargetGear^.Y - Gear^.Y));
+ DrawRotatedf(sprFinger, x, y, GameTicks div 32 mod 16, 0, DxDy2Angle(Gear^.X - TrainingTargetGear^.X, TrainingTargetGear^.Y - Gear^.Y));
end;
- gtBall: DrawRotatedf(sprBalls, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tag,0, Gear^.DirAngle);
+ gtBall: DrawRotatedf(sprBalls, x, y, Gear^.Tag,0, Gear^.DirAngle);
gtPortal: if ((Gear^.Tag and 1) = 0) // still moving?
or (Gear^.IntersectGear = nil) or (Gear^.IntersectGear^.IntersectGear <> Gear) // not linked&backlinked?
or ((Gear^.IntersectGear^.Tag and 1) = 0) then // linked portal still moving?
- DrawRotatedf(sprPortal, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, Gear^.Tag, hwSign(Gear^.dX), Gear^.DirAngle)
- else DrawRotatedf(sprPortal, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 4 + Gear^.Tag div 2, hwSign(Gear^.dX), Gear^.DirAngle);
+ DrawRotatedf(sprPortal, x, y, Gear^.Tag, hwSign(Gear^.dX), Gear^.DirAngle)
+ else DrawRotatedf(sprPortal, x, y, 4 + Gear^.Tag div 2, hwSign(Gear^.dX), Gear^.DirAngle);
- gtDrill: DrawRotated(sprDrill, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
+ gtDrill: if (Gear^.State and gsttmpFlag) <> 0 then
+ DrawRotated(sprAirDrill, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX))
+ else
+ DrawRotated(sprDrill, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
- gtHedgehog: DrawHH(Gear);
+ gtHedgehog: DrawHH(Gear, x, y);
+
+ gtShell: DrawRotated(sprBazookaShell, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
- gtAmmo_Grenade: DrawRotated(sprGrenade, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
-
- gtGrave: DrawTextureF(PHedgehog(Gear^.Hedgehog)^.Team^.GraveTex, 1, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, (GameTicks shr 7+Gear^.uid) and 7, 1, 32, 32);
-
- gtBee: DrawRotatedF(sprBee, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, (GameTicks shr 5) mod 2, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
-
- gtPickHammer: DrawSprite(sprPHammer, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 50 + LongInt(((GameTicks shr 5) and 1) * 2) + WorldDy, 0);
+ gtGrave: begin
+ DrawTextureF(PHedgehog(Gear^.Hedgehog)^.Team^.GraveTex, 1, x, y, (GameTicks shr 7+Gear^.uid) and 7, 1, 32, 32);
+ if Gear^.Health > 0 then
+ begin
+ //Tint($33, $33, $FF, max($40, floor($FF * abs(1 - (GameTicks mod (6000 div Gear^.Health)) / 750))));
+ Tint($f5, $db, $35, max($40, floor($FF * abs(1 - (GameTicks mod 1500) / (750 + Gear^.Health)))));
+ //Tint($FF, $FF, $FF, max($40, floor($FF * abs(1 - (RealTicks mod 1500) / 750))));
+ DrawSprite(sprVampiric, x - 24, y - 24, 0);
+ Tint($FF, $FF, $FF, $FF)
+ end
+ end;
+ gtBee: DrawRotatedF(sprBee, x, y, (GameTicks shr 5) mod 2, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
+ gtPickHammer: DrawSprite(sprPHammer, x - 16, y - 50 + LongInt(((GameTicks shr 5) and 1) * 2), 0);
gtRope: DrawRope(Gear);
gtMine: if (((Gear^.State and gstAttacking) = 0)or((Gear^.Timer and $3FF) < 420)) and (Gear^.Health <> 0) then
- DrawRotated(sprMineOff, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle)
- else if Gear^.Health <> 0 then DrawRotated(sprMineOn, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle)
- else DrawRotated(sprMineDead, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
+ DrawRotated(sprMineOff, x, y, 0, Gear^.DirAngle)
+ else if Gear^.Health <> 0 then DrawRotated(sprMineOn, x, y, 0, Gear^.DirAngle)
+ else DrawRotated(sprMineDead, x, y, 0, Gear^.DirAngle);
gtSMine: if (((Gear^.State and gstAttacking) = 0)or((Gear^.Timer and $3FF) < 420)) and (Gear^.Health <> 0) then
- DrawRotated(sprSMineOff, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle)
- else if Gear^.Health <> 0 then DrawRotated(sprSMineOn, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle)
- else DrawRotated(sprMineDead, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
+ DrawRotated(sprSMineOff, x, y, 0, Gear^.DirAngle)
+ else if Gear^.Health <> 0 then DrawRotated(sprSMineOn, x, y, 0, Gear^.DirAngle)
+ else DrawRotated(sprMineDead, x, y, 0, Gear^.DirAngle);
gtCase: case Gear^.Pos of
posCaseAmmo : begin
i:= (GameTicks shr 6) mod 64;
if i > 18 then i:= 0;
- DrawSprite(sprCase, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 24 + WorldDy, i);
+ DrawSprite(sprCase, x - 24, y - 24, i);
end;
posCaseHealth: begin
i:= ((GameTicks shr 6) + 38) mod 64;
if i > 13 then i:= 0;
- DrawSprite(sprFAid, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 24 + WorldDy, i);
+ DrawSprite(sprFAid, x - 24, y - 24, i);
end;
posCaseUtility: begin
i:= (GameTicks shr 6) mod 70;
if i > 23 then i:= 0;
i:= i mod 12;
- DrawSprite(sprUtility, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 24 + WorldDy, i);
+ DrawSprite(sprUtility, x - 24, y - 24, i);
end;
end;
gtExplosives: begin
if ((Gear^.State and gstDrowning) <> 0) then
- DrawSprite(sprExplosivesRoll, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 24 + WorldDy, 0)
+ DrawSprite(sprExplosivesRoll, x - 24, y - 24, 0)
else if Gear^.State and gstAnimation = 0 then
begin
i:= (GameTicks shr 6 + Gear^.uid*3) mod 64;
if i > 18 then i:= 0;
- DrawSprite(sprExplosives, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 24 + WorldDy, i)
+ DrawSprite(sprExplosives, x - 24, y - 24, i)
end
else if Gear^.State and gsttmpFlag = 0 then
- DrawRotatedF(sprExplosivesRoll, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) +4 + WorldDy, 0, 0, Gear^.DirAngle)
+ DrawRotatedF(sprExplosivesRoll, x, y + 4, 0, 0, Gear^.DirAngle)
else
- DrawRotatedF(sprExplosivesRoll, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) +4 + WorldDy, 1, 0, Gear^.DirAngle);
+ DrawRotatedF(sprExplosivesRoll, x, y + 4, 1, 0, Gear^.DirAngle);
end;
- gtDynamite: DrawSprite2(sprDynamite, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 25 + WorldDy, Gear^.Tag and 1, Gear^.Tag shr 1);
- gtClusterBomb: DrawRotated(sprClusterBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
- gtCluster: DrawSprite(sprClusterParticle, hwRound(Gear^.X) - 8 + WorldDx, hwRound(Gear^.Y) - 8 + WorldDy, 0);
- gtFlame: DrawTextureF(SpritesData[sprFlame].Texture, 2 / (Gear^.Tag mod 3 + 2), hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, (GameTicks shr 7 + LongWord(Gear^.Tag)) mod 8, 1, 16, 16);
+ gtDynamite: DrawSprite2(sprDynamite, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1);
+ gtClusterBomb: DrawRotated(sprClusterBomb, x, y, 0, Gear^.DirAngle);
+ gtCluster: DrawSprite(sprClusterParticle, x - 8, y - 8, 0);
+ gtFlame: DrawTextureF(SpritesData[sprFlame].Texture, 2 / (Gear^.Tag mod 3 + 2), x, y, (GameTicks shr 7 + LongWord(Gear^.Tag)) mod 8, 1, 16, 16);
gtParachute: begin
- DrawSprite(sprParachute, hwRound(Gear^.X) - 24 + WorldDx, hwRound(Gear^.Y) - 48 + WorldDy, 0);
- DrawAltWeapon(Gear, hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy)
+ DrawSprite(sprParachute, x - 24, y - 48, 0);
+ DrawAltWeapon(Gear, x + 1, y - 3)
end;
- gtAirAttack: if Gear^.Tag > 0 then DrawSprite(sprAirplane, hwRound(Gear^.X) - SpritesData[sprAirplane].Width div 2 + WorldDx, hwRound(Gear^.Y) - SpritesData[sprAirplane].Height div 2 + WorldDy, 0)
- else DrawSprite(sprAirplane, hwRound(Gear^.X) - SpritesData[sprAirplane].Width div 2 + WorldDx, hwRound(Gear^.Y) - SpritesData[sprAirplane].Height div 2 + WorldDy, 1);
- gtAirBomb: DrawRotated(sprAirBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
+ gtAirAttack: if Gear^.Tag > 0 then DrawSprite(sprAirplane, x - SpritesData[sprAirplane].Width div 2, y - SpritesData[sprAirplane].Height div 2, 0)
+ else DrawSprite(sprAirplane, x - SpritesData[sprAirplane].Width div 2, y - SpritesData[sprAirplane].Height div 2, 1);
+ gtAirBomb: DrawRotated(sprAirBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
gtTeleport: begin
HHGear:= PHedgehog(Gear^.Hedgehog)^.Gear;
- if not PHedgehog(Gear^.Hedgehog)^.Unplaced then DrawRotatedF(sprTeleport, hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, Gear^.Pos, hwSign(Gear^.dX), 0);
+ if not PHedgehog(Gear^.Hedgehog)^.Unplaced then DrawRotatedF(sprTeleport, x + 1, y - 3, Gear^.Pos, hwSign(Gear^.dX), 0);
DrawRotatedF(sprTeleport, hwRound(HHGear^.X) + 1 + WorldDx, hwRound(HHGear^.Y) - 3 + WorldDy, 11 - Gear^.Pos, hwSign(HHGear^.dX), 0);
end;
- gtSwitcher: DrawSprite(sprSwitch, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 56 + WorldDy, (GameTicks shr 6) mod 12);
+ gtSwitcher: DrawSprite(sprSwitch, x - 16, y - 56, (GameTicks shr 6) mod 12);
gtTarget: begin
Tint($FF, $FF, $FF, floor($FF * Gear^.Timer / 1000));
- DrawSprite(sprTarget, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 16 + WorldDy, 0);
+ DrawSprite(sprTarget, x - 16, y - 16, 0);
Tint($FF, $FF, $FF, $FF);
end;
- gtMortar: DrawRotated(sprMortar, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
+ gtMortar: DrawRotated(sprMortar, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
gtCake: if Gear^.Pos = 6 then
- DrawRotatedf(sprCakeWalk, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, (GameTicks div 40) mod 6, hwSign(Gear^.dX), Gear^.DirAngle * hwSign(Gear^.dX) + 90)
+ DrawRotatedf(sprCakeWalk, x, y, (GameTicks div 40) mod 6, hwSign(Gear^.dX), Gear^.DirAngle * hwSign(Gear^.dX) + 90)
else
- DrawRotatedf(sprCakeDown, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 5 - Gear^.Pos, hwSign(Gear^.dX), Gear^.DirAngle * hwSign(Gear^.dX) + 90);
- gtSeduction: if Gear^.Pos >= 14 then DrawSprite(sprSeduction, hwRound(Gear^.X) - 16 + WorldDx, hwRound(Gear^.Y) - 16 + WorldDy, 0);
- gtWatermelon: DrawRotatedf(sprWatermelon, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 0, Gear^.DirAngle);
- gtMelonPiece: DrawRotatedf(sprWatermelon, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 1, 0, Gear^.DirAngle);
- gtHellishBomb: DrawRotated(sprHellishBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
+ DrawRotatedf(sprCakeDown, x, y, 5 - Gear^.Pos, hwSign(Gear^.dX), Gear^.DirAngle * hwSign(Gear^.dX) + 90);
+ gtSeduction: if Gear^.Pos >= 14 then DrawSprite(sprSeduction, x - 16, y - 16, 0);
+ gtWatermelon: DrawRotatedf(sprWatermelon, x, y, 0, 0, Gear^.DirAngle);
+ gtMelonPiece: DrawRotatedf(sprWatermelon, x, y, 1, 0, Gear^.DirAngle);
+ gtHellishBomb: DrawRotated(sprHellishBomb, x, y, 0, Gear^.DirAngle);
gtBirdy: begin
if Gear^.State and gstAnimation = gstAnimation then
begin
if Gear^.State and gstTmpFlag = 0 then // Appearing
begin
- endX:= hwRound(Gear^.X);
- endY:= hwRound(Gear^.Y);
+ endX:= x - WorldDx;
+ endY:= y - WorldDy;
if Gear^.Tag < 0 then
startX:= max(LAND_WIDTH + 1024, endX + 2048)
else
@@ -808,8 +806,8 @@
end
else // Disappearing
begin
- startX:= hwRound(Gear^.X);
- startY:= hwRound(Gear^.Y);
+ startX:= x - WorldDx;
+ startY:= y - WorldDy;
if Gear^.Tag > 0 then
endX:= max(LAND_WIDTH + 1024, startX + 2048)
else
@@ -819,18 +817,18 @@
end;
end
else
- DrawTextureF(SpritesData[sprBirdy].Texture, 1, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
+ DrawTextureF(SpritesData[sprBirdy].Texture, 1, x, y, ((Gear^.Pos shr 6) or (RealTicks shr 8)) mod 2, Gear^.Tag, 75, 75);
end;
- gtEgg: DrawRotatedTextureF(SpritesData[sprEgg].Texture, 1, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 16, 16, Gear^.DirAngle);
+ gtEgg: DrawRotatedTextureF(SpritesData[sprEgg].Texture, 1, 0, 0, x, y, 0, 1, 16, 16, Gear^.DirAngle);
gtPiano: begin
if (Gear^.State and gstDrowning) = 0 then
begin
Tint($FF, $FF, $FF, $10);
for i:= 8 downto 1 do
- DrawRotatedTextureF(SpritesData[sprPiano].Texture, 1, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy - hwRound(Gear^.dY * 4 * i), 0, 1, 128, 128, 0);
+ DrawRotatedTextureF(SpritesData[sprPiano].Texture, 1, 0, 0, x, y - hwRound(Gear^.dY * 4 * i), 0, 1, 128, 128, 0);
Tint($FF, $FF, $FF, $FF)
end;
- DrawRotatedTextureF(SpritesData[sprPiano].Texture, 1, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 128, 128, 0);
+ DrawRotatedTextureF(SpritesData[sprPiano].Texture, 1, 0, 0, x, y, 0, 1, 128, 128, 0);
end;
gtPoisonCloud: begin
if Gear^.Timer < 1020 then
@@ -839,11 +837,18 @@
Tint($C0, $C0, $00, (5000 - Gear^.Timer) div 8)
else
Tint($C0, $C0, $00, $C0);
- DrawRotatedTextureF(SpritesData[sprSmokeWhite].texture, 3, 0, 0, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, 1, 22, 22, (RealTicks shr 36 + Gear^.UID * 100) mod 360);
+ DrawRotatedTextureF(SpritesData[sprSmokeWhite].texture, 3, 0, 0, x, y, 0, 1, 22, 22, (RealTicks shr 36 + Gear^.UID * 100) mod 360);
Tint($FF, $FF, $FF, $FF)
end;
+ gtResurrector: begin
+ DrawRotated(sprCross, x, y, 0, 0);
+ Tint($f5, $db, $35, max($00, floor($C0 * abs(1 - (GameTicks mod 6000) / 3000))));
+ DrawTexture(x - 108, y - 108, SpritesData[sprVampiric].Texture, 4.5);
+ Tint($FF, $FF, $FF, $FF);
+ end;
+ gtNapalmBomb: DrawRotated(sprNapalmBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX));
end;
- if Gear^.RenderTimer and (Gear^.Tex <> nil) then DrawCentered(hwRound(Gear^.X) + 8 + WorldDx, hwRound(Gear^.Y) + 8 + WorldDy, Gear^.Tex);
+ if Gear^.RenderTimer and (Gear^.Tex <> nil) then DrawCentered(x + 8, y + 8, Gear^.Tex);
Gear:= Gear^.NextGear
end;
end;
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/HHHandlers.inc
--- a/hedgewars/HHHandlers.inc Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/HHHandlers.inc Mon Nov 15 12:37:39 2010 +0100
@@ -41,23 +41,26 @@
end;
// Shouldn't more of this ammo switching stuff be moved to uAmmos ?
-procedure ChangeAmmo(Gear: PGear);
+function ChangeAmmo(Gear: PGear): boolean;
var slot, i: Longword;
ammoidx: LongInt;
begin
+ChangeAmmo:= false;
slot:= Gear^.MsgParam;
with PHedgehog(Gear^.Hedgehog)^ do
begin
Gear^.Message:= Gear^.Message and not gmSlot;
ammoidx:= 0;
+ if ((Gear^.State and (gstAttacking or gstAttacked)) <> 0) or
+ (TargetPoint.X <> NoPointX) or
+ ((MultiShootAttacks > 0) and ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_NoRoundEnd) = 0)) or
+ ((Gear^.State and gstHHDriven) = 0) then exit;
+ ChangeAmmo:= true;
+
while (ammoidx < cMaxSlotAmmoIndex) and (Ammo^[slot, ammoidx].AmmoType <> CurAmmoType) do inc(ammoidx);
- if ((Gear^.State and (gstAttacking or gstAttacked)) <> 0) or
- ((MultiShootAttacks > 0) and (CurAmmoGear <> nil) and ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_NoRoundEndHint) = 0)) or
- ((Gear^.State and gstHHDriven) = 0) then exit;
-
- if ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_NoRoundEndHint) <> 0) and (MultiShootAttacks > 0) then OnUsedAmmo(PHedgehog(Gear^.Hedgehog)^);
+ if ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_NoRoundEnd) <> 0) and (MultiShootAttacks > 0) then OnUsedAmmo(PHedgehog(Gear^.Hedgehog)^);
MultiShootAttacks:= 0;
Gear^.Message:= Gear^.Message and not (gmLJump or gmHJump);
@@ -95,6 +98,7 @@
var t: LongInt;
weap: TAmmoType;
Hedgehog: PHedgehog;
+ s: boolean;
begin
weap:= TAmmoType(Gear^.MsgParam);
Hedgehog:= PHedgehog(Gear^.Hedgehog);
@@ -110,11 +114,11 @@
with Hedgehog^ do
while (CurAmmoType <> weap) and (t >= 0) do
begin
- ChangeAmmo(Gear);
+ s:= ChangeAmmo(Gear);
dec(t)
end;
-ApplyAmmoChanges(PHedgehog(Gear^.Hedgehog)^)
+if s then ApplyAmmoChanges(PHedgehog(Gear^.Hedgehog)^)
end;
procedure HHSetTimer(Gear: PGear);
@@ -133,9 +137,10 @@
procedure Attack(Gear: PGear);
-var xx, yy, lx, ly: hwFloat;
+var xx, yy, newDx, newDy, lx, ly: hwFloat;
tmpGear: PVisualGear;
CurWeapon: PAmmo;
+ altUse: boolean;
begin
bShowFinger:= false;
CurWeapon:= GetAmmoEntry(PHedgehog(Gear^.Hedgehog)^);
@@ -178,13 +183,31 @@
if ((Gear^.State and gstHHHJump) <> 0) and (not cArtillery) then xx:= - xx;
if Ammoz[CurAmmoType].Ammo.AttackVoice <> sndNone then
PlaySound(Ammoz[CurAmmoType].Ammo.AttackVoice, CurrentTeam^.voicepack);
+
+// Initiating alt attack
+ if (CurAmmoGear <> nil) and
+ ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_AltAttack) <> 0) and
+ ((Gear^.Message and gmLJump) <> 0) and
+ ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_AltUse) <> 0) then
+ begin
+ newDx:= dX / _2;
+ newDy:= dY / _2;
+ altUse:= true;
+ end
+ else
+ begin
+ newDx:= xx*Power/cPowerDivisor;
+ newDy:= yy*Power/cPowerDivisor;
+ altUse:= false
+ end;
+
case CurAmmoType of
- amGrenade: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtAmmo_Bomb, 0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, CurWeapon^.Timer);
- amMolotov: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtMolotov, 0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, 0);
- amClusterBomb: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtClusterBomb, 0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, CurWeapon^.Timer);
- amGasBomb: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtGasBomb, 0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, CurWeapon^.Timer);
- amBazooka: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtAmmo_Grenade, 0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, 0);
- amBee: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtBee, 0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, 0);
+ amGrenade: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtBomb, 0, newDx, newDy, CurWeapon^.Timer);
+ amMolotov: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtMolotov, 0, newDx, newDy, 0);
+ amClusterBomb: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtClusterBomb, 0, newDx, newDy, CurWeapon^.Timer);
+ amGasBomb: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtGasBomb, 0, newDx, newDy, CurWeapon^.Timer);
+ amBazooka: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtShell, 0, newDx, newDy, 0);
+ amBee: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtBee, 0, newDx, newDy, 0);
amShotgun: begin
PlaySound(sndShotgunReload);
CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtShotgunShot, 0, xx * _0_5, yy * _0_5, 0);
@@ -192,7 +215,10 @@
amPickHammer: CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly) + cHHRadius, gtPickHammer, 0, _0, _0, 0);
amSkip: ParseCommand('/skip', true);
amRope: CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtRope, 0, xx, yy, 0);
- amMine: AddGear(hwRound(lx) + hwSign(dX) * 7, hwRound(ly), gtMine, gstWait, SignAs(_0_02, dX), _0, 3000);
+ amMine: if altUse then
+ AddGear(hwRound(lx) + hwSign(dX) * 7, hwRound(ly), gtMine, gstWait, newDx, newDy, 3000)
+ else
+ AddGear(hwRound(lx) + hwSign(dX) * 7, hwRound(ly), gtMine, gstWait, SignAs(_0_02, dX), _0, 3000);
amSMine: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtSMine, 0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, 0);
amDEagle: CurAmmoGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtDEagleShot, 0, xx * _0_5, yy * _0_5, 0);
amSineGun: CurAmmoGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtSineGunShot, 0, xx * _0_5, yy * _0_5, 0);
@@ -237,10 +263,10 @@
amKamikaze: CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtKamikaze, 0, xx * _0_5, yy * _0_5, 0);
amCake: CurAmmoGear:= AddGear(hwRound(lx) + hwSign(dX) * 3, hwRound(ly), gtCake, 0, xx, _0, 0);
amSeduction: CurAmmoGear:= AddGear(hwRound(lx + xx * cHHRadius * 2), hwRound(ly + yy * cHHRadius * 2), gtSeduction, 0, xx * _0_4, yy * _0_4, 0);
- amWatermelon: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtWatermelon, 0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, CurWeapon^.Timer);
- amHellishBomb: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtHellishBomb, 0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, 0);
+ amWatermelon: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtWatermelon, 0, newDx, newDy, CurWeapon^.Timer);
+ amHellishBomb: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtHellishBomb, 0, newDx, newDy, 0);
amNapalm: AddGear(CurWeapon^.Pos, 0, gtAirAttack, 2, _0, _0, 0);
- amDrill: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtDrill, 0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, 0);
+ amDrill: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtDrill, 0, newDx, newDy, 0);
amBallgun: CurAmmoGear:= AddGear(hwRound(X), hwRound(Y), gtBallgun, 0, xx * _0_5, yy * _0_5, 0);
amJetpack: CurAmmoGear:= AddGear(hwRound(lx), hwRound(ly), gtJetpack, 0, _0, _0, 0);
amBirdy: begin
@@ -251,9 +277,15 @@
PlaySound(sndLowGravity);
cGravity:= cMaxWindSpeed
end;
- amExtraDamage: cDamageModifier:= _1_5;
+ amExtraDamage:begin
+ PlaySound(sndHellishImpact4);
+ cDamageModifier:= _1_5
+ end;
amInvulnerable: Invulnerable:= true;
- amExtraTime: TurnTimeLeft:= TurnTimeLeft + 30000;
+ amExtraTime: begin
+ PlaySound(sndSwitchHog);
+ TurnTimeLeft:= TurnTimeLeft + 30000
+ end;
amLaserSight: cLaserSighting:= true;
amVampiric: begin
PlaySound(sndOw1, Team^.voicepack);
@@ -273,6 +305,8 @@
gtResurrector, 0, _0, _0, 0);
CurAmmoGear^.SoundChannel := LoopSound(sndResurrector);
end;
+ amDrillStrike: AddGear(CurWeapon^.Pos, 0, gtAirAttack, 3, _0, _0, 0);
+ //amMelonStrike: AddGear(CurWeapon^.Pos, 0, gtAirAttack, 4, _0, _0, 0);
end;
uStats.AmmoUsed(CurAmmoType);
@@ -332,10 +366,10 @@
else
begin
OnUsedAmmo(CurrentHedgehog^);
- if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEndHint) = 0) and ((GameFlags and gfInfAttack) = 0) then
+ if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) = 0) and ((GameFlags and gfInfAttack) = 0) then
TurnTimeLeft:= Ammoz[a].TimeAfterTurn;
- if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEndHint) = 0) then State:= State or gstAttacked;
- if (Ammoz[a].Ammo.Propz and ammoprop_NoRoundEndHint) <> 0 then ApplyAmmoChanges(CurrentHedgehog^)
+ if ((Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) = 0) then State:= State or gstAttacked;
+ if (Ammoz[a].Ammo.Propz and ammoprop_NoRoundEnd) <> 0 then ApplyAmmoChanges(CurrentHedgehog^)
end;
end
else
@@ -419,7 +453,7 @@
case Gear^.Pos of
posCaseUtility,
posCaseAmmo: begin
- a:= TAmmoType(Gear^.State);
+ a:= Gear^.AmmoType;
AddAmmo(PHedgehog(HH^.Hedgehog)^, a);
// Possibly needs to check shared clan ammo game flag once added.
// On the other hand, no obvious reason that clan members shouldn't know what ammo another clan member picked up
@@ -628,11 +662,22 @@
if (Gear^.dY.isNegative) and TestCollisionYKick(Gear, -1) then Gear^.dY:= _0;
Gear^.State:= Gear^.State or gstMoving;
if isUnderwater then Gear^.dY:= Gear^.dY + cGravity / _2
- else Gear^.dY:= Gear^.dY + cGravity
+ else
+ begin
+ Gear^.dY:= Gear^.dY + cGravity;
+// this set of circumstances could be less complex if jumping was more clearly identified
+ if ((GameFlags and gfMoreWind) <> 0) and
+ (Gear^.Damage <> 0) or
+ ((CurAmmoGear <> nil) and
+ ((CurAmmoGear^.AmmoType = amJetpack) or
+ (CurAmmoGear^.AmmoType = amBirdy))) or
+ ((Gear^.dY.QWordValue + Gear^.dX.QWordValue) > _0_55.QWordValue)
+ then Gear^.dX := Gear^.dX + cWindSpeed * _0_2
+ end
end
else
begin
- if ((hwAbs(Gear^.dX) + hwAbs(Gear^.dY)) < _0_55)
+ if ((Gear^.dX.QWordValue + Gear^.dY.QWordValue) < _0_55.QWordValue)
and ((Gear^.State and gstHHJumping) <> 0) then SetLittle(Gear^.dX);
if not Gear^.dY.isNegative then
@@ -785,19 +830,16 @@
and ((Gear^.Message and gmLJump) <> 0)
and ((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_AltUse) <> 0) then
begin
- Gear^.Message:= Gear^.Message and not gmLJump;
- Attack(Gear)
+ Attack(Gear);
+ Gear^.Message:= Gear^.Message and not gmLJump
end;
if (CurAmmoGear = nil)
or ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_AltAttack) <> 0)
- or ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_NoRoundEndHint) <> 0) then
+ or ((Ammoz[CurAmmoGear^.AmmoType].Ammo.Propz and ammoprop_NoRoundEnd) <> 0) then
begin
if ((Gear^.Message and gmSlot) <> 0) then
- begin
- ChangeAmmo(Gear);
- ApplyAmmoChanges(Hedgehog^)
- end;
+ if ChangeAmmo(Gear) then ApplyAmmoChanges(Hedgehog^);
if ((Gear^.Message and gmWeapon) <> 0) then HHSetWeapon(Gear);
@@ -870,7 +912,7 @@
if (Gear^.Health = 0) then
begin
- if PrvInactive then
+ if PrvInactive or ((GameFlags and gfInfAttack) <> 0) then
begin
Gear^.Timer:= 0;
FollowGear:= Gear;
@@ -879,6 +921,7 @@
if not PHedgehog(Gear^.Hedgehog)^.Team^.hasGone then
begin
+ PHedgehog(Gear^.Hedgehog)^.Effects[hePoisoned] := false;
if PHedgehog(Gear^.Hedgehog)^.Effects[heResurrectable] then begin
ResurrectHedgehog(Gear);
end else begin
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/PascalExports.pas
--- a/hedgewars/PascalExports.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/PascalExports.pas Mon Nov 15 12:37:39 2010 +0100
@@ -26,6 +26,7 @@
{$INCLUDE "config.inc"}
type PPByte = ^PByte;
+var dummy: boolean; // avoid compiler hint
implementation
{$IFDEF HWLIBRARY}
@@ -194,7 +195,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_isPaused: boolean; cdecl; export;
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/VGSHandlers.inc
--- a/hedgewars/VGSHandlers.inc Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/VGSHandlers.inc Mon Nov 15 12:37:39 2010 +0100
@@ -33,10 +33,16 @@
X:= X + (cWindSpeedf * 200 + dX + tdX) * Steps;
Y:= Y + (dY + tdY + cGravityf * vobFallSpeed) * Steps;
Angle:= Angle + dAngle * Steps;
+ if Angle > 360 then
+ Angle:= Angle - 360
+ else
+ if Angle < - 360 then
+ Angle:= Angle + 360;
+
if (round(X) >= cLeftScreenBorder) and
(round(X) <= cRightScreenBorder) and
- (round(Y) <= (int64(LAND_HEIGHT) + 75)) and
+ (round(Y) - 75 <= LAND_HEIGHT) and
(Timer > 0) and (Timer-Steps > 0) then
begin
if tdX > 0 then sign := 1
@@ -54,7 +60,7 @@
if round(X) < cLeftScreenBorder then X:= X + cScreenSpace else
if round(X) > cRightScreenBorder then X:= X - cScreenSpace;
// if round(Y) < (LAND_HEIGHT - 1024 - 75) then Y:= Y + float(25); // For if flag is set for flakes rising upwards?
- if round(Y) > (int64(LAND_HEIGHT) + 75) then Y:= Y - float(1024 + 150); // TODO - configure in theme (jellies for example could use limited range)
+ if round(Y) - 75 > LAND_HEIGHT then Y:= Y - float(1024 + 150); // TODO - configure in theme (jellies for example could use limited range)
Timer:= 0;
tdX:= 0;
tdY:= 0
@@ -84,7 +90,7 @@
t := 8 * AngleSin(s mod 2048).QWordValue / 4294967296;
if (s < 2048) then t := -t;
-Gear^.Y := int64(LAND_HEIGHT) - 1184 + Gear^.Timer mod 8 + t;
+Gear^.Y := LAND_HEIGHT - 1184 + LongInt(Gear^.Timer mod 8) + t;
if round(Gear^.X) < cLeftScreenBorder then Gear^.X:= Gear^.X + cScreenSpace else
if round(Gear^.X) > cRightScreenBorder then Gear^.X:= Gear^.X - cScreenSpace
@@ -127,6 +133,16 @@
end;
////////////////////////////////////////////////////////////////////////////////
+procedure doStepLineTrail(Gear: PVisualGear; Steps: Longword);
+begin
+Steps := Steps;
+if Gear^.Timer <= Steps then
+ DeleteVisualGear(Gear)
+else
+ dec(Gear^.Timer, Steps)
+end;
+
+////////////////////////////////////////////////////////////////////////////////
procedure doStepEgg(Gear: PVisualGear; Steps: Longword);
begin
Gear^.X:= Gear^.X + Gear^.dX * Steps;
@@ -205,8 +221,8 @@
Gear^.Y:= Gear^.Y + Gear^.dY * Steps;
Gear^.Y:= Gear^.Y - cDrownSpeedf * Steps;
- Gear^.dX /= (1.001 * Steps);
- Gear^.dY /= (1.001 * Steps);
+ Gear^.dX := Gear^.dX / (1.001 * Steps);
+ Gear^.dY := Gear^.dY / (1.001 * Steps);
if (Gear^.FrameTicks <= Steps) or (round(Gear^.Y) < cWaterLine) then
DeleteVisualGear(Gear)
@@ -480,7 +496,7 @@
procedure doStepHealthTagWorkUnderWater(Gear: PVisualGear; Steps: Longword);
begin
-if round(Gear^.Y) < int64(cWaterLine) + 10 then
+if round(Gear^.Y) - 10 < cWaterLine then
DeleteVisualGear(Gear)
else
Gear^.Y:= Gear^.Y - 0.08 * Steps;
@@ -584,6 +600,7 @@
for i:= 0 to 15 do AddVisualGear(gX, gY, vgtExplPart2);
Gear^.doStep:= @doStepBigExplosionWork;
if Steps > 1 then Gear^.doStep(Gear, Steps-1);
+performRumble();
end;
procedure doStepChunk(Gear: PVisualGear; Steps: Longword);
@@ -601,3 +618,12 @@
DeleteVisualGear(Gear);
end
end;
+
+////////////////////////////////////////////////////////////////////////////////
+procedure doStepBulletHit(Gear: PVisualGear; Steps: Longword);
+begin
+ if Gear^.FrameTicks <= Steps then
+ DeleteVisualGear(Gear)
+ else
+ dec(Gear^.FrameTicks, Steps);
+end;
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/hwLibrary.pas
--- a/hedgewars/hwLibrary.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/hwLibrary.pas Mon Nov 15 12:37:39 2010 +0100
@@ -13,6 +13,9 @@
// to make these functions available in the C/C++/Objective-C source files
// (add "#include PascalImports.h" near the top of these files if it's not there yet)
uses cmem, hwengine, PascalExports;
-
+begin
+ // avoid compiler warnings about units not being used
+ isTerminated:= isTerminated;
+ dummy:= dummy;
end.
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/hwengine.pas
--- a/hedgewars/hwengine.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/hwengine.pas Mon Nov 15 12:37:39 2010 +0100
@@ -269,24 +269,25 @@
LoadLocale(Pathz[ptLocale] + '/en.txt'); // Do an initial load with english
if cLocaleFName <> 'en.txt' then
- begin
+ begin
// Try two letter locale first before trying specific locale overrides
if (Length(cLocaleFName) > 6) and (Copy(cLocaleFName,1,2)+'.txt' <> 'en.txt') then
LoadLocale(Pathz[ptLocale] + '/' + Copy(cLocaleFName,1,2)+'.txt');
LoadLocale(Pathz[ptLocale] + '/' + cLocaleFName);
- end;
+ end;
WriteLnToConsole(msgGettingConfig);
+
if recordFileName = '' then
- begin
+ begin
InitIPC;
SendIPCAndWaitReply('C'); // ask for game config
- end
+ end
else
- begin
+ begin
LoadRecordFromFile(recordFileName);
perfExt_SaveBeganSynching();
- end;
+ end;
ScriptOnGameInit;
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uAI.pas
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uAIAmmoTests.pas
--- a/hedgewars/uAIAmmoTests.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uAIAmmoTests.pas Mon Nov 15 12:37:39 2010 +0100
@@ -101,7 +101,8 @@
(proc: nil; flags: 0), // amFlamethrower
(proc: @TestGrenade; flags: 0), // amSMine
(proc: @TestFirePunch; flags: 0), // amHammer
- (proc: nil; flags: 0) // amResurrector
+ (proc: nil; flags: 0), // amResurrector
+ (proc: nil; flags: 0) // amDrillStrike
);
const BadTurn = Low(LongInt) div 4;
@@ -296,7 +297,7 @@
until TestCollExcludingMe(Me, hwRound(x), hwRound(y), 5) or (t = 0);
EX:= hwRound(x);
EY:= hwRound(y);
- if t < 50 then CheckTrace:= RateExplosion(Me, EX, EY, 81)
+ if t < 50 then CheckTrace:= RateExplosion(Me, EX, EY, 41)
else CheckTrace:= BadTurn
end;
begin
@@ -310,7 +311,7 @@
Vx:= (int2hwFloat(Targ.X+10) - Me^.X) / int2hwFloat(TestTime + tDelta)
else
Vx:= (int2hwFloat(Targ.X-10) - Me^.X) / int2hwFloat(TestTime + tDelta);
- Vy:= cGravity * ((TestTime + tDelta) div 2) - (int2hwFloat(Targ.Y-25) - Me^.Y) / int2hwFloat(TestTime + tDelta);
+ Vy:= cGravity * ((TestTime + tDelta) div 2) - (int2hwFloat(Targ.Y-150) - Me^.Y) / int2hwFloat(TestTime + tDelta);
r:= Distance(Vx, Vy);
if not (r > _1) then
begin
@@ -318,7 +319,7 @@
if valueResult < Score then
begin
ap.Angle:= DxDy2AttackAngle(Vx, Vy) + AIrndSign(random(Level));
- ap.Power:= hwRound(r * cMaxPower) + AIrndSign(random(Level) * 15);
+ ap.Power:= hwRound(r * cMaxPower * _0_9) + AIrndSign(random(Level) * 15);
ap.Time:= TestTime;
ap.ExplR:= 90;
ap.ExplX:= EX;
@@ -362,7 +363,7 @@
repeat
inc(TestTime, 1000);
Vx:= (int2hwFloat(Targ.X) - Me^.X) / int2hwFloat(TestTime + tDelta);
- Vy:= cGravity * ((TestTime + tDelta) div 2) - (int2hwFloat(Targ.Y-125) - Me^.Y) / int2hwFloat(TestTime + tDelta);
+ Vy:= cGravity * ((TestTime + tDelta) div 2) - (int2hwFloat(Targ.Y-200) - Me^.Y) / int2hwFloat(TestTime + tDelta);
r:= Distance(Vx, Vy);
if not (r > _1) then
begin
@@ -498,7 +499,12 @@
else dec(valueResult, Level * 4000);
exit(valueResult)
end
-until (Abs(Targ.X - hwRound(x)) + Abs(Targ.Y - hwRound(y)) < 4) or (x.isNegative) or (y.isNegative) or (x.Round > LAND_WIDTH) or (y.Round > LAND_HEIGHT);
+until (Abs(Targ.X - hwRound(x)) + Abs(Targ.Y - hwRound(y)) < 4)
+ or (x.isNegative)
+ or (y.isNegative)
+ or (x.Round > LongWord(LAND_WIDTH))
+ or (y.Round > LongWord(LAND_HEIGHT));
+
TestShotgun:= BadTurn
end;
@@ -526,7 +532,12 @@
y:= y + vY;
if ((hwRound(x) and LAND_WIDTH_MASK) = 0)and((hwRound(y) and LAND_HEIGHT_MASK) = 0)
and (Land[hwRound(y), hwRound(x)] <> 0) then inc(d);
-until (Abs(Targ.X - hwRound(x)) + Abs(Targ.Y - hwRound(y)) < 4) or (x.isNegative) or (y.isNegative) or (x.Round > LAND_WIDTH) or (y.Round > LAND_HEIGHT) or (d > 200);
+until (Abs(Targ.X - hwRound(x)) + Abs(Targ.Y - hwRound(y)) < 4)
+ or (x.isNegative)
+ or (y.isNegative)
+ or (x.Round > LongWord(LAND_WIDTH))
+ or (y.Round > LongWord(LAND_HEIGHT))
+ or (d > 200);
if Abs(Targ.X - hwRound(x)) + Abs(Targ.Y - hwRound(y)) < 3 then valueResult:= max(0, (4 - d div 50) * 7 * 1024)
else valueResult:= BadTurn;
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uAmmos.pas
--- a/hedgewars/uAmmos.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uAmmos.pas Mon Nov 15 12:37:39 2010 +0100
@@ -44,8 +44,7 @@
function GetAmmoByNum(num: Longword): PHHAmmo;
function GetAmmoEntry(var Hedgehog: THedgehog): PAmmo;
-var shoppa: boolean;
- StoreCnt: Longword;
+var StoreCnt: Longword;
implementation
uses uMisc, uGears, uWorld, uLocale, uConsole, uMobile;
@@ -93,16 +92,9 @@
var cnt: Longword;
a: TAmmoType;
ammos: TAmmoCounts;
- substr: shortstring; // TEMPORARY
begin
TryDo((byte(ammoLoadout[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoProbability[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoDelay[0]) = byte(ord(High(TAmmoType)))) and (byte(ammoReinforcement[0]) = byte(ord(High(TAmmoType)))), 'Incomplete or missing ammo scheme set (incompatible frontend or demo/save?)', true);
-// FIXME - TEMPORARY hardcoded check on shoppa pending creation of crate *type* probability editor
-substr:= Copy(ammoLoadout,1,15);
-if (substr = '000000990000009') or
- (substr = '000000990000000') then
- shoppa:= true;
-
inc(StoreCnt);
TryDo(StoreCnt <= cMaxHHs, 'Ammo stores overflow', true);
@@ -179,7 +171,10 @@
if Hedgehogs[i].Gear <> nil then
begin
Hedgehogs[i].Ammo:= GetAmmoByNum(Hedgehogs[i].AmmoStore);
- Hedgehogs[i].CurAmmoType:= amNothing;
+ if (GameFlags and gfPlaceHog) <> 0 then
+ Hedgehogs[i].CurAmmoType:= amTeleport
+ else
+ Hedgehogs[i].CurAmmoType:= amNothing
end
end
end;
@@ -243,6 +238,7 @@
begin
PackAmmo(Ammo, Ammoz[AmmoType].Slot);
//SwitchNotHeldAmmo(Hedgehog);
+ ShowCrossHair:= false;
CurAmmoType:= amNothing
end
end
@@ -422,7 +418,10 @@
with TeamsArray[t]^ do
for i:= 0 to cMaxHHIndex do
if Hedgehogs[i].Gear <> nil then
+ begin
FillAmmoStore(Hedgehogs[i].Ammo, InitialCounts[Hedgehogs[i].AmmoStore]);
+ Hedgehogs[i].CurAmmoType:= amNothing
+ end;
for a:= Low(TAmmoType) to High(TAmmoType) do
if Ammoz[a].SkipTurns >= 10000 then dec(Ammoz[a].SkipTurns,10000)
@@ -430,7 +429,6 @@
procedure initModule;
begin
- shoppa:= false;
StoreCnt:= 0;
ammoLoadout:= '';
ammoProbability:= '';
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uChat.pas
--- a/hedgewars/uChat.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uChat.pas Mon Nov 15 12:37:39 2010 +0100
@@ -245,7 +245,8 @@
end;
if (s[1] = '/') and (copy(s, 1, 4) <> '/me ') then
begin
- if CurrentTeam^.ExtDriven then exit;
+ if CurrentTeam^.ExtDriven or (CurrentTeam^.Hedgehogs[0].BotLevel <> 0) then
+ exit;
for i:= Low(TWave) to High(TWave) do
if (s = Wavez[i].cmd) then
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uConsole.pas
--- a/hedgewars/uConsole.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uConsole.pas Mon Nov 15 12:37:39 2010 +0100
@@ -90,22 +90,22 @@
done: boolean;
begin
{$IFNDEF NOCONSOLE}
- {$IFDEF DEBUGFILE}AddFileLog('Console write: ' + s);{$ENDIF}
- Write(s);
- done:= false;
+{$IFDEF DEBUGFILE}AddFileLog('Console write: ' + s);{$ENDIF}
+Write(s);
+done:= false;
- while not done do
+while not done do
begin
- Len:= cLineWidth - Length(ConsoleLines[CurrLine].s);
- SetLine(ConsoleLines[CurrLine], ConsoleLines[CurrLine].s + copy(s, 1, Len));
- Delete(s, 1, Len);
- if byte(ConsoleLines[CurrLine].s[0]) = cLineWidth then
+ Len:= cLineWidth - Length(ConsoleLines[CurrLine].s);
+ SetLine(ConsoleLines[CurrLine], ConsoleLines[CurrLine].s + copy(s, 1, Len));
+ Delete(s, 1, Len);
+ if byte(ConsoleLines[CurrLine].s[0]) = cLineWidth then
begin
- inc(CurrLine);
- if CurrLine = cLinesCount then CurrLine:= 0;
- PByte(@ConsoleLines[CurrLine].s)^:= 0
+ inc(CurrLine);
+ if CurrLine = cLinesCount then CurrLine:= 0;
+ PByte(@ConsoleLines[CurrLine].s)^:= 0
end;
- done:= (Length(s) = 0);
+ done:= (Length(s) = 0);
end;
{$ENDIF}
end;
@@ -113,12 +113,12 @@
procedure WriteLnToConsole(s: shortstring);
begin
{$IFNDEF NOCONSOLE}
- WriteToConsole(s);
- WriteLn;
- inc(CurrLine);
- if CurrLine = cLinesCount then
- CurrLine:= 0;
- PByte(@ConsoleLines[CurrLine].s)^:= 0
+WriteToConsole(s);
+WriteLn;
+inc(CurrLine);
+if CurrLine = cLinesCount then
+ CurrLine:= 0;
+PByte(@ConsoleLines[CurrLine].s)^:= 0
{$ENDIF}
end;
@@ -234,10 +234,14 @@
RegisterVariable('delay' , vtLongInt, @cInactDelay , false);
RegisterVariable('ready' , vtLongInt, @cReadyDelay , false);
RegisterVariable('casefreq', vtLongInt, @cCaseFactor , false);
+ RegisterVariable('healthprob', vtLongInt, @cHealthCaseProb, false);
+ RegisterVariable('hcaseamount', vtLongInt, @cHealthCaseAmount, false);
RegisterVariable('sd_turns', vtLongInt, @cSuddenDTurns , false);
+ RegisterVariable('waterrise', vtLongInt, @cWaterRise , false);
+ RegisterVariable('healthdec', vtLongInt, @cHealthDecrease, false);
RegisterVariable('damagepct',vtLongInt, @cDamagePercent , false);
RegisterVariable('minedudpct',vtLongInt,@cMineDudPercent, false);
- RegisterVariable('landadds', vtLongInt, @cLandAdditions , false);
+ RegisterVariable('minesnum', vtLongInt, @cLandMines , false);
RegisterVariable('explosives',vtLongInt,@cExplosives , false);
RegisterVariable('gmflags' , vtLongInt, @GameFlags , false);
RegisterVariable('trflags' , vtLongInt, @TrainingFlags , false);
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uConsts.pas
--- a/hedgewars/uConsts.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uConsts.pas Mon Nov 15 12:37:39 2010 +0100
@@ -43,7 +43,7 @@
ptLocale, ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps);
TSprite = (sprWater, sprCloud, sprBomb, sprBigDigit, sprFrame,
- sprLag, sprArrow, sprGrenade, sprTargetP, sprBee,
+ sprLag, sprArrow, sprBazookaShell, sprTargetP, sprBee,
sprSmokeTrace, sprRopeHook, sprExplosion50, sprMineOff,
sprMineOn, sprMineDead, sprCase, sprFAid, sprDynamite, sprPower,
sprClusterBomb, sprClusterParticle, sprFlame, sprHorizont,
@@ -74,11 +74,13 @@
sprBigExplosion, sprSmokeRing, sprBeeTrace, sprEgg, sprTargetBee, sprHandBee,
sprFeather, sprPiano, sprHandSineGun, sprPortalGun, sprPortal,
sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote,
- sprSMineOff, sprSMineOn, sprHandSMine, sprHammer, sprHandResurrector
+ sprSMineOff, sprSMineOn, sprHandSMine, sprHammer,
+ sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb,
+ sprBulletHit
);
// Gears that interact with other Gears and/or Land
- TGearType = (gtAmmo_Bomb, gtHedgehog, gtAmmo_Grenade, gtGrave, gtBee, // 4
+ TGearType = (gtBomb, gtHedgehog, gtShell, gtGrave, gtBee, // 4
gtShotgunShot, gtPickHammer, gtRope, gtMine, gtCase, // 9
gtDEagleShot, gtDynamite, gtClusterBomb, gtCluster, gtShover, // 14
gtFlame, gtFirePunch, gtATStartGame, gtATSmoothWindCh, // 18
@@ -88,7 +90,8 @@
gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 40
gtSniperRifleShot, gtJetpack, gtMolotov, gtExplosives, gtBirdy, // 45
gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 51
- gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector);
+ gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 56
+ gtNapalmBomb); // 57
// Gears that are _only_ of visual nature (e.g. background stuff, visual effects, speechbubbles, etc.)
TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire,
@@ -96,7 +99,8 @@
vgtSteam, vgtAmmo, vgtSmoke, vgtSmokeWhite, vgtHealth, vgtShell,
vgtDust, vgtSplash, vgtDroplet, vgtSmokeRing, vgtBeeTrace, vgtEgg,
vgtFeather, vgtHealthTag, vgtSmokeTrace, vgtEvilTrace, vgtExplosion,
- vgtBigExplosion, vgtChunk, vgtNote);
+ vgtBigExplosion, vgtChunk, vgtNote, vgtLineTrail,
+ vgtBulletHit);
TGearsType = set of TGearType;
@@ -133,7 +137,7 @@
amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, // 35
amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun, // 42
amPiano, amGasBomb, amSineGun, amFlamethrower, amSMine, amHammer, // 48
- amResurrector);
+ amResurrector, amDrillStrike);
TCrateType = (HealthCrate, AmmoCrate, UtilityCrate);
@@ -189,7 +193,7 @@
PrevTexture, NextTexture: PTexture;
end;
- THogEffect = (heInvulnerable, heResurrectable, hePoisoned);
+ THogEffect = (heInvulnerable, heResurrectable, hePoisoned, heResurrected);
TScreenFade = (sfNone, sfInit, sfToBlack, sfFromBlack, sfToWhite, sfFromWhite);
const
@@ -341,7 +345,7 @@
gfLowGravity = $00000020;
gfLaserSight = $00000040;
gfInvulnerable = $00000080;
- gfMines = $00000100; // redundant? same effect as 'landadds 0'
+ gfResetHealth = $00000100;
gfVampiric = $00000200;
gfKarma = $00000400;
gfArtillery = $00000800;
@@ -356,6 +360,8 @@
gfInfAttack = $00100000;
gfResetWeps = $00200000;
gfPerHogAmmo = $00400000;
+ gfDisableWind = $00800000; // only lua for now
+ gfMoreWind = $01000000;
// NOTE: When adding new game flags, ask yourself
// if a "game start notice" would be useful. If so,
// add one in uWorld.pas - look for "AddGoal".
@@ -412,7 +418,7 @@
ammoprop_NotBorder = $00000800;
ammoprop_Utility = $00001000;
ammoprop_Effect = $00002000;
- ammoprop_NoRoundEndHint=$10000000;
+ ammoprop_NoRoundEnd=$10000000;
AMMO_INFINITE = 100;
@@ -523,8 +529,8 @@
Width: 65; Height: 65; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpLowest; getDimensions: false; getImageDimensions: true),// sprLag
(FileName: 'Arrow'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
Width: 16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprCursor
- (FileName: 'Grenade'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
- Width: 16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprGrenade
+ (FileName:'BazookaShell'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
+ Width: 16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprBazookaShell
(FileName: 'Targetp'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
Width: 32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprTargetP
(FileName: 'Bee'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
@@ -820,8 +826,30 @@
(FileName: 'amResurrector'; Path: ptHedgehog; AltPath: ptNone;
Texture: nil; Surface: nil; Width: 32; Height: 32;
imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
- tpMedium; getDimensions: false; getImageDimensions: true)
- ); // sprHandResurrector
+ tpMedium; getDimensions: false; getImageDimensions: true),
+ //sprHandResurrector
+ (FileName: 'Cross'; Path: ptGraphics; altPath: ptNone;
+ Texture: nil; Surface: nil; Width: 108; Height: 138;
+ imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
+ tpMedium; getDimensions: false; getImageDimensions: true),
+ //sprCross
+ (FileName: 'AirDrill'; Path: ptGraphics; AltPath: ptNone;
+ Texture: nil; Surface: nil; Width: 16; Height: 16;
+ imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
+ tpMedium; getDimensions: false; getImageDimensions: true),
+ // sprAirDrill
+ (FileName: 'NapalmBomb'; Path: ptGraphics; AltPath: ptNone;
+ Texture: nil; Surface: nil; Width: 16; Height: 16;
+ imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
+ tpMedium; getDimensions: false; getImageDimensions: true),
+ // sprNapalmBomb
+ (FileName: 'BulletHit'; Path: ptGraphics; AltPath: ptNone;
+ Texture: nil; Surface: nil; Width: 32; Height: 32;
+ imageWidth: 0; imageHeight: 0; saveSurf: false; priority:
+ tpMedium; getDimensions: false; getImageDimensions: true)
+ // sprNapalmBomb
+ );
+
Wavez: array [TWave] of record
Sprite: TSprite;
@@ -1157,7 +1185,7 @@
NameTex: nil;
Probability: 100;
NumberInCase: 3;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_ForwMsgs or
ammoprop_AttackInMove or
ammoprop_Utility or
@@ -1322,7 +1350,7 @@
NameTex: nil;
Probability: 100;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_ForwMsgs or
ammoprop_AttackInMove or
ammoprop_NoCrosshair or
@@ -1428,7 +1456,7 @@
NameTex: nil;
Probability: 150;
NumberInCase: 3;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_NoCrosshair or
ammoprop_NeedTarget or
ammoprop_Utility or
@@ -1483,7 +1511,7 @@
NameTex: nil;
Probability: 100;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_ForwMsgs or
ammoprop_NoCrosshair or
ammoprop_Utility or
@@ -1746,7 +1774,7 @@
NameTex: nil;
Probability: 20;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_NoCrosshair or
ammoprop_DontHold or
ammoprop_AltUse or
@@ -1774,7 +1802,7 @@
NameTex: nil;
Probability: 15;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_NoCrosshair or
ammoprop_DontHold or
ammoprop_AltUse or
@@ -1802,7 +1830,7 @@
NameTex: nil;
Probability: 20;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_NoCrosshair or
ammoprop_DontHold or
ammoprop_AltUse or
@@ -1830,7 +1858,7 @@
NameTex: nil;
Probability: 30;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_NoCrosshair or
ammoprop_DontHold or
ammoprop_AltUse or
@@ -1858,7 +1886,7 @@
NameTex: nil;
Probability: 15;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_NoCrosshair or
ammoprop_DontHold or
ammoprop_AltUse or
@@ -1886,7 +1914,7 @@
NameTex: nil;
Probability: 15;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_NoCrosshair or
ammoprop_DontHold or
ammoprop_AltUse or
@@ -1937,7 +1965,7 @@
NameTex: nil;
Probability: 20;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_ForwMsgs or
ammoprop_AttackInMove or
ammoprop_NoCrosshair or
@@ -2014,7 +2042,7 @@
NameTex: nil;
Probability: 20;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_NoRoundEndHint or
+ Ammo: (Propz: ammoprop_NoRoundEnd or
ammoprop_AttackInMove or
ammoprop_DontHold or
ammoprop_Utility;
@@ -2136,7 +2164,7 @@
NameTex: nil;
Probability: 100;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_Power or ammoprop_AltUse;
+ Ammo: (Propz: ammoprop_Power; //FIXME: enable multishoot at altuse, until then removed ammoprop_AltUse
Count: 1;
NumPerTurn: 1;
Timer: 0;
@@ -2177,11 +2205,14 @@
ejectX: 0;
ejectY: 0),
+// Ressurrector
(NameId: sidResurrector;
NameTex: nil;
Probability: 0;
NumberInCase: 1;
- Ammo: (Propz: ammoprop_NoCrosshair or ammoprop_NoRoundEndHint;
+ Ammo: (Propz: ammoprop_NoCrosshair or
+ ammoprop_Utility or
+ ammoprop_NoRoundEnd;
Count: 1;
NumPerTurn: 0;
Timer: 0;
@@ -2197,6 +2228,33 @@
PosCount: 1;
PosSprite: sprWater;
ejectX: 0;
+ ejectY: 0),
+
+// DrillStrike
+ (NameId: sidDrillStrike;
+ NameTex: nil;
+ Probability: 200;
+ NumberInCase: 1;
+ Ammo: (Propz: ammoprop_NoCrosshair or
+ ammoprop_NeedTarget or
+ ammoprop_AttackingPut or
+ ammoprop_DontHold or
+ ammoprop_NotBorder;
+ Count: 1;
+ NumPerTurn: 0;
+ Timer: 0;
+ Pos: 0;
+ AmmoType: amDrillStrike;
+ AttackVoice: sndIncoming);
+ Slot: 5;
+ TimeAfterTurn: 0;
+ minAngle: 0;
+ maxAngle: 0;
+ isDamaging: true;
+ SkipTurns: 6;
+ PosCount: 2;
+ PosSprite: sprAmAirplane;
+ ejectX: 0;
ejectY: 0)
);
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uGame.pas
--- a/hedgewars/uGame.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uGame.pas Mon Nov 15 12:37:39 2010 +0100
@@ -26,7 +26,7 @@
////////////////////
implementation
////////////////////
-uses uMisc, uConsts, uKeys, uTeams, uIO, uAI, uGears, uScript, uSound, uMobile;
+uses uMisc, uConsts, uKeys, uTeams, uIO, uAI, uGears, uScript, uSound, uMobile, uVisualGears;
procedure DoGameTick(Lag: LongInt);
var i: LongInt;
@@ -55,7 +55,11 @@
NetGetNextCmd;
if isInLag then
case GameType of
- gmtNet: break;
+ gmtNet: begin
+ // just update the health bars
+ AddVisualGear(0, 0, vgtTeamHealthSorter);
+ break;
+ end;
gmtDemo: begin
GameState:= gsExit;
exit
@@ -67,7 +71,8 @@
isSoundEnabled:= isSEBackup;
if isSoundEnabled then playMusic;
GameType:= gmtLocal;
- InitIPC;
+ AddVisualGear(0, 0, vgtTeamHealthSorter);
+ {$IFDEF IPHONEOS}InitIPC;{$ENDIF}
perfExt_SaveFinishedSynching();
end;
end
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uGears.pas
--- a/hedgewars/uGears.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uGears.pas Mon Nov 15 12:37:39 2010 +0100
@@ -102,7 +102,7 @@
implementation
uses uWorld, uMisc, uStore, uConsole, uSound, uTeams, uRandom, uCollisions, uLand, uIO, uLandGraphics,
- uAIMisc, uLocale, uAI, uAmmos, uStats, uVisualGears, uScript, GLunit;
+ uAIMisc, uLocale, uAI, uAmmos, uStats, uVisualGears, uScript, GLunit, uMobile;
const MAXROPEPOINTS = 384;
var RopePoints: record
@@ -121,7 +121,7 @@
procedure doMakeExplosion(X, Y, Radius: LongInt; Mask, Tint: LongWord); forward;
procedure AmmoShove(Ammo: PGear; Damage, Power: LongInt); forward;
//procedure AmmoFlameWork(Ammo: PGear); forward;
-function GearsNear(Gear: PGear; Kind: TGearType; r: LongInt): TPGearArray; forward;
+function GearsNear(X, Y: hwFloat; Kind: TGearType; r: LongInt): TPGearArray; forward;
function CheckGearNear(Gear: PGear; Kind: TGearType; rX, rY: LongInt): PGear; forward;
procedure SpawnBoxOfSmth; forward;
procedure AfterAttack; forward;
@@ -155,7 +155,7 @@
const doStepHandlers: array[TGearType] of TGearStepProcedure = (
@doStepBomb,
@doStepHedgehog,
- @doStepGrenade,
+ @doStepShell,
@doStepGrave,
@doStepBee,
@doStepShotgunShot,
@@ -209,7 +209,8 @@
@doStepPoisonCloud,
@doStepHammer,
@doStepHammerHit,
- @doStepResurrector
+ @doStepResurrector,
+ @doStepNapalmBomb
);
procedure InsertGearToList(Gear: PGear);
@@ -292,13 +293,13 @@
end;
case Kind of
- gtAmmo_Bomb,
+ gtBomb,
gtClusterBomb,
gtGasBomb: begin
gear^.ImpactSound:= sndGrenadeImpact;
gear^.nImpactSounds:= 1;
gear^.AdvBounce:= 1;
- gear^.Radius:= 6;
+ gear^.Radius:= 5;
gear^.Elasticity:= _0_8;
gear^.Friction:= _0_8;
gear^.RenderTimer:= true;
@@ -308,7 +309,7 @@
gear^.ImpactSound:= sndMelonImpact;
gear^.nImpactSounds:= 1;
gear^.AdvBounce:= 1;
- gear^.Radius:= 4;
+ gear^.Radius:= 6;
gear^.Elasticity:= _0_8;
gear^.Friction:= _0_995;
gear^.RenderTimer:= true;
@@ -325,7 +326,7 @@
if PHedgehog(gear^.Hedgehog)^.BotLevel > 0 then
PHedgehog(gear^.Hedgehog)^.Effects[heResurrectable] := true;
end;
-gtAmmo_Grenade: begin // bazooka
+ gtShell: begin
gear^.Radius:= 4;
end;
gtGrave: begin
@@ -365,9 +366,9 @@
gear^.Elasticity:= _0_55;
gear^.Friction:= _0_995;
if cMinesTime < 0 then
- gear^.Timer:= getrandom(4)*1000
+ gear^.Timer:= getrandom(51)*100
else
- gear^.Timer:= cMinesTime*1;
+ gear^.Timer:= cMinesTime*1000;
end;
gtSMine: begin
gear^.Health:= 10;
@@ -494,6 +495,7 @@
end;
gtJetpack: begin
gear^.Health:= 2000;
+ gear^.Damage:= 100
end;
gtMolotov: begin
gear^.Radius:= 6;
@@ -531,6 +533,7 @@
gear^.Tag:= 10;
gear^.Timer:= 10;
gear^.Health:= 500;
+ gear^.Damage:= 100;
end;
gtPoisonCloud: begin
gear^.Timer:= 5000;
@@ -538,6 +541,14 @@
end;
gtResurrector: begin
gear^.Radius := 100;
+ gear^.Tag := 0
+ end;
+ gtWaterUp: begin
+ gear^.Tag := 47;
+ end;
+ gtNapalmBomb: begin
+ gear^.Timer:= 1000;
+ gear^.Radius:= 5;
end;
end;
@@ -601,7 +612,10 @@
if (team^.Clan^.Teams[i]^.Hedgehogs[0].Gear <> nil) then k:= true;
if not k then
for i:= 0 to Pred(team^.Clan^.TeamsNumber) do
+ begin
+ team^.Clan^.Teams[i]^.hasGone:= true;
TeamGoneEffect(team^.Clan^.Teams[i]^)
+ end
end;
inc(KilledHHs);
RecountTeamHealth(team)
@@ -624,7 +638,7 @@
Gear:= GearsList;
while Gear <> nil do
begin
- if Gear^.Kind = gtHedgehog then
+ if (Gear^.Kind = gtHedgehog) and (((GameFlags and gfInfAttack) = 0) or ((Gear^.dX.QWordValue < _0_000004.QWordValue) and (Gear^.dY.QWordValue < _0_000004.QWordValue))) then
begin
if (not isInMultiShoot) then inc(Gear^.Damage, Gear^.Karma);
if (Gear^.Damage <> 0) and
@@ -659,7 +673,6 @@
end;
Gear:= Gear^.NextGear
end;
-SuddenDeathDmg:= false;
end;
procedure HealthMachine;
@@ -677,8 +690,15 @@
begin
tmp:= 0;
if PHedgehog(Gear^.Hedgehog)^.Effects[hePoisoned] then
+ begin
inc(tmp, ModifyDamage(5, Gear));
- inc(tmp, cHealthDecrease);
+ if (GameFlags and gfResetHealth) <> 0 then dec(PHedgehog(Gear^.Hedgehog)^.InitialHealth) // does not need a minimum check since <= 1 basically disables it
+ end;
+ if (TotalRounds > cSuddenDTurns - 1) then
+ begin
+ inc(tmp, cHealthDecrease);
+ if (GameFlags and gfResetHealth) <> 0 then dec(PHedgehog(Gear^.Hedgehog)^.InitialHealth, cHealthDecrease)
+ end;
if PHedgehog(Gear^.Hedgehog)^.King then
begin
flag:= false;
@@ -688,7 +708,11 @@
(not team^.Hedgehogs[i].King) and
(team^.Hedgehogs[i].Gear^.Health > team^.Hedgehogs[i].Gear^.Damage)
then flag:= true;
- if not flag then inc(tmp, 5)
+ if not flag then
+ begin
+ inc(tmp, 5);
+ if (GameFlags and gfResetHealth) <> 0 then dec(PHedgehog(Gear^.Hedgehog)^.InitialHealth, 5)
+ end
end;
if tmp > 0 then
begin
@@ -708,7 +732,7 @@
stAfterDelay, stChWin, stWater, stChWin2, stHealth,
stSpawn, stNTurn) = stDelay;
var Gear, t: PGear;
- i: LongInt;
+ i, AliveCount: LongInt;
s: shortstring;
begin
PrvInactive:= AllInactive;
@@ -786,8 +810,8 @@
begin
if TotalRounds = cSuddenDTurns + 1 then bWaterRising:= true;
- if bWaterRising then
- AddGear(0, 0, gtWaterUp, 0, _0, _0, 0);
+ if bWaterRising and (cWaterRise > 0) then
+ AddGear(0, 0, gtWaterUp, 0, _0, _0, 0)^.Tag:= cWaterRise;
inc(step)
end else inc(step);
@@ -796,20 +820,23 @@
inc(step)
end;
stHealth: begin
- if (TotalRounds = cSuddenDTurns - 1) and (cHealthDecrease = 0) and not isInMultiShoot then
+ if (cWaterRise <> 0) or (cHealthDecrease <> 0) then
begin
- cHealthDecrease:= 5;
- AddCaption(trmsg[sidSuddenDeath], cWhiteColor, capgrpGameState);
- playSound(sndSuddenDeath)
- end
- else if (TotalRounds < cSuddenDTurns - 1) and not isInMultiShoot then
- begin
- i:= cSuddenDTurns - TotalRounds - 1;
- s:= inttostr(i);
- if i = 1 then
- AddCaption(trmsg[sidRoundSD], cWhiteColor, capgrpGameState)
- else if i in [2, 5, 10, 15, 20, 25, 50, 100] then
- AddCaption(Format(trmsg[sidRoundsSD], s), cWhiteColor, capgrpGameState);
+ if (TotalRounds = cSuddenDTurns) and not SuddenDeathDmg and not isInMultiShoot then
+ begin
+ SuddenDeathDmg:= true;
+ AddCaption(trmsg[sidSuddenDeath], cWhiteColor, capgrpGameState);
+ playSound(sndSuddenDeath)
+ end
+ else if (TotalRounds < cSuddenDTurns) and not isInMultiShoot then
+ begin
+ i:= cSuddenDTurns - TotalRounds;
+ s:= inttostr(i);
+ if i = 1 then
+ AddCaption(trmsg[sidRoundSD], cWhiteColor, capgrpGameState)
+ else if i in [2, 5, 10, 15, 20, 25, 50, 100] then
+ AddCaption(Format(trmsg[sidRoundsSD], s), cWhiteColor, capgrpGameState);
+ end;
end;
if bBetweenTurns
or isInMultiShoot
@@ -817,7 +844,6 @@
else begin
bBetweenTurns:= true;
HealthMachine;
- if cHealthDecrease > 0 then SuddenDeathDmg:= true;
step:= stChDmg
end
end;
@@ -864,7 +890,14 @@
begin
SweepDirty;
CheckNoDamage;
- CheckForWin
+ AliveCount:= 0; // shorter version of check for win to allow typical step activity to proceed
+ for i:= 0 to Pred(ClansCount) do
+ if ClansArray[i]^.ClanHealth > 0 then inc(AliveCount);
+ if (AliveCount <= 1) and ((GameFlags and gfOneClanMode) = 0) then
+ begin
+ step:= stChDmg;
+ TurnTimeLeft:= 0
+ end
end
end
end;
@@ -932,29 +965,40 @@
cArtillery:= false;
// have to sweep *all* current team hedgehogs since it is theoretically possible if you have enough invulnerabilities and switch turns to make your entire team invulnerable
if (CurrentTeam <> nil) then
- with CurrentTeam^ do
- for i:= 0 to cMaxHHIndex do
- with Hedgehogs[i] do
- begin
- if (SpeechGear <> nil) then
- begin
- DeleteVisualGear(SpeechGear); // remove to restore persisting beyond end of turn. Tiy says was too much of a gameplay issue
- SpeechGear:= nil
- end;
+ with CurrentTeam^ do
+ for i:= 0 to cMaxHHIndex do
+ with Hedgehogs[i] do
+ begin
+ if (SpeechGear <> nil) then
+ begin
+ DeleteVisualGear(SpeechGear); // remove to restore persisting beyond end of turn. Tiy says was too much of a gameplay issue
+ SpeechGear:= nil
+ end;
- if (Gear <> nil) then
- if (GameFlags and gfInvulnerable) = 0 then
- Gear^.Invulnerable:= false;
- end;
+ if (Gear <> nil) then
+ begin
+ if (GameFlags and gfInvulnerable) = 0 then
+ Gear^.Invulnerable:= false;
+ end;
+ end;
t:= GearsList;
while t <> nil do
begin
t^.PortalCounter:= 0;
+ if ((GameFlags and gfResetHealth) <> 0) and (t^.Kind = gtHedgehog) and (t^.Health < PHedgehog(t^.Hedgehog)^.InitialHealth) then
+ begin
+ t^.Health:= PHedgehog(t^.Hedgehog)^.InitialHealth;
+ RenderHealth(PHedgehog(t^.Hedgehog)^);
+ end;
t:= t^.NextGear
end;
if (GameFlags and gfResetWeps) <> 0 then
- ResetWeapons
+ ResetWeapons;
+
+ if (GameFlags and gfResetHealth) <> 0 then
+ for i:= 0 to Pred(TeamsCount) do
+ RecountTeamHealth(TeamsArray[i])
end;
procedure ApplyDamage(Gear: PGear; Damage: Longword; Source: TDamageSource);
@@ -1034,8 +1078,8 @@
begin
if not (((Ammoz[CurAmmoType].Ammo.Propz and ammoprop_AltUse) <> 0) and ((Gear^.State and gstAttacked) = 0)) then
exit;
- DrawTexture(round(int64(sx) + 16), round(int64(sy) + 16), ropeIconTex);
- DrawTextureF(SpritesData[sprAMAmmos].Texture, 0.75, round(int64(sx) + 30), round(int64(sy) + 30), ord(CurAmmoType) - 1, 1, 32, 32);
+ DrawTexture(sx + 16, sy + 16, ropeIconTex);
+ DrawTextureF(SpritesData[sprAMAmmos].Texture, 0.75, sx + 30, sy + 30, ord(CurAmmoType) - 1, 1, 32, 32);
end;
end;
@@ -1198,21 +1242,15 @@
FindPlace(TrainingTargetGear, false, 0, LAND_WIDTH);
end;
-if ((GameFlags and gfForts) = 0) then
+for i:= 0 to Pred(cLandMines) do
begin
- // TODO: exclude each other or allow both, mines and explosives, on same map?
- if ((GameFlags and gfMines) <> 0) then
- for i:= 0 to Pred(cLandAdditions) do
- begin
- Gear:= AddGear(0, 0, gtMine, 0, _0, _0, 0);
- FindPlace(Gear, false, 0, LAND_WIDTH);
- end;
-// No game flag for this for now
- for i:= 0 to Pred(cExplosives) do
- begin
- Gear:= AddGear(0, 0, gtExplosives, 0, _0, _0, 0);
- FindPlace(Gear, false, 0, LAND_WIDTH);
- end;
+ Gear:= AddGear(0, 0, gtMine, 0, _0, _0, 0);
+ FindPlace(Gear, false, 0, LAND_WIDTH);
+ end;
+for i:= 0 to Pred(cExplosives) do
+ begin
+ Gear:= AddGear(0, 0, gtExplosives, 0, _0, _0, 0);
+ FindPlace(Gear, false, 0, LAND_WIDTH);
end;
if (GameFlags and gfLowGravity) <> 0 then
@@ -1386,6 +1424,7 @@
var t: PGearArray;
Gear: PGear;
i, tmpDmg: LongInt;
+ VGear: PVisualGear;
begin
t:= CheckGearsCollision(Ammo);
// Just to avoid hogs on rope dodging fire.
@@ -1396,6 +1435,7 @@
t^.ar[t^.Count]:= CurrentHedgehog^.Gear;
inc(t^.Count)
end;
+
i:= t^.Count;
if (Ammo^.Kind = gtFlame) and (i > 0) then Ammo^.Health:= 0;
@@ -1406,6 +1446,16 @@
tmpDmg:= ModifyDamage(Damage, Gear);
if (Gear^.State and gstNoDamage) = 0 then
begin
+
+ if (Ammo^.Kind = gtDEagleShot) or (Ammo^.Kind = gtSniperRifleShot) then
+ begin
+ VGear := AddVisualGear(hwround(Ammo^.X), hwround(Ammo^.Y), vgtBulletHit);
+ if VGear <> nil then
+ begin
+ VGear^.Angle := DxDy2Angle(-Ammo^.dX, Ammo^.dY);
+ end;
+ end;
+
if (Gear^.Kind = gtHedgehog) and (Ammo^.State and gsttmpFlag <> 0) and (Ammo^.Kind = gtShover) then Gear^.FlightTime:= 1;
case Gear^.Kind of
@@ -1461,7 +1511,7 @@
Count: Longword;
begin
if (GameFlags and gfPlaceHog) <> 0 then PlacingHogs:= true;
-if (GameFlags and (gfForts or gfDivideTeams)) <> 0 then
+if (GameFlags and gfDivideTeams) <> 0 then
begin
t:= 0;
TryDo(ClansCount = 2, 'More or less than 2 clans on map in divided teams mode!', true);
@@ -1518,16 +1568,16 @@
end
end;
-function GearsNear(Gear: PGear; Kind: TGearType; r: LongInt): TPGearArray;
+function GearsNear(X, Y: hwFloat; Kind: TGearType; r: LongInt): TPGearArray;
var
t: PGear;
begin
GearsNear := nil;
t := GearsList;
while t <> nil do begin
- if (t <> Gear) and (t^.Kind = Kind) then begin
- if (Gear^.X - t^.X)*(Gear^.X - t^.X) + (Gear^.Y -
- t^.Y)*(Gear^.Y-t^.Y) < int2hwFloat(r)*int2hwFloat(r) then
+ if (t^.Kind = Kind) then begin
+ if (X - t^.X)*(X - t^.X) + (Y - t^.Y)*(Y-t^.Y) <
+ int2hwFloat(r)*int2hwFloat(r) then
begin
SetLength(GearsNear, Length(GearsNear)+1);
GearsNear[High(GearsNear)] := t;
@@ -1638,18 +1688,18 @@
case crate of
HealthCrate: begin
- FollowGear^.Health := 25;
+ FollowGear^.Health := cHealthCaseAmount;
FollowGear^.Pos := posCaseHealth;
AddCaption(GetEventString(eidNewHealthPack), cWhiteColor, capgrpAmmoInfo);
end;
AmmoCrate: begin
FollowGear^.Pos := posCaseAmmo;
- FollowGear^.State := content;
+ FollowGear^.AmmoType := TAmmoType(content);
AddCaption(GetEventString(eidNewAmmoPack), cWhiteColor, capgrpAmmoInfo);
end;
UtilityCrate: begin
FollowGear^.Pos := posCaseUtility;
- FollowGear^.State := content;
+ FollowGear^.AmmoType := TAmmoType(content);
AddCaption(GetEventString(eidNewUtilityPack), cWhiteColor, capgrpAmmoInfo);
end;
end;
@@ -1680,14 +1730,13 @@
t:=0;
a:=aTot;
h:= 1;
-// FIXME - shoppa is TEMPORARY REMOVE WHEN CRATE PROBABILITY ALLOWS DISABLING OF HEALTH CRATES
-// Preserving health crate distribution of 35% until that happens
+
if (aTot+uTot) <> 0 then
- if not shoppa and ((GameFlags and gfInvulnerable) = 0) then
+ if ((GameFlags and gfInvulnerable) = 0) then
begin
- h:= 3500;
+ h:= cHealthCaseProb * 100;
t:= GetRandom(10000);
- a:= 6500*aTot div (aTot+uTot)
+ a:= (10000-h)*aTot div (aTot+uTot)
end
else
begin
@@ -1699,7 +1748,7 @@
if t= 0 do
begin
inc(i);
@@ -1720,7 +1767,7 @@
dec(t, Ammoz[i].Probability)
end;
FollowGear^.Pos:= posCaseAmmo;
- FollowGear^.State:= Longword(i);
+ FollowGear^.AmmoType:= i;
AddCaption(GetEventString(eidNewAmmoPack), cWhiteColor, capgrpAmmoInfo);
end
end
@@ -1732,8 +1779,6 @@
FollowGear:= AddGear(0, 0, gtCase, 0, _0, _0, 0);
t:= GetRandom(t);
i:= Low(TAmmoType);
- if (Ammoz[i].Ammo.Propz and ammoprop_Utility) <> 0 then
- dec(t, Ammoz[i].Probability);
while t >= 0 do
begin
inc(i);
@@ -1741,7 +1786,7 @@
dec(t, Ammoz[i].Probability)
end;
FollowGear^.Pos:= posCaseUtility;
- FollowGear^.State:= Longword(i);
+ FollowGear^.AmmoType:= i;
AddCaption(GetEventString(eidNewUtilityPack), cWhiteColor, capgrpAmmoInfo);
end
end;
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uKeys.pas
--- a/hedgewars/uKeys.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uKeys.pas Mon Nov 15 12:37:39 2010 +0100
@@ -264,15 +264,16 @@
for i:= 6 to cKeyMaxIndex do
begin
- s:= shortstring(sdl_getkeyname(i));
+ s:= shortstring(sdl_getkeyname(i));
//writeln(stdout,inttostr(i) + ': ' + s);
- if s = 'unknown key' then KeyNames[i]:= ''
- else begin
+ if s = 'unknown key' then KeyNames[i]:= ''
+ else
+ begin
for t:= 1 to Length(s) do
if s[t] = ' ' then s[t]:= '_';
- KeyNames[i]:= s
+ KeyNames[i]:= s
end;
-end;
+ end;
//for i:= 0 to cKeyMaxIndex do writeln(stdout,inttostr(i) + ': ' + KeyNames[i]);
@@ -349,6 +350,8 @@
DefaultBinds[KeyNameToCode('left_shift')]:= '+precise';
{$ENDIF}
+for i:= 1 to 10 do DefaultBinds[KeyNameToCode('f'+inttostr(i))]:= 'slot '+inttostr(i);
+
SetDefaultBinds();
end;
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uLandObjects.pas
--- a/hedgewars/uLandObjects.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uLandObjects.pas Mon Nov 15 12:37:39 2010 +0100
@@ -292,9 +292,9 @@
end
end;
inc(y, 3);
- until y > int64(LAND_HEIGHT) - 1 - Height;
+ until y >= LAND_HEIGHT - Height;
inc(x, getrandom(6) + 3)
- until x > int64(LAND_WIDTH) - 1 - Width;
+ until x >= LAND_WIDTH - Width;
bRes:= cnt <> 0;
if bRes then
begin
@@ -341,9 +341,9 @@
end
end;
inc(y, 12);
- until y > int64(LAND_HEIGHT) - 1 - Height - 8;
+ until y >= LAND_HEIGHT - Height - 8;
inc(x, getrandom(12) + 12)
- until x > int64(LAND_WIDTH) - 1 - Width;
+ until x >= LAND_WIDTH - Width;
bRes:= cnt <> 0;
if bRes then
begin
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uLocale.pas
--- a/hedgewars/uLocale.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uLocale.pas Mon Nov 15 12:37:39 2010 +0100
@@ -30,7 +30,7 @@
sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime,
sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack,
sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb, sidSineGun, sidFlamethrower,
- sidSMine, sidHammer, sidResurrector);
+ sidSMine, sidHammer, sidResurrector, sidDrillStrike);
TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused,
sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync,
@@ -43,7 +43,7 @@
TGoalStrId = (gidCaption, gidSubCaption, gidForts, gidLowGravity, gidInvulnerable,
gidVampiric, gidKarma, gidKing, gidPlaceHog, gidArtillery,
gidSolidLand, gidSharedAmmo, gidMineTimer, gidNoMineTimer, gidRandomMineTimer,
- gidDamageModifier);
+ gidDamageModifier, gidResetHealth, gidAISurvival, gidInfAttack, gidResetWeps, gidPerHogAmmo);
const MAX_EVENT_STRINGS = 100;
var trammo: array[TAmmoStrId] of ansistring; // name of the weapon
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uMisc.pas
--- a/hedgewars/uMisc.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uMisc.pas Mon Nov 15 12:37:39 2010 +0100
@@ -38,7 +38,7 @@
PathPrefix : shortstring = './';
cShowFPS : boolean = false;
cAltDamage : boolean = true;
- cReducedQuality : LongInt = rqNone;
+ cReducedQuality : LongWord = rqNone;
//userNick is in uChat
recordFileName : shortstring = '';
cReadyDelay : Longword = 0;
@@ -75,6 +75,11 @@
cMinesTime : LongInt;
cMaxAIThinkTime : Longword;
+ cHealthCaseProb : LongInt;
+ cHealthCaseAmount: LongInt;
+ cWaterRise : LongInt;
+ cHealthDecrease : LongInt;
+
cCloudsNumber : LongInt;
cTagsMask : byte;
@@ -107,7 +112,7 @@
cScreenSpace : LongInt;
cCaseFactor : Longword;
- cLandAdditions : Longword;
+ cLandMines : Longword;
cExplosives : Longword;
cSeed : shortstring;
@@ -116,8 +121,7 @@
cInactDelay : Longword;
bBetweenTurns : boolean;
- cHealthDecrease : LongWord;
- bWaterRising : Boolean;
+ bWaterRising : boolean;
ShowCrosshair : boolean;
CursorMovementX : LongInt;
@@ -281,12 +285,12 @@
begin
// obsolete? written in WriteLnToConsole() anyway
// {$IFDEF DEBUGFILE}AddFileLog(Msg);{$ENDIF}
- WriteLnToConsole(Msg);
- if isFatalError then
+WriteLnToConsole(Msg);
+if isFatalError then
begin
- SendIPC('E' + GetLastConsoleLine);
- SDL_Quit;
- halt(1)
+ SendIPC('E' + GetLastConsoleLine);
+ SDL_Quit;
+ halt(1)
end
end;
@@ -744,7 +748,6 @@
TimeTrialStopTime := 0;
cWaterLine := LAND_HEIGHT;
cGearScrEdgesDist := 240;
- cHealthDecrease := 0;
GameFlags := 0;
TrainingFlags := 0;
@@ -753,20 +756,24 @@
cDamagePercent := 100;
cMineDudPercent := 0;
cTemplateFilter := 0;
- cMapGen := 0;//MAPGEN_REGULAR
+ cMapGen := 0; // MAPGEN_REGULAR
cMazeSize := 0;
cHedgehogTurnTime := 45000;
- cMinesTime := 3000;
+ cMinesTime := 3;
cMaxAIThinkTime := 9000;
cCloudsNumber := 9;
+ cHealthCaseProb := 35;
+ cHealthCaseAmount := 25;
+ cWaterRise := 47;
+ cHealthDecrease := 5;
cTagsMask := 0;
KBnum := 0;
InitStepsFlags := 0;
RealTicks := 0;
- AttackBar := 0; // 0 - none, 1 - just bar at the right-down corner, 2 - like in WWP
+ AttackBar := 0; // 0 - none, 1 - just bar at the right-down corner, 2 - from weapon
cCaseFactor := 5; {0..9}
- cLandAdditions := 4;
+ cLandMines := 4;
cExplosives := 2;
GameState := Low(TGameState);
@@ -873,7 +880,7 @@
cReducedQuality := rqNone;
//userNick is in uChat
recordFileName := '';
- cReadyDelay := 5000;
+ cReadyDelay := 0;
end;
end.
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uMobile.pas
--- a/hedgewars/uMobile.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uMobile.pas Mon Nov 15 12:37:39 2010 +0100
@@ -22,7 +22,7 @@
interface
{$IFDEF IPHONEOS}
-(* iOS calls written in C/Objc *)
+(* iOS calls written in ObjcExports.m *)
procedure clearView; cdecl; external;
procedure startSpinning; cdecl; external;
procedure stopSpinning; cdecl; external;
@@ -30,9 +30,10 @@
procedure replayFinished; cdecl; external;
procedure updateVisualsNewTurn; cdecl; external;
function isApplePhone: Boolean; cdecl; external;
+procedure AudioServicesPlaySystemSound(num: LongInt); cdecl; external;
{$ENDIF}
function isPhone: Boolean; inline;
-procedure doRumble; inline;
+procedure performRumble; inline;
procedure perfExt_AddProgress; inline;
procedure perfExt_FinishProgress; inline;
procedure perfExt_AmmoUpdate; // don't inline
@@ -51,9 +52,12 @@
exit(false);
end;
-procedure doRumble; inline;
+procedure performRumble; inline;
begin
- // fill me!
+{$IFDEF IPHONEOS}
+ // kSystemSoundID_Vibrate = $00000FFF
+ AudioServicesPlaySystemSound($00000FFF);
+{$ENDIF}
end;
procedure perfExt_AddProgress; inline;
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uScript.pas
--- a/hedgewars/uScript.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uScript.pas Mon Nov 15 12:37:39 2010 +0100
@@ -51,7 +51,9 @@
uSound,
uTeams,
uKeys,
- uChat;
+ uChat,
+ uStats,
+ uRandom;
var luaState : Plua_State;
ScriptAmmoLoadout : shortstring;
@@ -117,6 +119,17 @@
lc_hidemission:= 0;
end;
+function lc_addcaption(L : Plua_State) : LongInt; Cdecl;
+begin
+ if lua_gettop(L) = 1 then
+ begin
+ AddCaption(lua_tostring(L, 1), cWhiteColor, capgrpMessage);
+ end
+ else
+ LuaError('Lua: Wrong number of parameters passed to AddCaption!');
+ lc_addcaption:= 0;
+end;
+
function lc_campaignlock(L : Plua_State) : LongInt; Cdecl;
begin
if lua_gettop(L) = 1 then
@@ -314,6 +327,27 @@
lc_gethogclan:= 1
end;
+function lc_gethogteamname(L : Plua_State) : LongInt; Cdecl;
+var gear : PGear;
+begin
+ if lua_gettop(L) <> 1 then
+ begin
+ LuaError('Lua: Wrong number of parameters passed to GetHogTeamName!');
+ lua_pushnil(L); // return value on stack (nil)
+ end
+ else
+ begin
+ gear:= GearByUID(lua_tointeger(L, 1));
+ if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) then
+ begin
+ lua_pushstring(L, str2pchar(PHedgehog(gear^.Hedgehog)^.Team^.TeamName))
+ end
+ else
+ lua_pushnil(L);
+ end;
+ lc_gethogteamname:= 1
+end;
+
function lc_gethogname(L : Plua_State) : LongInt; Cdecl;
var gear : PGear;
begin
@@ -765,6 +799,28 @@
ScriptSetAmmo(TAmmoType(lua_tointeger(L, 1)), lua_tointeger(L, 2), lua_tointeger(L, 3), lua_tointeger(L, 4), lua_tointeger(L, 5));
lc_setammo:= 0
end;
+
+function lc_getrandom(L : Plua_State) : LongInt; Cdecl;
+var m : LongInt;
+begin
+ if lua_gettop(L) <> 1 then
+ begin
+ LuaError('Lua: Wrong number of parameters passed to GetRandom!');
+ lua_pushnil(L); // return value on stack (nil)
+ end
+ else
+ begin
+ m:= lua_tointeger(L, 1);
+ if (m > 0) then
+ lua_pushinteger(L, GetRandom(m))
+ else
+ begin
+ LuaError('Lua: Tried to pass 0 to GetRandom!');
+ lua_pushnil(L);
+ end
+ end;
+ lc_getrandom:= 1
+end;
///////////////////
procedure ScriptPrintStack;
@@ -830,11 +886,18 @@
ScriptSetString('Seed', cSeed);
ScriptSetInteger('TurnTime', cHedgehogTurnTime);
ScriptSetInteger('CaseFreq', cCaseFactor);
-ScriptSetInteger('LandAdds', cLandAdditions);
+ScriptSetInteger('HealthCaseProb', cHealthCaseProb);
+ScriptSetInteger('HealthCaseAmount', cHealthCaseAmount);
+ScriptSetInteger('DamagePercent', cDamagePercent);
+ScriptSetInteger('MinesNum', cLandMines);
+ScriptSetInteger('MinesTime', cMinesTime);
+ScriptSetInteger('MineDudPercent', cMineDudPercent);
ScriptSetInteger('Explosives', cExplosives);
ScriptSetInteger('Delay', cInactDelay);
ScriptSetInteger('Ready', cReadyDelay);
ScriptSetInteger('SuddenDeathTurns', cSuddenDTurns);
+ScriptSetInteger('WaterRise', cWaterRise);
+ScriptSetInteger('HealthDecrease', cHealthDecrease);
ScriptSetString('Map', '');
ScriptSetString('Theme', '');
@@ -851,11 +914,18 @@
ParseCommand('$gmflags ' + ScriptGetString('GameFlags'), true);
ParseCommand('$turntime ' + ScriptGetString('TurnTime'), true);
ParseCommand('$casefreq ' + ScriptGetString('CaseFreq'), true);
-ParseCommand('$landadds ' + ScriptGetString('LandAdds'), true);
+ParseCommand('$healthprob ' + ScriptGetString('HealthCaseProb'), true);
+ParseCommand('$hcaseamount ' + ScriptGetString('HealthCaseAmount'), true);
+ParseCommand('$damagepct ' + ScriptGetString('DamagePercent'), true);
+ParseCommand('$minesnum ' + ScriptGetString('MinesNum'), true);
+ParseCommand('$minestime ' + ScriptGetString('MinesTime'), true);
+ParseCommand('$minedudpct ' + ScriptGetString('MineDudPercent'), true);
ParseCommand('$explosives ' + ScriptGetString('Explosives'), true);
ParseCommand('$delay ' + ScriptGetString('Delay'), true);
ParseCommand('$ready ' + ScriptGetString('Ready'), true);
ParseCommand('$sd_turns ' + ScriptGetString('SuddenDeathTurns'), true);
+ParseCommand('$waterrise ' + ScriptGetString('WaterRise'), true);
+ParseCommand('$healthdec ' + ScriptGetString('HealthDecrease'), true);
if ScriptGetString('Map') <> '' then
ParseCommand('map ' + ScriptGetString('Map'), true);
if ScriptGetString('Theme') <> '' then
@@ -868,7 +938,8 @@
ScriptApplyAmmoStore
end;
-ScriptSetInteger('ClansCount', ClansCount)
+ScriptSetInteger('ClansCount', ClansCount);
+ScriptSetInteger('TeamsCount', TeamsCount)
end;
procedure ScriptLoad(name : shortstring);
@@ -894,6 +965,7 @@
ScriptSetInteger('TurnTimeLeft', TurnTimeLeft);
ScriptSetInteger('GameTime', GameTicks);
ScriptSetInteger('RealTime', RealTicks);
+ScriptSetInteger('TotalRounds', TotalRounds);
if (CurrentHedgehog <> nil) and (CurrentHedgehog^.Gear <> nil) then
ScriptSetInteger('CurrentHedgehog', CurrentHedgehog^.Gear^.UID)
else
@@ -1039,7 +1111,6 @@
ScriptSetInteger('gfLowGravity', gfLowGravity);
ScriptSetInteger('gfLaserSight', gfLaserSight);
ScriptSetInteger('gfInvulnerable', gfInvulnerable);
-ScriptSetInteger('gfMines', gfMines);
ScriptSetInteger('gfVampiric', gfVampiric);
ScriptSetInteger('gfKarma', gfKarma);
ScriptSetInteger('gfArtillery', gfArtillery);
@@ -1049,6 +1120,13 @@
ScriptSetInteger('gfPlaceHog', gfPlaceHog);
ScriptSetInteger('gfSharedAmmo', gfSharedAmmo);
ScriptSetInteger('gfDisableGirders', gfDisableGirders);
+ScriptSetInteger('gfDisableLandObjects', gfDisableLandObjects);
+ScriptSetInteger('gfAISurvival', gfAISurvival);
+ScriptSetInteger('gfInfAttack', gfInfAttack);
+ScriptSetInteger('gfResetWeps', gfResetWeps);
+ScriptSetInteger('gfPerHogAmmo', gfPerHogAmmo);
+ScriptSetInteger('gfDisableWind', gfDisableWind);
+ScriptSetInteger('gfMoreWind', gfMoreWind);
ScriptSetInteger('gmLeft', gmLeft);
ScriptSetInteger('gmRight', gmRight);
@@ -1101,13 +1179,16 @@
lua_register(luaState, 'ParseCommand', @lc_parsecommand);
lua_register(luaState, 'ShowMission', @lc_showmission);
lua_register(luaState, 'HideMission', @lc_hidemission);
+lua_register(luaState, 'AddCaption', @lc_addcaption);
lua_register(luaState, 'SetAmmo', @lc_setammo);
lua_register(luaState, 'PlaySound', @lc_playsound);
lua_register(luaState, 'AddTeam', @lc_addteam);
lua_register(luaState, 'AddHog', @lc_addhog);
lua_register(luaState, 'SetHealth', @lc_sethealth);
+lua_register(luaState, 'GetHealth', @lc_gethealth);
lua_register(luaState, 'SetEffect', @lc_seteffect);
lua_register(luaState, 'GetHogClan', @lc_gethogclan);
+lua_register(luaState, 'GetHogTeamName', @lc_gethogteamname);
lua_register(luaState, 'GetHogName', @lc_gethogname);
lua_register(luaState, 'GetHogLevel', @lc_gethoglevel);
lua_register(luaState, 'GetX', @lc_getx);
@@ -1121,7 +1202,6 @@
lua_register(luaState, 'SetTag', @lc_settag);
lua_register(luaState, 'SetTimer', @lc_settimer);
lua_register(luaState, 'GetTimer', @lc_gettimer);
-lua_register(luaState, 'GetHealth', @lc_gethealth);
lua_register(luaState, 'SetZoom', @lc_setzoom);
lua_register(luaState, 'GetZoom', @lc_getzoom);
lua_register(luaState, 'HogSay', @lc_hogsay);
@@ -1130,6 +1210,7 @@
lua_register(luaState, 'CampaignUnlock', @lc_campaignunlock);
lua_register(luaState, 'GetGearMessage', @lc_getgearmessage);
lua_register(luaState, 'SetGearMessage', @lc_setgearmessage);
+lua_register(luaState, 'GetRandom', @lc_getrandom);
ScriptClearStack; // just to be sure stack is empty
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uStore.pas
--- a/hedgewars/uStore.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uStore.pas Mon Nov 15 12:37:39 2010 +0100
@@ -61,6 +61,7 @@
procedure DrawFromRect(X, Y, W, H: LongInt; r: PSDL_Rect; SourceTexture: PTexture);
procedure DrawFromRect(X, Y: LongInt; r: PSDL_Rect; SourceTexture: PTexture);
procedure DrawHedgehog(X, Y: LongInt; Dir: LongInt; Pos, Step: LongWord; Angle: real);
+procedure DrawLine(X0, Y0, X1, Y1, Width: Single; r, g, b, a: Byte);
procedure DrawFillRect(r: TSDL_Rect);
procedure DrawCircle(X, Y, Radius: LongInt; Width: Single; r, g, b, a: Byte);
procedure DrawRoundRect(rect: PSDL_Rect; BorderColor, FillColor: Longword; Surface: PSDL_Surface; Clear: boolean);
@@ -795,6 +796,32 @@
glPopMatrix
end;
+procedure DrawLine(X0, Y0, X1, Y1, Width: Single; r, g, b, a: Byte);
+var VertexBuffer: array [0..3] of TVertex2f;
+begin
+ glDisable(GL_TEXTURE_2D);
+ glEnable(GL_LINE_SMOOTH);
+
+ glPushMatrix;
+ glTranslatef(WorldDx, WorldDy, 0);
+ glLineWidth(Width);
+
+ Tint(r, g, b, a);
+ VertexBuffer[0].X:= X0;
+ VertexBuffer[0].Y:= Y0;
+ VertexBuffer[1].X:= X1;
+ VertexBuffer[1].Y:= Y1;
+
+ glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
+ glDrawArrays(GL_LINES, 0, Length(VertexBuffer));
+ Tint($FF, $FF, $FF, $FF);
+
+ glPopMatrix;
+
+ glEnable(GL_TEXTURE_2D);
+ glDisable(GL_LINE_SMOOTH);
+end;
+
procedure DrawFillRect(r: TSDL_Rect);
var VertexBuffer: array [0..3] of TVertex2f;
begin
@@ -836,7 +863,6 @@
glDisable(GL_TEXTURE_2D);
glEnable(GL_LINE_SMOOTH);
glPushMatrix;
- glTranslatef(WorldDx, WorldDy, 0);
glLineWidth(Width);
Tint(r, g, b, a);
glVertexPointer(2, GL_FLOAT, 0, @CircleVertex[0]);
@@ -1596,7 +1622,7 @@
extra:= trmsg[sidNotYetAvailable];
extracolor:= LongInt($ffc77070);
end
-else if (Ammoz[atype].Ammo.Propz and ammoprop_NoRoundEndHint) <> 0 then // weapon or utility won't end your turn
+else if (Ammoz[atype].Ammo.Propz and ammoprop_NoRoundEnd) <> 0 then // weapon or utility won't end your turn
begin
extra:= trmsg[sidNoEndTurn];
extracolor:= LongInt($ff70c770);
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uTeams.pas
--- a/hedgewars/uTeams.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uTeams.pas Mon Nov 15 12:37:39 2010 +0100
@@ -47,6 +47,7 @@
HatVisibility: GLfloat;
stats: TStatistics;
Hat: shortstring;
+ InitialHealth: LongInt; // used for gfResetHealth
King: boolean; // Flag for a bunch of hedgehog attributes
Unplaced: boolean; // Flag for hog placing mode
Timer: Longword;
@@ -101,6 +102,7 @@
LocalClan: LongInt; // last non-bot, non-extdriven clan
LocalAmmo: LongInt; // last non-bot, non-extdriven clan's first team's ammo index
CurMinAngle, CurMaxAngle: Longword;
+ GameOver: boolean;
procedure initModule;
procedure freeModule;
@@ -139,31 +141,35 @@
TurnTimeLeft:= 0;
ReadyTimeLeft:= 0;
-if AliveCount = 0 then
- begin // draw
- AddCaption(trmsg[sidDraw], cWhiteColor, capgrpGameState);
- SendStat(siGameResult, trmsg[sidDraw]);
- AddGear(0, 0, gtATFinishGame, 0, _0, _0, 3000)
- end else // win
- with AliveClan^ do
- begin
- if TeamsNumber = 1 then
- s:= Format(shortstring(trmsg[sidWinner]), Teams[0]^.TeamName) // team wins
- else
- s:= Format(shortstring(trmsg[sidWinner]), Teams[0]^.TeamName); // clan wins
+if not GameOver then
+ begin
+ if AliveCount = 0 then
+ begin // draw
+ AddCaption(trmsg[sidDraw], cWhiteColor, capgrpGameState);
+ SendStat(siGameResult, trmsg[sidDraw]);
+ AddGear(0, 0, gtATFinishGame, 0, _0, _0, 3000)
+ end else // win
+ with AliveClan^ do
+ begin
+ if TeamsNumber = 1 then
+ s:= Format(shortstring(trmsg[sidWinner]), Teams[0]^.TeamName) // team wins
+ else
+ s:= Format(shortstring(trmsg[sidWinner]), Teams[0]^.TeamName); // clan wins
- for j:= 0 to Pred(TeamsNumber) do
- with Teams[j]^ do
- for i:= 0 to cMaxHHIndex do
- with Hedgehogs[i] do
- if (Gear <> nil) then
- Gear^.State:= gstWinner;
+ for j:= 0 to Pred(TeamsNumber) do
+ with Teams[j]^ do
+ for i:= 0 to cMaxHHIndex do
+ with Hedgehogs[i] do
+ if (Gear <> nil) then
+ Gear^.State:= gstWinner;
- AddCaption(s, cWhiteColor, capgrpGameState);
- SendStat(siGameResult, s);
- AddGear(0, 0, gtATFinishGame, 0, _0, _0, 3000)
- end;
-SendStats
+ AddCaption(s, cWhiteColor, capgrpGameState);
+ SendStat(siGameResult, s);
+ AddGear(0, 0, gtATFinishGame, 0, _0, _0, 3000)
+ end;
+ SendStats;
+ end;
+GameOver:= true
end;
procedure SwitchHedgehog;
@@ -269,15 +275,19 @@
ResetKbd;
-cWindSpeed:= rndSign(GetRandom * 2 * cMaxWindSpeed);
-// cWindSpeedf:= cWindSpeed.QWordValue / _1.QWordValue throws Internal error 200502052 on fpc 2.5.1
-// see http://mantis.freepascal.org/view.php?id=17714
-cWindSpeedf:= SignAs(cWindSpeed,cWindSpeed).QWordValue / SignAs(_1,_1).QWordValue;
-if cWindSpeed.isNegative then
- CWindSpeedf := -cWindSpeedf;
-g:= AddGear(0, 0, gtATSmoothWindCh, 0, _0, _0, 1);
-g^.Tag:= hwRound(cWindSpeed * 72 / cMaxWindSpeed);
+if (GameFlags and gfDisableWind) = 0 then
+ begin
+ cWindSpeed:= rndSign(GetRandom * 2 * cMaxWindSpeed);
+ // cWindSpeedf:= cWindSpeed.QWordValue / _1.QWordValue throws 'Internal error 200502052' on Darwin
+ // see http://mantis.freepascal.org/view.php?id=17714
+ cWindSpeedf:= SignAs(cWindSpeed,cWindSpeed).QWordValue / SignAs(_1,_1).QWordValue;
+ if cWindSpeed.isNegative then
+ CWindSpeedf := -cWindSpeedf;
+ g:= AddGear(0, 0, gtATSmoothWindCh, 0, _0, _0, 1);
+ g^.Tag:= hwRound(cWindSpeed * 72 / cMaxWindSpeed);
{$IFDEF DEBUGFILE}AddFileLog('Wind = '+FloatToStr(cWindSpeed));{$ENDIF}
+ end;
+
ApplyAmmoChanges(CurrentHedgehog^);
if not CurrentTeam^.ExtDriven then SetBinds(CurrentTeam^.Binds);
@@ -365,35 +375,36 @@
begin
for t:= 0 to Pred(TeamsCount) do
- with TeamsArray[t]^ do
- begin
- if (not ExtDriven) and (Hedgehogs[0].BotLevel = 0) then
- begin
- LocalClan:= Clan^.ClanIndex;
- LocalAmmo:= Hedgehogs[0].AmmoStore
- end;
- th:= 0;
- for i:= 0 to cMaxHHIndex do
- if Hedgehogs[i].Gear <> nil then
- inc(th, Hedgehogs[i].Gear^.Health);
- if th > MaxTeamHealth then MaxTeamHealth:= th;
- // Some initial King buffs
- if (GameFlags and gfKing) <> 0 then
- begin
- Hedgehogs[0].King:= true;
- Hedgehogs[0].Hat:= 'crown';
- Hedgehogs[0].Effects[hePoisoned] := false;
- h:= Hedgehogs[0].Gear^.Health;
- Hedgehogs[0].Gear^.Health:= hwRound(int2hwFloat(th)*_0_375);
- if Hedgehogs[0].Gear^.Health > h then
- begin
- dec(th, h);
- inc(th, Hedgehogs[0].Gear^.Health);
- if th > MaxTeamHealth then MaxTeamHealth:= th
- end
- else Hedgehogs[0].Gear^.Health:= h
- end;
- end;
+ with TeamsArray[t]^ do
+ begin
+ if (not ExtDriven) and (Hedgehogs[0].BotLevel = 0) then
+ begin
+ LocalClan:= Clan^.ClanIndex;
+ LocalAmmo:= Hedgehogs[0].AmmoStore
+ end;
+ th:= 0;
+ for i:= 0 to cMaxHHIndex do
+ if Hedgehogs[i].Gear <> nil then
+ inc(th, Hedgehogs[i].Gear^.Health);
+ if th > MaxTeamHealth then MaxTeamHealth:= th;
+ // Some initial King buffs
+ if (GameFlags and gfKing) <> 0 then
+ begin
+ Hedgehogs[0].King:= true;
+ Hedgehogs[0].Hat:= 'crown';
+ Hedgehogs[0].Effects[hePoisoned] := false;
+ h:= Hedgehogs[0].Gear^.Health;
+ Hedgehogs[0].Gear^.Health:= hwRound(int2hwFloat(th)*_0_375);
+ if Hedgehogs[0].Gear^.Health > h then
+ begin
+ dec(th, h);
+ inc(th, Hedgehogs[0].Gear^.Health);
+ if th > MaxTeamHealth then MaxTeamHealth:= th
+ end
+ else Hedgehogs[0].Gear^.Health:= h;
+ Hedgehogs[0].InitialHealth:= Hedgehogs[0].Gear^.Health
+ end;
+ end;
RecountAllTeamsHealth
end;
@@ -497,6 +508,7 @@
ClansCount:= 0;
LocalClan:= -1;
LocalAmmo:= -1;
+ GameOver:= false
end;
procedure freeModule;
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uVisualGears.pas
--- a/hedgewars/uVisualGears.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uVisualGears.pas Mon Nov 15 12:37:39 2010 +0100
@@ -62,7 +62,7 @@
vobVelocity, vobFallSpeed: LongInt;
implementation
-uses uWorld, uMisc, uStore, uTeams, uSound;
+uses uWorld, uMisc, uStore, uTeams, uSound, uMobile;
const cExplFrameTicks = 110;
{$INCLUDE "VGSHandlers.inc"}
@@ -117,7 +117,9 @@
@doStepExplosion,
@doStepBigExplosion,
@doStepChunk,
- @doStepNote
+ @doStepNote,
+ @doStepLineTrail,
+ @doStepBulletHit
);
function AddVisualGear(X, Y: LongInt; Kind: TVisualGearType; State: LongWord = 0): PVisualGear;
@@ -316,6 +318,13 @@
Frame:= random(4);
FrameTicks:= random(2000) + 1500;
end;
+ vgtBulletHit: begin
+ dx:= 0;
+ dy:= 0;
+ FrameTicks:= 350;
+ Frame:= 7;
+ Angle := 0;
+ end;
end;
if State <> 0 then gear^.State:= State;
@@ -369,7 +378,7 @@
if Gear^.Kind = vgtFlake then
begin
// Damage calc from doMakeExplosion
- dmg:= min(101, int64(Radius) + cHHRadius div 2 - (round(abs(Gear^.X - float(X))+abs(Gear^.Y - float(Y))) div 5));
+ dmg:= min(101, Radius + cHHRadius div 2 - LongInt(abs(round(Gear^.X) - X) + abs(round(Gear^.Y) - Y)) div 5);
if dmg > 1 then
begin
Gear^.tdX:= 0.02 * dmg + 0.01;
@@ -406,6 +415,7 @@
case Gear^.Kind of
vgtSmokeTrace: if Gear^.State < 8 then DrawSprite(sprSmokeTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State);
vgtEvilTrace: if Gear^.State < 8 then DrawSprite(sprEvilTrace, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.State);
+ vgtLineTrail: DrawLine(Gear^.X, Gear^.Y, Gear^.dX, Gear^.dY, 1.0, $FF, min(Gear^.Timer, $C0), min(Gear^.Timer, $80), min(Gear^.Timer, $FF));
end;
if (cReducedQuality and rqFancyBoom) = 0 then
case Gear^.Kind of
@@ -477,6 +487,7 @@
end;
vgtChunk: DrawRotatedF(sprChunk, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
vgtNote: DrawRotatedF(sprNote, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
+ vgtBulletHit: DrawRotatedF(sprBulletHit, round(Gear^.X) + WorldDx - 0, round(Gear^.Y) + WorldDy - 0, 7 - (Gear^.FrameTicks div 50), 1, Gear^.Angle);
end;
case Gear^.Kind of
vgtSmallDamageTag: DrawCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex);
diff -r 45b63c2a694f -r 19cbea33e4d2 hedgewars/uWorld.pas
--- a/hedgewars/uWorld.pas Wed Oct 27 14:23:47 2010 +0200
+++ b/hedgewars/uWorld.pas Mon Nov 15 12:37:39 2010 +0100
@@ -140,6 +140,11 @@
g:= AddGoal(g, gfArtillery, gidArtillery); // artillery?
g:= AddGoal(g, gfSolidLand, gidSolidLand); // solid land?
g:= AddGoal(g, gfSharedAmmo, gidSharedAmmo); // shared ammo?
+g:= AddGoal(g, gfResetHealth, gidResetHealth);
+g:= AddGoal(g, gfAISurvival, gidAISurvival);
+g:= AddGoal(g, gfInfAttack, gidInfAttack);
+g:= AddGoal(g, gfResetWeps, gidResetWeps);
+g:= AddGoal(g, gfPerHogAmmo, gidPerHogAmmo);
// modified damage modificator?
if cDamagePercent <> 100 then
@@ -151,14 +156,14 @@
ScreenFadeSpeed:= 1;
// modified mine timers?
-if cMinesTime <> 3000 then
+if cMinesTime <> 3 then
begin
if cMinesTime = 0 then
- g:= AddGoal(g, gfMines, gidNoMineTimer)
+ g:= AddGoal(g, gfAny, gidNoMineTimer)
else if cMinesTime < 0 then
- g:= AddGoal(g, gfMines, gidRandomMineTimer)
+ g:= AddGoal(g, gfAny, gidRandomMineTimer)
else
- g:= AddGoal(g, gfMines, gidMineTimer, cMinesTime div 1000);
+ g:= AddGoal(g, gfAny, gidMineTimer, cMinesTime);
end;
// if the string has been set, show it for (default timeframe) seconds
@@ -765,8 +770,8 @@
tdy:= - Cos(Gear^.Angle * Pi / cMaxAngle);
for i:= (Gear^.Power * 24) div cPowerDivisor downto 0 do
DrawSprite(sprPower,
- int64(hwRound(Gear^.X)) + GetLaunchX(CurAmmoType, hwSign(Gear^.dX), Gear^.Angle) + round(WorldDx + tdx * (24 + i * 2)) - 16,
- int64(hwRound(Gear^.Y)) + GetLaunchY(CurAmmoType, Gear^.Angle) + round(WorldDy + tdy * (24 + i * 2)) - 16,
+ hwRound(Gear^.X) + GetLaunchX(CurAmmoType, hwSign(Gear^.dX), Gear^.Angle) + LongInt(round(WorldDx + tdx * (24 + i * 2))) - 16,
+ hwRound(Gear^.Y) + GetLaunchY(CurAmmoType, Gear^.Angle) + LongInt(round(WorldDy + tdy * (24 + i * 2))) - 16,
i)
end
end;
diff -r 45b63c2a694f -r 19cbea33e4d2 misc/hedgewars.desktop
--- a/misc/hedgewars.desktop Wed Oct 27 14:23:47 2010 +0200
+++ b/misc/hedgewars.desktop Mon Nov 15 12:37:39 2010 +0100
@@ -4,8 +4,14 @@
Encoding=UTF-8
Name=Hedgewars
GenericName=Fighting Hedgehogs
-GenericName[tr]=Worms Benzeri Strateji Oyunu
+GenericName[de]=Kämpfende Igel
GenericName[ru]=Битвы ежей
+GenericName[pl]=Walczące jeże
+GenericName[sk]=Bojujúci ježkovia
+GenericName[sv]=Stridande igelkottar
+GenericName[es]=Batallas entre erizos
+GenericName[it]=Ricci combattenti
+GenericName[pt]=Batalhas entre ouriços
Icon=hedgewars.png
Exec=hedgewars
Terminal=false
diff -r 45b63c2a694f -r 19cbea33e4d2 misc/uSHA.pas
--- a/misc/uSHA.pas Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-(*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2004-2010 Andrey Korotaev
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- *)
-
-{$INCLUDE "options.inc"}
-
-unit uSHA;
-interface
-uses SDLh;
-
-type TSHA1Context = packed record
- H: array[0..4] of LongWord;
- Length, CurrLength: Int64;
- Buf: array[0..63] of byte;
- end;
- TSHA1Digest = array[0..4] of LongWord;
-
-procedure SHA1Init(var Context: TSHA1Context);
-procedure SHA1Update(var Context: TSHA1Context; Buf: PByteArray; Length: LongWord);
-procedure SHA1UpdateLongwords(var Context: TSHA1Context; Buf: PLongwordArray; Length: LongWord);
-function SHA1Final(Context: TSHA1Context): TSHA1Digest;
-
-implementation
-
-function rol(x: LongWord; y: Byte): LongWord;
-begin
- rol:= (X shl y) or (X shr (32 - y))
-end;
-
-function Ft(t, b, c, d: LongWord): LongWord;
-begin
-case t of
- 0..19: Ft := (b and c) or ((not b) and d);
- 20..39: Ft := b xor c xor d;
- 40..59: Ft := (b and c) or (b and d) or (c and d);
- else Ft := b xor c xor d;
- end;
-end;
-
-function Kt(t: Byte): LongWord;
-begin
- case t of
- 0..19: Kt := $5A827999;
- 20..39: Kt := $6ED9EBA1;
- 40..59: Kt := $8F1BBCDC;
- else
- Kt := $CA62C1D6
- end;
-end;
-
-
-procedure SHA1Hash(var Context: TSHA1Context);
-var S: array[0..4 ] of LongWord;
- W: array[0..79] of LongWord;
- i, t: LongWord;
-begin
-{$HINTS OFF}
-move(Context.H, S, sizeof(S));
-{$HINTS ON}
-for i:= 0 to 15 do
- SDLNet_Write32(PLongWordArray(@Context.Buf)^[i], @W[i]);
-
-for i := 16 to 79 do
- W[i] := rol(W[i - 3] xor W[i - 8] xor W[i - 14] xor W[i - 16], 1);
-
-for i := 0 to 79 do
- begin
- t:= rol(S[0], 5) + Ft(i, S[1], S[2], S[3]) + S[4] + W[i] + Kt(i);
- S[4]:= S[3];
- S[3]:= S[2];
- S[2]:= rol(S[1], 30);
- S[1]:= S[0];
- S[0]:= t
- end;
-
-for i := 0 to 4 do
- Context.H[i]:= Context.H[i] + S[i]
-end;
-
-procedure SHA1Init(var Context: TSHA1Context);
-begin
- with Context do
- begin
- Length := 0;
- CurrLength:= 0;
- H[0]:= $67452301;
- H[1]:= $EFCDAB89;
- H[2]:= $98BADCFE;
- H[3]:= $10325476;
- H[4]:= $C3D2E1F0
- end
-end;
-
-procedure SHA1Update(var Context: TSHA1Context; Buf: PByteArray; Length: LongWord);
-var i: Longword;
-begin
-for i:= 0 to Pred(Length) do
- begin
- Context.Buf[Context.CurrLength]:= Buf^[i];
- inc(Context.CurrLength);
- if Context.CurrLength = 64 then
- begin
- SHA1Hash(Context);
- inc(Context.Length, 512);
- Context.CurrLength:= 0
- end
- end
-end;
-
-procedure SHA1UpdateLongwords(var Context: TSHA1Context; Buf: PLongwordArray; Length: LongWord);
-var i: Longword;
-begin
- for i:= 0 to Pred(Length div 4) do
- begin
- SDLNet_Write32(Buf^[i], @Context.Buf[Context.CurrLength]);
- inc(Context.CurrLength, 4);
- if Context.CurrLength = 64 then
- begin
- SHA1Hash(Context);
- inc(Context.Length, 512);
- Context.CurrLength:= 0
- end
- end
-end;
-
-function SHA1Final(Context: TSHA1Context): TSHA1Digest;
-var i: LongWord;
-begin
- Context.Length:= Context.Length + Context.CurrLength shl 3;
- Context.Buf[Context.CurrLength]:= $80;
- inc(Context.CurrLength);
-
- if Context.CurrLength > 56 then
- begin
- FillChar(Context.Buf[Context.CurrLength], 64 - Context.CurrLength, 0);
- Context.CurrLength:= 64;
- SHA1Hash(Context);
- Context.CurrLength:=0
- end;
-
- FillChar(Context.Buf[Context.CurrLength], 56 - Context.CurrLength, 0);
-
- for i:= 56 to 63 do
- Context.Buf[i] := (Context.Length shr ((63 - i) * 8)) and $FF;
- SHA1Hash(Context);
- for i:= 0 to 4 do
- SHA1Final[i]:= Context.H[i];
-
- FillChar(Context, sizeof(Context), 0)
-end;
-
-end.
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/AboutViewController.m
--- a/project_files/HedgewarsMobile/Classes/AboutViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/AboutViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -30,14 +30,23 @@
}
-(void) viewDidLoad {
- self.tableView.backgroundView = nil;
+ if ([self.tableView respondsToSelector:@selector(setBackgroundView:)])
+ self.tableView.backgroundView = nil;
self.tableView.allowsSelection = NO;
NSString *strPath = [NSString stringWithFormat:@"%@/credits.plist",IFRONTEND_DIRECTORY()];
NSArray *array = [[NSArray alloc] initWithContentsOfFile:strPath];
self.people = array;
[array release];
-
+
+ NSString *imgName;
+ if (IS_IPAD())
+ imgName = @"smallerBackground~ipad.png";
+ else
+ imgName = @"smallerBackground~iphone.png";
+ UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgName];
+ self.view.backgroundColor = [UIColor colorWithPatternImage:img];
+ [img release];
[super viewDidLoad];
}
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/AboutViewController.xib
--- a/project_files/HedgewarsMobile/Classes/AboutViewController.xib Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,696 +0,0 @@
-
-
-
- 1024
- 10F569
- 788
- 1038.29
- 461.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 117
-
-
- YES
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBIPadFramework
-
-
- IBFirstResponder
- IBIPadFramework
-
-
-
- 292
-
- YES
-
-
- 290
-
- YES
-
-
- 292
- {{127, 7}, {289, 30}}
-
-
- NO
- IBIPadFramework
- 2
- 5
- 0
-
- YES
- Code
- Art
- Sound
- Locale
- Special
-
-
- YES
-
-
-
-
-
-
-
- YES
-
-
-
-
-
-
-
- YES
- {0, 0}
- {0, 0}
- {0, 0}
- {0, 0}
- {0, 0}
-
-
- YES
-
-
-
-
-
-
-
-
- {543, 44}
-
-
- IBIPadFramework
-
- YES
-
-
-
- IBIPadFramework
- 1
-
- 0
-
-
- IBIPadFramework
-
-
-
-
-
- 274
- {{0, 44}, {543, 577}}
-
-
- NO
- IBIPadFramework
-
- NSImage
- background_small.png
-
-
-
-
- 274
- {{0, 44}, {543, 577}}
-
-
-
- 1
- MCAwIDAgMAA
-
- YES
- IBIPadFramework
- YES
- 1
- 2
- 0
- YES
- 44
- 10
- 10
-
-
- {543, 621}
-
-
-
- 3
- MQA
-
- NO
- NO
-
- 3
-
- IBIPadFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 3
-
-
-
- buttonPressed:
-
-
-
- 8
-
-
-
- dataSource
-
-
-
- 12
-
-
-
- delegate
-
-
-
- 13
-
-
-
- tableView
-
-
-
- 14
-
-
-
- segmentedControlChanged:
-
-
- 13
-
- 15
-
-
-
- segmentedControl
-
-
-
- 16
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 2
-
-
- YES
-
-
-
-
-
-
-
- 5
-
-
- YES
-
-
-
-
-
- 6
-
-
- YES
-
-
-
-
-
-
- 7
-
-
-
-
- 9
-
-
-
-
- 10
-
-
-
-
- 11
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 10.IBPluginDependency
- 11.IBPluginDependency
- 2.IBEditorWindowLastContentRect
- 2.IBPluginDependency
- 5.IBPluginDependency
- 6.IBPluginDependency
- 7.IBPluginDependency
- 9.IBPluginDependency
-
-
- YES
- AboutViewController
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- {{376, 170}, {543, 621}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 16
-
-
-
- YES
-
- AboutViewController
- UIViewController
-
- YES
-
- YES
- buttonPressed:
- segmentedControlChanged:
-
-
- YES
- id
- id
-
-
-
- YES
-
- YES
- buttonPressed:
- segmentedControlChanged:
-
-
- YES
-
- buttonPressed:
- id
-
-
- segmentedControlChanged:
- id
-
-
-
-
- YES
-
- YES
- segmentedControl
- tableView
-
-
- YES
- UISegmentedControl
- UITableView
-
-
-
- YES
-
- YES
- segmentedControl
- tableView
-
-
- YES
-
- segmentedControl
- UISegmentedControl
-
-
- tableView
- UITableView
-
-
-
-
- IBProjectSource
- Classes/AboutViewController.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CAAnimation.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CALayer.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIBarButtonItem
- UIBarItem
-
- IBFrameworkSource
- UIKit.framework/Headers/UIBarButtonItem.h
-
-
-
- UIBarItem
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIBarItem.h
-
-
-
- UIControl
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIControl.h
-
-
-
- UIImageView
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIImageView.h
-
-
-
- UINavigationBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationBar.h
-
-
-
- UINavigationItem
- NSObject
-
-
-
- UIResponder
- NSObject
-
-
-
- UIScrollView
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIScrollView.h
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UISegmentedControl
- UIControl
-
- IBFrameworkSource
- UIKit.framework/Headers/UISegmentedControl.h
-
-
-
- UITableView
- UIScrollView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITableView.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UIPopoverController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
-
- 0
- IBIPadFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- ../Hedgewars.xcodeproj
- 3
-
- background_small.png
- {539, 639}
-
- 117
-
-
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/AmmoMenuViewController.h
--- a/project_files/HedgewarsMobile/Classes/AmmoMenuViewController.h Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/AmmoMenuViewController.h Mon Nov 15 12:37:39 2010 +0100
@@ -33,6 +33,7 @@
uint8_t *delay;
BOOL *shouldUpdateImage;
CGPoint startingPoint;
+ CGPoint placingPoint;
BOOL isVisible;
}
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/AmmoMenuViewController.m
--- a/project_files/HedgewarsMobile/Classes/AmmoMenuViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/AmmoMenuViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -26,7 +26,9 @@
#import "PascalImports.h"
#define BTNS_PER_ROW 9
-#define DEFAULT_DESCRIPTION NSLocalizedString(@"Hold your finger on a weapon to see what it does",@"")
+#define DEFAULT_DESCRIPTION IS_IPAD() ? \
+ NSLocalizedString(@"Hold your finger on a weapon to see what it does...",@"") : \
+ NSLocalizedString(@"Hold your finger on a weapon to see what it does.\nTap anywhere to dismiss.",@"")
@implementation AmmoMenuViewController
@synthesize imagesArray, buttonsArray, nameLabel, extraLabel, captionLabel, isVisible;
@@ -50,7 +52,8 @@
[self.view.layer setCornerRadius:10];
[self.view.layer setMasksToBounds:YES];
self.view.autoresizingMask = UIViewAutoresizingNone;
-
+ placingPoint = CGPointMake(-1, -1);
+
self.isVisible = NO;
delay = (uint8_t *)calloc(HW_getNumberOfWeapons(), sizeof(uint8_t));
HW_getAmmoDelays(delay);
@@ -68,14 +71,17 @@
-(void) appearInView:(UIView *)container {
[self viewWillAppear:YES];
[container addSubview:self.view];
+
+ if (placingPoint.x == -1 && placingPoint.y == -1)
+ placingPoint = container.center;
if (IS_DUALHEAD() == NO)
- self.view.center = CGPointMake(container.center.y, container.center.x);
+ self.view.center = CGPointMake(placingPoint.y, placingPoint.x);
else {
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation == UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight)
- self.view.center = CGPointMake(container.center.y, container.center.x);
+ self.view.center = CGPointMake(placingPoint.y, placingPoint.x);
else
- self.view.center = CGPointMake(container.center.x, container.center.y);
+ self.view.center = CGPointMake(placingPoint.x, placingPoint.y);
}
self.isVisible = YES;
}
@@ -84,6 +90,8 @@
if (self.isVisible)
[self.view removeFromSuperview];
self.isVisible = NO;
+ placingPoint.x = self.view.center.y;
+ placingPoint.y = self.view.center.x;
}
#pragma mark -
@@ -268,7 +276,7 @@
-(void) buttonCancelled:(id) sender {
self.nameLabel.text = nil;
- self.extraLabel.text = DEFAULT_DESCRIPTION;
+ self.extraLabel.text = nil;
self.captionLabel.text = nil;
}
@@ -278,7 +286,7 @@
[self loadLabels];
self.nameLabel.text = nil;
- self.extraLabel.text = DEFAULT_DESCRIPTION;
+ self.extraLabel.text = nil;
self.captionLabel.text = nil;
if (theButton.currentTitle == nil) {
HW_setWeapon(theButton.tag);
@@ -289,27 +297,25 @@
}
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
- /*
NSSet *allTouches = [event allTouches];
- if ([touches count] == 1) {
+ if (IS_IPAD() && [touches count] == 1) {
self.view.layer.borderWidth = 3.5;
startingPoint = [[[allTouches allObjects] objectAtIndex:0] locationInView:self.view];
}
- */
+
if (IS_IPAD() == NO)
[self disappear];
}
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
- //self.view.layer.borderWidth = 1.3;
+ self.view.layer.borderWidth = 1.3;
}
-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
- /*
NSSet *allTouches = [event allTouches];
- if ([touches count] == 1) {
+ if (IS_IPAD() && [touches count] == 1) {
CGPoint touchedPoint = [[[allTouches allObjects] objectAtIndex:0] locationInView:self.view];
CGFloat deltaX = touchedPoint.x - startingPoint.x;
CGFloat deltaY = touchedPoint.y - startingPoint.y;
@@ -318,18 +324,18 @@
self.view.frame = CGRectMake(self.view.frame.origin.x + deltaX, self.view.frame.origin.y + deltaY,
self.view.frame.size.width, self.view.frame.size.height);
}
- */
}
-(void) touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
- //[self touchesEnded:touches withEvent:event];
+ [self touchesEnded:touches withEvent:event];
}
#pragma mark -
#pragma mark memory
-(void) didReceiveMemoryWarning {
self.imagesArray = nil;
- self.buttonsArray = nil;
+ if (self.isVisible == NO)
+ self.buttonsArray = nil;
self.nameLabel = nil;
self.extraLabel = nil;
self.captionLabel = nil;
@@ -362,7 +368,3 @@
}
@end
-
-void updateVisualsNewTurn (void) {
- [[NSNotificationCenter defaultCenter] postNotificationName:@"updateAmmoVisuals" object:nil];
-}
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/CommodityFunctions.h
--- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.h Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.h Mon Nov 15 12:37:39 2010 +0100
@@ -53,15 +53,13 @@
#define UICOLOR_HW_DARKBLUE [UIColor colorWithRed:(CGFloat)0x0F/255 green:0 blue:(CGFloat)0x42/255 alpha:1]
#define UICOLOR_HW_ALPHABLUE [UIColor colorWithRed:(CGFloat)0x0F/255 green:0 blue:(CGFloat)0x42/255 alpha:0.58f]
-#define IS_DUALHEAD() ([[UIScreen screens] count] > 1)
+#define IS_DUALHEAD() ([[UIScreen class] respondsToSelector:@selector(screens)] && [[UIScreen screens] count] > 1)
#define IS_IPAD() (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
+#define IS_NOT_POWERFUL() ([modelType() hasPrefix:@"iPhone1"] || [modelType() hasPrefix:@"iPod1,1"] || [modelType() hasPrefix:@"iPod2,1"])
#define DEFAULT_NETGAME_PORT 46631
-void createTeamNamed (NSString *nameWithoutExt);
-void createWeaponNamed (NSString *nameWithoutExt, int type);
-void createSchemeNamed (NSString *nameWithoutExt);
void print_free_memory (void);
void playSound (NSString *snd);
void popError (const char *title, const char *message);
@@ -72,3 +70,5 @@
NSArray *getAvailableColors (void);
UILabel *createBlueLabel (NSString *title, CGRect frame);
UILabel *createLabelWithParams (NSString *title, CGRect frame, CGFloat borderWidth, UIColor *borderColor, UIColor *backgroundColor);
+
+CGSize PSPNGSizeFromMetaData (NSString *aFileName);
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/CommodityFunctions.m
--- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.m Mon Nov 15 12:37:39 2010 +0100
@@ -28,165 +28,12 @@
#import "AudioToolbox/AudioToolbox.h"
#import "PascalImports.h"
-void createTeamNamed (NSString *nameWithoutExt) {
- NSString *teamsDirectory = TEAMS_DIRECTORY();
-
- if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) {
- [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory
- withIntermediateDirectories:NO
- attributes:nil
- error:NULL];
- }
-
- NSMutableArray *hedgehogs = [[NSMutableArray alloc] initWithCapacity: HW_getMaxNumberOfHogs()];
-
- for (int i = 0; i < HW_getMaxNumberOfHogs(); i++) {
- NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i];
- NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:0],@"level",
- hogName,@"hogname", @"NoHat",@"hat", nil];
- [hogName release];
- [hedgehogs addObject:hog];
- [hog release];
- }
-
- NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys:@"0",@"hash",
- @"Statue",@"grave", @"Plane",@"fort", @"Default",@"voicepack",
- @"hedgewars",@"flag", hedgehogs,@"hedgehogs", nil];
- [hedgehogs release];
-
- NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", teamsDirectory, nameWithoutExt];
-
- [theTeam writeToFile:teamFile atomically:YES];
- [teamFile release];
- [theTeam release];
-}
-
-void createWeaponNamed (NSString *nameWithoutExt, int type) {
- NSString *weaponsDirectory = WEAPONS_DIRECTORY();
-
- if (![[NSFileManager defaultManager] fileExistsAtPath: weaponsDirectory]) {
- [[NSFileManager defaultManager] createDirectoryAtPath:weaponsDirectory
- withIntermediateDirectories:NO
- attributes:nil
- error:NULL];
- }
-
- NSDictionary *theWeapon = nil;
- switch (type) {
- case 0: //default
- theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
- @"9391929422199121032235111001201000000211110101010",@"ammostore_initialqt",
- @"0405040541600655546554464776576666666155510101110",@"ammostore_probability",
- @"0000000000000205500000040007004000000000200000000",@"ammostore_delay",
- @"1311110312111111123114111111111111111211111101110",@"ammostore_crate", nil];
- break;
- case 1: //crazy
- theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
- @"9999999999999999992999999999999999299999999909990",@"ammostore_initialqt",
- @"1111110111111111111111111111111111111111111101110",@"ammostore_probability",
- @"0000000000000000000000000000000000000000000000000",@"ammostore_delay",
- @"1311110312111111123114111111111111111211110101110",@"ammostore_crate", nil];
- break;
- case 2: //pro mode
- theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
- @"9090009000000000000009000000000000000000000000000",@"ammostore_initialqt",
- @"0000000000000000000000000000000000000000000000000",@"ammostore_probability",
- @"0000000000000205500000040007004000000000200000000",@"ammostore_delay",
- @"1111111111111111111111111111111111111111100101110",@"ammostore_crate", nil];
- break;
- case 3: //shoppa
- theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
- @"0000009900000000000000000000000000000000000000000",@"ammostore_initialqt",
- @"4444410044244402210112121222422000000002000400010",@"ammostore_probability",
- @"0000000000000000000000000000000000000000000000000",@"ammostore_delay",
- @"1111111111111111111111111111111111111111101101110",@"ammostore_crate", nil];
- break;
- case 4: //basketball
- theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
- @"9391929422199121032235111001201000000211110101000",@"ammostore_initialqt",
- @"0000000000000000000000000000000000000000000000000",@"ammostore_probability",
- @"0000000000000005500000040007004000000000200000000",@"ammostore_delay",
- @"1111111111111111111111111111111111111111111101110",@"ammostore_crate", nil];
- break;
- case 5: //minefield
- theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
- @"0000009900090000000300000000000000000000000000000",@"ammostore_initialqt",
- @"0000000000000000000000000000000000000000000000000",@"ammostore_probability",
- @"0000000000000205500000040007004000000000200000000",@"ammostore_delay",
- @"1111111111111111111111111111111111111111111101110",@"ammostore_crate", nil];
- break;
- default:
- NSLog(@"Nope");
- break;
- }
-
- NSString *weaponFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", weaponsDirectory, nameWithoutExt];
-
- [theWeapon writeToFile:weaponFile atomically:YES];
- [weaponFile release];
- [theWeapon release];
-}
-
-void createSchemeNamed (NSString *nameWithoutExt) {
- NSString *schemesDirectory = SCHEMES_DIRECTORY();
-
- if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) {
- [[NSFileManager defaultManager] createDirectoryAtPath:schemesDirectory
- withIntermediateDirectories:NO
- attributes:nil
- error:NULL];
- }
-
- NSMutableArray *basicArray = [[NSMutableArray alloc] initWithObjects:
- [NSNumber numberWithInt:100], //damagemodifier
- [NSNumber numberWithInt:45], //turntime
- [NSNumber numberWithInt:100], //initialhealth
- [NSNumber numberWithInt:15], //suddendeathtimeout
- [NSNumber numberWithInt:5], //cratedrops
- [NSNumber numberWithInt:3], //minestime
- [NSNumber numberWithInt:4], //mines
- [NSNumber numberWithInt:0], //dudmines
- [NSNumber numberWithInt:2], //explosives
- nil];
-
- NSMutableArray *gamemodArray= [[NSMutableArray alloc] initWithObjects:
- [NSNumber numberWithBool:NO], //fortmode
- [NSNumber numberWithBool:NO], //divideteam
- [NSNumber numberWithBool:NO], //solidland
- [NSNumber numberWithBool:NO], //addborder
- [NSNumber numberWithBool:NO], //lowgravity
- [NSNumber numberWithBool:NO], //lasersight
- [NSNumber numberWithBool:NO], //invulnerable
- [NSNumber numberWithBool:YES], //addmines
- [NSNumber numberWithBool:NO], //vampirism
- [NSNumber numberWithBool:NO], //karma
- [NSNumber numberWithBool:NO], //artillery
- [NSNumber numberWithBool:YES], //randomorder
- [NSNumber numberWithBool:NO], //king
- [NSNumber numberWithBool:NO], //placehedgehogs
- [NSNumber numberWithBool:NO], //clansharesammo
- [NSNumber numberWithBool:NO], //disablegirders
- [NSNumber numberWithBool:NO], //disablelandobjects
- [NSNumber numberWithBool:NO], //aisurvival
- nil];
-
- NSMutableDictionary *theScheme = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
- basicArray,@"basic",
- gamemodArray,@"gamemod",
- nil];
- [gamemodArray release];
- [basicArray release];
-
- NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", schemesDirectory, nameWithoutExt];
-
- [theScheme writeToFile:schemeFile atomically:YES];
- [schemeFile release];
- [theScheme release];
-}
-
BOOL inline rotationManager (UIInterfaceOrientation interfaceOrientation) {
- return (interfaceOrientation == UIInterfaceOrientationLandscapeRight) ||
- (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
+ if (IS_IPAD())
+ return (interfaceOrientation == UIInterfaceOrientationLandscapeRight) ||
+ (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
+ else
+ return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
NSInteger inline randomPort () {
@@ -262,14 +109,14 @@
}
NSArray inline *getAvailableColors (void) {
- return [NSArray arrayWithObjects:[NSNumber numberWithUnsignedInt:0x4376e9], // bluette
+ return [NSArray arrayWithObjects:[NSNumber numberWithUnsignedInt:0x3376E9], // bluette
[NSNumber numberWithUnsignedInt:0x3e9321], // greeeen
[NSNumber numberWithUnsignedInt:0xa23dbb], // violett
[NSNumber numberWithUnsignedInt:0xff9329], // oranngy
[NSNumber numberWithUnsignedInt:0xdd0000], // reddish
[NSNumber numberWithUnsignedInt:0x737373], // graaaay
- [NSNumber numberWithUnsignedInt:0xbba23d], // gold$$$
- [NSNumber numberWithUnsignedInt:0x3da2bb], // cyannnn
+ [NSNumber numberWithUnsignedInt:0x00FFFF], // cyannnn
+ [NSNumber numberWithUnsignedInt:0xFF8888], // peachyj
nil];
}
@@ -295,3 +142,47 @@
return theLabel;
}
+
+// 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) {
+ // File Name to C String.
+ const char *fileName = [aFileName UTF8String];
+ // source file
+ FILE *infile = fopen(fileName, "rb");
+ if (infile == NULL) {
+ DLog(@"Can't open the file: %@", aFileName);
+ return CGSizeZero;
+ }
+
+ // Bytes Buffer.
+ unsigned char buffer[30];
+ // Grab Only First Bytes.
+ fread(buffer, 1, 30, infile);
+ // Close File.
+ fclose(infile);
+
+ // PNG Signature.
+ unsigned char png_signature[8] = {137, 80, 78, 71, 13, 10, 26, 10};
+
+ // Compare File signature.
+ if ((int)(memcmp(&buffer[0], &png_signature[0], 8))) {
+ DLog(@"The file (%@) is not a PNG file", aFileName);
+ return CGSizeZero;
+ }
+
+ // Calc Sizes. Isolate only four bytes of each size (width, height).
+ int width[4];
+ int height[4];
+ for (int d = 16; d < (16 + 4); d++) {
+ width[d-16] = buffer[d];
+ height[d-16] = buffer[d+4];
+ }
+
+ // Convert bytes to Long (Integer)
+ long resultWidth = (width[0] << (int)24) | (width[1] << (int)16) | (width[2] << (int)8) | width[3];
+ long resultHeight = (height[0] << (int)24) | (height[1] << (int)16) | (height[2] << (int)8) | height[3];
+
+ // Return Size.
+ return CGSizeMake(resultWidth,resultHeight);
+}
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/CreationChamber.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/CreationChamber.h Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,26 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2010 Vittorio Giovara
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 12/11/2010.
+ */
+
+
+#import
+
+void createTeamNamed (NSString *nameWithoutExt);
+void createWeaponNamed (NSString *nameWithoutExt, int type);
+void createSchemeNamed (NSString *nameWithoutExt);
\ No newline at end of file
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/CreationChamber.m
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/CreationChamber.m Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,201 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2010 Vittorio Giovara
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 12/11/2010.
+ */
+
+
+#import "CreationChamber.h"
+
+void createTeamNamed (NSString *nameWithoutExt) {
+ NSString *teamsDirectory = TEAMS_DIRECTORY();
+
+ if (![[NSFileManager defaultManager] fileExistsAtPath: teamsDirectory]) {
+ [[NSFileManager defaultManager] createDirectoryAtPath:teamsDirectory
+ withIntermediateDirectories:NO
+ attributes:nil
+ error:NULL];
+ }
+
+ NSMutableArray *hedgehogs = [[NSMutableArray alloc] initWithCapacity: HW_getMaxNumberOfHogs()];
+
+ for (int i = 0; i < HW_getMaxNumberOfHogs(); i++) {
+ NSString *hogName = [[NSString alloc] initWithFormat:@"hedgehog %d",i];
+ NSDictionary *hog = [[NSDictionary alloc] initWithObjectsAndKeys:
+ [NSNumber numberWithInt:0],@"level",
+ hogName,@"hogname",
+ @"NoHat",@"hat",
+ nil];
+ [hogName release];
+ [hedgehogs addObject:hog];
+ [hog release];
+ }
+
+ NSDictionary *theTeam = [[NSDictionary alloc] initWithObjectsAndKeys:
+ @"0",@"hash",
+ @"Statue",@"grave",
+ @"Plane",@"fort",
+ @"Default",@"voicepack",
+ @"hedgewars",@"flag",
+ hedgehogs,@"hedgehogs",
+ nil];
+ [hedgehogs release];
+
+ NSString *teamFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", teamsDirectory, nameWithoutExt];
+
+ [theTeam writeToFile:teamFile atomically:YES];
+ [teamFile release];
+ [theTeam release];
+}
+
+void createWeaponNamed (NSString *nameWithoutExt, int type) {
+ NSString *weaponsDirectory = WEAPONS_DIRECTORY();
+
+ if (![[NSFileManager defaultManager] fileExistsAtPath: weaponsDirectory]) {
+ [[NSFileManager defaultManager] createDirectoryAtPath:weaponsDirectory
+ withIntermediateDirectories:NO
+ attributes:nil
+ error:NULL];
+ }
+
+ NSDictionary *theWeapon = nil;
+ switch (type) {
+ case 0: //default
+ theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
+ @"93919294221991210322351110012010000002111101010111",@"ammostore_initialqt",
+ @"04050405416006555465544647765766666661555101011154",@"ammostore_probability",
+ @"00000000000002055000000400070040000000002000000006",@"ammostore_delay",
+ @"13111103121111111231141111111111111112111111011111",@"ammostore_crate", nil];
+ break;
+ case 1: //crazy
+ theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
+ @"99999999999999999929999999999999992999999999099999",@"ammostore_initialqt",
+ @"11111101111111111111111111111111111111111111011111",@"ammostore_probability",
+ @"00000000000000000000000000000000000000000000000000",@"ammostore_delay",
+ @"13111103121111111231141111111111111112111101011111",@"ammostore_crate", nil];
+ break;
+ case 2: //pro mode
+ theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
+ @"90900090000000000000090000000000000000000000000000",@"ammostore_initialqt",
+ @"00000000000000000000000000000000000000000000000000",@"ammostore_probability",
+ @"00000000000002055000000400070040000000002000000000",@"ammostore_delay",
+ @"11111111111111111111111111111111111111111001011111",@"ammostore_crate", nil];
+ break;
+ case 3: //shoppa
+ theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
+ @"00000099000000000000000000000000000000000000000000",@"ammostore_initialqt",
+ @"44444100442444022101121212224220000000020004000100",@"ammostore_probability",
+ @"00000000000000000000000000000000000000000000000000",@"ammostore_delay",
+ @"11111111111111111111111111111111111111111011011111",@"ammostore_crate", nil];
+ break;
+ case 4: //clean slate
+ theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
+ @"10100090000100000110000000000000000000000000000010",@"ammostore_initialqt",
+ @"04050405416006555465544647765766666661555101011154",@"ammostore_probability",
+ @"00000000000002055000000400070040000000002000000000",@"ammostore_delay",
+ @"13111103121111111231141111111111111112111111011111",@"ammostore_crate", nil];
+ break;
+ case 5: //minefield
+ theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
+ @"00000099000900000003000000000000000000000000000000",@"ammostore_initialqt",
+ @"00000000000000000000000000000000000000000000000000",@"ammostore_probability",
+ @"00000000000002055000000400070040000000002000000000",@"ammostore_delay",
+ @"11111111111111111111111111111111111111111111011111",@"ammostore_crate", nil];
+ break;
+ case 6: //thinking with portals
+ theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys:
+ @"90000090020000000021000000000000001100000900000000",@"ammostore_initialqt",
+ @"04050405416006555465544647765766666661555101011154",@"ammostore_probability",
+ @"00000000000002055000000400070040000000002000000006",@"ammostore_delay",
+ @"13111103121111111231141111111111111112111111011111",@"ammostore_crate", nil];
+ break;
+ default:
+ NSLog(@"Nope");
+ break;
+ }
+
+ NSString *weaponFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", weaponsDirectory, nameWithoutExt];
+
+ [theWeapon writeToFile:weaponFile atomically:YES];
+ [weaponFile release];
+ [theWeapon release];
+}
+
+void createSchemeNamed (NSString *nameWithoutExt) {
+ NSString *schemesDirectory = SCHEMES_DIRECTORY();
+
+ if (![[NSFileManager defaultManager] fileExistsAtPath: schemesDirectory]) {
+ [[NSFileManager defaultManager] createDirectoryAtPath:schemesDirectory
+ withIntermediateDirectories:NO
+ attributes:nil
+ error:NULL];
+ }
+
+ NSMutableArray *basicArray = [[NSMutableArray alloc] initWithObjects:
+ [NSNumber numberWithInt:100], //initialhealth
+ [NSNumber numberWithInt:45], //turntime
+ [NSNumber numberWithInt:100], //damagemodifier
+ [NSNumber numberWithInt:15], //suddendeathtimeout
+ [NSNumber numberWithInt:47], //waterrise
+ [NSNumber numberWithInt:5], //healthdecrease
+ [NSNumber numberWithInt:5], //cratedrops
+ [NSNumber numberWithInt:35], //healthprob
+ [NSNumber numberWithInt:25], //healthamount
+ [NSNumber numberWithInt:3], //minestime
+ [NSNumber numberWithInt:4], //minesnumber
+ [NSNumber numberWithInt:0], //dudmines
+ [NSNumber numberWithInt:2], //explosives
+ nil];
+
+ NSMutableArray *gamemodArray= [[NSMutableArray alloc] initWithObjects:
+ [NSNumber numberWithBool:NO], //fortmode
+ [NSNumber numberWithBool:NO], //divideteam
+ [NSNumber numberWithBool:NO], //solidland
+ [NSNumber numberWithBool:NO], //addborder
+ [NSNumber numberWithBool:NO], //lowgravity
+ [NSNumber numberWithBool:NO], //lasersight
+ [NSNumber numberWithBool:NO], //invulnerable
+ [NSNumber numberWithBool:NO], //resethealth
+ [NSNumber numberWithBool:NO], //vampirism
+ [NSNumber numberWithBool:NO], //karma
+ [NSNumber numberWithBool:NO], //artillery
+ [NSNumber numberWithBool:YES], //randomorder
+ [NSNumber numberWithBool:NO], //king
+ [NSNumber numberWithBool:NO], //placehedgehogs
+ [NSNumber numberWithBool:NO], //clansharesammo
+ [NSNumber numberWithBool:NO], //disablegirders
+ [NSNumber numberWithBool:NO], //disablelandobjects
+ [NSNumber numberWithBool:NO], //aisurvival
+ [NSNumber numberWithBool:NO], //infattack
+ [NSNumber numberWithBool:NO], //resetweaps
+ [NSNumber numberWithBool:NO], //perhogammo
+ [NSNumber numberWithBool:NO], //nowind
+ nil];
+
+ NSMutableDictionary *theScheme = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
+ basicArray,@"basic",
+ gamemodArray,@"gamemod",
+ nil];
+ [gamemodArray release];
+ [basicArray release];
+
+ NSString *schemeFile = [[NSString alloc] initWithFormat:@"%@/%@.plist", schemesDirectory, nameWithoutExt];
+
+ [theScheme writeToFile:schemeFile atomically:YES];
+ [schemeFile release];
+ [theScheme release];
+}
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/EditableCellView.m
--- a/project_files/HedgewarsMobile/Classes/EditableCellView.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/EditableCellView.m Mon Nov 15 12:37:39 2010 +0100
@@ -31,13 +31,13 @@
textField = [[UITextField alloc] initWithFrame:CGRectZero];
textField.backgroundColor = [UIColor clearColor];
- textField.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
textField.delegate = self;
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
textField.clearsOnBeginEditing = NO;
textField.returnKeyType = UIReturnKeyDone;
textField.adjustsFontSizeToFitWidth = YES;
textField.userInteractionEnabled = YES;
+ textField.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
[textField addTarget:self action:@selector(save:) forControlEvents:UIControlEventEditingDidEndOnExit];
[self.contentView addSubview:textField];
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/GameConfigViewController.m
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -67,7 +67,7 @@
case 2:
playSound(@"clickSound");
if (self.helpPage == nil)
- self.helpPage = [[HelpPageViewController alloc] initWithNibName:@"HelpPageLobbyViewController" bundle:nil];
+ self.helpPage = [[HelpPageViewController alloc] initWithNibName:@"HelpPageLobbyViewController-iPad" bundle:nil];
self.helpPage.view.alpha = 0;
[self.view addSubview:helpPage.view];
[UIView beginAnimations:@"helplobby" context:NULL];
@@ -113,6 +113,15 @@
[schemeWeaponConfigViewController viewWillAppear:NO];
[self.view bringSubviewToFront:schemeWeaponConfigViewController.view];
break;
+ case 3:
+ if (helpPage == nil) {
+ helpPage = [[HelpPageViewController alloc] initWithNibName:@"HelpPageLobbyViewController-iPhone" bundle:nil];
+ [self.view addSubview:helpPage.view];
+ }
+ // this message is compulsory otherwise the table won't be loaded at all
+ [helpPage viewWillAppear:NO];
+ [self.view bringSubviewToFront:helpPage.view];
+ break;
default:
DLog(@"Nope");
break;
@@ -131,7 +140,7 @@
[alert release];
return NO;
}
-
+
// play only if there is more than one team
if ([self.teamConfigViewController.listOfSelectedTeams count] < 2) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too few teams playing",@"")
@@ -143,7 +152,7 @@
[alert release];
return NO;
}
-
+
// play if there's room for enough hogs in the selected map
int hogs = 0;
for (NSDictionary *teamData in teamConfigViewController.listOfSelectedTeams)
@@ -159,7 +168,8 @@
[alert release];
return NO;
}
-
+
+ // play if there aren't too many teams
if ([self.teamConfigViewController.listOfSelectedTeams count] > HW_getMaxNumberOfTeams()) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Too many teams",@"")
message:NSLocalizedString(@"Max six teams are allowed in the same game",@"")
@@ -170,7 +180,8 @@
[alert release];
return NO;
}
-
+
+ // play only if one scheme and one weapon are selected
if ([self.schemeWeaponConfigViewController.selectedScheme length] == 0 || [self.schemeWeaponConfigViewController.selectedWeapon length] == 0 ) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Missing detail",@"")
message:NSLocalizedString(@"Select one Scheme and one Weapon for this game",@"")
@@ -182,6 +193,21 @@
return NO;
}
+ // play if the gameflags are set correctly (divideteam works only with 2 teams
+ NSString *schemePath = [[NSString alloc] initWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),self.schemeWeaponConfigViewController.selectedScheme];
+ NSArray *gameFlags = [[NSDictionary dictionaryWithContentsOfFile:schemePath] objectForKey:@"gamemod"];
+ [schemePath release];
+ if ([[gameFlags objectAtIndex:2] boolValue] && [self.teamConfigViewController.listOfSelectedTeams count] != 2) {
+ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Scheme mismatch",@"")
+ message:NSLocalizedString(@"The scheme you selected allows only for two teams",@"")
+ delegate:nil
+ cancelButtonTitle:NSLocalizedString(@"Ok, got it",@"")
+ otherButtonTitles:nil];
+ [alert show];
+ [alert release];
+ return NO;
+ }
+
return YES;
}
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/GameSetup.m
--- a/project_files/HedgewarsMobile/Classes/GameSetup.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/GameSetup.m Mon Nov 15 12:37:39 2010 +0100
@@ -179,45 +179,34 @@
[self sendToEngine:flags];
[flags release];
- NSString *dmgMod = [[NSString alloc] initWithFormat:@"e$damagepct %d",[[basicArray objectAtIndex:i++] intValue]];
- [self sendToEngine:dmgMod];
- [dmgMod release];
+ /* basic game flags */
+ NSString *path = [[NSString alloc] initWithFormat:@"%@/basicFlags_en.plist",IFRONTEND_DIRECTORY()];
+ NSArray *mods = [[NSArray alloc] initWithContentsOfFile:path];
+ [path release];
- // support for endless games
- NSInteger tentativeTurntime = [[basicArray objectAtIndex:i++] intValue];
- if (tentativeTurntime == 100)
+ // initial health
+ result = [[basicArray objectAtIndex:0] intValue];
+
+ // turn time
+ NSInteger tentativeTurntime = [[basicArray objectAtIndex:1] intValue];
+ if (tentativeTurntime >= 100)
tentativeTurntime = 9999;
NSString *turnTime = [[NSString alloc] initWithFormat:@"e$turntime %d",tentativeTurntime * 1000];
[self sendToEngine:turnTime];
[turnTime release];
- result = [[basicArray objectAtIndex:i++] intValue]; // initial health
-
- NSString *sdTime = [[NSString alloc] initWithFormat:@"e$sd_turns %d",[[basicArray objectAtIndex:i++] intValue]];
- [self sendToEngine:sdTime];
- [sdTime release];
-
- NSString *crateDrops = [[NSString alloc] initWithFormat:@"e$casefreq %d",[[basicArray objectAtIndex:i++] intValue]];
- [self sendToEngine:crateDrops];
- [crateDrops release];
-
- NSString *minesTime = [[NSString alloc] initWithFormat:@"e$minestime %d",[[basicArray objectAtIndex:i++] intValue] * 1000];
- [self sendToEngine:minesTime];
- [minesTime release];
+ for (i = 2; i < [basicArray count]; i++) {
+ NSDictionary *basicDict = [mods objectAtIndex:i];
+ NSString *command = [basicDict objectForKey:@"command"];
+ NSInteger value = [[basicArray objectAtIndex:i] intValue];
+ if ([basicDict objectForKey:@"checkOverMax"] && value >= [[basicDict objectForKey:@"max"] intValue])
+ value = 9999;
+ NSString *strToSend = [[NSString alloc] initWithFormat:@"%@ %d",command,value];
+ [self sendToEngine:strToSend];
+ [strToSend release];
+ }
+ [mods release];
- NSString *minesNumber = [[NSString alloc] initWithFormat:@"e$landadds %d",[[basicArray objectAtIndex:i++] intValue]];
- [self sendToEngine:minesNumber];
- [minesNumber release];
-
- NSString *dudMines = [[NSString alloc] initWithFormat:@"e$minedudpct %d",[[basicArray objectAtIndex:i++] intValue]];
- [self sendToEngine:dudMines];
- [dudMines release];
-
- NSString *explosives = [[NSString alloc] initWithFormat:@"e$explosives %d",[[basicArray objectAtIndex:i++] intValue]];
- [self sendToEngine:explosives];
- [explosives release];
-
- DLog(@"Sent %d flags and %d modes", [gamemodArray count], i);
[schemeDictionary release];
return result;
}
@@ -225,7 +214,7 @@
#pragma mark -
#pragma mark Thread/Network relevant code
// select one of GameSetup method and execute it in a seprate thread
--(void) startThread: (NSString *) selector {
+-(void) startThread:(NSString *)selector {
SEL usage = NSSelectorFromString(selector);
[NSThread detachNewThreadSelector:usage toTarget:self withObject:nil];
}
@@ -389,7 +378,6 @@
//[[NSNotificationCenter defaultCenter] postNotificationName:@"removedSave" object:nil];
// and remove + disable the overlay
[[NSNotificationCenter defaultCenter] postNotificationName:@"remove overlay" object:nil];
- setGameRunning(NO);
break;
default:
[self dumpRawData:buffer ofSize:msgSize];
@@ -440,7 +428,7 @@
NSString *modelId = modelType();
if ([modelId hasPrefix:@"iPhone1"] || // = iPhone or iPhone 3G
[modelId hasPrefix:@"iPod1,1"] || [modelId hasPrefix:@"iPod2,1"]) // = iPod Touch or iPod Touch 2G
- tmpQuality = 0x00000001 | 0x00000002 | 0x00000040; // rqLowRes | rqBlurryLand | rqKillFlakes
+ tmpQuality = 0x00000001 | 0x00000002 | 0x00000008 | 0x00000040; // rqLowRes | rqBlurryLand | rqSimpleRope | rqKillFlakes
else if ([modelId hasPrefix:@"iPhone2"] || // = iPhone 3GS
[modelId hasPrefix:@"iPod3"]) // = iPod Touch 3G
tmpQuality = 0x00000002 | 0x00000040; // rqBlurryLand | rqKillFlakes
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m
--- a/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -107,7 +107,10 @@
return 2;
break;
case 2: // other stuff
- return 2;
+ if (IS_IPAD())
+ return 2;
+ else
+ return 1;
break;
default:
DLog(@"Nope");
@@ -153,7 +156,7 @@
editableCell.minimumCharacters = 0;
editableCell.delegate = self;
editableCell.textField.font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
- editableCell.textField.textColor = [UIColor lightGrayColor];
+ editableCell.textField.textColor = [UIColor blackColor];
}
if (row == 0) {
@@ -207,7 +210,7 @@
switchContent = (UISwitch *)cell.accessoryView;
if (row == 0) {
cell.textLabel.text = NSLocalizedString(@"Alternate Damage", @"");
- cell.detailTextLabel.text = NSLocalizedString(@"Damage popups will notify you on every single hit a hedgehog suffers", @"");
+ cell.detailTextLabel.text = NSLocalizedString(@"Damage popups will notify you on every single hit", @"");
switchContent.on = [[self.settingsDictionary objectForKey:@"alternate"] boolValue];
switchContent.tag = 30;
} else {
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/HelpPageInGameViewController.xib
--- a/project_files/HedgewarsMobile/Classes/HelpPageInGameViewController.xib Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,889 +0,0 @@
-
-
-
- 1024
- 10F569
- 788
- 1038.29
- 461.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 117
-
-
- YES
-
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBIPadFramework
-
-
- IBFirstResponder
- IBIPadFramework
-
-
-
- 292
-
- YES
-
-
- 292
- {{0, -1}, {1024, 768}}
-
- NO
- NO
- IBIPadFramework
-
- NSImage
- helpingame.png
-
-
-
-
- 292
- {{79, 473}, {150, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Direction buttons
-
- Helvetica-Bold
- 18
- 16
-
-
- 1
- MCAwIDAAA
-
-
- 1
- 10
-
-
-
- 292
- {{79, 491}, {203, 85}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- With these buttons you can move your hog, aim and control certain weapons.
-
- Helvetica
- 16
- 16
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{53, 97}, {186, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Timer
-
-
-
- 1
- 10
-
-
-
- 292
- {{53, 118}, {187, 43}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Don't let your turn time run out!
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{780, 248}, {240, 128}}
-
- NO
- NO
- IBIPadFramework
-
- NSImage
- helpright.png
-
-
-
-
- 292
- {{790, 256}, {109, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Ammo Menu
-
-
-
- 1
- 10
-
-
-
- 292
- {{790, 282}, {214, 84}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- This menu contains all the weapons you can use. Drag your finger on a weapon for more details on what it does!
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{780, 97}, {186, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Pause / Open ammos
-
-
-
- 1
- 10
-
-
-
- 292
- {{782, 118}, {187, 43}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Tap to pause or open the ammo menu.
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{418, 73}, {186, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Wind bar
-
-
-
- 1
- 10
-
-
-
- 292
- {{418, 89}, {191, 63}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Some weapons are affected by the wind and their direction may shift.
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{447, 573}, {203, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Teams flags and health
-
-
-
- 1
- 10
-
-
-
- 292
- {{447, 592}, {203, 85}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- These bars report the team name, the team flags and the global health status of every hog.
-
-
-
- 1
- 10
- 4
-
-
-
- 292
- {{741, 501}, {135, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Joypad buttons
-
-
-
- 1
- 10
-
-
-
- 292
- {{741, 520}, {211, 85}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Press X to jump forward, Y to jump backwards (double tap to jump twice) and Missile to attack or use items.
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{67, 238}, {240, 128}}
-
- NO
- NO
- IBIPadFramework
-
- NSImage
- helpplain.png
-
-
-
-
- 292
- {{72, 246}, {229, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Tap to return to game
-
-
-
- 1
- 10
- 1
-
-
-
- 292
- {{72, 268}, {229, 87}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Pan to move camera, pinch to zoom, double tap to center hog, and a single touch to interact with weapons and much more!
-
-
-
- 1
- 10
- 0
-
-
- {1024, 768}
-
-
- 3
- MCAwLjQAA
-
- NO
- NO
-
- 3
-
- IBIPadFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 3
-
-
-
- dismiss
-
-
- 7
-
- 16
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 2
-
-
- YES
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
-
-
-
-
- 6
-
-
-
-
- 7
-
-
-
-
- 8
-
-
-
-
- 9
-
-
-
-
- 10
-
-
-
-
- 11
-
-
-
-
- 12
-
-
-
-
- 13
-
-
-
-
- 14
-
-
-
-
- 17
-
-
-
-
- 18
-
-
-
-
- 21
-
-
-
-
- 22
-
-
-
-
- 23
-
-
-
-
- 24
-
-
-
-
- 25
-
-
-
-
- 26
-
-
-
-
- 27
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 10.IBPluginDependency
- 11.IBPluginDependency
- 12.IBPluginDependency
- 13.IBPluginDependency
- 14.IBPluginDependency
- 17.IBPluginDependency
- 18.IBPluginDependency
- 2.CustomClassName
- 2.IBEditorWindowLastContentRect
- 2.IBPluginDependency
- 21.IBPluginDependency
- 22.IBPluginDependency
- 23.IBPluginDependency
- 24.IBPluginDependency
- 25.IBPluginDependency
- 26.IBPluginDependency
- 27.IBPluginDependency
- 5.IBPluginDependency
- 6.IBPluginDependency
- 7.IBPluginDependency
- 8.IBPluginDependency
- 9.IBPluginDependency
-
-
- YES
- HelpPageViewController
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIControl
- {{288, 355}, {1024, 768}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 27
-
-
-
- YES
-
- HelpPageViewController
- UIViewController
-
- dismiss
- id
-
-
- dismiss
-
- dismiss
- id
-
-
-
- IBProjectSource
- Classes/HelpPageViewController.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CAAnimation.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CALayer.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIControl
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIControl.h
-
-
-
- UIImageView
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIImageView.h
-
-
-
- UILabel
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UILabel.h
-
-
-
- UIResponder
- NSObject
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UIPopoverController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
-
- 0
- IBIPadFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- ../Hedgewars.xcodeproj
- 3
-
- YES
-
- YES
- helpingame.png
- helpplain.png
- helpright.png
-
-
- YES
- {1024, 768}
- {296, 138}
- {308, 144}
-
-
- 117
-
-
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController.xib
--- a/project_files/HedgewarsMobile/Classes/HelpPageLobbyViewController.xib Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1106 +0,0 @@
-
-
-
- 1024
- 10F569
- 788
- 1038.29
- 461.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 117
-
-
- YES
-
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBIPadFramework
-
-
- IBFirstResponder
- IBIPadFramework
-
-
-
- 292
-
- YES
-
-
- 292
- {{742, 389}, {240, 102}}
-
- NO
- NO
- IBIPadFramework
-
- NSImage
- helpabove.png
-
-
-
-
- 292
- {{753, 408}, {109, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Map theme
-
- Helvetica-Bold
- 18
- 16
-
-
- 1
- MCAwIDAAA
-
-
- 1
- 10
-
-
-
- 292
- {{753, 425}, {218, 66}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Here you can choose how your map will appear in game.
-
- Helvetica
- 16
- 16
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{653, 202}, {240, 146}}
-
- NO
- NO
- IBIPadFramework
-
-
-
-
- 292
- {{664, 221}, {109, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Map type
-
-
-
- 1
- 10
-
-
-
- 292
- {{664, 244}, {218, 99}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Choose between a static map or a randomly generated one (might require more time). In a mission you need to perfom some action to win.
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{494, 20}, {240, 101}}
-
- NO
- NO
- IBIPadFramework
-
- NSImage
- helpright.png
-
-
-
-
- 292
- {{502, 25}, {109, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Map preview
-
-
-
- 1
- 10
-
-
-
- 292
- {{502, 46}, {218, 65}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- This is a small preview of your next map. Tap to select / generate a new map.
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{391, 389}, {242, 171}}
-
- NO
- NO
- IBIPadFramework
-
-
-
-
- 292
- {{401, 413}, {109, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Teams
-
-
-
- 1
- 10
-
-
-
- 292
- {{400, 434}, {232, 120}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Select which teams are playing! Add hogs by tapping on them and set their color to figure friend and foe teams out. AI teams will appear with a small robot badge next their name.
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{142, 125}, {240, 104}}
-
- NO
- NO
- IBIPadFramework
-
- NSImage
- helpleft.png
-
-
-
-
- 292
- {{162, 133}, {204, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Schemes and Weapons
-
-
-
- 1
- 10
-
-
-
- 292
- {{162, 152}, {210, 71}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Here you can choose which rules and which weapon set will be applied in game.
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{155, 8}, {278, 50}}
-
- NO
- NO
- IBIPadFramework
-
-
-
-
- 292
- {{177, 6}, {248, 54}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Did you know you can customize almost everything in the settings page?
-
- Helvetica-Oblique
- 14
- 16
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{686, 583}, {240, 117}}
-
- NO
- NO
- IBIPadFramework
-
- NSImage
- helpbottom.png
-
-
-
-
- 292
- {{697, 592}, {138, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Max hedgehogs
-
-
-
- 1
- 10
-
-
-
- 292
- {{697, 609}, {218, 73}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- This number is the maximum size for all the hogs playing (in every team).
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{20, 587}, {240, 109}}
-
- NO
- NO
- IBIPadFramework
-
-
-
-
- 292
- {{30, 592}, {138, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Size slider
-
-
-
- 1
- 10
-
-
-
- 292
- {{30, 608}, {218, 73}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- For Random and Maze maps you can decide to generate only maps of a certain size.
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{45, 318}, {240, 128}}
-
- NO
- NO
- IBIPadFramework
-
- NSImage
- helpplain.png
-
-
-
-
- 292
- {{50, 326}, {229, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Tap anywhere to dismiss
-
-
-
- 1
- 10
- 1
-
-
-
- 292
- {{52, 348}, {224, 87}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Still confused? Don't worry, it's really simple! Try a couple of games and everything will become clear to you.
-
-
-
- 1
- 10
- 0
-
-
-
- 292
- {{344, 635}, {240, 61}}
-
- NO
- NO
- IBIPadFramework
-
-
-
-
- 292
- {{353, 637}, {138, 22}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- Start button
-
-
-
- 1
- 10
-
-
-
- 292
- {{354, 650}, {218, 46}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- This button starts the game.
-
-
-
- 1
- 10
- 0
-
-
- {1024, 768}
-
-
- 3
- MCAwLjQAA
-
- NO
- NO
-
- 3
-
- IBIPadFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 3
-
-
-
- dismiss
-
-
- 7
-
- 16
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 2
-
-
- YES
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 6
-
-
-
-
- 7
-
-
-
-
- 8
-
-
-
-
- 25
-
-
-
-
- 26
-
-
-
-
- 27
-
-
-
-
- 28
-
-
-
-
- 29
-
-
-
-
- 30
-
-
-
-
- 34
-
-
-
-
- 35
-
-
-
-
- 36
-
-
-
-
- 37
-
-
-
-
- 38
-
-
-
-
- 39
-
-
-
-
- 40
-
-
-
-
- 41
-
-
-
-
- 42
-
-
-
-
- 43
-
-
-
-
- 44
-
-
-
-
- 45
-
-
-
-
- 49
-
-
-
-
- 50
-
-
-
-
- 51
-
-
-
-
- 52
-
-
-
-
- 53
-
-
-
-
- 54
-
-
-
-
- 58
-
-
-
-
- 59
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 2.CustomClassName
- 2.IBEditorWindowLastContentRect
- 2.IBPluginDependency
- 25.IBPluginDependency
- 26.IBPluginDependency
- 27.IBPluginDependency
- 28.IBPluginDependency
- 29.IBPluginDependency
- 30.IBPluginDependency
- 34.IBPluginDependency
- 35.IBPluginDependency
- 36.IBPluginDependency
- 37.IBPluginDependency
- 38.IBPluginDependency
- 39.IBPluginDependency
- 40.IBPluginDependency
- 41.IBPluginDependency
- 42.IBPluginDependency
- 43.IBPluginDependency
- 44.IBPluginDependency
- 45.IBPluginDependency
- 49.IBPluginDependency
- 50.IBPluginDependency
- 51.IBPluginDependency
- 52.IBPluginDependency
- 53.IBPluginDependency
- 54.IBPluginDependency
- 58.IBPluginDependency
- 59.IBPluginDependency
- 6.IBPluginDependency
- 7.IBPluginDependency
- 8.IBPluginDependency
-
-
- YES
- HelpPageViewController
- UIResponder
- UIControl
- {{273, 125}, {1024, 768}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 59
-
-
-
- YES
-
- HelpPageViewController
- UIViewController
-
- dismiss
- id
-
-
- dismiss
-
- dismiss
- id
-
-
-
- IBProjectSource
- Classes/HelpPageViewController.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CAAnimation.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CALayer.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIControl
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIControl.h
-
-
-
- UIImageView
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIImageView.h
-
-
-
- UILabel
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UILabel.h
-
-
-
- UIResponder
- NSObject
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UIPopoverController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
-
- 0
- IBIPadFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- ../Hedgewars.xcodeproj
- 3
-
- YES
-
- YES
- helpabove.png
- helpbottom.png
- helpleft.png
- helpplain.png
- helpright.png
-
-
- YES
- {295, 156}
- {295, 156}
- {308, 144}
- {296, 138}
- {308, 144}
-
-
- 117
-
-
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/HelpPageViewController.h
--- a/project_files/HedgewarsMobile/Classes/HelpPageViewController.h Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/HelpPageViewController.h Mon Nov 15 12:37:39 2010 +0100
@@ -22,9 +22,11 @@
#import
-@interface HelpPageViewController : UIViewController {
+@interface HelpPageViewController : UIViewController {
+ UIScrollView *scrollView;
+}
-}
+@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;
-(IBAction) dismiss;
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/HelpPageViewController.m
--- a/project_files/HedgewarsMobile/Classes/HelpPageViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/HelpPageViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -23,28 +23,46 @@
#import "CommodityFunctions.h"
@implementation HelpPageViewController
-
+@synthesize scrollView;
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
return rotationManager(interfaceOrientation);
}
-(void) didReceiveMemoryWarning {
- // Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
- // Release any cached data, images, etc that aren't in use.
+ self.scrollView = nil;
+}
+
+// on iPhone the XIBs contain UIScrollView
+-(void) viewDidLoad {
+ if (scrollView.tag == 0)
+ scrollView.contentSize = CGSizeMake(480,650);
+ else
+ scrollView.contentSize = CGSizeMake(480,460);
+ scrollView.maximumZoomScale = 4.0;
+ scrollView.minimumZoomScale = 0.75;
+ scrollView.clipsToBounds = YES;
+ scrollView.delegate = self;
+ [super viewDidLoad];
+}
+
+
+-(void) scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view {
+ [self.view removeFromSuperview];
}
-(void) viewDidUnload {
[super viewDidUnload];
- // Release any retained subviews of the main view.
- // e.g. self.myOutlet = nil;
+ self.scrollView = nil;
}
-(void) dealloc {
+ [scrollView release];
[super dealloc];
}
+// on iPad the XIBs contain UIControl
-(IBAction) dismiss {
[UIView beginAnimations:@"helpingame" context:NULL];
self.view.alpha = 0;
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/InGameMenuViewController.m
--- a/project_files/HedgewarsMobile/Classes/InGameMenuViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/InGameMenuViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -150,7 +150,7 @@
break;
case 2:
// expand the view (and table) so that the actionsheet can be selected on the iPhone
- if (IS_IPAD()) {
+ if (IS_IPAD() == NO) {
CGRect screen = [[UIScreen mainScreen] bounds];
[self.tableView deselectRowAtIndexPath:indexPath animated:NO];
[UIView beginAnimations:@"table width more" context:NULL];
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/LevelViewController.m
--- a/project_files/HedgewarsMobile/Classes/LevelViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/LevelViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -95,14 +95,15 @@
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier0] autorelease];
UISwitch *theSwitch = [[UISwitch alloc] init];
- if (numberOfSections == 1)
- theSwitch.on = NO;
- else
- theSwitch.on = YES;
[theSwitch addTarget:self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];
cell.accessoryView = theSwitch;
[theSwitch release];
}
+ UISwitch *theSwitch = (UISwitch *)cell.accessoryView;
+ if (numberOfSections == 1)
+ theSwitch.on = NO;
+ else
+ theSwitch.on = YES;
cell.textLabel.text = NSLocalizedString(@"Hogs controlled by AI",@"");
} else {
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
@@ -137,21 +138,20 @@
if (theSwitch.on) {
numberOfSections = 2;
[self.tableView insertSections:sections withRowAnimation:UITableViewRowAnimationFade];
- level = random() % [levelArray count];
+ level = 1 + (random() % ([levelArray count] - 1));
} else {
numberOfSections = 1;
[self.tableView deleteSections:sections withRowAnimation:UITableViewRowAnimationFade];
level = 0;
}
+ [sections release];
DLog(@"New level is %d",level);
for (NSMutableDictionary *hog in hogs)
- [hog setObject:[NSNumber numberWithInt:0] forKey:@"level"];
+ [hog setObject:[NSNumber numberWithInt:level] forKey:@"level"];
[self.tableView reloadData];
[[NSNotificationCenter defaultCenter] postNotificationName:@"setWriteNeedTeams" object:nil];
-
- [sections release];
}
@@ -165,8 +165,10 @@
if (newRow != oldRow) {
NSMutableArray *hogs = [self.teamDictionary objectForKey:@"hedgehogs"];
+ NSInteger level = newRow + 1;
for (NSMutableDictionary *hog in hogs)
- [hog setObject:[NSNumber numberWithInt:newRow+1] forKey:@"level"];
+ [hog setObject:[NSNumber numberWithInt:level] forKey:@"level"];
+ DLog(@"New level is %d",level);
// tell our boss to write this new stuff on disk
[[NSNotificationCenter defaultCenter] postNotificationName:@"setWriteNeedTeams" object:nil];
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/MainMenuViewController.m
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -20,7 +20,7 @@
#import "MainMenuViewController.h"
-#import "CommodityFunctions.h"
+#import "CreationChamber.h"
#import "SDL_uikitappdelegate.h"
#import "PascalImports.h"
#import "GameConfigViewController.h"
@@ -35,91 +35,81 @@
return rotationManager(interfaceOrientation);
}
-// using a different thread for audio 'cos it's slow
--(void) initAudioThread {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- // do somthing in the future
- [pool release];
-}
-
// check if some configuration files are already set; if they are present it means that the current copy must be updated
-(void) createNecessaryFiles {
- NSError *err = nil;
- NSString *directoryToCheck, *fileToCheck, *fileToUpdate;
- NSString *resDir = [[NSBundle mainBundle] resourcePath];
+ NSString *sourceFile, *destinationFile;
+ NSString *resourcesDir = [[NSBundle mainBundle] resourcePath];
DLog(@"Creating necessary files");
- // create an empty saves directory by deleting the previous one (saves are incompatible between releases)
+ // SAVES - just delete and overwrite
if ([[NSFileManager defaultManager] fileExistsAtPath:SAVES_DIRECTORY()])
[[NSFileManager defaultManager] removeItemAtPath:SAVES_DIRECTORY() error:NULL];
[[NSFileManager defaultManager] createDirectoryAtPath:SAVES_DIRECTORY() withIntermediateDirectories:NO attributes:nil error:NULL];
- // if the settings file is already present, we merge current preferences with the update
- directoryToCheck = [NSString stringWithFormat:@"%@/Settings/settings.plist",resDir];
+ // SETTINGS FILE - merge when present
+ NSString *baseSettingsFile = [[NSString alloc] initWithFormat:@"%@/Settings/settings.plist",resourcesDir];
if ([[NSFileManager defaultManager] fileExistsAtPath:SETTINGS_FILE()]) {
NSDictionary *settings = [[NSDictionary alloc] initWithContentsOfFile:SETTINGS_FILE()];
- NSMutableDictionary *update = [[NSMutableDictionary alloc] initWithContentsOfFile:directoryToCheck];
+ NSMutableDictionary *update = [[NSMutableDictionary alloc] initWithContentsOfFile:baseSettingsFile];
+ // the order of what adds what is important
[update addEntriesFromDictionary:settings];
[settings release];
[update writeToFile:SETTINGS_FILE() atomically:YES];
[update release];
} else
- [[NSFileManager defaultManager] copyItemAtPath:directoryToCheck toPath:SETTINGS_FILE() error:&err];
-
- // if the teams are already present we merge the old teams if they still exist
- directoryToCheck = [NSString stringWithFormat:@"%@/Settings/Teams",resDir];
- if ([[NSFileManager defaultManager] fileExistsAtPath:TEAMS_DIRECTORY()]) {
- for (NSString *str in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:directoryToCheck error:&err]) {
- fileToCheck = [NSString stringWithFormat:@"%@/%@",TEAMS_DIRECTORY(),str];
- fileToUpdate = [NSString stringWithFormat:@"%@/Settings/Teams/%@",resDir,str];
- if ([[NSFileManager defaultManager] fileExistsAtPath:fileToCheck]) {
- NSDictionary *team = [[NSDictionary alloc] initWithContentsOfFile:fileToCheck];
- NSMutableDictionary *update = [[NSMutableDictionary alloc] initWithContentsOfFile:fileToUpdate];
- [update addEntriesFromDictionary:team];
- [team release];
- [update writeToFile:fileToCheck atomically:YES];
- [update release];
- }
+ [[NSFileManager defaultManager] copyItemAtPath:baseSettingsFile toPath:SETTINGS_FILE() error:NULL];
+ [baseSettingsFile release];
+
+ // TEAMS - update exisiting teams with new format
+ if ([[NSFileManager defaultManager] fileExistsAtPath:TEAMS_DIRECTORY()] == NO) {
+ [[NSFileManager defaultManager] createDirectoryAtPath:TEAMS_DIRECTORY()
+ withIntermediateDirectories:YES
+ attributes:nil
+ error:NULL];
+ // we copy teams only the first time because it's unlikely that newer ones are going to be added
+ NSString *baseTeamsDir = [[NSString alloc] initWithFormat:@"%@/Settings/Teams/",resourcesDir];
+ for (NSString *str in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:baseTeamsDir error:NULL]) {
+ sourceFile = [baseTeamsDir stringByAppendingString:str];
+ destinationFile = [TEAMS_DIRECTORY() stringByAppendingString:str];
+ [[NSFileManager defaultManager] removeItemAtPath:destinationFile error:NULL];
+ [[NSFileManager defaultManager] copyItemAtPath:sourceFile toPath:destinationFile error:NULL];
}
- } else
- [[NSFileManager defaultManager] copyItemAtPath:directoryToCheck toPath:TEAMS_DIRECTORY() error:&err];
-
- // the same holds for schemes (but they're arrays)
- directoryToCheck = [NSString stringWithFormat:@"%@/Settings/Schemes",resDir];
- if ([[NSFileManager defaultManager] fileExistsAtPath:SCHEMES_DIRECTORY()]) {
- for (NSString *str in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:directoryToCheck error:nil]) {
- fileToCheck = [NSString stringWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),str];
- fileToUpdate = [NSString stringWithFormat:@"%@/Settings/Schemes/%@",resDir,str];
- if ([[NSFileManager defaultManager] fileExistsAtPath:fileToCheck]) {
- NSArray *scheme = [[NSArray alloc] initWithContentsOfFile:fileToCheck];
- NSArray *update = [[NSArray alloc] initWithContentsOfFile:fileToUpdate];
- if ([update count] > [scheme count])
- [update writeToFile:fileToCheck atomically:YES];
- [update release];
- [scheme release];
- }
- }
- } else
- [[NSFileManager defaultManager] copyItemAtPath:directoryToCheck toPath:SCHEMES_DIRECTORY() error:&err];
-
- // we create weapons the first time only, they are autoupdated each time
- if ([[NSFileManager defaultManager] fileExistsAtPath:WEAPONS_DIRECTORY()] == NO) {
+ [baseTeamsDir release];
+ }
+ // TODO: is merge needed?
+
+ // SCHEMES - update old stuff and add new stuff
+ if ([[NSFileManager defaultManager] fileExistsAtPath:SCHEMES_DIRECTORY()] == NO)
+ [[NSFileManager defaultManager] createDirectoryAtPath:SCHEMES_DIRECTORY()
+ withIntermediateDirectories:YES
+ attributes:nil
+ error:NULL];
+ // TODO: do the merge if necessary
+ // we overwrite the default ones because it is likely that new modes are added every release
+ NSString *baseSchemesDir = [[NSString alloc] initWithFormat:@"%@/Settings/Schemes/",resourcesDir];
+ for (NSString *str in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:baseSchemesDir error:NULL]) {
+ sourceFile = [baseSchemesDir stringByAppendingString:str];
+ destinationFile = [SCHEMES_DIRECTORY() stringByAppendingString:str];
+ [[NSFileManager defaultManager] removeItemAtPath:destinationFile error:NULL];
+ [[NSFileManager defaultManager] copyItemAtPath:sourceFile toPath:destinationFile error:NULL];
+ }
+ [baseSchemesDir release];
+
+ // WEAPONS - always overwrite
+ if ([[NSFileManager defaultManager] fileExistsAtPath:WEAPONS_DIRECTORY()] == NO)
[[NSFileManager defaultManager] createDirectoryAtPath:WEAPONS_DIRECTORY()
withIntermediateDirectories:YES
attributes:nil
- error:&err];
- createWeaponNamed(@"Default", 0);
- createWeaponNamed(@"Crazy", 1);
- createWeaponNamed(@"Pro mode", 2);
- createWeaponNamed(@"Shoppa", 3);
- createWeaponNamed(@"Basketball", 4);
- createWeaponNamed(@"Minefield", 5);
- }
-
- if (err != nil)
- DLog(@"%@", err);
- else
- DLog(@"Success");
+ error:NULL];
+ createWeaponNamed(@"Default", 0);
+ createWeaponNamed(@"Crazy", 1);
+ createWeaponNamed(@"Pro Mode", 2);
+ createWeaponNamed(@"Shoppa", 3);
+ createWeaponNamed(@"Clean Slate", 4);
+ createWeaponNamed(@"Minefield", 5);
+ createWeaponNamed(@"Thinking with Portals", 6);
+
+ DLog(@"Success");
}
#pragma mark -
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/MapConfigViewController.m
--- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -71,7 +71,8 @@
// perform as if user clicked on an entry
[self tableView:self.tableView didSelectRowAtIndexPath:theIndex];
- [self.tableView scrollToRowAtIndexPath:theIndex atScrollPosition:UITableViewScrollPositionNone animated:YES];
+ if (IS_NOT_POWERFUL() == NO)
+ [self.tableView scrollToRowAtIndexPath:theIndex atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}
-(void) turnOffWidgets {
@@ -126,9 +127,6 @@
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
- if (IS_IPAD())
- cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
-
if (self.dataSourceArray == nil)
[self loadDataSourceArray];
NSArray *source = [self.dataSourceArray objectAtIndex:scIndex];
@@ -137,6 +135,7 @@
cell.textLabel.text = labelString;
cell.textLabel.adjustsFontSizeToFitWidth = YES;
cell.textLabel.minimumFontSize = 7;
+ cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
if (isRandomness()) {
UIImage *image = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/%@/icon.png",THEMES_DIRECTORY(),labelString]];
@@ -222,7 +221,7 @@
}
#pragma mark -
-#pragma mark slider & segmentedControl
+#pragma mark slider & segmentedControl & button
// this updates the label and the command keys when the slider is moved, depending of the selection in segmentedControl
// no methods are called by this routine and you can pass nil to it
-(IBAction) sliderChanged:(id) sender {
@@ -351,28 +350,19 @@
self.staticMapCommand = staticmap;
self.missionCommand = mission;
- // nice animation for updating the table when appropriate (on iphone)
- if (IS_IPAD())
- if (((oldPage == 0 || oldPage == 2) && (newPage == 1 || newPage == 3)) ||
- ((oldPage == 1 || oldPage == 3) && (newPage == 0 || newPage == 2)) ||
- ((oldPage == 1 && newPage == 3) || (oldPage == 3 || newPage == 1))) {
- self.tableView.frame = CGRectMake(480, 0, 185, 276);
- [UIView beginAnimations:@"moving in table" context:NULL];
- self.tableView.frame = CGRectMake(295, 0, 185, 276);
- [UIView commitAnimations];
- }
-
[self.tableView reloadData];
[self updatePreview];
oldPage = newPage;
}
-#pragma mark -
-#pragma mark calls the parent's function that checks the parameters and starts the game
-(IBAction) buttonPressed:(id) sender {
- [[NSNotificationCenter defaultCenter] postNotificationName:@"buttonPressed" object:nil userInfo:[NSDictionary dictionaryWithObject:sender forKey:@"sender"]];
+ [[NSNotificationCenter defaultCenter] postNotificationName:@"buttonPressed"
+ object:nil
+ userInfo:[NSDictionary dictionaryWithObject:sender forKey:@"sender"]];
}
+#pragma mark -
+#pragma mark view management
-(void) loadDataSourceArray {
// themes.cfg contains all the user-selectable themes
NSString *string = [[NSString alloc] initWithContentsOfFile:[THEMES_DIRECTORY() stringByAppendingString:@"/themes.cfg"]
@@ -382,17 +372,38 @@
[string release];
// remove a trailing "" element
[themeArray removeLastObject];
- NSArray *mapArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MAPS_DIRECTORY() error:NULL];
- NSArray *missionArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MISSIONS_DIRECTORY() error:NULL];
+ NSArray *mapArrayFull = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MAPS_DIRECTORY() error:NULL];
+ NSMutableArray *mapArray = [[NSMutableArray alloc] init];
+ for (NSString *str in mapArrayFull) {
+ CGSize imgSize = PSPNGSizeFromMetaData([MAPS_DIRECTORY() stringByAppendingFormat:@"%@/map.png",str]);
+ //DLog(@"%@ %f %f", str, imgSize.width, imgSize.height);
+ if (IS_NOT_POWERFUL() && imgSize.height > 1024.0f)
+ continue;
+ if (IS_IPAD() && imgSize.height > 1280.0f)
+ continue;
+ [mapArray addObject:str];
+ }
+ NSArray *missionArrayFull = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:MISSIONS_DIRECTORY() error:NULL];
+ NSMutableArray *missionArray = [[NSMutableArray alloc] init];
+ for (NSString *str in missionArrayFull) {
+ CGSize imgSize = PSPNGSizeFromMetaData([MISSIONS_DIRECTORY() stringByAppendingFormat:@"%@/map.png",str]);
+ //DLog(@"%@ %f %f", str, imgSize.width, imgSize.height);
+ if (IS_NOT_POWERFUL() && imgSize.height > 1024.0f)
+ continue;
+ if (IS_IPAD() && imgSize.height > 1280.0f)
+ continue;
+ [missionArray addObject:str];
+ }
NSArray *array = [[NSArray alloc] initWithObjects:themeArray,mapArray,themeArray,missionArray,nil];
+ [missionArray release];
+ [themeArray release];
+ [mapArray release];
+
self.dataSourceArray = array;
[array release];
- [themeArray release];
}
-#pragma mark -
-#pragma mark view management
-(void) viewDidLoad {
[super viewDidLoad];
@@ -423,13 +434,11 @@
self.staticMapCommand = @"";
self.missionCommand = @"";
- if (IS_IPAD()) {
+ if ([self.tableView respondsToSelector:@selector(setBackgroundView:)])
[self.tableView setBackgroundView:nil];
- self.view.backgroundColor = [UIColor clearColor];
- self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
- self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
- self.tableView.rowHeight = 45;
- }
+ self.view.backgroundColor = [UIColor clearColor];
+ self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
+ self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
-(void) viewWillAppear:(BOOL)animated {
@@ -470,11 +479,9 @@
-(void) didReceiveMemoryWarning {
self.dataSourceArray = nil;
- self.previewButton = nil;
self.tableView = nil;
self.maxLabel = nil;
self.sizeLabel = nil;
- self.segmentedControl = nil;
self.slider = nil;
MSG_MEMCLEAN();
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/MapPreviewButtonView.h
--- a/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.h Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.h Mon Nov 15 12:37:39 2010 +0100
@@ -38,12 +38,12 @@
@property (nonatomic,assign) id delegate;
-
-(void) setBackgroundImageRounded:(UIImage *)image forState:(UIControlState)state;
-(void) setImageRounded:(UIImage *)image forState:(UIControlState)state;
-(void) setImageRoundedForNormalState:(UIImage *)image;
-(void) updatePreviewWithSeed:(NSString *)seed;
-(void) updatePreviewWithFile:(NSString *)filePath;
+-(void) turnOnWidgets;
-(NSDictionary *)getDataForEngine;
@end
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/MapPreviewButtonView.m
--- a/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/MapPreviewButtonView.m Mon Nov 15 12:37:39 2010 +0100
@@ -196,10 +196,9 @@
[self setTitle:nil forState:UIControlStateNormal];
// don't display preview on slower device, too slow and memory hog
- NSString *modelId = modelType();
- if ([modelId hasPrefix:@"iPhone1"] || [modelId hasPrefix:@"iPod1,1"] || [modelId hasPrefix:@"iPod2,1"]) {
- //self.delegate.busy = NO;
+ if (IS_NOT_POWERFUL()) {
[self setTitle:NSLocalizedString(@"Preview not available",@"") forState:UIControlStateNormal];
+ [self turnOnWidgets];
} else {
// add a very nice spinning wheel
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc]
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/MasterViewController.m
--- a/project_files/HedgewarsMobile/Classes/MasterViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/MasterViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -153,7 +153,7 @@
break;
case 4:
if (nil == supportViewController)
- supportViewController = [[SupportViewController alloc] initWithNibName:@"SupportViewController" bundle:nil];
+ supportViewController = [[SupportViewController alloc] initWithStyle:UITableViewStyleGrouped];
nextController = supportViewController;
break;
}
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/ObjcExports.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/ObjcExports.h Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,32 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2010 Vittorio Giovara
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 30/10/2010.
+ */
+
+
+#define ANIMATION_DURATION 0.25
+#define CONFIRMATION_TAG 5959
+#define GRENADE_TAG 9595
+#define REPLAYBLACKVIEW_TAG 9955
+#define ACTIVITYINDICATOR_TAG 987654
+
+void objcExportsInit();
+BOOL isGameRunning();
+void setGameRunning(BOOL value);
+NSInteger cachedGrenadeTime();
+void setGrenadeTime(NSInteger value);
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/ObjcExports.m
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/ObjcExports.m Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,145 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2010 Vittorio Giovara
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 30/10/2010.
+ */
+
+
+#import "ObjcExports.h"
+
+#pragma mark -
+#pragma mark internal variables
+// actual game started (controls should be enabled)
+BOOL gameRunning;
+// black screen present
+BOOL savedGame;
+// cache the grenade time
+NSInteger grenadeTime;
+
+#pragma mark -
+#pragma mark functions called like oop
+void objcExportsInit() {
+ gameRunning = NO;
+ savedGame = NO;
+ grenadeTime = 2;
+}
+
+BOOL inline isGameRunning() {
+ return gameRunning;
+}
+
+void inline setGameRunning(BOOL value) {
+ gameRunning = value;
+}
+
+NSInteger cachedGrenadeTime() {
+ return grenadeTime;
+}
+
+void inline setGrenadeTime(NSInteger value) {
+ grenadeTime = value;
+}
+
+#pragma mark -
+#pragma mark functions called by pascal code
+void startSpinning() {
+ gameRunning = NO;
+ UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow];
+ UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
+ indicator.tag = ACTIVITYINDICATOR_TAG;
+ int offset;
+ if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft)
+ offset = -120;
+ else
+ offset = 120;
+ if (IS_DUALHEAD())
+ indicator.center = CGPointMake(theWindow.frame.size.width/2, theWindow.frame.size.height/2 + offset);
+ else
+ indicator.center = CGPointMake(theWindow.frame.size.width/2 + offset, theWindow.frame.size.height/2);
+ indicator.hidesWhenStopped = YES;
+ [indicator startAnimating];
+ [theWindow addSubview:indicator];
+ [indicator release];
+}
+
+void stopSpinning() {
+ UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow];
+ UIActivityIndicatorView *indicator = (UIActivityIndicatorView *)[theWindow viewWithTag:ACTIVITYINDICATOR_TAG];
+ [indicator stopAnimating];
+ HW_zoomSet(1.7);
+ if (savedGame == NO)
+ gameRunning = YES;
+}
+
+void clearView() {
+ UIWindow *theWindow = (IS_DUALHEAD()) ? [SDLUIKitDelegate sharedAppDelegate].uiwindow : [[UIApplication sharedApplication] keyWindow];
+ UIButton *theButton = (UIButton *)[theWindow viewWithTag:CONFIRMATION_TAG];
+ UISegmentedControl *theSegment = (UISegmentedControl *)[theWindow viewWithTag:GRENADE_TAG];
+
+ [UIView beginAnimations:@"remove button" context:NULL];
+ [UIView setAnimationDuration:ANIMATION_DURATION];
+ theButton.alpha = 0;
+ theSegment.alpha = 0;
+ [UIView commitAnimations];
+
+ if (theButton)
+ [theWindow performSelector:@selector(removeFromSuperview) withObject:theButton afterDelay:ANIMATION_DURATION];
+ if (theSegment)
+ [theWindow performSelector:@selector(removeFromSuperview) withObject:theSegment afterDelay:ANIMATION_DURATION];
+
+ grenadeTime = 2;
+}
+
+void replayBegan() {
+ UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow];
+ UIView *blackView = [[UIView alloc] initWithFrame:theWindow.frame];
+ blackView.backgroundColor = [UIColor blackColor];
+ blackView.alpha = 0.6;
+ blackView.tag = REPLAYBLACKVIEW_TAG;
+ blackView.exclusiveTouch = NO;
+ blackView.multipleTouchEnabled = NO;
+ blackView.userInteractionEnabled = NO;
+
+ UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
+ indicator.center = theWindow.center;
+ [indicator startAnimating];
+ [blackView addSubview:indicator];
+ [indicator release];
+ [theWindow addSubview:blackView];
+ [blackView release];
+
+ savedGame = YES;
+ stopSpinning();
+}
+
+void replayFinished() {
+ UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow];
+ UIView *blackView = (UIView *)[theWindow viewWithTag:REPLAYBLACKVIEW_TAG];
+
+ [UIView beginAnimations:@"removing black" context:NULL];
+ [UIView setAnimationDuration:1];
+ blackView.alpha = 0;
+ [UIView commitAnimations];
+ [theWindow performSelector:@selector(removeFromSuperview) withObject:blackView afterDelay:1];
+
+ gameRunning = YES;
+ savedGame = NO;
+}
+
+void updateVisualsNewTurn(void) {
+ [[NSNotificationCenter defaultCenter] postNotificationName:@"updateAmmoVisuals" object:nil];
+}
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/OverlayViewController.h
--- a/project_files/HedgewarsMobile/Classes/OverlayViewController.h Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/OverlayViewController.h Mon Nov 15 12:37:39 2010 +0100
@@ -79,11 +79,3 @@
-(void) cleanup;
@end
-
-// actual game started (controls should be enabled)
-BOOL isGameRunning;
-void setGameRunning(BOOL value);
-// black screen present
-BOOL isReplay;
-// cache the grenade time
-NSInteger cachedGrenadeTime;
\ No newline at end of file
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/OverlayViewController.m
--- a/project_files/HedgewarsMobile/Classes/OverlayViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/OverlayViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -20,7 +20,6 @@
#import "OverlayViewController.h"
-#import "SDL_uikitappdelegate.h"
#import "InGameMenuViewController.h"
#import "HelpPageViewController.h"
#import "AmmoMenuViewController.h"
@@ -29,17 +28,13 @@
#import "CGPointUtils.h"
#import "SDL_config_iphoneos.h"
#import "SDL_mouse.h"
+#import "ObjcExports.h"
#define HIDING_TIME_DEFAULT [NSDate dateWithTimeIntervalSinceNow:2.7]
#define HIDING_TIME_NEVER [NSDate dateWithTimeIntervalSinceNow:10000]
#define doDim() [dimTimer setFireDate: (IS_DUALHEAD()) ? HIDING_TIME_NEVER : HIDING_TIME_DEFAULT]
#define doNotDim() [dimTimer setFireDate:HIDING_TIME_NEVER]
-#define CONFIRMATION_TAG 5959
-#define GRENADE_TAG 9595
-#define REPLAYBLACKVIEW_TAG 9955
-#define ACTIVITYINDICATOR_TAG 987654
-#define ANIMATION_DURATION 0.25
#define removeConfirmationInput() [[self.view viewWithTag:CONFIRMATION_TAG] removeFromSuperview];
@implementation OverlayViewController
@@ -63,6 +58,19 @@
wasVisible = NO;
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
+
+ UIView *sdlView = [[[UIApplication sharedApplication] keyWindow] viewWithTag:SDL_VIEW_TAG];
+ switch (toInterfaceOrientation) {
+ case UIDeviceOrientationLandscapeLeft:
+ sdlView.transform = CGAffineTransformMakeRotation(degreesToRadians(a));
+ break;
+ case UIDeviceOrientationLandscapeRight:
+ sdlView.transform = CGAffineTransformMakeRotation(degreesToRadians(b));
+ break;
+ default:
+ // a debug log would spam too much
+ break;
+ }
}
// now restore previous state
@@ -75,47 +83,33 @@
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
}
-// rotate the sdl view according to the orientation -- the uiview is autorotated
--(void) didRotate:(NSNotification *)notification {
+// while in dual head the above rotation functions are not called
+-(void) dualHeadRotation:(NSNotification *)notification {
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
- UIView *sdlView = [[[UIApplication sharedApplication] keyWindow] viewWithTag:SDL_VIEW_TAG];
- CGRect screenRect = [[UIScreen mainScreen] bounds];
[UIView beginAnimations:@"rotation" context:NULL];
[UIView setAnimationDuration:0.7];
switch (orientation) {
case UIDeviceOrientationLandscapeLeft:
- if (IS_DUALHEAD()) {
- self.view.frame = CGRectMake(0, 0, screenRect.size.width, screenRect.size.height);
- self.view.transform = CGAffineTransformMakeRotation(degreesToRadians(90));
- } else
- sdlView.transform = CGAffineTransformMakeRotation(degreesToRadians(a));
+ self.view.frame = [[UIScreen mainScreen] bounds];
+ self.view.transform = CGAffineTransformMakeRotation(degreesToRadians(90));
break;
case UIDeviceOrientationLandscapeRight:
- if (IS_DUALHEAD()) {
- self.view.frame = CGRectMake(0, 0, screenRect.size.width, screenRect.size.height);
- self.view.transform = CGAffineTransformMakeRotation(degreesToRadians(-90));
- } else
- sdlView.transform = CGAffineTransformMakeRotation(degreesToRadians(b));
+ self.view.frame = [[UIScreen mainScreen] bounds];
+ self.view.transform = CGAffineTransformMakeRotation(degreesToRadians(-90));
break;
default:
// a debug log would spam too much
break;
}
[UIView commitAnimations];
-
- // for single screens only landscape mode is supported
- // for dual screen mode the sdlview is not modified, but you can rotate the pad in any direction
}
#pragma mark -
#pragma mark View Management
-(id) initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder])) {
- isGameRunning = NO;
- isReplay = NO;
- cachedGrenadeTime = 2;
-
+ objcExportsInit();
isAttacking = NO;
wasVisible = NO;
isPopoverVisible = NO; // it is called "popover" even on the iphone
@@ -139,7 +133,10 @@
}
// get the number of screens to know the previous state whan a display is connected or detached
- initialScreenCount = [[UIScreen screens] count];
+ if ([UIScreen respondsToSelector:@selector(screens)])
+ initialScreenCount = [[UIScreen screens] count];
+ else
+ initialScreenCount = 1;
// set initial orientation of the controller orientation
if (IS_DUALHEAD()) {
@@ -154,6 +151,11 @@
DLog(@"Nope");
break;
}
+ [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(dualHeadRotation:)
+ name:UIDeviceOrientationDidChangeNotification
+ object:nil];
}
// the timer used to dim the overlay
@@ -167,12 +169,6 @@
[[NSRunLoop currentRunLoop] addTimer:dimTimer forMode:NSDefaultRunLoopMode];
// become listener of some notifications
- [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(didRotate:)
- name:UIDeviceOrientationDidChangeNotification
- object:nil];
-
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(showHelp:)
name:@"show help ingame"
@@ -182,20 +178,23 @@
selector:@selector(cleanup)
name:@"remove overlay"
object:nil];
-
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(numberOfScreensIncreased)
- name:UIScreenDidConnectNotification
- object:nil];
-
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(numberOfScreensDecreased)
- name:UIScreenDidDisconnectNotification
- object:nil];
+
+ // for iOS >= 3.2
+ if ([UIScreen respondsToSelector:@selector(screens)]) {
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(numberOfScreensIncreased)
+ name:UIScreenDidConnectNotification
+ object:nil];
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(numberOfScreensDecreased)
+ name:UIScreenDidDisconnectNotification
+ object:nil];
+ }
// present the overlay
[UIView beginAnimations:@"showing overlay" context:NULL];
- [UIView setAnimationDuration:1];
+ [UIView setAnimationDuration:2];
self.view.alpha = 1;
[UIView commitAnimations];
}
@@ -229,8 +228,14 @@
-(void) showHelp:(id) sender {
- if (self.helpPage == nil)
- self.helpPage = [[HelpPageViewController alloc] initWithNibName:@"HelpPageInGameViewController" bundle:nil];
+ if (self.helpPage == nil) {
+ NSString *xib;
+ if (IS_IPAD())
+ xib = @"HelpPageInGameViewController-iPad";
+ else
+ xib = @"HelpPageInGameViewController-iPhone";
+ self.helpPage = [[HelpPageViewController alloc] initWithNibName:xib bundle:nil];
+ }
self.helpPage.view.alpha = 0;
[self.view addSubview:helpPage.view];
[UIView beginAnimations:@"helpingame" context:NULL];
@@ -241,6 +246,7 @@
-(void) cleanup {
[self dismissPopover];
+ setGameRunning(NO);
HW_terminate(NO);
[self.view removeFromSuperview];
}
@@ -262,6 +268,8 @@
-(void) viewDidUnload {
// only objects initialized in viewDidLoad should be here
+ if (IS_DUALHEAD())
+ [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] removeObserver:self];
[NSObject cancelPreviousPerformRequestsWithTarget:self
selector:@selector(unsetPreciseStatus)
@@ -288,7 +296,7 @@
#pragma mark overlay user interaction
// nice transition for dimming, should be called only by the timer himself
-(void) dimOverlay {
- if (isGameRunning) {
+ if (isGameRunning()) {
[UIView beginAnimations:@"overlay dim" context:NULL];
[UIView setAnimationDuration:0.6];
self.view.alpha = 0.2;
@@ -304,7 +312,7 @@
// dim the overlay when there's no more input for a certain amount of time
-(IBAction) buttonReleased:(id) sender {
- if (isGameRunning == NO)
+ if (isGameRunning() == NO)
return;
UIButton *theButton = (UIButton *)sender;
@@ -337,7 +345,7 @@
-(IBAction) buttonPressed:(id) sender {
[self activateOverlay];
- if (isGameRunning == NO)
+ if (isGameRunning() == NO)
return;
if (isPopoverVisible)
@@ -422,9 +430,9 @@
-(void) setGrenadeTime:(id) sender {
UISegmentedControl *theSegment = (UISegmentedControl *)sender;
- if (cachedGrenadeTime != theSegment.selectedSegmentIndex) {
+ if (cachedGrenadeTime() != theSegment.selectedSegmentIndex) {
HW_setGrenadeTime(theSegment.selectedSegmentIndex + 1);
- cachedGrenadeTime = theSegment.selectedSegmentIndex;
+ setGrenadeTime(theSegment.selectedSegmentIndex);
}
}
@@ -490,7 +498,7 @@
NSSet *allTouches = [event allTouches];
UITouch *first, *second;
- if (isGameRunning == NO)
+ if (isGameRunning() == NO)
return;
// hide in-game menu
@@ -529,7 +537,7 @@
NSSet *allTouches = [event allTouches];
CGPoint currentPosition = [[[allTouches allObjects] objectAtIndex:0] locationInView:self.view];
- if (isGameRunning == NO)
+ if (isGameRunning() == NO)
return;
switch ([allTouches count]) {
@@ -582,7 +590,7 @@
[grenadeTime addTarget:self action:@selector(setGrenadeTime:) forControlEvents:UIControlEventValueChanged];
grenadeTime.frame = CGRectMake(screen.size.height / 2 - 125, screen.size.width, 250, 50);
- grenadeTime.selectedSegmentIndex = cachedGrenadeTime;
+ grenadeTime.selectedSegmentIndex = cachedGrenadeTime();
grenadeTime.tag = GRENADE_TAG;
[self.view addSubview:grenadeTime];
[grenadeTime release];
@@ -621,7 +629,7 @@
int x, y, dx, dy;
UITouch *touch, *first, *second;
- if (isGameRunning == NO)
+ if (isGameRunning() == NO)
return;
switch ([allTouches count]) {
@@ -674,97 +682,4 @@
}
}
-#pragma mark -
-#pragma mark Functions called by pascal code
-void inline setGameRunning(BOOL value) {
- isGameRunning = value;
-}
-
-// called by uStore from AddProgress
-void startSpinning() {
- setGameRunning(NO);
- UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow];
- UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
- indicator.tag = ACTIVITYINDICATOR_TAG;
- int offset;
- if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft)
- offset = -120;
- else
- offset = 120;
- if (IS_DUALHEAD())
- indicator.center = CGPointMake(theWindow.frame.size.width/2, theWindow.frame.size.height/2 + offset);
- else
- indicator.center = CGPointMake(theWindow.frame.size.width/2 + offset, theWindow.frame.size.height/2);
- indicator.hidesWhenStopped = YES;
- [indicator startAnimating];
- [theWindow addSubview:indicator];
- [indicator release];
-}
-
-// called by uStore from FinishProgress and by OverlayViewController by replayBegan
-void stopSpinning() {
- UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow];
- UIActivityIndicatorView *indicator = (UIActivityIndicatorView *)[theWindow viewWithTag:ACTIVITYINDICATOR_TAG];
- [indicator stopAnimating];
- HW_zoomSet(1.7);
- if (isReplay == NO)
- setGameRunning(YES);
-}
-
-// called by CCHandlers from chNextTurn
-void clearView() {
- UIWindow *theWindow = (IS_DUALHEAD()) ? [SDLUIKitDelegate sharedAppDelegate].uiwindow : [[UIApplication sharedApplication] keyWindow];
- UIButton *theButton = (UIButton *)[theWindow viewWithTag:CONFIRMATION_TAG];
- UISegmentedControl *theSegment = (UISegmentedControl *)[theWindow viewWithTag:GRENADE_TAG];
-
- [UIView beginAnimations:@"remove button" context:NULL];
- [UIView setAnimationDuration:ANIMATION_DURATION];
- theButton.alpha = 0;
- theSegment.alpha = 0;
- [UIView commitAnimations];
-
- if (theButton)
- [theWindow performSelector:@selector(removeFromSuperview) withObject:theButton afterDelay:ANIMATION_DURATION];
- if (theSegment)
- [theWindow performSelector:@selector(removeFromSuperview) withObject:theSegment afterDelay:ANIMATION_DURATION];
-
- cachedGrenadeTime = 2;
-}
-
-// called by hwengine
-void replayBegan() {
- UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow];
- UIView *blackView = [[UIView alloc] initWithFrame:theWindow.frame];
- blackView.backgroundColor = [UIColor blackColor];
- blackView.alpha = 0.6;
- blackView.tag = REPLAYBLACKVIEW_TAG;
- blackView.exclusiveTouch = NO;
- blackView.multipleTouchEnabled = NO;
- blackView.userInteractionEnabled = NO;
- UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
- indicator.center = theWindow.center;
- [indicator startAnimating];
- [blackView addSubview:indicator];
- [indicator release];
- [theWindow addSubview:blackView];
- [blackView release];
- isReplay = YES;
- stopSpinning();
-}
-
-// called by uGame
-void replayFinished() {
- UIWindow *theWindow = [[UIApplication sharedApplication] keyWindow];
- UIView *blackView = (UIView *)[theWindow viewWithTag:REPLAYBLACKVIEW_TAG];
-
- [UIView beginAnimations:@"removing black" context:NULL];
- [UIView setAnimationDuration:1];
- blackView.alpha = 0;
- [UIView commitAnimations];
- [theWindow performSelector:@selector(removeFromSuperview) withObject:blackView afterDelay:1];
-
- setGameRunning(YES);
- isReplay = NO;
-}
-
@end
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m
--- a/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m Mon Nov 15 12:37:39 2010 +0100
@@ -28,7 +28,6 @@
#import "jumphack.h"
#import "SDL_video.h"
#import "SDL_mixer.h"
-
#import "PascalImports.h"
#import "CommodityFunctions.h"
#import "GameSetup.h"
@@ -148,7 +147,7 @@
refSecondBlackView.alpha = 0;
[UIView commitAnimations];
[refBlackView performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1];
- [refSecondBlackView performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1];
+ [refSecondBlackView performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:2];
}
// overlay with controls, become visible later, with a transparency effect
@@ -164,7 +163,9 @@
else
gameWindow = [[UIApplication sharedApplication] keyWindow];
[gameWindow addSubview:overlayController.view];
- [overlayController release];
+ //[[[gameWindow subviews] objectAtIndex:0] addSubview:overlayController.view];
+ // don't release a controller according to http://developer.apple.com/library/ios/#qa/qa2010/qa1688.html
+ //[overlayController release];
}
// override the direct execution of SDL_main to allow us to implement the frontend (or even using a nib)
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/SavedGamesViewController.m
--- a/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -40,7 +40,18 @@
}
-(void) viewDidLoad {
- self.tableView.backgroundView = nil;
+ if ([self.tableView respondsToSelector:@selector(setBackgroundView:)])
+ self.tableView.backgroundView = nil;
+
+ NSString *imgName;
+ if (IS_IPAD())
+ imgName = @"mediumBackground~ipad.png";
+ else
+ imgName = @"smallerBackground~iphone.png";
+ UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgName];
+ self.view.backgroundColor = [UIColor colorWithPatternImage:img];
+ [img release];
+
[super viewDidLoad];
}
@@ -154,7 +165,7 @@
footer.backgroundColor = [UIColor clearColor];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width*80/100, 100)];
- label.center = CGPointMake(self.tableView.frame.size.width/2,70);
+ label.center = CGPointMake(self.tableView.frame.size.width/2, 70);
label.textAlignment = UITextAlignmentCenter;
label.font = [UIFont systemFontOfSize:16];
label.textColor = [UIColor lightGrayColor];
@@ -167,6 +178,10 @@
return [footer autorelease];
}
+-(CGFloat) tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
+ return 125;
+}
+
-(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
[(EditableCellView *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:0]] save:nil];
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/SavedGamesViewController.xib
--- a/project_files/HedgewarsMobile/Classes/SavedGamesViewController.xib Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,619 +0,0 @@
-
-
-
- 1024
- 10F569
- 788
- 1038.29
- 461.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 117
-
-
- YES
-
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBIPadFramework
-
-
- IBFirstResponder
- IBIPadFramework
-
-
-
- 292
-
- YES
-
-
- 292
- {768, 768}
-
- NO
- IBIPadFramework
-
- NSImage
- background_med.png
-
-
-
-
- 290
- {768, 44}
-
- NO
- 458912
- IBIPadFramework
-
- YES
-
- IBIPadFramework
- 1
-
- 0
-
-
- IBIPadFramework
-
- 5
-
-
- Clear All
- IBIPadFramework
- 1
-
-
-
- IBIPadFramework
-
- 2
-
-
-
-
-
- 274
- {{0, 44}, {768, 724}}
-
-
- 1
- MCAwIDAgMAA
-
- YES
- IBIPadFramework
- YES
- 1
- 2
- 0
- YES
- 44
- 10
- 10
-
-
- {768, 768}
-
-
- 3
- MQA
-
- NO
-
- 3
-
- IBIPadFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 3
-
-
-
- buttonPressed:
-
-
-
- 6
-
-
-
- dataSource
-
-
-
- 8
-
-
-
- delegate
-
-
-
- 9
-
-
-
- tableView
-
-
-
- 10
-
-
-
- toggleEdit:
-
-
-
- 14
-
-
-
- clearAll:
-
-
-
- 16
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 2
-
-
- YES
-
-
-
-
-
-
-
- 4
-
-
- YES
-
-
-
-
-
-
-
-
- 5
-
-
-
-
- 7
-
-
-
-
- 11
-
-
-
-
- 12
-
-
-
-
- 13
-
-
-
-
- 15
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 11.IBPluginDependency
- 12.IBPluginDependency
- 13.IBPluginDependency
- 15.IBPluginDependency
- 2.IBEditorWindowLastContentRect
- 2.IBPluginDependency
- 4.IBPluginDependency
- 5.IBPluginDependency
- 7.IBPluginDependency
-
-
- YES
- SavedGamesViewController
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- {{467, 276}, {768, 768}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 16
-
-
-
- YES
-
- SavedGamesViewController
- UIViewController
-
- YES
-
- YES
- buttonPressed:
- clearAll:
- toggleEdit:
-
-
- YES
- id
- id
- id
-
-
-
- YES
-
- YES
- buttonPressed:
- clearAll:
- toggleEdit:
-
-
- YES
-
- buttonPressed:
- id
-
-
- clearAll:
- id
-
-
- toggleEdit:
- id
-
-
-
-
- tableView
- UITableView
-
-
- tableView
-
- tableView
- UITableView
-
-
-
- IBProjectSource
- Classes/SavedGamesViewController.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CAAnimation.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CALayer.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIBarButtonItem
- UIBarItem
-
- IBFrameworkSource
- UIKit.framework/Headers/UIBarButtonItem.h
-
-
-
- UIBarItem
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIBarItem.h
-
-
-
- UIImageView
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIImageView.h
-
-
-
- UIResponder
- NSObject
-
-
-
- UIScrollView
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIScrollView.h
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UITableView
- UIScrollView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITableView.h
-
-
-
- UIToolbar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIToolbar.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UIPopoverController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
-
- 0
- IBIPadFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- ../Hedgewars.xcodeproj
- 3
-
- background_med.png
- {768, 768}
-
- 117
-
-
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.m
--- a/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeSettingsViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -20,7 +20,7 @@
#import "SchemeSettingsViewController.h"
-#import "CommodityFunctions.h"
+#import "CreationChamber.h"
#import "SingleSchemeViewController.h"
@implementation SchemeSettingsViewController
@@ -81,12 +81,14 @@
createSchemeNamed([fileName stringByDeletingPathExtension]);
[self.listOfSchemes addObject:fileName];
- [fileName release];
// order the array alphabetically, so schemes will keep their position
[self.listOfSchemes sortUsingSelector:@selector(compare:)];
+ [self.tableView reloadData];
- [self.tableView reloadData];
+ NSInteger index = [self.listOfSchemes indexOfObject:fileName];
+ [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
+ [fileName release];
}
#pragma mark -
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.h Mon Nov 15 12:37:39 2010 +0100
@@ -31,13 +31,16 @@
NSString *selectedScheme;
NSString *selectedWeapon;
+
+ UISwitch *syncSwitch;
}
-@property (nonatomic, retain) NSArray *listOfSchemes;
-@property (nonatomic, retain) NSArray *listOfWeapons;
+@property (nonatomic,retain) NSArray *listOfSchemes;
+@property (nonatomic,retain) NSArray *listOfWeapons;
@property (nonatomic,retain) NSIndexPath *lastIndexPath_sc;
@property (nonatomic,retain) NSIndexPath *lastIndexPath_we;
@property (nonatomic,retain) NSString *selectedScheme;
@property (nonatomic,retain) NSString *selectedWeapon;
+@property (nonatomic,retain) UISwitch *syncSwitch;
@end
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m
--- a/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/SchemeWeaponConfigViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -24,7 +24,7 @@
#import "SDL_uikitappdelegate.h"
@implementation SchemeWeaponConfigViewController
-@synthesize listOfSchemes, listOfWeapons, lastIndexPath_sc, lastIndexPath_we, selectedScheme, selectedWeapon;
+@synthesize listOfSchemes, listOfWeapons, lastIndexPath_sc, lastIndexPath_we, selectedScheme, selectedWeapon, syncSwitch;
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
@@ -41,8 +41,20 @@
self.selectedScheme = nil;
self.selectedWeapon = nil;
- [self.tableView setBackgroundView:nil];
- self.view.backgroundColor = [UIColor clearColor];
+ if ([self.tableView respondsToSelector:@selector(setBackgroundView:)]) {
+ if (IS_IPAD())
+ [self.tableView setBackgroundView:nil];
+ else {
+ UIImage *backgroundImage = [[UIImage alloc] initWithContentsOfFile:@"backgroundCenter.png"];
+ UIImageView *background = [[UIImageView alloc] initWithImage:backgroundImage];
+ [backgroundImage release];
+ [self.tableView setBackgroundView:background];
+ [background release];
+ }
+ } else {
+ self.view.backgroundColor = [UIColor blackColor];
+ }
+
self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
@@ -69,27 +81,30 @@
#pragma mark -
#pragma mark Table view data source
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
- return 2;
+ return 3;
}
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section == 0)
return [self.listOfSchemes count];
+ else if (section == 1)
+ return [self.listOfWeapons count];
else
- return [self.listOfWeapons count];
+ return 1;
}
// Customize the appearance of table view cells.
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
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 ([indexPath section] == 0) {
+ if (0 == section) {
cell.textLabel.text = [[self.listOfSchemes objectAtIndex:row] stringByDeletingPathExtension];
NSString *str = [NSString stringWithFormat:@"%@/%@",SCHEMES_DIRECTORY(),[self.listOfSchemes objectAtIndex:row]];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
@@ -101,7 +116,7 @@
[checkbox release];
self.lastIndexPath_sc = indexPath;
}
- } else {
+ } else if (1 == section) {
cell.textLabel.text = [[self.listOfWeapons objectAtIndex:row] stringByDeletingPathExtension];
NSString *str = [NSString stringWithFormat:@"%@/%@",WEAPONS_DIRECTORY(),[self.listOfWeapons objectAtIndex:row]];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:str];
@@ -113,8 +128,19 @@
[checkbox release];
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 = 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 blackColor];
cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
cell.detailTextLabel.textColor = [UIColor whiteColor];
@@ -130,8 +156,11 @@
NSString *text;
if (section == 0)
text = NSLocalizedString(@"Schemes",@"");
+ else if (section == 1)
+ text = NSLocalizedString(@"Weapons",@"");
else
- text = NSLocalizedString(@"Weapons",@"");
+ text = NSLocalizedString(@"Options",@"");
+
UILabel *theLabel = createBlueLabel(text, frame);
theLabel.center = CGPointMake(self.view.frame.size.width/2, 20);
@@ -165,6 +194,17 @@
if ([indexPath section] == 0) {
self.lastIndexPath_sc = indexPath;
self.selectedScheme = [self.listOfSchemes objectAtIndex:newRow];
+ if (self.syncSwitch.on) {
+ for (NSString *str in self.listOfWeapons) {
+ if ([str isEqualToString:self.selectedScheme]) {
+ int index = [self.listOfSchemes indexOfObject:str];
+ self.selectedWeapon = str;
+ self.lastIndexPath_we = [NSIndexPath indexPathForRow:index inSection:1];
+ [self.tableView reloadData];
+ break;
+ }
+ }
+ }
} else {
self.lastIndexPath_we = indexPath;
self.selectedWeapon = [self.listOfWeapons objectAtIndex:newRow];
@@ -183,6 +223,7 @@
self.lastIndexPath_we = nil;
self.listOfSchemes = nil;
self.listOfWeapons = nil;
+ self.syncSwitch = nil;
MSG_MEMCLEAN();
}
[super didReceiveMemoryWarning];
@@ -195,6 +236,7 @@
self.lastIndexPath_we = nil;
self.selectedScheme = nil;
self.selectedWeapon = nil;
+ self.syncSwitch = nil;
MSG_DIDUNLOAD();
[super viewDidUnload];
}
@@ -207,6 +249,7 @@
[lastIndexPath_we release];
[selectedScheme release];
[selectedWeapon release];
+ [syncSwitch release];
[super dealloc];
}
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m
--- a/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/SingleSchemeViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -28,6 +28,19 @@
#define SLIDER_TAG 54321
#define SWITCH_TAG 67890
+#define checkValueString(detailString,labelSting,sliderRef); \
+ if ([labelSting isEqualToString:@"Turn Time"] && (NSInteger) sliderRef.value == 100) \
+ detailString = @"∞"; \
+ else if ([labelSting isEqualToString:@"Water Rise Amount"] && (NSInteger) sliderRef.value == 100) \
+ detailString = NSLocalizedString(@"Nvr",@"Short for 'Never'"); \
+ else if ([labelSting isEqualToString:@"Crate Drop Turns"] && (NSInteger) sliderRef.value == 0) \
+ detailString = NSLocalizedString(@"Nvr",@"Short for 'Never'"); \
+ else if ([labelSting isEqualToString:@"Mines Time"] && (NSInteger) sliderRef.value == -1) \
+ detailString = NSLocalizedString(@"Rnd",@"Short for 'Random'"); \
+ else \
+ detailString = [NSString stringWithFormat:@"%d",(NSInteger) sliderRef.value];
+
+
@implementation SingleSchemeViewController
@synthesize schemeName, schemeDictionary, basicSettingList, gameModifierArray;
@@ -140,6 +153,7 @@
if (row == 0) {
editableCell.textField.text = self.schemeName;
+ editableCell.textField.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
} else {
editableCell.minimumCharacters = 0;
editableCell.textField.font = [UIFont systemFontOfSize:[UIFont labelFontSize]];
@@ -161,8 +175,6 @@
offset = 50;
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(offset+260, 12, offset+150, 23)];
- slider.maximumValue = [[detail objectForKey:@"max"] floatValue];
- slider.minimumValue = [[detail objectForKey:@"min"] floatValue];
[slider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged];
[cell.contentView addSubview:slider];
[slider release];
@@ -191,14 +203,14 @@
}
}
cellSlider.tag = SLIDER_TAG + row;
+ cellSlider.maximumValue = [[detail objectForKey:@"max"] floatValue];
+ cellSlider.minimumValue = [[detail objectForKey:@"min"] floatValue];
cellSlider.value = [[[self.schemeDictionary objectForKey:@"basic"] objectAtIndex:row] floatValue];
+ NSString *prestring = nil;
+ checkValueString(prestring,cellLabel.text,cellSlider);
+
// forced to use this weird format otherwise the label disappears when size of the text is bigger than the original
- NSString *prestring = [NSString stringWithFormat:@"%d",(NSInteger) cellSlider.value];
- // turntime 100 means unlimited time turns (set in GameSetup)
- if (row == 1 && (NSInteger) cellSlider.value == 100)
- prestring = @"∞";
-
while ([prestring length] <= 4)
prestring = [NSString stringWithFormat:@" %@",prestring];
cell.detailTextLabel.text = prestring;
@@ -249,13 +261,13 @@
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:theSlider.tag-SLIDER_TAG inSection:1];
// get its cell
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
- // grab the associated label
- UILabel *label = (UILabel *)cell.detailTextLabel;
+ // grab the associated labels
+ UILabel *detailLabel = (UILabel *)cell.detailTextLabel;
+ UILabel *cellLabel = (UILabel *)[cell.contentView viewWithTag:LABEL_TAG];
// modify it
- if ([indexPath row] == 1 && [indexPath section] == 1 && (NSInteger) theSlider.value == 100)
- label.text = @"∞";
- else
- label.text = [NSString stringWithFormat:@"%d",(NSInteger) theSlider.value];
+
+ checkValueString(detailLabel.text,cellLabel.text,theSlider);
+
// save changes in the main array
NSMutableArray *array = [self.schemeDictionary objectForKey:@"basic"];
[array replaceObjectAtIndex:theSlider.tag-SLIDER_TAG withObject:[NSNumber numberWithInt:(NSInteger) theSlider.value]];
@@ -310,6 +322,13 @@
return sectionTitle;
}
+-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
+ if ([indexPath section] == 2)
+ return 56;
+ else
+ return self.tableView.rowHeight;
+}
+
#pragma mark -
#pragma mark Memory management
-(void) didReceiveMemoryWarning {
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m
--- a/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/SingleWeaponViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -150,6 +150,7 @@
if (row == 0) {
editableCell.textField.text = self.weaponName;
+ editableCell.textField.font = [UIFont boldSystemFontOfSize:[UIFont labelFontSize]];
} else {
editableCell.minimumCharacters = 0;
editableCell.textField.font = [UIFont systemFontOfSize:[UIFont labelFontSize]];
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/SupportViewController.h
--- a/project_files/HedgewarsMobile/Classes/SupportViewController.h Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/SupportViewController.h Mon Nov 15 12:37:39 2010 +0100
@@ -21,10 +21,10 @@
#import
-@interface SupportViewController : UIViewController {
-
+@interface SupportViewController : UITableViewController {
+ NSArray *waysToSupport;
}
--(IBAction) buttonPressed:(id) sender;
+@property (nonatomic, retain) NSArray *waysToSupport;
@end
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/SupportViewController.m
--- a/project_files/HedgewarsMobile/Classes/SupportViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/SupportViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -23,30 +23,157 @@
#import "CommodityFunctions.h"
@implementation SupportViewController
+@synthesize waysToSupport;
--(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return rotationManager(interfaceOrientation);
}
--(void) didReceiveMemoryWarning {
- // Releases the view if it doesn't have a superview.
+#pragma mark -
+#pragma mark View lifecycle
+-(void) viewDidLoad {
+ [super viewDidLoad];
+
+ NSArray *array = [[NSArray alloc] initWithObjects:
+ NSLocalizedString(@"Leave a positive review on iTunes!",@""),
+ NSLocalizedString(@"Join us on Facebook",@""),
+ NSLocalizedString(@"Follow on Twitter",@""),
+ NSLocalizedString(@"Visit website",@""),
+ NSLocalizedString(@"Chat with us in IRC",@""),
+ nil];
+ self.waysToSupport = array;
+ [array release];
+
+ self.tableView.rowHeight = 50;
+}
+
+#pragma mark -
+#pragma mark Table view data source
+-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
+ return 2;
+}
+
+-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ if (section == 0)
+ return 1;
+ else
+ return [self.waysToSupport count] - 1;
+}
+
+-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+ static NSString *CellIdentifier = @"Cell";
+ NSInteger row = [indexPath row];
+ NSInteger section = [indexPath section];
+
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil)
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+
+ NSString *rowString = [self.waysToSupport objectAtIndex:(row + section)];
+ cell.textLabel.text = rowString;
+
+ if (section == 0) {
+ cell.textLabel.textAlignment = UITextAlignmentCenter;
+ cell.imageView.image = nil;
+ } else {
+ cell.textLabel.textAlignment = UITextAlignmentLeft;
+ NSString *imgString = nil;
+ switch (row) {
+ case 0:
+ imgString = @"fb.png";
+ break;
+ case 1:
+ imgString = @"tw.png";
+ break;
+ case 2:
+ imgString = @"Icon-Small.png";
+ break;
+ case 3:
+ imgString = @"irc.png";
+ break;
+ default:
+ DLog(@"No way");
+ break;
+ }
+
+ UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgString];
+ cell.imageView.image = img;
+ [img release];
+ }
+
+ return cell;
+}
+
+#pragma mark -
+#pragma mark Table view delegate
+-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+ NSString *urlString = nil;
+ if ([indexPath section] == 0)
+ urlString = @"http://itunes.apple.com/us/app/hedgewars/id391234866?affC=QQABAAAAHgAFasEiWjVwUGZOc3k1VGctQkRJazlacXhUclpBTVpiU2xteVdfUQ%3D%3D#&mt=8";
+ else
+ switch ([indexPath row]) {
+ case 0:
+ urlString = @"http://www.facebook.com/Hedgewars";
+ break;
+ case 1:
+ urlString = @"http://twitter.com/hedgewars";
+ break;
+ case 2:
+ urlString = @"http://www.hedgewars.org";
+ break;
+ case 3:
+ urlString = @"http://webchat.freenode.net/?channels=hedgewars";
+ break;
+ default:
+ DLog(@"No way");
+ break;
+ }
+ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
+}
+
+-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger) section {
+ if (section == 1) {
+ UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 240)];
+ UIImage *img = [[UIImage alloc] initWithContentsOfFile:@"surprise.png"];
+ UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
+ [img release];
+ imgView.center = CGPointMake(self.tableView.frame.size.width/2, 120);
+ [footer addSubview:imgView];
+ [imgView release];
+
+ UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 20)];
+ label.textAlignment = UITextAlignmentCenter;
+ label.text = @" ♥ THANK YOU ♥ ";
+ label.backgroundColor = [UIColor clearColor];
+ label.center = CGPointMake(self.tableView.frame.size.width/2, 250);
+ [footer addSubview:label];
+ [label release];
+
+ return [footer autorelease];
+ } else
+ return nil;
+}
+
+-(CGFloat) tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
+ // image height + label height
+ return 265;
+}
+
+#pragma mark -
+#pragma mark Memory management
+-(void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
- // Release any cached data, images, etc that aren't in use.
}
-(void) viewDidUnload {
+ self.waysToSupport = nil;
+ MSG_DIDUNLOAD();
[super viewDidUnload];
- // Release any retained subviews of the main view.
- // e.g. self.myOutlet = nil;
}
-(void) dealloc {
+ [self.waysToSupport release];
[super dealloc];
}
--(IBAction) buttonPressed:(id) sender {
- NSString *reviewURL = @"http://itunes.apple.com/us/app/hedgewars/id391234866?affC=QQABAAAAHgAFasEiWjVwUGZOc3k1VGctQkRJazlacXhUclpBTVpiU2xteVdfUQ%3D%3D#&mt=8";
- [[UIApplication sharedApplication] openURL:[NSURL URLWithString:reviewURL]];
-}
-
@end
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/SupportViewController.xib
--- a/project_files/HedgewarsMobile/Classes/SupportViewController.xib Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,561 +0,0 @@
-
-
-
- 1024
- 10F569
- 788
- 1038.29
- 461.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 117
-
-
- YES
-
-
-
- YES
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- IBFilesOwner
- IBIPadFramework
-
-
- IBFirstResponder
- IBIPadFramework
-
-
-
- 292
-
- YES
-
-
- 292
- {{94, 214}, {514, 21}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- If you like this app, please leave a positive review on the AppStore!
-
- 1
- MCAwIDAAA
-
-
- 1
- 10
- 1
-
-
-
- 292
- {{231, 20}, {240, 160}}
-
- NO
- NO
- IBIPadFramework
-
- NSImage
- denied.png
-
-
-
-
- 292
- {{191, 363}, {320, 240}}
-
- NO
- NO
- IBIPadFramework
-
- NSImage
- surpise.png
-
-
-
-
- 292
- {{293, 269}, {116, 37}}
-
- NO
- IBIPadFramework
- 0
- 0
-
- Helvetica-Bold
- 15
- 16
-
- 1
- Open iTunes
-
- 3
- MQA
-
-
- 1
- MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA
-
-
- 3
- MC41AA
-
-
-
-
- 292
- {{274, 611}, {153, 37}}
-
- NO
- YES
- 7
- NO
- IBIPadFramework
- ♥ THANK YOU ♥
-
- Helvetica-Bold
- 17
- 16
-
-
-
- 1
- 10
- 1
-
-
- {703, 724}
-
-
- 3
- MQA
-
- 2
-
-
- NO
-
- NO
-
-
- 3
-
-
- IBUISplitViewController
-
- IBUISplitViewControllerContentSizeLocation
- IBUISplitViewControllerContentSizeLocationDetail
-
- IBIPadFramework
- Detail
-
- IBIPadFramework
-
-
-
-
- YES
-
-
- view
-
-
-
- 3
-
-
-
- buttonPressed:
-
-
- 7
-
- 11
-
-
-
-
- YES
-
- 0
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 2
-
-
- YES
-
-
-
-
-
-
-
-
-
- 4
-
-
-
-
- 5
-
-
-
-
- 6
-
-
-
-
- 7
-
-
-
-
- 12
-
-
-
-
-
-
- YES
-
- YES
- -1.CustomClassName
- -2.CustomClassName
- 12.IBPluginDependency
- 2.IBEditorWindowLastContentRect
- 2.IBPluginDependency
- 4.IBPluginDependency
- 5.IBPluginDependency
- 6.IBPluginDependency
- 7.IBPluginDependency
-
-
- YES
- SupportViewController
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- {{562, 125}, {703, 768}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
- YES
-
-
- YES
-
-
-
-
- YES
-
-
- YES
-
-
-
- 12
-
-
-
- YES
-
- SupportViewController
- UIViewController
-
- buttonPressed:
- id
-
-
- buttonPressed:
-
- buttonPressed:
- id
-
-
-
- IBProjectSource
- Classes/SupportViewController.h
-
-
-
-
- YES
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSError.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSFileManager.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueCoding.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyValueObserving.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSKeyedArchiver.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSObject.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSRunLoop.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSThread.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURL.h
-
-
-
- NSObject
-
- IBFrameworkSource
- Foundation.framework/Headers/NSURLConnection.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CAAnimation.h
-
-
-
- NSObject
-
- IBFrameworkSource
- QuartzCore.framework/Headers/CALayer.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIAccessibility.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UINibLoading.h
-
-
-
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIButton
- UIControl
-
- IBFrameworkSource
- UIKit.framework/Headers/UIButton.h
-
-
-
- UIControl
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIControl.h
-
-
-
- UIImageView
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIImageView.h
-
-
-
- UILabel
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UILabel.h
-
-
-
- UIResponder
- NSObject
-
-
-
- UISearchBar
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchBar.h
-
-
-
- UISearchDisplayController
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UISearchDisplayController.h
-
-
-
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITextField.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UINavigationController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UIPopoverController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UISplitViewController.h
-
-
-
- UIViewController
-
- IBFrameworkSource
- UIKit.framework/Headers/UITabBarController.h
-
-
-
- UIViewController
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIViewController.h
-
-
-
-
- 0
- IBIPadFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- ../Hedgewars.xcodeproj
- 3
-
- YES
-
- YES
- denied.png
- surpise.png
-
-
- YES
- {240, 160}
- {320, 240}
-
-
- 117
-
-
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/TeamConfigViewController.m
--- a/project_files/HedgewarsMobile/Classes/TeamConfigViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/TeamConfigViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -38,9 +38,21 @@
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
self.view.frame = CGRectMake(0, 0, screenSize.height, screenSize.width - 44);
-
- [self.tableView setBackgroundView:nil];
- self.view.backgroundColor = [UIColor clearColor];
+
+ if ([self.tableView respondsToSelector:@selector(setBackgroundView:)]) {
+ if (IS_IPAD())
+ [self.tableView setBackgroundView:nil];
+ else {
+ UIImage *backgroundImage = [[UIImage alloc] initWithContentsOfFile:@"backgroundCenter.png"];
+ UIImageView *background = [[UIImageView alloc] initWithImage:backgroundImage];
+ [backgroundImage release];
+ [self.tableView setBackgroundView:background];
+ [background release];
+ }
+ } else {
+ self.view.backgroundColor = [UIColor blackColor];
+ }
+
self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
@@ -113,7 +125,12 @@
[cell addSubview:squareButton];
[squareButton release];
- UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(12+88+6+36, 10, 103, 25)];
+ NSInteger length;
+ if (IS_IPAD())
+ length = 103;
+ else
+ length = 285;
+ UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(12+88+6+36, 10, length, 25)];
label.textAlignment = UITextAlignmentLeft;
label.minimumFontSize = 11;
label.adjustsFontSizeToFitWidth = YES;
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/TeamSettingsViewController.m
--- a/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/TeamSettingsViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -20,8 +20,8 @@
#import "TeamSettingsViewController.h"
+#import "CreationChamber.h"
#import "SingleTeamViewController.h"
-#import "CommodityFunctions.h"
@implementation TeamSettingsViewController
@synthesize listOfTeams;
@@ -85,12 +85,14 @@
createTeamNamed([fileName stringByDeletingPathExtension]);
[self.listOfTeams addObject:fileName];
- [fileName release];
// order the array alphabetically, so teams will keep their position
[self.listOfTeams sortUsingSelector:@selector(compare:)];
+ [self.tableView reloadData];
- [self.tableView reloadData];
+ NSInteger index = [self.listOfTeams indexOfObject:fileName];
+ [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
+ [fileName release];
}
#pragma mark -
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.m
--- a/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.m Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Classes/WeaponSettingsViewController.m Mon Nov 15 12:37:39 2010 +0100
@@ -20,7 +20,7 @@
#import "WeaponSettingsViewController.h"
-#import "CommodityFunctions.h"
+#import "CreationChamber.h"
#import "SingleWeaponViewController.h"
@implementation WeaponSettingsViewController
@@ -82,12 +82,14 @@
createWeaponNamed([fileName stringByDeletingPathExtension], 0);
[self.listOfWeapons addObject:fileName];
- [fileName release];
// order the array alphabetically, so schemes will keep their position
[self.listOfWeapons sortUsingSelector:@selector(compare:)];
+ [self.tableView reloadData];
- [self.tableView reloadData];
+ NSInteger index = [self.listOfWeapons indexOfObject:fileName];
+ [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
+ [fileName release];
}
#pragma mark -
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj
--- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Mon Nov 15 12:37:39 2010 +0100
@@ -25,11 +25,12 @@
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
28FD15000DC6FC520079059D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD14FF0DC6FC520079059D /* OpenGLES.framework */; };
28FD15080DC6FC5B0079059D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD15070DC6FC5B0079059D /* QuartzCore.framework */; settings = {ATTRIBUTES = (Required, ); }; };
+ 61006F95128DE31F00EBA7F7 /* CreationChamber.m in Sources */ = {isa = PBXBuildFile; fileRef = 61006F94128DE31F00EBA7F7 /* CreationChamber.m */; };
610D5FB21270E2660033333A /* Icon-Small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 61F7A43411E290650040BA66 /* Icon-Small@2x.png */; };
610D5FB31270E26C0033333A /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 61F7A43611E290650040BA66 /* Icon@2x.png */; };
611D9BFB12497E9800008271 /* SavedGamesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 611D9BF912497E9800008271 /* SavedGamesViewController.m */; };
611D9BFC12497E9800008271 /* SavedGamesViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 611D9BFA12497E9800008271 /* SavedGamesViewController.xib */; };
- 611DA031124E2BC500008271 /* background_med.png in Resources */ = {isa = PBXBuildFile; fileRef = 611DA030124E2BC500008271 /* background_med.png */; };
+ 611DA031124E2BC500008271 /* mediumBackground~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 611DA030124E2BC500008271 /* mediumBackground~ipad.png */; };
611DA1D0124E5C6300008271 /* plus.png in Resources */ = {isa = PBXBuildFile; fileRef = 611DA1CF124E5C6300008271 /* plus.png */; };
611E03E711FA747C0077A41E /* libvorbis.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 611E037C11FA74590077A41E /* libvorbis.a */; };
611E0E5111FA92170077A41E /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 611E0E5011FA92130077A41E /* libfreetype.a */; };
@@ -37,11 +38,9 @@
611E0EE811FB20610077A41E /* cornerButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 611E0EE611FB20610077A41E /* cornerButton.png */; };
611E12FF117BBBDA0044B62F /* Entitlements-Development.plist in Resources */ = {isa = PBXBuildFile; fileRef = 611E12FE117BBBDA0044B62F /* Entitlements-Development.plist */; };
611EE974122A9C4100DF6938 /* clickSound.wav in Resources */ = {isa = PBXBuildFile; fileRef = 611EE973122A9C4100DF6938 /* clickSound.wav */; };
- 611EE9D9122AA10A00DF6938 /* backSound.wav in Resources */ = {isa = PBXBuildFile; fileRef = 611EE9D7122AA10A00DF6938 /* backSound.wav */; };
611EE9DA122AA10A00DF6938 /* selSound.wav in Resources */ = {isa = PBXBuildFile; fileRef = 611EE9D8122AA10A00DF6938 /* selSound.wav */; };
- 611EEA7E122B09C200DF6938 /* background_small.png in Resources */ = {isa = PBXBuildFile; fileRef = 611EEA7D122B09C200DF6938 /* background_small.png */; };
611EEAEE122B2A4D00DF6938 /* HelpPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 611EEAEC122B2A4D00DF6938 /* HelpPageViewController.m */; };
- 611EEAEF122B2A4D00DF6938 /* HelpPageLobbyViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 611EEAED122B2A4D00DF6938 /* HelpPageLobbyViewController.xib */; };
+ 611EEAEF122B2A4D00DF6938 /* HelpPageLobbyViewController-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 611EEAED122B2A4D00DF6938 /* HelpPageLobbyViewController-iPad.xib */; };
611EEBC1122B34A800DF6938 /* helpingame.png in Resources */ = {isa = PBXBuildFile; fileRef = 611EEBC0122B34A800DF6938 /* helpingame.png */; };
611EEBC4122B355700DF6938 /* helpbottom.png in Resources */ = {isa = PBXBuildFile; fileRef = 611EEBC2122B355700DF6938 /* helpbottom.png */; };
611EEBC5122B355700DF6938 /* helpright.png in Resources */ = {isa = PBXBuildFile; fileRef = 611EEBC3122B355700DF6938 /* helpright.png */; };
@@ -53,6 +52,8 @@
61370653117B1D50004EE44A /* Entitlements-Distribution.plist in Resources */ = {isa = PBXBuildFile; fileRef = 61370652117B1D50004EE44A /* Entitlements-Distribution.plist */; };
61399013125D19C0003C2DC0 /* uMobile.pas in Sources */ = {isa = PBXBuildFile; fileRef = 61399012125D19C0003C2DC0 /* uMobile.pas */; };
6147DAD31253DCDE0010357E /* savesButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 6147DAD21253DCDE0010357E /* savesButton.png */; };
+ 614AE65D127D090A0070BF5F /* smallerBackground~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 614AE65A127D090A0070BF5F /* smallerBackground~ipad.png */; };
+ 614AE65E127D090A0070BF5F /* smallerBackground~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = 614AE65B127D090A0070BF5F /* smallerBackground~iphone.png */; };
61536DF411CEAE7100D87A7E /* GameConfigViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165924A11CA9CB400D6E256 /* GameConfigViewController.xib */; };
615AD96212073B4D00F2FF04 /* startGameButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 615AD96112073B4D00F2FF04 /* startGameButton.png */; };
615AD9E9120764CA00F2FF04 /* backButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 615AD9E8120764CA00F2FF04 /* backButton.png */; };
@@ -126,33 +127,39 @@
617989BE114AB47A00BA94A9 /* libSDL_net.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 617989BB114AB47500BA94A9 /* libSDL_net.a */; };
61798A14114AB65C00BA94A9 /* libSDL_ttf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 61798A13114AB65600BA94A9 /* libSDL_ttf.a */; };
61799289114AE08700BA94A9 /* Data in Resources */ = {isa = PBXBuildFile; fileRef = 61798A5E114AE08600BA94A9 /* Data */; };
- 6183D83E11E2BCE200A88903 /* LI-ipad-Landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 6183D83C11E2BCE200A88903 /* LI-ipad-Landscape.png */; };
- 61842B24122B619D0096E335 /* HelpPageInGameViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 61842B23122B619D0096E335 /* HelpPageInGameViewController.xib */; };
+ 61808A4B128C901B005D0E2F /* startButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 61808A4A128C901B005D0E2F /* startButton.png */; };
+ 61808A5D128C930A005D0E2F /* backSound.wav in Resources */ = {isa = PBXBuildFile; fileRef = 611EE9D7122AA10A00DF6938 /* backSound.wav */; };
+ 61808A6F128C94E1005D0E2F /* backgroundTop.png in Resources */ = {isa = PBXBuildFile; fileRef = 61808A6E128C94E1005D0E2F /* backgroundTop.png */; };
+ 6183D83E11E2BCE200A88903 /* Default-ipad-Landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 6183D83C11E2BCE200A88903 /* Default-ipad-Landscape.png */; };
+ 61842B24122B619D0096E335 /* HelpPageInGameViewController-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 61842B23122B619D0096E335 /* HelpPageInGameViewController-iPad.xib */; };
61842B3E122B65BD0096E335 /* helpabove.png in Resources */ = {isa = PBXBuildFile; fileRef = 61842B3D122B65BD0096E335 /* helpabove.png */; };
61842B40122B66280096E335 /* helpleft.png in Resources */ = {isa = PBXBuildFile; fileRef = 61842B3F122B66280096E335 /* helpleft.png */; };
6187AEBD120781B900B31A27 /* Settings in Resources */ = {isa = PBXBuildFile; fileRef = 6187AEA5120781B900B31A27 /* Settings */; };
6199E81612463EA800DADF8C /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6199E81512463EA800DADF8C /* CFNetwork.framework */; };
6199E81A12463EC400DADF8C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6199E81912463EC400DADF8C /* SystemConfiguration.framework */; };
6199E839124647DE00DADF8C /* SupportViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6199E837124647DE00DADF8C /* SupportViewController.m */; };
- 6199E83A124647DE00DADF8C /* SupportViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6199E838124647DE00DADF8C /* SupportViewController.xib */; };
- 6199E86D12464A8E00DADF8C /* surpise.png in Resources */ = {isa = PBXBuildFile; fileRef = 6199E86C12464A8E00DADF8C /* surpise.png */; };
+ 6199E86D12464A8E00DADF8C /* surprise.png in Resources */ = {isa = PBXBuildFile; fileRef = 6199E86C12464A8E00DADF8C /* surprise.png */; };
619C5ACF124F7DE200D041AE /* libLua.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 619C5ACE124F7DDF00D041AE /* libLua.a */; };
619C5AF4124F7E3100D041AE /* LuaPas.pas in Sources */ = {isa = PBXBuildFile; fileRef = 619C5AF3124F7E3100D041AE /* LuaPas.pas */; };
619C5BA2124FA59000D041AE /* MapPreviewButtonView.m in Sources */ = {isa = PBXBuildFile; fileRef = 619C5BA1124FA59000D041AE /* MapPreviewButtonView.m */; };
61A1188511683A8C00359010 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61A117FE1168322700359010 /* CoreGraphics.framework */; settings = {ATTRIBUTES = (Required, ); }; };
61A118D311683CD100359010 /* HedgewarsTitle.png in Resources */ = {isa = PBXBuildFile; fileRef = 611FD9CB1155A28C00C2203D /* HedgewarsTitle.png */; };
61A670BE12747D8900B06CE7 /* borderBottom.png in Resources */ = {isa = PBXBuildFile; fileRef = 61F903E911DF58550068B24D /* borderBottom.png */; };
- 61A670BF12747D9100B06CE7 /* borderTop.png in Resources */ = {isa = PBXBuildFile; fileRef = 61F903EA11DF58550068B24D /* borderTop.png */; };
61A670C012747D9B00B06CE7 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 6183D83D11E2BCE200A88903 /* Default.png */; };
61A670C112747DB900B06CE7 /* MainMenuViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165924C11CA9CB400D6E256 /* MainMenuViewController-iPhone.xib */; };
61A670C212747DBD00B06CE7 /* MapConfigViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165924E11CA9CB400D6E256 /* MapConfigViewController-iPhone.xib */; };
- 61A670FA12747E0000B06CE7 /* playButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 61F903EC11DF58550068B24D /* playButton.png */; };
61A670FB12747E0D00B06CE7 /* title_small.png in Resources */ = {isa = PBXBuildFile; fileRef = 619C09E911E8B8D600F1DF16 /* title_small.png */; };
61A6710612747E4000B06CE7 /* backgroundCenter.png in Resources */ = {isa = PBXBuildFile; fileRef = 61F903E511DF58550068B24D /* backgroundCenter.png */; };
61B3D71C11EA6F2700EC7420 /* uKeys.pas in Sources */ = {isa = PBXBuildFile; fileRef = 617987FE114AA34C00BA94A9 /* uKeys.pas */; };
61C079E411F35A300072BF46 /* EditableCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 61C079E311F35A300072BF46 /* EditableCellView.m */; };
+ 61D205A1127CDD1100ABD83E /* ObjcExports.m in Sources */ = {isa = PBXBuildFile; fileRef = 61D205A0127CDD1100ABD83E /* ObjcExports.m */; };
+ 61D3D2A51290E03A003CE7C3 /* irc.png in Resources */ = {isa = PBXBuildFile; fileRef = 61D3D2A41290E03A003CE7C3 /* irc.png */; };
61DE8F221257EB1100B80214 /* AmmoMenuViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 61DE8F211257EB1100B80214 /* AmmoMenuViewController.m */; };
+ 61DF0EDC1284DF2300F3F10B /* HelpPageLobbyViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 61DF0EDB1284DF2300F3F10B /* HelpPageLobbyViewController-iPhone.xib */; };
+ 61DF0F211284F72A00F3F10B /* HelpPageInGameViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 61DF0F201284F72A00F3F10B /* HelpPageInGameViewController-iPhone.xib */; };
61E1F4F811D004240016A5AA /* adler32.pas in Sources */ = {isa = PBXBuildFile; fileRef = 61E1F4F711D004240016A5AA /* adler32.pas */; };
+ 61E2F7441283752C00E12521 /* fb.png in Resources */ = {isa = PBXBuildFile; fileRef = 61E2F7421283752C00E12521 /* fb.png */; };
+ 61E2F7451283752C00E12521 /* tw.png in Resources */ = {isa = PBXBuildFile; fileRef = 61E2F7431283752C00E12521 /* tw.png */; };
61EBA62A11DFF2BC0048B68A /* title.png in Resources */ = {isa = PBXBuildFile; fileRef = 61EBA62811DFF2BC0048B68A /* title.png */; };
61EBA62D11DFF3310048B68A /* backgroundAndTitle.png in Resources */ = {isa = PBXBuildFile; fileRef = 61EBA62C11DFF3310048B68A /* backgroundAndTitle.png */; };
61EF920E11DF57AC003441C4 /* arrowDown.png in Resources */ = {isa = PBXBuildFile; fileRef = 61EF920511DF57AC003441C4 /* arrowDown.png */; };
@@ -725,10 +732,12 @@
28FD14FF0DC6FC520079059D /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
28FD15070DC6FC5B0079059D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
32CA4F630368D1EE00C91783 /* Hedgewars_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Hedgewars_Prefix.pch; sourceTree = ""; };
+ 61006F93128DE31F00EBA7F7 /* CreationChamber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CreationChamber.h; path = Classes/CreationChamber.h; sourceTree = ""; };
+ 61006F94128DE31F00EBA7F7 /* CreationChamber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CreationChamber.m; path = Classes/CreationChamber.m; sourceTree = ""; };
611D9BF812497E9800008271 /* SavedGamesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SavedGamesViewController.h; sourceTree = ""; };
611D9BF912497E9800008271 /* SavedGamesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SavedGamesViewController.m; sourceTree = ""; };
- 611D9BFA12497E9800008271 /* SavedGamesViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SavedGamesViewController.xib; sourceTree = ""; };
- 611DA030124E2BC500008271 /* background_med.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = background_med.png; path = Resources/Overlay/background_med.png; sourceTree = ""; };
+ 611D9BFA12497E9800008271 /* SavedGamesViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = SavedGamesViewController.xib; path = ../Resources/SavedGamesViewController.xib; sourceTree = ""; };
+ 611DA030124E2BC500008271 /* mediumBackground~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "mediumBackground~ipad.png"; path = "Resources/Overlay/mediumBackground~ipad.png"; sourceTree = ""; };
611DA1CF124E5C6300008271 /* plus.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = plus.png; path = Resources/Overlay/plus.png; sourceTree = ""; };
611E02EC11FA74580077A41E /* cocos2d-iphone.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "cocos2d-iphone.xcodeproj"; path = "../../../Library/cocos2d/cocos2d-iphone.xcodeproj"; sourceTree = SOURCE_ROOT; };
611E0E4B11FA92130077A41E /* freetype.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = freetype.xcodeproj; path = "../../../Library/freetype/Xcode-iPhoneOS/freetype.xcodeproj"; sourceTree = SOURCE_ROOT; };
@@ -738,10 +747,9 @@
611EE973122A9C4100DF6938 /* clickSound.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = clickSound.wav; path = Resources/clickSound.wav; sourceTree = ""; };
611EE9D7122AA10A00DF6938 /* backSound.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = backSound.wav; path = Resources/backSound.wav; sourceTree = ""; };
611EE9D8122AA10A00DF6938 /* selSound.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = selSound.wav; path = Resources/selSound.wav; sourceTree = ""; };
- 611EEA7D122B09C200DF6938 /* background_small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = background_small.png; path = Resources/Overlay/background_small.png; sourceTree = ""; };
611EEAEB122B2A4D00DF6938 /* HelpPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HelpPageViewController.h; sourceTree = ""; };
611EEAEC122B2A4D00DF6938 /* HelpPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HelpPageViewController.m; sourceTree = ""; };
- 611EEAED122B2A4D00DF6938 /* HelpPageLobbyViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HelpPageLobbyViewController.xib; sourceTree = ""; };
+ 611EEAED122B2A4D00DF6938 /* HelpPageLobbyViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "HelpPageLobbyViewController-iPad.xib"; path = "../Resources/HelpPageLobbyViewController-iPad.xib"; sourceTree = ""; };
611EEBC0122B34A800DF6938 /* helpingame.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = helpingame.png; path = Resources/Overlay/helpingame.png; sourceTree = ""; };
611EEBC2122B355700DF6938 /* helpbottom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = helpbottom.png; path = Resources/Overlay/helpbottom.png; sourceTree = ""; };
611EEBC3122B355700DF6938 /* helpright.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = helpright.png; path = Resources/Overlay/helpright.png; sourceTree = ""; };
@@ -754,6 +762,9 @@
61370652117B1D50004EE44A /* Entitlements-Distribution.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Entitlements-Distribution.plist"; sourceTree = ""; };
61399012125D19C0003C2DC0 /* uMobile.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uMobile.pas; path = ../../hedgewars/uMobile.pas; sourceTree = SOURCE_ROOT; };
6147DAD21253DCDE0010357E /* savesButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = savesButton.png; path = Resources/savesButton.png; sourceTree = ""; };
+ 614AE659127D090A0070BF5F /* smallerBackground@2x-iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "smallerBackground@2x-iphone.png"; path = "Resources/Overlay/smallerBackground@2x-iphone.png"; sourceTree = ""; };
+ 614AE65A127D090A0070BF5F /* smallerBackground~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "smallerBackground~ipad.png"; path = "Resources/Overlay/smallerBackground~ipad.png"; sourceTree = ""; };
+ 614AE65B127D090A0070BF5F /* smallerBackground~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "smallerBackground~iphone.png"; path = "Resources/Overlay/smallerBackground~iphone.png"; sourceTree = ""; };
614E333D11DE9A93009DBA4E /* VGSHandlers.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = VGSHandlers.inc; path = ../../hedgewars/VGSHandlers.inc; sourceTree = SOURCE_ROOT; };
615AD96112073B4D00F2FF04 /* startGameButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = startGameButton.png; path = "Resources/Frontend-iPad/startGameButton.png"; sourceTree = ""; };
615AD9E8120764CA00F2FF04 /* backButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = backButton.png; path = "Resources/Frontend-iPad/backButton.png"; sourceTree = ""; };
@@ -867,9 +878,11 @@
617989B3114AB47500BA94A9 /* SDL_net.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL_net.xcodeproj; path = "../../../Library/SDL-1.3/SDL_net/Xcode-iPhoneOS/SDL_net.xcodeproj"; sourceTree = SOURCE_ROOT; };
61798A0B114AB65600BA94A9 /* SDL_ttf.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL_ttf.xcodeproj; path = "../../../Library/SDL-1.3/SDL_ttf/Xcode-iPhoneOS/SDL_ttf.xcodeproj"; sourceTree = SOURCE_ROOT; };
61798A5E114AE08600BA94A9 /* Data */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Data; sourceTree = ""; };
- 6183D83C11E2BCE200A88903 /* LI-ipad-Landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "LI-ipad-Landscape.png"; path = "Resources/Icons/LI-ipad-Landscape.png"; sourceTree = ""; };
+ 61808A4A128C901B005D0E2F /* startButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = startButton.png; path = "Resources/Frontend-iPhone/startButton.png"; sourceTree = ""; };
+ 61808A6E128C94E1005D0E2F /* backgroundTop.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = backgroundTop.png; path = "Resources/Frontend-iPhone/backgroundTop.png"; sourceTree = ""; };
+ 6183D83C11E2BCE200A88903 /* Default-ipad-Landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default-ipad-Landscape.png"; path = "Resources/Icons/Default-ipad-Landscape.png"; sourceTree = ""; };
6183D83D11E2BCE200A88903 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Default.png; path = Resources/Icons/Default.png; sourceTree = ""; };
- 61842B23122B619D0096E335 /* HelpPageInGameViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HelpPageInGameViewController.xib; sourceTree = ""; };
+ 61842B23122B619D0096E335 /* HelpPageInGameViewController-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "HelpPageInGameViewController-iPad.xib"; path = "../Resources/HelpPageInGameViewController-iPad.xib"; sourceTree = ""; };
61842B3D122B65BD0096E335 /* helpabove.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = helpabove.png; path = Resources/Overlay/helpabove.png; sourceTree = ""; };
61842B3F122B66280096E335 /* helpleft.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = helpleft.png; path = Resources/Overlay/helpleft.png; sourceTree = ""; };
618736B8118CA28600123B23 /* GearDrawing.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = GearDrawing.inc; path = ../../hedgewars/GearDrawing.inc; sourceTree = SOURCE_ROOT; };
@@ -878,8 +891,7 @@
6199E81912463EC400DADF8C /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
6199E836124647DE00DADF8C /* SupportViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SupportViewController.h; sourceTree = ""; };
6199E837124647DE00DADF8C /* SupportViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SupportViewController.m; sourceTree = ""; };
- 6199E838124647DE00DADF8C /* SupportViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SupportViewController.xib; sourceTree = ""; };
- 6199E86C12464A8E00DADF8C /* surpise.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = surpise.png; path = Resources/surpise.png; sourceTree = ""; };
+ 6199E86C12464A8E00DADF8C /* surprise.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = surprise.png; path = Resources/surprise.png; sourceTree = ""; };
619C09E911E8B8D600F1DF16 /* title_small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = title_small.png; path = "Resources/Frontend-iPhone/title_small.png"; sourceTree = ""; };
619C5AC0124F7DDF00D041AE /* Lua.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Lua.xcodeproj; path = ../../../Library/Lua/Lua.xcodeproj; sourceTree = SOURCE_ROOT; };
619C5AF3124F7E3100D041AE /* LuaPas.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = LuaPas.pas; path = ../../hedgewars/LuaPas.pas; sourceTree = SOURCE_ROOT; };
@@ -888,9 +900,16 @@
61A117FE1168322700359010 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
61C079E211F35A300072BF46 /* EditableCellView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditableCellView.h; sourceTree = ""; };
61C079E311F35A300072BF46 /* EditableCellView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EditableCellView.m; sourceTree = ""; };
+ 61D2059F127CDD1100ABD83E /* ObjcExports.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ObjcExports.h; path = Classes/ObjcExports.h; sourceTree = ""; };
+ 61D205A0127CDD1100ABD83E /* ObjcExports.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ObjcExports.m; path = Classes/ObjcExports.m; sourceTree = ""; };
+ 61D3D2A41290E03A003CE7C3 /* irc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = irc.png; path = Resources/Icons/irc.png; sourceTree = ""; };
61DE8F201257EB1100B80214 /* AmmoMenuViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AmmoMenuViewController.h; sourceTree = ""; };
61DE8F211257EB1100B80214 /* AmmoMenuViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AmmoMenuViewController.m; sourceTree = ""; };
+ 61DF0EDB1284DF2300F3F10B /* HelpPageLobbyViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "HelpPageLobbyViewController-iPhone.xib"; path = "../Resources/HelpPageLobbyViewController-iPhone.xib"; sourceTree = ""; };
+ 61DF0F201284F72A00F3F10B /* HelpPageInGameViewController-iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "HelpPageInGameViewController-iPhone.xib"; path = "Resources/HelpPageInGameViewController-iPhone.xib"; sourceTree = SOURCE_ROOT; };
61E1F4F711D004240016A5AA /* adler32.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = adler32.pas; path = ../../hedgewars/adler32.pas; sourceTree = SOURCE_ROOT; };
+ 61E2F7421283752C00E12521 /* fb.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = fb.png; path = Resources/Icons/fb.png; sourceTree = ""; };
+ 61E2F7431283752C00E12521 /* tw.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = tw.png; path = Resources/Icons/tw.png; sourceTree = ""; };
61EBA62811DFF2BC0048B68A /* title.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = title.png; path = "Resources/Frontend-iPad/title.png"; sourceTree = ""; };
61EBA62C11DFF3310048B68A /* backgroundAndTitle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = backgroundAndTitle.png; path = "Resources/Frontend-iPad/backgroundAndTitle.png"; sourceTree = ""; };
61EF920511DF57AC003441C4 /* arrowDown.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = arrowDown.png; path = Resources/Overlay/arrowDown.png; sourceTree = ""; };
@@ -902,7 +921,7 @@
61EF920B11DF57AC003441C4 /* joyButton_forwardjump.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = joyButton_forwardjump.png; path = Resources/Overlay/joyButton_forwardjump.png; sourceTree = ""; };
61F2E7CB1205EDE0005734F7 /* AboutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AboutViewController.h; sourceTree = ""; };
61F2E7CC1205EDE0005734F7 /* AboutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AboutViewController.m; sourceTree = ""; };
- 61F2E7CD1205EDE0005734F7 /* AboutViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AboutViewController.xib; sourceTree = ""; };
+ 61F2E7CD1205EDE0005734F7 /* AboutViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = AboutViewController.xib; path = ../Resources/AboutViewController.xib; sourceTree = ""; };
61F2E7EB12060E31005734F7 /* checkbox.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = checkbox.png; path = Resources/checkbox.png; sourceTree = ""; };
61F7A43111E290650040BA66 /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-72.png"; path = "Resources/Icons/Icon-72.png"; sourceTree = ""; };
61F7A43211E290650040BA66 /* Icon-Small-50.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon-Small-50.png"; path = "Resources/Icons/Icon-Small-50.png"; sourceTree = ""; };
@@ -911,16 +930,8 @@
61F7A43511E290650040BA66 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = Resources/Icons/Icon.png; sourceTree = ""; };
61F7A43611E290650040BA66 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon@2x.png"; path = "Resources/Icons/Icon@2x.png"; sourceTree = ""; };
61F7A43711E290650040BA66 /* iTunesArtwork.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = iTunesArtwork.png; path = Resources/Icons/iTunesArtwork.png; sourceTree = ""; };
- 61F903E411DF58550068B24D /* backgroundBottom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = backgroundBottom.png; path = "Resources/Frontend-iPhone/backgroundBottom.png"; sourceTree = ""; };
61F903E511DF58550068B24D /* backgroundCenter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = backgroundCenter.png; path = "Resources/Frontend-iPhone/backgroundCenter.png"; sourceTree = ""; };
- 61F903E611DF58550068B24D /* backgroundLeft.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = backgroundLeft.png; path = "Resources/Frontend-iPhone/backgroundLeft.png"; sourceTree = ""; };
- 61F903E711DF58550068B24D /* backgroundRight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = backgroundRight.png; path = "Resources/Frontend-iPhone/backgroundRight.png"; sourceTree = ""; };
- 61F903E811DF58550068B24D /* backgroundTop.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = backgroundTop.png; path = "Resources/Frontend-iPhone/backgroundTop.png"; sourceTree = ""; };
61F903E911DF58550068B24D /* borderBottom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = borderBottom.png; path = "Resources/Frontend-iPhone/borderBottom.png"; sourceTree = ""; };
- 61F903EA11DF58550068B24D /* borderTop.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = borderTop.png; path = "Resources/Frontend-iPhone/borderTop.png"; sourceTree = ""; };
- 61F903EB11DF58550068B24D /* networkButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = networkButton.png; path = "Resources/Frontend-iPhone/networkButton.png"; sourceTree = ""; };
- 61F903EC11DF58550068B24D /* playButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = playButton.png; path = "Resources/Frontend-iPhone/playButton.png"; sourceTree = ""; };
- 61F903ED11DF58550068B24D /* storeButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = storeButton.png; path = "Resources/Frontend-iPhone/storeButton.png"; sourceTree = ""; };
61F9040811DF58B00068B24D /* settingsButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = settingsButton.png; path = Resources/settingsButton.png; sourceTree = ""; };
61F9040A11DF59370068B24D /* background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = background.png; path = "Resources/Frontend-iPad/background.png"; sourceTree = ""; };
61F9040C11DF59D10068B24D /* localplayButton.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = localplayButton.png; path = "Resources/Frontend-iPad/localplayButton.png"; sourceTree = ""; };
@@ -1015,6 +1026,10 @@
6165922611CA9BD500D6E256 /* CommodityFunctions.m */,
6165922C11CA9BD500D6E256 /* UIImageExtra.h */,
6165922D11CA9BD500D6E256 /* UIImageExtra.m */,
+ 61D2059F127CDD1100ABD83E /* ObjcExports.h */,
+ 61D205A0127CDD1100ABD83E /* ObjcExports.m */,
+ 61006F93128DE31F00EBA7F7 /* CreationChamber.h */,
+ 61006F94128DE31F00EBA7F7 /* CreationChamber.m */,
);
name = "Other Sources";
sourceTree = "";
@@ -1023,7 +1038,7 @@
isa = PBXGroup;
children = (
6147DAD21253DCDE0010357E /* savesButton.png */,
- 6199E86C12464A8E00DADF8C /* surpise.png */,
+ 6199E86C12464A8E00DADF8C /* surprise.png */,
611EEBC0122B34A800DF6938 /* helpingame.png */,
611EEC30122B54D700DF6938 /* helpplain.png */,
611EEBC2122B355700DF6938 /* helpbottom.png */,
@@ -1036,8 +1051,7 @@
611EE9D7122AA10A00DF6938 /* backSound.wav */,
611EE9D8122AA10A00DF6938 /* selSound.wav */,
61F7A42811E2905C0040BA66 /* Icons */,
- 61F903FA11DF58680068B24D /* Frontend-iPad */,
- 61F903E311DF584D0068B24D /* Frontend-iPhone */,
+ 61F903FA11DF58680068B24D /* Frontend */,
6179936611501D1E00BA94A9 /* Overlay */,
61798A5E114AE08600BA94A9 /* Data */,
6187AEA5120781B900B31A27 /* Settings */,
@@ -1217,7 +1231,6 @@
616591FB11CA9BA200D6E256 /* SchemeSettingsViewController.m */,
6199E836124647DE00DADF8C /* SupportViewController.h */,
6199E837124647DE00DADF8C /* SupportViewController.m */,
- 6199E838124647DE00DADF8C /* SupportViewController.xib */,
);
name = "First Level";
sourceTree = "";
@@ -1261,6 +1274,8 @@
6163EE6C11CC253F001C0453 /* Overlay */ = {
isa = PBXGroup;
children = (
+ 61DE8F201257EB1100B80214 /* AmmoMenuViewController.h */,
+ 61DE8F211257EB1100B80214 /* AmmoMenuViewController.m */,
616591F811CA9BA200D6E256 /* InGameMenuViewController.h */,
616591F911CA9BA200D6E256 /* InGameMenuViewController.m */,
616591F611CA9BA200D6E256 /* OverlayViewController.h */,
@@ -1268,10 +1283,10 @@
6165925011CA9CB400D6E256 /* OverlayViewController.xib */,
611EEAEB122B2A4D00DF6938 /* HelpPageViewController.h */,
611EEAEC122B2A4D00DF6938 /* HelpPageViewController.m */,
- 611EEAED122B2A4D00DF6938 /* HelpPageLobbyViewController.xib */,
- 61842B23122B619D0096E335 /* HelpPageInGameViewController.xib */,
- 61DE8F201257EB1100B80214 /* AmmoMenuViewController.h */,
- 61DE8F211257EB1100B80214 /* AmmoMenuViewController.m */,
+ 61DF0F201284F72A00F3F10B /* HelpPageInGameViewController-iPhone.xib */,
+ 61842B23122B619D0096E335 /* HelpPageInGameViewController-iPad.xib */,
+ 61DF0EDB1284DF2300F3F10B /* HelpPageLobbyViewController-iPhone.xib */,
+ 611EEAED122B2A4D00DF6938 /* HelpPageLobbyViewController-iPad.xib */,
);
name = Overlay;
sourceTree = "";
@@ -1328,14 +1343,16 @@
isa = PBXGroup;
children = (
611DA1CF124E5C6300008271 /* plus.png */,
- 611DA030124E2BC500008271 /* background_med.png */,
+ 611DA030124E2BC500008271 /* mediumBackground~ipad.png */,
611E0EE511FB20610077A41E /* ammoButton.png */,
611E0EE611FB20610077A41E /* cornerButton.png */,
61EF920511DF57AC003441C4 /* arrowDown.png */,
61EF920611DF57AC003441C4 /* arrowLeft.png */,
61EF920711DF57AC003441C4 /* arrowRight.png */,
61EF920811DF57AC003441C4 /* arrowUp.png */,
- 611EEA7D122B09C200DF6938 /* background_small.png */,
+ 614AE659127D090A0070BF5F /* smallerBackground@2x-iphone.png */,
+ 614AE65A127D090A0070BF5F /* smallerBackground~ipad.png */,
+ 614AE65B127D090A0070BF5F /* smallerBackground~iphone.png */,
61EF920911DF57AC003441C4 /* joyButton_attack.png */,
61EF920A11DF57AC003441C4 /* joyButton_backjump.png */,
61EF920B11DF57AC003441C4 /* joyButton_forwardjump.png */,
@@ -1369,7 +1386,10 @@
61F7A42811E2905C0040BA66 /* Icons */ = {
isa = PBXGroup;
children = (
- 6183D83C11E2BCE200A88903 /* LI-ipad-Landscape.png */,
+ 61D3D2A41290E03A003CE7C3 /* irc.png */,
+ 61E2F7421283752C00E12521 /* fb.png */,
+ 61E2F7431283752C00E12521 /* tw.png */,
+ 6183D83C11E2BCE200A88903 /* Default-ipad-Landscape.png */,
6183D83D11E2BCE200A88903 /* Default.png */,
61F7A43111E290650040BA66 /* Icon-72.png */,
61F7A43211E290650040BA66 /* Icon-Small-50.png */,
@@ -1382,37 +1402,24 @@
name = Icons;
sourceTree = "";
};
- 61F903E311DF584D0068B24D /* Frontend-iPhone */ = {
+ 61F903FA11DF58680068B24D /* Frontend */ = {
isa = PBXGroup;
children = (
619C09E911E8B8D600F1DF16 /* title_small.png */,
- 61F903E411DF58550068B24D /* backgroundBottom.png */,
+ 61808A6E128C94E1005D0E2F /* backgroundTop.png */,
61F903E511DF58550068B24D /* backgroundCenter.png */,
- 61F903E611DF58550068B24D /* backgroundLeft.png */,
- 61F903E711DF58550068B24D /* backgroundRight.png */,
- 61F903E811DF58550068B24D /* backgroundTop.png */,
61F903E911DF58550068B24D /* borderBottom.png */,
- 61F903EA11DF58550068B24D /* borderTop.png */,
- 61F903EB11DF58550068B24D /* networkButton.png */,
- 61F903EC11DF58550068B24D /* playButton.png */,
- 61F903ED11DF58550068B24D /* storeButton.png */,
- );
- name = "Frontend-iPhone";
- sourceTree = "";
- };
- 61F903FA11DF58680068B24D /* Frontend-iPad */ = {
- isa = PBXGroup;
- children = (
615AD96112073B4D00F2FF04 /* startGameButton.png */,
615AD9EA1207654E00F2FF04 /* helpButton.png */,
615AD9E8120764CA00F2FF04 /* backButton.png */,
+ 61808A4A128C901B005D0E2F /* startButton.png */,
61EBA62811DFF2BC0048B68A /* title.png */,
61F9040C11DF59D10068B24D /* localplayButton.png */,
61F9040D11DF59D10068B24D /* netplayButton.png */,
61F9040A11DF59370068B24D /* background.png */,
61EBA62C11DFF3310048B68A /* backgroundAndTitle.png */,
);
- name = "Frontend-iPad";
+ name = Frontend;
sourceTree = "";
};
9283015C0F10E48900CC5A3C /* Pascal Sources */ = {
@@ -2111,7 +2118,7 @@
61F7A43A11E290650040BA66 /* Icon-Small.png in Resources */,
61F7A43C11E290650040BA66 /* Icon.png in Resources */,
61F7A43E11E290650040BA66 /* iTunesArtwork.png in Resources */,
- 6183D83E11E2BCE200A88903 /* LI-ipad-Landscape.png in Resources */,
+ 6183D83E11E2BCE200A88903 /* Default-ipad-Landscape.png in Resources */,
6129B9F711EFB04D0017E305 /* denied.png in Resources */,
611E0EE711FB20610077A41E /* ammoButton.png in Resources */,
611E0EE811FB20610077A41E /* cornerButton.png in Resources */,
@@ -2122,33 +2129,38 @@
615AD9EB1207654E00F2FF04 /* helpButton.png in Resources */,
6187AEBD120781B900B31A27 /* Settings in Resources */,
611EE974122A9C4100DF6938 /* clickSound.wav in Resources */,
- 611EE9D9122AA10A00DF6938 /* backSound.wav in Resources */,
611EE9DA122AA10A00DF6938 /* selSound.wav in Resources */,
- 611EEA7E122B09C200DF6938 /* background_small.png in Resources */,
- 611EEAEF122B2A4D00DF6938 /* HelpPageLobbyViewController.xib in Resources */,
+ 611EEAEF122B2A4D00DF6938 /* HelpPageLobbyViewController-iPad.xib in Resources */,
611EEBC1122B34A800DF6938 /* helpingame.png in Resources */,
611EEBC4122B355700DF6938 /* helpbottom.png in Resources */,
611EEBC5122B355700DF6938 /* helpright.png in Resources */,
611EEC31122B54D700DF6938 /* helpplain.png in Resources */,
- 61842B24122B619D0096E335 /* HelpPageInGameViewController.xib in Resources */,
+ 61842B24122B619D0096E335 /* HelpPageInGameViewController-iPad.xib in Resources */,
61842B3E122B65BD0096E335 /* helpabove.png in Resources */,
61842B40122B66280096E335 /* helpleft.png in Resources */,
- 6199E83A124647DE00DADF8C /* SupportViewController.xib in Resources */,
- 6199E86D12464A8E00DADF8C /* surpise.png in Resources */,
+ 6199E86D12464A8E00DADF8C /* surprise.png in Resources */,
611D9BFC12497E9800008271 /* SavedGamesViewController.xib in Resources */,
- 611DA031124E2BC500008271 /* background_med.png in Resources */,
+ 611DA031124E2BC500008271 /* mediumBackground~ipad.png in Resources */,
611DA1D0124E5C6300008271 /* plus.png in Resources */,
6147DAD31253DCDE0010357E /* savesButton.png in Resources */,
610D5FB21270E2660033333A /* Icon-Small@2x.png in Resources */,
610D5FB31270E26C0033333A /* Icon@2x.png in Resources */,
61A670BE12747D8900B06CE7 /* borderBottom.png in Resources */,
- 61A670BF12747D9100B06CE7 /* borderTop.png in Resources */,
61A670C012747D9B00B06CE7 /* Default.png in Resources */,
61A670C112747DB900B06CE7 /* MainMenuViewController-iPhone.xib in Resources */,
61A670C212747DBD00B06CE7 /* MapConfigViewController-iPhone.xib in Resources */,
- 61A670FA12747E0000B06CE7 /* playButton.png in Resources */,
61A670FB12747E0D00B06CE7 /* title_small.png in Resources */,
61A6710612747E4000B06CE7 /* backgroundCenter.png in Resources */,
+ 614AE65D127D090A0070BF5F /* smallerBackground~ipad.png in Resources */,
+ 614AE65E127D090A0070BF5F /* smallerBackground~iphone.png in Resources */,
+ 61E2F7441283752C00E12521 /* fb.png in Resources */,
+ 61E2F7451283752C00E12521 /* tw.png in Resources */,
+ 61DF0EDC1284DF2300F3F10B /* HelpPageLobbyViewController-iPhone.xib in Resources */,
+ 61DF0F211284F72A00F3F10B /* HelpPageInGameViewController-iPhone.xib in Resources */,
+ 61808A4B128C901B005D0E2F /* startButton.png in Resources */,
+ 61808A5D128C930A005D0E2F /* backSound.wav in Resources */,
+ 61808A6F128C94E1005D0E2F /* backgroundTop.png in Resources */,
+ 61D3D2A51290E03A003CE7C3 /* irc.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2166,7 +2178,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files 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/ammopic.png ${PROJECT_DIR}/Data/Graphics/Btn/iconAmmo.png\ncp ${PROJECT_DIR}/../../QTfrontend/res/icon*.png ${PROJECT_DIR}/Data/Graphics/Btn\ncp -R ${PROJECT_DIR}/../../QTfrontend/res/botlevels ${PROJECT_DIR}/Data/Graphics/Hedgehog/botlevels\n\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\nrm -rf ${PROJECT_DIR}/Data/Maps/{test*,Ruler}\nrm -rf ${PROJECT_DIR}/Data/Hats/{TeamCap,TeamHeadband,TeamHair}\n\n#copy mono audio\ncp -R ${PROJECT_DIR}/audio/* ${PROJECT_DIR}/Data/\n\n#the following ones must be removed when their support is implemented\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\n\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nmv ${PROJECT_DIR}/Data/Maps/{Basketball,Knockball} ${PROJECT_DIR}/Data/Missions/Maps/\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 Isalnd from the list of Themes\nawk '{if ($1 != \"Island\") print $0}' < ${PROJECT_DIR}/Data/Themes/themes.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/themes.cfg\n\n#remove Isalnd from the Maps and themes\nrm -rf ${PROJECT_DIR}/Data/Themes/Island\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Cave/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Cave/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg\n\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\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";
+ shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files 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/ammopic.png ${PROJECT_DIR}/Data/Graphics/Btn/iconAmmo.png\ncp ${PROJECT_DIR}/../../QTfrontend/res/icon*.png ${PROJECT_DIR}/Data/Graphics/Btn\ncp -R ${PROJECT_DIR}/../../QTfrontend/res/botlevels ${PROJECT_DIR}/Data/Graphics/Hedgehog/botlevels\n\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\nrm -rf ${PROJECT_DIR}/Data/Maps/{test*,Ruler}\nrm -rf ${PROJECT_DIR}/Data/Hats/{TeamCap,TeamHeadband,TeamHair}\n\n#copy mono audio\ncp -R ${PROJECT_DIR}/audio/* ${PROJECT_DIR}/Data/\n\n#the following ones must be removed\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\n\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nmv ${PROJECT_DIR}/Data/Maps/{Basketball,Knockball,TrophyRace} ${PROJECT_DIR}/Data/Missions/Maps/\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 Isalnd from the list of Themes\nawk '{if ($1 != \"Island\") print $0}' < ${PROJECT_DIR}/Data/Themes/themes.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/themes.cfg\n\n#remove Isalnd from the Maps and themes\nrm -rf ${PROJECT_DIR}/Data/Themes/Island\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Cave/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Cave/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg\n\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\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";
showEnvVarsInLog = 0;
};
9283011B0F10CB2D00CC5A3C /* Build libfpc.a */ = {
@@ -2183,7 +2195,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "# Build libfpc.a\n# 9 July 2006 (Jonas Maebe)\n# * original version\n# 15 September 2006 (Erling Johansen)\n# * simplified\n# 26 April 2007 (Jonas Maebe)\n# * added support for ppc64/x86_64 (future proofing)\n# 4 August 2007 (Jonas Maebe)\n# * call ranlib after ar so the toc of the library is up-to-date\n# 3 January 2009 (Jonas Maebe)\n# * support for ARM\n# 24 October 2009 (Jonas Maebe)\n# * don't hardcode version 2.3.1 anymore under certain circumstances\n# * use the FPC_RTL_UNITS_BASE setting\n# 13 December 2009 (Jonas Maebe)\n# * use new FPC_COMPILER_BINARY_DIR setting to make it easier to change the used FPC version\n\nrm -f \"$TARGET_TEMP_DIR\"/*.a\nnarch=\n\nfor arch in $ARCHS\ndo\n\tcase $arch in\n\t\tppc) fpc_arch=ppc; fpc_rtl=powerpc ;;\n\t\ti386) fpc_arch=386; fpc_rtl=i386 ;;\n\t\tppc64) fpc_arch=ppc64; fpc_rtl=powerpc64 ;;\n\t\tx86_64) fpc_arch=x64; fpc_rtl=x86_64 ;;\n\t\tarm*) fpc_arch=arm; fpc_rtl=arm ;;\n\t\t*) continue\n\tesac\n\tif test -e \"${FPC_COMPILER_BINARY_DIR}\"/ppc${fpc_arch}\n\tthen\n\t\tupath=\"$FPC_RTL_UNITS_BASE\"/`\"${FPC_COMPILER_BINARY_DIR}\"/ppc${fpc_arch} -iV`/units/${fpc_rtl}-darwin\n\t\tar -q \"$TARGET_TEMP_DIR\"/libfpc${narch}.a `ls \"$upath\"/*/*.o | grep -v 'darwin/fv/'`\n\t\tranlib \"$TARGET_TEMP_DIR\"/libfpc${narch}.a\n\t\tnarch=${narch}x\n\telse\n\t\techo error: can\\'t build libfpc.a for $arch \\(${FPC_COMPILER_BINARY_DIR}/ppc${fpc_arch} not found, derived from FPC_COMPILER_BINARY_DIR project setting\\)\n\tfi\ndone\n\nif test ${#narch} -gt 1\nthen\n\tlipo -create \"$TARGET_TEMP_DIR\"/libfpc*.a -output \"$TARGET_BUILD_DIR\"/libfpc.a\n\trm -f \"$TARGET_TEMP_DIR\"/*.a\nelse\n\tmv \"$TARGET_TEMP_DIR\"/libfpc.a \"$TARGET_BUILD_DIR\"\nfi\n";
+ shellScript = "# Build libfpc.a\n# 9 July 2006 (Jonas Maebe)\n# * original version\n# 15 September 2006 (Erling Johansen)\n# * simplified\n# 26 April 2007 (Jonas Maebe)\n# * added support for ppc64/x86_64 (future proofing)\n# 4 August 2007 (Jonas Maebe)\n# * call ranlib after ar so the toc of the library is up-to-date\n# 3 January 2009 (Jonas Maebe)\n# * support for ARM\n# 24 October 2009 (Jonas Maebe)\n# * don't hardcode version 2.3.1 anymore under certain circumstances\n# * use the FPC_RTL_UNITS_BASE setting\n# 13 December 2009 (Jonas Maebe)\n# * use new FPC_COMPILER_BINARY_DIR setting to make it easier to change the used FPC version\n\nrm -f \"$TARGET_TEMP_DIR\"/*.a\nnarch=\n\ntemparchs=`echo $ARCHS|sed -e 's/arm[^\\w]*/arm\\\n/'|sort -u`\nfor arch in $temparchs\ndo\n\tcase $arch in\n\t\tppc) fpc_arch=ppc; fpc_rtl=powerpc ;;\n\t\ti386) fpc_arch=386; fpc_rtl=i386 ;;\n\t\tppc64) fpc_arch=ppc64; fpc_rtl=powerpc64 ;;\n\t\tx86_64) fpc_arch=x64; fpc_rtl=x86_64 ;;\n\t\tarm*) fpc_arch=arm; fpc_rtl=arm ;;\n\t\t*) continue\n\tesac\n\tif test -e \"${FPC_COMPILER_BINARY_DIR}\"/ppc${fpc_arch}\n\tthen\n\t\tupath=\"$FPC_RTL_UNITS_BASE\"/`\"${FPC_COMPILER_BINARY_DIR}\"/ppc${fpc_arch} -iV`/units/${fpc_rtl}-darwin\n\t\tar -q \"$TARGET_TEMP_DIR\"/libfpc${narch}.a `ls \"$upath\"/*/*.o | grep -v 'darwin/fv/'`\n\t\tranlib \"$TARGET_TEMP_DIR\"/libfpc${narch}.a\n\t\tnarch=${narch}x\n\telse\n\t\techo error: can\\'t build libfpc.a for $arch \\(${FPC_COMPILER_BINARY_DIR}/ppc${fpc_arch} not found, derived from FPC_COMPILER_BINARY_DIR project setting\\)\n\tfi\ndone\n\nif test ${#narch} -gt 1\nthen\n\tlipo -create \"$TARGET_TEMP_DIR\"/libfpc*.a -output \"$TARGET_BUILD_DIR\"/libfpc.a\n\trm -f \"$TARGET_TEMP_DIR\"/*.a\nelse\n\tmv \"$TARGET_TEMP_DIR\"/libfpc.a \"$TARGET_BUILD_DIR\"\nfi\n";
};
928301560F10E04C00CC5A3C /* Compile Pascal Sources */ = {
isa = PBXShellScriptBuildPhase;
@@ -2280,6 +2292,8 @@
619C5BA2124FA59000D041AE /* MapPreviewButtonView.m in Sources */,
61DE8F221257EB1100B80214 /* AmmoMenuViewController.m in Sources */,
61399013125D19C0003C2DC0 /* uMobile.pas in Sources */,
+ 61D205A1127CDD1100ABD83E /* ObjcExports.m in Sources */,
+ 61006F95128DE31F00EBA7F7 /* CreationChamber.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2350,7 +2364,7 @@
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_IDENTITY = "iPhone Distribution: Vittorio Giovara";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Vittorio Giovara";
- FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix -Sc";
+ FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix";
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;
@@ -2373,7 +2387,7 @@
"\"$(SRCROOT)/../../../Library/SDL-1.3/SDL_net/\"",
"\"$(SRCROOT)/../../../Library/SDL-1.3/SDL_mixer/\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 3.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.1;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"-lz",
@@ -2385,7 +2399,7 @@
SDKROOT = iphoneos4.1;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
- VALID_ARCHS = "armv6 armv7";
+ VALID_ARCHS = "armv7 armv6";
};
name = DistributionAppStore;
};
@@ -2444,7 +2458,7 @@
CODE_SIGN_ENTITLEMENTS = "Entitlements-Distribution.plist";
CODE_SIGN_IDENTITY = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
- FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix -Sc";
+ FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix";
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;
@@ -2467,7 +2481,7 @@
"\"$(SRCROOT)/../../../Library/SDL-1.3/SDL_net/\"",
"\"$(SRCROOT)/../../../Library/SDL-1.3/SDL_mixer/\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 3.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.1;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"-lz",
@@ -2479,7 +2493,7 @@
SDKROOT = iphoneos4.1;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
- VALID_ARCHS = "armv6 armv7";
+ VALID_ARCHS = "armv7 armv6";
};
name = DistributionAdHoc;
};
@@ -2536,7 +2550,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer: Vittorio Giovara (DC2BRETXAC)";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Vittorio Giovara (DC2BRETXAC)";
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix -Sc";
+ FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix";
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;
@@ -2562,7 +2576,7 @@
"\"$(SRCROOT)/../../../Library/SDL-1.3/SDL_net/\"",
"\"$(SRCROOT)/../../../Library/SDL-1.3/SDL_mixer/\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 3.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.1;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"-lz",
@@ -2572,7 +2586,7 @@
SDKROOT = iphoneos4.1;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = NO;
- VALID_ARCHS = "armv6 armv7";
+ VALID_ARCHS = "armv7 armv6";
};
name = Valgrind;
};
@@ -2672,7 +2686,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer: Vittorio Giovara (DC2BRETXAC)";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Vittorio Giovara (DC2BRETXAC)";
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix -Sc";
+ FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix";
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;
@@ -2695,7 +2709,7 @@
"\"$(SRCROOT)/../../../Library/SDL-1.3/SDL_net/\"",
"\"$(SRCROOT)/../../../Library/SDL-1.3/SDL_mixer/\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 3.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.1;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"-lz",
@@ -2705,7 +2719,7 @@
SDKROOT = iphoneos4.1;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = NO;
- VALID_ARCHS = "armv6 armv7";
+ VALID_ARCHS = "armv7 armv6";
};
name = Debug;
};
@@ -2716,7 +2730,7 @@
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix -Sc";
+ FPC_COMMON_OPTIONS = "-dIPHONEOS -Cs2000000 -vwi -B -Sgix";
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;
@@ -2739,7 +2753,7 @@
"\"$(SRCROOT)/../../../Library/SDL-1.3/SDL_net/\"",
"\"$(SRCROOT)/../../../Library/SDL-1.3/SDL_mixer/\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 3.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 3.1;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"-lz",
@@ -2751,7 +2765,7 @@
SDKROOT = iphoneos4.1;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = NO;
- VALID_ARCHS = "armv6 armv7";
+ VALID_ARCHS = "armv7 armv6";
};
name = Release;
};
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Hedgewars_Prefix.pch
--- a/project_files/HedgewarsMobile/Hedgewars_Prefix.pch Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Hedgewars_Prefix.pch Mon Nov 15 12:37:39 2010 +0100
@@ -23,6 +23,7 @@
#import "PascalImports.h"
#import "UIImageExtra.h"
#import "CommodityFunctions.h"
+#import "SDL_uikitappdelegate.h"
#import "SDL.h"
#import "SDL_video.h"
#import "SDL_net.h"
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Info.plist
--- a/project_files/HedgewarsMobile/Info.plist Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Info.plist Mon Nov 15 12:37:39 2010 +0100
@@ -34,7 +34,7 @@
UIApplicationExitsOnSuspend
UILaunchImageFile~ipad
- LI-ipad
+ Default-ipad
UIStatusBarHidden
UISupportedInterfaceOrientations
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/AboutViewController.xib
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/AboutViewController.xib Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,658 @@
+
+
+
+ 1024
+ 10F569
+ 804
+ 1038.29
+ 461.00
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ 123
+
+
+ YES
+
+
+ YES
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ IBFilesOwner
+ IBIPadFramework
+
+
+ IBFirstResponder
+ IBIPadFramework
+
+
+
+ 292
+
+ YES
+
+
+ 290
+
+ YES
+
+
+ 292
+ {{127, 7}, {289, 30}}
+
+ NO
+ IBIPadFramework
+ 2
+ 5
+ 0
+
+ YES
+ Code
+ Art
+ Sound
+ Locale
+ Special
+
+
+ YES
+
+
+
+
+
+
+
+ YES
+
+
+
+
+
+
+
+ YES
+ {0, 0}
+ {0, 0}
+ {0, 0}
+ {0, 0}
+ {0, 0}
+
+
+ YES
+
+
+
+
+
+
+
+
+ {543, 44}
+
+ IBIPadFramework
+
+ YES
+
+
+
+ IBIPadFramework
+ 1
+
+ 0
+
+
+ IBIPadFramework
+
+
+
+
+
+ 274
+ {{0, 44}, {543, 577}}
+
+
+ 1
+ MCAwIDAgMAA
+
+ YES
+ IBIPadFramework
+ YES
+ 1
+ 2
+ 0
+ YES
+ 44
+ 10
+ 10
+
+
+ {543, 621}
+
+ 3
+ MQA
+
+ NO
+ NO
+
+ 3
+
+ IBIPadFramework
+
+
+
+
+ YES
+
+
+ view
+
+
+
+ 3
+
+
+
+ buttonPressed:
+
+
+
+ 8
+
+
+
+ dataSource
+
+
+
+ 12
+
+
+
+ delegate
+
+
+
+ 13
+
+
+
+ tableView
+
+
+
+ 14
+
+
+
+ segmentedControlChanged:
+
+
+ 13
+
+ 15
+
+
+
+ segmentedControl
+
+
+
+ 16
+
+
+
+
+ YES
+
+ 0
+
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+ 2
+
+
+ YES
+
+
+
+
+
+
+ 5
+
+
+ YES
+
+
+
+
+
+ 6
+
+
+ YES
+
+
+
+
+
+
+ 7
+
+
+
+
+ 10
+
+
+
+
+ 11
+
+
+
+
+
+
+ YES
+
+ YES
+ -1.CustomClassName
+ -2.CustomClassName
+ 10.IBPluginDependency
+ 11.IBPluginDependency
+ 2.IBEditorWindowLastContentRect
+ 2.IBPluginDependency
+ 5.IBPluginDependency
+ 6.IBPluginDependency
+ 7.IBPluginDependency
+
+
+ YES
+ AboutViewController
+ UIResponder
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ {{376, 170}, {543, 621}}
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+ YES
+
+
+ YES
+
+
+
+
+ YES
+
+
+ YES
+
+
+
+ 16
+
+
+
+ YES
+
+ AboutViewController
+ UIViewController
+
+ YES
+
+ YES
+ buttonPressed:
+ segmentedControlChanged:
+
+
+ YES
+ id
+ id
+
+
+
+ YES
+
+ YES
+ buttonPressed:
+ segmentedControlChanged:
+
+
+ YES
+
+ buttonPressed:
+ id
+
+
+ segmentedControlChanged:
+ id
+
+
+
+
+ YES
+
+ YES
+ segmentedControl
+ tableView
+
+
+ YES
+ UISegmentedControl
+ UITableView
+
+
+
+ YES
+
+ YES
+ segmentedControl
+ tableView
+
+
+ YES
+
+ segmentedControl
+ UISegmentedControl
+
+
+ tableView
+ UITableView
+
+
+
+
+ IBProjectSource
+ Classes/AboutViewController.h
+
+
+
+
+ YES
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSError.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSFileManager.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueCoding.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueObserving.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyedArchiver.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSObject.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSRunLoop.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSThread.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURL.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURLConnection.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CAAnimation.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CALayer.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIAccessibility.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINibLoading.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIResponder.h
+
+
+
+ UIBarButtonItem
+ UIBarItem
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIBarButtonItem.h
+
+
+
+ UIBarItem
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIBarItem.h
+
+
+
+ UIControl
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIControl.h
+
+
+
+ UINavigationBar
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINavigationBar.h
+
+
+
+ UINavigationItem
+ NSObject
+
+
+
+ UIResponder
+ NSObject
+
+
+
+ UIScrollView
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIScrollView.h
+
+
+
+ UISearchBar
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchBar.h
+
+
+
+ UISearchDisplayController
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchDisplayController.h
+
+
+
+ UISegmentedControl
+ UIControl
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISegmentedControl.h
+
+
+
+ UITableView
+ UIScrollView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITableView.h
+
+
+
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITextField.h
+
+
+
+ UIView
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIView.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINavigationController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIPopoverController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISplitViewController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITabBarController.h
+
+
+
+ UIViewController
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIViewController.h
+
+
+
+
+ 0
+ IBIPadFramework
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
+
+
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
+
+
+ YES
+ ../Hedgewars.xcodeproj
+ 3
+ 123
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPad/bricks.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPad/bricks.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPhone/backgroundBottom.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPhone/backgroundBottom.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPhone/backgroundCenter.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPhone/backgroundCenter.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPhone/backgroundLeft.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPhone/backgroundLeft.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPhone/backgroundRight.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPhone/backgroundRight.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPhone/backgroundTop.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPhone/backgroundTop.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPhone/borderBottom.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPhone/borderBottom.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPhone/borderTop.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPhone/borderTop.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPhone/networkButton.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPhone/networkButton.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPhone/playButton.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPhone/playButton.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPhone/startButton.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPhone/startButton.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Frontend-iPhone/storeButton.png
Binary file project_files/HedgewarsMobile/Resources/Frontend-iPhone/storeButton.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/GameConfigViewController.xib
--- a/project_files/HedgewarsMobile/Resources/GameConfigViewController.xib Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/GameConfigViewController.xib Mon Nov 15 12:37:39 2010 +0100
@@ -1,14 +1,14 @@
- 800
- 10F569
- 788
- 1038.29
+ 1024
+ 10H574
+ 804
+ 1038.35
461.00
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 117
+ 123
YES
@@ -50,47 +50,52 @@
292
- {{97, 8}, {245, 30}}
+ {{87, 8}, {265, 30}}
NO
12345
IBCocoaTouchFramework
2
- 3
+ 4
0
YES
Map
Teams
Details
+ Help
YES
+
YES
+
YES
{0, 0}
{0, 0}
{0, 0}
+ {0, 0}
YES
+
- 1
- MC4yNTA5ODA0MDcgMC41MDE5NjA4MTQgMAA
+ 2
+ MC4yMzEzNzI1NjUgMCAwLjQ2Mjc0NTEzMDEAA
@@ -115,6 +120,7 @@
IBCocoaTouchFramework
+ 265
@@ -269,6 +275,7 @@
-1.CustomClassName
-2.CustomClassName
15.IBPluginDependency
+ 15.IBViewBoundsToFrameTransform
16.IBPluginDependency
18.IBPluginDependency
19.IBPluginDependency
@@ -282,10 +289,13 @@
GameConfigViewController
UIResponder
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAAAAAAAAw58AAA
+
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- {{639, 516}, {480, 320}}
+ {{131, 321}, {480, 320}}
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
@@ -394,13 +404,6 @@
NSObject
IBFrameworkSource
- Foundation.framework/Headers/NSNetServices.h
-
-
-
- NSObject
-
- IBFrameworkSource
Foundation.framework/Headers/NSObject.h
@@ -408,13 +411,6 @@
NSObject
IBFrameworkSource
- Foundation.framework/Headers/NSPort.h
-
-
-
- NSObject
-
- IBFrameworkSource
Foundation.framework/Headers/NSRunLoop.h
@@ -422,13 +418,6 @@
NSObject
IBFrameworkSource
- Foundation.framework/Headers/NSStream.h
-
-
-
- NSObject
-
- IBFrameworkSource
Foundation.framework/Headers/NSThread.h
@@ -450,13 +439,6 @@
NSObject
IBFrameworkSource
- Foundation.framework/Headers/NSXMLParser.h
-
-
-
- NSObject
-
- IBFrameworkSource
QuartzCore.framework/Headers/CAAnimation.h
@@ -606,7 +588,7 @@
IBCocoaTouchFramework
com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
+
com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
@@ -615,6 +597,6 @@
YES
../Hedgewars.xcodeproj
3
- 117
+ 123
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/HelpPageInGameViewController-iPad.xib
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/HelpPageInGameViewController-iPad.xib Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,889 @@
+
+
+
+ 1024
+ 10F569
+ 788
+ 1038.29
+ 461.00
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ 117
+
+
+ YES
+
+
+
+ YES
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ IBFilesOwner
+ IBIPadFramework
+
+
+ IBFirstResponder
+ IBIPadFramework
+
+
+
+ 292
+
+ YES
+
+
+ 292
+ {{0, -1}, {1024, 768}}
+
+ NO
+ NO
+ IBIPadFramework
+
+ NSImage
+ helpingame.png
+
+
+
+
+ 292
+ {{79, 473}, {150, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Direction buttons
+
+ Helvetica-Bold
+ 18
+ 16
+
+
+ 1
+ MCAwIDAAA
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{79, 491}, {203, 85}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ With these buttons you can move your hog, aim and control certain weapons.
+
+ Helvetica
+ 16
+ 16
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{53, 97}, {186, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Timer
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{53, 118}, {187, 43}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Don't let your turn time run out!
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{780, 248}, {240, 128}}
+
+ NO
+ NO
+ IBIPadFramework
+
+ NSImage
+ helpright.png
+
+
+
+
+ 292
+ {{790, 256}, {109, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Ammo Menu
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{790, 282}, {214, 84}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ This menu contains all the weapons you can use. Drag your finger on a weapon for more details on what it does!
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{780, 97}, {186, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Pause / Open ammos
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{782, 118}, {187, 43}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Tap to pause or open the ammo menu.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{418, 73}, {186, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Wind bar
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{418, 89}, {191, 63}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Some weapons are affected by the wind and their direction may shift.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{447, 573}, {203, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Teams flags and health
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{447, 592}, {203, 85}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ These bars report the team name, the team flags and the global health status of every hog.
+
+
+
+ 1
+ 10
+ 4
+
+
+
+ 292
+ {{741, 501}, {135, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Joypad buttons
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{741, 520}, {211, 85}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Press X to jump forward, Y to jump backwards (double tap to jump twice) and Missile to attack or use items.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{67, 238}, {240, 128}}
+
+ NO
+ NO
+ IBIPadFramework
+
+ NSImage
+ helpplain.png
+
+
+
+
+ 292
+ {{72, 246}, {229, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Tap to return to game
+
+
+
+ 1
+ 10
+ 1
+
+
+
+ 292
+ {{72, 268}, {229, 87}}
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Pan to move camera, pinch to zoom, double tap to center hog, and a single touch to interact with weapons and much more!
+
+
+
+ 1
+ 10
+ 0
+
+
+ {1024, 768}
+
+
+ 3
+ MCAwLjQAA
+
+ NO
+ NO
+
+ 3
+
+ IBIPadFramework
+
+
+
+
+ YES
+
+
+ view
+
+
+
+ 3
+
+
+
+ dismiss
+
+
+ 7
+
+ 16
+
+
+
+
+ YES
+
+ 0
+
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+ 2
+
+
+ YES
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5
+
+
+
+
+ 6
+
+
+
+
+ 7
+
+
+
+
+ 8
+
+
+
+
+ 9
+
+
+
+
+ 10
+
+
+
+
+ 11
+
+
+
+
+ 12
+
+
+
+
+ 13
+
+
+
+
+ 14
+
+
+
+
+ 17
+
+
+
+
+ 18
+
+
+
+
+ 21
+
+
+
+
+ 22
+
+
+
+
+ 23
+
+
+
+
+ 24
+
+
+
+
+ 25
+
+
+
+
+ 26
+
+
+
+
+ 27
+
+
+
+
+
+
+ YES
+
+ YES
+ -1.CustomClassName
+ -2.CustomClassName
+ 10.IBPluginDependency
+ 11.IBPluginDependency
+ 12.IBPluginDependency
+ 13.IBPluginDependency
+ 14.IBPluginDependency
+ 17.IBPluginDependency
+ 18.IBPluginDependency
+ 2.CustomClassName
+ 2.IBEditorWindowLastContentRect
+ 2.IBPluginDependency
+ 21.IBPluginDependency
+ 22.IBPluginDependency
+ 23.IBPluginDependency
+ 24.IBPluginDependency
+ 25.IBPluginDependency
+ 26.IBPluginDependency
+ 27.IBPluginDependency
+ 5.IBPluginDependency
+ 6.IBPluginDependency
+ 7.IBPluginDependency
+ 8.IBPluginDependency
+ 9.IBPluginDependency
+
+
+ YES
+ HelpPageViewController
+ UIResponder
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIControl
+ {{288, 355}, {1024, 768}}
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+ YES
+
+
+ YES
+
+
+
+
+ YES
+
+
+ YES
+
+
+
+ 27
+
+
+
+ YES
+
+ HelpPageViewController
+ UIViewController
+
+ dismiss
+ id
+
+
+ dismiss
+
+ dismiss
+ id
+
+
+
+ IBProjectSource
+ Classes/HelpPageViewController.h
+
+
+
+
+ YES
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSError.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSFileManager.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueCoding.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueObserving.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyedArchiver.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSObject.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSRunLoop.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSThread.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURL.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURLConnection.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CAAnimation.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CALayer.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIAccessibility.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINibLoading.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIResponder.h
+
+
+
+ UIControl
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIControl.h
+
+
+
+ UIImageView
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIImageView.h
+
+
+
+ UILabel
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UILabel.h
+
+
+
+ UIResponder
+ NSObject
+
+
+
+ UISearchBar
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchBar.h
+
+
+
+ UISearchDisplayController
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchDisplayController.h
+
+
+
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITextField.h
+
+
+
+ UIView
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIView.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINavigationController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIPopoverController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISplitViewController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITabBarController.h
+
+
+
+ UIViewController
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIViewController.h
+
+
+
+
+ 0
+ IBIPadFramework
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
+
+
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
+
+
+ YES
+ ../Hedgewars.xcodeproj
+ 3
+
+ YES
+
+ YES
+ helpingame.png
+ helpplain.png
+ helpright.png
+
+
+ YES
+ {1024, 768}
+ {296, 138}
+ {308, 144}
+
+
+ 117
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/HelpPageInGameViewController-iPhone.xib
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/HelpPageInGameViewController-iPhone.xib Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,950 @@
+
+
+
+ 1024
+ 10F569
+ 804
+ 1038.29
+ 461.00
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ 123
+
+
+ YES
+
+
+
+ YES
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ IBFilesOwner
+ IBCocoaTouchFramework
+
+
+ IBFirstResponder
+ IBCocoaTouchFramework
+
+
+
+ 292
+
+ YES
+
+
+ 274
+
+ YES
+
+
+ 292
+ {{13, 3}, {440, 30}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Here you can find help for the various game elements.
+
+ Helvetica-Oblique
+ 16
+ 16
+
+
+ 1
+ MCAwIDAAA
+
+
+ 1
+ 10
+ 0
+ 1
+
+
+
+ 292
+ {{20, 311}, {150, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Direction buttons
+
+ Helvetica-Bold
+ 18
+ 16
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{20, 320}, {203, 85}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ With these buttons you can move your hog, aim and control certain weapons.
+
+ Helvetica
+ 16
+ 16
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{20, 41}, {186, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Timer
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{20, 62}, {187, 43}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Don't let your turn time run out!
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{217, 336}, {243, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Pinch to return
+
+
+
+ 1
+ 10
+ 2
+
+
+
+ 292
+ {{231, 356}, {229, 87}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Pan to move camera, pinch to zoom, double tap to center hog, and a single touch to interact with weapons and much more!
+
+
+
+ 1
+ 10
+ 0
+ 2
+
+
+
+ 292
+ {{20, 113}, {186, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Wind bar
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{20, 129}, {191, 63}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Some weapons are affected by the wind and their direction may shift.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{20, 200}, {203, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Teams flags and health
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{20, 219}, {203, 85}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ These bars report the team name, the team flags and the global health status of every hog.
+
+
+
+ 1
+ 10
+ 4
+
+
+
+ 292
+ {{274, 41}, {186, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Pause / Open ammos
+
+
+
+ 1
+ 10
+ 2
+
+
+
+ 292
+ {{273, 63}, {187, 43}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Tap to pause or open the ammo menu.
+
+
+
+ 1
+ 10
+ 0
+ 2
+
+
+
+ 292
+ {{351, 110}, {109, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Ammo Menu
+
+
+
+ 1
+ 10
+ 2
+
+
+
+ 292
+ {{246, 133}, {214, 84}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ This menu contains all the weapons you can use. Drag your finger on a weapon for more details on what it does!
+
+
+
+ 1
+ 10
+ 0
+ 2
+
+
+
+ 292
+ {{325, 225}, {135, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Joypad buttons
+
+
+
+ 1
+ 10
+ 2
+
+
+
+ 292
+ {{249, 245}, {211, 85}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Press X to jump forward, Y to jump backwards (double tap to jump twice) and Missile to attack or use items.
+
+
+
+ 1
+ 10
+ 0
+ 2
+
+
+ {480, 320}
+
+ YES
+ YES
+ 1
+ IBCocoaTouchFramework
+
+
+ {480, 320}
+
+
+ 2
+ MC45OTYwNzg0OTEyIDAuOTg4MjM1MzU0NCAxAA
+
+ NO
+
+ 3
+
+ IBCocoaTouchFramework
+
+
+
+
+ YES
+
+
+ view
+
+
+
+ 3
+
+
+
+ scrollView
+
+
+
+ 115
+
+
+
+
+ YES
+
+ 0
+
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+ 2
+
+
+ YES
+
+
+
+
+
+ 97
+
+
+ YES
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 98
+
+
+
+
+ 99
+
+
+
+
+ 100
+
+
+
+
+ 101
+
+
+
+
+ 102
+
+
+
+
+ 103
+
+
+
+
+ 104
+
+
+
+
+ 105
+
+
+
+
+ 106
+
+
+
+
+ 107
+
+
+
+
+ 108
+
+
+
+
+ 109
+
+
+
+
+ 110
+
+
+
+
+ 111
+
+
+
+
+ 112
+
+
+
+
+ 113
+
+
+
+
+ 114
+
+
+
+
+
+
+ YES
+
+ YES
+ -1.CustomClassName
+ -2.CustomClassName
+ 100.IBPluginDependency
+ 100.IBViewBoundsToFrameTransform
+ 101.IBPluginDependency
+ 101.IBViewBoundsToFrameTransform
+ 102.IBPluginDependency
+ 102.IBViewBoundsToFrameTransform
+ 103.IBPluginDependency
+ 103.IBViewBoundsToFrameTransform
+ 104.IBPluginDependency
+ 104.IBViewBoundsToFrameTransform
+ 105.IBPluginDependency
+ 105.IBViewBoundsToFrameTransform
+ 106.IBPluginDependency
+ 106.IBViewBoundsToFrameTransform
+ 107.IBPluginDependency
+ 107.IBViewBoundsToFrameTransform
+ 108.IBPluginDependency
+ 108.IBViewBoundsToFrameTransform
+ 109.IBPluginDependency
+ 109.IBViewBoundsToFrameTransform
+ 110.IBPluginDependency
+ 110.IBViewBoundsToFrameTransform
+ 111.IBPluginDependency
+ 111.IBViewBoundsToFrameTransform
+ 112.IBPluginDependency
+ 112.IBViewBoundsToFrameTransform
+ 113.IBPluginDependency
+ 113.IBViewBoundsToFrameTransform
+ 114.IBPluginDependency
+ 114.IBViewBoundsToFrameTransform
+ 2.IBEditorWindowLastContentRect
+ 2.IBPluginDependency
+ 2.IBViewBoundsToFrameTransform
+ 97.IBEditorWindowLastContentRect
+ 97.IBPluginDependency
+ 97.IBViewBoundsToFrameTransform
+ 98.IBPluginDependency
+ 98.IBViewBoundsToFrameTransform
+ 99.IBPluginDependency
+ 99.IBViewBoundsToFrameTransform
+
+
+ YES
+ HelpPageViewController
+ UIResponder
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDdgAAw1oAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDr4AAwwUAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDiIAAwswAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDiQAAwmwAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDZwAAw+EAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABBoAAAw8+AAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABBoAAAw6aAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABBoAAAxARAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABBoAAAw+SAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABCxgAAwyQAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABCxgAAwtYAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABBoAAAwnQAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABCVAAAwx8AAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABBUAAAwnQAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDZwAAw7aAAA
+
+ {{606, 570}, {480, 320}}
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAAAAAAAAw4kAAA
+
+ {{589, 578}, {480, 320}}
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAAAAAAAAw58AAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDeQAAw6aAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDooAAw3gAAA
+
+
+
+
+ YES
+
+
+ YES
+
+
+
+
+ YES
+
+
+ YES
+
+
+
+ 115
+
+
+
+ YES
+
+ HelpPageViewController
+ UIViewController
+
+ dismiss
+ id
+
+
+ dismiss
+
+ dismiss
+ id
+
+
+
+ scrollView
+ UIScrollView
+
+
+ scrollView
+
+ scrollView
+ UIScrollView
+
+
+
+ IBProjectSource
+ Classes/HelpPageViewController.h
+
+
+
+
+ YES
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSError.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSFileManager.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueCoding.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueObserving.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyedArchiver.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSObject.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSRunLoop.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSThread.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURL.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURLConnection.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CAAnimation.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CALayer.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIAccessibility.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINibLoading.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIResponder.h
+
+
+
+ UILabel
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UILabel.h
+
+
+
+ UIResponder
+ NSObject
+
+
+
+ UIScrollView
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIScrollView.h
+
+
+
+ UISearchBar
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchBar.h
+
+
+
+ UISearchDisplayController
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchDisplayController.h
+
+
+
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITextField.h
+
+
+
+ UIView
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIView.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINavigationController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIPopoverController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISplitViewController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITabBarController.h
+
+
+
+ UIViewController
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIViewController.h
+
+
+
+
+ 0
+ IBCocoaTouchFramework
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
+
+
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
+
+
+ YES
+ ../Hedgewars.xcodeproj
+ 3
+ 123
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/HelpPageLobbyViewController-iPad.xib
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/HelpPageLobbyViewController-iPad.xib Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,1135 @@
+
+
+
+ 1024
+ 10F569
+ 804
+ 1038.29
+ 461.00
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ 123
+
+
+ YES
+
+
+ YES
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ IBFilesOwner
+ IBIPadFramework
+
+
+ IBFirstResponder
+ IBIPadFramework
+
+
+
+ 292
+
+ YES
+
+
+ 292
+ {{742, 389}, {240, 102}}
+
+
+ NO
+ NO
+ IBIPadFramework
+
+ NSImage
+ helpabove.png
+
+
+
+
+ 292
+ {{753, 408}, {109, 22}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Map theme
+
+ Helvetica-Bold
+ 18
+ 16
+
+
+ 1
+ MCAwIDAAA
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{753, 425}, {218, 66}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Here you can choose how your map will appear in game.
+
+ Helvetica
+ 16
+ 16
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{653, 202}, {240, 146}}
+
+
+ NO
+ NO
+ IBIPadFramework
+
+
+
+
+ 292
+ {{664, 223}, {109, 22}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Map type
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{664, 244}, {218, 99}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Choose between a static map or a randomly generated one (might require more time). In a mission you need to perfom some action to win.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{494, 20}, {240, 101}}
+
+
+ NO
+ NO
+ IBIPadFramework
+
+ NSImage
+ helpright.png
+
+
+
+
+ 292
+ {{502, 25}, {109, 22}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Map preview
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{502, 46}, {218, 65}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ This is a small preview of your next map. Tap to select / generate a new map.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{391, 389}, {242, 171}}
+
+
+ NO
+ NO
+ IBIPadFramework
+
+
+
+
+ 292
+ {{401, 413}, {109, 22}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Teams
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{400, 434}, {232, 120}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Select which teams are playing! Add hogs by tapping on them and set their color to figure friend and foe teams out. AI teams will appear with a small robot badge next their name.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{142, 125}, {240, 104}}
+
+
+ NO
+ NO
+ IBIPadFramework
+
+ NSImage
+ helpleft.png
+
+
+
+
+ 292
+ {{162, 133}, {204, 22}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Schemes and Weapons
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{162, 152}, {210, 71}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Here you can choose which rules and which weapon set will be applied in game.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{155, 8}, {278, 50}}
+
+
+ NO
+ NO
+ IBIPadFramework
+
+
+
+
+ 292
+ {{177, 6}, {248, 54}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Did you know you can customize almost everything in the settings page?
+
+ Helvetica-Oblique
+ 14
+ 16
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{686, 583}, {240, 117}}
+
+
+ NO
+ NO
+ IBIPadFramework
+
+ NSImage
+ helpbottom.png
+
+
+
+
+ 292
+ {{697, 592}, {138, 22}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Max hedgehogs
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{697, 609}, {218, 73}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ This number is the maximum size for all the hogs playing (in every team).
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{20, 587}, {240, 109}}
+
+
+ NO
+ NO
+ IBIPadFramework
+
+
+
+
+ 292
+ {{30, 592}, {138, 22}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Size slider
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{30, 608}, {218, 73}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ For Random and Maze maps you can decide to generate only maps of a certain size.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{45, 318}, {240, 128}}
+
+
+ NO
+ NO
+ IBIPadFramework
+
+ NSImage
+ helpplain.png
+
+
+
+
+ 292
+ {{50, 326}, {229, 22}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Tap anywhere to dismiss
+
+
+
+ 1
+ 10
+ 1
+
+
+
+ 292
+ {{52, 348}, {224, 87}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Still confused? Don't worry, it's really simple! Try a couple of games and everything will become clear to you.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{344, 635}, {240, 61}}
+
+
+ NO
+ NO
+ IBIPadFramework
+
+
+
+
+ 292
+ {{353, 637}, {138, 22}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ Start button
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{354, 650}, {218, 46}}
+
+
+ NO
+ YES
+ 7
+ NO
+ IBIPadFramework
+ This button starts the game.
+
+
+
+ 1
+ 10
+ 0
+
+
+ {1024, 768}
+
+
+
+ 3
+ MCAwLjQAA
+
+ NO
+ NO
+
+ 3
+
+ IBIPadFramework
+
+
+
+
+ YES
+
+
+ view
+
+
+
+ 3
+
+
+
+ dismiss
+
+
+ 7
+
+ 16
+
+
+
+
+ YES
+
+ 0
+
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+ 2
+
+
+ YES
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6
+
+
+
+
+ 7
+
+
+
+
+ 8
+
+
+
+
+ 25
+
+
+
+
+ 26
+
+
+
+
+ 27
+
+
+
+
+ 28
+
+
+
+
+ 29
+
+
+
+
+ 30
+
+
+
+
+ 34
+
+
+
+
+ 35
+
+
+
+
+ 36
+
+
+
+
+ 37
+
+
+
+
+ 38
+
+
+
+
+ 39
+
+
+
+
+ 40
+
+
+
+
+ 41
+
+
+
+
+ 42
+
+
+
+
+ 43
+
+
+
+
+ 44
+
+
+
+
+ 45
+
+
+
+
+ 49
+
+
+
+
+ 50
+
+
+
+
+ 51
+
+
+
+
+ 52
+
+
+
+
+ 53
+
+
+
+
+ 54
+
+
+
+
+ 58
+
+
+
+
+ 59
+
+
+
+
+
+
+ YES
+
+ YES
+ -1.CustomClassName
+ -2.CustomClassName
+ 2.CustomClassName
+ 2.IBEditorWindowLastContentRect
+ 2.IBPluginDependency
+ 25.IBPluginDependency
+ 26.IBPluginDependency
+ 27.IBPluginDependency
+ 28.IBPluginDependency
+ 29.IBPluginDependency
+ 30.IBPluginDependency
+ 34.IBPluginDependency
+ 35.IBPluginDependency
+ 36.IBPluginDependency
+ 37.IBPluginDependency
+ 38.IBPluginDependency
+ 39.IBPluginDependency
+ 40.IBPluginDependency
+ 41.IBPluginDependency
+ 42.IBPluginDependency
+ 43.IBPluginDependency
+ 44.IBPluginDependency
+ 45.IBPluginDependency
+ 49.IBPluginDependency
+ 50.IBPluginDependency
+ 51.IBPluginDependency
+ 52.IBPluginDependency
+ 53.IBPluginDependency
+ 54.IBPluginDependency
+ 58.IBPluginDependency
+ 59.IBPluginDependency
+ 6.IBPluginDependency
+ 7.IBPluginDependency
+ 8.IBPluginDependency
+
+
+ YES
+ HelpPageViewController
+ UIResponder
+ UIControl
+ {{273, 125}, {1024, 768}}
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+ YES
+
+
+ YES
+
+
+
+
+ YES
+
+
+ YES
+
+
+
+ 59
+
+
+
+ YES
+
+ HelpPageViewController
+ UIViewController
+
+ dismiss
+ id
+
+
+ dismiss
+
+ dismiss
+ id
+
+
+
+ IBProjectSource
+ Classes/HelpPageViewController.h
+
+
+
+
+ YES
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSError.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSFileManager.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueCoding.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueObserving.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyedArchiver.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSObject.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSRunLoop.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSThread.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURL.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURLConnection.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CAAnimation.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CALayer.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIAccessibility.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINibLoading.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIResponder.h
+
+
+
+ UIControl
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIControl.h
+
+
+
+ UIImageView
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIImageView.h
+
+
+
+ UILabel
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UILabel.h
+
+
+
+ UIResponder
+ NSObject
+
+
+
+ UISearchBar
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchBar.h
+
+
+
+ UISearchDisplayController
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchDisplayController.h
+
+
+
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITextField.h
+
+
+
+ UIView
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIView.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINavigationController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIPopoverController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISplitViewController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITabBarController.h
+
+
+
+ UIViewController
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIViewController.h
+
+
+
+
+ 0
+ IBIPadFramework
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
+
+
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
+
+
+ YES
+ ../Hedgewars.xcodeproj
+ 3
+
+ YES
+
+ YES
+ helpabove.png
+ helpbottom.png
+ helpleft.png
+ helpplain.png
+ helpright.png
+
+
+ YES
+ {295, 156}
+ {295, 156}
+ {308, 144}
+ {296, 138}
+ {308, 144}
+
+
+ 123
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/HelpPageLobbyViewController-iPhone.xib
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/HelpPageLobbyViewController-iPhone.xib Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,907 @@
+
+
+
+ 1024
+ 10F569
+ 804
+ 1038.29
+ 461.00
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ 123
+
+
+ YES
+
+
+
+ YES
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ IBFilesOwner
+ IBCocoaTouchFramework
+
+
+ IBFirstResponder
+ IBCocoaTouchFramework
+
+
+
+ 292
+
+ YES
+
+
+ 268
+
+ YES
+
+
+ 292
+ {{20, 587}, {440, 52}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Still confused? Don't worry, it's really simple! Try a couple of games and everything will become clear to you.
+
+ Helvetica
+ 16
+ 16
+
+
+ 1
+ MCAwIDAAA
+
+
+ 1
+ 10
+ 0
+ 1
+
+
+
+ 292
+ {{20, 279}, {138, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Size slider
+
+ Helvetica-Bold
+ 18
+ 16
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{20, 298}, {440, 44}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ For Random and Maze maps you can decide to generate only maps of a certain size.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{20, 511}, {204, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Schemes and Weapons
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{20, 530}, {433, 45}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Here you can choose which rules and which weapon set will be applied in game.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{20, 68}, {109, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Map preview
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{20, 88}, {440, 44}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ This is a small preview of your next map. Tap to select / generate a new map.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{20, 140}, {109, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Map type
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{20, 164}, {440, 58}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Choose between a static map or a randomly generated one (might require more time). In a mission you need to perfom some action to win.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{20, 229}, {109, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Map theme
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{20, 244}, {440, 33}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Here you can choose how your map will appear in game.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{20, 347}, {138, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Max hedgehogs
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{20, 367}, {440, 41}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ This number is the maximum size for all the hogs playing (in every team).
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{20, 418}, {109, 22}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Teams
+
+
+
+ 1
+ 10
+
+
+
+ 292
+ {{20, 436}, {433, 66}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Select which teams are playing! Add hogs by tapping on them and set their color to figure friend and foe teams out. AI teams will appear with a small robot badge next their name.
+
+
+
+ 1
+ 10
+ 0
+
+
+
+ 292
+ {{13, 3}, {440, 60}}
+
+ NO
+ YES
+ 7
+ NO
+ IBCocoaTouchFramework
+ Here you can find help for the game configuration options. You can customize almost everything in the settings page.
+
+ Helvetica-Oblique
+ 16
+ 16
+
+
+
+ 1
+ 10
+ 0
+ 1
+
+
+ {480, 276}
+
+ YES
+ YES
+ IBCocoaTouchFramework
+
+
+ {480, 276}
+
+
+ 2
+ MC45OTYwNzg0OTEyIDAuOTg4MjM1MzU0NCAxAA
+
+ NO
+ NO
+
+
+ 3
+
+ IBCocoaTouchFramework
+
+
+
+
+ YES
+
+
+ view
+
+
+
+ 3
+
+
+
+ scrollView
+
+
+
+ 95
+
+
+
+
+ YES
+
+ 0
+
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+ 2
+
+
+ YES
+
+
+
+
+
+ 60
+
+
+ YES
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 61
+
+
+
+
+ 62
+
+
+
+
+ 63
+
+
+
+
+ 64
+
+
+
+
+ 65
+
+
+
+
+ 66
+
+
+
+
+ 67
+
+
+
+
+ 68
+
+
+
+
+ 69
+
+
+
+
+ 70
+
+
+
+
+ 71
+
+
+
+
+ 72
+
+
+
+
+ 73
+
+
+
+
+ 74
+
+
+
+
+ 75
+
+
+
+
+ 76
+
+
+
+
+
+
+ YES
+
+ YES
+ -1.CustomClassName
+ -2.CustomClassName
+ 2.IBEditorWindowLastContentRect
+ 2.IBPluginDependency
+ 60.IBPluginDependency
+ 60.IBViewBoundsToFrameTransform
+ 61.IBPluginDependency
+ 61.IBViewBoundsToFrameTransform
+ 62.IBPluginDependency
+ 62.IBViewBoundsToFrameTransform
+ 63.IBPluginDependency
+ 63.IBViewBoundsToFrameTransform
+ 64.IBPluginDependency
+ 64.IBViewBoundsToFrameTransform
+ 65.IBPluginDependency
+ 65.IBViewBoundsToFrameTransform
+ 66.IBPluginDependency
+ 66.IBViewBoundsToFrameTransform
+ 67.IBPluginDependency
+ 67.IBViewBoundsToFrameTransform
+ 68.IBPluginDependency
+ 68.IBViewBoundsToFrameTransform
+ 69.IBPluginDependency
+ 69.IBViewBoundsToFrameTransform
+ 70.IBPluginDependency
+ 70.IBViewBoundsToFrameTransform
+ 71.IBPluginDependency
+ 71.IBViewBoundsToFrameTransform
+ 72.IBPluginDependency
+ 72.IBViewBoundsToFrameTransform
+ 73.IBPluginDependency
+ 73.IBViewBoundsToFrameTransform
+ 74.IBPluginDependency
+ 74.IBViewBoundsToFrameTransform
+ 75.IBPluginDependency
+ 75.IBViewBoundsToFrameTransform
+ 76.IBPluginDependency
+ 76.IBViewBoundsToFrameTransform
+
+
+ YES
+ HelpPageViewController
+ UIResponder
+ {{16, 775}, {480, 320}}
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ AUGgAABEDIAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABC+AAAw0kAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABBoAAAw14AAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABBoAAAw9mAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABBoAAAw+6AAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABByAAAwqYAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABBoAAAwxMAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAADCQAAAwqYAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAADCQAAAwzcAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDAAAAw3AAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDAAAAw5aAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDOwAAw6OAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDOwAAw8WAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDDgAAw7UAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDDQAAw/CAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAADBAAAAwlQAAA
+
+
+
+
+ YES
+
+
+ YES
+
+
+
+
+ YES
+
+
+ YES
+
+
+
+ 95
+
+
+
+ YES
+
+ HelpPageViewController
+ UIViewController
+
+ dismiss
+ id
+
+
+ dismiss
+
+ dismiss
+ id
+
+
+
+ scrollView
+ UIScrollView
+
+
+ scrollView
+
+ scrollView
+ UIScrollView
+
+
+
+ IBProjectSource
+ Classes/HelpPageViewController.h
+
+
+
+
+ YES
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSError.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSFileManager.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueCoding.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueObserving.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyedArchiver.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSObject.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSRunLoop.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSThread.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURL.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURLConnection.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CAAnimation.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CALayer.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIAccessibility.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINibLoading.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIResponder.h
+
+
+
+ UILabel
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UILabel.h
+
+
+
+ UIResponder
+ NSObject
+
+
+
+ UIScrollView
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIScrollView.h
+
+
+
+ UISearchBar
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchBar.h
+
+
+
+ UISearchDisplayController
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchDisplayController.h
+
+
+
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITextField.h
+
+
+
+ UIView
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIView.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINavigationController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIPopoverController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISplitViewController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITabBarController.h
+
+
+
+ UIViewController
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIViewController.h
+
+
+
+
+ 0
+ IBCocoaTouchFramework
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
+
+
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
+
+
+ YES
+ ../Hedgewars.xcodeproj
+ 3
+ 123
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Icons/Default-ipad-Landscape.png
Binary file project_files/HedgewarsMobile/Resources/Icons/Default-ipad-Landscape.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Icons/Default.png
Binary file project_files/HedgewarsMobile/Resources/Icons/Default.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Icons/LI-ipad-Landscape.png
Binary file project_files/HedgewarsMobile/Resources/Icons/LI-ipad-Landscape.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Icons/fb.png
Binary file project_files/HedgewarsMobile/Resources/Icons/fb.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Icons/irc.png
Binary file project_files/HedgewarsMobile/Resources/Icons/irc.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Icons/tw.png
Binary file project_files/HedgewarsMobile/Resources/Icons/tw.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/MainMenuViewController-iPhone.xib
--- a/project_files/HedgewarsMobile/Resources/MainMenuViewController-iPhone.xib Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/MainMenuViewController-iPhone.xib Mon Nov 15 12:37:39 2010 +0100
@@ -2,9 +2,9 @@
1024
- 10F569
+ 10H574
804
- 1038.29
+ 1038.35
461.00
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
@@ -12,7 +12,7 @@
YES
-
+
YES
@@ -45,7 +45,7 @@
274
- {{0, 21}, {480, 278}}
+ {480, 300}
3
@@ -56,13 +56,25 @@
IBCocoaTouchFramework
NSImage
- backgroundCenter.png
+ backgroundTop.png
+
+
+
+
+ 292
+ {{0, 300}, {480, 20}}
+
+ NO
+ IBCocoaTouchFramework
+
+ NSImage
+ borderBottom.png
293
- {{120, 44}, {240, 52}}
+ {{109, 35}, {262, 84}}
NO
NO
@@ -77,7 +89,7 @@
289
- {{130, 166}, {220, 52}}
+ {{208, 169}, {64, 64}}
1
@@ -107,13 +119,13 @@
NSImage
- playButton.png
+ startButton.png
269
- {{401, 247}, {59, 52}}
+ {{355, 208}, {59, 52}}
NO
NO
@@ -136,7 +148,7 @@
269
- {{20, 247}, {59, 52}}
+ {{66, 208}, {59, 52}}
NO
NO
@@ -156,40 +168,10 @@
savesButton.png
-
-
- 290
- {480, 17}
-
- NO
- NO
- 4
- NO
- IBCocoaTouchFramework
-
- NSImage
- borderTop.png
-
-
-
-
- 266
- {{0, 297}, {480, 23}}
-
- NO
- NO
- 4
- NO
- IBCocoaTouchFramework
-
- NSImage
- borderBottom.png
-
-
292
- {{0, 20}, {18, 19}}
+ {{20, 19}, {18, 19}}
NO
0.5
@@ -283,13 +265,12 @@
YES
-
-
+
+
+
-
-
@@ -305,8 +286,8 @@
- 35
-
+ 23
+
@@ -315,8 +296,18 @@
- 23
-
+ 45
+
+
+
+
+ 41
+
+
+
+
+ 43
+
@@ -329,21 +320,6 @@
-
- 36
-
-
-
-
- 41
-
-
-
-
- 43
-
-
-
@@ -355,48 +331,50 @@
1.IBEditorWindowLastContentRect
1.IBPluginDependency
22.IBPluginDependency
+ 22.IBViewBoundsToFrameTransform
23.IBPluginDependency
23.IBViewBoundsToFrameTransform
24.IBPluginDependency
24.IBViewBoundsToFrameTransform
28.IBPluginDependency
28.IBViewBoundsToFrameTransform
- 35.IBPluginDependency
- 36.IBPluginDependency
41.IBPluginDependency
41.IBViewBoundsToFrameTransform
43.IBPluginDependency
43.IBViewBoundsToFrameTransform
+ 45.IBPluginDependency
YES
MainMenuViewController
UIResponder
- {{432, 461}, {480, 320}}
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ {{517, 519}, {480, 320}}
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- P4AAAL+AAABC7AAAwpYAAA
+ P4AAAL+AAAAAAAAAw5UAAA
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- P4AAAL+AAABC7AAAw0gAAA
+ P4AAAL+AAABC2gAAww8AAA
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- AUPIgABDdwAAA
+ P4AAAL+AAABDTAAAw20AAA
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- P4AAAL+AAABBoAAAw4+AAA
+ P4AAAL+AAABDsYAAw4QAAA
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- P4AAAL+AAABDywAAw5cAAA
+ P4AAAL+AAABBcAAAwhAAAA
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABCjAAAw4QAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
@@ -415,7 +393,7 @@
- 44
+ 45
@@ -662,22 +640,20 @@
YES
YES
- backgroundCenter.png
+ backgroundTop.png
borderBottom.png
- borderTop.png
- playButton.png
savesButton.png
settingsButton.png
+ startButton.png
title_small.png
YES
- {480, 278}
- {480, 21}
- {480, 21}
- {216, 51}
+ {480, 300}
+ {480, 20}
{61, 59}
{61, 59}
+ {64, 64}
{262, 84}
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/MapConfigViewController-iPhone.xib
--- a/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPhone.xib Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/MapConfigViewController-iPhone.xib Mon Nov 15 12:37:39 2010 +0100
@@ -2,9 +2,9 @@
1024
- 10F569
+ 10H574
804
- 1038.29
+ 1038.35
461.00
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
@@ -42,6 +42,18 @@
274
YES
+
+
+ 292
+ {480, 276}
+
+ NO
+ IBCocoaTouchFramework
+
+ NSImage
+ backgroundCenter.png
+
+
292
@@ -87,6 +99,10 @@
+
+ 2
+ MC4wMjM1Mjk0MTQwOSAwLjM3NjQ3MDYyNTQgMAA
+
@@ -130,7 +146,7 @@
292
- {{28, 234}, {42, 21}}
+ {{20, 221}, {48, 35}}
NO
YES
@@ -138,9 +154,9 @@
NO
IBCocoaTouchFramework
...
-
- 1
- MCAwIDAAA
+
+ 2
+ MC45NDkwMTk2NzA1IDAuNzY4NjI3NTI0NCAwAA
1
@@ -150,7 +166,7 @@
292
- {{100, 203}, {145, 29}}
+ {{88, 209}, {169, 29}}
NO
YES
@@ -163,7 +179,10 @@
24
16
-
+
+ 2
+ MC45NDExNzY1MzM3IDAuODE1Njg2MzQ1MSAwAA
+
1
10
@@ -174,16 +193,22 @@
274
{{284, 0}, {196, 276}}
-
+
+ 3
+ MCAwAA
+
+ NO
YES
+ NO
IBCocoaTouchFramework
NO
- 1
+ 1
+ 2
0
YES
44
- 22
- 22
+ 10
+ 10
{480, 276}
@@ -331,11 +356,12 @@
YES
-
-
+
+
+
@@ -381,6 +407,11 @@
Table View (Themes)
+
+ 35
+
+
+
@@ -392,26 +423,48 @@
1.IBEditorWindowLastContentRect
1.IBPluginDependency
11.IBPluginDependency
+ 11.IBViewBoundsToFrameTransform
17.IBPluginDependency
+ 17.IBViewBoundsToFrameTransform
25.IBPluginDependency
+ 25.IBViewBoundsToFrameTransform
+ 35.IBPluginDependency
+ 35.IBViewBoundsToFrameTransform
7.IBPluginDependency
8.IBPluginDependency
9.CustomClassName
9.IBPluginDependency
+ 9.IBViewBoundsToFrameTransform
YES
MapConfigViewController
UIResponder
- {{744, 568}, {480, 320}}
+ {{507, 233}, {480, 320}}
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABB6AAAw3kAAA
+
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABCyAAAw2YAAA
+
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABDjgAAw4kAAA
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAAAAAAAAw58AAA
+
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
MapPreviewButtonView
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+ P4AAAL+AAABBUAAAwxIAAA
+
@@ -430,7 +483,7 @@
- 34
+ 35
@@ -700,6 +753,14 @@
+ UIImageView
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIImageView.h
+
+
+
UILabel
UIView
@@ -826,6 +887,10 @@
YES
../Hedgewars.xcodeproj
3
+
+ backgroundCenter.png
+ {480, 276}
+
123
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Overlay/background_med.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/background_med.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Overlay/background_small.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/background_small.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Overlay/mediumBackground~ipad.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/mediumBackground~ipad.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Overlay/smallerBackground@2x-iphone.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/smallerBackground@2x-iphone.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Overlay/smallerBackground~ipad.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/smallerBackground~ipad.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Overlay/smallerBackground~iphone.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/smallerBackground~iphone.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/OverlayViewController.xib
--- a/project_files/HedgewarsMobile/Resources/OverlayViewController.xib Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/OverlayViewController.xib Mon Nov 15 12:37:39 2010 +0100
@@ -3,12 +3,12 @@
1024
10F569
- 788
+ 804
1038.29
461.00
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 117
+ 123
YES
@@ -1050,6 +1050,6 @@
{64, 64}
- 117
+ 123
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/SavedGamesViewController.xib
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/SavedGamesViewController.xib Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,587 @@
+
+
+
+ 1024
+ 10F569
+ 804
+ 1038.29
+ 461.00
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ 123
+
+
+ YES
+
+
+
+ YES
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ IBFilesOwner
+ IBIPadFramework
+
+
+ IBFirstResponder
+ IBIPadFramework
+
+
+
+ 292
+
+ YES
+
+
+ 290
+ {768, 44}
+
+ NO
+ 458912
+ IBIPadFramework
+
+ YES
+
+ IBIPadFramework
+ 1
+
+ 0
+
+
+ IBIPadFramework
+
+ 5
+
+
+ Clear All
+ IBIPadFramework
+ 1
+
+
+
+ IBIPadFramework
+
+ 2
+
+
+
+
+
+ 274
+ {{0, 44}, {768, 724}}
+
+
+ 1
+ MCAwIDAgMAA
+
+ YES
+ IBIPadFramework
+ YES
+ 1
+ 2
+ 0
+ YES
+ 44
+ 10
+ 10
+
+
+ {768, 768}
+
+
+ 3
+ MQA
+
+ NO
+
+ 3
+
+ IBIPadFramework
+
+
+
+
+ YES
+
+
+ view
+
+
+
+ 3
+
+
+
+ buttonPressed:
+
+
+
+ 6
+
+
+
+ dataSource
+
+
+
+ 8
+
+
+
+ delegate
+
+
+
+ 9
+
+
+
+ tableView
+
+
+
+ 10
+
+
+
+ toggleEdit:
+
+
+
+ 14
+
+
+
+ clearAll:
+
+
+
+ 16
+
+
+
+
+ YES
+
+ 0
+
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+ 2
+
+
+ YES
+
+
+
+
+
+
+ 4
+
+
+ YES
+
+
+
+
+
+
+
+
+ 5
+
+
+
+
+ 7
+
+
+
+
+ 12
+
+
+
+
+ 13
+
+
+
+
+ 15
+
+
+
+
+
+
+ YES
+
+ YES
+ -1.CustomClassName
+ -2.CustomClassName
+ 12.IBPluginDependency
+ 13.IBPluginDependency
+ 15.IBPluginDependency
+ 2.IBEditorWindowLastContentRect
+ 2.IBPluginDependency
+ 4.IBPluginDependency
+ 5.IBPluginDependency
+ 7.IBPluginDependency
+
+
+ YES
+ SavedGamesViewController
+ UIResponder
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ {{467, 276}, {768, 768}}
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+ YES
+
+
+ YES
+
+
+
+
+ YES
+
+
+ YES
+
+
+
+ 16
+
+
+
+ YES
+
+ SavedGamesViewController
+ UIViewController
+
+ YES
+
+ YES
+ buttonPressed:
+ clearAll:
+ toggleEdit:
+
+
+ YES
+ id
+ id
+ id
+
+
+
+ YES
+
+ YES
+ buttonPressed:
+ clearAll:
+ toggleEdit:
+
+
+ YES
+
+ buttonPressed:
+ id
+
+
+ clearAll:
+ id
+
+
+ toggleEdit:
+ id
+
+
+
+
+ tableView
+ UITableView
+
+
+ tableView
+
+ tableView
+ UITableView
+
+
+
+ IBProjectSource
+ Classes/SavedGamesViewController.h
+
+
+
+
+ YES
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSError.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSFileManager.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueCoding.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyValueObserving.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSKeyedArchiver.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSObject.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSRunLoop.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSThread.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURL.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ Foundation.framework/Headers/NSURLConnection.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CAAnimation.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ QuartzCore.framework/Headers/CALayer.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIAccessibility.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINibLoading.h
+
+
+
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIResponder.h
+
+
+
+ UIBarButtonItem
+ UIBarItem
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIBarButtonItem.h
+
+
+
+ UIBarItem
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIBarItem.h
+
+
+
+ UIResponder
+ NSObject
+
+
+
+ UIScrollView
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIScrollView.h
+
+
+
+ UISearchBar
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchBar.h
+
+
+
+ UISearchDisplayController
+ NSObject
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISearchDisplayController.h
+
+
+
+ UITableView
+ UIScrollView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITableView.h
+
+
+
+ UIToolbar
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIToolbar.h
+
+
+
+ UIView
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITextField.h
+
+
+
+ UIView
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIView.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UINavigationController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIPopoverController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UISplitViewController.h
+
+
+
+ UIViewController
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UITabBarController.h
+
+
+
+ UIViewController
+ UIResponder
+
+ IBFrameworkSource
+ UIKit.framework/Headers/UIViewController.h
+
+
+
+
+ 0
+ IBIPadFramework
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
+
+
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
+
+
+ YES
+ ../Hedgewars.xcodeproj
+ 3
+ 123
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist Mon Nov 15 12:37:39 2010 +0100
@@ -8,9 +8,13 @@
30
100
15
+ 47
+ 5
+ 0
+ 35
+ 25
0
0
- 1
0
40
@@ -37,6 +41,7 @@
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/Schemes/Clean Slate.plist
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Clean Slate.plist Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,47 @@
+
+
+
+
+ basic
+
+ 100
+ 45
+ 100
+ 15
+ 47
+ 5
+ 5
+ 35
+ 25
+ 3
+ 4
+ 0
+ 2
+
+ gamemod
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist Mon Nov 15 12:37:39 2010 +0100
@@ -8,7 +8,11 @@
45
100
15
+ 47
5
+ 5
+ 35
+ 25
3
4
0
@@ -22,7 +26,7 @@
-
+
@@ -37,6 +41,7 @@
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/Schemes/Fort Mode.plist
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Fort Mode.plist Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,47 @@
+
+
+
+
+ basic
+
+ 100
+ 45
+ 100
+ 15
+ 47
+ 5
+ 5
+ 35
+ 25
+ 3
+ 0
+ 0
+ 0
+
+ gamemod
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist Mon Nov 15 12:37:39 2010 +0100
@@ -4,11 +4,15 @@
basic
- 150
+ 50
30
- 50
+ 150
15
+ 47
+ 5
0
+ 35
+ 25
0
80
0
@@ -22,7 +26,7 @@
-
+
@@ -37,6 +41,7 @@
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist Mon Nov 15 12:37:39 2010 +0100
@@ -8,9 +8,13 @@
15
100
15
+ 47
+ 5
0
+ 35
+ 25
3
- 4
+ 0
0
2
@@ -37,6 +41,7 @@
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist Mon Nov 15 12:37:39 2010 +0100
@@ -8,9 +8,13 @@
300
100
50
+ 47
+ 5
1
+ 0
+ 35
3
- 4
+ 0
0
0
@@ -37,6 +41,7 @@
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/Schemes/Thinking with Portals.plist
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Thinking with Portals.plist Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,47 @@
+
+
+
+
+ basic
+
+ 100
+ 45
+ 100
+ 15
+ 47
+ 5
+ 2
+ 25
+ 25
+ 4
+ 5
+ 0
+ 5
+
+ gamemod
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist Mon Nov 15 12:37:39 2010 +0100
@@ -7,11 +7,15 @@
100
100
100
- 15
+ 100
+ 47
5
+ 5
+ 35
+ 30
3
- 4
- 0
+ 5
+ 10
2
gamemod
@@ -22,7 +26,7 @@
-
+
@@ -36,6 +40,7 @@
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist Mon Nov 15 12:37:39 2010 +0100
@@ -8,7 +8,11 @@
30
100
15
+ 47
5
+ 5
+ 35
+ 25
3
10
10
@@ -22,7 +26,7 @@
-
+
@@ -37,6 +41,7 @@
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/iFrontend/basicFlags_en.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/iFrontend/basicFlags_en.plist Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/iFrontend/basicFlags_en.plist Mon Nov 15 12:37:39 2010 +0100
@@ -3,30 +3,10 @@
- default
- 100
- image
- Damage
- max
- 300
- min
- 10
- title
- Damage Modifier
-
-
- default
- 45
- image
- Time
- max
- 100
- min
- 1
- title
- Turn Time
-
-
+ checkOverMax
+
+ command
+
default
100
image
@@ -39,6 +19,42 @@
Initial Health
+ checkOverMax
+
+ command
+ e$turntime
+ default
+ 45
+ image
+ Time
+ max
+ 100
+ min
+ 1
+ title
+ Turn Time
+
+
+ checkOverMax
+
+ command
+ e$damagepct
+ default
+ 100
+ image
+ Damage
+ max
+ 300
+ min
+ 10
+ title
+ Damage Modifier
+
+
+ checkOverMax
+
+ command
+ e$sd_turns
default
15
image
@@ -51,6 +67,42 @@
Sudden Death Timeout
+ checkOverMax
+
+ command
+ e$waterrise
+ default
+ 47
+ image
+ SuddenDeath
+ max
+ 100
+ min
+ 0
+ title
+ Water Rise Amount
+
+
+ checkOverMax
+
+ command
+ e$healthdec
+ default
+ 5
+ image
+ SuddenDeath
+ max
+ 100
+ min
+ 0
+ title
+ Health Decrease
+
+
+ checkOverMax
+
+ command
+ e$casefreq
default
5
image
@@ -60,21 +112,61 @@
min
0
title
- Crate Drops
+ Crate Drop Turns
+
+
+ checkOverMax
+
+ command
+ e$healthprob
+ default
+ 35
+ image
+ Health
+ max
+ 100
+ min
+ 0
+ title
+ Health Kit Probability
+ checkOverMax
+
+ command
+ e$hcaseamount
+ default
+ 25
+ image
+ Health
+ max
+ 200
+ min
+ 0
+ title
+ Health Amount in Kit
+
+
+ checkOverMax
+
+ command
+ e$minestime
default
3
image
Time
max
- 3
+ 5
min
- 0
+ -1
title
Mines Time
+ checkOverMax
+
+ command
+ e$minesnum
default
4
image
@@ -82,11 +174,15 @@
max
80
min
- 1
+ 0
title
Mines Number
+ checkOverMax
+
+ command
+ e$minedudpct
default
0
image
@@ -99,6 +195,10 @@
Dud Mines Probability
+ checkOverMax
+
+ command
+ e$explosives
default
2
image
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/iFrontend/credits.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/iFrontend/credits.plist Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/iFrontend/credits.plist Mon Nov 15 12:37:39 2010 +0100
@@ -15,9 +15,10 @@
Carlos "Palewolf" Vives
Richard "Sheepluva" Korlyi
Henning "Prg" Kühn
+ Henrik "Henek" Rostedt
- Tiyuri
+ John "Fizzy" Dum
Joshua Frese
Stanko Tadić
Julien Koesten
@@ -27,7 +28,7 @@
Stephen "Armagon" Alexander
- Finn "Tiyuri" Brice
+ John "Fizzy" Dum
Jonatan Nilsson
Daniel Martin
@@ -53,7 +54,7 @@
Aleksey Andreev
Aleksander Rudalev
- Natasha Stafeeva
+ Natasha Korotaeva
Adam Higerd
@@ -65,13 +66,14 @@
Desktop frontend improvements
Desktop frontend improvements
Mac OS X and iPhone version
- Gamepad support, OpenGL wizard
+ Gamepad support
Many engine improvements and graphics
Many engine and server improvements
Maze maps
+ Engine and frontend improvements
-
+ Main graphics
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/Settings/iFrontend/gameFlags_en.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/iFrontend/gameFlags_en.plist Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/HedgewarsMobile/Resources/Settings/iFrontend/gameFlags_en.plist Mon Nov 15 12:37:39 2010 +0100
@@ -20,11 +20,11 @@
description
- Teams will start on opposite sides of the terrain (two teams only)
+ Teams will start on opposite sides of the terrain
image
TeamsDivide
title
- Divide Team
+ Divide Team (max 2 teams)
description
@@ -52,11 +52,11 @@
description
- Enable random mines
+ All (living) hedgehogs are fully restored at the end of turn
image
- Mines
+ ResetHealth
title
- Add Mines
+ Reset Health
description
@@ -84,7 +84,7 @@
description
- Defend your fort and destroy the opponents (two teams only)
+ Defend your fort and destroy the opponents
image
Forts
title
@@ -100,7 +100,7 @@
description
- Play with a King. If he dies, your side loses
+ Play with a King; when he dies, your side loses
image
King
title
@@ -164,11 +164,19 @@
description
- Each hedgehog has its own ammo.
+ Each hedgehog has its own ammo
image
PerHogAmmo
title
Per Hedgehog Ammo
+
+ description
+ Wind will not affect weapons
+ image
+ NoWind
+ title
+ Disable Wind
+
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/surpise.png
Binary file project_files/HedgewarsMobile/Resources/surpise.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/HedgewarsMobile/Resources/surprise.png
Binary file project_files/HedgewarsMobile/Resources/surprise.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 project_files/hedgewars.pro
--- a/project_files/hedgewars.pro Wed Oct 27 14:23:47 2010 +0200
+++ b/project_files/hedgewars.pro Mon Nov 15 12:37:39 2010 +0100
@@ -62,9 +62,10 @@
SOURCES += ../QTfrontend/xfire.cpp
}
+TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_ar.ts
TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_bg.ts
+TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_cs.ts
TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_de.ts
-TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_cs.ts
TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_en.ts
TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_es.ts
TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_fi.ts
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/CMakeLists.txt
--- a/share/hedgewars/Data/CMakeLists.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -1,3 +1,3 @@
-foreach(dir "Fonts" "Forts" "Graphics" "Locale" "Maps" "Music" "Sounds" "Themes" "Missions" "Names")
+foreach(dir "Fonts" "Forts" "Graphics" "Locale" "Maps" "Music" "Sounds" "Themes" "Missions" "Names" "misc")
add_subdirectory(${dir})
endforeach(dir)
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/Cake-preview.png
Binary file share/hedgewars/Data/Forts/Cake-preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/Castle-preview.png
Binary file share/hedgewars/Data/Forts/Castle-preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/Earth-preview.png
Binary file share/hedgewars/Data/Forts/Earth-preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/EarthR.png
Binary file share/hedgewars/Data/Forts/EarthR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/EvilChicken-preview.png
Binary file share/hedgewars/Data/Forts/EvilChicken-preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/EvilChickenL.png
Binary file share/hedgewars/Data/Forts/EvilChickenL.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/EvilChickenR.png
Binary file share/hedgewars/Data/Forts/EvilChickenR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/Flowerhog-preview.png
Binary file share/hedgewars/Data/Forts/Flowerhog-preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/Hydrant-preview.png
Binary file share/hedgewars/Data/Forts/Hydrant-preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/Lego-preview.png
Binary file share/hedgewars/Data/Forts/Lego-preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/Plane-preview.png
Binary file share/hedgewars/Data/Forts/Plane-preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/Statue-preview.png
Binary file share/hedgewars/Data/Forts/Statue-preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/UFO-preview.png
Binary file share/hedgewars/Data/Forts/UFO-preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Forts/Wood-preview.png
Binary file share/hedgewars/Data/Forts/Wood-preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/AirDrill.png
Binary file share/hedgewars/Data/Graphics/AirDrill.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png
Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/AmmoMenu/SlotKeys.png
Binary file share/hedgewars/Data/Graphics/AmmoMenu/SlotKeys.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/BazookaShell.png
Binary file share/hedgewars/Data/Graphics/BazookaShell.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/BulletHit.png
Binary file share/hedgewars/Data/Graphics/BulletHit.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/BulletHit.sifz
Binary file share/hedgewars/Data/Graphics/BulletHit.sifz has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Case.png
Binary file share/hedgewars/Data/Graphics/Case.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Chunk.png
Binary file share/hedgewars/Data/Graphics/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Cross.png
Binary file share/hedgewars/Data/Graphics/Cross.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Crosshair.png
Binary file share/hedgewars/Data/Graphics/Crosshair.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Explosives.png
Binary file share/hedgewars/Data/Graphics/Explosives.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Finger.png
Binary file share/hedgewars/Data/Graphics/Finger.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/FirstAid.png
Binary file share/hedgewars/Data/Graphics/FirstAid.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Flags/cm_pacman2.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_pacman2.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Flame.png
Binary file share/hedgewars/Data/Graphics/Flame.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Grenade.png
Binary file share/hedgewars/Data/Graphics/Grenade.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/HHDeath.png
Binary file share/hedgewars/Data/Graphics/HHDeath.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/AkuAku.png
Binary file share/hedgewars/Data/Graphics/Hats/AkuAku.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Bob.png
Binary file share/hedgewars/Data/Graphics/Hats/Bob.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/BrainSlug.png
Binary file share/hedgewars/Data/Graphics/Hats/BrainSlug.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/BrainSlugMouth.png
Binary file share/hedgewars/Data/Graphics/Hats/BrainSlugMouth.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Bub.png
Binary file share/hedgewars/Data/Graphics/Hats/Bub.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Cororon.png
Binary file share/hedgewars/Data/Graphics/Hats/Cororon.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Deer.png
Binary file share/hedgewars/Data/Graphics/Hats/Deer.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Disguise.png
Binary file share/hedgewars/Data/Graphics/Hats/Disguise.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Dragon.png
Binary file share/hedgewars/Data/Graphics/Hats/Dragon.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Elvis.png
Binary file share/hedgewars/Data/Graphics/Hats/Elvis.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/InfernalHorns.png
Binary file share/hedgewars/Data/Graphics/Hats/InfernalHorns.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Kululun.png
Binary file share/hedgewars/Data/Graphics/Hats/Kululun.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Ladle.png
Binary file share/hedgewars/Data/Graphics/Hats/Ladle.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Laminaria.png
Binary file share/hedgewars/Data/Graphics/Hats/Laminaria.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Moose.png
Binary file share/hedgewars/Data/Graphics/Hats/Moose.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Mummy.png
Binary file share/hedgewars/Data/Graphics/Hats/Mummy.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/OldMan.png
Binary file share/hedgewars/Data/Graphics/Hats/OldMan.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Pantsu.png
Binary file share/hedgewars/Data/Graphics/Hats/Pantsu.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Pig.png
Binary file share/hedgewars/Data/Graphics/Hats/Pig.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Plunger.png
Binary file share/hedgewars/Data/Graphics/Hats/Plunger.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/RSR.png
Binary file share/hedgewars/Data/Graphics/Hats/RSR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Reserved/51e46e89a4f7ee3ea760bb587063b202judo.png
Binary file share/hedgewars/Data/Graphics/Hats/Reserved/51e46e89a4f7ee3ea760bb587063b202judo.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Reserved/941fc72a68a50cebf562059816e8cb26RSR.png
Binary file share/hedgewars/Data/Graphics/Hats/Reserved/941fc72a68a50cebf562059816e8cb26RSR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Reserved/Zombie.png
Binary file share/hedgewars/Data/Graphics/Hats/Reserved/Zombie.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Reserved/afaff8193505e29230b76f8c8dd78170lambda.png
Binary file share/hedgewars/Data/Graphics/Hats/Reserved/afaff8193505e29230b76f8c8dd78170lambda.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Reserved/c2fb2dd15ec2ff9a332462ab19cfac4doldskool.png
Binary file share/hedgewars/Data/Graphics/Hats/Reserved/c2fb2dd15ec2ff9a332462ab19cfac4doldskool.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Reserved/e587f6146ebfbdefdc028c591643f220Bob.png
Binary file share/hedgewars/Data/Graphics/Hats/Reserved/e587f6146ebfbdefdc028c591643f220Bob.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Reserved/e587f6146ebfbdefdc028c591643f220Bub.png
Binary file share/hedgewars/Data/Graphics/Hats/Reserved/e587f6146ebfbdefdc028c591643f220Bub.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Reserved/e587f6146ebfbdefdc028c591643f220Cororon.png
Binary file share/hedgewars/Data/Graphics/Hats/Reserved/e587f6146ebfbdefdc028c591643f220Cororon.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Reserved/e587f6146ebfbdefdc028c591643f220Kululun.png
Binary file share/hedgewars/Data/Graphics/Hats/Reserved/e587f6146ebfbdefdc028c591643f220Kululun.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Samus.png
Binary file share/hedgewars/Data/Graphics/Hats/Samus.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/SauceBoatSilver.png
Binary file share/hedgewars/Data/Graphics/Hats/SauceBoatSilver.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/ShaggyYeti.png
Binary file share/hedgewars/Data/Graphics/Hats/ShaggyYeti.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/ShortHair_Black.png
Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Black.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/ShortHair_Brown.png
Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Brown.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/ShortHair_Grey.png
Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Grey.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/ShortHair_Red.png
Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Red.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/ShortHair_Yellow.png
Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Yellow.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Sleepwalker.png
Binary file share/hedgewars/Data/Graphics/Hats/Sleepwalker.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/SunWukong.png
Binary file share/hedgewars/Data/Graphics/Hats/SunWukong.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Teacup.png
Binary file share/hedgewars/Data/Graphics/Hats/Teacup.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Teapot.png
Binary file share/hedgewars/Data/Graphics/Hats/Teapot.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Terminator_Glasses.png
Binary file share/hedgewars/Data/Graphics/Hats/Terminator_Glasses.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/Zombi.png
Binary file share/hedgewars/Data/Graphics/Hats/Zombi.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/judo.png
Binary file share/hedgewars/Data/Graphics/Hats/judo.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hats/lambda.png
Binary file share/hedgewars/Data/Graphics/Hats/lambda.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/ILoveLemonade.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/ILoveLemonade.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/Idle.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/Idle.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/Juggle.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/Juggle.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/Shrug.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/Shrug.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/Vampiric.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/Vampiric.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/amCheese.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/amCheese.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/amFlamethrower.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/amFlamethrower.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/amHammer.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/amHammer.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/amMine.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/amMine.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/amResurrector.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/amResurrector.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/amSMine.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/amSMine.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Hedgehog/amVamp.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/amVamp.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Lag.png
Binary file share/hedgewars/Data/Graphics/Lag.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/MineDead.png
Binary file share/hedgewars/Data/Graphics/MineDead.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/MineOff.png
Binary file share/hedgewars/Data/Graphics/MineOff.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/MineOn.png
Binary file share/hedgewars/Data/Graphics/MineOn.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/NapalmBomb.png
Binary file share/hedgewars/Data/Graphics/NapalmBomb.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Note.png
Binary file share/hedgewars/Data/Graphics/Note.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Piano.png
Binary file share/hedgewars/Data/Graphics/Piano.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Power.png
Binary file share/hedgewars/Data/Graphics/Power.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/SMineOff.png
Binary file share/hedgewars/Data/Graphics/SMineOff.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/SMineOn.png
Binary file share/hedgewars/Data/Graphics/SMineOn.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Splash.png
Binary file share/hedgewars/Data/Graphics/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Utility.png
Binary file share/hedgewars/Data/Graphics/Utility.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/Watermelon.png
Binary file share/hedgewars/Data/Graphics/Watermelon.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/amGirder.png
Binary file share/hedgewars/Data/Graphics/amGirder.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Graphics/cheese.png
Binary file share/hedgewars/Data/Graphics/cheese.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/ar.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/ar.txt Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,469 @@
+; Arabic locale
+
+00:00=رمانة
+00:01=عنقودية
+00:02=صاروخ
+00:03=صاروخ موجه
+00:04=بندقية
+00:05=مطرقة
+00:06=ترك
+00:07=حبل
+00:08=لغم
+00:09=مسدس حربي
+00:10=ديناميت
+00:11=مضرب بيسبول
+00:12=لكمة
+00:13=ثانية
+00:14=برشوت
+00:15=هجوم جوي
+00:16=هجوم الغام
+00:17=شعلة
+00:18=بناء
+00:19=نقل
+00:20=تبديل
+00:21=هاون
+00:22=سوط
+00:23=انتحار
+00:24=كيك
+00:25=اغواء
+00:26=ركية
+00:27=قنبلة جحيم
+00:28=صاروخ حفر
+00:29=مسدس كرات
+00:30=حارق
+00:31=طيارة مسيطرة عن بعد
+00:32=جاذبية قليلة
+00:33=تاثير مضاعف
+00:34=غير قابل للاضرار
+00:35=وقت اضافي
+00:36=منظار ليزر
+00:37=مصاص دماء
+00:38=قناص
+00:39=صحن طائر
+00:40=زجاجة حارقة
+00:41=طير
+
+01:00=لنتحارب
+01:01=تعادل
+01:02=%1 يفوز
+01:03=جزء %1%
+01:04=توقف
+01:05=خروج (Y/Esc)?
+01:06=موت مفاجئ
+01:07=%1 متبقي
+01:08=طاقة
+01:09=تحديث...
+01:10=استعمال هذه لن ينهي دورك
+01:11=This weapon or utility is not yet available!
+
+; 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 coming!
+02:00=%1 waves goodbye!
+02:00=%1 has gone to a better place!
+02:00=%1 meets his maker!
+02:00=%1 can hang on no longer!
+02:00=%1 has done his duty!
+02:00=%1 makes the ultimate sacrifice!
+02:00=%1 departs this mortal coil!
+02:00=%1 makes like a tree and leaves!
+02:00=%1 has timed out!
+02:00=%1 says peace out!
+02:00=%1 will be fondly remembered!
+02:00=%1 has an aneurysm!
+02:00=%1 leaves behind a wife and child
+02:00=%1 has launched his last bazooka
+02:00=%1 has tossed his last grenade
+02:00=%1 has baked his last cake
+02:00=%1 has swung on his last rope
+02:00=%1 has called his last airstrike
+02:00=%1 has pumped his last shotgun
+02:00=%1 has thrown his last melon
+02:00=%1 has drawn his last deagle
+02:00=%1 took one shot too many
+02:00=%1 could really have used a health crate
+02:00=%1 has gone to play a better game
+02:00=%1 has ragequit life
+02:00=%1 fails
+02:00=Poor poor %1...
+02:00=%1 prefers wormux
+02:00=%1 has been blocking shots with his face
+02:00=%1 is a hero amongst me...err..hogs
+02:00=%1 finds his place in Valhalla
+02:00=%1 has left the building
+02:00=%1 goes the way of the dinosaurs
+02:00=%1 brings hedgehogs one step closer to extinction
+02:00=%1 brings a tear to my eye
+02:00=%1 is an ex-hog
+02:00=%1 is pushing up the daisies
+02:00=%1 has ceased to be
+02:00=Say goodbye to %1
+02:00=No hope left for %1
+02:00=%1 faces the final curtain
+02:00=Smoke 'em if you got 'em, %1
+02:00=%1 suffers a Spontaneous Massive Existence Failure
+02:00=%1 has passed on
+02:00=%1 is stone dead
+02:00=%1 is no more
+02:00=%1 has expired
+02:00=Bereft of life, %1 rests in peace
+02:00=%1 joins the choir invisible
+02:00=Farewell %1, we hardly knew ye!
+02:00=%1 had a low tolerance for being shot
+02:00=%1 could have used an extra life
+02:00=Is there a doctor in the house?
+
+; Hog (%1) drowned
+02:01=%1 plays submarine!
+02:01=%1 mimics the Titanic!
+02:01=%1 swims like a stone!
+02:01=%1 floats like a brick!
+02:01=%1 checks out the deep end
+02:01=%1 goes glug glug glug
+02:01=%1 goes splash
+02:01=%1 forgot his armbands
+02:01=%1 really should have taken swimming lessons
+02:01=%1 left his surfboard at home
+02:01=%1 is washed up
+02:01=%1 is one soggy hog
+02:01=%1 forgot to bring his life jacket
+02:01=%1 goes splish splash splish
+02:01=%1 is sleeping with the fishes
+02:01=%1 thinks the water physics suck in this game
+02:01=%1 looks thirsty
+02:01=the sea claims %1
+02:01=%1 is lost at sea
+02:01=%1 should have brought his scuba gear
+02:01=%1 gets a burial at sea
+02:01=%1 has that sinking feeling
+02:01=%1 is practicing his backstroke
+02:01=%1 goes in search of the Titanic
+02:01=%1 is not Jesus
+02:01=%1 is finding Nemo
+02:01=%1 springs a leak
+02:01=You've gotta wonder how many hogs are down there
+02:01=%1 makes the ocean slightly higher
+02:01=%1 didn't enlist in the Navy
+02:01=%1 is doing his impersonation of a dead fish
+02:01=At least you didn't go down the toilet, %1
+02:01=Sonic couldn't swim and neither can %1
+02:01=%1 wants to play Ecco the dolphin
+02:01=%1 has gone to visit Aquaria
+02:01=%1 has found the lost city of Atlantis
+02:01=%1 aims for the lead role in Bioshock 3
+02:01=Your doggy paddle could use a little work, %1
+02:01=%1 should have brought a jet ski
+02:01=%1 doesn't like watersports
+02:01=%1 is forever blowing bubbles
+02:01=%1 is short of a raft
+02:01=%1 thinks salt water is good for the skin
+02:01=%1 gets salt water in his wounds
+02:01=%1 has walked the plank
+02:01=%1 has a bath
+02:01=%1 is wet wet wet
+02:01=%1 gets his quills wet
+02:01=It's Davy Jones' locker for %1
+
+; Round starts
+02:02=Let's fight!
+02:02=Armed and ready!
+02:02=Let's get ready to rumble!
+02:02=Let's get it on!
+02:02=Let's get this party started
+02:02=Last hog standing wins
+02:02=Let's go!
+02:02=Let's rock!
+02:02=Let's jam!
+02:02=It's beginning...
+02:02=This is the start of something big
+02:02=Welcome to Hedgewars
+02:02=Welcome to the front lines
+02:02=Crush your enemies!
+02:02=May the best hog win
+02:02=Victory or death
+02:02=To the victor goes the spoils
+02:02=Losing is not an option
+02:02=Cry havoc! Let loose the hogs of war!
+02:02=Hedgewars, brought to you by Hedgewars.org
+02:02=GL HF
+02:02=Just count yourself lucky you're not up against Tiyuri
+02:02=Just count yourself lucky you're not up against unC0Rr
+02:02=Just count yourself lucky you're not up against Nemo
+02:02=Just count yourself lucky you're not up against Smaxx
+02:02=Just count yourself lucky you're not up against Jessor
+02:02=Give it your all!
+02:02=The losers do the cleaning up!
+02:02=Let the fight of the millenium begin
+02:02=Let the fight of the century begin
+02:02=Let the fight of the decade begin
+02:02=Let the fight of the year begin
+02:02=Let the fight of the month begin
+02:02=Let the fight of the week begin
+02:02=Let the fight of the day begin
+02:02=Let the fight of the hour begin
+02:02=Do your best!
+02:02=Destroy the enemy!
+02:02=Good luck
+02:02=Have fun
+02:02=Fight the good fight
+02:02=Fight dirty
+02:02=Fight with honour
+02:02=Don't give up
+02:02=Never surrender
+02:02=Rock 'em and sock 'em!
+02:02=Let the fragfest begin!
+02:02=I hope you're ready for a tussle!
+02:02=Go Go Go!
+02:02=Hedgehogs advance!
+02:02=Bring it to them!
+02:02=Have no fear!
+02:02=Be brave and conquer
+
+; Round ends (win; unused atm)
+02:03=...
+
+; Round ends (draw; unused atm)
+02:04=...
+
+; New health crate
+02:05=Incoming aid!
+02:05=Medic!
+02:05=First aid from the skies!
+02:05=A health pack for you
+02:05=Good health.. in box form!
+02:05=The doctor calls
+02:05=Fresh band-aids!
+02:05=This will make you feel better
+02:05=A Hi-Potion! Whoops wrong game
+02:05=A pick-me-up!
+02:05=Grab it
+02:05=A healthy snack
+02:05=A remedy to pain
+02:05=Correct Dosage: as many as you can find!
+02:05=Urgent delivery
+02:05=Supplies!
+
+; New ammo crate
+02:06=More weapons!
+02:06=Reinforcements!
+02:06=Lock and load!
+02:06=I wonder what weapon is in there?
+02:06=Supplies!
+02:06=What could be inside?
+02:06=Christmas comes early in Hedgewars
+02:06=A present!
+02:06=Special delivery!
+02:06=It was a nightmare getting this through customs
+02:06=Destructive toys from the heavens
+02:06=Warning! Contents Volatile
+02:06=Pick it up or blow it up, choice is yours
+02:06=Goodies!
+02:06=Mmmmm Ammo
+02:06=A box of destructive power
+02:06=Airmail!
+02:06=Whatever's in that box, it ain't pizza
+02:06=Get it!
+02:06=Weapon drop incoming
+02:06=Don't let the enemy grab that!
+02:06=Shiny new toys!
+02:06=A mysterious box!
+
+; New utility crate
+02:07=Tooltime!
+02:07=This could come in handy...
+02:07=Utilities!
+02:07=Utilise this box
+02:07=Watch out below
+02:07=More utilities!
+02:07=Tools for you!
+02:07=This should be good!
+02:07=Use this wisely
+02:07=Ooo this box is heavy
+02:07=You might need this
+
+; Hog (%1) skips his turn
+02:08=%1 is sooo boring...
+02:08=%1 couldn't be bothered
+02:08=%1 is one lazy hog
+02:08=%1 is thoughtless
+02:08=%1 gave up
+02:08=You snooze you lose, %1
+02:08=%1 shamelessly skips
+02:08=%1 is really lazy
+02:08=%1 needs a little more motivation
+02:08=%1 is a pacifist
+02:08=%1 has a breather
+02:08=%1 has a rest
+02:08=%1 chills out
+02:08=%1 has no faith in his own abilities
+02:08=%1 decides to do nothing at all
+02:08=%1 lets the enemy destroy itself
+02:08=%1 would be terrible at parties
+02:08=%1 hides out
+02:08=%1 has decided to pass on this opportunity
+02:08=%1 decides the best thing he can do is...nothing
+02:08=%1 is a big wuss
+02:08=Buck Buck Buck, %1 is a chicken
+02:08=%1 is looking a little yellow
+02:08=%1 is a coward!
+02:08=%1 is waiting for sudden death
+02:08=%1 is not the fighting type
+02:08=%1 is reconsidering his purpose in life
+02:08=%1 was never much of a good shot anyway
+02:08=%1 didn't want to join the army in the first place
+02:08=Stop wasting our time, %1
+02:08=I'm dissapointed in you, %1
+02:08=Come on, you can do better than that %1
+02:08=%1's will has broken
+02:08=%1 apparently has better things to do
+02:08=%1 is scared stiff
+02:08=%1 has fallen asleep
+
+; Hog (%1) hurts himself only
+02:09=%1 should practice aiming!
+02:09=%1 seems to hate himself
+02:09=%1 is standing on the wrong side!
+02:09=%1 makes like an emo
+02:09=%1 was holding his weapon the wrong way around
+02:09=%1 is a little sadistic
+02:09=%1 is a masochist
+02:09=%1 has no instinct of self-preservation
+02:09=%1 messed up
+02:09=%1 screwed up
+02:09=That was a poor shot, %1
+02:09=%1 is a little too careless with dangerous weapons
+02:09=%1 should consider a change of career
+02:09=Worst. Shot. Ever!
+02:09=No no no %1, you shoot at the ENEMY!
+02:09=%1 should only be destroying the enemy
+02:09=%1 moves one step closer to suicide
+02:09=%1 aids the enemy
+02:09=That was stupid %1
+02:09=%1 lives by the mantra of "no pain, no gain"
+02:09=%1 is confused
+02:09=%1 hurt itself in its confusion
+02:09=%1 has a knack for embarrassing himself
+02:09=%1 is a klutz!
+02:09=%1 is clumsy
+02:09=%1 shows the enemy what he's capable of
+02:09=%1 can't be expected to be perfect all the time
+02:09=Don't worry %1, pobody's nerfect
+02:09=%1 totally did that on purpose
+02:09=I won't tell anyone if you don't, %1
+02:09=How embarrassing!
+02:09=I'm sure nobody saw that %1
+02:09=%1 needs to review his field manual
+02:09=%1's weapon clearly malfunctioned
+
+; 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!
+
+; Weapon Categories
+03:00=Timed Grenade
+03:01=Timed Grenade
+03:02=Ballistic Weapon
+03:03=Guided Weapon
+03:04=Gun (multiple shots)
+03:05=Digging Tool
+03:06=Action
+03:07=Transport Utility
+03:08=Proximity Bomb
+03:09=Gun (multiple shots)
+03:10=BOOM!
+03:11=Bonk!
+03:12=Martial Arts
+03:13=UNUSED
+03:14=Transport Utility
+03:15=Airborne Attack
+03:16=Airborne Attack
+03:17=Digging Tool
+03:18=Utility
+03:19=Transport Utility
+03:20=Action
+03:21=Ballistic Weapon
+03:22=Call me Indiana!
+03:23=(Really) Martial Arts
+03:24=The cake is NOT a lie!
+03:25=Costume Kit
+03:26=Juicy Grenade
+03:27=Fiery Grenade
+03:28=Ballistic Weapon
+03:29=Ballistic Weapon
+03:30=Airborne Attack
+03:31=Remote Controlled Bomb
+03:32=Temporary Effect
+03:33=Temporary Effect
+03:34=Temporary Effect
+03:35=Temporary Effect
+03:36=Temporary Effect
+03:37=Temporary Effect
+03:38=Gun (multiple shots)
+03:39=Transport Utility
+03:40=Incinerating Grenade
+03:41=Huge fan of Squawks
+
+; Weapon Descriptions (use | as line breaks)
+04:00=Attack your enemies using a simple grenade.|It will explode once its timer reaches zero.|1-5: Set grenade's timer|Attack: Hold to throw with more power
+04:01=Attack your enemies using a cluster bomb.|It will split into smaller bombs once its timer|reaches zero.|1-5: Set grenade's timer|Attack: Hold to throw with more power
+04:02=Attack your enemies using a ballistic projectile|that might be influenced by wind.|Attack: Hold to shoot with more power
+04:03=Launch an explosive bee that will lock on|the selected target. Don't shoot with full power|to improve its precision.|Cursor: Pick target|Attack: Hold to shoot with more power
+04:04=Attack your enemy using a shotgun with two shots.|Thanks to its spread you don't need direct hits|to harm your opponents.|Attack: Shoot (multiple times)
+04:05=Move underground! Use the pickhammer to drill|a hole into the ground and reach other areas.|Attack: Start or stop digging
+04:06=Bored? No way to attack? Save your ammo?|No problem! Just skip your turn, coward!|Attack: Skip your turn without fighting
+04:07=Bridge huge distances using timed shots with the|rope. Use your momentum to slide into other hogs|or drop grenades and other weapons on them.|Attack: Shoot or release the rope|Long Jump: Drop grenades or similar weapons
+04:08=Keep your enemies away by dropping a mine in|narrow passages or right below their feet. Be|sure to retreat before you trigger it yourself!|Attack: Drop mine next to your feet
+04:09=Not sure about your aiming? Use the Desert|Eagle to attack using up to four shots.|Attack: Shoot (multiple times)
+04:10=Brute force is always an option. Drop this classic|explosive next to your enemies and retreat.|Attack: Drop dynamite next to your feet
+04:11=Get rid of enemy hogs by batting them over|the map borders or into water. Or how about|knocking some mines to your friends?|Attack: Bat everything in front of you
+04:12=Get close and personal to unleash the power of|this almost deadly martial arts technique.|Attack: Perform the Fire Punch
+04:13=UNUSED
+04:14=Fear of heights? Better grab a parachute.|It will unfold once|you fall too far and|save your hog from taking fall damage.|Attack: Unfold the parachute|Long Jump: Drop grenades or similar weapons
+04:15=Call in an airplane to attack your enemies|using a bombing run.|Left/Right: Determine attack direction|Cursor: Select target region
+04:16=Call in an airplane to drop several mines|in the target area.|Left/Right: Determine attack direction|Cursor: Select target region
+04:17=Need shelter? Use the blow torch to dig|a tunnel into solid ground granting you|cover.|Attack: Start or stop digging
+04:18=Need additional protection or want to pass|unpassable ground? Place some girders as you|like.|Left/Right: Select girder to place|Cursor: Place girder in a valid position
+04:19=Used at the right moment teleportation can|be more powerful than almost all weapons as|it allows you to save hogs from dangerous|situations within seconds.|Cursor: Select target region
+04:20=Allows you to play the current turn with|a different hog.|Attack: Enable switching hogs
+04:21=Shoot a grenade-like projectile that will|release multiple bombs upon impact.|Attack: Shoot at full power
+04:22=Not just for Indiana Jones! The whip is a|useful weapon in many situations. Especially|when you'd like to shove someone off a cliff.|Attack: Strike everything in front of you
+04:23=If you have nothing to lose, this might be|quite handy. Sacrifice your hog by launching|him into a specific direction hurting everything|on his way and exploding at the end.|Attack: Launch the devastating and deadly attack
+04:24=Happy Birthday! Launch this cake, let it walk right|next to your enemies and let them have an explosive|party. The cake is able to pass almost all terrain|but he might detonate earlier this way.|Attack: Start the cake or let it stop and explode
+04:25=Use this disguise kit to get your enemies to jump|towards your hog (and into some gap or hole).|Attack: Use the kit and try to seduce another hog
+04:26=Throw this juicy watermelon at your enemies. Once|the timer expires, it will split into several|explosive pieces.|1-5: Set watermelon's timer|Attack: Hold to shoot with more power
+04:27=Let hellfire rain onto your opponents by using|this fiendish explosive. Don't get too close to|the explosion as smaller fires might last longer.|Attack: Hold to shoot with more power
+04:28=Short time after launching this rocket, it will|start drilling through solid ground and explode|once its fuse is triggered or it resurfaces again.|Attack: Hold to shoot with more power
+04:29=This is nothing for small kids! The ball gun fires|tons of small colored balls filled with explosives.|Attack: Shoot at full power|Up/Down: Continue aiming
+04:30=Call in an airplane to launch a powerful napalm|strike. With proper aiming this attack can eradicate|huge parts of landscape including unlucky hogs|sitting there.|Left/Right: Determine attack direction|Cursor: Select target region
+04:31=The RC plane is the ideal weapon to collect crates or|attack far away hogs. Either steer it into enemies or|drop some bombs first.|Attack: Launch the plane or drop bombs|Long Jump: Let the valkyries ride into battle|Up/Down: Steer the plane
+04:32=Low gravity is more effective than any diet! Jump|higher and over greater distances or let your enemies|fly even further.|Attack: Activate
+04:33=Sometimes you just need that little extra boost to|deal some more damage.|Attack: Activate
+04:34=Can't touch me!|Attack: Activate
+04:35=Sometimes time's running too fast. Grab some extra|seconds to finish your attack.|Attack: Activate
+04:36=Well, sometimes you're just too bad in aiming. Get|some assistance using modern day technology.|Attack: Activate
+04:37=Don't fear the daylight. It will just last one turn|but will enable you to absorb the damage you do to|other hogs.|Attack: Activate
+04:38=The sniper rifle can be the most devastating weapon|in your whole arsenal, however it's very ineffective|at close quarters. The damage dealt increases with|the distance to its target.|Attack: Shoot (twice)
+04:39=Fly to other parts of the map using the flying|saucer. This hard to master utility is able to|take you to almost any position on the battlefield.|Attack: Activate|Up/Left/Right: Apply force in one direction|Long Jump: Drop grenades or similar weapons
+04:40=Set some ground on fire using this bottle filled|with (soon to be) burning liquid.|Attack: Hold to shoot with more power
+04:41=The evidence nature might even top the flying|saucer. Birdy can carry your hog around and|drop eggs on your enemies!|Attack: Activate and drop eggs|Up/Left/Right: Flap in one direction
+
+; Game goal strings
+05:00=Game Modes
+05:01=The following rules apply
+05:02=Forts: Defend your fortress; vanquish your enemies!
+05:03=Low Gravity: Watch your step
+05:04=Invulnerability: Hogs are (almost) invulnerable
+05:05=Vampirism: Hogs will be healed for the damage dealt
+05:06=Karma: Hogs will be damaged for the damage dealt
+05:07=Protect the King: Don't let your king die!|Place the King: Pick a protected starting point for your King
+05:08=Place Hedgehogs: Place your hogs before the game starts
+05:09=Artillery: Hogs can't walk to change position
+05:10=Indestructible Terrain: Most weapons won't destroy terrain
+05:11=Shared Ammo: All teams of the same color share their ammunition
+05:12=Mine Timers: Mines will detonate after %1 second(s)
+05:13=Mine Timers: Mines will detonate instantly
+05:14=Mine Timers: Mines will detonate after 0 - 3 seconds
+05:15=Damage Modifier: All weapons will do %1% damage
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/de.txt
--- a/share/hedgewars/Data/Locale/de.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/de.txt Mon Nov 15 12:37:39 2010 +0100
@@ -42,8 +42,15 @@
00:39=Fliegende Untertasse
00:40=Molotov-Cocktail
00:41=Birdy
+00:42=Tragbares Portal Device
+00:43=Piano-Angriff
+00:44=Alter Limburger
+00:45=Sinuskanone
+00:46=Flammenwerfer
+00:47=Haftmine
+00:48=Hammer
+00:49=Totenbeschwörung
-00:44=Alter Limburger
01:00=Auf in die Schlacht!
01:01=Unentschieden
@@ -61,6 +68,7 @@
01:11=Waffe oder Werkzeug noch nicht verfügbar!
01:12=Letzte Runde bis zum Sudden Death!
01:13=%1 Runden bis zum Sudden Death!
+01:14=Mach dich bereit, %1!
; Event messages
; Hog (%1) died
@@ -213,7 +221,15 @@
03:39=Fortbewegungsmittel
03:40=Brandbombe
03:41=Riesiger Squawks-Fan
+03:42=Portalöffner
+; the misspelled "Beethoven" is intentional (-> to beat)
+03:43=Spiele Beathovens tödliche Sonate!
03:44=Ziemlich alt und stinkig
+03:45=Die Macht der Wissenschaft
+03:46=Heiß heiß heiß!
+03:47=Mach es weg!
+03:48=Stop! Hammer time!
+03:49=Tut, was man vermutet
; Weapon Descriptions (use | as line breaks)
04:00=Greife deine Feinde mit einfachen Granaten an.|Der Zeitzünder steuert den Explosionszeitpunkt.|1-5: Zeitzünder einstellen|Angriff: Halten, um mit mehr Kraft zu werfen
@@ -245,7 +261,7 @@
04:26=Wirf diese saftige Wassermelone auf deine Feinde.|Sobald die Zeit abgelaufen ist, wird sie in|einzelne und explosive Stücke zerspringen.|Angriff: Halten, um mit mehr Kraft zu werfen
04:27=Entfessle das Höllenfeuer und umgebe deine|Widersacher damit, indem du diesen teuflischen|Sprengsatz gegen sie einsetzt. Komm ihr aber|nicht zu nahe, denn die Flammen könnten|länger bestehen bleiben.|Angriff: Halten, um mit mehr Kraft zu werfen
04:28=Kurz nach dem Start wird diese Rakete beginnen,|sich durch soliden Grund zu graben. Sobald sie|wieder austritt oder der Zeitzünder abläuft,|wird sie explodieren.|Angriff: Halten, um mit mehr Kraft zu feuern
-04:29=Das ist nichts für kleine Kinder! Die Ballpistole|feuert Tonnen kleiner farbiger Bälle, die mit|Sprengstoff gefüllt sind.|Angriff: Mit voller Kraft feuern|Hoch/Runter: Im feuern zielen
+04:29=Das ist nichts für kleine Kinder! Die Ballpistole|feuert Tonnen kleiner farbiger Bälle, die mit|Sprengstoff gefüllt sind.|Angriff: Mit voller Kraft feuern|Hoch/Runter: Im Feuern zielen
04:30=Rufe ein Flugzeug, um ein Areal gezielt mit|tödlichem Napalm einzudecken. Gut gezielt|lassen sich so große Teile der Karte auslöschen.|Links/Rechts: Angriffsrichtung wählen|Cursor: Zielgebiet wählen und Angriff starten
04:31=Das RC-Flugzeug kann Kisten einsammeln und weit|entfernte Igel angreifen. Steuere es direkt in|ein Opfer oder wirf erst einige Bomben ab.|Angriff: Flugzeug starten und Bomben abwerfen|Weiter Sprung: "Ritt der Walküren"|Hoch/Runter: Flugzeug lenken
04:32=Niedrige Schwerkraft ist effektiver als jede|Diät! Springe höher und weiter oder lass|einfach deine Gegner noch weiter fliegen.|Angriff: Aktivieren
@@ -258,8 +274,14 @@
04:39=Fliege mit der fliegenden Untertasse in andere|Teile der Karte. Sie ist schwer zu beherrschen,|bringt dich aber an so gut wie jeden Ort.|Angriff: Aktivieren|Hoch/Links/Rechts: Beschleunigen|Weiter Sprung: Waffe benutzen
04:40=Entzünde einen Teil der Landschaft oder auch etwas|mehr mit dieser (schon bald) brennenden Flüssigkeit.|Angriff: Halten, um mit mehr Kraft zu werfen
04:41=Der Beweis, dass die Natur sogar die fliegende|Untertasse übertreffen könnte. Birdy kann|deinen Igel herumtragen und zudem Eier auf|deine Feinde fallen lassen.|Angriff: Aktivieren und Eier fallen lassen|Hoch/Links/Rechts: In eine Richtung flattern
-
+04:42=Das tragbare Portal Device ermöglicht es dir,|dich, deine Feinde oder Waffen direkt zwischen|zwei Punkten auf der Karte zu|teleportieren.|Benutze es weise und deine Kampagne wird ein...|RIESENERFOLG!|Angriff: Öffnet ein Portal|Wechsel: Wechsle die Portalfarbe
+04:43=Lass dein musikalisches Debüt einschlagen wie eine Bombe!|Lass ein Piano vom Himmel fallen, aber pass auf...|jemand muss es spielen und das könnte dich |dein Leben kosten!|Cursor: Zielgebiet wählen und Angriff starten|F1-F9: Spiel das Piano
04:44=Das ist nicht nur Käse, das ist biologische Kriegsführung!|Er wird nicht viel Schaden verursachen, sobald der Zünder|abgelaufen ist, aber er wird garantiert jeden in der Nähe|vergiften!|1-5: Zeitzünder einstellen|Angriff: Halten, um mit mehr Kraft zu werfen
+04:45=All die Physikstunden haben sich endlich|bezahlt gemacht: Entfessle eine zerstörerische Sinuswelle|gegen deine Feinde.|Pass auf, die Waffe erzeugt einen ordentlichen Rückstoß.|(Diese Waffe ist unvollständig)|Angriff: Sinuswellen erzeugen
+04:46=Brutzle deine Feinde mit fließenden Flammen.|Herzerwärmend!|Angriff: Aktivieren|Hoch/Runter: Im Feuern zielen|Links/Rechts: Durchfluss ändern
+04:47=Verdopple den Spaß mit zwei spitzigen, schicken, klebrigen Minen.|Löse eine Kettenreaktion aus oder beschütze dich (oder beides).|Angriff: Halten, um mit mehr Kraft zu feuern (zweimal)
+04:48=Warum sind Maulwürfe verhasst? Einen|Igel in den Boden zu stampfen kann sehr lustig sein!|Ein guter Treffer des Hammers wird ein Drittel|der Lebenspunkte eines Igels abziehen und ihn|im Boden versenken.|Angriff: Aktivieren
+04:49=Hol deine Freunde zurück!|Aber pass auf, dass du keine Feinde beschwörst.|Angriff: Gedrückt halten, um Igel langsam wiederauferstehen zu lassen.|Hoch: Beschleunige Totenbeschwörung
; Game goal strings
05:00=Spielmodifikationen
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/en.txt
--- a/share/hedgewars/Data/Locale/en.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/en.txt Mon Nov 15 12:37:39 2010 +0100
@@ -49,7 +49,8 @@
00:46=Flamethrower
00:47=Sticky Mine
00:48=Hammer
-00:49=Resurrector (beta)
+00:49=Resurrector
+00:50=Drill Strike
01:00=Let's fight!
01:01=Round draw
@@ -431,6 +432,7 @@
03:47=Stick these somewhere useful!
03:48=It's Hammer time!
03:49=Does what you guess
+03:50=Moles fan
; Weapon Descriptions (use | as line breaks)
04:00=Attack your enemies using a simple grenade.|It will explode once its timer reaches zero.|1-5: Set grenade's timer|Attack: Hold to throw with more power
@@ -499,5 +501,10 @@
05:11=Shared Ammo: All teams of the same color share their ammunition
05:12=Mine Timers: Mines will detonate after %1 second(s)
05:13=Mine Timers: Mines will detonate instantly
-05:14=Mine Timers: Mines will detonate after 0 - 3 seconds
+05:14=Mine Timers: Mines will detonate after 0 - 5 seconds
05:15=Damage Modifier: All weapons will do %1% damage
+05:16=Health of all hogs is reset on end of turn
+05:17=AI hogs respawn on death
+05:18=Unlimited Attacks
+05:19=Weapons are reset on end of turn
+05:20=Weapons are not shared between hogs
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/es.txt
--- a/share/hedgewars/Data/Locale/es.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/es.txt Mon Nov 15 12:37:39 2010 +0100
@@ -50,7 +50,7 @@
00:46=Lanzallamas
00:47=Bomba lapa
00:48=Mazo
-00:49=Resurrección (beta)
+00:49=Resurrección
01:00=¡Luchad!
01:01=Empate
@@ -422,12 +422,12 @@
03:39=Herramienta de transporte
03:40=Bomba incendiaria
03:41=Amigo chillón
-03:42=I'm making a note here...
-03:43=Performing Beathoven's deadly sonata
+03:42=Creo que voy a tomar una nota...
+03:43=E interpretando el Cascanueces tenemos a...
03:44=Consumir preferentemente antes de 1923
03:45=¡El poder de la ciencia!
03:46=¡Caliente caliente caliente!
-03:47=Stick these somewhere useful!
+03:47=¡Pégalo en un buen sitio!
03:48=Pablo clavó un clavito
03:49=Hace exactamente lo que dice
@@ -500,3 +500,8 @@
05:13=Minas: las minas detonarán al instante
05:14=Minas: las minas detonarán aleatoriamente al cabo de 0 - 3 segundos
05:15=Modificador al daño: las armas harán un %1% de su daño habitual
+05:16=La salud de todos los erizos se restaura al final de cada turno
+05:17=La computadora resucita al morir
+05:18=Sin límite de ataques por turno
+05:19=El arsenal se restaura al final de cada turno
+05:20=Los erizos no comparten arsenal
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/fi.txt
--- a/share/hedgewars/Data/Locale/fi.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/fi.txt Mon Nov 15 12:37:39 2010 +0100
@@ -3,7 +3,7 @@
00:00=Kranaatti
00:01=Sirpalekranaatti
00:02=Sinko
-00:03=UFO
+00:03=Mehiläinen
00:04=Haulikko
00:05=Pora
00:06=Hyppää yli
@@ -41,6 +41,15 @@
00:38=Tarkkuuskivääri
00:39=Lentävä lautanen
00:40=Polttopullo
+00:41=Lintu
+00:42=Siirrettävä portaalilaite
+00:43=Piano-isku
+00:44=Vanha Limburger-juusto
+00:45=Sini-aaltopyssy
+00:46=Liekinheitin
+00:47=Tarttuva pommi
+00:48=Vasara
+00:49=Henkiinherättäjä
01:00=Taistelu alkakoon!
01:01=Tasapeli
@@ -54,6 +63,10 @@
01:09=Synkronoidaan...
01:10=Tämän apuvälineen käyttäminen ei päätä vuoroasi!
01:11=Tämä ase tai apuväline ei ole vielä käytettävissä!
+01:12=Viimeinen kierros ennen äkkikuolemaa!
+01:13=%1 kierrosta jäljellä äkkikuolemaan!
+01:14=Valmistaudu, %1!
+
; Event messages
; Hog (%1) died
@@ -69,7 +82,7 @@
02:00=%1 poistuu kuolevaisten keskuudesta!
02:00=%1:ltä loppui aika!
02:00=%1 toivottaa päivän jatkot!
-02:00=%1:stä muistellaan hartaasti!
+02:00=%1:a muistellaan hartaasti!
02:00=%1:llä on valtimonpullistuma!
02:00=%1 jättää jälkeensä puolisonsa ja lapsensa
02:00=%1 on laukaissut viimeisen sinkonsa
@@ -102,13 +115,14 @@
02:00=Viimeinen esirippu laskeutuu %1:en ylle
02:00=%1 kärsii Spontaanista Massiivisesta Olemassaolokohtauksesta
02:00=%1 on kuollut kuin kivi
-02:00=%1 ei ole enää
+02:00=%1 lakkasi olemasta
02:00=%1:n eräpäivä on mennyt
02:00=%1 liittyy näkymättömään kuoroon
02:00=Voi hyvin, %1, emme koskaan oppineet tuntemaan sinua!
02:00=%1 ei kestänyt ammutuksi joutumista
02:00=%1 olisi tarvinnut ylimääräistä elämää
02:00=Onko lääkäriä lähellä?
+02:00=%1 heitti lusikan nurkkaan.
; Hog (%1) drowned
02:01=%1 leikkii sukellusvenettä!
@@ -167,6 +181,7 @@
02:02=Nyt se alkaa...
02:02=Tästä alkaa jotain isoa
02:02=Tervetuloa Hedgewarsiin
+02:02=Tervetuloa siilisotaan
02:02=Tervetuloa eturiveihin
02:02=Murskatkaa vihollisenne!
02:02=Paras siili voittakoon
@@ -189,7 +204,7 @@
02:02=Päivän taistelu alkakoon
02:02=Tunnin taistelu alkakoon
02:02=Tehkää parhaanne!
-02:02=Tuhotkaa vihollisensa!
+02:02=Tuhotkaa vihollisenne!
02:02=Hyvää onnea!
02:02=Pitäkää hauskaa
02:02=Taistelkaa hyvä taistelu
@@ -197,12 +212,12 @@
02:02=Taistelkaa kunniasta
02:02=Älkää antako periksi
02:02=Älkää luovuttako
-02:02=Murhanäyttely alkakoon!
+02:02=Murhanäytelmä alkakoon!
02:02=Toivottavasti olette valmiina tappeluun!
02:02=Go Go Go!
02:02=Siilit, eteenpäin!
-02:02=Älkää pelatko!
-02:02=Olkaa urheita ja valloittakaa
+02:02=Älkää pelätko!
+02:02=Olkaa urheita ja voittakaa
; Round ends (win; unused atm)
02:03=...
@@ -219,7 +234,7 @@
02:05=Tohtori soittaa
02:05=Tuoreita siteitä!
02:05=Tämä saa sinut tuntemaan itsesi terveemmäksi
-02:05=Hi-Potion! Eiku väärä päeli
+02:05=Hi-Potion! Eiku väärä peli
02:05=Hae se!
02:05=Terveellinen välipala
02:05=Helpotus kipuun
@@ -385,12 +400,22 @@
03:38=Ase (useita laukauksia)
03:39=Kuljetusväline
03:40=Polttava kranaatti
+03:41=Kääkkyvä kaveri
+03:42=I'm making a note here...
+; the misspelled "Beethoven" is intentional (-> to beat)
+03:43=Soittaa Beathovenin tappavan soneetin
+03:44=Parasta ennen: 1923
+03:45=Tieteen voima
+03:46=Kuuma kuuma kuuma!
+03:47=Kiinnitä nämä hyödylliseen paikkaan!
+03:48=Vasarointiaika.
+03:49=Tekee sitä mitä luulet sen tekevän.
; Weapon Descriptions (use | as line breaks)
04:00=Hyökkää yksinkertaisella kranaatilla.|Se räjähtää kun ajastimesta loppuu aika.|1-5: Säädä kranaatin ajastin|Hyökkää: Pidä pohjassa lisätäksesi heittovoimaa
04:01=Hyökkää sirpalepommilla.|Se jakaantuu pienemmiksi pommeiksi ajan|loppuessa ajastimesta|1-5: Säädä kranaatin ajastin|Hyökkää: Pidä pohjassa lisätäksesi heittovoimaa
04:02=Hyökkää ballistisella ammuksella|johon tuuli saattaa vaikuttaa|Hyökkää: Pidä pohjassa lisätäksesi voimaa
-04:03=Laukaise ohjattu pommi joka lukittuu|valittuun kohteeseen. Älä ammu täydellä voimalla|lisätäksesi tarkkuutta|Kursori: Valitse kohde|Hyökkää: Pidä pohjassa lisätäksesi voimaa
+04:03=Laukaise ohjattu mehiläinen joka lukittuu|valittuun kohteeseen. Älä ammu täydellä voimalla|lisätäksesi tarkkuutta|Kursori: Valitse kohde|Hyökkää: Pidä pohjassa lisätäksesi voimaa
04:04=Ammu vihollisiasi kahdesti laukeavalla haulikolla.|Kiitos leviämisen sinun ei tarvitse tähdätä suoraan|vahingoittaeksi vihollisiasi.|Hyökkää: Ammu (useita kertoja)
04:05=Siirry maan alle! Käytä maaporaa porataksesi|reiän maahan päästäksesi muille alueille.|Hyökkää: Aloita ja lopeta kaivaminen
04:06=Tylsää? Ei mitään tapaa hyökätä? Säästät ammuksiasi?|Ei hätää! Jätä vuoro väliin, pelkuri!|Hyökkää: Jätä vuorosi väliin ilman tappelua
@@ -428,6 +453,15 @@
04:38=Tarkkuuskivääri on tuhoisin ase arsenaalissasi,|mutta tehoton lähietäisyydellä.|Tehty vahinko lisääntyy etäisyyden mukaan|Hyökkää: Ammu (kahdesti)
04:39=Lennä kartan muihin osiin lentävällä lautasella|Tämä vaikeasti omaksuttava apuväline vie sinut melkein minne tahansa|Hyökkää: Aktivoi|Ylös/Vasen/Oikea: Liiku tiettyyn suuntaan
04:40=Sytytä maa tuleen tällä pullolla (kohta) palavaa nestettä|Hyökkää: Pidä pohjassa lisätäksesi voimaa
+04:41=Todiste siitä että luonto on lentävää lautastakin|parempi. Lintu voi kuljettaa siiliä ympäriinsä ja|pudottaa munia vihollisten päälle|Hyökkää: Aktivoi ja pudota munia|Ylös/Vasen/Oikea: Räpytä yhteen suuntaan
+04:42=Tämä siirrettävä portaalilaite pystyy välittömästi|siirtämään sinut, vihollisesi tai ammuksesi|kahden paikan välillä.|Käytä sitä viisaasti ja kampanjasi tulee olemaan...|HUGE SUCCESS!|Hyökkää: Ammu portaali|Vaihto: Vaihda portaalien välillä
+04:43=Tee musikaalisesta debyytistäsi räjähtävä menestys!|Pudota piano taivaista, mutta varo...|Jonkun täytyy soittaa sitä, ja se voi maksaa elämäsi!|Kursori: Valitse kohdealue|F1-F9: Soita pianoa
+04:44=Tämä ei ole vain juustoa, vaan biologista sodankäyntiä!|Se ei tuota suurta vahinkoa kerralla|mutta ajastimen saavuttaessa nollan se taatusti|myrkyttää kaikki epäonniset jotka haistaa sen!|1-5: Aseta ajastin|Hyökkää: Pidä pohjassa heittääksesi isommalla voimalla
+04:45=Istuminen kaikilla niillä fysiikan tunneilla|kannatti viimein, laukaise tuhoisa|sini-aalto vihollisiasi päin.|Varo, tämä ase potkaisee aika kovaa.|Hyökkää: Ammu
+04:46=Peitä vastustajasi sähisevällä liekehtivällä nesteellä.|Sydäntä lämmittävää!|Hyökkää: Aktivoi|Ylös/Alas: Jatka tähtäystä|Vasen/Oikea: Muuta sylkyvoimaa.
+04:47=Kaksinkertaista hauskuus kahdella piikikkäällä,|petollisella, tarttuvalla miinalla.|Viritä ketjureaktio tai puolusta itseäsi (tai molempia!)|Hyökkää: Pidä pohjassa ampuaksesi kovemmalla voimalla (kahdesti)
+04:48=Miksi vain myyrät saa kaiken pahoinpitelyn?|Siilien hakkaaminen voi olla ihan yhtä kivaa!|Sopiva isku tällä vasaralla iskee pois kolmanneksen|siilin terveydestä ja lyö ne maan alle.|Hyökkää: Aktivoi
+04:49=Herätä ystäväsi henkiin!|Mutta varo, tämä herättää myös vihollisesi henkiin.|Hyökkää: Pidä hyökkäysnappia pohjassa herättääksesi henkiin hitaasti.|Ylös: Kiihdytä henkiin herätystä
; Game goal strings
05:00=Pelimoodit
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_ar.ts
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/hedgewars_ar.ts Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,2277 @@
+
+
+
+
+ AmmoSchemeModel
+
+ new
+ جديد
+
+
+
+ FreqSpinBox
+
+ Never
+ ابدا
+
+
+ Every %1 turn
+
+ كل %1 دور
+
+
+
+
+
+
+ GameCFGWidget
+
+ Edit weapons
+ تغيير سلاح
+
+
+ Error
+ خطأ
+
+
+ Illegal ammo scheme
+ نظام اسلحة غير صحيح
+
+
+ Edit schemes
+ Edit schemes
+
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
+
+
+ HWChatWidget
+
+ %1 *** %2 has been removed from your ignore list
+ %1 *** %2 تم حذفة من قائمة الترك
+
+
+ %1 *** %2 has been added to your ignore list
+ %1 *** %2 تم اضافته الى قائمة النرك
+
+
+ %1 *** %2 has been removed from your friends list
+ %1 *** %2 تم حذقه الى قائمة الاصدقاء
+
+
+ %1 *** %2 has been added to your friends list
+ %1 *** %2 تم حذفة من قائمة الاصدقاء
+
+
+
+ HWForm
+
+ new
+ جديد
+
+
+ Error
+ خطا
+
+
+ OK
+ OK
+
+
+ Unable to start the server
+ لم اتمكن من بدا الخادم
+
+
+ Cannot save record to file %1
+ لم اتمكن من حقظ الملف %1
+
+
+ Please select record from the list above
+ اختار من القائمة
+
+
+ DefaultTeam
+
+
+
+ Hedgewars Demo File
+ File Types
+
+
+
+ Hedgewars Save File
+ File Types
+
+
+
+
+ HWGame
+
+ en.txt
+ ar.txt
+
+
+ Cannot open demofile %1
+ لم اتمكن من حفظ ملف اللعب %1
+
+
+
+ HWMapContainer
+
+ Map
+ خارطة
+
+
+ Themes
+ نمط
+
+
+ Filter
+ فلنر
+
+
+ All
+ كل
+
+
+ Small
+ صغير
+
+
+ Medium
+ متوسط
+
+
+ Large
+ كبير
+
+
+ Cavern
+ كهف
+
+
+ Wacky
+ تعبان
+
+
+ Type
+ نوع
+
+
+ Small tunnels
+ انقاق صغيرة
+
+
+ Medium tunnels
+ انفاق متوسطة
+
+
+ Large tunnels
+ انفاق كبيرة
+
+
+ Small floating islands
+ جزر طائفة صغيرة
+
+
+ Medium floating islands
+ جزر طائفة متوسطة
+
+
+ Large floating islands
+ جزر طائفة كبيرة
+
+
+
+ HWNetServersModel
+
+ Title
+ عنوان
+
+
+ IP
+ IP
+
+
+ Port
+ Port
+
+
+
+ HWNewNet
+
+ The host was not found. Please check the host name and port settings.
+ الحاسوب لم يوجد. تأكد من الاعدادات
+
+
+ Connection refused
+ الاتصال رفض
+
+
+ Room destroyed
+ الغرفة اغلقت
+
+
+ Quit reason:
+ سبب الخروج
+
+
+ You got kicked
+ تم طردك
+
+
+ Password
+ كلمة السر
+
+
+ Your nickname %1 is
+registered on Hedgewars.org
+Please provide your password
+or pick another nickname:
+ اسمك %1
+سجلت على Hedgewars.org
+اعطي كلمة السر
+او اختر اسم ثاني
+
+
+ %1 *** %2 has joined the room
+ %1 *** %2 انضم للغرفة
+
+
+ %1 *** %2 has joined
+ %1 *** %2 انضم
+
+
+ %1 *** %2 has left (%3)
+ %1 *** %2 خرج (%3)
+
+
+ %1 *** %2 has left
+ %1 *** %2 خرج
+
+
+ Your nickname %1 is
+registered on Hedgewars.org
+Please provide your password below
+or pick another nickname in game config:
+
+
+
+
+ KB
+
+ SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It's recommended to update your freetype lib.
+ SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It's recommended to update your freetype lib.
+
+
+
+ PageAdmin
+
+ Server message:
+ Server message:
+
+
+ Set message
+ Set message
+
+
+ Clear Accounts Cache
+ Clear Accounts Cache
+
+
+ Fetch data
+
+
+
+ Server message for latest version:
+
+
+
+ Server message for previous versions:
+
+
+
+ Latest version protocol number:
+
+
+
+ MOTD preview:
+
+
+
+ Set data
+
+
+
+
+ PageConnecting
+
+ Connecting...
+ جاري الاتصال
+
+
+
+ PageEditTeam
+
+ General
+ عام
+
+
+ Advanced
+ متقدم
+
+
+
+ PageGameStats
+
+ <p>The best shot award was won by <b>%1</b> with <b>%2</b> pts.</p>
+ <p>افضل ضربة كانت من قبل <b>%1</b> with <b>%2</b> pts.</p>
+
+
+ <p>The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</p>
+ <p>افضل لاعب هو <b>%1</b> with <b>%2</b> kills in a turn.</p>
+
+
+
+ <p>A total of <b>%1</b> hedgehog(s) were killed during this round.</p>
+ <p>المجموع<b>%1</b> من اللاعبين قضوا في اللعبة.</p>
+
+
+
+ Details
+
+
+
+ Health graph
+
+
+
+ Ranking
+
+
+
+ The best shot award was won by <b>%1</b> with <b>%2</b> pts.
+
+
+
+ The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
+
+
+
+
+
+
+ A total of <b>%1</b> hedgehog(s) were killed during this round.
+
+
+
+
+
+
+ (%1 kill)
+
+
+
+
+
+
+ <b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
+
+
+
+
+
+
+ <b>%1</b> killed <b>%2</b> of his own hedgehogs.
+
+
+
+
+
+
+ <b>%1</b> was scared and skipped turn <b>%2</b> times.
+
+
+
+
+
+
+
+ PageMain
+
+ Local Game (Play a game on a single computer)
+ لعبة محلية
+
+
+ Network Game (Play a game across a network)
+ لعبة شبكية (عن طريق شبكة اتصال)
+
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
+ Tips
+
+
+
+ You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!
+ Tips
+
+
+
+ Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
+ Tips
+
+
+
+ From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.
+ Tips
+
+
+
+ Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!
+ Tips
+
+
+
+ Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ Connect one or more gamepads before starting the game to be able to assign their controls to your teams.
+ Tips
+
+
+
+ Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
+ Tips
+
+
+
+ While playing you should give yourself a short break at least once an hour.
+ Tips
+
+
+
+ If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.
+ Tips
+
+
+
+ If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.
+ Tips
+
+
+
+ We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!
+ Tips
+
+
+
+ Especially while playing online be polite and always remember there might be some minors playing with or against you as well!
+ Tips
+
+
+
+ Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!
+ Tips
+
+
+
+ The Windows version of Hedgewars supports Xfire. Make sure to add Hedgwars to its game list so your friends can see you playing.
+ Tips
+
+
+
+ You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ No hedgehogs were harmed in making this game.
+ Tips
+
+
+
+ There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.
+ Tips
+
+
+
+ Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.
+ Tips
+
+
+
+ The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.
+ Tips
+
+
+
+ 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
+
+
+
+ The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power.
+ Tips
+
+
+
+ Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.
+ Tips
+
+
+
+ The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.
+ Tips
+
+
+
+ If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.
+ Tips
+
+
+
+ The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.
+ Tips
+
+
+
+ The Flame Thrower is a weapon but it can be used for tunnel digging as well.
+ Tips
+
+
+
+ Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.
+ Tips
+
+
+
+ Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.
+ Tips
+
+
+
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!
+ Tips
+
+
+
+ Keep your video card drivers up to date to avoid issues playing the game.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+
+ PageMultiplayer
+
+ Start
+ ابدا
+
+
+
+ PageNet
+
+ Error
+ خطا
+
+
+ Please select server from the list above
+ اختار من القائمة
+
+
+
+ PageNetGame
+
+ Control
+ تحكم
+
+
+
+ PageNetType
+
+ LAN game
+ لعبة شبكية
+
+
+ Official server
+ الخادم الرسمي
+
+
+
+ PageOptions
+
+ New team
+ فريق جديد
+
+
+ Edit team
+ تغيير فريق
+
+
+ Delete team
+ حذف فريق
+
+
+ New weapon scheme
+ طريقة اسلحة جديدة
+
+
+ Edit weapon scheme
+ تغيير طريقة الاسلحة
+
+
+ Delete weapon scheme
+ حذف طريقة الاسلحة
+
+
+ You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.
+
+
+
+
+ PagePlayDemo
+
+ Error
+ خطأ
+
+
+ OK
+ OK
+
+
+ Rename dialog
+ تغيير الشباك
+
+
+ Enter new file name:
+ ادخل اسم الملف
+
+
+ Cannot rename to
+ لا استطيع التغيير الى
+
+
+ Cannot delete file
+ لا استطيع حذف الملف
+
+
+ Please select record from the list
+ اختر المقطع من القائمة
+
+
+
+ PageRoomsList
+
+ Create
+ اصنع
+
+
+ Join
+ انضم
+
+
+ Refresh
+ تحديث
+
+
+ Error
+ خطأ
+
+
+ OK
+ OK
+
+
+ Admin features
+ الادارة
+
+
+ Room Name:
+ رقم الغرقة
+
+
+ This game is in lobby.
+You may join and start playing once the game starts.
+ هذه غرقة اللعب
+يمكنك الانضمام و بدء اللعب عند الاتضمام الى غرفة
+You may join and start playing once the game starts.
+
+
+ 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.
+ اللعبة قيد اللعب
+يمكنك الانضمام و المشاهدة
+
+
+ %1 is the host. He may adjust settings and start the game.
+ %1هو المضيف الذي يبدا و يغيير اعدادات اللعبة
+
+
+ Random Map
+ خارطة عشوائية
+
+
+ Games may be played on precreated or randomized maps.
+ اللعبة يمكن ان تكون على خارطة عشوائية او يدوية
+
+
+ The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism.
+ طراز اللعية يحدد الخيارات مثل وقت الجولة، الموت المفاجئ و مصاص الدماء
+
+
+ The Weapon Scheme defines available weapons and their ammunition count.
+ طراز الاسلحة يحدد المتوفرة منها و عددها
+
+
+ There are %1 clients connected to this room.
+
+ يوجد %1 مرتبطون بالغرقة
+
+
+
+
+
+ There are %1 teams participating in this room.
+
+ يوجد %1 فريق في الغرفة
+
+
+
+
+
+ Please enter room name
+ ادخل رقم الغرقة
+
+
+ Please select room from the list
+ اختر الغرقة من القائمة
+
+
+ Random Maze
+ متاهة عشوائية
+
+
+ State:
+
+
+
+ Rules:
+
+
+
+ Weapons:
+
+
+
+ Search:
+
+
+
+ Clear
+
+
+
+ Warning
+
+
+
+ The game you are trying to join has started.
+Do you still want to join the room?
+
+
+
+
+ PageScheme
+
+ Defend your fort and destroy the opponents, two team colours max!
+ دافع عن القلعة و دمر الاعداء. فريقان الحد الاقصى
+
+
+ Teams will start on opposite sides of the terrain, two team colours max!
+ الفرق تبدا في مكانين متقابلين. فريقان الحد الاقصى
+
+
+ Land can not be destroyed!
+ الارض لا يمكن ان تدمر
+
+
+ Add an indestructable border around the terrain
+ اضف اطار لا يمكن تدميره
+
+
+ Lower gravity
+ جاذبية قليلة
+
+
+ Assisted aiming with laser sight
+ منظار ليزري
+
+
+ All hogs have a personal forcefield
+ كل اللاعبين لهم حقل قوى
+
+
+ Enable random mines
+ فعل الالغام العشوائية
+
+
+ Gain 80% of the damage you do back in health
+ احصل على 80% من التدمير في صحتك
+
+
+ Share your opponents pain, share their damage
+ شارك في صحة عدوك
+
+
+ Your hogs are unable to move, put your artillery skills to the test
+ الاعبين لا يمكنهم التحرك
+
+
+ Random
+ عشوائي
+
+
+ Seconds
+ ثواني
+
+
+ New
+ جديد
+
+
+ Delete
+ حذف
+
+
+ Order of play is random instead of in room order.
+ تسلسل اللعب عشواي
+
+
+ Play with a King. If he dies, your side dies.
+ اذا مات الملك، خسر الفريق
+
+
+ Take turns placing your hedgehogs before the start of play.
+ ضع لاعبين بالادوار قبل اللعب
+
+
+ Ammo is shared between all teams that share a colour.
+ العتاد مشترك
+
+
+ Disable girders when generating random maps.
+ ابطال البناء
+
+
+ Disable land objects when generating random maps.
+ ابطال الاجسام الساقطة
+
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ AI respawns on death.
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+
+
+
+
+ PageSelectWeapon
+
+ Default
+ التلقائي
+
+
+ Delete
+ حذف
+
+
+
+ PageSinglePlayer
+
+ Simple Game (a quick game against the computer, settings are chosen for you)
+ لعية بسيطة ضد الحاسوب
+
+
+ Multiplayer (play a hotseat game against your friends, or AI teams)
+ لعبة متعددة
+
+
+ Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT
+ نمط التدريب، تحت التطوير
+
+
+ Demos (Watch recorded demos)
+ عرض
+
+
+ Load (Load a previously saved game)
+ تحميل
+
+
+ Campaign Mode (...). IN DEVELOPMENT
+
+
+
+
+ QAction
+
+ Kick
+ ارفس
+
+
+ Info
+ معلومات
+
+
+ Start
+ ابدا
+
+
+ Restrict Joins
+ امنع الانضمام
+
+
+ Restrict Team Additions
+ امنع اضافات الفرق
+
+
+ Ban
+ امنع
+
+
+ Follow
+ اتبع
+
+
+ Ignore
+ اهمل
+
+
+ Add friend
+ اضف صديق
+
+
+ Unignore
+ حذف الاهمال
+
+
+ Remove friend
+ امحي صديق
+
+
+
+ QCheckBox
+
+ Check for updates at startup
+ تحرى عن التحديثات
+
+
+ Fullscreen
+ ملء الشاشة
+
+
+ Frontend fullscreen
+ شاشة القائمة ملء العرض
+
+
+ Enable sound
+ فعل الصوت
+
+
+ Enable music
+ فعل الموسيقى
+
+
+ Show FPS
+ اضهر عدد الاطارات في الثانية
+
+
+ Alternative damage show
+ عرض الدمار
+
+
+ Append date and time to record file name
+ اضف التاريخ و اليوم الى الملف
+
+
+ Reduced quality
+ قلل الجودة
+
+
+ Show ammo menu tooltips
+ اضهر قوائم للعتاد
+
+
+ Enable frontend sounds
+ فعل اصوات شاشة المقدمة
+
+
+ Enable frontend music
+ فعل موسيقى شاشة المقدمة
+
+
+ Frontend effects
+ تأثيرات المقدمة
+
+
+
+ QComboBox
+
+ generated map...
+ ولد خارطة
+
+
+ Human
+ انسان
+
+
+ Level
+ مرحلة
+
+
+ (System default)
+ نمط النظام
+
+
+ Mission
+ مهمة
+
+
+ generated maze...
+ ولد متاهة
+
+
+ Community
+
+
+
+ Any
+
+
+
+ In lobby
+
+
+
+ In progress
+
+
+
+ Default
+ التلقائي
+
+
+
+ QGroupBox
+
+ Team Members
+ اعضاء الفريق
+
+
+ Fort
+ حصن
+
+
+ Key binds
+ ربط المفاتيج
+
+
+ Teams
+ فرق
+
+
+ Weapons
+ اسلحة
+
+
+ Audio/Graphic options
+ قوائم الصوتيات و المرئيات
+
+
+ Net game
+ لعبة شبكية
+
+
+ Playing teams
+ فرق اللعب
+
+
+ Game Modifiers
+ مغيرات اللعبة
+
+
+ Basic Settings
+ اعدادات الاساسية
+
+
+ Team Settings
+ اعدادات الفريق
+
+
+ Misc
+ متنوعة
+
+
+
+ QLabel
+
+ Mines Time
+ وقت اللغم
+
+
+ Mines
+ الغام
+
+
+ Version
+ نسخة
+
+
+ This program is distributed under the GNU General Public License
+ This program is distributed under the GNU General Public License
+
+
+ Developers:
+ المطورون
+
+
+ Art:
+ قنون
+
+
+ Sounds:
+ الاصوات
+
+
+ Translations:
+ المترجمون
+
+
+ Special thanks:
+ شكر خاص
+
+
+ Weapons
+ اسلحة
+
+
+ Host:
+ Host:
+
+
+ Port:
+ Port:
+
+
+ Net nick
+ اسم اللاعب
+
+
+ Resolution
+ الوضوح
+
+
+ FPS limit
+ حد الاقصى لعدد الاطر في الثانية
+
+
+ Server name:
+ اسم الخادم
+
+
+ Server port:
+ Server port:
+
+
+ Initial sound volume
+ ارتقاع الصوت
+
+
+ Damage Modifier
+ مغير الدمار
+
+
+ Turn Time
+ وقت الجولة
+
+
+ Initial Health
+ الصحة الاولية
+
+
+ Sudden Death Timeout
+ وقت الموت المفاجئ
+
+
+ Scheme Name:
+ اسم النمط:
+
+
+ Crate Drops
+ المساعدات
+
+
+ Game scheme
+ نمط اللعبة
+
+
+ % Dud Mines
+ % الغام
+
+
+ Name
+ اسم
+
+
+ Type
+ نوع
+
+
+ Grave
+ تابوت
+
+
+ Flag
+ علم
+
+
+ Voice
+ صوت
+
+
+ Locale
+ محلي
+
+
+ Restart game to apply
+ اعد تشغيل اللعبة لتفعيل التغيير
+
+
+ Explosives
+ متفجرات
+
+
+ Tip:
+
+
+
+ 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!
+
+
+
+ Quality
+
+
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
+
+
+
+
+ QLineEdit
+
+ unnamed
+ غير مسمى
+
+
+
+ QMainWindow
+
+ Hedgewars %1
+ Hedgewars %1
+
+
+
+ QMessageBox
+
+ Network
+ شبكة
+
+
+ Connection to server is lost
+ ضاع الاتصال للخادم
+
+
+ Error
+ خطأ
+
+
+ Failed to open data directory:
+%1
+Please check your installation
+ Failed to open data directory:
+ %1
+Please check your installation
+
+
+ Weapons
+ اسلحة
+
+
+ Can not edit default weapon set
+ Can not edit default weapon set
+
+
+ Can not delete default weapon set
+ Can not delete default weapon set
+
+
+ Really delete this weapon set?
+ هل تريد حذف قائمة الاسلحة
+
+
+ All file associations have been set.
+
+
+
+ File association failed.
+
+
+
+ Can not overwrite default weapon set '%1'!
+
+
+
+
+ QObject
+
+ Error
+ خطأ
+
+
+ Cannot create directory %1
+ Cannot create directory %1
+
+
+ OK
+ OK
+
+
+ Nickname
+ اسم اللاعب
+
+
+ Please enter your nickname
+ ادحل اسم اللاعب
+
+
+
+ QPushButton
+
+ default
+ التلقائي
+
+
+ OK
+ OK
+
+
+ Cancel
+ الغاء
+
+
+ Start server
+ تشغيل الخادم
+
+
+ Connect
+ اتصل
+
+
+ Update
+ تحديث
+
+
+ Specify
+ تحديد
+
+
+ Start
+ ابدا
+
+
+ Go!
+ ابدا
+
+
+ Play demo
+ ابدا العرض
+
+
+ Rename
+ تغيير الاسم
+
+
+ Delete
+ حذف
+
+
+ Load
+ تحميل
+
+
+ Setup
+ تنصيب
+
+
+ Ready
+ ابدا
+
+
+ Random Team
+ فريق عشوائي
+
+
+ Associate file extensions
+
+
+
+
+ QTableWidget
+
+ Room Name
+ اسم الغرقة
+
+
+ C
+ C
+
+
+ T
+ T
+
+
+ Owner
+ المالك
+
+
+ Map
+ خارطة
+
+
+ Rules
+ قوانين
+
+
+ Weapons
+ اسلحة
+
+
+
+ SelWeaponWidget
+
+ Weapon set
+ نمط الاسلحة
+
+
+ Probabilities
+ احتماليات
+
+
+ Ammo in boxes
+ العتاد في الصناديق
+
+
+ Delays
+ التأخير
+
+
+
+ TCPBase
+
+ Error
+ خطأ
+
+
+ Unable to start the server: %1.
+ Unable to start the server: %1.
+
+
+ Unable to run engine: %1 (
+ Unable to run engine: %1 (
+
+
+
+ ToggleButtonWidget
+
+ Vampirism
+ مصاص دماء
+
+
+ Karma
+ كارما
+
+
+ Artillery
+ مدفعية
+
+
+ Fort Mode
+ طريقة الحصن
+
+
+ Divide Teams
+ قسم الفرق
+
+
+ Solid Land
+ ارض صلبة
+
+
+ Add Border
+ اضف اطار
+
+
+ Low Gravity
+ جاذبية قليلة
+
+
+ Laser Sight
+ منظار ليزري
+
+
+ Invulnerable
+ غير قابل للتدمير
+
+
+ Add Mines
+ اضف الغام
+
+
+ Random Order
+ توزيع عشوائي
+
+
+ King
+ ملك
+
+
+ Place Hedgehogs
+ ضع الاعبين
+
+
+ Clan Shares Ammo
+ الفريق يتشارك بالعتاد
+
+
+ Disable Girders
+ ابطال البناء
+
+
+ Disable Land Objects
+ ابطال الاجسام الارضية
+
+
+ Reset Health
+
+
+
+ AI Survival Mode
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
+
+
+
+
+ binds
+
+ up
+ up
+
+
+ left
+ left
+
+
+ right
+ right
+
+
+ down
+ down
+
+
+ attack
+ attack
+
+
+ precise aim
+ precise aim
+
+
+ put
+ put
+
+
+ switch
+ switch
+
+
+ find hedgehog
+ find hedgehog
+
+
+ ammo menu
+ ammo menu
+
+
+ slot 1
+ slot 1
+
+
+ slot 2
+ slot 2
+
+
+ slot 3
+ slot 3
+
+
+ slot 4
+ slot 4
+
+
+ slot 5
+ slot 5
+
+
+ slot 6
+ slot 6
+
+
+ slot 7
+ slot 7
+
+
+ slot 8
+ slot 8
+
+
+ slot 9
+ slot 9
+
+
+ timer 1 sec
+ timer 1 sec
+
+
+ timer 2 sec
+ timer 2 sec
+
+
+ timer 3 sec
+ timer 3 sec
+
+
+ timer 4 sec
+ timer 4 sec
+
+
+ timer 5 sec
+ timer 5 sec
+
+
+ chat
+ chat
+
+
+ chat history
+ chat history
+
+
+ pause
+ pause
+
+
+ confirmation
+ confirmation
+
+
+ volume down
+ volume down
+
+
+ volume up
+ volume up
+
+
+ change mode
+ change mode
+
+
+ capture
+ capture
+
+
+ hedgehogs
+info
+ hedgehogs
+info
+
+
+ quit
+ quit
+
+
+ zoom in
+ zoom in
+
+
+ zoom out
+ zoom out
+
+
+ reset zoom
+ reset zoom
+
+
+ long jump
+ long jump
+
+
+ high jump
+ high jump
+
+
+ slot 10
+ slot 10
+
+
+
+ binds (categories)
+
+ Basic controls
+ الاسلحة الاولية
+
+
+ Weapon controls
+ السيطرة على الاسلحة
+
+
+ Camera and cursor controls
+ السيطرة على الكامرة و المؤشر
+
+
+ Other
+ اخرى
+
+
+
+ binds (descriptions)
+
+ Move your hogs and aim:
+ تحريك اللاعب و التصويب
+
+
+ Traverse gaps and obstacles by jumping:
+ قفز فوق الحواجز
+
+
+ Fire your selected weapon or trigger an utility item:
+ اطلاق السلاح
+
+
+ Pick a weapon or a target location under the cursor:
+ أخذ السلاح تحت المؤشر
+
+
+ Switch your currently active hog (if possible):
+ تغيير اختيار اللاعب الحالي
+
+
+ Pick a weapon or utility item:
+ اختر السلاح
+
+
+ Set the timer on bombs and timed weapons:
+ وقت الانفجار
+
+
+ Move the camera to the active hog:
+ الكامرة على اللاعب
+
+
+ Move the cursor or camera without using the mouse:
+ تحريك الكامرة او اللاعب بلا المؤشر
+
+
+ Modify the camera's zoom level:
+ تغيير مدى التقريب البصري
+
+
+ Talk to your team or all participants:
+ ارسال رسالة لاعضاء الفريق
+
+
+ Pause, continue or leave your game:
+ توقيف اللعبة، الاستمرار او الغائها
+
+
+ Modify the game's volume while playing:
+ تغيير ارتقاع الصوت اثناء اللعبة
+
+
+ Toggle fullscreen mode:
+ تبديل ملئ الشاشة
+
+
+ Take a screenshot:
+ خد صورة
+
+
+ Toggle labels above hedgehogs:
+ تغيير العناوبن فوق اللاعبين
+
+
+
+ binds (keys)
+
+ Axis
+
+
+
+ (Up)
+
+
+
+ (Down)
+
+
+
+ Hat
+
+
+
+ (Left)
+
+
+
+ (Right)
+
+
+
+ Button
+
+
+
+ Keyboard
+
+
+
+ Delete
+ Delete
+
+
+ Mouse: Left button
+
+
+
+ Mouse: Middle button
+
+
+
+ Mouse: Right button
+
+
+
+ Mouse: Wheel up
+
+
+
+ Mouse: Wheel down
+
+
+
+ Backspace
+
+
+
+ Tab
+
+
+
+ Clear
+
+
+
+ Return
+
+
+
+ Pause
+
+
+
+ Escape
+
+
+
+ Space
+
+
+
+ Numpad 0
+
+
+
+ Numpad 1
+
+
+
+ Numpad 2
+
+
+
+ Numpad 3
+
+
+
+ Numpad 4
+
+
+
+ Numpad 5
+
+
+
+ Numpad 6
+
+
+
+ Numpad 7
+
+
+
+ Numpad 8
+
+
+
+ Numpad 9
+
+
+
+ Numpad .
+
+
+
+ Numpad /
+
+
+
+ Numpad *
+
+
+
+ Numpad -
+
+
+
+ Numpad +
+
+
+
+ Enter
+
+
+
+ Equals
+
+
+
+ Up
+
+
+
+ Down
+
+
+
+ Right
+
+
+
+ Left
+
+
+
+ Insert
+
+
+
+ Home
+
+
+
+ End
+
+
+
+ Page up
+
+
+
+ Page down
+
+
+
+ Num lock
+
+
+
+ Caps lock
+
+
+
+ Scroll lock
+
+
+
+ Right shift
+
+
+
+ Left shift
+
+
+
+ Right ctrl
+
+
+
+ Left ctrl
+
+
+
+ Right alt
+
+
+
+ Left alt
+
+
+
+ Right meta
+
+
+
+ Left meta
+
+
+
+ A button
+
+
+
+ B button
+
+
+
+ X button
+
+
+
+ Y button
+
+
+
+ LB button
+
+
+
+ RB button
+
+
+
+ Back button
+
+
+
+ Start button
+
+
+
+ Left stick
+
+
+
+ Right stick
+
+
+
+ Left stick (Right)
+
+
+
+ Left stick (Left)
+
+
+
+ Left stick (Down)
+
+
+
+ Left stick (Up)
+
+
+
+ Left trigger
+
+
+
+ Right trigger
+
+
+
+ Right stick (Down)
+
+
+
+ Right stick (Up)
+
+
+
+ Right stick (Right)
+
+
+
+ Right stick (Left)
+
+
+
+ DPad
+
+
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_bg.ts
--- a/share/hedgewars/Data/Locale/hedgewars_bg.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_bg.ts Mon Nov 15 12:37:39 2010 +0100
@@ -40,6 +40,10 @@
Illegal ammo scheme
Невалидна оръжейна схема
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -90,6 +94,16 @@
DefaultTeam
+
+ Hedgewars Demo File
+ File Types
+
+
+
+ Hedgewars Save File
+ File Types
+
+
HWGame
@@ -326,25 +340,33 @@
-
+
(%1 kill)
-
-
-
- (%1 kills)
-
-
-
+
+
+
+
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+
+
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+
+
+
@@ -373,11 +395,6 @@
- Want to save ropse? 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!
- Tips
-
-
-
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
@@ -563,7 +580,7 @@
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
@@ -588,7 +605,22 @@
- 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.
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
Tips
@@ -838,10 +870,6 @@
- Enable random mines
-
-
-
Gain 80% of the damage you do back in health
@@ -897,6 +925,22 @@
AI respawns on death.
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+
+
PageSelectWeapon
@@ -1078,35 +1122,7 @@
Default
- По подразбиране
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ По подразбиране
@@ -1310,6 +1326,26 @@
Quality
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
+
+
QLineEdit
@@ -1367,6 +1403,14 @@
Can not overwrite default weapon set '%1'!
+
+ All file associations have been set.
+
+
+
+ File association failed.
+
+
QObject
@@ -1457,6 +1501,10 @@
Random Team
+
+ Associate file extensions
+
+
QTableWidget
@@ -1554,10 +1602,6 @@
- Add Mines
-
-
-
Vampirism
@@ -1597,6 +1641,22 @@
AI Survival Mode
+
+ Reset Health
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
+
+
binds
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_cs.ts
--- a/share/hedgewars/Data/Locale/hedgewars_cs.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_cs.ts Mon Nov 15 12:37:39 2010 +0100
@@ -41,6 +41,10 @@
Edit schemes
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -91,6 +95,16 @@
DefaultTeam
+
+ Hedgewars Demo File
+ File Types
+
+
+
+ Hedgewars Save File
+ File Types
+
+
HWGame
@@ -329,25 +343,37 @@
-
+
(%1 kill)
-
-
-
- (%1 kills)
-
-
-
+
+
+
+
+
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+
+
+
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+
+
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+
+
+
+
@@ -376,11 +402,6 @@
- Want to save ropse? 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!
- Tips
-
-
-
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
@@ -566,7 +587,7 @@
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
@@ -591,7 +612,22 @@
- 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.
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
Tips
@@ -851,10 +887,6 @@
- Enable random mines
-
-
-
Gain 80% of the damage you do back in health
@@ -902,6 +934,22 @@
AI respawns on death.
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+
+
PageSelectWeapon
@@ -1083,35 +1131,7 @@
Default
- Základní
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ Základní
@@ -1315,6 +1335,26 @@
Quality
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
+
+
QLineEdit
@@ -1372,6 +1412,14 @@
Can not overwrite default weapon set '%1'!
+
+ All file associations have been set.
+
+
+
+ File association failed.
+
+
QObject
@@ -1462,6 +1510,10 @@
Random Team
+
+ Associate file extensions
+
+
QTableWidget
@@ -1571,10 +1623,6 @@
- Add Mines
-
-
-
Random Order
@@ -1602,6 +1650,22 @@
AI Survival Mode
+
+ Reset Health
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
+
+
binds
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_de.ts
--- a/share/hedgewars/Data/Locale/hedgewars_de.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_de.ts Mon Nov 15 12:37:39 2010 +0100
@@ -40,6 +40,10 @@
Edit schemes
Spielprofile bearbeiten
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -88,7 +92,17 @@
DefaultTeam
-
+
+
+
+ Hedgewars Demo File
+ File Types
+ Hedgewars Demo Datei
+
+
+ Hedgewars Save File
+ File Types
+ Hedgewars gespeichertes Spiel
@@ -246,7 +260,11 @@
registered on Hedgewars.org
Please provide your password below
or pick another nickname in game config:
-
+ Dein Spitzname '%1' wurde
+auf Hedgewars.org registriert.
+
+Bitte gib dein Passwort ein oder
+wähle einen anderen Spitznamen:
@@ -272,27 +290,27 @@
Fetch data
-
+ Lade Daten
Server message for latest version:
-
+ Server-Nachricht für aktuelle Version:
Server message for previous versions:
-
+ Server-Nachricht für ältere Versionen:
Latest version protocol number:
-
+ Letzte Protokoll-Version
MOTD preview:
-
+ MOTD Vorschau:
Set data
-
+ Speichere Daten
@@ -335,53 +353,65 @@
Details
-
+ Details
Health graph
-
+ Lebenspunkteverlauf
Ranking
-
+ Ranking
The best shot award was won by <b>%1</b> with <b>%2</b> pts.
-
+ Der beste Schuss geht an <br>%1</b> mit <b>%2</b> Schadenspunkten.
The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
-
-
-
+
+ Der blutigste Kämpfer ist <b>%1</b> mit <b>%2</b> Opfer in einer Runde.
+ Der blutigste Kämpfer ist <b>%1</b> mit <b>%2</b> Opfern in einer Runde.
A total of <b>%1</b> hedgehog(s) were killed during this round.
-
-
-
+
+ Insgesamt fand <b>%1</b> Igel ein trauriges Ende in dieser Runde.
+ Insgesamt fanden <b>%1</b> Igel ein trauriges Ende in dieser Runde.
-
+
(%1 kill)
-
+
+ (%1 Opfer)
+ (%1 Opfer)
+
(%1 kills)
-
-
-
+ (%1 Kills)
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+ <b>%1</b> dachte es ist gut seinen eigenen Igel mit <b>%2</b> Punkten zu verletzen.
+ <b>%1</b> dachte es ist gut seine eigenen Igel mit <b>%2</b> Punkten zu verletzen.
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+ <b>%1</b> erledigte <b>%2</b> seiner eigenen Igel.
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+ <b>%1</b> hatte Angst und übersprang <b>%2</b> Runde.
+ <b>%1</b> hatte Angst und übersprang <b>%2</b> Runden.
+
@@ -397,236 +427,256 @@
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.
Tips
-
+ Wähle einfach die gleiche Farbe wie dein Freund um als ein Team zu spielen. Jeder von euch wird trotzdem seine eigenen Igel kontrollieren, aber sie gewinnen oder verlieren zusammen.
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.
Tips
-
+ Manche Waffen richten nur einen geringen Schaden an, können aber in der richtigen Situation sehr nützlich sein. Benutze die Desert Eagle um mehrere Igel ins Wasser zu schießen.
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!
Tips
-
+ Wenn du dir nicht sicher bist was du tun sollst und keine Munition verschwenden willst, überspringe eine Runde. Aber lass nicht zu viele Runden verstreichen, denn später kommt es zum Sudden Death!
Want to save ropse? 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!
Tips
-
+ Du willst Seile sparen? Lass das Seil in der Luft los und schieß noch einmal. Solange du nicht den Boden berührst kannst du das Seil wiederverwenden ohne Munition zu verlieren!
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
-
+ Wenn du andere daran hindern willst deinen bevorzugten Nickname auf dem offiziellen Server zu nutzen, registriere dich auf http://www.hedgewars.org/.
You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.
Tips
-
+ Du bist von dem Standardspiel gelangweilt? Probiere die Missionen aus - sie ermöglichen dir verschiedene Spielarten je nachdem welche du wählst.
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.
Tips
-
+ Das Spiel wird automatisch das letzte Spiel als Demo aufnehmen. Wähle 'Lokales Spiel' und wähle den 'Demos'-Knopf in der unteren rechten Ecke um sie zu spielen oder zu verwalten.
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!
Tips
-
+ Hedgewars ist freie und kostenlose Software, die wir in unserer Freizeit entwickeln. Wenn du Probleme hast, frag in unseren Foren, aber erwarte bitte keinen 24/7-Support!
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!
Tips
-
+ Hedgewars ist freie und kostenlose Software, die wir in unserer Freizeit entwickeln. Wenn du es magst, hilf uns mit einer kleinen Spende oder trage deine eigene Arbeit bei!
Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!
Tips
-
+ Hedgewars ist freie und kostenlose Software, die wir in unserer Freizeit entwickeln. Teile es mit deiner Familie und deinen Freunden!
From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.
Tips
-
+ Von Zeit zu Zeit wird es offizielle Turniere geben. Anstehede Events werden frühzeitig auf http://www.hedgewars.org/ bekannt gegeben.
Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!
Tips
-
+ Hedgewars ist in vielen Sprachen verfügbar. Wenn die Übersetzung in deiner Sprache fehlt oder veraltet ist scheue dich nicht uns zu kontaktieren!
Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.
Tips
-
+ Hedgewars läuft auf vielen verschiedenen Betriebssystemen wie Microsoft Windows, Mac OS X und Linux.
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.
Tips
-
+ Bedenke immer, dass du auch eigene Spiele im lokalen und Netzwerk/Online-Spiel erstellen kannst. Du bist nicht an die 'Einfaches Spiel'-Option gebunden.
While playing you should give yourself a short break at least once an hour.
Tips
-
+ Du solltest dir wenigstens einmal pro Stunde eine Pause gönnen.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.
Tips
-
+ Wenn deine Grafikkarte keine hardwarebeschleunigtes OpenGL unterstützt, versuche die Qualtität in den Einstellungen runterzuschrauben.
We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!
Tips
-
+ Wir sind offen für Vorschläge oder konstruktive Rückmeldungen. Wenn dir etwas nicht gefällt oder du eine gute Idee hat, lass es uns wissen!
Especially while playing online be polite and always remember there might be some minors playing with or against you as well!
Tips
-
+ Sei gerade beim Spielen in Internet höflich und vergiss nie, dass eventuell auch Kinder mit dir oder gegen dich spielen!
Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!
Tips
-
+ Spezielle Spielmodi wie 'Vampirismus' oder 'Karma' erlauben es dir völlig neue Taktiken zu entwickeln. Probier sie einem eigenen Spiel aus!
The Windows version of Hedgewars supports Xfire. Make sure to add Hedgwars to its game list so your friends can see you playing.
Tips
-
+ Die Windowsversion von Hedgewars unterstützt Xfire. Füge Hedgewars zu der Spieleliste hinzu, sodass deine Freunde sehen können wann du spielst.
You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!
Tips
-
+ Du solltest nie Hedgewars auf einem Computer installieren, der dir nicht gehört (Schule, Universität, Arbeit, etc.). Frag bitte stattdessen die verantwortliche Person!
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.
Tips
-
+ Hedgewars ist perfekt für kurze Spielchen zwischendurch. Schaue nur, dass du nicht zu viele Igel oder eine zu große Karte nimmst. Das Verringern der Zeit oder Lebenspunkte kann auch helfen.
No hedgehogs were harmed in making this game.
Tips
-
+ Bei der Erstellung des Spiels wurden keine Igel verletzt.
Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
Tips
-
+ Hedgewars ist freie und kostenlose Software, die wir in unserer Freizeit entwickeln. Wenn dir jemand das Spiel verkauft hat, solltest du versuchen es dir erstatten zu lassen!
Connect one or more gamepads before starting the game to be able to assign their controls to your teams.
Tips
-
+ Verbinde ein oder mehrere Gamepads bevor du das Spiel startest um damit deine Teams kontrollieren zu können.
Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
Tips
-
+ Erstellen einen Account auf %1 um andere daran zu deinen favorisierten Benutzernamen zu benutzen, wenn du auf dem offiziellen Server spielst.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.
Tips
-
+ Wenn deine Grafikkarte kein hardwarebeschleunigtes OpenGL bietet, versuche die entsprechenden Treiber zu aktualisieren.
There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.
Tips
-
+ Es gibt drei Arten von Sprüngen: Drücke zweimal die Taste zum Hochspringen, um noch höher/rückwärts zu springen.
Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.
Tips
-
+ Angst eine Klippe herunterzufallen? Halte [Umschalt] um dich nach links oder rechts zu drehen, ohne dich wirklich zu bewegen.
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.
Tips
-
+ Manche Waffen brauchen spezielle Strategieren oder einfach nur eine Menge Übung, also gib eine Waffe nicht direkt auf wenn du deinen Gegner einmal verfehlst.
Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.
Tips
-
+ Die meisten Waffen funktionieren nicht mehr, sobald sie das Wasser berühren. Die zielsuchende Biene oder die Torte sind Ausnahmen hierfür.
The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.
Tips
-
+ Der Alte Limburger versucht nur einen kleinen Schaden. Die durch den Wind beeinflussbare Stinkwolke jedoch kann viele Igel auf einmal vergiften.
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
-
+ Der Piano-Angriff ist der verheerenste Luftangriff. Du verlierst allerdings den Igel der ihn vollführt, er hat also auch seine Schattenseite.
The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power.
Tips
-
+ Die zielsuchende Biene ist schwierig in der Handhabung. Ihr Wendekreis hängt von ihrer Geschwindigkeit ab, also versuche nicht die volle Kraft zu benutzen.
Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.
Tips
-
+ Haftminen sind perfekte Werkzeuge um Kettenreaktionen auszulösen oder Igel in die gewünschte Richtung zu lenken ... oder ins Wasser.
The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.
Tips
-
+ Der Hammer ist die effektivste Waffe auf Brücken oder Klippen. Getroffene Igel fallen einfach durch den Boden.
If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.
Tips
-
+ Wenn du hinter einem Igel feststeckst, benutze den Hammer um dich zu befreien ohne durch eine Explosion verletzt zu werden.
The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.
Tips
-
+ Die maximale Laufdistanz der Torte hängt vom abzulaufenden Untergrund ab. Benutze [Angriff] um sie früher zu zünden.
The Flame Thrower is a weapon but it can be used for tunnel digging as well.
Tips
-
+ Der Flammenwerfer ist zwar eine Waffe, kann aber auch zum Tunnelgraben genutzt werden.
Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.
Tips
-
+ Benutze den Molotov-Cocktail um kurzzeitig Igel daran zu hindern Tunnel zu durchqueren oder Plattformen zu erklimmen.
Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.
Tips
-
-
-
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Du willst wissen wer hinter Hedgewars steckt? Klicke auf das Hedgewars-Logo im Hauptmenü um die Credits zu sehen.
+
+
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
-
+ Du magst Hedgewars? Werde ein Fan auf %1 oder folge uns auf %2!
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.
Tips
-
+ Du kannst gerne deine eigenen Grabsteine, Hüte, Flaggen oder sogar Karten und Themes erstellen! Aber vergiss nicht, dass du sie auch verteilen musst um sie online zu nutzen.
Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!
Tips
-
+ Du willst einen besonderen Hut tragen? Spende etwas an uns und du kriegst einen exklusiven Hut deiner Wahl!
Keep your video card drivers up to date to avoid issues playing the game.
Tips
-
+ Halte deine Grafiktreiber aktuell um Probleme beim Spielen zu vermeiden.
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.
Tips
-
+ Du findest deine Hedgewars Konfigurationsdateien unter "Eigene Dateien\Hedgewars". Erstelle Backups oder kopiere deine Dateien, aber editiere sie besser nicht selbst.
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.
Tips
+ Du findest die Hedgewars Konfigurationsdateien in deinem Home-Verzeichnis. Erstelle Backups oder kopiere deine Dateien, aber editiere sie besser nicht selbst.
+
+
+ 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.
+ Tips
+ Du kannst Dateien wie Speicherstände oder Demos mit Hedgewars verknüpfen um sie so direkt mit deinem Datei- oder Internetbrowser zu öffnen.
+
+
+ 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!
+ Tips
+ Du willst Seile sparen? Lass das Seil in der Luft los und schieß nochmal. Solange du nicht den Boden berührst kannst du es wiederverwenden ohne Munition zu verschwenden!
+
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
@@ -694,7 +744,7 @@
You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.
-
+ Du kannst keine Teams bei der Team-Auswahl ändern. Gehe zum Hauptmenü zurück um Teams hinzuzufügen, zu editieren oder zu löschen.
@@ -818,32 +868,33 @@
State:
-
+ Status:
Rules:
-
+ Regeln:
Weapons:
-
+ Waffen:
Search:
-
+ Suche:
Clear
- Clear
+ Leeren
Warning
-
+ Warnung
The game you are trying to join has started.
Do you still want to join the room?
-
+ Das Spiel in das du beitreten möchtest hat bereits begonnen.
+Willst du trotzdem den Raum betreten?
@@ -858,7 +909,7 @@
Enable random mines
- Zufällige Minen Positionen
+ Zufällige Minen Positionen
Gain 80% of the damage you do back in health
@@ -930,11 +981,27 @@
Disable land objects when generating random maps.
-
+ Deaktiviere Landschaftsobjekte beim Generieren von Zufallskarten.
AI respawns on death.
-
+ KI wird wiederbelebt.
+
+
+ All (living) hedgehogs are fully restored at the end of turn
+ Alle (lebenden) Igel werden am Ende der Runde vollkommen geheilt
+
+
+ Attacking does not end your turn.
+ Angriffe beenden die Runde nicht.
+
+
+ Weapons are reset to starting values each turn.
+ Waffenarsenal wird jede Runde zurückgesetzt.
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+ Jeder igel hat sein eigenes Waffenarsenal. Es wird nicht mit dem Team geteilt.
@@ -972,7 +1039,7 @@
Campaign Mode (...). IN DEVELOPMENT
-
+ Kampagnenmodus (...) IN ENTWICKLUNG
@@ -1105,51 +1172,23 @@
Community
-
+
Any
-
+ Alle
In lobby
-
+ In Lobby
In progress
-
+ Im Spiel
Default
- Standard
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ Standard
@@ -1349,14 +1388,34 @@
Tip:
-
+ Tipp:
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!
-
+ Dieser Entwicklungsbuild ist 'in Arbeit' und kann inkompatibel zu anderen Versionen des Spiels sein. Manche Funktionen könnten unbrauchbar oder unvollständig sein. Benutzung auf eigene Gefahr!
Quality
+ Qualität
+
+
+ % Health Crates
+ % Medipacks
+
+
+ Health in Crates
+ Lebenspunkte pro Medipack
+
+
+ Sudden Death Water Rise
+ Steigen des Wassers
+
+
+ Sudden Death Health Decrease
+ Schaden bei Sudden Death
+
+
+ Bind schemes and weapons
@@ -1414,7 +1473,15 @@
Can not overwrite default weapon set '%1'!
-
+ Kann nicht das Standardwaffenset '%1' überschreiben!
+
+
+ All file associations have been set.
+ Alle Dateizuordnungen wurden gesetzt.
+
+
+ File association failed.
+ Dateizuordnung fehlgeschlagen.
@@ -1506,6 +1573,10 @@
Random Team
Zufallsteam
+
+ Associate file extensions
+ Ordne Dateitypen zu
+
QTableWidget
@@ -1616,7 +1687,7 @@
Add Mines
- Minen hinzufügen
+ Minen hinzufügen
Random Order
@@ -1640,11 +1711,27 @@
Disable Land Objects
-
+ Deaktivere Landschaftsobjekte
AI Survival Mode
-
+ KI Überlebensmodus
+
+
+ Reset Health
+ Gesundheit zurücksetzen
+
+
+ Unlimited Attacks
+ Unbegrenzte Angriffe
+
+
+ Reset Weapons
+ Waffen zurücksetzen
+
+
+ Per Hedgehog Ammo
+ Waffen pro Igel
@@ -1809,7 +1896,7 @@
slot 10
- Slot 10
+ Slot 10
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_en.ts
--- a/share/hedgewars/Data/Locale/hedgewars_en.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_en.ts Mon Nov 15 12:37:39 2010 +0100
@@ -40,6 +40,10 @@
Edit schemes
Edit schemes
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+ When this option is enabled selecting a game scheme will auto-select a weapon (and vice versa)
+
HWChatWidget
@@ -88,7 +92,17 @@
DefaultTeam
-
+ Default Team
+
+
+ Hedgewars Demo File
+ File Types
+ Hedgewars Demo File
+
+
+ Hedgewars Save File
+ File Types
+ Hedgewars Save File
@@ -142,7 +156,7 @@
Type
- Type
+ Type
Small tunnels
@@ -333,19 +347,19 @@
Details
-
+ Details
Health graph
-
+ Health graph
Ranking
-
+ Ranking
The best shot award was won by <b>%1</b> with <b>%2</b> pts.
-
+ The best shot award was won by <b>%1</b> with <b>%2</b> pts.
The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
@@ -361,25 +375,31 @@
A total of <b>%1</b> hedgehogs were killed during this round.
-
+
(%1 kill)
-
-
-
- (%1 kills)
-
-
-
+
+ (%1 kill)
+ (%1 kills)
+
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+ <b>%1</b> was scared and skipped turn <b>%2</b> time.
+ <b>%1</b> was scared and skipped turn <b>%2</b> times.
+
@@ -503,11 +523,6 @@
- Want to save ropse? 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!
- Tips
-
-
-
Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
Tips
@@ -598,7 +613,7 @@
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
@@ -623,7 +638,22 @@
- 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.
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
Tips
@@ -692,7 +722,7 @@
You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.
-
+ You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.
@@ -841,7 +871,8 @@
The game you are trying to join has started.
Do you still want to join the room?
-
+ The game you are trying to join has started.
+Do you still want to join the room?
@@ -876,7 +907,7 @@
Enable random mines
- Enable random mines
+ Enable random mines
Gain 80% of the damage you do back in health
@@ -934,6 +965,22 @@
AI respawns on death.
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+
+
PageSelectWeapon
@@ -1119,35 +1166,7 @@
Default
- Default
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ Default
@@ -1351,6 +1370,26 @@
Quality
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
+
+
QLineEdit
@@ -1408,6 +1447,14 @@
Can not overwrite default weapon set '%1'!
+
+ All file associations have been set.
+
+
+
+ File association failed.
+
+
QObject
@@ -1498,6 +1545,10 @@
Random Team
Random Team
+
+ Associate file extensions
+ Associate file extensions
+
QTableWidget
@@ -1608,7 +1659,7 @@
Add Mines
- Add Mines
+ Add Mines
Random Order
@@ -1638,6 +1689,22 @@
AI Survival Mode
+
+ Reset Health
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
+
+
binds
@@ -1801,7 +1868,7 @@
slot 10
- slot 10
+ slot 10
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_es.ts
--- a/share/hedgewars/Data/Locale/hedgewars_es.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_es.ts Mon Nov 15 12:37:39 2010 +0100
@@ -40,6 +40,10 @@
Edit schemes
Editar modos de juego
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+ Cuando esta opción esté activada escoger un modo de juego escogerá el set de armas correspondiente (y viceversa)
+
HWChatWidget
@@ -359,41 +363,53 @@
The best shot award was won by <b>%1</b> with <b>%2</b> pts.
- <p>El premio al mejor disparo es para <b>%1</b>, con <b>%2</b> pts.</p>
+ El premio al mejor disparo es para <b>%1</b>, con <b>%2</b> pts.
The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
- <p>El mejor guerrero es <b>%1</b>, con <b>%2</b> muerte en un solo turno.</p>
- <p>El mejor guerrero es <b>%1</b>, con <b>%2</b> muertes en un solo turno.</p>
+ El mejor guerrero es <b>%1</b>, con <b>%2</b> muerte en un solo turno.
+ El mejor guerrero es <b>%1</b>, con <b>%2</b> muertes en un solo turno.
A total of <b>%1</b> hedgehog(s) were killed during this round.
- <p>Un total de <b>%1</b> erizo murió esta ronda.</p>
- <p>Un total de <b>%1</b> erizos murieron esta ronda.</p>
+ Un total de <b>%1</b> erizo murió esta ronda.
+ Un total de <b>%1</b> erizos murieron esta ronda.
-
+
(%1 kill)
- (%1 baja)
+
+ (%1 baja)
+ (%1 bajas)
+
(%1 kills)
- (%1 bajas)
-
-
+ (%1 bajas)
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
- <b>%1</b> prefiere disparar a sus miembros, con un total de <b>%2</b> pts.
-
-
+
+ <b>%1</b> prefiere disparar a sus miembros, con un total de <b>%2</b> pt.
+ <b>%1</b> prefiere disparar a sus miembros, con un total de <b>%2</b> pts.
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
- <b>%1</b> acabó con <b>%2</b> de sus propios miembros.
-
-
+
+ <b>%1</b> acabó con <b>%2</b> de sus propios miembros.
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
- <b>%1</b> tenía demasiado miedo y pasó <b>%2</b> turnos.
+
+ <b>%1</b> tenía demasiado miedo y pasó <b>%2</b> turno.
+ <b>%1</b> tenía demasiado miedo y pasó <b>%2</b> turnos.
+
@@ -424,12 +440,12 @@
Want to save ropse? 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!
Tips
- ¿Andas escaso de cuerdas? Suelta la cuerda mientras estés en el aire y vuelve a dispararla de nuevo. ¡Mientras no toques el suelo seguirás usando la misma cuerda sin desperdiciar munición adicional!
+ ¿Andas escaso de cuerdas? Suelta la cuerda mientras estés en el aire y vuelve a dispararla de nuevo. ¡Mientras no toques el suelo seguirás usando la misma cuerda sin desperdiciar munición adicional!
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
- Si prefieres que nadie más use tu nick en el servidor oficial puedes registrarlo en http://www.hedgewars.org
+ Si prefieres que nadie más use tu nick en el servidor oficial puedes registrarlo en http://www.hedgewars.org/.
You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.
@@ -444,12 +460,12 @@
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!
Tips
- Hedgewars es un juego gratuito de código abierto que hemos creado en nuestro tiempo libre. Si tienes algún problema estaremos encantados de ayudarte en nuestros foros o canal de IRC, pero no esperes que estemos allí las 24 horas del día.
+ Hedgewars es un juego gratuito de código abierto que hemos creado en nuestro tiempo libre. Si tienes algún problema estaremos encantados de ayudarte en nuestros foros o canal de IRC, pero ¡no esperes que estemos allí las 24 horas del día!
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!
Tips
- Hedgewars es un juego gratuito de código abierto que hemos creado en nuestro tiempo libre. Si te gusta podrías considerar el ayudarnos con una pequeña donación o contribuyendo tu propio código, gráficos o audios.
+ Hedgewars es un juego gratuito de código abierto que hemos creado en nuestro tiempo libre. ¡Si te gusta podrías considerar el ayudarnos con una pequeña donación o contribuyendo con tu propio trabajo!
Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!
@@ -459,7 +475,7 @@
From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.
Tips
- De cuando en cuando celebramos torneos oficiales. Puedes mantenerte al día sobre los próximos eventos en http://www.hedgewars.org
+ De cuando en cuando celebramos torneos oficiales. Puedes mantenerte al día sobre los próximos eventos en http://www.hedgewars.org.
Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!
@@ -489,7 +505,7 @@
We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!
Tips
- Siempre estamos abiertos a sugerencias y opiniones constructivas. Si hay algo que no te guste o tienes grandes ideas que te gustaría ver en el juego, háznoslo saber.
+ Siempre estamos abiertos a sugerencias y opiniones constructivas. Si hay algo que no te guste o tienes grandes ideas que te gustaría ver en el juego, ¡háznoslo saber!
Especially while playing online be polite and always remember there might be some minors playing with or against you as well!
@@ -509,7 +525,7 @@
You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!
Tips
- Nunca instales Hedgewars en ordenadores que no te pertenezcan tales como los de tu escuela, universidad o trabajo sin perdir permiso primero a las personas responsables de los mismos.
+ ¡Nunca instales Hedgewars en ordenadores que no te pertenezcan tales como los de tu escuela, universidad o trabajo sin perdir permiso primero a las personas responsables de los mismos!
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.
@@ -524,7 +540,7 @@
Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
Tips
- Hedgewars es un juego gratuito de código abierto que hemos creado en nuestro tiempo libre. Si alguien te vendió el juego deberías pedirle que te devuelva tu dinero.
+ Hedgewars es un juego gratuito de código abierto que hemos creado en nuestro tiempo libre. Si alguien te ha vendido el juego deberías pedirle que te devuelva tu dinero.
Connect one or more gamepads before starting the game to be able to assign their controls to your teams.
@@ -612,9 +628,9 @@
¿Quieres saber quiénes son los desarrolladores del juego? Pulsa el logo del juego en la pantalla principal para ver los créditos.
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
- ¿Te gusta Hedgewars? Puedes hacerte fan en %1 o unirte a nuestro grupo en %2. ¡Y también puedes seguirnos en %3!
+ ¿Te gusta Hedgewars? ¡Hazte fan en %1 o síguenos en %2!
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.
@@ -639,13 +655,28 @@
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.
Tips
- Puedes encontrar los archivos de configuración del juego en la carpeta ~/.hedgewars. Haz copias de seguridad de los mismos o cópialos a otro ordenador si lo deseas, pero no intentes editarlos a mano para evitar posibles pérdidas de datos.
+ Puedes encontrar los archivos de configuración del juego en la carpeta ~/.hedgewars. Haz copias de seguridad de los mismos o cópialos a otro ordenador si lo deseas, pero no intentes editarlos a mano para evitar posibles pérdidas de datos.
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.
Tips
Puedes asociar los tipos de archivo relacionados, partidas guardadas y demos, con Hedgewars para lanzarlos directamente desde tu gestor de archivos o navegador favoritos.
+
+ 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!
+ Tips
+ ¿Necesitas conservar cuerdas? Cuando estés usando una cuerda puedes desengancharla y volver a lanzarla de nuevo. ¡Mientras no toques el suelo seguirás usando la misma cuerda continuamente sin desperdiciar munición adicional!
+
+
+ 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.
+ Tips
+ Puedes encontrar los archivos de configuración del juego en la carpeta "Library/Application Support/Hedgewars" dentro de tu directorio personal. Puedes hacer copias de seguridad de los mismos o copiarlos a otro ordenador si lo deseas, pero no intentes editarlos a mano para evitar posibles pérdidas de datos.
+
+
+ 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.
+ Tips
+ Puedes encontrar los archivos de configuración del juego en la carpeta ".hedgewars" dentro de tu directorio personal. Puedes hacer copias de seguridad de los mismos o copiarlos a otro ordenador si lo deseas, pero no intentes editarlos a mano para evitar posibles pérdidas de datos.
+
PageMultiplayer
@@ -876,7 +907,7 @@
Enable random mines
- Habilitar minas aleatorias
+ Habilitar minas aleatorias
Gain 80% of the damage you do back in health
@@ -912,19 +943,19 @@
Add an indestructable border around the terrain
- Añade un borde indestructible alrededor del campo de juego.
+ Añade un borde indestructible alrededor del campo de juego
Lower gravity
- Baja gravedad.
+ Baja gravedad
Assisted aiming with laser sight
- Una mira láser que te ayudará a apuntar.
+ Una mira láser que te ayudará a apuntar
All hogs have a personal forcefield
- Todos los erizos tienen un campo de fuerza personal que los protege.
+ Todos los erizos tienen un campo de fuerza personal que los protege
Order of play is random instead of in room order.
@@ -966,6 +997,10 @@
Each hedgehog has its own ammo. It does not share with the team.
Cada erizo tiene su propia munición y no la comparte con el resto del equipo.
+
+ All (living) hedgehogs are fully restored at the end of turn
+ La salud de todos los erizos en pie es restaurada al final de cada turno
+
PageSelectWeapon
@@ -1151,35 +1186,35 @@
Default
- Predeterminado
+ Predeterminado
Pro mode
- Modo pro
+ Modo pro
Shoppa
- Shoppa
+ Shoppa
Basketball
- Baloncesto
+ Baloncesto
Minefield
- Campo de minas
+ Campo de minas
Barrel mayhem
- Bodega infernal
+ Bodega infernal
Tunnel hogs
- Erizos subterráneos
+ Erizos subterráneos
Crazy
- Lunático
+ Lunático
@@ -1380,7 +1415,7 @@
Tip:
- Consejo:
+ Consejo:
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!
@@ -1392,6 +1427,26 @@
Quality
Calidad
+
+ % Health Crates
+ % botiquines
+
+
+ Health in Crates
+ Vida en botiquines
+
+
+ Sudden Death Water Rise
+ Aumento del nivel del agua en muerte súbita
+
+
+ Sudden Death Health Decrease
+ Disminución de vida por turno en muerte súbita
+
+
+ Bind schemes and weapons
+ Enlazar modos y sets
+
QLineEdit
@@ -1453,6 +1508,10 @@
All file associations have been set.
Se reestablecieron todas las asociaciones de tipo de archivo.
+
+ File association failed.
+ No se pudieron asociar los tipos de fichero.
+
QObject
@@ -1545,7 +1604,7 @@
Associate file extensions
- Asociar tipos de archivo.
+ Asociar tipos de archivo
@@ -1657,7 +1716,7 @@
Add Mines
- Añadir minas
+ Añadir minas
Random Order
@@ -1699,6 +1758,10 @@
Per Hedgehog Ammo
Munición individualizada
+
+ Reset Health
+ Restaurar salud
+
binds
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_fi.ts
--- a/share/hedgewars/Data/Locale/hedgewars_fi.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_fi.ts Mon Nov 15 12:37:39 2010 +0100
@@ -40,6 +40,10 @@
Edit schemes
Muokkaa kaavaa
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -88,6 +92,16 @@
DefaultTeam
+ OletusJoukkue
+
+
+ Hedgewars Demo File
+ File Types
+
+
+
+ Hedgewars Save File
+ File Types
@@ -142,31 +156,31 @@
Type
- Tyyppi
+ Tyyppi
Small tunnels
-
+ Pieniä tunneleita
Medium tunnels
-
+ Keskikokoisia tunneleita
Large tunnels
-
+ Laajoja tunneleita
Small floating islands
-
+ Pieniä kelluvia saaria
Medium floating islands
-
+ Keskikokoisia kelluvia saaria
Large floating islands
-
+ Suuria kelluvia saaria
@@ -241,7 +255,10 @@
registered on Hedgewars.org
Please provide your password below
or pick another nickname in game config:
-
+ Nimimerkkisi %1 on
+rekisteröity Hedgewars.org-sivustolla
+Ole hyvä ja syötä salasanasi
+tai aseta eri nimimerkki asetuksissa:
@@ -267,27 +284,27 @@
Fetch data
-
+ Nouda tiedot
Server message for latest version:
-
+ Palvelimen viesti viimeisimmälle versiolle:
Server message for previous versions:
-
+ Palvelimen viesti edellisille versioille:
Latest version protocol number:
-
+ Viimeisin versioprotokollan numero:
MOTD preview:
-
+ Päivän viestin esikatselu:
Set data
-
+ Aseta tiedot
@@ -330,53 +347,65 @@
Details
-
+ Yksityiskohdat
Health graph
-
+ Terveys-kuvaaja
Ranking
-
+ Ranking
The best shot award was won by <b>%1</b> with <b>%2</b> pts.
-
+ Paras laukaus-mitalin voitti <b>%1</b> <b>%2</b> vahinkopisteellä.
The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
-
-
-
+
+ Paras tappaja on <b>%1</b> <b>%2</b> tapolla
+ Paras tappaja on <b>%1</b> <b>%2</b> tapolla
A total of <b>%1</b> hedgehog(s) were killed during this round.
+
+ Yhteensä <b>%1</b> siili tapettiin tämän erän aikana.
+ Yhteensä <b>%1</b> siiltä tapettiin tämän erän aikana.
+
+
+
+ (%1 kill)
-
+ (%1 tappo)
- (%1 kill)
-
-
-
(%1 kills)
-
-
-
+ (%1 tappoa)
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+ <b>%1</b> ajatteli että omia siilejä on hyvä vahingoittaa <b>%2</b> vahinkopisteellä.
+
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+ <b>%1</b> tappoi <b>%2</b> omaa siiltä.
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+ <b>%1</b> pelkäsi ja jätti vuoronsa väliin <b>%2</b> kertaa.
+
+
@@ -392,236 +421,256 @@
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.
Tips
-
+ Valitse sama väri kaverisi kanssa pelataksesi samassa joukkueessa. Kumpikin ohjaa omia siilejään, mutta voitatte ja häviätte yhdessä.
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.
Tips
-
+ Jotkut aseet tekevät vain vähän vahinkoa, mutta voivat olla tuhoisampia oikeassa tilanteessa. Kokeile ampua useampi siili veteen Desert Eaglella.
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!
Tips
-
+ Jos et tiedä mitä tehdä etkä halua tuhlata ammuksia, jätä vuoro väliin. Mutta älä anna ajan kulua liikaa koska Äkkikuolema koittaa ennemmin tai myöhemmin!
Want to save ropse? 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!
Tips
-
+ Haluatko säästää köysiä? Päästä köysi irti ilmassa ja ammu uudelleen. Niin pitkään kun et osu maahan, pääse käyttämään köyden uudelleen kuluttamatta ammuksia!
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
-
+ Jos haluat estää muita käyttämästä nimimerkkiäsi virallisella palvelimella, rekisteröi tunnus osoitteessa http://www.hedgewars.org/.
You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.
Tips
-
+ Kyllästyttääkö normaali peli? Kokeila tehtäviä - Ne tarjoaa erilaisia pelitapoja riippuen valinnasta.
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.
Tips
-
+ Oletuksena viimeisin peli nauhoitetaan demoksi. Valitse 'Demot' vasemmasta alakulmasta katsoaksesi ja hallitaksesi niitä.
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!
Tips
-
+ Hedgewars on avointa lähdekoodia ja ilmainen ohjelma jota me luomme vapaa-aikanamme. Jos sinulla on ongelmia, kysy keskustelualueilta apua, mutta älä odota 24/7-tukea!
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!
Tips
-
+ Hedgewars on avointa lähdekoodia ja ilmainen ohjelma jota me luomme vapaa-aikanamme. Jos pidät siitä, voit auttaa meitä pienellä lahjoituksella tai omaa työllä!
Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!
Tips
-
+ Hedgewars on avointa lähdekoodia ja ilmainen ohjelma jota me luomme vapaa-aikanamme. Jaa sitä perheesi ja ystäviesi kesken miten haluat!
From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.
Tips
-
+ Toisinaan järjestetään virallisia turnauksia. Tulevista tapahtumista tiedotetaan osoitteessa http://www.hedgewars.org/ muutama päivä etukäteen.
Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!
Tips
-
+ Hedgewars on saatavilla monilla kielillä. Jos oman kielinen käännös puuttuu tai on vanhentunut, ota yhteyttä!
Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.
Tips
-
+ Hedgewars toimii useilla eri käyttöjärjestelmillä, kuten Microsoft Windowsissa, Mac OS X:ssä ja Linuxissa.
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.
Tips
-
+ Muista että voit aina luoda oman pelisi paikallisesti ja verkkopelissä. Et ole rajoitettu yksinkertaiseen peliin.
While playing you should give yourself a short break at least once an hour.
Tips
-
+ Pelatessa sinun pitäisi pitää lyhyt tauko vähintään kerran tunnissa.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.
Tips
-
+ Jos näytönohjaimesi ei tarjoa laitteistokiihdytettä OpenGL:ää, kokeile heikennetyn laadun tilaa parantaaksesi suorituskykyä.
We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!
Tips
-
+ Me olemme avoimia ehdotuksille ja rakentavalle palautteelle. Jos et pidä jostain tai sinulla on loistava idea, kerro meille!
Especially while playing online be polite and always remember there might be some minors playing with or against you as well!
Tips
-
+ Erityisesti verkossa pelattaessa ole kohtelias ja muista että alaikäisiä saattaa myös olla pelaamassa.
Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!
Tips
-
+ Erityispelimoodit kuten 'Vampyrismi' ja 'Karma' mahdollistavat kokonaan uusien taktiikoiden kehittämisen. Kokeile niitä muokatussa pelissä!
The Windows version of Hedgewars supports Xfire. Make sure to add Hedgwars to its game list so your friends can see you playing.
Tips
-
+ Windows-versio Hedgewarsista tukee Xfireä. Lisää Hedgewars sen pelilistaan niin kaverisi näkee kun pelaat.
You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!
Tips
-
+ Sinun ei ikinä tulisi asentaa Hedgewarsia tietokoneille joita et omista (koulu, yliopisto, työpaikka jne.). Ole hvä ja pyydä vastuuhenkilöä tekemään se!
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.
Tips
-
+ Hedgewars voi olla täydellinen peli tauoille. Mutta varmista ettet lisää liian montaa siiltä ta käytä liian suurta karttaa. Ajan ja terveyden vähentäminen voi myös auttaa.
No hedgehogs were harmed in making this game.
Tips
-
+ Yhtään siiliä ei vahingoitettu tämän pelin tekemisen aikana.
Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
Tips
-
+ Hedgewars on avointa lähdekoodia ja ilmainen ohjelma jota me luomme vapaa-aikanamme. Jos joku myi sinulle tämän pelin, koita saada rahasi takaisin!
Connect one or more gamepads before starting the game to be able to assign their controls to your teams.
Tips
-
+ Yhdistä yksi tai useampi peliohjain ennen pelin käynnistämistä liittääksesi niiden kontrollit omaan joukkueeseesi.
Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
Tips
-
+ Luo käyttäjätili osoitteessa %1 estääksesi muita käyttämästä suosikkinimimerkkiäsi pelatessasi virallisella palvelimella.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.
Tips
-
+ Jos näytönohjaimesi ei tue laitteistokiihdytettyä OpenGL:ää, kokeile päivittää ajurit.
There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.
Tips
-
+ Hyppyjä on saatavilla kolmea erilaista. Napauta [korkea hyppy]-nappai kahdesti tehdäksesi todella korkean/taaksepäin hypyn.
Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.
Tips
-
+ Pelkäätkö että putoat kielekkeeltä? Pidä [tarkkuus]-näppäintä pohjassa kääntyäksesi [vasemmalle] ja [oikealle] liikkumatta.
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.
Tips
-
+ Jotkut aseet vaativat erityisstrategiaa tai todella paljon harjoittelua, joten älä anna periksi vaikka et kerran osuisikaan.
Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.
Tips
-
+
The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.
Tips
-
+ Vanha Limburger-juusto aiheuttaa vain pienen räjähdyksen, mutta tuulen vaikuttama hajupilvi voi myrkyttää suuren määrän siiliä kerralla.
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
-
+ Pianoisku on vahingollisin ilmaisku. Menetät siilen joka sen esittää, joten sillä on myös suuri huono puoli.
The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power.
Tips
-
+ Mehiläinen voi olla hankala käyttää. Sen säde riippuu nopeudesta, joten älä käytä sitä täydellä voimalla
Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.
Tips
-
+ Tarttuvat miinat ovat täydellinen työkalu luomaan pieniä ketjureaktioita jotka vie vihollissiilit kauheisiin tilanteisiin...tai veteen.
The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.
Tips
-
+ Vasara on tehokkaimmillaan silloilla ja palkeilla. Lyödyt siilit iskeytyvät maan läpi.
If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.
Tips
-
+ Jos olet jumissa vihollissiilin takana, käytä vasaraa vapauttaaksesi itsesi ilman että vahingoidut räjädyksen voimasta.
The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.
Tips
-
+ Kakun pisin mahdollinen kulkumatka riippuu maastosta. Käytä [hyökkäystä] räjäyttääksesi sen aikaisemmin.
The Flame Thrower is a weapon but it can be used for tunnel digging as well.
Tips
-
+ Liekinheitin on ase mutta sitä voi käyttää myös tunneleiden kaivamiseen.
Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.
Tips
-
+ Käytä palavaa kranaattia estämään siilia kulkemasta esimerkiksi tunneleihin ja tasoille.
Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.
Tips
-
-
-
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Haluatko tietää ketkä ovat pelin takana? Klikkaa Hedgewars-logoa päävalikossa nähdäksesi tekijäluettelon.
+
+
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
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.
Tips
-
+ Piirrä vapaasti omia hautoja, hattuja, lippuja ja jopa karttoja ja teemoja! Mutta huomaa että sinun pitää jakaa ne jossain käyttääksesi niitä verkossa.
Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!
Tips
-
+ Haluatko todella pitää tiettyä hattua? Lahjoita meille niin saat yksinoikeudella vapaavalintaisen hatun!
Keep your video card drivers up to date to avoid issues playing the game.
Tips
-
+ Pidä näytönohjaimesi ajurit ajantasall välttääksesi ongelmat pelin pelaamisessa.
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.
Tips
-
+ Löydät Hedgewars-asetustiedostot hakemistosta "Omat tiedostot\Hedgewars". Ota varmuuskopio tai ota ne mukaasi, mutta älä muokkaa niitä käsin.
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.
Tips
+ Löydät Hedgewars-asetustiedostot "Hedgewars"-hakemistosta kotihakemistossasi. Ota varmuuskopio tai ota ne mukaasi, mutta älä muokkaa niitä käsin.
+
+
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
@@ -673,23 +722,23 @@
Delete team
-
+ Poista joukkue
New weapon scheme
-
+ Uusi ase
Edit weapon scheme
-
+ Muokkaa asesuunnitelmaa
Delete weapon scheme
-
+ Poista asesuunnitelma
You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.
-
+ Et voi muokata joukkueita joukkuevalinnassa. Mene takaisin päävalikkoon lisätäksesi, muokataksesi tai poistaaksesi joukkueita.
@@ -809,36 +858,37 @@
Random Maze
-
+ Satunnainen sokkelo
State:
-
+ Tila:
Rules:
-
+ Säännöt:
Weapons:
-
+ Aseet:
Search:
-
+ Haku:
Clear
- Tyhjennä
+ Tyhjennä
Warning
-
+ Varoitus
The game you are trying to join has started.
Do you still want to join the room?
-
+ Peli johon yrität liittyä on jo alkanut.
+Haluatko silti liittyä huoneeseen?
@@ -873,7 +923,7 @@
Enable random mines
- Lisää miinoja satunnaisesti
+ Lisää miinoja satunnaisesti
Gain 80% of the damage you do back in health
@@ -925,10 +975,26 @@
Disable land objects when generating random maps.
-
+ Poista maaobjektit satunnaisten karttojen luonnissa.
AI respawns on death.
+ Tekoäly syntyy uudelleen kuollessaan.
+
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
@@ -967,7 +1033,7 @@
Campaign Mode (...). IN DEVELOPMENT
-
+ Kampanja-tila (...). KEHITYS KESKEN
@@ -1092,59 +1158,59 @@
generated maze...
-
+ Generoitu sokkelo...
Mission
-
+ Tehtävä
Community
-
+ Yhteisö
Any
-
+ Mikä tahansa
In lobby
-
+ Aulassa
In progress
-
+ Kesken
Default
- Oletus
+ Oletus
Pro mode
-
+ Pro-tila
Shoppa
-
+ Shoppa
Basketball
-
+ Koripallo
Minefield
-
+ Miinakenttä
Barrel mayhem
-
+ Tynnyrikaaos
Tunnel hogs
-
+ Tunnelisiilit
Crazy
-
+ Sekopäinen
@@ -1334,18 +1400,38 @@
Explosives
-
+ Räjähteet
Tip:
-
+ Vinkki:
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!
-
+ Tämä kehitysversio on keskeneräinen ja ei välttämättä ole yhteensopiva muiden versioiden kanssa. Jotkut ominaisuudet voivat olla rikki tai kesken. Käytä omalla vastuulla!
Quality
+ Laatu
+
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
@@ -1403,6 +1489,14 @@
Can not overwrite default weapon set '%1'!
+ Oletusasetussettiä '%1' ei voida ylikirjoittaa!
+
+
+ All file associations have been set.
+
+
+
+ File association failed.
@@ -1495,6 +1589,10 @@
Random Team
Satunnainen joukkue
+
+ Associate file extensions
+
+
QTableWidget
@@ -1605,7 +1703,7 @@
Add Mines
- Lisää miinat
+ Lisää miinat
Random Order
@@ -1629,10 +1727,26 @@
Disable Land Objects
-
+ Ei maaobjekteja
AI Survival Mode
+ Tekoäly selviytymistila
+
+
+ Reset Health
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
@@ -1798,7 +1912,7 @@
slot 10
- Paikka 10
+ paikka 10
@@ -2203,7 +2317,7 @@
Mouse: Left button
-
+ Hiiri: Vasen nappi
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_fr.ts
--- a/share/hedgewars/Data/Locale/hedgewars_fr.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_fr.ts Mon Nov 15 12:37:39 2010 +0100
@@ -40,24 +40,28 @@
Edit schemes
Éditer les paramètres
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
%1 *** %2 has been removed from your ignore list
-
+ %1 *** %2 a été enlevé de la liste des personnes ignorées
%1 *** %2 has been added to your ignore list
-
+ %1 *** %2 a été ajouté dans la liste des personnes ignorées
%1 *** %2 has been removed from your friends list
-
+ %1 *** %2 a été enlevé à votre liste d'amis
%1 *** %2 has been added to your friends list
-
+ %1 *** %2 a été ajouté à votre liste d'amis
@@ -88,6 +92,16 @@
DefaultTeam
+ Équipe par défaut
+
+
+ Hedgewars Demo File
+ File Types
+
+
+
+ Hedgewars Save File
+ File Types
@@ -142,31 +156,31 @@
Type
-
+ Type
Small tunnels
-
+ Petits tunnels
Medium tunnels
-
+ Tunnels moyens
Large tunnels
-
+ Grand tunnels
Small floating islands
-
+ Petites Îles flottantes
Medium floating islands
-
+ Îles flottantes moyennes
Large floating islands
-
+ Grandes îles flottantes
@@ -358,25 +372,33 @@
-
+
(%1 kill)
-
-
-
- (%1 kills)
-
-
-
+
+
+
+
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+
+
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+
+
+
@@ -405,11 +427,6 @@
- Want to save ropse? 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!
- Tips
-
-
-
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
@@ -595,11 +612,6 @@
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
- Tips
-
-
-
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.
Tips
@@ -620,7 +632,27 @@
- 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.
+ 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.
+ Tips
+
+
+
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
Tips
@@ -853,7 +885,7 @@
Enable random mines
- Activer les mines aléatoires
+ Activer les mines aléatoires
Gain 80% of the damage you do back in health
@@ -931,6 +963,22 @@
AI respawns on death.
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+
+
PageSelectWeapon
@@ -1116,35 +1164,7 @@
Default
- Défaut
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ Défaut
@@ -1310,7 +1330,7 @@
Type
-
+ Type
Grave
@@ -1348,6 +1368,26 @@
Quality
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
+
+
QLineEdit
@@ -1405,6 +1445,14 @@
Can not overwrite default weapon set '%1'!
+
+ All file associations have been set.
+
+
+
+ File association failed.
+
+
QObject
@@ -1495,6 +1543,10 @@
Random Team
+
+ Associate file extensions
+
+
QTableWidget
@@ -1605,7 +1657,7 @@
Add Mines
- Ajouter des Mines
+ Ajouter des Mines
Random Order
@@ -1635,6 +1687,22 @@
AI Survival Mode
+
+ Reset Health
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
+
+
binds
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_hu.ts
--- a/share/hedgewars/Data/Locale/hedgewars_hu.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_hu.ts Mon Nov 15 12:37:39 2010 +0100
@@ -39,6 +39,10 @@
Edit schemes
Sémák szerkesztése
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -85,6 +89,20 @@
Please select record from the list above
Kérlek válassz a fentebbi listából
+
+ DefaultTeam
+
+
+
+ Hedgewars Demo File
+ File Types
+
+
+
+ Hedgewars Save File
+ File Types
+
+
HWGame
@@ -210,7 +228,7 @@
registered on Hedgewars.org
Please provide your password
or pick another nickname:
- A %1 név már
+ A %1 név már
regisztrálva van a Hedgewars.org-on
Írd be a jelszavad
vagy válassz másik nevet:
@@ -231,6 +249,13 @@
%1 *** %2 has left
%1 *** %2 távozott
+
+ Your nickname %1 is
+registered on Hedgewars.org
+Please provide your password below
+or pick another nickname in game config:
+
+
KB
@@ -300,20 +325,72 @@
PageGameStats
<p>The best shot award was won by <b>%1</b> with <b>%2</b> pts.</p>
- <p>A legjobb lövés díját <b>%1</b> nyerte <b>%2</b> ponttal.</p>
+ <p>A legjobb lövés díját <b>%1</b> nyerte <b>%2</b> ponttal.</p>
<p>The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</p>
-
+
<p>A legjobb gyilkos <b>%1</b> volt, <b>%2</b> áldozattal egy körben.</p>
<p>A total of <b>%1</b> hedgehog(s) were killed during this round.</p>
-
+
<p>Összesen <b>%1</b> süni pusztult el ebben a játékban.</p>
+
+ Details
+
+
+
+ Health graph
+
+
+
+ Ranking
+
+
+
+ The best shot award was won by <b>%1</b> with <b>%2</b> pts.
+
+
+
+ The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
+
+
+
+
+
+ A total of <b>%1</b> hedgehog(s) were killed during this round.
+
+
+
+
+
+ (%1 kill)
+
+
+
+
+
+ <b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
+
+
+
+
+
+ <b>%1</b> killed <b>%2</b> of his own hedgehogs.
+
+
+
+
+
+ <b>%1</b> was scared and skipped turn <b>%2</b> times.
+
+
+
+
PageMain
@@ -325,6 +402,251 @@
Network Game (Play a game across a network)
Hálózati játék (Játék hálózaton keresztül)
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
+ Tips
+
+
+
+ You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!
+ Tips
+
+
+
+ Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
+ Tips
+
+
+
+ From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.
+ Tips
+
+
+
+ Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!
+ Tips
+
+
+
+ Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ Connect one or more gamepads before starting the game to be able to assign their controls to your teams.
+ Tips
+
+
+
+ Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
+ Tips
+
+
+
+ While playing you should give yourself a short break at least once an hour.
+ Tips
+
+
+
+ If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.
+ Tips
+
+
+
+ If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.
+ Tips
+
+
+
+ We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!
+ Tips
+
+
+
+ Especially while playing online be polite and always remember there might be some minors playing with or against you as well!
+ Tips
+
+
+
+ Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!
+ Tips
+
+
+
+ The Windows version of Hedgewars supports Xfire. Make sure to add Hedgwars to its game list so your friends can see you playing.
+ Tips
+
+
+
+ You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ No hedgehogs were harmed in making this game.
+ Tips
+
+
+
+ There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.
+ Tips
+
+
+
+ Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.
+ Tips
+
+
+
+ The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.
+ Tips
+
+
+
+ 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
+
+
+
+ The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power.
+ Tips
+
+
+
+ Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.
+ Tips
+
+
+
+ The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.
+ Tips
+
+
+
+ If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.
+ Tips
+
+
+
+ The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.
+ Tips
+
+
+
+ The Flame Thrower is a weapon but it can be used for tunnel digging as well.
+ Tips
+
+
+
+ Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.
+ Tips
+
+
+
+ Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.
+ Tips
+
+
+
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!
+ Tips
+
+
+
+ Keep your video card drivers up to date to avoid issues playing the game.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
+
+
PageMultiplayer
@@ -388,6 +710,10 @@
Delete weapon scheme
Fegyverséma törlése
+
+ You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.
+
+
PagePlayDemo
@@ -506,6 +832,35 @@
Random Maze
Véletlen labirintus
+
+ State:
+
+
+
+ Rules:
+
+
+
+ Weapons:
+
+
+
+ Search:
+
+
+
+ Clear
+ Törlés
+
+
+ Warning
+
+
+
+ The game you are trying to join has started.
+Do you still want to join the room?
+
+
PageScheme
@@ -539,7 +894,7 @@
Enable random mines
- Véletlen aknaidőzítés engedélyezése
+ Véletlen aknaidőzítés engedélyezése
Gain 80% of the damage you do back in health
@@ -593,6 +948,26 @@
Disable land objects when generating random maps.
Tereptárgyak letiltása véletlen pálya létrehozásakor.
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ AI respawns on death.
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+
+
PageSelectWeapon
@@ -627,6 +1002,10 @@
Load (Load a previously saved game)
Betöltés (korábbi mentett állás visszatöltése)
+
+ Campaign Mode (...). IN DEVELOPMENT
+
+
QAction
@@ -711,7 +1090,7 @@
Reduced quality
- Csökkentett minőség
+ Csökkentett minőség
Show ammo menu tooltips
@@ -756,6 +1135,26 @@
generated maze...
a létrehozott labirintus...
+
+ Community
+
+
+
+ Any
+
+
+
+ In lobby
+
+
+
+ In progress
+
+
+
+ Default
+ Default
+
QGroupBox
@@ -949,9 +1348,41 @@
This SVN 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!
- Ez az SVN build még fejlesztés alatt áll és esetlegesen nem kompatibilis a játék más verzióival.
+ Ez az SVN build még fejlesztés alatt áll és esetlegesen nem kompatibilis a játék más verzióival.
Néhány részlet esetleg nem működik vagy nincs készen. Csak saját felelősségre használd!
+
+ Tip:
+
+
+
+ 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!
+
+
+
+ Quality
+
+
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
+
+
QLineEdit
@@ -995,7 +1426,7 @@
Can not edit default weapon set
- Az alap fegverkészlet nem szerkeszthető
+ Az alap fegverkészlet nem szerkeszthető
Can not delete default weapon set
@@ -1005,6 +1436,18 @@
Really delete this weapon set?
Valóban törlöd ezt a fegyverkészletet?
+
+ All file associations have been set.
+
+
+
+ File association failed.
+
+
+
+ Can not overwrite default weapon set '%1'!
+
+
QObject
@@ -1095,6 +1538,10 @@
Random Team
Véletlen csapat
+
+ Associate file extensions
+
+
QTableWidget
@@ -1205,7 +1652,7 @@
Add Mines
- Aknák hozzáadása
+ Aknák hozzáadása
Random Order
@@ -1231,6 +1678,26 @@
Disable Land Objects
Tereptárgyak tiltása
+
+ Reset Health
+
+
+
+ AI Survival Mode
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
+
+
binds
@@ -1392,6 +1859,10 @@
high jump
magasugrás
+
+ slot 10
+ slot 10
+
binds (categories)
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_it.ts
--- a/share/hedgewars/Data/Locale/hedgewars_it.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_it.ts Mon Nov 15 12:37:39 2010 +0100
@@ -40,6 +40,10 @@
Edit schemes
Modifica schemi
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -90,6 +94,16 @@
DefaultTeam
+
+ Hedgewars Demo File
+ File Types
+
+
+
+ Hedgewars Save File
+ File Types
+
+
HWGame
@@ -362,25 +376,33 @@
-
+
(%1 kill)
-
-
-
- (%1 kills)
-
-
-
+
+
+
+
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+
+
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+
+
+
@@ -409,11 +431,6 @@
- Want to save ropse? 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!
- Tips
-
-
-
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
@@ -599,7 +616,7 @@
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
@@ -624,7 +641,22 @@
- 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.
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
Tips
@@ -849,7 +881,7 @@
PageScheme
Enable random mines
- Abilita mine casuali
+ Abilita mine casuali
Gain 80% of the damage you do back in health
@@ -935,6 +967,22 @@
AI respawns on death.
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+
+
PageSelectWeapon
@@ -1120,35 +1168,7 @@
Default
- Default
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ Default
@@ -1358,6 +1378,26 @@
Quality
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
+
+
QLineEdit
@@ -1415,6 +1455,14 @@
Can not overwrite default weapon set '%1'!
+
+ All file associations have been set.
+
+
+
+ File association failed.
+
+
QObject
@@ -1505,6 +1553,10 @@
Random Team
Team Casuale
+
+ Associate file extensions
+
+
QTableWidget
@@ -1615,7 +1667,7 @@
Add Mines
- Aggiungi mine
+ Aggiungi mine
Random Order
@@ -1645,6 +1697,22 @@
AI Survival Mode
+
+ Reset Health
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
+
+
binds
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_ja.ts
--- a/share/hedgewars/Data/Locale/hedgewars_ja.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ja.ts Mon Nov 15 12:37:39 2010 +0100
@@ -39,6 +39,10 @@
Edit schemes
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -89,6 +93,16 @@
DefaultTeam
+
+ Hedgewars Demo File
+ File Types
+
+
+
+ Hedgewars Save File
+ File Types
+
+
HWGame
@@ -323,25 +337,29 @@
-
+
(%1 kill)
-
-
-
- (%1 kills)
-
-
-
+
+
+
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+
+
@@ -370,11 +388,6 @@
- Want to save ropse? 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!
- Tips
-
-
-
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
@@ -560,7 +573,7 @@
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
@@ -585,7 +598,22 @@
- 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.
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
Tips
@@ -833,10 +861,6 @@
- Enable random mines
-
-
-
Gain 80% of the damage you do back in health
@@ -892,6 +916,22 @@
AI respawns on death.
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+
+
PageSelectWeapon
@@ -1073,35 +1113,7 @@
Default
- デフォールト
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ デフォールト
@@ -1305,6 +1317,26 @@
Quality
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
+
+
QLineEdit
@@ -1362,6 +1394,14 @@
Can not overwrite default weapon set '%1'!
+
+ All file associations have been set.
+
+
+
+ File association failed.
+
+
QObject
@@ -1452,6 +1492,10 @@
Random Team
+
+ Associate file extensions
+
+
QTableWidget
@@ -1561,10 +1605,6 @@
- Add Mines
-
-
-
Random Order
@@ -1592,6 +1632,22 @@
AI Survival Mode
+
+ Reset Health
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
+
+
binds
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_pl.ts
--- a/share/hedgewars/Data/Locale/hedgewars_pl.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_pl.ts Mon Nov 15 12:37:39 2010 +0100
@@ -41,6 +41,10 @@
Edit weapons
Edytuj uzbrojenie
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+ Kiedy ta opcja jest włączona, wybór ustawnień gry zmienia uzbrojenie na odpowiadające (i vice versa)
+
HWChatWidget
@@ -89,7 +93,17 @@
DefaultTeam
-
+ DomyślnaDrużyna
+
+
+ Hedgewars Demo File
+ File Types
+ Plik demo
+
+
+ Hedgewars Save File
+ File Types
+ Zapisana gra
@@ -340,55 +354,71 @@
Details
-
+ Szczegóły
Health graph
-
+ Wykres
Ranking
-
+ Ranking
The best shot award was won by <b>%1</b> with <b>%2</b> pts.
-
+ Największe obrażenia (<b>%2</b> pkt.) zadał <b>%1</b>.
The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
-
-
-
-
+
+ Najlepszym zabójcą został <b>%1</b> zabijając <b>%2</b> jeża w ciągu tury.
+ Najlepszym zabójcą został <b>%1</b> zabijając <b>%2</b> jeże w ciągu tury.
+ Najlepszym zabójcą został <b>%1</b> zabijając <b>%2</b> jeży w ciągu tury.
A total of <b>%1</b> hedgehog(s) were killed during this round.
-
-
-
-
+
+ W tej rundzie został zabity <b>%1</b> jeż.
+ W tej rundzie zostały zabite <b>%1</b> jeże.
+ W tej rundzie zostało zabitych <b>%1</b> jeży.
-
+
(%1 kill)
-
+
+ (%1 zabity jeż)
+ (%1 zabite jeże)
+ (%1 zabitych jeży)
+
(%1 kills)
-
-
-
+ (%1 zabitych)
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+ <b>%1</b> przyjaźni się z wrogiem i zabrał swojej drużynie <b>%2</b> pkt. życia.
+ <b>%1</b> przyjaźni się z wrogiem i zabrał swojej drużynie <b>%2</b> pkt. życia.
+ <b>%1</b> przyjaźni się z wrogiem i zabrał swojej drużynie <b>%2</b> pkt. życia.
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+ <b>%1</b> zabił <b>%2</b> swojego jeża
+ <b>%1</b> zabił <b>%2</b> swoje jeże
+ <b>%1</b> zabił <b>%2</b> swoich jeży
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+ <b>%1</b> trząsł portkami i opuścił turę <b>%2</b> raz.
+ <b>%1</b> trząsł portkami i opuścił turę <b>%2</b> razy.
+ <b>%1</b> trząsł portkami i opuścił turę <b>%2</b> razy.
+
@@ -419,7 +449,7 @@
Want to save ropse? 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!
Tips
- Chcesz zaoszczędzić liny? Odłącz ją będąc w powietrzu, a potem wypuść ją ponownie. Tak długo jak nie dotkniesz ziemi, będziesz używał pojedynczego naboju!
+ Chcesz zaoszczędzić liny? Odłącz ją będąc w powietrzu, a potem wypuść ją ponownie. Tak długo jak nie dotkniesz ziemi, będziesz używał pojedynczego naboju!
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
@@ -534,122 +564,142 @@
Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
Tips
-
+ Hedgewars jest darmową grą o otwartym kodzie źródłowym którą tworzymy w naszym wolnym czasie. Jeśli ktokolwiek sprzedał Tobie tę grę pownieneś upomnieć się o swoje pieniądze!
Connect one or more gamepads before starting the game to be able to assign their controls to your teams.
Tips
-
+ Jeśli podłączysz jeden lub więcej gamepadów przed włączeniem gry, będziesz miał możliwość przypisania klawiszy by sterować nimi własne jeże.
Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
Tips
-
+ Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.
Tips
-
+ Jeśli twoja karta nie wspiera sprzętowego przyspieszania OpenGL spróbuj uaktualnić swoje sterowniki.
There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.
Tips
-
+ Są trzy różne rodzaje skoku możliwe do wykonania. Naciśnij [wysoki skok] dwa razy by zrobić bardzo wysoki skok w tył.
Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.
Tips
-
+ Boisz się upadku z krawędzi terenu? Przytrzymaj klawisz [precyzyjnego celowania] by obrócić się w [lewo] lub [prawo] bez ruszenia się z miejsca.
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.
Tips
-
+ Niektóre z broni wymagają specjalnej strategii lub dużo treningu by je popranie używać. Nie poddawaj się gdy nie ychodzi ci za pierwszym razem.
Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.
Tips
-
+ Większość uzbrojenia nie działa pod wodą. Pszczoła i Ciasto są wyjątkami od tej reguły.
The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.
Tips
-
+ Cuchnący ser nie powoduje wielkiiego wybuchu. Jednakże pod wpływem wiatu chmura śmierdzącego gazu może bardzo daleko zawędrować i otruć wiele jeży naraz.
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
-
+ Zrzut pianina jest najbardziej morderczym atakiem powietrznym. Pamiętaj, że traciśz jeża którym wykonujesz ten atak więc dobrze zaplanuj swój ruch.
The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power.
Tips
-
+ Pszczoła potrafi być ciężka w użyciu. Jej promień skrętu zależy od prędkości lotu, więc nie próbuj używać pełnej mocy podczas strzału.
Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.
Tips
-
+ Miny samoprzylepne są idealnym narzędziem by tworzyć małe reakcje łańcuchowe bądź zmuszenia przeciwnika by popadł w tarapaty lub wpadł do wody.
The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.
Tips
-
+ Młotek jest najbardziej skuteczny na mostach bądź kładkach. Uderzone jeże przelecą przez nie na sam dół.
If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.
Tips
-
+ Jeśli utknąłeś za jeżem przeciwnika, użyj młotka by wbić go w ziemię. Unikniesz wtedy eksplozji która z pewnością zabrała by Tobie punkty życia.
The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.
Tips
-
+ Dystans który Ciasto może przebyć zależy od terenu który ma do przebycia. Użyj [ataku] by zdetonować je wcześniej.
The Flame Thrower is a weapon but it can be used for tunnel digging as well.
Tips
-
+ Miotacz ognia jest głównie bronią ale moe być użyty również jako narzędzie do kopania tuneli.
Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.
Tips
-
+ Użyj koktajlu Mołotowa by powstrzymać przeciwnika przed przedostaniem się przez tunele lub platformy.
Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.
Tips
-
-
-
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Chcesz wiedzieć kto tworzy tę grę. Kliknij logo w głównym menu by zobaczyć autorów.
+
+
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
-
+ Lubisz Hedgewars? Zostań fanem na %1 lub dołącz do grupy na %2!
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.
Tips
-
+ Możesz rysować własne nagrobki, czapki, flagi lub nawet mapy albo tematy! Miej na uwadze to by udostępnić je każdemu który będzie z tobą grał prze4z sieć.
Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!
Tips
-
+ Bardzo chcesz nosić czapkę jaka ci się zamarzy. Wspomóż nas pieniężnie a my zrobimy specjalną czapkę tylko dla Ciebie!
Keep your video card drivers up to date to avoid issues playing the game.
Tips
-
+ Pamiętaj o aktualizowaniu sterowników by zapobiec problemom z grami.
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.
Tips
-
+ Swoje zespoły i konfigurację gry znajdziesz w folderze "Moje Dokumenty\Hedgewars". Twórz regularnie kopie zapasowe, ale nie edytuj tych plików własnoręcznie.
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.
Tips
-
+ Swoje zespoły i konfigurację gry znajdzie4sz w folderze ".hedgewars" w twoim katalogu domowym. Twórz regularnie kopie zapasowe ale nie edytuj tych plików własnoręcznie.
+
+
+ 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.
+ Tips
+ Możesz powiązać typy plików związane z Hedgewars (zapisy gier i dema) by móc je uruchamiać potem bezpośrednio z ulubionego menedżera plików bądź przeglądarki internetowej.
+
+
+ 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!
+ Tips
+ Chcesz zaoszczędzić liny? Odłącz ją będąc w powietrzu, a potem wypuść ją ponownie. Tak długo jak nie dotkniesz ziemi, będziesz używał pojedynczego naboju!
+
+
+ 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.
+ Tips
+ Swoje zespoły i konfigurację gry znajdziesz w folderze "Biblioteka/Wsparcie aplikacji/Hedgewars" w towim katalogu domowym. Twórz regularnie kopie zapasowe, ale nie edytuj tych plików własnoręcznie.
+
+
+ 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.
+ Tips
+ Swoje zespoły i konfigurację gry znajdziesz w folderze ".hedgewars" w twoim katalogu domowym. Twórz regularnie kopie zapasowe, ale nie edytuj tych plików własnoręcznie.
@@ -842,32 +892,33 @@
State:
-
+ Stan:
Rules:
-
+ Zasady:
Weapons:
-
+ Uzbrojenie:
Search:
-
+ Szukaj:
Clear
- Clear
+ Wyczyść
Warning
-
+ Uwaga
The game you are trying to join has started.
Do you still want to join the room?
-
+ Gra do której chcesz dołączyć już się rozpoczęła.
+Czy chcesz dołączyć do pokoju?
@@ -910,7 +961,7 @@
Enable random mines
- Dodaj miny
+ Dodaj miny
Gain 80% of the damage you do back in health
@@ -958,7 +1009,23 @@
AI respawns on death.
-
+ AI odradza się po śmierci.
+
+
+ Attacking does not end your turn.
+ Atak nie kończy twojej tury.
+
+
+ Weapons are reset to starting values each turn.
+ Liczba broni powraca do wartości początkowej po każdej turze.
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+ Każdy z Jeży ma własny zestaw broni. Nie są one dzielone pomiędzy członków drużyny.
+
+
+ All (living) hedgehogs are fully restored at the end of turn
+ Wszystkie żyjące jeże mają pełne życie od następnej tury
@@ -996,7 +1063,7 @@
Campaign Mode (...). IN DEVELOPMENT
-
+ Kampania (...). W PRODUKCJI
@@ -1129,51 +1196,51 @@
Community
-
+ Społeczność
Any
-
+ Dowolne
In lobby
-
+ W lobby
In progress
-
+ W toku
Default
- Domyślne
+ Domyślne
Pro mode
-
+ Pro mode
Shoppa
-
+ Shoppa
Basketball
-
+ Basketball
Minefield
-
+ Minefield
Barrel mayhem
-
+ Barrel mayhem
Tunnel hogs
-
+ Tunnel hogs
Crazy
-
+ Crazy
@@ -1389,6 +1456,26 @@
Quality
Jakość
+
+ % Health Crates
+ % apteczek
+
+
+ Health in Crates
+ Ilość HP w apteczce
+
+
+ Sudden Death Water Rise
+ Podwyższenie wody przy NŚ
+
+
+ Sudden Death Health Decrease
+ Tracone HP podczas NŚ
+
+
+ Bind schemes and weapons
+ Połącz ustawienia gry z uzbrojeniem
+
QLineEdit
@@ -1446,6 +1533,14 @@
Can not overwrite default weapon set '%1'!
Nie można nadpisać zestawu uzbrojenia '%1'!
+
+ All file associations have been set.
+ Wszystkie powiązania plików zostały utworzone
+
+
+ File association failed.
+ Powiązanie plików nie powiodło się.
+
QObject
@@ -1536,6 +1631,10 @@
Random Team
Losowa Drużyna
+
+ Associate file extensions
+ Powiąż typy plików z Hedgewars
+
QTableWidget
@@ -1646,7 +1745,7 @@
Add Mines
- Dodaj miny
+ Dodaj miny
Random Order
@@ -1674,7 +1773,23 @@
AI Survival Mode
-
+ Tryb przetrwania
+
+
+ Unlimited Attacks
+ Niekończący się atak
+
+
+ Reset Weapons
+ Resetuj Uzbrojenie
+
+
+ Per Hedgehog Ammo
+ Oddzielna amunicja
+
+
+ Reset Health
+ Odnów życie
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_pt_BR.ts
--- a/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Mon Nov 15 12:37:39 2010 +0100
@@ -40,6 +40,10 @@
Edit schemes
Editar esquemas
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -90,6 +94,16 @@
DefaultTeam
EquipePadrão
+
+ Hedgewars Demo File
+ File Types
+ Arquivo de Demo do Hedgewars
+
+
+ Hedgewars Save File
+ File Types
+ Arquivo do Jogo Hedgewars
+
HWGame
@@ -262,7 +276,7 @@
Fetch data
- Trazer dados
+ Trazer dados
Server message for latest version:
@@ -282,7 +296,7 @@
Set data
- Atribuir Dados
+ Atribuir Dados
@@ -324,54 +338,116 @@
+ <h1><img src=":/res/StatsD.png"> Details</h1>
+ <h1><img src=":/res/StatsD.png"> Detalhes</h1>
+
+
+ <br><h1><img src=":/res/StatsH.png"> Health graph</h1>
+ <br><h1><img src=":/res/StatsH.png"> Desenvolvimento</h1>
+
+
+ <h1><img src=":/res/StatsR.png"> Ranking</h1>
+ <h1><img src=":/res/StatsR.png"> Ranking</h1>
+
+
+ <p><img src=":/res/StatsBestShot.png"> The best shot award was won by <b>%1</b> with <b>%2</b> pts.</p>
+ <p><img src=":/res/StatsBestShot.png"> O prêmio de melhor tiro vai para <b>%1</b> com <b>%2</b> pts.</p>
+
+
+ <p><img src=":/res/StatsBestKiller.png"> The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</p>
+
+ <p><img src=":/res/StatsBestKiller.png"> O melhor matador é <b>%1</b> com <b>%2</b> mortes em um turno.</p>
+ <p><img src=":/res/StatsBestKiller.png"> Os melhores matadores são <b>%1</b> com <b>%2</b> mortes em um turno.</p>
+
+
+
+ <p><img src=":/res/StatsHedgehogsKilled.png"> A total of <b>%1</b> hedgehog(s) were killed during this round.</p>
+
+ <p><img src=":/res/StatsHedgehogsKilled.png"> Um total de <b>%1</b> ouriço foi morto neste round.</p>
+ <p><img src=":/res/StatsHedgehogsKilled.png"> Um total de <b>%1</b> ouriços foram mortos neste round.</p>
+
+
+
+ <p><h2>%1 %2. <font color="%5">%3</font> (%4 kill).</h2></p>
+ <p><h2>%1 %2. <font color="%5">%3</font> (%4 morte).</h2></p>
+
+
+ <p><h2>%1 %2. <font color="%5">%3</font> (%4 kills).</h2></p>
+ <p><h2>%1 %2. <font color="%5">%3</font> (%4 mortes).</h2></p>
+
+
+ <p><img src=":/res/StatsMostSelfDamage.png"> <b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.</p>
+ <p><img src=":/res/StatsMostSelfDamage.png"> <b>%1</b> pensou que era bom atirar na sua própria equipe totalizando <b>%2</b> pts.</p>
+
+
+ <p><img src=":/res/StatsSelfKilled.png"> <b>%1</b> killed <b>%2</b> of his own hedgehogs.</p>
+ <p><img src=":/res/StatsSelfKilled.png"> <b>%1</b> matou <b>%2</b> dos próprios ouriços.</p>
+
+
+ <p><img src=":/res/StatsSkipped.png"> <b>%1</b> was scared and skipped turn <b>%2</b> times.</p>
+ <p><img src=":/res/StatsSkipped.png"> <b>%1</b> estava assustado e passou o turno <b>%2</b> vezes.</p>
+
+
Details
-
+ Detalhes
Health graph
-
+ Desenvolvimento
Ranking
-
+ Ranking
The best shot award was won by <b>%1</b> with <b>%2</b> pts.
-
+ O prêmio de melhor atirador foi para <b>%1</b> com <b>%2</b> pts.
The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
-
-
-
+
+ O melhor matador é <b>%1</b> com <b>%2</b> morte em um turno.
+ O melhor matador é <b>%1</b> com <b>%2</b> mortes em um turno.
A total of <b>%1</b> hedgehog(s) were killed during this round.
-
-
-
+
+ <b>%1</b> ouriço foi morto neste round.
+ <b>%1</b> ouriços foram mortos neste round.
-
+
(%1 kill)
-
+
+ (%1 morte)
+ (%1 mortes)
+
(%1 kills)
-
-
-
+ (%1 mortes)
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+ <b>%1</b> pensou que era bom atirar na sua própria equipe totalizando <b>%2</b> ponto.
+ <b>%1</b> pensou que era bom atirar na sua própria equipe totalizando <b>%2</b> pontos.
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+ <b>%1</b> matou <b>%2</b> dos próprios ouriços.</p>.
+ <b>%1</b> matou <b>%2</b> dos próprios ouriços.</p>.
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+ <b>%1</b> estava assustado e passou o turno <b>%2</b> vez.</p>.
+ <b>%1</b> estava assustado e passou o turno <b>%2</b> vezes.</p>.
+
@@ -402,7 +478,7 @@
Want to save ropse? 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!
Tips
- Quer economizar corda? Dispare-a enquanto estiver no meio do ar. Se você não tocar o solo, você não estará usando as cordas do seu arsenal!
+ Quer economizar corda? Dispare-a enquanto estiver no meio do ar. Se você não tocar o solo, você não estará usando as cordas do seu arsenal!
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
@@ -437,7 +513,7 @@
From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.
Tips
- De tempos em tempos ocorrem torneios. Esses eventos podem ser acompanhados através do site http://www.hedgewars.org/ .
+ De tempos em tempos ocorrem torneios. Esses eventos podem ser acompanhados através do endereço http://www.hedgewars.org/.
Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!
@@ -447,7 +523,7 @@
Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.
Tips
- Hedgewars pode ser jogado em muitos sistemas operacionais, incluindo Windows, Mas OS X e Linux.
+ Hedgewars pode ser jogado em muitos sistemas operacionais, incluindo Windows, Mac OS X e Linux.
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.
@@ -492,7 +568,7 @@
The Windows version of Hedgewars supports Xfire. Make sure to add Hedgwars to its game list so your friends can see you playing.
Tips
- A versão Windows deste jogo permite o uso do Xfire. Certifique-se de adicionar Hedgewars para sua lista de jogospara ver quem está jogando.
+ A versão Windows deste jogo permite o uso do Xfire. Certifique-se de adicionar Hedgewars para sua lista de jogos para ver quem está jogando.
You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!
@@ -517,121 +593,142 @@
Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
Tips
-
+ Hedgewars é um jogo de Código Aberto e grátis que criamos em nosso tempo livre. Se alguém te vendeu este jogo, você deveria pedir reembolso!
Connect one or more gamepads before starting the game to be able to assign their controls to your teams.
Tips
-
+ Conecte um ou mais joysticks antes de começar o jogo para poder usá-los para controlar a sua equipe.
Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
Tips
-
+ Crie uma conta em %1 para evitar que outros usem seu apelido quando jogar no servidor oficial.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.
Tips
-
+ Se sua placa gráfica não tem aceleração gráfica OpenGl, tente atualizar os drivers relacionados.
There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.
Tips
-
+ Há 3 diferentes pulos. Aperte [pulo alto] 2 vezes para fazer um pulo alto para trás.
Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.
Tips
-
+ O que é o colchetes?
+ Medo de cair de um desfiladeiro? Mantenha pressionado [mira precisa] para virar à [esquerda] or [direita] sem se mover.
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.
Tips
-
+ Algumas armas necessitam estratégias especiais ou muito treino, então não desista de uma arma ou utilidade se você errou em seu uso.
Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.
Tips
-
+ Muitas armas não funcionarão após tocar na água. A Abelha e o bolo são excessões a regra.
The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.
Tips
-
+ O Velho Limburger causa uma pequena explosão. Porém, o vento carregará uma nuvem fedorenta que poderá envenenar muitos ouriços.
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
-
+ O Ataque com Piano é o mais violento ataque aéreo. Você perderá seu ouriço ao executá-lo, logo, há uma grande contra-partida.
The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power.
Tips
-
+ A Abelha pode ser dificil de usar. O raio da sua volta depende da velocidade dela, então evite usar força máxima.
Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.
Tips
-
+ Minas Adesivas são a arma perfeita para criar pequenas reações em cadeias, colocando ouriços inimigos em situações complicadas.... ou na água
The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.
Tips
-
+ O Martelo é mais efetivo quando usado em pontes ou vigas. Ouriços atingidos atravessarão o chão.
If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.
Tips
-
+ Se você está preso atrás de um ouriço inimigo, use o Martelo para se libertar sem sofrer danos.
The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.
Tips
-
+ A distância máxima que o Bolo anda depende do terreno por onde ele passa. Use [ataque] para detoná-lo antes.
The Flame Thrower is a weapon but it can be used for tunnel digging as well.
Tips
-
+ O Lança-Chamas é uma arma porém pode ser usado para cavar túneis também.
Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.
Tips
-
+ Use o Cocktail Molotov para evitar que ouriços atravessem terrenos como túneis ou plataformas temporariamente.
Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.
Tips
-
-
-
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Quer saber quem está por trás desse jogo? Clique no logo do Hedgewars no menu principal para ver os créditos.
+
+
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
-
+ Gostou de Hedgewars? Se torne um fã no %1 ou nos siga pelo %2!
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.
Tips
-
+ Desenhe suas próprias tumbas, chapéus, bandeiras ou até mapas e temas! Mas observe que você terá que compartilhá-los para jogar online.
Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!
Tips
-
+ Realmente quer usar um chapéu específico? Doe para o Hedgewars e receba um chapéu exclusivo!
Keep your video card drivers up to date to avoid issues playing the game.
Tips
-
+ Mantenha a sua placa de vídeo atualizada para evitar problemas ao jogar este jogo.
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.
Tips
-
+ Você pode encontrar os arquivos de configuração em "Meus Documentos\Hedgewars". Crie cópias ou leve os arquivos com você, mas não edite eles manualmente.
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.
Tips
+ Você pode encontrar os arquivos de configuração em ".hedgewars". Crie cópias ou leve os arquivos com você, mas não edite eles manualmente.
+
+
+ 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.
+ Tips
+ Você pode associar os arquivos relacionados ao Hedgewars (jogos salvos e gravações demo), podendo abrí-los diretamente do gerenciador de arquivos ou do navegador
+
+
+ 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!
+ Tips
+ Quer economizar corda? Solte-a quando estiver no meio do ar e então atire de novo. Se você não tocar o solo, você reutilizará a corda e não desperdiçará o seu arsenal!
+
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
@@ -657,7 +754,7 @@
PageNetGame
Control
- Control
+ Controle
@@ -823,32 +920,33 @@
State:
-
+ Estado:
Rules:
-
+ Regras:
Weapons:
-
+ Armas:
Search:
-
+ Procurar:
Clear
- Limpar
+ Limpar
Warning
-
+ Aviso
The game you are trying to join has started.
Do you still want to join the room?
-
+ O jogo no qual você está tentando entrar já começou.
+Você ainda quer entrar na sala?
@@ -863,7 +961,7 @@
Enable random mines
- Habilitar minas aleatórias
+ Habilitar minas aleatórias
Gain 80% of the damage you do back in health
@@ -941,6 +1039,22 @@
AI respawns on death.
AI Renasce ao morrer.
+
+ Attacking does not end your turn.
+ Ataque não termina o turno.
+
+
+ Weapons are reset to starting values each turn.
+ Armas são reiniciadas para o valor padrão ao início de cada turno.
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+ Cada ouriço tem sua própria munição. Ele não compartilha com a equipe.
+
+
+ All (living) hedgehogs are fully restored at the end of turn
+ Todos os ouriços vivos são completamente restaurados ao fim do turno
+
PageSelectWeapon
@@ -1110,51 +1224,51 @@
Community
-
+ Comunidade
Any
-
+ Qualquer
In lobby
-
+ Em espera
In progress
-
+ Em progresso
Default
- Padrão
+ Padrão
Pro mode
-
+ Modo Pro
Shoppa
-
+ Shoppa
Basketball
-
+ Basketball
Minefield
-
+ Campo Minado
Barrel mayhem
-
+ Inferno de Barris
Tunnel hogs
-
+ Túneis
Crazy
-
+ Crazy
@@ -1304,7 +1418,7 @@
Crate Drops
- Ítems caem
+ Caixas caem
Game scheme
@@ -1368,6 +1482,26 @@
Quality
Qualidade
+
+ % Health Crates
+ % Caixas de vida
+
+
+ Health in Crates
+ Vida por Caixa
+
+
+ Sudden Death Water Rise
+ Morte Subita: aumento do nível da água
+
+
+ Sudden Death Health Decrease
+ Morte Subita: redução de vida
+
+
+ Bind schemes and weapons
+
+
QLineEdit
@@ -1427,6 +1561,14 @@
Can not overwrite default weapon set '%1'!
Não pode sobre-escrever o esquema %1!
+
+ All file associations have been set.
+ Todos os arquivos foram associados.
+
+
+ File association failed.
+ Associação de arquivos falhou.
+
QObject
@@ -1517,6 +1659,10 @@
Random Team
Equipe Aleatória
+
+ Associate file extensions
+ Associar extensão de arquivos.
+
QTableWidget
@@ -1629,7 +1775,7 @@
Add Mines
- Adicionar Minas
+ Adicionar Minas
Random Order
@@ -1659,6 +1805,22 @@
AI Survival Mode
AI Modo de Sobrevivência
+
+ Unlimited Attacks
+ Ataques Ilimitados
+
+
+ Reset Weapons
+ Reiniciar Armas
+
+
+ Per Hedgehog Ammo
+ Munição por Ouriço
+
+
+ Reset Health
+ Restaurar Vida
+
binds
@@ -1818,7 +1980,7 @@
high jump
- salto alto
+ pulo alto
slot 10
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_pt_PT.ts
--- a/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Mon Nov 15 12:37:39 2010 +0100
@@ -40,6 +40,10 @@
Edit weapons
Editar armas
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -88,7 +92,17 @@
DefaultTeam
-
+ EquipaPorOmissão
+
+
+ Hedgewars Demo File
+ File Types
+ Ficheiro de demo Hedgewars
+
+
+ Hedgewars Save File
+ File Types
+ Ficheiro de jogo Hedgewars
@@ -333,53 +347,65 @@
Details
-
+ Detalhes
Health graph
-
+ Gráfico de vida
Ranking
-
+ Ranking
The best shot award was won by <b>%1</b> with <b>%2</b> pts.
-
+ O título de melhor tiro foi para <b>%1</b> com <b>%2</b> pontos de dano.
The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
-
-
-
+
+ O extreminador da ronda foi <b>%1</b> com <b>%2</b> morto num unico turno.
+ O extreminador da ronda foi <b>%1</b> com <b>%2</b> mortes num unico turno.
A total of <b>%1</b> hedgehog(s) were killed during this round.
-
-
-
+
+ Apenas <b>%1</b> ouriço perdeu a vida durante esta ronda.
+ Um total de <b>%1</b> ouriços perderam a vida durante esta ronda.
-
+
(%1 kill)
-
+
+ (%1 morto)
+ (%1 mortos)
+
(%1 kills)
-
-
-
+ (%1 mortos)
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+ <b>%1</b> axou que seria divertido atacar a sua própria equipa fazendo <b>%2</b> ponto de dano.
+ <b>%1</b> axou que seria divertido atacar a sua própria equipa fazendo <b>%2</b> pontos de dano.
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+ <b>%1</b> matou <b>%2</b> ouriço da sua própria equipa.
+ <b>%1</b> matou <b>%2</b> ouriços da sua própria equipa.
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+ <b>%1</b> estava tão intimidado que passou <b>%2</b> turno.
+ <b>%1</b> estava tão intimidado que passou <b>%2</b> turnos.
+
@@ -408,11 +434,6 @@
Se não tens a certeza do que fazer a seguir não desperdiçes munições, passa o turno. Mas não desperdices muito tempo, a Morte Súbita aproxima-se.
- 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!
- Tips
- Precisas de poupar as cordas? Solta a corda enquanto no ar e dispara-a novamente. Enquanto não tocares no solo podes usar a mesma corda novamente sem desperdiar outras!
-
-
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
Se não queres que outros usem o teu nome de utilizador preferido no servidor oficial, regista-o em http://www.hedgewars.org/.
@@ -463,11 +484,6 @@
Lembra-te que tens sempre a opção de poder jogar na tua rede local ou online. Não estás restrito ao modo de Jogo Local.
- Create an account on http://www.hedgewars.org/ to keep others from using your most favourite nickname while playing on the official server.
- Tips
- Cria uma conta em http://www.hedgewars.org/ para prevenir que outros usem o teu nome de utilizador favorito no servidor oficial.
-
-
While playing you should give yourself a short break at least once an hour.
Tips
Lembra-te de fazer pequenos intervalos durante sessões de jogo prolongadas.
@@ -513,133 +529,148 @@
Nenhum ouriço foi mal tratado durante a produção deste jogo.
- Connect one or more gamepads before launching the game to be able to assign their controls to your teams.
- Tips
- Conecta um ou mais comandos antes de lançar o jogo para que seja possível configura-los nas opções das tuas equipas.
-
-
Want to save ropse? 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!
Tips
-
+ Precisas de poupar as cordas? Solta a corda enquanto no ar e dispara-a novamente. Enquanto não tocares no solo podes usar a mesma corda novamente sem desperdiar outras!
Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
Tips
-
+ O Hedgewars é Open Source e Freeware desenvolvido durante o tempo livre. Se alguem te vendeu o jogo, tente obter o reembolso!
Connect one or more gamepads before starting the game to be able to assign their controls to your teams.
Tips
-
+ Conecta um ou mais comandos antes de lançar o jogo para que seja possível configura-los com as tuas equipas.
Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
Tips
-
+ Cria uma conta em http://www.hedgewars.org/ para prevenir que outros usem o teu nome de utilizador favorito no servidor oficial.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.
Tips
-
+ Se a tua placa gráfica se está a demonstrar incapaz de fornecer aceleração gráfica em OpenGL, experimenta actualizar os drivers da mesma.
There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.
Tips
-
+ Existem três diferentes tipos de salto. Pressiona [salto alto] duas vezes para fazer um salto muito alto para trás.
Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.
Tips
-
+ Com medo de cair de um penhasco? Deixa o [botão de precisão] pressionado e vira-te para a [direita] ou [esquerda] sem sair do sitio.
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.
Tips
-
+ Algumas armas requerem estratégias especiais ou imensa prática, por isso não desistas imediatamente dessa ferramenta em particular se falhares o alvo.
Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.
Tips
-
+ A maiora das armas deixa de funcionar se tocarem na água. A Abelha Teleguiada e o Bolo são excepções a esta regra.
The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.
Tips
-
+ O Limburger Venho causa apenas uma pequena explosão. No entanto a pequena nuvem malcheirosa, afectada pelo vento, pode envenenar vários ouriços de uma vez.
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
-
+ O Piano é o ataque aéreo que mais potencial dano causa. No entanto uma enorme desvantagem, é necessario sacrificar um ouriço para o utilizar.
The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power.
Tips
-
+ A Abelha Teleguiada é uma arma difícil de usar. O grau a que pode virar depende da sua velocidade, por isso tenta não a usar com o poder máximo.
Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.
Tips
-
+ As Minas Pegajosas são a arma ideal para com pequenas explosões em cadeia empurrar ouriços para situações terríveis... ou para a água.
The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.
Tips
-
+ O melhor local para usar o Martelo é em pontes ou vigas. Os ouriços atingidos nestes locais vão simplesmente furar pelo chão.
If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.
Tips
-
+ Se ficares preso atrás de um ouriço inimigo utiliza o Martelo para te libertares sem ser necessário levar dano de uma explosão.
The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.
Tips
-
+ A distancia máxima que o Bolo é capaz de alcançar depende do terreno que tenha de ultrapassar. Podes também utilizar [ataque] para o detonar a qualquer altura.
The Flame Thrower is a weapon but it can be used for tunnel digging as well.
Tips
-
+ Embora o Lança-chamas seja uma arma, pode também ser usado para escavar túneis.
Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.
Tips
-
+ Utiliza o Coquetail Molotov para temporariamente impedir outros ouriços de passar por áreas no terreno como túneis e plataformas.
Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.
Tips
-
-
-
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Gostavas de saber quem está por traz deste jogo? Clica no logótipo do Hedgewars no menu inicial para aceder aos créditos.
+
+
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
-
+ Gostas do Hedgewars? Torna-te fã no %1 ou segue-nos pelo %!
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.
Tips
-
+ Está à vontade para desenhar as tuas próprias sepulturas, chapéus, bandeiras ou mesmo mapas e temas! Tem em nota que vai ser necessário partilha-los algures para que os consigas usar online.
Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!
Tips
-
+ Gostavas poder usar um chapéu em particular que ainda não existe? Faz uma pequena doação para este projecto e recebe um chapéu exclusivo à tua escolha!
Keep your video card drivers up to date to avoid issues playing the game.
Tips
-
+ Mantém os drivers da placa gráfica actualizados de forma a evitar problemas com o jogo.
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.
Tips
-
+ Podes encontrar os ficheiros de configuração do Hedgewars em "Documentos\Hedgewars". Cria cópias de segurança ou leva os ficheiros contigo, apenas não os edites.
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.
Tips
+ Podes encontrar os ficheiros de configuração do Hedgewars na pasta "Hedgewars" dentro da tua "Pasta Pessoal". Cria cópias de segurança ou leva os ficheiros contigo, apenas não os edites.
+
+
+ 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.
+ Tips
+ É possivel associar os ficheiros relacionados com o Hedgewars (partidas e demonstrações) directamente com o jogo para que seja possivel lançalos directamente do teu explorador de ficheiros ou internet favorito.
+
+
+ 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!
+ Tips
+ Gostavas de poupar algumas cordas? Solta a corda enquanto no ar e dispara-a novamente. Desde que não toques no solo podes reutilizar a usar a mesma corda quantas vezes quiseres!
+
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
@@ -831,32 +862,33 @@
State:
-
+ Estado:
Rules:
-
+ Regras
Weapons:
-
+ Armas:
Search:
-
+ Pesquisa:
Clear
- Clear
+ Limpar
Warning
-
+ Atenção
The game you are trying to join has started.
Do you still want to join the room?
-
+ O jogo a que te estas a tentar juntar já começou.
+Desejas juntar-te ao jogo de qualquer maneira?
@@ -891,7 +923,7 @@
Enable random mines
- Adiciona minas aleatoriamente
+ Adiciona minas aleatoriamente
Gain 80% of the damage you do back in health
@@ -947,7 +979,23 @@
AI respawns on death.
-
+ O computador ressuscita ao morrer.
+
+
+ All (living) hedgehogs are fully restored at the end of turn
+ Todos os ouriços (vivos) são completamente restaurados no final do turn
+
+
+ Attacking does not end your turn.
+ Atacar não faz o turno terminar.
+
+
+ Weapons are reset to starting values each turn.
+ O armamento é redefinido para os valores iniciais todos os turnos.
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+ Cada ouriço tem as suas próprias armas. Não são partilhadas com a equipa.
@@ -973,7 +1021,7 @@
Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT
- Modo de Treino (pratica as tuas capacidades numa variedade de missões de treino)
+ Modo de Treino (pratica as tuas capacidades numa variedade de missões de treino). EM DESENVOLVIMENTO
Demos (Watch recorded demos)
@@ -981,11 +1029,11 @@
Load (Load a previously saved game)
- Carregar (carregar um jogo salvo previamente)
+ Carregar (carrega um jogo salvo previamente)
Campaign Mode (...). IN DEVELOPMENT
-
+ Modo Campanha (...) EM DESENVOLVIMENTO
@@ -1118,51 +1166,23 @@
Community
-
+ Comunidade
Any
-
+ Qualquer
In lobby
-
+ No lobby
In progress
-
+ Em progresso
Default
- Predefinido
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ Predefinido
@@ -1248,7 +1268,7 @@
Translations:
- Traduções:
+ Tradutores:
Special thanks:
@@ -1348,7 +1368,7 @@
Restart game to apply
- Reiniciar o jogo para aplicar as definições
+ Reinicie o jogo para aplicar as alterações
Explosives
@@ -1364,6 +1384,26 @@
Quality
+ Qualidade
+
+
+ % Health Crates
+ % de Caixas de Vida
+
+
+ Health in Crates
+ Vida por Caixa
+
+
+ Sudden Death Water Rise
+ Súbida da água durante Morte Súbita
+
+
+ Sudden Death Health Decrease
+ Vida perdida durante Morte Súbita
+
+
+ Bind schemes and weapons
@@ -1423,6 +1463,14 @@
Can not overwrite default weapon set '%1'!
Não é possivel sobrescrever o esquema de armas por omissão '%1'!
+
+ All file associations have been set.
+ Os ficheiros foram associados com sucesso.
+
+
+ File association failed.
+ Não foi possivel associar os ficheiros.
+
QObject
@@ -1483,7 +1531,7 @@
Go!
- Ir!
+ Começar!
Play demo
@@ -1513,6 +1561,10 @@
Random Team
Equipa aleatória
+
+ Associate file extensions
+ Associar com as extensões dos ficheiros
+
QTableWidget
@@ -1599,19 +1651,19 @@
Divide Teams
- Separar equipas
+ Separar Equipas
Solid Land
- Terreno sólido
+ Terreno Sólido
Add Border
- Adicionar borda
+ Adicionar Borda
Low Gravity
- Baixa gravidade
+ Baixa Gravidade
Laser Sight
@@ -1619,11 +1671,11 @@
Invulnerable
- Invulnerável
+ Invulnerabilidade
Add Mines
- Adicionar minas
+ Adicionar minas
Random Order
@@ -1639,7 +1691,7 @@
Clan Shares Ammo
- Clãs partilham armamento
+ Clãs Partilham Armamento
Disable Girders
@@ -1651,7 +1703,23 @@
AI Survival Mode
-
+ Modo de Sobrevivência
+
+
+ Reset Health
+ Restaurar a Vida
+
+
+ Unlimited Attacks
+ Ataques Ilimitados
+
+
+ Reset Weapons
+ Restaurar o Armamento
+
+
+ Per Hedgehog Ammo
+ Armamento Por Ouriço
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_ru.ts
--- a/share/hedgewars/Data/Locale/hedgewars_ru.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_ru.ts Mon Nov 15 12:37:39 2010 +0100
@@ -41,6 +41,10 @@
Edit schemes
Редактировать схемы
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+ При включении этой опции выбор настроек игры автоматически выберет схему оружия (и наоборот)
+
HWChatWidget
@@ -89,7 +93,17 @@
DefaultTeam
-
+ Команда по умолчанию
+
+
+ Hedgewars Demo File
+ File Types
+ Файл записи игры hedgewars
+
+
+ Hedgewars Save File
+ File Types
+ Файл сохранения игры hedgewars
@@ -242,7 +256,10 @@
registered on Hedgewars.org
Please provide your password below
or pick another nickname in game config:
-
+ Ваше имя пользователя %1
+зарегистрировано на сайте hedgewars.org
+Пожалуйста, укажите ваш пароль в поле ввода внизу
+или выберите иное имя пользователя в настройках игры:
@@ -333,55 +350,67 @@
Details
-
+ Подробности
Health graph
-
+ График уровня здоровья
Ranking
-
+ Рейтинг
The best shot award was won by <b>%1</b> with <b>%2</b> pts.
-
+ Приз за лучший выстрел получает <b>%1</b> с <b>%2</b> пунктами урона.
The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
-
-
-
-
+
+ Лучший убийца <b>%1</b> с <b>%2</b> убийством за ход.
+ Лучший убийца <b>%1</b> с <b>%2</b> убийствами за ход.
+ Лучший убийца <b>%1</b> с <b>%2</b> убийствами за ход.
A total of <b>%1</b> hedgehog(s) were killed during this round.
-
-
-
-
+
+ Всего <b>%1</b> ёж был убит в течение игры.
+ Всего <b>%1</b> ежа были убиты в течение игры.
+ Всего <b>%1</b> ежей были убиты в течение игры.
-
+
(%1 kill)
-
-
-
- (%1 kills)
-
-
-
+
+ (%1 убийство)
+ (%1 убийства)
+ (%1 убийств)
+
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+ <b>%1</b> посчитал нужным подстрелить друзей на <b>%2</b> пункт урона.
+ <b>%1</b> посчитал нужным подстрелить друзей на <b>%2</b> пункта урона.
+ <b>%1</b> посчитал нужным подстрелить друзей на <b>%2</b> пунктов урона.
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+ <b>%1</b> убил <b>%2</b> союзника.
+ <b>%1</b> убил <b>%2</b> союзников.
+ <b>%1</b> убил <b>%2</b> союзников.
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+ <b>%1</b> испугался и пропустил <b>%2</b> ход.
+ <b>%1</b> испугался и пропустил <b>%2</b> хода.
+ <b>%1</b> испугался и пропустил <b>%2</b> ходов.
+
@@ -410,11 +439,6 @@
- Want to save ropse? 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!
- Tips
-
-
-
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
@@ -600,7 +624,7 @@
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
@@ -625,7 +649,22 @@
- 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.
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
Tips
@@ -694,7 +733,7 @@
You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.
-
+ Невозможно редактировать команды со страницы выбора команд. Вернитесь в главное меню для добавления, редактирования или удаления команд.
@@ -820,39 +859,40 @@
State:
-
+ Состояние:
Rules:
-
+ Правила:
Weapons:
-
+ Оружие:
Search:
-
+ Поиск:
Clear
- Очистить
+ Очистить
Warning
-
+ Предупреждение
The game you are trying to join has started.
Do you still want to join the room?
-
+ Игра, к которой вы хотите присоединиться, уже началась
+Вы всё равно хотите зайти в комнату?
PageScheme
Enable random mines
- Включить мины
+ Включить мины
Gain 80% of the damage you do back in health
@@ -912,7 +952,7 @@
Order of play is random instead of in room order.
- Порядок ходов случаен, а не является порядком команд в списке
+ Порядок ходов случаен, а не является порядком команд в списке.
Play with a King. If he dies, your side dies.
@@ -932,11 +972,27 @@
Disable land objects when generating random maps.
- Отключить добавляемые объекты на генерируемых картах.
+ Отключить добавляемые объекты на генерируемых картах.
AI respawns on death.
-
+ Боты воскресают после смерти.
+
+
+ All (living) hedgehogs are fully restored at the end of turn
+ Все (живые) ежи полностью поправляются в конце хода
+
+
+ Attacking does not end your turn.
+ Атака не заканчивает ход.
+
+
+ Weapons are reset to starting values each turn.
+ Набор оружия восстанавливается на каждом ходу.
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+ У каждого ежа свой набор оружия, не являющийся общим для команды.
@@ -974,7 +1030,7 @@
Campaign Mode (...). IN DEVELOPMENT
-
+ Режим прохождения кампании. В РАЗРАБОТКЕ
@@ -1107,51 +1163,23 @@
Community
-
+ Сообщество
Any
-
+ Любой
In lobby
-
+ Подготовка
In progress
-
+ В игре
Default
- По умолчанию
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ По умолчанию
@@ -1351,7 +1379,7 @@
Tip:
-
+ Подсказка:
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!
@@ -1359,7 +1387,27 @@
Quality
-
+ Качество
+
+
+ % Health Crates
+ % аптечек
+
+
+ Health in Crates
+ Здоровье в аптечках
+
+
+ Sudden Death Water Rise
+ Скорость поднятия воды
+
+
+ Sudden Death Health Decrease
+ Скорость уменьшения здоровья
+
+
+ Bind schemes and weapons
+ Объединить настройки игры и оружия
@@ -1416,7 +1464,15 @@
Can not overwrite default weapon set '%1'!
-
+ Не могу переписать встроенный набор оружия '%1'!
+
+
+ All file associations have been set.
+ Проведено сопоставление расширений файлов.
+
+
+ File association failed.
+ Сопоставление не удалось.
@@ -1508,6 +1564,10 @@
Random Team
Случайная команда
+
+ Associate file extensions
+ Сопоставить расширения файлов
+
QTableWidget
@@ -1618,7 +1678,7 @@
Add Mines
- Добавить мины
+ Добавить мины
Random Order
@@ -1642,11 +1702,27 @@
Disable Land Objects
-
+ Отключить дополнительные объекты
AI Survival Mode
-
+ Режим бессмертия ботов
+
+
+ Reset Health
+ Сброс уровня здоровья
+
+
+ Unlimited Attacks
+ Бесконечные атаки
+
+
+ Reset Weapons
+ Сброс оружия
+
+
+ Per Hedgehog Ammo
+ Индивидуальный набор оружия
@@ -1811,7 +1887,7 @@
slot 10
- слот 10
+ слот 10
@@ -2096,23 +2172,23 @@
Insert
-
+ Insert
Home
-
+ Home
End
-
+ End
Page up
-
+ Page up
Page down
-
+ Page down
Num lock
@@ -2136,19 +2212,19 @@
A button
-
+ Кнопка A
B button
-
+ Кнопка B
X button
-
+ Кнопка X
Y button
-
+ Кнопка Y
LB button
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_sk.ts
--- a/share/hedgewars/Data/Locale/hedgewars_sk.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_sk.ts Mon Nov 15 12:37:39 2010 +0100
@@ -41,6 +41,10 @@
Edit schemes
Upraviť schémy
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+ Ak je táto voľba vybraná, zvolením hernej schémy budú automaticky vybrané aj zbrane (a naopak)
+
HWChatWidget
@@ -89,7 +93,17 @@
DefaultTeam
-
+ VýchodzíTím
+
+
+ Hedgewars Demo File
+ File Types
+ Demo súbor Hedgewars
+
+
+ Hedgewars Save File
+ File Types
+ Súbor s uloženou hrou Hedgewars
@@ -189,7 +203,7 @@
HWNewNet
The host was not found. Please check the host name and port settings.
- Stanica nebola nájdená. Prosím, skontrolujte názov stanice a nastavenia portu.
+ Hostiteľ nebol nájdený. Prosím, skontrolujte názov hostiteľa a nastavenia portu.
Connection refused
@@ -242,7 +256,12 @@
registered on Hedgewars.org
Please provide your password below
or pick another nickname in game config:
-
+ Prezývka %1, ktorú ste
+si vybrali je registrovaná na
+Hedgewars.org.
+Prosím, napíšte heslo do poľa
+nižšie alebo si zvoľte inú prezývku
+v nastaveniach hry:
@@ -268,27 +287,27 @@
Fetch data
-
+ Stiahnuť dáta
Server message for latest version:
-
+ Správa serveru pre najnovšiu verziu:
Server message for previous versions:
-
+ Správa serveru pre prechádzajúce verzie:
Latest version protocol number:
-
+ Najnovšia verzia protokolu:
MOTD preview:
-
+ Náhľad správy dňa (MOTD):
Set data
-
+ Nastaviť dáta
@@ -333,55 +352,71 @@
Details
-
+ Podrobnosti
Health graph
-
+ Vývoj zdravia
Ranking
-
+ Rebríček
The best shot award was won by <b>%1</b> with <b>%2</b> pts.
-
+ Ocenenie za najlepší zásah vyhral(a) <b>%1</b> so ziskom <b>%2</b> bodov.
The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
-
-
-
-
+
+ Najlepším zabijákom je <b>%1</b> s <b>jedným</b> zabitím počas ťahu.
+ Najlepším zabijákom je <b>%1</b> s <b>%2</b> zabitiami počas ťahu.
+ Najlepším zabijákom je <b>%1</b> s <b>%2</b> zabitiami počas ťahu.
A total of <b>%1</b> hedgehog(s) were killed during this round.
-
-
-
-
+
+ Celkovo bol v tomto kole zabitý <b>%1</b> ježko.
+ Celkovo boli v tomto kole zabití <b>%1</b> ježkovia.
+ Celkovo bol v tomto kole zabitých <b>%1</b> ježkov.
-
+
(%1 kill)
-
+
+ (%1 zabitie)
+ (%1 zabitia)
+ (%1 zabití)
+
(%1 kills)
-
-
-
+ (%1 zabití)
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+ <b>%1</b> sa nazdával, že je vhodné strieľať po svojich a získal tak <b>%2</b> bod.
+ <b>%1</b> sa nazdával, že je vhodné strieľať po svojich a získal tak <b>%2</b> body.
+ <b>%1</b> sa nazdával, že je vhodné strieľať po svojich a získal tak <b>%2</b> bodov.
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+ <b>%1</b> zabil <b>%2</b> svojho druha.
+ <b>%1</b> zabil <b>%2</b> svojich druhov.
+ <b>%1</b> zabil <b>%2</b> svojich druhov.
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+ <b>%1</b> sa zľakol a preskočil ťah <b>%2</b>krát.
+ <b>%1</b> sa zľakol a preskočil ťah <b>%2</b>krát.
+ <b>%1</b> sa zľakol a preskočil ťah <b>%2</b>krát.
+
@@ -397,237 +432,262 @@
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.
Tips
-
+ Ak chcete hrať s priateľom ako team, jednoducho si zvoľte tú istú farbu. I naďalej budete ovládať svojich vlastných ježkov, ale víťazstvá či prehry budú spoločné.
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.
Tips
-
+ Niektoré zbrane môžu spôsobovať málo škody, ale dokážu byť oveľa účinnejšie v tej správnej situácii. Skúste použiť Desert Eagle na zostrelenie viacerých ježkov do vody.
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!
Tips
-
+ Ak neviete, čo robiť a nechcete mrhať muníciou, preskočte ťah. Ale nerobte tak príliš často, pretože príde Náhla smrť!
Want to save ropse? 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!
Tips
-
+ Chcete ušetriť lano? Kým ste vo vzduchu, uvoľnite ho a opäť vystreľte. Kým sa nedotknete zeme, môžete to isté lano znovu použiť bez toho, aby sa vám míňali jeho zásoby!
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
-
+ Ak nechcete, aby niekto iný používal vašu prezývku na oficiálnom serveri, registrujte si účet na http://www.hedgewars.org/.
You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.
Tips
-
+ Nudí vás štandardná hra? Vyskúšajte si jednu z misii - ponúkajú iný herný zážitok v závislosti na tom, akú si vyberiete.
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.
Tips
-
+ Vo východzom nastavení sa posledná hra automaticky ukladá ako demo. Vyberte 'Miestna hra' a kliknite na tlačidlo 'Demá' v pravom dolnom rohu, ak si chcete demo uložiť alebo prehrať.
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!
Tips
-
+ Hedgewars je Open Source a Freeware, ktorý vytvárame vo voľnom čase. Ak máte problém, spýtajte sa na fóre, ale nečakajte podporu 24 hodín v týždni!
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!
Tips
-
+ Hedgewars je Open Source a Freeware, ktorý vytvárame vo voľnom čase. Ak chcete pomôcť, môžete nám zaslať malú finančnú výpomoc alebo prispieť vlastnou prácou!
Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!
Tips
-
+ Hedgewars je Open Source a Freeware, ktorý vytvárame vo voľnom čase. Podeľte sa oň so svojou rodinou a priateľmi!
From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.
Tips
-
+ Z času na čas bývajú usporiadavané oficiálne turnaje. Najbližšie akcie sú vždy uverejnené na http://www.hedgewars.org/ pár dní dopredu.
Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!
Tips
-
+ Hedgewars je dostupný v mnohých jazykoch. Ak preklad do vašej reči chýba alebo nie je aktuálny, prosím, kontaktujte nás!
Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.
Tips
-
+ Hedgewars beží na množstve rozličných operačných systémov vrátane Microsoft Windows, Mac OS X a Linuxu.
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.
Tips
-
+ Nezabudnite, že si vždy môžete vytvoriť vlastnú lokálnu alebo sieťovú/online hru. Nie ste obmedzený len na voľbu 'Jednoduchá hra'.
While playing you should give yourself a short break at least once an hour.
Tips
-
+ Mali by ste si dopriať krátky odpočinok po každej hodine hry.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.
Tips
-
+ Ak vaša grafická karta nie je schopná poskytnúť hardvérovo akcelerované OpenGL, skúste povoliť režim nízkej kvality, aby ste dosiahli požadovaný výkon.
We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!
Tips
-
+ Sme otvorení novým nápadom a konštruktívnej kritike. Ak sa vám niečo nepáči alebo máte skvelý nápad, dajte nám vedieť!
Especially while playing online be polite and always remember there might be some minors playing with or against you as well!
Tips
-
+ Obzvlášť pri hre online buďte slušný a pamätajte, že s vami alebo proti vám môžu hrať tiež neplnoletí!
Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!
Tips
-
+ Špeciálne herné režimy ako 'Vampírizmus' alebo 'Karma' vám umožnia vyvinúť úplne novú taktiku. Vyskúšajte ich vo vlastnej hre!
The Windows version of Hedgewars supports Xfire. Make sure to add Hedgwars to its game list so your friends can see you playing.
Tips
-
+ Verzia Hedgewars pre Windows podporuje Xfire. Ubezpečte sa, že ste pridali Hedgewars do zoznamu hier tak, aby vaši priatelia videli, že hráte.
You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!
Tips
-
+ Nikdy by ste nemali inštalovať Hedgewars na cudzí počítač (v škole, na univerzite, v práci, atď). Prosím, radšej požiadajte zodpovednú osobu!
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.
Tips
-
+ Hedgewars môže byť výborná hra, ak máte krátku chvíľku počas prestávky. Iba sa uistite, že nepoužijete príliš veľa ježkov alebo príliš veľkú mapu. Rovnako môže pomocť zníženie času a zdravia.
No hedgehogs were harmed in making this game.
Tips
-
+ Počas tvorby tejto hry nebolo ublížené žiadnemu ježkovi.
Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
Tips
-
+ Hedgewars je Open Source a Freeware, ktorý vytvárame vo voľnom čase. Ak vám niekto túto hru predal, skúste žiadať o refundáciu!
Connect one or more gamepads before starting the game to be able to assign their controls to your teams.
Tips
-
+ Ak chcete pre hru použiť jeden alebo viacero gamepadov, pripojte ich pred spustením hry.
Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
Tips
-
+ Vytvorte si účet na %1, aby ste tak zabránili ostatným používať vašu obľúbenú prezývku počas hrania na oficiálnom serveri.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.
Tips
-
+ Ak vaša grafická karta nie je schopná poskytnúť hardvérovo akcelerované OpenGL, skúste aktualizovať príslušné ovládače.
There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.
Tips
-
+ Dostupné sú tri rôzne výskoky. Dvakrát stlačte [vysoký skok] pre veľmi vysoký skok vzad.
Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.
Tips
-
+ Bojíte sa pádu z útesu? Podržte [presné mierenie] a stlačte [doľava] alebo [doprava] pre otočenie na mieste.
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.
Tips
-
+ Niektoré zbrane vyžaduju osobitnú stratégiu alebo len veľa tréningu, takže to s vybranou zbraňou nevzdávajte, ak sa vám nepodarí trafiť nepriateľa.
Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.
Tips
-
+ Väčšina zbraní prestane fungovať pri kontakte s vodou. Navádzané včela a Torta sú výnimkami z tohto pravidla.
The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.
Tips
-
+ Starý cheeseburger spôsobí len malú explóziu. Obláčik smradu, ktorý je ovplyvňovaný vetrom, však dokáže otráviť množstvo ježkov.
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
-
+ Klavírový útok je najzničujúcejší vzdušný útok. Pri jeho použití prídete o ježka, čo je jeho veľké mínus.
The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power.
Tips
-
+ Navádzaná včela je trošku zložitejšia na použitie. Jej polomer otočenia závisí na jej rýchlosti, takže ju radšej nepoužívajte pri plnej sile.
Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.
Tips
-
+ Lepkavé míny sú perfektným nástrojom na vytvorenie malých reťazových reakcii, vďaka ktorým postavíte ježkov do krajných situácii ... alebo vody.
The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.
Tips
-
+ Kladivo je najefektívnejšie pri použití na mostoch alebo trámoch. Zasiahnutí ježkovia prerazia zem.
If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.
Tips
-
+ Ak ste zaseknutý za nepriateľským ježkom, použite kladivo, aby ste sa oslobodili bez toho, aby vám ublížila explózia.
The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.
Tips
-
+ Maximálna prejdená vzdialenosť torty zavisí na zemi, ktorou musí prejsť. Použitie [útok], ak chcete spustiť detonáciu skôr.
The Flame Thrower is a weapon but it can be used for tunnel digging as well.
Tips
-
+ Plameňomet je zbraň, no rovnako môže byť použitý na kopanie tunelov.
Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.
Tips
-
+ Použite spaľujúci granát na dočasné zabránenie ježkom prejsť terénom ako sú tunely alebo plošiny.
Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.
Tips
-
+ Chcete vedieť, kto stojí za hrou? Kliknite na logo Hedgewars v hlavnom menu pre zobrazenie zásluh.
Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
Tips
-
+ Pačia sa vám Hedgewars? Staňte sa fanúšikom na %1 alebo sa pripojte k našej skupine na %2. Môžte nás tiež nasledovať na %3!
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.
Tips
-
+ Ak máte chuť, môžte si nakresliť vlastné hrobčeky, klobúky, vlajky alebo dokonca mapy a témy! Pamätajte však, že ak ich budete chcieť použiť v hre online, budete ich musieť zdieľať s ostatnými.
Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!
Tips
-
+ Chcete nosiť špecifický klobúk? Prispejte nám a ako odmenu získate exkluzívny klobúk podľa vášho výberu!
Keep your video card drivers up to date to avoid issues playing the game.
Tips
-
+ Aby ste sa vyhli problémom pri hre, udržujte ovládače vašej grafickej karty vždy aktuálne.
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.
Tips
-
+ Konfiguračné súbory Hedgewars nájdete v "Moje Dokumenty\Hedgewars". Vytvárajte si zálohy alebo prenášajte si tieto súbory medzi počítačmi, ale needitujte ich ručne.
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.
Tips
-
+ Konfiguračné súbory Hedgewars nájdete v "Hedgewars" vo vašom domovskom adresári. Vytvárajte si zálohy alebo prenášajte si tieto súbory medzi počítačmi, ale needitujte ich ručne.
+
+
+ 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!
+ Tips
+ Chcete ušetriť lano? Kým ste vo vzduchu, uvoľnite ho a opäť vystreľte. Kým sa nedotknete zeme, môžete to isté lano znovu použiť bez toho, aby sa vám míňali jeho zásoby!
+
+
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
+ Tips
+ Páčia sa vám Hedgewars? Staňte sa fanúšikom na %1 alebo sa pripojte k našej skupine na %2. Môžte nás tiež nasledovať na %3!
+
+
+ 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.
+ Tips
+ Môžte priradiť súbory patriace Hedgewars (uložené hry a nahrávky záznamov) ku hre, čím sa vám budú otvárať priamo z vášho obľubeného prehliadača súborov alebo internetu.
+
+
+ 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.
+ Tips
+ Konfiguračné súbory Hedgewars nájdete v "Library/Application Support/Hedgewars" vo vašom domovskom adresári. Vytvárajte si zálohy alebo prenášajte si tieto súbory medzi počítačmi, ale needitujte ich ručne.
+
+
+ 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.
+ Tips
+ Konfiguračné súbory Hedgewars nájdete v ".hedgewars" vo vašom domovskom adresári. Vytvárajte si zálohy alebo prenášajte si tieto súbory medzi počítačmi, ale needitujte ich ručne.
@@ -694,7 +754,7 @@
You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.
-
+ Z výberu tímov nemôžete upravovať teamytímy. Vráťte sa do hlavného menu, odkiaľ môžete pridávať, upravovať alebo mazať tímy.
@@ -820,39 +880,40 @@
State:
-
+ Stav:
Rules:
-
+ Pravidlá:
Weapons:
-
+ Zbrane:
Search:
-
+ Hľadať:
Clear
- Clear
+ Vyčistiť
Warning
-
+ Varovanie
The game you are trying to join has started.
Do you still want to join the room?
-
+ Hra, ku ktorej sa snažíte pripojiť, už začala.
+Aj napriek tomu chcete vojsť do miestnosti?
PageScheme
Enable random mines
- Povoliť náhodne rozmiestnené míny
+ Povoliť náhodne rozmiestnené míny
Gain 80% of the damage you do back in health
@@ -932,11 +993,27 @@
Disable land objects when generating random maps.
-
+ Pri generovaní náhodnej mapy vypnúť objekty v krajine.
AI respawns on death.
-
+ Počítač po smrti ožije.
+
+
+ All (living) hedgehogs are fully restored at the end of turn
+ Všetci (žijúci) ježkovia sú plne obnovení na konci ťahu
+
+
+ Attacking does not end your turn.
+ Útok nespôsobí ukončenie vášho ťahu.
+
+
+ Weapons are reset to starting values each turn.
+ Zbrane sú na konci každého ťahu nastavené na hodnoty na začiatku.
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+ Každý ježko má vlastnú výzbroj. Nie je zdieľaná so zvyškom teamu.
@@ -974,7 +1051,7 @@
Campaign Mode (...). IN DEVELOPMENT
-
+ Režim kampane (...) VO VÝVOJI
@@ -1107,51 +1184,51 @@
Community
-
+ Komunita
Any
-
+ Ľubovoľný
In lobby
-
+ V lobby
In progress
-
+ Prebieha
Default
- Východzie
+ Východzie
Pro mode
-
+ Režim profesionálov
Shoppa
-
+ Nakupovanie
Basketball
-
+ Basketbal
Minefield
-
+ Mínové pole
Barrel mayhem
-
+ Vzbura sudov
Tunnel hogs
-
+ Tunelujúci ježkovia
Crazy
-
+ Šialené
@@ -1241,7 +1318,7 @@
Host:
- Stanica:
+ Hostiteľ:
Port:
@@ -1351,15 +1428,36 @@
Tip:
-
+ Tip:
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!
-
+ Toto zostavenie je 'stále-vo-vývoji' a nemusí byť kompatibilné s inými verziami hry.
+Niektoré vlastnosti nemusia fungovať alebo nemusia byť dokončené. Používajte na vlastné riziko!
Quality
-
+ Kvalita
+
+
+ Bind schemes and weapons
+ Prepojiť schémy a zbrane
+
+
+ Sudden Death Water Rise
+ Stúpanie vody pri rýchlej smrti
+
+
+ Sudden Death Health Decrease
+ Klesanie vody pri rýchlej smrti
+
+
+ % Health Crates
+ % lekárničiek
+
+
+ Health in Crates
+ Zdravie v bedniach
@@ -1416,7 +1514,15 @@
Can not overwrite default weapon set '%1'!
-
+ Nie je možné prepísať východziu sadu zbraní '%1'!
+
+
+ All file associations have been set.
+ Všetky súborové asociácie boli nastavené.
+
+
+ File association failed.
+ Nastavenie súborových asociácii zlyhalo.
@@ -1508,6 +1614,10 @@
Random Team
Náhodný tím
+
+ Associate file extensions
+ Asociovať prípony súborov.
+
QTableWidget
@@ -1618,7 +1728,7 @@
Add Mines
- Pridať míny
+ Pridať míny
Random Order
@@ -1642,11 +1752,27 @@
Disable Land Objects
-
+ Vypnúť objekty v krajine
AI Survival Mode
-
+ Režim prežitia umelej inteligencie
+
+
+ Reset Health
+ Resetovať zdravie
+
+
+ Unlimited Attacks
+ Neobmedzené útoky
+
+
+ Reset Weapons
+ Resetovať zbrane
+
+
+ Per Hedgehog Ammo
+ Individuálne zbrane
@@ -1811,7 +1937,7 @@
slot 10
- slot 10
+ slot 10
@@ -2188,35 +2314,35 @@
Left stick (Right)
-
+ Ľavý joystick (Doprava)
Left stick (Left)
-
+ Ľavý joystick (Doľava)
Left stick (Down)
-
+ Ľavý joystick (Dole)
Left stick (Up)
-
+ Ľavý joystick (Hore)
Right stick (Down)
-
+ Pravý joystick (Dole)
Right stick (Up)
-
+ Pravý joystick (Hore)
Right stick (Right)
-
+ Pravý joystick (Doprava)
Right stick (Left)
-
+ Pravý joystick (Doľava)
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_sv.ts
--- a/share/hedgewars/Data/Locale/hedgewars_sv.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_sv.ts Mon Nov 15 12:37:39 2010 +0100
@@ -26,7 +26,7 @@
GameCFGWidget
Edit weapons
- Redigera vapen
+ Redigera vapenscheman
Error
@@ -38,7 +38,11 @@
Edit schemes
- Redigera scheman
+ Redigera spelscheman
+
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
@@ -88,7 +92,17 @@
DefaultTeam
-
+ Standardlag
+
+
+ Hedgewars Demo File
+ File Types
+ Demo-fil för Hedgewars
+
+
+ Hedgewars Save File
+ File Types
+ Sparfil för Hedgewars
@@ -241,7 +255,10 @@
registered on Hedgewars.org
Please provide your password below
or pick another nickname in game config:
-
+ Ditt smeknamn (%1) är
+registrerat på Hedgewars.org
+Var god ange ditt lösenord eller välj
+ett annat smeknamn i spelinställningarna:
@@ -283,7 +300,7 @@
MOTD preview:
- MOTD-förhandsvisning:
+ MOTD-förhandsvisning:
Set data
@@ -330,53 +347,65 @@
Details
-
+ Detaljer
Health graph
-
+ Livgraf
Ranking
-
+ Rankning
The best shot award was won by <b>%1</b> with <b>%2</b> pts.
-
+ Bästa skott-priset vanns av <b>%1</b> med <b>%2</b> poäng.
The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
-
-
-
+
+ Bästa dödaren är <b>%1</b> med <b>%2</b> döda på en tur.
+ Bästa dödaren är <b>%1</b> med <b>%2</b> döda på en tur.
A total of <b>%1</b> hedgehog(s) were killed during this round.
-
-
-
+
+ Totalt <b>%1</b> igelkott(ar) dödades under den här omgången.
+ Totalt <b>%1</b> igelkott(ar) dödades under den här omgången.
-
+
(%1 kill)
-
+
+ (%1 död)
+ (%1 döda)
+
(%1 kills)
-
-
-
+ (%1 döda)
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+ <b>%1</b> tyckte att det var bra att sjuta sina egna igelkottar med <b>%2</b> poäng.
+ <b>%1</b> tyckte att det var bra att sjuta sina egna igelkottar med <b>%2</b> poäng.
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+ <b>%1</b> dödade <b>%2</b> av sina egna igelkottar.
+ <b>%1</b> dödade <b>%2</b> av sina egna igelkottar.
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+ <b>%1</b> var rädd och hoppade över turer <b>%2</b> gånger.
+ <b>%1</b> var rädd och hoppade över turer <b>%2</b> gånger.
+
@@ -392,236 +421,256 @@
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.
Tips
-
+ Välj bara samma färg som en vän för att spela i som ett lag. Varje spelare kontrollerar fortfarande själva sina igelkottar men de vinner eller förlorar tillsammans.
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.
Tips
-
+ Några vapen kanske bara gör liten skada men de kan vara mycket mer förödande i rätt situation. Försök att använda Desert Eagle för att putta ner flera igelkottar ner i vattnet.
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!
Tips
-
+ Om du inte är säker på vad du ska göra och inte vill slösa på ammunition, hoppa över en tur. Men låt inte för lång tid passera eftersom sudden death kommer!
Want to save ropse? 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!
Tips
-
+ Vill du spara rep? Släpp repet i luften och sedan sjut igen. Så länge du inte nuddar marken använder du samma rep utan att slösa på ammunition!
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
-
+ Om du vill förhindra andra från att använda ditt favoritnamn på den officiella servern kan du registrera ett konto på http://www.hedgewars.org/.
You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.
Tips
-
+ Är du trött på att spela vanligt? Pröva ett av uppdragen - de erbjuder annorlunda spel beroende på vilken du väljer.
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.
Tips
-
+ Som standard spelar spelet alltid in den senaste matchen som en demo. Välj 'Lokalt Spel' och tryck på 'Demo'-knappen nere till höger för att spela eller hantera dem.
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!
Tips
-
+ Hedgewars är ett öppet källkods- och gratisprogram som vi skapar på vår fritid. Om du har problem, fråga på vårat forum men snälla förvänta dig inte dygnet runt-support!
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!
Tips
-
+ Hedgewars är ett öppet källkods- och gratisprogram som vi skapar på vår fritid. Om du gillar det, hjälp oss med en liten donation eller bidra med något eget!
Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!
Tips
-
+ Hedgewars är ett öppet källkods- och gratisprogram som vi skapar på vår fritid. Dela med dig av det till familj och vänner som du vill!
From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.
Tips
-
+ Då och då kommer det hållas officiella turneringer. Kommande händelser kommer att annonseras på http://www.hedgewars.org/ några dagar i förväg.
Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!
Tips
-
+ Hedgewars finns på många språk. Om översättningen på ditt språk verkar saknas eller är gammal får du gärna kontakta oss!
Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.
Tips
-
+ Hedgewars kan köras på många operativsystem som Microsoft Windows, Mac OS X och Linux.
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.
Tips
-
+ Kom alltid ihåg att du kan starta en egen match i lokalt och netverk/online-spel. Du är inte begränsad till 'Enkelt spel'-valet.
While playing you should give yourself a short break at least once an hour.
Tips
-
+ När du spelar borde du ta en pause åt minståne en gång i timman.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.
Tips
-
+ Om ditt grafikkort inte klarar av att ge hårdvaruaccellererad OpenGL, pröva att sänka kvaliteten för att öka prestandan.
We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!
Tips
-
+ Vi är öppna för förslag och konstruktiv kritik. Om du inte gillar något eller har en bra idé, hör av dig!
Especially while playing online be polite and always remember there might be some minors playing with or against you as well!
Tips
-
+ Speciellt när du spelar över netet, var artig och kom alltid ihåg att det kan vara minderåriga som du spelar mot också!
Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!
Tips
-
+ Speciella spellägen som 'Vampyrism' eller 'Karma' låter dig utveckla helt nya taktiker. Pröva dem i ett eget spel!
The Windows version of Hedgewars supports Xfire. Make sure to add Hedgwars to its game list so your friends can see you playing.
Tips
-
+ Windows-versionen av Hedgewars har stöd för Xfire. Se till att lägga till Hedgewars till spellistan så att dina vänner kan se dig spela.
You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!
Tips
-
+ Du ska aldrig installera Hedgewars på en dator som du inte äger (skola, universitet, arbete, etc.). Fråga den ansvarige personen istället!
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.
Tips
-
+ Hedgewars kan vara perfekt för korta matcher under raster. Se bara till att du inte lägger till för många igelkottar eller använder en stor bana. Att minska tiden och hälsa kan också hjälpa.
No hedgehogs were harmed in making this game.
Tips
-
+ Inga igelkottar skadades under produktionen av spelet.
Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
Tips
-
+ Hedgewars är ett öppet källkods- och gratisprogram som vi skapar på vår fritid. Om någon sålde spelet till dig ska du försöka att få pengarna tillbaka!
Connect one or more gamepads before starting the game to be able to assign their controls to your teams.
Tips
-
+ Koppla ihop en eller flera spelplattor innan du startar spelet för att kunna välja att kontrollera era lag med dem.
Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
Tips
-
+ Skapa ett konto på %1 för att förhindra andra från att använda ditt favoritnamn när du spelar på den officiella servern.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.
Tips
-
+ Om ditt grafikkort inte klarar av att ge hårdvaruaccellererad OpenGL, pröva att uppdatera dina drivrutiner.
There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.
Tips
-
+ Det finns tre olika hopp tillgängliga. Tryck på [högt hopp] två gånger för att göra ett ett högt bakåt-hopp.
Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.
Tips
-
+ Är du rädd att falla ner för an kant? Håll ner [exakt] för att vrida [vänster] eller [höger] utan att egentligen röra dig.
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.
Tips
-
+ Några vapen kräver speciella strategier eller bara mycket träning, så ge inte upp ett vapen bara för att du missade en fiende någon gång.
Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.
Tips
-
+ De flesta vapen fungerar inte när de har rört vattenet. Målsökande bi och även Tårta är två undantag.
The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.
Tips
-
+ Den gamla Limburgaren skapar bara en liten explosition. Men det vindpåverkade stinkmålnet kan förgifta många igelkottar samtidigt.
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
-
+ Pianoanfall är det farligaste luftanfallet. Du blir av med en igelkott när du använder det, så det finns en stor nackdel också.
The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power.
Tips
-
+ Målsökande biet kan vara svårt att använda. Biets sväng beror på hastigheten, så försök inte att använda full kraft.
Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.
Tips
-
+ Fästande minor är ett perfekt verktyg för att skapa små kedjereaktioner som slår ner fiender i farliga situationer ... eller vatten.
The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.
Tips
-
+ Hammaren är mest effektiv när den används på broar eller balkar. När du slår till igelkottarna kommer de att falla nergenom hålet.
If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.
Tips
-
+ Om du är fast bakom en fiende, använd hammaren för att göra dig fri utan att skadas av en explosition.
The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.
Tips
-
+ Tårtans längsta gångsträcka beror på vägen den måste ta. Använd [attack] för att spränga den tidigt.
The Flame Thrower is a weapon but it can be used for tunnel digging as well.
Tips
-
+ Eldkastaren är ett vapen, men den kan användas för att gräva tunnlar också.
Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.
Tips
-
+ Använd Molotov för att tillfälligt förhindra igelkottar från att passera terräng såsom tunnlar och platformer.
Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.
Tips
-
-
-
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Vill du veta vilka som ligger bakom spelet? Tryck på Hedgewars-loggan i huvudmenyn för att se medverkande.
+
+
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
-
+ Gillar du Hedgewars? Bli ett fan på %1 eller följ oss på %2!
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.
Tips
-
+ Du är välkommen att rita dina egna gravar, hattar, flaggor eller till och med banor eller teman! Men notera att du måste lägga ut dem någonstans för att använda dem online.
Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!
Tips
-
+ Vill du verkligen ha en specifik hatt? Ge os en donation och få en exklusiv hatt som du väljer!
Keep your video card drivers up to date to avoid issues playing the game.
Tips
-
+ Se till att hålla dina grafikdrivrutiner uppdaterade för att undvika problem när du spalar.
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.
Tips
-
+ Du kan hitta dina konfigurationsfiler under "Mina Dokument\Hedgewars". Gör en säkerhetskopia eller ta med dig filerna, men redigera dem inte för hand.
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.
Tips
+ Du kan hitta dina konfigurationsfiler under "Hedgewars" i din hem-mapp. Gör en säkerhetskopia eller ta med dig filerna, men redigera dem inte för hand.
+
+
+ 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.
+ Tips
+ Du kan associera Hedgewars-relaterade filer (sparfiler och demo-inspelningar) med spelet för att köra dem direkt från den filhanterare eller webbläsare du tycker bäst om.
+
+
+ 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!
+ Tips
+ Vill du spara rep? Släpp repet i luften och sedan sjut igen. Så länge du inte nuddar marken använder du samma rep utan att slösa på ammunition!
+
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
@@ -689,7 +738,7 @@
You can't edit teams from team selection. Go back to main menu to add, edit or delete teams.
-
+ Du kan inte redigera lag från ett spel. Gå tillbaka till huvudmenyn för att lägga till, redigera eller ta bort lag.
@@ -813,32 +862,33 @@
State:
-
+ Status:
Rules:
-
+ Regler:
Weapons:
-
+ Vapen:
Search:
-
+ Sök:
Clear
- Clear
+ Rensa
Warning
-
+ Varning
The game you are trying to join has started.
Do you still want to join the room?
-
+ Spelet du försöker gå med i har startat.
+Vill du fortfarande gå med i rummet?
@@ -853,7 +903,7 @@
Enable random mines
- Aktivera slumpade minor
+ Aktivera slumpade minor
Gain 80% of the damage you do back in health
@@ -929,7 +979,23 @@
AI respawns on death.
-
+ AI kommer tillbaka när de dör.
+
+
+ All (living) hedgehogs are fully restored at the end of turn
+ Alla (levande) igelkottar återfår sin hälsa i slutet av varje tur
+
+
+ Attacking does not end your turn.
+ Att använda vapen avslutar inte din tur.
+
+
+ Weapons are reset to starting values each turn.
+ Vapnen nollställs till startvärderna varje tur.
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+ Varje igelkott har sin egen ammunition. Laget delar inte med varandra.
@@ -940,7 +1006,7 @@
Delete
- Radera
+ Ta bort
@@ -967,7 +1033,7 @@
Campaign Mode (...). IN DEVELOPMENT
-
+ Kampanjläge (...). UNDER UTVECKLING
@@ -1100,51 +1166,51 @@
Community
-
+ Gemenskap
Any
-
+ Vilken som
In lobby
-
+ I lobby
In progress
-
+ Pågår
Default
- Standard
+ Standard
Pro mode
-
+ Pro-läge
Shoppa
-
+ Shoppa
Basketball
-
+ Basket
Minefield
-
+ Minfält
Barrel mayhem
-
+ Tunnförödelse
Tunnel hogs
-
+ Tunnelkottar
Crazy
-
+ Galet
@@ -1344,14 +1410,34 @@
Tip:
-
+ Tips:
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!
-
+ Denna utvecklingsversion är inte färdig och kanske inte är kompatibel med andra versioner av spelet. Några delar kan vara trasiga eller ofullständiga. Använd på egen risk!
Quality
+ Kvalitet
+
+
+ % Health Crates
+ % förbandslådor
+
+
+ Health in Crates
+ Liv i förbandslådor
+
+
+ Sudden Death Water Rise
+ Sudden Death vattenhöjning
+
+
+ Sudden Death Health Decrease
+ Sudden Death livminskning
+
+
+ Bind schemes and weapons
@@ -1409,7 +1495,15 @@
Can not overwrite default weapon set '%1'!
-
+ Kan inte skriva över standardvapenschema '%1'!
+
+
+ All file associations have been set.
+ Alla filassociationer har satts.
+
+
+ File association failed.
+ Filassociationer har misslyckats.
@@ -1501,6 +1595,10 @@
Random Team
Slumpat lag
+
+ Associate file extensions
+ Associera filextentioner
+
QTableWidget
@@ -1611,7 +1709,7 @@
Add Mines
- Lägg till minor
+ Lägg till minor
Random Order
@@ -1639,7 +1737,23 @@
AI Survival Mode
-
+ AI-överlevnad
+
+
+ Reset Health
+ Återställ hälsa
+
+
+ Unlimited Attacks
+ Obegränsade attacker
+
+
+ Reset Weapons
+ Återställ vapen
+
+
+ Per Hedgehog Ammo
+ Ammunition per igelkott
@@ -1803,7 +1917,7 @@
slot 10
- fack 10
+ fack 10
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_tr_TR.ts
--- a/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Mon Nov 15 12:37:39 2010 +0100
@@ -39,6 +39,10 @@
Edit schemes
Düzeni değiştir
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -89,6 +93,16 @@
DefaultTeam
+
+ Hedgewars Demo File
+ File Types
+
+
+
+ Hedgewars Save File
+ File Types
+
+
HWGame
@@ -331,25 +345,29 @@
-
+
(%1 kill)
-
-
-
- (%1 kills)
-
-
-
+
+
+
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+
+
@@ -378,11 +396,6 @@
- Want to save ropse? 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!
- Tips
-
-
-
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
@@ -568,7 +581,7 @@
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
@@ -593,7 +606,22 @@
- 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.
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
Tips
@@ -842,7 +870,7 @@
Enable random mines
- Rastgele mayınlar
+ Rastgele mayınlar
Gain 80% of the damage you do back in health
@@ -900,6 +928,22 @@
AI respawns on death.
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+
+
PageSelectWeapon
@@ -1081,35 +1125,7 @@
Default
- Öntanımlı
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ Öntanımlı
@@ -1313,6 +1329,26 @@
Quality
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
+
+
QLineEdit
@@ -1370,6 +1406,14 @@
Can not overwrite default weapon set '%1'!
+
+ All file associations have been set.
+
+
+
+ File association failed.
+
+
QObject
@@ -1460,6 +1504,10 @@
Random Team
+
+ Associate file extensions
+
+
QTableWidget
@@ -1570,7 +1618,7 @@
Add Mines
- Mayın Ekle
+ Mayın Ekle
Random Order
@@ -1600,6 +1648,22 @@
AI Survival Mode
+
+ Reset Health
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
+
+
binds
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_uk.ts
--- a/share/hedgewars/Data/Locale/hedgewars_uk.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_uk.ts Mon Nov 15 12:37:39 2010 +0100
@@ -41,6 +41,10 @@
Edit schemes
Редагувати схеми
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -91,6 +95,16 @@
DefaultTeam
+
+ Hedgewars Demo File
+ File Types
+
+
+
+ Hedgewars Save File
+ File Types
+
+
HWGame
@@ -363,25 +377,37 @@
-
+
(%1 kill)
-
-
-
- (%1 kills)
-
-
-
+
+
+
+
+
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+
+
+
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+
+
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+
+
+
+
@@ -410,11 +436,6 @@
- Want to save ropse? 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!
- Tips
-
-
-
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
@@ -600,7 +621,7 @@
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
@@ -625,7 +646,22 @@
- 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.
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
Tips
@@ -880,7 +916,7 @@
Enable random mines
- Увімкнути випадкові міни
+ Увімкнути випадкові міни
Gain 80% of the damage you do back in health
@@ -938,6 +974,22 @@
AI respawns on death.
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+
+
PageSelectWeapon
@@ -1123,35 +1175,7 @@
Default
- За замовчуванням
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ За замовчуванням
@@ -1361,6 +1385,26 @@
Quality
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
+
+
QLineEdit
@@ -1418,6 +1462,14 @@
Can not overwrite default weapon set '%1'!
+
+ All file associations have been set.
+
+
+
+ File association failed.
+
+
QObject
@@ -1508,6 +1560,10 @@
Random Team
Випадкова Команда
+
+ Associate file extensions
+
+
QTableWidget
@@ -1618,7 +1674,7 @@
Add Mines
- Додати Міни
+ Додати Міни
Random Order
@@ -1648,6 +1704,22 @@
AI Survival Mode
+
+ Reset Health
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
+
+
binds
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_zh_CN.ts
--- a/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Mon Nov 15 12:37:39 2010 +0100
@@ -39,6 +39,10 @@
Edit weapons
修改武器
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -87,7 +91,17 @@
DefaultTeam
-
+ 默认团队
+
+
+ Hedgewars Demo File
+ File Types
+ 刺猬杀演示文件
+
+
+ Hedgewars Save File
+ File Types
+ 刺猬杀存储文件
@@ -187,7 +201,7 @@
HWNewNet
The host was not found. Please check the host name and port settings.
- 错误没找到这个主机。请检查主机名和端口设置。
+ 没有这个主机。请检查主机名和端口设置。
Connection refused
@@ -195,7 +209,7 @@
Quit reason:
- 退出原因:
+ 退出原因:
Room destroyed
@@ -273,11 +287,11 @@
Server message for latest version:
- 最新版本的服务器信息
+ 最新版本的服务器信息:
Server message for previous versions:
- 之前版本的服务器信息
+ 之前版本的服务器信息:
Latest version protocol number:
@@ -330,51 +344,59 @@
Details
-
+ 细节
Health graph
-
+ 生命值图表
Ranking
-
+ 等级
The best shot award was won by <b>%1</b> with <b>%2</b> pts.
-
+ 最佳射手奖给与 <b>%1</b>:伤害 <b>%2</b>点。</p>
The best killer is <b>%1</b> with <b>%2</b> kills in a turn.
-
-
+
+ 最佳杀手是 <b>%1</b>单回合击杀 <b>%2</b> 只刺猬.
A total of <b>%1</b> hedgehog(s) were killed during this round.
-
-
+
+ 本轮总共有 <b>%1</b> 只刺猬被击杀.</p>
-
+
(%1 kill)
-
+
+ (%1 灭杀)
+
(%1 kills)
-
-
-
+ (%1 灭杀)
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+ <b>%1</b>另外,射击己方刺猬损失<b>%2</b>点血。
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+ <b>%1</b>个刺猬被<b>%2</b>己方的刺猬误伤.
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+ <b>%1</b>被迫跳过<b>%2</b>回合。
+
@@ -400,62 +422,62 @@
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!
Tips
- 加入不确定怎么做,不要浪费弹药,跳过此回合。但是注意突然时间!
+ 如果不确定该怎么做,不要浪费弹药,跳过此回合。但是注意突然死亡的时间!
Want to save ropse? 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!
Tips
- 保存绳子?在半空释放然后再次射出。只要不接触地面停止就可以继续使用同一根不会浪费!
+ 想节省绳子数量?在半空释放然后再次射出。只要不触地即可继续使用同一根而不浪费!
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
- 如果您确定好了一个昵称不想让别人使用,那么在 http://www.hedgewars.org/. 注册一个帐号吧
+ 如果您让自己的昵称不被别人使用,请到 http://www.hedgewars.org/. 注册一个帐号吧.
You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked.
Tips
- 厌倦了默认的玩法?试试任务——
+ 厌倦了默认的游戏?试试做任务吧——多种游戏模式让你无限选择.
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.
Tips
- 默认情况下游戏记录最后的游戏作为Demo,选择单机游戏——然后Demo——然后点击右下角开始回放或者整理。
+ 默认时记录中最后的一次被称做Demo,选择单机游戏——然后选Demo——然后点击右下角开始回放或整理。
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!
Tips
- 刺猬大作战是一个开放源代码的免费软件,它充分利用了我们的业余时间。如果您有问题,到论坛来吧,不过7×24小时支持不可能!
+ “刺猬杀”是一个开源的免费软件,它充分利用了我们的业余时间。如果您有问题,到论坛来吧,不过不要期待全天候支持!
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!
Tips
- 刺猬大作战是一个开放源代码的免费软件,它充分利用了我们的业余时间。如果您喜欢它,我们接受您的捐赠/感谢!
+ “刺猬杀”是一个开源的免费软件,它充分利用了我们的业余时间。如果您你喜欢它就来贡献你的力量吧!
Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like!
Tips
- 刺猬大作战是一个开放源代码的免费软件,它充分利用了我们的业余时间。与他人分享它吧!
+ “刺猬杀”是一个开源的免费软件,它充分利用了我们的业余时间。如果您你喜欢它,与别人分享吧!
From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance.
Tips
- 官方的竞赛一直存在。临近时去 http://www.hedgewars.org/ 即可看到。
+ 官方一直就有不断的对战,随时可以去 http://www.hedgewars.org/ 参加。
Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us!
Tips
- Hedgewars 被翻译成多种语言,中文是刺猬大作战——同样为翻译名。如果您的语言翻译有什么缺失/过时/遗漏或任何问题,来联系我们吧!
+ Hedgewars 被翻译成多种语言,中文是“刺猬杀”——同样为翻译名。如果您觉得语言翻译有什么缺失/过时/遗漏或任何问题,请联系我们吧!
Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux.
Tips
- 刺猬大作战可以运行的操作系统包括:GNU/Linux、Mac OS X、MicroSoft Windows。
+ “刺猬杀”是一款跨平台游戏,可以运行的操作系统包括:GNU/Linux、Mac OS X、MicroSoft Windows、iOS等。
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.
Tips
- 您可以建立自己的网络游戏/局域网游戏。不仅限于 "简单游戏" 选项。
+ 您可以建立自己的网络游戏/局域网游戏。不仅限于 "简单游戏" 模式。
Create an account on http://www.hedgewars.org/ to keep others from using your most favourite nickname while playing on the official server.
@@ -470,42 +492,42 @@
If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance.
Tips
- 假如你的显卡不能提供OpenGL硬件加速,试着用降低效果的方式运行
+ 假如你的显卡不能提供OpenGL硬件加速,试着用降低效果的方式运行。
We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know!
Tips
- 我们接受意见和建设性反馈。假如您有好电子或者不喜欢的东西,告诉我们!
+ 我们接受意见和建设性反馈。假如您有好点子或者不喜欢的东西,请告诉我们!
Especially while playing online be polite and always remember there might be some minors playing with or against you as well!
Tips
- 特别是网络游戏,请有礼貌记住对方也和您一样是人!
+ 特别是网络游戏,请注意礼节。记住:对方也和您一样是人!
Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game!
Tips
- 特别游戏模式“吸血“、”因果报应“需要全新的战术。现在自定义游戏里试试!
+ 特别游戏模式“吸血“、”因果报应“需要全新的战术。来"自定义游戏"里试试!
The Windows version of Hedgewars supports Xfire. Make sure to add Hedgwars to its game list so your friends can see you playing.
Tips
- Windows版本的刺猬大作战支持Xfire。添加它到游戏列表里让您的朋友看到。
+ Windows版本的"刺猬杀"支持Xfire。添加它到游戏列表里让您的朋友看到。
You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead!
Tips
- 您不应该在不属于您的计算机上安装刺猬大作战——比如学校/工作场所。
+ 您不应该在不属于您的计算机上安装“刺猬杀”——比如学校/工作场所!
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.
Tips
- 刺猬大作战适合短时间休息,不需要太多刺猬挤在大地图上。
+ “刺猬杀”适合短时间休闲游戏,不需要将大量刺猬挤在一幅超大地图上。
No hedgehogs were harmed in making this game.
Tips
- 制作这个游戏时不曾伤害任何刺猬
+ 制作这个游戏时不曾伤害任何刺猬。
Connect one or more gamepads before launching the game to be able to assign their controls to your teams.
@@ -515,121 +537,141 @@
Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund!
Tips
-
+ “刺猬杀”是一个开源的免费软件,它充分利用了我们的业余时间。如果有人想要将它卖给你,请你拒绝他!
Connect one or more gamepads before starting the game to be able to assign their controls to your teams.
Tips
-
+ 游戏运行前连上游戏板,让你的团队充分控制刺猬.
Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
Tips
-
+ 在官方服务器 %1 建立自己的帐号,就可以在官方服务器使用你最喜欢的昵称了.
If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers.
Tips
-
+ 假如你的显卡不能提供OpenGL硬件加速,试着用降低效果的方式运行。
There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump.
Tips
-
+ 三种跳跃模式,快速按两次 [长跳] 键可以跳到非常高/向后跳.
Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving.
Tips
-
+ 害怕掉进深渊?一直按住[精确控制]建并按[左][右]不用移动.
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.
Tips
-
+ 一些武器需要特别的技能与足够的训练,因此不要放弃练习,即便是失败。是曰:屡败屡战。
Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this.
Tips
-
+ 大多数武器在碰到水面的时候就失效了,除了“野蜂飞舞”和“蛋糕”。
The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once.
Tips
-
+ 毒奶酪只能造成不大的杀伤,不过能形成一片毒云并杀伤一片的刺猬.
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
-
+ 钢琴攻击能产生极大的空袭杀伤,同时你将失去这个刺猬,所以这招实在是个下下策.
The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power.
Tips
-
+ “野蜂飞舞”可以蓄力使用,它旋转时的精度依赖于其速度,所以没必要发全力.
Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water.
Tips
-
+ 近身地雷完美的构建了一个链子因此可以将敌人打入地下或者...水里.
The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground.
Tips
-
+ 大捶主要用在桥梁或者薄板,可以将敌人敲下去.
If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion.
Tips
-
+ 如果你被敌人围困,可以用大锤来解围。
The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early.
Tips
-
+ 蛋糕最大行走距离取决于地形边缘,用[攻击]键尽早结束它。
The Flame Thrower is a weapon but it can be used for tunnel digging as well.
Tips
-
+ [钻洞器]既可以当作武器,也可以用做为打洞器。
Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms.
Tips
-
+ 可以用“飞碟”让刺猬暂时离开洞穴等地形环境.
Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits.
Tips
-
-
-
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ 想知道是谁贡献的这个游戏?请在主界面点击“Hedgewars”LOGO就可以看到“制作团队”.
+
+
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
-
+ 喜欢刺猬杀? 来做我们的粉丝吧可以到%1或者%2!
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.
Tips
-
+ 你可以自由的构建自己的头像、帽子、旗帜甚至是地图和主题!但是请注意:你需要将这些在线分享出来。
Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice!
Tips
-
+ 喜欢一个很特别的帽子图案?贡献你的力量吧,你将得到一个属于自己的帽子图案!
Keep your video card drivers up to date to avoid issues playing the game.
Tips
-
+ 让你的显卡保持更新以便避免一些已知的游戏问题。
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.
Tips
-
+ 你可以在“我的文档\Hedgewars”文件夹下找到“刺猬杀”的配置文件,可以新建和备份但不要随便修改。
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.
Tips
+ 你可以在你的主文件夹下下找到“Hedgewars”文件夹,里面又配置文件,你可以新建和备份这个文件,但请不要随便编辑它.
+
+
+ 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.
+ Tips
+ 你可以组织刺猬杀的相关文件(保存的游戏和演示还有录像),通过收藏夹或者浏览器.
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
+ Tips
@@ -796,7 +838,7 @@
There are %1 clients connected to this room.
- 有 %1 个客户端连接到这个房间。
+ 有 %1 个客户端连接到这个房间.
@@ -819,32 +861,33 @@
State:
-
+ 状态:
Rules:
-
+ 规则:
Weapons:
-
+ 武器:
Search:
-
+ 搜索:
Clear
- Num Lock / Clear
+ 清除:
Warning
-
+ 警告:
The game you are trying to join has started.
Do you still want to join the room?
-
+ 游戏正在大厅中。
+你是否想去观战?
@@ -859,19 +902,19 @@
Defend your fort and destroy the opponents, two team colours max!
- 保卫你的城堡,破坏对手的,努力吧!
+ 保卫你的城堡,破坏对手的,对战努力吧!
Teams will start on opposite sides of the terrain, two team colours max!
- 队伍开始在对手的地盘,努力!
+ 队伍开始在对手的地盘,努力!
Land can not be destroyed!
- 地面无法破坏!
+ 地面无法破坏!
Add an indestructable border around the terrain
- 添加不可毁坏地边界
+ 添加不可毁坏地形
Lower gravity
@@ -887,7 +930,7 @@
Enable random mines
- 开启随机地雷
+ 开启随机地雷
Gain 80% of the damage you do back in health
@@ -911,15 +954,15 @@
Order of play is random instead of in room order.
- 随机出场顺序
+ 随机出场顺序。
Play with a King. If he dies, your side dies.
- 国王不能死!!
+ 国王不能死!!否则自动输。
Take turns placing your hedgehogs before the start of play.
- 在开局前手动放置刺猬
+ 在开局前手动放置刺猬。
Ammo is shared between all teams that share a colour.
@@ -927,15 +970,31 @@
Disable girders when generating random maps.
- 禁止随机生成地图使用梁
+ 禁止随机生成地图使用梁。
Disable land objects when generating random maps.
- 禁止随机生成地图使用地面物体
+ 禁止随机生成地图使用地面物体。
AI respawns on death.
-
+ AI死后重生。
+
+
+ All (living) hedgehogs are fully restored at the end of turn
+ 所有或者的刺猬结局的时候都会被保存
+
+
+ Attacking does not end your turn.
+ 不会终结你的回合.
+
+
+ Weapons are reset to starting values each turn.
+ 每轮武器的配置都会重置.
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+ 每个刺猬都有其自己的武器. 并在奔队中不共享.
@@ -973,7 +1032,7 @@
Campaign Mode (...). IN DEVELOPMENT
-
+ 对战模式(...)开发中
@@ -1098,7 +1157,7 @@
generated maze...
- 生成的迷宫
+ 生成的迷宫...
Mission
@@ -1106,51 +1165,51 @@
Community
-
+ 社区
Any
-
+ 任何
In lobby
-
+ 在线状态
In progress
-
+ 使用中
Default
- 默认
+ 默认
Pro mode
-
+ Pro 模式
Shoppa
-
+ 绳索模式
Basketball
-
+ 篮球模式
Minefield
-
+ 地雷模式
Barrel mayhem
-
+ 武器不共享
Tunnel hogs
-
+ 洞穴刺猬
Crazy
-
+ 疯狂模式
@@ -1212,7 +1271,7 @@
This program is distributed under the GNU General Public License
- This program is distributed under the GNU General Public License
+ 这款程序遵守GPL协议的保护
Resolution
@@ -1228,7 +1287,7 @@
Art:
- 艺术:
+ 美化:
Translations:
@@ -1288,7 +1347,7 @@
Scheme Name:
- 设置名称:
+ 设置名称:
Crate Drops
@@ -1332,7 +1391,7 @@
Locale
- Locale
+ 本土化
Restart game to apply
@@ -1348,10 +1407,30 @@
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!
- 开发版本。自己承担风险使用。
+ 开发版本,尚不能和其他版本兼容,仍有不足。请谨慎使用!!
Quality
+ 价值
+
+
+ % Health Crates
+ % 健康包裹
+
+
+ Health in Crates
+ 包裹里有血
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
@@ -1366,7 +1445,7 @@
QMainWindow
Hedgewars %1
- 刺猬大作战 %1
+ 刺猬杀 %1
@@ -1409,7 +1488,15 @@
Can not overwrite default weapon set '%1'!
- 不能覆盖默认的武器配置 '%1'
+ 不能覆盖默认的武器配置 '%1'!
+
+
+ All file associations have been set.
+ 文件联合已经存储完毕.
+
+
+ File association failed.
+ 文件联合失败.
@@ -1451,7 +1538,7 @@
Go!
- 上场!
+ 上场!!
Start
@@ -1501,6 +1588,10 @@
Random Team
随机分配队伍
+
+ Associate file extensions
+ 连接文件扩展
+
QTableWidget
@@ -1545,7 +1636,7 @@
Ammo in boxes
- 弹药箱
+ 弹药数
Delays
@@ -1599,7 +1690,7 @@
Add Mines
- 布置地雷
+ 布置地雷
Vampirism
@@ -1639,7 +1730,23 @@
AI Survival Mode
-
+ AI 复活模式
+
+
+ Reset Health
+ 重置健康值
+
+
+ Unlimited Attacks
+ 无限攻击
+
+
+ Reset Weapons
+ 重置所有武器
+
+
+ Per Hedgehog Ammo
+ 每个刺猬的武器
@@ -1763,7 +1870,7 @@
hedgehogs
info
- 刺猬大作战
+ 刺猬杀
信息
@@ -1830,67 +1937,67 @@
binds (descriptions)
Move your hogs and aim:
- 移动您的刺猬同时瞄准:
+ 移动您的刺猬同时瞄准:
Traverse gaps and obstacles by jumping:
- 使用跳跃越过沟渠、障碍:
+ 使用跳跃越过沟渠、障碍:
Fire your selected weapon or trigger an utility item:
- 使用选择的武器开火、使用物品:
+ 使用选择的武器开火、使用物品:
Pick a weapon or a target location under the cursor:
- 失去一个武器、或者瞄准光标下的地点:
+ 选择一个武器、或者瞄准光标下的某点:
Switch your currently active hog (if possible):
- 切换到您当前活动的刺猬(如果可用):
+ 切换到您当前活动的刺猬(如果可用):
Pick a weapon or utility item:
- 选择一个武器或物品:
+ 选择一个武器或物品:
Set the timer on bombs and timed weapons:
- 设置定时炸弹等武器起爆时间:
+ 设置定时炸弹等武器起爆时间:
Move the camera to the active hog:
- 移动镜头到选中的刺猬:
+ 移动镜头到选中的刺猬:
Move the cursor or camera without using the mouse:
- 不用鼠标移动光标或镜头:
+ 不用鼠标移动光标或镜头:
Modify the camera's zoom level:
- 调整镜头放大倍数:
+ 调整镜头放大倍数:
Talk to your team or all participants:
- 同队友或全部参与者对话:
+ 同队友或全部参与者对话:
Pause, continue or leave your game:
- 暂停、继续或离开游戏:
+ 暂停、继续或离开游戏:
Modify the game's volume while playing:
- 调整游戏时音量:
+ 调整游戏时音量:
Toggle fullscreen mode:
- 全屏模式:
+ 全屏模式:
Take a screenshot:
- 截图:
+ 截图:
Toggle labels above hedgehogs:
- 切换刺猬头顶标签的显示方式:
+ 切换刺猬标签的显示方式:
@@ -1953,7 +2060,7 @@
Tab
- Tab
+ Tab 键
Clear
@@ -2169,43 +2276,43 @@
Left stick (Right)
-
+ 左摇杆(右)
Left stick (Left)
-
+ 左摇杆(左)
Left stick (Down)
-
+ 左摇杆(下)
Left stick (Up)
-
+ 左摇杆(上)
Left trigger
-
+ 左触发
Right trigger
-
+ 右触发
Right stick (Down)
-
+ 右摇杆(下)
Right stick (Up)
-
+ 右摇杆(上)
Right stick (Right)
-
+ 右摇杆(右)
Right stick (Left)
-
+ 右摇杆(左)
DPad
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/hedgewars_zh_TW.ts
--- a/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Mon Nov 15 12:37:39 2010 +0100
@@ -39,6 +39,10 @@
Edit schemes
修改遊戲設置
+
+ When this option is enabled selecting a game scheme will auto-select a weapon (and viceversa)
+
+
HWChatWidget
@@ -89,6 +93,16 @@
DefaultTeam
+
+ Hedgewars Demo File
+ File Types
+
+
+
+ Hedgewars Save File
+ File Types
+
+
HWGame
@@ -353,25 +367,29 @@
-
+
(%1 kill)
-
-
-
- (%1 kills)
-
-
-
+
+
+
+
+
<b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts.
-
-
-
+
+
+
+
+
<b>%1</b> killed <b>%2</b> of his own hedgehogs.
-
-
-
+
+
+
+
+
<b>%1</b> was scared and skipped turn <b>%2</b> times.
-
+
+
+
@@ -400,11 +418,6 @@
- Want to save ropse? 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!
- Tips
-
-
-
If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/.
Tips
@@ -590,7 +603,7 @@
- Like Hedgewars? Become a fan on %1 or join our group at %2. You could follow us on %3 as well!
+ Like Hedgewars? Become a fan on %1 or follow us on %2!
Tips
@@ -615,7 +628,22 @@
- 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.
+ 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.
+ Tips
+
+
+
+ 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!
+ Tips
+
+
+
+ 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.
+ Tips
+
+
+
+ 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.
Tips
@@ -846,7 +874,7 @@
Enable random mines
- 開啟隨機地雷
+ 開啟隨機地雷
Gain 80% of the damage you do back in health
@@ -924,6 +952,22 @@
AI respawns on death.
+
+ All (living) hedgehogs are fully restored at the end of turn
+
+
+
+ Attacking does not end your turn.
+
+
+
+ Weapons are reset to starting values each turn.
+
+
+
+ Each hedgehog has its own ammo. It does not share with the team.
+
+
PageSelectWeapon
@@ -1109,35 +1153,7 @@
Default
- 默認
-
-
- Pro mode
-
-
-
- Shoppa
-
-
-
- Basketball
-
-
-
- Minefield
-
-
-
- Barrel mayhem
-
-
-
- Tunnel hogs
-
-
-
- Crazy
-
+ 默認
@@ -1341,6 +1357,26 @@
Quality
+
+ % Health Crates
+
+
+
+ Health in Crates
+
+
+
+ Sudden Death Water Rise
+
+
+
+ Sudden Death Health Decrease
+
+
+
+ Bind schemes and weapons
+
+
QLineEdit
@@ -1398,6 +1434,14 @@
Can not overwrite default weapon set '%1'!
+
+ All file associations have been set.
+
+
+
+ File association failed.
+
+
QObject
@@ -1488,6 +1532,10 @@
Random Team
隨機隊伍分配
+
+ Associate file extensions
+
+
QTableWidget
@@ -1598,7 +1646,7 @@
Add Mines
- 佈置地雷
+ 佈置地雷
Random Order
@@ -1628,6 +1676,22 @@
AI Survival Mode
+
+ Reset Health
+
+
+
+ Unlimited Attacks
+
+
+
+ Reset Weapons
+
+
+
+ Per Hedgehog Ammo
+
+
binds
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/ja.txt
--- a/share/hedgewars/Data/Locale/ja.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/ja.txt Mon Nov 15 12:37:39 2010 +0100
@@ -3,7 +3,7 @@
00:00=擲弾
00:01=クラスタ爆弾
00:02=バズーカ
-00:03=UFO
+00:03=ホーミングビー
00:04=ショットガン
00:05=槌
00:06=スキップ
@@ -13,7 +13,7 @@
00:10=ダイナマイト
00:11=野球バット
00:12=ファイヤーパンチ
-00:13=sec
+00:13=秒
00:14=落下傘
00:15=空袭
00:16=マイン空袭
@@ -29,18 +29,18 @@
00:26=すいか爆弾
00:27=悪手擲弾
00:28=錐ロケット
-00:29=Ballガン
+00:29=ボールガン
00:30=ナパーム
-00:31=RC Plane
-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:31=ラジコン飛行機
+00:32=弱い重力
+00:33=追加ダメージ
+00:34=不死身
+00:35=追加時間
+00:36=レーザーサイト
+00:37=ヴァンパイア
+00:38=スナイパーライフル
+00:39=空飛ぶ円盤
+00:40=モロトブカクテル
01:00=ヨシ、ファイト!
01:01=ドロー!
@@ -49,37 +49,31 @@
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 coming!
-; Hog (%1) drowned
-02:01=%1 plays submarine!
-02:01=%1 mimics the Titanic!
+; Hog (%1) は死んだ。
+02:00=%1 は天国を見た。
+; Hog (%1) は溺れた。
+02:01=%1 はタイタニック見たい。
02:01=%1 swims like a stone!
-; Round starts
+; 初め!
02:02=頑張って!
; Round ends (win; unused atm)
02:03=...
; Round ends (draw; unused atm)
02:04=...
; New health crate
-02:05=Incoming aid!
+; 02:05=Incoming aid!
; New ammo crate
-02:06=More weapons!
+; 02:06=More weapons!
; New utility crate
-02:07=Tooltime!
+; 02:07=Tooltime!
; Hog (%1) skips his turn
-02:08=%1 is sooo boring...
-; Hog (%1) hurts himself only
-02:09=%1 should practice aiming!
-02:09=%1 seems to hate himself.
-02:09=%1 is standing on the wrong side!
+02:08=%1 は凄く詰まらない。
+; Hog (%1) hurts himself only - see en.txt for examples
+; 02:09=%1 should practice aiming!
; 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=ホームラン!
+02:10=鳥、飛行機….
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/pl.txt
--- a/share/hedgewars/Data/Locale/pl.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/pl.txt Mon Nov 15 12:37:39 2010 +0100
@@ -49,6 +49,7 @@
00:46=Miotacz ognia
00:47=Mina samoprzylepna
00:48=Młotek
+00:49=Wskrzeszacz
01:00=Walczmy!
01:01=Remis
@@ -64,6 +65,7 @@
01:11=Ta broń nie jest jeszcze dostępna.
01:12=To już ostatnia runda przed Nagłą Śmiercią!
01:13=Zostało %1 rund do Nagłej Śmierci!
+01:14=Bądź gotów, %1!
; Event messages
; Hog (%1) died
@@ -485,9 +487,13 @@
03:40=Płonący granat
03:41=Wielki fan Wróbla Ćwirka
03:42=I'm making a note here...
-; the misspelled "Beethoven" is intentional (-> to beat)
-03:43=Performing Beathoven's deadly sonata
-03:44=Stary i baaaaardzo śmierdzący
+03:43=Chopin to przy tym pikuś
+03:44=Najlepiej spożyć przed: 1923
+03:45=Siła nauki
+03:46=Ciepło! Gorąco! Parzy!
+03:47=Co Kropelka sklei, sklei...
+03:48=Ała! Moja głowa...
+03:49=Powrót z zaświatów
; Weapon Descriptions (use | as line breaks)
04:00=Atakuj przeciwników zwykłym granatem.|Wybuchnie kiedy zapalnik skończy odliczanie.|1-5: Ustawia zapalnik|Atak: Przytrzymaj by rzucić z większą siłą
@@ -499,42 +505,48 @@
04:06=Znudzony? Brak motywacji do ataku? Oszczędzasz broń?|No problemo! Po prostu pomiń turę, tchórzu!|Atak: Pomiń turę bez walki
04:07=Skróć wielkie odległości używając liny. Rozpędź się|by wślizgnąć się w inne jeże lub upuścić na nich|granat albo inną broń.|Atak: Rozwiń albo odłącz linę|Długi skok: Upuść granat lub podobną broń
04:08=Trzymaj przeciwników na dystans przez upuszczenie|miny w wąskim przejściu lub zaraz obok ich stóp. I nie|zapomnij ucieć zanim się włączy!|Atak: Upuść minę obok siebie
-04:09=Niepewny co do umiejętności w celowaniu? Weź|pistolet i strzel do czterech razy.|Atak: Strzel (kilka razy)
-04:10=Brutalna siła zawsze jest rozwiązaniem. Upuść ten|klasyczny materiał wybuchowy obok przeciwnika i|uciekaj gdzie pieprz rośnie.|Attack: Upuść dynamit obok siebie
+04:09=Niepewny co do umiejętności w celowaniu?|Weź pistolet i powystrzelaj ich jak kaczki.|Atak: Strzel (kilka razy)
+04:10=Brutalna siła zawsze jest rozwiązaniem. Upuść ten|wybuchową laskę dynamitu obok przeciwnika i|uciekaj gdzie pieprz rośnie.|Atak: Upuść dynamit obok siebie
04:11=Uwolnij się od przeciwników poprzez spałowanie|ich poza mapę albo do wody. A co powiesz o|strąceniu min w swoich wrogów?|Atak: Spałuj wszystko co jest przed tobą
-04:12=Zbliż się i osobiście wyzwól moc tej|śmiertelnej techniki sztuk walki.|Atak: Przeprowadź ognistą pięść
+04:12=Zbliż się i osobiście wyzwól moc tej|śmiertelnej techniki sztuk walki.|Atak: Użyj swoich pięści
04:13=UNUSED
04:14=Masz lęk wysokości? Lepiej weź spadochron.|Rozwinie się kiedy spadasz z wysokości|i ochroni cię przed obrażeniami z upadku.|Atak: Rozwiń spadochron.
04:15=Wezwij samolot, żeby zrzucił bomby na|twoich przeciwników.|Lewo/Prawo: Określ kierunek ataku|Kursor: Wybierz cel
04:16=Wezwij samolot, żeby zrzucił kilka min w|określonym miejscu.|Lewo/Prawo: Określ kierunek ataku|Kursor: Wybierz cel
-04:17=Potrzebny schron? Użyj palnika by|wydrążyć tunel w stałym podłożu|co całkowicie cię zakryje.|Atak: Zacznij/Zakończ kopać
+04:17=Potrzebny schron? Użyj palnika by|wydrążyć tunel w stałym podłożu|co pozwoli Ci się ukryć.|Atak: Zacznij/Zakończ kopać
04:18=Potrzebujesz dodatkowej ochrony albo chcesz|przejść przez teren nie do przejścia? Umieść|konstrukcje gdzie chcesz.|Lewo/Prawo: Wybierz konstrukcję do umieszczenia|Kursor: Umieść konstrukcję w odpowiednim miejscu
-04:19=Teleport użyty w odpowiednim momencie, staje|się potężniejszy niż prawie każda inna broń,|ponieważ potrafi wyzwolić jeża z tarapatów|w przeciągu sekund.|Kursor: Wybierz region
+04:19=Teleport użyty w odpowiednim momencie, staje|się potężniejszy niż każda inna broń,|ponieważ potrafi wyzwolić jeża z tarapatów|w przeciągu sekund.|Kursor: Wybierz region
04:20=Pozwala w tej turze zagrać innym jeżem.|Atak: Uaktywnij wybieranie jeża
04:21=Odpal moździerz, który po uderzeniu|wypuści kilka bomb.|Atak: Strzel z całą mocą
04:22=Nie tylko dla Indiana Jones! Ten bicz może|być użyteczny w wielu wypadkach. Szczególnie|kiedy chcesz kogoś zrzucić z urwiska.|Atak: Zbiczuj wszystko co jest przed tobą
04:23=Jeśli nie masz nic do stracenia, ten atak może być|całkiem użyteczny. Poświęć swojego jeża i poślij|go w odpowiednim kierunku, raniąc wszystkich po|drodze i eksplodując na końcu.|Atak: Odpal tę niszczycielską i zabójczą technikę
-04:24=Sto lat! Uruchom ciasto i pozwól mu pójść w stronę|twoich przeciwników dając im wybuchowe przyjęcie.|Może chodzić prawie po wszystkim, ale wtedy może|wcześniej eksplodować.|Atak: Odpal ciasto albo zatrzymaj je, by wybuchło
-04:25=Użyj kostiumu by sprawić, żeby twój wróg poleciał|na ciebie (i w przepaść lub dziurę).|Atak: Użyj kostiumu i uwiedź jeża
-04:26=Rzuć tego smacznego arbuza w przeciwników. Kiedy jego|czas wyniesie zero, podzieli się na mniejsze kawałki.|1-5: Ustawia czas arbuza|Atak: Przytrzymaj by rzucić z większą siłą
+04:24=Sto lat! Uruchom ciasto i pozwól mu pójść w stronę|twoich przeciwników urządzając im wybuchowe przyjęcie.|Może chodzić prawie po wszystkim, ale wtedy|wcześniej eksploduje.|Atak: Odpal ciasto albo zatrzymaj je, by wybuchło
+04:25=Użyj kostiumu by sprawić, żeby twój wróg zakochał się|w Tobie (i spadł w przepaść lub dziurę).|Atak: Użyj kostiumu i uwiedź jeża
+04:26=Rzuć tego smacznego arbuza w przeciwników. Kiedy jego|zapalnik wskaże zero, podzieli się na mniejsze kawałki.|1-5: Ustawia zapalnik arbuza|Atak: Przytrzymaj by rzucić z większą siłą
04:27=Niech ognie piekielne ogarną twoich przeciwników!|Nie podchodź zbyt blisko po wybuchu, gdyż ogień|pali się przez dłuższy czas|Atak: Przytrzymaj by rzucić z większą siłą
04:28=Krótko po wystrzeleniu, rakieta zacznie wiercić tunel w ziemi|i eksploduje gdy zapalnik zostanie uruchomiony lub|jeśli pojawi się po drugiej stronie terenu.|Atak: Przytrzymaj by strzelić z większą siłą
-04:29=Tego nie powinny używać dzieci!|Pistolet na kulki wystrzeliwujetony małych|kolorowych kulek wypełnionych materiałem wybuchowym.|Atak: Strzel z całą mocą|Góra/Dół: Kontynuuj celowanie
+04:29=Tego nie powinny używać dzieci!|Pistolet na kulki wystrzeliwujetony małych|kolorowych kulek wypełnionych materiałem wybuchowym.|Atak: Strzel kulkami|Góra/Dół: Kontynuuj celowanie
04:30=Wezwij samolot, żeby zrzucić dużą ilość|napalmu. Dzięki dobremu celowi ten atak|może zlikwidować dużą część mapy, w tym|znajdujące się tam nieszczęsne jeże.|Lewo/Prawo: Określ kierunek ataku|Kursor: Wybierz region
04:31=Zaatakuj odległych przeciwników, bądź zbierz|skrzynki! Nie zapomnij o zrzuceniu bomb!|Góra/Dół: Steruj samolotem|Atak: Zrzuć bombę (3x) |Długi skok: Niech walkirie wkroczą na pole bitwy!
-04:32=Niska grawitacja jest lepsza niż diety! Skacz|wyżej i dalej albo pozwól przeciwnikom lecieć|daleko.|Atak: Aktywuj
+04:32=Niska grawitacja jest lepsza od diety! Skacz|wyżej i dalej albo pozwól przeciwnikom fruwać.|Atak: Aktywuj
04:33=Czasami potrzebujesz dodatkowego kopa|żeby zadawać większe obrażenia.|Atak: Aktywuj
04:34=Nie dotkniesz mnie!|Atak: Aktywuj
-04:35=Czasami bywa, że czas pędzi za szybko. Weź kilka|dodatkowych sekund by dokończyć swój atak.|Atak: Aktywuj
+04:35=Czasami bywa, że czas pędzi za szybko. Zyskaj kilka|dodatkowych sekund by dokończyć swój atak.|Atak: Aktywuj
04:36=Czasami z celowaniem u ciebie jest kiepsko.|Zrób użytek ze zdobyczy współczesnej technologii.|Attack: Aktywuj
04:37=Nie bój się słońca. To potrwa tylko jedną turę,|ale pozwoli pochłonąć część obrażeń, które|zadałeś innym.|Atak: Aktywuj
-04:38=Karabin snajperski może stać się najbardziej niszczycielską|bronią w twoim arsenale. Jednakże jest bardzo nieskuteczny|na małe odległości. Obrażenia zwiększają się wraz z odległością.|Atak: Strzel (dwa strzały)
+04:38=Karabin snajperski może stać się najbardziej niszczycielską|bronią w twoim arsenale. Jednakże jest bardzo nieskuteczny|na krótkie dystanse.| Im dalej od celu tym więcej HP zabierzesz.|Atak: Strzel (dwa strzały)
04:39=Leć do innych części mapy uzywjąc spodka.|To ciężkie do opanowania narzędzie, może przenieść Ciebie|w prawie każdą pozycje na polu bitwy.|Atak: Aktywuj|Góra/Lewo/Prawo: Wyznacz lot w odpowiednim kierunku
04:40=Wznieć ogień używając koktajlu z łatwopalnym płynem.|Atak: Przytrzymaj by rzucić z większą siłą
04:41=Natura może być na równi z technologią!|Ptaszek uniesie Ciebie ponad ziemię oraz|zrzuci jajka w przeciwników|Atak: Atywacja ptaka i zrzucanie jajek|Góra/Lewo/Prawo: Leć w wybranym kierunku
-04:42=HUGE SUCCESS| | |(but missing texts!)
-04:43=(missing text)
-04:44=To nie jest zwykły ser. To broń biologiczna!|Wybuch z pewnością nie będzie potężny, ale gdy|licznik dojdzie do zera, chmura gazu zatruje|każdego nieszczęśnika który będzie w pobliżu|1-5: Ustawia czas granatu|Atak: Przytrzymaj by rzucić z większą siłą
+04:42=To urządzenie umożliwia natychmiastowe|przetransportowanie Ciebie, Twoich|wrogów bądź uzbrojenia pomiędzy dwoma|miejscami na mapie|Użyj tego z głową a Twoja|misja zakończy się... WIELKIM SUKCESEM|Atak: Wystrzel portal|Zmiana (Tab): Zmień kolor portalu
+04:43=Niech twój debiut będzie WYBUCHOWY!|Zrzuć pianino z nieba, ale uważaj!|Ktoś musi na nim grać więc prawdopodobnie będziesz|musiał poświęcić swojego jeża|Kursor: Wybierz cel|F1-F9: Graj na pianinie
+04:44=To nie jest zwykły ser. To broń biologiczna!|Wybuch z pewnością nie będzie potężny, ale gdy|licznik dojdzie do zera, chmura gazu zatruje|każdego nieszczęśnika który będzie w pobliżu|1-5: Ustawia zapalnik|Atak: Przytrzymaj by rzucić z większą siłą
+04:45=Wszystkie lekcje fizyki w końcu się opłaciły!|Wystrzel niszczącą sinusoidalną falę|która przechodzi przez teren i uderza|w twoich przeciwników|Uważaj! Ta broń ma kopa!|Atak: Strzelaj
+04:46=Pokrywa twoich wrogów ognistą powłoką.|Czy koś zamawiał pieczonego jeża?|Atak: Aktywuj|Góra/Dół: Celowanie|Lewo/Prawo: Ustaw prędkość wystrzeliwania
+04:47=Podwójna zabawa z podwójną ilością kleistych min.|Spróbuj wywołać reakcję łańcuchową lub chroń|samego siebie (lub obydwie rzeczy na raz!)|Atak: Przytrzymaj by rzucić z większą siłą (dwa razy)
+04:48=Czyż walenie jeży po głowach nie|jest zabawne? Dobre uderzenie|z młotka zabierze 1/3 życia|przeciwnika i wkopie go w podłoże|Atak: Uderz
+04:49=Wskrześ swoich przyjaciół!|Jednakże uważaj byś nie pomógł swojemu wrogowi.|Atak: Przytrzymaj by powoli przywracać życie|Góra: Przyspiesz wskrzeszanie
+
; Game goal strings
05:00=Ustawienia gry
@@ -553,3 +565,8 @@
05:13=Detonacja min: Miny wybuchają natychmiast
05:14=Detonacja min: Miny wybuchają po 0-3 sekundach
05:15=Modyfikator obrażeń: Wszystkie bronie zadają %1% obrażeń
+05:16=Życie wszystkich jeży jest przywrócone przy kolejnej turze
+05:17=AI odradza się po śmierci.
+05:18=Tura nie kończy się po wykonaniu ataku
+05:19=Uzbrojenie zostaje przywrócone przy kolejnej turze
+05:20=Każdy z jeży ma oddzielne uzbrojenie
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/pt_BR.txt
--- a/share/hedgewars/Data/Locale/pt_BR.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/pt_BR.txt Mon Nov 15 12:37:39 2010 +0100
@@ -45,10 +45,11 @@
00:42=Gerador de Portais
00:43=Ataque com Piano
00:44=Queijo Fedorento
-00:45=Arma Senóide
+00:45=Arma Senóide (beta)
00:46=Lança Chamas
-00:47=Mina aderente
+00:47=Mina Adesiva
00:48=Martelo
+00:49=Ressucitador
01:00=Hora de lutar!
01:01=Partida empatou
@@ -211,6 +212,8 @@
02:09=%1 não sabe para quem está jogando
02:09=%1 é um vira casaca
02:09=%1 mudou de equipe
+02:09=%1 acha que ninguém viu
+02:09=%1 devia procurar outro jogo
; Hog shot an home run (using the bat and another hog)
02:10=Humilhooooouuu!
@@ -274,8 +277,9 @@
03:44=Velho e fedorento
03:45=Trigonometria pura
03:46=Incendiário
-03:47=Bomba de proximidade
-03:48=Não desgrude
+03:47=Grudenta
+03:48=Tanto bate até que fura!
+03:49=Faz o que você imagina
; Weapon Descriptions (use | as line breaks)
04:00=Ataque seus inimigos usando uma granada simples|Ela explodirá assim que o tempo passar|1-5: Escolha o tempo da granada|Ataque: Quanto mais tempo, mais forte o lançamento.
@@ -316,28 +320,29 @@
04:31=O Aeromodelo é a arma ideal para coletar caixas ou|atacar ouriços distantes. Jogue o em algum inimigo ou|bombardeie primeiro.|Ataque: Lança o avião ou bombardeia|Salto Longo: Desconhecido|Esquerda/Direita: Manobra o aeromodelo
04:32=Baixa gravidade é mais efetiva que uma dieta!|Salte mais alto e por longas distâncias ou faça|seu inimigo voar mais longe!.|Ataque: Ativa
04:33=Algumas vezes você precisa de um pouco mais de efeito|para causar mais danos em seus ataques.|Ataque: Ativa
-04:34=Não me toque!|ataque: Ativa
-04:35=Algumas vezes o tempo parece passar muito rápido.|Ganhe alguns segundos para concluir sua jogada.|Ataque: Ativar
+04:34=Não me toque!|Ataque: Ativa
+04:35=Algumas vezes o tempo voa. Ganhe alguns|segundos para concluir sua jogada.|Ataque: Ativar
04:36=As vezes você não é tão bom de mira.|Use a tecnologia moderna para auxílio.|Ataque: Ativa
04:37=Não tema a luz do dia! Isto durará somente um turno|mas permitirá que você absorva os danos causados|a outros ouriços|Ataque: Ativa
04:38=O rifle sniper é uma arma devastadora do seu|arsenal, mas é inefetiva a curto alcance pois o dano|causado aumenta com a distancia do alvo.|Ataque: Dispara (duas vezes)
-04:39=Voe para outras partes do mapa usando o disco voador.|Este veículo difícil de manobrar permite chegar a quase|qualquer posição do campo de batalha|Ataque: Ativa|Cima/Esquerda/Direita: Desloca o veículo na direção|Salto Longo: Joga granadas ou armas similares
+04:39=Voe para outras partes do mapa usando o disco voador.|Este veículo difícil de manobrar permite chegar a quase|qualquer posição do campo de batalha|Ataque: Ativa|Acima/Esquerda/Direita: Desloca o veículo na direção|Salto Longo: Joga granadas ou armas similares
-04:40=Ponha um pouco de fogo no chão com esta garrafa|cheia de líquido inflamável.|Ataque: Quanto mais tempo, mais forte o lançamento
+04:40=Deixe o chão em chamas com esta garrafa|cheia de líquido inflamável.|Ataque: Quanto mais tempo, mais forte o lançamento
04:41=A natureza é mais poderosa que um disco voador.|O pássaro pode carregar seu ouriço e jogar ovos|no inimigo!|Ataque: Ativa e joga ovos|Cima/Esquerda/Direita: Bate asas na respectiva direção
-04:42=Utilize o gerador para criar portais, por onde você|poderá mover caixas, ouriços até disparar armas|através deles.|Ataque: Dispara o portal|Tab: Alterna a cor do portal.
-04:43=Execute a sonata Mortal de Bethoven, caindo dos |céus e destruindo tudo abaixo. Seu ouriço não|irá resistir ao esforço exigido!|Ataque: Venha do céu e destrua tudo abaixo
+04:42=Utilize o gerador para criar portais por onde você|poderá transportar caixas, ouriços e até armas|através deles.|Ataque: Dispara o portal|Tab: Alterna a cor do portal.
+04:43=Execute a Sonata Mortal de Bethoven, caindo dos |céus e destruindo tudo abaixo. Seu ouriço não|irá resistir ao esforço exigido!|Ataque: Venha do céu e destrua tudo abaixo
04:44=Isso não é somente um queijo, é uma arma biológioca!|Não causa muitos danos mas envenenará ouriços|próximos quando detonar|1-5: Ajusta o tempo de detonação|Ataque: Quanto mais tempo, mais forte o lançamento.
-04:45=Use as suas aulas de trigonometria nesta poderosa |arma. Ela irá disparar um raio em forma de seno.| Ataque: Disapara a arma de raio
+04:45=Use as suas aulas de trigonometria nesta poderosa |arma. Ela irá disparar um raio com caminho em seno|Mas tome cuidado, o coice é forte.|Ataque: Dispara a arma de raio
04:46=Que tal um churrasco? Use o lança chamas para|torrar o inimigo ou destruir o solo.|Ataque: Ativa o lança chamas
-04:47=Uma simples mina não basta? A mina aderente pode|ser arremessada e ficará aderida ao tocar no solo,| em um objeto, e até em um ouriço!|Ataque:Quanto mais tempo, mais forte o lançamento.
-04:48=Vamos a obra? Use esta arma para martelar|o inimigo no solo, ou através dele!!|Ataque: ativa o martelo
+04:47=Uma simples mina não basta? A mina aderente pode|ser arremessada e ficará aderida ao tocar no solo,|em um objeto, e até em um ouriço!|Ataque:Quanto mais tempo, mais forte o lançamento (duas vezes).
+04:48=Vamos a obra? Use esta arma para martelar|o inimigo no solo, ou através dele e tirando um terço da vida dele!|Ataque: Ativa
+04:49=Ressucite seus amigos, mas preste atenção|para não ressucitar seus inimigos!|Ataque: Mantenha pressionado para transferir|sua vida|Acima:Acelera a transferência de vida
; Game goal strings
05:00=Modos de Jogo
-05:01=As seguintes regras se aplicam
-05:02=Fortes: Proteja o seu forte, vença seus inimigos!
-05:03=Baixa Gravidade: Cuidado com seus passos
+05:01=As seguintes regras aplicam
+05:02=Fortes: Proteja o seu forte, destrua seus inimigos!
+05:03=Baixa Gravidade: Olhe seus passos
05:04=Invulnerabilidade: Ouriços são (quase) invulneráveis
05:05=Vampirismo: Ouriços serão curados pelos danos causados
05:06=Carma: Ouriços serão machucados pelos danos causados
@@ -350,3 +355,8 @@
05:13=Temporizador de mina: Minas detonarão imediatamente
05:14=Temporizador de mina: Minas detonarão em 0 - 3 segundos
05:15=Modificador de Dano: Todas as armas farão %1% danos
+05:16=A vida dos ouriços é reiniciada ao fim de cada turno
+05:17=Ouriços da IA renascem após morrerem
+05:18=Ataque ilimitado
+05:19=Armas são reiniciadas ao fim do turno
+05:20=Armas não são compartilhadas entre os ouriços
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/pt_PT.txt
--- a/share/hedgewars/Data/Locale/pt_PT.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/pt_PT.txt Mon Nov 15 12:37:39 2010 +0100
@@ -430,6 +430,7 @@
03:46=Labaredas enormes!
03:47=Cola-as onde achares mais útil!
03:48=Garantia vitalícia!
+03:49=Funciona tal como anunciado
; Weapon Descriptions (use | as line breaks)
04:00=Ataca os teus inimigos usando uma simples granada.|Explodirá quando o tempo chegar a zero.|1-5: Define o temporizador da granada|Ataque: Deixa premido para lançar com mais força
@@ -481,6 +482,7 @@
04:46=Cobre os teus inimigos com este viscoso e|flamejante liquido de aquecer o coração!|Ataque: Activar|Cima/Baixo: Apontar|Esquerda/Direita: Modificar a pressão
04:47=Duplica a diversão com estas duas minas autocolantes!|Utiliza-as para atacar ou defender. É contigo!|Ataque: Deixa pressionado para disparar mais longe
04:48=Porque é que têm as toupeiras de ser sempre as vitimas?|Dar marteladas em ouriços pode ser igualmente divertido!|Uma boa martelada rapidamente remove um terço da vida|de um ouriço e ainda o enterra no solo!|Ataque: Activar
+04:49=Ressuscita os teus amigos!|Mas cuidado, esta tecnica ressuscita também os teus enimigos.|Ataque: Deixa pressionado para ressuscitar lentamente|Up: Acelerar a ressureição
; Game goal strings
05:00=Modos de Jogo
@@ -499,3 +501,8 @@
05:13=Tempo das minas: As minas detonam instantaneamente
05:14=Tempo das minas: As minas detonam passado 0 - 3 segundos
05:15=Modificador de Dano: Todas as armas fazem %1% de dano
+05:16=A vida de todos ouriços é restaurada no final do turno
+05:17=Os ouriços do CPU são ressuscitados ao morrerem
+05:18=Ataques ilimitados
+05:19=O armamento é restaurado no final do turno
+05:20=O armamento não é partilhado entre ouriços
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/ru.txt
--- a/share/hedgewars/Data/Locale/ru.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/ru.txt Mon Nov 15 12:37:39 2010 +0100
@@ -1,4 +1,4 @@
-; Перевод сообщений на русский
+; Перевод сообщений на русский
00:00=Граната
00:01=Касетная бомба
@@ -185,7 +185,7 @@
02:09=%1 напортачил
02:09=Это был плохой выстрел, %1
02:09=%1 неосторожен с оружием
-02:09=Худший. Выстрел. Когда либо!
+02:09=Худший. Выстрел. Из всех!
02:09=Нет, нет, нет %1, стреляй по ВРАГУ!
02:09=%1 на шаг ближе к самоубийству
02:09=%1 помогает врагу
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/sk.txt
--- a/share/hedgewars/Data/Locale/sk.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/sk.txt Mon Nov 15 12:37:39 2010 +0100
@@ -45,7 +45,11 @@
00:42=Prenosné portálové zariadenie
00:43=Klavírový útok
00:44=Plynový granát
-00:45=Sínusová puška
+00:45=Sínusová puška (beta)
+00:46=Plameňomet
+00:47=Lepkavá mína
+00:48=Kladivo
+00:49=Oživovač
01:00=Do boja!
01:01=Remíza
@@ -61,6 +65,7 @@
01:11=Táto zbraň alebo nástroj zatiaľ nie je dostupný!
01:12=Posledné kolo pred Rýchlou smrťou!
01:13=Ešte %1 kolá do Rýchlej smrti!
+01:14=Priprav sa, %1!
; Správy o udalostiach
; Ježko (%1) zomrel
@@ -159,7 +164,7 @@
02:08=%1 si neverí
02:08=%1 je zbabelec
02:08=%1 čaká na rýchlu smrť
-02:08=%1 nie je bitkárom
+02:08=%1 nikdy nepatril k bitkárom
02:08=Sklamal si ma, %1
02:08=%1 má lepšie veci na práci
02:08=%1 zaspal
@@ -231,52 +236,67 @@
03:39=Pomôcka na presun
03:40=Zápalný granát
03:41=Skalný fanúšik škriekania
+03:42=Tu si urobím poznámku...
+03:43=Zahrať Beathovenovu smrteľnú sonátu
+03:44=Spotrebovať do: 1923
+03:45=Sila vedy
+03:46=Hot Hot Hot!
+03:47=Prilepte ich niekam šikovne!
+03:48=A je tu Hammer-time!
+03:49=Je dobrý na to, na čo si myslíte
; Popis zbraní (ako oddeľovač riadkov použite |)
-04:00=Zaútočte na vašich nepriateľov obyčajným granátom.|Vybuchne vtedy, keď vyprší časomiera.|1-5: Nastavenie časovača granátu|Útok: Držanie tlačidla zvyšuje silu hodu
-04:01=Zaútočte na vašich nepriateľov trieštivým granátom.|Vybuchne a rozpadne sa na menšie bomby,|keď vyprší časomiera.|1-5: Nastavenie časovača granátu|Útok: Držanie tlačidla zvyšuje silu hodu
-04:02=Zaútočte na vašich nepriateľov balistickou strelou,|ktorej dráha je ovplyvnená vetrom.|Útok: Držanie tlačidla zvyšuje silu
-04:03=Vypustite včelu naplnenú výbušninami,|ktorá je navádzaná na vybraný cieľ. Pre|vyššiu presnosť nepoužívajte plnú silu|Kurzor: Výber cieľa|Útok: Držanie tlačidla zvyšuje silu
-04:04=Zaútočte na vašich nepriateľov brokovnicou|s dvoma výstrelmi. Vďaka jej rozptylu nepotrebujete|zasiahnuť protivníkov priamym zásahom|Útok: Výstrel (viacnásobný)
-04:05=Rýchlo pod zem! Použite zbíjačku na vyvŕtanie|dieri v zemi a dosiahnutie ďalších miest.|Útok: Začatie alebo skončenie vŕtania
-04:06=Unudený? Útok nie je možný? Chcete ušetriť náboje?|Nie je problém! Stačí preskočiť ťah, zbabelec!|Útok: Ukončí ťah bez boja
-04:07=Zdolajte veľké vzdialenosti pomocou dobre|načasovaných výstrelov lana. Využite zotrvačnosť na posúvanie|ostatných ježkov alebo z výšky zhadzujte|bomby a iné zbrane|Útok: Vystrelenie alebo pustenie sa lana|Dlhý skok: Zhodenie granátov alebo podobných zbraní
-04:08=Udržujte nepriateľov v bezpečnej vzdialenosti|položením míny na rovinu alebo priamo pod nich.|Uistite sa, že ste v dostatočnej vzdialenosti, keď sa aktivujú!|Útok: Položí mínu na vašu aktuálnu pozíciu
-04:09=Nie ste si istý svojou muškou? Použite Desert Eagle,|ktorý má až štyri výstrely.|Útok: Výstrel (viacnásobný)
-04:10=Útok hrubou silou sa dá použiť vždy. Umiestnite|túto klasickú trhavinu vedľa vášho nepriateľa a vzdiaľte sa.|Útok: Položí mínu na vašu aktuálnu pozíciu
-04:11=Zbavte sa nepriateľských ježkov tak,|že ich odpálkujete mimo hranice mapy alebo do vody.|Alebo máte chuť svojim kamarátom poslať nejaké míny?|Útok: Odpálkuje čokoľvek, čo stojí pred vami
-04:12=Aby ste mohli použiť túto takmer smrtiacu|techniku bojového umenia musíte stáť blízko nepriateľa.|Útok: Vykoná Úder ohňa
-04:13=UNUSED
-04:14=Máte strach z výšok? Radšej si vezmite padák.|Sám sa otvorí, keď spadnete príliš hlboko|a uchráni vášho ježka pred zranením pádom.|Útok: Otvorenie padáku|Dlhý skok: Zhodenie granátov alebo podobných zbraní
-04:15=Privolajte leteckú podporu a zdecimujte|vašich nepriateľov bombardovaním.|Vľavo/Vpravo: Určenie smeru útoku|Kurzor: Výber cieľa bombardovania
-04:16=Privolajte leteckú podporu, ktorá do cieľovej|oblasti vypustí niekoľko mín.|Vľavo/Vpravo: Určenie smeru útoku|Kurzor: Výber cieľa útoku
-04:17=Hľadáte úkryt? Použitie lampu na vyhĺbenie|tunela do zeme, ktorá vám poskytne ochranu.|Útok: Začatie alebo skončenie kopania
-04:18=Potrebujete dodatočnú ochranu alebo chcete|zdolať prekážku? Umiestnite zopár trámov tam, kam sa vám to hodí.|Vľavo/Vpravo: Výber trámu|Kurzor: Umiestnenie kurzora na platnú pozíciu
-04:19=Ak je teleportovanie použité v správny okamih,|môže byť účinnejšie ako takmer všetky ostatné zbrane,|pretože vám umožní počas niekoľkých sekúnd|ochrániť ježkov pred nebezpečnými situáciami.|Kurzor: Výber cieľovej oblasti
-04:20=Umožní vám hrať aktuálny ťah s iným ježkom.|Útok: Povolenie prepínania ježkov
-04:21=Vystreľte projektil podobný granátu,|ktorý pri náraze vypustí viacero bômb.|Útok: Výstrel plnou silou
-04:22=Nielen pre Indiana Jonesa! Bič je užitočnou zbraňou v mnohých situáciach. Zvlášť|vtedy, ak chcete niekoho zhodiť z útesu.|Útok: Zasiahne čokoľvek, čo stojí pred vami
-04:23=Ak nemáte čo stratiť, toto sa môže hodiť.|Obetujte ježka jeho vystrelením vo vybranom smere. Počas|letu zraní všetko, čo mu stojí v ceste a nakoniec vybuchne.|Útok: Spustite devastujúci a smrteľný útok
-04:24=Všetko najlepšie k narodeninám! Vypustite túto tortu, nechajte ju prísť až|k vašim nepriateľom nech si užijú BOMBAstickú oslavu.|Torta je schopná prejsť takmer cez akýkoľvek terén,|ale takto môže vybuchnúť o niečo skôr.|Útok: Vypustite tortu alebo ju zastavte a nechajte vybuchnúť
-04:25=Použite túto maskovaciu súpravu, aby ste prinútili|nepriateľských ježkov skočiť smerom k vášmu ježkovi (do vody alebo priepasti).|Útok: Použije súpravu a skúsi zviesť iného ježka
-04:26=Hodí tento šťavnatý melón na vašich nepriateľov.|Po vypršaní časomiery sa rozpadne na niekoľko|vybuchujúcich kúskov.|1-5: Nastaví časovač melóna|Útok: Držanie tlačidla zvyšuje silu hodu
-04:27=Zošlite pekelné plamene na vašich súperov vďaka|tejto nepriateľskej výbušnine. Nezostaňte príliš blízko k explózii,|pretože malé plamienky môžu horieť dlhšie.|Útok: Držanie tlačidla zvyšuje silu hodu
-04:28=Chvíľku po vypustení tejto rakety sa začne|prevŕtavať do zeme a vybuchne vtedy, keď vyprší jej|časová poistka alebo sa objaví znova na povrchu.|Útok: Držanie tlačidla zvyšuje silu výstrelu
-04:29=Toto nie je nič pre malé deti! Loptičkový guľomet vypáli|množstvo malých farebných guličiek naplnených výbušninami.|Útok: Výstrel v plnej sile|Hore/Dole: Mierenie počas pálenia guličiek
-04:30=Privolajte leteckú podporu, ktorá spustí|silný napalmový útok. S dobrým mierením dokáže tento útok odstrániť veľké časti|krajiny vrátane ježkov, ktorý majú smolu v tom, že na nej stoja.|Vľavo/Vpravo: Určenie smeru útoku|Kurzor: Výber cieľovej oblasti
-04:31=Bezpilotný bombardér je ideálnou zbraňou|na pozbieranie krabíc alebo na zaútočenie ježkov,|ktorí sú príliš ďaleko. Buď ho navigujte priamo na nepriateľov|alebo najprv zhoďte zopár bômb.|Útok: Vypustenie lietadla alebo zhodenie bômb|Dlhý skok: Umožní vstup do boja valkýram|Hore/Dole: Navigovanie lietadla
-04:32=Nízka gravitácia je účinnejšia ako ktorákoľvek diéta!|Skáčte vyššie a ďalej alebo nechajte vašich|nepriateľov letieť ešte ďalej.|Útok: Aktivácia
-04:33=Niekedy všetko čo potrebujete je len o trošku väčšia sila,|aby ste spôsobili ešte väčšiu škodu.|Útok: Aktivácia
-04:34=Nedotýkaj sa ma!|Útok: Aktivácia
-04:35=Niekedy čas beží príliš rýchlo. Získajte zopár|sekúnd navyše, aby ste mohli dokončiť útok.|Útok: Aktivácia
-04:36=No, niekedy proste nemáte mušku. Zapnite si podporu mierenia,|ktorá podporuje najmodernejšie technológie.|Útok: Aktivácia
-04:37=Nebojte sa denného svsetla. Vydrží len jeden ťah,|ale umožní vám vstrebať škodu, ktorú spôsobíte iným ježkom.|Útok: Aktivácia
-04:38=Ostreľovačka dokáže byť najdrvivejšou zbraňou|v celom vašom arzenále, je však veľmi neefektívna|pre blízke ciele. Škoda, ktorú spôsobí sa zvyšuje so zvyšujúcou|sa vzdialenosťou k cieľu.|Útok: Výstrel (dvakrát)
-04:39=Preleťte na iné miesta mapy v lietajúcom tanieri.|Táto komplikovane sa ovládajúca pomôcka je schopná|vás preniesť na takmer akúkoľvek pozíciu na mape.|Útok: Aktivácia|Hore/Vľavo/Vpravo: Použiť silu v jednom smere|Dlhý skok: Zhodiť granáty alebo iné zbrane
-04:40=Podpáľte kúsok zeme použitím tejto fľaše naplnenej|zápalnou tekutinou.|Útok: Držanie tlačidla zvyšuje silu hodu
-04:41=Dôkaz, že príroda môže dokonca predčiť lietajúci tanier.|Vtáčisko dokáže niesť vášho ježka a znášať vajcia na vašich nepriateľov!|Útok: Aktivácia a zhadzovanie vajec|Hore/Vľavo/Vpravo: Mávanie krídiel v jednom smere
-04:42=OBROVSKÝ ÚSPECH|||(ale chýba text!)
-04:43=(chýba text)
+04:00=Zaútočte na vašich nepriateľov obyčajným granátom.|Vybuchne vtedy, keď vyprší časomiera.|1‐5: Nastavenie časovača granátu|Útok: Držanie tlačidla zvyšuje silu hodu|
+04:01=Zaútočte na vašich nepriateľov trieštivým|granátom. Vybuchne a rozpadne sa na menšie bomby,|keď vyprší časomiera.|1‐5: Nastavenie časovača granátu|Útok: Držanie tlačidla zvyšuje silu hodu|
+04:02=Zaútočte na vašich nepriateľov balistickou|strelou, ktorej dráha je ovplyvnená vetrom.|Útok: Držanie tlačidla zvyšuje silu|
+04:03=Vypustite včelu naplnenú výbušninami, ktorá je|navádzaná na vybraný cieľ. Pre vyššiu presnosť|nepoužívajte plnú silu|Kurzor: Výber cieľa|Útok: Držanie tlačidla zvyšuje silu|
+04:04=Zaútočte na vašich nepriateľov brokovnicou s dvoma|výstrelmi. Vďaka jej rozptylu nepotrebujete|zasiahnuť protivníkov priamym zásahom|Útok: Výstrel (viacnásobný)|
+04:05=Rýchlo pod zem! Použite zbíjačku na vyvŕtanie|dieri v zemi a dosiahnutie ďalších miest.|Útok: Začatie alebo skončenie vŕtania|
+04:06=Unudený? Útok nie je možný? Chcete ušetriť náboje?|Nie je problém! Stačí preskočiť ťah, zbabelec!|Útok: Ukončí ťah bez boja|
+04:07=Zdolajte veľké vzdialenosti pomocou dobre|načasovaných výstrelov lana. Využite zotrvačnosť|na posúvanie ostatných ježkov alebo z výšky|zhadzujte bomby a iné zbrane|Útok: Vystrelenie alebo pustenie sa lana Dlhý|skok: Zhodenie granátov alebo podobných zbraní|
+04:08=Udržujte nepriateľov v bezpečnej vzdialenosti|položením míny na rovinu alebo priamo pod nich.|Uistite sa, že ste v dostatočnej vzdialenosti, keď|sa aktivujú!|Útok: Položí mínu na vašu aktuálnu pozíciu|
+04:09=Nie ste si istý svojou muškou? Použite Desert|Eagle, ktorý má až štyri výstrely.|Útok: Výstrel (viacnásobný)|
+04:10=Útok hrubou silou sa dá použiť vždy. Umiestnite|túto klasickú trhavinu vedľa vášho nepriateľa a|vzdiaľte sa.|Útok: Položí mínu na vašu aktuálnu pozíciu|
+04:11=Zbavte sa nepriateľských ježkov tak, že ich|odpálkujete mimo hranice mapy alebo do vody. Alebo|máte chuť svojim kamarátom poslať nejaké míny?|Útok: Odpálkuje čokoľvek, čo stojí pred vami|
+04:12=Aby ste mohli použiť túto takmer smrtiacu techniku|bojového umenia musíte stáť blízko nepriateľa.|Útok: Vykoná Úder ohňa|
+04:13=UNUSED|
+04:14=Máte strach z výšok? Radšej si vezmite padák. Sám|sa otvorí, keď spadnete príliš hlboko a uchráni|vášho ježka pred zranením pádom.|Útok: Otvorenie padáku Dlhý skok: Zhodenie|granátov alebo podobných zbraní|
+04:15=Privolajte leteckú podporu a zdecimujte vašich|nepriateľov bombardovaním.|Vľavo/Vpravo: Určenie smeru útoku|Kurzor: Výber cieľa bombardovania|
+04:16=Privolajte leteckú podporu, ktorá do cieľovej|oblasti vypustí niekoľko mín.|Vľavo/Vpravo: Určenie smeru útoku|Kurzor: Výber cieľa útoku|
+04:17=Hľadáte úkryt? Použitie lampu na vyhĺbenie tunela|do zeme, ktorá vám poskytne ochranu.|Útok: Začatie alebo skončenie kopania|
+04:18=Potrebujete dodatočnú ochranu alebo chcete zdolať|prekážku? Umiestnite zopár trámov tam, kam sa vám|to hodí.|Vľavo/Vpravo: Výber trámu|Kurzor: Umiestnenie kurzora na platnú pozíciu|
+04:19=Ak je teleportovanie použité v správny okamih,|môže byť účinnejšie ako takmer všetky ostatné|zbrane, pretože vám umožní počas niekoľkých sekúnd|ochrániť ježkov pred nebezpečnými situáciami.|Kurzor: Výber cieľovej oblasti|
+04:20=Umožní vám hrať aktuálny ťah s iným ježkom.|Útok: Povolenie prepínania ježkov|
+04:21=Vystreľte projektil podobný granátu, ktorý pri|náraze vypustí viacero bômb.|Útok: Výstrel plnou silou|
+04:22=Nielen pre Indiana Jonesa! Bič je užitočnou|zbraňou v mnohých situáciach. Zvlášť vtedy, ak|chcete niekoho zhodiť z útesu.|Útok: Zasiahne čokoľvek, čo stojí pred vami|
+04:23=Ak nemáte čo stratiť, toto sa môže hodiť. Obetujte|ježka jeho vystrelením vo vybranom smere. Počas|letu zraní všetko, čo mu stojí v ceste a nakoniec|vybuchne.|Útok: Spustite devastujúci a smrteľný útok|
+04:24=Všetko najlepšie k narodeninám! Vypustite túto|tortu, nechajte ju prísť až k vašim nepriateľom|nech si užijú BOMBAstickú oslavu. Torta je schopná|prejsť takmer cez akýkoľvek terén, ale takto môže|vybuchnúť o niečo skôr.|Útok: Vypustite tortu alebo ju zastavte a nechajte|vybuchnúť|
+04:25=Použite túto maskovaciu súpravu, aby ste prinútili|nepriateľských ježkov skočiť smerom k vášmu|ježkovi (do vody alebo priepasti).|Útok: Použije súpravu a skúsi zviesť iného ježka|
+04:26=Hodí tento šťavnatý melón na vašich nepriateľov.|Po vypršaní časomiery sa rozpadne na niekoľko|vybuchujúcich kúskov.|1‐5: Nastaví časovač melóna|Útok: Držanie tlačidla zvyšuje silu hodu|
+04:27=Zošlite pekelné plamene na vašich súperov vďaka|tejto nepriateľskej výbušnine. Nezostaňte príliš|blízko k explózii, pretože malé plamienky môžu|horieť dlhšie.|Útok: Držanie tlačidla zvyšuje silu hodu|
+04:28=Chvíľku po vypustení tejto rakety sa začne|prevŕtavať do zeme a vybuchne vtedy, keď vyprší|jej časová poistka alebo sa objaví znova na|povrchu.|Útok: Držanie tlačidla zvyšuje silu výstrelu|
+04:29=Toto nie je nič pre malé deti! Loptičkový guľomet|vypáli množstvo malých farebných guličiek|naplnených výbušninami.|Útok: Výstrel v plnej sile|Hore/Dole: Mierenie počas pálenia guličiek|
+04:30=Privolajte leteckú podporu, ktorá spustí silný|napalmový útok. S dobrým mierením dokáže tento|útok odstrániť veľké časti krajiny vrátane ježkov,|ktorý majú smolu v tom, že na nej stoja.|Vľavo/Vpravo: Určenie smeru útoku|Kurzor: Výber cieľovej oblasti|
+04:31=Bezpilotný bombardér je ideálnou zbraňou na|pozbieranie krabíc alebo na zaútočenie ježkov,|ktorí sú príliš ďaleko. Buď ho navigujte priamo na|nepriateľov alebo najprv zhoďte zopár bômb.|Útok: Vypustenie lietadla alebo zhodenie bômb Dlhý|skok: Umožní vstup do boja valkýram|Hore/Dole: Navigovanie lietadla|
+04:32=Nízka gravitácia je účinnejšia ako ktorákoľvek|diéta! Skáčte vyššie a ďalej alebo nechajte vašich|nepriateľov letieť ešte ďalej.|Útok: Aktivácia|
+04:33=Niekedy všetko čo potrebujete je len o trošku|väčšia sila, aby ste spôsobili ešte väčšiu škodu.|Útok: Aktivácia|
+04:34=Nedotýkaj sa ma!|Útok: Aktivácia|
+04:35=Niekedy čas beží príliš rýchlo. Získajte zopár|sekúnd navyše, aby ste mohli dokončiť útok.|Útok: Aktivácia|
+04:36=No, niekedy proste nemáte mušku. Zapnite si|podporu mierenia, ktorá podporuje najmodernejšie|technológie.|Útok: Aktivácia|
+04:37=Nebojte sa denného svetla. Vydrží len jeden ťah,|ale umožní vám vstrebať škodu, ktorú spôsobíte|iným ježkom.|Útok: Aktivácia|
+04:38=Ostreľovačka dokáže byť najdrvivejšou zbraňou v|celom vašom arzenále, je však veľmi neefektívna|pre blízke ciele. Škoda, ktorú spôsobí sa zvyšuje|so zvyšujúcou sa vzdialenosťou k cieľu.|Útok: Výstrel (dvakrát)|
+04:39=Preleťte na iné miesta mapy v lietajúcom tanieri.|Táto komplikovane sa ovládajúca pomôcka je schopná|vás preniesť na takmer akúkoľvek pozíciu na mape.|Útok: Aktivácia|Hore/Vľavo/Vpravo: Použiť silu v jednom smere Dlhý|skok: Zhodiť granáty alebo iné zbrane|
+04:40=Podpáľte kúsok zeme použitím tejto fľaše naplnenej|zápalnou tekutinou.|Útok: Držanie tlačidla zvyšuje silu hodu|
+04:41=Dôkaz, že príroda môže dokonca predčiť lietajúci|tanier. Vtáčisko dokáže niesť vášho ježka a znášať|vajcia na vašich nepriateľov!|Útok: Aktivácia a zhadzovanie vajec|Hore/Vľavo/Vpravo: Mávanie krídiel v jednom smere|
+04:42=Toto prenosné portálové zariadenie je schopné|okamžite preniesť vás, vašich nepriateľov alebo|zbrane medzi miestami na mape. Použite ho rozvážne|a vaše ťaženie bude... OBROVSKÝM ÚSPECHOM|Útok: Vystrelenie portálu|Prepnutie: Rotovanie portálových farieb|
+04:43=Premeňte svoj debut v oblasti hudby na explozívny|úspech! Spustite klavír z nebies, ale pozor...|niekto naň musí hrať a to vás bude stáť život!|Kurzor: Výber cieľovej oblasti|F1‐F9: Hra na klavíri|
+04:44=Toto nie je obyčajný syr, je to biologická zbraň!|Nespôsobí veľkú škodu po tom, ako vyprší|časomiera, ale rozhodne otrávi každého, kto má tú|smolu, že ho zasiahne zápach!|1‐5: Nastavenie časomiery|Útok: Držanie tlačidla zvyšuje silu hodu|
+04:45=Všetky tie hodiny fyziky sa nakoniec vyplatili,|pošlite devastujúcu sínusovú vlnu na vašich|nepriateľov. Pozor, táto zbraň dáva slušný spätný|náraz. (Táto zbraň je nekompletná)|Útok: Výstrel|
+04:46=Pokryte vašich nepriateľov prskajúcim kvapkajúcim|plameňom. Zahreje aj pri srdci!|Útok: Aktivovanie|Hore/Dole: Mierenie počas používania|Vľavo/Vpravo: Regulácia sily|
+04:47=Dvojnásobná radosť s dvoma ostnatými,|prikrádajúcimi sa, lepkavými mínami. Pripravte|reťazovú reakciu alebo sa ochráňte (alebo oboje|naraz!)|Útok: Podržte dlhšie pre vyššiu silu výstrelu|(dvakrát)|
+04:48=Prečo si vylievať svoj hnev len na krtkoch?|Búchanie po ježkoch vie byť rovnako zábavné! Dobrá|rana týmto kladivom vezme ježkovi tretinu jeho|zdravia a zarazí ho do zeme.|Útok: Aktivovanie|
+04:49=Oživte vašich priateľov!|Ale pozor, že táto zbraň oživí aj vašich nepriateľov.|Útok: Pre pomalé oživovanie držte útok stlačený|Hore: Urýchlenie oživovania
+
; Reťazce pre ciele hry
05:00=Herné režimy
@@ -295,3 +315,8 @@
05:13=Časovače mín: Míny detonujú okamžite
05:14=Časovače mín: Míny detonujú po 0-3 sekundách
05:15=Modifikátor škody: Všetky zbrane spôsobia škodu %1%
+05:16=Na konci každého ťahu je zdravie všetkých ježkov resetované
+05:17=Počítačoví ježkovia po smrti ožijú
+05:18=Neobmedzené útoky
+05:19=Zbrane sú na konci ťahu resetované
+05:20=Zbrane nie sú zdieľané ježkami
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/sv.txt
--- a/share/hedgewars/Data/Locale/sv.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/sv.txt Mon Nov 15 12:37:39 2010 +0100
@@ -1,7 +1,7 @@
; Swedish locale
00:00=Granat
-00:01=Splitterbomb
+00:01=Splittergranat
00:02=Raketgevär
00:03=Målsökande bi
00:04=Hagelgevär
@@ -49,6 +49,7 @@
00:46=Eldkastare
00:47=Fästande mina
00:48=Hammare
+00:49=Återuppliva
01:00=Nu kör vi!
01:01=Oavgjort
@@ -127,6 +128,8 @@
02:00=%1 har kolat vippen
02:00=%1 har trillat av pinn
02:00=%1 har kastat in handduken
+02:00=%1 har gått vidare
+02:00=Vi kommer alltid att minnas dig, %1
; Hog (%1) drowned
02:01=%1 leker ubåt!
@@ -139,14 +142,14 @@
;02:01=%1 forgot his armbands
02:01=%1 borde verkligen ha tagit simlektioner
02:01=%1 lämnade sin surfingbräda hemma
-;02:01=%1 is washed up
+02:01=%1 är nu ren
02:01=%1 är en dyngsur igelkott
02:01=%1 glömde att ta med sin flytväst
;02:01=%1 goes splish splash splish
02:01=%1 sover med fiskarna
02:01=%1 tycker vattenfysiken suger i det här spelet
02:01=%1 ser törstig ut
-;02:01=the sea claims %1
+02:01=Havet tar %1 i besittning
02:01=%1 är förlorad till havs
02:01=%1 borde ha tagit med sig sin dykarutrustning
02:01=%1 blir begraven till havs
@@ -162,12 +165,12 @@
02:01=%1 härmar en död fisk
02:01=Du spolades i alla fall inte ner i toaletten, %1
02:01=Sonic kunde inte simma, och det kunde inte %1 heller
-;02:01=%1 wants to play Ecco the dolphin
+02:01=%1 vill leka Ecco the dolphin
02:01=%1 har gått för att besöka Aquaria
02:01=%1 har funnit den förlorade staden Atlantis
02:01=%1 siktar på huvudrollen i Bioshock 3
02:01=Du borde träna på ditt hundsim, %1
-;02:01=%1 should have brought a jet ski
+02:01=%1 skulle ha tagit med sig vattenskidor
02:01=%1 gillar inte vattensporter
02:01=%1 blåser för alltid bubblor
02:01=%1 saknar en flotte
@@ -178,14 +181,18 @@
02:01=%1 är blöt, blöt, blöt
;02:01=%1 får sin bläckpenna blöt
;02:01=It's Davy Jones' locker for %1
+02:01=%1 tänkte inte på vattnet
+02:01=%1 ville slippa dö synligt
+02:01=%1 tog inte med någon båt
+02:01=%1 lämnar oss för havet
; Round starts
02:02=Nu kör vi!
02:02=Laddad och klar!
;02:02=Let's get ready to rumble!
;02:02=Let's get it on!
-;02:02=Let's get this party started
-;02:02=Last hog standing wins
+02:02=Nu börjar festen!
+02:02=Sista igelkotten kvar vinner!
;02:02=Let's go!
02:02=Nu rockar vi!
;02:02=Let's jam!
@@ -233,6 +240,10 @@
;02:02=Bring it to them!
02:02=Ha ingen rädsla!
;02:02=Be brave and conquer
+02:02=Låt spelet börja!
+02:02=Siste man vinner!
+02:02=Ooh, det börjar!
+02:02=Inga mesar tillåtna
; Round ends (win; unused atm)
02:03=...
@@ -257,6 +268,8 @@
02:05=Korrekt dosering: så många du kan hitta!
02:05=Angelägen leverans
02:05=Proviant!
+02:05=Ta den medans du kan!
+02:05=Det mest effektiva botemedlet du kan hitta!
; New ammo crate
02:06=Mer vapen!
@@ -269,7 +282,7 @@
02:06=En present!
;02:06=Specialleverans!
02:06=Det var en mardröm att få igenom det här genom tullen
-02:06=Destruktiva leksaker från himmelen
+02:06=Destruktiva leksaker från himlen
02:06=Varning, brandfarligt!
02:06=Ta den eller spräng den, valet är ditt
;02:06=Goodies!
@@ -281,7 +294,9 @@
02:06=Vapen inkommandes
02:06=Låt inte fienden ta den!
02:06=Gnistrande nya leksaker!
-02:06=En myskisk låda!
+02:06=En mystisk låda!
+02:06=Låt inte dina motståndare få den!
+02:06=Var försiktig med den här
; New utility crate
02:07=Verktygsdags!
@@ -298,7 +313,7 @@
; Hog (%1) skips his turn
02:08=%1 är såååå tråkig...
-;02:08=%1 couldn't be bothered
+02:08=%1 brydde sig inte
02:08=%1 är en lat igelkott
02:08=%1 är tanklös
02:08=%1 gav upp
@@ -329,10 +344,16 @@
02:08=Sluta slösa på vår tid, %1
02:08=Jag är besviken på dig, %1
02:08=Kom igen, du kan göra bättre än så, %1
-;02:08=%1's will has broken
+02:08=%1s vilja är borta
02:08=%1 har tydligen bättre saker för sig
02:08=%1 är förstenad av rädsla
02:08=%1 har somnat
+02:08=%1 glömde att skjuta först
+02:08=%1 verkar inte vara så kreativ
+02:08=Var inte så tråkig, %1!
+02:08=Hade du inget bättre att komma med, %1?
+02:08=Du borde byta karriär om du ska hålla på så, %1
+02:08=Var det allt?
; Hog (%1) hurts himself only
02:09=%1 borde öva sitt sikte!
@@ -362,13 +383,18 @@
02:09=%1 är klumpig
02:09=%1 visar fienden vad han kan
02:09=%1 kan inte förväntas vara perfekt hela tiden
-;02:09=Don't worry %1, pobody's nerfect
+02:09=Oroa dig inte, %1, inngen ärperfekt
02:09=%1 gjorde det där helt med flit
02:09=Jag skvallrar inte om du inte gör det, %1
02:09=Vad pinsamt!
02:09=Jag är säker på att ingen såg det där, %1
;02:09=%1 needs to review his field manual
02:09=%1s vapen krånglade uppenbarligen
+02:09=%1 borde öva mer
+02:09=%1 råkade visst trycka av för tidigt
+02:09=Håll %1 borta från det där vapnet!
+02:09=Inte ditåt, %1!
+02:09=Haha, såg ni det där?
; Hog shot an home run (using the bat and another hog)
02:10=Frivarv!
@@ -380,6 +406,8 @@
02:11=%1 verkar vara för upptagen för att spela
;02:11=Beam him up, Scotty!
02:11=%1 måste gå
+02:11=Lämna oss inte, %1!
+02:11=%1 fegade ur
; Weapon Categories
03:00=Tidsinställd granat
@@ -432,10 +460,11 @@
03:46=Hett Hett Hett!
03:47=Fäst de här på ett användbart ställe!
03:48=Dags att banka järnet!
+03:49=Gör det du tror
; Weapon Descriptions (use | as line breaks)
04:00=Attackera fienden med en enkel granat.|Exploderar när tiden når noll.|1-5: Ställ in granatens tid|Attack: Håll ner för att kasta med mer kraft
-04:01=Attackera fienden med en splitterbomb.|Delas upp i små bomber när tiden når noll.|1-5: Ställ in granatens tid|Attack: Håll ner för att kasta med mer kraft
+04:01=Attackera fienden med en splittergranat.|Delas upp i små bomber när tiden når noll.|1-5: Ställ in granatens tid|Attack: Håll ner för att kasta med mer kraft
04:02=Attackera fienden med en projektil som kan|påverkas av vinden.|Attack: Håll ner för att skjuta med mer kraft
04:03=Avfyra ett explosivt bi som låser sig på det valda|målet. Öka precisionen genom att inte skjuta med|full kraft.|Markör: Välj mål|Attack: Håll ner för att skjuta med mer kraft
04:04=Attackera fienden med ett hagelgevär med två|skott. Tack vare sin spridning behöver du inte|träffa direkt för att skada motståndarna.|Attack: Skjut (flera gånger)
@@ -483,6 +512,7 @@
04:46=Täck dina fiender med ett fräsande eldhav.|Hjärtvärmande!|Attack: Aktivera|Upp/Ner: Fortsätt sikta|Vänster/Höger: Justera kraft
04:47=Det är dubbelt så roligt med två farliga, fantastiska,|fästande minor. Skapa en kedjereaktion eller försvara|dig själv (eller både och!)|Attack: Håll ner för att skjuta med mer kraft (två gånger)
04:48=Varför ska mullvadarna få all misshandel? Att|drämma till en igelkott kan vara minst lika roligt!|Ett rejält slag med den här hammaren kan skala|av en tredjedel av en igelkotts hälsa och slå ner|dem i marken.|Attack: Aktivera
+04:49=Återuppliva dina vänner!|Men tänk på att du också återupplivar dina fiender.|Attack: Håll inne för att återuppliva långsamt|Upp: Accelerera återupplivning
; Game goal strings
05:00=Spellägen
@@ -501,4 +531,8 @@
05:13=Mintider: Minor detoneras direkt
05:14=Mintider: Minor detoneras efter 0 - 3 sekunder
05:15=Skademängd: Alla vapen gör %1% skada
-
+05:16=Hälsa för alla igelkottar återställs efter varje tur
+05:17=Datorstyrda igelkottar kommer tillbaka när de dör
+05:18=Obegränsade attacker
+05:19=Vapen nollställs när turen är över
+05:20=Igelkottar delar inte på vapnen
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Locale/zh_CN.txt
--- a/share/hedgewars/Data/Locale/zh_CN.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Locale/zh_CN.txt Mon Nov 15 12:37:39 2010 +0100
@@ -1,6 +1,6 @@
-; Simplified Chinese locale
+; Simplified Chinese locale, Translated by Tonghuix (tonghuix@gmail.com) 21 Oct 2010
-00:00=手榴弹
+00:00=手榴蛋蛋
00:01=集束炸弹
00:02=反坦克火箭筒
00:03=归巢的蜜蜂
@@ -12,9 +12,9 @@
00:09=沙漠之鹰
00:10=炸药
00:11=球棒
-00:12=升龙拳
+00:12=喔嘻嘻呦拳
00:13=秒
-00:14=空降
+00:14=降落伞
00:15=空袭
00:16=地雷空袭
00:17=喷灯
@@ -25,7 +25,7 @@
00:22=鞭子
00:23=神风特工队
00:24=蛋糕
-00:25=引诱
+00:25=色诱
00:26=西瓜炸弹
00:27=地狱礼花
00:28=钻头火箭
@@ -56,242 +56,244 @@
01:03=音量 %1%
01:04=暂停
01:05=确定要退出? (是Y/否Esc)
-01:06=死亡模式!
+01:06=突然死亡模式!
01:07=%1 剩余
01:08=燃料
01:09=同步中...
01:10=使用本工具不会结束回合!
01:11=您还不能用它!
-01:12=死亡模式前最后一回合!
+01:12=突然死亡模式前最后一回合!
01:13=%1 回合倒计时!
01:14=预备上, %1!
; Event messages
; Hog (%1) died
; 02:00=%1 has kicked the bucket!
-02:00=%1 离去!
+02:00=%1踢到了春哥的腿!
; 02:00=%1 has seen the light!
-02:00=%1 目睹圣光降临!
+02:00=%1看到了小野妹子在向他招手!
; 02:00=%1 never saw that coming!
-02:00=%1 既不得知,死有何苦!
+02:00=阿西BUG!%1被人暗算了!
; 02:00=%1 waves goodbye!
-02:00=%1 向大家挥手道别。
+02:00=%1我嘞个去!哪个混蛋竟用这个绝招!
; 02:00=%1 has gone to a better place!
-02:00=%1 去了极乐世界!
+02:00=%1:你竟然敢背叛组织!
; 02:00=%1 meets his maker!
-02:00=%1 去见造物主了!
+02:00=我嘞个去!这货不是%1!这货不是%1!
; 02:00=%1 can hang on no longer!
-02:00=%1 再也受不了了!
+02:00=真悲剧%1平田君(头顶内裤的哥们)!
; 02:00=%1 has done his duty!
-02:00=%1 完成了他的使命!
+02:00=%1再也不会蛋疼了!
; 02:00=%1 makes the ultimate sacrifice!
-02:00=%1 做了最大的牺牲!
+02:00=%1:剩下的哥们,加嘞个油!!
; 02:00=%1 departs this mortal coil!
-02:00=%1 摆脱了躯壳的束缚!
+02:00=%1想玩“移形幻影”,失败了!
; 02:00=%1 makes like a tree and leaves!
-02:00=%1 叶落归根。
+02:00=%1啊~内裤!我这辈子值啦!~
; 02:00=%1 has timed out!
-02:00=%1 大限已至。
+02:00=%1的人生杯具了
; 02:00=%1 says peace out!
-02:00=%1 悄然离场了。
+02:00=%1中了[喔嘻嘻呦拳]。。。这辈子值了!
; 02:00=%1 will be fondly remembered!
-02:00=%1 永远活在我们心中!
+02:00=不嘞个是吧!%1竟然会死!
; 02:00=%1 has an aneurysm!
-02:00=%1 不治而亡。
+02:00=湿父,让%1起死回生吧!
; 02:00=%1 leaves behind a wife and child
-02:00=%1 留下一家孤儿寡母。
+02:00=%1 留下一家孤儿寡母。。。
; 02:00=%1 has launched his last bazooka
-02:00=%1 发射了最后一发火箭弹
+02:00=%1发射了最后一发火箭弹
; 02:00=%1 has tossed his last grenade
-02:00=%1 扔出了最后一枚手榴弹
+02:00=%1扔出了最后一枚手榴弹
; 02:00=%1 has baked his last cake
-02:00=%1 烘烤了最后一块蛋糕
+02:00=%1烘烤了最后一块蛋糕
; 02:00=%1 has swung on his last rope
-02:00=%1 最后一次甩出了绳索
+02:00=%1甩出了最后一根绳索
; 02:00=%1 has called his last airstrike
-02:00=%1 最后一次呼叫空袭
+02:00=%1呼叫了最后一次空袭
; 02:00=%1 has pumped his last shotgun
-02:00=%1 最后一次抽出了霰弹枪
+02:00=%1抽出了最后一把霰弹枪
; 02:00=%1 has thrown his last melon
-02:00=%1 最后一次扔出了西瓜炸弹
+02:00=%1扔出了最后一个西瓜炸弹
; 02:00=%1 has drawn his last deagle
-02:00=%1 最后一次拔出了沙鹰
+02:00=%1拔出了最后一把沙鹰
; 02:00=%1 took one shot too many
-02:00=%1 挨了太多枪了
+02:00=%1好像看到那谁家的小谁了~~
; 02:00=%1 could really have used a health crate
-02:00=%1 真该用下医疗包的
+02:00=%1还没打倒“肉山大魔王”呢~
; 02:00=%1 has gone to play a better game
-02:00=%1 去玩更有意思的游戏去了
+02:00=徘句之神一屁股糊%1熊脸上了!
; 02:00=%1 has ragequit life
-02:00=%1 拔网线了!
+02:00=%1还没看到这个游戏的主线目标呢!
; 02:00=%1 fails
-02:00=%1 失败了
+02:00=洒家,%1还会再来的!
; 02:00=Poor poor %1...
-02:00=可怜的 %1...
+02:00=%1的人生简直就是一茶几(杯具+餐具)
; 02:00=%1 prefers wormux
-02:00=%1 更喜欢 Wormux
+02:00=%1老湿,这游戏不给力啊!
; 02:00=%1 has been blocking shots with his face
-02:00=%1 勇于面对,结果相当惨烈
+02:00=%1杯具啊!菊花要爆啦!
; 02:00=%1 is a hero amongst me...err..hogs
-02:00=%1 是我的英雄!
+02:00=我嘞个去!竟然有人爆%1的菊花!
; 02:00=%1 finds his place in Valhalla
-02:00=%1 在勇者纪念碑上找到了位置
+02:00=好好干吧!要不然,过世的%1会很伤心的!~
; 02:00=%1 has left the building
-02:00=%1 离开了这间屋子
+02:00=不要破坏团队合作!否则过世的%1会很伤心的!~
; 02:00=%1 goes the way of the dinosaurs
-02:00=%1 步上了恐龙的道路
+02:00=%1又开始蛋疼了!
; 02:00=%1 brings hedgehogs one step closer to extinction
-02:00=%1 让刺猬物种灭绝更近了一步
+02:00=我嘞个擦!%1要让刺猬灭绝了
; 02:00=%1 brings a tear to my eye
-02:00=%1 带走了我一滴眼泪
+02:00=我擦嘞!%1死的太突然那了!
; 02:00=%1 is an ex-hog
-02:00=%1 生前是一只刺猬
+02:00=%1的必杀技是——变成食物——开玩笑,呵呵
; 02:00=%1 is pushing up the daisies
-02:00=%1 被菊花簇拥
+02:00=%1诅咒害他那人蛋疼菊紧!
; 02:00=%1 has ceased to be
-02:00=%1 被“删除”了
+02:00=%1:啊呀!这种插法,为湿多疼啊!~
; 02:00=Say goodbye to %1
-02:00=对 %1 说再见
+02:00=比任何人都想去天竺的八戒,已经魂归天际啦!
; 02:00=No hope left for %1
-02:00=%1 没有希望了
+02:00=坑爹呢!为什么残念的%1会死!~
; 02:00=%1 faces the final curtain
-02:00=%1 面容被落下的帷幕遮住了
+02:00=%1:我杀了你们的朋友,现在搞我是吧!
; 02:00=Smoke 'em if you got 'em, %1
-02:00=%1 抓紧时间实现你最后的愿望吧
+02:00=%1心目中的世界观根本就是个BUG啊!
; 02:00=%1 suffers a Spontaneous Massive Existence Failure
-02:00=%1 遭遇了自发性大规模故障(出自星河舰队)
+02:00=%1休斯顿,我们出问题了!(出自阿波罗13)
; 02:00=%1 has passed on
-02:00=%1 走了
+02:00=%1被天朝“墙”了!
; 02:00=%1 is stone dead
-02:00=%1 永垂不朽
+02:00=%1被凤姐吻的不行了!~
; 02:00=%1 is no more
-02:00=%1 不在了
+02:00=春哥需要你,%1!
; 02:00=%1 has expired
-02:00=%1 已故
+02:00=%1被光腚总菊河蟹了!~~
; 02:00=Bereft of life, %1 rests in peace
-02:00=%1 安详地躺着
+02:00=%1说,这位玩家的表情太猥琐了
; 02:00=%1 joins the choir invisible
-02:00=%1 加入了隐形唱诗班
+02:00=%1用尽了全部的查克拉~
; 02:00=Farewell %1, we hardly knew ye!
-02:00=%1, 永别了,我们还不认识你呢!
+02:00=%1后悔没信春哥!
; 02:00=%1 had a low tolerance for being shot
-02:00=%1 抗打击能力不足
+02:00=%1想说,他一直暗恋凤姐很久了!~
; 02:00=%1 could have used an extra life
-02:00=%1 本该用另一条命的
+02:00=下一局,%1一定会妥妥儿的!~噢嗬!
; 02:00=Is there a doctor in the house?
-02:00=有医生吗?
+02:00=擦!擦!玩儿蛋去!
; Hog (%1) drowned
; 02:01=%1 plays submarine!
-02:01=%1 以为自己是潜水艇!
+02:01=%1感觉自己内心清澈,心静如水~
; 02:01=%1 mimics the Titanic!
-02:01=%1 学泰坦尼克去了!
+02:01=%1想看波~~波~~
; 02:01=%1 swims like a stone!
-02:01=%1 石沉大海!
+02:01=%1想在水下淫出一首好湿!
;02:01=%1 checks out the deep end
-02:01=%1 说要去检查深水区
+02:01=%1说凤姐在水下等她呢。。。
;02:01=%1 goes glug glug glug
-02:01=%1 :“咕噜咕噜咕噜……”
-;02:01=%1 goes splash
-02:01=%1 栽入水花里
-;02:01=%1 forgot his armbands
-02:01=%1 忘记了戴臂章
+02:01=%1 :菠萝菠萝蜜得隆东强~
+; 02:01=%1 goes splash
+02:01=芭蕉桑~你快醒醒吧~
+; 02:01=%1 forgot his armbands
+02:01=阿西BUG~!%1杯具了!
;02:01=%1 really should have taken swimming lessons
-02:01=%1 真的该去学游泳的
+02:01=%1的遗言:信春哥得永生!
;02:01=%1 left his surfboard at home
-02:01=%1 把救生圈忘家了
+02:01=不给力啊!老湿!
;02:01=%1 is washed up
-02:01=%1 冲走了
+02:01=%1庆幸自己没掉马桶里!
;02:01=%1 is one soggy hog
-02:01=%1 湿掉了
+02:01=%1生前是个拳湿~~
;02:01=%1 forgot to bring his life jacket
-02:01=%1 忘记带他的救生衣了
+02:01=我擦泪!下水前%1忘了脱内裤!
;02:01=%1 goes splish splash splish
-02:01=%1 实现了水上飘,落水,身后一片水花荡漾
+02:01=我嘞个去!%1怎么穿着内裤就掉下去了~
;02:01=%1 is sleeping with the fishes
-02:01=%1 将会和鱼睡在一起
+02:01=%1看到美人鱼在脱衣服~
;02:01=%1 thinks the water physics suck in this game
-02:01=%1 认为这游戏的设定糟糕透了
+02:01=%1认为这次元还真是个不毛之地啊!
;02:01=%1 looks thirsty
-02:01=%1 好像很渴
+02:01=这次元怎么连根毛都没有~
;02:01=the sea claims %1
-02:01=大海吞没了 %1
+02:01=雅买歹~~(河蟹)
;02:01=%1 is lost at sea
-02:01=%1 在海上迷失了
+02:01=%1宁愿自我河蟹~~
;02:01=%1 should have brought his scuba gear
-02:01=%1 应该要带潜水工具的
+02:01=水表示鸭梨很大~~
;02:01=%1 gets a burial at sea
-02:01=%1 享受到了海葬待遇
+02:01=%1,春哥要你
;02:01=%1 has that sinking feeling
-02:01=%1 觉得自己在下沉
+02:01=%1曾哥在水下唱“狮子座”
;02:01=%1 is practicing his backstroke
-02:01=%1 终于能实践自己的游泳理论了
+02:01=%1的内裤是粉红色的哦!
;02:01=%1 goes in search of the Titanic
-02:01=%1 去泰坦尼克号寻宝了
+02:01=水下竟然有神兽!
;02:01=%1 is not Jesus
-02:01=很遗憾 %1 不是耶稣
+02:01=%1正在观看河蟹狂吃草泥马~
;02:01=%1 is finding Nemo
-02:01=%1 找尼莫去了
+02:01=%1觉得陆地上房价太高了
;02:01=%1 springs a leak
-02:01=%1 钻入了一个水洼
+02:01=%1表示鸭梨很大~
+;02:01=%1 has tha
+02:01=%1想去看凤姐的内裤颜色~
;02:01=You've gotta wonder how many hogs are down there
-02:01=你会知道海底还会有多少同伴的
+02:01=你会知道出师未捷身先死的八戒在下面等你呢
;02:01=%1 makes the ocean slightly higher
02:01=%1 让海平面高了那么一点, 就一点
;02:01=%1 didn't enlist in the Navy
-02:01=很明显 %1 没在海军服役过
+02:01=%1害怕城管来抓他~!
;02:01=%1 is doing his impersonation of a dead fish
-02:01=%1 其实是在模仿死鱼啦
+02:01=菲律宾警察营救%1失败~
;02:01=At least you didn't go down the toilet, %1
-02:01=还好 %1 你不是掉进了厕所
+02:01=%1撅着个腚飞起来啦~
;02:01=Sonic couldn't swim and neither can %1
-02:01=和索尼克一样, %1 也不会游泳的
+02:01=海底有个如意按摩棒~~
;02:01=%1 wants to play Ecco the dolphin
-02:01=%1 想玩海底漫步
+02:01=%1想当水下波霸~!
;02:01=%1 has gone to visit Aquaria
-02:01=%1 去水族馆报到了
+02:01=%1被气得忿忿儿的!
;02:01=%1 has found the lost city of Atlantis
-02:01=%1 找到了传说中的亚特兰蒂斯城
+02:01=%1被爆菊了,要到水下清洗一下!
;02:01=%1 aims for the lead role in Bioshock 3
-02:01=%1 的目的是为了在生化危机3中起带头作用
+02:01=%1华丽丽的掉下去啦~
;02:01=Your doggy paddle could use a little work, %1
-02:01=狗爬式会有用的, %1
+02:01=%1实在是太V5啦!连光腚总菊都拿他没辙!
;02:01=%1 should have brought a jet ski
-02:01=%1 居然没带摩托艇
+02:01=%1还没来得及吐槽!阿西BUG!
;02:01=%1 doesn't like watersports
-02:01=%1 不喜欢水上运动
+02:01=%1的伪娘气质还没表现出来呢
;02:01=%1 is forever blowing bubbles
-02:01=%1 学会了绝技: 神风吹泡泡
+02:01=%1落水时的体位亮了~
;02:01=%1 is short of a raft
-02:01=%1 腿太短了
+02:01=%1被天朝屏蔽了~
;02:01=%1 thinks salt water is good for the skin
-02:01=%1 认为盐水对皮肤有好处
+02:01=%1认为天朝实在是个伟大的国度
;02:01=%1 gets salt water in his wounds
-02:01=%1 的伤口沾上了盐水
+02:01=%1大喊:不给力啊,你个白痴老湿!
;02:01=%1 has walked the plank
-02:01=%1 错过了那块木板
+02:01=太不给力啦,老湿!
;02:01=%1 has a bath
-02:01=%1 洗澡去了
+02:01=这游戏不带感啊!
;02:01=%1 is wet wet wet
-02:01=%1 全身是水
+02:01=亮点永远都在最后
;02:01=%1 gets his quills wet
-02:01=%1 把刚毛弄湿了
+02:01=%1把屁股弄湿了
;02:01=It's Davy Jones' locker for %1
-02:01=深海阎王正在等待 %1
+02:01=天朝正在水下等%1呢
; Round starts
; 02:02=Let's fight!
+; 02:02=Armed and ready!
02:02=开战!
-; 02:02=Armed and ready!
02:02=准备!
;02:02=Let's get ready to rumble!
02:02=准备对轰!
;02:02=Let's get it on!
-02:02=让我们得到胜利!
+02:02=让我们取得胜利!
;02:02=Let's get this party started
02:02=这个Party要开始了
;02:02=Last hog standing wins
-02:02=胜利属于最后一个生还者
+02:02=胜利属于信春哥的人
;02:02=Let's go!
02:02=出发吧!
;02:02=Let's rock!
@@ -301,23 +303,23 @@
;02:02=This is the start of something big
02:02=这是一个伟大的开始
;02:02=Welcome to Hedgewars
-02:02=欢迎来到刺猬大作战
+02:02=欢迎来到“刺猬杀”!
;02:02=Welcome to the front lines
02:02=欢迎来到前线
;02:02=Crush your enemies!
-02:02=目标:粉碎你的敌人!
+02:02=目标:吃掉你的敌人!
;02:02=May the best hog win
-02:02=祝愿胜利属于最厉害的刺猬!
+02:02=胜利属于会打飞机的那只!
;02:02=Victory or death
02:02=胜利或死亡
;02:02=To the victor goes the spoils
02:02=战利品只属于胜利者
;02:02=Losing is not an option
-02:02=字典里面应该没有"输"这个字的
+02:02=加嘞个油!老湿不能输啊!
;02:02=Cry havoc! Let loose the hogs of war!
-02:02=哭吧! 这是刺猬的战争
+02:02=哭吧! 这是刺猬的
;02:02=Hedgewars, brought to you by Hedgewars.org
-02:02=欢迎来到刺猬大作战, Hedgewars.org 为你呈现
+02:02=欢迎来到刺猬大作战, 官方网站 Hedgewars.org
02:02=GL HF
;02:02=Just count yourself lucky you're not up against Tiyuri
02:02=你看你多幸运你不是在对战 Tiyuri
@@ -332,7 +334,7 @@
;02:02=Give it your all!
02:02=展现你的一切吧!
;02:02=The losers do the cleaning up!
-02:02=输的要罚扫厕所!
+02:02=输的要去吻凤姐!
;02:02=Let the fight of the millenium begin
02:02=宇宙之战开始了
;02:02=Let the fight of the century begin
@@ -348,7 +350,7 @@
;02:02=Let the fight of the day begin
02:02=本日最强入围赛开始了
;02:02=Let the fight of the hour begin
-02:02=我们能战一小时!
+02:02=我们能狂玩一小时!
;02:02=Do your best!
02:02=诸君努力!
;02:02=Destroy the enemy!
@@ -356,31 +358,30 @@
;02:02=Good luck
02:02=祝你好运
;02:02=Have fun~
-02:02=开心玩~
+02:02=玩儿蛋去~
;02:02=Fight the good fight
-02:02=漂亮的战斗
+02:02=要赢!
;02:02=Fight dirty
-02:02=不择手段
+02:02=不择手段也行!
;02:02=Fight with honour
-02:02=满载荣誉而战
+02:02=请注意文明用语
;02:02=Don't give up
-02:02=教练告诉你: 别放弃
+02:02=出师未捷身先死的教练: 别放弃
;02:02=Never surrender
02:02=永不屈服!
;02:02=Rock 'em and sock 'em!
-02:02=蹂虐对手
+02:02=刺猬杀!杀!杀!
;02:02=Let the fragfest begin!
02:02=积分赛开始!
;02:02=I hope you're ready for a tussle!
02:02=你准备好恶战了么?
-;02:02=Go Go Go!
-02:02=上!
+02:02=Go Go Go!
;02:02=Hedgehogs advance!
-02:02=刺猬向前冲!
+02:02=刺猬历险记!
;02:02=Bring it to them!
02:02=炸飞他们!
;02:02=Have no fear!
-02:02=无所畏惧!
+02:02=勇敢前进!
;02:02=Be brave and conquer
02:02=敢于征服!
@@ -396,33 +397,33 @@
;02:05=Medic!
02:05=急救包!
;02:05=First aid from the skies!
-02:05=救援物资空运来了!
+02:05=最NB的东西空运来了!
;02:05=A health pack for you
02:05=你的医疗包到了
;02:05=Good health.. in box form!
-02:05=生命就在那箱子里!
+02:05=凤姐的内裤就在那箱子里!
;02:05=The doctor calls
-02:05=医生的紧急呼叫
+02:05=人在江湖飘啊,谁能不挨刀啊!PIA~PIA~
;02:05=Fresh band-aids!
02:05=新鲜创可贴!
;02:05=This will make you feel better
-02:05=吃了这个感觉会好些的...
+02:05=吃了这个感觉像在吻春哥...
;02:05=A Hi-Potion! Whoops wrong game
-02:05=兴奋剂!呃。。。走错地方了
+02:05=伟哥!呃。。。走错地方了
;02:05=A pick-me-up!
02:05=万金油!
;02:05=Grab it
-02:05=捉住它
+02:05=就是它了!
;02:05=A healthy snack
-02:05=健康食品
+02:05=春哥的吻如期而至~
;02:05=A remedy to pain
-02:05=止痛饼来了
+02:05=这货不是药包!这货不是药包!貌似这货就是药包。。。
;02:05=Correct Dosage: as many as you can find!
-02:05=使用方法: 吃得越多越好
+02:05=凤姐诚心提醒:这东西很管用
;02:05=Urgent delivery
-02:05=紧急物资
+02:05=请小心使用
;02:05=Supplies!
-02:05=补给!
+02:05=里面没有TT
; New ammo crate
; 02:06=More weapons!
@@ -430,79 +431,79 @@
;02:06=Reinforcements!
02:06=增援!
;02:06=Lock and load!
-02:06=准备!
+02:06=凤姐的及时雨!
;02:06=I wonder what weapon is in there?
-02:06=我要的那个会在的吧...
+02:06=尿布湿...
;02:06=Supplies!
-02:06=补给!
+02:06=也许有伟哥哦!
;02:06=What could be inside?
02:06=里面会有啥呢?
;02:06=Christmas comes early in Hedgewars
-02:06=刺猬大作战每天都是圣诞节
+02:06=刺猬杀特别派送~
;02:06=A present!
-02:06=礼物送到!
+02:06=今年过节不收礼!
;02:06=Special delivery!
-02:06=特快专递!
+02:06=特快专递,收件人付费!
;02:06=It was a nightmare getting this through customs
-02:06=本局的噩梦来了
+02:06=“肉山大魔王”来了
;02:06=Destructive toys from the heavens
-02:06=玩具从天堂掉下来了
+02:06=吃了这个可以找凤姐
;02:06=Warning! Contents Volatile
-02:06=警告! 内含危险物品
+02:06=警告! 小心喷鼻血~
;02:06=Pick it up or blow it up, choice is yours
-02:06=拿走或打爆, 随你
+02:06=拿走或爆掉, 随你
;02:06=Goodies!
-02:06=好玩意儿!
+02:06=貌似没有凤姐的内裤!
;02:06=Mmmmm Ammo
02:06=弹药!!!!
;02:06=A box of destructive power
-02:06=潘朵拉之盒
+02:06=潘朵拉的宝盒
;02:06=Airmail!
-02:06=天降之物!
+02:06=航空邮件,收件人付费!
;02:06=Whatever's in that box, it ain't pizza
-02:06=无论里面是啥, 那肯定不会是软妹子
+02:06=无论里面是啥, 那肯定不会是小野妹子
;02:06=Get it!
02:06=拿走它!
;02:06=Weapon drop incoming
02:06=武器掉下来了!
;02:06=Don't let the enemy grab that!
-02:06=别让敌人拿了!
+02:06=别让平田君拿了!
;02:06=Shiny new toys!
-02:06=新玩具!
+02:06=把这玩意装备上!
;02:06=A mysterious box!
-02:06=谜的箱子...
+02:06=迷一般的玩意...
; New utility crate
; 02:07=Tooltime!
02:07=工具箱!
;02:07=This could come in handy...
-02:07=这可能派上用场
+02:07=这货不是工具箱!貌似这货就是工具箱...
;02:07=Utilities!
02:07=工具!
;02:07=Utilise this box
02:07=工具在这里!
;02:07=Watch out below
-02:07=快看这里!
+02:07=令人蛋疼的东西!
;02:07=More utilities!
02:07=更多选择更多欢笑, 尽在工具包
;02:07=Tools for you!
-02:07=一堆工具, 送给你!
+02:07=爆菊用的, 送给你!
;02:07=This should be good!
-02:07=这看见起来蛮好...
+02:07=菊花表示压力很大...
;02:07=Use this wisely
02:07=使用这个才是明智的选择
;02:07=Ooo this box is heavy
-02:07=好重...好重...
+02:07=这东西让所有刺猬为之一震
;02:07=You might need this
02:07=会有用的
; Hog (%1) skips his turn
; 02:08=%1 is sooo boring...
-02:08=%1 太无聊了...
+02:08=%1太无聊了...
;02:08=%1 couldn't be bothered
-02:08=%1 不想被打扰!
+02:08=%1要去找凤姐!
;02:08=%1 is one lazy hog
-02:08=%1 太懒了
+02:08=%1太懒了
;02:08=%1 is thoughtless
02:08=%1 太轻率了
;02:08=%1 gave up
@@ -570,89 +571,163 @@
;02:08=%1 has fallen asleep
02:08=%1 睡着了
+; Hog (%1) skips his turn
+; 02:08=%1 is sooo boring...
+02:08=%1 太无聊了...
+;02:08=%1 couldn't be bothered
+02:08=%1要去找凤姐!
+;02:08=%1 is one lazy hog
+02:08=%1找春哥要签名去了!
+;02:08=%1 is thoughtless
+02:08=%1吻凤姐去
+;02:08=%1 gave up
+02:08=%1阿西BUG!
+;02:08=You snooze you lose, %1
+02:08=%1无可奈何!
+;02:08=%1 shamelessly skips
+02:08=%1无耻的跳过了本回合
+;02:08=%1 is really lazy
+02:08=%1貌似长痔疮了!
+;02:08=%1 needs a little more motivation
+02:08=%1觉得自己需要伟哥
+;02:08=%1 is a pacifist
+02:08=%1脱了去
+;02:08=%1 has a breather
+02:08=%1正在吃饭呢
+;02:08=%1 has a rest
+02:08=%1需要食物
+;02:08=%1 chills out
+02:08=%1想要爱爱了
+;02:08=%1 has no faith in his own abilities
+02:08=%1做啥都没信心了
+;02:08=%1 decides to do nothing at all
+02:08=%1决定找凤姐一块玩
+;02:08=%1 lets the enemy destroy itself
+02:08=%1认为凤姐会来杀敌的
+;02:08=%1 would be terrible at parties
+02:08=%1撅着屁股摆体位
+;02:08=%1 hides out
+02:08=%1会隐身术
+;02:08=%1 has decided to pass on this opportunity
+02:08=%1已经决定放弃这个机会
+;02:08=%1 decides the best thing he can do is...nothing
+02:08=%1决定他现在最应该做的是......去找凤姐
+;02:08=%1 is a big wuss
+02:08=%1真是太蠢了!
+;02:08=Buck Buck Buck, %1 is a chicken
+02:08=%1找个内裤来玩玩
+;02:08=%1 is looking a little yellow
+02:08=%1看来有点印堂发黑
+;02:08=%1 is a coward!
+02:08=%1是圣德太子!
+;02:08=%1 is waiting for sudden death
+02:08=%1在等待突然死亡模式
+;02:08=%1 is not the fighting type
+02:08=%1妥妥儿的
+;02:08=%1 is reconsidering his purpose in life
+02:08=%1正在思考凤姐内裤的颜色
+;02:08=%1 was never much of a good shot anyway
+02:08=%1从来就没玩好过
+;02:08=%1 didn't want to join the army in the first place
+02:08=%1不想玩这游戏
+;02:08=Stop wasting our time, %1
+02:08=别浪费时间了! %1
+;02:08=I'm dissapointed in you, %1
+02:08=拳湿对你失望了,平田君
+;02:08=Come on, you can do better than that %1
+02:08=%1我嘞个去!
+;02:08=%1's will has broken
+02:08=%1正在打飞机
+;02:08=%1 apparently has better things to do
+02:08=%1显然有更好的事情等着做
+;02:08=%1 is scared stiff
+02:08=%1怕刺激
+;02:08=%1 has fallen asleep
+02:08=%1睡着了
+
; Hog (%1) hurts himself only
; 02:09=%1 should practice aiming!
-02:09=%1 该练练瞄准了!
+02:09=%1该练练瞄准了!
; 02:09=%1 seems to hate himself.
-02:09=%1 似乎看自己很不爽。
+02:09=%1似乎看自己很不爽。
; 02:09=%1 is standing on the wrong side!
-02:09=%1 在表演乌龙!
+02:09=%1在表演狗吃屎!
; 02:09=%1 makes like an emo
-02:09=%1 以为自己无敌
+02:09=%1以为自己是拳湿
; 02:09=%1 was holding his weapon the wrong way around
-02:09=%1 好像把武器拿错方向了
+02:09=%1好像把武器拿错方向了
;02:09=%1 is a little sadistic
-02:09=%1 有点施虐狂
+02:09=%1更喜欢凤姐来玩
;02:09=%1 is a masochist
-02:09=%1 是受虐狂
+02:09=%1是更喜欢春哥来玩
;02:09=%1 has no instinct of self-preservation
-02:09=%1 根本不会自我保护
+02:09=%1根本不会自我保护
;02:09=%1 messed up
-02:09=%1 乱套了
+02:09=%1吐槽了
;02:09=%1 screwed up
-02:09=%1 搞砸了
+02:09=%1体位搞错了
;02:09=That was a poor shot, %1
-02:09=%1 这一发真渣
+02:09=%1这一发真坑爹的!
;02:09=%1 is a little too careless with dangerous weapons
-02:09=%1 太不小心用那些危险的玩意了
+02:09=%1太不小心用那些危险的玩意了
;02:09=%1 should consider a change of career
-02:09=%1 正在考虑转职
+02:09=%1正在考虑玩凤姐
;02:09=Worst. Shot. Ever!
-02:09=更差! 最差! 非常差!
+02:09=值啦! 值啦! 太值啦!
;02:09=No no no %1, you shoot at the ENEMY!
-02:09=No no no %1, 你要打敌人!
+02:09=%1, 你要打敌人!不要打飞机!
;02:09=%1 should only be destroying the enemy
-02:09=%1 应该消灭敌人才对
+02:09=%1应该消灭宿敌啊
;02:09=%1 moves one step closer to suicide
-02:09=%1 正在走向自杀
+02:09=%1需要吃蘑菇了
;02:09=%1 aids the enemy
-02:09=%1 帮助敌人
+02:09=%1感觉自己蛋疼
;02:09=That was stupid %1
-02:09= %1 是笨蛋
+02:09=%1感觉自己菊紧
;02:09=%1 lives by the mantra of "no pain, no gain"
-02:09=%1 贯彻“不付出,何收获“的原则
+02:09=%1突然有点乳酸
;02:09=%1 is confused
-02:09=%1 思维混乱了
+02:09=%1貌似吃错药了
;02:09=%1 hurt itself in its confusion
-02:09=%1 在混乱中攻击自己
+02:09=%1吃错药而打错人
;02:09=%1 has a knack for embarrassing himself
-02:09=%1 正在为自己尴尬
+02:09=%1感觉菊花鸭梨很大
;02:09=%1 is a klutz!
-02:09=%1 就是一个笨蛋!
+02:09=%1要受不了啦
;02:09=%1 is clumsy
-02:09=%1 笨手笨脚的
+02:09=%1实在是笨到水了
;02:09=%1 shows the enemy what he's capable of
-02:09=%1 展示了自己的能力
+02:09=%1真是太杯具了
;02:09=%1 can't be expected to be perfect all the time
-02:09=%1 不能每次都完美
+02:09=%1感觉自己的人生就一茶几
;02:09=Don't worry %1, pobody's nerfect
-02:09=不用担心 %1 , 人都不是完美的
+02:09=杯具啊!
;02:09=%1 totally did that on purpose
-02:09=%1 这么做真的是有目的
+02:09=爆菊啦!
;02:09=I won't tell anyone if you don't, %1
-02:09=我不会把 %1 的事情到处说的
+02:09=脑仁疼啊!
;02:09=How embarrassing!
-02:09=何等的失态!
+02:09=内裤找不到啦,害羞!
;02:09=I'm sure nobody saw that %1
-02:09=保证,决没人看到 %1 做什么
+02:09=这游戏是谁发明的,画个圈圈诅咒他。。。
;02:09=%1 needs to review his field manual
-02:09=%1 需要复习说明书
+02:09=%1不看说明书就上场
;02:09=%1's weapon clearly malfunctioned
-02:09=%1 的武器很明显坏了
+02:09=%1被谁爆菊了吧
; Hog shot an home run (using the bat and another hog)
; 02:10=Home Run!
02:10=全垒打!
; 02:10=A bird, a plane, ...
-02:10=一只鸟,一架飞机,...
+02:10=看!灰机!来打灰机啊!...
; 02:10=That one is out!
-02:10=那一位出界了!
+02:10=太差劲了,出局!
; Hog (%1) has to leave (team is gone)
-02:11=%1 必须上床了
-02:11=%1 玩的过火了,休息一下
-02:11=发射!这位已经被送出去
-02:11=%1 必须走了
+02:11=%1必须找凤姐上床了
+02:11=%1玩的过火了,找犀利哥替代一下
+02:11=发射!这位已经被射出去。。。
+02:11=%1必须颠菜了
; Weapon Categories
03:00=定时手雷
@@ -697,9 +772,9 @@
03:39=移动工具
03:40=燃烧弹
;03:41=Huge fan of Squawks
-03:41=噪音
+03:41=强烈的震撼
;03:42=I'm making a note here...
-03:42=我将在此记录...
+03:42=我将名垂青湿...
; the misspelled "Beethoven" is intentional (-> to beat)
;03:43=Performing Beathoven's deadly sonata
@@ -735,9 +810,9 @@
04:15=呼叫一架飞机轰炸你的敌人.|左/右方向键: 决定攻击方向|光标: 选定目标
04:16=呼叫一架飞机投下大量地雷.|左/右方向键: 决定攻击方向|光标: 选定目标
04:17=需要个安全的地方? 使用喷灯为你挖掘一条安全的隧道!|攻击键: 开始/停止挖掘
-04:18=喷灯还不够?还要个更安全的地方?|建造若干条大梁挡住吧.|左/右方向键: 选择梁的方向|光标: 建造
+04:18=钻洞器还不够?还要个更安全的地方?|建造若干条大梁挡住吧.|左/右方向键: 选择梁的方向|光标: 建造
04:19=适当的时候撤退是比所有的攻击|更安全的选择|光标: 选择传送目标
-04:20=可以让你更换当前使用的刺猬.|攻击键: 启动切换功能
+04:20=可以让你更换当前使用的刺猬.|攻击键: 启动切换功能|TAB:切换刺猬
04:21=用炮弹发射器发射一个手榴弹样|的东西. 在爆炸之后会裂开成小块|攻击键: 全力发射
04:22=这不只是女王才用的东西!|这鞭子能解决很多问题, 比如说那些|喜欢站在悬崖边上的小屁孩.|攻击键: 鞭打你面前的一切东西
04:23=自杀式炸弹袭击向来好用!|用你的一条命攻击直线上的一切东西并爆炸.|攻击键: 启动自杀性攻击
@@ -759,19 +834,19 @@
04:39=驾驶飞碟可以飞到地图上的任何角落.|不过这个东西连发明者都认为很难用.|攻击键: 激活|上/左/右方向键: 向某方向飞|前跳:攻击敌人
04:40=把地面填满汽油然后....|攻击键: 按住蓄力.
;04:41=自然的力量要盖过飞盘。|带着刺猬的鸟竟然毫不犹豫的空中下蛋!|攻击键: 激活和放蛋|上/左/右方向键: 向某方向飞
-;04:42=This portable portal device is capable|of instantly transporting you, your enemies,|or your weaponry between two points on the|terrain.|Use it wisely and your campaign will be a...|HUGE SUCCESS!|Attack: Shoot a portal|Switch: Cycle portal colours
+;04:42=这玩意可以,|or your weaponry between two points on the|terrain.|Use it wisely and your campaign will be a...|HUGE SUCCESS!|Attack: Shoot a portal|Switch: Cycle portal colours
04:42=移动传送装置|迅速传输自己或者敌人或者|你的武器,直接连接|地表的两个不同位置。|用的聪明那么。。。|攻击键: 发射一个传送点|切换键: 改变颜色
;04:43=Make your musical debut an explosive success!|Drop a piano from the heavens, but beware...|someone needs to play it, and that may cost you|your life!|Cursor: Select target region|F1-F9: Play the piano
04:43=音乐细胞的迸发!|钢琴从天堂降落,带|着演奏者最终回归天堂|光标: 选择目标区域|F1-F9:演奏钢琴
-04:44=这不是奶酪!而是生化武器!|爆炸只有一次,带来的毒害是深远的!|1-5: 设定定时器|攻击键: 按住蓄力
+04:44=这货不是奶酪!貌似是生化武器!|爆炸只有一次,带来的毒害是深远的!|1-5: 设定定时器|攻击键: 按住蓄力
;04:45=All those physics classes have finally |paid off, launch a devastating Sine |wave at your foes. |Watch out, this weapon packs quite a kick. (This weapon is incomplete)|Attack: Shoot
04:45=全部物理阶级最终|转化为正弦波动|留心,力是相对的|攻击键: 发射
;04:46=Cover your foes with sizzling liquid flame.|Heartwarming!|Attack: Activate|Up/Down: Continue aiming|Left/Right: Modify spitting power
04:46= 用满腔的火焰虐待你的对手吧。|攻击键: 激活|上/下方向键: 改变攻击方向|左/右方向键: 调整喷射距离
;04:47=Double the fun with two spiky, sneaky, sticky mines.|Set up a chain reaction or defend yourself (or both!)|Attack: Hold to shoot with more power (twice)
-04:47=两次机会双重乐趣,隐蔽且黏着的地雷。|利用脑力造成连锁反应!|攻击键: 按住蓄力(两发)
+04:47=两次机会双重乐趣,隐蔽且固定的地雷。|利用脑力造成连锁反应!|攻击键: 按住蓄力(两发)
;04:48=Why should the moles get all the abuse?|Wacking a hog can be just as fun! A good|blow from this hammer will shave off one|third of a hog's health and plunge them|underground.|Attack: Activate
-04:48=痛扁刺猬:用力一锤|将使中者镶入地表,削减它健康的1/3.|攻击键: 打
+04:48=痛扁刺猬:用力一锤|将使中者镶入地表,削减它生命值的1/3.|攻击键: 击打
; Game goal strings
@@ -784,7 +859,7 @@
;05:04=Invulnerability: Hogs are (almost) invulnerable
05:04=无敌: 刺猬不受伤害
;05:05=Vampirism: Hogs will be healed for the damage dealt
-05:05=吸血: 敌人失去的就是我的
+05:05=吸血: 敌人失去的就是我得到的
;05:06=Karma: Hogs will be damaged for the damage dealt
05:06=因果效应: 伤害有多少,自己都知道
;05:07=Protect the King: Don't let your king die!|Place the King: Pick a protected starting point for your King
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/Basketball/map.lua
--- a/share/hedgewars/Data/Maps/Basketball/map.lua Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Maps/Basketball/map.lua Mon Nov 15 12:37:39 2010 +0100
@@ -7,17 +7,19 @@
["pl"] = "Hedgewars-Koszykówka",
["pt_PT"] = "Hedgewars-Basketball",
["sk"] = "Hedgewars-Basketbal",
- ["sv"] = "Hedgewars-Basket"
+ ["sv"] = "Hedgewars-Basket",
+ ["pt_BR"] = "Hedgewars-Basketball"
}
local subcaption = {
["en"] = "Not So Friendly Match",
["de"] = "Kein-so-Freundschaftsspiel",
["es"] = "Partido no-tan-amistoso",
- ["pl"] = "Mecz Nie-Taki-Towarzyski",
+ ["pl"] = "Mecz Nie-Do-Końca Towarzyski",
["pt_PT"] = "Partida não muito amigável",
["sk"] = "Nie tak celkom priateľský zápas",
- ["sv"] = "En inte så vänlig match"
+ ["sv"] = "En inte så vänlig match",
+ ["pt_BR"] = "Partida não muito amigável"
}
local goal = {
@@ -27,7 +29,8 @@
["pl"] = "Uderzaj swoich przekiwników|wyrzucając przez kosz, poza mapę!",
["pt_PT"] = "Bate os teus adversarios|fora do mapa acertando com eles no cesto!",
["sk"] = "Odpálkujte vašich súperov do koša|a von z mapy!",
- ["sv"] = "Slå ner dina motståndare i|korgarna och ut ur kartan!"
+ ["sv"] = "Slå ner dina motståndare i|korgarna och ut ur kartan!",
+ ["pt_BR"] = "Rebata seus oponentes para|fora do mapa através dos cestos!"
}
local scored = {
@@ -37,7 +40,8 @@
["pl"] = " zdobyła punkt!",
["pt_PT"] = " marca um cesto!",
["sk"] = " skóruje!",
- ["sv"] = " fick ett poäng"
+ ["sv"] = " fick ett poäng",
+ ["pt_BR"] = " fez uma cesta"
}
local failed = {
@@ -47,7 +51,8 @@
["pl"] = " zdobyła punkt karny!",
["pt_PT"] = " perde um ponto!",
["sk"] = " dostáva trestný bod!",
- ["sv"] = " fick ett straff"
+ ["sv"] = " fick ett straff",
+ ["pt_BR"] = " sofre uma penalidade"
}
local sscore = {
@@ -57,7 +62,8 @@
["pl"] = "Punktacja",
["pt_PT"] = "Pontuação",
["sk"] = "Skóre",
- ["sv"] = "Poängställning"
+ ["sv"] = "Poängställning",
+ ["pt_BR"] = "Pontuação"
}
local team = {
@@ -66,7 +72,8 @@
["pl"] = "Drużyna",
["pt_PT"] = "Equipa",
["sk"] = "Tím",
- ["sv"] = "Lag"
+ ["sv"] = "Lag",
+ ["pt_BR"] = "Equipe"
}
local drowning = {
@@ -76,7 +83,8 @@
["pl"] = "jest wyautowany i",
["pt_PT"] = "está fora e",
["sk"] = "je mimo hru a",
- ["sv"] = "är ute och"
+ ["sv"] = "är ute och",
+ ["pt_BR"] = "está fora e"
}
local function loc(text)
@@ -96,7 +104,7 @@
GameFlags = gfSolidLand + gfBorder + gfInvulnerable + gfLowGravity
TurnTime = 20000
CaseFreq = 0
- LandAdds = 0
+ MinesNum = 0
Explosives = 0
Delay = 500
SuddenDeathTurns = 99999 -- "disable" sudden death
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/CMakeLists.txt
--- a/share/hedgewars/Data/Maps/CMakeLists.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Maps/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -30,8 +30,11 @@
Ropes
Ruler
Sheep
+ ShoppaKing
+ Sticks
Trash
Tree
+ TrophyRace
)
add_subdirectory(${dir})
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/FlightJoust/map.lua
--- a/share/hedgewars/Data/Maps/FlightJoust/map.lua Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Maps/FlightJoust/map.lua Mon Nov 15 12:37:39 2010 +0100
@@ -29,7 +29,7 @@
GameFlags = gfSolidLand + gfDivideTeams
TurnTime = 10000
CaseFreq = 0
- LandAdds = 0
+ MinesNum = 0
Explosives = 0
Delay = 500
SuddenDeathTurns = 99999 -- "disable" sudden death
@@ -76,4 +76,4 @@
if GetGearType(gear) == gtCase then
spawncrate = 1
end
-end
\ No newline at end of file
+end
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/FlightJoust/preview.png
Binary file share/hedgewars/Data/Maps/FlightJoust/preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/Knockball/map.lua
--- a/share/hedgewars/Data/Maps/Knockball/map.lua Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Maps/Knockball/map.lua Mon Nov 15 12:37:39 2010 +0100
@@ -7,17 +7,19 @@
["pl"] = "Hedgewars-Knockball",
["pt_PT"] = "Hedgewars-Knockball",
["sk"] = "Hedgewars-Knockball",
- ["sv"] = "Hedgewars-Knockball"
+ ["sv"] = "Hedgewars-Knockball",
+ ["pt_BR"] = "Hedgewars-Knockball"
}
local subcaption = {
["en"] = "Not So Friendly Match",
["de"] = "Kein-so-Freundschaftsspiel",
["es"] = "Partido no-tan-amistoso",
- ["pl"] = "Mecz Nie-Taki-Towarzyski",
+ ["pl"] = "Mecz Nie-Do-Końca Towarzyski",
["pt_PT"] = "Partida não muito amigável",
["sk"] = "Nie tak celkom priateľký zápas",
- ["sv"] = "En inte så vänlig match"
+ ["sv"] = "En inte så vänlig match",
+ ["pt_BR"] = "Partida não muito amigável"
}
local goal = {
@@ -27,7 +29,8 @@
["pl"] = "Uderzaj piłkami w swoich przeciwników|i strącaj ich do wody!",
["pt_PT"] = "Bate bolas contra os teus|enimigos e empurra-os ao mar!",
["sk"] = "Loptami triafajte vašich nepriateľov|a zhoďte ich tak do mora!",
- ["sv"] = "Slå bollar mot dina fiender|och slå ner dem i havet"
+ ["sv"] = "Slå bollar mot dina fiender|och slå ner dem i havet",
+ ["pt_BR"] = "Rebata as bolas em direção ao seus|e derrube-os no mar!"
}
local scored = {
@@ -37,7 +40,8 @@
["pl"] = "%s utonął i drużyna %d|zdobyła punkt!| |Punktacja:",
["pt_PT"] = "%s está fora e a equipa %d|soma um ponto!| |Pontuação:",
["sk"] = "%s je mimo hru a tím %d|získal bod!| |Skóre:",
- ["sv"] = "%s är ute och lag %d|fick ett poäng!| |Poängställning:"
+ ["sv"] = "%s är ute och lag %d|fick ett poäng!| |Poängställning:",
+ ["pt_BR"] = "%s está fora e a Equipe %d|marcou um ponto!| |Pontuação:"
}
local failed = {
@@ -47,7 +51,8 @@
["pl"] = "%s utonął i drużyna %d|dostała punkt karny!| |Punktacja:",
["pt_PT"] = "%s está fora e a equipa %d|perde um ponto!| |Pontuação:",
["sk"] = "%s je mimo hru a tím %d|dostal trestný bod!| |Skóre:",
- ["sv"] = "%s är ute och lag %d|fick ett straff!| |Poängställning:"
+ ["sv"] = "%s är ute och lag %d|fick ett straff!| |Poängställning:",
+ ["pt_BR"] = "%s está fora e a Equipe %d|sofreu uma penalidade!| |Pontuação:"
}
local function loc(text)
@@ -69,7 +74,7 @@
GameFlags = gfSolidLand + gfInvulnerable + gfDivideTeams
TurnTime = 20000
CaseFreq = 0
- LandAdds = 0
+ MinesNum = 0
Explosives = 0
Delay = 500
SuddenDeathTurns = 99999 -- "disable" sudden death
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/ShoppaKing/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/ShoppaKing/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,5 @@
+install(FILES
+ map.png
+ map.cfg
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/ShoppaKing)
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/ShoppaKing/map.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/ShoppaKing/map.cfg Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,2 @@
+Castle
+48
\ No newline at end of file
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/ShoppaKing/map.png
Binary file share/hedgewars/Data/Maps/ShoppaKing/map.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/ShoppaKing/preview.png
Binary file share/hedgewars/Data/Maps/ShoppaKing/preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/Sticks/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Sticks/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,5 @@
+install(FILES
+ map.png
+ map.cfg
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/Sticks)
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/Sticks/map.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Sticks/map.cfg Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,2 @@
+Bamboo
+24
\ No newline at end of file
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/Sticks/map.png
Binary file share/hedgewars/Data/Maps/Sticks/map.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/Sticks/preview.png
Binary file share/hedgewars/Data/Maps/Sticks/preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/TrophyRace/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/TrophyRace/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,7 @@
+install(FILES
+ map.cfg
+ map.lua
+ map.png
+ mask.png
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/TrophyRace)
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/TrophyRace/map.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/TrophyRace/map.cfg Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,2 @@
+Olympics
+48
\ No newline at end of file
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/TrophyRace/map.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/TrophyRace/map.lua Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,241 @@
+-- Hedgewars - Roperace for 2+ Players
+
+local caption = {
+ ["en"] = "TrophyRace",
+ ["sv"] = "TrophyRace",
+ ["pt_PT"] = "TrophyRace",
+ ["pl"] = "TrophyRace",
+ ["es"] = "TrophyRace",
+ ["pt_BR"] = "TrophyRace"
+ }
+
+local goal = {
+ ["en"] = "Use your rope to get from start to finish as fast as you can!",
+ ["sv"] = "Använd ditt rep för att ta dig från start till mål så fort som möjligt!",
+ ["pt_PT"] = "Utilizando a corda, percorre o percurso do inicio ao fim o mais rápido que conseguires!",
+ ["pl"] = "Użyj liny by jak najszybciej dotrzec od startu do mety",
+ ["es"] = "¡Usa tu cuerda para llegar a la salida lo más rápido que puedas!",
+ ["pt_BR"] = "Use sua corda para ir do início ao fim o mais rápido que você puder!"
+ }
+
+local done = {
+ ["en"] = "You've reached the goal!| |Time: ",
+ ["sv"] = "Du har nått målet!| |Tid: ",
+ ["pt_PT"] = "Chegaste ao fim!| |Tempo: ",
+ ["pl"] = "Dotarłeś do celu!| |Czas: ",
+ ["es"] = "¡Has llegado a la meta!| |Tiempo: ",
+ ["pt_BR"] = "Você alcançou o objetivo!| |Tempo: "
+ }
+
+local eliminated = {
+ ["en"] = "Eliminating worst hedgehog this round...| |%s is OUT!",
+ ["sv"] = "Eliminerar sämsta igelkott den här rundan...| |%s är UTE!",
+ ["pt_PT"] = "A eliminar o pior ouriço da ronda...| |% está FORA!",
+ ["pl"] = "Eliminujemy najgorszego jeża tej rundy...| |%s ODPADŁ!",
+ ["es"] = "Eliminando al peor erizo de esta ronda...| |¡%s está FUERA!",
+ ["pt_BR"] = "Eliminando o ouriço mais lento...| |%s vai para o chuveiro!"
+ }
+
+local newbesttime = {
+ ["en"] = "NEW fastest lap: ",
+ ["sv"] = "NYTT snabbast varv: ",
+ ["pt_PT"] = "NOVA volta recorde: ",
+ ["pl"] = "NOWE najszybsze okrążenie: ",
+ ["es"] = "NUEVA vuelta rápida: ",
+ ["pt_BR"] = "NOVA volta mais rápida: "
+ }
+
+local oldbesttime = {
+ ["en"] = "Fastest lap: ",
+ ["sv"] = "Snabbast varv: ",
+ ["pt_PT"] = "Volta mais rápida: ",
+ ["pl"] = "Najszybsze okrążenie: ",
+ ["es"] = "Vuelta rápida: ",
+ ["pt_BR"] = "Volta mais rápida: "
+ }
+
+local bestclantimes = {
+ ["en"] = "Best laps per team: ",
+ ["sv"] = "Bästa varv per lag: ",
+ ["pt_PT"] = "Melhores voltas por equipa: ",
+ ["pl"] = "Najszybsze okrążenie drużyny: ",
+ ["es"] = "Mejores tiempos por equipo: ",
+ ["pt_BR"] = "Melhor volta por equipe: "
+ }
+
+local clantime = {
+ ["en"] = "Team %d: ",
+ ["sv"] = "Lag %d: ",
+ ["pt_PT"] = "Equipa %d: ",
+ ["pl"] = "Drużyna %d: ",
+ ["es"] = "Equipo %d",
+ ["pt_BR"] = "Equipe %d: "
+ }
+
+local function loc(text)
+ if text == nil then return "**missing**"
+ elseif text[L] == nil then return text["en"]
+ else return text[L]
+ end
+end
+
+---------------------------------------------------------------
+
+-- store number of hedgehogs
+local numhhs = 0
+
+-- store hedgehog gears
+local hhs = {}
+
+-- store best time per team
+local clantimes = {}
+
+-- store best times
+local times = {}
+
+-- in milisseconds
+local maxtime = 99000
+
+-- define start area (left, top, width, height)
+local start_area = {1606, 498, 356, 80}
+
+-- define goal area (left, top, width, height)
+local goal_area = {2030, 300, 56, 280}
+
+-- last active hog
+local lasthog = nil
+
+-- active hog reached the goal?
+local reached = false
+
+-- hog with best time
+local besthog = nil
+
+-- hog with worst time (per round)
+local worsthog = nil
+
+-- best time
+local besttime = maxtime + 1
+
+-- worst time (per round)
+local worsttime = 0
+
+function onGameInit()
+ GameFlags = gfSolidLand + gfInvulnerable
+ TurnTime = maxtime
+ CaseFreq = 0
+ MinesNum = 0
+ Explosives = 0
+ Delay = 500
+ SuddenDeathTurns = 99999 -- "disable" sudden death
+ Theme = 'Olympics'
+end
+
+function onGameStart()
+ ShowMission(loc(caption), "", loc(goal), -amRope, 0)
+ started = true
+ p=1820
+ for i = 0, numhhs - 1 do
+ p = p + 50
+ SetGearPosition(hhs[i], p, 0)
+ end
+
+ for i=0, ClansCount-1 do
+ clantimes[i] = 0
+ end
+end
+
+function onAmmoStoreInit()
+ SetAmmo(amRope, 9, 2, 0)
+end
+
+function onGameTick()
+ if TurnTimeLeft == 1 and CurrentHedgehog ~= nil then
+ SetHealth(CurrentHedgehog, 0)
+ x, y = GetGearPosition(CurrentHedgehog)
+ AddGear(x, y, gtAmmo_Grenade, 0, 0, 0, 0)
+ worsttime = 99999
+ worsthog = nil
+ elseif TurnTimeLeft == maxtime - 1 and CurrentHedgehog ~= nil then
+ if lasthog ~= nil then
+ SetGearPosition(lasthog, p , 0)
+ end
+ reached = false
+ SetGearPosition(CurrentHedgehog, start_area[1] + start_area[3] / 2, start_area[2] + start_area[4] / 2)
+ elseif CurrentHedgehog ~= nil then
+ x, y = GetGearPosition(CurrentHedgehog)
+ if not reached and x > goal_area[1] and x < goal_area[1] + goal_area[3] and y > goal_area[2] and y < goal_area[2] + goal_area[4] then -- hog is within goal rectangle
+ reached = true
+ local ttime = maxtime - TurnTimeLeft
+ --give it a sound;)
+ if ttime < besttime then
+ PlaySound (sndHomerun)
+ else
+ PlaySound (sndHellish)
+ end
+ for i = 0, numhhs - 1 do
+ if hhs[i] == CurrentHedgehog then
+ times[numhhs] = ttime
+ end
+ end
+
+ local hscore = "| |"
+ local clan = GetHogClan(CurrentHedgehog)
+ if ttime < clantimes[clan] or clantimes[clan] == 0 then
+ clantimes[clan] = ttime
+ end
+
+ if ttime < besttime then
+ besttime = ttime
+ besthog = CurrentHedgehog
+ hscore = hscore .. loc(newbesttime)
+ else
+ hscore = hscore .. loc(oldbesttime)
+ end
+ if ttime > worsttime then
+ worsttime = ttime
+ worsthog = CurrentHedgehog
+ end
+ hscore = hscore .. GetHogName(besthog) .. " - " .. (besttime / 1000) .. " s | |" .. loc(bestclantimes)
+
+ if clan == ClansCount -1 then
+ -- Time for elimination - worst hog is out and the worst hog vars are reset.
+ SetHealth(worsthog, 0)
+ --Place a grenade to make inactive slowest hog active
+ x, y = GetGearPosition(worsthog)
+ AddGear(x, y, gtShell, 0, 0, 0, 0)
+ worsttime = 0
+ worsthog = nil
+ end
+
+ for i=0, ClansCount -1 do
+ local tt = "" .. (clantimes[i] / 1000) .. " s"
+ if clantimes[i] == 0 then
+ tt = "--"
+ end
+ hscore = hscore .. "|" .. string.format(loc(clantime), i+1) .. tt
+ end
+
+ ShowMission(loc(caption), "", loc(done) .. (ttime / 1000) .. " s" .. hscore, 0, 0)
+ TurnTimeLeft = 0
+ end
+ end
+end
+
+function onGearAdd(gear)
+ if GetGearType(gear) == gtHedgehog then
+ hhs[numhhs] = gear
+ times[numhhs] = 0
+ numhhs = numhhs + 1
+ elseif GetGearType(gear) == gtRope then -- rope is shot
+
+ end
+end
+
+function onGearDelete(gear)
+ if GetGearType(gear) == gtRope then -- rope deletion - hog didn't manage to rerope
+ --TurnTimeLeft = 0 -- end turn or not? hm...
+ lasthog = CurrentHedgehog
+
+ end
+end
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/TrophyRace/map.png
Binary file share/hedgewars/Data/Maps/TrophyRace/map.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/TrophyRace/mask.png
Binary file share/hedgewars/Data/Maps/TrophyRace/mask.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Maps/TrophyRace/preview.png
Binary file share/hedgewars/Data/Maps/TrophyRace/preview.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Missions/Campaign/01#Boot Camp.lua
--- a/share/hedgewars/Data/Missions/Campaign/01#Boot Camp.lua Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Missions/Campaign/01#Boot Camp.lua Mon Nov 15 12:37:39 2010 +0100
@@ -5,101 +5,197 @@
local hognames = {}
teamnames[0] = {
["en"] = "Bloody Rookies",
- ["de"] = "Blutige Anfnger"
+ ["de"] = "Blutige Anfänger",
+ ["pl"] = "Żótodzioby",
+ ["sv"] = "Blodiga nybörjare",
+ ["es"] = "Reclutas",
+ ["pt_PT"] = "Recrutas",
+ ["pt_BR"] = "Maldito Recrutas"
}
teamnames[1] = {
["en"] = "Instructors",
- ["de"] = "Ausbilder"
+ ["de"] = "Ausbilder",
+ ["pl"] = "Instruktor",
+ ["sv"] = "Instruktör",
+ ["es"] = "Instructores",
+ ["pt_PT"] = "Instrutores",
+ ["pt_BR"] = "Instrutores"
}
hognames[0] = {
["en"] = "Joker",
- ["de"] = "Joker"
+ ["de"] = "Joker",
+ ["pl"] = "Joker",
+ ["sv"] = "Joker",
+ ["es"] = "Joker",
+ ["pt_PT"] = "Joker",
+ ["pt_BR"] = "Comediante"
}
hognames[1] = {
["en"] = "Harthog",
- ["de"] = "Harthog"
+ ["de"] = "Harthog",
+ ["pl"] = "Harthog",
+ ["sv"] = "Harthog",
+ ["es"] = "Harthog",
+ ["pt_PT"] = "Harthog",
+ ["pt_BR"] = "Harthog"
}
local caption = {
["en"] = "Boot Camp",
- ["de"] = "Grundausbildung"
+ ["de"] = "Grundausbildung",
+ ["pl"] = "Poligon",
+ ["sv"] = "Grundutbildning",
+ ["es"] = "Campamento militar",
+ ["pt_PT"] = "Acampamento militar",
+ ["pt_BR"] = "Acampamento Militar"
+
}
local subcaption = {
["en"] = "Follow the instructions!",
- ["de"] = "Befolge die Anweisungen!"
+ ["de"] = "Befolge die Anweisungen!",
+ ["pl"] = "Wykonuj polecenia!",
+ ["sv"] = "Följ instruktioner!",
+ ["es"] = "¡Sigue las órdenes!",
+ ["pt_PT"] = "Segue as instruções!",
+ ["pt_BR"] = "Siga as ordens!"
}
local goals = {}
goals[0] = {
["en"] = "Listen to your Drill Instructor and follow his lead!",
- ["de"] = "Hre deinem Ausbilder zu und befolge seine Anweisungen!"
+ ["de"] = "Höre deinem Ausbilder zu und befolge seine Anweisungen!",
+ ["pl"] = "Słuchaj instruktora i wykonuj jego rozkazy!",
+ ["sv"] = "Lyssna på din instruktör och gör som han säger!",
+ ["es"] = "¡Escucha atentamente a tu instructor de maniobras y sigue sus órdenes!",
+ ["pt_PT"] = "Ouve atentamente o teu Instrutor e segue as suas ordens!",
+ ["pt_BR"] = "Escute seu instrutor de escavação e siga seu líder"
}
goals[1] = {
["en"] = "Destroy the target to finish this mission!",
- ["de"] = "Zerstre das Ziel, um diese Mission abzuschlieen!"
+ ["de"] = "Zerstöre das Ziel, um diese Mission abzuschließen!",
+ ["pl"] = "Zniszcz cel by ukończyć misję!",
+ ["sv"] = "Förstör målet för att avklara uppdraget!",
+ ["es"] = "¡Destruye el objetivo para completar esta misión!",
+ ["pt_PT"] = "Destrói o alvo para completar esta missão!",
+ ["pt_BR"] = "Destrua o alvo para concluir a missão"
}
goals[2] = {
["en"] = "Excellent! You've passed the Boot Camp!",
- ["de"] = "Ausgezeichnet! Du hast das Ausbildungslager bestanden!"
+ ["de"] = "Ausgezeichnet! Du hast das Ausbildungslager bestanden!",
+ ["pl"] = "Doskonale! Wyszedłeś cało z poligonu!",
+ ["sv"] = "Brilliant! Du har klarat av grundutbildningen!",
+ ["es"] = "¡Excelente! ¡Has completado la maniobra de hoy!",
+ ["pt_PT"] = "Excelente! Completaste o treino para recrutas!",
+ ["pt_BR"] = "Excelente! Você completou a manobra"
}
local failed = {
["en"] = "You failed! Follow the instructions and shoot the target only!",
- ["de"] = "Du hast versagt! Befolge die Anweisungen und schie nur auf das Ziel!"
+ ["de"] = "Du hast versagt! Befolge die Anweisungen und schieß nur auf das Ziel!",
+ ["pl"] = "Przegrałeś! Wykonuj instrukcje poprawnie i strzelaj tylko w podane cele!",
+ ["sv"] = "Du har misslyckats! Följ instruktionerna och sjut endast på målen!",
+ ["es"] = "¡Has fallado! ¡Sigue las instrucciones y destruye únicamente el objetivo!",
+ ["pt_PT"] = "Falhaste! Segue as instruções e destrói apenas o alvo!",
+ ["pt_BR"] = "Você falhou! Siga as instruções e atire somente no alvo"
}
local drill = {}
drill[0] = {
["en"] = "Allright, maggot!",
- ["de"] = "Also gut, du Made!"
+ ["de"] = "Also gut, du Made!",
+ ["pl"] = "Słuchaj mnie gnido!",
+ ["sv"] = "Dåså, din mask!",
+ ["es"] = "¡Muy bien, escoria!",
+ ["pt_PT"] = "Bom trabalho verme!",
+ ["pt_BR"] = "Parabéns escória"
}
drill[1] = {
["en"] = "Show that you aren't that useless.",
- ["de"] = "Zeig, dass du nicht so nutzlos bist."
+ ["de"] = "Zeig, dass du nicht so nutzlos bist.",
+ ["pl"] = "Udowodnij, że nie jesteś bezwartościowy.",
+ ["sv"] = "Visa att du inte är så värdelös!",
+ ["es"] = "Demuéstrame que no eres tan inútil como pareces.",
+ ["pt_PT"] = "Prova-me que não és tão inútil como pareces.",
+ ["pt_BR"] = "Mostre que você não é um inútil."
}
drill[2] = {
["en"] = "Use [left] to move to the left!",
- ["de"] = "Benutze [Links], um nach links zu gehen!"
+ ["de"] = "Benutze [Links], um nach links zu gehen!",
+ ["pl"] = "Użyj [lewo] by poruszyć się w lewą stronę!",
+ ["sv"] = "Använd [vänster] för att gå åt vänster!",
+ ["es"] = "¡Aprieta [izquierda] para desplazarte a la izquierda!",
+ ["pt_PT"] = "Carrega [esquerda] para te moveres para a esquerda!",
+ ["pt_BR"] = "Use [esquerda] para mover para a esquerda"
}
drill[3] = {
["en"] = "Good! Now use [right] to come back!",
- ["de"] = "Gut! Nun komm mit [Rechts] zurck!"
+ ["de"] = "Gut! Nun komm mit [Rechts] zurück!",
+ ["pl"] = "Dobzre, Teraz użyj [prawo] by wrócić!",
+ ["sv"] = "Bra! Använd nu [höger] för att gå tillbaka!",
+ ["es"] = "¡Muy bien! ¡Ahora presiona [derecha] para volver!",
+ ["pt_PT"] = "Muito bem! Agora pressiona [direita] para voltar!",
+ ["pt_BR"] = "Bom! Agora use [direita] para voltar"
}
drill[4] = {
["en"] = "Excellent!",
- ["de"] = "Ausgezeichnet!"
+ ["de"] = "Ausgezeichnet!",
+ ["pl"] = "Wspaniale!",
+ ["sv"] = "Utmärkt!",
+ ["es"] = "¡Excelente!",
+ ["pt_PT"] = "Excelente!",
+ ["pt_BR"] = "Excelente!"
}
drill[5] = {
["en"] = "Now jump to the left using [return]!",
- ["de"] = "Jetzt springe mit [Eingabetaste] nach links!"
+ ["de"] = "Jetzt springe mit [Eingabetaste] nach links!",
+ ["pl"] = "Teraz skocz w lewo używając [Enter]",
+ ["sv"] = "Hoppa nu åt vänster med hjälp av [enter]!",
+ ["es"] = "¡Ahora salta hacia la izquierda usando [intro]!",
+ ["pt_PT"] = "Agora salta para a esquerda pressionando [retrocesso]!",
+ ["pt_BR"] = "Agora pule para a esquerda usando [return"
}
drill[6] = {
["en"] = "Use [up] and [down] to aim.",
- ["de"] = "Benutze [Hoch] und [Runter], um zu zielen."
+ ["de"] = "Benutze [Hoch] und [Runter], um zu zielen.",
+ ["pl"] = "Użyj klawiszy [góra] i [dół] by celować.",
+ ["sv"] = "Använd [upp] och [ner] för att sikta!",
+ ["es"] = "Presiora [arriba] y [abajo] para apuntar.",
+ ["pt_PT"] = "Pressiona [cima] e [baixo] para apontar.",
+ ["pt_BR"] = "Pressione [acima] e [abaixo] para mirar."
}
drill[7] = {
["en"] = "Hold [space] to power up your shot and then release it to shoot.",
- ["de"] = "Halte [Leertaste], um deinen Schuss aufzuladen, und lasse dann rechtzeitig los."
+ ["de"] = "Halte [Leertaste], um deinen Schuss aufzuladen, und lasse dann rechtzeitig los.",
+ ["pl"] = "Przytrzymaj spację by zwiększyć siłę strzału.",
+ ["sv"] = "Håll ner [mellanslag] för att få kraft och släpp för att skjuta!",
+ ["es"] = "Mantén presionada la [barra espaciadora] para controlar la fuerza del disparo y suéltala para disparar.",
+ ["pt_PT"] = "Mantem a [barra de espaços] pressionada para controlar a força do tiro e larga-a para disparar.",
+ ["pt_BR"] = "Mantenha pressionado [espaço] para aumentar a força do seu tiro e solte para atirar"
}
drill[8] = {
["en"] = "Destroy the target to finish your basic training!",
- ["de"] = "Zerstre das Ziel, um deine Grundausbildung abzuschlieen!"
+ ["de"] = "Zerstöre das Ziel, um deine Grundausbildung abzuschließen!",
+ ["pl"] = "Zniszcz cel by by ukończyć trening podstawowy!",
+ ["sv"] = "Förstör målet för att avsluta din grundutbildning!",
+ ["es"] = "¡Destruye el objetivo para completar el entrenamiento básico!",
+ ["pt_PT"] = "Destrói o alvo para completar o treino básico!",
+ ["pt_BR"] = "Destrua o alvo para terminar o treino básico"
}
local function loc(text)
@@ -213,7 +309,7 @@
GameFlags = gfMultiWeapon + gfOneClanMode
TurnTime = 25000
CaseFreq = 0
- LandAdds = 0
+ MinesNum = 0
Explosives = 0
Delay = 2500
Map = "Mushrooms"
@@ -239,4 +335,4 @@
if GetGearType(gear) == gtTarget then
progress = 6
end
-end
\ No newline at end of file
+end
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Missions/Training/Bazooka.lua
--- a/share/hedgewars/Data/Missions/Training/Bazooka.lua Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Missions/Training/Bazooka.lua Mon Nov 15 12:37:39 2010 +0100
@@ -153,7 +153,7 @@
-- The frequency of crate drops
CaseFreq = 0
-- The number of mines being placed
- LandAdds = 0
+ MinesNum = 0
-- The number of explosives being placed
Explosives = 0
-- The delay between each round
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Missions/Training/Shotgun.lua
--- a/share/hedgewars/Data/Missions/Training/Shotgun.lua Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Missions/Training/Shotgun.lua Mon Nov 15 12:37:39 2010 +0100
@@ -153,7 +153,7 @@
-- The frequency of crate drops
CaseFreq = 0
-- The number of mines being placed
- LandAdds = 0
+ MinesNum = 0
-- The number of explosives being placed
Explosives = 0
-- The delay between each round
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Missions/Training/SniperRifle.lua
--- a/share/hedgewars/Data/Missions/Training/SniperRifle.lua Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Missions/Training/SniperRifle.lua Mon Nov 15 12:37:39 2010 +0100
@@ -153,7 +153,7 @@
-- The frequency of crate drops
CaseFreq = 0
-- The number of mines being placed
- LandAdds = 0
+ MinesNum = 0
-- The number of explosives being placed
Explosives = 0
-- The delay between each round
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Art/Sky.png
Binary file share/hedgewars/Data/Themes/Art/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Art/horizont.png
Binary file share/hedgewars/Data/Themes/Art/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Bamboo/Chunk.png
Binary file share/hedgewars/Data/Themes/Bamboo/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Bamboo/Sky.png
Binary file share/hedgewars/Data/Themes/Bamboo/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Bamboo/SkyL.png
Binary file share/hedgewars/Data/Themes/Bamboo/SkyL.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Bamboo/SkyR.png
Binary file share/hedgewars/Data/Themes/Bamboo/SkyR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Bamboo/horizont.png
Binary file share/hedgewars/Data/Themes/Bamboo/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Bath/Chunk.png
Binary file share/hedgewars/Data/Themes/Bath/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Bath/Sky.png
Binary file share/hedgewars/Data/Themes/Bath/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Bath/horizont.png
Binary file share/hedgewars/Data/Themes/Bath/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Bath/horizontL.png
Binary file share/hedgewars/Data/Themes/Bath/horizontL.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Bath/horizontR.png
Binary file share/hedgewars/Data/Themes/Bath/horizontR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Blox/Sky.png
Binary file share/hedgewars/Data/Themes/Blox/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Blox/horizont.png
Binary file share/hedgewars/Data/Themes/Blox/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Brick/Sky.png
Binary file share/hedgewars/Data/Themes/Brick/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Brick/Splash.png
Binary file share/hedgewars/Data/Themes/Brick/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Brick/horizont.png
Binary file share/hedgewars/Data/Themes/Brick/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/CMakeLists.txt
--- a/share/hedgewars/Data/Themes/CMakeLists.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Themes/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -7,7 +7,7 @@
Cake
Castle
Cheese
- Deepspace
+ Deepspace
City
CrazyMission
EarthRise
@@ -16,6 +16,7 @@
Halloween
Hell
Island
+ Jungle
Nature
Planes
Sheep
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Cake/Sky.png
Binary file share/hedgewars/Data/Themes/Cake/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Cake/Splash.png
Binary file share/hedgewars/Data/Themes/Cake/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Cake/horizont.png
Binary file share/hedgewars/Data/Themes/Cake/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Castle/Chunk.png
Binary file share/hedgewars/Data/Themes/Castle/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Castle/Sky.png
Binary file share/hedgewars/Data/Themes/Castle/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Castle/SkyL.png
Binary file share/hedgewars/Data/Themes/Castle/SkyL.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Castle/SkyR.png
Binary file share/hedgewars/Data/Themes/Castle/SkyR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Castle/Splash.png
Binary file share/hedgewars/Data/Themes/Castle/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Castle/horizont.png
Binary file share/hedgewars/Data/Themes/Castle/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Cheese/Chunk.png
Binary file share/hedgewars/Data/Themes/Cheese/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Cheese/Sky.png
Binary file share/hedgewars/Data/Themes/Cheese/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Cheese/horizont.png
Binary file share/hedgewars/Data/Themes/Cheese/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/City/Chunk.png
Binary file share/hedgewars/Data/Themes/City/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/City/Sky.png
Binary file share/hedgewars/Data/Themes/City/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/City/horizont.png
Binary file share/hedgewars/Data/Themes/City/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Compost/Chunk.png
Binary file share/hedgewars/Data/Themes/Compost/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Compost/Sky.png
Binary file share/hedgewars/Data/Themes/Compost/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Compost/Splash.png
Binary file share/hedgewars/Data/Themes/Compost/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Compost/horizont.png
Binary file share/hedgewars/Data/Themes/Compost/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/CrazyMission/Sky.png
Binary file share/hedgewars/Data/Themes/CrazyMission/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/CrazyMission/SkyL.png
Binary file share/hedgewars/Data/Themes/CrazyMission/SkyL.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/CrazyMission/SkyR.png
Binary file share/hedgewars/Data/Themes/CrazyMission/SkyR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/CrazyMission/Splash.png
Binary file share/hedgewars/Data/Themes/CrazyMission/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/CrazyMission/horizont.png
Binary file share/hedgewars/Data/Themes/CrazyMission/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Deepspace/Sky.png
Binary file share/hedgewars/Data/Themes/Deepspace/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Deepspace/Splash.png
Binary file share/hedgewars/Data/Themes/Deepspace/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Deepspace/horizont.png
Binary file share/hedgewars/Data/Themes/Deepspace/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Desert/Chunk.png
Binary file share/hedgewars/Data/Themes/Desert/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Desert/Sky.png
Binary file share/hedgewars/Data/Themes/Desert/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Desert/Splash.png
Binary file share/hedgewars/Data/Themes/Desert/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Desert/horizont.png
Binary file share/hedgewars/Data/Themes/Desert/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/EarthRise/Chunk.png
Binary file share/hedgewars/Data/Themes/EarthRise/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/EarthRise/Sky.png
Binary file share/hedgewars/Data/Themes/EarthRise/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/EarthRise/SkyL.png
Binary file share/hedgewars/Data/Themes/EarthRise/SkyL.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/EarthRise/SkyR.png
Binary file share/hedgewars/Data/Themes/EarthRise/SkyR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/EarthRise/horizont.png
Binary file share/hedgewars/Data/Themes/EarthRise/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/EarthRise/horizontL.png
Binary file share/hedgewars/Data/Themes/EarthRise/horizontL.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/EarthRise/horizontR.png
Binary file share/hedgewars/Data/Themes/EarthRise/horizontR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Eyes/Sky.png
Binary file share/hedgewars/Data/Themes/Eyes/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Eyes/Splash.png
Binary file share/hedgewars/Data/Themes/Eyes/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Eyes/horizont.png
Binary file share/hedgewars/Data/Themes/Eyes/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Freeway/Chunk.png
Binary file share/hedgewars/Data/Themes/Freeway/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Freeway/Sky.png
Binary file share/hedgewars/Data/Themes/Freeway/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Freeway/horizont.png
Binary file share/hedgewars/Data/Themes/Freeway/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Halloween/Chunk.png
Binary file share/hedgewars/Data/Themes/Halloween/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Halloween/Sky.png
Binary file share/hedgewars/Data/Themes/Halloween/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Halloween/SkyL.png
Binary file share/hedgewars/Data/Themes/Halloween/SkyL.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Halloween/SkyR.png
Binary file share/hedgewars/Data/Themes/Halloween/SkyR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Halloween/Splash.png
Binary file share/hedgewars/Data/Themes/Halloween/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Halloween/horizont.png
Binary file share/hedgewars/Data/Themes/Halloween/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Hell/Chunk.png
Binary file share/hedgewars/Data/Themes/Hell/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Hell/Sky.png
Binary file share/hedgewars/Data/Themes/Hell/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Hell/Splash.png
Binary file share/hedgewars/Data/Themes/Hell/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Hell/horizont.png
Binary file share/hedgewars/Data/Themes/Hell/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Island/Chunk.png
Binary file share/hedgewars/Data/Themes/Island/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Island/LandTex.png
Binary file share/hedgewars/Data/Themes/Island/LandTex.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Island/Sky.png
Binary file share/hedgewars/Data/Themes/Island/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Island/horizont.png
Binary file share/hedgewars/Data/Themes/Island/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/BlueWater.png
Binary file share/hedgewars/Data/Themes/Jungle/BlueWater.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Border.png
Binary file share/hedgewars/Data/Themes/Jungle/Border.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Jungle/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,6 @@
+file(GLOB images *.png)
+
+install(FILES
+ theme.cfg
+ ${images}
+ DESTINATION ${SHAREPATH}Data/Themes/Jungle)
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Clouds.png
Binary file share/hedgewars/Data/Themes/Jungle/Clouds.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Droplet.png
Binary file share/hedgewars/Data/Themes/Jungle/Droplet.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Droplet.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Jungle/Droplet.svg Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,296 @@
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+ Carlos Vives B.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/FernLeft.png
Binary file share/hedgewars/Data/Themes/Jungle/FernLeft.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/FernRight.png
Binary file share/hedgewars/Data/Themes/Jungle/FernRight.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Flake.png
Binary file share/hedgewars/Data/Themes/Jungle/Flake.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/FlowerBlue.png
Binary file share/hedgewars/Data/Themes/Jungle/FlowerBlue.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/FlowerRed.png
Binary file share/hedgewars/Data/Themes/Jungle/FlowerRed.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Flowers.png
Binary file share/hedgewars/Data/Themes/Jungle/Flowers.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Girder.png
Binary file share/hedgewars/Data/Themes/Jungle/Girder.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/LandBackTex.png
Binary file share/hedgewars/Data/Themes/Jungle/LandBackTex.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/LandTex.png
Binary file share/hedgewars/Data/Themes/Jungle/LandTex.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Liana.png
Binary file share/hedgewars/Data/Themes/Jungle/Liana.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Monkey.png
Binary file share/hedgewars/Data/Themes/Jungle/Monkey.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/PalmTree.png
Binary file share/hedgewars/Data/Themes/Jungle/PalmTree.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Sky.png
Binary file share/hedgewars/Data/Themes/Jungle/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/SkyL.png
Binary file share/hedgewars/Data/Themes/Jungle/SkyL.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/SkyR.png
Binary file share/hedgewars/Data/Themes/Jungle/SkyR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Snake.png
Binary file share/hedgewars/Data/Themes/Jungle/Snake.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Spider.png
Binary file share/hedgewars/Data/Themes/Jungle/Spider.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/Splash.png
Binary file share/hedgewars/Data/Themes/Jungle/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/horizont.png
Binary file share/hedgewars/Data/Themes/Jungle/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/icon.png
Binary file share/hedgewars/Data/Themes/Jungle/icon.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Jungle/theme.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Jungle/theme.cfg Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,30 @@
+141 149 164
+75 103 25
+$A7 $6A $32
+$B3 $78 $1B $80
+oriental.ogg
+20
+7
+PalmTree
+1 141 225 25 5 1 0 0 230 190
+Flowers
+1 5 65 180 5 1 0 0 150 50
+Liana
+2 0 0 25 10 1 0 40 25 160
+Monkey
+1 20 145 60 5 1 0 0 130 130
+Snake
+1 30 95 40 5 1 0 0 110 75
+FernRight
+2 0 0 20 70 1 40 0 165 70
+FernLeft
+2 185 0 20 70 1 0 0 165 70
+3
+FlowerRed
+2
+FlowerBlue
+2
+Spider
+2
+100
+1 1000 50 50
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Nature/Chunk.png
Binary file share/hedgewars/Data/Themes/Nature/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Nature/LandBackTex.png
Binary file share/hedgewars/Data/Themes/Nature/LandBackTex.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Nature/LandTex.png
Binary file share/hedgewars/Data/Themes/Nature/LandTex.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Nature/LandTex.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Themes/Nature/LandTex.svg Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,6284 @@
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Nature/Sky.png
Binary file share/hedgewars/Data/Themes/Nature/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Nature/horizont.png
Binary file share/hedgewars/Data/Themes/Nature/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Nature/icon.png
Binary file share/hedgewars/Data/Themes/Nature/icon.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Olympics/Chunk.png
Binary file share/hedgewars/Data/Themes/Olympics/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Olympics/Sky.png
Binary file share/hedgewars/Data/Themes/Olympics/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Olympics/horizont.png
Binary file share/hedgewars/Data/Themes/Olympics/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Planes/Sky.png
Binary file share/hedgewars/Data/Themes/Planes/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Planes/horizont.png
Binary file share/hedgewars/Data/Themes/Planes/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/Chunk.png
Binary file share/hedgewars/Data/Themes/Sheep/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/Clouds.png
Binary file share/hedgewars/Data/Themes/Sheep/Clouds.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/Sky.png
Binary file share/hedgewars/Data/Themes/Sheep/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/SkyL.png
Binary file share/hedgewars/Data/Themes/Sheep/SkyL.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/SkyR.png
Binary file share/hedgewars/Data/Themes/Sheep/SkyR.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/barriere.png
Binary file share/hedgewars/Data/Themes/Sheep/barriere.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/fleur.png
Binary file share/hedgewars/Data/Themes/Sheep/fleur.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/fleurland.png
Binary file share/hedgewars/Data/Themes/Sheep/fleurland.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/fleurland2.png
Binary file share/hedgewars/Data/Themes/Sheep/fleurland2.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/fleurland3.png
Binary file share/hedgewars/Data/Themes/Sheep/fleurland3.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/fleurland4.png
Binary file share/hedgewars/Data/Themes/Sheep/fleurland4.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/grass.png
Binary file share/hedgewars/Data/Themes/Sheep/grass.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/grass2.png
Binary file share/hedgewars/Data/Themes/Sheep/grass2.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/grassp.png
Binary file share/hedgewars/Data/Themes/Sheep/grassp.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/grassp2.png
Binary file share/hedgewars/Data/Themes/Sheep/grassp2.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/horizont.png
Binary file share/hedgewars/Data/Themes/Sheep/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/mouton1.png
Binary file share/hedgewars/Data/Themes/Sheep/mouton1.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/mouton2.png
Binary file share/hedgewars/Data/Themes/Sheep/mouton2.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/mouton3.png
Binary file share/hedgewars/Data/Themes/Sheep/mouton3.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/mouton4.png
Binary file share/hedgewars/Data/Themes/Sheep/mouton4.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Sheep/rocher.png
Binary file share/hedgewars/Data/Themes/Sheep/rocher.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Snow/Chunk.png
Binary file share/hedgewars/Data/Themes/Snow/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Snow/Sky.png
Binary file share/hedgewars/Data/Themes/Snow/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Snow/horizont.png
Binary file share/hedgewars/Data/Themes/Snow/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Stage/Bass.png
Binary file share/hedgewars/Data/Themes/Stage/Bass.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Stage/Chunk.png
Binary file share/hedgewars/Data/Themes/Stage/Chunk.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Stage/Sky.png
Binary file share/hedgewars/Data/Themes/Stage/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Stage/Splash.png
Binary file share/hedgewars/Data/Themes/Stage/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Stage/horizont.png
Binary file share/hedgewars/Data/Themes/Stage/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Underwater/Clouds.png
Binary file share/hedgewars/Data/Themes/Underwater/Clouds.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Underwater/Flake.png
Binary file share/hedgewars/Data/Themes/Underwater/Flake.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Underwater/Sky.png
Binary file share/hedgewars/Data/Themes/Underwater/Sky.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Underwater/Splash.png
Binary file share/hedgewars/Data/Themes/Underwater/Splash.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Underwater/clam.png
Binary file share/hedgewars/Data/Themes/Underwater/clam.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Underwater/crab.png
Binary file share/hedgewars/Data/Themes/Underwater/crab.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/Underwater/horizont.png
Binary file share/hedgewars/Data/Themes/Underwater/horizont.png has changed
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/Themes/themes.cfg
--- a/share/hedgewars/Data/Themes/themes.cfg Wed Oct 27 14:23:47 2010 +0200
+++ b/share/hedgewars/Data/Themes/themes.cfg Mon Nov 15 12:37:39 2010 +0100
@@ -12,6 +12,7 @@
Halloween
Hell
Island
+Jungle
Nature
Olympics
Sheep
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/misc/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/misc/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,10 @@
+if(DEFINED DATA_INSTALL_DIR)
+ set(HEDGEWARS_DATADIR ${DATA_INSTALL_DIR})
+else()
+ set(HEDGEWARS_DATADIR ${CMAKE_INSTALL_PREFIX}/share/)
+endif()
+configure_file(hwengine.desktop.in hwengine.desktop)
+
+file(GLOB miscfiles *.xml *.desktop)
+
+install(FILES ${miscfiles} DESTINATION ${SHAREPATH}Data/misc)
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/misc/hedgewars-mimeinfo.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,41 @@
+
+
+
+
+
+ Hedgewars Demo
+ Hedgewars Demo
+ Hedgewars Démonstration
+ Demo gry Hedgewars
+ Demo hry Hedgewars
+ Demo för Hedgewars
+ Demo de Hedgewars
+ Demo di Hedgewars
+ Hedgewars Demo
+
+
+
+
+
+
+
+
+
+ Hedgewars Save
+ Hedgewars gespeichertes Spiel
+ Zapis gry Hedgewars
+ Uložená hra Hedgewars
+ Sparfil för Hedgewars
+ Partida guardada de Hedgewars
+ Partita salvata di Hedgewars
+ Partida guardada de Hedgewars
+
+
+
+
+
+
+
diff -r 45b63c2a694f -r 19cbea33e4d2 share/hedgewars/Data/misc/hwengine.desktop.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/misc/hwengine.desktop.in Mon Nov 15 12:37:39 2010 +0100
@@ -0,0 +1,22 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+Encoding=UTF-8
+Name=Hedgewars Engine
+GenericName=Hedgewars engine, for playback of saves and demos
+GenericName[de]=Hedgewars engine, für die Wiedergabe von gespeicherten Spielen und Demos
+GenericName[pl]=Silnik gry Hedgewars do odtwarzania dem i zapisów gier
+GenericName[sk]=Engine hry Hedgewars, pre prehrávanie uložených hier a demo súborov
+GenericName[sv]=Hedgewarsmotorn, för att öppna demo- och sparfiler
+GenericName[es]=Motor del juego Hedgewars, reproduce demos y partidas guardadas
+GenericName[it]=Motore grafico di Hedgewars, riproduce le demo e riprende le partite salvate
+GenericName[pt]=Motor de jogo Hedgewars, para reprodução de jogos guardados e demos
+GenericName[ru]=Движок Hedgewars для проигрывания сохранённых игр и демок
+Icon=hedgewars.png
+Exec=${CMAKE_INSTALL_PREFIX}/bin/hwengine ${HEDGEWARS_DATADIR}/hedgewars/Data %f
+Path=/tmp
+Terminal=false
+StartupNotify=false
+NoDisplay=true
+Categories=Application;Game;StrategyGame;
+MimeType=application/x-hedgewars-demo;application/x-hedgewars-save
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/CMakeLists.txt
--- a/tools/CMakeLists.txt Wed Oct 27 14:23:47 2010 +0200
+++ b/tools/CMakeLists.txt Mon Nov 15 12:37:39 2010 +0100
@@ -17,7 +17,10 @@
find_package(SDL_mixer REQUIRED)
find_package(OGGVORBIS REQUIRED)
find_package(SPARKLE)
- find_program(macdeployqt_EXE NAMES macdeployqt macdeployqt-mac)
+
+ #use the associated tool from the libraries we've selected
+ string(REGEX REPLACE "(.*)/include.*" "\\1" qt_base_dir "${QT_INCLUDE_DIR}")
+ find_program(macdeployqt_EXE NAMES macdeployqt macdeployqt-mac PATHS ${qt_base_dir}/bin NO_DEFAULT_PATH)
if(NOT macdeployqt_EXE)
message(FATAL_ERROR "The utility macdeployqt is required to create the bundle!")
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/CreateMacBundle.cmake.in
--- a/tools/CreateMacBundle.cmake.in Wed Oct 27 14:23:47 2010 +0200
+++ b/tools/CreateMacBundle.cmake.in Mon Nov 15 12:37:39 2010 +0100
@@ -1,3 +1,5 @@
+message(STATUS "Performing standalone bundle creation...")
+
execute_process(COMMAND mkdir -p ${frameworks_dir})
execute_process(COMMAND ${macdeployqt_EXE} ${CMAKE_BINARY_DIR}/${bundle_name} OUTPUT_QUIET ERROR_QUIET)
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/MissionsEditor/MissionsEditor.pro
--- a/tools/MissionsEditor/MissionsEditor.pro Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-# -------------------------------------------------
-# Project created by QtCreator 2009-10-21T19:51:57
-# -------------------------------------------------
-TARGET = MissionsEditor
-TEMPLATE = app
-SOURCES += main.cpp \
- editor.cpp \
- teamedit.cpp \
- hedgehogedit.cpp
-HEADERS += editor.h \
- teamedit.h \
- hedgehogedit.h
-FORMS += editor.ui \
- teamedit.ui \
- hedgehogedit.ui
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/MissionsEditor/editor.cpp
--- a/tools/MissionsEditor/editor.cpp Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-#include
-#include
-#include "editor.h"
-#include "ui_editor.h"
-
-editor::editor(QWidget *parent)
- : QMainWindow(parent), ui(new Ui::editor)
-{
- ui->setupUi(this);
-
- reset();
-
- cbFlags
- << ui->cbForts
- << ui->cbMultiWeapon
- << ui->cbSolidLand
- << ui->cbBorder
- << ui->cbDivideTeams
- << ui->cbLowGravity
- << ui->cbLaserSight
- << ui->cbInvulnerable
- << ui->cbMines
- << ui->cbVampiric
- << ui->cbKarma
- << ui->cbArtillery
- << ui->cbOneClanMode
- ;
-}
-
-editor::~editor()
-{
- delete ui;
-}
-
-void editor::reset()
-{
- for(int i = 0; i < 6; ++i)
- {
- ui->twTeams->setTabEnabled(i, false);
- ui->twTeams->widget(i)->setEnabled(false);
- }
-}
-
-void editor::on_actionLoad_triggered()
-{
- QString fileName = QFileDialog::getOpenFileName(this, QString(), QString(), "Missions (*.txt)");
-
- if(!fileName.isEmpty())
- load(fileName);
-}
-
-void editor::load(const QString & fileName)
-{
- int currTeam = -1;
-
- QFile file(fileName);
-
- if(!file.open(QIODevice::ReadOnly))
- {
- QMessageBox::warning(this, "File error", "No such file");
- return ;
- }
-
- QTextStream stream(&file);
-
- while(!stream.atEnd())
- {
- QString line = stream.readLine();
- if (line.startsWith("seed"))
- ui->leSeed->setText(line.mid(5));
- else
- if (line.startsWith("map"))
- ui->leMap->setText(line.mid(4));
- else
- if (line.startsWith("theme"))
- ui->leTheme->setText(line.mid(6));
- else
- if (line.startsWith("$turntime"))
- ui->sbTurnTime->setValue(line.mid(10).toInt());
- else
- if (line.startsWith("$casefreq"))
- ui->sbCrateDrops->setValue(line.mid(10).toInt());
- else
- if (line.startsWith("$damagepct"))
- ui->sbDamageModifier->setValue(line.mid(11).toInt());
- else
- if (line.startsWith("$gmflags"))
- {
- quint32 flags = line.mid(9).toInt();
- foreach(QCheckBox * cb, cbFlags)
- {
- cb->setChecked(flags & 1);
- flags >>= 1;
- }
- }
- else
- if (line.startsWith("addteam") && (currTeam < 5))
- {
- ++currTeam;
- ui->twTeams->setTabEnabled(currTeam, true);
- ui->twTeams->widget(currTeam)->setEnabled(true);
-
- line = line.mid(8);
- int spacePos = line.indexOf('\x20');
- quint32 teamColor = line.left(spacePos).toUInt();
- QString teamName = line.mid(spacePos + 1);
-
- TeamEdit * te = qobject_cast(ui->twTeams->widget(currTeam));
- te->setTeam(teamName, teamColor);
- }
- else
- if (line.startsWith("addhh") && (currTeam >= 0))
- {
- line = line.mid(6);
- quint32 level = line.left(1).toUInt();
- line = line.mid(2);
- int spacePos = line.indexOf('\x20');
- quint32 health = line.left(spacePos).toUInt();
- QString hhName = line.mid(spacePos + 1);
-
- TeamEdit * te = qobject_cast(ui->twTeams->widget(currTeam));
- te->addHedgehog(level, health, hhName);
- }
- else
- if (line.startsWith("fort") && (currTeam >= 0))
- {
- TeamEdit * te = qobject_cast(ui->twTeams->widget(currTeam));
- te->setFort(line.mid(5));
- }
- else
- if (line.startsWith("hat") && (currTeam >= 0))
- {
- TeamEdit * te = qobject_cast(ui->twTeams->widget(currTeam));
- te->setLastHHHat(line.mid(4));
- }
- else
- if (line.startsWith("hhcoords") && (currTeam >= 0))
- {
- line = line.mid(9);
- int spacePos = line.indexOf('\x20');
- int x = line.left(spacePos).toUInt();
- int y = line.mid(spacePos + 1).toInt();
-
- TeamEdit * te = qobject_cast(ui->twTeams->widget(currTeam));
- te->setLastHHCoords(x, y);
- }
- else
- if (line.startsWith("grave") && (currTeam >= 0))
- {
- TeamEdit * te = qobject_cast(ui->twTeams->widget(currTeam));
- te->setGrave(line.mid(6));
- }
- else
- if (line.startsWith("voicepack") && (currTeam >= 0))
- {
- TeamEdit * te = qobject_cast(ui->twTeams->widget(currTeam));
- te->setVoicepack(line.mid(10));
- }
- }
-}
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/MissionsEditor/editor.h
--- a/tools/MissionsEditor/editor.h Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#ifndef EDITOR_H
-#define EDITOR_H
-
-#include
-
-namespace Ui
-{
- class editor;
-}
-
-class QCheckBox;
-
-class editor : public QMainWindow
-{
- Q_OBJECT
-
-public:
- editor(QWidget *parent = 0);
- ~editor();
-
-private:
- Ui::editor *ui;
- QList cbFlags;
-
- void load(const QString & fileName);
- void reset();
-
-private slots:
- void on_actionLoad_triggered();
-};
-
-#endif // EDITOR_H
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/MissionsEditor/editor.ui
--- a/tools/MissionsEditor/editor.ui Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,406 +0,0 @@
-
-
- editor
-
-
-
- 0
- 0
- 419
- 476
-
-
-
- editor
-
-
-
- -
-
-
- 2
-
-
-
- Mission
-
-
- -
-
-
- Name
-
-
-
- -
-
-
- -
-
-
- Description
-
-
-
- -
-
-
- -
-
-
- Map
-
-
-
- -
-
-
- Theme
-
-
-
- -
-
-
- -
-
-
-
-
-
-
- Options
-
-
- -
-
- -
-
-
- Invulnerable
-
-
-
- -
-
-
- Artillery
-
-
-
- -
-
-
- SolidLand
-
-
-
- -
-
-
- Vampiric
-
-
-
- -
-
-
- OneClanMode
-
-
- true
-
-
-
- -
-
-
- Karma
-
-
-
- -
-
-
- LaserSight
-
-
-
- -
-
-
- Border
-
-
-
- -
-
-
- LowGravity
-
-
-
- -
-
-
- Mines
-
-
-
- -
-
-
- DivideTeams
-
-
-
- -
-
-
- MultiWeapon
-
-
- true
-
-
-
- -
-
-
- Forts
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
-
- -
-
- -
-
-
- Seed
-
-
-
- -
-
-
- foobar
-
-
-
- -
-
-
- Damage Modifier
-
-
-
- -
-
-
- Turn Time
-
-
-
- -
-
-
- Crate Drops
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
- -
-
-
- 10
-
-
- 300
-
-
- 15
-
-
- 100
-
-
-
- -
-
-
- 1000
-
-
- 100000
-
-
- 5000
-
-
- 45000
-
-
-
- -
-
-
- 3
-
-
-
-
-
-
-
-
-
- Teams
-
-
- -
-
-
- Add Team
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
- true
-
-
- 0
-
-
-
- Team 1
-
-
-
-
- Team 2
-
-
-
-
- Team 3
-
-
-
-
- Team 4
-
-
-
-
- Team 5
-
-
-
-
- Team 6
-
-
-
-
-
-
-
-
- Triggers
-
-
-
-
-
-
-
-
-
-
- &Load...
-
-
-
-
- &Save
-
-
-
-
- &Quit
-
-
-
-
-
-
- TeamEdit
- QWidget
-
- 1
-
-
-
-
-
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/MissionsEditor/hedgehogedit.cpp
--- a/tools/MissionsEditor/hedgehogedit.cpp Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-#include "hedgehogedit.h"
-#include "ui_hedgehogedit.h"
-
-HedgehogEdit::HedgehogEdit(QWidget *parent) :
- QFrame(parent),
- m_ui(new Ui::HedgehogEdit)
-{
- m_ui->setupUi(this);
-}
-
-HedgehogEdit::~HedgehogEdit()
-{
- delete m_ui;
-}
-
-void HedgehogEdit::changeEvent(QEvent *e)
-{
- QWidget::changeEvent(e);
- switch (e->type()) {
- case QEvent::LanguageChange:
- m_ui->retranslateUi(this);
- break;
- default:
- break;
- }
-}
-
-void HedgehogEdit::setHedgehog(quint32 level, quint32 health, const QString & name)
-{
- m_ui->cbLevel->setCurrentIndex(level);
- m_ui->sbHealth->setValue(health);
- m_ui->leName->setText(name);
-}
-
-void HedgehogEdit::setHat(const QString & name)
-{
- m_ui->leHat->setText(name);
-}
-
-void HedgehogEdit::setCoordinates(int x, int y)
-{
- m_ui->pbCoordinates->setText(QString("%1x%2").arg(x).arg(y));
-}
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/MissionsEditor/hedgehogedit.h
--- a/tools/MissionsEditor/hedgehogedit.h Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-#ifndef HEDGEHOGEDIT_H
-#define HEDGEHOGEDIT_H
-
-#include
-
-namespace Ui {
- class HedgehogEdit;
-}
-
-class HedgehogEdit : public QFrame {
- Q_OBJECT
-public:
- HedgehogEdit(QWidget *parent = 0);
- ~HedgehogEdit();
-
- void setHedgehog(quint32 level = 0, quint32 health = 100, const QString & name = QString());
- void setHat(const QString & name);
- void setCoordinates(int x, int y);
-
-protected:
- void changeEvent(QEvent *e);
-
-private:
- Ui::HedgehogEdit *m_ui;
-};
-
-#endif // HEDGEHOGEDIT_H
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/MissionsEditor/hedgehogedit.ui
--- a/tools/MissionsEditor/hedgehogedit.ui Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-
-
- HedgehogEdit
-
-
-
- 0
- 0
- 400
- 300
-
-
-
- Form
-
-
- QFrame::StyledPanel
-
-
- QFrame::Raised
-
-
-
- 3
-
-
- 3
-
- -
-
-
- -
-
-
- X
-
-
-
- -
-
-
- 0
-
- -
-
- Human
-
-
- -
-
- Level 5
-
-
- -
-
- Level 4
-
-
- -
-
- Level 3
-
-
- -
-
- Level 2
-
-
- -
-
- Level 1
-
-
-
-
- -
-
-
- -
-
-
- Name
-
-
-
- -
-
-
- Level
-
-
-
- -
-
-
- 1
-
-
- 300
-
-
- 100
-
-
-
- -
-
-
- Health
-
-
-
- -
-
-
- Hat
-
-
-
- -
-
-
- Random
-
-
-
- -
-
-
- Place
-
-
-
-
-
-
-
-
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/MissionsEditor/main.cpp
--- a/tools/MissionsEditor/main.cpp Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-#include
-#include "editor.h"
-
-int main(int argc, char *argv[])
-{
- QApplication a(argc, argv);
- editor w;
- w.show();
- return a.exec();
-}
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/MissionsEditor/teamedit.cpp
--- a/tools/MissionsEditor/teamedit.cpp Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-#include "teamedit.h"
-#include "ui_teamedit.h"
-
-TeamEdit::TeamEdit(QWidget *parent) :
- QWidget(parent),
- m_ui(new Ui::TeamEdit)
-{
- m_ui->setupUi(this);
-
- reset();
-}
-
-TeamEdit::~TeamEdit()
-{
- delete m_ui;
-}
-
-void TeamEdit::changeEvent(QEvent *e)
-{
- QWidget::changeEvent(e);
- switch (e->type()) {
- case QEvent::LanguageChange:
- m_ui->retranslateUi(this);
- break;
- default:
- break;
- }
-}
-
-void TeamEdit::reset()
-{
- QLayout * l = m_ui->scrollArea->widget()->layout();
-
- for(int i = 0; i < 8; ++i)
- l->itemAt(i)->widget()->setVisible(false);
-}
-
-void TeamEdit::setTeam(const QString & teamName, quint32 color)
-{
- m_ui->leTeamName->setText(teamName);
-}
-
-void TeamEdit::setFort(const QString & name)
-{
- m_ui->leFort->setText(name);
-}
-
-void TeamEdit::setGrave(const QString & name)
-{
- m_ui->leGrave->setText(name);
-}
-
-void TeamEdit::setVoicepack(const QString & name)
-{
- m_ui->leVoicepack->setText(name);
-}
-
-void TeamEdit::addHedgehog(quint32 level, quint32 health, const QString & name)
-{
- QLayout * l = m_ui->scrollArea->widget()->layout();
-
- int i = 0;
- while((i < 8) && (l->itemAt(i)->widget()->isVisible())) ++i;
-
- if(i < 8)
- {
- HedgehogEdit * he = qobject_cast(l->itemAt(i)->widget());
- he->setHedgehog(level, health, name);
- l->itemAt(i)->widget()->setVisible(true);
- }
-}
-
-void TeamEdit::setLastHHHat(const QString & name)
-{
- QLayout * l = m_ui->scrollArea->widget()->layout();
-
- int i = 0;
- while((i < 8) && (l->itemAt(i)->widget()->isVisible())) ++i;
-
- --i;
-
- HedgehogEdit * he = qobject_cast(l->itemAt(i)->widget());
- he->setHat(name);
-}
-
-void TeamEdit::setLastHHCoords(int x, int y)
-{
- QLayout * l = m_ui->scrollArea->widget()->layout();
-
- int i = 0;
- while((i < 8) && (l->itemAt(i)->widget()->isVisible())) ++i;
-
- --i;
-
- HedgehogEdit * he = qobject_cast(l->itemAt(i)->widget());
- he->setCoordinates(x ,y);
-}
-
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/MissionsEditor/teamedit.h
--- a/tools/MissionsEditor/teamedit.h Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#ifndef TEAMEDIT_H
-#define TEAMEDIT_H
-
-#include
-
-namespace Ui {
- class TeamEdit;
-}
-
-class TeamEdit : public QWidget {
- Q_OBJECT
-public:
- TeamEdit(QWidget *parent = 0);
- ~TeamEdit();
-
- void reset();
- void setTeam(const QString & teamName = QString(), quint32 color = 0xdd0000);
- void addHedgehog(quint32 level = 0, quint32 health = 100, const QString & name = QString());
- void setFort(const QString & name);
- void setGrave(const QString & name);
- void setLastHHHat(const QString & name);
- void setLastHHCoords(int x, int y);
- void setVoicepack(const QString & name);
-protected:
- void changeEvent(QEvent *e);
-
-private:
- Ui::TeamEdit *m_ui;
-};
-
-#endif // TEAMEDIT_H
diff -r 45b63c2a694f -r 19cbea33e4d2 tools/MissionsEditor/teamedit.ui
--- a/tools/MissionsEditor/teamedit.ui Wed Oct 27 14:23:47 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-
-
- TeamEdit
-
-
-
- 0
- 0
- 450
- 414
-
-
-
- Form
-
-
- -
-
- -
-
-
- Team name
-
-
-
- -
-
-
- -
-
-
- -
-
-
- Colour
-
-
-
- -
-
-
- Fort
-
-
-
- -
-
-
- Grave
-
-
-
- -
-
-
- -
-
-
- -
-
-
- Voicepack
-
-
-
- -
-
-
-
-
- -
-
-
- true
-
-
-
-
- 0
- 0
- 301
- 235
-
-
-
-
- 3
-
-
- 4
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 120
-
-
-
-
-
-
-
-
- -
-
-
- Add hedgehog
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 117
- 125
-
-
-
-
- -
-
-
- Delete team
-
-
-
-
-
-
-
- HedgehogEdit
- QWidget
-
- 1
-
-
-
-
-