# HG changeset patch # User sheepluva # Date 1402598831 -7200 # Node ID c3a77ff02a232978454c655e0ab917b2fc910461 # Parent 7bf02127262cbdfa5555b932fd8ecae4ef16cf22 lua api: SetWeapon(ammoType) diff -r 7bf02127262c -r c3a77ff02a23 hedgewars/uScript.pas --- a/hedgewars/uScript.pas Thu Jun 12 19:40:45 2014 +0200 +++ b/hedgewars/uScript.pas Thu Jun 12 20:47:11 2014 +0200 @@ -354,6 +354,21 @@ lc_parsecommand:= 0; end; +function lc_setweapon(L : Plua_State) : LongInt; Cdecl; +var at: LongInt; +const + call = 'SetWeapon'; + params = 'ammoType'; +begin + if CheckLuaParameterCount(L, 1, call, params) then + begin + at:= LuaToAmmoTypeOrd(L, 1, call, params); + if at >= 0 then + ParseCommand('setweap ' + char(at), true, true); + end; + lc_setweapon:= 0; +end; + function lc_showmission(L : Plua_State) : LongInt; Cdecl; begin if CheckLuaParameterCount(L, 5, 'ShowMission', 'caption, subcaption, text, icon, time') then @@ -1126,8 +1141,8 @@ lua_pushinteger(L, vgear^.Uid); end end - else - lua_pushnil(L) + else + lua_pushnil(L) end else lua_pushnil(L); @@ -2590,30 +2605,30 @@ ScriptSetInteger(EnumToStr(spr), ord(spr)); -ScriptSetInteger('gstDrowning' ,$00000001); -ScriptSetInteger('gstHHDriven' ,$00000002); -ScriptSetInteger('gstMoving' ,$00000004); -ScriptSetInteger('gstAttacked' ,$00000008); -ScriptSetInteger('gstAttacking' ,$00000010); -ScriptSetInteger('gstCollision' ,$00000020); -ScriptSetInteger('gstHHChooseTarget' ,$00000040); -ScriptSetInteger('gstHHJumping' ,$00000100); -ScriptSetInteger('gsttmpFlag' ,$00000200); -ScriptSetInteger('gstHHThinking' ,$00000800); -ScriptSetInteger('gstNoDamage' ,$00001000); -ScriptSetInteger('gstHHHJump' ,$00002000); -ScriptSetInteger('gstAnimation' ,$00004000); -ScriptSetInteger('gstHHDeath' ,$00008000); -ScriptSetInteger('gstWinner' ,$00010000); -ScriptSetInteger('gstWait' ,$00020000); -ScriptSetInteger('gstNotKickable' ,$00040000); -ScriptSetInteger('gstLoser' ,$00080000); -ScriptSetInteger('gstHHGone' ,$00100000); -ScriptSetInteger('gstInvisible' ,$00200000); +ScriptSetInteger('gstDrowning' , gstDrowning); +ScriptSetInteger('gstHHDriven' , gstHHDriven); +ScriptSetInteger('gstMoving' , gstMoving); +ScriptSetInteger('gstAttacked' , gstAttacked); +ScriptSetInteger('gstAttacking' , gstAttacking); +ScriptSetInteger('gstCollision' , gstCollision); +ScriptSetInteger('gstHHChooseTarget', gstHHChooseTarget); +ScriptSetInteger('gstHHJumping' , gstHHJumping); +ScriptSetInteger('gsttmpFlag' , gsttmpFlag); +ScriptSetInteger('gstHHThinking' , gstHHThinking); +ScriptSetInteger('gstNoDamage' , gstNoDamage); +ScriptSetInteger('gstHHHJump' , gstHHHJump); +ScriptSetInteger('gstAnimation' , gstAnimation); +ScriptSetInteger('gstHHDeath' , gstHHDeath); +ScriptSetInteger('gstWinner' , gstWinner); +ScriptSetInteger('gstWait' , gstWait); +ScriptSetInteger('gstNotKickable' , gstNotKickable); +ScriptSetInteger('gstLoser' , gstLoser); +ScriptSetInteger('gstHHGone' , gstHHGone); +ScriptSetInteger('gstInvisible' , gstInvisible); // ai hints -ScriptSetInteger('aihUsualProcessing' ,$00000000); -ScriptSetInteger('aihDoesntMatter' ,$00000001); +ScriptSetInteger('aihUsualProcessing', aihUsualProcessing); +ScriptSetInteger('aihDoesntMatter' , aihDoesntMatter); // land flags ScriptSetInteger('lfIndestructible', lfIndestructible); @@ -2724,6 +2739,7 @@ lua_register(luaState, _P'GetGravity', @lc_getgravity); lua_register(luaState, _P'SetGravity', @lc_setgravity); lua_register(luaState, _P'SetWaterLine', @lc_setwaterline); +lua_register(luaState, _P'SetWeapon', @lc_setweapon); lua_register(luaState, _P'SetGearAIHints', @lc_setaihintsongear); lua_register(luaState, _P'HedgewarsScriptLoad', @lc_hedgewarsscriptload); diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Maps/TrophyRace/map.lua --- a/share/hedgewars/Data/Maps/TrophyRace/map.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Maps/TrophyRace/map.lua Thu Jun 12 20:47:11 2014 +0200 @@ -101,7 +101,7 @@ if CurrentHedgehog ~= nil then SetGearVelocity(CurrentHedgehog, 1, 0) SetGearPosition(CurrentHedgehog, start_area[1] + start_area[3] / 2, start_area[2] + start_area[4] / 2) - ParseCommand("setweap " .. string.char(amRope)) + SetWeapon(amRope) lasthog = CurrentHedgehog end end diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/journey.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/journey.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Missions/Campaign/A_Classic_Fairytale/journey.lua Thu Jun 12 20:47:11 2014 +0200 @@ -268,7 +268,7 @@ end function TargetPrincess() - ParseCommand("setweap " .. string.char(amDEagle)) + SetWeapon(amDEagle) SetGearMessage(cyborg, gmUp) return true end diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/desert02.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/desert02.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/desert02.lua Thu Jun 12 20:47:11 2014 +0200 @@ -100,7 +100,7 @@ end function onNewTurn() - ParseCommand("setweap " .. string.char(amRope)) + SetWeapon(amRope) end function onGameTick() diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/ice02.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/ice02.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/ice02.lua Thu Jun 12 20:47:11 2014 +0200 @@ -116,7 +116,7 @@ if not hero.dead and CurrentHedgehog == ally.gear and challengeStarted then heroLost() elseif not hero.dead and CurrentHedgehog == hero.gear and challengeStarted then - ParseCommand("setweap " .. string.char(amJetpack)) + SetWeapon(amJetpack) end end diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua Thu Jun 12 20:47:11 2014 +0200 @@ -98,7 +98,7 @@ if GetAmmoCount(hero.gear, amRope) == 0 then lose() end - ParseCommand("setweap " .. string.char(amRope)) + SetWeapon(amRope) TurnTimeLeft = runner.places[currentPosition].turnTime + previousTimeLeft previousTimeLeft = 0 end diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua Thu Jun 12 20:47:11 2014 +0200 @@ -112,7 +112,7 @@ end function onNewTurn() - ParseCommand("setweap " .. string.char(amBazooka)) + SetWeapon(amBazooka) end -- This function is called every game tick. diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Missions/Training/Basic_Training_-_Cluster_Bomb.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Cluster_Bomb.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Cluster_Bomb.lua Thu Jun 12 20:47:11 2014 +0200 @@ -84,7 +84,7 @@ end function onNewTurn() - ParseCommand("setweap " .. string.char(amClusterBomb)) + SetWeapon(amClusterBomb) end --function onGearAdd(gear) diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Grenade.lua Thu Jun 12 20:47:11 2014 +0200 @@ -107,7 +107,7 @@ end function onNewTurn() - ParseCommand("setweap " .. string.char(amGrenade)) + SetWeapon(amGrenade) end -- This function is called every game tick. diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Missions/Training/Basic_Training_-_Shotgun.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Shotgun.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Shotgun.lua Thu Jun 12 20:47:11 2014 +0200 @@ -50,7 +50,7 @@ end function onNewTurn() - ParseCommand("setweap " .. string.char(amShotgun)) + SetWeapon(amShotgun) end -- This function is called before the game loads its diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua --- a/share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua Thu Jun 12 20:47:11 2014 +0200 @@ -51,7 +51,7 @@ end function onNewTurn() - ParseCommand("setweap " .. string.char(amSniperRifle)) + SetWeapon(amSniperRifle) end -- This function is called before the game loads its diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Scripts/Multiplayer/Frenzy.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/Frenzy.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Frenzy.lua Thu Jun 12 20:47:11 2014 +0200 @@ -90,25 +90,25 @@ function ChangeWep(s) if s == 0 then - ParseCommand("setweap " .. string.char(amBazooka)) + SetWeapon(amBazooka) elseif s == 1 then - ParseCommand("setweap " .. string.char(amGrenade)) + SetWeapon(amGrenade) elseif s == 2 then - ParseCommand("setweap " .. string.char(amShotgun)) + SetWeapon(amShotgun) elseif s == 3 then - ParseCommand("setweap " .. string.char(amFirePunch)) + SetWeapon(amFirePunch) elseif s == 4 then - ParseCommand("setweap " .. string.char(amMine)) + SetWeapon(amMine) elseif s == 5 then - ParseCommand("setweap " .. string.char(amTeleport)) + SetWeapon(amTeleport) elseif s == 6 then - ParseCommand("setweap " .. string.char(amBlowTorch)) + SetWeapon(amBlowTorch) elseif s == 7 then - ParseCommand("setweap " .. string.char(amJetpack)) + SetWeapon(amJetpack) elseif s == 8 then - ParseCommand("setweap " .. string.char(amMolotov)) + SetWeapon(amMolotov) elseif s == 9 then - ParseCommand("setweap " .. string.char(amLowGravity)) + SetWeapon(amLowGravity) end end diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Scripts/Multiplayer/Racer.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/Racer.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Racer.lua Thu Jun 12 20:47:11 2014 +0200 @@ -574,7 +574,7 @@ loc("NOT ENOUGH WAYPOINTS"), loc("Place more waypoints using the 'Air Attack' weapon."), 2, 4000) AddAmmo(CurrentHedgehog, amAirAttack, 4000) - ParseCommand("setweap " .. string.char(amAirAttack)) + SetWeapon(amAirAttack) end end diff -r 7bf02127262c -r c3a77ff02a23 share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua Thu Jun 12 19:40:45 2014 +0200 +++ b/share/hedgewars/Data/Scripts/Multiplayer/The_Specialists.lua Thu Jun 12 20:47:11 2014 +0200 @@ -243,7 +243,7 @@ AddAmmo(CurrentHedgehog, amSwitch, 1) elseif switchStage == 2 then - ParseCommand("setweap " .. string.char(amSwitch)) + SetWeapon(amSwitch) elseif switchStage == 3 then SetGearMessage(CurrentHedgehog,gmAttack) elseif switchStage == 4 then