// export am , rus , ar ; export burlak , bspoted , burlakv , burlakv_ch , burlakv_wp , burlak_sk ; export arsc0_sk , arv0_ch , arv0_wp , arv0_sk , arv1_ch , arv1_wp , arv1_sk , arv2_ch , arv2_wp , arv2_sk ; export aratt0 , aratt1 , aratt2 , aratt3 , aratt4 , arattv0_ch , arattv0_wp , arattv1_ch , arattv1_wp , arattv2_ch , arattv2_wp , arattv3_ch , arattv3_wp , arattv4_ch , arattv4_wp ; export amreinf0 , amreinf1 , amreinf2 , amreinf3 , amreinfv0_ch , amreinfv0_wp , amreinfv1_ch , amreinfv1_wp ; export bur_hrn , debug , delay1 , delay2 ; var cper , cperiode , supplies ; function set_vars ; begin
   0: LD_INT 0
   2: PPUSH
// am = 1 ;
   3: LD_ADDR_EXP 1
   7: PUSH
   8: LD_INT 1
  10: ST_TO_ADDR
// rus = 3 ;
  11: LD_ADDR_EXP 2
  15: PUSH
  16: LD_INT 3
  18: ST_TO_ADDR
// ar = 2 ;
  19: LD_ADDR_EXP 3
  23: PUSH
  24: LD_INT 2
  26: ST_TO_ADDR
// delay1 = [ 3 3$0 , 2 2$0 , 1 1$0 ] [ difficulty ] ;
  27: LD_ADDR_EXP 45
  31: PUSH
  32: LD_INT 6300
  34: PUSH
  35: LD_INT 4200
  37: PUSH
  38: LD_INT 2100
  40: PUSH
  41: EMPTY
  42: LIST
  43: LIST
  44: LIST
  45: PUSH
  46: LD_OWVAR 67
  50: ARRAY
  51: ST_TO_ADDR
// delay2 = [ 18 , 12 , 6 ] [ difficulty ] ;
  52: LD_ADDR_EXP 46
  56: PUSH
  57: LD_INT 18
  59: PUSH
  60: LD_INT 12
  62: PUSH
  63: LD_INT 6
  65: PUSH
  66: EMPTY
  67: LIST
  68: LIST
  69: LIST
  70: PUSH
  71: LD_OWVAR 67
  75: ARRAY
  76: ST_TO_ADDR
// cperiode = [ 2 2$00 , 2 2$30 , 3 3$00 ] [ difficulty ] ;
  77: LD_ADDR_LOC 2
  81: PUSH
  82: LD_INT 4200
  84: PUSH
  85: LD_INT 5250
  87: PUSH
  88: LD_INT 6300
  90: PUSH
  91: EMPTY
  92: LIST
  93: LIST
  94: LIST
  95: PUSH
  96: LD_OWVAR 67
 100: ARRAY
 101: ST_TO_ADDR
// supplies = [ 11 , 11 , 11 ] [ difficulty ] ;
 102: LD_ADDR_LOC 3
 106: PUSH
 107: LD_INT 11
 109: PUSH
 110: LD_INT 11
 112: PUSH
 113: LD_INT 11
 115: PUSH
 116: EMPTY
 117: LIST
 118: LIST
 119: LIST
 120: PUSH
 121: LD_OWVAR 67
 125: ARRAY
 126: ST_TO_ADDR
// arsc0_sk = [ 5 , 7 , 7 ] [ difficulty ] ;
 127: LD_ADDR_EXP 10
 131: PUSH
 132: LD_INT 5
 134: PUSH
 135: LD_INT 7
 137: PUSH
 138: LD_INT 7
 140: PUSH
 141: EMPTY
 142: LIST
 143: LIST
 144: LIST
 145: PUSH
 146: LD_OWVAR 67
 150: ARRAY
 151: ST_TO_ADDR
// arv0_ch = [ ar_half_tracked , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 152: LD_ADDR_EXP 11
 156: PUSH
 157: LD_INT 14
 159: PUSH
 160: LD_INT 14
 162: PUSH
 163: LD_INT 14
 165: PUSH
 166: EMPTY
 167: LIST
 168: LIST
 169: LIST
 170: PUSH
 171: LD_OWVAR 67
 175: ARRAY
 176: ST_TO_ADDR
// arv0_wp = [ ar_flame_thrower , ar_flame_thrower , ar_flame_thrower ] [ difficulty ] ;
 177: LD_ADDR_EXP 12
 181: PUSH
 182: LD_INT 26
 184: PUSH
 185: LD_INT 26
 187: PUSH
 188: LD_INT 26
 190: PUSH
 191: EMPTY
 192: LIST
 193: LIST
 194: LIST
 195: PUSH
 196: LD_OWVAR 67
 200: ARRAY
 201: ST_TO_ADDR
// arv0_sk = [ 5 , 6 , 7 ] [ difficulty ] ;
 202: LD_ADDR_EXP 13
 206: PUSH
 207: LD_INT 5
 209: PUSH
 210: LD_INT 6
 212: PUSH
 213: LD_INT 7
 215: PUSH
 216: EMPTY
 217: LIST
 218: LIST
 219: LIST
 220: PUSH
 221: LD_OWVAR 67
 225: ARRAY
 226: ST_TO_ADDR
// arv1_ch = [ ar_medium_trike , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 227: LD_ADDR_EXP 14
 231: PUSH
 232: LD_INT 13
 234: PUSH
 235: LD_INT 14
 237: PUSH
 238: LD_INT 14
 240: PUSH
 241: EMPTY
 242: LIST
 243: LIST
 244: LIST
 245: PUSH
 246: LD_OWVAR 67
 250: ARRAY
 251: ST_TO_ADDR
// arv1_wp = [ ar_gatling_gun , ar_gatling_gun , ar_gatling_gun ] [ difficulty ] ;
 252: LD_ADDR_EXP 15
 256: PUSH
 257: LD_INT 25
 259: PUSH
 260: LD_INT 25
 262: PUSH
 263: LD_INT 25
 265: PUSH
 266: EMPTY
 267: LIST
 268: LIST
 269: LIST
 270: PUSH
 271: LD_OWVAR 67
 275: ARRAY
 276: ST_TO_ADDR
// arv1_sk = [ 5 , 6 , 7 ] [ difficulty ] ;
 277: LD_ADDR_EXP 16
 281: PUSH
 282: LD_INT 5
 284: PUSH
 285: LD_INT 6
 287: PUSH
 288: LD_INT 7
 290: PUSH
 291: EMPTY
 292: LIST
 293: LIST
 294: LIST
 295: PUSH
 296: LD_OWVAR 67
 300: ARRAY
 301: ST_TO_ADDR
// arv2_ch = [ ar_medium_trike , ar_medium_trike , ar_half_tracked ] [ difficulty ] ;
 302: LD_ADDR_EXP 17
 306: PUSH
 307: LD_INT 13
 309: PUSH
 310: LD_INT 13
 312: PUSH
 313: LD_INT 14
 315: PUSH
 316: EMPTY
 317: LIST
 318: LIST
 319: LIST
 320: PUSH
 321: LD_OWVAR 67
 325: ARRAY
 326: ST_TO_ADDR
// arv2_wp = [ ar_gun , ar_gun , ar_gun ] [ difficulty ] ;
 327: LD_ADDR_EXP 18
 331: PUSH
 332: LD_INT 27
 334: PUSH
 335: LD_INT 27
 337: PUSH
 338: LD_INT 27
 340: PUSH
 341: EMPTY
 342: LIST
 343: LIST
 344: LIST
 345: PUSH
 346: LD_OWVAR 67
 350: ARRAY
 351: ST_TO_ADDR
// arv2_sk = [ 6 , 7 , 7 ] [ difficulty ] ;
 352: LD_ADDR_EXP 19
 356: PUSH
 357: LD_INT 6
 359: PUSH
 360: LD_INT 7
 362: PUSH
 363: LD_INT 7
 365: PUSH
 366: EMPTY
 367: LIST
 368: LIST
 369: LIST
 370: PUSH
 371: LD_OWVAR 67
 375: ARRAY
 376: ST_TO_ADDR
// amreinf0 = [ 7 , 6 , 5 ] [ difficulty ] ;
 377: LD_ADDR_EXP 35
 381: PUSH
 382: LD_INT 7
 384: PUSH
 385: LD_INT 6
 387: PUSH
 388: LD_INT 5
 390: PUSH
 391: EMPTY
 392: LIST
 393: LIST
 394: LIST
 395: PUSH
 396: LD_OWVAR 67
 400: ARRAY
 401: ST_TO_ADDR
// amreinf1 = [ 6 , 5 , 5 ] [ difficulty ] ;
 402: LD_ADDR_EXP 36
 406: PUSH
 407: LD_INT 6
 409: PUSH
 410: LD_INT 5
 412: PUSH
 413: LD_INT 5
 415: PUSH
 416: EMPTY
 417: LIST
 418: LIST
 419: LIST
 420: PUSH
 421: LD_OWVAR 67
 425: ARRAY
 426: ST_TO_ADDR
// amreinf2 = [ 6 , 6 , 6 ] [ difficulty ] ;
 427: LD_ADDR_EXP 37
 431: PUSH
 432: LD_INT 6
 434: PUSH
 435: LD_INT 6
 437: PUSH
 438: LD_INT 6
 440: PUSH
 441: EMPTY
 442: LIST
 443: LIST
 444: LIST
 445: PUSH
 446: LD_OWVAR 67
 450: ARRAY
 451: ST_TO_ADDR
// amreinf3 = [ 6 , 5 , 5 ] [ difficulty ] ;
 452: LD_ADDR_EXP 38
 456: PUSH
 457: LD_INT 6
 459: PUSH
 460: LD_INT 5
 462: PUSH
 463: LD_INT 5
 465: PUSH
 466: EMPTY
 467: LIST
 468: LIST
 469: LIST
 470: PUSH
 471: LD_OWVAR 67
 475: ARRAY
 476: ST_TO_ADDR
// amreinfv0_ch = [ us_medium_tracked , us_medium_tracked , us_medium_tracked ] [ difficulty ] ;
 477: LD_ADDR_EXP 39
 481: PUSH
 482: LD_INT 3
 484: PUSH
 485: LD_INT 3
 487: PUSH
 488: LD_INT 3
 490: PUSH
 491: EMPTY
 492: LIST
 493: LIST
 494: LIST
 495: PUSH
 496: LD_OWVAR 67
 500: ARRAY
 501: ST_TO_ADDR
// amreinfv0_wp = [ us_laser , us_laser , us_laser ] [ difficulty ] ;
 502: LD_ADDR_EXP 40
 506: PUSH
 507: LD_INT 9
 509: PUSH
 510: LD_INT 9
 512: PUSH
 513: LD_INT 9
 515: PUSH
 516: EMPTY
 517: LIST
 518: LIST
 519: LIST
 520: PUSH
 521: LD_OWVAR 67
 525: ARRAY
 526: ST_TO_ADDR
// amreinfv1_ch = [ us_heavy_tracked , us_medium_tracked , us_medium_tracked ] [ difficulty ] ;
 527: LD_ADDR_EXP 41
 531: PUSH
 532: LD_INT 4
 534: PUSH
 535: LD_INT 3
 537: PUSH
 538: LD_INT 3
 540: PUSH
 541: EMPTY
 542: LIST
 543: LIST
 544: LIST
 545: PUSH
 546: LD_OWVAR 67
 550: ARRAY
 551: ST_TO_ADDR
// amreinfv1_wp = [ us_heavy_gun , us_double_gun , us_light_gun ] [ difficulty ] ;
 552: LD_ADDR_EXP 42
 556: PUSH
 557: LD_INT 6
 559: PUSH
 560: LD_INT 5
 562: PUSH
 563: LD_INT 3
 565: PUSH
 566: EMPTY
 567: LIST
 568: LIST
 569: LIST
 570: PUSH
 571: LD_OWVAR 67
 575: ARRAY
 576: ST_TO_ADDR
// aratt0 = [ 6 , 6 , 7 ] [ difficulty ] ;
 577: LD_ADDR_EXP 20
 581: PUSH
 582: LD_INT 6
 584: PUSH
 585: LD_INT 6
 587: PUSH
 588: LD_INT 7
 590: PUSH
 591: EMPTY
 592: LIST
 593: LIST
 594: LIST
 595: PUSH
 596: LD_OWVAR 67
 600: ARRAY
 601: ST_TO_ADDR
// aratt1 = [ 5 , 5 , 6 ] [ difficulty ] ;
 602: LD_ADDR_EXP 21
 606: PUSH
 607: LD_INT 5
 609: PUSH
 610: LD_INT 5
 612: PUSH
 613: LD_INT 6
 615: PUSH
 616: EMPTY
 617: LIST
 618: LIST
 619: LIST
 620: PUSH
 621: LD_OWVAR 67
 625: ARRAY
 626: ST_TO_ADDR
// aratt2 = [ 5 , 6 , 7 ] [ difficulty ] ;
 627: LD_ADDR_EXP 22
 631: PUSH
 632: LD_INT 5
 634: PUSH
 635: LD_INT 6
 637: PUSH
 638: LD_INT 7
 640: PUSH
 641: EMPTY
 642: LIST
 643: LIST
 644: LIST
 645: PUSH
 646: LD_OWVAR 67
 650: ARRAY
 651: ST_TO_ADDR
// aratt3 = [ 5 , 6 , 6 ] [ difficulty ] ;
 652: LD_ADDR_EXP 23
 656: PUSH
 657: LD_INT 5
 659: PUSH
 660: LD_INT 6
 662: PUSH
 663: LD_INT 6
 665: PUSH
 666: EMPTY
 667: LIST
 668: LIST
 669: LIST
 670: PUSH
 671: LD_OWVAR 67
 675: ARRAY
 676: ST_TO_ADDR
// aratt4 = [ 6 , 6 , 7 ] [ difficulty ] ;
 677: LD_ADDR_EXP 24
 681: PUSH
 682: LD_INT 6
 684: PUSH
 685: LD_INT 6
 687: PUSH
 688: LD_INT 7
 690: PUSH
 691: EMPTY
 692: LIST
 693: LIST
 694: LIST
 695: PUSH
 696: LD_OWVAR 67
 700: ARRAY
 701: ST_TO_ADDR
// arattv0_ch = [ ar_medium_trike , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 702: LD_ADDR_EXP 25
 706: PUSH
 707: LD_INT 13
 709: PUSH
 710: LD_INT 14
 712: PUSH
 713: LD_INT 14
 715: PUSH
 716: EMPTY
 717: LIST
 718: LIST
 719: LIST
 720: PUSH
 721: LD_OWVAR 67
 725: ARRAY
 726: ST_TO_ADDR
// arattv0_wp = [ ar_gun , ar_rocket_launcher , ar_rocket_launcher ] [ difficulty ] ;
 727: LD_ADDR_EXP 26
 731: PUSH
 732: LD_INT 27
 734: PUSH
 735: LD_INT 28
 737: PUSH
 738: LD_INT 28
 740: PUSH
 741: EMPTY
 742: LIST
 743: LIST
 744: LIST
 745: PUSH
 746: LD_OWVAR 67
 750: ARRAY
 751: ST_TO_ADDR
// arattv1_ch = [ ar_medium_trike , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 752: LD_ADDR_EXP 27
 756: PUSH
 757: LD_INT 13
 759: PUSH
 760: LD_INT 14
 762: PUSH
 763: LD_INT 14
 765: PUSH
 766: EMPTY
 767: LIST
 768: LIST
 769: LIST
 770: PUSH
 771: LD_OWVAR 67
 775: ARRAY
 776: ST_TO_ADDR
// arattv1_wp = [ ar_gatling_gun , ar_gatling_gun , ar_gatling_gun ] [ difficulty ] ;
 777: LD_ADDR_EXP 28
 781: PUSH
 782: LD_INT 25
 784: PUSH
 785: LD_INT 25
 787: PUSH
 788: LD_INT 25
 790: PUSH
 791: EMPTY
 792: LIST
 793: LIST
 794: LIST
 795: PUSH
 796: LD_OWVAR 67
 800: ARRAY
 801: ST_TO_ADDR
// arattv2_ch = [ ar_medium_trike , ar_medium_trike , ar_half_tracked ] [ difficulty ] ;
 802: LD_ADDR_EXP 29
 806: PUSH
 807: LD_INT 13
 809: PUSH
 810: LD_INT 13
 812: PUSH
 813: LD_INT 14
 815: PUSH
 816: EMPTY
 817: LIST
 818: LIST
 819: LIST
 820: PUSH
 821: LD_OWVAR 67
 825: ARRAY
 826: ST_TO_ADDR
// arattv2_wp = [ ar_gun , ar_gun , ar_rocket_launcher ] [ difficulty ] ;
 827: LD_ADDR_EXP 30
 831: PUSH
 832: LD_INT 27
 834: PUSH
 835: LD_INT 27
 837: PUSH
 838: LD_INT 28
 840: PUSH
 841: EMPTY
 842: LIST
 843: LIST
 844: LIST
 845: PUSH
 846: LD_OWVAR 67
 850: ARRAY
 851: ST_TO_ADDR
// arattv3_ch = [ ar_medium_trike , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 852: LD_ADDR_EXP 31
 856: PUSH
 857: LD_INT 13
 859: PUSH
 860: LD_INT 14
 862: PUSH
 863: LD_INT 14
 865: PUSH
 866: EMPTY
 867: LIST
 868: LIST
 869: LIST
 870: PUSH
 871: LD_OWVAR 67
 875: ARRAY
 876: ST_TO_ADDR
// arattv3_wp = [ ar_flame_thrower , ar_flame_thrower , ar_flame_thrower ] [ difficulty ] ;
 877: LD_ADDR_EXP 32
 881: PUSH
 882: LD_INT 26
 884: PUSH
 885: LD_INT 26
 887: PUSH
 888: LD_INT 26
 890: PUSH
 891: EMPTY
 892: LIST
 893: LIST
 894: LIST
 895: PUSH
 896: LD_OWVAR 67
 900: ARRAY
 901: ST_TO_ADDR
// arattv4_ch = [ ar_medium_trike , ar_half_tracked , ar_half_tracked ] [ difficulty ] ;
 902: LD_ADDR_EXP 33
 906: PUSH
 907: LD_INT 13
 909: PUSH
 910: LD_INT 14
 912: PUSH
 913: LD_INT 14
 915: PUSH
 916: EMPTY
 917: LIST
 918: LIST
 919: LIST
 920: PUSH
 921: LD_OWVAR 67
 925: ARRAY
 926: ST_TO_ADDR
// arattv4_wp = [ ar_gatling_gun , ar_flame_thrower , ar_flame_thrower ] [ difficulty ] ;
 927: LD_ADDR_EXP 34
 931: PUSH
 932: LD_INT 25
 934: PUSH
 935: LD_INT 26
 937: PUSH
 938: LD_INT 26
 940: PUSH
 941: EMPTY
 942: LIST
 943: LIST
 944: LIST
 945: PUSH
 946: LD_OWVAR 67
 950: ARRAY
 951: ST_TO_ADDR
// burlakv_ch = [ ru_medium_tracked , ru_medium_tracked , ru_heavy_tracked ] [ difficulty ] ;
 952: LD_ADDR_EXP 7
 956: PUSH
 957: LD_INT 22
 959: PUSH
 960: LD_INT 22
 962: PUSH
 963: LD_INT 24
 965: PUSH
 966: EMPTY
 967: LIST
 968: LIST
 969: LIST
 970: PUSH
 971: LD_OWVAR 67
 975: ARRAY
 976: ST_TO_ADDR
// burlakv_wp = [ ru_gatling_gun , ru_gun , ru_heavy_gun ] [ difficulty ] ;
 977: LD_ADDR_EXP 8
 981: PUSH
 982: LD_INT 43
 984: PUSH
 985: LD_INT 44
 987: PUSH
 988: LD_INT 46
 990: PUSH
 991: EMPTY
 992: LIST
 993: LIST
 994: LIST
 995: PUSH
 996: LD_OWVAR 67
