# HG changeset patch # User unc0rr # Date 1388571361 -14400 # Node ID eb8e8b09b2f0ab76c510623d4574380d6bd3eb82 # Parent 34ba1d8e0e9aa481fce600ac490d7be9cc0a09e9 Special script parameter variable in game scheme diff -r 34ba1d8e0e9a -r eb8e8b09b2f0 QTfrontend/model/ammoSchemeModel.cpp --- a/QTfrontend/model/ammoSchemeModel.cpp Wed Jan 01 13:42:38 2014 +0400 +++ b/QTfrontend/model/ammoSchemeModel.cpp Wed Jan 01 14:16:01 2014 +0400 @@ -65,6 +65,7 @@ << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 ; AmmoSchemeModel::AmmoSchemeModel(QObject* parent, const QString & fileName) : @@ -130,6 +131,7 @@ << "ropepct" // 39 << "getawaytime" // 40 << "worldedge" // 41 + << "scriptparam" // scriptparam 42 ; QList proMode; @@ -176,6 +178,7 @@ << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 ; QList shoppa; @@ -222,6 +225,7 @@ << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 ; QList cleanslate; @@ -268,6 +272,7 @@ << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 ; QList minefield; @@ -314,6 +319,7 @@ << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 ; QList barrelmayhem; @@ -360,6 +366,7 @@ << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 ; QList tunnelhogs; @@ -406,6 +413,7 @@ << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 ; QList forts; @@ -452,6 +460,7 @@ << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 ; QList timeless; @@ -498,6 +507,7 @@ << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 ; QList thinkingportals; @@ -544,6 +554,7 @@ << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 ; QList kingmode; @@ -590,6 +601,7 @@ << QVariant(100) // rope modfier 39 << QVariant(100) // get away time 40 << QVariant(0) // world edge 41 + << QVariant() // scriptparam 42 ; diff -r 34ba1d8e0e9a -r eb8e8b09b2f0 QTfrontend/ui/page/pagescheme.cpp --- a/QTfrontend/ui/page/pagescheme.cpp Wed Jan 01 13:42:38 2014 +0400 +++ b/QTfrontend/ui/page/pagescheme.cpp Wed Jan 01 14:16:01 2014 +0400 @@ -390,6 +390,7 @@ l->setFixedSize(32,32); l->setPixmap(QPixmap(":/res/iconEarth.png")); glBSLayout->addWidget(l,15,1,1,1); + CB_WorldEdge = new QComboBox(gbBasicSettings); CB_WorldEdge->insertItem(0, tr("None (Default)")); CB_WorldEdge->insertItem(1, tr("Wrap (World wraps)")); @@ -400,6 +401,20 @@ l = new QLabel(gbBasicSettings); + l->setText(QLabel::tr("Script parameter")); + l->setWordWrap(true); + glBSLayout->addWidget(l,16,0,1,1); + l = new QLabel(gbBasicSettings); + l->setFixedSize(32,32); + l->setPixmap(QPixmap(":/res/iconBox.png")); + glBSLayout->addWidget(l,16,1,1,1); + + LE_ScriptParam = new QLineEdit(gbBasicSettings); + LE_ScriptParam->setMaxLength(240); + glBSLayout->addWidget(LE_ScriptParam,16,2,1,1); + + + l = new QLabel(gbBasicSettings); l->setText(QLabel::tr("Scheme Name:")); LE_name = new QLineEdit(this); @@ -489,6 +504,7 @@ mapper->addMapping(SB_RopeModifier, 39); mapper->addMapping(SB_GetAwayTime, 40); mapper->addMapping(CB_WorldEdge, 41, "currentIndex"); + mapper->addMapping(LE_ScriptParam, 42); mapper->toFirst(); } diff -r 34ba1d8e0e9a -r eb8e8b09b2f0 QTfrontend/ui/page/pagescheme.h --- a/QTfrontend/ui/page/pagescheme.h Wed Jan 01 13:42:38 2014 +0400 +++ b/QTfrontend/ui/page/pagescheme.h Wed Jan 01 14:16:01 2014 +0400 @@ -93,6 +93,7 @@ QSpinBox * SB_GetAwayTime; QComboBox * CB_WorldEdge; QLineEdit * LE_name; + QLineEdit * LE_ScriptParam; QGroupBox * gbGameModes; QGroupBox * gbBasicSettings; diff -r 34ba1d8e0e9a -r eb8e8b09b2f0 QTfrontend/ui/widget/gamecfgwidget.cpp --- a/QTfrontend/ui/widget/gamecfgwidget.cpp Wed Jan 01 13:42:38 2014 +0400 +++ b/QTfrontend/ui/widget/gamecfgwidget.cpp Wed Jan 01 14:16:01 2014 +0400 @@ -324,7 +324,8 @@ bcfg << QString("e$worldedge %1").arg(schemeData(41).toInt()).toUtf8(); bcfg << QString("e$template_filter %1").arg(pMapContainer->getTemplateFilter()).toUtf8(); bcfg << QString("e$mapgen %1").arg(mapgen).toUtf8(); - + if(!schemeData(42).isNull()) + bcfg << QString("e$scriptparam %1").arg(schemeData(42).toString()).toUtf8(); switch (mapgen) diff -r 34ba1d8e0e9a -r eb8e8b09b2f0 hedgewars/uCommandHandlers.pas --- a/hedgewars/uCommandHandlers.pas Wed Jan 01 13:42:38 2014 +0400 +++ b/hedgewars/uCommandHandlers.pas Wed Jan 01 14:16:01 2014 +0400 @@ -119,6 +119,11 @@ ScriptLoad(s) end; +procedure chScriptParam(var s: shortstring); +begin + cScriptParam:= s; +end; + procedure chCurU_p(var s: shortstring); begin s:= s; // avoid compiler hint @@ -796,6 +801,7 @@ //////// End top by freq analysis RegisterVariable('gencmd' , @chGenCmd , false); RegisterVariable('script' , @chScript , false); + RegisterVariable('scriptparam', @chScriptParam, false); RegisterVariable('proto' , @chCheckProto , true ); RegisterVariable('spectate', @chFastUntilLag , false); RegisterVariable('capture' , @chCapture , true ); diff -r 34ba1d8e0e9a -r eb8e8b09b2f0 hedgewars/uScript.pas --- a/hedgewars/uScript.pas Wed Jan 01 13:42:38 2014 +0400 +++ b/hedgewars/uScript.pas Wed Jan 01 14:16:01 2014 +0400 @@ -2042,9 +2042,9 @@ ScriptSetInteger('HealthDecrease', cHealthDecrease); ScriptSetInteger('GetAwayTime', cGetAwayTime); ScriptSetString('Map', cMapName); - ScriptSetString('Theme', ''); ScriptSetString('Goals', ''); +ScriptSetString('ScriptParam', cScriptParam); ScriptCall('onGameInit'); @@ -2444,7 +2444,6 @@ ScriptSetInteger('gmPrecise', gmPrecise); ScriptSetInteger('gmAllStoppable', gmAllStoppable); - // speech bubbles ScriptSetInteger('SAY_SAY', 1); ScriptSetInteger('SAY_THINK', 2); diff -r 34ba1d8e0e9a -r eb8e8b09b2f0 hedgewars/uVariables.pas --- a/hedgewars/uVariables.pas Wed Jan 01 13:42:38 2014 +0400 +++ b/hedgewars/uVariables.pas Wed Jan 01 14:16:01 2014 +0400 @@ -147,6 +147,7 @@ cExplosives : Longword; cScriptName : shortstring; + cScriptParam : shortstring; cSeed : shortstring; cVolumeDelta : LongInt; cHasFocus : boolean; @@ -2551,6 +2552,7 @@ fastScrolling := false; autoCameraOn := true; cScriptName := ''; + cScriptParam := ''; cSeed := ''; cVolumeDelta := 0; cHasFocus := true; diff -r 34ba1d8e0e9a -r eb8e8b09b2f0 share/hedgewars/Data/Scripts/Multiplayer/Gravity.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/Gravity.lua Wed Jan 01 13:42:38 2014 +0400 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Gravity.lua Wed Jan 01 14:16:01 2014 +0400 @@ -21,8 +21,7 @@ end function onGameInit() - gravity = GetAwayTime - GetAwayTime = 100 + gravity = ScriptParam end function onGameStart() @@ -30,4 +29,4 @@ loc("Current value is ") .. gravity .. "%", loc("Set any gravity value you want by adjusting get away time"), 0, 5000) -end \ No newline at end of file +end