# HG changeset patch # User Wuzzy # Date 1480206641 -3600 # Node ID 1da37e2ba6fd62de111a98ff7e68937e4528adcf # Parent 78e9fbd52ffcd675f5f0876a9610d8b6907bbc09 Fix A Space Adventure Missions allowing player to walk before 1st animation and screw things up diff -r 78e9fbd52ffc -r 1da37e2ba6fd ChangeLog.txt --- a/ChangeLog.txt Sun Nov 27 00:00:25 2016 +0100 +++ b/ChangeLog.txt Sun Nov 27 01:30:41 2016 +0100 @@ -151,13 +151,14 @@ * Mutant script shows now appropriate ranking and graph in stats screen * Disable Sudden Death for good in Shoppa game scheme, some game styles and mission maps -Missions: +Missions and Campaigns: + Added Basic Flying Saucer Training + Rope-Knocking Challenge was improved (now awards score based on kills and time; taunts for knocking out hedgehogs) + A few campaign missions now save your personal best successes (e.g. fastest finish in Hard Flying) which get shown after you finish them agin + A Space Adventure shows 2 flowers over fully completed planets (with side missions) + Rewrote some help texts in basic rope training + Graphical effect (black bars) while in cut scenes + * Fix weird behaviour when walking right before the first animation in A Space Adventure missions * Portal Mind Challenge was cleaned up and reworked (especially less awful wording) * Fixed Target Practice missions getting stuck when a target dropped into water * Fixed mistakes and bad wording of strings in several missions, scripts and campaigns @@ -195,6 +196,7 @@ + New variable: AirMinesNum -- Number of air mines being placed on a medium-sized map + New variable: WorldEdge -- World edge type (weNone, weWrap, weBounce, weSea) + Locale library: loc_noop -- Mark string for translation but don't translate it + + Animate library: AnimInit([startAnimating]) -- New parameter startAnimating: if true, will start game in cinematic mode with most controls disabled. Must play an animation after that 0.9.21 -> 0.9.22 + New Weapon / Map object: AirMine (floating mine that will follow nearby hedgehogs) diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/cosmos.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/cosmos.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/cosmos.lua Sun Nov 27 01:30:41 2016 +0100 @@ -117,18 +117,25 @@ if tonumber(GetCampaignVar("CosmosCheckPoint")) then checkPointReached = tonumber(GetCampaignVar("CosmosCheckPoint")) end + -- Whether to start with an animation + local startSequence -- do checkpoint stuff needed before game starts if checkPointReached == 1 then -- Start of the game + startSequence = true elseif checkPointReached == 2 then -- Hero on the column, just took space ship unnoticed + startSequence = true AnimSetGearPosition(hero.gear, saucerX, saucerY) elseif checkPointReached == 3 then -- Hero near column, without space ship unnoticed + startSequence = true elseif checkPointReached == 4 then -- Hero visited moon for fuels + startSequence = true AnimSetGearPosition(hero.gear, 1110, 850) elseif checkPointReached == 5 then + startSequence = false -- Hero has visited a planet, he has plenty of fuels and can change planet if GetCampaignVar("Planet") == "moon" then AnimSetGearPosition(hero.gear, 1110, 850) @@ -144,8 +151,7 @@ AnimSetGearPosition(hero.gear, 3080, 850) end end - - AnimInit() + AnimInit(startSequence) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/death01.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/death01.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/death01.lua Sun Nov 27 01:30:41 2016 +0100 @@ -130,7 +130,7 @@ initCheckpoint("death01") - AnimInit() + AnimInit(true) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/death02.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/death02.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/death02.lua Sun Nov 27 01:30:41 2016 +0100 @@ -78,7 +78,7 @@ initCheckpoint("death02") - AnimInit() + AnimInit(true) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/desert02.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/desert02.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/desert02.lua Sun Nov 27 01:30:41 2016 +0100 @@ -79,7 +79,7 @@ initCheckpoint("desert02") - AnimInit() + AnimInit(true) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/desert03.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/desert03.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/desert03.lua Sun Nov 27 01:30:41 2016 +0100 @@ -74,7 +74,7 @@ initCheckpoint("desert03") - AnimInit() + AnimInit(true) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit01.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit01.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit01.lua Sun Nov 27 01:30:41 2016 +0100 @@ -148,7 +148,7 @@ initCheckpoint("fruit01") - AnimInit() + AnimInit(true) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit02.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit02.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit02.lua Sun Nov 27 01:30:41 2016 +0100 @@ -116,7 +116,7 @@ AnimSetGearPosition(redHedgehogs[i].gear, 2010 + 50*i, 630) end - AnimInit() + AnimInit(true) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit03.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit03.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/fruit03.lua Sun Nov 27 01:30:41 2016 +0100 @@ -100,7 +100,7 @@ initCheckpoint("fruit03") - AnimInit() + AnimInit(true) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/ice01.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/ice01.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/ice01.lua Sun Nov 27 01:30:41 2016 +0100 @@ -144,7 +144,7 @@ AnimSetGearPosition(hero.gear, 1450, 910) end - AnimInit() + AnimInit(true) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/ice02.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/ice02.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/ice02.lua Sun Nov 27 01:30:41 2016 +0100 @@ -92,7 +92,7 @@ initCheckpoint("ice02") - AnimInit() + AnimInit(true) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon01.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon01.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon01.lua Sun Nov 27 01:30:41 2016 +0100 @@ -159,7 +159,7 @@ end end - AnimInit() + AnimInit(true) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua --- a/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Missions/Campaign/A_Space_Adventure/moon02.lua Sun Nov 27 01:30:41 2016 +0100 @@ -73,7 +73,7 @@ initCheckpoint("moon02") - AnimInit() + AnimInit(true) AnimationSetup() end diff -r 78e9fbd52ffc -r 1da37e2ba6fd share/hedgewars/Data/Scripts/Animate.lua --- a/share/hedgewars/Data/Scripts/Animate.lua Sun Nov 27 00:00:25 2016 +0100 +++ b/share/hedgewars/Data/Scripts/Animate.lua Sun Nov 27 01:30:41 2016 +0100 @@ -50,8 +50,17 @@ RemoveFunction() end -function AnimInit() - animPos = 1 +local function startCinemaLock() + SetCinematicMode(true) + SetInputMask(bnot(gmAnimate+gmAttack+gmDown+gmHJump+gmLeft+gmLJump+gmRight+gmSlot+gmSwitch+gmTimer+gmUp+gmWeapon)) +end + +local function stopCinemaLock() + SetInputMask(0xFFFFFFFF) + SetCinematicMode(false) +end + +function AnimInit(startAnimating) lastx = 0 lasty = 0 jumpTypes = {long = gmLJump, high = gmHJump, back = gmHJump} @@ -72,6 +81,10 @@ FunctionListNum = 0 skipping = false skipFuncList = {} + animPos = 1 + if startAnimating then + startCinemaLock() + end end function AnimSwitchHog(gear) @@ -288,8 +301,7 @@ function Animate(steps) if skipping == true then animPos = 1 - SetCinematicMode(false) - SetInputMask(0xFFFFFFFF) + stopCinemaLock() SkipAnimation(steps) return true end @@ -300,8 +312,7 @@ if steps[animPos] == nil then animPos = 1 - SetCinematicMode(false) - SetInputMask(0xFFFFFFFF) + stopCinemaLock() return true end @@ -310,8 +321,7 @@ AnimSwitchHog(steps[animPos].args[1]) end - SetInputMask(bnot(gmAnimate+gmAttack+gmDown+gmHJump+gmLeft+gmLJump+gmRight+gmSlot+gmSwitch+gmTimer+gmUp+gmWeapon)) - SetCinematicMode(true) + startCinemaLock() retVal = steps[animPos].func(unpack(steps[animPos].args)) if (retVal ~= false) then animPos = animPos + 1