--- a/QTfrontend/hwconsts.cpp.in Mon Mar 02 17:33:49 2009 +0000
+++ b/QTfrontend/hwconsts.cpp.in Mon Mar 02 21:13:07 2009 +0000
@@ -29,7 +29,7 @@
QStringList * Themes;
QStringList * mapList;
-QString * cDefaultAmmoStore = new QString("93919294221991210322351110012011111");
+QString * cDefaultAmmoStore = new QString("939192942219912103223511100120111111");
QColor * color1 = new QColor(221, 0, 0);
QColor * color2 = new QColor( 67, 118, 233);
--- a/hedgewars/HHHandlers.inc Mon Mar 02 17:33:49 2009 +0000
+++ b/hedgewars/HHHandlers.inc Mon Mar 02 21:13:07 2009 +0000
@@ -185,6 +185,7 @@
//amInvulnerable: State:= State or gstNoDamage;
amInvulnerable: Invulnerable:= true;
amExtraTime: TurnTimeLeft:= TurnTimeLeft + 30000;
+ amLaserSight: cLaserSighting:= true;
end;
uStats.AmmoUsed(Ammo^[CurSlot, CurAmmo].AmmoType);
--- a/hedgewars/uAIAmmoTests.pas Mon Mar 02 17:33:49 2009 +0000
+++ b/hedgewars/uAIAmmoTests.pas Mon Mar 02 21:13:07 2009 +0000
@@ -79,7 +79,8 @@
(proc: nil; flags: 0), // amLowGravity
(proc: nil; flags: 0), // amExtraDamage
(proc: nil; flags: 0), // amInvulnerable
- (proc: nil; flags: 0) // amExtraTime
+ (proc: nil; flags: 0), // amExtraTime
+ (proc: nil; flags: 0) // amLaserSight
);
const BadTurn = Low(LongInt) div 4;
--- a/hedgewars/uConsts.pas Mon Mar 02 17:33:49 2009 +0000
+++ b/hedgewars/uConsts.pas Mon Mar 02 21:13:07 2009 +0000
@@ -83,7 +83,8 @@
amSkip, amRope, amMine, amDEagle, amDynamite, amFirePunch, amWhip,
amBaseballBat, amParachute, amAirAttack, amMineStrike, amBlowTorch,
amGirder, amTeleport, amSwitch, amMortar, amKamikaze, amCake,
- amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime);
+ amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun,
+ amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime, amLaserSight);
THWFont = (fnt16, fntBig, fntSmall);
@@ -1246,6 +1247,26 @@
isDamaging: false;
SkipTurns: 0;
PosCount: 1;
+ PosSprite: sprWater),
+ (NameId: sidLaserSight;
+ NameTex: nil;
+ Probability: 200;
+ NumberInCase: 1;
+ Ammo: (Propz: ammoprop_NoCrosshair or
+ ammoprop_DontHold or
+ ammoprop_Utility;
+ Count: 1;
+ NumPerTurn: 0;
+ Timer: 0;
+ Pos: 0;
+ AmmoType: amLaserSight);
+ Slot: 7;
+ TimeAfterTurn: 0;
+ minAngle: 0;
+ maxAngle: 0;
+ isDamaging: false;
+ SkipTurns: 0;
+ PosCount: 1;
PosSprite: sprWater)
);
--- a/hedgewars/uGears.pas Mon Mar 02 17:33:49 2009 +0000
+++ b/hedgewars/uGears.pas Mon Mar 02 21:13:07 2009 +0000
@@ -598,13 +598,13 @@
inc(GameTicks)
end;
-(* Purpose, to reset all transient attributes toggled by a utility. Right now that is just Low Gravity and Extra Damage and Invulnerability.
-Other possibilities include: Laser Sight... more?
-*)
+//Purpose, to reset all transient attributes toggled by a utility.
+//If any of these are set as permanent toggles in the frontend, that needs to be checked and skipped here.
procedure ResetUtilities;
begin
cGravity:= cMaxWindSpeed;
cDamageModifier:= _1;
+ cLaserSighting:= false;
if (CurrentHedgehog^.Gear <> nil) then
CurrentHedgehog^.Gear^.Invulnerable:= false;
end;
@@ -636,8 +636,8 @@
procedure DrawHH(Gear: PGear);
var t: LongInt;
amt: TAmmoType;
- hx, hy, m: LongInt;
- aAngle, dAngle: real;
+ hx, hy, cx, cy, tx, ty, m: LongInt;
+ lx, ly, dx, dy, aAngle, dAngle: real;
defaultPos, HatVisible: boolean;
begin
if (Gear^.State and gstHHDeath) <> 0 then
@@ -655,7 +655,7 @@
hwSign(Gear^.dX),
1,
7,
- 0);
+ 0, Gear^.Invulnerable);
defaultPos:= false
end else
@@ -665,7 +665,7 @@
hwSign(Gear^.dX),
2,
0,
- 0);
+ 0, Gear^.Invulnerable);
defaultPos:= false
end else
@@ -705,7 +705,7 @@
m,
1,
0,
- DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + dAngle);
+ DxDy2Angle(CurAmmoGear^.dY, CurAmmoGear^.dX) + dAngle, Gear^.Invulnerable);
defaultPos:= false
end;
gtBlowTorch: begin
@@ -714,7 +714,7 @@
hwSign(Gear^.dX),
3,
PHedgehog(Gear^.Hedgehog)^.visStepPos div 2,
- 0);
+ 0, Gear^.Invulnerable);
defaultPos:= false
end;
gtShover: DrawRotated(sprHandBaseball, hx, hy, hwSign(Gear^.dX), aangle + 180);
@@ -723,7 +723,7 @@
hwSign(Gear^.dX),
1,
4,
- 0);
+ 0, Gear^.Invulnerable);
defaultPos:= false
end;
gtPickHammer,
@@ -743,7 +743,7 @@
hwSign(Gear^.dX),
1,
6,
- 0)
+ 0, Gear^.Invulnerable)
else
DrawRotatedF(sprKamikaze,
hwRound(Gear^.X) + WorldDx,
@@ -760,7 +760,7 @@
hwSign(Gear^.dX),
2,
2,
- 0)
+ 0, Gear^.Invulnerable)
else
begin
DrawRotatedF(sprDress,
@@ -783,7 +783,7 @@
hwSign(Gear^.dX),
0,
4,
- 0);
+ 0, Gear^.Invulnerable);
defaultPos:= false
end
end
@@ -796,13 +796,13 @@
- hwSign(Gear^.dX),
1,
1,
- 0)
+ 0, Gear^.Invulnerable)
else
DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy,
hwSign(Gear^.dX),
1,
1,
- 0);
+ 0, Gear^.Invulnerable);
defaultPos:= false
end else
@@ -812,7 +812,7 @@
hwSign(Gear^.dX),
0,
PHedgehog(Gear^.Hedgehog)^.visStepPos div 2,
- 0);
+ 0, Gear^.Invulnerable);
defaultPos:= false;
HatVisible:= true
end
@@ -854,18 +854,18 @@
hwSign(Gear^.dX),
1,
2,
- 0);
+ 0, Gear^.Invulnerable);
amBlowTorch: DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy,
hwSign(Gear^.dX),
1,
3,
- 0);
+ 0, Gear^.Invulnerable);
amTeleport: DrawRotatedF(sprTeleport, hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy, 0, hwSign(Gear^.dX), 0);
amKamikaze: DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy,
hwSign(Gear^.dX),
1,
5,
- 0);
+ 0, Gear^.Invulnerable);
amWhip: DrawRotatedF(sprWhip,
hwRound(Gear^.X) + 1 + WorldDx,
hwRound(Gear^.Y) - 3 + WorldDy,
@@ -877,12 +877,13 @@
hwSign(Gear^.dX),
0,
4,
- 0);
+ 0, Gear^.Invulnerable);
HatVisible:= true;
with PHedgehog(Gear^.Hedgehog)^ do
if (HatTex <> nil)
- and (HatVisibility > 0) then
+ and (HatVisibility > 0)
+ and (not Gear^.Invulnerable) then
DrawTextureF(HatTex,
HatVisibility,
hwRound(Gear^.X) + 1 + WorldDx,
@@ -909,7 +910,7 @@
hwSign(Gear^.dX),
2,
1,
- Gear^.DirAngle);
+ Gear^.DirAngle, Gear^.Invulnerable);
defaultPos:= false
end else
@@ -920,13 +921,13 @@
- hwSign(Gear^.dX),
1,
1,
- 0)
+ 0, Gear^.Invulnerable)
else
DrawHedgehog(hwRound(Gear^.X) + 1 + WorldDx, hwRound(Gear^.Y) - 3 + WorldDy,
hwSign(Gear^.dX),
1,
1,
- 0);
+ 0, Gear^.Invulnerable);
defaultPos:= false
end;
end;
@@ -952,7 +953,7 @@
if HatVisibility > 0.0 then
HatVisibility:= HatVisibility - 0.2;
- if (HatTex <> nil)
+ if (HatTex <> nil) and (not Gear^.Invulnerable)
and (HatVisibility > 0) then
if DefaultPos then
DrawTextureF(HatTex,
@@ -1007,12 +1008,67 @@
else
if ShowCrosshair and ((Gear^.State and (gstAttacked or gstAnimation)) = 0) then
begin
+(* These calculations are a little complex for a few reasons:
+ 1: I need to draw the laser from weapon origin to nearest land
+ 2: I need to start the beam outside the hedgie for attractiveness.
+ I can't do the calc from there, or it accumulates more error visible in a deagle shot.
+ 3: I need to extend the beam beyond land.
+ This routine perhaps should be pushed into uStore or somesuch instead of continuuing the increase in size of this function.
+ Additionally, using crosshairs, amusingly, makes the laser imprecise to about 0.05% of a deagle shot. This means that if you are firing across an entire 4096px map your laser will be a few pixels off of the the deagle shot. This is still a lot more accurate than real laser sights - feel free to change if it bothers you.
+*)
+ if cLaserSighting then
+ begin
+ lx:= hwRound(Gear^.X);
+ ly:= hwRound(Gear^.Y);
+ dx:= hwSign(Gear^.dX) * Sin(Gear^.Angle * pi / cMaxAngle);
+ dy:= - Cos(Gear^.Angle * pi / cMaxAngle);
+ lx:= lx + dx * 16;
+ ly:= ly + dy * 16;
+
+ dx:= dx * 4;
+ dy:= dy * 4;
+
+ tx:= round(lx);
+ ty:= round(ly);
+ hx:= tx;
+ hy:= ty;
+ while ((ty and LAND_HEIGHT_MASK) = 0) and
+ ((tx and LAND_WIDTH_MASK) = 0) and
+ (Land[ty, tx] = 0) do
+ begin
+ lx:= lx + dx;
+ ly:= ly + dy;
+ tx:= round(lx);
+ ty:= round(ly)
+ end;
+ // reached edge of land. assume infinite beam. Extend it way out past camera
+ if ((ty and LAND_HEIGHT_MASK) <> 0) or ((tx and LAND_WIDTH_MASK) <> 0) then
+ begin
+ lx:= lx + dx * (LAND_WIDTH div 4);
+ ly:= ly + dy * (LAND_WIDTH div 4)
+ end;
+
+ //if (abs(lx-tx)>8) or (abs(ly-ty)>8) then
+ begin
+ glDisable(GL_TEXTURE_2D);
+ glEnable(GL_LINE_SMOOTH);
+ glBegin(GL_LINES);
+ glColor4ub($FF, $00, $00, $C0);
+ glVertex2i(hx + WorldDx, hy + WorldDy);
+ glVertex2i(tx + WorldDx, ty + WorldDy);
+ glEnd();
+ glColor4f(1, 1, 1, 1);
+ glEnable(GL_TEXTURE_2D);
+ glDisable(GL_LINE_SMOOTH);
+ end;
+ end;
+ // draw crossahair
if ((Gear^.State and gstHHHJump) <> 0) then m:= -1 else m:= 1;
+ cx:= Round(hwRound(Gear^.X) + hwSign(Gear^.dX) * m * Sin(Gear^.Angle*pi/cMaxAngle) * 80);
+ cy:= Round(hwRound(Gear^.Y) - Cos(Gear^.Angle*pi/cMaxAngle) * 80);
DrawRotatedTex(Team^.CrosshairTex,
- 12, 12,
- Round(hwRound(Gear^.X) + hwSign(Gear^.dX) * m * Sin(Gear^.Angle*pi/cMaxAngle) * 80) + WorldDx,
- Round(hwRound(Gear^.Y) - Cos(Gear^.Angle*pi/cMaxAngle) * 80) + WorldDy, 0,
- hwSign(Gear^.dX) * (Gear^.Angle * 180.0) / cMaxAngle)
+ 12, 12, cx+WorldDx, cy+WorldDy, 0,
+ hwSign(Gear^.dX) * (Gear^.Angle * 180.0) / cMaxAngle);
end
end
end
@@ -1242,9 +1298,11 @@
if (Mask and EXPLNoDamage) = 0 then
begin
if not Gear^.Invulnerable then
- inc(Gear^.Damage, dmg);
- if Gear^.Kind = gtHedgehog then
- AddDamageTag(hwRound(Gear^.X), hwRound(Gear^.Y), dmg, PHedgehog(Gear^.Hedgehog)^.Team^.Clan^.Color)
+ begin
+ inc(Gear^.Damage, dmg);
+ if Gear^.Kind = gtHedgehog then
+ AddDamageTag(hwRound(Gear^.X), hwRound(Gear^.Y), dmg, PHedgehog(Gear^.Hedgehog)^.Team^.Clan^.Color);
+ end;
end;
if ((Mask and EXPLDoNotTouchHH) = 0) or (Gear^.Kind <> gtHedgehog) then
begin
@@ -1286,11 +1344,12 @@
gtMine,
gtCase,
gtTarget: begin
- if (not Gear^.Invulnerable) then
+ if (not t^.Invulnerable) then
+ begin
inc(t^.Damage, dmg);
-
- if t^.Kind = gtHedgehog then
- AddDamageTag(hwRound(Gear^.X), hwRound(Gear^.Y), dmg, PHedgehog(t^.Hedgehog)^.Team^.Clan^.Color);
+ if t^.Kind = gtHedgehog then
+ AddDamageTag(hwRound(Gear^.X), hwRound(Gear^.Y), dmg, PHedgehog(t^.Hedgehog)^.Team^.Clan^.Color);
+ end;
DeleteCI(t);
t^.dX:= t^.dX + Gear^.dX * dmg * _0_01 + SignAs(cHHKick, Gear^.dX);
@@ -1326,10 +1385,13 @@
gtTarget,
gtCase: begin
if (Ammo^.Kind = gtDrill) then begin Ammo^.Timer:= 0; exit; end;
- inc(t^.ar[i]^.Damage, Damage);
+ if (not t^.ar[i]^.Invulnerable) then
+ begin
+ inc(t^.ar[i]^.Damage, Damage);
- if (t^.ar[i]^.Kind = gtHedgehog) and (Damage > 0) then
- AddDamageTag(hwRound(t^.ar[i]^.X), hwRound(t^.ar[i]^.Y), Damage, PHedgehog(t^.ar[i]^.Hedgehog)^.Team^.Clan^.Color);
+ if (t^.ar[i]^.Kind = gtHedgehog) and (Damage > 0) then
+ AddDamageTag(hwRound(t^.ar[i]^.X), hwRound(t^.ar[i]^.Y), Damage, PHedgehog(t^.ar[i]^.Hedgehog)^.Team^.Clan^.Color);
+ end;
DeleteCI(t^.ar[i]);
t^.ar[i]^.dX:= Ammo^.dX * Power * _0_01;
--- a/hedgewars/uLocale.pas Mon Mar 02 17:33:49 2009 +0000
+++ b/hedgewars/uLocale.pas Mon Mar 02 21:13:07 2009 +0000
@@ -24,7 +24,8 @@
sidParachute, sidAirAttack, sidMineStrike, sidBlowTorch,
sidGirder, sidTeleport, sidSwitch, sidMortar, sidWhip,
sidKamikaze, sidCake, sidSeduction, sidWatermelon,
- sidHellishBomb, sidDrill, sidBallgun, sidNapalm, sidRCPlane, sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime);
+ sidHellishBomb, sidDrill, sidBallgun, sidNapalm, sidRCPlane,
+ sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime, sidLaserSight);
TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused,
sidConfirm, sidSuddenDeath);
--- a/hedgewars/uMisc.pas Mon Mar 02 17:33:49 2009 +0000
+++ b/hedgewars/uMisc.pas Mon Mar 02 21:13:07 2009 +0000
@@ -97,6 +97,7 @@
cWindSpeed,
cGravity: hwFloat;
cDamageModifier: hwFloat;
+ cLaserSighting: boolean;
flagMakeCapture: boolean = false;
@@ -424,6 +425,7 @@
cWindSpeed.QWordValue:= 429496;// 0.0001
cGravity:= cMaxWindSpeed;
cDamageModifier:= _1;
+cLaserSighting:= false;
{$IFDEF DEBUGFILE}
{$I-}
--- a/hedgewars/uStore.pas Mon Mar 02 17:33:49 2009 +0000
+++ b/hedgewars/uStore.pas Mon Mar 02 21:13:07 2009 +0000
@@ -35,7 +35,7 @@
procedure DrawRotatedTex(Tex: PTexture; hw, hh, X, Y, Dir: LongInt; Angle: real);
procedure DrawCentered(X, Top: LongInt; Source: PTexture);
procedure DrawFromRect(X, Y: LongInt; r: PSDL_Rect; SourceTexture: PTexture);
-procedure DrawHedgehog(X, Y: LongInt; Dir: LongInt; Pos, Step: LongWord; Angle: real);
+procedure DrawHedgehog(X, Y: LongInt; Dir: LongInt; Pos, Step: LongWord; Angle: real; Invulnerable: boolean);
procedure DrawFillRect(r: TSDL_Rect);
function RenderStringTex(s: string; Color: Longword; font: THWFont): PTexture;
procedure RenderHealth(var Hedgehog: THedgehog);
@@ -496,7 +496,7 @@
DrawTexture(X - Source^.w div 2, Top, Source)
end;
-procedure DrawHedgehog(X, Y: LongInt; Dir: LongInt; Pos, Step: LongWord; Angle: real);
+procedure DrawHedgehog(X, Y: LongInt; Dir: LongInt; Pos, Step: LongWord; Angle: real; Invulnerable: boolean);
var l, r, t, b: real;
begin
@@ -522,6 +522,9 @@
glBegin(GL_QUADS);
+if Invulnerable then // twiddling the channels a bit. perhaps a pixmap or something would be better.
+ glColor4ub($CC, $FF, $0, $C0);
+
glTexCoord2f(l, t);
glVertex2i(-16, -16);
@@ -534,7 +537,9 @@
glTexCoord2f(l, b);
glVertex2i(-16, 16);
+
glEnd();
+glColor4f(1,1,1,1);
glPopMatrix
end;
--- a/share/hedgewars/Data/Locale/bg.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/bg.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Бой!
01:01=Равен рунд
--- a/share/hedgewars/Data/Locale/cs.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/cs.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Do boje!
01:01=Kolo nerozhodně
--- a/share/hedgewars/Data/Locale/de.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/de.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Auf in die Schlacht!
01:01=Unentschieden
--- a/share/hedgewars/Data/Locale/en.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/en.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Let's fight!
01:01=Round draw
--- a/share/hedgewars/Data/Locale/es.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/es.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Luchad!
01:01=Empate
--- a/share/hedgewars/Data/Locale/fi.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/fi.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Taistelu alkakoon!
01:01=Tasapeli
--- a/share/hedgewars/Data/Locale/fr.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/fr.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Plus de Dégâts
00:34=Invulnérable
00:35=Extra Time
+00:36=Laser Sight
01:00=C'est parti!
01:01=Round ex aequo
--- a/share/hedgewars/Data/Locale/it.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/it.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Combattiamo!
01:01=Round in parità
--- a/share/hedgewars/Data/Locale/pl.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/pl.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Walczmy!
01:01=Remis
--- a/share/hedgewars/Data/Locale/pt-br.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/pt-br.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Hora de lutar!
01:01=Partida empatou
--- a/share/hedgewars/Data/Locale/ru.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/ru.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Вперёд к победе!
01:01=Ничья
--- a/share/hedgewars/Data/Locale/sk.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/sk.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Do boja!
01:01=Remíza
--- a/share/hedgewars/Data/Locale/sv.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/sv.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Nu kör vi!
01:01=Oavgjort
--- a/share/hedgewars/Data/Locale/tr.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/tr.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Savaş başlasın!
01:01=Beraberlik
--- a/share/hedgewars/Data/Locale/uk.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/uk.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=Уперед до перемоги!
01:01=Нічия
--- a/share/hedgewars/Data/Locale/zh.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/zh.txt Mon Mar 02 21:13:07 2009 +0000
@@ -34,6 +34,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=戰鬥開始!
01:01=平手
--- a/share/hedgewars/Data/Locale/zh_CN.txt Mon Mar 02 17:33:49 2009 +0000
+++ b/share/hedgewars/Data/Locale/zh_CN.txt Mon Mar 02 21:13:07 2009 +0000
@@ -36,6 +36,7 @@
00:33=Extra Damage
00:34=Invulnerable
00:35=Extra Time
+00:36=Laser Sight
01:00=战斗啦!
01:01=平手