Author: esr
Date: Fri Sep 12 10:09:13 2008
New Revision: 29412

URL: http://svn.gna.org/viewcvs/wesnoth?rev=29412&view=rev
Log:
Completed, and tested, fix for bug #12291: Northern Rebirth: Krash's
recall list disappears in Eastern Flank.

Modified:
    trunk/data/campaigns/Northern_Rebirth/scenarios/05a_The_Pursuit.cfg
    trunk/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg
    trunk/data/campaigns/Northern_Rebirth/scenarios/11a_Eastern_Flank.cfg
    trunk/data/campaigns/Northern_Rebirth/scenarios/12a_Get_the_Gold.cfg
    trunk/data/campaigns/Northern_Rebirth/scenarios/13a_Showdown.cfg
    trunk/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg

Modified: trunk/data/campaigns/Northern_Rebirth/scenarios/05a_The_Pursuit.cfg
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/campaigns/Northern_Rebirth/scenarios/05a_The_Pursuit.cfg?rev=29412&r1=29411&r2=29412&view=diff
==============================================================================
--- trunk/data/campaigns/Northern_Rebirth/scenarios/05a_The_Pursuit.cfg 
(original)
+++ trunk/data/campaigns/Northern_Rebirth/scenarios/05a_The_Pursuit.cfg Fri Sep 
12 10:09:13 2008
@@ -1012,6 +1012,7 @@
                 message= _ "Whoa! Maybe he isn't so friendly after all... or 
at least to some things."
             [/message]
         [/event]
+        {VARIABLE Krash_alive yes}
     [/event]
 
     # 1e - Escape tunnel

Modified: trunk/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg?rev=29412&r1=29411&r2=29412&view=diff
==============================================================================
--- trunk/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg 
(original)
+++ trunk/data/campaigns/Northern_Rebirth/scenarios/06a_Old_Friend.cfg Fri Sep 
12 10:09:13 2008
@@ -206,26 +206,23 @@
 
             [case]
                 value=0
-
                 {VARIABLE new_tallin_type Sergeant}
             [/case]
 
             [case]
                 value=1
-
                 {VARIABLE new_tallin_type Sergeant}
             [/case]
 
             [case]
                 value=2
-
                 {VARIABLE new_tallin_type Lieutenant}
             [/case]
 
             [else]
                 {VARIABLE new_tallin_type General}
             [/else]
-        [/if]
+        [/switch]
 
         {TRANSFORM_UNIT id=Tallin $new_tallin_type}
         {FULL_HEAL id=Tallin}

Modified: trunk/data/campaigns/Northern_Rebirth/scenarios/11a_Eastern_Flank.cfg
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/campaigns/Northern_Rebirth/scenarios/11a_Eastern_Flank.cfg?rev=29412&r1=29411&r2=29412&view=diff
==============================================================================
--- trunk/data/campaigns/Northern_Rebirth/scenarios/11a_Eastern_Flank.cfg 
(original)
+++ trunk/data/campaigns/Northern_Rebirth/scenarios/11a_Eastern_Flank.cfg Fri 
Sep 12 10:09:13 2008
@@ -100,7 +100,10 @@
         team_name=orcs
         user_team_name=_"Orcs"
     [/side]
-    # Allied side - also player controlled, leader serves as a placeholder for 
Krash if he's alive
+
+    # Krash may not actually still be alive at this point, but setting up
+    # his side this way is the only way to reliasbly pick up his recall 
+    # list if he is.
     [side]
         side=7
         type=Drake Burner
@@ -114,15 +117,20 @@
         user_team_name=_"Alliance"
         controller=human
     [/side]
-    # Check if Krash is on recall list and if yes replace side 7 leader with 
him
+
+    # Here's where we edit out Krash's side if he's dead.
     [event]
         name=prestart
 
         [if]
-            [have_unit]
-                id=Krash
-            [/have_unit]
-            [else]
+            [variable]
+                name=Krash_alive
+                equals=no
+            [/variable]
+            [then]
+                [kill]
+                    side=7
+                [/kill]
                 [terrain]
                     x=29,29,30,30,30,31,31,31,32,32
                     y=6,7,5,6,7,6,7,8,6,7
@@ -132,7 +140,7 @@
                     side=1
                     amount=200
                 [/gold]
-            [/else]
+            [/then]
         [/if]
     [/event]
 
@@ -196,7 +204,7 @@
             speaker=Tallin
             message= _ "Gods of Light! Look at that fortress. The castle 
Angthurim is even grimmer than its reputation."
         [/message]
-        # Hidiel part takes place only if Anita is alive
+        # Hidel part takes place only if Anita is alive
         [if]
             [have_unit]
                 id=Anita

Modified: trunk/data/campaigns/Northern_Rebirth/scenarios/12a_Get_the_Gold.cfg
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/campaigns/Northern_Rebirth/scenarios/12a_Get_the_Gold.cfg?rev=29412&r1=29411&r2=29412&view=diff
==============================================================================
--- trunk/data/campaigns/Northern_Rebirth/scenarios/12a_Get_the_Gold.cfg 
(original)
+++ trunk/data/campaigns/Northern_Rebirth/scenarios/12a_Get_the_Gold.cfg Fri 
Sep 12 10:09:13 2008
@@ -155,6 +155,7 @@
         team_name=orcs
         user_team_name=_"Alliance"
     [/side]
+
     # Empty sides - to ensure proper recall lists carryover
     [side]
         side=4
@@ -168,7 +169,10 @@
         side=6
         no_leader=yes
     [/side]
