# HG changeset patch # User unc0rr # Date 1417554453 -10800 # Node ID 8e95911cb86b764e5ae89647b420aeda6aa54d16 # Parent af019fa700801c8db39a529de0ca897913119258# Parent df7a73db2c43cb9ece9c953fa526ce49d5efbcd4 merge default diff -r af019fa70080 -r 8e95911cb86b .travis.yml --- a/.travis.yml Sat Nov 22 00:55:01 2014 +0300 +++ b/.travis.yml Wed Dec 03 00:07:33 2014 +0300 @@ -25,7 +25,7 @@ - sudo apt-get update -qq - sudo apt-get install debhelper cmake dpkg-dev libqt4-dev qt4-qmake libphysfs-dev libsdl1.2-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libsdl-net1.2-dev bzip2 ghc libghc-mtl-dev libghc-parsec3-dev libghc-bytestring-show-dev libghc-vector-dev libghc-zlib-dev libghc-random-dev libghc-stm-dev libghc-network-dev libghc-dataenc-dev libghc-hslogger-dev libghc-utf8-string-dev libghc-sha-dev libghc-entropy-dev liblua5.1-0-dev imagemagick fpc fp-compiler fp-units-misc libpng-dev fp-units-gfx libavcodec-dev libavformat-dev freeglut3-dev libglew1.6-dev script: - - mkdir build && cd build && cmake $BUILD_ARGS .. && make VERBOSE=1 + - mkdir build && cd build && cmake $BUILD_ARGS .. && make VERBOSE=1 && make test_verbose notifications: irc: channels: diff -r af019fa70080 -r 8e95911cb86b CMakeLists.txt --- a/CMakeLists.txt Sat Nov 22 00:55:01 2014 +0300 +++ b/CMakeLists.txt Wed Dec 03 00:07:33 2014 +0300 @@ -12,7 +12,7 @@ include(${CMAKE_MODULE_PATH}/utils.cmake) #possible cmake configuration -option(NOSERVER "Disable gameServer build (off)]" OFF) +option(NOSERVER "Disable gameServer build (off)" OFF) option(NOPNG "Disable screenshoot compression (off)" OFF) option(NOVIDEOREC "Disable video recording (off)" OFF) @@ -33,8 +33,8 @@ option(MINIMAL_FLAGS "Respect system flags as much as possible (off)" OFF) option(NOAUTOUPDATE "Disable OS X Sparkle update checking (off)" OFF) -option(BUILD_ENGINE_C "Compile hwengine as native C [default: off]" OFF) -option(GL2 "Enable OpenGL 2 rendering [default: off]" OFF) +option(BUILD_ENGINE_C "Compile hwengine as native C (off)" OFF) +option(GL2 "Enable OpenGL 2 rendering !!!EXPERIMENTAL - DO NOT USE!!! [default: off)" OFF) set(GHFLAGS "" CACHE STRING "Additional Haskell flags") if(UNIX AND NOT APPLE) @@ -230,7 +230,11 @@ include(${CMAKE_MODULE_PATH}/cpackvars.cmake) +if(NOT BUILD_ENGINE_C) enable_testing() +endif(NOT BUILD_ENGINE_C) +add_custom_target(test COMMAND ${CMAKE_CTEST_COMMAND} -E '^todo/' --timeout 300 --schedule-random) +add_custom_target(test_verbose COMMAND ${CMAKE_CTEST_COMMAND} -E '^todo/' --timeout 300 --schedule-random -V) set(LUATESTS_DIR "${CMAKE_SOURCE_DIR}/tests/lua") set(TESTSDATA_DIR "${CMAKE_SOURCE_DIR}/share/hedgewars/Data") diff -r af019fa70080 -r 8e95911cb86b CREDITS --- a/CREDITS Sat Nov 22 00:55:01 2014 +0300 +++ b/CREDITS Wed Dec 03 00:07:33 2014 +0300 @@ -25,6 +25,7 @@ - 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) - Randy Broda -> Cyclops (2011), Soldier (2011) +- Wohlstand -> PoliceGirl [based on policecap and sm_daisy] (2014) ========== = GRAVESTONES diff -r af019fa70080 -r 8e95911cb86b ChangeLog.txt --- a/ChangeLog.txt Sat Nov 22 00:55:01 2014 +0300 +++ b/ChangeLog.txt Wed Dec 03 00:07:33 2014 +0300 @@ -1,6 +1,52 @@ + features * bugfixes +0.9.20 -> 0.9.21: + + New type of randomly generated maps: Perlin Maps. + + Old Random generated maps are more diverse now. + + Slider for adjusting land generation detail. + + Highlander gamemode can now be used with custom weapon schemes (1-8=How probable to get this weapon. 9=All hogs get it) + + New gameplay mode "Construction Mode" + + New gameplay mode "TechRacer" + + New training/multiplayer mission: "Climb Home" + + Game scheme screen has a "Script parameter" field now. This allows to make more customizable scripts/modes. + + Network game rejoining. Note: Your team(s) will vanish after 3 turns. + + Visual and gameplay changes to "sea" - world edges. + + New engine command: /togglechat will disable/enable chat display (does not affect chat history display) + + Change to Racer: first weapon/utility available will be automatically selected on start + + Added some visual feedback to failed girder placement. + + Various performance tweaks, especially for very large maps. + + Allow switching through hogs in reverse order with PRECISE+HOGSWITCH (left shift + tab, by default) + + Added support for custom Sudden Death music to theme.cfg (e.g. sd-music=hell.ogg ). + + New Hats: policegirl, fr_tomato, cratehider + * Fixed drill rockets sometimes exploding on impact. + * Fixed trainings broken due to indestructable targets/crates. + * Fixes and tweaks for low qualily rendering. + * Sinegun won't shoot through -solid- land anymore + * Many bug fixes and tweaks. + +Frontend / Netgame: + + High resolution previews! + + Preview for dynamic maps generated by game style scripts (e.g. "ShoppaMap))! + + Moved room status filter to top left of rooms list. + +Lua API: + + More helpful syntax error messages. + + New hooks: onParameters(), onPreviewInit(). + + New functions: + Dismissteam(teamname) + GetGameFlag(gameflag) -- returns true/false + PlaceSprite(x, y, sprite, frameIdx [, landFlag, ... ]) -- sprite refers to an id from the TSprite list + SetWaterLine(waterline) -- moves water level to the specified y. the current value is in read-only global waterline + SetNextWeapon() -- make current hedgehog switch to next weapon. e.g. use in trainings to preselect weapon + SetWeapon(ammoType) -- decide which weapon the current hedgehog should equip + + New global enumerations: + Mapgens: mgRandom, mgMaze, mgPerlin, mgDrawn + TSprite values + LandFlags: lfIndestructible, lfIce, lfBouncy + + Changed functions: + HogSay(gearUid, text, manner [, vgState]) -- now also allows you to make NON-Hedgehog gears speak, e.g. barrels... wait what?! + 0.9.19 -> 0.9.20: + New campaign, A Space Adventure! + Password protected rooms diff -r af019fa70080 -r 8e95911cb86b QTfrontend/game.cpp --- a/QTfrontend/game.cpp Sat Nov 22 00:55:01 2014 +0300 +++ b/QTfrontend/game.cpp Wed Dec 03 00:07:33 2014 +0300 @@ -145,6 +145,7 @@ HWProto::addStringToBuffer(teamscfg, "eseed " + QUuid::createUuid().toString()); HWProto::addStringToBuffer(teamscfg, "e$template_filter 2"); + HWProto::addStringToBuffer(teamscfg, "e$feature_size "+QString::number(rand()%18+4)); HWTeam team1; team1.setDifficulty(0); diff -r af019fa70080 -r 8e95911cb86b QTfrontend/hwconsts.cpp.in --- a/QTfrontend/hwconsts.cpp.in Sat Nov 22 00:55:01 2014 +0300 +++ b/QTfrontend/hwconsts.cpp.in Wed Dec 03 00:07:33 2014 +0300 @@ -70,6 +70,12 @@ << qMakePair(QString("Highlander"), QString( AMMOLINE_HIGHLANDER_QT AMMOLINE_HIGHLANDER_PROB AMMOLINE_HIGHLANDER_DELAY AMMOLINE_HIGHLANDER_CRATE )) + << qMakePair(QString("Construction Mode"), QString( + AMMOLINE_CONSTRUCTION_QT AMMOLINE_CONSTRUCTION_PROB + AMMOLINE_CONSTRUCTION_DELAY AMMOLINE_CONSTRUCTION_CRATE )) + << qMakePair(QString("Shoppa Pro"), QString( + AMMOLINE_SHOPPAPRO_QT AMMOLINE_SHOPPAPRO_PROB + AMMOLINE_SHOPPAPRO_DELAY AMMOLINE_SHOPPAPRO_CRATE )) ; unsigned int colors[] = HW_TEAMCOLOR_ARRAY; diff -r af019fa70080 -r 8e95911cb86b QTfrontend/model/ammoSchemeModel.cpp --- a/QTfrontend/model/ammoSchemeModel.cpp Sat Nov 22 00:55:01 2014 +0300 +++ b/QTfrontend/model/ammoSchemeModel.cpp Wed Dec 03 00:07:33 2014 +0300 @@ -84,6 +84,7 @@ << "Timeless" << "Thinking with Portals" << "King Mode" + << "Construction Mode" ; numberOfDefaultSchemes = predefSchemesNames.size(); @@ -604,7 +605,53 @@ << QVariant() // scriptparam 42 ; - + QList construction; + construction + << predefSchemesNames[11] // 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(true) // disable girders 16 + << QVariant(true) // disable land objects 17 + << QVariant(false) // AI survival 18 + << QVariant(true) // 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(false) // tag team 24 + << QVariant(false) // bottom border 25 + << QVariant(100) // damage modfier 26 + << QVariant(45) // turn time 27 + << QVariant(100) // init health 28 + << QVariant(15) // sudden death 29 + << QVariant(5) // case prob 30 + << QVariant(3) // mines time 31 + << QVariant(0) // mines number 32 + << QVariant(0) // mine dud pct 33 + << QVariant(0) // explosives 34 + << QVariant(35) // health case pct 35 + << QVariant(25) // health case amt 36 + << QVariant(47) // water rise amt 37 + << QVariant(5) // health dec amt 38 + << QVariant(100) // rope modfier 39 + << QVariant(100) // get away time 40 + << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 + ; + schemes.append(defaultScheme); schemes.append(proMode); schemes.append(shoppa); @@ -616,6 +663,7 @@ schemes.append(timeless); schemes.append(thinkingportals); schemes.append(kingmode); + schemes.append(construction); int size = fileConfig.beginReadArray("schemes"); diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/Background.png Binary file QTfrontend/res/Background.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/BackgroundChristmas.png Binary file QTfrontend/res/BackgroundChristmas.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/BackgroundEaster.png Binary file QTfrontend/res/BackgroundEaster.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/Confetti.png Binary file QTfrontend/res/Confetti.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/Egg.png Binary file QTfrontend/res/Egg.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/Exit.png Binary file QTfrontend/res/Exit.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/Flake.png Binary file QTfrontend/res/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/LocalPlay.png Binary file QTfrontend/res/LocalPlay.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/NetworkPlayDisabled.png Binary file QTfrontend/res/NetworkPlayDisabled.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/PlaySound.png Binary file QTfrontend/res/PlaySound.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/Save.png Binary file QTfrontend/res/Save.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/Settings.png Binary file QTfrontend/res/Settings.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/Star.png Binary file QTfrontend/res/Star.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/Start.png Binary file QTfrontend/res/Start.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsBestKiller.png Binary file QTfrontend/res/StatsBestKiller.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsBestShot.png Binary file QTfrontend/res/StatsBestShot.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsCustomAchievement.png Binary file QTfrontend/res/StatsCustomAchievement.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsD.png Binary file QTfrontend/res/StatsD.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsH.png Binary file QTfrontend/res/StatsH.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsHedgehogsKilled.png Binary file QTfrontend/res/StatsHedgehogsKilled.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsMedal1.png Binary file QTfrontend/res/StatsMedal1.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsMedal2.png Binary file QTfrontend/res/StatsMedal2.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsMedal3.png Binary file QTfrontend/res/StatsMedal3.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsMedal4.png Binary file QTfrontend/res/StatsMedal4.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsMostSelfDamage.png Binary file QTfrontend/res/StatsMostSelfDamage.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsR.png Binary file QTfrontend/res/StatsR.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsSelfKilled.png Binary file QTfrontend/res/StatsSelfKilled.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/StatsSkipped.png Binary file QTfrontend/res/StatsSkipped.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/Trainings.png Binary file QTfrontend/res/Trainings.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/addfriend.png Binary file QTfrontend/res/addfriend.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/ammopic.png Binary file QTfrontend/res/ammopic.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/botlevels/net0.png Binary file QTfrontend/res/botlevels/net0.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/botlevels/net1.png Binary file QTfrontend/res/botlevels/net1.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/botlevels/net2.png Binary file QTfrontend/res/botlevels/net2.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/botlevels/net3.png Binary file QTfrontend/res/botlevels/net3.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/botlevels/net4.png Binary file QTfrontend/res/botlevels/net4.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/botlevels/net5.png Binary file QTfrontend/res/botlevels/net5.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnArtillery.png Binary file QTfrontend/res/btnArtillery.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnBorder.png Binary file QTfrontend/res/btnBorder.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnDisableLandObjects.png Binary file QTfrontend/res/btnDisableLandObjects.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnForts.png Binary file QTfrontend/res/btnForts.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnInvulnerable.png Binary file QTfrontend/res/btnInvulnerable.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnKarma.png Binary file QTfrontend/res/btnKarma.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnKing.png Binary file QTfrontend/res/btnKing.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnLaserSight.png Binary file QTfrontend/res/btnLaserSight.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnLowGravity.png Binary file QTfrontend/res/btnLowGravity.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnMoreWind.png Binary file QTfrontend/res/btnMoreWind.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnNoWind.png Binary file QTfrontend/res/btnNoWind.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnOverlay.png Binary file QTfrontend/res/btnOverlay.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnPlaceHog.png Binary file QTfrontend/res/btnPlaceHog.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnRandomOrder.png Binary file QTfrontend/res/btnRandomOrder.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnResetWeps.png Binary file QTfrontend/res/btnResetWeps.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnSharedAmmo.png Binary file QTfrontend/res/btnSharedAmmo.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnTeamsDivide.png Binary file QTfrontend/res/btnTeamsDivide.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/btnVampiric.png Binary file QTfrontend/res/btnVampiric.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/camera.png Binary file QTfrontend/res/camera.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Classic_Fairytale/backstab.png Binary file QTfrontend/res/campaign/A_Classic_Fairytale/backstab.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Classic_Fairytale/dragon.png Binary file QTfrontend/res/campaign/A_Classic_Fairytale/dragon.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Classic_Fairytale/epil.png Binary file QTfrontend/res/campaign/A_Classic_Fairytale/epil.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Classic_Fairytale/family.png Binary file QTfrontend/res/campaign/A_Classic_Fairytale/family.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Classic_Fairytale/journey.png Binary file QTfrontend/res/campaign/A_Classic_Fairytale/journey.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Classic_Fairytale/queen.png Binary file QTfrontend/res/campaign/A_Classic_Fairytale/queen.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Classic_Fairytale/shadow.png Binary file QTfrontend/res/campaign/A_Classic_Fairytale/shadow.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Classic_Fairytale/united.png Binary file QTfrontend/res/campaign/A_Classic_Fairytale/united.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Space_Adventure/cosmos.png Binary file QTfrontend/res/campaign/A_Space_Adventure/cosmos.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Space_Adventure/death01.png Binary file QTfrontend/res/campaign/A_Space_Adventure/death01.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Space_Adventure/death02.png Binary file QTfrontend/res/campaign/A_Space_Adventure/death02.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Space_Adventure/desert02.png Binary file QTfrontend/res/campaign/A_Space_Adventure/desert02.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Space_Adventure/desert03.png Binary file QTfrontend/res/campaign/A_Space_Adventure/desert03.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Space_Adventure/ice01.png Binary file QTfrontend/res/campaign/A_Space_Adventure/ice01.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/campaign/A_Space_Adventure/moon01.png Binary file QTfrontend/res/campaign/A_Space_Adventure/moon01.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/friend.png Binary file QTfrontend/res/chat/friend.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/hedgehog.png Binary file QTfrontend/res/chat/hedgehog.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/hedgehog_gray.png Binary file QTfrontend/res/chat/hedgehog_gray.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/hedgehogcontributor.png Binary file QTfrontend/res/chat/hedgehogcontributor.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/hedgehogcontributor_gray.png Binary file QTfrontend/res/chat/hedgehogcontributor_gray.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/ignore.png Binary file QTfrontend/res/chat/ignore.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/ingame.png Binary file QTfrontend/res/chat/ingame.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/lamp.png Binary file QTfrontend/res/chat/lamp.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/lamp_off.png Binary file QTfrontend/res/chat/lamp_off.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/roomadmin.png Binary file QTfrontend/res/chat/roomadmin.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/roomadmin_gray.png Binary file QTfrontend/res/chat/roomadmin_gray.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/roomadmincontributor.png Binary file QTfrontend/res/chat/roomadmincontributor.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/roomadmincontributor_gray.png Binary file QTfrontend/res/chat/roomadmincontributor_gray.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/serveradmin.png Binary file QTfrontend/res/chat/serveradmin.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/chat/serveradmin_gray.png Binary file QTfrontend/res/chat/serveradmin_gray.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/checked.png Binary file QTfrontend/res/checked.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/delete.png Binary file QTfrontend/res/delete.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/dropdown.png Binary file QTfrontend/res/dropdown.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/edit.png Binary file QTfrontend/res/edit.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/file_demo.png Binary file QTfrontend/res/file_demo.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/file_save.png Binary file QTfrontend/res/file_save.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/follow.png Binary file QTfrontend/res/follow.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/hh25x25.png Binary file QTfrontend/res/hh25x25.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/hh25x25grey.png Binary file QTfrontend/res/hh25x25grey.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/hh_small.png Binary file QTfrontend/res/hh_small.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/html/about.html --- a/QTfrontend/res/html/about.html Sat Nov 22 00:55:01 2014 +0300 +++ b/QTfrontend/res/html/about.html Wed Dec 03 00:07:33 2014 +0300 @@ -72,7 +72,7 @@ Czech: Petr Řezáček <rezacek@gmail.com>
Chinese: Jie Luo <lililjlj@gmail.com>
English: Andrey Korotaev <unC0Rr@gmail.com>
- Finnish: Nina Kuisma <ninnnu@gmail.com>
+ Finnish: Nina Kuisma <ninnnu@gmail.com>, Janne Uusitupa
French: Antoine Turmel <geekshadow@gmail.com>, Clement Woitrain <sphrixclement@gmail.com>, Matisumi
German: Peter Hüwe <PeterHuewe@gmx.de>, Mario Liebisch <mario.liebisch@gmail.com>, Richard Karolyi <sheepluva@ercatec.net>
Greek: <talos_kriti@yahoo.gr>
diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/iconBox.png Binary file QTfrontend/res/iconBox.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/iconDamage.png Binary file QTfrontend/res/iconDamage.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/iconDud.png Binary file QTfrontend/res/iconDud.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/iconEarth.png Binary file QTfrontend/res/iconEarth.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/iconHealth.png Binary file QTfrontend/res/iconHealth.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/iconMine.png Binary file QTfrontend/res/iconMine.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/iconRope.png Binary file QTfrontend/res/iconRope.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/iconSuddenDeath.png Binary file QTfrontend/res/iconSuddenDeath.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/iconTime.png Binary file QTfrontend/res/iconTime.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/ignore.png Binary file QTfrontend/res/ignore.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/infinity.png Binary file QTfrontend/res/infinity.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/info.png Binary file QTfrontend/res/info.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/inverse-corner-bl.png Binary file QTfrontend/res/inverse-corner-bl.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/kick.png Binary file QTfrontend/res/kick.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/lightbulb_off.png Binary file QTfrontend/res/lightbulb_off.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/lightbulb_on.png Binary file QTfrontend/res/lightbulb_on.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/lock.png Binary file QTfrontend/res/lock.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/mapCustom.png Binary file QTfrontend/res/mapCustom.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/mapMaze.png Binary file QTfrontend/res/mapMaze.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/mapMissing.png Binary file QTfrontend/res/mapMissing.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/mapMission.png Binary file QTfrontend/res/mapMission.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/mapRandom.png Binary file QTfrontend/res/mapRandom.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/miscicon.png Binary file QTfrontend/res/miscicon.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/net.png Binary file QTfrontend/res/net.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/new.png Binary file QTfrontend/res/new.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/remfriend.png Binary file QTfrontend/res/remfriend.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/spin_down.png Binary file QTfrontend/res/spin_down.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/spin_up.png Binary file QTfrontend/res/spin_up.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/splash.png Binary file QTfrontend/res/splash.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/unchecked.png Binary file QTfrontend/res/unchecked.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/unignore.png Binary file QTfrontend/res/unignore.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/res/unlock.png Binary file QTfrontend/res/unlock.png has changed diff -r af019fa70080 -r 8e95911cb86b QTfrontend/ui/dialog/input_password.cpp --- a/QTfrontend/ui/dialog/input_password.cpp Sat Nov 22 00:55:01 2014 +0300 +++ b/QTfrontend/ui/dialog/input_password.cpp Wed Dec 03 00:07:33 2014 +0300 @@ -56,7 +56,7 @@ layout->addWidget(cbSave, 5, 0); QDialogButtonBox* dbbButtons = new QDialogButtonBox(this); - pbNewAccount = dbbButtons->addButton(QString("New Account"), QDialogButtonBox::ActionRole); + pbNewAccount = dbbButtons->addButton(tr("New Account"), QDialogButtonBox::ActionRole); QPushButton * pbOK = dbbButtons->addButton(QDialogButtonBox::Ok); QPushButton * pbCancel = dbbButtons->addButton(QDialogButtonBox::Cancel); layout->addWidget(dbbButtons, 6, 0); diff -r af019fa70080 -r 8e95911cb86b QTfrontend/ui/widget/chatwidget.cpp --- a/QTfrontend/ui/widget/chatwidget.cpp Sat Nov 22 00:55:01 2014 +0300 +++ b/QTfrontend/ui/widget/chatwidget.cpp Wed Dec 03 00:07:33 2014 +0300 @@ -179,6 +179,8 @@ this->gameSettings = NULL; this->notify = notify; + m_usersModel = NULL; + m_isAdmin = false; m_autoKickEnabled = false; @@ -409,26 +411,27 @@ void HWChatWidget::printChatString( const QString & nick, const QString & str, const QString & cssClassPart, bool highlight) { - QSortFilterProxyModel * playersSortFilterModel = qobject_cast(chatNicks->model()); - if(!playersSortFilterModel) - return; - - PlayersListModel * players = qobject_cast(playersSortFilterModel->sourceModel()); - - if(!players) + if(!m_usersModel) return; // don't show chat lines that are from ignored nicks - if (players->isFlagSet(nick, PlayersListModel::Ignore)) + if (m_usersModel->isFlagSet(nick, PlayersListModel::Ignore)) return; - bool isFriend = (!nick.isEmpty()) && players->isFlagSet(nick, PlayersListModel::Friend); + bool isFriend = (!nick.isEmpty()) && m_usersModel->isFlagSet(nick, PlayersListModel::Friend); QString cssClass = (isFriend ? "msg_Friend" : "msg_User") + cssClassPart; addLine(cssClass, str, highlight); } +bool HWChatWidget::isInGame() { + if (!m_usersModel) + return false; + + return m_usersModel->isFlagSet(m_userNick, PlayersListModel::InGame); +} + void HWChatWidget::addLine(const QString & cssClass, QString line, bool isHighlight) { if (s_displayNone->contains(cssClass)) @@ -452,7 +455,8 @@ { line = QString("%1").arg(line); SDLInteraction::instance().playSoundFile(m_hilightSound); - HWApplication::alert(this, 800); + if (!isInGame()) + HWApplication::alert(this, 800); } chatStrings.append(line); @@ -722,14 +726,14 @@ void HWChatWidget::adminAccess(bool b) { chatNicks->removeAction(acKick); - chatNicks->removeAction(acBan); + //chatNicks->removeAction(acBan); m_isAdmin = b; if(b) { chatNicks->insertAction(0, acKick); - chatNicks->insertAction(0, acBan); + //chatNicks->insertAction(0, acBan); } } @@ -853,6 +857,12 @@ chatNicks->setModel(model); chatNicks->setModelColumn(0); + + QSortFilterProxyModel * sfpModel = qobject_cast(model); + if (sfpModel) + m_usersModel = qobject_cast(sfpModel->sourceModel()); + else + m_usersModel = qobject_cast(model); } void HWChatWidget::nicksContextMenuRequested(const QPoint &pos) diff -r af019fa70080 -r 8e95911cb86b QTfrontend/ui/widget/chatwidget.h --- a/QTfrontend/ui/widget/chatwidget.h Sat Nov 22 00:55:01 2014 +0300 +++ b/QTfrontend/ui/widget/chatwidget.h Wed Dec 03 00:07:33 2014 +0300 @@ -32,6 +32,7 @@ #include "SDLInteraction.h" #include "SmartLineEdit.h" +#include "playerslistmodel.h" class QTextBrowser; class QLineEdit; @@ -87,6 +88,7 @@ QString linkedNick(const QString & nickname); void beforeContentAdd(); void afterContentAdd(); + bool isInGame(); /** * @brief Checks whether the message contains a highlight. @@ -132,6 +134,7 @@ void consoleCommand(const QString & command); private: + PlayersListModel* m_usersModel; bool m_isAdmin; QHBoxLayout mainLayout; QTextBrowser* chatText; diff -r af019fa70080 -r 8e95911cb86b QTfrontend/ui/widget/mapContainer.cpp --- a/QTfrontend/ui/widget/mapContainer.cpp Sat Nov 22 00:55:01 2014 +0300 +++ b/QTfrontend/ui/widget/mapContainer.cpp Wed Dec 03 00:07:33 2014 +0300 @@ -233,6 +233,7 @@ mapFeatureSize->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); bottomLeftLayout->addWidget(mapFeatureSize, 0); connect(mapFeatureSize, SIGNAL(valueChanged(int)), this, SLOT(setFeatureSize(int))); + m_childWidgets << mapFeatureSize; /* Mission description */ diff -r af019fa70080 -r 8e95911cb86b QTfrontend/weapons.h --- a/QTfrontend/weapons.h Sat Nov 22 00:55:01 2014 +0300 +++ b/QTfrontend/weapons.h Wed Dec 03 00:07:33 2014 +0300 @@ -67,6 +67,17 @@ #define AMMOLINE_HIGHLANDER_DELAY "00000000000000000000000000000000000000000000000000000000" #define AMMOLINE_HIGHLANDER_CRATE "00000000000000000000000000000000000000000000000000000000" +#define AMMOLINE_CONSTRUCTION_QT "11000190000000100100000000000000000000000000000000000000" +#define AMMOLINE_CONSTRUCTION_PROB "11111101111111111111111111111111111111111111111111111111" +#define AMMOLINE_CONSTRUCTION_DELAY "00000000000000000000000000000000000000000000000000000000" +#define AMMOLINE_CONSTRUCTION_CRATE "11111101111111111111111111111111111111111111111111111111" + +#define AMMOLINE_SHOPPAPRO_QT "00000099000000000000000000000000000000000000000000000000" +#define AMMOLINE_SHOPPAPRO_PROB "44444000440444000000000000004000000000000000000000000000" +#define AMMOLINE_SHOPPAPRO_DELAY "00000000000000000000000000000000000000000000000000000000" +#define AMMOLINE_SHOPPAPRO_CRATE "11111101111111111111111111111111111111111011011111111211" + + //When adding new weapons also insert one element in cDefaultAmmos list (hwconsts.cpp.in) diff -r af019fa70080 -r 8e95911cb86b cmake_modules/cpackvars.cmake --- a/cmake_modules/cpackvars.cmake Sat Nov 22 00:55:01 2014 +0300 +++ b/cmake_modules/cpackvars.cmake Wed Dec 03 00:07:33 2014 +0300 @@ -35,6 +35,7 @@ ".swp" #version control "\\\\.hg" + "\\\\.git" "\\\\.orig$" #output binary/library "\\\\.exe$" diff -r af019fa70080 -r 8e95911cb86b gameServer/Utils.hs --- a/gameServer/Utils.hs Sat Nov 22 00:55:01 2014 +0300 +++ b/gameServer/Utils.hs Wed Dec 03 00:07:33 2014 +0300 @@ -184,7 +184,7 @@ roomFlags = concat [ "-" , ['g' | isJust $ gameInfo r] - , ['p' | B.null $ password r] + , ['p' | not . B.null $ password r] , ['j' | isRestrictedJoins r] , ['r' | isRegisteredOnly r] ] @@ -200,6 +200,11 @@ ++ (("SCHEME", pr Map.! "SCHEME") : (filter (\(p, _) -> p /= "SCHEME") $ Map.toList pr)) + | clientProto cl < 48 = map (toAnswer cl) $ + ("FULLMAPCONFIG", tail $ Map.elems mpr) + : ("SCHEME", pr Map.! "SCHEME") + : (filter (\(p, _) -> p /= "SCHEME") $ Map.toList pr) + | otherwise = map (toAnswer cl) $ ("FULLMAPCONFIG", Map.elems mpr) : ("SCHEME", pr Map.! "SCHEME") diff -r af019fa70080 -r 8e95911cb86b hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/hwengine.pas Wed Dec 03 00:07:33 2014 +0300 @@ -44,6 +44,7 @@ /////////////////////////////////////////////////////////////////////////////// function DoTimer(Lag: LongInt): boolean; var s: shortstring; + t: LongWord; begin DoTimer:= false; inc(RealTicks, Lag); @@ -79,6 +80,10 @@ PlayMusic; InitZoom(zoom); ScriptCall('onGameStart'); + for t:= 0 to Pred(TeamsCount) do + with TeamsArray[t]^ do + MaxTeamHealth:= TeamHealth; + RecountAllTeamsHealth; GameState:= gsGame; end; gsConfirm, gsGame, gsChat: diff -r af019fa70080 -r 8e95911cb86b hedgewars/pas2cRedo.pas --- a/hedgewars/pas2cRedo.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/pas2cRedo.pas Wed Dec 03 00:07:33 2014 +0300 @@ -84,6 +84,7 @@ min, max:function:integer; assign, rewrite, rewrite_2, reset, reset_2, flush, BlockWrite, BlockRead, close : procedure; FileExists, DirectoryExists, eof : function : boolean; + ExtractFileDir : function : string; ExtractFileName : function : string; ParamCount : function : integer; diff -r af019fa70080 -r 8e95911cb86b hedgewars/pas2cSystem.pas --- a/hedgewars/pas2cSystem.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/pas2cSystem.pas Wed Dec 03 00:07:33 2014 +0300 @@ -103,7 +103,7 @@ GL_LINE_LOOP, GL_LINES, GL_LINE_SMOOTH, GL_LINE_STRIP, GL_MAX_TEXTURE_SIZE, GL_MODELVIEW, GL_ONE_MINUS_SRC_ALPHA, GL_PERSPECTIVE_CORRECTION_HINT, GL_PROJECTION, GL_QUADS, - GL_RENDERER, GL_RGBA, GL_RGBA8, GL_SRC_ALPHA, GL_TEXTURE_2D, + GL_RENDERER, GL_RGB, GL_RGB8, GL_RGBA, GL_RGBA8, GL_SRC_ALPHA, GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_PRIORITY, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRUE, GL_VENDOR, diff -r af019fa70080 -r 8e95911cb86b hedgewars/uAmmos.pas --- a/hedgewars/uAmmos.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uAmmos.pas Wed Dec 03 00:07:33 2014 +0300 @@ -43,11 +43,11 @@ procedure SetWeapon(weap: TAmmoType); procedure DisableSomeWeapons; procedure ResetWeapons; -function GetAmmoByNum(num: Longword): PHHAmmo; +function GetAmmoByNum(num: LongInt): PHHAmmo; function GetCurAmmoEntry(var Hedgehog: THedgehog): PAmmo; function GetAmmoEntry(var Hedgehog: THedgehog; am: TAmmoType): PAmmo; -var StoreCnt: Longword; +var StoreCnt: LongInt; implementation uses uVariables, uCommands, uUtils, uCaptions, uDebug; @@ -151,7 +151,7 @@ FillAmmoStore(StoresList[Pred(StoreCnt)], newAmmos) end; -function GetAmmoByNum(num: Longword): PHHAmmo; +function GetAmmoByNum(num: LongInt): PHHAmmo; begin TryDo(num < StoreCnt, 'Invalid store number', true); GetAmmoByNum:= StoresList[num] diff -r af019fa70080 -r 8e95911cb86b hedgewars/uChat.pas --- a/hedgewars/uChat.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uChat.pas Wed Dec 03 00:07:33 2014 +0300 @@ -392,14 +392,14 @@ ParseCommand('/taunt ' + char(i), true); exit end; + end; - for j:= Low(TChatCmd) to High(TChatCmd) do - if (s = ChatCommandz[j].ChatCmd) then - begin - ParseCommand(ChatCommandz[j].ProcedureCallChatCmd, true); - exit - end; - end; + for j:= Low(TChatCmd) to High(TChatCmd) do + if (s = ChatCommandz[j].ChatCmd) then + begin + ParseCommand(ChatCommandz[j].ProcedureCallChatCmd, true); + exit + end; if (gameType = gmtNet) then SendConsoleCommand(s) diff -r af019fa70080 -r 8e95911cb86b hedgewars/uCollisions.pas --- a/hedgewars/uCollisions.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uCollisions.pas Wed Dec 03 00:07:33 2014 +0300 @@ -75,9 +75,9 @@ ga: TGearArray; procedure AddCI(Gear: PGear); -var t: PGear; begin -if Gear^.CollisionIndex >= 0 then +if (Gear^.CollisionIndex >= 0) or + ((Count > MAXRECTSINDEX-200) and ((Gear^.Kind = gtMine) or (Gear^.Kind = gtSMine) or (Gear^.Kind = gtKnife))) then exit; TryDo(Count <= MAXRECTSINDEX, 'Collision rects array overflow', true); with cinfos[Count] do @@ -90,15 +90,6 @@ end; Gear^.CollisionIndex:= Count; inc(Count); -// mines are the easiest way to overflow collision -if (Count > (MAXRECTSINDEX-20)) then - begin - t:= GearsList; - while (t <> nil) and (t^.Kind <> gtMine) do - t:= t^.NextGear; - if (t <> nil) then - t^.State:= t^.State or gmDelete - end; end; procedure DeleteCI(Gear: PGear); diff -r af019fa70080 -r 8e95911cb86b hedgewars/uCommandHandlers.pas --- a/hedgewars/uCommandHandlers.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uCommandHandlers.pas Wed Dec 03 00:07:33 2014 +0300 @@ -666,7 +666,7 @@ procedure chMapGen(var s: shortstring); begin -cMapGen:= StrToInt(s) +cMapGen:= TMapGen(StrToInt(s)) end; procedure chTemplateFilter(var s: shortstring); diff -r af019fa70080 -r 8e95911cb86b hedgewars/uConsts.pas --- a/hedgewars/uConsts.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uConsts.pas Wed Dec 03 00:07:33 2014 +0300 @@ -318,12 +318,6 @@ cMinPlayWidth = 200; - // MapGen - mgRandom = 0; - mgMaze = 1; - mgPerlin = 2; - mgDrawn = 3; - implementation end. diff -r af019fa70080 -r 8e95911cb86b hedgewars/uFloat.pas --- a/hedgewars/uFloat.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uFloat.pas Wed Dec 03 00:07:33 2014 +0300 @@ -370,8 +370,8 @@ function hwSqrt1(const t: hwFloat): hwFloat; const pwr = 8; // even value, feel free to adjust - rThreshold = 1 shl (pwr + 32); - lThreshold = 1 shl (pwr div 2 + 32); + rThreshold: QWord = 1 shl (pwr + 32); + lThreshold: QWord = 1 shl (pwr div 2 + 32); var l, r: QWord; c: hwFloat; begin diff -r af019fa70080 -r 8e95911cb86b hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uGearsHandlersMess.pas Wed Dec 03 00:07:33 2014 +0300 @@ -2127,10 +2127,11 @@ gX,gY,i: LongInt; sticky: Boolean; vgt: PVisualGear; - tdX,tdY: HWFloat; + tdX,tdY, f: HWFloat; landPixel: Word; begin WorldWrap(Gear); + if Gear^.FlightTime > 0 then dec(Gear^.FlightTime); sticky:= (Gear^.State and gsttmpFlag) <> 0; if not sticky then AllInactive := false; @@ -2139,6 +2140,21 @@ begin AllInactive := false; + if (GameTicks and $F = 0) and (Gear^.FlightTime = 0) then + begin + Gear^.Radius := 7; + tdX:= Gear^.dX; + tdY:= Gear^.dY; + Gear^.dX.QWordValue:= 120000000; + Gear^.dY.QWordValue:= 429496730; + Gear^.dX.isNegative:= getrandom(2)<>1; + Gear^.dY.isNegative:= true; + AmmoShove(Gear, 2, 125); + Gear^.dX:= tdX; + Gear^.dY:= tdY; + Gear^.Radius := 1 + end; + if ((GameTicks mod 100) = 0) then begin vgt:= AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtFire, gstTmpFlag); @@ -2150,19 +2166,29 @@ end; end; - - if Gear^.dX.QWordValue > _0_01.QWordValue then - Gear^.dX := Gear^.dX * _0_995; - - Gear^.dY := Gear^.dY + cGravity; - // if sticky then Gear^.dY := Gear^.dY + cGravity; - - if Gear^.dY.QWordValue > _0_2.QWordValue then - Gear^.dY := Gear^.dY * _0_995; - - //if sticky then Gear^.X := Gear^.X + Gear^.dX else - Gear^.X := Gear^.X + Gear^.dX + cWindSpeed * 640; - Gear^.Y := Gear^.Y + Gear^.dY; + if (Gear^.dX.QWordValue > _2.QWordValue) + or (Gear^.dY.QWordValue > _2.QWordValue) + then + begin + // norm speed vector to length of 2 for fire particles to keep flying in the same direction + f:= _2 / Distance(Gear^.dX, Gear^.dY); + Gear^.dX:= Gear^.dX * f; + Gear^.dY:= Gear^.dY * f; + end + else begin + if Gear^.dX.QWordValue > _0_01.QWordValue then + Gear^.dX := Gear^.dX * _0_995; + + Gear^.dY := Gear^.dY + cGravity; + // if sticky then Gear^.dY := Gear^.dY + cGravity; + + if Gear^.dY.QWordValue > _0_2.QWordValue then + Gear^.dY := Gear^.dY * _0_995; + + //if sticky then Gear^.X := Gear^.X + Gear^.dX else + Gear^.X := Gear^.X + Gear^.dX + cWindSpeed * 640; + Gear^.Y := Gear^.Y + Gear^.dY; + end; gX := hwRound(Gear^.X); gY := hwRound(Gear^.Y); @@ -2646,6 +2672,8 @@ HHGear^.X := int2hwFloat(Gear^.Target.X); HHGear^.Y := int2hwFloat(Gear^.Target.Y); HHGear^.State := HHGear^.State or gstMoving; + if not Gear^.Hedgehog^.Unplaced then + Gear^.State:= Gear^.State or gstAnimation; Gear^.Hedgehog^.Unplaced := false; isCursorVisible := false; playSound(sndWarp) @@ -3066,17 +3094,11 @@ end; procedure doStepCake(Gear: PGear); -var - HHGear: PGear; begin AllInactive := false; - HHGear := Gear^.Hedgehog^.Gear; - HHGear^.Message := HHGear^.Message and (not gmAttack); Gear^.CollisionMask:= lfNotCurrentMask; - FollowGear := Gear; - Gear^.dY:= cMaxWindSpeed * 100; Gear^.doStep := @doStepCakeFall @@ -3093,14 +3115,14 @@ begin for i:= 0 to hogs.size - 1 do with hogs.ar^[i]^ do - begin - if hogs.ar^[i] <> CurrentHedgehog^.Gear then + if (hogs.ar^[i] <> CurrentHedgehog^.Gear) and (Hedgehog^.Effects[heFrozen] = 0) then begin dX:= _50 * cGravity * (Gear^.X - X) / _25; dY:= -_450 * cGravity; Active:= true; end - end; + else if Hedgehog^.Effects[heFrozen] > 255 then + Hedgehog^.Effects[heFrozen]:= 255 end ; AfterAttack; DeleteGear(Gear); @@ -4758,6 +4780,7 @@ SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); flame^.CollisionMask:= lfNotCurrentMask; + //flame^.FlightTime:= 500; use the default huge value to avoid sticky flame suddenly being damaging as opposed to other flames if (Gear^.Health mod 30) = 0 then begin @@ -4765,6 +4788,7 @@ SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); flame^.CollisionMask:= lfNotCurrentMask; + //flame^.FlightTime:= 500; end end; Gear^.Timer:= Gear^.Tag @@ -5533,7 +5557,8 @@ ndY:= -AngleCos(HHGear^.Angle) * _4; if (ndX <> dX) or (ndY <> dY) or ((Target.X <> NoPointX) and (Target.X and LAND_WIDTH_MASK = 0) and - (Target.Y and LAND_HEIGHT_MASK = 0) and ((Land[Target.Y, Target.X] = 0))) then + (Target.Y and LAND_HEIGHT_MASK = 0) and ((Land[Target.Y, Target.X] = 0)) and + (not CheckCoordInWater(Target.X, Target.Y))) then begin updateTarget(Gear, ndX, ndY); Timer := iceWaitCollision; @@ -5557,10 +5582,15 @@ Power := GameTicks; end end - else if (Target.Y >= cWaterLine) or - ((Target.X and LAND_WIDTH_MASK = 0) and - (Target.Y+iceHeight+4 >= cWaterLine) and - (Land[Target.Y, Target.X] = lfIce)) then + else if CheckCoordInWater(Target.X, Target.Y) or + ((Target.X and LAND_WIDTH_MASK = 0) and + (Target.Y and LAND_HEIGHT_MASK = 0) and + (Land[Target.Y, Target.X] = lfIce) and + ((Target.Y+iceHeight+5 > cWaterLine) or + ((WorldEdge = weSea) and + ((Target.X+iceHeight+5 > LongInt(rightX)) or + (Target.X-iceHeight-5 < LongInt(leftX))))) + ) then begin if Timer = iceWaitCollision then begin @@ -5640,7 +5670,14 @@ if (Timer = iceCollideWithWater) and ((GameTicks - Power) > groundFreezingTime div 2) then begin PlaySound(sndHogFreeze); - DrawIceBreak(Target.X, cWaterLine - iceHeight, iceRadius, iceHeight); + if CheckCoordInWater(Target.X, Target.Y) then + DrawIceBreak(Target.X, Target.Y, iceRadius, iceHeight) + else if Target.Y+iceHeight+5 > cWaterLine then + DrawIceBreak(Target.X, Target.Y+iceHeight+5, iceRadius, iceHeight) + else if Target.X+iceHeight+5 > LongInt(rightX) then + DrawIceBreak(Target.X+iceHeight+5, Target.Y, iceRadius, iceHeight) + else + DrawIceBreak(Target.X-iceHeight-5, Target.Y, iceRadius, iceHeight); SetAllHHToActive; Timer := iceWaitCollision; end; @@ -5678,7 +5715,7 @@ end; inc(Pos) end - else if (t > 400) and ((gY > cWaterLine) or + else if (t > 400) and (CheckCoordInWater(gX, gY) or (((gX and LAND_WIDTH_MASK = 0) and (gY and LAND_HEIGHT_MASK = 0)) and (Land[gY, gX] <> 0))) then begin diff -r af019fa70080 -r 8e95911cb86b hedgewars/uGearsHedgehog.pas --- a/hedgewars/uGearsHedgehog.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uGearsHedgehog.pas Wed Dec 03 00:07:33 2014 +0300 @@ -443,6 +443,7 @@ amTardis, amPiano, amIceGun, amRubber: CurAmmoGear:= newGear; end; + if CurAmmoType = amCake then FollowGear:= newGear; if ((CurAmmoType = amMine) or (CurAmmoType = amSMine)) and (GameFlags and gfInfAttack <> 0) then newGear^.FlightTime:= GameTicks + 1000 @@ -863,6 +864,14 @@ var isFalling, isUnderwater: boolean; land: Word; begin +if Gear^.Hedgehog^.Unplaced then + begin + Gear^.dY:= _0; + Gear^.dX:= _0; + Gear^.State:= Gear^.State and (not gstMoving); + exit + end; + land:= 0; isUnderwater:= CheckCoordInWater(hwRound(Gear^.X), hwRound(Gear^.Y) + Gear^.Radius); if Gear^.dX.QWordValue > 8160437862 then @@ -870,13 +879,6 @@ if Gear^.dY.QWordValue > 8160437862 then Gear^.dY.QWordValue:= 8160437862; -if Gear^.Hedgehog^.Unplaced then - begin - Gear^.dY:= _0; - Gear^.dX:= _0; - Gear^.State:= Gear^.State and (not gstMoving); - exit - end; isFalling:= (Gear^.dY.isNegative) or (TestCollisionYKick(Gear, 1) = 0); if isFalling then begin @@ -1359,7 +1361,9 @@ procedure doStepHedgehog(Gear: PGear); var tX: hwFloat; begin -CheckGearDrowning(Gear); +// it might make sense to skip more than just drowning check here +if (not Gear^.Hedgehog^.Unplaced) then + CheckGearDrowning(Gear); if Gear = nil then exit; tX:= Gear^.X; if WorldWrap(Gear) then diff -r af019fa70080 -r 8e95911cb86b hedgewars/uGearsList.pas --- a/hedgewars/uGearsList.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uGearsList.pas Wed Dec 03 00:07:33 2014 +0300 @@ -156,7 +156,7 @@ function AddGear(X, Y: LongInt; Kind: TGearType; State: Longword; dX, dY: hwFloat; Timer: LongWord): PGear; var gear: PGear; - c: byte; + //c: byte; begin inc(GCounter); @@ -408,6 +408,7 @@ gear^.Radius:= 1; gear^.Health:= 5; gear^.Density:= _1; + gear^.FlightTime:= 9999999; // determines whether in-air flames do damage. disabled by default if (gear^.dY.QWordValue = 0) and (gear^.dX.QWordValue = 0) then begin gear^.dY:= (getrandomf - _0_8) * _0_03; diff -r af019fa70080 -r 8e95911cb86b hedgewars/uGearsRender.pas --- a/hedgewars/uGearsRender.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uGearsRender.pas Wed Dec 03 00:07:33 2014 +0300 @@ -53,6 +53,7 @@ uses uRender, uUtils, uVariables, uAmmos, Math, uVisualGearsList; procedure DrawRopeLinesRQ(Gear: PGear); +var n: LongInt; begin with RopePoints do begin @@ -64,24 +65,29 @@ if (RopePoints.Count > 0) or (Gear^.Elasticity.QWordValue > 0) then begin - glDisable(GL_TEXTURE_2D); + EnableTexture(false); //glEnable(GL_LINE_SMOOTH); - glPushMatrix; + Tint($70, $70, $70, $FF); + + n:= RopePoints.Count + 2; + + SetVertexPointer(@RopePoints.rounded[0], n); - glTranslatef(WorldDx, WorldDy, 0); + openglPushMatrix(); + openglTranslatef(WorldDx, WorldDy, 0); + glLineWidth(3.0 * cScaleFactor); + glDrawArrays(GL_LINE_STRIP, 0, n); + Tint($D8, $D8, $D8, $FF); glLineWidth(2.0 * cScaleFactor); - - Tint($C0, $C0, $C0, $FF); + glDrawArrays(GL_LINE_STRIP, 0, n); - glVertexPointer(2, GL_FLOAT, 0, @RopePoints.rounded[0]); - glDrawArrays(GL_LINE_STRIP, 0, RopePoints.Count + 2); untint; - glPopMatrix; + openglPopMatrix(); - glEnable(GL_TEXTURE_2D); + EnableTexture(true); //glDisable(GL_LINE_SMOOTH) end end; @@ -160,8 +166,7 @@ end; procedure DrawRope(Gear: PGear); -var roplen: LongInt; - i: Longword; +var roplen, i: LongInt; begin if (cReducedQuality and rqSimpleRope) <> 0 then DrawRopeLinesRQ(Gear) @@ -618,7 +623,7 @@ if ((Gear^.State and gstAnimation) <> 0) then begin - if (TWave(Gear^.Tag) < Low(TWave)) or (TWave(Gear^.Tag) > High(TWave)) then + if (Gear^.Tag < LongInt(ord(Low(TWave)))) or (Gear^.Tag > LongInt(ord(High(TWave)))) then begin Gear^.State:= Gear^.State and (not gstAnimation); end @@ -705,7 +710,7 @@ LongInt(rightX)+WorldDx, cWaterLine+WorldDy, LongInt(leftX)+WorldDx); - if hwRound(Gear^.X) > rightX-256 then + if hwRound(Gear^.X) > LongInt(rightX) - 256 then DrawSpriteClipped(sprGirder, leftX-(rightX-ox)-256, oy-256, @@ -791,13 +796,17 @@ if (Gear^.Damage > 0) and (HH^.Effects[heFrozen] = 0) and (hwSqr(Gear^.dX) + hwSqr(Gear^.dY) > _0_003) then begin - DrawHedgehog(sx, sy, - sign, - 2, - 1, - Gear^.DirAngle); - defaultPos:= false - end else + defaultPos:= false; + DrawHedgehog(sx, sy, + sign, + 2, + 1, + Gear^.DirAngle); + if AprilOne and (curhat <> nil) then + DrawTextureRotatedF(curhat, 1.0, -1.0, 0, sx, sy, 18, sign, 32, 32, + sign*Gear^.DirAngle) + end; + if ((Gear^.State and gstHHJumping) <> 0) then begin @@ -1157,7 +1166,7 @@ end; if Gear^.Timer < 1833 then begin - DrawTextureRotatedF(SpritesData[sprPortal].texture, min(abs(1.25 - (Gear^.Timer mod 1333) / 400), 1.25), 0, 0, + DrawTextureRotatedF(SpritesData[sprPortal].texture, MinD(abs(1.25 - (Gear^.Timer mod 1333) / 400), 1.25), 0, 0, x, LongInt(Gear^.Angle) + WorldDy - 16, 4 + Gear^.Tag, 1, 32, 32, 270); end end; @@ -1195,7 +1204,7 @@ gtAirBomb: DrawSpriteRotated(sprAirBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX)); gtTeleport: begin HHGear:= Gear^.Hedgehog^.Gear; - if not Gear^.Hedgehog^.Unplaced then + if ((Gear^.State and gstAnimation) <> 0) then DrawSpriteRotatedF(sprTeleport, x + 1, y - 3, Gear^.Pos, hwSign(Gear^.dX), 0); DrawSpriteRotatedF(sprTeleport, hwRound(HHGear^.X) + 1 + WorldDx, hwRound(HHGear^.Y) - 3 + WorldDy, 11 - Gear^.Pos, hwSign(HHGear^.dX), 0); end; diff -r af019fa70080 -r 8e95911cb86b hedgewars/uGearsUtils.pas --- a/hedgewars/uGearsUtils.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uGearsUtils.pas Wed Dec 03 00:07:33 2014 +0300 @@ -205,7 +205,7 @@ (Gear^.Hedgehog^.King or (Gear^.Hedgehog^.Effects[heFrozen] > 0)) then ModifyDamage:= hwRound(cDamageModifier * dmg * i * cDamagePercent * _0_5 * _0_01) else - ModifyDamage:= hwRound(cDamageModifier * dmg * i * cDamagePercent * _0_01) + ModifyDamage:= hwRound(cDamageModifier * dmg * i * cDamagePercent * _0_01); end; procedure ApplyDamage(Gear: PGear; AttackerHog: PHedgehog; Damage: Longword; Source: TDamageSource); @@ -262,6 +262,27 @@ end; uStats.HedgehogDamaged(Gear, AttackerHog, Damage, false); end; + + if AprilOne and (Gear^.Hedgehog^.Hat = 'fr_tomato') and (Damage > 2) then + for i := 0 to random(min(Damage,20))+5 do + begin + vg:= AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtStraightShot); + if vg <> nil then + with vg^ do + begin + dx:= 0.001 * (random(100)+10); + dy:= 0.001 * (random(100)+10); + tdy:= -cGravityf; + if random(2) = 0 then + dx := -dx; + //if random(2) = 0 then + // dy := -dy; + FrameTicks:= random(500) + 1000; + State:= ord(sprBubbles); + //Tint:= $bd2f03ff + Tint:= $ff0000ff + end + end end else //else if Gear^.Kind <> gtStructure then // not gtHedgehog nor gtStructure Gear^.Hedgehog:= AttackerHog; @@ -283,6 +304,7 @@ procedure HHHurt(Hedgehog: PHedgehog; Source: TDamageSource); begin if Hedgehog^.Effects[heFrozen] <> 0 then exit; + if (Source = dsFall) or (Source = dsExplosion) then case random(3) of 0: PlaySoundV(sndOoff1, Hedgehog^.Team^.voicepack); @@ -1016,7 +1038,7 @@ end; if dmg > 0 then begin - if (Gear^.Kind <> gtHedgehog) or (t^.Hedgehog^.Effects[heInvulnerable] = 0) then + if (t^.Kind <> gtHedgehog) or (t^.Hedgehog^.Effects[heInvulnerable] = 0) then ApplyDamage(t, Gear^.Hedgehog, dmg, dsBullet) else Gear^.State:= Gear^.State or gstWinner; diff -r af019fa70080 -r 8e95911cb86b hedgewars/uIO.pas --- a/hedgewars/uIO.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uIO.pas Wed Dec 03 00:07:33 2014 +0300 @@ -286,7 +286,7 @@ while (headcmd <> nil) and (tmpflag or (headcmd^.cmd = '#')) // '#' is the only cmd which can be sent within same tick after 'N' - and ((GameTicks = hiTicks shl 16 + headcmd^.loTime) + and ((GameTicks = LongWord(hiTicks shl 16 + headcmd^.loTime)) or (headcmd^.cmd = 's') // for these commands time is not specified or (headcmd^.cmd = 'h') // seems the hedgewars protocol does not allow remote synced commands or (headcmd^.cmd = '#') // must be synced for saves to work @@ -362,7 +362,7 @@ end; if (headcmd <> nil) and tmpflag and (not CurrentTeam^.hasGone) then - TryDo(GameTicks < hiTicks shl 16 + headcmd^.loTime, + TryDo(GameTicks < LongWord(hiTicks shl 16) + headcmd^.loTime, 'oops, queue error. in buffer: ' + headcmd^.cmd + ' (' + IntToStr(GameTicks) + ' > ' + IntToStr(hiTicks shl 16 + headcmd^.loTime) + ')', diff -r af019fa70080 -r 8e95911cb86b hedgewars/uLand.pas --- a/hedgewars/uLand.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uLand.pas Wed Dec 03 00:07:33 2014 +0300 @@ -672,10 +672,10 @@ begin WriteLnToConsole('Generating preview...'); case cMapGen of - 0: GenTemplated(EdgeTemplates[SelectTemplate]); - 1: begin ResizeLand(4096,2048); GenMaze; end; - 2: begin ResizeLand(4096,2048); GenPerlin; end; - 3: GenDrawnMap; + mgRandom: GenTemplated(EdgeTemplates[SelectTemplate]); + mgMaze: begin ResizeLand(4096,2048); GenMaze; end; + mgPerlin: begin ResizeLand(4096,2048); GenPerlin; end; + mgDrawn: GenDrawnMap; else OutError('Unknown mapgen', true); end; @@ -720,10 +720,10 @@ begin WriteLnToConsole('Generating preview...'); case cMapGen of - 0: GenTemplated(EdgeTemplates[SelectTemplate]); - 1: begin ResizeLand(4096,2048); GenMaze; end; - 2: begin ResizeLand(4096,2048); GenPerlin; end; - 3: GenDrawnMap; + mgRandom: GenTemplated(EdgeTemplates[SelectTemplate]); + mgMaze: begin ResizeLand(4096,2048); GenMaze; end; + mgPerlin: begin ResizeLand(4096,2048); GenPerlin; end; + mgDrawn: GenDrawnMap; else OutError('Unknown mapgen', true); end; diff -r af019fa70080 -r 8e95911cb86b hedgewars/uLandGenTemplateBased.pas --- a/hedgewars/uLandGenTemplateBased.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uLandGenTemplateBased.pas Wed Dec 03 00:07:33 2014 +0300 @@ -18,7 +18,7 @@ with Template do begin pa.Count:= BasePointsCount; - for i:= 0 to pred(pa.Count) do + for i:= 0 to pred(LongInt(pa.Count)) do begin pa.ar[i].x:= BasePoints^[i].x + LongInt(GetRandom(BasePoints^[i].w)); if pa.ar[i].x <> NTPX then @@ -174,7 +174,7 @@ // now go through all other segments fp:= pa.ar[0]; - for i:= 0 to pa.Count - 2 do + for i:= 0 to LongInt(pa.Count) - 2 do if pa.ar[i].x = NTPX then fp:= pa.ar[i + 1] else if (i <> si) then @@ -210,7 +210,7 @@ end; // go through all points, including fill points - for i:= 0 to Pred(pa.Count + fillPointsCount) do + for i:= 0 to Pred(LongInt(pa.Count + fillPointsCount)) do // if this point isn't on current segment if (si <> i) and (i <> si + 1) and (pa.ar[i].x <> NTPX) then begin @@ -294,7 +294,7 @@ newPoint.y:= 0; i:= 0; - while i < pa.Count - 1 do + while i < LongInt(pa.Count) - 1 do begin FindPoint(i, fillPointsCount, newPoint, pa); diff -r af019fa70080 -r 8e95911cb86b hedgewars/uLandGraphics.pas --- a/hedgewars/uLandGraphics.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uLandGraphics.pas Wed Dec 03 00:07:33 2014 +0300 @@ -54,7 +54,7 @@ function GetPlaceCollisionTex(cpX, cpY: LongInt; Obj: TSprite; Frame: LongInt): PTexture; implementation -uses SDLh, uLandTexture, uTextures, uVariables, uUtils, uDebug; +uses SDLh, uLandTexture, uTextures, uVariables, uUtils, uDebug, uScript; procedure calculatePixelsCoordinates(landX, landY: Longint; var pixelX, pixelY: Longint); inline; @@ -372,12 +372,48 @@ procedure DrawIceBreak(x, y, iceRadius, iceHeight: Longint); var - i, j: integer; + i, j, iceL, iceR, IceT, iceB: LongInt; landRect: TSDL_Rect; begin -for i := min(max(x - iceRadius, 0), LAND_WIDTH - 1) to min(max(x + iceRadius, 0), LAND_WIDTH - 1) do +// figure out bottom/left/right/top coords of ice to draw + +// determine absolute limits first +iceT:= 0; +iceB:= min(cWaterLine, LAND_HEIGHT - 1); + +iceL:= 0; +iceR:= LAND_WIDTH - 1; + +if WorldEdge <> weNone then + begin + iceL:= max(leftX, iceL); + iceR:= min(rightX, iceR); + end; + +// adjust based on location but without violating absolute limits +if y >= cWaterLine then begin - for j := min(max(y, 0), LAND_HEIGHT - 1) to min(max(y + iceHeight, 0), LAND_HEIGHT - 1) do + iceL:= max(x - iceRadius, iceL); + iceR:= min(x + iceRadius, iceR); + iceT:= max(cWaterLine - iceHeight, iceT); + end +else {if WorldEdge = weSea then} + begin + iceT:= max(y - iceRadius, iceT); + iceB:= min(y + iceRadius, iceB); + if x <= leftX then + iceR:= min(leftX + iceHeight, iceR) + else {if x >= rightX then} + iceL:= max(LongInt(rightX) - iceHeight, iceL); + end; + +// don't continue if all ice is outside land array +if (iceL > iceR) or (iceT > iceB) then + exit(); + +for i := iceL to iceR do + begin + for j := iceT to iceB do begin if Land[j, i] = 0 then begin @@ -389,10 +425,12 @@ end; end; end; -landRect.x := min(max(x - iceRadius, 0), LAND_WIDTH - 1); -landRect.y := min(max(y, 0), LAND_HEIGHT - 1); -landRect.w := min(2*iceRadius, LAND_WIDTH - landRect.x - 1); -landRect.h := min(iceHeight, LAND_HEIGHT - landRect.y - 1); + +landRect.x := iceL; +landRect.y := iceT; +landRect.w := iceR - IceL + 1; +landRect.h := iceB - iceT + 1; + UpdateLandTexture(landRect.x, landRect.w, landRect.y, landRect.h, true); end; @@ -722,7 +760,14 @@ w:= Min(cpX + Image^.w, LAND_WIDTH) - x; y:= Max(cpY, topY); h:= Min(cpY + Image^.h, LAND_HEIGHT) - y; -UpdateLandTexture(x, w, y, h, true) +UpdateLandTexture(x, w, y, h, true); + +ScriptCall('onSpritePlacement', ord(Obj), cpX + w div 2, cpY + h div 2); +if Obj = sprAmGirder then + ScriptCall('onGirderPlacement', frame, cpX + w div 2, cpY + h div 2) +else if Obj = sprAmRubber then + ScriptCall('onRubberPlacement', frame, cpX + w div 2, cpY + h div 2); + end; function GetPlaceCollisionTex(cpX, cpY: LongInt; Obj: TSprite; Frame: LongInt): PTexture; @@ -804,7 +849,7 @@ yy:= Y div 2; end; - pixelsweep:= (Land[Y, X] <= lfAllObjMask) and (LandPixels[yy, xx] <> 0); + pixelsweep:= (Land[Y, X] <= lfAllObjMask) and ((LandPixels[yy, xx] and AMASK) <> 0); if (((Land[Y, X] and lfDamaged) <> 0) and ((Land[Y, X] and lfIndestructible) = 0)) or pixelsweep then begin c:= 0; @@ -823,10 +868,10 @@ ny:= Y div 2 + i; nx:= X div 2 + j; if ((ny and (LAND_HEIGHT_MASK div 2)) = 0) and ((nx and (LAND_WIDTH_MASK div 2)) = 0) then - if LandPixels[ny, nx] <> 0 then + if (LandPixels[ny, nx] and AMASK) <> 0 then inc(c); end - else if LandPixels[ny, nx] <> 0 then + else if (LandPixels[ny, nx] and AMASK) <> 0 then inc(c); end else if Land[ny, nx] > 255 then @@ -938,7 +983,7 @@ function SweepDirty: boolean; var x, y, xx, yy, ty, tx: LongInt; - bRes, updateBlock, resweep, recheck: boolean; + bRes, resweep, recheck: boolean; begin bRes:= false; reCheck:= true; @@ -952,7 +997,6 @@ begin if LandDirty[y, x] = 1 then begin - updateBlock:= false; resweep:= true; ty:= y * 32; tx:= x * 32; @@ -964,7 +1008,6 @@ if Despeckle(xx, yy) then begin bRes:= true; - updateBlock:= true; resweep:= true; if (yy = ty) and (y > 0) then begin @@ -988,9 +1031,6 @@ end end; end; - if updateBlock then - UpdateLandTexture(tx, 32, ty, 32, false); - LandDirty[y, x]:= 2; end; end; end; @@ -1000,7 +1040,6 @@ for x:= 0 to LAND_WIDTH div 32 - 1 do if LandDirty[y, x] <> 0 then begin - LandDirty[y, x]:= 0; ty:= y * 32; tx:= x * 32; for yy:= ty to ty + 31 do @@ -1008,6 +1047,16 @@ Smooth(xx,yy) end; +for y:= 0 to LAND_HEIGHT div 32 - 1 do + for x:= 0 to LAND_WIDTH div 32 - 1 do + if LandDirty[y, x] <> 0 then + begin + LandDirty[y, x]:= 0; + ty:= y * 32; + tx:= x * 32; + UpdateLandTexture(tx, 32, ty, 32, false); + end; + SweepDirty:= bRes; end; diff -r af019fa70080 -r 8e95911cb86b hedgewars/uLandObjects.pas --- a/hedgewars/uLandObjects.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uLandObjects.pas Wed Dec 03 00:07:33 2014 +0300 @@ -253,15 +253,15 @@ inc(x1, 2); if k = 16 then begin - while (x2 < (rightX-150)) and (CountNonZeroz(x2, y) = 0) do + while (x2 < (LongInt(rightX)-150)) and (CountNonZeroz(x2, y) = 0) do inc(x2, 2); i:= x2 + 12; repeat inc(x2, 2); k:= CountNonZeroz(x2, y) - until (x2 >= (rightX-150)) or (k = 0) or (k = 16) or (x2 > i) or (x2 - x1 >= 768); + until (x2 >= (LongInt(rightX)-150)) or (k = 0) or (k = 16) or (x2 > i) or (x2 - x1 >= 768); - if (x2 < (rightX - 150)) and (k = 16) and (x2 - x1 > 250) and (x2 - x1 < 768) + if (x2 < (LongInt(rightX) - 150)) and (k = 16) and (x2 - x1 > 250) and (x2 - x1 < 768) and (not CheckIntersect(x1 - 32, y - 64, x2 - x1 + 64, 144)) then break; end; diff -r af019fa70080 -r 8e95911cb86b hedgewars/uLandOutline.pas --- a/hedgewars/uLandOutline.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uLandOutline.pas Wed Dec 03 00:07:33 2014 +0300 @@ -253,7 +253,7 @@ var i: Longword; begin CheckSelfIntersect:= false; - if (ind <= 0) or (ind >= Pred(pa.Count)) then + if (ind <= 0) or (LongInt(ind) >= Pred(pa.Count)) then exit; CheckSelfIntersect:= true; diff -r af019fa70080 -r 8e95911cb86b hedgewars/uPhysFSLayer.pas --- a/hedgewars/uPhysFSLayer.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uPhysFSLayer.pas Wed Dec 03 00:07:33 2014 +0300 @@ -186,13 +186,11 @@ hedgewarsMountPackages; - {$IFNDEF PAS2C} if cTestLua then begin - pfsMountAtRoot(ExtractFileDir(cScriptName)); + pfsMountAtRoot(ansistring(ExtractFileDir(cScriptName))); cScriptName := ExtractFileName(cScriptName); end; - {$ENDIF} end; procedure freeModule; diff -r af019fa70080 -r 8e95911cb86b hedgewars/uRender.pas --- a/hedgewars/uRender.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uRender.pas Wed Dec 03 00:07:33 2014 +0300 @@ -290,7 +290,7 @@ glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depth); glGenTextures(1, @tex); glBindTexture(GL_TEXTURE_2D, tex); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, cScreenWidth, cScreenHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, nil); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8, cScreenWidth, cScreenHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, nil); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, tex, 0); diff -r af019fa70080 -r 8e95911cb86b hedgewars/uScript.pas --- a/hedgewars/uScript.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uScript.pas Wed Dec 03 00:07:33 2014 +0300 @@ -307,6 +307,19 @@ LuaToSpriteOrd:= i; end; +function LuaToMapGenOrd(L : Plua_State; i: LongInt; call, paramsyntax: shortstring): LongInt; inline; +begin + if lua_isnoneornil(L, i) then i:= -1 + else i:= lua_tointeger(L, i); + if (i < ord(Low(TMapGen))) or (i > ord(High(TMapGen))) then + begin + LuaCallError('Invalid mapgen id!', call, paramsyntax); + LuaToMapGenOrd:= -1; + end + else + LuaToMapGenOrd:= i; +end; + // wrapped calls // // functions called from Lua: @@ -1027,7 +1040,9 @@ begin if CheckLuaParamCount(L, 2, 'SetClanColor', 'clan, color') then begin - clan := ClansArray[lua_tointeger(L, 1)]; + i:= lua_tointeger(L,1); + if i >= ClansCount then exit(0); + clan := ClansArray[i]; clan^.Color:= lua_tointeger(L, 2) shr 8; for i:= 0 to Pred(clan^.TeamsNumber) do @@ -1047,6 +1062,7 @@ team^.NameTagTex:= RenderStringTex(ansistring(clan^.Teams[i]^.TeamName), clan^.Color, fnt16); end; + FreeTexture(clan^.HealthTex); clan^.HealthTex:= makeHealthBarTexture(cTeamHealthWidth + 5, clan^.Teams[0]^.NameTagTex^.h, clan^.Color); end; @@ -1141,6 +1157,22 @@ lc_gettimer:= 1 end; +function lc_getflighttime(L : Plua_State) : LongInt; Cdecl; +var gear : PGear; +begin + if CheckLuaParamCount(L, 1, 'GetFlightTime', 'gearUid') then + begin + gear:= GearByUID(lua_tointeger(L, 1)); + if gear <> nil then + lua_pushinteger(L, gear^.FlightTime) + else + lua_pushnil(L); + end + else + lua_pushnil(L); // return value on stack (nil) + lc_getflighttime:= 1 +end; + function lc_gethealth(L : Plua_State) : LongInt; Cdecl; var gear : PGear; begin @@ -1237,9 +1269,9 @@ vgear:= AddVisualGear(0, 0, vgtSpeechBubble, s, true); if vgear <> nil then begin + vgear^.Text:= lua_tostring(L, 2); if Gear^.Kind = gtHedgehog then begin - vgear^.Text:= lua_tostring(L, 2); AddChatString(#1+'[' + gear^.Hedgehog^.Name + '] '+vgear^.text); vgear^.Hedgehog:= gear^.Hedgehog end @@ -1377,6 +1409,17 @@ lc_settimer:= 0 end; +function lc_setflighttime(L : Plua_State) : LongInt; Cdecl; +var gear : PGear; +begin + if CheckLuaParamCount(L, 2, 'SetFlightTime', 'gearUid, flighttime') then + begin + gear:= GearByUID(lua_tointeger(L, 1)); + if gear <> nil then gear^.FlightTime:= lua_tointeger(L, 2) + end; + lc_setflighttime:= 0 +end; + function lc_seteffect(L : Plua_State) : LongInt; Cdecl; var gear: PGear; t : LongInt; @@ -1516,7 +1559,7 @@ end else // count is correct! begin - if ((statInfo = siPlayerKills) or (statInfo = siClanHealth)) then + if needsTn then begin // 3: team name for i:= 0 to Pred(TeamsCount) do @@ -1634,10 +1677,46 @@ end; function lc_dismissteam(L : Plua_State) : LongInt; Cdecl; +var HHGear: PGear; + i, h : LongInt; + hidden: boolean; begin if CheckLuaParamCount(L, 1, 'DismissTeam', 'teamname') then - ParseCommand('teamgone ' + lua_tostring(L, 1), true, true); - lc_dismissteam:= 0;; + begin + if TeamsCount > 0 then + for i:= 0 to Pred(TeamsCount) do + begin + // skip teams that don't have matching name + if TeamsArray[i]^.TeamName <> lua_tostring(L, 1) then + continue; + + // destroy all hogs of matching team, including the hidden ones + for h:= 0 to cMaxHHIndex do + begin + hidden:= (TeamsArray[i]^.Hedgehogs[h].GearHidden <> nil); + if hidden then + RestoreHog(@TeamsArray[i]^.Hedgehogs[h]); + // destroy hedgehog gear, if any + HHGear:= TeamsArray[i]^.Hedgehogs[h].Gear; + if HHGear <> nil then + begin + // smoke effect + if (not hidden) then + begin + AddVisualGear(hwRound(HHGear^.X), hwRound(HHGear^.Y), vgtSmokeWhite); + AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite); + AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite); + AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite); + AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite); + end; + HHGear^.Message:= HHGear^.Message or gmDestroy; + end; + end; + // can't dismiss more than one team + break; + end; + end; + lc_dismissteam:= 0; end; function lc_addhog(L : Plua_State) : LongInt; Cdecl; @@ -1985,7 +2064,7 @@ placed: boolean; const call = 'PlaceSprite'; - params = 'x, y, sprite, frameIdx [, landFlags, ... ]'; + params = 'x, y, sprite, frameIdx [, landFlag, ... ]'; begin placed:= false; if CheckAndFetchLuaParamMinCount(L, 4, call, params, n) then @@ -2247,7 +2326,7 @@ ScriptSetString('Seed', cSeed); ScriptSetInteger('TemplateFilter', cTemplateFilter); ScriptSetInteger('TemplateNumber', LuaTemplateNumber); -ScriptSetInteger('MapGen', cMapGen); +ScriptSetInteger('MapGen', ord(cMapGen)); ScriptCall('onPreviewInit'); @@ -2255,7 +2334,7 @@ ParseCommand('seed ' + ScriptGetString('Seed'), true, true); cTemplateFilter := ScriptGetInteger('TemplateFilter'); LuaTemplateNumber:= ScriptGetInteger('TemplateNumber'); -cMapGen := ScriptGetInteger('MapGen'); +cMapGen := TMapGen(ScriptGetInteger('MapGen')); end; procedure ScriptOnGameInit; @@ -2271,7 +2350,7 @@ ScriptSetString('Seed', cSeed); ScriptSetInteger('TemplateFilter', cTemplateFilter); ScriptSetInteger('TemplateNumber', LuaTemplateNumber); -ScriptSetInteger('MapGen', cMapGen); +ScriptSetInteger('MapGen', ord(cMapGen)); ScriptSetInteger('ScreenHeight', cScreenHeight); ScriptSetInteger('ScreenWidth', cScreenWidth); ScriptSetInteger('TurnTime', cHedgehogTurnTime); @@ -2300,7 +2379,7 @@ ParseCommand('seed ' + ScriptGetString('Seed'), true, true); cTemplateFilter := ScriptGetInteger('TemplateFilter'); LuaTemplateNumber:= ScriptGetInteger('TemplateNumber'); -cMapGen := ScriptGetInteger('MapGen'); +cMapGen := TMapGen(ScriptGetInteger('MapGen')); GameFlags := ScriptGetInteger('GameFlags'); cHedgehogTurnTime:= ScriptGetInteger('TurnTime'); cCaseFactor := ScriptGetInteger('CaseFreq'); @@ -2498,7 +2577,7 @@ function ScriptCall(fname : shortstring; par1, par2, par3, par4 : LongInt) : LongInt; begin if (not ScriptLoaded) or (not ScriptExists(fname)) then - exit; + exit(0); SetGlobals; lua_getglobal(luaState, Str2PChar(fname)); lua_pushinteger(luaState, par1); @@ -2634,6 +2713,7 @@ he : THogEffect; cg : TCapGroup; spr: TSprite; + mg : TMapGen; begin // initialize lua luaState:= lua_open; @@ -2725,6 +2805,8 @@ for spr:= Low(TSprite) to High(TSprite) do ScriptSetInteger(EnumToStr(spr), ord(spr)); +for mg:= Low(TMapGen) to High(TMapGen) do + ScriptSetInteger(EnumToStr(mg), ord(mg)); ScriptSetInteger('gstDrowning' , gstDrowning); ScriptSetInteger('gstHHDriven' , gstHHDriven); @@ -2756,12 +2838,6 @@ ScriptSetInteger('lfIce' , lfIce); ScriptSetInteger('lfBouncy' , lfBouncy); -// mapgen -ScriptSetInteger('mgRandom', mgRandom); -ScriptSetInteger('mgMaze' , mgMaze); -ScriptSetInteger('mgPerlin', mgPerlin); -ScriptSetInteger('mgDrawn' , mgDrawn); - // register functions lua_register(luaState, _P'HideHog', @lc_hidehog); lua_register(luaState, _P'RestoreHog', @lc_restorehog); @@ -2838,6 +2914,8 @@ lua_register(luaState, _P'SetTag', @lc_settag); lua_register(luaState, _P'SetTimer', @lc_settimer); lua_register(luaState, _P'GetTimer', @lc_gettimer); +lua_register(luaState, _P'SetFlightTime', @lc_setflighttime); +lua_register(luaState, _P'GetFlightTime', @lc_getflighttime); lua_register(luaState, _P'SetZoom', @lc_setzoom); lua_register(luaState, _P'GetZoom', @lc_getzoom); lua_register(luaState, _P'HogSay', @lc_hogsay); diff -r af019fa70080 -r 8e95911cb86b hedgewars/uStore.pas --- a/hedgewars/uStore.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uStore.pas Wed Dec 03 00:07:33 2014 +0300 @@ -273,6 +273,11 @@ else if (month = 10) and (md = 31) then Hat := 'fr_pumpkin'; // Halloween/Hedgewars' birthday end; + if (month = 4) and (md = 1) then + begin + AprilOne:= true; + Hat := 'fr_tomato'; // avoid promoting violence to hedgehogs. see http://hedgewars.org/node/5818 + end; if Hat <> 'NoHat' then begin diff -r af019fa70080 -r 8e95911cb86b hedgewars/uTeams.pas --- a/hedgewars/uTeams.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uTeams.pas Wed Dec 03 00:07:33 2014 +0300 @@ -34,6 +34,7 @@ procedure InitTeams; function TeamSize(p: PTeam): Longword; procedure RecountTeamHealth(team: PTeam); +procedure RecountAllTeamsHealth(); procedure RestoreHog(HH: PHedgehog); procedure RestoreTeamsFromSave; diff -r af019fa70080 -r 8e95911cb86b hedgewars/uTypes.pas --- a/hedgewars/uTypes.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uTypes.pas Wed Dec 03 00:07:33 2014 +0300 @@ -176,6 +176,8 @@ TStereoMode = (smNone, smRedCyan, smCyanRed, smRedBlue, smBlueRed, smRedGreen, smGreenRed, smHorizontal, smVertical); TWorldEdge = (weNone, weWrap, weBounce, weSea, weSky); TUIDisplay = (uiAll, uiNoTeams, uiNone); + TMapGen = (mgRandom, mgMaze, mgPerlin, mgDrawn); + THHFont = record Handle: PTTF_Font; diff -r af019fa70080 -r 8e95911cb86b hedgewars/uUtils.pas --- a/hedgewars/uUtils.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uUtils.pas Wed Dec 03 00:07:33 2014 +0300 @@ -35,8 +35,10 @@ function EnumToStr(const en : THogEffect) : shortstring; overload; function EnumToStr(const en : TCapGroup) : shortstring; overload; function EnumToStr(const en : TSprite) : shortstring; overload; +function EnumToStr(const en : TMapGen) : shortstring; overload; function Min(a, b: LongInt): LongInt; inline; +function MinD(a, b: double) : double; inline; function Max(a, b: LongInt): LongInt; inline; function IntToStr(n: LongInt): shortstring; @@ -95,7 +97,7 @@ uses {$IFNDEF PAS2C}typinfo, {$ENDIF}Math, uConsts, uVariables, SysUtils; {$IFDEF DEBUGFILE} -var f: textfile; +var logFile: textfile; {$IFDEF USE_VIDEO_RECORDING} logMutex: TRTLCriticalSection; // mutex for debug file {$ENDIF} @@ -185,6 +187,11 @@ EnumToStr := GetEnumName(TypeInfo(TSprite), ord(en)) end; +function EnumToStr(const en: TMapGen) : shortstring; overload; +begin +EnumToStr := GetEnumName(TypeInfo(TMapGen), ord(en)) +end; + function Min(a, b: LongInt): LongInt; begin @@ -194,6 +201,14 @@ Min:= b end; +function MinD(a, b: double): double; +begin +if a < b then + MinD:= a +else + MinD:= b +end; + function Max(a, b: LongInt): LongInt; begin if a > b then @@ -217,7 +232,7 @@ val(s, StrToInt, c); {$IFDEF DEBUGFILE} if c <> 0 then - writeln(f, 'Error at position ' + IntToStr(c) + ' : ' + s[c]) + writeln(logFile, 'Error at position ' + IntToStr(c) + ' : ' + s[c]) {$ENDIF} {$ENDIF} end; @@ -280,7 +295,7 @@ function DecodeBase64(s: shortstring): shortstring; const table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; -var i, t, c: Longword; +var i, t, c: LongInt; begin c:= 0; for i:= 1 to Length(s) do @@ -345,8 +360,8 @@ {$IFDEF USE_VIDEO_RECORDING} EnterCriticalSection(logMutex); {$ENDIF} -writeln(f, inttostr(GameTicks) + ': ' + s); -flush(f); +writeln(logFile, inttostr(GameTicks) + ': ' + s); +flush(logFile); {$IFDEF USE_VIDEO_RECORDING} LeaveCriticalSection(logMutex); @@ -363,8 +378,8 @@ {$IFDEF USE_VIDEO_RECORDING} EnterCriticalSection(logMutex); {$ENDIF} -write(f, s); -flush(f); +write(logFile, s); +flush(logFile); {$IFDEF USE_VIDEO_RECORDING} LeaveCriticalSection(logMutex); {$ENDIF} @@ -505,6 +520,7 @@ {$IFDEF DEBUGFILE} var logfileBase: shortstring; i: LongInt; + rwfailed: boolean; {$ENDIF} begin {$IFDEF DEBUGFILE} @@ -529,10 +545,8 @@ InitCriticalSection(logMutex); {$ENDIF} {$I-} -{$IFNDEF PAS2C} - f:= stderr; // if everything fails, write to stderr -{$ENDIF} -(* if (length(UserPathPrefix) > 0) then + rwfailed:= false; + (*if (length(UserPathPrefix) > 0) then begin {$IFNDEF PAS2C} // create directory if it doesn't exist @@ -543,13 +557,21 @@ i:= 0; while(i < 7) do begin - assign(f, shortstring(UserPathPrefix) + '/Logs/' + logfileBase + inttostr(i) + '.log'); - if IOResult = 0 then + assign(logFile, shortstring(UserPathPrefix) + '/Logs/' + logfileBase + inttostr(i) + '.log'); + Rewrite(logFile); + // note: IOResult is a function in pascal and a variable in pas2c + rwfailed:= (IOResult <> 0); + if (not rwfailed) then break; inc(i) end; - end;*) - Rewrite(f); + end; + *) +{$IFNDEF PAS2C} + // if everything fails, write to stderr + //if (length(UserPathPrefix) = 0) or (rwfailed) then + logFile:= stderr; +{$ENDIF} {$I+} {$ENDIF} @@ -571,9 +593,9 @@ procedure freeModule; begin {$IFDEF DEBUGFILE} - writeln(f, 'halt at ' + inttostr(GameTicks) + ' ticks. TurnTimeLeft = ' + inttostr(TurnTimeLeft)); - flush(f); - close(f); + writeln(logFile, 'halt at ' + inttostr(GameTicks) + ' ticks. TurnTimeLeft = ' + inttostr(TurnTimeLeft)); + flush(logFile); + close(logFile); {$IFDEF USE_VIDEO_RECORDING} DoneCriticalSection(logMutex); {$ENDIF} diff -r af019fa70080 -r 8e95911cb86b hedgewars/uVariables.pas --- a/hedgewars/uVariables.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uVariables.pas Wed Dec 03 00:07:33 2014 +0300 @@ -36,6 +36,7 @@ cNewScreenWidth : LongInt; cNewScreenHeight : LongInt; cScreenResizeDelay : LongWord; + AprilOne : boolean; cFullScreen : boolean; cLocaleFName : shortstring; cLocale : shortstring; @@ -95,7 +96,7 @@ cMineDudPercent : LongWord; cTemplateFilter : LongInt; cFeatureSize : LongInt; - cMapGen : LongInt; + cMapGen : TMapGen; cRopePercent : LongWord; cGetAwayTime : LongWord; @@ -2556,7 +2557,7 @@ cMineDudPercent := 0; cTemplateFilter := 0; cFeatureSize := 50; - cMapGen := 0; // MAPGEN_REGULAR + cMapGen := mgRandom; cHedgehogTurnTime := 45000; cMinesTime := 3000; cMaxAIThinkTime := 9000; @@ -2645,7 +2646,9 @@ UIDisplay:= uiAll; LocalMessage:= 0; + cStereoDepth:= 0; cViewLimitsDebug:= false; + AprilOne := false; end; procedure freeModule; diff -r af019fa70080 -r 8e95911cb86b hedgewars/uVisualGears.pas --- a/hedgewars/uVisualGears.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uVisualGears.pas Wed Dec 03 00:07:33 2014 +0300 @@ -213,7 +213,7 @@ else DrawTextureF(SpritesData[sprFlame].Texture, Gear^.FrameTicks / 900, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, (RealTicks shr 7 + Gear^.Frame) mod 8, 1, 16, 16); vgtSplash: begin - spriteData:= GetSpriteData(sprSplash, sprite); + spriteData:= GetSpriteData(sprSplash, sprSDSplash); if Gear^.Angle <> 0 then DrawTextureRotatedF(spriteData^.Texture, Gear^.scale, 0, 0, round(Gear^.X + WorldDx + (((spriteData^.Height+8)*Gear^.Scale)/2) * (Gear^.Angle / abs(Gear^.Angle))), round(Gear^.Y + WorldDy), 19 - (Gear^.FrameTicks div Gear^.Timer div 37), 1, spriteData^.Width, spriteData^.Height, Gear^.Angle) else diff -r af019fa70080 -r 8e95911cb86b hedgewars/uVisualGearsHandlers.pas --- a/hedgewars/uVisualGearsHandlers.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uVisualGearsHandlers.pas Wed Dec 03 00:07:33 2014 +0300 @@ -887,6 +887,9 @@ Gear^.X:= Gear^.X + Gear^.dX * Steps; Gear^.Y:= Gear^.Y - Gear^.dY * Steps; +Gear^.dY:= Gear^.dY + Gear^.tdY * Steps; +Gear^.dX:= Gear^.dX + Gear^.tdX * Steps; + if Gear^.FrameTicks <= Steps then DeleteVisualGear(Gear) else diff -r af019fa70080 -r 8e95911cb86b hedgewars/uWorld.pas --- a/hedgewars/uWorld.pas Sat Nov 22 00:55:01 2014 +0300 +++ b/hedgewars/uWorld.pas Wed Dec 03 00:07:33 2014 +0300 @@ -978,9 +978,11 @@ end; procedure ChangeDepth(rm: TRenderMode; d: GLfloat); +var tmp: LongInt; begin - rm:= rm; d:= d; // avoid hint -{$IFDEF USE_S3D_RENDERING} +{$IFNDEF USE_S3D_RENDERING} + rm:= rm; d:= d; tmp:= tmp; // avoid hint +{$ELSE} d:= d / 5; if rm = rmDefault then exit @@ -988,16 +990,24 @@ d:= -d; cStereoDepth:= cStereoDepth + d; openglTranslProjMatrix(d, 0, 0); + tmp:= round(d / cScaleFactor * cScreenWidth); + ViewLeftX := ViewLeftX - tmp; + ViewRightX:= ViewRightX - tmp; {$ENDIF} end; procedure ResetDepth(rm: TRenderMode); +var tmp: LongInt; begin - rm:= rm; // avoid hint -{$IFDEF USE_S3D_RENDERING} +{$IFNDEF USE_S3D_RENDERING} + rm:= rm; tmp:= tmp; // avoid hint +{$ELSE} if rm = rmDefault then exit; openglTranslProjMatrix(-cStereoDepth, 0, 0); + tmp:= round(cStereoDepth / cScaleFactor * cScreenWidth); + ViewLeftX := ViewLeftX + tmp; + ViewRightX:= ViewRightX + tmp; cStereoDepth:= 0; {$ENDIF} end; @@ -1040,6 +1050,9 @@ end; (* + WARNING: the following render code is outdated and does not work with + current Render.pas ! - don't just uncomment without fixing it first + glDisable(GL_TEXTURE_2D); glDisableClientState(GL_TEXTURE_COORD_ARRAY); if (WorldEdge = weWrap) or (worldEdge = weBounce) then @@ -1341,25 +1354,25 @@ else DrawWaves(-1, 100, - cWaveHeight div 2, - cWaveHeight div 2, 0); - changeDepth(RM, cStereo_Land); - DrawVisualGears(5); - DrawLand(WorldDx, WorldDy); +ChangeDepth(RM, cStereo_Land); +DrawVisualGears(5); +DrawLand(WorldDx, WorldDy); - if replicateToLeft then - begin - ShiftWorld(-1); - DrawLand(WorldDx, WorldDy); - UnshiftWorld(); - end; +if replicateToLeft then + begin + ShiftWorld(-1); + DrawLand(WorldDx, WorldDy); + UnshiftWorld(); + end; - if replicateToRight then - begin - ShiftWorld(1); - DrawLand(WorldDx, WorldDy); - UnshiftWorld(); - end; +if replicateToRight then + begin + ShiftWorld(1); + DrawLand(WorldDx, WorldDy); + UnshiftWorld(); + end; - DrawWater(255, 0, 0); +DrawWater(255, 0, 0); (* // Attack bar @@ -1729,12 +1742,12 @@ VertexBuffer[3].X:= cScreenWidth; VertexBuffer[3].Y:= cScreenHeight; - glDisable(GL_TEXTURE_2D); + EnableTexture(false); - glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]); + SetVertexPointer(@VertexBuffer[0], 4); glDrawArrays(GL_TRIANGLE_FAN, 0, High(VertexBuffer) - Low(VertexBuffer) + 1); - glEnable(GL_TEXTURE_2D); + EnableTexture(true); untint; if not isFirstFrame and ((ScreenFadeValue = 0) or (ScreenFadeValue = sfMax)) then ScreenFade:= sfNone @@ -1802,7 +1815,7 @@ with CurrentHedgehog^ do if (Gear <> nil) and ((Gear^.State and gstHHChooseTarget) <> 0) then begin - if (CurAmmoType = amNapalm) or (CurAmmoType = amMineStrike) then + if (CurAmmoType = amNapalm) or (CurAmmoType = amMineStrike) or (((GameFlags and gfMoreWind) <> 0) and ((CurAmmoType = amDrillStrike) or (CurAmmoType = amAirAttack))) then DrawLine(-3000, topY-300, 7000, topY-300, 3.0, (Team^.Clan^.Color shr 16), (Team^.Clan^.Color shr 8) and $FF, Team^.Clan^.Color and $FF, $FF); i:= GetCurAmmoEntry(CurrentHedgehog^)^.Pos; with Ammoz[CurAmmoType] do @@ -1859,12 +1872,12 @@ end else begin - if abs(prevPoint.X - WorldDx - hwRound(FollowGear^.X)) > rightX - leftX - 100 then + if abs(prevPoint.X - WorldDx - hwRound(FollowGear^.X)) > LongInt(rightX) - leftX - 100 then begin - if (prevPoint.X - WorldDx) * 2 < LongInt(rightX + leftX) then - cameraJump:= rightX - leftX + if (prevPoint.X - WorldDx) * 2 < LongInt((rightX + leftX)) then + cameraJump:= LongInt(rightX) - leftX else - cameraJump:= leftX - rightX; + cameraJump:= LongInt(leftX) - rightX; WorldDx:= WorldDx - cameraJump; end; diff -r af019fa70080 -r 8e95911cb86b project_files/hwc/rtl/SysUtils.h --- a/project_files/hwc/rtl/SysUtils.h Sat Nov 22 00:55:01 2014 +0300 +++ b/project_files/hwc/rtl/SysUtils.h Wed Dec 03 00:07:33 2014 +0300 @@ -31,6 +31,9 @@ #define StrToInt fpcrtl_strToInt #define strToInt fpcrtl_strToInt +string255 fpcrtl_extractFileDir(string255 f); +#define fpcrtl_ExtractFileDir fpcrtl_extractFileDir + string255 fpcrtl_extractFileName(string255 f); #define fpcrtl_ExtractFileName fpcrtl_extractFileName diff -r af019fa70080 -r 8e95911cb86b project_files/hwc/rtl/fileio.c --- a/project_files/hwc/rtl/fileio.c Sat Nov 22 00:55:01 2014 +0300 +++ b/project_files/hwc/rtl/fileio.c Wed Dec 03 00:07:33 2014 +0300 @@ -162,7 +162,11 @@ void __attribute__((overloadable)) fpcrtl_writeLn(File f, string255 s) { FIX_STRING(s); - fprintf(f->fp, "%s\n", s.str); + // filthy hack to write to stderr + if (!f->fp) + fprintf(stderr, "%s\n", s.str); + else + fprintf(f->fp, "%s\n", s.str); } void __attribute__((overloadable)) fpcrtl_writeLn(FILE *f, string255 s) { diff -r af019fa70080 -r 8e95911cb86b project_files/hwc/rtl/system.h --- a/project_files/hwc/rtl/system.h Sat Nov 22 00:55:01 2014 +0300 +++ b/project_files/hwc/rtl/system.h Wed Dec 03 00:07:33 2014 +0300 @@ -1,6 +1,7 @@ #ifndef SYSTEM_H_ #define SYSTEM_H_ +#include #include #include "Types.h" #include "misc.h" @@ -134,7 +135,8 @@ int fpcrtl_UTF8ToUnicode(PWideChar dest, PChar src, SizeInt maxLen); -#define fpcrtl_halt(t) assert(0) +// #define fpcrtl_halt(t) assert(0) +#define fpcrtl_halt(t) exit(t) #define fpcrtl_Load_GL_VERSION_2_0() 1 diff -r af019fa70080 -r 8e95911cb86b project_files/hwc/rtl/sysutils.c --- a/project_files/hwc/rtl/sysutils.c Sat Nov 22 00:55:01 2014 +0300 +++ b/project_files/hwc/rtl/sysutils.c Wed Dec 03 00:07:33 2014 +0300 @@ -131,6 +131,24 @@ return atoi(s.str); } +string255 fpcrtl_extractFileDir(string255 f) +{ + const char sep[] = {'\\', '/', ':'}; + LongInt i,j; + + i = f.len - 1; + while(i >= 0){ + for(j = 0; j < sizeof(sep); j++){ + if(f.str[i] == sep[j]){ + goto FPCRTL_EXTRACTFILEDIR_END; + } + } + i--; + } +FPCRTL_EXTRACTFILEDIR_END: + return fpcrtl_copy(f, 1, i); +} + //function ExtractFileName(const FileName: string): string; //var // i : longint; diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Cake-icon.png Binary file share/hedgewars/Data/Forts/Cake-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Cake-preview.png Binary file share/hedgewars/Data/Forts/Cake-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Castle-icon.png Binary file share/hedgewars/Data/Forts/Castle-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Castle-preview.png Binary file share/hedgewars/Data/Forts/Castle-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Earth-icon.png Binary file share/hedgewars/Data/Forts/Earth-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Earth-preview.png Binary file share/hedgewars/Data/Forts/Earth-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/EvilChicken-icon.png Binary file share/hedgewars/Data/Forts/EvilChicken-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/EvilChicken-preview.png Binary file share/hedgewars/Data/Forts/EvilChicken-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Flowerhog-icon.png Binary file share/hedgewars/Data/Forts/Flowerhog-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Flowerhog-preview.png Binary file share/hedgewars/Data/Forts/Flowerhog-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Hydrant-icon.png Binary file share/hedgewars/Data/Forts/Hydrant-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Hydrant-preview.png Binary file share/hedgewars/Data/Forts/Hydrant-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Lego-icon.png Binary file share/hedgewars/Data/Forts/Lego-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Lego-preview.png Binary file share/hedgewars/Data/Forts/Lego-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Plane-icon.png Binary file share/hedgewars/Data/Forts/Plane-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Plane-preview.png Binary file share/hedgewars/Data/Forts/Plane-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Statue-icon.png Binary file share/hedgewars/Data/Forts/Statue-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Statue-preview.png Binary file share/hedgewars/Data/Forts/Statue-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Tank-icon.png Binary file share/hedgewars/Data/Forts/Tank-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Tank-preview.png Binary file share/hedgewars/Data/Forts/Tank-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/UFO-icon.png Binary file share/hedgewars/Data/Forts/UFO-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/UFO-preview.png Binary file share/hedgewars/Data/Forts/UFO-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Wood-icon.png Binary file share/hedgewars/Data/Forts/Wood-icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Forts/Wood-preview.png Binary file share/hedgewars/Data/Forts/Wood-preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/AirBomb.png Binary file share/hedgewars/Data/Graphics/AirBomb.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/AmmoMenu/Ammos_bw.png Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos_bw.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/AmmoMenu/Corners.png Binary file share/hedgewars/Data/Graphics/AmmoMenu/Corners.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/AmmoMenu/Slot.png Binary file share/hedgewars/Data/Graphics/AmmoMenu/Slot.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/AmmoMenu/SlotKeys.png Binary file share/hedgewars/Data/Graphics/AmmoMenu/SlotKeys.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/AmmoMenu/TurnsLeft.png Binary file share/hedgewars/Data/Graphics/AmmoMenu/TurnsLeft.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Arrow.png Binary file share/hedgewars/Data/Graphics/Arrow.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/BazookaShell.png Binary file share/hedgewars/Data/Graphics/BazookaShell.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/BigExplosion.png Binary file share/hedgewars/Data/Graphics/BigExplosion.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/BlueWater.png Binary file share/hedgewars/Data/Graphics/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Bubbles.png Binary file share/hedgewars/Data/Graphics/Bubbles.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Cake_walk.png Binary file share/hedgewars/Data/Graphics/Cake_walk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Case.png Binary file share/hedgewars/Data/Graphics/Case.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Censored.png Binary file share/hedgewars/Data/Graphics/Censored.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/ClBomb.png Binary file share/hedgewars/Data/Graphics/ClBomb.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/ClParticle.png Binary file share/hedgewars/Data/Graphics/ClParticle.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Cross.png Binary file share/hedgewars/Data/Graphics/Cross.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Crosshair.png Binary file share/hedgewars/Data/Graphics/Crosshair.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Drill.png Binary file share/hedgewars/Data/Graphics/Drill.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Droplet.png Binary file share/hedgewars/Data/Graphics/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Egg.png Binary file share/hedgewars/Data/Graphics/Egg.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/ExplPart.png Binary file share/hedgewars/Data/Graphics/ExplPart.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/ExplPart2.png Binary file share/hedgewars/Data/Graphics/ExplPart2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Feather.png Binary file share/hedgewars/Data/Graphics/Feather.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Finger.png Binary file share/hedgewars/Data/Graphics/Finger.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/afghanistan.png Binary file share/hedgewars/Data/Graphics/Flags/afghanistan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/albania.png Binary file share/hedgewars/Data/Graphics/Flags/albania.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/algeria.png Binary file share/hedgewars/Data/Graphics/Flags/algeria.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/american_samoa.png Binary file share/hedgewars/Data/Graphics/Flags/american_samoa.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/andorra.png Binary file share/hedgewars/Data/Graphics/Flags/andorra.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/angola.png Binary file share/hedgewars/Data/Graphics/Flags/angola.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/anguilla.png Binary file share/hedgewars/Data/Graphics/Flags/anguilla.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/antigua_and_barbuda.png Binary file share/hedgewars/Data/Graphics/Flags/antigua_and_barbuda.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/arabemirates.png Binary file share/hedgewars/Data/Graphics/Flags/arabemirates.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/argentina.png Binary file share/hedgewars/Data/Graphics/Flags/argentina.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/armenia.png Binary file share/hedgewars/Data/Graphics/Flags/armenia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/aruba.png Binary file share/hedgewars/Data/Graphics/Flags/aruba.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/australia.png Binary file share/hedgewars/Data/Graphics/Flags/australia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/austria.png Binary file share/hedgewars/Data/Graphics/Flags/austria.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/azerbaijan.png Binary file share/hedgewars/Data/Graphics/Flags/azerbaijan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/bahamas.png Binary file share/hedgewars/Data/Graphics/Flags/bahamas.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/bahrain.png Binary file share/hedgewars/Data/Graphics/Flags/bahrain.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/bangladesh.png Binary file share/hedgewars/Data/Graphics/Flags/bangladesh.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/barbados.png Binary file share/hedgewars/Data/Graphics/Flags/barbados.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/belarus.png Binary file share/hedgewars/Data/Graphics/Flags/belarus.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/belgium.png Binary file share/hedgewars/Data/Graphics/Flags/belgium.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/belize.png Binary file share/hedgewars/Data/Graphics/Flags/belize.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/benin.png Binary file share/hedgewars/Data/Graphics/Flags/benin.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/bhutan.png Binary file share/hedgewars/Data/Graphics/Flags/bhutan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/bolivia.png Binary file share/hedgewars/Data/Graphics/Flags/bolivia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/bosnia_and_herzegovina.png Binary file share/hedgewars/Data/Graphics/Flags/bosnia_and_herzegovina.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/botswana.png Binary file share/hedgewars/Data/Graphics/Flags/botswana.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/brazil.png Binary file share/hedgewars/Data/Graphics/Flags/brazil.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/brunei.png Binary file share/hedgewars/Data/Graphics/Flags/brunei.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/bulgaria.png Binary file share/hedgewars/Data/Graphics/Flags/bulgaria.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/burkina_faso.png Binary file share/hedgewars/Data/Graphics/Flags/burkina_faso.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/burundi.png Binary file share/hedgewars/Data/Graphics/Flags/burundi.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cambodia.png Binary file share/hedgewars/Data/Graphics/Flags/cambodia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cameroon.png Binary file share/hedgewars/Data/Graphics/Flags/cameroon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/canada.png Binary file share/hedgewars/Data/Graphics/Flags/canada.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cape_verde.png Binary file share/hedgewars/Data/Graphics/Flags/cape_verde.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/central_african_republic.png Binary file share/hedgewars/Data/Graphics/Flags/central_african_republic.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/chad.png Binary file share/hedgewars/Data/Graphics/Flags/chad.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/chile.png Binary file share/hedgewars/Data/Graphics/Flags/chile.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/china.png Binary file share/hedgewars/Data/Graphics/Flags/china.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/christmas_island.png Binary file share/hedgewars/Data/Graphics/Flags/christmas_island.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_anarchy.png Binary file share/hedgewars/Data/Graphics/Flags/cm_anarchy.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_balrog.png Binary file share/hedgewars/Data/Graphics/Flags/cm_balrog.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_belarus.png Binary file share/hedgewars/Data/Graphics/Flags/cm_belarus.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_binary.png Binary file share/hedgewars/Data/Graphics/Flags/cm_binary.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_bloodyblade.png Binary file share/hedgewars/Data/Graphics/Flags/cm_bloodyblade.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_brittany.png Binary file share/hedgewars/Data/Graphics/Flags/cm_brittany.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_cog.png Binary file share/hedgewars/Data/Graphics/Flags/cm_cog.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_crossedswords.png Binary file share/hedgewars/Data/Graphics/Flags/cm_crossedswords.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_earth2.png Binary file share/hedgewars/Data/Graphics/Flags/cm_earth2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_eyeofhorus.png Binary file share/hedgewars/Data/Graphics/Flags/cm_eyeofhorus.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_female.png Binary file share/hedgewars/Data/Graphics/Flags/cm_female.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_hax0r.png Binary file share/hedgewars/Data/Graphics/Flags/cm_hax0r.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_iluvu.png Binary file share/hedgewars/Data/Graphics/Flags/cm_iluvu.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_lips.png Binary file share/hedgewars/Data/Graphics/Flags/cm_lips.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_magicskull.png Binary file share/hedgewars/Data/Graphics/Flags/cm_magicskull.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_male.png Binary file share/hedgewars/Data/Graphics/Flags/cm_male.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_mog.png Binary file share/hedgewars/Data/Graphics/Flags/cm_mog.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_music.png Binary file share/hedgewars/Data/Graphics/Flags/cm_music.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_pacman.png Binary file share/hedgewars/Data/Graphics/Flags/cm_pacman.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_pacman2.png Binary file share/hedgewars/Data/Graphics/Flags/cm_pacman2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_pirate.png Binary file share/hedgewars/Data/Graphics/Flags/cm_pirate.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_pokemon.png Binary file share/hedgewars/Data/Graphics/Flags/cm_pokemon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_scout.png Binary file share/hedgewars/Data/Graphics/Flags/cm_scout.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_shoppa.png Binary file share/hedgewars/Data/Graphics/Flags/cm_shoppa.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_sonic.png Binary file share/hedgewars/Data/Graphics/Flags/cm_sonic.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_soviet.png Binary file share/hedgewars/Data/Graphics/Flags/cm_soviet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_swordshield.png Binary file share/hedgewars/Data/Graphics/Flags/cm_swordshield.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_swordshield2.png Binary file share/hedgewars/Data/Graphics/Flags/cm_swordshield2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_vampire.png Binary file share/hedgewars/Data/Graphics/Flags/cm_vampire.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cm_yinyang.png Binary file share/hedgewars/Data/Graphics/Flags/cm_yinyang.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/colombia.png Binary file share/hedgewars/Data/Graphics/Flags/colombia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/comoros.png Binary file share/hedgewars/Data/Graphics/Flags/comoros.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/congo-brazzaville.png Binary file share/hedgewars/Data/Graphics/Flags/congo-brazzaville.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/congo_kinshasa.png Binary file share/hedgewars/Data/Graphics/Flags/congo_kinshasa.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cook_islands.png Binary file share/hedgewars/Data/Graphics/Flags/cook_islands.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/costa_rica.png Binary file share/hedgewars/Data/Graphics/Flags/costa_rica.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cote_divoire.png Binary file share/hedgewars/Data/Graphics/Flags/cote_divoire.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cpu.png Binary file share/hedgewars/Data/Graphics/Flags/cpu.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cpu_plain.png Binary file share/hedgewars/Data/Graphics/Flags/cpu_plain.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/croatia.png Binary file share/hedgewars/Data/Graphics/Flags/croatia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cuba.png Binary file share/hedgewars/Data/Graphics/Flags/cuba.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/cyprus.png Binary file share/hedgewars/Data/Graphics/Flags/cyprus.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/czech_republic.png Binary file share/hedgewars/Data/Graphics/Flags/czech_republic.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/denmark.png Binary file share/hedgewars/Data/Graphics/Flags/denmark.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/djibouti.png Binary file share/hedgewars/Data/Graphics/Flags/djibouti.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/dominica.png Binary file share/hedgewars/Data/Graphics/Flags/dominica.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/dominican_republic.png Binary file share/hedgewars/Data/Graphics/Flags/dominican_republic.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/easttimor.png Binary file share/hedgewars/Data/Graphics/Flags/easttimor.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/ecuador.png Binary file share/hedgewars/Data/Graphics/Flags/ecuador.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/egypt.png Binary file share/hedgewars/Data/Graphics/Flags/egypt.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/el_salvador.png Binary file share/hedgewars/Data/Graphics/Flags/el_salvador.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/equatorial_guinea.png Binary file share/hedgewars/Data/Graphics/Flags/equatorial_guinea.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/eritrea.png Binary file share/hedgewars/Data/Graphics/Flags/eritrea.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/esperanto.png Binary file share/hedgewars/Data/Graphics/Flags/esperanto.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/estonia.png Binary file share/hedgewars/Data/Graphics/Flags/estonia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/ethiopia.png Binary file share/hedgewars/Data/Graphics/Flags/ethiopia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/europeanunion.png Binary file share/hedgewars/Data/Graphics/Flags/europeanunion.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/fiji.png Binary file share/hedgewars/Data/Graphics/Flags/fiji.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/finland.png Binary file share/hedgewars/Data/Graphics/Flags/finland.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/france.png Binary file share/hedgewars/Data/Graphics/Flags/france.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/gabon.png Binary file share/hedgewars/Data/Graphics/Flags/gabon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/gambia.png Binary file share/hedgewars/Data/Graphics/Flags/gambia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/georgia.png Binary file share/hedgewars/Data/Graphics/Flags/georgia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/germany.png Binary file share/hedgewars/Data/Graphics/Flags/germany.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/ghana.png Binary file share/hedgewars/Data/Graphics/Flags/ghana.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/greece.png Binary file share/hedgewars/Data/Graphics/Flags/greece.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/grenada.png Binary file share/hedgewars/Data/Graphics/Flags/grenada.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/guam.png Binary file share/hedgewars/Data/Graphics/Flags/guam.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/guatemala.png Binary file share/hedgewars/Data/Graphics/Flags/guatemala.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/guinea.png Binary file share/hedgewars/Data/Graphics/Flags/guinea.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/guyana.png Binary file share/hedgewars/Data/Graphics/Flags/guyana.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/haiti.png Binary file share/hedgewars/Data/Graphics/Flags/haiti.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/hedgewars.png Binary file share/hedgewars/Data/Graphics/Flags/hedgewars.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/honduras.png Binary file share/hedgewars/Data/Graphics/Flags/honduras.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/hungary.png Binary file share/hedgewars/Data/Graphics/Flags/hungary.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/iceland.png Binary file share/hedgewars/Data/Graphics/Flags/iceland.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/india.png Binary file share/hedgewars/Data/Graphics/Flags/india.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/indonesia.png Binary file share/hedgewars/Data/Graphics/Flags/indonesia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/iran.png Binary file share/hedgewars/Data/Graphics/Flags/iran.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/iraq.png Binary file share/hedgewars/Data/Graphics/Flags/iraq.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/ireland.png Binary file share/hedgewars/Data/Graphics/Flags/ireland.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/israel.png Binary file share/hedgewars/Data/Graphics/Flags/israel.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/italy.png Binary file share/hedgewars/Data/Graphics/Flags/italy.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/jamaica.png Binary file share/hedgewars/Data/Graphics/Flags/jamaica.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/japan.png Binary file share/hedgewars/Data/Graphics/Flags/japan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/jordan.png Binary file share/hedgewars/Data/Graphics/Flags/jordan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/kazakhstan.png Binary file share/hedgewars/Data/Graphics/Flags/kazakhstan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/kenya.png Binary file share/hedgewars/Data/Graphics/Flags/kenya.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/kiribati.png Binary file share/hedgewars/Data/Graphics/Flags/kiribati.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/kuwait.png Binary file share/hedgewars/Data/Graphics/Flags/kuwait.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/kyrgyzstan.png Binary file share/hedgewars/Data/Graphics/Flags/kyrgyzstan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/laos.png Binary file share/hedgewars/Data/Graphics/Flags/laos.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/latvia.png Binary file share/hedgewars/Data/Graphics/Flags/latvia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/lebanon.png Binary file share/hedgewars/Data/Graphics/Flags/lebanon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/lesotho.png Binary file share/hedgewars/Data/Graphics/Flags/lesotho.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/liberia.png Binary file share/hedgewars/Data/Graphics/Flags/liberia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/libya.png Binary file share/hedgewars/Data/Graphics/Flags/libya.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/liechtenstein.png Binary file share/hedgewars/Data/Graphics/Flags/liechtenstein.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/lithuania.png Binary file share/hedgewars/Data/Graphics/Flags/lithuania.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/luxembourg.png Binary file share/hedgewars/Data/Graphics/Flags/luxembourg.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/macau.png Binary file share/hedgewars/Data/Graphics/Flags/macau.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/macedonia.png Binary file share/hedgewars/Data/Graphics/Flags/macedonia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/madagascar.png Binary file share/hedgewars/Data/Graphics/Flags/madagascar.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/malawi.png Binary file share/hedgewars/Data/Graphics/Flags/malawi.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/malaysia.png Binary file share/hedgewars/Data/Graphics/Flags/malaysia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/maldives.png Binary file share/hedgewars/Data/Graphics/Flags/maldives.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/mali.png Binary file share/hedgewars/Data/Graphics/Flags/mali.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/malta.png Binary file share/hedgewars/Data/Graphics/Flags/malta.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/marshall_islands.png Binary file share/hedgewars/Data/Graphics/Flags/marshall_islands.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/mauritania.png Binary file share/hedgewars/Data/Graphics/Flags/mauritania.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/mauritius.png Binary file share/hedgewars/Data/Graphics/Flags/mauritius.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/mexico.png Binary file share/hedgewars/Data/Graphics/Flags/mexico.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/micronesia.png Binary file share/hedgewars/Data/Graphics/Flags/micronesia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/moldova.png Binary file share/hedgewars/Data/Graphics/Flags/moldova.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/monaco.png Binary file share/hedgewars/Data/Graphics/Flags/monaco.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/mongolia.png Binary file share/hedgewars/Data/Graphics/Flags/mongolia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/montserrat.png Binary file share/hedgewars/Data/Graphics/Flags/montserrat.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/morocco.png Binary file share/hedgewars/Data/Graphics/Flags/morocco.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/mozambique.png Binary file share/hedgewars/Data/Graphics/Flags/mozambique.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/myanmar.png Binary file share/hedgewars/Data/Graphics/Flags/myanmar.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/namibia.png Binary file share/hedgewars/Data/Graphics/Flags/namibia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/nauru.png Binary file share/hedgewars/Data/Graphics/Flags/nauru.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/nepal.png Binary file share/hedgewars/Data/Graphics/Flags/nepal.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/netherlands.png Binary file share/hedgewars/Data/Graphics/Flags/netherlands.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/new_zealand.png Binary file share/hedgewars/Data/Graphics/Flags/new_zealand.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/nicaragua.png Binary file share/hedgewars/Data/Graphics/Flags/nicaragua.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/niger.png Binary file share/hedgewars/Data/Graphics/Flags/niger.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/nigeria.png Binary file share/hedgewars/Data/Graphics/Flags/nigeria.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/niue.png Binary file share/hedgewars/Data/Graphics/Flags/niue.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/northern_mariana.png Binary file share/hedgewars/Data/Graphics/Flags/northern_mariana.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/northkorea.png Binary file share/hedgewars/Data/Graphics/Flags/northkorea.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/norway.png Binary file share/hedgewars/Data/Graphics/Flags/norway.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/oman.png Binary file share/hedgewars/Data/Graphics/Flags/oman.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/pakistan.png Binary file share/hedgewars/Data/Graphics/Flags/pakistan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/palau.png Binary file share/hedgewars/Data/Graphics/Flags/palau.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/palestine.png Binary file share/hedgewars/Data/Graphics/Flags/palestine.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/panama.png Binary file share/hedgewars/Data/Graphics/Flags/panama.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/papua_new_guinea.png Binary file share/hedgewars/Data/Graphics/Flags/papua_new_guinea.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/paraguay.png Binary file share/hedgewars/Data/Graphics/Flags/paraguay.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/peru.png Binary file share/hedgewars/Data/Graphics/Flags/peru.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/philippines.png Binary file share/hedgewars/Data/Graphics/Flags/philippines.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/poland.png Binary file share/hedgewars/Data/Graphics/Flags/poland.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/portugal.png Binary file share/hedgewars/Data/Graphics/Flags/portugal.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/puerto_rico.png Binary file share/hedgewars/Data/Graphics/Flags/puerto_rico.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/qatar.png Binary file share/hedgewars/Data/Graphics/Flags/qatar.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/quebec.png Binary file share/hedgewars/Data/Graphics/Flags/quebec.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/romania.png Binary file share/hedgewars/Data/Graphics/Flags/romania.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/russian_federation.png Binary file share/hedgewars/Data/Graphics/Flags/russian_federation.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/rwanda.png Binary file share/hedgewars/Data/Graphics/Flags/rwanda.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/saint_kitts_and_nevis.png Binary file share/hedgewars/Data/Graphics/Flags/saint_kitts_and_nevis.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/saint_lucia.png Binary file share/hedgewars/Data/Graphics/Flags/saint_lucia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/saint_vincent_and_the_grenadines.png Binary file share/hedgewars/Data/Graphics/Flags/saint_vincent_and_the_grenadines.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/samoa.png Binary file share/hedgewars/Data/Graphics/Flags/samoa.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/san_marino.png Binary file share/hedgewars/Data/Graphics/Flags/san_marino.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/saotomeandprincipe.png Binary file share/hedgewars/Data/Graphics/Flags/saotomeandprincipe.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/saudiarabia.png Binary file share/hedgewars/Data/Graphics/Flags/saudiarabia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/senegal.png Binary file share/hedgewars/Data/Graphics/Flags/senegal.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/serbia_and_montenegro.png Binary file share/hedgewars/Data/Graphics/Flags/serbia_and_montenegro.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/seychelles.png Binary file share/hedgewars/Data/Graphics/Flags/seychelles.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/sicily.png Binary file share/hedgewars/Data/Graphics/Flags/sicily.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/sierra_leone.png Binary file share/hedgewars/Data/Graphics/Flags/sierra_leone.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/singapore.png Binary file share/hedgewars/Data/Graphics/Flags/singapore.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/slovakia.png Binary file share/hedgewars/Data/Graphics/Flags/slovakia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/slovenia.png Binary file share/hedgewars/Data/Graphics/Flags/slovenia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/solomon_islands.png Binary file share/hedgewars/Data/Graphics/Flags/solomon_islands.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/somalia.png Binary file share/hedgewars/Data/Graphics/Flags/somalia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/south_africa.png Binary file share/hedgewars/Data/Graphics/Flags/south_africa.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/south_korea.png Binary file share/hedgewars/Data/Graphics/Flags/south_korea.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/south_sudan.png Binary file share/hedgewars/Data/Graphics/Flags/south_sudan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/spain.png Binary file share/hedgewars/Data/Graphics/Flags/spain.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/sri_lanka.png Binary file share/hedgewars/Data/Graphics/Flags/sri_lanka.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/sudan.png Binary file share/hedgewars/Data/Graphics/Flags/sudan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/suisse.png Binary file share/hedgewars/Data/Graphics/Flags/suisse.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/suriname.png Binary file share/hedgewars/Data/Graphics/Flags/suriname.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/swaziland.png Binary file share/hedgewars/Data/Graphics/Flags/swaziland.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/sweden.png Binary file share/hedgewars/Data/Graphics/Flags/sweden.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/syrian_arab_republic.png Binary file share/hedgewars/Data/Graphics/Flags/syrian_arab_republic.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/taiwan.png Binary file share/hedgewars/Data/Graphics/Flags/taiwan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/tajikistan.png Binary file share/hedgewars/Data/Graphics/Flags/tajikistan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/tanzania.png Binary file share/hedgewars/Data/Graphics/Flags/tanzania.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/thailand.png Binary file share/hedgewars/Data/Graphics/Flags/thailand.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/tibet.png Binary file share/hedgewars/Data/Graphics/Flags/tibet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/timor_leste.png Binary file share/hedgewars/Data/Graphics/Flags/timor_leste.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/togo.png Binary file share/hedgewars/Data/Graphics/Flags/togo.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/tokelau.png Binary file share/hedgewars/Data/Graphics/Flags/tokelau.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/tonga.png Binary file share/hedgewars/Data/Graphics/Flags/tonga.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/trinidad_and_tobago.png Binary file share/hedgewars/Data/Graphics/Flags/trinidad_and_tobago.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/tunisia.png Binary file share/hedgewars/Data/Graphics/Flags/tunisia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/turkey.png Binary file share/hedgewars/Data/Graphics/Flags/turkey.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/turkmenistan.png Binary file share/hedgewars/Data/Graphics/Flags/turkmenistan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/tuvalu.png Binary file share/hedgewars/Data/Graphics/Flags/tuvalu.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/uganda.png Binary file share/hedgewars/Data/Graphics/Flags/uganda.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/ukraine.png Binary file share/hedgewars/Data/Graphics/Flags/ukraine.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/united_arab_emirates.png Binary file share/hedgewars/Data/Graphics/Flags/united_arab_emirates.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/united_kingdom.png Binary file share/hedgewars/Data/Graphics/Flags/united_kingdom.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/united_states.png Binary file share/hedgewars/Data/Graphics/Flags/united_states.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/uruguay.png Binary file share/hedgewars/Data/Graphics/Flags/uruguay.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/uzbekistan.png Binary file share/hedgewars/Data/Graphics/Flags/uzbekistan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/vanuatu.png Binary file share/hedgewars/Data/Graphics/Flags/vanuatu.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/vatican.png Binary file share/hedgewars/Data/Graphics/Flags/vatican.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/venezuela.png Binary file share/hedgewars/Data/Graphics/Flags/venezuela.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/vietnam.png Binary file share/hedgewars/Data/Graphics/Flags/vietnam.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/western_sahara.png Binary file share/hedgewars/Data/Graphics/Flags/western_sahara.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/yemen.png Binary file share/hedgewars/Data/Graphics/Flags/yemen.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/yugoslavia.png Binary file share/hedgewars/Data/Graphics/Flags/yugoslavia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/zambia.png Binary file share/hedgewars/Data/Graphics/Flags/zambia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flags/zimbabwe.png Binary file share/hedgewars/Data/Graphics/Flags/zimbabwe.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Flame.png Binary file share/hedgewars/Data/Graphics/Flame.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Frame.png Binary file share/hedgewars/Data/Graphics/Frame.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Girder.png Binary file share/hedgewars/Data/Graphics/Girder.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/Bone.png Binary file share/hedgewars/Data/Graphics/Graves/Bone.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/Cherry.png Binary file share/hedgewars/Data/Graphics/Graves/Cherry.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/Flower.png Binary file share/hedgewars/Data/Graphics/Graves/Flower.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/Grave.png Binary file share/hedgewars/Data/Graphics/Graves/Grave.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/Plinko.png Binary file share/hedgewars/Data/Graphics/Graves/Plinko.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/Rip.png Binary file share/hedgewars/Data/Graphics/Graves/Rip.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/Simple.png Binary file share/hedgewars/Data/Graphics/Graves/Simple.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/Statue.png Binary file share/hedgewars/Data/Graphics/Graves/Statue.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/bp2.png Binary file share/hedgewars/Data/Graphics/Graves/bp2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/coffin.png Binary file share/hedgewars/Data/Graphics/Graves/coffin.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/deadhog.png Binary file share/hedgewars/Data/Graphics/Graves/deadhog.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/eyecross.png Binary file share/hedgewars/Data/Graphics/Graves/eyecross.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/money.png Binary file share/hedgewars/Data/Graphics/Graves/money.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/pokeball.png Binary file share/hedgewars/Data/Graphics/Graves/pokeball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Graves/star.png Binary file share/hedgewars/Data/Graphics/Graves/star.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/HHDeath.png Binary file share/hedgewars/Data/Graphics/HHDeath.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hammer.png Binary file share/hedgewars/Data/Graphics/Hammer.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/4gsuif.png Binary file share/hedgewars/Data/Graphics/Hats/4gsuif.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/AkuAku.png Binary file share/hedgewars/Data/Graphics/Hats/AkuAku.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Bandit.png Binary file share/hedgewars/Data/Graphics/Hats/Bandit.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Coonskin3.png Binary file share/hedgewars/Data/Graphics/Hats/Coonskin3.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Cowboy.png Binary file share/hedgewars/Data/Graphics/Hats/Cowboy.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Disguise.png Binary file share/hedgewars/Data/Graphics/Hats/Disguise.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Elvis.png Binary file share/hedgewars/Data/Graphics/Hats/Elvis.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Gasmask.png Binary file share/hedgewars/Data/Graphics/Hats/Gasmask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Glasses.png Binary file share/hedgewars/Data/Graphics/Hats/Glasses.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/HogInTheHat.png Binary file share/hedgewars/Data/Graphics/Hats/HogInTheHat.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Jason.png Binary file share/hedgewars/Data/Graphics/Hats/Jason.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/MegaHogX.png Binary file share/hedgewars/Data/Graphics/Hats/MegaHogX.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Meteorhelmet.png Binary file share/hedgewars/Data/Graphics/Hats/Meteorhelmet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/NinjaFull.png Binary file share/hedgewars/Data/Graphics/Hats/NinjaFull.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/NinjaStraight.png Binary file share/hedgewars/Data/Graphics/Hats/NinjaStraight.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/NinjaTriangle.png Binary file share/hedgewars/Data/Graphics/Hats/NinjaTriangle.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/NoHat.png Binary file share/hedgewars/Data/Graphics/Hats/NoHat.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/OldMan.png Binary file share/hedgewars/Data/Graphics/Hats/OldMan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Plunger.png Binary file share/hedgewars/Data/Graphics/Hats/Plunger.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/RSR.png Binary file share/hedgewars/Data/Graphics/Hats/RSR.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Rain.png Binary file share/hedgewars/Data/Graphics/Hats/Rain.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Reserved/c2fb2dd15ec2ff9a332462ab19cfac4doldskool.png Binary file share/hedgewars/Data/Graphics/Hats/Reserved/c2fb2dd15ec2ff9a332462ab19cfac4doldskool.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Reserved/chef.png Binary file share/hedgewars/Data/Graphics/Hats/Reserved/chef.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Reserved/e587f6146ebfbdefdc028c591643f220alwayss.png Binary file share/hedgewars/Data/Graphics/Hats/Reserved/e587f6146ebfbdefdc028c591643f220alwayss.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/RobinHood.png Binary file share/hedgewars/Data/Graphics/Hats/RobinHood.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Samurai.png Binary file share/hedgewars/Data/Graphics/Hats/Samurai.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Santa.png Binary file share/hedgewars/Data/Graphics/Hats/Santa.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/ShortHair_Black.png Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Black.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/ShortHair_Brown.png Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Brown.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/ShortHair_Grey.png Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Grey.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/ShortHair_Red.png Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Red.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/ShortHair_Yellow.png Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Yellow.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Skull.png Binary file share/hedgewars/Data/Graphics/Hats/Skull.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/StrawHat.png Binary file share/hedgewars/Data/Graphics/Hats/StrawHat.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Sunglasses.png Binary file share/hedgewars/Data/Graphics/Hats/Sunglasses.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/TeamHeadband.png Binary file share/hedgewars/Data/Graphics/Hats/TeamHeadband.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/TeamSoldier.png Binary file share/hedgewars/Data/Graphics/Hats/TeamSoldier.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/TeamTophat.png Binary file share/hedgewars/Data/Graphics/Hats/TeamTophat.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/TeamWheatley.png Binary file share/hedgewars/Data/Graphics/Hats/TeamWheatley.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Terminator_Glasses.png Binary file share/hedgewars/Data/Graphics/Hats/Terminator_Glasses.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/Viking.png Binary file share/hedgewars/Data/Graphics/Hats/Viking.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/WhySoSerious.png Binary file share/hedgewars/Data/Graphics/Hats/WhySoSerious.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/WizardHat.png Binary file share/hedgewars/Data/Graphics/Hats/WizardHat.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/android.png Binary file share/hedgewars/Data/Graphics/Hats/android.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/angel.png Binary file share/hedgewars/Data/Graphics/Hats/angel.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/anzac.png Binary file share/hedgewars/Data/Graphics/Hats/anzac.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/bb_bub.png Binary file share/hedgewars/Data/Graphics/Hats/bb_bub.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/bb_cororon.png Binary file share/hedgewars/Data/Graphics/Hats/bb_cororon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/bb_kululun.png Binary file share/hedgewars/Data/Graphics/Hats/bb_kululun.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/beefeater.png Binary file share/hedgewars/Data/Graphics/Hats/beefeater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/bushhider.png Binary file share/hedgewars/Data/Graphics/Hats/bushhider.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/cap_blue.png Binary file share/hedgewars/Data/Graphics/Hats/cap_blue.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/cap_green.png Binary file share/hedgewars/Data/Graphics/Hats/cap_green.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/cap_junior.png Binary file share/hedgewars/Data/Graphics/Hats/cap_junior.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/cap_red.png Binary file share/hedgewars/Data/Graphics/Hats/cap_red.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/cap_team.png Binary file share/hedgewars/Data/Graphics/Hats/cap_team.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/cap_thinking.png Binary file share/hedgewars/Data/Graphics/Hats/cap_thinking.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/cap_yellow.png Binary file share/hedgewars/Data/Graphics/Hats/cap_yellow.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/chef.png Binary file share/hedgewars/Data/Graphics/Hats/chef.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/chuckl.png Binary file share/hedgewars/Data/Graphics/Hats/chuckl.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/cratehider.png Binary file share/hedgewars/Data/Graphics/Hats/cratehider.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/crown.png Binary file share/hedgewars/Data/Graphics/Hats/crown.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/cyclops.png Binary file share/hedgewars/Data/Graphics/Hats/cyclops.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/dish_Ladle.png Binary file share/hedgewars/Data/Graphics/Hats/dish_Ladle.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/dish_SauceBoatSilver.png Binary file share/hedgewars/Data/Graphics/Hats/dish_SauceBoatSilver.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/dwarf.png Binary file share/hedgewars/Data/Graphics/Hats/dwarf.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/eastertop.png Binary file share/hedgewars/Data/Graphics/Hats/eastertop.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/fr_apple.png Binary file share/hedgewars/Data/Graphics/Hats/fr_apple.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/fr_lemon.png Binary file share/hedgewars/Data/Graphics/Hats/fr_lemon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/fr_pumpkin.png Binary file share/hedgewars/Data/Graphics/Hats/fr_pumpkin.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/fr_tomato.png Binary file share/hedgewars/Data/Graphics/Hats/fr_tomato.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/fr_tomato.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Graphics/Hats/fr_tomato.svg Wed Dec 03 00:07:33 2014 +0300 @@ -0,0 +1,2210 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/hair_blue.png Binary file share/hedgewars/Data/Graphics/Hats/hair_blue.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/hair_green.png Binary file share/hedgewars/Data/Graphics/Hats/hair_green.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/hair_grey.png Binary file share/hedgewars/Data/Graphics/Hats/hair_grey.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/hair_orange.png Binary file share/hedgewars/Data/Graphics/Hats/hair_orange.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/hair_pink.png Binary file share/hedgewars/Data/Graphics/Hats/hair_pink.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/hair_purple.png Binary file share/hedgewars/Data/Graphics/Hats/hair_purple.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/hair_red.png Binary file share/hedgewars/Data/Graphics/Hats/hair_red.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/hair_team.png Binary file share/hedgewars/Data/Graphics/Hats/hair_team.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/hair_yellow.png Binary file share/hedgewars/Data/Graphics/Hats/hair_yellow.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/knight.png Binary file share/hedgewars/Data/Graphics/Hats/knight.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/lambda.png Binary file share/hedgewars/Data/Graphics/Hats/lambda.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/laurel.png Binary file share/hedgewars/Data/Graphics/Hats/laurel.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/metalband.png Binary file share/hedgewars/Data/Graphics/Hats/metalband.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/mickey_ears.png Binary file share/hedgewars/Data/Graphics/Hats/mickey_ears.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/mp3.png Binary file share/hedgewars/Data/Graphics/Hats/mp3.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/mv_Spidey.png Binary file share/hedgewars/Data/Graphics/Hats/mv_Spidey.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/ntd_Falcon.png Binary file share/hedgewars/Data/Graphics/Hats/ntd_Falcon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/ntd_Kirby.png Binary file share/hedgewars/Data/Graphics/Hats/ntd_Kirby.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/ntd_Samus.png Binary file share/hedgewars/Data/Graphics/Hats/ntd_Samus.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/pinksunhat.png Binary file share/hedgewars/Data/Graphics/Hats/pinksunhat.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/pirate_jack.png Binary file share/hedgewars/Data/Graphics/Hats/pirate_jack.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/pirate_jack_bandana.png Binary file share/hedgewars/Data/Graphics/Hats/pirate_jack_bandana.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/poke_ash.png Binary file share/hedgewars/Data/Graphics/Hats/poke_ash.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/poke_charmander.png Binary file share/hedgewars/Data/Graphics/Hats/poke_charmander.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/poke_chikorita.png Binary file share/hedgewars/Data/Graphics/Hats/poke_chikorita.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/poke_jigglypuff.png Binary file share/hedgewars/Data/Graphics/Hats/poke_jigglypuff.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/poke_lugia.png Binary file share/hedgewars/Data/Graphics/Hats/poke_lugia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/poke_mudkip.png Binary file share/hedgewars/Data/Graphics/Hats/poke_mudkip.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/poke_squirtle.png Binary file share/hedgewars/Data/Graphics/Hats/poke_squirtle.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/poke_voltorb.png Binary file share/hedgewars/Data/Graphics/Hats/poke_voltorb.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/policecap.png Binary file share/hedgewars/Data/Graphics/Hats/policecap.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/policegirl.png Binary file share/hedgewars/Data/Graphics/Hats/policegirl.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/quotecap.png Binary file share/hedgewars/Data/Graphics/Hats/quotecap.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/scif_2001O.png Binary file share/hedgewars/Data/Graphics/Hats/scif_2001O.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/scif_2001Y.png Binary file share/hedgewars/Data/Graphics/Hats/scif_2001Y.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/scif_Geordi.png Binary file share/hedgewars/Data/Graphics/Hats/scif_Geordi.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/scif_SparkssHelmet.png Binary file share/hedgewars/Data/Graphics/Hats/scif_SparkssHelmet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/scif_cyberpunk.png Binary file share/hedgewars/Data/Graphics/Hats/scif_cyberpunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/sf_honda.png Binary file share/hedgewars/Data/Graphics/Hats/sf_honda.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/sf_ryu.png Binary file share/hedgewars/Data/Graphics/Hats/sf_ryu.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/sm_luigi.png Binary file share/hedgewars/Data/Graphics/Hats/sm_luigi.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/sm_mario.png Binary file share/hedgewars/Data/Graphics/Hats/sm_mario.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/sm_toad.png Binary file share/hedgewars/Data/Graphics/Hats/sm_toad.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/snowhog.png Binary file share/hedgewars/Data/Graphics/Hats/snowhog.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/spcartman.png Binary file share/hedgewars/Data/Graphics/Hats/spcartman.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/spkenny.png Binary file share/hedgewars/Data/Graphics/Hats/spkenny.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/spkyle.png Binary file share/hedgewars/Data/Graphics/Hats/spkyle.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/spstan.png Binary file share/hedgewars/Data/Graphics/Hats/spstan.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/sth_SonicClassic.png Binary file share/hedgewars/Data/Graphics/Hats/sth_SonicClassic.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/sth_Super.png Binary file share/hedgewars/Data/Graphics/Hats/sth_Super.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/tf_demoman.png Binary file share/hedgewars/Data/Graphics/Hats/tf_demoman.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/tf_scount.png Binary file share/hedgewars/Data/Graphics/Hats/tf_scount.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/tophats.png Binary file share/hedgewars/Data/Graphics/Hats/tophats.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/touhou_chen.png Binary file share/hedgewars/Data/Graphics/Hats/touhou_chen.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/touhou_marisa.png Binary file share/hedgewars/Data/Graphics/Hats/touhou_marisa.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/touhou_patchouli.png Binary file share/hedgewars/Data/Graphics/Hats/touhou_patchouli.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/touhou_remelia.png Binary file share/hedgewars/Data/Graphics/Hats/touhou_remelia.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/touhou_suwako.png Binary file share/hedgewars/Data/Graphics/Hats/touhou_suwako.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/touhou_yukari.png Binary file share/hedgewars/Data/Graphics/Hats/touhou_yukari.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/ushanka.png Binary file share/hedgewars/Data/Graphics/Hats/ushanka.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/vampirichog.png Binary file share/hedgewars/Data/Graphics/Hats/vampirichog.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/vc_gakupo.png Binary file share/hedgewars/Data/Graphics/Hats/vc_gakupo.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/vc_gumi.png Binary file share/hedgewars/Data/Graphics/Hats/vc_gumi.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/vc_kaito.png Binary file share/hedgewars/Data/Graphics/Hats/vc_kaito.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/vc_len.png Binary file share/hedgewars/Data/Graphics/Hats/vc_len.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/vc_luka.png Binary file share/hedgewars/Data/Graphics/Hats/vc_luka.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/vc_meiko.png Binary file share/hedgewars/Data/Graphics/Hats/vc_meiko.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/vc_miku.png Binary file share/hedgewars/Data/Graphics/Hats/vc_miku.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/vc_rin.png Binary file share/hedgewars/Data/Graphics/Hats/vc_rin.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/war_UNPeacekeeper01.png Binary file share/hedgewars/Data/Graphics/Hats/war_UNPeacekeeper01.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/war_UNPeacekeeper02.png Binary file share/hedgewars/Data/Graphics/Hats/war_UNPeacekeeper02.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/war_americanww2helmet.png Binary file share/hedgewars/Data/Graphics/Hats/war_americanww2helmet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/war_britpthhelmet.png Binary file share/hedgewars/Data/Graphics/Hats/war_britpthhelmet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/war_frenchww1helmet.png Binary file share/hedgewars/Data/Graphics/Hats/war_frenchww1helmet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/war_grenadier1.png Binary file share/hedgewars/Data/Graphics/Hats/war_grenadier1.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/zoo_Bat.png Binary file share/hedgewars/Data/Graphics/Hats/zoo_Bat.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/zoo_Beaver.png Binary file share/hedgewars/Data/Graphics/Hats/zoo_Beaver.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/zoo_Bunny.png Binary file share/hedgewars/Data/Graphics/Hats/zoo_Bunny.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/zoo_Deer.png Binary file share/hedgewars/Data/Graphics/Hats/zoo_Deer.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/zoo_Hedgehog.png Binary file share/hedgewars/Data/Graphics/Hats/zoo_Hedgehog.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/zoo_Moose.png Binary file share/hedgewars/Data/Graphics/Hats/zoo_Moose.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/zoo_Porkey.png Binary file share/hedgewars/Data/Graphics/Hats/zoo_Porkey.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hats/zoo_Sheep.png Binary file share/hedgewars/Data/Graphics/Hats/zoo_Sheep.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Health.png Binary file share/hedgewars/Data/Graphics/Health.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/Idle.png Binary file share/hedgewars/Data/Graphics/Hedgehog/Idle.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/ShoutCorner.png Binary file share/hedgewars/Data/Graphics/Hedgehog/ShoutCorner.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/ShoutEdge.png Binary file share/hedgewars/Data/Graphics/Hedgehog/ShoutEdge.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/ShoutTail.png Binary file share/hedgewars/Data/Graphics/Hedgehog/ShoutTail.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/SpeechCorner.png Binary file share/hedgewars/Data/Graphics/Hedgehog/SpeechCorner.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/SpeechEdge.png Binary file share/hedgewars/Data/Graphics/Hedgehog/SpeechEdge.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/SpeechTail.png Binary file share/hedgewars/Data/Graphics/Hedgehog/SpeechTail.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/ThoughtCorner.png Binary file share/hedgewars/Data/Graphics/Hedgehog/ThoughtCorner.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/ThoughtEdge.png Binary file share/hedgewars/Data/Graphics/Hedgehog/ThoughtEdge.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/ThoughtTail.png Binary file share/hedgewars/Data/Graphics/Hedgehog/ThoughtTail.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/Vampiric.png Binary file share/hedgewars/Data/Graphics/Hedgehog/Vampiric.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/Wave.png Binary file share/hedgewars/Data/Graphics/Hedgehog/Wave.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amBTorch_i.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amBTorch_i.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amBTorch_w.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amBTorch_w.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amBallgun.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amBallgun.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amBaseball.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amBaseball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amBazooka.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amBazooka.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amBee.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amBee.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amCake.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amCake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amCheese.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amCheese.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amCluster.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amCluster.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amConstruction.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amConstruction.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amDEagle.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amDEagle.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amDEagle_w.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amDEagle_w.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amDynamite.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amDynamite.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amFlamethrower.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amFlamethrower.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amFrozenHog.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amFrozenHog.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amGrenade.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amGrenade.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amHellish.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amHellish.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amKnife.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amKnife.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amMelon.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amMelon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amMine.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amMine.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amMortar.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amMortar.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amPortalGun.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amPortalGun.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amResurrector.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amResurrector.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amSMine.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amSMine.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amSeduction.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amSeduction.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amShotgun.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amShotgun.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amShotgun_w.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amShotgun_w.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amSkip.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amSkip.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amSniperRifle.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amSniperRifle.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amSnowball.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amSnowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/amVamp.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amVamp.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Hedgehog/hh_small.png Binary file share/hedgewars/Data/Graphics/Hedgehog/hh_small.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/HellishBomb.png Binary file share/hedgewars/Data/Graphics/HellishBomb.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/LandIce.png Binary file share/hedgewars/Data/Graphics/LandIce.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/MineDead.png Binary file share/hedgewars/Data/Graphics/MineDead.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/MineOff.png Binary file share/hedgewars/Data/Graphics/MineOff.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/MineOn.png Binary file share/hedgewars/Data/Graphics/MineOn.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Nobody_Laugh.png Binary file share/hedgewars/Data/Graphics/Missions/Training/User_Mission_-_Nobody_Laugh.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Mortar.png Binary file share/hedgewars/Data/Graphics/Mortar.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Note.png Binary file share/hedgewars/Data/Graphics/Note.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Parachute.png Binary file share/hedgewars/Data/Graphics/Parachute.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Power.png Binary file share/hedgewars/Data/Graphics/Power.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/PowerBar.png Binary file share/hedgewars/Data/Graphics/PowerBar.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/RopeHook.png Binary file share/hedgewars/Data/Graphics/RopeHook.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/RopeNode.png Binary file share/hedgewars/Data/Graphics/RopeNode.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/SMineOff.png Binary file share/hedgewars/Data/Graphics/SMineOff.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/SMineOn.png Binary file share/hedgewars/Data/Graphics/SMineOn.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Seduction.png Binary file share/hedgewars/Data/Graphics/Seduction.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Shells.png Binary file share/hedgewars/Data/Graphics/Shells.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/SmokeRing.png Binary file share/hedgewars/Data/Graphics/SmokeRing.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/SmokeTrace.png Binary file share/hedgewars/Data/Graphics/SmokeTrace.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/SmokeWhite.png Binary file share/hedgewars/Data/Graphics/SmokeWhite.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Snow.png Binary file share/hedgewars/Data/Graphics/Snow.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/SnowDust.png Binary file share/hedgewars/Data/Graphics/SnowDust.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Snowball.png Binary file share/hedgewars/Data/Graphics/Snowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/SuddenDeath/SDClouds.png Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDClouds.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/SuddenDeath/SDDroplet.png Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDDroplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/SuddenDeath/SDSplash.png Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDSplash.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/SuddenDeath/SDWater.png Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Switch.png Binary file share/hedgewars/Data/Graphics/Switch.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Target.png Binary file share/hedgewars/Data/Graphics/Target.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/TargetBee.png Binary file share/hedgewars/Data/Graphics/TargetBee.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/Targetp.png Binary file share/hedgewars/Data/Graphics/Targetp.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/WindBar.png Binary file share/hedgewars/Data/Graphics/WindBar.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/WindL.png Binary file share/hedgewars/Data/Graphics/WindL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/WindR.png Binary file share/hedgewars/Data/Graphics/WindR.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/amAirplane.png Binary file share/hedgewars/Data/Graphics/amAirplane.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/amTeleport.png Binary file share/hedgewars/Data/Graphics/amTeleport.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/boing.png Binary file share/hedgewars/Data/Graphics/boing.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/botlevels.png Binary file share/hedgewars/Data/Graphics/botlevels.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/cheese.png Binary file share/hedgewars/Data/Graphics/cheese.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/custom1.png Binary file share/hedgewars/Data/Graphics/custom1.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/custom2.png Binary file share/hedgewars/Data/Graphics/custom2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/hhMask.png Binary file share/hedgewars/Data/Graphics/hhMask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/hwengine.png Binary file share/hedgewars/Data/Graphics/hwengine.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/icetexture.png Binary file share/hedgewars/Data/Graphics/icetexture.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/slider.png Binary file share/hedgewars/Data/Graphics/slider.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/star.png Binary file share/hedgewars/Data/Graphics/star.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Graphics/thinking.png Binary file share/hedgewars/Data/Graphics/thinking.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Locale/fi.txt --- a/share/hedgewars/Data/Locale/fi.txt Sat Nov 22 00:55:01 2014 +0300 +++ b/share/hedgewars/Data/Locale/fi.txt Wed Dec 03 00:07:33 2014 +0300 @@ -9,7 +9,7 @@ 00:06=Hyppää yli 00:07=Köysi 00:08=Miina -00:09=DEagle +00:09=Pistooli 00:10=Dynamiitti 00:11=Pesäpallomaila 00:12=Shoryuken @@ -43,13 +43,21 @@ 00:40=Polttopullo 00:41=Lintu 00:42=Siirrettävä portaalilaite -00:43=Piano-isku +00:43=Pianoisku 00:44=Vanha Limburger-juusto -00:45=Sini-aaltopyssy +00:45=Siniaaltopyssy 00:46=Liekinheitin 00:47=Tarttuva pommi 00:48=Vasara 00:49=Henkiinherättäjä +00:50=Poraisku +00:51=Mutapallo +00:52=Ei asetta valittuna +00:53=Aikakoppi +00:54=Maasuihke +00:55=Jäädytin +00:56=Jättiveitsi +00:57=Kuminauha 01:00=Taistelu alkakoon! 01:01=Tasapeli @@ -66,16 +74,25 @@ 01:12=Viimeinen kierros ennen äkkikuolemaa! 01:13=%1 kierrosta jäljellä äkkikuolemaan! 01:14=Valmistaudu, %1! - +01:15=Mitätön +01:16=Heikko +01:17=Normaali +01:18=Voimakas +01:19=Huima +01:20=%1 pomppu +01:21=Äänet hiljennetty +01:22=Poissa näppäimistöltä +01:23=Passiivinen kamera +01:24=Aktiivinen kamera ; Event messages ; Hog (%1) died 02:00=%1 potkaisi tyhjää! -02:00=%1 näki valon! +02:00=%1 koki valaistumisen! 02:00=%1 ei osannut odottaa tuota! 02:00=%1 heiluttaa näkemiin! 02:00=%1 on mennyt parempaan paikkaan -02:00=%1 tapaa luojansa! +02:00=%1 tapaa Luojansa! 02:00=%1 ei jaksa enää! 02:00=%1 on tehnyt tehtävänsä! 02:00=%1 tekee tärkeän uhrautumisen! @@ -100,15 +117,15 @@ 02:00=%1 ei vain osaa 02:00=Voi %1 parkaa... 02:00=%1 pitää enemmän Warmuxista -02:00=%1 on pysäyttänyt luoteja kasvoillaan +02:00=%1 pysäytti luoteja naamallaan 02:00=%1 on sankari ih...siilien joukossa 02:00=%1 löytää paikkansa Valhallasta 02:00=%1 on poistnut rakennuksesta 02:00=%1 seuraa dinosaurusten jalanjälkiä -02:00=%1 tuo siilet askelta lähemmäksi sukupuuttoa +02:00=%1 vie siilet askelta lähemmäksi sukupuuttoa 02:00=%1 tuo kyyneleen silmääni 02:00=%1 on ex-siili -02:00=%1 työntää kukkia esiin +02:00=%1:stä nauttii enää rikkaheinät 02:00=%1 on lakannut olemasta 02:00=Sano näkemiin %1:lle 02:00=%1:llä ei ole enää toivoa @@ -137,7 +154,7 @@ 02:01=%1 unohti surffilautansa kotiin 02:01=%1 unohti pelastusliivinsä 02:01=%1:stä kuuluu splish splash splish -02:01=%1 nukkuu kalojen kanssa +02:01=%1 lepää kalojen kanssa 02:01=%1:n mielestä veden fysiikka on ihan tyhmä tässä pelissä 02:01=%1 näyttää janoiselta 02:01=meri ottaa %1:n haltuunsa. @@ -161,7 +178,7 @@ 02:01=%1 löysi Atlantiksen kadonneen kaupungin 02:01=%1:n olisi pitänyt ottaa vesiskootteri mukaan 02:01=%1 ei pidä vesiurheilusta -02:01=%1 puhaltaa ikuisesti kuplia +02:01=%1 puhaltelee ikuisesti kuplia 02:01=%1 tarvitsee lautan 02:01=%1:n mielestä suolavesi on hyväksi iholle 02:01=%1 saa suolavettä haavoihinsa @@ -226,17 +243,17 @@ ; New health crate 02:05=Apua tulossa! -02:05=Lääkäri! +02:05=Lääkintämies! 02:05=Ensiapua taivaasta! 02:05=Terveyspaketti sinulle 02:05=Hyvää terveyttä laatikkomuodossa! -02:05=Tohtori soittaa +02:05=Tohtori kilauttaa 02:05=Tuoreita siteitä! 02:05=Tämä saa sinut tuntemaan itsesi terveemmäksi 02:05=Hi-Potion! Eiku väärä peli -02:05=Hae se! +02:05=Nappaa se! 02:05=Terveellinen välipala -02:05=Helpotus kipuun +02:05=Helpotusta kipuun 02:05=Oikea annostus: Niin monta kuin löydät! 02:05=Kiireellinen lähetys 02:05=Varusteita! @@ -286,7 +303,7 @@ 02:08=%1 on ajattelematon 02:08=%1 antoi periksi 02:08=Torkkumalla häviät, %1 -02:08=%1 häpeilemättömästi jättää vuoron välistä +02:08=%1 häpeilemättömästi jättää vuoronsa välistä 02:08=%1 on todella laiska 02:08=%1 tarvitsee lisää motivaatiota 02:08=%1 on pasifisti @@ -294,21 +311,21 @@ 02:08=%1 pitää tauon 02:08=%1 ottaa rennosti 02:08=%1 ei usko kykyihinsä -02:08=%1 päättää olla tekemättä mitään +02:08=%1 päättää olla tekemättä yhtään mitään 02:08=%1 antaa vihollisen tuhota itsensä -02:08=%1 olisi todella huono juhlissa +02:08=%1 olisi huonoa seuraa bileissä 02:08=%1 piiloutuu 02:08=%1 jättää mahdollisuuden käyttämättä -02:08=%1 päättää että paras asia minkä hän voi tehdä on...ei mitään +02:08=%1 toteaa että paras asia minkä hän voi tehdä on...ei mitään 02:08=%1 on pelkuri -02:08=Kot kot kot, %1 on pelkurikana +02:08=Kot kot kot, %1 on pelkurikana! 02:08=%1 kellertää 02:08=%1 on pelkuri! 02:08=%1 odottaa äkkikuolemaa 02:08=%1 ei ole taistelijatyyppiä -02:08=%1 harkitsee huudelleen elämänsä tarkoitusta -02:08=%1 eikoskaan osannut tähdätä muutenkaan -02:08=%1 ei olisi alunperinkään halunnutm ennä armeijaan +02:08=%1 harkitsee uudelleen elämänsä tarkoitusta +02:08=%1 ei koskaan oppinut tähtäämään muutenkaan +02:08=%1 ei olisi alunperinkään halunnut mennä armeijaan 02:08=Lakkaa haaskaamasta meidän aikaa, %1 02:08=Olen pettynyt sinuun, %1 02:08=Pystyt kyllä parempaankin, %1 @@ -336,7 +353,7 @@ 02:09=%1 siirtyy askeleen lähemmäksi itsemurhaa 02:09=%1 auttaa vihollista 02:09=Tuo oli tyhmää, %1 -02:09=%1 elää mantran "ei kipua, ei voittoa" mukaan +02:09=%1 elää mantran "ei kipua, ei hyötyä" mukaan 02:09=%1 on hämmentynyt 02:09=%1 satuttaa itseään hämmennyksessään 02:09=%1 tykkää nolata itseään @@ -353,8 +370,8 @@ 02:09=%1:n ase on selvästi epäkunnossa ; Hog shot an home run (using the bat and another hog) -02:10=Kotijuoksu! -02:10=Lintu, eiku lentokone, eiku... +02:10=Kunnari! +02:10=Onko se lintu, vai lentokone, eiku... 02:10=Se lensi pitkälle! ; Weapon Categories @@ -402,13 +419,21 @@ 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:43=Soittaa Beathovenin tappavan sonaatin 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. +03:50=Myyrien suosikki +03:51=Löytyi maasta +03:52=UNUSED +03:53=Mallia 40 +03:54=Työkalu +03:55=Tätä coolimpaa asetta ei ole! +03:56=Käytä tai väärinkäytä +03:57=Työkalu ; 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 @@ -459,8 +484,16 @@ 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: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ää: Ammu kohteen vierellä. 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ä +04:50=Piilotteleeko joku maan alla?|Kaiva heidät ulos poraiskulla!|Poraraketit räjähtävät ajastimen loputtua.|1-5: Säädä ajastin|Vasen/Oikea: Valitse hyökkäyssuunta|Osoitin: Valitse kohdealue +04:51=Heitä mutapallo, joka ei maksa siirtoasi.|Sysää siilet liikkeelle.|Hyökkää: Pidä pohjassa ampuaksesi kovemmalla voimalla +04:52=UNUSED +04:53=Lähde matkalle ajassa ja tilassa, jättäen| muut toverit taistelemaan yksin.|Valmistaudu palautumaan koska tahansa, |äkkikuolemassa tai kun muut joukkueesi siilet on tuhottu.|Ei toimi äkkikuolemassa, jos joukkueessa on enää yksi siili tai kuninkaalla.|Hyökkää: Aktivoi. +04:54=Suihkuttaa tahmeita hiutaleita, muodostaen maata.|Tuki reittejä, siiliä tai luo silta!|Ole tarkkana, ettet suihkuta itseesi.|Hyökkää: Aktivoi.|Ylös/Alas: Muuta tähtäystä|Vasen/Oikea: Muuta sylkyvoimaa +04:55=Palauta jääkausi!|Pakasta siilet usean vuoron ajaksi, tai jäädytä maata ja vettä.|Hyökkää: Aktivoi +04:56=Voit heittää kaksi veitseä vihollista kohti,|tukkia käytäviä tai vaikkapa tehdä niistä portaat!|Ole kuitenkin varovainen, teräaseilla leikkiminen on vaarallista!|Hyökkää: Aktivoi +04:57=Rakenna elastinen kumiseinä, josta siilet |ja aseet kimpoavat vahingoittumatta.|Vasen/Oikea: Käännä kumea|Hiiri: Sijoita kumi ; Game goal strings 05:00=Pelimoodit @@ -479,3 +512,9 @@ 05:13=Miinojen ajastimet: Miinat räjähtävät välittömästi 05:14=Miinojen ajastimet: Miinat räjähtävät 0 - 3 sekunnin kuluttua 05:15=Vahinkokerroin: Kaikki aseet tekevät %1% vahinkopistettä +05:16=Siilien terveys palautetaan vuoron vaihtuessa +05:17=Tekoälysiilet uudelleensyntyvät kuollessa +05:18=Rajattomat hyökkäykset +05:19=Aseet korvataan vuoron vaihtuessa +05:20=Aseita ei jaeta joukkueen kesken +05:21=Jaettu aika: Vuoron aika jaetaan tasan klaanin sisällä \ No newline at end of file diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Locale/hedgewars_de.ts --- a/share/hedgewars/Data/Locale/hedgewars_de.ts Sat Nov 22 00:55:01 2014 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_de.ts Wed Dec 03 00:07:33 2014 +0300 @@ -1,9 +1,10 @@ - + About + Unknown Compiler Unbekannter Compiler @@ -11,6 +12,7 @@ AbstractPage + Go back Zurück @@ -18,6 +20,7 @@ AmmoSchemeModel + new Neu @@ -26,6 +29,7 @@ Kopie von + copy of %1 Kopie von %1 @@ -33,50 +37,63 @@ BanDialog + + IP IP-Adresse + Nick Spitzname + IP/Nick IP-Adresse/Spitzname + Reason Grund + Duration Dauer + Ok OK + Cancel Abbrechen + you know why du weißt schon, warum + Warning Warnung + Please, specify %1 Bitte leg %1 fest + nickname Spitzname + permanent Spitzname @@ -84,6 +101,7 @@ DataManager + Use Default Verwende Standard @@ -91,14 +109,17 @@ FeedbackDialog + View Ansehen + Cancel Abbrechen + Send Feedback Feedback senden @@ -107,6 +128,7 @@ Bitte gib uns Feedback! + We are always happy about suggestions, ideas, or bug reports. Wir freuen uns immer über Vorschläge, Ideen oder Fehlerberichte. @@ -119,14 +141,17 @@ Deine E-Mail-Adresse ist optional, aber wir könnten sie brauchen, um dich zu kontaktieren. + Send us feedback! Schicke uns dein Feedback! + If you found a bug, you can see if it's already been reported here: Falls du einen Fehler gefunden hast, kannst du hier sehen, ob er bereits bekannt is (auf Englisch): + Your email address is optional, but necessary if you want us to get back at you. Deine E-Mail-Adresse ist optional, es sei denn du möchtest, dass wir dir antworten. @@ -134,10 +159,12 @@ FreqSpinBox + Never Nie + Every %1 turn Jede Runde @@ -148,10 +175,12 @@ GameCFGWidget + Edit weapons Arsenal bearbeiten + Edit schemes Spielprofil bearbeiten @@ -160,14 +189,17 @@ Spieloptionen + Game scheme will auto-select a weapon Das Auswählen eines Spielprofils wird automatisch ein Arsenal auswählen + Map Karte + Game options Spieloptionen @@ -175,6 +207,7 @@ GameUIConfig + Guest Gast @@ -182,6 +215,8 @@ HWApplication + + %1 minutes %1 Minute @@ -189,6 +224,7 @@ + %1 hour %1 Stunde @@ -196,6 +232,9 @@ + + + %1 hours %1 Stunde @@ -203,6 +242,7 @@ + %1 day %1 Tag @@ -210,6 +250,9 @@ + + + %1 days %1 Tag @@ -217,14 +260,17 @@ + Scheme '%1' not supported Das Spielprofil »%1« wird nicht unterstützt + Cannot create directory %1 Das Verzeichnis %1 konnte nicht angelegt werden + Failed to open data directory: %1 @@ -235,51 +281,62 @@ Bitte überprüfe deine Installation! + Usage command-line Verwendung + OPTION command-line SCHALTER + + CONNECTSTRING command-line VERBINDUNGSTEXT + Options command-line Schalter + Display this help command-line Diese Hilfe anzeigen + Custom path for configuration data and user data command-line Benutzerdefinierter Pfad für Konfigurations- und Benutzerdaten + Custom path to the game data folder command-line Benutzerdefinierter Pfad für das Spieldatenverzeichnis + Hedgewars can use a %1 (e.g. "%2") to connect on start. command-line Hedgewars kann ein %1 (z.B. »%2«) verwenden, um beim Start zu verbinden. + Malformed option argument: %1 command-line Fehlerhaftes Schalterargument: %1 + Unknown option argument: %1 command-line Unbekannter Schalter: %1 @@ -288,6 +345,7 @@ HWAskQuitDialog + Do you really want to quit? Willst du wirklich beenden? @@ -295,54 +353,67 @@ HWChatWidget + %1 has been removed from your ignore list %1 wurde aus deiner Ignorierliste entfernt + %1 has been added to your ignore list %1 wurde in deine Ignorierliste aufgenommen + %1 has been removed from your friends list %1 wurde aus deiner Freundesliste entfernt + %1 has been added to your friends list %1 wurde in deine Freundesliste aufgenommen + Stylesheet imported from %1 Stylesheet aus %1 importiert + Enter %1 if you want to use the current StyleSheet in future, enter %2 to reset! Gib %1 ein, wenn du das jetzige Stylesheet in Zukunft weiterverwenden willst; gib %2 ein, um es zurückzusetzen! + Couldn't read %1 Konnte %1 nicht lesen + StyleSheet discarded Stylesheet verworfen + StyleSheet saved to %1 Stylesheet wurde nach %1 gesichert + Failed to save StyleSheet to %1 Stylesheet konnte nicht nach %1 gesichert werden + %1 has joined %1 ist beigetreten + %1 has left %1 ist gegangen + %1 has left (%2) %1 ist gegangen (%2) @@ -350,57 +421,72 @@ HWForm + + Cannot save record to file %1 Datei %1 konnte nicht gespeichert werden + DefaultTeam Standard-Team + Hedgewars Demo File File Types Hedgewars-Wiederholungsdatei + Hedgewars Save File File Types Hedgewars-Spielstandsdatei + Demo name Wiederholungsname + Demo name: Wiederholungsname: + Game aborted Spiel abgebrochen + Nickname Spitzname + + No nickname supplied. Kein Spitznahme angegeben. + Someone already uses your nickname %1 on the server. Please pick another nickname: Dein Spitzname »%1« ist bereits in Verwendung. Bitte wähle einen anderen Spitznamen: + %1's Team Team von %1 + Hedgewars - Nick registered Hedgewars – Spitzname registriert + This nick is registered, and you haven't specified a password. If this nick isn't yours, please register your own nick at www.hedgewars.org @@ -413,6 +499,7 @@ Passwort: + Your nickname is not registered. To prevent someone else from using it, please register it at www.hedgewars.org @@ -421,6 +508,7 @@ ihn bitte auf www.hedgewars.org + Your password wasn't saved either. @@ -429,46 +517,60 @@ Außerdem wurde auch dein Passwort nicht gespeichert. + + Hedgewars - Empty nickname Hedgewars – leerer Spitzname + Hedgewars - Wrong password Hedgewars – falsches Passwort + You entered a wrong password. Du hast ein falsches Passwort eingegeben. + Try Again noch einmal versuchen + Hedgewars - Connection error Hedgewars – Verbindungsfehler + You reconnected too fast. Please wait a few seconds and try again. Du hast dich zu früh erneut verbunden. Bitte warte ein paar Sekunden und versuch es noch einmal. + + + + Guest Gast + Room password Raumkennwort + The room is protected with password. Please, enter the password: Der Raum wird durch ein Kennwort geschützt. Bitte Kennwort eingeben: + This page requires an internet connection. Diese Seite benötigt eine Internetverbindung. @@ -476,14 +578,18 @@ HWGame + + en.txt de.txt + Cannot open demofile %1 Wiederholungsdatei »%1« konnte nicht geöffnet werden + A Fatal ERROR occured! - The game engine had to stop. We are very sorry for the inconvenience :( @@ -505,108 +611,134 @@ HWMapContainer + All Alles + Small Klein + Medium Mittel + Large Groß + Cavern Höhle + Wacky Verrückt + Small tunnels Kleine Tunnel + Medium tunnels Mittelgroße Tunnel + Seed Seed + Map type: Kartentyp: + Image map Bild + Mission map Missionskarte + Hand-drawn Handgemalt + Randomly generated Zufallsgeneriert + Random maze Zufallslabyrinth + Random Zufall + Map preview: Kartenvorschau: + Load map drawing Gezeichnete Karte laden + Edit map drawing Gezeichnete Karte bearbeiten + Small islands Kleine Inseln + Medium islands Mittelgroße Inseln + Large islands Große Inseln + Map size: Kartengröße: + Maze style: Labyrinth-Art: + Mission: Mission: + Map: Karte: @@ -615,30 +747,38 @@ Thema: + Load drawn map Gezeichnete Karte laden + Drawn Maps Gezeichnete Karten + All files Alle Dateien + Large tunnels Große Tunnel + + Theme: %1 Szenerie: %1 + Random perlin Perlinzufall + Style: Stil: @@ -646,14 +786,17 @@ HWNetServersModel + Title Spielname + IP IP + Port Port @@ -661,26 +804,33 @@ HWNewNet + The host was not found. Please check the host name and port settings. Der Server wurde nicht gefunden. Bitte überprüfe deine Einstellungen. + Connection refused Verbindungsaufbau abgelehnt + Quit reason: Gegangen wegen: + Room destroyed Raum geschlossen + You got kicked Du wurdest hinausgeworfen + + %1 *** %2 has joined the room %1 *** %2 hat den Raum betreten @@ -689,26 +839,32 @@ %1 *** %2 ist beigetreten + %1 *** %2 has left (%3) %1 *** %2 ist gegangen (%3) + %1 *** %2 has left %1 *** %2 ist gegangen + User quit Benutzer ist gegangen + Remote host has closed connection Die Verbindung wurde von der anderen Seite geschlossen. + The server is too old. Disconnecting now. Der Server ist zu alt. Verbindung wird beendet. + Server authentication error Server-Authentifizierungsfehler @@ -716,10 +872,12 @@ HWPasswordDialog + Login Einloggen + To connect to the server, please log in. If you don't have an account on www.hedgewars.org, @@ -730,21 +888,30 @@ dann trag einfach nur deinen Spitznamen ein. + Nickname: Spitzname: + Password: Passwort: + + + New Account + Neues Benutzerkonto + HWUploadVideoDialog + Upload video Video hochladen + Upload Hochladen @@ -752,6 +919,7 @@ HatButton + Change hat (%1) Hut wechseln (%1) @@ -759,14 +927,17 @@ HatPrompt + Cancel Abbrechen + Use selected hat Gewählten Hut auswählen + Search for a hat: Nach einem Hut suchen: @@ -781,6 +952,7 @@ KeyBinder + Category Kategorie @@ -801,22 +973,27 @@ %1 Bilder pro Sekunde, + Audio: Audio: + unknown unbekannt + Duration: %1m %2s Dauer: %1m %2s + Video: %1x%2 Video: %1x%2 + %1 fps %1 Hz @@ -824,6 +1001,7 @@ MapModel + No description available. Keine Beschreibung verfügbar. @@ -831,62 +1009,77 @@ PageAdmin + Clear Accounts Cache Zwischenspeicher leeren + 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: Protokollnummer der neuesten Version: + MOTD preview: MOTD Vorschau: + Set data Speichere Daten + General Allgemein + Bans Verbannungen + IP/Nick IP-Adr./Spitzname + Expiration Ablaufzeitpunkt + Reason Grund + Refresh Aktualisieren + Add Hinzufügen + Remove Entfernen @@ -894,6 +1087,7 @@ PageConnecting + Connecting... Verbinden … @@ -901,14 +1095,17 @@ PageDataDownload + Loading, please wait. Ladevorgang. Bitte warten. + This page requires an internet connection. Diese Seite benötigt eine Internetverbindung. + Open packages directory Paketeverzeichnis öffnen @@ -916,54 +1113,69 @@ PageDrawMap + Undo Rückgängig + Clear Leeren + Load Laden + Save Wiederholung speichern + Load drawn map Gezeichnete Karte laden + Save drawn map Gezeichnete Karte sichern + + Drawn Maps Gezeichnete Karten + + All files Alle Dateien + Eraser Radierer + Polyline Linienzug + Rectangle Rechteck + Ellipse Ellipse + Optimize Optimieren @@ -971,42 +1183,52 @@ PageEditTeam + General Allgemein + Select an action to choose a custom key bind for this team Wählt eine Aktion, um eine benutzerdefinierte Taste für dieses Team auszuwählen + Use my default Verwende meine Vorgabe + Reset all binds Alle Tastenbelegungen zurücksetzen + Custom Controls Benutzerdefinierte Steuerung + Hat Hut + Name Name + This hedgehog's name Name dieses Igels + Randomize this hedgehog's name Zufälligen Igelnamen generieren + Random Team Zufallsteam @@ -1014,18 +1236,23 @@ PageGameStats + Details Details + + Health graph Lebenspunkteverlauf + Ranking Platzierung + 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> Schadenspunkt. @@ -1033,6 +1260,7 @@ + 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. @@ -1040,6 +1268,7 @@ + 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. @@ -1047,6 +1276,7 @@ + (%1 kill) (%1 Opfer) @@ -1054,6 +1284,7 @@ + <b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts. <b>%1</b> dachte, es sei gut, die eigenen Igel mit <b>%2</b> Punkt zu verletzen. @@ -1061,6 +1292,7 @@ + <b>%1</b> killed <b>%2</b> of his own hedgehogs. <b>%1</b> erledigte <b>%2</b> seiner eigenen Igel. @@ -1068,6 +1300,7 @@ + <b>%1</b> was scared and skipped turn <b>%2</b> times. <b>%1</b> hatte Angst und übersprang <b>%2</b> Runde. @@ -1075,14 +1308,17 @@ + Play again Nochmal spielen + Save Speichern + (%1 %2) (%1 %2) @@ -1093,6 +1329,7 @@ PageInGame + In game... Im Spiel … @@ -1100,6 +1337,7 @@ PageInfo + Open the snapshot folder Screenshot-Verzeichnis öffnen @@ -1107,58 +1345,72 @@ PageMain + Downloadable Content Herunterladbare Inhalte + Play a game on a single computer Auf einen einzelnen Computer spielen + Play a game across a network Über ein Netzwerk spielen + Read about who is behind the Hedgewars Project Lies wer hinter dem Hedgewars-Projekt steckt + Leave a feedback here reporting issues, suggesting features or just saying how you like Hedgewars Hier kannst du uns Feedback geben, indem du uns Probleme meldest, neue Funktionen vorschlägst oder einfach nur sagst, wie dir Hedgewars gefällt + Access the user created content downloadable from our website Auf von Benutzern erstellte Inhalte, die man von unserer Webseite herunterladen kann, zugreifen + Exit game Spiel verlassen + Manage videos recorded from game Vom Spiel aufgezeichnete Videos verwalten + Edit game preferences Spieleinstellungen bearbeiten + Play a game across a local area network ein Spiel über ein lokales Netzwerk (LAN) spielen + Play a game on an official server ein Spiel auf einem offiziellen Server spielen + Feedback Feedback + Play local network game Im lokalen Netzwerk spielen + Play official network game Im offiziellem Netzwerk spielen @@ -1166,10 +1418,12 @@ PageMultiplayer + Start Starten + Edit game preferences Spieleinstellungen bearbeiten @@ -1181,18 +1435,22 @@ Steuerung + Edit game preferences Spieleinstellungen bearbeiten + Start Starten + Update Aktualisieren + Room controls Raumeinstellungen @@ -1200,10 +1458,12 @@ PageNetServer + Click here for details Klick hier, um mehr zu erfahren + Insert your address here Gib deine Adress hier ein @@ -1211,170 +1471,213 @@ PageOptions + New team Neues Team + Edit team Team bearbeiten + Delete team Team löschen + 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. + New scheme Neues Spielprofil + Edit scheme Spielprofil bearbeiten + Delete scheme Spielprofil löschen + New weapon set Neues Arsenal + Edit weapon set Arsenal bearbeiten + Delete weapon set Arsenal löschen + Advanced Erweitert + Reset to default colors Auf Standard-Farben zurücksetzen + Proxy host Host + Proxy port Port + Proxy login Benutzername + Proxy password Passwort + No proxy Kein Proxy + Socks5 proxy Socks5-Proxy + HTTP proxy HTTP-Proxy + System proxy settings System-Proxy-Einstellungen + Select an action to change what key controls it Wähle eine Aktion, um ihre Tastenbelegung zu ändern + Reset to default Auf Standard zurücksetzen + Reset all binds Alle Tastenbelegungen zurücksetzen + + Game Spiel + Graphics Grafik + Audio Ton + Controls Steuerung + Video Recording Videoaufzeichnung + Network Netzwerk + Teams Teams + Schemes Spielprofile + Weapons Arsenale + Frontend Benutzeroberfläche + Custom colors Benutzerdefinierte Farben + Game audio Ton im Spiel + Frontend audio Ton in der Benutzeroberfläche + Account Benutzerkonto + Proxy settings Proxy-Einstellungen + Miscellaneous Verschiedenes + Updates Updates + Check for updates nach Updates suchen + Video recording options Videoaufzeichnungseinstellungen @@ -1382,10 +1685,12 @@ PagePlayDemo + Rename dialog Umbenennen + Enter new file name: Neuer Dateiname: @@ -1401,6 +1706,7 @@ Betreten + Admin features Verwalten @@ -1425,6 +1731,7 @@ Leeren + %1 players online %1 Spieler online @@ -1432,18 +1739,22 @@ + Search for a room: Nach einem Raum suchen: + Create room Raum erstellen + Join room Raum beitreten + Room state Raumfilter @@ -1452,6 +1763,7 @@ Filter leeren + Open server administration page Server-Administrationsseite öffnen @@ -1459,138 +1771,172 @@ PageScheme + New Neu + Delete Löschen + Gain 80% of the damage you do back in health 80% des ausgeteilten Schadens werden dir als Gesundheitspunkte gutgeschrieben + Share your opponents pain, share their damage Teile den Schmerz deines Gegners, teile seinen verursachten Schaden + Your hogs are unable to move, put your artillery skills to the test Deine Igel können sich nicht bewegen, gib Dein Bestes im Fernkampf + Random Zufall + Seconds Sekunden + Defend your fort and destroy the opponents, two team colours max! Verteidige deine Festung und zerstöre die des Gegners, maximal zwei Teamfarben! + Teams will start on opposite sides of the terrain, two team colours max! Die Teams starten auf gegenüberliegenden Terrainseiten, maximal zwei Teamfarben! + Land can not be destroyed! Die Landschaft ist nicht zerstörbar! + Lower gravity Verringerte Schwerkraft + Assisted aiming with laser sight Zielfhilfe durch Laservisier + All hogs have a personal forcefield Alle Igel haben ein eigenes Schutzschild + Order of play is random instead of in room order. Gespielt wird in zufälliger Reihenfolge. + Play with a King. If he dies, your side dies. Beschütze deinen König! Ohne ihn hast du verloren. + Take turns placing your hedgehogs before the start of play. Platziere deine Igel selbständig vor Rundenbeginn. + Ammo is shared between all teams that share a colour. Alle Teams mit gleicher Farbe teilen sich den gleichen Waffenvorrat. + Disable girders when generating random maps. Keine Bauträger auf Zufallskarten platzieren. + Disable land objects when generating random maps. Keine Landschaftsobjekte beim Generieren von Zufallskarten platzieren. + 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. Arsenal wird jede Runde zurückgesetzt. + Each hedgehog has its own ammo. It does not share with the team. Jeder Igel hat sein eigenes Arsenal. Es wird nicht mit dem Team geteilt. + You will not have to worry about wind anymore. Du wirst dich nicht mehr um Wind kümmern müssen. + Wind will affect almost everything. Wind beeinflusst fast alles. + Copy Kopieren + Teams in each clan take successive turns sharing their turn time. Teams gleicher Farbe kommen nacheinander dran und teilen sich ihre Zugzeit. + Add an indestructible border around the terrain Dem Spielfeld eine unzerstörbare Randbegrenzung hinzufügen + Add an indestructible border along the bottom Dem unteren Kartenrand eine unzerstörbare Randbegrenzung anfügen + None (Default) Keine (Standard) + Wrap (World wraps) Umbrechen (Welt wiederholt sich) + Bounce (Edges reflect) Abprallen (Grenzen reflektieren) + Sea (Edges connect to sea) Ozean (Grenzen sind mit dem Wasser verbunden) @@ -1598,18 +1944,22 @@ PageSelectWeapon + Default Standard + Delete Löschen + New Neu + Copy Kopieren @@ -1617,26 +1967,32 @@ PageSinglePlayer + Play a quick game against the computer with random settings Ein Schnellspiel gegen den Computer mit Zufallseinstellungen spielen + Play a hotseat game against your friends, or AI teams Gegen deine Freunde oder KI-Teams spielen + Campaign Mode Kampagnenmodus + Practice your skills in a range of training missions Deine Fähigkeiten in verschiedenen Trainingsmissionen verbessern + Watch recorded demos Aufgezeichnete Widerholungen ansehen + Load a previously saved game Ein vormals gespeichertes Spiel ansehen @@ -1644,18 +2000,22 @@ PageTraining + No description available Keine Beschreibung verfügbar + Select a mission! Wähle eine Mission! + Pick the mission or training to play Wähle eine Mission oder ein Training + Start fighting Auf in den Kampf! @@ -1663,14 +2023,17 @@ PageVideos + Name Name + Size Größe + %1 bytes %1 Byte @@ -1678,14 +2041,17 @@ + (in progress...) (in Bearbeitung …) + encoding encoden + uploading hochladen @@ -1700,10 +2066,12 @@ Größe: %1 + Date: %1 Datum: %1 + Size: %1 Größe: %1 @@ -1711,42 +2079,54 @@ QAction + Kick Hinauswerfen + Restrict Joins Beitreten unterbinden + Restrict Team Additions Hinzufügen weiterer Teams unterbinden + Info Info + Ban Verbannen + Follow Folgen + + Ignore Ignorieren + + Add friend Als Freund hinzufügen + Unignore Nicht mehr ignorieren + Remove friend Als Freund entfernen @@ -1755,14 +2135,17 @@ Aktualisieren + Restrict Unregistered Players Join Beitreten unregistrierter Spieler unterbinden + Show games in lobby Spiele in Vorbereitung zeigen + Show games in-progress Zur Zeit laufende Spiele zeigen @@ -1770,106 +2153,135 @@ QCheckBox + Fullscreen Vollbild + Show FPS Bildwiederholrate anzeigen + Alternative damage show Alternativen Schaden anzeigen + Append date and time to record file name Datum und Uhrzeit an Wiederholungsdateinamen anhängen + Check for updates at startup Beim Spielstart nach neuen Versionen suchen + Show ammo menu tooltips Kurzinfos für Waffen anzeigen + + Save password Passwort speichern + Save account name and password Kontoname und Passwort speichern + Video is private Video ist privat + Record audio Audio aufzeichnen + Use game resolution Spielauflösung verwenden + Visual effects Visuelle Effekte + + Sound Ton + In-game sound effects Toneffekte im Spiel + + Music Musik + In-game music Musik im Spiel + Frontend sound effects Toneffekte in der Benutzeroberfläche + Frontend music Musik in der Benutzeroberfläche + Team Team + Enable team tags by default Teambeschriftungsschilder standardmäßig aktivieren + Hog Igel + Enable hedgehog tags by default Namensschilder standardmäßig aktivieren + Health Lebenspunkte + Enable health tags by default Lebenspunktebeschriftungsschilder standardmäßig aktivieren + Translucent Transluzent + Enable translucent tags by default Transluzente Beschriftungsschilder standardmäßig aktivieren @@ -1877,18 +2289,22 @@ QComboBox + Human Mensch + Level Stufe + (System default) (Systemstandard) + Community @@ -1905,62 +2321,77 @@ Im Spiel + Disabled Deaktiviert + Red/Cyan Rot/Türkis + Cyan/Red Türkis/Rot + Red/Blue Rot/Blau + Blue/Red Blau/Rot + Red/Green Rot/Grün + Green/Red Grün/Rot + Side-by-side Nebeneinander + Top-Bottom Übereinander + Red/Cyan grayscale Rot/Türkis Graustufen + Cyan/Red grayscale Türkis/Rot Graustufen + Red/Blue grayscale Rot/Blau Graustufen + Blue/Red grayscale Blau/Rot Graustufen + Red/Green grayscale Rot/Grün Graustufen + Green/Red grayscale Grün/Rot Graustufen @@ -1968,38 +2399,47 @@ QGroupBox + Team Members Teammitglieder + Fort Festung + Net game Netzwerkspiel + Playing teams Spielende Teams + Game Modifiers Spielmodifikatoren + Basic Settings Grundeinstellungen + Team Settings Teameinstellungen + Videos Videos + Description Beschreibung @@ -2007,30 +2447,37 @@ QLabel + Weapons Arsenal + Host: Host: + Port: Port: + Resolution Auflösung + FPS limit Bildwiederholratenbegrenzung (Hz) + Server name: Servername: + Server port: Serverport: @@ -2039,70 +2486,87 @@ Version + Initial sound volume Ausgangslautstärke + Damage Modifier Prozentualer Schaden + Turn Time Rundenzeit + Initial Health Anfangslebenspunkte + Sudden Death Timeout Runden bis Sudden Death + Mines Time Minenzündzeit + Mines Minen + Scheme Name: Spielprofil: + Crate Drops Kistenabwurf + % Dud Mines % Blindgänger + Name Name + Type Typ + Grave Grab + Flag Flagge + Voice Stimme + Locale Sprache + Explosives Pulverfässer @@ -2111,42 +2575,52 @@ Tipp: + Quality Qualität + % Health Crates % Erste-Hilfe-Koffer + Health in Crates Lebenspunkte in Erste-Hilfe-Koffern + Sudden Death Water Rise Steigen des Wassers + Sudden Death Health Decrease Schaden bei Sudden Death + % Rope Length % Seillänge + Stereo rendering Stereo-Rendering + Style Stil + Scheme Spielprofil + % Get Away Time % Rückzugszeit @@ -2155,6 +2629,7 @@ Dieses Spiel wird unter den Bedingungen der GNU General Public License v2 verbreitet + There are videos that are currently being processed. Exiting now will abort them. Do you really want to quit? @@ -2163,114 +2638,143 @@ Willst du wirklich verlassen? + Please provide either the YouTube account name or the email address associated with the Google Account. Bitte gib entwerder deinen YouTube-Kontonamen oder die entsprechende eMail-Adresse des Google-Kontos an. + Account name (or email): Kontoname (oder eMail) + Password: Passwort + Video title: Video-Titel + Video description: Video-Beschreibung + Tags (comma separated): Tags (durch Beistriche getrennt) + Description Beschreibung + Nickname Spitzname + Format Format + Audio codec Audio-Codec + Video codec Video-Codec + Framerate Bildrate + Bitrate (Kbps) Bitrate (kB/s) + This development build is 'work in progress' and may not be compatible with other versions of the game, while some features might be broken or incomplete! Diese Entwicklungsversion ist unfertig und könnte nicht kompatibel mit anderen Versionen des Spiels sein, wobei sogar einige Funktionen sogar kaputt oder unfertig sein könnten. + Fullscreen Vollbild + Fullscreen Resolution Vollbild-Auflösung + Windowed Resolution Fenster-Auflösung + Your Email Deine E-Mail-Adresse + Summary Zusammenfassung + Send system information Systeminformation senden + Type the security code: Gib den Sicherheitscode ein: + Revision Revision + This program is distributed under the %1 Dieses Programm wird unter der %1 veröffentlicht + + Tip: %1 Tipp: %1 + Displayed tags above hogs and translucent tags Angezeigte/transluzente Beschriftungsschilder über Igel + This setting will be effective at next restart. Diese Einstellung tritt ab nächstem Neustart in Kraft. + World Edge Spielfeldgrenze + Script parameter Skriptparameter @@ -2278,14 +2782,18 @@ QLineEdit + unnamed unbenannt + + hedgehog %1 Igel %1 + anonymous anonym @@ -2293,6 +2801,7 @@ QMainWindow + Hedgewars %1 Hedgewars %1 @@ -2300,62 +2809,79 @@ QMessageBox + Connection to server is lost Verbindung zum Server wurde unterbrochen + Error Fehler + File association failed. Dateizuordnung fehlgeschlagen. + Error while authenticating at google.com: Fehler während Authentifizierung auf google.com: + Login or password is incorrect Login oder Passwort inkorrekt + Error while sending metadata to youtube.com: Fehler bei Senden von Meta-Daten zu youtube.com: + Teams - Are you sure? Teams - Bist du dir sicher? + Do you really want to delete the team '%1'? Willst du das Team »%1« wirklich löschen? + + Cannot delete default scheme '%1'! Standard-Profil »%1« kann nicht gelöscht werden! + Please select a record from the list Bitte wähle eine Aufnahme in der Liste aus + Unable to start server Server konnte nicht gestartet werden + + Hedgewars - Error Hedgewars – Fehler + + Hedgewars - Success Hedgewars – Erfolg + All file associations have been set Alle Dateizuordnungen wurden gesetzt @@ -2394,76 +2920,102 @@ Fehler-Code: %1 + + Video upload - Error Video hochladen - Fehler + + Netgame - Error Netzwerkspiel - Fehler + Please select a server from the list Bitte wähle einen Server von der Liste + Please enter room name Bitte einen Raumnamen eingeben + + + + Record Play - Error Aufnahmewiedergabe - Fehler + + Please select record from the list Bitte eine Aufnahme aus der Liste auswählen + Cannot rename to Datei konnte nicht unbenannt werden nach + Cannot delete file Datei konnte nicht gelöscht werden + Room Name - Error Raumname - Fehler + Please select room from the list Bitte einen Raum aus der Liste auswählen + Room Name - Are you sure? Raumname - Bist du dir sicher? + 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? + Schemes - Warning Spielprofile – Warnung + Schemes - Are you sure? Spielprofile – Bist du dir sicher? + Do you really want to delete the game scheme '%1'? Willst du das Spielprofil »%1« wirklich löschen? + + + Videos - Are you sure? Videos – Bist du dir sicher? + Do you really want to delete the video '%1'? Willst du das Video »%1« wirklich löschen? + Do you really want to remove %1 file(s)? Willst du wirklich %1 Datei entfernen? @@ -2471,78 +3023,102 @@ + Do you really want to cancel uploading %1? Willst du das Hochladen von %1 wirklich abbrechen? + + + File error Dateifehler + Cannot open '%1' for writing »%1« konnte zum Schreiben nicht geöffnet werden + + Cannot open '%1' for reading »%1« konnte zum Lesen nicht geöffnet werden + Cannot use the ammo '%1'! Munition »%1« kann nicht benutzt werden! + + Weapons - Warning Arsenal – Warnung + Cannot overwrite default weapon set '%1'! Standard-Arsenal »%1« kann nicht überschrieben werden! + Cannot delete default weapon set '%1'! Standard-Arsenal »%1« kann nicht gelöscht werden! + Weapons - Are you sure? Arsenal – Bist du dir sicher? + Do you really want to delete the weapon set '%1'? Willst du das Arsenal »%1« wirklich löschen? + Hedgewars - Nick not registered Hedgewars – Spitzname nicht registriert + System Information Preview Systeminformations-Vorschau + + Failed to generate captcha Captcha-Generierung fehlgeschlagen + Failed to download captcha Captcha-Download fehlgeschlagen + Please fill out all fields. Email is optional. Bitte füll alle Felder aus. Das Feld »E-Mail« ist optional. + Hedgewars - Warning Hedgewars – Warnung + Hedgewars - Information Hedgewars – Information + Not all players are ready Es sind nicht alle Spieler bereit + Are you sure you want to start this game? Not all players are ready. Bist du sicher, dass du diesees Spiel starten willst? @@ -2552,6 +3128,8 @@ QObject + + No description available Keine Beschreibung verfügbar @@ -2559,114 +3137,149 @@ QPushButton + + Go! Los! + default Standard + OK OK + + Cancel Abbrechen + Start server Server starten + Connect Verbinden + Update Aktualisieren + Specify Verbinden zu … + Start Starten + + Play demo Wiederholung abspielen + Rename Umbenennen + + + Delete Löschen + Load Laden + Associate file extensions Dateitypen zuordnen + More info Mehr Info + Set default options Auf Standardeinstellungen zurücksetzen + Open videos directory Videoverzeichnis anzeigen + Play Abspielen + + + Upload to YouTube Auf YouTube hochladen + Cancel uploading Hochladen abbrechen + Restore default coding parameters Standard-Kodierungs-Einstellungen wiederherstellen + Open the video directory in your system Das Videoverzeichnis deines Systems öffnen + Play this video Dieses Video abspielen + Delete this video Dieses Video löschen + Upload this video to your Youtube account Dieses Video zu deinem YouTube-Benutzerkonto hochladen + Reset Zurücksetzen + Set the default server port for Hedgewars Den Standard-Server-Port für Hedgewars setzen + Invite your friends to your server in just 1 click! Lad deine Freunde zu deinem Server mit nur einem Klick ein! @@ -2675,10 +3288,12 @@ Klick, um deine einzigartige URL in die Zwischenablage zu kopieren. Versende diesen Link an deine Freunde, damit sie dich auf deinem Server besuchen können. + Start private server Privaten Server starten + Click to copy your unique server URL to your clipboard. Send this link to your friends and they will be able to join you. Klicke um deine Server-Adresse in die Zwischenablage zu kopieren. Sende diese als Link zu deinen Freunden, damit sie dir beitreten können. @@ -2686,18 +3301,22 @@ RoomNamePrompt + Enter a name for your room. Gib einen Namen für deinen Raum ein. + Cancel Abbrechen + Create room Raum erstellen + set password Kennwort setzen @@ -2705,54 +3324,67 @@ RoomsListModel + In progress Im Spiel + Room Name Raumname + C Sp. + T T. + Owner Besitzer + Map Karte + Rules Spielprofil + Weapons Arsenal + Random Map Zufallskarte + Random Maze Zufallslabyrinth + Hand-drawn Handgemalt + Script Stil + Random Perlin Zufälliges Perlin @@ -2760,18 +3392,22 @@ SeedPrompt + The map seed is the basis for all random values generated by the game. Der sog. Seed (wörtlich übersetzt: engl. für »Saat«) ist die Basis für alle Zufallswerte, die vom Spiel generiert werden. + Cancel Abbrechen + Set seed Seed setzen + Close Schließen @@ -2779,22 +3415,28 @@ SelWeaponWidget + Weapon set Anfangsbewaffnung + Probabilities Wahrscheinlichkeiten + Ammo in boxes Kisteninhalte + Delays Verzögerungen + + new Neu @@ -2803,6 +3445,8 @@ Kopie von + + copy of %1 Kopie von %1 @@ -2810,16 +3454,19 @@ TCPBase + Unable to start server at %1. Ich bin unfähig, den Server auf %1 zu starten. + Unable to run engine at %1 Error code: %2 Ich bin unfähig, die Engine auf %1 laufen zu lassen. Fehlercode: %2 + The game engine died unexpectedly! (exit code %1) @@ -2837,6 +3484,7 @@ TeamSelWidget + At least two teams are required to play! Es sind mindestens zwei Teams für ein Spiel nötig! @@ -2851,14 +3499,17 @@ ThemePrompt + Cancel Abbrechen + Search for a theme: Nach einer Szenerie suchen: + Use selected theme Ausgewählte Szenerie benutzen @@ -2866,30 +3517,41 @@ binds + + up Hoch + + left Links + + right Rechts + + down Runter + attack Angreifen + put Platzieren + switch Wechseln @@ -2898,146 +3560,182 @@ Igel finden + ammo menu Munitions-Menü + 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 Sek. + timer 2 sec Timer 2 Sek. + timer 3 sec Timer 3 Sek. + timer 4 sec Timer 4 Sek. + timer 5 sec Timer 5 Sek. + pause Pause + volume down Lautstärke verringern + volume up Lautstärke erhöhen + change mode Modus ändern + capture Bildschirmfoto + quit Beenden + chat Chatten + chat history Chatverlauf + confirmation Bestätigung + precise aim Genaues Zielen + zoom in Vergrößern + zoom out Verkleinern + reset zoom Zurücksetzen + long jump Weitsprung + high jump Hochsprung + slot 10 Slot 10 + mute audio stummschalten + record aufzeichnen + hedgehog info Igel-Info + autocam / find hedgehog Autokamera / Igel finden + speed up replay Wiederholung beschleunigen @@ -3045,18 +3743,22 @@ binds (categories) + Movement Bewegung + Weapons Waffen + Camera Kamera + Miscellaneous Verschiedenes @@ -3064,26 +3766,32 @@ binds (descriptions) + Traverse gaps and obstacles by jumping: Abgründe und Hindernisse mit Sprüngen überwinden: + Fire your selected weapon or trigger an utility item: Deine gewählte Waffe feuern oder dein Werkzeug benutzen: + Pick a weapon or a target location under the cursor: Eine Waffe oder einen Zielpunkt mit dem Cursor wählen: + Switch your currently active hog (if possible): Den zu steuernden Igel wählen (falls möglich): + Pick a weapon or utility item: Eine Waffe oder Werkzeug auswählen: + Set the timer on bombs and timed weapons: Den Zeitzünder von verschiedenen Waffen setzen: @@ -3092,50 +3800,62 @@ Die Kamera zum aktiven Igel bewegen: + Move the cursor or camera without using the mouse: Den Zeiger oder die Kamera ohne die Maus bewegen: + Modify the camera's zoom level: Den Zoom verändern: + Talk to your team or all participants: Mit anderen Spielern sprechen: + Pause, continue or leave your game: Spiel pausieren, fortsetzen oder verlassen: + Modify the game's volume while playing: Lautstärke im Spiel ändern: + Toggle fullscreen mode: Vollbildmodus umschalten: + Take a screenshot: Screenshot machen: + Toggle labels above hedgehogs: Beschriftungsschilder über Igel durchschalten: + Record video: Video aufzeichnen: + Hedgehog movement Igel-Bewegung + Toggle automatic camera / refocus on active hedgehog: Automatische Kamera umschalten / auf aktiven Igel wiederzentrieren: + Demo replay: Wiederholung abspielen: @@ -3143,318 +3863,399 @@ binds (keys) + Axis Achse + + (Up) (Hoch) + + (Down) (Runter) + Hat Cooliehat + (Left) (Links) + (Right) (Rechts) + Button Taste + Keyboard Tastatur + Mouse: Left button Maus: Linke Taste + Mouse: Middle button Maus: Mittlere Taste + Mouse: Right button Maus: Rechte Taste + Mouse: Wheel up Maus: Mausrad hoch + Mouse: Wheel down Maus: Mausrad runter + Backspace Rückstelltaste + Tab Tabulator + Clear Clear + Return Eingabetaste + Pause Pause + Escape Escape + Space Leertaste + Delete Entf + Numpad 0 Ziffernblock 0 + Numpad 1 Ziffernblock 1 + Numpad 2 Ziffernblock 2 + Numpad 3 Ziffernblock 3 + Numpad 4 Ziffernblock 4 + Numpad 5 Ziffernblock 5 + Numpad 6 Ziffernblock 6 + Numpad 7 Ziffernblock 7 + Numpad 8 Ziffernblock 8 + Numpad 9 Ziffernblock 9 + Numpad . Ziffernblock , + Numpad / Ziffernblock / + Numpad * Ziffernblock * + Numpad - Ziffernblock - + Numpad + Ziffernblock + + Enter Enter + Equals Gleich + Up Hoch + Down Runter + Right Rechts + Left Links + Insert Einfg + Home Pos1 + End Ende + Page up Bild auf + Page down Bild ab + Num lock Numlock + Caps lock Feststelltaste + Scroll lock Rollen + Right shift Rechte Umschalttaste + Left shift Linke Umschalttaste + Right ctrl Strg rechts + Left ctrl Strg links + Right alt Alt rechts + Left alt Alt links + Right meta Meta rechts + Left meta Meta links + A button A-Taste + B button B-Taste + X button X-Taste + Y button Y-Taste + LB button Linke Schultertaste + RB button Rechte Schultertaste + Back button Zurück-Taste + Start button Start-Taste + Left stick Linker Analogstick + Right stick Rechter Analogstick + Left stick (Right) Linker Analogstick (Rechts) + Left stick (Left) Linker Analogstick (Links) + Left stick (Down) Linker Analogstick (Runter) + Left stick (Up) Linker Analogstick (Hoch) + Left trigger Linker Auslöser + Right trigger Rechter Auslöser + Right stick (Down) Rechter Analogstick (Runter) + Right stick (Up) Rechter Analogstick (Hoch) + Right stick (Right) Rechter Analogstick (Rechts) + Right stick (Left) Rechter Analogstick (Links) + DPad Steuerkreuz @@ -3462,181 +4263,225 @@ server + Authentication failed Authentifizierung fehlgeschlagen + 60 seconds cooldown after kick 60 Sekunden Abkühlzeit nach Hinauswurf + kicked hinausgeworfen + Ping timeout Ping-Timeout + bye tschüss + Empty config entry Leerer Konfigurations-Eintrag + Corrupted hedgehogs info Kaputte Igel-Info + too many teams zu viele Teams + too many hedgehogs zu viele Igel + There's already a team with same name in the list Es gibt bereits ein Team mit dem selben Namen in der Liste + round in progress laufende Runde + restricted eingeschränkt + REMOVE_TEAM: no such team REMOVE_TEAM: kein solches Team + Not team owner! Nicht Team-Besitzer*In! + Less than two clans! Weniger als zwei Klans! + Room with such name already exists ein Raum mit einem solchen Namen existiert bereits + Illegal room name Verbotener Raumname + No such room Ein solcher Raum existiert nicht + Joining restricted Zutritt verboten + Registered users only Nur für registrierte Benutzer + You are banned in this room Du wurdest aus diesem Raum verbannt + Nickname already chosen Spitzname bereits gewählt + Illegal nickname Verbotener Spitzname + Protocol already known Protokoll bereits bekannt + Bad number Schlechte Zahl + Nickname is already in use Spitzname bereits in Benutzung + Restricted Eingeschränkt + Not room master Nicht Gastgeber + No checker rights Keine Rechte zum Benutzen des Inspektionshilfsprogramms + Room version incompatible to your hedgewars version Die Raumversion ist inkompatibel zu deiner Hedgewars-Version + You already have voted Du hast bereits deine Stimme abgegeben + Voting closed Abstimmung abgeschlossen + New voting started Neue Abstimmung gestartet + Voting expired Abstimmung abgelaufen + kick hinauswerfen + map Karte + pause pausieren + Reconnected too fast Zu schnell wieder verbunden + Warning! Chat flood protection activated Nicht jeder weiß, was »Flooding« heißt, daher ist die Übersetzung etwas ausführlicher. Achtung! Chat-Flood-Schutz ist aktiv. Bitte red etwas langsamer. + Excess flood Nicht jeder weiß, was »Flooding« heißt, daher wird es hier umschrieben. Zu viele Nachrichten in kurzer Zeit abgeschickt + Game messages flood detected - 1 Zu viele Spielnachrichten in kurzer Zeit ermittelt – 1 + Game messages flood detected - 2 Zu viele Spielnachrichten in kurzer Zeit ermittelt – 2 + Warning! Joins flood protection activated Nicht jeder weiß, was »Flooding« heißt, daher ist die Übersetzung etwas ausführlicher und umschreibend. Achtung! Der Server wird ein zu schnelles Beitreten in kurzer Zeit nicht akzeptieren + There's no voting going on Zur Zeit findet keine Abstimmung statt diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Locale/hedgewars_fi.ts --- a/share/hedgewars/Data/Locale/hedgewars_fi.ts Sat Nov 22 00:55:01 2014 +0300 +++ b/share/hedgewars/Data/Locale/hedgewars_fi.ts Wed Dec 03 00:07:33 2014 +0300 @@ -1,18 +1,22 @@ + + + + About Unknown Compiler - + Tuntematon kääntäjä AbstractPage Go back - + Takaisin @@ -23,96 +27,96 @@ copy of %1 - + %1 kopio BanDialog IP - IP + IP Nick - + Nimi IP/Nick - + IP/Nimi Reason - + Syy Duration - + Kesto Ok - + Ok Cancel - Peruuta + Peruuta you know why - + tiedät kyllä, miksi Warning - + Varoitus Please, specify %1 - + Tarkenna: %1 nickname - + nimimerkki permanent - + ikuinen DataManager Use Default - + Käytä oletusta FeedbackDialog View - + Näytä Cancel - Peruuta + Peruuta Send Feedback - + Lähetä palaute We are always happy about suggestions, ideas, or bug reports. - + Otamme mielellämme vastaan ideoita ja vikailmoituksia. Send us feedback! - + Lähetä palautetta! If you found a bug, you can see if it's already been reported here: - + Jos olet löytänyt bugin, voit tarkistaa täältä, onko se jo ilmoitettu: Your email address is optional, but necessary if you want us to get back at you. - + Sähköposti on valinnainen, jos et halua meidän ottavan yhteyttä. @@ -137,191 +141,194 @@ Edit schemes - Muokkaa kaavaa + Muokkaa sääntöjä Game scheme will auto-select a weapon - + Aseet valitaan sääntöjen mukaan Map - Kartta + Kartta Game options - + Peliasetukset GameUIConfig Guest - + Vieras HWApplication %1 minutes - - - + + %1 minuutti + %1 minuuttia %1 hour - - - + + %1 tunti + %1 tuntia %1 hours - - - + + %1 tunti + %1 tuntia %1 day - - - + + %1 päivä + %1 päivää %1 days - - - + + %1 päivä + %1 päivää Scheme '%1' not supported - + Säännöille '%1' ei ole tukea Cannot create directory %1 - Hakemiston %1 luonti epäonnistui + Hakemiston %1 luonti epäonnistui Failed to open data directory: %1 Please check your installation! - + Hakemiston avaaminen epäonnistui: +%1 + +Tarkista, että peli on asennettu oikein! Usage command-line - + Käyttö OPTION command-line - + PARAMETRI CONNECTSTRING command-line - + YHTEYSOSOITE Options command-line - + Valinnat Display this help command-line - + Näytä tämä ohje Custom path for configuration data and user data command-line - + Valinnainen sijainti asetus- ja käyttäjätiedostoille Custom path to the game data folder command-line - + Valinnainen sijainti pelitiedostoille Hedgewars can use a %1 (e.g. "%2") to connect on start. command-line - + Hedgewars käyttää parametria %1 (esim: "%2") yhteyden muodostamiseen. Malformed option argument: %1 command-line - + Virheellinen parametri: %1 Unknown option argument: %1 command-line - + Tuntematon parametri: %1 HWAskQuitDialog Do you really want to quit? - + Haluatko varmasti lopettaa? HWChatWidget %1 has been removed from your ignore list - + %1 on poistettu estolistaltasi. %1 has been added to your ignore list - + %1 on lisätty estolistaasi. %1 has been removed from your friends list - + %1 on poistettu kavereistasi %1 has been added to your friends list - + %1 on lisätty kavereihisi Stylesheet imported from %1 - + Tyylitiedosto lisätty lähteestä %1 Enter %1 if you want to use the current StyleSheet in future, enter %2 to reset! - + Kirjoita %1 jos haluat käyttää nykyistä tyylitiedostoa jatkossa, tai %2 resetoidaksesi. Couldn't read %1 - + Ei pysty lukemaan: %1 StyleSheet discarded - + Tyylitiedosto hylätty StyleSheet saved to %1 - + Tyylitiedosto tallennettu hakemistoon %1 Failed to save StyleSheet to %1 - + Tyylitiedoston tallennus epäonnistui hakemistoon %1 %1 has joined - + %1 saapui %1 has left - + %1 poistui %1 has left (%2) - + %1 poistui (syy: %2) @@ -332,50 +339,51 @@ DefaultTeam - OletusJoukkue + Oletusjoukkue Hedgewars Demo File File Types - + Hedgewars Demotiedosto Hedgewars Save File File Types - + Hedgewars Pelitallennus Demo name - + Demon nimi Demo name: - + Demon nimi: Game aborted - + Peli keskeytetty Nickname - Nimimerkki + Nimimerkki No nickname supplied. - + Ei asetettua nimimerkkiä. Someone already uses your nickname %1 on the server. Please pick another nickname: - + Nimimerkkisi %1 on jo käytössä. +Valiste jokin muu: %1's Team - + %1n joukkue Hedgewars - Nick registered - + Hedgewars - Rekisteröity nimimerkki This nick is registered, and you haven't specified a password. @@ -383,61 +391,71 @@ If this nick isn't yours, please register your own nick at www.hedgewars.org Password: - + Tämä nimimerkki on rekisteröity, etkä antanut salasanaa. + +Jos tämä ei ole nimesi, rekisteröi omasi osoitteessa hedgewars.org + +Salasana: Your nickname is not registered. To prevent someone else from using it, please register it at www.hedgewars.org - + Nimimerkkiäsi ei ole rekisteröity. +Estääksesi muita käyttämästä sitä, +voit rekisteröidä sen osoitteessa hedgewars.org Your password wasn't saved either. - + + +Salasanaasi ei tallennettu. Hedgewars - Empty nickname - + Hedgewars - Tyhjä nimimerkki Hedgewars - Wrong password - + Hedgewars - Väärä salasana You entered a wrong password. - + Annoit väärän salasanan. Try Again - + Yritä uudelleen Hedgewars - Connection error - + Hedgewars - Yhteysvirhe You reconnected too fast. Please wait a few seconds and try again. - + Yhdistit uudelleen liian pian. +Odota hetki ja yritä uudelleen. This page requires an internet connection. - + Tämä sivu vaatii internet-yhteyden. Guest - + Vieras Room password - + Huoneen salasana The room is protected with password. Please, enter the password: - + Huoneeseen pääsee vain salasanalla. +Salasana: @@ -459,7 +477,14 @@ Last two engine messages: %2 - + Vakava virhe tapahtui, ja pelimoottori kaatui! + +Olemme pahoillamme, että näin pääsi käymään :( + +Jos vika toistuu jatkuvasti, lähetä palautetta päävalikon %1-napista! + +Kaksi viimeistä pelimoottorin viestiä: +%2 @@ -498,103 +523,103 @@ Seed - + Siemen Map type: - + Karttatyyppi: Image map - + Kuvakartta Mission map - + Tehtäväkartta Hand-drawn - + Piirretty kartta Randomly generated - + Generoitu kartta Random maze - + Generoitu sokkelo Random - Satunnainen + Sekoita Map preview: - + Esikatselu: Load map drawing - + Hae piirros Edit map drawing - + Muokkaa piirrosta Small islands - + Pieniä saaria Medium islands - + Keskikokoisia saaria Large islands - + Isoja saaria Map size: - + Kartan koko: Maze style: - + Kartan tyyppi: Mission: - + Tehtävä: Map: - + Kartta: Load drawn map - + Lataa piirretty kartta Drawn Maps - + Piirretyt kartat All files - + Kaikki tiedostot Large tunnels - + Isoja tunneleita Theme: %1 - + Teema: %1 Random perlin - + Generoitu Perlin-kartta Style: - + Tyyli: @@ -628,7 +653,7 @@ Quit reason: - Poistumisssyy: + Poistumissyy: You got kicked @@ -652,74 +677,81 @@ User quit - + Pelaaja poistui Remote host has closed connection - + Palvelin katkaisi yhteyden The server is too old. Disconnecting now. - + Palvelinohjelma on liian vanha. Yhteys katkaistaan välittömästi. Server authentication error - + Palvelimen tunnistamisvirhe HWPasswordDialog Login - + Kirjaudu To connect to the server, please log in. If you don't have an account on www.hedgewars.org, just enter your nickname. - + Kirjaudu yhdistääksesi palvelimelle. + +Jos et ole rekisteröitynyt, +pelkkä nimimerkki riittää. Nickname: - + Nimimerkki: Password: - + Salasana: + + + New Account + Rekisteröidy HWUploadVideoDialog Upload video - + Julkaise video Upload - + Julkaise HatButton Change hat (%1) - + Vaihda hattua (%1) HatPrompt Cancel - Peruuta + Peruuta Use selected hat - + Käytä valittua hattua Search for a hat: - + Etsi hattua: @@ -733,37 +765,37 @@ KeyBinder Category - + Kategoria LibavInteraction Audio: - + Ääni: unknown - + tuntematon Duration: %1m %2s - + Kesto: %1min %2sek Video: %1x%2 - + %1 fps - + %1 kuvaa/s MapModel No description available. - + Ei kuvausta saatavilla. @@ -798,35 +830,35 @@ General - Yleiset + Yleiset Bans - + Porttikiellot IP/Nick - + IP/Nimim Expiration - + Kesto Reason - + Syy Refresh - + Päivitä Add - + Lisää Remove - + Poista @@ -840,70 +872,70 @@ PageDataDownload Loading, please wait. - + Ladataan, odota hetki... This page requires an internet connection. - + Tämä sivu vaatii internet-yhteyden. Open packages directory - + Avaa pakettikansio PageDrawMap Undo - + Kumoa Clear - Tyhjennä + Tyhjennä Load - Lataa + Lataa Save - + Tallenna Load drawn map - + Avaa piirretty kartta Save drawn map - + Tallenna piirretty kartta Drawn Maps - + Piirretyt Kartat All files - + Kaikki tiedostot Eraser - + Pyyhkijä Polyline - + Vapaa Rectangle - + Suorakulmio Ellipse - + Ellipsi Optimize - + Optimoi @@ -914,39 +946,39 @@ Select an action to choose a custom key bind for this team - + Valitse joukkuekohtaiset näppäinasettelut Use my default - + Käytä oletusta Reset all binds - + Kumoa kaikki asettelut Custom Controls - + Näppäinasettelut Hat - Hattu + Hattu Name - Nimi + Nimi This hedgehog's name - + Tämän siilen nimi Randomize this hedgehog's name - + Generoi tämän siilen nimi Random Team - Satunnainen joukkue + Satunnainen joukkue @@ -957,17 +989,17 @@ Health graph - Terveys-kuvaaja + Terveyskäyrä Ranking - Ranking + Tulos 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ä. - + + Parhaan laukauksen mitalin voitti <b>%1</b> <b>%2</b> vahinkopisteellä. + Parhaan laukauksen mitalin voitti <b>%1</b> <b>%2</b> vahinkopisteellä. @@ -980,49 +1012,49 @@ 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. + <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 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> ajatteli, että omia siilejä on hienoa vahingoittaa <b>%2</b> vahinkopisteellä. + <b>%1</b> ajatteli, että omia siilejä on hienoa 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> 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. - + + <b>%1</b> pelkuroi ja jätti vuoronsa väliin <b>%2</b> kertaa. + <b>%1</b> pelkuroi ja jätti vuoronsa väliin <b>%2</b> kertaa. Play again - + Pelaa uudestaan Save - + Tallenna (%1 %2) - + @@ -1032,73 +1064,73 @@ PageInGame In game... - + Peli käynnissä... PageInfo Open the snapshot folder - + Avaa kuvankaappauskansio PageMain Downloadable Content - + Ladattava sisältö Play a game on a single computer - + Pelaa tällä tietokoneella Play a game across a network - + Pelaa verkossa Read about who is behind the Hedgewars Project - + Lisätietoa Hedgewars-projektista Leave a feedback here reporting issues, suggesting features or just saying how you like Hedgewars - + Kirjoita palautetta, ehdotuksia, bugi-ilmoituksia ja mitä pidät pelistä Access the user created content downloadable from our website - + Verkkosivuiltamme tarjolla olevaa ladattavaa sisältöä Exit game - + Lopeta peli Manage videos recorded from game - + Hallinnoi peleistä nauhoitettuja videoita Edit game preferences - + Muokkaa asetuksia Play a game across a local area network - + Pelaa lähiverkossa Play a game on an official server - + Pelaa virallisella palvelimella Feedback - + Palaute Play local network game - + Lähiverkkopeli Play official network game - + Internet-peli @@ -1109,7 +1141,7 @@ Edit game preferences - + Muokkaa asetuksia @@ -1120,30 +1152,30 @@ Edit game preferences - + Muokkaa asetuksia Start - + Aloita Update - Päivitä + Päivitä Room controls - + Huoneen hallinta PageNetServer Click here for details - + Klikkaa saadaksesi lisätietoja Insert your address here - + Anna osoitteesi tähän @@ -1162,166 +1194,166 @@ 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. + Et voi muokata joukkueita niitä valitessa. Mene takaisin päävalikkoon lisätäksesi, muokataksesi tai poistaaksesi joukkueita. New scheme - + Uudet säännöt Edit scheme - + Muokkaa sääntöjä Delete scheme - + Poista säännöt New weapon set - + Uusi asesetti Edit weapon set - + Muokkaa asesettiä Delete weapon set - + Poista asesetti Advanced - Lisäasetukset + Lisäasetukset Reset to default colors - + Palauta oletukset Proxy host - + Osoite Proxy port - + Portti Proxy login - + Tunnus Proxy password - + Salasana No proxy - + Ei välityspalvelinta Socks5 proxy - + SOCKS5-palvelin HTTP proxy - + HTTP-palvelin System proxy settings - + Järjestelmän oletukset Select an action to change what key controls it - + Valitse, millä napeilla ohjaat peliä. Reset to default - + Palauta oletukset Reset all binds - + Palauta kaikki oletukset Game - + Peligrafiikka Graphics - + Grafiikka Audio - + Ääni Controls - + Ohjaus Video Recording - + Videotallennus Network - + Verkko Teams - Joukkueet + Joukkueet Schemes - + Säännöt Weapons - Aseet + Aseet Frontend - + Käyttöliittymä Custom colors - + Joukkuevärit Game audio - + Peliäänet Frontend audio - + Käyttöliittymän äänet Account - + Tunnus Proxy settings - + Välityspalvelinasetukset Miscellaneous - + Sekalaiset Updates - + Päivitykset Check for updates - + Tarkista päivitykset Video recording options - + Videotallennusasetukset PagePlayDemo Rename dialog - Uudelleennimeämis-dialogi + Uudelleennimeämisikkuna Enter new file name: @@ -1364,37 +1396,37 @@ %1 players online - - - + + Yksi pelaaja linjoilla + %1 pelaajaa linjoilla Search for a room: - + Etsi huonetta: Create room - + Uusi huone Join room - + Siirry huoneeseen Room state - + Huoneen tilanne Open server administration page - + Avaa ylläpitäjän sivu PageScheme Defend your fort and destroy the opponents, two team colours max! - Puolusta linnaasi ja tuhoa vastustajasi, maksimissaan kaksi joukkueväriä! + Puolusta linnaasi ja tuhoa vastustajasi, enintään kaksi joukkueväriä! Teams will start on opposite sides of the terrain, two team colours max! @@ -1406,7 +1438,7 @@ Lower gravity - Matalampi painovoima + Heikompi painovoima Assisted aiming with laser sight @@ -1426,7 +1458,7 @@ Your hogs are unable to move, put your artillery skills to the test - Kaikki siilit ovat liikkumattomia, testaa tykistötaitojasi + Siilit eivät voi liikkua, testaa tykistötaitojasi Random @@ -1466,7 +1498,7 @@ Disable land objects when generating random maps. - Poista maaobjektit satunnaisten karttojen luonnissa. + Poista maaesteet satunnaisten karttojen luonnissa. AI respawns on death. @@ -1474,35 +1506,35 @@ All (living) hedgehogs are fully restored at the end of turn - + Kaikki elossa olevat siilet palautetaan täyteen terveyteen vuoron lopussa Attacking does not end your turn. - + Ampuminen ei lopeta vuoroasi. Weapons are reset to starting values each turn. - + Aseet palautetaan alkutilaan vuoron lopussa. Each hedgehog has its own ammo. It does not share with the team. - + Jokaisella siilellä on omakohtaiset ammukset, jotka eivät jakaudu joukkueen kesken. You will not have to worry about wind anymore. - + Tuulella ei ole vaikutusta. Wind will affect almost everything. - + Tuuli vaikuttaa lähes kaikkeen. Copy - + Kopioi Teams in each clan take successive turns sharing their turn time. - + Vuoron aika jaetaan klaanin joukkueiden kesken. Add an indestructible border around the terrain @@ -1510,23 +1542,23 @@ Add an indestructible border along the bottom - + Lisää tuhoutumaton lattia veden pinnalle None (Default) - + Ei mitään (oletus) Wrap (World wraps) - + Kierto (kartta toistuu reunoista) Bounce (Edges reflect) - + Kimmoke (reunat peilaa) Sea (Edges connect to sea) - + Meri (seinät ovat merta) @@ -1541,95 +1573,95 @@ New - Uusi + Uusi Copy - + Kopioi PageSinglePlayer Play a quick game against the computer with random settings - + Pelaa nopea peli tietokonetta vastaan satunnaisilla asetuksilla Play a hotseat game against your friends, or AI teams - + Pelaa kavereitasi tai tekoälyä vastaan Campaign Mode - + Tehtävät (englanniksi) Practice your skills in a range of training missions - + Harjoittele taitojasi tehtäväradoilla Watch recorded demos - + Katsele nauhoitettuja demoja Load a previously saved game - + Avaa tallennettu peli PageTraining No description available - + Ei kuvausta saatavilla Select a mission! - + Valitse tehtävä! Pick the mission or training to play - + Valitse tehtävä tai harjoitus luettelosta Start fighting - + Käynnistä harjoitus PageVideos Name - Nimi + Nimi Size - + Koko %1 bytes - - - + + yksi tavu + %1 tavua (in progress...) - + (käynnissä...) encoding - + enkoodaus uploading - + lähetetään Date: %1 - + Päiväys: %1 Size: %1 - + Koko: %1 @@ -1680,15 +1712,15 @@ Restrict Unregistered Players Join - + Estä rekisteröimättömiä liittymästä Show games in lobby - + Näytä aulan pelit Show games in-progress - + Näytä alkaneet pelit @@ -1719,83 +1751,83 @@ Save password - + Tallenna salasana Save account name and password - + Tallenna tunnus ja salasana Video is private - + Video on yksityinen Record audio - + Nauhoita ääntä Use game resolution - + Käytä ikkunan kokoa Visual effects - + Silmäkarkki Sound - + Ääni In-game sound effects - + Äänitehosteet Music - + Musiikki In-game music - + Pelimusiikki Frontend sound effects - + Käyttöliittymän äänitehosteet Frontend music - + Käyttöliittymän musiikki Team - + Joukkue Enable team tags by default - + Näytä joukkuekupla oletuksena Hog - + Siili Enable hedgehog tags by default - + Näytä nimikupla oletuksena Health - + Terveys Enable health tags by default - + Näytä terveyskupla oletuksena Translucent - + Läpinäkyvyys Enable translucent tags by default - + Näytä kuplat läpinäkyvinä @@ -1830,63 +1862,63 @@ Disabled - + Pois päältä Red/Cyan - + Punainen/Syaani Cyan/Red - + Syaani/Punainen Red/Blue - + Punainen/Sininen Blue/Red - + Sininen/Punainen Red/Green - + Punainen/Vihreä Green/Red - + Vihreä/Punainen Side-by-side - + Vierekkäin Top-Bottom - + Päällekkäin Red/Cyan grayscale - + Punainen/Syaani harmaasävy Cyan/Red grayscale - + Syaani/Punainen harmaasävy Red/Blue grayscale - + Punainen/Sininen harmaasävy Blue/Red grayscale - + Sininen/Punainen harmaasävy Red/Green grayscale - + Punainen/Vihreä harmaasävy Green/Red grayscale - + Vihreä/Punainen harmaasävy @@ -1921,11 +1953,11 @@ Videos - + Videot Description - + Kuvaus @@ -1972,11 +2004,11 @@ Initial sound volume - Alkuperäinen äänten voimakkuus + Äänten voimakkuus Damage Modifier - Vahinkomuuttuja + Vahinkokerroin Turn Time @@ -1988,7 +2020,7 @@ Sudden Death Timeout - Äkkikuoleman ajastus + Vuoroja äkkikuolemaan Scheme Name: @@ -2000,7 +2032,7 @@ % Dud Mines - % suutarimiinoja + Suutarimiinoja (%) Name @@ -2040,157 +2072,159 @@ % Health Crates - + Ensiapulaatikoita (%) Health in Crates - + Laatikoiden terveys Sudden Death Water Rise - + Äkkikuoleman vedennousun nopeus Sudden Death Health Decrease - + Äkkikuoleman terveyspudotus vuorossa % Rope Length - + Köyden pituus (%) Stereo rendering - + Stereoskopia Style - + Tyyli Scheme - + Säännöt % Get Away Time - + Pakoaika (%) There are videos that are currently being processed. Exiting now will abort them. Do you really want to quit? - + Videoiden prosessointi on käynnissä. +Sulkeminen keskeyttää tämän. +Haluatko varmasti lopettaa? Please provide either the YouTube account name or the email address associated with the Google Account. - + Anna joko YouTube-tunnuksesi tai siihen liitetty Google Account -sähköpostiosoite. Account name (or email): - + Tunnus (tai sähköposti): Password: - + Salasana: Video title: - + Videon otsikko: Video description: - + Videon kuvaus: Tags (comma separated): - + Hakusanat (pilkulla eroteltuna): Description - + Kuvaus Nickname - Nimimerkki + Nimimerkki Format - + Muoto Audio codec - + Äänikoodekki Video codec - + Videokoodekki Framerate - + Kuvanopeus Bitrate (Kbps) - + Laatu (Kbps) This development build is 'work in progress' and may not be compatible with other versions of the game, while some features might be broken or incomplete! - + Tämä kehitysversio on keskeneräinen, eikä ole välttämättä yhteensopiva muiden versioiden kanssa. Osa ominaisuuksista saattaa olla rikki tai vajaita! Fullscreen - Koko ruutu + Koko ruutu Fullscreen Resolution - + Koko ruudun tarkkuus Windowed Resolution - + Ikknan koko Your Email - + Sähköposti Summary - + Kooste Send system information - + Lähetä järjestelmätiedot Type the security code: - + Todista, että olet ihminen: Revision - + Revisio This program is distributed under the %1 - + Tämän ohjelman lisenssi: %1 This setting will be effective at next restart. - + Asetukset otetaan käyttöön uudelleenkäynnistyksen yhteydessä. Tip: %1 - + Vinkki: %1 Displayed tags above hogs and translucent tags - + Tietokuplat siilien yläpuolella World Edge - + Pelialueen reunat Script parameter - + Skriptin parametri @@ -2201,11 +2235,11 @@ hedgehog %1 - + siili %1 anonymous - + anonyymi @@ -2227,53 +2261,55 @@ File association failed. - + Tiedostotyyppien varaaminen epäonnistui. Error while authenticating at google.com: - + Virhe kirjautuessa google.comiin: + Login or password is incorrect - + Tunnus tai salasana ovat virheellisiä Error while sending metadata to youtube.com: - + Virhe lähetettäessä oheistietoja youtube.comiin: + Teams - Are you sure? - + Joukkueet - Oletko varma? Do you really want to delete the team '%1'? - + Haluatko varmasti poistaa joukkueen '%1'? Cannot delete default scheme '%1'! - + Ei voi poistaa vakiosääntöjä '%1'! Please select a record from the list - + Valitse tallenne listalta Unable to start server - + Palvelimen käynnistys epäonnistui Hedgewars - Error - + Hedgewars - Virhe Hedgewars - Success - + Hedgewars - Onnistui All file associations have been set - + Tiedostotyypit ovat varattu Cannot create directory %1 @@ -2285,164 +2321,165 @@ Video upload - Error - + Videon lähetys - Virhe Netgame - Error - + Verkkopeli - Virhe Please select a server from the list - + Valitse palvelin listalta Please enter room name - Ole hyvä ja syötä huoneen nimi + Ole hyvä ja syötä huoneen nimi Record Play - Error - + Nauhoituksen katselu - Virhe Please select record from the list - Ole hyvä ja valitse nauhoite listasta + Ole hyvä ja valitse nauhoite listasta Cannot rename to - + Ei voi uudelleennimetä: Cannot delete file - + Ei voi poistaa: Room Name - Error - + Huoneen nimi - Virhe Please select room from the list - Ole hyvä ja valitse huone listalta + Ole hyvä ja valitse huone listalta Room Name - Are you sure? - + Huoneen nimi - Oletko varma? 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. + Peli johon yrität liittyä on jo alkanut. Haluatko silti liittyä huoneeseen? Schemes - Warning - + Säännöt - Varoitus Schemes - Are you sure? - + Säännöt - Oletko varma? Do you really want to delete the game scheme '%1'? - + Haluatko varmasti poistaa säännöt '%1'? Videos - Are you sure? - + Videot - Oletko varma? Do you really want to delete the video '%1'? - + Haluatko varmasti poistaa videon '%1'? Do you really want to remove %1 file(s)? - - - + + Haluatko varmasti poistaa yhden tiedoston? + Haluatko varmasti poistaa %1 tiedostoa? Do you really want to cancel uploading %1? - + Haluatko varmasti peruuttaa %1 lähetyksen? File error - + Tiedostovirhe Cannot open '%1' for writing - + Ei voi avata '%1' tallennusta varten Cannot open '%1' for reading - + Ei voi avata '%1' lukua varten Cannot use the ammo '%1'! - + Ei voi käyttää ammusta '%1'! Weapons - Warning - + Aseet - Varoitus Cannot overwrite default weapon set '%1'! - + Ei voi ylikirjoittaa asesettiä '%1'! Cannot delete default weapon set '%1'! - + Ei voi poistaa vakioasesettiä '%1'! Weapons - Are you sure? - + Aseet - Oletko varma? Do you really want to delete the weapon set '%1'? - + Haluatko varmasti poistaa asesetin '%1'? Hedgewars - Nick not registered - + Hedgewars - Rekisteröimätön nimimerkki System Information Preview - + Järjestelmätiedot Failed to generate captcha - + Captchan generointi epäonnistui Failed to download captcha - + Captchan lataus epäonnistui Please fill out all fields. Email is optional. - + Täytä kaikki kentät. Sähköposti on valinnainen. Hedgewars - Warning - + Hedgewars - Varoitus Hedgewars - Information - + Hedgewars - Ilmoitus Not all players are ready - + Kaikki pelaajat eivät ole valmiita Are you sure you want to start this game? Not all players are ready. - + Haluatko varmasti aloittaa pelin? +Kaikki pelaajat eivät ole valmiita. QObject No description available - + Ei kuvausta saatavilla @@ -2501,164 +2538,164 @@ Associate file extensions - + Tunnistuta tiedostotyypit More info - + Lisätietoja Set default options - + Aseta oletukset Open videos directory - + Avaa videokansio Play - + Toista Upload to YouTube - + Julkaise YouTubessa Cancel uploading - + Peruuta lähetys Restore default coding parameters - + Palauta alkuperäiset nauhoitusparametrit Open the video directory in your system - + Avaa videokansio järjestelmän selaimella Play this video - + Katso tämä video Delete this video - + Poista tämä video Upload this video to your Youtube account - + Julkaise tämä video YouTube-tililläsi Reset - + Palauta Set the default server port for Hedgewars - + Aseta vakioportti Hedgewars-pelipalvelimelle Invite your friends to your server in just 1 click! - + Kutsu kavereita palvelimellesi yhdellä klikkauksella! Click to copy your unique server URL to your clipboard. Send this link to your friends and they will be able to join you. - + Klikkaa kopioidaksesi palvelimen osoitteen leikepöydälle. Lähetä tämä linkki kavereillesi, jotta he pystyvät liittymään peliin. Start private server - + Käynnistä oma palvelin RoomNamePrompt Enter a name for your room. - + Anna nimi huoneellesi. Cancel - Peruuta + Peruuta Create room - + Uusi huone set password - + salasana RoomsListModel In progress - Kesken + Kesken Room Name - Huoneen nimi + Huoneen nimi C - A + A T - J + J Owner - Omistaja + Omistaja Map - Kartta + Kartta Rules - Säännöt + Säännöt Weapons - Aseet + Aseet Random Map - Satunnainen kartta + Satunnainen kartta Random Maze - Satunnainen sokkelo + Satunnainen sokkelo Hand-drawn - + Piirretty Script - + Kaava Random Perlin - + Satunnainen Perlin SeedPrompt The map seed is the basis for all random values generated by the game. - + Kartan siemen on pohja kaikille pelissä generoiduille satunnaisluvuille. Cancel - Peruuta + Peruuta Set seed - + Aseta siemen Close - + Sulje @@ -2681,23 +2718,24 @@ new - uusi + uusi copy of %1 - + %1 kopio TCPBase Unable to start server at %1. - + Palvelimen käynnistäminen %1:ssä epäonnistui. Unable to run engine at %1 Error code: %2 - + Pelimoottorin käynnistäminen %1:ssä epäonnistui +Vikakoodi: %2 The game engine died unexpectedly! @@ -2706,29 +2744,34 @@ We are very sorry for the inconvenience :( If this keeps happening, please click the '%2' button in the main menu! - + Pelimoottori kaatui yllättäen! +(Vikakoodi: %1) + +Olemme pahoillamme tapahtuneesta :( + +Jos vika toistuu jatkuvasti, lähetä palautetta päävalikon Palaute-napista! TeamSelWidget At least two teams are required to play! - + Vähintään kaksi joukkuetta tarvitaan pelin aloittamiseen! ThemePrompt Cancel - Peruuta + Peruuta Search for a theme: - + Etsi teemaa: Use selected theme - + Käytä valittua teemaa @@ -2751,7 +2794,7 @@ attack - hyökkäys + hyökkäys precise aim @@ -2759,7 +2802,7 @@ put - laita + aseta switch @@ -2891,42 +2934,42 @@ mute audio - + hiljennä äänet record - + nauhoita hedgehog info - + siilitiedot autocam / find hedgehog - + automaattikamera / etsi siili speed up replay - + nopeuta videoa binds (categories) Movement - + Liike Weapons - Aseet + Aseet Camera - + Kamera Miscellaneous - + Sekalaiset @@ -2993,19 +3036,19 @@ Record video: - + Nauhoita videolle: Hedgehog movement - + Siilen liikkuminen Toggle automatic camera / refocus on active hedgehog: - + Liikuta kameraa automaattisesti huomioitaviin kohteisiin: Demo replay: - + Demojen katselu: @@ -3060,7 +3103,7 @@ Backspace - Askelapalutin + Askelpalautin Tab @@ -3092,63 +3135,63 @@ Numpad 0 - Numpad 0 + Numeronäppäimistö 0 Numpad 1 - Numpad 1 + Numeronäppäimistö 1 Numpad 2 - Numpad 2 + Numeronäppäimistö 2 Numpad 3 - Numpad 3 + Numeronäppäimistö 3 Numpad 4 - Numpad 4 + Numeronäppäimistö 4 Numpad 5 - Numpad 5 + Numeronäppäimistö 5 Numpad 6 - Numpad 6 + Numeronäppäimistö 6 Numpad 7 - Numpad 7 + Numeronäppäimistö 7 Numpad 8 - Numpad 8 + Numeronäppäimistö 8 Numpad 9 - Numpad 9 + Numeronäppäimistö 9 Numpad . - Numpad . + Numeronäppäimistö . Numpad / - Numpad / + Numeronäppäimistö / Numpad * - Numpad * + Numeronäppäimistö * Numpad - - Numpad - + Numeronäppäimistö - Numpad + - Numpad + + Numeronäppäimistö + Enter @@ -3176,7 +3219,7 @@ Insert - Lisää-nappi + Insert-nappi Home @@ -3331,179 +3374,179 @@ server Restricted - + Rajoitettu Not room master - + Ei huoneen omistaja Corrupted hedgehogs info - + Rapistuneen siilin tiedot too many teams - + liikaa joukkueita too many hedgehogs - + liikaa siiliä There's already a team with same name in the list - + Listalla on jo samanniminen joukkue round in progress - + peli on käynnissä restricted - + rajoitettu REMOVE_TEAM: no such team - + POISTA_JOUKKUE: joukkuetta ei löydy Not team owner! - + Et ole joukkueen omistaja! Less than two clans! - + Alle kaksi klaania! Illegal room name - + Virheellinen huoneen nimi Room with such name already exists - + Samanniminen huone on jo olemassa Nickname already chosen - + Nimimerkki on jo käytössä Illegal nickname - + Virheellinen nimimerkki Protocol already known - + Protokolla jo tiedossa Bad number - + Virheellinen numero Nickname is already in use - + Nimimerkki varattu No checker rights - + Ei tarkistusoikeutta Authentication failed - + Tunnistautuminen epäonnistui 60 seconds cooldown after kick - + 60sek odotusaika potkujen jälkeen kicked - + potkittu Ping timeout - + Yhteyden aikakatkaisu bye - + näkemiin No such room - + Ei moista huonetta Room version incompatible to your hedgewars version - + Huoneen versio ei ole yhteensopiva pelin versioosi Joining restricted - + Liittyminen estetty Registered users only - + Vain rekisteröityneille You are banned in this room - + Sinulla on porttikielto huoneeseen Empty config entry - + Tyhjä asetus You already have voted - + Olet jo äänestänyt Voting closed - + Äänestys päättyi New voting started - + Uusi äänestys alkoi Voting expired - + Äänestysaika loppui kick - + potki map - + kartta pause - tauko + tauko Reconnected too fast - + Uudelleenyhdistetty liian nopeasti Warning! Chat flood protection activated - + Varoitus! Keskustelun spämmisuodatin aktivoitu. Excess flood - + Tulva havaittu Game messages flood detected - 1 - + Peliviestien tulva havaittu - 1 Game messages flood detected - 2 - + Peliviestien tulva havaittu - 2 Warning! Joins flood protection activated - + Varoitus! Liittymisien tulvasuoja aktivoitu There's no voting going on - + Äänestyksiä ei ole meneillään - + \ No newline at end of file diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/BambooPlinko/preview.png Binary file share/hedgewars/Data/Maps/BambooPlinko/preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Battlefield/mask.png Binary file share/hedgewars/Data/Maps/Battlefield/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Blizzard/mask.png Binary file share/hedgewars/Data/Maps/Blizzard/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Blox/map.png Binary file share/hedgewars/Data/Maps/Blox/map.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Blox/mask.png Binary file share/hedgewars/Data/Maps/Blox/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Castle/mask.png Binary file share/hedgewars/Data/Maps/Castle/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Cheese/mask.png Binary file share/hedgewars/Data/Maps/Cheese/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/ClimbHome/map.lua --- a/share/hedgewars/Data/Maps/ClimbHome/map.lua Sat Nov 22 00:55:01 2014 +0300 +++ b/share/hedgewars/Data/Maps/ClimbHome/map.lua Wed Dec 03 00:07:33 2014 +0300 @@ -8,16 +8,33 @@ local startTime = 0 local MaxHeight = 32640 local RecordHeight = 33000 +local RecordHeightHogName = nil local Fire = {} --local BoomFire = nil local HH = {} +local totalHedgehogs = 0 +local deadHedgehogs = 0 +local teamScoreStats = {} +local teamBests = {} local MrMine -- in honour of sparkle's first arrival in the cabin local YouWon = false +local YouLost = false +local HogsAreInvulnerable = false local WaterRise = nil local Cake = nil -local CakeWasJustAdded = false local CakeTries = 0 local Stars = {} +local tauntNoo = false +local jokeAwardNavy = nil +local jokeAwardSpeed = nil +local jokeAwardDamage = nil +local recordBroken = false +local ready = false +-- TODO. Fix use of dummy team for scaling the graph. +local showWaterStats = false -- uses the AI team to draw water height. +local scaleGraph = false +local dummyHog = nil +local dummySkip = 0 function onGameInit() -- Ensure people get same map for same theme @@ -25,16 +42,32 @@ CaseFreq = 0 Explosives = 0 MineDudPercent = 0 + EnableGameFlags(gfOneClanMode) DisableGameFlags(gfBottomBorder+gfBorder) --This reduced startup time by only about 15% and looked ugly --EnableGameFlags(gfDisableLandObjects) -- force seed instead. Some themes will still be easier, but at least you won't luck out on the same theme Seed = ClimbHome + if showWaterStats then + AddTeam(" ", 0x545C9D, "Simple", "Island", "Default") + elseif scaleGraph then + AddTeam(" ", 0x050505, "Simple", "Island", "Default") + end + if showWaterStats or scaleGraph then + dummyHog = AddHog(" ", 0, 1, "NoHat") + HH[dummyHog] = nil + totalHedgehogs = totalHedgehogs - 1 + if not showWaterStates then + SendStat(siClanHealth, tostring(32640), " ") + end + SendStat(siClanHealth, tostring(32640), " ") + end end function onGearAdd(gear) if GetGearType(gear) == gtHedgehog then HH[gear] = 1 + totalHedgehogs = totalHedgehogs + 1 end end @@ -44,40 +77,67 @@ MrMine = nil elseif gear == Cake then Cake = nil + elseif GetGearType(gear) == gtHedgehog then + HH[gear] = nil end end function onGameStart() + if showWaterStats or scaleGraph then + DeleteGear(dummyHog) + end + --SetClanColor(ClansCount-1, 0x0000ffff) appears to be broken + SendHealthStatsOff() ShowMission(loc("Climb Home"), loc("Rope to safety"), - loc("You are far from home, and the water is rising, climb up as high as you can!"), + loc("You are far from home, and the water is rising, climb up as high as you can!|Your score will be based on your height."), -amRope, 0) local x = 1818 for h,i in pairs(HH) do - -- SetGearPosition(h,x,32549) - SetGearPosition(h,x,108) - SetHealth(h,1) - if x < 1978 then x = x+32 else x = 1818 end - SetState(h,bor(GetState(h),gstInvisible)) + if h ~= nil then + -- SetGearPosition(h,x,32549) + SetGearPosition(h,x,108) + SetHealth(h,1) + if x < 1978 then x = x+32 else x = 1818 end + if GetEffect(h,heInvulnerable) == 0 then + SetEffect(h,heInvulnerable,1) + else + HogsAreInvulnerable = true + end + SetState(h,bor(GetState(h),gstInvisible)) + end end -- 1925,263 - Mr. Mine position MrMine = AddGear(1925,263,gtMine,0,0,0,0) end + function onAmmoStoreInit() SetAmmo(amRope, 9, 0, 0, 0) end function onNewTurn() + ready = false startTime = GameTime --disable to preserve highest over multiple turns --will need to change water check too ofc MaxHeight = 32640 hTagHeight = 33000 SetWaterLine(32768) + YouWon = false + YouLost = false + tauntNoo = false + recordBroken = false if CurrentHedgehog ~= nil then - SetGearPosition(CurrentHedgehog, 1951,32640) - AddVisualGear(19531,32640,vgtExplosion,0,false) - SetState(CurrentHedgehog,band(GetState(CurrentHedgehog),bnot(gstInvisible))) + if CurrentHedgehog ~= dummyHog then + SetGearPosition(CurrentHedgehog, 1951,32640) + if not HogsAreInvulnerable then SetEffect(CurrentHedgehog,heInvulnerable,0) end + AddVisualGear(1951,32640,vgtExplosion,0,false) + SetState(CurrentHedgehog,band(GetState(CurrentHedgehog),bnot(gstInvisible))) + SetWeapon(amRope) + ready = true + else + dummySkip = GameTime+1 + end end for f,i in pairs(Fire) do DeleteGear(f) @@ -87,10 +147,12 @@ Stars[s] = nil end - for i = 0,12 do - flame = AddGear(2000+i*2,308, gtFlame, gsttmpFlag, 0, 0, 0) - SetTag(flame, 999999+i) - Fire[flame]=1 + if CurrentHedgehog ~= dummyHog then + for i = 0,12 do + flame = AddGear(2000+i*2,308, gtFlame, gsttmpFlag, 0, 0, 0) + SetTag(flame, 999999+i) + Fire[flame]=1 + end end if Cake ~= nil then DeleteGear(Cake) end CakeTries = 0 @@ -104,11 +166,24 @@ function FireBoom(x,y,d) -- going to add for rockets too AddVisualGear(x,y,vgtExplosion,0,false) - -- going to approximate circle by removing corners - if BoomFire == nil then BoomFire = {} end + -- should approximate circle by removing corners + --if BoomFire == nil then BoomFire = {} end for i = 0,50 do - flame = AddGear(x+GetRandom(d),y+GetRandom(d), gtFlame, gsttmpFlag, 0, 0, 0) + fx = GetRandom(d)-div(d,2) + fy = GetRandom(d)-div(d,2) + if fx<0 then + fdx = -5000-GetRandom(3000) + else + fdx = 5000+GetRandom(3000) + end + if fy<0 then + fdy = -5000-GetRandom(3000) + else + fdy = 5000+GetRandom(3000) + end + flame = AddGear(x+fx, y+fy, gtFlame, gsttmpFlag, fdx, fdy, 0) SetTag(flame, 999999+i) + SetFlightTime(flame, 0) Fire[flame]=1 -- BoomFire[flame]=1 end @@ -116,13 +191,13 @@ function onGameTick20() - if math.random(20) == 1 then - AddVisualGear(2012,56,vgtSmoke,0,false) + local x,y; + if math.random(20) == 1 then AddVisualGear(2012,56,vgtSmoke,0,false) end + if CurrentHedgehog == dummyHog and dummySkip ~= 0 and dummySkip < GameTime then + ParseCommand("/skip") + dummySkip = 0 end - if CakeWasJustAdded then - FollowGear(CurrentHedgehog) - CakeWasJustAdded = false - end + --if BoomFire ~= nil then -- for f,i in pairs(BoomFire) do -- if band(GetState(f),gstCollision~=0) then DeleteGear(f) end @@ -143,15 +218,16 @@ --end end + if CurrentHedgehog ~= nil then x,y = GetGearPosition(CurrentHedgehog) end if Cake ~= nil and CurrentHedgehog ~= nil then local cx,cy = GetGearPosition(Cake) - local x,y = GetGearPosition(CurrentHedgehog) if y < cy-1500 then DeleteGear(Cake) Cake = nil end - if gearIsInCircle(CurrentHedgehog,cx,cy,450) then - FireBoom(cx,cy,350) -- todo animate + + if Cake ~= nil and GetHealth(Cake) < 999990 and gearIsInCircle(CurrentHedgehog,cx,cy,450) then + FireBoom(cx,cy,200) -- todo animate DeleteGear(Cake) Cake = nil end @@ -159,7 +235,6 @@ if CurrentHedgehog ~= nil and TurnTimeLeft > 0 and band(GetState(CurrentHedgehog),gstHHDriven) ~= 0 then if MaxHeight < 32000 and MaxHeight > 286 and WaterLine > 286 then SetWaterLine(WaterLine-2) end - local x,y = GetGearPosition(CurrentHedgehog) if y > 0 and y < 30000 and MaxHeight > 286 and math.random(y) < 500 then local s = AddVisualGear(0, 0, vgtStraightShot, 0, true) local c = div(250000,y) @@ -187,92 +262,188 @@ end end - if GameTime % 500 == 0 and CurrentHedgehog ~= nil and TurnTimeLeft > 0 then - --if isSinglePlayer and MaxHeight < 32000 and WaterRise == nil then - -- WaterRise = AddGear(0,0,gtWaterUp, 0, 0, 0, 0) - --end - if isSinglePlayer and not YouWon and gearIsInBox(CurrentHedgehog, 1920, 252, 50, 50) then - ShowMission(loc("Climb Home"), - loc("Made it!"), - string.format(loc("AHHh, home sweet home. Made it in %d seconds."),(GameTime-startTime)/1000), - -amRope, 0) - PlaySound(sndVictory,CurrentHedgehog) - EndGame() - YouWon = true + if CurrentHedgehog ~= nil and TurnTimeLeft > 0 then + local vx, vy = GetGearVelocity(CurrentHedgehog) + local distanceFromWater = WaterLine - y + + --[[ check joke awards ]] + -- navy award: when distance from main map is over 1000 + local navyDistance = 1250 + if x < -navyDistance or x > LAND_WIDTH+navyDistance then + local awarded = false + local dist = 0 + if jokeAwardNavy == nil then + awarded = true + else + if x < 0 then + dist = math.abs(x) + else + dist = x - LAND_WIDTH + end + if dist > jokeAwardNavy.distance then + awarded = true + end + end + if awarded == true then + jokeAwardNavy = { + hogName = GetHogName(CurrentHedgehog), + teamName = GetHogTeamName(CurrentHedgehog), + distance = dist + } + end + end + + -- Speed award for largest distance from water + if distanceFromWater > 3000 and WaterLine < 32000 then + local awarded = false + if jokeAwardSpeed == nil or distanceFromWater > jokeAwardSpeed.distance then + awarded = true + end + if awarded == true then + jokeAwardSpeed = { + hogName = GetHogName(CurrentHedgehog), + teamName = GetHogTeamName(CurrentHedgehog), + distance = distanceFromWater + } + end end - local x,y = GetGearPosition(CurrentHedgehog) - if CakeTries < 10 and y < 32600 and y > 3000 and Cake == nil and band(GetState(CurrentHedgehog),gstHHDriven) ~= 0 then - -- doing this just after the start the first time to take advantage of randomness sources - -- there's a small chance it'll jiggle the camera though, so trying not to do it too often - -- Pick a clear y to start with - if y > 31000 then cy = 24585 elseif - y > 28000 then cy = 21500 elseif - y > 24000 then cy = 19000 elseif - y > 21500 then cy = 16000 elseif - y > 19000 then cy = 12265 elseif - y > 16000 then cy = 8800 elseif - y > 12000 then cy = 5700 else - cy = 400 end - Cake = AddGear(GetRandom(2048), cy, gtCake, 0, 0, 0, 0) - SetHealth(Cake,999999) - CakeWasJustAdded = true - CakeTries = CakeTries + 1 -- just try twice right now - end - if (y > 286) or (y < 286 and MaxHeight > 286) then - if y < MaxHeight and y > 286 then MaxHeight = y end - if y < 286 then MaxHeight = 286 end - if MaxHeight < hTagHeight then - hTagHeight = MaxHeight - if hTag ~= nil then DeleteVisualGear(hTag) end - hTag = AddVisualGear(0, 0, vgtHealthTag, 0, true) - local g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(hTag) +-- this block was moved out of the % 500 below because it was not triggering fast enough to give correct stats for all teams. + if isSinglePlayer then + if distanceFromWater < 0 and not YouLost and not YouWon then + makeSinglePlayerLoserStats() + YouLost = true + end + if not YouWon and not YouLost and gearIsInBox(CurrentHedgehog, 1920, 252, 50, 50) then + local finishTime = (GameTime-startTime)/1000 + local roundedFinishTime = math.ceil(math.floor(finishTime+0.5)) + AddCaption(loc("Victory!")) + ShowMission(loc("Climb Home"), + loc("Made it!"), + string.format(loc("Ahhh, home, sweet home. Made it in %d seconds."), roundedFinishTime), + -amRope, 0) + PlaySound(sndVictory,CurrentHedgehog) + SetState(CurrentHedgehog, gstWinner) + SendStat(siGameResult, loc("You have beaten the challenge!")) + SendStat(siGraphTitle, loc("Your height over time")) + SendStat(siCustomAchievement, string.format(loc("%s reached home in %.3f seconds. Congratulations!"), loc(GetHogName(CurrentHedgehog)), finishTime)) + SendStat(siCustomAchievement, string.format(loc("%s bravely climbed up to a dizzy height of %d to reach home."),loc(GetHogName(CurrentHedgehog)), getActualHeight(RecordHeight))) + SendStat(siPointType, loc("seconds")) + SendStat(siPlayerKills, tostring(roundedFinishTime), loc(GetHogTeamName(CurrentHedgehog))) + + EndGame() + YouWon = true + end + elseif distanceFromWater < 0 and not YouLost then + makeMultiPlayerLoserStat(CurrentHedgehog) + deadHedgehogs = deadHedgehogs + 1 + YouLost = true + if deadHedgehogs >= totalHedgehogs then + makeFinalMultiPlayerStats() + EndGame() + end + end + + if GameTime % 500 == 0 then + --if isSinglePlayer and MaxHeight < 32000 and WaterRise == nil then + -- WaterRise = AddGear(0,0,gtWaterUp, 0, 0, 0, 0) + --end + if showWaterStats == true then + SendStat(siClanHealth, tostring(getActualHeight(WaterLine)), " ") + end + SendStat(siClanHealth, tostring(getActualHeight(y)), GetHogTeamName(CurrentHedgehog)) + + -- play taunts + if not YouWon and not YouLost then + local nooDistance = 500 + if ((x < -nooDistance and vx < 0) or (x > LAND_WIDTH+nooDistance and vx > 0)) then + if (tauntNoo == false and distanceFromWater > 80) then + PlaySound(sndNooo, CurrentHedgehog) + tauntNoo = true + end + end + end + + if CakeTries < 10 and y < 32600 and y > 3000 and Cake == nil and band(GetState(CurrentHedgehog),gstHHDriven) ~= 0 then + -- doing this just after the start the first time to take advantage of randomness sources + -- Pick a clear y to start with + if y > 31000 then cy = 24585 elseif + y > 28000 then cy = 21500 elseif + y > 24000 then cy = 19000 elseif + y > 21500 then cy = 16000 elseif + y > 19000 then cy = 12265 elseif + y > 16000 then cy = 8800 elseif + y > 12000 then cy = 5700 else + cy = 400 end + Cake = AddGear(GetRandom(2048), cy, gtCake, 0, 0, 0, 0) + SetHealth(Cake,999999) + CakeTries = CakeTries + 1 + end + + if (y > 286) or (y < 286 and MaxHeight > 286) then + if y < MaxHeight and y > 286 then MaxHeight = y end + if y < 286 then MaxHeight = 286 end + if MaxHeight < hTagHeight then + hTagHeight = MaxHeight + if hTag ~= nil then DeleteVisualGear(hTag) end + hTag = AddVisualGear(0, 0, vgtHealthTag, 0, true) + local g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(hTag) + -- snagged from space invasion + SetVisualGearValues ( + hTag, --id + -(ScreenWidth/2) + 40, --xoffset + ScreenHeight - 60, --yoffset + 0, --dx + 0, --dy + 1.1, --zoom + 1, --~= 0 means align to screen + g7, --frameticks + -- 116px off bottom for lowest rock, 286 or so off top for position of chair + -- 32650 is "0" + 32640-hTagHeight, --value + 99999999999,--timer + GetClanColor(GetHogClan(CurrentHedgehog)) + ) + end + + if MaxHeight < RecordHeight then + RecordHeight = MaxHeight + local oldName = RecordHeightHogName + RecordHeightHogName = GetHogName(CurrentHedgehog) + if oldName == nil then recordBroken = true end + if not isSinglePlayer and RecordHeight > 1500 and not recordBroken then + recordBroken = true + AddCaption(string.format(loc("%s has passed the best height of %s!"), RecordHeightHogName, oldName)) + end + if not isSinglePlayer then + if rTag ~= nil then DeleteVisualGear(rTag) end + rTag = AddVisualGear(0, 0, vgtHealthTag, 0, true) + local g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(hTag) + -- snagged from space invasion + SetVisualGearValues ( + rTag, --id + -(ScreenWidth/2) + 100, --xoffset + ScreenHeight - 60, --yoffset + 0, --dx + 0, --dy + 1.1, --zoom + 1, --~= 0 means align to screen + g7, --frameticks + -- 116px off bottom for lowest rock, 286 or so off top for position of chair + -- 32650 is "0" + getActualHeight(RecordHeight), --value + 99999999999,--timer + GetClanColor(GetHogClan(CurrentHedgehog)) + ) + end + end + end + if MaxHeight > 286 then + if tTag ~= nil then DeleteVisualGear(tTag) end + tTag = AddVisualGear(0, 0, vgtHealthTag, 0, true) + local g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tTag) -- snagged from space invasion SetVisualGearValues ( - hTag, --id - -(ScreenWidth/2) + 40, --xoffset - ScreenHeight - 60, --yoffset - 0, --dx - 0, --dy - 1.1, --zoom - 1, --~= 0 means align to screen - g7, --frameticks - -- 116px off bottom for lowest rock, 286 or so off top for position of chair - -- 32650 is "0" - 32640-hTagHeight, --value - 99999999999,--timer - GetClanColor(GetHogClan(CurrentHedgehog)) - ) - end - if MaxHeight < RecordHeight then - RecordHeight = MaxHeight - if rTag ~= nil then DeleteVisualGear(rTag) end - rTag = AddVisualGear(0, 0, vgtHealthTag, 0, true) - local g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(hTag) - -- snagged from space invasion - SetVisualGearValues ( - rTag, --id - -(ScreenWidth/2) + 100, --xoffset - ScreenHeight - 60, --yoffset - 0, --dx - 0, --dy - 1.1, --zoom - 1, --~= 0 means align to screen - g7, --frameticks - -- 116px off bottom for lowest rock, 286 or so off top for position of chair - -- 32650 is "0" - 32640-RecordHeight, --value - 99999999999,--timer - GetClanColor(GetHogClan(CurrentHedgehog)) - ) - end - end - if MaxHeight > 286 then - if tTag ~= nil then DeleteVisualGear(tTag) end - tTag = AddVisualGear(0, 0, vgtHealthTag, 0, true) - local g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tTag) - -- snagged from space invasion - SetVisualGearValues ( tTag, --id -(ScreenWidth/2) + 40, --xoffset ScreenHeight - 100, --yoffset @@ -285,6 +456,161 @@ 99999999999,--timer 0xffffffff ) + end end end end + +function onGearDamage(gear, damage) + if GetGearType(gear) == gtHedgehog and not YouLost and not YouWon then + -- Joke award for largest damage to hog + local qualifyDamage = 50 + if (damage >= qualifyDamage) then + local awarded = false + if jokeAwardDamage == nil or damage > jokeAwardDamage.damage then + awarded = true + end + if awarded == true then + jokeAwardDamage = { + hogName = GetHogName(CurrentHedgehog), + teamName = GetHogTeamName(CurrentHedgehog), + damage = damage + } + end + end + + if isSinglePlayer then + makeSinglePlayerLoserStats() + else + deadHedgehogs = deadHedgehogs + 1 + if deadHedgehogs >= totalHedgehogs then + makeFinalMultiPlayerStats() + EndGame() + end + makeMultiPlayerLoserStat(gear) + end + YouLost = true + end +end + +function makeLoserComment() + local m + if isSinglePlayer then m = 10 else m = 6 end + local r = math.random(1,m) + if r == 1 then text = loc("%s never got the ninja diploma.") + elseif r == 2 then text = loc("You have to move upwards, not downwards, %s!") + elseif r == 3 then text = loc("%s never wanted to reach for the sky in the first place.") + elseif r == 4 then text = loc("%s should try the rope training mission first.") + elseif r == 5 then text = loc("%s skipped ninja classes.") + elseif r == 6 then text = loc("%s doesn’t really know how to handle a rope properly.") + elseif r == 7 then text = loc("Better luck next time!") + elseif r == 8 then text = loc("It was all just bad luck!") + elseif r == 9 then text = loc("Well, that escalated quickly!") + elseif r == 10 then text = loc("What? Is it over already?") end + return text +end + +function makeSinglePlayerLoserStats() + local actualHeight = getActualHeight(RecordHeight) + SendStat(siGameResult, loc("You lose!")) + SendStat(siGraphTitle, loc("Your height over time")) + local text + if actualHeight > 30000 then text = loc("%s was damn close to home.") + elseif actualHeight > 28000 then text = loc("%s was close to home.") + elseif actualHeight > 24265 then text = loc("%s was good, but not good enough.") + elseif actualHeight > 16177 then text = loc("%s managed to pass half of the distance towards home.") + elseif actualHeight > 8088 then text = loc("%s went over a quarter of the way towards home.") + elseif actualHeight > 5100 then text = loc("%s still had a long way to go.") + elseif actualHeight > 2000 then text = loc("%s made it past the hogosphere.") + elseif actualHeight > 1500 then text = loc("%s barely made it past the hogosphere.") + else + text = makeLoserComment() + end + if actualHeight > 1500 then + SendStat(siCustomAchievement, string.format(text, RecordHeightHogName, actualHeight)) + else + SendStat(siCustomAchievement, string.format(text, RecordHeightHogName)) + end + SendStat(siPointType, "points") + SendStat(siPlayerKills, actualHeight, loc(GetHogTeamName(CurrentHedgehog))) + EndGame() +end + +function makeMultiPlayerLoserStat(gear) + local teamName = GetHogTeamName(gear) + local actualHeight = getActualHeight(MaxHeight) + if teamBests[teamName] == nil then teamBests[teamName] = actualHeight end + if teamBests[teamName] < actualHeight then teamBests[teamName] = actualHeight end + if teamScoreStats[teamName] == nil then teamScoreStats[teamName] = {} end + table.insert(teamScoreStats[teamName], actualHeight) + --SendStat(siClanHealth, tostring(teamBests[teamName]), teamName) +end + +function makeFinalMultiPlayerStats() + local ranking = {} + for k,v in pairs(teamBests) do + table.insert(ranking, {name=k, score=v}) + end + local comp = function(table1, table2) + if table1.score < table2.score then + return true + else + return false + end + end + table.sort(ranking, comp) + + local winner = ranking[#ranking] + local loser = ranking[1] + SendStat(siGameResult, string.format(loc("%s wins!"), winner.name)) + SendStat(siGraphTitle, string.format(loc("Team’s best heights per round"))) + + if winner.score < 1500 then + SendStat(siCustomAchievement, string.format(loc("This round’s award for ulitmate disappointment goes to: Everyone!"))) + else + if winner.score > 30000 then text = loc("%s (%s) reached for the sky and beyond with a height of %d!") + elseif winner.score > 24750 then text = loc("%s (%s) was certainly not afraid of heights: Peak height of %d!") + elseif winner.score > 16500 then text = loc("%s (%s) does not have to feel ashamed for their best height of %d.") + elseif winner.score > 8250 then text = loc("%s (%s) reached a decent peak height of %d.") + else text = loc("%s (%s) reached a peak height of %d.") end + SendStat(siCustomAchievement, string.format(text, RecordHeightHogName, winner.name, winner.score)) + + if loser.score < 1500 then + text = makeLoserComment() + SendStat(siCustomAchievement, string.format(text, loser.name)) + end + end + checkAwards() + for i = #ranking, 1, -1 do + SendStat(siPlayerKills, tostring(ranking[i].score), ranking[i].name) + SendStat(siPointType, "points") + end +end + +function checkAwards() + if jokeAwardNavy ~= nil then + if isSinglePlayer then + SendStat(siCustomAchievement, string.format(loc("The Navy greets %s for managing to get in a distance of %d away from the mainland!"), jokeAwardNavy.hogName, jokeAwardNavy.distance)) + else + SendStat(siCustomAchievement, string.format(loc("Greetings from the Navy, %s (%s), for being a distance of %d away from the mainland!"), jokeAwardNavy.hogName, jokeAwardNavy.teamName, jokeAwardNavy.distance)) + end + end + if jokeAwardSpeed ~= nil then + if isSinglePlayer then + SendStat(siCustomAchievement, string.format(loc("Your hedgehog was panicly afraid of the water and decided to go in a safe distance of %d from it."), jokeAwardSpeed.distance)) + else + SendStat(siCustomAchievement, string.format(loc("%s (%s) was panicly afraid of the water and decided to get in a safe distance of %d from it."), jokeAwardSpeed.hogName, jokeAwardSpeed.teamName, jokeAwardSpeed.distance)) + end + end + if jokeAwardDamage ~= nil then + if isSinglePlayer then + SendStat(siCustomAchievement, string.format(loc("Ouch! That must have hurt. You mutilated your poor hedgehog hog with %d damage."), jokeAwardDamage.damage)) + else + SendStat(siCustomAchievement, string.format(loc("Ouch! That must have hurt. %s (%s) hit the ground with %d damage points."), jokeAwardDamage.hogName, jokeAwardDamage.teamName, jokeAwardDamage.damage)) + end + end +end + +function getActualHeight(height) + return 32640-height +end diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/ClimbHome/mask.png Binary file share/hedgewars/Data/Maps/ClimbHome/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Control/map.png Binary file share/hedgewars/Data/Maps/Control/map.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/EarthRise/map.png Binary file share/hedgewars/Data/Maps/EarthRise/map.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/EarthRise/mask.png Binary file share/hedgewars/Data/Maps/EarthRise/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/HedgeFortress/mask.png Binary file share/hedgewars/Data/Maps/HedgeFortress/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Islands/map.png Binary file share/hedgewars/Data/Maps/Islands/map.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Lonely_Island/mask.png Binary file share/hedgewars/Data/Maps/Lonely_Island/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Mushrooms/map.png Binary file share/hedgewars/Data/Maps/Mushrooms/map.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Mushrooms/mask.png Binary file share/hedgewars/Data/Maps/Mushrooms/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Octorama/map.png Binary file share/hedgewars/Data/Maps/Octorama/map.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Ruler/map.png Binary file share/hedgewars/Data/Maps/Ruler/map.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Ruler/preview.png Binary file share/hedgewars/Data/Maps/Ruler/preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/SB_Crystal/mask.png Binary file share/hedgewars/Data/Maps/SB_Crystal/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/SB_Grassy/mask.png Binary file share/hedgewars/Data/Maps/SB_Grassy/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/SB_Grove/mask.png Binary file share/hedgewars/Data/Maps/SB_Grove/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/SB_Haunty/mask.png Binary file share/hedgewars/Data/Maps/SB_Haunty/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/SB_Oaks/mask.png Binary file share/hedgewars/Data/Maps/SB_Oaks/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/SB_Shrooms/mask.png Binary file share/hedgewars/Data/Maps/SB_Shrooms/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/SB_Tentacles/mask.png Binary file share/hedgewars/Data/Maps/SB_Tentacles/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Sticks/map.png Binary file share/hedgewars/Data/Maps/Sticks/map.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/Sticks/preview.png Binary file share/hedgewars/Data/Maps/Sticks/preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/TrophyRace/mask.png Binary file share/hedgewars/Data/Maps/TrophyRace/mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/test/map.png Binary file share/hedgewars/Data/Maps/test/map.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/test2/preview.png Binary file share/hedgewars/Data/Maps/test2/preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/test3/preview.png Binary file share/hedgewars/Data/Maps/test3/preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Maps/testmap/preview.png Binary file share/hedgewars/Data/Maps/testmap/preview.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua Sat Nov 22 00:55:01 2014 +0300 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua Wed Dec 03 00:07:33 2014 +0300 @@ -141,7 +141,7 @@ -- Remove the team to end the game. Only do this once. if team_death == false then team_death = true - DismissTeam("Grenadiers") + DismissTeam(loc("Grenadiers")) end else -- ... or just lower the timer by 1. diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Missions/Training/ClimbHome.lua --- a/share/hedgewars/Data/Missions/Training/ClimbHome.lua Sat Nov 22 00:55:01 2014 +0300 +++ b/share/hedgewars/Data/Missions/Training/ClimbHome.lua Wed Dec 03 00:07:33 2014 +0300 @@ -17,6 +17,9 @@ CaseFreq = 0 Explosives = 0 Map = "ClimbHome" - AddTeam(loc("Lonely Hog"), 14483456, "Simple", "Island", "Default") + AddTeam(loc("Lonely Hog"), 0xDD0000, "Simple", "Island", "Default") player = AddHog(loc("Climber"), 0, 1, "NoHat") + AddTeam(loc("Water Gods"), 0x4980C1, "Simple", "Island", "Default") + dummyHog = AddHog("Poseidon", 5, 1, "NoHat") + --HideHog(dummyHog) end diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Scripts/Draw.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Scripts/Draw.lua Wed Dec 03 00:07:33 2014 +0300 @@ -0,0 +1,25 @@ +local PointsBuffer = '' -- A string to accumulate points in + +function AddPoint(x, y, width, erase) + PointsBuffer = PointsBuffer .. string.char(band(x,0xff00) / 256 , band(x,0xff) , band(y,0xff00) / 256 , band(y,0xff)) + if width then + width = bor(width,0x80) + if erase then + width = bor(width,0x40) + end + PointsBuffer = PointsBuffer .. string.char(width) + else + PointsBuffer = PointsBuffer .. string.char(0) + end + if #PointsBuffer > 245 then + ParseCommand('draw '..PointsBuffer) + PointsBuffer = '' + end +end + +function FlushPoints() + if #PointsBuffer > 0 then + ParseCommand('draw '..PointsBuffer) + PointsBuffer = '' + end +end diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Scripts/Multiplayer/Construction_Mode.cfg --- a/share/hedgewars/Data/Scripts/Multiplayer/Construction_Mode.cfg Sat Nov 22 00:55:01 2014 +0300 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Construction_Mode.cfg Wed Dec 03 00:07:33 2014 +0300 @@ -1,2 +1,2 @@ -Fort_Mode -Clean_Slate +Construction_Mode +Construction_Mode diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Scripts/Multiplayer/Continental_supplies.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/Continental_supplies.lua Sat Nov 22 00:55:01 2014 +0300 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Continental_supplies.lua Wed Dec 03 00:07:33 2014 +0300 @@ -1,5 +1,5 @@ --[[ -Made for 0.9.20 +Made for 0.9.21 Copyright (C) 2012 Vatten @@ -44,11 +44,11 @@ end end -function EndTurn(baseRetreatTime) - local retreatTimePercentage = 100 +function EndTurn() SetState(CurrentHedgehog,bor(GetState(CurrentHedgehog),gstAttacked)) - TurnTimeLeft = baseRetreatTime / 100 * retreatTimePercentage - end + --3 sec espace time + TurnTimeLeft = GetAwayTime*10*3 +end --for sundaland local turnhog=0 @@ -1036,7 +1036,7 @@ if(africanSpecial == 1 and GetCurAmmoType() == amSeduction and band(GetState(CurrentHedgehog),gstAttacked)==0) then --SetState(CurrentHedgehog, gstAttacked) - EndTurn(3000) + EndTurn() temp_val=0 runOnGears(weapon_duststorm) @@ -1097,7 +1097,7 @@ end end - EndTurn(3000) + EndTurn() DeleteVisualGear(visualcircle) visualcircle=nil diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Scripts/Multiplayer/DiagonalMaze.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Scripts/Multiplayer/DiagonalMaze.cfg Wed Dec 03 00:07:33 2014 +0300 @@ -0,0 +1,2 @@ +Default +Default diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Scripts/Multiplayer/DiagonalMaze.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Scripts/Multiplayer/DiagonalMaze.lua Wed Dec 03 00:07:33 2014 +0300 @@ -0,0 +1,22 @@ +HedgewarsScriptLoad("/Scripts/Draw.lua") + +function onPreviewInit() +onGameInit() +end + +function onGameInit() + MapGen = mgDrawn + TemplateFilter = 0 + for y = 48,2048,200 do + for x = 48,4048,200 do + if GetRandom(2) == 0 then + AddPoint(x,y,1) + AddPoint(x+200,y+200) + else + AddPoint(x,y+200,1) + AddPoint(x+200,y) + end + end + end + FlushPoints() +end diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Scripts/Multiplayer/ShoppaMap.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/ShoppaMap.lua Sat Nov 22 00:55:01 2014 +0300 +++ b/share/hedgewars/Data/Scripts/Multiplayer/ShoppaMap.lua Wed Dec 03 00:07:33 2014 +0300 @@ -1,32 +1,10 @@ ObjectList = {} -PointsBuffer = '' -- A string to accumulate points in + +HedgewarsScriptLoad("/Scripts/Draw.lua") -- Overall padding for roping freedom Padding = 430 -function AddPoint(x, y, width, erase) - PointsBuffer = PointsBuffer .. string.char(band(x,0xff00) / 256 , band(x,0xff) , band(y,0xff00) / 256 , band(y,0xff)) - if width then - width = bor(width,0x80) - if erase then - width = bor(width,0x40) - end - PointsBuffer = PointsBuffer .. string.char(width) - else - PointsBuffer = PointsBuffer .. string.char(0) - end - if #PointsBuffer > 245 then - ParseCommand('draw '..PointsBuffer) - PointsBuffer = '' - end -end -function FlushPoints() - if #PointsBuffer > 0 then - ParseCommand('draw '..PointsBuffer) - PointsBuffer = '' - end -end - -- This could probably use less points and more precision -- 700x700 for object space function DrawStar(x, y, d, f) diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Scripts/Multiplayer/TechRacer.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Scripts/Multiplayer/TechRacer.cfg Wed Dec 03 00:07:33 2014 +0300 @@ -0,0 +1,2 @@ +Shoppa +Shoppa diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Scripts/Multiplayer/TechRacer.hwp Binary file share/hedgewars/Data/Scripts/Multiplayer/TechRacer.hwp has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Scripts/Multiplayer/TechRacer.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Scripts/Multiplayer/TechRacer.lua Wed Dec 03 00:07:33 2014 +0300 @@ -0,0 +1,1505 @@ +------------------------------------------ +-- TECH RACER v0.2 +----------------------------------------- + +-------------- +--0.2 +-------------- +-- should work better "out the box" +-- changed map generation +-- put a hog limiter in place +-- removed parsecommand +-- fix one of the test maps +-- hopefully added some support for future official challenges etc +-- changed theme +-- minor cleanups? + +----------------------------- +-- SCRIPT BEGINS +----------------------------- + +HedgewarsScriptLoad("/Scripts/Locale.lua") +HedgewarsScriptLoad("/Scripts/OfficialChallenges.lua") +HedgewarsScriptLoad("/Scripts/Tracker.lua") +HedgewarsScriptLoad("/Scripts/Params.lua") + +------------------ +-- Got Variables? +------------------ + +local activationStage = 0 +local jet = nil + +local fMod = 1000000 -- 1 +local roundLimit = 3 +local roundNumber = 0 +local firstClan = 10 + +local fastX = {} +local fastY = {} +local fastCount = 0 +local fastIndex = 0 +local fastColour + +local currX = {} +local currY = {} +local currCount = 0 + +local specialPointsX = {} +local specialPointsY = {} +local specialPointsCount = 0 + +mapID = 22 + +-------------------------- +-- hog and team tracking variales +-------------------------- + +local numhhs = 0 -- store number of hedgehogs +local hhs = {} -- store hedgehog gears + +local numTeams -- store the number of teams in the game +local teamNameArr = {} -- store the list of teams +local teamClan = {} +local teamSize = {} -- store how many hogs per team +local teamIndex = {} -- at what point in the hhs{} does each team begin + +local teamComment = {} +local teamScore = {} + +------- +-- racer vars +-------- + +local cGear = nil + +local bestClan = nil +local bestTime = nil + +local gameBegun = false +local gameOver = false +local racerActive = false +local trackTime = 0 + +local wpCirc = {} +local wpX = {} +local wpY = {} +local wpCol = {} +local wpActive = {} +local wpRad = 450 --75 +local wpCount = 0 +local wpLimit = 8 + +local usedWeapons = {} + +local roundN +local lastRound +local RoundHasChanged + +------------------- +-- general methods +------------------- + +--function onPrecise() +--end + +function RebuildTeamInfo() + + + -- make a list of individual team names + for i = 0, (TeamsCount-1) do + teamNameArr[i] = " " -- = i + teamSize[i] = 0 + teamIndex[i] = 0 + teamScore[i] = 100000 + end + numTeams = 0 + + for i = 0, (numhhs-1) do + + z = 0 + unfinished = true + while(unfinished == true) do + + newTeam = true + tempHogTeamName = GetHogTeamName(hhs[i]) -- this is the new name + + if tempHogTeamName == teamNameArr[z] then + newTeam = false + unfinished = false + end + + z = z + 1 + + if z == TeamsCount then + unfinished = false + if newTeam == true then + teamNameArr[numTeams] = tempHogTeamName + numTeams = numTeams + 1 + end + end + + end + + end + + -- find out how many hogs per team, and the index of the first hog in hhs + for i = 0, (numTeams-1) do + for z = 0, (numhhs-1) do + if GetHogTeamName(hhs[z]) == teamNameArr[i] then + teamClan[i] = GetHogClan(hhs[z]) + if teamSize[i] == 0 then + teamIndex[i] = z -- should give starting index + end + teamSize[i] = teamSize[i] + 1 + --add a pointer so this hog appears at i in hhs + end + end + + end + +end + + +----------------- +-- RACER METHODS +----------------- + +function CheckWaypoints() + + trackFinished = true + + for i = 0, (wpCount-1) do + + g1X, g1Y = GetGearPosition(CurrentHedgehog) + g2X, g2Y = wpX[i], wpY[i] + + g1X = g1X - g2X + g1Y = g1Y - g2Y + dist = (g1X*g1X) + (g1Y*g1Y) + + --if i == 0 then + -- AddCaption(dist .. "/" .. (wpRad*wpRad) ) + --end + + NR = (48/100*wpRad)/2 + + if dist < (NR*NR) then + --if dist < (wpRad*wpRad) then + --AddCaption("howdy") + wpActive[i] = true + wpCol[i] = GetClanColor(GetHogClan(CurrentHedgehog)) -- new --GetClanColor(1) + SetVisualGearValues(wpCirc[i], wpX[i], wpY[i], 20, 100, 1, 10, 0, wpRad, 5, wpCol[i]) + + wpRem = 0 + for k = 0, (wpCount-1) do + if wpActive[k] == false then + wpRem = wpRem + 1 + end + end + + AddCaption(loc("Way-Points Remaining") .. ": " .. wpRem,0xffba00ff,capgrpAmmoinfo) + + end + + if wpActive[i] == false then + trackFinished = false + end + + end + + return(trackFinished) + +end + +function AdjustScores() + + if bestTime == nil then + bestTime = 100000 + bestClan = 10 + bestTimeComment = "N/A" + end + + newScore = false + + -- update this clan's time if the new track is better + for i = 0, (numTeams-1) do + if teamClan[i] == GetHogClan(CurrentHedgehog) then + if trackTime < teamScore[i] then + teamScore[i] = trackTime + newScore = true + else + newScore = false + end + end + end + + --bestTime = 100000 + --bestClan = 10 + + -- find the best time out of those so far + for i = 0, (numTeams-1) do + if teamScore[i] < bestTime then + bestTime = teamScore[i] + bestClan = teamClan[i] + end + end + + if bestTime ~= 100000 then + bestTimeComment = (bestTime/1000) ..loc("s") + end + + if newScore == true then + if trackTime == bestTime then -- best time of the race + ShowMission(loc("RACER"), + loc("TRACK COMPLETED"), + loc("NEW RACE RECORD: ") .. (trackTime/1000) ..loc("s") .. "|" .. + loc("WINNING TIME: ") .. bestTimeComment, 0, 4000) + PlaySound(sndHomerun) + else -- best time for the clan + ShowMission(loc("RACER"), + loc("TRACK COMPLETED"), + loc("NEW CLAN RECORD: ") .. (trackTime/1000) ..loc("s") .. "|" .. + loc("WINNING TIME: ") .. bestTimeComment, 4, 4000) + end + else -- not any kind of new score + ShowMission(loc("RACER"), + loc("TRACK COMPLETED"), + loc("TIME: ") .. (trackTime/1000) ..loc("s") .. "|" .. + loc("WINNING TIME: ") .. bestTimeComment, -amSkip, 4000) + PlaySound(sndHellish) + end + + + -------- + --new + -------- + + if bestTime == trackTime then + --AddCaption("wooooooooooooooooooooooooooooo") + + fastColour = GetClanColor(GetHogClan(CurrentHedgehog)) + + for i = 0, (currCount-1) do + fastX[i] = currX[i] + fastY[i] = currY[i] + end + + fastCount = currCount + fastIndex = 0 + + --currCount = 0 -- is this needed? + + else + currCount = 0 + fastIndex = 0 + end + + +end + +function onNewRound() + + roundNumber = roundNumber + 1 + + totalComment = "" + for i = 0, (TeamsCount-1) do + if teamNameArr[i] ~= " " then -- teamScore[teamClan[i]] + teamComment[i] = teamNameArr[i] .. ": " .. (teamScore[i]/1000) .. loc("s|") + totalComment = totalComment .. teamComment[i] + elseif teamNameArr[i] == " " then + teamComment[i] = "|" + end + end + + ShowMission( loc("RACER"), + loc("STATUS UPDATE"), + loc("Rounds Complete: ") .. roundNumber .. "/" .. roundLimit .. "|" .. " " .. "|" .. + loc("Best Team Times: ") .. "|" .. totalComment, 0, 4000) + + -- end game if its at round limit + if roundNumber >= roundLimit then + for i = 0, (numhhs-1) do + if GetHogClan(hhs[i]) ~= bestClan then + SetEffect(hhs[i], heResurrectable, 0) + SetHealth(hhs[i],0) + end + end + gameOver = true + TurnTimeLeft = 1 + end + +end + +function CheckForNewRound() + + ------------- + ------ new + ------------- + + --[[turnN = turnN + 1 + if gameBegun == false then + if turnN == 2 then + for i = 0, (numhhs-1) do + if hhs[i] ~= nil then + SetEffect(hhs[i], heResurrectable, 0) + SetHealth(hhs[i],0) + end + end + gameOver = true + TurnTimeLeft = 1 + end + else + + + end]] + + --[[if roundBegun == true then + + if RoundHasChanged == true then + roundN = roundN + 1 + RoundHasChanged = false + onNewRound() + end + + if lastRound ~= TotalRounds then -- new round, but not really + + if RoundHasChanged == false then + RoundHasChanged = true + end + + end + + AddCaption("RoundN:" .. roundN .. "; " .. "TR: " .. TotalRounds) + + lastRound = TotalRounds + + end]] + + ------------ + ----- old + ------------ + + if GetHogClan(CurrentHedgehog) == firstClan then + onNewRound() + end + +end + +function DisableTumbler() + currCount = 0 + fastIndex = 0 + TurnTimeLeft = 0 + racerActive = false -- newadd +end + +function HandleGhost() + + -- get the current xy of the racer at this point + currX[currCount] = GetX(CurrentHedgehog) + currY[currCount] = GetY(CurrentHedgehog) + currCount = currCount + 1 + + -- draw a ping of smoke where the fastest player was at this point + if (fastCount ~= 0) and (fastIndex < fastCount) then + + fastIndex = fastIndex + 1 + + tempE = AddVisualGear(fastX[fastIndex], fastY[fastIndex], vgtSmoke, 0, false) + g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE) + SetVisualGearValues(tempE, g1, g2, g3, g4, g5, g6, g7, g8, g9, fastColour ) + + --AddCaption("fC: " .. fastIndex .. " / " .. fastCount) + + else + + --AddCaption("excep fC: " .. fastIndex .. " / " .. fastCount) + + end + + + +end + +function BoomGirder(x,y,rot) + girTime = 1 + if rot < 4 then + AddGear(x, y, gtGrenade, 0, 0, 0, girTime) + elseif rot == 4 then + g = AddGear(x-45, y, gtGrenade, 0, 0, 0, girTime) -- needed? + g = AddGear(x-30, y, gtGrenade, 0, 0, 0, girTime) + g = AddGear(x, y, gtGrenade, 0, 0, 0, girTime) -- needed? + g = AddGear(x+30, y, gtGrenade, 0, 0, 0, girTime) + g = AddGear(x+45, y, gtGrenade, 0, 0, 0, girTime) -- needed? + elseif rot == 5 then ------- diag + g = AddGear(x+45, y+45, gtGrenade, 0, 0, 0, girTime) --n + g = AddGear(x+30, y+30, gtGrenade, 0, 0, 0, girTime) + g = AddGear(x, y, gtGrenade, 0, 0, 0, girTime) -- needed? + g = AddGear(x-30, y-30, gtGrenade, 0, 0, 0, girTime) + g = AddGear(x-45, y-45, gtGrenade, 0, 0, 0, girTime) --n + elseif rot == 6 then + g = AddGear(x, y-45, gtGrenade, 0, 0, 0, girTime) -- needed? + g = AddGear(x, y+30, gtGrenade, 0, 0, 0, girTime) + g = AddGear(x, y, gtGrenade, 0, 0, 0, girTime) -- needed? + g = AddGear(x, y-30, gtGrenade, 0, 0, 0, girTime) + g = AddGear(x, y+45, gtGrenade, 0, 0, 0, girTime) -- needed? + elseif rot == 7 then ------- + g = AddGear(x+45, y-45, gtGrenade, 0, 0, 0, girTime) --n + g = AddGear(x+30, y-30, gtGrenade, 0, 0, 0, girTime) + g = AddGear(x, y, gtGrenade, 0, 0, 0, girTime) -- needed? + g = AddGear(x-30, y+30, gtGrenade, 0, 0, 0, girTime) + g = AddGear(x-45, y+45, gtGrenade, 0, 0, 0, girTime) --n + end +end + +function RemoveGear(gear) + if (isATrackedGear(gear) == true) and (GetGearType(gear) ~= gtHedgehog) then + DeleteGear(gear) + end +end + +function ClearMap() + + runOnGears(RemoveGear) + +end + +function HandleFreshMapCreation() + + -- the boom stage, boom girders, reset ammo, and delete other map objects + if activationStage == 1 then + + + ClearMap() + activationStage = activationStage + 1 + + -- the creation stage, place girders and needed gears, grant ammo + elseif activationStage == 2 then + + -- these are from onParameters() + if mapID == "0" then + --AddCaption("don't load any map") + elseif mapID == "1" then + + --testmap1 + ------ GIRDER LIST ------ + PlaceSprite(306, 530, sprAmGirder, 7, lfNormal) + PlaceSprite(451, 474, sprAmGirder, 4, lfNormal) + PlaceSprite(595, 531, sprAmGirder, 5, lfNormal) + PlaceSprite(245, 679, sprAmGirder, 6, lfNormal) + PlaceSprite(305, 822, sprAmGirder, 5, lfNormal) + PlaceSprite(449, 887, sprAmGirder, 4, lfNormal) + PlaceSprite(593, 825, sprAmGirder, 7, lfNormal) + PlaceSprite(657, 681, sprAmGirder, 6, lfNormal) + PlaceSprite(1063, 682, sprAmGirder, 6, lfNormal) + PlaceSprite(1121, 532, sprAmGirder, 7, lfNormal) + PlaceSprite(1266, 476, sprAmGirder, 4, lfNormal) + PlaceSprite(1411, 535, sprAmGirder, 5, lfNormal) + PlaceSprite(1472, 684, sprAmGirder, 6, lfNormal) + PlaceSprite(1415, 828, sprAmGirder, 7, lfNormal) + PlaceSprite(1271, 892, sprAmGirder, 4, lfNormal) + PlaceSprite(1126, 827, sprAmGirder, 5, lfNormal) + PlaceSprite(841, 1079, sprAmGirder, 4, lfNormal) + PlaceSprite(709, 1153, sprAmGirder, 7, lfNormal) + PlaceSprite(975, 1154, sprAmGirder, 5, lfNormal) + PlaceSprite(653, 1265, sprAmGirder, 2, lfNormal) + PlaceSprite(1021, 1266, sprAmGirder, 2, lfNormal) + PlaceSprite(713, 1369, sprAmGirder, 5, lfNormal) + PlaceSprite(960, 1371, sprAmGirder, 7, lfNormal) + PlaceSprite(835, 1454, sprAmGirder, 4, lfNormal) + PlaceSprite(185, 1617, sprAmGirder, 2, lfNormal) + PlaceSprite(1317, 1399, sprAmGirder, 2, lfNormal) + PlaceSprite(1711, 1811, sprAmGirder, 2, lfNormal) + PlaceSprite(2087, 1424, sprAmGirder, 2, lfNormal) + PlaceSprite(2373, 1804, sprAmGirder, 2, lfNormal) + PlaceSprite(2646, 1434, sprAmGirder, 2, lfNormal) + PlaceSprite(1876, 667, sprAmGirder, 6, lfNormal) + PlaceSprite(1934, 517, sprAmGirder, 7, lfNormal) + PlaceSprite(2079, 461, sprAmGirder, 4, lfNormal) + PlaceSprite(2224, 519, sprAmGirder, 5, lfNormal) + PlaceSprite(1935, 810, sprAmGirder, 5, lfNormal) + PlaceSprite(2080, 875, sprAmGirder, 4, lfNormal) + PlaceSprite(2224, 811, sprAmGirder, 7, lfNormal) + PlaceSprite(2370, 582, sprAmGirder, 4, lfNormal) + PlaceSprite(2370, 759, sprAmGirder, 4, lfNormal) + PlaceSprite(2530, 582, sprAmGirder, 4, lfNormal) + PlaceSprite(2690, 582, sprAmGirder, 4, lfNormal) + PlaceSprite(2530, 759, sprAmGirder, 4, lfNormal) + PlaceSprite(2690, 759, sprAmGirder, 4, lfNormal) + PlaceSprite(2836, 634, sprAmGirder, 5, lfNormal) + PlaceSprite(2835, 822, sprAmGirder, 5, lfNormal) + PlaceSprite(2951, 751, sprAmGirder, 5, lfNormal) + PlaceSprite(2950, 939, sprAmGirder, 5, lfNormal) + PlaceSprite(2964, 1054, sprAmGirder, 7, lfNormal) + PlaceSprite(2978, 1172, sprAmGirder, 5, lfNormal) + PlaceSprite(3095, 1185, sprAmGirder, 7, lfNormal) + PlaceSprite(3211, 1069, sprAmGirder, 7, lfNormal) + PlaceSprite(3038, 843, sprAmGirder, 1, lfNormal) + PlaceSprite(3126, 825, sprAmGirder, 7, lfNormal) + PlaceSprite(3271, 768, sprAmGirder, 4, lfNormal) + PlaceSprite(3357, 1014, sprAmGirder, 4, lfNormal) + PlaceSprite(3416, 826, sprAmGirder, 5, lfNormal) + PlaceSprite(3454, 969, sprAmGirder, 6, lfNormal) + PlaceSprite(3439, 369, sprAmGirder, 6, lfNormal) + PlaceSprite(3500, 220, sprAmGirder, 7, lfNormal) + PlaceSprite(3502, 513, sprAmGirder, 5, lfNormal) + PlaceSprite(3646, 162, sprAmGirder, 4, lfNormal) + PlaceSprite(3791, 224, sprAmGirder, 5, lfNormal) + PlaceSprite(3851, 374, sprAmGirder, 6, lfNormal) + PlaceSprite(3792, 518, sprAmGirder, 7, lfNormal) + PlaceSprite(3994, 1731, sprAmGirder, 7, lfNormal) + PlaceSprite(3877, 1848, sprAmGirder, 7, lfNormal) + PlaceSprite(3789, 1942, sprAmGirder, 3, lfNormal) + PlaceSprite(3986, 1929, sprAmGirder, 2, lfNormal) + PlaceSprite(2837, 1937, sprAmGirder, 4, lfNormal) + PlaceSprite(2997, 1938, sprAmGirder, 4, lfNormal) + PlaceSprite(3157, 1938, sprAmGirder, 4, lfNormal) + PlaceSprite(1152, 1844, sprAmGirder, 4, lfNormal) + PlaceSprite(1299, 1898, sprAmGirder, 5, lfNormal) + PlaceSprite(1005, 1900, sprAmGirder, 7, lfNormal) + PlaceSprite(3578, 575, sprAmGirder, 6, lfNormal) + PlaceSprite(3714, 576, sprAmGirder, 6, lfNormal) + PlaceSprite(3579, 740, sprAmGirder, 6, lfNormal) + PlaceSprite(3714, 741, sprAmGirder, 6, lfNormal) + PlaceSprite(3580, 903, sprAmGirder, 6, lfNormal) + PlaceSprite(3715, 904, sprAmGirder, 6, lfNormal) + PlaceSprite(3552, 452, sprAmGirder, 1, lfNormal) + PlaceSprite(3528, 370, sprAmGirder, 2, lfNormal) + PlaceSprite(3568, 297, sprAmGirder, 3, lfNormal) + PlaceSprite(3736, 455, sprAmGirder, 3, lfNormal) + PlaceSprite(3757, 378, sprAmGirder, 2, lfNormal) + PlaceSprite(3725, 299, sprAmGirder, 1, lfNormal) + PlaceSprite(3646, 261, sprAmGirder, 0, lfNormal) + PlaceSprite(3648, 997, sprAmGirder, 4, lfNormal) + PlaceSprite(3649, 1275, sprAmGirder, 2, lfNormal) + PlaceSprite(3514, 1750, sprAmGirder, 0, lfNormal) + + ------ RUBBER BAND LIST ------ + + ------ LAND SPRITE LIST ------ + + ------ HEALTH CRATE LIST ------ + + ------ AMMO CRATE LIST ------ + tempG = SpawnAmmoCrate(1707, 1755, amBazooka) + tempG = SpawnAmmoCrate(3983, 1873, amBazooka) + tempG = SpawnAmmoCrate(184, 1561, amBazooka) + tempG = SpawnAmmoCrate(2644, 1378, amBazooka) + tempG = SpawnAmmoCrate(2914, 865, amBazooka) + + ------ MINE LIST ------ + SetTimer(AddGear(2340, 580, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2399, 580, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2448, 580, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2517, 579, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2575, 581, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2647, 582, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2720, 582, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2760, 581, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2331, 757, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2409, 758, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2477, 758, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2545, 759, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2613, 760, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2679, 758, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2744, 757, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2813, 610, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2855, 650, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2887, 686, gtMine, 0, 0, 0, 0), 1) + + elseif mapID == "2" then + + -- land flags test map + ------ GIRDER LIST ------ + PlaceSprite(335, 622, sprAmGirder, 16,16384) + PlaceSprite(474, 569, sprAmGirder, 13,16384) + PlaceSprite(343, 748, sprAmGirder, 14,16384) + PlaceSprite(466, 756, sprAmGirder, 16,16384) + PlaceSprite(609, 702, sprAmGirder, 13,16384) + PlaceSprite(635, 570, sprAmGirder, 13,16384) + PlaceSprite(770, 702, sprAmGirder, 13,16384) + PlaceSprite(960, 730, sprAmGirder, 18,2048) + PlaceSprite(1061, 608, sprAmGirder, 16,16384) + PlaceSprite(1207, 552, sprAmGirder, 13,16384) + PlaceSprite(1205, 409, sprAmGirder, 13,16384) + PlaceSprite(2312, 637, sprAmGirder, 6,0) + PlaceSprite(2312, 472, sprAmGirder, 6,0) + PlaceSprite(2311, 308, sprAmGirder, 6,0) + PlaceSprite(2292, 155, sprAmGirder, 6,0) + PlaceSprite(727, 611, sprAmGirder, 6,0) + PlaceSprite(1298, 480, sprAmGirder, 6,0) + + ------ RUBBER BAND LIST ------ + PlaceSprite(1411, 625, sprAmRubber, 1, lfBouncy) + PlaceSprite(1525, 739, sprAmRubber, 1, lfBouncy) + PlaceSprite(1638, 852, sprAmRubber, 1, lfBouncy) + PlaceSprite(1754, 963, sprAmRubber, 1, lfBouncy) + PlaceSprite(1870, 1076, sprAmRubber, 1, lfBouncy) + PlaceSprite(2013, 1131, sprAmRubber, 0, lfBouncy) + PlaceSprite(2159, 1070, sprAmRubber, 3, lfBouncy) + PlaceSprite(2268, 952, sprAmRubber, 3, lfBouncy) + PlaceSprite(2315, 802, sprAmRubber, 2, lfBouncy) + + ------ AMMO CRATE LIST ------ + tempG = SpawnAmmoCrate(472, 711, amBazooka) + + tempG = SpawnUtilityCrate(540, 660, amParachute) + + tempG = SpawnAmmoCrate(1155, 528, amBazooka) + + ------ UTILITY CRATE LIST ------ + tempG = SpawnUtilityCrate(2006, 1102, amRope) + + else + + + + -- first test epic multi map + ------ GIRDER LIST ------ + PlaceSprite(430, 1871, sprAmGirder, 2, lfNormal) + PlaceSprite(1249, 1914, sprAmGirder, 4, lfNormal) + PlaceSprite(1394, 1849, sprAmGirder, 7, lfNormal) + PlaceSprite(1522, 1848, sprAmGirder, 5, lfNormal) + PlaceSprite(1578, 1959, sprAmGirder, 2, lfNormal) + PlaceSprite(1545, 2011, sprAmGirder, 0, lfNormal) + PlaceSprite(430, 1749, sprAmGirder, 6, lfNormal) + PlaceSprite(430, 1589, sprAmGirder, 6, lfNormal) + PlaceSprite(358, 1499, sprAmGirder, 4, lfNormal) + PlaceSprite(198, 1499, sprAmGirder, 4, lfNormal) + PlaceSprite(72, 1571, sprAmGirder, 7, lfNormal) + PlaceSprite(339, 1618, sprAmGirder, 4, lfNormal) + PlaceSprite(520, 1499, sprAmGirder, 4, lfNormal) + PlaceSprite(680, 1499, sprAmGirder, 4, lfNormal) + PlaceSprite(839, 1499, sprAmGirder, 4, lfNormal) + PlaceSprite(1000, 1499, sprAmGirder, 4, lfNormal) + PlaceSprite(1404, 1730, sprAmGirder, 5, lfNormal) + PlaceSprite(1288, 1613, sprAmGirder, 5, lfNormal) + PlaceSprite(1200, 1529, sprAmGirder, 1, lfNormal) + PlaceSprite(1125, 1495, sprAmGirder, 0, lfNormal) + PlaceSprite(1667, 2011, sprAmGirder, 4, lfNormal) + PlaceSprite(1812, 1951, sprAmGirder, 7, lfNormal) + PlaceSprite(1964, 2024, sprAmGirder, 0, lfNormal) + PlaceSprite(1957, 1892, sprAmGirder, 4, lfNormal) + PlaceSprite(2103, 1949, sprAmGirder, 5, lfNormal) + PlaceSprite(2242, 2017, sprAmGirder, 4, lfNormal) + PlaceSprite(2404, 2017, sprAmGirder, 4, lfNormal) + PlaceSprite(2548, 1955, sprAmGirder, 7, lfNormal) + PlaceSprite(2635, 1871, sprAmGirder, 3, lfNormal) + PlaceSprite(2749, 1836, sprAmGirder, 4, lfNormal) + PlaceSprite(2751, 1999, sprAmGirder, 2, lfNormal) + PlaceSprite(2749, 1947, sprAmGirder, 0, lfNormal) + PlaceSprite(2865, 1870, sprAmGirder, 1, lfNormal) + PlaceSprite(2954, 1954, sprAmGirder, 5, lfNormal) + PlaceSprite(3061, 2017, sprAmGirder, 0, lfNormal) + PlaceSprite(3137, 1984, sprAmGirder, 3, lfNormal) + PlaceSprite(3169, 1864, sprAmGirder, 6, lfNormal) + PlaceSprite(3169, 1702, sprAmGirder, 6, lfNormal) + PlaceSprite(3170, 1540, sprAmGirder, 6, lfNormal) + PlaceSprite(3170, 1418, sprAmGirder, 2, lfNormal) + PlaceSprite(3138, 1339, sprAmGirder, 1, lfNormal) + PlaceSprite(3107, 1260, sprAmGirder, 2, lfNormal) + PlaceSprite(3153, 1194, sprAmGirder, 3, lfNormal) + PlaceSprite(3230, 1163, sprAmGirder, 0, lfNormal) + PlaceSprite(3305, 1201, sprAmGirder, 1, lfNormal) + PlaceSprite(3334, 1277, sprAmGirder, 2, lfNormal) + PlaceSprite(3227, 1540, sprAmGirder, 6, lfNormal) + PlaceSprite(3228, 1419, sprAmGirder, 2, lfNormal) + PlaceSprite(3334, 1358, sprAmGirder, 2, lfNormal) + PlaceSprite(3280, 1387, sprAmGirder, 0, lfNormal) + PlaceSprite(3227, 1702, sprAmGirder, 6, lfNormal) + PlaceSprite(3227, 1864, sprAmGirder, 6, lfNormal) + PlaceSprite(3253, 1981, sprAmGirder, 1, lfNormal) + PlaceSprite(3366, 2017, sprAmGirder, 4, lfNormal) + PlaceSprite(3528, 2018, sprAmGirder, 4, lfNormal) + PlaceSprite(3689, 2018, sprAmGirder, 4, lfNormal) + PlaceSprite(246, 1262, sprAmGirder, 4, lfNormal) + PlaceSprite(407, 1262, sprAmGirder, 4, lfNormal) + PlaceSprite(568, 1262, sprAmGirder, 4, lfNormal) + PlaceSprite(731, 1262, sprAmGirder, 4, lfNormal) + PlaceSprite(894, 1261, sprAmGirder, 4, lfNormal) + PlaceSprite(1056, 1261, sprAmGirder, 4, lfNormal) + PlaceSprite(1179, 1262, sprAmGirder, 0, lfNormal) + PlaceSprite(1288, 1314, sprAmGirder, 5, lfNormal) + PlaceSprite(1406, 1433, sprAmGirder, 5, lfNormal) + PlaceSprite(1525, 1549, sprAmGirder, 5, lfNormal) + PlaceSprite(1642, 1666, sprAmGirder, 5, lfNormal) + PlaceSprite(1749, 1728, sprAmGirder, 0, lfNormal) + PlaceSprite(1956, 1802, sprAmGirder, 6, lfNormal) + PlaceSprite(1956, 1640, sprAmGirder, 6, lfNormal) + PlaceSprite(1782, 1638, sprAmGirder, 6, lfNormal) + PlaceSprite(1835, 1487, sprAmGirder, 7, lfNormal) + PlaceSprite(1942, 1430, sprAmGirder, 0, lfNormal) + PlaceSprite(2051, 1486, sprAmGirder, 5, lfNormal) + PlaceSprite(2109, 1639, sprAmGirder, 6, lfNormal) + PlaceSprite(2177, 1778, sprAmGirder, 5, lfNormal) + PlaceSprite(2323, 1840, sprAmGirder, 4, lfNormal) + PlaceSprite(49, 1029, sprAmGirder, 0, lfNormal) + PlaceSprite(499, 1172, sprAmGirder, 6, lfNormal) + PlaceSprite(527, 1054, sprAmGirder, 3, lfNormal) + PlaceSprite(604, 1026, sprAmGirder, 0, lfNormal) + PlaceSprite(680, 1056, sprAmGirder, 1, lfNormal) + PlaceSprite(719, 1168, sprAmGirder, 6, lfNormal) + PlaceSprite(89, 728, sprAmGirder, 4, lfNormal) + PlaceSprite(251, 728, sprAmGirder, 4, lfNormal) + PlaceSprite(412, 728, sprAmGirder, 4, lfNormal) + PlaceSprite(572, 728, sprAmGirder, 4, lfNormal) + PlaceSprite(733, 728, sprAmGirder, 4, lfNormal) + PlaceSprite(894, 728, sprAmGirder, 4, lfNormal) + PlaceSprite(1016, 728, sprAmGirder, 0, lfNormal) + PlaceSprite(1067, 799, sprAmGirder, 6, lfNormal) + PlaceSprite(1139, 891, sprAmGirder, 4, lfNormal) + PlaceSprite(1067, 1171, sprAmGirder, 6, lfNormal) + PlaceSprite(1067, 1049, sprAmGirder, 2, lfNormal) + PlaceSprite(1136, 999, sprAmGirder, 4, lfNormal) + PlaceSprite(1005, 854, sprAmGirder, 2, lfNormal) + PlaceSprite(972, 803, sprAmGirder, 0, lfNormal) + PlaceSprite(920, 780, sprAmGirder, 2, lfNormal) + PlaceSprite(891, 1206, sprAmGirder, 2, lfNormal) + PlaceSprite(887, 1150, sprAmGirder, 0, lfNormal) + PlaceSprite(3018, 1311, sprAmGirder, 4, lfNormal) + PlaceSprite(2871, 1369, sprAmGirder, 7, lfNormal) + PlaceSprite(2809, 1523, sprAmGirder, 6, lfNormal) + PlaceSprite(2809, 1647, sprAmGirder, 2, lfNormal) + PlaceSprite(2469, 1777, sprAmGirder, 7, lfNormal) + PlaceSprite(2612, 1715, sprAmGirder, 4, lfNormal) + PlaceSprite(2809, 1702, sprAmGirder, 0, lfNormal) + PlaceSprite(2727, 1694, sprAmGirder, 0, lfNormal) + + PlaceSprite(3334, 1481, sprAmGirder, 6, lfNormal) + PlaceSprite(3334, 1643, sprAmGirder, 6, lfNormal) + PlaceSprite(3334, 1804, sprAmGirder, 6, lfNormal) + PlaceSprite(3403, 1940, sprAmGirder, 5, lfNormal) + PlaceSprite(1120, 944, sprAmGirder, 2, lfNormal) + PlaceSprite(1163, 945, sprAmGirder, 2, lfNormal) + PlaceSprite(1141, 781, sprAmGirder, 5, lfNormal) + PlaceSprite(81, 629, sprAmGirder, 1, lfNormal) + PlaceSprite(102, 498, sprAmGirder, 3, lfNormal) + PlaceSprite(81, 373, sprAmGirder, 1, lfNormal) + PlaceSprite(179, 453, sprAmGirder, 6, lfNormal) + PlaceSprite(100, 260, sprAmGirder, 3, lfNormal) + PlaceSprite(179, 330, sprAmGirder, 2, lfNormal) + PlaceSprite(249, 544, sprAmGirder, 4, lfNormal) + PlaceSprite(410, 545, sprAmGirder, 4, lfNormal) + PlaceSprite(571, 543, sprAmGirder, 4, lfNormal) + PlaceSprite(731, 543, sprAmGirder, 4, lfNormal) + PlaceSprite(891, 544, sprAmGirder, 4, lfNormal) + PlaceSprite(1014, 544, sprAmGirder, 0, lfNormal) + PlaceSprite(1779, 1321, sprAmGirder, 6, lfNormal) + PlaceSprite(1779, 1159, sprAmGirder, 6, lfNormal) + PlaceSprite(1779, 997, sprAmGirder, 6, lfNormal) + PlaceSprite(1779, 836, sprAmGirder, 6, lfNormal) + PlaceSprite(1722, 684, sprAmGirder, 5, lfNormal) + PlaceSprite(1137, 545, sprAmGirder, 4, lfNormal) + PlaceSprite(1298, 545, sprAmGirder, 4, lfNormal) + PlaceSprite(1460, 546, sprAmGirder, 4, lfNormal) + PlaceSprite(1608, 600, sprAmGirder, 5, lfNormal) + PlaceSprite(1508, 1005, sprAmGirder, 4, lfNormal) + PlaceSprite(160, 246, sprAmGirder, 1, lfNormal) + PlaceSprite(1821, 1356, sprAmGirder, 3, lfNormal) + PlaceSprite(1938, 1323, sprAmGirder, 4, lfNormal) + PlaceSprite(2086, 1381, sprAmGirder, 5, lfNormal) + PlaceSprite(4004, 2018, sprAmGirder, 4, lfNormal) + PlaceSprite(3934, 1926, sprAmGirder, 6, lfNormal) + PlaceSprite(3965, 1835, sprAmGirder, 0, lfNormal) + PlaceSprite(4015, 1763, sprAmGirder, 6, lfNormal) + PlaceSprite(4015, 1603, sprAmGirder, 6, lfNormal) + PlaceSprite(4015, 1442, sprAmGirder, 6, lfNormal) + PlaceSprite(4015, 1280, sprAmGirder, 6, lfNormal) + PlaceSprite(4014, 1118, sprAmGirder, 6, lfNormal) + PlaceSprite(4014, 956, sprAmGirder, 6, lfNormal) + PlaceSprite(4014, 793, sprAmGirder, 6, lfNormal) + PlaceSprite(4014, 632, sprAmGirder, 6, lfNormal) + PlaceSprite(4014, 469, sprAmGirder, 6, lfNormal) + PlaceSprite(3981, 351, sprAmGirder, 1, lfNormal) + PlaceSprite(3985, 204, sprAmGirder, 3, lfNormal) + PlaceSprite(4045, 156, sprAmGirder, 0, lfNormal) + PlaceSprite(3667, 344, sprAmGirder, 0, lfNormal) + PlaceSprite(4016, 1925, sprAmGirder, 6, lfNormal) + PlaceSprite(3998, 1926, sprAmGirder, 6, lfNormal) + PlaceSprite(3980, 1925, sprAmGirder, 6, lfNormal) + PlaceSprite(3957, 1926, sprAmGirder, 6, lfNormal) + PlaceSprite(3843, 1832, sprAmGirder, 4, lfNormal) + PlaceSprite(3682, 1832, sprAmGirder, 4, lfNormal) + PlaceSprite(3561, 1833, sprAmGirder, 0, lfNormal) + PlaceSprite(3484, 1796, sprAmGirder, 1, lfNormal) + PlaceSprite(3455, 1675, sprAmGirder, 6, lfNormal) + PlaceSprite(3455, 1513, sprAmGirder, 6, lfNormal) + PlaceSprite(3455, 1351, sprAmGirder, 6, lfNormal) + PlaceSprite(1601, 476, sprAmGirder, 7, lfNormal) + PlaceSprite(1706, 421, sprAmGirder, 0, lfNormal) + PlaceSprite(1888, 366, sprAmGirder, 6, lfNormal) + + PlaceSprite(3997, 1743, sprAmGirder, 6, lfNormal) + PlaceSprite(3979, 1742, sprAmGirder, 6, lfNormal) + PlaceSprite(3962, 1741, sprAmGirder, 6, lfNormal) + PlaceSprite(3943, 1741, sprAmGirder, 6, lfNormal) + PlaceSprite(2199, 393, sprAmGirder, 7, lfNormal) + PlaceSprite(2304, 337, sprAmGirder, 0, lfNormal) + PlaceSprite(2409, 392, sprAmGirder, 5, lfNormal) + PlaceSprite(2470, 502, sprAmGirder, 2, lfNormal) + PlaceSprite(2412, 606, sprAmGirder, 7, lfNormal) + PlaceSprite(2308, 673, sprAmGirder, 0, lfNormal) + PlaceSprite(2202, 612, sprAmGirder, 5, lfNormal) + PlaceSprite(2138, 507, sprAmGirder, 2, lfNormal) + PlaceSprite(2739, 378, sprAmGirder, 7, lfNormal) + PlaceSprite(2847, 322, sprAmGirder, 0, lfNormal) + PlaceSprite(2953, 378, sprAmGirder, 5, lfNormal) + PlaceSprite(2680, 489, sprAmGirder, 2, lfNormal) + PlaceSprite(3012, 489, sprAmGirder, 2, lfNormal) + PlaceSprite(2736, 594, sprAmGirder, 5, lfNormal) + PlaceSprite(2841, 657, sprAmGirder, 0, lfNormal) + PlaceSprite(2949, 594, sprAmGirder, 7, lfNormal) + PlaceSprite(2448, 837, sprAmGirder, 7, lfNormal) + PlaceSprite(2594, 779, sprAmGirder, 4, lfNormal) + PlaceSprite(2739, 836, sprAmGirder, 5, lfNormal) + PlaceSprite(2390, 950, sprAmGirder, 2, lfNormal) + PlaceSprite(2789, 950, sprAmGirder, 2, lfNormal) + PlaceSprite(2593, 904, sprAmGirder, 4, lfNormal) + PlaceSprite(2727, 1056, sprAmGirder, 7, lfNormal) + PlaceSprite(2452, 1058, sprAmGirder, 5, lfNormal) + PlaceSprite(2510, 1215, sprAmGirder, 6, lfNormal) + PlaceSprite(2663, 1208, sprAmGirder, 6, lfNormal) + PlaceSprite(2510, 1378, sprAmGirder, 6, lfNormal) + PlaceSprite(2664, 1369, sprAmGirder, 6, lfNormal) + PlaceSprite(300, 275, sprAmGirder, 0, lfNormal) + PlaceSprite(439, 274, sprAmGirder, 0, lfNormal) + PlaceSprite(628, 273, sprAmGirder, 4, lfNormal) + PlaceSprite(811, 271, sprAmGirder, 0, lfNormal) + PlaceSprite(737, 373, sprAmGirder, 4, lfNormal) + PlaceSprite(934, 440, sprAmGirder, 0, lfNormal) + PlaceSprite(1075, 439, sprAmGirder, 0, lfNormal) + PlaceSprite(1209, 438, sprAmGirder, 0, lfNormal) + PlaceSprite(1383, 439, sprAmGirder, 4, lfNormal) + --PlaceSprite(2159, 1525, sprAmGirder, 6, lfNormal) + PlaceSprite(3547, 344, sprAmGirder, 4, lfNormal) + PlaceSprite(3584, 254, sprAmGirder, 6, lfNormal) + PlaceSprite(3508, 132, sprAmGirder, 5, lfNormal) + PlaceSprite(3335, 1117, sprAmGirder, 6, lfNormal) + PlaceSprite(3335, 956, sprAmGirder, 6, lfNormal) + PlaceSprite(3335, 795, sprAmGirder, 6, lfNormal) + PlaceSprite(3335, 634, sprAmGirder, 6, lfNormal) + PlaceSprite(3335, 513, sprAmGirder, 2, lfNormal) + PlaceSprite(3401, 404, sprAmGirder, 7, lfNormal) + PlaceSprite(3455, 1190, sprAmGirder, 6, lfNormal) + PlaceSprite(3455, 1029, sprAmGirder, 6, lfNormal) + PlaceSprite(3455, 868, sprAmGirder, 6, lfNormal) + PlaceSprite(3455, 705, sprAmGirder, 6, lfNormal) + PlaceSprite(3455, 582, sprAmGirder, 2, lfNormal) + PlaceSprite(3485, 503, sprAmGirder, 3, lfNormal) + PlaceSprite(3601, 475, sprAmGirder, 4, lfNormal) + PlaceSprite(3719, 444, sprAmGirder, 3, lfNormal) + PlaceSprite(3094, 828, sprAmGirder, 5, lfNormal) + PlaceSprite(2064, 947, sprAmGirder, 7, lfNormal) + PlaceSprite(1826, 512, sprAmGirder, 7, lfNormal) + + PlaceSprite(3420, 49, sprAmGirder, 1, lfNormal) + PlaceSprite(410, 682, sprAmGirder, 3, lfNormal) + PlaceSprite(528, 653, sprAmGirder, 4, lfNormal) + PlaceSprite(688, 653, sprAmGirder, 4, lfNormal) + PlaceSprite(805, 684, sprAmGirder, 1, lfNormal) + PlaceSprite(528, 672, sprAmGirder, 4, lfNormal) + PlaceSprite(688, 672, sprAmGirder, 4, lfNormal) + PlaceSprite(500, 696, sprAmGirder, 4, lfNormal) + PlaceSprite(701, 696, sprAmGirder, 4, lfNormal) + + ------ AMMO CRATE LIST ------ + tempG = SpawnAmmoCrate(889, 1126, amBaseballBat) + + tempG = SpawnAmmoCrate(1211, 975, amSineGun) + tempG = SpawnAmmoCrate(3619, 451, amFirePunch) + + ------ UTILITY CRATE LIST ------ + tempG = SpawnUtilityCrate(304, 1594, amRope) + tempG = SpawnUtilityCrate(1538, 1987, amJetpack) + tempG = SpawnUtilityCrate(1958, 2000, amExtraTime) + tempG = SpawnUtilityCrate(2744, 1923, amJetpack) + tempG = SpawnUtilityCrate(3283, 1363, amParachute) + tempG = SpawnUtilityCrate(2749, 1812, amRope) + tempG = SpawnUtilityCrate(970, 779, amJetpack) + + tempG = SpawnUtilityCrate(3284, 1332, amExtraTime) + tempG = SpawnUtilityCrate(1082, 975, amBlowTorch) + tempG = SpawnUtilityCrate(1547, 981, amJetpack) + tempG = SpawnUtilityCrate(1707, 397, amRope) + tempG = SpawnUtilityCrate(2309, 649, amExtraTime) + tempG = SpawnUtilityCrate(1116, 867, amExtraTime) + + ------ AMMO CRATE LIST ------ + tempG = SpawnAmmoCrate(2559, 880, amBazooka) + tempG = SpawnAmmoCrate(2630, 880, amBazooka) + tempG = SpawnAmmoCrate(1951, 1406, amGrenade) + + ------ UTILITY CRATE LIST ------ + tempG = SpawnUtilityCrate(3536, 320, amBlowTorch) + tempG = SpawnUtilityCrate(3582, 1994, amJetpack) + tempG = SpawnUtilityCrate(682, 349, amExtraTime) + tempG = SpawnUtilityCrate(2842, 633, amExtraTime) + + ------ BARREL LIST ------ + SetHealth(AddGear(506, 1034, gtExplosives, 0, 0, 0, 0), 1) + SetHealth(AddGear(556, 1002, gtExplosives, 0, 0, 0, 0), 1) + SetHealth(AddGear(615, 1002, gtExplosives, 0, 0, 0, 0), 1) + SetHealth(AddGear(676, 1010, gtExplosives, 0, 0, 0, 0), 1) + SetHealth(AddGear(716, 1050, gtExplosives, 0, 0, 0, 0), 1) + SetHealth(AddGear(67, 1005, gtExplosives, 0, 0, 0, 0), 50) + + ------ MINE LIST ------ + SetTimer(AddGear(1187, 1908, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1235, 1908, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1283, 1908, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1323, 1908, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1361, 1875, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1399, 1837, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1426, 1810, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(234, 1493, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(308, 1493, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(377, 1493, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(460, 1493, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(550, 1493, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(633, 1493, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(722, 1493, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(795, 1493, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(881, 1493, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(975, 1493, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1060, 1493, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1127, 1489, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1207, 1526, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1261, 1580, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1315, 1634, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1372, 1692, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1416, 1736, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1465, 1792, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1518, 1838, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1566, 1886, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1623, 2005, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1686, 2005, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1799, 1957, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1839, 1917, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1902, 1886, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1933, 1886, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2076, 1916, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2138, 1978, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2221, 2011, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2305, 2011, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2390, 2011, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2578, 1918, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(2494, 2002, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1758, 1728, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1683, 1707, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1635, 1657, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1572, 1596, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1517, 1542, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1447, 1477, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1401, 1432, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1338, 1365, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1290, 1310, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1230, 1266, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1149, 1260, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1054, 1257, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(978, 1257, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(895, 1258, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(819, 1257, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(753, 1258, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(671, 1260, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(599, 1260, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(526, 1259, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(466, 1259, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(408, 1261, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(336, 1260, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(290, 1259, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(218, 1260, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1777, 1263, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1776, 1198, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1778, 1141, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1781, 1078, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1778, 1027, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1778, 985, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1779, 925, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(1777, 882, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(4052, 2010, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(3965, 226, gtMine, 0, 0, 0, 0), 1) + SetTimer(AddGear(3962, 326, gtMine, 0, 0, 0, 0), 1) + + ------ STICKY MINE LIST ------ + tempG = AddGear(3170, 1907, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3170, 1860, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3169, 1809, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3170, 1761, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3170, 1711, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3172, 1668, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3170, 1624, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3169, 1579, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3171, 1526, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3168, 1469, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3171, 1418, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3227, 1416, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3226, 1465, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3225, 1523, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3224, 1576, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3225, 1624, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3228, 1667, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3228, 1707, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3230, 1757, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3228, 1803, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3229, 1856, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3228, 1910, gtSMine, 0, 0, 0, 0) + tempG = AddGear(258, 534, gtSMine, 0, 0, 0, 0) + tempG = AddGear(329, 534, gtSMine, 0, 0, 0, 0) + tempG = AddGear(410, 535, gtSMine, 0, 0, 0, 0) + tempG = AddGear(482, 535, gtSMine, 0, 0, 0, 0) + tempG = AddGear(565, 533, gtSMine, 0, 0, 0, 0) + tempG = AddGear(670, 533, gtSMine, 0, 0, 0, 0) + tempG = AddGear(763, 533, gtSMine, 0, 0, 0, 0) + tempG = AddGear(858, 534, gtSMine, 0, 0, 0, 0) + tempG = AddGear(917, 534, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1012, 534, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1147, 535, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1102, 535, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1220, 535, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1293, 535, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1368, 535, gtSMine, 0, 0, 0, 0) + tempG = AddGear(1440, 536, gtSMine, 0, 0, 0, 0) + tempG = AddGear(223, 534, gtSMine, 0, 0, 0, 0) + tempG = AddGear(814, 534, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3909, 1822, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3867, 1822, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3824, 1822, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3784, 1822, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3732, 1822, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3682, 1822, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3627, 1822, gtSMine, 0, 0, 0, 0) + tempG = AddGear(3557, 1823, gtSMine, 0, 0, 0, 0) + end + + + activationStage = 200 + + --runOnHogs(RestoreHog) + + end + +end + +function TryRepositionHogs() + + if MapHasBorder() == true then + + for i = 0, (numhhs-1) do + if hhs[i] ~= nil then + SetGearPosition(hhs[i],GetX(hhs[i]), TopY-10) + end + end + + end + +end + +---------------------------------- +-- GAME METHODS / EVENT HANDLERS +---------------------------------- + +function onParameters() + parseParams() + mapID = params["m"] +end + +PointsBuffer = '' -- A string to accumulate points in + +function AddPoint(x, y, width, erase) + PointsBuffer = PointsBuffer .. string.char(band(x,0xff00) / 256 , band(x,0xff) , band(y,0xff00) / 256 , band(y,0xff)) + if width then + width = bor(width,0x80) + if erase then + width = bor(width,0x40) + end + PointsBuffer = PointsBuffer .. string.char(width) + else + PointsBuffer = PointsBuffer .. string.char(0) + end + if #PointsBuffer > 245 then + ParseCommand('draw '..PointsBuffer) + PointsBuffer = '' + end +end + +function FlushPoints() + if #PointsBuffer > 0 then + ParseCommand('draw '..PointsBuffer) + PointsBuffer = '' + end +end + +function onPreviewInit() + onGameInit() +end + +function onGameInit() + + Theme = "Cave" + + MapGen = mgDrawn + TemplateFilter = 0 + + EnableGameFlags(gfInfAttack, gfDisableWind) + DisableGameFlags(gfSolidLand) + CaseFreq = 0 + TurnTime = 90000 + WaterRise = 0 + + for x = 1, 16 do + AddPoint(x*100,100,5) + end + + FlushPoints() + +end + +function limitHogs(gear) + + cnthhs = cnthhs + 1 + if cnthhs > 1 then + DeleteGear(gear) + end + +end + +function onGameStart() + + + trackTeams() + + roundN = 0 + lastRound = TotalRounds + RoundHasChanged = false -- true + + for i = 0, (specialPointsCount-1) do + PlaceWayPoint(specialPointsX[i], specialPointsY[i]) + end + + RebuildTeamInfo() + + for i=0 , TeamsCount - 1 do + cnthhs = 0 + runOnHogsInTeam(limitHogs, teamNameArr[i]) + end + + ShowMission ( + loc("RACER"), + loc("a Hedgewars mini-game"), + + loc("Build a track and race.") .. "|" .. + loc("Round Limit:") .. " " .. roundLimit .. "|" .. + + "", 4, 4000 + ) + + TryRepositionHogs() + +end + +function PlaceWayPoint(x,y) + if not racerActive then + if wpCount == 0 or wpX[wpCount - 1] ~= x or wpY[wpCount - 1] ~= y then + + wpX[wpCount] = x + wpY[wpCount] = y + wpCol[wpCount] = 0xffffffff + wpCirc[wpCount] = AddVisualGear(wpX[wpCount],wpY[wpCount],vgtCircle,0,true) + + SetVisualGearValues(wpCirc[wpCount], wpX[wpCount], wpY[wpCount], 20, 100, 1, 10, 0, wpRad, 5, wpCol[wpCount]) + + wpCount = wpCount + 1 + + AddCaption(loc("Waypoint placed.") .. " " .. loc("Available points remaining: ") .. (wpLimit-wpCount)) + end + end +end + +function onSpecialPoint(x,y,flag) + specialPointsX[specialPointsCount] = x + specialPointsY[specialPointsCount] = y + specialPointsCount = specialPointsCount + 1 +end + + + +function onNewTurn() + + CheckForNewRound() + TryRepositionHogs() + + racerActive = false + + activationStage = 1 + + --AddAmmo(CurrentHedgehog, amBazooka, 100) + --AddAmmo(CurrentHedgehog, amJetpack, 100) + + --ClearMap() + + + trackTime = 0 + + currCount = 0 -- hopefully this solves problem + AddAmmo(CurrentHedgehog, amAirAttack, 0) + gTimer = 0 + + -- Set the waypoints to unactive on new round + for i = 0,(wpCount-1) do + wpActive[i] = false + wpCol[i] = 0xffffffff + SetVisualGearValues(wpCirc[i], wpX[i], wpY[i], 20, 100, 1, 10, 0, wpRad, 5, wpCol[i]) + end + + -- Handle Starting Stage of Game + if (gameOver == false) and (gameBegun == false) then + if wpCount >= 3 then + gameBegun = true + --activationStage = 200 + roundNumber = 0 + firstClan = GetHogClan(CurrentHedgehog) + ShowMission(loc("RACER"), + loc("GAME BEGUN!!!"), + loc("Complete the track as fast as you can!"), 2, 4000) + else + ShowMission(loc("RACER"), + loc("NOT ENOUGH WAYPOINTS"), + loc("Place more waypoints using the 'Air Attack' weapon."), 2, 4000) + AddAmmo(CurrentHedgehog, amAirAttack, 4000) + SetWeapon(amAirAttack) + end + end + + if gameOver == true then + gameBegun = false + racerActive = false -- newadd + end + + AddAmmo(CurrentHedgehog, amTardis, 0) + AddAmmo(CurrentHedgehog, amDrillStrike, 0) + AddAmmo(CurrentHedgehog, amMineStrike, 0) + AddAmmo(CurrentHedgehog, amNapalm, 0) + AddAmmo(CurrentHedgehog, amPiano, 0) + +end + +function onGameTick20() + + + if jet ~= nil then + --SetHealth(jet, 2000) + end + + -- airstrike detected, convert this into a potential waypoint spot + if cGear ~= nil then + x,y = GetGearPosition(cGear) + if x > -9000 then + x,y = GetGearTarget(cGear) + + + if TestRectForObstacle(x-20, y-20, x+20, y+20, true) then + AddCaption(loc("Please place the way-point in the open, within the map boundaries.")) + PlaySound(sndDenied) + elseif (y > WaterLine-50) then + AddCaption(loc("Please place the way-point further from the waterline.")) + PlaySound(sndDenied) + else + PlaceWayPoint(x, y) + if wpCount == wpLimit then + AddCaption(loc("Race complexity limit reached.")) + DisableTumbler() + end + end + else + DeleteGear(cGear) + end + SetGearPosition(cGear, -10000, 0) + end + + + if activationStage < 10 then + HandleFreshMapCreation() + end + + + -- start the player tumbling with a boom once their turn has actually begun + if racerActive == false then + + if (TurnTimeLeft > 0) and (TurnTimeLeft ~= TurnTime) then + + -- if the gamehas started put the player in the middle of the first + --waypoint that was placed + --if activationStage == 200 then + if gameBegun == true then + AddCaption(loc("Good to go!")) + racerActive = true + trackTime = 0 + + + SetGearPosition(CurrentHedgehog, wpX[0], wpY[0]) + --AddGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), gtGrenade, 0, 0, 0, 1) + --SetGearVelocity(CurrentHedgehog,1000000,1000000) + SetGearMessage(CurrentHedgehog,gmLeft) + + + FollowGear(CurrentHedgehog) + + HideMission() + activationStage = 201 + + else + -- still in placement mode + end + + end + + elseif (activationStage == 201) and (TurnTimeLeft > 0) and (TurnTimeLeft ~= TurnTime) then + SetGearMessage(CurrentHedgehog,0) + activationStage = 202 + end + + + + -- has the player started his tumbling spree? + if (CurrentHedgehog ~= nil) then + + --airstrike conversion used to be here + + -- if the RACE has started, show tracktimes and keep tabs on waypoints + if (racerActive == true) and (activationStage == 202) then + + --ghost + if GameTime%40 == 0 then + HandleGhost() + end + + trackTime = trackTime + 20 + + if GameTime%100 == 0 then + + if trackTime%1000 == 0 then + AddCaption((trackTime/1000)..'.0',GetClanColor(GetHogClan(CurrentHedgehog)),capgrpMessage2) + else + AddCaption(trackTime/1000,GetClanColor(GetHogClan(CurrentHedgehog)),capgrpMessage2) + end + + if (CheckWaypoints() == true) then + AdjustScores() + DisableTumbler() + end + + end + + end + + -- if the player has expended his tunbling time, stop him tumbling + if TurnTimeLeft <= 20 then + DisableTumbler() + end + + end + +end + +function onGearResurrect(gear) + + AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false) + + if gear == CurrentHedgehog then + DisableTumbler() + end + +end + +function isATrackedGear(gear) + if (GetGearType(gear) == gtHedgehog) or + (GetGearType(gear) == gtGrenade) or + (GetGearType(gear) == gtTarget) or + (GetGearType(gear) == gtFlame) or + (GetGearType(gear) == gtExplosives) or + (GetGearType(gear) == gtMine) or + (GetGearType(gear) == gtSMine) or + (GetGearType(gear) == gtCase) + then + return(true) + else + return(false) + end +end + +function onGearAdd(gear) + + if isATrackedGear(gear) then + trackGear(gear) + end + + if GetGearType(gear) == gtHedgehog then + hhs[numhhs] = gear + numhhs = numhhs + 1 + SetEffect(gear, heResurrectable, 1) + end + + if GetGearType(gear) == gtAirAttack then + cGear = gear + elseif GetGearType(gear) == gtJetpack then + jet = gear + end + +end + +function onGearDelete(gear) + + if isATrackedGear(gear) then + trackDeletion(gear) + elseif GetGearType(gear) == gtAirAttack then + cGear = nil + elseif GetGearType(gear) == gtJetpack then + jet = nil + end + +end + +function onAttack() + at = GetCurAmmoType() + + usedWeapons[at] = 0 +end + +function onAchievementsDeclaration() + usedWeapons[amSkip] = nil + + usedRope = usedWeapons[amRope] ~= nil + usedPortal = usedWeapons[amPortalGun] ~= nil + usedSaucer = usedWeapons[amJetpack] ~= nil + + usedWeapons[amRope] = nil + usedWeapons[amPortalGun] = nil + usedWeapons[amJetpack] = nil + + usedOther = next(usedWeapons) ~= nil + + if usedOther then -- smth besides skip, rope, portal or saucer used + raceType = "unknown race" + elseif usedRope and not usedPortal and not usedSaucer then + raceType = "rope race" + elseif not usedRope and usedPortal and not usedSaucer then + raceType = "portal race" + elseif not usedRope and not usedPortal and usedSaucer then + raceType = "saucer race" + elseif (usedRope or usedPortal or usedSaucer or usedOther) == false then -- no weapons used at all? + raceType = "no tools race" + else -- at least two of rope, portal and saucer used + raceType = "mixed race" + end + + map = detectMap() + + for i = 0, (numTeams-1) do + if teamScore[i] < 100000 then + DeclareAchievement(raceType, teamNameArr[i], map, teamScore[i]) + end + end +end + + + diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Art/BlueWater.png Binary file share/hedgewars/Data/Themes/Art/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Art/Droplet.png Binary file share/hedgewars/Data/Themes/Art/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Art/LandBackTex.png Binary file share/hedgewars/Data/Themes/Art/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Art/horizont.png Binary file share/hedgewars/Data/Themes/Art/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Art/icon.png Binary file share/hedgewars/Data/Themes/Art/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bamboo/Border.png Binary file share/hedgewars/Data/Themes/Bamboo/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bamboo/Chunk.png Binary file share/hedgewars/Data/Themes/Bamboo/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bamboo/Flake.png Binary file share/hedgewars/Data/Themes/Bamboo/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bamboo/SkyL.png Binary file share/hedgewars/Data/Themes/Bamboo/SkyL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bamboo/horizont.png Binary file share/hedgewars/Data/Themes/Bamboo/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bamboo/icon.png Binary file share/hedgewars/Data/Themes/Bamboo/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bath/Border.png Binary file share/hedgewars/Data/Themes/Bath/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bath/Bubble.png Binary file share/hedgewars/Data/Themes/Bath/Bubble.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bath/Chunk.png Binary file share/hedgewars/Data/Themes/Bath/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bath/Flake.png Binary file share/hedgewars/Data/Themes/Bath/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bath/Sky.png Binary file share/hedgewars/Data/Themes/Bath/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bath/horizont.png Binary file share/hedgewars/Data/Themes/Bath/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bath/horizontL.png Binary file share/hedgewars/Data/Themes/Bath/horizontL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bath/horizontR.png Binary file share/hedgewars/Data/Themes/Bath/horizontR.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Bath/icon.png Binary file share/hedgewars/Data/Themes/Bath/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Blox/Border.png Binary file share/hedgewars/Data/Themes/Blox/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Blox/LandBackTex.png Binary file share/hedgewars/Data/Themes/Blox/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Blox/LandTex.png Binary file share/hedgewars/Data/Themes/Blox/LandTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Blox/horizont.png Binary file share/hedgewars/Data/Themes/Blox/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Blox/tmp.png Binary file share/hedgewars/Data/Themes/Blox/tmp.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Brick/BlueWater.png Binary file share/hedgewars/Data/Themes/Brick/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Brick/Droplet.png Binary file share/hedgewars/Data/Themes/Brick/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Brick/LandBackTex.png Binary file share/hedgewars/Data/Themes/Brick/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Brick/LandTex.png Binary file share/hedgewars/Data/Themes/Brick/LandTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Brick/Sky.png Binary file share/hedgewars/Data/Themes/Brick/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Brick/horizont.png Binary file share/hedgewars/Data/Themes/Brick/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Brick/icon.png Binary file share/hedgewars/Data/Themes/Brick/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Brick/plant5.png Binary file share/hedgewars/Data/Themes/Brick/plant5.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Brick/spray2.png Binary file share/hedgewars/Data/Themes/Brick/spray2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/BlueWater.png Binary file share/hedgewars/Data/Themes/Cake/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/Border.png Binary file share/hedgewars/Data/Themes/Cake/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/Cherry.png Binary file share/hedgewars/Data/Themes/Cake/Cherry.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/Droplet.png Binary file share/hedgewars/Data/Themes/Cake/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/Flake.png Binary file share/hedgewars/Data/Themes/Cake/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/LandBackTex.png Binary file share/hedgewars/Data/Themes/Cake/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/LandTex.png Binary file share/hedgewars/Data/Themes/Cake/LandTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/Sky.png Binary file share/hedgewars/Data/Themes/Cake/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/horizont.png Binary file share/hedgewars/Data/Themes/Cake/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/plant1.png Binary file share/hedgewars/Data/Themes/Cake/plant1.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/plant2.png Binary file share/hedgewars/Data/Themes/Cake/plant2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cake/plant3.png Binary file share/hedgewars/Data/Themes/Cake/plant3.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/Axe.png Binary file share/hedgewars/Data/Themes/Castle/Axe.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/BlueWater.png Binary file share/hedgewars/Data/Themes/Castle/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/Border.png Binary file share/hedgewars/Data/Themes/Castle/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/Chunk.png Binary file share/hedgewars/Data/Themes/Castle/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/Droplet.png Binary file share/hedgewars/Data/Themes/Castle/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/Girder.png Binary file share/hedgewars/Data/Themes/Castle/Girder.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/LandBackTex.png Binary file share/hedgewars/Data/Themes/Castle/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/Shield.png Binary file share/hedgewars/Data/Themes/Castle/Shield.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/Sky.png Binary file share/hedgewars/Data/Themes/Castle/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/SkyL.png Binary file share/hedgewars/Data/Themes/Castle/SkyL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/SkyR.png Binary file share/hedgewars/Data/Themes/Castle/SkyR.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/Spear.png Binary file share/hedgewars/Data/Themes/Castle/Spear.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/Sword.png Binary file share/hedgewars/Data/Themes/Castle/Sword.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/horizont.png Binary file share/hedgewars/Data/Themes/Castle/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Castle/icon.png Binary file share/hedgewars/Data/Themes/Castle/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cave/Girder.png Binary file share/hedgewars/Data/Themes/Cave/Girder.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cave/Sky.png Binary file share/hedgewars/Data/Themes/Cave/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cave/SkyL.png Binary file share/hedgewars/Data/Themes/Cave/SkyL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cave/Stalactite_mask.png Binary file share/hedgewars/Data/Themes/Cave/Stalactite_mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cave/Stalagmite01_mask.png Binary file share/hedgewars/Data/Themes/Cave/Stalagmite01_mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cave/Stalagmite02_mask.png Binary file share/hedgewars/Data/Themes/Cave/Stalagmite02_mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cheese/Border.png Binary file share/hedgewars/Data/Themes/Cheese/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cheese/Chunk.png Binary file share/hedgewars/Data/Themes/Cheese/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cheese/Sky.png Binary file share/hedgewars/Data/Themes/Cheese/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cheese/cheese_mask.png Binary file share/hedgewars/Data/Themes/Cheese/cheese_mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cheese/horizont.png Binary file share/hedgewars/Data/Themes/Cheese/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Cheese/icon.png Binary file share/hedgewars/Data/Themes/Cheese/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Christmas/Border.png Binary file share/hedgewars/Data/Themes/Christmas/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Christmas/Chunk.png Binary file share/hedgewars/Data/Themes/Christmas/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Christmas/Dust.png Binary file share/hedgewars/Data/Themes/Christmas/Dust.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Christmas/Flake.png Binary file share/hedgewars/Data/Themes/Christmas/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Christmas/Sky.png Binary file share/hedgewars/Data/Themes/Christmas/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Christmas/Skytrees.png Binary file share/hedgewars/Data/Themes/Christmas/Skytrees.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Christmas/Snowball.png Binary file share/hedgewars/Data/Themes/Christmas/Snowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Christmas/amSnowball.png Binary file share/hedgewars/Data/Themes/Christmas/amSnowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Christmas/holly.png Binary file share/hedgewars/Data/Themes/Christmas/holly.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Christmas/plant4.png Binary file share/hedgewars/Data/Themes/Christmas/plant4.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/City/Border.png Binary file share/hedgewars/Data/Themes/City/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/City/Chunk.png Binary file share/hedgewars/Data/Themes/City/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/City/Flake.png Binary file share/hedgewars/Data/Themes/City/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/City/LandBackTex.png Binary file share/hedgewars/Data/Themes/City/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/City/icon.png Binary file share/hedgewars/Data/Themes/City/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Compost/BlueWater.png Binary file share/hedgewars/Data/Themes/Compost/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Compost/Border.png Binary file share/hedgewars/Data/Themes/Compost/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Compost/Chunk.png Binary file share/hedgewars/Data/Themes/Compost/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Compost/Droplet.png Binary file share/hedgewars/Data/Themes/Compost/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Compost/Flake.png Binary file share/hedgewars/Data/Themes/Compost/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Compost/Girder.png Binary file share/hedgewars/Data/Themes/Compost/Girder.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Compost/LandBackTex.png Binary file share/hedgewars/Data/Themes/Compost/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Compost/Sky.png Binary file share/hedgewars/Data/Themes/Compost/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Compost/Snowball.png Binary file share/hedgewars/Data/Themes/Compost/Snowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Compost/amSnowball.png Binary file share/hedgewars/Data/Themes/Compost/amSnowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Compost/icon.png Binary file share/hedgewars/Data/Themes/Compost/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/CrazyMission/BlueWater.png Binary file share/hedgewars/Data/Themes/CrazyMission/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/CrazyMission/Droplet.png Binary file share/hedgewars/Data/Themes/CrazyMission/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/CrazyMission/Sky.png Binary file share/hedgewars/Data/Themes/CrazyMission/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/CrazyMission/SkyL.png Binary file share/hedgewars/Data/Themes/CrazyMission/SkyL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Deepspace/BlueWater.png Binary file share/hedgewars/Data/Themes/Deepspace/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Deepspace/Border.png Binary file share/hedgewars/Data/Themes/Deepspace/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Deepspace/Droplet.png Binary file share/hedgewars/Data/Themes/Deepspace/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Deepspace/Flake.png Binary file share/hedgewars/Data/Themes/Deepspace/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Deepspace/Sky.png Binary file share/hedgewars/Data/Themes/Deepspace/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/BlueWater.png Binary file share/hedgewars/Data/Themes/Desert/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/Border.png Binary file share/hedgewars/Data/Themes/Desert/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/Chunk.png Binary file share/hedgewars/Data/Themes/Desert/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/Droplet.png Binary file share/hedgewars/Data/Themes/Desert/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/LandBackTex.png Binary file share/hedgewars/Data/Themes/Desert/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/LandTex.png Binary file share/hedgewars/Data/Themes/Desert/LandTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/Sky.png Binary file share/hedgewars/Data/Themes/Desert/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/buzzard.png Binary file share/hedgewars/Data/Themes/Desert/buzzard.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/cactus.png Binary file share/hedgewars/Data/Themes/Desert/cactus.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/horizont.png Binary file share/hedgewars/Data/Themes/Desert/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/icon.png Binary file share/hedgewars/Data/Themes/Desert/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Desert/rock2.png Binary file share/hedgewars/Data/Themes/Desert/rock2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/EarthRise/Border.png Binary file share/hedgewars/Data/Themes/EarthRise/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/EarthRise/Flake.png Binary file share/hedgewars/Data/Themes/EarthRise/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/EarthRise/LandBackTex.png Binary file share/hedgewars/Data/Themes/EarthRise/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/EarthRise/RockShort.png Binary file share/hedgewars/Data/Themes/EarthRise/RockShort.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/EarthRise/RockShort_mask.png Binary file share/hedgewars/Data/Themes/EarthRise/RockShort_mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/EarthRise/Rock_mask.png Binary file share/hedgewars/Data/Themes/EarthRise/Rock_mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/EarthRise/Sky.png Binary file share/hedgewars/Data/Themes/EarthRise/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/EarthRise/SkyL.png Binary file share/hedgewars/Data/Themes/EarthRise/SkyL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/EarthRise/horizont.png Binary file share/hedgewars/Data/Themes/EarthRise/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/EarthRise/horizontL.png Binary file share/hedgewars/Data/Themes/EarthRise/horizontL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/EarthRise/horizontR.png Binary file share/hedgewars/Data/Themes/EarthRise/horizontR.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Eyes/BlueWater.png Binary file share/hedgewars/Data/Themes/Eyes/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Eyes/Droplet.png Binary file share/hedgewars/Data/Themes/Eyes/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Eyes/Flake.png Binary file share/hedgewars/Data/Themes/Eyes/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Eyes/horizont.png Binary file share/hedgewars/Data/Themes/Eyes/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Freeway/AppleDirt.png Binary file share/hedgewars/Data/Themes/Freeway/AppleDirt.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Freeway/AppleSmall.png Binary file share/hedgewars/Data/Themes/Freeway/AppleSmall.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Freeway/Border.png Binary file share/hedgewars/Data/Themes/Freeway/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Freeway/Chunk.png Binary file share/hedgewars/Data/Themes/Freeway/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Freeway/Clouds.png Binary file share/hedgewars/Data/Themes/Freeway/Clouds.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Freeway/FishDirt.png Binary file share/hedgewars/Data/Themes/Freeway/FishDirt.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Freeway/Flake.png Binary file share/hedgewars/Data/Themes/Freeway/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Freeway/LandBackTex.png Binary file share/hedgewars/Data/Themes/Freeway/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Freeway/Sky.png Binary file share/hedgewars/Data/Themes/Freeway/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Freeway/icon.png Binary file share/hedgewars/Data/Themes/Freeway/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Fruit/BlueWater.png Binary file share/hedgewars/Data/Themes/Fruit/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Fruit/Border.png Binary file share/hedgewars/Data/Themes/Fruit/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Fruit/Droplet.png Binary file share/hedgewars/Data/Themes/Fruit/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Fruit/LandBackTex.png Binary file share/hedgewars/Data/Themes/Fruit/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Fruit/Sky.png Binary file share/hedgewars/Data/Themes/Fruit/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Fruit/SkyL.png Binary file share/hedgewars/Data/Themes/Fruit/SkyL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Fruit/Snowball.png Binary file share/hedgewars/Data/Themes/Fruit/Snowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Fruit/Watermelon_mask.png Binary file share/hedgewars/Data/Themes/Fruit/Watermelon_mask.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Fruit/amSnowball.png Binary file share/hedgewars/Data/Themes/Fruit/amSnowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Fruit/icon.png Binary file share/hedgewars/Data/Themes/Fruit/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Golf/Balldirt.png Binary file share/hedgewars/Data/Themes/Golf/Balldirt.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Golf/BlueWater.png Binary file share/hedgewars/Data/Themes/Golf/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Golf/Border.png Binary file share/hedgewars/Data/Themes/Golf/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Golf/Club2.png Binary file share/hedgewars/Data/Themes/Golf/Club2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Golf/Flag2.png Binary file share/hedgewars/Data/Themes/Golf/Flag2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Golf/Flake.png Binary file share/hedgewars/Data/Themes/Golf/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Golf/Hole.png Binary file share/hedgewars/Data/Themes/Golf/Hole.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Golf/Sky.png Binary file share/hedgewars/Data/Themes/Golf/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Golf/Tee.png Binary file share/hedgewars/Data/Themes/Golf/Tee.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Golf/horizont.png Binary file share/hedgewars/Data/Themes/Golf/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Halloween/BlueWater.png Binary file share/hedgewars/Data/Themes/Halloween/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Halloween/Border.png Binary file share/hedgewars/Data/Themes/Halloween/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Halloween/Chunk.png Binary file share/hedgewars/Data/Themes/Halloween/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Halloween/Droplet.png Binary file share/hedgewars/Data/Themes/Halloween/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Halloween/Flake.png Binary file share/hedgewars/Data/Themes/Halloween/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Halloween/Girder.png Binary file share/hedgewars/Data/Themes/Halloween/Girder.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Halloween/LandBackTex.png Binary file share/hedgewars/Data/Themes/Halloween/LandBackTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Halloween/SkyL.png Binary file share/hedgewars/Data/Themes/Halloween/SkyL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Halloween/icon.png Binary file share/hedgewars/Data/Themes/Halloween/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Hell/BlueWater.png Binary file share/hedgewars/Data/Themes/Hell/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Hell/Border.png Binary file share/hedgewars/Data/Themes/Hell/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Hell/Chunk.png Binary file share/hedgewars/Data/Themes/Hell/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Hell/Droplet.png Binary file share/hedgewars/Data/Themes/Hell/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Hell/Flake.png Binary file share/hedgewars/Data/Themes/Hell/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Hell/Sky.png Binary file share/hedgewars/Data/Themes/Hell/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Hell/horizont.png Binary file share/hedgewars/Data/Themes/Hell/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Hell/icon.png Binary file share/hedgewars/Data/Themes/Hell/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Hell/plant4.png Binary file share/hedgewars/Data/Themes/Hell/plant4.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Island/Border.png Binary file share/hedgewars/Data/Themes/Island/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Island/Chunk.png Binary file share/hedgewars/Data/Themes/Island/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Island/Flake.png Binary file share/hedgewars/Data/Themes/Island/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Island/LandTex.png Binary file share/hedgewars/Data/Themes/Island/LandTex.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Island/Sky.png Binary file share/hedgewars/Data/Themes/Island/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Island/SkyL.png Binary file share/hedgewars/Data/Themes/Island/SkyL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Island/icon.png Binary file share/hedgewars/Data/Themes/Island/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Jungle/BlueWater.png Binary file share/hedgewars/Data/Themes/Jungle/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Jungle/Border.png Binary file share/hedgewars/Data/Themes/Jungle/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Jungle/Droplet.png Binary file share/hedgewars/Data/Themes/Jungle/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Jungle/SkyL.png Binary file share/hedgewars/Data/Themes/Jungle/SkyL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Jungle/icon.png Binary file share/hedgewars/Data/Themes/Jungle/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Nature/Border.png Binary file share/hedgewars/Data/Themes/Nature/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Nature/Chunk.png Binary file share/hedgewars/Data/Themes/Nature/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Nature/Flake.png Binary file share/hedgewars/Data/Themes/Nature/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Nature/Girder.png Binary file share/hedgewars/Data/Themes/Nature/Girder.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Nature/Sky.png Binary file share/hedgewars/Data/Themes/Nature/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Nature/butterfly.png Binary file share/hedgewars/Data/Themes/Nature/butterfly.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Nature/icon.png Binary file share/hedgewars/Data/Themes/Nature/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Nature/plant2.png Binary file share/hedgewars/Data/Themes/Nature/plant2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Olympics/Border.png Binary file share/hedgewars/Data/Themes/Olympics/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Olympics/Chunk.png Binary file share/hedgewars/Data/Themes/Olympics/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Olympics/Column01.png Binary file share/hedgewars/Data/Themes/Olympics/Column01.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Olympics/Column02.png Binary file share/hedgewars/Data/Themes/Olympics/Column02.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Olympics/Column03.png Binary file share/hedgewars/Data/Themes/Olympics/Column03.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Olympics/Sky.png Binary file share/hedgewars/Data/Themes/Olympics/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Olympics/SkyL.png Binary file share/hedgewars/Data/Themes/Olympics/SkyL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Olympics/horizont.png Binary file share/hedgewars/Data/Themes/Olympics/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Olympics/icon.png Binary file share/hedgewars/Data/Themes/Olympics/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Planes/Sky.png Binary file share/hedgewars/Data/Themes/Planes/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/Border.png Binary file share/hedgewars/Data/Themes/Sheep/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/Chunk.png Binary file share/hedgewars/Data/Themes/Sheep/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/Clouds.png Binary file share/hedgewars/Data/Themes/Sheep/Clouds.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/Flake.png Binary file share/hedgewars/Data/Themes/Sheep/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/Sky.png Binary file share/hedgewars/Data/Themes/Sheep/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/barriere.png Binary file share/hedgewars/Data/Themes/Sheep/barriere.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/fleurland.png Binary file share/hedgewars/Data/Themes/Sheep/fleurland.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/fleurland2.png Binary file share/hedgewars/Data/Themes/Sheep/fleurland2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/fleurland3.png Binary file share/hedgewars/Data/Themes/Sheep/fleurland3.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/fleurland4.png Binary file share/hedgewars/Data/Themes/Sheep/fleurland4.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/grass.png Binary file share/hedgewars/Data/Themes/Sheep/grass.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/grass2.png Binary file share/hedgewars/Data/Themes/Sheep/grass2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/grassp.png Binary file share/hedgewars/Data/Themes/Sheep/grassp.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/grassp2.png Binary file share/hedgewars/Data/Themes/Sheep/grassp2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/horizont.png Binary file share/hedgewars/Data/Themes/Sheep/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/icon.png Binary file share/hedgewars/Data/Themes/Sheep/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/mouton1.png Binary file share/hedgewars/Data/Themes/Sheep/mouton1.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/mouton2.png Binary file share/hedgewars/Data/Themes/Sheep/mouton2.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/mouton3.png Binary file share/hedgewars/Data/Themes/Sheep/mouton3.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/mouton4.png Binary file share/hedgewars/Data/Themes/Sheep/mouton4.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Sheep/rocher.png Binary file share/hedgewars/Data/Themes/Sheep/rocher.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Snow/Border.png Binary file share/hedgewars/Data/Themes/Snow/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Snow/Chunk.png Binary file share/hedgewars/Data/Themes/Snow/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Snow/Dust.png Binary file share/hedgewars/Data/Themes/Snow/Dust.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Snow/Flake.png Binary file share/hedgewars/Data/Themes/Snow/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Snow/Girder.png Binary file share/hedgewars/Data/Themes/Snow/Girder.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Snow/Sky.png Binary file share/hedgewars/Data/Themes/Snow/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Snow/Snowball.png Binary file share/hedgewars/Data/Themes/Snow/Snowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Snow/amSnowball.png Binary file share/hedgewars/Data/Themes/Snow/amSnowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Snow/icon.png Binary file share/hedgewars/Data/Themes/Snow/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Snow/plant4.png Binary file share/hedgewars/Data/Themes/Snow/plant4.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Stage/BlueWater.png Binary file share/hedgewars/Data/Themes/Stage/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Stage/Border.png Binary file share/hedgewars/Data/Themes/Stage/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Stage/Chunk.png Binary file share/hedgewars/Data/Themes/Stage/Chunk.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Stage/Droplet.png Binary file share/hedgewars/Data/Themes/Stage/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Stage/Flake.png Binary file share/hedgewars/Data/Themes/Stage/Flake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Stage/Girder.png Binary file share/hedgewars/Data/Themes/Stage/Girder.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Stage/Sky.png Binary file share/hedgewars/Data/Themes/Stage/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Stage/SkyL.png Binary file share/hedgewars/Data/Themes/Stage/SkyL.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Stage/icon.png Binary file share/hedgewars/Data/Themes/Stage/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Underwater/BlueWater.png Binary file share/hedgewars/Data/Themes/Underwater/BlueWater.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Underwater/Border.png Binary file share/hedgewars/Data/Themes/Underwater/Border.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Underwater/Droplet.png Binary file share/hedgewars/Data/Themes/Underwater/Droplet.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Underwater/SDFlake.png Binary file share/hedgewars/Data/Themes/Underwater/SDFlake.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Underwater/Sky.png Binary file share/hedgewars/Data/Themes/Underwater/Sky.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Underwater/Snowball.png Binary file share/hedgewars/Data/Themes/Underwater/Snowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Underwater/amSnowball.png Binary file share/hedgewars/Data/Themes/Underwater/amSnowball.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Underwater/horizont.png Binary file share/hedgewars/Data/Themes/Underwater/horizont.png has changed diff -r af019fa70080 -r 8e95911cb86b share/hedgewars/Data/Themes/Underwater/icon.png Binary file share/hedgewars/Data/Themes/Underwater/icon.png has changed diff -r af019fa70080 -r 8e95911cb86b tests/lua/twothousandmines.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/lua/twothousandmines.lua Wed Dec 03 00:07:33 2014 +0300 @@ -0,0 +1,112 @@ +-- spawns 2000 mines in a bit to see if engine can deal with it + + -- taken from http://code.google.com/p/hedgewars/wiki/LuaDrawing + PointsBuffer = '' -- A string to accumulate points in + function AddPoint(x, y, width, erase) + PointsBuffer = PointsBuffer .. string.char(band(x,0xff00) / 256 , band(x,0xff) , band(y,0xff00) / 256 , band(y,0xff)) + if width then + width = bor(width,0x80) + if erase then + width = bor(width,0x40) + end + PointsBuffer = PointsBuffer .. string.char(width) + else + PointsBuffer = PointsBuffer .. string.char(0) + end + if #PointsBuffer > 245 then + ParseCommand('draw '..PointsBuffer) + PointsBuffer = '' + end + end + function FlushPoints() + if #PointsBuffer > 0 then + ParseCommand('draw '..PointsBuffer) + PointsBuffer = '' + end + end + + +local ta_pointsize = 63 +local ta_radius = (ta_pointsize * 10 + 6) / 2 + +local sqrttwo = math.sqrt(2) + +-- creates round test area +function AddTestArea(testarea) + step = 100 + xstep = step * testarea["xdir"] + ystep = step * testarea["ydir"] + x = testarea["x"] + y = testarea["y"] + if xstep * ystep ~= 0 then + xstep = math.floor(xstep / sqrttwo) + ystep = math.floor(ystep / sqrttwo) + end + AddPoint(x, y, ta_pointsize); + AddPoint(x + xstep, y + ystep, ta_pointsize, true); +end + +-- vertical test area +local taa_v2 = {x= 350, y=1500, xdir= 0, ydir=-1} + +-- fail counter +local nfailed = 0 +local nspawned = 0 +local ndied = 0 + +function onGameInit() + -- At first we have to overwrite/set some global variables + -- that define the map, the game has to load, as well as + -- other things such as the game rules to use, etc. + -- Things we don't modify here will use their default values. + + -- The base number for the random number generator + Seed = 1 + -- The map to be played + MapGen = mgDrawn + -- The theme to be used + Theme = "Bamboo" + -- Game settings and rules + EnableGameFlags(gfOneClanMode, gfDisableWind, gfDisableLandObjects, gfDisableGirders, gfSolidLand) + CaseFreq = 0 + MinesNum = 0 + Explosives = 0 + + -- No damage please + DamagePercent = 1 + + -- Draw Map + AddPoint(10,30,0) -- hog spawn platform + -- test areas + AddTestArea(taa_v2) + + FlushPoints() + + -- Create the player team + AddTeam("'Zooka Team", 14483456, "Simple", "Island", "Default") + -- And add a hog to it + player = AddHog("Hunter", 0, 1, "NoHat") + -- place it on how spawn platform + SetGearPosition(player, 10, 10) +end + +local pass = 0 +local nMines = 0 +local maxMines = 2000 + +function onGameStart() + local maxPass = maxMines / 25 + for pass = 1, maxPass, 1 do + pass = pass + 1 + -- spawn 25 mines + for i = 0, 480, 20 do + AddGear(110 + i, 1000 - i - (pass * 30), gtMine, 0, 0, 0, 0) + nMines = nMines + 1 + end + end +end + +function onNewTurn() + WriteLnToConsole('Engine succeessfully dealt with ' .. nMines .. ' mines!') + EndLuaTest(TEST_SUCCESSFUL) +end