hedgewars/uScript.pas
changeset 7628 bc7b1d228a2c
parent 7411 efc75c2d3be9
parent 7573 364cd923db43
child 7650 ffa26ebdf8ae
equal deleted inserted replaced
7533:7ee319134713 7628:bc7b1d228a2c
   411         end
   411         end
   412     else
   412     else
   413         begin
   413         begin
   414         gear:= GearByUID(lua_tointeger(L, 1));
   414         gear:= GearByUID(lua_tointeger(L, 1));
   415         if gear <> nil then
   415         if gear <> nil then
   416             DeleteGear(gear);
   416             gear^.Message:= gear^.Message or gmDelete;
   417         end;
   417         end;
   418     lc_deletegear:= 0
   418     lc_deletegear:= 0
   419 end;
   419 end;
   420 
   420 
   421 function lc_addvisualgear(L : Plua_State) : LongInt; Cdecl;
   421 function lc_addvisualgear(L : Plua_State) : LongInt; Cdecl;
   743 
   743 
   744             texsurf:= SDL_CreateRGBSurface(SDL_SWSURFACE, r.w, r.h, 32, RMask, GMask, BMask, AMask);
   744             texsurf:= SDL_CreateRGBSurface(SDL_SWSURFACE, r.w, r.h, 32, RMask, GMask, BMask, AMask);
   745             TryDo(texsurf <> nil, errmsgCreateSurface, true);
   745             TryDo(texsurf <> nil, errmsgCreateSurface, true);
   746             TryDo(SDL_SetColorKey(texsurf, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true);
   746             TryDo(SDL_SetColorKey(texsurf, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true);
   747 
   747 
   748             DrawRoundRect(@r, cWhiteColor, cNearBlackColorChannels.value, texsurf, true);
   748             DrawRoundRect(@r, cWhiteColor, cNearBlackColor, texsurf, true);
   749             rr:= r;
   749             rr:= r;
   750             inc(rr.x, 2); dec(rr.w, 4); inc(rr.y, 2); dec(rr.h, 4);
   750             inc(rr.x, 2); dec(rr.w, 4); inc(rr.y, 2); dec(rr.h, 4);
   751             DrawRoundRect(@rr, clan^.Color, clan^.Color, texsurf, false);
   751             DrawRoundRect(@rr, clan^.Color, clan^.Color, texsurf, false);
   752 
   752 
   753             FreeTexture(team^.HealthTex);
   753             FreeTexture(team^.HealthTex);
   979         gear:= GearByUID(lua_tointeger(L, 1));
   979         gear:= GearByUID(lua_tointeger(L, 1));
   980 // should we allow this when there is no current hedgehog? might do some odd(er) things to turn sequence.
   980 // should we allow this when there is no current hedgehog? might do some odd(er) things to turn sequence.
   981         if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) and (CurrentHedgehog <> nil) then
   981         if (gear <> nil) and (gear^.Kind = gtHedgehog) and (gear^.Hedgehog <> nil) and (CurrentHedgehog <> nil) then
   982             begin
   982             begin
   983             prevgear := CurrentHedgehog^.Gear;
   983             prevgear := CurrentHedgehog^.Gear;
   984             prevgear^.Active := false;
   984             if prevgear <> nil then
   985             prevgear^.State:= prevgear^.State and not gstHHDriven;
   985                 begin
   986             prevgear^.Z := cHHZ;
   986                 prevgear^.Active := false;
   987             prevgear^.Message:= prevgear^.Message or gmRemoveFromList or gmAddToList;
   987                 prevgear^.State:= prevgear^.State and (not gstHHDriven);
       
   988                 prevgear^.Z := cHHZ;
       
   989                 prevgear^.Message:= prevgear^.Message or gmRemoveFromList or gmAddToList;
       
   990                 end;
   988             
   991             
   989             SwitchCurrentHedgehog(gear^.Hedgehog);
   992             SwitchCurrentHedgehog(gear^.Hedgehog);
   990             CurrentTeam:= CurrentHedgehog^.Team;
   993             CurrentTeam:= CurrentHedgehog^.Team;
   991 
   994 
   992             gear^.State:= gear^.State or gstHHDriven;
   995             gear^.State:= gear^.State or gstHHDriven;
  1806 // push game variables so they may be modified by the script
  1809 // push game variables so they may be modified by the script
  1807 ScriptSetInteger('BorderColor', ExplosionBorderColor);
  1810 ScriptSetInteger('BorderColor', ExplosionBorderColor);
  1808 ScriptSetInteger('GameFlags', GameFlags);
  1811 ScriptSetInteger('GameFlags', GameFlags);
  1809 ScriptSetString('Seed', cSeed);
  1812 ScriptSetString('Seed', cSeed);
  1810 ScriptSetInteger('TemplateFilter', cTemplateFilter);
  1813 ScriptSetInteger('TemplateFilter', cTemplateFilter);
       
  1814 ScriptSetInteger('TemplateNumber', LuaTemplateNumber);
  1811 ScriptSetInteger('MapGen', cMapGen);
  1815 ScriptSetInteger('MapGen', cMapGen);
  1812 ScriptSetInteger('ScreenHeight', cScreenHeight);
  1816 ScriptSetInteger('ScreenHeight', cScreenHeight);
  1813 ScriptSetInteger('ScreenWidth', cScreenWidth);
  1817 ScriptSetInteger('ScreenWidth', cScreenWidth);
  1814 ScriptSetInteger('TurnTime', cHedgehogTurnTime);
  1818 ScriptSetInteger('TurnTime', cHedgehogTurnTime);
  1815 ScriptSetInteger('CaseFreq', cCaseFactor);
  1819 ScriptSetInteger('CaseFreq', cCaseFactor);
  1834 ScriptCall('onGameInit');
  1838 ScriptCall('onGameInit');
  1835 
  1839 
  1836 // pop game variables
  1840 // pop game variables
  1837 ParseCommand('seed ' + ScriptGetString('Seed'), true);
  1841 ParseCommand('seed ' + ScriptGetString('Seed'), true);
  1838 cTemplateFilter  := ScriptGetInteger('TemplateFilter');
  1842 cTemplateFilter  := ScriptGetInteger('TemplateFilter');
       
  1843 LuaTemplateNumber:= ScriptGetInteger('TemplateNumber');
  1839 cMapGen          := ScriptGetInteger('MapGen');
  1844 cMapGen          := ScriptGetInteger('MapGen');
  1840 GameFlags        := ScriptGetInteger('GameFlags');
  1845 GameFlags        := ScriptGetInteger('GameFlags');
  1841 cHedgehogTurnTime:= ScriptGetInteger('TurnTime');
  1846 cHedgehogTurnTime:= ScriptGetInteger('TurnTime');
  1842 cCaseFactor      := ScriptGetInteger('CaseFreq');
  1847 cCaseFactor      := ScriptGetInteger('CaseFreq');
  1843 cHealthCaseProb  := ScriptGetInteger('HealthCaseProb');
  1848 cHealthCaseProb  := ScriptGetInteger('HealthCaseProb');