# HG changeset patch # User jose1711 # Date 1293132391 -3600 # Node ID 20b982afbe6efb6e72bcc44ae7a838ce050773ae # Parent 5ef5415c4ee1240891de4ce0513dab4c1de50941# Parent 48ab5ea4e9c9bbbc4ab5c4cf22a3168c2eb829dd merge+Slovak transl update diff -r 5ef5415c4ee1 -r 20b982afbe6e QTfrontend/SDLs.cpp --- a/QTfrontend/SDLs.cpp Thu Dec 23 17:47:50 2010 +0100 +++ b/QTfrontend/SDLs.cpp Thu Dec 23 20:26:31 2010 +0100 @@ -166,7 +166,7 @@ SDLMusicInit(); if (music == NULL) { - music = Mix_LoadMUS((datadir->absolutePath() + "/Music/main theme.ogg").toLocal8Bit().constData()); + music = Mix_LoadMUS((datadir->absolutePath() + "/Music/main_theme.ogg").toLocal8Bit().constData()); } Mix_VolumeMusic(MIX_MAX_VOLUME - 28); diff -r 5ef5415c4ee1 -r 20b982afbe6e QTfrontend/ammoSchemeModel.cpp --- a/QTfrontend/ammoSchemeModel.cpp Thu Dec 23 17:47:50 2010 +0100 +++ b/QTfrontend/ammoSchemeModel.cpp Thu Dec 23 20:26:31 2010 +0100 @@ -628,12 +628,20 @@ { Q_UNUSED(count); - beginInsertRows(parent, row, row); + beginInsertRows(parent, schemes.size(), schemes.size()); - QList newScheme = defaultScheme; - newScheme[0] = QVariant(tr("new")); - - schemes.insert(row, newScheme); + if (row == -1) + { + QList newScheme = defaultScheme; + newScheme[0] = QVariant(tr("new")); + schemes.insert(schemes.size(), newScheme); + } + else + { + QList newScheme = schemes[row]; + newScheme[0] = QVariant(tr("copy of") + " " + newScheme[0].toString()); + schemes.insert(schemes.size(), newScheme); + } endInsertRows(); diff -r 5ef5415c4ee1 -r 20b982afbe6e QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Thu Dec 23 17:47:50 2010 +0100 +++ b/QTfrontend/hwform.cpp Thu Dec 23 20:26:31 2010 +0100 @@ -86,7 +86,7 @@ ui.setupUi(this); setMinimumSize(760, 580); - setFocusPolicy(Qt::StrongFocus); + //setFocusPolicy(Qt::StrongFocus); CustomizePalettes(); ui.pageOptions->CBResolution->addItems(sdli.getResolutions()); @@ -308,11 +308,13 @@ } } +/* void HWForm::keyReleaseEvent(QKeyEvent *event) { - if (event->key() == Qt::Key_Escape /*|| event->key() == Qt::Key_Backspace*/ ) + if (event->key() == Qt::Key_Escape) this->GoBack(); } +*/ void HWForm::CustomizePalettes() { @@ -1170,7 +1172,7 @@ QStringList entries = tmpdir.entryList(QStringList("*#*.lua")); //entries.sort(); for(int i = 0; (i < entries.count()) && (i <= team.CampaignProgress); i++) - ui.pageCampaign->CBSelect->addItem(QString(entries[i]).replace(QRegExp("^(\\d+)#(.+)\\.lua"), QComboBox::tr("Mission") + " \\1: \\2"), QString(entries[i]).replace(QRegExp("^(.*)\\.lua"), "\\1")); + ui.pageCampaign->CBSelect->addItem(QString(entries[i]).replace(QRegExp("^(\\d+)#(.+)\\.lua"), QComboBox::tr("Mission") + " \\1: \\2").replace("_", " "), QString(entries[i]).replace(QRegExp("^(.*)\\.lua"), "\\1")); } void HWForm::AssociateFiles() diff -r 5ef5415c4ee1 -r 20b982afbe6e QTfrontend/hwform.h --- a/QTfrontend/hwform.h Thu Dec 23 17:47:50 2010 +0100 +++ b/QTfrontend/hwform.h Thu Dec 23 20:26:31 2010 +0100 @@ -122,7 +122,7 @@ void closeEvent(QCloseEvent *event); void CustomizePalettes(); void resizeEvent(QResizeEvent * event); - void keyReleaseEvent(QKeyEvent *event); + //void keyReleaseEvent(QKeyEvent *event); enum PageIDs { ID_PAGE_SETUP_TEAM = 0, diff -r 5ef5415c4ee1 -r 20b982afbe6e QTfrontend/pages.cpp --- a/QTfrontend/pages.cpp Thu Dec 23 17:47:50 2010 +0100 +++ b/QTfrontend/pages.cpp Thu Dec 23 20:26:31 2010 +0100 @@ -1063,7 +1063,10 @@ tmpdir.setFilter(QDir::Files); CBSelect->addItems(tmpdir.entryList(QStringList("*.lua")).replaceInStrings(QRegExp("^(.*)\\.lua"), "\\1")); for(int i = 0; i < CBSelect->count(); i++) + { CBSelect->setItemData(i, CBSelect->itemText(i)); + CBSelect->setItemText(i, CBSelect->itemText(i).replace("_", " ")); + } pageLayout->addWidget(CBSelect, 1, 1); @@ -1104,23 +1107,25 @@ QGridLayout * pageLayout = new QGridLayout(this); pWeapons = new SelWeaponWidget(cAmmoNumber, this); - pageLayout->addWidget(pWeapons, 0, 0, 1, 6); + pageLayout->addWidget(pWeapons, 0, 0, 1, 5); - BtnBack = addButton(":/res/Exit.png", pageLayout, 1, 0, true); - BtnDefault = addButton(tr("Default"), pageLayout, 1, 2); - BtnNew = addButton(tr("New"), pageLayout, 1, 3); - BtnDelete = addButton(tr("Delete"), pageLayout, 1, 4); - BtnSave = addButton(":/res/Save.png", pageLayout, 1, 5, true); + BtnBack = addButton(":/res/Exit.png", pageLayout, 1, 0, 2, 1, true); + BtnDefault = addButton(tr("Default"), pageLayout, 1, 3); + BtnNew = addButton(tr("New"), pageLayout, 1, 2); + BtnCopy = addButton(tr("Copy"), pageLayout, 2, 2); + BtnDelete = addButton(tr("Delete"), pageLayout, 2, 3); + BtnSave = addButton(":/res/Save.png", pageLayout, 1, 4, 2, 1, true); BtnSave->setStyleSheet("QPushButton{margin: 24px 0px 0px 0px;}"); BtnBack->setFixedHeight(BtnSave->height()); BtnBack->setStyleSheet("QPushButton{margin-top: 31px;}"); selectWeaponSet = new QComboBox(this); - pageLayout->addWidget(selectWeaponSet, 1, 1); + pageLayout->addWidget(selectWeaponSet, 1, 1, 2, 1); connect(BtnDefault, SIGNAL(clicked()), pWeapons, SLOT(setDefault())); connect(BtnSave, SIGNAL(clicked()), pWeapons, SLOT(save())); connect(BtnNew, SIGNAL(clicked()), pWeapons, SLOT(newWeaponsName())); + connect(BtnCopy, SIGNAL(clicked()), pWeapons, SLOT(copy())); connect(selectWeaponSet, SIGNAL(currentIndexChanged(const QString&)), pWeapons, SLOT(setWeaponsName(const QString&))); } @@ -1502,7 +1507,7 @@ sp.setVerticalPolicy(QSizePolicy::MinimumExpanding); sp.setHorizontalPolicy(QSizePolicy::Expanding); - pageLayout->addWidget(gb, 1,0,13,4); + pageLayout->addWidget(gb, 1,0,13,5); gbGameModes = new QGroupBox(QGroupBox::tr("Game Modifiers"), gb); gbBasicSettings = new QGroupBox(QGroupBox::tr("Basic Settings"), gb); @@ -1829,12 +1834,14 @@ mapper = new QDataWidgetMapper(this); BtnBack = addButton(":/res/Exit.png", pageLayout, 15, 0, true); - BtnNew = addButton(tr("New"), pageLayout, 15, 2); - BtnDelete = addButton(tr("Delete"), pageLayout, 15, 3); + BtnCopy = addButton(tr("Copy"), pageLayout, 15, 2); + BtnNew = addButton(tr("New"), pageLayout, 15, 3); + BtnDelete = addButton(tr("Delete"), pageLayout, 15, 4); selectScheme = new QComboBox(this); pageLayout->addWidget(selectScheme, 15, 1); + connect(BtnCopy, SIGNAL(clicked()), this, SLOT(copyRow())); connect(BtnNew, SIGNAL(clicked()), this, SLOT(newRow())); connect(BtnDelete, SIGNAL(clicked()), this, SLOT(deleteRow())); connect(selectScheme, SIGNAL(currentIndexChanged(int)), mapper, SLOT(setCurrentIndex(int))); @@ -1891,7 +1898,14 @@ void PageScheme::newRow() { QAbstractItemModel * model = mapper->model(); - model->insertRow(model->rowCount()); + model->insertRow(-1); + selectScheme->setCurrentIndex(model->rowCount() - 1); +} + +void PageScheme::copyRow() +{ + QAbstractItemModel * model = mapper->model(); + model->insertRow(selectScheme->currentIndex()); selectScheme->setCurrentIndex(model->rowCount() - 1); } diff -r 5ef5415c4ee1 -r 20b982afbe6e QTfrontend/pages.h --- a/QTfrontend/pages.h Thu Dec 23 17:47:50 2010 +0100 +++ b/QTfrontend/pages.h Thu Dec 23 20:26:31 2010 +0100 @@ -74,7 +74,7 @@ Q_UNUSED(parent); font14 = new QFont("MS Shell Dlg", 14); - setFocusPolicy(Qt::StrongFocus); + //setFocusPolicy(Qt::StrongFocus); } virtual ~AbstractPage() {}; @@ -395,6 +395,7 @@ QPushButton *BtnDefault; QPushButton *BtnDelete; QPushButton *BtnNew; + QPushButton *BtnCopy; QPushButton *BtnBack; SelWeaponWidget* pWeapons; QComboBox* selectWeaponSet; @@ -469,6 +470,7 @@ PageScheme(QWidget* parent = 0); QPushButton * BtnBack; + QPushButton * BtnCopy; QPushButton * BtnNew; QPushButton * BtnDelete; QPushButton * BtnSave; @@ -478,6 +480,7 @@ public slots: void newRow(); + void copyRow(); void deleteRow(); private: diff -r 5ef5415c4ee1 -r 20b982afbe6e QTfrontend/res/btnMoreWind.png Binary file QTfrontend/res/btnMoreWind.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e QTfrontend/res/btnNoWind.png Binary file QTfrontend/res/btnNoWind.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e QTfrontend/selectWeapon.cpp --- a/QTfrontend/selectWeapon.cpp Thu Dec 23 17:47:50 2010 +0100 +++ b/QTfrontend/selectWeapon.cpp Thu Dec 23 20:26:31 2010 +0100 @@ -269,3 +269,10 @@ { return wconf->allKeys(); } + +void SelWeaponWidget::copy() +{ + QString ammo = getWeaponsString(curWeaponsName); + setWeaponsName(tr("copy of") + " " + curWeaponsName); + setWeapons(ammo); +} diff -r 5ef5415c4ee1 -r 20b982afbe6e QTfrontend/selectWeapon.h --- a/QTfrontend/selectWeapon.h Thu Dec 23 17:47:50 2010 +0100 +++ b/QTfrontend/selectWeapon.h Thu Dec 23 20:26:31 2010 +0100 @@ -59,6 +59,7 @@ void deleteWeaponsName(); void newWeaponsName(); void save(); + void copy(); signals: void weaponsChanged(); diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/GSHandlers.inc Thu Dec 23 20:26:31 2010 +0100 @@ -320,7 +320,7 @@ if isFalling then begin Gear^.dY := Gear^.dY + cGravity; - if (GameFlags and gfMoreWind) <> 0 then Gear^.dX := Gear^.dX + cWindSpeed * _16 / max(12,sqr(Gear^.Radius)) + if (GameFlags and gfMoreWind) <> 0 then Gear^.dX := Gear^.dX + cWindSpeed / Gear^.Density end; Gear^.X := Gear^.X + Gear^.dX; @@ -558,6 +558,88 @@ end end; +procedure doStepSnowflake(Gear: PGear); +var xx, yy, px, py, i: LongInt; + move, allpx: Boolean; + s: PSDL_Surface; + p: PLongwordArray; +begin +if GameTicks and $7 = 0 then + begin + with Gear^ do + begin + X:= X + cWindSpeed * 1600 + dX; + Y:= Y + dY + cGravity * vobFallSpeed * 8; // using same value as flakes to try and get similar results + xx:= hwRound(X); + yy:= hwRound(Y); + if vobVelocity <> 0 then + begin + DirAngle := DirAngle + (Angle / 1250000000); + if DirAngle < 0 then DirAngle := DirAngle + 360 + else if 360 < DirAngle then DirAngle := DirAngle - 360; + end; + + inc(Health, 8); + if Health > vobFrameTicks then + begin + dec(Health, vobFrameTicks); + inc(Timer); + if Timer = vobFramesCount then Timer:= 0 + end; + + 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 + begin + // we've collided with land. draw some stuff and get back into the clouds + move:= true; +////////////////////////////////// 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 + 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 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; + if move then + begin + X:= int2hwFloat(GetRandom(LAND_WIDTH+1024)-512); + Y:= int2hwFloat(750+(GetRandom(50)-25)) + end + end + end +end; + //////////////////////////////////////////////////////////////////////////////// procedure doStepGrave(Gear: PGear); begin @@ -1156,7 +1238,7 @@ HHGear^.X := HHGear^.X + HHGear^.dX; HHGear^.Y := HHGear^.Y + HHGear^.dY; HHGear^.dY := HHGear^.dY + cGravity; - if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed * _0_2; + if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed / HHGear^.Density; if (Gear^.Message and gmAttack) <> 0 then begin @@ -1222,7 +1304,7 @@ if not TestCollisionYwithGear(HHGear, 1) then begin HHGear^.dY := HHGear^.dY + cGravity; - if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed * _0_2 + if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed / HHGear^.Density; end; ropeDx := HHGear^.X - Gear^.X; @@ -1451,7 +1533,7 @@ HHGear^.Y := HHGear^.Y + HHGear^.dY; Gear^.Y := Gear^.Y + HHGear^.dY; HHGear^.dY := HHGear^.dY + cGravity; - if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed * _0_2 + if (GameFlags and gfMoreWind) <> 0 then HHGear^.dX := HHGear^.dX + cWindSpeed / HHGear^.Density end; tt := Gear^.Elasticity; @@ -3698,7 +3780,7 @@ iterator^.dY:= iterator^.dY + hwAbs(cGravity * (iterator^.Y - conPortal^.Y)) end; - if not isbullet then + if not isbullet and (iterator^.Kind <> gtFlake) then FollowGear := iterator; //AddFileLog('portal''d'); diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/HHHandlers.inc --- a/hedgewars/HHHandlers.inc Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/HHHandlers.inc Thu Dec 23 20:26:31 2010 +0100 @@ -276,7 +276,8 @@ end; amLowGravity: begin PlaySound(sndLowGravity); - cGravity:= cMaxWindSpeed + cGravity:= cMaxWindSpeed; + cGravityf:= 0.00025 end; amExtraDamage:begin PlaySound(sndHellishImpact4); @@ -668,12 +669,12 @@ Gear^.dY:= Gear^.dY + cGravity; // this set of circumstances could be less complex if jumping was more clearly identified if ((GameFlags and gfMoreWind) <> 0) and - (Gear^.Damage <> 0) or + (((Gear^.Damage <> 0) or ((CurAmmoGear <> nil) and ((CurAmmoGear^.AmmoType = amJetpack) or (CurAmmoGear^.AmmoType = amBirdy))) or - ((Gear^.dY.QWordValue + Gear^.dX.QWordValue) > _0_55.QWordValue) - then Gear^.dX := Gear^.dX + cWindSpeed * _0_2 + ((Gear^.dY.QWordValue + Gear^.dX.QWordValue) > _0_55.QWordValue))) + then Gear^.dX := Gear^.dX + cWindSpeed / Gear^.Density end end else diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/PascalExports.pas --- a/hedgewars/PascalExports.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/PascalExports.pas Thu Dec 23 20:26:31 2010 +0100 @@ -25,7 +25,6 @@ uCommands; {$INCLUDE "config.inc"} -var dummy: boolean; // avoid compiler hint implementation {$IFDEF HWLIBRARY} @@ -33,7 +32,7 @@ previousGameState: TGameState; // retrieve protocol information -procedure HW_versionInfo(netProto: PShortInt; versionStr: PPChar); cdecl; export; +procedure HW_versionInfo(netProto: PLongInt; versionStr: PPChar); cdecl; export; begin netProto^:= cNetProtoVersion; versionStr^:= cVersionString; diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/hwLibrary.pas --- a/hedgewars/hwLibrary.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/hwLibrary.pas Thu Dec 23 20:26:31 2010 +0100 @@ -16,6 +16,5 @@ begin // avoid compiler warnings about units not being used isTerminated:= isTerminated; - dummy:= dummy; end. diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/uCommandHandlers.pas --- a/hedgewars/uCommandHandlers.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/uCommandHandlers.pas Thu Dec 23 20:26:31 2010 +0100 @@ -407,6 +407,7 @@ if isDeveloperMode then begin Pathz[ptCurrTheme]:= Pathz[ptThemes] + '/' + s; +Theme:= s; InitStepsFlags:= InitStepsFlags or cifTheme end end; diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/uGears.pas --- a/hedgewars/uGears.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/uGears.pas Thu Dec 23 20:26:31 2010 +0100 @@ -47,7 +47,7 @@ implementation uses uStore, uSound, uTeams, uRandom, uCollisions, uIO, uLandGraphics, uAIMisc, uLocale, uAI, uAmmos, uStats, uVisualGears, uScript, GLunit, uMobile, uVariables, - uCommands, uUtils, uTextures, uRenderUtils, uGearsRender, uCaptions, uDebug; + uCommands, uUtils, uTextures, uRenderUtils, uGearsRender, uCaptions, uDebug, uLandTexture; procedure doMakeExplosion(X, Y, Radius: LongInt; Mask: LongWord); forward; @@ -128,7 +128,8 @@ @doStepHammerHit, @doStepResurrector, @doStepNapalmBomb, - @doStepSnowball + @doStepSnowball, + @doStepSnowflake ); procedure InsertGearToList(Gear: PGear); @@ -220,6 +221,7 @@ gear^.Radius:= 5; gear^.Elasticity:= _0_8; gear^.Friction:= _0_8; + gear^.Density:= _1_5; gear^.RenderTimer:= true; if gear^.Timer = 0 then gear^.Timer:= 3000 end; @@ -230,15 +232,20 @@ gear^.Radius:= 6; gear^.Elasticity:= _0_8; gear^.Friction:= _0_995; + gear^.Density:= _2; gear^.RenderTimer:= true; if gear^.Timer = 0 then gear^.Timer:= 3000 end; + gtMelonPiece: begin + gear^.Density:= _2; + end; gtHedgehog: begin gear^.AdvBounce:= 1; gear^.Radius:= cHHRadius; gear^.Elasticity:= _0_35; gear^.Friction:= _0_999; gear^.Angle:= cMaxAngle div 2; + gear^.Density:= _3; gear^.Z:= cHHZ; if (GameFlags and gfAISurvival) <> 0 then if gear^.Hedgehog^.BotLevel > 0 then @@ -246,11 +253,28 @@ end; gtShell: begin gear^.Radius:= 4; + gear^.Density:= _1; end; gtSnowball: begin gear^.Radius:= 4; gear^.Elasticity:= _1; gear^.Friction:= _1; + gear^.Density:= _0_5; + end; + + gtFlake: begin + with Gear^ do + begin + DirAngle:= random * 360; + dx.isNegative:= GetRandom(2) = 0; + dx.QWordValue:= GetRandom(100000000); + dy.isNegative:= false; + dy.QWordValue:= GetRandom(70000000); + if GetRandom(2) = 0 then dx := -dx; + Health:= random(vobFrameTicks); + Timer:= random(vobFramesCount); + Angle:= (random(2) * 2 - 1) * (1 + random(10000)) * vobVelocity + end end; gtGrave: begin gear^.ImpactSound:= sndGraveImpact; @@ -288,6 +312,7 @@ gear^.Radius:= 2; gear^.Elasticity:= _0_55; gear^.Friction:= _0_995; + gear^.Density:= _0_9; if cMinesTime < 0 then gear^.Timer:= getrandom(51)*100 else @@ -299,6 +324,7 @@ gear^.Radius:= 2; gear^.Elasticity:= _0_55; gear^.Friction:= _0_995; + gear^.Density:= _0_9; gear^.Timer:= 500; end; gtCase: begin @@ -313,6 +339,7 @@ gear^.Radius:= 16; gear^.Elasticity:= _0_4; gear^.Friction:= _0_995; + gear^.Density:= _6; gear^.Health:= cBarrelHealth end; gtDEagleShot: begin @@ -327,10 +354,12 @@ gear^.Radius:= 3; gear^.Elasticity:= _0_55; gear^.Friction:= _0_03; + gear^.Density:= _2; gear^.Timer:= 5000; end; gtCluster: begin gear^.Radius:= 2; + gear^.Density:= _1_5; gear^.RenderTimer:= true end; gtShover: gear^.Radius:= 20; @@ -338,6 +367,7 @@ gear^.Tag:= GetRandom(32); gear^.Radius:= 1; gear^.Health:= 5; + gear^.Density:= _1; if (gear^.dY.QWordValue = 0) and (gear^.dX.QWordValue = 0) then begin gear^.dY:= (getrandom - _0_8) * _0_03; @@ -350,6 +380,7 @@ end; gtAirBomb: begin gear^.Radius:= 5; + gear^.Density:= _2; end; gtBlowTorch: begin gear^.Radius:= cHHRadius + cBlowTorchC; @@ -368,7 +399,8 @@ gtMortar: begin gear^.Radius:= 4; gear^.Elasticity:= _0_2; - gear^.Friction:= _0_08 + gear^.Friction:= _0_08; + gear^.Density:= _1; end; gtWhip: gear^.Radius:= 20; gtHammer: gear^.Radius:= 20; @@ -391,12 +423,14 @@ gear^.Radius:= 4; gear^.Elasticity:= _0_5; gear^.Friction:= _0_96; + gear^.Density:= _1_5; gear^.RenderTimer:= true; gear^.Timer:= 5000 end; gtDrill: begin gear^.Timer:= 5000; - gear^.Radius:= 4 + gear^.Radius:= 4; + gear^.Density:= _1; end; gtBall: begin gear^.ImpactSound:= sndGrenadeImpact; @@ -407,6 +441,7 @@ gear^.Timer:= 5000; gear^.Elasticity:= _0_7; gear^.Friction:= _0_995; + gear^.Density:= _1_5; end; gtBallgun: begin gear^.Timer:= 5001; @@ -422,6 +457,7 @@ end; gtMolotov: begin gear^.Radius:= 6; + gear^.Density:= _2; end; gtBirdy: begin gear^.Radius:= 16; // todo: check @@ -433,6 +469,7 @@ gear^.Radius:= 4; gear^.Elasticity:= _0_6; gear^.Friction:= _0_96; + gear^.Density:= _1; if gear^.Timer = 0 then gear^.Timer:= 3000 end; gtPortal: begin @@ -446,7 +483,8 @@ gear^.Health:= 100; end; gtPiano: begin - gear^.Radius:= 32 + gear^.Radius:= 32; + gear^.Density:= _50; end; gtSineGunShot: begin gear^.Radius:= 5; @@ -472,6 +510,7 @@ gtNapalmBomb: begin gear^.Timer:= 1000; gear^.Radius:= 5; + gear^.Density:= _1_5; end; end; @@ -882,7 +921,10 @@ SpeechText:= ''; // in case it has not been consumed if (GameFlags and gfLowGravity) = 0 then + begin cGravity:= cMaxWindSpeed * 2; + cGravityf:= 0.00025 * 2 + end; if (GameFlags and gfVampiric) = 0 then cVampiric:= false; @@ -1057,7 +1099,10 @@ end; if (GameFlags and gfLowGravity) <> 0 then + begin cGravity:= cMaxWindSpeed; + cGravityf:= 0.00025 + end; if (GameFlags and gfVampiric) <> 0 then cVampiric:= true; @@ -1074,7 +1119,11 @@ cLaserSighting:= true; if (GameFlags and gfArtillery) <> 0 then - cArtillery:= true + cArtillery:= true; + +if (Theme = 'Snow') or (Theme = 'Christmas') then + for i:= 0 to Pred(vobCount*2) do + AddGear(GetRandom(LAND_WIDTH+1024)-512, LAND_HEIGHT - GetRandom(1024), gtFlake, 0, _0, _0, 0); end; procedure doMakeExplosion(X, Y, Radius: LongInt; Mask: LongWord); diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/uGearsRender.pas --- a/hedgewars/uGearsRender.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/uGearsRender.pas Thu Dec 23 20:26:31 2010 +0100 @@ -1017,6 +1017,16 @@ Tint($FF, $FF, $FF, $FF); end; gtNapalmBomb: DrawRotated(sprNapalmBomb, x, y, 0, DxDy2Angle(Gear^.dY, Gear^.dX)); + gtFlake: if not isInLag then + begin + if vobVelocity = 0 then + //DrawSprite(sprFlake, x-SpritesData[sprFlake].Width div 2, y-SpritesData[sprFlake].Height div 2, Gear^.Timer) + DrawSprite(sprFlake, x, y, Gear^.Timer) + else + //DrawRotatedF(sprFlake, x-SpritesData[sprFlake].Width div 2, y-SpritesData[sprFlake].Height div 2, Gear^.Timer, 1, Gear^.DirAngle); + DrawRotatedF(sprFlake, x, y, Gear^.Timer, 1, Gear^.DirAngle) + end; + end; if Gear^.RenderTimer and (Gear^.Tex <> nil) then DrawCentered(x + 8, y + 8, Gear^.Tex); end; diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/uLandGraphics.pas --- a/hedgewars/uLandGraphics.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/uLandGraphics.pas Thu Dec 23 20:26:31 2010 +0100 @@ -198,12 +198,13 @@ else LandPixels[t div 2, i div 2]:= LandBackPixel(i, t) end - else - if ((Land[t, i] and lfObject) <> 0) then - if (cReducedQuality and rqBlurryLand) = 0 then - LandPixels[t, i]:= 0 - else - LandPixels[t div 2, i div 2]:= 0; + else if not isMap or ((Land[t, i] and lfObject) <> 0) then + begin + if (cReducedQuality and rqBlurryLand) = 0 then + LandPixels[t, i]:= 0 + else + LandPixels[t div 2, i div 2]:= 0 + end; t:= y - dy; if (t and LAND_HEIGHT_MASK) = 0 then @@ -216,12 +217,13 @@ else LandPixels[t div 2, i div 2]:= LandBackPixel(i, t) end - else - if ((Land[t, i] and lfObject) <> 0) then - if (cReducedQuality and rqBlurryLand) = 0 then - LandPixels[t, i]:= 0 - else - LandPixels[t div 2, i div 2]:= 0; + else if not isMap or ((Land[t, i] and lfObject) <> 0) then + begin + if (cReducedQuality and rqBlurryLand) = 0 then + LandPixels[t, i]:= 0 + else + LandPixels[t div 2, i div 2]:= 0 + end; t:= y + dx; if (t and LAND_HEIGHT_MASK) = 0 then @@ -230,16 +232,17 @@ begin inc(cnt); if (cReducedQuality and rqBlurryLand) = 0 then - LandPixels[t, i]:= LandBackPixel(i, t) - else - LandPixels[t div 2, i div 2]:= LandBackPixel(i, t) + LandPixels[t, i]:= LandBackPixel(i, t) + else + LandPixels[t div 2, i div 2]:= LandBackPixel(i, t) end - else - if ((Land[t, i] and lfObject) <> 0) then + else if not isMap or ((Land[t, i] and lfObject) <> 0) then + begin if (cReducedQuality and rqBlurryLand) = 0 then - LandPixels[t, i]:= 0 + LandPixels[t, i]:= 0 else - LandPixels[t div 2, i div 2]:= 0; + LandPixels[t div 2, i div 2]:= 0 + end; t:= y - dx; if (t and LAND_HEIGHT_MASK) = 0 then @@ -252,12 +255,13 @@ else LandPixels[t div 2, i div 2]:= LandBackPixel(i, t) end - else - if ((Land[t, i] and lfObject) <> 0) then - if (cReducedQuality and rqBlurryLand) = 0 then - LandPixels[t, i]:= 0 - else - LandPixels[t div 2, i div 2]:= 0; + else if not isMap or ((Land[t, i] and lfObject) <> 0) then + begin + if (cReducedQuality and rqBlurryLand) = 0 then + LandPixels[t, i]:= 0 + else + LandPixels[t div 2, i div 2]:= 0 + end; FillLandCircleLinesBG:= cnt; end; @@ -267,7 +271,7 @@ t:= y + dy; if (t and LAND_HEIGHT_MASK) = 0 then for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do - if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then + if (Land[t, i] and (lfBasic or lfObject)) <> 0 then begin if (cReducedQuality and rqBlurryLand) = 0 then LandPixels[t, i]:= cExplosionBorderColor @@ -282,7 +286,7 @@ t:= y - dy; if (t and LAND_HEIGHT_MASK) = 0 then for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do - if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then + if (Land[t, i] and (lfBasic or lfObject)) <> 0 then begin if (cReducedQuality and rqBlurryLand) = 0 then LandPixels[t, i]:= cExplosionBorderColor @@ -296,7 +300,7 @@ t:= y + dx; if (t and LAND_HEIGHT_MASK) = 0 then for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do - if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then + if (Land[t, i] and (lfBasic or lfObject)) <> 0 then begin if (cReducedQuality and rqBlurryLand) = 0 then LandPixels[t, i]:= cExplosionBorderColor @@ -311,7 +315,7 @@ t:= y - dx; if (t and LAND_HEIGHT_MASK) = 0 then for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do - if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then + if (Land[t, i] and (lfBasic or lfObject)) <> 0 then begin if (cReducedQuality and rqBlurryLand) = 0 then LandPixels[t, i]:= cExplosionBorderColor @@ -414,12 +418,13 @@ LandPixels[ty, tx]:= LandBackPixel(tx, ty) else LandPixels[ty div 2, tx div 2]:= LandBackPixel(tx, ty) - else - if (Land[ty, tx] and lfObject) <> 0 then - if (cReducedQuality and rqBlurryLand) = 0 then - LandPixels[ty, tx]:= 0 - else - LandPixels[ty div 2, tx div 2]:= 0; + else if not isMap then + begin + if (cReducedQuality and rqBlurryLand) = 0 then + LandPixels[ty, tx]:= 0 + else + LandPixels[ty div 2, tx div 2]:= 0 + end; inc(y, dY) end; @@ -430,7 +435,7 @@ begin for ty:= Max(y - Radius, 0) to Min(y + Radius, LAND_HEIGHT) do for tx:= Max(0, ar^[i].Left - Radius) to Min(LAND_WIDTH, ar^[i].Right + Radius) do - if ((Land[ty, tx] and lfBasic) <> 0) or ((Land[ty, tx] and lfObject) <> 0) then + if (Land[ty, tx] and (lfBasic or lfObject)) <> 0 then begin if (cReducedQuality and rqBlurryLand) = 0 then LandPixels[ty, tx]:= cExplosionBorderColor @@ -474,13 +479,12 @@ ty:= hwRound(Y); if ((ty and LAND_HEIGHT_MASK) = 0) and ((tx and LAND_WIDTH_MASK) = 0) and - (((Land[ty, tx] and lfBasic) <> 0) or - ((Land[ty, tx] and lfObject) <> 0)) then + ((Land[ty, tx] and (lfBasic or lfObject)) <> 0) then begin Land[ty, tx]:= Land[ty, tx] or lfDamaged; - if (cReducedQuality and rqBlurryLand) = 0 then + if (cReducedQuality and rqBlurryLand) = 0 then LandPixels[ty, tx]:= cExplosionBorderColor - else + else LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor end end; @@ -500,15 +504,13 @@ ty:= hwRound(Y); if ((ty and LAND_HEIGHT_MASK) = 0) and ((tx and LAND_WIDTH_MASK) = 0) and - (((Land[ty, tx] and lfBasic) <> 0) or - ((Land[ty, tx] and lfObject) <> 0)) then + ((Land[ty, tx] and (lfBasic or lfObject)) <> 0) then begin Land[ty, tx]:= Land[ty, tx] or lfDamaged; - if (cReducedQuality and rqBlurryLand) = 0 then - LandPixels[ty, tx]:= cExplosionBorderColor - else - LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor - + if (cReducedQuality and rqBlurryLand) = 0 then + LandPixels[ty, tx]:= cExplosionBorderColor + else + LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor end end; X:= nx; @@ -526,12 +528,13 @@ LandPixels[ty, tx]:= LandBackPixel(tx, ty) else LandPixels[ty div 2, tx div 2]:= LandBackPixel(tx, ty) - else - if (Land[ty, tx] and lfObject) <> 0 then + else if not isMap or ((Land[ty, tx] and lfObject) <> 0) then + begin if (cReducedQuality and rqBlurryLand) = 0 then - LandPixels[ty, tx]:= 0 + LandPixels[ty, tx]:= 0 else - LandPixels[ty div 2, tx div 2]:= 0; + LandPixels[ty div 2, tx div 2]:= 0 + end; Land[ty, tx]:= 0; end @@ -544,15 +547,13 @@ ty:= hwRound(Y); if ((ty and LAND_HEIGHT_MASK) = 0) and ((tx and LAND_WIDTH_MASK) = 0) and - (((Land[ty, tx] and lfBasic) <> 0) or - ((Land[ty, tx] and lfObject) <> 0)) then + ((Land[ty, tx] and (lfBasic or lfObject)) <> 0) then begin Land[ty, tx]:= Land[ty, tx] or lfDamaged; if (cReducedQuality and rqBlurryLand) = 0 then - LandPixels[ty, tx]:= cExplosionBorderColor + LandPixels[ty, tx]:= cExplosionBorderColor else - LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor - + LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor end end; nx:= nx - dY; @@ -571,14 +572,13 @@ ty:= hwRound(Y); if ((ty and LAND_HEIGHT_MASK) = 0) and ((tx and LAND_WIDTH_MASK) = 0) and - (((Land[ty, tx] and lfBasic) <> 0) or - ((Land[ty, tx] and lfObject) <> 0)) then + ((Land[ty, tx] and (lfBasic or lfObject)) <> 0) then begin Land[ty, tx]:= Land[ty, tx] or lfDamaged; if (cReducedQuality and rqBlurryLand) = 0 then - LandPixels[ty, tx]:= cExplosionBorderColor + LandPixels[ty, tx]:= cExplosionBorderColor else - LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor + LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor end end; nx:= nx - dY; @@ -689,14 +689,16 @@ if c < 4 then // 0-3 neighbours begin if (cReducedQuality and rqBlurryLand) = 0 then + begin if (Land[Y, X] and lfBasic) <> 0 then LandPixels[Y, X]:= LandBackPixel(X, Y) - else + else if not isMap or ((Land[Y, X] and lfObject) <> 0) then LandPixels[Y, X]:= 0 + end else if (Land[Y, X] and lfBasic) <> 0 then LandPixels[Y div 2, X div 2]:= LandBackPixel(X, Y) - else + else if not isMap or ((Land[Y, X] and lfObject) <> 0) then LandPixels[Y div 2, X div 2]:= 0; Land[Y, X]:= 0; diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/uLandObjects.pas --- a/hedgewars/uLandObjects.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/uLandObjects.pas Thu Dec 23 20:26:31 2010 +0100 @@ -226,7 +226,9 @@ tmpx2:= bx; while (tmpx <= bx - rect.w div 2 - 1) and bRes do begin - bRes:= (Land[rect.y, tmpx] = Color) and (Land[by, tmpx] = Color) and + bRes:= ((rect.y and LAND_HEIGHT_MASK) = 0) and ((by and LAND_HEIGHT_MASK) = 0) and + ((tmpx and LAND_WIDTH_MASK) = 0) and ((tmpx2 and LAND_WIDTH_MASK) = 0) and + (Land[rect.y, tmpx] = Color) and (Land[by, tmpx] = Color) and (Land[rect.y, tmpx2] = Color) and (Land[by, tmpx2] = Color); inc(tmpx); dec(tmpx2) @@ -235,7 +237,9 @@ tmpy2:= by-1; while (tmpy <= by - rect.h div 2 - 1) and bRes do begin - bRes:= (Land[tmpy, rect.x] = Color) and (Land[tmpy, bx] = Color) and + bRes:= ((tmpy and LAND_HEIGHT_MASK) = 0) and ((tmpy2 and LAND_HEIGHT_MASK) = 0) and + ((rect.x and LAND_WIDTH_MASK) = 0) and ((bx and LAND_WIDTH_MASK) = 0) and + (Land[tmpy, rect.x] = Color) and (Land[tmpy, bx] = Color) and (Land[tmpy2, rect.x] = Color) and (Land[tmpy2, bx] = Color); inc(tmpy); dec(tmpy2) @@ -364,7 +368,7 @@ procedure ReadThemeInfo(var ThemeObjects: TThemeObjects; var SprayObjects: TSprayObjects); var s: shortstring; f: textfile; - i, ii: LongInt; + i, ii, numFlakes: LongInt; c1, c2: TSDL_Color; procedure CheckRect(Width, Height, x, y, w, h: LongWord); @@ -456,14 +460,18 @@ Readln(f, vobFramesCount, vobFrameTicks, vobVelocity, vobFallSpeed); // adjust amount of flakes scaled by screen space -vobCount:= longint(vobCount) * cScreenSpace div LAND_WIDTH; +vobCount:= longint(vobCount); +numFlakes:= vobCount * cScreenSpace div LAND_WIDTH; if (cReducedQuality and rqKillFlakes) <> 0 then - vobCount:= 0; - + numFlakes:= 0; -for i:= 0 to Pred(vobCount) do - AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake); +if Theme <> 'Snow' 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+} diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/uRenderUtils.pas --- a/hedgewars/uRenderUtils.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/uRenderUtils.pas Thu Dec 23 20:26:31 2010 +0100 @@ -175,7 +175,7 @@ var textWidth, textHeight, x, y, w, h, i, j, pos, prevpos, line, numLines, edgeWidth, edgeHeight, cornerWidth, cornerHeight: LongInt; finalSurface, tmpsurf, rotatedEdge: PSDL_Surface; rect: TSDL_Rect; - chars: set of char = [#9,' ','.',';',':','?','!',',']; + chars: set of char = [#9,' ',';',':','?','!',',']; substr: shortstring; edge, corner, tail: TSPrite; begin @@ -353,4 +353,4 @@ SDL_FreeSurface(finalSurface); end; -end. \ No newline at end of file +end. diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/uScript.pas --- a/hedgewars/uScript.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/uScript.pas Thu Dec 23 20:26:31 2010 +0100 @@ -827,9 +827,11 @@ function lc_findplace(L : Plua_State) : LongInt; Cdecl; var gear: PGear; fall: boolean; + tryhard: boolean; left, right: LongInt; begin - if lua_gettop(L) <> 4 then + tryhard:= false; + if (lua_gettop(L) <> 4) and (lua_gettop(L) <> 5) then LuaError('Lua: Wrong number of parameters passed to FindPlace!') else begin @@ -837,10 +839,13 @@ fall:= lua_toboolean(L, 2); left:= lua_tointeger(L, 3); right:= lua_tointeger(L, 4); + if lua_gettop(L) = 5 then tryhard:= lua_toboolean(L, 5); if gear <> nil then - FindPlace(gear, fall, left, right) + FindPlace(gear, fall, left, right, tryhard); + if gear <> nil then lua_pushinteger(L, gear^.uid) + else lua_pushnil(L); end; - lc_findplace:= 0 + lc_findplace:= 1 end; function lc_playsound(L : Plua_State) : LongInt; Cdecl; @@ -1082,6 +1087,18 @@ lua_pushstring(L, str2pchar(Pathz[ptData])); lc_getdatapath:= 1 end; + +function lc_maphasborder(L : Plua_State) : LongInt; Cdecl; +begin + if lua_gettop(L) <> 0 then + begin + LuaError('Lua: Wrong number of parameters passed to MapHasBorder!'); + lua_pushnil(L); + end + else + lua_pushboolean(L, hasBorder); + lc_maphasborder:= 1 +end; /////////////////// procedure ScriptPrintStack; @@ -1492,6 +1509,7 @@ lua_register(luaState, 'GetRandom', @lc_getrandom); lua_register(luaState, 'SetWind', @lc_setwind); lua_register(luaState, 'GetDataPath', @lc_getdatapath); +lua_register(luaState, 'MapHasBorder', @lc_maphasborder); ScriptClearStack; // just to be sure stack is empty diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/uStore.pas --- a/hedgewars/uStore.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/uStore.pas Thu Dec 23 20:26:31 2010 +0100 @@ -391,7 +391,7 @@ var tmpsurf: PSDL_Surface; s: shortstring; begin - WriteToConsole(msgLoading + filename + '.png [flags: ' + inttostr(imageFlags) + ']'); + WriteToConsole(msgLoading + filename + '.png [flags: ' + inttostr(imageFlags) + '] '); s:= filename + '.png'; tmpsurf:= IMG_Load(Str2PChar(s)); diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/uTypes.pas --- a/hedgewars/uTypes.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/uTypes.pas Thu Dec 23 20:26:31 2010 +0100 @@ -52,7 +52,7 @@ sprCheese, sprHandCheese, sprHandFlamethrower, sprChunk, sprNote, sprSMineOff, sprSMineOn, sprHandSMine, sprHammer, sprHandResurrector, sprCross, sprAirDrill, sprNapalmBomb, - sprBulletHit, sprSnowball, sprHandSnowball + sprBulletHit, sprSnowball, sprHandSnowball, sprSnow ); // Gears that interact with other Gears and/or Land @@ -67,7 +67,7 @@ gtSniperRifleShot, gtJetpack, gtMolotov, gtExplosives, gtBirdy, // 45 gtEgg, gtPortal, gtPiano, gtGasBomb, gtSineGunShot, gtFlamethrower, // 51 gtSMine, gtPoisonCloud, gtHammer, gtHammerHit, gtResurrector, // 56 - gtNapalmBomb, gtSnowball); // 58 + gtNapalmBomb, gtSnowball, gtFlake); // 58 // Gears that are _only_ of visual nature (e.g. background stuff, visual effects, speechbubbles, etc.) TVisualGearType = (vgtFlake, vgtCloud, vgtExplPart, vgtExplPart2, vgtFire, @@ -196,6 +196,7 @@ Timer : LongWord; Elasticity: hwFloat; Friction : hwFloat; + Density : hwFloat; Message, MsgParam : Longword; Hedgehog: PHedgehog; Health, Damage, Karma: LongInt; diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/uVariables.pas --- a/hedgewars/uVariables.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/uVariables.pas Thu Dec 23 20:26:31 2010 +0100 @@ -139,6 +139,8 @@ ScreenFadeValue : LongInt; ScreenFadeSpeed : LongInt; + Theme : shortstring; + {$IFDEF SDL13} SDLwindow : PSDL_Window; {$ENDIF} @@ -553,7 +555,9 @@ (FileName: 'Snowball'; Path: ptCurrTheme; AltPath: ptGraphics; Texture: nil; Surface: nil; Width: 16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprSnowball (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 + 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 ); diff -r 5ef5415c4ee1 -r 20b982afbe6e hedgewars/uWorld.pas --- a/hedgewars/uWorld.pas Thu Dec 23 17:47:50 2010 +0100 +++ b/hedgewars/uWorld.pas Thu Dec 23 20:26:31 2010 +0100 @@ -1102,8 +1102,8 @@ end else begin - r.x:= ((-icon - 1) shr 5) * 32; - r.y:= ((-icon - 1) mod 32) * 32; + r.x:= ((-icon - 1) shr 4) * 32; + r.y:= ((-icon - 1) mod 16) * 32; missionTex:= RenderHelpWindow(caption, subcaption, text, '', 0, SpritesData[sprAMAmmos].Surface, @r) end; end; diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Classes/AboutViewController.m --- a/project_files/HedgewarsMobile/Classes/AboutViewController.m Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Classes/AboutViewController.m Thu Dec 23 20:26:31 2010 +0100 @@ -98,7 +98,7 @@ -(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger) section { NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; char *fullver; - short int proto = 20; + int proto; HW_versionInfo(&proto, &fullver); NSString *footerString = [[NSString alloc] initWithFormat: diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Classes/CreationChamber.h --- a/project_files/HedgewarsMobile/Classes/CreationChamber.h Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Classes/CreationChamber.h Thu Dec 23 20:26:31 2010 +0100 @@ -23,4 +23,4 @@ void createTeamNamed (NSString *nameWithoutExt); void createWeaponNamed (NSString *nameWithoutExt, int type); -void createSchemeNamed (NSString *nameWithoutExt); \ No newline at end of file +void createSchemeNamed (NSString *nameWithoutExt); diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Classes/CreationChamber.m --- a/project_files/HedgewarsMobile/Classes/CreationChamber.m Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Classes/CreationChamber.m Thu Dec 23 20:26:31 2010 +0100 @@ -74,57 +74,54 @@ NSDictionary *theWeapon = nil; switch (type) { - case 0: //default + default: //default theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: - @"93919294221991210322351110012010000002111101010111",@"ammostore_initialqt", - @"04050405416006555465544647765766666661555101011154",@"ammostore_probability", - @"00000000000002055000000400070040000000002000000006",@"ammostore_delay", - @"13111103121111111231141111111111111112111111011111",@"ammostore_crate", nil]; + @"939192942219912103223511100120100000021111010101112",@"ammostore_initialqt", + @"040504054160065554655446477657666666615551010111541",@"ammostore_probability", + @"000000000000020550000004000700400000000020000000060",@"ammostore_delay", + @"131111031211111112311411111111111111121111110111112",@"ammostore_crate", nil]; break; case 1: //crazy theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: - @"99999999999999999929999999999999992999999999099999",@"ammostore_initialqt", - @"11111101111111111111111111111111111111111111011111",@"ammostore_probability", - @"00000000000000000000000000000000000000000000000000",@"ammostore_delay", - @"13111103121111111231141111111111111112111101011111",@"ammostore_crate", nil]; + @"999999999999999999299999999999999929999999990999999",@"ammostore_initialqt", + @"111111011111111111111111111111111111111111110111111",@"ammostore_probability", + @"000000000000000000000000000000000000000000000000000",@"ammostore_delay", + @"131111031211111112311411111111111111121111010111111",@"ammostore_crate", nil]; break; case 2: //pro mode theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: - @"90900090000000000000090000000000000000000000000000",@"ammostore_initialqt", - @"00000000000000000000000000000000000000000000000000",@"ammostore_probability", - @"00000000000002055000000400070040000000002000000000",@"ammostore_delay", - @"11111111111111111111111111111111111111111001011111",@"ammostore_crate", nil]; + @"909000900000000000000900000000000000000000000000000",@"ammostore_initialqt", + @"000000000000000000000000000000000000000000000000000",@"ammostore_probability", + @"000000000000020550000004000700400000000020000000000",@"ammostore_delay", + @"111111111111111111111111111111111111111110010111111",@"ammostore_crate", nil]; break; case 3: //shoppa theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: - @"00000099000000000000000000000000000000000000000000",@"ammostore_initialqt", - @"44444100442444022101121212224220000000020004000100",@"ammostore_probability", - @"00000000000000000000000000000000000000000000000000",@"ammostore_delay", - @"11111111111111111111111111111111111111111011011111",@"ammostore_crate", nil]; + @"000000990000000000000000000000000000000000000000000",@"ammostore_initialqt", + @"444441004424440221011212122242200000000200040001001",@"ammostore_probability", + @"000000000000000000000000000000000000000000000000000",@"ammostore_delay", + @"111111111111111111111111111111111111111110110111111",@"ammostore_crate", nil]; break; case 4: //clean slate theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: - @"10100090000100000110000000000000000000000000000010",@"ammostore_initialqt", - @"04050405416006555465544647765766666661555101011154",@"ammostore_probability", - @"00000000000002055000000400070040000000002000000000",@"ammostore_delay", - @"13111103121111111231141111111111111112111111011111",@"ammostore_crate", nil]; + @"101000900001000001100000000000000000000000000000100",@"ammostore_initialqt", + @"040504054160065554655446477657666666615551010111541",@"ammostore_probability", + @"000000000000020550000004000700400000000020000000000",@"ammostore_delay", + @"131111031211111112311411111111111111121111110111111",@"ammostore_crate", nil]; break; case 5: //minefield theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: - @"00000099000900000003000000000000000000000000000000",@"ammostore_initialqt", - @"00000000000000000000000000000000000000000000000000",@"ammostore_probability", - @"00000000000002055000000400070040000000002000000000",@"ammostore_delay", - @"11111111111111111111111111111111111111111111011111",@"ammostore_crate", nil]; + @"000000990009000000030000000000000000000000000000000",@"ammostore_initialqt", + @"000000000000000000000000000000000000000000000000000",@"ammostore_probability", + @"000000000000020550000004000700400000000020000000000",@"ammostore_delay", + @"111111111111111111111111111111111111111111110111111",@"ammostore_crate", nil]; break; case 6: //thinking with portals theWeapon = [[NSDictionary alloc] initWithObjectsAndKeys: - @"90000090020000000021000000000000001100000900000000",@"ammostore_initialqt", - @"04050405416006555465544647765766666661555101011154",@"ammostore_probability", - @"00000000000002055000000400070040000000002000000006",@"ammostore_delay", - @"13111103121111111231141111111111111112111111011111",@"ammostore_crate", nil]; - break; - default: - NSLog(@"Nope"); + @"900000900200000000210000000000000011000009000000000",@"ammostore_initialqt", + @"040504054160065554655446477657666666615551010111541",@"ammostore_probability", + @"000000000000020550000004000700400000000020000000060",@"ammostore_delay", + @"131111031211111112311411111111111111121111110111111",@"ammostore_crate", nil]; break; } @@ -145,47 +142,51 @@ error:NULL]; } + int basicFlags[] = {100, 100, 45, 15, 47, 5, 100, 5, 35, 25, 3, 4, 0, 2}; + BOOL gameFlags[] = {NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, YES, NO, NO, NO, NO, + NO, NO, NO, NO, NO, NO, NO}; + NSMutableArray *basicArray = [[NSMutableArray alloc] initWithObjects: - [NSNumber numberWithInt:100], //initialhealth - [NSNumber numberWithInt:45], //turntime - [NSNumber numberWithInt:3], //minestime - [NSNumber numberWithInt:100], //damagemodifier - [NSNumber numberWithInt:15], //suddendeathtimeout - [NSNumber numberWithInt:47], //waterrise - [NSNumber numberWithInt:5], //healthdecrease - [NSNumber numberWithInt:100], //ropelength - [NSNumber numberWithInt:5], //cratedrops - [NSNumber numberWithInt:35], //healthprob - [NSNumber numberWithInt:25], //healthamount - [NSNumber numberWithInt:4], //minesnumber - [NSNumber numberWithInt:0], //dudmines - [NSNumber numberWithInt:2], //explosives + [NSNumber numberWithInt:basicFlags[0]], //initialhealth + [NSNumber numberWithInt:basicFlags[1]], //damagemodifier + [NSNumber numberWithInt:basicFlags[2]], //turntime + [NSNumber numberWithInt:basicFlags[3]], //suddendeathtimeout + [NSNumber numberWithInt:basicFlags[4]], //waterrise + [NSNumber numberWithInt:basicFlags[5]], //healthdecrease + [NSNumber numberWithInt:basicFlags[6]], //ropelength + [NSNumber numberWithInt:basicFlags[7]], //cratedrops + [NSNumber numberWithInt:basicFlags[8]], //healthprob + [NSNumber numberWithInt:basicFlags[9]], //healthamount + [NSNumber numberWithInt:basicFlags[10]], //minestime + [NSNumber numberWithInt:basicFlags[11]], //minesnumber + [NSNumber numberWithInt:basicFlags[12]], //dudmines + [NSNumber numberWithInt:basicFlags[13]], //explosives nil]; NSMutableArray *gamemodArray= [[NSMutableArray alloc] initWithObjects: - [NSNumber numberWithBool:NO], //fortmode - [NSNumber numberWithBool:NO], //divideteam - [NSNumber numberWithBool:NO], //solidland - [NSNumber numberWithBool:NO], //addborder - [NSNumber numberWithBool:NO], //lowgravity - [NSNumber numberWithBool:NO], //lasersight - [NSNumber numberWithBool:NO], //invulnerable - [NSNumber numberWithBool:NO], //resethealth - [NSNumber numberWithBool:NO], //vampirism - [NSNumber numberWithBool:NO], //karma - [NSNumber numberWithBool:NO], //artillery - [NSNumber numberWithBool:YES], //randomorder - [NSNumber numberWithBool:NO], //king - [NSNumber numberWithBool:NO], //placehedgehogs - [NSNumber numberWithBool:NO], //clansharesammo - [NSNumber numberWithBool:NO], //disablegirders - [NSNumber numberWithBool:NO], //disablelandobjects - [NSNumber numberWithBool:NO], //aisurvival - [NSNumber numberWithBool:NO], //infattack - [NSNumber numberWithBool:NO], //resetweaps - [NSNumber numberWithBool:NO], //perhogammo - [NSNumber numberWithBool:NO], //nowind - [NSNumber numberWithBool:NO], //morewind + [NSNumber numberWithBool:gameFlags[0]], //fortmode + [NSNumber numberWithBool:gameFlags[1]], //divideteam + [NSNumber numberWithBool:gameFlags[2]], //solidland + [NSNumber numberWithBool:gameFlags[3]], //addborder + [NSNumber numberWithBool:gameFlags[4]], //lowgravity + [NSNumber numberWithBool:gameFlags[5]], //lasersight + [NSNumber numberWithBool:gameFlags[6]], //invulnerable + [NSNumber numberWithBool:gameFlags[7]], //resethealth + [NSNumber numberWithBool:gameFlags[8]], //vampirism + [NSNumber numberWithBool:gameFlags[9]], //karma + [NSNumber numberWithBool:gameFlags[10]], //artillery + [NSNumber numberWithBool:gameFlags[11]], //randomorder + [NSNumber numberWithBool:gameFlags[12]], //king + [NSNumber numberWithBool:gameFlags[13]], //placehedgehogs + [NSNumber numberWithBool:gameFlags[14]], //clansharesammo + [NSNumber numberWithBool:gameFlags[15]], //disablegirders + [NSNumber numberWithBool:gameFlags[16]], //disablelandobjects + [NSNumber numberWithBool:gameFlags[17]], //aisurvival + [NSNumber numberWithBool:gameFlags[18]], //infattack + [NSNumber numberWithBool:gameFlags[19]], //resetweaps + [NSNumber numberWithBool:gameFlags[20]], //perhogammo + [NSNumber numberWithBool:gameFlags[21]], //nowind + [NSNumber numberWithBool:gameFlags[22]], //morewind nil]; NSMutableDictionary *theScheme = [[NSMutableDictionary alloc] initWithObjectsAndKeys: diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Classes/GameSetup.m --- a/project_files/HedgewarsMobile/Classes/GameSetup.m Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Classes/GameSetup.m Thu Dec 23 20:26:31 2010 +0100 @@ -182,28 +182,16 @@ NSArray *mods = [[NSArray alloc] initWithContentsOfFile:path]; [path release]; - int i = 0; - // initial health - result = [[basicArray objectAtIndex:i++] intValue]; + result = [[basicArray objectAtIndex:0] intValue]; - // turn time - NSInteger tentativeTurntime = [[basicArray objectAtIndex:i++] intValue]; - if (tentativeTurntime >= 100) - tentativeTurntime = 9999; - NSString *turnTime = [[NSString alloc] initWithFormat:@"e$turntime %d",tentativeTurntime * 1000]; - [self sendToEngine:turnTime]; - [turnTime release]; - - NSString *minesTime = [[NSString alloc] initWithFormat:@"e$turntime %d",[[basicArray objectAtIndex:i++] intValue] * 1000]; - [self sendToEngine:minesTime]; - [minesTime release]; - - for (; i < [basicArray count]; i++) { - NSDictionary *basicDict = [mods objectAtIndex:i]; - NSString *command = [basicDict objectForKey:@"command"]; + for (int i = 1; i < [basicArray count]; i++) { + NSDictionary *dict = [mods objectAtIndex:i]; + NSString *command = [dict objectForKey:@"command"]; NSInteger value = [[basicArray objectAtIndex:i] intValue]; - if ([basicDict objectForKey:@"checkOverMax"] && value >= [[basicDict objectForKey:@"max"] intValue]) + if ([[dict objectForKey:@"checkOverMax"] boolValue] && value >= [[dict objectForKey:@"max"] intValue]) value = 9999; + if ([[dict objectForKey:@"times1000"] boolValue]) + value = value * 1000; NSString *strToSend = [[NSString alloc] initWithFormat:@"%@ %d",command,value]; [self sendToEngine:strToSend]; [strToSend release]; @@ -345,14 +333,14 @@ [self dumpRawData:buffer ofSize:msgSize]; sscanf((char *)buffer, "%*s %d", &eProto); - short int netProto; + int netProto; char *versionStr; HW_versionInfo(&netProto, &versionStr); if (netProto == eProto) { DLog(@"Setting protocol version %d (%s)", eProto, versionStr); } else { - DLog(@"ERROR - wrong protocol number: [%s] - expecting %d", &buffer[1], eProto); + DLog(@"ERROR - wrong protocol number: %d (expecting %d)", netProto, eProto); clientQuit = YES; } break; diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Classes/PascalImports.h --- a/project_files/HedgewarsMobile/Classes/PascalImports.h Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Classes/PascalImports.h Thu Dec 23 20:26:31 2010 +0100 @@ -34,7 +34,7 @@ void GenLandPreview(void); void LoadLocaleWrapper(const char *filename); - void HW_versionInfo(short int *netProto, char **versionStr); + void HW_versionInfo(int *protoNum, char **versionStr); void HW_click(void); void HW_ammoMenu(void); diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Classes/ServerSetup.m --- a/project_files/HedgewarsMobile/Classes/ServerSetup.m Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Classes/ServerSetup.m Thu Dec 23 20:26:31 2010 +0100 @@ -181,7 +181,7 @@ [self sendToServer:@"PASSWORD" withArgument:pwd]; } else if ([command isEqualToString:@"CONNECTED"]) { - short int netProto; + int netProto; char *versionStr; HW_versionInfo(&netProto, &versionStr); NSString *nick = [self.systemSettings objectForKey:@"username"]; diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Barrel Mayhem.plist Thu Dec 23 20:26:31 2010 +0100 @@ -5,9 +5,8 @@ basic 100 + 100 30 - 0 - 100 15 47 5 @@ -17,6 +16,7 @@ 25 0 0 + 0 40 gamemod diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/Schemes/Clean Slate.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Clean Slate.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Clean Slate.plist Thu Dec 23 20:26:31 2010 +0100 @@ -5,9 +5,8 @@ basic 100 + 100 45 - 3 - 100 15 47 5 @@ -15,6 +14,7 @@ 5 35 25 + 3 4 0 2 diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Default.plist Thu Dec 23 20:26:31 2010 +0100 @@ -5,9 +5,8 @@ basic 100 + 100 45 - 3 - 100 15 47 5 @@ -15,6 +14,7 @@ 5 35 25 + 3 4 0 2 diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/Schemes/Fort Mode.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Fort Mode.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Fort Mode.plist Thu Dec 23 20:26:31 2010 +0100 @@ -5,9 +5,8 @@ basic 100 + 100 45 - 3 - 100 15 47 5 @@ -15,6 +14,7 @@ 5 35 25 + 3 0 0 0 diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/Schemes/King Mode.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/King Mode.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/King Mode.plist Thu Dec 23 20:26:31 2010 +0100 @@ -5,9 +5,8 @@ basic 100 + 100 45 - 3 - 100 15 47 5 @@ -15,6 +14,7 @@ 5 35 25 + 3 4 0 2 diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Minefield.plist Thu Dec 23 20:26:31 2010 +0100 @@ -5,9 +5,8 @@ basic 50 + 150 30 - 0 - 150 15 47 5 @@ -15,6 +14,7 @@ 0 35 25 + 0 80 0 0 diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Pro Mode.plist Thu Dec 23 20:26:31 2010 +0100 @@ -5,9 +5,8 @@ basic 100 + 100 15 - 3 - 100 15 47 5 @@ -15,6 +14,7 @@ 0 35 25 + 3 0 0 2 diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Shoppa.plist Thu Dec 23 20:26:31 2010 +0100 @@ -5,9 +5,8 @@ basic 100 + 100 300 - 3 - 100 50 47 5 @@ -15,6 +14,7 @@ 1 0 35 + 3 0 0 0 diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/Schemes/Thinking with Portals.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Thinking with Portals.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Thinking with Portals.plist Thu Dec 23 20:26:31 2010 +0100 @@ -5,9 +5,8 @@ basic 100 + 100 45 - 4 - 100 15 47 5 @@ -15,6 +14,7 @@ 2 25 25 + 4 5 0 5 diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Timeless.plist Thu Dec 23 20:26:31 2010 +0100 @@ -6,7 +6,6 @@ 100 100 - 5 100 100 47 @@ -15,6 +14,7 @@ 5 35 30 + 5 3 10 2 diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist --- a/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/Schemes/Tunnel Hogs.plist Thu Dec 23 20:26:31 2010 +0100 @@ -5,15 +5,15 @@ basic 100 + 100 30 - 3 - 100 15 47 5 100 5 35 + 3 25 10 10 diff -r 5ef5415c4ee1 -r 20b982afbe6e project_files/HedgewarsMobile/Resources/Settings/iFrontend/basicFlags_en.plist --- a/project_files/HedgewarsMobile/Resources/Settings/iFrontend/basicFlags_en.plist Thu Dec 23 17:47:50 2010 +0100 +++ b/project_files/HedgewarsMobile/Resources/Settings/iFrontend/basicFlags_en.plist Thu Dec 23 20:26:31 2010 +0100 @@ -3,10 +3,6 @@ - checkOverMax - - command - default 100 image @@ -21,37 +17,7 @@ checkOverMax - command - e$turntime - default - 45 - image - Time - max - 100 - min - 1 - title - Turn Time - - - checkOverMax - - command - e$minestime - default - 3 - image - Time - max - 5 - min - -1 - title - Mines Time - - - checkOverMax + times1000 command e$damagepct @@ -69,6 +35,26 @@ checkOverMax + times1000 + + command + e$turntime + default + 45 + image + Time + max + 100 + min + 1 + title + Turn Time + + + checkOverMax + + times1000 + command e$sd_turns default @@ -85,6 +71,8 @@ checkOverMax + times1000 + command e$waterrise default @@ -101,6 +89,8 @@ checkOverMax + times1000 + command e$healthdec default @@ -117,6 +107,8 @@ checkOverMax + times1000 + command e$ropepct default @@ -133,6 +125,8 @@ checkOverMax + times1000 + command e$casefreq default @@ -149,6 +143,8 @@ checkOverMax + times1000 + command e$healthprob default @@ -165,6 +161,8 @@ checkOverMax + times1000 + command e$hcaseamount default @@ -181,6 +179,26 @@ checkOverMax + times1000 + + command + e$minestime + default + 3 + image + Time + max + 5 + min + -1 + title + Mines Time + + + checkOverMax + + times1000 + command e$minesnum default @@ -197,6 +215,8 @@ checkOverMax + times1000 + command e$minedudpct default @@ -213,6 +233,8 @@ checkOverMax + times1000 + command e$explosives default diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Graphics/Hedgehog/amSnowball.png Binary file share/hedgewars/Data/Graphics/Hedgehog/amSnowball.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Graphics/NapalmBomb.png Binary file share/hedgewars/Data/Graphics/NapalmBomb.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Graphics/Snow.png Binary file share/hedgewars/Data/Graphics/Snow.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Graphics/Snowball.png Binary file share/hedgewars/Data/Graphics/Snowball.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/de.lua --- a/share/hedgewars/Data/Locale/de.lua Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/de.lua Thu Dec 23 20:26:31 2010 +0100 @@ -1,27 +1,30 @@ locale = { +-- ["A game of luck"] = ["Aiming Practice"] = "Zielübung", --Bazooka, Shotgun, SniperRifle - ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Eliminiere alle Ziele bevor die Zeit ausläuft.|Du hast in dieser Mission unbegrenzte Munition.", --Bazooka, Shotgun, SniperRifle - ["Oh no! Time's up! Just try again."] = "Oh nein! Die Zeit ist um! Versuche es nochmal.", --Bazooka, Shotgun, SniperRifle + ["Bat balls at your enemies and|push them into the sea!"] = "Schlage Bälle auf deine Widersacher|und lass sie ins Meer fallen!", + ["Bat your opponents through the|baskets and out of the map!"] = "Schlage deine Widersacher durch|die Körbe und aus der Karte hinaus!", + ["Bazooka Training"] = "Bazooka-Training", +-- ["Best laps per team: "] = ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratulation! Du hast alle Ziele innerhalb der|verfügbaren Zeit ausgeschaltet.", --Bazooka, Shotgun, SniperRifle + ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Eliminiere alle Ziele bevor die Zeit ausläuft.|Du hast in dieser Mission unbegrenzte Munition.", --Bazooka, Shotgun, SniperRifle +-- ["Fastest lap: "] = + ["Hedgewars-Basketball"] = "Hedgewars-Basketball", + ["Hedgewars-Knockball"] = "Hedgewars-Knockball", ["Hunter"] = "Jäger", --Bazooka, Shotgun, SniperRifle - ["Bazooka Training"] = "Bazooka-Training", - ["'Zooka Team"] = "Die Knalltüten", +-- ["NEW fastest lap: "] = + ["Not So Friendly Match"] = "Kein-so-Freundschaftsspiel", -- Basketball, Knockball + ["Oh no! Time's up! Just try again."] = "Oh nein! Die Zeit ist um! Versuche es nochmal.", --Bazooka, Shotgun, SniperRifle +-- ["Random Weapons"] = + ["Shotgun Team"] = "Entrenamiento con escopeta", ["Shotgun Training"] = "Schrotflinten-Training", - ["Shotgun Team"] = "Entrenamiento con escopeta", + ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s ist draußen und Team %d|erhält eine Strafe!| |Punktestand:", -- Basketball, Knockball + ["%s is out and Team %d|scored a point!| |Score:"] = "%s ist draußen und Team %d|erhält einen Punkt!| |Punktestand:", -- Basketball, Knockball ["Sniper Training"] = "Scharfschützen-Training", ["Sniperz"] = "Heckenschützen", - ["Not So Friendly Match"] = "Kein-so-Freundschaftsspiel", -- Basketball, Knockball - ["%s is out and Team %d|scored a point!| |Score:"] = "%s ist draußen und Team %d|erhält einen Punkt!| |Punktestand:", -- Basketball, Knockball - ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s ist draußen und Team %d|erhält eine Strafe!| |Punktestand:", -- Basketball, Knockball - ["Hedgewars-Basketball"] = "Hedgewars-Basketball", - ["Bat your opponents through the|baskets and out of the map!"] = "Schlage deine Widersacher durch|die Körbe und aus der Karte hinaus!", - ["Hedgewars-Knockball"] = "Hedgewars-Knockball", - ["Bat balls at your enemies and|push them into the sea!"] = "Schlage Bälle auf deine Widersacher|und lass sie ins Meer fallen!", +-- ["Team %d: "] = +-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = -- ["TrophyRace"] = -- ["Use your rope to get from start to finish as fast as you can!"] = -- ["You've reached the goal!| |Time: "] = --- ["NEW fastest lap: "] = --- ["Fastest lap: "] = --- ["Best laps per team: "] = --- ["Team %d: "] = + ["'Zooka Team"] = "Die Knalltüten", } diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/en.txt --- a/share/hedgewars/Data/Locale/en.txt Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/en.txt Thu Dec 23 20:26:31 2010 +0100 @@ -51,7 +51,7 @@ 00:48=Hammer 00:49=Resurrector 00:50=Drill Strike -00:51=Snowball +00:51=Mudball 01:00=Let's fight! 01:01=Round draw diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/es.lua --- a/share/hedgewars/Data/Locale/es.lua Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/es.lua Thu Dec 23 20:26:31 2010 +0100 @@ -1,27 +1,30 @@ locale = { +-- ["A game of luck"] = ["Aiming Practice"] = "Practica tu puntería", --Bazooka, Shotgun, SniperRifle - ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destruye todos los objetivos antes de que se agote el tiempo.|La munición en esta misión es ilimitada.", --Bazooka, Shotgun, SniperRifle - ["Oh no! Time's up! Just try again."] = "¡Oh, no, se te acabó el tiempo! ¿Por qué no lo intentas de nuevo?", --Bazooka, Shotgun, SniperRifle + ["Bat balls at your enemies and|push them into the sea!"] = "Schlage Bälle auf deine Widersacher|und lass sie ins Meer fallen!", + ["Bat your opponents through the|baskets and out of the map!"] = "¡Batea pelotas hacia tus enemigos|y hazlos caer al agua!", + ["Bazooka Training"] = "Entrenamiento con bazuca", + ["Best laps per team: "] = "Mejores tiempos por equipo: ", ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "¡Felicidades! Has destruido todos los objectivos|dentro del tiempo establecido.", --Bazooka, Shotgun, SniperRifle + ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destruye todos los objetivos antes de que se agote el tiempo.|La munición en esta misión es ilimitada.", --Bazooka, Shotgun, SniperRifle + ["Fastest lap: "] = "Vuelta rápida: ", + ["Hedgewars-Basketball"] = "Hedgewars-Baloncesto", + ["Hedgewars-Knockball"] = "Hedgewars-Knockball", ["Hunter"] = "Artillero", --Bazooka, Shotgun, SniperRifle - ["Bazooka Training"] = "Entrenamiento con bazuca", - ["'Zooka Team"] = "Bazuqueros", + ["NEW fastest lap: "] = "NUEVA vuelta rápida: ", + ["Not So Friendly Match"] = "Partido no-tan-amistoso", -- Basketball, Knockball + ["Oh no! Time's up! Just try again."] = "¡Oh, no, se te acabó el tiempo! ¿Por qué no lo intentas de nuevo?", --Bazooka, Shotgun, SniperRifle +-- ["Random Weapons"] = + ["Shotgun Team"] = "Escopeteros", ["Shotgun Training"] = "Entrenamiento con escopeta", - ["Shotgun Team"] = "Escopeteros", + ["%s is out and Team %d|scored a penalty!| |Score:"] = "¡%s cayó y Equipo %d|anotó una falta!| |Puntuación:", -- Basketball, Knockball + ["%s is out and Team %d|scored a point!| |Score:"] = "¡%s cayó y Equipo %d|anotó un tanto!| |Puntuación:", -- Basketball, Knockball ["Sniper Training"] = "Entrenamiento con rifle francotirador", ["Sniperz"] = "Fusileros", - ["Not So Friendly Match"] = "Partido no-tan-amistoso", -- Basketball, Knockball - ["%s is out and Team %d|scored a point!| |Score:"] = "¡%s cayó y Equipo %d|anotó un tanto!| |Puntuación:", -- Basketball, Knockball - ["%s is out and Team %d|scored a penalty!| |Score:"] = "¡%s cayó y Equipo %d|anotó una falta!| |Puntuación:", -- Basketball, Knockball - ["Hedgewars-Basketball"] = "Hedgewars-Baloncesto", - ["Bat your opponents through the|baskets and out of the map!"] = "¡Batea pelotas hacia tus enemigos|y hazlos caer al agua!", - ["Hedgewars-Knockball"] = "Hedgewars-Knockball", - ["Bat balls at your enemies and|push them into the sea!"] = "Schlage Bälle auf deine Widersacher|und lass sie ins Meer fallen!", + ["Team %d: "] = "Equipo %d", +-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = ["TrophyRace"] = "TrophyRace", ["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!", ["You've reached the goal!| |Time: "] = "¡Has llegado a la meta!| |Tiempo: ", - ["NEW fastest lap: "] = "NUEVA vuelta rápida: ", - ["Fastest lap: "] = "Vuelta rápida: ", - ["Best laps per team: "] = "Mejores tiempos por equipo: ", - ["Team %d: "] = "Equipo %d", + ["'Zooka Team"] = "Bazuqueros", } diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_ar.ts --- a/share/hedgewars/Data/Locale/hedgewars_ar.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_ar.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new جديد + + copy of + + FreqSpinBox @@ -183,6 +187,10 @@ Large floating islands جزر طائفة كبيرة + + Seed + + HWNetServersModel @@ -313,6 +321,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + تحميل + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1011,6 +1050,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1026,6 +1069,10 @@ New جديد + + Copy + + PageSinglePlayer @@ -1202,6 +1249,14 @@ Default التلقائي + + Normal + + + + hand drawn map... + + QGroupBox @@ -1428,6 +1483,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1611,6 +1670,10 @@ Associate file extensions + + Set + + QTableWidget @@ -1665,6 +1728,10 @@ new جديد + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_bg.ts --- a/share/hedgewars/Data/Locale/hedgewars_bg.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_bg.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new Нов отбор + + copy of + + FreqSpinBox @@ -182,6 +186,10 @@ Large floating islands + + Seed + + HWNetServersModel @@ -294,6 +302,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + Зареждане + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -961,6 +1000,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -976,6 +1019,10 @@ New + + Copy + + PageSinglePlayer @@ -1148,6 +1195,14 @@ Default По подразбиране + + Normal + + + + hand drawn map... + + QGroupBox @@ -1374,6 +1429,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1557,6 +1616,10 @@ Associate file extensions + + Set + + QTableWidget @@ -1611,6 +1674,10 @@ new Нов отбор + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_cs.ts --- a/share/hedgewars/Data/Locale/hedgewars_cs.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_cs.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new nový + + copy of + + FreqSpinBox @@ -183,6 +187,10 @@ Large floating islands + + Seed + + HWNetServersModel @@ -295,6 +303,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + Nahrát + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -970,6 +1009,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -985,6 +1028,10 @@ New + + Copy + + PageSinglePlayer @@ -1157,6 +1204,14 @@ Default Základní + + Normal + + + + hand drawn map... + + QGroupBox @@ -1383,6 +1438,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1566,6 +1625,10 @@ Associate file extensions + + Set + + QTableWidget @@ -1620,6 +1683,10 @@ new nový + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_de.ts --- a/share/hedgewars/Data/Locale/hedgewars_de.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_de.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new Neu + + copy of + + FreqSpinBox @@ -186,6 +190,10 @@ Large floating islands Große schwebende Inseln + + Seed + + HWNetServersModel @@ -321,6 +329,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + Laden + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1035,6 +1074,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1050,6 +1093,10 @@ New Neu + + Copy + + PageSinglePlayer @@ -1226,6 +1273,14 @@ Default Standard + + Normal + + + + hand drawn map... + + QGroupBox @@ -1458,6 +1513,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1641,6 +1700,10 @@ Associate file extensions Ordne Dateitypen zu + + Set + + QTableWidget @@ -1695,6 +1758,10 @@ new Neu + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_en.ts --- a/share/hedgewars/Data/Locale/hedgewars_en.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_en.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new new + + copy of + + FreqSpinBox @@ -186,6 +190,10 @@ Large floating islands + + Seed + + HWNetServersModel @@ -319,6 +327,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + Load + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1019,6 +1058,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1034,6 +1077,10 @@ New New + + Copy + + PageSinglePlayer @@ -1210,6 +1257,14 @@ Default Default + + Normal + + + + hand drawn map... + + QGroupBox @@ -1436,6 +1491,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1619,6 +1678,10 @@ Associate file extensions Associate file extensions + + Set + + QTableWidget @@ -1673,6 +1736,10 @@ new new + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_es.ts --- a/share/hedgewars/Data/Locale/hedgewars_es.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_es.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new Nuevo + + copy of + + FreqSpinBox @@ -190,6 +194,10 @@ Large floating islands Islas grandes + + Seed + + HWNetServersModel @@ -323,6 +331,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + Cargar + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1037,6 +1076,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1052,6 +1095,10 @@ New Nuevo + + Copy + + PageSinglePlayer @@ -1256,6 +1303,14 @@ Crazy Lunático + + Normal + + + + hand drawn map... + + QGroupBox @@ -1495,6 +1550,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1678,6 +1737,10 @@ Associate file extensions Asociar tipos de archivo + + Set + + QTableWidget @@ -1732,6 +1795,10 @@ new Nuevo + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_fi.ts --- a/share/hedgewars/Data/Locale/hedgewars_fi.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_fi.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new uusi + + copy of + + FreqSpinBox @@ -182,6 +186,10 @@ Large floating islands Suuria kelluvia saaria + + Seed + + HWNetServersModel @@ -315,6 +323,37 @@ + PageDrawMap + + Undo + + + + Clear + Tyhjennä + + + Load + Lataa + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1029,6 +1068,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1044,6 +1087,10 @@ New Uusi + + Copy + + PageSinglePlayer @@ -1248,6 +1295,14 @@ Crazy Sekopäinen + + Normal + + + + hand drawn map... + + QGroupBox @@ -1474,6 +1529,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1657,6 +1716,10 @@ Associate file extensions + + Set + + QTableWidget @@ -1711,6 +1774,10 @@ new uusi + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_fr.ts --- a/share/hedgewars/Data/Locale/hedgewars_fr.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_fr.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new Nouveau + + copy of + + FreqSpinBox @@ -182,6 +186,10 @@ Large floating islands Grandes îles flottantes + + Seed + + HWNetServersModel @@ -312,6 +320,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + Charger + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -999,6 +1038,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1014,6 +1057,10 @@ New Nouveau + + Copy + + PageSinglePlayer @@ -1190,6 +1237,14 @@ Default Défaut + + Normal + + + + hand drawn map... + + QGroupBox @@ -1416,6 +1471,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1599,6 +1658,10 @@ Associate file extensions + + Set + + QTableWidget @@ -1653,6 +1716,10 @@ new + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_hu.ts --- a/share/hedgewars/Data/Locale/hedgewars_hu.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_hu.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new új + + copy of + + FreqSpinBox @@ -181,6 +185,10 @@ Large floating islands Nagy lebegő szigetek + + Seed + + HWNetServersModel @@ -311,6 +319,37 @@ + PageDrawMap + + Undo + + + + Clear + Törlés + + + Load + Betöltés + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1000,6 +1039,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1015,6 +1058,10 @@ New Új + + Copy + + PageSinglePlayer @@ -1191,6 +1238,14 @@ Default Default + + Normal + + + + hand drawn map... + + QGroupBox @@ -1423,6 +1478,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1606,6 +1665,10 @@ Associate file extensions + + Set + + QTableWidget @@ -1660,6 +1723,10 @@ new új + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_it.ts --- a/share/hedgewars/Data/Locale/hedgewars_it.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_it.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new nuovo + + copy of + + FreqSpinBox @@ -186,6 +190,10 @@ Large floating islands + + Seed + + HWNetServersModel @@ -316,6 +324,37 @@ + PageDrawMap + + Undo + + + + Clear + Cancella + + + Load + Carica + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1015,6 +1054,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1030,6 +1073,10 @@ New Nuovo + + Copy + + PageSinglePlayer @@ -1206,6 +1253,14 @@ Default Default + + Normal + + + + hand drawn map... + + QGroupBox @@ -1438,6 +1493,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1621,6 +1680,10 @@ Associate file extensions + + Set + + QTableWidget @@ -1675,6 +1738,10 @@ new nuovo + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_ja.ts --- a/share/hedgewars/Data/Locale/hedgewars_ja.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_ja.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new 作成 + + copy of + + FreqSpinBox @@ -181,6 +185,10 @@ Large floating islands + + Seed + + HWNetServersModel @@ -293,6 +301,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + ロード + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -952,6 +991,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -967,6 +1010,10 @@ New + + Copy + + PageSinglePlayer @@ -1139,6 +1186,14 @@ Default デフォールト + + Normal + + + + hand drawn map... + + QGroupBox @@ -1365,6 +1420,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1548,6 +1607,10 @@ Associate file extensions + + Set + + QTableWidget @@ -1602,6 +1665,10 @@ new 作成 + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_nl.ts --- a/share/hedgewars/Data/Locale/hedgewars_nl.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_nl.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new + + copy of + + FreqSpinBox @@ -178,6 +182,10 @@ Large floating islands + + Seed + + HWNetServersModel @@ -300,6 +308,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -963,6 +1002,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -978,6 +1021,10 @@ New + + Copy + + PageSinglePlayer @@ -1146,6 +1193,14 @@ In progress + + Normal + + + + hand drawn map... + + QGroupBox @@ -1368,6 +1423,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1541,6 +1600,10 @@ Associate file extensions + + Set + + QTableWidget @@ -1595,6 +1658,10 @@ new + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_pl.ts --- a/share/hedgewars/Data/Locale/hedgewars_pl.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_pl.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new nowy + + copy of + + FreqSpinBox @@ -191,6 +195,10 @@ Large floating islands Duże wyspy + + Seed + + HWNetServersModel @@ -324,6 +332,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + Wczytaj + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1063,6 +1102,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1078,6 +1121,10 @@ New Nowy + + Copy + + PageSinglePlayer @@ -1282,6 +1329,14 @@ Crazy Crazy + + Normal + + + + hand drawn map... + + QGroupBox @@ -1524,6 +1579,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1707,6 +1766,10 @@ Associate file extensions Powiąż typy plików z Hedgewars + + Set + + QTableWidget @@ -1761,6 +1824,10 @@ new nowy + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_pt_BR.ts --- a/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new Novo + + copy of + cópia de + FreqSpinBox @@ -42,7 +46,7 @@ When this option is enabled selecting a game scheme will auto-select a weapon - + Quando esta opção está habilitada a seleção de um esquema de jogo implicará em auto seleção do esquema de armas @@ -182,6 +186,11 @@ Large floating islands Ilhas grandes + + Seed + checar + Semeie + HWNetServersModel @@ -307,6 +316,37 @@ + PageDrawMap + + Undo + Desfazer + + + Clear + Limpar + + + Load + Carregar + + + Save + Salvar + + + Load drawn map + Carregar mapa + + + Drawn Maps (*.hwmap);;All files (*.*) + Mapas Desenhados (*.hwmaps);; Todos os arquivos (*.*) + + + Save drawn map + Salvar Mapa + + + PageEditTeam General @@ -430,21 +470,21 @@ <b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts. - + <b>%1</b> pensou que era bom atirar na sua própria equipe totalizando <b>%2</b> ponto. <b>%1</b> pensou que era bom atirar na sua própria equipe totalizando <b>%2</b> pontos. <b>%1</b> killed <b>%2</b> of his own hedgehogs. - + <b>%1</b> matou <b>%2</b> dos próprios ouriços.</p>. <b>%1</b> matou <b>%2</b> dos próprios ouriços.</p>. <b>%1</b> was scared and skipped turn <b>%2</b> times. - + <b>%1</b> estava assustado e passou o turno <b>%2</b> vez.</p>. <b>%1</b> estava assustado e passou o turno <b>%2</b> vezes.</p>. @@ -719,17 +759,17 @@ Want to save ropes? Release the rope in mid air and then shoot again. As long as you don't touch the ground you'll reuse your rope without wasting ammo! Tips - Quer economizar corda? Solte-a quando estiver no meio do ar e então atire de novo. Se você não tocar o solo, você reutilizará a corda e não desperdiçará o seu arsenal! + Quer economizar corda? Solte-a quando estiver no meio do ar e então atire de novo. Se você não tocar o solo, você reutilizará a corda e não desperdiçará-la do seu arsenal! You can find your Hedgewars configuration files under "Library/Application Support/Hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand. Tips - + Você pode encontrar os arquivos de configuração do Hedgewars em "Library/Application Support/Hedgewars" no seu diretório base. Crie backups ou leve os arquivos com você, mas não os edite manualmente. You can find your Hedgewars configuration files under ".hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand. Tips - + Você pode encontrar os arquivos de configuração do Hedgewars em ".hedgewars/" no seu diretório base. Crie backups ou leve os arquivos com você, mas não os edite manualmente. @@ -800,27 +840,27 @@ New scheme - + Novo Esquema Edit scheme - + Editar Esquema Delete scheme - + Apagar Esquema New weapon set - + Novo esquema de armas Edit weapon set - + Editar esquema de armas Delete weapon set - + Apagar esquema de armas @@ -1081,11 +1121,15 @@ You will not have to worry about wind anymore. - + Você não tem que se preocupar com o vento mais. Wind will affect almost everything. - + Vento afetará quase tudo. + + + Copy + Copiar @@ -1100,7 +1144,11 @@ New - Novo + Novo + + + Copy + Copiar @@ -1306,6 +1354,14 @@ Crazy Crazy + + Normal + Normal + + + hand drawn map... + mapa desenhado a mão... + QGroupBox @@ -1359,7 +1415,7 @@ Schemes and Weapons - + Esquemas e Armas @@ -1540,7 +1596,11 @@ % Rope Length - + % Comprimento da Corda + + + Gameplay + Modo de Jogo @@ -1615,23 +1675,23 @@ Really delete this team? - + Realmente deseja apagar esta Equipe? Schemes - + Esquemas Can not delete default scheme '%1'! - + Esquema padrão não pode ser apagado '%1'! Really delete this game scheme? - + Realmente deseja apagar este esquema de jogo? Can not delete default weapon set '%1'! - + Esquema de armas não pode ser apagado '%1'! @@ -1727,6 +1787,11 @@ Associate file extensions Associar extensão de arquivos. + + Set + Esquema esta muito genérico + Esquema + QTableWidget @@ -1781,7 +1846,11 @@ new - + novo + + + copy of + cópia de @@ -1891,11 +1960,11 @@ Disable Wind - + Desativar Vento More Wind - + Mais Vento diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_pt_PT.ts --- a/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new novo + + copy of + + FreqSpinBox @@ -182,6 +186,10 @@ Large floating islands Ilhas flutuantes grandes + + Seed + + HWNetServersModel @@ -315,6 +323,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + Carregar + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1029,6 +1068,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1044,6 +1087,10 @@ New Novo + + Copy + + PageSinglePlayer @@ -1220,6 +1267,14 @@ Default Predefinido + + Normal + + + + hand drawn map... + + QGroupBox @@ -1446,6 +1501,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1629,6 +1688,10 @@ Associate file extensions Associar com as extensões dos ficheiros + + Set + + QTableWidget @@ -1683,6 +1746,10 @@ new novo + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_ru.ts --- a/share/hedgewars/Data/Locale/hedgewars_ru.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_ru.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new новый + + copy of + + FreqSpinBox @@ -187,6 +191,10 @@ Large floating islands Большие островки + + Seed + + HWNetServersModel @@ -320,6 +328,37 @@ + PageDrawMap + + Undo + + + + Clear + Очистить + + + Load + Загрузить + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1030,6 +1069,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1045,6 +1088,10 @@ New Новая + + Copy + + PageSinglePlayer @@ -1221,6 +1268,14 @@ Default По умолчанию + + Normal + + + + hand drawn map... + + QGroupBox @@ -1457,6 +1512,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1640,6 +1699,10 @@ Associate file extensions Сопоставить расширения файлов + + Set + + QTableWidget @@ -1694,6 +1757,10 @@ new новый + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_sk.ts --- a/share/hedgewars/Data/Locale/hedgewars_sk.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_sk.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new nový + + copy of + + FreqSpinBox @@ -187,6 +191,10 @@ Large floating islands Veľké plávajúce ostrovčeky + + Seed + + HWNetServersModel @@ -322,6 +330,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + Načítať + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1050,6 +1089,13 @@ Wind will affect almost everything. Vietor bude ovplyvňovať takmer všetko. +<<<<<<< local +======= + + + Copy + +>>>>>>> other @@ -1065,6 +1111,13 @@ New Nová +<<<<<<< local +======= + + + Copy + +>>>>>>> other @@ -1270,6 +1323,14 @@ Crazy Šialené + + Normal + + + + hand drawn map... + + QGroupBox @@ -1506,6 +1567,13 @@ % Rope Length % dĺžka lana +<<<<<<< local +======= + + + Gameplay + +>>>>>>> other @@ -1690,6 +1758,10 @@ Associate file extensions Asociovať prípony súborov. + + Set + + QTableWidget @@ -1743,6 +1815,13 @@ new nový +<<<<<<< local +======= + + + copy of + +>>>>>>> other diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_sv.ts --- a/share/hedgewars/Data/Locale/hedgewars_sv.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_sv.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new ny + + copy of + kopia av + FreqSpinBox @@ -26,7 +30,7 @@ GameCFGWidget Edit weapons - Redigera vapenscheman + Redigera vapenset Error @@ -42,7 +46,7 @@ When this option is enabled selecting a game scheme will auto-select a weapon - + När det här valet är aktivt kommer vapnen att ändras när du ändrar spelschema @@ -182,6 +186,10 @@ Large floating islands Stora flytande öar + + Seed + Frö + HWNetServersModel @@ -315,6 +323,37 @@ + PageDrawMap + + Undo + Ångra + + + Clear + Rensa + + + Load + Läs in + + + Save + Spara + + + Load drawn map + Läs in ritad karta + + + Drawn Maps (*.hwmap);;All files (*.*) + Ritade kartor (*.hwmap);;Alla filer (*.*) + + + Save drawn map + Spara ritad karta + + + PageEditTeam General @@ -666,12 +705,12 @@ You can find your Hedgewars configuration files under "Library/Application Support/Hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand. Tips - + Du kan hitta dina konfigurationsfiler under "Library/Application Support/Hedgewars" i din hem-mapp. Gör en säkerhetskopia eller ta med dig filerna, men redigera dem inte för hand. You can find your Hedgewars configuration files under ".hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand. Tips - + Du kan hitta dina konfigurationsfiler under ".hedgewars" i din hem-mapp. Gör en säkerhetskopia eller ta med dig filerna, men redigera dem inte för hand. @@ -742,27 +781,27 @@ New scheme - + Nytt schema Edit scheme - + Redigera schema Delete scheme - + Ta bort schema New weapon set - + Nytt vapenset Edit weapon set - + Redigera vapenset Delete weapon set - + Ta bort vapenset @@ -1023,11 +1062,15 @@ You will not have to worry about wind anymore. - + Nu behöver du inte oroa dig för vinden längre. Wind will affect almost everything. - + Vind påverkar nästan allting. + + + Copy + Kopiera @@ -1042,7 +1085,11 @@ New - Ny + Ny + + + Copy + Kopiera @@ -1248,6 +1295,14 @@ Crazy Galet + + Normal + Vanligt + + + hand drawn map... + handritad karta... + QGroupBox @@ -1301,7 +1356,7 @@ Schemes and Weapons - + Scheman och vapen @@ -1478,7 +1533,11 @@ % Rope Length - + % replängd + + + Gameplay + Speltyp @@ -1547,27 +1606,27 @@ Teams - Lag + Lag Really delete this team? - + Vill du verkligen ta bort detta lag? Schemes - + Scheman Can not delete default scheme '%1'! - + Kan inte ta bort standardschema '%1'! Really delete this game scheme? - + Vill du verkligen ta bort detta spelschema? Can not delete default weapon set '%1'! - + Kan inte ta bort standardvapenset '%1'! @@ -1663,6 +1722,10 @@ Associate file extensions Associera filextentioner + + Set + Ange + QTableWidget @@ -1715,7 +1778,11 @@ new - ny + ny + + + copy of + kopia av @@ -1825,11 +1892,11 @@ Disable Wind - + Avaktivera vind More Wind - + Mer vind diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_tr_TR.ts --- a/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new yeni + + copy of + + FreqSpinBox @@ -181,6 +185,10 @@ Large floating islands + + Seed + + HWNetServersModel @@ -301,6 +309,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + Yükle + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -964,6 +1003,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -979,6 +1022,10 @@ New Yeni + + Copy + + PageSinglePlayer @@ -1151,6 +1198,14 @@ Default Öntanımlı + + Normal + + + + hand drawn map... + + QGroupBox @@ -1377,6 +1432,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1560,6 +1619,10 @@ Associate file extensions + + Set + + QTableWidget @@ -1614,6 +1677,10 @@ new yeni + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_uk.ts --- a/share/hedgewars/Data/Locale/hedgewars_uk.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_uk.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new нова + + copy of + + FreqSpinBox @@ -187,6 +191,10 @@ Large floating islands Великі плавучі острова + + Seed + + HWNetServersModel @@ -320,6 +328,37 @@ + PageDrawMap + + Undo + + + + Clear + Очистити + + + Load + Завантажити + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1030,6 +1069,10 @@ Wind will affect almost everything. Вітер вплине майже на все. + + Copy + + PageSelectWeapon @@ -1045,6 +1088,10 @@ New Нова + + Copy + + PageSinglePlayer @@ -1221,6 +1268,14 @@ Default За замовчуванням + + Normal + + + + hand drawn map... + + QGroupBox @@ -1447,6 +1502,10 @@ % Rope Length % Довжина Мотузки + + Gameplay + + QLineEdit @@ -1630,6 +1689,10 @@ Associate file extensions Асоціювати файлові розширення + + Set + + QTableWidget @@ -1684,6 +1747,10 @@ new нова + + copy of + + TCPBase @@ -2086,7 +2153,7 @@ Delete - + Видалити Mouse: Left button @@ -2118,7 +2185,7 @@ Clear - + Очистити Return diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_zh_CN.ts --- a/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new 新建 + + copy of + + FreqSpinBox @@ -181,6 +185,10 @@ Large floating islands 大型漂浮岛屿 + + Seed + + HWNetServersModel @@ -314,6 +322,37 @@ + PageDrawMap + + Undo + + + + Clear + + + + Load + 读取 + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -1038,6 +1077,10 @@ Wind will affect almost everything. 风无所不在。 + + Copy + + PageSelectWeapon @@ -1053,6 +1096,10 @@ New 新模式 + + Copy + + PageSinglePlayer @@ -1257,6 +1304,14 @@ Crazy 疯狂刺猬 + + Normal + + + + hand drawn map... + + QGroupBox @@ -1483,6 +1538,10 @@ Health in Crates 生命箱的值数 + + Gameplay + + QLineEdit @@ -1666,6 +1725,10 @@ Associate file extensions 相关文件扩展 + + Set + + QTableWidget @@ -1720,6 +1783,10 @@ new + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/hedgewars_zh_TW.ts --- a/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,10 @@ new + + copy of + + FreqSpinBox @@ -181,6 +185,10 @@ Large floating islands + + Seed + + HWNetServersModel @@ -311,6 +319,37 @@ + PageDrawMap + + Undo + + + + Clear + 清除 + + + Load + 讀取 + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + PageEditTeam General @@ -988,6 +1027,10 @@ Wind will affect almost everything. + + Copy + + PageSelectWeapon @@ -1003,6 +1046,10 @@ New 新模式 + + Copy + + PageSinglePlayer @@ -1179,6 +1226,14 @@ Default 默認 + + Normal + + + + hand drawn map... + + QGroupBox @@ -1405,6 +1460,10 @@ % Rope Length + + Gameplay + + QLineEdit @@ -1588,6 +1647,10 @@ Associate file extensions + + Set + + QTableWidget @@ -1642,6 +1705,10 @@ new + + copy of + + TCPBase diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/pl.lua --- a/share/hedgewars/Data/Locale/pl.lua Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/pl.lua Thu Dec 23 20:26:31 2010 +0100 @@ -1,27 +1,30 @@ locale = { +-- ["A game of luck"] = ["Aiming Practice"] = "Potrenuj celność", --Bazooka, Shotgun, SniperRifle - ["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.", --Bazooka, Shotgun, SniperRifle - ["Oh no! Time's up! Just try again."] = "Ajajaj! Koniec czasu! Spróbuj jeszcze raz.", --Bazooka, Shotgun, SniperRifle + ["Bat balls at your enemies and|push them into the sea!"] = "Uderzaj piłkami w swoich przeciwników|i strącaj ich do wody!", + ["Bat your opponents through the|baskets and out of the map!"] = "Uderzaj swoich przekiwników|wyrzucając przez kosz, poza mapę!", + ["Bazooka Training"] = "Trening bazooki", + ["Best laps per team: "] = "Najszybsze okrążenie drużyny: ", ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratulacje! Zniszczyłeś wszystkie cele przed upłynięciem czasu.", --Bazooka, Shotgun, SniperRifle + ["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.", --Bazooka, Shotgun, SniperRifle + ["Fastest lap: "] = "Najszybsze okrążenie: ", + ["Hedgewars-Basketball"] = "Hedgewars-Koszykówka", + ["Hedgewars-Knockball"] = "Hedgewars-Knockball", ["Hunter"] = "Strzelec", --Bazooka, Shotgun, SniperRifle - ["Bazooka Training"] = "Trening bazooki", - ["'Zooka Team"] = "Bazookinierzy", + ["NEW fastest lap: "] = "NOWE najszybsze okrążenie: ", + ["Not So Friendly Match"] = "Mecz Nie-Do-Końca Towarzyski", -- Basketball, Knockball + ["Oh no! Time's up! Just try again."] = "Ajajaj! Koniec czasu! Spróbuj jeszcze raz.", --Bazooka, Shotgun, SniperRifle +-- ["Random Weapons"] = +-- ["Shotgun Team"] = ["Shotgun Training"] = "Trening strzelecki", --- ["Shotgun Team"] = + ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s utonął i drużyna %d|dostała punkt karny!| |Punktacja:", -- Basketball, Knockball + ["%s is out and Team %d|scored a point!| |Score:"] = "%s utonął i drużyna %d|zdobyła punkt!| |Punktacja:", -- Basketball, Knockball ["Sniper Training"] = "Trening Snajperski", ["Sniperz"] = "Snajperzy", - ["Not So Friendly Match"] = "Mecz Nie-Do-Końca Towarzyski", -- Basketball, Knockball - ["%s is out and Team %d|scored a point!| |Score:"] = "%s utonął i drużyna %d|zdobyła punkt!| |Punktacja:", -- Basketball, Knockball - ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s utonął i drużyna %d|dostała punkt karny!| |Punktacja:", -- Basketball, Knockball - ["Hedgewars-Basketball"] = "Hedgewars-Koszykówka", - ["Bat your opponents through the|baskets and out of the map!"] = "Uderzaj swoich przekiwników|wyrzucając przez kosz, poza mapę!", - ["Hedgewars-Knockball"] = "Hedgewars-Knockball", - ["Bat balls at your enemies and|push them into the sea!"] = "Uderzaj piłkami w swoich przeciwników|i strącaj ich do wody!", + ["Team %d: "] = "Drużyna %d: ", +-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = ["TrophyRace"] = "TrophyRace", ["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", ["You've reached the goal!| |Time: "] = "Dotarłeś do celu!| |Czas: ", - ["NEW fastest lap: "] = "NOWE najszybsze okrążenie: ", - ["Fastest lap: "] = "Najszybsze okrążenie: ", - ["Best laps per team: "] = "Najszybsze okrążenie drużyny: ", - ["Team %d: "] = "Drużyna %d: ", + ["'Zooka Team"] = "Bazookinierzy", } diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/pt_BR.lua --- a/share/hedgewars/Data/Locale/pt_BR.lua Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/pt_BR.lua Thu Dec 23 20:26:31 2010 +0100 @@ -1,27 +1,30 @@ locale = { +-- ["A game of luck"] = ["Aiming Practice"] = "Pratique a sua pontaria", --Bazooka, Shotgun, SniperRifle - ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destrua todos os alvos antes que o tempo acabe.|Você tem munição infinita para esta missão.", --Bazooka, Shotgun, SniperRifle - ["Oh no! Time's up! Just try again."] = "Oh não! O tempo acabou! Tente novamente.", --Bazooka, Shotgun, SniperRifle + ["Bat balls at your enemies and|push them into the sea!"] = "Rebata as bolas em direção ao seus|e derrube-os no mar!", + ["Bat your opponents through the|baskets and out of the map!"] = "Rebata seus oponentes para|fora do mapa através dos cestos!", + ["Bazooka Training"] = "Treino com a Bazuca", + ["Best laps per team: "] = "Melhor volta por equipe: ", ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Parabéns! Você eliminou todos os alvos|dentro do tempo limite.", --Bazooka, Shotgun, SniperRifle + ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destrua todos os alvos antes que o tempo acabe.|Você tem munição infinita para esta missão.", --Bazooka, Shotgun, SniperRifle + ["Fastest lap: "] = "Volta mais rápida: ", + ["Hedgewars-Basketball"] = "Hedgewars-Basketball", + ["Hedgewars-Knockball"] = "Hedgewars-Knockball", ["Hunter"] = "Artilheiro", --Bazooka, Shotgun, SniperRifle - ["Bazooka Training"] = "Treino com a Bazuca", - ["'Zooka Team"] = "Bazuqueiros", + ["NEW fastest lap: "] = "NOVA volta mais rápida: ", + ["Not So Friendly Match"] = "Partida não muito amigável", -- Basketball, Knockball + ["Oh no! Time's up! Just try again."] = "Oh não! O tempo acabou! Tente novamente.", --Bazooka, Shotgun, SniperRifle +-- ["Random Weapons"] = + ["Shotgun Team"] = "Carabineiros", ["Shotgun Training"] = "Treino com a Escopeta", - ["Shotgun Team"] = "Carabineiros", + ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s está fora e a Equipe %d|sofreu uma penalidade!| |Pontuação:", -- Basketball, Knockball + ["%s is out and Team %d|scored a point!| |Score:"] = "%s está fora e a Equipe %d|marcou um ponto!| |Pontuação:", -- Basketball, Knockball ["Sniper Training"] = "Treino com o Rifle Sniper", ["Sniperz"] = "Franco-Atiradores", - ["Not So Friendly Match"] = "Partida não muito amigável", -- Basketball, Knockball - ["%s is out and Team %d|scored a point!| |Score:"] = "%s está fora e a Equipe %d|marcou um ponto!| |Pontuação:", -- Basketball, Knockball - ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s está fora e a Equipe %d|sofreu uma penalidade!| |Pontuação:", -- Basketball, Knockball - ["Hedgewars-Basketball"] = "Hedgewars-Basketball", - ["Bat your opponents through the|baskets and out of the map!"] = "Rebata seus oponentes para|fora do mapa através dos cestos!", - ["Hedgewars-Knockball"] = "Hedgewars-Knockball", - ["Bat balls at your enemies and|push them into the sea!"] = "Rebata as bolas em direção ao seus|e derrube-os no mar!", + ["Team %d: "] = "Equipe %d: ", +-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = ["TrophyRace"] = "TrophyRace", ["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!", ["You've reached the goal!| |Time: "] = "Você alcançou o objetivo!| |Tempo: ", - ["NEW fastest lap: "] = "NOVA volta mais rápida: ", - ["Fastest lap: "] = "Volta mais rápida: ", - ["Best laps per team: "] = "Melhor volta por equipe: ", - ["Team %d: "] = "Equipe %d: ", + ["'Zooka Team"] = "Bazuqueiros", } diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/pt_BR.txt --- a/share/hedgewars/Data/Locale/pt_BR.txt Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/pt_BR.txt Thu Dec 23 20:26:31 2010 +0100 @@ -50,6 +50,8 @@ 00:47=Mina Adesiva 00:48=Martelo 00:49=Ressucitador +00:50=Ataque Perfurador +00:51=Bola de Lama 01:00=Hora de lutar! 01:01=Partida empatou @@ -65,6 +67,7 @@ 01:11=Esta arma ou utilidade ainda não está disponível 01:12=Último round antes da Morte Súbita! 01:13=%1 rounds até a Morte Súbita +01:14=Se prepare, %1! ; Event messages ; Hog (%1) died @@ -87,6 +90,9 @@ 02:00=%1 foi embora para Passárgada 02:00=%1 foi comprar cigarros 02:00=%1 empacotou +02:00=%1 não aguentou o tranco +02:00=%1 será conhecido postumamente +02:00=%1 balbuceou palavras incompreensíveis ; Hog (%1) drowned 02:01=%1 bebeu água até não poder mais @@ -280,6 +286,8 @@ 03:47=Grudenta 03:48=Tanto bate até que fura! 03:49=Faz o que você imagina +03:50=Contra covardes +03:51=Devagar, e sempre.... ; Weapon Descriptions (use | as line breaks) 04:00=Ataque seus inimigos usando uma granada simples|Ela explodirá assim que o tempo passar|1-5: Escolha o tempo da granada|Ataque: Quanto mais tempo, mais forte o lançamento. diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/pt_PT.lua --- a/share/hedgewars/Data/Locale/pt_PT.lua Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/pt_PT.lua Thu Dec 23 20:26:31 2010 +0100 @@ -1,27 +1,30 @@ locale = { +-- ["A game of luck"] = ["Aiming Practice"] = "Pratica a tua pontaria", --Bazooka, Shotgun, SniperRifle - ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destrói todos os alvos antes do tempo terminar.|Tens munições infinitas para esta missão.", --Bazooka, Shotgun, SniperRifle - ["Oh no! Time's up! Just try again."] = "Oh não! Acabou o tempo! Tenta novamente.", --Bazooka, Shotgun, SniperRifle + ["Bat balls at your enemies and|push them into the sea!"] = "Bate bolas contra os teus|enimigos e empurra-os ao mar!", + ["Bat your opponents through the|baskets and out of the map!"] = "Bate os teus adversarios|fora do mapa acertando com eles no cesto!", + ["Bazooka Training"] = "Treino com Bazuca", + ["Best laps per team: "] = "Melhores voltas por equipa: ", ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Parabéns! Eliminaste todos os alvos|dentro do tempo limite.", --Bazooka, Shotgun, SniperRifle + ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destrói todos os alvos antes do tempo terminar.|Tens munições infinitas para esta missão.", --Bazooka, Shotgun, SniperRifle + ["Fastest lap: "] = "Volta mais rápida: ", + ["Hedgewars-Basketball"] = "Hedgewars-Basketball", + ["Hedgewars-Knockball"] = "Hedgewars-Knockball", ["Hunter"] = "Comando", --Bazooka, Shotgun, SniperRifle - ["Bazooka Training"] = "Treino com Bazuca", - ["'Zooka Team"] = "Bazuqueiros", + ["NEW fastest lap: "] = "NOVA volta recorde: ", + ["Not So Friendly Match"] = "Partida não muito amigável", -- Basketball, Knockball + ["Oh no! Time's up! Just try again."] = "Oh não! Acabou o tempo! Tenta novamente.", --Bazooka, Shotgun, SniperRifle +-- ["Random Weapons"] = + ["Shotgun Team"] = "Caçadores", ["Shotgun Training"] = "Treino com Caçadeira", - ["Shotgun Team"] = "Caçadores", + ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s está fora e a equipa %d|perde um ponto!| |Pontuação:", -- Basketball, Knockball + ["%s is out and Team %d|scored a point!| |Score:"] = "%s está fora e a equipa %d|soma um ponto!| |Pontuação:", -- Basketball, Knockball ["Sniper Training"] = "Treino com Sniper", -- ["Sniperz"] = - ["Not So Friendly Match"] = "Partida não muito amigável", -- Basketball, Knockball - ["%s is out and Team %d|scored a point!| |Score:"] = "%s está fora e a equipa %d|soma um ponto!| |Pontuação:", -- Basketball, Knockball - ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s está fora e a equipa %d|perde um ponto!| |Pontuação:", -- Basketball, Knockball - ["Hedgewars-Basketball"] = "Hedgewars-Basketball", - ["Bat your opponents through the|baskets and out of the map!"] = "Bate os teus adversarios|fora do mapa acertando com eles no cesto!", - ["Hedgewars-Knockball"] = "Hedgewars-Knockball", - ["Bat balls at your enemies and|push them into the sea!"] = "Bate bolas contra os teus|enimigos e empurra-os ao mar!", + ["Team %d: "] = "Equipa %d: ", +-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = ["TrophyRace"] = "TrophyRace", ["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!", ["You've reached the goal!| |Time: "] = "Chegaste ao fim!| |Tempo: ", - ["NEW fastest lap: "] = "NOVA volta recorde: ", - ["Fastest lap: "] = "Volta mais rápida: ", - ["Best laps per team: "] = "Melhores voltas por equipa: ", - ["Team %d: "] = "Equipa %d: ", + ["'Zooka Team"] = "Bazuqueiros", } diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/sk.lua --- a/share/hedgewars/Data/Locale/sk.lua Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/sk.lua Thu Dec 23 20:26:31 2010 +0100 @@ -1,27 +1,30 @@ locale = { +-- ["A game of luck"] = ["Aiming Practice"] = "Tréning presnosti", --Bazooka, Shotgun, SniperRifle - ["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 - ["Oh no! Time's up! Just try again."] = "Ale nie! Čas vypršal! Tak to skúste znovu.", --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: ", ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratulujem! Zneškodnili ste všetky ciele|v stanovenom čase.", --Bazooka, Shotgun, SniperRifle + ["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 + ["Fastest lap: "] = "Najrýchlejšie kolo: ", + ["Hedgewars-Basketball"] = "Hedgewars-Basketbal", + ["Hedgewars-Knockball"] = "Hedgewars-Knockball", ["Hunter"] = "Lovec", --Bazooka, Shotgun, SniperRifle - ["Bazooka Training"] = "Tréning s bazukou", - ["'Zooka Team"] = "Bazuka tím", + ["NEW fastest lap: "] = "NOVÉ najrýchlejšie kolo: ", + ["Not So Friendly Match"] = "Nie tak celkom priateľský zápas", -- Basketball, Knockball + ["Oh no! Time's up! Just try again."] = "Ale nie! Čas vypršal! Tak to skúste znovu.", --Bazooka, Shotgun, SniperRifle +-- ["Random Weapons"] = + ["Shotgun Team"] = "Shotgun tím", ["Shotgun Training"] = "Tréning s brokovnicou", - ["Shotgun Team"] = "Shotgun tím", + ["%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", - ["Not So Friendly Match"] = "Nie tak celkom priateľský zápas", -- 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 - ["%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 - ["Hedgewars-Basketball"] = "Hedgewars-Basketbal", - ["Bat your opponents through the|baskets and out of the map!"] = "Odpálkujte vašich súperov do koša|a von z mapy!", - ["Hedgewars-Knockball"] = "Hedgewars-Knockball", - ["Bat balls at your enemies and|push them into the sea!"] = "Loptami triafajte vašich nepriateľov|a zhoďte ich tak do mora!", + ["Team %d: "] = "Tím %d: ", +-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = ["TrophyRace"] = "Preteky o trofej", ["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!", ["You've reached the goal!| |Time: "] = "Dosiahli ste cieľ!| |Čas: ", - ["NEW fastest lap: "] = "NOVÉ najrýchlejšie kolo: ", - ["Fastest lap: "] = "Najrýchlejšie kolo: ", - ["Best laps per team: "] = "Najrýchlejšie kolá podľa tímov: ", - ["Team %d: "] = "Tím %d: ", + ["'Zooka Team"] = "Bazuka tím", } diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/stub.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Locale/stub.lua Thu Dec 23 20:26:31 2010 +0100 @@ -0,0 +1,30 @@ +locale = { +-- ["A game of luck"] = "", +-- ["Aiming Practice"] = "", --Bazooka, Shotgun, SniperRifle +-- ["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: "] = "", +-- ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "", --Bazooka, Shotgun, SniperRifle +-- ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "", --Bazooka, Shotgun, SniperRifle +-- ["Fastest lap: "] = "", +-- ["Hedgewars-Basketball"] = "", +-- ["Hedgewars-Knockball"] = "", +-- ["Hunter"] = "", --Bazooka, Shotgun, SniperRifle +-- ["NEW fastest lap: "] = "", +-- ["Not So Friendly Match"] = "", -- Basketball, Knockball +-- ["Oh no! Time's up! Just try again."] = "", --Bazooka, Shotgun, SniperRifle +-- ["Random Weapons"] = "", +-- ["Shotgun Team"] = "", +-- ["Shotgun Training"] = "", +-- ["%s is out and Team %d|scored a penalty!| |Score:"] = "", -- Basketball, Knockball +-- ["%s is out and Team %d|scored a point!| |Score:"] = "", -- Basketball, Knockball +-- ["Sniper Training"] = "", +-- ["Sniperz"] = "", +-- ["Team %d: "] = "", +-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "", +-- ["TrophyRace"] = "", +-- ["Use your rope to get from start to finish as fast as you can!"] = "", +-- ["You've reached the goal!| |Time: "] = "", +-- ["'Zooka Team"] = "", + } diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Locale/sv.lua --- a/share/hedgewars/Data/Locale/sv.lua Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Locale/sv.lua Thu Dec 23 20:26:31 2010 +0100 @@ -1,27 +1,30 @@ locale = { + ["A game of luck"] = "Ett lyckospel", ["Aiming Practice"] = "Siktesövning", --Bazooka, Shotgun, SniperRifle - ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Förstör alla målen innan din tid tar slut.|Du har obegränsad ammunition för deta uppdrag", --Bazooka, Shotgun, SniperRifle - ["Oh no! Time's up! Just try again."] = "Åh nej! Tiden är ute! Pröva igen.", --Bazooka, Shotgun, SniperRifle + ["Bat balls at your enemies and|push them into the sea!"] = "Slå bollar mot dina fiender|och slå ner dem i havet", + ["Bat your opponents through the|baskets and out of the map!"] = "Slå ner dina motståndare i|korgarna och ut ur kartan!", + ["Bazooka Training"] = "Bazookaträning", + ["Best laps per team: "] = "Bästa varv per lag: ", ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Grattis! Du har förstört alla målen inom den|tillåtna tidsramen.", --Bazooka, Shotgun, SniperRifle + ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Förstör alla målen innan din tid tar slut.|Du har obegränsad ammunition för deta uppdrag", --Bazooka, Shotgun, SniperRifle + ["Fastest lap: "] = "Snabbast varv: ", + ["Hedgewars-Basketball"] = "Hedgewars-Basket", + ["Hedgewars-Knockball"] = "Hedgewars-Knockball", ["Hunter"] = "Jägare", --Bazooka, Shotgun, SniperRifle - ["Bazooka Training"] = "Bazookaträning", - ["'Zooka Team"] = "Bazookalaget", + ["NEW fastest lap: "] = "NYTT snabbast varv: ", + ["Not So Friendly Match"] = "En inte så vänlig match", -- Basketball, Knockball + ["Oh no! Time's up! Just try again."] = "Åh nej! Tiden är ute! Pröva igen.", --Bazooka, Shotgun, SniperRifle + ["Random Weapons"] = "Slumpade vapen", + ["Shotgun Team"] = "Hagelgevärslaget", ["Shotgun Training"] = "Hagelgevärsträning", - ["Shotgun Team"] = "Hagelgevärslaget", + ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s är ute och lag %d|fick ett straff!| |Poängställning:", -- Basketball, Knockball + ["%s is out and Team %d|scored a point!| |Score:"] = "%s är ute och lag %d|fick ett poäng!| |Poängställning:", -- Basketball, Knockball ["Sniper Training"] = "Prickskyttesträning", ["Sniperz"] = "Prickskyttarna", - ["Not So Friendly Match"] = "En inte så vänlig match", -- Basketball, Knockball - ["%s is out and Team %d|scored a point!| |Score:"] = "%s är ute och lag %d|fick ett poäng!| |Poängställning:", -- Basketball, Knockball - ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s är ute och lag %d|fick ett straff!| |Poängställning:", -- Basketball, Knockball - ["Hedgewars-Basketball"] = "Hedgewars-Basket", - ["Bat your opponents through the|baskets and out of the map!"] = "Slå ner dina motståndare i|korgarna och ut ur kartan!", - ["Hedgewars-Knockball"] = "Hedgewars-Knockball", - ["Bat balls at your enemies and|push them into the sea!"] = "Slå bollar mot dina fiender|och slå ner dem i havet", + ["Team %d: "] = "Lag %d: ", + ["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!", ["TrophyRace"] = "TrophyRace", ["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!", ["You've reached the goal!| |Time: "] = "Du har nått målet!| |Tid: ", - ["NEW fastest lap: "] = "NYTT snabbast varv: ", - ["Fastest lap: "] = "Snabbast varv: ", - ["Best laps per team: "] = "Bästa varv per lag: ", - ["Team %d: "] = "Lag %d: ", + ["'Zooka Team"] = "Bazookalaget", } diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Missions/Campaign/01#Boot Camp.lua --- a/share/hedgewars/Data/Missions/Campaign/01#Boot Camp.lua Thu Dec 23 17:47:50 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,357 +0,0 @@ --- IMPORTANT -- THIS IS WORK IN PROGRESS AND VERY LIKELY TO BE CHANGED AGAIN --- IMPORTANT -- DO NOT TRANSLATE THIS AS IT USES THE OLD SYSTEM AND WILL BE UPDATED LATER! - -local teamnames = {} -local hognames = {} -teamnames[0] = { - ["en"] = "Bloody Rookies", - ["de"] = "Blutige Anfänger", - ["pl"] = "Żótodzioby", - ["sv"] = "Blodiga nybörjare", - ["es"] = "Reclutas", - ["pt_PT"] = "Recrutas", - ["pt_BR"] = "Maldito Recrutas", - ["sk"] = "Regruti" -} - -teamnames[1] = { - ["en"] = "Instructors", - ["de"] = "Ausbilder", - ["pl"] = "Instruktor", - ["sv"] = "Instruktör", - ["es"] = "Instructores", - ["pt_PT"] = "Instrutores", - ["pt_BR"] = "Instrutores", - ["sk"] = "Inštruktori" -} - -hognames[0] = { - ["en"] = "Joker", - ["de"] = "Joker", - ["pl"] = "Joker", - ["sv"] = "Joker", - ["es"] = "Joker", - ["pt_PT"] = "Joker", - ["pt_BR"] = "Comediante", - ["sk"] = "Komediant" -} - -hognames[1] = { - ["en"] = "Harthog", - ["de"] = "Harthog", - ["pl"] = "Harthog", - ["sv"] = "Harthog", - ["es"] = "Harthog", - ["pt_PT"] = "Harthog", - ["pt_BR"] = "Harthog", - ["sk"] = "Harthog" -} - -local caption = { - ["en"] = "Boot Camp", - ["de"] = "Grundausbildung", - ["pl"] = "Poligon", - ["sv"] = "Grundutbildning", - ["es"] = "Campamento militar", - ["pt_PT"] = "Acampamento militar", - ["pt_BR"] = "Acampamento Militar", - ["sk"] = "Výcvikový tábor" - -} - -local subcaption = { - ["en"] = "Follow the instructions!", - ["de"] = "Befolge die Anweisungen!", - ["pl"] = "Wykonuj polecenia!", - ["sv"] = "Följ instruktioner!", - ["es"] = "¡Sigue las órdenes!", - ["pt_PT"] = "Segue as instruções!", - ["pt_BR"] = "Siga as ordens!", - ["sk"] = "Postupujte podľa inštrukcií!" -} - -local goals = {} - -goals[0] = { - ["en"] = "Listen to your Drill Instructor and follow his lead!", - ["de"] = "Höre deinem Ausbilder zu und befolge seine Anweisungen!", - ["pl"] = "Słuchaj instruktora i wykonuj jego rozkazy!", - ["sv"] = "Lyssna på din instruktör och gör som han säger!", - ["es"] = "¡Escucha atentamente a tu instructor de maniobras y sigue sus órdenes!", - ["pt_PT"] = "Ouve atentamente o teu Instrutor e segue as suas ordens!", - ["pt_BR"] = "Escute seu instrutor de escavação e siga seu líder", - ["sk"] = "Počúvajte vášho inštruktora výcviku a vykonávajte jeho rozkazy!" -} - -goals[1] = { - ["en"] = "Destroy the target to finish this mission!", - ["de"] = "Zerstöre das Ziel, um diese Mission abzuschließen!", - ["pl"] = "Zniszcz cel by ukończyć misję!", - ["sv"] = "Förstör målet för att avklara uppdraget!", - ["es"] = "¡Destruye el objetivo para completar esta misión!", - ["pt_PT"] = "Destrói o alvo para completar esta missão!", - ["pt_BR"] = "Destrua o alvo para concluir a missão", - ["sk"] = "Pre ukončenie misie zneškodnite cieľ!" -} - -goals[2] = { - ["en"] = "Excellent! You've passed the Boot Camp!", - ["de"] = "Ausgezeichnet! Du hast das Ausbildungslager bestanden!", - ["pl"] = "Doskonale! Wyszedłeś cało z poligonu!", - ["sv"] = "Brilliant! Du har klarat av grundutbildningen!", - ["es"] = "¡Excelente! ¡Has completado la maniobra de hoy!", - ["pt_PT"] = "Excelente! Completaste o treino para recrutas!", - ["pt_BR"] = "Excelente! Você completou a manobra", - ["pt_BR"] = "Výborne! Prešli ste výcvikovým táborom!" -} - -local failed = { - ["en"] = "You failed! Follow the instructions and shoot the target only!", - ["de"] = "Du hast versagt! Befolge die Anweisungen und schieß nur auf das Ziel!", - ["pl"] = "Przegrałeś! Wykonuj instrukcje poprawnie i strzelaj tylko w podane cele!", - ["sv"] = "Du har misslyckats! Följ instruktionerna och sjut endast på målen!", - ["es"] = "¡Has fallado! ¡Sigue las instrucciones y destruye únicamente el objetivo!", - ["pt_PT"] = "Falhaste! Segue as instruções e destrói apenas o alvo!", - ["pt_BR"] = "Você falhou! Siga as instruções e atire somente no alvo", - ["sk"] = "Prehrali ste! Nasledujte inštrukcie a strieľajte iba na cieľ!" -} - -local drill = {} - -drill[0] = { - ["en"] = "Allright, maggot!", - ["de"] = "Also gut, du Made!", - ["pl"] = "Słuchaj mnie gnido!", - ["sv"] = "Dåså, din mask!", - ["es"] = "¡Muy bien, escoria!", - ["pt_PT"] = "Bom trabalho verme!", - ["pt_BR"] = "Parabéns escória", - ["sk"] = "Počúvaj, ty červík!" -} - -drill[1] = { - ["en"] = "Show that you aren't that useless.", - ["de"] = "Zeig, dass du nicht so nutzlos bist.", - ["pl"] = "Udowodnij, że nie jesteś bezwartościowy.", - ["sv"] = "Visa att du inte är så värdelös!", - ["es"] = "Demuéstrame que no eres tan inútil como pareces.", - ["pt_PT"] = "Prova-me que não és tão inútil como pareces.", - ["pt_BR"] = "Mostre que você não é um inútil.", - ["sk"] = "Dokáž, že nie si na svete úplne zbytočným." -} - -drill[2] = { - ["en"] = "Use [left] to move to the left!", - ["de"] = "Benutze [Links], um nach links zu gehen!", - ["pl"] = "Użyj [lewo] by poruszyć się w lewą stronę!", - ["sv"] = "Använd [vänster] för att gå åt vänster!", - ["es"] = "¡Aprieta [izquierda] para desplazarte a la izquierda!", - ["pt_PT"] = "Carrega [esquerda] para te moveres para a esquerda!", - ["pt_BR"] = "Use [esquerda] para mover para a esquerda", - ["sk"] = "Stlačte [vľavo] pre pohyb doľava" -} - -drill[3] = { - ["en"] = "Good! Now use [right] to come back!", - ["de"] = "Gut! Nun komm mit [Rechts] zurück!", - ["pl"] = "Dobzre, Teraz użyj [prawo] by wrócić!", - ["sv"] = "Bra! Använd nu [höger] för att gå tillbaka!", - ["es"] = "¡Muy bien! ¡Ahora presiona [derecha] para volver!", - ["pt_PT"] = "Muito bem! Agora pressiona [direita] para voltar!", - ["pt_BR"] = "Bom! Agora use [direita] para voltar", - ["sk"] = "Dobre! Teraz použite [vpravo] a vráťte sa naspäť!" -} - -drill[4] = { - ["en"] = "Excellent!", - ["de"] = "Ausgezeichnet!", - ["pl"] = "Wspaniale!", - ["sv"] = "Utmärkt!", - ["es"] = "¡Excelente!", - ["pt_PT"] = "Excelente!", - ["pt_BR"] = "Excelente!", - ["sk"] = "Výborne!" -} - -drill[5] = { - ["en"] = "Now jump to the left using [return]!", - ["de"] = "Jetzt springe mit [Eingabetaste] nach links!", - ["pl"] = "Teraz skocz w lewo używając [Enter]", - ["sv"] = "Hoppa nu åt vänster med hjälp av [enter]!", - ["es"] = "¡Ahora salta hacia la izquierda usando [intro]!", - ["pt_PT"] = "Agora salta para a esquerda pressionando [retrocesso]!", - ["pt_BR"] = "Agora pule para a esquerda usando [return]!", - ["sk"] = "Teraz skočte doľava stlačením [enter]!" -} - -drill[6] = { - ["en"] = "Use [up] and [down] to aim.", - ["de"] = "Benutze [Hoch] und [Runter], um zu zielen.", - ["pl"] = "Użyj klawiszy [góra] i [dół] by celować.", - ["sv"] = "Använd [upp] och [ner] för att sikta!", - ["es"] = "Presiora [arriba] y [abajo] para apuntar.", - ["pt_PT"] = "Pressiona [cima] e [baixo] para apontar.", - ["pt_BR"] = "Pressione [acima] e [abaixo] para mirar.", - ["sk"] = "Stlačte [hore] a [dole] pre mierenie." -} - -drill[7] = { - ["en"] = "Hold [space] to power up your shot and then release it to shoot.", - ["de"] = "Halte [Leertaste], um deinen Schuss aufzuladen, und lasse dann rechtzeitig los.", - ["pl"] = "Przytrzymaj spację by zwiększyć siłę strzału.", - ["sv"] = "Håll ner [mellanslag] för att få kraft och släpp för att skjuta!", - ["es"] = "Mantén presionada la [barra espaciadora] para controlar la fuerza del disparo y suéltala para disparar.", - ["pt_PT"] = "Mantem a [barra de espaços] pressionada para controlar a força do tiro e larga-a para disparar.", - ["pt_BR"] = "Mantenha pressionado [espaço] para aumentar a força do seu tiro e solte para atirar", - ["sk"] = "Držte stlačený [medzerník] pre nabíjanie, jeho uvoľnením vystrelíte." -} - -drill[8] = { - ["en"] = "Destroy the target to finish your basic training!", - ["de"] = "Zerstöre das Ziel, um deine Grundausbildung abzuschließen!", - ["pl"] = "Zniszcz cel by by ukończyć trening podstawowy!", - ["sv"] = "Förstör målet för att avsluta din grundutbildning!", - ["es"] = "¡Destruye el objetivo para completar el entrenamiento básico!", - ["pt_PT"] = "Destrói o alvo para completar o treino básico!", - ["pt_BR"] = "Destrua o alvo para terminar o treino básico", - ["sk"] = "Zneškodnite cieľ na ukončenie základného výcviku!" -} - -local function loc(text) - if text == nil then return "**missing**" - elseif text[L] == nil then return text["en"] - else return text[L] - end -end - -local player = nil -local instructor = nil -local target = nil - -function onGameStart() - -end - -local player_start_x = 2300 -local player_start_y = 1250 -local target_x = 1900 -local target_y = 1250 -local player_health = 100 -local instructor_health = 100 -local teamcolor = 14483456 - -local progress = 0 -local time_start = 0 - -function onGameTick() - if progress == -1 and (time_start + 2500) == GameTime then - EndGame() - elseif progress == -1 then - - elseif progress > 0 and ((TurnTimeLeft == 0) or (GetHealth(player) ~= player_health) or (GetHealth(instructor) ~= instructor_health)) then - progress = -1 - ShowMission(loc(caption), loc(subcaption), loc(failed), -amBazooka, 0) - time_start = GameTime - PlaySound(sndNooo) - TurnTimeLeft = 0 - elseif GameTime == 0 then - ShowMission(loc(caption), loc(subcaption), loc(goals[0]), -amBazooka, 0) - TurnTimeLeft = 60000 - elseif GameTime == 2500 then - FollowGear(instructor) - HogSay(instructor, loc(drill[0]), SAY_SAY) - elseif GameTime == 5000 then - FollowGear(instructor) - HogSay(instructor, loc(drill[1]), SAY_SAY) - elseif GameTime == 7500 then - FollowGear(instructor) - HogSay(instructor, loc(drill[2]), SAY_SHOUT) - progress = 1 - TurnTimeLeft = 10000 - elseif progress == 1 then - local x, y = GetGearPosition(player) - if x < player_start_x - 50 then - progress = 2 - FollowGear(instructor) - HogSay(instructor, loc(drill[3]), SAY_SHOUT) - TurnTimeLeft = 10000 - end - elseif progress == 2 then - local x, y = GetGearPosition(player) - if x > player_start_x then - progress = 3 - FollowGear(instructor) - HogSay(instructor, loc(drill[4]), SAY_SAY) - time_start = GameTime - end - elseif progress == 3 and (time_start + 2500 == GameTime) then - progress = 4 - FollowGear(instructor) - HogSay(instructor, loc(drill[5]), SAY_SHOUT) - HogTurnLeft(player, true) - TurnTimeLeft = 10000 - elseif progress == 4 then - local x, y = GetGearPosition(player) - if y < player_start_y then - progress = 5 - FollowGear(instructor) - HogSay(instructor, "Yeah!", SAY_SAY) - time_start = GameTime - TurnTimeLeft = 30000 - end - elseif progress == 5 and (time_start + 2500 == GameTime) then - FollowGear(instructor) - HogSay(instructor, loc(drill[6]), SAY_SAY) - elseif progress == 5 and (time_start + 5000 == GameTime) then - FollowGear(instructor) - HogSay(instructor, loc(drill[7]), SAY_SAY) - elseif progress == 5 and (time_start + 7500 == GameTime) then - FollowGear(instructor) - HogSay(instructor, loc(drill[8]), SAY_SHOUT) - ShowMission(loc(caption), loc(subcaption), loc(goals[1]), 1, 0) - target = AddGear(target_x, target_y, gtTarget, 0, 0, 0, 0) - TurnTimeLeft = 60000 - elseif progress == 5 and (time_start + 10000 == GameTime) then - FollowGear(target) - elseif progress == 6 then - progress = 7 - ShowMission(loc(caption), loc(subcaption), loc(goals[2]), 0, 0) - PlaySound(sndVictory) - time_start = GameTime - elseif progress == 7 and (time_start + 2500 == GameTime) then - EndGame() - end -end - -function onGameInit() - Seed = 0 - GameFlags = gfMultiWeapon + gfOneClanMode - TurnTime = 25000 - CaseFreq = 0 - MinesNum = 0 - Explosives = 0 - Delay = 2500 - Map = "Mushrooms" - Theme = "Nature" - - AddTeam(loc(teamnames[0]), teamcolor, "Simple", "Island", "Default") - player = AddHog(loc(hognames[0]), 0, player_health, "NoHat") - SetGearPosition(player, player_start_x, player_start_y) - - AddTeam(loc(teamnames[1]), teamcolor + 1, "Simple", "Island", "Default") - instructor = AddHog(loc(hognames[1]), 0, instructor_health, "NoHat") - SetGearPosition(instructor, player_start_x + 100, player_start_y) - HogTurnLeft(instructor, true) - - FollowGear(player) -end - -function onAmmoStoreInit() - SetAmmo(amBazooka, 9, 0, 0, 0) -end - -function onGearDelete(gear) - if GetGearType(gear) == gtTarget then - progress = 6 - end -end diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Missions/Campaign/01#Boot_Camp.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Missions/Campaign/01#Boot_Camp.lua Thu Dec 23 20:26:31 2010 +0100 @@ -0,0 +1,357 @@ +-- IMPORTANT -- THIS IS WORK IN PROGRESS AND VERY LIKELY TO BE CHANGED AGAIN +-- IMPORTANT -- DO NOT TRANSLATE THIS AS IT USES THE OLD SYSTEM AND WILL BE UPDATED LATER! + +local teamnames = {} +local hognames = {} +teamnames[0] = { + ["en"] = "Bloody Rookies", + ["de"] = "Blutige Anfänger", + ["pl"] = "Żótodzioby", + ["sv"] = "Blodiga nybörjare", + ["es"] = "Reclutas", + ["pt_PT"] = "Recrutas", + ["pt_BR"] = "Malditos Recrutas", + ["sk"] = "Regruti" +} + +teamnames[1] = { + ["en"] = "Instructors", + ["de"] = "Ausbilder", + ["pl"] = "Instruktor", + ["sv"] = "Instruktör", + ["es"] = "Instructores", + ["pt_PT"] = "Instrutores", + ["pt_BR"] = "Instrutores", + ["sk"] = "Inštruktori" +} + +hognames[0] = { + ["en"] = "Joker", + ["de"] = "Joker", + ["pl"] = "Joker", + ["sv"] = "Joker", + ["es"] = "Joker", + ["pt_PT"] = "Joker", + ["pt_BR"] = "Comediante", + ["sk"] = "Komediant" +} + +hognames[1] = { + ["en"] = "Harthog", + ["de"] = "Harthog", + ["pl"] = "Harthog", + ["sv"] = "Harthog", + ["es"] = "Harthog", + ["pt_PT"] = "Harthog", + ["pt_BR"] = "Harthog", + ["sk"] = "Harthog" +} + +local caption = { + ["en"] = "Boot Camp", + ["de"] = "Grundausbildung", + ["pl"] = "Poligon", + ["sv"] = "Grundutbildning", + ["es"] = "Campamento militar", + ["pt_PT"] = "Acampamento militar", + ["pt_BR"] = "Acampamento Militar", + ["sk"] = "Výcvikový tábor" + +} + +local subcaption = { + ["en"] = "Follow the instructions!", + ["de"] = "Befolge die Anweisungen!", + ["pl"] = "Wykonuj polecenia!", + ["sv"] = "Följ instruktioner!", + ["es"] = "¡Sigue las órdenes!", + ["pt_PT"] = "Segue as instruções!", + ["pt_BR"] = "Siga as ordens!", + ["sk"] = "Postupujte podľa inštrukcií!" +} + +local goals = {} + +goals[0] = { + ["en"] = "Listen to your Drill Instructor and follow his lead!", + ["de"] = "Höre deinem Ausbilder zu und befolge seine Anweisungen!", + ["pl"] = "Słuchaj instruktora i wykonuj jego rozkazy!", + ["sv"] = "Lyssna på din instruktör och gör som han säger!", + ["es"] = "¡Escucha atentamente a tu instructor de maniobras y sigue sus órdenes!", + ["pt_PT"] = "Ouve atentamente o teu Instrutor e segue as suas ordens!", + ["pt_BR"] = "Escute seu instrutor de escavação e siga seu líder", + ["sk"] = "Počúvajte vášho inštruktora výcviku a vykonávajte jeho rozkazy!" +} + +goals[1] = { + ["en"] = "Destroy the target to finish this mission!", + ["de"] = "Zerstöre das Ziel, um diese Mission abzuschließen!", + ["pl"] = "Zniszcz cel by ukończyć misję!", + ["sv"] = "Förstör målet för att avklara uppdraget!", + ["es"] = "¡Destruye el objetivo para completar esta misión!", + ["pt_PT"] = "Destrói o alvo para completar esta missão!", + ["pt_BR"] = "Destrua o alvo para concluir a missão", + ["sk"] = "Pre ukončenie misie zneškodnite cieľ!" +} + +goals[2] = { + ["en"] = "Excellent! You've passed the Boot Camp!", + ["de"] = "Ausgezeichnet! Du hast das Ausbildungslager bestanden!", + ["pl"] = "Doskonale! Wyszedłeś cało z poligonu!", + ["sv"] = "Brilliant! Du har klarat av grundutbildningen!", + ["es"] = "¡Excelente! ¡Has completado la maniobra de hoy!", + ["pt_PT"] = "Excelente! Completaste o treino para recrutas!", + ["pt_BR"] = "Excelente! Você completou a manobra", + ["pt_BR"] = "Výborne! Prešli ste výcvikovým táborom!" +} + +local failed = { + ["en"] = "You failed! Follow the instructions and shoot the target only!", + ["de"] = "Du hast versagt! Befolge die Anweisungen und schieß nur auf das Ziel!", + ["pl"] = "Przegrałeś! Wykonuj instrukcje poprawnie i strzelaj tylko w podane cele!", + ["sv"] = "Du har misslyckats! Följ instruktionerna och sjut endast på målen!", + ["es"] = "¡Has fallado! ¡Sigue las instrucciones y destruye únicamente el objetivo!", + ["pt_PT"] = "Falhaste! Segue as instruções e destrói apenas o alvo!", + ["pt_BR"] = "Você falhou! Siga as instruções e atire somente no alvo", + ["sk"] = "Prehrali ste! Nasledujte inštrukcie a strieľajte iba na cieľ!" +} + +local drill = {} + +drill[0] = { + ["en"] = "Allright, maggot!", + ["de"] = "Also gut, du Made!", + ["pl"] = "Słuchaj mnie gnido!", + ["sv"] = "Dåså, din mask!", + ["es"] = "¡Muy bien, escoria!", + ["pt_PT"] = "Bom trabalho verme!", + ["pt_BR"] = "Parabéns escória", + ["sk"] = "Počúvaj, ty červík!" +} + +drill[1] = { + ["en"] = "Show that you aren't that useless.", + ["de"] = "Zeig, dass du nicht so nutzlos bist.", + ["pl"] = "Udowodnij, że nie jesteś bezwartościowy.", + ["sv"] = "Visa att du inte är så värdelös!", + ["es"] = "Demuéstrame que no eres tan inútil como pareces.", + ["pt_PT"] = "Prova-me que não és tão inútil como pareces.", + ["pt_BR"] = "Mostre que você não é um inútil.", + ["sk"] = "Dokáž, že nie si na svete úplne zbytočným." +} + +drill[2] = { + ["en"] = "Use [left] to move to the left!", + ["de"] = "Benutze [Links], um nach links zu gehen!", + ["pl"] = "Użyj [lewo] by poruszyć się w lewą stronę!", + ["sv"] = "Använd [vänster] för att gå åt vänster!", + ["es"] = "¡Aprieta [izquierda] para desplazarte a la izquierda!", + ["pt_PT"] = "Carrega [esquerda] para te moveres para a esquerda!", + ["pt_BR"] = "Use [esquerda] para mover para a esquerda", + ["sk"] = "Stlačte [vľavo] pre pohyb doľava" +} + +drill[3] = { + ["en"] = "Good! Now use [right] to come back!", + ["de"] = "Gut! Nun komm mit [Rechts] zurück!", + ["pl"] = "Dobzre, Teraz użyj [prawo] by wrócić!", + ["sv"] = "Bra! Använd nu [höger] för att gå tillbaka!", + ["es"] = "¡Muy bien! ¡Ahora presiona [derecha] para volver!", + ["pt_PT"] = "Muito bem! Agora pressiona [direita] para voltar!", + ["pt_BR"] = "Bom! Agora use [direita] para voltar", + ["sk"] = "Dobre! Teraz použite [vpravo] a vráťte sa naspäť!" +} + +drill[4] = { + ["en"] = "Excellent!", + ["de"] = "Ausgezeichnet!", + ["pl"] = "Wspaniale!", + ["sv"] = "Utmärkt!", + ["es"] = "¡Excelente!", + ["pt_PT"] = "Excelente!", + ["pt_BR"] = "Excelente!", + ["sk"] = "Výborne!" +} + +drill[5] = { + ["en"] = "Now jump to the left using [return]!", + ["de"] = "Jetzt springe mit [Eingabetaste] nach links!", + ["pl"] = "Teraz skocz w lewo używając [Enter]", + ["sv"] = "Hoppa nu åt vänster med hjälp av [enter]!", + ["es"] = "¡Ahora salta hacia la izquierda usando [intro]!", + ["pt_PT"] = "Agora salta para a esquerda pressionando [retrocesso]!", + ["pt_BR"] = "Agora pule para a esquerda usando [return]!", + ["sk"] = "Teraz skočte doľava stlačením [enter]!" +} + +drill[6] = { + ["en"] = "Use [up] and [down] to aim.", + ["de"] = "Benutze [Hoch] und [Runter], um zu zielen.", + ["pl"] = "Użyj klawiszy [góra] i [dół] by celować.", + ["sv"] = "Använd [upp] och [ner] för att sikta!", + ["es"] = "Presiora [arriba] y [abajo] para apuntar.", + ["pt_PT"] = "Pressiona [cima] e [baixo] para apontar.", + ["pt_BR"] = "Pressione [acima] e [abaixo] para mirar.", + ["sk"] = "Stlačte [hore] a [dole] pre mierenie." +} + +drill[7] = { + ["en"] = "Hold [space] to power up your shot and then release it to shoot.", + ["de"] = "Halte [Leertaste], um deinen Schuss aufzuladen, und lasse dann rechtzeitig los.", + ["pl"] = "Przytrzymaj spację by zwiększyć siłę strzału.", + ["sv"] = "Håll ner [mellanslag] för att få kraft och släpp för att skjuta!", + ["es"] = "Mantén presionada la [barra espaciadora] para controlar la fuerza del disparo y suéltala para disparar.", + ["pt_PT"] = "Mantem a [barra de espaços] pressionada para controlar a força do tiro e larga-a para disparar.", + ["pt_BR"] = "Mantenha pressionado [espaço] para aumentar a força do seu tiro e solte para atirar", + ["sk"] = "Držte stlačený [medzerník] pre nabíjanie, jeho uvoľnením vystrelíte." +} + +drill[8] = { + ["en"] = "Destroy the target to finish your basic training!", + ["de"] = "Zerstöre das Ziel, um deine Grundausbildung abzuschließen!", + ["pl"] = "Zniszcz cel by by ukończyć trening podstawowy!", + ["sv"] = "Förstör målet för att avsluta din grundutbildning!", + ["es"] = "¡Destruye el objetivo para completar el entrenamiento básico!", + ["pt_PT"] = "Destrói o alvo para completar o treino básico!", + ["pt_BR"] = "Destrua o alvo para terminar o treino básico", + ["sk"] = "Zneškodnite cieľ na ukončenie základného výcviku!" +} + +local function loc(text) + if text == nil then return "**missing**" + elseif text[L] == nil then return text["en"] + else return text[L] + end +end + +local player = nil +local instructor = nil +local target = nil + +function onGameStart() + +end + +local player_start_x = 2300 +local player_start_y = 1250 +local target_x = 1900 +local target_y = 1250 +local player_health = 100 +local instructor_health = 100 +local teamcolor = 14483456 + +local progress = 0 +local time_start = 0 + +function onGameTick() + if progress == -1 and (time_start + 2500) == GameTime then + EndGame() + elseif progress == -1 then + + elseif progress > 0 and ((TurnTimeLeft == 0) or (GetHealth(player) ~= player_health) or (GetHealth(instructor) ~= instructor_health)) then + progress = -1 + ShowMission(loc(caption), loc(subcaption), loc(failed), -amBazooka, 0) + time_start = GameTime + PlaySound(sndNooo) + TurnTimeLeft = 0 + elseif GameTime == 0 then + ShowMission(loc(caption), loc(subcaption), loc(goals[0]), -amBazooka, 0) + TurnTimeLeft = 60000 + elseif GameTime == 2500 then + FollowGear(instructor) + HogSay(instructor, loc(drill[0]), SAY_SAY) + elseif GameTime == 5000 then + FollowGear(instructor) + HogSay(instructor, loc(drill[1]), SAY_SAY) + elseif GameTime == 7500 then + FollowGear(instructor) + HogSay(instructor, loc(drill[2]), SAY_SHOUT) + progress = 1 + TurnTimeLeft = 10000 + elseif progress == 1 then + local x, y = GetGearPosition(player) + if x < player_start_x - 50 then + progress = 2 + FollowGear(instructor) + HogSay(instructor, loc(drill[3]), SAY_SHOUT) + TurnTimeLeft = 10000 + end + elseif progress == 2 then + local x, y = GetGearPosition(player) + if x > player_start_x then + progress = 3 + FollowGear(instructor) + HogSay(instructor, loc(drill[4]), SAY_SAY) + time_start = GameTime + end + elseif progress == 3 and (time_start + 2500 == GameTime) then + progress = 4 + FollowGear(instructor) + HogSay(instructor, loc(drill[5]), SAY_SHOUT) + HogTurnLeft(player, true) + TurnTimeLeft = 10000 + elseif progress == 4 then + local x, y = GetGearPosition(player) + if y < player_start_y then + progress = 5 + FollowGear(instructor) + HogSay(instructor, "Yeah!", SAY_SAY) + time_start = GameTime + TurnTimeLeft = 30000 + end + elseif progress == 5 and (time_start + 2500 == GameTime) then + FollowGear(instructor) + HogSay(instructor, loc(drill[6]), SAY_SAY) + elseif progress == 5 and (time_start + 5000 == GameTime) then + FollowGear(instructor) + HogSay(instructor, loc(drill[7]), SAY_SAY) + elseif progress == 5 and (time_start + 7500 == GameTime) then + FollowGear(instructor) + HogSay(instructor, loc(drill[8]), SAY_SHOUT) + ShowMission(loc(caption), loc(subcaption), loc(goals[1]), 1, 0) + target = AddGear(target_x, target_y, gtTarget, 0, 0, 0, 0) + TurnTimeLeft = 60000 + elseif progress == 5 and (time_start + 10000 == GameTime) then + FollowGear(target) + elseif progress == 6 then + progress = 7 + ShowMission(loc(caption), loc(subcaption), loc(goals[2]), 0, 0) + PlaySound(sndVictory) + time_start = GameTime + elseif progress == 7 and (time_start + 2500 == GameTime) then + EndGame() + end +end + +function onGameInit() + Seed = 0 + GameFlags = gfMultiWeapon + gfOneClanMode + TurnTime = 25000 + CaseFreq = 0 + MinesNum = 0 + Explosives = 0 + Delay = 2500 + Map = "Mushrooms" + Theme = "Nature" + + AddTeam(loc(teamnames[0]), teamcolor, "Simple", "Island", "Default") + player = AddHog(loc(hognames[0]), 0, player_health, "NoHat") + SetGearPosition(player, player_start_x, player_start_y) + + AddTeam(loc(teamnames[1]), teamcolor + 1, "Simple", "Island", "Default") + instructor = AddHog(loc(hognames[1]), 0, instructor_health, "NoHat") + SetGearPosition(instructor, player_start_x + 100, player_start_y) + HogTurnLeft(instructor, true) + + FollowGear(player) +end + +function onAmmoStoreInit() + SetAmmo(amBazooka, 9, 0, 0, 0) +end + +function onGearDelete(gear) + if GetGearType(gear) == gtTarget then + progress = 6 + end +end diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Missions/Training/SniperRifle.lua --- a/share/hedgewars/Data/Missions/Training/SniperRifle.lua Thu Dec 23 17:47:50 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,303 +0,0 @@ --- Hedgewars SniperRifle Training --- Scripting Example - --- Lines such as this one are comments - they are ignored --- by the game, no matter what kind of text is in there. --- It's also possible to place a comment after some real --- instruction as you see below. In short, everything --- following "--" is ignored. - ---------------------------------------------------------------- --- At first we implement the localization library using loadfile. --- This allows us to localize strings without needing to think --- about translations. --- We can use the function loc(text) to localize a string. - -loadfile(GetDataPath() .. "Scripts/Locale.lua")() - --- This variable will hold the number of destroyed targets. -local score = 0 --- This variable represents the number of targets to destroy. -local score_goal = 31 --- This variable controls how many milliseconds/ticks we'd --- like to wait before we end the round once all targets --- have been destroyed. -local end_timer = 5000 -- 5000 ms = 5 s --- This variable is set to true if the game is lost (i.e. --- time runs out). -local game_lost = false --- This variable will point to the hog's gear -local player = nil --- This variable will grab the time left at the end of the round -local time_goal = 0 - -local target = nil - -local last_hit_time = 0 --- This is a custom function to make it easier to --- spawn more targets with just one line of code --- You may define as many custom functions as you --- like. -function spawnTarget(x, y) - -- add a new target gear - target = AddGear(x, y, gtTarget, 0, 0, 0, 0) - -- have the camera move to the target so the player knows where it is - FollowGear(target) -end - -function blowUp(x, y) - -- adds some TNT - gear = AddGear(x, y, gtDynamite, 0, 0, 0, 0) -end - --- This function is called before the game loads its --- resources. --- It's one of the predefined function names that will --- be called by the game. They give you entry points --- where you're able to call your own code using either --- provided instructions or custom functions. -function onGameInit() - -- At first we have to overwrite/set some global variables - -- that define the map, the game has to load, as well as - -- other things such as the game rules to use, etc. - -- Things we don't modify here will use their default values. - - -- The base number for the random number generator - Seed = 0 - -- Game settings and rules - GameFlags = gfMultiWeapon + gfOneClanMode + gfArtillery - -- The time the player has to move each round (in ms) - TurnTime = 150000 - -- The frequency of crate drops - CaseFreq = 0 - -- The number of mines being placed - MinesNum = 0 - -- The number of explosives being placed - Explosives = 0 - -- The delay between each round - Delay = 0 - -- The map to be played - Map = "Ropes" - -- The theme to be used - Theme = "City" - - -- Create the player team - AddTeam(loc("Sniperz"), 14483456, "Simple", "Island", "Default") - -- And add a hog to it - player = AddHog(loc("Hunter"), 0, 1, "Sniper") - SetGearPosition(player, 602, 1465) -end - --- This function is called when the round starts --- it spawns the first target that has to be destroyed. --- In addition it shows the scenario goal(s). -function onGameStart() - -- Spawn the first target. - spawnTarget(860,1020) - - -- Show some nice mission goals. - -- Parameters are: caption, sub caption, description, - -- extra text, icon and time to show. - -- A negative icon parameter (-n) represents the n-th weapon icon - -- A positive icon paramter (n) represents the (n+1)-th mission icon - -- A timeframe of 0 is replaced with the default time to show. - ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."), -amSniperRifle, 0) -end - --- This function is called every game tick. --- Note that there are 1000 ticks within one second. --- You shouldn't try to calculate too complicated --- code here as this might slow down your game. -function onGameTick() - if game_lost then - return - end - -- after a target is destroyed, show hog, then target - if (target ~= nil) and (TurnTimeLeft + 1300 < last_hit_time) then - -- move camera to the target - FollowGear(target) - elseif TurnTimeLeft + 300 < last_hit_time then - -- move camera to the hog - FollowGear(player) - end - -- If time's up, set the game to be lost. - -- We actually check the time to be "1 ms" as it - -- will be at "0 ms" right at the start of the game. - if TurnTimeLeft == 1 and score < score_goal then - game_lost = true - -- ... and show a short message. - ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0) - -- How about killing our poor hog due to his poor performance? - SetHealth(player, 0) - -- Just to be sure set the goal time to 1 ms - time_goal = 1 - end - -- If the goal is reached or we've lost ... - if score == score_goal or game_lost then - -- ... check to see if the time we'd like to - -- wait has passed and then ... - if end_timer == 0 then - -- ... end the game ... - EndGame() - else - -- ... or just lower the timer by 1. - end_timer = end_timer - 1 - -- Reset the time left to stop the timer - TurnTimeLeft = time_goal - end - end -end - --- This function is called when the game is initialized --- to request the available ammo and probabilities -function onAmmoStoreInit() - -- add an unlimited supply of shotgun ammo - SetAmmo(amSniperRifle, 9, 0, 0, 0) -end - --- This function is called when a new gear is added. --- We don't need it for this training, so we can --- keep it empty. -function onGearAdd(gear) -end - --- This function is called before a gear is destroyed. --- We use it to count the number of targets destroyed. -function onGearDelete(gear) - - if GetGearType(gear) == gtCase then - game_lost = true - return - end - - if (GetGearType(gear) == gtTarget) then - -- remember when the target was hit for adjusting the camera - last_hit_time = TurnTimeLeft - -- Add one point to our score/counter - score = score + 1 - -- If we haven't reached the goal ... - if score < score_goal then - -- ... spawn another target. - if score == 1 then - spawnTarget(1520,1350) - elseif score == 2 then - spawnTarget(1730,1040) - elseif score == 3 then - spawnTarget(2080,780) - elseif score == 4 then - blowUp(1730,1226) - blowUp(1440,1595) - blowUp(1527,1575) - blowUp(1614,1595) - blowUp(1420,1675) - blowUp(1527,1675) - blowUp(1634,1675) - blowUp(1440,1755) - blowUp(1527,1775) - blowUp(1614,1755) - spawnTarget(1527,1667) - elseif score == 5 then - spawnTarget(1527,1667) - elseif score == 6 then - spawnTarget(2175,1300) - elseif score == 7 then - spawnTarget(2250,940) - elseif score == 8 then - spawnTarget(2665,1540) - elseif score == 9 then - spawnTarget(3040,1160) - elseif score == 10 then - spawnTarget(2930,1500) - elseif score == 11 then - spawnTarget(700,720) - elseif score == 12 then - blowUp(914,1222) - blowUp(1050,1222) - blowUp(1160,1008) - blowUp(1160,1093) - blowUp(1160,1188) - blowUp(375,911) - blowUp(510,911) - blowUp(640,911) - blowUp(780,911) - blowUp(920,911) - blowUp(1060,913) - blowUp(1198,913) - spawnTarget(1200,730) - elseif score == 13 then - spawnTarget(1200,830) - elseif score == 14 then - spawnTarget(1430,450) - elseif score == 15 then - spawnTarget(796,240) - elseif score == 16 then - spawnTarget(300,10) - elseif score == 17 then - spawnTarget(2080,820) - elseif score == 18 then - blowUp(2110,920) - blowUp(2210,920) - blowUp(2200,305) - blowUp(2300,305) - blowUp(2300,400) - blowUp(2300,500) - blowUp(2300,600) - blowUp(2300,700) - blowUp(2300,800) - blowUp(2300,900) - blowUp(2401,305) - blowUp(2532,305) - blowUp(2663,305) - spawnTarget(2300,760) - elseif score == 19 then - spawnTarget(2300,760) - elseif score == 20 then - spawnTarget(2738,190) - elseif score == 21 then - spawnTarget(2590,-100) - elseif score == 22 then - blowUp(2790,305) - blowUp(2930,305) - blowUp(3060,305) - blowUp(3190,305) - blowUp(3310,305) - blowUp(3393,613) - blowUp(2805,370) - blowUp(2805,500) - blowUp(2805,630) - blowUp(2805,760) - blowUp(2805,890) - blowUp(2700,890) - blowUp(3258,370) - blowUp(3258,475) - blowUp(3264,575) - spawnTarget(3230,240) - elseif score == 23 then - spawnTarget(3230,290) - elseif score == 24 then - spawnTarget(3670,250) - elseif score == 25 then - spawnTarget(2620,-100) - elseif score == 26 then - spawnTarget(2870,300) - elseif score == 27 then - spawnTarget(3850,900) - elseif score == 28 then - spawnTarget(3780,300) - elseif score == 29 then - spawnTarget(3670,0) - elseif score == 30 then - spawnTarget(3480,1200) - end - else - if not game_lost then - -- Otherwise show that the goal was accomplished - ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Congratulations! You've eliminated all targets|within the allowed time frame."), 0, 0) - -- Also let the hogs shout "victory!" - PlaySound(sndVictory) - -- Save the time left so we may keep it. - time_goal = TurnTimeLeft - end - end - end -end diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Missions/Training/Sniper_Rifle.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Missions/Training/Sniper_Rifle.lua Thu Dec 23 20:26:31 2010 +0100 @@ -0,0 +1,303 @@ +-- Hedgewars SniperRifle Training +-- Scripting Example + +-- Lines such as this one are comments - they are ignored +-- by the game, no matter what kind of text is in there. +-- It's also possible to place a comment after some real +-- instruction as you see below. In short, everything +-- following "--" is ignored. + +--------------------------------------------------------------- +-- At first we implement the localization library using loadfile. +-- This allows us to localize strings without needing to think +-- about translations. +-- We can use the function loc(text) to localize a string. + +loadfile(GetDataPath() .. "Scripts/Locale.lua")() + +-- This variable will hold the number of destroyed targets. +local score = 0 +-- This variable represents the number of targets to destroy. +local score_goal = 31 +-- This variable controls how many milliseconds/ticks we'd +-- like to wait before we end the round once all targets +-- have been destroyed. +local end_timer = 5000 -- 5000 ms = 5 s +-- This variable is set to true if the game is lost (i.e. +-- time runs out). +local game_lost = false +-- This variable will point to the hog's gear +local player = nil +-- This variable will grab the time left at the end of the round +local time_goal = 0 + +local target = nil + +local last_hit_time = 0 +-- This is a custom function to make it easier to +-- spawn more targets with just one line of code +-- You may define as many custom functions as you +-- like. +function spawnTarget(x, y) + -- add a new target gear + target = AddGear(x, y, gtTarget, 0, 0, 0, 0) + -- have the camera move to the target so the player knows where it is + FollowGear(target) +end + +function blowUp(x, y) + -- adds some TNT + gear = AddGear(x, y, gtDynamite, 0, 0, 0, 0) +end + +-- This function is called before the game loads its +-- resources. +-- It's one of the predefined function names that will +-- be called by the game. They give you entry points +-- where you're able to call your own code using either +-- provided instructions or custom functions. +function onGameInit() + -- At first we have to overwrite/set some global variables + -- that define the map, the game has to load, as well as + -- other things such as the game rules to use, etc. + -- Things we don't modify here will use their default values. + + -- The base number for the random number generator + Seed = 0 + -- Game settings and rules + GameFlags = gfMultiWeapon + gfOneClanMode + gfArtillery + -- The time the player has to move each round (in ms) + TurnTime = 150000 + -- The frequency of crate drops + CaseFreq = 0 + -- The number of mines being placed + MinesNum = 0 + -- The number of explosives being placed + Explosives = 0 + -- The delay between each round + Delay = 0 + -- The map to be played + Map = "Ropes" + -- The theme to be used + Theme = "City" + + -- Create the player team + AddTeam(loc("Sniperz"), 14483456, "Simple", "Island", "Default") + -- And add a hog to it + player = AddHog(loc("Hunter"), 0, 1, "Sniper") + SetGearPosition(player, 602, 1465) +end + +-- This function is called when the round starts +-- it spawns the first target that has to be destroyed. +-- In addition it shows the scenario goal(s). +function onGameStart() + -- Spawn the first target. + spawnTarget(860,1020) + + -- Show some nice mission goals. + -- Parameters are: caption, sub caption, description, + -- extra text, icon and time to show. + -- A negative icon parameter (-n) represents the n-th weapon icon + -- A positive icon paramter (n) represents the (n+1)-th mission icon + -- A timeframe of 0 is replaced with the default time to show. + ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."), -amSniperRifle, 0) +end + +-- This function is called every game tick. +-- Note that there are 1000 ticks within one second. +-- You shouldn't try to calculate too complicated +-- code here as this might slow down your game. +function onGameTick() + if game_lost then + return + end + -- after a target is destroyed, show hog, then target + if (target ~= nil) and (TurnTimeLeft + 1300 < last_hit_time) then + -- move camera to the target + FollowGear(target) + elseif TurnTimeLeft + 300 < last_hit_time then + -- move camera to the hog + FollowGear(player) + end + -- If time's up, set the game to be lost. + -- We actually check the time to be "1 ms" as it + -- will be at "0 ms" right at the start of the game. + if TurnTimeLeft == 1 and score < score_goal then + game_lost = true + -- ... and show a short message. + ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0) + -- How about killing our poor hog due to his poor performance? + SetHealth(player, 0) + -- Just to be sure set the goal time to 1 ms + time_goal = 1 + end + -- If the goal is reached or we've lost ... + if score == score_goal or game_lost then + -- ... check to see if the time we'd like to + -- wait has passed and then ... + if end_timer == 0 then + -- ... end the game ... + EndGame() + else + -- ... or just lower the timer by 1. + end_timer = end_timer - 1 + -- Reset the time left to stop the timer + TurnTimeLeft = time_goal + end + end +end + +-- This function is called when the game is initialized +-- to request the available ammo and probabilities +function onAmmoStoreInit() + -- add an unlimited supply of shotgun ammo + SetAmmo(amSniperRifle, 9, 0, 0, 0) +end + +-- This function is called when a new gear is added. +-- We don't need it for this training, so we can +-- keep it empty. +function onGearAdd(gear) +end + +-- This function is called before a gear is destroyed. +-- We use it to count the number of targets destroyed. +function onGearDelete(gear) + + if GetGearType(gear) == gtCase then + game_lost = true + return + end + + if (GetGearType(gear) == gtTarget) then + -- remember when the target was hit for adjusting the camera + last_hit_time = TurnTimeLeft + -- Add one point to our score/counter + score = score + 1 + -- If we haven't reached the goal ... + if score < score_goal then + -- ... spawn another target. + if score == 1 then + spawnTarget(1520,1350) + elseif score == 2 then + spawnTarget(1730,1040) + elseif score == 3 then + spawnTarget(2080,780) + elseif score == 4 then + blowUp(1730,1226) + blowUp(1440,1595) + blowUp(1527,1575) + blowUp(1614,1595) + blowUp(1420,1675) + blowUp(1527,1675) + blowUp(1634,1675) + blowUp(1440,1755) + blowUp(1527,1775) + blowUp(1614,1755) + spawnTarget(1527,1667) + elseif score == 5 then + spawnTarget(1527,1667) + elseif score == 6 then + spawnTarget(2175,1300) + elseif score == 7 then + spawnTarget(2250,940) + elseif score == 8 then + spawnTarget(2665,1540) + elseif score == 9 then + spawnTarget(3040,1160) + elseif score == 10 then + spawnTarget(2930,1500) + elseif score == 11 then + spawnTarget(700,720) + elseif score == 12 then + blowUp(914,1222) + blowUp(1050,1222) + blowUp(1160,1008) + blowUp(1160,1093) + blowUp(1160,1188) + blowUp(375,911) + blowUp(510,911) + blowUp(640,911) + blowUp(780,911) + blowUp(920,911) + blowUp(1060,913) + blowUp(1198,913) + spawnTarget(1200,730) + elseif score == 13 then + spawnTarget(1200,830) + elseif score == 14 then + spawnTarget(1430,450) + elseif score == 15 then + spawnTarget(796,240) + elseif score == 16 then + spawnTarget(300,10) + elseif score == 17 then + spawnTarget(2080,820) + elseif score == 18 then + blowUp(2110,920) + blowUp(2210,920) + blowUp(2200,305) + blowUp(2300,305) + blowUp(2300,400) + blowUp(2300,500) + blowUp(2300,600) + blowUp(2300,700) + blowUp(2300,800) + blowUp(2300,900) + blowUp(2401,305) + blowUp(2532,305) + blowUp(2663,305) + spawnTarget(2300,760) + elseif score == 19 then + spawnTarget(2300,760) + elseif score == 20 then + spawnTarget(2738,190) + elseif score == 21 then + spawnTarget(2590,-100) + elseif score == 22 then + blowUp(2790,305) + blowUp(2930,305) + blowUp(3060,305) + blowUp(3190,305) + blowUp(3310,305) + blowUp(3393,613) + blowUp(2805,370) + blowUp(2805,500) + blowUp(2805,630) + blowUp(2805,760) + blowUp(2805,890) + blowUp(2700,890) + blowUp(3258,370) + blowUp(3258,475) + blowUp(3264,575) + spawnTarget(3230,240) + elseif score == 23 then + spawnTarget(3230,290) + elseif score == 24 then + spawnTarget(3670,250) + elseif score == 25 then + spawnTarget(2620,-100) + elseif score == 26 then + spawnTarget(2870,300) + elseif score == 27 then + spawnTarget(3850,900) + elseif score == 28 then + spawnTarget(3780,300) + elseif score == 29 then + spawnTarget(3670,0) + elseif score == 30 then + spawnTarget(3480,1200) + end + else + if not game_lost then + -- Otherwise show that the goal was accomplished + ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Congratulations! You've eliminated all targets|within the allowed time frame."), 0, 0) + -- Also let the hogs shout "victory!" + PlaySound(sndVictory) + -- Save the time left so we may keep it. + time_goal = TurnTimeLeft + end + end + end +end diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Music/main theme.ogg Binary file share/hedgewars/Data/Music/main theme.ogg has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Music/main_theme.ogg Binary file share/hedgewars/Data/Music/main_theme.ogg has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Scripts/Multiplayer/Random_Weapon.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/Random_Weapon.lua Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Random_Weapon.lua Thu Dec 23 20:26:31 2010 +0100 @@ -1,17 +1,29 @@ +loadfile(GetDataPath() .. "Scripts/Locale.lua")() + local weapons = { amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amMine, amDEagle, amDynamite, amFirePunch, amWhip, amPickHammer, - amBaseballBat, amAirAttack, amMineStrike, amTeleport, amMortar, amCake, - amSeduction, amWatermelon, amHellishBomb, amNapalm, amDrill, amBallgun, - amRCPlane, amSniperRifle, amMolotov, amBirdy, amBlowTorch, - amGasBomb, amFlamethrower, amSMine, amHammer, amDrillStrike } + amBaseballBat, amTeleport, amMortar, amCake, amSeduction, + amWatermelon, amHellishBomb, amDrill, amBallgun, amRCPlane, + amSniperRifle, amMolotov, amBirdy, amBlowTorch, amGasBomb, + amFlamethrower, amSMine, amHammer, amSnowball } -local lastRound = -1 -local weapon = 0 +local airweapons = { amAirAttack, amMineStrike, amNapalm, amDrillStrike } + function onGameInit() GameFlags = band(bor(GameFlags, gfResetWeps), bnot(gfInfAttack + gfPerHogAmmo)) end +function onGameStart() + if MapHasBorder() == false then + for i, w in pairs(airweapons) do + table.insert(weapons, w) + end + end + + ShowMission(loc("Random Weapons"), loc("A game of luck"), loc("There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"), -amSkip, 0) +end + function onAmmoStoreInit() SetAmmo(amSkip, 9, 0, 0, 0) @@ -31,12 +43,12 @@ for i, w in pairs(weapons) do SetAmmo(w, 0, 0, 0, 1) end + + for i, w in pairs(airweapons) do + SetAmmo(w, 0, 0, 0, 1) + end end function onNewTurn() - if lastRound ~= TotalRounds then - weapon = GetRandom(table.maxn(weapons)) + 1 - lastRound = TotalRounds - end - AddAmmo(CurrentHedgehog, weapons[weapon]) + AddAmmo(CurrentHedgehog, weapons[GetRandom(table.maxn(weapons)) + 1]) end diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/CMakeLists.txt --- a/share/hedgewars/Data/Themes/CMakeLists.txt Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Themes/CMakeLists.txt Thu Dec 23 20:26:31 2010 +0100 @@ -7,6 +7,7 @@ Cake Castle Cheese + Christmas Deepspace City CrazyMission diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Ball.png Binary file share/hedgewars/Data/Themes/Christmas/Ball.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Ball.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Themes/Christmas/Ball.svg Thu Dec 23 20:26:31 2010 +0100 @@ -0,0 +1,500 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Border.png Binary file share/hedgewars/Data/Themes/Christmas/Border.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/CMakeLists.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Themes/Christmas/CMakeLists.txt Thu Dec 23 20:26:31 2010 +0100 @@ -0,0 +1,6 @@ +file(GLOB images *.png) + +install(FILES + theme.cfg + ${images} + DESTINATION ${SHAREPATH}Data/Themes/Christmas) diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/CandyCane.png Binary file share/hedgewars/Data/Themes/Christmas/CandyCane.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/CandyCane.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Themes/Christmas/CandyCane.svg Thu Dec 23 20:26:31 2010 +0100 @@ -0,0 +1,108 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Chunk.png Binary file share/hedgewars/Data/Themes/Christmas/Chunk.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Dust.png Binary file share/hedgewars/Data/Themes/Christmas/Dust.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Flake.png Binary file share/hedgewars/Data/Themes/Christmas/Flake.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Girder.png Binary file share/hedgewars/Data/Themes/Christmas/Girder.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Girder.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Themes/Christmas/Girder.svg Thu Dec 23 20:26:31 2010 +0100 @@ -0,0 +1,347 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Girder.xcf Binary file share/hedgewars/Data/Themes/Christmas/Girder.xcf has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/LandBackTex.png Binary file share/hedgewars/Data/Themes/Christmas/LandBackTex.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/LandTex.png Binary file share/hedgewars/Data/Themes/Christmas/LandTex.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Sky.png Binary file share/hedgewars/Data/Themes/Christmas/Sky.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Skytrees.png Binary file share/hedgewars/Data/Themes/Christmas/Skytrees.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Snowball.png Binary file share/hedgewars/Data/Themes/Christmas/Snowball.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Snowman.png Binary file share/hedgewars/Data/Themes/Christmas/Snowman.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Snowman.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Themes/Christmas/Snowman.svg Thu Dec 23 20:26:31 2010 +0100 @@ -0,0 +1,731 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/Tree.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Themes/Christmas/Tree.svg Thu Dec 23 20:26:31 2010 +0100 @@ -0,0 +1,148 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/amSnowball.png Binary file share/hedgewars/Data/Themes/Christmas/amSnowball.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/holly.png Binary file share/hedgewars/Data/Themes/Christmas/holly.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/holly2.png Binary file share/hedgewars/Data/Themes/Christmas/holly2.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/horizont.png Binary file share/hedgewars/Data/Themes/Christmas/horizont.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/icon.png Binary file share/hedgewars/Data/Themes/Christmas/icon.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/icon@2x.png Binary file share/hedgewars/Data/Themes/Christmas/icon@2x.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/plant2.png Binary file share/hedgewars/Data/Themes/Christmas/plant2.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/plant3.png Binary file share/hedgewars/Data/Themes/Christmas/plant3.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/plant4.png Binary file share/hedgewars/Data/Themes/Christmas/plant4.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/reindeer.png Binary file share/hedgewars/Data/Themes/Christmas/reindeer.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/theme.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Themes/Christmas/theme.cfg Thu Dec 23 20:26:31 2010 +0100 @@ -0,0 +1,26 @@ +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 diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Christmas/tree.png Binary file share/hedgewars/Data/Themes/Christmas/tree.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Snow/Snowball.png Binary file share/hedgewars/Data/Themes/Snow/Snowball.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/Snow/amSnowball.png Binary file share/hedgewars/Data/Themes/Snow/amSnowball.png has changed diff -r 5ef5415c4ee1 -r 20b982afbe6e share/hedgewars/Data/Themes/themes.cfg --- a/share/hedgewars/Data/Themes/themes.cfg Thu Dec 23 17:47:50 2010 +0100 +++ b/share/hedgewars/Data/Themes/themes.cfg Thu Dec 23 20:26:31 2010 +0100 @@ -4,6 +4,7 @@ Brick Castle Cheese +Christmas City Compost Desert