# HG changeset patch # User unc0rr # Date 1236028387 0 # Node ID 6e05013899b2c680593081e3107aed9ac06021e0 # Parent 5618915f9ea4722dd9423dcf80cf4858efd8b9c1 laser beam by nemo reworked a bit by me diff -r 5618915f9ea4 -r 6e05013899b2 QTfrontend/hwconsts.cpp.in --- 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); diff -r 5618915f9ea4 -r 6e05013899b2 hedgewars/HHHandlers.inc --- 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); diff -r 5618915f9ea4 -r 6e05013899b2 hedgewars/uAIAmmoTests.pas --- 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; diff -r 5618915f9ea4 -r 6e05013899b2 hedgewars/uConsts.pas --- 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) ); diff -r 5618915f9ea4 -r 6e05013899b2 hedgewars/uGears.pas --- 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; diff -r 5618915f9ea4 -r 6e05013899b2 hedgewars/uLocale.pas --- 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); diff -r 5618915f9ea4 -r 6e05013899b2 hedgewars/uMisc.pas --- 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-} diff -r 5618915f9ea4 -r 6e05013899b2 hedgewars/uStore.pas --- 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; diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/bg.txt --- 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=Равен рунд diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/cs.txt --- 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ě diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/de.txt --- 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 diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/en.txt --- 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 diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/es.txt --- 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 diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/fi.txt --- 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 diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/fr.txt --- 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 diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/it.txt --- 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à diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/pl.txt --- 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 diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/pt-br.txt --- 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 diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/ru.txt --- 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=Ничья diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/sk.txt --- 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 diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/sv.txt --- 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 diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/tr.txt --- 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 diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/uk.txt --- 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=Нічия diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/zh.txt --- 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=平手 diff -r 5618915f9ea4 -r 6e05013899b2 share/hedgewars/Data/Locale/zh_CN.txt --- 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=平手