1000: ARRAY
1001: ST_TO_ADDR
// burlak_sk = [ 7 , 9 , 10 ] [ difficulty ] ;
1002: LD_ADDR_EXP 9
1006: PUSH
1007: LD_INT 7
1009: PUSH
1010: LD_INT 9
1012: PUSH
1013: LD_INT 10
1015: PUSH
1016: EMPTY
1017: LIST
1018: LIST
1019: LIST
1020: PUSH
1021: LD_OWVAR 67
1025: ARRAY
1026: ST_TO_ADDR
// bur_hrn = [ 300 , 450 , 600 ] [ difficulty ] ;
1027: LD_ADDR_EXP 43
1031: PUSH
1032: LD_INT 300
1034: PUSH
1035: LD_INT 450
1037: PUSH
1038: LD_INT 600
1040: PUSH
1041: EMPTY
1042: LIST
1043: LIST
1044: LIST
1045: PUSH
1046: LD_OWVAR 67
1050: ARRAY
1051: ST_TO_ADDR
// end ;
1052: LD_VAR 0 1
1056: RET
// export go4it ; export marked_09_substitute ; starting begin debug = false ;
1057: LD_ADDR_EXP 44
1061: PUSH
1062: LD_INT 0
1064: ST_TO_ADDR
// disable ( 01 ) ;
1065: LD_INT 1
1067: DISABLE_MARKED
// disable ( 02 ) ;
1068: LD_INT 2
1070: DISABLE_MARKED
// disable ( 03 ) ;
1071: LD_INT 3
1073: DISABLE_MARKED
// disable ( 04 ) ;
1074: LD_INT 4
1076: DISABLE_MARKED
// disable ( 05 ) ;
1077: LD_INT 5
1079: DISABLE_MARKED
// disable ( 06 ) ;
1080: LD_INT 6
1082: DISABLE_MARKED
// disable ( 07 ) ;
1083: LD_INT 7
1085: DISABLE_MARKED
// marked_09_substitute = false ;
1086: LD_ADDR_EXP 48
1090: PUSH
1091: LD_INT 0
1093: ST_TO_ADDR
// disable ( 11 ) ;
1094: LD_INT 11
1096: DISABLE_MARKED
// disable ( 12 ) ;
1097: LD_INT 12
1099: DISABLE_MARKED
// disable ( 14 ) ;
1100: LD_INT 14
1102: DISABLE_MARKED
// attno = 0 ;
1103: LD_ADDR_EXP 60
1107: PUSH
1108: LD_INT 0
1110: ST_TO_ADDR
// go4it = rand ( delay2 * 2 , 36 + 18 - 6 * difficulty ) ;
1111: LD_ADDR_EXP 47
1115: PUSH
1116: LD_EXP 46
1120: PUSH
1121: LD_INT 2
1123: MUL
1124: PPUSH
1125: LD_INT 36
1127: PUSH
1128: LD_INT 18
1130: PLUS
1131: PUSH
1132: LD_INT 6
1134: PUSH
1135: LD_OWVAR 67
1139: MUL
1140: MINUS
1141: PPUSH
1142: CALL_OW 12
1146: ST_TO_ADDR
// set_vars ;
1147: CALL 0 0 0
// cper = cperiode ;
1151: LD_ADDR_LOC 1
1155: PUSH
1156: LD_LOC 2
1160: ST_TO_ADDR
// sibsev = false ;
1161: LD_ADDR_EXP 58
1165: PUSH
1166: LD_INT 0
1168: ST_TO_ADDR
// marked_08 = true ;
1169: LD_ADDR_EXP 59
1173: PUSH
1174: LD_INT 1
1176: ST_TO_ADDR
// posily = false ;
1177: LD_ADDR_EXP 52
1181: PUSH
1182: LD_INT 0
1184: ST_TO_ADDR
// prepare_americans ;
1185: CALL 5759 0 0
// intro ;
1189: CALL 1443 0 0
// uc_nation = nation_russian ;
1193: LD_ADDR_OWVAR 21
1197: PUSH
1198: LD_INT 3
1200: ST_TO_ADDR
// uc_side = rus ;
1201: LD_ADDR_OWVAR 20
1205: PUSH
1206: LD_EXP 2
1210: ST_TO_ADDR
// burlak = newcharacter ( Burlak ) ;
1211: LD_ADDR_EXP 4
1215: PUSH
1216: LD_STRING Burlak
1218: PPUSH
1219: CALL_OW 25
1223: ST_TO_ADDR
// if not burlak then
1224: LD_EXP 4
1228: NOT
1229: IFFALSE 1244
// buildquery ( neny Burlak , [ OK ] ) ;
1231: LD_STRING neny Burlak
1233: PPUSH
1234: LD_STRING OK
1236: PUSH
1237: EMPTY
1238: LIST
1239: PPUSH
1240: CALL_OW 99
// setskill ( burlak , skill_mechanical , burlak_sk ) ;
1244: LD_EXP 4
1248: PPUSH
1249: LD_INT 3
1251: PPUSH
1252: LD_EXP 9
1256: PPUSH
1257: CALL_OW 237
// vc_control = control_manual ;
1261: LD_ADDR_OWVAR 38
1265: PUSH
1266: LD_INT 1
1268: ST_TO_ADDR
// vc_engine = engine_siberite ;
1269: LD_ADDR_OWVAR 39
1273: PUSH
1274: LD_INT 3
1276: ST_TO_ADDR
// vc_chassis = burlakv_ch ;
1277: LD_ADDR_OWVAR 37
1281: PUSH
1282: LD_EXP 7
1286: ST_TO_ADDR
// vc_weapon = burlakv_wp ;
1287: LD_ADDR_OWVAR 40
1291: PUSH
1292: LD_EXP 8
1296: ST_TO_ADDR
// burlakv = createvehicle ;
1297: LD_ADDR_EXP 6
1301: PUSH
1302: CALL_OW 45
1306: ST_TO_ADDR
// bspoted = false ;
1307: LD_ADDR_EXP 5
1311: PUSH
1312: LD_INT 0
1314: ST_TO_ADDR
// burlakutekl = false ;
1315: LD_ADDR_EXP 50
1319: PUSH
1320: LD_INT 0
1322: ST_TO_ADDR
// end ;
1323: END
// every 5 5$0 do
1324: GO 1326
1326: DISABLE
// begin createcratesarea ( rand ( 4 , 5 ) , dropzone2 , true ) ;
1327: LD_INT 4
1329: PPUSH
1330: LD_INT 5
1332: PPUSH
1333: CALL_OW 12
1337: PPUSH
1338: LD_INT 14
1340: PPUSH
1341: LD_INT 1
1343: PPUSH
1344: CALL_OW 55
// enable ;
1348: ENABLE
// end ;
1349: END
// every 0 0$15 + 2 2$00 do
1350: GO 1352
1352: DISABLE
// begin cper = cper - 0 0$15 ;
1353: LD_ADDR_LOC 1
1357: PUSH
1358: LD_LOC 1
1362: PUSH
1363: LD_INT 525
1365: MINUS
1366: ST_TO_ADDR
// if cper = 0 then
1367: LD_LOC 1
1371: PUSH
1372: LD_INT 0
1374: EQUAL
1375: IFFALSE 1432
// begin if createcratesarea ( 5 , dropzone , true ) then
1377: LD_INT 5
1379: PPUSH
1380: LD_INT 9
1382: PPUSH
1383: LD_INT 1
1385: PPUSH
1386: CALL_OW 55
1390: IFFALSE 1429
// begin if ( supplies > 1 ) then
1392: LD_LOC 3
1396: PUSH
1397: LD_INT 1
1399: GREATER
1400: IFFALSE 1417
// begin supplies = supplies - 1 ;
1402: LD_ADDR_LOC 3
1406: PUSH
1407: LD_LOC 3
1411: PUSH
1412: LD_INT 1
1414: MINUS
1415: ST_TO_ADDR
// enable ;
1416: ENABLE
// end ; cper = cperiode ;
1417: LD_ADDR_LOC 1
1421: PUSH
1422: LD_LOC 2
1426: ST_TO_ADDR
// end else
1427: GO 1430
// enable ;
1429: ENABLE
// end else
1430: GO 1433
// enable ;
1432: ENABLE
// end ;
1433: END
// every 0 0$7 do
1434: GO 1436
1436: DISABLE
// begin randomize ;
1437: CALL_OW 10
// enable ;
1441: ENABLE
// end ; end_of_file
1442: END
// export americani ; export function intro ; var tmp , tmp1 , tmp2 ; begin
1443: LD_INT 0
1445: PPUSH
1446: PPUSH
1447: PPUSH
1448: PPUSH
// vc_control = control_manual ;
1449: LD_ADDR_OWVAR 38
1453: PUSH
1454: LD_INT 1
1456: ST_TO_ADDR
// vc_engine = engine_siberite ;
1457: LD_ADDR_OWVAR 39
1461: PUSH
1462: LD_INT 3
1464: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
1465: LD_ADDR_OWVAR 37
1469: PUSH
1470: LD_INT 3
1472: ST_TO_ADDR
// vc_weapon = us_double_gun ;
1473: LD_ADDR_OWVAR 40
1477: PUSH
1478: LD_INT 5
1480: ST_TO_ADDR
// tmp = createvehicle ;
1481: LD_ADDR_VAR 0 2
1485: PUSH
1486: CALL_OW 45
1490: ST_TO_ADDR
// setdir ( tmp , 1 ) ;
1491: LD_VAR 0 2
1495: PPUSH
1496: LD_INT 1
1498: PPUSH
1499: CALL_OW 233
// placeunitxy ( tmp , 42 , 66 , false ) ;
1503: LD_VAR 0 2
1507: PPUSH
1508: LD_INT 42
1510: PPUSH
1511: LD_INT 66
1513: PPUSH
1514: LD_INT 0
1516: PPUSH
1517: CALL_OW 48
// placehumaninunit ( john , tmp ) ;
1521: LD_EXP 53
1525: PPUSH
1526: LD_VAR 0 2
1530: PPUSH
1531: CALL_OW 52
// tmp = createvehicle ;
1535: LD_ADDR_VAR 0 2
1539: PUSH
1540: CALL_OW 45
1544: ST_TO_ADDR
// setdir ( tmp , 2 ) ;
1545: LD_VAR 0 2
1549: PPUSH
1550: LD_INT 2
1552: PPUSH
1553: CALL_OW 233
// placeunitxy ( tmp , 44 , 70 , false ) ;
1557: LD_VAR 0 2
1561: PPUSH
1562: LD_INT 44
1564: PPUSH
1565: LD_INT 70
1567: PPUSH
1568: LD_INT 0
1570: PPUSH
1571: CALL_OW 48
// placehumaninunit ( huck , tmp ) ;
1575: LD_EXP 55
1579: PPUSH
1580: LD_VAR 0 2
1584: PPUSH
1585: CALL_OW 52
// tmp2 = 0 ;
1589: LD_ADDR_VAR 0 4
1593: PUSH
1594: LD_INT 0
1596: ST_TO_ADDR
// vc_weapon = us_cargo_bay ;
1597: LD_ADDR_OWVAR 40
1601: PUSH
1602: LD_INT 12
1604: ST_TO_ADDR
// for tmp in americani do
1605: LD_ADDR_VAR 0 2
1609: PUSH
1610: LD_EXP 49
1614: PUSH
1615: FOR_IN
1616: IFFALSE 1753
// begin if tmp2 = 2 then
1618: LD_VAR 0 4
1622: PUSH
1623: LD_INT 2
1625: EQUAL
1626: IFFALSE 1655
// if prob ( 60 ) then
1628: LD_INT 60
1630: PPUSH
1631: CALL_OW 13
1635: IFFALSE 1647
// vc_weapon = us_double_gun else
1637: LD_ADDR_OWVAR 40
1641: PUSH
1642: LD_INT 5
1644: ST_TO_ADDR
1645: GO 1655
// vc_weapon = us_gatling_gun ;
1647: LD_ADDR_OWVAR 40
1651: PUSH
1652: LD_INT 4
1654: ST_TO_ADDR
// tmp1 = createvehicle ;
1655: LD_ADDR_VAR 0 3
1659: PUSH
1660: CALL_OW 45
1664: ST_TO_ADDR
// if tmp2 < 2 then
1665: LD_VAR 0 4
1669: PUSH
1670: LD_INT 2
1672: LESS
1673: IFFALSE 1704
// begin setcargo ( tmp1 , mat_cans , 100 ) ;
1675: LD_VAR 0 3
1679: PPUSH
1680: LD_INT 1
1682: PPUSH
1683: LD_INT 100
1685: PPUSH
1686: CALL_OW 290
// tmp2 = tmp2 + 1 ;
1690: LD_ADDR_VAR 0 4
1694: PUSH
1695: LD_VAR 0 4
1699: PUSH
1700: LD_INT 1
1702: PLUS
1703: ST_TO_ADDR
// end ; setdir ( tmp1 , 1 ) ;
1704: LD_VAR 0 3
1708: PPUSH
1709: LD_INT 1
1711: PPUSH
1712: CALL_OW 233
// placeunitxyr ( tmp1 , 34 , 62 , 7 , false ) ;
1716: LD_VAR 0 3
1720: PPUSH
1721: LD_INT 34
1723: PPUSH
1724: LD_INT 62
1726: PPUSH
1727: LD_INT 7
1729: PPUSH
1730: LD_INT 0
1732: PPUSH
1733: CALL_OW 50
// placehumaninunit ( tmp , tmp1 ) ;
1737: LD_VAR 0 2
1741: PPUSH
1742: LD_VAR 0 3
1746: PPUSH
1747: CALL_OW 52
// end ;
1751: GO 1615
1753: POP
1754: POP
// centernowonxy ( 39 , 66 ) ;
1755: LD_INT 39
1757: PPUSH
1758: LD_INT 66
1760: PPUSH
1761: CALL_OW 86
// dialogueon ;
1765: CALL_OW 6
// say ( john , D2-JMM-1 ) ;
1769: LD_EXP 53
1773: PPUSH
1774: LD_STRING D2-JMM-1
1776: PPUSH
1777: CALL_OW 88
// say ( huck , D2-Huck-1 ) ;
1781: LD_EXP 55
1785: PPUSH
1786: LD_STRING D2-Huck-1
1788: PPUSH
1789: CALL_OW 88
// say ( john , D2-JMM-2 ) ;
1793: LD_EXP 53
1797: PPUSH
1798: LD_STRING D2-JMM-2
1800: PPUSH
1801: CALL_OW 88
// dialogueoff ;
1805: CALL_OW 7
// wait ( 0 0$0.33 ) ;
1809: LD_INT 12
1811: PPUSH
1812: CALL_OW 67
// saveforquickrestart ;
1816: CALL_OW 22
// changemissionobjectives ( M1 ) ;
1820: LD_STRING M1
1822: PPUSH
1823: CALL_OW 337
// end ; end_of_file
1827: LD_VAR 0 1
1831: RET
// export burlakutekl , seznamposil ; every 7 7$0 do var tmp ;
1832: GO 1834
1834: DISABLE
1835: LD_INT 0
1837: PPUSH
// begin dialogueon ;
1838: CALL_OW 6
// sayradio ( powell , D3-Pow-1 ) ;
1842: LD_EXP 54
1846: PPUSH
1847: LD_STRING D3-Pow-1
1849: PPUSH
1850: CALL_OW 94
// say ( john , D3-JMM-1 ) ;
1854: LD_EXP 53
1858: PPUSH
1859: LD_STRING D3-JMM-1
1861: PPUSH
1862: CALL_OW 88
// sayradio ( powell , D3-Pow-2 ) ;
1866: LD_EXP 54
1870: PPUSH
1871: LD_STRING D3-Pow-2
1873: PPUSH
1874: CALL_OW 94
// say ( john , D3-JMM-2 ) ;
1878: LD_EXP 53
1882: PPUSH
1883: LD_STRING D3-JMM-2
1885: PPUSH
1886: CALL_OW 88
// sayradio ( powell , D3-Pow-3 ) ;
1890: LD_EXP 54
1894: PPUSH
1895: LD_STRING D3-Pow-3
1897: PPUSH
1898: CALL_OW 94
// say ( john , D3-JMM-3 ) ;
1902: LD_EXP 53
1906: PPUSH
1907: LD_STRING D3-JMM-3
1909: PPUSH
1910: CALL_OW 88
// sayradio ( powell , D3-Pow-4 ) ;
1914: LD_EXP 54
1918: PPUSH
1919: LD_STRING D3-Pow-4
1921: PPUSH
1922: CALL_OW 94
// say ( john , D3-JMM-4 ) ;
1926: LD_EXP 53
1930: PPUSH
1931: LD_STRING D3-JMM-4
1933: PPUSH
1934: CALL_OW 88
// tmp = nearestunittounit ( filterallunits ( [ [ f_side , am ] , [ f_type , unit_human ] , [ f_sex , sex_male ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john , john ) ;
1938: LD_ADDR_VAR 0 1
1942: PUSH
1943: LD_INT 22
1945: PUSH
1946: LD_EXP 1
1950: PUSH
1951: EMPTY
1952: LIST
1953: LIST
1954: PUSH
1955: LD_INT 21
1957: PUSH
1958: LD_INT 1
1960: PUSH
1961: EMPTY
1962: LIST
1963: LIST
1964: PUSH
1965: LD_INT 26
1967: PUSH
1968: LD_INT 1
1970: PUSH
1971: EMPTY
1972: LIST
1973: LIST
1974: PUSH
1975: LD_INT 50
1977: PUSH
1978: EMPTY
1979: LIST
1980: PUSH
1981: LD_INT 3
1983: PUSH
1984: LD_INT 23
1986: PUSH
1987: LD_INT 0
1989: PUSH
1990: EMPTY
1991: LIST
1992: LIST
1993: PUSH
1994: EMPTY
1995: LIST
1996: LIST
1997: PUSH
1998: EMPTY
1999: LIST
2000: LIST
2001: LIST
2002: LIST
2003: LIST
2004: PPUSH
2005: CALL_OW 69
2009: PUSH
2010: LD_EXP 53
2014: DIFF
2015: PPUSH
2016: LD_EXP 53
2020: PPUSH
2021: CALL_OW 74
2025: ST_TO_ADDR
// if tmp then
2026: LD_VAR 0 1
2030: IFFALSE 2044
// say ( tmp , D3-Sol1-4 ) ;
2032: LD_VAR 0 1
2036: PPUSH
2037: LD_STRING D3-Sol1-4
2039: PPUSH
2040: CALL_OW 88
// dialogueoff ;
2044: CALL_OW 7
// changemissionobjectives ( M2 ) ;
2048: LD_STRING M2
2050: PPUSH
2051: CALL_OW 337
// end ;
2055: PPOPN 1
2057: END
// every 9 9$0 do
2058: GO 2060
2060: DISABLE
// begin setdir ( 2 , burlakv ) ;
2061: LD_INT 2
2063: PPUSH
2064: LD_EXP 6
2068: PPUSH
2069: CALL_OW 233
// placeunitarea ( burlakv , cestasever , false ) ;
2073: LD_EXP 6
2077: PPUSH
2078: LD_INT 4
2080: PPUSH
2081: LD_INT 0
2083: PPUSH
2084: CALL_OW 49
// placehumaninunit ( burlak , burlakv ) ;
2088: LD_EXP 4
2092: PPUSH
2093: LD_EXP 6
2097: PPUSH
2098: CALL_OW 52
// comagressivemove ( burlakv , 106 , 118 ) ;
2102: LD_EXP 6
2106: PPUSH
2107: LD_INT 106
2109: PPUSH
2110: LD_INT 118
2112: PPUSH
2113: CALL_OW 114
// enable ( 10 ) ;
2117: LD_INT 10
2119: ENABLE_MARKED
// end ;
2120: END
// every 0 0$0.5 trigger getlives ( burlakv ) < bur_hrn marked 10 do
2121: LD_EXP 6
2125: PPUSH
2126: CALL_OW 256
2130: PUSH
2131: LD_EXP 43
2135: LESS
2136: IFFALSE 2156
2138: GO 2140
2140: DISABLE
// begin commovexy ( burlakv , 106 , 118 ) end ;
2141: LD_EXP 6
2145: PPUSH
2146: LD_INT 106
2148: PPUSH
2149: LD_INT 118
2151: PPUSH
2152: CALL_OW 111
2156: END
// on unitgoestored ( un ) do if un = burlakv then
2157: LD_VAR 0 1
2161: PUSH
2162: LD_EXP 6
2166: EQUAL
2167: IFFALSE 2191
// begin wait ( 0 0$0.5 ) ;
2169: LD_INT 18
2171: PPUSH
2172: CALL_OW 67
// commovexy ( burlak , 106 , 118 ) ;
2176: LD_EXP 4
2180: PPUSH
2181: LD_INT 106
2183: PPUSH
2184: LD_INT 118
2186: PPUSH
2187: CALL_OW 111
// end ;
2191: PPOPN 1
2193: END
// every 0 0$1 + 9 9$0 do var tmp ;
2194: GO 2196
2196: DISABLE
2197: LD_INT 0
2199: PPUSH
// begin tmp = filterunitsinarea ( cestajihout , [ [ f_side , rus ] ] ) ;
2200: LD_ADDR_VAR 0 1
2204: PUSH
2205: LD_INT 10
2207: PPUSH
2208: LD_INT 22
2210: PUSH
2211: LD_EXP 2
2215: PUSH
2216: EMPTY
2217: LIST
2218: LIST
2219: PUSH
2220: EMPTY
2221: LIST
2222: PPUSH
2223: CALL_OW 70
2227: ST_TO_ADDR
// if tmp then
2228: LD_VAR 0 1
2232: IFFALSE 2257
// begin destroyunit ( tmp [ 1 ] ) ;
2234: LD_VAR 0 1
2238: PUSH
2239: LD_INT 1
2241: ARRAY
2242: PPUSH
2243: CALL_OW 65
// burlakutekl = true ;
2247: LD_ADDR_EXP 50
2251: PUSH
2252: LD_INT 1
2254: ST_TO_ADDR
// end else
2255: GO 2258
// enable ;
2257: ENABLE
// end ;
2258: PPOPN 1
2260: END
// every 0 0$0.5 + 9 9$0 trigger see ( am , burlakv ) do var tmp ;
2261: LD_EXP 1
2265: PPUSH
2266: LD_EXP 6
2270: PPUSH
2271: CALL_OW 292
2275: IFFALSE 2529
2277: GO 2279
2279: DISABLE
2280: LD_INT 0
2282: PPUSH
// begin tmp = nearestunittounit ( filterallunits ( [ [ f_side , am ] , [ f_or , [ f_type , unit_human ] , [ f_control , control_manual ] , [ f_control , control_remote ] ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john , burlakv ) ;
2283: LD_ADDR_VAR 0 1
2287: PUSH
2288: LD_INT 22
2290: PUSH
2291: LD_EXP 1
2295: PUSH
2296: EMPTY
2297: LIST
2298: LIST
2299: PUSH
2300: LD_INT 2
2302: PUSH
2303: LD_INT 21
2305: PUSH
2306: LD_INT 1
2308: PUSH
2309: EMPTY
2310: LIST
2311: LIST
2312: PUSH
2313: LD_INT 33
2315: PUSH
2316: LD_INT 1
2318: PUSH
2319: EMPTY
2320: LIST
2321: LIST
2322: PUSH
2323: LD_INT 33
2325: PUSH
2326: LD_INT 2
2328: PUSH
2329: EMPTY
2330: LIST
2331: LIST
2332: PUSH
2333: EMPTY
2334: LIST
2335: LIST
2336: LIST
2337: LIST
2338: PUSH
2339: LD_INT 3
2341: PUSH
2342: LD_INT 23
2344: PUSH
2345: LD_INT 0
2347: PUSH
2348: EMPTY
2349: LIST
2350: LIST
2351: PUSH
2352: EMPTY
2353: LIST
2354: LIST
2355: PUSH
2356: EMPTY
2357: LIST
2358: LIST
2359: LIST
2360: PPUSH
2361: CALL_OW 69
2365: PUSH
2366: LD_EXP 53
2370: DIFF
2371: PPUSH
2372: LD_EXP 6
2376: PPUSH
2377: CALL_OW 74
2381: ST_TO_ADDR
// if gettype ( tmp ) = unit_vehicle then
2382: LD_VAR 0 1
2386: PPUSH
2387: CALL_OW 247
2391: PUSH
2392: LD_INT 2
2394: EQUAL
2395: IFFALSE 2460
// case getcontrol ( tmp ) of control_manual :
2397: LD_VAR 0 1
2401: PPUSH
2402: CALL_OW 263
2406: PUSH
2407: LD_INT 1
2409: DOUBLE
2410: EQUAL
2411: IFTRUE 2415
2413: GO 2433
2415: POP
// tmp = isdrivenby ( tmp ) ; control_remote :
2416: LD_ADDR_VAR 0 1
2420: PUSH
2421: LD_VAR 0 1
2425: PPUSH
2426: CALL_OW 311
2430: ST_TO_ADDR
2431: GO 2460
2433: LD_INT 2
2435: DOUBLE
2436: EQUAL
2437: IFTRUE 2441
2439: GO 2459
2441: POP
// tmp = iscontroledby ( tmp ) ; end ;
2442: LD_ADDR_VAR 0 1
2446: PUSH
2447: LD_VAR 0 1
2451: PPUSH
2452: CALL_OW 312
2456: ST_TO_ADDR
2457: GO 2460
2459: POP
// dialogueon ;
2460: CALL_OW 6
// if getsex ( tmp ) = sex_male then
2464: LD_VAR 0 1
2468: PPUSH
2469: CALL_OW 258
2473: PUSH
2474: LD_INT 1
2476: EQUAL
2477: IFFALSE 2493
// say ( tmp , D5-Sol1-1 ) else
2479: LD_VAR 0 1
2483: PPUSH
2484: LD_STRING D5-Sol1-1
2486: PPUSH
2487: CALL_OW 88
2491: GO 2505
// say ( tmp , D5-FSol1-1 ) ;
2493: LD_VAR 0 1
2497: PPUSH
2498: LD_STRING D5-FSol1-1
2500: PPUSH
2501: CALL_OW 88
// say ( john , D5-JMM-1 ) ;
2505: LD_EXP 53
2509: PPUSH
2510: LD_STRING D5-JMM-1
2512: PPUSH
2513: CALL_OW 88
// dialogueoff ;
2517: CALL_OW 7
// bspoted = true ;
2521: LD_ADDR_EXP 5
2525: PUSH
2526: LD_INT 1
2528: ST_TO_ADDR
// end ;
2529: PPOPN 1
2531: END
// every 0 0$0.51 + 9 9$0 trigger bspoted and ( not isplaced ( burlak ) ) do var tmp ;
2532: LD_EXP 5
2536: PUSH
2537: LD_EXP 4
2541: PPUSH
2542: CALL_OW 305
2546: NOT
2547: AND
2548: IFFALSE 2733
2550: GO 2552
2552: DISABLE
2553: LD_INT 0
2555: PPUSH
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_type , unit_human ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
2556: LD_ADDR_VAR 0 1
2560: PUSH
2561: LD_INT 22
2563: PUSH
2564: LD_EXP 1
2568: PUSH
2569: EMPTY
2570: LIST
2571: LIST
2572: PUSH
2573: LD_INT 21
2575: PUSH
2576: LD_INT 1
2578: PUSH
2579: EMPTY
2580: LIST
2581: LIST
2582: PUSH
2583: LD_INT 50
2585: PUSH
2586: EMPTY
2587: LIST
2588: PUSH
2589: LD_INT 3
2591: PUSH
2592: LD_INT 23
2594: PUSH
2595: LD_INT 0
2597: PUSH
2598: EMPTY
2599: LIST
2600: LIST
2601: PUSH
2602: EMPTY
2603: LIST
2604: LIST
2605: PUSH
2606: EMPTY
2607: LIST
2608: LIST
2609: LIST
2610: LIST
2611: PPUSH
2612: CALL_OW 69
2616: PUSH
2617: LD_EXP 53
2621: DIFF
2622: ST_TO_ADDR
// if burlakutekl then
2623: LD_EXP 50
2627: IFFALSE 2680
// begin dialogueon ;
2629: CALL_OW 6
// say ( john , D5a-JMM-1 ) ;
2633: LD_EXP 53
2637: PPUSH
2638: LD_STRING D5a-JMM-1
2640: PPUSH
2641: CALL_OW 88
// if tmp then
2645: LD_VAR 0 1
2649: IFFALSE 2667
// say ( tmp [ 1 ] , D5a-Sol1-1 ) ;
2651: LD_VAR 0 1
2655: PUSH
2656: LD_INT 1
2658: ARRAY
2659: PPUSH
2660: LD_STRING D5a-Sol1-1
2662: PPUSH
2663: CALL_OW 88
// dialogueoff ;
2667: CALL_OW 7
// changemissionobjectives ( M2b ) ;
2671: LD_STRING M2b
2673: PPUSH
2674: CALL_OW 337
// end else
2678: GO 2733
// begin dialogueon ;
2680: CALL_OW 6
// say ( john , D5b-JMM-1 ) ;
2684: LD_EXP 53
2688: PPUSH
2689: LD_STRING D5b-JMM-1
2691: PPUSH
2692: CALL_OW 88
// if tmp then
2696: LD_VAR 0 1
2700: IFFALSE 2718
// say ( tmp [ 1 ] , D5b-Sol1-1 ) ;
2702: LD_VAR 0 1
2706: PUSH
2707: LD_INT 1
2709: ARRAY
2710: PPUSH
2711: LD_STRING D5b-Sol1-1
2713: PPUSH
2714: CALL_OW 88
// dialogueoff ;
2718: CALL_OW 7
// SA_OnBurlakKilled ;
2722: CALL 12601 0 0
// changemissionobjectives ( M2a ) ;
2726: LD_STRING M2a
2728: PPUSH
2729: CALL_OW 337
// end ; end ;
2733: PPOPN 1
2735: END
// on unitdestroyed ( un ) do var tmp ;
2736: LD_INT 0
2738: PPUSH
// if un = huck then
2739: LD_VAR 0 1
2743: PUSH
2744: LD_EXP 55
2748: EQUAL
2749: IFFALSE 2918
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_type , unit_human ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
2751: LD_ADDR_VAR 0 2
2755: PUSH
2756: LD_INT 22
2758: PUSH
2759: LD_EXP 1
2763: PUSH
2764: EMPTY
2765: LIST
2766: LIST
2767: PUSH
2768: LD_INT 21
2770: PUSH
2771: LD_INT 1
2773: PUSH
2774: EMPTY
2775: LIST
2776: LIST
2777: PUSH
2778: LD_INT 50
2780: PUSH
2781: EMPTY
2782: LIST
2783: PUSH
2784: LD_INT 3
2786: PUSH
2787: LD_INT 23
2789: PUSH
2790: LD_INT 0
2792: PUSH
2793: EMPTY
2794: LIST
2795: LIST
2796: PUSH
2797: EMPTY
2798: LIST
2799: LIST
2800: PUSH
2801: EMPTY
2802: LIST
2803: LIST
2804: LIST
2805: LIST
2806: PPUSH
2807: CALL_OW 69
2811: PUSH
2812: LD_EXP 53
2816: DIFF
2817: ST_TO_ADDR
// dialogueon ;
2818: CALL_OW 6
// say ( john , D6-JMM-1 ) ;
2822: LD_EXP 53
2826: PPUSH
2827: LD_STRING D6-JMM-1
2829: PPUSH
2830: CALL_OW 88
// if tmp then
2834: LD_VAR 0 2
2838: IFFALSE 2893
// if getsex ( tmp [ 1 ] ) = sex_male then
2840: LD_VAR 0 2
2844: PUSH
2845: LD_INT 1
2847: ARRAY
2848: PPUSH
2849: CALL_OW 258
2853: PUSH
2854: LD_INT 1
2856: EQUAL
2857: IFFALSE 2877
// say ( tmp [ 1 ] , D6-Sol1-1 ) else
2859: LD_VAR 0 2
2863: PUSH
2864: LD_INT 1
2866: ARRAY
2867: PPUSH
2868: LD_STRING D6-Sol1-1
2870: PPUSH
2871: CALL_OW 88
2875: GO 2893
// say ( tmp [ 1 ] , D6-FSol1-1 ) ;
2877: LD_VAR 0 2
2881: PUSH
2882: LD_INT 1
2884: ARRAY
2885: PPUSH
2886: LD_STRING D6-FSol1-1
2888: PPUSH
2889: CALL_OW 88
// say ( john , D6-JMM-2 ) ;
2893: LD_EXP 53
2897: PPUSH
2898: LD_STRING D6-JMM-2
2900: PPUSH
2901: CALL_OW 88
// dialogueoff ;
2905: CALL_OW 7
// changemissionobjectives ( M1a ) ;
2909: LD_STRING M1a
2911: PPUSH
2912: CALL_OW 337
// end else
2916: GO 2959
// if un = john then
2918: LD_VAR 0 1
2922: PUSH
2923: LD_EXP 53
2927: EQUAL
2928: IFFALSE 2939
// youlost ( JMM ) else
2930: LD_STRING JMM
2932: PPUSH
2933: CALL_OW 104
2937: GO 2959
// if un = arabsci then
2939: LD_VAR 0 1
2943: PUSH
2944: LD_EXP 56
2948: EQUAL
2949: IFFALSE 2959
// arsci_cipl = true ;
2951: LD_ADDR_EXP 57
2955: PUSH
2956: LD_INT 1
2958: ST_TO_ADDR
2959: PPOPN 2
2961: END
// on humandestroyed ( un , side , nation , x , y , direction , sex , class ) do if ( not un = john ) and ( not un = huck ) then
2962: LD_VAR 0 1
2966: PUSH
2967: LD_EXP 53
2971: EQUAL
2972: NOT
2973: PUSH
2974: LD_VAR 0 1
2978: PUSH
2979: LD_EXP 55
2983: EQUAL
2984: NOT
2985: AND
2986: IFFALSE 3020
// if class = class_scientistic and inarea ( x , y , target ) then
2988: LD_VAR 0 8
2992: PUSH
2993: LD_INT 4
2995: EQUAL
2996: PUSH
2997: LD_VAR 0 4
3001: PPUSH
3002: LD_VAR 0 5
3006: PPUSH
3007: LD_INT 6
3009: PPUSH
3010: CALL_OW 309
3014: AND
3015: IFFALSE 3020
// enable ( 06 ) ;
3017: LD_INT 6
3019: ENABLE_MARKED
3020: PPOPN 8
3022: END
// on researchcomplete ( tech , lab ) do var tmp , tmp1 , tmp2 ;
3023: LD_INT 0
3025: PPUSH
3026: PPUSH
3027: PPUSH
// if tech = tech_sibfiss then
3028: LD_VAR 0 1
3032: PUSH
3033: LD_INT 25
3035: EQUAL
3036: IFFALSE 3317
// begin dialogueon ;
3038: CALL_OW 6
// if isok ( huck ) then
3042: LD_EXP 55
3046: PPUSH
3047: CALL_OW 302
3051: IFFALSE 3067
// say ( huck , D6-Huck-2 ) else
3053: LD_EXP 55
3057: PPUSH
3058: LD_STRING D6-Huck-2
3060: PPUSH
3061: CALL_OW 88
3065: GO 3313
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_class , class_scientistic ] , [ f_ok ] ] ) diff john ;
3067: LD_ADDR_VAR 0 3
3071: PUSH
3072: LD_INT 22
3074: PUSH
3075: LD_EXP 1
3079: PUSH
3080: EMPTY
3081: LIST
3082: LIST
3083: PUSH
3084: LD_INT 25
3086: PUSH
3087: LD_INT 4
3089: PUSH
3090: EMPTY
3091: LIST
3092: LIST
3093: PUSH
3094: LD_INT 50
3096: PUSH
3097: EMPTY
3098: LIST
3099: PUSH
3100: EMPTY
3101: LIST
3102: LIST
3103: LIST
3104: PPUSH
3105: CALL_OW 69
3109: PUSH
3110: LD_EXP 53
3114: DIFF
3115: ST_TO_ADDR
// if not tmp then
3116: LD_VAR 0 3
3120: NOT
3121: IFFALSE 3252
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
3123: LD_ADDR_VAR 0 3
3127: PUSH
3128: LD_INT 22
3130: PUSH
3131: LD_EXP 1
3135: PUSH
3136: EMPTY
3137: LIST
3138: LIST
3139: PUSH
3140: LD_INT 50
3142: PUSH
3143: EMPTY
3144: LIST
3145: PUSH
3146: LD_INT 3
3148: PUSH
3149: LD_INT 23
3151: PUSH
3152: LD_INT 0
3154: PUSH
3155: EMPTY
3156: LIST
3157: LIST
3158: PUSH
3159: EMPTY
3160: LIST
3161: LIST
3162: PUSH
3163: EMPTY
3164: LIST
3165: LIST
3166: LIST
3167: PPUSH
3168: CALL_OW 69
3172: PUSH
3173: LD_EXP 53
3177: DIFF
3178: ST_TO_ADDR
// tmp1 = [ ] ;
3179: LD_ADDR_VAR 0 4
3183: PUSH
3184: EMPTY
3185: ST_TO_ADDR
// for tmp2 in tmp do
3186: LD_ADDR_VAR 0 5
3190: PUSH
3191: LD_VAR 0 3
3195: PUSH
3196: FOR_IN
3197: IFFALSE 3228
// tmp1 = tmp1 ^ [ getskill ( tmp2 , skill_scientistic ) ] ;
3199: LD_ADDR_VAR 0 4
3203: PUSH
3204: LD_VAR 0 4
3208: PUSH
3209: LD_VAR 0 5
3213: PPUSH
3214: LD_INT 4
3216: PPUSH
3217: CALL_OW 259
3221: PUSH
3222: EMPTY
3223: LIST
3224: ADD
3225: ST_TO_ADDR
3226: GO 3196
3228: POP
3229: POP
// tmp = bestfromlistbylist ( tmp , tmp1 ) ;
3230: LD_ADDR_VAR 0 3
3234: PUSH
3235: LD_VAR 0 3
3239: PPUSH
3240: LD_VAR 0 4
3244: PPUSH
3245: CALL_OW 79
3249: ST_TO_ADDR
// end else
3250: GO 3266
// tmp = tmp [ 1 ] ;
3252: LD_ADDR_VAR 0 3
3256: PUSH
3257: LD_VAR 0 3
3261: PUSH
3262: LD_INT 1
3264: ARRAY
3265: ST_TO_ADDR
// if tmp then
3266: LD_VAR 0 3
3270: IFFALSE 3313
// if getsex ( tmp ) = sex_male then
3272: LD_VAR 0 3
3276: PPUSH
3277: CALL_OW 258
3281: PUSH
3282: LD_INT 1
3284: EQUAL
3285: IFFALSE 3301
// say ( tmp , D6-Sci1-2 ) else
3287: LD_VAR 0 3
3291: PPUSH
3292: LD_STRING D6-Sci1-2
3294: PPUSH
3295: CALL_OW 88
3299: GO 3313
// say ( tmp , D6-FSci1-2 ) ;
3301: LD_VAR 0 3
3305: PPUSH
3306: LD_STRING D6-FSci1-2
3308: PPUSH
3309: CALL_OW 88
// end ; dialogueoff ;
3313: CALL_OW 7
// end ;
3317: PPOPN 5
3319: END
// export posily ; on vehicleconstructionstarted ( fact , chass , eng , cntrl , weap ) do if weap = us_siberium_rocket then
3320: LD_VAR 0 5
3324: PUSH
3325: LD_INT 8
3327: EQUAL
3328: IFFALSE 3371
// begin dialogueon ;
3330: CALL_OW 6
// say ( john , D6a-JMM-1 ) ;
3334: LD_EXP 53
3338: PPUSH
3339: LD_STRING D6a-JMM-1
3341: PPUSH
3342: CALL_OW 88
// sayradio ( powell , D6a-Pow-1 ) ;
3346: LD_EXP 54
3350: PPUSH
3351: LD_STRING D6a-Pow-1
3353: PPUSH
3354: CALL_OW 94
// dialogueoff ;
3358: CALL_OW 7
// posily = true ;
3362: LD_ADDR_EXP 52
3366: PUSH
3367: LD_INT 1
3369: ST_TO_ADDR
// disable ;
3370: DISABLE
// end ;
3371: PPOPN 5
3373: END
// every 0 0$1 trigger posily do var tmp ;
3374: LD_EXP 52
3378: IFFALSE 3757
3380: GO 3382
3382: DISABLE
3383: LD_INT 0
3385: PPUSH
// begin wait ( 1 1$0 ) ;
3386: LD_INT 2100
3388: PPUSH
3389: CALL_OW 67
// uc_side = am ;
3393: LD_ADDR_OWVAR 20
3397: PUSH
3398: LD_EXP 1
3402: ST_TO_ADDR
// uc_nation = nation_american ;
3403: LD_ADDR_OWVAR 21
3407: PUSH
3408: LD_INT 1
3410: ST_TO_ADDR
// vc_chassis = amreinfv0_ch ;
3411: LD_ADDR_OWVAR 37
3415: PUSH
3416: LD_EXP 39
3420: ST_TO_ADDR
// vc_control = control_manual ;
3421: LD_ADDR_OWVAR 38
3425: PUSH
3426: LD_INT 1
3428: ST_TO_ADDR
// vc_engine = engine_siberite ;
3429: LD_ADDR_OWVAR 39
3433: PUSH
3434: LD_INT 3
3436: ST_TO_ADDR
// vc_weapon = amreinfv0_wp ;
3437: LD_ADDR_OWVAR 40
3441: PUSH
3442: LD_EXP 40
3446: ST_TO_ADDR
// tmp = createvehicle ;
3447: LD_ADDR_VAR 0 1
3451: PUSH
3452: CALL_OW 45
3456: ST_TO_ADDR
// setdir ( tmp , 1 ) ;
3457: LD_VAR 0 1
3461: PPUSH
3462: LD_INT 1
3464: PPUSH
3465: CALL_OW 233
// placeunitxyr ( tmp , 34 , 62 , 6 , false ) ;
3469: LD_VAR 0 1
3473: PPUSH
3474: LD_INT 34
3476: PPUSH
3477: LD_INT 62
3479: PPUSH
3480: LD_INT 6
3482: PPUSH
3483: LD_INT 0
3485: PPUSH
3486: CALL_OW 50
// preparemechanic ( sex_male , amreinf0 ) ;
3490: LD_INT 1
3492: PPUSH
3493: LD_EXP 35
3497: PPUSH
3498: CALL_OW 383
// seznamposil := [ CreateHuman ] ;
3502: LD_ADDR_EXP 51
3506: PUSH
3507: CALL_OW 44
3511: PUSH
3512: EMPTY
3513: LIST
3514: ST_TO_ADDR
// placehumaninunit ( seznamposil [ 1 ] , tmp ) ;
3515: LD_EXP 51
3519: PUSH
3520: LD_INT 1
3522: ARRAY
3523: PPUSH
3524: LD_VAR 0 1
3528: PPUSH
3529: CALL_OW 52
// vc_chassis = amreinfv1_ch ;
3533: LD_ADDR_OWVAR 37
3537: PUSH
3538: LD_EXP 41
3542: ST_TO_ADDR
// vc_weapon = amreinfv1_wp ;
3543: LD_ADDR_OWVAR 40
3547: PUSH
3548: LD_EXP 42
3552: ST_TO_ADDR
// tmp = createvehicle ;
3553: LD_ADDR_VAR 0 1
3557: PUSH
3558: CALL_OW 45
3562: ST_TO_ADDR
// setdir ( tmp , 1 ) ;
3563: LD_VAR 0 1
3567: PPUSH
3568: LD_INT 1
3570: PPUSH
3571: CALL_OW 233
// placeunitxyr ( tmp , 34 , 62 , 6 , false ) ;
3575: LD_VAR 0 1
3579: PPUSH
3580: LD_INT 34
3582: PPUSH
3583: LD_INT 62
3585: PPUSH
3586: LD_INT 6
3588: PPUSH
3589: LD_INT 0
3591: PPUSH
3592: CALL_OW 50
// preparemechanic ( sex_male , amreinf1 ) ;
3596: LD_INT 1
3598: PPUSH
3599: LD_EXP 36
3603: PPUSH
3604: CALL_OW 383
// seznamposil := seznamposil ^ [ CreateHuman ] ;
3608: LD_ADDR_EXP 51
3612: PUSH
3613: LD_EXP 51
3617: PUSH
3618: CALL_OW 44
3622: PUSH
3623: EMPTY
3624: LIST
3625: ADD
3626: ST_TO_ADDR
// placehumaninunit ( seznamposil [ 2 ] , tmp ) ;
3627: LD_EXP 51
3631: PUSH
3632: LD_INT 2
3634: ARRAY
3635: PPUSH
3636: LD_VAR 0 1
3640: PPUSH
3641: CALL_OW 52
// preparesoldier ( sex_male , amreinf2 ) ;
3645: LD_INT 1
3647: PPUSH
3648: LD_EXP 37
3652: PPUSH
3653: CALL_OW 381
// seznamposil := seznamposil ^ [ CreateHuman ] ;
3657: LD_ADDR_EXP 51
3661: PUSH
3662: LD_EXP 51
3666: PUSH
3667: CALL_OW 44
3671: PUSH
3672: EMPTY
3673: LIST
3674: ADD
3675: ST_TO_ADDR
// placeunitxyr ( seznamposil [ 3 ] , 34 , 62 , 5 , false ) ;
3676: LD_EXP 51
3680: PUSH
3681: LD_INT 3
3683: ARRAY
3684: PPUSH
3685: LD_INT 34
3687: PPUSH
3688: LD_INT 62
3690: PPUSH
3691: LD_INT 5
3693: PPUSH
3694: LD_INT 0
3696: PPUSH
3697: CALL_OW 50
// preparesoldier ( sex_male , amreinf3 ) ;
3701: LD_INT 1
3703: PPUSH
3704: LD_EXP 38
3708: PPUSH
3709: CALL_OW 381
// seznamposil := seznamposil ^ [ CreateHuman ] ;
3713: LD_ADDR_EXP 51
3717: PUSH
3718: LD_EXP 51
3722: PUSH
3723: CALL_OW 44
3727: PUSH
3728: EMPTY
3729: LIST
3730: ADD
3731: ST_TO_ADDR
// placeunitxyr ( seznamposil [ 4 ] , 34 , 62 , 5 , false ) ;
3732: LD_EXP 51
3736: PUSH
3737: LD_INT 4
3739: ARRAY
3740: PPUSH
3741: LD_INT 34
3743: PPUSH
3744: LD_INT 62
3746: PPUSH
3747: LD_INT 5
3749: PPUSH
3750: LD_INT 0
3752: PPUSH
3753: CALL_OW 50
// end ;
3757: PPOPN 1
3759: END
// on vehicleconstructed ( veh , fact ) marked 13 do if getweapon ( veh ) = us_siberium_rocket then
3760: LD_VAR 0 1
3764: PPUSH
3765: CALL_OW 264
3769: PUSH
3770: LD_INT 8
3772: EQUAL
3773: IFFALSE 3830
// begin dialogueon ;
3775: CALL_OW 6
// say ( john , D6b-JMM-1 ) ;
3779: LD_EXP 53
3783: PPUSH
3784: LD_STRING D6b-JMM-1
3786: PPUSH
3787: CALL_OW 88
// sayradio ( powell , D6b-Pow-1 ) ;
3791: LD_EXP 54
3795: PPUSH
3796: LD_STRING D6b-Pow-1
3798: PPUSH
3799: CALL_OW 94
// dialogueoff ;
3803: CALL_OW 7
// changemissionobjectives ( M3 ) ;
3807: LD_STRING M3
3809: PPUSH
3810: CALL_OW 337
// setareamapshow ( target , 1 ) ;
3814: LD_INT 6
3816: PPUSH
3817: LD_INT 1
3819: PPUSH
3820: CALL_OW 424
// disable ( 13 ) ;
3824: LD_INT 13
3826: DISABLE_MARKED
// enable ( 04 ) ;
3827: LD_INT 4
3829: ENABLE_MARKED
// end ;
3830: PPOPN 2
3832: END
// on weaponplaced ( bld , fact ) marked 13 do if getbweapon ( bld ) = us_siberium_rocket then
3833: LD_VAR 0 1
3837: PPUSH
3838: CALL_OW 269
3842: PUSH
3843: LD_INT 8
3845: EQUAL
3846: IFFALSE 3903
// begin dialogueon ;
3848: CALL_OW 6
// say ( john , D6b-JMM-1 ) ;
3852: LD_EXP 53
3856: PPUSH
3857: LD_STRING D6b-JMM-1
3859: PPUSH
3860: CALL_OW 88
// sayradio ( powell , D6b-Pow-1 ) ;
3864: LD_EXP 54
3868: PPUSH
3869: LD_STRING D6b-Pow-1
3871: PPUSH
3872: CALL_OW 94
// dialogueoff ;
3876: CALL_OW 7
// changemissionobjectives ( M3 ) ;
3880: LD_STRING M3
3882: PPUSH
3883: CALL_OW 337
// setareamapshow ( target , 1 ) ;
3887: LD_INT 6
3889: PPUSH
3890: LD_INT 1
3892: PPUSH
3893: CALL_OW 424
// disable ( 13 ) ;
3897: LD_INT 13
3899: DISABLE_MARKED
// enable ( 04 ) ;
3900: LD_INT 4
3902: ENABLE_MARKED
// end ;
3903: PPOPN 2
3905: END
// every 0 0$2 marked 04 do var tmp , tmp1 , warehouseok , barracksok , turretok , vehok ;
3906: GO 3908
3908: DISABLE
3909: LD_INT 0
3911: PPUSH
3912: PPUSH
3913: PPUSH
3914: PPUSH
3915: PPUSH
3916: PPUSH
// begin warehouseok = false ;
3917: LD_ADDR_VAR 0 3
3921: PUSH
3922: LD_INT 0
3924: ST_TO_ADDR
// barracksok = false ;
3925: LD_ADDR_VAR 0 4
3929: PUSH
3930: LD_INT 0
3932: ST_TO_ADDR
// turretok = false ;
3933: LD_ADDR_VAR 0 5
3937: PUSH
3938: LD_INT 0
3940: ST_TO_ADDR
// vehok = false ;
3941: LD_ADDR_VAR 0 6
3945: PUSH
3946: LD_INT 0
3948: ST_TO_ADDR
// tmp = filterunitsinarea ( target , [ [ f_side , am ] , [ f_type , unit_building ] , f_not , [ f_constructed ] ] ) ;
3949: LD_ADDR_VAR 0 1
3953: PUSH
3954: LD_INT 6
3956: PPUSH
3957: LD_INT 22
3959: PUSH
3960: LD_EXP 1
3964: PUSH
3965: EMPTY
3966: LIST
3967: LIST
3968: PUSH
3969: LD_INT 21
3971: PUSH
3972: LD_INT 3
3974: PUSH
3975: EMPTY
3976: LIST
3977: LIST
3978: PUSH
3979: LD_INT 3
3981: PUSH
3982: LD_INT 57
3984: PUSH
3985: EMPTY
3986: LIST
3987: PUSH
3988: EMPTY
3989: LIST
3990: LIST
3991: LIST
3992: LIST
3993: PPUSH
3994: CALL_OW 70
3998: ST_TO_ADDR
// for tmp1 in tmp do
3999: LD_ADDR_VAR 0 2
4003: PUSH
4004: LD_VAR 0 1
4008: PUSH
4009: FOR_IN
4010: IFFALSE 4082
// case getbtype ( tmp1 ) of b_warehouse :
4012: LD_VAR 0 2
4016: PPUSH
4017: CALL_OW 266
4021: PUSH
4022: LD_INT 1
4024: DOUBLE
4025: EQUAL
4026: IFTRUE 4030
4028: GO 4041
4030: POP
// warehouseok = true ; b_barracks :
4031: LD_ADDR_VAR 0 3
4035: PUSH
4036: LD_INT 1
4038: ST_TO_ADDR
4039: GO 4080
4041: LD_INT 5
4043: DOUBLE
4044: EQUAL
4045: IFTRUE 4049
4047: GO 4060
4049: POP
// barracksok = true ; b_turret :
4050: LD_ADDR_VAR 0 4
4054: PUSH
4055: LD_INT 1
4057: ST_TO_ADDR
4058: GO 4080
4060: LD_INT 33
4062: DOUBLE
4063: EQUAL
4064: IFTRUE 4068
4066: GO 4079
4068: POP
// turretok = true ; end ;
4069: LD_ADDR_VAR 0 5
4073: PUSH
4074: LD_INT 1
4076: ST_TO_ADDR
4077: GO 4080
4079: POP
4080: GO 4009
4082: POP
4083: POP
// tmp = filterunitsinarea ( target , [ [ f_side , am ] , [ f_or , [ f_control , control_computer ] , [ f_control , control_remote ] ] ] ) ;
4084: LD_ADDR_VAR 0 1
4088: PUSH
4089: LD_INT 6
4091: PPUSH
4092: LD_INT 22
4094: PUSH
4095: LD_EXP 1
4099: PUSH
4100: EMPTY
4101: LIST
4102: LIST
4103: PUSH
4104: LD_INT 2
4106: PUSH
4107: LD_INT 33
4109: PUSH
4110: LD_INT 3
4112: PUSH
4113: EMPTY
4114: LIST
4115: LIST
4116: PUSH
4117: LD_INT 33
4119: PUSH
4120: LD_INT 2
4122: PUSH
4123: EMPTY
4124: LIST
4125: LIST
4126: PUSH
4127: EMPTY
4128: LIST
4129: LIST
4130: LIST
4131: PUSH
4132: EMPTY
4133: LIST
4134: LIST
4135: PPUSH
4136: CALL_OW 70
4140: ST_TO_ADDR
// for tmp1 in tmp do
4141: LD_ADDR_VAR 0 2
4145: PUSH
4146: LD_VAR 0 1
4150: PUSH
4151: FOR_IN
4152: IFFALSE 4205
// case getchassis ( tmp1 ) of us_heavy_tracked :
4154: LD_VAR 0 2
4158: PPUSH
4159: CALL_OW 265
4163: PUSH
4164: LD_INT 4
4166: DOUBLE
4167: EQUAL
4168: IFTRUE 4172
4170: GO 4183
4172: POP
// vehok = true ; us_morphling :
4173: LD_ADDR_VAR 0 6
4177: PUSH
4178: LD_INT 1
4180: ST_TO_ADDR
4181: GO 4203
4183: LD_INT 5
4185: DOUBLE
4186: EQUAL
4187: IFTRUE 4191
4189: GO 4202
4191: POP
// vehok = true ; end ;
4192: LD_ADDR_VAR 0 6
4196: PUSH
4197: LD_INT 1
4199: ST_TO_ADDR
4200: GO 4203
4202: POP
4203: GO 4151
4205: POP
4206: POP
// if warehouseok and barracksok then
4207: LD_VAR 0 3
4211: PUSH
4212: LD_VAR 0 4
4216: AND
4217: IFFALSE 4266
// begin dialogueon ;
4219: CALL_OW 6
// say ( john , D7-JMM-1 ) ;
4223: LD_EXP 53
4227: PPUSH
4228: LD_STRING D7-JMM-1
4230: PPUSH
4231: CALL_OW 88
// dialogueoff ;
4235: CALL_OW 7
// changemissionobjectives ( M4 ) ;
4239: LD_STRING M4
4241: PPUSH
4242: CALL_OW 337
// setareamapshow ( radar_post , 1 ) ;
4246: LD_INT 12
4248: PPUSH
4249: LD_INT 1
4251: PPUSH
4252: CALL_OW 424
// marked_09_substitute = true ;
4256: LD_ADDR_EXP 48
4260: PUSH
4261: LD_INT 1
4263: ST_TO_ADDR
// end else
4264: GO 4267
// enable ;
4266: ENABLE
// end ;
4267: PPOPN 6
4269: END
// on siberiterocketexploded ( un , x , y ) do begin SA_OnSiberiteRocketExploded ( un , x , y ) ;
4270: LD_VAR 0 1
4274: PPUSH
4275: LD_VAR 0 2
4279: PPUSH
4280: LD_VAR 0 3
4284: PPUSH
4285: CALL 12571 0 3
// if marked_09_substitute and InArea ( x , y , target ) then
4289: LD_EXP 48
4293: PUSH
4294: LD_VAR 0 2
4298: PPUSH
4299: LD_VAR 0 3
4303: PPUSH
4304: LD_INT 6
4306: PPUSH
4307: CALL_OW 309
4311: AND
4312: IFFALSE 4325
// begin enable ( 05 ) ;
4314: LD_INT 5
4316: ENABLE_MARKED
// marked_09_substitute = false ;
4317: LD_ADDR_EXP 48
4321: PUSH
4322: LD_INT 0
4324: ST_TO_ADDR
// end ; end ;
4325: PPOPN 3
4327: END
// var observed ; every 0 0$0.5 marked 05 do var tmp , tmp1 , tmp2 ;
4328: GO 4330
4330: DISABLE
4331: LD_INT 0
4333: PPUSH
4334: PPUSH
4335: PPUSH
// begin if debug then
4336: LD_EXP 44
4340: IFFALSE 4349
// msg ( siberitovka dopadla kam mela ) ;
4342: LD_STRING siberitovka dopadla kam mela
4344: PPUSH
4345: CALL_OW 100
// setareamapshow ( target , 0 ) ;
4349: LD_INT 6
4351: PPUSH
4352: LD_INT 0
4354: PPUSH
4355: CALL_OW 424
// setareamapshow ( radar_post , 0 ) ;
4359: LD_INT 12
4361: PPUSH
4362: LD_INT 0
4364: PPUSH
4365: CALL_OW 424
// if filterunitsinarea ( radar_post , [ [ f_weapon , us_radar ] ] ) then
4369: LD_INT 12
4371: PPUSH
4372: LD_INT 34
4374: PUSH
4375: LD_INT 11
4377: PUSH
4378: EMPTY
4379: LIST
4380: LIST
4381: PUSH
4382: EMPTY
4383: LIST
4384: PPUSH
4385: CALL_OW 70
4389: IFFALSE 4408
// begin observed = true ;
4391: LD_ADDR_LOC 4
4395: PUSH
4396: LD_INT 1
4398: ST_TO_ADDR
// changemissionobjectives ( M3a ) ;
4399: LD_STRING M3a
4401: PPUSH
4402: CALL_OW 337
// end else
4406: GO 4423
// begin observed = false ;
4408: LD_ADDR_LOC 4
4412: PUSH
4413: LD_INT 0
4415: ST_TO_ADDR
// changemissionobjectives ( M3b ) ;
4416: LD_STRING M3b
4418: PPUSH
4419: CALL_OW 337
// end ; wait ( 0 0$5 ) ;
4423: LD_INT 175
4425: PPUSH
4426: CALL_OW 67
// dialogueon ;
4430: CALL_OW 6
// if isok ( huck ) then
4434: LD_EXP 55
4438: PPUSH
4439: CALL_OW 302
4443: IFFALSE 4531
// begin say ( huck , D8-Huck-1 ) ;
4445: LD_EXP 55
4449: PPUSH
4450: LD_STRING D8-Huck-1
4452: PPUSH
4453: CALL_OW 88
// say ( john , D8-JMM-1 ) ;
4457: LD_EXP 53
4461: PPUSH
4462: LD_STRING D8-JMM-1
4464: PPUSH
4465: CALL_OW 88
// say ( huck , D8-Huck-2 ) ;
4469: LD_EXP 55
4473: PPUSH
4474: LD_STRING D8-Huck-2
4476: PPUSH
4477: CALL_OW 88
// say ( john , D8-JMM-2 ) ;
4481: LD_EXP 53
4485: PPUSH
4486: LD_STRING D8-JMM-2
4488: PPUSH
4489: CALL_OW 88
// say ( huck , D8-Huck-3 ) ;
4493: LD_EXP 55
4497: PPUSH
4498: LD_STRING D8-Huck-3
4500: PPUSH
4501: CALL_OW 88
// say ( john , D8-JMM-3 ) ;
4505: LD_EXP 53
4509: PPUSH
4510: LD_STRING D8-JMM-3
4512: PPUSH
4513: CALL_OW 88
// say ( huck , D8-Huck-4 ) ;
4517: LD_EXP 55
4521: PPUSH
4522: LD_STRING D8-Huck-4
4524: PPUSH
4525: CALL_OW 88
// end else
4529: GO 4866
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_class , class_scientistic ] ] ) diff john ;
4531: LD_ADDR_VAR 0 1
4535: PUSH
4536: LD_INT 22
4538: PUSH
4539: LD_EXP 1
4543: PUSH
4544: EMPTY
4545: LIST
4546: LIST
4547: PUSH
4548: LD_INT 25
4550: PUSH
4551: LD_INT 4
4553: PUSH
4554: EMPTY
4555: LIST
4556: LIST
4557: PUSH
4558: EMPTY
4559: LIST
4560: LIST
4561: PPUSH
4562: CALL_OW 69
4566: PUSH
4567: LD_EXP 53
4571: DIFF
4572: ST_TO_ADDR
// if not tmp then
4573: LD_VAR 0 1
4577: NOT
4578: IFFALSE 4709
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
4580: LD_ADDR_VAR 0 1
4584: PUSH
4585: LD_INT 22
4587: PUSH
4588: LD_EXP 1
4592: PUSH
4593: EMPTY
4594: LIST
4595: LIST
4596: PUSH
4597: LD_INT 50
4599: PUSH
4600: EMPTY
4601: LIST
4602: PUSH
4603: LD_INT 3
4605: PUSH
4606: LD_INT 23
4608: PUSH
4609: LD_INT 0
4611: PUSH
4612: EMPTY
4613: LIST
4614: LIST
4615: PUSH
4616: EMPTY
4617: LIST
4618: LIST
4619: PUSH
4620: EMPTY
4621: LIST
4622: LIST
4623: LIST
4624: PPUSH
4625: CALL_OW 69
4629: PUSH
4630: LD_EXP 53
4634: DIFF
4635: ST_TO_ADDR
// tmp1 = [ ] ;
4636: LD_ADDR_VAR 0 2
4640: PUSH
4641: EMPTY
4642: ST_TO_ADDR
// for tmp2 in tmp do
4643: LD_ADDR_VAR 0 3
4647: PUSH
4648: LD_VAR 0 1
4652: PUSH
4653: FOR_IN
4654: IFFALSE 4685
// tmp1 = tmp1 ^ [ getskill ( tmp2 , skill_scientistic ) ] ;
4656: LD_ADDR_VAR 0 2
4660: PUSH
4661: LD_VAR 0 2
4665: PUSH
4666: LD_VAR 0 3
4670: PPUSH
4671: LD_INT 4
4673: PPUSH
4674: CALL_OW 259
4678: PUSH
4679: EMPTY
4680: LIST
4681: ADD
4682: ST_TO_ADDR
4683: GO 4653
4685: POP
4686: POP
// tmp = bestfromlistbylist ( tmp , tmp1 ) ;
4687: LD_ADDR_VAR 0 1
4691: PUSH
4692: LD_VAR 0 1
4696: PPUSH
4697: LD_VAR 0 2
4701: PPUSH
4702: CALL_OW 79
4706: ST_TO_ADDR
// end else
4707: GO 4723
// tmp = tmp [ 1 ] ;
4709: LD_ADDR_VAR 0 1
4713: PUSH
4714: LD_VAR 0 1
4718: PUSH
4719: LD_INT 1
4721: ARRAY
4722: ST_TO_ADDR
// if tmp and getsex ( tmp ) = sex_male then
4723: LD_VAR 0 1
4727: PUSH
4728: LD_VAR 0 1
4732: PPUSH
4733: CALL_OW 258
4737: PUSH
4738: LD_INT 1
4740: EQUAL
4741: AND
4742: IFFALSE 4806
// begin say ( tmp , D8-Sci1-2 ) ;
4744: LD_VAR 0 1
4748: PPUSH
4749: LD_STRING D8-Sci1-2
4751: PPUSH
4752: CALL_OW 88
// say ( john , D8-JMM-2 ) ;
4756: LD_EXP 53
4760: PPUSH
4761: LD_STRING D8-JMM-2
4763: PPUSH
4764: CALL_OW 88
// say ( tmp , D8-Sci1-3 ) ;
4768: LD_VAR 0 1
4772: PPUSH
4773: LD_STRING D8-Sci1-3
4775: PPUSH
4776: CALL_OW 88
// say ( john , D8-JMM-3 ) ;
4780: LD_EXP 53
4784: PPUSH
4785: LD_STRING D8-JMM-3
4787: PPUSH
4788: CALL_OW 88
// say ( tmp , D8-Sci1-4 ) ;
4792: LD_VAR 0 1
4796: PPUSH
4797: LD_STRING D8-Sci1-4
4799: PPUSH
4800: CALL_OW 88
// end else
4804: GO 4866
// begin say ( tmp , D8-FSci1-2 ) ;
4806: LD_VAR 0 1
4810: PPUSH
4811: LD_STRING D8-FSci1-2
4813: PPUSH
4814: CALL_OW 88
// say ( john , D8-JMM-2 ) ;
4818: LD_EXP 53
4822: PPUSH
4823: LD_STRING D8-JMM-2
4825: PPUSH
4826: CALL_OW 88
// say ( tmp , D8-FSci1-3 ) ;
4830: LD_VAR 0 1
4834: PPUSH
4835: LD_STRING D8-FSci1-3
4837: PPUSH
4838: CALL_OW 88
// say ( john , D8-JMM-3 ) ;
4842: LD_EXP 53
4846: PPUSH
4847: LD_STRING D8-JMM-3
4849: PPUSH
4850: CALL_OW 88
// say ( tmp , D8-FSci1-4 ) ;
4854: LD_VAR 0 1
4858: PPUSH
4859: LD_STRING D8-FSci1-4
4861: PPUSH
4862: CALL_OW 88
// end ; end ; dialogueoff ;
4866: CALL_OW 7
// setareamapshow ( measure , 1 ) ;
4870: LD_INT 7
4872: PPUSH
4873: LD_INT 1
4875: PPUSH
4876: CALL_OW 424
// centernowonxy ( 118 , 12 ) ;
4880: LD_INT 118
4882: PPUSH
4883: LD_INT 12
4885: PPUSH
4886: CALL_OW 86
// changemissionobjectives ( M5 ) ;
4890: LD_STRING M5
4892: PPUSH
4893: CALL_OW 337
// vedecmeri_ = [ ] ;
4897: LD_ADDR_LOC 5
4901: PUSH
4902: EMPTY
4903: ST_TO_ADDR
// labs = [ ] ;
4904: LD_ADDR_LOC 6
4908: PUSH
4909: EMPTY
4910: ST_TO_ADDR
// tmp = filterallunits ( [ [ f_side , am ] , [ f_or , [ f_btype , b_lab_half ] , [ f_btype , b_lab_full ] ] ] ) ;
4911: LD_ADDR_VAR 0 1
4915: PUSH
4916: LD_INT 22
4918: PUSH
4919: LD_EXP 1
4923: PUSH
4924: EMPTY
4925: LIST
4926: LIST
4927: PUSH
4928: LD_INT 2
4930: PUSH
4931: LD_INT 30
4933: PUSH
4934: LD_INT 7
4936: PUSH
4937: EMPTY
4938: LIST
4939: LIST
4940: PUSH
4941: LD_INT 30
4943: PUSH
4944: LD_INT 8
4946: PUSH
4947: EMPTY
4948: LIST
4949: LIST
4950: PUSH
4951: EMPTY
4952: LIST
4953: LIST
4954: LIST
4955: PUSH
4956: EMPTY
4957: LIST
4958: LIST
4959: PPUSH
4960: CALL_OW 69
4964: ST_TO_ADDR
// for tmp1 in tmp do
4965: LD_ADDR_VAR 0 2
4969: PUSH
4970: LD_VAR 0 1
4974: PUSH
4975: FOR_IN
4976: IFFALSE 5035
// if ( getlabkind ( tmp1 , 1 ) = b_lab_siberium ) or ( getlabkind ( tmp1 , 2 ) = b_lab_siberium ) then
4978: LD_VAR 0 2
4982: PPUSH
4983: LD_INT 1
4985: PPUSH
4986: CALL_OW 268
4990: PUSH
4991: LD_INT 11
4993: EQUAL
4994: PUSH
4995: LD_VAR 0 2
4999: PPUSH
5000: LD_INT 2
5002: PPUSH
5003: CALL_OW 268
5007: PUSH
5008: LD_INT 11
5010: EQUAL
5011: OR
5012: IFFALSE 5033
// labs = labs ^ [ tmp1 ] ;
5014: LD_ADDR_LOC 6
5018: PUSH
5019: LD_LOC 6
5023: PUSH
5024: LD_VAR 0 2
5028: PUSH
5029: EMPTY
5030: LIST
5031: ADD
5032: ST_TO_ADDR
5033: GO 4975
5035: POP
5036: POP
// enable ( 07 ) ;
5037: LD_INT 7
5039: ENABLE_MARKED
// enable ( 14 ) ;
5040: LD_INT 14
5042: ENABLE_MARKED
// end ;
5043: PPOPN 3
5045: END
// every 0 0$0.51 marked 06 do
5046: GO 5048
5048: DISABLE
// begin dialogueon ;
5049: CALL_OW 6
// say ( john , D9a-JMM-1 ) ;
5053: LD_EXP 53
5057: PPUSH
5058: LD_STRING D9a-JMM-1
5060: PPUSH
5061: CALL_OW 88
// dialogueoff ;
5065: CALL_OW 7
// end ;
5069: END
// var vedecmeri_ ; function vedecmeri ; begin
5070: LD_INT 0
5072: PPUSH
// vedecmeri_ = unitfilter ( vedecmeri_ , [ [ f_alive ] , [ f_class , class_scientistic ] ] ) union filterunitsinarea ( measure , [ [ f_side , am ] , [ f_class , class_scientistic ] ] ) ;
5073: LD_ADDR_LOC 5
5077: PUSH
5078: LD_LOC 5
5082: PPUSH
5083: LD_INT 51
5085: PUSH
5086: EMPTY
5087: LIST
5088: PUSH
5089: LD_INT 25
5091: PUSH
5092: LD_INT 4
5094: PUSH
5095: EMPTY
5096: LIST
5097: LIST
5098: PUSH
5099: EMPTY
5100: LIST
5101: LIST
5102: PPUSH
5103: CALL_OW 72
5107: PUSH
5108: LD_INT 7
5110: PPUSH
5111: LD_INT 22
5113: PUSH
5114: LD_EXP 1
5118: PUSH
5119: EMPTY
5120: LIST
5121: LIST
5122: PUSH
5123: LD_INT 25
5125: PUSH
5126: LD_INT 4
5128: PUSH
5129: EMPTY
5130: LIST
5131: LIST
5132: PUSH
5133: EMPTY
5134: LIST
5135: LIST
5136: PPUSH
5137: CALL_OW 70
5141: UNION
5142: ST_TO_ADDR
// if not vedecmeri_ then
5143: LD_LOC 5
5147: NOT
5148: IFFALSE 5162
// setareamapshow ( measure , 1 ) else
5150: LD_INT 7
5152: PPUSH
5153: LD_INT 1
5155: PPUSH
5156: CALL_OW 424
5160: GO 5172
// setareamapshow ( measure , 0 ) ;
5162: LD_INT 7
5164: PPUSH
5165: LD_INT 0
5167: PPUSH
5168: CALL_OW 424
// result = vedecmeri_ ;
5172: LD_ADDR_VAR 0 1
5176: PUSH
5177: LD_LOC 5
5181: ST_TO_ADDR
// end ;
5182: LD_VAR 0 1
5186: RET
// var labs ; on upgradecomplete ( un ) marked 14 do if ( getside ( un ) = am ) and ( getbtype ( un ) in [ b_lab_half , b_lab_full ] ) and ( ( getlabkind ( un , 1 ) = b_lab_siberium ) or ( getlabkind ( un , 2 ) = b_lab_siberium ) ) then
5187: LD_VAR 0 1
5191: PPUSH
5192: CALL_OW 255
5196: PUSH
5197: LD_EXP 1
5201: EQUAL
5202: PUSH
5203: LD_VAR 0 1
5207: PPUSH
5208: CALL_OW 266
5212: PUSH
5213: LD_INT 7
5215: PUSH
5216: LD_INT 8
5218: PUSH
5219: EMPTY
5220: LIST
5221: LIST
5222: IN
5223: AND
5224: PUSH
5225: LD_VAR 0 1
5229: PPUSH
5230: LD_INT 1
5232: PPUSH
5233: CALL_OW 268
5237: PUSH
5238: LD_INT 11
5240: EQUAL
5241: PUSH
5242: LD_VAR 0 1
5246: PPUSH
5247: LD_INT 2
5249: PPUSH
5250: CALL_OW 268
5254: PUSH
5255: LD_INT 11
5257: EQUAL
5258: OR
5259: AND
5260: IFFALSE 5281
// labs = labs ^ [ un ] ;
5262: LD_ADDR_LOC 6
5266: PUSH
5267: LD_LOC 6
5271: PUSH
5272: LD_VAR 0 1
5276: PUSH
5277: EMPTY
5278: LIST
5279: ADD
5280: ST_TO_ADDR
5281: PPOPN 1
5283: END
// function isinunitex ( lst ) ; var tmp , tmp1 , tmp2 ; begin
5284: LD_INT 0
5286: PPUSH
5287: PPUSH
5288: PPUSH
5289: PPUSH
// tmp2 = [ ] ;
5290: LD_ADDR_VAR 0 5
5294: PUSH
5295: EMPTY
5296: ST_TO_ADDR
// for tmp in lst do
5297: LD_ADDR_VAR 0 3
5301: PUSH
5302: LD_VAR 0 1
5306: PUSH
5307: FOR_IN
5308: IFFALSE 5352
// begin tmp1 = isinunit ( tmp ) ;
5310: LD_ADDR_VAR 0 4
5314: PUSH
5315: LD_VAR 0 3
5319: PPUSH
5320: CALL_OW 310
5324: ST_TO_ADDR
// if tmp1 then
5325: LD_VAR 0 4
5329: IFFALSE 5350
// tmp2 = tmp2 ^ [ tmp1 ] ;
5331: LD_ADDR_VAR 0 5
5335: PUSH
5336: LD_VAR 0 5
5340: PUSH
5341: LD_VAR 0 4
5345: PUSH
5346: EMPTY
5347: LIST
5348: ADD
5349: ST_TO_ADDR
// end ;
5350: GO 5307
5352: POP
5353: POP
// result = tmp2 ;
5354: LD_ADDR_VAR 0 2
5358: PUSH
5359: LD_VAR 0 5
5363: ST_TO_ADDR
// end ;
5364: LD_VAR 0 2
5368: RET
// every 0 0$0.6 trigger vedecmeri marked 07 do var tmp , tmp1 , tmp2 , medal1 , medal2 , medal3 ;
5369: CALL 5070 0 0
5373: IFFALSE 5756
5375: GO 5377
5377: DISABLE
5378: LD_INT 0
5380: PPUSH
5381: PPUSH
5382: PPUSH
5383: PPUSH
5384: PPUSH
5385: PPUSH
// begin wait ( 0 0$1 ) ;
5386: LD_INT 35
5388: PPUSH
5389: CALL_OW 67
// setareamapshow ( measure , 0 ) ;
5393: LD_INT 7
5395: PPUSH
5396: LD_INT 0
5398: PPUSH
5399: CALL_OW 424
// while not ( isinunitex ( vedecmeri ) isect labs ) do
5403: CALL 5070 0 0
5407: PPUSH
5408: CALL 5284 0 1
5412: PUSH
5413: LD_LOC 6
5417: ISECT
5418: NOT
5419: IFFALSE 5430
// wait ( 0 0$1 ) ;
5421: LD_INT 35
5423: PPUSH
5424: CALL_OW 67
5428: GO 5403
// medal1 := false ;
5430: LD_ADDR_VAR 0 4
5434: PUSH
5435: LD_INT 0
5437: ST_TO_ADDR
// medal2 := false ;
5438: LD_ADDR_VAR 0 5
5442: PUSH
5443: LD_INT 0
5445: ST_TO_ADDR
// medal3 := false ;
5446: LD_ADDR_VAR 0 6
5450: PUSH
5451: LD_INT 0
5453: ST_TO_ADDR
// dialogueon ;
5454: CALL_OW 6
// say ( john , D9b-JMM-1 ) ;
5458: LD_EXP 53
5462: PPUSH
5463: LD_STRING D9b-JMM-1
5465: PPUSH
5466: CALL_OW 88
// sayradio ( powell , D9b-Pow-1 ) ;
5470: LD_EXP 54
5474: PPUSH
5475: LD_STRING D9b-Pow-1
5477: PPUSH
5478: CALL_OW 94
// say ( john , D9b-JMM-2 ) ;
5482: LD_EXP 53
5486: PPUSH
5487: LD_STRING D9b-JMM-2
5489: PPUSH
5490: CALL_OW 88
// sayradio ( powell , D9b-Pow-2 ) ;
5494: LD_EXP 54
5498: PPUSH
5499: LD_STRING D9b-Pow-2
5501: PPUSH
5502: CALL_OW 94
// say ( john , D9b-JMM-3 ) ;
5506: LD_EXP 53
5510: PPUSH
5511: LD_STRING D9b-JMM-3
5513: PPUSH
5514: CALL_OW 88
// sayradio ( powell , D9b-Pow-3 ) ;
5518: LD_EXP 54
5522: PPUSH
5523: LD_STRING D9b-Pow-3
5525: PPUSH
5526: CALL_OW 94
// dialogueoff ;
5530: CALL_OW 7
// if burlakutekl then
5534: LD_EXP 50
5538: IFFALSE 5553
// addmedal ( Burlak , - 1 ) else
5540: LD_STRING Burlak
5542: PPUSH
5543: LD_INT 1
5545: NEG
5546: PPUSH
5547: CALL_OW 101
5551: GO 5571
// begin medal1 := true ;
5553: LD_ADDR_VAR 0 4
5557: PUSH
5558: LD_INT 1
5560: ST_TO_ADDR
// addmedal ( Burlak , 1 ) ;
5561: LD_STRING Burlak
5563: PPUSH
5564: LD_INT 1
5566: PPUSH
5567: CALL_OW 101
// end ; if isdead ( huck ) then
5571: LD_EXP 55
5575: PPUSH
5576: CALL_OW 301
5580: IFFALSE 5595
// addmedal ( Stevens , - 1 ) else
5582: LD_STRING Stevens
5584: PPUSH
5585: LD_INT 1
5587: NEG
5588: PPUSH
5589: CALL_OW 101
5593: GO 5613
// begin medal2 := true ;
5595: LD_ADDR_VAR 0 5
5599: PUSH
5600: LD_INT 1
5602: ST_TO_ADDR
// addmedal ( Stevens , 1 ) ;
5603: LD_STRING Stevens
5605: PPUSH
5606: LD_INT 1
5608: PPUSH
5609: CALL_OW 101
// end ; if observed then
5613: LD_LOC 4
5617: IFFALSE 5639
// begin medal3 := true ;
5619: LD_ADDR_VAR 0 6
5623: PUSH
5624: LD_INT 1
5626: ST_TO_ADDR
// addmedal ( Observation , 1 ) ;
5627: LD_STRING Observation
5629: PPUSH
5630: LD_INT 1
5632: PPUSH
5633: CALL_OW 101
// end else
5637: GO 5650
// addmedal ( Observation , - 1 ) ;
5639: LD_STRING Observation
5641: PPUSH
5642: LD_INT 1
5644: NEG
5645: PPUSH
5646: CALL_OW 101
// SA_EndMission ( 1 , 13 , medal1 , medal2 , medal3 ) ;
5650: LD_INT 1
5652: PPUSH
5653: LD_INT 13
5655: PPUSH
5656: LD_VAR 0 4
5660: PPUSH
5661: LD_VAR 0 5
5665: PPUSH
5666: LD_VAR 0 6
5670: PPUSH
5671: CALL 12616 0 5
// givemedals ( MAIN ) ;
5675: LD_STRING MAIN
5677: PPUSH
5678: CALL_OW 102
// rewardpeople ( filterallunits ( [ [ f_alive ] , [ f_side , am ] , [ f_type , unit_human ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff seznamposil ) ;
5682: LD_INT 51
5684: PUSH
5685: EMPTY
5686: LIST
5687: PUSH
5688: LD_INT 22
5690: PUSH
5691: LD_EXP 1
5695: PUSH
5696: EMPTY
5697: LIST
5698: LIST
5699: PUSH
5700: LD_INT 21
5702: PUSH
5703: LD_INT 1
5705: PUSH
5706: EMPTY
5707: LIST
5708: LIST
5709: PUSH
5710: LD_INT 3
5712: PUSH
5713: LD_INT 23
5715: PUSH
5716: LD_INT 0
5718: PUSH
5719: EMPTY
5720: LIST
5721: LIST
5722: PUSH
5723: EMPTY
5724: LIST
5725: LIST
5726: PUSH
5727: EMPTY
5728: LIST
5729: LIST
5730: LIST
5731: LIST
5732: PPUSH
5733: CALL_OW 69
5737: PUSH
5738: LD_EXP 51
5742: DIFF
5743: PPUSH
5744: CALL_OW 43
// saveitall ;
5748: CALL 7085 0 0
// youwin ;
5752: CALL_OW 103
// end ; end_of_file
5756: PPOPN 6
5758: END
// export john , powell , huck ; var bobby , cyrus , lisa , cornel , frank , brown , lucy , glad , denis , yamoko , gary ; var bobbyloc , cyrusloc , lisaloc , cornelloc , frankloc , brownloc , lucyloc , gladloc , denisloc , yamokoloc , garyloc ; export function prepare_americans ; var vip ; begin
5759: LD_INT 0
5761: PPUSH
5762: PPUSH
// uc_nation = nation_american ;
5763: LD_ADDR_OWVAR 21
5767: PUSH
5768: LD_INT 1
5770: ST_TO_ADDR
// uc_side = am ;
5771: LD_ADDR_OWVAR 20
5775: PUSH
5776: LD_EXP 1
5780: ST_TO_ADDR
// if testcharacters ( JMM ) and checkcharacterset ( JMM ) then
5781: LD_STRING JMM
5783: PPUSH
5784: CALL_OW 28
5788: PUSH
5789: LD_STRING JMM
5791: PPUSH
5792: CALL_OW 29
5796: AND
5797: IFFALSE 5817
// john = createcharacterwithclass ( JMM , class_soldier ) else
5799: LD_ADDR_EXP 53
5803: PUSH
5804: LD_STRING JMM
5806: PPUSH
5807: LD_INT 1
5809: PPUSH
5810: CALL_OW 35
5814: ST_TO_ADDR
5815: GO 5830
// buildquery ( neny JMM , [ OK ] ) ;
5817: LD_STRING neny JMM
5819: PPUSH
5820: LD_STRING OK
5822: PUSH
5823: EMPTY
5824: LIST
5825: PPUSH
5826: CALL_OW 99
// powell = newcharacter ( Powell ) ;
5830: LD_ADDR_EXP 54
5834: PUSH
5835: LD_STRING Powell
5837: PPUSH
5838: CALL_OW 25
5842: ST_TO_ADDR
// if not powell then
5843: LD_EXP 54
5847: NOT
5848: IFFALSE 5863
// buildquery ( neny Powell , [ OK ] ) ;
5850: LD_STRING neny Powell
5852: PPUSH
5853: LD_STRING OK
5855: PUSH
5856: EMPTY
5857: LIST
5858: PPUSH
5859: CALL_OW 99
// huck = newcharacter ( Stevens ) ;
5863: LD_ADDR_EXP 55
5867: PUSH
5868: LD_STRING Stevens
5870: PPUSH
5871: CALL_OW 25
5875: ST_TO_ADDR
// if not huck then
5876: LD_EXP 55
5880: NOT
5881: IFFALSE 5896
// buildquery ( neny Stevens , [ OK ] ) ;
5883: LD_STRING neny Stevens
5885: PPUSH
5886: LD_STRING OK
5888: PUSH
5889: EMPTY
5890: LIST
5891: PPUSH
5892: CALL_OW 99
// americani = [ ] ;
5896: LD_ADDR_EXP 49
5900: PUSH
5901: EMPTY
5902: ST_TO_ADDR
// if testcharacters ( otherwithJMM ) then
5903: LD_STRING otherwithJMM
5905: PPUSH
5906: CALL_OW 28
5910: IFFALSE 5938
// if checkcharacterset ( otherwithJMM ) then
5912: LD_STRING otherwithJMM
5914: PPUSH
5915: CALL_OW 29
5919: IFFALSE 5936
// americani = createcharacterset ( otherwithJMM ) else
5921: LD_ADDR_EXP 49
5925: PUSH
5926: LD_STRING otherwithJMM
5928: PPUSH
5929: CALL_OW 31
5933: ST_TO_ADDR
5934: GO 5936
// else
5936: GO 5951
// buildquery ( neny otherwithJMM , [ OK ] ) ;
5938: LD_STRING neny otherwithJMM
5940: PPUSH
5941: LD_STRING OK
5943: PUSH
5944: EMPTY
5945: LIST
5946: PPUSH
5947: CALL_OW 99
// vip = [ ] ;
5951: LD_ADDR_VAR 0 2
5955: PUSH
5956: EMPTY
5957: ST_TO_ADDR
// if not testcharacters ( Bobby ) or not checkcharacterset ( Bobby ) then
5958: LD_STRING Bobby
5960: PPUSH
5961: CALL_OW 28
5965: NOT
5966: PUSH
5967: LD_STRING Bobby
5969: PPUSH
5970: CALL_OW 29
5974: NOT
5975: OR
5976: IFFALSE 5988
// bobby = 0 else
5978: LD_ADDR_LOC 7
5982: PUSH
5983: LD_INT 0
5985: ST_TO_ADDR
5986: GO 6057
// begin bobbyloc = loadvariable ( BobbyLoc , - 1 ) ;
5988: LD_ADDR_LOC 18
5992: PUSH
5993: LD_STRING BobbyLoc
5995: PPUSH
5996: LD_INT 1
5998: NEG
5999: PPUSH
6000: CALL_OW 30
6004: ST_TO_ADDR
// if bobbyloc = 6 then
6005: LD_LOC 18
6009: PUSH
6010: LD_INT 6
6012: EQUAL
6013: IFFALSE 6049
// begin bobby = createcharacter ( Bobby ) ;
6015: LD_ADDR_LOC 7
6019: PUSH
6020: LD_STRING Bobby
6022: PPUSH
6023: CALL_OW 34
6027: ST_TO_ADDR
// vip = vip ^ [ bobby ] ;
6028: LD_ADDR_VAR 0 2
6032: PUSH
6033: LD_VAR 0 2
6037: PUSH
6038: LD_LOC 7
6042: PUSH
6043: EMPTY
6044: LIST
6045: ADD
6046: ST_TO_ADDR
// end else
6047: GO 6057
// bobby = 0 ;
6049: LD_ADDR_LOC 7
6053: PUSH
6054: LD_INT 0
6056: ST_TO_ADDR
// end ; if not testcharacters ( Cyrus ) or not checkcharacterset ( Cyrus ) then
6057: LD_STRING Cyrus
6059: PPUSH
6060: CALL_OW 28
6064: NOT
6065: PUSH
6066: LD_STRING Cyrus
6068: PPUSH
6069: CALL_OW 29
6073: NOT
6074: OR
6075: IFFALSE 6087
// cyrus = 0 else
6077: LD_ADDR_LOC 8
6081: PUSH
6082: LD_INT 0
6084: ST_TO_ADDR
6085: GO 6156
// begin cyrusloc = loadvariable ( CyrusLoc , - 1 ) ;
6087: LD_ADDR_LOC 19
6091: PUSH
6092: LD_STRING CyrusLoc
6094: PPUSH
6095: LD_INT 1
6097: NEG
6098: PPUSH
6099: CALL_OW 30
6103: ST_TO_ADDR
// if cyrusloc = 6 then
6104: LD_LOC 19
6108: PUSH
6109: LD_INT 6
6111: EQUAL
6112: IFFALSE 6148
// begin cyrus = createcharacter ( Cyrus ) ;
6114: LD_ADDR_LOC 8
6118: PUSH
6119: LD_STRING Cyrus
6121: PPUSH
6122: CALL_OW 34
6126: ST_TO_ADDR
// vip = vip ^ [ cyrus ] ;
6127: LD_ADDR_VAR 0 2
6131: PUSH
6132: LD_VAR 0 2
6136: PUSH
6137: LD_LOC 8
6141: PUSH
6142: EMPTY
6143: LIST
6144: ADD
6145: ST_TO_ADDR
// end else
6146: GO 6156
// cyrus = 0 ;
6148: LD_ADDR_LOC 8
6152: PUSH
6153: LD_INT 0
6155: ST_TO_ADDR
// end ; if not testcharacters ( Lisa ) or not checkcharacterset ( Lisa ) then
6156: LD_STRING Lisa
6158: PPUSH
6159: CALL_OW 28
6163: NOT
6164: PUSH
6165: LD_STRING Lisa
6167: PPUSH
6168: CALL_OW 29
6172: NOT
6173: OR
6174: IFFALSE 6186
// lisa = 0 else
6176: LD_ADDR_LOC 9
6180: PUSH
6181: LD_INT 0
6183: ST_TO_ADDR
6184: GO 6255
// begin lisaloc = loadvariable ( LisaLoc , - 1 ) ;
6186: LD_ADDR_LOC 20
6190: PUSH
6191: LD_STRING LisaLoc
6193: PPUSH
6194: LD_INT 1
6196: NEG
6197: PPUSH
6198: CALL_OW 30
6202: ST_TO_ADDR
// if lisaloc = 6 then
6203: LD_LOC 20
6207: PUSH
6208: LD_INT 6
6210: EQUAL
6211: IFFALSE 6247
// begin lisa = createcharacter ( Lisa ) ;
6213: LD_ADDR_LOC 9
6217: PUSH
6218: LD_STRING Lisa
6220: PPUSH
6221: CALL_OW 34
6225: ST_TO_ADDR
// vip = vip ^ [ lisa ] ;
6226: LD_ADDR_VAR 0 2
6230: PUSH
6231: LD_VAR 0 2
6235: PUSH
6236: LD_LOC 9
6240: PUSH
6241: EMPTY
6242: LIST
6243: ADD
6244: ST_TO_ADDR
// end else
6245: GO 6255
// lisa = 0 ;
6247: LD_ADDR_LOC 9
6251: PUSH
6252: LD_INT 0
6254: ST_TO_ADDR
// end ; if not testcharacters ( Cornell ) or not checkcharacterset ( Cornell ) then
6255: LD_STRING Cornell
6257: PPUSH
6258: CALL_OW 28
6262: NOT
6263: PUSH
6264: LD_STRING Cornell
6266: PPUSH
6267: CALL_OW 29
6271: NOT
6272: OR
6273: IFFALSE 6285
// cornel = 0 else
6275: LD_ADDR_LOC 10
6279: PUSH
6280: LD_INT 0
6282: ST_TO_ADDR
6283: GO 6354
// begin cornelloc = loadvariable ( CornellLoc , - 1 ) ;
6285: LD_ADDR_LOC 21
6289: PUSH
6290: LD_STRING CornellLoc
6292: PPUSH
6293: LD_INT 1
6295: NEG
6296: PPUSH
6297: CALL_OW 30
6301: ST_TO_ADDR
// if cornelloc = 6 then
6302: LD_LOC 21
6306: PUSH
6307: LD_INT 6
6309: EQUAL
6310: IFFALSE 6346
// begin cornel = createcharacter ( Cornell ) ;
6312: LD_ADDR_LOC 10
6316: PUSH
6317: LD_STRING Cornell
6319: PPUSH
6320: CALL_OW 34
6324: ST_TO_ADDR
// vip = vip ^ [ cornel ] ;
6325: LD_ADDR_VAR 0 2
6329: PUSH
6330: LD_VAR 0 2
6334: PUSH
6335: LD_LOC 10
6339: PUSH
6340: EMPTY
6341: LIST
6342: ADD
6343: ST_TO_ADDR
// end else
6344: GO 6354
// cornel = 0 ;
6346: LD_ADDR_LOC 10
6350: PUSH
6351: LD_INT 0
6353: ST_TO_ADDR
// end ; if not testcharacters ( Frank ) or not checkcharacterset ( Frank ) then
6354: LD_STRING Frank
6356: PPUSH
6357: CALL_OW 28
6361: NOT
6362: PUSH
6363: LD_STRING Frank
6365: PPUSH
6366: CALL_OW 29
6370: NOT
6371: OR
6372: IFFALSE 6384
// frank = 0 else
6374: LD_ADDR_LOC 11
6378: PUSH
6379: LD_INT 0
6381: ST_TO_ADDR
6382: GO 6453
// begin frankloc = loadvariable ( FrankLoc , - 1 ) ;
6384: LD_ADDR_LOC 22
6388: PUSH
6389: LD_STRING FrankLoc
6391: PPUSH
6392: LD_INT 1
6394: NEG
6395: PPUSH
6396: CALL_OW 30
6400: ST_TO_ADDR
// if frankloc = 6 then
6401: LD_LOC 22
6405: PUSH
6406: LD_INT 6
6408: EQUAL
6409: IFFALSE 6445
// begin frank = createcharacter ( Frank ) ;
6411: LD_ADDR_LOC 11
6415: PUSH
6416: LD_STRING Frank
6418: PPUSH
6419: CALL_OW 34
6423: ST_TO_ADDR
// vip = vip ^ [ frank ] ;
6424: LD_ADDR_VAR 0 2
6428: PUSH
6429: LD_VAR 0 2
6433: PUSH
6434: LD_LOC 11
6438: PUSH
6439: EMPTY
6440: LIST
6441: ADD
6442: ST_TO_ADDR
// end else
6443: GO 6453
// frank = 0 ;
6445: LD_ADDR_LOC 11
6449: PUSH
6450: LD_INT 0
6452: ST_TO_ADDR
// end ; if not testcharacters ( Brown ) or not checkcharacterset ( Brown ) then
6453: LD_STRING Brown
6455: PPUSH
6456: CALL_OW 28
6460: NOT
6461: PUSH
6462: LD_STRING Brown
6464: PPUSH
6465: CALL_OW 29
6469: NOT
6470: OR
6471: IFFALSE 6483
// brown = 0 else
6473: LD_ADDR_LOC 12
6477: PUSH
6478: LD_INT 0
6480: ST_TO_ADDR
6481: GO 6552
// begin brownloc = loadvariable ( BrownLoc , - 1 ) ;
6483: LD_ADDR_LOC 23
6487: PUSH
6488: LD_STRING BrownLoc
6490: PPUSH
6491: LD_INT 1
6493: NEG
6494: PPUSH
6495: CALL_OW 30
6499: ST_TO_ADDR
// if brownloc = 6 then
6500: LD_LOC 23
6504: PUSH
6505: LD_INT 6
6507: EQUAL
6508: IFFALSE 6544
// begin brown = createcharacter ( Brown ) ;
6510: LD_ADDR_LOC 12
6514: PUSH
6515: LD_STRING Brown
6517: PPUSH
6518: CALL_OW 34
6522: ST_TO_ADDR
// vip = vip ^ [ brown ] ;
6523: LD_ADDR_VAR 0 2
6527: PUSH
6528: LD_VAR 0 2
6532: PUSH
6533: LD_LOC 12
6537: PUSH
6538: EMPTY
6539: LIST
6540: ADD
6541: ST_TO_ADDR
// end else
6542: GO 6552
// brown = 0 ;
6544: LD_ADDR_LOC 12
6548: PUSH
6549: LD_INT 0
6551: ST_TO_ADDR
// end ; if not testcharacters ( Donaldson ) or not checkcharacterset ( Donaldson ) then
6552: LD_STRING Donaldson
6554: PPUSH
6555: CALL_OW 28
6559: NOT
6560: PUSH
6561: LD_STRING Donaldson
6563: PPUSH
6564: CALL_OW 29
6568: NOT
6569: OR
6570: IFFALSE 6582
// lucy = 0 else
6572: LD_ADDR_LOC 13
6576: PUSH
6577: LD_INT 0
6579: ST_TO_ADDR
6580: GO 6651
// begin lucyloc = loadvariable ( DonaldsonLoc , - 1 ) ;
6582: LD_ADDR_LOC 24
6586: PUSH
6587: LD_STRING DonaldsonLoc
6589: PPUSH
6590: LD_INT 1
6592: NEG
6593: PPUSH
6594: CALL_OW 30
6598: ST_TO_ADDR
// if lucyloc = 6 then
6599: LD_LOC 24
6603: PUSH
6604: LD_INT 6
6606: EQUAL
6607: IFFALSE 6643
// begin lucy = createcharacter ( Donaldson ) ;
6609: LD_ADDR_LOC 13
6613: PUSH
6614: LD_STRING Donaldson
6616: PPUSH
6617: CALL_OW 34
6621: ST_TO_ADDR
// vip = vip ^ [ lucy ] ;
6622: LD_ADDR_VAR 0 2
6626: PUSH
6627: LD_VAR 0 2
6631: PUSH
6632: LD_LOC 13
6636: PUSH
6637: EMPTY
6638: LIST
6639: ADD
6640: ST_TO_ADDR
// end else
6641: GO 6651
// lucy = 0 ;
6643: LD_ADDR_LOC 13
6647: PUSH
6648: LD_INT 0
6650: ST_TO_ADDR
// end ; if not testcharacters ( Gladstone ) or not checkcharacterset ( Gladstone ) then
6651: LD_STRING Gladstone
6653: PPUSH
6654: CALL_OW 28
6658: NOT
6659: PUSH
6660: LD_STRING Gladstone
6662: PPUSH
6663: CALL_OW 29
6667: NOT
6668: OR
6669: IFFALSE 6681
// glad = 0 else
6671: LD_ADDR_LOC 14
6675: PUSH
6676: LD_INT 0
6678: ST_TO_ADDR
6679: GO 6750
// begin gladloc = loadvariable ( GladstoneLoc , - 1 ) ;
6681: LD_ADDR_LOC 25
6685: PUSH
6686: LD_STRING GladstoneLoc
6688: PPUSH
6689: LD_INT 1
6691: NEG
6692: PPUSH
6693: CALL_OW 30
6697: ST_TO_ADDR
// if gladloc = 6 then
6698: LD_LOC 25
6702: PUSH
6703: LD_INT 6
6705: EQUAL
6706: IFFALSE 6742
// begin glad = createcharacter ( Gladstone ) ;
6708: LD_ADDR_LOC 14
6712: PUSH
6713: LD_STRING Gladstone
6715: PPUSH
6716: CALL_OW 34
6720: ST_TO_ADDR
// vip = vip ^ [ glad ] ;
6721: LD_ADDR_VAR 0 2
6725: PUSH
6726: LD_VAR 0 2
6730: PUSH
6731: LD_LOC 14
6735: PUSH
6736: EMPTY
6737: LIST
6738: ADD
6739: ST_TO_ADDR
// end else
6740: GO 6750
// glad = 0 ;
6742: LD_ADDR_LOC 14
6746: PUSH
6747: LD_INT 0
6749: ST_TO_ADDR
// end ; if not testcharacters ( Denis ) or not checkcharacterset ( Denis ) then
6750: LD_STRING Denis
6752: PPUSH
6753: CALL_OW 28
6757: NOT
6758: PUSH
6759: LD_STRING Denis
6761: PPUSH
6762: CALL_OW 29
6766: NOT
6767: OR
6768: IFFALSE 6780
// denis = 0 else
6770: LD_ADDR_LOC 15
6774: PUSH
6775: LD_INT 0
6777: ST_TO_ADDR
6778: GO 6849
// begin denisloc = loadvariable ( DenisLoc , - 1 ) ;
6780: LD_ADDR_LOC 26
6784: PUSH
6785: LD_STRING DenisLoc
6787: PPUSH
6788: LD_INT 1
6790: NEG
6791: PPUSH
6792: CALL_OW 30
6796: ST_TO_ADDR
// if denisloc = 6 then
6797: LD_LOC 26
6801: PUSH
6802: LD_INT 6
6804: EQUAL
6805: IFFALSE 6841
// begin denis = createcharacter ( Denis ) ;
6807: LD_ADDR_LOC 15
6811: PUSH
6812: LD_STRING Denis
6814: PPUSH
6815: CALL_OW 34
6819: ST_TO_ADDR
// vip = vip ^ [ denis ] ;
6820: LD_ADDR_VAR 0 2
6824: PUSH
6825: LD_VAR 0 2
6829: PUSH
6830: LD_LOC 15
6834: PUSH
6835: EMPTY
6836: LIST
6837: ADD
6838: ST_TO_ADDR
// end else
6839: GO 6849
// denis = 0 ;
6841: LD_ADDR_LOC 15
6845: PUSH
6846: LD_INT 0
6848: ST_TO_ADDR
// end ; if not frank then
6849: LD_LOC 11
6853: NOT
6854: IFFALSE 6957
// if not testcharacters ( Yamoko ) or not checkcharacterset ( Yamoko ) then
6856: LD_STRING Yamoko
6858: PPUSH
6859: CALL_OW 28
6863: NOT
6864: PUSH
6865: LD_STRING Yamoko
6867: PPUSH
6868: CALL_OW 29
6872: NOT
6873: OR
6874: IFFALSE 6886
// yamoko = 0 else
6876: LD_ADDR_LOC 16
6880: PUSH
6881: LD_INT 0
6883: ST_TO_ADDR
6884: GO 6955
// begin yamokoloc = loadvariable ( YamokoLoc , - 1 ) ;
6886: LD_ADDR_LOC 27
6890: PUSH
6891: LD_STRING YamokoLoc
6893: PPUSH
6894: LD_INT 1
6896: NEG
6897: PPUSH
6898: CALL_OW 30
6902: ST_TO_ADDR
// if yamokoloc = 6 then
6903: LD_LOC 27
6907: PUSH
6908: LD_INT 6
6910: EQUAL
6911: IFFALSE 6947
// begin yamoko = createcharacter ( Yamoko ) ;
6913: LD_ADDR_LOC 16
6917: PUSH
6918: LD_STRING Yamoko
6920: PPUSH
6921: CALL_OW 34
6925: ST_TO_ADDR
// vip = vip ^ [ yamoko ] ;
6926: LD_ADDR_VAR 0 2
6930: PUSH
6931: LD_VAR 0 2
6935: PUSH
6936: LD_LOC 16
6940: PUSH
6941: EMPTY
6942: LIST
6943: ADD
6944: ST_TO_ADDR
// end else
6945: GO 6955
// yamoko = 0 ;
6947: LD_ADDR_LOC 16
6951: PUSH
6952: LD_INT 0
6954: ST_TO_ADDR
// end else
6955: GO 6965
// yamoko = 0 ;
6957: LD_ADDR_LOC 16
6961: PUSH
6962: LD_INT 0
6964: ST_TO_ADDR
// if not testcharacters ( Gary ) or not checkcharacterset ( Gary ) then
6965: LD_STRING Gary
6967: PPUSH
6968: CALL_OW 28
6972: NOT
6973: PUSH
6974: LD_STRING Gary
6976: PPUSH
6977: CALL_OW 29
6981: NOT
6982: OR
6983: IFFALSE 6995
// gary = 0 else
6985: LD_ADDR_LOC 17
6989: PUSH
6990: LD_INT 0
6992: ST_TO_ADDR
6993: GO 7064
// begin garyloc = loadvariable ( GaryLoc , - 1 ) ;
6995: LD_ADDR_LOC 28
6999: PUSH
7000: LD_STRING GaryLoc
7002: PPUSH
7003: LD_INT 1
7005: NEG
7006: PPUSH
7007: CALL_OW 30
7011: ST_TO_ADDR
// if garyloc = 6 then
7012: LD_LOC 28
7016: PUSH
7017: LD_INT 6
7019: EQUAL
7020: IFFALSE 7056
// begin gary = createcharacter ( Gary ) ;
7022: LD_ADDR_LOC 17
7026: PUSH
7027: LD_STRING Gary
7029: PPUSH
7030: CALL_OW 34
7034: ST_TO_ADDR
// vip = vip ^ [ gary ] ;
7035: LD_ADDR_VAR 0 2
7039: PUSH
7040: LD_VAR 0 2
7044: PUSH
7045: LD_LOC 17
7049: PUSH
7050: EMPTY
7051: LIST
7052: ADD
7053: ST_TO_ADDR
// end else
7054: GO 7064
// gary = 0 ;
7056: LD_ADDR_LOC 17
7060: PUSH
7061: LD_INT 0
7063: ST_TO_ADDR
// end ; americani = vip ^ americani ;
7064: LD_ADDR_EXP 49
7068: PUSH
7069: LD_VAR 0 2
7073: PUSH
7074: LD_EXP 49
7078: ADD
7079: ST_TO_ADDR
// end ;
7080: LD_VAR 0 1
7084: RET
// export function saveitall ; begin
7085: LD_INT 0
7087: PPUSH
// savecharacters ( john , JMM ) ;
7088: LD_EXP 53
7092: PPUSH
7093: LD_STRING JMM
7095: PPUSH
7096: CALL_OW 38
// savecharacters ( huck , Stevens ) ;
7100: LD_EXP 55
7104: PPUSH
7105: LD_STRING Stevens
7107: PPUSH
7108: CALL_OW 38
// savecharacters ( burlak , Burlak ) ;
7112: LD_EXP 4
7116: PPUSH
7117: LD_STRING Burlak
7119: PPUSH
7120: CALL_OW 38
// if bobby then
7124: LD_LOC 7
7128: IFFALSE 7175
// begin savecharacters ( bobby , Bobby ) ;
7130: LD_LOC 7
7134: PPUSH
7135: LD_STRING Bobby
7137: PPUSH
7138: CALL_OW 38
// if islive ( bobby ) then
7142: LD_LOC 7
7146: PPUSH
7147: CALL_OW 300
7151: IFFALSE 7165
// savevariable ( 6 , BobbyLoc ) else
7153: LD_INT 6
7155: PPUSH
7156: LD_STRING BobbyLoc
7158: PPUSH
7159: CALL_OW 39
7163: GO 7175
// savevariable ( 0 , BobbyLoc ) ;
7165: LD_INT 0
7167: PPUSH
7168: LD_STRING BobbyLoc
7170: PPUSH
7171: CALL_OW 39
// end ; if cyrus then
7175: LD_LOC 8
7179: IFFALSE 7226
// begin savecharacters ( cyrus , Cyrus ) ;
7181: LD_LOC 8
7185: PPUSH
7186: LD_STRING Cyrus
7188: PPUSH
7189: CALL_OW 38
// if islive ( cyrus ) then
7193: LD_LOC 8
7197: PPUSH
7198: CALL_OW 300
7202: IFFALSE 7216
// savevariable ( 6 , CyrusLoc ) else
7204: LD_INT 6
7206: PPUSH
7207: LD_STRING CyrusLoc
7209: PPUSH
7210: CALL_OW 39
7214: GO 7226
// savevariable ( 0 , CyrusLoc ) ;
7216: LD_INT 0
7218: PPUSH
7219: LD_STRING CyrusLoc
7221: PPUSH
7222: CALL_OW 39
// end ; if lisa then
7226: LD_LOC 9
7230: IFFALSE 7277
// begin savecharacters ( lisa , Lisa ) ;
7232: LD_LOC 9
7236: PPUSH
7237: LD_STRING Lisa
7239: PPUSH
7240: CALL_OW 38
// if islive ( lisa ) then
7244: LD_LOC 9
7248: PPUSH
7249: CALL_OW 300
7253: IFFALSE 7267
// savevariable ( 6 , LisaLoc ) else
7255: LD_INT 6
7257: PPUSH
7258: LD_STRING LisaLoc
7260: PPUSH
7261: CALL_OW 39
7265: GO 7277
// savevariable ( 0 , LisaLoc ) ;
7267: LD_INT 0
7269: PPUSH
7270: LD_STRING LisaLoc
7272: PPUSH
7273: CALL_OW 39
// end ; if cornel then
7277: LD_LOC 10
7281: IFFALSE 7328
// begin savecharacters ( cornel , Cornell ) ;
7283: LD_LOC 10
7287: PPUSH
7288: LD_STRING Cornell
7290: PPUSH
7291: CALL_OW 38
// if islive ( cornel ) then
7295: LD_LOC 10
7299: PPUSH
7300: CALL_OW 300
7304: IFFALSE 7318
// savevariable ( 6 , CornellLoc ) else
7306: LD_INT 6
7308: PPUSH
7309: LD_STRING CornellLoc
7311: PPUSH
7312: CALL_OW 39
7316: GO 7328
// savevariable ( 0 , CornellLoc ) ;
7318: LD_INT 0
7320: PPUSH
7321: LD_STRING CornellLoc
7323: PPUSH
7324: CALL_OW 39
// end ; if frank then
7328: LD_LOC 11
7332: IFFALSE 7379
// begin savecharacters ( frank , Frank ) ;
7334: LD_LOC 11
7338: PPUSH
7339: LD_STRING Frank
7341: PPUSH
7342: CALL_OW 38
// if islive ( frank ) then
7346: LD_LOC 11
7350: PPUSH
7351: CALL_OW 300
7355: IFFALSE 7369
// savevariable ( 6 , FrankLoc ) else
7357: LD_INT 6
7359: PPUSH
7360: LD_STRING FrankLoc
7362: PPUSH
7363: CALL_OW 39
7367: GO 7379
// savevariable ( 0 , FrankLoc ) ;
7369: LD_INT 0
7371: PPUSH
7372: LD_STRING FrankLoc
7374: PPUSH
7375: CALL_OW 39
// end ; if brown then
7379: LD_LOC 12
7383: IFFALSE 7430
// begin savecharacters ( brown , Brown ) ;
7385: LD_LOC 12
7389: PPUSH
7390: LD_STRING Brown
7392: PPUSH
7393: CALL_OW 38
// if islive ( brown ) then
7397: LD_LOC 12
7401: PPUSH
7402: CALL_OW 300
7406: IFFALSE 7420
// savevariable ( 6 , BrownLoc ) else
7408: LD_INT 6
7410: PPUSH
7411: LD_STRING BrownLoc
7413: PPUSH
7414: CALL_OW 39
7418: GO 7430
// savevariable ( 0 , BrownLoc ) ;
7420: LD_INT 0
7422: PPUSH
7423: LD_STRING BrownLoc
7425: PPUSH
7426: CALL_OW 39
// end ; if lucy then
7430: LD_LOC 13
7434: IFFALSE 7481
// begin savecharacters ( lucy , Donaldson ) ;
7436: LD_LOC 13
7440: PPUSH
7441: LD_STRING Donaldson
7443: PPUSH
7444: CALL_OW 38
// if islive ( lucy ) then
7448: LD_LOC 13
7452: PPUSH
7453: CALL_OW 300
7457: IFFALSE 7471
// savevariable ( 6 , DonaldsonLoc ) else
7459: LD_INT 6
7461: PPUSH
7462: LD_STRING DonaldsonLoc
7464: PPUSH
7465: CALL_OW 39
7469: GO 7481
// savevariable ( 0 , DonaldsonLoc ) ;
7471: LD_INT 0
7473: PPUSH
7474: LD_STRING DonaldsonLoc
7476: PPUSH
7477: CALL_OW 39
// end ; if glad then
7481: LD_LOC 14
7485: IFFALSE 7532
// begin savecharacters ( glad , Gladstone ) ;
7487: LD_LOC 14
7491: PPUSH
7492: LD_STRING Gladstone
7494: PPUSH
7495: CALL_OW 38
// if islive ( glad ) then
7499: LD_LOC 14
7503: PPUSH
7504: CALL_OW 300
7508: IFFALSE 7522
// savevariable ( 6 , GladstoneLoc ) else
7510: LD_INT 6
7512: PPUSH
7513: LD_STRING GladstoneLoc
7515: PPUSH
7516: CALL_OW 39
7520: GO 7532
// savevariable ( 0 , GladstoneLoc ) ;
7522: LD_INT 0
7524: PPUSH
7525: LD_STRING GladstoneLoc
7527: PPUSH
7528: CALL_OW 39
// end ; if denis then
7532: LD_LOC 15
7536: IFFALSE 7583
// begin savecharacters ( denis , Denis ) ;
7538: LD_LOC 15
7542: PPUSH
7543: LD_STRING Denis
7545: PPUSH
7546: CALL_OW 38
// if islive ( denis ) then
7550: LD_LOC 15
7554: PPUSH
7555: CALL_OW 300
7559: IFFALSE 7573
// savevariable ( 6 , DenisLoc ) else
7561: LD_INT 6
7563: PPUSH
7564: LD_STRING DenisLoc
7566: PPUSH
7567: CALL_OW 39
7571: GO 7583
// savevariable ( 0 , DenisLoc ) ;
7573: LD_INT 0
7575: PPUSH
7576: LD_STRING DenisLoc
7578: PPUSH
7579: CALL_OW 39
// end ; if yamoko then
7583: LD_LOC 16
7587: IFFALSE 7634
// begin savecharacters ( yamoko , Yamoko ) ;
7589: LD_LOC 16
7593: PPUSH
7594: LD_STRING Yamoko
7596: PPUSH
7597: CALL_OW 38
// if islive ( yamoko ) then
7601: LD_LOC 16
7605: PPUSH
7606: CALL_OW 300
7610: IFFALSE 7624
// savevariable ( 6 , YamokoLoc ) else
7612: LD_INT 6
7614: PPUSH
7615: LD_STRING YamokoLoc
7617: PPUSH
7618: CALL_OW 39
7622: GO 7634
// savevariable ( 0 , YamokoLoc ) ;
7624: LD_INT 0
7626: PPUSH
7627: LD_STRING YamokoLoc
7629: PPUSH
7630: CALL_OW 39
// end ; if gary then
7634: LD_LOC 17
7638: IFFALSE 7685
// begin savecharacters ( gary , Gary ) ;
7640: LD_LOC 17
7644: PPUSH
7645: LD_STRING Gary
7647: PPUSH
7648: CALL_OW 38
// if islive ( gary ) then
7652: LD_LOC 17
7656: PPUSH
7657: CALL_OW 300
7661: IFFALSE 7675
// savevariable ( 6 , GaryLoc ) else
7663: LD_INT 6
7665: PPUSH
7666: LD_STRING GaryLoc
7668: PPUSH
7669: CALL_OW 39
7673: GO 7685
// savevariable ( 0 , GaryLoc ) ;
7675: LD_INT 0
7677: PPUSH
7678: LD_STRING GaryLoc
7680: PPUSH
7681: CALL_OW 39
// end ; savecharacters ( ( filterallunits ( [ [ f_side , am ] , [ f_alive ] , [ f_type , unit_human ] ] ) diff ( [ john , lucy , bobby , cyrus , lisa , cornel , frank , brown , glad , denis , yamoko , gary , huck ] ^ seznamposil ) ) , otherwithJMM ) ;
7685: LD_INT 22
7687: PUSH
7688: LD_EXP 1
7692: PUSH
7693: EMPTY
7694: LIST
7695: LIST
7696: PUSH
7697: LD_INT 51
7699: PUSH
7700: EMPTY
7701: LIST
7702: PUSH
7703: LD_INT 21
7705: PUSH
7706: LD_INT 1
7708: PUSH
7709: EMPTY
7710: LIST
7711: LIST
7712: PUSH
7713: EMPTY
7714: LIST
7715: LIST
7716: LIST
7717: PPUSH
7718: CALL_OW 69
7722: PUSH
7723: LD_EXP 53
7727: PUSH
7728: LD_LOC 13
7732: PUSH
7733: LD_LOC 7
7737: PUSH
7738: LD_LOC 8
7742: PUSH
7743: LD_LOC 9
7747: PUSH
7748: LD_LOC 10
7752: PUSH
7753: LD_LOC 11
7757: PUSH
7758: LD_LOC 12
7762: PUSH
7763: LD_LOC 14
7767: PUSH
7768: LD_LOC 15
7772: PUSH
7773: LD_LOC 16
7777: PUSH
7778: LD_LOC 17
7782: PUSH
7783: LD_EXP 55
7787: PUSH
7788: EMPTY
7789: LIST
7790: LIST
7791: LIST
7792: LIST
7793: LIST
7794: LIST
7795: LIST
7796: LIST
7797: LIST
7798: LIST
7799: LIST
7800: LIST
7801: LIST
7802: PUSH
7803: LD_EXP 51
7807: ADD
7808: DIFF
7809: PPUSH
7810: LD_STRING otherwithJMM
7812: PPUSH
7813: CALL_OW 38
// end ; end_of_file
7817: LD_VAR 0 1
7821: RET
// var arabatt , regid , attid , north_dep_cnt , south_dep_cnt ; export arabsci , arsci_cipl ; every 10 10$0 do var tmp , tmp1 ;
7822: GO 7824
7824: DISABLE
7825: LD_INT 0
7827: PPUSH
7828: PPUSH
// begin wait ( delay1 ) ;
7829: LD_EXP 45
7833: PPUSH
7834: CALL_OW 67
// uc_nation = nation_arabian ;
7838: LD_ADDR_OWVAR 21
7842: PUSH
7843: LD_INT 2
7845: ST_TO_ADDR
// uc_side = ar ;
7846: LD_ADDR_OWVAR 20
7850: PUSH
7851: LD_EXP 3
7855: ST_TO_ADDR
// vc_control = control_manual ;
7856: LD_ADDR_OWVAR 38
7860: PUSH
7861: LD_INT 1
7863: ST_TO_ADDR
// vc_engine = engine_siberite ;
7864: LD_ADDR_OWVAR 39
7868: PUSH
7869: LD_INT 3
7871: ST_TO_ADDR
// vc_chassis = arv0_ch ;
7872: LD_ADDR_OWVAR 37
7876: PUSH
7877: LD_EXP 11
7881: ST_TO_ADDR
// vc_weapon = arv0_wp ;
7882: LD_ADDR_OWVAR 40
7886: PUSH
7887: LD_EXP 12
7891: ST_TO_ADDR
// tmp = createvehicle ;
7892: LD_ADDR_VAR 0 1
7896: PUSH
7897: CALL_OW 45
7901: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
7902: LD_VAR 0 1
7906: PPUSH
7907: LD_INT 5
7909: PPUSH
7910: CALL_OW 233
// placeunitarea ( tmp , cestajih , false ) ;
7914: LD_VAR 0 1
7918: PPUSH
7919: LD_INT 1
7921: PPUSH
7922: LD_INT 0
7924: PPUSH
7925: CALL_OW 49
// preparemechanic ( sex_male , arv0_sk ) ;
7929: LD_INT 1
7931: PPUSH
7932: LD_EXP 13
7936: PPUSH
7937: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
7941: CALL_OW 44
7945: PPUSH
7946: LD_VAR 0 1
7950: PPUSH
7951: CALL_OW 52
// tmp1 = [ tmp ] ;
7955: LD_ADDR_VAR 0 2
7959: PUSH
7960: LD_VAR 0 1
7964: PUSH
7965: EMPTY
7966: LIST
7967: ST_TO_ADDR
// vc_chassis = arv1_ch ;
7968: LD_ADDR_OWVAR 37
7972: PUSH
7973: LD_EXP 14
7977: ST_TO_ADDR
// vc_weapon = arv1_wp ;
7978: LD_ADDR_OWVAR 40
7982: PUSH
7983: LD_EXP 15
7987: ST_TO_ADDR
// tmp = createvehicle ;
7988: LD_ADDR_VAR 0 1
7992: PUSH
7993: CALL_OW 45
7997: ST_TO_ADDR
// setdir ( tmp , 0 ) ;
7998: LD_VAR 0 1
8002: PPUSH
8003: LD_INT 0
8005: PPUSH
8006: CALL_OW 233
// placeunitarea ( tmp , cestajih , false ) ;
8010: LD_VAR 0 1
8014: PPUSH
8015: LD_INT 1
8017: PPUSH
8018: LD_INT 0
8020: PPUSH
8021: CALL_OW 49
// preparemechanic ( sex_male , arv1_sk ) ;
8025: LD_INT 1
8027: PPUSH
8028: LD_EXP 16
8032: PPUSH
8033: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
8037: CALL_OW 44
8041: PPUSH
8042: LD_VAR 0 1
8046: PPUSH
8047: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
8051: LD_ADDR_VAR 0 2
8055: PUSH
8056: LD_VAR 0 2
8060: PUSH
8061: LD_VAR 0 1
8065: PUSH
8066: EMPTY
8067: LIST
8068: ADD
8069: ST_TO_ADDR
// vc_chassis = arv2_ch ;
8070: LD_ADDR_OWVAR 37
8074: PUSH
8075: LD_EXP 17
8079: ST_TO_ADDR
// vc_weapon = arv2_wp ;
8080: LD_ADDR_OWVAR 40
8084: PUSH
8085: LD_EXP 18
8089: ST_TO_ADDR
// tmp = createvehicle ;
8090: LD_ADDR_VAR 0 1
8094: PUSH
8095: CALL_OW 45
8099: ST_TO_ADDR
// setdir ( tmp , 0 ) ;
8100: LD_VAR 0 1
8104: PPUSH
8105: LD_INT 0
8107: PPUSH
8108: CALL_OW 233
// placeunitarea ( tmp , cestajih , false ) ;
8112: LD_VAR 0 1
8116: PPUSH
8117: LD_INT 1
8119: PPUSH
8120: LD_INT 0
8122: PPUSH
8123: CALL_OW 49
// preparemechanic ( sex_male , arv2_sk ) ;
8127: LD_INT 1
8129: PPUSH
8130: LD_EXP 19
8134: PPUSH
8135: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
8139: CALL_OW 44
8143: PPUSH
8144: LD_VAR 0 1
8148: PPUSH
8149: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
8153: LD_ADDR_VAR 0 2
8157: PUSH
8158: LD_VAR 0 2
8162: PUSH
8163: LD_VAR 0 1
8167: PUSH
8168: EMPTY
8169: LIST
8170: ADD
8171: ST_TO_ADDR
// if debug then
8172: LD_EXP 44
8176: IFFALSE 8185
// msg ( prvni utok (kryci) ) ;
8178: LD_STRING prvni utok (kryci)
8180: PPUSH
8181: CALL_OW 100
// regid = mcregistry ( ar , [ [ mc_reg_area_to_guard , area4reg ] , [ mc_reg_refresh_time , 11 ] , mc_reg_ignore_fog ] ) ;
8185: LD_ADDR_LOC 30
8189: PUSH
8190: LD_EXP 3
8194: PPUSH
8195: LD_INT 2
8197: PUSH
8198: LD_INT 15
8200: PUSH
8201: EMPTY
8202: LIST
8203: LIST
8204: PUSH
8205: LD_INT 1
8207: PUSH
8208: LD_INT 11
8210: PUSH
8211: EMPTY
8212: LIST
8213: LIST
8214: PUSH
8215: LD_INT 7
8217: PUSH
8218: EMPTY
8219: LIST
8220: LIST
8221: LIST
8222: PPUSH
8223: CALL_OW 399
8227: ST_TO_ADDR
// attid = mcattack ( 100 , regid , tmp1 , [ mc_no_stop ] ) ;
8228: LD_ADDR_LOC 31
8232: PUSH
8233: LD_INT 100
8235: PPUSH
8236: LD_LOC 30
8240: PPUSH
8241: LD_VAR 0 2
8245: PPUSH
8246: LD_INT 10
8248: PUSH
8249: EMPTY
8250: LIST
8251: PPUSH
8252: CALL_OW 402
8256: ST_TO_ADDR
// wait ( 0 0$2 ) ;
8257: LD_INT 70
8259: PPUSH
8260: CALL_OW 67
// preparescientist ( sex_female , arsc0_sk ) ;
8264: LD_INT 2
8266: PPUSH
8267: LD_EXP 10
8271: PPUSH
8272: CALL_OW 384
// arabsci = createhuman ;
8276: LD_ADDR_EXP 56
8280: PUSH
8281: CALL_OW 44
8285: ST_TO_ADDR
// arsci_cipl = false ;
8286: LD_ADDR_EXP 57
8290: PUSH
8291: LD_INT 0
8293: ST_TO_ADDR
// placeunitxyr ( arabsci , 58 , 2 , 2 , false ) ;
8294: LD_EXP 56
8298: PPUSH
8299: LD_INT 58
8301: PPUSH
8302: LD_INT 2
8304: PPUSH
8305: LD_INT 2
8307: PPUSH
8308: LD_INT 0
8310: PPUSH
8311: CALL_OW 50
// comcontaminate ( arabsci , 23 , 37 ) ;
8315: LD_EXP 56
8319: PPUSH
8320: LD_INT 23
8322: PPUSH
8323: LD_INT 37
8325: PPUSH
8326: CALL_OW 158
// wait ( 0 0$3 ) ;
8330: LD_INT 105
8332: PPUSH
8333: CALL_OW 67
// arabatt = tmp1 ;
8337: LD_ADDR_LOC 29
8341: PUSH
8342: LD_VAR 0 2
8346: ST_TO_ADDR
// north_dep_cnt = false ;
8347: LD_ADDR_LOC 32
8351: PUSH
8352: LD_INT 0
8354: ST_TO_ADDR
// south_dep_cnt = false ;
8355: LD_ADDR_LOC 33
8359: PUSH
8360: LD_INT 0
8362: ST_TO_ADDR
// enabled = 0 ;
8363: LD_ADDR_LOC 34
8367: PUSH
8368: LD_INT 0
8370: ST_TO_ADDR
// enable ( 01 ) ;
8371: LD_INT 1
8373: ENABLE_MARKED
// while not arsci_cipl and not north_dep_cnt do
8374: LD_EXP 57
8378: NOT
8379: PUSH
8380: LD_LOC 32
8384: NOT
8385: AND
8386: IFFALSE 8397
// wait ( 0 0$1 ) ;
8388: LD_INT 35
8390: PPUSH
8391: CALL_OW 67
8395: GO 8374
// killmc ( attid ) ;
8397: LD_LOC 31
8401: PPUSH
8402: CALL_OW 387
// commovexy ( arabatt ^ [ arabsci ] , 58 , 1 ) ;
8406: LD_LOC 29
8410: PUSH
8411: LD_EXP 56
8415: PUSH
8416: EMPTY
8417: LIST
8418: ADD
8419: PPUSH
8420: LD_INT 58
8422: PPUSH
8423: LD_INT 1
8425: PPUSH
8426: CALL_OW 111
// enabled = 1 ;
8430: LD_ADDR_LOC 34
8434: PUSH
8435: LD_INT 1
8437: ST_TO_ADDR
// end ;
8438: PPOPN 2
8440: END
// export sibsev , marked_08 ; on sibdepositcontaminated ( un , x , y ) do var tmp , tmp1 , tmp2 ;
8441: LD_INT 0
8443: PPUSH
8444: PPUSH
8445: PPUSH
// if ( x = 23 ) and ( y = 37 ) then
8446: LD_VAR 0 2
8450: PUSH
8451: LD_INT 23
8453: EQUAL
8454: PUSH
8455: LD_VAR 0 3
8459: PUSH
8460: LD_INT 37
8462: EQUAL
8463: AND
8464: IFFALSE 8484
// begin sibsev = true ;
8466: LD_ADDR_EXP 58
8470: PUSH
8471: LD_INT 1
8473: ST_TO_ADDR
// north_dep_cnt = true ;
8474: LD_ADDR_LOC 32
8478: PUSH
8479: LD_INT 1
8481: ST_TO_ADDR
// end else
8482: GO 8495
// begin enable ( 08 ) ;
8484: LD_INT 8
8486: ENABLE_MARKED
// south_dep_cnt = true ;
8487: LD_ADDR_LOC 33
8491: PUSH
8492: LD_INT 1
8494: ST_TO_ADDR
// end ;
8495: PPOPN 6
8497: END
// on siberitedepositdestroyed ( x , y ) marked 08 do var tmp , tmp1 , tmp2 ;
8498: LD_INT 0
8500: PPUSH
8501: PPUSH
8502: PPUSH
// if ( x = 91 ) and ( y = 111 ) and not getlistofresourcesinarea ( northdep ) then
8503: LD_VAR 0 1
8507: PUSH
8508: LD_INT 91
8510: EQUAL
8511: PUSH
8512: LD_VAR 0 2
8516: PUSH
8517: LD_INT 111
8519: EQUAL
8520: AND
8521: PUSH
8522: LD_INT 13
8524: PPUSH
8525: CALL_OW 442
8529: NOT
8530: AND
8531: IFFALSE 8842
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
8533: LD_ADDR_VAR 0 3
8537: PUSH
8538: LD_INT 22
8540: PUSH
8541: LD_EXP 1
8545: PUSH
8546: EMPTY
8547: LIST
8548: LIST
8549: PUSH
8550: LD_INT 2
8552: PUSH
8553: LD_INT 30
8555: PUSH
8556: LD_INT 0
8558: PUSH
8559: EMPTY
8560: LIST
8561: LIST
8562: PUSH
8563: LD_INT 30
8565: PUSH
8566: LD_INT 1
8568: PUSH
8569: EMPTY
8570: LIST
8571: LIST
8572: PUSH
8573: EMPTY
8574: LIST
8575: LIST
8576: LIST
8577: PUSH
8578: EMPTY
8579: LIST
8580: LIST
8581: PPUSH
8582: CALL_OW 69
8586: ST_TO_ADDR
// tmp2 = 0 ;
8587: LD_ADDR_VAR 0 5
8591: PUSH
8592: LD_INT 0
8594: ST_TO_ADDR
// for tmp1 in tmp do
8595: LD_ADDR_VAR 0 4
8599: PUSH
8600: LD_VAR 0 3
8604: PUSH
8605: FOR_IN
8606: IFFALSE 8639
// tmp2 = tmp2 + getresourcetype ( getbase ( tmp1 ) , mat_siberit ) ;
8608: LD_ADDR_VAR 0 5
8612: PUSH
8613: LD_VAR 0 5
8617: PUSH
8618: LD_VAR 0 4
8622: PPUSH
8623: CALL_OW 274
8627: PPUSH
8628: LD_INT 3
8630: PPUSH
8631: CALL_OW 275
8635: PLUS
8636: ST_TO_ADDR
8637: GO 8605
8639: POP
8640: POP
// tmp = filterallunits ( [ [ f_side , am ] , [ f_or , [ f_class , class_engineer ] , [ f_weapon , us_cargo_bay ] ] ] ) ;
8641: LD_ADDR_VAR 0 3
8645: PUSH
8646: LD_INT 22
8648: PUSH
8649: LD_EXP 1
8653: PUSH
8654: EMPTY
8655: LIST
8656: LIST
8657: PUSH
8658: LD_INT 2
8660: PUSH
8661: LD_INT 25
8663: PUSH
8664: LD_INT 2
8666: PUSH
8667: EMPTY
8668: LIST
8669: LIST
8670: PUSH
8671: LD_INT 34
8673: PUSH
8674: LD_INT 12
8676: PUSH
8677: EMPTY
8678: LIST
8679: LIST
8680: PUSH
8681: EMPTY
8682: LIST
8683: LIST
8684: LIST
8685: PUSH
8686: EMPTY
8687: LIST
8688: LIST
8689: PPUSH
8690: CALL_OW 69
8694: ST_TO_ADDR
// tmp2 = tmp2 + getcargo ( tmp , mat_siberit ) ;
8695: LD_ADDR_VAR 0 5
8699: PUSH
8700: LD_VAR 0 5
8704: PUSH
8705: LD_VAR 0 3
8709: PPUSH
8710: LD_INT 3
8712: PPUSH
8713: CALL_OW 289
8717: PLUS
8718: ST_TO_ADDR
// tmp2 = tmp2 + getresourcearea ( celamapa , mat_siberit ) ;
8719: LD_ADDR_VAR 0 5
8723: PUSH
8724: LD_VAR 0 5
8728: PUSH
8729: LD_INT 8
8731: PPUSH
8732: LD_INT 3
8734: PPUSH
8735: CALL_OW 287
8739: PLUS
8740: ST_TO_ADDR
// tmp1 = 70 ;
8741: LD_ADDR_VAR 0 4
8745: PUSH
8746: LD_INT 70
8748: ST_TO_ADDR
// if filterallunits ( [ [ f_side , am ] , [ f_btype , b_ext_siberium ] ] ) then
8749: LD_INT 22
8751: PUSH
8752: LD_EXP 1
8756: PUSH
8757: EMPTY
8758: LIST
8759: LIST
8760: PUSH
8761: LD_INT 30
8763: PUSH
8764: LD_INT 21
8766: PUSH
8767: EMPTY
8768: LIST
8769: LIST
8770: PUSH
8771: EMPTY
8772: LIST
8773: LIST
8774: PPUSH
8775: CALL_OW 69
8779: IFFALSE 8795
// tmp1 = tmp1 - 10 ;
8781: LD_ADDR_VAR 0 4
8785: PUSH
8786: LD_VAR 0 4
8790: PUSH
8791: LD_INT 10
8793: MINUS
8794: ST_TO_ADDR
// if researched ( am , tech_sibfiss ) then
8795: LD_EXP 1
8799: PPUSH
8800: LD_INT 25
8802: PPUSH
8803: CALL_OW 325
8807: IFFALSE 8823
// tmp1 = tmp1 - 60 ;
8809: LD_ADDR_VAR 0 4
8813: PUSH
8814: LD_VAR 0 4
8818: PUSH
8819: LD_INT 60
8821: MINUS
8822: ST_TO_ADDR
// if tmp1 > tmp2 then
8823: LD_VAR 0 4
8827: PUSH
8828: LD_VAR 0 5
8832: GREATER
8833: IFFALSE 8842
// youlost ( siberite ) ;
8835: LD_STRING siberite
8837: PPUSH
8838: CALL_OW 104
// end ;
8842: PPOPN 5
8844: END
// var enabled ; every 0 0$0.43 marked 01 do var tmp , tmp1 ;
8845: GO 8847
8847: DISABLE
8848: LD_INT 0
8850: PPUSH
8851: PPUSH
// begin tmp = filterunitsinarea ( uniksever , [ [ f_side , ar ] ] ) ;
8852: LD_ADDR_VAR 0 1
8856: PUSH
8857: LD_INT 2
8859: PPUSH
8860: LD_INT 22
8862: PUSH
8863: LD_EXP 3
8867: PUSH
8868: EMPTY
8869: LIST
8870: LIST
8871: PUSH
8872: EMPTY
8873: LIST
8874: PPUSH
8875: CALL_OW 70
8879: ST_TO_ADDR
// if tmp then
8880: LD_VAR 0 1
8884: IFFALSE 8912
// for tmp1 in tmp do
8886: LD_ADDR_VAR 0 2
8890: PUSH
8891: LD_VAR 0 1
8895: PUSH
8896: FOR_IN
8897: IFFALSE 8910
// destroyunit ( tmp1 ) ;
8899: LD_VAR 0 2
8903: PPUSH
8904: CALL_OW 65
8908: GO 8896
8910: POP
8911: POP
// tmp = filterallunits ( [ [ f_side , ar ] , [ f_ok ] , [ f_or , [ f_occupied ] , [ f_type , unit_human ] ] ] ) ;
8912: LD_ADDR_VAR 0 1
8916: PUSH
8917: LD_INT 22
8919: PUSH
8920: LD_EXP 3
8924: PUSH
8925: EMPTY
8926: LIST
8927: LIST
8928: PUSH
8929: LD_INT 50
8931: PUSH
8932: EMPTY
8933: LIST
8934: PUSH
8935: LD_INT 2
8937: PUSH
8938: LD_INT 59
8940: PUSH
8941: EMPTY
8942: LIST
8943: PUSH
8944: LD_INT 21
8946: PUSH
8947: LD_INT 1
8949: PUSH
8950: EMPTY
8951: LIST
8952: LIST
8953: PUSH
8954: EMPTY
8955: LIST
8956: LIST
8957: LIST
8958: PUSH
8959: EMPTY
8960: LIST
8961: LIST
8962: LIST
8963: PPUSH
8964: CALL_OW 69
8968: ST_TO_ADDR
// if tmp and ( enabled < 600 ) then
8969: LD_VAR 0 1
8973: PUSH
8974: LD_LOC 34
8978: PUSH
8979: LD_INT 600
8981: LESS
8982: AND
8983: IFFALSE 9034
// begin enable ;
8985: ENABLE
// if enabled then
8986: LD_LOC 34
8990: IFFALSE 9006
// enabled = enabled + 1 ;
8992: LD_ADDR_LOC 34
8996: PUSH
8997: LD_LOC 34
9001: PUSH
9002: LD_INT 1
9004: PLUS
9005: ST_TO_ADDR
// if ( enabled mod 10 ) = 1 then
9006: LD_LOC 34
9010: PUSH
9011: LD_INT 10
9013: MOD
9014: PUSH
9015: LD_INT 1
9017: EQUAL
9018: IFFALSE 9032
// commovetoarea ( tmp , uniksever ) ;
9020: LD_VAR 0 1
9024: PPUSH
9025: LD_INT 2
9027: PPUSH
9028: CALL_OW 113
// end else
9032: GO 9069
// begin if tmp then
9034: LD_VAR 0 1
9038: IFFALSE 9066
// for tmp1 in tmp do
9040: LD_ADDR_VAR 0 2
9044: PUSH
9045: LD_VAR 0 1
9049: PUSH
9050: FOR_IN
9051: IFFALSE 9064
// destroyunit ( tmp1 ) ;
9053: LD_VAR 0 2
9057: PPUSH
9058: CALL_OW 65
9062: GO 9050
9064: POP
9065: POP
// enable ( 02 ) ;
9066: LD_INT 2
9068: ENABLE_MARKED
// end ; end ;
9069: PPOPN 2
9071: END
// var enabled2 ; every 0 0$0.43 marked 03 do var tmp , tmp1 ;
9072: GO 9074
9074: DISABLE
9075: LD_INT 0
9077: PPUSH
9078: PPUSH
// begin tmp = filterunitsinarea ( unikjih , [ [ f_side , ar ] ] ) ;
9079: LD_ADDR_VAR 0 1
9083: PUSH
9084: LD_INT 5
9086: PPUSH
9087: LD_INT 22
9089: PUSH
9090: LD_EXP 3
9094: PUSH
9095: EMPTY
9096: LIST
9097: LIST
9098: PUSH
9099: EMPTY
9100: LIST
9101: PPUSH
9102: CALL_OW 70
9106: ST_TO_ADDR
// if tmp then
9107: LD_VAR 0 1
9111: IFFALSE 9139
// for tmp1 in tmp do
9113: LD_ADDR_VAR 0 2
9117: PUSH
9118: LD_VAR 0 1
9122: PUSH
9123: FOR_IN
9124: IFFALSE 9137
// destroyunit ( tmp1 ) ;
9126: LD_VAR 0 2
9130: PPUSH
9131: CALL_OW 65
9135: GO 9123
9137: POP
9138: POP
// tmp = filterallunits ( [ [ f_side , ar ] , [ f_ok ] , [ f_or , [ f_occupied ] , [ f_type , unit_human ] ] ] ) ;
9139: LD_ADDR_VAR 0 1
9143: PUSH
9144: LD_INT 22
9146: PUSH
9147: LD_EXP 3
9151: PUSH
9152: EMPTY
9153: LIST
9154: LIST
9155: PUSH
9156: LD_INT 50
9158: PUSH
9159: EMPTY
9160: LIST
9161: PUSH
9162: LD_INT 2
9164: PUSH
9165: LD_INT 59
9167: PUSH
9168: EMPTY
9169: LIST
9170: PUSH
9171: LD_INT 21
9173: PUSH
9174: LD_INT 1
9176: PUSH
9177: EMPTY
9178: LIST
9179: LIST
9180: PUSH
9181: EMPTY
9182: LIST
9183: LIST
9184: LIST
9185: PUSH
9186: EMPTY
9187: LIST
9188: LIST
9189: LIST
9190: PPUSH
9191: CALL_OW 69
9195: ST_TO_ADDR
// if tmp and ( enabled < 600 ) then
9196: LD_VAR 0 1
9200: PUSH
9201: LD_LOC 34
9205: PUSH
9206: LD_INT 600
9208: LESS
9209: AND
9210: IFFALSE 9252
// begin enable ;
9212: ENABLE
// enabled2 = enabled2 + 1 ;
9213: LD_ADDR_LOC 35
9217: PUSH
9218: LD_LOC 35
9222: PUSH
9223: LD_INT 1
9225: PLUS
9226: ST_TO_ADDR
// if not ( enabled mod 12 ) then
9227: LD_LOC 34
9231: PUSH
9232: LD_INT 12
9234: MOD
9235: NOT
9236: IFFALSE 9250
// commovetoarea ( tmp , unikjih ) ;
9238: LD_VAR 0 1
9242: PPUSH
9243: LD_INT 5
9245: PPUSH
9246: CALL_OW 113
// end else
9250: GO 9284
// if tmp then
9252: LD_VAR 0 1
9256: IFFALSE 9284
// for tmp1 in tmp do
9258: LD_ADDR_VAR 0 2
9262: PUSH
9263: LD_VAR 0 1
9267: PUSH
9268: FOR_IN
9269: IFFALSE 9282
// destroyunit ( tmp1 ) ;
9271: LD_VAR 0 2
9275: PPUSH
9276: CALL_OW 65
9280: GO 9268
9282: POP
9283: POP
// end ;
9284: PPOPN 2
9286: END
// every 0 0$1 marked 02 do var tmp , tmp1 , tmp2 ;
9287: GO 9289
9289: DISABLE
9290: LD_INT 0
9292: PPUSH
9293: PPUSH
9294: PPUSH
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_class , class_scientistic ] ] ) diff john ;
9295: LD_ADDR_VAR 0 1
9299: PUSH
9300: LD_INT 22
9302: PUSH
9303: LD_EXP 1
9307: PUSH
9308: EMPTY
9309: LIST
9310: LIST
9311: PUSH
9312: LD_INT 25
9314: PUSH
9315: LD_INT 4
9317: PUSH
9318: EMPTY
9319: LIST
9320: LIST
9321: PUSH
9322: EMPTY
9323: LIST
9324: LIST
9325: PPUSH
9326: CALL_OW 69
9330: PUSH
9331: LD_EXP 53
9335: DIFF
9336: ST_TO_ADDR
// if not tmp then
9337: LD_VAR 0 1
9341: NOT
9342: IFFALSE 9473
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
9344: LD_ADDR_VAR 0 1
9348: PUSH
9349: LD_INT 22
9351: PUSH
9352: LD_EXP 1
9356: PUSH
9357: EMPTY
9358: LIST
9359: LIST
9360: PUSH
9361: LD_INT 50
9363: PUSH
9364: EMPTY
9365: LIST
9366: PUSH
9367: LD_INT 3
9369: PUSH
9370: LD_INT 23
9372: PUSH
9373: LD_INT 0
9375: PUSH
9376: EMPTY
9377: LIST
9378: LIST
9379: PUSH
9380: EMPTY
9381: LIST
9382: LIST
9383: PUSH
9384: EMPTY
9385: LIST
9386: LIST
9387: LIST
9388: PPUSH
9389: CALL_OW 69
9393: PUSH
9394: LD_EXP 53
9398: DIFF
9399: ST_TO_ADDR
// tmp1 = [ ] ;
9400: LD_ADDR_VAR 0 2
9404: PUSH
9405: EMPTY
9406: ST_TO_ADDR
// for tmp2 in tmp do
9407: LD_ADDR_VAR 0 3
9411: PUSH
9412: LD_VAR 0 1
9416: PUSH
9417: FOR_IN
9418: IFFALSE 9449
// tmp1 = tmp1 ^ [ getskill ( tmp2 , skill_scientistic ) ] ;
9420: LD_ADDR_VAR 0 2
9424: PUSH
9425: LD_VAR 0 2
9429: PUSH
9430: LD_VAR 0 3
9434: PPUSH
9435: LD_INT 4
9437: PPUSH
9438: CALL_OW 259
9442: PUSH
9443: EMPTY
9444: LIST
9445: ADD
9446: ST_TO_ADDR
9447: GO 9417
9449: POP
9450: POP
// tmp = bestfromlistbylist ( tmp , tmp1 ) ;
9451: LD_ADDR_VAR 0 1
9455: PUSH
9456: LD_VAR 0 1
9460: PPUSH
9461: LD_VAR 0 2
9465: PPUSH
9466: CALL_OW 79
9470: ST_TO_ADDR
// end else
9471: GO 9487
// tmp = tmp [ 1 ] ;
9473: LD_ADDR_VAR 0 1
9477: PUSH
9478: LD_VAR 0 1
9482: PUSH
9483: LD_INT 1
9485: ARRAY
9486: ST_TO_ADDR
// if tmp and north_dep_cnt then
9487: LD_VAR 0 1
9491: PUSH
9492: LD_LOC 32
9496: AND
9497: IFFALSE 9622
// begin dialogueon ;
9499: CALL_OW 6
// say ( tmp , D4-Sci1-1 ) ;
9503: LD_VAR 0 1
9507: PPUSH
9508: LD_STRING D4-Sci1-1
9510: PPUSH
9511: CALL_OW 88
// say ( john , D4-JMM-1 ) ;
9515: LD_EXP 53
9519: PPUSH
9520: LD_STRING D4-JMM-1
9522: PPUSH
9523: CALL_OW 88
// say ( tmp , D4-Sci1-2 ) ;
9527: LD_VAR 0 1
9531: PPUSH
9532: LD_STRING D4-Sci1-2
9534: PPUSH
9535: CALL_OW 88
// say ( john , D4-JMM-2 ) ;
9539: LD_EXP 53
9543: PPUSH
9544: LD_STRING D4-JMM-2
9546: PPUSH
9547: CALL_OW 88
// say ( tmp , D4-Sci1-3 ) ;
9551: LD_VAR 0 1
9555: PPUSH
9556: LD_STRING D4-Sci1-3
9558: PPUSH
9559: CALL_OW 88
// say ( john , D4-JMM-3 ) ;
9563: LD_EXP 53
9567: PPUSH
9568: LD_STRING D4-JMM-3
9570: PPUSH
9571: CALL_OW 88
// if getresourcevisibility ( 91 , 111 , am ) then
9575: LD_INT 91
9577: PPUSH
9578: LD_INT 111
9580: PPUSH
9581: LD_EXP 1
9585: PPUSH
9586: CALL_OW 440
9590: IFFALSE 9606
// say ( john , D4-JMM-3a ) else
9592: LD_EXP 53
9596: PPUSH
9597: LD_STRING D4-JMM-3a
9599: PPUSH
9600: CALL_OW 88
9604: GO 9618
// say ( john , D4-JMM-3b ) ;
9606: LD_EXP 53
9610: PPUSH
9611: LD_STRING D4-JMM-3b
9613: PPUSH
9614: CALL_OW 88
// dialogueoff ;
9618: CALL_OW 7
// end ; wait ( delay1 ) ;
9622: LD_EXP 45
9626: PPUSH
9627: CALL_OW 67
// uc_nation = nation_arabian ;
9631: LD_ADDR_OWVAR 21
9635: PUSH
9636: LD_INT 2
9638: ST_TO_ADDR
// uc_side = ar ;
9639: LD_ADDR_OWVAR 20
9643: PUSH
9644: LD_EXP 3
9648: ST_TO_ADDR
// vc_control = control_manual ;
9649: LD_ADDR_OWVAR 38
9653: PUSH
9654: LD_INT 1
9656: ST_TO_ADDR
// vc_engine = engine_siberite ;
9657: LD_ADDR_OWVAR 39
9661: PUSH
9662: LD_INT 3
9664: ST_TO_ADDR
// vc_chassis = arv0_ch ;
9665: LD_ADDR_OWVAR 37
9669: PUSH
9670: LD_EXP 11
9674: ST_TO_ADDR
// vc_weapon = arv0_wp ;
9675: LD_ADDR_OWVAR 40
9679: PUSH
9680: LD_EXP 12
9684: ST_TO_ADDR
// tmp = createvehicle ;
9685: LD_ADDR_VAR 0 1
9689: PUSH
9690: CALL_OW 45
9694: ST_TO_ADDR
// setdir ( tmp , 3 ) ;
9695: LD_VAR 0 1
9699: PPUSH
9700: LD_INT 3
9702: PPUSH
9703: CALL_OW 233
// placeunitarea ( tmp , cestasever , false ) ;
9707: LD_VAR 0 1
9711: PPUSH
9712: LD_INT 4
9714: PPUSH
9715: LD_INT 0
9717: PPUSH
9718: CALL_OW 49
// preparemechanic ( sex_male , arv0_sk ) ;
9722: LD_INT 1
9724: PPUSH
9725: LD_EXP 13
9729: PPUSH
9730: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
9734: CALL_OW 44
9738: PPUSH
9739: LD_VAR 0 1
9743: PPUSH
9744: CALL_OW 52
// tmp1 = [ tmp ] ;
9748: LD_ADDR_VAR 0 2
9752: PUSH
9753: LD_VAR 0 1
9757: PUSH
9758: EMPTY
9759: LIST
9760: ST_TO_ADDR
// vc_chassis = arv1_ch ;
9761: LD_ADDR_OWVAR 37
9765: PUSH
9766: LD_EXP 14
9770: ST_TO_ADDR
// vc_weapon = arv1_wp ;
9771: LD_ADDR_OWVAR 40
9775: PUSH
9776: LD_EXP 15
9780: ST_TO_ADDR
// tmp = createvehicle ;
9781: LD_ADDR_VAR 0 1
9785: PUSH
9786: CALL_OW 45
9790: ST_TO_ADDR
// setdir ( tmp , 2 ) ;
9791: LD_VAR 0 1
9795: PPUSH
9796: LD_INT 2
9798: PPUSH
9799: CALL_OW 233
// placeunitarea ( tmp , cestasever , false ) ;
9803: LD_VAR 0 1
9807: PPUSH
9808: LD_INT 4
9810: PPUSH
9811: LD_INT 0
9813: PPUSH
9814: CALL_OW 49
// preparemechanic ( sex_male , arv1_sk ) ;
9818: LD_INT 1
9820: PPUSH
9821: LD_EXP 16
9825: PPUSH
9826: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
9830: CALL_OW 44
9834: PPUSH
9835: LD_VAR 0 1
9839: PPUSH
9840: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
9844: LD_ADDR_VAR 0 2
9848: PUSH
9849: LD_VAR 0 2
9853: PUSH
9854: LD_VAR 0 1
9858: PUSH
9859: EMPTY
9860: LIST
9861: ADD
9862: ST_TO_ADDR
// vc_chassis = arv2_ch ;
9863: LD_ADDR_OWVAR 37
9867: PUSH
9868: LD_EXP 17
9872: ST_TO_ADDR
// vc_weapon = arv2_wp ;
9873: LD_ADDR_OWVAR 40
9877: PUSH
9878: LD_EXP 18
9882: ST_TO_ADDR
// tmp = createvehicle ;
9883: LD_ADDR_VAR 0 1
9887: PUSH
9888: CALL_OW 45
9892: ST_TO_ADDR
// setdir ( tmp , 3 ) ;
9893: LD_VAR 0 1
9897: PPUSH
9898: LD_INT 3
9900: PPUSH
9901: CALL_OW 233
// placeunitarea ( tmp , cestasever , false ) ;
9905: LD_VAR 0 1
9909: PPUSH
9910: LD_INT 4
9912: PPUSH
9913: LD_INT 0
9915: PPUSH
9916: CALL_OW 49
// preparemechanic ( sex_male , arv2_sk ) ;
9920: LD_INT 1
9922: PPUSH
9923: LD_EXP 19
9927: PPUSH
9928: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
9932: CALL_OW 44
9936: PPUSH
9937: LD_VAR 0 1
9941: PPUSH
9942: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
9946: LD_ADDR_VAR 0 2
9950: PUSH
9951: LD_VAR 0 2
9955: PUSH
9956: LD_VAR 0 1
9960: PUSH
9961: EMPTY
9962: LIST
9963: ADD
9964: ST_TO_ADDR
// if debug then
9965: LD_EXP 44
9969: IFFALSE 9978
// msg ( druhy utok (kryci) ) ;
9971: LD_STRING druhy utok (kryci)
9973: PPUSH
9974: CALL_OW 100
// attid = mcattack ( 100 , regid , tmp1 , [ mc_no_stop ] ) ;
9978: LD_ADDR_LOC 31
9982: PUSH
9983: LD_INT 100
9985: PPUSH
9986: LD_LOC 30
9990: PPUSH
9991: LD_VAR 0 2
9995: PPUSH
9996: LD_INT 10
9998: PUSH
9999: EMPTY
10000: LIST
10001: PPUSH
10002: CALL_OW 402
10006: ST_TO_ADDR
// arabatt = tmp1 ;
10007: LD_ADDR_LOC 29
10011: PUSH
10012: LD_VAR 0 2
10016: ST_TO_ADDR
// wait ( 0 0$5 ) ;
10017: LD_INT 175
10019: PPUSH
10020: CALL_OW 67
// preparescientist ( sex_female , arsc0_sk ) ;
10024: LD_INT 2
10026: PPUSH
10027: LD_EXP 10
10031: PPUSH
10032: CALL_OW 384
// arabsci = createhuman ;
10036: LD_ADDR_EXP 56
10040: PUSH
10041: CALL_OW 44
10045: ST_TO_ADDR
// arsci_cipl = false ;
10046: LD_ADDR_EXP 57
10050: PUSH
10051: LD_INT 0
10053: ST_TO_ADDR
// placeunitxyr ( arabsci , 97 , 118 , 2 , false ) ;
10054: LD_EXP 56
10058: PPUSH
10059: LD_INT 97
10061: PPUSH
10062: LD_INT 118
10064: PPUSH
10065: LD_INT 2
10067: PPUSH
10068: LD_INT 0
10070: PPUSH
10071: CALL_OW 50
// comcontaminate ( arabsci , 91 , 111 ) ;
10075: LD_EXP 56
10079: PPUSH
10080: LD_INT 91
10082: PPUSH
10083: LD_INT 111
10085: PPUSH
10086: CALL_OW 158
// while not arsci_cipl and not south_dep_cnt do
10090: LD_EXP 57
10094: NOT
10095: PUSH
10096: LD_LOC 33
10100: NOT
10101: AND
10102: IFFALSE 10113
// wait ( 0 0$1 ) ;
10104: LD_INT 35
10106: PPUSH
10107: CALL_OW 67
10111: GO 10090
// tmp = filterallunits ( [ [ f_side , am ] , [ f_class , class_scientistic ] ] ) diff john ;
10113: LD_ADDR_VAR 0 1
10117: PUSH
10118: LD_INT 22
10120: PUSH
10121: LD_EXP 1
10125: PUSH
10126: EMPTY
10127: LIST
10128: LIST
10129: PUSH
10130: LD_INT 25
10132: PUSH
10133: LD_INT 4
10135: PUSH
10136: EMPTY
10137: LIST
10138: LIST
10139: PUSH
10140: EMPTY
10141: LIST
10142: LIST
10143: PPUSH
10144: CALL_OW 69
10148: PUSH
10149: LD_EXP 53
10153: DIFF
10154: ST_TO_ADDR
// if not tmp then
10155: LD_VAR 0 1
10159: NOT
10160: IFFALSE 10291
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_ok ] , [ f_not , [ f_nation , nation_nature ] ] ] ) diff john ;
10162: LD_ADDR_VAR 0 1
10166: PUSH
10167: LD_INT 22
10169: PUSH
10170: LD_EXP 1
10174: PUSH
10175: EMPTY
10176: LIST
10177: LIST
10178: PUSH
10179: LD_INT 50
10181: PUSH
10182: EMPTY
10183: LIST
10184: PUSH
10185: LD_INT 3
10187: PUSH
10188: LD_INT 23
10190: PUSH
10191: LD_INT 0
10193: PUSH
10194: EMPTY
10195: LIST
10196: LIST
10197: PUSH
10198: EMPTY
10199: LIST
10200: LIST
10201: PUSH
10202: EMPTY
10203: LIST
10204: LIST
10205: LIST
10206: PPUSH
10207: CALL_OW 69
10211: PUSH
10212: LD_EXP 53
10216: DIFF
10217: ST_TO_ADDR
// tmp1 = [ ] ;
10218: LD_ADDR_VAR 0 2
10222: PUSH
10223: EMPTY
10224: ST_TO_ADDR
// for tmp2 in tmp do
10225: LD_ADDR_VAR 0 3
10229: PUSH
10230: LD_VAR 0 1
10234: PUSH
10235: FOR_IN
10236: IFFALSE 10267
// tmp1 = tmp1 ^ [ getskill ( tmp2 , skill_scientistic ) ] ;
10238: LD_ADDR_VAR 0 2
10242: PUSH
10243: LD_VAR 0 2
10247: PUSH
10248: LD_VAR 0 3
10252: PPUSH
10253: LD_INT 4
10255: PPUSH
10256: CALL_OW 259
10260: PUSH
10261: EMPTY
10262: LIST
10263: ADD
10264: ST_TO_ADDR
10265: GO 10235
10267: POP
10268: POP
// tmp = bestfromlistbylist ( tmp , tmp1 ) ;
10269: LD_ADDR_VAR 0 1
10273: PUSH
10274: LD_VAR 0 1
10278: PPUSH
10279: LD_VAR 0 2
10283: PPUSH
10284: CALL_OW 79
10288: ST_TO_ADDR
// end else
10289: GO 10305
// tmp = tmp [ 1 ] ;
10291: LD_ADDR_VAR 0 1
10295: PUSH
10296: LD_VAR 0 1
10300: PUSH
10301: LD_INT 1
10303: ARRAY
10304: ST_TO_ADDR
// if tmp and south_dep_cnt and not north_dep_cnt then
10305: LD_VAR 0 1
10309: PUSH
10310: LD_LOC 33
10314: AND
10315: PUSH
10316: LD_LOC 32
10320: NOT
10321: AND
10322: IFFALSE 10447
// begin dialogueon ;
10324: CALL_OW 6
// say ( tmp , D4-Sci1-1 ) ;
10328: LD_VAR 0 1
10332: PPUSH
10333: LD_STRING D4-Sci1-1
10335: PPUSH
10336: CALL_OW 88
// say ( john , D4-JMM-1 ) ;
10340: LD_EXP 53
10344: PPUSH
10345: LD_STRING D4-JMM-1
10347: PPUSH
10348: CALL_OW 88
// say ( tmp , D4-Sci1-2 ) ;
10352: LD_VAR 0 1
10356: PPUSH
10357: LD_STRING D4-Sci1-2
10359: PPUSH
10360: CALL_OW 88
// say ( john , D4-JMM-2 ) ;
10364: LD_EXP 53
10368: PPUSH
10369: LD_STRING D4-JMM-2
10371: PPUSH
10372: CALL_OW 88
// say ( tmp , D4-Sci1-3 ) ;
10376: LD_VAR 0 1
10380: PPUSH
10381: LD_STRING D4-Sci1-3
10383: PPUSH
10384: CALL_OW 88
// say ( john , D4-JMM-3 ) ;
10388: LD_EXP 53
10392: PPUSH
10393: LD_STRING D4-JMM-3
10395: PPUSH
10396: CALL_OW 88
// if getresourcevisibility ( 23 , 37 , am ) then
10400: LD_INT 23
10402: PPUSH
10403: LD_INT 37
10405: PPUSH
10406: LD_EXP 1
10410: PPUSH
10411: CALL_OW 440
10415: IFFALSE 10431
// say ( john , D4-JMM-3a ) else
10417: LD_EXP 53
10421: PPUSH
10422: LD_STRING D4-JMM-3a
10424: PPUSH
10425: CALL_OW 88
10429: GO 10443
// say ( john , D4-JMM-3b ) ;
10431: LD_EXP 53
10435: PPUSH
10436: LD_STRING D4-JMM-3b
10438: PPUSH
10439: CALL_OW 88
// dialogueoff ;
10443: CALL_OW 7
// end ; killmc ( attid ) ;
10447: LD_LOC 31
10451: PPUSH
10452: CALL_OW 387
// commovexy ( arabatt ^ [ arabsci ] , 148 , 118 ) ;
10456: LD_LOC 29
10460: PUSH
10461: LD_EXP 56
10465: PUSH
10466: EMPTY
10467: LIST
10468: ADD
10469: PPUSH
10470: LD_INT 148
10472: PPUSH
10473: LD_INT 118
10475: PPUSH
10476: CALL_OW 111
// enable ( 03 ) ;
10480: LD_INT 3
10482: ENABLE_MARKED
// enabled2 = 0 ;
10483: LD_ADDR_LOC 35
10487: PUSH
10488: LD_INT 0
10490: ST_TO_ADDR
// enable ( 11 ) ;
10491: LD_INT 11
10493: ENABLE_MARKED
// end ;
10494: PPOPN 3
10496: END
// var attida ; every 0 0$1 trigger posily do var tmp , tmp1 ;
10497: LD_EXP 52
10501: IFFALSE 11342
10503: GO 10505
10505: DISABLE
10506: LD_INT 0
10508: PPUSH
10509: PPUSH
// begin if go4it <= ( 9 + 30 ) then
10510: LD_EXP 47
10514: PUSH
10515: LD_INT 9
10517: PUSH
10518: LD_INT 30
10520: PLUS
10521: LESSEQUAL
10522: IFFALSE 10532
// go4it = 41 ;
10524: LD_ADDR_EXP 47
10528: PUSH
10529: LD_INT 41
10531: ST_TO_ADDR
// wait ( 1 1$30 ) ;
10532: LD_INT 3150
10534: PPUSH
10535: CALL_OW 67
// if debug then
10539: LD_EXP 44
10543: IFFALSE 10552
// msg ( utok na posily ) ;
10545: LD_STRING utok na posily
10547: PPUSH
10548: CALL_OW 100
// uc_side = ar ;
10552: LD_ADDR_OWVAR 20
10556: PUSH
10557: LD_EXP 3
10561: ST_TO_ADDR
// uc_nation = nation_arabian ;
10562: LD_ADDR_OWVAR 21
10566: PUSH
10567: LD_INT 2
10569: ST_TO_ADDR
// vc_chassis = arattv0_ch ;
10570: LD_ADDR_OWVAR 37
10574: PUSH
10575: LD_EXP 25
10579: ST_TO_ADDR
// vc_control = control_manual ;
10580: LD_ADDR_OWVAR 38
10584: PUSH
10585: LD_INT 1
10587: ST_TO_ADDR
// vc_engine = engine_siberite ;
10588: LD_ADDR_OWVAR 39
10592: PUSH
10593: LD_INT 3
10595: ST_TO_ADDR
// vc_weapon = arattv0_wp ;
10596: LD_ADDR_OWVAR 40
10600: PUSH
10601: LD_EXP 26
10605: ST_TO_ADDR
// tmp = createvehicle ;
10606: LD_ADDR_VAR 0 1
10610: PUSH
10611: CALL_OW 45
10615: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
10616: LD_VAR 0 1
10620: PPUSH
10621: LD_INT 4
10623: PPUSH
10624: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
10628: LD_VAR 0 1
10632: PPUSH
10633: LD_INT 170
10635: PPUSH
10636: LD_INT 69
10638: PPUSH
10639: LD_INT 6
10641: PPUSH
10642: LD_INT 0
10644: PPUSH
10645: CALL_OW 50
// preparemechanic ( sex_male , aratt0 ) ;
10649: LD_INT 1
10651: PPUSH
10652: LD_EXP 20
10656: PPUSH
10657: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
10661: CALL_OW 44
10665: PPUSH
10666: LD_VAR 0 1
10670: PPUSH
10671: CALL_OW 52
// tmp1 = [ tmp ] ;
10675: LD_ADDR_VAR 0 2
10679: PUSH
10680: LD_VAR 0 1
10684: PUSH
10685: EMPTY
10686: LIST
10687: ST_TO_ADDR
// vc_chassis = arattv1_ch ;
10688: LD_ADDR_OWVAR 37
10692: PUSH
10693: LD_EXP 27
10697: ST_TO_ADDR
// vc_weapon = arattv1_wp ;
10698: LD_ADDR_OWVAR 40
10702: PUSH
10703: LD_EXP 28
10707: ST_TO_ADDR
// tmp = createvehicle ;
10708: LD_ADDR_VAR 0 1
10712: PUSH
10713: CALL_OW 45
10717: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
10718: LD_VAR 0 1
10722: PPUSH
10723: LD_INT 4
10725: PPUSH
10726: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
10730: LD_VAR 0 1
10734: PPUSH
10735: LD_INT 170
10737: PPUSH
10738: LD_INT 69
10740: PPUSH
10741: LD_INT 6
10743: PPUSH
10744: LD_INT 0
10746: PPUSH
10747: CALL_OW 50
// preparemechanic ( sex_male , aratt1 ) ;
10751: LD_INT 1
10753: PPUSH
10754: LD_EXP 21
10758: PPUSH
10759: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
10763: CALL_OW 44
10767: PPUSH
10768: LD_VAR 0 1
10772: PPUSH
10773: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
10777: LD_ADDR_VAR 0 2
10781: PUSH
10782: LD_VAR 0 2
10786: PUSH
10787: LD_VAR 0 1
10791: PUSH
10792: EMPTY
10793: LIST
10794: ADD
10795: ST_TO_ADDR
// vc_chassis = arattv2_ch ;
10796: LD_ADDR_OWVAR 37
10800: PUSH
10801: LD_EXP 29
10805: ST_TO_ADDR
// vc_weapon = arattv2_wp ;
10806: LD_ADDR_OWVAR 40
10810: PUSH
10811: LD_EXP 30
10815: ST_TO_ADDR
// tmp = createvehicle ;
10816: LD_ADDR_VAR 0 1
10820: PUSH
10821: CALL_OW 45
10825: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
10826: LD_VAR 0 1
10830: PPUSH
10831: LD_INT 4
10833: PPUSH
10834: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
10838: LD_VAR 0 1
10842: PPUSH
10843: LD_INT 170
10845: PPUSH
10846: LD_INT 69
10848: PPUSH
10849: LD_INT 6
10851: PPUSH
10852: LD_INT 0
10854: PPUSH
10855: CALL_OW 50
// preparemechanic ( sex_male , aratt2 ) ;
10859: LD_INT 1
10861: PPUSH
10862: LD_EXP 22
10866: PPUSH
10867: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
10871: CALL_OW 44
10875: PPUSH
10876: LD_VAR 0 1
10880: PPUSH
10881: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
10885: LD_ADDR_VAR 0 2
10889: PUSH
10890: LD_VAR 0 2
10894: PUSH
10895: LD_VAR 0 1
10899: PUSH
10900: EMPTY
10901: LIST
10902: ADD
10903: ST_TO_ADDR
// vc_chassis = arattv3_ch ;
10904: LD_ADDR_OWVAR 37
10908: PUSH
10909: LD_EXP 31
10913: ST_TO_ADDR
// vc_weapon = arattv3_wp ;
10914: LD_ADDR_OWVAR 40
10918: PUSH
10919: LD_EXP 32
10923: ST_TO_ADDR
// tmp = createvehicle ;
10924: LD_ADDR_VAR 0 1
10928: PUSH
10929: CALL_OW 45
10933: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
10934: LD_VAR 0 1
10938: PPUSH
10939: LD_INT 4
10941: PPUSH
10942: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
10946: LD_VAR 0 1
10950: PPUSH
10951: LD_INT 170
10953: PPUSH
10954: LD_INT 69
10956: PPUSH
10957: LD_INT 6
10959: PPUSH
10960: LD_INT 0
10962: PPUSH
10963: CALL_OW 50
// preparemechanic ( sex_male , aratt3 ) ;
10967: LD_INT 1
10969: PPUSH
10970: LD_EXP 23
10974: PPUSH
10975: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
10979: CALL_OW 44
10983: PPUSH
10984: LD_VAR 0 1
10988: PPUSH
10989: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
10993: LD_ADDR_VAR 0 2
10997: PUSH
10998: LD_VAR 0 2
11002: PUSH
11003: LD_VAR 0 1
11007: PUSH
11008: EMPTY
11009: LIST
11010: ADD
11011: ST_TO_ADDR
// vc_chassis = arattv4_ch ;
11012: LD_ADDR_OWVAR 37
11016: PUSH
11017: LD_EXP 33
11021: ST_TO_ADDR
// vc_weapon = arattv4_wp ;
11022: LD_ADDR_OWVAR 40
11026: PUSH
11027: LD_EXP 34
11031: ST_TO_ADDR
// tmp = createvehicle ;
11032: LD_ADDR_VAR 0 1
11036: PUSH
11037: CALL_OW 45
11041: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
11042: LD_VAR 0 1
11046: PPUSH
11047: LD_INT 4
11049: PPUSH
11050: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
11054: LD_VAR 0 1
11058: PPUSH
11059: LD_INT 170
11061: PPUSH
11062: LD_INT 69
11064: PPUSH
11065: LD_INT 6
11067: PPUSH
11068: LD_INT 0
11070: PPUSH
11071: CALL_OW 50
// preparemechanic ( sex_male , aratt4 ) ;
11075: LD_INT 1
11077: PPUSH
11078: LD_EXP 24
11082: PPUSH
11083: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11087: CALL_OW 44
11091: PPUSH
11092: LD_VAR 0 1
11096: PPUSH
11097: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
11101: LD_ADDR_VAR 0 2
11105: PUSH
11106: LD_VAR 0 2
11110: PUSH
11111: LD_VAR 0 1
11115: PUSH
11116: EMPTY
11117: LIST
11118: ADD
11119: ST_TO_ADDR
// if difficulty = 3 then
11120: LD_OWVAR 67
11124: PUSH
11125: LD_INT 3
11127: EQUAL
11128: IFFALSE 11238
// begin vc_chassis = arattv4_ch ;
11130: LD_ADDR_OWVAR 37
11134: PUSH
11135: LD_EXP 33
11139: ST_TO_ADDR
// vc_weapon = arattv4_wp ;
11140: LD_ADDR_OWVAR 40
11144: PUSH
11145: LD_EXP 34
11149: ST_TO_ADDR
// tmp = createvehicle ;
11150: LD_ADDR_VAR 0 1
11154: PUSH
11155: CALL_OW 45
11159: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
11160: LD_VAR 0 1
11164: PPUSH
11165: LD_INT 4
11167: PPUSH
11168: CALL_OW 233
// placeunitxyr ( tmp , 170 , 69 , 6 , false ) ;
11172: LD_VAR 0 1
11176: PPUSH
11177: LD_INT 170
11179: PPUSH
11180: LD_INT 69
11182: PPUSH
11183: LD_INT 6
11185: PPUSH
11186: LD_INT 0
11188: PPUSH
11189: CALL_OW 50
// preparemechanic ( sex_male , aratt4 ) ;
11193: LD_INT 1
11195: PPUSH
11196: LD_EXP 24
11200: PPUSH
11201: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11205: CALL_OW 44
11209: PPUSH
11210: LD_VAR 0 1
11214: PPUSH
11215: CALL_OW 52
// tmp1 = tmp1 ^ [ tmp ] ;
11219: LD_ADDR_VAR 0 2
11223: PUSH
11224: LD_VAR 0 2
11228: PUSH
11229: LD_VAR 0 1
11233: PUSH
11234: EMPTY
11235: LIST
11236: ADD
11237: ST_TO_ADDR
// end ; comagressivemove ( tmp1 , 82 , 62 ) ;
11238: LD_VAR 0 2
11242: PPUSH
11243: LD_INT 82
11245: PPUSH
11246: LD_INT 62
11248: PPUSH
11249: CALL_OW 114
// while unitfilter ( tmp1 , [ [ f_ok ] ] ) diff filterunitsinarea ( wayp00 , [ [ f_side , ar ] , [ f_ok ] ] ) do
11253: LD_VAR 0 2
11257: PPUSH
11258: LD_INT 50
11260: PUSH
11261: EMPTY
11262: LIST
11263: PUSH
11264: EMPTY
11265: LIST
11266: PPUSH
11267: CALL_OW 72
11271: PUSH
11272: LD_INT 11
11274: PPUSH
11275: LD_INT 22
11277: PUSH
11278: LD_EXP 3
11282: PUSH
11283: EMPTY
11284: LIST
11285: LIST
11286: PUSH
11287: LD_INT 50
11289: PUSH
11290: EMPTY
11291: LIST
11292: PUSH
11293: EMPTY
11294: LIST
11295: LIST
11296: PPUSH
11297: CALL_OW 70
11301: DIFF
11302: IFFALSE 11313
// wait ( 0 0$1 ) ;
11304: LD_INT 35
11306: PPUSH
11307: CALL_OW 67
11311: GO 11253
// attida = mcattack ( 100 , regid , tmp1 , [ mc_no_stop ] ) ;
11313: LD_ADDR_LOC 36
11317: PUSH
11318: LD_INT 100
11320: PPUSH
11321: LD_LOC 30
11325: PPUSH
11326: LD_VAR 0 2
11330: PPUSH
11331: LD_INT 10
11333: PUSH
11334: EMPTY
11335: LIST
11336: PPUSH
11337: CALL_OW 402
11341: ST_TO_ADDR
// end ;
11342: PPOPN 2
11344: END
// var attidb ; export attno ; every 0 0$10 + 10 10$0 marked 11 do var tmp , tmp1 , tmp2 , ch , wp , ctrl , neco ;
11345: GO 11347
11347: DISABLE
11348: LD_INT 0
11350: PPUSH
11351: PPUSH
11352: PPUSH
11353: PPUSH
11354: PPUSH
11355: PPUSH
11356: PPUSH
// begin go4it = go4it - 1 ;
11357: LD_ADDR_EXP 47
11361: PUSH
11362: LD_EXP 47
11366: PUSH
11367: LD_INT 1
11369: MINUS
11370: ST_TO_ADDR
// if not go4it then
11371: LD_EXP 47
11375: NOT
11376: IFFALSE 12335
// begin if debug then
11378: LD_EXP 44
11382: IFFALSE 11391
// msg ( nejaky ten utok ) ;
11384: LD_STRING nejaky ten utok
11386: PPUSH
11387: CALL_OW 100
// attno = attno + 1 ;
11391: LD_ADDR_EXP 60
11395: PUSH
11396: LD_EXP 60
11400: PUSH
11401: LD_INT 1
11403: PLUS
11404: ST_TO_ADDR
// uc_side = ar ;
11405: LD_ADDR_OWVAR 20
11409: PUSH
11410: LD_EXP 3
11414: ST_TO_ADDR
// uc_nation = nation_arabian ;
11415: LD_ADDR_OWVAR 21
11419: PUSH
11420: LD_INT 2
11422: ST_TO_ADDR
// case difficulty of 1 :
11423: LD_OWVAR 67
11427: PUSH
11428: LD_INT 1
11430: DOUBLE
11431: EQUAL
11432: IFTRUE 11436
11434: GO 11497
11436: POP
// begin ch = [ ar_half_tracked ] ;
11437: LD_ADDR_VAR 0 4
11441: PUSH
11442: LD_INT 14
11444: PUSH
11445: EMPTY
11446: LIST
11447: ST_TO_ADDR
// wp = [ ar_gun , ar_gun , ar_gun , ar_rocket_launcher , ar_flame_thrower , ar_gatling_gun , ar_gatling_gun , ar_gatling_gun , ar_double_machine_gun , ar_double_machine_gun ] ;
11448: LD_ADDR_VAR 0 5
11452: PUSH
11453: LD_INT 27
11455: PUSH
11456: LD_INT 27
11458: PUSH
11459: LD_INT 27
11461: PUSH
11462: LD_INT 28
11464: PUSH
11465: LD_INT 26
11467: PUSH
11468: LD_INT 25
11470: PUSH
11471: LD_INT 25
11473: PUSH
11474: LD_INT 25
11476: PUSH
11477: LD_INT 24
11479: PUSH
11480: LD_INT 24
11482: PUSH
11483: EMPTY
11484: LIST
11485: LIST
11486: LIST
11487: LIST
11488: LIST
11489: LIST
11490: LIST
11491: LIST
11492: LIST
11493: LIST
11494: ST_TO_ADDR
// end ; 2 :
11495: GO 11652
11497: LD_INT 2
11499: DOUBLE
11500: EQUAL
11501: IFTRUE 11505
11503: GO 11570
11505: POP
// begin ch = [ ar_half_tracked , ar_half_tracked ] ;
11506: LD_ADDR_VAR 0 4
11510: PUSH
11511: LD_INT 14
11513: PUSH
11514: LD_INT 14
11516: PUSH
11517: EMPTY
11518: LIST
11519: LIST
11520: ST_TO_ADDR
// wp = [ ar_gun , ar_gun , ar_gun , ar_rocket_launcher , ar_flame_thrower , ar_flame_thrower , ar_gatling_gun , ar_gun , ar_rocket_launcher , ar_flame_thrower ] ;
11521: LD_ADDR_VAR 0 5
11525: PUSH
11526: LD_INT 27
11528: PUSH
11529: LD_INT 27
11531: PUSH
11532: LD_INT 27
11534: PUSH
11535: LD_INT 28
11537: PUSH
11538: LD_INT 26
11540: PUSH
11541: LD_INT 26
11543: PUSH
11544: LD_INT 25
11546: PUSH
11547: LD_INT 27
11549: PUSH
11550: LD_INT 28
11552: PUSH
11553: LD_INT 26
11555: PUSH
11556: EMPTY
11557: LIST
11558: LIST
11559: LIST
11560: LIST
11561: LIST
11562: LIST
11563: LIST
11564: LIST
11565: LIST
11566: LIST
11567: ST_TO_ADDR
// end ; 3 :
11568: GO 11652
11570: LD_INT 3
11572: DOUBLE
11573: EQUAL
11574: IFTRUE 11578
11576: GO 11651
11578: POP
// begin ch = [ ar_half_tracked , ar_half_tracked , ar_half_tracked , ar_half_tracked ] ;
11579: LD_ADDR_VAR 0 4
11583: PUSH
11584: LD_INT 14
11586: PUSH
11587: LD_INT 14
11589: PUSH
11590: LD_INT 14
11592: PUSH
11593: LD_INT 14
11595: PUSH
11596: EMPTY
11597: LIST
11598: LIST
11599: LIST
11600: LIST
11601: ST_TO_ADDR
// wp = [ ar_gun , ar_gun , ar_gun , ar_rocket_launcher , ar_flame_thrower , ar_flame_thrower , ar_flame_thrower , ar_rocket_launcher , ar_rocket_launcher , ar_flame_thrower ] ;
11602: LD_ADDR_VAR 0 5
11606: PUSH
11607: LD_INT 27
11609: PUSH
11610: LD_INT 27
11612: PUSH
11613: LD_INT 27
11615: PUSH
11616: LD_INT 28
11618: PUSH
11619: LD_INT 26
11621: PUSH
11622: LD_INT 26
11624: PUSH
11625: LD_INT 26
11627: PUSH
11628: LD_INT 28
11630: PUSH
11631: LD_INT 28
11633: PUSH
11634: LD_INT 26
11636: PUSH
11637: EMPTY
11638: LIST
11639: LIST
11640: LIST
11641: LIST
11642: LIST
11643: LIST
11644: LIST
11645: LIST
11646: LIST
11647: LIST
11648: ST_TO_ADDR
// end ; end ;
11649: GO 11652
11651: POP
// vc_control = control_manual ;
11652: LD_ADDR_OWVAR 38
11656: PUSH
11657: LD_INT 1
11659: ST_TO_ADDR
// vc_engine = engine_siberite ;
11660: LD_ADDR_OWVAR 39
11664: PUSH
11665: LD_INT 3
11667: ST_TO_ADDR
// tmp1 = [ ] ;
11668: LD_ADDR_VAR 0 2
11672: PUSH
11673: EMPTY
11674: ST_TO_ADDR
// case difficulty of 1 :
11675: LD_OWVAR 67
11679: PUSH
11680: LD_INT 1
11682: DOUBLE
11683: EQUAL
11684: IFTRUE 11688
11686: GO 11699
11688: POP
// neco = 1 ; 2 :
11689: LD_ADDR_VAR 0 7
11693: PUSH
11694: LD_INT 1
11696: ST_TO_ADDR
11697: GO 11738
11699: LD_INT 2
11701: DOUBLE
11702: EQUAL
11703: IFTRUE 11707
11705: GO 11718
11707: POP
// neco = 2 ; 3 :
11708: LD_ADDR_VAR 0 7
11712: PUSH
11713: LD_INT 2
11715: ST_TO_ADDR
11716: GO 11738
11718: LD_INT 3
11720: DOUBLE
11721: EQUAL
11722: IFTRUE 11726
11724: GO 11737
11726: POP
// neco = 4 ; end ;
11727: LD_ADDR_VAR 0 7
11731: PUSH
11732: LD_INT 4
11734: ST_TO_ADDR
11735: GO 11738
11737: POP
// if attno > 3 then
11738: LD_EXP 60
11742: PUSH
11743: LD_INT 3
11745: GREATER
11746: IFFALSE 11772
// neco = neco + ( ( attno - 3 ) div 2 ) ;
11748: LD_ADDR_VAR 0 7
11752: PUSH
11753: LD_VAR 0 7
11757: PUSH
11758: LD_EXP 60
11762: PUSH
11763: LD_INT 3
11765: MINUS
11766: PUSH
11767: LD_INT 2
11769: DIV
11770: PLUS
11771: ST_TO_ADDR
// for tmp2 = 1 to 2 + neco do
11772: LD_ADDR_VAR 0 3
11776: PUSH
11777: DOUBLE
11778: LD_INT 1
11780: DEC
11781: ST_TO_ADDR
11782: LD_INT 2
11784: PUSH
11785: LD_VAR 0 7
11789: PLUS
11790: PUSH
11791: FOR_TO
11792: IFFALSE 12014
// begin vc_chassis = ch [ rand ( 1 , 0 + ch ) ] ;
11794: LD_ADDR_OWVAR 37
11798: PUSH
11799: LD_VAR 0 4
11803: PUSH
11804: LD_INT 1
11806: PPUSH
11807: LD_INT 0
11809: PUSH
11810: LD_VAR 0 4
11814: PLUS
11815: PPUSH
11816: CALL_OW 12
11820: ARRAY
11821: ST_TO_ADDR
// vc_weapon = wp [ rand ( 1 , 0 + wp ) ] ;
11822: LD_ADDR_OWVAR 40
11826: PUSH
11827: LD_VAR 0 5
11831: PUSH
11832: LD_INT 1
11834: PPUSH
11835: LD_INT 0
11837: PUSH
11838: LD_VAR 0 5
11842: PLUS
11843: PPUSH
11844: CALL_OW 12
11848: ARRAY
11849: ST_TO_ADDR
// ctrl = 0 ;
11850: LD_ADDR_VAR 0 6
11854: PUSH
11855: LD_INT 0
11857: ST_TO_ADDR
// if prob ( 33 ) then
11858: LD_INT 33
11860: PPUSH
11861: CALL_OW 13
11865: IFFALSE 11875
// ctrl = 1 ;
11867: LD_ADDR_VAR 0 6
11871: PUSH
11872: LD_INT 1
11874: ST_TO_ADDR
// if ctrl then
11875: LD_VAR 0 6
11879: IFFALSE 11889
// vc_control = control_apeman ;
11881: LD_ADDR_OWVAR 38
11885: PUSH
11886: LD_INT 5
11888: ST_TO_ADDR
// tmp = createvehicle ;
11889: LD_ADDR_VAR 0 1
11893: PUSH
11894: CALL_OW 45
11898: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
11899: LD_VAR 0 1
11903: PPUSH
11904: LD_INT 4
11906: PPUSH
11907: CALL_OW 233
// placeunitxyr ( tmp , 187 , 109 , 6 , false ) ;
11911: LD_VAR 0 1
11915: PPUSH
11916: LD_INT 187
11918: PPUSH
11919: LD_INT 109
11921: PPUSH
11922: LD_INT 6
11924: PPUSH
11925: LD_INT 0
11927: PPUSH
11928: CALL_OW 50
// if not ctrl then
11932: LD_VAR 0 6
11936: NOT
11937: IFFALSE 11985
// begin preparemechanic ( sex_male , rand ( 3 + difficulty , 5 + difficulty ) ) ;
11939: LD_INT 1
11941: PPUSH
11942: LD_INT 3
11944: PUSH
11945: LD_OWVAR 67
11949: PLUS
11950: PPUSH
11951: LD_INT 5
11953: PUSH
11954: LD_OWVAR 67
11958: PLUS
11959: PPUSH
11960: CALL_OW 12
11964: PPUSH
11965: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11969: CALL_OW 44
11973: PPUSH
11974: LD_VAR 0 1
11978: PPUSH
11979: CALL_OW 52
// end else
11983: GO 11993
// vc_control = control_manual ;
11985: LD_ADDR_OWVAR 38
11989: PUSH
11990: LD_INT 1
11992: ST_TO_ADDR
// tmp1 = tmp1 ^ [ tmp ] ;
11993: LD_ADDR_VAR 0 2
11997: PUSH
11998: LD_VAR 0 2
12002: PUSH
12003: LD_VAR 0 1
12007: PUSH
12008: EMPTY
12009: LIST
12010: ADD
12011: ST_TO_ADDR
// end ;
12012: GO 11791
12014: POP
12015: POP
// vc_control = control_apeman ;
12016: LD_ADDR_OWVAR 38
12020: PUSH
12021: LD_INT 5
12023: ST_TO_ADDR
// if attno > 3 then
12024: LD_EXP 60
12028: PUSH
12029: LD_INT 3
12031: GREATER
12032: IFFALSE 12194
// begin if difficulty > 1 then
12034: LD_OWVAR 67
12038: PUSH
12039: LD_INT 1
12041: GREATER
12042: IFFALSE 12122
// begin vc_chassis = ar_half_tracked ;
12044: LD_ADDR_OWVAR 37
12048: PUSH
12049: LD_INT 14
12051: ST_TO_ADDR
// vc_weapon = ar_selfpropelled_bomb ;
12052: LD_ADDR_OWVAR 40
12056: PUSH
12057: LD_INT 29
12059: ST_TO_ADDR
// tmp = createvehicle ;
12060: LD_ADDR_VAR 0 1
12064: PUSH
12065: CALL_OW 45
12069: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
12070: LD_VAR 0 1
12074: PPUSH
12075: LD_INT 4
12077: PPUSH
12078: CALL_OW 233
// placeunitxyr ( tmp , 187 , 109 , 7 , false ) ;
12082: LD_VAR 0 1
12086: PPUSH
12087: LD_INT 187
12089: PPUSH
12090: LD_INT 109
12092: PPUSH
12093: LD_INT 7
12095: PPUSH
12096: LD_INT 0
12098: PPUSH
12099: CALL_OW 50
// tmp1 = tmp1 ^ [ tmp ] ;
12103: LD_ADDR_VAR 0 2
12107: PUSH
12108: LD_VAR 0 2
12112: PUSH
12113: LD_VAR 0 1
12117: PUSH
12118: EMPTY
12119: LIST
12120: ADD
12121: ST_TO_ADDR
// end ; if difficulty > 2 then
12122: LD_OWVAR 67
12126: PUSH
12127: LD_INT 2
12129: GREATER
12130: IFFALSE 12194
// begin tmp = createvehicle ;
12132: LD_ADDR_VAR 0 1
12136: PUSH
12137: CALL_OW 45
12141: ST_TO_ADDR
// setdir ( tmp , 4 ) ;
12142: LD_VAR 0 1
12146: PPUSH
12147: LD_INT 4
12149: PPUSH
12150: CALL_OW 233
// placeunitxyr ( tmp , 187 , 109 , 7 , false ) ;
12154: LD_VAR 0 1
12158: PPUSH
12159: LD_INT 187
12161: PPUSH
12162: LD_INT 109
12164: PPUSH
12165: LD_INT 7
12167: PPUSH
12168: LD_INT 0
12170: PPUSH
12171: CALL_OW 50
// tmp1 = tmp1 ^ [ tmp ] ;
12175: LD_ADDR_VAR 0 2
12179: PUSH
12180: LD_VAR 0 2
12184: PUSH
12185: LD_VAR 0 1
12189: PUSH
12190: EMPTY
12191: LIST
12192: ADD
12193: ST_TO_ADDR
// end ; end ; comagressivemove ( tmp1 , 82 , 62 ) ;
12194: LD_VAR 0 2
12198: PPUSH
12199: LD_INT 82
12201: PPUSH
12202: LD_INT 62
12204: PPUSH
12205: CALL_OW 114
// while unitfilter ( tmp1 , [ [ f_ok ] ] ) diff filterunitsinarea ( wayp00 , [ [ f_side , ar ] , [ f_ok ] ] ) do
12209: LD_VAR 0 2
12213: PPUSH
12214: LD_INT 50
12216: PUSH
12217: EMPTY
12218: LIST
12219: PUSH
12220: EMPTY
12221: LIST
12222: PPUSH
12223: CALL_OW 72
12227: PUSH
12228: LD_INT 11
12230: PPUSH
12231: LD_INT 22
12233: PUSH
12234: LD_EXP 3
12238: PUSH
12239: EMPTY
12240: LIST
12241: LIST
12242: PUSH
12243: LD_INT 50
12245: PUSH
12246: EMPTY
12247: LIST
12248: PUSH
12249: EMPTY
12250: LIST
12251: LIST
12252: PPUSH
12253: CALL_OW 70
12257: DIFF
12258: IFFALSE 12269
// wait ( 0 0$1 ) ;
12260: LD_INT 35
12262: PPUSH
12263: CALL_OW 67
12267: GO 12209
// attidb = mcattack ( 100 , regid , tmp1 , [ mc_no_stop ] ) ;
12269: LD_ADDR_LOC 37
12273: PUSH
12274: LD_INT 100
12276: PPUSH
12277: LD_LOC 30
12281: PPUSH
12282: LD_VAR 0 2
12286: PPUSH
12287: LD_INT 10
12289: PUSH
12290: EMPTY
12291: LIST
12292: PPUSH
12293: CALL_OW 402
12297: ST_TO_ADDR
// go4it = rand ( delay2 * 3 , 108 - 18 * difficulty ) ;
12298: LD_ADDR_EXP 47
12302: PUSH
12303: LD_EXP 46
12307: PUSH
12308: LD_INT 3
12310: MUL
12311: PPUSH
12312: LD_INT 108
12314: PUSH
12315: LD_INT 18
12317: PUSH
12318: LD_OWVAR 67
12322: MUL
12323: MINUS
12324: PPUSH
12325: CALL_OW 12
12329: ST_TO_ADDR
// enable ( 12 ) ;
12330: LD_INT 12
12332: ENABLE_MARKED
// end else
12333: GO 12336
// enable ;
12335: ENABLE
// end ;
12336: PPOPN 7
12338: END
// every 0 0$3.3 + 1 marked 12 do
12339: GO 12341
12341: DISABLE
// begin if not unitfilter ( getmcunits ( attidb ) , [ f_or , [ f_occupied ] , [ f_type , unit_human ] ] ) then
12342: LD_LOC 37
12346: PPUSH
12347: CALL_OW 389
12351: PPUSH
12352: LD_INT 2
12354: PUSH
12355: LD_INT 59
12357: PUSH
12358: EMPTY
12359: LIST
12360: PUSH
12361: LD_INT 21
12363: PUSH
12364: LD_INT 1
12366: PUSH
12367: EMPTY
12368: LIST
12369: LIST
12370: PUSH
12371: EMPTY
12372: LIST
12373: LIST
12374: LIST
12375: PPUSH
12376: CALL_OW 72
12380: NOT
12381: IFFALSE 12397
// begin killmc ( attidb ) ;
12383: LD_LOC 37
12387: PPUSH
12388: CALL_OW 387
// enable ( 11 ) ;
12392: LD_INT 11
12394: ENABLE_MARKED
// end else
12395: GO 12398
// enable ;
12397: ENABLE
// end ; end_of_file
12398: END
// every 0 0$2 + 0 0$0.1 do
12399: GO 12401
12401: DISABLE
// begin if FilterAllUnits ( [ [ f_side , 1 ] , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_soldier ] , [ f_class , class_apeman_kamikaze ] ] ] ) > FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_human ] , [ f_not , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_soldier ] , [ f_class , class_apeman_kamikaze ] ] ] ] ) then
12402: LD_INT 22
12404: PUSH
12405: LD_INT 1
12407: PUSH
12408: EMPTY
12409: LIST
12410: LIST
12411: PUSH
12412: LD_INT 2
12414: PUSH
12415: LD_INT 25
12417: PUSH
12418: LD_INT 12
12420: PUSH
12421: EMPTY
12422: LIST
12423: LIST
12424: PUSH
12425: LD_INT 25
12427: PUSH
12428: LD_INT 16
12430: PUSH
12431: EMPTY
12432: LIST
12433: LIST
12434: PUSH
12435: LD_INT 25
12437: PUSH
12438: LD_INT 15
12440: PUSH
12441: EMPTY
12442: LIST
12443: LIST
12444: PUSH
12445: LD_INT 25
12447: PUSH
12448: LD_INT 17
12450: PUSH
12451: EMPTY
12452: LIST
12453: LIST
12454: PUSH
12455: EMPTY
12456: LIST
12457: LIST
12458: LIST
12459: LIST
12460: LIST
12461: PUSH
12462: EMPTY
12463: LIST
12464: LIST
12465: PPUSH
12466: CALL_OW 69
12470: PUSH
12471: LD_INT 22
12473: PUSH
12474: LD_INT 1
12476: PUSH
12477: EMPTY
12478: LIST
12479: LIST
12480: PUSH
12481: LD_INT 21
12483: PUSH
12484: LD_INT 1
12486: PUSH
12487: EMPTY
12488: LIST
12489: LIST
12490: PUSH
12491: LD_INT 3
12493: PUSH
12494: LD_INT 2
12496: PUSH
12497: LD_INT 25
12499: PUSH
12500: LD_INT 12
12502: PUSH
12503: EMPTY
12504: LIST
12505: LIST
12506: PUSH
12507: LD_INT 25
12509: PUSH
12510: LD_INT 16
12512: PUSH
12513: EMPTY
12514: LIST
12515: LIST
12516: PUSH
12517: LD_INT 25
12519: PUSH
12520: LD_INT 15
12522: PUSH
12523: EMPTY
12524: LIST
12525: LIST
12526: PUSH
12527: LD_INT 25
12529: PUSH
12530: LD_INT 17
12532: PUSH
12533: EMPTY
12534: LIST
12535: LIST
12536: PUSH
12537: EMPTY
12538: LIST
12539: LIST
12540: LIST
12541: LIST
12542: LIST
12543: PUSH
12544: EMPTY
12545: LIST
12546: LIST
12547: PUSH
12548: EMPTY
12549: LIST
12550: LIST
12551: LIST
12552: PPUSH
12553: CALL_OW 69
12557: GREATER
12558: IFFALSE 12569
// begin SetAchievement ( ACH_POTA ) ;
12560: LD_STRING ACH_POTA
12562: PPUSH
12563: CALL_OW 543
// exit ;
12567: GO 12570
// end ; enable ;
12569: ENABLE
// end ;
12570: END
// export function SA_OnSiberiteRocketExploded ( siberite_rocket_vehicle , target_x , target_y ) ; begin
12571: LD_INT 0
12573: PPUSH
// if GetSide ( siberite_rocket_vehicle ) = 1 then
12574: LD_VAR 0 1
12578: PPUSH
12579: CALL_OW 255
12583: PUSH
12584: LD_INT 1
12586: EQUAL
12587: IFFALSE 12596
// SetAchievement ( ACH_RAD ) ;
12589: LD_STRING ACH_RAD
12591: PPUSH
12592: CALL_OW 543
// end ;
12596: LD_VAR 0 4
12600: RET
// export function SA_OnBurlakKilled ; begin
12601: LD_INT 0
12603: PPUSH
// SetAchievement ( ACH_ADV ) ;
12604: LD_STRING ACH_ADV
12606: PPUSH
12607: CALL_OW 543
// end ; end_of_file
12611: LD_VAR 0 1
12615: RET
// export function SA_EndMission ( campaignNumber , missionNumber , medal1 , medal2 , medal3 ) ; var achiv ; begin
12616: LD_INT 0
12618: PPUSH
12619: PPUSH
// if not missionNumber then
12620: LD_VAR 0 2
12624: NOT
12625: IFFALSE 12629
// exit ;
12627: GO 12759
// achiv := false ;
12629: LD_ADDR_VAR 0 7
12633: PUSH
12634: LD_INT 0
12636: ST_TO_ADDR
// case campaignNumber of 1 :
12637: LD_VAR 0 1
12641: PUSH
12642: LD_INT 1
12644: DOUBLE
12645: EQUAL
12646: IFTRUE 12650
12648: GO 12661
12650: POP
// achiv := ACH_GOTA ; 2 :
12651: LD_ADDR_VAR 0 7
12655: PUSH
12656: LD_STRING ACH_GOTA
12658: ST_TO_ADDR
12659: GO 12711
12661: LD_INT 2
12663: DOUBLE
12664: EQUAL
12665: IFTRUE 12669
12667: GO 12672
12669: POP
// ; 3 :
12670: GO 12711
12672: LD_INT 3
12674: DOUBLE
12675: EQUAL
12676: IFTRUE 12680
12678: GO 12691
12680: POP
// achiv := ACH_MOTSU ; 4 :
12681: LD_ADDR_VAR 0 7
12685: PUSH
12686: LD_STRING ACH_MOTSU
12688: ST_TO_ADDR
12689: GO 12711
12691: LD_INT 4
12693: DOUBLE
12694: EQUAL
12695: IFTRUE 12699
12697: GO 12710
12699: POP
// achiv := ACH_LOP ; end ;
12700: LD_ADDR_VAR 0 7
12704: PUSH
12705: LD_STRING ACH_LOP
12707: ST_TO_ADDR
12708: GO 12711
12710: POP
// if Difficulty = 3 and achiv and medal1 and medal2 and medal3 then
12711: LD_OWVAR 67
12715: PUSH
12716: LD_INT 3
12718: EQUAL
12719: PUSH
12720: LD_VAR 0 7
12724: AND
12725: PUSH
12726: LD_VAR 0 3
12730: AND
12731: PUSH
12732: LD_VAR 0 4
12736: AND
12737: PUSH
12738: LD_VAR 0 5
12742: AND
12743: IFFALSE 12759
// SetAchievementEX ( achiv , missionNumber ) ;
12745: LD_VAR 0 7
12749: PPUSH
12750: LD_VAR 0 2
12754: PPUSH
12755: CALL_OW 564
// end ;
12759: LD_VAR 0 6
12763: RET
// export function SA_BehemothConstructed ; begin
12764: LD_INT 0
12766: PPUSH
// SetAchievement ( ACH_SMC ) ;
12767: LD_STRING ACH_SMC
12769: PPUSH
12770: CALL_OW 543
// end ;
12774: LD_VAR 0 1
12778: RET
// on CustomCommand ( p1 , p2 , p3 , p4 , p5 , p6 ) do begin case p2 of 1 :
12779: LD_VAR 0 2
12783: PUSH
12784: LD_INT 1
12786: DOUBLE
12787: EQUAL
12788: IFTRUE 12792
12790: GO 12799
12792: POP
// HackUnlimitedResources ; 2 :
12793: CALL 12983 0 0
12797: GO 12980
12799: LD_INT 2
12801: DOUBLE
12802: EQUAL
12803: IFTRUE 12807
12805: GO 12814
12807: POP
// HackSetLevel10 ; 3 :
12808: CALL 13116 0 0
12812: GO 12980
12814: LD_INT 3
12816: DOUBLE
12817: EQUAL
12818: IFTRUE 12822
12820: GO 12829
12822: POP
// HackSetLevel10YourUnits ; 4 :
12823: CALL 13201 0 0
12827: GO 12980
12829: LD_INT 4
12831: DOUBLE
12832: EQUAL
12833: IFTRUE 12837
12835: GO 12859
12837: POP
// HackSpawnHuman ( p3 , p4 , p5 ) ; 5 :
12838: LD_VAR 0 3
12842: PPUSH
12843: LD_VAR 0 4
12847: PPUSH
12848: LD_VAR 0 5
12852: PPUSH
12853: CALL 13291 0 3
12857: GO 12980
12859: LD_INT 5
12861: DOUBLE
12862: EQUAL
12863: IFTRUE 12867
12865: GO 12874
12867: POP
// HackSpawnVehicle ; 6 :
12868: CALL 13352 0 0
12872: GO 12980
12874: LD_INT 6
12876: DOUBLE
12877: EQUAL
12878: IFTRUE 12882
12880: GO 12889
12882: POP
// HackInvincible ; 7 :
12883: CALL 13898 0 0
12887: GO 12980
12889: LD_INT 7
12891: DOUBLE
12892: EQUAL
12893: IFTRUE 12897
12895: GO 12904
12897: POP
// HackInvisible ; 8 :
12898: CALL 14009 0 0
12902: GO 12980
12904: LD_INT 8
12906: DOUBLE
12907: EQUAL
12908: IFTRUE 12912
12910: GO 12919
12912: POP
// HackChangeYourSide ; 9 :
12913: CALL 14066 0 0
12917: GO 12980
12919: LD_INT 9
12921: DOUBLE
12922: EQUAL
12923: IFTRUE 12927
12925: GO 12934
12927: POP
// HackChangeUnitSide ; 10 :
12928: CALL 14108 0 0
12932: GO 12980
12934: LD_INT 10
12936: DOUBLE
12937: EQUAL
12938: IFTRUE 12942
12940: GO 12949
12942: POP
// HackFog ; 11 :
12943: CALL 14209 0 0
12947: GO 12980
12949: LD_INT 11
12951: DOUBLE
12952: EQUAL
12953: IFTRUE 12957
12955: GO 12964
12957: POP
// HackApeman ; 12 :
12958: CALL 14224 0 0
12962: GO 12980
12964: LD_INT 12
12966: DOUBLE
12967: EQUAL
12968: IFTRUE 12972
12970: GO 12979
12972: POP
// HackBoom ; end ;
12973: CALL 14309 0 0
12977: GO 12980
12979: POP
// end ;
12980: PPOPN 6
12982: END
// export function HackUnlimitedResources ; var i , j , tmp ; begin
12983: LD_INT 0
12985: PPUSH
12986: PPUSH
12987: PPUSH
12988: PPUSH
// tmp := FilterAllUnits ( [ [ f_side , your_side ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
12989: LD_ADDR_VAR 0 4
12993: PUSH
12994: LD_INT 22
12996: PUSH
12997: LD_OWVAR 2
13001: PUSH
13002: EMPTY
13003: LIST
13004: LIST
13005: PUSH
13006: LD_INT 2
13008: PUSH
13009: LD_INT 30
13011: PUSH
13012: LD_INT 0
13014: PUSH
13015: EMPTY
13016: LIST
13017: LIST
13018: PUSH
13019: LD_INT 30
13021: PUSH
13022: LD_INT 1
13024: PUSH
13025: EMPTY
13026: LIST
13027: LIST
13028: PUSH
13029: EMPTY
13030: LIST
13031: LIST
13032: LIST
13033: PUSH
13034: EMPTY
13035: LIST
13036: LIST
13037: PPUSH
13038: CALL_OW 69
13042: ST_TO_ADDR
// if not tmp then
13043: LD_VAR 0 4
13047: NOT
13048: IFFALSE 13052
// exit ;
13050: GO 13111
// for i in tmp do
13052: LD_ADDR_VAR 0 2
13056: PUSH
13057: LD_VAR 0 4
13061: PUSH
13062: FOR_IN
13063: IFFALSE 13109
// for j = 1 to 3 do
13065: LD_ADDR_VAR 0 3
13069: PUSH
13070: DOUBLE
13071: LD_INT 1
13073: DEC
13074: ST_TO_ADDR
13075: LD_INT 3
13077: PUSH
13078: FOR_TO
13079: IFFALSE 13105
// SetResourceType ( GetBase ( i ) , j , 99999 ) ;
13081: LD_VAR 0 2
13085: PPUSH
13086: CALL_OW 274
13090: PPUSH
13091: LD_VAR 0 3
13095: PPUSH
13096: LD_INT 99999
13098: PPUSH
13099: CALL_OW 277
13103: GO 13078
13105: POP
13106: POP
13107: GO 13062
13109: POP
13110: POP
// end ;
13111: LD_VAR 0 1
13115: RET
// export function HackSetLevel10 ; var i , j ; begin
13116: LD_INT 0
13118: PPUSH
13119: PPUSH
13120: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
13121: LD_ADDR_VAR 0 2
13125: PUSH
13126: LD_INT 21
13128: PUSH
13129: LD_INT 1
13131: PUSH
13132: EMPTY
13133: LIST
13134: LIST
13135: PPUSH
13136: CALL_OW 69
13140: PUSH
13141: FOR_IN
13142: IFFALSE 13194
// if IsSelected ( i ) then
13144: LD_VAR 0 2
13148: PPUSH
13149: CALL_OW 306
13153: IFFALSE 13192
// begin for j := 1 to 4 do
13155: LD_ADDR_VAR 0 3
13159: PUSH
13160: DOUBLE
13161: LD_INT 1
13163: DEC
13164: ST_TO_ADDR
13165: LD_INT 4
13167: PUSH
13168: FOR_TO
13169: IFFALSE 13190
// SetSkill ( i , j , 10 ) ;
13171: LD_VAR 0 2
13175: PPUSH
13176: LD_VAR 0 3
13180: PPUSH
13181: LD_INT 10
13183: PPUSH
13184: CALL_OW 237
13188: GO 13168
13190: POP
13191: POP
// end ;
13192: GO 13141
13194: POP
13195: POP
// end ;
13196: LD_VAR 0 1
13200: RET
// export function HackSetLevel10YourUnits ; var i , j ; begin
13201: LD_INT 0
13203: PPUSH
13204: PPUSH
13205: PPUSH
// for i in FilterAllUnits ( [ [ f_side , your_side ] , [ f_type , unit_human ] ] ) do
13206: LD_ADDR_VAR 0 2
13210: PUSH
13211: LD_INT 22
13213: PUSH
13214: LD_OWVAR 2
13218: PUSH
13219: EMPTY
13220: LIST
13221: LIST
13222: PUSH
13223: LD_INT 21
13225: PUSH
13226: LD_INT 1
13228: PUSH
13229: EMPTY
13230: LIST
13231: LIST
13232: PUSH
13233: EMPTY
13234: LIST
13235: LIST
13236: PPUSH
13237: CALL_OW 69
13241: PUSH
13242: FOR_IN
13243: IFFALSE 13284
// begin for j := 1 to 4 do
13245: LD_ADDR_VAR 0 3
13249: PUSH
13250: DOUBLE
13251: LD_INT 1
13253: DEC
13254: ST_TO_ADDR
13255: LD_INT 4
13257: PUSH
13258: FOR_TO
13259: IFFALSE 13280
// SetSkill ( i , j , 10 ) ;
13261: LD_VAR 0 2
13265: PPUSH
13266: LD_VAR 0 3
13270: PPUSH
13271: LD_INT 10
13273: PPUSH
13274: CALL_OW 237
13278: GO 13258
13280: POP
13281: POP
// end ;
13282: GO 13242
13284: POP
13285: POP
// end ;
13286: LD_VAR 0 1
13290: RET
// export function HackSpawnHuman ( nation , class , skill ) ; begin
13291: LD_INT 0
13293: PPUSH
// uc_side := your_side ;
13294: LD_ADDR_OWVAR 20
13298: PUSH
13299: LD_OWVAR 2
13303: ST_TO_ADDR
// uc_nation := nation ;
13304: LD_ADDR_OWVAR 21
13308: PUSH
13309: LD_VAR 0 1
13313: ST_TO_ADDR
// InitHc ;
13314: CALL_OW 19
// PrepareHuman ( false , class , skill ) ;
13318: LD_INT 0
13320: PPUSH
13321: LD_VAR 0 2
13325: PPUSH
13326: LD_VAR 0 3
13330: PPUSH
13331: CALL_OW 380
// PlaceUnitAnywhere ( CreateHuman , true ) ;
13335: CALL_OW 44
13339: PPUSH
13340: LD_INT 1
13342: PPUSH
13343: CALL_OW 51
// end ;
13347: LD_VAR 0 4
13351: RET
// export function HackSpawnVehicle ; begin
13352: LD_INT 0
13354: PPUSH
// uc_side := your_side ;
13355: LD_ADDR_OWVAR 20
13359: PUSH
13360: LD_OWVAR 2
13364: ST_TO_ADDR
// uc_nation := rand ( 1 , 3 ) ;
13365: LD_ADDR_OWVAR 21
13369: PUSH
13370: LD_INT 1
13372: PPUSH
13373: LD_INT 3
13375: PPUSH
13376: CALL_OW 12
13380: ST_TO_ADDR
// InitVc ;
13381: CALL_OW 20
// case uc_nation of 1 :
13385: LD_OWVAR 21
13389: PUSH
13390: LD_INT 1
13392: DOUBLE
13393: EQUAL
13394: IFTRUE 13398
13396: GO 13542
13398: POP
// begin vc_chassis := [ us_light_wheeled , us_medium_wheeled , us_medium_tracked , us_heavy_tracked , us_morphling ] [ rand ( 1 , 5 ) ] ;
13399: LD_ADDR_OWVAR 37
13403: PUSH
13404: LD_INT 1
13406: PUSH
13407: LD_INT 2
13409: PUSH
13410: LD_INT 3
13412: PUSH
13413: LD_INT 4
13415: PUSH
13416: LD_INT 5
13418: PUSH
13419: EMPTY
13420: LIST
13421: LIST
13422: LIST
13423: LIST
13424: LIST
13425: PUSH
13426: LD_INT 1
13428: PPUSH
13429: LD_INT 5
13431: PPUSH
13432: CALL_OW 12
13436: ARRAY
13437: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
13438: LD_ADDR_OWVAR 39
13442: PUSH
13443: LD_INT 1
13445: PPUSH
13446: LD_INT 3
13448: PPUSH
13449: CALL_OW 12
13453: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_computer ] [ rand ( 1 , 3 ) ] ;
13454: LD_ADDR_OWVAR 38
13458: PUSH
13459: LD_INT 1
13461: PUSH
13462: LD_INT 2
13464: PUSH
13465: LD_INT 3
13467: PUSH
13468: EMPTY
13469: LIST
13470: LIST
13471: LIST
13472: PUSH
13473: LD_INT 1
13475: PPUSH
13476: LD_INT 3
13478: PPUSH
13479: CALL_OW 12
13483: ARRAY
13484: ST_TO_ADDR
// vc_weapon := [ us_machine_gun , us_gatling_gun , us_double_gun , us_light_gun , us_rocket_launcher , us_siberium_rocket , us_laser , us_double_laser , us_heavy_gun ] [ rand ( 1 , 9 ) ] ;
13485: LD_ADDR_OWVAR 40
13489: PUSH
13490: LD_INT 2
13492: PUSH
13493: LD_INT 4
13495: PUSH
13496: LD_INT 5
13498: PUSH
13499: LD_INT 3
13501: PUSH
13502: LD_INT 7
13504: PUSH
13505: LD_INT 8
13507: PUSH
13508: LD_INT 9
13510: PUSH
13511: LD_INT 10
13513: PUSH
13514: LD_INT 6
13516: PUSH
13517: EMPTY
13518: LIST
13519: LIST
13520: LIST
13521: LIST
13522: LIST
13523: LIST
13524: LIST
13525: LIST
13526: LIST
13527: PUSH
13528: LD_INT 1
13530: PPUSH
13531: LD_INT 9
13533: PPUSH
13534: CALL_OW 12
13538: ARRAY
13539: ST_TO_ADDR
// end ; 2 :
13540: GO 13807
13542: LD_INT 2
13544: DOUBLE
13545: EQUAL
13546: IFTRUE 13550
13548: GO 13674
13550: POP
// begin vc_chassis := [ ar_hovercraft , ar_light_trike , ar_medium_trike , ar_half_tracked ] [ rand ( 1 , 4 ) ] ;
13551: LD_ADDR_OWVAR 37
13555: PUSH
13556: LD_INT 11
13558: PUSH
13559: LD_INT 12
13561: PUSH
13562: LD_INT 13
13564: PUSH
13565: LD_INT 14
13567: PUSH
13568: EMPTY
13569: LIST
13570: LIST
13571: LIST
13572: LIST
13573: PUSH
13574: LD_INT 1
13576: PPUSH
13577: LD_INT 4
13579: PPUSH
13580: CALL_OW 12
13584: ARRAY
13585: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
13586: LD_ADDR_OWVAR 39
13590: PUSH
13591: LD_INT 1
13593: PPUSH
13594: LD_INT 3
13596: PPUSH
13597: CALL_OW 12
13601: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_apeman ] [ rand ( 1 , 3 ) ] ;
13602: LD_ADDR_OWVAR 38
13606: PUSH
13607: LD_INT 1
13609: PUSH
13610: LD_INT 2
13612: PUSH
13613: LD_INT 5
13615: PUSH
13616: EMPTY
13617: LIST
13618: LIST
13619: LIST
13620: PUSH
13621: LD_INT 1
13623: PPUSH
13624: LD_INT 3
13626: PPUSH
13627: CALL_OW 12
13631: ARRAY
13632: ST_TO_ADDR
// vc_weapon := [ ar_double_machine_gun , ar_flame_thrower , ar_gun , ar_rocket_launcher , ar_selfpropelled_bomb ] [ rand ( 1 , 5 ) ] ;
13633: LD_ADDR_OWVAR 40
13637: PUSH
13638: LD_INT 24
13640: PUSH
13641: LD_INT 26
13643: PUSH
13644: LD_INT 27
13646: PUSH
13647: LD_INT 28
13649: PUSH
13650: LD_INT 29
13652: PUSH
13653: EMPTY
13654: LIST
13655: LIST
13656: LIST
13657: LIST
13658: LIST
13659: PUSH
13660: LD_INT 1
13662: PPUSH
13663: LD_INT 5
13665: PPUSH
13666: CALL_OW 12
13670: ARRAY
13671: ST_TO_ADDR
// end ; 3 :
13672: GO 13807
13674: LD_INT 3
13676: DOUBLE
13677: EQUAL
13678: IFTRUE 13682
13680: GO 13806
13682: POP
// begin vc_chassis := [ ru_medium_wheeled , ru_heavy_wheeled , ru_medium_tracked , ru_heavy_tracked ] [ rand ( 1 , 4 ) ] ;
13683: LD_ADDR_OWVAR 37
13687: PUSH
13688: LD_INT 21
13690: PUSH
13691: LD_INT 23
13693: PUSH
13694: LD_INT 22
13696: PUSH
13697: LD_INT 24
13699: PUSH
13700: EMPTY
13701: LIST
13702: LIST
13703: LIST
13704: LIST
13705: PUSH
13706: LD_INT 1
13708: PPUSH
13709: LD_INT 4
13711: PPUSH
13712: CALL_OW 12
13716: ARRAY
13717: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
13718: LD_ADDR_OWVAR 39
13722: PUSH
13723: LD_INT 1
13725: PPUSH
13726: LD_INT 3
13728: PPUSH
13729: CALL_OW 12
13733: ST_TO_ADDR
// vc_control := [ control_manual , control_computer ] [ rand ( 1 , 2 ) ] ;
13734: LD_ADDR_OWVAR 38
13738: PUSH
13739: LD_INT 1
13741: PUSH
13742: LD_INT 3
13744: PUSH
13745: EMPTY
13746: LIST
13747: LIST
13748: PUSH
13749: LD_INT 1
13751: PPUSH
13752: LD_INT 2
13754: PPUSH
13755: CALL_OW 12
13759: ARRAY
13760: ST_TO_ADDR
// vc_weapon := [ ru_heavy_machine_gun , ru_gatling_gun , ru_gun , ru_heavy_gun , ru_siberium_rocket , ru_rocket ] [ rand ( 1 , 6 ) ] ;
13761: LD_ADDR_OWVAR 40
13765: PUSH
13766: LD_INT 42
13768: PUSH
13769: LD_INT 43
13771: PUSH
13772: LD_INT 44
13774: PUSH
13775: LD_INT 46
13777: PUSH
13778: LD_INT 48
13780: PUSH
13781: LD_INT 47
13783: PUSH
13784: EMPTY
13785: LIST
13786: LIST
13787: LIST
13788: LIST
13789: LIST
13790: LIST
13791: PUSH
13792: LD_INT 1
13794: PPUSH
13795: LD_INT 6
13797: PPUSH
13798: CALL_OW 12
13802: ARRAY
13803: ST_TO_ADDR
// end ; end ;
13804: GO 13807
13806: POP
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
13807: CALL_OW 45
13811: PPUSH
13812: LD_INT 1
13814: PPUSH
13815: CALL_OW 51
// end ;
13819: LD_VAR 0 1
13823: RET
// export invincible ; every 1 do
13824: GO 13826
13826: DISABLE
// invincible := [ ] ;
13827: LD_ADDR_EXP 61
13831: PUSH
13832: EMPTY
13833: ST_TO_ADDR
13834: END
// every 10 do var i ;
13835: GO 13837
13837: DISABLE
13838: LD_INT 0
13840: PPUSH
// begin enable ;
13841: ENABLE
// if not invincible then
13842: LD_EXP 61
13846: NOT
13847: IFFALSE 13851
// exit ;
13849: GO 13895
// for i in invincible do
13851: LD_ADDR_VAR 0 1
13855: PUSH
13856: LD_EXP 61
13860: PUSH
13861: FOR_IN
13862: IFFALSE 13893
// if GetLives ( i ) < 1000 then
13864: LD_VAR 0 1
13868: PPUSH
13869: CALL_OW 256
13873: PUSH
13874: LD_INT 1000
13876: LESS
13877: IFFALSE 13891
// SetLives ( i , 1000 ) ;
13879: LD_VAR 0 1
13883: PPUSH
13884: LD_INT 1000
13886: PPUSH
13887: CALL_OW 234
13891: GO 13861
13893: POP
13894: POP
// end ;
13895: PPOPN 1
13897: END
// export function HackInvincible ; var i ; begin
13898: LD_INT 0
13900: PPUSH
13901: PPUSH
// for i in FilterAllUnits ( [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ) do
13902: LD_ADDR_VAR 0 2
13906: PUSH
13907: LD_INT 2
13909: PUSH
13910: LD_INT 21
13912: PUSH
13913: LD_INT 1
13915: PUSH
13916: EMPTY
13917: LIST
13918: LIST
13919: PUSH
13920: LD_INT 21
13922: PUSH
13923: LD_INT 2
13925: PUSH
13926: EMPTY
13927: LIST
13928: LIST
13929: PUSH
13930: EMPTY
13931: LIST
13932: LIST
13933: LIST
13934: PPUSH
13935: CALL_OW 69
13939: PUSH
13940: FOR_IN
13941: IFFALSE 14002
// if IsSelected ( i ) then
13943: LD_VAR 0 2
13947: PPUSH
13948: CALL_OW 306
13952: IFFALSE 14000
// begin if i in invincible then
13954: LD_VAR 0 2
13958: PUSH
13959: LD_EXP 61
13963: IN
13964: IFFALSE 13984
// invincible := invincible diff i else
13966: LD_ADDR_EXP 61
13970: PUSH
13971: LD_EXP 61
13975: PUSH
13976: LD_VAR 0 2
13980: DIFF
13981: ST_TO_ADDR
13982: GO 14000
// invincible := invincible union i ;
13984: LD_ADDR_EXP 61
13988: PUSH
13989: LD_EXP 61
13993: PUSH
13994: LD_VAR 0 2
13998: UNION
13999: ST_TO_ADDR
// end ;
14000: GO 13940
14002: POP
14003: POP
// end ;
14004: LD_VAR 0 1
14008: RET
// export function HackInvisible ; var i , j ; begin
14009: LD_INT 0
14011: PPUSH
14012: PPUSH
14013: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
14014: LD_ADDR_VAR 0 2
14018: PUSH
14019: LD_INT 21
14021: PUSH
14022: LD_INT 1
14024: PUSH
14025: EMPTY
14026: LIST
14027: LIST
14028: PPUSH
14029: CALL_OW 69
14033: PUSH
14034: FOR_IN
14035: IFFALSE 14059
// if IsSelected ( i ) then
14037: LD_VAR 0 2
14041: PPUSH
14042: CALL_OW 306
14046: IFFALSE 14057
// begin ComForceInvisible ( i ) ;
14048: LD_VAR 0 2
14052: PPUSH
14053: CALL_OW 496
// end ;
14057: GO 14034
14059: POP
14060: POP
// end ;
14061: LD_VAR 0 1
14065: RET
// export function HackChangeYourSide ; begin
14066: LD_INT 0
14068: PPUSH
// if your_side = 8 then
14069: LD_OWVAR 2
14073: PUSH
14074: LD_INT 8
14076: EQUAL
14077: IFFALSE 14089
// your_side := 0 else
14079: LD_ADDR_OWVAR 2
14083: PUSH
14084: LD_INT 0
14086: ST_TO_ADDR
14087: GO 14103
// your_side := your_side + 1 ;
14089: LD_ADDR_OWVAR 2
14093: PUSH
14094: LD_OWVAR 2
14098: PUSH
14099: LD_INT 1
14101: PLUS
14102: ST_TO_ADDR
// end ;
14103: LD_VAR 0 1
14107: RET
// export function HackChangeUnitSide ; var i , j ; begin
14108: LD_INT 0
14110: PPUSH
14111: PPUSH
14112: PPUSH
// for i in all_units do
14113: LD_ADDR_VAR 0 2
14117: PUSH
14118: LD_OWVAR 3
14122: PUSH
14123: FOR_IN
14124: IFFALSE 14202
// if IsSelected ( i ) then
14126: LD_VAR 0 2
14130: PPUSH
14131: CALL_OW 306
14135: IFFALSE 14200
// begin j := GetSide ( i ) ;
14137: LD_ADDR_VAR 0 3
14141: PUSH
14142: LD_VAR 0 2
14146: PPUSH
14147: CALL_OW 255
14151: ST_TO_ADDR
// if j = 8 then
14152: LD_VAR 0 3
14156: PUSH
14157: LD_INT 8
14159: EQUAL
14160: IFFALSE 14172
// j := 0 else
14162: LD_ADDR_VAR 0 3
14166: PUSH
14167: LD_INT 0
14169: ST_TO_ADDR
14170: GO 14186
// j := j + 1 ;
14172: LD_ADDR_VAR 0 3
14176: PUSH
14177: LD_VAR 0 3
14181: PUSH
14182: LD_INT 1
14184: PLUS
14185: ST_TO_ADDR
// SetSide ( i , j ) ;
14186: LD_VAR 0 2
14190: PPUSH
14191: LD_VAR 0 3
14195: PPUSH
14196: CALL_OW 235
// end ;
14200: GO 14123
14202: POP
14203: POP
// end ;
14204: LD_VAR 0 1
14208: RET
// export function HackFog ; begin
14209: LD_INT 0
14211: PPUSH
// FogOff ( true ) ;
14212: LD_INT 1
14214: PPUSH
14215: CALL_OW 344
// end ;
14219: LD_VAR 0 1
14223: RET
// export function HackApeman ; begin
14224: LD_INT 0
14226: PPUSH
// uc_side := your_side ;
14227: LD_ADDR_OWVAR 20
14231: PUSH
14232: LD_OWVAR 2
14236: ST_TO_ADDR
// uc_nation := 0 ;
14237: LD_ADDR_OWVAR 21
14241: PUSH
14242: LD_INT 0
14244: ST_TO_ADDR
// hc_name :=  ;
14245: LD_ADDR_OWVAR 26
14249: PUSH
14250: LD_STRING 
14252: ST_TO_ADDR
// hc_gallery :=  ;
14253: LD_ADDR_OWVAR 33
14257: PUSH
14258: LD_STRING 
14260: ST_TO_ADDR
// hc_skills := [ 0 , 0 , 0 , 0 ] ;
14261: LD_ADDR_OWVAR 31
14265: PUSH
14266: LD_INT 0
14268: PUSH
14269: LD_INT 0
14271: PUSH
14272: LD_INT 0
14274: PUSH
14275: LD_INT 0
14277: PUSH
14278: EMPTY
14279: LIST
14280: LIST
14281: LIST
14282: LIST
14283: ST_TO_ADDR
// hc_class := class_apeman ;
14284: LD_ADDR_OWVAR 28
14288: PUSH
14289: LD_INT 12
14291: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateHuman , true ) ;
14292: CALL_OW 44
14296: PPUSH
14297: LD_INT 1
14299: PPUSH
14300: CALL_OW 51
// end ;
14304: LD_VAR 0 1
14308: RET
// export function HackBoom ; begin
14309: LD_INT 0
14311: PPUSH
// uc_side := your_side ;
14312: LD_ADDR_OWVAR 20
14316: PUSH
14317: LD_OWVAR 2
14321: ST_TO_ADDR
// uc_nation := 1 ;
14322: LD_ADDR_OWVAR 21
14326: PUSH
14327: LD_INT 1
14329: ST_TO_ADDR
// vc_chassis := us_morphling ;
14330: LD_ADDR_OWVAR 37
14334: PUSH
14335: LD_INT 5
14337: ST_TO_ADDR
// vc_engine := engine_siberite ;
14338: LD_ADDR_OWVAR 39
14342: PUSH
14343: LD_INT 3
14345: ST_TO_ADDR
// vc_control := control_computer ;
14346: LD_ADDR_OWVAR 38
14350: PUSH
14351: LD_INT 3
14353: ST_TO_ADDR
// vc_weapon := us_siberium_rocket ;
14354: LD_ADDR_OWVAR 40
14358: PUSH
14359: LD_INT 8
14361: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
14362: CALL_OW 45
14366: PPUSH
14367: LD_INT 1
14369: PPUSH
14370: CALL_OW 51
// end ;
14374: LD_VAR 0 1
14378: RET
