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