Henek adds a flamethrower, updates some translations, and tweaks how fire works.
--- a/QTfrontend/hwconsts.cpp.in Tue May 18 13:09:57 2010 +0000
+++ b/QTfrontend/hwconsts.cpp.in Wed May 19 02:10:28 2010 +0000
@@ -31,10 +31,10 @@
QStringList * mapList;
QString * cDefaultAmmoStore = new QString(
- "939192942219912103223511100120100000021119091"
- "040504054160065554655446477657666666615550100"
- "000000000000020550000004000700400000000020000"
- "131111031211111112311411111111111111121110111"
+ "9391929422199121032235111001201000000211190911"
+ "0405040541600655546554464776576666666155501000"
+ "0000000000000205500000040007004000000000200000"
+ "1311110312111111123114111111111111111211101111"
);
int cAmmoNumber = cDefaultAmmoStore->size() / 4;
@@ -42,30 +42,30 @@
QList< QPair<QString, QString> >()
<< qMakePair(QString("Default"), *cDefaultAmmoStore)
<< qMakePair(QString("Crazy"), QString(
- "999999999999999999299999999999999929999999999" // TODO: Remove Piano's unlimited uses!
- "111111011111111111111111111111111111111111111"
- "000000000000000000000000000000000000000000000"
- "131111031211111112311411111111111111121111010"))
+ "9999999999999999992999999999999999299999999999" // TODO: Remove Piano's unlimited uses!
+ "1111110111111111111111111111111111111111111111"
+ "0000000000000000000000000000000000000000000000"
+ "1311110312111111123114111111111111111211110101"))
<< qMakePair(QString("Pro mode"), QString(
- "909000900000000000000900000000000000000000090"
- "000000000000000000000000000000000000000000000"
- "000000000000020550000004000700400000000020000"
- "111111111111111111111111111111111111111110011"))
+ "9090009000000000000009000000000000000000000900"
+ "0000000000000000000000000000000000000000000000"
+ "0000000000000205500000040007004000000000200000"
+ "1111111111111111111111111111111111111111100111"))
<< qMakePair(QString("Shoppa"), QString(
- "000000990000000000000000000000000000000000000"
- "444441004424440221011212122242200000000200040"
- "000000000000000000000000000000000000000000000"
- "111111111111111111111111111111111111111110111"))
+ "0000009900000000000000000000000000000000000000"
+ "4444410044244402210112121222422000000002000400"
+ "0000000000000000000000000000000000000000000000"
+ "1111111111111111111111111111111111111111101111"))
<< qMakePair(QString("Basketball"),QString(
- "000000900000090000000000000000000000000000000"
- "000000000000000000000000000000000000000000000"
- "000000000000000550000004000700400000000020000"
- "111111111111111111111111111111111111111111111"))
+ "0000009000000900000000000000000000000000000000"
+ "0000000000000000000000000000000000000000000000"
+ "0000000000000005500000040007004000000000200000"
+ "1111111111111111111111111111111111111111111111"))
<< qMakePair(QString("Minefield"), QString(
- "000000990009000000030000000000000000000000000"
- "000000000000000000000000000000000000000000000"
- "000000000000020550000004000700400000000020000"
- "111111111111111111111111111111111111111111111"))
+ "0000009900090000000300000000000000000000000000"
+ "0000000000000000000000000000000000000000000000"
+ "0000000000000205500000040007004000000000200000"
+ "1111111111111111111111111111111111111111111111"))
;
QColor * color1 = new QColor(221, 0, 0);
--- a/hedgewars/GSHandlers.inc Tue May 18 13:09:57 2010 +0000
+++ b/hedgewars/GSHandlers.inc Wed May 19 02:10:28 2010 +0000
@@ -318,49 +318,49 @@
gtAmmo_Bomb: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
gtBall: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 40, EXPLAutoSound);
gtClusterBomb:
- begin
- x := hwRound(Gear^.X);
- y := hwRound(Gear^.Y);
- doMakeExplosion(x, y, 20, EXPLAutoSound);
- for i:= 0 to 4 do
- begin
- dX := rndSign(GetRandom * _0_1);
- dY := (GetRandom - _3) * _0_08;
- AddGear(x, y, gtCluster, 0, dX, dY, 25);
- end
+ begin
+ x := hwRound(Gear^.X);
+ y := hwRound(Gear^.Y);
+ doMakeExplosion(x, y, 20, EXPLAutoSound);
+ for i:= 0 to 4 do
+ begin
+ dX := rndSign(GetRandom * _0_1);
+ dY := (GetRandom - _3) * _0_08;
+ AddGear(x, y, gtCluster, 0, dX, dY, 25);
+ end
+ end;
+ gtWatermelon:
+ begin
+ x := hwRound(Gear^.X);
+ y := hwRound(Gear^.Y);
+ doMakeExplosion(x, y, 75, EXPLAutoSound);
+ for i:= 0 to 5 do
+ begin
+ dX := rndSign(GetRandom * _0_1);
+ dY := (GetRandom - _1_5) * _0_3;
+ AddGear(x, y, gtMelonPiece, 0, dX, dY, 75)^.DirAngle := i * 60;
+ end
+ end;
+ gtHellishBomb:
+ begin
+ x := hwRound(Gear^.X);
+ y := hwRound(Gear^.Y);
+ doMakeExplosion(x, y, 90, EXPLAutoSound);
+
+ for i:= 0 to 127 do
+ begin
+ dX := AngleCos(i * 16) * _0_5 * (GetRandom + _1);
+ dY := AngleSin(i * 16) * _0_5 * (GetRandom + _1);
+ Fire := AddGear(x, y, gtFlame, 0, dX, dY, 0);
+ if i mod 2 = 0 then Fire^.State := Fire^.State or gsttmpFlag;
+ Fire := AddGear(x, y, gtFlame, 0, dX, -dY, 0);
+ if i mod 2 <> 0 then Fire^.State := Fire^.State or gsttmpFlag;
+ end
+ end;
+ gtGasBomb: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 20, EXPLAutoSound or EXPLPoisoned);
end;
- gtWatermelon:
- begin
- x := hwRound(Gear^.X);
- y := hwRound(Gear^.Y);
- doMakeExplosion(x, y, 75, EXPLAutoSound);
- for i:= 0 to 5 do
- begin
- dX := rndSign(GetRandom * _0_1);
- dY := (GetRandom - _1_5) * _0_3;
- AddGear(x, y, gtMelonPiece, 0, dX, dY, 75)^.DirAngle := i * 60;
- end
- end;
- gtHellishBomb:
-begin
- x := hwRound(Gear^.X);
- y := hwRound(Gear^.Y);
- doMakeExplosion(x, y, 90, EXPLAutoSound);
-
- for i:= 0 to 127 do
- begin
- dX := AngleCos(i * 16) * _0_5 * (GetRandom + _1);
- dY := AngleSin(i * 16) * _0_5 * (GetRandom + _1);
- Fire := AddGear(x, y, gtFlame, 0, dX, dY, 0);
- if i mod 2 = 0 then Fire^.State := Fire^.State or gsttmpFlag;
- Fire := AddGear(x, y, gtFlame, 0, dX, -dY, 0);
- if i mod 2 <> 0 then Fire^.State := Fire^.State or gsttmpFlag;
- end
-end;
-gtGasBomb: doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound or EXPLPoisoned, $FFFFC000);
-end;
-DeleteGear(Gear);
-exit
+ DeleteGear(Gear);
+ exit
end;
CalcRotationDirAngle(Gear);
@@ -1670,11 +1670,11 @@
if Gear^.dX.QWordValue > _0_01.QWordValue then
Gear^.dX := Gear^.dX * _0_995;
Gear^.dY := Gear^.dY + cGravity;
- if (Gear^.State and gsttmpFlag) <> 0 then Gear^.dY := Gear^.dY + cGravity;
+ {if (Gear^.State and gsttmpFlag) <> 0 then Gear^.dY := Gear^.dY + cGravity;}
if Gear^.dY.QWordValue > _0_2.QWordValue then Gear^.dY := Gear^.dY * _0_995;
- if (Gear^.State and gsttmpFlag) <> 0 then Gear^.X := Gear^.X + Gear^.dX
- else
+ {if (Gear^.State and gsttmpFlag) <> 0 then Gear^.X := Gear^.X + Gear^.dX
+ else}
Gear^.X := Gear^.X + Gear^.dX + cWindSpeed * 640;
Gear^.Y := Gear^.Y + Gear^.dY;
@@ -3624,3 +3624,52 @@
Gear^.doStep := @doStepSineGunShotWork;
end;
+
+////////////////////////////////////////////////////////////////////////////////
+procedure doStepFlamethrowerWork(Gear: PGear);
+var
+ HHGear: PGear;
+ rx, ry: hwFloat;
+ gX, gY: LongInt;
+ Fire: PGear;
+begin
+ AllInactive := false;
+ dec(Gear^.Timer);
+ HHGear := PHedgehog(Gear^.Hedgehog)^.Gear;
+ HedgehogChAngle(HHGear);
+ gX := hwRound(Gear^.X);
+ gY := hwRound(Gear^.Y);
+ if (Gear^.Timer mod 100) = 0 then
+ begin
+ rx := rndSign(getRandom * _0_1);
+ ry := rndSign(getRandom * _0_1);
+
+ Fire := AddGear(gx, gy, gtFlame, 0,
+ SignAs(AngleSin(HHGear^.Angle) * _0_8, HHGear^.dX) + rx,
+ AngleCos(HHGear^.Angle) * ( - _0_8) + ry, 0);
+ Fire^.State := Fire^.State or gsttmpFlag;
+
+ if (Gear^.Timer mod 200) = 0 then
+ Fire := AddGear(gx, gy, gtFlame, 0,
+ SignAs(AngleSin(HHGear^.Angle) * _0_8, HHGear^.dX) + rx,
+ AngleCos(HHGear^.Angle) * ( - _0_8) + ry, 0);
+ end;
+
+ if (Gear^.Timer = 0) or (HHGear^.Damage <> 0) then
+ begin
+ DeleteGear(Gear);
+ AfterAttack
+ end
+end;
+
+procedure doStepFlamethrower(Gear: PGear);
+var
+ HHGear: PGear;
+begin
+ HHGear := PHedgehog(Gear^.Hedgehog)^.Gear;
+ HHGear^.Message := HHGear^.Message and not (gm_Up or gm_Down);
+ HHGear^.State := HHGear^.State or gstNotKickable;
+ Gear^.doStep := @doStepFlamethrowerWork
+end;
+
+
--- a/hedgewars/GearDrawing.inc Tue May 18 13:09:57 2010 +0000
+++ b/hedgewars/GearDrawing.inc Wed May 19 02:10:28 2010 +0000
@@ -291,6 +291,7 @@
end;
defaultPos:= false
end;
+ gtFlamethrower: DrawRotated(sprHandFlamethrower, hx, hy, hwSign(Gear^.dX), aangle);
end;
case CurAmmoGear^.Kind of
@@ -403,6 +404,7 @@
LongInt(leftX)+WorldDx)
end;
amBee: DrawRotatedF(sprHandBee, hx, hy, (RealTicks div 125) mod 4, hwSign(Gear^.dX), aangle);
+ amFlamethrower: DrawRotated(sprHandFlamethrower, hx, hy, hwSign(Gear^.dX), aangle);
end;
case amt of
@@ -645,7 +647,7 @@
case Gear^.Kind of
gtAmmo_Bomb: DrawRotated(sprBomb, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
gtGasBomb: DrawRotated(sprCheese, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
- gtMolotov: DrawRotated(sprMolotov, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
+ gtMolotov: DrawRotated(sprMolotov, hwRound(Gear^.X) + WorldDx, hwRound(Gear^.Y) + WorldDy, 0, Gear^.DirAngle);
gtRCPlane: begin
if (Gear^.Tag = -1) then
--- a/hedgewars/HHHandlers.inc Tue May 18 13:09:57 2010 +0000
+++ b/hedgewars/HHHandlers.inc Wed May 19 02:10:28 2010 +0000
@@ -220,6 +220,7 @@
FollowGear:= AddGear(TargetPoint.X, 0, gtPiano, 0, _0, _0, 0);
PauseMusic
end;
+ amFlamethrower: CurAmmoGear:= AddGear(hwRound(X), hwRound(Y), gtFlamethrower, 0, xx * _0_5, yy * _0_5, 0);
end;
uStats.AmmoUsed(Ammo^[CurSlot, CurAmmo].AmmoType);
--- a/hedgewars/uAIAmmoTests.pas Tue May 18 13:09:57 2010 +0000
+++ b/hedgewars/uAIAmmoTests.pas Wed May 19 02:10:28 2010 +0000
@@ -96,7 +96,8 @@
(proc: nil; flags: 0), // amPortalGun
(proc: nil; flags: 0), // amPiano
(proc: @TestGrenade; flags: 0), // amGasBomb
- (proc: @TestShotgun; flags: 0) // amSineGun
+ (proc: @TestShotgun; flags: 0), // amSineGun
+ (proc: nil; flags: 0) // amFlamethrower
);
const BadTurn = Low(LongInt) div 4;
--- a/hedgewars/uConsts.pas Tue May 18 13:09:57 2010 +0000
+++ b/hedgewars/uConsts.pas Wed May 19 02:10:28 2010 +0000
@@ -73,7 +73,7 @@
sprHandDynamite, sprHandHellish, sprHandMine, sprHandSeduction, sprHandVamp,
sprBigExplosion, sprSmokeRing, sprBeeTrace, sprEgg, sprTargetBee, sprHandBee,
sprFeather, sprPiano, sprHandSineGun, sprPortalGun, sprPortal,
- sprCheese, sprHandCheese
+ sprCheese, sprHandCheese, sprHandFlamethrower
);
// Gears that interact with other Gears and/or Land
@@ -86,7 +86,7 @@
gtWhip, gtKamikaze, gtCake, gtSeduction, gtWatermelon, gtMelonPiece, // 34
gtHellishBomb, gtWaterUp, gtDrill, gtBallGun, gtBall, gtRCPlane, // 40
gtSniperRifleShot, gtJetpack, gtMolotov, gtExplosives, gtBirdy, // 45
- gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot); // 50
+ gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower); // 51
// Gears that are _only_ of visual nature (e.g. background stuff, visual effects, speechbubbles, etc.)
TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire,
@@ -127,7 +127,7 @@
amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun,
amRCPlane, amLowGravity, amExtraDamage, amInvulnerable, amExtraTime,
amLaserSight, amVampiric, amSniperRifle, amJetpack, amMolotov, amBirdy, amPortalGun,
- amPiano, amGasBomb, amSineGun);
+ amPiano, amGasBomb, amSineGun, amFlamethrower);
THWFont = (fnt16, fntBig, fntSmall, CJKfnt16, CJKfntBig, CJKfntSmall);
@@ -749,11 +749,13 @@
(FileName: 'amPortalGun'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
Width: 128; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false), // sprPortalGun
(FileName: 'Portal'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
- Width: 32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false),// sprPortal
+ Width: 32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false), // sprPortal
(FileName: 'cheese'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
- Width: 16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false),// sprCheese
+ Width: 16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false), // sprCheese
(FileName: 'amCheese'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
- Width: 64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false) // sprHandCheese
+ Width: 64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false), // sprHandCheese
+ (FileName: 'amFlamethrower'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
+ Width: 64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false) // sprHandFlamethrower
);
Wavez: array [TWave] of record
@@ -1905,7 +1907,7 @@
Pos: 0;
AmmoType: amPortalGun;
AttackVoice: sndNone);
- Slot: 2;
+ Slot: 6;
TimeAfterTurn: 0;
minAngle: 0;
maxAngle: 0;
@@ -1982,6 +1984,28 @@
isDamaging: true;
SkipTurns: 0;
PosCount: 1;
+ PosSprite: sprWater),
+
+// Flamethrower
+ (NameId: sidFlamethrower;
+ NameTex: nil;
+ Probability: 20;
+ NumberInCase: 1;
+ Ammo: (Propz: ammoprop_ForwMsgs or ammoprop_DontHold;
+ Count: 1;
+ InitialCount: 1;
+ NumPerTurn: 0;
+ Timer: 5001;
+ Pos: 0;
+ AmmoType: amFlamethrower;
+ AttackVoice: sndNone);
+ Slot: 2;
+ TimeAfterTurn: 0;
+ minAngle: 0;
+ maxAngle: 0;
+ isDamaging: true;
+ SkipTurns: 0;
+ PosCount: 1;
PosSprite: sprWater)
);
--- a/hedgewars/uGears.pas Tue May 18 13:09:57 2010 +0000
+++ b/hedgewars/uGears.pas Wed May 19 02:10:28 2010 +0000
@@ -182,7 +182,8 @@
@doStepPortalShot,
@doStepPiano,
@doStepBomb,
- @doStepSineGunShot
+ @doStepSineGunShot,
+ @doStepFlamethrower
);
procedure InsertGearToList(Gear: PGear);
@@ -483,6 +484,9 @@
gear^.Radius:= 5;
gear^.Health:= 6000;
end;
+gtFlamethrower: begin
+ gear^.Timer:= 5001;
+ end;
end;
InsertGearToList(gear);
AddGear:= gear;
--- a/hedgewars/uLocale.pas Tue May 18 13:09:57 2010 +0000
+++ b/hedgewars/uLocale.pas Wed May 19 02:10:28 2010 +0000
@@ -29,7 +29,7 @@
sidHellishBomb, sidDrill, sidBallgun, sidNapalm, sidRCPlane,
sidLowGravity, sidExtraDamage, sidInvulnerable, sidExtraTime,
sidLaserSight, sidVampiric, sidSniperRifle, sidJetpack,
- sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb, sidSineGun);
+ sidMolotov, sidBirdy, sidPortalGun, sidPiano, sidGasBomb, sidSineGun, sidFlamethrower);
TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused,
sidConfirm, sidSuddenDeath, sidRemaining, sidFuel, sidSync,
Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png has changed
Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos_bw.png has changed
Binary file share/hedgewars/Data/Graphics/Hedgehog/amFlamethrower.png has changed
--- a/share/hedgewars/Data/Locale/en.txt Tue May 18 13:09:57 2010 +0000
+++ b/share/hedgewars/Data/Locale/en.txt Wed May 19 02:10:28 2010 +0000
@@ -46,6 +46,7 @@
00:43=Piano Strike
00:44=Old Limburger
00:45=Sine Gun
+00:46=Flamethrower
01:00=Let's fight!
01:01=Round draw
--- a/share/hedgewars/Data/Missions/Training/Bazooka.lua Tue May 18 13:09:57 2010 +0000
+++ b/share/hedgewars/Data/Missions/Training/Bazooka.lua Wed May 19 02:10:28 2010 +0000
@@ -21,7 +21,8 @@
["es"] = "Entrenamiento con bazuca",
["pl"] = "Trening bazooki",
["pt_PT"] = "Treino com Bazuca",
- ["pt_BR"] = "Treino com a Bazuca"
+ ["pt_BR"] = "Treino com a Bazuca",
+ ["sv"] = "Bazookaträning"
-- To add other languages, just add lines similar to the
-- existing ones - don't forget the trailing ","!
}
@@ -32,7 +33,8 @@
["es"] = "Practica tu puntería",
["pl"] = "Potrenuj celność",
["pt_PT"] = "Pratica a tua pontaria",
- ["pt_BR"] = "Pratique a sua pontaria"
+ ["pt_BR"] = "Pratique a sua pontaria",
+ ["sv"] = "Siktesövning"
}
local goal = {
@@ -41,7 +43,8 @@
["es"] = "Destruye todos los objetivos antes de que se agote el tiempo.|La munición en esta misión es ilimitada.",
["pl"] = "Zniszcz wszystkie cele zanim upłynie czas.|W tej misji masz nieskończoną ilość amunicji.",
["pt_PT"] = "Destrói todos os alvos antes do tempo terminar.|Tens munições infinitas para esta missão.",
- ["pt_BR"] = "Destrua todos os alvos antes que o tempo acabe.|Você tem munição infinita para esta missão."
+ ["pt_BR"] = "Destrua todos os alvos antes que o tempo acabe.|Você tem munição infinita para esta missão.",
+ ["sv"] = "Förstör alla målen innan din tid tar slut.|Du har obegränsad ammunition för deta uppdrag"
}
local timeout = {
@@ -50,7 +53,8 @@
["es"] = "¡Oh, no, se te acabó el tiempo! ¿Por qué no lo intentas de nuevo?",
["pl"] = "Ajajaj! Koniec czasu! Spróbuj jeszcze raz.",
["pt_PT"] = "Oh não! Acabou o tempo! Tenta novamente.",
- ["pt_BR"] = "Oh não! O tempo acabou! Tente novamente."
+ ["pt_BR"] = "Oh não! O tempo acabou! Tente novamente.",
+ ["sv"] = "Åh nej! Tiden är ute! Pröva igen."
}
local success = {
@@ -59,7 +63,8 @@
["es"] = "¡Felicidades! Has destruido todos los objectivos|dentro del tiempo establecido.",
["pl"] = "Gratulacje! Zniszczyłeś wszystkie cele przed upłynięciem czasu.",
["pt_PT"] = "Parabéns! Eliminaste todos os alvos|dentro do tempo limite.",
- ["pt_BR"] = "Parabéns! Você eliminou todos os alvos|dentro do tempo limite."
+ ["pt_BR"] = "Parabéns! Você eliminou todos os alvos|dentro do tempo limite.",
+ ["sv"] = "Grattis! Du har förstört alla målen inom den|tillåtna tidsramen."
}
local teamname = {
@@ -68,7 +73,8 @@
["es"] = "Bazuqueros",
["pl"] = "Bazookinierzy",
["pt_PT"] = "Bazuqueiros",
- ["pt_BR"] = "Bazuqueiros"
+ ["pt_BR"] = "Bazuqueiros",
+ ["sv"] = "Bazookalaget"
}
local hogname = {
@@ -77,7 +83,8 @@
["es"] = "Artillero",
["pl"] = "Strzelec",
["pt_PT"] = "Comando",
- ["pt_BR"] = "Artilheiro"
+ ["pt_BR"] = "Artilheiro",
+ ["sv"] = "Jägare"
}
-- To handle missing texts we define a small wrapper function that
--- a/share/hedgewars/Data/Missions/Training/Shotgun.lua Tue May 18 13:09:57 2010 +0000
+++ b/share/hedgewars/Data/Missions/Training/Shotgun.lua Wed May 19 02:10:28 2010 +0000
@@ -21,7 +21,8 @@
["es"] = "Entrenamiento con escopeta",
["pl"] = "Trening strzelecki",
["pt_PT"] = "Treino com Caçadeira",
- ["pt_BR"] = "Treino com a Escopeta"
+ ["pt_BR"] = "Treino com a Escopeta",
+ ["sv"] = "Hagelgevärsträning"
-- To add other languages, just add lines similar to the
-- existing ones - don't forget the trailing ","!
}
@@ -32,7 +33,8 @@
["es"] = "Practica tu puntería",
["pl"] = "Potrenuj celność",
["pt_PT"] = "Pratica a tua pontaria",
- ["pt_BR"] = "Pratique a sua pontaria"
+ ["pt_BR"] = "Pratique a sua pontaria",
+ ["sv"] = "Siktesövning"
}
local goal = {
@@ -41,7 +43,8 @@
["es"] = "Destruye todos los objetivos antes de que se agote el tiempo.|La munición en esta misión es ilimitada.",
["pl"] = "Zniszcz wszystkie cele zanim upłynie czas.|W tej misji masz nieskończoną ilość amunicji.",
["pt_PT"] = "Destrói todos os alvos antes do tempo terminar.|Tens munições infinitas para esta missão.",
- ["pt_BR"] = "Destrua todos os alvos antes que o tempo acabe.|Você tem munição infinita para esta missão."
+ ["pt_BR"] = "Destrua todos os alvos antes que o tempo acabe.|Você tem munição infinita para esta missão.",
+ ["sv"] = "Förstör alla målen innan din tid tar slut.|Du har obegränsad ammunition för deta uppdrag"
}
local timeout = {
@@ -50,7 +53,8 @@
["es"] = "¡Oh, no, se te acabó el tiempo! ¿Por qué no lo intentas de nuevo?",
["pl"] = "Ajajaj! Koniec czasu! Spróbuj jeszcze raz.",
["pt_PT"] = "Oh não! Acabou o tempo! Tenta novamente.",
- ["pt_BR"] = "Oh não! O tempo acabou! Tente novamente."
+ ["pt_BR"] = "Oh não! O tempo acabou! Tente novamente.",
+ ["sv"] = "Åh nej! Tiden är ute! Pröva igen."
}
local success = {
@@ -59,7 +63,8 @@
["es"] = "¡Felicidades! Has destruido todos los objectivos|dentro del tiempo establecido.",
["pl"] = "Gratulacje! Zniszczyłeś wszystkie cele przed upłynięciem czasu.",
["pt_PT"] = "Parabéns! Eliminaste todos os alvos|dentro do tempo limite.",
- ["pt_BR"] = "Parabéns! Você eliminou todos os alvos|dentro do tempo limite."
+ ["pt_BR"] = "Parabéns! Você eliminou todos os alvos|dentro do tempo limite.",
+ ["sv"] = "Grattis! Du har förstört alla målen inom den|tillåtna tidsramen."
}
local teamname = {
@@ -68,7 +73,8 @@
["es"] = "Escopeteros",
["pl"] = "Shotgun Team",
["pt_PT"] = "Caçadores",
- ["pt_PT"] = "Carabineiros"
+ ["pt_PT"] = "Carabineiros",
+ ["sv"] = "Hagelgevärslaget"
}
local hogname = {
@@ -78,6 +84,7 @@
["pl"] = "Strzelec",
["pt_PT"] = "Comando",
["pt_BR"] = "Caçador",
+ ["sv"] = "Jägare"
}
-- To handle missing texts we define a small wrapper function that
--- a/share/hedgewars/Data/Missions/Training/SniperRifle.lua Tue May 18 13:09:57 2010 +0000
+++ b/share/hedgewars/Data/Missions/Training/SniperRifle.lua Wed May 19 02:10:28 2010 +0000
@@ -21,7 +21,8 @@
["es"] = "Entrenamiento con rifle francotirador",
["pl"] = "Trening Snajperski",
["pt_PT"] = "Treino com Sniper",
- ["pt_BR"] = "Treino com o Rifle Sniper"
+ ["pt_BR"] = "Treino com o Rifle Sniper",
+ ["sv"] = "Prickskyttesträning"
-- To add other languages, just add lines similar to the
-- existing ones - don't forget the trailing ","!
}
@@ -32,7 +33,8 @@
["es"] = "Practica tu puntería",
["pl"] = "Potrenuj celność",
["pt_PT"] = "Pratica a tua pontaria",
- ["pt_BR"] = "Pratique a sua pontaria"
+ ["pt_BR"] = "Pratique a sua pontaria",
+ ["sv"] = "Siktesövning"
}
local goal = {
@@ -41,7 +43,8 @@
["es"] = "Destruye todos los objetivos antes de que se agote el tiempo.|La munición en esta misión es ilimitada.",
["pl"] = "Zniszcz wszystkie cele zanim upłynie czas.|W tej misji masz nieskończoną ilość amunicji.",
["pt_PT"] = "Destrói todos os alvos antes do tempo terminar.|Tens munições infinitas para esta missão.",
- ["pt_BR"] = "Destrua todos os alvos antes que o tempo acabe.|Você tem munição infinita para esta missão."
+ ["pt_BR"] = "Destrua todos os alvos antes que o tempo acabe.|Você tem munição infinita para esta missão.",
+ ["sv"] = "Förstör alla målen innan din tid tar slut.|Du har obegränsad ammunition för deta uppdrag"
}
local timeout = {
@@ -50,7 +53,8 @@
["es"] = "¡Oh, no, se te acabó el tiempo! ¿Por qué no lo intentas de nuevo?",
["pl"] = "Ajajaj! Koniec czasu! Spróbuj jeszcze raz.",
["pt_PT"] = "Oh não! Acabou o tempo! Tenta novamente.",
- ["pt_BR"] = "Oh não! O tempo acabou! Tente novamente."
+ ["pt_BR"] = "Oh não! O tempo acabou! Tente novamente.",
+ ["sv"] = "Åh nej! Tiden är ute! Pröva igen."
}
local success = {
@@ -59,7 +63,8 @@
["es"] = "¡Felicidades! Has destruido todos los objectivos|dentro del tiempo establecido.",
["pl"] = "Gratulacje! Zniszczyłeś wszystkie cele przed upłynięciem czasu.",
["pt_PT"] = "Parabéns! Eliminaste todos os alvos|dentro do tempo limite.",
- ["pt_BR"] = "Parabéns! Você eliminou todos os alvos|dentro do tempo limite."
+ ["pt_BR"] = "Parabéns! Você eliminou todos os alvos|dentro do tempo limite.",
+ ["sv"] = "Grattis! Du har förstört alla målen inom den|tillåtna tidsramen."
}
local teamname = {
@@ -67,7 +72,8 @@
["de"] = "Heckenschützen",
["es"] = "Fusileros",
["pl"] = "Snajperzy",
- ["pt_BR"] = "Franco-Atiradores"
+ ["pt_BR"] = "Franco-Atiradores",
+ ["sv"] = "Prickskyttarna"
}
local hogname = {
@@ -76,7 +82,8 @@
["es"] = "Francotirador",
["pl"] = "Strzelec",
["pt_PT"] = "Comando",
- ["pt_BR"] = "Caçador"
+ ["pt_BR"] = "Caçador",
+ ["sv"] = "Jägare"
}
-- To handle missing texts we define a small wrapper function that