// export Heike , Omar , Gensher , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Gonzo , others , others2 , SavedUPF , Snake ; export AllPlayerPeople , SecondGroup , TeamHeike , TeamOmar , TeamBurlak , OtherTeam ; export Roth , Gossudarov , Burlak , Masha , Alliance_soldiers , Alliance_bazookers , Alliance_snipers , Alliance_sci , Alliance_engs , Alliance_mechs , Alliance_crane ; export All_depot , All_fac1 , All_fac2 , All_lab1 , All_lab2 , All_lab3 , All_Rubarracks , All_Ambarracks , All_bunkers , damaged_buildings , damaged_people , damaged_crane ; export testing , AllianceDestroyed , BurlakDestroyed , BurlakCountdown , ContaminationDialogueOn , ContaminationCutsceneHexes , ContaminationCutsceneSoldiers ; export Transport_whole , ArtMeasurement_done , EnableMovingToNextMap , cutscene_done ; export StrikeForce_humans , StrikeForce_drivers , StrikeForce_vehicles , StrikeForce_tigers ; export ArtTechDoneCount ; export OlafIsLeader , OswaldIsLeader , RalphIsLeader , SonyaIsLeader , AviradzeIsLeader , KowalskiIsLeader , EvelynIsLeader , SwanssonIsLeader , DwayneIsLeader , KhattamIsLeader , MakiseIsLeader , SnakeIsLeader , GensherIsLeader ; export OlafIsSupport , OswaldIsSupport , RalphIsSupport , SonyaIsSupport , AviradzeIsSupport , KowalskiIsSupport , EvelynIsSupport , SwanssonIsSupport , DwayneIsSupport , KhattamIsSupport , MakiseIsSupport , SnakeIsSupport ; export HeadScientist , SibLab , ATech_SibPlant , ATech_Beh , ATech_TimeLapse , ATech_Laser , ATech_SuperStim , ATech_SPBomb , ArtResearchCount , ArtResearchList , ArtInfo ; starting begin testing = false ;
   0: LD_ADDR_EXP 49
   4: PUSH
   5: LD_INT 0
   7: ST_TO_ADDR
// music_nat = 4 ;
   8: LD_ADDR_OWVAR 71
  12: PUSH
  13: LD_INT 4
  15: ST_TO_ADDR
// LoadPeople ;
  16: CALL 106 0 0
// PrepareBase ;
  20: CALL 4019 0 0
// Alliance ;
  24: CALL 7100 0 0
// AllianceDestroyed = 0 ;
  28: LD_ADDR_EXP 50
  32: PUSH
  33: LD_INT 0
  35: ST_TO_ADDR
// Russians ;
  36: CALL 8449 0 0
// BurlakDestroyed = 0 ;
  40: LD_ADDR_EXP 51
  44: PUSH
  45: LD_INT 0
  47: ST_TO_ADDR
// BurlakCountdown = [ 25 25$0 , 20 20$0 , 15 15$0 ] [ difficulty ] ;
  48: LD_ADDR_EXP 52
  52: PUSH
  53: LD_INT 52500
  55: PUSH
  56: LD_INT 42000
  58: PUSH
  59: LD_INT 31500
  61: PUSH
  62: EMPTY
  63: LIST
  64: LIST
  65: LIST
  66: PUSH
  67: LD_OWVAR 67
  71: ARRAY
  72: ST_TO_ADDR
// ContaminationDialogueOn = 0 ;
  73: LD_ADDR_EXP 53
  77: PUSH
  78: LD_INT 0
  80: ST_TO_ADDR
// HeadScientist = 0 ;
  81: LD_ADDR_EXP 90
  85: PUSH
  86: LD_INT 0
  88: ST_TO_ADDR
// ArtTechDoneCount = 0 ;
  89: LD_ADDR_EXP 64
  93: PUSH
  94: LD_INT 0
  96: ST_TO_ADDR
// Animals ;
  97: CALL 15066 0 0
// Intro ;
 101: CALL 9278 0 0
// end ;
 105: END
// function LoadPeople ; var temp , i , count , required , others_present ; begin
 106: LD_INT 0
 108: PPUSH
 109: PPUSH
 110: PPUSH
 111: PPUSH
 112: PPUSH
 113: PPUSH
// Randomize ;
 114: CALL_OW 10
// if testing then
 118: LD_EXP 49
 122: IFFALSE 1996
// begin Transport_whole = 1 ;
 124: LD_ADDR_EXP 56
 128: PUSH
 129: LD_INT 1
 131: ST_TO_ADDR
// ArtMeasurement_done = 1 ;
 132: LD_ADDR_EXP 57
 136: PUSH
 137: LD_INT 1
 139: ST_TO_ADDR
// ATech_SibPlant = 1 ;
 140: LD_ADDR_EXP 92
 144: PUSH
 145: LD_INT 1
 147: ST_TO_ADDR
// ATech_Beh = 1 ;
 148: LD_ADDR_EXP 93
 152: PUSH
 153: LD_INT 1
 155: ST_TO_ADDR
// ATech_TimeLapse = 1 ;
 156: LD_ADDR_EXP 94
 160: PUSH
 161: LD_INT 1
 163: ST_TO_ADDR
// ATech_Laser = 1 ;
 164: LD_ADDR_EXP 95
 168: PUSH
 169: LD_INT 1
 171: ST_TO_ADDR
// ATech_SuperStim = 1 ;
 172: LD_ADDR_EXP 96
 176: PUSH
 177: LD_INT 1
 179: ST_TO_ADDR
// ATech_SPBomb = 1 ;
 180: LD_ADDR_EXP 97
 184: PUSH
 185: LD_INT 1
 187: ST_TO_ADDR
// uc_side = 2 ;
 188: LD_ADDR_OWVAR 20
 192: PUSH
 193: LD_INT 2
 195: ST_TO_ADDR
// uc_nation = nation_arabian ;
 196: LD_ADDR_OWVAR 21
 200: PUSH
 201: LD_INT 2
 203: ST_TO_ADDR
// InitHc ;
 204: CALL_OW 19
// hc_class = class_soldier ;
 208: LD_ADDR_OWVAR 28
 212: PUSH
 213: LD_INT 1
 215: ST_TO_ADDR
// hc_attr = [ 10 , 12 ] ;
 216: LD_ADDR_OWVAR 29
 220: PUSH
 221: LD_INT 10
 223: PUSH
 224: LD_INT 12
 226: PUSH
 227: EMPTY
 228: LIST
 229: LIST
 230: ST_TO_ADDR
// hc_skills = [ 10 , 5 , 8 , 7 ] ;
 231: LD_ADDR_OWVAR 31
 235: PUSH
 236: LD_INT 10
 238: PUSH
 239: LD_INT 5
 241: PUSH
 242: LD_INT 8
 244: PUSH
 245: LD_INT 7
 247: PUSH
 248: EMPTY
 249: LIST
 250: LIST
 251: LIST
 252: LIST
 253: ST_TO_ADDR
// hc_sex = 2 ;
 254: LD_ADDR_OWVAR 27
 258: PUSH
 259: LD_INT 2
 261: ST_TO_ADDR
// hc_gallery = ru ;
 262: LD_ADDR_OWVAR 33
 266: PUSH
 267: LD_STRING ru
 269: ST_TO_ADDR
// hc_face_number = 24 ;
 270: LD_ADDR_OWVAR 34
 274: PUSH
 275: LD_INT 24
 277: ST_TO_ADDR
// hc_name = Heike ;
 278: LD_ADDR_OWVAR 26
 282: PUSH
 283: LD_STRING Heike
 285: ST_TO_ADDR
// Heike = CreateHuman ;
 286: LD_ADDR_EXP 1
 290: PUSH
 291: CALL_OW 44
 295: ST_TO_ADDR
// hc_class = class_soldier ;
 296: LD_ADDR_OWVAR 28
 300: PUSH
 301: LD_INT 1
 303: ST_TO_ADDR
// hc_attr = [ 12 , 11 ] ;
 304: LD_ADDR_OWVAR 29
 308: PUSH
 309: LD_INT 12
 311: PUSH
 312: LD_INT 11
 314: PUSH
 315: EMPTY
 316: LIST
 317: LIST
 318: ST_TO_ADDR
// hc_skills = [ 10 , 8 , 5 , 10 ] ;
 319: LD_ADDR_OWVAR 31
 323: PUSH
 324: LD_INT 10
 326: PUSH
 327: LD_INT 8
 329: PUSH
 330: LD_INT 5
 332: PUSH
 333: LD_INT 10
 335: PUSH
 336: EMPTY
 337: LIST
 338: LIST
 339: LIST
 340: LIST
 341: ST_TO_ADDR
// hc_sex = 1 ;
 342: LD_ADDR_OWVAR 27
 346: PUSH
 347: LD_INT 1
 349: ST_TO_ADDR
// hc_gallery = ru ;
 350: LD_ADDR_OWVAR 33
 354: PUSH
 355: LD_STRING ru
 357: ST_TO_ADDR
// hc_face_number = 46 ;
 358: LD_ADDR_OWVAR 34
 362: PUSH
 363: LD_INT 46
 365: ST_TO_ADDR
// hc_name = Omar Ali ;
 366: LD_ADDR_OWVAR 26
 370: PUSH
 371: LD_STRING Omar Ali
 373: ST_TO_ADDR
// Omar = CreateHuman ;
 374: LD_ADDR_EXP 2
 378: PUSH
 379: CALL_OW 44
 383: ST_TO_ADDR
// hc_class = class_soldier ;
 384: LD_ADDR_OWVAR 28
 388: PUSH
 389: LD_INT 1
 391: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
 392: LD_ADDR_OWVAR 29
 396: PUSH
 397: LD_INT 10
 399: PUSH
 400: LD_INT 10
 402: PUSH
 403: EMPTY
 404: LIST
 405: LIST
 406: ST_TO_ADDR
// hc_skills = [ 10 , 5 , 7 , 5 ] ;
 407: LD_ADDR_OWVAR 31
 411: PUSH
 412: LD_INT 10
 414: PUSH
 415: LD_INT 5
 417: PUSH
 418: LD_INT 7
 420: PUSH
 421: LD_INT 5
 423: PUSH
 424: EMPTY
 425: LIST
 426: LIST
 427: LIST
 428: LIST
 429: ST_TO_ADDR
// hc_sex = 1 ;
 430: LD_ADDR_OWVAR 27
 434: PUSH
 435: LD_INT 1
 437: ST_TO_ADDR
// hc_gallery = ru ;
 438: LD_ADDR_OWVAR 33
 442: PUSH
 443: LD_STRING ru
 445: ST_TO_ADDR
// hc_face_number = 26 ;
 446: LD_ADDR_OWVAR 34
 450: PUSH
 451: LD_INT 26
 453: ST_TO_ADDR
// hc_name = Dietrich Gensher ;
 454: LD_ADDR_OWVAR 26
 458: PUSH
 459: LD_STRING Dietrich Gensher
 461: ST_TO_ADDR
// Gensher = CreateHuman ;
 462: LD_ADDR_EXP 3
 466: PUSH
 467: CALL_OW 44
 471: ST_TO_ADDR
// hc_class = class_mechanic ;
 472: LD_ADDR_OWVAR 28
 476: PUSH
 477: LD_INT 3
 479: ST_TO_ADDR
// hc_attr = [ 12 , 10 ] ;
 480: LD_ADDR_OWVAR 29
 484: PUSH
 485: LD_INT 12
 487: PUSH
 488: LD_INT 10
 490: PUSH
 491: EMPTY
 492: LIST
 493: LIST
 494: ST_TO_ADDR
// hc_skills = [ 5 , 6 , 9 , 4 ] ;
 495: LD_ADDR_OWVAR 31
 499: PUSH
 500: LD_INT 5
 502: PUSH
 503: LD_INT 6
 505: PUSH
 506: LD_INT 9
 508: PUSH
 509: LD_INT 4
 511: PUSH
 512: EMPTY
 513: LIST
 514: LIST
 515: LIST
 516: LIST
 517: ST_TO_ADDR
// hc_sex = 1 ;
 518: LD_ADDR_OWVAR 27
 522: PUSH
 523: LD_INT 1
 525: ST_TO_ADDR
// hc_gallery = ar ;
 526: LD_ADDR_OWVAR 33
 530: PUSH
 531: LD_STRING ar
 533: ST_TO_ADDR
// hc_face_number = 2 ;
 534: LD_ADDR_OWVAR 34
 538: PUSH
 539: LD_INT 2
 541: ST_TO_ADDR
// hc_name = Olaf ;
 542: LD_ADDR_OWVAR 26
 546: PUSH
 547: LD_STRING Olaf
 549: ST_TO_ADDR
// Olaf = CreateHuman ;
 550: LD_ADDR_EXP 4
 554: PUSH
 555: CALL_OW 44
 559: ST_TO_ADDR
// hc_class = class_soldier ;
 560: LD_ADDR_OWVAR 28
 564: PUSH
 565: LD_INT 1
 567: ST_TO_ADDR
// hc_attr = [ 11 , 10 ] ;
 568: LD_ADDR_OWVAR 29
 572: PUSH
 573: LD_INT 11
 575: PUSH
 576: LD_INT 10
 578: PUSH
 579: EMPTY
 580: LIST
 581: LIST
 582: ST_TO_ADDR
// hc_skills = [ 10 , 6 , 6 , 4 ] ;
 583: LD_ADDR_OWVAR 31
 587: PUSH
 588: LD_INT 10
 590: PUSH
 591: LD_INT 6
 593: PUSH
 594: LD_INT 6
 596: PUSH
 597: LD_INT 4
 599: PUSH
 600: EMPTY
 601: LIST
 602: LIST
 603: LIST
 604: LIST
 605: ST_TO_ADDR
// hc_sex = 1 ;
 606: LD_ADDR_OWVAR 27
 610: PUSH
 611: LD_INT 1
 613: ST_TO_ADDR
// hc_gallery = ar ;
 614: LD_ADDR_OWVAR 33
 618: PUSH
 619: LD_STRING ar
 621: ST_TO_ADDR
// hc_face_number = 15 ;
 622: LD_ADDR_OWVAR 34
 626: PUSH
 627: LD_INT 15
 629: ST_TO_ADDR
// hc_name = Oswald ;
 630: LD_ADDR_OWVAR 26
 634: PUSH
 635: LD_STRING Oswald
 637: ST_TO_ADDR
// Oswald = CreateHuman ;
 638: LD_ADDR_EXP 5
 642: PUSH
 643: CALL_OW 44
 647: ST_TO_ADDR
// hc_class = class_mechanic ;
 648: LD_ADDR_OWVAR 28
 652: PUSH
 653: LD_INT 3
 655: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
 656: LD_ADDR_OWVAR 29
 660: PUSH
 661: LD_INT 10
 663: PUSH
 664: LD_INT 10
 666: PUSH
 667: EMPTY
 668: LIST
 669: LIST
 670: ST_TO_ADDR
// hc_skills = [ 8 , 5 , 10 , 6 ] ;
 671: LD_ADDR_OWVAR 31
 675: PUSH
 676: LD_INT 8
 678: PUSH
 679: LD_INT 5
 681: PUSH
 682: LD_INT 10
 684: PUSH
 685: LD_INT 6
 687: PUSH
 688: EMPTY
 689: LIST
 690: LIST
 691: LIST
 692: LIST
 693: ST_TO_ADDR
// hc_sex = 1 ;
 694: LD_ADDR_OWVAR 27
 698: PUSH
 699: LD_INT 1
 701: ST_TO_ADDR
// hc_gallery = ar ;
 702: LD_ADDR_OWVAR 33
 706: PUSH
 707: LD_STRING ar
 709: ST_TO_ADDR
// hc_face_number = 5 ;
 710: LD_ADDR_OWVAR 34
 714: PUSH
 715: LD_INT 5
 717: ST_TO_ADDR
// hc_name = Ralph ;
 718: LD_ADDR_OWVAR 26
 722: PUSH
 723: LD_STRING Ralph
 725: ST_TO_ADDR
// Ralph = CreateHuman ;
 726: LD_ADDR_EXP 6
 730: PUSH
 731: CALL_OW 44
 735: ST_TO_ADDR
// hc_class = class_scientistic ;
 736: LD_ADDR_OWVAR 28
 740: PUSH
 741: LD_INT 4
 743: ST_TO_ADDR
// hc_attr = [ 9 , 11 ] ;
 744: LD_ADDR_OWVAR 29
 748: PUSH
 749: LD_INT 9
 751: PUSH
 752: LD_INT 11
 754: PUSH
 755: EMPTY
 756: LIST
 757: LIST
 758: ST_TO_ADDR
// hc_skills = [ 5 , 6 , 9 , 10 ] ;
 759: LD_ADDR_OWVAR 31
 763: PUSH
 764: LD_INT 5
 766: PUSH
 767: LD_INT 6
 769: PUSH
 770: LD_INT 9
 772: PUSH
 773: LD_INT 10
 775: PUSH
 776: EMPTY
 777: LIST
 778: LIST
 779: LIST
 780: LIST
 781: ST_TO_ADDR
// hc_sex = 2 ;
 782: LD_ADDR_OWVAR 27
 786: PUSH
 787: LD_INT 2
 789: ST_TO_ADDR
// hc_gallery = ar ;
 790: LD_ADDR_OWVAR 33
 794: PUSH
 795: LD_STRING ar
 797: ST_TO_ADDR
// hc_face_number = 6 ;
 798: LD_ADDR_OWVAR 34
 802: PUSH
 803: LD_INT 6
 805: ST_TO_ADDR
// hc_name = Sonya ;
 806: LD_ADDR_OWVAR 26
 810: PUSH
 811: LD_STRING Sonya
 813: ST_TO_ADDR
// Sonya = CreateHuman ;
 814: LD_ADDR_EXP 7
 818: PUSH
 819: CALL_OW 44
 823: ST_TO_ADDR
// hc_class = class_scientistic ;
 824: LD_ADDR_OWVAR 28
 828: PUSH
 829: LD_INT 4
 831: ST_TO_ADDR
// hc_attr = [ 10 , 12 ] ;
 832: LD_ADDR_OWVAR 29
 836: PUSH
 837: LD_INT 10
 839: PUSH
 840: LD_INT 12
 842: PUSH
 843: EMPTY
 844: LIST
 845: LIST
 846: ST_TO_ADDR
// hc_skills = [ 5 , 6 , 7 , 10 ] ;
 847: LD_ADDR_OWVAR 31
 851: PUSH
 852: LD_INT 5
 854: PUSH
 855: LD_INT 6
 857: PUSH
 858: LD_INT 7
 860: PUSH
 861: LD_INT 10
 863: PUSH
 864: EMPTY
 865: LIST
 866: LIST
 867: LIST
 868: LIST
 869: ST_TO_ADDR
// hc_sex = 1 ;
 870: LD_ADDR_OWVAR 27
 874: PUSH
 875: LD_INT 1
 877: ST_TO_ADDR
// hc_gallery = ar_new ;
 878: LD_ADDR_OWVAR 33
 882: PUSH
 883: LD_STRING ar_new
 885: ST_TO_ADDR
// hc_face_number = 1 ;
 886: LD_ADDR_OWVAR 34
 890: PUSH
 891: LD_INT 1
 893: ST_TO_ADDR
// hc_name = Aviradze ;
 894: LD_ADDR_OWVAR 26
 898: PUSH
 899: LD_STRING Aviradze
 901: ST_TO_ADDR
// Aviradze = CreateHuman ;
 902: LD_ADDR_EXP 8
 906: PUSH
 907: CALL_OW 44
 911: ST_TO_ADDR
// hc_class = class_soldier ;
 912: LD_ADDR_OWVAR 28
 916: PUSH
 917: LD_INT 1
 919: ST_TO_ADDR
// hc_attr = [ 11 , 10 ] ;
 920: LD_ADDR_OWVAR 29
 924: PUSH
 925: LD_INT 11
 927: PUSH
 928: LD_INT 10
 930: PUSH
 931: EMPTY
 932: LIST
 933: LIST
 934: ST_TO_ADDR
// hc_skills = [ 9 , 6 , 7 , 4 ] ;
 935: LD_ADDR_OWVAR 31
 939: PUSH
 940: LD_INT 9
 942: PUSH
 943: LD_INT 6
 945: PUSH
 946: LD_INT 7
 948: PUSH
 949: LD_INT 4
 951: PUSH
 952: EMPTY
 953: LIST
 954: LIST
 955: LIST
 956: LIST
 957: ST_TO_ADDR
// hc_sex = 1 ;
 958: LD_ADDR_OWVAR 27
 962: PUSH
 963: LD_INT 1
 965: ST_TO_ADDR
// hc_gallery = ar_new ;
 966: LD_ADDR_OWVAR 33
 970: PUSH
 971: LD_STRING ar_new
 973: ST_TO_ADDR
// hc_face_number = 2 ;
 974: LD_ADDR_OWVAR 34
 978: PUSH
 979: LD_INT 2
 981: ST_TO_ADDR
// hc_name = Kowalski ;
 982: LD_ADDR_OWVAR 26
 986: PUSH
 987: LD_STRING Kowalski
 989: ST_TO_ADDR
// Kowalski = CreateHuman ;
 990: LD_ADDR_EXP 9
 994: PUSH
 995: CALL_OW 44
 999: ST_TO_ADDR
// hc_class = class_engineer ;
1000: LD_ADDR_OWVAR 28
1004: PUSH
1005: LD_INT 2
1007: ST_TO_ADDR
// hc_attr = [ 9 , 10 ] ;
1008: LD_ADDR_OWVAR 29
1012: PUSH
1013: LD_INT 9
1015: PUSH
1016: LD_INT 10
1018: PUSH
1019: EMPTY
1020: LIST
1021: LIST
1022: ST_TO_ADDR
// hc_skills = [ 6 , 10 , 7 , 6 ] ;
1023: LD_ADDR_OWVAR 31
1027: PUSH
1028: LD_INT 6
1030: PUSH
1031: LD_INT 10
1033: PUSH
1034: LD_INT 7
1036: PUSH
1037: LD_INT 6
1039: PUSH
1040: EMPTY
1041: LIST
1042: LIST
1043: LIST
1044: LIST
1045: ST_TO_ADDR
// hc_sex = 2 ;
1046: LD_ADDR_OWVAR 27
1050: PUSH
1051: LD_INT 2
1053: ST_TO_ADDR
// hc_gallery = ar_new ;
1054: LD_ADDR_OWVAR 33
1058: PUSH
1059: LD_STRING ar_new
1061: ST_TO_ADDR
// hc_face_number = 5 ;
1062: LD_ADDR_OWVAR 34
1066: PUSH
1067: LD_INT 5
1069: ST_TO_ADDR
// hc_name = Evelyn ;
1070: LD_ADDR_OWVAR 26
1074: PUSH
1075: LD_STRING Evelyn
1077: ST_TO_ADDR
// Evelyn = CreateHuman ;
1078: LD_ADDR_EXP 10
1082: PUSH
1083: CALL_OW 44
1087: ST_TO_ADDR
// hc_class = class_mechanic ;
1088: LD_ADDR_OWVAR 28
1092: PUSH
1093: LD_INT 3
1095: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
1096: LD_ADDR_OWVAR 29
1100: PUSH
1101: LD_INT 10
1103: PUSH
1104: LD_INT 10
1106: PUSH
1107: EMPTY
1108: LIST
1109: LIST
1110: ST_TO_ADDR
// hc_skills = [ 7 , 5 , 10 , 5 ] ;
1111: LD_ADDR_OWVAR 31
1115: PUSH
1116: LD_INT 7
1118: PUSH
1119: LD_INT 5
1121: PUSH
1122: LD_INT 10
1124: PUSH
1125: LD_INT 5
1127: PUSH
1128: EMPTY
1129: LIST
1130: LIST
1131: LIST
1132: LIST
1133: ST_TO_ADDR
// hc_sex = 1 ;
1134: LD_ADDR_OWVAR 27
1138: PUSH
1139: LD_INT 1
1141: ST_TO_ADDR
// hc_gallery = ar_new ;
1142: LD_ADDR_OWVAR 33
1146: PUSH
1147: LD_STRING ar_new
1149: ST_TO_ADDR
// hc_face_number = 31 ;
1150: LD_ADDR_OWVAR 34
1154: PUSH
1155: LD_INT 31
1157: ST_TO_ADDR
// hc_name = Swansson ;
1158: LD_ADDR_OWVAR 26
1162: PUSH
1163: LD_STRING Swansson
1165: ST_TO_ADDR
// Swansson = CreateHuman ;
1166: LD_ADDR_EXP 11
1170: PUSH
1171: CALL_OW 44
1175: ST_TO_ADDR
// hc_class = class_mechanic ;
1176: LD_ADDR_OWVAR 28
1180: PUSH
1181: LD_INT 3
1183: ST_TO_ADDR
// hc_attr = [ 10 , 11 ] ;
1184: LD_ADDR_OWVAR 29
1188: PUSH
1189: LD_INT 10
1191: PUSH
1192: LD_INT 11
1194: PUSH
1195: EMPTY
1196: LIST
1197: LIST
1198: ST_TO_ADDR
// hc_skills = [ 9 , 5 , 9 , 6 ] ;
1199: LD_ADDR_OWVAR 31
1203: PUSH
1204: LD_INT 9
1206: PUSH
1207: LD_INT 5
1209: PUSH
1210: LD_INT 9
1212: PUSH
1213: LD_INT 6
1215: PUSH
1216: EMPTY
1217: LIST
1218: LIST
1219: LIST
1220: LIST
1221: ST_TO_ADDR
// hc_sex = 1 ;
1222: LD_ADDR_OWVAR 27
1226: PUSH
1227: LD_INT 1
1229: ST_TO_ADDR
// hc_gallery = ar_new ;
1230: LD_ADDR_OWVAR 33
1234: PUSH
1235: LD_STRING ar_new
1237: ST_TO_ADDR
// hc_face_number = 13 ;
1238: LD_ADDR_OWVAR 34
1242: PUSH
1243: LD_INT 13
1245: ST_TO_ADDR
// hc_name = Dwayne ;
1246: LD_ADDR_OWVAR 26
1250: PUSH
1251: LD_STRING Dwayne
1253: ST_TO_ADDR
// Dwayne = CreateHuman ;
1254: LD_ADDR_EXP 12
1258: PUSH
1259: CALL_OW 44
1263: ST_TO_ADDR
// hc_class = class_scientistic ;
1264: LD_ADDR_OWVAR 28
1268: PUSH
1269: LD_INT 4
1271: ST_TO_ADDR
// hc_attr = [ 10 , 9 ] ;
1272: LD_ADDR_OWVAR 29
1276: PUSH
1277: LD_INT 10
1279: PUSH
1280: LD_INT 9
1282: PUSH
1283: EMPTY
1284: LIST
1285: LIST
1286: ST_TO_ADDR
// hc_skills = [ 4 , 6 , 5 , 9 ] ;
1287: LD_ADDR_OWVAR 31
1291: PUSH
1292: LD_INT 4
1294: PUSH
1295: LD_INT 6
1297: PUSH
1298: LD_INT 5
1300: PUSH
1301: LD_INT 9
1303: PUSH
1304: EMPTY
1305: LIST
1306: LIST
1307: LIST
1308: LIST
1309: ST_TO_ADDR
// hc_sex = 1 ;
1310: LD_ADDR_OWVAR 27
1314: PUSH
1315: LD_INT 1
1317: ST_TO_ADDR
// hc_gallery = us ;
1318: LD_ADDR_OWVAR 33
1322: PUSH
1323: LD_STRING us
1325: ST_TO_ADDR
// hc_face_number = 10 ;
1326: LD_ADDR_OWVAR 34
1330: PUSH
1331: LD_INT 10
1333: ST_TO_ADDR
// hc_name = Khattam ;
1334: LD_ADDR_OWVAR 26
1338: PUSH
1339: LD_STRING Khattam
1341: ST_TO_ADDR
// Khattam = CreateHuman ;
1342: LD_ADDR_EXP 13
1346: PUSH
1347: CALL_OW 44
1351: ST_TO_ADDR
// hc_class = class_scientistic ;
1352: LD_ADDR_OWVAR 28
1356: PUSH
1357: LD_INT 4
1359: ST_TO_ADDR
// hc_attr = [ 9 , 9 ] ;
1360: LD_ADDR_OWVAR 29
1364: PUSH
1365: LD_INT 9
1367: PUSH
1368: LD_INT 9
1370: PUSH
1371: EMPTY
1372: LIST
1373: LIST
1374: ST_TO_ADDR
// hc_skills = [ 4 , 8 , 8 , 10 ] ;
1375: LD_ADDR_OWVAR 31
1379: PUSH
1380: LD_INT 4
1382: PUSH
1383: LD_INT 8
1385: PUSH
1386: LD_INT 8
1388: PUSH
1389: LD_INT 10
1391: PUSH
1392: EMPTY
1393: LIST
1394: LIST
1395: LIST
1396: LIST
1397: ST_TO_ADDR
// hc_sex = 2 ;
1398: LD_ADDR_OWVAR 27
1402: PUSH
1403: LD_INT 2
1405: ST_TO_ADDR
// hc_gallery = ar_new ;
1406: LD_ADDR_OWVAR 33
1410: PUSH
1411: LD_STRING ar_new
1413: ST_TO_ADDR
// hc_face_number = 34 ;
1414: LD_ADDR_OWVAR 34
1418: PUSH
1419: LD_INT 34
1421: ST_TO_ADDR
// hc_name = Makise ;
1422: LD_ADDR_OWVAR 26
1426: PUSH
1427: LD_STRING Makise
1429: ST_TO_ADDR
// Makise = CreateHuman ;
1430: LD_ADDR_EXP 14
1434: PUSH
1435: CALL_OW 44
1439: ST_TO_ADDR
// hc_class = class_soldier ;
1440: LD_ADDR_OWVAR 28
1444: PUSH
1445: LD_INT 1
1447: ST_TO_ADDR
// hc_attr = [ 13 , 12 ] ;
1448: LD_ADDR_OWVAR 29
1452: PUSH
1453: LD_INT 13
1455: PUSH
1456: LD_INT 12
1458: PUSH
1459: EMPTY
1460: LIST
1461: LIST
1462: ST_TO_ADDR
// hc_skills = [ 10 , 4 , 7 , 7 ] ;
1463: LD_ADDR_OWVAR 31
1467: PUSH
1468: LD_INT 10
1470: PUSH
1471: LD_INT 4
1473: PUSH
1474: LD_INT 7
1476: PUSH
1477: LD_INT 7
1479: PUSH
1480: EMPTY
1481: LIST
1482: LIST
1483: LIST
1484: LIST
1485: ST_TO_ADDR
// hc_sex = 1 ;
1486: LD_ADDR_OWVAR 27
1490: PUSH
1491: LD_INT 1
1493: ST_TO_ADDR
// hc_gallery = ar_new ;
1494: LD_ADDR_OWVAR 33
1498: PUSH
1499: LD_STRING ar_new
1501: ST_TO_ADDR
// hc_face_number = 36 ;
1502: LD_ADDR_OWVAR 34
1506: PUSH
1507: LD_INT 36
1509: ST_TO_ADDR
// hc_name = Iroquois Pliskin ;
1510: LD_ADDR_OWVAR 26
1514: PUSH
1515: LD_STRING Iroquois Pliskin
1517: ST_TO_ADDR
// Snake = CreateHuman ;
1518: LD_ADDR_EXP 19
1522: PUSH
1523: CALL_OW 44
1527: ST_TO_ADDR
// uc_nation = nation_nature ;
1528: LD_ADDR_OWVAR 21
1532: PUSH
1533: LD_INT 0
1535: ST_TO_ADDR
// hc_class = class_apeman_soldier ;
1536: LD_ADDR_OWVAR 28
1540: PUSH
1541: LD_INT 15
1543: ST_TO_ADDR
// hc_attr = [ 16 , 12 ] ;
1544: LD_ADDR_OWVAR 29
1548: PUSH
1549: LD_INT 16
1551: PUSH
1552: LD_INT 12
1554: PUSH
1555: EMPTY
1556: LIST
1557: LIST
1558: ST_TO_ADDR
// hc_skills = [ 10 , 10 , 1 , 1 ] ;
1559: LD_ADDR_OWVAR 31
1563: PUSH
1564: LD_INT 10
1566: PUSH
1567: LD_INT 10
1569: PUSH
1570: LD_INT 1
1572: PUSH
1573: LD_INT 1
1575: PUSH
1576: EMPTY
1577: LIST
1578: LIST
1579: LIST
1580: LIST
1581: ST_TO_ADDR
// hc_sex = 1 ;
1582: LD_ADDR_OWVAR 27
1586: PUSH
1587: LD_INT 1
1589: ST_TO_ADDR
// hc_gallery =  ;
1590: LD_ADDR_OWVAR 33
1594: PUSH
1595: LD_STRING 
1597: ST_TO_ADDR
// hc_name = Gonzo ;
1598: LD_ADDR_OWVAR 26
1602: PUSH
1603: LD_STRING Gonzo
1605: ST_TO_ADDR
// Gonzo = CreateHuman ;
1606: LD_ADDR_EXP 15
1610: PUSH
1611: CALL_OW 44
1615: ST_TO_ADDR
// uc_nation = nation_arabian ;
1616: LD_ADDR_OWVAR 21
1620: PUSH
1621: LD_INT 2
1623: ST_TO_ADDR
// TeamHeike = [ Heike , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Snake , Gensher , Gonzo ] ;
1624: LD_ADDR_EXP 22
1628: PUSH
1629: LD_EXP 1
1633: PUSH
1634: LD_EXP 4
1638: PUSH
1639: LD_EXP 5
1643: PUSH
1644: LD_EXP 6
1648: PUSH
1649: LD_EXP 7
1653: PUSH
1654: LD_EXP 8
1658: PUSH
1659: LD_EXP 9
1663: PUSH
1664: LD_EXP 19
1668: PUSH
1669: LD_EXP 3
1673: PUSH
1674: LD_EXP 15
1678: PUSH
1679: EMPTY
1680: LIST
1681: LIST
1682: LIST
1683: LIST
1684: LIST
1685: LIST
1686: LIST
1687: LIST
1688: LIST
1689: LIST
1690: ST_TO_ADDR
// TeamOmar = [ Omar , Evelyn , Swansson , Dwayne , Khattam , Makise ] ;
1691: LD_ADDR_EXP 23
1695: PUSH
1696: LD_EXP 2
1700: PUSH
1701: LD_EXP 10
1705: PUSH
1706: LD_EXP 11
1710: PUSH
1711: LD_EXP 12
1715: PUSH
1716: LD_EXP 13
1720: PUSH
1721: LD_EXP 14
1725: PUSH
1726: EMPTY
1727: LIST
1728: LIST
1729: LIST
1730: LIST
1731: LIST
1732: LIST
1733: ST_TO_ADDR
// InitHc ;
1734: CALL_OW 19
// others = [ ] ;
1738: LD_ADDR_EXP 16
1742: PUSH
1743: EMPTY
1744: ST_TO_ADDR
// for i = 1 to 7 do
1745: LD_ADDR_VAR 0 3
1749: PUSH
1750: DOUBLE
1751: LD_INT 1
1753: DEC
1754: ST_TO_ADDR
1755: LD_INT 7
1757: PUSH
1758: FOR_TO
1759: IFFALSE 1789
// begin PrepareSoldier ( false , 7 ) ;
1761: LD_INT 0
1763: PPUSH
1764: LD_INT 7
1766: PPUSH
1767: CALL_OW 381
// others = others ^ createhuman ;
1771: LD_ADDR_EXP 16
1775: PUSH
1776: LD_EXP 16
1780: PUSH
1781: CALL_OW 44
1785: ADD
1786: ST_TO_ADDR
// end ;
1787: GO 1758
1789: POP
1790: POP
// for i = 1 to 7 do
1791: LD_ADDR_VAR 0 3
1795: PUSH
1796: DOUBLE
1797: LD_INT 1
1799: DEC
1800: ST_TO_ADDR
1801: LD_INT 7
1803: PUSH
1804: FOR_TO
1805: IFFALSE 1835
// begin PrepareMechanic ( false , 7 ) ;
1807: LD_INT 0
1809: PPUSH
1810: LD_INT 7
1812: PPUSH
1813: CALL_OW 383
// others = others ^ createhuman ;
1817: LD_ADDR_EXP 16
1821: PUSH
1822: LD_EXP 16
1826: PUSH
1827: CALL_OW 44
1831: ADD
1832: ST_TO_ADDR
// end ;
1833: GO 1804
1835: POP
1836: POP
// TeamOmar = TeamOmar ^ others ;
1837: LD_ADDR_EXP 23
1841: PUSH
1842: LD_EXP 23
1846: PUSH
1847: LD_EXP 16
1851: ADD
1852: ST_TO_ADDR
// others = [ ] ;
1853: LD_ADDR_EXP 16
1857: PUSH
1858: EMPTY
1859: ST_TO_ADDR
// PrepareScientist ( false , 7 ) ;
1860: LD_INT 0
1862: PPUSH
1863: LD_INT 7
1865: PPUSH
1866: CALL_OW 384
// others = others ^ createhuman ;
1870: LD_ADDR_EXP 16
1874: PUSH
1875: LD_EXP 16
1879: PUSH
1880: CALL_OW 44
1884: ADD
1885: ST_TO_ADDR
// for i = 1 to 2 do
1886: LD_ADDR_VAR 0 3
1890: PUSH
1891: DOUBLE
1892: LD_INT 1
1894: DEC
1895: ST_TO_ADDR
1896: LD_INT 2
1898: PUSH
1899: FOR_TO
1900: IFFALSE 1930
// begin PrepareSoldier ( false , 7 ) ;
1902: LD_INT 0
1904: PPUSH
1905: LD_INT 7
1907: PPUSH
1908: CALL_OW 381
// others = others ^ createhuman ;
1912: LD_ADDR_EXP 16
1916: PUSH
1917: LD_EXP 16
1921: PUSH
1922: CALL_OW 44
1926: ADD
1927: ST_TO_ADDR
// end ;
1928: GO 1899
1930: POP
1931: POP
// for i = 1 to 2 do
1932: LD_ADDR_VAR 0 3
1936: PUSH
1937: DOUBLE
1938: LD_INT 1
1940: DEC
1941: ST_TO_ADDR
1942: LD_INT 2
1944: PUSH
1945: FOR_TO
1946: IFFALSE 1976
// begin PrepareMechanic ( false , 7 ) ;
1948: LD_INT 0
1950: PPUSH
1951: LD_INT 7
1953: PPUSH
1954: CALL_OW 383
// others = others ^ createhuman ;
1958: LD_ADDR_EXP 16
1962: PUSH
1963: LD_EXP 16
1967: PUSH
1968: CALL_OW 44
1972: ADD
1973: ST_TO_ADDR
// end ;
1974: GO 1945
1976: POP
1977: POP
// TeamHeike = TeamHeike ^ others ;
1978: LD_ADDR_EXP 22
1982: PUSH
1983: LD_EXP 22
1987: PUSH
1988: LD_EXP 16
1992: ADD
1993: ST_TO_ADDR
// end else
1994: GO 3722
// begin uc_side = 2 ;
1996: LD_ADDR_OWVAR 20
2000: PUSH
2001: LD_INT 2
2003: ST_TO_ADDR
// uc_nation = nation_arabian ;
2004: LD_ADDR_OWVAR 21
2008: PUSH
2009: LD_INT 2
2011: ST_TO_ADDR
// Heike = LoadCharacter ( Heike_14_cont2 , 0 , 0 ) ;
2012: LD_ADDR_EXP 1
2016: PUSH
2017: LD_STRING Heike_14_cont2
2019: PPUSH
2020: LD_INT 0
2022: PPUSH
2023: LD_INT 0
2025: PPUSH
2026: CALL_OW 527
2030: ST_TO_ADDR
// Omar = LoadCharacter ( Omar_14 , 0 , 0 ) ;
2031: LD_ADDR_EXP 2
2035: PUSH
2036: LD_STRING Omar_14
2038: PPUSH
2039: LD_INT 0
2041: PPUSH
2042: LD_INT 0
2044: PPUSH
2045: CALL_OW 527
2049: ST_TO_ADDR
// Gensher = LoadCharacter ( Gensher_14_cont2 , 0 , 0 ) ;
2050: LD_ADDR_EXP 3
2054: PUSH
2055: LD_STRING Gensher_14_cont2
2057: PPUSH
2058: LD_INT 0
2060: PPUSH
2061: LD_INT 0
2063: PPUSH
2064: CALL_OW 527
2068: ST_TO_ADDR
// Snake = LoadCharacter ( Snake_14_cont2 , 0 , 0 ) ;
2069: LD_ADDR_EXP 19
2073: PUSH
2074: LD_STRING Snake_14_cont2
2076: PPUSH
2077: LD_INT 0
2079: PPUSH
2080: LD_INT 0
2082: PPUSH
2083: CALL_OW 527
2087: ST_TO_ADDR
// Olaf = LoadCharacter ( Olaf_14_cont2 , 0 , 0 ) ;
2088: LD_ADDR_EXP 4
2092: PUSH
2093: LD_STRING Olaf_14_cont2
2095: PPUSH
2096: LD_INT 0
2098: PPUSH
2099: LD_INT 0
2101: PPUSH
2102: CALL_OW 527
2106: ST_TO_ADDR
// Oswald = LoadCharacter ( Oswald_14_cont2 , 0 , 0 ) ;
2107: LD_ADDR_EXP 5
2111: PUSH
2112: LD_STRING Oswald_14_cont2
2114: PPUSH
2115: LD_INT 0
2117: PPUSH
2118: LD_INT 0
2120: PPUSH
2121: CALL_OW 527
2125: ST_TO_ADDR
// Ralph = LoadCharacter ( Ralph_14_cont2 , 0 , 0 ) ;
2126: LD_ADDR_EXP 6
2130: PUSH
2131: LD_STRING Ralph_14_cont2
2133: PPUSH
2134: LD_INT 0
2136: PPUSH
2137: LD_INT 0
2139: PPUSH
2140: CALL_OW 527
2144: ST_TO_ADDR
// Sonya = LoadCharacter ( Sonya_14_cont2 , 0 , 0 ) ;
2145: LD_ADDR_EXP 7
2149: PUSH
2150: LD_STRING Sonya_14_cont2
2152: PPUSH
2153: LD_INT 0
2155: PPUSH
2156: LD_INT 0
2158: PPUSH
2159: CALL_OW 527
2163: ST_TO_ADDR
// Aviradze = LoadCharacter ( Aviradze_14_cont2 , 0 , 0 ) ;
2164: LD_ADDR_EXP 8
2168: PUSH
2169: LD_STRING Aviradze_14_cont2
2171: PPUSH
2172: LD_INT 0
2174: PPUSH
2175: LD_INT 0
2177: PPUSH
2178: CALL_OW 527
2182: ST_TO_ADDR
// Kowalski = LoadCharacter ( Kowalski_14_cont2 , 0 , 0 ) ;
2183: LD_ADDR_EXP 9
2187: PUSH
2188: LD_STRING Kowalski_14_cont2
2190: PPUSH
2191: LD_INT 0
2193: PPUSH
2194: LD_INT 0
2196: PPUSH
2197: CALL_OW 527
2201: ST_TO_ADDR
// Evelyn = LoadCharacter ( Evelyn_14_cont2 , 0 , 0 ) ;
2202: LD_ADDR_EXP 10
2206: PUSH
2207: LD_STRING Evelyn_14_cont2
2209: PPUSH
2210: LD_INT 0
2212: PPUSH
2213: LD_INT 0
2215: PPUSH
2216: CALL_OW 527
2220: ST_TO_ADDR
// Swansson = LoadCharacter ( Swansson_14_cont2 , 0 , 0 ) ;
2221: LD_ADDR_EXP 11
2225: PUSH
2226: LD_STRING Swansson_14_cont2
2228: PPUSH
2229: LD_INT 0
2231: PPUSH
2232: LD_INT 0
2234: PPUSH
2235: CALL_OW 527
2239: ST_TO_ADDR
// Dwayne = LoadCharacter ( Dwayne_14_cont2 , 0 , 0 ) ;
2240: LD_ADDR_EXP 12
2244: PUSH
2245: LD_STRING Dwayne_14_cont2
2247: PPUSH
2248: LD_INT 0
2250: PPUSH
2251: LD_INT 0
2253: PPUSH
2254: CALL_OW 527
2258: ST_TO_ADDR
// Khattam = LoadCharacter ( Khattam_14_cont2 , 0 , 0 ) ;
2259: LD_ADDR_EXP 13
2263: PUSH
2264: LD_STRING Khattam_14_cont2
2266: PPUSH
2267: LD_INT 0
2269: PPUSH
2270: LD_INT 0
2272: PPUSH
2273: CALL_OW 527
2277: ST_TO_ADDR
// Makise = LoadCharacter ( Makise_14_cont2 , 0 , 0 ) ;
2278: LD_ADDR_EXP 14
2282: PUSH
2283: LD_STRING Makise_14_cont2
2285: PPUSH
2286: LD_INT 0
2288: PPUSH
2289: LD_INT 0
2291: PPUSH
2292: CALL_OW 527
2296: ST_TO_ADDR
// Gonzo = LoadCharacter ( Gonzo_14_cont2 , 0 , 0 ) ;
2297: LD_ADDR_EXP 15
2301: PUSH
2302: LD_STRING Gonzo_14_cont2
2304: PPUSH
2305: LD_INT 0
2307: PPUSH
2308: LD_INT 0
2310: PPUSH
2311: CALL_OW 527
2315: ST_TO_ADDR
// others = CreateCharacterSet ( Others_14_cont2 ) ;
2316: LD_ADDR_EXP 16
2320: PUSH
2321: LD_STRING Others_14_cont2
2323: PPUSH
2324: CALL_OW 31
2328: ST_TO_ADDR
// SavedUPF = CreateCharacterSet ( UPF_14_cont2 ) ;
2329: LD_ADDR_EXP 18
2333: PUSH
2334: LD_STRING UPF_14_cont2
2336: PPUSH
2337: CALL_OW 31
2341: ST_TO_ADDR
// TeamHeike = [ Heike , Gensher , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Gonzo , Snake ] ^ others diff 0 ;
2342: LD_ADDR_EXP 22
2346: PUSH
2347: LD_EXP 1
2351: PUSH
2352: LD_EXP 3
2356: PUSH
2357: LD_EXP 4
2361: PUSH
2362: LD_EXP 5
2366: PUSH
2367: LD_EXP 6
2371: PUSH
2372: LD_EXP 7
2376: PUSH
2377: LD_EXP 8
2381: PUSH
2382: LD_EXP 9
2386: PUSH
2387: LD_EXP 10
2391: PUSH
2392: LD_EXP 11
2396: PUSH
2397: LD_EXP 12
2401: PUSH
2402: LD_EXP 13
2406: PUSH
2407: LD_EXP 14
2411: PUSH
2412: LD_EXP 15
2416: PUSH
2417: LD_EXP 19
2421: PUSH
2422: EMPTY
2423: LIST
2424: LIST
2425: LIST
2426: LIST
2427: LIST
2428: LIST
2429: LIST
2430: LIST
2431: LIST
2432: LIST
2433: LIST
2434: LIST
2435: LIST
2436: LIST
2437: LIST
2438: PUSH
2439: LD_EXP 16
2443: ADD
2444: PUSH
2445: LD_INT 0
2447: DIFF
2448: ST_TO_ADDR
// TeamOmar = Omar ;
2449: LD_ADDR_EXP 23
2453: PUSH
2454: LD_EXP 2
2458: ST_TO_ADDR
// if TestVariable ( Olaf_Escort_14_cont ) then
2459: LD_STRING Olaf_Escort_14_cont
2461: PPUSH
2462: CALL_OW 27
2466: IFFALSE 2484
// TeamOmar = TeamOmar ^ Olaf ;
2468: LD_ADDR_EXP 23
2472: PUSH
2473: LD_EXP 23
2477: PUSH
2478: LD_EXP 4
2482: ADD
2483: ST_TO_ADDR
// if TestVariable ( Oswald_Escort_14_cont ) then
2484: LD_STRING Oswald_Escort_14_cont
2486: PPUSH
2487: CALL_OW 27
2491: IFFALSE 2509
// TeamOmar = TeamOmar ^ Oswald ;
2493: LD_ADDR_EXP 23
2497: PUSH
2498: LD_EXP 23
2502: PUSH
2503: LD_EXP 5
2507: ADD
2508: ST_TO_ADDR
// if TestVariable ( Ralph_Escort_14_cont ) then
2509: LD_STRING Ralph_Escort_14_cont
2511: PPUSH
2512: CALL_OW 27
2516: IFFALSE 2534
// TeamOmar = TeamOmar ^ Ralph ;
2518: LD_ADDR_EXP 23
2522: PUSH
2523: LD_EXP 23
2527: PUSH
2528: LD_EXP 6
2532: ADD
2533: ST_TO_ADDR
// if TestVariable ( Sonya_Escort_14_cont ) then
2534: LD_STRING Sonya_Escort_14_cont
2536: PPUSH
2537: CALL_OW 27
2541: IFFALSE 2559
// TeamOmar = TeamOmar ^ Sonya ;
2543: LD_ADDR_EXP 23
2547: PUSH
2548: LD_EXP 23
2552: PUSH
2553: LD_EXP 7
2557: ADD
2558: ST_TO_ADDR
// if TestVariable ( Aviradze_Escort_14_cont ) then
2559: LD_STRING Aviradze_Escort_14_cont
2561: PPUSH
2562: CALL_OW 27
2566: IFFALSE 2584
// TeamOmar = TeamOmar ^ Aviradze ;
2568: LD_ADDR_EXP 23
2572: PUSH
2573: LD_EXP 23
2577: PUSH
2578: LD_EXP 8
2582: ADD
2583: ST_TO_ADDR
// if TestVariable ( Kowalski_Escort_14_cont ) then
2584: LD_STRING Kowalski_Escort_14_cont
2586: PPUSH
2587: CALL_OW 27
2591: IFFALSE 2609
// TeamOmar = TeamOmar ^ Kowalski ;
2593: LD_ADDR_EXP 23
2597: PUSH
2598: LD_EXP 23
2602: PUSH
2603: LD_EXP 9
2607: ADD
2608: ST_TO_ADDR
// if TestVariable ( Evelyn_Escort_14_cont ) then
2609: LD_STRING Evelyn_Escort_14_cont
2611: PPUSH
2612: CALL_OW 27
2616: IFFALSE 2634
// TeamOmar = TeamOmar ^ Evelyn ;
2618: LD_ADDR_EXP 23
2622: PUSH
2623: LD_EXP 23
2627: PUSH
2628: LD_EXP 10
2632: ADD
2633: ST_TO_ADDR
// if TestVariable ( Swansson_Escort_14_cont ) then
2634: LD_STRING Swansson_Escort_14_cont
2636: PPUSH
2637: CALL_OW 27
2641: IFFALSE 2659
// TeamOmar = TeamOmar ^ Swansson ;
2643: LD_ADDR_EXP 23
2647: PUSH
2648: LD_EXP 23
2652: PUSH
2653: LD_EXP 11
2657: ADD
2658: ST_TO_ADDR
// if TestVariable ( Dwayne_Escort_14_cont ) then
2659: LD_STRING Dwayne_Escort_14_cont
2661: PPUSH
2662: CALL_OW 27
2666: IFFALSE 2684
// TeamOmar = TeamOmar ^ Dwayne ;
2668: LD_ADDR_EXP 23
2672: PUSH
2673: LD_EXP 23
2677: PUSH
2678: LD_EXP 12
2682: ADD
2683: ST_TO_ADDR
// if TestVariable ( Khattam_Escort_14_cont ) then
2684: LD_STRING Khattam_Escort_14_cont
2686: PPUSH
2687: CALL_OW 27
2691: IFFALSE 2709
// TeamOmar = TeamOmar ^ Khattam ;
2693: LD_ADDR_EXP 23
2697: PUSH
2698: LD_EXP 23
2702: PUSH
2703: LD_EXP 13
2707: ADD
2708: ST_TO_ADDR
// if TestVariable ( Makise_Escort_14_cont ) then
2709: LD_STRING Makise_Escort_14_cont
2711: PPUSH
2712: CALL_OW 27
2716: IFFALSE 2734
// TeamOmar = TeamOmar ^ Makise ;
2718: LD_ADDR_EXP 23
2722: PUSH
2723: LD_EXP 23
2727: PUSH
2728: LD_EXP 14
2732: ADD
2733: ST_TO_ADDR
// if not TestVariable ( Transport_Teleported_14_cont ) then
2734: LD_STRING Transport_Teleported_14_cont
2736: PPUSH
2737: CALL_OW 27
2741: NOT
2742: IFFALSE 2760
// TeamOmar = TeamOmar ^ Snake ;
2744: LD_ADDR_EXP 23
2748: PUSH
2749: LD_EXP 23
2753: PUSH
2754: LD_EXP 19
2758: ADD
2759: ST_TO_ADDR
// others2 = [ ] ;
2760: LD_ADDR_EXP 17
2764: PUSH
2765: EMPTY
2766: ST_TO_ADDR
// others2 = CreateCharacterSet ( convoy_others_14_cont2 ) ;
2767: LD_ADDR_EXP 17
2771: PUSH
2772: LD_STRING convoy_others_14_cont2
2774: PPUSH
2775: CALL_OW 31
2779: ST_TO_ADDR
// if others2 = [ ] then
2780: LD_EXP 17
2784: PUSH
2785: EMPTY
2786: EQUAL
2787: IFFALSE 2802
// others2 = CreateCharacterSet ( Others_Escort_14_cont ) ;
2789: LD_ADDR_EXP 17
2793: PUSH
2794: LD_STRING Others_Escort_14_cont
2796: PPUSH
2797: CALL_OW 31
2801: ST_TO_ADDR
// TeamOmar = TeamOmar ^ others2 ;
2802: LD_ADDR_EXP 23
2806: PUSH
2807: LD_EXP 23
2811: PUSH
2812: LD_EXP 17
2816: ADD
2817: ST_TO_ADDR
// TeamHeike = TeamHeike diff TeamOmar ;
2818: LD_ADDR_EXP 22
2822: PUSH
2823: LD_EXP 22
2827: PUSH
2828: LD_EXP 23
2832: DIFF
2833: ST_TO_ADDR
// if Olaf = 0 then
2834: LD_EXP 4
2838: PUSH
2839: LD_INT 0
2841: EQUAL
2842: IFFALSE 2879
// begin Olaf = LoadCharacter ( Olaf_14_not_sel , 0 , 0 ) ;
2844: LD_ADDR_EXP 4
2848: PUSH
2849: LD_STRING Olaf_14_not_sel
2851: PPUSH
2852: LD_INT 0
2854: PPUSH
2855: LD_INT 0
2857: PPUSH
2858: CALL_OW 527
2862: ST_TO_ADDR
// TeamOmar = TeamOmar ^ Olaf ;
2863: LD_ADDR_EXP 23
2867: PUSH
2868: LD_EXP 23
2872: PUSH
2873: LD_EXP 4
2877: ADD
2878: ST_TO_ADDR
// end ; if Oswald = 0 then
2879: LD_EXP 5
2883: PUSH
2884: LD_INT 0
2886: EQUAL
2887: IFFALSE 2924
// begin Oswald = LoadCharacter ( Oswald_14_not_sel , 0 , 0 ) ;
2889: LD_ADDR_EXP 5
2893: PUSH
2894: LD_STRING Oswald_14_not_sel
2896: PPUSH
2897: LD_INT 0
2899: PPUSH
2900: LD_INT 0
2902: PPUSH
2903: CALL_OW 527
2907: ST_TO_ADDR
// TeamOmar = TeamOmar ^ Oswald ;
2908: LD_ADDR_EXP 23
2912: PUSH
2913: LD_EXP 23
2917: PUSH
2918: LD_EXP 5
2922: ADD
2923: ST_TO_ADDR
// end ; if Ralph = 0 then
2924: LD_EXP 6
2928: PUSH
2929: LD_INT 0
2931: EQUAL
2932: IFFALSE 2969
// begin Ralph = LoadCharacter ( Ralph_14_not_sel , 0 , 0 ) ;
2934: LD_ADDR_EXP 6
2938: PUSH
2939: LD_STRING Ralph_14_not_sel
2941: PPUSH
2942: LD_INT 0
2944: PPUSH
2945: LD_INT 0
2947: PPUSH
2948: CALL_OW 527
2952: ST_TO_ADDR
// TeamOmar = TeamOmar ^ Ralph ;
2953: LD_ADDR_EXP 23
2957: PUSH
2958: LD_EXP 23
2962: PUSH
2963: LD_EXP 6
2967: ADD
2968: ST_TO_ADDR
// end ; if Sonya = 0 then
2969: LD_EXP 7
2973: PUSH
2974: LD_INT 0
2976: EQUAL
2977: IFFALSE 3014
// begin Sonya = LoadCharacter ( Sonya_14_not_sel , 0 , 0 ) ;
2979: LD_ADDR_EXP 7
2983: PUSH
2984: LD_STRING Sonya_14_not_sel
2986: PPUSH
2987: LD_INT 0
2989: PPUSH
2990: LD_INT 0
2992: PPUSH
2993: CALL_OW 527
2997: ST_TO_ADDR
// TeamOmar = TeamOmar ^ Sonya ;
2998: LD_ADDR_EXP 23
3002: PUSH
3003: LD_EXP 23
3007: PUSH
3008: LD_EXP 7
3012: ADD
3013: ST_TO_ADDR
// end ; if Aviradze = 0 then
3014: LD_EXP 8
3018: PUSH
3019: LD_INT 0
3021: EQUAL
3022: IFFALSE 3059
// begin Aviradze = LoadCharacter ( Aviradze_14_not_sel , 0 , 0 ) ;
3024: LD_ADDR_EXP 8
3028: PUSH
3029: LD_STRING Aviradze_14_not_sel
3031: PPUSH
3032: LD_INT 0
3034: PPUSH
3035: LD_INT 0
3037: PPUSH
3038: CALL_OW 527
3042: ST_TO_ADDR
// TeamOmar = TeamOmar ^ Aviradze ;
3043: LD_ADDR_EXP 23
3047: PUSH
3048: LD_EXP 23
3052: PUSH
3053: LD_EXP 8
3057: ADD
3058: ST_TO_ADDR
// end ; if Kowalski = 0 then
3059: LD_EXP 9
3063: PUSH
3064: LD_INT 0
3066: EQUAL
3067: IFFALSE 3104
// begin Kowalski = LoadCharacter ( Kowalski_14_not_sel , 0 , 0 ) ;
3069: LD_ADDR_EXP 9
3073: PUSH
3074: LD_STRING Kowalski_14_not_sel
3076: PPUSH
3077: LD_INT 0
3079: PPUSH
3080: LD_INT 0
3082: PPUSH
3083: CALL_OW 527
3087: ST_TO_ADDR
// TeamOmar = TeamOmar ^ Kowalski ;
3088: LD_ADDR_EXP 23
3092: PUSH
3093: LD_EXP 23
3097: PUSH
3098: LD_EXP 9
3102: ADD
3103: ST_TO_ADDR
// end ; if Evelyn = 0 then
3104: LD_EXP 10
3108: PUSH
3109: LD_INT 0
3111: EQUAL
3112: IFFALSE 3149
// begin Evelyn = LoadCharacter ( Evelyn_14_not_sel , 0 , 0 ) ;
3114: LD_ADDR_EXP 10
3118: PUSH
3119: LD_STRING Evelyn_14_not_sel
3121: PPUSH
3122: LD_INT 0
3124: PPUSH
3125: LD_INT 0
3127: PPUSH
3128: CALL_OW 527
3132: ST_TO_ADDR
// TeamOmar = TeamOmar ^ Evelyn ;
3133: LD_ADDR_EXP 23
3137: PUSH
3138: LD_EXP 23
3142: PUSH
3143: LD_EXP 10
3147: ADD
3148: ST_TO_ADDR
// end ; if Swansson = 0 then
3149: LD_EXP 11
3153: PUSH
3154: LD_INT 0
3156: EQUAL
3157: IFFALSE 3194
// begin Swansson = LoadCharacter ( Swansson_14_not_sel , 0 , 0 ) ;
3159: LD_ADDR_EXP 11
3163: PUSH
3164: LD_STRING Swansson_14_not_sel
3166: PPUSH
3167: LD_INT 0
3169: PPUSH
3170: LD_INT 0
3172: PPUSH
3173: CALL_OW 527
3177: ST_TO_ADDR
// TeamOmar = TeamOmar ^ Swansson ;
3178: LD_ADDR_EXP 23
3182: PUSH
3183: LD_EXP 23
3187: PUSH
3188: LD_EXP 11
3192: ADD
3193: ST_TO_ADDR
// end ; if Dwayne = 0 then
3194: LD_EXP 12
3198: PUSH
3199: LD_INT 0
3201: EQUAL
3202: IFFALSE 3239
// begin Dwayne = LoadCharacter ( Dwayne_14_not_sel , 0 , 0 ) ;
3204: LD_ADDR_EXP 12
3208: PUSH
3209: LD_STRING Dwayne_14_not_sel
3211: PPUSH
3212: LD_INT 0
3214: PPUSH
3215: LD_INT 0
3217: PPUSH
3218: CALL_OW 527
3222: ST_TO_ADDR
// TeamOmar = TeamOmar ^ Dwayne ;
3223: LD_ADDR_EXP 23
3227: PUSH
3228: LD_EXP 23
3232: PUSH
3233: LD_EXP 12
3237: ADD
3238: ST_TO_ADDR
// end ; if Khattam = 0 then
3239: LD_EXP 13
3243: PUSH
3244: LD_INT 0
3246: EQUAL
3247: IFFALSE 3284
// begin Khattam = LoadCharacter ( Khattam_14_not_sel , 0 , 0 ) ;
3249: LD_ADDR_EXP 13
3253: PUSH
3254: LD_STRING Khattam_14_not_sel
3256: PPUSH
3257: LD_INT 0
3259: PPUSH
3260: LD_INT 0
3262: PPUSH
3263: CALL_OW 527
3267: ST_TO_ADDR
// TeamOmar = TeamOmar ^ Khattam ;
3268: LD_ADDR_EXP 23
3272: PUSH
3273: LD_EXP 23
3277: PUSH
3278: LD_EXP 13
3282: ADD
3283: ST_TO_ADDR
// end ; if Makise = 0 then
3284: LD_EXP 14
3288: PUSH
3289: LD_INT 0
3291: EQUAL
3292: IFFALSE 3329
// begin Makise = LoadCharacter ( Makise_14_not_sel , 0 , 0 ) ;
3294: LD_ADDR_EXP 14
3298: PUSH
3299: LD_STRING Makise_14_not_sel
3301: PPUSH
3302: LD_INT 0
3304: PPUSH
3305: LD_INT 0
3307: PPUSH
3308: CALL_OW 527
3312: ST_TO_ADDR
// TeamOmar = TeamOmar ^ Makise ;
3313: LD_ADDR_EXP 23
3317: PUSH
3318: LD_EXP 23
3322: PUSH
3323: LD_EXP 14
3327: ADD
3328: ST_TO_ADDR
// end ; TeamOmar = TeamOmar diff 0 ;
3329: LD_ADDR_EXP 23
3333: PUSH
3334: LD_EXP 23
3338: PUSH
3339: LD_INT 0
3341: DIFF
3342: ST_TO_ADDR
// others2 = CreateCharacterSet ( Others_14_not_sel ) ;
3343: LD_ADDR_EXP 17
3347: PUSH
3348: LD_STRING Others_14_not_sel
3350: PPUSH
3351: CALL_OW 31
3355: ST_TO_ADDR
// TeamOmar = TeamOmar ^ others2 ;
3356: LD_ADDR_EXP 23
3360: PUSH
3361: LD_EXP 23
3365: PUSH
3366: LD_EXP 17
3370: ADD
3371: ST_TO_ADDR
// while TeamOmar > 20 do
3372: LD_EXP 23
3376: PUSH
3377: LD_INT 20
3379: GREATER
3380: IFFALSE 3450
// begin temp = others2 ;
3382: LD_ADDR_VAR 0 2
3386: PUSH
3387: LD_EXP 17
3391: ST_TO_ADDR
// i = temp [ rand ( 1 , temp ) ] ;
3392: LD_ADDR_VAR 0 3
3396: PUSH
3397: LD_VAR 0 2
3401: PUSH
3402: LD_INT 1
3404: PPUSH
3405: LD_VAR 0 2
3409: PPUSH
3410: CALL_OW 12
3414: ARRAY
3415: ST_TO_ADDR
// others2 = others2 diff i ;
3416: LD_ADDR_EXP 17
3420: PUSH
3421: LD_EXP 17
3425: PUSH
3426: LD_VAR 0 3
3430: DIFF
3431: ST_TO_ADDR
// TeamOmar = TeamOmar diff i ;
3432: LD_ADDR_EXP 23
3436: PUSH
3437: LD_EXP 23
3441: PUSH
3442: LD_VAR 0 3
3446: DIFF
3447: ST_TO_ADDR
// end ;
3448: GO 3372
// while TeamOmar < 20 do
3450: LD_EXP 23
3454: PUSH
3455: LD_INT 20
3457: LESS
3458: IFFALSE 3532
// begin case rand ( 1 , 2 ) of 1 :
3460: LD_INT 1
3462: PPUSH
3463: LD_INT 2
3465: PPUSH
3466: CALL_OW 12
3470: PUSH
3471: LD_INT 1
3473: DOUBLE
3474: EQUAL
3475: IFTRUE 3479
3477: GO 3492
3479: POP
// PrepareSoldier ( false , 7 ) ; 2 :
3480: LD_INT 0
3482: PPUSH
3483: LD_INT 7
3485: PPUSH
3486: CALL_OW 381
3490: GO 3514
3492: LD_INT 2
3494: DOUBLE
3495: EQUAL
3496: IFTRUE 3500
3498: GO 3513
3500: POP
// PrepareMechanic ( false , 7 ) ; end ;
3501: LD_INT 0
3503: PPUSH
3504: LD_INT 7
3506: PPUSH
3507: CALL_OW 383
3511: GO 3514
3513: POP
// TeamOmar = TeamOmar ^ createhuman ;
3514: LD_ADDR_EXP 23
3518: PUSH
3519: LD_EXP 23
3523: PUSH
3524: CALL_OW 44
3528: ADD
3529: ST_TO_ADDR
// end ;
3530: GO 3450
// Transport_whole = LoadVariable ( Transport_Teleported_14_cont , 0 ) ;
3532: LD_ADDR_EXP 56
3536: PUSH
3537: LD_STRING Transport_Teleported_14_cont
3539: PPUSH
3540: LD_INT 0
3542: PPUSH
3543: CALL_OW 30
3547: ST_TO_ADDR
// ArtMeasurement_done = LoadVariable ( Artifact_measurement_done_13 , 0 ) ;
3548: LD_ADDR_EXP 57
3552: PUSH
3553: LD_STRING Artifact_measurement_done_13
3555: PPUSH
3556: LD_INT 0
3558: PPUSH
3559: CALL_OW 30
3563: ST_TO_ADDR
// if LoadVariable ( SibPlantDeveloped_07_cont , 0 ) then
3564: LD_STRING SibPlantDeveloped_07_cont
3566: PPUSH
3567: LD_INT 0
3569: PPUSH
3570: CALL_OW 30
3574: IFFALSE 3584
// ATech_SibPlant = 1 ;
3576: LD_ADDR_EXP 92
3580: PUSH
3581: LD_INT 1
3583: ST_TO_ADDR
// if LoadVariable ( Extra_documents_stolen_09 , 0 ) then
3584: LD_STRING Extra_documents_stolen_09
3586: PPUSH
3587: LD_INT 0
3589: PPUSH
3590: CALL_OW 30
3594: IFFALSE 3604
// ATech_Beh = 1 ;
3596: LD_ADDR_EXP 93
3600: PUSH
3601: LD_INT 1
3603: ST_TO_ADDR
// if LoadVariable ( Investigated_time_shifting_10 , 0 ) then
3604: LD_STRING Investigated_time_shifting_10
3606: PPUSH
3607: LD_INT 0
3609: PPUSH
3610: CALL_OW 30
3614: IFFALSE 3624
// ATech_TimeLapse = 1 ;
3616: LD_ADDR_EXP 94
3620: PUSH
3621: LD_INT 1
3623: ST_TO_ADDR
// if Khattam > 0 or LoadVariable ( AllGensherPeopleSaved_11_cont , 0 ) then
3624: LD_EXP 13
3628: PUSH
3629: LD_INT 0
3631: GREATER
3632: PUSH
3633: LD_STRING AllGensherPeopleSaved_11_cont
3635: PPUSH
3636: LD_INT 0
3638: PPUSH
3639: CALL_OW 30
3643: OR
3644: IFFALSE 3654
// ATech_Laser = 1 ;
3646: LD_ADDR_EXP 95
3650: PUSH
3651: LD_INT 1
3653: ST_TO_ADDR
// if LoadVariable ( Contaminating_sci_brought_to_lab_12_cont2 , 0 ) then
3654: LD_STRING Contaminating_sci_brought_to_lab_12_cont2
3656: PPUSH
3657: LD_INT 0
3659: PPUSH
3660: CALL_OW 30
3664: IFFALSE 3674
// ATech_SuperStim = 1 ;
3666: LD_ADDR_EXP 96
3670: PUSH
3671: LD_INT 1
3673: ST_TO_ADDR
// if LoadVariable ( Implosion_vehicle_dismantled_12_cont2 , 0 ) then
3674: LD_STRING Implosion_vehicle_dismantled_12_cont2
3676: PPUSH
3677: LD_INT 0
3679: PPUSH
3680: CALL_OW 30
3684: IFFALSE 3709
// begin ATech_SPBomb = 1 ;
3686: LD_ADDR_EXP 97
3690: PUSH
3691: LD_INT 1
3693: ST_TO_ADDR
// SetTech ( 72 , 2 , state_enabled ) ;
3694: LD_INT 72
3696: PPUSH
3697: LD_INT 2
3699: PPUSH
3700: LD_INT 1
3702: PPUSH
3703: CALL_OW 322
// end else
3707: GO 3722
// SetTech ( 72 , 2 , state_disabled ) ;
3709: LD_INT 72
3711: PPUSH
3712: LD_INT 2
3714: PPUSH
3715: LD_INT 0
3717: PPUSH
3718: CALL_OW 322
// end ; ChangeSideFog ( 5 , 2 ) ;
3722: LD_INT 5
3724: PPUSH
3725: LD_INT 2
3727: PPUSH
3728: CALL_OW 343
// if SavedUPF = 0 then
3732: LD_EXP 18
3736: PUSH
3737: LD_INT 0
3739: EQUAL
3740: IFFALSE 3906
// begin SavedUPF = [ ] ;
3742: LD_ADDR_EXP 18
3746: PUSH
3747: EMPTY
3748: ST_TO_ADDR
// for i = 1 to 6 do
3749: LD_ADDR_VAR 0 3
3753: PUSH
3754: DOUBLE
3755: LD_INT 1
3757: DEC
3758: ST_TO_ADDR
3759: LD_INT 6
3761: PUSH
3762: FOR_TO
3763: IFFALSE 3793
// begin PrepareSoldier ( false , 10 ) ;
3765: LD_INT 0
3767: PPUSH
3768: LD_INT 10
3770: PPUSH
3771: CALL_OW 381
// SavedUPF = SavedUPF ^ Createhuman ;
3775: LD_ADDR_EXP 18
3779: PUSH
3780: LD_EXP 18
3784: PUSH
3785: CALL_OW 44
3789: ADD
3790: ST_TO_ADDR
// end ;
3791: GO 3762
3793: POP
3794: POP
// SetClass ( [ SavedUPF [ 1 ] , SavedUPF [ 3 ] , SavedUPF [ 5 ] ] , class_mortar ) ;
3795: LD_EXP 18
3799: PUSH
3800: LD_INT 1
3802: ARRAY
3803: PUSH
3804: LD_EXP 18
3808: PUSH
3809: LD_INT 3
3811: ARRAY
3812: PUSH
3813: LD_EXP 18
3817: PUSH
3818: LD_INT 5
3820: ARRAY
3821: PUSH
3822: EMPTY
3823: LIST
3824: LIST
3825: LIST
3826: PPUSH
3827: LD_INT 8
3829: PPUSH
3830: CALL_OW 336
// PrepareScientist ( false , 10 ) ;
3834: LD_INT 0
3836: PPUSH
3837: LD_INT 10
3839: PPUSH
3840: CALL_OW 384
// SavedUPF = SavedUPF ^ Createhuman ;
3844: LD_ADDR_EXP 18
3848: PUSH
3849: LD_EXP 18
3853: PUSH
3854: CALL_OW 44
3858: ADD
3859: ST_TO_ADDR
// for i = 1 to 3 do
3860: LD_ADDR_VAR 0 3
3864: PUSH
3865: DOUBLE
3866: LD_INT 1
3868: DEC
3869: ST_TO_ADDR
3870: LD_INT 3
3872: PUSH
3873: FOR_TO
3874: IFFALSE 3904
// begin PrepareMechanic ( false , 10 ) ;
3876: LD_INT 0
3878: PPUSH
3879: LD_INT 10
3881: PPUSH
3882: CALL_OW 383
// SavedUPF = SavedUPF ^ Createhuman ;
3886: LD_ADDR_EXP 18
3890: PUSH
3891: LD_EXP 18
3895: PUSH
3896: CALL_OW 44
3900: ADD
3901: ST_TO_ADDR
// end ;
3902: GO 3873
3904: POP
3905: POP
// end ; SecondGroup = [ ] ;
3906: LD_ADDR_EXP 21
3910: PUSH
3911: EMPTY
3912: ST_TO_ADDR
// for i = 1 to SavedUPF do
3913: LD_ADDR_VAR 0 3
3917: PUSH
3918: DOUBLE
3919: LD_INT 1
3921: DEC
3922: ST_TO_ADDR
3923: LD_EXP 18
3927: PUSH
3928: FOR_TO
3929: IFFALSE 3980
// if i in [ 1 , 2 , 3 , 10 ] then
3931: LD_VAR 0 3
3935: PUSH
3936: LD_INT 1
3938: PUSH
3939: LD_INT 2
3941: PUSH
3942: LD_INT 3
3944: PUSH
3945: LD_INT 10
3947: PUSH
3948: EMPTY
3949: LIST
3950: LIST
3951: LIST
3952: LIST
3953: IN
3954: IFFALSE 3978
// SecondGroup = SecondGroup ^ SavedUPF [ i ] ;
3956: LD_ADDR_EXP 21
3960: PUSH
3961: LD_EXP 21
3965: PUSH
3966: LD_EXP 18
3970: PUSH
3971: LD_VAR 0 3
3975: ARRAY
3976: ADD
3977: ST_TO_ADDR
3978: GO 3928
3980: POP
3981: POP
// SavedUPF = SavedUPF diff SecondGroup ;
3982: LD_ADDR_EXP 18
3986: PUSH
3987: LD_EXP 18
3991: PUSH
3992: LD_EXP 21
3996: DIFF
3997: ST_TO_ADDR
// TeamHeike = TeamHeike ^ SavedUPF ;
3998: LD_ADDR_EXP 22
4002: PUSH
4003: LD_EXP 22
4007: PUSH
4008: LD_EXP 18
4012: ADD
4013: ST_TO_ADDR
// end ;
4014: LD_VAR 0 1
4018: RET
// function PrepareBase ; var i , lab , oil , arm , workshop , arm2 , dep ; var temp , everyone , j ; var depot , armoury , cargos ; var crates , oilbarrels , sib ; begin
4019: LD_INT 0
4021: PPUSH
4022: PPUSH
4023: PPUSH
4024: PPUSH
4025: PPUSH
4026: PPUSH
4027: PPUSH
4028: PPUSH
4029: PPUSH
4030: PPUSH
4031: PPUSH
4032: PPUSH
4033: PPUSH
4034: PPUSH
4035: PPUSH
4036: PPUSH
4037: PPUSH
// Randomize ;
4038: CALL_OW 10
// SetTech ( tech_artifact , 2 , state_disabled ) ;
4042: LD_INT 24
4044: PPUSH
4045: LD_INT 2
4047: PPUSH
4048: LD_INT 0
4050: PPUSH
4051: CALL_OW 322
// SetClass ( Omar , class_engineer ) ;
4055: LD_EXP 2
4059: PPUSH
4060: LD_INT 2
4062: PPUSH
4063: CALL_OW 336
// depot = hexinfo ( 102 , 87 ) ;
4067: LD_ADDR_VAR 0 12
4071: PUSH
4072: LD_INT 102
4074: PPUSH
4075: LD_INT 87
4077: PPUSH
4078: CALL_OW 428
4082: ST_TO_ADDR
// armoury = hexinfo ( 92 , 66 ) ;
4083: LD_ADDR_VAR 0 13
4087: PUSH
4088: LD_INT 92
4090: PPUSH
4091: LD_INT 66
4093: PPUSH
4094: CALL_OW 428
4098: ST_TO_ADDR
// temp = LoadVariable ( Resources_gathered_14_cont , [ 0 , 0 , 0 ] ) ;
4099: LD_ADDR_VAR 0 9
4103: PUSH
4104: LD_STRING Resources_gathered_14_cont
4106: PPUSH
4107: LD_INT 0
4109: PUSH
4110: LD_INT 0
4112: PUSH
4113: LD_INT 0
4115: PUSH
4116: EMPTY
4117: LIST
4118: LIST
4119: LIST
4120: PPUSH
4121: CALL_OW 30
4125: ST_TO_ADDR
// crates = temp [ 1 ] ;
4126: LD_ADDR_VAR 0 15
4130: PUSH
4131: LD_VAR 0 9
4135: PUSH
4136: LD_INT 1
4138: ARRAY
4139: ST_TO_ADDR
// if crates < [ 500 , 600 , 750 ] [ difficulty ] then
4140: LD_VAR 0 15
4144: PUSH
4145: LD_INT 500
4147: PUSH
4148: LD_INT 600
4150: PUSH
4151: LD_INT 750
4153: PUSH
4154: EMPTY
4155: LIST
4156: LIST
4157: LIST
4158: PUSH
4159: LD_OWVAR 67
4163: ARRAY
4164: LESS
4165: IFFALSE 4192
// crates = [ 500 , 600 , 750 ] [ difficulty ] ;
4167: LD_ADDR_VAR 0 15
4171: PUSH
4172: LD_INT 500
4174: PUSH
4175: LD_INT 600
4177: PUSH
4178: LD_INT 750
4180: PUSH
4181: EMPTY
4182: LIST
4183: LIST
4184: LIST
4185: PUSH
4186: LD_OWVAR 67
4190: ARRAY
4191: ST_TO_ADDR
// if crates > [ 750 , 1000 , 1250 ] [ difficulty ] or testing then
4192: LD_VAR 0 15
4196: PUSH
4197: LD_INT 750
4199: PUSH
4200: LD_INT 1000
4202: PUSH
4203: LD_INT 1250
4205: PUSH
4206: EMPTY
4207: LIST
4208: LIST
4209: LIST
4210: PUSH
4211: LD_OWVAR 67
4215: ARRAY
4216: GREATER
4217: PUSH
4218: LD_EXP 49
4222: OR
4223: IFFALSE 4250
// crates = [ 750 , 1000 , 1250 ] [ difficulty ] ;
4225: LD_ADDR_VAR 0 15
4229: PUSH
4230: LD_INT 750
4232: PUSH
4233: LD_INT 1000
4235: PUSH
4236: LD_INT 1250
4238: PUSH
4239: EMPTY
4240: LIST
4241: LIST
4242: LIST
4243: PUSH
4244: LD_OWVAR 67
4248: ARRAY
4249: ST_TO_ADDR
// crates = crates + [ 1000 , 500 , 0 ] [ difficulty ] ;
4250: LD_ADDR_VAR 0 15
4254: PUSH
4255: LD_VAR 0 15
4259: PUSH
4260: LD_INT 1000
4262: PUSH
4263: LD_INT 500
4265: PUSH
4266: LD_INT 0
4268: PUSH
4269: EMPTY
4270: LIST
4271: LIST
4272: LIST
4273: PUSH
4274: LD_OWVAR 67
4278: ARRAY
4279: PLUS
4280: ST_TO_ADDR
// sib = temp [ 3 ] ;
4281: LD_ADDR_VAR 0 17
4285: PUSH
4286: LD_VAR 0 9
4290: PUSH
4291: LD_INT 3
4293: ARRAY
4294: ST_TO_ADDR
// if sib < [ 150 , 200 , 250 ] [ difficulty ] then
4295: LD_VAR 0 17
4299: PUSH
4300: LD_INT 150
4302: PUSH
4303: LD_INT 200
4305: PUSH
4306: LD_INT 250
4308: PUSH
4309: EMPTY
4310: LIST
4311: LIST
4312: LIST
4313: PUSH
4314: LD_OWVAR 67
4318: ARRAY
4319: LESS
4320: IFFALSE 4347
// sib = [ 150 , 200 , 250 ] [ difficulty ] ;
4322: LD_ADDR_VAR 0 17
4326: PUSH
4327: LD_INT 150
4329: PUSH
4330: LD_INT 200
4332: PUSH
4333: LD_INT 250
4335: PUSH
4336: EMPTY
4337: LIST
4338: LIST
4339: LIST
4340: PUSH
4341: LD_OWVAR 67
4345: ARRAY
4346: ST_TO_ADDR
// if sib > [ 250 , 300 , 400 ] [ difficulty ] or testing then
4347: LD_VAR 0 17
4351: PUSH
4352: LD_INT 250
4354: PUSH
4355: LD_INT 300
4357: PUSH
4358: LD_INT 400
4360: PUSH
4361: EMPTY
4362: LIST
4363: LIST
4364: LIST
4365: PUSH
4366: LD_OWVAR 67
4370: ARRAY
4371: GREATER
4372: PUSH
4373: LD_EXP 49
4377: OR
4378: IFFALSE 4405
// sib = [ 250 , 300 , 400 ] [ difficulty ] ;
4380: LD_ADDR_VAR 0 17
4384: PUSH
4385: LD_INT 250
4387: PUSH
4388: LD_INT 300
4390: PUSH
4391: LD_INT 400
4393: PUSH
4394: EMPTY
4395: LIST
4396: LIST
4397: LIST
4398: PUSH
4399: LD_OWVAR 67
4403: ARRAY
4404: ST_TO_ADDR
// sib = sib + [ 250 , 100 , 0 ] [ difficulty ] ;
4405: LD_ADDR_VAR 0 17
4409: PUSH
4410: LD_VAR 0 17
4414: PUSH
4415: LD_INT 250
4417: PUSH
4418: LD_INT 100
4420: PUSH
4421: LD_INT 0
4423: PUSH
4424: EMPTY
4425: LIST
4426: LIST
4427: LIST
4428: PUSH
4429: LD_OWVAR 67
4433: ARRAY
4434: PLUS
4435: ST_TO_ADDR
// if Transport_whole then
4436: LD_EXP 56
4440: IFFALSE 4470
// begin crates = crates + 250 ;
4442: LD_ADDR_VAR 0 15
4446: PUSH
4447: LD_VAR 0 15
4451: PUSH
4452: LD_INT 250
4454: PLUS
4455: ST_TO_ADDR
// sib = sib + 100 ;
4456: LD_ADDR_VAR 0 17
4460: PUSH
4461: LD_VAR 0 17
4465: PUSH
4466: LD_INT 100
4468: PLUS
4469: ST_TO_ADDR
// end ; if ArtMeasurement_done then
4470: LD_EXP 57
4474: IFFALSE 4504
// begin crates = crates + 250 ;
4476: LD_ADDR_VAR 0 15
4480: PUSH
4481: LD_VAR 0 15
4485: PUSH
4486: LD_INT 250
4488: PLUS
4489: ST_TO_ADDR
// sib = sib + 100 ;
4490: LD_ADDR_VAR 0 17
4494: PUSH
4495: LD_VAR 0 17
4499: PUSH
4500: LD_INT 100
4502: PLUS
4503: ST_TO_ADDR
// end ; oilbarrels = 300 ;
4504: LD_ADDR_VAR 0 16
4508: PUSH
4509: LD_INT 300
4511: ST_TO_ADDR
// addresourcetype ( GetBase ( depot ) , mat_cans , crates ) ;
4512: LD_VAR 0 12
4516: PPUSH
4517: CALL_OW 274
4521: PPUSH
4522: LD_INT 1
4524: PPUSH
4525: LD_VAR 0 15
4529: PPUSH
4530: CALL_OW 276
// addresourcetype ( GetBase ( depot ) , mat_oil , oilbarrels ) ;
4534: LD_VAR 0 12
4538: PPUSH
4539: CALL_OW 274
4543: PPUSH
4544: LD_INT 2
4546: PPUSH
4547: LD_VAR 0 16
4551: PPUSH
4552: CALL_OW 276
// addresourcetype ( GetBase ( depot ) , mat_siberit , sib ) ;
4556: LD_VAR 0 12
4560: PPUSH
4561: CALL_OW 274
4565: PPUSH
4566: LD_INT 3
4568: PPUSH
4569: LD_VAR 0 17
4573: PPUSH
4574: CALL_OW 276
// everyone = TeamOmar ;
4578: LD_ADDR_VAR 0 10
4582: PUSH
4583: LD_EXP 23
4587: ST_TO_ADDR
// lab = [ ] ;
4588: LD_ADDR_VAR 0 3
4592: PUSH
4593: EMPTY
4594: ST_TO_ADDR
// workshop = [ ] ;
4595: LD_ADDR_VAR 0 6
4599: PUSH
4600: EMPTY
4601: ST_TO_ADDR
// oil = [ ] ;
4602: LD_ADDR_VAR 0 4
4606: PUSH
4607: EMPTY
4608: ST_TO_ADDR
// arm = [ ] ;
4609: LD_ADDR_VAR 0 5
4613: PUSH
4614: EMPTY
4615: ST_TO_ADDR
// arm2 = [ ] ;
4616: LD_ADDR_VAR 0 7
4620: PUSH
4621: EMPTY
4622: ST_TO_ADDR
// dep = [ ] ;
4623: LD_ADDR_VAR 0 8
4627: PUSH
4628: EMPTY
4629: ST_TO_ADDR
// temp = [ Sonya , Aviradze , Khattam , Makise ] diff TeamHeike ;
4630: LD_ADDR_VAR 0 9
4634: PUSH
4635: LD_EXP 7
4639: PUSH
4640: LD_EXP 8
4644: PUSH
4645: LD_EXP 13
4649: PUSH
4650: LD_EXP 14
4654: PUSH
4655: EMPTY
4656: LIST
4657: LIST
4658: LIST
4659: LIST
4660: PUSH
4661: LD_EXP 22
4665: DIFF
4666: ST_TO_ADDR
// while temp > 0 and lab < 3 do
4667: LD_VAR 0 9
4671: PUSH
4672: LD_INT 0
4674: GREATER
4675: PUSH
4676: LD_VAR 0 3
4680: PUSH
4681: LD_INT 3
4683: LESS
4684: AND
4685: IFFALSE 4751
// begin j = rand ( 1 , temp ) ;
4687: LD_ADDR_VAR 0 11
4691: PUSH
4692: LD_INT 1
4694: PPUSH
4695: LD_VAR 0 9
4699: PPUSH
4700: CALL_OW 12
4704: ST_TO_ADDR
// lab = lab ^ temp [ j ] ;
4705: LD_ADDR_VAR 0 3
4709: PUSH
4710: LD_VAR 0 3
4714: PUSH
4715: LD_VAR 0 9
4719: PUSH
4720: LD_VAR 0 11
4724: ARRAY
4725: ADD
4726: ST_TO_ADDR
// temp = temp diff temp [ j ] ;
4727: LD_ADDR_VAR 0 9
4731: PUSH
4732: LD_VAR 0 9
4736: PUSH
4737: LD_VAR 0 9
4741: PUSH
4742: LD_VAR 0 11
4746: ARRAY
4747: DIFF
4748: ST_TO_ADDR
// end ;
4749: GO 4667
// if lab < 3 then
4751: LD_VAR 0 3
4755: PUSH
4756: LD_INT 3
4758: LESS
4759: IFFALSE 4926
// begin temp = TeamOmar diff [ Omar , Sonya , Aviradze , Khattam , Makise , Oswald , Kowalski , Swansson , Olaf , Dwayne , Ralph , Evelyn , Snake ] ;
4761: LD_ADDR_VAR 0 9
4765: PUSH
4766: LD_EXP 23
4770: PUSH
4771: LD_EXP 2
4775: PUSH
4776: LD_EXP 7
4780: PUSH
4781: LD_EXP 8
4785: PUSH
4786: LD_EXP 13
4790: PUSH
4791: LD_EXP 14
4795: PUSH
4796: LD_EXP 5
4800: PUSH
4801: LD_EXP 9
4805: PUSH
4806: LD_EXP 11
4810: PUSH
4811: LD_EXP 4
4815: PUSH
4816: LD_EXP 12
4820: PUSH
4821: LD_EXP 6
4825: PUSH
4826: LD_EXP 10
4830: PUSH
4831: LD_EXP 19
4835: PUSH
4836: EMPTY
4837: LIST
4838: LIST
4839: LIST
4840: LIST
4841: LIST
4842: LIST
4843: LIST
4844: LIST
4845: LIST
4846: LIST
4847: LIST
4848: LIST
4849: LIST
4850: DIFF
4851: ST_TO_ADDR
// while lab < 3 do
4852: LD_VAR 0 3
4856: PUSH
4857: LD_INT 3
4859: LESS
4860: IFFALSE 4926
// begin j = rand ( 1 , temp ) ;
4862: LD_ADDR_VAR 0 11
4866: PUSH
4867: LD_INT 1
4869: PPUSH
4870: LD_VAR 0 9
4874: PPUSH
4875: CALL_OW 12
4879: ST_TO_ADDR
// lab = lab ^ temp [ j ] ;
4880: LD_ADDR_VAR 0 3
4884: PUSH
4885: LD_VAR 0 3
4889: PUSH
4890: LD_VAR 0 9
4894: PUSH
4895: LD_VAR 0 11
4899: ARRAY
4900: ADD
4901: ST_TO_ADDR
// temp = temp diff temp [ j ] ;
4902: LD_ADDR_VAR 0 9
4906: PUSH
4907: LD_VAR 0 9
4911: PUSH
4912: LD_VAR 0 9
4916: PUSH
4917: LD_VAR 0 11
4921: ARRAY
4922: DIFF
4923: ST_TO_ADDR
// end ;
4924: GO 4852
// end ; lab = lab ^ Omar ;
4926: LD_ADDR_VAR 0 3
4930: PUSH
4931: LD_VAR 0 3
4935: PUSH
4936: LD_EXP 2
4940: ADD
4941: ST_TO_ADDR
// everyone = everyone diff lab ;
4942: LD_ADDR_VAR 0 10
4946: PUSH
4947: LD_VAR 0 10
4951: PUSH
4952: LD_VAR 0 3
4956: DIFF
4957: ST_TO_ADDR
// setclass ( lab , class_engineer ) ;
4958: LD_VAR 0 3
4962: PPUSH
4963: LD_INT 2
4965: PPUSH
4966: CALL_OW 336
// temp = [ Olaf , Dwayne , Ralph , Evelyn ] diff TeamHeike ;
4970: LD_ADDR_VAR 0 9
4974: PUSH
4975: LD_EXP 4
4979: PUSH
4980: LD_EXP 12
4984: PUSH
4985: LD_EXP 6
4989: PUSH
4990: LD_EXP 10
4994: PUSH
4995: EMPTY
4996: LIST
4997: LIST
4998: LIST
4999: LIST
5000: PUSH
5001: LD_EXP 22
5005: DIFF
5006: ST_TO_ADDR
// if temp > 0 then
5007: LD_VAR 0 9
5011: PUSH
5012: LD_INT 0
5014: GREATER
5015: IFFALSE 5033
// workshop = workshop ^ temp ;
5017: LD_ADDR_VAR 0 6
5021: PUSH
5022: LD_VAR 0 6
5026: PUSH
5027: LD_VAR 0 9
5031: ADD
5032: ST_TO_ADDR
// if workshop < 4 then
5033: LD_VAR 0 6
5037: PUSH
5038: LD_INT 4
5040: LESS
5041: IFFALSE 5214
// begin temp = TeamOmar diff [ Omar , Sonya , Aviradze , Khattam , Makise , Oswald , Kowalski , Swansson , Olaf , Dwayne , Ralph , Evelyn , Snake ] ^ lab ;
5043: LD_ADDR_VAR 0 9
5047: PUSH
5048: LD_EXP 23
5052: PUSH
5053: LD_EXP 2
5057: PUSH
5058: LD_EXP 7
5062: PUSH
5063: LD_EXP 8
5067: PUSH
5068: LD_EXP 13
5072: PUSH
5073: LD_EXP 14
5077: PUSH
5078: LD_EXP 5
5082: PUSH
5083: LD_EXP 9
5087: PUSH
5088: LD_EXP 11
5092: PUSH
5093: LD_EXP 4
5097: PUSH
5098: LD_EXP 12
5102: PUSH
5103: LD_EXP 6
5107: PUSH
5108: LD_EXP 10
5112: PUSH
5113: LD_EXP 19
5117: PUSH
5118: EMPTY
5119: LIST
5120: LIST
5121: LIST
5122: LIST
5123: LIST
5124: LIST
5125: LIST
5126: LIST
5127: LIST
5128: LIST
5129: LIST
5130: LIST
5131: LIST
5132: PUSH
5133: LD_VAR 0 3
5137: ADD
5138: DIFF
5139: ST_TO_ADDR
// while workshop < 4 do
5140: LD_VAR 0 6
5144: PUSH
5145: LD_INT 4
5147: LESS
5148: IFFALSE 5214
// begin j = rand ( 1 , temp ) ;
5150: LD_ADDR_VAR 0 11
5154: PUSH
5155: LD_INT 1
5157: PPUSH
5158: LD_VAR 0 9
5162: PPUSH
5163: CALL_OW 12
5167: ST_TO_ADDR
// workshop = workshop ^ temp [ j ] ;
5168: LD_ADDR_VAR 0 6
5172: PUSH
5173: LD_VAR 0 6
5177: PUSH
5178: LD_VAR 0 9
5182: PUSH
5183: LD_VAR 0 11
5187: ARRAY
5188: ADD
5189: ST_TO_ADDR
// temp = temp diff temp [ j ] ;
5190: LD_ADDR_VAR 0 9
5194: PUSH
5195: LD_VAR 0 9
5199: PUSH
5200: LD_VAR 0 9
5204: PUSH
5205: LD_VAR 0 11
5209: ARRAY
5210: DIFF
5211: ST_TO_ADDR
// end ;
5212: GO 5140
// end ; everyone = everyone diff workshop ;
5214: LD_ADDR_VAR 0 10
5218: PUSH
5219: LD_VAR 0 10
5223: PUSH
5224: LD_VAR 0 6
5228: DIFF
5229: ST_TO_ADDR
// setclass ( workshop , class_engineer ) ;
5230: LD_VAR 0 6
5234: PPUSH
5235: LD_INT 2
5237: PPUSH
5238: CALL_OW 336
// temp = [ Sonya , Aviradze , Khattam , Makise ] diff TeamHeike ^ lab ;
5242: LD_ADDR_VAR 0 9
5246: PUSH
5247: LD_EXP 7
5251: PUSH
5252: LD_EXP 8
5256: PUSH
5257: LD_EXP 13
5261: PUSH
5262: LD_EXP 14
5266: PUSH
5267: EMPTY
5268: LIST
5269: LIST
5270: LIST
5271: LIST
5272: PUSH
5273: LD_EXP 22
5277: PUSH
5278: LD_VAR 0 3
5282: ADD
5283: DIFF
5284: ST_TO_ADDR
// if temp > 0 then
5285: LD_VAR 0 9
5289: PUSH
5290: LD_INT 0
5292: GREATER
5293: IFFALSE 5311
// oil = oil ^ temp ;
5295: LD_ADDR_VAR 0 4
5299: PUSH
5300: LD_VAR 0 4
5304: PUSH
5305: LD_VAR 0 9
5309: ADD
5310: ST_TO_ADDR
// temp = TeamOmar diff [ Omar , Sonya , Aviradze , Khattam , Makise , Oswald , Kowalski , Swansson , Olaf , Dwayne , Ralph , Evelyn , Snake ] ^ lab ^ workshop ;
5311: LD_ADDR_VAR 0 9
5315: PUSH
5316: LD_EXP 23
5320: PUSH
5321: LD_EXP 2
5325: PUSH
5326: LD_EXP 7
5330: PUSH
5331: LD_EXP 8
5335: PUSH
5336: LD_EXP 13
5340: PUSH
5341: LD_EXP 14
5345: PUSH
5346: LD_EXP 5
5350: PUSH
5351: LD_EXP 9
5355: PUSH
5356: LD_EXP 11
5360: PUSH
5361: LD_EXP 4
5365: PUSH
5366: LD_EXP 12
5370: PUSH
5371: LD_EXP 6
5375: PUSH
5376: LD_EXP 10
5380: PUSH
5381: LD_EXP 19
5385: PUSH
5386: EMPTY
5387: LIST
5388: LIST
5389: LIST
5390: LIST
5391: LIST
5392: LIST
5393: LIST
5394: LIST
5395: LIST
5396: LIST
5397: LIST
5398: LIST
5399: LIST
5400: PUSH
5401: LD_VAR 0 3
5405: ADD
5406: PUSH
5407: LD_VAR 0 6
5411: ADD
5412: DIFF
5413: ST_TO_ADDR
// while oil < 2 do
5414: LD_VAR 0 4
5418: PUSH
5419: LD_INT 2
5421: LESS
5422: IFFALSE 5488
// begin j = rand ( 1 , temp ) ;
5424: LD_ADDR_VAR 0 11
5428: PUSH
5429: LD_INT 1
5431: PPUSH
5432: LD_VAR 0 9
5436: PPUSH
5437: CALL_OW 12
5441: ST_TO_ADDR
// oil = oil ^ temp [ j ] ;
5442: LD_ADDR_VAR 0 4
5446: PUSH
5447: LD_VAR 0 4
5451: PUSH
5452: LD_VAR 0 9
5456: PUSH
5457: LD_VAR 0 11
5461: ARRAY
5462: ADD
5463: ST_TO_ADDR
// temp = temp diff temp [ j ] ;
5464: LD_ADDR_VAR 0 9
5468: PUSH
5469: LD_VAR 0 9
5473: PUSH
5474: LD_VAR 0 9
5478: PUSH
5479: LD_VAR 0 11
5483: ARRAY
5484: DIFF
5485: ST_TO_ADDR
// end ;
5486: GO 5414
// everyone = everyone diff oil ;
5488: LD_ADDR_VAR 0 10
5492: PUSH
5493: LD_VAR 0 10
5497: PUSH
5498: LD_VAR 0 4
5502: DIFF
5503: ST_TO_ADDR
// setclass ( oil [ 1 ] , class_scientistic ) ;
5504: LD_VAR 0 4
5508: PUSH
5509: LD_INT 1
5511: ARRAY
5512: PPUSH
5513: LD_INT 4
5515: PPUSH
5516: CALL_OW 336
// setclass ( oil [ 2 ] , class_engineer ) ;
5520: LD_VAR 0 4
5524: PUSH
5525: LD_INT 2
5527: ARRAY
5528: PPUSH
5529: LD_INT 2
5531: PPUSH
5532: CALL_OW 336
// temp = [ Oswald , Kowalski , Swansson ] diff TeamHeike ;
5536: LD_ADDR_VAR 0 9
5540: PUSH
5541: LD_EXP 5
5545: PUSH
5546: LD_EXP 9
5550: PUSH
5551: LD_EXP 11
5555: PUSH
5556: EMPTY
5557: LIST
5558: LIST
5559: LIST
5560: PUSH
5561: LD_EXP 22
5565: DIFF
5566: ST_TO_ADDR
// if temp > 0 then
5567: LD_VAR 0 9
5571: PUSH
5572: LD_INT 0
5574: GREATER
5575: IFFALSE 5593
// arm = arm ^ temp ;
5577: LD_ADDR_VAR 0 5
5581: PUSH
5582: LD_VAR 0 5
5586: PUSH
5587: LD_VAR 0 9
5591: ADD
5592: ST_TO_ADDR
// temp = TeamOmar diff [ Omar , Sonya , Aviradze , Khattam , Makise , Oswald , Kowalski , Swansson , Olaf , Dwayne , Ralph , Evelyn , Snake ] ^ lab ^ workshop ^ oil ;
5593: LD_ADDR_VAR 0 9
5597: PUSH
5598: LD_EXP 23
5602: PUSH
5603: LD_EXP 2
5607: PUSH
5608: LD_EXP 7
5612: PUSH
5613: LD_EXP 8
5617: PUSH
5618: LD_EXP 13
5622: PUSH
5623: LD_EXP 14
5627: PUSH
5628: LD_EXP 5
5632: PUSH
5633: LD_EXP 9
5637: PUSH
5638: LD_EXP 11
5642: PUSH
5643: LD_EXP 4
5647: PUSH
5648: LD_EXP 12
5652: PUSH
5653: LD_EXP 6
5657: PUSH
5658: LD_EXP 10
5662: PUSH
5663: LD_EXP 19
5667: PUSH
5668: EMPTY
5669: LIST
5670: LIST
5671: LIST
5672: LIST
5673: LIST
5674: LIST
5675: LIST
5676: LIST
5677: LIST
5678: LIST
5679: LIST
5680: LIST
5681: LIST
5682: PUSH
5683: LD_VAR 0 3
5687: ADD
5688: PUSH
5689: LD_VAR 0 6
5693: ADD
5694: PUSH
5695: LD_VAR 0 4
5699: ADD
5700: DIFF
5701: ST_TO_ADDR
// while arm < 6 do
5702: LD_VAR 0 5
5706: PUSH
5707: LD_INT 6
5709: LESS
5710: IFFALSE 5776
// begin j = rand ( 1 , temp ) ;
5712: LD_ADDR_VAR 0 11
5716: PUSH
5717: LD_INT 1
5719: PPUSH
5720: LD_VAR 0 9
5724: PPUSH
5725: CALL_OW 12
5729: ST_TO_ADDR
// arm = arm ^ temp [ j ] ;
5730: LD_ADDR_VAR 0 5
5734: PUSH
5735: LD_VAR 0 5
5739: PUSH
5740: LD_VAR 0 9
5744: PUSH
5745: LD_VAR 0 11
5749: ARRAY
5750: ADD
5751: ST_TO_ADDR
// temp = temp diff temp [ j ] ;
5752: LD_ADDR_VAR 0 9
5756: PUSH
5757: LD_VAR 0 9
5761: PUSH
5762: LD_VAR 0 9
5766: PUSH
5767: LD_VAR 0 11
5771: ARRAY
5772: DIFF
5773: ST_TO_ADDR
// end ;
5774: GO 5702
// everyone = everyone diff arm ;
5776: LD_ADDR_VAR 0 10
5780: PUSH
5781: LD_VAR 0 10
5785: PUSH
5786: LD_VAR 0 5
5790: DIFF
5791: ST_TO_ADDR
// setclass ( arm , class_soldier ) ;
5792: LD_VAR 0 5
5796: PPUSH
5797: LD_INT 1
5799: PPUSH
5800: CALL_OW 336
// if Snake in TeamOmar then
5804: LD_EXP 19
5808: PUSH
5809: LD_EXP 23
5813: IN
5814: IFFALSE 5832
// arm2 = arm2 ^ Snake ;
5816: LD_ADDR_VAR 0 7
5820: PUSH
5821: LD_VAR 0 7
5825: PUSH
5826: LD_EXP 19
5830: ADD
5831: ST_TO_ADDR
// temp = TeamOmar diff [ Omar , Sonya , Aviradze , Khattam , Makise , Oswald , Kowalski , Swansson , Olaf , Dwayne , Ralph , Evelyn , Snake ] ^ lab ^ workshop ^ oil ^ arm ;
5832: LD_ADDR_VAR 0 9
5836: PUSH
5837: LD_EXP 23
5841: PUSH
5842: LD_EXP 2
5846: PUSH
5847: LD_EXP 7
5851: PUSH
5852: LD_EXP 8
5856: PUSH
5857: LD_EXP 13
5861: PUSH
5862: LD_EXP 14
5866: PUSH
5867: LD_EXP 5
5871: PUSH
5872: LD_EXP 9
5876: PUSH
5877: LD_EXP 11
5881: PUSH
5882: LD_EXP 4
5886: PUSH
5887: LD_EXP 12
5891: PUSH
5892: LD_EXP 6
5896: PUSH
5897: LD_EXP 10
5901: PUSH
5902: LD_EXP 19
5906: PUSH
5907: EMPTY
5908: LIST
5909: LIST
5910: LIST
5911: LIST
5912: LIST
5913: LIST
5914: LIST
5915: LIST
5916: LIST
5917: LIST
5918: LIST
5919: LIST
5920: LIST
5921: PUSH
5922: LD_VAR 0 3
5926: ADD
5927: PUSH
5928: LD_VAR 0 6
5932: ADD
5933: PUSH
5934: LD_VAR 0 4
5938: ADD
5939: PUSH
5940: LD_VAR 0 5
5944: ADD
5945: DIFF
5946: ST_TO_ADDR
// while arm2 < 2 do
5947: LD_VAR 0 7
5951: PUSH
5952: LD_INT 2
5954: LESS
5955: IFFALSE 6021
// begin j = rand ( 1 , temp ) ;
5957: LD_ADDR_VAR 0 11
5961: PUSH
5962: LD_INT 1
5964: PPUSH
5965: LD_VAR 0 9
5969: PPUSH
5970: CALL_OW 12
5974: ST_TO_ADDR
// arm2 = arm2 ^ temp [ j ] ;
5975: LD_ADDR_VAR 0 7
5979: PUSH
5980: LD_VAR 0 7
5984: PUSH
5985: LD_VAR 0 9
5989: PUSH
5990: LD_VAR 0 11
5994: ARRAY
5995: ADD
5996: ST_TO_ADDR
// temp = temp diff temp [ j ] ;
5997: LD_ADDR_VAR 0 9
6001: PUSH
6002: LD_VAR 0 9
6006: PUSH
6007: LD_VAR 0 9
6011: PUSH
6012: LD_VAR 0 11
6016: ARRAY
6017: DIFF
6018: ST_TO_ADDR
// end ;
6019: GO 5947
// everyone = everyone diff arm2 ;
6021: LD_ADDR_VAR 0 10
6025: PUSH
6026: LD_VAR 0 10
6030: PUSH
6031: LD_VAR 0 7
6035: DIFF
6036: ST_TO_ADDR
// setclass ( arm2 , class_soldier ) ;
6037: LD_VAR 0 7
6041: PPUSH
6042: LD_INT 1
6044: PPUSH
6045: CALL_OW 336
// temp = TeamOmar diff [ Omar , Sonya , Aviradze , Khattam , Makise , Oswald , Kowalski , Swansson , Olaf , Dwayne , Ralph , Evelyn , Snake ] ^ lab ^ workshop ^ oil ^ arm ^ arm2 ;
6049: LD_ADDR_VAR 0 9
6053: PUSH
6054: LD_EXP 23
6058: PUSH
6059: LD_EXP 2
6063: PUSH
6064: LD_EXP 7
6068: PUSH
6069: LD_EXP 8
6073: PUSH
6074: LD_EXP 13
6078: PUSH
6079: LD_EXP 14
6083: PUSH
6084: LD_EXP 5
6088: PUSH
6089: LD_EXP 9
6093: PUSH
6094: LD_EXP 11
6098: PUSH
6099: LD_EXP 4
6103: PUSH
6104: LD_EXP 12
6108: PUSH
6109: LD_EXP 6
6113: PUSH
6114: LD_EXP 10
6118: PUSH
6119: LD_EXP 19
6123: PUSH
6124: EMPTY
6125: LIST
6126: LIST
6127: LIST
6128: LIST
6129: LIST
6130: LIST
6131: LIST
6132: LIST
6133: LIST
6134: LIST
6135: LIST
6136: LIST
6137: LIST
6138: PUSH
6139: LD_VAR 0 3
6143: ADD
6144: PUSH
6145: LD_VAR 0 6
6149: ADD
6150: PUSH
6151: LD_VAR 0 4
6155: ADD
6156: PUSH
6157: LD_VAR 0 5
6161: ADD
6162: PUSH
6163: LD_VAR 0 7
6167: ADD
6168: DIFF
6169: ST_TO_ADDR
// while dep < 2 do
6170: LD_VAR 0 8
6174: PUSH
6175: LD_INT 2
6177: LESS
6178: IFFALSE 6244
// begin j = rand ( 1 , temp ) ;
6180: LD_ADDR_VAR 0 11
6184: PUSH
6185: LD_INT 1
6187: PPUSH
6188: LD_VAR 0 9
6192: PPUSH
6193: CALL_OW 12
6197: ST_TO_ADDR
// dep = dep ^ temp [ j ] ;
6198: LD_ADDR_VAR 0 8
6202: PUSH
6203: LD_VAR 0 8
6207: PUSH
6208: LD_VAR 0 9
6212: PUSH
6213: LD_VAR 0 11
6217: ARRAY
6218: ADD
6219: ST_TO_ADDR
// temp = temp diff temp [ j ] ;
6220: LD_ADDR_VAR 0 9
6224: PUSH
6225: LD_VAR 0 9
6229: PUSH
6230: LD_VAR 0 9
6234: PUSH
6235: LD_VAR 0 11
6239: ARRAY
6240: DIFF
6241: ST_TO_ADDR
// end ;
6242: GO 6170
// everyone = everyone diff dep ;
6244: LD_ADDR_VAR 0 10
6248: PUSH
6249: LD_VAR 0 10
6253: PUSH
6254: LD_VAR 0 8
6258: DIFF
6259: ST_TO_ADDR
// if everyone > 0 then
6260: LD_VAR 0 10
6264: PUSH
6265: LD_INT 0
6267: GREATER
6268: IFFALSE 6302
// for i in everyone do
6270: LD_ADDR_VAR 0 2
6274: PUSH
6275: LD_VAR 0 10
6279: PUSH
6280: FOR_IN
6281: IFFALSE 6300
// PlaceUnitArea ( i , start , false ) ;
6283: LD_VAR 0 2
6287: PPUSH
6288: LD_INT 1
6290: PPUSH
6291: LD_INT 0
6293: PPUSH
6294: CALL_OW 49
6298: GO 6280
6300: POP
6301: POP
// for i in lab do
6302: LD_ADDR_VAR 0 2
6306: PUSH
6307: LD_VAR 0 3
6311: PUSH
6312: FOR_IN
6313: IFFALSE 6338
// PlaceUnitXYR ( i , 94 , 89 , 2 , false ) ;
6315: LD_VAR 0 2
6319: PPUSH
6320: LD_INT 94
6322: PPUSH
6323: LD_INT 89
6325: PPUSH
6326: LD_INT 2
6328: PPUSH
6329: LD_INT 0
6331: PPUSH
6332: CALL_OW 50
6336: GO 6312
6338: POP
6339: POP
// for i in workshop do
6340: LD_ADDR_VAR 0 2
6344: PUSH
6345: LD_VAR 0 6
6349: PUSH
6350: FOR_IN
6351: IFFALSE 6376
// PlaceunitXYR ( i , 111 , 97 , 3 , false ) ;
6353: LD_VAR 0 2
6357: PPUSH
6358: LD_INT 111
6360: PPUSH
6361: LD_INT 97
6363: PPUSH
6364: LD_INT 3
6366: PPUSH
6367: LD_INT 0
6369: PPUSH
6370: CALL_OW 50
6374: GO 6350
6376: POP
6377: POP
// for i in oil do
6378: LD_ADDR_VAR 0 2
6382: PUSH
6383: LD_VAR 0 4
6387: PUSH
6388: FOR_IN
6389: IFFALSE 6414
// PlaceUnitXYR ( i , 78 , 93 , 2 , false ) ;
6391: LD_VAR 0 2
6395: PPUSH
6396: LD_INT 78
6398: PPUSH
6399: LD_INT 93
6401: PPUSH
6402: LD_INT 2
6404: PPUSH
6405: LD_INT 0
6407: PPUSH
6408: CALL_OW 50
6412: GO 6388
6414: POP
6415: POP
// for i in arm do
6416: LD_ADDR_VAR 0 2
6420: PUSH
6421: LD_VAR 0 5
6425: PUSH
6426: FOR_IN
6427: IFFALSE 6445
// PlaceHumanInUnit ( i , armoury ) ;
6429: LD_VAR 0 2
6433: PPUSH
6434: LD_VAR 0 13
6438: PPUSH
6439: CALL_OW 52
6443: GO 6426
6445: POP
6446: POP
// PlaceUnitXYR ( arm2 [ 1 ] , 120 , 79 , 2 , false ) ;
6447: LD_VAR 0 7
6451: PUSH
6452: LD_INT 1
6454: ARRAY
6455: PPUSH
6456: LD_INT 120
6458: PPUSH
6459: LD_INT 79
6461: PPUSH
6462: LD_INT 2
6464: PPUSH
6465: LD_INT 0
6467: PPUSH
6468: CALL_OW 50
// PlaceUnitXYR ( arm2 [ 2 ] , 120 , 79 , 2 , false ) ;
6472: LD_VAR 0 7
6476: PUSH
6477: LD_INT 2
6479: ARRAY
6480: PPUSH
6481: LD_INT 120
6483: PPUSH
6484: LD_INT 79
6486: PPUSH
6487: LD_INT 2
6489: PPUSH
6490: LD_INT 0
6492: PPUSH
6493: CALL_OW 50
// for i in dep do
6497: LD_ADDR_VAR 0 2
6501: PUSH
6502: LD_VAR 0 8
6506: PUSH
6507: FOR_IN
6508: IFFALSE 6526
// PlaceHumanInUnit ( i , depot ) ;
6510: LD_VAR 0 2
6514: PPUSH
6515: LD_VAR 0 12
6519: PPUSH
6520: CALL_OW 52
6524: GO 6507
6526: POP
6527: POP
// cargos = [ ] ;
6528: LD_ADDR_VAR 0 14
6532: PUSH
6533: EMPTY
6534: ST_TO_ADDR
// uc_side = 2 ;
6535: LD_ADDR_OWVAR 20
6539: PUSH
6540: LD_INT 2
6542: ST_TO_ADDR
// uc_nation = nation_arabian ;
6543: LD_ADDR_OWVAR 21
6547: PUSH
6548: LD_INT 2
6550: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
6551: LD_ADDR_OWVAR 37
6555: PUSH
6556: LD_INT 14
6558: ST_TO_ADDR
// vc_weapon = ar_cargo_bay ;
6559: LD_ADDR_OWVAR 40
6563: PUSH
6564: LD_INT 32
6566: ST_TO_ADDR
// vc_engine = engine_combustion ;
6567: LD_ADDR_OWVAR 39
6571: PUSH
6572: LD_INT 1
6574: ST_TO_ADDR
// vc_control = control_manual ;
6575: LD_ADDR_OWVAR 38
6579: PUSH
6580: LD_INT 1
6582: ST_TO_ADDR
// temp = CreateVehicle ;
6583: LD_ADDR_VAR 0 9
6587: PUSH
6588: CALL_OW 45
6592: ST_TO_ADDR
// SetDir ( temp , 5 ) ;
6593: LD_VAR 0 9
6597: PPUSH
6598: LD_INT 5
6600: PPUSH
6601: CALL_OW 233
// SetFuel ( temp , 80 ) ;
6605: LD_VAR 0 9
6609: PPUSH
6610: LD_INT 80
6612: PPUSH
6613: CALL_OW 240
// SetCargo ( temp , mat_artifact , 40 ) ;
6617: LD_VAR 0 9
6621: PPUSH
6622: LD_INT 4
6624: PPUSH
6625: LD_INT 40
6627: PPUSH
6628: CALL_OW 290
// PlaceUnitXY ( temp , 91 , 80 , false ) ;
6632: LD_VAR 0 9
6636: PPUSH
6637: LD_INT 91
6639: PPUSH
6640: LD_INT 80
6642: PPUSH
6643: LD_INT 0
6645: PPUSH
6646: CALL_OW 48
// for i = 1 to 9 do
6650: LD_ADDR_VAR 0 2
6654: PUSH
6655: DOUBLE
6656: LD_INT 1
6658: DEC
6659: ST_TO_ADDR
6660: LD_INT 9
6662: PUSH
6663: FOR_TO
6664: IFFALSE 6739
// begin if i < 5 then
6666: LD_VAR 0 2
6670: PUSH
6671: LD_INT 5
6673: LESS
6674: IFFALSE 6686
// vc_control = control_manual else
6676: LD_ADDR_OWVAR 38
6680: PUSH
6681: LD_INT 1
6683: ST_TO_ADDR
6684: GO 6694
// vc_control = control_apeman ;
6686: LD_ADDR_OWVAR 38
6690: PUSH
6691: LD_INT 5
6693: ST_TO_ADDR
// vc_engine = [ engine_siberite , engine_combustion ] [ rand ( 1 , 2 ) ] ;
6694: LD_ADDR_OWVAR 39
6698: PUSH
6699: LD_INT 3
6701: PUSH
6702: LD_INT 1
6704: PUSH
6705: EMPTY
6706: LIST
6707: LIST
6708: PUSH
6709: LD_INT 1
6711: PPUSH
6712: LD_INT 2
6714: PPUSH
6715: CALL_OW 12
6719: ARRAY
6720: ST_TO_ADDR
// cargos = cargos ^ createvehicle ;
6721: LD_ADDR_VAR 0 14
6725: PUSH
6726: LD_VAR 0 14
6730: PUSH
6731: CALL_OW 45
6735: ADD
6736: ST_TO_ADDR
// end ;
6737: GO 6663
6739: POP
6740: POP
// for i = 1 to 5 do
6741: LD_ADDR_VAR 0 2
6745: PUSH
6746: DOUBLE
6747: LD_INT 1
6749: DEC
6750: ST_TO_ADDR
6751: LD_INT 5
6753: PUSH
6754: FOR_TO
6755: IFFALSE 6860
// begin vc_weapon = [ ar_gatling_gun , ar_gun , ar_rocket_launcher ] [ rand ( 1 , 3 ) ] ;
6757: LD_ADDR_OWVAR 40
6761: PUSH
6762: LD_INT 25
6764: PUSH
6765: LD_INT 27
6767: PUSH
6768: LD_INT 28
6770: PUSH
6771: EMPTY
6772: LIST
6773: LIST
6774: LIST
6775: PUSH
6776: LD_INT 1
6778: PPUSH
6779: LD_INT 3
6781: PPUSH
6782: CALL_OW 12
6786: ARRAY
6787: ST_TO_ADDR
// vc_engine = [ engine_combustion , engine_siberite ] [ rand ( 1 , 2 ) ] ;
6788: LD_ADDR_OWVAR 39
6792: PUSH
6793: LD_INT 1
6795: PUSH
6796: LD_INT 3
6798: PUSH
6799: EMPTY
6800: LIST
6801: LIST
6802: PUSH
6803: LD_INT 1
6805: PPUSH
6806: LD_INT 2
6808: PPUSH
6809: CALL_OW 12
6813: ARRAY
6814: ST_TO_ADDR
// vc_control = [ control_manual , control_apeman ] [ rand ( 1 , 2 ) ] ;
6815: LD_ADDR_OWVAR 38
6819: PUSH
6820: LD_INT 1
6822: PUSH
6823: LD_INT 5
6825: PUSH
6826: EMPTY
6827: LIST
6828: LIST
6829: PUSH
6830: LD_INT 1
6832: PPUSH
6833: LD_INT 2
6835: PPUSH
6836: CALL_OW 12
6840: ARRAY
6841: ST_TO_ADDR
// cargos = cargos ^ createvehicle ;
6842: LD_ADDR_VAR 0 14
6846: PUSH
6847: LD_VAR 0 14
6851: PUSH
6852: CALL_OW 45
6856: ADD
6857: ST_TO_ADDR
// end ;
6858: GO 6754
6860: POP
6861: POP
// for i in cargos do
6862: LD_ADDR_VAR 0 2
6866: PUSH
6867: LD_VAR 0 14
6871: PUSH
6872: FOR_IN
6873: IFFALSE 7026
// begin SetDir ( i , rand ( 0 , 5 ) ) ;
6875: LD_VAR 0 2
6879: PPUSH
6880: LD_INT 0
6882: PPUSH
6883: LD_INT 5
6885: PPUSH
6886: CALL_OW 12
6890: PPUSH
6891: CALL_OW 233
// PlaceUnitXYR ( i , 91 , 106 , 9 , false ) ;
6895: LD_VAR 0 2
6899: PPUSH
6900: LD_INT 91
6902: PPUSH
6903: LD_INT 106
6905: PPUSH
6906: LD_INT 9
6908: PPUSH
6909: LD_INT 0
6911: PPUSH
6912: CALL_OW 50
// case rand ( 1 , 6 ) of 1 , 2 , 3 :
6916: LD_INT 1
6918: PPUSH
6919: LD_INT 6
6921: PPUSH
6922: CALL_OW 12
6926: PUSH
6927: LD_INT 1
6929: DOUBLE
6930: EQUAL
6931: IFTRUE 6947
6933: LD_INT 2
6935: DOUBLE
6936: EQUAL
6937: IFTRUE 6947
6939: LD_INT 3
6941: DOUBLE
6942: EQUAL
6943: IFTRUE 6947
6945: GO 6965
6947: POP
// AddCargo ( i , mat_cans , 100 ) ; 4 , 5 :
6948: LD_VAR 0 2
6952: PPUSH
6953: LD_INT 1
6955: PPUSH
6956: LD_INT 100
6958: PPUSH
6959: CALL_OW 291
6963: GO 7024
6965: LD_INT 4
6967: DOUBLE
6968: EQUAL
6969: IFTRUE 6979
6971: LD_INT 5
6973: DOUBLE
6974: EQUAL
6975: IFTRUE 6979
6977: GO 6997
6979: POP
// AddCargo ( i , mat_siberit , 100 ) ; 6 :
6980: LD_VAR 0 2
6984: PPUSH
6985: LD_INT 3
6987: PPUSH
6988: LD_INT 100
6990: PPUSH
6991: CALL_OW 291
6995: GO 7024
6997: LD_INT 6
6999: DOUBLE
7000: EQUAL
7001: IFTRUE 7005
7003: GO 7023
7005: POP
// AddCargo ( i , mat_oil , 100 ) ; end ;
7006: LD_VAR 0 2
7010: PPUSH
7011: LD_INT 2
7013: PPUSH
7014: LD_INT 100
7016: PPUSH
7017: CALL_OW 291
7021: GO 7024
7023: POP
// end ;
7024: GO 6872
7026: POP
7027: POP
// ComBuild ( Omar , b_lab , 89 , 84 , 2 ) ;
7028: LD_EXP 2
7032: PPUSH
7033: LD_INT 6
7035: PPUSH
7036: LD_INT 89
7038: PPUSH
7039: LD_INT 84
7041: PPUSH
7042: LD_INT 2
7044: PPUSH
7045: CALL_OW 145
// ComBuild ( workshop , b_workshop , 119 , 97 , 4 ) ;
7049: LD_VAR 0 6
7053: PPUSH
7054: LD_INT 2
7056: PPUSH
7057: LD_INT 119
7059: PPUSH
7060: LD_INT 97
7062: PPUSH
7063: LD_INT 4
7065: PPUSH
7066: CALL_OW 145
// ComBuild ( oil [ 2 ] , b_oil_mine , 73 , 92 , 1 ) ;
7070: LD_VAR 0 4
7074: PUSH
7075: LD_INT 2
7077: ARRAY
7078: PPUSH
7079: LD_INT 29
7081: PPUSH
7082: LD_INT 73
7084: PPUSH
7085: LD_INT 92
7087: PPUSH
7088: LD_INT 1
7090: PPUSH
7091: CALL_OW 145
// end ;
7095: LD_VAR 0 1
7099: RET
// function Alliance ; var i , temp ; begin
7100: LD_INT 0
7102: PPUSH
7103: PPUSH
7104: PPUSH
// Randomize ;
7105: CALL_OW 10
// if difficulty >= 1 then
7109: LD_OWVAR 67
7113: PUSH
7114: LD_INT 1
7116: GREATEREQUAL
7117: IFFALSE 7314
// begin SetTech ( tech_tech1 , 7 , state_researched ) ;
7119: LD_INT 48
7121: PPUSH
7122: LD_INT 7
7124: PPUSH
7125: LD_INT 2
7127: PPUSH
7128: CALL_OW 322
// SetTech ( tech_tech2 , 7 , state_researched ) ;
7132: LD_INT 49
7134: PPUSH
7135: LD_INT 7
7137: PPUSH
7138: LD_INT 2
7140: PPUSH
7141: CALL_OW 322
// SetTech ( tech_tech3 , 7 , state_researched ) ;
7145: LD_INT 50
7147: PPUSH
7148: LD_INT 7
7150: PPUSH
7151: LD_INT 2
7153: PPUSH
7154: CALL_OW 322
// SetTech ( tech_weap1 , 7 , state_researched ) ;
7158: LD_INT 51
7160: PPUSH
7161: LD_INT 7
7163: PPUSH
7164: LD_INT 2
7166: PPUSH
7167: CALL_OW 322
// SetTech ( tech_comp1 , 7 , state_researched ) ;
7171: LD_INT 57
7173: PPUSH
7174: LD_INT 7
7176: PPUSH
7177: LD_INT 2
7179: PPUSH
7180: CALL_OW 322
// SetTech ( tech_sib1 , 7 , state_researched ) ;
7184: LD_INT 54
7186: PPUSH
7187: LD_INT 7
7189: PPUSH
7190: LD_INT 2
7192: PPUSH
7193: CALL_OW 322
// SetTech ( tech_sib2 , 7 , state_researched ) ;
7197: LD_INT 55
7199: PPUSH
7200: LD_INT 7
7202: PPUSH
7203: LD_INT 2
7205: PPUSH
7206: CALL_OW 322
// SetTech ( tech_opto1 , 7 , state_researched ) ;
7210: LD_INT 60
7212: PPUSH
7213: LD_INT 7
7215: PPUSH
7216: LD_INT 2
7218: PPUSH
7219: CALL_OW 322
// SetTech ( tech_opto2 , 7 , state_researched ) ;
7223: LD_INT 61
7225: PPUSH
7226: LD_INT 7
7228: PPUSH
7229: LD_INT 2
7231: PPUSH
7232: CALL_OW 322
// SetTech ( tech_st1 , 7 , state_researched ) ;
7236: LD_INT 63
7238: PPUSH
7239: LD_INT 7
7241: PPUSH
7242: LD_INT 2
7244: PPUSH
7245: CALL_OW 322
// SetTech ( tech_taufield , 7 , state_researched ) ;
7249: LD_INT 30
7251: PPUSH
7252: LD_INT 7
7254: PPUSH
7255: LD_INT 2
7257: PPUSH
7258: CALL_OW 322
// SetTech ( tech_taurad , 7 , state_researched ) ;
7262: LD_INT 28
7264: PPUSH
7265: LD_INT 7
7267: PPUSH
7268: LD_INT 2
7270: PPUSH
7271: CALL_OW 322
// SetTech ( tech_SpacAnom , 7 , state_researched ) ;
7275: LD_INT 29
7277: PPUSH
7278: LD_INT 7
7280: PPUSH
7281: LD_INT 2
7283: PPUSH
7284: CALL_OW 322
// SetTech ( tech_limteleport , 7 , state_researched ) ;
7288: LD_INT 37
7290: PPUSH
7291: LD_INT 7
7293: PPUSH
7294: LD_INT 2
7296: PPUSH
7297: CALL_OW 322
// SetTech ( tech_lapser , 7 , state_researched ) ;
7301: LD_INT 31
7303: PPUSH
7304: LD_INT 7
7306: PPUSH
7307: LD_INT 2
7309: PPUSH
7310: CALL_OW 322
// end ; if difficulty >= 2 then
7314: LD_OWVAR 67
7318: PUSH
7319: LD_INT 2
7321: GREATEREQUAL
7322: IFFALSE 7376
// begin SetTech ( tech_weap2 , 7 , state_researched ) ;
7324: LD_INT 52
7326: PPUSH
7327: LD_INT 7
7329: PPUSH
7330: LD_INT 2
7332: PPUSH
7333: CALL_OW 322
// SetTech ( tech_comp2 , 7 , state_researched ) ;
7337: LD_INT 58
7339: PPUSH
7340: LD_INT 7
7342: PPUSH
7343: LD_INT 2
7345: PPUSH
7346: CALL_OW 322
// SetTech ( tech_opto3 , 7 , state_researched ) ;
7350: LD_INT 62
7352: PPUSH
7353: LD_INT 7
7355: PPUSH
7356: LD_INT 2
7358: PPUSH
7359: CALL_OW 322
// SetTech ( tech_st2 , 7 , state_researched ) ;
7363: LD_INT 64
7365: PPUSH
7366: LD_INT 7
7368: PPUSH
7369: LD_INT 2
7371: PPUSH
7372: CALL_OW 322
// end ; if difficulty = 3 then
7376: LD_OWVAR 67
7380: PUSH
7381: LD_INT 3
7383: EQUAL
7384: IFFALSE 7425
// begin SetTech ( tech_weap3 , 7 , state_researched ) ;
7386: LD_INT 53
7388: PPUSH
7389: LD_INT 7
7391: PPUSH
7392: LD_INT 2
7394: PPUSH
7395: CALL_OW 322
// SetTech ( tech_comp3 , 7 , state_researched ) ;
7399: LD_INT 59
7401: PPUSH
7402: LD_INT 7
7404: PPUSH
7405: LD_INT 2
7407: PPUSH
7408: CALL_OW 322
// SetTech ( tech_st3 , 7 , state_researched ) ;
7412: LD_INT 65
7414: PPUSH
7415: LD_INT 7
7417: PPUSH
7418: LD_INT 2
7420: PPUSH
7421: CALL_OW 322
// end ; All_depot = HexInfo ( 21 , 14 ) ;
7425: LD_ADDR_EXP 37
7429: PUSH
7430: LD_INT 21
7432: PPUSH
7433: LD_INT 14
7435: PPUSH
7436: CALL_OW 428
7440: ST_TO_ADDR
// All_fac1 = HexInfo ( 26 , 9 ) ;
7441: LD_ADDR_EXP 38
7445: PUSH
7446: LD_INT 26
7448: PPUSH
7449: LD_INT 9
7451: PPUSH
7452: CALL_OW 428
7456: ST_TO_ADDR
// All_fac2 = HexInfo ( 23 , 36 ) ;
7457: LD_ADDR_EXP 39
7461: PUSH
7462: LD_INT 23
7464: PPUSH
7465: LD_INT 36
7467: PPUSH
7468: CALL_OW 428
7472: ST_TO_ADDR
// All_lab1 = HexInfo ( 10 , 6 ) ;
7473: LD_ADDR_EXP 40
7477: PUSH
7478: LD_INT 10
7480: PPUSH
7481: LD_INT 6
7483: PPUSH
7484: CALL_OW 428
7488: ST_TO_ADDR
// All_lab2 = HexInfo ( 13 , 20 ) ;
7489: LD_ADDR_EXP 41
7493: PUSH
7494: LD_INT 13
7496: PPUSH
7497: LD_INT 20
7499: PPUSH
7500: CALL_OW 428
7504: ST_TO_ADDR
// All_lab3 = HexInfo ( 32 , 4 ) ;
7505: LD_ADDR_EXP 42
7509: PUSH
7510: LD_INT 32
7512: PPUSH
7513: LD_INT 4
7515: PPUSH
7516: CALL_OW 428
7520: ST_TO_ADDR
// All_Rubarracks = HexInfo ( 44 , 35 ) ;
7521: LD_ADDR_EXP 43
7525: PUSH
7526: LD_INT 44
7528: PPUSH
7529: LD_INT 35
7531: PPUSH
7532: CALL_OW 428
7536: ST_TO_ADDR
// All_Ambarracks = HexInfo ( 34 , 41 ) ;
7537: LD_ADDR_EXP 44
7541: PUSH
7542: LD_INT 34
7544: PPUSH
7545: LD_INT 41
7547: PPUSH
7548: CALL_OW 428
7552: ST_TO_ADDR
// All_bunkers = FilterAllUnits ( [ [ f_side , 7 ] , [ f_btype , b_bunker ] ] ) ;
7553: LD_ADDR_EXP 45
7557: PUSH
7558: LD_INT 22
7560: PUSH
7561: LD_INT 7
7563: PUSH
7564: EMPTY
7565: LIST
7566: LIST
7567: PUSH
7568: LD_INT 30
7570: PUSH
7571: LD_INT 32
7573: PUSH
7574: EMPTY
7575: LIST
7576: LIST
7577: PUSH
7578: EMPTY
7579: LIST
7580: LIST
7581: PPUSH
7582: CALL_OW 69
7586: ST_TO_ADDR
// Alliance_soldiers = [ ] ;
7587: LD_ADDR_EXP 30
7591: PUSH
7592: EMPTY
7593: ST_TO_ADDR
// Alliance_bazookers = [ ] ;
7594: LD_ADDR_EXP 31
7598: PUSH
7599: EMPTY
7600: ST_TO_ADDR
// Alliance_snipers = [ ] ;
7601: LD_ADDR_EXP 32
7605: PUSH
7606: EMPTY
7607: ST_TO_ADDR
// Alliance_sci = [ ] ;
7608: LD_ADDR_EXP 33
7612: PUSH
7613: EMPTY
7614: ST_TO_ADDR
// Alliance_engs = [ ] ;
7615: LD_ADDR_EXP 34
7619: PUSH
7620: EMPTY
7621: ST_TO_ADDR
// Alliance_mechs = [ ] ;
7622: LD_ADDR_EXP 35
7626: PUSH
7627: EMPTY
7628: ST_TO_ADDR
// Alliance_crane = 0 ;
7629: LD_ADDR_EXP 36
7633: PUSH
7634: LD_INT 0
7636: ST_TO_ADDR
// damaged_buildings = [ ] ;
7637: LD_ADDR_EXP 46
7641: PUSH
7642: EMPTY
7643: ST_TO_ADDR
// damaged_people = [ ] ;
7644: LD_ADDR_EXP 47
7648: PUSH
7649: EMPTY
7650: ST_TO_ADDR
// damaged_crane = 0 ;
7651: LD_ADDR_EXP 48
7655: PUSH
7656: LD_INT 0
7658: ST_TO_ADDR
// for i in FilterAllunits ( [ f_side , 7 ] ) do
7659: LD_ADDR_VAR 0 2
7663: PUSH
7664: LD_INT 22
7666: PUSH
7667: LD_INT 7
7669: PUSH
7670: EMPTY
7671: LIST
7672: LIST
7673: PPUSH
7674: CALL_OW 69
7678: PUSH
7679: FOR_IN
7680: IFFALSE 7713
// SetBLevel ( i , [ 6 , 8 , 10 ] [ difficulty ] ) ;
7682: LD_VAR 0 2
7686: PPUSH
7687: LD_INT 6
7689: PUSH
7690: LD_INT 8
7692: PUSH
7693: LD_INT 10
7695: PUSH
7696: EMPTY
7697: LIST
7698: LIST
7699: LIST
7700: PUSH
7701: LD_OWVAR 67
7705: ARRAY
7706: PPUSH
7707: CALL_OW 241
7711: GO 7679
7713: POP
7714: POP
// InitUc ;
7715: CALL_OW 18
// InitHc ;
7719: CALL_OW 19
// uc_side = 7 ;
7723: LD_ADDR_OWVAR 20
7727: PUSH
7728: LD_INT 7
7730: ST_TO_ADDR
// Roth = NewCharacter ( Roth ) ;
7731: LD_ADDR_EXP 26
7735: PUSH
7736: LD_STRING Roth
7738: PPUSH
7739: CALL_OW 25
7743: ST_TO_ADDR
// SetClass ( Roth , class_scientistic ) ;
7744: LD_EXP 26
7748: PPUSH
7749: LD_INT 4
7751: PPUSH
7752: CALL_OW 336
// if testing then
7756: LD_EXP 49
7760: IFFALSE 7777
// Gossudarov = NewCharacter ( Gossudarov ) else
7762: LD_ADDR_EXP 27
7766: PUSH
7767: LD_STRING Gossudarov
7769: PPUSH
7770: CALL_OW 25
7774: ST_TO_ADDR
7775: GO 7790
// Gossudarov = CreateCharacter ( Gossudarov_10 ) ;
7777: LD_ADDR_EXP 27
7781: PUSH
7782: LD_STRING Gossudarov_10
7784: PPUSH
7785: CALL_OW 34
7789: ST_TO_ADDR
// if Gossudarov then
7790: LD_EXP 27
7794: IFFALSE 7808
// SetClass ( Gossudarov , class_scientistic ) ;
7796: LD_EXP 27
7800: PPUSH
7801: LD_INT 4
7803: PPUSH
7804: CALL_OW 336
// for i = 1 to 5 do
7808: LD_ADDR_VAR 0 2
7812: PUSH
7813: DOUBLE
7814: LD_INT 1
7816: DEC
7817: ST_TO_ADDR
7818: LD_INT 5
7820: PUSH
7821: FOR_TO
7822: IFFALSE 7879
// begin uc_nation = [ nation_american , nation_russian ] [ rand ( 1 , 2 ) ] ;
7824: LD_ADDR_OWVAR 21
7828: PUSH
7829: LD_INT 1
7831: PUSH
7832: LD_INT 3
7834: PUSH
7835: EMPTY
7836: LIST
7837: LIST
7838: PUSH
7839: LD_INT 1
7841: PPUSH
7842: LD_INT 2
7844: PPUSH
7845: CALL_OW 12
7849: ARRAY
7850: ST_TO_ADDR
// PrepareSoldier ( false , 7 ) ;
7851: LD_INT 0
7853: PPUSH
7854: LD_INT 7
7856: PPUSH
7857: CALL_OW 381
// Alliance_soldiers = Alliance_soldiers ^ createhuman ;
7861: LD_ADDR_EXP 30
7865: PUSH
7866: LD_EXP 30
7870: PUSH
7871: CALL_OW 44
7875: ADD
7876: ST_TO_ADDR
// end ;
7877: GO 7821
7879: POP
7880: POP
// for i = 1 to 3 do
7881: LD_ADDR_VAR 0 2
7885: PUSH
7886: DOUBLE
7887: LD_INT 1
7889: DEC
7890: ST_TO_ADDR
7891: LD_INT 3
7893: PUSH
7894: FOR_TO
7895: IFFALSE 7974
// begin uc_nation = [ nation_american , nation_russian ] [ rand ( 1 , 2 ) ] ;
7897: LD_ADDR_OWVAR 21
7901: PUSH
7902: LD_INT 1
7904: PUSH
7905: LD_INT 3
7907: PUSH
7908: EMPTY
7909: LIST
7910: LIST
7911: PUSH
7912: LD_INT 1
7914: PPUSH
7915: LD_INT 2
7917: PPUSH
7918: CALL_OW 12
7922: ARRAY
7923: ST_TO_ADDR
// PrepareSoldier ( false , 10 ) ;
7924: LD_INT 0
7926: PPUSH
7927: LD_INT 10
7929: PPUSH
7930: CALL_OW 381
// temp = createhuman ;
7934: LD_ADDR_VAR 0 3
7938: PUSH
7939: CALL_OW 44
7943: ST_TO_ADDR
// SetClass ( temp , class_bazooker ) ;
7944: LD_VAR 0 3
7948: PPUSH
7949: LD_INT 9
7951: PPUSH
7952: CALL_OW 336
// Alliance_bazookers = Alliance_bazookers ^ temp ;
7956: LD_ADDR_EXP 31
7960: PUSH
7961: LD_EXP 31
7965: PUSH
7966: LD_VAR 0 3
7970: ADD
7971: ST_TO_ADDR
// end ;
7972: GO 7894
7974: POP
7975: POP
// for i = 1 to 2 do
7976: LD_ADDR_VAR 0 2
7980: PUSH
7981: DOUBLE
7982: LD_INT 1
7984: DEC
7985: ST_TO_ADDR
7986: LD_INT 2
7988: PUSH
7989: FOR_TO
7990: IFFALSE 8069
// begin uc_nation = [ nation_american , nation_russian ] [ rand ( 1 , 2 ) ] ;
7992: LD_ADDR_OWVAR 21
7996: PUSH
7997: LD_INT 1
7999: PUSH
8000: LD_INT 3
8002: PUSH
8003: EMPTY
8004: LIST
8005: LIST
8006: PUSH
8007: LD_INT 1
8009: PPUSH
8010: LD_INT 2
8012: PPUSH
8013: CALL_OW 12
8017: ARRAY
8018: ST_TO_ADDR
// PrepareSoldier ( false , 10 ) ;
8019: LD_INT 0
8021: PPUSH
8022: LD_INT 10
8024: PPUSH
8025: CALL_OW 381
// temp = createhuman ;
8029: LD_ADDR_VAR 0 3
8033: PUSH
8034: CALL_OW 44
8038: ST_TO_ADDR
// SetClass ( temp , class_sniper ) ;
8039: LD_VAR 0 3
8043: PPUSH
8044: LD_INT 5
8046: PPUSH
8047: CALL_OW 336
// Alliance_snipers = Alliance_snipers ^ temp ;
8051: LD_ADDR_EXP 32
8055: PUSH
8056: LD_EXP 32
8060: PUSH
8061: LD_VAR 0 3
8065: ADD
8066: ST_TO_ADDR
// end ;
8067: GO 7989
8069: POP
8070: POP
// for i = 1 to 11 do
8071: LD_ADDR_VAR 0 2
8075: PUSH
8076: DOUBLE
8077: LD_INT 1
8079: DEC
8080: ST_TO_ADDR
8081: LD_INT 11
8083: PUSH
8084: FOR_TO
8085: IFFALSE 8142
// begin uc_nation = [ nation_american , nation_russian ] [ rand ( 1 , 2 ) ] ;
8087: LD_ADDR_OWVAR 21
8091: PUSH
8092: LD_INT 1
8094: PUSH
8095: LD_INT 3
8097: PUSH
8098: EMPTY
8099: LIST
8100: LIST
8101: PUSH
8102: LD_INT 1
8104: PPUSH
8105: LD_INT 2
8107: PPUSH
8108: CALL_OW 12
8112: ARRAY
8113: ST_TO_ADDR
// PrepareScientist ( false , 8 ) ;
8114: LD_INT 0
8116: PPUSH
8117: LD_INT 8
8119: PPUSH
8120: CALL_OW 384
// Alliance_sci = Alliance_sci ^ createhuman ;
8124: LD_ADDR_EXP 33
8128: PUSH
8129: LD_EXP 33
8133: PUSH
8134: CALL_OW 44
8138: ADD
8139: ST_TO_ADDR
// end ;
8140: GO 8084
8142: POP
8143: POP
// for i = 1 to 3 do
8144: LD_ADDR_VAR 0 2
8148: PUSH
8149: DOUBLE
8150: LD_INT 1
8152: DEC
8153: ST_TO_ADDR
8154: LD_INT 3
8156: PUSH
8157: FOR_TO
8158: IFFALSE 8215
// begin uc_nation = [ nation_american , nation_russian ] [ rand ( 1 , 2 ) ] ;
8160: LD_ADDR_OWVAR 21
8164: PUSH
8165: LD_INT 1
8167: PUSH
8168: LD_INT 3
8170: PUSH
8171: EMPTY
8172: LIST
8173: LIST
8174: PUSH
8175: LD_INT 1
8177: PPUSH
8178: LD_INT 2
8180: PPUSH
8181: CALL_OW 12
8185: ARRAY
8186: ST_TO_ADDR
// PrepareEngineer ( false , 10 ) ;
8187: LD_INT 0
8189: PPUSH
8190: LD_INT 10
8192: PPUSH
8193: CALL_OW 382
// Alliance_engs = Alliance_engs ^ createhuman ;
8197: LD_ADDR_EXP 34
8201: PUSH
8202: LD_EXP 34
8206: PUSH
8207: CALL_OW 44
8211: ADD
8212: ST_TO_ADDR
// end ;
8213: GO 8157
8215: POP
8216: POP
// for i = 1 to 6 do
8217: LD_ADDR_VAR 0 2
8221: PUSH
8222: DOUBLE
8223: LD_INT 1
8225: DEC
8226: ST_TO_ADDR
8227: LD_INT 6
8229: PUSH
8230: FOR_TO
8231: IFFALSE 8288
// begin uc_nation = [ nation_american , nation_russian ] [ rand ( 1 , 2 ) ] ;
8233: LD_ADDR_OWVAR 21
8237: PUSH
8238: LD_INT 1
8240: PUSH
8241: LD_INT 3
8243: PUSH
8244: EMPTY
8245: LIST
8246: LIST
8247: PUSH
8248: LD_INT 1
8250: PPUSH
8251: LD_INT 2
8253: PPUSH
8254: CALL_OW 12
8258: ARRAY
8259: ST_TO_ADDR
// PrepareMechanic ( false , 9 ) ;
8260: LD_INT 0
8262: PPUSH
8263: LD_INT 9
8265: PPUSH
8266: CALL_OW 383
// Alliance_mechs = Alliance_mechs ^ createhuman ;
8270: LD_ADDR_EXP 35
8274: PUSH
8275: LD_EXP 35
8279: PUSH
8280: CALL_OW 44
8284: ADD
8285: ST_TO_ADDR
// end ;
8286: GO 8230
8288: POP
8289: POP
// uc_nation = nation_russian ;
8290: LD_ADDR_OWVAR 21
8294: PUSH
8295: LD_INT 3
8297: ST_TO_ADDR
// vc_weapon = ru_crane ;
8298: LD_ADDR_OWVAR 40
8302: PUSH
8303: LD_INT 52
8305: ST_TO_ADDR
// vc_chassis = ru_medium_tracked ;
8306: LD_ADDR_OWVAR 37
8310: PUSH
8311: LD_INT 22
8313: ST_TO_ADDR
// vc_engine = engine_siberite ;
8314: LD_ADDR_OWVAR 39
8318: PUSH
8319: LD_INT 3
8321: ST_TO_ADDR
// vc_control = control_computer ;
8322: LD_ADDR_OWVAR 38
8326: PUSH
8327: LD_INT 3
8329: ST_TO_ADDR
// Alliance_crane = createvehicle ;
8330: LD_ADDR_EXP 36
8334: PUSH
8335: CALL_OW 45
8339: ST_TO_ADDR
// ; temp = Alliance_crane ^ Roth ^ Gossudarov diff 0 ;
8340: LD_ADDR_VAR 0 3
8344: PUSH
8345: LD_EXP 36
8349: PUSH
8350: LD_EXP 26
8354: ADD
8355: PUSH
8356: LD_EXP 27
8360: ADD
8361: PUSH
8362: LD_INT 0
8364: DIFF
8365: ST_TO_ADDR
// temp = temp ^ Alliance_soldiers ^ Alliance_bazookers ^ Alliance_snipers ^ Alliance_sci ^ Alliance_engs ^ Alliance_mechs ;
8366: LD_ADDR_VAR 0 3
8370: PUSH
8371: LD_VAR 0 3
8375: PUSH
8376: LD_EXP 30
8380: ADD
8381: PUSH
8382: LD_EXP 31
8386: ADD
8387: PUSH
8388: LD_EXP 32
8392: ADD
8393: PUSH
8394: LD_EXP 33
8398: ADD
8399: PUSH
8400: LD_EXP 34
8404: ADD
8405: PUSH
8406: LD_EXP 35
8410: ADD
8411: ST_TO_ADDR
// for i in temp do
8412: LD_ADDR_VAR 0 2
8416: PUSH
8417: LD_VAR 0 3
8421: PUSH
8422: FOR_IN
8423: IFFALSE 8442
// PlaceUnitArea ( i , AllianceSpawn , false ) ;
8425: LD_VAR 0 2
8429: PPUSH
8430: LD_INT 4
8432: PPUSH
8433: LD_INT 0
8435: PPUSH
8436: CALL_OW 49
8440: GO 8422
8442: POP
8443: POP
// end ;
8444: LD_VAR 0 1
8448: RET
// function Russians ; var i , temp ; var heavyguns , guns , lapsers , small_rockets , gatlings , large_rockets ; begin
8449: LD_INT 0
8451: PPUSH
8452: PPUSH
8453: PPUSH
8454: PPUSH
8455: PPUSH
8456: PPUSH
8457: PPUSH
8458: PPUSH
8459: PPUSH
// SetTech ( tech_tech1 , 3 , state_researched ) ;
8460: LD_INT 48
8462: PPUSH
8463: LD_INT 3
8465: PPUSH
8466: LD_INT 2
8468: PPUSH
8469: CALL_OW 322
// SetTech ( tech_tech2 , 3 , state_researched ) ;
8473: LD_INT 49
8475: PPUSH
8476: LD_INT 3
8478: PPUSH
8479: LD_INT 2
8481: PPUSH
8482: CALL_OW 322
// SetTech ( tech_tech3 , 3 , state_researched ) ;
8486: LD_INT 50
8488: PPUSH
8489: LD_INT 3
8491: PPUSH
8492: LD_INT 2
8494: PPUSH
8495: CALL_OW 322
// SetTech ( tech_weap1 , 3 , state_researched ) ;
8499: LD_INT 51
8501: PPUSH
8502: LD_INT 3
8504: PPUSH
8505: LD_INT 2
8507: PPUSH
8508: CALL_OW 322
// SetTech ( tech_comp1 , 3 , state_researched ) ;
8512: LD_INT 57
8514: PPUSH
8515: LD_INT 3
8517: PPUSH
8518: LD_INT 2
8520: PPUSH
8521: CALL_OW 322
// SetTech ( tech_sib1 , 3 , state_researched ) ;
8525: LD_INT 54
8527: PPUSH
8528: LD_INT 3
8530: PPUSH
8531: LD_INT 2
8533: PPUSH
8534: CALL_OW 322
// SetTech ( tech_sib2 , 3 , state_researched ) ;
8538: LD_INT 55
8540: PPUSH
8541: LD_INT 3
8543: PPUSH
8544: LD_INT 2
8546: PPUSH
8547: CALL_OW 322
// SetTech ( tech_st1 , 3 , state_researched ) ;
8551: LD_INT 63
8553: PPUSH
8554: LD_INT 3
8556: PPUSH
8557: LD_INT 2
8559: PPUSH
8560: CALL_OW 322
// SetTech ( tech_st2 , 3 , state_researched ) ;
8564: LD_INT 64
8566: PPUSH
8567: LD_INT 3
8569: PPUSH
8570: LD_INT 2
8572: PPUSH
8573: CALL_OW 322
// SetTech ( tech_lapser , 3 , state_researched ) ;
8577: LD_INT 31
8579: PPUSH
8580: LD_INT 3
8582: PPUSH
8583: LD_INT 2
8585: PPUSH
8586: CALL_OW 322
// if difficulty >= 2 then
8590: LD_OWVAR 67
8594: PUSH
8595: LD_INT 2
8597: GREATEREQUAL
8598: IFFALSE 8626
// begin SetTech ( tech_weap2 , 3 , state_researched ) ;
8600: LD_INT 52
8602: PPUSH
8603: LD_INT 3
8605: PPUSH
8606: LD_INT 2
8608: PPUSH
8609: CALL_OW 322
// SetTech ( tech_comp2 , 3 , state_researched ) ;
8613: LD_INT 58
8615: PPUSH
8616: LD_INT 3
8618: PPUSH
8619: LD_INT 2
8621: PPUSH
8622: CALL_OW 322
// end ; if difficulty = 3 then
8626: LD_OWVAR 67
8630: PUSH
8631: LD_INT 3
8633: EQUAL
8634: IFFALSE 8662
// begin SetTech ( tech_weap3 , 3 , state_researched ) ;
8636: LD_INT 53
8638: PPUSH
8639: LD_INT 3
8641: PPUSH
8642: LD_INT 2
8644: PPUSH
8645: CALL_OW 322
// SetTech ( tech_comp3 , 3 , state_researched ) ;
8649: LD_INT 59
8651: PPUSH
8652: LD_INT 3
8654: PPUSH
8655: LD_INT 2
8657: PPUSH
8658: CALL_OW 322
// end ; InitHc ;
8662: CALL_OW 19
// uc_nation = nation_russian ;
8666: LD_ADDR_OWVAR 21
8670: PUSH
8671: LD_INT 3
8673: ST_TO_ADDR
// uc_side = 3 ;
8674: LD_ADDR_OWVAR 20
8678: PUSH
8679: LD_INT 3
8681: ST_TO_ADDR
// Burlak = NewCharacter ( Burlak ) ;
8682: LD_ADDR_EXP 28
8686: PUSH
8687: LD_STRING Burlak
8689: PPUSH
8690: CALL_OW 25
8694: ST_TO_ADDR
// SetSkill ( Burlak , skill_combat , 6 ) ;
8695: LD_EXP 28
8699: PPUSH
8700: LD_INT 1
8702: PPUSH
8703: LD_INT 6
8705: PPUSH
8706: CALL_OW 237
// SetSkill ( Burlak , skill_engineering , 9 ) ;
8710: LD_EXP 28
8714: PPUSH
8715: LD_INT 2
8717: PPUSH
8718: LD_INT 9
8720: PPUSH
8721: CALL_OW 237
// SetSkill ( Burlak , skill_mechanical , 10 ) ;
8725: LD_EXP 28
8729: PPUSH
8730: LD_INT 3
8732: PPUSH
8733: LD_INT 10
8735: PPUSH
8736: CALL_OW 237
// SetSkill ( Burlak , skill_scientistic , 5 ) ;
8740: LD_EXP 28
8744: PPUSH
8745: LD_INT 4
8747: PPUSH
8748: LD_INT 5
8750: PPUSH
8751: CALL_OW 237
// vc_engine = engine_siberite ;
8755: LD_ADDR_OWVAR 39
8759: PUSH
8760: LD_INT 3
8762: ST_TO_ADDR
// vc_control = control_manual ;
8763: LD_ADDR_OWVAR 38
8767: PUSH
8768: LD_INT 1
8770: ST_TO_ADDR
// vc_chassis = ru_heavy_tracked ;
8771: LD_ADDR_OWVAR 37
8775: PUSH
8776: LD_INT 24
8778: ST_TO_ADDR
// vc_weapon = ru_heavy_gun ;
8779: LD_ADDR_OWVAR 40
8783: PUSH
8784: LD_INT 46
8786: ST_TO_ADDR
// Masha = CreateVehicle ;
8787: LD_ADDR_EXP 29
8791: PUSH
8792: CALL_OW 45
8796: ST_TO_ADDR
// setmark ( masha , 1 ) ;
8797: LD_EXP 29
8801: PPUSH
8802: LD_INT 1
8804: PPUSH
8805: CALL_OW 242
// PlaceHumanInUnit ( Burlak , Masha ) ;
8809: LD_EXP 28
8813: PPUSH
8814: LD_EXP 29
8818: PPUSH
8819: CALL_OW 52
// vc_engine = engine_combustion ;
8823: LD_ADDR_OWVAR 39
8827: PUSH
8828: LD_INT 1
8830: ST_TO_ADDR
// vc_control = control_computer ;
8831: LD_ADDR_OWVAR 38
8835: PUSH
8836: LD_INT 3
8838: ST_TO_ADDR
// heavyguns = CreateVehicle ^ CreateVehicle ^ CreateVehicle ^ CreateVehicle ^ CreateVehicle ^ CreateVehicle ;
8839: LD_ADDR_VAR 0 4
8843: PUSH
8844: CALL_OW 45
8848: PUSH
8849: CALL_OW 45
8853: ADD
8854: PUSH
8855: CALL_OW 45
8859: ADD
8860: PUSH
8861: CALL_OW 45
8865: ADD
8866: PUSH
8867: CALL_OW 45
8871: ADD
8872: PUSH
8873: CALL_OW 45
8877: ADD
8878: ST_TO_ADDR
// vc_weapon = ru_rocket ;
8879: LD_ADDR_OWVAR 40
8883: PUSH
8884: LD_INT 47
8886: ST_TO_ADDR
// large_rockets = CreateVehicle ^ CreateVehicle ;
8887: LD_ADDR_VAR 0 9
8891: PUSH
8892: CALL_OW 45
8896: PUSH
8897: CALL_OW 45
8901: ADD
8902: ST_TO_ADDR
// if difficulty > 1 then
8903: LD_OWVAR 67
8907: PUSH
8908: LD_INT 1
8910: GREATER
8911: IFFALSE 8929
// large_rockets = large_rockets ^ CreateVehicle ;
8913: LD_ADDR_VAR 0 9
8917: PUSH
8918: LD_VAR 0 9
8922: PUSH
8923: CALL_OW 45
8927: ADD
8928: ST_TO_ADDR
// if difficulty = 3 then
8929: LD_OWVAR 67
8933: PUSH
8934: LD_INT 3
8936: EQUAL
8937: IFFALSE 8955
// large_rockets = large_rockets ^ CreateVehicle ;
8939: LD_ADDR_VAR 0 9
8943: PUSH
8944: LD_VAR 0 9
8948: PUSH
8949: CALL_OW 45
8953: ADD
8954: ST_TO_ADDR
// vc_chassis = ru_medium_wheeled ;
8955: LD_ADDR_OWVAR 37
8959: PUSH
8960: LD_INT 21
8962: ST_TO_ADDR
// vc_weapon = ru_time_lapser ;
8963: LD_ADDR_OWVAR 40
8967: PUSH
8968: LD_INT 49
8970: ST_TO_ADDR
// vc_control = control_manual ;
8971: LD_ADDR_OWVAR 38
8975: PUSH
8976: LD_INT 1
8978: ST_TO_ADDR
// vc_weapon = ru_rocket_launcher ;
8979: LD_ADDR_OWVAR 40
8983: PUSH
8984: LD_INT 45
8986: ST_TO_ADDR
// small_rockets = CreateVehicle ^ CreateVehicle ;
8987: LD_ADDR_VAR 0 7
8991: PUSH
8992: CALL_OW 45
8996: PUSH
8997: CALL_OW 45
9001: ADD
9002: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
9003: LD_ADDR_OWVAR 40
9007: PUSH
9008: LD_INT 43
9010: ST_TO_ADDR
// gatlings = CreateVehicle ^ CreateVehicle ;
9011: LD_ADDR_VAR 0 8
9015: PUSH
9016: CALL_OW 45
9020: PUSH
9021: CALL_OW 45
9025: ADD
9026: ST_TO_ADDR
// vc_weapon = ru_gun ;
9027: LD_ADDR_OWVAR 40
9031: PUSH
9032: LD_INT 44
9034: ST_TO_ADDR
// guns = CreateVehicle ^ CreateVehicle ;
9035: LD_ADDR_VAR 0 5
9039: PUSH
9040: CALL_OW 45
9044: PUSH
9045: CALL_OW 45
9049: ADD
9050: ST_TO_ADDR
// vc_control = control_computer ;
9051: LD_ADDR_OWVAR 38
9055: PUSH
9056: LD_INT 3
9058: ST_TO_ADDR
// guns = guns ^ CreateVehicle ^ CreateVehicle ;
9059: LD_ADDR_VAR 0 5
9063: PUSH
9064: LD_VAR 0 5
9068: PUSH
9069: CALL_OW 45
9073: ADD
9074: PUSH
9075: CALL_OW 45
9079: ADD
9080: ST_TO_ADDR
// TeamBurlak = [ guns ^ small_rockets , Masha ^ heavyguns [ 1 ] ^ heavyguns [ 2 ] ^ heavyguns [ 3 ] ^ gatlings , heavyguns [ 4 ] ^ heavyguns [ 5 ] ^ heavyguns [ 6 ] ^ large_rockets ] ;
9081: LD_ADDR_EXP 24
9085: PUSH
9086: LD_VAR 0 5
9090: PUSH
9091: LD_VAR 0 7
9095: ADD
9096: PUSH
9097: LD_EXP 29
9101: PUSH
9102: LD_VAR 0 4
9106: PUSH
9107: LD_INT 1
9109: ARRAY
9110: ADD
9111: PUSH
9112: LD_VAR 0 4
9116: PUSH
9117: LD_INT 2
9119: ARRAY
9120: ADD
9121: PUSH
9122: LD_VAR 0 4
9126: PUSH
9127: LD_INT 3
9129: ARRAY
9130: ADD
9131: PUSH
9132: LD_VAR 0 8
9136: ADD
9137: PUSH
9138: LD_VAR 0 4
9142: PUSH
9143: LD_INT 4
9145: ARRAY
9146: PUSH
9147: LD_VAR 0 4
9151: PUSH
9152: LD_INT 5
9154: ARRAY
9155: ADD
9156: PUSH
9157: LD_VAR 0 4
9161: PUSH
9162: LD_INT 6
9164: ARRAY
9165: ADD
9166: PUSH
9167: LD_VAR 0 9
9171: ADD
9172: PUSH
9173: EMPTY
9174: LIST
9175: LIST
9176: LIST
9177: ST_TO_ADDR
// for i in small_rockets ^ gatlings ^ guns do
9178: LD_ADDR_VAR 0 2
9182: PUSH
9183: LD_VAR 0 7
9187: PUSH
9188: LD_VAR 0 8
9192: ADD
9193: PUSH
9194: LD_VAR 0 5
9198: ADD
9199: PUSH
9200: FOR_IN
9201: IFFALSE 9271
// if IsDrivenBy ( i ) = 0 then
9203: LD_VAR 0 2
9207: PPUSH
9208: CALL_OW 311
9212: PUSH
9213: LD_INT 0
9215: EQUAL
9216: IFFALSE 9269
// begin PrepareMechanic ( false , [ 6 , 7 , 8 ] [ difficulty ] ) ;
9218: LD_INT 0
9220: PPUSH
9221: LD_INT 6
9223: PUSH
9224: LD_INT 7
9226: PUSH
9227: LD_INT 8
9229: PUSH
9230: EMPTY
9231: LIST
9232: LIST
9233: LIST
9234: PUSH
9235: LD_OWVAR 67
9239: ARRAY
9240: PPUSH
9241: CALL_OW 383
// temp = CreateHuman ;
9245: LD_ADDR_VAR 0 3
9249: PUSH
9250: CALL_OW 44
9254: ST_TO_ADDR
// PlaceHumanInUnit ( temp , i ) ;
9255: LD_VAR 0 3
9259: PPUSH
9260: LD_VAR 0 2
9264: PPUSH
9265: CALL_OW 52
// end ;
9269: GO 9200
9271: POP
9272: POP
// end ;
9273: LD_VAR 0 1
9277: RET
// function Intro ; var i , temp , temp_list , temp_list2 , required , others_all , un_list , scout , cargos ; var LeaderChange , SupportSent , Leader , Support ; begin
9278: LD_INT 0
9280: PPUSH
9281: PPUSH
9282: PPUSH
9283: PPUSH
9284: PPUSH
9285: PPUSH
9286: PPUSH
9287: PPUSH
9288: PPUSH
9289: PPUSH
9290: PPUSH
9291: PPUSH
9292: PPUSH
9293: PPUSH
// Randomize ;
9294: CALL_OW 10
// InitHc ;
9298: CALL_OW 19
// uc_side = 2 ;
9302: LD_ADDR_OWVAR 20
9306: PUSH
9307: LD_INT 2
9309: ST_TO_ADDR
// uc_nation = nation_arabian ;
9310: LD_ADDR_OWVAR 21
9314: PUSH
9315: LD_INT 2
9317: ST_TO_ADDR
// preparesoldier ( false , 10 ) ;
9318: LD_INT 0
9320: PPUSH
9321: LD_INT 10
9323: PPUSH
9324: CALL_OW 381
// scout = createhuman ;
9328: LD_ADDR_VAR 0 9
9332: PUSH
9333: CALL_OW 44
9337: ST_TO_ADDR
// RevealFogArea ( 2 , revealintro ) ;
9338: LD_INT 2
9340: PPUSH
9341: LD_INT 8
9343: PPUSH
9344: CALL_OW 332
// RevealFogArea ( 2 , revealalliance ) ;
9348: LD_INT 2
9350: PPUSH
9351: LD_INT 9
9353: PPUSH
9354: CALL_OW 332
// CenterOnXY ( 123 , 136 ) ;
9358: LD_INT 123
9360: PPUSH
9361: LD_INT 136
9363: PPUSH
9364: CALL_OW 84
// game_speed = 6 ;
9368: LD_ADDR_OWVAR 65
9372: PUSH
9373: LD_INT 6
9375: ST_TO_ADDR
// LeaderChange = 0 ;
9376: LD_ADDR_VAR 0 11
9380: PUSH
9381: LD_INT 0
9383: ST_TO_ADDR
// SupportSent = 0 ;
9384: LD_ADDR_VAR 0 12
9388: PUSH
9389: LD_INT 0
9391: ST_TO_ADDR
// InGameOn ;
9392: CALL_OW 8
// TeamHeike = TeamHeike diff [ Heike , Gensher ] ;
9396: LD_ADDR_EXP 22
9400: PUSH
9401: LD_EXP 22
9405: PUSH
9406: LD_EXP 1
9410: PUSH
9411: LD_EXP 3
9415: PUSH
9416: EMPTY
9417: LIST
9418: LIST
9419: DIFF
9420: ST_TO_ADDR
// TeamHeike = [ Heike , Gensher ] ^ TeamHeike ;
9421: LD_ADDR_EXP 22
9425: PUSH
9426: LD_EXP 1
9430: PUSH
9431: LD_EXP 3
9435: PUSH
9436: EMPTY
9437: LIST
9438: LIST
9439: PUSH
9440: LD_EXP 22
9444: ADD
9445: ST_TO_ADDR
// for i in TeamHeike do
9446: LD_ADDR_VAR 0 2
9450: PUSH
9451: LD_EXP 22
9455: PUSH
9456: FOR_IN
9457: IFFALSE 9565
// begin PlaceUnitArea ( i , heikeincomming , false ) ;
9459: LD_VAR 0 2
9463: PPUSH
9464: LD_INT 2
9466: PPUSH
9467: LD_INT 0
9469: PPUSH
9470: CALL_OW 49
// ComMoveXY ( i , GetX ( i ) - 8 , GetY ( i ) - 16 ) ;
9474: LD_VAR 0 2
9478: PPUSH
9479: LD_VAR 0 2
9483: PPUSH
9484: CALL_OW 250
9488: PUSH
9489: LD_INT 8
9491: MINUS
9492: PPUSH
9493: LD_VAR 0 2
9497: PPUSH
9498: CALL_OW 251
9502: PUSH
9503: LD_INT 16
9505: MINUS
9506: PPUSH
9507: CALL_OW 111
// AddComMoveXY ( i , GetX ( i ) - 16 , GetY ( i ) - 32 ) ;
9511: LD_VAR 0 2
9515: PPUSH
9516: LD_VAR 0 2
9520: PPUSH
9521: CALL_OW 250
9525: PUSH
9526: LD_INT 16
9528: MINUS
9529: PPUSH
9530: LD_VAR 0 2
9534: PPUSH
9535: CALL_OW 251
9539: PUSH
9540: LD_INT 32
9542: MINUS
9543: PPUSH
9544: CALL_OW 171
// wait ( rand ( 0 0$0.1 , 0 0$0.5 ) ) ;
9548: LD_INT 4
9550: PPUSH
9551: LD_INT 18
9553: PPUSH
9554: CALL_OW 12
9558: PPUSH
9559: CALL_OW 67
// end ;
9563: GO 9456
9565: POP
9566: POP
// ComMoveXY ( Heike , 97 , 93 ) ;
9567: LD_EXP 1
9571: PPUSH
9572: LD_INT 97
9574: PPUSH
9575: LD_INT 93
9577: PPUSH
9578: CALL_OW 111
// AddComTurnUnit ( Heike , Omar ) ;
9582: LD_EXP 1
9586: PPUSH
9587: LD_EXP 2
9591: PPUSH
9592: CALL_OW 179
// ComMoveXY ( Gensher , 99 , 93 ) ;
9596: LD_EXP 3
9600: PPUSH
9601: LD_INT 99
9603: PPUSH
9604: LD_INT 93
9606: PPUSH
9607: CALL_OW 111
// AddComTurnUnit ( Gensher , Omar ) ;
9611: LD_EXP 3
9615: PPUSH
9616: LD_EXP 2
9620: PPUSH
9621: CALL_OW 179
// CenterOnXY ( GetX ( Heike ) - 5 , GetY ( Heike ) - 10 ) ;
9625: LD_EXP 1
9629: PPUSH
9630: CALL_OW 250
9634: PUSH
9635: LD_INT 5
9637: MINUS
9638: PPUSH
9639: LD_EXP 1
9643: PPUSH
9644: CALL_OW 251
9648: PUSH
9649: LD_INT 10
9651: MINUS
9652: PPUSH
9653: CALL_OW 84
// wait ( 0 0$5 ) ;
9657: LD_INT 175
9659: PPUSH
9660: CALL_OW 67
// while GetDistUnits ( Heike , Omar ) > 7 and IsConstructed ( HexInfo ( 89 , 84 ) ) do
9664: LD_EXP 1
9668: PPUSH
9669: LD_EXP 2
9673: PPUSH
9674: CALL_OW 296
9678: PUSH
9679: LD_INT 7
9681: GREATER
9682: PUSH
9683: LD_INT 89
9685: PPUSH
9686: LD_INT 84
9688: PPUSH
9689: CALL_OW 428
9693: PPUSH
9694: CALL_OW 304
9698: AND
9699: IFFALSE 9804
// begin wait ( 0 0$2 ) ;
9701: LD_INT 70
9703: PPUSH
9704: CALL_OW 67
// if GetDistUnits ( Heike , Omar ) > 10 then
9708: LD_EXP 1
9712: PPUSH
9713: LD_EXP 2
9717: PPUSH
9718: CALL_OW 296
9722: PUSH
9723: LD_INT 10
9725: GREATER
9726: IFFALSE 9760
// CenterOnXY ( GetX ( Heike ) - 5 , GetY ( Heike ) - 10 ) ;
9728: LD_EXP 1
9732: PPUSH
9733: CALL_OW 250
9737: PUSH
9738: LD_INT 5
9740: MINUS
9741: PPUSH
9742: LD_EXP 1
9746: PPUSH
9747: CALL_OW 251
9751: PUSH
9752: LD_INT 10
9754: MINUS
9755: PPUSH
9756: CALL_OW 84
// if temp < 2 then
9760: LD_VAR 0 3
9764: PUSH
9765: LD_INT 2
9767: LESS
9768: IFFALSE 9802
// begin temp = temp + 1 ;
9770: LD_ADDR_VAR 0 3
9774: PUSH
9775: LD_VAR 0 3
9779: PUSH
9780: LD_INT 1
9782: PLUS
9783: ST_TO_ADDR
// SetWorkingProgress ( HexInfo ( 90 , 84 ) , 1 ) ;
9784: LD_INT 90
9786: PPUSH
9787: LD_INT 84
9789: PPUSH
9790: CALL_OW 428
9794: PPUSH
9795: LD_INT 1
9797: PPUSH
9798: CALL_OW 329
// end ; end ;
9802: GO 9664
// Say ( Heike , Br_Heike_01 ) ;
9804: LD_EXP 1
9808: PPUSH
9809: LD_STRING Br_Heike_01
9811: PPUSH
9812: CALL_OW 88
// AddComTurnUnit ( Omar , Heike ) ;
9816: LD_EXP 2
9820: PPUSH
9821: LD_EXP 1
9825: PPUSH
9826: CALL_OW 179
// wait ( 0 0$0.5 ) ;
9830: LD_INT 18
9832: PPUSH
9833: CALL_OW 67
// ComMoveXY ( Omar , 97 , 91 ) ;
9837: LD_EXP 2
9841: PPUSH
9842: LD_INT 97
9844: PPUSH
9845: LD_INT 91
9847: PPUSH
9848: CALL_OW 111
// AddComTurnUnit ( Omar , Heike ) ;
9852: LD_EXP 2
9856: PPUSH
9857: LD_EXP 1
9861: PPUSH
9862: CALL_OW 179
// Say ( Omar , Br_Omar_01 ) ;
9866: LD_EXP 2
9870: PPUSH
9871: LD_STRING Br_Omar_01
9873: PPUSH
9874: CALL_OW 88
// Say ( Omar , Br_Omar_02 ) ;
9878: LD_EXP 2
9882: PPUSH
9883: LD_STRING Br_Omar_02
9885: PPUSH
9886: CALL_OW 88
// i = 0 ;
9890: LD_ADDR_VAR 0 2
9894: PUSH
9895: LD_INT 0
9897: ST_TO_ADDR
// repeat wait ( 0 0$0.5 ) ;
9898: LD_INT 18
9900: PPUSH
9901: CALL_OW 67
// i = i + 0 0$0.5 ;
9905: LD_ADDR_VAR 0 2
9909: PUSH
9910: LD_VAR 0 2
9914: PUSH
9915: LD_INT 18
9917: PLUS
9918: ST_TO_ADDR
// until ( GetDistUnitXY ( Heike , 97 , 93 ) = 0 and GetDistUnitXY ( Gensher , 99 , 93 ) = 0 and GetDistUnitXY ( Omar , 97 , 91 ) = 0 ) or i >= 0 0$5 ;
9919: LD_EXP 1
9923: PPUSH
9924: LD_INT 97
9926: PPUSH
9927: LD_INT 93
9929: PPUSH
9930: CALL_OW 297
9934: PUSH
9935: LD_INT 0
9937: EQUAL
9938: PUSH
9939: LD_EXP 3
9943: PPUSH
9944: LD_INT 99
9946: PPUSH
9947: LD_INT 93
9949: PPUSH
9950: CALL_OW 297
9954: PUSH
9955: LD_INT 0
9957: EQUAL
9958: AND
9959: PUSH
9960: LD_EXP 2
9964: PPUSH
9965: LD_INT 97
9967: PPUSH
9968: LD_INT 91
9970: PPUSH
9971: CALL_OW 297
9975: PUSH
9976: LD_INT 0
9978: EQUAL
9979: AND
9980: PUSH
9981: LD_VAR 0 2
9985: PUSH
9986: LD_INT 175
9988: GREATEREQUAL
9989: OR
9990: IFFALSE 9898
// game_speed = 4 ;
9992: LD_ADDR_OWVAR 65
9996: PUSH
9997: LD_INT 4
9999: ST_TO_ADDR
// CenterOnUnits ( Omar ) ;
10000: LD_EXP 2
10004: PPUSH
10005: CALL_OW 85
// temp = TeamHeike diff [ Heike , Gensher ] ;
10009: LD_ADDR_VAR 0 3
10013: PUSH
10014: LD_EXP 22
10018: PUSH
10019: LD_EXP 1
10023: PUSH
10024: LD_EXP 3
10028: PUSH
10029: EMPTY
10030: LIST
10031: LIST
10032: DIFF
10033: ST_TO_ADDR
// for i = 1 to temp do
10034: LD_ADDR_VAR 0 2
10038: PUSH
10039: DOUBLE
10040: LD_INT 1
10042: DEC
10043: ST_TO_ADDR
10044: LD_VAR 0 3
10048: PUSH
10049: FOR_TO
10050: IFFALSE 10138
// if i in [ 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 , 22 , 24 , 26 , 28 , 30 ] then
10052: LD_VAR 0 2
10056: PUSH
10057: LD_INT 2
10059: PUSH
10060: LD_INT 4
10062: PUSH
10063: LD_INT 6
10065: PUSH
10066: LD_INT 8
10068: PUSH
10069: LD_INT 10
10071: PUSH
10072: LD_INT 12
10074: PUSH
10075: LD_INT 14
10077: PUSH
10078: LD_INT 16
10080: PUSH
10081: LD_INT 18
10083: PUSH
10084: LD_INT 20
10086: PUSH
10087: LD_INT 22
10089: PUSH
10090: LD_INT 24
10092: PUSH
10093: LD_INT 26
10095: PUSH
10096: LD_INT 28
10098: PUSH
10099: LD_INT 30
10101: PUSH
10102: EMPTY
10103: LIST
10104: LIST
10105: LIST
10106: LIST
10107: LIST
10108: LIST
10109: LIST
10110: LIST
10111: LIST
10112: LIST
10113: LIST
10114: LIST
10115: LIST
10116: LIST
10117: LIST
10118: IN
10119: IFFALSE 10136
// ComHold ( temp [ i ] ) ;
10121: LD_VAR 0 3
10125: PUSH
10126: LD_VAR 0 2
10130: ARRAY
10131: PPUSH
10132: CALL_OW 140
10136: GO 10049
10138: POP
10139: POP
// temp = FilterAllUnits ( [ [ f_type , unit_human ] , [ f_distxy , 90 , 84 , 7 ] ] ) diff Heike ^ Omar ^ Gensher ;
10140: LD_ADDR_VAR 0 3
10144: PUSH
10145: LD_INT 21
10147: PUSH
10148: LD_INT 1
10150: PUSH
10151: EMPTY
10152: LIST
10153: LIST
10154: PUSH
10155: LD_INT 92
10157: PUSH
10158: LD_INT 90
10160: PUSH
10161: LD_INT 84
10163: PUSH
10164: LD_INT 7
10166: PUSH
10167: EMPTY
10168: LIST
10169: LIST
10170: LIST
10171: LIST
10172: PUSH
10173: EMPTY
10174: LIST
10175: LIST
10176: PPUSH
10177: CALL_OW 69
10181: PUSH
10182: LD_EXP 1
10186: PUSH
10187: LD_EXP 2
10191: ADD
10192: PUSH
10193: LD_EXP 3
10197: ADD
10198: DIFF
10199: ST_TO_ADDR
// for i in temp do
10200: LD_ADDR_VAR 0 2
10204: PUSH
10205: LD_VAR 0 3
10209: PUSH
10210: FOR_IN
10211: IFFALSE 10335
// SetTaskList ( i , [ [ h , 90 , 84 , HexInfo ( 90 , 84 ) , 0 , 0 , 0 ] , [ M , 91 , 86 , 0 , 0 , 0 , 0 ] , [ e , 0 , 0 , HexInfo ( 90 , 84 ) , 0 , 0 , 0 ] ] ) ;
10213: LD_VAR 0 2
10217: PPUSH
10218: LD_STRING h
10220: PUSH
10221: LD_INT 90
10223: PUSH
10224: LD_INT 84
10226: PUSH
10227: LD_INT 90
10229: PPUSH
10230: LD_INT 84
10232: PPUSH
10233: CALL_OW 428
10237: PUSH
10238: LD_INT 0
10240: PUSH
10241: LD_INT 0
10243: PUSH
10244: LD_INT 0
10246: PUSH
10247: EMPTY
10248: LIST
10249: LIST
10250: LIST
10251: LIST
10252: LIST
10253: LIST
10254: LIST
10255: PUSH
10256: LD_STRING M
10258: PUSH
10259: LD_INT 91
10261: PUSH
10262: LD_INT 86
10264: PUSH
10265: LD_INT 0
10267: PUSH
10268: LD_INT 0
10270: PUSH
10271: LD_INT 0
10273: PUSH
10274: LD_INT 0
10276: PUSH
10277: EMPTY
10278: LIST
10279: LIST
10280: LIST
10281: LIST
10282: LIST
10283: LIST
10284: LIST
10285: PUSH
10286: LD_STRING e
10288: PUSH
10289: LD_INT 0
10291: PUSH
10292: LD_INT 0
10294: PUSH
10295: LD_INT 90
10297: PPUSH
10298: LD_INT 84
10300: PPUSH
10301: CALL_OW 428
10305: PUSH
10306: LD_INT 0
10308: PUSH
10309: LD_INT 0
10311: PUSH
10312: LD_INT 0
10314: PUSH
10315: EMPTY
10316: LIST
10317: LIST
10318: LIST
10319: LIST
10320: LIST
10321: LIST
10322: LIST
10323: PUSH
10324: EMPTY
10325: LIST
10326: LIST
10327: LIST
10328: PPUSH
10329: CALL_OW 446
10333: GO 10210
10335: POP
10336: POP
// ComTurnUnit ( Gensher , Omar ) ;
10337: LD_EXP 3
10341: PPUSH
10342: LD_EXP 2
10346: PPUSH
10347: CALL_OW 119
// ComTurnUnit ( Omar , Heike ) ;
10351: LD_EXP 2
10355: PPUSH
10356: LD_EXP 1
10360: PPUSH
10361: CALL_OW 119
// Say ( Omar , Br_Omar_1 ) ;
10365: LD_EXP 2
10369: PPUSH
10370: LD_STRING Br_Omar_1
10372: PPUSH
10373: CALL_OW 88
// Say ( Heike , Br_Heike_1 ) ;
10377: LD_EXP 1
10381: PPUSH
10382: LD_STRING Br_Heike_1
10384: PPUSH
10385: CALL_OW 88
// Say ( Omar , Br_Omar_2 ) ;
10389: LD_EXP 2
10393: PPUSH
10394: LD_STRING Br_Omar_2
10396: PPUSH
10397: CALL_OW 88
// Say ( Heike , Br_Heike_2 ) ;
10401: LD_EXP 1
10405: PPUSH
10406: LD_STRING Br_Heike_2
10408: PPUSH
10409: CALL_OW 88
// if ArtMeasurement_done then
10413: LD_EXP 57
10417: IFFALSE 10433
// Say ( Omar , Br_Omar_3a ) else
10419: LD_EXP 2
10423: PPUSH
10424: LD_STRING Br_Omar_3a
10426: PPUSH
10427: CALL_OW 88
10431: GO 10445
// Say ( Omar , Br_Omar_3b ) ;
10433: LD_EXP 2
10437: PPUSH
10438: LD_STRING Br_Omar_3b
10440: PPUSH
10441: CALL_OW 88
// Say ( Omar , Br_Omar_4 ) ;
10445: LD_EXP 2
10449: PPUSH
10450: LD_STRING Br_Omar_4
10452: PPUSH
10453: CALL_OW 88
// Say ( Omar , Br_Omar_5 ) ;
10457: LD_EXP 2
10461: PPUSH
10462: LD_STRING Br_Omar_5
10464: PPUSH
10465: CALL_OW 88
// ComTurnUnit ( Omar , Gensher ) ;
10469: LD_EXP 2
10473: PPUSH
10474: LD_EXP 3
10478: PPUSH
10479: CALL_OW 119
// Say ( Omar , Br_Omar_6 ) ;
10483: LD_EXP 2
10487: PPUSH
10488: LD_STRING Br_Omar_6
10490: PPUSH
10491: CALL_OW 88
// Say ( Gensher , Br_Gensher_1 ) ;
10495: LD_EXP 3
10499: PPUSH
10500: LD_STRING Br_Gensher_1
10502: PPUSH
10503: CALL_OW 88
// Say ( Omar , Br_Omar_7 ) ;
10507: LD_EXP 2
10511: PPUSH
10512: LD_STRING Br_Omar_7
10514: PPUSH
10515: CALL_OW 88
// ComTurnUnit ( Omar , Heike ) ;
10519: LD_EXP 2
10523: PPUSH
10524: LD_EXP 1
10528: PPUSH
10529: CALL_OW 119
// ComTurnUnit ( Gensher , Heike ) ;
10533: LD_EXP 3
10537: PPUSH
10538: LD_EXP 1
10542: PPUSH
10543: CALL_OW 119
// Say ( Heike , Br_Heike_3 ) ;
10547: LD_EXP 1
10551: PPUSH
10552: LD_STRING Br_Heike_3
10554: PPUSH
10555: CALL_OW 88
// Say ( Omar , Br_Omar_8 ) ;
10559: LD_EXP 2
10563: PPUSH
10564: LD_STRING Br_Omar_8
10566: PPUSH
10567: CALL_OW 88
// Say ( Heike , Br_Heike_4 ) ;
10571: LD_EXP 1
10575: PPUSH
10576: LD_STRING Br_Heike_4
10578: PPUSH
10579: CALL_OW 88
// Say ( Omar , Br_Omar_9 ) ;
10583: LD_EXP 2
10587: PPUSH
10588: LD_STRING Br_Omar_9
10590: PPUSH
10591: CALL_OW 88
// ComTurnUnit ( Omar , Gensher ) ;
10595: LD_EXP 2
10599: PPUSH
10600: LD_EXP 3
10604: PPUSH
10605: CALL_OW 119
// ComTurnUnit ( Heike , Gensher ) ;
10609: LD_EXP 1
10613: PPUSH
10614: LD_EXP 3
10618: PPUSH
10619: CALL_OW 119
// Say ( Gensher , Br_Gensher_2 ) ;
10623: LD_EXP 3
10627: PPUSH
10628: LD_STRING Br_Gensher_2
10630: PPUSH
10631: CALL_OW 88
// ComTurnUnit ( Gensher , Heike ) ;
10635: LD_EXP 3
10639: PPUSH
10640: LD_EXP 1
10644: PPUSH
10645: CALL_OW 119
// ComTurnUnit ( Omar , Heike ) ;
10649: LD_EXP 2
10653: PPUSH
10654: LD_EXP 1
10658: PPUSH
10659: CALL_OW 119
// Say ( Heike , Br_TRHeike ) ;
10663: LD_EXP 1
10667: PPUSH
10668: LD_STRING Br_TRHeike
10670: PPUSH
10671: CALL_OW 88
// ComTurnUnit ( Heike , Omar ) ;
10675: LD_EXP 1
10679: PPUSH
10680: LD_EXP 2
10684: PPUSH
10685: CALL_OW 119
// ComTurnUnit ( Gensher , Omar ) ;
10689: LD_EXP 3
10693: PPUSH
10694: LD_EXP 2
10698: PPUSH
10699: CALL_OW 119
// if Transport_whole then
10703: LD_EXP 56
10707: IFFALSE 10723
// Say ( Omar , Br_TROmara ) else
10709: LD_EXP 2
10713: PPUSH
10714: LD_STRING Br_TROmara
10716: PPUSH
10717: CALL_OW 88
10721: GO 10735
// Say ( Omar , Br_TROmarb ) ;
10723: LD_EXP 2
10727: PPUSH
10728: LD_STRING Br_TROmarb
10730: PPUSH
10731: CALL_OW 88
// Say ( Heike , Br_Heike_6 ) ;
10735: LD_EXP 1
10739: PPUSH
10740: LD_STRING Br_Heike_6
10742: PPUSH
10743: CALL_OW 88
// Say ( Omar , Br_Omar_10 ) ;
10747: LD_EXP 2
10751: PPUSH
10752: LD_STRING Br_Omar_10
10754: PPUSH
10755: CALL_OW 88
// Say ( Omar , Br_Omar_11 ) ;
10759: LD_EXP 2
10763: PPUSH
10764: LD_STRING Br_Omar_11
10766: PPUSH
10767: CALL_OW 88
// Say ( Gensher , Br_Gensher_3 ) ;
10771: LD_EXP 3
10775: PPUSH
10776: LD_STRING Br_Gensher_3
10778: PPUSH
10779: CALL_OW 88
// ComTurnUnit ( Omar , Gensher ) ;
10783: LD_EXP 2
10787: PPUSH
10788: LD_EXP 3
10792: PPUSH
10793: CALL_OW 119
// ComTurnUnit ( Heike , Gensher ) ;
10797: LD_EXP 1
10801: PPUSH
10802: LD_EXP 3
10806: PPUSH
10807: CALL_OW 119
// if GetSex ( scout ) = sex_male then
10811: LD_VAR 0 9
10815: PPUSH
10816: CALL_OW 258
10820: PUSH
10821: LD_INT 1
10823: EQUAL
10824: IFFALSE 10840
// SayRadio ( scout , Br_UPFScoutM ) else
10826: LD_VAR 0 9
10830: PPUSH
10831: LD_STRING Br_UPFScoutM
10833: PPUSH
10834: CALL_OW 94
10838: GO 10852
// SayRadio ( scout , Br_UPFScoutF ) ;
10840: LD_VAR 0 9
10844: PPUSH
10845: LD_STRING Br_UPFScoutF
10847: PPUSH
10848: CALL_OW 94
// Say ( Gensher , Br_Gensher_4 ) ;
10852: LD_EXP 3
10856: PPUSH
10857: LD_STRING Br_Gensher_4
10859: PPUSH
10860: CALL_OW 88
// Say ( Heike , Br_Heike_7 ) ;
10864: LD_EXP 1
10868: PPUSH
10869: LD_STRING Br_Heike_7
10871: PPUSH
10872: CALL_OW 88
// ComTurnUnit ( Gensher , Omar ) ;
10876: LD_EXP 3
10880: PPUSH
10881: LD_EXP 2
10885: PPUSH
10886: CALL_OW 119
// ComTurnUnit ( Heike , Omar ) ;
10890: LD_EXP 1
10894: PPUSH
10895: LD_EXP 2
10899: PPUSH
10900: CALL_OW 119
// Say ( Omar , Br_Omar_12 ) ;
10904: LD_EXP 2
10908: PPUSH
10909: LD_STRING Br_Omar_12
10911: PPUSH
10912: CALL_OW 88
// CenterOnXY ( 33 , 25 ) ;
10916: LD_INT 33
10918: PPUSH
10919: LD_INT 25
10921: PPUSH
10922: CALL_OW 84
// Say ( Omar , Br_Omar_13 ) ;
10926: LD_EXP 2
10930: PPUSH
10931: LD_STRING Br_Omar_13
10933: PPUSH
10934: CALL_OW 88
// CenterOnUnits ( Omar ) ;
10938: LD_EXP 2
10942: PPUSH
10943: CALL_OW 85
// Say ( Gensher , Br_Gensher_5 ) ;
10947: LD_EXP 3
10951: PPUSH
10952: LD_STRING Br_Gensher_5
10954: PPUSH
10955: CALL_OW 88
// Say ( Heike , Br_Heike_8 ) ;
10959: LD_EXP 1
10963: PPUSH
10964: LD_STRING Br_Heike_8
10966: PPUSH
10967: CALL_OW 88
// ComTurnUnit ( Gensher , Heike ) ;
10971: LD_EXP 3
10975: PPUSH
10976: LD_EXP 1
10980: PPUSH
10981: CALL_OW 119
// Say ( Gensher , Br_Gensher_6 ) ;
10985: LD_EXP 3
10989: PPUSH
10990: LD_STRING Br_Gensher_6
10992: PPUSH
10993: CALL_OW 88
// ComTurnUnit ( Heike , Gensher ) ;
10997: LD_EXP 1
11001: PPUSH
11002: LD_EXP 3
11006: PPUSH
11007: CALL_OW 119
// ComMoveXY ( Gensher , 99 , 98 ) ;
11011: LD_EXP 3
11015: PPUSH
11016: LD_INT 99
11018: PPUSH
11019: LD_INT 98
11021: PPUSH
11022: CALL_OW 111
// wait ( 0 0$1 ) ;
11026: LD_INT 35
11028: PPUSH
11029: CALL_OW 67
// temp_list = [ 1 , 2 , 3 ] ;
11033: LD_ADDR_VAR 0 4
11037: PUSH
11038: LD_INT 1
11040: PUSH
11041: LD_INT 2
11043: PUSH
11044: LD_INT 3
11046: PUSH
11047: EMPTY
11048: LIST
11049: LIST
11050: LIST
11051: ST_TO_ADDR
// temp = [ Oswald , Kowalski , Dwayne , Ralph , Swansson ] diff 0 ;
11052: LD_ADDR_VAR 0 3
11056: PUSH
11057: LD_EXP 5
11061: PUSH
11062: LD_EXP 9
11066: PUSH
11067: LD_EXP 12
11071: PUSH
11072: LD_EXP 6
11076: PUSH
11077: LD_EXP 11
11081: PUSH
11082: EMPTY
11083: LIST
11084: LIST
11085: LIST
11086: LIST
11087: LIST
11088: PUSH
11089: LD_INT 0
11091: DIFF
11092: ST_TO_ADDR
// if temp = 0 then
11093: LD_VAR 0 3
11097: PUSH
11098: LD_INT 0
11100: EQUAL
11101: IFFALSE 11117
// temp_list = temp_list diff 1 ;
11103: LD_ADDR_VAR 0 4
11107: PUSH
11108: LD_VAR 0 4
11112: PUSH
11113: LD_INT 1
11115: DIFF
11116: ST_TO_ADDR
// temp = [ Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake ] diff 0 ;
11117: LD_ADDR_VAR 0 3
11121: PUSH
11122: LD_EXP 4
11126: PUSH
11127: LD_EXP 5
11131: PUSH
11132: LD_EXP 6
11136: PUSH
11137: LD_EXP 7
11141: PUSH
11142: LD_EXP 8
11146: PUSH
11147: LD_EXP 9
11151: PUSH
11152: LD_EXP 10
11156: PUSH
11157: LD_EXP 11
11161: PUSH
11162: LD_EXP 12
11166: PUSH
11167: LD_EXP 13
11171: PUSH
11172: LD_EXP 14
11176: PUSH
11177: LD_EXP 19
11181: PUSH
11182: EMPTY
11183: LIST
11184: LIST
11185: LIST
11186: LIST
11187: LIST
11188: LIST
11189: LIST
11190: LIST
11191: LIST
11192: LIST
11193: LIST
11194: LIST
11195: PUSH
11196: LD_INT 0
11198: DIFF
11199: ST_TO_ADDR
// if temp < 1 then
11200: LD_VAR 0 3
11204: PUSH
11205: LD_INT 1
11207: LESS
11208: IFFALSE 11224
// temp_list = temp_list diff 2 ;
11210: LD_ADDR_VAR 0 4
11214: PUSH
11215: LD_VAR 0 4
11219: PUSH
11220: LD_INT 2
11222: DIFF
11223: ST_TO_ADDR
// wait ( 0 0$0.2 ) ;
11224: LD_INT 7
11226: PPUSH
11227: CALL_OW 67
// case SelectiveQuery ( leadership_choice , temp_list ) of 1 :
11231: LD_STRING leadership_choice
11233: PPUSH
11234: LD_VAR 0 4
11238: PPUSH
11239: CALL_OW 98
11243: PUSH
11244: LD_INT 1
11246: DOUBLE
11247: EQUAL
11248: IFTRUE 11252
11250: GO 11321
11252: POP
// begin Say ( Heike , Lead_Heike_1.1 ) ;
11253: LD_EXP 1
11257: PPUSH
11258: LD_STRING Lead_Heike_1.1
11260: PPUSH
11261: CALL_OW 88
// ComTurnUnit ( Gensher , Heike ) ;
11265: LD_EXP 3
11269: PPUSH
11270: LD_EXP 1
11274: PPUSH
11275: CALL_OW 119
// Say ( Gensher , Lead_Gensher_1.1 ) ;
11279: LD_EXP 3
11283: PPUSH
11284: LD_STRING Lead_Gensher_1.1
11286: PPUSH
11287: CALL_OW 88
// Say ( Heike , Lead_Heike_1.2 ) ;
11291: LD_EXP 1
11295: PPUSH
11296: LD_STRING Lead_Heike_1.2
11298: PPUSH
11299: CALL_OW 88
// LeaderChange = 1 ;
11303: LD_ADDR_VAR 0 11
11307: PUSH
11308: LD_INT 1
11310: ST_TO_ADDR
// SupportSent = 1 ;
11311: LD_ADDR_VAR 0 12
11315: PUSH
11316: LD_INT 1
11318: ST_TO_ADDR
// end ; 2 :
11319: GO 11418
11321: LD_INT 2
11323: DOUBLE
11324: EQUAL
11325: IFTRUE 11329
11327: GO 11398
11329: POP
// begin Say ( Heike , Lead_Heike_2.1 ) ;
11330: LD_EXP 1
11334: PPUSH
11335: LD_STRING Lead_Heike_2.1
11337: PPUSH
11338: CALL_OW 88
// ComTurnUnit ( Gensher , Heike ) ;
11342: LD_EXP 3
11346: PPUSH
11347: LD_EXP 1
11351: PPUSH
11352: CALL_OW 119
// Say ( Gensher , Lead_Gensher_2.1 ) ;
11356: LD_EXP 3
11360: PPUSH
11361: LD_STRING Lead_Gensher_2.1
11363: PPUSH
11364: CALL_OW 88
// Say ( Heike , Lead_Heike_2.2 ) ;
11368: LD_EXP 1
11372: PPUSH
11373: LD_STRING Lead_Heike_2.2
11375: PPUSH
11376: CALL_OW 88
// GensherIsLeader = 1 ;
11380: LD_ADDR_EXP 77
11384: PUSH
11385: LD_INT 1
11387: ST_TO_ADDR
// SupportSent = 1 ;
11388: LD_ADDR_VAR 0 12
11392: PUSH
11393: LD_INT 1
11395: ST_TO_ADDR
// end ; 3 :
11396: GO 11418
11398: LD_INT 3
11400: DOUBLE
11401: EQUAL
11402: IFTRUE 11406
11404: GO 11417
11406: POP
// GensherIsLeader = 1 ; end ;
11407: LD_ADDR_EXP 77
11411: PUSH
11412: LD_INT 1
11414: ST_TO_ADDR
11415: GO 11418
11417: POP
// wait ( 0 0$0.5 ) ;
11418: LD_INT 18
11420: PPUSH
11421: CALL_OW 67
// if LeaderChange then
11425: LD_VAR 0 11
11429: IFFALSE 11435
// ChooseLeader ;
11431: CALL 13019 0 0
// temp_list = [ Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake , Gensher ] ;
11435: LD_ADDR_VAR 0 4
11439: PUSH
11440: LD_EXP 4
11444: PUSH
11445: LD_EXP 5
11449: PUSH
11450: LD_EXP 6
11454: PUSH
11455: LD_EXP 7
11459: PUSH
11460: LD_EXP 8
11464: PUSH
11465: LD_EXP 9
11469: PUSH
11470: LD_EXP 10
11474: PUSH
11475: LD_EXP 11
11479: PUSH
11480: LD_EXP 12
11484: PUSH
11485: LD_EXP 13
11489: PUSH
11490: LD_EXP 14
11494: PUSH
11495: LD_EXP 19
11499: PUSH
11500: LD_EXP 3
11504: PUSH
11505: EMPTY
11506: LIST
11507: LIST
11508: LIST
11509: LIST
11510: LIST
11511: LIST
11512: LIST
11513: LIST
11514: LIST
11515: LIST
11516: LIST
11517: LIST
11518: LIST
11519: ST_TO_ADDR
// temp_list2 = [ OlafIsLeader , OswaldIsLeader , RalphIsLeader , SonyaIsLeader , AviradzeIsLeader , KowalskiIsLeader , EvelynIsLeader , SwanssonIsLeader , DwayneIsLeader , KhattamIsLeader , MakiseIsLeader , SnakeIsLeader , GensherIsLeader ] ;
11520: LD_ADDR_VAR 0 5
11524: PUSH
11525: LD_EXP 65
11529: PUSH
11530: LD_EXP 66
11534: PUSH
11535: LD_EXP 67
11539: PUSH
11540: LD_EXP 68
11544: PUSH
11545: LD_EXP 69
11549: PUSH
11550: LD_EXP 70
11554: PUSH
11555: LD_EXP 71
11559: PUSH
11560: LD_EXP 72
11564: PUSH
11565: LD_EXP 73
11569: PUSH
11570: LD_EXP 74
11574: PUSH
11575: LD_EXP 75
11579: PUSH
11580: LD_EXP 76
11584: PUSH
11585: LD_EXP 77
11589: PUSH
11590: EMPTY
11591: LIST
11592: LIST
11593: LIST
11594: LIST
11595: LIST
11596: LIST
11597: LIST
11598: LIST
11599: LIST
11600: LIST
11601: LIST
11602: LIST
11603: LIST
11604: ST_TO_ADDR
// for i = 1 to temp_list2 do
11605: LD_ADDR_VAR 0 2
11609: PUSH
11610: DOUBLE
11611: LD_INT 1
11613: DEC
11614: ST_TO_ADDR
11615: LD_VAR 0 5
11619: PUSH
11620: FOR_TO
11621: IFFALSE 11657
// if temp_list2 [ i ] = 1 then
11623: LD_VAR 0 5
11627: PUSH
11628: LD_VAR 0 2
11632: ARRAY
11633: PUSH
11634: LD_INT 1
11636: EQUAL
11637: IFFALSE 11655
// Leader = temp_list [ i ] ;
11639: LD_ADDR_VAR 0 13
11643: PUSH
11644: LD_VAR 0 4
11648: PUSH
11649: LD_VAR 0 2
11653: ARRAY
11654: ST_TO_ADDR
11655: GO 11620
11657: POP
11658: POP
// wait ( 0 0$0.2 ) ;
11659: LD_INT 7
11661: PPUSH
11662: CALL_OW 67
// if SupportSent then
11666: LD_VAR 0 12
11670: IFFALSE 11912
// begin temp = [ ] ;
11672: LD_ADDR_VAR 0 3
11676: PUSH
11677: EMPTY
11678: ST_TO_ADDR
// temp_list = [ Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake ] diff 0 ^ Leader ;
11679: LD_ADDR_VAR 0 4
11683: PUSH
11684: LD_EXP 4
11688: PUSH
11689: LD_EXP 5
11693: PUSH
11694: LD_EXP 6
11698: PUSH
11699: LD_EXP 7
11703: PUSH
11704: LD_EXP 8
11708: PUSH
11709: LD_EXP 9
11713: PUSH
11714: LD_EXP 10
11718: PUSH
11719: LD_EXP 11
11723: PUSH
11724: LD_EXP 12
11728: PUSH
11729: LD_EXP 13
11733: PUSH
11734: LD_EXP 14
11738: PUSH
11739: LD_EXP 19
11743: PUSH
11744: EMPTY
11745: LIST
11746: LIST
11747: LIST
11748: LIST
11749: LIST
11750: LIST
11751: LIST
11752: LIST
11753: LIST
11754: LIST
11755: LIST
11756: LIST
11757: PUSH
11758: LD_INT 0
11760: PUSH
11761: LD_VAR 0 13
11765: ADD
11766: DIFF
11767: ST_TO_ADDR
// if temp_list > 0 then
11768: LD_VAR 0 4
11772: PUSH
11773: LD_INT 0
11775: GREATER
11776: IFFALSE 11792
// temp = temp ^ 2 ;
11778: LD_ADDR_VAR 0 3
11782: PUSH
11783: LD_VAR 0 3
11787: PUSH
11788: LD_INT 2
11790: ADD
11791: ST_TO_ADDR
// if temp_list > 1 then
11792: LD_VAR 0 4
11796: PUSH
11797: LD_INT 1
11799: GREATER
11800: IFFALSE 11816
// temp = temp ^ 1 ;
11802: LD_ADDR_VAR 0 3
11806: PUSH
11807: LD_VAR 0 3
11811: PUSH
11812: LD_INT 1
11814: ADD
11815: ST_TO_ADDR
// if not GensherIsLeader then
11816: LD_EXP 77
11820: NOT
11821: IFFALSE 11837
// temp = temp ^ 3 ;
11823: LD_ADDR_VAR 0 3
11827: PUSH
11828: LD_VAR 0 3
11832: PUSH
11833: LD_INT 3
11835: ADD
11836: ST_TO_ADDR
// if temp > 0 then
11837: LD_VAR 0 3
11841: PUSH
11842: LD_INT 0
11844: GREATER
11845: IFFALSE 11912
// if not temp [ 1 ] = 3 then
11847: LD_VAR 0 3
11851: PUSH
11852: LD_INT 1
11854: ARRAY
11855: PUSH
11856: LD_INT 3
11858: EQUAL
11859: NOT
11860: IFFALSE 11912
// case SelectiveQuery ( choice_support , temp ) of 1 :
11862: LD_STRING choice_support
11864: PPUSH
11865: LD_VAR 0 3
11869: PPUSH
11870: CALL_OW 98
11874: PUSH
11875: LD_INT 1
11877: DOUBLE
11878: EQUAL
11879: IFTRUE 11883
11881: GO 11893
11883: POP
// ChooseSupport ( 2 ) ; 2 :
11884: LD_INT 2
11886: PPUSH
11887: CALL 13404 0 1
11891: GO 11912
11893: LD_INT 2
11895: DOUBLE
11896: EQUAL
11897: IFTRUE 11901
11899: GO 11911
11901: POP
// ChooseSupport ( 1 ) ; end ;
11902: LD_INT 1
11904: PPUSH
11905: CALL 13404 0 1
11909: GO 11912
11911: POP
// end ; ComTurnUnit ( Heike , Leader ) ;
11912: LD_EXP 1
11916: PPUSH
11917: LD_VAR 0 13
11921: PPUSH
11922: CALL_OW 119
// ComTurnUnit ( Leader , Heike ) ;
11926: LD_VAR 0 13
11930: PPUSH
11931: LD_EXP 1
11935: PPUSH
11936: CALL_OW 119
// Say ( Heike , Br_Heike9 ) ;
11940: LD_EXP 1
11944: PPUSH
11945: LD_STRING Br_Heike9
11947: PPUSH
11948: CALL_OW 88
// case Leader of Gensher :
11952: LD_VAR 0 13
11956: PUSH
11957: LD_EXP 3
11961: DOUBLE
11962: EQUAL
11963: IFTRUE 11967
11965: GO 11982
11967: POP
// Say ( Gensher , Br_Gensher7 ) ; Oswald :
11968: LD_EXP 3
11972: PPUSH
11973: LD_STRING Br_Gensher7
11975: PPUSH
11976: CALL_OW 88
11980: GO 12108
11982: LD_EXP 5
11986: DOUBLE
11987: EQUAL
11988: IFTRUE 11992
11990: GO 12007
11992: POP
// Say ( Oswald , Br_Oswald ) ; Swansson :
11993: LD_EXP 5
11997: PPUSH
11998: LD_STRING Br_Oswald
12000: PPUSH
12001: CALL_OW 88
12005: GO 12108
12007: LD_EXP 11
12011: DOUBLE
12012: EQUAL
12013: IFTRUE 12017
12015: GO 12032
12017: POP
// Say ( Swansson , Br_Swansson ) ; Dwayne :
12018: LD_EXP 11
12022: PPUSH
12023: LD_STRING Br_Swansson
12025: PPUSH
12026: CALL_OW 88
12030: GO 12108
12032: LD_EXP 12
12036: DOUBLE
12037: EQUAL
12038: IFTRUE 12042
12040: GO 12057
12042: POP
// Say ( Dwayne , Br_Dwayne ) ; Ralph :
12043: LD_EXP 12
12047: PPUSH
12048: LD_STRING Br_Dwayne
12050: PPUSH
12051: CALL_OW 88
12055: GO 12108
12057: LD_EXP 6
12061: DOUBLE
12062: EQUAL
12063: IFTRUE 12067
12065: GO 12082
12067: POP
// Say ( Ralph , Br_Ralph ) ; Kowalski :
12068: LD_EXP 6
12072: PPUSH
12073: LD_STRING Br_Ralph
12075: PPUSH
12076: CALL_OW 88
12080: GO 12108
12082: LD_EXP 9
12086: DOUBLE
12087: EQUAL
12088: IFTRUE 12092
12090: GO 12107
12092: POP
// Say ( Kowalski , Br_Kowalski ) ; end ;
12093: LD_EXP 9
12097: PPUSH
12098: LD_STRING Br_Kowalski
12100: PPUSH
12101: CALL_OW 88
12105: GO 12108
12107: POP
// Support = [ ] ;
12108: LD_ADDR_VAR 0 14
12112: PUSH
12113: EMPTY
12114: ST_TO_ADDR
// temp_list = [ Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake ] ;
12115: LD_ADDR_VAR 0 4
12119: PUSH
12120: LD_EXP 4
12124: PUSH
12125: LD_EXP 5
12129: PUSH
12130: LD_EXP 6
12134: PUSH
12135: LD_EXP 7
12139: PUSH
12140: LD_EXP 8
12144: PUSH
12145: LD_EXP 9
12149: PUSH
12150: LD_EXP 10
12154: PUSH
12155: LD_EXP 11
12159: PUSH
12160: LD_EXP 12
12164: PUSH
12165: LD_EXP 13
12169: PUSH
12170: LD_EXP 14
12174: PUSH
12175: LD_EXP 19
12179: PUSH
12180: EMPTY
12181: LIST
12182: LIST
12183: LIST
12184: LIST
12185: LIST
12186: LIST
12187: LIST
12188: LIST
12189: LIST
12190: LIST
12191: LIST
12192: LIST
12193: ST_TO_ADDR
// temp_list2 = [ OlafIsSupport , OswaldIsSupport , RalphIsSupport , SonyaIsSupport , AviradzeIsSupport , KowalskiIsSupport , EvelynIsSupport , SwanssonIsSupport , DwayneIsSupport , KhattamIsSupport , MakiseIsSupport , SnakeIsSupport ] ;
12194: LD_ADDR_VAR 0 5
12198: PUSH
12199: LD_EXP 78
12203: PUSH
12204: LD_EXP 79
12208: PUSH
12209: LD_EXP 80
12213: PUSH
12214: LD_EXP 81
12218: PUSH
12219: LD_EXP 82
12223: PUSH
12224: LD_EXP 83
12228: PUSH
12229: LD_EXP 84
12233: PUSH
12234: LD_EXP 85
12238: PUSH
12239: LD_EXP 86
12243: PUSH
12244: LD_EXP 87
12248: PUSH
12249: LD_EXP 88
12253: PUSH
12254: LD_EXP 89
12258: PUSH
12259: EMPTY
12260: LIST
12261: LIST
12262: LIST
12263: LIST
12264: LIST
12265: LIST
12266: LIST
12267: LIST
12268: LIST
12269: LIST
12270: LIST
12271: LIST
12272: ST_TO_ADDR
// for i = 1 to temp_list2 do
12273: LD_ADDR_VAR 0 2
12277: PUSH
12278: DOUBLE
12279: LD_INT 1
12281: DEC
12282: ST_TO_ADDR
12283: LD_VAR 0 5
12287: PUSH
12288: FOR_TO
12289: IFFALSE 12331
// if temp_list2 [ i ] = 1 then
12291: LD_VAR 0 5
12295: PUSH
12296: LD_VAR 0 2
12300: ARRAY
12301: PUSH
12302: LD_INT 1
12304: EQUAL
12305: IFFALSE 12329
// Support = Support ^ temp_list [ i ] ;
12307: LD_ADDR_VAR 0 14
12311: PUSH
12312: LD_VAR 0 14
12316: PUSH
12317: LD_VAR 0 4
12321: PUSH
12322: LD_VAR 0 2
12326: ARRAY
12327: ADD
12328: ST_TO_ADDR
12329: GO 12288
12331: POP
12332: POP
// required = 0 ;
12333: LD_ADDR_VAR 0 6
12337: PUSH
12338: LD_INT 0
12340: ST_TO_ADDR
// temp = [ Heike , Omar , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake ] diff Leader ^ Support ^ 0 ;
12341: LD_ADDR_VAR 0 3
12345: PUSH
12346: LD_EXP 1
12350: PUSH
12351: LD_EXP 2
12355: PUSH
12356: LD_EXP 4
12360: PUSH
12361: LD_EXP 5
12365: PUSH
12366: LD_EXP 6
12370: PUSH
12371: LD_EXP 7
12375: PUSH
12376: LD_EXP 8
12380: PUSH
12381: LD_EXP 9
12385: PUSH
12386: LD_EXP 10
12390: PUSH
12391: LD_EXP 11
12395: PUSH
12396: LD_EXP 12
12400: PUSH
12401: LD_EXP 13
12405: PUSH
12406: LD_EXP 14
12410: PUSH
12411: LD_EXP 19
12415: PUSH
12416: EMPTY
12417: LIST
12418: LIST
12419: LIST
12420: LIST
12421: LIST
12422: LIST
12423: LIST
12424: LIST
12425: LIST
12426: LIST
12427: LIST
12428: LIST
12429: LIST
12430: LIST
12431: PUSH
12432: LD_VAR 0 13
12436: PUSH
12437: LD_VAR 0 14
12441: ADD
12442: PUSH
12443: LD_INT 0
12445: ADD
12446: DIFF
12447: ST_TO_ADDR
// if not GensherIsLeader then
12448: LD_EXP 77
12452: NOT
12453: IFFALSE 12471
// temp = temp ^ Gensher ;
12455: LD_ADDR_VAR 0 3
12459: PUSH
12460: LD_VAR 0 3
12464: PUSH
12465: LD_EXP 3
12469: ADD
12470: ST_TO_ADDR
// if temp < 8 then
12471: LD_VAR 0 3
12475: PUSH
12476: LD_INT 8
12478: LESS
12479: IFFALSE 12495
// required = 8 - temp ;
12481: LD_ADDR_VAR 0 6
12485: PUSH
12486: LD_INT 8
12488: PUSH
12489: LD_VAR 0 3
12493: MINUS
12494: ST_TO_ADDR
// required = required + [ 6 , 4 , 2 ] [ difficulty ] ;
12495: LD_ADDR_VAR 0 6
12499: PUSH
12500: LD_VAR 0 6
12504: PUSH
12505: LD_INT 6
12507: PUSH
12508: LD_INT 4
12510: PUSH
12511: LD_INT 2
12513: PUSH
12514: EMPTY
12515: LIST
12516: LIST
12517: LIST
12518: PUSH
12519: LD_OWVAR 67
12523: ARRAY
12524: PLUS
12525: ST_TO_ADDR
// others_all = TeamHeike ^ TeamOmar diff [ Heike , Omar , Gensher , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake , Gonzo ] ;
12526: LD_ADDR_VAR 0 7
12530: PUSH
12531: LD_EXP 22
12535: PUSH
12536: LD_EXP 23
12540: ADD
12541: PUSH
12542: LD_EXP 1
12546: PUSH
12547: LD_EXP 2
12551: PUSH
12552: LD_EXP 3
12556: PUSH
12557: LD_EXP 4
12561: PUSH
12562: LD_EXP 5
12566: PUSH
12567: LD_EXP 6
12571: PUSH
12572: LD_EXP 7
12576: PUSH
12577: LD_EXP 8
12581: PUSH
12582: LD_EXP 9
12586: PUSH
12587: LD_EXP 10
12591: PUSH
12592: LD_EXP 11
12596: PUSH
12597: LD_EXP 12
12601: PUSH
12602: LD_EXP 13
12606: PUSH
12607: LD_EXP 14
12611: PUSH
12612: LD_EXP 19
12616: PUSH
12617: LD_EXP 15
12621: PUSH
12622: EMPTY
12623: LIST
12624: LIST
12625: LIST
12626: LIST
12627: LIST
12628: LIST
12629: LIST
12630: LIST
12631: LIST
12632: LIST
12633: LIST
12634: LIST
12635: LIST
12636: LIST
12637: LIST
12638: LIST
12639: DIFF
12640: ST_TO_ADDR
// un_list = CharacterSelection (  , required , required , [ sel_not_hired , sel_dont_change_class , sel_not_changeable ] ^ Leader ^ Support ^ [ sel_hired , sel_change_class , sel_not_changeable ] ^ temp ^ [ sel_changeable , sel_not_hired ] ^ others_all , [ class_soldier , class_mortar , class_mechanic , class_engineer , class_scientistic ] ) ;
12641: LD_ADDR_VAR 0 8
12645: PUSH
12646: LD_STRING 
12648: PPUSH
12649: LD_VAR 0 6
12653: PPUSH
12654: LD_VAR 0 6
12658: PPUSH
12659: LD_INT -2
12661: PUSH
12662: LD_INT -6
12664: PUSH
12665: LD_INT -4
12667: PUSH
12668: EMPTY
12669: LIST
12670: LIST
12671: LIST
12672: PUSH
12673: LD_VAR 0 13
12677: ADD
12678: PUSH
12679: LD_VAR 0 14
12683: ADD
12684: PUSH
12685: LD_INT -1
12687: PUSH
12688: LD_INT -5
12690: PUSH
12691: LD_INT -4
12693: PUSH
12694: EMPTY
12695: LIST
12696: LIST
12697: LIST
12698: ADD
12699: PUSH
12700: LD_VAR 0 3
12704: ADD
12705: PUSH
12706: LD_INT -3
12708: PUSH
12709: LD_INT -2
12711: PUSH
12712: EMPTY
12713: LIST
12714: LIST
12715: ADD
12716: PUSH
12717: LD_VAR 0 7
12721: ADD
12722: PPUSH
12723: LD_INT 1
12725: PUSH
12726: LD_INT 8
12728: PUSH
12729: LD_INT 3
12731: PUSH
12732: LD_INT 2
12734: PUSH
12735: LD_INT 4
12737: PUSH
12738: EMPTY
12739: LIST
12740: LIST
12741: LIST
12742: LIST
12743: LIST
12744: PPUSH
12745: CALL_OW 42
12749: ST_TO_ADDR
// cargos = FilterAllUnits ( [ [ f_nation , nation_arabian ] , [ f_type , unit_vehicle ] ] ) diff HexInfo ( 91 , 80 ) ;
12750: LD_ADDR_VAR 0 10
12754: PUSH
12755: LD_INT 23
12757: PUSH
12758: LD_INT 2
12760: PUSH
12761: EMPTY
12762: LIST
12763: LIST
12764: PUSH
12765: LD_INT 21
12767: PUSH
12768: LD_INT 2
12770: PUSH
12771: EMPTY
12772: LIST
12773: LIST
12774: PUSH
12775: EMPTY
12776: LIST
12777: LIST
12778: PPUSH
12779: CALL_OW 69
12783: PUSH
12784: LD_INT 91
12786: PPUSH
12787: LD_INT 80
12789: PPUSH
12790: CALL_OW 428
12794: DIFF
12795: ST_TO_ADDR
// temp_list = unitfilter ( cargos , [ f_control , control_manual ] ) ;
12796: LD_ADDR_VAR 0 4
12800: PUSH
12801: LD_VAR 0 10
12805: PPUSH
12806: LD_INT 33
12808: PUSH
12809: LD_INT 1
12811: PUSH
12812: EMPTY
12813: LIST
12814: LIST
12815: PPUSH
12816: CALL_OW 72
12820: ST_TO_ADDR
// SetSide ( Leader ^ Support ^ cargos ^ others_all diff un_list , 5 ) ;
12821: LD_VAR 0 13
12825: PUSH
12826: LD_VAR 0 14
12830: ADD
12831: PUSH
12832: LD_VAR 0 10
12836: ADD
12837: PUSH
12838: LD_VAR 0 7
12842: ADD
12843: PUSH
12844: LD_VAR 0 8
12848: DIFF
12849: PPUSH
12850: LD_INT 5
12852: PPUSH
12853: CALL_OW 235
// OtherTeam = SecondGroup ^ others_all diff un_list ;
12857: LD_ADDR_EXP 25
12861: PUSH
12862: LD_EXP 21
12866: PUSH
12867: LD_VAR 0 7
12871: ADD
12872: PUSH
12873: LD_VAR 0 8
12877: DIFF
12878: ST_TO_ADDR
// Commovexy ( filterallunits ( [ f_side , 5 ] ) , 72 , 136 ) ;
12879: LD_INT 22
12881: PUSH
12882: LD_INT 5
12884: PUSH
12885: EMPTY
12886: LIST
12887: LIST
12888: PPUSH
12889: CALL_OW 69
12893: PPUSH
12894: LD_INT 72
12896: PPUSH
12897: LD_INT 136
12899: PPUSH
12900: CALL_OW 111
// for i in temp_list do
12904: LD_ADDR_VAR 0 2
12908: PUSH
12909: LD_VAR 0 4
12913: PUSH
12914: FOR_IN
12915: IFFALSE 12990
// begin temp = NearestUnitToUnit ( others_all diff un_list , i ) ;
12917: LD_ADDR_VAR 0 3
12921: PUSH
12922: LD_VAR 0 7
12926: PUSH
12927: LD_VAR 0 8
12931: DIFF
12932: PPUSH
12933: LD_VAR 0 2
12937: PPUSH
12938: CALL_OW 74
12942: ST_TO_ADDR
// ComEnterUnit ( temp , i ) ;
12943: LD_VAR 0 3
12947: PPUSH
12948: LD_VAR 0 2
12952: PPUSH
12953: CALL_OW 120
// AddComMoveXy ( temp , 72 , 136 ) ;
12957: LD_VAR 0 3
12961: PPUSH
12962: LD_INT 72
12964: PPUSH
12965: LD_INT 136
12967: PPUSH
12968: CALL_OW 171
// others_all = others_all diff temp ;
12972: LD_ADDR_VAR 0 7
12976: PUSH
12977: LD_VAR 0 7
12981: PUSH
12982: LD_VAR 0 3
12986: DIFF
12987: ST_TO_ADDR
// end ;
12988: GO 12914
12990: POP
12991: POP
// IngameOff ;
12992: CALL_OW 9
// wait ( 0 0$0.5 ) ;
12996: LD_INT 18
12998: PPUSH
12999: CALL_OW 67
// ChangeMissionObjectives ( main_goals_intro ) ;
13003: LD_STRING main_goals_intro
13005: PPUSH
13006: CALL_OW 337
// SaveForQuickRestart ;
13010: CALL_OW 22
// end ;
13014: LD_VAR 0 1
13018: RET
// function ChooseLeader ; var list1 ; begin
13019: LD_INT 0
13021: PPUSH
13022: PPUSH
// list1 = [ 1 , 2 , 3 , 4 , 5 ] ;
13023: LD_ADDR_VAR 0 2
13027: PUSH
13028: LD_INT 1
13030: PUSH
13031: LD_INT 2
13033: PUSH
13034: LD_INT 3
13036: PUSH
13037: LD_INT 4
13039: PUSH
13040: LD_INT 5
13042: PUSH
13043: EMPTY
13044: LIST
13045: LIST
13046: LIST
13047: LIST
13048: LIST
13049: ST_TO_ADDR
// if Oswald = 0 then
13050: LD_EXP 5
13054: PUSH
13055: LD_INT 0
13057: EQUAL
13058: IFFALSE 13074
// list1 = list1 diff 1 ;
13060: LD_ADDR_VAR 0 2
13064: PUSH
13065: LD_VAR 0 2
13069: PUSH
13070: LD_INT 1
13072: DIFF
13073: ST_TO_ADDR
// if Swansson = 0 then
13074: LD_EXP 11
13078: PUSH
13079: LD_INT 0
13081: EQUAL
13082: IFFALSE 13098
// list1 = list1 diff 2 ;
13084: LD_ADDR_VAR 0 2
13088: PUSH
13089: LD_VAR 0 2
13093: PUSH
13094: LD_INT 2
13096: DIFF
13097: ST_TO_ADDR
// if Dwayne = 0 then
13098: LD_EXP 12
13102: PUSH
13103: LD_INT 0
13105: EQUAL
13106: IFFALSE 13122
// list1 = list1 diff 3 ;
13108: LD_ADDR_VAR 0 2
13112: PUSH
13113: LD_VAR 0 2
13117: PUSH
13118: LD_INT 3
13120: DIFF
13121: ST_TO_ADDR
// if Ralph = 0 then
13122: LD_EXP 6
13126: PUSH
13127: LD_INT 0
13129: EQUAL
13130: IFFALSE 13146
// list1 = list1 diff 4 ;
13132: LD_ADDR_VAR 0 2
13136: PUSH
13137: LD_VAR 0 2
13141: PUSH
13142: LD_INT 4
13144: DIFF
13145: ST_TO_ADDR
// if Kowalski = 0 then
13146: LD_EXP 9
13150: PUSH
13151: LD_INT 0
13153: EQUAL
13154: IFFALSE 13170
// list1 = list1 diff 5 ;
13156: LD_ADDR_VAR 0 2
13160: PUSH
13161: LD_VAR 0 2
13165: PUSH
13166: LD_INT 5
13168: DIFF
13169: ST_TO_ADDR
// case SelectiveQuery ( character_selection3 , list1 ) of 1 :
13170: LD_STRING character_selection3
13172: PPUSH
13173: LD_VAR 0 2
13177: PPUSH
13178: CALL_OW 98
13182: PUSH
13183: LD_INT 1
13185: DOUBLE
13186: EQUAL
13187: IFTRUE 13191
13189: GO 13226
13191: POP
// begin OswaldIsLeader = 1 ;
13192: LD_ADDR_EXP 66
13196: PUSH
13197: LD_INT 1
13199: ST_TO_ADDR
// Say ( Heike , L_1Heike ) ;
13200: LD_EXP 1
13204: PPUSH
13205: LD_STRING L_1Heike
13207: PPUSH
13208: CALL_OW 88
// Say ( Oswald , L_1Oswald ) ;
13212: LD_EXP 5
13216: PPUSH
13217: LD_STRING L_1Oswald
13219: PPUSH
13220: CALL_OW 88
// end ; 2 :
13224: GO 13399
13226: LD_INT 2
13228: DOUBLE
13229: EQUAL
13230: IFTRUE 13234
13232: GO 13269
13234: POP
// begin SwanssonIsLeader = 1 ;
13235: LD_ADDR_EXP 72
13239: PUSH
13240: LD_INT 1
13242: ST_TO_ADDR
// Say ( Heike , L_2Heike ) ;
13243: LD_EXP 1
13247: PPUSH
13248: LD_STRING L_2Heike
13250: PPUSH
13251: CALL_OW 88
// Say ( Swansson , L_2Swansson ) ;
13255: LD_EXP 11
13259: PPUSH
13260: LD_STRING L_2Swansson
13262: PPUSH
13263: CALL_OW 88
// end ; 3 :
13267: GO 13399
13269: LD_INT 3
13271: DOUBLE
13272: EQUAL
13273: IFTRUE 13277
13275: GO 13312
13277: POP
// begin DwayneIsLeader = 1 ;
13278: LD_ADDR_EXP 73
13282: PUSH
13283: LD_INT 1
13285: ST_TO_ADDR
// Say ( Heike , L_3Heike ) ;
13286: LD_EXP 1
13290: PPUSH
13291: LD_STRING L_3Heike
13293: PPUSH
13294: CALL_OW 88
// Say ( Dwayne , L_3Dwayne ) ;
13298: LD_EXP 12
13302: PPUSH
13303: LD_STRING L_3Dwayne
13305: PPUSH
13306: CALL_OW 88
// end ; 4 :
13310: GO 13399
13312: LD_INT 4
13314: DOUBLE
13315: EQUAL
13316: IFTRUE 13320
13318: GO 13355
13320: POP
// begin RalphIsLeader = 1 ;
13321: LD_ADDR_EXP 67
13325: PUSH
13326: LD_INT 1
13328: ST_TO_ADDR
// Say ( Heike , L_4Heike ) ;
13329: LD_EXP 1
13333: PPUSH
13334: LD_STRING L_4Heike
13336: PPUSH
13337: CALL_OW 88
// Say ( Ralph , L_4Ralph ) ;
13341: LD_EXP 6
13345: PPUSH
13346: LD_STRING L_4Ralph
13348: PPUSH
13349: CALL_OW 88
// end ; 5 :
13353: GO 13399
13355: LD_INT 5
13357: DOUBLE
13358: EQUAL
13359: IFTRUE 13363
13361: GO 13398
13363: POP
// begin KowalskiIsLeader = 1 ;
13364: LD_ADDR_EXP 70
13368: PUSH
13369: LD_INT 1
13371: ST_TO_ADDR
// Say ( Heike , L_5Heike ) ;
13372: LD_EXP 1
13376: PPUSH
13377: LD_STRING L_5Heike
13379: PPUSH
13380: CALL_OW 88
// Say ( Kowalski , L_5Kowalski ) ;
13384: LD_EXP 9
13388: PPUSH
13389: LD_STRING L_5Kowalski
13391: PPUSH
13392: CALL_OW 88
// end ; end ;
13396: GO 13399
13398: POP
// end ;
13399: LD_VAR 0 1
13403: RET
// function ChooseSupport ( val ) ; var list1 , list2 , temp_val ; begin
13404: LD_INT 0
13406: PPUSH
13407: PPUSH
13408: PPUSH
13409: PPUSH
// temp_val = val ;
13410: LD_ADDR_VAR 0 5
13414: PUSH
13415: LD_VAR 0 1
13419: ST_TO_ADDR
// list1 = [ ] ;
13420: LD_ADDR_VAR 0 3
13424: PUSH
13425: EMPTY
13426: ST_TO_ADDR
// if not OlafIsLeader and Olaf > 0 then
13427: LD_EXP 65
13431: NOT
13432: PUSH
13433: LD_EXP 4
13437: PUSH
13438: LD_INT 0
13440: GREATER
13441: AND
13442: IFFALSE 13458
// list1 = list1 ^ 1 ;
13444: LD_ADDR_VAR 0 3
13448: PUSH
13449: LD_VAR 0 3
13453: PUSH
13454: LD_INT 1
13456: ADD
13457: ST_TO_ADDR
// if not OswaldIsLeader and Oswald > 0 then
13458: LD_EXP 66
13462: NOT
13463: PUSH
13464: LD_EXP 5
13468: PUSH
13469: LD_INT 0
13471: GREATER
13472: AND
13473: IFFALSE 13489
// list1 = list1 ^ 2 ;
13475: LD_ADDR_VAR 0 3
13479: PUSH
13480: LD_VAR 0 3
13484: PUSH
13485: LD_INT 2
13487: ADD
13488: ST_TO_ADDR
// if not RalphIsLeader and Ralph > 0 then
13489: LD_EXP 67
13493: NOT
13494: PUSH
13495: LD_EXP 6
13499: PUSH
13500: LD_INT 0
13502: GREATER
13503: AND
13504: IFFALSE 13520
// list1 = list1 ^ 3 ;
13506: LD_ADDR_VAR 0 3
13510: PUSH
13511: LD_VAR 0 3
13515: PUSH
13516: LD_INT 3
13518: ADD
13519: ST_TO_ADDR
// if not SonyaIsLeader and Sonya > 0 then
13520: LD_EXP 68
13524: NOT
13525: PUSH
13526: LD_EXP 7
13530: PUSH
13531: LD_INT 0
13533: GREATER
13534: AND
13535: IFFALSE 13551
// list1 = list1 ^ 4 ;
13537: LD_ADDR_VAR 0 3
13541: PUSH
13542: LD_VAR 0 3
13546: PUSH
13547: LD_INT 4
13549: ADD
13550: ST_TO_ADDR
// if not AviradzeIsLeader and Aviradze > 0 then
13551: LD_EXP 69
13555: NOT
13556: PUSH
13557: LD_EXP 8
13561: PUSH
13562: LD_INT 0
13564: GREATER
13565: AND
13566: IFFALSE 13582
// list1 = list1 ^ 5 ;
13568: LD_ADDR_VAR 0 3
13572: PUSH
13573: LD_VAR 0 3
13577: PUSH
13578: LD_INT 5
13580: ADD
13581: ST_TO_ADDR
// if not KowalskiIsLeader and Kowalski > 0 then
13582: LD_EXP 70
13586: NOT
13587: PUSH
13588: LD_EXP 9
13592: PUSH
13593: LD_INT 0
13595: GREATER
13596: AND
13597: IFFALSE 13613
// list1 = list1 ^ 6 ;
13599: LD_ADDR_VAR 0 3
13603: PUSH
13604: LD_VAR 0 3
13608: PUSH
13609: LD_INT 6
13611: ADD
13612: ST_TO_ADDR
// list1 = list1 ^ 7 ;
13613: LD_ADDR_VAR 0 3
13617: PUSH
13618: LD_VAR 0 3
13622: PUSH
13623: LD_INT 7
13625: ADD
13626: ST_TO_ADDR
// list2 = [ ] ;
13627: LD_ADDR_VAR 0 4
13631: PUSH
13632: EMPTY
13633: ST_TO_ADDR
// if not EvelynIsLeader and Evelyn > 0 then
13634: LD_EXP 71
13638: NOT
13639: PUSH
13640: LD_EXP 10
13644: PUSH
13645: LD_INT 0
13647: GREATER
13648: AND
13649: IFFALSE 13665
// list2 = list2 ^ 1 ;
13651: LD_ADDR_VAR 0 4
13655: PUSH
13656: LD_VAR 0 4
13660: PUSH
13661: LD_INT 1
13663: ADD
13664: ST_TO_ADDR
// if not SwanssonIsLeader and Swansson > 0 then
13665: LD_EXP 72
13669: NOT
13670: PUSH
13671: LD_EXP 11
13675: PUSH
13676: LD_INT 0
13678: GREATER
13679: AND
13680: IFFALSE 13696
// list2 = list2 ^ 2 ;
13682: LD_ADDR_VAR 0 4
13686: PUSH
13687: LD_VAR 0 4
13691: PUSH
13692: LD_INT 2
13694: ADD
13695: ST_TO_ADDR
// if not DwayneIsLeader and Dwayne > 0 then
13696: LD_EXP 73
13700: NOT
13701: PUSH
13702: LD_EXP 12
13706: PUSH
13707: LD_INT 0
13709: GREATER
13710: AND
13711: IFFALSE 13727
// list2 = list2 ^ 3 ;
13713: LD_ADDR_VAR 0 4
13717: PUSH
13718: LD_VAR 0 4
13722: PUSH
13723: LD_INT 3
13725: ADD
13726: ST_TO_ADDR
// if not KhattamIsLeader and Khattam > 0 then
13727: LD_EXP 74
13731: NOT
13732: PUSH
13733: LD_EXP 13
13737: PUSH
13738: LD_INT 0
13740: GREATER
13741: AND
13742: IFFALSE 13758
// list2 = list2 ^ 4 ;
13744: LD_ADDR_VAR 0 4
13748: PUSH
13749: LD_VAR 0 4
13753: PUSH
13754: LD_INT 4
13756: ADD
13757: ST_TO_ADDR
// if not MakiseIsLeader and Makise > 0 then
13758: LD_EXP 75
13762: NOT
13763: PUSH
13764: LD_EXP 14
13768: PUSH
13769: LD_INT 0
13771: GREATER
13772: AND
13773: IFFALSE 13789
// list2 = list2 ^ 5 ;
13775: LD_ADDR_VAR 0 4
13779: PUSH
13780: LD_VAR 0 4
13784: PUSH
13785: LD_INT 5
13787: ADD
13788: ST_TO_ADDR
// if not SnakeIsLeader and Snake > 0 then
13789: LD_EXP 76
13793: NOT
13794: PUSH
13795: LD_EXP 19
13799: PUSH
13800: LD_INT 0
13802: GREATER
13803: AND
13804: IFFALSE 13820
// list2 = list2 ^ 6 ;
13806: LD_ADDR_VAR 0 4
13810: PUSH
13811: LD_VAR 0 4
13815: PUSH
13816: LD_INT 6
13818: ADD
13819: ST_TO_ADDR
// list2 = list2 ^ 7 ;
13820: LD_ADDR_VAR 0 4
13824: PUSH
13825: LD_VAR 0 4
13829: PUSH
13830: LD_INT 7
13832: ADD
13833: ST_TO_ADDR
// if list1 [ 1 ] = 7 then
13834: LD_VAR 0 3
13838: PUSH
13839: LD_INT 1
13841: ARRAY
13842: PUSH
13843: LD_INT 7
13845: EQUAL
13846: IFFALSE 13869
// begin list1 = [ ] ;
13848: LD_ADDR_VAR 0 3
13852: PUSH
13853: EMPTY
13854: ST_TO_ADDR
// list2 = list2 diff 7 ;
13855: LD_ADDR_VAR 0 4
13859: PUSH
13860: LD_VAR 0 4
13864: PUSH
13865: LD_INT 7
13867: DIFF
13868: ST_TO_ADDR
// end ; if list2 [ 1 ] = 7 then
13869: LD_VAR 0 4
13873: PUSH
13874: LD_INT 1
13876: ARRAY
13877: PUSH
13878: LD_INT 7
13880: EQUAL
13881: IFFALSE 13904
// begin list2 = [ ] ;
13883: LD_ADDR_VAR 0 4
13887: PUSH
13888: EMPTY
13889: ST_TO_ADDR
// list1 = list1 diff 7 ;
13890: LD_ADDR_VAR 0 3
13894: PUSH
13895: LD_VAR 0 3
13899: PUSH
13900: LD_INT 7
13902: DIFF
13903: ST_TO_ADDR
// end ; repeat wait ( 0 0$0.1 ) ;
13904: LD_INT 4
13906: PPUSH
13907: CALL_OW 67
// if list2 > 0 then
13911: LD_VAR 0 4
13915: PUSH
13916: LD_INT 0
13918: GREATER
13919: IFFALSE 13956
// if list2 [ 1 ] = 7 then
13921: LD_VAR 0 4
13925: PUSH
13926: LD_INT 1
13928: ARRAY
13929: PUSH
13930: LD_INT 7
13932: EQUAL
13933: IFFALSE 13956
// begin list2 = [ ] ;
13935: LD_ADDR_VAR 0 4
13939: PUSH
13940: EMPTY
13941: ST_TO_ADDR
// list1 = list1 diff 7 ;
13942: LD_ADDR_VAR 0 3
13946: PUSH
13947: LD_VAR 0 3
13951: PUSH
13952: LD_INT 7
13954: DIFF
13955: ST_TO_ADDR
// end ; if list1 > 0 then
13956: LD_VAR 0 3
13960: PUSH
13961: LD_INT 0
13963: GREATER
13964: IFFALSE 14262
// case SelectiveQuery ( character_selection1 , list1 ) of 1 :
13966: LD_STRING character_selection1
13968: PPUSH
13969: LD_VAR 0 3
13973: PPUSH
13974: CALL_OW 98
13978: PUSH
13979: LD_INT 1
13981: DOUBLE
13982: EQUAL
13983: IFTRUE 13987
13985: GO 14026
13987: POP
// begin OlafIsSupport = 1 ;
13988: LD_ADDR_EXP 78
13992: PUSH
13993: LD_INT 1
13995: ST_TO_ADDR
// list1 = list1 diff 1 ;
13996: LD_ADDR_VAR 0 3
14000: PUSH
14001: LD_VAR 0 3
14005: PUSH
14006: LD_INT 1
14008: DIFF
14009: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14010: LD_ADDR_VAR 0 5
14014: PUSH
14015: LD_VAR 0 5
14019: PUSH
14020: LD_INT 1
14022: MINUS
14023: ST_TO_ADDR
// end ; 2 :
14024: GO 14262
14026: LD_INT 2
14028: DOUBLE
14029: EQUAL
14030: IFTRUE 14034
14032: GO 14073
14034: POP
// begin OswaldIsSupport = 1 ;
14035: LD_ADDR_EXP 79
14039: PUSH
14040: LD_INT 1
14042: ST_TO_ADDR
// list1 = list1 diff 2 ;
14043: LD_ADDR_VAR 0 3
14047: PUSH
14048: LD_VAR 0 3
14052: PUSH
14053: LD_INT 2
14055: DIFF
14056: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14057: LD_ADDR_VAR 0 5
14061: PUSH
14062: LD_VAR 0 5
14066: PUSH
14067: LD_INT 1
14069: MINUS
14070: ST_TO_ADDR
// end ; 3 :
14071: GO 14262
14073: LD_INT 3
14075: DOUBLE
14076: EQUAL
14077: IFTRUE 14081
14079: GO 14120
14081: POP
// begin RalphIsSupport = 1 ;
14082: LD_ADDR_EXP 80
14086: PUSH
14087: LD_INT 1
14089: ST_TO_ADDR
// list1 = list1 diff 3 ;
14090: LD_ADDR_VAR 0 3
14094: PUSH
14095: LD_VAR 0 3
14099: PUSH
14100: LD_INT 3
14102: DIFF
14103: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14104: LD_ADDR_VAR 0 5
14108: PUSH
14109: LD_VAR 0 5
14113: PUSH
14114: LD_INT 1
14116: MINUS
14117: ST_TO_ADDR
// end ; 4 :
14118: GO 14262
14120: LD_INT 4
14122: DOUBLE
14123: EQUAL
14124: IFTRUE 14128
14126: GO 14167
14128: POP
// begin SonyaIsSupport = 1 ;
14129: LD_ADDR_EXP 81
14133: PUSH
14134: LD_INT 1
14136: ST_TO_ADDR
// list1 = list1 diff 4 ;
14137: LD_ADDR_VAR 0 3
14141: PUSH
14142: LD_VAR 0 3
14146: PUSH
14147: LD_INT 4
14149: DIFF
14150: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14151: LD_ADDR_VAR 0 5
14155: PUSH
14156: LD_VAR 0 5
14160: PUSH
14161: LD_INT 1
14163: MINUS
14164: ST_TO_ADDR
// end ; 5 :
14165: GO 14262
14167: LD_INT 5
14169: DOUBLE
14170: EQUAL
14171: IFTRUE 14175
14173: GO 14214
14175: POP
// begin AviradzeIsSupport = 1 ;
14176: LD_ADDR_EXP 82
14180: PUSH
14181: LD_INT 1
14183: ST_TO_ADDR
// list1 = list1 diff 5 ;
14184: LD_ADDR_VAR 0 3
14188: PUSH
14189: LD_VAR 0 3
14193: PUSH
14194: LD_INT 5
14196: DIFF
14197: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14198: LD_ADDR_VAR 0 5
14202: PUSH
14203: LD_VAR 0 5
14207: PUSH
14208: LD_INT 1
14210: MINUS
14211: ST_TO_ADDR
// end ; 6 :
14212: GO 14262
14214: LD_INT 6
14216: DOUBLE
14217: EQUAL
14218: IFTRUE 14222
14220: GO 14261
14222: POP
// begin KowalskiIsSupport = 1 ;
14223: LD_ADDR_EXP 83
14227: PUSH
14228: LD_INT 1
14230: ST_TO_ADDR
// list1 = list1 diff 6 ;
14231: LD_ADDR_VAR 0 3
14235: PUSH
14236: LD_VAR 0 3
14240: PUSH
14241: LD_INT 6
14243: DIFF
14244: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14245: LD_ADDR_VAR 0 5
14249: PUSH
14250: LD_VAR 0 5
14254: PUSH
14255: LD_INT 1
14257: MINUS
14258: ST_TO_ADDR
// end ; end ;
14259: GO 14262
14261: POP
// if list1 > 0 then
14262: LD_VAR 0 3
14266: PUSH
14267: LD_INT 0
14269: GREATER
14270: IFFALSE 14307
// if list1 [ 1 ] = 7 then
14272: LD_VAR 0 3
14276: PUSH
14277: LD_INT 1
14279: ARRAY
14280: PUSH
14281: LD_INT 7
14283: EQUAL
14284: IFFALSE 14307
// begin list1 = [ ] ;
14286: LD_ADDR_VAR 0 3
14290: PUSH
14291: EMPTY
14292: ST_TO_ADDR
// list2 = list2 diff 7 ;
14293: LD_ADDR_VAR 0 4
14297: PUSH
14298: LD_VAR 0 4
14302: PUSH
14303: LD_INT 7
14305: DIFF
14306: ST_TO_ADDR
// end ; if temp_val = 0 then
14307: LD_VAR 0 5
14311: PUSH
14312: LD_INT 0
14314: EQUAL
14315: IFFALSE 14319
// break ;
14317: GO 14635
// if list2 > 0 then
14319: LD_VAR 0 4
14323: PUSH
14324: LD_INT 0
14326: GREATER
14327: IFFALSE 14625
// case SelectiveQuery ( character_selection2 , list2 ) of 1 :
14329: LD_STRING character_selection2
14331: PPUSH
14332: LD_VAR 0 4
14336: PPUSH
14337: CALL_OW 98
14341: PUSH
14342: LD_INT 1
14344: DOUBLE
14345: EQUAL
14346: IFTRUE 14350
14348: GO 14389
14350: POP
// begin EvelynIsSupport = 1 ;
14351: LD_ADDR_EXP 84
14355: PUSH
14356: LD_INT 1
14358: ST_TO_ADDR
// list2 = list2 diff 1 ;
14359: LD_ADDR_VAR 0 4
14363: PUSH
14364: LD_VAR 0 4
14368: PUSH
14369: LD_INT 1
14371: DIFF
14372: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14373: LD_ADDR_VAR 0 5
14377: PUSH
14378: LD_VAR 0 5
14382: PUSH
14383: LD_INT 1
14385: MINUS
14386: ST_TO_ADDR
// end ; 2 :
14387: GO 14625
14389: LD_INT 2
14391: DOUBLE
14392: EQUAL
14393: IFTRUE 14397
14395: GO 14436
14397: POP
// begin SwanssonIsSupport = 1 ;
14398: LD_ADDR_EXP 85
14402: PUSH
14403: LD_INT 1
14405: ST_TO_ADDR
// list2 = list2 diff 2 ;
14406: LD_ADDR_VAR 0 4
14410: PUSH
14411: LD_VAR 0 4
14415: PUSH
14416: LD_INT 2
14418: DIFF
14419: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14420: LD_ADDR_VAR 0 5
14424: PUSH
14425: LD_VAR 0 5
14429: PUSH
14430: LD_INT 1
14432: MINUS
14433: ST_TO_ADDR
// end ; 3 :
14434: GO 14625
14436: LD_INT 3
14438: DOUBLE
14439: EQUAL
14440: IFTRUE 14444
14442: GO 14483
14444: POP
// begin DwayneIsSupport = 1 ;
14445: LD_ADDR_EXP 86
14449: PUSH
14450: LD_INT 1
14452: ST_TO_ADDR
// list2 = list2 diff 3 ;
14453: LD_ADDR_VAR 0 4
14457: PUSH
14458: LD_VAR 0 4
14462: PUSH
14463: LD_INT 3
14465: DIFF
14466: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14467: LD_ADDR_VAR 0 5
14471: PUSH
14472: LD_VAR 0 5
14476: PUSH
14477: LD_INT 1
14479: MINUS
14480: ST_TO_ADDR
// end ; 4 :
14481: GO 14625
14483: LD_INT 4
14485: DOUBLE
14486: EQUAL
14487: IFTRUE 14491
14489: GO 14530
14491: POP
// begin KhattamIsSupport = 1 ;
14492: LD_ADDR_EXP 87
14496: PUSH
14497: LD_INT 1
14499: ST_TO_ADDR
// list2 = list2 diff 4 ;
14500: LD_ADDR_VAR 0 4
14504: PUSH
14505: LD_VAR 0 4
14509: PUSH
14510: LD_INT 4
14512: DIFF
14513: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14514: LD_ADDR_VAR 0 5
14518: PUSH
14519: LD_VAR 0 5
14523: PUSH
14524: LD_INT 1
14526: MINUS
14527: ST_TO_ADDR
// end ; 5 :
14528: GO 14625
14530: LD_INT 5
14532: DOUBLE
14533: EQUAL
14534: IFTRUE 14538
14536: GO 14577
14538: POP
// begin MakiseIsSupport = 1 ;
14539: LD_ADDR_EXP 88
14543: PUSH
14544: LD_INT 1
14546: ST_TO_ADDR
// list2 = list2 diff 5 ;
14547: LD_ADDR_VAR 0 4
14551: PUSH
14552: LD_VAR 0 4
14556: PUSH
14557: LD_INT 5
14559: DIFF
14560: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14561: LD_ADDR_VAR 0 5
14565: PUSH
14566: LD_VAR 0 5
14570: PUSH
14571: LD_INT 1
14573: MINUS
14574: ST_TO_ADDR
// end ; 6 :
14575: GO 14625
14577: LD_INT 6
14579: DOUBLE
14580: EQUAL
14581: IFTRUE 14585
14583: GO 14624
14585: POP
// begin SnakeIsSupport = 1 ;
14586: LD_ADDR_EXP 89
14590: PUSH
14591: LD_INT 1
14593: ST_TO_ADDR
// list2 = list2 diff 6 ;
14594: LD_ADDR_VAR 0 4
14598: PUSH
14599: LD_VAR 0 4
14603: PUSH
14604: LD_INT 6
14606: DIFF
14607: ST_TO_ADDR
// temp_val = temp_val - 1 ;
14608: LD_ADDR_VAR 0 5
14612: PUSH
14613: LD_VAR 0 5
14617: PUSH
14618: LD_INT 1
14620: MINUS
14621: ST_TO_ADDR
// end ; end ;
14622: GO 14625
14624: POP
// until temp_val = 0 ;
14625: LD_VAR 0 5
14629: PUSH
14630: LD_INT 0
14632: EQUAL
14633: IFFALSE 13904
// end ;
14635: LD_VAR 0 2
14639: RET
// on Command ( com ) do var i , j ;
14640: LD_INT 0
14642: PPUSH
14643: PPUSH
// begin for i in FilterAllUnits ( [ f_side , 2 ] ) do
14644: LD_ADDR_VAR 0 2
14648: PUSH
14649: LD_INT 22
14651: PUSH
14652: LD_INT 2
14654: PUSH
14655: EMPTY
14656: LIST
14657: LIST
14658: PPUSH
14659: CALL_OW 69
14663: PUSH
14664: FOR_IN
14665: IFFALSE 14954
// if HasTask ( i ) then
14667: LD_VAR 0 2
14671: PPUSH
14672: CALL_OW 314
14676: IFFALSE 14952
// for j = 1 to GetTaskList ( i ) do
14678: LD_ADDR_VAR 0 3
14682: PUSH
14683: DOUBLE
14684: LD_INT 1
14686: DEC
14687: ST_TO_ADDR
14688: LD_VAR 0 2
14692: PPUSH
14693: CALL_OW 437
14697: PUSH
14698: FOR_TO
14699: IFFALSE 14950
// begin if GetSide ( GetTaskList ( i ) [ j ] [ 4 ] ) = 5 then
14701: LD_VAR 0 2
14705: PPUSH
14706: CALL_OW 437
14710: PUSH
14711: LD_VAR 0 3
14715: ARRAY
14716: PUSH
14717: LD_INT 4
14719: ARRAY
14720: PPUSH
14721: CALL_OW 255
14725: PUSH
14726: LD_INT 5
14728: EQUAL
14729: IFFALSE 14744
// begin SetTaskList ( i , [ ] ) ;
14731: LD_VAR 0 2
14735: PPUSH
14736: EMPTY
14737: PPUSH
14738: CALL_OW 446
// break ;
14742: GO 14950
// end ; if FilterAllUnits ( [ [ f_side , 5 ] , [ f_distxy , GetTaskList ( i ) [ j ] [ 2 ] , GetTaskList ( i ) [ j ] [ 3 ] , 4 ] ] ) > 0 then
14744: LD_INT 22
14746: PUSH
14747: LD_INT 5
14749: PUSH
14750: EMPTY
14751: LIST
14752: LIST
14753: PUSH
14754: LD_INT 92
14756: PUSH
14757: LD_VAR 0 2
14761: PPUSH
14762: CALL_OW 437
14766: PUSH
14767: LD_VAR 0 3
14771: ARRAY
14772: PUSH
14773: LD_INT 2
14775: ARRAY
14776: PUSH
14777: LD_VAR 0 2
14781: PPUSH
14782: CALL_OW 437
14786: PUSH
14787: LD_VAR 0 3
14791: ARRAY
14792: PUSH
14793: LD_INT 3
14795: ARRAY
14796: PUSH
14797: LD_INT 4
14799: PUSH
14800: EMPTY
14801: LIST
14802: LIST
14803: LIST
14804: LIST
14805: PUSH
14806: EMPTY
14807: LIST
14808: LIST
14809: PPUSH
14810: CALL_OW 69
14814: PUSH
14815: LD_INT 0
14817: GREATER
14818: IFFALSE 14885
// if not GetTaskList ( i ) [ j ] [ 3 ] in FilterAllUnits ( [ [ f_side , 2 ] , [ f_type , unit_building ] ] ) then
14820: LD_VAR 0 2
14824: PPUSH
14825: CALL_OW 437
14829: PUSH
14830: LD_VAR 0 3
14834: ARRAY
14835: PUSH
14836: LD_INT 3
14838: ARRAY
14839: PUSH
14840: LD_INT 22
14842: PUSH
14843: LD_INT 2
14845: PUSH
14846: EMPTY
14847: LIST
14848: LIST
14849: PUSH
14850: LD_INT 21
14852: PUSH
14853: LD_INT 3
14855: PUSH
14856: EMPTY
14857: LIST
14858: LIST
14859: PUSH
14860: EMPTY
14861: LIST
14862: LIST
14863: PPUSH
14864: CALL_OW 69
14868: IN
14869: NOT
14870: IFFALSE 14885
// begin SetTaskList ( i , [ ] ) ;
14872: LD_VAR 0 2
14876: PPUSH
14877: EMPTY
14878: PPUSH
14879: CALL_OW 446
// break ;
14883: GO 14950
// end ; if GetTaskList ( i ) [ j ] [ 2 ] = 13 and GetTaskList ( i ) [ j ] [ 3 ] = 9 then
14885: LD_VAR 0 2
14889: PPUSH
14890: CALL_OW 437
14894: PUSH
14895: LD_VAR 0 3
14899: ARRAY
14900: PUSH
14901: LD_INT 2
14903: ARRAY
14904: PUSH
14905: LD_INT 13
14907: EQUAL
14908: PUSH
14909: LD_VAR 0 2
14913: PPUSH
14914: CALL_OW 437
14918: PUSH
14919: LD_VAR 0 3
14923: ARRAY
14924: PUSH
14925: LD_INT 3
14927: ARRAY
14928: PUSH
14929: LD_INT 9
14931: EQUAL
14932: AND
14933: IFFALSE 14948
// begin SetTaskList ( i , [ ] ) ;
14935: LD_VAR 0 2
14939: PPUSH
14940: EMPTY
14941: PPUSH
14942: CALL_OW 446
// break ;
14946: GO 14950
// end ; end ;
14948: GO 14698
14950: POP
14951: POP
14952: GO 14664
14954: POP
14955: POP
// end ;
14956: PPOPN 3
14958: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , 5 ] , [ f_placed ] ] ) > 0 do var i ;
14959: LD_INT 22
14961: PUSH
14962: LD_INT 5
14964: PUSH
14965: EMPTY
14966: LIST
14967: LIST
14968: PUSH
14969: LD_INT 52
14971: PUSH
14972: EMPTY
14973: LIST
14974: PUSH
14975: EMPTY
14976: LIST
14977: LIST
14978: PPUSH
14979: CALL_OW 69
14983: PUSH
14984: LD_INT 0
14986: GREATER
14987: IFFALSE 15063
14989: GO 14991
14991: DISABLE
14992: LD_INT 0
14994: PPUSH
// begin for i in FilterAllUnits ( [ [ f_side , 5 ] , [ f_placed ] ] ) do
14995: LD_ADDR_VAR 0 1
14999: PUSH
15000: LD_INT 22
15002: PUSH
15003: LD_INT 5
15005: PUSH
15006: EMPTY
15007: LIST
15008: LIST
15009: PUSH
15010: LD_INT 52
15012: PUSH
15013: EMPTY
15014: LIST
15015: PUSH
15016: EMPTY
15017: LIST
15018: LIST
15019: PPUSH
15020: CALL_OW 69
15024: PUSH
15025: FOR_IN
15026: IFFALSE 15060
// if GetDistUnitXY ( i , 72 , 136 ) < 5 then
15028: LD_VAR 0 1
15032: PPUSH
15033: LD_INT 72
15035: PPUSH
15036: LD_INT 136
15038: PPUSH
15039: CALL_OW 297
15043: PUSH
15044: LD_INT 5
15046: LESS
15047: IFFALSE 15058
// RemoveUnit ( i ) ;
15049: LD_VAR 0 1
15053: PPUSH
15054: CALL_OW 64
15058: GO 15025
15060: POP
15061: POP
// enable ;
15062: ENABLE
// end ;
15063: PPOPN 1
15065: END
// function Animals ; var i , temp ; begin
15066: LD_INT 0
15068: PPUSH
15069: PPUSH
15070: PPUSH
// Randomize ;
15071: CALL_OW 10
// InitUc ;
15075: CALL_OW 18
// InitHc ;
15079: CALL_OW 19
// uc_side = 0 ;
15083: LD_ADDR_OWVAR 20
15087: PUSH
15088: LD_INT 0
15090: ST_TO_ADDR
// uc_nation = nation_nature ;
15091: LD_ADDR_OWVAR 21
15095: PUSH
15096: LD_INT 0
15098: ST_TO_ADDR
// hc_class = class_apeman ;
15099: LD_ADDR_OWVAR 28
15103: PUSH
15104: LD_INT 12
15106: ST_TO_ADDR
// for i = 1 to 3 do
15107: LD_ADDR_VAR 0 2
15111: PUSH
15112: DOUBLE
15113: LD_INT 1
15115: DEC
15116: ST_TO_ADDR
15117: LD_INT 3
15119: PUSH
15120: FOR_TO
15121: IFFALSE 15239
// begin hc_agressivity = Rand ( - 30 , 30 ) ;
15123: LD_ADDR_OWVAR 35
15127: PUSH
15128: LD_INT 30
15130: NEG
15131: PPUSH
15132: LD_INT 30
15134: PPUSH
15135: CALL_OW 12
15139: ST_TO_ADDR
// hc_attr = [ rand ( 15 , 18 ) , 12 ] ;
15140: LD_ADDR_OWVAR 29
15144: PUSH
15145: LD_INT 15
15147: PPUSH
15148: LD_INT 18
15150: PPUSH
15151: CALL_OW 12
15155: PUSH
15156: LD_INT 12
15158: PUSH
15159: EMPTY
15160: LIST
15161: LIST
15162: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
15163: LD_ADDR_OWVAR 27
15167: PUSH
15168: LD_INT 1
15170: PPUSH
15171: LD_INT 2
15173: PPUSH
15174: CALL_OW 12
15178: ST_TO_ADDR
// temp = rand ( 7 , 10 ) ;
15179: LD_ADDR_VAR 0 3
15183: PUSH
15184: LD_INT 7
15186: PPUSH
15187: LD_INT 10
15189: PPUSH
15190: CALL_OW 12
15194: ST_TO_ADDR
// hc_skills = [ temp , temp , 0 , 0 ] ;
15195: LD_ADDR_OWVAR 31
15199: PUSH
15200: LD_VAR 0 3
15204: PUSH
15205: LD_VAR 0 3
15209: PUSH
15210: LD_INT 0
15212: PUSH
15213: LD_INT 0
15215: PUSH
15216: EMPTY
15217: LIST
15218: LIST
15219: LIST
15220: LIST
15221: ST_TO_ADDR
// PlaceUnitArea ( CreateHuman , ApeArea , false ) ;
15222: CALL_OW 44
15226: PPUSH
15227: LD_INT 10
15229: PPUSH
15230: LD_INT 0
15232: PPUSH
15233: CALL_OW 49
// end ;
15237: GO 15120
15239: POP
15240: POP
// hc_attr = [ 10 , 10 ] ;
15241: LD_ADDR_OWVAR 29
15245: PUSH
15246: LD_INT 10
15248: PUSH
15249: LD_INT 10
15251: PUSH
15252: EMPTY
15253: LIST
15254: LIST
15255: ST_TO_ADDR
// hc_skills = [ 0 , 0 , 0 , 0 ] ;
15256: LD_ADDR_OWVAR 31
15260: PUSH
15261: LD_INT 0
15263: PUSH
15264: LD_INT 0
15266: PUSH
15267: LD_INT 0
15269: PUSH
15270: LD_INT 0
15272: PUSH
15273: EMPTY
15274: LIST
15275: LIST
15276: LIST
15277: LIST
15278: ST_TO_ADDR
// for i = 1 to 8 do
15279: LD_ADDR_VAR 0 2
15283: PUSH
15284: DOUBLE
15285: LD_INT 1
15287: DEC
15288: ST_TO_ADDR
15289: LD_INT 8
15291: PUSH
15292: FOR_TO
15293: IFFALSE 15378
// begin if rand ( 1 , 2 ) = 1 then
15295: LD_INT 1
15297: PPUSH
15298: LD_INT 2
15300: PPUSH
15301: CALL_OW 12
15305: PUSH
15306: LD_INT 1
15308: EQUAL
15309: IFFALSE 15337
// begin hc_gallery = nature_foreg ;
15311: LD_ADDR_OWVAR 33
15315: PUSH
15316: LD_STRING nature_foreg
15318: ST_TO_ADDR
// hc_face_number = 1 ;
15319: LD_ADDR_OWVAR 34
15323: PUSH
15324: LD_INT 1
15326: ST_TO_ADDR
// hc_class = class_phororhacos ;
15327: LD_ADDR_OWVAR 28
15331: PUSH
15332: LD_INT 18
15334: ST_TO_ADDR
// end else
15335: GO 15361
// begin hc_gallery = nature_foreg ;
15337: LD_ADDR_OWVAR 33
15341: PUSH
15342: LD_STRING nature_foreg
15344: ST_TO_ADDR
// hc_face_number = 4 ;
15345: LD_ADDR_OWVAR 34
15349: PUSH
15350: LD_INT 4
15352: ST_TO_ADDR
// hc_class = class_baggie ;
15353: LD_ADDR_OWVAR 28
15357: PUSH
15358: LD_INT 13
15360: ST_TO_ADDR
// end ; PlaceUnitArea ( CreateHuman , AnimalArea , false ) ;
15361: CALL_OW 44
15365: PPUSH
15366: LD_INT 11
15368: PPUSH
15369: LD_INT 0
15371: PPUSH
15372: CALL_OW 49
// end ;
15376: GO 15292
15378: POP
15379: POP
// for i = 1 to 2 do
15380: LD_ADDR_VAR 0 2
15384: PUSH
15385: DOUBLE
15386: LD_INT 1
15388: DEC
15389: ST_TO_ADDR
15390: LD_INT 2
15392: PUSH
15393: FOR_TO
15394: IFFALSE 15483
// begin hc_agressivity = 0 ;
15396: LD_ADDR_OWVAR 35
15400: PUSH
15401: LD_INT 0
15403: ST_TO_ADDR
// hc_class = class_tiger ;
15404: LD_ADDR_OWVAR 28
15408: PUSH
15409: LD_INT 14
15411: ST_TO_ADDR
// hc_attr = [ 16 , 11 ] ;
15412: LD_ADDR_OWVAR 29
15416: PUSH
15417: LD_INT 16
15419: PUSH
15420: LD_INT 11
15422: PUSH
15423: EMPTY
15424: LIST
15425: LIST
15426: ST_TO_ADDR
// hc_skills = [ 5 , 5 , 5 , 5 ] ;
15427: LD_ADDR_OWVAR 31
15431: PUSH
15432: LD_INT 5
15434: PUSH
15435: LD_INT 5
15437: PUSH
15438: LD_INT 5
15440: PUSH
15441: LD_INT 5
15443: PUSH
15444: EMPTY
15445: LIST
15446: LIST
15447: LIST
15448: LIST
15449: ST_TO_ADDR
// hc_gallery = nature_foreg ;
15450: LD_ADDR_OWVAR 33
15454: PUSH
15455: LD_STRING nature_foreg
15457: ST_TO_ADDR
// hc_face_number = 3 ;
15458: LD_ADDR_OWVAR 34
15462: PUSH
15463: LD_INT 3
15465: ST_TO_ADDR
// PlaceUnitArea ( CreateHuman , AnimalArea , false ) ;
15466: CALL_OW 44
15470: PPUSH
15471: LD_INT 11
15473: PPUSH
15474: LD_INT 0
15476: PPUSH
15477: CALL_OW 49
// end ;
15481: GO 15393
15483: POP
15484: POP
// vc_weapon = 61 ;
15485: LD_ADDR_OWVAR 40
15489: PUSH
15490: LD_INT 61
15492: ST_TO_ADDR
// vc_chassis = 31 ;
15493: LD_ADDR_OWVAR 37
15497: PUSH
15498: LD_INT 31
15500: ST_TO_ADDR
// vc_control = control_rider ;
15501: LD_ADDR_OWVAR 38
15505: PUSH
15506: LD_INT 4
15508: ST_TO_ADDR
// vc_engine = engine_siberite ;
15509: LD_ADDR_OWVAR 39
15513: PUSH
15514: LD_INT 3
15516: ST_TO_ADDR
// hc_agressivity = 0 ;
15517: LD_ADDR_OWVAR 35
15521: PUSH
15522: LD_INT 0
15524: ST_TO_ADDR
// PlaceUnitXYR ( CreateVehicle , 69 , 101 , 5 , 0 ) ;
15525: CALL_OW 45
15529: PPUSH
15530: LD_INT 69
15532: PPUSH
15533: LD_INT 101
15535: PPUSH
15536: LD_INT 5
15538: PPUSH
15539: LD_INT 0
15541: PPUSH
15542: CALL_OW 50
// InitHc ;
15546: CALL_OW 19
// InitUc ;
15550: CALL_OW 18
// InitVc ;
15554: CALL_OW 20
// end ;
15558: LD_VAR 0 1
15562: RET
// every 0 0$1 do var temp ;
15563: GO 15565
15565: DISABLE
15566: LD_INT 0
15568: PPUSH
// begin temp = FilterAllUnits ( [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_soldier ] , [ f_class , class_apeman_kamikaze ] , [ f_class , class_apeman_engineer ] ] ) ;
15569: LD_ADDR_VAR 0 1
15573: PUSH
15574: LD_INT 2
15576: PUSH
15577: LD_INT 25
15579: PUSH
15580: LD_INT 12
15582: PUSH
15583: EMPTY
15584: LIST
15585: LIST
15586: PUSH
15587: LD_INT 25
15589: PUSH
15590: LD_INT 15
15592: PUSH
15593: EMPTY
15594: LIST
15595: LIST
15596: PUSH
15597: LD_INT 25
15599: PUSH
15600: LD_INT 17
15602: PUSH
15603: EMPTY
15604: LIST
15605: LIST
15606: PUSH
15607: LD_INT 25
15609: PUSH
15610: LD_INT 16
15612: PUSH
15613: EMPTY
15614: LIST
15615: LIST
15616: PUSH
15617: EMPTY
15618: LIST
15619: LIST
15620: LIST
15621: LIST
15622: LIST
15623: PPUSH
15624: CALL_OW 69
15628: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_side , 0 ] , [ f_class , class_apeman ] , [ f_ok ] ] ) = 0 and temp < [ 10 , 8 , 6 ] [ difficulty ] then
15629: LD_INT 22
15631: PUSH
15632: LD_INT 0
15634: PUSH
15635: EMPTY
15636: LIST
15637: LIST
15638: PUSH
15639: LD_INT 25
15641: PUSH
15642: LD_INT 12
15644: PUSH
15645: EMPTY
15646: LIST
15647: LIST
15648: PUSH
15649: LD_INT 50
15651: PUSH
15652: EMPTY
15653: LIST
15654: PUSH
15655: EMPTY
15656: LIST
15657: LIST
15658: LIST
15659: PPUSH
15660: CALL_OW 69
15664: PUSH
15665: LD_INT 0
15667: EQUAL
15668: PUSH
15669: LD_VAR 0 1
15673: PUSH
15674: LD_INT 10
15676: PUSH
15677: LD_INT 8
15679: PUSH
15680: LD_INT 6
15682: PUSH
15683: EMPTY
15684: LIST
15685: LIST
15686: LIST
15687: PUSH
15688: LD_OWVAR 67
15692: ARRAY
15693: LESS
15694: AND
15695: IFFALSE 15850
// begin wait ( rand ( 0 0$3 , 0 0$8 ) ) ;
15697: LD_INT 105
15699: PPUSH
15700: LD_INT 280
15702: PPUSH
15703: CALL_OW 12
15707: PPUSH
15708: CALL_OW 67
// uc_side = 0 ;
15712: LD_ADDR_OWVAR 20
15716: PUSH
15717: LD_INT 0
15719: ST_TO_ADDR
// uc_nation = nation_nature ;
15720: LD_ADDR_OWVAR 21
15724: PUSH
15725: LD_INT 0
15727: ST_TO_ADDR
// hc_class = class_apeman ;
15728: LD_ADDR_OWVAR 28
15732: PUSH
15733: LD_INT 12
15735: ST_TO_ADDR
// hc_agressivity = Rand ( - 30 , 30 ) ;
15736: LD_ADDR_OWVAR 35
15740: PUSH
15741: LD_INT 30
15743: NEG
15744: PPUSH
15745: LD_INT 30
15747: PPUSH
15748: CALL_OW 12
15752: ST_TO_ADDR
// hc_attr = [ rand ( 15 , 18 ) , 12 ] ;
15753: LD_ADDR_OWVAR 29
15757: PUSH
15758: LD_INT 15
15760: PPUSH
15761: LD_INT 18
15763: PPUSH
15764: CALL_OW 12
15768: PUSH
15769: LD_INT 12
15771: PUSH
15772: EMPTY
15773: LIST
15774: LIST
15775: ST_TO_ADDR
// hc_sex = Rand ( sex_male , sex_female ) ;
15776: LD_ADDR_OWVAR 27
15780: PUSH
15781: LD_INT 1
15783: PPUSH
15784: LD_INT 2
15786: PPUSH
15787: CALL_OW 12
15791: ST_TO_ADDR
// temp = rand ( 7 , 10 ) ;
15792: LD_ADDR_VAR 0 1
15796: PUSH
15797: LD_INT 7
15799: PPUSH
15800: LD_INT 10
15802: PPUSH
15803: CALL_OW 12
15807: ST_TO_ADDR
// hc_skills = [ temp , temp , 0 , 0 ] ;
15808: LD_ADDR_OWVAR 31
15812: PUSH
15813: LD_VAR 0 1
15817: PUSH
15818: LD_VAR 0 1
15822: PUSH
15823: LD_INT 0
15825: PUSH
15826: LD_INT 0
15828: PUSH
15829: EMPTY
15830: LIST
15831: LIST
15832: LIST
15833: LIST
15834: ST_TO_ADDR
// PlaceUnitArea ( CreateHuman , ApeArea , false ) ;
15835: CALL_OW 44
15839: PPUSH
15840: LD_INT 10
15842: PPUSH
15843: LD_INT 0
15845: PPUSH
15846: CALL_OW 49
// end ; enable ;
15850: ENABLE
// end ; end_of_file
15851: PPOPN 1
15853: END
// every 0 0$1 trigger AllianceDestroyed = 0 do var i , temp , temp2 , enemy ;
15854: LD_EXP 50
15858: PUSH
15859: LD_INT 0
15861: EQUAL
15862: IFFALSE 17841
15864: GO 15866
15866: DISABLE
15867: LD_INT 0
15869: PPUSH
15870: PPUSH
15871: PPUSH
15872: PPUSH
// begin Randomize ;
15873: CALL_OW 10
// temp = FilterUnitsInArea ( engrepair , [ [ f_type , unit_building ] , [ f_side , 7 ] ] ) ;
15877: LD_ADDR_VAR 0 2
15881: PUSH
15882: LD_INT 6
15884: PPUSH
15885: LD_INT 21
15887: PUSH
15888: LD_INT 3
15890: PUSH
15891: EMPTY
15892: LIST
15893: LIST
15894: PUSH
15895: LD_INT 22
15897: PUSH
15898: LD_INT 7
15900: PUSH
15901: EMPTY
15902: LIST
15903: LIST
15904: PUSH
15905: EMPTY
15906: LIST
15907: LIST
15908: PPUSH
15909: CALL_OW 70
15913: ST_TO_ADDR
// for i in temp ^ All_depot do
15914: LD_ADDR_VAR 0 1
15918: PUSH
15919: LD_VAR 0 2
15923: PUSH
15924: LD_EXP 37
15928: ADD
15929: PUSH
15930: FOR_IN
15931: IFFALSE 15979
// if GetLives ( i ) < 900 and not i in damaged_buildings then
15933: LD_VAR 0 1
15937: PPUSH
15938: CALL_OW 256
15942: PUSH
15943: LD_INT 900
15945: LESS
15946: PUSH
15947: LD_VAR 0 1
15951: PUSH
15952: LD_EXP 46
15956: IN
15957: NOT
15958: AND
15959: IFFALSE 15977
// damaged_buildings = damaged_buildings ^ i ;
15961: LD_ADDR_EXP 46
15965: PUSH
15966: LD_EXP 46
15970: PUSH
15971: LD_VAR 0 1
15975: ADD
15976: ST_TO_ADDR
15977: GO 15930
15979: POP
15980: POP
// for i in damaged_buildings do
15981: LD_ADDR_VAR 0 1
15985: PUSH
15986: LD_EXP 46
15990: PUSH
15991: FOR_IN
15992: IFFALSE 16038
// if GetLives ( i ) = 1000 or IsDead ( i ) then
15994: LD_VAR 0 1
15998: PPUSH
15999: CALL_OW 256
16003: PUSH
16004: LD_INT 1000
16006: EQUAL
16007: PUSH
16008: LD_VAR 0 1
16012: PPUSH
16013: CALL_OW 301
16017: OR
16018: IFFALSE 16036
// damaged_buildings = damaged_buildings diff i ;
16020: LD_ADDR_EXP 46
16024: PUSH
16025: LD_EXP 46
16029: PUSH
16030: LD_VAR 0 1
16034: DIFF
16035: ST_TO_ADDR
16036: GO 15991
16038: POP
16039: POP
// for i in FilterAllunits ( [ [ f_side , 7 ] , [ f_type , unit_human ] ] ) do
16040: LD_ADDR_VAR 0 1
16044: PUSH
16045: LD_INT 22
16047: PUSH
16048: LD_INT 7
16050: PUSH
16051: EMPTY
16052: LIST
16053: LIST
16054: PUSH
16055: LD_INT 21
16057: PUSH
16058: LD_INT 1
16060: PUSH
16061: EMPTY
16062: LIST
16063: LIST
16064: PUSH
16065: EMPTY
16066: LIST
16067: LIST
16068: PPUSH
16069: CALL_OW 69
16073: PUSH
16074: FOR_IN
16075: IFFALSE 16123
// if GetLives ( i ) < 700 and not i in damaged_people then
16077: LD_VAR 0 1
16081: PPUSH
16082: CALL_OW 256
16086: PUSH
16087: LD_INT 700
16089: LESS
16090: PUSH
16091: LD_VAR 0 1
16095: PUSH
16096: LD_EXP 47
16100: IN
16101: NOT
16102: AND
16103: IFFALSE 16121
// damaged_people = damaged_people ^ i ;
16105: LD_ADDR_EXP 47
16109: PUSH
16110: LD_EXP 47
16114: PUSH
16115: LD_VAR 0 1
16119: ADD
16120: ST_TO_ADDR
16121: GO 16074
16123: POP
16124: POP
// for i in damaged_people do
16125: LD_ADDR_VAR 0 1
16129: PUSH
16130: LD_EXP 47
16134: PUSH
16135: FOR_IN
16136: IFFALSE 16182
// if Getlives ( i ) = 1000 or IsDead ( i ) then
16138: LD_VAR 0 1
16142: PPUSH
16143: CALL_OW 256
16147: PUSH
16148: LD_INT 1000
16150: EQUAL
16151: PUSH
16152: LD_VAR 0 1
16156: PPUSH
16157: CALL_OW 301
16161: OR
16162: IFFALSE 16180
// damaged_people = damaged_people diff i ;
16164: LD_ADDR_EXP 47
16168: PUSH
16169: LD_EXP 47
16173: PUSH
16174: LD_VAR 0 1
16178: DIFF
16179: ST_TO_ADDR
16180: GO 16135
16182: POP
16183: POP
// if GetLives ( Alliance_crane ) < 500 and not damaged_crane then
16184: LD_EXP 36
16188: PPUSH
16189: CALL_OW 256
16193: PUSH
16194: LD_INT 500
16196: LESS
16197: PUSH
16198: LD_EXP 48
16202: NOT
16203: AND
16204: IFFALSE 16214
// damaged_crane = 1 ;
16206: LD_ADDR_EXP 48
16210: PUSH
16211: LD_INT 1
16213: ST_TO_ADDR
// if damaged_crane and ( GetLives ( Alliance_crane ) = 1000 or GetLives ( Alliance_crane ) = 0 ) then
16214: LD_EXP 48
16218: PUSH
16219: LD_EXP 36
16223: PPUSH
16224: CALL_OW 256
16228: PUSH
16229: LD_INT 1000
16231: EQUAL
16232: PUSH
16233: LD_EXP 36
16237: PPUSH
16238: CALL_OW 256
16242: PUSH
16243: LD_INT 0
16245: EQUAL
16246: OR
16247: AND
16248: IFFALSE 16258
// damaged_crane = 0 ;
16250: LD_ADDR_EXP 48
16254: PUSH
16255: LD_INT 0
16257: ST_TO_ADDR
// for i in Alliance_engs do
16258: LD_ADDR_VAR 0 1
16262: PUSH
16263: LD_EXP 34
16267: PUSH
16268: FOR_IN
16269: IFFALSE 16389
// if i in damaged_people then
16271: LD_VAR 0 1
16275: PUSH
16276: LD_EXP 47
16280: IN
16281: IFFALSE 16300
// ComMoveXY ( i , 25 , 17 ) else
16283: LD_VAR 0 1
16287: PPUSH
16288: LD_INT 25
16290: PPUSH
16291: LD_INT 17
16293: PPUSH
16294: CALL_OW 111
16298: GO 16387
// if damaged_buildings > 0 then
16300: LD_EXP 46
16304: PUSH
16305: LD_INT 0
16307: GREATER
16308: IFFALSE 16361
// begin if IsInUnit ( i ) then
16310: LD_VAR 0 1
16314: PPUSH
16315: CALL_OW 310
16319: IFFALSE 16341
// ComMoveUnit ( i , damaged_buildings [ 1 ] ) else
16321: LD_VAR 0 1
16325: PPUSH
16326: LD_EXP 46
16330: PUSH
16331: LD_INT 1
16333: ARRAY
16334: PPUSH
16335: CALL_OW 112
16339: GO 16359
// ComRepairBuilding ( i , damaged_buildings [ 1 ] ) ;
16341: LD_VAR 0 1
16345: PPUSH
16346: LD_EXP 46
16350: PUSH
16351: LD_INT 1
16353: ARRAY
16354: PPUSH
16355: CALL_OW 130
// end else
16359: GO 16387
// if not IsInUnit ( i ) then
16361: LD_VAR 0 1
16365: PPUSH
16366: CALL_OW 310
16370: NOT
16371: IFFALSE 16387
// ComEnterUnit ( i , All_depot ) ;
16373: LD_VAR 0 1
16377: PPUSH
16378: LD_EXP 37
16382: PPUSH
16383: CALL_OW 120
16387: GO 16268
16389: POP
16390: POP
// if damaged_buildings > 0 then
16391: LD_EXP 46
16395: PUSH
16396: LD_INT 0
16398: GREATER
16399: IFFALSE 16426
// temp2 = unitfilter ( damaged_buildings , [ f_inarea , cranerepair ] ) ;
16401: LD_ADDR_VAR 0 3
16405: PUSH
16406: LD_EXP 46
16410: PPUSH
16411: LD_INT 95
16413: PUSH
16414: LD_INT 5
16416: PUSH
16417: EMPTY
16418: LIST
16419: LIST
16420: PPUSH
16421: CALL_OW 72
16425: ST_TO_ADDR
// if damaged_crane then
16426: LD_EXP 48
16430: IFFALSE 16449
// ComMoveXY ( Alliance_crane , 28 , 15 ) else
16432: LD_EXP 36
16436: PPUSH
16437: LD_INT 28
16439: PPUSH
16440: LD_INT 15
16442: PPUSH
16443: CALL_OW 111
16447: GO 16477
// if temp2 > 0 then
16449: LD_VAR 0 3
16453: PUSH
16454: LD_INT 0
16456: GREATER
16457: IFFALSE 16477
// ComRepairBuilding ( Alliance_crane , temp2 [ 1 ] ) ;
16459: LD_EXP 36
16463: PPUSH
16464: LD_VAR 0 3
16468: PUSH
16469: LD_INT 1
16471: ARRAY
16472: PPUSH
16473: CALL_OW 130
// for i = 1 to Alliance_mechs do
16477: LD_ADDR_VAR 0 1
16481: PUSH
16482: DOUBLE
16483: LD_INT 1
16485: DEC
16486: ST_TO_ADDR
16487: LD_EXP 35
16491: PUSH
16492: FOR_TO
16493: IFFALSE 16761
// if Alliance_mechs [ i ] in damaged_people then
16495: LD_EXP 35
16499: PUSH
16500: LD_VAR 0 1
16504: ARRAY
16505: PUSH
16506: LD_EXP 47
16510: IN
16511: IFFALSE 16536
// ComMoveXY ( Alliance_mechs [ i ] , 25 , 17 ) else
16513: LD_EXP 35
16517: PUSH
16518: LD_VAR 0 1
16522: ARRAY
16523: PPUSH
16524: LD_INT 25
16526: PPUSH
16527: LD_INT 17
16529: PPUSH
16530: CALL_OW 111
16534: GO 16759
// if damaged_crane then
16536: LD_EXP 48
16540: IFFALSE 16613
// begin if i < 4 then
16542: LD_VAR 0 1
16546: PUSH
16547: LD_INT 4
16549: LESS
16550: IFFALSE 16611
// if IsInUnit ( Alliance_mechs [ i ] ) then
16552: LD_EXP 35
16556: PUSH
16557: LD_VAR 0 1
16561: ARRAY
16562: PPUSH
16563: CALL_OW 310
16567: IFFALSE 16591
// ComMoveUnit ( Alliance_mechs [ i ] , Alliance_crane ) else
16569: LD_EXP 35
16573: PUSH
16574: LD_VAR 0 1
16578: ARRAY
16579: PPUSH
16580: LD_EXP 36
16584: PPUSH
16585: CALL_OW 112
16589: GO 16611
// ComRepairVehicle ( Alliance_mechs [ i ] , Alliance_crane ) ;
16591: LD_EXP 35
16595: PUSH
16596: LD_VAR 0 1
16600: ARRAY
16601: PPUSH
16602: LD_EXP 36
16606: PPUSH
16607: CALL_OW 129
// end else
16611: GO 16759
// if not IsInUnit ( Alliance_mechs [ i ] ) then
16613: LD_EXP 35
16617: PUSH
16618: LD_VAR 0 1
16622: ARRAY
16623: PPUSH
16624: CALL_OW 310
16628: NOT
16629: IFFALSE 16759
// if i < 4 then
16631: LD_VAR 0 1
16635: PUSH
16636: LD_INT 4
16638: LESS
16639: IFFALSE 16701
// begin if GetLives ( All_fac1 ) > 0 then
16641: LD_EXP 38
16645: PPUSH
16646: CALL_OW 256
16650: PUSH
16651: LD_INT 0
16653: GREATER
16654: IFFALSE 16678
// ComEnterUnit ( Alliance_mechs [ i ] , All_fac1 ) else
16656: LD_EXP 35
16660: PUSH
16661: LD_VAR 0 1
16665: ARRAY
16666: PPUSH
16667: LD_EXP 38
16671: PPUSH
16672: CALL_OW 120
16676: GO 16699
// ComMoveXY ( Alliance_mechs [ i ] , 25 , 17 ) ;
16678: LD_EXP 35
16682: PUSH
16683: LD_VAR 0 1
16687: ARRAY
16688: PPUSH
16689: LD_INT 25
16691: PPUSH
16692: LD_INT 17
16694: PPUSH
16695: CALL_OW 111
// end else
16699: GO 16759
// if GetLives ( All_fac2 ) > 0 then
16701: LD_EXP 39
16705: PPUSH
16706: CALL_OW 256
16710: PUSH
16711: LD_INT 0
16713: GREATER
16714: IFFALSE 16738
// ComEnterUnit ( Alliance_mechs [ i ] , All_fac2 ) else
16716: LD_EXP 35
16720: PUSH
16721: LD_VAR 0 1
16725: ARRAY
16726: PPUSH
16727: LD_EXP 39
16731: PPUSH
16732: CALL_OW 120
16736: GO 16759
// ComMoveXY ( Alliance_mechs [ i ] , 25 , 17 ) ;
16738: LD_EXP 35
16742: PUSH
16743: LD_VAR 0 1
16747: ARRAY
16748: PPUSH
16749: LD_INT 25
16751: PPUSH
16752: LD_INT 17
16754: PPUSH
16755: CALL_OW 111
16759: GO 16492
16761: POP
16762: POP
// for i = 1 to Alliance_sci do
16763: LD_ADDR_VAR 0 1
16767: PUSH
16768: DOUBLE
16769: LD_INT 1
16771: DEC
16772: ST_TO_ADDR
16773: LD_EXP 33
16777: PUSH
16778: FOR_TO
16779: IFFALSE 17073
// if Alliance_sci [ i ] in damaged_people then
16781: LD_EXP 33
16785: PUSH
16786: LD_VAR 0 1
16790: ARRAY
16791: PUSH
16792: LD_EXP 47
16796: IN
16797: IFFALSE 16822
// ComMoveXY ( Alliance_sci [ i ] , 25 , 17 ) else
16799: LD_EXP 33
16803: PUSH
16804: LD_VAR 0 1
16808: ARRAY
16809: PPUSH
16810: LD_INT 25
16812: PPUSH
16813: LD_INT 17
16815: PPUSH
16816: CALL_OW 111
16820: GO 17071
// if damaged_people > 0 then
16822: LD_EXP 47
16826: PUSH
16827: LD_INT 0
16829: GREATER
16830: IFFALSE 16916
// begin if IsInUnit ( Alliance_sci [ i ] ) then
16832: LD_EXP 33
16836: PUSH
16837: LD_VAR 0 1
16841: ARRAY
16842: PPUSH
16843: CALL_OW 310
16847: IFFALSE 16890
// begin ComExitBuilding ( Alliance_sci [ i ] ) ;
16849: LD_EXP 33
16853: PUSH
16854: LD_VAR 0 1
16858: ARRAY
16859: PPUSH
16860: CALL_OW 122
// AddComHeal ( Alliance_sci [ i ] , damaged_people [ 1 ] ) ;
16864: LD_EXP 33
16868: PUSH
16869: LD_VAR 0 1
16873: ARRAY
16874: PPUSH
16875: LD_EXP 47
16879: PUSH
16880: LD_INT 1
16882: ARRAY
16883: PPUSH
16884: CALL_OW 188
// end else
16888: GO 16914
// ComHeal ( Alliance_sci [ i ] , damaged_people [ 1 ] ) ;
16890: LD_EXP 33
16894: PUSH
16895: LD_VAR 0 1
16899: ARRAY
16900: PPUSH
16901: LD_EXP 47
16905: PUSH
16906: LD_INT 1
16908: ARRAY
16909: PPUSH
16910: CALL_OW 128
// end else
16914: GO 17071
// if not IsInUnit ( Alliance_sci [ i ] ) then
16916: LD_EXP 33
16920: PUSH
16921: LD_VAR 0 1
16925: ARRAY
16926: PPUSH
16927: CALL_OW 310
16931: NOT
16932: IFFALSE 17071
// begin temp = [ All_lab1 , All_lab1 , All_lab1 , All_lab1 , All_lab2 , All_lab2 , All_lab2 , All_lab2 , All_lab3 , All_lab3 , All_lab3 ] [ i ] ;
16934: LD_ADDR_VAR 0 2
16938: PUSH
16939: LD_EXP 40
16943: PUSH
16944: LD_EXP 40
16948: PUSH
16949: LD_EXP 40
16953: PUSH
16954: LD_EXP 40
16958: PUSH
16959: LD_EXP 41
16963: PUSH
16964: LD_EXP 41
16968: PUSH
16969: LD_EXP 41
16973: PUSH
16974: LD_EXP 41
16978: PUSH
16979: LD_EXP 42
16983: PUSH
16984: LD_EXP 42
16988: PUSH
16989: LD_EXP 42
16993: PUSH
16994: EMPTY
16995: LIST
16996: LIST
16997: LIST
16998: LIST
16999: LIST
17000: LIST
17001: LIST
17002: LIST
17003: LIST
17004: LIST
17005: LIST
17006: PUSH
17007: LD_VAR 0 1
17011: ARRAY
17012: ST_TO_ADDR
// if GetLives ( temp ) > 0 then
17013: LD_VAR 0 2
17017: PPUSH
17018: CALL_OW 256
17022: PUSH
17023: LD_INT 0
17025: GREATER
17026: IFFALSE 17050
// ComEnterUnit ( Alliance_sci [ i ] , temp ) else
17028: LD_EXP 33
17032: PUSH
17033: LD_VAR 0 1
17037: ARRAY
17038: PPUSH
17039: LD_VAR 0 2
17043: PPUSH
17044: CALL_OW 120
17048: GO 17071
// ComMoveXY ( Alliance_sci [ i ] , 25 , 17 ) ;
17050: LD_EXP 33
17054: PUSH
17055: LD_VAR 0 1
17059: ARRAY
17060: PPUSH
17061: LD_INT 25
17063: PPUSH
17064: LD_INT 17
17066: PPUSH
17067: CALL_OW 111
// end ;
17071: GO 16778
17073: POP
17074: POP
// temp = Roth ^ Gossudarov diff 0 ;
17075: LD_ADDR_VAR 0 2
17079: PUSH
17080: LD_EXP 26
17084: PUSH
17085: LD_EXP 27
17089: ADD
17090: PUSH
17091: LD_INT 0
17093: DIFF
17094: ST_TO_ADDR
// for i in temp do
17095: LD_ADDR_VAR 0 1
17099: PUSH
17100: LD_VAR 0 2
17104: PUSH
17105: FOR_IN
17106: IFFALSE 17151
// if not IsInUnit ( i ) and GetLives ( All_lab1 ) > 200 then
17108: LD_VAR 0 1
17112: PPUSH
17113: CALL_OW 310
17117: NOT
17118: PUSH
17119: LD_EXP 40
17123: PPUSH
17124: CALL_OW 256
17128: PUSH
17129: LD_INT 200
17131: GREATER
17132: AND
17133: IFFALSE 17149
// ComEnterUnit ( i , All_lab1 ) ;
17135: LD_VAR 0 1
17139: PPUSH
17140: LD_EXP 40
17144: PPUSH
17145: CALL_OW 120
17149: GO 17105
17151: POP
17152: POP
// for i = 1 to Alliance_soldiers do
17153: LD_ADDR_VAR 0 1
17157: PUSH
17158: DOUBLE
17159: LD_INT 1
17161: DEC
17162: ST_TO_ADDR
17163: LD_EXP 30
17167: PUSH
17168: FOR_TO
17169: IFFALSE 17424
// if Alliance_soldiers [ i ] in damaged_people then
17171: LD_EXP 30
17175: PUSH
17176: LD_VAR 0 1
17180: ARRAY
17181: PUSH
17182: LD_EXP 47
17186: IN
17187: IFFALSE 17212
// ComMoveXY ( Alliance_soldiers [ i ] , 25 , 17 ) else
17189: LD_EXP 30
17193: PUSH
17194: LD_VAR 0 1
17198: ARRAY
17199: PPUSH
17200: LD_INT 25
17202: PPUSH
17203: LD_INT 17
17205: PPUSH
17206: CALL_OW 111
17210: GO 17422
// if GetLives ( All_bunkers [ i ] ) > 200 then
17212: LD_EXP 45
17216: PUSH
17217: LD_VAR 0 1
17221: ARRAY
17222: PPUSH
17223: CALL_OW 256
17227: PUSH
17228: LD_INT 200
17230: GREATER
17231: IFFALSE 17279
// begin if not IsInUnit ( Alliance_soldiers [ i ] ) then
17233: LD_EXP 30
17237: PUSH
17238: LD_VAR 0 1
17242: ARRAY
17243: PPUSH
17244: CALL_OW 310
17248: NOT
17249: IFFALSE 17277
// ComEnterUnit ( Alliance_soldiers [ i ] , All_bunkers [ i ] ) ;
17251: LD_EXP 30
17255: PUSH
17256: LD_VAR 0 1
17260: ARRAY
17261: PPUSH
17262: LD_EXP 45
17266: PUSH
17267: LD_VAR 0 1
17271: ARRAY
17272: PPUSH
17273: CALL_OW 120
// end else
17277: GO 17422
// if not IsInUnit ( Alliance_soldiers [ i ] ) then
17279: LD_EXP 30
17283: PUSH
17284: LD_VAR 0 1
17288: ARRAY
17289: PPUSH
17290: CALL_OW 310
17294: NOT
17295: IFFALSE 17422
// if GetLives ( All_Rubarracks ) > 100 and UnitsInside ( All_Rubarracks ) < 6 then
17297: LD_EXP 43
17301: PPUSH
17302: CALL_OW 256
17306: PUSH
17307: LD_INT 100
17309: GREATER
17310: PUSH
17311: LD_EXP 43
17315: PPUSH
17316: CALL_OW 313
17320: PUSH
17321: LD_INT 6
17323: LESS
17324: AND
17325: IFFALSE 17349
// ComEnterUnit ( Alliance_soldiers [ i ] , All_Rubarracks ) else
17327: LD_EXP 30
17331: PUSH
17332: LD_VAR 0 1
17336: ARRAY
17337: PPUSH
17338: LD_EXP 43
17342: PPUSH
17343: CALL_OW 120
17347: GO 17422
// if GetLives ( All_Ambarracks ) > 100 and UnitsInside ( All_Ambarracks ) < 6 then
17349: LD_EXP 44
17353: PPUSH
17354: CALL_OW 256
17358: PUSH
17359: LD_INT 100
17361: GREATER
17362: PUSH
17363: LD_EXP 44
17367: PPUSH
17368: CALL_OW 313
17372: PUSH
17373: LD_INT 6
17375: LESS
17376: AND
17377: IFFALSE 17401
// ComEnterUnit ( Alliance_soldiers [ i ] , All_Ambarracks ) else
17379: LD_EXP 30
17383: PUSH
17384: LD_VAR 0 1
17388: ARRAY
17389: PPUSH
17390: LD_EXP 44
17394: PPUSH
17395: CALL_OW 120
17399: GO 17422
// ComMoveXY ( Alliance_soldiers [ i ] , 25 , 17 ) ;
17401: LD_EXP 30
17405: PUSH
17406: LD_VAR 0 1
17410: ARRAY
17411: PPUSH
17412: LD_INT 25
17414: PPUSH
17415: LD_INT 17
17417: PPUSH
17418: CALL_OW 111
17422: GO 17168
17424: POP
17425: POP
// if IsInUnit ( Alliance_bazookers [ 1 ] ) then
17426: LD_EXP 31
17430: PUSH
17431: LD_INT 1
17433: ARRAY
17434: PPUSH
17435: CALL_OW 310
17439: IFFALSE 17453
// temp = All_Rubarracks else
17441: LD_ADDR_VAR 0 2
17445: PUSH
17446: LD_EXP 43
17450: ST_TO_ADDR
17451: GO 17467
// temp = Alliance_bazookers [ 1 ] ;
17453: LD_ADDR_VAR 0 2
17457: PUSH
17458: LD_EXP 31
17462: PUSH
17463: LD_INT 1
17465: ARRAY
17466: ST_TO_ADDR
// enemy = FilterAllUnits ( [ [ f_enemy , 7 ] , [ f_dist , temp , 14 ] ] ) ;
17467: LD_ADDR_VAR 0 4
17471: PUSH
17472: LD_INT 81
17474: PUSH
17475: LD_INT 7
17477: PUSH
17478: EMPTY
17479: LIST
17480: LIST
17481: PUSH
17482: LD_INT 91
17484: PUSH
17485: LD_VAR 0 2
17489: PUSH
17490: LD_INT 14
17492: PUSH
17493: EMPTY
17494: LIST
17495: LIST
17496: LIST
17497: PUSH
17498: EMPTY
17499: LIST
17500: LIST
17501: PPUSH
17502: CALL_OW 69
17506: ST_TO_ADDR
// for i = 1 to Alliance_bazookers do
17507: LD_ADDR_VAR 0 1
17511: PUSH
17512: DOUBLE
17513: LD_INT 1
17515: DEC
17516: ST_TO_ADDR
17517: LD_EXP 31
17521: PUSH
17522: FOR_TO
17523: IFFALSE 17672
// begin if Alliance_bazookers [ i ] in damaged_people or GetLives ( All_Rubarracks ) < 100 then
17525: LD_EXP 31
17529: PUSH
17530: LD_VAR 0 1
17534: ARRAY
17535: PUSH
17536: LD_EXP 47
17540: IN
17541: PUSH
17542: LD_EXP 43
17546: PPUSH
17547: CALL_OW 256
17551: PUSH
17552: LD_INT 100
17554: LESS
17555: OR
17556: IFFALSE 17581
// AddComMoveXY ( Alliance_bazookers [ i ] , 25 , 17 ) else
17558: LD_EXP 31
17562: PUSH
17563: LD_VAR 0 1
17567: ARRAY
17568: PPUSH
17569: LD_INT 25
17571: PPUSH
17572: LD_INT 17
17574: PPUSH
17575: CALL_OW 171
17579: GO 17619
// if not IsInUnit ( Alliance_bazookers [ i ] ) then
17581: LD_EXP 31
17585: PUSH
17586: LD_VAR 0 1
17590: ARRAY
17591: PPUSH
17592: CALL_OW 310
17596: NOT
17597: IFFALSE 17619
// ComEnterUnit ( Alliance_bazookers [ i ] , All_Rubarracks ) ;
17599: LD_EXP 31
17603: PUSH
17604: LD_VAR 0 1
17608: ARRAY
17609: PPUSH
17610: LD_EXP 43
17614: PPUSH
17615: CALL_OW 120
// if enemy > 0 then
17619: LD_VAR 0 4
17623: PUSH
17624: LD_INT 0
17626: GREATER
17627: IFFALSE 17670
// ComTimeShift ( Alliance_bazookers [ 1 ] , GetX ( enemy [ 1 ] ) , GetY ( enemy [ 1 ] ) ) ;
17629: LD_EXP 31
17633: PUSH
17634: LD_INT 1
17636: ARRAY
17637: PPUSH
17638: LD_VAR 0 4
17642: PUSH
17643: LD_INT 1
17645: ARRAY
17646: PPUSH
17647: CALL_OW 250
17651: PPUSH
17652: LD_VAR 0 4
17656: PUSH
17657: LD_INT 1
17659: ARRAY
17660: PPUSH
17661: CALL_OW 251
17665: PPUSH
17666: CALL_OW 154
// end ;
17670: GO 17522
17672: POP
17673: POP
// for i in Alliance_snipers do
17674: LD_ADDR_VAR 0 1
17678: PUSH
17679: LD_EXP 32
17683: PUSH
17684: FOR_IN
17685: IFFALSE 17759
// if i in damaged_people or GetLives ( All_Ambarracks ) < 100 then
17687: LD_VAR 0 1
17691: PUSH
17692: LD_EXP 47
17696: IN
17697: PUSH
17698: LD_EXP 44
17702: PPUSH
17703: CALL_OW 256
17707: PUSH
17708: LD_INT 100
17710: LESS
17711: OR
17712: IFFALSE 17731
// AddComMoveXY ( i , 25 , 17 ) else
17714: LD_VAR 0 1
17718: PPUSH
17719: LD_INT 25
17721: PPUSH
17722: LD_INT 17
17724: PPUSH
17725: CALL_OW 171
17729: GO 17757
// if not IsInUnit ( i ) then
17731: LD_VAR 0 1
17735: PPUSH
17736: CALL_OW 310
17740: NOT
17741: IFFALSE 17757
// ComEnterUnit ( i , All_Ambarracks ) ;
17743: LD_VAR 0 1
17747: PPUSH
17748: LD_EXP 44
17752: PPUSH
17753: CALL_OW 120
17757: GO 17684
17759: POP
17760: POP
// temp = FilterAllUnits ( [ [ f_side , 7 ] , [ f_nation , nation_american ] , [ f_btype , b_lab_full ] ] ) [ 1 ] ;
17761: LD_ADDR_VAR 0 2
17765: PUSH
17766: LD_INT 22
17768: PUSH
17769: LD_INT 7
17771: PUSH
17772: EMPTY
17773: LIST
17774: LIST
17775: PUSH
17776: LD_INT 23
17778: PUSH
17779: LD_INT 1
17781: PUSH
17782: EMPTY
17783: LIST
17784: LIST
17785: PUSH
17786: LD_INT 30
17788: PUSH
17789: LD_INT 8
17791: PUSH
17792: EMPTY
17793: LIST
17794: LIST
17795: PUSH
17796: EMPTY
17797: LIST
17798: LIST
17799: LIST
17800: PPUSH
17801: CALL_OW 69
17805: PUSH
17806: LD_INT 1
17808: ARRAY
17809: ST_TO_ADDR
// if temp = 0 or not IsOk ( temp ) then
17810: LD_VAR 0 2
17814: PUSH
17815: LD_INT 0
17817: EQUAL
17818: PUSH
17819: LD_VAR 0 2
17823: PPUSH
17824: CALL_OW 302
17828: NOT
17829: OR
17830: IFFALSE 17840
// AllianceDestroyed = 1 ;
17832: LD_ADDR_EXP 50
17836: PUSH
17837: LD_INT 1
17839: ST_TO_ADDR
// enable ;
17840: ENABLE
// end ;
17841: PPOPN 4
17843: END
// export RussiansPlaced ; every 0 0$1 trigger tick > BurlakCountdown do var i , temp , group ;
17844: LD_OWVAR 1
17848: PUSH
17849: LD_EXP 52
17853: GREATER
17854: IFFALSE 18449
17856: GO 17858
17858: DISABLE
17859: LD_INT 0
17861: PPUSH
17862: PPUSH
17863: PPUSH
// begin Randomize ;
17864: CALL_OW 10
// RussiansPlaced = [ ] ;
17868: LD_ADDR_EXP 101
17872: PUSH
17873: EMPTY
17874: ST_TO_ADDR
// repeat wait ( 0 0$1 ) ;
17875: LD_INT 35
17877: PPUSH
17878: CALL_OW 67
// group = TeamBurlak [ 1 ] ;
17882: LD_ADDR_VAR 0 3
17886: PUSH
17887: LD_EXP 24
17891: PUSH
17892: LD_INT 1
17894: ARRAY
17895: ST_TO_ADDR
// for i in group do
17896: LD_ADDR_VAR 0 1
17900: PUSH
17901: LD_VAR 0 3
17905: PUSH
17906: FOR_IN
17907: IFFALSE 18001
// begin repeat wait ( 0 0$0.5 ) ;
17909: LD_INT 18
17911: PPUSH
17912: CALL_OW 67
// SetDir ( i , rand ( 2 , 3 ) ) ;
17916: LD_VAR 0 1
17920: PPUSH
17921: LD_INT 2
17923: PPUSH
17924: LD_INT 3
17926: PPUSH
17927: CALL_OW 12
17931: PPUSH
17932: CALL_OW 233
// PlaceUnitArea ( i , RusAttack , false ) ;
17936: LD_VAR 0 1
17940: PPUSH
17941: LD_INT 7
17943: PPUSH
17944: LD_INT 0
17946: PPUSH
17947: CALL_OW 49
// until IsPlaced ( i ) ;
17951: LD_VAR 0 1
17955: PPUSH
17956: CALL_OW 305
17960: IFFALSE 17909
// ComMoveXY ( i , GetX ( i ) + 5 , GetY ( i ) + 10 ) ;
17962: LD_VAR 0 1
17966: PPUSH
17967: LD_VAR 0 1
17971: PPUSH
17972: CALL_OW 250
17976: PUSH
17977: LD_INT 5
17979: PLUS
17980: PPUSH
17981: LD_VAR 0 1
17985: PPUSH
17986: CALL_OW 251
17990: PUSH
17991: LD_INT 10
17993: PLUS
17994: PPUSH
17995: CALL_OW 111
// end ;
17999: GO 17906
18001: POP
18002: POP
// repeat wait ( 0 0$1 ) ;
18003: LD_INT 35
18005: PPUSH
18006: CALL_OW 67
// until unitfilter ( group , [ [ f_alive ] , [ f_not , [ f_placed ] ] ] ) = 0 ;
18010: LD_VAR 0 3
18014: PPUSH
18015: LD_INT 51
18017: PUSH
18018: EMPTY
18019: LIST
18020: PUSH
18021: LD_INT 3
18023: PUSH
18024: LD_INT 52
18026: PUSH
18027: EMPTY
18028: LIST
18029: PUSH
18030: EMPTY
18031: LIST
18032: LIST
18033: PUSH
18034: EMPTY
18035: LIST
18036: LIST
18037: PPUSH
18038: CALL_OW 72
18042: PUSH
18043: LD_INT 0
18045: EQUAL
18046: IFFALSE 18003
// for i in group do
18048: LD_ADDR_VAR 0 1
18052: PUSH
18053: LD_VAR 0 3
18057: PUSH
18058: FOR_IN
18059: IFFALSE 18396
// begin ComMoveXY ( i , GetX ( i ) + 10 , GetY ( i ) + 20 ) ;
18061: LD_VAR 0 1
18065: PPUSH
18066: LD_VAR 0 1
18070: PPUSH
18071: CALL_OW 250
18075: PUSH
18076: LD_INT 10
18078: PLUS
18079: PPUSH
18080: LD_VAR 0 1
18084: PPUSH
18085: CALL_OW 251
18089: PUSH
18090: LD_INT 20
18092: PLUS
18093: PPUSH
18094: CALL_OW 111
// AddComMoveXY ( i , GetX ( i ) + 15 , GetY ( i ) + 30 ) ;
18098: LD_VAR 0 1
18102: PPUSH
18103: LD_VAR 0 1
18107: PPUSH
18108: CALL_OW 250
18112: PUSH
18113: LD_INT 15
18115: PLUS
18116: PPUSH
18117: LD_VAR 0 1
18121: PPUSH
18122: CALL_OW 251
18126: PUSH
18127: LD_INT 30
18129: PLUS
18130: PPUSH
18131: CALL_OW 171
// AddComMoveXY ( i , GetX ( i ) + 15 , GetY ( i ) + 35 ) ;
18135: LD_VAR 0 1
18139: PPUSH
18140: LD_VAR 0 1
18144: PPUSH
18145: CALL_OW 250
18149: PUSH
18150: LD_INT 15
18152: PLUS
18153: PPUSH
18154: LD_VAR 0 1
18158: PPUSH
18159: CALL_OW 251
18163: PUSH
18164: LD_INT 35
18166: PLUS
18167: PPUSH
18168: CALL_OW 171
// AddComMoveXY ( i , GetX ( i ) + 15 , GetY ( i ) + 40 ) ;
18172: LD_VAR 0 1
18176: PPUSH
18177: LD_VAR 0 1
18181: PPUSH
18182: CALL_OW 250
18186: PUSH
18187: LD_INT 15
18189: PLUS
18190: PPUSH
18191: LD_VAR 0 1
18195: PPUSH
18196: CALL_OW 251
18200: PUSH
18201: LD_INT 40
18203: PLUS
18204: PPUSH
18205: CALL_OW 171
// AddComMoveXY ( i , GetX ( i ) + 15 , GetY ( i ) + 45 ) ;
18209: LD_VAR 0 1
18213: PPUSH
18214: LD_VAR 0 1
18218: PPUSH
18219: CALL_OW 250
18223: PUSH
18224: LD_INT 15
18226: PLUS
18227: PPUSH
18228: LD_VAR 0 1
18232: PPUSH
18233: CALL_OW 251
18237: PUSH
18238: LD_INT 45
18240: PLUS
18241: PPUSH
18242: CALL_OW 171
// AddComMoveXY ( i , GetX ( i ) + 15 , GetY ( i ) + 50 ) ;
18246: LD_VAR 0 1
18250: PPUSH
18251: LD_VAR 0 1
18255: PPUSH
18256: CALL_OW 250
18260: PUSH
18261: LD_INT 15
18263: PLUS
18264: PPUSH
18265: LD_VAR 0 1
18269: PPUSH
18270: CALL_OW 251
18274: PUSH
18275: LD_INT 50
18277: PLUS
18278: PPUSH
18279: CALL_OW 171
// AddComMoveXY ( i , GetX ( i ) + 15 , GetY ( i ) + 55 ) ;
18283: LD_VAR 0 1
18287: PPUSH
18288: LD_VAR 0 1
18292: PPUSH
18293: CALL_OW 250
18297: PUSH
18298: LD_INT 15
18300: PLUS
18301: PPUSH
18302: LD_VAR 0 1
18306: PPUSH
18307: CALL_OW 251
18311: PUSH
18312: LD_INT 55
18314: PLUS
18315: PPUSH
18316: CALL_OW 171
// AddComMoveXY ( i , GetX ( i ) + 15 , GetY ( i ) + 60 ) ;
18320: LD_VAR 0 1
18324: PPUSH
18325: LD_VAR 0 1
18329: PPUSH
18330: CALL_OW 250
18334: PUSH
18335: LD_INT 15
18337: PLUS
18338: PPUSH
18339: LD_VAR 0 1
18343: PPUSH
18344: CALL_OW 251
18348: PUSH
18349: LD_INT 60
18351: PLUS
18352: PPUSH
18353: CALL_OW 171
// AddComMoveXY ( i , GetX ( i ) + 15 , GetY ( i ) + 70 ) ;
18357: LD_VAR 0 1
18361: PPUSH
18362: LD_VAR 0 1
18366: PPUSH
18367: CALL_OW 250
18371: PUSH
18372: LD_INT 15
18374: PLUS
18375: PPUSH
18376: LD_VAR 0 1
18380: PPUSH
18381: CALL_OW 251
18385: PUSH
18386: LD_INT 70
18388: PLUS
18389: PPUSH
18390: CALL_OW 171
// end ;
18394: GO 18058
18396: POP
18397: POP
// RussiansPlaced = RussiansPlaced ^ group ;
18398: LD_ADDR_EXP 101
18402: PUSH
18403: LD_EXP 101
18407: PUSH
18408: LD_VAR 0 3
18412: ADD
18413: ST_TO_ADDR
// wait ( 0 0$45 ) ;
18414: LD_INT 1575
18416: PPUSH
18417: CALL_OW 67
// TeamBurlak = Delete ( TeamBurlak , 1 ) ;
18421: LD_ADDR_EXP 24
18425: PUSH
18426: LD_EXP 24
18430: PPUSH
18431: LD_INT 1
18433: PPUSH
18434: CALL_OW 3
18438: ST_TO_ADDR
// until TeamBurlak = 0 ;
18439: LD_EXP 24
18443: PUSH
18444: LD_INT 0
18446: EQUAL
18447: IFFALSE 17875
// end ;
18449: PPOPN 3
18451: END
// every 0 0$1 trigger RussiansPlaced > 0 do var i , j , temp ;
18452: LD_EXP 101
18456: PUSH
18457: LD_INT 0
18459: GREATER
18460: IFFALSE 18718
18462: GO 18464
18464: DISABLE
18465: LD_INT 0
18467: PPUSH
18468: PPUSH
18469: PPUSH
// begin for i = RussiansPlaced downto 1 do
18470: LD_ADDR_VAR 0 1
18474: PUSH
18475: DOUBLE
18476: LD_EXP 101
18480: INC
18481: ST_TO_ADDR
18482: LD_INT 1
18484: PUSH
18485: FOR_DOWNTO
18486: IFFALSE 18715
// begin temp = 0 ;
18488: LD_ADDR_VAR 0 3
18492: PUSH
18493: LD_INT 0
18495: ST_TO_ADDR
// for j in RussiansPlaced [ i ] do
18496: LD_ADDR_VAR 0 2
18500: PUSH
18501: LD_EXP 101
18505: PUSH
18506: LD_VAR 0 1
18510: ARRAY
18511: PUSH
18512: FOR_IN
18513: IFFALSE 18587
// if FilterAllUnits ( [ [ f_side , 2 ] , [ f_see , 3 ] , [ f_dist , j , 15 ] ] ) or HasTask ( j ) = 0 then
18515: LD_INT 22
18517: PUSH
18518: LD_INT 2
18520: PUSH
18521: EMPTY
18522: LIST
18523: LIST
18524: PUSH
18525: LD_INT 101
18527: PUSH
18528: LD_INT 3
18530: PUSH
18531: EMPTY
18532: LIST
18533: LIST
18534: PUSH
18535: LD_INT 91
18537: PUSH
18538: LD_VAR 0 2
18542: PUSH
18543: LD_INT 15
18545: PUSH
18546: EMPTY
18547: LIST
18548: LIST
18549: LIST
18550: PUSH
18551: EMPTY
18552: LIST
18553: LIST
18554: LIST
18555: PPUSH
18556: CALL_OW 69
18560: PUSH
18561: LD_VAR 0 2
18565: PPUSH
18566: CALL_OW 314
18570: PUSH
18571: LD_INT 0
18573: EQUAL
18574: OR
18575: IFFALSE 18585
// temp = 1 ;
18577: LD_ADDR_VAR 0 3
18581: PUSH
18582: LD_INT 1
18584: ST_TO_ADDR
18585: GO 18512
18587: POP
18588: POP
// if temp = 1 then
18589: LD_VAR 0 3
18593: PUSH
18594: LD_INT 1
18596: EQUAL
18597: IFFALSE 18666
// for j in RussiansPlaced [ i ] do
18599: LD_ADDR_VAR 0 2
18603: PUSH
18604: LD_EXP 101
18608: PUSH
18609: LD_VAR 0 1
18613: ARRAY
18614: PUSH
18615: FOR_IN
18616: IFFALSE 18664
// begin temp = NearestUnitToUnit ( FilterAllUnits ( [ f_side , 2 ] ) , j ) ;
18618: LD_ADDR_VAR 0 3
18622: PUSH
18623: LD_INT 22
18625: PUSH
18626: LD_INT 2
18628: PUSH
18629: EMPTY
18630: LIST
18631: LIST
18632: PPUSH
18633: CALL_OW 69
18637: PPUSH
18638: LD_VAR 0 2
18642: PPUSH
18643: CALL_OW 74
18647: ST_TO_ADDR
// ComAttackUnit ( j , temp ) ;
18648: LD_VAR 0 2
18652: PPUSH
18653: LD_VAR 0 3
18657: PPUSH
18658: CALL_OW 115
// end ;
18662: GO 18615
18664: POP
18665: POP
// if UnitFilter ( RussiansPlaced [ i ] , [ f_ok ] ) = 0 then
18666: LD_EXP 101
18670: PUSH
18671: LD_VAR 0 1
18675: ARRAY
18676: PPUSH
18677: LD_INT 50
18679: PUSH
18680: EMPTY
18681: LIST
18682: PPUSH
18683: CALL_OW 72
18687: PUSH
18688: LD_INT 0
18690: EQUAL
18691: IFFALSE 18713
// RussiansPlaced = Delete ( RussiansPlaced , i ) ;
18693: LD_ADDR_EXP 101
18697: PUSH
18698: LD_EXP 101
18702: PPUSH
18703: LD_VAR 0 1
18707: PPUSH
18708: CALL_OW 3
18712: ST_TO_ADDR
// end ;
18713: GO 18485
18715: POP
18716: POP
// enable ;
18717: ENABLE
// end ;
18718: PPOPN 3
18720: END
// every 0 0$1 trigger TeamBurlak = 0 and RussiansPlaced = 0 do
18721: LD_EXP 24
18725: PUSH
18726: LD_INT 0
18728: EQUAL
18729: PUSH
18730: LD_EXP 101
18734: PUSH
18735: LD_INT 0
18737: EQUAL
18738: AND
18739: IFFALSE 18759
18741: GO 18743
18743: DISABLE
// begin BurlakDestroyed = 1 ;
18744: LD_ADDR_EXP 51
18748: PUSH
18749: LD_INT 1
18751: ST_TO_ADDR
// ChangeMissionObjectives ( Main_goals_intro2 ) ;
18752: LD_STRING Main_goals_intro2
18754: PPUSH
18755: CALL_OW 337
// end ; end_of_file
18759: END
// every 0 0$1 do var temp ;
18760: GO 18762
18762: DISABLE
18763: LD_INT 0
18765: PPUSH
// begin temp = [ ] ;
18766: LD_ADDR_VAR 0 1
18770: PUSH
18771: EMPTY
18772: ST_TO_ADDR
// if not BurlakDestroyed and ( BurlakCountdown - tick ) > 0 then
18773: LD_EXP 51
18777: NOT
18778: PUSH
18779: LD_EXP 52
18783: PUSH
18784: LD_OWVAR 1
18788: MINUS
18789: PUSH
18790: LD_INT 0
18792: GREATER
18793: AND
18794: IFFALSE 18825
// temp = temp ^ [ #Ar15-Russians , BurlakCountdown - tick ] ;
18796: LD_ADDR_VAR 0 1
18800: PUSH
18801: LD_VAR 0 1
18805: PUSH
18806: LD_STRING #Ar15-Russians
18808: PUSH
18809: LD_EXP 52
18813: PUSH
18814: LD_OWVAR 1
18818: MINUS
18819: PUSH
18820: EMPTY
18821: LIST
18822: LIST
18823: ADD
18824: ST_TO_ADDR
// if ArtResearchCount > 0 then
18825: LD_EXP 98
18829: PUSH
18830: LD_INT 0
18832: GREATER
18833: IFFALSE 18858
// temp = temp ^ [ #Ar15-TechCount , ArtResearchCount ] ;
18835: LD_ADDR_VAR 0 1
18839: PUSH
18840: LD_VAR 0 1
18844: PUSH
18845: LD_STRING #Ar15-TechCount
18847: PUSH
18848: LD_EXP 98
18852: PUSH
18853: EMPTY
18854: LIST
18855: LIST
18856: ADD
18857: ST_TO_ADDR
// if ATech_SibPlant = 3 then
18858: LD_EXP 92
18862: PUSH
18863: LD_INT 3
18865: EQUAL
18866: IFFALSE 18889
// temp = temp ^ [ #Ar15-plant , 4 ] ;
18868: LD_ADDR_VAR 0 1
18872: PUSH
18873: LD_VAR 0 1
18877: PUSH
18878: LD_STRING #Ar15-plant
18880: PUSH
18881: LD_INT 4
18883: PUSH
18884: EMPTY
18885: LIST
18886: LIST
18887: ADD
18888: ST_TO_ADDR
// if ATech_Beh = 3 then
18889: LD_EXP 93
18893: PUSH
18894: LD_INT 3
18896: EQUAL
18897: IFFALSE 18920
// temp = temp ^ [ #Ar15-beh , 3 ] ;
18899: LD_ADDR_VAR 0 1
18903: PUSH
18904: LD_VAR 0 1
18908: PUSH
18909: LD_STRING #Ar15-beh
18911: PUSH
18912: LD_INT 3
18914: PUSH
18915: EMPTY
18916: LIST
18917: LIST
18918: ADD
18919: ST_TO_ADDR
// if ATech_TimeLapse = 3 then
18920: LD_EXP 94
18924: PUSH
18925: LD_INT 3
18927: EQUAL
18928: IFFALSE 18951
// temp = temp ^ [ #Ar15-time , 2 ] ;
18930: LD_ADDR_VAR 0 1
18934: PUSH
18935: LD_VAR 0 1
18939: PUSH
18940: LD_STRING #Ar15-time
18942: PUSH
18943: LD_INT 2
18945: PUSH
18946: EMPTY
18947: LIST
18948: LIST
18949: ADD
18950: ST_TO_ADDR
// if ATech_Laser = 3 then
18951: LD_EXP 95
18955: PUSH
18956: LD_INT 3
18958: EQUAL
18959: IFFALSE 18982
// temp = temp ^ [ #Ar15-laser , 7 ] ;
18961: LD_ADDR_VAR 0 1
18965: PUSH
18966: LD_VAR 0 1
18970: PUSH
18971: LD_STRING #Ar15-laser
18973: PUSH
18974: LD_INT 7
18976: PUSH
18977: EMPTY
18978: LIST
18979: LIST
18980: ADD
18981: ST_TO_ADDR
// if ATech_SuperStim = 3 then
18982: LD_EXP 96
18986: PUSH
18987: LD_INT 3
18989: EQUAL
18990: IFFALSE 19013
// temp = temp ^ [ #Ar15-stim , 6 ] ;
18992: LD_ADDR_VAR 0 1
18996: PUSH
18997: LD_VAR 0 1
19001: PUSH
19002: LD_STRING #Ar15-stim
19004: PUSH
19005: LD_INT 6
19007: PUSH
19008: EMPTY
19009: LIST
19010: LIST
19011: ADD
19012: ST_TO_ADDR
// if ATech_SPBomb = 3 then
19013: LD_EXP 97
19017: PUSH
19018: LD_INT 3
19020: EQUAL
19021: IFFALSE 19044
// temp = temp ^ [ #Ar15-bomb , 5 ] ;
19023: LD_ADDR_VAR 0 1
19027: PUSH
19028: LD_VAR 0 1
19032: PUSH
19033: LD_STRING #Ar15-bomb
19035: PUSH
19036: LD_INT 5
19038: PUSH
19039: EMPTY
19040: LIST
19041: LIST
19042: ADD
19043: ST_TO_ADDR
// display_strings = temp ;
19044: LD_ADDR_OWVAR 47
19048: PUSH
19049: LD_VAR 0 1
19053: ST_TO_ADDR
// enable ;
19054: ENABLE
// end ;
19055: PPOPN 1
19057: END
// every 5 5$0 do
19058: GO 19060
19060: DISABLE
// begin Say ( Heike , Ru_Heike_1 ) ;
19061: LD_EXP 1
19065: PPUSH
19066: LD_STRING Ru_Heike_1
19068: PPUSH
19069: CALL_OW 88
// Say ( Omar , Ru_Omar_1 ) ;
19073: LD_EXP 2
19077: PPUSH
19078: LD_STRING Ru_Omar_1
19080: PPUSH
19081: CALL_OW 88
// Say ( Heike , Ru_Heike_2 ) ;
19085: LD_EXP 1
19089: PPUSH
19090: LD_STRING Ru_Heike_2
19092: PPUSH
19093: CALL_OW 88
// end ;
19097: END
// every 0 0$1 trigger tick + 0 0$10 > BurlakCountdown do
19098: LD_OWVAR 1
19102: PUSH
19103: LD_INT 350
19105: PLUS
19106: PUSH
19107: LD_EXP 52
19111: GREATER
19112: IFFALSE 19129
19114: GO 19116
19116: DISABLE
// begin Say ( Omar , Ru_Omar_2 ) ;
19117: LD_EXP 2
19121: PPUSH
19122: LD_STRING Ru_Omar_2
19124: PPUSH
19125: CALL_OW 88
// end ;
19129: END
// every 0 0$1 trigger IsDying ( Burlak ) do
19130: LD_EXP 28
19134: PPUSH
19135: CALL_OW 303
19139: IFFALSE 19156
19141: GO 19143
19143: DISABLE
// begin ForceSay ( Burlak , Ru_Burlak ) ;
19144: LD_EXP 28
19148: PPUSH
19149: LD_STRING Ru_Burlak
19151: PPUSH
19152: CALL_OW 91
// end ;
19156: END
// on ResearchComplete ( res , un ) do begin if res = tech_sibcontam then
19157: LD_VAR 0 1
19161: PUSH
19162: LD_INT 26
19164: EQUAL
19165: IFFALSE 19174
// ChangeMissionObjectives ( Main_goals_intro3 ) ;
19167: LD_STRING Main_goals_intro3
19169: PPUSH
19170: CALL_OW 337
// end ;
19174: PPOPN 2
19176: END
// every 0 0$1 trigger ContaminationDialogueOn = 0 do
19177: LD_EXP 53
19181: PUSH
19182: LD_INT 0
19184: EQUAL
19185: IFFALSE 19355
19187: GO 19189
19189: DISABLE
// begin if GetTech ( tech_sibcontam , 2 ) = state_researched and ( ( BurlakCountdown - tick ) > 5 5$0 or BurlakDestroyed ) and FilterAllUnits ( [ [ f_side , 2 ] , [ f_type , unit_building ] , [ f_or , [ f_btype , b_lab ] , [ f_btype , b_lab_half ] , [ f_btype , b_lab_full ] ] ] ) > 0 and FilterAllUnits ( [ [ f_side , 2 ] , [ f_alive ] , [ f_not , [ f_ok ] ] ] ) = 0 then
19190: LD_INT 26
19192: PPUSH
19193: LD_INT 2
19195: PPUSH
19196: CALL_OW 321
19200: PUSH
19201: LD_INT 2
19203: EQUAL
19204: PUSH
19205: LD_EXP 52
19209: PUSH
19210: LD_OWVAR 1
19214: MINUS
19215: PUSH
19216: LD_INT 10500
19218: GREATER
19219: PUSH
19220: LD_EXP 51
19224: OR
19225: AND
19226: PUSH
19227: LD_INT 22
19229: PUSH
19230: LD_INT 2
19232: PUSH
19233: EMPTY
19234: LIST
19235: LIST
19236: PUSH
19237: LD_INT 21
19239: PUSH
19240: LD_INT 3
19242: PUSH
19243: EMPTY
19244: LIST
19245: LIST
19246: PUSH
19247: LD_INT 2
19249: PUSH
19250: LD_INT 30
19252: PUSH
19253: LD_INT 6
19255: PUSH
19256: EMPTY
19257: LIST
19258: LIST
19259: PUSH
19260: LD_INT 30
19262: PUSH
19263: LD_INT 7
19265: PUSH
19266: EMPTY
19267: LIST
19268: LIST
19269: PUSH
19270: LD_INT 30
19272: PUSH
19273: LD_INT 8
19275: PUSH
19276: EMPTY
19277: LIST
19278: LIST
19279: PUSH
19280: EMPTY
19281: LIST
19282: LIST
19283: LIST
19284: LIST
19285: PUSH
19286: EMPTY
19287: LIST
19288: LIST
19289: LIST
19290: PPUSH
19291: CALL_OW 69
19295: PUSH
19296: LD_INT 0
19298: GREATER
19299: AND
19300: PUSH
19301: LD_INT 22
19303: PUSH
19304: LD_INT 2
19306: PUSH
19307: EMPTY
19308: LIST
19309: LIST
19310: PUSH
19311: LD_INT 51
19313: PUSH
19314: EMPTY
19315: LIST
19316: PUSH
19317: LD_INT 3
19319: PUSH
19320: LD_INT 50
19322: PUSH
19323: EMPTY
19324: LIST
19325: PUSH
19326: EMPTY
19327: LIST
19328: LIST
19329: PUSH
19330: EMPTY
19331: LIST
19332: LIST
19333: LIST
19334: PPUSH
19335: CALL_OW 69
19339: PUSH
19340: LD_INT 0
19342: EQUAL
19343: AND
19344: IFFALSE 19354
// ContaminationDialogueOn = 1 ;
19346: LD_ADDR_EXP 53
19350: PUSH
19351: LD_INT 1
19353: ST_TO_ADDR
// enable ;
19354: ENABLE
// end ;
19355: END
// every 0 0$1 trigger ContaminationDialogueOn do var temp , skill , i , j , dlg , temp2 , lab , count ; var d_1 , d_2 , d_3 , d_4 , d_5 , d_6 ;
19356: LD_EXP 53
19360: IFFALSE 22735
19362: GO 19364
19364: DISABLE
19365: LD_INT 0
19367: PPUSH
19368: PPUSH
19369: PPUSH
19370: PPUSH
19371: PPUSH
19372: PPUSH
19373: PPUSH
19374: PPUSH
19375: PPUSH
19376: PPUSH
19377: PPUSH
19378: PPUSH
19379: PPUSH
19380: PPUSH
// begin Randomize ;
19381: CALL_OW 10
// temp = unitfilter ( [ Makise , Khattam , Sonya , Aviradze ] diff 0 , [ f_placed ] ) ;
19385: LD_ADDR_VAR 0 1
19389: PUSH
19390: LD_EXP 14
19394: PUSH
19395: LD_EXP 13
19399: PUSH
19400: LD_EXP 7
19404: PUSH
19405: LD_EXP 8
19409: PUSH
19410: EMPTY
19411: LIST
19412: LIST
19413: LIST
19414: LIST
19415: PUSH
19416: LD_INT 0
19418: DIFF
19419: PPUSH
19420: LD_INT 52
19422: PUSH
19423: EMPTY
19424: LIST
19425: PPUSH
19426: CALL_OW 72
19430: ST_TO_ADDR
// if temp > 0 then
19431: LD_VAR 0 1
19435: PUSH
19436: LD_INT 0
19438: GREATER
19439: IFFALSE 19467
// HeadScientist = temp [ rand ( 1 , temp ) ] else
19441: LD_ADDR_EXP 90
19445: PUSH
19446: LD_VAR 0 1
19450: PUSH
19451: LD_INT 1
19453: PPUSH
19454: LD_VAR 0 1
19458: PPUSH
19459: CALL_OW 12
19463: ARRAY
19464: ST_TO_ADDR
19465: GO 19737
// begin temp = FilterAllUnits ( [ [ f_side , 2 ] , [ f_or , [ f_class , class_soldier ] , [ f_class , class_mortar ] , [ f_class , class_engineer ] , [ f_class , class_mechanic ] , [ f_class , class_scientistic ] ] ] ) diff [ Heike , Omar , Gensher , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake ] ;
19467: LD_ADDR_VAR 0 1
19471: PUSH
19472: LD_INT 22
19474: PUSH
19475: LD_INT 2
19477: PUSH
19478: EMPTY
19479: LIST
19480: LIST
19481: PUSH
19482: LD_INT 2
19484: PUSH
19485: LD_INT 25
19487: PUSH
19488: LD_INT 1
19490: PUSH
19491: EMPTY
19492: LIST
19493: LIST
19494: PUSH
19495: LD_INT 25
19497: PUSH
19498: LD_INT 8
19500: PUSH
19501: EMPTY
19502: LIST
19503: LIST
19504: PUSH
19505: LD_INT 25
19507: PUSH
19508: LD_INT 2
19510: PUSH
19511: EMPTY
19512: LIST
19513: LIST
19514: PUSH
19515: LD_INT 25
19517: PUSH
19518: LD_INT 3
19520: PUSH
19521: EMPTY
19522: LIST
19523: LIST
19524: PUSH
19525: LD_INT 25
19527: PUSH
19528: LD_INT 4
19530: PUSH
19531: EMPTY
19532: LIST
19533: LIST
19534: PUSH
19535: EMPTY
19536: LIST
19537: LIST
19538: LIST
19539: LIST
19540: LIST
19541: LIST
19542: PUSH
19543: EMPTY
19544: LIST
19545: LIST
19546: PPUSH
19547: CALL_OW 69
19551: PUSH
19552: LD_EXP 1
19556: PUSH
19557: LD_EXP 2
19561: PUSH
19562: LD_EXP 3
19566: PUSH
19567: LD_EXP 4
19571: PUSH
19572: LD_EXP 5
19576: PUSH
19577: LD_EXP 6
19581: PUSH
19582: LD_EXP 7
19586: PUSH
19587: LD_EXP 8
19591: PUSH
19592: LD_EXP 9
19596: PUSH
19597: LD_EXP 10
19601: PUSH
19602: LD_EXP 11
19606: PUSH
19607: LD_EXP 12
19611: PUSH
19612: LD_EXP 13
19616: PUSH
19617: LD_EXP 14
19621: PUSH
19622: LD_EXP 19
19626: PUSH
19627: EMPTY
19628: LIST
19629: LIST
19630: LIST
19631: LIST
19632: LIST
19633: LIST
19634: LIST
19635: LIST
19636: LIST
19637: LIST
19638: LIST
19639: LIST
19640: LIST
19641: LIST
19642: LIST
19643: DIFF
19644: ST_TO_ADDR
// if temp = [ ] then
19645: LD_VAR 0 1
19649: PUSH
19650: EMPTY
19651: EQUAL
19652: IFFALSE 19664
// begin cutscene_done = 1 ;
19654: LD_ADDR_EXP 59
19658: PUSH
19659: LD_INT 1
19661: ST_TO_ADDR
// exit ;
19662: GO 22735
// end ; skill = 0 ;
19664: LD_ADDR_VAR 0 2
19668: PUSH
19669: LD_INT 0
19671: ST_TO_ADDR
// for i in temp do
19672: LD_ADDR_VAR 0 3
19676: PUSH
19677: LD_VAR 0 1
19681: PUSH
19682: FOR_IN
19683: IFFALSE 19735
// if GetSkill ( i , skill_scientistic ) > skill then
19685: LD_VAR 0 3
19689: PPUSH
19690: LD_INT 4
19692: PPUSH
19693: CALL_OW 259
19697: PUSH
19698: LD_VAR 0 2
19702: GREATER
19703: IFFALSE 19733
// begin skill = GetSkill ( i , skill_scientistic ) ;
19705: LD_ADDR_VAR 0 2
19709: PUSH
19710: LD_VAR 0 3
19714: PPUSH
19715: LD_INT 4
19717: PPUSH
19718: CALL_OW 259
19722: ST_TO_ADDR
// HeadScientist = i ;
19723: LD_ADDR_EXP 90
19727: PUSH
19728: LD_VAR 0 3
19732: ST_TO_ADDR
// end ;
19733: GO 19682
19735: POP
19736: POP
// end ; dlg = 0 ;
19737: LD_ADDR_VAR 0 5
19741: PUSH
19742: LD_INT 0
19744: ST_TO_ADDR
// temp = [ Makise , Khattam , Sonya , Aviradze , SomeM , SomeF ] ;
19745: LD_ADDR_VAR 0 1
19749: PUSH
19750: LD_STRING Makise
19752: PUSH
19753: LD_STRING Khattam
19755: PUSH
19756: LD_STRING Sonya
19758: PUSH
19759: LD_STRING Aviradze
19761: PUSH
19762: LD_STRING SomeM
19764: PUSH
19765: LD_STRING SomeF
19767: PUSH
19768: EMPTY
19769: LIST
19770: LIST
19771: LIST
19772: LIST
19773: LIST
19774: LIST
19775: ST_TO_ADDR
// temp2 = [ Makise , Khattam , Sonya , Aviradze ] ;
19776: LD_ADDR_VAR 0 6
19780: PUSH
19781: LD_EXP 14
19785: PUSH
19786: LD_EXP 13
19790: PUSH
19791: LD_EXP 7
19795: PUSH
19796: LD_EXP 8
19800: PUSH
19801: EMPTY
19802: LIST
19803: LIST
19804: LIST
19805: LIST
19806: ST_TO_ADDR
// for i = 1 to temp2 do
19807: LD_ADDR_VAR 0 3
19811: PUSH
19812: DOUBLE
19813: LD_INT 1
19815: DEC
19816: ST_TO_ADDR
19817: LD_VAR 0 6
19821: PUSH
19822: FOR_TO
19823: IFFALSE 19861
// if HeadScientist = temp2 [ i ] then
19825: LD_EXP 90
19829: PUSH
19830: LD_VAR 0 6
19834: PUSH
19835: LD_VAR 0 3
19839: ARRAY
19840: EQUAL
19841: IFFALSE 19859
// dlg = temp [ i ] ;
19843: LD_ADDR_VAR 0 5
19847: PUSH
19848: LD_VAR 0 1
19852: PUSH
19853: LD_VAR 0 3
19857: ARRAY
19858: ST_TO_ADDR
19859: GO 19822
19861: POP
19862: POP
// if dlg = 0 then
19863: LD_VAR 0 5
19867: PUSH
19868: LD_INT 0
19870: EQUAL
19871: IFFALSE 19918
// if GetSex ( HeadScientist ) = sex_male then
19873: LD_EXP 90
19877: PPUSH
19878: CALL_OW 258
19882: PUSH
19883: LD_INT 1
19885: EQUAL
19886: IFFALSE 19904
// dlg = temp [ 5 ] else
19888: LD_ADDR_VAR 0 5
19892: PUSH
19893: LD_VAR 0 1
19897: PUSH
19898: LD_INT 5
19900: ARRAY
19901: ST_TO_ADDR
19902: GO 19918
// dlg = temp [ 6 ] ;
19904: LD_ADDR_VAR 0 5
19908: PUSH
19909: LD_VAR 0 1
19913: PUSH
19914: LD_INT 6
19916: ARRAY
19917: ST_TO_ADDR
// temp = FilterAllUnits ( [ [ f_side , 2 ] , [ f_nation , nation_arabian ] , [ f_or , [ f_btype , b_lab ] , [ f_btype , b_lab_half ] , [ f_btype , b_lab_full ] ] ] ) ;
19918: LD_ADDR_VAR 0 1
19922: PUSH
19923: LD_INT 22
19925: PUSH
19926: LD_INT 2
19928: PUSH
19929: EMPTY
19930: LIST
19931: LIST
19932: PUSH
19933: LD_INT 23
19935: PUSH
19936: LD_INT 2
19938: PUSH
19939: EMPTY
19940: LIST
19941: LIST
19942: PUSH
19943: LD_INT 2
19945: PUSH
19946: LD_INT 30
19948: PUSH
19949: LD_INT 6
19951: PUSH
19952: EMPTY
19953: LIST
19954: LIST
19955: PUSH
19956: LD_INT 30
19958: PUSH
19959: LD_INT 7
19961: PUSH
19962: EMPTY
19963: LIST
19964: LIST
19965: PUSH
19966: LD_INT 30
19968: PUSH
19969: LD_INT 8
19971: PUSH
19972: EMPTY
19973: LIST
19974: LIST
19975: PUSH
19976: EMPTY
19977: LIST
19978: LIST
19979: LIST
19980: LIST
19981: PUSH
19982: EMPTY
19983: LIST
19984: LIST
19985: LIST
19986: PPUSH
19987: CALL_OW 69
19991: ST_TO_ADDR
// temp2 = FilterAllUnits ( [ [ f_side , 2 ] , [ f_nation , nation_arabian ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] , [ f_btype , b_workshop ] , [ f_btype , b_factory ] , [ f_btype , b_armoury ] , [ f_btype , b_barracks ] ] ] ) ;
19992: LD_ADDR_VAR 0 6
19996: PUSH
19997: LD_INT 22
19999: PUSH
20000: LD_INT 2
20002: PUSH
20003: EMPTY
20004: LIST
20005: LIST
20006: PUSH
20007: LD_INT 23
20009: PUSH
20010: LD_INT 2
20012: PUSH
20013: EMPTY
20014: LIST
20015: LIST
20016: PUSH
20017: LD_INT 2
20019: PUSH
20020: LD_INT 30
20022: PUSH
20023: LD_INT 0
20025: PUSH
20026: EMPTY
20027: LIST
20028: LIST
20029: PUSH
20030: LD_INT 30
20032: PUSH
20033: LD_INT 1
20035: PUSH
20036: EMPTY
20037: LIST
20038: LIST
20039: PUSH
20040: LD_INT 30
20042: PUSH
20043: LD_INT 2
20045: PUSH
20046: EMPTY
20047: LIST
20048: LIST
20049: PUSH
20050: LD_INT 30
20052: PUSH
20053: LD_INT 3
20055: PUSH
20056: EMPTY
20057: LIST
20058: LIST
20059: PUSH
20060: LD_INT 30
20062: PUSH
20063: LD_INT 4
20065: PUSH
20066: EMPTY
20067: LIST
20068: LIST
20069: PUSH
20070: LD_INT 30
20072: PUSH
20073: LD_INT 5
20075: PUSH
20076: EMPTY
20077: LIST
20078: LIST
20079: PUSH
20080: EMPTY
20081: LIST
20082: LIST
20083: LIST
20084: LIST
20085: LIST
20086: LIST
20087: LIST
20088: PUSH
20089: EMPTY
20090: LIST
20091: LIST
20092: LIST
20093: PPUSH
20094: CALL_OW 69
20098: ST_TO_ADDR
// for i in temp do
20099: LD_ADDR_VAR 0 3
20103: PUSH
20104: LD_VAR 0 1
20108: PUSH
20109: FOR_IN
20110: IFFALSE 20160
// if GetLabKind ( i , 1 ) = b_lab_siberium or GetLabKind ( i , 2 ) = b_lab_siberium then
20112: LD_VAR 0 3
20116: PPUSH
20117: LD_INT 1
20119: PPUSH
20120: CALL_OW 268
20124: PUSH
20125: LD_INT 11
20127: EQUAL
20128: PUSH
20129: LD_VAR 0 3
20133: PPUSH
20134: LD_INT 2
20136: PPUSH
20137: CALL_OW 268
20141: PUSH
20142: LD_INT 11
20144: EQUAL
20145: OR
20146: IFFALSE 20158
// lab = i ;
20148: LD_ADDR_VAR 0 7
20152: PUSH
20153: LD_VAR 0 3
20157: ST_TO_ADDR
20158: GO 20109
20160: POP
20161: POP
// repeat wait ( 0 0$1 ) ;
20162: LD_INT 35
20164: PPUSH
20165: CALL_OW 67
// if lab = 0 then
20169: LD_VAR 0 7
20173: PUSH
20174: LD_INT 0
20176: EQUAL
20177: IFFALSE 20229
// if temp > 0 then
20179: LD_VAR 0 1
20183: PUSH
20184: LD_INT 0
20186: GREATER
20187: IFFALSE 20205
// lab = temp [ 1 ] else
20189: LD_ADDR_VAR 0 7
20193: PUSH
20194: LD_VAR 0 1
20198: PUSH
20199: LD_INT 1
20201: ARRAY
20202: ST_TO_ADDR
20203: GO 20229
// if temp2 > 0 then
20205: LD_VAR 0 6
20209: PUSH
20210: LD_INT 0
20212: GREATER
20213: IFFALSE 20229
// lab = temp2 [ 1 ] ;
20215: LD_ADDR_VAR 0 7
20219: PUSH
20220: LD_VAR 0 6
20224: PUSH
20225: LD_INT 1
20227: ARRAY
20228: ST_TO_ADDR
// until lab > 0 ;
20229: LD_VAR 0 7
20233: PUSH
20234: LD_INT 0
20236: GREATER
20237: IFFALSE 20162
// d_1 = _1 ;
20239: LD_ADDR_VAR 0 9
20243: PUSH
20244: LD_STRING _1
20246: ST_TO_ADDR
// d_2 = _2 ;
20247: LD_ADDR_VAR 0 10
20251: PUSH
20252: LD_STRING _2
20254: ST_TO_ADDR
// d_3 = _3 ;
20255: LD_ADDR_VAR 0 11
20259: PUSH
20260: LD_STRING _3
20262: ST_TO_ADDR
// d_4 = _4 ;
20263: LD_ADDR_VAR 0 12
20267: PUSH
20268: LD_STRING _4
20270: ST_TO_ADDR
// d_5 = _5 ;
20271: LD_ADDR_VAR 0 13
20275: PUSH
20276: LD_STRING _5
20278: ST_TO_ADDR
// d_6 = _6 ;
20279: LD_ADDR_VAR 0 14
20283: PUSH
20284: LD_STRING _6
20286: ST_TO_ADDR
// wait ( 0 0$4 ) ;
20287: LD_INT 140
20289: PPUSH
20290: CALL_OW 67
// DeselectUnits ( FilterAllUnits ( [ f_side , 2 ] ) ) ;
20294: LD_INT 22
20296: PUSH
20297: LD_INT 2
20299: PUSH
20300: EMPTY
20301: LIST
20302: LIST
20303: PPUSH
20304: CALL_OW 69
20308: PPUSH
20309: CALL_OW 491
// InGameOn ;
20313: CALL_OW 8
// SetClass ( HeadScientist , class_scientistic ) ;
20317: LD_EXP 90
20321: PPUSH
20322: LD_INT 4
20324: PPUSH
20325: CALL_OW 336
// Say ( HeadScientist , C_ & dlg & d_1 ) ;
20329: LD_EXP 90
20333: PPUSH
20334: LD_STRING C_
20336: PUSH
20337: LD_VAR 0 5
20341: STR
20342: PUSH
20343: LD_VAR 0 9
20347: STR
20348: PPUSH
20349: CALL_OW 88
// temp = UnitsInside ( lab ) diff Heike ^ Omar ^ Gensher ^ headscientist ;
20353: LD_ADDR_VAR 0 1
20357: PUSH
20358: LD_VAR 0 7
20362: PPUSH
20363: CALL_OW 313
20367: PUSH
20368: LD_EXP 1
20372: PUSH
20373: LD_EXP 2
20377: ADD
20378: PUSH
20379: LD_EXP 3
20383: ADD
20384: PUSH
20385: LD_EXP 90
20389: ADD
20390: DIFF
20391: ST_TO_ADDR
// ComExitBuilding ( temp ) ;
20392: LD_VAR 0 1
20396: PPUSH
20397: CALL_OW 122
// AddComMoveXY ( temp , 109 , 108 ) ;
20401: LD_VAR 0 1
20405: PPUSH
20406: LD_INT 109
20408: PPUSH
20409: LD_INT 108
20411: PPUSH
20412: CALL_OW 171
// temp = FilterAllUnits ( [ [ f_or , [ f_type , unit_human ] , [ f_control , control_manual ] ] , [ f_not , [ f_distxy , 109 , 108 , 40 ] ] ] ) ;
20416: LD_ADDR_VAR 0 1
20420: PUSH
20421: LD_INT 2
20423: PUSH
20424: LD_INT 21
20426: PUSH
20427: LD_INT 1
20429: PUSH
20430: EMPTY
20431: LIST
20432: LIST
20433: PUSH
20434: LD_INT 33
20436: PUSH
20437: LD_INT 1
20439: PUSH
20440: EMPTY
20441: LIST
20442: LIST
20443: PUSH
20444: EMPTY
20445: LIST
20446: LIST
20447: LIST
20448: PUSH
20449: LD_INT 3
20451: PUSH
20452: LD_INT 92
20454: PUSH
20455: LD_INT 109
20457: PUSH
20458: LD_INT 108
20460: PUSH
20461: LD_INT 40
20463: PUSH
20464: EMPTY
20465: LIST
20466: LIST
20467: LIST
20468: LIST
20469: PUSH
20470: EMPTY
20471: LIST
20472: LIST
20473: PUSH
20474: EMPTY
20475: LIST
20476: LIST
20477: PPUSH
20478: CALL_OW 69
20482: ST_TO_ADDR
// for i in temp do
20483: LD_ADDR_VAR 0 3
20487: PUSH
20488: LD_VAR 0 1
20492: PUSH
20493: FOR_IN
20494: IFFALSE 20513
// ComMoveXY ( j , 109 , 108 ) ;
20496: LD_VAR 0 4
20500: PPUSH
20501: LD_INT 109
20503: PPUSH
20504: LD_INT 108
20506: PPUSH
20507: CALL_OW 111
20511: GO 20493
20513: POP
20514: POP
// CenterOnUnits ( lab ) ;
20515: LD_VAR 0 7
20519: PPUSH
20520: CALL_OW 85
// temp = 0 ;
20524: LD_ADDR_VAR 0 1
20528: PUSH
20529: LD_INT 0
20531: ST_TO_ADDR
// count = 0 0$20 ;
20532: LD_ADDR_VAR 0 8
20536: PUSH
20537: LD_INT 700
20539: ST_TO_ADDR
// while temp = 0 and count > 0 do
20540: LD_VAR 0 1
20544: PUSH
20545: LD_INT 0
20547: EQUAL
20548: PUSH
20549: LD_VAR 0 8
20553: PUSH
20554: LD_INT 0
20556: GREATER
20557: AND
20558: IFFALSE 20773
// begin wait ( 0 0$1 ) ;
20560: LD_INT 35
20562: PPUSH
20563: CALL_OW 67
// count = count - 0 0$1 ;
20567: LD_ADDR_VAR 0 8
20571: PUSH
20572: LD_VAR 0 8
20576: PUSH
20577: LD_INT 35
20579: MINUS
20580: ST_TO_ADDR
// for i in [ HeadScientist , Heike , Omar , Gensher ] do
20581: LD_ADDR_VAR 0 3
20585: PUSH
20586: LD_EXP 90
20590: PUSH
20591: LD_EXP 1
20595: PUSH
20596: LD_EXP 2
20600: PUSH
20601: LD_EXP 3
20605: PUSH
20606: EMPTY
20607: LIST
20608: LIST
20609: LIST
20610: LIST
20611: PUSH
20612: FOR_IN
20613: IFFALSE 20705
// if not IsInUnit ( i ) = lab then
20615: LD_VAR 0 3
20619: PPUSH
20620: CALL_OW 310
20624: PUSH
20625: LD_VAR 0 7
20629: EQUAL
20630: NOT
20631: IFFALSE 20703
// case GetType ( IsInUnit ( i ) ) of unit_building :
20633: LD_VAR 0 3
20637: PPUSH
20638: CALL_OW 310
20642: PPUSH
20643: CALL_OW 247
20647: PUSH
20648: LD_INT 3
20650: DOUBLE
20651: EQUAL
20652: IFTRUE 20656
20654: GO 20668
20656: POP
// ComExitBuilding ( i ) ; unit_vehicle :
20657: LD_VAR 0 3
20661: PPUSH
20662: CALL_OW 122
20666: GO 20703
20668: LD_INT 2
20670: DOUBLE
20671: EQUAL
20672: IFTRUE 20676
20674: GO 20688
20676: POP
// ComExitVehicle ( i ) ; else
20677: LD_VAR 0 3
20681: PPUSH
20682: CALL_OW 121
20686: GO 20703
20688: POP
// ComEnterUnit ( i , lab ) ; end ;
20689: LD_VAR 0 3
20693: PPUSH
20694: LD_VAR 0 7
20698: PPUSH
20699: CALL_OW 120
20703: GO 20612
20705: POP
20706: POP
// if IsInUnit ( HeadScientist ) and IsInUnit ( Heike ) and IsInUnit ( Omar ) and ( IsInUnit ( Gensher ) or not IsPlaced ( Gensher ) ) then
20707: LD_EXP 90
20711: PPUSH
20712: CALL_OW 310
20716: PUSH
20717: LD_EXP 1
20721: PPUSH
20722: CALL_OW 310
20726: AND
20727: PUSH
20728: LD_EXP 2
20732: PPUSH
20733: CALL_OW 310
20737: AND
20738: PUSH
20739: LD_EXP 3
20743: PPUSH
20744: CALL_OW 310
20748: PUSH
20749: LD_EXP 3
20753: PPUSH
20754: CALL_OW 305
20758: NOT
20759: OR
20760: AND
20761: IFFALSE 20771
// temp = 1 ;
20763: LD_ADDR_VAR 0 1
20767: PUSH
20768: LD_INT 1
20770: ST_TO_ADDR
// end ;
20771: GO 20540
// Say ( HeadScientist , C_ & dlg & d_2 ) ;
20773: LD_EXP 90
20777: PPUSH
20778: LD_STRING C_
20780: PUSH
20781: LD_VAR 0 5
20785: STR
20786: PUSH
20787: LD_VAR 0 10
20791: STR
20792: PPUSH
20793: CALL_OW 88
// Say ( Omar , C_Omar_1 ) ;
20797: LD_EXP 2
20801: PPUSH
20802: LD_STRING C_Omar_1
20804: PPUSH
20805: CALL_OW 88
// Say ( HeadScientist , C_ & dlg & d_3 ) ;
20809: LD_EXP 90
20813: PPUSH
20814: LD_STRING C_
20816: PUSH
20817: LD_VAR 0 5
20821: STR
20822: PUSH
20823: LD_VAR 0 11
20827: STR
20828: PPUSH
20829: CALL_OW 88
// Say ( Omar , C_Omar_2 ) ;
20833: LD_EXP 2
20837: PPUSH
20838: LD_STRING C_Omar_2
20840: PPUSH
20841: CALL_OW 88
// Say ( HeadScientist , C_ & dlg & d_4 ) ;
20845: LD_EXP 90
20849: PPUSH
20850: LD_STRING C_
20852: PUSH
20853: LD_VAR 0 5
20857: STR
20858: PUSH
20859: LD_VAR 0 12
20863: STR
20864: PPUSH
20865: CALL_OW 88
// Say ( Heike , C_Heike_1 ) ;
20869: LD_EXP 1
20873: PPUSH
20874: LD_STRING C_Heike_1
20876: PPUSH
20877: CALL_OW 88
// Say ( HeadScientist , C_ & dlg & d_5 ) ;
20881: LD_EXP 90
20885: PPUSH
20886: LD_STRING C_
20888: PUSH
20889: LD_VAR 0 5
20893: STR
20894: PUSH
20895: LD_VAR 0 13
20899: STR
20900: PPUSH
20901: CALL_OW 88
// Say ( Omar , C_Omar_3 ) ;
20905: LD_EXP 2
20909: PPUSH
20910: LD_STRING C_Omar_3
20912: PPUSH
20913: CALL_OW 88
// Say ( Heike , C_Heike_2 ) ;
20917: LD_EXP 1
20921: PPUSH
20922: LD_STRING C_Heike_2
20924: PPUSH
20925: CALL_OW 88
// Say ( Omar , C_Omar_4 ) ;
20929: LD_EXP 2
20933: PPUSH
20934: LD_STRING C_Omar_4
20936: PPUSH
20937: CALL_OW 88
// Say ( Omar , C_Omar_5 ) ;
20941: LD_EXP 2
20945: PPUSH
20946: LD_STRING C_Omar_5
20948: PPUSH
20949: CALL_OW 88
// Say ( Heike , C_Heike_3 ) ;
20953: LD_EXP 1
20957: PPUSH
20958: LD_STRING C_Heike_3
20960: PPUSH
20961: CALL_OW 88
// Say ( Omar , C_Omar_6 ) ;
20965: LD_EXP 2
20969: PPUSH
20970: LD_STRING C_Omar_6
20972: PPUSH
20973: CALL_OW 88
// PreparePeople ;
20977: CALL 30081 0 0
// PrepareHexes ( lab ) ;
20981: LD_VAR 0 7
20985: PPUSH
20986: CALL 22846 0 1
// temp = ContaminationCutsceneHexes [ 2 ] ;
20990: LD_ADDR_VAR 0 1
20994: PUSH
20995: LD_EXP 54
20999: PUSH
21000: LD_INT 2
21002: ARRAY
21003: ST_TO_ADDR
// ComMoveXY ( Heike , temp [ 1 ] , temp [ 2 ] ) ;
21004: LD_EXP 1
21008: PPUSH
21009: LD_VAR 0 1
21013: PUSH
21014: LD_INT 1
21016: ARRAY
21017: PPUSH
21018: LD_VAR 0 1
21022: PUSH
21023: LD_INT 2
21025: ARRAY
21026: PPUSH
21027: CALL_OW 111
// AddComTurnXY ( Heike , ContaminationCutsceneHexes [ 3 ] [ 3 ] [ 1 ] , ContaminationCutsceneHexes [ 3 ] [ 3 ] [ 2 ] ) ;
21031: LD_EXP 1
21035: PPUSH
21036: LD_EXP 54
21040: PUSH
21041: LD_INT 3
21043: ARRAY
21044: PUSH
21045: LD_INT 3
21047: ARRAY
21048: PUSH
21049: LD_INT 1
21051: ARRAY
21052: PPUSH
21053: LD_EXP 54
21057: PUSH
21058: LD_INT 3
21060: ARRAY
21061: PUSH
21062: LD_INT 3
21064: ARRAY
21065: PUSH
21066: LD_INT 2
21068: ARRAY
21069: PPUSH
21070: CALL_OW 178
// Say ( Heike , C_Heike_4 ) ;
21074: LD_EXP 1
21078: PPUSH
21079: LD_STRING C_Heike_4
21081: PPUSH
21082: CALL_OW 88
// temp = ContaminationCutsceneHexes [ 1 ] ;
21086: LD_ADDR_VAR 0 1
21090: PUSH
21091: LD_EXP 54
21095: PUSH
21096: LD_INT 1
21098: ARRAY
21099: ST_TO_ADDR
// ComExitBuilding ( [ Omar , Gensher , headscientist ] ) ;
21100: LD_EXP 2
21104: PUSH
21105: LD_EXP 3
21109: PUSH
21110: LD_EXP 90
21114: PUSH
21115: EMPTY
21116: LIST
21117: LIST
21118: LIST
21119: PPUSH
21120: CALL_OW 122
// AddComMoveXY ( Omar , temp [ 1 ] [ 1 ] , temp [ 1 ] [ 2 ] ) ;
21124: LD_EXP 2
21128: PPUSH
21129: LD_VAR 0 1
21133: PUSH
21134: LD_INT 1
21136: ARRAY
21137: PUSH
21138: LD_INT 1
21140: ARRAY
21141: PPUSH
21142: LD_VAR 0 1
21146: PUSH
21147: LD_INT 1
21149: ARRAY
21150: PUSH
21151: LD_INT 2
21153: ARRAY
21154: PPUSH
21155: CALL_OW 171
// AddComMoveXY ( Gensher , temp [ 2 ] [ 1 ] , temp [ 2 ] [ 2 ] ) ;
21159: LD_EXP 3
21163: PPUSH
21164: LD_VAR 0 1
21168: PUSH
21169: LD_INT 2
21171: ARRAY
21172: PUSH
21173: LD_INT 1
21175: ARRAY
21176: PPUSH
21177: LD_VAR 0 1
21181: PUSH
21182: LD_INT 2
21184: ARRAY
21185: PUSH
21186: LD_INT 2
21188: ARRAY
21189: PPUSH
21190: CALL_OW 171
// AddComMoveXY ( headscientist , temp [ 3 ] [ 1 ] , temp [ 3 ] [ 2 ] ) ;
21194: LD_EXP 90
21198: PPUSH
21199: LD_VAR 0 1
21203: PUSH
21204: LD_INT 3
21206: ARRAY
21207: PUSH
21208: LD_INT 1
21210: ARRAY
21211: PPUSH
21212: LD_VAR 0 1
21216: PUSH
21217: LD_INT 3
21219: ARRAY
21220: PUSH
21221: LD_INT 2
21223: ARRAY
21224: PPUSH
21225: CALL_OW 171
// AddComTurnUnit ( [ Omar , Gensher , headscientist ] , Heike ) ;
21229: LD_EXP 2
21233: PUSH
21234: LD_EXP 3
21238: PUSH
21239: LD_EXP 90
21243: PUSH
21244: EMPTY
21245: LIST
21246: LIST
21247: LIST
21248: PPUSH
21249: LD_EXP 1
21253: PPUSH
21254: CALL_OW 179
// temp = ContaminationCutsceneHexes [ 3 ] ;
21258: LD_ADDR_VAR 0 1
21262: PUSH
21263: LD_EXP 54
21267: PUSH
21268: LD_INT 3
21270: ARRAY
21271: ST_TO_ADDR
// temp2 = ContaminationCutsceneSoldiers diff headscientist ;
21272: LD_ADDR_VAR 0 6
21276: PUSH
21277: LD_EXP 55
21281: PUSH
21282: LD_EXP 90
21286: DIFF
21287: ST_TO_ADDR
// count = 0 0$30 ;
21288: LD_ADDR_VAR 0 8
21292: PUSH
21293: LD_INT 1050
21295: ST_TO_ADDR
// repeat wait ( 0 0$1 ) ;
21296: LD_INT 35
21298: PPUSH
21299: CALL_OW 67
// count = count - 0 0$1 ;
21303: LD_ADDR_VAR 0 8
21307: PUSH
21308: LD_VAR 0 8
21312: PUSH
21313: LD_INT 35
21315: MINUS
21316: ST_TO_ADDR
// CenterOnUnits ( Heike ) ;
21317: LD_EXP 1
21321: PPUSH
21322: CALL_OW 85
// j = 0 ;
21326: LD_ADDR_VAR 0 4
21330: PUSH
21331: LD_INT 0
21333: ST_TO_ADDR
// for i = 1 to temp2 do
21334: LD_ADDR_VAR 0 3
21338: PUSH
21339: DOUBLE
21340: LD_INT 1
21342: DEC
21343: ST_TO_ADDR
21344: LD_VAR 0 6
21348: PUSH
21349: FOR_TO
21350: IFFALSE 21553
// if GetDistUnitXY ( temp2 [ i ] , temp [ i ] [ 1 ] , temp [ i ] [ 2 ] ) > 2 then
21352: LD_VAR 0 6
21356: PUSH
21357: LD_VAR 0 3
21361: ARRAY
21362: PPUSH
21363: LD_VAR 0 1
21367: PUSH
21368: LD_VAR 0 3
21372: ARRAY
21373: PUSH
21374: LD_INT 1
21376: ARRAY
21377: PPUSH
21378: LD_VAR 0 1
21382: PUSH
21383: LD_VAR 0 3
21387: ARRAY
21388: PUSH
21389: LD_INT 2
21391: ARRAY
21392: PPUSH
21393: CALL_OW 297
21397: PUSH
21398: LD_INT 2
21400: GREATER
21401: IFFALSE 21551
// begin j = 1 ;
21403: LD_ADDR_VAR 0 4
21407: PUSH
21408: LD_INT 1
21410: ST_TO_ADDR
// if IsInUnit ( temp2 [ i ] ) = 0 then
21411: LD_VAR 0 6
21415: PUSH
21416: LD_VAR 0 3
21420: ARRAY
21421: PPUSH
21422: CALL_OW 310
21426: PUSH
21427: LD_INT 0
21429: EQUAL
21430: IFFALSE 21479
// ComAgressiveMove ( temp2 [ i ] , temp [ i ] [ 1 ] , temp [ i ] [ 2 ] ) else
21432: LD_VAR 0 6
21436: PUSH
21437: LD_VAR 0 3
21441: ARRAY
21442: PPUSH
21443: LD_VAR 0 1
21447: PUSH
21448: LD_VAR 0 3
21452: ARRAY
21453: PUSH
21454: LD_INT 1
21456: ARRAY
21457: PPUSH
21458: LD_VAR 0 1
21462: PUSH
21463: LD_VAR 0 3
21467: ARRAY
21468: PUSH
21469: LD_INT 2
21471: ARRAY
21472: PPUSH
21473: CALL_OW 114
21477: GO 21537
// if GetType ( IsInUnit ( temp2 [ i ] ) ) = unit_vehicle then
21479: LD_VAR 0 6
21483: PUSH
21484: LD_VAR 0 3
21488: ARRAY
21489: PPUSH
21490: CALL_OW 310
21494: PPUSH
21495: CALL_OW 247
21499: PUSH
21500: LD_INT 2
21502: EQUAL
21503: IFFALSE 21522
// ComExitVehicle ( temp2 [ i ] ) else
21505: LD_VAR 0 6
21509: PUSH
21510: LD_VAR 0 3
21514: ARRAY
21515: PPUSH
21516: CALL_OW 121
21520: GO 21537
// ComExitBuilding ( temp2 [ i ] ) ;
21522: LD_VAR 0 6
21526: PUSH
21527: LD_VAR 0 3
21531: ARRAY
21532: PPUSH
21533: CALL_OW 122
// AddComTurnUnit ( temp2 , Heike ) ;
21537: LD_VAR 0 6
21541: PPUSH
21542: LD_EXP 1
21546: PPUSH
21547: CALL_OW 179
// end ;
21551: GO 21349
21553: POP
21554: POP
// until count <= 0 or j = 0 ;
21555: LD_VAR 0 8
21559: PUSH
21560: LD_INT 0
21562: LESSEQUAL
21563: PUSH
21564: LD_VAR 0 4
21568: PUSH
21569: LD_INT 0
21571: EQUAL
21572: OR
21573: IFFALSE 21296
// Say ( Heike , C_Heike_5 ) ;
21575: LD_EXP 1
21579: PPUSH
21580: LD_STRING C_Heike_5
21582: PPUSH
21583: CALL_OW 88
// Say ( Heike , C_Heike_6 ) ;
21587: LD_EXP 1
21591: PPUSH
21592: LD_STRING C_Heike_6
21594: PPUSH
21595: CALL_OW 88
// Say ( Heike , C_Heike_7 ) ;
21599: LD_EXP 1
21603: PPUSH
21604: LD_STRING C_Heike_7
21606: PPUSH
21607: CALL_OW 88
// Say ( Heike , C_Heike_8 ) ;
21611: LD_EXP 1
21615: PPUSH
21616: LD_STRING C_Heike_8
21618: PPUSH
21619: CALL_OW 88
// Say ( Heike , C_Heike_9 ) ;
21623: LD_EXP 1
21627: PPUSH
21628: LD_STRING C_Heike_9
21630: PPUSH
21631: CALL_OW 88
// ComHold ( temp2 ) ;
21635: LD_VAR 0 6
21639: PPUSH
21640: CALL_OW 140
// wait ( 0 0$2 ) ;
21644: LD_INT 70
21646: PPUSH
21647: CALL_OW 67
// temp = [ Olaf , Oswald , Ralph , Kowalski , Evelyn , Swansson , Dwayne ] ;
21651: LD_ADDR_VAR 0 1
21655: PUSH
21656: LD_EXP 4
21660: PUSH
21661: LD_EXP 5
21665: PUSH
21666: LD_EXP 6
21670: PUSH
21671: LD_EXP 9
21675: PUSH
21676: LD_EXP 10
21680: PUSH
21681: LD_EXP 11
21685: PUSH
21686: LD_EXP 12
21690: PUSH
21691: EMPTY
21692: LIST
21693: LIST
21694: LIST
21695: LIST
21696: LIST
21697: LIST
21698: LIST
21699: ST_TO_ADDR
// temp2 = [ Olaf , Oswald , Ralph , Kowalski , Evelyn , Swansson , Dwayne ] ;
21700: LD_ADDR_VAR 0 6
21704: PUSH
21705: LD_STRING Olaf
21707: PUSH
21708: LD_STRING Oswald
21710: PUSH
21711: LD_STRING Ralph
21713: PUSH
21714: LD_STRING Kowalski
21716: PUSH
21717: LD_STRING Evelyn
21719: PUSH
21720: LD_STRING Swansson
21722: PUSH
21723: LD_STRING Dwayne
21725: PUSH
21726: EMPTY
21727: LIST
21728: LIST
21729: LIST
21730: LIST
21731: LIST
21732: LIST
21733: LIST
21734: ST_TO_ADDR
// for i = temp downto 1 do
21735: LD_ADDR_VAR 0 3
21739: PUSH
21740: DOUBLE
21741: LD_VAR 0 1
21745: INC
21746: ST_TO_ADDR
21747: LD_INT 1
21749: PUSH
21750: FOR_DOWNTO
21751: IFFALSE 21831
// if temp [ i ] = HeadScientist or not IsPlaced ( temp [ i ] ) then
21753: LD_VAR 0 1
21757: PUSH
21758: LD_VAR 0 3
21762: ARRAY
21763: PUSH
21764: LD_EXP 90
21768: EQUAL
21769: PUSH
21770: LD_VAR 0 1
21774: PUSH
21775: LD_VAR 0 3
21779: ARRAY
21780: PPUSH
21781: CALL_OW 305
21785: NOT
21786: OR
21787: IFFALSE 21829
// begin temp = delete ( temp , i ) ;
21789: LD_ADDR_VAR 0 1
21793: PUSH
21794: LD_VAR 0 1
21798: PPUSH
21799: LD_VAR 0 3
21803: PPUSH
21804: CALL_OW 3
21808: ST_TO_ADDR
// temp2 = delete ( temp2 , i ) ;
21809: LD_ADDR_VAR 0 6
21813: PUSH
21814: LD_VAR 0 6
21818: PPUSH
21819: LD_VAR 0 3
21823: PPUSH
21824: CALL_OW 3
21828: ST_TO_ADDR
// end ;
21829: GO 21750
21831: POP
21832: POP
// for i = 1 to 2 do
21833: LD_ADDR_VAR 0 3
21837: PUSH
21838: DOUBLE
21839: LD_INT 1
21841: DEC
21842: ST_TO_ADDR
21843: LD_INT 2
21845: PUSH
21846: FOR_TO
21847: IFFALSE 21939
// begin j = rand ( 1 , temp ) ;
21849: LD_ADDR_VAR 0 4
21853: PUSH
21854: LD_INT 1
21856: PPUSH
21857: LD_VAR 0 1
21861: PPUSH
21862: CALL_OW 12
21866: ST_TO_ADDR
// Say ( temp [ j ] , CR1_ & temp2 [ j ] ) ;
21867: LD_VAR 0 1
21871: PUSH
21872: LD_VAR 0 4
21876: ARRAY
21877: PPUSH
21878: LD_STRING CR1_
21880: PUSH
21881: LD_VAR 0 6
21885: PUSH
21886: LD_VAR 0 4
21890: ARRAY
21891: STR
21892: PPUSH
21893: CALL_OW 88
// temp = delete ( temp , j ) ;
21897: LD_ADDR_VAR 0 1
21901: PUSH
21902: LD_VAR 0 1
21906: PPUSH
21907: LD_VAR 0 4
21911: PPUSH
21912: CALL_OW 3
21916: ST_TO_ADDR
// temp2 = delete ( temp2 , j ) ;
21917: LD_ADDR_VAR 0 6
21921: PUSH
21922: LD_VAR 0 6
21926: PPUSH
21927: LD_VAR 0 4
21931: PPUSH
21932: CALL_OW 3
21936: ST_TO_ADDR
// end ;
21937: GO 21846
21939: POP
21940: POP
// wait ( 0 0$4 ) ;
21941: LD_INT 140
21943: PPUSH
21944: CALL_OW 67
// temp = [ Olaf , Oswald , Ralph , Kowalski , Evelyn , Swansson , Dwayne , Sonya , Aviradze , Khattam , Makise , Snake ] ;
21948: LD_ADDR_VAR 0 1
21952: PUSH
21953: LD_EXP 4
21957: PUSH
21958: LD_EXP 5
21962: PUSH
21963: LD_EXP 6
21967: PUSH
21968: LD_EXP 9
21972: PUSH
21973: LD_EXP 10
21977: PUSH
21978: LD_EXP 11
21982: PUSH
21983: LD_EXP 12
21987: PUSH
21988: LD_EXP 7
21992: PUSH
21993: LD_EXP 8
21997: PUSH
21998: LD_EXP 13
22002: PUSH
22003: LD_EXP 14
22007: PUSH
22008: LD_EXP 19
22012: PUSH
22013: EMPTY
22014: LIST
22015: LIST
22016: LIST
22017: LIST
22018: LIST
22019: LIST
22020: LIST
22021: LIST
22022: LIST
22023: LIST
22024: LIST
22025: LIST
22026: ST_TO_ADDR
// temp2 = [ Olaf , Oswald , Ralph , Kowalski , Evelyn , Swansson , Dwayne , Sonya , Aviradze , Khattam , Makise , Snake ] ;
22027: LD_ADDR_VAR 0 6
22031: PUSH
22032: LD_STRING Olaf
22034: PUSH
22035: LD_STRING Oswald
22037: PUSH
22038: LD_STRING Ralph
22040: PUSH
22041: LD_STRING Kowalski
22043: PUSH
22044: LD_STRING Evelyn
22046: PUSH
22047: LD_STRING Swansson
22049: PUSH
22050: LD_STRING Dwayne
22052: PUSH
22053: LD_STRING Sonya
22055: PUSH
22056: LD_STRING Aviradze
22058: PUSH
22059: LD_STRING Khattam
22061: PUSH
22062: LD_STRING Makise
22064: PUSH
22065: LD_STRING Snake
22067: PUSH
22068: EMPTY
22069: LIST
22070: LIST
22071: LIST
22072: LIST
22073: LIST
22074: LIST
22075: LIST
22076: LIST
22077: LIST
22078: LIST
22079: LIST
22080: LIST
22081: ST_TO_ADDR
// for i = temp downto 1 do
22082: LD_ADDR_VAR 0 3
22086: PUSH
22087: DOUBLE
22088: LD_VAR 0 1
22092: INC
22093: ST_TO_ADDR
22094: LD_INT 1
22096: PUSH
22097: FOR_DOWNTO
22098: IFFALSE 22178
// if temp [ i ] = HeadScientist or not IsPlaced ( temp [ i ] ) then
22100: LD_VAR 0 1
22104: PUSH
22105: LD_VAR 0 3
22109: ARRAY
22110: PUSH
22111: LD_EXP 90
22115: EQUAL
22116: PUSH
22117: LD_VAR 0 1
22121: PUSH
22122: LD_VAR 0 3
22126: ARRAY
22127: PPUSH
22128: CALL_OW 305
22132: NOT
22133: OR
22134: IFFALSE 22176
// begin temp = delete ( temp , i ) ;
22136: LD_ADDR_VAR 0 1
22140: PUSH
22141: LD_VAR 0 1
22145: PPUSH
22146: LD_VAR 0 3
22150: PPUSH
22151: CALL_OW 3
22155: ST_TO_ADDR
// temp2 = delete ( temp2 , i ) ;
22156: LD_ADDR_VAR 0 6
22160: PUSH
22161: LD_VAR 0 6
22165: PPUSH
22166: LD_VAR 0 3
22170: PPUSH
22171: CALL_OW 3
22175: ST_TO_ADDR
// end ;
22176: GO 22097
22178: POP
22179: POP
// for i = 1 to 4 do
22180: LD_ADDR_VAR 0 3
22184: PUSH
22185: DOUBLE
22186: LD_INT 1
22188: DEC
22189: ST_TO_ADDR
22190: LD_INT 4
22192: PUSH
22193: FOR_TO
22194: IFFALSE 22286
// begin j = rand ( 1 , temp ) ;
22196: LD_ADDR_VAR 0 4
22200: PUSH
22201: LD_INT 1
22203: PPUSH
22204: LD_VAR 0 1
22208: PPUSH
22209: CALL_OW 12
22213: ST_TO_ADDR
// Say ( temp [ j ] , CR2_ & temp2 [ j ] ) ;
22214: LD_VAR 0 1
22218: PUSH
22219: LD_VAR 0 4
22223: ARRAY
22224: PPUSH
22225: LD_STRING CR2_
22227: PUSH
22228: LD_VAR 0 6
22232: PUSH
22233: LD_VAR 0 4
22237: ARRAY
22238: STR
22239: PPUSH
22240: CALL_OW 88
// temp = delete ( temp , j ) ;
22244: LD_ADDR_VAR 0 1
22248: PUSH
22249: LD_VAR 0 1
22253: PPUSH
22254: LD_VAR 0 4
22258: PPUSH
22259: CALL_OW 3
22263: ST_TO_ADDR
// temp2 = delete ( temp2 , j ) ;
22264: LD_ADDR_VAR 0 6
22268: PUSH
22269: LD_VAR 0 6
22273: PPUSH
22274: LD_VAR 0 4
22278: PPUSH
22279: CALL_OW 3
22283: ST_TO_ADDR
// end ;
22284: GO 22193
22286: POP
22287: POP
// temp = [ Gensher , Oswald , Swansson , Dwayne , Ralph , Kowalski ] ;
22288: LD_ADDR_VAR 0 1
22292: PUSH
22293: LD_EXP 3
22297: PUSH
22298: LD_EXP 5
22302: PUSH
22303: LD_EXP 11
22307: PUSH
22308: LD_EXP 12
22312: PUSH
22313: LD_EXP 6
22317: PUSH
22318: LD_EXP 9
22322: PUSH
22323: EMPTY
22324: LIST
22325: LIST
22326: LIST
22327: LIST
22328: LIST
22329: LIST
22330: ST_TO_ADDR
// temp2 = [ Gensher , Oswald , Swansson , Dwayne , Ralph , Kowalski ] ;
22331: LD_ADDR_VAR 0 6
22335: PUSH
22336: LD_STRING Gensher
22338: PUSH
22339: LD_STRING Oswald
22341: PUSH
22342: LD_STRING Swansson
22344: PUSH
22345: LD_STRING Dwayne
22347: PUSH
22348: LD_STRING Ralph
22350: PUSH
22351: LD_STRING Kowalski
22353: PUSH
22354: EMPTY
22355: LIST
22356: LIST
22357: LIST
22358: LIST
22359: LIST
22360: LIST
22361: ST_TO_ADDR
// j = [ GensherIsLeader , OswaldIsLeader , SwanssonIsLeader , DwayneIsLeader , RalphIsLeader , KowalskiIsLeader ] ;
22362: LD_ADDR_VAR 0 4
22366: PUSH
22367: LD_EXP 77
22371: PUSH
22372: LD_EXP 66
22376: PUSH
22377: LD_EXP 72
22381: PUSH
22382: LD_EXP 73
22386: PUSH
22387: LD_EXP 67
22391: PUSH
22392: LD_EXP 70
22396: PUSH
22397: EMPTY
22398: LIST
22399: LIST
22400: LIST
22401: LIST
22402: LIST
22403: LIST
22404: ST_TO_ADDR
// for i = 1 to j do
22405: LD_ADDR_VAR 0 3
22409: PUSH
22410: DOUBLE
22411: LD_INT 1
22413: DEC
22414: ST_TO_ADDR
22415: LD_VAR 0 4
22419: PUSH
22420: FOR_TO
22421: IFFALSE 22471
// if j [ i ] = 1 then
22423: LD_VAR 0 4
22427: PUSH
22428: LD_VAR 0 3
22432: ARRAY
22433: PUSH
22434: LD_INT 1
22436: EQUAL
22437: IFFALSE 22469
// SayRadio ( temp [ i ] , CR3_ & temp2 [ i ] ) ;
22439: LD_VAR 0 1
22443: PUSH
22444: LD_VAR 0 3
22448: ARRAY
22449: PPUSH
22450: LD_STRING CR3_
22452: PUSH
22453: LD_VAR 0 6
22457: PUSH
22458: LD_VAR 0 3
22462: ARRAY
22463: STR
22464: PPUSH
22465: CALL_OW 94
22469: GO 22420
22471: POP
22472: POP
// ComTurnUnit ( Heike , Omar ) ;
22473: LD_EXP 1
22477: PPUSH
22478: LD_EXP 2
22482: PPUSH
22483: CALL_OW 119
// Say ( Heike , C_Heike_10 ) ;
22487: LD_EXP 1
22491: PPUSH
22492: LD_STRING C_Heike_10
22494: PPUSH
22495: CALL_OW 88
// Say ( HeadScientist , C_ & dlg & d_6 ) ;
22499: LD_EXP 90
22503: PPUSH
22504: LD_STRING C_
22506: PUSH
22507: LD_VAR 0 5
22511: STR
22512: PUSH
22513: LD_VAR 0 14
22517: STR
22518: PPUSH
22519: CALL_OW 88
// Say ( Heike , C_Heike_11 ) ;
22523: LD_EXP 1
22527: PPUSH
22528: LD_STRING C_Heike_11
22530: PPUSH
22531: CALL_OW 88
// if ( [ ATech_SibPlant , ATech_Beh , ATech_TimeLapse , ATech_Laser , ATech_SuperStim , ATech_SPBomb ] diff 0 ) > 0 then
22535: LD_EXP 92
22539: PUSH
22540: LD_EXP 93
22544: PUSH
22545: LD_EXP 94
22549: PUSH
22550: LD_EXP 95
22554: PUSH
22555: LD_EXP 96
22559: PUSH
22560: LD_EXP 97
22564: PUSH
22565: EMPTY
22566: LIST
22567: LIST
22568: LIST
22569: LIST
22570: LIST
22571: LIST
22572: PUSH
22573: LD_INT 0
22575: DIFF
22576: PUSH
22577: LD_INT 0
22579: GREATER
22580: IFFALSE 22682
// begin wait ( 0 0$2 ) ;
22582: LD_INT 70
22584: PPUSH
22585: CALL_OW 67
// Say ( Omar , C_Omar_7 ) ;
22589: LD_EXP 2
22593: PPUSH
22594: LD_STRING C_Omar_7
22596: PPUSH
22597: CALL_OW 88
// Say ( Omar , C_Omar_8 ) ;
22601: LD_EXP 2
22605: PPUSH
22606: LD_STRING C_Omar_8
22608: PPUSH
22609: CALL_OW 88
// Say ( Omar , C_Omar_9 ) ;
22613: LD_EXP 2
22617: PPUSH
22618: LD_STRING C_Omar_9
22620: PPUSH
22621: CALL_OW 88
// Say ( Omar , C_Omar_10 ) ;
22625: LD_EXP 2
22629: PPUSH
22630: LD_STRING C_Omar_10
22632: PPUSH
22633: CALL_OW 88
// Say ( Omar , C_Omar_11 ) ;
22637: LD_EXP 2
22641: PPUSH
22642: LD_STRING C_Omar_11
22644: PPUSH
22645: CALL_OW 88
// InGameOff ;
22649: CALL_OW 9
// wait ( 0 0$0.5 ) ;
22653: LD_INT 18
22655: PPUSH
22656: CALL_OW 67
// ChangeMissionObjectives ( arttech1 ) ;
22660: LD_STRING arttech1
22662: PPUSH
22663: CALL_OW 337
// SetTech ( tech_artifact , 2 , state_enabled ) ;
22667: LD_INT 24
22669: PPUSH
22670: LD_INT 2
22672: PPUSH
22673: LD_INT 1
22675: PPUSH
22676: CALL_OW 322
// end else
22680: GO 22686
// InGameOff ;
22682: CALL_OW 9
// ComFree ( FilterAllUnits ( [ [ f_side , 2 ] , [ f_type , unit_human ] ] ) ) ;
22686: LD_INT 22
22688: PUSH
22689: LD_INT 2
22691: PUSH
22692: EMPTY
22693: LIST
22694: LIST
22695: PUSH
22696: LD_INT 21
22698: PUSH
22699: LD_INT 1
22701: PUSH
22702: EMPTY
22703: LIST
22704: LIST
22705: PUSH
22706: EMPTY
22707: LIST
22708: LIST
22709: PPUSH
22710: CALL_OW 69
22714: PPUSH
22715: CALL_OW 139
// cutscene_done = 1 ;
22719: LD_ADDR_EXP 59
22723: PUSH
22724: LD_INT 1
22726: ST_TO_ADDR
// ContaminationDialogueOn = 0 ;
22727: LD_ADDR_EXP 53
22731: PUSH
22732: LD_INT 0
22734: ST_TO_ADDR
// end ;
22735: PPOPN 14
22737: END
// every 0 0$1 trigger cutscene_done and BurlakDestroyed do
22738: LD_EXP 59
22742: PUSH
22743: LD_EXP 51
22747: AND
22748: IFFALSE 22845
22750: GO 22752
22752: DISABLE
// begin Query ( attack_info ) ;
22753: LD_STRING attack_info
22755: PPUSH
22756: CALL_OW 97
// EnableMovingToNextMap = 1 ;
22760: LD_ADDR_EXP 58
22764: PUSH
22765: LD_INT 1
22767: ST_TO_ADDR
// SetAreaMapShow ( ExitArea , 1 ) ;
22768: LD_INT 3
22770: PPUSH
22771: LD_INT 1
22773: PPUSH
22774: CALL_OW 424
// wait ( 0 0$0.2 ) ;
22778: LD_INT 7
22780: PPUSH
22781: CALL_OW 67
// case difficulty of 1 :
22785: LD_OWVAR 67
22789: PUSH
22790: LD_INT 1
22792: DOUBLE
22793: EQUAL
22794: IFTRUE 22798
22796: GO 22808
22798: POP
// Query ( sci_min_easy ) ; 2 :
22799: LD_STRING sci_min_easy
22801: PPUSH
22802: CALL_OW 97
22806: GO 22845
22808: LD_INT 2
22810: DOUBLE
22811: EQUAL
22812: IFTRUE 22816
22814: GO 22826
22816: POP
// Query ( sci_min_medium ) ; 3 :
22817: LD_STRING sci_min_medium
22819: PPUSH
22820: CALL_OW 97
22824: GO 22845
22826: LD_INT 3
22828: DOUBLE
22829: EQUAL
22830: IFTRUE 22834
22832: GO 22844
22834: POP
// Query ( sci_min_hard ) ; end ;
22835: LD_STRING sci_min_hard
22837: PPUSH
22838: CALL_OW 97
22842: GO 22845
22844: POP
// end ;
22845: END
// function PrepareHexes ( lab ) ; var i , temp ; begin
22846: LD_INT 0
22848: PPUSH
22849: PPUSH
22850: PPUSH
// case GetDir ( lab ) of 0 :
22851: LD_VAR 0 1
22855: PPUSH
22856: CALL_OW 254
22860: PUSH
22861: LD_INT 0
22863: DOUBLE
22864: EQUAL
22865: IFTRUE 22869
22867: GO 23908
22869: POP
// begin ContaminationCutsceneHexes = [ [ [ GetX ( lab ) - 1 , GetY ( lab ) - 4 ] , [ GetX ( lab ) + 1 , GetY ( lab ) - 3 ] , [ GetX ( lab ) - 2 , GetY ( lab ) - 4 ] ] , [ GetX ( lab ) + 0 , GetY ( lab ) - 6 ] , [ [ GetX ( lab ) + 4 , GetY ( lab ) - 7 ] , [ GetX ( lab ) + 2 , GetY ( lab ) - 8 ] , [ GetX ( lab ) + 0 , GetY ( lab ) - 9 ] , [ GetX ( lab ) - 2 , GetY ( lab ) - 10 ] , [ GetX ( lab ) - 4 , GetY ( lab ) - 11 ] , [ GetX ( lab ) + 5 , GetY ( lab ) - 8 ] , [ GetX ( lab ) + 3 , GetY ( lab ) - 9 ] , [ GetX ( lab ) + 1 , GetY ( lab ) - 10 ] , [ GetX ( lab ) - 1 , GetY ( lab ) - 11 ] , [ GetX ( lab ) - 3 , GetY ( lab ) - 12 ] , [ GetX ( lab ) - 5 , GetY ( lab ) - 13 ] , [ GetX ( lab ) + 4 , GetY ( lab ) - 10 ] , [ GetX ( lab ) + 2 , GetY ( lab ) - 11 ] , [ GetX ( lab ) + 0 , GetY ( lab ) - 12 ] , [ GetX ( lab ) - 2 , GetY ( lab ) - 13 ] , [ GetX ( lab ) - 4 , GetY ( lab ) - 14 ] , [ GetX ( lab ) + 5 , GetY ( lab ) - 11 ] , [ GetX ( lab ) + 3 , GetY ( lab ) - 12 ] , [ GetX ( lab ) + 1 , GetY ( lab ) - 13 ] , [ GetX ( lab ) - 1 , GetY ( lab ) - 14 ] , [ GetX ( lab ) - 3 , GetY ( lab ) - 15 ] , [ GetX ( lab ) - 5 , GetY ( lab ) - 16 ] , [ GetX ( lab ) + 4 , GetY ( lab ) - 13 ] , [ GetX ( lab ) + 2 , GetY ( lab ) - 14 ] , [ GetX ( lab ) + 0 , GetY ( lab ) - 15 ] , [ GetX ( lab ) - 2 , GetY ( lab ) - 16 ] , [ GetX ( lab ) - 4 , GetY ( lab ) - 17 ] ] ] ;
22870: LD_ADDR_EXP 54
22874: PUSH
22875: LD_VAR 0 1
22879: PPUSH
22880: CALL_OW 250
22884: PUSH
22885: LD_INT 1
22887: MINUS
22888: PUSH
22889: LD_VAR 0 1
22893: PPUSH
22894: CALL_OW 251
22898: PUSH
22899: LD_INT 4
22901: MINUS
22902: PUSH
22903: EMPTY
22904: LIST
22905: LIST
22906: PUSH
22907: LD_VAR 0 1
22911: PPUSH
22912: CALL_OW 250
22916: PUSH
22917: LD_INT 1
22919: PLUS
22920: PUSH
22921: LD_VAR 0 1
22925: PPUSH
22926: CALL_OW 251
22930: PUSH
22931: LD_INT 3
22933: MINUS
22934: PUSH
22935: EMPTY
22936: LIST
22937: LIST
22938: PUSH
22939: LD_VAR 0 1
22943: PPUSH
22944: CALL_OW 250
22948: PUSH
22949: LD_INT 2
22951: MINUS
22952: PUSH
22953: LD_VAR 0 1
22957: PPUSH
22958: CALL_OW 251
22962: PUSH
22963: LD_INT 4
22965: MINUS
22966: PUSH
22967: EMPTY
22968: LIST
22969: LIST
22970: PUSH
22971: EMPTY
22972: LIST
22973: LIST
22974: LIST
22975: PUSH
22976: LD_VAR 0 1
22980: PPUSH
22981: CALL_OW 250
22985: PUSH
22986: LD_INT 0
22988: PLUS
22989: PUSH
22990: LD_VAR 0 1
22994: PPUSH
22995: CALL_OW 251
22999: PUSH
23000: LD_INT 6
23002: MINUS
23003: PUSH
23004: EMPTY
23005: LIST
23006: LIST
23007: PUSH
23008: LD_VAR 0 1
23012: PPUSH
23013: CALL_OW 250
23017: PUSH
23018: LD_INT 4
23020: PLUS
23021: PUSH
23022: LD_VAR 0 1
23026: PPUSH
23027: CALL_OW 251
23031: PUSH
23032: LD_INT 7
23034: MINUS
23035: PUSH
23036: EMPTY
23037: LIST
23038: LIST
23039: PUSH
23040: LD_VAR 0 1
23044: PPUSH
23045: CALL_OW 250
23049: PUSH
23050: LD_INT 2
23052: PLUS
23053: PUSH
23054: LD_VAR 0 1
23058: PPUSH
23059: CALL_OW 251
23063: PUSH
23064: LD_INT 8
23066: MINUS
23067: PUSH
23068: EMPTY
23069: LIST
23070: LIST
23071: PUSH
23072: LD_VAR 0 1
23076: PPUSH
23077: CALL_OW 250
23081: PUSH
23082: LD_INT 0
23084: PLUS
23085: PUSH
23086: LD_VAR 0 1
23090: PPUSH
23091: CALL_OW 251
23095: PUSH
23096: LD_INT 9
23098: MINUS
23099: PUSH
23100: EMPTY
23101: LIST
23102: LIST
23103: PUSH
23104: LD_VAR 0 1
23108: PPUSH
23109: CALL_OW 250
23113: PUSH
23114: LD_INT 2
23116: MINUS
23117: PUSH
23118: LD_VAR 0 1
23122: PPUSH
23123: CALL_OW 251
23127: PUSH
23128: LD_INT 10
23130: MINUS
23131: PUSH
23132: EMPTY
23133: LIST
23134: LIST
23135: PUSH
23136: LD_VAR 0 1
23140: PPUSH
23141: CALL_OW 250
23145: PUSH
23146: LD_INT 4
23148: MINUS
23149: PUSH
23150: LD_VAR 0 1
23154: PPUSH
23155: CALL_OW 251
23159: PUSH
23160: LD_INT 11
23162: MINUS
23163: PUSH
23164: EMPTY
23165: LIST
23166: LIST
23167: PUSH
23168: LD_VAR 0 1
23172: PPUSH
23173: CALL_OW 250
23177: PUSH
23178: LD_INT 5
23180: PLUS
23181: PUSH
23182: LD_VAR 0 1
23186: PPUSH
23187: CALL_OW 251
23191: PUSH
23192: LD_INT 8
23194: MINUS
23195: PUSH
23196: EMPTY
23197: LIST
23198: LIST
23199: PUSH
23200: LD_VAR 0 1
23204: PPUSH
23205: CALL_OW 250
23209: PUSH
23210: LD_INT 3
23212: PLUS
23213: PUSH
23214: LD_VAR 0 1
23218: PPUSH
23219: CALL_OW 251
23223: PUSH
23224: LD_INT 9
23226: MINUS
23227: PUSH
23228: EMPTY
23229: LIST
23230: LIST
23231: PUSH
23232: LD_VAR 0 1
23236: PPUSH
23237: CALL_OW 250
23241: PUSH
23242: LD_INT 1
23244: PLUS
23245: PUSH
23246: LD_VAR 0 1
23250: PPUSH
23251: CALL_OW 251
23255: PUSH
23256: LD_INT 10
23258: MINUS
23259: PUSH
23260: EMPTY
23261: LIST
23262: LIST
23263: PUSH
23264: LD_VAR 0 1
23268: PPUSH
23269: CALL_OW 250
23273: PUSH
23274: LD_INT 1
23276: MINUS
23277: PUSH
23278: LD_VAR 0 1
23282: PPUSH
23283: CALL_OW 251
23287: PUSH
23288: LD_INT 11
23290: MINUS
23291: PUSH
23292: EMPTY
23293: LIST
23294: LIST
23295: PUSH
23296: LD_VAR 0 1
23300: PPUSH
23301: CALL_OW 250
23305: PUSH
23306: LD_INT 3
23308: MINUS
23309: PUSH
23310: LD_VAR 0 1
23314: PPUSH
23315: CALL_OW 251
23319: PUSH
23320: LD_INT 12
23322: MINUS
23323: PUSH
23324: EMPTY
23325: LIST
23326: LIST
23327: PUSH
23328: LD_VAR 0 1
23332: PPUSH
23333: CALL_OW 250
23337: PUSH
23338: LD_INT 5
23340: MINUS
23341: PUSH
23342: LD_VAR 0 1
23346: PPUSH
23347: CALL_OW 251
23351: PUSH
23352: LD_INT 13
23354: MINUS
23355: PUSH
23356: EMPTY
23357: LIST
23358: LIST
23359: PUSH
23360: LD_VAR 0 1
23364: PPUSH
23365: CALL_OW 250
23369: PUSH
23370: LD_INT 4
23372: PLUS
23373: PUSH
23374: LD_VAR 0 1
23378: PPUSH
23379: CALL_OW 251
23383: PUSH
23384: LD_INT 10
23386: MINUS
23387: PUSH
23388: EMPTY
23389: LIST
23390: LIST
23391: PUSH
23392: LD_VAR 0 1
23396: PPUSH
23397: CALL_OW 250
23401: PUSH
23402: LD_INT 2
23404: PLUS
23405: PUSH
23406: LD_VAR 0 1
23410: PPUSH
23411: CALL_OW 251
23415: PUSH
23416: LD_INT 11
23418: MINUS
23419: PUSH
23420: EMPTY
23421: LIST
23422: LIST
23423: PUSH
23424: LD_VAR 0 1
23428: PPUSH
23429: CALL_OW 250
23433: PUSH
23434: LD_INT 0
23436: PLUS
23437: PUSH
23438: LD_VAR 0 1
23442: PPUSH
23443: CALL_OW 251
23447: PUSH
23448: LD_INT 12
23450: MINUS
23451: PUSH
23452: EMPTY
23453: LIST
23454: LIST
23455: PUSH
23456: LD_VAR 0 1
23460: PPUSH
23461: CALL_OW 250
23465: PUSH
23466: LD_INT 2
23468: MINUS
23469: PUSH
23470: LD_VAR 0 1
23474: PPUSH
23475: CALL_OW 251
23479: PUSH
23480: LD_INT 13
23482: MINUS
23483: PUSH
23484: EMPTY
23485: LIST
23486: LIST
23487: PUSH
23488: LD_VAR 0 1
23492: PPUSH
23493: CALL_OW 250
23497: PUSH
23498: LD_INT 4
23500: MINUS
23501: PUSH
23502: LD_VAR 0 1
23506: PPUSH
23507: CALL_OW 251
23511: PUSH
23512: LD_INT 14
23514: MINUS
23515: PUSH
23516: EMPTY
23517: LIST
23518: LIST
23519: PUSH
23520: LD_VAR 0 1
23524: PPUSH
23525: CALL_OW 250
23529: PUSH
23530: LD_INT 5
23532: PLUS
23533: PUSH
23534: LD_VAR 0 1
23538: PPUSH
23539: CALL_OW 251
23543: PUSH
23544: LD_INT 11
23546: MINUS
23547: PUSH
23548: EMPTY
23549: LIST
23550: LIST
23551: PUSH
23552: LD_VAR 0 1
23556: PPUSH
23557: CALL_OW 250
23561: PUSH
23562: LD_INT 3
23564: PLUS
23565: PUSH
23566: LD_VAR 0 1
23570: PPUSH
23571: CALL_OW 251
23575: PUSH
23576: LD_INT 12
23578: MINUS
23579: PUSH
23580: EMPTY
23581: LIST
23582: LIST
23583: PUSH
23584: LD_VAR 0 1
23588: PPUSH
23589: CALL_OW 250
23593: PUSH
23594: LD_INT 1
23596: PLUS
23597: PUSH
23598: LD_VAR 0 1
23602: PPUSH
23603: CALL_OW 251
23607: PUSH
23608: LD_INT 13
23610: MINUS
23611: PUSH
23612: EMPTY
23613: LIST
23614: LIST
23615: PUSH
23616: LD_VAR 0 1
23620: PPUSH
23621: CALL_OW 250
23625: PUSH
23626: LD_INT 1
23628: MINUS
23629: PUSH
23630: LD_VAR 0 1
23634: PPUSH
23635: CALL_OW 251
23639: PUSH
23640: LD_INT 14
23642: MINUS
23643: PUSH
23644: EMPTY
23645: LIST
23646: LIST
23647: PUSH
23648: LD_VAR 0 1
23652: PPUSH
23653: CALL_OW 250
23657: PUSH
23658: LD_INT 3
23660: MINUS
23661: PUSH
23662: LD_VAR 0 1
23666: PPUSH
23667: CALL_OW 251
23671: PUSH
23672: LD_INT 15
23674: MINUS
23675: PUSH
23676: EMPTY
23677: LIST
23678: LIST
23679: PUSH
23680: LD_VAR 0 1
23684: PPUSH
23685: CALL_OW 250
23689: PUSH
23690: LD_INT 5
23692: MINUS
23693: PUSH
23694: LD_VAR 0 1
23698: PPUSH
23699: CALL_OW 251
23703: PUSH
23704: LD_INT 16
23706: MINUS
23707: PUSH
23708: EMPTY
23709: LIST
23710: LIST
23711: PUSH
23712: LD_VAR 0 1
23716: PPUSH
23717: CALL_OW 250
23721: PUSH
23722: LD_INT 4
23724: PLUS
23725: PUSH
23726: LD_VAR 0 1
23730: PPUSH
23731: CALL_OW 251
23735: PUSH
23736: LD_INT 13
23738: MINUS
23739: PUSH
23740: EMPTY
23741: LIST
23742: LIST
23743: PUSH
23744: LD_VAR 0 1
23748: PPUSH
23749: CALL_OW 250
23753: PUSH
23754: LD_INT 2
23756: PLUS
23757: PUSH
23758: LD_VAR 0 1
23762: PPUSH
23763: CALL_OW 251
23767: PUSH
23768: LD_INT 14
23770: MINUS
23771: PUSH
23772: EMPTY
23773: LIST
23774: LIST
23775: PUSH
23776: LD_VAR 0 1
23780: PPUSH
23781: CALL_OW 250
23785: PUSH
23786: LD_INT 0
23788: PLUS
23789: PUSH
23790: LD_VAR 0 1
23794: PPUSH
23795: CALL_OW 251
23799: PUSH
23800: LD_INT 15
23802: MINUS
23803: PUSH
23804: EMPTY
23805: LIST
23806: LIST
23807: PUSH
23808: LD_VAR 0 1
23812: PPUSH
23813: CALL_OW 250
23817: PUSH
23818: LD_INT 2
23820: MINUS
23821: PUSH
23822: LD_VAR 0 1
23826: PPUSH
23827: CALL_OW 251
23831: PUSH
23832: LD_INT 16
23834: MINUS
23835: PUSH
23836: EMPTY
23837: LIST
23838: LIST
23839: PUSH
23840: LD_VAR 0 1
23844: PPUSH
23845: CALL_OW 250
23849: PUSH
23850: LD_INT 4
23852: MINUS
23853: PUSH
23854: LD_VAR 0 1
23858: PPUSH
23859: CALL_OW 251
23863: PUSH
23864: LD_INT 17
23866: MINUS
23867: PUSH
23868: EMPTY
23869: LIST
23870: LIST
23871: PUSH
23872: EMPTY
23873: LIST
23874: LIST
23875: LIST
23876: LIST
23877: LIST
23878: LIST
23879: LIST
23880: LIST
23881: LIST
23882: LIST
23883: LIST
23884: LIST
23885: LIST
23886: LIST
23887: LIST
23888: LIST
23889: LIST
23890: LIST
23891: LIST
23892: LIST
23893: LIST
23894: LIST
23895: LIST
23896: LIST
23897: LIST
23898: LIST
23899: LIST
23900: PUSH
23901: EMPTY
23902: LIST
23903: LIST
23904: LIST
23905: ST_TO_ADDR
// end ; 1 :
23906: GO 29144
23908: LD_INT 1
23910: DOUBLE
23911: EQUAL
23912: IFTRUE 23916
23914: GO 24955
23916: POP
// begin ContaminationCutsceneHexes = [ [ [ GetX ( lab ) + 3 , GetY ( lab ) - 1 ] , [ GetX ( lab ) + 4 , GetY ( lab ) + 1 ] , [ GetX ( lab ) + 2 , GetY ( lab ) - 2 ] ] , [ GetX ( lab ) + 6 , GetY ( lab ) + 0 ] , [ [ GetX ( lab ) + 11 , GetY ( lab ) + 4 ] , [ GetX ( lab ) + 10 , GetY ( lab ) + 2 ] , [ GetX ( lab ) + 9 , GetY ( lab ) + 0 ] , [ GetX ( lab ) + 8 , GetY ( lab ) - 2 ] , [ GetX ( lab ) + 7 , GetY ( lab ) - 4 ] , [ GetX ( lab ) + 13 , GetY ( lab ) + 5 ] , [ GetX ( lab ) + 12 , GetY ( lab ) + 3 ] , [ GetX ( lab ) + 11 , GetY ( lab ) + 1 ] , [ GetX ( lab ) + 10 , GetY ( lab ) - 1 ] , [ GetX ( lab ) + 9 , GetY ( lab ) - 3 ] , [ GetX ( lab ) + 8 , GetY ( lab ) - 5 ] , [ GetX ( lab ) + 14 , GetY ( lab ) + 4 ] , [ GetX ( lab ) + 13 , GetY ( lab ) + 2 ] , [ GetX ( lab ) + 12 , GetY ( lab ) + 0 ] , [ GetX ( lab ) + 11 , GetY ( lab ) - 2 ] , [ GetX ( lab ) + 10 , GetY ( lab ) - 4 ] , [ GetX ( lab ) + 16 , GetY ( lab ) + 5 ] , [ GetX ( lab ) + 15 , GetY ( lab ) + 3 ] , [ GetX ( lab ) + 14 , GetY ( lab ) + 1 ] , [ GetX ( lab ) + 13 , GetY ( lab ) - 1 ] , [ GetX ( lab ) + 12 , GetY ( lab ) - 3 ] , [ GetX ( lab ) + 11 , GetY ( lab ) - 5 ] , [ GetX ( lab ) + 17 , GetY ( lab ) + 4 ] , [ GetX ( lab ) + 16 , GetY ( lab ) + 2 ] , [ GetX ( lab ) + 15 , GetY ( lab ) + 0 ] , [ GetX ( lab ) + 14 , GetY ( lab ) - 2 ] , [ GetX ( lab ) + 13 , GetY ( lab ) - 4 ] ] ] ;
23917: LD_ADDR_EXP 54
23921: PUSH
23922: LD_VAR 0 1
23926: PPUSH
23927: CALL_OW 250
23931: PUSH
23932: LD_INT 3
23934: PLUS
23935: PUSH
23936: LD_VAR 0 1
23940: PPUSH
23941: CALL_OW 251
23945: PUSH
23946: LD_INT 1
23948: MINUS
23949: PUSH
23950: EMPTY
23951: LIST
23952: LIST
23953: PUSH
23954: LD_VAR 0 1
23958: PPUSH
23959: CALL_OW 250
23963: PUSH
23964: LD_INT 4
23966: PLUS
23967: PUSH
23968: LD_VAR 0 1
23972: PPUSH
23973: CALL_OW 251
23977: PUSH
23978: LD_INT 1
23980: PLUS
23981: PUSH
23982: EMPTY
23983: LIST
23984: LIST
23985: PUSH
23986: LD_VAR 0 1
23990: PPUSH
23991: CALL_OW 250
23995: PUSH
23996: LD_INT 2
23998: PLUS
23999: PUSH
24000: LD_VAR 0 1
24004: PPUSH
24005: CALL_OW 251
24009: PUSH
24010: LD_INT 2
24012: MINUS
24013: PUSH
24014: EMPTY
24015: LIST
24016: LIST
24017: PUSH
24018: EMPTY
24019: LIST
24020: LIST
24021: LIST
24022: PUSH
24023: LD_VAR 0 1
24027: PPUSH
24028: CALL_OW 250
24032: PUSH
24033: LD_INT 6
24035: PLUS
24036: PUSH
24037: LD_VAR 0 1
24041: PPUSH
24042: CALL_OW 251
24046: PUSH
24047: LD_INT 0
24049: PLUS
24050: PUSH
24051: EMPTY
24052: LIST
24053: LIST
24054: PUSH
24055: LD_VAR 0 1
24059: PPUSH
24060: CALL_OW 250
24064: PUSH
24065: LD_INT 11
24067: PLUS
24068: PUSH
24069: LD_VAR 0 1
24073: PPUSH
24074: CALL_OW 251
24078: PUSH
24079: LD_INT 4
24081: PLUS
24082: PUSH
24083: EMPTY
24084: LIST
24085: LIST
24086: PUSH
24087: LD_VAR 0 1
24091: PPUSH
24092: CALL_OW 250
24096: PUSH
24097: LD_INT 10
24099: PLUS
24100: PUSH
24101: LD_VAR 0 1
24105: PPUSH
24106: CALL_OW 251
24110: PUSH
24111: LD_INT 2
24113: PLUS
24114: PUSH
24115: EMPTY
24116: LIST
24117: LIST
24118: PUSH
24119: LD_VAR 0 1
24123: PPUSH
24124: CALL_OW 250
24128: PUSH
24129: LD_INT 9
24131: PLUS
24132: PUSH
24133: LD_VAR 0 1
24137: PPUSH
24138: CALL_OW 251
24142: PUSH
24143: LD_INT 0
24145: PLUS
24146: PUSH
24147: EMPTY
24148: LIST
24149: LIST
24150: PUSH
24151: LD_VAR 0 1
24155: PPUSH
24156: CALL_OW 250
24160: PUSH
24161: LD_INT 8
24163: PLUS
24164: PUSH
24165: LD_VAR 0 1
24169: PPUSH
24170: CALL_OW 251
24174: PUSH
24175: LD_INT 2
24177: MINUS
24178: PUSH
24179: EMPTY
24180: LIST
24181: LIST
24182: PUSH
24183: LD_VAR 0 1
24187: PPUSH
24188: CALL_OW 250
24192: PUSH
24193: LD_INT 7
24195: PLUS
24196: PUSH
24197: LD_VAR 0 1
24201: PPUSH
24202: CALL_OW 251
24206: PUSH
24207: LD_INT 4
24209: MINUS
24210: PUSH
24211: EMPTY
24212: LIST
24213: LIST
24214: PUSH
24215: LD_VAR 0 1
24219: PPUSH
24220: CALL_OW 250
24224: PUSH
24225: LD_INT 13
24227: PLUS
24228: PUSH
24229: LD_VAR 0 1
24233: PPUSH
24234: CALL_OW 251
24238: PUSH
24239: LD_INT 5
24241: PLUS
24242: PUSH
24243: EMPTY
24244: LIST
24245: LIST
24246: PUSH
24247: LD_VAR 0 1
24251: PPUSH
24252: CALL_OW 250
24256: PUSH
24257: LD_INT 12
24259: PLUS
24260: PUSH
24261: LD_VAR 0 1
24265: PPUSH
24266: CALL_OW 251
24270: PUSH
24271: LD_INT 3
24273: PLUS
24274: PUSH
24275: EMPTY
24276: LIST
24277: LIST
24278: PUSH
24279: LD_VAR 0 1
24283: PPUSH
24284: CALL_OW 250
24288: PUSH
24289: LD_INT 11
24291: PLUS
24292: PUSH
24293: LD_VAR 0 1
24297: PPUSH
24298: CALL_OW 251
24302: PUSH
24303: LD_INT 1
24305: PLUS
24306: PUSH
24307: EMPTY
24308: LIST
24309: LIST
24310: PUSH
24311: LD_VAR 0 1
24315: PPUSH
24316: CALL_OW 250
24320: PUSH
24321: LD_INT 10
24323: PLUS
24324: PUSH
24325: LD_VAR 0 1
24329: PPUSH
24330: CALL_OW 251
24334: PUSH
24335: LD_INT 1
24337: MINUS
24338: PUSH
24339: EMPTY
24340: LIST
24341: LIST
24342: PUSH
24343: LD_VAR 0 1
24347: PPUSH
24348: CALL_OW 250
24352: PUSH
24353: LD_INT 9
24355: PLUS
24356: PUSH
24357: LD_VAR 0 1
24361: PPUSH
24362: CALL_OW 251
24366: PUSH
24367: LD_INT 3
24369: MINUS
24370: PUSH
24371: EMPTY
24372: LIST
24373: LIST
24374: PUSH
24375: LD_VAR 0 1
24379: PPUSH
24380: CALL_OW 250
24384: PUSH
24385: LD_INT 8
24387: PLUS
24388: PUSH
24389: LD_VAR 0 1
24393: PPUSH
24394: CALL_OW 251
24398: PUSH
24399: LD_INT 5
24401: MINUS
24402: PUSH
24403: EMPTY
24404: LIST
24405: LIST
24406: PUSH
24407: LD_VAR 0 1
24411: PPUSH
24412: CALL_OW 250
24416: PUSH
24417: LD_INT 14
24419: PLUS
24420: PUSH
24421: LD_VAR 0 1
24425: PPUSH
24426: CALL_OW 251
24430: PUSH
24431: LD_INT 4
24433: PLUS
24434: PUSH
24435: EMPTY
24436: LIST
24437: LIST
24438: PUSH
24439: LD_VAR 0 1
24443: PPUSH
24444: CALL_OW 250
24448: PUSH
24449: LD_INT 13
24451: PLUS
24452: PUSH
24453: LD_VAR 0 1
24457: PPUSH
24458: CALL_OW 251
24462: PUSH
24463: LD_INT 2
24465: PLUS
24466: PUSH
24467: EMPTY
24468: LIST
24469: LIST
24470: PUSH
24471: LD_VAR 0 1
24475: PPUSH
24476: CALL_OW 250
24480: PUSH
24481: LD_INT 12
24483: PLUS
24484: PUSH
24485: LD_VAR 0 1
24489: PPUSH
24490: CALL_OW 251
24494: PUSH
24495: LD_INT 0
24497: PLUS
24498: PUSH
24499: EMPTY
24500: LIST
24501: LIST
24502: PUSH
24503: LD_VAR 0 1
24507: PPUSH
24508: CALL_OW 250
24512: PUSH
24513: LD_INT 11
24515: PLUS
24516: PUSH
24517: LD_VAR 0 1
24521: PPUSH
24522: CALL_OW 251
24526: PUSH
24527: LD_INT 2
24529: MINUS
24530: PUSH
24531: EMPTY
24532: LIST
24533: LIST
24534: PUSH
24535: LD_VAR 0 1
24539: PPUSH
24540: CALL_OW 250
24544: PUSH
24545: LD_INT 10
24547: PLUS
24548: PUSH
24549: LD_VAR 0 1
24553: PPUSH
24554: CALL_OW 251
24558: PUSH
24559: LD_INT 4
24561: MINUS
24562: PUSH
24563: EMPTY
24564: LIST
24565: LIST
24566: PUSH
24567: LD_VAR 0 1
24571: PPUSH
24572: CALL_OW 250
24576: PUSH
24577: LD_INT 16
24579: PLUS
24580: PUSH
24581: LD_VAR 0 1
24585: PPUSH
24586: CALL_OW 251
24590: PUSH
24591: LD_INT 5
24593: PLUS
24594: PUSH
24595: EMPTY
24596: LIST
24597: LIST
24598: PUSH
24599: LD_VAR 0 1
24603: PPUSH
24604: CALL_OW 250
24608: PUSH
24609: LD_INT 15
24611: PLUS
24612: PUSH
24613: LD_VAR 0 1
24617: PPUSH
24618: CALL_OW 251
24622: PUSH
24623: LD_INT 3
24625: PLUS
24626: PUSH
24627: EMPTY
24628: LIST
24629: LIST
24630: PUSH
24631: LD_VAR 0 1
24635: PPUSH
24636: CALL_OW 250
24640: PUSH
24641: LD_INT 14
24643: PLUS
24644: PUSH
24645: LD_VAR 0 1
24649: PPUSH
24650: CALL_OW 251
24654: PUSH
24655: LD_INT 1
24657: PLUS
24658: PUSH
24659: EMPTY
24660: LIST
24661: LIST
24662: PUSH
24663: LD_VAR 0 1
24667: PPUSH
24668: CALL_OW 250
24672: PUSH
24673: LD_INT 13
24675: PLUS
24676: PUSH
24677: LD_VAR 0 1
24681: PPUSH
24682: CALL_OW 251
24686: PUSH
24687: LD_INT 1
24689: MINUS
24690: PUSH
24691: EMPTY
24692: LIST
24693: LIST
24694: PUSH
24695: LD_VAR 0 1
24699: PPUSH
24700: CALL_OW 250
24704: PUSH
24705: LD_INT 12
24707: PLUS
24708: PUSH
24709: LD_VAR 0 1
24713: PPUSH
24714: CALL_OW 251
24718: PUSH
24719: LD_INT 3
24721: MINUS
24722: PUSH
24723: EMPTY
24724: LIST
24725: LIST
24726: PUSH
24727: LD_VAR 0 1
24731: PPUSH
24732: CALL_OW 250
24736: PUSH
24737: LD_INT 11
24739: PLUS
24740: PUSH
24741: LD_VAR 0 1
24745: PPUSH
24746: CALL_OW 251
24750: PUSH
24751: LD_INT 5
24753: MINUS
24754: PUSH
24755: EMPTY
24756: LIST
24757: LIST
24758: PUSH
24759: LD_VAR 0 1
24763: PPUSH
24764: CALL_OW 250
24768: PUSH
24769: LD_INT 17
24771: PLUS
24772: PUSH
24773: LD_VAR 0 1
24777: PPUSH
24778: CALL_OW 251
24782: PUSH
24783: LD_INT 4
24785: PLUS
24786: PUSH
24787: EMPTY
24788: LIST
24789: LIST
24790: PUSH
24791: LD_VAR 0 1
24795: PPUSH
24796: CALL_OW 250
24800: PUSH
24801: LD_INT 16
24803: PLUS
24804: PUSH
24805: LD_VAR 0 1
24809: PPUSH
24810: CALL_OW 251
24814: PUSH
24815: LD_INT 2
24817: PLUS
24818: PUSH
24819: EMPTY
24820: LIST
24821: LIST
24822: PUSH
24823: LD_VAR 0 1
24827: PPUSH
24828: CALL_OW 250
24832: PUSH
24833: LD_INT 15
24835: PLUS
24836: PUSH
24837: LD_VAR 0 1
24841: PPUSH
24842: CALL_OW 251
24846: PUSH
24847: LD_INT 0
24849: PLUS
24850: PUSH
24851: EMPTY
24852: LIST
24853: LIST
24854: PUSH
24855: LD_VAR 0 1
24859: PPUSH
24860: CALL_OW 250
24864: PUSH
24865: LD_INT 14
24867: PLUS
24868: PUSH
24869: LD_VAR 0 1
24873: PPUSH
24874: CALL_OW 251
24878: PUSH
24879: LD_INT 2
24881: MINUS
24882: PUSH
24883: EMPTY
24884: LIST
24885: LIST
24886: PUSH
24887: LD_VAR 0 1
24891: PPUSH
24892: CALL_OW 250
24896: PUSH
24897: LD_INT 13
24899: PLUS
24900: PUSH
24901: LD_VAR 0 1
24905: PPUSH
24906: CALL_OW 251
24910: PUSH
24911: LD_INT 4
24913: MINUS
24914: PUSH
24915: EMPTY
24916: LIST
24917: LIST
24918: PUSH
24919: EMPTY
24920: LIST
24921: LIST
24922: LIST
24923: LIST
24924: LIST
24925: LIST
24926: LIST
24927: LIST
24928: LIST
24929: LIST
24930: LIST
24931: LIST
24932: LIST
24933: LIST
24934: LIST
24935: LIST
24936: LIST
24937: LIST
24938: LIST
24939: LIST
24940: LIST
24941: LIST
24942: LIST
24943: LIST
24944: LIST
24945: LIST
24946: LIST
24947: PUSH
24948: EMPTY
24949: LIST
24950: LIST
24951: LIST
24952: ST_TO_ADDR
// end ; 2 :
24953: GO 29144
24955: LD_INT 2
24957: DOUBLE
24958: EQUAL
24959: IFTRUE 24963
24961: GO 26002
24963: POP
// begin ContaminationCutsceneHexes = [ [ [ GetX ( lab ) + 4 , GetY ( lab ) + 3 ] , [ GetX ( lab ) + 3 , GetY ( lab ) + 4 ] , [ GetX ( lab ) + 4 , GetY ( lab ) + 2 ] ] , [ GetX ( lab ) + 6 , GetY ( lab ) + 6 ] , [ [ GetX ( lab ) + 7 , GetY ( lab ) + 11 ] , [ GetX ( lab ) + 8 , GetY ( lab ) + 10 ] , [ GetX ( lab ) + 9 , GetY ( lab ) + 9 ] , [ GetX ( lab ) + 10 , GetY ( lab ) + 8 ] , [ GetX ( lab ) + 11 , GetY ( lab ) + 7 ] , [ GetX ( lab ) + 8 , GetY ( lab ) + 13 ] , [ GetX ( lab ) + 9 , GetY ( lab ) + 12 ] , [ GetX ( lab ) + 10 , GetY ( lab ) + 11 ] , [ GetX ( lab ) + 11 , GetY ( lab ) + 10 ] , [ GetX ( lab ) + 12 , GetY ( lab ) + 9 ] , [ GetX ( lab ) + 13 , GetY ( lab ) + 8 ] , [ GetX ( lab ) + 10 , GetY ( lab ) + 14 ] , [ GetX ( lab ) + 11 , GetY ( lab ) + 13 ] , [ GetX ( lab ) + 12 , GetY ( lab ) + 12 ] , [ GetX ( lab ) + 13 , GetY ( lab ) + 11 ] , [ GetX ( lab ) + 14 , GetY ( lab ) + 10 ] , [ GetX ( lab ) + 11 , GetY ( lab ) + 16 ] , [ GetX ( lab ) + 12 , GetY ( lab ) + 15 ] , [ GetX ( lab ) + 13 , GetY ( lab ) + 14 ] , [ GetX ( lab ) + 14 , GetY ( lab ) + 13 ] , [ GetX ( lab ) + 15 , GetY ( lab ) + 12 ] , [ GetX ( lab ) + 16 , GetY ( lab ) + 11 ] , [ GetX ( lab ) + 13 , GetY ( lab ) + 17 ] , [ GetX ( lab ) + 14 , GetY ( lab ) + 16 ] , [ GetX ( lab ) + 15 , GetY ( lab ) + 15 ] , [ GetX ( lab ) + 16 , GetY ( lab ) + 14 ] , [ GetX ( lab ) + 17 , GetY ( lab ) + 13 ] ] ] ;
24964: LD_ADDR_EXP 54
24968: PUSH
24969: LD_VAR 0 1
24973: PPUSH
24974: CALL_OW 250
24978: PUSH
24979: LD_INT 4
24981: PLUS
24982: PUSH
24983: LD_VAR 0 1
24987: PPUSH
24988: CALL_OW 251
24992: PUSH
24993: LD_INT 3
24995: PLUS
24996: PUSH
24997: EMPTY
24998: LIST
24999: LIST
25000: PUSH
25001: LD_VAR 0 1
25005: PPUSH
25006: CALL_OW 250
25010: PUSH
25011: LD_INT 3
25013: PLUS
25014: PUSH
25015: LD_VAR 0 1
25019: PPUSH
25020: CALL_OW 251
25024: PUSH
25025: LD_INT 4
25027: PLUS
25028: PUSH
25029: EMPTY
25030: LIST
25031: LIST
25032: PUSH
25033: LD_VAR 0 1
25037: PPUSH
25038: CALL_OW 250
25042: PUSH
25043: LD_INT 4
25045: PLUS
25046: PUSH
25047: LD_VAR 0 1
25051: PPUSH
25052: CALL_OW 251
25056: PUSH
25057: LD_INT 2
25059: PLUS
25060: PUSH
25061: EMPTY
25062: LIST
25063: LIST
25064: PUSH
25065: EMPTY
25066: LIST
25067: LIST
25068: LIST
25069: PUSH
25070: LD_VAR 0 1
25074: PPUSH
25075: CALL_OW 250
25079: PUSH
25080: LD_INT 6
25082: PLUS
25083: PUSH
25084: LD_VAR 0 1
25088: PPUSH
25089: CALL_OW 251
25093: PUSH
25094: LD_INT 6
25096: PLUS
25097: PUSH
25098: EMPTY
25099: LIST
25100: LIST
25101: PUSH
25102: LD_VAR 0 1
25106: PPUSH
25107: CALL_OW 250
25111: PUSH
25112: LD_INT 7
25114: PLUS
25115: PUSH
25116: LD_VAR 0 1
25120: PPUSH
25121: CALL_OW 251
25125: PUSH
25126: LD_INT 11
25128: PLUS
25129: PUSH
25130: EMPTY
25131: LIST
25132: LIST
25133: PUSH
25134: LD_VAR 0 1
25138: PPUSH
25139: CALL_OW 250
25143: PUSH
25144: LD_INT 8
25146: PLUS
25147: PUSH
25148: LD_VAR 0 1
25152: PPUSH
25153: CALL_OW 251
25157: PUSH
25158: LD_INT 10
25160: PLUS
25161: PUSH
25162: EMPTY
25163: LIST
25164: LIST
25165: PUSH
25166: LD_VAR 0 1
25170: PPUSH
25171: CALL_OW 250
25175: PUSH
25176: LD_INT 9
25178: PLUS
25179: PUSH
25180: LD_VAR 0 1
25184: PPUSH
25185: CALL_OW 251
25189: PUSH
25190: LD_INT 9
25192: PLUS
25193: PUSH
25194: EMPTY
25195: LIST
25196: LIST
25197: PUSH
25198: LD_VAR 0 1
25202: PPUSH
25203: CALL_OW 250
25207: PUSH
25208: LD_INT 10
25210: PLUS
25211: PUSH
25212: LD_VAR 0 1
25216: PPUSH
25217: CALL_OW 251
25221: PUSH
25222: LD_INT 8
25224: PLUS
25225: PUSH
25226: EMPTY
25227: LIST
25228: LIST
25229: PUSH
25230: LD_VAR 0 1
25234: PPUSH
25235: CALL_OW 250
25239: PUSH
25240: LD_INT 11
25242: PLUS
25243: PUSH
25244: LD_VAR 0 1
25248: PPUSH
25249: CALL_OW 251
25253: PUSH
25254: LD_INT 7
25256: PLUS
25257: PUSH
25258: EMPTY
25259: LIST
25260: LIST
25261: PUSH
25262: LD_VAR 0 1
25266: PPUSH
25267: CALL_OW 250
25271: PUSH
25272: LD_INT 8
25274: PLUS
25275: PUSH
25276: LD_VAR 0 1
25280: PPUSH
25281: CALL_OW 251
25285: PUSH
25286: LD_INT 13
25288: PLUS
25289: PUSH
25290: EMPTY
25291: LIST
25292: LIST
25293: PUSH
25294: LD_VAR 0 1
25298: PPUSH
25299: CALL_OW 250
25303: PUSH
25304: LD_INT 9
25306: PLUS
25307: PUSH
25308: LD_VAR 0 1
25312: PPUSH
25313: CALL_OW 251
25317: PUSH
25318: LD_INT 12
25320: PLUS
25321: PUSH
25322: EMPTY
25323: LIST
25324: LIST
25325: PUSH
25326: LD_VAR 0 1
25330: PPUSH
25331: CALL_OW 250
25335: PUSH
25336: LD_INT 10
25338: PLUS
25339: PUSH
25340: LD_VAR 0 1
25344: PPUSH
25345: CALL_OW 251
25349: PUSH
25350: LD_INT 11
25352: PLUS
25353: PUSH
25354: EMPTY
25355: LIST
25356: LIST
25357: PUSH
25358: LD_VAR 0 1
25362: PPUSH
25363: CALL_OW 250
25367: PUSH
25368: LD_INT 11
25370: PLUS
25371: PUSH
25372: LD_VAR 0 1
25376: PPUSH
25377: CALL_OW 251
25381: PUSH
25382: LD_INT 10
25384: PLUS
25385: PUSH
25386: EMPTY
25387: LIST
25388: LIST
25389: PUSH
25390: LD_VAR 0 1
25394: PPUSH
25395: CALL_OW 250
25399: PUSH
25400: LD_INT 12
25402: PLUS
25403: PUSH
25404: LD_VAR 0 1
25408: PPUSH
25409: CALL_OW 251
25413: PUSH
25414: LD_INT 9
25416: PLUS
25417: PUSH
25418: EMPTY
25419: LIST
25420: LIST
25421: PUSH
25422: LD_VAR 0 1
25426: PPUSH
25427: CALL_OW 250
25431: PUSH
25432: LD_INT 13
25434: PLUS
25435: PUSH
25436: LD_VAR 0 1
25440: PPUSH
25441: CALL_OW 251
25445: PUSH
25446: LD_INT 8
25448: PLUS
25449: PUSH
25450: EMPTY
25451: LIST
25452: LIST
25453: PUSH
25454: LD_VAR 0 1
25458: PPUSH
25459: CALL_OW 250
25463: PUSH
25464: LD_INT 10
25466: PLUS
25467: PUSH
25468: LD_VAR 0 1
25472: PPUSH
25473: CALL_OW 251
25477: PUSH
25478: LD_INT 14
25480: PLUS
25481: PUSH
25482: EMPTY
25483: LIST
25484: LIST
25485: PUSH
25486: LD_VAR 0 1
25490: PPUSH
25491: CALL_OW 250
25495: PUSH
25496: LD_INT 11
25498: PLUS
25499: PUSH
25500: LD_VAR 0 1
25504: PPUSH
25505: CALL_OW 251
25509: PUSH
25510: LD_INT 13
25512: PLUS
25513: PUSH
25514: EMPTY
25515: LIST
25516: LIST
25517: PUSH
25518: LD_VAR 0 1
25522: PPUSH
25523: CALL_OW 250
25527: PUSH
25528: LD_INT 12
25530: PLUS
25531: PUSH
25532: LD_VAR 0 1
25536: PPUSH
25537: CALL_OW 251
25541: PUSH
25542: LD_INT 12
25544: PLUS
25545: PUSH
25546: EMPTY
25547: LIST
25548: LIST
25549: PUSH
25550: LD_VAR 0 1
25554: PPUSH
25555: CALL_OW 250
25559: PUSH
25560: LD_INT 13
25562: PLUS
25563: PUSH
25564: LD_VAR 0 1
25568: PPUSH
25569: CALL_OW 251
25573: PUSH
25574: LD_INT 11
25576: PLUS
25577: PUSH
25578: EMPTY
25579: LIST
25580: LIST
25581: PUSH
25582: LD_VAR 0 1
25586: PPUSH
25587: CALL_OW 250
25591: PUSH
25592: LD_INT 14
25594: PLUS
25595: PUSH
25596: LD_VAR 0 1
25600: PPUSH
25601: CALL_OW 251
25605: PUSH
25606: LD_INT 10
25608: PLUS
25609: PUSH
25610: EMPTY
25611: LIST
25612: LIST
25613: PUSH
25614: LD_VAR 0 1
25618: PPUSH
25619: CALL_OW 250
25623: PUSH
25624: LD_INT 11
25626: PLUS
25627: PUSH
25628: LD_VAR 0 1
25632: PPUSH
25633: CALL_OW 251
25637: PUSH
25638: LD_INT 16
25640: PLUS
25641: PUSH
25642: EMPTY
25643: LIST
25644: LIST
25645: PUSH
25646: LD_VAR 0 1
25650: PPUSH
25651: CALL_OW 250
25655: PUSH
25656: LD_INT 12
25658: PLUS
25659: PUSH
25660: LD_VAR 0 1
25664: PPUSH
25665: CALL_OW 251
25669: PUSH
25670: LD_INT 15
25672: PLUS
25673: PUSH
25674: EMPTY
25675: LIST
25676: LIST
25677: PUSH
25678: LD_VAR 0 1
25682: PPUSH
25683: CALL_OW 250
25687: PUSH
25688: LD_INT 13
25690: PLUS
25691: PUSH
25692: LD_VAR 0 1
25696: PPUSH
25697: CALL_OW 251
25701: PUSH
25702: LD_INT 14
25704: PLUS
25705: PUSH
25706: EMPTY
25707: LIST
25708: LIST
25709: PUSH
25710: LD_VAR 0 1
25714: PPUSH
25715: CALL_OW 250
25719: PUSH
25720: LD_INT 14
25722: PLUS
25723: PUSH
25724: LD_VAR 0 1
25728: PPUSH
25729: CALL_OW 251
25733: PUSH
25734: LD_INT 13
25736: PLUS
25737: PUSH
25738: EMPTY
25739: LIST
25740: LIST
25741: PUSH
25742: LD_VAR 0 1
25746: PPUSH
25747: CALL_OW 250
25751: PUSH
25752: LD_INT 15
25754: PLUS
25755: PUSH
25756: LD_VAR 0 1
25760: PPUSH
25761: CALL_OW 251
25765: PUSH
25766: LD_INT 12
25768: PLUS
25769: PUSH
25770: EMPTY
25771: LIST
25772: LIST
25773: PUSH
25774: LD_VAR 0 1
25778: PPUSH
25779: CALL_OW 250
25783: PUSH
25784: LD_INT 16
25786: PLUS
25787: PUSH
25788: LD_VAR 0 1
25792: PPUSH
25793: CALL_OW 251
25797: PUSH
25798: LD_INT 11
25800: PLUS
25801: PUSH
25802: EMPTY
25803: LIST
25804: LIST
25805: PUSH
25806: LD_VAR 0 1
25810: PPUSH
25811: CALL_OW 250
25815: PUSH
25816: LD_INT 13
25818: PLUS
25819: PUSH
25820: LD_VAR 0 1
25824: PPUSH
25825: CALL_OW 251
25829: PUSH
25830: LD_INT 17
25832: PLUS
25833: PUSH
25834: EMPTY
25835: LIST
25836: LIST
25837: PUSH
25838: LD_VAR 0 1
25842: PPUSH
25843: CALL_OW 250
25847: PUSH
25848: LD_INT 14
25850: PLUS
25851: PUSH
25852: LD_VAR 0 1
25856: PPUSH
25857: CALL_OW 251
25861: PUSH
25862: LD_INT 16
25864: PLUS
25865: PUSH
25866: EMPTY
25867: LIST
25868: LIST
25869: PUSH
25870: LD_VAR 0 1
25874: PPUSH
25875: CALL_OW 250
25879: PUSH
25880: LD_INT 15
25882: PLUS
25883: PUSH
25884: LD_VAR 0 1
25888: PPUSH
25889: CALL_OW 251
25893: PUSH
25894: LD_INT 15
25896: PLUS
25897: PUSH
25898: EMPTY
25899: LIST
25900: LIST
25901: PUSH
25902: LD_VAR 0 1
25906: PPUSH
25907: CALL_OW 250
25911: PUSH
25912: LD_INT 16
25914: PLUS
25915: PUSH
25916: LD_VAR 0 1
25920: PPUSH
25921: CALL_OW 251
25925: PUSH
25926: LD_INT 14
25928: PLUS
25929: PUSH
25930: EMPTY
25931: LIST
25932: LIST
25933: PUSH
25934: LD_VAR 0 1
25938: PPUSH
25939: CALL_OW 250
25943: PUSH
25944: LD_INT 17
25946: PLUS
25947: PUSH
25948: LD_VAR 0 1
25952: PPUSH
25953: CALL_OW 251
25957: PUSH
25958: LD_INT 13
25960: PLUS
25961: PUSH
25962: EMPTY
25963: LIST
25964: LIST
25965: PUSH
25966: EMPTY
25967: LIST
25968: LIST
25969: LIST
25970: LIST
25971: LIST
25972: LIST
25973: LIST
25974: LIST
25975: LIST
25976: LIST
25977: LIST
25978: LIST
25979: LIST
25980: LIST
25981: LIST
25982: LIST
25983: LIST
25984: LIST
25985: LIST
25986: LIST
25987: LIST
25988: LIST
25989: LIST
25990: LIST
25991: LIST
25992: LIST
25993: LIST
25994: PUSH
25995: EMPTY
25996: LIST
25997: LIST
25998: LIST
25999: ST_TO_ADDR
// end ; 3 :
26000: GO 29144
26002: LD_INT 3
26004: DOUBLE
26005: EQUAL
26006: IFTRUE 26010
26008: GO 27049
26010: POP
// begin ContaminationCutsceneHexes = [ [ [ GetX ( lab ) + 1 , GetY ( lab ) + 4 ] , [ GetX ( lab ) - 1 , GetY ( lab ) + 3 ] , [ GetX ( lab ) + 2 , GetY ( lab ) + 4 ] ] , [ GetX ( lab ) + 0 , GetY ( lab ) + 6 ] , [ [ GetX ( lab ) - 4 , GetY ( lab ) + 7 ] , [ GetX ( lab ) - 2 , GetY ( lab ) + 8 ] , [ GetX ( lab ) + 0 , GetY ( lab ) + 9 ] , [ GetX ( lab ) + 2 , GetY ( lab ) + 10 ] , [ GetX ( lab ) + 4 , GetY ( lab ) + 11 ] , [ GetX ( lab ) - 5 , GetY ( lab ) + 8 ] , [ GetX ( lab ) - 3 , GetY ( lab ) + 9 ] , [ GetX ( lab ) - 1 , GetY ( lab ) + 10 ] , [ GetX ( lab ) + 1 , GetY ( lab ) + 11 ] , [ GetX ( lab ) + 3 , GetY ( lab ) + 12 ] , [ GetX ( lab ) + 5 , GetY ( lab ) + 13 ] , [ GetX ( lab ) - 4 , GetY ( lab ) + 10 ] , [ GetX ( lab ) - 2 , GetY ( lab ) + 11 ] , [ GetX ( lab ) + 0 , GetY ( lab ) + 12 ] , [ GetX ( lab ) + 2 , GetY ( lab ) + 13 ] , [ GetX ( lab ) + 4 , GetY ( lab ) + 14 ] , [ GetX ( lab ) - 5 , GetY ( lab ) + 11 ] , [ GetX ( lab ) - 3 , GetY ( lab ) + 12 ] , [ GetX ( lab ) - 1 , GetY ( lab ) + 13 ] , [ GetX ( lab ) + 1 , GetY ( lab ) + 14 ] , [ GetX ( lab ) + 3 , GetY ( lab ) + 15 ] , [ GetX ( lab ) + 5 , GetY ( lab ) + 16 ] , [ GetX ( lab ) - 4 , GetY ( lab ) + 13 ] , [ GetX ( lab ) - 2 , GetY ( lab ) + 14 ] , [ GetX ( lab ) + 0 , GetY ( lab ) + 15 ] , [ GetX ( lab ) + 2 , GetY ( lab ) + 16 ] , [ GetX ( lab ) + 4 , GetY ( lab ) + 17 ] ] ] ;
26011: LD_ADDR_EXP 54
26015: PUSH
26016: LD_VAR 0 1
26020: PPUSH
26021: CALL_OW 250
26025: PUSH
26026: LD_INT 1
26028: PLUS
26029: PUSH
26030: LD_VAR 0 1
26034: PPUSH
26035: CALL_OW 251
26039: PUSH
26040: LD_INT 4
26042: PLUS
26043: PUSH
26044: EMPTY
26045: LIST
26046: LIST
26047: PUSH
26048: LD_VAR 0 1
26052: PPUSH
26053: CALL_OW 250
26057: PUSH
26058: LD_INT 1
26060: MINUS
26061: PUSH
26062: LD_VAR 0 1
26066: PPUSH
26067: CALL_OW 251
26071: PUSH
26072: LD_INT 3
26074: PLUS
26075: PUSH
26076: EMPTY
26077: LIST
26078: LIST
26079: PUSH
26080: LD_VAR 0 1
26084: PPUSH
26085: CALL_OW 250
26089: PUSH
26090: LD_INT 2
26092: PLUS
26093: PUSH
26094: LD_VAR 0 1
26098: PPUSH
26099: CALL_OW 251
26103: PUSH
26104: LD_INT 4
26106: PLUS
26107: PUSH
26108: EMPTY
26109: LIST
26110: LIST
26111: PUSH
26112: EMPTY
26113: LIST
26114: LIST
26115: LIST
26116: PUSH
26117: LD_VAR 0 1
26121: PPUSH
26122: CALL_OW 250
26126: PUSH
26127: LD_INT 0
26129: PLUS
26130: PUSH
26131: LD_VAR 0 1
26135: PPUSH
26136: CALL_OW 251
26140: PUSH
26141: LD_INT 6
26143: PLUS
26144: PUSH
26145: EMPTY
26146: LIST
26147: LIST
26148: PUSH
26149: LD_VAR 0 1
26153: PPUSH
26154: CALL_OW 250
26158: PUSH
26159: LD_INT 4
26161: MINUS
26162: PUSH
26163: LD_VAR 0 1
26167: PPUSH
26168: CALL_OW 251
26172: PUSH
26173: LD_INT 7
26175: PLUS
26176: PUSH
26177: EMPTY
26178: LIST
26179: LIST
26180: PUSH
26181: LD_VAR 0 1
26185: PPUSH
26186: CALL_OW 250
26190: PUSH
26191: LD_INT 2
26193: MINUS
26194: PUSH
26195: LD_VAR 0 1
26199: PPUSH
26200: CALL_OW 251
26204: PUSH
26205: LD_INT 8
26207: PLUS
26208: PUSH
26209: EMPTY
26210: LIST
26211: LIST
26212: PUSH
26213: LD_VAR 0 1
26217: PPUSH
26218: CALL_OW 250
26222: PUSH
26223: LD_INT 0
26225: PLUS
26226: PUSH
26227: LD_VAR 0 1
26231: PPUSH
26232: CALL_OW 251
26236: PUSH
26237: LD_INT 9
26239: PLUS
26240: PUSH
26241: EMPTY
26242: LIST
26243: LIST
26244: PUSH
26245: LD_VAR 0 1
26249: PPUSH
26250: CALL_OW 250
26254: PUSH
26255: LD_INT 2
26257: PLUS
26258: PUSH
26259: LD_VAR 0 1
26263: PPUSH
26264: CALL_OW 251
26268: PUSH
26269: LD_INT 10
26271: PLUS
26272: PUSH
26273: EMPTY
26274: LIST
26275: LIST
26276: PUSH
26277: LD_VAR 0 1
26281: PPUSH
26282: CALL_OW 250
26286: PUSH
26287: LD_INT 4
26289: PLUS
26290: PUSH
26291: LD_VAR 0 1
26295: PPUSH
26296: CALL_OW 251
26300: PUSH
26301: LD_INT 11
26303: PLUS
26304: PUSH
26305: EMPTY
26306: LIST
26307: LIST
26308: PUSH
26309: LD_VAR 0 1
26313: PPUSH
26314: CALL_OW 250
26318: PUSH
26319: LD_INT 5
26321: MINUS
26322: PUSH
26323: LD_VAR 0 1
26327: PPUSH
26328: CALL_OW 251
26332: PUSH
26333: LD_INT 8
26335: PLUS
26336: PUSH
26337: EMPTY
26338: LIST
26339: LIST
26340: PUSH
26341: LD_VAR 0 1
26345: PPUSH
26346: CALL_OW 250
26350: PUSH
26351: LD_INT 3
26353: MINUS
26354: PUSH
26355: LD_VAR 0 1
26359: PPUSH
26360: CALL_OW 251
26364: PUSH
26365: LD_INT 9
26367: PLUS
26368: PUSH
26369: EMPTY
26370: LIST
26371: LIST
26372: PUSH
26373: LD_VAR 0 1
26377: PPUSH
26378: CALL_OW 250
26382: PUSH
26383: LD_INT 1
26385: MINUS
26386: PUSH
26387: LD_VAR 0 1
26391: PPUSH
26392: CALL_OW 251
26396: PUSH
26397: LD_INT 10
26399: PLUS
26400: PUSH
26401: EMPTY
26402: LIST
26403: LIST
26404: PUSH
26405: LD_VAR 0 1
26409: PPUSH
26410: CALL_OW 250
26414: PUSH
26415: LD_INT 1
26417: PLUS
26418: PUSH
26419: LD_VAR 0 1
26423: PPUSH
26424: CALL_OW 251
26428: PUSH
26429: LD_INT 11
26431: PLUS
26432: PUSH
26433: EMPTY
26434: LIST
26435: LIST
26436: PUSH
26437: LD_VAR 0 1
26441: PPUSH
26442: CALL_OW 250
26446: PUSH
26447: LD_INT 3
26449: PLUS
26450: PUSH
26451: LD_VAR 0 1
26455: PPUSH
26456: CALL_OW 251
26460: PUSH
26461: LD_INT 12
26463: PLUS
26464: PUSH
26465: EMPTY
26466: LIST
26467: LIST
26468: PUSH
26469: LD_VAR 0 1
26473: PPUSH
26474: CALL_OW 250
26478: PUSH
26479: LD_INT 5
26481: PLUS
26482: PUSH
26483: LD_VAR 0 1
26487: PPUSH
26488: CALL_OW 251
26492: PUSH
26493: LD_INT 13
26495: PLUS
26496: PUSH
26497: EMPTY
26498: LIST
26499: LIST
26500: PUSH
26501: LD_VAR 0 1
26505: PPUSH
26506: CALL_OW 250
26510: PUSH
26511: LD_INT 4
26513: MINUS
26514: PUSH
26515: LD_VAR 0 1
26519: PPUSH
26520: CALL_OW 251
26524: PUSH
26525: LD_INT 10
26527: PLUS
26528: PUSH
26529: EMPTY
26530: LIST
26531: LIST
26532: PUSH
26533: LD_VAR 0 1
26537: PPUSH
26538: CALL_OW 250
26542: PUSH
26543: LD_INT 2
26545: MINUS
26546: PUSH
26547: LD_VAR 0 1
26551: PPUSH
26552: CALL_OW 251
26556: PUSH
26557: LD_INT 11
26559: PLUS
26560: PUSH
26561: EMPTY
26562: LIST
26563: LIST
26564: PUSH
26565: LD_VAR 0 1
26569: PPUSH
26570: CALL_OW 250
26574: PUSH
26575: LD_INT 0
26577: PLUS
26578: PUSH
26579: LD_VAR 0 1
26583: PPUSH
26584: CALL_OW 251
26588: PUSH
26589: LD_INT 12
26591: PLUS
26592: PUSH
26593: EMPTY
26594: LIST
26595: LIST
26596: PUSH
26597: LD_VAR 0 1
26601: PPUSH
26602: CALL_OW 250
26606: PUSH
26607: LD_INT 2
26609: PLUS
26610: PUSH
26611: LD_VAR 0 1
26615: PPUSH
26616: CALL_OW 251
26620: PUSH
26621: LD_INT 13
26623: PLUS
26624: PUSH
26625: EMPTY
26626: LIST
26627: LIST
26628: PUSH
26629: LD_VAR 0 1
26633: PPUSH
26634: CALL_OW 250
26638: PUSH
26639: LD_INT 4
26641: PLUS
26642: PUSH
26643: LD_VAR 0 1
26647: PPUSH
26648: CALL_OW 251
26652: PUSH
26653: LD_INT 14
26655: PLUS
26656: PUSH
26657: EMPTY
26658: LIST
26659: LIST
26660: PUSH
26661: LD_VAR 0 1
26665: PPUSH
26666: CALL_OW 250
26670: PUSH
26671: LD_INT 5
26673: MINUS
26674: PUSH
26675: LD_VAR 0 1
26679: PPUSH
26680: CALL_OW 251
26684: PUSH
26685: LD_INT 11
26687: PLUS
26688: PUSH
26689: EMPTY
26690: LIST
26691: LIST
26692: PUSH
26693: LD_VAR 0 1
26697: PPUSH
26698: CALL_OW 250
26702: PUSH
26703: LD_INT 3
26705: MINUS
26706: PUSH
26707: LD_VAR 0 1
26711: PPUSH
26712: CALL_OW 251
26716: PUSH
26717: LD_INT 12
26719: PLUS
26720: PUSH
26721: EMPTY
26722: LIST
26723: LIST
26724: PUSH
26725: LD_VAR 0 1
26729: PPUSH
26730: CALL_OW 250
26734: PUSH
26735: LD_INT 1
26737: MINUS
26738: PUSH
26739: LD_VAR 0 1
26743: PPUSH
26744: CALL_OW 251
26748: PUSH
26749: LD_INT 13
26751: PLUS
26752: PUSH
26753: EMPTY
26754: LIST
26755: LIST
26756: PUSH
26757: LD_VAR 0 1
26761: PPUSH
26762: CALL_OW 250
26766: PUSH
26767: LD_INT 1
26769: PLUS
26770: PUSH
26771: LD_VAR 0 1
26775: PPUSH
26776: CALL_OW 251
26780: PUSH
26781: LD_INT 14
26783: PLUS
26784: PUSH
26785: EMPTY
26786: LIST
26787: LIST
26788: PUSH
26789: LD_VAR 0 1
26793: PPUSH
26794: CALL_OW 250
26798: PUSH
26799: LD_INT 3
26801: PLUS
26802: PUSH
26803: LD_VAR 0 1
26807: PPUSH
26808: CALL_OW 251
26812: PUSH
26813: LD_INT 15
26815: PLUS
26816: PUSH
26817: EMPTY
26818: LIST
26819: LIST
26820: PUSH
26821: LD_VAR 0 1
26825: PPUSH
26826: CALL_OW 250
26830: PUSH
26831: LD_INT 5
26833: PLUS
26834: PUSH
26835: LD_VAR 0 1
26839: PPUSH
26840: CALL_OW 251
26844: PUSH
26845: LD_INT 16
26847: PLUS
26848: PUSH
26849: EMPTY
26850: LIST
26851: LIST
26852: PUSH
26853: LD_VAR 0 1
26857: PPUSH
26858: CALL_OW 250
26862: PUSH
26863: LD_INT 4
26865: MINUS
26866: PUSH
26867: LD_VAR 0 1
26871: PPUSH
26872: CALL_OW 251
26876: PUSH
26877: LD_INT 13
26879: PLUS
26880: PUSH
26881: EMPTY
26882: LIST
26883: LIST
26884: PUSH
26885: LD_VAR 0 1
26889: PPUSH
26890: CALL_OW 250
26894: PUSH
26895: LD_INT 2
26897: MINUS
26898: PUSH
26899: LD_VAR 0 1
26903: PPUSH
26904: CALL_OW 251
26908: PUSH
26909: LD_INT 14
26911: PLUS
26912: PUSH
26913: EMPTY
26914: LIST
26915: LIST
26916: PUSH
26917: LD_VAR 0 1
26921: PPUSH
26922: CALL_OW 250
26926: PUSH
26927: LD_INT 0
26929: PLUS
26930: PUSH
26931: LD_VAR 0 1
26935: PPUSH
26936: CALL_OW 251
26940: PUSH
26941: LD_INT 15
26943: PLUS
26944: PUSH
26945: EMPTY
26946: LIST
26947: LIST
26948: PUSH
26949: LD_VAR 0 1
26953: PPUSH
26954: CALL_OW 250
26958: PUSH
26959: LD_INT 2
26961: PLUS
26962: PUSH
26963: LD_VAR 0 1
26967: PPUSH
26968: CALL_OW 251
26972: PUSH
26973: LD_INT 16
26975: PLUS
26976: PUSH
26977: EMPTY
26978: LIST
26979: LIST
26980: PUSH
26981: LD_VAR 0 1
26985: PPUSH
26986: CALL_OW 250
26990: PUSH
26991: LD_INT 4
26993: PLUS
26994: PUSH
26995: LD_VAR 0 1
26999: PPUSH
27000: CALL_OW 251
27004: PUSH
27005: LD_INT 17
27007: PLUS
27008: PUSH
27009: EMPTY
27010: LIST
27011: LIST
27012: PUSH
27013: EMPTY
27014: LIST
27015: LIST
27016: LIST
27017: LIST
27018: LIST
27019: LIST
27020: LIST
27021: LIST
27022: LIST
27023: LIST
27024: LIST
27025: LIST
27026: LIST
27027: LIST
27028: LIST
27029: LIST
27030: LIST
27031: LIST
27032: LIST
27033: LIST
27034: LIST
27035: LIST
27036: LIST
27037: LIST
27038: LIST
27039: LIST
27040: LIST
27041: PUSH
27042: EMPTY
27043: LIST
27044: LIST
27045: LIST
27046: ST_TO_ADDR
// end ; 4 :
27047: GO 29144
27049: LD_INT 4
27051: DOUBLE
27052: EQUAL
27053: IFTRUE 27057
27055: GO 28096
27057: POP
// begin ContaminationCutsceneHexes = [ [ [ GetX ( lab ) - 3 , GetY ( lab ) + 1 ] , [ GetX ( lab ) - 4 , GetY ( lab ) - 1 ] , [ GetX ( lab ) - 2 , GetY ( lab ) + 2 ] ] , [ GetX ( lab ) - 6 , GetY ( lab ) + 0 ] , [ [ GetX ( lab ) - 11 , GetY ( lab ) - 4 ] , [ GetX ( lab ) - 10 , GetY ( lab ) - 2 ] , [ GetX ( lab ) - 9 , GetY ( lab ) + 0 ] , [ GetX ( lab ) - 8 , GetY ( lab ) + 2 ] , [ GetX ( lab ) - 7 , GetY ( lab ) + 4 ] , [ GetX ( lab ) - 13 , GetY ( lab ) - 5 ] , [ GetX ( lab ) - 12 , GetY ( lab ) - 3 ] , [ GetX ( lab ) - 11 , GetY ( lab ) - 1 ] , [ GetX ( lab ) - 10 , GetY ( lab ) + 1 ] , [ GetX ( lab ) - 9 , GetY ( lab ) + 3 ] , [ GetX ( lab ) - 8 , GetY ( lab ) + 5 ] , [ GetX ( lab ) - 14 , GetY ( lab ) - 4 ] , [ GetX ( lab ) - 13 , GetY ( lab ) - 2 ] , [ GetX ( lab ) - 12 , GetY ( lab ) + 0 ] , [ GetX ( lab ) - 11 , GetY ( lab ) + 2 ] , [ GetX ( lab ) - 10 , GetY ( lab ) + 4 ] , [ GetX ( lab ) - 16 , GetY ( lab ) - 5 ] , [ GetX ( lab ) - 15 , GetY ( lab ) - 3 ] , [ GetX ( lab ) - 14 , GetY ( lab ) - 1 ] , [ GetX ( lab ) - 13 , GetY ( lab ) + 1 ] , [ GetX ( lab ) - 12 , GetY ( lab ) + 3 ] , [ GetX ( lab ) - 11 , GetY ( lab ) + 5 ] , [ GetX ( lab ) - 17 , GetY ( lab ) - 4 ] , [ GetX ( lab ) - 16 , GetY ( lab ) - 2 ] , [ GetX ( lab ) - 15 , GetY ( lab ) + 0 ] , [ GetX ( lab ) - 14 , GetY ( lab ) + 2 ] , [ GetX ( lab ) - 13 , GetY ( lab ) + 4 ] ] ] ;
27058: LD_ADDR_EXP 54
27062: PUSH
27063: LD_VAR 0 1
27067: PPUSH
27068: CALL_OW 250
27072: PUSH
27073: LD_INT 3
27075: MINUS
27076: PUSH
27077: LD_VAR 0 1
27081: PPUSH
27082: CALL_OW 251
27086: PUSH
27087: LD_INT 1
27089: PLUS
27090: PUSH
27091: EMPTY
27092: LIST
27093: LIST
27094: PUSH
27095: LD_VAR 0 1
27099: PPUSH
27100: CALL_OW 250
27104: PUSH
27105: LD_INT 4
27107: MINUS
27108: PUSH
27109: LD_VAR 0 1
27113: PPUSH
27114: CALL_OW 251
27118: PUSH
27119: LD_INT 1
27121: MINUS
27122: PUSH
27123: EMPTY
27124: LIST
27125: LIST
27126: PUSH
27127: LD_VAR 0 1
27131: PPUSH
27132: CALL_OW 250
27136: PUSH
27137: LD_INT 2
27139: MINUS
27140: PUSH
27141: LD_VAR 0 1
27145: PPUSH
27146: CALL_OW 251
27150: PUSH
27151: LD_INT 2
27153: PLUS
27154: PUSH
27155: EMPTY
27156: LIST
27157: LIST
27158: PUSH
27159: EMPTY
27160: LIST
27161: LIST
27162: LIST
27163: PUSH
27164: LD_VAR 0 1
27168: PPUSH
27169: CALL_OW 250
27173: PUSH
27174: LD_INT 6
27176: MINUS
27177: PUSH
27178: LD_VAR 0 1
27182: PPUSH
27183: CALL_OW 251
27187: PUSH
27188: LD_INT 0
27190: PLUS
27191: PUSH
27192: EMPTY
27193: LIST
27194: LIST
27195: PUSH
27196: LD_VAR 0 1
27200: PPUSH
27201: CALL_OW 250
27205: PUSH
27206: LD_INT 11
27208: MINUS
27209: PUSH
27210: LD_VAR 0 1
27214: PPUSH
27215: CALL_OW 251
27219: PUSH
27220: LD_INT 4
27222: MINUS
27223: PUSH
27224: EMPTY
27225: LIST
27226: LIST
27227: PUSH
27228: LD_VAR 0 1
27232: PPUSH
27233: CALL_OW 250
27237: PUSH
27238: LD_INT 10
27240: MINUS
27241: PUSH
27242: LD_VAR 0 1
27246: PPUSH
27247: CALL_OW 251
27251: PUSH
27252: LD_INT 2
27254: MINUS
27255: PUSH
27256: EMPTY
27257: LIST
27258: LIST
27259: PUSH
27260: LD_VAR 0 1
27264: PPUSH
27265: CALL_OW 250
27269: PUSH
27270: LD_INT 9
27272: MINUS
27273: PUSH
27274: LD_VAR 0 1
27278: PPUSH
27279: CALL_OW 251
27283: PUSH
27284: LD_INT 0
27286: PLUS
27287: PUSH
27288: EMPTY
27289: LIST
27290: LIST
27291: PUSH
27292: LD_VAR 0 1
27296: PPUSH
27297: CALL_OW 250
27301: PUSH
27302: LD_INT 8
27304: MINUS
27305: PUSH
27306: LD_VAR 0 1
27310: PPUSH
27311: CALL_OW 251
27315: PUSH
27316: LD_INT 2
27318: PLUS
27319: PUSH
27320: EMPTY
27321: LIST
27322: LIST
27323: PUSH
27324: LD_VAR 0 1
27328: PPUSH
27329: CALL_OW 250
27333: PUSH
27334: LD_INT 7
27336: MINUS
27337: PUSH
27338: LD_VAR 0 1
27342: PPUSH
27343: CALL_OW 251
27347: PUSH
27348: LD_INT 4
27350: PLUS
27351: PUSH
27352: EMPTY
27353: LIST
27354: LIST
27355: PUSH
27356: LD_VAR 0 1
27360: PPUSH
27361: CALL_OW 250
27365: PUSH
27366: LD_INT 13
27368: MINUS
27369: PUSH
27370: LD_VAR 0 1
27374: PPUSH
27375: CALL_OW 251
27379: PUSH
27380: LD_INT 5
27382: MINUS
27383: PUSH
27384: EMPTY
27385: LIST
27386: LIST
27387: PUSH
27388: LD_VAR 0 1
27392: PPUSH
27393: CALL_OW 250
27397: PUSH
27398: LD_INT 12
27400: MINUS
27401: PUSH
27402: LD_VAR 0 1
27406: PPUSH
27407: CALL_OW 251
27411: PUSH
27412: LD_INT 3
27414: MINUS
27415: PUSH
27416: EMPTY
27417: LIST
27418: LIST
27419: PUSH
27420: LD_VAR 0 1
27424: PPUSH
27425: CALL_OW 250
27429: PUSH
27430: LD_INT 11
27432: MINUS
27433: PUSH
27434: LD_VAR 0 1
27438: PPUSH
27439: CALL_OW 251
27443: PUSH
27444: LD_INT 1
27446: MINUS
27447: PUSH
27448: EMPTY
27449: LIST
27450: LIST
27451: PUSH
27452: LD_VAR 0 1
27456: PPUSH
27457: CALL_OW 250
27461: PUSH
27462: LD_INT 10
27464: MINUS
27465: PUSH
27466: LD_VAR 0 1
27470: PPUSH
27471: CALL_OW 251
27475: PUSH
27476: LD_INT 1
27478: PLUS
27479: PUSH
27480: EMPTY
27481: LIST
27482: LIST
27483: PUSH
27484: LD_VAR 0 1
27488: PPUSH
27489: CALL_OW 250
27493: PUSH
27494: LD_INT 9
27496: MINUS
27497: PUSH
27498: LD_VAR 0 1
27502: PPUSH
27503: CALL_OW 251
27507: PUSH
27508: LD_INT 3
27510: PLUS
27511: PUSH
27512: EMPTY
27513: LIST
27514: LIST
27515: PUSH
27516: LD_VAR 0 1
27520: PPUSH
27521: CALL_OW 250
27525: PUSH
27526: LD_INT 8
27528: MINUS
27529: PUSH
27530: LD_VAR 0 1
27534: PPUSH
27535: CALL_OW 251
27539: PUSH
27540: LD_INT 5
27542: PLUS
27543: PUSH
27544: EMPTY
27545: LIST
27546: LIST
27547: PUSH
27548: LD_VAR 0 1
27552: PPUSH
27553: CALL_OW 250
27557: PUSH
27558: LD_INT 14
27560: MINUS
27561: PUSH
27562: LD_VAR 0 1
27566: PPUSH
27567: CALL_OW 251
27571: PUSH
27572: LD_INT 4
27574: MINUS
27575: PUSH
27576: EMPTY
27577: LIST
27578: LIST
27579: PUSH
27580: LD_VAR 0 1
27584: PPUSH
27585: CALL_OW 250
27589: PUSH
27590: LD_INT 13
27592: MINUS
27593: PUSH
27594: LD_VAR 0 1
27598: PPUSH
27599: CALL_OW 251
27603: PUSH
27604: LD_INT 2
27606: MINUS
27607: PUSH
27608: EMPTY
27609: LIST
27610: LIST
27611: PUSH
27612: LD_VAR 0 1
27616: PPUSH
27617: CALL_OW 250
27621: PUSH
27622: LD_INT 12
27624: MINUS
27625: PUSH
27626: LD_VAR 0 1
27630: PPUSH
27631: CALL_OW 251
27635: PUSH
27636: LD_INT 0
27638: PLUS
27639: PUSH
27640: EMPTY
27641: LIST
27642: LIST
27643: PUSH
27644: LD_VAR 0 1
27648: PPUSH
27649: CALL_OW 250
27653: PUSH
27654: LD_INT 11
27656: MINUS
27657: PUSH
27658: LD_VAR 0 1
27662: PPUSH
27663: CALL_OW 251
27667: PUSH
27668: LD_INT 2
27670: PLUS
27671: PUSH
27672: EMPTY
27673: LIST
27674: LIST
27675: PUSH
27676: LD_VAR 0 1
27680: PPUSH
27681: CALL_OW 250
27685: PUSH
27686: LD_INT 10
27688: MINUS
27689: PUSH
27690: LD_VAR 0 1
27694: PPUSH
27695: CALL_OW 251
27699: PUSH
27700: LD_INT 4
27702: PLUS
27703: PUSH
27704: EMPTY
27705: LIST
27706: LIST
27707: PUSH
27708: LD_VAR 0 1
27712: PPUSH
27713: CALL_OW 250
27717: PUSH
27718: LD_INT 16
27720: MINUS
27721: PUSH
27722: LD_VAR 0 1
27726: PPUSH
27727: CALL_OW 251
27731: PUSH
27732: LD_INT 5
27734: MINUS
27735: PUSH
27736: EMPTY
27737: LIST
27738: LIST
27739: PUSH
27740: LD_VAR 0 1
27744: PPUSH
27745: CALL_OW 250
27749: PUSH
27750: LD_INT 15
27752: MINUS
27753: PUSH
27754: LD_VAR 0 1
27758: PPUSH
27759: CALL_OW 251
27763: PUSH
27764: LD_INT 3
27766: MINUS
27767: PUSH
27768: EMPTY
27769: LIST
27770: LIST
27771: PUSH
27772: LD_VAR 0 1
27776: PPUSH
27777: CALL_OW 250
27781: PUSH
27782: LD_INT 14
27784: MINUS
27785: PUSH
27786: LD_VAR 0 1
27790: PPUSH
27791: CALL_OW 251
27795: PUSH
27796: LD_INT 1
27798: MINUS
27799: PUSH
27800: EMPTY
27801: LIST
27802: LIST
27803: PUSH
27804: LD_VAR 0 1
27808: PPUSH
27809: CALL_OW 250
27813: PUSH
27814: LD_INT 13
27816: MINUS
27817: PUSH
27818: LD_VAR 0 1
27822: PPUSH
27823: CALL_OW 251
27827: PUSH
27828: LD_INT 1
27830: PLUS
27831: PUSH
27832: EMPTY
27833: LIST
27834: LIST
27835: PUSH
27836: LD_VAR 0 1
27840: PPUSH
27841: CALL_OW 250
27845: PUSH
27846: LD_INT 12
27848: MINUS
27849: PUSH
27850: LD_VAR 0 1
27854: PPUSH
27855: CALL_OW 251
27859: PUSH
27860: LD_INT 3
27862: PLUS
27863: PUSH
27864: EMPTY
27865: LIST
27866: LIST
27867: PUSH
27868: LD_VAR 0 1
27872: PPUSH
27873: CALL_OW 250
27877: PUSH
27878: LD_INT 11
27880: MINUS
27881: PUSH
27882: LD_VAR 0 1
27886: PPUSH
27887: CALL_OW 251
27891: PUSH
27892: LD_INT 5
27894: PLUS
27895: PUSH
27896: EMPTY
27897: LIST
27898: LIST
27899: PUSH
27900: LD_VAR 0 1
27904: PPUSH
27905: CALL_OW 250
27909: PUSH
27910: LD_INT 17
27912: MINUS
27913: PUSH
27914: LD_VAR 0 1
27918: PPUSH
27919: CALL_OW 251
27923: PUSH
27924: LD_INT 4
27926: MINUS
27927: PUSH
27928: EMPTY
27929: LIST
27930: LIST
27931: PUSH
27932: LD_VAR 0 1
27936: PPUSH
27937: CALL_OW 250
27941: PUSH
27942: LD_INT 16
27944: MINUS
27945: PUSH
27946: LD_VAR 0 1
27950: PPUSH
27951: CALL_OW 251
27955: PUSH
27956: LD_INT 2
27958: MINUS
27959: PUSH
27960: EMPTY
27961: LIST
27962: LIST
27963: PUSH
27964: LD_VAR 0 1
27968: PPUSH
27969: CALL_OW 250
27973: PUSH
27974: LD_INT 15
27976: MINUS
27977: PUSH
27978: LD_VAR 0 1
27982: PPUSH
27983: CALL_OW 251
27987: PUSH
27988: LD_INT 0
27990: PLUS
27991: PUSH
27992: EMPTY
27993: LIST
27994: LIST
27995: PUSH
27996: LD_VAR 0 1
28000: PPUSH
28001: CALL_OW 250
28005: PUSH
28006: LD_INT 14
28008: MINUS
28009: PUSH
28010: LD_VAR 0 1
28014: PPUSH
28015: CALL_OW 251
28019: PUSH
28020: LD_INT 2
28022: PLUS
28023: PUSH
28024: EMPTY
28025: LIST
28026: LIST
28027: PUSH
28028: LD_VAR 0 1
28032: PPUSH
28033: CALL_OW 250
28037: PUSH
28038: LD_INT 13
28040: MINUS
28041: PUSH
28042: LD_VAR 0 1
28046: PPUSH
28047: CALL_OW 251
28051: PUSH
28052: LD_INT 4
28054: PLUS
28055: PUSH
28056: EMPTY
28057: LIST
28058: LIST
28059: PUSH
28060: EMPTY
28061: LIST
28062: LIST
28063: LIST
28064: LIST
28065: LIST
28066: LIST
28067: LIST
28068: LIST
28069: LIST
28070: LIST
28071: LIST
28072: LIST
28073: LIST
28074: LIST
28075: LIST
28076: LIST
28077: LIST
28078: LIST
28079: LIST
28080: LIST
28081: LIST
28082: LIST
28083: LIST
28084: LIST
28085: LIST
28086: LIST
28087: LIST
28088: PUSH
28089: EMPTY
28090: LIST
28091: LIST
28092: LIST
28093: ST_TO_ADDR
// end ; 5 :
28094: GO 29144
28096: LD_INT 5
28098: DOUBLE
28099: EQUAL
28100: IFTRUE 28104
28102: GO 29143
28104: POP
// begin ContaminationCutsceneHexes = [ [ [ GetX ( lab ) - 4 , GetY ( lab ) - 3 ] , [ GetX ( lab ) - 3 , GetY ( lab ) - 4 ] , [ GetX ( lab ) - 4 , GetY ( lab ) - 2 ] ] , [ GetX ( lab ) - 6 , GetY ( lab ) - 6 ] , [ [ GetX ( lab ) - 7 , GetY ( lab ) - 11 ] , [ GetX ( lab ) - 8 , GetY ( lab ) - 10 ] , [ GetX ( lab ) - 9 , GetY ( lab ) - 9 ] , [ GetX ( lab ) - 10 , GetY ( lab ) - 8 ] , [ GetX ( lab ) - 11 , GetY ( lab ) - 7 ] , [ GetX ( lab ) - 8 , GetY ( lab ) - 13 ] , [ GetX ( lab ) - 9 , GetY ( lab ) - 12 ] , [ GetX ( lab ) - 10 , GetY ( lab ) - 11 ] , [ GetX ( lab ) - 11 , GetY ( lab ) - 10 ] , [ GetX ( lab ) - 12 , GetY ( lab ) - 9 ] , [ GetX ( lab ) - 13 , GetY ( lab ) - 8 ] , [ GetX ( lab ) - 10 , GetY ( lab ) - 14 ] , [ GetX ( lab ) - 11 , GetY ( lab ) - 13 ] , [ GetX ( lab ) - 12 , GetY ( lab ) - 12 ] , [ GetX ( lab ) - 13 , GetY ( lab ) - 11 ] , [ GetX ( lab ) - 14 , GetY ( lab ) - 10 ] , [ GetX ( lab ) - 11 , GetY ( lab ) - 16 ] , [ GetX ( lab ) - 12 , GetY ( lab ) - 15 ] , [ GetX ( lab ) - 13 , GetY ( lab ) - 14 ] , [ GetX ( lab ) - 14 , GetY ( lab ) - 13 ] , [ GetX ( lab ) - 15 , GetY ( lab ) - 12 ] , [ GetX ( lab ) - 16 , GetY ( lab ) - 11 ] , [ GetX ( lab ) - 13 , GetY ( lab ) - 17 ] , [ GetX ( lab ) - 14 , GetY ( lab ) - 16 ] , [ GetX ( lab ) - 15 , GetY ( lab ) - 15 ] , [ GetX ( lab ) - 16 , GetY ( lab ) - 14 ] , [ GetX ( lab ) - 17 , GetY ( lab ) - 13 ] ] ] ;
28105: LD_ADDR_EXP 54
28109: PUSH
28110: LD_VAR 0 1
28114: PPUSH
28115: CALL_OW 250
28119: PUSH
28120: LD_INT 4
28122: MINUS
28123: PUSH
28124: LD_VAR 0 1
28128: PPUSH
28129: CALL_OW 251
28133: PUSH
28134: LD_INT 3
28136: MINUS
28137: PUSH
28138: EMPTY
28139: LIST
28140: LIST
28141: PUSH
28142: LD_VAR 0 1
28146: PPUSH
28147: CALL_OW 250
28151: PUSH
28152: LD_INT 3
28154: MINUS
28155: PUSH
28156: LD_VAR 0 1
28160: PPUSH
28161: CALL_OW 251
28165: PUSH
28166: LD_INT 4
28168: MINUS
28169: PUSH
28170: EMPTY
28171: LIST
28172: LIST
28173: PUSH
28174: LD_VAR 0 1
28178: PPUSH
28179: CALL_OW 250
28183: PUSH
28184: LD_INT 4
28186: MINUS
28187: PUSH
28188: LD_VAR 0 1
28192: PPUSH
28193: CALL_OW 251
28197: PUSH
28198: LD_INT 2
28200: MINUS
28201: PUSH
28202: EMPTY
28203: LIST
28204: LIST
28205: PUSH
28206: EMPTY
28207: LIST
28208: LIST
28209: LIST
28210: PUSH
28211: LD_VAR 0 1
28215: PPUSH
28216: CALL_OW 250
28220: PUSH
28221: LD_INT 6
28223: MINUS
28224: PUSH
28225: LD_VAR 0 1
28229: PPUSH
28230: CALL_OW 251
28234: PUSH
28235: LD_INT 6
28237: MINUS
28238: PUSH
28239: EMPTY
28240: LIST
28241: LIST
28242: PUSH
28243: LD_VAR 0 1
28247: PPUSH
28248: CALL_OW 250
28252: PUSH
28253: LD_INT 7
28255: MINUS
28256: PUSH
28257: LD_VAR 0 1
28261: PPUSH
28262: CALL_OW 251
28266: PUSH
28267: LD_INT 11
28269: MINUS
28270: PUSH
28271: EMPTY
28272: LIST
28273: LIST
28274: PUSH
28275: LD_VAR 0 1
28279: PPUSH
28280: CALL_OW 250
28284: PUSH
28285: LD_INT 8
28287: MINUS
28288: PUSH
28289: LD_VAR 0 1
28293: PPUSH
28294: CALL_OW 251
28298: PUSH
28299: LD_INT 10
28301: MINUS
28302: PUSH
28303: EMPTY
28304: LIST
28305: LIST
28306: PUSH
28307: LD_VAR 0 1
28311: PPUSH
28312: CALL_OW 250
28316: PUSH
28317: LD_INT 9
28319: MINUS
28320: PUSH
28321: LD_VAR 0 1
28325: PPUSH
28326: CALL_OW 251
28330: PUSH
28331: LD_INT 9
28333: MINUS
28334: PUSH
28335: EMPTY
28336: LIST
28337: LIST
28338: PUSH
28339: LD_VAR 0 1
28343: PPUSH
28344: CALL_OW 250
28348: PUSH
28349: LD_INT 10
28351: MINUS
28352: PUSH
28353: LD_VAR 0 1
28357: PPUSH
28358: CALL_OW 251
28362: PUSH
28363: LD_INT 8
28365: MINUS
28366: PUSH
28367: EMPTY
28368: LIST
28369: LIST
28370: PUSH
28371: LD_VAR 0 1
28375: PPUSH
28376: CALL_OW 250
28380: PUSH
28381: LD_INT 11
28383: MINUS
28384: PUSH
28385: LD_VAR 0 1
28389: PPUSH
28390: CALL_OW 251
28394: PUSH
28395: LD_INT 7
28397: MINUS
28398: PUSH
28399: EMPTY
28400: LIST
28401: LIST
28402: PUSH
28403: LD_VAR 0 1
28407: PPUSH
28408: CALL_OW 250
28412: PUSH
28413: LD_INT 8
28415: MINUS
28416: PUSH
28417: LD_VAR 0 1
28421: PPUSH
28422: CALL_OW 251
28426: PUSH
28427: LD_INT 13
28429: MINUS
28430: PUSH
28431: EMPTY
28432: LIST
28433: LIST
28434: PUSH
28435: LD_VAR 0 1
28439: PPUSH
28440: CALL_OW 250
28444: PUSH
28445: LD_INT 9
28447: MINUS
28448: PUSH
28449: LD_VAR 0 1
28453: PPUSH
28454: CALL_OW 251
28458: PUSH
28459: LD_INT 12
28461: MINUS
28462: PUSH
28463: EMPTY
28464: LIST
28465: LIST
28466: PUSH
28467: LD_VAR 0 1
28471: PPUSH
28472: CALL_OW 250
28476: PUSH
28477: LD_INT 10
28479: MINUS
28480: PUSH
28481: LD_VAR 0 1
28485: PPUSH
28486: CALL_OW 251
28490: PUSH
28491: LD_INT 11
28493: MINUS
28494: PUSH
28495: EMPTY
28496: LIST
28497: LIST
28498: PUSH
28499: LD_VAR 0 1
28503: PPUSH
28504: CALL_OW 250
28508: PUSH
28509: LD_INT 11
28511: MINUS
28512: PUSH
28513: LD_VAR 0 1
28517: PPUSH
28518: CALL_OW 251
28522: PUSH
28523: LD_INT 10
28525: MINUS
28526: PUSH
28527: EMPTY
28528: LIST
28529: LIST
28530: PUSH
28531: LD_VAR 0 1
28535: PPUSH
28536: CALL_OW 250
28540: PUSH
28541: LD_INT 12
28543: MINUS
28544: PUSH
28545: LD_VAR 0 1
28549: PPUSH
28550: CALL_OW 251
28554: PUSH
28555: LD_INT 9
28557: MINUS
28558: PUSH
28559: EMPTY
28560: LIST
28561: LIST
28562: PUSH
28563: LD_VAR 0 1
28567: PPUSH
28568: CALL_OW 250
28572: PUSH
28573: LD_INT 13
28575: MINUS
28576: PUSH
28577: LD_VAR 0 1
28581: PPUSH
28582: CALL_OW 251
28586: PUSH
28587: LD_INT 8
28589: MINUS
28590: PUSH
28591: EMPTY
28592: LIST
28593: LIST
28594: PUSH
28595: LD_VAR 0 1
28599: PPUSH
28600: CALL_OW 250
28604: PUSH
28605: LD_INT 10
28607: MINUS
28608: PUSH
28609: LD_VAR 0 1
28613: PPUSH
28614: CALL_OW 251
28618: PUSH
28619: LD_INT 14
28621: MINUS
28622: PUSH
28623: EMPTY
28624: LIST
28625: LIST
28626: PUSH
28627: LD_VAR 0 1
28631: PPUSH
28632: CALL_OW 250
28636: PUSH
28637: LD_INT 11
28639: MINUS
28640: PUSH
28641: LD_VAR 0 1
28645: PPUSH
28646: CALL_OW 251
28650: PUSH
28651: LD_INT 13
28653: MINUS
28654: PUSH
28655: EMPTY
28656: LIST
28657: LIST
28658: PUSH
28659: LD_VAR 0 1
28663: PPUSH
28664: CALL_OW 250
28668: PUSH
28669: LD_INT 12
28671: MINUS
28672: PUSH
28673: LD_VAR 0 1
28677: PPUSH
28678: CALL_OW 251
28682: PUSH
28683: LD_INT 12
28685: MINUS
28686: PUSH
28687: EMPTY
28688: LIST
28689: LIST
28690: PUSH
28691: LD_VAR 0 1
28695: PPUSH
28696: CALL_OW 250
28700: PUSH
28701: LD_INT 13
28703: MINUS
28704: PUSH
28705: LD_VAR 0 1
28709: PPUSH
28710: CALL_OW 251
28714: PUSH
28715: LD_INT 11
28717: MINUS
28718: PUSH
28719: EMPTY
28720: LIST
28721: LIST
28722: PUSH
28723: LD_VAR 0 1
28727: PPUSH
28728: CALL_OW 250
28732: PUSH
28733: LD_INT 14
28735: MINUS
28736: PUSH
28737: LD_VAR 0 1
28741: PPUSH
28742: CALL_OW 251
28746: PUSH
28747: LD_INT 10
28749: MINUS
28750: PUSH
28751: EMPTY
28752: LIST
28753: LIST
28754: PUSH
28755: LD_VAR 0 1
28759: PPUSH
28760: CALL_OW 250
28764: PUSH
28765: LD_INT 11
28767: MINUS
28768: PUSH
28769: LD_VAR 0 1
28773: PPUSH
28774: CALL_OW 251
28778: PUSH
28779: LD_INT 16
28781: MINUS
28782: PUSH
28783: EMPTY
28784: LIST
28785: LIST
28786: PUSH
28787: LD_VAR 0 1
28791: PPUSH
28792: CALL_OW 250
28796: PUSH
28797: LD_INT 12
28799: MINUS
28800: PUSH
28801: LD_VAR 0 1
28805: PPUSH
28806: CALL_OW 251
28810: PUSH
28811: LD_INT 15
28813: MINUS
28814: PUSH
28815: EMPTY
28816: LIST
28817: LIST
28818: PUSH
28819: LD_VAR 0 1
28823: PPUSH
28824: CALL_OW 250
28828: PUSH
28829: LD_INT 13
28831: MINUS
28832: PUSH
28833: LD_VAR 0 1
28837: PPUSH
28838: CALL_OW 251
28842: PUSH
28843: LD_INT 14
28845: MINUS
28846: PUSH
28847: EMPTY
28848: LIST
28849: LIST
28850: PUSH
28851: LD_VAR 0 1
28855: PPUSH
28856: CALL_OW 250
28860: PUSH
28861: LD_INT 14
28863: MINUS
28864: PUSH
28865: LD_VAR 0 1
28869: PPUSH
28870: CALL_OW 251
28874: PUSH
28875: LD_INT 13
28877: MINUS
28878: PUSH
28879: EMPTY
28880: LIST
28881: LIST
28882: PUSH
28883: LD_VAR 0 1
28887: PPUSH
28888: CALL_OW 250
28892: PUSH
28893: LD_INT 15
28895: MINUS
28896: PUSH
28897: LD_VAR 0 1
28901: PPUSH
28902: CALL_OW 251
28906: PUSH
28907: LD_INT 12
28909: MINUS
28910: PUSH
28911: EMPTY
28912: LIST
28913: LIST
28914: PUSH
28915: LD_VAR 0 1
28919: PPUSH
28920: CALL_OW 250
28924: PUSH
28925: LD_INT 16
28927: MINUS
28928: PUSH
28929: LD_VAR 0 1
28933: PPUSH
28934: CALL_OW 251
28938: PUSH
28939: LD_INT 11
28941: MINUS
28942: PUSH
28943: EMPTY
28944: LIST
28945: LIST
28946: PUSH
28947: LD_VAR 0 1
28951: PPUSH
28952: CALL_OW 250
28956: PUSH
28957: LD_INT 13
28959: MINUS
28960: PUSH
28961: LD_VAR 0 1
28965: PPUSH
28966: CALL_OW 251
28970: PUSH
28971: LD_INT 17
28973: MINUS
28974: PUSH
28975: EMPTY
28976: LIST
28977: LIST
28978: PUSH
28979: LD_VAR 0 1
28983: PPUSH
28984: CALL_OW 250
28988: PUSH
28989: LD_INT 14
28991: MINUS
28992: PUSH
28993: LD_VAR 0 1
28997: PPUSH
28998: CALL_OW 251
29002: PUSH
29003: LD_INT 16
29005: MINUS
29006: PUSH
29007: EMPTY
29008: LIST
29009: LIST
29010: PUSH
29011: LD_VAR 0 1
29015: PPUSH
29016: CALL_OW 250
29020: PUSH
29021: LD_INT 15
29023: MINUS
29024: PUSH
29025: LD_VAR 0 1
29029: PPUSH
29030: CALL_OW 251
29034: PUSH
29035: LD_INT 15
29037: MINUS
29038: PUSH
29039: EMPTY
29040: LIST
29041: LIST
29042: PUSH
29043: LD_VAR 0 1
29047: PPUSH
29048: CALL_OW 250
29052: PUSH
29053: LD_INT 16
29055: MINUS
29056: PUSH
29057: LD_VAR 0 1
29061: PPUSH
29062: CALL_OW 251
29066: PUSH
29067: LD_INT 14
29069: MINUS
29070: PUSH
29071: EMPTY
29072: LIST
29073: LIST
29074: PUSH
29075: LD_VAR 0 1
29079: PPUSH
29080: CALL_OW 250
29084: PUSH
29085: LD_INT 17
29087: MINUS
29088: PUSH
29089: LD_VAR 0 1
29093: PPUSH
29094: CALL_OW 251
29098: PUSH
29099: LD_INT 13
29101: MINUS
29102: PUSH
29103: EMPTY
29104: LIST
29105: LIST
29106: PUSH
29107: EMPTY
29108: LIST
29109: LIST
29110: LIST
29111: LIST
29112: LIST
29113: LIST
29114: LIST
29115: LIST
29116: LIST
29117: LIST
29118: LIST
29119: LIST
29120: LIST
29121: LIST
29122: LIST
29123: LIST
29124: LIST
29125: LIST
29126: LIST
29127: LIST
29128: LIST
29129: LIST
29130: LIST
29131: LIST
29132: LIST
29133: LIST
29134: LIST
29135: PUSH
29136: EMPTY
29137: LIST
29138: LIST
29139: LIST
29140: ST_TO_ADDR
// end ; end ;
29141: GO 29144
29143: POP
// temp = ContaminationCutsceneHexes [ 1 ] ^ [ ContaminationCutsceneHexes [ 2 ] ] ^ ContaminationCutsceneHexes [ 3 ] ;
29144: LD_ADDR_VAR 0 4
29148: PUSH
29149: LD_EXP 54
29153: PUSH
29154: LD_INT 1
29156: ARRAY
29157: PUSH
29158: LD_EXP 54
29162: PUSH
29163: LD_INT 2
29165: ARRAY
29166: PUSH
29167: EMPTY
29168: LIST
29169: ADD
29170: PUSH
29171: LD_EXP 54
29175: PUSH
29176: LD_INT 3
29178: ARRAY
29179: ADD
29180: ST_TO_ADDR
// for i in temp do
29181: LD_ADDR_VAR 0 3
29185: PUSH
29186: LD_VAR 0 4
29190: PUSH
29191: FOR_IN
29192: IFFALSE 30074
// if not ValidHex ( i [ 1 ] , i [ 2 ] ) then
29194: LD_VAR 0 3
29198: PUSH
29199: LD_INT 1
29201: ARRAY
29202: PPUSH
29203: LD_VAR 0 3
29207: PUSH
29208: LD_INT 2
29210: ARRAY
29211: PPUSH
29212: CALL_OW 488
29216: NOT
29217: IFFALSE 30072
// begin ContaminationCutsceneHexes = [ [ [ 99 , 96 ] , [ 101 , 97 ] , [ 98 , 96 ] ] , [ 100 , 94 ] , [ [ 100 , 100 - 9 ] , [ 100 - 2 , 100 - 10 ] , [ 100 + 2 , 100 - 8 ] , [ 100 - 4 , 100 - 11 ] , [ 100 + 4 , 100 - 7 ] , [ 100 - 6 , 100 - 12 ] , [ 100 + 6 , 100 - 6 ] , [ 100 - 8 , 100 - 13 ] , [ 100 + 8 , 100 - 5 ] , [ 100 - 10 , 100 - 14 ] , [ 100 + 10 , 100 - 4 ] , [ 100 - 1 , 100 - 11 ] , [ 100 - 3 , 100 - 12 ] , [ 100 + 1 , 100 - 10 ] , [ 100 - 5 , 100 - 13 ] , [ 100 + 5 , 100 - 8 ] , [ 100 - 7 , 100 - 14 ] , [ 100 + 7 , 100 - 7 ] , [ 100 - 9 , 100 - 15 ] , [ 100 + 9 , 100 - 6 ] , [ 100 + 0 , 100 - 12 ] , [ 100 - 2 , 100 - 13 ] , [ 100 + 2 , 100 - 11 ] , [ 100 - 4 , 100 - 14 ] , [ 100 + 4 , 100 - 10 ] , [ 100 - 6 , 100 - 15 ] , [ 100 + 6 , 100 - 9 ] , [ 100 - 8 , 100 - 16 ] , [ 100 + 8 , 100 - 8 ] , [ 100 - 10 , 100 - 17 ] , [ 100 + 10 , 100 - 7 ] , [ 100 - 1 , 100 - 14 ] , [ 100 - 3 , 100 - 15 ] , [ 100 + 1 , 100 - 13 ] , [ 100 + 3 , 100 - 12 ] , [ 100 + 3 , 100 - 9 ] , [ 100 - 5 , 100 - 16 ] , [ 100 + 5 , 100 - 11 ] , [ 100 - 7 , 100 - 17 ] , [ 100 + 7 , 100 - 10 ] , [ 100 - 9 , 100 - 18 ] , [ 100 + 9 , 100 - 9 ] ] ] ;
29219: LD_ADDR_EXP 54
29223: PUSH
29224: LD_INT 99
29226: PUSH
29227: LD_INT 96
29229: PUSH
29230: EMPTY
29231: LIST
29232: LIST
29233: PUSH
29234: LD_INT 101
29236: PUSH
29237: LD_INT 97
29239: PUSH
29240: EMPTY
29241: LIST
29242: LIST
29243: PUSH
29244: LD_INT 98
29246: PUSH
29247: LD_INT 96
29249: PUSH
29250: EMPTY
29251: LIST
29252: LIST
29253: PUSH
29254: EMPTY
29255: LIST
29256: LIST
29257: LIST
29258: PUSH
29259: LD_INT 100
29261: PUSH
29262: LD_INT 94
29264: PUSH
29265: EMPTY
29266: LIST
29267: LIST
29268: PUSH
29269: LD_INT 100
29271: PUSH
29272: LD_INT 100
29274: PUSH
29275: LD_INT 9
29277: MINUS
29278: PUSH
29279: EMPTY
29280: LIST
29281: LIST
29282: PUSH
29283: LD_INT 100
29285: PUSH
29286: LD_INT 2
29288: MINUS
29289: PUSH
29290: LD_INT 100
29292: PUSH
29293: LD_INT 10
29295: MINUS
29296: PUSH
29297: EMPTY
29298: LIST
29299: LIST
29300: PUSH
29301: LD_INT 100
29303: PUSH
29304: LD_INT 2
29306: PLUS
29307: PUSH
29308: LD_INT 100
29310: PUSH
29311: LD_INT 8
29313: MINUS
29314: PUSH
29315: EMPTY
29316: LIST
29317: LIST
29318: PUSH
29319: LD_INT 100
29321: PUSH
29322: LD_INT 4
29324: MINUS
29325: PUSH
29326: LD_INT 100
29328: PUSH
29329: LD_INT 11
29331: MINUS
29332: PUSH
29333: EMPTY
29334: LIST
29335: LIST
29336: PUSH
29337: LD_INT 100
29339: PUSH
29340: LD_INT 4
29342: PLUS
29343: PUSH
29344: LD_INT 100
29346: PUSH
29347: LD_INT 7
29349: MINUS
29350: PUSH
29351: EMPTY
29352: LIST
29353: LIST
29354: PUSH
29355: LD_INT 100
29357: PUSH
29358: LD_INT 6
29360: MINUS
29361: PUSH
29362: LD_INT 100
29364: PUSH
29365: LD_INT 12
29367: MINUS
29368: PUSH
29369: EMPTY
29370: LIST
29371: LIST
29372: PUSH
29373: LD_INT 100
29375: PUSH
29376: LD_INT 6
29378: PLUS
29379: PUSH
29380: LD_INT 100
29382: PUSH
29383: LD_INT 6
29385: MINUS
29386: PUSH
29387: EMPTY
29388: LIST
29389: LIST
29390: PUSH
29391: LD_INT 100
29393: PUSH
29394: LD_INT 8
29396: MINUS
29397: PUSH
29398: LD_INT 100
29400: PUSH
29401: LD_INT 13
29403: MINUS
29404: PUSH
29405: EMPTY
29406: LIST
29407: LIST
29408: PUSH
29409: LD_INT 100
29411: PUSH
29412: LD_INT 8
29414: PLUS
29415: PUSH
29416: LD_INT 100
29418: PUSH
29419: LD_INT 5
29421: MINUS
29422: PUSH
29423: EMPTY
29424: LIST
29425: LIST
29426: PUSH
29427: LD_INT 100
29429: PUSH
29430: LD_INT 10
29432: MINUS
29433: PUSH
29434: LD_INT 100
29436: PUSH
29437: LD_INT 14
29439: MINUS
29440: PUSH
29441: EMPTY
29442: LIST
29443: LIST
29444: PUSH
29445: LD_INT 100
29447: PUSH
29448: LD_INT 10
29450: PLUS
29451: PUSH
29452: LD_INT 100
29454: PUSH
29455: LD_INT 4
29457: MINUS
29458: PUSH
29459: EMPTY
29460: LIST
29461: LIST
29462: PUSH
29463: LD_INT 100
29465: PUSH
29466: LD_INT 1
29468: MINUS
29469: PUSH
29470: LD_INT 100
29472: PUSH
29473: LD_INT 11
29475: MINUS
29476: PUSH
29477: EMPTY
29478: LIST
29479: LIST
29480: PUSH
29481: LD_INT 100
29483: PUSH
29484: LD_INT 3
29486: MINUS
29487: PUSH
29488: LD_INT 100
29490: PUSH
29491: LD_INT 12
29493: MINUS
29494: PUSH
29495: EMPTY
29496: LIST
29497: LIST
29498: PUSH
29499: LD_INT 100
29501: PUSH
29502: LD_INT 1
29504: PLUS
29505: PUSH
29506: LD_INT 100
29508: PUSH
29509: LD_INT 10
29511: MINUS
29512: PUSH
29513: EMPTY
29514: LIST
29515: LIST
29516: PUSH
29517: LD_INT 100
29519: PUSH
29520: LD_INT 5
29522: MINUS
29523: PUSH
29524: LD_INT 100
29526: PUSH
29527: LD_INT 13
29529: MINUS
29530: PUSH
29531: EMPTY
29532: LIST
29533: LIST
29534: PUSH
29535: LD_INT 100
29537: PUSH
29538: LD_INT 5
29540: PLUS
29541: PUSH
29542: LD_INT 100
29544: PUSH
29545: LD_INT 8
29547: MINUS
29548: PUSH
29549: EMPTY
29550: LIST
29551: LIST
29552: PUSH
29553: LD_INT 100
29555: PUSH
29556: LD_INT 7
29558: MINUS
29559: PUSH
29560: LD_INT 100
29562: PUSH
29563: LD_INT 14
29565: MINUS
29566: PUSH
29567: EMPTY
29568: LIST
29569: LIST
29570: PUSH
29571: LD_INT 100
29573: PUSH
29574: LD_INT 7
29576: PLUS
29577: PUSH
29578: LD_INT 100
29580: PUSH
29581: LD_INT 7
29583: MINUS
29584: PUSH
29585: EMPTY
29586: LIST
29587: LIST
29588: PUSH
29589: LD_INT 100
29591: PUSH
29592: LD_INT 9
29594: MINUS
29595: PUSH
29596: LD_INT 100
29598: PUSH
29599: LD_INT 15
29601: MINUS
29602: PUSH
29603: EMPTY
29604: LIST
29605: LIST
29606: PUSH
29607: LD_INT 100
29609: PUSH
29610: LD_INT 9
29612: PLUS
29613: PUSH
29614: LD_INT 100
29616: PUSH
29617: LD_INT 6
29619: MINUS
29620: PUSH
29621: EMPTY
29622: LIST
29623: LIST
29624: PUSH
29625: LD_INT 100
29627: PUSH
29628: LD_INT 0
29630: PLUS
29631: PUSH
29632: LD_INT 100
29634: PUSH
29635: LD_INT 12
29637: MINUS
29638: PUSH
29639: EMPTY
29640: LIST
29641: LIST
29642: PUSH
29643: LD_INT 100
29645: PUSH
29646: LD_INT 2
29648: MINUS
29649: PUSH
29650: LD_INT 100
29652: PUSH
29653: LD_INT 13
29655: MINUS
29656: PUSH
29657: EMPTY
29658: LIST
29659: LIST
29660: PUSH
29661: LD_INT 100
29663: PUSH
29664: LD_INT 2
29666: PLUS
29667: PUSH
29668: LD_INT 100
29670: PUSH
29671: LD_INT 11
29673: MINUS
29674: PUSH
29675: EMPTY
29676: LIST
29677: LIST
29678: PUSH
29679: LD_INT 100
29681: PUSH
29682: LD_INT 4
29684: MINUS
29685: PUSH
29686: LD_INT 100
29688: PUSH
29689: LD_INT 14
29691: MINUS
29692: PUSH
29693: EMPTY
29694: LIST
29695: LIST
29696: PUSH
29697: LD_INT 100
29699: PUSH
29700: LD_INT 4
29702: PLUS
29703: PUSH
29704: LD_INT 100
29706: PUSH
29707: LD_INT 10
29709: MINUS
29710: PUSH
29711: EMPTY
29712: LIST
29713: LIST
29714: PUSH
29715: LD_INT 100
29717: PUSH
29718: LD_INT 6
29720: MINUS
29721: PUSH
29722: LD_INT 100
29724: PUSH
29725: LD_INT 15
29727: MINUS
29728: PUSH
29729: EMPTY
29730: LIST
29731: LIST
29732: PUSH
29733: LD_INT 100
29735: PUSH
29736: LD_INT 6
29738: PLUS
29739: PUSH
29740: LD_INT 100
29742: PUSH
29743: LD_INT 9
29745: MINUS
29746: PUSH
29747: EMPTY
29748: LIST
29749: LIST
29750: PUSH
29751: LD_INT 100
29753: PUSH
29754: LD_INT 8
29756: MINUS
29757: PUSH
29758: LD_INT 100
29760: PUSH
29761: LD_INT 16
29763: MINUS
29764: PUSH
29765: EMPTY
29766: LIST
29767: LIST
29768: PUSH
29769: LD_INT 100
29771: PUSH
29772: LD_INT 8
29774: PLUS
29775: PUSH
29776: LD_INT 100
29778: PUSH
29779: LD_INT 8
29781: MINUS
29782: PUSH
29783: EMPTY
29784: LIST
29785: LIST
29786: PUSH
29787: LD_INT 100
29789: PUSH
29790: LD_INT 10
29792: MINUS
29793: PUSH
29794: LD_INT 100
29796: PUSH
29797: LD_INT 17
29799: MINUS
29800: PUSH
29801: EMPTY
29802: LIST
29803: LIST
29804: PUSH
29805: LD_INT 100
29807: PUSH
29808: LD_INT 10
29810: PLUS
29811: PUSH
29812: LD_INT 100
29814: PUSH
29815: LD_INT 7
29817: MINUS
29818: PUSH
29819: EMPTY
29820: LIST
29821: LIST
29822: PUSH
29823: LD_INT 100
29825: PUSH
29826: LD_INT 1
29828: MINUS
29829: PUSH
29830: LD_INT 100
29832: PUSH
29833: LD_INT 14
29835: MINUS
29836: PUSH
29837: EMPTY
29838: LIST
29839: LIST
29840: PUSH
29841: LD_INT 100
29843: PUSH
29844: LD_INT 3
29846: MINUS
29847: PUSH
29848: LD_INT 100
29850: PUSH
29851: LD_INT 15
29853: MINUS
29854: PUSH
29855: EMPTY
29856: LIST
29857: LIST
29858: PUSH
29859: LD_INT 100
29861: PUSH
29862: LD_INT 1
29864: PLUS
29865: PUSH
29866: LD_INT 100
29868: PUSH
29869: LD_INT 13
29871: MINUS
29872: PUSH
29873: EMPTY
29874: LIST
29875: LIST
29876: PUSH
29877: LD_INT 100
29879: PUSH
29880: LD_INT 3
29882: PLUS
29883: PUSH
29884: LD_INT 100
29886: PUSH
29887: LD_INT 12
29889: MINUS
29890: PUSH
29891: EMPTY
29892: LIST
29893: LIST
29894: PUSH
29895: LD_INT 100
29897: PUSH
29898: LD_INT 3
29900: PLUS
29901: PUSH
29902: LD_INT 100
29904: PUSH
29905: LD_INT 9
29907: MINUS
29908: PUSH
29909: EMPTY
29910: LIST
29911: LIST
29912: PUSH
29913: LD_INT 100
29915: PUSH
29916: LD_INT 5
29918: MINUS
29919: PUSH
29920: LD_INT 100
29922: PUSH
29923: LD_INT 16
29925: MINUS
29926: PUSH
29927: EMPTY
29928: LIST
29929: LIST
29930: PUSH
29931: LD_INT 100
29933: PUSH
29934: LD_INT 5
29936: PLUS
29937: PUSH
29938: LD_INT 100
29940: PUSH
29941: LD_INT 11
29943: MINUS
29944: PUSH
29945: EMPTY
29946: LIST
29947: LIST
29948: PUSH
29949: LD_INT 100
29951: PUSH
29952: LD_INT 7
29954: MINUS
29955: PUSH
29956: LD_INT 100
29958: PUSH
29959: LD_INT 17
29961: MINUS
29962: PUSH
29963: EMPTY
29964: LIST
29965: LIST
29966: PUSH
29967: LD_INT 100
29969: PUSH
29970: LD_INT 7
29972: PLUS
29973: PUSH
29974: LD_INT 100
29976: PUSH
29977: LD_INT 10
29979: MINUS
29980: PUSH
29981: EMPTY
29982: LIST
29983: LIST
29984: PUSH
29985: LD_INT 100
29987: PUSH
29988: LD_INT 9
29990: MINUS
29991: PUSH
29992: LD_INT 100
29994: PUSH
29995: LD_INT 18
29997: MINUS
29998: PUSH
29999: EMPTY
30000: LIST
30001: LIST
30002: PUSH
30003: LD_INT 100
30005: PUSH
30006: LD_INT 9
30008: PLUS
30009: PUSH
30010: LD_INT 100
30012: PUSH
30013: LD_INT 9
30015: MINUS
30016: PUSH
30017: EMPTY
30018: LIST
30019: LIST
30020: PUSH
30021: EMPTY
30022: LIST
30023: LIST
30024: LIST
30025: LIST
30026: LIST
30027: LIST
30028: LIST
30029: LIST
30030: LIST
30031: LIST
30032: LIST
30033: LIST
30034: LIST
30035: LIST
30036: LIST
30037: LIST
30038: LIST
30039: LIST
30040: LIST
30041: LIST
30042: LIST
30043: LIST
30044: LIST
30045: LIST
30046: LIST
30047: LIST
30048: LIST
30049: LIST
30050: LIST
30051: LIST
30052: LIST
30053: LIST
30054: LIST
30055: LIST
30056: LIST
30057: LIST
30058: LIST
30059: LIST
30060: LIST
30061: LIST
30062: LIST
30063: LIST
30064: PUSH
30065: EMPTY
30066: LIST
30067: LIST
30068: LIST
30069: ST_TO_ADDR
// break ;
30070: GO 30074
// end ;
30072: GO 29191
30074: POP
30075: POP
// end ;
30076: LD_VAR 0 2
30080: RET
// function PreparePeople ; var i , temp_list ; begin
30081: LD_INT 0
30083: PPUSH
30084: PPUSH
30085: PPUSH
// Randomize ;
30086: CALL_OW 10
// temp_list = FilterAllUnits ( [ [ f_side , 2 ] , [ f_type , unit_human ] , [ f_placed ] ] ) diff headscientist ^ Heike ^ Omar ^ Gensher ;
30090: LD_ADDR_VAR 0 3
30094: PUSH
30095: LD_INT 22
30097: PUSH
30098: LD_INT 2
30100: PUSH
30101: EMPTY
30102: LIST
30103: LIST
30104: PUSH
30105: LD_INT 21
30107: PUSH
30108: LD_INT 1
30110: PUSH
30111: EMPTY
30112: LIST
30113: LIST
30114: PUSH
30115: LD_INT 52
30117: PUSH
30118: EMPTY
30119: LIST
30120: PUSH
30121: EMPTY
30122: LIST
30123: LIST
30124: LIST
30125: PPUSH
30126: CALL_OW 69
30130: PUSH
30131: LD_EXP 90
30135: PUSH
30136: LD_EXP 1
30140: ADD
30141: PUSH
30142: LD_EXP 2
30146: ADD
30147: PUSH
30148: LD_EXP 3
30152: ADD
30153: DIFF
30154: ST_TO_ADDR
// ContaminationCutsceneSoldiers = [ ] ;
30155: LD_ADDR_EXP 55
30159: PUSH
30160: EMPTY
30161: ST_TO_ADDR
// for i in temp_list do
30162: LD_ADDR_VAR 0 2
30166: PUSH
30167: LD_VAR 0 3
30171: PUSH
30172: FOR_IN
30173: IFFALSE 30227
// if rand ( 1 , 2 ) = 1 then
30175: LD_INT 1
30177: PPUSH
30178: LD_INT 2
30180: PPUSH
30181: CALL_OW 12
30185: PUSH
30186: LD_INT 1
30188: EQUAL
30189: IFFALSE 30209
// ContaminationCutsceneSoldiers = ContaminationCutsceneSoldiers ^ i else
30191: LD_ADDR_EXP 55
30195: PUSH
30196: LD_EXP 55
30200: PUSH
30201: LD_VAR 0 2
30205: ADD
30206: ST_TO_ADDR
30207: GO 30225
// ContaminationCutsceneSoldiers = i ^ ContaminationCutsceneSoldiers ;
30209: LD_ADDR_EXP 55
30213: PUSH
30214: LD_VAR 0 2
30218: PUSH
30219: LD_EXP 55
30223: ADD
30224: ST_TO_ADDR
30225: GO 30172
30227: POP
30228: POP
// end ;
30229: LD_VAR 0 1
30233: RET
// every 0 0$1 trigger GetTech ( tech_artifact , 2 ) = state_researched do var i , temp , sci , dlg , _1 , _2 , d_SibPlant , d_Beh1 , d_Beh2 , d_TimeLapse , d_laser , d_SuperStim1 , d_SuperStim2 , d_SPBomb ;
30234: LD_INT 24
30236: PPUSH
30237: LD_INT 2
30239: PPUSH
30240: CALL_OW 321
30244: PUSH
30245: LD_INT 2
30247: EQUAL
30248: IFFALSE 31810
30250: GO 30252
30252: DISABLE
30253: LD_INT 0
30255: PPUSH
30256: PPUSH
30257: PPUSH
30258: PPUSH
30259: PPUSH
30260: PPUSH
30261: PPUSH
30262: PPUSH
30263: PPUSH
30264: PPUSH
30265: PPUSH
30266: PPUSH
30267: PPUSH
30268: PPUSH
// begin Randomize ;
30269: CALL_OW 10
// temp = UnitFilter ( [ Makise , Sonya , Khattam , Aviradze ] diff 0 , [ [ f_class , class_scientistic ] , [ f_placed ] ] ) ;
30273: LD_ADDR_VAR 0 2
30277: PUSH
30278: LD_EXP 14
30282: PUSH
30283: LD_EXP 7
30287: PUSH
30288: LD_EXP 13
30292: PUSH
30293: LD_EXP 8
30297: PUSH
30298: EMPTY
30299: LIST
30300: LIST
30301: LIST
30302: LIST
30303: PUSH
30304: LD_INT 0
30306: DIFF
30307: PPUSH
30308: LD_INT 25
30310: PUSH
30311: LD_INT 4
30313: PUSH
30314: EMPTY
30315: LIST
30316: LIST
30317: PUSH
30318: LD_INT 52
30320: PUSH
30321: EMPTY
30322: LIST
30323: PUSH
30324: EMPTY
30325: LIST
30326: LIST
30327: PPUSH
30328: CALL_OW 72
30332: ST_TO_ADDR
// if temp = 0 then
30333: LD_VAR 0 2
30337: PUSH
30338: LD_INT 0
30340: EQUAL
30341: IFFALSE 30477
// temp = FilterAllUnits ( [ [ f_side , 2 ] , [ f_class , class_scientistic ] , [ f_placed ] ] ) diff [ Heike , Omar , Gensher , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake ] ;
30343: LD_ADDR_VAR 0 2
30347: PUSH
30348: LD_INT 22
30350: PUSH
30351: LD_INT 2
30353: PUSH
30354: EMPTY
30355: LIST
30356: LIST
30357: PUSH
30358: LD_INT 25
30360: PUSH
30361: LD_INT 4
30363: PUSH
30364: EMPTY
30365: LIST
30366: LIST
30367: PUSH
30368: LD_INT 52
30370: PUSH
30371: EMPTY
30372: LIST
30373: PUSH
30374: EMPTY
30375: LIST
30376: LIST
30377: LIST
30378: PPUSH
30379: CALL_OW 69
30383: PUSH
30384: LD_EXP 1
30388: PUSH
30389: LD_EXP 2
30393: PUSH
30394: LD_EXP 3
30398: PUSH
30399: LD_EXP 4
30403: PUSH
30404: LD_EXP 5
30408: PUSH
30409: LD_EXP 6
30413: PUSH
30414: LD_EXP 7
30418: PUSH
30419: LD_EXP 8
30423: PUSH
30424: LD_EXP 9
30428: PUSH
30429: LD_EXP 10
30433: PUSH
30434: LD_EXP 11
30438: PUSH
30439: LD_EXP 12
30443: PUSH
30444: LD_EXP 13
30448: PUSH
30449: LD_EXP 14
30453: PUSH
30454: LD_EXP 19
30458: PUSH
30459: EMPTY
30460: LIST
30461: LIST
30462: LIST
30463: LIST
30464: LIST
30465: LIST
30466: LIST
30467: LIST
30468: LIST
30469: LIST
30470: LIST
30471: LIST
30472: LIST
30473: LIST
30474: LIST
30475: DIFF
30476: ST_TO_ADDR
// if temp = 0 then
30477: LD_VAR 0 2
30481: PUSH
30482: LD_INT 0
30484: EQUAL
30485: IFFALSE 30533
// temp = Unitfilter ( [ Makise , Sonya , Aviradze , Khattam ] diff 0 , [ f_placed ] ) ;
30487: LD_ADDR_VAR 0 2
30491: PUSH
30492: LD_EXP 14
30496: PUSH
30497: LD_EXP 7
30501: PUSH
30502: LD_EXP 8
30506: PUSH
30507: LD_EXP 13
30511: PUSH
30512: EMPTY
30513: LIST
30514: LIST
30515: LIST
30516: LIST
30517: PUSH
30518: LD_INT 0
30520: DIFF
30521: PPUSH
30522: LD_INT 52
30524: PUSH
30525: EMPTY
30526: LIST
30527: PPUSH
30528: CALL_OW 72
30532: ST_TO_ADDR
// if temp = 0 then
30533: LD_VAR 0 2
30537: PUSH
30538: LD_INT 0
30540: EQUAL
30541: IFFALSE 30728
// temp = FilterAllUnits ( [ [ f_side , 2 ] , [ f_placed ] , [ f_or , [ f_class , class_soldier ] , [ f_class , class_mortar ] , [ f_class , class_mechanic ] , [ f_class , class_engineer ] , [ f_class , class_scientistic ] ] ] ) diff [ Heike , Omar , Gensher , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake ] ;
30543: LD_ADDR_VAR 0 2
30547: PUSH
30548: LD_INT 22
30550: PUSH
30551: LD_INT 2
30553: PUSH
30554: EMPTY
30555: LIST
30556: LIST
30557: PUSH
30558: LD_INT 52
30560: PUSH
30561: EMPTY
30562: LIST
30563: PUSH
30564: LD_INT 2
30566: PUSH
30567: LD_INT 25
30569: PUSH
30570: LD_INT 1
30572: PUSH
30573: EMPTY
30574: LIST
30575: LIST
30576: PUSH
30577: LD_INT 25
30579: PUSH
30580: LD_INT 8
30582: PUSH
30583: EMPTY
30584: LIST
30585: LIST
30586: PUSH
30587: LD_INT 25
30589: PUSH
30590: LD_INT 3
30592: PUSH
30593: EMPTY
30594: LIST
30595: LIST
30596: PUSH
30597: LD_INT 25
30599: PUSH
30600: LD_INT 2
30602: PUSH
30603: EMPTY
30604: LIST
30605: LIST
30606: PUSH
30607: LD_INT 25
30609: PUSH
30610: LD_INT 4
30612: PUSH
30613: EMPTY
30614: LIST
30615: LIST
30616: PUSH
30617: EMPTY
30618: LIST
30619: LIST
30620: LIST
30621: LIST
30622: LIST
30623: LIST
30624: PUSH
30625: EMPTY
30626: LIST
30627: LIST
30628: LIST
30629: PPUSH
30630: CALL_OW 69
30634: PUSH
30635: LD_EXP 1
30639: PUSH
30640: LD_EXP 2
30644: PUSH
30645: LD_EXP 3
30649: PUSH
30650: LD_EXP 4
30654: PUSH
30655: LD_EXP 5
30659: PUSH
30660: LD_EXP 6
30664: PUSH
30665: LD_EXP 7
30669: PUSH
30670: LD_EXP 8
30674: PUSH
30675: LD_EXP 9
30679: PUSH
30680: LD_EXP 10
30684: PUSH
30685: LD_EXP 11
30689: PUSH
30690: LD_EXP 12
30694: PUSH
30695: LD_EXP 13
30699: PUSH
30700: LD_EXP 14
30704: PUSH
30705: LD_EXP 19
30709: PUSH
30710: EMPTY
30711: LIST
30712: LIST
30713: LIST
30714: LIST
30715: LIST
30716: LIST
30717: LIST
30718: LIST
30719: LIST
30720: LIST
30721: LIST
30722: LIST
30723: LIST
30724: LIST
30725: LIST
30726: DIFF
30727: ST_TO_ADDR
// dlg = [ ] ;
30728: LD_ADDR_VAR 0 4
30732: PUSH
30733: EMPTY
30734: ST_TO_ADDR
// for i in temp do
30735: LD_ADDR_VAR 0 1
30739: PUSH
30740: LD_VAR 0 2
30744: PUSH
30745: FOR_IN
30746: IFFALSE 30909
// case i of Makise :
30748: LD_VAR 0 1
30752: PUSH
30753: LD_EXP 14
30757: DOUBLE
30758: EQUAL
30759: IFTRUE 30763
30761: GO 30780
30763: POP
// dlg = dlg ^ Makise ; Sonya :
30764: LD_ADDR_VAR 0 4
30768: PUSH
30769: LD_VAR 0 4
30773: PUSH
30774: LD_STRING Makise
30776: ADD
30777: ST_TO_ADDR
30778: GO 30907
30780: LD_EXP 7
30784: DOUBLE
30785: EQUAL
30786: IFTRUE 30790
30788: GO 30807
30790: POP
// dlg = dlg ^ Sonya ; Khattam :
30791: LD_ADDR_VAR 0 4
30795: PUSH
30796: LD_VAR 0 4
30800: PUSH
30801: LD_STRING Sonya
30803: ADD
30804: ST_TO_ADDR
30805: GO 30907
30807: LD_EXP 13
30811: DOUBLE
30812: EQUAL
30813: IFTRUE 30817
30815: GO 30834
30817: POP
// dlg = dlg ^ Khattam ; Aviradze :
30818: LD_ADDR_VAR 0 4
30822: PUSH
30823: LD_VAR 0 4
30827: PUSH
30828: LD_STRING Khattam
30830: ADD
30831: ST_TO_ADDR
30832: GO 30907
30834: LD_EXP 8
30838: DOUBLE
30839: EQUAL
30840: IFTRUE 30844
30842: GO 30861
30844: POP
// dlg = dlg ^ Aviradze ; else
30845: LD_ADDR_VAR 0 4
30849: PUSH
30850: LD_VAR 0 4
30854: PUSH
30855: LD_STRING Aviradze
30857: ADD
30858: ST_TO_ADDR
30859: GO 30907
30861: POP
// if GetSex ( sci ) = sex_male then
30862: LD_VAR 0 3
30866: PPUSH
30867: CALL_OW 258
30871: PUSH
30872: LD_INT 1
30874: EQUAL
30875: IFFALSE 30893
// dlg = dlg ^ SomeM else
30877: LD_ADDR_VAR 0 4
30881: PUSH
30882: LD_VAR 0 4
30886: PUSH
30887: LD_STRING SomeM
30889: ADD
30890: ST_TO_ADDR
30891: GO 30907
// dlg = dlg ^ SomeF ; end ;
30893: LD_ADDR_VAR 0 4
30897: PUSH
30898: LD_VAR 0 4
30902: PUSH
30903: LD_STRING SomeF
30905: ADD
30906: ST_TO_ADDR
30907: GO 30745
30909: POP
30910: POP
// sci = rand ( 1 , temp ) ;
30911: LD_ADDR_VAR 0 3
30915: PUSH
30916: LD_INT 1
30918: PPUSH
30919: LD_VAR 0 2
30923: PPUSH
30924: CALL_OW 12
30928: ST_TO_ADDR
// _1 = _1 ;
30929: LD_ADDR_VAR 0 5
30933: PUSH
30934: LD_STRING _1
30936: ST_TO_ADDR
// _2 = _2 ;
30937: LD_ADDR_VAR 0 6
30941: PUSH
30942: LD_STRING _2
30944: ST_TO_ADDR
// d_SibPlant = _SibPlant ;
30945: LD_ADDR_VAR 0 7
30949: PUSH
30950: LD_STRING _SibPlant
30952: ST_TO_ADDR
// d_Beh1 = _Beh1 ;
30953: LD_ADDR_VAR 0 8
30957: PUSH
30958: LD_STRING _Beh1
30960: ST_TO_ADDR
// d_Beh2 = _Beh2 ;
30961: LD_ADDR_VAR 0 9
30965: PUSH
30966: LD_STRING _Beh2
30968: ST_TO_ADDR
// d_TimeLapse = _TimeLapse ;
30969: LD_ADDR_VAR 0 10
30973: PUSH
30974: LD_STRING _TimeLapse
30976: ST_TO_ADDR
// d_laser = _Laser ;
30977: LD_ADDR_VAR 0 11
30981: PUSH
30982: LD_STRING _Laser
30984: ST_TO_ADDR
// d_SuperStim1 = _SuperStim1 ;
30985: LD_ADDR_VAR 0 12
30989: PUSH
30990: LD_STRING _SuperStim1
30992: ST_TO_ADDR
// d_SuperStim2 = _SuperStim2 ;
30993: LD_ADDR_VAR 0 13
30997: PUSH
30998: LD_STRING _SuperStim2
31000: ST_TO_ADDR
// d_SPBomb = _SPBomb ;
31001: LD_ADDR_VAR 0 14
31005: PUSH
31006: LD_STRING _SPBomb
31008: ST_TO_ADDR
// wait ( 0 0$1 ) ;
31009: LD_INT 35
31011: PPUSH
31012: CALL_OW 67
// DialogueOn ;
31016: CALL_OW 6
// Say ( Heike , ArtTech_Heike_1 ) ;
31020: LD_EXP 1
31024: PPUSH
31025: LD_STRING ArtTech_Heike_1
31027: PPUSH
31028: CALL_OW 88
// Say ( temp [ sci ] , ArtTech_ & dlg [ sci ] & _1 ) ;
31032: LD_VAR 0 2
31036: PUSH
31037: LD_VAR 0 3
31041: ARRAY
31042: PPUSH
31043: LD_STRING ArtTech_
31045: PUSH
31046: LD_VAR 0 4
31050: PUSH
31051: LD_VAR 0 3
31055: ARRAY
31056: STR
31057: PUSH
31058: LD_VAR 0 5
31062: STR
31063: PPUSH
31064: CALL_OW 88
// Say ( Heike , ArtTech_Heike_2 ) ;
31068: LD_EXP 1
31072: PPUSH
31073: LD_STRING ArtTech_Heike_2
31075: PPUSH
31076: CALL_OW 88
// Say ( temp [ sci ] , ArtTech_ & dlg [ sci ] & _2 ) ;
31080: LD_VAR 0 2
31084: PUSH
31085: LD_VAR 0 3
31089: ARRAY
31090: PPUSH
31091: LD_STRING ArtTech_
31093: PUSH
31094: LD_VAR 0 4
31098: PUSH
31099: LD_VAR 0 3
31103: ARRAY
31104: STR
31105: PUSH
31106: LD_VAR 0 6
31110: STR
31111: PPUSH
31112: CALL_OW 88
// ArtResearchList = [ ] ;
31116: LD_ADDR_EXP 99
31120: PUSH
31121: EMPTY
31122: ST_TO_ADDR
// if ATech_SibPlant then
31123: LD_EXP 92
31127: IFFALSE 31197
// begin sci = rand ( 1 , temp ) ;
31129: LD_ADDR_VAR 0 3
31133: PUSH
31134: LD_INT 1
31136: PPUSH
31137: LD_VAR 0 2
31141: PPUSH
31142: CALL_OW 12
31146: ST_TO_ADDR
// Say ( temp [ sci ] , ArtTech_ & dlg [ sci ] & d_SibPlant ) ;
31147: LD_VAR 0 2
31151: PUSH
31152: LD_VAR 0 3
31156: ARRAY
31157: PPUSH
31158: LD_STRING ArtTech_
31160: PUSH
31161: LD_VAR 0 4
31165: PUSH
31166: LD_VAR 0 3
31170: ARRAY
31171: STR
31172: PUSH
31173: LD_VAR 0 7
31177: STR
31178: PPUSH
31179: CALL_OW 88
// ArtResearchList = ArtResearchList ^ 1 ;
31183: LD_ADDR_EXP 99
31187: PUSH
31188: LD_EXP 99
31192: PUSH
31193: LD_INT 1
31195: ADD
31196: ST_TO_ADDR
// end ; if ATech_Beh then
31197: LD_EXP 93
31201: IFFALSE 31307
// begin sci = rand ( 1 , temp ) ;
31203: LD_ADDR_VAR 0 3
31207: PUSH
31208: LD_INT 1
31210: PPUSH
31211: LD_VAR 0 2
31215: PPUSH
31216: CALL_OW 12
31220: ST_TO_ADDR
// Say ( temp [ sci ] , ArtTech_ & dlg [ sci ] & d_Beh1 ) ;
31221: LD_VAR 0 2
31225: PUSH
31226: LD_VAR 0 3
31230: ARRAY
31231: PPUSH
31232: LD_STRING ArtTech_
31234: PUSH
31235: LD_VAR 0 4
31239: PUSH
31240: LD_VAR 0 3
31244: ARRAY
31245: STR
31246: PUSH
31247: LD_VAR 0 8
31251: STR
31252: PPUSH
31253: CALL_OW 88
// Say ( temp [ sci ] , ArtTech_ & dlg [ sci ] & d_Beh2 ) ;
31257: LD_VAR 0 2
31261: PUSH
31262: LD_VAR 0 3
31266: ARRAY
31267: PPUSH
31268: LD_STRING ArtTech_
31270: PUSH
31271: LD_VAR 0 4
31275: PUSH
31276: LD_VAR 0 3
31280: ARRAY
31281: STR
31282: PUSH
31283: LD_VAR 0 9
31287: STR
31288: PPUSH
31289: CALL_OW 88
// ArtResearchList = ArtResearchList ^ 2 ;
31293: LD_ADDR_EXP 99
31297: PUSH
31298: LD_EXP 99
31302: PUSH
31303: LD_INT 2
31305: ADD
31306: ST_TO_ADDR
// end ; if ATech_TimeLapse then
31307: LD_EXP 94
31311: IFFALSE 31381
// begin sci = rand ( 1 , temp ) ;
31313: LD_ADDR_VAR 0 3
31317: PUSH
31318: LD_INT 1
31320: PPUSH
31321: LD_VAR 0 2
31325: PPUSH
31326: CALL_OW 12
31330: ST_TO_ADDR
// Say ( temp [ sci ] , ArtTech_ & dlg [ sci ] & d_TimeLapse ) ;
31331: LD_VAR 0 2
31335: PUSH
31336: LD_VAR 0 3
31340: ARRAY
31341: PPUSH
31342: LD_STRING ArtTech_
31344: PUSH
31345: LD_VAR 0 4
31349: PUSH
31350: LD_VAR 0 3
31354: ARRAY
31355: STR
31356: PUSH
31357: LD_VAR 0 10
31361: STR
31362: PPUSH
31363: CALL_OW 88
// ArtResearchList = ArtResearchList ^ 3 ;
31367: LD_ADDR_EXP 99
31371: PUSH
31372: LD_EXP 99
31376: PUSH
31377: LD_INT 3
31379: ADD
31380: ST_TO_ADDR
// end ; if ATech_Laser then
31381: LD_EXP 95
31385: IFFALSE 31529
// begin if IsOk ( Khattam ) and IsPlaced ( Khattam ) then
31387: LD_EXP 13
31391: PPUSH
31392: CALL_OW 302
31396: PUSH
31397: LD_EXP 13
31401: PPUSH
31402: CALL_OW 305
31406: AND
31407: IFFALSE 31461
// begin for i = 1 to temp do
31409: LD_ADDR_VAR 0 1
31413: PUSH
31414: DOUBLE
31415: LD_INT 1
31417: DEC
31418: ST_TO_ADDR
31419: LD_VAR 0 2
31423: PUSH
31424: FOR_TO
31425: IFFALSE 31457
// if temp [ i ] = Khattam then
31427: LD_VAR 0 2
31431: PUSH
31432: LD_VAR 0 1
31436: ARRAY
31437: PUSH
31438: LD_EXP 13
31442: EQUAL
31443: IFFALSE 31455
// sci = i ;
31445: LD_ADDR_VAR 0 3
31449: PUSH
31450: LD_VAR 0 1
31454: ST_TO_ADDR
31455: GO 31424
31457: POP
31458: POP
// end else
31459: GO 31479
// sci = rand ( 1 , temp ) ;
31461: LD_ADDR_VAR 0 3
31465: PUSH
31466: LD_INT 1
31468: PPUSH
31469: LD_VAR 0 2
31473: PPUSH
31474: CALL_OW 12
31478: ST_TO_ADDR
// Say ( temp [ sci ] , ArtTech_ & dlg [ sci ] & d_laser ) ;
31479: LD_VAR 0 2
31483: PUSH
31484: LD_VAR 0 3
31488: ARRAY
31489: PPUSH
31490: LD_STRING ArtTech_
31492: PUSH
31493: LD_VAR 0 4
31497: PUSH
31498: LD_VAR 0 3
31502: ARRAY
31503: STR
31504: PUSH
31505: LD_VAR 0 11
31509: STR
31510: PPUSH
31511: CALL_OW 88
// ArtResearchList = ArtResearchList ^ 4 ;
31515: LD_ADDR_EXP 99
31519: PUSH
31520: LD_EXP 99
31524: PUSH
31525: LD_INT 4
31527: ADD
31528: ST_TO_ADDR
// end ; if ATech_SuperStim then
31529: LD_EXP 96
31533: IFFALSE 31639
// begin sci = rand ( 1 , temp ) ;
31535: LD_ADDR_VAR 0 3
31539: PUSH
31540: LD_INT 1
31542: PPUSH
31543: LD_VAR 0 2
31547: PPUSH
31548: CALL_OW 12
31552: ST_TO_ADDR
// Say ( temp [ sci ] , ArtTech_ & dlg [ sci ] & d_SuperStim1 ) ;
31553: LD_VAR 0 2
31557: PUSH
31558: LD_VAR 0 3
31562: ARRAY
31563: PPUSH
31564: LD_STRING ArtTech_
31566: PUSH
31567: LD_VAR 0 4
31571: PUSH
31572: LD_VAR 0 3
31576: ARRAY
31577: STR
31578: PUSH
31579: LD_VAR 0 12
31583: STR
31584: PPUSH
31585: CALL_OW 88
// Say ( temp [ sci ] , ArtTech_ & dlg [ sci ] & d_SuperStim2 ) ;
31589: LD_VAR 0 2
31593: PUSH
31594: LD_VAR 0 3
31598: ARRAY
31599: PPUSH
31600: LD_STRING ArtTech_
31602: PUSH
31603: LD_VAR 0 4
31607: PUSH
31608: LD_VAR 0 3
31612: ARRAY
31613: STR
31614: PUSH
31615: LD_VAR 0 13
31619: STR
31620: PPUSH
31621: CALL_OW 88
// ArtResearchList = ArtResearchList ^ 5 ;
31625: LD_ADDR_EXP 99
31629: PUSH
31630: LD_EXP 99
31634: PUSH
31635: LD_INT 5
31637: ADD
31638: ST_TO_ADDR
// end ; if ATech_SPBomb then
31639: LD_EXP 97
31643: IFFALSE 31713
// begin sci = rand ( 1 , temp ) ;
31645: LD_ADDR_VAR 0 3
31649: PUSH
31650: LD_INT 1
31652: PPUSH
31653: LD_VAR 0 2
31657: PPUSH
31658: CALL_OW 12
31662: ST_TO_ADDR
// Say ( temp [ sci ] , ArtTech_ & dlg [ sci ] & d_SPBomb ) ;
31663: LD_VAR 0 2
31667: PUSH
31668: LD_VAR 0 3
31672: ARRAY
31673: PPUSH
31674: LD_STRING ArtTech_
31676: PUSH
31677: LD_VAR 0 4
31681: PUSH
31682: LD_VAR 0 3
31686: ARRAY
31687: STR
31688: PUSH
31689: LD_VAR 0 14
31693: STR
31694: PPUSH
31695: CALL_OW 88
// ArtResearchList = ArtResearchList ^ 6 ;
31699: LD_ADDR_EXP 99
31703: PUSH
31704: LD_EXP 99
31708: PUSH
31709: LD_INT 6
31711: ADD
31712: ST_TO_ADDR
// end ; ArtResearchList = ArtResearchList ^ 7 ;
31713: LD_ADDR_EXP 99
31717: PUSH
31718: LD_EXP 99
31722: PUSH
31723: LD_INT 7
31725: ADD
31726: ST_TO_ADDR
// DWait ( 0 0$1 ) ;
31727: LD_INT 35
31729: PPUSH
31730: CALL_OW 68
// Query ( art_tech_info ) ;
31734: LD_STRING art_tech_info
31736: PPUSH
31737: CALL_OW 97
// if [ ATech_SibPlant , ATech_Beh , ATech_TimeLapse , ATech_Laser , ATech_SuperStim , ATech_SPBomb ] diff 0 > 1 then
31741: LD_EXP 92
31745: PUSH
31746: LD_EXP 93
31750: PUSH
31751: LD_EXP 94
31755: PUSH
31756: LD_EXP 95
31760: PUSH
31761: LD_EXP 96
31765: PUSH
31766: LD_EXP 97
31770: PUSH
31771: EMPTY
31772: LIST
31773: LIST
31774: LIST
31775: LIST
31776: LIST
31777: LIST
31778: PUSH
31779: LD_INT 0
31781: PUSH
31782: LD_INT 1
31784: GREATER
31785: DIFF
31786: IFFALSE 31798
// ArtResearchCount = 2 else
31788: LD_ADDR_EXP 98
31792: PUSH
31793: LD_INT 2
31795: ST_TO_ADDR
31796: GO 31806
// ArtResearchCount = 1 ;
31798: LD_ADDR_EXP 98
31802: PUSH
31803: LD_INT 1
31805: ST_TO_ADDR
// DialogueOff ;
31806: CALL_OW 7
// end ;
31810: PPOPN 14
31812: END
// on ArtifactUnloaded ( un , art ) do var temp , i ;
31813: LD_INT 0
31815: PPUSH
31816: PPUSH
// begin if art = 5 then
31817: LD_VAR 0 2
31821: PUSH
31822: LD_INT 5
31824: EQUAL
31825: IFFALSE 31829
// exit ;
31827: GO 32454
// temp = FilterAllUnits ( [ [ f_side , 2 ] , [ f_or , [ f_btype , b_lab ] , [ f_btype , b_lab_half ] , [ f_btype , b_lab_full ] ] ] ) ;
31829: LD_ADDR_VAR 0 3
31833: PUSH
31834: LD_INT 22
31836: PUSH
31837: LD_INT 2
31839: PUSH
31840: EMPTY
31841: LIST
31842: LIST
31843: PUSH
31844: LD_INT 2
31846: PUSH
31847: LD_INT 30
31849: PUSH
31850: LD_INT 6
31852: PUSH
31853: EMPTY
31854: LIST
31855: LIST
31856: PUSH
31857: LD_INT 30
31859: PUSH
31860: LD_INT 7
31862: PUSH
31863: EMPTY
31864: LIST
31865: LIST
31866: PUSH
31867: LD_INT 30
31869: PUSH
31870: LD_INT 8
31872: PUSH
31873: EMPTY
31874: LIST
31875: LIST
31876: PUSH
31877: EMPTY
31878: LIST
31879: LIST
31880: LIST
31881: LIST
31882: PUSH
31883: EMPTY
31884: LIST
31885: LIST
31886: PPUSH
31887: CALL_OW 69
31891: ST_TO_ADDR
// SibLab = 0 ;
31892: LD_ADDR_EXP 91
31896: PUSH
31897: LD_INT 0
31899: ST_TO_ADDR
// for i in temp do
31900: LD_ADDR_VAR 0 4
31904: PUSH
31905: LD_VAR 0 3
31909: PUSH
31910: FOR_IN
31911: IFFALSE 31981
// if GetLabKind ( i , 1 ) = b_lab_siberium or GetLabKind ( i , 2 ) = b_lab_siberium then
31913: LD_VAR 0 4
31917: PPUSH
31918: LD_INT 1
31920: PPUSH
31921: CALL_OW 268
31925: PUSH
31926: LD_INT 11
31928: EQUAL
31929: PUSH
31930: LD_VAR 0 4
31934: PPUSH
31935: LD_INT 2
31937: PPUSH
31938: CALL_OW 268
31942: PUSH
31943: LD_INT 11
31945: EQUAL
31946: OR
31947: IFFALSE 31979
// if GetDistUnits ( un , i ) < 7 then
31949: LD_VAR 0 1
31953: PPUSH
31954: LD_VAR 0 4
31958: PPUSH
31959: CALL_OW 296
31963: PUSH
31964: LD_INT 7
31966: LESS
31967: IFFALSE 31979
// SibLab = i ;
31969: LD_ADDR_EXP 91
31973: PUSH
31974: LD_VAR 0 4
31978: ST_TO_ADDR
31979: GO 31910
31981: POP
31982: POP
// if SibLab = 0 then
31983: LD_EXP 91
31987: PUSH
31988: LD_INT 0
31990: EQUAL
31991: IFFALSE 31995
// exit ;
31993: GO 32454
// if GetTech ( tech_artifact , 2 ) = state_enabled then
31995: LD_INT 24
31997: PPUSH
31998: LD_INT 2
32000: PPUSH
32001: CALL_OW 321
32005: PUSH
32006: LD_INT 1
32008: EQUAL
32009: IFFALSE 32021
// SetArtifactRes ( 2 , true ) ;
32011: LD_INT 2
32013: PPUSH
32014: LD_INT 1
32016: PPUSH
32017: CALL_OW 467
// if ArtResearchCount = 0 then
32021: LD_EXP 98
32025: PUSH
32026: LD_INT 0
32028: EQUAL
32029: IFFALSE 32033
// exit ;
32031: GO 32454
// repeat wait ( 0 0$0.5 ) ;
32033: LD_INT 18
32035: PPUSH
32036: CALL_OW 67
// case SelectiveQuery ( art_tech_choice , ArtResearchList ) of 1 :
32040: LD_STRING art_tech_choice
32042: PPUSH
32043: LD_EXP 99
32047: PPUSH
32048: CALL_OW 98
32052: PUSH
32053: LD_INT 1
32055: DOUBLE
32056: EQUAL
32057: IFTRUE 32061
32059: GO 32084
32061: POP
// if Query ( art_tech_plant ) = 1 then
32062: LD_STRING art_tech_plant
32064: PPUSH
32065: CALL_OW 97
32069: PUSH
32070: LD_INT 1
32072: EQUAL
32073: IFFALSE 32082
// PrepareResearch ( 1 ) ; 2 :
32075: LD_INT 1
32077: PPUSH
32078: CALL 32503 0 1
32082: GO 32411
32084: LD_INT 2
32086: DOUBLE
32087: EQUAL
32088: IFTRUE 32092
32090: GO 32115
32092: POP
// if Query ( art_tech_beh ) = 1 then
32093: LD_STRING art_tech_beh
32095: PPUSH
32096: CALL_OW 97
32100: PUSH
32101: LD_INT 1
32103: EQUAL
32104: IFFALSE 32113
// PrepareResearch ( 2 ) ; 3 :
32106: LD_INT 2
32108: PPUSH
32109: CALL 32503 0 1
32113: GO 32411
32115: LD_INT 3
32117: DOUBLE
32118: EQUAL
32119: IFTRUE 32123
32121: GO 32225
32123: POP
// case difficulty of 1 :
32124: LD_OWVAR 67
32128: PUSH
32129: LD_INT 1
32131: DOUBLE
32132: EQUAL
32133: IFTRUE 32137
32135: GO 32160
32137: POP
// if Query ( art_tech_time_easy ) = 1 then
32138: LD_STRING art_tech_time_easy
32140: PPUSH
32141: CALL_OW 97
32145: PUSH
32146: LD_INT 1
32148: EQUAL
32149: IFFALSE 32158
// PrepareResearch ( 3 ) ; 2 :
32151: LD_INT 3
32153: PPUSH
32154: CALL 32503 0 1
32158: GO 32223
32160: LD_INT 2
32162: DOUBLE
32163: EQUAL
32164: IFTRUE 32168
32166: GO 32191
32168: POP
// if Query ( art_tech_time_medium ) = 1 then
32169: LD_STRING art_tech_time_medium
32171: PPUSH
32172: CALL_OW 97
32176: PUSH
32177: LD_INT 1
32179: EQUAL
32180: IFFALSE 32189
// PrepareResearch ( 3 ) ; 3 :
32182: LD_INT 3
32184: PPUSH
32185: CALL 32503 0 1
32189: GO 32223
32191: LD_INT 3
32193: DOUBLE
32194: EQUAL
32195: IFTRUE 32199
32197: GO 32222
32199: POP
// if Query ( art_tech_time_hard ) = 1 then
32200: LD_STRING art_tech_time_hard
32202: PPUSH
32203: CALL_OW 97
32207: PUSH
32208: LD_INT 1
32210: EQUAL
32211: IFFALSE 32220
// PrepareResearch ( 3 ) ; end ; 4 :
32213: LD_INT 3
32215: PPUSH
32216: CALL 32503 0 1
32220: GO 32223
32222: POP
32223: GO 32411
32225: LD_INT 4
32227: DOUBLE
32228: EQUAL
32229: IFTRUE 32233
32231: GO 32335
32233: POP
// case difficulty of 1 :
32234: LD_OWVAR 67
32238: PUSH
32239: LD_INT 1
32241: DOUBLE
32242: EQUAL
32243: IFTRUE 32247
32245: GO 32270
32247: POP
// if Query ( art_tech_laser_easy ) = 1 then
32248: LD_STRING art_tech_laser_easy
32250: PPUSH
32251: CALL_OW 97
32255: PUSH
32256: LD_INT 1
32258: EQUAL
32259: IFFALSE 32268
// PrepareResearch ( 4 ) ; 2 :
32261: LD_INT 4
32263: PPUSH
32264: CALL 32503 0 1
32268: GO 32333
32270: LD_INT 2
32272: DOUBLE
32273: EQUAL
32274: IFTRUE 32278
32276: GO 32301
32278: POP
// if Query ( art_tech_laser_medium ) = 1 then
32279: LD_STRING art_tech_laser_medium
32281: PPUSH
32282: CALL_OW 97
32286: PUSH
32287: LD_INT 1
32289: EQUAL
32290: IFFALSE 32299
// PrepareResearch ( 4 ) ; 3 :
32292: LD_INT 4
32294: PPUSH
32295: CALL 32503 0 1
32299: GO 32333
32301: LD_INT 3
32303: DOUBLE
32304: EQUAL
32305: IFTRUE 32309
32307: GO 32332
32309: POP
// if Query ( art_tech_laser_hard ) = 1 then
32310: LD_STRING art_tech_laser_hard
32312: PPUSH
32313: CALL_OW 97
32317: PUSH
32318: LD_INT 1
32320: EQUAL
32321: IFFALSE 32330
// PrepareResearch ( 4 ) ; end ; 5 :
32323: LD_INT 4
32325: PPUSH
32326: CALL 32503 0 1
32330: GO 32333
32332: POP
32333: GO 32411
32335: LD_INT 5
32337: DOUBLE
32338: EQUAL
32339: IFTRUE 32343
32341: GO 32366
32343: POP
// if Query ( art_tech_stim ) = 1 then
32344: LD_STRING art_tech_stim
32346: PPUSH
32347: CALL_OW 97
32351: PUSH
32352: LD_INT 1
32354: EQUAL
32355: IFFALSE 32364
// PrepareResearch ( 5 ) ; 6 :
32357: LD_INT 5
32359: PPUSH
32360: CALL 32503 0 1
32364: GO 32411
32366: LD_INT 6
32368: DOUBLE
32369: EQUAL
32370: IFTRUE 32374
32372: GO 32397
32374: POP
// if Query ( art_tech_bomb ) = 1 then
32375: LD_STRING art_tech_bomb
32377: PPUSH
32378: CALL_OW 97
32382: PUSH
32383: LD_INT 1
32385: EQUAL
32386: IFFALSE 32395
// PrepareResearch ( 6 ) ; 7 :
32388: LD_INT 6
32390: PPUSH
32391: CALL 32503 0 1
32395: GO 32411
32397: LD_INT 7
32399: DOUBLE
32400: EQUAL
32401: IFTRUE 32405
32403: GO 32410
32405: POP
// break ; end ;
32406: GO 32454
32408: GO 32411
32410: POP
// until 2 in [ ATech_SibPlant , ATech_Beh , ATech_TimeLapse , ATech_Laser , ATech_SuperStim , ATech_SPBomb ] ;
32411: LD_INT 2
32413: PUSH
32414: LD_EXP 92
32418: PUSH
32419: LD_EXP 93
32423: PUSH
32424: LD_EXP 94
32428: PUSH
32429: LD_EXP 95
32433: PUSH
32434: LD_EXP 96
32438: PUSH
32439: LD_EXP 97
32443: PUSH
32444: EMPTY
32445: LIST
32446: LIST
32447: LIST
32448: LIST
32449: LIST
32450: LIST
32451: IN
32452: IFFALSE 32033
// end ;
32454: PPOPN 4
32456: END
// on ArtifactLoaded ( un , size ) do begin if not GetTech ( tech_artifact , 2 ) = state_researched then
32457: LD_INT 24
32459: PPUSH
32460: LD_INT 2
32462: PPUSH
32463: CALL_OW 321
32467: PUSH
32468: LD_INT 2
32470: EQUAL
32471: NOT
32472: IFFALSE 32484
// SetArtifactRes ( 2 , false ) ;
32474: LD_INT 2
32476: PPUSH
32477: LD_INT 0
32479: PPUSH
32480: CALL_OW 467
// PrepareResearch ( 0 ) ;
32484: LD_INT 0
32486: PPUSH
32487: CALL 32503 0 1
// ComCancel ( SibLab ) ;
32491: LD_EXP 91
32495: PPUSH
32496: CALL_OW 127
// end ;
32500: PPOPN 2
32502: END
// function PrepareResearch ( num ) ; var i , temp ; begin
32503: LD_INT 0
32505: PPUSH
32506: PPUSH
32507: PPUSH
// if ATech_SibPlant = 2 then
32508: LD_EXP 92
32512: PUSH
32513: LD_INT 2
32515: EQUAL
32516: IFFALSE 32542
// begin ATech_SibPlant = 1 ;
32518: LD_ADDR_EXP 92
32522: PUSH
32523: LD_INT 1
32525: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_power , art_no , 0 ) ;
32526: LD_INT 2
32528: PPUSH
32529: LD_INT 9
32531: PPUSH
32532: LD_INT 0
32534: PPUSH
32535: LD_INT 0
32537: PPUSH
32538: CALL_OW 468
// end ; if ATech_Beh = 2 then
32542: LD_EXP 93
32546: PUSH
32547: LD_INT 2
32549: EQUAL
32550: IFFALSE 32576
// begin ATech_Beh = 1 ;
32552: LD_ADDR_EXP 93
32556: PUSH
32557: LD_INT 1
32559: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_atom , art_no , 0 ) ;
32560: LD_INT 2
32562: PPUSH
32563: LD_INT 7
32565: PPUSH
32566: LD_INT 0
32568: PPUSH
32569: LD_INT 0
32571: PPUSH
32572: CALL_OW 468
// end ; if ATech_TimeLapse = 2 then
32576: LD_EXP 94
32580: PUSH
32581: LD_INT 2
32583: EQUAL
32584: IFFALSE 32610
// begin ATech_TimeLapse = 1 ;
32586: LD_ADDR_EXP 94
32590: PUSH
32591: LD_INT 1
32593: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_tau , art_no , 0 ) ;
32594: LD_INT 2
32596: PPUSH
32597: LD_INT 14
32599: PPUSH
32600: LD_INT 0
32602: PPUSH
32603: LD_INT 0
32605: PPUSH
32606: CALL_OW 468
// end ; if ATech_Laser = 2 then
32610: LD_EXP 95
32614: PUSH
32615: LD_INT 2
32617: EQUAL
32618: IFFALSE 32644
// begin ATech_Laser = 1 ;
32620: LD_ADDR_EXP 95
32624: PUSH
32625: LD_INT 1
32627: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_cube , art_no , 0 ) ;
32628: LD_INT 2
32630: PPUSH
32631: LD_INT 8
32633: PPUSH
32634: LD_INT 0
32636: PPUSH
32637: LD_INT 0
32639: PPUSH
32640: CALL_OW 468
// end ; if ATech_SuperStim = 2 then
32644: LD_EXP 96
32648: PUSH
32649: LD_INT 2
32651: EQUAL
32652: IFFALSE 32678
// begin ATech_SuperStim = 1 ;
32654: LD_ADDR_EXP 96
32658: PUSH
32659: LD_INT 1
32661: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_human , art_no , 0 ) ;
32662: LD_INT 2
32664: PPUSH
32665: LD_INT 10
32667: PPUSH
32668: LD_INT 0
32670: PPUSH
32671: LD_INT 0
32673: PPUSH
32674: CALL_OW 468
// end ; if ATech_SPBomb = 2 then
32678: LD_EXP 97
32682: PUSH
32683: LD_INT 2
32685: EQUAL
32686: IFFALSE 32712
// begin ATech_SPBomb = 1 ;
32688: LD_ADDR_EXP 97
32692: PUSH
32693: LD_INT 1
32695: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_sibexplosion , art_no , 0 ) ;
32696: LD_INT 2
32698: PPUSH
32699: LD_INT 5
32701: PPUSH
32702: LD_INT 0
32704: PPUSH
32705: LD_INT 0
32707: PPUSH
32708: CALL_OW 468
// end ; case num of 1 :
32712: LD_VAR 0 1
32716: PUSH
32717: LD_INT 1
32719: DOUBLE
32720: EQUAL
32721: IFTRUE 32725
32723: GO 32754
32725: POP
// begin ATech_SibPlant = 2 ;
32726: LD_ADDR_EXP 92
32730: PUSH
32731: LD_INT 2
32733: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_power , art_instant , SibLab ) ;
32734: LD_INT 2
32736: PPUSH
32737: LD_INT 9
32739: PPUSH
32740: LD_INT 2
32742: PPUSH
32743: LD_EXP 91
32747: PPUSH
32748: CALL_OW 468
// end ; 2 :
32752: GO 32940
32754: LD_INT 2
32756: DOUBLE
32757: EQUAL
32758: IFTRUE 32762
32760: GO 32791
32762: POP
// begin ATech_Beh = 2 ;
32763: LD_ADDR_EXP 93
32767: PUSH
32768: LD_INT 2
32770: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_atom , art_instant , SibLab ) ;
32771: LD_INT 2
32773: PPUSH
32774: LD_INT 7
32776: PPUSH
32777: LD_INT 2
32779: PPUSH
32780: LD_EXP 91
32784: PPUSH
32785: CALL_OW 468
// end ; 3 :
32789: GO 32940
32791: LD_INT 3
32793: DOUBLE
32794: EQUAL
32795: IFTRUE 32799
32797: GO 32828
32799: POP
// begin ATech_TimeLapse = 2 ;
32800: LD_ADDR_EXP 94
32804: PUSH
32805: LD_INT 2
32807: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_tau , art_instant , SibLab ) ;
32808: LD_INT 2
32810: PPUSH
32811: LD_INT 14
32813: PPUSH
32814: LD_INT 2
32816: PPUSH
32817: LD_EXP 91
32821: PPUSH
32822: CALL_OW 468
// end ; 4 :
32826: GO 32940
32828: LD_INT 4
32830: DOUBLE
32831: EQUAL
32832: IFTRUE 32836
32834: GO 32865
32836: POP
// begin ATech_Laser = 2 ;
32837: LD_ADDR_EXP 95
32841: PUSH
32842: LD_INT 2
32844: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_cube , art_instant , SibLab ) ;
32845: LD_INT 2
32847: PPUSH
32848: LD_INT 8
32850: PPUSH
32851: LD_INT 2
32853: PPUSH
32854: LD_EXP 91
32858: PPUSH
32859: CALL_OW 468
// end ; 5 :
32863: GO 32940
32865: LD_INT 5
32867: DOUBLE
32868: EQUAL
32869: IFTRUE 32873
32871: GO 32902
32873: POP
// begin ATech_SuperStim = 2 ;
32874: LD_ADDR_EXP 96
32878: PUSH
32879: LD_INT 2
32881: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_human , art_instant , SibLab ) ;
32882: LD_INT 2
32884: PPUSH
32885: LD_INT 10
32887: PPUSH
32888: LD_INT 2
32890: PPUSH
32891: LD_EXP 91
32895: PPUSH
32896: CALL_OW 468
// end ; 6 :
32900: GO 32940
32902: LD_INT 6
32904: DOUBLE
32905: EQUAL
32906: IFTRUE 32910
32908: GO 32939
32910: POP
// begin ATech_SPBomb = 2 ;
32911: LD_ADDR_EXP 97
32915: PUSH
32916: LD_INT 2
32918: ST_TO_ADDR
// SetArtifactUse ( 2 , art_use_sibexplosion , art_instant , SibLab ) ;
32919: LD_INT 2
32921: PPUSH
32922: LD_INT 5
32924: PPUSH
32925: LD_INT 2
32927: PPUSH
32928: LD_EXP 91
32932: PPUSH
32933: CALL_OW 468
// end ; end ;
32937: GO 32940
32939: POP
// end ;
32940: LD_VAR 0 2
32944: RET
// on EnterBuilding ( building , human ) do var temp , temp2 , un , i ;
32945: LD_INT 0
32947: PPUSH
32948: PPUSH
32949: PPUSH
32950: PPUSH
// begin if human = Omar and GetBType ( building ) in [ b_depot , b_warehouse ] then
32951: LD_VAR 0 2
32955: PUSH
32956: LD_EXP 2
32960: EQUAL
32961: PUSH
32962: LD_VAR 0 1
32966: PPUSH
32967: CALL_OW 266
32971: PUSH
32972: LD_INT 0
32974: PUSH
32975: LD_INT 1
32977: PUSH
32978: EMPTY
32979: LIST
32980: LIST
32981: IN
32982: AND
32983: IFFALSE 33003
// SetArtifactUse ( 2 , art_use_hand , art_instant , building ) ;
32985: LD_INT 2
32987: PPUSH
32988: LD_INT 13
32990: PPUSH
32991: LD_INT 2
32993: PPUSH
32994: LD_VAR 0 1
32998: PPUSH
32999: CALL_OW 468
// if human = Omar and GetClass ( Omar ) = class_desert_warior then
33003: LD_VAR 0 2
33007: PUSH
33008: LD_EXP 2
33012: EQUAL
33013: PUSH
33014: LD_EXP 2
33018: PPUSH
33019: CALL_OW 257
33023: PUSH
33024: LD_INT 11
33026: EQUAL
33027: AND
33028: IFFALSE 33289
// begin temp = FilterAllUnits ( [ f_class , class_tiger ] ) ;
33030: LD_ADDR_VAR 0 3
33034: PUSH
33035: LD_INT 25
33037: PUSH
33038: LD_INT 14
33040: PUSH
33041: EMPTY
33042: LIST
33043: LIST
33044: PPUSH
33045: CALL_OW 69
33049: ST_TO_ADDR
// for i in temp do
33050: LD_ADDR_VAR 0 6
33054: PUSH
33055: LD_VAR 0 3
33059: PUSH
33060: FOR_IN
33061: IFFALSE 33287
// if IsTamedBy ( i ) then
33063: LD_VAR 0 6
33067: PPUSH
33068: CALL_OW 317
33072: IFFALSE 33285
// begin temp2 = [ GetX ( i ) , GetY ( i ) , GetDir ( i ) ] ;
33074: LD_ADDR_VAR 0 4
33078: PUSH
33079: LD_VAR 0 6
33083: PPUSH
33084: CALL_OW 250
33088: PUSH
33089: LD_VAR 0 6
33093: PPUSH
33094: CALL_OW 251
33098: PUSH
33099: LD_VAR 0 6
33103: PPUSH
33104: CALL_OW 254
33108: PUSH
33109: EMPTY
33110: LIST
33111: LIST
33112: LIST
33113: ST_TO_ADDR
// DestroyUnit ( i ) ;
33114: LD_VAR 0 6
33118: PPUSH
33119: CALL_OW 65
// StrikeForce_tigers = StrikeForce_tigers - 1 ;
33123: LD_ADDR_EXP 63
33127: PUSH
33128: LD_EXP 63
33132: PUSH
33133: LD_INT 1
33135: MINUS
33136: ST_TO_ADDR
// InitHc ;
33137: CALL_OW 19
// uc_side = 0 ;
33141: LD_ADDR_OWVAR 20
33145: PUSH
33146: LD_INT 0
33148: ST_TO_ADDR
// uc_nation = nation_nature ;
33149: LD_ADDR_OWVAR 21
33153: PUSH
33154: LD_INT 0
33156: ST_TO_ADDR
// hc_agressivity = 0 ;
33157: LD_ADDR_OWVAR 35
33161: PUSH
33162: LD_INT 0
33164: ST_TO_ADDR
// hc_class = class_tiger ;
33165: LD_ADDR_OWVAR 28
33169: PUSH
33170: LD_INT 14
33172: ST_TO_ADDR
// hc_attr = [ 16 , 11 ] ;
33173: LD_ADDR_OWVAR 29
33177: PUSH
33178: LD_INT 16
33180: PUSH
33181: LD_INT 11
33183: PUSH
33184: EMPTY
33185: LIST
33186: LIST
33187: ST_TO_ADDR
// hc_skills = [ 5 , 5 , 5 , 5 ] ;
33188: LD_ADDR_OWVAR 31
33192: PUSH
33193: LD_INT 5
33195: PUSH
33196: LD_INT 5
33198: PUSH
33199: LD_INT 5
33201: PUSH
33202: LD_INT 5
33204: PUSH
33205: EMPTY
33206: LIST
33207: LIST
33208: LIST
33209: LIST
33210: ST_TO_ADDR
// hc_gallery = nature_foreg ;
33211: LD_ADDR_OWVAR 33
33215: PUSH
33216: LD_STRING nature_foreg
33218: ST_TO_ADDR
// hc_face_number = 3 ;
33219: LD_ADDR_OWVAR 34
33223: PUSH
33224: LD_INT 3
33226: ST_TO_ADDR
// un = CreateHuman ;
33227: LD_ADDR_VAR 0 5
33231: PUSH
33232: CALL_OW 44
33236: ST_TO_ADDR
// SetDir ( un , temp2 [ 3 ] ) ;
33237: LD_VAR 0 5
33241: PPUSH
33242: LD_VAR 0 4
33246: PUSH
33247: LD_INT 3
33249: ARRAY
33250: PPUSH
33251: CALL_OW 233
// PlaceUnitXY ( un , temp2 [ 1 ] , temp2 [ 2 ] , false ) ;
33255: LD_VAR 0 5
33259: PPUSH
33260: LD_VAR 0 4
33264: PUSH
33265: LD_INT 1
33267: ARRAY
33268: PPUSH
33269: LD_VAR 0 4
33273: PUSH
33274: LD_INT 2
33276: ARRAY
33277: PPUSH
33278: LD_INT 0
33280: PPUSH
33281: CALL_OW 48
// end ;
33285: GO 33060
33287: POP
33288: POP
// end ; end ;
33289: PPOPN 6
33291: END
// on LeaveBuilding ( building , human ) do begin if human = Omar and GetBType ( building ) in [ b_depot , b_warehouse ] then
33292: LD_VAR 0 2
33296: PUSH
33297: LD_EXP 2
33301: EQUAL
33302: PUSH
33303: LD_VAR 0 1
33307: PPUSH
33308: CALL_OW 266
33312: PUSH
33313: LD_INT 0
33315: PUSH
33316: LD_INT 1
33318: PUSH
33319: EMPTY
33320: LIST
33321: LIST
33322: IN
33323: AND
33324: IFFALSE 33342
// SetArtifactUse ( 2 , art_use_hand , art_no , 0 ) ;
33326: LD_INT 2
33328: PPUSH
33329: LD_INT 13
33331: PPUSH
33332: LD_INT 0
33334: PPUSH
33335: LD_INT 0
33337: PPUSH
33338: CALL_OW 468
// end ;
33342: PPOPN 2
33344: END
// on ArtifactUsed ( side , art_icon , p1 , p2 ) do var i ;
33345: LD_INT 0
33347: PPUSH
// begin if art_icon = art_use_hand then
33348: LD_VAR 0 2
33352: PUSH
33353: LD_INT 13
33355: EQUAL
33356: IFFALSE 33401
// begin if GetClass ( Omar ) = class_desert_warior then
33358: LD_EXP 2
33362: PPUSH
33363: CALL_OW 257
33367: PUSH
33368: LD_INT 11
33370: EQUAL
33371: IFFALSE 33387
// SetClass ( Omar , class_engineer ) else
33373: LD_EXP 2
33377: PPUSH
33378: LD_INT 2
33380: PPUSH
33381: CALL_OW 336
33385: GO 33399
// SetClass ( Omar , class_desert_warior ) ;
33387: LD_EXP 2
33391: PPUSH
33392: LD_INT 11
33394: PPUSH
33395: CALL_OW 336
// exit ;
33399: GO 33543
// end ; SetSpecResearch ( SibLab , 50 , true ) ;
33401: LD_EXP 91
33405: PPUSH
33406: LD_INT 50
33408: PPUSH
33409: LD_INT 1
33411: PPUSH
33412: CALL_OW 486
// PrepareResearch ( 0 ) ;
33416: LD_INT 0
33418: PPUSH
33419: CALL 32503 0 1
// case art_icon of art_use_power :
33423: LD_VAR 0 2
33427: PUSH
33428: LD_INT 9
33430: DOUBLE
33431: EQUAL
33432: IFTRUE 33436
33434: GO 33447
33436: POP
// ATech_SibPlant = 2 ; art_use_atom :
33437: LD_ADDR_EXP 92
33441: PUSH
33442: LD_INT 2
33444: ST_TO_ADDR
33445: GO 33543
33447: LD_INT 7
33449: DOUBLE
33450: EQUAL
33451: IFTRUE 33455
33453: GO 33466
33455: POP
// ATech_Beh = 2 ; art_use_tau :
33456: LD_ADDR_EXP 93
33460: PUSH
33461: LD_INT 2
33463: ST_TO_ADDR
33464: GO 33543
33466: LD_INT 14
33468: DOUBLE
33469: EQUAL
33470: IFTRUE 33474
33472: GO 33485
33474: POP
// ATech_TimeLapse = 2 ; art_use_cube :
33475: LD_ADDR_EXP 94
33479: PUSH
33480: LD_INT 2
33482: ST_TO_ADDR
33483: GO 33543
33485: LD_INT 8
33487: DOUBLE
33488: EQUAL
33489: IFTRUE 33493
33491: GO 33504
33493: POP
// ATech_Laser = 2 ; art_use_human :
33494: LD_ADDR_EXP 95
33498: PUSH
33499: LD_INT 2
33501: ST_TO_ADDR
33502: GO 33543
33504: LD_INT 10
33506: DOUBLE
33507: EQUAL
33508: IFTRUE 33512
33510: GO 33523
33512: POP
// ATech_SuperStim = 2 ; art_use_sibexplosion :
33513: LD_ADDR_EXP 96
33517: PUSH
33518: LD_INT 2
33520: ST_TO_ADDR
33521: GO 33543
33523: LD_INT 5
33525: DOUBLE
33526: EQUAL
33527: IFTRUE 33531
33529: GO 33542
33531: POP
// ATech_SPBomb = 2 ; end ;
33532: LD_ADDR_EXP 97
33536: PUSH
33537: LD_INT 2
33539: ST_TO_ADDR
33540: GO 33543
33542: POP
// end ;
33543: PPOPN 5
33545: END
// on SpecResearchComplete ( lab ) do begin if GetSide ( lab ) = 7 then
33546: LD_VAR 0 1
33550: PPUSH
33551: CALL_OW 255
33555: PUSH
33556: LD_INT 7
33558: EQUAL
33559: IFFALSE 33563
// exit ;
33561: GO 33912
// ArtTechDoneCount = ArtTechDoneCount + 1 ;
33563: LD_ADDR_EXP 64
33567: PUSH
33568: LD_EXP 64
33572: PUSH
33573: LD_INT 1
33575: PLUS
33576: ST_TO_ADDR
// if ATech_SibPlant = 2 then
33577: LD_EXP 92
33581: PUSH
33582: LD_INT 2
33584: EQUAL
33585: IFFALSE 33630
// begin ATech_SibPlant = 3 ;
33587: LD_ADDR_EXP 92
33591: PUSH
33592: LD_INT 3
33594: ST_TO_ADDR
// ArtResearchList = ArtResearchList diff 1 ;
33595: LD_ADDR_EXP 99
33599: PUSH
33600: LD_EXP 99
33604: PUSH
33605: LD_INT 1
33607: DIFF
33608: ST_TO_ADDR
// ArtResearchCount = ArtResearchCount - 1 ;
33609: LD_ADDR_EXP 98
33613: PUSH
33614: LD_EXP 98
33618: PUSH
33619: LD_INT 1
33621: MINUS
33622: ST_TO_ADDR
// PrepareResearch ( 0 ) ;
33623: LD_INT 0
33625: PPUSH
33626: CALL 32503 0 1
// end ; if ATech_Beh = 2 then
33630: LD_EXP 93
33634: PUSH
33635: LD_INT 2
33637: EQUAL
33638: IFFALSE 33683
// begin ATech_Beh = 3 ;
33640: LD_ADDR_EXP 93
33644: PUSH
33645: LD_INT 3
33647: ST_TO_ADDR
// ArtResearchList = ArtResearchList diff 2 ;
33648: LD_ADDR_EXP 99
33652: PUSH
33653: LD_EXP 99
33657: PUSH
33658: LD_INT 2
33660: DIFF
33661: ST_TO_ADDR
// ArtResearchCount = ArtResearchCount - 1 ;
33662: LD_ADDR_EXP 98
33666: PUSH
33667: LD_EXP 98
33671: PUSH
33672: LD_INT 1
33674: MINUS
33675: ST_TO_ADDR
// PrepareResearch ( 0 ) ;
33676: LD_INT 0
33678: PPUSH
33679: CALL 32503 0 1
// end ; if ATech_TimeLapse = 2 then
33683: LD_EXP 94
33687: PUSH
33688: LD_INT 2
33690: EQUAL
33691: IFFALSE 33736
// begin ATech_TimeLapse = 3 ;
33693: LD_ADDR_EXP 94
33697: PUSH
33698: LD_INT 3
33700: ST_TO_ADDR
// ArtResearchList = ArtResearchList diff 3 ;
33701: LD_ADDR_EXP 99
33705: PUSH
33706: LD_EXP 99
33710: PUSH
33711: LD_INT 3
33713: DIFF
33714: ST_TO_ADDR
// ArtResearchCount = ArtResearchCount - 1 ;
33715: LD_ADDR_EXP 98
33719: PUSH
33720: LD_EXP 98
33724: PUSH
33725: LD_INT 1
33727: MINUS
33728: ST_TO_ADDR
// PrepareResearch ( 0 ) ;
33729: LD_INT 0
33731: PPUSH
33732: CALL 32503 0 1
// end ; if ATech_Laser = 2 then
33736: LD_EXP 95
33740: PUSH
33741: LD_INT 2
33743: EQUAL
33744: IFFALSE 33789
// begin ATech_Laser = 3 ;
33746: LD_ADDR_EXP 95
33750: PUSH
33751: LD_INT 3
33753: ST_TO_ADDR
// ArtResearchList = ArtResearchList diff 4 ;
33754: LD_ADDR_EXP 99
33758: PUSH
33759: LD_EXP 99
33763: PUSH
33764: LD_INT 4
33766: DIFF
33767: ST_TO_ADDR
// ArtResearchCount = ArtResearchCount - 1 ;
33768: LD_ADDR_EXP 98
33772: PUSH
33773: LD_EXP 98
33777: PUSH
33778: LD_INT 1
33780: MINUS
33781: ST_TO_ADDR
// PrepareResearch ( 0 ) ;
33782: LD_INT 0
33784: PPUSH
33785: CALL 32503 0 1
// end ; if ATech_SuperStim = 2 then
33789: LD_EXP 96
33793: PUSH
33794: LD_INT 2
33796: EQUAL
33797: IFFALSE 33842
// begin ATech_SuperStim = 3 ;
33799: LD_ADDR_EXP 96
33803: PUSH
33804: LD_INT 3
33806: ST_TO_ADDR
// ArtResearchList = ArtResearchList diff 5 ;
33807: LD_ADDR_EXP 99
33811: PUSH
33812: LD_EXP 99
33816: PUSH
33817: LD_INT 5
33819: DIFF
33820: ST_TO_ADDR
// ArtResearchCount = ArtResearchCount - 1 ;
33821: LD_ADDR_EXP 98
33825: PUSH
33826: LD_EXP 98
33830: PUSH
33831: LD_INT 1
33833: MINUS
33834: ST_TO_ADDR
// PrepareResearch ( 0 ) ;
33835: LD_INT 0
33837: PPUSH
33838: CALL 32503 0 1
// end ; if ATech_SPBomb = 2 then
33842: LD_EXP 97
33846: PUSH
33847: LD_INT 2
33849: EQUAL
33850: IFFALSE 33895
// begin ATech_SPBomb = 3 ;
33852: LD_ADDR_EXP 97
33856: PUSH
33857: LD_INT 3
33859: ST_TO_ADDR
// ArtResearchList = ArtResearchList diff 6 ;
33860: LD_ADDR_EXP 99
33864: PUSH
33865: LD_EXP 99
33869: PUSH
33870: LD_INT 6
33872: DIFF
33873: ST_TO_ADDR
// ArtResearchCount = ArtResearchCount - 1 ;
33874: LD_ADDR_EXP 98
33878: PUSH
33879: LD_EXP 98
33883: PUSH
33884: LD_INT 1
33886: MINUS
33887: ST_TO_ADDR
// PrepareResearch ( 0 ) ;
33888: LD_INT 0
33890: PPUSH
33891: CALL 32503 0 1
// end ; if ArtResearchCount = 0 then
33895: LD_EXP 98
33899: PUSH
33900: LD_INT 0
33902: EQUAL
33903: IFFALSE 33912
// ChangeMissionObjectives ( arttech2 ) ;
33905: LD_STRING arttech2
33907: PPUSH
33908: CALL_OW 337
// end ;
33912: PPOPN 1
33914: END
// every 0 0$1 trigger 3 in [ ATech_SibPlant , ATech_Beh , ATech_TimeLapse , ATech_Laser , ATech_SuperStim , ATech_SPBomb ] do
33915: LD_INT 3
33917: PUSH
33918: LD_EXP 92
33922: PUSH
33923: LD_EXP 93
33927: PUSH
33928: LD_EXP 94
33932: PUSH
33933: LD_EXP 95
33937: PUSH
33938: LD_EXP 96
33942: PUSH
33943: LD_EXP 97
33947: PUSH
33948: EMPTY
33949: LIST
33950: LIST
33951: LIST
33952: LIST
33953: LIST
33954: LIST
33955: IN
33956: IFFALSE 33976
33958: GO 33960
33960: DISABLE
// begin Query ( art_tech_general ) ;
33961: LD_STRING art_tech_general
33963: PPUSH
33964: CALL_OW 97
// ArtInfo = 1 ;
33968: LD_ADDR_EXP 100
33972: PUSH
33973: LD_INT 1
33975: ST_TO_ADDR
// end ;
33976: END
// on ResearchStarted ( res , lab ) do begin if lab = SibLab then
33977: LD_VAR 0 2
33981: PUSH
33982: LD_EXP 91
33986: EQUAL
33987: IFFALSE 33996
// PrepareResearch ( 0 ) ;
33989: LD_INT 0
33991: PPUSH
33992: CALL 32503 0 1
// end ;
33996: PPOPN 2
33998: END
// every 0 0$1 trigger AllianceDestroyed = 0 do var temp ;
33999: LD_EXP 50
34003: PUSH
34004: LD_INT 0
34006: EQUAL
34007: IFFALSE 34114
34009: GO 34011
34011: DISABLE
34012: LD_INT 0
34014: PPUSH
// begin Randomize ;
34015: CALL_OW 10
// SetArtifactRes ( 7 , true ) ;
34019: LD_INT 7
34021: PPUSH
34022: LD_INT 1
34024: PPUSH
34025: CALL_OW 467
// SetTech ( tech_artifact , 7 , state_enabled ) ;
34029: LD_INT 24
34031: PPUSH
34032: LD_INT 7
34034: PPUSH
34035: LD_INT 1
34037: PPUSH
34038: CALL_OW 322
// if IsIdle ( All_lab1 ) then
34042: LD_EXP 40
34046: PPUSH
34047: CALL_OW 316
34051: IFFALSE 34113
// begin wait ( rand ( 0 0$5 , 0 0$20 ) ) ;
34053: LD_INT 175
34055: PPUSH
34056: LD_INT 700
34058: PPUSH
34059: CALL_OW 12
34063: PPUSH
34064: CALL_OW 67
// if Rand ( 1 , 2 ) = 1 then
34068: LD_INT 1
34070: PPUSH
34071: LD_INT 2
34073: PPUSH
34074: CALL_OW 12
34078: PUSH
34079: LD_INT 1
34081: EQUAL
34082: IFFALSE 34101
// SetSpecResearch ( All_lab1 , 100 , true ) else
34084: LD_EXP 40
34088: PPUSH
34089: LD_INT 100
34091: PPUSH
34092: LD_INT 1
34094: PPUSH
34095: CALL_OW 486
34099: GO 34113
// Comresearch ( All_lab1 , tech_artifact ) ;
34101: LD_EXP 40
34105: PPUSH
34106: LD_INT 24
34108: PPUSH
34109: CALL_OW 124
// end ; enable ;
34113: ENABLE
// end ;
34114: PPOPN 1
34116: END
// every 0 0$1 trigger AllianceDestroyed do
34117: LD_EXP 50
34121: IFFALSE 34185
34123: GO 34125
34125: DISABLE
// begin DialogueOn ;
34126: CALL_OW 6
// if Gossudarov then
34130: LD_EXP 27
34134: IFFALSE 34150
// ForceSay ( Gossudarov , All_Gossudarov ) else
34136: LD_EXP 27
34140: PPUSH
34141: LD_STRING All_Gossudarov
34143: PPUSH
34144: CALL_OW 91
34148: GO 34162
// ForceSay ( Roth , All_Roth ) ;
34150: LD_EXP 26
34154: PPUSH
34155: LD_STRING All_Roth
34157: PPUSH
34158: CALL_OW 91
// Say ( Heike , All_Heike ) ;
34162: LD_EXP 1
34166: PPUSH
34167: LD_STRING All_Heike
34169: PPUSH
34170: CALL_OW 88
// DialogueOff ;
34174: CALL_OW 7
// ChangeMissionObjectives ( Main_goals_intro4 ) ;
34178: LD_STRING Main_goals_intro4
34180: PPUSH
34181: CALL_OW 337
// end ;
34185: END
// every 0 0$1 trigger SeeArea ( 2 , AllArtifact ) > 0 do var i , un , temp ;
34186: LD_INT 2
34188: PPUSH
34189: LD_INT 12
34191: PPUSH
34192: CALL_OW 294
34196: PUSH
34197: LD_INT 0
34199: GREATER
34200: IFFALSE 34592
34202: GO 34204
34204: DISABLE
34205: LD_INT 0
34207: PPUSH
34208: PPUSH
34209: PPUSH
// begin temp = 99 ;
34210: LD_ADDR_VAR 0 3
34214: PUSH
34215: LD_INT 99
34217: ST_TO_ADDR
// for i in FilterAllUnits ( [ [ f_side , 2 ] , [ f_or , [ f_class , class_soldier ] , [ f_class , class_mortar ] , [ f_class , class_mechanic ] , [ f_class , class_engineer ] , [ f_class , class_scientistic ] ] ] ) diff [ Heike , Omar , Gensher , Olaf , Oswald , Ralph , Kowalski , Evelyn , Swansson , Dwayne , Snake ] do
34218: LD_ADDR_VAR 0 1
34222: PUSH
34223: LD_INT 22
34225: PUSH
34226: LD_INT 2
34228: PUSH
34229: EMPTY
34230: LIST
34231: LIST
34232: PUSH
34233: LD_INT 2
34235: PUSH
34236: LD_INT 25
34238: PUSH
34239: LD_INT 1
34241: PUSH
34242: EMPTY
34243: LIST
34244: LIST
34245: PUSH
34246: LD_INT 25
34248: PUSH
34249: LD_INT 8
34251: PUSH
34252: EMPTY
34253: LIST
34254: LIST
34255: PUSH
34256: LD_INT 25
34258: PUSH
34259: LD_INT 3
34261: PUSH
34262: EMPTY
34263: LIST
34264: LIST
34265: PUSH
34266: LD_INT 25
34268: PUSH
34269: LD_INT 2
34271: PUSH
34272: EMPTY
34273: LIST
34274: LIST
34275: PUSH
34276: LD_INT 25
34278: PUSH
34279: LD_INT 4
34281: PUSH
34282: EMPTY
34283: LIST
34284: LIST
34285: PUSH
34286: EMPTY
34287: LIST
34288: LIST
34289: LIST
34290: LIST
34291: LIST
34292: LIST
34293: PUSH
34294: EMPTY
34295: LIST
34296: LIST
34297: PPUSH
34298: CALL_OW 69
34302: PUSH
34303: LD_EXP 1
34307: PUSH
34308: LD_EXP 2
34312: PUSH
34313: LD_EXP 3
34317: PUSH
34318: LD_EXP 4
34322: PUSH
34323: LD_EXP 5
34327: PUSH
34328: LD_EXP 6
34332: PUSH
34333: LD_EXP 9
34337: PUSH
34338: LD_EXP 10
34342: PUSH
34343: LD_EXP 11
34347: PUSH
34348: LD_EXP 12
34352: PUSH
34353: LD_EXP 19
34357: PUSH
34358: EMPTY
34359: LIST
34360: LIST
34361: LIST
34362: LIST
34363: LIST
34364: LIST
34365: LIST
34366: LIST
34367: LIST
34368: LIST
34369: LIST
34370: DIFF
34371: PUSH
34372: FOR_IN
34373: IFFALSE 34431
// if GetDistUnitXY ( i , 13 , 9 ) < temp then
34375: LD_VAR 0 1
34379: PPUSH
34380: LD_INT 13
34382: PPUSH
34383: LD_INT 9
34385: PPUSH
34386: CALL_OW 297
34390: PUSH
34391: LD_VAR 0 3
34395: LESS
34396: IFFALSE 34429
// begin un = i ;
34398: LD_ADDR_VAR 0 2
34402: PUSH
34403: LD_VAR 0 1
34407: ST_TO_ADDR
// temp = GetDistUnitXY ( i , 13 , 9 ) ;
34408: LD_ADDR_VAR 0 3
34412: PUSH
34413: LD_VAR 0 1
34417: PPUSH
34418: LD_INT 13
34420: PPUSH
34421: LD_INT 9
34423: PPUSH
34424: CALL_OW 297
34428: ST_TO_ADDR
// end ;
34429: GO 34372
34431: POP
34432: POP
// case un of Makise :
34433: LD_VAR 0 2
34437: PUSH
34438: LD_EXP 14
34442: DOUBLE
34443: EQUAL
34444: IFTRUE 34448
34446: GO 34463
34448: POP
// Say ( Makise , AllArt_makise ) ; Sonya :
34449: LD_EXP 14
34453: PPUSH
34454: LD_STRING AllArt_makise
34456: PPUSH
34457: CALL_OW 88
34461: GO 34580
34463: LD_EXP 7
34467: DOUBLE
34468: EQUAL
34469: IFTRUE 34473
34471: GO 34488
34473: POP
// Say ( Sonya , AllArt_Sonya ) ; Khattam :
34474: LD_EXP 7
34478: PPUSH
34479: LD_STRING AllArt_Sonya
34481: PPUSH
34482: CALL_OW 88
34486: GO 34580
34488: LD_EXP 13
34492: DOUBLE
34493: EQUAL
34494: IFTRUE 34498
34496: GO 34513
34498: POP
// Say ( Khattam , AllArt_Khattam ) ; Aviradze :
34499: LD_EXP 13
34503: PPUSH
34504: LD_STRING AllArt_Khattam
34506: PPUSH
34507: CALL_OW 88
34511: GO 34580
34513: LD_EXP 8
34517: DOUBLE
34518: EQUAL
34519: IFTRUE 34523
34521: GO 34538
34523: POP
// Say ( Aviradze , AllArt_Aviradze ) ; else
34524: LD_EXP 8
34528: PPUSH
34529: LD_STRING AllArt_Aviradze
34531: PPUSH
34532: CALL_OW 88
34536: GO 34580
34538: POP
// if GetSex ( un ) = sex_male then
34539: LD_VAR 0 2
34543: PPUSH
34544: CALL_OW 258
34548: PUSH
34549: LD_INT 1
34551: EQUAL
34552: IFFALSE 34568
// Say ( un , AllArt_SomeM ) else
34554: LD_VAR 0 2
34558: PPUSH
34559: LD_STRING AllArt_SomeM
34561: PPUSH
34562: CALL_OW 88
34566: GO 34580
// Say ( un , AllArt_SomeF ) ; end ;
34568: LD_VAR 0 2
34572: PPUSH
34573: LD_STRING AllArt_SomeF
34575: PPUSH
34576: CALL_OW 88
// Say ( Heike , AllArt_Heike ) ;
34580: LD_EXP 1
34584: PPUSH
34585: LD_STRING AllArt_Heike
34587: PPUSH
34588: CALL_OW 88
// end ;
34592: PPOPN 3
34594: END
// every 0 0$5 trigger EnableMovingToNextMap do var i , temp , val , count ;
34595: LD_EXP 58
34599: IFFALSE 34960
34601: GO 34603
34603: DISABLE
34604: LD_INT 0
34606: PPUSH
34607: PPUSH
34608: PPUSH
34609: PPUSH
// begin temp = [ ] ;
34610: LD_ADDR_VAR 0 2
34614: PUSH
34615: EMPTY
34616: ST_TO_ADDR
// for i in FilterAllUnits ( [ [ f_side , 2 ] , [ f_type , unit_human ] , [ f_placed ] ] ) do
34617: LD_ADDR_VAR 0 1
34621: PUSH
34622: LD_INT 22
34624: PUSH
34625: LD_INT 2
34627: PUSH
34628: EMPTY
34629: LIST
34630: LIST
34631: PUSH
34632: LD_INT 21
34634: PUSH
34635: LD_INT 1
34637: PUSH
34638: EMPTY
34639: LIST
34640: LIST
34641: PUSH
34642: LD_INT 52
34644: PUSH
34645: EMPTY
34646: LIST
34647: PUSH
34648: EMPTY
34649: LIST
34650: LIST
34651: LIST
34652: PPUSH
34653: CALL_OW 69
34657: PUSH
34658: FOR_IN
34659: IFFALSE 34713
// if IsInUnit ( i ) then
34661: LD_VAR 0 1
34665: PPUSH
34666: CALL_OW 310
34670: IFFALSE 34695
// temp = temp ^ IsInUnit ( i ) else
34672: LD_ADDR_VAR 0 2
34676: PUSH
34677: LD_VAR 0 2
34681: PUSH
34682: LD_VAR 0 1
34686: PPUSH
34687: CALL_OW 310
34691: ADD
34692: ST_TO_ADDR
34693: GO 34711
// temp = temp ^ i ;
34695: LD_ADDR_VAR 0 2
34699: PUSH
34700: LD_VAR 0 2
34704: PUSH
34705: LD_VAR 0 1
34709: ADD
34710: ST_TO_ADDR
34711: GO 34658
34713: POP
34714: POP
// for i in temp do
34715: LD_ADDR_VAR 0 1
34719: PUSH
34720: LD_VAR 0 2
34724: PUSH
34725: FOR_IN
34726: IFFALSE 34768
// if GetType ( i ) = unit_building or not IsInArea ( i , ExitArea ) then
34728: LD_VAR 0 1
34732: PPUSH
34733: CALL_OW 247
34737: PUSH
34738: LD_INT 3
34740: EQUAL
34741: PUSH
34742: LD_VAR 0 1
34746: PPUSH
34747: LD_INT 3
34749: PPUSH
34750: CALL_OW 308
34754: NOT
34755: OR
34756: IFFALSE 34766
// val = 1 ;
34758: LD_ADDR_VAR 0 3
34762: PUSH
34763: LD_INT 1
34765: ST_TO_ADDR
34766: GO 34725
34768: POP
34769: POP
// for i in temp do
34770: LD_ADDR_VAR 0 1
34774: PUSH
34775: LD_VAR 0 2
34779: PUSH
34780: FOR_IN
34781: IFFALSE 34834
// if GetClass ( i ) = class_scientistic or GetClass ( IsDrivenBy ( i ) ) = class_scientistic then
34783: LD_VAR 0 1
34787: PPUSH
34788: CALL_OW 257
34792: PUSH
34793: LD_INT 4
34795: EQUAL
34796: PUSH
34797: LD_VAR 0 1
34801: PPUSH
34802: CALL_OW 311
34806: PPUSH
34807: CALL_OW 257
34811: PUSH
34812: LD_INT 4
34814: EQUAL
34815: OR
34816: IFFALSE 34832
// count = count + 1 ;
34818: LD_ADDR_VAR 0 4
34822: PUSH
34823: LD_VAR 0 4
34827: PUSH
34828: LD_INT 1
34830: PLUS
34831: ST_TO_ADDR
34832: GO 34780
34834: POP
34835: POP
// if val = 0 then
34836: LD_VAR 0 3
34840: PUSH
34841: LD_INT 0
34843: EQUAL
34844: IFFALSE 34959
// if count < [ 1 , 2 , 3 ] [ difficulty ] then
34846: LD_VAR 0 4
34850: PUSH
34851: LD_INT 1
34853: PUSH
34854: LD_INT 2
34856: PUSH
34857: LD_INT 3
34859: PUSH
34860: EMPTY
34861: LIST
34862: LIST
34863: LIST
34864: PUSH
34865: LD_OWVAR 67
34869: ARRAY
34870: LESS
34871: IFFALSE 34935
// begin case difficulty of 1 :
34873: LD_OWVAR 67
34877: PUSH
34878: LD_INT 1
34880: DOUBLE
34881: EQUAL
34882: IFTRUE 34886
34884: GO 34896
34886: POP
// Query ( sci_min_easy ) ; 2 :
34887: LD_STRING sci_min_easy
34889: PPUSH
34890: CALL_OW 97
34894: GO 34933
34896: LD_INT 2
34898: DOUBLE
34899: EQUAL
34900: IFTRUE 34904
34902: GO 34914
34904: POP
// Query ( sci_min_medium ) ; 3 :
34905: LD_STRING sci_min_medium
34907: PPUSH
34908: CALL_OW 97
34912: GO 34933
34914: LD_INT 3
34916: DOUBLE
34917: EQUAL
34918: IFTRUE 34922
34920: GO 34932
34922: POP
// Query ( sci_min_hard ) ; end ;
34923: LD_STRING sci_min_hard
34925: PPUSH
34926: CALL_OW 97
34930: GO 34933
34932: POP
// end else
34933: GO 34959
// case query ( begin_assault ) of 1 :
34935: LD_STRING begin_assault
34937: PPUSH
34938: CALL_OW 97
34942: PUSH
34943: LD_INT 1
34945: DOUBLE
34946: EQUAL
34947: IFTRUE 34951
34949: GO 34958
34951: POP
// EndMission ; end ;
34952: CALL 35247 0 0
34956: GO 34959
34958: POP
// enable ;
34959: ENABLE
// end ; end_of_file
34960: PPOPN 4
34962: END
// on UnitDestroyed ( un ) do begin if un = Heike then
34963: LD_VAR 0 1
34967: PUSH
34968: LD_EXP 1
34972: EQUAL
34973: IFFALSE 34989
// begin wait ( 0 0$2 ) ;
34975: LD_INT 70
34977: PPUSH
34978: CALL_OW 67
// YouLost ( HeikeDied ) ;
34982: LD_STRING HeikeDied
34984: PPUSH
34985: CALL_OW 104
// end ; if un = Omar then
34989: LD_VAR 0 1
34993: PUSH
34994: LD_EXP 2
34998: EQUAL
34999: IFFALSE 35015
// begin wait ( 0 0$2 ) ;
35001: LD_INT 70
35003: PPUSH
35004: CALL_OW 67
// YouLost ( OmarDied ) ;
35008: LD_STRING OmarDied
35010: PPUSH
35011: CALL_OW 104
// end ; if un = Gensher then
35015: LD_VAR 0 1
35019: PUSH
35020: LD_EXP 3
35024: EQUAL
35025: IFFALSE 35041
// begin wait ( 0 0$2 ) ;
35027: LD_INT 70
35029: PPUSH
35030: CALL_OW 67
// YouLost ( GensherDied ) ;
35034: LD_STRING GensherDied
35036: PPUSH
35037: CALL_OW 104
// end ; if GetSide ( un ) = 2 then
35041: LD_VAR 0 1
35045: PPUSH
35046: CALL_OW 255
35050: PUSH
35051: LD_INT 2
35053: EQUAL
35054: IFFALSE 35187
// if ( FilterAllUnits ( [ [ f_side , 2 ] , [ f_type , unit_human ] , [ f_placed ] , [ f_or , [ f_class , class_soldier ] , [ f_class , class_mortar ] , [ f_class , class_engineer ] , [ f_class , class_mechanic ] , [ f_class , class_scientistic ] ] ] ) diff [ Heike , Omar , Gensher ] ) < 3 then
35056: LD_INT 22
35058: PUSH
35059: LD_INT 2
35061: PUSH
35062: EMPTY
35063: LIST
35064: LIST
35065: PUSH
35066: LD_INT 21
35068: PUSH
35069: LD_INT 1
35071: PUSH
35072: EMPTY
35073: LIST
35074: LIST
35075: PUSH
35076: LD_INT 52
35078: PUSH
35079: EMPTY
35080: LIST
35081: PUSH
35082: LD_INT 2
35084: PUSH
35085: LD_INT 25
35087: PUSH
35088: LD_INT 1
35090: PUSH
35091: EMPTY
35092: LIST
35093: LIST
35094: PUSH
35095: LD_INT 25
35097: PUSH
35098: LD_INT 8
35100: PUSH
35101: EMPTY
35102: LIST
35103: LIST
35104: PUSH
35105: LD_INT 25
35107: PUSH
35108: LD_INT 2
35110: PUSH
35111: EMPTY
35112: LIST
35113: LIST
35114: PUSH
35115: LD_INT 25
35117: PUSH
35118: LD_INT 3
35120: PUSH
35121: EMPTY
35122: LIST
35123: LIST
35124: PUSH
35125: LD_INT 25
35127: PUSH
35128: LD_INT 4
35130: PUSH
35131: EMPTY
35132: LIST
35133: LIST
35134: PUSH
35135: EMPTY
35136: LIST
35137: LIST
35138: LIST
35139: LIST
35140: LIST
35141: LIST
35142: PUSH
35143: EMPTY
35144: LIST
35145: LIST
35146: LIST
35147: LIST
35148: PPUSH
35149: CALL_OW 69
35153: PUSH
35154: LD_EXP 1
35158: PUSH
35159: LD_EXP 2
35163: PUSH
35164: LD_EXP 3
35168: PUSH
35169: EMPTY
35170: LIST
35171: LIST
35172: LIST
35173: DIFF
35174: PUSH
35175: LD_INT 3
35177: LESS
35178: IFFALSE 35187
// YouLost ( TooManyCasualties ) ;
35180: LD_STRING TooManyCasualties
35182: PPUSH
35183: CALL_OW 104
// if GetClass ( un ) = class_tiger and IsTamedBy ( un ) then
35187: LD_VAR 0 1
35191: PPUSH
35192: CALL_OW 257
35196: PUSH
35197: LD_INT 14
35199: EQUAL
35200: PUSH
35201: LD_VAR 0 1
35205: PPUSH
35206: CALL_OW 317
35210: AND
35211: IFFALSE 35227
// StrikeForce_tigers = StrikeForce_tigers - 1 ;
35213: LD_ADDR_EXP 63
35217: PUSH
35218: LD_EXP 63
35222: PUSH
35223: LD_INT 1
35225: MINUS
35226: ST_TO_ADDR
// end ;
35227: PPOPN 1
35229: END
// on TigerTamed ( tiger , human ) do begin StrikeForce_tigers = StrikeForce_tigers + 1 ;
35230: LD_ADDR_EXP 63
35234: PUSH
35235: LD_EXP 63
35239: PUSH
35240: LD_INT 1
35242: PLUS
35243: ST_TO_ADDR
// end ;
35244: PPOPN 2
35246: END
// export function EndMission ; var i , j , temp , temp2 , temp_vehicles , temp_list ; begin
35247: LD_INT 0
35249: PPUSH
35250: PPUSH
35251: PPUSH
35252: PPUSH
35253: PPUSH
35254: PPUSH
35255: PPUSH
// Randomize ;
35256: CALL_OW 10
// temp = FilterUnitsInArea ( ExitArea , [ [ f_side , 2 ] , [ f_weapon , ar_selfpropelled_bomb ] ] ) * 2 ;
35260: LD_ADDR_VAR 0 4
35264: PUSH
35265: LD_INT 3
35267: PPUSH
35268: LD_INT 22
35270: PUSH
35271: LD_INT 2
35273: PUSH
35274: EMPTY
35275: LIST
35276: LIST
35277: PUSH
35278: LD_INT 34
35280: PUSH
35281: LD_INT 29
35283: PUSH
35284: EMPTY
35285: LIST
35286: LIST
35287: PUSH
35288: EMPTY
35289: LIST
35290: LIST
35291: PPUSH
35292: CALL_OW 70
35296: PUSH
35297: LD_INT 2
35299: MUL
35300: ST_TO_ADDR
// temp = temp + FilterUnitsInArea ( ExitArea , [ [ f_side , 2 ] , [ f_or , [ f_weapon , ar_gun ] , [ f_weapon , ar_gatling_gun ] , [ f_weapon , ar_rocket_launcher ] , [ f_weapon , ar_flame_thrower ] , [ f_weapon , ru_gun ] , [ f_weapon , ru_gatling_gun ] , [ f_weapon , ru_rocket_launcher ] , [ f_weapon , ru_heavy_gun ] ] ] ) ;
35301: LD_ADDR_VAR 0 4
35305: PUSH
35306: LD_VAR 0 4
35310: PUSH
35311: LD_INT 3
35313: PPUSH
35314: LD_INT 22
35316: PUSH
35317: LD_INT 2
35319: PUSH
35320: EMPTY
35321: LIST
35322: LIST
35323: PUSH
35324: LD_INT 2
35326: PUSH
35327: LD_INT 34
35329: PUSH
35330: LD_INT 27
35332: PUSH
35333: EMPTY
35334: LIST
35335: LIST
35336: PUSH
35337: LD_INT 34
35339: PUSH
35340: LD_INT 25
35342: PUSH
35343: EMPTY
35344: LIST
35345: LIST
35346: PUSH
35347: LD_INT 34
35349: PUSH
35350: LD_INT 28
35352: PUSH
35353: EMPTY
35354: LIST
35355: LIST
35356: PUSH
35357: LD_INT 34
35359: PUSH
35360: LD_INT 26
35362: PUSH
35363: EMPTY
35364: LIST
35365: LIST
35366: PUSH
35367: LD_INT 34
35369: PUSH
35370: LD_INT 44
35372: PUSH
35373: EMPTY
35374: LIST
35375: LIST
35376: PUSH
35377: LD_INT 34
35379: PUSH
35380: LD_INT 43
35382: PUSH
35383: EMPTY
35384: LIST
35385: LIST
35386: PUSH
35387: LD_INT 34
35389: PUSH
35390: LD_INT 45
35392: PUSH
35393: EMPTY
35394: LIST
35395: LIST
35396: PUSH
35397: LD_INT 34
35399: PUSH
35400: LD_INT 46
35402: PUSH
35403: EMPTY
35404: LIST
35405: LIST
35406: PUSH
35407: EMPTY
35408: LIST
35409: LIST
35410: LIST
35411: LIST
35412: LIST
35413: LIST
35414: LIST
35415: LIST
35416: LIST
35417: PUSH
35418: EMPTY
35419: LIST
35420: LIST
35421: PPUSH
35422: CALL_OW 70
35426: PLUS
35427: ST_TO_ADDR
// i = 0 ;
35428: LD_ADDR_VAR 0 2
35432: PUSH
35433: LD_INT 0
35435: ST_TO_ADDR
// if temp > 8 then
35436: LD_VAR 0 4
35440: PUSH
35441: LD_INT 8
35443: GREATER
35444: IFFALSE 35460
// i = i + 1 ;
35446: LD_ADDR_VAR 0 2
35450: PUSH
35451: LD_VAR 0 2
35455: PUSH
35456: LD_INT 1
35458: PLUS
35459: ST_TO_ADDR
// if temp > 16 then
35460: LD_VAR 0 4
35464: PUSH
35465: LD_INT 16
35467: GREATER
35468: IFFALSE 35484
// i = i + 1 ;
35470: LD_ADDR_VAR 0 2
35474: PUSH
35475: LD_VAR 0 2
35479: PUSH
35480: LD_INT 1
35482: PLUS
35483: ST_TO_ADDR
// if temp > 24 then
35484: LD_VAR 0 4
35488: PUSH
35489: LD_INT 24
35491: GREATER
35492: IFFALSE 35508
// i = i + 1 ;
35494: LD_ADDR_VAR 0 2
35498: PUSH
35499: LD_VAR 0 2
35503: PUSH
35504: LD_INT 1
35506: PLUS
35507: ST_TO_ADDR
// if temp > 32 then
35508: LD_VAR 0 4
35512: PUSH
35513: LD_INT 32
35515: GREATER
35516: IFFALSE 35532
// i = i + 1 ;
35518: LD_ADDR_VAR 0 2
35522: PUSH
35523: LD_VAR 0 2
35527: PUSH
35528: LD_INT 1
35530: PLUS
35531: ST_TO_ADDR
// SaveVariable ( i , 15_VehPreparationLvl ) ;
35532: LD_VAR 0 2
35536: PPUSH
35537: LD_STRING 15_VehPreparationLvl
35539: PPUSH
35540: CALL_OW 39
// j = i + ArtTechDoneCount ;
35544: LD_ADDR_VAR 0 3
35548: PUSH
35549: LD_VAR 0 2
35553: PUSH
35554: LD_EXP 64
35558: PLUS
35559: ST_TO_ADDR
// if j > 4 then
35560: LD_VAR 0 3
35564: PUSH
35565: LD_INT 4
35567: GREATER
35568: IFFALSE 35578
// j = 4 ;
35570: LD_ADDR_VAR 0 3
35574: PUSH
35575: LD_INT 4
35577: ST_TO_ADDR
// SaveVariable ( j , 15_EnemyDefencesLvl ) ;
35578: LD_VAR 0 3
35582: PPUSH
35583: LD_STRING 15_EnemyDefencesLvl
35585: PPUSH
35586: CALL_OW 39
// j = i * 0.5 ;
35590: LD_ADDR_VAR 0 3
35594: PUSH
35595: LD_VAR 0 2
35599: PUSH
35600: LD_REAL  5.00000000000000E-0001
35603: MUL
35604: ST_TO_ADDR
// j = j + ( ArtTechDoneCount * 0.5 ) ;
35605: LD_ADDR_VAR 0 3
35609: PUSH
35610: LD_VAR 0 3
35614: PUSH
35615: LD_EXP 64
35619: PUSH
35620: LD_REAL  5.00000000000000E-0001
35623: MUL
35624: PLUS
35625: ST_TO_ADDR
// case difficulty of 2 :
35626: LD_OWVAR 67
35630: PUSH
35631: LD_INT 2
35633: DOUBLE
35634: EQUAL
35635: IFTRUE 35639
35637: GO 35657
35639: POP
// j = j + 0.5 ; 3 :
35640: LD_ADDR_VAR 0 3
35644: PUSH
35645: LD_VAR 0 3
35649: PUSH
35650: LD_REAL  5.00000000000000E-0001
35653: PLUS
35654: ST_TO_ADDR
35655: GO 35683
35657: LD_INT 3
35659: DOUBLE
35660: EQUAL
35661: IFTRUE 35665
35663: GO 35682
35665: POP
// j = j + 1 ; end ;
35666: LD_ADDR_VAR 0 3
35670: PUSH
35671: LD_VAR 0 3
35675: PUSH
35676: LD_INT 1
35678: PLUS
35679: ST_TO_ADDR
35680: GO 35683
35682: POP
// case j of 0.5 :
35683: LD_VAR 0 3
35687: PUSH
35688: LD_REAL  5.00000000000000E-0001
35691: DOUBLE
35692: EQUAL
35693: IFTRUE 35697
35695: GO 35708
35697: POP
// j = 0 ; 1.5 :
35698: LD_ADDR_VAR 0 3
35702: PUSH
35703: LD_INT 0
35705: ST_TO_ADDR
35706: GO 35769
35708: LD_REAL  1.50000000000000E+0000
35711: DOUBLE
35712: EQUAL
35713: IFTRUE 35717
35715: GO 35728
35717: POP
// j = 1 ; 2.5 :
35718: LD_ADDR_VAR 0 3
35722: PUSH
35723: LD_INT 1
35725: ST_TO_ADDR
35726: GO 35769
35728: LD_REAL  2.50000000000000E+0000
35731: DOUBLE
35732: EQUAL
35733: IFTRUE 35737
35735: GO 35748
35737: POP
// j = 2 ; 3.5 :
35738: LD_ADDR_VAR 0 3
35742: PUSH
35743: LD_INT 2
35745: ST_TO_ADDR
35746: GO 35769
35748: LD_REAL  3.50000000000000E+0000
35751: DOUBLE
35752: EQUAL
35753: IFTRUE 35757
35755: GO 35768
35757: POP
// j = 3 ; end ;
35758: LD_ADDR_VAR 0 3
35762: PUSH
35763: LD_INT 3
35765: ST_TO_ADDR
35766: GO 35769
35768: POP
// SaveVariable ( j , 15_EnemyTechLvl ) ;
35769: LD_VAR 0 3
35773: PPUSH
35774: LD_STRING 15_EnemyTechLvl
35776: PPUSH
35777: CALL_OW 39
// i = 0 ;
35781: LD_ADDR_VAR 0 2
35785: PUSH
35786: LD_INT 0
35788: ST_TO_ADDR
// i = i + ArtTechDoneCount ;
35789: LD_ADDR_VAR 0 2
35793: PUSH
35794: LD_VAR 0 2
35798: PUSH
35799: LD_EXP 64
35803: PLUS
35804: ST_TO_ADDR
// if AllianceDestroyed then
35805: LD_EXP 50
35809: IFFALSE 35825
// i = i + 2 ;
35811: LD_ADDR_VAR 0 2
35815: PUSH
35816: LD_VAR 0 2
35820: PUSH
35821: LD_INT 2
35823: PLUS
35824: ST_TO_ADDR
// if i > 3 then
35825: LD_VAR 0 2
35829: PUSH
35830: LD_INT 3
35832: GREATER
35833: IFFALSE 35843
// i = 3 ;
35835: LD_ADDR_VAR 0 2
35839: PUSH
35840: LD_INT 3
35842: ST_TO_ADDR
// SaveVariable ( i , 15_EnemyVehsLvl ) ;
35843: LD_VAR 0 2
35847: PPUSH
35848: LD_STRING 15_EnemyVehsLvl
35850: PPUSH
35851: CALL_OW 39
// StrikeForce_vehicles = [ ] ;
35855: LD_ADDR_EXP 62
35859: PUSH
35860: EMPTY
35861: ST_TO_ADDR
// StrikeForce_drivers = [ ] ;
35862: LD_ADDR_EXP 61
35866: PUSH
35867: EMPTY
35868: ST_TO_ADDR
// temp = [ ] ;
35869: LD_ADDR_VAR 0 4
35873: PUSH
35874: EMPTY
35875: ST_TO_ADDR
// temp_vehicles = FilterUnitsInArea ( ExitArea , [ [ f_side , 2 ] , [ f_or , [ f_control , control_manual ] , [ f_control , control_rider ] ] , [ f_occupied ] ] ) ;
35876: LD_ADDR_VAR 0 6
35880: PUSH
35881: LD_INT 3
35883: PPUSH
35884: LD_INT 22
35886: PUSH
35887: LD_INT 2
35889: PUSH
35890: EMPTY
35891: LIST
35892: LIST
35893: PUSH
35894: LD_INT 2
35896: PUSH
35897: LD_INT 33
35899: PUSH
35900: LD_INT 1
35902: PUSH
35903: EMPTY
35904: LIST
35905: LIST
35906: PUSH
35907: LD_INT 33
35909: PUSH
35910: LD_INT 4
35912: PUSH
35913: EMPTY
35914: LIST
35915: LIST
35916: PUSH
35917: EMPTY
35918: LIST
35919: LIST
35920: LIST
35921: PUSH
35922: LD_INT 59
35924: PUSH
35925: EMPTY
35926: LIST
35927: PUSH
35928: EMPTY
35929: LIST
35930: LIST
35931: LIST
35932: PPUSH
35933: CALL_OW 70
35937: ST_TO_ADDR
// for i in temp_vehicles do
35938: LD_ADDR_VAR 0 2
35942: PUSH
35943: LD_VAR 0 6
35947: PUSH
35948: FOR_IN
35949: IFFALSE 35974
// temp = temp ^ IsDrivenBy ( i ) ;
35951: LD_ADDR_VAR 0 4
35955: PUSH
35956: LD_VAR 0 4
35960: PUSH
35961: LD_VAR 0 2
35965: PPUSH
35966: CALL_OW 311
35970: ADD
35971: ST_TO_ADDR
35972: GO 35948
35974: POP
35975: POP
// StrikeForce_humans = FilterUnitsInArea ( ExitArea , [ [ f_side , 2 ] , [ f_type , unit_human ] ] ) ^ temp diff [ Heike , Omar , Gensher , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake ] ;
35976: LD_ADDR_EXP 60
35980: PUSH
35981: LD_INT 3
35983: PPUSH
35984: LD_INT 22
35986: PUSH
35987: LD_INT 2
35989: PUSH
35990: EMPTY
35991: LIST
35992: LIST
35993: PUSH
35994: LD_INT 21
35996: PUSH
35997: LD_INT 1
35999: PUSH
36000: EMPTY
36001: LIST
36002: LIST
36003: PUSH
36004: EMPTY
36005: LIST
36006: LIST
36007: PPUSH
36008: CALL_OW 70
36012: PUSH
36013: LD_VAR 0 4
36017: ADD
36018: PUSH
36019: LD_EXP 1
36023: PUSH
36024: LD_EXP 2
36028: PUSH
36029: LD_EXP 3
36033: PUSH
36034: LD_EXP 4
36038: PUSH
36039: LD_EXP 5
36043: PUSH
36044: LD_EXP 6
36048: PUSH
36049: LD_EXP 7
36053: PUSH
36054: LD_EXP 8
36058: PUSH
36059: LD_EXP 9
36063: PUSH
36064: LD_EXP 10
36068: PUSH
36069: LD_EXP 11
36073: PUSH
36074: LD_EXP 12
36078: PUSH
36079: LD_EXP 13
36083: PUSH
36084: LD_EXP 14
36088: PUSH
36089: LD_EXP 19
36093: PUSH
36094: EMPTY
36095: LIST
36096: LIST
36097: LIST
36098: LIST
36099: LIST
36100: LIST
36101: LIST
36102: LIST
36103: LIST
36104: LIST
36105: LIST
36106: LIST
36107: LIST
36108: LIST
36109: LIST
36110: DIFF
36111: ST_TO_ADDR
// SaveCharacters ( StrikeForce_humans , StrikeForce_Humans_15 ) ;
36112: LD_EXP 60
36116: PPUSH
36117: LD_STRING StrikeForce_Humans_15
36119: PPUSH
36120: CALL_OW 38
// temp_vehicles = temp_vehicles ^ FilterUnitsInArea ( ExitArea , [ [ f_side , 2 ] , [ f_or , [ f_control , control_remote ] , [ f_control , control_apeman ] ] ] ) ;
36124: LD_ADDR_VAR 0 6
36128: PUSH
36129: LD_VAR 0 6
36133: PUSH
36134: LD_INT 3
36136: PPUSH
36137: LD_INT 22
36139: PUSH
36140: LD_INT 2
36142: PUSH
36143: EMPTY
36144: LIST
36145: LIST
36146: PUSH
36147: LD_INT 2
36149: PUSH
36150: LD_INT 33
36152: PUSH
36153: LD_INT 2
36155: PUSH
36156: EMPTY
36157: LIST
36158: LIST
36159: PUSH
36160: LD_INT 33
36162: PUSH
36163: LD_INT 5
36165: PUSH
36166: EMPTY
36167: LIST
36168: LIST
36169: PUSH
36170: EMPTY
36171: LIST
36172: LIST
36173: LIST
36174: PUSH
36175: EMPTY
36176: LIST
36177: LIST
36178: PPUSH
36179: CALL_OW 70
36183: ADD
36184: ST_TO_ADDR
// for i in temp_vehicles do
36185: LD_ADDR_VAR 0 2
36189: PUSH
36190: LD_VAR 0 6
36194: PUSH
36195: FOR_IN
36196: IFFALSE 36327
// StrikeForce_vehicles = StrikeForce_vehicles ^ [ [ GetNation ( i ) , GetWeapon ( i ) , GetChassis ( i ) , GetControl ( i ) , GetEngine ( i ) , GetCargo ( i , mat_cans ) , GetCargo ( i , mat_oil ) , GetCargo ( i , mat_siberit ) , GetCargo ( i , mat_artifact ) ] ] ;
36198: LD_ADDR_EXP 62
36202: PUSH
36203: LD_EXP 62
36207: PUSH
36208: LD_VAR 0 2
36212: PPUSH
36213: CALL_OW 248
36217: PUSH
36218: LD_VAR 0 2
36222: PPUSH
36223: CALL_OW 264
36227: PUSH
36228: LD_VAR 0 2
36232: PPUSH
36233: CALL_OW 265
36237: PUSH
36238: LD_VAR 0 2
36242: PPUSH
36243: CALL_OW 263
36247: PUSH
36248: LD_VAR 0 2
36252: PPUSH
36253: CALL_OW 262
36257: PUSH
36258: LD_VAR 0 2
36262: PPUSH
36263: LD_INT 1
36265: PPUSH
36266: CALL_OW 289
36270: PUSH
36271: LD_VAR 0 2
36275: PPUSH
36276: LD_INT 2
36278: PPUSH
36279: CALL_OW 289
36283: PUSH
36284: LD_VAR 0 2
36288: PPUSH
36289: LD_INT 3
36291: PPUSH
36292: CALL_OW 289
36296: PUSH
36297: LD_VAR 0 2
36301: PPUSH
36302: LD_INT 4
36304: PPUSH
36305: CALL_OW 289
36309: PUSH
36310: EMPTY
36311: LIST
36312: LIST
36313: LIST
36314: LIST
36315: LIST
36316: LIST
36317: LIST
36318: LIST
36319: LIST
36320: PUSH
36321: EMPTY
36322: LIST
36323: ADD
36324: ST_TO_ADDR
36325: GO 36195
36327: POP
36328: POP
// SaveVariable ( StrikeForce_vehicles , StrikeForce_Vehicles_15 ) ;
36329: LD_EXP 62
36333: PPUSH
36334: LD_STRING StrikeForce_Vehicles_15
36336: PPUSH
36337: CALL_OW 39
// temp = [ Heike , Omar , Gensher , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake ] ^ StrikeForce_humans ;
36341: LD_ADDR_VAR 0 4
36345: PUSH
36346: LD_EXP 1
36350: PUSH
36351: LD_EXP 2
36355: PUSH
36356: LD_EXP 3
36360: PUSH
36361: LD_EXP 4
36365: PUSH
36366: LD_EXP 5
36370: PUSH
36371: LD_EXP 6
36375: PUSH
36376: LD_EXP 7
36380: PUSH
36381: LD_EXP 8
36385: PUSH
36386: LD_EXP 9
36390: PUSH
36391: LD_EXP 10
36395: PUSH
36396: LD_EXP 11
36400: PUSH
36401: LD_EXP 12
36405: PUSH
36406: LD_EXP 13
36410: PUSH
36411: LD_EXP 14
36415: PUSH
36416: LD_EXP 19
36420: PUSH
36421: EMPTY
36422: LIST
36423: LIST
36424: LIST
36425: LIST
36426: LIST
36427: LIST
36428: LIST
36429: LIST
36430: LIST
36431: LIST
36432: LIST
36433: LIST
36434: LIST
36435: LIST
36436: LIST
36437: PUSH
36438: LD_EXP 60
36442: ADD
36443: ST_TO_ADDR
// for i = 1 to temp do
36444: LD_ADDR_VAR 0 2
36448: PUSH
36449: DOUBLE
36450: LD_INT 1
36452: DEC
36453: ST_TO_ADDR
36454: LD_VAR 0 4
36458: PUSH
36459: FOR_TO
36460: IFFALSE 36566
// if IsInUnit ( temp [ i ] ) then
36462: LD_VAR 0 4
36466: PUSH
36467: LD_VAR 0 2
36471: ARRAY
36472: PPUSH
36473: CALL_OW 310
36477: IFFALSE 36550
// begin for j = 1 to temp_vehicles do
36479: LD_ADDR_VAR 0 3
36483: PUSH
36484: DOUBLE
36485: LD_INT 1
36487: DEC
36488: ST_TO_ADDR
36489: LD_VAR 0 6
36493: PUSH
36494: FOR_TO
36495: IFFALSE 36546
// if IsInUnit ( temp [ i ] ) = temp_vehicles [ j ] then
36497: LD_VAR 0 4
36501: PUSH
36502: LD_VAR 0 2
36506: ARRAY
36507: PPUSH
36508: CALL_OW 310
36512: PUSH
36513: LD_VAR 0 6
36517: PUSH
36518: LD_VAR 0 3
36522: ARRAY
36523: EQUAL
36524: IFFALSE 36544
// begin StrikeForce_drivers = StrikeForce_drivers ^ j ;
36526: LD_ADDR_EXP 61
36530: PUSH
36531: LD_EXP 61
36535: PUSH
36536: LD_VAR 0 3
36540: ADD
36541: ST_TO_ADDR
// break ;
36542: GO 36546
// end ;
36544: GO 36494
36546: POP
36547: POP
// end else
36548: GO 36564
// StrikeForce_drivers = StrikeForce_drivers ^ 0 ;
36550: LD_ADDR_EXP 61
36554: PUSH
36555: LD_EXP 61
36559: PUSH
36560: LD_INT 0
36562: ADD
36563: ST_TO_ADDR
36564: GO 36459
36566: POP
36567: POP
// SaveVariable ( StrikeForce_Drivers , StrikeForce_Drivers_15 ) ;
36568: LD_EXP 61
36572: PPUSH
36573: LD_STRING StrikeForce_Drivers_15
36575: PPUSH
36576: CALL_OW 39
// SaveVariable ( StrikeForce_Tigers , StrikeForce_Tigers_15 ) ;
36580: LD_EXP 63
36584: PPUSH
36585: LD_STRING StrikeForce_Tigers_15
36587: PPUSH
36588: CALL_OW 39
// temp = [ Heike , Omar , Gensher , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake ] ;
36592: LD_ADDR_VAR 0 4
36596: PUSH
36597: LD_EXP 1
36601: PUSH
36602: LD_EXP 2
36606: PUSH
36607: LD_EXP 3
36611: PUSH
36612: LD_EXP 4
36616: PUSH
36617: LD_EXP 5
36621: PUSH
36622: LD_EXP 6
36626: PUSH
36627: LD_EXP 7
36631: PUSH
36632: LD_EXP 8
36636: PUSH
36637: LD_EXP 9
36641: PUSH
36642: LD_EXP 10
36646: PUSH
36647: LD_EXP 11
36651: PUSH
36652: LD_EXP 12
36656: PUSH
36657: LD_EXP 13
36661: PUSH
36662: LD_EXP 14
36666: PUSH
36667: LD_EXP 19
36671: PUSH
36672: EMPTY
36673: LIST
36674: LIST
36675: LIST
36676: LIST
36677: LIST
36678: LIST
36679: LIST
36680: LIST
36681: LIST
36682: LIST
36683: LIST
36684: LIST
36685: LIST
36686: LIST
36687: LIST
36688: ST_TO_ADDR
// temp2 = [ Heike , Omar , Gensher , Olaf , Oswald , Ralph , Sonya , Aviradze , Kowalski , Evelyn , Swansson , Dwayne , Khattam , Makise , Snake ] ;
36689: LD_ADDR_VAR 0 5
36693: PUSH
36694: LD_STRING Heike
36696: PUSH
36697: LD_STRING Omar
36699: PUSH
36700: LD_STRING Gensher
36702: PUSH
36703: LD_STRING Olaf
36705: PUSH
36706: LD_STRING Oswald
36708: PUSH
36709: LD_STRING Ralph
36711: PUSH
36712: LD_STRING Sonya
36714: PUSH
36715: LD_STRING Aviradze
36717: PUSH
36718: LD_STRING Kowalski
36720: PUSH
36721: LD_STRING Evelyn
36723: PUSH
36724: LD_STRING Swansson
36726: PUSH
36727: LD_STRING Dwayne
36729: PUSH
36730: LD_STRING Khattam
36732: PUSH
36733: LD_STRING Makise
36735: PUSH
36736: LD_STRING Snake
36738: PUSH
36739: EMPTY
36740: LIST
36741: LIST
36742: LIST
36743: LIST
36744: LIST
36745: LIST
36746: LIST
36747: LIST
36748: LIST
36749: LIST
36750: LIST
36751: LIST
36752: LIST
36753: LIST
36754: LIST
36755: ST_TO_ADDR
// for i = 1 to temp do
36756: LD_ADDR_VAR 0 2
36760: PUSH
36761: DOUBLE
36762: LD_INT 1
36764: DEC
36765: ST_TO_ADDR
36766: LD_VAR 0 4
36770: PUSH
36771: FOR_TO
36772: IFFALSE 36816
// if temp > 0 then
36774: LD_VAR 0 4
36778: PUSH
36779: LD_INT 0
36781: GREATER
36782: IFFALSE 36814
// SaveCharacters ( temp [ i ] , temp2 [ i ] & _15 ) ;
36784: LD_VAR 0 4
36788: PUSH
36789: LD_VAR 0 2
36793: ARRAY
36794: PPUSH
36795: LD_VAR 0 5
36799: PUSH
36800: LD_VAR 0 2
36804: ARRAY
36805: PUSH
36806: LD_STRING _15
36808: STR
36809: PPUSH
36810: CALL_OW 38
36814: GO 36771
36816: POP
36817: POP
// if GensherIsLeader then
36818: LD_EXP 77
36822: IFFALSE 36836
// SaveVariable ( GensherIsLeader , GensherIsLeader_15 ) ;
36824: LD_EXP 77
36828: PPUSH
36829: LD_STRING GensherIsLeader_15
36831: PPUSH
36832: CALL_OW 39
// if OswaldIsLeader then
36836: LD_EXP 66
36840: IFFALSE 36854
// SaveVariable ( OswaldIsLeader , OswaldIsLeader_15 ) ;
36842: LD_EXP 66
36846: PPUSH
36847: LD_STRING OswaldIsLeader_15
36849: PPUSH
36850: CALL_OW 39
// if RalphIsLeader then
36854: LD_EXP 67
36858: IFFALSE 36872
// SaveVariable ( RalphIsLeader , RalphIsLeader_15 ) ;
36860: LD_EXP 67
36864: PPUSH
36865: LD_STRING RalphIsLeader_15
36867: PPUSH
36868: CALL_OW 39
// if KowalskiIsLeader then
36872: LD_EXP 70
36876: IFFALSE 36890
// SaveVariable ( KowalskiIsLeader , KowalskiIsLeader_15 ) ;
36878: LD_EXP 70
36882: PPUSH
36883: LD_STRING KowalskiIsLeader_15
36885: PPUSH
36886: CALL_OW 39
// if SwanssonIsLeader then
36890: LD_EXP 72
36894: IFFALSE 36908
// SaveVariable ( SwanssonIsLeader , SwanssonIsLeader_15 ) ;
36896: LD_EXP 72
36900: PPUSH
36901: LD_STRING SwanssonIsLeader_15
36903: PPUSH
36904: CALL_OW 39
// if DwayneIsLeader then
36908: LD_EXP 73
36912: IFFALSE 36926
// SaveVariable ( DwayneIsLeader , DwayneIsLeader_15 ) ;
36914: LD_EXP 73
36918: PPUSH
36919: LD_STRING DwayneIsLeader_15
36921: PPUSH
36922: CALL_OW 39
// if OlafIsSupport then
36926: LD_EXP 78
36930: IFFALSE 36944
// SaveVariable ( OlafIsSupport , OlafIsSupport_15 ) ;
36932: LD_EXP 78
36936: PPUSH
36937: LD_STRING OlafIsSupport_15
36939: PPUSH
36940: CALL_OW 39
// if OswaldIsSupport then
36944: LD_EXP 79
36948: IFFALSE 36962
// SaveVariable ( OswaldIsSupport , OswaldIsSupport_15 ) ;
36950: LD_EXP 79
36954: PPUSH
36955: LD_STRING OswaldIsSupport_15
36957: PPUSH
36958: CALL_OW 39
// if RalphIsSupport then
36962: LD_EXP 80
36966: IFFALSE 36980
// SaveVariable ( RalphIsSupport , RalphIsSupport_15 ) ;
36968: LD_EXP 80
36972: PPUSH
36973: LD_STRING RalphIsSupport_15
36975: PPUSH
36976: CALL_OW 39
// if SonyaIsSupport then
36980: LD_EXP 81
36984: IFFALSE 36998
// SaveVariable ( SonyaIsSupport , SonyaIsSupport_15 ) ;
36986: LD_EXP 81
36990: PPUSH
36991: LD_STRING SonyaIsSupport_15
36993: PPUSH
36994: CALL_OW 39
// if AviradzeIsSupport then
36998: LD_EXP 82
37002: IFFALSE 37016
// SaveVariable ( AviradzeIsSupport , AviradzeIsSupport_15 ) ;
37004: LD_EXP 82
37008: PPUSH
37009: LD_STRING AviradzeIsSupport_15
37011: PPUSH
37012: CALL_OW 39
// if KowalskiIsSupport then
37016: LD_EXP 83
37020: IFFALSE 37034
// SaveVariable ( KowalskiIsSupport , KowalskiIsSupport_15 ) ;
37022: LD_EXP 83
37026: PPUSH
37027: LD_STRING KowalskiIsSupport_15
37029: PPUSH
37030: CALL_OW 39
// if EvelynIsSupport then
37034: LD_EXP 84
37038: IFFALSE 37052
// SaveVariable ( EvelynIsSupport , EvelynIsSupport_15 ) ;
37040: LD_EXP 84
37044: PPUSH
37045: LD_STRING EvelynIsSupport_15
37047: PPUSH
37048: CALL_OW 39
// if SwanssonIsSupport then
37052: LD_EXP 85
37056: IFFALSE 37070
// SaveVariable ( SwanssonIsSupport , SwanssonIsSupport_15 ) ;
37058: LD_EXP 85
37062: PPUSH
37063: LD_STRING SwanssonIsSupport_15
37065: PPUSH
37066: CALL_OW 39
// if DwayneIsSupport then
37070: LD_EXP 86
37074: IFFALSE 37088
// SaveVariable ( DwayneIsSupport , DwayneIsSupport_15 ) ;
37076: LD_EXP 86
37080: PPUSH
37081: LD_STRING DwayneIsSupport_15
37083: PPUSH
37084: CALL_OW 39
// if KhattamIsSupport then
37088: LD_EXP 87
37092: IFFALSE 37106
// SaveVariable ( KhattamIsSupport , KhattamIsSupport_15 ) ;
37094: LD_EXP 87
37098: PPUSH
37099: LD_STRING KhattamIsSupport_15
37101: PPUSH
37102: CALL_OW 39
// if MakiseIsSupport then
37106: LD_EXP 88
37110: IFFALSE 37124
// SaveVariable ( MakiseIsSupport , MakiseIsSupport_15 ) ;
37112: LD_EXP 88
37116: PPUSH
37117: LD_STRING MakiseIsSupport_15
37119: PPUSH
37120: CALL_OW 39
// if SnakeIsSupport then
37124: LD_EXP 89
37128: IFFALSE 37142
// SaveVariable ( SnakeIsSupport , SnakeIsSupport_15 ) ;
37130: LD_EXP 89
37134: PPUSH
37135: LD_STRING SnakeIsSupport_15
37137: PPUSH
37138: CALL_OW 39
// if ATech_SibPlant = 3 then
37142: LD_EXP 92
37146: PUSH
37147: LD_INT 3
37149: EQUAL
37150: IFFALSE 37162
// SaveVariable ( 1 , ArtTech_SibPlant_15 ) ;
37152: LD_INT 1
37154: PPUSH
37155: LD_STRING ArtTech_SibPlant_15
37157: PPUSH
37158: CALL_OW 39
// if ATech_Beh = 3 then
37162: LD_EXP 93
37166: PUSH
37167: LD_INT 3
37169: EQUAL
37170: IFFALSE 37182
// SaveVariable ( 1 , ArtTech_Beh_15 ) ;
37172: LD_INT 1
37174: PPUSH
37175: LD_STRING ArtTech_Beh_15
37177: PPUSH
37178: CALL_OW 39
// if ATech_TimeLapse = 3 then
37182: LD_EXP 94
37186: PUSH
37187: LD_INT 3
37189: EQUAL
37190: IFFALSE 37202
// SaveVariable ( 1 , ArtTech_TimeLapse_15 ) ;
37192: LD_INT 1
37194: PPUSH
37195: LD_STRING ArtTech_TimeLapse_15
37197: PPUSH
37198: CALL_OW 39
// if ATech_Laser = 3 then
37202: LD_EXP 95
37206: PUSH
37207: LD_INT 3
37209: EQUAL
37210: IFFALSE 37222
// SaveVariable ( 1 , ArtTech_Laser_15 ) ;
37212: LD_INT 1
37214: PPUSH
37215: LD_STRING ArtTech_Laser_15
37217: PPUSH
37218: CALL_OW 39
// if ATech_SuperStim = 3 then
37222: LD_EXP 96
37226: PUSH
37227: LD_INT 3
37229: EQUAL
37230: IFFALSE 37242
// SaveVariable ( 1 , ArtTech_SuperStim_15 ) ;
37232: LD_INT 1
37234: PPUSH
37235: LD_STRING ArtTech_SuperStim_15
37237: PPUSH
37238: CALL_OW 39
// if ATech_SPBomb = 3 then
37242: LD_EXP 97
37246: PUSH
37247: LD_INT 3
37249: EQUAL
37250: IFFALSE 37262
// SaveVariable ( 1 , ArtTech_SPBomb_15 ) ;
37252: LD_INT 1
37254: PPUSH
37255: LD_STRING ArtTech_SPBomb_15
37257: PPUSH
37258: CALL_OW 39
// if AllianceDestroyed then
37262: LD_EXP 50
37266: IFFALSE 37278
// SaveVariable ( 1 , AllianceDestroyed_15 ) ;
37268: LD_INT 1
37270: PPUSH
37271: LD_STRING AllianceDestroyed_15
37273: PPUSH
37274: CALL_OW 39
// temp = [ tech_apelang , tech_tech1 , tech_tech2 , tech_tech3 , tech_explos , tech_selfdest , tech_weap1 , tech_weap2 , tech_weap3 , tech_remcharge , tech_opto1 , tech_opto2 , tech_opto3 , tech_stimdrugs , tech_bio1 , tech_bio2 , tech_bio3 , tech_sibcontam , tech_sib1 , tech_sib2 , tech_sib3 ] ;
37278: LD_ADDR_VAR 0 4
37282: PUSH
37283: LD_INT 1
37285: PUSH
37286: LD_INT 48
37288: PUSH
37289: LD_INT 49
37291: PUSH
37292: LD_INT 50
37294: PUSH
37295: LD_INT 42
37297: PUSH
37298: LD_INT 43
37300: PUSH
37301: LD_INT 51
37303: PUSH
37304: LD_INT 52
37306: PUSH
37307: LD_INT 53
37309: PUSH
37310: LD_INT 18
37312: PUSH
37313: LD_INT 60
37315: PUSH
37316: LD_INT 61
37318: PUSH
37319: LD_INT 62
37321: PUSH
37322: LD_INT 5
37324: PUSH
37325: LD_INT 66
37327: PUSH
37328: LD_INT 67
37330: PUSH
37331: LD_INT 68
37333: PUSH
37334: LD_INT 26
37336: PUSH
37337: LD_INT 54
37339: PUSH
37340: LD_INT 55
37342: PUSH
37343: LD_INT 56
37345: PUSH
37346: EMPTY
37347: LIST
37348: LIST
37349: LIST
37350: LIST
37351: LIST
37352: LIST
37353: LIST
37354: LIST
37355: LIST
37356: LIST
37357: LIST
37358: LIST
37359: LIST
37360: LIST
37361: LIST
37362: LIST
37363: LIST
37364: LIST
37365: LIST
37366: LIST
37367: LIST
37368: ST_TO_ADDR
// temp_list = [ ] ;
37369: LD_ADDR_VAR 0 7
37373: PUSH
37374: EMPTY
37375: ST_TO_ADDR
// for i in temp do
37376: LD_ADDR_VAR 0 2
37380: PUSH
37381: LD_VAR 0 4
37385: PUSH
37386: FOR_IN
37387: IFFALSE 37425
// if GetTech ( i , 2 ) = state_researched then
37389: LD_VAR 0 2
37393: PPUSH
37394: LD_INT 2
37396: PPUSH
37397: CALL_OW 321
37401: PUSH
37402: LD_INT 2
37404: EQUAL
37405: IFFALSE 37423
// temp_list = temp_list ^ i ;
37407: LD_ADDR_VAR 0 7
37411: PUSH
37412: LD_VAR 0 7
37416: PUSH
37417: LD_VAR 0 2
37421: ADD
37422: ST_TO_ADDR
37423: GO 37386
37425: POP
37426: POP
// SaveVariable ( temp_list , Technologies_15 ) ;
37427: LD_VAR 0 7
37431: PPUSH
37432: LD_STRING Technologies_15
37434: PPUSH
37435: CALL_OW 39
// SaveCharacters ( OtherTeam , SecondPlayerTeam_15 ) ;
37439: LD_EXP 25
37443: PPUSH
37444: LD_STRING SecondPlayerTeam_15
37446: PPUSH
37447: CALL_OW 38
// ChangeMap ( %_cont , %_cont ) ;
37451: LD_STRING %_cont
37453: PPUSH
37454: LD_STRING %_cont
37456: PPUSH
37457: CALL_OW 340
// end ;
37461: LD_VAR 0 1
37465: RET
