# HG changeset patch # User nemo # Date 1274235028 0 # Node ID 1ec68b8d3bd1925d3c4d423bd4073bbacb8b187c # Parent 95345f98da19615eab41a69096023108676689b9 Henek adds a flamethrower, updates some translations, and tweaks how fire works. diff -r 95345f98da19 -r 1ec68b8d3bd1 QTfrontend/hwconsts.cpp.in --- 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 >() << 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); diff -r 95345f98da19 -r 1ec68b8d3bd1 hedgewars/GSHandlers.inc --- 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; + + diff -r 95345f98da19 -r 1ec68b8d3bd1 hedgewars/GearDrawing.inc --- 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 diff -r 95345f98da19 -r 1ec68b8d3bd1 hedgewars/HHHandlers.inc --- 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); diff -r 95345f98da19 -r 1ec68b8d3bd1 hedgewars/uAIAmmoTests.pas --- 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; diff -r 95345f98da19 -r 1ec68b8d3bd1 hedgewars/uConsts.pas --- 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) ); diff -r 95345f98da19 -r 1ec68b8d3bd1 hedgewars/uGears.pas --- 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; diff -r 95345f98da19 -r 1ec68b8d3bd1 hedgewars/uLocale.pas --- 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, diff -r 95345f98da19 -r 1ec68b8d3bd1 share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png has changed diff -r 95345f98da19 -r 1ec68b8d3bd1 share/hedgewars/Data/Graphics/AmmoMenu/Ammos_bw.png Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos_bw.png has changed diff -r 95345f98da19 -r 1ec68b8d3bd1 share/hedgewars/Data/Graphics/Hedgehog/amFlamethrower.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amFlamethrower.png has changed diff -r 95345f98da19 -r 1ec68b8d3bd1 share/hedgewars/Data/Locale/en.txt --- 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 diff -r 95345f98da19 -r 1ec68b8d3bd1 share/hedgewars/Data/Missions/Training/Bazooka.lua --- 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 diff -r 95345f98da19 -r 1ec68b8d3bd1 share/hedgewars/Data/Missions/Training/Shotgun.lua --- 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 diff -r 95345f98da19 -r 1ec68b8d3bd1 share/hedgewars/Data/Missions/Training/SniperRifle.lua --- 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