# HG changeset patch
# User koda
# Date 1295302972 -3600
# Node ID 9a0f5377c529f4985d08a96d75899a17331d6f5c
# Parent 673f74c89687de84afd64d30d39aeb415aa9d162# Parent 9f20a38a385a391516804cdadf024b430476b496
merge latest 0.9.15 changes into head
diff -r 9f20a38a385a -r 9a0f5377c529 .hgtags
--- a/.hgtags Mon Jan 17 08:37:43 2011 +0100
+++ b/.hgtags Mon Jan 17 23:22:52 2011 +0100
@@ -32,3 +32,4 @@
29ab0d49c3e6e72a7633d0bd316ae533db15c65d 0.9.15
0000000000000000000000000000000000000000 0.9.15
29ab0d49c3e6e72a7633d0bd316ae533db15c65d 0.9.15-release
+5ea3d182415e4327e7584b1aa68197931d232ac3 Hedgewars-iOS-1.2.2
diff -r 9f20a38a385a -r 9a0f5377c529 CMakeLists.txt
--- a/CMakeLists.txt Mon Jan 17 08:37:43 2011 +0100
+++ b/CMakeLists.txt Mon Jan 17 23:22:52 2011 +0100
@@ -8,7 +8,7 @@
ENDIF()
#detect Mercurial revision (if present)
-#set(version_suffix "-dev") #UNSET THIS VARIABLE AT RELEASE TIME
+set(version_suffix "-dev") #UNSET THIS VARIABLE AT RELEASE TIME
IF(version_suffix MATCHES "-dev")
set(HW_DEV true)
IF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.hg)
@@ -31,7 +31,7 @@
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "9")
-set(CPACK_PACKAGE_VERSION_PATCH "15${version_suffix}")
+set(CPACK_PACKAGE_VERSION_PATCH "16${version_suffix}")
#forbid in-tree building
#IF (${CMAKE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR})
@@ -168,7 +168,7 @@
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
-set(HEDGEWARS_PROTO_VER 37)
+set(HEDGEWARS_PROTO_VER 38)
if(WITH_SERVER)
message(STATUS "Server is going to be built! Make sure you have GHC installed")
@@ -242,13 +242,14 @@
"release$"
"Debug$"
"Release$"
- "proto.inc$"
- "hwconsts.cpp$"
- "playlist.inc$"
+ "proto\\\\.inc$"
+ "hwconsts\\\\.cpp$"
+ "playlist\\\\.inc$"
"CPack"
- "cmake_install.cmake$"
- "config.inc$"
- "hwengine.desktop$"
+ "cmake_install\\\\.cmake$"
+ "config\\\\.inc$"
+ "hwengine\\\\.desktop$"
+ "CMakeCache\\\\.txt$"
# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libopenalbridge"
"^${CMAKE_CURRENT_SOURCE_DIR}/project_files/HedgewarsMobile/"
"^${CMAKE_CURRENT_SOURCE_DIR}/bin/[a-z]"
diff -r 9f20a38a385a -r 9a0f5377c529 ChangeLog.txt
--- a/ChangeLog.txt Mon Jan 17 08:37:43 2011 +0100
+++ b/ChangeLog.txt Mon Jan 17 23:22:52 2011 +0100
@@ -25,6 +25,7 @@
+ Reworked management of schemes and weapon sets
+ Will ask before deleting teams, schemes and weapon sets
+ Explosions detach rope from land
+ + Variable rope length in scheme
+ Allow hog speech when not your turn
0.9.13 -> 0.9.14:
diff -r 9f20a38a385a -r 9a0f5377c529 QTfrontend/about.cpp
--- a/QTfrontend/about.cpp Mon Jan 17 08:37:43 2011 +0100
+++ b/QTfrontend/about.cpp Mon Jan 17 23:22:52 2011 +0100
@@ -117,6 +117,7 @@
"Finnish: Nina Kuisma <ninnnu@gmail.com>
"
"French: Antoine Turmel <geekshadow@gmail.com>
"
"German: Peter Hüwe <PeterHuewe@gmx.de>, Mario Liebisch <mario.liebisch@gmail.com>
"
+ "Greek: <talos_kriti@yahoo.gr>"
"Italian: Luca Bonora <bonora.luca@gmail.com>
"
"Japanese: ADAM Etienne <etienne.adam@gmail.com>
"
"Korean: Anthony Bellew <webmaster@anthonybellew.com>
"
diff -r 9f20a38a385a -r 9a0f5377c529 QTfrontend/ammoSchemeModel.cpp
--- a/QTfrontend/ammoSchemeModel.cpp Mon Jan 17 08:37:43 2011 +0100
+++ b/QTfrontend/ammoSchemeModel.cpp Mon Jan 17 23:22:52 2011 +0100
@@ -188,7 +188,7 @@
<< QVariant(false) // disable land objects 17
<< QVariant(false) // AI survival 18
<< QVariant(false) // inf. attack 19
- << QVariant(false) // reset weps 20
+ << QVariant(true) // reset weps 20
<< QVariant(false) // per hog ammo 21
<< QVariant(false) // no wind 22
<< QVariant(false) // more wind 23
diff -r 9f20a38a385a -r 9a0f5377c529 QTfrontend/gameuiconfig.cpp
--- a/QTfrontend/gameuiconfig.cpp Mon Jan 17 08:37:43 2011 +0100
+++ b/QTfrontend/gameuiconfig.cpp Mon Jan 17 23:22:52 2011 +0100
@@ -93,7 +93,7 @@
{
QDir teamdir;
teamdir.cd(cfgdir->absolutePath() + "/Teams");
- QStringList teamslist = teamdir.entryList(QStringList("*.hwt"));
+ QStringList teamslist = teamdir.entryList(QStringList("*.hwt"),QDir::Files|QDir::Hidden);
QStringList cleanedList;
for (QStringList::Iterator it = teamslist.begin(); it != teamslist.end(); ++it ) {
QString tmpTeamStr=(*it).replace(QRegExp("^(.*)\\.hwt$"), "\\1");
@@ -183,7 +183,7 @@
quint32 rqNoBackground = 0x00000004; // don't draw background
quint32 rqSimpleRope = 0x00000008; // avoid drawing rope
quint32 rq2DWater = 0x00000010; // disabe 3D water effect
- quint32 rqFancyBoom = 0x00000020; // no fancy explosion effects
+ quint32 rqAntiBoom = 0x00000020; // no fancy explosion effects
quint32 rqKillFlakes = 0x00000040; // no flakes
quint32 rqSlowMenu = 0x00000080; // ammomenu appears with no animation
quint32 rqPlainSplash = 0x00000100; // no droplets
@@ -204,15 +204,15 @@
break;
case 2:
result |= rqBlurryLand | rqKillFlakes | rqPlainSplash | rq2DWater |
- rqFancyBoom | rqSlowMenu;
+ rqAntiBoom | rqSlowMenu;
break;
case 1:
result |= rqBlurryLand | rqKillFlakes | rqPlainSplash | rq2DWater |
- rqFancyBoom | rqSlowMenu | rqSimpleRope | rqDesyncVBlank;
+ rqAntiBoom | rqSlowMenu | rqSimpleRope | rqDesyncVBlank;
break;
case 0:
result |= rqBlurryLand | rqKillFlakes | rqPlainSplash | rq2DWater |
- rqFancyBoom | rqSlowMenu | rqSimpleRope | rqDesyncVBlank |
+ rqAntiBoom | rqSlowMenu | rqSimpleRope | rqDesyncVBlank |
rqNoBackground | rqClampLess;
break;
default:
diff -r 9f20a38a385a -r 9a0f5377c529 QTfrontend/hwform.cpp
--- a/QTfrontend/hwform.cpp Mon Jan 17 08:37:43 2011 +0100
+++ b/QTfrontend/hwform.cpp Mon Jan 17 23:22:52 2011 +0100
@@ -545,7 +545,7 @@
GoBack();
if (curid == ID_PAGE_ROOMSLIST) NetDisconnect();
- if (curid == ID_PAGE_NETGAME) hwnet->partRoom();
+ if (curid == ID_PAGE_NETGAME && hwnet) hwnet->partRoom();
// need to work on this, can cause invalid state for admin quit trying to prevent bad state message on kick
//if (curid == ID_PAGE_NETGAME && (!game || game->gameState != gsStarted)) hwnet->partRoom();
@@ -980,7 +980,7 @@
if (wBackground) wBackground->startAnimation();
if (hwnet) hwnet->gameFinished();
}
- if (gameState == gsHalted) close();
+ if (gameState == gsHalted) close();
};
}
}
diff -r 9f20a38a385a -r 9a0f5377c529 QTfrontend/pages.cpp
--- a/QTfrontend/pages.cpp Mon Jan 17 08:37:43 2011 +0100
+++ b/QTfrontend/pages.cpp Mon Jan 17 23:22:52 2011 +0100
@@ -1306,6 +1306,8 @@
compString = "Random Map";
} else if (a == 5 && compString == "+maze+") {
compString = "Random Maze";
+ } else if (a == 5 && compString == "+drawn+") {
+ compString = "Drawn Map";
}
if (compString.contains(searchText->text(), Qt::CaseInsensitive)) {
found = true;
diff -r 9f20a38a385a -r 9a0f5377c529 gameServer/hedgewars-server.cabal
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gameServer/hedgewars-server.cabal Mon Jan 17 23:22:52 2011 +0100
@@ -0,0 +1,33 @@
+Name: hedgewars-server
+Version: 0.1
+Synopsis: hedgewars server
+Description: hedgewars server
+Homepage: http://www.hedgewars.org/
+License: GPL-2
+Author: unC0Rr
+Maintainer: unC0Rr@hedgewars.org
+Category: Game
+Build-type: Simple
+Cabal-version: >=1.2
+
+
+Executable hedgewars-server
+ main-is: hedgewars-server.hs
+
+ Build-depends:
+ base >= 4,
+ unix,
+ containers,
+ array,
+ bytestring,
+ network-bytestring,
+ network,
+ time,
+ stm,
+ mtl,
+ dataenc,
+ hslogger,
+ process,
+ utf8-string
+
+ ghc-options: -O2
\ No newline at end of file
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/GSHandlers.inc
--- a/hedgewars/GSHandlers.inc Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/GSHandlers.inc Mon Jan 17 23:22:52 2011 +0100
@@ -176,7 +176,15 @@
procedure CheckCollision(Gear: PGear); inline;
begin
- if TestCollisionXwithGear(Gear, hwSign(Gear^.X)) or TestCollisionYwithGear(Gear, hwSign(Gear^.Y)
+ if TestCollisionXwithGear(Gear, hwSign(Gear^.dX)) or TestCollisionYwithGear(Gear, hwSign(Gear^.dY)
+ )
+ then Gear^.State := Gear^.State or gstCollision
+ else Gear^.State := Gear^.State and not gstCollision
+end;
+
+procedure CheckCollisionWithLand(Gear: PGear); inline;
+begin
+ if TestCollisionX(Gear, hwSign(Gear^.dX)) or TestCollisionY(Gear, hwSign(Gear^.dY)
)
then Gear^.State := Gear^.State or gstCollision
else Gear^.State := Gear^.State and not gstCollision
@@ -207,7 +215,7 @@
//else
// PlaySound(sndOw1, Gear^.Hedgehog^.Team^.voicepack);
- ApplyDamage(Gear, dmg, dsFall);
+ ApplyDamage(Gear, CurrentHedgehog, dmg, dsFall);
end
end;
@@ -233,10 +241,10 @@
AllInactive := false;
Gear^.Y := Gear^.Y + cDrownSpeed;
Gear^.X := Gear^.X + Gear^.dX * cDrownSpeed;
- if (cWaterOpacity > $FE) or (hwRound(Gear^.Y) > Gear^.Radius + cWaterLine + cVisibleWater) then
+ if (not SuddenDeathDmg and (cWaterOpacity > $FE)) or (SuddenDeathDmg and (cSDWaterOpacity > $FE)) or (hwRound(Gear^.Y) > Gear^.Radius + cWaterLine + cVisibleWater) then
DeleteGear(Gear);
// Create some bubbles (0.5% might be better but causes too few bubbles sometimes)
- if (cWaterOpacity < $FF) and ((GameTicks and $1F) = 0) then
+ if ((not SuddenDeathDmg and (cWaterOpacity < $FF)) or (SuddenDeathDmg and (cSDWaterOpacity < $FF))) and ((GameTicks and $1F) = 0) then
if (Gear^.Kind = gtHedgehog) and (Random(4) = 0) then
AddVisualGear(hwRound(Gear^.X) - Gear^.Radius, hwRound(Gear^.Y) - Gear^.Radius,
vgtBubble)
@@ -367,7 +375,7 @@
begin
CheckCollision(Gear);
if (Gear^.State and gstCollision) <> 0 then
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, EXPLDontDraw or EXPLNoGfx);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, Gear^.Hedgehog, EXPLDontDraw or EXPLNoGfx);
end;
if (Gear^.Kind = gtGasBomb) and ((GameTicks mod 200) = 0) then
@@ -380,13 +388,13 @@
if Gear^.Timer = 0 then
begin
case Gear^.Kind of
- gtBomb: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
- gtBall: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 40, EXPLAutoSound);
+ gtBomb: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound);
+ gtBall: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 40, Gear^.Hedgehog, EXPLAutoSound);
gtClusterBomb:
begin
x := hwRound(Gear^.X);
y := hwRound(Gear^.Y);
- doMakeExplosion(x, y, 20, EXPLAutoSound);
+ doMakeExplosion(x, y, 20, Gear^.Hedgehog, EXPLAutoSound);
for i:= 0 to 4 do
begin
dX := rndSign(GetRandom * _0_1) + Gear^.dX / 5;
@@ -398,7 +406,7 @@
begin
x := hwRound(Gear^.X);
y := hwRound(Gear^.Y);
- doMakeExplosion(x, y, 75, EXPLAutoSound);
+ doMakeExplosion(x, y, 75, Gear^.Hedgehog, EXPLAutoSound);
for i:= 0 to 5 do
begin
dX := rndSign(GetRandom * _0_1) + Gear^.dX / 5;
@@ -410,7 +418,7 @@
begin
x := hwRound(Gear^.X);
y := hwRound(Gear^.Y);
- doMakeExplosion(x, y, 90, EXPLAutoSound);
+ doMakeExplosion(x, y, 90, Gear^.Hedgehog, EXPLAutoSound);
for i:= 0 to 127 do
begin
@@ -424,7 +432,7 @@
end;
gtGasBomb:
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, Gear^.Hedgehog, EXPLAutoSound);
for i:= 0 to 2 do
begin
x:= GetRandom(60);
@@ -501,7 +509,7 @@
doStepFallingGear(Gear);
if (Gear^.State and gstCollision) <> 0 then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), Gear^.Timer, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), Gear^.Timer, Gear^.Hedgehog, EXPLAutoSound);
DeleteGear(Gear);
exit
end;
@@ -520,7 +528,7 @@
doStepFallingGear(Gear);
if (Gear^.State and gstCollision) <> 0 then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound);
DeleteGear(Gear);
exit
end;
@@ -563,6 +571,7 @@
move, allpx: Boolean;
s: PSDL_Surface;
p: PLongwordArray;
+ oAlpha, nAlpha: byte;
begin
if GameTicks and $7 = 0 then
begin
@@ -590,49 +599,86 @@
move:= false;
// move back to cloud layer
if yy > cWaterLine then move:= true
- else if ((yy and LAND_HEIGHT_MASK) = 0) and ((xx and LAND_WIDTH_MASK) = 0) and (Land[yy, xx] > 255) then
+ else if ((yy and LAND_HEIGHT_MASK) <> 0) or ((xx and LAND_WIDTH_MASK) <> 0) then move:=true
+ // Solid pixel encountered
+ else if (Land[yy, xx] <> 0) then
begin
- // we've collided with land. draw some stuff and get back into the clouds
- move:= true;
- if (CurAmmoGear = nil) or (CurAmmoGear^.Kind <> gtRope) then
+ // If there's room below keep falling
+ if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (Land[yy-1, xx] = 0) then
+ begin
+ X:= X - cWindSpeed * 1600 - dX;
+ end
+ // If there's room below, on the sides, fill the gaps
+ else if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (((xx-(1*hwSign(cWindSpeed))) and LAND_WIDTH_MASK) = 0) and (Land[yy-1, (xx-(1*hwSign(cWindSpeed)))] = 0) then
+ begin
+ X:= X - _0_8 * hwSign(cWindSpeed);
+ Y:= Y - dY - cGravity * vobFallSpeed * 8;
+ end
+ else if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (((xx-(2*hwSign(cWindSpeed))) and LAND_WIDTH_MASK) = 0) and (Land[yy-1, (xx-(2*hwSign(cWindSpeed)))] = 0) then
begin
-////////////////////////////////// TODO - ASK UNC0RR FOR A GOOD HOME FOR THIS ////////////////////////////////////
- if cWindSpeed * 1600 + dX < _0 then i:= -1
- else i:= 1;
- if (yy > 0) and ((Land[yy-1, xx] and $FF00) = 0) then dec(yy)
- else dec(xx, i);
- dec(yy,2);
- dec(xx,i);
- s:= SpritesData[sprSnow].Surface;
- p:= s^.pixels;
- allpx:= true;
- for py:= 0 to Pred(s^.h) do
+ X:= X - _0_8 * 2 * hwSign(cWindSpeed);
+ Y:= Y - dY - cGravity * vobFallSpeed * 8;
+ end
+ else if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (((xx+(1*hwSign(cWindSpeed))) and LAND_WIDTH_MASK) = 0) and (Land[yy-1, (xx+(1*hwSign(cWindSpeed)))] = 0) then
+ begin
+ X:= X + _0_8 * hwSign(cWindSpeed);
+ Y:= Y - dY - cGravity * vobFallSpeed * 8;
+ end
+ else if (((yy-1) and LAND_HEIGHT_MASK) = 0) and (((xx+(2*hwSign(cWindSpeed))) and LAND_WIDTH_MASK) = 0) and (Land[yy-1, (xx+(2*hwSign(cWindSpeed)))] = 0) then
+ begin
+ X:= X + _0_8 * 2 * hwSign(cWindSpeed);
+ Y:= Y - dY - cGravity * vobFallSpeed * 8;
+ end
+ // if there's an hog/object below do nothing
+ else if ((((yy+1) and LAND_HEIGHT_MASK) = 0) and ((Land[yy+1, xx] and $FF) <> 0))
+ then move:=true
+ else
+ begin
+ // we've collided with land. draw some stuff and get back into the clouds
+ move:= true;
+ if (CurAmmoGear = nil) or (CurAmmoGear^.Kind <> gtRope) then
begin
- for px:= 0 to Pred(s^.w) do
- if (((yy + py) and LAND_HEIGHT_MASK) = 0) and (((xx + px) and LAND_WIDTH_MASK) = 0) and
- ((Land[yy + py, xx + px] and $FF00) = 0) then
- begin
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[yy + py, xx + px]:= p^[px]
- else
- LandPixels[(yy + py) div 2, (xx + px) div 2]:= p^[px]
- end
- else allpx:= false;
- p:= @(p^[s^.pitch shr 2])
- end;
- if allpx then UpdateLandTexture(xx, 4, yy, 4)
- else if ((yy and LAND_HEIGHT_MASK) = 0) and ((xx and LAND_WIDTH_MASK) = 0) then UpdateLandTexture(xx, 1, yy, 1);
- inc(yy,2);
- inc(xx,i);
- if ((xx and LAND_WIDTH_MASK) = 0) and ((yy and LAND_HEIGHT_MASK) = 0) then Land[yy, xx]:= Land[yy, xx] or lfObject;
- if yy > 0 then
- begin
- Land[yy-1, xx]:= Land[yy-1, xx] or lfObject;
- if ((xx-i and LAND_WIDTH_MASK) = 0) then Land[yy-1, xx-i]:= Land[yy-1, xx-i] or lfObject;
- end;
- if ((xx-i and LAND_WIDTH_MASK) = 0) and ((yy and LAND_HEIGHT_MASK) = 0) then Land[yy, xx-i]:= Land[yy, xx-i] or lfObject
-////////////////////////////////// TODO - ASK UNC0RR FOR A GOOD HOME FOR THIS ////////////////////////////////////
- end
+ ////////////////////////////////// TODO - ASK UNC0RR FOR A GOOD HOME FOR THIS ////////////////////////////////////
+ dec(yy,3);
+ dec(xx,1);
+ s:= SpritesData[sprSnow].Surface;
+ p:= s^.pixels;
+ allpx:= true;
+ for py:= 0 to Pred(s^.h) do
+ begin
+ for px:= 0 to Pred(s^.w) do
+ if ((((yy + py) and LAND_HEIGHT_MASK) = 0) and (((xx + px) and LAND_WIDTH_MASK) = 0)) and ((Land[yy + py, xx + px] and $FF) = 0) then
+ begin
+ Land[yy + py, xx + px]:= Land[yy + py, xx + px] or lfObject;
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ LandPixels[yy + py, xx + px]:= addBgColor(LandPixels[yy + py, xx + px], p^[px]);
+ end
+ else
+ begin
+ LandPixels[(yy + py) div 2, (xx + px) div 2]:= addBgColor(LandPixels[(yy + py) div 2, (xx + px) div 2], p^[px]);
+ end;
+ end
+ else allpx:= false;
+ p:= @(p^[s^.pitch shr 2])
+ end;
+
+
+ Land[py, px+1]:= lfBasic;
+
+ if allpx then UpdateLandTexture(xx, Pred(s^.h), yy, Pred(s^.w))
+ else
+ begin
+ UpdateLandTexture(
+ max(0, min(LAND_WIDTH, xx)),
+ min(LAND_WIDTH - xx, Pred(s^.w)),
+ max(0, min(LAND_WIDTH, yy)),
+ min(LAND_HEIGHT - yy, Pred(s^.h))
+ );
+ end;
+ ////////////////////////////////// TODO - ASK UNC0RR FOR A GOOD HOME FOR THIS ////////////////////////////////////
+ end
+ end;
end;
if move then
begin
@@ -720,7 +766,7 @@
if ((Gear^.State and gstCollision) <> 0) or (Gear^.Timer = 0) then
begin
StopSound(Gear^.SoundChannel);
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound);
DeleteGear(Gear);
end;
end;
@@ -734,7 +780,7 @@
CheckCollision(Gear);
if (Gear^.State and gstCollision) <> 0 then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound);
DeleteGear(Gear);
exit
end;
@@ -851,7 +897,7 @@
dec(Gear^.Health, Gear^.Damage);
Gear^.Damage := 0
end;
- if ((Gear^.State and gstDrowning) <> 0) and (Gear^.Damage < Gear^.Health) and (cWaterOpacity < $FF) then
+ if ((Gear^.State and gstDrowning) <> 0) and (Gear^.Damage < Gear^.Health) and ((not SuddenDeathDmg and (cWaterOpacity < $FF)) or (SuddenDeathDmg and (cSDWaterOpacity < $FF))) then
begin
for i:=(Gear^.Health - Gear^.Damage) * 4 downto 0 do
begin
@@ -1037,7 +1083,7 @@
if (Gear^.Timer mod 33) = 0 then
begin
HHGear^.State := HHGear^.State or gstNoDamage;
- doMakeExplosion(x, y + 7, 6, EXPLDontDraw);
+ doMakeExplosion(x, y + 7, 6, Gear^.Hedgehog, EXPLDontDraw);
HHGear^.State := HHGear^.State and not gstNoDamage
end;
@@ -1316,19 +1362,19 @@
if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed / HHGear^.Density;
end;
+ // vector between hedgehog and rope attaching point
ropeDx := HHGear^.X - Gear^.X;
- // vector between hedgehog and rope attaching point
ropeDy := HHGear^.Y - Gear^.Y;
mdX := ropeDx + HHGear^.dX;
mdY := ropeDy + HHGear^.dY;
len := _1 / Distance(mdX, mdY);
+ // rope vector plus hedgehog direction vector normalized
mdX := mdX * len;
- // rope vector plus hedgehog direction vector normalized
mdY := mdY * len;
+ // for visual purposes only
Gear^.dX := mdX;
- // for visual purposes only
Gear^.dY := mdY;
/////
@@ -1456,35 +1502,45 @@
HHGear^.dY := HHGear^.dY * len;
end;
- haveCollision:= false;
- if RopePoints.Count > 0 then
- begin
- ly:= hwRound(RopePoints.ar[0].Y);
- lx:= hwRound(RopePoints.ar[0].X)
- end
- else if Gear^.Elasticity.QWordValue > 0 then
- begin
- ly:= hwRound(Gear^.Y);
- lx:= hwRound(Gear^.X)
- end;
-(* // just in case it turns out we have rounding problems
- i:= -1;
- while not haveCollision and (i < 2) do
+ haveCollision:= ((hwRound(Gear^.Y) and LAND_HEIGHT_MASK) = 0) and ((hwRound(Gear^.X) and LAND_WIDTH_MASK) = 0) and ((Land[hwRound(Gear^.Y), hwRound(Gear^.X)] and $FF00) <> 0);
+
+ if not haveCollision then
begin
- j:= -1;
- while not haveCollision and (j < 2) do
+ // backup gear location
+ tx:= Gear^.X;
+ ty:= Gear^.Y;
+
+ if RopePoints.Count > 0 then
+ begin
+ // set gear location to the remote end of the rope, the attachment point
+ Gear^.X:= RopePoints.ar[0].X;
+ Gear^.Y:= RopePoints.ar[0].Y;
+ end;
+
+ CheckCollisionWithLand(Gear);
+ // if we haven't found any collision yet then check the otheer side too
+ if (Gear^.State and gstCollision) = 0 then
begin
- haveCollision:= ((((ly + i) and LAND_HEIGHT_MASK) = 0) and
- (((lx + j) and LAND_WIDTH_MASK) = 0) and
- ((Land[ly + i, lx + j] and $FF00) <> 0));
- inc(j)
+ Gear^.dX.isNegative:= not Gear^.dX.isNegative;
+ Gear^.dY.isNegative:= not Gear^.dY.isNegative;
+ CheckCollisionWithLand(Gear);
+ Gear^.dX.isNegative:= not Gear^.dX.isNegative;
+ Gear^.dY.isNegative:= not Gear^.dY.isNegative;
end;
- inc(i)
- end; *)
- if ((Gear^.Message and gmAttack) <> 0) or
- (((ly and LAND_HEIGHT_MASK) = 0) and
- ((lx and LAND_WIDTH_MASK) = 0) and
- ((Land[ly, lx] and $FF00) = 0)) then
+
+ haveCollision:= (Gear^.State and gstCollision) <> 0;
+
+ // restore gear location
+ Gear^.X:= tx;
+ Gear^.Y:= ty;
+ end;
+
+ // if the attack key is pressed, lose rope contact as well
+ if (Gear^.Message and gmAttack) <> 0 then
+ haveCollision:= false;
+
+ if not haveCollision then
+ begin
if (Gear^.State and gsttmpFlag) <> 0 then
with Gear^.Hedgehog^ do
begin
@@ -1494,10 +1550,11 @@
else
DeleteMe
end
- else
+ end
else
if (Gear^.State and gsttmpFlag) = 0 then
Gear^.State := Gear^.State or gsttmpFlag;
+
end;
procedure doStepRopeAttach(Gear: PGear);
@@ -1574,9 +1631,7 @@
end;
end;
- if ((hwRound(Gear^.Y) and LAND_HEIGHT_MASK) = 0) and ((hwRound(Gear^.X) and LAND_WIDTH_MASK) = 0) and ((Land[hwRound(Gear^.Y), hwRound(Gear^.X)] and $FF00) <> 0) then
- Gear^.State:= Gear^.State or gstCollision
- else Gear^.State:= Gear^.State and not gstCollision;
+ CheckCollisionWithLand(Gear);
if (Gear^.State and gstCollision) <> 0 then
if Gear^.Elasticity < _10 then
@@ -1655,7 +1710,7 @@
(cMineDudPercent = 0) or
(getRandom(100) > cMineDudPercent) then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound);
DeleteGear(Gear)
end
else
@@ -1706,7 +1761,7 @@
if (Gear^.Timer and $FF) = 0 then PlaySound(sndMineTick);
if Gear^.Timer = 0 then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, Gear^.Hedgehog, EXPLAutoSound);
DeleteGear(Gear);
exit
end;
@@ -1726,7 +1781,7 @@
makeHogsWorry(Gear^.X, Gear^.Y, 75);
if Gear^.Timer = 0 then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 75, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 75, Gear^.Hedgehog, EXPLAutoSound);
DeleteGear(Gear);
exit
end;
@@ -1819,6 +1874,7 @@
k: TGearType;
exBoom: boolean;
dX, dY: HWFloat;
+ hog: PHedgehog;
begin
k := Gear^.Kind;
exBoom := false;
@@ -1855,18 +1911,20 @@
begin
x := hwRound(Gear^.X);
y := hwRound(Gear^.Y);
+ hog:= Gear^.Hedgehog;
+
DeleteGear(Gear);
// <-- delete gear!
if k = gtCase then
begin
- doMakeExplosion(x, y, 25, EXPLAutoSound);
+ doMakeExplosion(x, y, 25, hog, EXPLAutoSound);
for i:= 0 to 63 do
AddGear(x, y, gtFlame, 0, _0, _0, 0);
end
else if k = gtExplosives then
begin
- doMakeExplosion(x, y, 75, EXPLAutoSound);
+ doMakeExplosion(x, y, 75, hog, EXPLAutoSound);
for i:= 0 to 31 do
begin
dX := AngleCos(i * 64) * _0_5 * (getrandom + _1);
@@ -1917,28 +1975,12 @@
if (Gear^.Tag = 0) and (Gear^.Timer < 1000) then
inc(Gear^.Timer)
else if Gear^.Tag = 1 then
- begin
- Gear^.Tag := 2;
- if (TrainingFlags and tfTimeTrial) <> 0 then
- begin
- inc(TurnTimeLeft, TrainingTimeInc);
-
- if TrainingTimeInc > TrainingTimeInM then
- dec(TrainingTimeInc, TrainingTimeInD);
- if TurnTimeLeft > TrainingTimeMax then
- TurnTimeLeft := TrainingTimeMax;
- end;
- end
+ Gear^.Tag := 2
else if Gear^.Tag = 2 then
if Gear^.Timer > 0 then
dec(Gear^.Timer)
else
begin
- if (TrainingFlags and tfTargetRespawn) <> 0 then
- begin
- TrainingTargetGear := AddGear(0, 0, gtTarget, 0, _0, _0, 0);
- FindPlace(TrainingTargetGear, false, 0, LAND_WIDTH);
- end;
DeleteGear(Gear);
exit;
end;
@@ -2067,7 +2109,7 @@
AmmoShove(Gear, 4, 150);
Gear^.Radius := 1;
end
- else if ((GameTicks and $3) = 3) then doMakeExplosion(gX, gY, 6, 0);//, EXPLNoDamage);
+ else if ((GameTicks and $3) = 3) then doMakeExplosion(gX, gY, 6, Gear^.Hedgehog, 0);//, EXPLNoDamage);
//DrawExplosion(gX, gY, 4);
if ((GameTicks and $7) = 0) and (Random(2) = 0) then
for i:= 1 to Random(2)+1 do
@@ -2206,14 +2248,16 @@
exit
end;
- if not TestCollisionXwithGear(HHGear, hwSign(HHGear^.dX)) then
- HHGear^.X := HHGear^.X + cWindSpeed * 200;
+ HHGear^.X := HHGear^.X + cWindSpeed * 200;
if (Gear^.Message and gmLeft) <> 0 then HHGear^.X := HHGear^.X - cMaxWindSpeed * 80
else if (Gear^.Message and gmRight) <> 0 then HHGear^.X := HHGear^.X + cMaxWindSpeed * 80;
if (Gear^.Message and gmUp) <> 0 then HHGear^.Y := HHGear^.Y - cGravity * 40
else if (Gear^.Message and gmDown) <> 0 then HHGear^.Y := HHGear^.Y + cGravity * 40;
+ // don't drift into obstacles
+ if TestCollisionXwithGear(HHGear, hwSign(HHGear^.dX)) then
+ HHGear^.X := HHGear^.X - int2hwFloat(hwSign(HHGear^.dX));
HHGear^.Y := HHGear^.Y + cGravity * 100;
Gear^.X := HHGear^.X;
Gear^.Y := HHGear^.Y
@@ -2286,9 +2330,13 @@
Gear^.Y := int2hwFloat(topY-300);
Gear^.dX := int2hwFloat(TargetPoint.X - 5 * Gear^.Tag * 15);
- if (int2hwFloat(TargetPoint.Y) - Gear^.Y > _0) then
- Gear^.dX := Gear^.dX - cBombsSpeed * hwSqrt((int2hwFloat(TargetPoint.Y) - Gear^.Y) * 2 /
- cGravity) * Gear^.Tag;
+ // calcs for Napalm Strike, so that it will hit the target (without wind at least :P)
+ if (Gear^.State = 2) then
+ Gear^.dX := Gear^.dX - cBombsSpeed * Gear^.Tag * 1000 // ^.Timer of gtNapalmBomb, make it a constant var if you prefer that :P
+ // calcs for regular falling gears
+ else if (int2hwFloat(TargetPoint.Y) - Gear^.Y > _0) then
+ Gear^.dX := Gear^.dX - cBombsSpeed * hwSqrt((int2hwFloat(TargetPoint.Y) - Gear^.Y) * 2 /
+ cGravity) * Gear^.Tag;
Gear^.Health := 6;
Gear^.doStep := @doStepAirAttackWork;
@@ -2302,7 +2350,7 @@
doStepFallingGear(Gear);
if (Gear^.State and gstCollision) <> 0 then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, Gear^.Hedgehog, EXPLAutoSound);
DeleteGear(Gear);
performRumble();
exit
@@ -2501,7 +2549,7 @@
doStepFallingGear(Gear);
if (Gear^.State and gstCollision) <> 0 then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, Gear^.Hedgehog, EXPLAutoSound);
Gear^.dX.isNegative := not dxn;
Gear^.dY.isNegative := not dyn;
@@ -2571,7 +2619,7 @@
if Gear^.Health < Gear^.Damage then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, Gear^.Hedgehog, EXPLAutoSound);
AfterAttack;
DeleteGear(Gear);
DeleteGear(HHGear);
@@ -2631,7 +2679,7 @@
inc(Gear^.Tag);
if Gear^.Tag < 2250 then exit;
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), cakeDmg, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), cakeDmg, Gear^.Hedgehog, EXPLAutoSound);
AfterAttack;
DeleteGear(Gear)
end;
@@ -2885,6 +2933,9 @@
end;
////////////////////////////////////////////////////////////////////////////////
+procedure doStepDrill(Gear: PGear);
+forward;
+
procedure doStepDrillDrilling(Gear: PGear);
var
t: PGearArray;
@@ -2913,19 +2964,25 @@
if (Gear^.Timer = 0)
or (t^.Count <> 0)
or (not TestCollisionYWithGear(Gear, hwSign(Gear^.dY))
- and not TestCollisionXWithGear(Gear, hwSign(Gear^.dX)))
+ and not TestCollisionXWithGear(Gear, hwSign(Gear^.dX))
+ and ((Gear^.State and gsttmpFlag) = 0))
// CheckLandValue returns true if the type isn't matched
or not CheckLandValue(hwRound(Gear^.X), hwRound(Gear^.Y), lfIndestructible) then
- begin
+ begin
//out of time or exited ground
StopSound(Gear^.SoundChannel);
if (Gear^.State and gsttmpFlag) <> 0 then
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLAutoSound)
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, Gear^.Hedgehog, EXPLAutoSound)
else
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound);
DeleteGear(Gear);
exit
- end;
+ end
+ else if not TestCollisionYWithGear(Gear, hwSign(Gear^.dY)) and not TestCollisionXWithGear(Gear, hwSign(Gear^.dX)) then
+ begin
+ StopSound(Gear^.SoundChannel);
+ Gear^.doStep := @doStepDrill
+ end;
dec(Gear^.Timer);
end;
@@ -2967,9 +3024,9 @@
begin
//explode right on contact with HH
if (Gear^.State and gsttmpFlag) <> 0 then
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLAutoSound)
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, Gear^.Hedgehog, EXPLAutoSound)
else
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, Gear^.Hedgehog, EXPLAutoSound);
DeleteGear(Gear);
exit;
end;
@@ -3037,11 +3094,6 @@
begin
AllInactive := false;
- if ((TrainingFlags and tfRCPlane) = 0) and (Gear^.Timer > 0) then dec(Gear^.Timer);
-
- if ((TrainingFlags and tfRCPlane) <> 0) and ((TrainingFlags and tfTimeTrial) <> 0 ) and (
- TimeTrialStartTime = 0) then TimeTrialStartTime := RealTicks;
-
HHGear := Gear^.Hedgehog^.Gear;
FollowGear := Gear;
@@ -3084,73 +3136,44 @@
Gear^.X := Gear^.X + Gear^.dX;
Gear^.Y := Gear^.Y + Gear^.dY;
- if (TrainingFlags and tfRCPlane) = 0 then
+ if (GameTicks and $FF) = 0 then
+ if Gear^.Timer < 3500 then
+ AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtEvilTrace)
+ else
+ AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace);
+
+ if ((HHGear^.Message and gmAttack) <> 0) and (Gear^.Health <> 0) then
begin
- if (GameTicks and $FF) = 0 then
- if Gear^.Timer < 3500 then
- AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtEvilTrace)
- else
- AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace);
-
- if ((HHGear^.Message and gmAttack) <> 0) and (Gear^.Health <> 0) then
- begin
- HHGear^.Message := HHGear^.Message and not gmAttack;
- AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, Gear^.dX * _0_5, Gear^.dY *
- _0_5, 0);
- dec(Gear^.Health)
- end;
-
- if ((HHGear^.Message and gmLJump) <> 0)
- and ((Gear^.State and gsttmpFlag) = 0) then
- begin
- Gear^.State := Gear^.State or gsttmpFlag;
- PauseMusic;
- playSound(sndRideOfTheValkyries);
- end;
-
- // pickup bonuses
- t := CheckGearNear(Gear, gtCase, 36, 36);
- if t <> nil then
- PickUp(HHGear, t);
- end
- else
+ HHGear^.Message := HHGear^.Message and not gmAttack;
+ AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtAirBomb, 0, Gear^.dX * _0_5, Gear^.dY *
+ _0_5, 0);
+ dec(Gear^.Health)
+ end;
+
+ if ((HHGear^.Message and gmLJump) <> 0)
+ and ((Gear^.State and gsttmpFlag) = 0) then
begin
- if (GameTicks and $FF) = 0 then
- AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtSmokeTrace);
-
- // pickup targets
- t := CheckGearNear(Gear, gtTarget, 36, 36);
- if t <> nil then
- begin
- if t^.Tag <> 0 then // collect it only once
- exit;
- PlaySound(sndShotgunReload);
- t^.Tag := 1;
- TrainingTargetGear := nil;
- // remove target cursor
- exit;
- end;
-
- if (TurnTimeLeft > 0) then
- dec(TurnTimeLeft)
+ Gear^.State := Gear^.State or gsttmpFlag;
+ PauseMusic;
+ playSound(sndRideOfTheValkyries);
end;
+ // pickup bonuses
+ t := CheckGearNear(Gear, gtCase, 36, 36);
+ if t <> nil then
+ PickUp(HHGear, t);
+
CheckCollision(Gear);
- if ((Gear^.State and gstCollision) <> 0) or (((TrainingFlags and tfRCPlane) <> 0) and (
- TurnTimeLeft = 0))
- or CheckGearDrowning(Gear) then
+ if ((Gear^.State and gstCollision) <> 0) or CheckGearDrowning(Gear) then
begin
- if ((TrainingFlags and tfRCPlane) <> 0) and ((TrainingFlags and tfTimeTrial) <> 0 ) and (
- TimeTrialStopTime = 0) then TimeTrialStopTime := RealTicks;
StopSound(Gear^.SoundChannel);
StopSound(sndRideOfTheValkyries);
ResumeMusic;
- if ((Gear^.State and gstCollision) <> 0) or (((TrainingFlags and tfRCPlane) <> 0) and (
- TurnTimeLeft = 0)) then
+ if ((Gear^.State and gstCollision) <> 0) then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 25, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 25, Gear^.Hedgehog, EXPLAutoSound);
for i:= 0 to 32 do
begin
dX := AngleCos(i * 64) * _0_5 * (GetRandom + _1);
@@ -3165,10 +3188,6 @@
CurAmmoGear := nil;
if (GameFlags and gfInfAttack) = 0 then TurnTimeLeft := 14 * 125;
- if (TrainingFlags and tfRCPlane) <> 0 then
- TurnTimeLeft := 0;
- // HACK: RCPlane training allows unlimited plane starts in last 2 seconds
-
HHGear^.Message := 0;
ParseCommand('/taunt '#1, true)
end
@@ -3529,7 +3548,7 @@
if (Gear^.State and gstCollision) <> 0 then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 10, EXPLPoisoned, $C0E0FFE0);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 10, Gear^.Hedgehog, EXPLPoisoned, $C0E0FFE0);
PlaySound(sndEggBreak);
AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtEgg);
vg := AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtEgg);
@@ -3549,8 +3568,7 @@
////////////////////////////////////////////////////////////////////////////////
procedure doPortalColorSwitch();
-var flags: LongWord;
- CurWeapon: PAmmo;
+var CurWeapon: PAmmo;
begin
if (CurrentHedgehog <> nil)
and (CurrentHedgehog^.Gear <> nil)
@@ -3561,11 +3579,10 @@
CurrentHedgehog^.Gear^.Message := CurrentHedgehog^.Gear^.Message and not gmSwitch;
CurWeapon:= GetAmmoEntry(CurrentHedgehog^);
- flags := CurWeapon^.Timer and not 2;
- if (flags and 1) = 0 then
- CurWeapon^.Timer := flags or 1
+ if CurWeapon^.Pos <> 0 then
+ CurWeapon^.Pos := 0
else
- CurWeapon^.Timer := flags and not 1;
+ CurWeapon^.Pos := 1;
end;
end;
@@ -3834,8 +3851,7 @@
s: hwFloat;
procedure loadNewPortalBall(oldPortal: PGear; destroyGear: Boolean);
-var
- flags: LongWord;
+var
CurWeapon: PAmmo;
begin
if CurrentHedgehog <> nil then
@@ -3844,18 +3860,19 @@
CurWeapon:= GetAmmoEntry(CurrentHedgehog^);
if (CurAmmoType = amPortalGun) then
begin
- flags := CurWeapon^.Timer;
-
- if destroyGear xor ((oldPortal^.Tag and 2) = 0) then
- flags := flags or 1
- else
- flags := flags and not 1;
-
- CurWeapon^.Timer := flags and not 2;
+ if not destroyGear then
+ begin
+ // switch color of ball to opposite of oldPortal
+ if (oldPortal^.Tag and 2) = 0 then
+ CurWeapon^.Pos:= 1
+ else
+ CurWeapon^.Pos:= 0;
+ end;
+
// make the ball visible
+ CurWeapon^.Timer := 0;
end
end;
-
if destroyGear then oldPortal^.Timer:= 0;
end;
@@ -3940,11 +3957,8 @@
newPortal^.Elasticity.isNegative := not newPortal^.Elasticity.isNegative;
// make portal gun look unloaded
- CurWeapon^.Timer := CurWeapon^.Timer or 2;
-
- // set portal to the currently chosen color
- if ((CurWeapon^.Timer and 1) <> 0) then
- newPortal^.Tag := newPortal^.Tag or 2;
+ if (CurWeapon <> nil) and (CurAmmoType = amPortalGun) then
+ CurWeapon^.Timer := CurWeapon^.Timer or 2;
iterator := GearsList;
while iterator <> nil do
@@ -4040,9 +4054,9 @@
begin
r0 := GetRandom(21);
r1 := GetRandom(21);
- doMakeExplosion(hwRound(Gear^.X) - 30 - r0, hwRound(Gear^.Y) + 40, 40 + r1, 0);
- doMakeExplosion(hwRound(Gear^.X) + 30 + r1, hwRound(Gear^.Y) + 40, 40 + r0, 0);
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 80 + r0, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X) - 30 - r0, hwRound(Gear^.Y) + 40, 40 + r1, Gear^.Hedgehog, 0);
+ doMakeExplosion(hwRound(Gear^.X) + 30 + r1, hwRound(Gear^.Y) + 40, 40 + r0, Gear^.Hedgehog, 0);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 80 + r0, Gear^.Hedgehog, EXPLAutoSound);
for r0:= 0 to 4 do
AddVisualGear(hwRound(Gear^.X), hwRound(Gear^.Y), vgtNote);
Gear^.dY := odY * -1 + cGravity * 2;
@@ -4283,7 +4297,7 @@
Gear^.dX := Gear^.dX + cWindSpeed / 4;
Gear^.dY := Gear^.dY + cGravity / 100;
if (GameTicks mod 250) = 0 then
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, EXPLDontDraw or EXPLNoGfx or EXPLNoDamage or EXPLDoNotTouchAny or EXPLPoisoned);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, Gear^.Hedgehog, EXPLDontDraw or EXPLNoGfx or EXPLNoDamage or EXPLDoNotTouchAny or EXPLPoisoned);
AllInactive:= false;
end;
@@ -4311,7 +4325,7 @@
if (tmp^.Kind = gtHedgehog) then
begin
//tmp^.State:= tmp^.State or gstFlatened;
- ApplyDamage(tmp, tmp^.Health div 3, dsUnknown);
+ ApplyDamage(tmp, CurrentHedgehog, tmp^.Health div 3, dsUnknown);
//DrawTunnel(tmp^.X, tmp^.Y - _1, _0, _0_5, cHHRadius * 6, cHHRadius * 3);
tmp2:= AddGear(hwRound(tmp^.X), hwRound(tmp^.Y), gtHammerHit, 0, _0, _0, 0);
tmp2^.Hedgehog:= tmp^.Hedgehog;
@@ -4534,7 +4548,7 @@
doStepFallingGear(Gear);
if (Gear^.Timer > 0) and ((Gear^.State and gstCollision) <> 0) then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 10, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 10, Gear^.Hedgehog, EXPLAutoSound);
gX := hwRound(Gear^.X);
gY := hwRound(Gear^.Y);
for i:= 0 to 10 do
@@ -4551,7 +4565,7 @@
end;
if (Gear^.Timer = 0) then
begin
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 10, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 10, Gear^.Hedgehog, EXPLAutoSound);
for i:= -19 to 19 do
FollowGear := AddGear(hwRound(Gear^.X) + i div 3, hwRound(Gear^.Y), gtFlame, 0, _0_001 * i, _0, 0);
DeleteGear(Gear);
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/HHHandlers.inc
--- a/hedgewars/HHHandlers.inc Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/HHHandlers.inc Mon Jan 17 23:22:52 2011 +0100
@@ -100,6 +100,8 @@
Hedgehog: PHedgehog;
s: boolean;
begin
+s:= false;
+
weap:= TAmmoType(Gear^.MsgParam);
Hedgehog:= Gear^.Hedgehog;
@@ -223,7 +225,11 @@
amSMine: FollowGear:= AddGear(hwRound(lx), hwRound(ly), gtSMine, 0, xx*Power/cPowerDivisor, yy*Power/cPowerDivisor, 0);
amDEagle: CurAmmoGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtDEagleShot, 0, xx * _0_5, yy * _0_5, 0);
amSineGun: CurAmmoGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtSineGunShot, 0, xx * _0_5, yy * _0_5, 0);
- amPortalGun: AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtPortal, 0, xx * _0_6, yy * _0_6, 0);
+ amPortalGun: begin
+ AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtPortal, 0, xx * _0_6, yy * _0_6,
+ // set selected color
+ CurWeapon^.Pos);
+ end;
amSniperRifle: begin
PlaySound(sndSniperReload);
CurAmmoGear:= AddGear(hwRound(lx + xx * cHHRadius), hwRound(ly + yy * cHHRadius), gtSniperRifleShot, 0, xx * _0_5, yy * _0_5, 0);
@@ -398,7 +404,7 @@
if Gear^.Timer = 1 then
begin
Gear^.State:= Gear^.State or gstNoDamage;
- doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, EXPLAutoSound);
+ doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 30, CurrentHedgehog, EXPLAutoSound);
AddGear(hwRound(Gear^.X), hwRound(Gear^.Y), gtGrave, 0, _0, _0, 0)^.Hedgehog:= Gear^.Hedgehog;
DeleteGear(Gear);
SetAllToActive
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/VGSHandlers.inc
--- a/hedgewars/VGSHandlers.inc Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/VGSHandlers.inc Mon Jan 17 23:22:52 2011 +0100
@@ -24,14 +24,23 @@
with Gear^ do
begin
inc(FrameTicks, Steps);
- if FrameTicks > vobFrameTicks then
+ if not SuddenDeathDmg and (FrameTicks > vobFrameTicks) then
begin
dec(FrameTicks, vobFrameTicks);
inc(Frame);
if Frame = vobFramesCount then Frame:= 0
+ end
+ else if SuddenDeathDmg and (FrameTicks > vobSDFrameTicks) then
+ begin
+ dec(FrameTicks, vobSDFrameTicks);
+ inc(Frame);
+ if Frame = vobSDFramesCount then Frame:= 0
end;
X:= X + (cWindSpeedf * 200 + dX + tdX) * Steps;
- Y:= Y + (dY + tdY + cGravityf * vobFallSpeed) * Steps;
+ if SuddenDeathDmg then
+ Y:= Y + (dY + tdY + cGravityf * vobSDFallSpeed) * Steps
+ else
+ Y:= Y + (dY + tdY + cGravityf * vobFallSpeed) * Steps;
Angle:= Angle + dAngle * Steps;
if Angle > 360 then
Angle:= Angle - 360
@@ -663,8 +672,8 @@
else dec(tmp);
if tmp < round(dX) then tdY:= 1;
if tmp > round(dY) then tdY:= -1;
- if tmp > 255 then tmp := 255;
- if tmp < 0 then tmp := 0;
+ if tmp > 255 then tmp := 255;
+ if tmp < 0 then tmp := 0;
Gear^.Tint:= (Gear^.Tint and $FFFFFF00) or tmp
end
end
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/hwengine.pas
--- a/hedgewars/hwengine.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/hwengine.pas Mon Jan 17 23:22:52 2011 +0100
@@ -60,6 +60,7 @@
gsStart: begin
if HasBorder then DisableSomeWeapons;
AddClouds;
+ AddFlakes;
AssignHHCoords;
AddMiscGears;
StoreLoad;
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uAmmos.pas
--- a/hedgewars/uAmmos.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uAmmos.pas Mon Jan 17 23:22:52 2011 +0100
@@ -94,7 +94,6 @@
Ammoz[a].Probability:= probability[byte(ammoProbability[ord(a)]) - byte('0')];
Ammoz[a].SkipTurns:= (byte(ammoDelay[ord(a)]) - byte('0'));
Ammoz[a].NumberInCase:= (byte(ammoReinforcement[ord(a)]) - byte('0'));
- if (TrainingFlags and tfIgnoreDelays) <> 0 then Ammoz[a].SkipTurns:= 0;
cnt:= byte(ammoLoadout[ord(a)]) - byte('0');
// avoid things we already have infinite number
if cnt = 9 then
@@ -320,15 +319,12 @@
with CurWeapon^ do
begin
- if AmmoType <> amNothing then
- begin
- s:= trammo[Ammoz[AmmoType].NameId];
- if (Count <> AMMO_INFINITE) and not (Hedgehog.Team^.ExtDriven or (Hedgehog.BotLevel > 0)) then
- s:= s + ' (' + IntToStr(Count) + ')';
- if (Propz and ammoprop_Timerable) <> 0 then
- s:= s + ', ' + IntToStr(Timer div 1000) + ' ' + trammo[sidSeconds];
- AddCaption(s, Team^.Clan^.Color, capgrpAmmoinfo);
- end;
+ s:= trammo[Ammoz[AmmoType].NameId];
+ if (Count <> AMMO_INFINITE) and not (Hedgehog.Team^.ExtDriven or (Hedgehog.BotLevel > 0)) then
+ s:= s + ' (' + IntToStr(Count) + ')';
+ if (Propz and ammoprop_Timerable) <> 0 then
+ s:= s + ', ' + IntToStr(Timer div 1000) + ' ' + trammo[sidSeconds];
+ AddCaption(s, Team^.Clan^.Color, capgrpAmmoinfo);
if (Propz and ammoprop_NeedTarget) <> 0
then begin
Gear^.State:= Gear^.State or gstHHChooseTarget;
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uCaptions.pas
--- a/hedgewars/uCaptions.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uCaptions.pas Mon Jan 17 23:22:52 2011 +0100
@@ -39,14 +39,11 @@
grp: TCapGroup;
offset: LongInt;
begin
- {$IFDEF IPHONEOS}
+{$IFDEF IPHONEOS}
offset:= 40;
- {$ELSE}
- if ((TrainingFlags and tfTimeTrial) <> 0) and (TimeTrialStartTime > 0) then
- offset:= 48
- else
- offset:= 8;
- {$ENDIF}
+{$ELSE}
+ offset:= 8;
+{$ENDIF}
for grp:= Low(TCapGroup) to High(TCapGroup) do
with Captions[grp] do
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uCollisions.pas
--- a/hedgewars/uCollisions.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uCollisions.pas Mon Jan 17 23:22:52 2011 +0100
@@ -44,6 +44,7 @@
function TestCollisionXKick(Gear: PGear; Dir: LongInt): boolean;
function TestCollisionYKick(Gear: PGear; Dir: LongInt): boolean;
+function TestCollisionX(Gear: PGear; Dir: LongInt): boolean;
function TestCollisionY(Gear: PGear; Dir: LongInt): boolean;
function TestCollisionXwithXYShift(Gear: PGear; ShiftX: hwFloat; ShiftY: LongInt; Dir: LongInt): boolean;
@@ -289,6 +290,24 @@
Gear^.X:= Gear^.X - ShiftX;
Gear^.Y:= Gear^.Y - int2hwFloat(ShiftY)
end;
+function TestCollisionX(Gear: PGear; Dir: LongInt): boolean;
+var x, y, i: LongInt;
+begin
+x:= hwRound(Gear^.X);
+if Dir < 0 then x:= x - Gear^.Radius
+ else x:= x + Gear^.Radius;
+if (x and LAND_WIDTH_MASK) = 0 then
+ begin
+ y:= hwRound(Gear^.Y) - Gear^.Radius + 1;
+ i:= y + Gear^.Radius * 2 - 2;
+ repeat
+ if (y and LAND_HEIGHT_MASK) = 0 then
+ if Land[y, x] > 255 then exit(true);
+ inc(y)
+ until (y > i);
+ end;
+TestCollisionX:= false
+end;
function TestCollisionY(Gear: PGear; Dir: LongInt): boolean;
var x, y, i: LongInt;
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uCommandHandlers.pas
--- a/hedgewars/uCommandHandlers.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uCommandHandlers.pas Mon Jan 17 23:22:52 2011 +0100
@@ -589,7 +589,6 @@
RegisterVariable('minesnum', vtLongInt, @cLandMines , false);
RegisterVariable('explosives',vtLongInt,@cExplosives , false);
RegisterVariable('gmflags' , vtLongInt, @GameFlags , false);
- RegisterVariable('trflags' , vtLongInt, @TrainingFlags , false);
RegisterVariable('turntime', vtLongInt, @cHedgehogTurnTime, false);
RegisterVariable('minestime',vtLongInt, @cMinesTime , false);
RegisterVariable('fort' , vtCommand, @chFort , false);
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uConsts.pas
--- a/hedgewars/uConsts.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uConsts.pas Mon Jan 17 23:22:52 2011 +0100
@@ -69,7 +69,7 @@
rqNoBackground= $00000004; // don't draw background
rqSimpleRope = $00000008; // draw rope using lines only
rq2DWater = $00000010; // disable 3D water effect
- rqFancyBoom = $00000020; // no fancy explosion effects
+ rqAntiBoom = $00000020; // no fancy explosion effects
rqKillFlakes = $00000040; // no flakes
rqSlowMenu = $00000080; // ammomenu appears with no animation
rqPlainSplash = $00000100; // no droplets
@@ -116,6 +116,7 @@
cCursorEdgesDist : LongInt = 100;
cTeamHealthWidth : LongInt = 128;
cWaterOpacity : byte = $80;
+ cSDWaterOpacity : byte = $80;
cifRandomize = $00000001;
cifTheme = $00000002;
@@ -162,14 +163,6 @@
cSendEmptyPacketTime = 1000;
trigTurns = $80000001;
- // Training Flags
- tfNone = $00000000;
- tfTimeTrial = $00000001;
- tfRCPlane = $00000002;
- tfSpawnTargets = $00000004;
- tfIgnoreDelays = $00000008;
- tfTargetRespawn = $00000010;
-
gfAny = $FFFFFFFF;
gfOneClanMode = $00000001; // used in trainings
gfMultiWeapon = $00000002; // used in trainings
@@ -194,7 +187,7 @@
gfInfAttack = $00100000;
gfResetWeps = $00200000;
gfPerHogAmmo = $00400000;
- gfDisableWind = $00800000; // only lua for now
+ gfDisableWind = $00800000;
gfMoreWind = $01000000;
// NOTE: When adding new game flags, ask yourself
// if a "game start notice" would be useful. If so,
@@ -252,7 +245,7 @@
ammoprop_NotBorder = $00000800;
ammoprop_Utility = $00001000;
ammoprop_Effect = $00002000;
- ammoprop_NoRoundEnd=$10000000;
+ ammoprop_NoRoundEnd = $10000000;
AMMO_INFINITE = 100;
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uGears.pas
--- a/hedgewars/uGears.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uGears.pas Mon Jan 17 23:22:52 2011 +0100
@@ -29,7 +29,7 @@
procedure ResurrectHedgehog(gear: PGear);
procedure ProcessGears;
procedure EndTurnCleanup;
-procedure ApplyDamage(Gear: PGear; Damage: Longword; Source: TDamageSource);
+procedure ApplyDamage(Gear: PGear; AttackerHog: PHedgehog; Damage: Longword; Source: TDamageSource);
procedure SetAllToActive;
procedure SetAllHHToActive;
procedure DrawGears;
@@ -50,8 +50,7 @@
uCommands, uUtils, uTextures, uRenderUtils, uGearsRender, uCaptions, uDebug, uLandTexture;
-procedure doMakeExplosion(X, Y, Radius: LongInt; Mask: LongWord); forward;
-procedure doMakeExplosion(X, Y, Radius: LongInt; Mask, Tint: LongWord); forward;
+procedure doMakeExplosion(X, Y, Radius: LongInt; AttackingHog: PHedgehog; Mask: Longword; const Tint: LongWord = $FFFFFFFF); forward;
procedure AmmoShove(Ammo: PGear; Damage, Power: LongInt); forward;
//procedure AmmoFlameWork(Ammo: PGear); forward;
function GearsNear(X, Y: hwFloat; Kind: TGearType; r: LongInt): TPGearArray; forward;
@@ -205,7 +204,7 @@
gear^.ImpactSound:= sndNone;
gear^.nImpactSounds:= 0;
-if CurrentTeam <> nil then
+if CurrentHedgehog <> nil then
begin
gear^.Hedgehog:= CurrentHedgehog;
gear^.IntersectGear:= CurrentHedgehog^.Gear
@@ -477,7 +476,8 @@
gear^.nImpactSounds:= 1;
gear^.AdvBounce:= 0;
gear^.Radius:= 16;
- gear^.Tag:= 0;
+ // set color
+ gear^.Tag:= 2 * gear^.Timer;
gear^.Timer:= 15000;
gear^.RenderTimer:= false;
gear^.Health:= 100;
@@ -556,9 +556,12 @@
begin
t:= max(Gear^.Damage, Gear^.Health);
Gear^.Damage:= t;
- if (cWaterOpacity < $FF) and (hwRound(Gear^.Y) < cWaterLine + 256) then
+ if ((not SuddenDeathDmg and (cWaterOpacity < $FF)) or (SuddenDeathDmg and (cWaterOpacity < $FF))) and (hwRound(Gear^.Y) < cWaterLine + 256) then
spawnHealthTagForHH(Gear, t);
- uStats.HedgehogDamaged(Gear)
+
+ // should be not CurrentHedgehog, but hedgehog of the last gear which caused damage to this hog
+ // same stand for CheckHHDamage
+ uStats.HedgehogDamaged(Gear, CurrentHedgehog)
end;
team:= Gear^.Hedgehog^.Team;
@@ -595,6 +598,7 @@
if CurAmmoGear = Gear then CurAmmoGear:= nil;
if FollowGear = Gear then FollowGear:= nil;
+if lastGearByUID = Gear then lastGearByUID := nil;
RemoveGearFromList(Gear);
Dispose(Gear)
end;
@@ -614,7 +618,7 @@
(not Gear^.Invulnerable) then
begin
CheckNoDamage:= false;
- uStats.HedgehogDamaged(Gear);
+
dmg:= Gear^.Damage;
if Gear^.Health < dmg then
begin
@@ -791,11 +795,20 @@
stHealth: begin
if (cWaterRise <> 0) or (cHealthDecrease <> 0) then
begin
- if (TotalRounds = cSuddenDTurns) and not SuddenDeathDmg and not isInMultiShoot then
+ if (TotalRounds = cSuddenDTurns) and not SuddenDeath and not isInMultiShoot then
begin
- SuddenDeathDmg:= true;
+ SuddenDeath:= true;
+ if cHealthDecrease <> 0 then
+ begin
+ SuddenDeathDmg:= true;
+ ChangeToSDClouds;
+ ChangeToSDFlakes;
+ glClearColor(SDSkyColor.r / 255, SDSkyColor.g / 255, SDSkyColor.b / 255, 0.99);
+ end;
AddCaption(trmsg[sidSuddenDeath], cWhiteColor, capgrpGameState);
- playSound(sndSuddenDeath)
+ playSound(sndSuddenDeath);
+ MusicFN:= SDMusic;
+ ChangeMusic
end
else if (TotalRounds < cSuddenDTurns) and not isInMultiShoot then
begin
@@ -976,13 +989,14 @@
RecountTeamHealth(TeamsArray[i])
end;
-procedure ApplyDamage(Gear: PGear; Damage: Longword; Source: TDamageSource);
+procedure ApplyDamage(Gear: PGear; AttackerHog: PHedgehog; Damage: Longword; Source: TDamageSource);
var s: shortstring;
vampDmg, tmpDmg, i: Longword;
vg: PVisualGear;
begin
if (Gear^.Kind = gtHedgehog) and (Damage>=1) then
begin
+ uStats.HedgehogDamaged(Gear, AttackerHog);
HHHurt(Gear^.Hedgehog, Source);
AddDamageTag(hwRound(Gear^.X), hwRound(Gear^.Y), Damage, Gear^.Hedgehog^.Team^.Clan^.Color);
tmpDmg:= min(Damage, max(0,Gear^.Health-Gear^.Damage));
@@ -1018,7 +1032,11 @@
spawnHealthTagForHH(CurrentHedgehog^.Gear, tmpDmg);
end;
end;
- end;
+ end else // not gtHedgehog
+ begin
+ AddFileLog('Assigning hedgehog ' + inttostr(LongInt(AttackerHog)) + ' to gear ' + inttostr(Gear^.uid));
+ Gear^.Hedgehog:= AttackerHog;
+ end;
inc(Gear^.Damage, Damage);
ScriptCall('onGearDamage', Gear^.UID, Damage);
end;
@@ -1042,7 +1060,7 @@
t:= GearsList;
while t <> nil do
begin
- if t^.Kind = gtHedgehog then t^.Active:= true;
+ if (t^.Kind = gtHedgehog) or (t^.Kind = gtExplosives) then t^.Active:= true;
t:= t^.NextGear
end
end;
@@ -1081,21 +1099,22 @@
begin
AddGear(0, 0, gtATStartGame, 0, _0, _0, 2000);
-if (TrainingFlags and tfSpawnTargets) <> 0 then
- begin
- TrainingTargetGear:= AddGear(0, 0, gtTarget, 0, _0, _0, 0);
- FindPlace(TrainingTargetGear, false, 0, LAND_WIDTH);
- end;
-
-for i:= 0 to Pred(cLandMines) do
+i:= 0;
+Gear:= PGear(1);
+while (i < cLandMines) {and (Gear <> nil)} do // disable this check until better solution found
begin
Gear:= AddGear(0, 0, gtMine, 0, _0, _0, 0);
FindPlace(Gear, false, 0, LAND_WIDTH);
+ inc(i)
end;
-for i:= 0 to Pred(cExplosives) do
+
+i:= 0;
+Gear:= PGear(1);
+while (i < cExplosives){ and (Gear <> nil)} do
begin
Gear:= AddGear(0, 0, gtExplosives, 0, _0, _0, 0);
FindPlace(Gear, false, 0, LAND_WIDTH);
+ inc(i)
end;
if (GameFlags and gfLowGravity) <> 0 then
@@ -1121,20 +1140,15 @@
if (GameFlags and gfArtillery) <> 0 then
cArtillery:= true;
-if not hasBorder and ((Theme = 'Snow') or (Theme = 'Christmas')) then
+if not hasBorder and ((Theme = 'Snow') or (Theme = 'Christmas')) and ((cReducedQuality and rqLowRes) = 0) then
begin
for i:= 0 to Pred(vobCount*2) do
- AddGear(GetRandom(LAND_WIDTH+1024)-512, LAND_HEIGHT - GetRandom(1024), gtFlake, 0, _0, _0, 0);
+ AddGear(GetRandom(LAND_WIDTH+1024)-512, LAND_HEIGHT - GetRandom(LAND_HEIGHT div 2), gtFlake, 0, _0, _0, 0);
disableLandBack:= true
end
end;
-procedure doMakeExplosion(X, Y, Radius: LongInt; Mask: LongWord);
-begin
-doMakeExplosion(X, Y, Radius, Mask, $FFFFFFFF);
-end;
-
-procedure doMakeExplosion(X, Y, Radius: LongInt; Mask, Tint: LongWord);
+procedure doMakeExplosion(X, Y, Radius: LongInt; AttackingHog: PHedgehog; Mask: Longword; const Tint: LongWord);
var Gear: PGear;
dmg, dmgRadius, dmgBase: LongInt;
fX, fY: hwFloat;
@@ -1188,7 +1202,7 @@
if (Mask and EXPLNoDamage) = 0 then
begin
if not Gear^.Invulnerable then
- ApplyDamage(Gear, dmg, dsExplosion)
+ ApplyDamage(Gear, AttackingHog, dmg, dsExplosion)
else
Gear^.State:= Gear^.State or gstWinner;
end;
@@ -1254,7 +1268,7 @@
gtTarget,
gtExplosives: begin
if (not t^.Invulnerable) then
- ApplyDamage(t, dmg, dsBullet)
+ ApplyDamage(t, Gear^.Hedgehog, dmg, dsBullet)
else
Gear^.State:= Gear^.State or gstWinner;
@@ -1301,13 +1315,13 @@
tmpDmg:= ModifyDamage(Damage, Gear);
if (Gear^.State and gstNoDamage) = 0 then
begin
-
+
if (Ammo^.Kind = gtDEagleShot) or (Ammo^.Kind = gtSniperRifleShot) then
begin
VGear := AddVisualGear(hwround(Ammo^.X), hwround(Ammo^.Y), vgtBulletHit);
if VGear <> nil then VGear^.Angle := DxDy2Angle(-Ammo^.dX, Ammo^.dY);
end;
-
+
if (Gear^.Kind = gtHedgehog) and (Ammo^.State and gsttmpFlag <> 0) and (Ammo^.Kind = gtShover) then Gear^.FlightTime:= 1;
case Gear^.Kind of
@@ -1319,10 +1333,10 @@
gtExplosives: begin
if (Ammo^.Kind = gtDrill) then begin Ammo^.Timer:= 0; exit; end;
if (not Gear^.Invulnerable) then
- ApplyDamage(Gear, tmpDmg, dsShove)
+ ApplyDamage(Gear, Ammo^.Hedgehog, tmpDmg, dsShove)
else
Gear^.State:= Gear^.State or gstWinner;
- if (Gear^.Kind = gtExplosives) and (Ammo^.Kind = gtBlowtorch) then ApplyDamage(Gear, tmpDmg * 100, dsUnknown); // crank up damage for explosives + blowtorch
+ if (Gear^.Kind = gtExplosives) and (Ammo^.Kind = gtBlowtorch) then ApplyDamage(Gear, Ammo^.Hedgehog, tmpDmg * 100, dsUnknown); // crank up damage for explosives + blowtorch
DeleteCI(Gear);
if (Gear^.Kind = gtHedgehog) and Gear^.Hedgehog^.King then
@@ -1424,12 +1438,13 @@
var
t: PGear;
begin
+ r:= r*r;
GearsNear := nil;
t := GearsList;
while t <> nil do begin
if (t^.Kind = Kind) then begin
if (X - t^.X)*(X - t^.X) + (Y - t^.Y)*(Y-t^.Y) <
- int2hwFloat(r)*int2hwFloat(r) then
+ int2hwFloat(r) then
begin
SetLength(GearsNear, Length(GearsNear)+1);
GearsNear[High(GearsNear)] := t;
@@ -1513,7 +1528,6 @@
gear^.dX := _0;
gear^.dY := _0;
gear^.State := gstWait;
- uStats.HedgehogDamaged(gear);
gear^.Damage := 0;
gear^.Health := gear^.Hedgehog^.InitialHealth;
gear^.Hedgehog^.Effects[hePoisoned] := false;
@@ -1776,13 +1790,20 @@
var gear: PGear;
begin
GearByUID:= nil;
+if uid = 0 then exit;
+if (lastGearByUID <> nil) and (lastGearByUID^.uid = uid) then
+ begin
+ GearByUID:= lastGearByUID;
+ exit
+ end;
gear:= GearsList;
while gear <> nil do
begin
if gear^.uid = uid then
begin
- GearByUID:= gear;
- exit
+ lastGearByUID:= gear;
+ GearByUID:= gear;
+ exit
end;
gear:= gear^.NextGear
end
@@ -1830,7 +1851,7 @@
if (x < 4) and (TeamsArray[t] <> nil) then
begin
// if team matches current hedgehog team, default to current hedgehog
- if (i = 0) and (CurrentHedgehog^.Team = TeamsArray[t]) then hh:= CurrentHedgehog
+ if (i = 0) and (CurrentHedgehog <> nil) and (CurrentHedgehog^.Team = TeamsArray[t]) then hh:= CurrentHedgehog
else
begin
// otherwise use the first living hog or the hog amongs the remaining ones indicated by i
@@ -1847,12 +1868,15 @@
inc(j)
end
end;
- if hh <> nil then Gear:= AddVisualGear(0, 0, vgtSpeechBubble);
- if Gear <> nil then
+ if hh <> nil then
begin
- Gear^.Hedgehog:= hh;
- Gear^.Text:= text;
- Gear^.FrameTicks:= x
+ Gear:= AddVisualGear(0, 0, vgtSpeechBubble);
+ if Gear <> nil then
+ begin
+ Gear^.Hedgehog:= hh;
+ Gear^.Text:= text;
+ Gear^.FrameTicks:= x
+ end
end
//else ParseCommand('say ' + text, true)
end
@@ -1871,9 +1895,9 @@
CurAmmoGear:= nil;
GearsList:= nil;
KilledHHs:= 0;
+ SuddenDeath:= false;
SuddenDeathDmg:= false;
SpeechType:= 1;
- TrainingTargetGear:= nil;
skipFlag:= false;
AllInactive:= false;
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uGearsRender.pas
--- a/hedgewars/uGearsRender.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uGearsRender.pas Mon Jan 17 23:22:52 2011 +0100
@@ -186,7 +186,7 @@
if (Gear^.State and gstHHDeath) <> 0 then
begin
DrawSprite(sprHHDeath, ox - 16, oy - 26, Gear^.Pos);
- Tint(HH^.Team^.Clan^.Color);
+ Tint(HH^.Team^.Clan^.Color shl 8 or $FF);
DrawSprite(sprHHDeath, ox - 16, oy - 26, Gear^.Pos + 8);
Tint($FF, $FF, $FF, $FF);
exit
@@ -353,7 +353,7 @@
i*DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + hAngle);
if HatTex^.w > 64 then
begin
- Tint(HH^.Team^.Clan^.Color);
+ Tint(HH^.Team^.Clan^.Color shl 8 or $FF);
DrawRotatedTextureF(HatTex, 1.0, -1.0, -6.0, ox, oy, 32, i, 32, 32,
i*DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + hAngle);
Tint($FF, $FF, $FF, $FF)
@@ -383,7 +383,7 @@
32);
if HatTex^.w > 64 then
begin
- Tint(HH^.Team^.Clan^.Color);
+ Tint(HH^.Team^.Clan^.Color shl 8 or $FF);
DrawTextureF(HatTex,
1,
sx,
@@ -555,7 +555,7 @@
amPortalGun: if (CurWeapon^.Timer and 2) <> 0 then // Add a new Hedgehog value instead of abusing timer?
DrawRotatedF(sprPortalGun, hx, hy, 0, sign, aangle)
else
- DrawRotatedF(sprPortalGun, hx, hy, 1+(CurWeapon^.Timer and 1), sign, aangle);
+ DrawRotatedF(sprPortalGun, hx, hy, 1+CurWeapon^.Pos, sign, aangle);
amSniperRifle: DrawRotatedF(sprSniperRifle, hx, hy, 0, sign, aangle);
amBlowTorch: DrawRotated(sprHandBlowTorch, hx, hy, sign, aangle);
amCake: DrawRotated(sprHandCake, hx, hy, sign, aangle);
@@ -705,7 +705,7 @@
32);
if HatTex^.w > 64 then
begin
- Tint(HH^.Team^.Clan^.Color);
+ Tint(HH^.Team^.Clan^.Color shl 8 or $FF);
DrawTextureF(HatTex,
HatVisibility,
sx,
@@ -729,7 +729,7 @@
32);
if HatTex^.w > 64 then
begin
- Tint(HH^.Team^.Clan^.Color);
+ Tint(HH^.Team^.Clan^.Color shl 8 or $FF);
DrawTextureF(HatTex,
HatVisibility,
sx,
@@ -855,8 +855,6 @@
DrawRotated(sprPlane, x, y, -1, DxDy2Angle(Gear^.dX, Gear^.dY) + 90)
else
DrawRotated(sprPlane, x, y,0,DxDy2Angle(Gear^.dY, Gear^.dX));
- if ((TrainingFlags and tfRCPlane) <> 0) and (TrainingTargetGear <> nil) and ((Gear^.State and gstDrowning) = 0) then
- DrawRotatedf(sprFinger, x, y, GameTicks div 32 mod 16, 0, DxDy2Angle(Gear^.X - TrainingTargetGear^.X, TrainingTargetGear^.Y - Gear^.Y));
end;
gtBall: DrawRotatedf(sprBalls, x, y, Gear^.Tag,0, Gear^.DirAngle);
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uIO.pas
--- a/hedgewars/uIO.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uIO.pas Mon Jan 17 23:22:52 2011 +0100
@@ -99,18 +99,18 @@
procedure InitIPC;
var ipaddr: TIPAddress;
begin
-WriteToConsole('Init SDL_Net... ');
-SDLTry(SDLNet_Init = 0, true);
-fds:= SDLNet_AllocSocketSet(1);
-SDLTry(fds <> nil, true);
-WriteLnToConsole(msgOK);
-WriteToConsole('Establishing IPC connection... ');
-{$HINTS OFF}
-SDLTry(SDLNet_ResolveHost(ipaddr, '127.0.0.1', ipcPort) = 0, true);
-{$HINTS ON}
-IPCSock:= SDLNet_TCP_Open(ipaddr);
-SDLTry(IPCSock <> nil, true);
-WriteLnToConsole(msgOK)
+ WriteToConsole('Init SDL_Net... ');
+ SDLTry(SDLNet_Init = 0, true);
+ fds:= SDLNet_AllocSocketSet(1);
+ SDLTry(fds <> nil, true);
+ WriteLnToConsole(msgOK);
+ WriteToConsole('Establishing IPC connection to tcp 127.0.0.1:' + IntToStr(ipcPort) + ' ');
+ {$HINTS OFF}
+ SDLTry(SDLNet_ResolveHost(ipaddr, '127.0.0.1', ipcPort) = 0, true);
+ {$HINTS ON}
+ IPCSock:= SDLNet_TCP_Open(ipaddr);
+ SDLTry(IPCSock <> nil, true);
+ WriteLnToConsole(msgOK)
end;
procedure CloseIPC;
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uKeys.pas
--- a/hedgewars/uKeys.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uKeys.pas Mon Jan 17 23:22:52 2011 +0100
@@ -324,7 +324,6 @@
DefaultBinds[KeyNameToCode('right')]:= '+right';
DefaultBinds[KeyNameToCode('left_shift')]:= '+precise';
{$ENDIF}
-DefaultBinds[1000]:= 'forcequit';
for i:= 1 to 10 do DefaultBinds[KeyNameToCode('f'+IntToStr(i))]:= 'slot '+IntToStr(i);
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uLandGraphics.pas
--- a/hedgewars/uLandGraphics.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uLandGraphics.pas Mon Jan 17 23:22:52 2011 +0100
@@ -27,6 +27,7 @@
Left, Right: LongInt;
end;
+function addBgColor(OldColor, NewColor: LongWord): LongWord;
function SweepDirty: boolean;
function Despeckle(X, Y: LongInt): boolean;
function CheckLandValue(X, Y: LongInt; LandFlag: Word): boolean;
@@ -42,6 +43,31 @@
implementation
uses SDLh, uLandTexture, uVariables, uUtils, uDebug;
+function addBgColor(OldColor, NewColor: LongWord): LongWord;
+// Factor ranges from 0 to 100% NewColor
+var
+ oRed, oBlue, oGreen, oAlpha, nRed, nBlue, nGreen, nAlpha: Byte;
+begin
+ // Get colors
+ oAlpha := (OldColor shr 24) and $FF;
+ oRed := (OldColor shr 16) and $FF;
+ oGreen := (OldColor shr 8) and $FF;
+ oBlue := (OldColor) and $FF;
+
+ nAlpha := (NewColor shr 24) and $FF;
+ nRed := (NewColor shr 16) and $FF;
+ nGreen := (NewColor shr 8) and $FF;
+ nBlue := (NewColor) and $FF;
+
+ // Mix colors
+ nAlpha := min(255, oAlpha + nAlpha);
+ nRed := ((oRed * oAlpha) + (nRed * (255-oAlpha))) div 255;
+ nGreen := ((oGreen * oAlpha) + (nGreen * (255-oAlpha))) div 255;
+ nBlue := ((oBlue * oAlpha) + (nBlue * (255-oAlpha))) div 255;
+
+ addBgColor := (nAlpha shl 24) or (nRed shl 16) or (nGreen shl 8) or (nBlue);
+end;
+
procedure FillCircleLines(x, y, dx, dy: LongInt; Value: Longword);
var i: LongInt;
begin
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uLandObjects.pas
--- a/hedgewars/uLandObjects.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uLandObjects.pas Mon Jan 17 23:22:52 2011 +0100
@@ -30,7 +30,7 @@
implementation
uses uStore, uConsts, uConsole, uRandom, uVisualGears, uSound, GLunit,
- uTypes, uVariables, uUtils, uDebug;
+ uTypes, uVariables, uUtils, uDebug, sysutils;
const MaxRects = 512;
MAXOBJECTRECTS = 16;
@@ -366,7 +366,7 @@
end;
procedure ReadThemeInfo(var ThemeObjects: TThemeObjects; var SprayObjects: TSprayObjects);
-var s: shortstring;
+var s, key: shortstring;
f: textfile;
i, ii, numFlakes: LongInt;
c1, c2: TSDL_Color;
@@ -388,91 +388,233 @@
filemode:= 0; // readonly
Reset(f);
-// read sky and explosion border colors
-Readln(f, c1.r, c1.g, c1. b);
-Readln(f, c2.r, c2.g, c2. b);
-// read water gradient colors
-Readln(f, WaterColorArray[0].r, WaterColorArray[0].g, WaterColorArray[0].b);
-Readln(f, WaterColorArray[2].r, WaterColorArray[2].g, WaterColorArray[2].b, cWaterOpacity);
-WaterColorArray[0].a := 255;
-WaterColorArray[2].a := 255;
-WaterColorArray[1]:= WaterColorArray[0];
-WaterColorArray[3]:= WaterColorArray[2];
+ThemeObjects.Count:= 0;
+SprayObjects.Count:= 0;
-glClearColor(c1.r / 255, c1.g / 255, c1.b / 255, 0.99); // sky color
-cExplosionBorderColor:= c2.value or AMask;
+while not eof(f) do
+ begin
+ Readln(f, s);
+ if Length(s) = 0 then continue;
+ if s[1] = ';' then continue;
+
+ i:= Pos('=', s);
+ key:= Trim(Copy(s, 1, Pred(i)));
+ Delete(s, 1, i);
-ReadLn(f, s);
-if MusicFN = '' then MusicFN:= s;
-
-ReadLn(f, cCloudsNumber);
-
-// TODO - adjust all the theme cloud numbers. This should not be a permanent fix
-//cCloudsNumber:= cCloudsNumber * (LAND_WIDTH div 2048);
-
-// scale number of clouds depending on screen space (two times land width)
-cCloudsNumber:= cCloudsNumber * cScreenSpace div LAND_WIDTH;
-
-Readln(f, ThemeObjects.Count);
-for i:= 0 to Pred(ThemeObjects.Count) do
- begin
- Readln(f, s); // filename
- with ThemeObjects.objs[i] do
+ if key = 'sky' then
+ begin
+ i:= Pos(',', s);
+ c1.r:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ c1.g:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ c1.b:= StrToInt(Trim(s));
+ glClearColor(c1.r / 255, c1.g / 255, c1.b / 255, 0.99);
+ SDSkyColor.r:= byte(c1.r * SDTint div 255);
+ SDSkyColor.g:= byte(c1.g * SDTint div 255);
+ SDSkyColor.b:= byte(c1.b * SDTint div 255);
+ end
+ else if key = 'border' then
+ begin
+ i:= Pos(',', s);
+ c2.r:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ c2.g:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ c2.b:= StrToInt(Trim(s));
+ cExplosionBorderColor:= c2.value or AMask;
+ end
+ else if key = 'water-top' then
+ begin
+ i:= Pos(',', s);
+ WaterColorArray[0].r:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ WaterColorArray[0].g:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ WaterColorArray[0].b:= StrToInt(Trim(s));
+ WaterColorArray[0].a := 255;
+ WaterColorArray[1]:= WaterColorArray[0];
+ end
+ else if key = 'water-bottom' then
+ begin
+ i:= Pos(',', s);
+ WaterColorArray[2].r:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ WaterColorArray[2].g:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ WaterColorArray[2].b:= StrToInt(Trim(s));
+ WaterColorArray[2].a := 255;
+ WaterColorArray[3]:= WaterColorArray[2];
+ end
+ else if key = 'water-opacity' then
+ begin
+ cWaterOpacity:= StrToInt(Trim(s));
+ cSDWaterOpacity:= cWaterOpacity
+ end
+ else if key = 'music' then MusicFN:= Trim(s)
+ else if key = 'clouds' then
+ begin
+ cCloudsNumber:= StrToInt(Trim(s)) * cScreenSpace div LAND_WIDTH;
+ cSDCloudsNumber:= cCloudsNumber
+ end
+ else if key = 'object' then
+ begin
+ inc(ThemeObjects.Count);
+ with ThemeObjects.objs[Pred(ThemeObjects.Count)] do
begin
- Surf:= LoadImage(Pathz[ptCurrTheme] + '/' + s, ifCritical or ifTransparent or ifIgnoreCaps);
+ i:= Pos(',', s);
+ Surf:= LoadImage(Pathz[ptCurrTheme] + '/' + Trim(Copy(s, 1, Pred(i))), ifCritical or ifTransparent or ifIgnoreCaps);
Width:= Surf^.w;
Height:= Surf^.h;
- Read(f, Maxcnt);
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ Maxcnt:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
if (Maxcnt < 1) or (Maxcnt > MAXTHEMEOBJECTS) then OutError('Object''s max count should be between 1 and '+ inttostr(MAXTHEMEOBJECTS) +' (it was '+ inttostr(Maxcnt) +').', true);
with inland do
begin
- Read(f, x, y, w, h);
+ i:= Pos(',', s);
+ x:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ y:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ w:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ h:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
CheckRect(Width, Height, x, y, w, h)
end;
- Read(f, rectcnt);
+ i:= Pos(',', s);
+ rectcnt:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
for ii:= 1 to rectcnt do
with outland[ii] do
begin
- Read(f, x, y, w, h);
+ i:= Pos(',', s);
+ x:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ y:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ w:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ if ii = rectcnt then h:= StrToInt(Trim(s))
+ else
+ begin
+ i:= Pos(',', s);
+ h:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i)
+ end;
CheckRect(Width, Height, x, y, w, h)
end;
- ReadLn(f)
+ end;
+ end
+ else if key = 'spray' then
+ begin
+ inc(SprayObjects.Count);
+ with SprayObjects.objs[Pred(SprayObjects.Count)] do
+ begin
+ i:= Pos(',', s);
+ Surf:= LoadImage(Pathz[ptCurrTheme] + '/' + Trim(Copy(s, 1, Pred(i))), ifCritical or ifTransparent or ifIgnoreCaps);
+ Width:= Surf^.w;
+ Height:= Surf^.h;
+ Delete(s, 1, i);
+ Maxcnt:= StrToInt(Trim(s));
+ end;
+ end
+ else if key = 'flakes' then
+ begin
+ i:= Pos(',', s);
+ vobCount:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ if vobCount > 0 then
+ begin
+ i:= Pos(',', s);
+ vobFramesCount:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ vobFrameTicks:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ vobVelocity:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ vobFallSpeed:= StrToInt(Trim(s));
+ vobCount:= vobCount * cScreenSpace div LAND_WIDTH;
end;
- end;
-
-// sprays
-Readln(f, SprayObjects.Count);
-for i:= 0 to Pred(SprayObjects.Count) do
- begin
- Readln(f, s); // filename
- with SprayObjects.objs[i] do
- begin
- Surf:= LoadImage(Pathz[ptCurrTheme] + '/' + s, ifCritical or ifTransparent or ifIgnoreCaps);
- Width:= Surf^.w;
- Height:= Surf^.h;
- ReadLn(f, Maxcnt)
- end;
+ end
+ else if key = 'sd-water-top' then
+ begin
+ i:= Pos(',', s);
+ SDWaterColorArray[0].r:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ SDWaterColorArray[0].g:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ SDWaterColorArray[0].b:= StrToInt(Trim(s));
+ SDWaterColorArray[0].a := 255;
+ SDWaterColorArray[1]:= SDWaterColorArray[0];
+ end
+ else if key = 'sd-water-bottom' then
+ begin
+ i:= Pos(',', s);
+ SDWaterColorArray[2].r:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ SDWaterColorArray[2].g:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ SDWaterColorArray[2].b:= StrToInt(Trim(s));
+ SDWaterColorArray[2].a := 255;
+ SDWaterColorArray[3]:= SDWaterColorArray[2];
+ end
+ else if key = 'sd-water-opacity' then cSDWaterOpacity:= StrToInt(Trim(s))
+ else if key = 'sd-clouds' then cSDCloudsNumber:= StrToInt(Trim(s)) * cScreenSpace div LAND_WIDTH
+ else if key = 'sd-flakes' then
+ begin
+ i:= Pos(',', s);
+ vobSDCount:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ if vobSDCount > 0 then
+ begin
+ i:= Pos(',', s);
+ vobSDFramesCount:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ vobSDFrameTicks:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ vobSDVelocity:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ vobSDFallSpeed:= StrToInt(Trim(s));
+ vobSDCount:= vobSDCount * cScreenSpace div LAND_WIDTH;
+ end;
+ end
+ else if key = 'rq-sky' then
+ begin
+ if ((cReducedQuality and rqNoBackground) <> 0) then
+ begin
+ i:= Pos(',', s);
+ c1.r:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ i:= Pos(',', s);
+ c1.g:= StrToInt(Trim(Copy(s, 1, Pred(i))));
+ Delete(s, 1, i);
+ c1.b:= StrToInt(Trim(s));
+ glClearColor(c1.r / 255, c1.g / 255, c1.b / 255, 0.99);
+ SDSkyColor.r:= byte(c1.r * SDTint div 255);
+ SDSkyColor.g:= byte(c1.g * SDTint div 255);
+ SDSkyColor.b:= byte(c1.b * SDTint div 255);
+ end
+ end
end;
-// snowflakes
-Readln(f, vobCount);
-if vobCount > 0 then
- Readln(f, vobFramesCount, vobFrameTicks, vobVelocity, vobFallSpeed);
-
-// adjust amount of flakes scaled by screen space
-vobCount:= longint(vobCount);
-numFlakes:= vobCount * cScreenSpace div LAND_WIDTH;
-
-if (cReducedQuality and rqKillFlakes) <> 0 then
- numFlakes:= 0;
-
-if ((GameFlags and gfBorder) <> 0) or ((Theme <> 'Snow') and (Theme <> 'Christmas')) then
- for i:= 0 to Pred(numFlakes) do
- AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake)
-else
- for i:= 0 to Pred(numFlakes div 3) do
- AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake);
-
Close(f);
{$I+}
TryDo(IOResult = 0, 'Bad data or cannot access file ' + cThemeCFGFilename, true);
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uLocale.pas
--- a/hedgewars/uLocale.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uLocale.pas Mon Jan 17 23:22:52 2011 +0100
@@ -44,7 +44,6 @@
loaded: boolean;
begin
loaded:= false;
-trammo[sidNothing]:= ' ';
for e:= Low(TEventId) to High(TEventId) do first[e]:= true;
{$I-} // iochecks off
@@ -69,7 +68,7 @@
TryDo(s[6] = '=', 'Load locale: "=" expected', true);
Delete(s, 1, 6);
case a of
- 0: if (b >=0) and (b <= ord(High(TAmmoStrId))) then trammo[TAmmoStrId(b+1)]:= s;
+ 0: if (b >=0) and (b <= ord(High(TAmmoStrId))) then trammo[TAmmoStrId(b)]:= s;
1: if (b >=0) and (b <= ord(High(TMsgStrId))) then trmsg[TMsgStrId(b)]:= s;
2: if (b >=0) and (b <= ord(High(TEventId))) then begin
TryDo(trevt_n[TEventId(b)] < MAX_EVENT_STRINGS, 'Too many event strings in ' + IntToStr(a) + ':' + IntToStr(b), false);
@@ -81,8 +80,8 @@
trevt[TEventId(b)][trevt_n[TEventId(b)]]:= s;
inc(trevt_n[TEventId(b)]);
end;
- 3: if (b >=0) and (b <= ord(High(TAmmoStrId))) then trammoc[TAmmoStrId(b+1)]:= s;
- 4: if (b >=0) and (b <= ord(High(TAmmoStrId))) then trammod[TAmmoStrId(b+1)]:= s;
+ 3: if (b >=0) and (b <= ord(High(TAmmoStrId))) then trammoc[TAmmoStrId(b)]:= s;
+ 4: if (b >=0) and (b <= ord(High(TAmmoStrId))) then trammod[TAmmoStrId(b)]:= s;
5: if (b >=0) and (b <= ord(High(TGoalStrId))) then trgoal[TGoalStrId(b)]:= s;
end;
end;
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uScript.pas
--- a/hedgewars/uScript.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uScript.pas Mon Jan 17 23:22:52 2011 +0100
@@ -57,7 +57,8 @@
uUtils,
uKeys,
uCaptions,
- uDebug;
+ uDebug,
+ uCollisions;
var luaState : Plua_State;
ScriptAmmoLoadout : shortstring;
@@ -272,6 +273,7 @@
t:= lua_tointeger(L, 7);
gear:= AddGear(x, y, gt, s, dx, dy, t);
+ lastGearByUID:= gear;
lua_pushinteger(L, gear^.uid)
end;
lc_addgear:= 1; // 1 return value
@@ -311,8 +313,12 @@
s:= lua_tointeger(L, 4);
c:= lua_toboolean(L, 5);
- vg:= AddVisualGear(x, y, vgt, s, c);
- if vg <> nil then lua_pushinteger(L, vg^.uid)
+ vg:= AddVisualGear(x, y, vgt, s, c);
+ if vg <> nil then
+ begin
+ lastVisualGearByUID:= vg;
+ lua_pushinteger(L, vg^.uid)
+ end
else lua_pushinteger(L, 0)
end;
lc_addvisualgear:= 1; // 1 return value
@@ -358,6 +364,11 @@
lua_pushinteger(L, vg^.Timer);
lua_pushinteger(L, vg^.Tint);
end
+ else
+ begin
+ lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L);
+ lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L); lua_pushnil(L)
+ end
end;
lc_getvisualgearvalues:= 10;
end;
@@ -962,6 +973,7 @@
function lc_setgearposition(L : Plua_State) : LongInt; Cdecl;
var gear: PGear;
+ col: boolean;
x, y: LongInt;
begin
if lua_gettop(L) <> 3 then
@@ -971,11 +983,14 @@
gear:= GearByUID(lua_tointeger(L, 1));
if gear <> nil then
begin
+ col:= gear^.CollisionIndex >= 0;
x:= lua_tointeger(L, 2);
y:= lua_tointeger(L, 3);
+ if col then DeleteCI(gear);
gear^.X:= int2hwfloat(x);
gear^.Y:= int2hwfloat(y);
- SetAllToActive;
+ if col then AddGearCI(gear);
+ SetAllToActive
end
end;
lc_setgearposition:= 0
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uSound.pas
--- a/hedgewars/uSound.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uSound.pas Mon Jan 17 23:22:52 2011 +0100
@@ -39,6 +39,7 @@
procedure PlayMusic;
procedure PauseMusic;
procedure ResumeMusic;
+procedure ChangeMusic;
procedure StopSound(snd: TSound);
procedure StopSound(chn: LongInt);
function ChangeVolume(voldelta: LongInt): LongInt;
@@ -318,6 +319,17 @@
Mix_ResumeMusic(Mus);
end;
+procedure ChangeMusic;
+begin
+ if (MusicFN = '') or (not isMusicEnabled) then
+ exit;
+
+ if Mus <> nil then
+ Mix_FreeMusic(Mus);
+
+ PlayMusic;
+end;
+
procedure chVoicepack(var s: shortstring);
begin
if CurrentTeam = nil then OutError(errmsgIncorrectUse + ' "/voicepack"', true);
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uStats.pas
--- a/hedgewars/uStats.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uStats.pas Mon Jan 17 23:22:52 2011 +0100
@@ -29,7 +29,7 @@
procedure freeModule;
procedure AmmoUsed(am: TAmmoType);
-procedure HedgehogDamaged(Gear: PGear);
+procedure HedgehogDamaged(Gear: PGear; Attacker: PHedgehog);
procedure Skipped;
procedure TurnReaction;
procedure SendStats;
@@ -50,19 +50,17 @@
vpHurtSameClan: PVoicepack = nil;
vpHurtEnemy: PVoicepack = nil;
-procedure HedgehogDamaged(Gear: PGear);
+procedure HedgehogDamaged(Gear: PGear; Attacker: PHedgehog);
begin
-if CurrentHedgehog^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan then
+if Attacker^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan then
vpHurtSameClan:= CurrentHedgehog^.Team^.voicepack
else
vpHurtEnemy:= Gear^.Hedgehog^.Team^.voicepack;
-if bBetweenTurns then exit;
-
//////////////////////////
-if Gear <> CurrentHedgehog^.Gear then
- inc(CurrentHedgehog^.stats.StepDamageGiven, Gear^.Damage);
+if Gear <> Attacker^.Gear then
+ inc(Attacker^.stats.StepDamageGiven, Gear^.Damage);
if CurrentHedgehog^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan then inc(DamageClan, Gear^.Damage);
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uStore.pas
--- a/hedgewars/uStore.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uStore.pas Mon Jan 17 23:22:52 2011 +0100
@@ -274,7 +274,9 @@
for ii:= Low(TSprite) to High(TSprite) do
with SpritesData[ii] do
// FIXME - add a sprite attribute
- if ((cReducedQuality and rqNoBackground) = 0) or (not (ii in [sprSky, sprSkyL, sprSkyR, sprHorizont, sprHorizontL, sprHorizontR, sprFlake, sprSplash, sprDroplet])) then // FIXME: hack
+ if ((cReducedQuality and rqNoBackground) = 0) or // FIXME: should check for both rqNoBackground and rqKillFlakes
+ (not (ii in [sprSky, sprSkyL, sprSkyR, sprHorizont, sprHorizontL, sprHorizontR, sprFlake, sprSplash, sprDroplet, sprSDSplash, sprSDDroplet]) or
+ (((Theme = 'Snow') or (Theme = 'Christmas')) and ((ii = sprFlake) or (ii = sprSDFlake)))) then // FIXME: hack; also should checked against rqLowRes
begin
if AltPath = ptNone then
if ii in [sprHorizontL, sprHorizontR, sprSkyL, sprSkyR] then // FIXME: hack
@@ -307,7 +309,8 @@
else
begin
Texture:= Surface2Tex(tmpsurf, false);
- if (ii = sprWater) and ((cReducedQuality and (rq2DWater or rqClampLess)) = 0) then // HACK: We should include some sprite attribute to define the texture wrap directions
+ // HACK: We should include some sprite attribute to define the texture wrap directions
+ if ((ii = sprWater) or (ii = sprSDWater)) and ((cReducedQuality and (rq2DWater or rqClampLess)) = 0) then
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
end;
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_PRIORITY, priority);
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uTypes.pas
--- a/hedgewars/uTypes.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uTypes.pas Mon Jan 17 23:22:52 2011 +0100
@@ -16,7 +16,7 @@
TPathType = (ptNone, ptData, ptGraphics, ptThemes, ptCurrTheme, ptTeams, ptMaps,
ptMapCurrent, ptDemos, ptSounds, ptGraves, ptFonts, ptForts,
- ptLocale, ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps);
+ ptLocale, ptAmmoMenu, ptHedgehog, ptVoices, ptHats, ptFlags, ptMissionMaps, ptSuddenDeath);
TSprite = (sprWater, sprCloud, sprBomb, sprBigDigit, sprFrame,
sprLag, sprArrow, sprBazookaShell, sprTargetP, sprBee,
@@ -52,7 +52,8 @@
sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote,
sprSMineOff, sprSMineOn, sprHandSMine, sprHammer,
sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb,
- sprBulletHit, sprSnowball, sprHandSnowball, sprSnow
+ sprBulletHit, sprSnowball, sprHandSnowball, sprSnow,
+ sprSDFlake, sprSDWater, sprSDCloud, sprSDSplash, sprSDDroplet
);
// Gears that interact with other Gears and/or Land
@@ -333,7 +334,7 @@
TurnNumber: LongWord;
end;
- TAmmoStrId = (sidNothing, sidGrenade, sidClusterBomb, sidBazooka, sidBee, sidShotgun,
+ TAmmoStrId = (sidGrenade, sidClusterBomb, sidBazooka, sidBee, sidShotgun,
sidPickHammer, sidSkip, sidRope, sidMine, sidDEagle,
sidDynamite, sidBaseballBat, sidFirePunch, sidSeconds,
sidParachute, sidAirAttack, sidMineStrike, sidBlowTorch,
@@ -343,7 +344,7 @@
sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime,
sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack,
sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb, sidSineGun, sidFlamethrower,
- sidSMine, sidHammer, sidResurrector, sidDrillStrike, sidSnowball);
+ sidSMine, sidHammer, sidResurrector, sidDrillStrike, sidSnowball, sidNothing);
TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused,
sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync,
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uUtils.pas
--- a/hedgewars/uUtils.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uUtils.pas Mon Jan 17 23:22:52 2011 +0100
@@ -254,15 +254,19 @@
l:= Utf8ToUnicode(@tmpstr, Str2PChar(s), length(s))-1;
i:= 0;
+
while i < l do
begin
u:= tmpstr[i];
- if (#$2E80 <= u) and (
- (u <= #$2FDF ) or // CJK Radicals Supplement / Kangxi Radicals
+ if (#$1100 <= u) and (
+ (u <= #$11FF ) or // Hangul Jamo
+ ((#$2E80 <= u) and (u <= #$2FDF)) or // CJK Radicals Supplement / Kangxi Radicals
((#$2FF0 <= u) and (u <= #$303F)) or // Ideographic Description Characters / CJK Radicals Supplement
+ ((#$3130 <= u) and (u <= #$318F)) or // Hangul Compatibility Jamo
((#$31C0 <= u) and (u <= #$31EF)) or // CJK Strokes
((#$3200 <= u) and (u <= #$4DBF)) or // Enclosed CJK Letters and Months / CJK Compatibility / CJK Unified Ideographs Extension A
((#$4E00 <= u) and (u <= #$9FFF)) or // CJK Unified Ideographs
+ ((#$AC00 <= u) and (u <= #$D7AF)) or // Hangul Syllables
((#$F900 <= u) and (u <= #$FAFF)) or // CJK Compatibility Ideographs
((#$FE30 <= u) and (u <= #$FE4F))) // CJK Compatibility Forms
then exit(THWFont( ord(font) + ((ord(High(THWFont))+1) div 2) ));
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uVariables.pas
--- a/hedgewars/uVariables.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uVariables.pas Mon Jan 17 23:22:52 2011 +0100
@@ -45,7 +45,6 @@
GameType : TGameType;
InputMask : LongWord;
GameFlags : Longword;
- TrainingFlags : Longword;
TurnTimeLeft : Longword;
ReadyTimeLeft : Longword;
cSuddenDTurns : LongInt;
@@ -66,6 +65,7 @@
cHealthDecrease : LongInt;
cCloudsNumber : LongInt;
+ cSDCloudsNumber : LongInt;
cTagsMask : byte;
zoom : GLfloat;
@@ -75,13 +75,6 @@
cGearScrEdgesDist: LongInt;
GameTicks : LongWord;
- TrainingTimeInc : Longword;
- TrainingTimeInD : Longword;
- TrainingTimeInM : Longword;
- TrainingTimeMax : Longword;
-
- TimeTrialStartTime: Longword;
- TimeTrialStopTime : Longword;
// originally from uConsts
Pathz: array[TPathType] of shortstring;
@@ -131,6 +124,9 @@
AttackBar : LongInt;
WaterColorArray : array[0..3] of HwColor4f;
+ SDWaterColorArray : array[0..3] of HwColor4f;
+ SDMusic : shortstring;
+ SDTint : LongInt;
CursorPoint : TPoint;
TargetPoint : TPoint;
@@ -175,7 +171,8 @@
'Sounds/voices', // ptVoices
'Graphics/Hats', // ptHats
'Graphics/Flags', // ptFlags
- 'Missions/Maps' // ptMissionMaps
+ 'Missions/Maps', // ptMissionMaps
+ 'Graphics/SuddenDeath' // ptSuddenDeath
);
cTagsMasks : array[0..15] of byte = (7, 0, 0, 0, 15, 6, 4, 5, 0, 0, 0, 0, 0, 14, 12, 13);
@@ -558,7 +555,17 @@
(FileName: 'amSnowball'; Path: ptCurrTheme; AltPath: ptHedgehog; Texture: nil; Surface: nil;
Width: 64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprHandSnowball
(FileName: 'Snow'; Path: ptCurrTheme; AltPath: ptGraphics; Texture: nil; Surface: nil;
- Width: 4; Height: 4; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpMedium; getDimensions: false; getImageDimensions: true) // sprSnow
+ Width: 4; Height: 4; imageWidth: 0; imageHeight: 0; saveSurf: true; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprSnow
+ (FileName: 'SDFlake'; Path: ptCurrTheme; AltPath: ptSuddenDeath; Texture: nil; Surface: nil;
+ Width: 64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true),// sprSDFlake
+ (FileName: 'SDWater'; Path: ptCurrTheme; AltPath: ptSuddenDeath; Texture: nil; Surface: nil;
+ Width: 0; Height: 0; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: true; getImageDimensions: true),// sprSDWater
+ (FileName: 'SDClouds'; Path: ptCurrTheme; AltPath: ptSuddenDeath; Texture: nil; Surface: nil;
+ Width: 256; Height:128; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHigh; getDimensions: false; getImageDimensions: true),// sprSDCloud
+ (FileName: 'SDSplash'; Path: ptCurrTheme; AltPath: ptSuddenDeath; Texture: nil; Surface: nil;
+ Width: 80; Height: 50; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprSDSplash
+ (FileName: 'SDDroplet'; Path: ptCurrTheme; AltPath: ptSuddenDeath; Texture: nil; Surface: nil;
+ Width: 16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpHighest; getDimensions: false; getImageDimensions: true)// sprSDDroplet
);
@@ -1967,7 +1974,7 @@
PosSprite: sprAmAirplane;
ejectX: 0;
ejectY: 0),
-// Snowball
+// Snowball/Mudball
(NameId: sidSnowball;
NameTex: nil;
Probability: 0;
@@ -2031,14 +2038,15 @@
LandBackSurface: PSDL_Surface;
digest: shortstring;
CurAmmoGear: PGear;
+ lastGearByUID: PGear;
GearsList: PGear;
AllInactive: boolean;
PrvInactive: boolean;
KilledHHs: Longword;
+ SuddenDeath: Boolean;
SuddenDeathDmg: Boolean;
SpeechType: Longword;
SpeechText: shortstring;
- TrainingTargetGear: PGear;
skipFlag: boolean;
PlacingHogs: boolean; // a convenience flag to indicate placement of hogs is still in progress
StepSoundTimer: LongInt;
@@ -2064,6 +2072,7 @@
bShowFinger: boolean;
Frames: Longword;
WaterColor, DeepWaterColor: TSDL_Color;
+ SDSkyColor: TSDL_Color;
SkyOffset: LongInt;
HorizontOffset: LongInt;
{$IFDEF COUNTTICKS}
@@ -2088,8 +2097,11 @@
VisualGearsList: PVisualGear;
+ lastVisualGearByUID: PVisualGear;
vobFrameTicks, vobFramesCount, vobCount: Longword;
vobVelocity, vobFallSpeed: LongInt;
+ vobSDFrameTicks, vobSDFramesCount, vobSDCount: Longword;
+ vobSDVelocity, vobSDFallSpeed: LongInt;
hideAmmoMenu: boolean;
@@ -2109,6 +2121,8 @@
DefaultBinds, CurrentBinds: TBinds;
+ coeff: LongInt;
+
{$IFDEF HWLIBRARY}
leftClick: boolean;
middleClick: boolean;
@@ -2143,6 +2157,9 @@
procedure initModule;
begin
+ lastVisualGearByUID:= nil;
+ lastGearByUID:= nil;
+
Pathz:= cPathz;
{* REFERENCE
4096 -> $FFFFF000
@@ -2150,25 +2167,39 @@
1024 -> $FFFFFC00
512 -> $FFFFFE00 *}
if (cReducedQuality and rqLowRes) <> 0 then
- begin
+ begin
LAND_WIDTH:= 2048;
LAND_HEIGHT:= 1024;
LAND_WIDTH_MASK:= $FFFFF800;
LAND_HEIGHT_MASK:= $FFFFFC00;
- end
+ end
else
- begin
+ begin
LAND_WIDTH:= 4096;
LAND_HEIGHT:= 2048;
LAND_WIDTH_MASK:= $FFFFF000;
LAND_HEIGHT_MASK:= $FFFFF800
- end;
+ end;
+
+ SDWaterColorArray[0].r := 182;
+ SDWaterColorArray[0].g := 144;
+ SDWaterColorArray[0].b := 201;
+ SDWaterColorArray[0].a := 255;
+ SDWaterColorArray[2].r := 150;
+ SDWaterColorArray[2].g := 112;
+ SDWaterColorArray[2].b := 169;
+ SDWaterColorArray[2].a := 255;
+ SDWaterColorArray[1]:= SDWaterColorArray[0];
+ SDWaterColorArray[3]:= SDWaterColorArray[2];
+
+ SDMusic:= 'main_theme.ogg';
+ SDTint:= $80;
cDrownSpeed.QWordValue := 257698038; // 0.06
cDrownSpeedf := 0.06;
cMaxWindSpeed.QWordValue:= 1073742; // 0.00025
- cWindSpeed.QWordValue := 429496; // 0.0001
- cWindSpeedf := 0.0001;
+ cWindSpeed.QWordValue := 0; // 0.0
+ cWindSpeedf := 0.0;
cGravity := cMaxWindSpeed * 2;
cGravityf := 0.00025 * 2;
cDamageModifier := _1;
@@ -2178,18 +2209,11 @@
CursorMovementX := 0;
CursorMovementY := 0;
GameTicks := 0;
- TrainingTimeInc := 10000;
- TrainingTimeInD := 500;
- TrainingTimeInM := 5000;
- TrainingTimeMax := 60000;
- TimeTrialStartTime := 0;
- TimeTrialStopTime := 0;
cWaterLine := LAND_HEIGHT;
cGearScrEdgesDist := 240;
InputMask := $FFFFFFFF;
GameFlags := 0;
- TrainingFlags := 0;
TurnTimeLeft := 0;
cSuddenDTurns := 15;
cDamagePercent := 100;
@@ -2202,6 +2226,7 @@
cMinesTime := 3000;
cMaxAIThinkTime := 9000;
cCloudsNumber := 9;
+ cSDCloudsNumber := 9;
cHealthCaseProb := 35;
cHealthCaseAmount := 25;
cWaterRise := 47;
@@ -2258,6 +2283,12 @@
cMaxCaptions:= 3
else
cMaxCaptions:= 4;
+
+ vobSDFrameTicks:= 0;
+ vobSDFramesCount:= 0;
+ vobSDCount:= 30 * cScreenSpace div LAND_WIDTH;
+ vobSDVelocity:= 0;
+ vobSDFallSpeed:= 0;
end;
procedure freeModule;
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uVisualGears.pas
--- a/hedgewars/uVisualGears.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uVisualGears.pas Mon Jan 17 23:22:52 2011 +0100
@@ -32,6 +32,9 @@
procedure DeleteVisualGear(Gear: PVisualGear);
function VisualGearByUID(uid : Longword) : PVisualGear;
procedure AddClouds;
+procedure ChangeToSDClouds;
+procedure AddFlakes;
+procedure ChangeToSDFlakes;
procedure AddDamageTag(X, Y, Damage, Color: LongWord);
implementation
@@ -110,7 +113,7 @@
exit
end;
-if ((cReducedQuality and rqFancyBoom) <> 0) and
+if ((cReducedQuality and rqAntiBoom) <> 0) and
not Critical and
not (Kind in
[vgtTeamHealthSorter,
@@ -143,13 +146,22 @@
Timer:= 0;
tdX:= 0;
tdY:= 0;
- FrameTicks:= random(vobFrameTicks);
- Frame:= random(vobFramesCount);
+ if SuddenDeathDmg then
+ begin
+ FrameTicks:= random(vobSDFrameTicks);
+ Frame:= random(vobSDFramesCount);
+ end
+ else
+ begin
+ FrameTicks:= random(vobFrameTicks);
+ Frame:= random(vobFramesCount);
+ end;
Angle:= random * 360;
dx:= 0.0000038654705 * random(10000);
dy:= 0.000003506096 * random(7000);
if random(2) = 0 then dx := -dx;
- dAngle:= (random(2) * 2 - 1) * (1 + random) * vobVelocity / 1000
+ if SuddenDeathDmg then dAngle:= (random(2) * 2 - 1) * (1 + random) * vobSDVelocity / 1000
+ else dAngle:= (random(2) * 2 - 1) * (1 + random) * vobVelocity / 1000
end;
vgtCloud: begin
Frame:= random(4);
@@ -328,6 +340,8 @@
if Gear^.PrevGear <> nil then Gear^.PrevGear^.NextGear:= Gear^.NextGear
else VisualGearsList:= Gear^.NextGear;
+ if lastVisualGearByUID = Gear then lastVisualGearByUID:= nil;
+
Dispose(Gear);
end;
@@ -382,11 +396,20 @@
begin
if Gear^.Tint <> $FFFFFFFF then Tint(Gear^.Tint);
case Gear^.Kind of
- vgtFlake: if vobVelocity = 0 then
- DrawSprite(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
+ vgtFlake: if SuddenDeathDmg then
+ if vobSDVelocity = 0 then
+ DrawSprite(sprSDFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
+ else
+ DrawRotatedF(sprSDFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle)
else
- DrawRotatedF(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
- vgtCloud: DrawSprite(sprCloud, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame);
+ if vobVelocity = 0 then
+ DrawSprite(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
+ else
+ DrawRotatedF(sprFlake, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame, 1, Gear^.Angle);
+ vgtCloud: if SuddenDeathDmg then
+ DrawSprite(sprSDCloud, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame)
+ else
+ DrawSprite(sprCloud, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy + SkyOffset, Gear^.Frame);
end;
if Gear^.Tint <> $FFFFFFFF then Tint($FF,$FF,$FF,$FF);
Gear:= Gear^.NextGear
@@ -406,7 +429,7 @@
DrawCentered(round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Tex)
end
end;
- if (cReducedQuality and rqFancyBoom) = 0 then
+ if (cReducedQuality and rqAntiBoom) = 0 then
case Gear^.Kind of
vgtSmoke: DrawSprite(sprSmoke, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame);
vgtSmokeWhite: DrawSprite(sprSmokeWhite, round(Gear^.X) + WorldDx - 11, round(Gear^.Y) + WorldDy - 11, 7 - Gear^.Frame);
@@ -435,7 +458,7 @@
DrawRotatedTextureF(SpritesData[sprBigExplosion].Texture, 0.85 * (-power(2, -10 * Int(Gear^.Timer)/250) + 1) + 0.4, 0, 0, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, 0, 1, 385, 385, Gear^.Angle);
end;
end;
- if (cReducedQuality and rqFancyBoom) = 0 then
+ if (cReducedQuality and rqAntiBoom) = 0 then
case Gear^.Kind of
vgtExplPart: DrawSprite(sprExplPart, round(Gear^.X) + WorldDx - 16, round(Gear^.Y) + WorldDy - 16, 7 - Gear^.Frame);
vgtExplPart2: DrawSprite(sprExplPart2, round(Gear^.X) + WorldDx - 16, round(Gear^.Y) + WorldDy - 16, 7 - Gear^.Frame);
@@ -475,8 +498,14 @@
end;
DrawRotatedF(sprEgg, round(Gear^.X) + WorldDx, round(Gear^.Y) + WorldDy, Gear^.Frame, 1, Gear^.Angle);
end;
- vgtSplash: DrawSprite(sprSplash, round(Gear^.X) + WorldDx - 40, round(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37));
- vgtDroplet: DrawSprite(sprDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);
+ vgtSplash: if SuddenDeathDmg then
+ DrawSprite(sprSDSplash, round(Gear^.X) + WorldDx - 40, round(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37))
+ else
+ DrawSprite(sprSplash, round(Gear^.X) + WorldDx - 40, round(Gear^.Y) + WorldDy - 58, 19 - (Gear^.FrameTicks div 37));
+ vgtDroplet: if SuddenDeathDmg then
+ DrawSprite(sprSDDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame)
+ else
+ DrawSprite(sprDroplet, round(Gear^.X) + WorldDx - 8, round(Gear^.Y) + WorldDy - 8, Gear^.Frame);
vgtBeeTrace: begin
if Gear^.FrameTicks < $FF then
Tint($FF, $FF, $FF, Gear^.FrameTicks div 2)
@@ -515,13 +544,20 @@
var vg: PVisualGear;
begin
VisualGearByUID:= nil;
+if uid = 0 then exit;
+if (lastVisualGearByUID <> nil) and (lastVisualGearByUID^.uid = uid) then
+ begin
+ VisualGearByUID:= lastVisualGearByUID;
+ exit
+ end;
vg:= VisualGearsList;
while vg <> nil do
begin
if vg^.uid = uid then
begin
- VisualGearByUID:= vg;
- exit
+ lastVisualGearByUID:= vg;
+ VisualGearByUID:= vg;
+ exit
end;
vg:= vg^.NextGear
end
@@ -534,6 +570,60 @@
AddVisualGear(cLeftScreenBorder + i * cScreenSpace div (cCloudsNumber + 1), LAND_HEIGHT-1184, vgtCloud)
end;
+procedure ChangeToSDClouds;
+var i: LongInt;
+ vg, tmp: PVisualGear;
+begin
+if cCloudsNumber = cSDCloudsNumber then exit;
+vg:= VisualGearsList;
+while vg <> nil do
+ if vg^.Kind = vgtCloud then
+ begin
+ tmp:= vg^.NextGear;
+ DeleteVisualGear(vg);
+ vg:= tmp
+ end
+ else vg:= vg^.NextGear;
+for i:= 0 to cSDCloudsNumber - 1 do
+ AddVisualGear(cLeftScreenBorder + i * cScreenSpace div (cSDCloudsNumber + 1), LAND_HEIGHT-1184, vgtCloud)
+end;
+
+procedure AddFlakes;
+var i: LongInt;
+begin
+if (cReducedQuality and rqKillFlakes) <> 0 then exit;
+
+if ((GameFlags and gfBorder) <> 0) or ((Theme <> 'Snow') and (Theme <> 'Christmas')) then
+ for i:= 0 to Pred(vobCount) do
+ AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake)
+else
+ for i:= 0 to Pred(vobCount div 3) do
+ AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake);
+end;
+
+procedure ChangeToSDFlakes;
+var i: LongInt;
+ vg, tmp: PVisualGear;
+begin
+if (cReducedQuality and rqKillFlakes) <> 0 then exit;
+if vobCount = vobSDCount then exit;
+vg:= VisualGearsList;
+while vg <> nil do
+ if vg^.Kind = vgtFlake then
+ begin
+ tmp:= vg^.NextGear;
+ DeleteVisualGear(vg);
+ vg:= tmp
+ end
+ else vg:= vg^.NextGear;
+if ((GameFlags and gfBorder) <> 0) or ((Theme <> 'Snow') and (Theme <> 'Christmas')) then
+ for i:= 0 to Pred(vobSDCount) do
+ AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake)
+else
+ for i:= 0 to Pred(vobSDCount div 3) do
+ AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake);
+end;
+
procedure initModule;
begin
VisualGearsList:= nil;
diff -r 9f20a38a385a -r 9a0f5377c529 hedgewars/uWorld.pas
--- a/hedgewars/uWorld.pas Mon Jan 17 08:37:43 2011 +0100
+++ b/hedgewars/uWorld.pas Mon Jan 17 23:22:52 2011 +0100
@@ -394,10 +394,20 @@
r: TSDL_Rect;
lw, lh: GLfloat;
begin
- WaterColorArray[0].a := Alpha;
- WaterColorArray[1].a := Alpha;
- WaterColorArray[2].a := Alpha;
- WaterColorArray[3].a := Alpha;
+ if SuddenDeathDmg then
+ begin
+ SDWaterColorArray[0].a := Alpha;
+ SDWaterColorArray[1].a := Alpha;
+ SDWaterColorArray[2].a := Alpha;
+ SDWaterColorArray[3].a := Alpha
+ end
+ else
+ begin
+ WaterColorArray[0].a := Alpha;
+ WaterColorArray[1].a := Alpha;
+ WaterColorArray[2].a := Alpha;
+ WaterColorArray[3].a := Alpha
+ end;
lw:= cScreenWidth / cScaleFactor;
lh:= trunc(cScreenHeight / cScaleFactor) + cScreenHeight div 2 + 16;
@@ -421,7 +431,10 @@
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
- glColorPointer(4, GL_UNSIGNED_BYTE, 0, @WaterColorArray[0]);
+ if SuddenDeathDmg then
+ glColorPointer(4, GL_UNSIGNED_BYTE, 0, @SDWaterColorArray[0])
+ else
+ glColorPointer(4, GL_UNSIGNED_BYTE, 0, @WaterColorArray[0]);
glVertexPointer(2, GL_FLOAT, 0, @VertexBuffer[0]);
@@ -437,24 +450,39 @@
procedure DrawWaves(Dir, dX, dY: LongInt; tnt: Byte);
var VertexBuffer, TextureBuffer: array [0..3] of TVertex2f;
lw, waves, shift: GLfloat;
+ sprite: TSprite;
begin
+if SuddenDeathDmg then
+ sprite:= sprSDWater
+else
+ sprite:= sprWater;
+
+cWaveWidth:= SpritesData[sprite].Width;
+
lw:= cScreenWidth / cScaleFactor;
waves:= lw * 2 / cWaveWidth;
-Tint(LongInt(tnt) * WaterColorArray[2].r div 255 + 255 - tnt,
- LongInt(tnt) * WaterColorArray[2].g div 255 + 255 - tnt,
- LongInt(tnt) * WaterColorArray[2].b div 255 + 255 - tnt,
- 255
-);
+if SuddenDeathDmg then
+ Tint(LongInt(tnt) * SDWaterColorArray[2].r div 255 + 255 - tnt,
+ LongInt(tnt) * SDWaterColorArray[2].g div 255 + 255 - tnt,
+ LongInt(tnt) * SDWaterColorArray[2].b div 255 + 255 - tnt,
+ 255
+ )
+else
+ Tint(LongInt(tnt) * WaterColorArray[2].r div 255 + 255 - tnt,
+ LongInt(tnt) * WaterColorArray[2].g div 255 + 255 - tnt,
+ LongInt(tnt) * WaterColorArray[2].b div 255 + 255 - tnt,
+ 255
+ );
-glBindTexture(GL_TEXTURE_2D, SpritesData[sprWater].Texture^.id);
+glBindTexture(GL_TEXTURE_2D, SpritesData[sprite].Texture^.id);
VertexBuffer[0].X:= -lw;
VertexBuffer[0].Y:= cWaterLine + WorldDy + dY;
VertexBuffer[1].X:= lw;
VertexBuffer[1].Y:= VertexBuffer[0].Y;
VertexBuffer[2].X:= lw;
-VertexBuffer[2].Y:= VertexBuffer[0].Y + SpritesData[sprWater].Height;
+VertexBuffer[2].Y:= VertexBuffer[0].Y + SpritesData[sprite].Height;
VertexBuffer[3].X:= -lw;
VertexBuffer[3].Y:= VertexBuffer[2].Y;
@@ -464,7 +492,7 @@
TextureBuffer[1].X:= TextureBuffer[0].X + waves;
TextureBuffer[1].Y:= TextureBuffer[0].Y;
TextureBuffer[2].X:= TextureBuffer[1].X;
-TextureBuffer[2].Y:= SpritesData[sprWater].Texture^.ry;
+TextureBuffer[2].Y:= SpritesData[sprite].Texture^.ry;
TextureBuffer[3].X:= TextureBuffer[0].X;
TextureBuffer[3].Y:= TextureBuffer[2].Y;
@@ -573,8 +601,10 @@
HorizontOffset:= HorizontOffset + ((ScreenBottom-SkyOffset) div 20);
// background
+ if SuddenDeathDmg then Tint(SDTint, SDTint, SDTint, $FF);
DrawRepeated(sprSky, sprSkyL, sprSkyR, (WorldDx + LAND_WIDTH div 2) * 3 div 8, SkyOffset);
DrawRepeated(sprHorizont, sprHorizontL, sprHorizontR, (WorldDx + LAND_WIDTH div 2) * 3 div 5, HorizontOffset);
+ if SuddenDeathDmg then Tint($FF, $FF, $FF, $FF);
end;
DrawVisualGears(0);
@@ -623,7 +653,10 @@
DrawVisualGears(2);
- DrawWater(cWaterOpacity, 0);
+ if SuddenDeathDmg then
+ DrawWater(cSDWaterOpacity, 0)
+ else
+ DrawWater(cWaterOpacity, 0);
// Waves
DrawWaves( 1, 25 - WorldDx div 9, - cWaveHeight, 12);
@@ -632,9 +665,15 @@
begin
//DrawWater(cWaterOpacity, - offsetY div 40);
DrawWaves(-1, 50 + WorldDx div 6, - cWaveHeight - offsetY div 40, 8);
- DrawWater(cWaterOpacity, - offsetY div 20);
+ if SuddenDeathDmg then
+ DrawWater(cSDWaterOpacity, - offsetY div 20)
+ else
+ DrawWater(cWaterOpacity, - offsetY div 20);
DrawWaves( 1, 75 - WorldDx div 4, - cWaveHeight - offsetY div 20, 2);
- DrawWater(cWaterOpacity, - offsetY div 10);
+ if SuddenDeathDmg then
+ DrawWater(cSDWaterOpacity, - offsetY div 10)
+ else
+ DrawWater(cWaterOpacity, - offsetY div 10);
DrawWaves( -1, 25 + WorldDx div 3, - cWaveHeight - offsetY div 10, 0);
end
else
@@ -686,52 +725,6 @@
DrawSprite(sprFrame, -(cScreenWidth shr 1) + t - 4 + offsetY, cScreenHeight - offsetX, 0);
end;
-{$IFNDEF IPHONEOS}
-// Timetrial
-if ((TrainingFlags and tfTimeTrial) <> 0) and (TimeTrialStartTime > 0) then
- begin
- if TimeTrialStopTime = 0 then i:= RealTicks - TimeTrialStartTime else i:= TimeTrialStopTime - TimeTrialStartTime;
- t:= 272;
- // right frame
- DrawSprite(sprFrame, -cScreenWidth div 2 + t, 8, 1);
- dec(t, 32);
- // 1 ms
- DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10);
- dec(t, 32);
- i:= i div 10;
- // 10 ms
- DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10);
- dec(t, 32);
- i:= i div 10;
- // 100 ms
- DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10);
- dec(t, 16);
- // Point
- DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, 11);
- dec(t, 32);
- i:= i div 10;
- // 1 s
- DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10);
- dec(t, 32);
- i:= i div 10;
- // 10s
- DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 6);
- dec(t, 16);
- // Point
- DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, 10);
- dec(t, 32);
- i:= i div 6;
- // 1 m
- DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10);
- dec(t, 32);
- i:= i div 10;
- // 10 m
- DrawSprite(sprBigDigit, -cScreenWidth div 2 + t, 8, i mod 10);
- // left frame
- DrawSprite(sprFrame, -cScreenWidth div 2 + t - 4, 8, 0);
- end;
-{$ENDIF}
-
// Captions
DrawCaptions;
@@ -742,7 +735,7 @@
highlight:= bShowFinger and (CurrentTeam = TeamsArray[t]) and ((RealTicks mod 1000) < 500);
if highlight then
- Tint(Clan^.Color);
+ Tint(Clan^.Color shl 8 or $FF);
// draw name
DrawTexture(-NameTagTex^.w - 16, cScreenHeight + DrawHealthY, NameTagTex);
diff -r 9f20a38a385a -r 9a0f5377c529 misc/hedgewars.desktop
--- a/misc/hedgewars.desktop Mon Jan 17 08:37:43 2011 +0100
+++ b/misc/hedgewars.desktop Mon Jan 17 23:22:52 2011 +0100
@@ -5,13 +5,15 @@
Name=Hedgewars
GenericName=Fighting Hedgehogs
GenericName[de]=Kämpfende Igel
+GenericName[es]=Batallas entre erizos
+GenericName[fr]=Bataille de hérissons
+GenericName[ko]=고슴도치 싸우기
+GenericName[it]=Ricci combattenti
+GenericName[pl]=Walczące jeże
+GenericName[pt]=Batalhas entre ouriços
GenericName[ru]=Битвы ежей
-GenericName[pl]=Walczące jeże
GenericName[sk]=Bojujúci ježkovia
GenericName[sv]=Stridande igelkottar
-GenericName[es]=Batallas entre erizos
-GenericName[it]=Ricci combattenti
-GenericName[pt]=Batalhas entre ouriços
Icon=hedgewars.png
Exec=hedgewars
Terminal=false
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/GameConfigViewController.m
--- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Mon Jan 17 23:22:52 2011 +0100
@@ -25,6 +25,7 @@
#import "TeamConfigViewController.h"
#import "SchemeWeaponConfigViewController.h"
#import "HelpPageViewController.h"
+#import "StatsPageViewController.h"
#import "CommodityFunctions.h"
#import "UIImageExtra.h"
#import "PascalImports.h"
@@ -226,19 +227,30 @@
[NSNumber numberWithInt:self.interfaceOrientation],@"orientation",
nil];
- NSDictionary *allDataNecessary = [NSDictionary dictionaryWithObjectsAndKeys:gameDictionary,@"game_dictionary", @"",@"savefile",
- [NSNumber numberWithBool:NO],@"netgame", nil];
- if (IS_IPAD())
- [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:allDataNecessary];
+ NSDictionary *allDataNecessary = [NSDictionary dictionaryWithObjectsAndKeys:
+ gameDictionary,@"game_dictionary",
+ [NSNumber numberWithBool:NO],@"netgame",
+ @"",@"savefile",
+ nil];
+
+
+ StatsPageViewController *statsPage = [[StatsPageViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ statsPage.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
+ if ([statsPage respondsToSelector:@selector(setModalPresentationStyle:)])
+ statsPage.modalPresentationStyle = UIModalPresentationPageSheet;
+ [self presentModalViewController:statsPage animated:NO];
+
+ NSArray *stats = [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:allDataNecessary];
+ if ([stats count] == 0)
+ [statsPage dismissModalViewControllerAnimated:NO];
else {
- // this causes a sporadic crash on the ipad but without this rotation doesn't work on iphone
- UIViewController *dummy = [[UIViewController alloc] init];
- [self presentModalViewController:dummy animated:NO];
- [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:allDataNecessary];
- [self dismissModalViewControllerAnimated:NO];
- [dummy release];
+ statsPage.statsArray = stats;
+ [statsPage.tableView reloadData];
+ [statsPage viewWillAppear:YES];
}
+
+ [statsPage release];
}
-(void) loadNiceHogs {
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/GameSetup.h
--- a/project_files/HedgewarsMobile/Classes/GameSetup.h Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameSetup.h Mon Jan 17 23:22:52 2011 +0100
@@ -25,11 +25,12 @@
@interface GameSetup : NSObject {
NSDictionary *systemSettings;
NSDictionary *gameConfig;
+ NSMutableArray *statsArray;
NSInteger ipcPort; // Port on which engine will listen
TCPsocket csd; // Client socket descriptor
TCPsocket esd; // External socket descriptor
-
+
NSString *savePath;
BOOL isNetGame;
BOOL menuStyle;
@@ -37,6 +38,7 @@
@property (nonatomic, retain) NSDictionary *systemSettings;
@property (nonatomic, retain) NSDictionary *gameConfig;
+@property (nonatomic, retain) NSMutableArray *statsArray;
@property (nonatomic, retain) NSString *savePath;
@property (assign) BOOL menuStyle;
@@ -48,6 +50,6 @@
-(void) provideAmmoData:(NSString *)ammostoreName forPlayingTeams:(NSInteger) numberOfTeams;
-(NSInteger) provideScheme:(NSString *)schemeName;
--(const char **)getSettings:(NSString *)recordFile;
+-(const char **)getGameSettings:(NSString *)recordFile;
@end
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/GameSetup.m
--- a/project_files/HedgewarsMobile/Classes/GameSetup.m Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Classes/GameSetup.m Mon Jan 17 23:22:52 2011 +0100
@@ -28,7 +28,7 @@
#define BUFFER_SIZE 255 // like in original frontend
@implementation GameSetup
-@synthesize systemSettings, gameConfig, savePath, menuStyle;
+@synthesize systemSettings, gameConfig, statsArray, savePath, menuStyle;
-(id) initWithDictionary:(NSDictionary *)gameDictionary {
if (self = [super init]) {
@@ -57,11 +57,14 @@
[outputFormatter release];
} else
self.savePath = path;
+
+ self.statsArray = nil;
}
return self;
}
-(void) dealloc {
+ [statsArray release];
[gameConfig release];
[systemSettings release];
[savePath release];
@@ -204,12 +207,12 @@
#pragma mark -
#pragma mark Network relevant code
--(void) dumpRawData:(const uint8_t*)buffer ofSize:(uint8_t) length {
+-(void) dumpRawData:(const char *)buffer ofSize:(uint8_t) length {
// is it performant to reopen the stream every time?
NSOutputStream *os = [[NSOutputStream alloc] initToFileAtPath:self.savePath append:YES];
[os open];
[os write:&length maxLength:1];
- [os write:buffer maxLength:length];
+ [os write:(const uint8_t *)buffer maxLength:length];
[os close];
[os release];
}
@@ -218,7 +221,7 @@
-(int) sendToEngine:(NSString *)string {
uint8_t length = [string length];
- [self dumpRawData:(const uint8_t *)[string UTF8String] ofSize:length];
+ [self dumpRawData:[string UTF8String] ofSize:length];
SDLNet_TCP_Send(csd, &length, 1);
return SDLNet_TCP_Send(csd, [string UTF8String], length);
}
@@ -238,8 +241,9 @@
IPaddress ip;
int eProto;
BOOL clientQuit;
- uint8_t buffer[BUFFER_SIZE];
+ char const buffer[BUFFER_SIZE];
uint8_t msgSize;
+ int statMaxCapacity = 10-3;
clientQuit = NO;
csd = NULL;
@@ -268,10 +272,10 @@
while (!clientQuit) {
msgSize = 0;
- memset(buffer, '\0', BUFFER_SIZE);
+ memset((void *)buffer, '\0', BUFFER_SIZE);
if (SDLNet_TCP_Recv(csd, &msgSize, sizeof(uint8_t)) <= 0)
break;
- if (SDLNet_TCP_Recv(csd, buffer, msgSize) <=0)
+ if (SDLNet_TCP_Recv(csd, (void *)buffer, msgSize) <= 0)
break;
switch (buffer[0]) {
@@ -283,7 +287,7 @@
else
[self sendToEngineNoSave:@"TL"];
NSString *saveHeader = @"TS";
- [self dumpRawData:(const uint8_t *)[saveHeader UTF8String] ofSize:[saveHeader length]];
+ [self dumpRawData:[saveHeader UTF8String] ofSize:[saveHeader length]];
// seed info
[self sendToEngine:[self.gameConfig objectForKey:@"seed_command"]];
@@ -345,36 +349,38 @@
}
break;
case 'i':
+ if (self.statsArray == nil)
+ self.statsArray = [[NSMutableArray alloc] initWithCapacity:statMaxCapacity];
+ NSString *tempStr = [NSString stringWithUTF8String:&buffer[2]];
+ NSString *arg = [[tempStr componentsSeparatedByString:@" "] objectAtIndex:0];
+ int index = [arg length] + 3;
switch (buffer[1]) {
- case 'r':
- DLog(@"Winning team: %s", &buffer[2]);
+ case 'r': // winning team
+ [self.statsArray insertObject:[NSString stringWithUTF8String:&buffer[2]] atIndex:0];
break;
- case 'D':
- DLog(@"Best Shot: %s", &buffer[2]);
+ case 'D': // best shot
+ [self.statsArray addObject:[NSString stringWithFormat:@"The best shot award was won by %s with %@ points", &buffer[index], arg]];
break;
- case 'k':
- DLog(@"Best Hedgehog: %s", &buffer[2]);
- break;
- case 'K':
- DLog(@"Hogs Killed: %s", &buffer[2]);
+ case 'k': // best hedgehog
+ [self.statsArray addObject:[NSString stringWithFormat:@"The best killer is %s with %@ kills in a turn", &buffer[index], arg]];
break;
- case 'H':
- //something about team health
+ case 'K': // number of hogs killed
+ [self.statsArray addObject:[NSString stringWithFormat:@"A total of %@ hedgehog(s) were killed during this round", arg]];
break;
- case 'T':
- // local team stats
+ case 'H': //something about team health
break;
- case 'P':
- // player postion
+ case 'T': // local team stats
+ break;
+ case 'P': // player postion
break;
- case 's':
- DLog(@"Most self damage: %s", &buffer[2]);
+ case 's': // self damage
+ [self.statsArray addObject:[NSString stringWithFormat:@"%s thought it's good to shoot his own hedgehogs with %@ points", &buffer[index], arg]];
break;
- case 'S':
- DLog(@"Most friendly fire: %s", &buffer[2]);
+ case 'S': // friendly fire
+ [self.statsArray addObject:[NSString stringWithFormat:@"%s killed %@ of his own hedgehogs", &buffer[index], arg]];
break;
- case 'B':
- DLog(@"Most turn skipped by: %s", &buffer[2]);
+ case 'B': // turn skipped
+ [self.statsArray addObject:[NSString stringWithFormat:@"%s was scared and skipped turn %@ times", &buffer[index], arg]];
break;
default:
DLog(@"Unhandled stat message, see statsPage.cpp");
@@ -384,7 +390,6 @@
case 'q':
// game ended, can remove the savefile
[[NSFileManager defaultManager] removeItemAtPath:self.savePath error:nil];
- //[[NSNotificationCenter defaultCenter] postNotificationName:@"removedSave" object:nil];
// and remove + disable the overlay
[[NSNotificationCenter defaultCenter] postNotificationName:@"remove overlay" object:nil];
break;
@@ -408,7 +413,7 @@
#pragma mark -
#pragma mark Setting methods
// returns an array of c-strings that are read by engine at startup
--(const char **)getSettings: (NSString *)recordFile {
+-(const char **)getGameSettings:(NSString *)recordFile {
NSInteger width, height;
NSString *ipcString = [[NSString alloc] initWithFormat:@"%d", ipcPort];
NSString *localeString = [[NSString alloc] initWithFormat:@"%@.txt", [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode]];
@@ -431,11 +436,11 @@
NSString *horizontalSize = [[NSString alloc] initWithFormat:@"%d", width];
NSString *verticalSize = [[NSString alloc] initWithFormat:@"%d", height];
- const char **gameArgs = (const char**) malloc(sizeof(char *) * 10);
- NSInteger tmpQuality;
+ const char **gameArgs = (const char **)malloc(sizeof(char *) * 10);
BOOL enhanced = [[self.systemSettings objectForKey:@"enhanced"] boolValue];
NSString *modelId = modelType();
+ NSInteger tmpQuality;
if ([modelId hasPrefix:@"iPhone1"] || [modelId hasPrefix:@"iPod1,1"] || [modelId hasPrefix:@"iPod2,1"]) // = iPhone and iPhone 3G or iPod Touch or iPod Touch 2G
tmpQuality = 0x00000001 | 0x00000002 | 0x00000008 | 0x00000040; // rqLowRes | rqBlurryLand | rqSimpleRope | rqKillFlakes
else if ([modelId hasPrefix:@"iPhone2"] || [modelId hasPrefix:@"iPod3"]) // = iPhone 3GS or iPod Touch 3G
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/HelpPageViewController.m
--- a/project_files/HedgewarsMobile/Classes/HelpPageViewController.m Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Classes/HelpPageViewController.m Mon Jan 17 23:22:52 2011 +0100
@@ -36,10 +36,10 @@
// on iPhone the XIBs contain UIScrollView
-(void) viewDidLoad {
- if (scrollView.tag == 0)
+ if (scrollView.tag == 0) // ipad
scrollView.contentSize = CGSizeMake(480,650);
- else
- scrollView.contentSize = CGSizeMake(480,460);
+ else // iphone
+ scrollView.contentSize = CGSizeMake(480,470);
scrollView.maximumZoomScale = 4.0;
scrollView.minimumZoomScale = 0.75;
scrollView.clipsToBounds = YES;
@@ -57,7 +57,6 @@
[super dealloc];
}
-// on iPad the XIBs contain UIControl
-(IBAction) dismiss {
[UIView beginAnimations:@"helpingame" context:NULL];
self.view.alpha = 0;
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/MainMenuViewController.m
--- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Mon Jan 17 23:22:52 2011 +0100
@@ -99,8 +99,6 @@
createWeaponNamed(@"Minefield", 5);
createWeaponNamed(@"Thinking with Portals", 6);
// merge not needed because weapons not present in the set are 0ed by GameSetup
-
- DLog(@"Success");
}
#pragma mark -
@@ -125,7 +123,8 @@
[userDefaults synchronize];
[self createNecessaryFiles];
}
-
+
+ /*
ServerSetup *setup = [[ServerSetup alloc] init];
if ([setup isNetworkReachable]) {
DLog(@"network is reachable");
@@ -134,6 +133,7 @@
withObject:nil];
}
[setup release];
+ */
}
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/ObjcExports.m
--- a/project_files/HedgewarsMobile/Classes/ObjcExports.m Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Classes/ObjcExports.m Mon Jan 17 23:22:52 2011 +0100
@@ -152,7 +152,6 @@
}
void updateVisualsNewTurn(void) {
- DLog(@"updating visuals");
[amvc_instance updateAmmoVisuals];
}
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.h
--- a/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.h Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.h Mon Jan 17 23:22:52 2011 +0100
@@ -40,7 +40,7 @@
@property (nonatomic,retain) UIWindow *secondWindow;
+(SDLUIKitDelegate *)sharedAppDelegate;
--(void) startSDLgame:(NSDictionary *)gameDictionary;
+-(NSArray *)startSDLgame:(NSDictionary *)gameDictionary;
-(void) displayOverlayLater:(id) object;
@end
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m
--- a/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Classes/SDL_uikitappdelegate.m Mon Jan 17 23:22:52 2011 +0100
@@ -85,7 +85,7 @@
}
// main routine for calling the actual game engine
--(void) startSDLgame:(NSDictionary *)gameDictionary {
+-(NSArray *)startSDLgame:(NSDictionary *)gameDictionary {
UIWindow *gameWindow;
if (IS_DUALHEAD())
gameWindow = self.secondWindow;
@@ -118,6 +118,7 @@
}
[blackView release];
+
// pull out useful configuration info from various files
GameSetup *setup = [[GameSetup alloc] initWithDictionary:gameDictionary];
NSNumber *isNetGameNum = [gameDictionary objectForKey:@"netgame"];
@@ -126,23 +127,26 @@
toTarget:setup
withObject:nil];
- const char **gameArgs = [setup getSettings:[gameDictionary objectForKey:@"savefile"]];
NSNumber *menuStyle = [NSNumber numberWithBool:setup.menuStyle];
- [setup release];
-
- // since the sdlwindow is not yet created, we add the overlayController with a delay
+ NSNumber *orientation = [[gameDictionary objectForKey:@"game_dictionary"] objectForKey:@"orientation"];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
isNetGameNum,@"net",
menuStyle,@"menu",
- [[gameDictionary objectForKey:@"game_dictionary"] objectForKey:@"orientation"],@"orientation",
+ orientation,@"orientation",
nil];
[self performSelector:@selector(displayOverlayLater:) withObject:dict afterDelay:1];
- // this is the pascal fuction that starts the game (wrapped around isInGame)
+ // need to set again [gameDictionary objectForKey:@"savefile"] because if it's empty it means it's a normal game
+ const char **gameArgs = [setup getGameSettings:[gameDictionary objectForKey:@"savefile"]];
self.isInGame = YES;
+ // this is the pascal fuction that starts the game
Game(gameArgs);
self.isInGame = NO;
free(gameArgs);
+
+ NSArray *stats = setup.statsArray;
+ [setup release];
+
[self.uiwindow makeKeyAndVisible];
[self.uiwindow bringSubviewToFront:self.mainViewController.view];
@@ -156,9 +160,11 @@
[UIView commitAnimations];
[refBlackView performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1];
[refSecondBlackView performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:2];
+
+ return stats;
}
-// overlay with controls, become visible later, with a transparency effect
+// overlay with controls, become visible later, with a transparency effect since the sdlwindow is not yet created
-(void) displayOverlayLater:(id) object {
NSDictionary *dict = (NSDictionary *)object;
self.overlayController = [[OverlayViewController alloc] initWithNibName:@"OverlayViewController" bundle:nil];
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/SavedGamesViewController.m
--- a/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m Mon Jan 17 23:22:52 2011 +0100
@@ -21,6 +21,7 @@
#import "SavedGamesViewController.h"
#import "SDL_uikitappdelegate.h"
+#import "StatsPageViewController.h"
#import "CommodityFunctions.h"
@implementation SavedGamesViewController
@@ -217,8 +218,23 @@
[NSNumber numberWithBool:NO],@"netgame",
[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:self.interfaceOrientation] forKey:@"orientation"],@"game_dictionary",
nil];
- [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:allDataNecessary];
- [self.parentViewController dismissModalViewControllerAnimated:NO];
+
+ StatsPageViewController *statsPage = [[StatsPageViewController alloc] initWithStyle:UITableViewStyleGrouped];
+ statsPage.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
+ if ([statsPage respondsToSelector:@selector(setModalPresentationStyle:)])
+ statsPage.modalPresentationStyle = UIModalPresentationPageSheet;
+ [self presentModalViewController:statsPage animated:NO];
+
+ NSArray *stats = [[SDLUIKitDelegate sharedAppDelegate] startSDLgame:allDataNecessary];
+ if ([stats count] == 0) {
+ [statsPage dismissModalViewControllerAnimated:NO];
+ } else {
+ statsPage.statsArray = stats;
+ [statsPage.tableView reloadData];
+ [statsPage viewWillAppear:YES];
+ }
+ // reload needed because when ending game the entry remains there
+ [self.tableView reloadData];
}
#pragma mark -
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/StatsPageViewController.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/StatsPageViewController.h Mon Jan 17 23:22:52 2011 +0100
@@ -0,0 +1,30 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2010 Vittorio Giovara
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 30/12/2010.
+ */
+
+
+#import
+
+@interface StatsPageViewController : UITableViewController {
+ NSArray *statsArray;
+}
+
+@property (nonatomic,retain) NSArray *statsArray;
+
+@end
\ No newline at end of file
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/StatsPageViewController.m
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/project_files/HedgewarsMobile/Classes/StatsPageViewController.m Mon Jan 17 23:22:52 2011 +0100
@@ -0,0 +1,138 @@
+/*
+ * Hedgewars-iOS, a Hedgewars port for iOS devices
+ * Copyright (c) 2009-2010 Vittorio Giovara
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * File created on 30/12/2010.
+ */
+
+
+#import "StatsPageViewController.h"
+#import "CommodityFunctions.h"
+
+@implementation StatsPageViewController
+@synthesize statsArray;
+
+-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
+ return rotationManager(interfaceOrientation);
+}
+
+-(void) viewDidLoad {
+ if ([self.tableView respondsToSelector:@selector(setBackgroundView:)])
+ self.tableView.backgroundView = nil;
+
+ NSString *imgName;
+ if (IS_IPAD())
+ imgName = @"mediumBackground~ipad.png";
+ else
+ imgName = @"smallerBackground~iphone.png";
+
+ if ([self.tableView respondsToSelector:@selector(setBackgroundView:)]) {
+ UIImage *backgroundImage = [[UIImage alloc] initWithContentsOfFile:imgName];
+ UIImageView *background = [[UIImageView alloc] initWithImage:backgroundImage];
+ [backgroundImage release];
+ [self.tableView setBackgroundView:background];
+ [background release];
+ } else
+ self.view.backgroundColor = [UIColor blackColor];
+
+ self.tableView.separatorColor = UICOLOR_HW_YELLOW_BODER;
+ self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+
+ [super viewDidLoad];
+}
+
+#pragma mark -
+#pragma mark Table view data source
+-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
+ return 3;
+}
+
+-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ if (section == 0 || section == 2)
+ return 1;
+ else
+ return [self.statsArray count] - 1;
+}
+
+-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+ static NSString *CellIdentifier0 = @"Cell0";
+ NSInteger section = [indexPath section];
+ NSInteger row = [indexPath row];
+
+ UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier0];
+ if (cell == nil)
+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier0] autorelease];
+
+ cell.textLabel.textAlignment = UITextAlignmentCenter;
+ if (section == 0) {
+ cell.textLabel.text = [self.statsArray objectAtIndex:row];
+ cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
+ } else if (section == 1) {
+ cell.textLabel.text = [self.statsArray objectAtIndex:row + 1];
+ cell.textLabel.textColor = UICOLOR_HW_YELLOW_TEXT;
+ } else {
+ cell.textLabel.text = NSLocalizedString(@"Done",@"");
+ cell.textLabel.textColor = [UIColor whiteColor];
+ }
+ cell.textLabel.adjustsFontSizeToFitWidth = YES;
+ cell.backgroundColor = [UIColor blackColor];
+ cell.selectionStyle = UITableViewCellSelectionStyleNone;
+
+ return cell;
+}
+
+-(CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
+ return 160;
+}
+
+-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
+ if (section == 0) {
+ UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 160)];
+ UIImage *img = [[UIImage alloc] initWithContentsOfFile:@"smallerTitle.png"];
+ UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
+ [img release];
+ imgView.center = CGPointMake(self.tableView.frame.size.height/2, 160/2);
+ [header addSubview:imgView];
+ [imgView release];
+
+ return [header autorelease];
+ } else
+ return nil;
+}
+
+#pragma mark -
+#pragma mark Table view delegate
+-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
+ if ([indexPath section] == 2)
+ [self dismissModalViewControllerAnimated:YES];
+}
+
+#pragma mark -
+#pragma mark Memory management
+-(void) didReceiveMemoryWarning {
+ // Releases the view if it doesn't have a superview.
+ [super didReceiveMemoryWarning];
+ self.statsArray = nil;
+}
+
+-(void) dealloc {
+ [statsArray release];
+ [super dealloc];
+}
+
+
+@end
+
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Classes/TeamConfigViewController.m
--- a/project_files/HedgewarsMobile/Classes/TeamConfigViewController.m Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Classes/TeamConfigViewController.m Mon Jan 17 23:22:52 2011 +0100
@@ -183,8 +183,8 @@
NSString *teamPath = [NSString stringWithFormat:@"%@/%@.plist",TEAMS_DIRECTORY(),cell.textLabel.text];
NSDictionary *firstHog = [[[NSDictionary dictionaryWithContentsOfFile:teamPath] objectForKey:@"hedgehogs"] objectAtIndex:0];
if ([[firstHog objectForKey:@"level"] intValue] != 0) {
- NSString *filePath = [NSString stringWithFormat:@"%@/cyborg.png",HATS_DIRECTORY()];
- UIImage *sprite = [[UIImage alloc] initWithContentsOfFile:filePath andCutAt:CGRectMake(0, 2, 32, 32)];
+ NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/Settings/Images/robotBadge.png"];
+ UIImage *sprite = [[UIImage alloc] initWithContentsOfFile:filePath];
UIImageView *spriteView = [[UIImageView alloc] initWithImage:sprite];
[sprite release];
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj
--- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Mon Jan 17 23:22:52 2011 +0100
@@ -118,6 +118,8 @@
6172FEEF1298D25D00D73365 /* mediumBackground~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 6172FEEB1298D25D00D73365 /* mediumBackground~ipad.png */; };
6172FEF11298D25D00D73365 /* smallerBackground~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 6172FEED1298D25D00D73365 /* smallerBackground~ipad.png */; };
6172FEF21298D25D00D73365 /* smallerBackground~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = 6172FEEE1298D25D00D73365 /* smallerBackground~iphone.png */; };
+ 6174F7C812CD62E300205D6F /* smallerTitle.png in Resources */ = {isa = PBXBuildFile; fileRef = 6174F7C612CD62E300205D6F /* smallerTitle.png */; };
+ 6174F7C912CD62E300205D6F /* smallerTitle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6174F7C712CD62E300205D6F /* smallerTitle@2x.png */; };
61798816114AA34C00BA94A9 /* hwengine.pas in Sources */ = {isa = PBXBuildFile; fileRef = 617987E7114AA34C00BA94A9 /* hwengine.pas */; };
61798818114AA34C00BA94A9 /* hwLibrary.pas in Sources */ = {isa = PBXBuildFile; fileRef = 617987E9114AA34C00BA94A9 /* hwLibrary.pas */; };
6179881B114AA34C00BA94A9 /* PascalExports.pas in Sources */ = {isa = PBXBuildFile; fileRef = 617987EC114AA34C00BA94A9 /* PascalExports.pas */; };
@@ -184,6 +186,7 @@
61A670C212747DBD00B06CE7 /* MapConfigViewController-iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6165924E11CA9CB400D6E256 /* MapConfigViewController-iPhone.xib */; };
61AC067412B2E32D000B52A2 /* Appirater.m in Sources */ = {isa = PBXBuildFile; fileRef = 61AC067312B2E32D000B52A2 /* Appirater.m */; };
61B3D71C11EA6F2700EC7420 /* uKeys.pas in Sources */ = {isa = PBXBuildFile; fileRef = 617987FE114AA34C00BA94A9 /* uKeys.pas */; };
+ 61B7A33812CC21080086B604 /* StatsPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B7A33712CC21080086B604 /* StatsPageViewController.m */; };
61C079E411F35A300072BF46 /* EditableCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 61C079E311F35A300072BF46 /* EditableCellView.m */; };
61D205A1127CDD1100ABD83E /* ObjcExports.m in Sources */ = {isa = PBXBuildFile; fileRef = 61D205A0127CDD1100ABD83E /* ObjcExports.m */; };
61D3D2A51290E03A003CE7C3 /* irc.png in Resources */ = {isa = PBXBuildFile; fileRef = 61D3D2A41290E03A003CE7C3 /* irc.png */; };
@@ -889,6 +892,8 @@
6172FEEC1298D25D00D73365 /* smallerBackground@2x~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "smallerBackground@2x~iphone.png"; path = "Resources/Frontend/smallerBackground@2x~iphone.png"; sourceTree = ""; };
6172FEED1298D25D00D73365 /* smallerBackground~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "smallerBackground~ipad.png"; path = "Resources/Frontend/smallerBackground~ipad.png"; sourceTree = ""; };
6172FEEE1298D25D00D73365 /* smallerBackground~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "smallerBackground~iphone.png"; path = "Resources/Frontend/smallerBackground~iphone.png"; sourceTree = ""; };
+ 6174F7C612CD62E300205D6F /* smallerTitle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = smallerTitle.png; path = Resources/Frontend/smallerTitle.png; sourceTree = ""; };
+ 6174F7C712CD62E300205D6F /* smallerTitle@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "smallerTitle@2x.png"; path = "Resources/Frontend/smallerTitle@2x.png"; sourceTree = ""; };
617987E4114AA34C00BA94A9 /* GSHandlers.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = GSHandlers.inc; path = ../../hedgewars/GSHandlers.inc; sourceTree = SOURCE_ROOT; };
617987E5114AA34C00BA94A9 /* HHHandlers.inc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = HHHandlers.inc; path = ../../hedgewars/HHHandlers.inc; sourceTree = SOURCE_ROOT; };
617987E7114AA34C00BA94A9 /* hwengine.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = hwengine.pas; path = ../../hedgewars/hwengine.pas; sourceTree = SOURCE_ROOT; };
@@ -962,6 +967,8 @@
61A4A3A112A5CD56004D81E6 /* uCaptions.pas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.pascal; name = uCaptions.pas; path = ../../hedgewars/uCaptions.pas; sourceTree = SOURCE_ROOT; };
61AC067212B2E32D000B52A2 /* Appirater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Appirater.h; path = Classes/Appirater.h; sourceTree = ""; };
61AC067312B2E32D000B52A2 /* Appirater.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Appirater.m; path = Classes/Appirater.m; sourceTree = ""; };
+ 61B7A33612CC21080086B604 /* StatsPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StatsPageViewController.h; sourceTree = ""; };
+ 61B7A33712CC21080086B604 /* StatsPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StatsPageViewController.m; sourceTree = ""; };
61C079E211F35A300072BF46 /* EditableCellView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditableCellView.h; path = Classes/EditableCellView.h; sourceTree = ""; };
61C079E311F35A300072BF46 /* EditableCellView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditableCellView.m; path = Classes/EditableCellView.m; sourceTree = ""; };
61D2059F127CDD1100ABD83E /* ObjcExports.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ObjcExports.h; path = Classes/ObjcExports.h; sourceTree = ""; };
@@ -1154,6 +1161,8 @@
611D9BF312497B7700008271 /* Other Controllers */ = {
isa = PBXGroup;
children = (
+ 61B7A33612CC21080086B604 /* StatsPageViewController.h */,
+ 61B7A33712CC21080086B604 /* StatsPageViewController.m */,
61F2E7CB1205EDE0005734F7 /* AboutViewController.h */,
61F2E7CC1205EDE0005734F7 /* AboutViewController.m */,
61F2E7CD1205EDE0005734F7 /* AboutViewController.xib */,
@@ -1494,6 +1503,8 @@
61EBA62811DFF2BC0048B68A /* title.png */,
618899811299516000D55FD6 /* title@2x.png */,
61889984129995B500D55FD6 /* title~ipad.png */,
+ 6174F7C612CD62E300205D6F /* smallerTitle.png */,
+ 6174F7C712CD62E300205D6F /* smallerTitle@2x.png */,
61F9040A11DF59370068B24D /* background.png */,
6172FED61298CF9800D73365 /* background@2x~iphone.png */,
6172FED71298CF9800D73365 /* background~iphone.png */,
@@ -2276,6 +2287,8 @@
61188C0712A6FE960026C5DA /* settingsButton@2x.png in Resources */,
61188C0812A6FE9A0026C5DA /* title@2x.png in Resources */,
61188C0912A6FE9C0026C5DA /* tw@2x.png in Resources */,
+ 6174F7C812CD62E300205D6F /* smallerTitle.png in Resources */,
+ 6174F7C912CD62E300205D6F /* smallerTitle@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2293,7 +2306,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files from QTfrontend/res\nmkdir ${PROJECT_DIR}/Data/Graphics/Btn\ncp ${PROJECT_DIR}/../../QTfrontend/res/btn*.png ${PROJECT_DIR}/Data/Graphics/Btn\ncp ${PROJECT_DIR}/../../QTfrontend/res/ammopic.png ${PROJECT_DIR}/Data/Graphics/Btn/iconAmmo.png\ncp ${PROJECT_DIR}/../../QTfrontend/res/icon*.png ${PROJECT_DIR}/Data/Graphics/Btn\ncp -R ${PROJECT_DIR}/../../QTfrontend/res/botlevels ${PROJECT_DIR}/Data/Graphics/Hedgehog/botlevels\n\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg -delete\nfind ${PROJECT_DIR}/Data -name *.svgz -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\nfind ${PROJECT_DIR}/Data -name *.orig -delete\n\n#delete desktop frontend translation\nrm -rf ${PROJECT_DIR}/Data/Locale/hedgewars_*\n\n#delete dummy maps and hats\nrm -rf ${PROJECT_DIR}/Data/Maps/{test*,Ruler}\nrm -rf ${PROJECT_DIR}/Data/Hats/{TeamCap,TeamHeadband,TeamHair}\nrm -rf ${PROJECT_DIR}/Data/misc/\n\n#copy mono audio\ncp -R ${PROJECT_DIR}/audio/* ${PROJECT_DIR}/Data/\n\n#the following ones must be removed\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\n\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nmv ${PROJECT_DIR}/Data/Maps/{Basketball,Knockball,TrophyRace} ${PROJECT_DIR}/Data/Missions/Maps/\n\n#reduce the number of flakes for City\nawk '{if ($1 == 1500) $1=40; print $0}' < ${PROJECT_DIR}/Data/Themes/City/theme.cfg > /tmp/tempfile\nmv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n\n#remove Isalnd from the list of Themes\nawk '{if ($1 != \"Island\") print $0}' < ${PROJECT_DIR}/Data/Themes/themes.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/themes.cfg\n\n#remove Isalnd from the Maps and themes\nrm -rf ${PROJECT_DIR}/Data/Themes/Island\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Cave/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Cave/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg\n\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n\n#delete useless fonts\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\n#delete all names, reserved hats\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\n";
+ shellScript = "#copy new stuff over old stuff\nrm -rf ${PROJECT_DIR}/Data\necho \"Copying Data...\"\ncp -R ${PROJECT_DIR}/../../share/hedgewars/Data ${PROJECT_DIR}/Data\n\n#copy some files from QTfrontend/res\necho \"Fetching additional graphics from QTfrontend/res...\"\nmkdir ${PROJECT_DIR}/Data/Graphics/Btn\ncp ${PROJECT_DIR}/../../QTfrontend/res/btn*.png ${PROJECT_DIR}/Data/Graphics/Btn\ncp ${PROJECT_DIR}/../../QTfrontend/res/ammopic.png ${PROJECT_DIR}/Data/Graphics/Btn/iconAmmo.png\ncp ${PROJECT_DIR}/../../QTfrontend/res/icon*.png ${PROJECT_DIR}/Data/Graphics/Btn\ncp -R ${PROJECT_DIR}/../../QTfrontend/res/botlevels ${PROJECT_DIR}/Data/Graphics/Hedgehog/botlevels\n\necho \"Removing text and dummy files...\"\n#delete all CMakeLists.txt and image source files\nfind ${PROJECT_DIR}/Data -name CMakeLists.txt -delete\nfind ${PROJECT_DIR}/Data -name *.svg -delete\nfind ${PROJECT_DIR}/Data -name *.svgz -delete\nfind ${PROJECT_DIR}/Data -name *.sifz -delete\nfind ${PROJECT_DIR}/Data -name *.xcf -delete\nfind ${PROJECT_DIR}/Data -name *.orig -delete\n\n#delete desktop frontend translation\nrm -rf ${PROJECT_DIR}/Data/Locale/hedgewars_*\n\n#delete dummy maps and hats, misc stuff\nrm -rf ${PROJECT_DIR}/Data/Maps/{test*,Ruler}\nrm -rf ${PROJECT_DIR}/Data/Hats/{TeamCap,TeamHeadband,TeamHair}\nrm -rf ${PROJECT_DIR}/Data/misc/\n\n#delete forbidden maps\nrm -rf ${PROJECT_DIR}/Data/Maps/{Cheese,FlightJoust}\n\n#delete the Classic voice\nrm -rf ${PROJECT_DIR}/Data/Sounds/voices/Classic\n\n#delete useless fonts\nrm -rf ${PROJECT_DIR}/Data/Fonts/{wqy-zenhei.ttc,DroidSansFallback.ttf}\n\n#delete all names, reserved hats\nrm -rf ${PROJECT_DIR}/Data/Names/\nrm -rf ${PROJECT_DIR}/Data/Graphics/Hats/Reserved/\n\necho \"Copying mono audio...\"\n#copy mono audio\ncp -R ${PROJECT_DIR}/audio/* ${PROJECT_DIR}/Data/\n\necho \"Tweaking Data contents...\"\n#move Lua maps in Missions\nmkdir ${PROJECT_DIR}/Data/Missions/Maps/\nmv ${PROJECT_DIR}/Data/Maps/{Basketball,Knockball,TrophyRace,CTF_Blizzard,Control} ${PROJECT_DIR}/Data/Missions/Maps/\n#workaround for missing map in CTF_Blizzard\nln -s ../../../Maps/Blizzard/map.png ${PROJECT_DIR}/Data/Missions/Maps/CTF_Blizzard/map.png\n\n#reduce the number of flakes for City\nawk '{if ($1 == 1500) $1=40; print $0}' < ${PROJECT_DIR}/Data/Themes/City/theme.cfg > /tmp/tempfile\nmv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/City/theme.cfg\n\n#remove Isalnd from the list of Themes\nawk '{if ($1 != \"Island\") print $0}' < ${PROJECT_DIR}/Data/Themes/themes.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Themes/themes.cfg\n\n#remove Isalnd from the Maps and themes\nrm -rf ${PROJECT_DIR}/Data/Themes/Island\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Cave/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Cave/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/Lonely_Island/map.cfg\nawk '{if ($1 == \"Island\") print \"Nature\"}' < ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg > /tmp/tempfile && mv /tmp/tempfile ${PROJECT_DIR}/Data/Maps/PirateFlag/map.cfg\n\necho \"Done\"";
showEnvVarsInLog = 0;
};
9283011B0F10CB2D00CC5A3C /* Build libfpc.a */ = {
@@ -2424,6 +2437,7 @@
61F544C712AF1748007FD913 /* HoldTableViewCell.m in Sources */,
61AC067412B2E32D000B52A2 /* Appirater.m in Sources */,
61E2E12E12BAAEE30051B659 /* ServerSetup.m in Sources */,
+ 61B7A33812CC21080086B604 /* StatsPageViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Info.plist
--- a/project_files/HedgewarsMobile/Info.plist Mon Jan 17 08:37:43 2011 +0100
+++ b/project_files/HedgewarsMobile/Info.plist Mon Jan 17 23:22:52 2011 +0100
@@ -28,7 +28,7 @@
CFBundleSignature
????
CFBundleVersion
- 1.2.1
+ 1.2.2
LSRequiresIPhoneOS
UILaunchImageFile~ipad
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/backButton.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/backButton.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/backButton@2x.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/backButton@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/background.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/background.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/background@2x~iphone.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/background@2x~iphone.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/background~iphone.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/background~iphone.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/helpButton.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/helpButton.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/localplayButton@2x~iphone.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/localplayButton@2x~iphone.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/localplayButton~ipad.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/localplayButton~ipad.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/localplayButton~iphone.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/localplayButton~iphone.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/mediumBackground~ipad.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/mediumBackground~ipad.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/netplayButton.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/netplayButton.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/savesButton.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/savesButton.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/savesButton@2x.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/savesButton@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/settingsButton.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/settingsButton.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/settingsButton@2x.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/settingsButton@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/smallerBackground@2x~iphone.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/smallerBackground@2x~iphone.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/smallerBackground~ipad.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/smallerBackground~ipad.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/smallerBackground~iphone.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/smallerBackground~iphone.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/smallerTitle.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/smallerTitle.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/smallerTitle@2x.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/smallerTitle@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/startGameButton.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/startGameButton.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/title.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/title.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/title@2x.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/title@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Frontend/title~ipad.png
Binary file project_files/HedgewarsMobile/Resources/Frontend/title~ipad.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/Default-ipad-Landscape.png
Binary file project_files/HedgewarsMobile/Resources/Icons/Default-ipad-Landscape.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/Default.png
Binary file project_files/HedgewarsMobile/Resources/Icons/Default.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/Default@2x.png
Binary file project_files/HedgewarsMobile/Resources/Icons/Default@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/Icon-72.png
Binary file project_files/HedgewarsMobile/Resources/Icons/Icon-72.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/Icon-Small-50.png
Binary file project_files/HedgewarsMobile/Resources/Icons/Icon-Small-50.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/Icon-Small.png
Binary file project_files/HedgewarsMobile/Resources/Icons/Icon-Small.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/Icon-Small@2x.png
Binary file project_files/HedgewarsMobile/Resources/Icons/Icon-Small@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/Icon.png
Binary file project_files/HedgewarsMobile/Resources/Icons/Icon.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/Icon@2x.png
Binary file project_files/HedgewarsMobile/Resources/Icons/Icon@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/checkbox.png
Binary file project_files/HedgewarsMobile/Resources/Icons/checkbox.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/checkbox@2x.png
Binary file project_files/HedgewarsMobile/Resources/Icons/checkbox@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/fb.png
Binary file project_files/HedgewarsMobile/Resources/Icons/fb.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/fb@2x.png
Binary file project_files/HedgewarsMobile/Resources/Icons/fb@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/iTunesArtwork.png
Binary file project_files/HedgewarsMobile/Resources/Icons/iTunesArtwork.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/irc.png
Binary file project_files/HedgewarsMobile/Resources/Icons/irc.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/irc@2x.png
Binary file project_files/HedgewarsMobile/Resources/Icons/irc@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/plus.png
Binary file project_files/HedgewarsMobile/Resources/Icons/plus.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/plus@2x.png
Binary file project_files/HedgewarsMobile/Resources/Icons/plus@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/tw.png
Binary file project_files/HedgewarsMobile/Resources/Icons/tw.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Icons/tw@2x.png
Binary file project_files/HedgewarsMobile/Resources/Icons/tw@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/ammoButton.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/ammoButton.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/ammoButton@2x.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/ammoButton@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/arrowDown.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/arrowDown.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/arrowDown@2x.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/arrowDown@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/arrowLeft.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/arrowLeft.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/arrowLeft@2x.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/arrowLeft@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/arrowRight.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/arrowRight.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/arrowRight@2x.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/arrowRight@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/arrowUp.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/arrowUp.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/arrowUp@2x.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/arrowUp@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/cornerButton.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/cornerButton.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/cornerButton@2x.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/cornerButton@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/helpabove.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/helpabove.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/helpbottom.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/helpbottom.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/helpingame.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/helpingame.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/helpleft.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/helpleft.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/helpplain.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/helpplain.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/helpright.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/helpright.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/joyButtonAttack.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/joyButtonAttack.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/joyButtonAttack@2x.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/joyButtonAttack@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/joyButtonBackJump.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/joyButtonBackJump.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/joyButtonBackJump@2x.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/joyButtonBackJump@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/joyButtonForwardJump.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/joyButtonForwardJump.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Overlay/joyButtonForwardJump@2x.png
Binary file project_files/HedgewarsMobile/Resources/Overlay/joyButtonForwardJump@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Settings/Images/hedgehog.png
Binary file project_files/HedgewarsMobile/Resources/Settings/Images/hedgehog.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Settings/Images/hedgehog@2x.png
Binary file project_files/HedgewarsMobile/Resources/Settings/Images/hedgehog@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Settings/Images/robotBadge.png
Binary file project_files/HedgewarsMobile/Resources/Settings/Images/robotBadge.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/Settings/Images/robotBadge@2x.png
Binary file project_files/HedgewarsMobile/Resources/Settings/Images/robotBadge@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/denied.png
Binary file project_files/HedgewarsMobile/Resources/denied.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 project_files/HedgewarsMobile/Resources/surprise.png
Binary file project_files/HedgewarsMobile/Resources/surprise.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/BulletHit.png
Binary file share/hedgewars/Data/Graphics/BulletHit.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/CMakeLists.txt
--- a/share/hedgewars/Data/Graphics/CMakeLists.txt Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Graphics/CMakeLists.txt Mon Jan 17 23:22:52 2011 +0100
@@ -3,6 +3,7 @@
add_subdirectory(Graves)
add_subdirectory(Hats)
add_subdirectory(Hedgehog)
+add_subdirectory(SuddenDeath)
file(GLOB BaseSprites *.png)
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Case.png
Binary file share/hedgewars/Data/Graphics/Case.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Explosives.png
Binary file share/hedgewars/Data/Graphics/Explosives.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Finger.png
Binary file share/hedgewars/Data/Graphics/Finger.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/FirstAid.png
Binary file share/hedgewars/Data/Graphics/FirstAid.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_42.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_42.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_anarchy.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_anarchy.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_balrog.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_balrog.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_binary.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_binary.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_brittany.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_brittany.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_earth2.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_earth2.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_female.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_female.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_hax0r.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_hax0r.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_iluvu.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_iluvu.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_magicskull.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_magicskull.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_male.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_male.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_music.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_music.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_pacman.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_pacman.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_pacman2.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_pacman2.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Flags/cm_vampire.png
Binary file share/hedgewars/Data/Graphics/Flags/cm_vampire.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Graves/Simple.png
Binary file share/hedgewars/Data/Graphics/Graves/Simple.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/4gsuif.png
Binary file share/hedgewars/Data/Graphics/Hats/4gsuif.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/AkuAku.png
Binary file share/hedgewars/Data/Graphics/Hats/AkuAku.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Balrog.png
Binary file share/hedgewars/Data/Graphics/Hats/Balrog.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Bandit.png
Binary file share/hedgewars/Data/Graphics/Hats/Bandit.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Blanka.png
Binary file share/hedgewars/Data/Graphics/Hats/Blanka.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/BlankaToothless.png
Binary file share/hedgewars/Data/Graphics/Hats/BlankaToothless.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/BlueCap.png
Binary file share/hedgewars/Data/Graphics/Hats/BlueCap.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/BlueHair.png
Binary file share/hedgewars/Data/Graphics/Hats/BlueHair.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Bob.png
Binary file share/hedgewars/Data/Graphics/Hats/Bob.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/BrainSlug.png
Binary file share/hedgewars/Data/Graphics/Hats/BrainSlug.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/BrainSlugMouth.png
Binary file share/hedgewars/Data/Graphics/Hats/BrainSlugMouth.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Bub.png
Binary file share/hedgewars/Data/Graphics/Hats/Bub.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Bunny.png
Binary file share/hedgewars/Data/Graphics/Hats/Bunny.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Chunli.png
Binary file share/hedgewars/Data/Graphics/Hats/Chunli.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Coonskin3.png
Binary file share/hedgewars/Data/Graphics/Hats/Coonskin3.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Cororon.png
Binary file share/hedgewars/Data/Graphics/Hats/Cororon.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Cowboy.png
Binary file share/hedgewars/Data/Graphics/Hats/Cowboy.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Deer.png
Binary file share/hedgewars/Data/Graphics/Hats/Deer.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Disguise.png
Binary file share/hedgewars/Data/Graphics/Hats/Disguise.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Dragon.png
Binary file share/hedgewars/Data/Graphics/Hats/Dragon.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Elvis.png
Binary file share/hedgewars/Data/Graphics/Hats/Elvis.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Eva_00b.png
Binary file share/hedgewars/Data/Graphics/Hats/Eva_00b.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Eva_00y.png
Binary file share/hedgewars/Data/Graphics/Hats/Eva_00y.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Falcon.png
Binary file share/hedgewars/Data/Graphics/Hats/Falcon.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Gasmask.png
Binary file share/hedgewars/Data/Graphics/Hats/Gasmask.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Geordi.png
Binary file share/hedgewars/Data/Graphics/Hats/Geordi.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Glasses.png
Binary file share/hedgewars/Data/Graphics/Hats/Glasses.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/GreenCap.png
Binary file share/hedgewars/Data/Graphics/Hats/GreenCap.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/GreenHair.png
Binary file share/hedgewars/Data/Graphics/Hats/GreenHair.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/GreyHair.png
Binary file share/hedgewars/Data/Graphics/Hats/GreyHair.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Guile.png
Binary file share/hedgewars/Data/Graphics/Hats/Guile.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/HogInTheHat.png
Binary file share/hedgewars/Data/Graphics/Hats/HogInTheHat.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Honda.png
Binary file share/hedgewars/Data/Graphics/Hats/Honda.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/IndianChief.png
Binary file share/hedgewars/Data/Graphics/Hats/IndianChief.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/InfernalHorns.png
Binary file share/hedgewars/Data/Graphics/Hats/InfernalHorns.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Jason.png
Binary file share/hedgewars/Data/Graphics/Hats/Jason.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Ken.png
Binary file share/hedgewars/Data/Graphics/Hats/Ken.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/KirbyMask.png
Binary file share/hedgewars/Data/Graphics/Hats/KirbyMask.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Kululun.png
Binary file share/hedgewars/Data/Graphics/Hats/Kululun.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Ladle.png
Binary file share/hedgewars/Data/Graphics/Hats/Ladle.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Laminaria.png
Binary file share/hedgewars/Data/Graphics/Hats/Laminaria.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Luigi.png
Binary file share/hedgewars/Data/Graphics/Hats/Luigi.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Mario.png
Binary file share/hedgewars/Data/Graphics/Hats/Mario.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/MegaHogX.png
Binary file share/hedgewars/Data/Graphics/Hats/MegaHogX.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Moose.png
Binary file share/hedgewars/Data/Graphics/Hats/Moose.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Mummy.png
Binary file share/hedgewars/Data/Graphics/Hats/Mummy.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/NinjaFull.png
Binary file share/hedgewars/Data/Graphics/Hats/NinjaFull.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/NinjaStraight.png
Binary file share/hedgewars/Data/Graphics/Hats/NinjaStraight.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/NinjaTriangle.png
Binary file share/hedgewars/Data/Graphics/Hats/NinjaTriangle.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/NoHat.png
Binary file share/hedgewars/Data/Graphics/Hats/NoHat.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/OldMan.png
Binary file share/hedgewars/Data/Graphics/Hats/OldMan.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/OrangeHair.png
Binary file share/hedgewars/Data/Graphics/Hats/OrangeHair.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Pantsu.png
Binary file share/hedgewars/Data/Graphics/Hats/Pantsu.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Pig.png
Binary file share/hedgewars/Data/Graphics/Hats/Pig.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/PinkHair.png
Binary file share/hedgewars/Data/Graphics/Hats/PinkHair.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Plunger.png
Binary file share/hedgewars/Data/Graphics/Hats/Plunger.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/PrincessDaisy.png
Binary file share/hedgewars/Data/Graphics/Hats/PrincessDaisy.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/PrincessPeach.png
Binary file share/hedgewars/Data/Graphics/Hats/PrincessPeach.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Pumpkin_Hat.png
Binary file share/hedgewars/Data/Graphics/Hats/Pumpkin_Hat.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/PurpleHair.png
Binary file share/hedgewars/Data/Graphics/Hats/PurpleHair.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/RSR.png
Binary file share/hedgewars/Data/Graphics/Hats/RSR.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Rain.png
Binary file share/hedgewars/Data/Graphics/Hats/Rain.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Rambo.png
Binary file share/hedgewars/Data/Graphics/Hats/Rambo.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/RedCap.png
Binary file share/hedgewars/Data/Graphics/Hats/RedCap.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/RedHair.png
Binary file share/hedgewars/Data/Graphics/Hats/RedHair.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/RobinHood.png
Binary file share/hedgewars/Data/Graphics/Hats/RobinHood.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Ryu.png
Binary file share/hedgewars/Data/Graphics/Hats/Ryu.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Samurai.png
Binary file share/hedgewars/Data/Graphics/Hats/Samurai.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Samus.png
Binary file share/hedgewars/Data/Graphics/Hats/Samus.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Santa.png
Binary file share/hedgewars/Data/Graphics/Hats/Santa.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/SauceBoatSilver.png
Binary file share/hedgewars/Data/Graphics/Hats/SauceBoatSilver.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/ShaggyYeti.png
Binary file share/hedgewars/Data/Graphics/Hats/ShaggyYeti.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/ShortHair_Black.png
Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Black.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/ShortHair_Brown.png
Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Brown.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/ShortHair_Grey.png
Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Grey.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/ShortHair_Red.png
Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Red.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/ShortHair_Yellow.png
Binary file share/hedgewars/Data/Graphics/Hats/ShortHair_Yellow.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Skull.png
Binary file share/hedgewars/Data/Graphics/Hats/Skull.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Sleepwalker.png
Binary file share/hedgewars/Data/Graphics/Hats/Sleepwalker.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Sniper.png
Binary file share/hedgewars/Data/Graphics/Hats/Sniper.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Sonic.png
Binary file share/hedgewars/Data/Graphics/Hats/Sonic.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/SparkleSuperFun.png
Binary file share/hedgewars/Data/Graphics/Hats/SparkleSuperFun.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/StrawHat.png
Binary file share/hedgewars/Data/Graphics/Hats/StrawHat.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/StrawHatEyes.png
Binary file share/hedgewars/Data/Graphics/Hats/StrawHatEyes.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/StrawHatFacial.png
Binary file share/hedgewars/Data/Graphics/Hats/StrawHatFacial.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/SunWukong.png
Binary file share/hedgewars/Data/Graphics/Hats/SunWukong.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Sunglasses.png
Binary file share/hedgewars/Data/Graphics/Hats/Sunglasses.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Teacup.png
Binary file share/hedgewars/Data/Graphics/Hats/Teacup.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Teapot.png
Binary file share/hedgewars/Data/Graphics/Hats/Teapot.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Terminator_Glasses.png
Binary file share/hedgewars/Data/Graphics/Hats/Terminator_Glasses.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Toad.png
Binary file share/hedgewars/Data/Graphics/Hats/Toad.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Vega.png
Binary file share/hedgewars/Data/Graphics/Hats/Vega.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Viking.png
Binary file share/hedgewars/Data/Graphics/Hats/Viking.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Wario.png
Binary file share/hedgewars/Data/Graphics/Hats/Wario.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/WizardHat.png
Binary file share/hedgewars/Data/Graphics/Hats/WizardHat.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/YellowCap.png
Binary file share/hedgewars/Data/Graphics/Hats/YellowCap.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/YellowHair.png
Binary file share/hedgewars/Data/Graphics/Hats/YellowHair.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/Zombi.png
Binary file share/hedgewars/Data/Graphics/Hats/Zombi.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/android.png
Binary file share/hedgewars/Data/Graphics/Hats/android.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/angel.png
Binary file share/hedgewars/Data/Graphics/Hats/angel.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/anzac.png
Binary file share/hedgewars/Data/Graphics/Hats/anzac.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/apple.png
Binary file share/hedgewars/Data/Graphics/Hats/apple.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/ash.png
Binary file share/hedgewars/Data/Graphics/Hats/ash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/banana.png
Binary file share/hedgewars/Data/Graphics/Hats/banana.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/beefeater.png
Binary file share/hedgewars/Data/Graphics/Hats/beefeater.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/charmander.png
Binary file share/hedgewars/Data/Graphics/Hats/charmander.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/chef.png
Binary file share/hedgewars/Data/Graphics/Hats/chef.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/chikorita.png
Binary file share/hedgewars/Data/Graphics/Hats/chikorita.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/clown-copper.png
Binary file share/hedgewars/Data/Graphics/Hats/clown-copper.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/clown-crossed.png
Binary file share/hedgewars/Data/Graphics/Hats/clown-crossed.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/clown.png
Binary file share/hedgewars/Data/Graphics/Hats/clown.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/crown.png
Binary file share/hedgewars/Data/Graphics/Hats/crown.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/cyborg.png
Binary file share/hedgewars/Data/Graphics/Hats/cyborg.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/darthvader.png
Binary file share/hedgewars/Data/Graphics/Hats/darthvader.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/diglett.png
Binary file share/hedgewars/Data/Graphics/Hats/diglett.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/dwarf.png
Binary file share/hedgewars/Data/Graphics/Hats/dwarf.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/eastertop.png
Binary file share/hedgewars/Data/Graphics/Hats/eastertop.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/jigglypuff.png
Binary file share/hedgewars/Data/Graphics/Hats/jigglypuff.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/judo.png
Binary file share/hedgewars/Data/Graphics/Hats/judo.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/junior.png
Binary file share/hedgewars/Data/Graphics/Hats/junior.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/kiss_criss.png
Binary file share/hedgewars/Data/Graphics/Hats/kiss_criss.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/kiss_frehley.png
Binary file share/hedgewars/Data/Graphics/Hats/kiss_frehley.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/kiss_simmons.png
Binary file share/hedgewars/Data/Graphics/Hats/kiss_simmons.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/kiss_stanley.png
Binary file share/hedgewars/Data/Graphics/Hats/kiss_stanley.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/knight.png
Binary file share/hedgewars/Data/Graphics/Hats/knight.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/lambda.png
Binary file share/hedgewars/Data/Graphics/Hats/lambda.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/laurel.png
Binary file share/hedgewars/Data/Graphics/Hats/laurel.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/lemon.png
Binary file share/hedgewars/Data/Graphics/Hats/lemon.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/link.png
Binary file share/hedgewars/Data/Graphics/Hats/link.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/lugia.png
Binary file share/hedgewars/Data/Graphics/Hats/lugia.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/mickey_ears.png
Binary file share/hedgewars/Data/Graphics/Hats/mickey_ears.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/mp3.png
Binary file share/hedgewars/Data/Graphics/Hats/mp3.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/mudkip.png
Binary file share/hedgewars/Data/Graphics/Hats/mudkip.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/naruto.png
Binary file share/hedgewars/Data/Graphics/Hats/naruto.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/orange.png
Binary file share/hedgewars/Data/Graphics/Hats/orange.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/pikachu.png
Binary file share/hedgewars/Data/Graphics/Hats/pikachu.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/pinksunhat.png
Binary file share/hedgewars/Data/Graphics/Hats/pinksunhat.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/pirate_jack.png
Binary file share/hedgewars/Data/Graphics/Hats/pirate_jack.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/pirate_jack_bandana.png
Binary file share/hedgewars/Data/Graphics/Hats/pirate_jack_bandana.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/policecap.png
Binary file share/hedgewars/Data/Graphics/Hats/policecap.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/quotecap.png
Binary file share/hedgewars/Data/Graphics/Hats/quotecap.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/rasta.png
Binary file share/hedgewars/Data/Graphics/Hats/rasta.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/royalguard.png
Binary file share/hedgewars/Data/Graphics/Hats/royalguard.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/slowpoke.png
Binary file share/hedgewars/Data/Graphics/Hats/slowpoke.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/spartan.png
Binary file share/hedgewars/Data/Graphics/Hats/spartan.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/spidey.png
Binary file share/hedgewars/Data/Graphics/Hats/spidey.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/squirtle.png
Binary file share/hedgewars/Data/Graphics/Hats/squirtle.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/sth_Amy.png
Binary file share/hedgewars/Data/Graphics/Hats/sth_Amy.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/sth_AmyClassic.png
Binary file share/hedgewars/Data/Graphics/Hats/sth_AmyClassic.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/sth_Eggman.png
Binary file share/hedgewars/Data/Graphics/Hats/sth_Eggman.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/sth_Knux.png
Binary file share/hedgewars/Data/Graphics/Hats/sth_Knux.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/sth_Metal.png
Binary file share/hedgewars/Data/Graphics/Hats/sth_Metal.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/sth_Shadow.png
Binary file share/hedgewars/Data/Graphics/Hats/sth_Shadow.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/sth_Sonic.png
Binary file share/hedgewars/Data/Graphics/Hats/sth_Sonic.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/sth_Super.png
Binary file share/hedgewars/Data/Graphics/Hats/sth_Super.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/sth_Tails.png
Binary file share/hedgewars/Data/Graphics/Hats/sth_Tails.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/stormcloud.png
Binary file share/hedgewars/Data/Graphics/Hats/stormcloud.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/stormtrooper.png
Binary file share/hedgewars/Data/Graphics/Hats/stormtrooper.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/thug.png
Binary file share/hedgewars/Data/Graphics/Hats/thug.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/tophats.png
Binary file share/hedgewars/Data/Graphics/Hats/tophats.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/ushanka.png
Binary file share/hedgewars/Data/Graphics/Hats/ushanka.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/venom.png
Binary file share/hedgewars/Data/Graphics/Hats/venom.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hats/voltorb.png
Binary file share/hedgewars/Data/Graphics/Hats/voltorb.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hedgehog/ILoveLemonade.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/ILoveLemonade.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hedgehog/Idle.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/Idle.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hedgehog/Juggle.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/Juggle.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Hedgehog/Shrug.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/Shrug.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Lag.png
Binary file share/hedgewars/Data/Graphics/Lag.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Power.png
Binary file share/hedgewars/Data/Graphics/Power.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Snow.png
Binary file share/hedgewars/Data/Graphics/Snow.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Snow.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Graphics/Snow.svg Mon Jan 17 23:22:52 2011 +0100
@@ -0,0 +1,93 @@
+
+
+
+
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Splash.png
Binary file share/hedgewars/Data/Graphics/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/SuddenDeath/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Graphics/SuddenDeath/CMakeLists.txt Mon Jan 17 23:22:52 2011 +0100
@@ -0,0 +1,5 @@
+file(GLOB Sprites *.png)
+
+install(FILES
+ ${Sprites}
+ DESTINATION ${SHAREPATH}Data/Graphics/SuddenDeath)
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/SuddenDeath/SDClouds.png
Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDClouds.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/SuddenDeath/SDDroplet.png
Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDDroplet.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/SuddenDeath/SDFlake.png
Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDFlake.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/SuddenDeath/SDSplash.png
Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDSplash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/SuddenDeath/SDWater.png
Binary file share/hedgewars/Data/Graphics/SuddenDeath/SDWater.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/Utility.png
Binary file share/hedgewars/Data/Graphics/Utility.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/amGirder.png
Binary file share/hedgewars/Data/Graphics/amGirder.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/hhMask.png
Binary file share/hedgewars/Data/Graphics/hhMask.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Graphics/missions.png
Binary file share/hedgewars/Data/Graphics/missions.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/de.lua
--- a/share/hedgewars/Data/Locale/de.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/de.lua Mon Jan 17 23:22:52 2011 +0100
@@ -52,8 +52,7 @@
-- ["Listen up, maggot!!"] = "",
-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
-- ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESS"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
-- ["NEW fastest lap: "] = "",
-- ["NO JUMPING"] = "",
["Not So Friendly Match"] = "Kein-so-Freundschaftsspiel", -- Basketball, Knockball
@@ -62,11 +61,11 @@
-- ["Operation Diver"] = "",
-- ["Opposing Team: "] = "",
-- ["Pathetic Hog #%d"] = "",
+-- ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
-- ["Poison"] = "",
-- ["Random Weapons"] = "",
-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
-- ["RULES OF THE GAME [Press ESC to view]"] = "",
--- ["RULES OF THE GAME [Press ESC to view]"] = "",
-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
-- ["See ya!"] = "",
["Shotgun Team"] = "Entrenamiento con escopeta",
@@ -87,7 +86,7 @@
-- ["T_T"] = "",
-- ["Unit 3378"] = "",
-- ["Use your rope to get from start to finish as fast as you can!"] = "",
--- ["Victory for the"] = "",
+-- ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
-- ["You have SCORED!!"] = "",
-- ["You've failed. Try again."] = "",
-- ["You've reached the goal!| |Time:"] = "",
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/de.txt
--- a/share/hedgewars/Data/Locale/de.txt Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/de.txt Mon Jan 17 23:22:52 2011 +0100
@@ -50,6 +50,9 @@
00:47=Haftmine
00:48=Hammer
00:49=Totenbeschwörung
+00:50=Bohr-Luftangriff
+00:51=Schlammball
+00:52=Keine Waffe ausgewählt
01:00=Auf in die Schlacht!
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/el.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/el.txt Mon Jan 17 23:22:52 2011 +0100
@@ -0,0 +1,508 @@
+; Greek locale
+
+00:00=Χειροβομβίδα
+00:01=Χειροβομβίδα Διασποράς
+00:02=Μπαζούκας
+00:03=Αυτοκαθοδηγούμενη Μέλισσα
+00:04=Καραμπίνα
+00:05=Κρουστικό Δράπανο
+00:06=Άχθος Αρούρης
+00:07=Σχοινί
+00:08=Νάρκη
+00:09=Desert Eagle
+00:10=Δυναμίτης
+00:11=Μπαστούνι Του Βaseball
+00:12=Fire Punch
+00:13=δευ
+00:14=Αλεξίπτωτο
+00:15=Αεροπορικός Βομβαρδισμός
+00:16=Βομβαρδισμός Με Νάρκες
+00:17=Καμινέτο
+00:18=Δοκός
+00:19=Τηλεμεταφορά
+00:20=Εναλλαγή Σκαντζόχοιρου
+00:21=Όλμος
+00:22=Μαστίγιο
+00:23=Καμικάζι
+00:24=Τούρτα
+00:25=Αποπλάνηση
+00:26=Καρπουζόβομβα
+00:27=Σατανική Χειροβομβίδα
+00:28=Διατρητικός Πύραυλος
+00:29=Εκτοξευτής Χρωμοσφαιρίδιων
+00:30=Ναπάλμ
+00:31=Τηλεκατευθυνόμενο
+00:32=Μικροβαρύτητα
+00:33=Επιπλέον Ζημιά
+00:34=Ασπίδα
+00:35=Επιπλέον Χρόνος
+00:36=Διόπτρα Laser
+00:37=Βαμπιρισμός
+00:38=Τυφέκιο Ελεύθερου Σκοπευτή
+00:39=Ιπτάμενος Δίσκος
+00:40=Μολότωφ
+00:41=Πτηνό
+00:42=Φορητή Σκουληκότρυπα
+00:43=Πιάνο
+00:44=Χαλασμένη Φέτα
+00:45=Sine Gun (beta)
+00:46=Φλογοβόλο
+00:47=Αυτοκόλλητη Νάρκη
+00:48=Σφυρί
+00:49=Νεκρανάσταση
+
+01:00=Ας Πολεμήσουμε!
+01:01=Ισόπαλος Γύρος
+01:02=Οι %1 Νικούν!
+01:03=Ένταση Ήχου %1%
+01:04=Παύση
+01:05=Σίγουρα θέλετε να φύγετε (Y/Esc);
+01:06=Ξαφνικός Θάνατος!
+01:07=%1 απομένουν
+01:08=Καύσιμα
+01:09=Συγχρονισμός...
+01:10=Χρησιμοποιώντας αυτό το βοήθημα δεν τελειώνει η σειρά σας!
+01:11=Αυτό το όπλο ή βοήθημα δεν είναι ακόμα διαθέσιμο!
+01:12=Τελευταίος γύρος μέχρι τον Ξαφνικό Θάνατο!
+01:13=%1 γύροι μέχρι τον Ξαφνικό Θάνατο!
+01:14=Ετοιμάσου, %1!
+
+; Event messages
+; Hog (%1) died
+02:00=Ο %1 τίναξε τα πέταλα!
+02:00=Ο %1 είδε το φως στο τέλος της σήραγγας!
+02:00=Ο %1 δεν το περίμενε ποτέ!
+02:00=Ο %1 μας αποχαιρετά!
+02:00=Ο %1 βόσκει στα ουράνια λιβάδια!
+02:00=Ο %1 πήγε να συναντήσει το δημιουργό του!
+02:00=Ο %1 δεν μπορεί να κρατηθεί άλλο!
+02:00=Ο %1 έκανε το καθήκον του!
+02:00=Ο %1 κάνει την υπέρτατη θυσία!
+02:00=Ο %1 αφήνει τον μάταιο τούτο κόσμο!
+02:00=Ο %1 μας την έκανε με ελαφρά πηδηματάκια!
+02:00=Ο %1 δεν έχει άλλο χρόνο στη διάθεσή του!
+02:00=Θα θυμόμαστε τον %1 με στοργή!
+02:00=Ο %1 έχει ανεύρυσμα!
+02:00=Ο %1 αφήνει πίσω γυναίκα και παιδί!
+02:00=Ο %1 εκτόξευσε το τελευταίο μπαζούκας του!
+02:00=Ο %1 έριξε την τελευταία χειροβομβίδα του!
+02:00=Ο %1 έφτιαξε την τελευταία τούρτα του!
+02:00=Ο %1 έκανε την τελευταία του αεροπορική επίθεση!
+02:00=Ο %1 έριξε για τελευταία φορά με την καραμπίνα του!
+02:00=Ο %1 έριξε την τελευταία του καρπουζόβομβα!
+02:00=Ο %1 έριξε την τελευταία του βολή με το desert eagle!
+02:00=Ο %1 το πήρε κατάκαρδα!
+02:00=Ο %1 θα μπορούσε κάλλιστα να είχε χρησιμοποιήσει ένα κιβώτιο υγείας!
+02:00=Ο %1 πήγε να παίξει ένα καλύτερο παιχνίδι!
+02:00=Ο %1 έζησε μια καλή ζωή!
+02:00=Ο %1 απέτυχε οικτρά...
+02:00=Καψερέ μου %1, τι σου έμελλε να πάθεις!
+02:00=Ο %1 προτιμά να παίζει Wormux!
+02:00=Ο %1 σταμάταγε τις σφαίρες με τη φάτσα του!
+02:00=Ο %1 πήγε να συναντήσει τους προγόνους του!
+02:00=Ο %1 βρήκε τη θέση του στον παράδεισο!
+02:00=Ο %1 βρήκε τη θέση του στο Valhalla!
+02:00=Ο %1 βρήκε τη θέση του στο πάνθεον των ηρώων!
+02:00=Ο %1 εγκατέλειψε το κτήριο!
+02:00=Ο %1 εξαφανίστηκε σαν τους δεινόσαυρους!
+02:00=Ο %1 φέρνει τους σκαντζόχοιρους ένα βήμα κοντύτερα στην εξαφάνιση!
+02:00=Ο %1 με κάνει και συγκινούμαι...
+02:00=Ο %1 είναι ένας πρώην σκαντζόχοιρος τώρα πια!
+02:00=Ο %1 βλέπει τα ραδίκια ανάποδα!
+02:00=Ο %1 έπαψε να υφίσταται!
+02:00=Πραγματικά κρίμα %1!
+02:00=Δεν υπάρχει καμία ελπίδα για τον %1!
+02:00=Ας είναι ελαφρύ το χώμα που σκεπάζει τον %1...
+02:00=Ο %1 υποφέρει από το σύνδρομο της ανυπαρξίας!
+02:00=Ο %1 έγινε αλαφροΐσκιωτος!
+02:00=Ο %1 μας τέλειωσε!
+02:00=Ο %1 έληξε!
+02:00=%1... Αιωνία αυτού η μνήμη...
+02:00=Ο %1 αναπαύθηκε εν ειρήνη!
+02:00=Ο %1 έγινε δεκτός στην χορωδία των αγγέλων!
+02:00=Έχε γεια %1, μετά βίας σε γνωρίσαμε!
+02:00=Ο %1 έχει μικρή ανεκτικότητα στα χτυπήματα!
+02:00=Ο %1 θα μπορούσε κάλλιστα να χρησιμοποιούσε μια επιπλέον ζωή!
+02:00=Ένα γιατρό για τον %1!
+
+; Hog (%1) drowned
+02:01=Ο %1 κάνει το υποβρύχιο!
+02:01=Ο %1 μιμείται τον Τιτανικό!
+02:01=Ο %1 κολυμπάει σαν πέτρα!
+02:01=Ο %1 επιπλέει σαν τούβλο!
+02:01=Ο %1 πήγε να εξερευνήσει το βυθό!
+02:01=Ο %1 κάνει γαργάρες!
+02:01=Ο %1 ξέχασε τα μπρατσάκια του!
+02:01=Ο %1 θα μπορούσε κάλλιστα να είχε πάρει μαθήματα κολύμβησης!
+02:01=Ο %1 ξέχασε την ιστιοσανίδα του στο σπίτι!
+02:01=Ο %1 πήγε να πλυθεί!
+02:01=Ο %1 είναι ένας βρεγμένος σκαντζόχοιρος!
+02:01=Ο %1 ξέχασε να βάλει το σωσίβιό του!
+02:01=Ο %1 κοιμάται με τα ψάρια!
+02:01=Ο %1 πιστεύει ότι η φυσική του νερού είναι άθλια σε αυτό το παιχνίδι!
+02:01=Ο %1 μοιάζει διψασμένος...
+02:01=Η θάλασσα διεκδίκησε και πήρε τον %1...
+02:01=Ο %1 χάθηκε στη θάλασσα!
+02:01=Ο %1 έπρεπε να φέρει τη μάσκα του!
+02:01=Ο %1 έπρεπε να φέρει τα βατραχοπέδιλά του!
+02:01=Ο %1 έχει ταφή στη θάλασσα!
+02:01=Ο %1 βυθίστηκε στις σκέψεις του!
+02:01=Ο %1 κάνει προπόνηση στην ελεύθερη κατάδυση!
+02:01=Ο %1 κάνει προπόνηση στο ύπτιο!
+02:01=Ο %1 πάει να ψάξει για τον Τιτανικό!
+02:01=Ο %1 δεν είναι ο Μεσσίας αφού δεν περπατάει στο νερό!
+02:01=Ο %1 πάει να βρει το Nemo!
+02:01=Ο %1 έχει διαρροές!
+02:01=Σε κάνει να αναρωτιέσαι πόσοι σκαντζόχοιροι να βρίσκονται εκεί κάτω...
+02:01=Ο %1 αυξάνει ελαφρώς τη στάθμη της θάλασσας!
+02:01=Ο %1 δεν ήθελε να καταταγεί στο ναυτικό!
+02:01=Ο %1 μιμείται ένα νεκρό ψάρι!
+02:01=Τουλάχιστον δεν έπεσες στα σκ@τ@, %1!
+02:01=Ο %1 δεν έμαθε ποτέ να κολυμπάει!
+02:01=Ο %1 θέλει να παίξει τον Ecco το δελφίνι!
+02:01=Ο %1 θα προτιμούσε να είχε βράγχια!
+02:01=Ο %1 βρήκε την χαμένη πόλη της Ατλαντίδας!
+02:01=Ο %1 έγινε τροφή για τα ψάρια!
+02:01=Του %1 δεν του αρέσουν τα αθλήματα του νερού!
+02:01=Ο %1 έπρεπε να φέρει τη σχεδία του!
+02:01=Ο %1 πιστεύει ότι το θαλασσινό νερό κάνει καλό στο δέρμα!
+02:01=Ο %1 βάζει αλάτι στις πληγές του!
+02:01=Ο %1 πάει ταξίδι στην άβυσσο!
+02:01=Ο %1 άρχισε από νωρίς φέτος τα μπάνια στη θάλασσα!
+02:01=Ο %1 έγινε μούσκεμα!
+02:01=Ο %1 βράχηκε μέχρι το κόκκαλο!
+
+; Round starts
+02:02=Ας πολεμήσουμε!
+02:02=Οπλισμένος και έτοιμος!
+02:02=Ας ξεκινήσει το πάρτι!
+02:02=Ο τελευταίος όρθιος σκαντζόχοιρος κερδίζει!
+02:02=Πάμε!
+02:02=Ας ροκάρουμε!
+02:02=Ας τζαμάρουμε!
+02:02=Αρχίζει...
+02:02=Αυτή είναι η απαρχή κάτι μεγάλου...
+02:02=Καλώς ήλθατε στο Hedgewars!
+02:02=Καλώς ήλθατε στην πρώτη γραμμή!
+02:02=Συνέτριψε τους εχθρούς σου!
+02:02=Ας νικήσει ο καλύτερος σκαντζόχοιρος!
+02:02=Νίκη ή θάνατος!
+02:02=Τα λάφυρα πάνε στο νικητή!
+02:02=Η ήττα δεν είναι επιλογή!
+02:02=Σκορπίστε τον όλεθρο!
+02:02=Αφέθηκαν ελεύθεροι οι σκαντζόχοιροι του πολέμου!
+02:02=Hedgewars, σας προσφέρεται από το Hedgewars.org
+02:02=ΑΑΑΑΕΕΕΕΕΕΡΡΡΡΡΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑ.....
+02:02=Είσαι πολύ τυχερός αν δεν είσαι εναντίων του Tiyuri!
+02:02=Είσαι πολύ τυχερός αν δεν είσαι εναντίων του unC0Rr!
+02:02=Είσαι πολύ τυχερός αν δεν είσαι εναντίων του Nemo!
+02:02=Είσαι πολύ τυχερός αν δεν είσαι εναντίων του Smaxx!
+02:02=Είσαι πολύ τυχερός αν δεν είσαι εναντίων του Jessor!
+02:02=Δώσε όλο το είναι σου!
+02:02=Οι χαμένοι καθαρίζουν στο τέλος!
+02:02=Ας αρχίσει η μάχη της χιλιετίας!
+02:02=Ας αρχίσει η μάχη του αιώνα!
+02:02=Ας αρχίσει η μάχη της δεκαετίας!
+02:02=Ας αρχίσει η μάχη της χρονιάς!
+02:02=Ας αρχίσει η μάχη του μήνα!
+02:02=Ας αρχίσει η μάχη της εβδομάδας!
+02:02=Ας αρχίσει η μάχη της ημέρας!
+02:02=Ας αρχίσει η μάχη της ώρας!
+02:02=Δώσε τον καλύτερο εαυτό σου!
+02:02=Κατάστρεψε τον εχθρό!
+02:02=Καλή τύχη!
+02:02=Καλή διασκέδαση!
+02:02=Δώσε τον αγώνα τον καλό!
+02:02=Πάλεψε βρώμικα!
+02:02=Πάλεψε με τιμή!
+02:02=Μην τα παρατήσεις!
+02:02=Μην παραδοθείς ποτέ!
+02:02=Ρόκαρέ τους και σόκαρέ τους!
+02:02=Πάμε Πάμε Πάμε!
+02:02=Σκαντζόχοιροι προελάστε!
+02:02=Μην φοβάσαι, να είσαι ατρόμητος!
+02:02=Να είσαι γενναίος και να κατακτάς!
+
+; Round ends (win; unused atm)
+02:03=...
+
+; Round ends (draw; unused atm)
+02:04=...
+
+; New health crate
+02:05=Εισερχόμενη βοήθεια!
+02:05=Φαρμακάκι!
+02:05=Πρώτες βοήθειες από τον ουρανό!
+02:05=Ένα πακετάκι υγείας αποκλειστικά για σένα!
+02:05=Καλή υγεία... σε μορφή κουτιού!
+02:05=Μια ευγενική χορηγία του Δρ. Ζιβάγκο!
+02:05=Είναι εγκεκριμένο και από τον Ε.Ο.Φ.!
+02:05=Αυτό θα σε κάνει να νιώσεις καλύτερα!
+02:05=Μαγικός Ζωμός...! Ούπς! Λάθος παιχνίδι!
+02:05=Περιέχει σουπερμαντολίνη 100%!
+02:05=Άρπαξέ το όσο προλαβαίνεις!
+02:05=Ένα υγιεινό snack!
+02:05=Μια θεραπεία για τον πόνο!
+02:05=Περιέχει εκχύλισμα από το σπανάκι του Ποπάϊ!
+02:05=Κατεπείγουσα παράδοση!
+02:05=Προμήθειες!
+02:05=Όποιος πρόλαβε τον κύριο είδε!
+
+; New ammo crate
+02:06=Περισσότερα όπλα!
+02:06=Ενισχύσεις!
+02:06=Το κουτί της Πανδώρας!
+02:06=Αναρωτιέμαι τι όπλο να υπάρχει εκεί μέσα;
+02:06=Προμήθειες!
+02:06=Τι θα μπορούσε να κρύβεται μέσα;
+02:06=Οι γιορτές ήρθαν νωρίς στο Hedgewars!
+02:06=Ένα δώρο!
+02:06=Ειδική παράδοση!
+02:06=Ήταν σκέτος μπελάς να περάσει από το τελωνείο...
+02:06=Παιχνίδια μαζικής καταστροφής από τον ουρανό!
+02:06=Προσοχή! Ασταθές περιεχόμενο!
+02:06=Περισυνέλεξέ το ή ανατίναξέ το, εσύ αποφασίζεις!
+02:06=Εκρηκτικά αγαθά!
+02:06=Χμμμμμμ... πυρομαχικά εν' όψη!
+02:06=Ένα κουτί καταστρεπτικής δύναμης!
+02:06=Συστημένο!
+02:06=Οτιδήποτε μπορεί να περιέχει το κουτί, εκτός από πίτσα!
+02:06=Πιάσ'το!
+02:06=Επικείμενη ρίψη οπλισμού!
+02:06=Μην το αφήσεις να πέσει στα χέρια του εχθρού!
+02:06=Αστραφτερά νέα παιχνίδια!
+02:06=Ένα μυστηριώδες κουτί!
+
+; New utility crate
+02:07=Ώρα για μαστορέματα!
+02:07=Αυτό όλο και κάπου θα φανεί χρήσιμο...
+02:07=Βοηθήματα!
+02:07=Προσοχή! Δεν πωλείται στα καταστήματα!
+02:07=Απευθείας από το εργαστήρι του Κύρου Γρανάζη!
+02:07=Περισσότερα βοηθήματα!
+02:07=Εργαλεία για το λαό!
+02:07=Αυτό είναι καλό!
+02:07=Χρησιμοποίησέ το με φειδώ!
+02:07=Ωωωχ! Αυτό το κουτί είναι βαρύ!
+02:07=Μπορεί να σου χρησιμεύσει σε κάτι!
+
+; Hog (%1) skips his turn
+02:08=Ο %1 είναι τόσο βαρετός...
+02:08=Ο %1 βαριέται ασυστόλως!
+02:08=Ο %1 είναι ένας τεμπέλης σκαντζόχοιρος!
+02:08=Ο %1 είναι απερίσκεπτος!
+02:08=Ο %1 τα παράτησε!
+02:08=Τον %1 τον πήρε ο ύπνος...
+02:08=Ο %1 είναι ρίψασπις!
+02:08=Ο %1 ατιμωτικά χάνει τη σειρά του!
+02:08=Ο %1 είναι πραγματικά ξύστης!
+02:08=Ο %1 χρειάζεται λίγο παραπάνω ενθάρρυνση!
+02:08=Ο %1 είναι ειρηνιστής!
+02:08=Ο %1 κάνει την ανάπαυλά του!
+02:08=Ο %1 ξεκουράζεται!
+02:08=Ο %1 κρατάει δυνάμεις για μετά!
+02:08=Ο %1 χαλαρώνει!
+02:08=Ο %1 δεν πιστεύει στις ικανότητές του!
+02:08=Ο %1 αποφασίζει να μην κάνει τίποτα απολύτως!
+02:08=Ο %1 αφήνει τον εχθρό να αυτοκαταστραφεί!
+02:08=Ο %1 θα ήταν άθλιος στα πάρτι!
+02:08=Ο %1 κάνει απόκρυψη!
+02:08=Ο %1 αποφάσισε να αφήσει την ευκαιρία ανεκμετάλλευτη!
+02:08=Ο %1 αποφάσισε πως το καλύτερο που έχει να κάνει είναι... να μην κάνει τίποτα!
+02:08=Ο %1 είναι μεγάλη κωλώστρα!
+02:08=Ο %1 είναι κότα!
+02:08=Ο %1 έχασε το χρώμα του!
+02:08=Ο %1 είναι δειλός!
+02:08=Ο %1 περιμένει τον Ξαφνικό Θάνατο!
+02:08=Ο %1 δεν είναι ο τύπος του αγωνιστή!
+02:08=Ο %1 επανεξετάζει τον σκοπό της ζωής του!
+02:08=Ο %1 δεν ήταν ποτέ του εύστοχος ούτως ή άλλως...
+02:08=Ο %1 δεν ήθελε να καταταγεί στο στρατό, εδώ που τα λέμε!
+02:08=Σταμάτα να σπαταλάς το χρόνο μας, %1...
+02:08=Είμαι πολύ απογοητευμένος από σένα, %1...
+02:08=Έλα, μπορείς περισσότερα από αυτό %1...
+02:08=Το φρόνημα του %1 έχει τσακίσει για τα καλά!
+02:08=Ο %1 προφανώς έχει καλύτερα πράγματα να κάνει!
+02:08=Ο %1 έχει κλάσει μέντες!
+02:08=Ο %1 αποκοιμήθηκε!
+
+; Hog (%1) hurts himself only
+02:09=Ο %1 πρέπει να εξασκηθεί στην σκοποβολή!
+02:09=Ο %1 φαίνεται να έχει αυτοκτονικές τάσεις!
+02:09=Ο %1 πολεμάει στην λάθος πλευρά!
+02:09=Ο %1 είναι emo!
+02:09=Ο %1 κρατούσε το όπλο του ανάποδα!
+02:09=Ο %1 είναι μαζόχας!
+02:09=Ο %1 δεν έχει το ένστικτο της αυτοσυντήρησης!
+02:09=Ο %1 τα έκανε σαλάτα!
+02:09=Ο %1 τα σκάτωσε!
+02:09=Αυτή ήταν βολή γιωτά, %1!
+02:09=Ο %1 είναι λιγάκι απρόσεκτος με επικίνδυνα όπλα!
+02:09=Ο %1 πρέπει να σκεφτεί να αλλάξει καριέρα!
+02:09=Η χειρότερη βολή. Όλων των εποχών!
+02:09=Όχι %1,το κάνεις λάθος... Σημαδεύεις τον Ε-Χ-Θ-Ρ-Ο!
+02:09=Ο %1 θα έπρεπε να καταστρέφει μόνο τον εχθρό!
+02:09=Ο %1 κινείται ένα βήμα κοντύτερα στην αυτοκτονία.
+02:09=Ο %1 βοηθάει τον εχθρό!
+02:09=Αυτό ήταν χαζό %1!
+02:09=Το ρητό του %1 είναι : "Τα αγαθά κόποις κτώνται"!
+02:09=Ο %1 είναι μπερδεμένος!
+02:09=Ο %1 αυτοτραυματίστηκε πάνω στη σύγχυσή του!
+02:09=Ο %1 έχει την ικανότητα να γελοιοποιείται!
+02:09=Ο %1 είναι γκαντέμης!
+02:09=Ο %1 είναι ατζαμής!
+02:09=Ο %1 είναι άτσαλος!
+02:09=Ο %1 είναι αδέξιος!
+02:09=Ο %1 είναι γιωτάς!
+02:09=Ο %1 είναι γιωτόμπαλο!
+02:09=Ο %1 δείχνει στον εχθρό τις ικανότητες του!
+02:09=Ο %1 δεν μπορεί να είναι τέλειος κάθε στιγμή!
+02:09=Μην ανησυχείς %1, κανείς δεν είναι άσφαλτος!
+02:09=Ο %1 το έκανε αυτό εσκεμμένως!
+02:09=Ο %1 το έκανε αυτό επίτηδες!
+02:09=Ο %1 το έκανε αυτό εξεπίτηδες!
+02:09=Μην ανησυχείς, δε θα το πω πουθενά %1...
+02:09=Τι ντροπή!
+02:09=Είμαι σίγουρος πως αυτό δεν το είδε κανείς %1!
+02:09=Ο %1 πρέπει να ξαναδιαβάσει το εγκόλπιο του μαχητή!
+02:09=Του %1 το όπλο δυσλειτούργησε!
+
+; Hog shot an home run (using the bat and another hog)
+02:10=Μπήκε σε τροχιά!
+02:10=Εκτοξεύτηκε στο διάστημα...
+02:10=Στο άπειρο κι ακόμα παραπέρα!
+
+; Hog (%1) has to leave (team is gone)
+02:11=Ο %1 πρέπει να πάει για ύπνο!
+02:11=Ο %1 μοιάζει πολυάσχολος για να παίξει!
+02:11=Διακτίνησε τον %1, Σποκ!
+02:11=Ο %1 πρέπει να πηγαίνει!
+02:11=Ο %1 ξέχασε το θερμοσίφωνο αναμμένο!
+02:11=Ο %1 ξέχασε το φούρνο αναμμένο!
+
+; Weapon Categories
+03:00=Χειροβομβίδα με χρονοδιακόπτη
+03:01=Χειροβομβίδα με χρονοδιακόπτη
+03:02=Βαλλιστικό Όπλο
+03:03=Καθοδηγούμενο Όπλο
+03:04=Περίστροφο (πολλαπλές βολές)
+03:05=Σκαπτικό Εργαλείο
+03:06=Δράση (ναι... καλά!)
+03:07=Βοήθημα Μεταφοράς
+03:08=Βόμβα Εγγύτητας
+03:09=Περίστροφο (πολλαπλές βολές)
+03:10=ΜΠΟΥΜ!
+03:11=Μπονκ!
+03:12=Πολεμικές Τέχνες
+03:13=UNUSED
+03:14=Βοήθημα Μεταφοράς
+03:15=Αεροπορική Επιδρομή
+03:16=Αεροπορική Επιδρομή
+03:17=Σκαπτικό Εργαλείο
+03:18=Βοήθημα
+03:19=Βοήθημα Μεταφοράς
+03:20=Δράση
+03:21=Βαλλιστικό Όπλο
+03:22=Φώναζέ με Ιντιάνα!
+03:23=(Χωρίς Πλάκα) Πολεμικές Τέχνες
+03:24=Τούρτα 0% λιπαρά με όλη τη γεύση!
+03:25=Στολή
+03:26=Ζουμερή Χειροβομβίδα
+03:27=Πύρινη χειροβομβίδα
+03:28=Βαλλιστικό Όπλο
+03:29=Βαλλιστικό Όπλο
+03:30=Αεροπορική Επιδρομή
+03:31=Τηλεχειριζόμενη Βόμβα
+03:32=Προσωρινό Φαινόμενο
+03:33=Προσωρινό Φαινόμενο
+03:34=Προσωρινό Φαινόμενο
+03:35=Προσωρινό Φαινόμενο
+03:36=Προσωρινό Φαινόμενο
+03:37=Προσωρινό Φαινόμενο
+03:38=Περίστροφο (πολλαπλές βολές)
+03:39=Βοήθημα Μεταφοράς
+03:40=Αποτεφρωτική Χειροβομβίδα
+03:41=Θα ζήσω ελεύθερο πουλί...
+03:42=Η φυσική μπορεί να γίνει πολύ διασκεδαστική...
+03:43=Εκτελώντας την φονική συμφωνία του Μπετόβεν
+03:44=Ανάλωση κατά προτίμηση πριν από το 1923
+03:45=Η δύναμη της επιστήμης
+03:46=Το υγρόν πύρ!
+03:47=Κόλλα τες κάπου χρήσιμα!
+03:48=Ήρθε η ώρα του σφυριού!
+03:49=Πάντες οι εν τοις μνημείοις, εκπορεύσονται...
+
+; Weapon Descriptions (use | as line breaks)
+04:00=Κάντε επίθεση τους εχθρούς σας χρησιμοποιώντας μια απλή|χειροβομβίδα. Θα εκραγεί μόλις το χρονόμετρο τερματίσει.|1-5: Θέστε το χρονόμετρο της χειροβομβίδας.|Επίθεση : Κρατήστε πατημένο για μακρύτερη βολή.
+04:01=Κάντε επίθεση στους εχθρούς σας χρησιμοποιώντας μια|χειροβομβίδα διασποράς. Θα διαρραγεί σε μικρότερες|βόμβες μόλις το χρονόμετρό της τερματίσει.|1-5: Θέστε το χρονόμετρο της χειροβομβίδας.|Επίθεση : Κρατήστε πατημένο για μακρύτερη βολή.
+04:02=Κάντε επίθεση στους εχθρούς σας χρησιμοποιώντας ένα|βαλλιστικό βλήμα το οποίο επηρεάζεται από τον άνεμο.|Επίθεση : Κρατήστε πατημένο για μακρύτερη βολή.
+04:03=Εκτοξεύστε μια εκρηκτική μέλισσα η οποία θα "κλειδώσει"|στον επιλεγμένο στόχο. Αν δεν πυροδοτήσετε με πλήρη|ισχύ θα βελτιώσετε την ακρίβεια του όπλου.|Δείκτης ποντικιού : Επιλογή στόχου.|Επίθεση : Κρατήστε πατημένο για ισχυρότερη βολή.
+04:04=Κάντε επίθεση στους εχθρούς σας χρησιμοποιώντας μια|καραμπίνα με δύο σφαίρες. Χάρη στην ισχύ της δεν χρειάζεστε|απευθείας χτυπήματα για να βλάψετε τους αντιπάλους σας.|Επίθεση : Πυροβολήστε (δις).
+04:05=Κινηθείτε υπογείως! Χρησιμοποιήστε το Κρουστικό Δράπανο για να σκάψετε|μια σήραγγα στο έδαφος και να φτάσετε απρόσιτες περιοχές.|Επίθεση : Ξεκινήστε ή σταματήστε το σκάψιμο.
+04:06=Βαρεθήκατε; Δεν υπάρχει τρόπος να επιτεθείτε; Κάνετε οικονομία στα|πυρομαχικά; Κανένα πρόβλημα! Απλώς παραχωρήστε τη σειρά σας, δειλέ!|(Σημ. Μετ.) : Προέρχεται από ομηρική φράση (Ιλιάδα Σ 104) όπου ο Αχιλλέας|απευθυνόμενος στη μητέρα του Θέτιδα αποκαλεί τον εαυτό του «άχθος|αρούρης» (βάρος της γης) μετά από μεγάλο διάστημα απραξίας και|αποχής από τη μάχη.)|Επίθεση : Παραχωρήστε τη σειρά σας χωρίς μάχη.
+04:07=Γεφυρώστε μεγάλες αποστάσεις χρησιμοποιώντας το σχοινί.|Χρησιμοποιήστε την ορμή σας για να γλιστρήσετε πάνω σε άλλους|σκαντζόχοιρους ή ρίξτε χειροβομβίδες και άλλα όπλα πάνω τους.|Επίθεση : Εκτοξεύστε ή αφήστε το σχοινί.|Άλμα εις Μήκος : Ρίξτε χειροβομβίδες ή άλλα συναφή όπλα.
+04:08=Κρατήστε τους εχθρούς σας μακρυά αφήνοντας μια νάρκη|σε στενά περάσματα ή ακριβώς κάτω από τα πόδια τους.|Φροντίστε όμως να οπισθοχωρήσετε σε ασφαλή απόσταση|πριν αυτή ενεργοποιηθεί πάνω σας!|Επίθεση : Ρίξτε τη νάρκη δίπλα στα πόδια σας.
+04:09=Δεν είστε σίγουροι για το σημάδι σας; Χρησιμοποιήστε το Desert Eagle|για να επιτεθείτε χρησιμοποιώντας μέχρι και τέσσερις πυροβολισμούς.|Επίθεση : Πυροβολήστε (τετράκις).
+04:10=Η ωμή δύναμη είναι πάντα στις επιλογές σας. Ρίξτε αυτό το κλασσικό|εκρηκτικό δίπλα στους εχθρούς σας και οπισθοχωρήστε.|Επίθεση : Ρίξτε το δυναμίτη δίπλα στα πόδια σας.
+04:11=Ξεφορτωθείτε τους αντίπαλους σκαντζόχοιρους εκτοξεύοντάς τους|έξω από τα σύνορα του χάρτη ή κατευθείαν στο νερό. Ή τι θα λέγατε|να κλοτσούσατε πάνω στους "φίλους" σας μερικές νάρκες;|Επίθεση : Χτυπήστε ότι βρίσκεται μπροστά σας.
+04:12=Πάρτε το προσωπικά και πλησιάστε τον αντίπαλό σας|για να απελευθερώσετε την δύναμη αυτής της παρολίγον|θανάσιμης τεχνικής των πολεμικών τεχνών.|Επίθεση : Εκτελέστε την Fire Punch.
+04:13=UNUSED
+04:14=Φοβάστε τα ύψη; Καλύτερα χρησιμοποιήστε ένα αλεξίπτωτο.|Θα ξεδιπλωθεί μόλις πέσετε αρκετά χαμηλά και θα σώσει το|σκαντζόχοιρό σας από το να πάθει ζημιά λόγω της πτώσης.|Επίθεση : Ξεδιπλώστε το αλεξίπτωτο.|Άλμα εις Μήκος: Ρίξτε χειροβομβίδες ή άλλα συναφή όπλα.
+04:15=Καλέστε ένα αεροσκάφος να επιτεθεί στους εχθρούς σας|χρησιμοποιώντας βόμβες αέρος-εδάφους.|Αριστερά/Δεξιά : Καθορίστε την κατεύθυνση της αεροπορικής επίθεσης.|Δείκτης ποντικιού : Επιλέξτε την ζώνη ρίψης.
+04:16=Καλέστε ένα αεροσκάφος να ρίξει αρκετές νάρκες προς τον στόχο.|Αριστερά/Δεξιά : Καθορίστε την κατεύθυνση της αεροπορικής επίθεσης.|Δείκτης ποντικιού : Επιλέξτε την ζώνη ρίψης.
+04:17=Χρειάζεστε καταφύγιο; Χρησιμοποιήστε το καμινέτο για να σκάψετε|μια σήραγγα σε στερεό έδαφος με σκοπό την κάλυψη/απόκρυψη.|Επίθεση : Ξεκινήστε ή σταματήστε το σκάψιμο.
+04:18=Χρειάζεστε επιπρόσθετη προστασία ή επιθυμείτε να διασχίσετε|απροσπέλαστα εδάφη; Τοποθετήστε μερικές δοκούς όπως εσείς|επιθυμείτε.|Αριστερά/Δεξιά : Επιλέξτε την δοκό που θα τοποθετηθεί.|Δείκτης ποντικιού : Τοποθετήστε την δοκό σε έγκυρη θέση.
+04:19=Αν χρησιμοποιηθεί την κατάλληλη στιγμή, η τηλεμεταφορά|μπορεί να είναι ισχυρότερη από σχεδόν όλα τα άλλα όπλα|καθώς σας επιτρέπει να διασώζετε σκαντζόχοιρους από|επικίνδυνες καταστάσεις μέσα σε μερικά δευτερόλεπτα.|Δείκτης ποντικιού : Επιλέξτε την περιοχή του στόχου.
+04:20=Σας επιτρέπει να παίξετε την τρέχουσα σειρά με ένα άλλο σκαντζόχοιρο.|Επίθεση : Ενεργοποιήστε την αλλαγή σειράς παιξίματος των σκαντζόχοιρων.
+04:21=Ρίξτε ένα βαλλιστικό βλήμα που μοιάζει με πύραυλο το οποίο|κατά την πρόσκρουση θα απελευθερώσει πολλαπλές βόμβες.|Επίθεση : Εκτόξευση με πλήρη ισχύ.
+04:22=Δεν είναι αποκλειστικότητα μόνο του Indiana Jones!|Το μαστίγιο είναι ένα χρήσιμο όπλο σε πολλές περιστάσεις.|Ιδιαιτέρως όταν θα θέλατε να σπρώξετε κάποιον σε ένα γκρεμό.|Επίθεση : Χτυπήστε οτιδήποτε βρίσκεται μπροστά σας.
+04:23=Εάν δεν έχετε τίποτα να χάσετε, αυτό μπορεί να είναι πολύ|χρήσιμο. Θυσιάστε τον σκαντζόχοιρό σας, εκτοξεύοντάς|τον σε μια καθορισμένη κατεύθυνση χτυπώντας ότι|βρεθεί στο δρόμο του, σκάζοντας στο τέλος.|Επίθεση : Ξεκινήστε την καταστροφική και θανάσιμη επίθεση.
+04:24=Χρόνια Πολλά! Θέστε σε λειτουργία την τούρτα, αφήστε την να|περπατήσει μέχρι να φτάσει ακριβώς δίπλα από τους αντιπάλους σας|και αφιερώστε τους ένα εκρηκτικό πάρτι. Η τούρτα είναι ικανή να|διασχίσει σχεδόν όλα τα εμπόδια αλλά μπορεί να εκραγεί νωρίτερα|κατ' αυτόν τον τρόπο.|Επίθεση : Ξεκινήστε την τούρτα, η οποία θα εκραγεί μόλις λήξει το|χρονόμετρο ή σταματήστε τη για να εκραγεί στην τρέχουσα θέση.
+04:25=Χρησιμοποιήστε αυτή τη στολή μεταμφίεσης για|να αναγκάσετε τους αντιπάλους σας να πηδήξουν|προς τον σκαντζόχοιρό σας (και να πέσουν σε κάποιο|κενό ή τρύπα).|Επίθεση : Χρησιμοποιήστε τη στολή και προσπαθήστε|να αποπλανήσετε κάποιον άλλο σκαντζόχοιρο.
+04:26=Εκτοξεύστε αυτό το ζουμερό καρπούζι στους εχθρούς σας.|Όταν το χρονόμετρο τερματίσει, θα διαρραγεί σε αρκετά|εκρηκτικά κομμάτια.|1-5: Θέστε το χρονόμετρο.|Επίθεση : Κρατήστε πατημένο για μακρύτερη βολή.
+04:27=Το πυρ της κολάσεως θα λούσει τους αντιπάλους σας χρησιμοποιώντας|αυτό το πύρινο εκρηκτικό. Μην πλησιάσετε πολύ στην έκρηξη καθώς|οι μικρότερες φωτιές ενδέχεται να διαρκέσουν περισσότερο.|Επίθεση : Κρατήστε πατημένο για περισσότερη ισχύ.
+04:28=Μόλις αυτός ο πύραυλος αγγίξει το στερεό έδαφος θα|ξεκινήσει το σκάψιμο και θα εκραγεί μόλις το φιτίλι του|καεί ή αναδυθεί από το έδαφος σε αέρα ξανά.|Επίθεση : Κρατήστε πατημένο για περισσότερη ισχύ.
+04:29=Αυτό το όπλο δεν βγάζει καραμέλες για μικρά παιδιά!|Ο εκτοξευτής χρωμοσφαιρίδιων εκτοξεύει πολλές|μικρές χρωματιστές σφαίρες με εκρηκτική γόμωση.|Επίθεση : Εκτόξευση με πλήρη ισχύ.|Πάνω/Κάτω : Ρύθμιση στοχεύσεως.
+04:30=Καλέστε ένα αεροσκάφος να επιτεθεί με μια πανίσχυρη βόμβα Ναπάλμ.|Με κατάλληλη στόχευση το όπλο αυτό μπορεί να εξαλείψει τεράστια|κομμάτια του τοπίου συμπεριλαμβανομένων και κάποιων άτυχων|σκαντζόχοιρων οι οποίοι θα έχουν την ατυχία να βρεθούν στο διάβα του.|Αριστερά/Δεξιά : Καθορίστε την κατεύθυνση της αεροπορικής επίθεσης.|Δείκτης ποντικιού : Επιλέξτε την ζώνη ρίψης.
+04:31=Το τηλεκατευθυνόμενο είναι το ιδανικό όπλο για να περισυλλέξετε|κιβώτια ή να επιτεθείτε σε απομακρυσμένους σκαντζόχοιρους.|Είτε οδηγήστε το κατευθείαν πάνω στους εχθρούς σας ή ρίξτε|μερικές βόμβες πρώτα.|Επίθεση : Εκτοξεύστε το τηλεκατευθυνόμενο ή ρίξτε βόμβες.|Άλμα εις μήκος : Οι Βαλκυρίες θα σας συνοδέψουν στη μάχη!|Πάνω/Κάτω : Κατευθύνετε το τηλεκατευθυνόμενο.
+04:32=Η μικροβαρύτητα είναι πιο αποτελεσματική από οποιαδήποτε|δίαιτα! Πηδήξτε ψηλότερα και μακρύτερα ή κάντε τους εχθρούς|σας να εκτοξευτούν ακόμα μακρύτερα.|Επίθεση : Ενεργοποίηση μικροβαρύτητας.
+04:33=Μερικές φορές χρειάζεστε αυτή τη λίγη επιπρόσθετη ώθηση|για να προκαλέσετε λίγο παραπάνω ζημιά.|Επίθεση : Ενεργοποίηση επιπρόσθετης ζημιάς.
+04:34=Μια ενεργειακή ασπίδα κατευθείαν από το εργαστήριο του Nikola Tesla!|Επίθεση : Ενεργοποίηση ασπίδας.
+04:35=Μερικές φορές ο χρόνος κυλάει πολύ γρήγορα. Κερδίστε μερικά|επιπρόσθετα δευτερόλεπτα για να τελειώσετε την επίθεσή σας.|Επίθεση : Ενεργοποίηση επιπρόσθετου χρόνου.
+04:36=Ας το παραδεχτούμε, μερικές φορές είστε απλώς τόσο κακός στην στόχευση.|Λάβετε λίγη βοήθεια χρησιμοποιώντας νεωτεριστική τεχνολογία αιχμής.|Επίθεση : Ενεργοποίηση διόπτρας.
+04:37=Μην φοβάστε το φως της αυγής! Θα κρατήσει μονάχα για όσο|διαρκεί η σειρά σας αλλά θα σας επιτρέψει να απορροφήσετε|ως υγεία, την ζημιά που προκαλείτε στους αντιπάλους σας.|Επίθεση : Ενεργοποίηση βαμπιρισμού.
+04:38=Το τυφέκιο του ελεύθερου σκοπευτή μπορεί να γίνει το πιο|καταστρεπτικό όπλο στο οπλοστάσιό σας, ωστόσο είναι πολύ|αναποτελεσματικό σε κοντινές αποστάσεις. Η ζημιά η οποία|προκαλείται αυξάνει με την απόσταση από το στόχο.|Επίθεση : Πυροβολήστε (δις).
+04:39=Πετάξτε σε άλλα μέρη του χάρτη χρησιμοποιώντας τον ιπτάμενο|δίσκο. Αυτό το δύσκολο στο χειρισμό βοήθημα είναι ικανό να|σας μεταφέρει σχεδόν σε κάθε θέση του πεδίου μάχης.|Επίθεση : Ενεργοποίηση ιπτάμενου δίσκου|Πάνω/Αριστερά/Δεξιά : Εφαρμόστε δύναμη προς μια κατεύθυνση.|Άλμα εις μήκος : Ρίξτε χειροβομβίδες ή άλλα συναφή όπλα.
+04:40=Βάλτε φωτιά χρησιμοποιώντας αυτή τη φιάλη|η οποία είναι γεμάτη με εύφλεκτο υγρό.|Επίθεση : Κρατήστε πατημένο για ισχυρότερη βολή.
+04:41=Το πτηνό μπορεί να κουβαλήσει τον σκαντζόχοιρό σας|και να ρίξει αυγά καταπάνω στους εχθρούς σας!|Επίθεση : Ενεργοποιήστε το πτηνό και ρίξτε αυγά.|Πάνω/Αριστερά/Δεξιά : Φτερουγίστε προς μια κατεύθυνση.
+04:42=Αυτή η φορητή σκουληκότρυπα είναι ικανή να μεταφέρει|ακαριαία εσάς, τους εχθρούς σας, ή τον οπλισμό σας|μεταξύ δύο σημείων της πίστας. Χρησιμοποιήστε τη με|σύνεση και θα έχετε τεράστια επιτυχία!|Επίθεση : Εκτοξεύστε μια σκουληκότρυπα.|Εναλλαγή : Εναλλάξτε τα χρώματα της σκουληκότρυπας.
+04:43=Κάντε την πρώτη σας μουσική εμφάνιση μια εκρηκτική επιτυχία!|Ρίξτε ένα πιάνο από τα ουράνια, αλλά προσοχή...|κάποιος πρέπει να το παίζει, και αυτό θα σας στοιχίσει τη ζωή σας!|Δείκτης ποντικιού : Επιλογή στόχου.|F1-F9 : Παίξτε το πιάνο.
+04:44=Αυτό δεν είναι απλώς ένα κομμάτι τυρί, είναι βιολογικός|πόλεμος! Η έκρηξη δεν θα προκαλέσει μεγάλη ζημιά αλλά|σαφώς θα δηλητηριάσει οποιονδήποτε άτυχο σκαντζόχοιρο|βρεθεί στην πορεία του βρωμερού σύννεφου!|1-5 : Θέστε το χρονόμετρο.|Επίθεση : Κρατήστε πατημένο για ισχυρότερη βολή.
+04:45=Όλα τα φροντιστήρια φυσικής που κάνατε, τελικά απέδωσαν καρπούς.|Ρίξτε ένα καταστρεπτικό ημιτονοειδές κύμα στους αντιπάλους σας.|Η δύναμη των σολιτονίων είναι στα χέρια σας! Προσοχή όμως!|Αυτό το όπλο έχει τρομερή κλωτσιά.(Το όπλο αυτό είναι ημιτελές).|Επίθεση : Πυροβολήστε.
+04:46=Καλύψτε τους εχθρούς σας με τσιτσιριστή υγρή φλόγα.|Σίγουρα σπάει τον "πάγο" της αποξένωσης!|Επίθεση : Ενεργοποίηση φλογοβόλου.|Πάνω/Κάτω : Ρύθμιση στοχεύσεως.|Αριστερά/Δεξιά : Ρύθμιση ισχύος εκροής.
+04:47=Διπλάσια διασκέδαση με δύο αγκαθωτές, ύπουλες, κολλώδης νάρκες.|Θέστε μια αλυσιδωτή αντίδραση ή υπερασπιστείτε τον εαυτό σας|(ή και τα δύο!).|Επίθεση : Κρατήστε πατημένο για μακρύτερη βολή (δις).
+04:48=Γιατί πρέπει μόνο οι κατσαρίδες να δέχονται όλη την κακομεταχείριση;|Χτυπώντας ένα σκαντζόχοιρο μπορεί να είναι εξίσου διασκεδαστικό!|Ένα καλό χτύπημα από αυτό το σφυρί θα αφαιρέσει το ένα τρίτο|από την υγεία του σκαντζόχοιρου και θα τον βυθίσει υπογείως.|Επίθεση : Ενεργοποίηση σφυριού.
+04:49=Αναστήστε τους φίλους σας! Προσέξτε όμως ότι μπορεί να αναστήσει|επίσης και τους εχθρούς σας.|Επίθεση : Κρατήστε πατημένο το πλήκτρο επιθέσεως για αργή νεκρανάσταση.|Πάνω : Επιταχύνετε τη νεκρανάσταση.
+
+; Game goal strings
+05:00=Κανόνες Παιχνιδιού
+05:01=Ισχύουν οι ακόλουθοι κανόνες :
+05:02=Φρούρια : Υπερασπιστείτε το φρούριό σας, συντρίψτε τους εχθρούς σας!
+05:03=Μικροβαρύτητα : Προσέξτε πού πατάτε!
+05:04=Ασπίδα: Οι σκαντζόχοιροι είναι (σχεδόν) άτρωτοι.
+05:05=Βαμπιρισμός : Οι σκαντζόχοιροι θα γιατρεύονται από την προκαλούμενη ζημιά.
+05:06=Μοίρα : Οι σκαντζόχοιροι θα πλήττονται εξίσου για την προκαλούμενη ζημιά.
+05:07=Προστασία του Βασιλιά : Μην αφήσετε τον βασιλιά σας να πεθάνει!|Τοποθετήστε το βασιλιά : Διαλέξτε ένα προστατευόμενο σημείο εκκίνησης για το βασιλιά σας.
+05:08=Τοποθέτηση Σκαντζόχοιρων : Τοποθετήστε τους σκαντζόχοιρους πριν ξεκινήσει το παιχνίδι.
+05:09=Πυροβολικό: Οι σκαντζόχοιροι δεν μπορούν να προχωρήσουν για να αλλάξουν θέση.
+05:10=Άφθαρτο Έδαφος : Τα περισσότερα όπλα δεν θα καταστρέψουν το έδαφος.
+05:11=Κοινά Πυρομαχικά : Όλες οι ομάδες του ιδίου χρώματος μοιράζονται τα πυρομαχικά τους.
+05:12=Χρονισμός Ναρκών : Οι νάρκες θα εκρήγνυνται μετά από %1 δευτερόλεπτο/α.
+05:13=Χρονισμός Ναρκών : Οι νάρκες θα εκρήγνυνται ακαριαία.
+05:14=Χρονισμός Ναρκών : Οι νάρκες θα εκρήγνυνται μετά από 0 - 5 δευτερόλεπτα.
+05:15=Τροποποιητής Ζημιάς: Όλα τα όπλα θα προκαλούν %1% ζημιά.
+05:16=Η υγεία όλων των σκαντζόχοιρων επαναφέρεται στην αρχική της τιμή στο τέλος κάθε γύρου.
+05:17=Οι ελεγχόμενοι από τον υπολογιστή σκαντζόχοιροι επανεμφανίζονται όταν πεθάνουν.
+05:18=Αμέτρητες Επιθέσεις.
+05:19=Τα όπλα επαναφέρονται στο τέλος κάθε γύρου.
+05:20=Τα όπλα δεν χρησιμοποιούνται από κοινού από τους σκαντζόχοιρους.
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/en.txt
--- a/share/hedgewars/Data/Locale/en.txt Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/en.txt Mon Jan 17 23:22:52 2011 +0100
@@ -52,6 +52,7 @@
00:49=Resurrector
00:50=Drill Strike
00:51=Mudball
+00:52=No weapon selected
01:00=Let's fight!
01:01=Round draw
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/es.lua
--- a/share/hedgewars/Data/Locale/es.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/es.lua Mon Jan 17 23:22:52 2011 +0100
@@ -52,8 +52,7 @@
["Listen up, maggot!!"] = "¡Atento, escoria!",
-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["MISSION FAILED"] = "MISIÓN FALLIDA", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
- ["MISSION SUCCESSFUL"] = "MISIÓN COMPLETADA", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
- ["MISSION SUCCESS"] = "MISIÓN COMPLETADA", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESSFUL"] = "MISIÓN COMPLETADA", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["NEW fastest lap: "] = "NUEVA vuelta rápida: ",
["NO JUMPING"] = "PROHIBIDO SALTAR",
["Not So Friendly Match"] = "Partido no-tan-amistoso", -- Basketball, Knockball
@@ -62,6 +61,7 @@
["Operation Diver"] = "Buzo",
["Opposing Team: "] = "Equipo enemigo: ",
["Pathetic Hog #%d"] = "Erizo patético #%d",
+-- ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
["Poison"] = "Veneno",
["Random Weapons"] = "Armas aleatorias",
[" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "- Vuelve a tu base con la bandera enemiga para anotar un punto | - El equipo que anote 3 puntos gana | - Sólo se puede anotar si tu propia bandera está en tu base | - Los erizos resucitan cuando mueren",
@@ -87,7 +87,7 @@
["T_T"] = "T_T",
["Unit 3378"] = "Unidad 3378",
["Use your rope to get from start to finish as fast as you can!"] = "¡Usa tu cuerda para llegar a la salida lo más rápido que puedas!",
- ["Victory for the"] = "La victoria es para",
+ ["Victory for the "] = "La victoria es para", -- CTF_Blizzard, Capture_the_Flag
["You have SCORED!!"] = "¡Has anotado!",
["You've failed. Try again."] = "Has fracasado. Inténtalo de nuevo.",
["You've reached the goal!| |Time: "] = "¡Has llegado a la meta!| |Tiempo: ",
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/fr.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/fr.lua Mon Jan 17 23:22:52 2011 +0100
@@ -0,0 +1,94 @@
+locale = {
+-- [":("] = "",
+-- ["!!!"] = "",
+ ["A game of luck"] = "Un jeu de chance",
+ ["Aiming Practice"] = "Entrainement de tir", --Bazooka, Shotgun, SniperRifle
+ ["Bat balls at your enemies and|push them into the sea!"] = "Frappez vos ennemis à la batte|et envoyez-les à la mer !",
+ ["Bat your opponents through the|baskets and out of the map!"] = "Frappez vos ennemis à la batte|, marquez des paniers ou envoyez-les à la mer !",
+ ["Bazooka Training"] = "Entrainement au Bazooka",
+ ["Best laps per team: "] = "Meilleur temps par équipe",
+ ["Bloody Rookies"] = "Nouvelles recrues", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+-- ["Boom!"] = "",
+ ["by mikade"] = "par mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+ ["CAPTURE THE FLAG"] = "Capturez le drapeau !",
+ ["Codename: Teamwork"] = "Nom de code : Travail d'équipe",
+ ["Congratulations!"] = "Félicitations !",
+ ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Félicitations ! Vous avez éliminé toutes les cibles|pendant le temps alloué.", --Bazooka, Shotgun, SniperRifle
+ ["CONTROL"] = "Domination",
+ ["Control pillars to score points."] = "Contrôlez les piliers pour marquer des points",
+ ["CONTROL v0.3"] = "Domination v0.3",
+-- ["CTF_BLIZZARD"] = "",
+ ["CUSTOM BUILD 0.2"] = "Compilation 0.2",
+ ["Cybernetic Empire"] = "Empire cybernétique",
+ ["DAMMIT, ROOKIE!"] = "Et merde, recrue",
+ ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Et merde, recrue ! Dégage de me tête !",
+ ["Dangerous Ducklings"] = "Canetons dangereux",
+ ["Eliminate all enemies"] = "Éliminez tous les ennemis",
+ ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Éliminez toutes les cibles avant d'être à cours de temps.|Vos munitions sont illimitées pour cette mission.", --Bazooka, Shotgun, SniperRifle
+ ["Eliminate Poison before the time runs out"] = "Éliminez tout le Poison avant d'être à cours de temps.",
+ ["Eliminate the Blue Team"] = "Éliminez l'équipe bleue",
+ ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "Éliminez l'unité 3378|- Résistance Futile doit survivre",
+ ["Enjoy the swim..."] = "Profitez du bain ...",
+ ["Fastest lap: "] = "Meilleur tour : ",
+ ["Feeble Resistance"] = "Résistance Futile",
+ ["Flag captured!"] = "Drapeau capturé !",
+ ["Flag respawned!"] = "Drapeau réapparu",
+ ["Flag returned!"] = "Drapeau récupéré",
+ ["Flags will be placed where each team ends their turn."] = "Les Drapeaux seront placès là où chaque équipe terminera son tour.",
+ ["GAME OVER!"] = "Fin du jeu ! ",
+ ["Game Started!"] = "Début du jeu ! ",
+ ["Get on over there and take him out!"] = "Viens par ici et débarrasse-toi de lui ! ",
+-- ["Goal:"] = "",
+-- ["GO! GO! GO!"] = "",
+ ["Good birdy......"] = "Gentil oiseau ...",
+ ["Good luck out there!"] = "Bonne chance pour sortir d'ici",
+-- ["Hedgewars-Basketball"] = "",
+-- ["Hedgewars-Knockball"] = "",
+-- ["Hmmm..."] = "",
+ ["Hooray!"] = "Hourra ! ",
+ ["Hunter"] = "Chasseur", --Bazooka, Shotgun, SniperRifle
+ ["Instructor"] = "Instructeur", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+ ["- Jumping is disabled"] = "Saut désactivé",
+ ["Listen up, maggot!!"] = "Écoutez, asticots",
+-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION FAILED"] = "Mission échouée", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESSFUL"] = "Mission réussie", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["NEW fastest lap: "] = "Nouveau meilleur temps",
+ ["NO JUMPING"] = "PAS DE SAUT",
+ ["Not So Friendly Match"] = "Match pas si amical", -- Basketball, Knockball
+ ["Oh no! Just try again!"] = "Eh non ! Essayez encore ! ", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["Oh no! Time's up! Just try again."] = "Eh non ! Temps écoulé ! Essayez encore ! ", --Bazooka, Shotgun, SniperRifle
+-- ["Operation Diver"] = "",
+ ["Opposing Team: "] = "Équipe opposée",
+ ["Pathetic Hog #%d"] = "Hérisson pathétique #%d",
+ ["points"] = "points", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
+ ["Poison"] = "Poison",
+ ["Random Weapons"] = "Armes aléatoires",
+ [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "Ramenez le drapeau ennemi à votre base pour marquer | -La première équipe à 3 captures gagne | - Vous marquez uniquement si votre drapeau est dans votre base | - Les hérissons vont lâcher le drapeau s'ils sont tués ou noyés | - Les drapeaux lâchés peuvent être ramenés ou recapturés | - Les hérissons réapparaissent quand ils sont tués",
+ ["RULES OF THE GAME [Press ESC to view]"] = "RÈGLES DU JEU | [Appuyez Échap pour voir]",
+-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+ ["See ya!"] = "Bye bye",
+ ["Shotgun Team"] = "Équipe de choc",
+ ["Shotgun Training"] = "Entrainement au fusil",
+ ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s est dehors et l'équipe %d| reçoit une pénalité ! | |Score : ", -- Basketball, Knockball
+ ["%s is out and Team %d|scored a point!| |Score:"] = "%s est dehors et l'équipe %d| reçoit un point ! | |Score : ", -- Basketball, Knockball
+ ["Sniper Training"] = "Entrainement au fusil de sniper",
+-- ["Sniperz"] = "",
+ ["Spooky Tree"] = "Arbre fantomatique",
+ ["Team %d: "] = "Équipe %d : ",
+ ["Team Scores:"] = "Score de l'équipe",
+ ["That was pointless."] = "C'était inutile.",
+ ["The enemy is hiding out on yonder ducky!"] = "L'ennemi se cache là-bas sur le canard !",
+ ["The flag will respawn next round."] = "Le drapeau va réapparaitre au prochain tour",
+ ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Il y a eu un mélange avec votre équipement et maintenant| vous devrez utiliser ce qui vous arrivera dans les mains !",
+ ["Toxic Team"] = "Équipe toxique", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["TrophyRace"] = "",
+-- ["T_T"] = "",
+ ["Unit 3378"] = "Unité 3378",
+ ["Use your rope to get from start to finish as fast as you can!"] = "Utilisez votre Corde Ninja pour aller du début à la fin aussi vite que vous pouvez !",
+ ["Victory for the "] = "Victoire pour ", -- CTF_Blizzard, Capture_the_Flag
+ ["You have SCORED!!"] = "Vous avez marqué !",
+ ["You've failed. Try again."] = "Vous avez échoué. Essayez encore.",
+ ["You've reached the goal!| |Time: "] = "Vous avez atteins le but !| |Temps : ",
+-- ["'Zooka Team"] = "",
+ }
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/fr.txt
--- a/share/hedgewars/Data/Locale/fr.txt Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/fr.txt Mon Jan 17 23:22:52 2011 +0100
@@ -42,6 +42,16 @@
00:39=Soucoupe Volante
00:40=Cocktail Molotov
00:41=Piaf
+00:42=Fusil à portails
+00:43=Attaque du Piano
+00:44=Vieux Limburger
+00:45=Fusil Sinus (bêta)
+00:46=Lance-flammes
+00:47=Mines adhésives
+00:48=Marteau
+00:49=Resurrecteur
+00:50=Attaque perforante
+00:51=Boule de terre
01:00=C'est parti !
01:01=Round ex-aequo
@@ -137,7 +147,7 @@
02:01=%1 est parti visiter l'aquarium
02:01=%1 a trouvé la cité perdue d'Atlantide
02:01=%1 se propose pour le rôle principal de Bioshock 3
-02:01=Ta paggaie pour chiens aurait pû servir, %1
+02:01=Ta pagaie pour chiens aurait pû servir, %1
02:01=%1 aurait dû acheter un jet ski
02:01=%1 n'aime pas les sports aquatiques
02:01=%1 va faire des bulles pour toujours
@@ -178,7 +188,7 @@
02:02=Que la bataille du jour commence !
02:02=Que la bataille de l'heure commence !
02:02=Faites de votre mieux !
-02:02=Detruisez l'ennemi !
+02:02=Détruisez l'ennemi !
02:02=Bonne chance !
02:02=Amusez-vous bien !
02:02=Combattez avec honneur !
@@ -265,7 +275,7 @@
02:08=%1 est une vache !
02:08=%1 attend la mort subite
02:08=%1 n'est pas du genre bagarreur
-02:08=%1 réflechit au sens de la vie
+02:08=%1 réfléchit au sens de la vie
02:08=%1 n'était pas un bon tireur de toutes manières
02:08=%1 ne voulait pas rejoindre l'armée au début
02:08=Arrête de perdre ton temps, %1
@@ -299,7 +309,7 @@
02:09=%1 montre à l'ennemi de quoi il est capable
02:09=%1 ne peut pas être parfait tout le temps
02:09=Ne t'inquiète pas %1, personne p'est narfait
-02:09=%1 a fait cela totallement intentionnellement
+02:09=%1 a fait cela totalement intentionnellement
02:09=Je ne le dirais à personne, %1
02:09=C'est embarrassant !
02:09=Je suis sûr que personne n'a vu cela %1
@@ -397,7 +407,15 @@
04:38= Le fusil à lunettes peut être une de armes les plus dévastatrices|de tout votre arsenal, toutefois il est totalement inefficace|en combat rapproché. Les dommages qu'il cause augmentent suivant|la distance de la cible.|Attaque : Tirez (deux fois)
04:39=Volez vers d'autres secteurs de la carte en utilisant une soucoupe|volante. Ce moyen de transport pas facile à dompter est capable de vous|emporter vers presque tous les lieux du champ de bataille|Attaque : Activer|Haut/Gauche/Droite : appliquez la force dans une direction
04:40=Mettez le feu à un territoire en utilisant cette bouteille remplie|de liquide inflammable.|Attaque : maintenez pour tirer avec plus de force
-04:41=Une arme naturelle qui peut suffire à dégommer même la soucoupe|volante. Le piaf peut transporter votre hérisson et|balancer de soeufs sur vos ennemis !|Attaque : Activez et larguez des oeufs|Haut/Gauche/Droite: voltigez vers une direction.
+04:41=Une arme naturelle qui peut suffire à dégommer même la soucoupe|volante. Le piaf peut transporter votre hérisson et|balancer des œufs sur vos ennemis !|Attaque : Activez et larguez des œufs|Haut/Gauche/Droite: voltigez vers une direction.
+04:42=Ce fusil à portails est capable de vous transporter instantanément,| ainsi que vos ennemis ou des armes entre deux points du terrain. |Utilisez-le intelligemment et votre campagne sera un ... GRAND SUCCÈS !|Attaque : Crée un portail|Modificateur : Change la couleur du portail
+04:43=Faites de vos débuts musicaux un succès explosif !| Lâchez un piano depuis les cieux, mais attention ... quelqu'un doit|jouer dessus, et cela pourrait lui coûter sa vie !|Curseur : Choix de la cible|F1-F9 : Jouer du piano
+04:44=Ce n'est pas juste un fromage, c'est une arme biologique !|Il ne provoquera de gros dommages une fois que le compteur|atteindra zéro mais il empoisonnera tous les malchanceux touchés par l'odeur !|1-5 : Lancez le minuteur de la grenade|Attaque : maintenez pour la lancer avec plus de force
+04:45=Tous ces cours de physique ont finalement payé,|lancez une onde Sinus dévastatrice à vos ennemis.|Attention au recul ! (cette arme est incomplète)|Attaque : Activez
+04:46=Recouvrez vos ennemis de sifflantes flammes liquides.|Hauts les cœurs !|Attaque : Activez|Haut/Bas : Continuez à viser|Droite/Gauche : Changer la puissance de tir
+04:47=Doublez le fun avec deux mines, piquantes, furtives et collantes.|Provoquez une réaction en chaine ou défendez-vous ! (ou les deux)|Attaque : maintenez pour tirer avec plus de force (deux fois)
+04:48=Pourquoi les taupes auraient tous le fun ?|Un bon coup de ce marteau enlèvera un tiers de la santé du hérisson et l'enverra dans le sol|Attaque : Activez
+04:49=Ressuscite vos amis !Mais méfiez-vous, cela ressuscite également vos ennemis.|Attaque : Maintenez attaque pressée pour ressusciter lentement|Haut : Accélérer la résurrection
; Game goal strings
05:00=Modes de jeu
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/hedgewars_el.ts
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/hedgewars_el.ts Mon Jan 17 23:22:52 2011 +0100
@@ -0,0 +1,2284 @@
+
+
+
+
+ AmmoSchemeModel
+
+
+ Νέο
+
+
+
+ FreqSpinBox
+
+
+ Ποτέ
+
+
+
+
+ Κάθε %1 γύρο
+ Κάθε %1 γύρους
+
+
+
+
+ GameCFGWidget
+
+
+ Επεξεργασία όπλων
+
+
+
+ Σφάλμα
+
+
+
+ Ασύμβατος σχεδιασμός όπλων
+
+
+
+ Επεξεργασία σχεδιασμών
+
+
+
+ Όταν αυτή η επιλογη είναι ενεργοποιημένη, επιλέγοντας ένα σχεδιασμό παιχνιδιού θα επιλέγεται αυτομάτως ένα όπλο (και αντιστρόφως)
+
+
+
+ HWChatWidget
+
+
+ %1 *** %2 αφαιρέθηκε από τη "μαύρη" λίστα
+
+
+
+ %1 *** %2 προστέθηκε στη "μαύρη" λίστα
+
+
+
+ %1 *** %2 αφαιρέθηκε από τη λίστα φίλων
+
+
+
+ %1 *** %2 προστέθηκε στη λίστα φίλων
+
+
+
+ HWForm
+
+
+ Νέο
+
+
+
+ Σφάλμα
+
+
+
+ Εντάξει
+
+
+
+ Δεν είναι δυνατόν να ξεκινήσει ο εξυπηρετητής
+
+
+
+ Δεν μπορεί να σωθεί η εγγραφή στο αρχείο %1
+
+
+
+ Παρακαλώ επέλεξε εγγραφή από την παραπάνω λίστα
+
+
+
+ Ομάδα εξ' ορισμού
+
+
+
+ File Types
+ Τύπος Αρχείων
+ Αρχείο Επιδείξεων Hedgewars
+
+
+
+ File Types
+ Τύπος Αρχείων
+ Αρχείο Αποθήκευσης Hedgewars
+
+
+
+ HWGame
+
+
+ el.txt
+
+
+
+ Δεν μπορεί να φορτωθεί το αρχείο επιδείξεων %1
+
+
+
+ HWMapContainer
+
+
+ Χάρτης
+
+
+
+ Θέματα
+
+
+
+ Φίλτρο
+
+
+
+ Όλα
+
+
+
+ Μικρό
+
+
+
+ Μέτριο
+
+
+
+ Μεγάλο
+
+
+
+ Σπηλιά
+
+
+
+ Εξωφρενικό
+
+
+
+ Τύπος
+
+
+
+ Μικρές σήραγγες
+
+
+
+ Μέτριες σήραγγες
+
+
+
+ Μεγάλες σήραγγες
+
+
+
+ Μικρά επιπλέοντα νησιά
+
+
+
+ Μέτρια επιπλέοντα νησιά
+
+
+
+ Μεγάλα επιπλέοντα νησιά
+
+
+
+ HWNetServersModel
+
+
+ Τίτλος
+
+
+
+ IP
+
+
+
+ Θύρα
+
+
+
+ HWNewNet
+
+
+ Δεν βρέθηκε αποδέκτης (host). Παρακαλώ ελέγξτε το όνομα αποδέκτη (hostname) και τις ρυθμίσεις (port settings).
+
+
+
+ Connection refused
+
+
+
+ Το δωμάτιο καταστράφηκε
+
+
+
+ Λόγος αποχώρησης:
+
+
+
+ Σε πέταξαν έξω
+
+
+
+ Κωδικός
+
+
+
+ Your nickname %1 is
+registered on Hedgewars.org
+Please provide your password
+or pick another nickname:
+
+
+
+ %1 *** %2 εισήλθε στο δωμάτιο
+
+
+
+ %1 *** %2 εισήλθε
+
+
+
+ %1 *** %2 εγκατέλειψε (%3)
+
+
+
+ %1 *** %2 εγκατέλειψε
+
+
+
+ Το ψευδώνυμο %1 είναι ήδη
+καταχωρημένο στο Hedgewars.org
+Παρακαλώ εισάγετε τον κωδικό σας
+ή επιλέξτε άλλο ψευδώνυμο από τις
+ρυθμίσεις του παιχνιδιού:
+
+
+
+ KB
+
+
+ Το SDL_ttf επέστρεψε σφάλμα καθώς διερμήνευσε κείμενο. Το πιο πιθανό είναι αυτό να σχετίζεται με το σφάλμα στο freetype2. Προτείνεται να αναβαθμίσετε το freetype lib.
+
+
+
+ PageAdmin
+
+
+ Server message:
+
+
+
+ Set message
+
+
+
+ Καθαρισμός μνήμης λογαριασμών
+
+
+
+ Προσκομιδή δεδομένων
+
+
+
+ Μήνυμα εξηπηρετητή για την τελευταία έκδοση:
+
+
+
+ Μήνυμα εξηπηρετητή για προηγούμενες εκδόσεις:
+
+
+
+ Αριθμός πρωτοκόλλου τελευταίας έκδοσης :
+
+
+
+ Προεπισκόπηση MOTD :
+
+
+
+ Τοποθέτηση δεδομένων
+
+
+
+ PageConnecting
+
+
+ Σύνδεση...
+
+
+
+ PageEditTeam
+
+
+ Γενικά
+
+
+
+ Για προχωρημένους
+
+
+
+ PageGameStats
+
+
+ <p>The best shot award was won by <b>%1</b> with <b>%2</b> pts.</p>
+
+
+
+
+ <p>The best killer is <b>%1</b> with <b>%2</b> kill in a turn.</p>
+ <p>The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</p>
+
+
+
+
+
+ <p>A total of <b>%1</b> hedgehog was killed during this round.</p>
+ <p>A total of <b>%1</b> hedgehogs were killed during this round.</p>
+
+
+
+
+ Λεπτομέρειες
+
+
+
+ Γράφημα υγείας
+
+
+
+ Κατάταξη
+
+
+
+ Το βραβείο καλύτερης βολής κερδίθηκε από τον <b>%1</b> με <b>%2</b> πόντους.
+
+
+
+
+ Ο καλύτερος φονιάς είναι ο <b>%1</b> με <b>%2</b> σκοτωμό.
+ Ο καλύτερος φονιάς είναι ο <b>%1</b> με <b>%2</b> συνεχόμενους σκοτωμούς.
+
+
+
+
+
+ Συνολικώς <b>%1</b> σκατζόχοιρος σκοτώθηκε στη διάρκεια αυτού του γύρου.
+ Συνολικώς <b>%1</b> σκατζόχοιροι σκοτώθηκαν στη διάρκεια αυτού του γύρου.
+
+
+
+
+
+ (%1 σκοτωμός)
+ (%1 σκοτωμοί)
+
+
+
+
+
+ Ο <b>%1</b> θεώρησε ορθό να μακελέψει τους συμπαίχτες του, αφαιρώντας τους <b>%2</b> πόντο.
+ Ο <b>%1</b> θεώρησε ορθό να μακελέψει τους συμπαίχτες του, αφαιρώντας τους <b>%2</b> πόντους.
+
+
+
+
+
+ Ο <b>%1</b> σκότωσε <b>%2</b> συνάδελφό του.
+ Ο <b>%1</b> σκότωσε <b>%2</b> από τους συναδέλφους του.
+
+
+
+
+
+ Ο <b>%1</b> φοβήθηκε και παραχώρησε τη σειρά του <b>%2</b> φορά.
+ Ο <b>%1</b> φοβήθηκε και παραχώρησε τη σειρά του <b>%2</b> φορές.
+
+
+
+
+ PageMain
+
+
+ Τοπικό Παιχνίδι (Παίξιμο παιχνιδιού σε ένα υπολογιστή)
+
+
+
+ Δικτυακό Παιχνίδι (Παίξιμο παιχνιδιού σε δίκτυο)
+
+
+
+ Tips
+ Απλώς επιλέξτε το ίδιο χρώμα με το φίλο σας για να παίξετε μαζί σαν ομάδα. Ο καθένας από σας θα μπορεί ακόμα να ελέγχει τους δικούς του ή τους δικούς της σκατζόχοιρους, αλλά χάνετε ή κερδίζετε μαζί.
+
+
+
+ Tips
+ Μερικά όπλα μπορεί να κάνουν μόνο λίγη ζημιά αλλά μπορεί να είναι πολύ πιο καταστρεπτικά στην κατάλληλη περίσταση. Δοκιμάστε να χρησιμοποιήσετε το Desert Eagle για να ρίξετε πολλαπλούς σκατζόχοιρους στο νερό.
+
+
+
+ Tips
+ Εαν δεν ξέρετε τι να κάνετε και δεν θέλετε να σπαταλήσετε πυρομαχικά, "πηδήξτε" ένα γύρο. Αλλά μην αφήσετε πολύ ώρα να περάσει διότι θα επέλθει Ξαφνικός Θάνατος!
+
+
+
+ Tips
+ Εαν θα θέλατε να αποτρέψετε τρίτους από το να χρησιμοποιούν το ψευδώνυμό σας στον επίσημο εξυπηρετητή, φτιάξτε ένα λογαριασμό στην ιστοσελίδα : http://www.hedgewars.org/.
+
+
+
+ Tips
+ Βαριέστε το παραδοσιακό παίξιμο; Δοκιμάστε μια από τις αποστολές! Θα σας προσφέρουν ένα διαφορετικό τρόπο παιχνιδιού, αναλόγως την αποστολή.
+
+
+
+ Tips
+ Εξ'ορισμού το παιχνίδι πάντα θα καταγράφει την πιο πρόσφατη παρτίδα σαν επίδειξη. Επιλέξτε "Τοπικό Παιχνίδι" και κατόπιν επιλέξτε "Επιδείξεις" στην κάτω δεξιά γωνία για να τις αναπαράγετε ή να τις διαχειριστείτε.
+
+
+
+ Tips
+ Το Hedgewars είναι λογισμικό Ανοικτού Κώδικα (Open Source) και Ελεύθερο Λογισμικό (Free Software) το οποίο δημιουργούμε στον ελεύθερο χρόνο μας. Άν έχετε προβλήματα ρωτήστε στο forum αλλά παρακαλώ μην περιμένετε υποστήριξη 24/7!
+
+
+
+ Tips
+ Το Hedgewars είναι λογισμικό Ανοικτού Κώδικα (Open Source) και Ελεύθερο Λογισμικό (Free Software) το οποίο δημιουργούμε στον ελεύθερο χρόνο μας. Άν σας αρέσει βοηθήστε μας με μια μικρή δωρεά ή συνεισφέρετε την δική σας δουλειά!
+
+
+
+ Tips
+ Το Hedgewars είναι λογισμικό Ανοικτού Κώδικα (Open Source) και Ελεύθερο Λογισμικό (Free Software) το οποίο δημιουργούμε στον ελεύθερο χρόνο μας. Μοιραστείτε το με την οικογένειά σας και τους φίλους σας όπως εσείς επιθυμείτε!
+
+
+
+ Tips
+ Συχνά-πυκνά θα υπάρχουν επίσημα πρωταθλήματα. Τα επικείμενα γεγονότα θα ανακοινώνονται στην ιστοσελίδα : http://www.hedgewars.org/ μερικές ημέρες νωρίτερα.
+
+
+
+ Tips
+ Το Hedgewars είναι διαθέσιμο σε πολλές γλώσσες. Εάν η μετάφραση για τη γλώσσα σας μοιάζει απαρχαιωμένη ή λείπει, μην διστάσετε να επικοινωνίσετε μαζί μας!
+
+
+
+ Tips
+ Το Hedgewars μπορεί να τρέξει σε μια μεγάλη ποικιλία λειτουργικών συστημάτων εκ των οποίων συμπεριλαμβάνονται τα Microsoft Windows, Mac OS X και το GNU/Linux.
+
+
+
+ Tips
+ Μην ξεχνάτε ότι έχετε τη δυνατότητα να "στήσετε" τα δικά σας σενάρια παιχνιδιού σε τοπικό και δικτυακό/διαδικτυακό παιχνίδι. Δεν είστε περιορισμένοι στην επιλογή "Απλό Παιχνίδι".
+
+
+
+ Tips
+ Ενόσω παίζετε πρέπει να κάνετε τακτικά διαλείμματα, τουλάχιστον κάθε μία ώρα.
+
+
+
+ Tips
+ Εαν η κάρτα γραφικών σας δεν μπορεί να παρέχει επιτάχυνση υλικού για το OpenGL (hardware accelerated OpenGL) προσπαθήστε να ενεργοποιήσετε την επιλογή χαμηλής ποιότητας έτσι ώστε να βελτιωθεί η απόδοση του παιχνιδιού.
+
+
+
+ Tips
+ Είμαστε ανοικτοί σε συμβουλές και εποικοδομητικό διάλογο. Εαν δεν σας αρέσει κάτι ή έχετε μια τρομερή ιδέα, τότε ενημερώστε μας!
+
+
+
+ Tips
+ Ειδικώς όταν παίζετε στο διαδίκτυο, να είστε ευγενικοί και να θυμάστε πάντα οτι μπορεί να παίζουν ανήλικοι, είτε μαζί σας ή εναντίον σας!
+
+
+
+ Tips
+ Ειδικοί τρόποι παιχνιδιού όπως το "Βαμπιρισμός" ή το "Μοίρα" σας επιτρέπουν να αναπτύξετε εντελώς νέες τακτικές. Δοκιμάστε τους σε ένα προσαρμόσιμο παιχνίδι!
+
+
+
+ Tips
+ Η έκδοση Hedgewars για Windows υποστηρίζει Xfire. Σιγουρευτείτε οτι προσθέσατε το Hedgewars στη λίστα παιχνιδιών του, ώστε οι φίλοι σας να μπορούν να σας δουν όταν εσείς παίζετε.
+
+
+
+ Tips
+ Δεν πρέπει ποτέ να εγκαταστήσετε το Hedgewars σε υπολογιστές που δεν σας ανήκουν (σχολείο, πανεπιστήμιο, εργασία, κ.λπ.). Αντ 'αυτού, ζητήστε το από τον υπεύθυνο!
+
+
+
+ Tips
+ Το Hedgewars είναι ιδανικό για σύντομα παιχνίδια κατά τη διάρκεια του διαλείμματος. Απλά βεβαιωθείτε ότι δεν προσθέσατε πολλούς σκαντζόχοιρους ή χρησιμοποιείτε ένα τεράστιο χάρτη. Μείωση του χρόνου και της υγείας μπορεί να βοηθήσει επίσης.
+
+
+
+ Tips
+ Κανένας σκατζόχοιρος δεν βλάφτηκε στην δημιουργία αυτού του παιχνιδιού.
+
+
+
+ Tips
+ Το Hedgewars είναι λογισμικό Ανοικτού Κώδικα (Open Source) και Ελεύθερο Λογισμικό (Free Software) το οποίο δημιουργούμε στον ελεύθερο χρόνο μας. Εαν κάποιος σας πούλησε το παιχνίδι, πρέπει να διεκδικήσετε αποζημίωση!
+
+
+
+ Tips
+ Συνδέστε ένα ή περισσότερα gamepad πριν από την έναρξη του παιχνιδιού έτσι ώστε να είναι σε θέση να αναθέτει τους χειρισμούς του στις ομάδες σας.
+
+
+
+ Tips
+ Δημιουργήστε έναν λογαριασμό στο %1 για να αποτρέψετε τους άλλους από το να χρησιμοποιούν το ψευδώνυμό σας ενόσω παίζετε στον επίσημο εξυπηρετητή.
+
+
+
+ Tips
+ Εαν η κάρτα γραφικών σας δεν μπορεί να παρέχει επιτάχυνση υλικού για το OpenGL (hardware accelerated OpenGL) προσπαθήστε να αναβαθμίσετε τους αντίστοιχους οδηγούς υλικού.
+
+
+
+ Tips
+ Υπάρχουν τρία διαφορετικά άλματα διαθέσιμα. Άλμα εις μήκος, άλμα εις ύψος [με ένα πάτημα],πολύ υψηλό / οπίσθιο άλμα [με δύο πατήματα].
+
+
+
+ Tips
+ Φοβάστε μήπως πέσετε στο γκρεμό; Κρατήστε πατημένο το πλήκτρο ακρίβειας [Left Shift] και έπειτα αριστερά ή δεξιά χωρίς να κινήστε στην πραγματικότητα.
+
+
+
+ Tips
+ Ορισμένα όπλα απαιτούν ειδικές στρατηγικές ή απλώς πολύ εκπαίδευση, γι 'αυτό μην εγκαταλείπετε ένα συγκεκριμένο εργαλείο, εάν αστοχήσετε μια φορά σε έναν εχθρό.
+
+
+
+ Tips
+ Τα περισσότερα όπλα δεν λειτουργούν μόλις αγγίζουν το νερό. Η Αυτοκαθοδηγούμενη Μέλισσα καθώς και η Τούρτα αποτελούν εξαιρέσεις σε αυτό.
+
+
+
+ Tips
+ Η Χαλασμένη Φέτα προκαλεί μόνο μια μικρή έκρηξη. Ωστόσο, το δύσοσμο σύννεφο το οποίο επιρρεάζεται από τον άνεμο μπορεί να δηλητηριάσει πολλούς σκατζόχοιρους με τη μία.
+
+
+
+ Tips
+ Το Πιάνο είναι η πιο επιζήμια αεροπορική επίθεση. Θα χάσετε το σκαντζόχοιρο ο οποίος την εκτελεί, έτσι υπάρχει ένα τεράστιο μειονέκτημα επίσης.
+
+
+
+ Tips
+ Η Αυτοκαθοδηγούμενη Μέλισσα μπορεί να είναι δύσκολη στη χρήση. Η ακτίνα καμπυλότητάς της εξαρτάται από την ταχύτητά της, επομένως προσπαθήστε να μην χρησιμοποιείτε την πλήρη ισχύ.
+
+
+
+ Tips
+ Οι Αυτοκόλλητες Νάρκες είναι ένα τέλειο εργαλείο για να δημιουργηθούν μικρές αλυσιδωτές αντιδράσεις που βάζουν τους αντίπαλους σκαντζόχοιρους σε έντονες καταστάσεις ... ή στο νερό.
+
+
+
+ Tips
+ Το Σφυρί είναι πιο αποτελεσματικό όταν χρησιμοποιείται σε γέφυρες ή δοκούς. Οι σκατζόχοιροι απλώς θα "φυτευθούν" στο έδαφος.
+
+
+
+ Tips
+ Εάν είστε κολλημένοι πίσω από έναν εχθρικό σκαντζόχοιρο, χρησιμοποιήστε το Σφυρί για να ελευθερώσετε τον εαυτό σας χωρίς να πάθετε ζημιές από έκρηξη.
+
+
+
+ Tips
+ Η μέγιστη απόσταση που διανύει η Τούρτα εξαρτάται από το έδαφος το οποίο πρέπει να διαβεί. Χρησιμοποιήστε το κουμπί της επίθεσης για προκαλέσετε την έκρηξη νωρίτερα.
+
+
+
+ Tips
+ Το φλογοβόλο είναι όπλο μεν, αλλά μπορεί να χρησιμοποιηθεί εξίσου καλά για σκάψιμο σήραγγας.
+
+
+
+ Tips
+ Χρησιμοποιήστε την Καυστική Χειροβομβίδα για να εμποδίσετε προσωρινώς τους σκατζόχοιρους από το να διασχίσουν έδαφος, όπως σήραγγες ή εξέδρες.
+
+
+
+ Tips
+ Θέλετε να μάθετε ποιός είναι πίσω από το παιχνίδι; Πατήστε το λογότυπο Hedgewars στο κυρίως μενου για να δείτε τα credits.
+
+
+
+ Tips
+ Σας αρέσει το Hedgewars; Γίνετε οπαδός στο %1 ή ακολουθήστε μας στο %2!
+
+
+
+ Tips
+ Δημιουργήστε ελεύθερα τους δικούς σας τύμβους, τα καπέλα σας, σημαίες ή ακόμα χάρτες και θέματα! Σημειώστε όμως ότι θα πρέπει να τα μοιραστείτε κάπου για να τα χρησιμοποιήσετε σε διαδικτυακό παιχνίδι.
+
+
+
+ Tips
+ Σας αρέσει πραγματικά να φοράτε ένα συγκεκριμένο καπέλο; Κάντε μια δωρεά σε μας και λάβετε ένα αποκλειστικό καπέλο της επιλογής σας!
+
+
+
+ Tips
+ Αναβαθμίστε τους οδηγούς της κάρτας γραφικών σας για να αποφύγετε τυχόν προβλήματα παίζοντας το παιχνίδι.
+
+
+
+ Tips
+ Μπορείτε να βρείτε τα αρχεία ρυθμίσεων του Hedgewars στο "My Documents\Hedgewars". Δημιουργήστε αντίγραφα ασφαλείας ή πάρτε τα αρχεία μαζί σας, αλλά μην τα επεξεργαστείτε χειροκίνητα.
+
+
+
+ Tips
+ Μπορείτε να αντιστοιχίσετε τα αντίστοιχα αρχεία του Hedgewars (σωσμένα παιχνίδια και εγγραφές επίδειξης) με το παιχνίδι, έτσι ώστε να τα τρέχετε απευθείας από τον αγαπημένο σας περιηγητή αρχείων ή διαδικτύου.
+
+
+
+ Tips
+ Θέλετε να κάνετε οικονομία στα σχοινιά; Αφήστε το σχοινί ενώσο βρίσκεστε στον αέρα και στη συνέχεια πυροβολήστε ξανά. Όσο δεν αγγίζετε το έδαφος θα επαναχρησιμοποιείτε το σχοινί σας χωρίς σπατάλη πυρομαχικών!
+
+
+
+ Tips
+ Μπορείτε να βρείτε τα αρχεία ρυθμίσεων του Hedgewars στο "Library/Application Support/Hedgewars" στον προσωπικό σας φάκελο. Δημιουργήστε αντίγραφα ασφαλείας ή πάρτε τα αρχεία μαζί σας, αλλά μην τα επεξεργαστείτε χειροκίνητα.
+
+
+
+ Tips
+ Μπορείτε να βρείτε τα αρχεία ρυθμίσεων του Hedgewars στο ".hedgewars" στον προσωπικό σας φάκελο. Δημιουργήστε αντίγραφα ασφαλείας ή πάρτε τα αρχεία μαζί σας, αλλά μην τα επεξεργαστείτε χειροκίνητα.
+
+
+
+ PageMultiplayer
+
+
+ Εκκίνηση
+
+
+
+ PageNet
+
+
+ Σφάλμα
+
+
+
+ Παρακαλώ επιλέξτε εξυπηρετητή από την παρακάτω λίστα
+
+
+
+ PageNetGame
+
+
+ Έλεγχος
+
+
+
+ PageNetType
+
+
+ Παιχνίδι σε δίκτυο (LAN)
+
+
+
+ Επίσημος εξυπηρετητής
+
+
+
+ PageOptions
+
+
+ Νέα ομάδα
+
+
+
+ Επεξεργασία ομάδας
+
+
+
+ Διαγραφή ομάδας
+
+
+
+ Νέος σχεδιασμός όπλων
+
+
+
+ Επεξεργασία σχεδιασμού όπλων
+
+
+
+ Διαγραφή σχεδιασμού όπλων
+
+
+
+ Δεν μπορείτε να επεξεργαστείτε τις ομάδες από την επιλογή ομάδων. Πηγαίνετε πίσω στην κύρια σελίδα για να προσθέσετε, να επεξεργαστείτε ή να διαγράψετε ομάδες.
+
+
+
+ PagePlayDemo
+
+
+ Σφάλμα
+
+
+
+ Εντάξει
+
+
+
+ Μετονομασία διαλόγου
+
+
+
+ Εισάγετε το όνομα του νέου αρχείου :
+
+
+
+ Δεν μπορεί να γίνει μετονομασία σε
+
+
+
+ Δεν μπορεί να διαγραφεί το αρχείο
+
+
+
+ Παρακαλώ επιλέξτε εγγραφή από την λίστα
+
+
+
+ PageRoomsList
+
+
+ Δημιουργία
+
+
+
+ Σύνδεση
+
+
+
+ Ανανέωση
+
+
+
+ Σφάλμα
+
+
+
+ Εντάξει
+
+
+
+ Χαρακτηριστικά διαχειριστή
+
+
+
+ Όνομα δωματίου :
+
+
+
+ Αυτό το παιχνίδι είναι σε αναμονή.
+Μπορείτε να συνδεθείτε και να παίξετε μόλις το παιχνίδι ξεκινήσει.
+
+
+
+ Αυτό το παιχνίδι είναι σε εξέλιξη.
+Μπορείτε να συνδεθείτε και να παρακολουθείτε την εξέλιξη αλλά θα πρέπει να περιμένετε να τελειώσει το παιχνίδι για να ξεκινήσετε να παίζετε.
+
+
+
+ %1 είναι ο οικοδεσπότης. Μπορεί να προσαρμόζει τις ρυθμίσεις και να ξεκινά το παιχνίδι.
+
+
+
+ Τυχαίος χάρτης
+
+
+
+ Τα παιχνίδια μπορούν να παίζονται σε προκατασκευασμένους ή τυχαιοποιημένους χάρτες.
+
+
+
+ Ο σχεδιασμός του παιχνιδιού καθορίζει τις γενικές επιλογές και τις προτιμήσεις όπως τον Χρόνο του Γύρου, τον Ξαφνικό Θάνατο ή τον Βαμπιρισμό.
+
+
+
+ Ο Σχεδιασμός των Όπλων καθορίζει τα διαθέσιμα όπλα και το ποσό των πυρομαχικών.
+
+
+
+
+ Υπάρχει %1 χρήστης συνδεδεμένος σε αυτό το δωμάτιο.
+ Υπάρχουν %1 χρήστες συνδεδεμένοι σε αυτό το δωμάτιο.
+
+
+
+
+
+ %1 ομάδα συμμετέχει σε αυτό το δωμάτιο.
+ %1 ομάδες συμμετέχουν σε αυτό το δωμάτιο.
+
+
+
+
+ Εισάγετε το όνομα του δωματίου
+
+
+
+ Παρακαλώ επιλέξτε δωμάτιο από τη λίστα
+
+
+
+ Τυχαίος Λαβύρινθος
+
+
+
+ Κατάσταση :
+
+
+
+ Κανόνες :
+
+
+
+ Όπλα :
+
+
+
+ Αναζήτηση :
+
+
+
+ Καθαρισμός
+
+
+
+ Προσοχή
+
+
+
+ Το παιχνίδι στο οποίο προσπαθείτε να συνδεθείτε έχει ήδη ξεκινήσει.
+Θέλετε ακόμα να συνδεθείτε με το δωμάτιο;
+
+
+
+ PageScheme
+
+
+ Υπερασπιστείτε το φρούριό σας και καταστρέψτε τους αντιπάλους σας, μέγιστο επιτρεπόμενο δυο χρώματα ομάδων!
+
+
+
+ Οι ομάδες θα ξεκινούν σε αντίθετες μεριές της πίστας, μέγιστο επιτρεπόμενο δυο χρώματα ομάδων!
+
+
+
+ Το έδαφος δεν μπορεί να καταστραφεί!
+
+
+
+ Προσθήκη ενός άφθαρτου συνόρου γύρω από την πίστα
+
+
+
+ Μικροβαρύτητα
+
+
+
+ Υποβοηθούμενη στόχευση με διόπτρα laser
+
+
+
+ Όλοιοι σκατζόχοιροι έχουν ατομικό πεδίο δυνάμεων
+
+
+
+ Enable random mines
+
+
+
+ Κερδίστε το 80% της ζημιάς που προκαλείτε σε υγεία
+
+
+
+ Μοιραστείτε τον πόνο του αντιπάλου σας, μοιραστείτε τη ζημιά του
+
+
+
+ Οι σκατζόχοιροί σας είναι αδύνατον να κινηθούν, δοκιμάστε τις ικανότητες του πυροβολικού σας
+
+
+
+ Τυχαίο
+
+
+
+ Δευτερόλεπτα
+
+
+
+ Νέο
+
+
+
+ Διαγραφή
+
+
+
+ Η σειρά παιξίματος είναι τυχαία αντί για την σειρά του δωματίου.
+
+
+
+ Παίξτε με ένα βασιλιά. Εαν πεθάνει, η ομάδα σας χάνει.
+
+
+
+ Τοποθετήστε εναλλάξ με τους αντιπάλους σας τους σκατζόχοιρούς σας στην πίστα προτού ξεκινήσει το παιχνίδι.
+
+
+
+ Τα πυρομαχικά είναι κοινά ανάμεσα σε όλες τις ομάδες που μοιράζονται ένα χρώμα.
+
+
+
+ Απενεργοποίηση δοκών όταν δημιουργούνται τυχαίοι χάρτες.
+
+
+
+ Απενεργοποίηση εδαφικών αντικειμένων όταν δημιουργούνται τυχαίοι χάρτες.
+
+
+
+ Οι σκατζόχοιροι που ελέγχονται από τον υπολογιστή "ξαναφυτρώνουν" όταν πεθάνουν.
+
+
+
+ Όλοι (οι ζωντανοί) σκατζόχοιροι αποκαθίστανται πλήρως στο τέλος κάθε γύρου
+
+
+
+ Η επίθεση δεν εξαντλεί τη σειρά σας.
+
+
+
+ Όλα τα όπλα επανέρχονται στις αρχικές τιμές σε κάθε γύρο.
+
+
+
+ Κάθε σκατζόχοιρος έχει τα δικά του πυρομαχικά. Δεν τα μοιράζεται με την ομάδα.
+
+
+
+ PageSelectWeapon
+
+
+ Εξ'ορισμού
+
+
+
+ Διαγραφή
+
+
+
+ PageSinglePlayer
+
+
+ Απλό Παιχνίδι (ένα γρήγορο παιχνίδι εναντίον του υπολογιστή, οι ρυθμίσεις είναι προεπιλεγμένεs)
+
+
+
+ Πολλοί Παίχτες (ένα παιχνίδι εναντίον των φίλων σας ή του υπολογιστή)
+
+
+
+ Εξάσκηση (Εξασκήστε τις δεξιότητές σας σε ένα εύρος εκπαιδευτικών αποστολών). ΣΕ ΕΞΕΛΙΞΗ
+
+
+
+ Επιδείξεις (Παρακολουθήστε καταγεγραμμένες επιδείξεις)
+
+
+
+ Φόρτωση Σωσμένου Παιχνιδιού (Φορτώστε ένα σωσμένο παιχνίδι)
+
+
+
+ Εκστρατεία ΣΕ ΕΞΕΛΙΞΗ
+
+
+
+ QAction
+
+
+ Απόλυση
+
+
+
+ Πληροφορίες
+
+
+
+ Έναρξη
+
+
+
+ Περιορισμός συνδέσεων
+
+
+
+ Περιορισμός προσθήκης ομάδων
+
+
+
+ Απαγόρευση
+
+
+
+ Ακολουθώ
+
+
+
+ Αγνοώ
+
+
+
+ Προσθήκη φίλου
+
+
+
+ Κατάργηση αγνόησης
+
+
+
+ Αφαίρεση φίλου
+
+
+
+ QCheckBox
+
+
+ Έλεγχος για ενημερώσεις κατά την εκκίνηση
+
+
+
+ Πλήρης οθόνη
+
+
+
+ Διεπαφή σε πλήρη οθόνη
+
+
+
+ Ενεργοποίηση ήχου
+
+
+
+ Ενεργοποίηση μουσικής
+
+
+
+ Προβολή FPS
+
+
+
+ Εναλλακτική προβολή ζημιάς
+
+
+
+ Προσάρτηση ημερομηνίας και ώρας στην εγγραφή του ονόματος αρχείου
+
+
+
+ Reduced quality
+
+
+
+ Προβολή συμβουλών στον κατάλογο των πυρομαχικών
+
+
+
+ Ενεργοποίηση ήχων διεπαφής
+
+
+
+ Ενεργοποίηση μουσικής διεπαφής
+
+
+
+ Ενεργοποίηση εφε διεπαφής
+
+
+
+ QComboBox
+
+
+ Δημιουργημένος χάρτης...
+
+
+
+ Άνθρωπος
+
+
+
+ Επίπεδο
+
+
+
+ (Εξ'ορισμού συστήματος)
+
+
+
+ Αποστολή
+
+
+
+ Δημιουργημένος λαβύρινθος...
+
+
+
+ Κοινότητα
+
+
+
+ Οποιοσδήποτε
+
+
+
+ Σε αναμονή
+
+
+
+ Σε εξέλιξη
+
+
+
+ Default
+
+
+
+ QGroupBox
+
+
+ Μέλη Ομάδας
+
+
+
+ Φρούριο
+
+
+
+ Δεσμεύσεις κουμπιών
+
+
+
+ Ομάδες
+
+
+
+ Όπλα
+
+
+
+ Επιλογές Ήχου/Γραφικών
+
+
+
+ Δικτυακό παιχνίδι
+
+
+
+ Ομάδες που παίζουν
+
+
+
+ Τροποποιητές παιχνιδιού
+
+
+
+ Βασικές ρυθμίσεις
+
+
+
+ Ρυθμίσεις ομάδας
+
+
+
+ Διάφορα
+
+
+
+ QLabel
+
+
+ Φυτίλι Νάρκης
+
+
+
+ Νάρκες
+
+
+
+ Έκδοση
+
+
+
+ Το πρόγραμμα αυτό διανέμεται κάτω από την GNU General Public License
+
+
+
+ Προγραμματιστές :
+
+
+
+ Γραφικά:
+
+
+
+ Ήχοι:
+
+
+
+ Μεταγλωττίσεις:
+
+
+
+ Ειδικές ευχαριστίες:
+
+
+
+ Όπλα
+
+
+
+ Αποδέκτης (host):
+
+
+
+ Θύρα :
+
+
+
+ Ψευδώνυμο
+
+
+
+ Ανάλυση
+
+
+
+ Όριο FPS
+
+
+
+ Όνομα εξυπηρετητή :
+
+
+
+ Θύρα εξυπηρετητή :
+
+
+
+ Αρχική ένταση ήχου
+
+
+
+ Τροποποιητής ζημιάς
+
+
+
+ Χρόνος Γύρου
+
+
+
+ Αρχική Υγεία
+
+
+
+ Χρόνος μέχρι τον Ξαφνικό Θάνατο
+
+
+
+ Όνομα Σχεδιασμού :
+
+
+
+ Ρίψεις κιβωτίων
+
+
+
+ Σχεδιασμός Παιχνιδιού
+
+
+
+ % Τζούφιες Νάρκες
+
+
+
+ Όνομα
+
+
+
+ Τύπος
+
+
+
+ Τύμβος
+
+
+
+ Σημαία
+
+
+
+ Φωνή
+
+
+
+ Γλώσσα
+
+
+
+ Επανεκκινήστε το παιχνίδι για εφαρμογή των αλλαγών
+
+
+
+ Εκρηκτικά
+
+
+
+ Συμβουλή :
+
+
+
+ Αυτή η διανομή είναι «έργο σε εξέλιξη» και μπορεί να μην είναι συμβατή με άλλες εκδόσεις του παιχνιδιού. Ορισμένες λειτουργίες μπορεί να μη δουλεύουν ή να είναι ελλιπείς. Χρησιμοποιήστε την με δική σας ευθύνη!
+
+
+
+ Ποιότητα
+
+
+
+ % Κιβώτια Υγείας
+
+
+
+ Υγεία στα κιβώτια
+
+
+
+ Άνοδος στάθμης νερού στον Ξαφνικό Θάνατο
+
+
+
+ Μείωση Υγείας στον Ξαφνικό Θάνατο
+
+
+
+ Σύζευξη σχεδιασμών και όπλων
+
+
+
+ QLineEdit
+
+
+ Ανώνυμο
+
+
+
+ QMainWindow
+
+
+ Hedgewars %1
+
+
+
+ QMessageBox
+
+
+ Δίκτυο
+
+
+
+ Η σύνδεση με τον εξυπηρετητή διακόπηκε
+
+
+
+ Σφάλμα
+
+
+
+ Αποτυχία ανοίγματος φακέλου δεδομένων :
+ %1
+Παρακαλώ ελέγξτε την εγκατάστασή σας
+
+
+
+ Όπλα
+
+
+
+ Can not edit default weapon set
+
+
+
+ Δεν μπορεί να διαγραφεί η βασική σειρά όπλων
+
+
+
+ Σίγουρα να διαγραφεί αυτή η σειρά όπλων ;
+
+
+
+ Δεν μπορεί να αντικατασταθεί η βασική σειρά όπλων '%1'!
+
+
+
+ Όλες οι αντιστοιχίσεις αρχείων έχουν τεθεί.
+
+
+
+ Η αντιστοίχιση του αρχείου απέτυχε.
+
+
+
+ QObject
+
+
+ Σφάλμα
+
+
+
+ Δεν μπορεί να δημιουργηθεί ο κατάλογος %1
+
+
+
+ Εντάξει
+
+
+
+ Ψευδώνυμο
+
+
+
+ Παρακαλώ εισάγετε το ψευδώνυμό σας
+
+
+
+ QPushButton
+
+
+ Εξ'ορισμού
+
+
+
+ Εντάξει
+
+
+
+ Άκυρο
+
+
+
+ Εκκίνηση εξυπηρετητή
+
+
+
+ Σύνδεση
+
+
+
+ Αναβάθμιση
+
+
+
+ Καθορισμός
+
+
+
+ Εκκίνηση
+
+
+
+ Ξεκίνα!
+
+
+
+ Αναπαραγωγή επίδειξης
+
+
+
+ Μετονομασία
+
+
+
+ Διαγραφή
+
+
+
+ Φόρτωση
+
+
+
+ Ρύθμιση
+
+
+
+ Έτοιμο
+
+
+
+ Τυχαία Ομάδα
+
+
+
+ Αντιστοίχηση επεκτάσεων αρχείων
+
+
+
+ QTableWidget
+
+
+ Όνομα Δωματίου
+
+
+
+ C
+
+
+
+ T
+
+
+
+ Ιδιοκτήτης
+
+
+
+ Χάρτης
+
+
+
+ Κανόνες
+
+
+
+ Όπλα
+
+
+
+ SelWeaponWidget
+
+
+ Ρυθμίσεις Όπλων
+
+
+
+ Πιθανότητες
+
+
+
+ Πυρομαχικά στα κιβώτια
+
+
+
+ Καθυστερήσεις
+
+
+
+ TCPBase
+
+
+ Σφάλμα
+
+
+
+ Δεν είναι δυνατόν να ξεκινήσει ο εξυπηρετητής : %1.
+
+
+
+ Δεν είναι δυνατόν να τρέξει η μηχανή : %1 (
+
+
+
+ ToggleButtonWidget
+
+
+ Βαμπιρισμός
+
+
+
+ Μοίρα
+
+
+
+ Πυροβολικό
+
+
+
+ Λειτουργία Φρούριου
+
+
+
+ Διαίρεση Ομάδων
+
+
+
+ Στερεό Έδαφος
+
+
+
+ Προσθήκη Συνόρου
+
+
+
+ Μικροβαρύτητα
+
+
+
+ Διόπτρα Laser
+
+
+
+ Άτρωτος
+
+
+
+ Add Mines
+
+
+
+ Τυχαία Σειρά
+
+
+
+ Βασιλέας
+
+
+
+ Τοποθέτηση σκατζόχοιρων
+
+
+
+ Η συμμορία μοιράζεται τα πυρομαχικά
+
+
+
+ Απενεργοποίηση δοκών
+
+
+
+ Απενεργοποίηση Αντικειμένων Εδάφους
+
+
+
+ Λειτουργία Επιβίωσης για τον υπολογιστή
+
+
+
+ Επαναφορά Υγείας
+
+
+
+ Απεριόριστες Επιθέσεις
+
+
+
+ Επαναφορά Όπλων
+
+
+
+ Πυρομαχικά ανά σκατζόχοιρο
+
+
+
+ binds
+
+
+ πάνω
+
+
+
+ αριστερά
+
+
+
+ δεξιά
+
+
+
+ κάτω
+
+
+
+ επίθεση
+
+
+
+ ακριβής στόχευση
+
+
+
+ τοποθέτηση
+
+
+
+ αναλλαγή
+
+
+
+ εύρεση σκατζόχοιρου
+
+
+
+ κατάλογος πυρομαχικών
+
+
+
+ θέση 1
+
+
+
+ θέση 2
+
+
+
+ θέση 3
+
+
+
+ θέση 4
+
+
+
+ θέση 5
+
+
+
+ θέση 6
+
+
+
+ θέση 7
+
+
+
+ θέση 8
+
+
+
+ θέση 9
+
+
+
+ χρονόμετρο 1 δευ
+
+
+
+ χρονόμετρο 2 δευ
+
+
+
+ χρονόμετρο 3 δευ
+
+
+
+ χρονόμετρο 4 δευ
+
+
+
+ χρονόμετρο 5 δευ
+
+
+
+ συνομιλία
+
+
+
+ ιστορικό συνομιλίας
+
+
+
+ παύση
+
+
+
+ επιβεβαίωση
+
+
+
+ μείωση φωνής
+
+
+
+ αύξηση φωνής
+
+
+
+ αλλαγή τρόπου
+
+
+
+ αιχμαλώτιση
+
+
+
+ πληροφορίες
+σκατζόχοιρου
+
+
+
+ έξοδος
+
+
+
+ μεγέθυνση
+
+
+
+ σμίκρυνση
+
+
+
+ επαναφορά μεγέθυνσης
+
+
+
+ άλμα εις μήκος
+
+
+
+ άλμα εις ύψος
+
+
+
+ θέση 10
+
+
+
+ binds (categories)
+
+
+ Βασικές Ρυθμίσεις
+
+
+
+ Ρυθμίσεις Όπλων
+
+
+
+ Ρυθμίσεις κάμερας και δείκτη ποντικιού
+
+
+
+ Διάφορα
+
+
+
+ binds (descriptions)
+
+
+ Μετακινήστε τους σκατζόχοιρούς σας και σημαδέψτε :
+
+
+
+ Διασχίστε κενά και εμπόδια πηδώντας :
+
+
+
+ Πυροδοτήστε το επιλεγμένο σας όπλο ή ενεργοποιήστε ένα βοήθημα :
+
+
+
+ Επιλέξτε ένα όπλο ή μια τοποθεσία στόχου με το δείκτη ποντικιού :
+
+
+
+ Εναλλάξτε τον τρέχον ενεργοποιημένο σκατζόχοιρο (εαν είναι δυνατόν) :
+
+
+
+ Επιλέξτε ένα όπλο ή ένα βοήθημα :
+
+
+
+ Θέστε το χρονόμετρο στις βόμβες και στα χρονοεξαρτημένα όπλα :
+
+
+
+ Μετακινήστε την κάμερα στον τρέχον σκατζόχοιρο :
+
+
+
+ Μετακινήστε τον δείκτη του ποντικιού ή την κάμερα δίχως να χρησιμοποιείτε το ποντίκι :
+
+
+
+ Τροποποιήστε το επίπεδο μεγέθυνσης της κάμερας :
+
+
+
+ Μιλήστε στην ομάδα σας ή σε όλους τους συμμετέχοντες :
+
+
+
+ Κάντε παύση, συνεχίστε ή εγκαταλείψτε το παιχνίδι σας:
+
+
+
+ Τροποποιήστε την ένταση της φωνής του παιχνιδιού καθώς παίζετε :
+
+
+
+ Εναλλάξτε προβολή σε πλήρη οθόνη :
+
+
+
+ Λάβετε ένα στιγμιότυπο οθόνης :
+
+
+
+ Εναλλάξτε τις επιγραφές πάνω από τους σκατζόχοιρους :
+
+
+
+ binds (keys)
+
+
+ Άξονας
+
+
+
+ (Πάνω)
+
+
+
+ (Κάτω)
+
+
+
+ Καπέλο
+
+
+
+ (Αριστερά)
+
+
+
+ (Δεξιά)
+
+
+
+ Κουμπί
+
+
+
+ Πληκτρολόγιο
+
+
+
+ Delete
+
+
+
+ Ποντίκι : Αριστερό Κουμπί
+
+
+
+ Ποντίκι : Μεσαίο Κουμπί
+
+
+
+ Ποντίκι : Δεξί Κουμπί
+
+
+
+ Ποντίκι : Ροδέλα Πάνω
+
+
+
+ Ποντίκι : Ροδέλα Κάτω
+
+
+
+ Backspace
+
+
+
+ Tab
+
+
+
+ Clear
+
+
+
+ Return
+
+
+
+ Παύση
+
+
+
+ Escape
+
+
+
+ Διάστημα
+
+
+
+ Numpad 0
+
+
+
+ Numpad 1
+
+
+
+ Numpad 2
+
+
+
+ Numpad 3
+
+
+
+ Numpad 4
+
+
+
+ Numpad 5
+
+
+
+ Numpad 6
+
+
+
+ Numpad 7
+
+
+
+ Numpad 8
+
+
+
+ Numpad 9
+
+
+
+ Numpad .
+
+
+
+ Numpad /
+
+
+
+ Numpad *
+
+
+
+ Numpad -
+
+
+
+ Numpad +
+
+
+
+ Enter
+
+
+
+ Ίσον
+
+
+
+ Πάνω
+
+
+
+ Κάτω
+
+
+
+ Δεξιά
+
+
+
+ Αριστερά
+
+
+
+ Insert
+
+
+
+ Home
+
+
+
+ End
+
+
+
+ Page up
+
+
+
+ Page down
+
+
+
+ Num lock
+
+
+
+ Caps lock
+
+
+
+ Scroll lock
+
+
+
+ Δεξί Shift
+
+
+
+ Αριστερό Shift
+
+
+
+ Δεξί Ctrl
+
+
+
+ Αριστερό Ctrl
+
+
+
+ Δεξί Alt
+
+
+
+ Αριστερό Alt
+
+
+
+ Δεξί meta
+
+
+
+ Αριστερό meta
+
+
+
+ Κουμπί Α
+
+
+
+ Κουμπί Β
+
+
+
+ Κουμπί Χ
+
+
+
+ Κουμπί Υ
+
+
+
+ Κουμπί LB
+
+
+
+ Κουμπί RB
+
+
+
+ Κουμπί Back
+
+
+
+ Κουμπί Start
+
+
+
+ Left stick
+
+
+
+ Right stick
+
+
+
+ Left stick (Right)
+
+
+
+ Left stick (Left)
+
+
+
+ Left stick (Down)
+
+
+
+ Left stick (Up)
+
+
+
+ Left trigger
+
+
+
+ Right trigger
+
+
+
+ Right stick (Down)
+
+
+
+ Right stick (Up)
+
+
+
+ Right stick (Right)
+
+
+
+ Right stick (Left)
+
+
+
+ DPad
+
+
+
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/hedgewars_fr.ts
--- a/share/hedgewars/Data/Locale/hedgewars_fr.ts Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_fr.ts Mon Jan 17 23:22:52 2011 +0100
@@ -9,7 +9,7 @@
-
+ Copier à partir de ...
@@ -46,18 +46,18 @@
-
+ Quand cette option est active choisir des paramètres de jeu sélectionnera les armes
HWChatWidget
- %1 *** %2 a été enlevé de la liste des personnes ignorées
+ %1 *** %2 a été enlevé de votre liste de personnes ignorées
- %1 *** %2 a été ajouté dans la liste des personnes ignorées
+ %1 *** %2 a été ajouté dans votre liste de personnes ignorées
@@ -92,7 +92,7 @@
- Veuillez sélectionner une partie dans la liste ci-dessus
+ Veuillez sélectionner une partie enregistrée dans la liste ci-dessus
@@ -101,12 +101,12 @@
File Types
-
+ Fichier de démonstration d'Hedgewars
File Types
-
+ Fichier de sauvegarde d'Hedgewars
@@ -156,7 +156,7 @@
- Farpelu
+ Farfelu
@@ -188,11 +188,11 @@
-
+ Graine
-
+ Valider
@@ -244,7 +244,7 @@
Votre pseudo %1 est
enregistré sur Hedgewars.org
Veuillez fournir votre mot de passe
-ou choisir un nouveau pseudo:
+ou choisir un nouveau pseudo :
@@ -267,7 +267,10 @@
registered on Hedgewars.org
Please provide your password below
or pick another nickname in game config:
-
+ Votre pseudo %1 est
+enregistré sur Hedgewars.org
+Veuillez fournir votre mot de passe
+ou choisir un nouveau pseudo :
@@ -289,31 +292,31 @@
- Vider le cache de comptes
+ Vider le cache des comptes
-
+ Récupérer les données
-
+ Message du serveur pour la dernière version :
-
+ Message du serveur pour la version précédente :
-
+ Numéro de la dernière version du protocole :
-
+ Prévisualisation du MOTD
-
+ Enregistrer les données
@@ -327,31 +330,31 @@
PageDrawMap
-
+ Annuler
-
+ Effacer
- Charger
+ Charger
-
+ Enregistrer
-
+ Charger une carte dessinée
-
+ Cartes dessinées (*.hwmap);;Tous les fichiers (*.*)
-
+ Enregistrer une carte dessinée
@@ -387,59 +390,59 @@
-
+ Détails
-
+ Courbes de santé-
-
+ Rang
-
+ Le prix du meilleur tir a été décerné à <b>%1</b> avec <b>%2</b> points.
-
-
-
+
+ Le meilleur tueur est <b>%1</b> avec <b>%2</b> mort dans un tour.
+ Le meilleur tueur est <b>%1</b> avec <b>%2</b> morts dans un tour.
-
-
-
+
+ Un total de <b>%1</b> hérisson a été tué durant ce tour.
+ Un total de <b>%1</b> hérissons ont été tués durant ce tour.
-
+ (%1 Tue)
-
-
-
+
+ <b>%1</b> pense que c'est bien de tirer sur ses propres hérissons pour <b>%2</b> point.
+ <b>%1</b> pense que c'est bien de tirer sur ses propres hérissons pour <b>%2</b> points.
-
-
+
+ <b>%1</b> a tué <b>%2</b> de ses propres hérissons.
-
-
+
+ <b>%1</b> a eu peur et a passé son tour <b>%2</b> fois.
@@ -457,247 +460,247 @@
Tips
-
+ Choisissez la même couleur qu'un ami pour jouer dans la même équipe. Chacun de vous continuera à contrôler son ou ses hérissons mais ils gagneront ou perdront ensembles.
Tips
-
+ Certaines armes peuvent occasionner seulement de faibles dommages mais être beaucoup plus dévastatrices dans la situation adéquate. Essayez le Révolver pour envoyer plusieurs hérissons à l'eau.
Tips
-
+ Si vous ne savez pas quoi faire et ne voulez pas gaspiller de munitions, passez un tour. Mais ne laissez pas trop filer le temps ou ce sera la Mort Subite !
Tips
-
+ Si vous voulez empêcher les autres d'utiliser votre pseudo sur le serveur officiel, créez un compte sur http://www.hedgewars.org/.
Tips
-
+ Assez du mode par défaut ? Essayez une des missions - elles offrent différents types de jeu suivant votre choix.
Tips
-
+ Par défaut le jeu enregistre la dernière partie jouée comme une démonstration. Sélectionnez « Jeu en local » puis « Démonstrations » en bas à droite pour les visionner ou les gérer.
Tips
-
+ Hedgewars est un jeu libre et gratuit créé sur notre temps libre. Si vous avez des problèmes, demandez sur nos forums mais n'attendez pas de support 24h/24.
Tips
-
+ Hedgewars est un jeu libre et gratuit créé sur notre temps libre. Si vous l'aimez, aidez-nous avec un petit don ou contribuez par votre travail !
Tips
-
+ Hedgewars est un jeu libre et gratuit créé sur notre temps libre. Partagez-le avec votre famille et vos amis comme vous le voulez !
Tips
-
+ De temps en temps il y aura des tournois officiels. Les évènements à venir seront annoncés sur http://www.hedgewars.org/ quelques jours à l'avance.
Tips
-
+ Hedgewars est disponible dans de nombreuses langues. Si la traduction dans votre langue est partielle ou obsolète, contactez-nous !
Tips
-
+ Hedgewars peux être exécuté sur de nombreux systèmes d'exploitation différents, incluant Microsoft Windows, Mac OS X et Linux.
Tips
-
+ Souvenez-vous que vous pouvez créer votre propres parties en local et en ligne. Vous n'est pas limités aux options de jeu par défaut.
Tips
-
+ Vous devriez faire une petite pause au moins une fois par heure.
Tips
-
+ Si votre carte graphique ne peut pas fournir d'accélération matérielle pour OpenGL, essayez le mode de faible qualité pour améliorer les performances.
Tips
-
+ Nous sommes ouverts aux suggestions et au critiques constructives. Si vous n'aimez pas quelque chose ou avez une grande idée, contactez-nous !
Tips
-
+ Particulièrement quand vous jouez en ligne soyez polis et pensez que certains joueurs avec vous peuvent être mineurs.
Tips
-
+ Les modes de jeu spéciaux comme « Vampirisme » ou « Karma » vous permettent de développer de nouvelles tactiques. Essayez-les en parties personnalisées !
Tips
-
+ La version Windows d'Hedgewars fonctionne avec Xfire. Pensez à ajouter Hedgewars dans la liste de jeu pour que vous amis vous voient jouer.
Tips
-
+ Vous ne devriez jamais installer Hedgewars sur des ordinateurs ne vous appartenant pas (école, université, travail, etc...). Demandez au responsable !
Tips
-
+ Hedgewars peut être parfait pour des parties courtes pendant une pause. Assurez-vous juste de ne pas avoir mis trop de hérissons ou de ne pas utiliser une carte énorme. Réduire le temps ou la santé peuvent aider également.
Tips
-
+ Aucun hérisson n'a été blessé durant la conception de ce jeu.
Tips
-
+ Hedgewars est un jeu libre et gratuit créé sur notre temps libre. Si quelqu'un vous l'a vendu, vous devriez vous faire rembourser !
Tips
-
+ Branchez une ou plusieurs manettes avant de lancer le jeu pour pouvoir contrôler vos équipes avec.
Tips
-
+ Créer un compte sur %1 vous permet d'empêcher les autres d'utiliser votre pseudo favori sur le serveur officiel.
Tips
-
+ Si votre carte graphique ne peut pas fournir d'accélération matérielle pour OpenGL, essayez d'installer les drivers associés.
Tips
-
+ Il y a différents types de saut disponibles. Pressez [high jump] deux fois pour faire un très haut saut un peu en arrière.
Tips
-
+ Peur de tomber d'une falaise ? Maintenez [precise] pour tourner [left] ou [right] sans bouger.
Tips
-
+ Certaines armes demandent de la stratégie ou juste beaucoup d'entrainement, alors ne laissez pas tomber une arme si vous avez raté une fois un ennemi.
Tips
-
+ La plupart des armes ne fonctionnent pas une fois qu'elles ont touché l'eau. L'Abeille Missile ou le Gâteau sont des exceptions.
Tips
-
+ Le Old Limbuger cause seulement une petite explosion. En revanche le vent affecte le petit nuage empoisonné qui peut contaminer de nombreux hérissons à la fois.
Tips
-
+ L'attaque du Piano est la plus dévastatrice des attaques aériennes. Vous perdrez le hérisson qui la lance, donc il y a une contrepartie énorme.
Tips
-
+ L'Abeille Missile peut être délicate à utiliser. Son rayon de courbure dépend de sa vitesse, alors essayer de ne pas l'utiliser à pleine puissance.
Tips
-
+ Les Mines adhésives sont l'outil parfait pour créer de petites réactions en chaines envoyant les ennemis dans des situations délicates ... ou dans l'eau.
Tips
-
+ Le Marteau est plus efficace utilisé sur des ponts ou des poutrelles. Les hérissons touchés vont passer à travers le sol.
Tips
-
+ Si vous êtes coincés derrière un hérisson ennemi, utilisez le Marteau pour vous libérer sans subir les dégâts d'une explosion.
Tips
-
+ La distance maximale que le Gâteau peux parcourir dépend du terrain qu'il doit franchir. Utiliser [attack] pour le faire exploser avant.
Tips
-
+ Le Lance-flammes est une arme mais peut aussi être utilisé pour creuser un tunnel.
Tips
-
+ Utilisez la grenade infernale pour empêcher temporairement des hérissons de traverser du terrain comme un tunnel ou une plate-forme.
Tips
-
+ Vous voulez savoir qui est derrière le jeu ? Cliquez sur le logo Hedgewars dans le menu principal pour voir les crédits.
Tips
-
+ Soyez libre de dessiner vos propres tombes, chapeaux, drapeaux ou même cartes et thèmes ! Mais pour les utiliser en ligne vous devrez les partager quelque part.
Tips
-
+ Vous voulez vraiment un chapeau spécifique ? Faites un don et recevez un chapeau exclusif de votre choix.
Tips
-
+ Conservez les pilotes de votre carte graphique à jour pour éviter les problèmes en jouant.
Tips
-
+ Vous pouvez trouver vos fichiers de configuration Hedgewars sous « Mes Documents\Hedgewars ». Créez des sauvegardes ou prenez les fichiers avec vous, mais ne les modifiez pas à la main !
Tips
-
+ Vous pouvez associer les fichiers relatifs à Hedgewars (parties enregistrées ou démonstrations) au jeu pour les lancer depuis votre navigateur de fichiers ou internet.
Tips
-
+ Vous aimez Hedgewars ? Devenez un fan sur %1 ou suivez-nous sur %2 !
Tips
-
+ Envie d'économiser des Cordes Ninja ? Relâchez la Corde Ninja en l'air et tirez à nouveau. Du moment que vous ne touchez pas le sol, vous réutiliserez votre Corde Ninja sans gaspiller de munitions.
Tips
-
+ Vous pouvez trouver vos fichiers de configuration Hedgewars sous « Library/Application Support/Hedgewars » dans votre répertoire personnel. Créez des sauvegardes ou prenez les fichiers avec vous, mais ne les modifiez pas à la main !
Tips
-
+ Vous pouvez trouver vos fichiers de configuration Hedgewars sous « .hedgewars » dans votre répertoire personnel. Créez des sauvegardes ou prenez les fichiers avec vous, mais ne les modifiez pas à la main !
@@ -748,35 +751,35 @@
-
+ Supprimer une équipe
-
+ Vous ne pouvez pas modifier d'équipe depuis la sélection d'équipes. Retournez au manu principal pour ajouter, modifier ou supprimer des équipes.
-
+ Nouveaux paramètres
-
+ Modifier paramètres
-
+ Supprimer paramètres
-
+ Nouvel ensemble d'armes
-
+ Modifier un ensemble d'armes
-
+ Supprimer un ensemble d'armes
@@ -896,36 +899,36 @@
-
+ Labyrinthe aléatoire
-
+ État :
-
+ Règles :
-
+ Armes :
-
+ Recherche :
-
+ Effacer
-
+ Attention
-
+ Vous voulez rejoindre une partie qui a déjà commencée. Voulez-vous tout de même rejoindre la salle ?
@@ -992,59 +995,59 @@
-
+ Ordre de jeu aléatoire plutôt que par ordre dans la salle.
-
+ Jouez avec un Roi. S'il meurs, votre côté perds.
-
+ Placez vos hérissons chacun à votre tour avant de commencer à jouer.
-
+ Les munitions sont partagées parmi les équipes de même couleur.
-
+ Désactiver les poutres en générant des cartes aléatoires.
-
+ Désactiver les objets de terrain en générant des cartes aléatoires.
-
+ L'IA ressuscite à chaque mort.
-
+ Tous les hérissons (vivants) sont soignés complètement à la fin du tour.
-
+ Attaquer ne termine pas votre tour.
-
+ Les armes sont réinitialisées aux valeurs de départ à la fin de chaque tour.
-
+ Chaque hérisson a ses propres munitions. Il ne les partage pas avec son équipe.
-
+ Vous n'aurez plus jamais à vous soucier du vent.
-
+ Le vent affectera quasiment tout.
-
+ Copier
@@ -1059,11 +1062,11 @@
- Nouveau
+ Nouveau
-
+ Copier
@@ -1090,7 +1093,7 @@
-
+ Mode Campagne (...). EN DÉVELOPPEMENT
@@ -1121,23 +1124,23 @@
-
+ Suivre
-
+ Ignorer
-
+ Ajouter un ami
-
+ Ne plus ignorer
-
+ Retirer un ami
@@ -1180,19 +1183,19 @@
-
+ Montrer le menu d'aide des munitions.
-
+ Activer les sons du menu principal
-
+ Activer la musique du menu principal
-
+ Effets du menu principal
@@ -1211,19 +1214,19 @@
-
+ Réglage du système
-
+ Labyrinthe généré
-
+ Mission
-
+ Communauté
@@ -1235,7 +1238,7 @@
-
+ En cours
@@ -1243,7 +1246,7 @@
-
+ Carte dessinée
@@ -1278,7 +1281,7 @@
- Armes
+ Armes
@@ -1290,15 +1293,15 @@
-
+ Réglages de l'équipe
-
+ Divers
-
+ Paramètres et Armes
@@ -1405,11 +1408,11 @@
-
+ % de Mines défectueuses
-
+ Nom
@@ -1417,59 +1420,59 @@
-
+ Tombe
-
+ Drapeau
-
+ Voix
-
+ Langue
-
+ Relancez le jeu pour appliquer
-
+ Explosifs
-
+ Conseil :
-
+ Cette version de développement est un travail en cours, il peut ne pas être compatible avec les autres versions du jeu. Certaines fonctionnalités peuvent être cassées ou incomplètes.
-
+ Qualité
-
+ % Caisses de Santé
-
+ Santé dans les Caisses
-
+ Montée de l'eau à la Mort Subite
-
+ Perte de Santé à la Mort Subite
-
+ % longueur de la Corde Ninja
@@ -1530,39 +1533,39 @@
-
+ Impossible d'enregistrer sur le set d'armes par défaut.
-
+ Toutes les associations d'extensions de fichiers ont été effectuées.
-
+ Les associations d'extensions de fichiers ont échoué.
- Équipes
+ Équipes
-
+ Voulez-vous vraiment effacer cette équipe ?
-
+ Paramètres de jeu
-
+ Impossible d'effacer les paramètres de jeu par défaut.
-
+ Voulez-vous vraiment effacer ces paramètres de jeu ?
-
+ Impossible d'effacer le set d'armes par défaut.
@@ -1652,15 +1655,15 @@
-
+ Équipes aléatoires
-
+ Associer les extensions de fichiers
-
+ plus
@@ -1706,19 +1709,19 @@
-
+ Munitions dans les caisses
-
+ Délais
-
+ Nouveau
-
+ Copie de
@@ -1780,59 +1783,59 @@
- Ajouter des Mines
+ Ajouter des Mines
-
+ Ordre aléatoire
-
+ Roi
-
+ Placer les hérissons
-
+ Les Clans partagent les munitions
-
+ Désactiver les poutres
-
+ Désactiver les objets de terrain
-
+ Mode de survie de l'IA
-
+ Réinitialiser la Santé
-
+ Attaques illimitées
-
+ Réinitialiser les Armes
-
+ Munitions par hérisson
-
+ Désactiver le vent
-
+ Davantage de vent
@@ -2103,7 +2106,7 @@
- Bouton directionnel
+ Chapeau
@@ -2403,7 +2406,7 @@
-
+ Effacer
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/hedgewars_ko.ts
--- a/share/hedgewars/Data/Locale/hedgewars_ko.ts Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ko.ts Mon Jan 17 23:22:52 2011 +0100
@@ -108,7 +108,7 @@
HWGame
-
+ ko.txt
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/hedgewars_sk.ts
--- a/share/hedgewars/Data/Locale/hedgewars_sk.ts Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_sk.ts Mon Jan 17 23:22:52 2011 +0100
@@ -197,7 +197,7 @@
- Nastaviť
+ Nastaviť
@@ -1759,7 +1759,7 @@
-
+ viac
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/hedgewars_zh_CN.ts
--- a/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Mon Jan 17 23:22:52 2011 +0100
@@ -9,7 +9,22 @@
-
+ 备份
+
+
+
+ DrawMapWidget
+
+
+ 文件错误
+
+
+
+ 无法打开文件 '%1' 写入
+
+
+
+ 无法读取文件 '%1'
@@ -187,11 +202,11 @@
-
+ 作种
-
+ 设定
@@ -329,31 +344,31 @@
PageDrawMap
-
+ 取消
-
+ 清除
- 读取
+ 读取
-
+ 保存
-
+ 读取已经绘制的地图
-
+ 绘制的地图 (*.hwmap);;全部文件 (*.*)
-
+ 保存绘制的地图
@@ -1083,7 +1098,7 @@
-
+ 备份
@@ -1102,7 +1117,7 @@
-
+ 备份
@@ -1310,7 +1325,7 @@
-
+ 手绘地图
@@ -1540,7 +1555,7 @@
-
+ 游戏
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/ko.lua
--- a/share/hedgewars/Data/Locale/ko.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/ko.lua Mon Jan 17 23:22:52 2011 +0100
@@ -28,7 +28,6 @@
-- ["Eliminate Poison before the time runs out"] = "",
-- ["Eliminate the Blue Team"] = "",
-- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
--- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
-- ["Enjoy the swim..."] = "",
-- ["Fastest lap: "] = "",
-- ["Feeble Resistance"] = "",
@@ -53,8 +52,7 @@
-- ["Listen up, maggot!!"] = "",
-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
-- ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESS"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
-- ["NEW fastest lap: "] = "",
-- ["NO JUMPING"] = "",
-- ["Not So Friendly Match"] = "", -- Basketball, Knockball
@@ -63,11 +61,10 @@
-- ["Operation Diver"] = "",
-- ["Opposing Team: "] = "",
-- ["Pathetic Hog #%d"] = "",
+-- ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
-- ["Poison"] = "",
-- ["Random Weapons"] = "",
-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
--- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
--- ["RULES OF THE GAME [Press ESC to view]"] = "",
-- ["RULES OF THE GAME [Press ESC to view]"] = "",
-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
-- ["See ya!"] = "",
@@ -89,7 +86,7 @@
-- ["T_T"] = "",
-- ["Unit 3378"] = "",
-- ["Use your rope to get from start to finish as fast as you can!"] = "",
--- ["Victory for the"] = "",
+-- ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
-- ["You have SCORED!!"] = "",
-- ["You've failed. Try again."] = "",
-- ["You've reached the goal!| |Time: "] = "",
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/pl.lua
--- a/share/hedgewars/Data/Locale/pl.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/pl.lua Mon Jan 17 23:22:52 2011 +0100
@@ -20,8 +20,8 @@
["CTF_BLIZZARD"] = "Śnieżyca",
["CUSTOM BUILD 0.2"] = "Wersja 0.2",
["Cybernetic Empire"] = "Cybernetyczne Imperium",
+ ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Młody!!! Złaź z mojej głowy!!!",
["DAMMIT, ROOKIE!"] = "Żółtodziobie!",
- ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Młody!!! Złaź z mojej głowy!!!",
["Dangerous Ducklings"] = "Niebezpieczne Kaczory",
["Eliminate all enemies"] = "Wyeliminuj wszystkich przeciwników",
["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Zniszcz wszystkie cele zanim upłynie czas.|W tej misji masz nieskończoną ilość amunicji.",
@@ -53,7 +53,6 @@
["|- Mines Time:"] = "|- Czas detonacji min:",
["MISSION FAILED"] = "MISJA ZAKOŃCZONA NIEPOWODZENIEM",
["MISSION SUCCESSFUL"] = "MISJA POWIODŁA SIĘ",
- ["MISSION SUCCESS"] = "MISJA POWIODŁA SIĘ",
["NEW fastest lap: "] = "NOWE najszybsze okrążenie: ",
["NO JUMPING"] = "BEZ SKAKANIA",
["Not So Friendly Match"] = "Mecz Nie-Do-Końca Towarzyski",
@@ -62,6 +61,7 @@
["Operation Diver"] = "Operacja Nurek",
["Opposing Team: "] = "Przeciwna drużyna",
["Pathetic Hog #%d"] = "Załosny Jeż #%d",
+-- ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
["Poison"] = "Truciciel",
["Random Weapons"] = "Losowe uzbrojenie",
[" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = " - Przynieś flagę wroga do swojej bazy by zdobyć punkt | - Pierwszy kto zrobi to 3 razy, wygrywa | - Punkt zdobywasz tylko gdy twoja flaga znajduje się w bazie | - Jeże upuszczą flagę gdy zostaną zabite bądź utopione | - Upuszczona flaga może być przywrócona lub przechwycona ponownie | - Jeże odradzają się po śmierci",
@@ -86,7 +86,7 @@
["T_T"] = "T_T",
["Unit 3378"] = "Jednostka 3378",
["Use your rope to get from start to finish as fast as you can!"] = "Użyj liny by jak najszybciej dotrzec od startu do mety",
- ["Victory for the"] = "Zwycięstwo przypadło",
+ ["Victory for the "] = "Zwycięstwo przypadło",
["You have SCORED!!"] = "Zdobyłeś PUNKT",
["You've failed. Try again."] = "Przegrałeś. Spróbuj jeszcze raz",
["You've reached the goal!| |Time: "] = "Dotarłeś do celu!| |Czas: ",
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/pt_BR.lua
--- a/share/hedgewars/Data/Locale/pt_BR.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/pt_BR.lua Mon Jan 17 23:22:52 2011 +0100
@@ -52,8 +52,7 @@
-- ["Listen up, maggot!!"] = "",
-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
-- ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESS"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["NEW fastest lap: "] = "NOVA volta mais rápida: ",
-- ["NO JUMPING"] = "",
["Not So Friendly Match"] = "Partida não muito amigável", -- Basketball, Knockball
@@ -62,11 +61,11 @@
-- ["Operation Diver"] = "",
-- ["Opposing Team: "] = "",
-- ["Pathetic Hog #%d"] = "",
+-- ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
-- ["Poison"] = "",
-- ["Random Weapons"] = "",
-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
-- ["RULES OF THE GAME [Press ESC to view]"] = "",
--- ["RULES OF THE GAME [Press ESC to view]"] = "",
-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
-- ["See ya!"] = "",
["Shotgun Team"] = "Carabineiros",
@@ -87,7 +86,7 @@
-- ["T_T"] = "",
-- ["Unit 3378"] = "",
["Use your rope to get from start to finish as fast as you can!"] = "Use sua corda para ir do início ao fim o mais rápido que você puder!",
--- ["Victory for the"] = "",
+-- ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
-- ["You have SCORED!!"] = "",
-- ["You've failed. Try again."] = "",
-- ["You've reached the goal!| |Time:"] = "",
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/pt_PT.lua
--- a/share/hedgewars/Data/Locale/pt_PT.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/pt_PT.lua Mon Jan 17 23:22:52 2011 +0100
@@ -52,8 +52,7 @@
-- ["Listen up, maggot!!"] = "",
-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
-- ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESS"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["NEW fastest lap: "] = "NOVA volta recorde: ",
-- ["NO JUMPING"] = "",
["Not So Friendly Match"] = "Partida não muito amigável", -- Basketball, Knockball
@@ -62,11 +61,11 @@
-- ["Operation Diver"] = "",
-- ["Opposing Team: "] = "",
-- ["Pathetic Hog #%d"] = "",
+-- ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
-- ["Poison"] = "",
-- ["Random Weapons"] = "",
-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
-- ["RULES OF THE GAME [Press ESC to view]"] = "",
--- ["RULES OF THE GAME [Press ESC to view]"] = "",
-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
-- ["See ya!"] = "",
["Shotgun Team"] = "Caçadores",
@@ -87,7 +86,7 @@
-- ["T_T"] = "",
-- ["Unit 3378"] = "",
["Use your rope to get from start to finish as fast as you can!"] = "Utilizando a corda, percorre o percurso do inicio ao fim o mais rápido que conseguires!",
--- ["Victory for the"] = "",
+-- ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
-- ["You have SCORED!!"] = "",
-- ["You've failed. Try again."] = "",
-- ["You've reached the goal!| |Time:"] = "",
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/sk.lua
--- a/share/hedgewars/Data/Locale/sk.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/sk.lua Mon Jan 17 23:22:52 2011 +0100
@@ -1,96 +1,95 @@
locale = {
--- [":("] = "",
--- ["!!!"] = "",
--- ["A game of luck"] = "",
+ [":("] = ":(",
+ ["!!!"] = "!!!",
+ ["A game of luck"] = "Hra o šťastí",
["Aiming Practice"] = "Tréning presnosti", --Bazooka, Shotgun, SniperRifle
["Bat balls at your enemies and|push them into the sea!"] = "Loptami triafajte vašich nepriateľov|a zhoďte ich tak do mora!",
["Bat your opponents through the|baskets and out of the map!"] = "Odpálkujte vašich súperov do koša|a von z mapy!",
["Bazooka Training"] = "Tréning s bazukou",
["Best laps per team: "] = "Najrýchlejšie kolá podľa tímov: ",
--- ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
--- ["Boom!"] = "",
--- ["by mikade"] = "", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
--- ["CAPTURE THE FLAG"] = "",
--- ["Codename: Teamwork"] = "",
--- ["Congratulations!"] = "",
+ ["Bloody Rookies"] = "Mizerní zelenáči", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+ ["Boom!"] = "Bum!",
+ ["by mikade"] = "napísal mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+ ["CAPTURE THE FLAG"] = "ZMOCNITE SA VLAJKY",
+ ["Codename: Teamwork"] = "Kódové meno: Teamová práca",
+ ["Congratulations!"] = "Gratulujem!",
["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratulujem! Zneškodnili ste všetky ciele|v stanovenom čase.", --Bazooka, Shotgun, SniperRifle
--- ["CONTROL"] = "",
--- ["Control pillars to score points."] = "",
--- ["CONTROL v0.3"] = "",
--- ["CTF_BLIZZARD"] = "",
--- ["CUSTOM BUILD 0.2"] = "",
--- ["Cybernetic Empire"] = "",
--- ["DAMMIT, ROOKIE!"] = "",
--- ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
--- ["Dangerous Ducklings"] = "",
--- ["Eliminate all enemies"] = "",
+ ["CONTROL"] = "OVLÁDNUTIE",
+ ["Control pillars to score points."] = "Ovládnite piliere, aby ste skórovali",
+ ["CONTROL v0.3"] = "OVLÁDNUTIE v0.3",
+ ["CTF_BLIZZARD"] = "CTF_METELICA",
+ ["CUSTOM BUILD 0.2"] = "VLASTNÉ ZOSTAVENIE 0.2",
+ ["Cybernetic Empire"] = "Kybertnetické impérium",
+ ["DAMMIT, ROOKIE!"] = "Prekliaty zelenáč!",
+ ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Do kelu s tebou, zelenáč! Okamžite mi zlez z hlavy!",
+ ["Dangerous Ducklings"] = "Nebezpečné kačiatka",
+ ["Eliminate all enemies"] = "Zneškodnite všetkých nepriateľov",
["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Zneškodnite všetky ciele pred vypršaním času.|Na túto misiu máte neobmedzené množstvo streliva.", --Bazooka, Shotgun, SniperRifle
--- ["Eliminate Poison before the time runs out"] = "",
--- ["Eliminate the Blue Team"] = "",
--- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
--- ["Enjoy the swim..."] = "",
+ ["Eliminate Poison before the time runs out"] = "Zneškodnite Poisona pred tým, ako vyprší čas",
+ ["Eliminate the Blue Team"] = "Zneškodnite modrý tím",
+ ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Zneškodnite Jednotku 3378|- Slabý odpor musí prežiť",
+ ["Enjoy the swim..."] = "Užite si plávanie...",
["Fastest lap: "] = "Najrýchlejšie kolo: ",
--- ["Feeble Resistance"] = "",
--- ["Flag captured!"] = "",
--- ["Flag respawned!"] = "",
--- ["Flag returned!"] = "",
--- ["Flags will be placed where each team ends their turn."] = "",
--- ["GAME OVER!"] = "",
--- ["Game Started!"] = "",
--- ["Get on over there and take him out!"] = "",
--- ["Goal:"] = "",
--- ["GO! GO! GO!"] = "",
--- ["Good birdy......"] = "",
--- ["Good luck out there!"] = "",
+ ["Feeble Resistance"] = "Slabý odpor",
+ ["Flag captured!"] = "Získaná vlajka!",
+ ["Flag respawned!"] = "Vlajka obnovená!",
+ ["Flag returned!"] = "Vlajka vrátená!",
+ ["Flags will be placed where each team ends their turn."] = "Vlajky budu umiestnené po skončení tohto ťahu",
+ ["GAME OVER!"] = "KONIEC HRY!",
+ ["Game Started!"] = "Hra začala!",
+ ["Get on over there and take him out!"] = "Okamžite poď sem a dostaň ho!",
+ ["Goal:"] = "Cieľ:",
+ ["GO! GO! GO!"] = "POĎ! POĎ! POĎ!",
+ ["Good birdy......"] = "Dobrý vtáčik......",
+ ["Good luck out there!"] = "Veľa šťastia!",
["Hedgewars-Basketball"] = "Hedgewars-Basketbal",
["Hedgewars-Knockball"] = "Hedgewars-Knockball",
--- ["Hmmm..."] = "",
--- ["Hooray!"] = "",
+ ["Hmmm..."] = "Hmm..",
+ ["Hooray!"] = "Hurá!",
["Hunter"] = "Lovec", --Bazooka, Shotgun, SniperRifle
--- ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
--- ["- Jumping is disabled"] = "",
--- ["Listen up, maggot!!"] = "",
--- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESS"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["Instructor"] = "Inštruktor", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+ ["- Jumping is disabled"] = "- Skákanie je vypnuté",
+ ["Listen up, maggot!!"] = "Počúvaj, ty biedny červ!",
+ ["|- Mines Time:"] = "|- Časovač pre míny:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION FAILED"] = "MISIA NEÚSPEŠNÁ", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESSFUL"] = "MISIA ÚSPEŠNÁ", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["NEW fastest lap: "] = "NOVÉ najrýchlejšie kolo: ",
--- ["NO JUMPING"] = "",
+ ["NO JUMPING"] = "ŽIADNE SKÁKANIE",
["Not So Friendly Match"] = "Nie tak celkom priateľský zápas", -- Basketball, Knockball
--- ["Oh no! Just try again!"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
- ["Oh no! Time's up! Just try again."] = "Ale nie! Čas vypršal! Tak to skúste znovu.", --Bazooka, Shotgun, SniperRifle
--- ["Operation Diver"] = "",
--- ["Opposing Team: "] = "",
--- ["Pathetic Hog #%d"] = "",
--- ["Poison"] = "",
--- ["Random Weapons"] = "",
--- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
--- ["RULES OF THE GAME [Press ESC to view]"] = "",
--- ["RULES OF THE GAME [Press ESC to view]"] = "",
--- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
--- ["See ya!"] = "",
+ ["Oh no! Just try again!"] = "Áále nie! Tak to skúste znovu!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["Oh no! Time's up! Just try again."] = "Áále nie! Čas vypršal! Tak to skúste znovu.", --Bazooka, Shotgun, SniperRifle
+ ["Operation Diver"] = "Operácia Potápač",
+ ["Opposing Team: "] = "Nepriateľský tím",
+ ["Pathetic Hog #%d"] = "Žalostný ježko #%d",
+ ["points"] = "body", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
+ ["Poison"] = "Poison",
+ ["Random Weapons"] = "Náhodné zbrane",
+ [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = " - Skórujete prinesením nepriateľskej vlajky do vašej základne | - Prvý tím, ktorý dosiahne 3 body, vyhráva | - Skórujete len vtedy, keď je máte svoju vlajku v základni | - Spadnuté vlajky môžu byť vrátené na základňu alebo sa ich môže zmocniť súpere | - Ježkovia po smrti ožiujú",
+ ["RULES OF THE GAME [Press ESC to view]"] = "PRAVIDLÁ HRY [Stlačte Esc pre ich zobrazenie]",
+ ["sec"] = "sek", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+ ["See ya!"] = "Tak zatiaľ!",
["Shotgun Team"] = "Shotgun tím",
["Shotgun Training"] = "Tréning s brokovnicou",
["%s is out and Team %d|scored a penalty!| |Score:"] = "%s je mimo hru a tím %d|dostal trestný bod!| |Skóre:", -- Basketball, Knockball
["%s is out and Team %d|scored a point!| |Score:"] = "%s je mimo hru a tím %d|získal bod!| |Skóre:", -- Basketball, Knockball
["Sniper Training"] = "Tréning pre ostreľovačov",
["Sniperz"] = "Ostreľovači",
--- ["Spooky Tree"] = "",
+ ["Spooky Tree"] = "Strašidelný strom",
["Team %d: "] = "Tím %d: ",
--- ["Team Scores:"] = "",
--- ["That was pointless."] = "",
--- ["The enemy is hiding out on yonder ducky!"] = "",
--- ["The flag will respawn next round."] = "",
--- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "",
--- ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["Team Scores:"] = "Tím skóruje:",
+ ["That was pointless."] = "To bolo zbytočné.",
+ ["The enemy is hiding out on yonder ducky!"] = "Nepriateľ sa schováva na tamtej kačičke!",
+ ["The flag will respawn next round."] = "V ďalšom kole sa obnoví vlajka.",
+ ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Niekto rozhádzal vašu výbavu a teraz|musíte použiť len to, čo vám ostalo!",
+ ["Toxic Team"] = "Toxic tím", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["TrophyRace"] = "Preteky o trofej",
--- ["T_T"] = "",
--- ["Unit 3378"] = "",
+ ["T_T"] = "T_T",
+ ["Unit 3378"] = "Jednotka 3378",
["Use your rope to get from start to finish as fast as you can!"] = "Použite lano na presun zo štartovnej pozície do cieľa tak rýchlo, ako to len viete!",
--- ["Victory for the"] = "",
--- ["You have SCORED!!"] = "",
--- ["You've failed. Try again."] = "",
--- ["You've reached the goal!| |Time:"] = "",
+ ["Victory for the "] = "Víťazstvo pre", -- CTF_Blizzard, Capture_the_Flag
+ ["You have SCORED!!"] = "SKÓROVALI ste!!",
+ ["You've failed. Try again."] = "Neuspeli ste. Skúste to znova.",
+ ["You've reached the goal!| |Time:"] = "Dosiahli ste cieľ!| |Čas:",
["You've reached the goal!| |Time: "] = "Dosiahli ste cieľ!| |Čas: ",
["'Zooka Team"] = "Bazuka tím",
}
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/stub.lua
--- a/share/hedgewars/Data/Locale/stub.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/stub.lua Mon Jan 17 23:22:52 2011 +0100
@@ -28,7 +28,6 @@
-- ["Eliminate Poison before the time runs out"] = "",
-- ["Eliminate the Blue Team"] = "",
-- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
--- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
-- ["Enjoy the swim..."] = "",
-- ["Fastest lap: "] = "",
-- ["Feeble Resistance"] = "",
@@ -53,8 +52,7 @@
-- ["Listen up, maggot!!"] = "",
-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
-- ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
--- ["MISSION SUCCESS"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
-- ["NEW fastest lap: "] = "",
-- ["NO JUMPING"] = "",
-- ["Not So Friendly Match"] = "", -- Basketball, Knockball
@@ -63,11 +61,10 @@
-- ["Operation Diver"] = "",
-- ["Opposing Team: "] = "",
-- ["Pathetic Hog #%d"] = "",
+-- ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
-- ["Poison"] = "",
-- ["Random Weapons"] = "",
-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
--- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
--- ["RULES OF THE GAME [Press ESC to view]"] = "",
-- ["RULES OF THE GAME [Press ESC to view]"] = "",
-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
-- ["See ya!"] = "",
@@ -89,7 +86,7 @@
-- ["T_T"] = "",
-- ["Unit 3378"] = "",
-- ["Use your rope to get from start to finish as fast as you can!"] = "",
--- ["Victory for the"] = "",
+-- ["Victory for the "] = "", -- CTF_Blizzard, Capture_the_Flag
-- ["You have SCORED!!"] = "",
-- ["You've failed. Try again."] = "",
-- ["You've reached the goal!| |Time: "] = "",
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/sv.lua
--- a/share/hedgewars/Data/Locale/sv.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/sv.lua Mon Jan 17 23:22:52 2011 +0100
@@ -8,7 +8,7 @@
["Bazooka Training"] = "Bazookaträning",
["Best laps per team: "] = "Bästa varv per lag: ",
["Bloody Rookies"] = "Blodiga gröngölingar", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
--- ["Boom!"] = "",
+ ["Boom!"] = "Bom!",
["by mikade"] = "av mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
["CAPTURE THE FLAG"] = "CAPTURE THE FLAG",
["Codename: Teamwork"] = "Kodnamn: Lagarbete",
@@ -17,7 +17,7 @@
["CONTROL"] = "KONTROLL",
["Control pillars to score points."] = "Kontrollera pelare för att ta poäng",
["CONTROL v0.3"] = "KONTROLL v0.3",
--- ["CTF_BLIZZARD"] = "",
+ ["CTF_BLIZZARD"] = "CTF_BLIZZARD",
["CUSTOM BUILD 0.2"] = "SPECIALVERSION 0.2",
["Cybernetic Empire"] = "Robotriket",
["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "SATAN, GRÖNGÖLING! SLUTA TJATA!",
@@ -38,7 +38,7 @@
["GAME OVER!"] = "SPELET ÄR SLUT!",
["Game Started!"] = "Spel startat!",
["Get on over there and take him out!"] = "Ta dig bort där och gör dig av med honom!",
--- ["Goal:"] = "",
+ ["Goal:"] = "Mål:",
["GO! GO! GO!"] = "Kör! Kör! Kör!",
["Good birdy......"] = "Fin fågel......",
["Good luck out there!"] = "Lycka till där ute!",
@@ -50,10 +50,9 @@
["Instructor"] = "Instruktör", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
["- Jumping is disabled"] = "- Hoppande är avaktiverat",
["Listen up, maggot!!"] = "Hör här, ynkrygg!!",
--- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["|- Mines Time:"] = "|- Mintid:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["MISSION FAILED"] = "UPPDRAG MISSLYCKADES", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
- ["MISSION SUCCESSFUL"] = "UPPDRAG SLUTFÖRT", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
- ["MISSION SUCCESS"] = "UPPDRAG LYCKADES", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESSFUL"] = "UPPDRAG SLUTFÖRT", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["NEW fastest lap: "] = "NYTT snabbast varv: ",
["NO JUMPING"] = "INGET HOPPANDE",
["Not So Friendly Match"] = "En inte så vänlig match", -- Basketball, Knockball
@@ -62,12 +61,12 @@
["Operation Diver"] = "Operationens dykare",
["Opposing Team: "] = "Motståndarlag: ",
["Pathetic Hog #%d"] = "Patetisk kott #%d",
+-- ["points"] = "", -- Control, CTF_Blizzard, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle
["Poison"] = "Gift",
["Random Weapons"] = "Slumpade vapen",
[" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = " - Återvänd med fiendens flagga till din bas för att ta poäng | - Första laget till tre vinner | - Du kan bara ta poäng när din egen flagga är i basen | - Kottar tappar flaggan när de dödas eller drunknar | - Tappade flaggor kan tas tillbaka eller fångas | - Kottar kommer tillbaka när de dör",
--- ["RULES OF THE GAME [Press ESC to view]"] = "",
- ["RULES OF THE GAME [Press ESC to view]"] = "SPELREGLER [Tryck ESC för att se",
--- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+ ["RULES OF THE GAME [Press ESC to view]"] = "SPELREGLER [Tryck ESC för att se]",
+ ["sec"] = "sec", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
["See ya!"] = "Ses!",
["Shotgun Team"] = "Hagelgevärslaget",
["Shotgun Training"] = "Hagelgevärsträning",
@@ -78,16 +77,16 @@
["Spooky Tree"] = "Kusligt träd",
["Team %d: "] = "Lag %d: ",
["Team Scores:"] = "Lagresultat:",
--- ["That was pointless."] = "",
+ ["That was pointless."] = "Det där var meningslöst.",
["The enemy is hiding out on yonder ducky!"] = "Fienden gömmer sig på andra ankan!",
--- ["The flag will respawn next round."] = "",
+ ["The flag will respawn next round."] = "Flaggan kommer tillbaka nästa runda.",
["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Det har uppstått ett missförstånd om din utrustning|och nu måste du använda vad du kan hitta!",
["Toxic Team"] = "Förgiftade laget", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["TrophyRace"] = "TrophyRace",
["T_T"] = "T_T",
["Unit 3378"] = "Enhet 3378",
["Use your rope to get from start to finish as fast as you can!"] = "Använd ditt rep för att ta dig från start till mål så fort som möjligt!",
- ["Victory for the"] = "Vinst för",
+ ["Victory for the "] = "Vinst för", -- CTF_Blizzard, Capture_the_Flag
["You have SCORED!!"] = "Du har tagit poäng!",
["You've failed. Try again."] = "Du har misslyckats. Försök igen.",
["You've reached the goal!| |Time: "] = "Du har nått målet!| |Tid: ",
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/zh_CN.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/zh_CN.lua Mon Jan 17 23:22:52 2011 +0100
@@ -0,0 +1,98 @@
+locale = {
+ ["!!!"] = "!!!",
+ ["A game of luck"] = "运气游戏",
+ ["Aiming Practice"] = "瞄准练习", --火箭筒、霰弹枪、狙击枪
+ ["Bat balls at your enemies and|push them into the sea!"] = "发射棒球将敌人击打入水",
+ ["Bat your opponents through the|baskets and out of the map!"] = "把敌人击出场地——对准栏框",
+ ["Bazooka Training"] = "火箭筒训练",
+ ["Best laps per team: "] = "每一队最佳速度:",
+ ["Bloody Rookies"] = "雉儿飞", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+-- ["Boom!"] =
+ ["by mikade"] = "mikade撰写", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+ ["CAPTURE THE FLAG"] = "抢旗子",
+ ["Codename: Teamwork"] = "代号:团队行动",
+ ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "恭喜!你在规定时限内清零全部目标。", --Bazooka, Shotgun, SniperRifle
+ ["Congratulations!"] = "恭喜",
+ ["Control pillars to score points."] = "控制支柱得分",
+ ["CONTROL v0.3"] = "控制 v0.3",
+ ["CONTROL"] = "控制",
+-- ["CTF_BLIZZARD"] =
+ ["CUSTOM BUILD 0.2"] = "自定义建设 0.2",
+ ["Cybernetic Empire"] = "自动化帝国",
+ ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "新人,别让我看到",
+ ["DAMMIT, ROOKIE!"] = "新人",
+ ["Dangerous Ducklings"] = "危险的小鸭子",
+ ["Eliminate all enemies"] = "解决全部对手",
+ ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "时间限制内清除全部目标。弹药无限。", --Bazooka, Shotgun, SniperRifle
+ ["Eliminate Poison before the time runs out"] = "时间限制内清除毒素。",
+ ["Eliminate the Blue Team"] = "解决蓝色队伍",
+ ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- 打倒 3378 |-反抗者必须存活",
+ ["Enjoy the swim..."] = "游水愉快",
+ ["Fastest lap: "] = "最快记录:",
+ ["Feeble Resistance"] = "反抗者",
+ ["Flag captured!"] = "夺旗得分!",
+ ["Flag respawned!"] = "旗帜重生!",
+ ["Flag returned!"] = "旗帜归还!",
+ ["Flags will be placed where each team ends their turn."] = "旗帜会被放置在每个队伍回合结束时所在的地方。",
+ ["GAME OVER!"] = "结束了!",
+ ["Game Started!"] = "开始",
+ ["Get on over there and take him out!"] = "上去把它拉下来!",
+-- ["Goal:"] =
+ ["GO! GO! GO!"] = "上!",
+ ["Good birdy......"] = "乖鸟儿",
+ ["Good luck out there!"] = "祝好运",
+ ["Hedgewars-Basketball"] = "刺猬大作战-篮球计划",
+ ["Hedgewars-Knockball"] = "刺猬大作战-击球计划",
+ ["Hmmm..."] = "呃...",
+ ["Hooray!"] = "呼!",
+ ["Hunter"] = "猎人", --Bazooka, Shotgun, SniperRifle
+ ["Instructor"] = "引导员", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+ ["- Jumping is disabled"] = "- 跳跃禁止",
+ ["Listen up, maggot!!"] = "听好,小子!!",
+-- ["|- Mines Time:"] =
+ ["MISSION FAILED"] = "任务失败", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESSFUL"] = "任务成功", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["NEW fastest lap: "] = "新记录",
+ ["NO JUMPING"] = "不准跳",
+ ["Not So Friendly Match"] = "非友善对抗", -- Basketball, Knockball
+ ["Oh no! Just try again!"] = "不!重新再来。", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["Oh no! Time's up! Just try again."] = "不!到点了,需要重新来。", --Bazooka, Shotgun, SniperRifle
+ ["Operation Diver"] = "水下行动",
+-- ["Opposing Team: "] =
+ ["Opposing Team:"] = "对方队伍",
+ ["Pathetic Hog #1"] = "可怜刺猬一号",
+ ["Pathetic Hog #2"] = "可怜刺猬二号",
+-- ["Pathetic Hog #%d"] =
+-- ["points"] =
+-- ["Poison"] =
+ ["Random Weapons"] = "随机武器",
+-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] =
+ ["- Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "-带回敌人旗帜得分| -第一支3次夺旗队伍获胜| - 只有旗帜在己方基地才算| -带旗刺猬消逝则旗帜落下| -落下的旗帜使用方式不变| -损失的刺猬瞬间还原",
+ ["RULES OF THE GAME [Press ESC to view]"] = "游戏规则 [按下 ESC键 查看]",
+-- ["sec"] =
+ ["See ya!"] = "再见!",
+ ["Shotgun Team"] = "霰弹枪队",
+ ["Shotgun Training"] = "霰弹枪训练",
+ ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s 出局, %d 惩罚分数!", -- Basketball, Knockball
+ ["%s is out and Team %d|scored a point!| |Score:"] = "%s 出局, %d 得分!", -- Basketball, Knockball
+ ["Sniper Training"] = "狙击训练",
+ ["Sniperz"] = "狙击手",
+ ["Spooky Tree"] = "怪树",
+ ["Team %d: "] = "队伍 %d",
+ ["Team Scores:"] = "队伍得分:",
+-- ["That was pointless."] =
+ ["The enemy is hiding out on yonder ducky!"] = "敌人藏在那边!",
+-- ["The flag will respawn next round."] =
+ ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "现阶段装备混用,只能最大|程度地用好到手的玩具。",
+ ["Toxic Team"] = "腐坏的队伍", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["TrophyRace"] = "竞速",
+ ["T_T"] = "T_T",
+ ["Unit 3378"] = "3378",
+ ["Use your rope to get from start to finish as fast as you can!"] = "抓起绳子飞向目的地,越快越好。",
+ ["Victory for the "] = "胜利属于",
+ ["You have SCORED!!"] = "得分",
+ ["You've failed. Try again."] = "失败了。再尝试吧。",
+ ["You've reached the goal!| |Time: "] = "目标达成| |时间:",
+ ["'Zooka Team"] = "火箭队",
+ [":("] = "囧",
+ }
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Locale/zh_CN.txt
--- a/share/hedgewars/Data/Locale/zh_CN.txt Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Locale/zh_CN.txt Mon Jan 17 23:22:52 2011 +0100
@@ -2,10 +2,10 @@
00:00=手榴弹
00:01=集束炸弹
-00:02=反坦克火箭筒
+00:02=火箭筒
00:03=归巢的蜜蜂
00:04=霰弹枪
-00:05=鹤嘴锤
+00:05=大锤
00:06=跳过回合
00:07=绳索
00:08=地雷
@@ -14,11 +14,11 @@
00:11=球棒
00:12=升龙拳
00:13=秒
-00:14=空降
+00:14=降落伞
00:15=空袭
00:16=地雷空袭
00:17=喷灯
-00:18=建设工具
+00:18=钢梁
00:19=传送
00:20=切换刺猬
00:21=迫击炮
@@ -30,19 +30,19 @@
00:27=地狱礼花
00:28=钻头火箭
00:29=弹珠炮
-00:30=汽油弹
+00:30=汽油弹空袭
00:31=遥控轰炸机
00:32=低重力
-00:33=额外伤害
+00:33=增强伤害
00:34=无敌
00:35=加时
00:36=激光瞄准
00:37=吸血
00:38=狙击枪
-00:39=飞盘
+00:39=UFO
00:40=燃烧瓶
00:41=鸟儿
-00:42=移动传送器
+00:42=传送器
00:43=飞来的钢琴
00:44=毒奶酪
00:45=正弦能量炮
@@ -51,6 +51,7 @@
00:48=大锤
00:49=复苏
00:50=电钻空袭
+00:51=土块
01:00=开战!
01:01=平局
@@ -473,7 +474,7 @@
;02:06=Shiny new toys!
02:06=新玩具!
;02:06=A mysterious box!
-02:06=谜的箱子...
+02:06=神秘的箱子!
; New utility crate
; 02:07=Tooltime!
@@ -700,7 +701,7 @@
03:39=移动工具
03:40=燃烧弹
;03:41=Huge fan of Squawks
-03:41=噪音
+03:41=粉丝的呼喊
;03:42=I'm making a note here...
03:42=我将在此记录...
; the misspelled "Beethoven" is intentional (-> to beat)
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/Basketball/preview.png
Binary file share/hedgewars/Data/Maps/Basketball/preview.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/Blizzard/map.png
Binary file share/hedgewars/Data/Maps/Blizzard/map.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/Blizzard/map.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Blizzard/map.svg Mon Jan 17 23:22:52 2011 +0100
@@ -0,0 +1,1067 @@
+
+
+
+
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/Blizzard/mask.png
Binary file share/hedgewars/Data/Maps/Blizzard/mask.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/Blizzard/preview@2x.png
Binary file share/hedgewars/Data/Maps/Blizzard/preview@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/CTF_Blizzard/CMakeLists.txt
--- a/share/hedgewars/Data/Maps/CTF_Blizzard/CMakeLists.txt Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Maps/CTF_Blizzard/CMakeLists.txt Mon Jan 17 23:22:52 2011 +0100
@@ -1,7 +1,5 @@
install(FILES
- map.png
map.cfg
map.lua
- mask.png
preview.png
DESTINATION ${SHAREPATH}Data/Maps/CTF_Blizzard)
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/CTF_Blizzard/map.lua
--- a/share/hedgewars/Data/Maps/CTF_Blizzard/map.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Maps/CTF_Blizzard/map.lua Mon Jan 17 23:22:52 2011 +0100
@@ -1,754 +1,763 @@
---------------------------------
--- CTF_BLIZZARD 0.4
---------------------------------
-
----------
--- 0.2
----------
-
--- disabled super weapons
-
--- theme modifications
-
--- improved hog placement system: teams can now be put
--- in any order and be of any size
-
----------
--- 0.3
----------
-
--- In this version:
-
--- changed starting weapons
--- changed crate drop contents and rate of drops
-
--- completely removed super weapons and super weapon scripts
-
--- removed custom respawning
--- removed set respawn points
-
--- added AIRespawn-esque respawning
--- added simple left vs right respawn points
-
--- added non-lethal poison to flag carriers as an indicator
-
--- improved flag mechanics and player-flag feedback
--- flag now instantly respawns if you kill enemy hog and return it,
--- or if the flag falls in water, _BUT_ not if it is blown up
-
----------
--- 0.4
----------
-
--- tweaked crate drop rates and crate contents
--- improved the teleporters, they should now be able to handle rope... hopefully
--- updated SetEffect calls to be in line with 0.9.15 definitions
--- added visual gears when hogs respawn
--- added visual gears when hogs teleport
--- added visual gear to track flag and flag carriers
--- removed poisoning of flag carriers
--- removed health adjustments for flag carriers due to aforementioned poisons
-
----------
--- 0.5
----------
-
--- added translation support, hopefully
--- added ctf rules
--- added effects to the teleporters
--- added aura round spawning area
--- changed the aura around the flag carrier / flag to an aura and added some support for this
--- changed things so the seed is no longer always the same...
-
-
-loadfile(GetDataPath() .. "Scripts/Locale.lua")()
-
----------------------------------------------------------------
-----------lots of bad variables and things
-----------because someone is too lazy
-----------to read about tables properly
------------------- "Oh well, they probably have the memory"
-
-local actionReset = 0 -- used in CheckTeleporters()
-
-local roundsCounter = 0 -- used to determine when to spawn more crates
- -- currently every 6 TURNS, should this work
- -- on ROUNDS instead?
-local effectTimer = 0
-
---------------------------
--- 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 teamSize = {} -- store how many hogs per team
-local teamIndex = {} -- at what point in the hhs{} does each team begin
-
--------------------
--- flag variables
--------------------
-
-local fGear = {} -- pointer to the case gears that represent the flag
-local fThief = {} -- pointer to the hogs who stole the flags
-local fIsMissing = {} -- have the flags been destroyed or captured
-local fNeedsRespawn = {} -- do the flags need to be respawned
-local fCaptures = {} -- the team "scores" how many captures
-local fSpawnX = {} -- spawn X for flags
-local fSpawnY = {} -- spawn Y for flags
-
-local fThiefX = {}
-local fThiefY = {}
-local FTTC = 0 -- flag thief tracker counter
---local fThiefsHealed = false
-
-local fSpawnC = {}
-local fCirc = {} -- flag/carrier marker circles
-local fCol = {} -- colour of the clans
-
-local vCircX = {}
-local vCircY = {}
-local vCircMinA = {}
-local vCircMaxA = {}
-local vCircType = {}
-local vCircPulse = {}
-local vCircFuckAll = {}
-local vCircRadius = {}
-local vCircWidth = {}
-local vCircCol = {}
-
-
---------------------------------
---zone and teleporter variables
---------------------------------
-
-local redTel
-local orangeTel
---local areaArr = {} -- no longer used
-
-local zXMin = {}
-local zWidth = {}
-local zYMin = {}
-local zHeight = {}
-local zOccupied = {}
-local zCount = 0
-
-------------------------
--- zone methods
-------------------------
--- see on gameTick also
-
-function ManageTeleporterEffects()
- effectTimer = effectTimer + 1
- if effectTimer > 50 then -- 100
- effectTimer = 0
-
- for i = 0,1 do
- eX = 10 + zXMin[i] + GetRandom(zWidth[i]-10)
- eY = 50 + zYMin[i] + GetRandom(zHeight[i]-110)
-
- -- steam and smoke and DUST look good, smokering looks trippy
- -- smoketrace and eviltrace are not effected by wind?
- -- chunk is a LR falling gear
- tempE = AddVisualGear(eX, eY, vgtDust, 0, false)
- g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE)
- SetVisualGearValues(tempE, eX, eY, g3, g4, g5, g6, g7, g8, g9, fCol[i])
- end
- end
-end
-
-function CreateZone(xMin, yMin, width, height)
-
-
- zXMin[zCount] = xMin
- zYMin[zCount] = yMin
- zWidth[zCount] = width
- zHeight[zCount] = height
- zOccupied[zCount] = false
- zCount = zCount + 1
-
- return (zCount-1)
-
-end
-
-function GearIsInZone(gear, zI)
-
- if (GetX(gear) > zXMin[zI]) and (GetX(gear) < (zXMin[zI]+zWidth[zI])) and (GetY(gear) > zYMin[zI]) and (GetY(gear) < (zYMin[zI]+zHeight[zI])) then
- zOccupied[zI] = true
- else
- zOccupied[zI] = false
- end
-
- return zOccupied[zI]
-
-end
-
-------------------------
---flag methods
-------------------------
-
-function CheckScore(teamID)
-
- if teamID == 0 then
- alt = 1
- winner = "Red"
-
- elseif teamID == 1 then
- alt = 0
- winner = "Blue"
- end
-
- if fCaptures[teamID] == 2 then
- for i = 0, (numhhs-1) do
- if GetHogClan(hhs[i]) == alt then
- SetEffect(hhs[i], heResurrectable, false)
- SetHealth(hhs[i],0)
- end
- end
- --ShowMission("GAME OVER!", "Victory for the " .. winner .. " Team!", "Hooray!", 0, 0)
- ShowMission(loc("GAME OVER!"), loc("Victory for the ") .. GetHogTeamName(CurrentHedgehog), loc("Hooray!"), 0, 0)
- end
-
-end
-
-function HandleRespawns()
-
- for i = 0, 1 do
-
- if fNeedsRespawn[i] == true then
- fGear[i] = SpawnAmmoCrate(fSpawnX[i],fSpawnY[i],amSkip)
- --fGear[i] = SpawnHealthCrate(fSpawnX[i],fSpawnY[i])
- fNeedsRespawn[i] = false
- fIsMissing[i] = false -- new, this should solve problems of a respawned flag being "returned" when a player tries to score
- AddCaption(loc("Flag respawned!"))
- end
-
- end
-
-end
-
-function FlagDeleted(gear)
-
- if (gear == fGear[0]) then
- wtf = 0
- bbq = 1
- elseif (gear == fGear[1]) then
- wtf = 1
- bbq = 0
- end
-
- --ShowMission("OH HAI!", "FlagDeleted was called", "Oh noes!", -amBazooka, 0)
-
- if CurrentHedgehog ~= nil then
-
- --ShowMission("GUESS WAT?", "I'm not nil", "Oh noes!", -amBazooka, 0)
- --if the player picks up the flag
- if CheckDistance(CurrentHedgehog, fGear[wtf]) < 1600 then
-
- fGear[wtf] = nil -- the flag has now disappeared and we shouldnt be pointing to it
-
- -- player has successfully captured the enemy flag
- if (GetHogClan(CurrentHedgehog) == wtf) and (CurrentHedgehog == fThief[bbq]) and (fIsMissing[wtf] == false) then
- fIsMissing[wtf] = false
- fNeedsRespawn[wtf] = true
- fIsMissing[bbq] = false
- fNeedsRespawn[bbq] = true
- fCaptures[wtf] = fCaptures[wtf] +1 --fCaptures[wtf]
-
- --ShowMission(loc("You have SCORED!!"), "Red Team: " .. fCaptures[0], "Blue Team: " .. fCaptures[1], -amBazooka, 0)
- ShowMission(loc("You have SCORED!!"), GetHogTeamName(CurrentHedgehog) .. ": " .. fCaptures[wtf], loc("Opposing Team: ") .. fCaptures[bbq], 0, 0)
-
- PlaySound(sndVictory)
- --SetEffect(fThief[bbq], hePoisoned, false)
- fThief[bbq] = nil -- player no longer has the enemy flag
- CheckScore(wtf)
-
- --if the player is returning the flag
- elseif GetHogClan(CurrentHedgehog) == wtf then
-
- fNeedsRespawn[wtf] = true
-
- -- NEW ADDIITON, does this work? Should make it possible to return your flag and then score in the same turn
- if fIsMissing[wtf] == true then
- HandleRespawns() -- this will set fIsMissing[wtf] to false :)
- AddCaption(loc("Flag returned!"))
- elseif fIsMissing[wtf] == false then
- AddCaption(loc("That was pointless.") .. loc("The flag will respawn next round."))
- end
-
- --fIsMissing[wtf] = false
- --ShowMission("Flag returned!", "Hooray", "", -amBazooka, 0)
-
- --if the player is taking the enemy flag
- elseif GetHogClan(CurrentHedgehog) == bbq then
- fIsMissing[wtf] = true
- for i = 0,numhhs-1 do
- if CurrentHedgehog == hhs[i] then
- fThief[wtf] = hhs[i]
- --SetEffect(fThief[wtf], hePoisoned, true)
- end
- end
-
- AddCaption(loc("Flag captured!"))
-
- else --below line doesnt usually get called
- AddCaption("Hmm... that wasn't supposed to happen...")
-
- end
-
- -- if flag has been destroyed, probably
- else
-
- if GetY(fGear[wtf]) > 2025 then
- fGear[wtf] = nil
- fIsMissing[wtf] = true
- fNeedsRespawn[wtf] = true
- HandleRespawns()
- else
- fGear[wtf] = nil
- fIsMissing[wtf] = true
- fNeedsRespawn[wtf] = true
- AddCaption(loc("Boom!") .. " " .. loc("The flag will respawn next round."))
- end
-
- end
-
- -- if flag has been destroyed deep underwater and player is now nil
- -- probably only gets called if the flag thief drowns himself
- -- otherwise the above one will work fine
- else
- --ShowMission("NIL PLAYER!", "Oh snap", "Oh noes!", -amBazooka, 0)
- fGear[wtf] = nil
- fIsMissing[wtf] = true
- fNeedsRespawn[wtf] = true
- AddCaption(loc("The flag will respawn next round."))
- end
-
-end
-
-function FlagThiefDead(gear)
-
- if (gear == fThief[0]) then
- wtf = 0
- bbq = 1
- elseif (gear == fThief[1]) then
- wtf = 1
- bbq = 0
- end
-
- if fThief[wtf] ~= nil then
- --SetEffect(fThief[wtf], hePoisoned, false)
- fGear[wtf] = SpawnAmmoCrate(fThiefX[wtf],fThiefY[wtf]-50,amSkip)
- AddVisualGear(fThiefX[wtf], fThiefY[wtf], vgtBigExplosion, 0, false)
- fThief[wtf] = nil
- end
-
-end
-
-function HandleCircles()
-
- for i = 0, 1 do
- if fIsMissing[i] == false then -- draw a circle at the flag's spawning place
- --SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], 20, 200, 0, 0, 100, 33, 2, fCol[i])
- SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
- elseif (fIsMissing[i] == true) and (fNeedsRespawn[i] == false) then
- if fThief[i] ~= nil then -- draw circle round flag carrier
- --SetVisualGearValues(fCirc[i], fThiefX[i], fThiefY[i], 20, 200, 0, 0, 100, 33, 2, fCol[i])
- SetVisualGearValues(fCirc[i], fThiefX[i], fThiefY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
- elseif fThief[i] == nil then -- draw cirle round dropped flag
- --SetVisualGearValues(fCirc[i], GetX(fGear[i]), GetY(fGear[i]), 20, 200, 0, 0, 100, 33, 2, fCol[i])
- SetVisualGearValues(fCirc[i], GetX(fGear[i]),GetY(fGear[i]), vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
- end
- end
-
- if fNeedsRespawn[i] == true then -- if the flag has been destroyed, no need for a circle
- SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], 20, 200, 0, 0, 100, 0, 0, fCol[i])
- end
- end
-
-end
-
-------------------------
--- general methods
-------------------------
-
-function CheckDistance(gear1, gear2)
-
- g1X, g1Y = GetGearPosition(gear1)
- g2X, g2Y = GetGearPosition(gear2)
-
- g1X = g1X - g2X
- g1Y = g1Y - g2Y
- z = (g1X*g1X) + (g1Y*g1Y)
-
- --dist = math.sqrt(z)
-
- dist = z
-
- return dist
-
-end
-
-function CheckTeleporters()
-
- teleportActive = false
-
- if (GearIsInZone(CurrentHedgehog, redTel) == true) and (GetHogClan(CurrentHedgehog) == 0) then
- teleportActive = true
- destinationX = 1402
- destinationY = 321
- elseif (GearIsInZone(CurrentHedgehog, orangeTel) == true) and (GetHogClan(CurrentHedgehog) == 1) then
- teleportActive = true
- destinationX = 2692
- destinationY = 321
- end
-
- if teleportActive == true then
- if actionReset == 0 then
- SetGearMessage(CurrentHedgehog, gmAttack)
- --AddCaption(actionReset .. ";" .. "attack")
- elseif actionReset == 10 then
- SetGearMessage(CurrentHedgehog, 0)
- --AddCaption(actionReset .. ";" .. "reset")
- elseif actionReset == 20 then
- AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtBigExplosion, 0, false)
- SetGearPosition(CurrentHedgehog,destinationX,destinationY)
- AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtBigExplosion, 0, false)
- --AddCaption(actionReset .. ";" .. "teleport")
- end
-
- actionReset = actionReset + 1
- if actionReset >= 30 then
- actionReset = 0
- end
-
- end
-
-end
-
-function RebuildTeamInfo()
-
-
- -- make a list of individual team names
- for i = 0, 5 do
- teamNameArr[i] = i
- teamSize[i] = 0
- teamIndex[i] = 0
- 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
- 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
-
-function HandleCrateDrops()
-
- roundsCounter = roundsCounter +1
-
- if roundsCounter == 5 then
-
- roundsCounter = 0
-
- r = GetRandom(8)
- if r == 0 then
- SpawnUtilityCrate(0,0,amSwitch)
- elseif r == 1 then
- SpawnUtilityCrate(0,0,amTeleport)
- elseif r == 2 then
- SpawnUtilityCrate(0,0,amJetpack)
- elseif r == 3 then
- SpawnUtilityCrate(0,0,amExtraTime)
- elseif r == 4 then
- SpawnUtilityCrate(0,0,amGirder)
- elseif r == 5 then
- SpawnAmmoCrate(0,0,amDynamite)
- elseif r == 6 then
- SpawnAmmoCrate(0,0,amFlamethrower)
- elseif r == 7 then
- SpawnUtilityCrate(0,0,amPortalGun)
- end
-
- end
-
-end
-
-------------------------
--- game methods
-------------------------
-
-function onGameInit()
-
- -- Things we don't modify here will use their default values.
- GameFlags = gfDivideTeams -- Game settings and rules
- TurnTime = 30000 -- (was 30) The time the player has to move each round (in ms)
- CaseFreq = 0 -- The frequency of crate drops
- MinesNum = 0 -- The number of mines being placed
- MinesTime = 2000
- Explosives = 0 -- The number of explosives being placed
- Delay = 10 -- The delay between each round
- SuddenDeathTurns = 99 -- suddendeath is off, effectively
- Map = "Blizzard" -- The map to be played
- Theme = "Snow" -- The theme to be used "Nature"
-
-end
-
-
-function onGameStart()
-
- --ShowMission(loc(caption), loc(subcaption), loc(goal), 0, 0)
- ShowMission(loc("CTF_BLIZZARD") .. " 0.5", loc("by mikade"), loc(" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"), 0, 0)
-
-
- -- initialize teleporters
- redTel = CreateZone(342,1316,42,449) -- red teleporter
- orangeTel = CreateZone(3719,1330,45,449) -- orange teleporter
-
-
- --new improved placement schematics aw yeah
- RebuildTeamInfo()
- --ShowMission("Team Info Rebuilt", "Here you go:", "TeamCount: " .. TeamsCount .. "|" .. teamNameArr[0] .. ": " .. teamSize[0] .. " Hogs|" .. teamNameArr[1] .. ": " .. teamSize[1] .. " Hogs|" .. teamNameArr[2] .. ": " .. teamSize[2] .. " Hogs|", 0, 0)
- team1Placed = 0
- team2Placed = 0
- for i = 0, (TeamsCount-1) do
- for g = teamIndex[i], (teamIndex[i]+teamSize[i]-1) do
- if GetHogClan(hhs[g]) == 0 then
- SetGearPosition(hhs[g],1403+ ((team1Placed+1)*50),1570)
- team1Placed = team1Placed +1
- if team1Placed > 6 then
- team1Placed = 0
- end
- elseif GetHogClan(hhs[g]) == 1 then
- SetGearPosition(hhs[g],2230+ ((team2Placed+1)*50),1570)
- team2Placed = team2Placed +1
- if team2Placed > 6 then
- team2Placed = 0
- end
- end
- end
- end
-
-
-
- --spawn starting ufos and or super weapons
- SpawnAmmoCrate(2048,1858,amJetpack)
- --SpawnUtilityCrate(2048,1858,amExtraTime)
-
- --set flag spawn points and spawn the flags
- fSpawnX[0] = 957
- fSpawnY[0] = 1747
- fSpawnX[1] = 3123
- fSpawnY[1] = 1747
-
- for i = 0, 1 do
- fGear[i] = SpawnAmmoCrate(fSpawnX[i],fSpawnY[i],amSkip)
- fCirc[i] = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
- fCol[i] = GetClanColor(i)
-
- fSpawnC[i] = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
- SetVisualGearValues(fSpawnC[i], fSpawnX[i],fSpawnY[i], 10, 200, 1, 10, 0, 300, 5, fCol[i])
-
-
- fIsMissing[i] = false
- fNeedsRespawn[i] = false
- fCaptures[i] = 0
-
- vCircMinA[i] = 20
- vCircMaxA[i] = 255
- vCircType[i] = 1
- vCircPulse[i] = 10
- vCircFuckAll[i] = 0
- vCircRadius[i] = 150
- vCircWidth[i] = 5
- vCircCol[i] = fCol[i]
-
- SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
-
- end
-
-end
-
-
-function onNewTurn()
-
- if lastTeam ~= GetHogTeamName(CurrentHedgehog) then
- lastTeam = GetHogTeamName(CurrentHedgehog)
- end
-
- for i = 0, 1 do
- if fThief[i] ~= nil then
- --adjust = 5 + GetHealth(fThief[i])
- --SetHealth(fThief[i], adjust)
- --AddCaption('Helped out the flag poisoned flag thiefs')
- end
- end
-
- --AddCaption("Handling respawns")
- HandleRespawns()
- HandleCrateDrops()
-
- --myC = AddVisualGear(GetX(CurrentHedgehog),GetY(CurrentHedgehog),vgtCircle,0,true)
- --SetVisualGearValues(myC, GetX(CurrentHedgehog),GetY(CurrentHedgehog), 20, 200, 0, 0, 100, 50, 3, GetClanColor(GetHogClan(CurrentHedgehog)))
-
-end
-
-function onGameTick()
-
- -- onRessurect calls AFTER you have resurrected,
- -- so keeping track of x,y a few milliseconds before
- -- is useful
- --FTTC = FTTC + 1
- --if FTTC == 100 then
- -- FTTC = 0
- for i = 0,1 do
- if fThief[i] ~= nil then
- fThiefX[i] = GetX(fThief[i])
- fThiefY[i] = GetY(fThief[i])
- end
- end
- --end
-
- -- things we wanna check often
- if (CurrentHedgehog ~= nil) then
- --AddCaption(GetX(CurrentHedgehog) .. "; " .. GetY(CurrentHedgehog))
- --AddCaption("Checking Teleporters")
- CheckTeleporters()
- end
-
- HandleCircles()
- ManageTeleporterEffects()
-
-end
-
-
-function onAmmoStoreInit()
-
- SetAmmo(amDrill,9,0,0,0)
- SetAmmo(amMortar,9,0,0,0)
-
- SetAmmo(amGrenade,9,0,0,0)
- SetAmmo(amClusterBomb,4,0,0,0)
-
- --SetAmmo(amDEagle, 4, 0, 0, 0)
- SetAmmo(amShotgun, 9, 0, 0, 0)
- SetAmmo(amFlamethrower, 1, 0, 0, 1)
-
- SetAmmo(amFirePunch, 9, 0, 0, 0)
- SetAmmo(amBaseballBat, 2, 0, 0, 0)
-
- SetAmmo(amDynamite,2,0,0,1)
- SetAmmo(amSMine,4,0,0,0)
-
- SetAmmo(amBlowTorch, 9, 0, 0, 0)
- SetAmmo(amPickHammer, 9, 0, 0, 0)
- SetAmmo(amGirder, 2, 0, 0, 2)
- SetAmmo(amPortalGun, 2, 0, 0, 2)
-
- SetAmmo(amParachute, 9, 0, 0, 0)
- SetAmmo(amRope, 9, 0, 0, 0)
- SetAmmo(amTeleport, 1, 0, 0, 1)
- SetAmmo(amJetpack, 1, 0, 0, 1)
-
- SetAmmo(amSwitch, 2, 0, 0, 1)
- SetAmmo(amExtraTime,1,0,0,1)
- SetAmmo(amLowGravity,1,0,0,0)
- SetAmmo(amSkip, 9, 0, 0, 0)
-
-end
-
-
-function onGearResurrect(gear)
-
- --AddCaption("A gear has been resurrected!")
-
- -- mark the flag thief as dead if he needed a respawn
- for i = 0,1 do
- if gear == fThief[i] then
- FlagThiefDead(gear)
- end
- end
-
- -- place hogs belonging to each clan either left or right side of map
- if GetHogClan(gear) == 0 then
- FindPlace(gear, false, 0, 2048)
- elseif GetHogClan(gear) == 1 then
- FindPlace(gear, false, 2048, LAND_WIDTH)
- end
-
- AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false)
-
-end
-
-function onGearDamage(gear, damage)
-
- -- >_< damn, occurs too fast, before the hog has finished moving / updated his health
- --if GetGearType(gear) == gtHedgehog then
- -- if damage > GetHealth(gear) then
- -- AddVisualGear(GetX(gear), GetY(gear), vgtExplosion, 0, false)
- -- end
- --end
-
-end
-
-function onGearAdd(gear)
-
- if GetGearType(gear) == gtHedgehog then
-
- hhs[numhhs] = gear
- numhhs = numhhs + 1
- SetEffect(gear, heResurrectable, true)
-
- end
-
-end
-
-function onGearDelete(gear)
-
- if (gear == fGear[0]) or (gear == fGear[1]) then
- FlagDeleted(gear)
- end
-
-end
+--------------------------------
+-- CTF_BLIZZARD 0.6
+--------------------------------
+
+---------
+-- 0.2
+---------
+
+-- disabled super weapons
+
+-- theme modifications
+
+-- improved hog placement system: teams can now be put
+-- in any order and be of any size
+
+---------
+-- 0.3
+---------
+
+-- In this version:
+
+-- changed starting weapons
+-- changed crate drop contents and rate of drops
+
+-- completely removed super weapons and super weapon scripts
+
+-- removed custom respawning
+-- removed set respawn points
+
+-- added AIRespawn-esque respawning
+-- added simple left vs right respawn points
+
+-- added non-lethal poison to flag carriers as an indicator
+
+-- improved flag mechanics and player-flag feedback
+-- flag now instantly respawns if you kill enemy hog and return it,
+-- or if the flag falls in water, _BUT_ not if it is blown up
+
+---------
+-- 0.4
+---------
+
+-- tweaked crate drop rates and crate contents
+-- improved the teleporters, they should now be able to handle rope... hopefully
+-- updated SetEffect calls to be in line with 0.9.15 definitions
+-- added visual gears when hogs respawn
+-- added visual gears when hogs teleport
+-- added visual gear to track flag and flag carriers
+-- removed poisoning of flag carriers
+-- removed health adjustments for flag carriers due to aforementioned poisons
+
+---------
+-- 0.5
+---------
+
+-- added translation support, hopefully
+-- added ctf rules
+-- added effects to the teleporters
+-- added aura round spawning area
+-- changed the aura around the flag carrier / flag to an aura and added some support for this
+-- changed things so the seed is no longer always the same...
+
+---------
+-- 0.6
+---------
+
+-- removed branding and version number
+-- removed teleport from starting weapons
+-- increased captures to 3
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+---------------------------------------------------------------
+----------lots of bad variables and things
+----------because someone is too lazy
+----------to read about tables properly
+------------------ "Oh well, they probably have the memory"
+
+local actionReset = 0 -- used in CheckTeleporters()
+
+local roundsCounter = 0 -- used to determine when to spawn more crates
+ -- currently every 6 TURNS, should this work
+ -- on ROUNDS instead?
+local effectTimer = 0
+
+--------------------------
+-- 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 teamSize = {} -- store how many hogs per team
+local teamIndex = {} -- at what point in the hhs{} does each team begin
+
+-------------------
+-- flag variables
+-------------------
+
+local fGear = {} -- pointer to the case gears that represent the flag
+local fThief = {} -- pointer to the hogs who stole the flags
+local fIsMissing = {} -- have the flags been destroyed or captured
+local fNeedsRespawn = {} -- do the flags need to be respawned
+local fCaptures = {} -- the team "scores" how many captures
+local fSpawnX = {} -- spawn X for flags
+local fSpawnY = {} -- spawn Y for flags
+
+local fThiefX = {}
+local fThiefY = {}
+local FTTC = 0 -- flag thief tracker counter
+--local fThiefsHealed = false
+
+local fSpawnC = {}
+local fCirc = {} -- flag/carrier marker circles
+local fCol = {} -- colour of the clans
+
+local vCircX = {}
+local vCircY = {}
+local vCircMinA = {}
+local vCircMaxA = {}
+local vCircType = {}
+local vCircPulse = {}
+local vCircFuckAll = {}
+local vCircRadius = {}
+local vCircWidth = {}
+local vCircCol = {}
+
+
+--------------------------------
+--zone and teleporter variables
+--------------------------------
+
+local redTel
+local orangeTel
+--local areaArr = {} -- no longer used
+
+local zXMin = {}
+local zWidth = {}
+local zYMin = {}
+local zHeight = {}
+local zOccupied = {}
+local zCount = 0
+
+------------------------
+-- zone methods
+------------------------
+-- see on gameTick also
+
+function ManageTeleporterEffects()
+ effectTimer = effectTimer + 1
+ if effectTimer > 50 then -- 100
+ effectTimer = 0
+
+ for i = 0,1 do
+ eX = 10 + zXMin[i] + GetRandom(zWidth[i]-10)
+ eY = 50 + zYMin[i] + GetRandom(zHeight[i]-110)
+
+ -- steam and smoke and DUST look good, smokering looks trippy
+ -- smoketrace and eviltrace are not effected by wind?
+ -- chunk is a LR falling gear
+ tempE = AddVisualGear(eX, eY, vgtDust, 0, false)
+ if tempE ~= 0 then
+ g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE)
+ SetVisualGearValues(tempE, eX, eY, g3, g4, g5, g6, g7, g8, g9, fCol[i])
+ end
+ end
+ end
+end
+
+function CreateZone(xMin, yMin, width, height)
+
+
+ zXMin[zCount] = xMin
+ zYMin[zCount] = yMin
+ zWidth[zCount] = width
+ zHeight[zCount] = height
+ zOccupied[zCount] = false
+ zCount = zCount + 1
+
+ return (zCount-1)
+
+end
+
+function GearIsInZone(gear, zI)
+
+ if (GetX(gear) > zXMin[zI]) and (GetX(gear) < (zXMin[zI]+zWidth[zI])) and (GetY(gear) > zYMin[zI]) and (GetY(gear) < (zYMin[zI]+zHeight[zI])) then
+ zOccupied[zI] = true
+ else
+ zOccupied[zI] = false
+ end
+
+ return zOccupied[zI]
+
+end
+
+------------------------
+--flag methods
+------------------------
+
+function CheckScore(teamID)
+
+ if teamID == 0 then
+ alt = 1
+ winner = "Red"
+
+ elseif teamID == 1 then
+ alt = 0
+ winner = "Blue"
+ end
+
+ if fCaptures[teamID] == 3 then
+ for i = 0, (numhhs-1) do
+ if GetHogClan(hhs[i]) == alt then
+ SetEffect(hhs[i], heResurrectable, false)
+ SetHealth(hhs[i],0)
+ end
+ end
+ --ShowMission("GAME OVER!", "Victory for the " .. winner .. " Team!", "Hooray!", 0, 0)
+ ShowMission(loc("GAME OVER!"), loc("Victory for the ") .. GetHogTeamName(CurrentHedgehog), loc("Hooray!"), 0, 0)
+ end
+
+end
+
+function HandleRespawns()
+
+ for i = 0, 1 do
+
+ if fNeedsRespawn[i] == true then
+ fGear[i] = SpawnAmmoCrate(fSpawnX[i],fSpawnY[i],amSkip)
+ --fGear[i] = SpawnHealthCrate(fSpawnX[i],fSpawnY[i])
+ fNeedsRespawn[i] = false
+ fIsMissing[i] = false -- new, this should solve problems of a respawned flag being "returned" when a player tries to score
+ AddCaption(loc("Flag respawned!"))
+ end
+
+ end
+
+end
+
+function FlagDeleted(gear)
+
+ if (gear == fGear[0]) then
+ wtf = 0
+ bbq = 1
+ elseif (gear == fGear[1]) then
+ wtf = 1
+ bbq = 0
+ end
+
+ --ShowMission("OH HAI!", "FlagDeleted was called", "Oh noes!", -amBazooka, 0)
+
+ if CurrentHedgehog ~= nil then
+
+ --ShowMission("GUESS WAT?", "I'm not nil", "Oh noes!", -amBazooka, 0)
+ --if the player picks up the flag
+ if CheckDistance(CurrentHedgehog, fGear[wtf]) < 1600 then
+
+ fGear[wtf] = nil -- the flag has now disappeared and we shouldnt be pointing to it
+
+ -- player has successfully captured the enemy flag
+ if (GetHogClan(CurrentHedgehog) == wtf) and (CurrentHedgehog == fThief[bbq]) and (fIsMissing[wtf] == false) then
+ fIsMissing[wtf] = false
+ fNeedsRespawn[wtf] = true
+ fIsMissing[bbq] = false
+ fNeedsRespawn[bbq] = true
+ fCaptures[wtf] = fCaptures[wtf] +1 --fCaptures[wtf]
+
+ --ShowMission(loc("You have SCORED!!"), "Red Team: " .. fCaptures[0], "Blue Team: " .. fCaptures[1], -amBazooka, 0)
+ ShowMission(loc("You have SCORED!!"), GetHogTeamName(CurrentHedgehog) .. ": " .. fCaptures[wtf], loc("Opposing Team: ") .. fCaptures[bbq], 0, 0)
+
+ PlaySound(sndVictory)
+ --SetEffect(fThief[bbq], hePoisoned, false)
+ fThief[bbq] = nil -- player no longer has the enemy flag
+ CheckScore(wtf)
+
+ --if the player is returning the flag
+ elseif GetHogClan(CurrentHedgehog) == wtf then
+
+ fNeedsRespawn[wtf] = true
+
+ -- NEW ADDIITON, does this work? Should make it possible to return your flag and then score in the same turn
+ if fIsMissing[wtf] == true then
+ HandleRespawns() -- this will set fIsMissing[wtf] to false :)
+ AddCaption(loc("Flag returned!"))
+ elseif fIsMissing[wtf] == false then
+ AddCaption(loc("That was pointless.") .. loc("The flag will respawn next round."))
+ end
+
+ --fIsMissing[wtf] = false
+ --ShowMission("Flag returned!", "Hooray", "", -amBazooka, 0)
+
+ --if the player is taking the enemy flag
+ elseif GetHogClan(CurrentHedgehog) == bbq then
+ fIsMissing[wtf] = true
+ for i = 0,numhhs-1 do
+ if CurrentHedgehog == hhs[i] then
+ fThief[wtf] = hhs[i]
+ --SetEffect(fThief[wtf], hePoisoned, true)
+ end
+ end
+
+ AddCaption(loc("Flag captured!"))
+
+ else --below line doesnt usually get called
+ AddCaption("Hmm... that wasn't supposed to happen...")
+
+ end
+
+ -- if flag has been destroyed, probably
+ else
+
+ if GetY(fGear[wtf]) > 2025 then
+ fGear[wtf] = nil
+ fIsMissing[wtf] = true
+ fNeedsRespawn[wtf] = true
+ HandleRespawns()
+ else
+ fGear[wtf] = nil
+ fIsMissing[wtf] = true
+ fNeedsRespawn[wtf] = true
+ AddCaption(loc("Boom!") .. " " .. loc("The flag will respawn next round."))
+ end
+
+ end
+
+ -- if flag has been destroyed deep underwater and player is now nil
+ -- probably only gets called if the flag thief drowns himself
+ -- otherwise the above one will work fine
+ else
+ --ShowMission("NIL PLAYER!", "Oh snap", "Oh noes!", -amBazooka, 0)
+ fGear[wtf] = nil
+ fIsMissing[wtf] = true
+ fNeedsRespawn[wtf] = true
+ AddCaption(loc("The flag will respawn next round."))
+ end
+
+end
+
+function FlagThiefDead(gear)
+
+ if (gear == fThief[0]) then
+ wtf = 0
+ bbq = 1
+ elseif (gear == fThief[1]) then
+ wtf = 1
+ bbq = 0
+ end
+
+ if fThief[wtf] ~= nil then
+ --SetEffect(fThief[wtf], hePoisoned, false)
+ fGear[wtf] = SpawnAmmoCrate(fThiefX[wtf],fThiefY[wtf]-50,amSkip)
+ AddVisualGear(fThiefX[wtf], fThiefY[wtf], vgtBigExplosion, 0, false)
+ fThief[wtf] = nil
+ end
+
+end
+
+function HandleCircles()
+
+ for i = 0, 1 do
+ if fIsMissing[i] == false then -- draw a circle at the flag's spawning place
+ --SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], 20, 200, 0, 0, 100, 33, 2, fCol[i])
+ SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
+ elseif (fIsMissing[i] == true) and (fNeedsRespawn[i] == false) then
+ if fThief[i] ~= nil then -- draw circle round flag carrier
+ --SetVisualGearValues(fCirc[i], fThiefX[i], fThiefY[i], 20, 200, 0, 0, 100, 33, 2, fCol[i])
+ SetVisualGearValues(fCirc[i], fThiefX[i], fThiefY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
+ elseif fThief[i] == nil then -- draw cirle round dropped flag
+ --SetVisualGearValues(fCirc[i], GetX(fGear[i]), GetY(fGear[i]), 20, 200, 0, 0, 100, 33, 2, fCol[i])
+ SetVisualGearValues(fCirc[i], GetX(fGear[i]),GetY(fGear[i]), vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
+ end
+ end
+
+ if fNeedsRespawn[i] == true then -- if the flag has been destroyed, no need for a circle
+ SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], 20, 200, 0, 0, 100, 0, 0, fCol[i])
+ end
+ end
+
+end
+
+------------------------
+-- general methods
+------------------------
+
+function CheckDistance(gear1, gear2)
+
+ g1X, g1Y = GetGearPosition(gear1)
+ g2X, g2Y = GetGearPosition(gear2)
+
+ g1X = g1X - g2X
+ g1Y = g1Y - g2Y
+ z = (g1X*g1X) + (g1Y*g1Y)
+
+ --dist = math.sqrt(z)
+
+ dist = z
+
+ return dist
+
+end
+
+function CheckTeleporters()
+
+ teleportActive = false
+
+ if (GearIsInZone(CurrentHedgehog, redTel) == true) and (GetHogClan(CurrentHedgehog) == 0) then
+ teleportActive = true
+ destinationX = 1402
+ destinationY = 321
+ elseif (GearIsInZone(CurrentHedgehog, orangeTel) == true) and (GetHogClan(CurrentHedgehog) == 1) then
+ teleportActive = true
+ destinationX = 2692
+ destinationY = 321
+ end
+
+ if teleportActive == true then
+ if actionReset == 0 then
+ SetGearMessage(CurrentHedgehog, gmAttack)
+ --AddCaption(actionReset .. ";" .. "attack")
+ elseif actionReset == 10 then
+ SetGearMessage(CurrentHedgehog, 0)
+ --AddCaption(actionReset .. ";" .. "reset")
+ elseif actionReset == 20 then
+ AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtBigExplosion, 0, false)
+ SetGearPosition(CurrentHedgehog,destinationX,destinationY)
+ AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtBigExplosion, 0, false)
+ --AddCaption(actionReset .. ";" .. "teleport")
+ end
+
+ actionReset = actionReset + 1
+ if actionReset >= 30 then
+ actionReset = 0
+ end
+
+ end
+
+end
+
+function RebuildTeamInfo()
+
+
+ -- make a list of individual team names
+ for i = 0, 5 do
+ teamNameArr[i] = i
+ teamSize[i] = 0
+ teamIndex[i] = 0
+ 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
+ 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
+
+function HandleCrateDrops()
+
+ roundsCounter = roundsCounter +1
+
+ if roundsCounter == 5 then
+
+ roundsCounter = 0
+
+ r = GetRandom(8)
+ if r == 0 then
+ SpawnUtilityCrate(0,0,amSwitch)
+ elseif r == 1 then
+ SpawnUtilityCrate(0,0,amTeleport)
+ elseif r == 2 then
+ SpawnUtilityCrate(0,0,amJetpack)
+ elseif r == 3 then
+ SpawnUtilityCrate(0,0,amExtraTime)
+ elseif r == 4 then
+ SpawnUtilityCrate(0,0,amGirder)
+ elseif r == 5 then
+ SpawnAmmoCrate(0,0,amDynamite)
+ elseif r == 6 then
+ SpawnAmmoCrate(0,0,amFlamethrower)
+ elseif r == 7 then
+ SpawnUtilityCrate(0,0,amPortalGun)
+ end
+
+ end
+
+end
+
+------------------------
+-- game methods
+------------------------
+
+function onGameInit()
+
+ -- Things we don't modify here will use their default values.
+ GameFlags = gfDivideTeams -- Game settings and rules
+ TurnTime = 30000 -- (was 30) The time the player has to move each round (in ms)
+ CaseFreq = 0 -- The frequency of crate drops
+ MinesNum = 0 -- The number of mines being placed
+ MinesTime = 2000
+ Explosives = 0 -- The number of explosives being placed
+ Delay = 10 -- The delay between each round
+ SuddenDeathTurns = 99 -- suddendeath is off, effectively
+ Map = "Blizzard" -- The map to be played
+ Theme = "Snow" -- The theme to be used "Nature"
+
+end
+
+
+function onGameStart()
+
+ --ShowMission(loc(caption), loc(subcaption), loc(goal), 0, 0)
+ ShowMission(loc("CTF_BLIZZARD"), "", loc(" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"), 0, 0)
+
+
+ -- initialize teleporters
+ redTel = CreateZone(342,1316,42,449) -- red teleporter
+ orangeTel = CreateZone(3719,1330,45,449) -- orange teleporter
+
+
+ --new improved placement schematics aw yeah
+ RebuildTeamInfo()
+ --ShowMission("Team Info Rebuilt", "Here you go:", "TeamCount: " .. TeamsCount .. "|" .. teamNameArr[0] .. ": " .. teamSize[0] .. " Hogs|" .. teamNameArr[1] .. ": " .. teamSize[1] .. " Hogs|" .. teamNameArr[2] .. ": " .. teamSize[2] .. " Hogs|", 0, 0)
+ team1Placed = 0
+ team2Placed = 0
+ for i = 0, (TeamsCount-1) do
+ for g = teamIndex[i], (teamIndex[i]+teamSize[i]-1) do
+ if GetHogClan(hhs[g]) == 0 then
+ SetGearPosition(hhs[g],1403+ ((team1Placed+1)*50),1570)
+ team1Placed = team1Placed +1
+ if team1Placed > 6 then
+ team1Placed = 0
+ end
+ elseif GetHogClan(hhs[g]) == 1 then
+ SetGearPosition(hhs[g],2230+ ((team2Placed+1)*50),1570)
+ team2Placed = team2Placed +1
+ if team2Placed > 6 then
+ team2Placed = 0
+ end
+ end
+ end
+ end
+
+
+
+ --spawn starting ufos and or super weapons
+ SpawnAmmoCrate(2048,1858,amJetpack)
+ --SpawnUtilityCrate(2048,1858,amExtraTime)
+
+ --set flag spawn points and spawn the flags
+ fSpawnX[0] = 957
+ fSpawnY[0] = 1747
+ fSpawnX[1] = 3123
+ fSpawnY[1] = 1747
+
+ for i = 0, 1 do
+ fGear[i] = SpawnAmmoCrate(fSpawnX[i],fSpawnY[i],amSkip)
+ fCirc[i] = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
+ fCol[i] = GetClanColor(i)
+
+ fSpawnC[i] = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
+ SetVisualGearValues(fSpawnC[i], fSpawnX[i],fSpawnY[i], 10, 200, 1, 10, 0, 300, 5, fCol[i])
+
+
+ fIsMissing[i] = false
+ fNeedsRespawn[i] = false
+ fCaptures[i] = 0
+
+ vCircMinA[i] = 20
+ vCircMaxA[i] = 255
+ vCircType[i] = 1
+ vCircPulse[i] = 10
+ vCircFuckAll[i] = 0
+ vCircRadius[i] = 150
+ vCircWidth[i] = 5
+ vCircCol[i] = fCol[i]
+
+ SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
+
+ end
+
+end
+
+
+function onNewTurn()
+
+ if lastTeam ~= GetHogTeamName(CurrentHedgehog) then
+ lastTeam = GetHogTeamName(CurrentHedgehog)
+ end
+
+ for i = 0, 1 do
+ if fThief[i] ~= nil then
+ --adjust = 5 + GetHealth(fThief[i])
+ --SetHealth(fThief[i], adjust)
+ --AddCaption('Helped out the flag poisoned flag thiefs')
+ end
+ end
+
+ --AddCaption("Handling respawns")
+ HandleRespawns()
+ HandleCrateDrops()
+
+ --myC = AddVisualGear(GetX(CurrentHedgehog),GetY(CurrentHedgehog),vgtCircle,0,true)
+ --SetVisualGearValues(myC, GetX(CurrentHedgehog),GetY(CurrentHedgehog), 20, 200, 0, 0, 100, 50, 3, GetClanColor(GetHogClan(CurrentHedgehog)))
+
+end
+
+function onGameTick()
+
+ -- onRessurect calls AFTER you have resurrected,
+ -- so keeping track of x,y a few milliseconds before
+ -- is useful
+ --FTTC = FTTC + 1
+ --if FTTC == 100 then
+ -- FTTC = 0
+ for i = 0,1 do
+ if fThief[i] ~= nil then
+ fThiefX[i] = GetX(fThief[i])
+ fThiefY[i] = GetY(fThief[i])
+ end
+ end
+ --end
+
+ -- things we wanna check often
+ if (CurrentHedgehog ~= nil) then
+ --AddCaption(GetX(CurrentHedgehog) .. "; " .. GetY(CurrentHedgehog))
+ --AddCaption("Checking Teleporters")
+ CheckTeleporters()
+ end
+
+ HandleCircles()
+ ManageTeleporterEffects()
+
+end
+
+
+function onAmmoStoreInit()
+
+ SetAmmo(amDrill,9,0,0,0)
+ SetAmmo(amMortar,9,0,0,0)
+
+ SetAmmo(amGrenade,9,0,0,0)
+ SetAmmo(amClusterBomb,4,0,0,0)
+
+ --SetAmmo(amDEagle, 4, 0, 0, 0)
+ SetAmmo(amShotgun, 9, 0, 0, 0)
+ SetAmmo(amFlamethrower, 1, 0, 0, 1)
+
+ SetAmmo(amFirePunch, 9, 0, 0, 0)
+ SetAmmo(amBaseballBat, 2, 0, 0, 0)
+
+ SetAmmo(amDynamite,2,0,0,1)
+ SetAmmo(amSMine,4,0,0,0)
+
+ SetAmmo(amBlowTorch, 9, 0, 0, 0)
+ SetAmmo(amPickHammer, 9, 0, 0, 0)
+ SetAmmo(amGirder, 2, 0, 0, 2)
+ SetAmmo(amPortalGun, 2, 0, 0, 2)
+
+ SetAmmo(amParachute, 9, 0, 0, 0)
+ SetAmmo(amRope, 9, 0, 0, 0)
+ SetAmmo(amTeleport, 0, 0, 0, 1)
+ SetAmmo(amJetpack, 1, 0, 0, 1)
+
+ SetAmmo(amSwitch, 2, 0, 0, 1)
+ SetAmmo(amExtraTime,1,0,0,1)
+ SetAmmo(amLowGravity,1,0,0,0)
+ SetAmmo(amSkip, 9, 0, 0, 0)
+
+end
+
+
+function onGearResurrect(gear)
+
+ --AddCaption("A gear has been resurrected!")
+
+ -- mark the flag thief as dead if he needed a respawn
+ for i = 0,1 do
+ if gear == fThief[i] then
+ FlagThiefDead(gear)
+ end
+ end
+
+ -- place hogs belonging to each clan either left or right side of map
+ if GetHogClan(gear) == 0 then
+ FindPlace(gear, false, 0, 2048)
+ elseif GetHogClan(gear) == 1 then
+ FindPlace(gear, false, 2048, LAND_WIDTH)
+ end
+
+ AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false)
+
+end
+
+function onGearDamage(gear, damage)
+
+ -- >_< damn, occurs too fast, before the hog has finished moving / updated his health
+ --if GetGearType(gear) == gtHedgehog then
+ -- if damage > GetHealth(gear) then
+ -- AddVisualGear(GetX(gear), GetY(gear), vgtExplosion, 0, false)
+ -- end
+ --end
+
+end
+
+function onGearAdd(gear)
+
+ if GetGearType(gear) == gtHedgehog then
+
+ hhs[numhhs] = gear
+ numhhs = numhhs + 1
+ SetEffect(gear, heResurrectable, true)
+
+ end
+
+end
+
+function onGearDelete(gear)
+
+ if (gear == fGear[0]) or (gear == fGear[1]) then
+ FlagDeleted(gear)
+ end
+
+end
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/CTF_Blizzard/map.png
Binary file share/hedgewars/Data/Maps/CTF_Blizzard/map.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/CTF_Blizzard/map.svg
--- a/share/hedgewars/Data/Maps/CTF_Blizzard/map.svg Mon Jan 17 08:37:43 2011 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1067 +0,0 @@
-
-
-
-
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/CTF_Blizzard/mask.png
Binary file share/hedgewars/Data/Maps/CTF_Blizzard/mask.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/CTF_Blizzard/preview@2x.png
Binary file share/hedgewars/Data/Maps/CTF_Blizzard/preview@2x.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/Cave/preview.png
Binary file share/hedgewars/Data/Maps/Cave/preview.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/Control/map.lua
--- a/share/hedgewars/Data/Maps/Control/map.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Maps/Control/map.lua Mon Jan 17 23:22:52 2011 +0100
@@ -200,7 +200,9 @@
if CurrentHedgehog ~= nil then
if cOwnerClan[i] == GetHogClan(CurrentHedgehog) then
g = AddVisualGear(vCircX[i], vCircY[i], vgtHealthTag, 100, False)
- SetVisualGearValues(g, vCircX[i], vCircY[i], 0, 0, 0, 0, 0, teamScore[cOwnerClan[i]], 1500, GetClanColor(cOwnerClan[i]))
+ if g ~= 0 then
+ SetVisualGearValues(g, vCircX[i], vCircY[i], 0, 0, 0, 0, 0, teamScore[cOwnerClan[i]], 1500, GetClanColor(cOwnerClan[i]))
+ end
end
end
end
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Maps/Ropes/preview.png
Binary file share/hedgewars/Data/Maps/Ropes/preview.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Missions/Training/User_Mission_-_Diver.lua
--- a/share/hedgewars/Data/Missions/Training/User_Mission_-_Diver.lua Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Diver.lua Mon Jan 17 23:22:52 2011 +0100
@@ -87,7 +87,7 @@
function onGearDelete(gear)
if (gear == enemy) and (GameOver == false) then
- ShowMission(loc("Operation Diver"), loc("MISSION SUCCESS"), loc("Congratulations!"), 0, 0)
+ ShowMission(loc("Operation Diver"), loc("MISSION SUCCESSFUL"), loc("Congratulations!"), 0, 0)
elseif gear == player then
ShowMission(loc("Operation Diver"), loc("MISSION FAILED"), loc("Oh no! Just try again!"), -amSkip, 0)
GameOver = true
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Art/Splash.png
Binary file share/hedgewars/Data/Themes/Art/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Art/theme.cfg
--- a/share/hedgewars/Data/Themes/Art/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Art/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,18 +1,11 @@
-7 13 40
-13 17 22
-$01 $3b $66
-$01 $3b $66 $80
-Art.ogg
-0
-4
-Soup
-3 3 220 130 18 1 0 0 142 150
-Mona
-2 0 190 191 8 1 0 0 191 150
-Schrei
-1 0 345 130 1 1 0 0 160 175
-Zeit
-2 0 153 45 5 1 90 20 106 105
-0
-0
-30 0 0 0
+sky = 7, 13, 40
+border = 13, 17, 22
+water-top = $01, $3b, $66
+water-bottom = $01, $3b, $66
+water-opacity = $80
+music = Art.ogg
+clouds = 0
+object = Soup, 3, 3, 220, 130, 18, 1, 0, 0, 142, 150
+object = Mona, 2, 0, 190, 191, 8, 1, 0, 0, 191, 150
+object = Schrei, 1, 0, 345, 130, 1, 1, 0, 0, 160, 175
+object = Zeit, 2, 0, 153, 45, 5, 1, 90, 20, 106, 105
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Bamboo/SkyL.png
Binary file share/hedgewars/Data/Themes/Bamboo/SkyL.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Bamboo/SkyR.png
Binary file share/hedgewars/Data/Themes/Bamboo/SkyR.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Bamboo/theme.cfg
--- a/share/hedgewars/Data/Themes/Bamboo/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Bamboo/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,18 +1,12 @@
-117 141 186
-143 171 80
-$54 $5C $9D
-$34 $3C $7D $80
-oriental.ogg
-9
-4
-Flower
-3 65 258 80 2 1 0 0 240 215
-Bamboo
-3 65 258 80 2 1 0 0 240 215
-Bamboo2
-3 65 258 80 2 1 0 0 240 215
-Bamboo3
-3 65 258 80 2 1 0 0 240 215
-0
-100
-1 1000 50 50
+sky = 117, 141, 186
+border = 143, 171, 80
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = oriental.ogg
+clouds = 9
+object = Flower, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = Bamboo, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = Bamboo2, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = Bamboo3, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+flakes = 100, 1, 1000, 50, 50
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Bath/Sky.png
Binary file share/hedgewars/Data/Themes/Bath/Sky.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Bath/theme.cfg
--- a/share/hedgewars/Data/Themes/Bath/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Bath/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,22 +1,14 @@
-255 255 237
-173 182 247
-$54 $5C $9D
-$34 $3C $7D $80
-bath.ogg
-15
-6
-Toothbrush
-3 120 245 8 15 1 90 6 65 220
-Toothbrush_g
-3 85 243 10 11 1 89 13 97 211
-Toothbrush_b
-3 113 245 8 15 1 84 6 66 218
-Duck
-3 102 253 20 4 1 48 142 150 107
-Duck2
-3 50 94 16 4 1 5 15 101 72
-Bubble
-3 37 78 3 2 1 0 0 77 44
-0
-100
-1 0 0 10
+sky = 255, 255, 237
+border = 173, 182, 247
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = bath.ogg
+clouds = 15
+object = Toothbrush, 3, 120, 245, 8, 15, 1, 90, 6, 65, 220
+object = Toothbrush_g, 3, 85, 243, 10, 11, 1, 89, 13, 97, 211
+object = Toothbrush_b, 3, 113, 245, 8, 15, 1, 84, 6, 66, 218
+object = Duck, 3, 102, 253, 20, 4, 1, 48, 142, 150, 107
+object = Duck2, 3, 50, 94, 16, 4, 1, 5, 15, 101, 72
+object = Bubble, 3, 37, 78, 3, 2, 1, 0, 0, 77, 44
+flakes = 100, 1, 0, 0, 10
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Blox/theme.cfg
--- a/share/hedgewars/Data/Themes/Blox/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Blox/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,10 +1,8 @@
-179 243 243
-128 128 128
-$54 $5C $9D
-$34 $3C $7D $80
-Nature.ogg
-0
-0
-0
-100
-2 500 100 300
+sky = 179, 243, 243
+border = 128, 128, 128
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = Nature.ogg
+clouds = 0
+flakes = 100, 2, 500, 100, 300
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Brick/Splash.png
Binary file share/hedgewars/Data/Themes/Brick/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Brick/horizont.png
Binary file share/hedgewars/Data/Themes/Brick/horizont.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Brick/theme.cfg
--- a/share/hedgewars/Data/Themes/Brick/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Brick/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,35 +1,21 @@
-11 21 80
-155 155 155
-$51 $5B $60
-$22 $2F $36 $80
-Brick.ogg
-9
-9
-plant1
-1 83 215 92 35 1 0 0 250 190
-plant2
-2 0 115 70 40 1 8 0 60 100
-plant3
-2 0 115 70 40 1 8 0 60 100
-plant4
-2 20 200 25 5 1 0 0 70 140
-plant5
-2 240 22 17 43 1 8 21 227 80
-plant6
-1 83 225 92 25 1 0 0 250 200
-plant7
-2 20 200 25 5 1 0 0 70 140
-plant8
-5 45 0 10 10 1 0 50 109 155
-plant9
-2 20 200 25 5 1 0 0 70 140
-3
-spray1
-2
-spray2
-2
-spray3
-2
-0
-20
-30 50 50 250
+sky = 11, 21, 80
+border = 155, 155, 155
+water-top = $51, $5B, $60
+water-bottom = $22, $2F, $36
+water-opacity = $80
+music = Brick.ogg
+clouds = 9
+object = plant1, 1, 83, 215, 92, 35, 1, 0, 0, 250, 190
+object = plant2, 2, 0, 115, 70, 40, 1, 8, 0, 60, 100
+object = plant3, 2, 0, 115, 70, 40, 1, 8, 0, 60, 100
+object = plant4, 2, 20, 200, 25, 5, 1, 0, 0, 70, 140
+object = plant5, 2, 240, 22, 17, 43, 1, 8, 21, 227, 80
+object = plant6, 1, 83, 225, 92, 25, 1, 0, 0, 250, 200
+object = plant7, 2, 20, 200, 25, 5, 1, 0, 0, 70, 140
+object = plant8, 5, 45, 0, 10, 10, 1, 0, 50, 109, 155
+object = plant9, 2, 20, 200, 25, 5, 1, 0, 0, 70, 140
+spray = spray1, 2
+spray = spray2, 2
+spray = spray3, 2
+;Should this theme have flakes? they where disabled
+;flakes = 20, 30, 50, 50, 250
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Cake/Splash.png
Binary file share/hedgewars/Data/Themes/Cake/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Cake/theme.cfg
--- a/share/hedgewars/Data/Themes/Cake/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Cake/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,18 +1,12 @@
-0 0 51
-255 200 90
-$FF $DF $E1
-$FF $DF $E1 $80
-snow.ogg
-9
-4
-plant1
-3 83 215 92 35 1 0 0 250 190
-plant2
-3 118 115 41 20 1 0 0 159 110
-plant3
-3 0 115 70 40 1 8 0 60 100
-plant4
-3 20 200 25 5 1 0 0 70 150
-0
-20
-100 0 30 250
+sky = 0, 0, 51
+border = 255, 200, 90
+water-top = $FF, $DF, $E1
+water-bottom = $FF, $DF, $E1
+water-opacity = $80
+music = snow.ogg
+clouds = 9
+object = plant1, 3, 83, 215, 92, 35, 1, 0, 0, 250, 190
+object = plant2, 3, 118, 115, 41, 20, 1, 0, 0, 159, 110
+object = plant3, 3, 0, 115, 70, 40, 1, 8, 0, 60, 100
+object = plant4, 3, 20, 200, 25, 5, 1, 0, 0, 70, 150
+flakes = 20, 100, 0, 30, 250
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Castle/SkyL.png
Binary file share/hedgewars/Data/Themes/Castle/SkyL.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Castle/SkyR.png
Binary file share/hedgewars/Data/Themes/Castle/SkyR.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Castle/Splash.png
Binary file share/hedgewars/Data/Themes/Castle/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Castle/horizont.png
Binary file share/hedgewars/Data/Themes/Castle/horizont.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Castle/theme.cfg
--- a/share/hedgewars/Data/Themes/Castle/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Castle/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,18 +1,12 @@
-45 53 57
-145 145 145
-81 91 96
-81 91 96 $80
-Castle.ogg
-5
-4
-Spear
-3 65 258 175 2 1 0 0 240 215
-Shield
-3 0 165 163 2 1 0 0 163 140
-Sword
-3 240 22 17 43 1 8 21 227 80
-Axe
-3 25 195 90 65 1 40 5 195 175
-0
-25
-3 99999999 0 750
+sky = 45, 53, 57
+border = 145, 145, 145
+water-top = 81, 91, 96
+water-bottom = 81, 91, 96
+water-opacity = $80
+music = Castle.ogg
+clouds = 5
+object = Spear, 3, 65, 258, 175, 2, 1, 0, 0, 240, 215
+object = Shield, 3, 0, 165, 163, 2, 1, 0, 0, 163, 140
+object = Sword, 3, 240, 22, 17, 43, 1, 8, 21, 227, 80
+object = Axe, 3, 25, 195, 90, 65, 1, 40, 5, 195, 175
+flakes = 25, 3, 99999999, 0, 750
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Cheese/theme.cfg
--- a/share/hedgewars/Data/Themes/Cheese/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Cheese/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,19 +1,12 @@
-16 5 27
-240 175 32
-$54 $5C $9D
-$34 $3C $7D $80
-EarthRise.ogg
-9
-5
-cheese
-3 60 80 55 30 1 0 0 140 70
-mouseright
-3 85 162 60 20 1 6 6 200 140
-mouseleft
-3 60 162 63 20 1 6 6 200 140
-knife
-3 90 130 50 20 1 140 0 160 110
-fork
-3 240 130 10 30 1 0 0 170 120
-0
-0
+sky = 16, 5, 27
+border = 240, 175, 32
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = EarthRise.ogg
+clouds = 9
+object = cheese, 3, 60, 80, 55, 30, 1, 0, 0, 140, 70
+object = mouseright, 3, 85, 162, 60, 20, 1, 6, 6, 200, 140
+object = mouseleft, 3, 60, 162, 63, 20, 1, 6, 6, 200, 140
+object = knife, 3, 90, 130, 50, 20, 1, 140, 0, 160, 110
+object = fork, 3, 240, 130, 10, 30, 1, 0, 0, 170, 120
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Christmas/theme.cfg
--- a/share/hedgewars/Data/Themes/Christmas/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Christmas/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,26 +1,16 @@
-9 14 45
-141 151 213
-$54 $5C $9D
-$34 $3C $7D $80
-snow.ogg
-9
-6
-reindeer
-1 90 232 94 12 2 55 60 90 73 80 134 105 64
-tree
-1 238 706 36 9 2 122 355 208 293 164 168 82 154
-plant2
-3 0 85 25 25 2 0 0 170 70 50 70 120 40
-plant3
-3 26 0 48 1 1 25 15 50 60
-plant4
-3 45 4 1 45 1 20 45 20 60
-Snowman
-1 38 283 119 14 1 38 21 124 216
-2
-holly
-4
-holly2
-4
-100
-3 99999999 100 300
+sky = 9, 14, 45
+border = 141, 151, 213
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = snow.ogg
+clouds = 9
+object = reindeer, 1, 90, 232, 94, 12, 2, 55, 60, 90, 73, 80, 134, 105, 64
+object = tree, 1, 238, 706, 36, 9, 2, 122, 355, 208, 293, 164, 168, 82, 154
+object = plant2, 3, 0, 85, 25, 25, 2, 0, 0, 170, 70, 50, 70, 120, 40
+object = plant3, 3, 26, 0, 48, 1, 1, 25, 15, 50, 60
+object = plant4, 3, 45, 4, 1, 45, 1, 20, 45, 20, 60
+object = Snowman, 1, 38, 283, 119, 14, 1, 38, 21, 124, 216
+spray = holly, 4
+spray = holly2, 4
+flakes = 100, 3, 99999999, 100, 300
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/City/theme.cfg
--- a/share/hedgewars/Data/Themes/City/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/City/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,19 +1,12 @@
-21 20 38
-128 0 0
-$54 $5C $9D
-$34 $3C $7D
-$80
-City.ogg
-45
-4
-plant1
-3 200 344 54 2 1 0 0 160 215
-plant2
-3 32 165 65 2 1 0 0 163 140
-plant3
-3 45 0 14 1 1 23 9 54 57
-plant4
-3 99 8 1 38 1 42 7 42 103
-0
-1500
-0 0 0 2000
+sky = 21, 20, 38
+border = 128, 0, 0
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = City.ogg
+clouds = 45
+object = plant1, 3, 200, 344, 54, 2, 1, 0, 0, 160, 215
+object = plant2, 3, 32, 165, 65, 2, 1, 0, 0, 163, 140
+object = plant3, 3, 45, 0, 14, 1, 1, 23, 9, 54, 57
+object = plant4, 3, 99, 8, 1, 38, 1, 42, 7, 42, 103
+flakes = 1500, 0, 0, 0, 2000
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Compost/Splash.png
Binary file share/hedgewars/Data/Themes/Compost/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Compost/theme.cfg
--- a/share/hedgewars/Data/Themes/Compost/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Compost/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,34 +1,20 @@
-92 151 253
-52 38 23
-$41 $23 $12
-$33 $21 $9 $FF
-Compost.ogg
-16
-8
-Eggshell1
-3 48 92 78 37 1 0 0 125 47
-Eggshell2
-3 40 65 80 50 1 0 0 120 50
-Onion1
-3 0 65 90 30 1 0 0 75 50
-Onion2
-3 35 80 75 40 2 0 0 30 50 0 36 30 50
-Cucumber1
-3 0 100 75 40 1 80 0 89 95
-Cucumber2
-3 0 70 125 45 1 0 0 70 55
-Carrot1
-3 65 0 40 30 1 0 100 100 100
-Carrot2
-3 0 30 40 35 1 80 65 100 100
-4
-Cucumber3
-1
-Cucumber4
-1
-Carrot3
-1
-Carrot4
-1
-100
-1 130 0 5
+sky = 92, 151, 253
+border = 52, 38, 23
+water-top = $41, $23, $12
+water-bottom = $33, $21, $9
+water-opacity = $FF
+music = Compost.ogg
+clouds = 16
+object = Eggshell1, 3, 48, 92, 78, 37, 1, 0, 0, 125, 47
+object = Eggshell2, 3, 40, 65, 80, 50, 1, 0, 0, 120, 50
+object = Onion1, 3, 0, 65, 90, 30, 1, 0, 0, 75, 50
+object = Onion2, 3, 35, 80, 75, 40, 2, 0, 0, 30, 50, 0, 36, 30, 50
+object = Cucumber1, 3, 0, 100, 75, 40, 1, 80, 0, 89, 95
+object = Cucumber2, 3, 0, 70, 125, 45, 1, 0, 0, 70, 55
+object = Carrot1, 3, 65, 0, 40, 30, 1, 0, 100, 100, 100
+object = Carrot2, 3, 0, 30, 40, 35, 1, 80, 65, 100, 100
+spray = Cucumber3, 1
+spray = Cucumber4, 1
+spray = Carrot3, 1
+spray = Carrot4, 1
+flakes = 100, 1, 130, 0, 5
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/CrazyMission/SkyL.png
Binary file share/hedgewars/Data/Themes/CrazyMission/SkyL.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/CrazyMission/SkyR.png
Binary file share/hedgewars/Data/Themes/CrazyMission/SkyR.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/CrazyMission/Splash.png
Binary file share/hedgewars/Data/Themes/CrazyMission/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/CrazyMission/horizont.png
Binary file share/hedgewars/Data/Themes/CrazyMission/horizont.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/CrazyMission/theme.cfg
--- a/share/hedgewars/Data/Themes/CrazyMission/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/CrazyMission/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,9 +1,7 @@
-20 23 24
-20 23 24
-21 57 76
-21 57 76 $80
-snow.ogg
-4
-0
-0
-0
\ No newline at end of file
+sky = 20, 23, 24
+border = 20, 23, 24
+water-top = 21, 57, 76
+water-bottom = 21, 57, 76
+water-opacity = $80
+music = snow.ogg
+clouds = 4
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Deepspace/Sky.png
Binary file share/hedgewars/Data/Themes/Deepspace/Sky.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Deepspace/Splash.png
Binary file share/hedgewars/Data/Themes/Deepspace/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Deepspace/horizont.png
Binary file share/hedgewars/Data/Themes/Deepspace/horizont.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Deepspace/theme.cfg
--- a/share/hedgewars/Data/Themes/Deepspace/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Deepspace/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,9 +1,9 @@
-0 0 0
-175 177 75
-$2B $2B $2B
-$2A $2A $2A $CC
-hell.ogg
-9
-0
-0
-50
+sky = 0, 0, 0
+border = 175, 177, 75
+water-top = $2B, $2B, $2B
+water-bottom = $2A, $2A, $2A
+water-opacity = $CC
+music = hell.ogg
+clouds = 9
+flakes = 50, 1, 1000, 50, 50
+;1, 1000, 50, 50 are copied from bamboo theme, as these numbers are required
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Desert/Splash.png
Binary file share/hedgewars/Data/Themes/Desert/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Desert/theme.cfg
--- a/share/hedgewars/Data/Themes/Desert/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Desert/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,26 +1,15 @@
-116 239 255
-242 230 124
-$3E $7B $94
-$35 $69 $85 $80
-Desert.ogg
-9
-7
-sand
-4 9 3 4 4 2 1 1 7 27 9 31 5 6
-sandR
-4 4 3 4 4 2 9 1 7 27 3 31 5 6
-buzzard
-1 17 318 4 21 1 51 91 289 241
-cobra
-1 65 230 57 4 1 28 0 206 202
-cactus
-3 27 440 73 10 1 0 0 258 384
-rock1
-2 75 108 73 12 1 0 0 173 99
-rock2
-5 7 18 10 1 1 0 0 24 12
-1
-cowskull
-2
-0
-1 9999 50 10
+sky = 116, 239, 255
+border = 242, 230, 124
+water-top = $3E, $7B, $94
+water-bottom = $35, $69, $85
+water-opacity = $80
+music = Desert.ogg
+clouds = 9
+object = sand, 4, 9, 3, 4, 4, 2, 1, 1, 7, 27, 9, 31, 5, 6
+object = sandR, 4, 4, 3, 4, 4, 2, 9, 1, 7, 27, 3, 31, 5, 6
+object = buzzard, 1, 17, 318, 4, 21, 1, 51, 91, 289, 241
+object = cobra, 1, 65, 230, 57, 4, 1, 28, 0, 206, 202
+object = cactus, 3, 27, 440, 73, 10, 1, 0, 0, 258, 384
+object = rock1, 2, 75, 108, 73, 12, 1, 0, 0, 173, 99
+object = rock2, 5, 7, 18, 10, 1, 1, 0, 0, 24, 12
+spray = cowskull, 2
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/EarthRise/Sky.png
Binary file share/hedgewars/Data/Themes/EarthRise/Sky.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/EarthRise/SkyL.png
Binary file share/hedgewars/Data/Themes/EarthRise/SkyL.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/EarthRise/SkyR.png
Binary file share/hedgewars/Data/Themes/EarthRise/SkyR.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/EarthRise/horizontL.png
Binary file share/hedgewars/Data/Themes/EarthRise/horizontL.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/EarthRise/horizontR.png
Binary file share/hedgewars/Data/Themes/EarthRise/horizontR.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/EarthRise/theme.cfg
--- a/share/hedgewars/Data/Themes/EarthRise/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/EarthRise/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,14 +1,10 @@
-0 0 0
-106 106 106
-$54 $5C $9D
-$34 $3C $7D $80
-EarthRise.ogg
-0
-2
-Rock
-3 65 258 175 2 1 0 0 240 215
-RockShort
-3 0 165 163 2 1 0 0 163 140
-0
-20
-1 0 20 0
+sky = 0, 0, 0
+border = 106, 106, 106
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = EarthRise.ogg
+clouds = 0
+object = Rock, 3, 65, 258, 175, 2, 1, 0, 0, 240, 215
+object = RockShort, 3, 0, 165, 163, 2, 1, 0, 0, 163, 140
+flakes = 20, 1, 0, 20, 0
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Eyes/Sky.png
Binary file share/hedgewars/Data/Themes/Eyes/Sky.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Eyes/Splash.png
Binary file share/hedgewars/Data/Themes/Eyes/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Eyes/horizont.png
Binary file share/hedgewars/Data/Themes/Eyes/horizont.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Eyes/theme.cfg
--- a/share/hedgewars/Data/Themes/Eyes/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Eyes/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,9 +1,9 @@
-0 0 0
-175 177 75
-$2B $2B $2B
-$2A $2A $2A $CC
-hell.ogg
-9
-0
-0
-50
+sky = 0, 0, 0
+border = 175, 177, 75
+water-top = $2B, $2B, $2B
+water-bottom = $2A, $2A, $2A
+water-opacity = $CC
+music = hell.ogg
+clouds = 9
+flakes = 50, 1, 1000, 50, 50
+;1, 1000, 50, 50 are copied from bamboo theme, as these numbers are required
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Freeway/theme.cfg
--- a/share/hedgewars/Data/Themes/Freeway/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Freeway/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,22 +1,14 @@
-99 51 43
-70 58 55
-$54 $5C $9D
-$34 $3C $7D $80
-Freeway.ogg
-9
-2
-Tire
-3 83 215 92 35 1 0 0 250 190
-AppleSmall
-3 40 0 25 1 1 0 35 100 65
-4
-TireDirt
-2
-AppleDirt
-5
-FishDirt
-4
-BottleDirt
-4
-200
-1 0 0 0
+sky = 99, 51, 43
+border = 70, 58, 55
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = Freeway.ogg
+clouds = 9
+object = Tire, 3, 83, 215, 92, 35, 1, 0, 0, 250, 190
+object = AppleSmall, 3, 40, 0, 25, 1, 1, 0, 35, 100, 65
+spray = TireDirt, 2
+spray = AppleDirt, 5
+spray = FishDirt, 4
+spray = BottleDirt, 4
+flakes = 200, 1, 0, 0, 0
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Halloween/SkyL.png
Binary file share/hedgewars/Data/Themes/Halloween/SkyL.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Halloween/SkyR.png
Binary file share/hedgewars/Data/Themes/Halloween/SkyR.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Halloween/Splash.png
Binary file share/hedgewars/Data/Themes/Halloween/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Halloween/theme.cfg
--- a/share/hedgewars/Data/Themes/Halloween/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Halloween/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,14 +1,10 @@
-16 3 8
-116 0 100
-37 91 31
-44 84 40 $80
-Halloween.ogg
-9
-2
-Rock
-3 65 258 175 2 1 0 0 240 215
-RockShort
-3 0 165 163 2 1 0 0 163 140
-0
-20
-7 130 0 5
+sky = 16, 3, 8
+border = 116, 0, 100
+water-top = 37, 91, 31
+water-bottom = 44, 84, 40
+water-opacity = $80
+music = Halloween.ogg
+clouds = 9
+object = Rock, 3, 65, 258, 175, 2, 1, 0, 0, 240, 215
+object = RockShort, 3, 0, 165, 163, 2, 1, 0, 0, 163, 140
+flakes = 20, 7, 130, 0, 5
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Hell/Splash.png
Binary file share/hedgewars/Data/Themes/Hell/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Hell/theme.cfg
--- a/share/hedgewars/Data/Themes/Hell/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Hell/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,18 +1,12 @@
-10 10 10
-245 118 0
-$A7 $0B $0C
-$A1 $0A $0A $80
-hell.ogg
-9
-4
-plant1
-3 83 215 92 35 1 0 0 250 190
-plant2
-3 118 115 41 20 1 0 0 159 110
-plant3
-3 0 115 70 40 1 8 0 60 100
-plant4
-3 20 200 25 5 1 0 0 70 150
-0
-20
-30 0 0 250
+sky = 10, 10, 10
+border = 245, 118, 0
+water-top = $A7, $0B, $0C
+water-bottom = $A1, $0A, $0A
+water-opacity = $80
+music = hell.ogg
+clouds = 9
+object = plant1, 3, 83, 215, 92, 35, 1, 0, 0, 250, 190
+object = plant2, 3, 118, 115, 41, 20, 1, 0, 0, 159, 110
+object = plant3, 3, 0, 115, 70, 40, 1, 8, 0, 60, 100
+object = plant4, 3, 20, 200, 25, 5, 1, 0, 0, 70, 150
+flakes = 20, 30, 0, 0, 250
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Island/theme.cfg
--- a/share/hedgewars/Data/Themes/Island/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Island/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,20 +1,13 @@
-21 20 38
-242 230 124
-$54 $5C $9D
-$34 $3C $7D $80
-pirate.ogg
-9
-5
-anchor
-3 65 258 80 2 1 0 0 240 215
-plant1
-3 10 192 60 2 1 33 0 149 152
-plant2
-3 55 218 30 2 1 0 0 240 175
-plant3
-3 20 0 60 1 1 0 15 100 44
-plant4
-3 78 5 2 60 1 0 0 65 110
-0
-100
-2 500 100 300
+sky = 21, 20, 38
+border = 242, 230, 124
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = pirate.ogg
+clouds = 9
+object = anchor, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = plant1, 3, 10, 192, 60, 2, 1, 33, 0, 149, 152
+object = plant2, 3, 55, 218, 30, 2, 1, 0, 0, 240, 175
+object = plant3, 3, 20, 0, 60, 1, 1, 0, 15, 100, 44
+object = plant4, 3, 78, 5, 2, 60, 1, 0, 0, 65, 110
+flakes = 100, 2, 500, 100, 300
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Jungle/LandTex.png
Binary file share/hedgewars/Data/Themes/Jungle/LandTex.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Jungle/Sky.png
Binary file share/hedgewars/Data/Themes/Jungle/Sky.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Jungle/SkyL.png
Binary file share/hedgewars/Data/Themes/Jungle/SkyL.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Jungle/SkyR.png
Binary file share/hedgewars/Data/Themes/Jungle/SkyR.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Jungle/theme.cfg
--- a/share/hedgewars/Data/Themes/Jungle/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Jungle/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,30 +1,18 @@
-141 149 164
-75 103 25
-$A7 $6A $32
-$B3 $78 $1B $80
-oriental.ogg
-20
-7
-PalmTree
-1 141 225 25 5 1 0 0 230 190
-Flowers
-1 5 65 180 5 1 0 0 150 50
-Liana
-2 0 0 25 10 1 0 40 25 160
-Monkey
-1 20 145 60 5 1 0 0 130 130
-Snake
-1 30 95 40 5 1 0 0 110 75
-FernRight
-2 0 0 20 70 1 40 0 165 70
-FernLeft
-2 185 0 20 70 1 0 0 165 70
-3
-FlowerRed
-2
-FlowerBlue
-2
-Spider
-2
-100
-1 1000 50 50
+sky = 141, 149, 164
+border = 75, 103, 25
+water-top = $A7, $6A, $32
+water-bottom = $B3, $78, $1B
+water-opacity = $80
+music = oriental.ogg
+clouds = 20
+object = PalmTree, 1, 141, 225, 25, 5, 1, 0, 0, 230, 190
+object = Flowers, 1, 5, 65, 180, 5, 1, 0, 0, 150, 50
+object = Liana, 2, 0, 0, 25, 10, 1, 0, 40, 25, 160
+object = Monkey, 1, 20, 145, 60, 5, 1, 0, 0, 130, 130
+object = Snake, 1, 30, 95, 40, 5, 1, 0, 0, 110, 75
+object = FernRight, 2, 0, 0, 20, 70, 1, 40, 0, 165, 70
+object = FernLeft, 2, 185, 0, 20, 70, 1, 0, 0, 165, 70
+spray = FlowerRed, 2
+spray = FlowerBlue, 2
+spray = Spider, 2
+flakes = 100, 1, 1000, 50, 50
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Nature/LandTex.png
Binary file share/hedgewars/Data/Themes/Nature/LandTex.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Nature/theme.cfg
--- a/share/hedgewars/Data/Themes/Nature/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Nature/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,33 +1,19 @@
-19 18 82
-176 51 0
-$54 $5C $9D
-$34 $3C $7D
-$80
-Nature.ogg
-9
-11
-plant1
-3 65 258 80 2 1 0 0 240 215
-plant2
-3 21 163 33 15 1 60 62 87 95
-plant3
-3 40 0 25 1 1 0 35 100 65
-plant4
-3 98 10 2 25 1 0 0 70 110
-mole
-1 0 129 161 71 1 13 0 142 99
-mole2
-1 0 129 161 71 1 13 0 142 99
-mole3
-1 0 129 161 71 1 13 0 142 99
-butterfly
-1 43 176 56 6 1 21 14 91 46
-snail
-3 51 94 52 3 1 0 0 135 87
-mushroom
-3 14 77 24 2 1 0 0 76 73
-mushroom2
-3 24 78 48 7 2 0 0 80 36 15 38 57 30
-0
-55
-40 99999999 30 200
+sky = 19, 18, 82
+border = 176, 51, 0
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = Nature.ogg
+clouds = 9
+object = plant1, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = plant2, 3, 21, 163, 33, 15, 1, 60, 62, 87, 95
+object = plant3, 3, 40, 0, 25, 1, 1, 0, 35, 100, 65
+object = plant4, 3, 98, 10, 2, 25, 1, 0, 0, 70, 110
+object = mole, 1, 0, 129, 161, 71, 1, 13, 0, 142, 99
+object = mole2, 1, 0, 129, 161, 71, 1, 13, 0, 142, 99
+object = mole3, 1, 0, 129, 161, 71, 1, 13, 0, 142, 99
+object = butterfly, 1, 43, 176, 56, 6, 1, 21, 14, 91, 46
+object = snail, 3, 51, 94, 52, 3, 1, 0, 0, 135, 87
+object = mushroom, 3, 14, 77, 24, 2, 1, 0, 0, 76, 73
+object = mushroom2, 3, 24, 78, 48, 7, 2, 0, 0, 80, 36, 15, 38, 57, 30
+flakes = 55, 40, 99999999, 30, 200
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Olympics/theme.cfg
--- a/share/hedgewars/Data/Themes/Olympics/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Olympics/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,19 +1,12 @@
-177 190 216
-204 200 168
-$54 $5C $9D
-$34 $3C $7D
-$80
-Olympics.ogg
-9
-4
-Statue
-3 42 258 115 2 1 0 0 165 240
-Column01
-3 21 258 80 2 1 0 0 110 240
-Column02
-3 12 258 76 2 1 0 0 110 240
-Column03
-3 3 173 84 2 1 0 0 90 155
-0
-50
-1 1000 0 10
+sky = 177, 190, 216
+border = 204, 200, 168
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = Olympics.ogg
+clouds = 9
+object = Statue, 3, 42, 258, 115, 2, 1, 0, 0, 165, 240
+object = Column01, 3, 21, 258, 80, 2, 1, 0, 0, 110, 240
+object = Column02, 3, 12, 258, 76, 2, 1, 0, 0, 110, 240
+object = Column03, 3, 3, 173, 84, 2, 1, 0, 0, 90, 155
+flakes = 50, 1, 1000, 0, 10
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Planes/theme.cfg
--- a/share/hedgewars/Data/Themes/Planes/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Planes/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,9 +1,7 @@
-21 20 38
-177 175 49
-$54 $5C $9D
-$34 $3C $7D $80
-City.ogg
-9
-0
-0
-0
+sky = 21, 20, 38
+border = 177, 175, 49
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = City.ogg
+clouds = 9
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Sheep/theme.cfg
--- a/share/hedgewars/Data/Themes/Sheep/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Sheep/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,40 +1,23 @@
-66 71 141
-0 88 0
-$54 $5C $9D
-$34 $3C $7D $80
-Sheep.ogg
-4
-7
-fleur
-3 45 127 50 3 1 0 0 120 105
-mouton1
-3 88 222 122 4 1 0 0 275 200
-mouton2
-3 84 245 125 20 1 0 0 275 200
-mouton3
-3 152 255 176 15 1 0 0 440 230
-mouton4
-3 148 245 162 20 1 0 0 440 205
-barriere
-3 34 190 300 10 1 0 0 381 140
-rocher
-3 16 90 69 3 1 0 0 110 65
-8
-grass
-7
-grass2
-7
-grassp
-7
-grassp2
-7
-fleurland
-7
-fleurland2
-7
-fleurland3
-7
-fleurland4
-7
-20
-1000 1000 25 1
+sky = 66, 71, 141
+border = 0, 88, 0
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = Sheep.ogg
+clouds = 4
+object = fleur, 3, 45, 127, 50, 3, 1, 0, 0, 120, 105
+object = mouton1, 3, 88, 222, 122, 4, 1, 0, 0, 275, 200
+object = mouton2, 3, 84, 245, 125, 20, 1, 0, 0, 275, 200
+object = mouton3, 3, 152, 255, 176, 15, 1, 0, 0, 440, 230
+object = mouton4, 3, 148, 245, 162, 20, 1, 0, 0, 440, 205
+object = barriere, 3, 34, 190, 300, 10, 1, 0, 0, 381, 140
+object = rocher, 3, 16, 90, 69, 3, 1, 0, 0, 110, 65
+spray = grass, 7
+spray = grass2, 7
+spray = grassp, 7
+spray = grassp2, 7
+spray = fleurland, 7
+spray = fleurland2, 7
+spray = fleurland3, 7
+spray = fleurland4, 7
+flakes = 20, 1000, 1000, 25, 1
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Snow/theme.cfg
--- a/share/hedgewars/Data/Themes/Snow/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Snow/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,18 +1,12 @@
-21 20 38
-141 151 213
-$54 $5C $9D
-$34 $3C $7D $80
-snow.ogg
-9
-4
-plant1
-3 65 258 80 2 1 0 0 240 215
-plant2
-3 0 85 25 25 2 0 0 170 70 50 70 120 40
-plant3
-3 26 0 48 1 1 25 15 50 60
-plant4
-3 45 4 1 45 1 20 45 20 60
-0
-100
-3 99999999 100 300
+sky = 21, 20, 38
+border = 141, 151, 213
+water-top = $54, $5C, $9D
+water-bottom = $34, $3C, $7D
+water-opacity = $80
+music = snow.ogg
+clouds = 9
+object = plant1, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = plant2, 3, 0, 85, 25, 25, 2, 0, 0, 170, 70, 50, 70, 120, 40
+object = plant3, 3, 26, 0, 48, 1, 1, 25, 15, 50, 60
+object = plant4, 3, 45, 4, 1, 45, 1, 20, 45, 20, 60
+flakes = 100, 3, 99999999, 100, 300
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Stage/SkyL.png
Binary file share/hedgewars/Data/Themes/Stage/SkyL.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Stage/SkyR.png
Binary file share/hedgewars/Data/Themes/Stage/SkyR.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Stage/Splash.png
Binary file share/hedgewars/Data/Themes/Stage/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Stage/theme.cfg
--- a/share/hedgewars/Data/Themes/Stage/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Stage/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,30 +1,18 @@
-0 0 0
-106 106 106
-72 105 127
-37 76 91 128
-Rock.ogg
-0
-6
-MicR
-1 0 28 7 24 1 25 0 125 52
-MicL
-1 145 27 5 25 1 0 0 110 52
-Bass
-1 243 373 20 5 1 0 0 330 310
-Light
-1 10 0 65 10 1 0 42 140 122
-Box
-1 0 170 150 8 1 0 0 150 145
-drum
-1 0 202 239 4 1 39 0 200 150
-4
-poster1
-2
-poster2
-2
-poster3
-2
-poster4
-2
-100
-3 99999999 10 20
+sky = 0, 0, 0
+border = 106, 106, 106
+water-top = 72, 105, 127
+water-bottom = 37, 76, 91
+water-opacity = 128
+music = Rock.ogg
+clouds = 0
+object = MicR, 1, 0, 28, 7, 24, 1, 25, 0, 125, 52
+object = MicL, 1, 145, 27, 5, 25, 1, 0, 0, 110, 52
+object = Bass, 1, 243, 373, 20, 5, 1, 0, 0, 330, 310
+object = Light, 1, 10, 0, 65, 10, 1, 0, 42, 140, 122
+object = Box, 1, 0, 170, 150, 8, 1, 0, 0, 150, 145
+object = drum, 1, 0, 202, 239, 4, 1, 39, 0, 200, 150
+spray = poster1, 2
+spray = poster2, 2
+spray = poster3, 2
+spray = poster4, 2
+flakes = 100, 3, 99999999, 10, 20
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Underwater/SDClouds.png
Binary file share/hedgewars/Data/Themes/Underwater/SDClouds.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Underwater/SDFlake.png
Binary file share/hedgewars/Data/Themes/Underwater/SDFlake.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Underwater/Sky.png
Binary file share/hedgewars/Data/Themes/Underwater/Sky.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Underwater/Splash.png
Binary file share/hedgewars/Data/Themes/Underwater/Splash.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Underwater/horizont.png
Binary file share/hedgewars/Data/Themes/Underwater/horizont.png has changed
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/Themes/Underwater/theme.cfg
--- a/share/hedgewars/Data/Themes/Underwater/theme.cfg Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/Themes/Underwater/theme.cfg Mon Jan 17 23:22:52 2011 +0100
@@ -1,20 +1,15 @@
-255 255 255
-123 148 220
-0 0 0
-0 0 0 $FF
-underwater.ogg
-9
-5
-anchor
-3 65 258 80 2 1 0 0 240 215
-clam
-3 60 131 16 2 1 0 0 150 117
-crab
-3 78 256 96 2 1 3 60 237 155
-coral
-3 10 193 38 32 2 128 66 66 94 39 0 88 167
-coral2
-3 119 146 23 22 1 5 0 123 130
-0
-20
-20 150 0 5
+sky = 255, 255, 255
+border = 123, 148, 220
+water-top = 0, 0, 0
+water-bottom = 0, 0, 0
+water-opacity = $FF
+music = underwater.ogg
+clouds = 9
+object = anchor, 3, 65, 258, 80, 2, 1, 0, 0, 240, 215
+object = clam, 3, 60, 131, 16, 2, 1, 0, 0, 150, 117
+object = crab, 3, 78, 256, 96, 2, 1, 3, 60, 237, 155
+object = coral, 3, 10, 193, 38, 32, 2, 128, 66, 66, 94, 39, 0, 88, 167
+object = coral2, 3, 119, 146, 23, 22, 1, 5, 0, 123, 130
+flakes = 20, 20, 150, 0, 5
+sd-flakes = 20, 20, 150, 0, 5
+rq-sky = 0, 70, 210
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/misc/hedgewars-mimeinfo.xml
--- a/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/misc/hedgewars-mimeinfo.xml Mon Jan 17 23:22:52 2011 +0100
@@ -8,13 +8,14 @@
-->
Hedgewars Demo
Hedgewars Demo
- Hedgewars Démonstration
+ Demo de Hedgewars
+ Démonstration d'Hedgewars
+ Demo di Hedgewars
+ 헤즈와스 데모
Demo gry Hedgewars
+ Hedgewars Demo
Demo hry Hedgewars
Demo för Hedgewars
- Demo de Hedgewars
- Demo di Hedgewars
- Hedgewars Demo
@@ -26,12 +27,14 @@
Hedgewars Save
Hedgewars gespeichertes Spiel
+ Partida guardada de Hedgewars
+ Parties enregistrées d'Hedgewars
+ 헤즈와스 저장된 게임
+ Partita salvata di Hedgewars
Zapis gry Hedgewars
+ Partida guardada de Hedgewars
Uložená hra Hedgewars
Sparfil för Hedgewars
- Partida guardada de Hedgewars
- Partita salvata di Hedgewars
- Partida guardada de Hedgewars
diff -r 9f20a38a385a -r 9a0f5377c529 share/hedgewars/Data/misc/hwengine.desktop.in
--- a/share/hedgewars/Data/misc/hwengine.desktop.in Mon Jan 17 08:37:43 2011 +0100
+++ b/share/hedgewars/Data/misc/hwengine.desktop.in Mon Jan 17 23:22:52 2011 +0100
@@ -5,13 +5,14 @@
Name=Hedgewars Engine
GenericName=Hedgewars engine, for playback of saves and demos
GenericName[de]=Hedgewars engine, für die Wiedergabe von gespeicherten Spielen und Demos
+GenericName[es]=Motor del juego Hedgewars, reproduce demos y partidas guardadas
+GenericName[fr]=Moteur graphique d'Hedgewars, pour revoir les parties enregistrées et de démonstration.
+GenericName[it]=Motore grafico di Hedgewars, riproduce le demo e riprende le partite salvate
GenericName[pl]=Silnik gry Hedgewars do odtwarzania dem i zapisów gier
+GenericName[pt]=Motor de jogo Hedgewars, para reprodução de jogos guardados e demos
+GenericName[ru]=Движок Hedgewars для проигрывания сохранённых игр и демок
GenericName[sk]=Engine hry Hedgewars, pre prehrávanie uložených hier a demo súborov
GenericName[sv]=Hedgewarsmotorn, för att öppna demo- och sparfiler
-GenericName[es]=Motor del juego Hedgewars, reproduce demos y partidas guardadas
-GenericName[it]=Motore grafico di Hedgewars, riproduce le demo e riprende le partite salvate
-GenericName[pt]=Motor de jogo Hedgewars, para reprodução de jogos guardados e demos
-GenericName[ru]=Движок Hedgewars для проигрывания сохранённых игр и демок
Icon=hedgewars.png
Exec=${CMAKE_INSTALL_PREFIX}/bin/hwengine ${HEDGEWARS_DATADIR}/hedgewars/Data %f
Path=/tmp