EURO_SEL.CPP 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5. #include <math.h>
  6. #include "eurodefs.h"
  7. #include "euro_fxd.h"
  8. #include "euro.equ"
  9. #include "euro_sym.h"
  10. #include "euro_def.h"
  11. #include "euro_var.h"
  12. #include "euro_grf.h"
  13. #include "euro_dsk.h"
  14. #include "euro_gen.h"
  15. #include "euro_grf.h"
  16. #include "euro_cnt.h"
  17. #include "euro_usr.h"
  18. #include "euro_net.h"
  19. #include "euro_int.h"
  20. #include "defines.h"
  21. #include "intronet.h"
  22. extern int MouseFlags;
  23. void DisplaySelectedTeam();
  24. char HaveNETteamsBeenChosen();
  25. //********************************************************************************************************************************
  26. void SetupTeamSelectButtons( char GAMEtype )
  27. {
  28. if ( GAMEtype == EURO_friendly )
  29. {
  30. PlayerSetupHandle = AddAnimation( 446, 180,
  31. ( (float)BUTN_WHBL ), ( (float)BUTN_WHBL+11.9 ),
  32. 0.0, PLAYER_SETUP_BOX, CONT_ANIM );
  33. PlyrSetupHighlight = ControlOptionHighlight( -1, PLAYER_SETUP_BOX,
  34. PLAYER_SETUPdisp_BOX, -1,
  35. PlayerSetupHandle, BUTN_LBLS+PlayerSetup );
  36. TeamSetupHandle = AddAnimation( 446, 228,
  37. ( (float)BUTN_WHBL ), ( (float)BUTN_WHBL+11.9 ),
  38. 0.0, FORMATION_SETUP_BOX, CONT_ANIM );
  39. TeamSetupHighlight = ControlOptionHighlight( -1, FORMATION_SETUP_BOX,
  40. FORMATION_SETUPdisp_BOX, -1,
  41. TeamSetupHandle, BUTN_LBLS+TeamSetup );
  42. StartMatchHandle = AddAnimation( 446, 300,
  43. ( (float)BUTN_WHBL ), ( (float)BUTN_WHBL+11.9 ),
  44. 0.0, START_MATCH_BOX, CONT_ANIM );
  45. StartMatchHighlight = ControlOptionHighlight( -1, START_MATCH_BOX,
  46. START_MATCHdisp_BOX, -1,
  47. StartMatchHandle, BUTN_LBLS+StartMatch );
  48. }
  49. if ( GAMEtype == EURO_network_game )
  50. {
  51. SelectTeamsHandle = AddAnimation( 446, 300,
  52. ( (float)BUTN_WHBL ), ( (float)BUTN_WHBL+11.9 ),
  53. 0.0, SELECT_TEAM_BOX, CONT_ANIM );
  54. SelectTeamsHighlight = ControlOptionHighlight( -1, SELECT_TEAM_BOX,
  55. SELECT_TEAMdisp_BOX, -1,
  56. SelectTeamsHandle, BUTN_LBLS+SelectTeams );
  57. }
  58. if ( GAMEtype == EURO_championship )
  59. {
  60. UserSelectTeamHandle = AddAnimation( 446, 350,
  61. ( (float)BUTN_WHBL ), ( (float)BUTN_WHBL+11.9 ),
  62. 0.0, USER_TEAM_SELECT_BOX, CONT_ANIM );
  63. SelectHighlight = ControlOptionHighlight( -1, USER_TEAM_SELECT_BOX,
  64. USER_TEAMdisp_BOX, -1,
  65. UserSelectTeamHandle, BUTN_LBLS+Select );
  66. if ( EUROuserSelection == 0 )
  67. {
  68. NoOfUsersHandle = AddAnimation( 446, 300,
  69. ( (float)BUTN_WHBL ), ( (float)BUTN_WHBL+11.9 ),
  70. 0.0, NOofUSERS_BOX, RUN_ONCE );
  71. UserHighlight = ControlOptionHighlight( -1, NOofUSERS_BOX,
  72. NOofUSERSdsp_BOX, -1,
  73. NoOfUsersHandle, USRS_LBLS+(EUROnoOfMatchPlyrs-1) );
  74. }
  75. }
  76. }
  77. //********************************************************************************************************************************
  78. void DisplaySelectedTeam()
  79. {
  80. CopyFromBACKtoPSEUDObuffer( &FrontendPseudoDEFN, &FrontendBackgroundDEFN,
  81. 52, 406, 366, 30 );
  82. if ( EUROgameType != EURO_championship )
  83. {
  84. DisplayString(
  85. 132-(PixelLengthOfString(GetTEAMname( EUROteamA, 11 ), LARGE_FONT)/2),
  86. 406,
  87. GetTEAMname( EUROteamA, 11 ),
  88. LARGE_FONT,
  89. 43,
  90. EURO_TEAMa_BOX,
  91. &FrontendPseudoDEFN, &FrontendTextureDEFN );
  92. DisplayString(
  93. 340-(PixelLengthOfString(GetTEAMname( EUROteamB, 11 ), LARGE_FONT)/2),
  94. 406,
  95. GetTEAMname( EUROteamB, 11 ),
  96. LARGE_FONT,
  97. 50,
  98. EURO_TEAMb_BOX,
  99. &FrontendPseudoDEFN, &FrontendTextureDEFN );
  100. }
  101. else
  102. DisplayString(
  103. 237-(PixelLengthOfString(GetTEAMname( EUROteamA, 11 ), LARGE_FONT)/2),
  104. 406,
  105. GetTEAMname( EUROteamA, 11 ),
  106. LARGE_FONT,
  107. 43,
  108. EURO_TEAMa_BOX,
  109. &FrontendPseudoDEFN, &FrontendTextureDEFN );
  110. AddToDumpList( 52, 406, 366, 30 );
  111. }
  112. //********************************************************************************************************************************
  113. signed int LegaliseEuro96UserSelection( int AimAddn, signed int SelectionAim )
  114. {
  115. char a = 0;
  116. char c;
  117. signed int aim = AimAddn;
  118. while ( a == 0 )
  119. {
  120. c = CountryTBL[((SelectionAim+AimAddn)&15)];
  121. if ( EURO96setup[c].NoOfUsers < 2 )
  122. a = 1;
  123. else
  124. AimAddn+= aim;
  125. }
  126. return(AimAddn);
  127. }
  128. //********************************************************************************************************************************
  129. void GetFirstLegalEuro96Team()
  130. {
  131. if ( EUROgameType == EURO_championship )
  132. {
  133. if ( EUROuserSelection == 0 )
  134. {
  135. for ( char s=0; s < 16; s++ )
  136. {
  137. EURO96setup[s].NoOfUsers = 0;
  138. }
  139. }
  140. for ( char i = 0; i < 16; i++ )
  141. {
  142. if ( EURO96setup[i].NoOfUsers < 2 )
  143. break;
  144. }
  145. EUROteamA = i;
  146. SelectionCounter = AimTBL[EUROteamA];
  147. memcpy( &PaletteBuffer[44*3], &SparePaletteBuffer[ (LeagueColourOffsets[EUROteamA]*3)+3 ], 7*3 );
  148. }
  149. }
  150. //********************************************************************************************************************************
  151. void UpdateSelectionPalettes()
  152. {
  153. fixed *a;
  154. fixed red, green, blue;
  155. BYTE *DestPalette;
  156. a = &CurrentPalette[44*3];
  157. DestPalette = &PaletteBuffer[44*3];
  158. memcpy( &PaletteBuffer[44*3], &SparePaletteBuffer[ (LeagueColourOffsets[EUROteamA]*3)+3 ], 7*3 );
  159. memcpy( &PaletteBuffer[51*3], &SparePaletteBuffer[ (LeagueColourOffsets[EUROteamB]*3)+3 ], 7*3 );
  160. for ( short c = 44; c < 58; c++ )
  161. {
  162. red = (*(DestPalette++));
  163. green = (*(DestPalette++));
  164. blue = (*(DestPalette++));
  165. (*(a++)) = red;
  166. (*(a++)) = green;
  167. (*(a++)) = blue;
  168. outp ( 0x3c8, c );
  169. outp ( 0x3c9, (char)red);
  170. outp ( 0x3c9, (char)green);
  171. outp ( 0x3c9, (char)blue);
  172. }
  173. }
  174. //********************************************************************************************************************************
  175. void DisplayLowerSelectionPanel( char GAMEtype )
  176. {
  177. if ( GAMEtype != EURO_championship )
  178. {
  179. DrawIMAGE( &FrontendBackgroundDEFN, &FrontendTextureDEFN,
  180. GERL_SBAR, 28, 394, NO_BOX, spritecopy );
  181. VersusLength = PixelLengthOfString(GetTEXT( VRUS_LBLE ), LARGE_FONT);
  182. DisplayString( 237 - (VersusLength/2),
  183. 406,
  184. GetTEXT( VRUS_LBLE ),
  185. LARGE_FONT, 22, NO_BOX,
  186. &FrontendBackgroundDEFN, &FrontendTextureDEFN );
  187. }
  188. else
  189. {
  190. DrawIMAGE( &FrontendBackgroundDEFN, &FrontendTextureDEFN,
  191. EURO_SELC+Lft, 237-Image_Widths[EURO_SELC+Lft],
  192. 394, NO_BOX, spritecopy );
  193. DrawIMAGE( &FrontendBackgroundDEFN, &FrontendTextureDEFN,
  194. EURO_SELC+Rgt, 237, 394, NO_BOX, spritecopy );
  195. }
  196. }
  197. //********************************************************************************************************************************
  198. void DisplayGameType( char gametype )
  199. {
  200. if ( EUROgameType == EURO_championship )
  201. DisplayString( 12, 98,
  202. GetTEXT ( PICK_LBLS+EUROuserSelection ),
  203. LARGE_FONT, 36, NO_BOX, &FrontendPseudoDEFN, &FrontendTextureDEFN );
  204. else
  205. DisplayString( 12, 98,
  206. GetTEXT (MTCH_LBLS+gametype),
  207. LARGE_FONT, 36, NO_BOX, &FrontendPseudoDEFN, &FrontendTextureDEFN );
  208. }
  209. //********************************************************************************************************************************
  210. void CalculateDir( int SelectionCounter, int SelectionAim)
  211. {
  212. SelectDir = 1;
  213. for ( int i=0; i < 8; i++ )
  214. {
  215. if ( ((int)SelectionCounter&60) == ( ((SelectionAim+i)&15)*4) )
  216. SelectDir = -1;
  217. }
  218. }
  219. //********************************************************************************************************************************
  220. void DoTeamSelection( char MENU, signed char BOX )
  221. {
  222. signed int SelectionCompare;
  223. // if ( MENU == TEAM_SELECT && ChangeMenu == -1 &&
  224. // EUROgameType == EURO_network_game &&
  225. // HaveNETteamsBeenChosen() == Yes )
  226. if ( MENU == TEAM_SELECT && LogicState == RUN_FRONTEND && //ChangeMenu == -1
  227. EUROgameType == EURO_network_game &&
  228. HaveNETteamsBeenChosen() == Yes )
  229. ChangeMenu = PLAYER_SETUP;
  230. else
  231. if ( MENU == TEAM_SELECT && LogicState == RUN_FRONTEND )
  232. {
  233. if ( EUROgameType == EURO_friendly )
  234. {
  235. StartMatchHighlight = ControlOptionHighlight( BOX, START_MATCH_BOX,
  236. START_MATCHdisp_BOX, StartMatchHighlight,
  237. StartMatchHandle, BUTN_LBLS+StartMatch );
  238. TeamSetupHighlight = ControlOptionHighlight( BOX, FORMATION_SETUP_BOX,
  239. FORMATION_SETUPdisp_BOX, TeamSetupHighlight,
  240. TeamSetupHandle, BUTN_LBLS+TeamSetup );
  241. PlyrSetupHighlight = ControlOptionHighlight( BOX, PLAYER_SETUP_BOX,
  242. PLAYER_SETUPdisp_BOX, PlyrSetupHighlight,
  243. PlayerSetupHandle, BUTN_LBLS+PlayerSetup );
  244. }
  245. if ( EUROgameType == EURO_championship )
  246. {
  247. SelectHighlight = ControlOptionHighlight( BOX, USER_TEAM_SELECT_BOX,
  248. USER_TEAMdisp_BOX, SelectHighlight,
  249. UserSelectTeamHandle, BUTN_LBLS+Select );
  250. UserHighlight = ControlOptionHighlight( BOX, NOofUSERS_BOX,
  251. NOofUSERSdsp_BOX, UserHighlight,
  252. NoOfUsersHandle, USRS_LBLS+(EUROnoOfMatchPlyrs-1) );
  253. }
  254. if ( EUROgameType == EURO_network_game )
  255. {
  256. SelectTeamsHighlight = ControlOptionHighlight( BOX, SELECT_TEAM_BOX,
  257. SELECT_TEAMdisp_BOX, SelectTeamsHighlight,
  258. SelectTeamsHandle, BUTN_LBLS+SelectTeams );
  259. }
  260. //-----------------------------------------------------------------------------------------------
  261. if ( BOX == START_MATCH_BOX && ButtonState != 0 )
  262. {
  263. Animation_table[StartMatchHandle].AnimationSpeed =
  264. WhichButton( ButtonState, 0.85);
  265. RunMatch = Yes;
  266. ChangeMenu = MAIN;
  267. DeBounce = TRUE;
  268. }
  269. //ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
  270. //º º
  271. //º Ready to start Championship competition º
  272. //º º
  273. //ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
  274. if ( BOX == USER_TEAM_SELECT_BOX && ButtonState != 0 && EUROuserSelection == (EUROnoOfMatchPlyrs-1) )
  275. {
  276. UserList[EUROuserSelection].team = EUROteamA;
  277. Animation_table[StartEuro96Handle].AnimationSpeed =
  278. WhichButton( ButtonState, 0.85);
  279. SelectHighlight = -1;
  280. ChangeMenu = GROUP_FIXTURES;
  281. DeBounce = TRUE;
  282. }
  283. //-----------------------------------------------------------------------------------------------
  284. {
  285. TranslateUserSelections();
  286. if ( (int)SelectionCounter != (SelectionAim *4) )
  287. {
  288. if ( SelectDir == 1 )
  289. SelectionCounter+= SelectionSpeed;
  290. if ( SelectDir == -1 )
  291. SelectionCounter-= SelectionSpeed;
  292. if ( SelectionSpeed < 1.0 && SelectionSpeed > 0 )
  293. SelectionSpeed*= 2;
  294. if ( SelectionSpeed > 1.0 )
  295. SelectionSpeed = 1.0;
  296. }
  297. else
  298. {
  299. if ( ClickBOX == EURO_TEAMa_BOX )
  300. EUROteamA = CountryTBL[SelectionAim];
  301. if ( ClickBOX == EURO_TEAMb_BOX )
  302. EUROteamB = CountryTBL[SelectionAim];
  303. SelectionCounter= SelectionAim*4;
  304. SelectionSpeed = 0;
  305. }
  306. SelectionCounter = fmod( SelectionCounter+64, 64);
  307. if ( SelectionSpeed == 0 && ( BOX == EURO_TEAMa_BOX || BOX == EURO_TEAMb_BOX ) )
  308. {
  309. if ( ButtonState != 0 )
  310. {
  311. ClickBOX = BOX;
  312. if ( BOX == EURO_TEAMa_BOX )
  313. {
  314. SelectionAim = AimTBL[EUROteamA];
  315. SelectionCompare= AimTBL[EUROteamB];
  316. }
  317. else
  318. {
  319. SelectionAim = AimTBL[EUROteamB];
  320. SelectionCompare= AimTBL[EUROteamA];
  321. }
  322. int AimAddn;
  323. AimAddn = ((int)WhichButton( ButtonState, 1.0 ));
  324. if ( EUROgameType != EURO_championship )
  325. {
  326. if ( ((SelectionAim+AimAddn)&15) == SelectionCompare )
  327. AimAddn*= 2;
  328. }
  329. else
  330. AimAddn = LegaliseEuro96UserSelection( AimAddn, SelectionAim );
  331. SelectionAim+= AimAddn;
  332. SelectionSpeed = .2;
  333. SelectionAim&= 15;
  334. CalculateDir(SelectionCounter,SelectionAim);
  335. DeBounce = TRUE;
  336. }
  337. }
  338. //ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
  339. //º º
  340. //º User Selects team for Euro Championship competition º
  341. //º º
  342. //ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
  343. if ( BOX == USER_TEAM_SELECT_BOX && ButtonState != 0 && EUROuserSelection != (EUROnoOfMatchPlyrs-1) )
  344. {
  345. Animation_table[UserSelectTeamHandle].AnimationSpeed =
  346. WhichButton( ButtonState, 0.85);
  347. UserList[EUROuserSelection].team = EUROteamA;
  348. EURO96setup[EUROteamA].NoOfUsers++;
  349. EUROuserSelection++;
  350. SelectHighlight = -1;
  351. ChangeMenu = TEAM_SELECT;
  352. DeBounce = TRUE;
  353. }
  354. //ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
  355. //º º
  356. //º User wishes to add an extra user º
  357. //º º
  358. //ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
  359. if ( BOX == NOofUSERS_BOX && ButtonState != 0 )
  360. {
  361. if ( ButtonState==LEFT_BUTTON && EUROnoOfMatchPlyrs > 1 )
  362. {
  363. UserHighlight = -1;
  364. EUROnoOfMatchPlyrs--;
  365. Animation_table[NoOfUsersHandle].AnimationSpeed = -0.85;
  366. DeBounce = TRUE;
  367. }
  368. char users = CalculateMaxPlayers();
  369. if ( ButtonState==RIGHT_BUTTON && EUROnoOfMatchPlyrs < 16 &&
  370. (users > EUROnoOfMatchPlyrs || users >= 4 )
  371. )
  372. {
  373. UserHighlight = -1;
  374. EUROnoOfMatchPlyrs++;
  375. Animation_table[NoOfUsersHandle].AnimationSpeed = 0.85;
  376. DeBounce = TRUE;
  377. }
  378. }
  379. if ( BOX == PLAYER_SETUP_BOX && ButtonState != 0 )
  380. {
  381. Animation_table[PlayerSetupHandle].AnimationSpeed =
  382. WhichButton( ButtonState, 0.85);
  383. ChangeMenu = PLAYER_SETUP;
  384. DeBounce = TRUE;
  385. }
  386. //ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
  387. //º º
  388. //º User wishes to change to squad selection options º
  389. //º º
  390. //ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
  391. if ( BOX == FORMATION_SETUP_BOX && ButtonState != 0 )
  392. {
  393. Team = ConfigureTeamView();
  394. Animation_table[TeamSetupHandle].AnimationSpeed =
  395. WhichButton( ButtonState, 0.85);
  396. ChangeMenu = SQUAD_SELECT;
  397. DeBounce = TRUE;
  398. }
  399. if ( EUROgameType == EURO_network_game &&
  400. ( ( BOX == SELECT_TEAM_BOX && ButtonState != 0 ) ||
  401. ( Team_A!=-1 && Team_B!=-1)) )
  402. {
  403. Animation_table[PlayerSetupHandle].AnimationSpeed =
  404. WhichButton( ButtonState, 0.85);
  405. ChangeMenu = PLAYER_SETUP;
  406. if ( Team_A != -1 && Team_B != -1 )
  407. EURO_Did_I_ChooseTeams = No; // other user made team choice.
  408. else
  409. {
  410. EURO_Did_I_ChooseTeams = Yes; // you made team choice.
  411. Team_A = EUROteamA; // Send your choice of teams.
  412. Team_B = EUROteamB; // Send your choice of teams.
  413. SendTeamInfo();
  414. TickPause();
  415. TickPause();
  416. TickPause();
  417. DeBounce = TRUE;
  418. }
  419. EURO_NetSelectionMade = No; // player selection has not yet been made.
  420. }
  421. DisplayCountrySelectImages();
  422. DisplaySelectedTeam();
  423. UpdateSelectionPalettes();
  424. }
  425. //-----------------------------------------------------------------------------------------------
  426. }
  427. }
  428. //********************************************************************************************************************************
  429. void DisplayCountrySelectImages()
  430. {
  431. int width, height;
  432. if ( SelectionFlag != -1 )
  433. CopyFromBACKtoPSEUDObuffer( &FrontendPseudoDEFN, &FrontendBackgroundDEFN,
  434. 40, 219, 382, 102 );
  435. short Outline = (short)SelectionCounter/4;
  436. short index = (short)SelectionCounter*8;
  437. for ( int i=0; i < 8; i++ )
  438. {
  439. if ( CountryImageDEFN[ ( index+i) ].image_no != -1 )
  440. DrawIMAGE( &FrontendPseudoDEFN, &FrontendTextureDEFN,
  441. CountryImageDEFN[ (index+i) ].image_no+TSEL_IMGS,
  442. CountryImageDEFN[ (index+i) ].xposn,
  443. CountryImageDEFN[ (index+i) ].yposn+26,
  444. NO_BOX, spritecopy );
  445. }
  446. if ( SelectionSpeed == 0 )
  447. {
  448. ftable = FilterBuffer+(SelectFilterTBL[ (char)SelectFrame&31 ]);
  449. DrawIMAGE( &FrontendPseudoDEFN, &FrontendTextureDEFN,
  450. CNTY_OUTS+Outline,
  451. CountryOutlinePosnDEFN[Outline].xposn,
  452. CountryOutlinePosnDEFN[Outline].yposn,
  453. NO_BOX, spritefilter );
  454. }
  455. SelectionFlag = 0;
  456. AddToDumpList( 40, 219, 382, 102 );
  457. }
  458. //********************************************************************************************************************************
  459. char HaveNETteamsBeenChosen()
  460. {
  461. char TeamsChosen = No;
  462. if ( Team_A!=-1 && Team_B!=-1 ) // If neither Team_A and Team_B are -1 (initial setting), then
  463. // another net-user has chosen teams and pressed continue button.
  464. {
  465. EURO_Did_I_ChooseTeams = NO; // another user chose teams.
  466. EUROteamA = Team_A; // Setup other users choice of teams.
  467. EUROteamB = Team_B; // Setup other users choice of teams.
  468. TickPause();
  469. TeamsChosen = Yes;
  470. }
  471. return(TeamsChosen);
  472. }
  473. //***********************************************************************************************************