Author: zookeeper
Date: Sun Jun 29 01:03:50 2008
New Revision: 27575

URL: http://svn.gna.org/viewcvs/wesnoth?rev=27575&view=rev
Log:
Added a hacky macro for making a side be allied with all other sides.

Modified:
    trunk/data/core/macros/utils.cfg

Modified: trunk/data/core/macros/utils.cfg
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/core/macros/utils.cfg?rev=27575&r1=27574&r2=27575&view=diff
==============================================================================
--- trunk/data/core/macros/utils.cfg (original)
+++ trunk/data/core/macros/utils.cfg Sun Jun 29 01:03:50 2008
@@ -522,3 +522,113 @@
         [/if]
     [/event]
 #enddef
+
+#define NEUTRAL_SIDE SIDE
+# Allows a side to appear as if allied with every other side.
+#
+# Limitations: if we have three sides A, B and C, and C is a neutral side, then
+# sides B and C will appear as enemies during A's turn, and likewise A and C on
+# B's turn.
+#
+# IMPORTANT NOTE: the scenario needs victory_when_enemies_defeated=no to be 
set.
+    [event]
+        name=prestart
+
+        {VARIABLE NEUTRAL_SIDE_i 1}
+
+        [store_side]
+            side=$NEUTRAL_SIDE_i
+            variable=NEUTRAL_SIDE_side_store
+        [/store_side]
+
+        [while]
+            [variable]
+                name=NEUTRAL_SIDE_side_store.team_name
+                not_equals=$empty
+            [/variable]
+
+            [do]
+                {VARIABLE side_$NEUTRAL_SIDE_i|_original_team_name 
$NEUTRAL_SIDE_side_store.team_name}
+                {VARIABLE side_$NEUTRAL_SIDE_i|_original_user_team_name 
$NEUTRAL_SIDE_side_store.user_team_name}
+
+                {VARIABLE_OP NEUTRAL_SIDE_i add 1}
+
+                {CLEAR_VARIABLE NEUTRAL_SIDE_side_store}
+
+                [store_side]
+                    side=$NEUTRAL_SIDE_i
+                    variable=NEUTRAL_SIDE_side_store
+                [/store_side]
+            [/do]
+        [/while]
+
+        {CLEAR_VARIABLE NEUTRAL_SIDE_side_store}
+    [/event]
+
+    [event]
+        name=side turn
+        first_time_only=no
+
+        [if]
+            [variable]
+                name=side_number
+                not_equals={SIDE}
+            [/variable]
+
+            [then]
+                {VARIABLE NEUTRAL_SIDE_i 1}
+
+                [while]
+                    [variable]
+                        name=side_$NEUTRAL_SIDE_i|_original_team_name
+                        not_equals=$empty
+                    [/variable]
+
+                    [do]
+                        [modify_side]
+                            side=$NEUTRAL_SIDE_i
+                            team_name=$side_$NEUTRAL_SIDE_i|_original_team_name
+                            
user_team_name=$side_$NEUTRAL_SIDE_i|_original_user_team_name
+                        [/modify_side]
+
+                        {VARIABLE_OP NEUTRAL_SIDE_i add 1}
+                    [/do]
+                [/while]
+
+                [store_side]
+                    side=$side_number
+                    variable=NEUTRAL_SIDE_side_store
+                [/store_side]
+
+                [modify_side]
+                    side={SIDE}
+                    team_name=$NEUTRAL_SIDE_side_store.team_name
+                    user_team_name=$side_{SIDE}_original_user_team_name
+                [/modify_side]
+
+                {CLEAR_VARIABLE NEUTRAL_SIDE_side_store}
+            [/then]
+
+            [else]
+                {VARIABLE NEUTRAL_SIDE_i 1}
+
+                [while]
+                    [variable]
+                        name=side_$NEUTRAL_SIDE_i|_original_team_name
+                        not_equals=$empty
+                    [/variable]
+
+                    [do]
+                        [modify_side]
+                            side=$NEUTRAL_SIDE_i
+                            team_name=friends_with_all
+                            
user_team_name=$side_$NEUTRAL_SIDE_i|_original_user_team_name
+                        [/modify_side]
+
+                        {VARIABLE_OP NEUTRAL_SIDE_i add 1}
+                    [/do]
+                [/while]
+            [/else]
+        [/if]
+    [/event]
+#enddef


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

Reply via email to