From 3a68364bc5d44deb1bad6107ed737a1e4822d9a4 Mon Sep 17 00:00:00 2001 From: abcdefg30 Date: Sun, 27 Sep 2015 19:04:38 +0200 Subject: [PATCH] Fix a crash in the soviet04 missions --- mods/ra/maps/soviet-04a/main.lua | 15 +++++++++++---- mods/ra/maps/soviet-04b/main.lua | 15 +++++++++++---- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/mods/ra/maps/soviet-04a/main.lua b/mods/ra/maps/soviet-04a/main.lua index c68f400014..cfaef8bc0b 100644 --- a/mods/ra/maps/soviet-04a/main.lua +++ b/mods/ra/maps/soviet-04a/main.lua @@ -37,14 +37,21 @@ RunInitialActivities = function() Trigger.OnEnteredFootprint(VillageCamArea, function(actor, id) if actor.Owner == player then - local camera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location }) Trigger.RemoveFootprintTrigger(id) - Trigger.OnAllKilled(Village, function() - camera.Destroy() - end) + + if not AllVillagersDead then + VillageCamera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location }) + end end end) + Trigger.OnAllKilled(Village, function() + if VillageCamera then + VillageCamera.Destroy() + end + AllVillagersDead = true + end) + Trigger.OnAnyKilled(Civs, function() Trigger.ClearAll(civ1) Trigger.ClearAll(civ2) diff --git a/mods/ra/maps/soviet-04b/main.lua b/mods/ra/maps/soviet-04b/main.lua index 6d2a991d1c..3ff5cb5f1b 100644 --- a/mods/ra/maps/soviet-04b/main.lua +++ b/mods/ra/maps/soviet-04b/main.lua @@ -39,14 +39,21 @@ RunInitialActivities = function() Trigger.OnEnteredFootprint(VillageCamArea, function(actor, id) if actor.Owner == player then - local camera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location }) Trigger.RemoveFootprintTrigger(id) - Trigger.OnAllKilled(Village, function() - camera.Destroy() - end) + + if not AllVillagersDead then + VillageCamera = Actor.Create("camera", true, { Owner = player, Location = VillagePoint.Location }) + end end end) + Trigger.OnAllKilled(Village, function() + if VillageCamera then + VillageCamera.Destroy() + end + AllVillagersDead = true + end) + Trigger.OnAnyKilled(Civs, function() Trigger.ClearAll(civ1) Trigger.ClearAll(civ2)