-    # Empty side - player will asume control of it if Krash is alive
+
+    # Krash may not actually still be alive at this point, but setting up
+    # his side this way is the only way to reliasbly pick up his recall 
+    # list if he is.
     [side]
         side=7
         type=Drake Burner
@@ -182,12 +186,14 @@
         user_team_name=_"Alliance"
         controller=human
     [/side]
-    # Empty side - to ensure proper recall list caryover
+
+    # Empty side - to ensure proper recall list carryover
     [side]
         side=8
         no_leader=yes
     [/side]
-    # Empty side - player will asume control of it if Anita is alive
+
+    # Empty side - player will assume control of it if Anita is alive
     [side]
         side=9
         {GOLD4 500 400 350 300}
@@ -201,22 +207,27 @@
     [event]
         name=prestart
 
-        # {SCATTER_IMAGE (terrain=Gs^Fp) 20 scenery/pine2.png}
-        # If Krash is alive place him at sides 7 keep, otherwise remove that 
castle
-
+        # Here's where we edit out Krash's side if he's dead.
         [if]
-            [have_unit]
-                id=Krash
-            [/have_unit]
-            [else]
+            [variable]
+                name=Krash_alive
+                equals=no
+            [/variable]
+            [then]
+                [kill]
+                    side=7
+                [/kill]
                 [terrain]
                     x=4,4,4,5,5,5,6,6,6
                     y=3,4,5,3,4,5,3,4,5
                     terrain=Gs^Fp
                 [/terrain]
-            [/else]
+            [/then]
         [/if]
-        # If Anita is alive change her to recruiting leader of side 9 and 
place on that keep
+
+        # If Anita is alive change her to recruiting leader of side 9 and 
+        # place on that keep.  This method works because, unlike Krash, she
+        # has no recall list of followers to preserve.
         [recall]
             id=Anita
         [/recall]

Modified: trunk/data/campaigns/Northern_Rebirth/scenarios/13a_Showdown.cfg
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/campaigns/Northern_Rebirth/scenarios/13a_Showdown.cfg?rev=29412&r1=29411&r2=29412&view=diff
==============================================================================
--- trunk/data/campaigns/Northern_Rebirth/scenarios/13a_Showdown.cfg (original)
+++ trunk/data/campaigns/Northern_Rebirth/scenarios/13a_Showdown.cfg Fri Sep 12 
10:09:13 2008
@@ -202,7 +202,10 @@
         [/ai]
     [/side]
     {STARTING_VILLAGES 6 4}
-    # Side for Krash, if alive
+
+    # Krash may not actually still be alive at this point, but setting up
+    # his side this way is the only way to reliably pick up his recall 
+    # list if he is.  Later, we'll edit in another leader if he's dead.
     [side]
         side=7
         type=Drake Burner
@@ -217,6 +220,7 @@
         controller=human
     [/side]
     {STARTING_VILLAGES 7 10}
+
     # Allied AI
     [side]
         type=Dwarvish Lord
@@ -248,6 +252,7 @@
         [/ai]
     [/side]
     {STARTING_VILLAGES 8 10}
+
     # Side for Anita if alive
     [side]
         side=9
@@ -263,8 +268,10 @@
     [event]
         name=prestart
 
-        # {SCATTER_IMAGE (terrain=Gg,Gs^Fp) 12 scenery/pine1.png}
-        # Check if Krash is alive, if yes place him at helm of side 7, 
otherwise it's taken over by older lich
+        # Check if Krash is alive, if yes place him at helm of side 7, 
+        # otherwise it's taken over by older lich.  We can't use a normal
+        # recall followed by have_unit test here because we had to declare
+        # Krash as a side leader in order to get recall list carryover.
         [recall]
             id="Ro'Arthian"
         [/recall]
@@ -273,10 +280,11 @@
             variable=side_seven_starts_at
         [/store_starting_location]
         [if]
-            [have_unit]
-                id=Krash
-            [/have_unit]
-            [else]
+            [variable]
+                name=Krash_alive
+                equals=no
+            [/variable]
+            [then]
                 [store_unit]
                     [filter]
                         id="Ro'Arthian"
@@ -301,14 +309,18 @@
                     type=Troll,Troll Whelp,Ogre,Young Ogre,Mage,Red 
Mage,Gryphon
                 [/allow_recruit]
                 {CLEAR_VARIABLE place_lich_at}
-            [/else]
+            [/then]
         [/if]
+
         # Hide unit for spectacular entrance
         [hide_unit]
             x=$side_seven_starts_at.x
             y=$side_seven_starts_at.y
         [/hide_unit]
-        # Check if Anita is alive, if yes place her at helm of side 9, if no 
younger lich assumes command
+
+        # Check if Anita is alive. If yes place her at the helm of side 9, 
+        # if no younger lich assumes command.  Note, this method does 
+        # not carry over veterans from the previous scenario,
         [recall]
             id=Anita
         [/recall]

Modified: trunk/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg?rev=29412&r1=29411&r2=29412&view=diff
==============================================================================
--- trunk/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg (original)
+++ trunk/data/campaigns/Northern_Rebirth/utils/herodeaths.cfg Fri Sep 12 
10:09:13 2008
@@ -40,6 +40,7 @@
         speaker=Camerin
         message= _ "Awww, I liked that guy!"
     [/message]
+    {VARIABLE Krash_alive no}
 [/event]
 
 # Death events for Stalrag and lich brothers, in ifdef to prevent them firing 
when you fight them in Settling Disputes
@@ -713,6 +714,7 @@
         name=random
     [/clear_variable]
 [/event]
+
 # Elenia death
 [event]
     name=die


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to