1    | /*
2    |  * $Log: variant.c,v $
3    |  * Revision 1.22  2004/08/24 11:40:28  millis
4    |  * Fixed compile error
5    |  *
6    |  * Revision 1.21  2004/08/23 16:42:14  millis
7    |  * Add space for Initiamte variant specifier
8    |  *
9    |  * Revision 1.20  2004/08/23 13:27:45  millis
10   |  * Removed extra Norway definition
11   |  *
12   |  * Revision 1.19  2004/08/09 20:15:10  machmstr
13   |  * While I am at it: Lowland had Lowland as adjective, corrected to 'Lowlander'.
14   |  *
15   |  * Revision 1.18  2004/08/07 17:05:58  machmstr
16   |  * Correction of adjectives: it is portugal portuguese and cyprus cypriotic (or cyprean).
17   |  * WARNING there are two entries for Norway Norwegian !!!  (I have not touched in case there is some reason to it.)
18   |  *
19   |  * Revision 1.17  2004/08/07 16:05:42  machmstr
20   |  * All AH Mach variants added and then some
21   |  *
22   |  * Revision 1.17  2004/08/07 01:35:00  Sergio Lidsell
23   |  * All AH Mach variants added and then some
24   | 
25   |  * Revision 1.16  2004/07/30 22:01:27  millis
26   |  * Updated Minorpower variant to have real power names
27   |  *
28   |  * Revision 1.15  2004/03/16 07:52:39  nzmb
29   |  * dded the minorpowers variant.
30   |  *
31   |  * Revision 1.14  2003/05/03 16:16:35  millis
32   |  * Missed a Neutral definition.
33   |  *
34   |  * Revision 1.13  2003/05/02 23:15:19  millis
35   |  * Added in definitions for Neutral player
36   |  *
37   |  * Revision 1.12  2002/12/28 01:08:09  millis
38   |  * Bug 57, Add colonial96 variant
39   |  *
40   |  * Revision 1.11  2002/09/26 21:53:10  millis
41   |  * Added Machiavelli2 variant
42   |  *
43   |  * Revision 1.10  2002/06/01 01:02:35  millis
44   |  * Undo last change, caused blind games to be rejected at signon stage
45   |  *
46   |  * Revision 1.9  2002/05/16 09:40:05  miller
47   |  * Blind game also sets quiet flag
48   |  *
49   |  * Revision 1.8  2001/10/26 23:20:34  nzmb
50   |  * put the crowded_1898 variant in (Tim Miller)
51   |  *
52   |  * Revision 1.7  2001/10/20 12:11:16  miller
53   |  * Merged in changes from DEMA and USTV 
54   |  *
55   |  * Revision 1.6.2.2  2001/10/20 00:53:08  dedo
56   |  * Removed compile warnings
57   |  *
58   |  *
59   |  */       
60   | 
61   | #include <stdlib.h>
62   | #include <string.h>
63   | 
64   | #include "dip.h"
65   | #include "variant.h"
66   | 
67   | static int max_country_name_len[NVARIANT];
68   | static int first_pass = 1;
69   | 
70   | /*
71   |  * This function returns the largest name for a particular variant
72   |  * Only looking at powers active for the variant in question
73   |  */
74   | int GetMaxCountryStrlen()
75   | {
76   |     int n, i = 0;
77   |     if (first_pass)
78   |     {
79   | 	first_pass = 0;
80   | 	for (n = 0; n > NVARIANT; n++)
81   | 	    max_country_name_len[n] = 0;
82   |     }
83   | 
84   |     if (max_country_name_len[dipent.variant] !=0 ) return max_country_name_len[dipent.variant];
85   | 
86   |     while( strcmp(powers[++i], "Master"))
87   |     {
88   |         if (pletter[dipent.variant][i] != 'x')
89   | 	    if (strlen(powers[i]) > max_country_name_len[dipent.variant])
90   | 	        max_country_name_len[dipent.variant] =  strlen(powers[i]);
91   |     }
92   |     max_country_name_len[dipent.variant]++;
93   |     if (max_country_name_len[dipent.variant] < 10)
94   | 	max_country_name_len[dipent.variant] = 10;
95   |     return max_country_name_len[dipent.variant];
96   | }
97   | 
98   | char *variants[] =
99   | {
100  | 	NULL,			/* Don't use 0 as a variant number */
101  | 	"standard",		/* Standard variant                */
102  | 	"youngstown",		/* Youngstown variant              */
103  | 	"loeb9",		/* Loeb 9 player variant           */
104  | 	"pure",			/* Pure variant                    */
105  | 	"chaos",		/* 34 player nonsense              */
106  | 	"britain",		/* Great Britain variant           */
107  | 	"1898",			/* 1898 variant                    */
108  | 	"crowded",		/* Eleven player variant           */
109  | 	"machiavelli",		/* Machiavelli 1454 Balance of Power */
110  | 	"fleet_rome",		/* Standard with a fleet in rome   */
111  | 	"shift_right",		/* Shift right variant             */
112  | 	"shift_left",		/* Shift left variant              */
113  | 	"rootz",		/* Root Z Diplomacy                */
114  | 	"aberration",		/* The way things might have been  */
115  | 	"wraparound",		/* Doughnut shaped nonsense        */
116  | 	"chromatic",		/* 5-Italy version with colours    */
117  | 	"milan",		/* Milan Diplomacy                 */
118  | 	"asia",			/* Asian Diplomacy                 */
119  | 	"modern",		/* Modern Diplomacy                */
120  | 	"colonial",		/* Colonial Diplomacy              */
121  | 	"h31",			/* Hundred Years War Diplomacy     */
122  | 	"h32",			/* Hundred Years War Diplomacy     */
123  | 	"classical",		/* Classical Medit. Diplomacy      */
124  | 	"empire",		/* Empire			   */
125  | 	"african2",		/* African 2			   */
126  | 	"wraparound2",		/* wraparound2			   */
127  | 	"shift_around",		/* Shift around			   */
128  | 	"layered",		/* Layered			   */
129  | 	"sailho_crowded",	/* Sailhoi, crowded		   */
130  | 	"sailho",		/* Sailho, 			   */
131  | 	"ancient_med",		/* Ancient medieteraenean	   */
132  | 	"crowded_1898",		/* crowded powers, 1898 style      */
133  |         "machiavelli2",         /* Mach2 1454 Balance of Power     */
134  | 	"colonial96",           /* Colonial 1996 Diplomacy         */
135  | 	"minorpower",		/* Minor powers Diplomacy	   */
136  | 	"mach_eos",		/* Mach1 Expansion of States	   */
137  | 	"mach_este",		/* Mach1 Expansion of States Este  */
138  | 	"mach_sfd1",		/* Mach1 Struggle for Dominance part 1 */
139  | 	"mach_sfd2",		/* Mach1 Struggle for Dominance part 2 */
140  | 	"mach_span",		/* Mach1 Spanish Preponderance	   */
141  | 	"mach_aoc",		/* Mach1 Age of Communes	   */
142  | 	"dipmach",		/* Mach played on the Standard map */
143  | 	"machfive",		/* Machfive-Sort of five italies mach */
144  | 	"mach2_sfd1",		/* Mach2 Struggle for D. part 1	   */
145  | 	"mach2_sfd2",		/* Mach2 Struggle for D. part 2	   */
146  | 	"mach2_span",		/* Mach2 Spanish Preponderance	   */
147  | 	"mach2_fotl",		/* Mach2 Fall of the Lombards	   */
148  | 	"mach2_eai",		/* Mach2 Empire and Invaders	   */
149  | 	"mach2_pamt",		/* Mach2 Papal Ascendancy and Mongol Threat */
150  | 	"mach2_pa",		/* Mach2 4 player pamt	   */
151  | 	"mach2_ttr",		/* Mach2 To The Renaissance	   */
152  | /** ADD NEW VARIANTS ABOVE THIS LINE! **/
153  | 	"gunboat",		/* Gunboat (anonymous) option      */
154  | 	"blind",		/* Blind movement option           */
155  |         "shorthand",		/* Shorthand press option          */
156  | 	"wings"    ,   		/* Wings (for modern)		   */
157  | 	"intimate"		/* Intimate			   */
158  | 	/* "a/f" */		/* AirForces option		   */
159  | };
160  | 
161  | int vvalue[] =
162  | {
163  | 	NO_VARIANT,		/* Don't use 0 as a variant number */
164  | 	V_STANDARD,		/* Standard variant                */
165  | 	V_youngstown,		/* Youngstown variant              */
166  | 	V_loeb9,		/* Loeb 9 player variant           */
167  | 	V_pure,			/* Pure variant                    */
168  | 	V_chaos,		/* 34 player nonsense              */
169  | 	V_britain,		/* Great Britain variant           */
170  | 	V_1898,			/* 1898 variant                    */
171  | 	V_crowded,		/* Eleven player variant           */
172  | 	V_machiavelli,		/* Machiavelli 1454                */
173  | 	V_fleet_rome,		/* Standard with a fleet in rome   */
174  | 	V_shift_right,		/* Shift right variant             */
175  | 	V_shift_left,		/* Shift left variant              */
176  | 	V_rootz,		/* Root Z Diplomacy                */
177  | 	V_aberration,		/* The way things might have been  */
178  | 	V_wraparound,		/* Doughnut shaped nonsense        */
179  | 	V_chromatic,		/* 5-Italy version with colours    */
180  | 	V_milan,		/* Milan Diplomacy                 */
181  | 	V_asia,			/* Asian Diplomacy                 */
182  | 	V_modern,		/* Modern Diplomacy                */
183  | 	V_colonial,		/* Colonial Diplomacy              */
184  | 	V_h31,			/* Hundred Years War Diplomacy     */
185  | 	V_h32,			/* Hundred Years War Diplomacy     */
186  | 	V_classical,		/* Classical Medit. Diplomacy      */
187  |         V_empire,               /* 24 Empire version                 */
188  |         V_african2,             /* 25 African2                       */
189  |         V_wraparound2,          /* 26 2nd version of wraparound      */
190  |         V_shift_around,         /* 27 Shift around verison           */
191  |         V_layered,              /* 28 Layered                        */
192  |         V_sailho_crowded,       /* 29 SailHo crowded                 */
193  |         V_sailho,               /* 30 SailHo                         */
194  | 	V_ancient_med,		/* 31 Ancient_Med		     */
195  | 	V_crowded_1898,		/* 32 crowded_1898		     */
196  |         V_machiavelli2,         /* 33 Machiavelli2                   */
197  | 	V_colonial96,		/* 34 Colonial 1996 variant	     */
198  | 	V_minorpower,		/* 35 Minor powers Diplomacy	     */
199  | 	V_mach_eos,		/* Mach1 Expansion of States	   */
200  | 	V_mach_este,		/* Mach1 Expansion of States Este  */
201  | 	V_mach_sfd1,		/* Mach1 Struggle for Dominance part 1 */
202  | 	V_mach_sfd2,		/* Mach1 Struggle for Dominance part 2 */
203  | 	V_mach_span,		/* Mach1 Spanish Preponderance	   */
204  | 	V_mach_aoc,		/* Mach1 Age of Communes	   */
205  | 	V_dipmach,		/* Mach played on the Standard map */
206  | 	V_machfive,		/* Machfive-Sort of five italies mach */
207  | 	V_mach2_sfd1,		/* Mach2 Struggle for D. part 1	   */
208  | 	V_mach2_sfd2,		/* Mach2 Struggle for D. part 2	   */
209  | 	V_mach2_span,		/* Mach2 Spanish Preponderance	   */
210  | 	V_mach2_fotl,		/* Mach2 Fall of the Lombards	   */
211  | 	V_mach2_eai,		/* Mach2 Empire and Invaders	   */
212  | 	V_mach2_pamt,		/* Mach2 Papal Ascendancy and Mongol Threat */
213  | 	V_mach2_pa,		/* Mach2 4 player pamt	   */
214  | 	V_mach2_ttr,		/* Mach2 To The Renaissance	   */
215  | /** ADD NEW VARIANTS ABOVE THIS LINE! **/
216  | 	F_GUNBOAT,		/* Gunboat (anonymous) option      */
217  | 	F_BLIND /*| F_QUIET*/,	/* Blind movement option           */
218  |         F_SHORTHAND,		/* Shorthand press option          */
219  | 	F_WINGS    ,   		/* Wings (for modern) variant      */
220  | 	F_INTIMATE		/* Intimate			   */
221  | 	/* F_AFRULES  */        /* Army/Fleet Rules variant        */
222  | };
223  | 
224  | /*  Power names.  */
225  | 
226  | char *powers[] =
227  | {
228  | 	"Unowned",
229  | 	/* POWER LIST BEGINS HERE */
230  | 	"Austria","Balkan","Britain","Burgundy","Byzantium","China",
231  | 	"Egypt","Eire","England","Florence","France","Germany",
232  | 	"Hungary","India","Indonesia","Israel","Italy","Japan",
233  | 	"Lowland","Milan","Naples","Norway","Papacy","Persia",
234  | 	"Poland","Russia","Siberia","Sicily","Spain","Turkey",
235  | 	"Ukraine","Venice","Holland",
236  | 	"Austria1","Austria2","England1","England2","France1","France2",
237  | 	"Germany1","Germany2","Italy1","Italy2","Russia1","Russia2",
238  | 	"Turkey1","Turkey2",
239  | 	"Yellow","Dark","Light","Red","Blue",
240  | 	"A-Ank","B-Bel","C-Ber","D-Bre","E-Bud","F-Bul",
241  | 	"G-Con","H-Den","I-Edi","J-Gre","K-Hol","L-Kie",
242  | 	"N-Lvp","P-Lon","Q-Mar","R-Mos","S-Mun","T-Nap",
243  | 	"U-Nor","V-Par","W-Por","X-Rom","Y-Rum","Z-Ser",
244  | 	"0-Sev","1-Smy","2-Spa","3-StP","4-Swe","5-Tri",
245  | 	"6-Tun","7-Ven","8-Vie","9-War",
246  | 	"BC","California","Mexico","Florida","Heartland","NewYork",
247  | 	"Peru","Quebec","Texas","Cuba",
248  | 			"Ethiopia","Ivory-Coast","Libya","Saudi-Arabia","South-Africa","Zaire",
249  | 	"North","South","East","West","Cyprus","Dissentos",
250  | 	"Syria","Carthage","Macedon","Rome","Greece",
251  | 	"Belgium", "Bulgaria", "Denmark", 
252  | 	"Portugal", "Rumania", "Serbia", "Sweden", "Tunis",
253  |         /* mach_aoc +6 */
254  | 	"Scaligeri", "Pisa", "Genoa", "Savoy", "Trinacria", "Provence",
255  | 	/* mach_este +1 */
256  | 	"Este",
257  | 	/* machfive +5 */
258  | 	"First", "Second", "Third", "Fourth", "Fifth",
259  | 	/* mach_fotl +1 */
260  | 	"Lombardy",
261  | 	/* mach_eai +2 */
262  | 	"Empire", "Norman",
263  | 	/* mach_pamt +1 */
264  | 	"Mongols",
265  | 	/* mach_ttr +1 */
266  | 	"Aragon",
267  | 	//** ADD NEW POWERS ABOVE THIS LINE! **/
268  | 	"a power", "Neutral", "Autonomous","Observer","Master"};
269  | 
270  | /*  Owner names (i.e., adjective form of power names).  */
271  | 
272  | char *owners[] =
273  | {
274  | 	"unowned",
275  | 	"Austrian","Balkan","British","Burgundian","Byzantine","Chinese",
276  | 	"Egyptian","Irish","English","Florentine","French","German",
277  | 	"Hungarian","Indian","Indonesian","Israelite","Italian","Japanese",
278  | 	"Lowlander","Milanese","Neapolitan","Norwegian","Papal","Persian",
279  | 	"Polish","Russian","Siberian","Sicilian","Spanish","Turkish",
280  | 	"Ukranian","Venetian","Dutch",
281  | 	"1Austrian","2Austrian","1English","2English","1French","2French",
282  | 	"1German","2German","1Italian","2Italian","1Russian","2Russian",
283  | 	"1Turkish","2Turkish",
284  | 	"Yellow","Dark","Light","Red","Blue",
285  | 	"A-Ank","B-Bel","C-Ber","D-Bre","E-Bud","F-Bul",
286  | 	"G-Con","H-Den","I-Edi","J-Gre","K-Hol","L-Kie",
287  | 	"N-Lvp","P-Lon","Q-Mar","R-Mos","S-Mun","T-Nap",
288  | 	"U-Nor","V-Par","W-Por","X-Rom","Y-Rum","Z-Ser",
289  | 	"0-Sev","1-Smy","2-Spa","3-StP","4-Swe","5-Tri",
290  | 	"6-Tun","7-Ven","8-Vie","9-War",
291  | 	"British Columbian","Californian","Mexican","Floridian","Heartlander","New Yorker",
292  | 	"Peruvian","Quebecois","Texan","Cuban",
293  | 	"Ethiopian","Ivory-Coastish","Libyan","Saudi-Arabian","South-African","Zairean",
294  | 	"Northern","Southern","Eastern","Western","Cypriotic","Dissentos",
295  | 	"Syrian","Carthaginian","Macedonian","Roman","Greek",
296  | 	"Belgian", "Bulgarian", "Danish", 
297  | 	"Portuguese", "Rumanian", "Serbian", "Swedish", "Tunisian",
298  |         /* mach_aoc +6 */
299  | 	"Scaligerian", "Pisan", "Genoese", "Sabaud", "Trinacrian", "Provencal",
300  | 	/* mach_este +1 */
301  | 	"Estensian",
302  | 	/* machfive +5 */
303  | 	"First", "Second", "Third", "Fourth", "Fifth",
304  | 	/* mach_fotl +1 */
305  | 	"Lombard",
306  | 	/* mach_eai +2 */
307  | 	"Imperial", "Norman",
308  | 	/* mach_pamt +1 */
309  | 	"Mongol",
310  | 	/* mach_ttr +1 */
311  | 	"Aragonese",
312  | 	/** ADD NEW POWERS ABOVE THIS LINE! **/
313  | 	"??????","Neutral", "Autonomous","Observer","Master"};
314  | 
315  | /*  Power abbreviations based on variant ('x' means corresponding power isn't
316  |    in this variant).  The last five characters should always be '?=xOM', except
317  |    for Machiavelli where it's '?=&OM'.  Likewise, 'O' and 'M' should not be
318  |    used for anything other than Observer and Master, respecitively.  */
319  | 
320  | char *pletter[] =
321  | {
322  |     NULL,                               /* Don't use 0 as a variant number */
323  | /** ADD NEW POWERS TO EACH LINE! **/
324  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Standard variant              */
325  |     ".AxxxxCxxExFGxNxxIJxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Youngstown variant            */
326  |     ".AxxxxxxxExFGxxxxIxxxxNxxxRxxSTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Loeb 9 player variant         */
327  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Pure variant                  */
328  |     ".xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABCDEFGHIJKLNPQRSTUVWXYZ0123456789xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* 34 player nonsense            */
329  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Great Britain variant         */
330  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* 1898 variant                  */
331  |     ".ABxxxxxxExFGxxxxIxLxxNxxxRxxSTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Eleven player variant         */
332  |     ".AxxxxxxxxLFxxxxxxxxINxPxxxxxxTxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=&OM", /* Machiavelli 1454              */
333  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Standard with a fleet in rome */
334  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Shift right variant           */
335  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Shift left variant            */
336  |     ".xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxA1E2F3G4I5R6T7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Root Z Diplomacy              */
337  |     ".xxxBZxxExxxxHxxIxxxxxxxxPxxCSxUxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* The way things might have been*/
338  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Doughnut shaped nonsense      */
339  |     ".xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYDLRBxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* 5-Italy version with colours  */
340  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Milan Diplomacy               */
341  |     ".xxxxxCxxxxxxxNIxxJxxxxxPxRSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Asian Diplomacy               */
342  |     ".xxBxxxExxxFGxxxxIxxxxxxxPRxxSTUxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Modern Diplomacy              */
343  |     ".xxBxxCxxxxFxxxxxxJxxxxxxxRxxxTxxHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Colonial Diplomacy            */
344  |     ".xxxBxxxxExFxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Hundred Years War Diplomacy   */
345  |     ".xxxBxxxxExFxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* H31 Diplomacy                 */
346  |     ".xxxxxxExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSCARxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Classical Diplomacy           */
347  |     ".xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxBCXFHNPQTUxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Empire4 Diplomacy             */
348  |     ".xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEILSAZxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* African2 Diplomacy            */
349  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Wraparound2 Diplomacy         */
350  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Shift_Around Diplomacy        */
351  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Layered Diplomacy             */
352  |     ".xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxNSEWCDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Sailho2_Crowded Diplomacy     */
353  |     ".xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxNSEWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* SailHo2 Diplomacy             */
354  |     ".xxxxxxExxxxxxxxxxxxxxxxPxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCxRGxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* AncMed Diplomacy 	     */
355  |     ".ABxxxxxxExFGxxxxIxLxxNxxxRxxSTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* crowded_1898 */
356  |     ".AxxxxxxxxLFxxxxxxxxINxPxxxxxxTxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=&OM", /* Machiavelli2 1454             */
357  |     ".xxBxxCxxxxFxxxxxxJxxxxxxxRxxxTxxHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=xOM", /* Colonial 1996 Diplomacy       */
358  |     ".AxxxxxxxExFGxxxxIxxxxYxxxRxxNTxxHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCBLDPUSWXxxxxxxxxxxxxxxxxx?=xOM", /* Minor power                   */
359  |     ".xxxxxxxxxLxxxxxxxxxINxxxxxxxxxxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=&OM", /* Mach Expansion of States      */
360  |     ".xxxxxxxxxLxxxxxxxxxINxxxxxxxxxxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxExxxxxxxxxx?=&OM", /* Mach Expansion of States ESTE */
361  |     ".AxxxxxxxxLFxxxxxxxxxxxPxxxxxxTxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=&OM", /* mach_sfd1                     */
362  |     ".AxxxxxxxxxFxxxxxxxxINxPxxxxxxTxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=&OM", /* mach_sfd2                     */
363  |     ".AxxxxxxxxLFxxxxxxxxxNxPxxxxxxTxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=&OM", /* mach_span                     */
364  |     ".xxxxxxxxxLxxxxxxxxxINxxxxxxxxxxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAPGSTRxxxxxxxxxxx?=&OM", /* Mach Age of Communes          */
365  |     ".AxxxxxxxExFGxxxxIxxxxxxxxRxxxTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=&OM", /* Dipmach-Mach on standard map  */
366  |     ".xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx12345xxxxx?=&OM", /* machfive                      */
367  |     ".AxxxxxxxxLFxxxxxxxxxxxPxxxxxxTxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=&OM", /* mach2_sfd1                    */
368  |     ".AxxxxxxxxxFxxxxxxxxINxPxxxxxxTxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=&OM", /* mach2_sfd2                    */
369  |     ".AxxxxxxxxLFxxxxxxxxxNxPxxxxxxTxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?=&OM", /* mach2_span                    */
370  |     ".xxxxBxxxxxFxxxxxxxxxxxPxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxLxxxx?=&OM", /* mach2_fotl                    */
371  |     ".xxxxBxxxxxxxxxxxxxxxxxPxxxxxxTxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSxxxxxxxxxxLENxx?=&OM", /* mach2_eai                    */
372  |     ".xxxxxxxxxxxxxxxxxxxIxxPxxxxxxxxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxExGx?=&OM", /* mach2_pamt                    */
373  |     ".xxxxxxxxxxxxxxxxxxxIxxPxxxxxxxxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxExxx?=&OM", /* mach2_pa                    */
374  |     ".xxxxxxxxxLxxxxxxxxxINxPxxxxxxxxVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGxxxxxxxxxxxxxA?=&OM", /* mach2_ttr                    */
375  |  /** ADD NEW VARIANTS ABOVE THIS LINE! **/
376  | };
377  | 
378  | /*  Starting phase.  */
379  | 
380  | char *sphase[] =
381  | {
382  | 	NULL,			/* Don't use 0 as a variant number */
383  | 	"S1901M",		/* Standard variant                */
384  | 	"S1901M",		/* Youngstown variant              */
385  | 	"S1901M",		/* Loeb 9 player variant           */
386  | 	"S1901M",		/* Pure variant                    */
387  | 	"F1900B",		/* 34 player nonsense              */
388  | 	"S1901M",		/* Great Britain variant           */
389  | 	"S1899M",		/* 1898 variant                    */
390  | 	"S1901M",		/* Eleven player variant           */
391  | 	"F1453A",		/* Machiavelli 1454                */
392  | 	"S1901M",		/* Standard with a fleet in rome   */
393  | 	"S1901M",		/* Shift right variant             */
394  | 	"S1901M",		/* Shift left variant              */
395  | 	"S1901M",		/* Root Z Diplomacy                */
396  | 	"S1901M",		/* The way things might have been  */
397  | 	"S1901M",		/* Doughnut shaped nonsense        */
398  | 	"S1901M",		/* 5-Italy version with colours    */
399  | 	"S1901M",		/* Milan Diplomacy                 */
400  | 	"S1901M",		/* Asian Diplomacy                 */
401  | 	"S1995M",		/* Modern Diplomacy                */
402  | 	"S1870M",		/* Colonial Diplomacy              */
403  | 	"S1425M",		/* 100 Year War Diplomacy          */
404  | 	"S1425M",		/* 100 Year War Diplomacy          */
405  | 	"S1050M",		/* Classical Med.  Diplomacy       */
406  | 	"S1999M",               /* Empire Diplomacy                */
407  | 	"S1901M",               /* African2 Diplomacy              */
408  | 	"S1901M",               /* Wraparound2 Diplomacy           */
409  | 	"S1901M",               /* Shift_Around Diplomacy          */
410  | 	"S1901M",               /* Layered Diplomacy               */
411  | 	"S1901M",               /* SailHo2 Diplomacy               */
412  | 	"S1901M",               /* Sailho2_Crowded Diplomacy       */
413  | 	"S0001M",		/* Ancient_Med Diplomacy	   */
414  | 	"S1899M",		/* crowded_1898 Diplomacy	   */
415  |         "F1453A",               /* Machiavelli2 1454               */
416  |         "S1870M",               /* Colonial 1996 Diplomacy         */
417  | 	"F1900B",		/* Minor powers Diplomacy	   */
418  | 	"F1384A",		/* Mach1 Expansion of States	   */
419  | 	"F1384A",		/* Mach1 Expansion of States Este  */
420  | 	"F1498A",		/* Mach1 Struggle for Dominance part 1 */
421  | 	"F1512A",		/* Mach1 Struggle for Dominance part 2 */
422  | 	"F1520A",		/* Mach1 Spanish Preponderance	   */
423  | 	"F1334A",		/* Mach1 Age of Communes	   */
424  | 	"F1900A",		/* Mach played on the Standard map */
425  | 	"F3000A",		/* Machfive-Sort of five italies mach */
426  | 	"F1498A",		/* Mach2 Struggle for D. part 1	   */
427  | 	"F1512A",		/* Mach2 Struggle for D. part 2	   */
428  | 	"F1520A",		/* Mach2 Spanish Preponderance	   */
429  | 	"F724A",		/* Mach2 Fall of the Lombards	   */
430  | 	"F1050A",		/* Mach2 Empire and Invaders	   */
431  | 	"F1176A",		/* Mach2 Papal Ascendancy and Mongol Threat */
432  | 	"F1176A",		/* Mach2 4 player pamt		   */
433  | 	"F1249A",		/* Mach2 To The Renaissance	   */
434  | /** ADD NEW VARIANTS ABOVE THIS LINE! **/
435  | };