// export am , al , oth ; export ams00 , ams01 , ams02 , ams03 , ams04 , ams05 , ams06 ; export amv0_ch , amv0_wp , amv0_drv , amv1_ch , amv1_wp , amv1_drv , amv2_cl ; export john_vychod ; export debug , guard_out_ , penalty , maxpenalty , penalties ; var ambudovy , ambudovyt , ambudovyxy ; function set_vars ; var tmp , tmp1 ; begin
   0: LD_INT 0
   2: PPUSH
   3: PPUSH
   4: PPUSH
// am = 1 ;
   5: LD_ADDR_EXP 1
   9: PUSH
  10: LD_INT 1
  12: ST_TO_ADDR
// al = 7 ;
  13: LD_ADDR_EXP 2
  17: PUSH
  18: LD_INT 7
  20: ST_TO_ADDR
// oth = 4 ;
  21: LD_ADDR_EXP 3
  25: PUSH
  26: LD_INT 4
  28: ST_TO_ADDR
// takoviti = [ ] ;
  29: LD_ADDR_EXP 26
  33: PUSH
  34: EMPTY
  35: ST_TO_ADDR
// moji = [ ] ;
  36: LD_ADDR_EXP 44
  40: PUSH
  41: EMPTY
  42: ST_TO_ADDR
// mojivip = [ ] ;
  43: LD_ADDR_EXP 45
  47: PUSH
  48: EMPTY
  49: ST_TO_ADDR
// ostatnivip = [ ] ;
  50: LD_ADDR_EXP 46
  54: PUSH
  55: EMPTY
  56: ST_TO_ADDR
// pocetmist = 11 ;
  57: LD_ADDR_EXP 49
  61: PUSH
  62: LD_INT 11
  64: ST_TO_ADDR
// mista = [ [ 57 , 97 ] , [ 54 , 51 ] , [ 24 , 22 ] , [ 104 , 112 ] , [ 53 , 13 ] , [ 149 , 108 ] , [ 165 , 96 ] , [ 75 , 3 ] , [ 137 , 62 ] , [ 122 , 38 ] , [ 100 , 11 ] ] ;
  65: LD_ADDR_EXP 47
  69: PUSH
  70: LD_INT 57
  72: PUSH
  73: LD_INT 97
  75: PUSH
  76: EMPTY
  77: LIST
  78: LIST
  79: PUSH
  80: LD_INT 54
  82: PUSH
  83: LD_INT 51
  85: PUSH
  86: EMPTY
  87: LIST
  88: LIST
  89: PUSH
  90: LD_INT 24
  92: PUSH
  93: LD_INT 22
  95: PUSH
  96: EMPTY
  97: LIST
  98: LIST
  99: PUSH
 100: LD_INT 104
 102: PUSH
 103: LD_INT 112
 105: PUSH
 106: EMPTY
 107: LIST
 108: LIST
 109: PUSH
 110: LD_INT 53
 112: PUSH
 113: LD_INT 13
 115: PUSH
 116: EMPTY
 117: LIST
 118: LIST
 119: PUSH
 120: LD_INT 149
 122: PUSH
 123: LD_INT 108
 125: PUSH
 126: EMPTY
 127: LIST
 128: LIST
 129: PUSH
 130: LD_INT 165
 132: PUSH
 133: LD_INT 96
 135: PUSH
 136: EMPTY
 137: LIST
 138: LIST
 139: PUSH
 140: LD_INT 75
 142: PUSH
 143: LD_INT 3
 145: PUSH
 146: EMPTY
 147: LIST
 148: LIST
 149: PUSH
 150: LD_INT 137
 152: PUSH
 153: LD_INT 62
 155: PUSH
 156: EMPTY
 157: LIST
 158: LIST
 159: PUSH
 160: LD_INT 122
 162: PUSH
 163: LD_INT 38
 165: PUSH
 166: EMPTY
 167: LIST
 168: LIST
 169: PUSH
 170: LD_INT 100
 172: PUSH
 173: LD_INT 11
 175: PUSH
 176: EMPTY
 177: LIST
 178: LIST
 179: PUSH
 180: EMPTY
 181: LIST
 182: LIST
 183: LIST
 184: LIST
 185: LIST
 186: LIST
 187: LIST
 188: LIST
 189: LIST
 190: LIST
 191: LIST
 192: ST_TO_ADDR
// areas = [ area2_bobby , area1_simms , area11_joan , area3_cyrus , area10_gary , area4_lisa , area5_frank , area9_yamoko , area6_markc , area7_tim , area8_denis ] ;
 193: LD_ADDR_EXP 48
 197: PUSH
 198: LD_INT 3
 200: PUSH
 201: LD_INT 2
 203: PUSH
 204: LD_INT 12
 206: PUSH
 207: LD_INT 4
 209: PUSH
 210: LD_INT 11
 212: PUSH
 213: LD_INT 5
 215: PUSH
 216: LD_INT 6
 218: PUSH
 219: LD_INT 10
 221: PUSH
 222: LD_INT 7
 224: PUSH
 225: LD_INT 8
 227: PUSH
 228: LD_INT 9
 230: PUSH
 231: EMPTY
 232: LIST
 233: LIST
 234: LIST
 235: LIST
 236: LIST
 237: LIST
 238: LIST
 239: LIST
 240: LIST
 241: LIST
 242: LIST
 243: ST_TO_ADDR
// guard_out_ = [ [ 149 , 63 ] , [ 150 , 65 ] , [ 151 , 67 ] , [ 152 , 69 ] , [ 154 , 73 ] , [ 153 , 71 ] ] ;
 244: LD_ADDR_EXP 20
 248: PUSH
 249: LD_INT 149
 251: PUSH
 252: LD_INT 63
 254: PUSH
 255: EMPTY
 256: LIST
 257: LIST
 258: PUSH
 259: LD_INT 150
 261: PUSH
 262: LD_INT 65
 264: PUSH
 265: EMPTY
 266: LIST
 267: LIST
 268: PUSH
 269: LD_INT 151
 271: PUSH
 272: LD_INT 67
 274: PUSH
 275: EMPTY
 276: LIST
 277: LIST
 278: PUSH
 279: LD_INT 152
 281: PUSH
 282: LD_INT 69
 284: PUSH
 285: EMPTY
 286: LIST
 287: LIST
 288: PUSH
 289: LD_INT 154
 291: PUSH
 292: LD_INT 73
 294: PUSH
 295: EMPTY
 296: LIST
 297: LIST
 298: PUSH
 299: LD_INT 153
 301: PUSH
 302: LD_INT 71
 304: PUSH
 305: EMPTY
 306: LIST
 307: LIST
 308: PUSH
 309: EMPTY
 310: LIST
 311: LIST
 312: LIST
 313: LIST
 314: LIST
 315: LIST
 316: ST_TO_ADDR
// penalty = 0 ;
 317: LD_ADDR_EXP 21
 321: PUSH
 322: LD_INT 0
 324: ST_TO_ADDR
// maxpenalty = 25 ;
 325: LD_ADDR_EXP 22
 329: PUSH
 330: LD_INT 25
 332: ST_TO_ADDR
// penalties = [ [ b_depot , 25 ] ] ;
 333: LD_ADDR_EXP 23
 337: PUSH
 338: LD_INT 0
 340: PUSH
 341: LD_INT 25
 343: PUSH
 344: EMPTY
 345: LIST
 346: LIST
 347: PUSH
 348: EMPTY
 349: LIST
 350: ST_TO_ADDR
// penalties = penalties ^ [ [ b_warehouse , 25 ] ] ;
 351: LD_ADDR_EXP 23
 355: PUSH
 356: LD_EXP 23
 360: PUSH
 361: LD_INT 1
 363: PUSH
 364: LD_INT 25
 366: PUSH
 367: EMPTY
 368: LIST
 369: LIST
 370: PUSH
 371: EMPTY
 372: LIST
 373: ADD
 374: ST_TO_ADDR
// penalties = penalties ^ [ [ b_factory , [ 10 , 8 , 6 ] [ difficulty ] ] ] ;
 375: LD_ADDR_EXP 23
 379: PUSH
 380: LD_EXP 23
 384: PUSH
 385: LD_INT 3
 387: PUSH
 388: LD_INT 10
 390: PUSH
 391: LD_INT 8
 393: PUSH
 394: LD_INT 6
 396: PUSH
 397: EMPTY
 398: LIST
 399: LIST
 400: LIST
 401: PUSH
 402: LD_OWVAR 67
 406: ARRAY
 407: PUSH
 408: EMPTY
 409: LIST
 410: LIST
 411: PUSH
 412: EMPTY
 413: LIST
 414: ADD
 415: ST_TO_ADDR
// penalties = penalties ^ [ [ b_barracks , [ 20 , 15 , 10 ] [ difficulty ] ] ] ;
 416: LD_ADDR_EXP 23
 420: PUSH
 421: LD_EXP 23
 425: PUSH
 426: LD_INT 5
 428: PUSH
 429: LD_INT 20
 431: PUSH
 432: LD_INT 15
 434: PUSH
 435: LD_INT 10
 437: PUSH
 438: EMPTY
 439: LIST
 440: LIST
 441: LIST
 442: PUSH
 443: LD_OWVAR 67
 447: ARRAY
 448: PUSH
 449: EMPTY
 450: LIST
 451: LIST
 452: PUSH
 453: EMPTY
 454: LIST
 455: ADD
 456: ST_TO_ADDR
// penalties = penalties ^ [ [ b_lab_full , [ 10 , 8 , 6 ] [ difficulty ] ] ] ;
 457: LD_ADDR_EXP 23
 461: PUSH
 462: LD_EXP 23
 466: PUSH
 467: LD_INT 8
 469: PUSH
 470: LD_INT 10
 472: PUSH
 473: LD_INT 8
 475: PUSH
 476: LD_INT 6
 478: PUSH
 479: EMPTY
 480: LIST
 481: LIST
 482: LIST
 483: PUSH
 484: LD_OWVAR 67
 488: ARRAY
 489: PUSH
 490: EMPTY
 491: LIST
 492: LIST
 493: PUSH
 494: EMPTY
 495: LIST
 496: ADD
 497: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_track , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 498: LD_ADDR_EXP 23
 502: PUSH
 503: LD_EXP 23
 507: PUSH
 508: LD_INT 16
 510: PUSH
 511: LD_INT 8
 513: PUSH
 514: LD_INT 6
 516: PUSH
 517: LD_INT 4
 519: PUSH
 520: EMPTY
 521: LIST
 522: LIST
 523: LIST
 524: PUSH
 525: LD_OWVAR 67
 529: ARRAY
 530: PUSH
 531: EMPTY
 532: LIST
 533: LIST
 534: PUSH
 535: EMPTY
 536: LIST
 537: ADD
 538: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_gun , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 539: LD_ADDR_EXP 23
 543: PUSH
 544: LD_EXP 23
 548: PUSH
 549: LD_INT 17
 551: PUSH
 552: LD_INT 8
 554: PUSH
 555: LD_INT 6
 557: PUSH
 558: LD_INT 4
 560: PUSH
 561: EMPTY
 562: LIST
 563: LIST
 564: LIST
 565: PUSH
 566: LD_OWVAR 67
 570: ARRAY
 571: PUSH
 572: EMPTY
 573: LIST
 574: LIST
 575: PUSH
 576: EMPTY
 577: LIST
 578: ADD
 579: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_noncombat , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 580: LD_ADDR_EXP 23
 584: PUSH
 585: LD_EXP 23
 589: PUSH
 590: LD_INT 19
 592: PUSH
 593: LD_INT 8
 595: PUSH
 596: LD_INT 6
 598: PUSH
 599: LD_INT 4
 601: PUSH
 602: EMPTY
 603: LIST
 604: LIST
 605: LIST
 606: PUSH
 607: LD_OWVAR 67
 611: ARRAY
 612: PUSH
 613: EMPTY
 614: LIST
 615: LIST
 616: PUSH
 617: EMPTY
 618: LIST
 619: ADD
 620: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_radar , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 621: LD_ADDR_EXP 23
 625: PUSH
 626: LD_EXP 23
 630: PUSH
 631: LD_INT 20
 633: PUSH
 634: LD_INT 8
 636: PUSH
 637: LD_INT 6
 639: PUSH
 640: LD_INT 4
 642: PUSH
 643: EMPTY
 644: LIST
 645: LIST
 646: LIST
 647: PUSH
 648: LD_OWVAR 67
 652: ARRAY
 653: PUSH
 654: EMPTY
 655: LIST
 656: LIST
 657: PUSH
 658: EMPTY
 659: LIST
 660: ADD
 661: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_siberium , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 662: LD_ADDR_EXP 23
 666: PUSH
 667: LD_EXP 23
 671: PUSH
 672: LD_INT 21
 674: PUSH
 675: LD_INT 8
 677: PUSH
 678: LD_INT 6
 680: PUSH
 681: LD_INT 4
 683: PUSH
 684: EMPTY
 685: LIST
 686: LIST
 687: LIST
 688: PUSH
 689: LD_OWVAR 67
 693: ARRAY
 694: PUSH
 695: EMPTY
 696: LIST
 697: LIST
 698: PUSH
 699: EMPTY
 700: LIST
 701: ADD
 702: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_computer , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 703: LD_ADDR_EXP 23
 707: PUSH
 708: LD_EXP 23
 712: PUSH
 713: LD_INT 24
 715: PUSH
 716: LD_INT 8
 718: PUSH
 719: LD_INT 6
 721: PUSH
 722: LD_INT 4
 724: PUSH
 725: EMPTY
 726: LIST
 727: LIST
 728: LIST
 729: PUSH
 730: LD_OWVAR 67
 734: ARRAY
 735: PUSH
 736: EMPTY
 737: LIST
 738: LIST
 739: PUSH
 740: EMPTY
 741: LIST
 742: ADD
 743: ST_TO_ADDR
// penalties = penalties ^ [ [ b_ext_laser , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 744: LD_ADDR_EXP 23
 748: PUSH
 749: LD_EXP 23
 753: PUSH
 754: LD_INT 25
 756: PUSH
 757: LD_INT 8
 759: PUSH
 760: LD_INT 6
 762: PUSH
 763: LD_INT 4
 765: PUSH
 766: EMPTY
 767: LIST
 768: LIST
 769: LIST
 770: PUSH
 771: LD_OWVAR 67
 775: ARRAY
 776: PUSH
 777: EMPTY
 778: LIST
 779: LIST
 780: PUSH
 781: EMPTY
 782: LIST
 783: ADD
 784: ST_TO_ADDR
// penalties = penalties ^ [ [ b_oil_power , [ 15 , 11 , 8 ] [ difficulty ] ] ] ;
 785: LD_ADDR_EXP 23
 789: PUSH
 790: LD_EXP 23
 794: PUSH
 795: LD_INT 26
 797: PUSH
 798: LD_INT 15
 800: PUSH
 801: LD_INT 11
 803: PUSH
 804: LD_INT 8
 806: PUSH
 807: EMPTY
 808: LIST
 809: LIST
 810: LIST
 811: PUSH
 812: LD_OWVAR 67
 816: ARRAY
 817: PUSH
 818: EMPTY
 819: LIST
 820: LIST
 821: PUSH
 822: EMPTY
 823: LIST
 824: ADD
 825: ST_TO_ADDR
// penalties = penalties ^ [ [ b_siberite_power , 25 ] ] ;
 826: LD_ADDR_EXP 23
 830: PUSH
 831: LD_EXP 23
 835: PUSH
 836: LD_INT 28
 838: PUSH
 839: LD_INT 25
 841: PUSH
 842: EMPTY
 843: LIST
 844: LIST
 845: PUSH
 846: EMPTY
 847: LIST
 848: ADD
 849: ST_TO_ADDR
// penalties = penalties ^ [ [ b_oil_mine , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 850: LD_ADDR_EXP 23
 854: PUSH
 855: LD_EXP 23
 859: PUSH
 860: LD_INT 29
 862: PUSH
 863: LD_INT 8
 865: PUSH
 866: LD_INT 6
 868: PUSH
 869: LD_INT 4
 871: PUSH
 872: EMPTY
 873: LIST
 874: LIST
 875: LIST
 876: PUSH
 877: LD_OWVAR 67
 881: ARRAY
 882: PUSH
 883: EMPTY
 884: LIST
 885: LIST
 886: PUSH
 887: EMPTY
 888: LIST
 889: ADD
 890: ST_TO_ADDR
// penalties = penalties ^ [ [ b_siberite_mine , [ 8 , 6 , 4 ] [ difficulty ] ] ] ;
 891: LD_ADDR_EXP 23
 895: PUSH
 896: LD_EXP 23
 900: PUSH
 901: LD_INT 30
 903: PUSH
 904: LD_INT 8
 906: PUSH
 907: LD_INT 6
 909: PUSH
 910: LD_INT 4
 912: PUSH
 913: EMPTY
 914: LIST
 915: LIST
 916: LIST
 917: PUSH
 918: LD_OWVAR 67
 922: ARRAY
 923: PUSH
 924: EMPTY
 925: LIST
 926: LIST
 927: PUSH
 928: EMPTY
 929: LIST
 930: ADD
 931: ST_TO_ADDR
// penalties = penalties ^ [ [ b_bunker , [ 10 , 8 , 6 ] [ difficulty ] ] ] ;
 932: LD_ADDR_EXP 23
 936: PUSH
 937: LD_EXP 23
 941: PUSH
 942: LD_INT 32
 944: PUSH
 945: LD_INT 10
 947: PUSH
 948: LD_INT 8
 950: PUSH
 951: LD_INT 6
 953: PUSH
 954: EMPTY
 955: LIST
 956: LIST
 957: LIST
 958: PUSH
 959: LD_OWVAR 67
 963: ARRAY
 964: PUSH
 965: EMPTY
 966: LIST
 967: LIST
 968: PUSH
 969: EMPTY
 970: LIST
 971: ADD
 972: ST_TO_ADDR
// penalties = penalties ^ [ [ b_turret , [ 10 , 8 , 6 ] [ difficulty ] ] ] ;
 973: LD_ADDR_EXP 23
 977: PUSH
 978: LD_EXP 23
 982: PUSH
 983: LD_INT 33
 985: PUSH
 986: LD_INT 10
 988: PUSH
 989: LD_INT 8
 991: PUSH
 992: LD_INT 6
 994: PUSH
 995: EMPTY
 996: LIST
 997: LIST
 998: LIST
 999: PUSH
1000: LD_OWVAR 67
1004: ARRAY
1005: PUSH
1006: EMPTY
1007: LIST
1008: LIST
1009: PUSH
1010: EMPTY
1011: LIST
1012: ADD
1013: ST_TO_ADDR
// penalties = penalties ^ [ [ b_control_tower , [ 10 , 8 , 6 ] [ difficulty ] ] ] ;
1014: LD_ADDR_EXP 23
1018: PUSH
1019: LD_EXP 23
1023: PUSH
1024: LD_INT 36
1026: PUSH
1027: LD_INT 10
1029: PUSH
1030: LD_INT 8
1032: PUSH
1033: LD_INT 6
1035: PUSH
1036: EMPTY
1037: LIST
1038: LIST
1039: LIST
1040: PUSH
1041: LD_OWVAR 67
1045: ARRAY
1046: PUSH
1047: EMPTY
1048: LIST
1049: LIST
1050: PUSH
1051: EMPTY
1052: LIST
1053: ADD
1054: ST_TO_ADDR
// ambudovy = filterallunits ( [ [ f_side , am ] , [ f_type , unit_building ] ] ) ;
1055: LD_ADDR_LOC 1
1059: PUSH
1060: LD_INT 22
1062: PUSH
1063: LD_EXP 1
1067: PUSH
1068: EMPTY
1069: LIST
1070: LIST
1071: PUSH
1072: LD_INT 21
1074: PUSH
1075: LD_INT 3
1077: PUSH
1078: EMPTY
1079: LIST
1080: LIST
1081: PUSH
1082: EMPTY
1083: LIST
1084: LIST
1085: PPUSH
1086: CALL_OW 69
1090: ST_TO_ADDR
// ambudovyt = [ ] ;
1091: LD_ADDR_LOC 2
1095: PUSH
1096: EMPTY
1097: ST_TO_ADDR
// ambudovyxy = [ ] ;
1098: LD_ADDR_LOC 3
1102: PUSH
1103: EMPTY
1104: ST_TO_ADDR
// for tmp in ambudovy do
1105: LD_ADDR_VAR 0 2
1109: PUSH
1110: LD_LOC 1
1114: PUSH
1115: FOR_IN
1116: IFFALSE 1182
// begin ambudovyt = ambudovyt ^ [ getbtype ( tmp ) ] ;
1118: LD_ADDR_LOC 2
1122: PUSH
1123: LD_LOC 2
1127: PUSH
1128: LD_VAR 0 2
1132: PPUSH
1133: CALL_OW 266
1137: PUSH
1138: EMPTY
1139: LIST
1140: ADD
1141: ST_TO_ADDR
// ambudovyxy = ambudovyxy ^ [ [ getx ( tmp ) , gety ( tmp ) ] ] ;
1142: LD_ADDR_LOC 3
1146: PUSH
1147: LD_LOC 3
1151: PUSH
1152: LD_VAR 0 2
1156: PPUSH
1157: CALL_OW 250
1161: PUSH
1162: LD_VAR 0 2
1166: PPUSH
1167: CALL_OW 251
1171: PUSH
1172: EMPTY
1173: LIST
1174: LIST
1175: PUSH
1176: EMPTY
1177: LIST
1178: ADD
1179: ST_TO_ADDR
// end ;
1180: GO 1115
1182: POP
1183: POP
// ams00 = [ 4 , 6 , 8 ] [ difficulty ] ;
1184: LD_ADDR_EXP 4
1188: PUSH
1189: LD_INT 4
1191: PUSH
1192: LD_INT 6
1194: PUSH
1195: LD_INT 8
1197: PUSH
1198: EMPTY
1199: LIST
1200: LIST
1201: LIST
1202: PUSH
1203: LD_OWVAR 67
1207: ARRAY
1208: ST_TO_ADDR
// ams01 = [ 3 , 5 , 7 ] [ difficulty ] ;
1209: LD_ADDR_EXP 5
1213: PUSH
1214: LD_INT 3
1216: PUSH
1217: LD_INT 5
1219: PUSH
1220: LD_INT 7
1222: PUSH
1223: EMPTY
1224: LIST
1225: LIST
1226: LIST
1227: PUSH
1228: LD_OWVAR 67
1232: ARRAY
1233: ST_TO_ADDR
// ams02 = [ 4 , 6 , 8 ] [ difficulty ] ;
1234: LD_ADDR_EXP 6
1238: PUSH
1239: LD_INT 4
1241: PUSH
1242: LD_INT 6
1244: PUSH
1245: LD_INT 8
1247: PUSH
1248: EMPTY
1249: LIST
1250: LIST
1251: LIST
1252: PUSH
1253: LD_OWVAR 67
1257: ARRAY
1258: ST_TO_ADDR
// ams03 = [ 4 , 6 , 8 ] [ difficulty ] ;
1259: LD_ADDR_EXP 7
1263: PUSH
1264: LD_INT 4
1266: PUSH
1267: LD_INT 6
1269: PUSH
1270: LD_INT 8
1272: PUSH
1273: EMPTY
1274: LIST
1275: LIST
1276: LIST
1277: PUSH
1278: LD_OWVAR 67
1282: ARRAY
1283: ST_TO_ADDR
// ams04 = [ 4 , 6 , 8 ] [ difficulty ] ;
1284: LD_ADDR_EXP 8
1288: PUSH
1289: LD_INT 4
1291: PUSH
1292: LD_INT 6
1294: PUSH
1295: LD_INT 8
1297: PUSH
1298: EMPTY
1299: LIST
1300: LIST
1301: LIST
1302: PUSH
1303: LD_OWVAR 67
1307: ARRAY
1308: ST_TO_ADDR
// ams05 = [ 3 , 5 , 7 ] [ difficulty ] ;
1309: LD_ADDR_EXP 9
1313: PUSH
1314: LD_INT 3
1316: PUSH
1317: LD_INT 5
1319: PUSH
1320: LD_INT 7
1322: PUSH
1323: EMPTY
1324: LIST
1325: LIST
1326: LIST
1327: PUSH
1328: LD_OWVAR 67
1332: ARRAY
1333: ST_TO_ADDR
// ams06 = [ 4 , 6 , 8 ] [ difficulty ] ;
1334: LD_ADDR_EXP 10
1338: PUSH
1339: LD_INT 4
1341: PUSH
1342: LD_INT 6
1344: PUSH
1345: LD_INT 8
1347: PUSH
1348: EMPTY
1349: LIST
1350: LIST
1351: LIST
1352: PUSH
1353: LD_OWVAR 67
1357: ARRAY
1358: ST_TO_ADDR
// amv0_ch = [ us_medium_wheeled , us_medium_wheeled , us_medium_wheeled ] [ difficulty ] ;
1359: LD_ADDR_EXP 11
1363: PUSH
1364: LD_INT 2
1366: PUSH
1367: LD_INT 2
1369: PUSH
1370: LD_INT 2
1372: PUSH
1373: EMPTY
1374: LIST
1375: LIST
1376: LIST
1377: PUSH
1378: LD_OWVAR 67
1382: ARRAY
1383: ST_TO_ADDR
// amv0_wp = [ us_gatling_gun , us_gatling_gun , us_gatling_gun ] [ difficulty ] ;
1384: LD_ADDR_EXP 12
1388: PUSH
1389: LD_INT 4
1391: PUSH
1392: LD_INT 4
1394: PUSH
1395: LD_INT 4
1397: PUSH
1398: EMPTY
1399: LIST
1400: LIST
1401: LIST
1402: PUSH
1403: LD_OWVAR 67
1407: ARRAY
1408: ST_TO_ADDR
// amv0_drv = [ 4 , 6 , 8 ] [ difficulty ] ;
1409: LD_ADDR_EXP 13
1413: PUSH
1414: LD_INT 4
1416: PUSH
1417: LD_INT 6
1419: PUSH
1420: LD_INT 8
1422: PUSH
1423: EMPTY
1424: LIST
1425: LIST
1426: LIST
1427: PUSH
1428: LD_OWVAR 67
1432: ARRAY
1433: ST_TO_ADDR
// amv1_ch = [ us_medium_wheeled , us_medium_wheeled , us_medium_wheeled ] [ difficulty ] ;
1434: LD_ADDR_EXP 14
1438: PUSH
1439: LD_INT 2
1441: PUSH
1442: LD_INT 2
1444: PUSH
1445: LD_INT 2
1447: PUSH
1448: EMPTY
1449: LIST
1450: LIST
1451: LIST
1452: PUSH
1453: LD_OWVAR 67
1457: ARRAY
1458: ST_TO_ADDR
// amv1_wp = [ us_machine_gun , us_gatling_gun , us_machine_gun ] [ difficulty ] ;
1459: LD_ADDR_EXP 15
1463: PUSH
1464: LD_INT 2
1466: PUSH
1467: LD_INT 4
1469: PUSH
1470: LD_INT 2
1472: PUSH
1473: EMPTY
1474: LIST
1475: LIST
1476: LIST
1477: PUSH
1478: LD_OWVAR 67
1482: ARRAY
1483: ST_TO_ADDR
// amv1_drv = [ 4 , 6 , 8 ] [ difficulty ] ;
1484: LD_ADDR_EXP 16
1488: PUSH
1489: LD_INT 4
1491: PUSH
1492: LD_INT 6
1494: PUSH
1495: LD_INT 8
1497: PUSH
1498: EMPTY
1499: LIST
1500: LIST
1501: LIST
1502: PUSH
1503: LD_OWVAR 67
1507: ARRAY
1508: ST_TO_ADDR
// amv2_cl = [ 4 , 7 , 8 ] [ difficulty ] ;
1509: LD_ADDR_EXP 17
1513: PUSH
1514: LD_INT 4
1516: PUSH
1517: LD_INT 7
1519: PUSH
1520: LD_INT 8
1522: PUSH
1523: EMPTY
1524: LIST
1525: LIST
1526: LIST
1527: PUSH
1528: LD_OWVAR 67
1532: ARRAY
1533: ST_TO_ADDR
// if difficulty = 3 then
1534: LD_OWVAR 67
1538: PUSH
1539: LD_INT 3
1541: EQUAL
1542: IFFALSE 1641
// begin tmp = filterallunits ( [ [ f_side , am ] , [ f_or , [ f_btype , b_bunker ] , [ f_btype , b_turret ] ] ] ) ;
1544: LD_ADDR_VAR 0 2
1548: PUSH
1549: LD_INT 22
1551: PUSH
1552: LD_EXP 1
1556: PUSH
1557: EMPTY
1558: LIST
1559: LIST
1560: PUSH
1561: LD_INT 2
1563: PUSH
1564: LD_INT 30
1566: PUSH
1567: LD_INT 32
1569: PUSH
1570: EMPTY
1571: LIST
1572: LIST
1573: PUSH
1574: LD_INT 30
1576: PUSH
1577: LD_INT 33
1579: PUSH
1580: EMPTY
1581: LIST
1582: LIST
1583: PUSH
1584: EMPTY
1585: LIST
1586: LIST
1587: LIST
1588: PUSH
1589: EMPTY
1590: LIST
1591: LIST
1592: PPUSH
1593: CALL_OW 69
1597: ST_TO_ADDR
// for tmp1 in tmp do
1598: LD_ADDR_VAR 0 3
1602: PUSH
1603: LD_VAR 0 2
1607: PUSH
1608: FOR_IN
1609: IFFALSE 1639
// setblevel ( [ tmp1 ] , getblevel ( tmp1 ) + 2 ) ;
1611: LD_VAR 0 3
1615: PUSH
1616: EMPTY
1617: LIST
1618: PPUSH
1619: LD_VAR 0 3
1623: PPUSH
1624: CALL_OW 267
1628: PUSH
1629: LD_INT 2
1631: PLUS
1632: PPUSH
1633: CALL_OW 241
1637: GO 1608
1639: POP
1640: POP
// end ; end ;
1641: LD_VAR 0 1
1645: RET
// export contacted , zabil ; starting begin debug = false ;
1646: LD_ADDR_EXP 19
1650: PUSH
1651: LD_INT 0
1653: ST_TO_ADDR
// setbname ( amware0 , alpha ) ;
1654: LD_INT 5
1656: PPUSH
1657: LD_STRING alpha
1659: PPUSH
1660: CALL_OW 500
// set_vars ;
1664: CALL 0 0 0
// zustalo_malo = 5 ;
1668: LD_ADDR_LOC 4
1672: PUSH
1673: LD_INT 5
1675: ST_TO_ADDR
// john_vychod = false ;
1676: LD_ADDR_EXP 18
1680: PUSH
1681: LD_INT 0
1683: ST_TO_ADDR
// zabil = false ;
1684: LD_ADDR_EXP 25
1688: PUSH
1689: LD_INT 0
1691: ST_TO_ADDR
// disable ( 02 ) ;
1692: LD_INT 2
1694: DISABLE_MARKED
// disable ( 04 ) ;
1695: LD_INT 4
1697: DISABLE_MARKED
// revealfogarea ( al , celamapa ) ;
1698: LD_EXP 2
1702: PPUSH
1703: LD_INT 14
1705: PPUSH
1706: CALL_OW 332
// revealfogarea ( am , celamapa ) ;
1710: LD_EXP 1
1714: PPUSH
1715: LD_INT 14
1717: PPUSH
1718: CALL_OW 332
// contacted = 0 ;
1722: LD_ADDR_EXP 24
1726: PUSH
1727: LD_INT 0
1729: ST_TO_ADDR
// prepare_americans ;
1730: CALL 4591 0 0
// if debug then
1734: LD_EXP 19
1738: IFFALSE 1747
// msg ( BACHA debug is ON! ) ;
1740: LD_STRING BACHA debug is ON!
1742: PPUSH
1743: CALL_OW 100
// end ;
1747: END
// export takoviti ; on unitdestroyed ( un ) do var tmp , tmp1 , tmp2 ;
1748: LD_INT 0
1750: PPUSH
1751: PPUSH
1752: PPUSH
// begin if ( un = john ) and not debug then
1753: LD_VAR 0 1
1757: PUSH
1758: LD_EXP 27
1762: EQUAL
1763: PUSH
1764: LD_EXP 19
1768: NOT
1769: AND
1770: IFFALSE 1779
// youlost ( JMM ) ;
1772: LD_STRING JMM
1774: PPUSH
1775: CALL_OW 104
// if not ( un in ( moji ^ mojivip ) ) and ( gettype ( un ) = unit_human ) then
1779: LD_VAR 0 1
1783: PUSH
1784: LD_EXP 44
1788: PUSH
1789: LD_EXP 45
1793: ADD
1794: IN
1795: NOT
1796: PUSH
1797: LD_VAR 0 1
1801: PPUSH
1802: CALL_OW 247
1806: PUSH
1807: LD_INT 1
1809: EQUAL
1810: AND
1811: IFFALSE 1821
// zabil = true ;
1813: LD_ADDR_EXP 25
1817: PUSH
1818: LD_INT 1
1820: ST_TO_ADDR
// if un in takoviti then
1821: LD_VAR 0 1
1825: PUSH
1826: LD_EXP 26
1830: IN
1831: IFFALSE 1888
// for tmp = 1 to pocetmist do
1833: LD_ADDR_VAR 0 2
1837: PUSH
1838: DOUBLE
1839: LD_INT 1
1841: DEC
1842: ST_TO_ADDR
1843: LD_EXP 49
1847: PUSH
1848: FOR_TO
1849: IFFALSE 1886
// if un = takoviti [ tmp ] then
1851: LD_VAR 0 1
1855: PUSH
1856: LD_EXP 26
1860: PUSH
1861: LD_VAR 0 2
1865: ARRAY
1866: EQUAL
1867: IFFALSE 1884
// begin settag ( tmp , - 1 ) ;
1869: LD_VAR 0 2
1873: PPUSH
1874: LD_INT 1
1876: NEG
1877: PPUSH
1878: CALL_OW 109
// break ;
1882: GO 1886
// end ;
1884: GO 1848
1886: POP
1887: POP
// tmp1 = 0 ;
1888: LD_ADDR_VAR 0 3
1892: PUSH
1893: LD_INT 0
1895: ST_TO_ADDR
// for tmp = 1 to ( 0 + ambudovy ) do
1896: LD_ADDR_VAR 0 2
1900: PUSH
1901: DOUBLE
1902: LD_INT 1
1904: DEC
1905: ST_TO_ADDR
1906: LD_INT 0
1908: PUSH
1909: LD_LOC 1
1913: PLUS
1914: PUSH
1915: FOR_TO
1916: IFFALSE 1950
// if ambudovy [ tmp ] = un then
1918: LD_LOC 1
1922: PUSH
1923: LD_VAR 0 2
1927: ARRAY
1928: PUSH
1929: LD_VAR 0 1
1933: EQUAL
1934: IFFALSE 1948
// begin tmp1 = tmp ;
1936: LD_ADDR_VAR 0 3
1940: PUSH
1941: LD_VAR 0 2
1945: ST_TO_ADDR
// break ;
1946: GO 1950
// end ;
1948: GO 1915
1950: POP
1951: POP
// if tmp1 and ( penalty < maxpenalty ) then
1952: LD_VAR 0 3
1956: PUSH
1957: LD_EXP 21
1961: PUSH
1962: LD_EXP 22
1966: LESS
1967: AND
1968: IFFALSE 2112
// begin for tmp in penalties do
1970: LD_ADDR_VAR 0 2
1974: PUSH
1975: LD_EXP 23
1979: PUSH
1980: FOR_IN
1981: IFFALSE 2023
// if tmp [ 1 ] = ambudovyt [ tmp1 ] then
1983: LD_VAR 0 2
1987: PUSH
1988: LD_INT 1
1990: ARRAY
1991: PUSH
1992: LD_LOC 2
1996: PUSH
1997: LD_VAR 0 3
2001: ARRAY
2002: EQUAL
2003: IFFALSE 2021
// begin tmp2 = tmp [ 2 ] ;
2005: LD_ADDR_VAR 0 4
2009: PUSH
2010: LD_VAR 0 2
2014: PUSH
2015: LD_INT 2
2017: ARRAY
2018: ST_TO_ADDR
// break ;
2019: GO 2023
// end ;
2021: GO 1980
2023: POP
2024: POP
// penalty = penalty + tmp2 ;
2025: LD_ADDR_EXP 21
2029: PUSH
2030: LD_EXP 21
2034: PUSH
2035: LD_VAR 0 4
2039: PLUS
2040: ST_TO_ADDR
// if debug then
2041: LD_EXP 19
2045: IFFALSE 2060
// msg ( penalty:  & penalty ) ;
2047: LD_STRING penalty: 
2049: PUSH
2050: LD_EXP 21
2054: STR
2055: PPUSH
2056: CALL_OW 100
// if penalty >= maxpenalty then
2060: LD_EXP 21
2064: PUSH
2065: LD_EXP 22
2069: GREATEREQUAL
2070: IFFALSE 2112
// begin killx = ambudovyxy [ tmp1 ] [ 1 ] ;
2072: LD_ADDR_EXP 55
2076: PUSH
2077: LD_LOC 3
2081: PUSH
2082: LD_VAR 0 3
2086: ARRAY
2087: PUSH
2088: LD_INT 1
2090: ARRAY
2091: ST_TO_ADDR
// killy = ambudovyxy [ tmp1 ] [ 2 ] ;
2092: LD_ADDR_EXP 56
2096: PUSH
2097: LD_LOC 3
2101: PUSH
2102: LD_VAR 0 3
2106: ARRAY
2107: PUSH
2108: LD_INT 2
2110: ARRAY
2111: ST_TO_ADDR
// end end ; end ;
2112: PPOPN 4
2114: END
// var zustalo_malo , zachraneni ; every 0 0$0.51 marked 02 do var tmp , tmp2 , chybi , chybiex , medal1 , medal2 , medal3 ;
2115: GO 2117
2117: DISABLE
2118: LD_INT 0
2120: PPUSH
2121: PPUSH
2122: PPUSH
2123: PPUSH
2124: PPUSH
2125: PPUSH
2126: PPUSH
// begin medal1 := false ;
2127: LD_ADDR_VAR 0 5
2131: PUSH
2132: LD_INT 0
2134: ST_TO_ADDR
// medal2 := false ;
2135: LD_ADDR_VAR 0 6
2139: PUSH
2140: LD_INT 0
2142: ST_TO_ADDR
// medal3 := false ;
2143: LD_ADDR_VAR 0 7
2147: PUSH
2148: LD_INT 0
2150: ST_TO_ADDR
// if isinarea ( john , vychod ) and ( not john_vychod ) then
2151: LD_EXP 27
2155: PPUSH
2156: LD_INT 13
2158: PPUSH
2159: CALL_OW 308
2163: PUSH
2164: LD_EXP 18
2168: NOT
2169: AND
2170: IFFALSE 3100
// begin john_vychod = true ;
2172: LD_ADDR_EXP 18
2176: PUSH
2177: LD_INT 1
2179: ST_TO_ADDR
// repeat wait ( 17 ) ;
2180: LD_INT 17
2182: PPUSH
2183: CALL_OW 67
// chybi = false ;
2187: LD_ADDR_VAR 0 3
2191: PUSH
2192: LD_INT 0
2194: ST_TO_ADDR
// for tmp in ( moji ^ mojivip ) do
2195: LD_ADDR_VAR 0 1
2199: PUSH
2200: LD_EXP 44
2204: PUSH
2205: LD_EXP 45
2209: ADD
2210: PUSH
2211: FOR_IN
2212: IFFALSE 2252
// if ( not isinarea ( tmp , vychod ) ) and isok ( tmp ) then
2214: LD_VAR 0 1
2218: PPUSH
2219: LD_INT 13
2221: PPUSH
2222: CALL_OW 308
2226: NOT
2227: PUSH
2228: LD_VAR 0 1
2232: PPUSH
2233: CALL_OW 302
2237: AND
2238: IFFALSE 2250
// begin chybi = true ;
2240: LD_ADDR_VAR 0 3
2244: PUSH
2245: LD_INT 1
2247: ST_TO_ADDR
// break ;
2248: GO 2252
// end ;
2250: GO 2211
2252: POP
2253: POP
// chybiex = false ;
2254: LD_ADDR_VAR 0 4
2258: PUSH
2259: LD_INT 0
2261: ST_TO_ADDR
// if chybi then
2262: LD_VAR 0 3
2266: IFFALSE 2327
// for tmp in ( moji ^ mojivip ) do
2268: LD_ADDR_VAR 0 1
2272: PUSH
2273: LD_EXP 44
2277: PUSH
2278: LD_EXP 45
2282: ADD
2283: PUSH
2284: FOR_IN
2285: IFFALSE 2325
// if ( not isinarea ( tmp , vychodex ) ) and isok ( tmp ) then
2287: LD_VAR 0 1
2291: PPUSH
2292: LD_INT 18
2294: PPUSH
2295: CALL_OW 308
2299: NOT
2300: PUSH
2301: LD_VAR 0 1
2305: PPUSH
2306: CALL_OW 302
2310: AND
2311: IFFALSE 2323
// begin chybiex = true ;
2313: LD_ADDR_VAR 0 4
2317: PUSH
2318: LD_INT 1
2320: ST_TO_ADDR
// break ;
2321: GO 2325
// end ;
2323: GO 2284
2325: POP
2326: POP
// until not ( chybi and not chybiex ) ;
2327: LD_VAR 0 3
2331: PUSH
2332: LD_VAR 0 4
2336: NOT
2337: AND
2338: NOT
2339: IFFALSE 2180
// if chybi then
2341: LD_VAR 0 3
2345: IFFALSE 2702
// if query ( Q1 ) = 1 then
2347: LD_STRING Q1
2349: PPUSH
2350: CALL_OW 97
2354: PUSH
2355: LD_INT 1
2357: EQUAL
2358: IFFALSE 2363
// enable else
2360: ENABLE
2361: GO 2700
// begin if filterunitsinarea ( vychod , [ [ f_side , al ] ] ) <= zustalo_malo then
2363: LD_INT 13
2365: PPUSH
2366: LD_INT 22
2368: PUSH
2369: LD_EXP 2
2373: PUSH
2374: EMPTY
2375: LIST
2376: LIST
2377: PUSH
2378: EMPTY
2379: LIST
2380: PPUSH
2381: CALL_OW 70
2385: PUSH
2386: LD_LOC 4
2390: LESSEQUAL
2391: IFFALSE 2407
// say ( john , D5-JMM-1a ) else
2393: LD_EXP 27
2397: PPUSH
2398: LD_STRING D5-JMM-1a
2400: PPUSH
2401: CALL_OW 88
2405: GO 2419
// say ( john , D5-JMM-1 ) ;
2407: LD_EXP 27
2411: PPUSH
2412: LD_STRING D5-JMM-1
2414: PPUSH
2415: CALL_OW 88
// zachraneni = filterunitsinarea ( vychod , [ [ f_side , al ] ] ) diff [ john , roth ] ;
2419: LD_ADDR_LOC 5
2423: PUSH
2424: LD_INT 13
2426: PPUSH
2427: LD_INT 22
2429: PUSH
2430: LD_EXP 2
2434: PUSH
2435: EMPTY
2436: LIST
2437: LIST
2438: PUSH
2439: EMPTY
2440: LIST
2441: PPUSH
2442: CALL_OW 70
2446: PUSH
2447: LD_EXP 27
2451: PUSH
2452: LD_EXP 29
2456: PUSH
2457: EMPTY
2458: LIST
2459: LIST
2460: DIFF
2461: ST_TO_ADDR
// tmp2 = 0 + zachraneni ;
2462: LD_ADDR_VAR 0 2
2466: PUSH
2467: LD_INT 0
2469: PUSH
2470: LD_LOC 5
2474: PLUS
2475: ST_TO_ADDR
// if lisamet = 2 then
2476: LD_EXP 53
2480: PUSH
2481: LD_INT 2
2483: EQUAL
2484: IFFALSE 2500
// tmp2 = tmp2 + 1 ;
2486: LD_ADDR_VAR 0 2
2490: PUSH
2491: LD_VAR 0 2
2495: PUSH
2496: LD_INT 1
2498: PLUS
2499: ST_TO_ADDR
// if frankmet then
2500: LD_EXP 52
2504: IFFALSE 2520
// tmp2 = tmp2 - 1 ;
2506: LD_ADDR_VAR 0 2
2510: PUSH
2511: LD_VAR 0 2
2515: PUSH
2516: LD_INT 1
2518: MINUS
2519: ST_TO_ADDR
// if joanmet then
2520: LD_EXP 51
2524: IFFALSE 2540
// tmp2 = tmp2 - 1 ;
2526: LD_ADDR_VAR 0 2
2530: PUSH
2531: LD_VAR 0 2
2535: PUSH
2536: LD_INT 1
2538: MINUS
2539: ST_TO_ADDR
// if contacted < ( 0 + moji_backup ) then
2540: LD_EXP 24
2544: PUSH
2545: LD_INT 0
2547: PUSH
2548: LD_EXP 50
2552: PLUS
2553: LESS
2554: IFFALSE 2569
// addmedal ( All , - 1 ) else
2556: LD_STRING All
2558: PPUSH
2559: LD_INT 1
2561: NEG
2562: PPUSH
2563: CALL_OW 101
2567: GO 2579
// addmedal ( All , 1 ) ;
2569: LD_STRING All
2571: PPUSH
2572: LD_INT 1
2574: PPUSH
2575: CALL_OW 101
// SA_OnJoanAndLisaJoinedAlliance ( ( lisa in zachraneni and IsLive ( lisa ) ) , ( joan in zachraneni and IsLive ( joan ) ) ) ;
2579: LD_EXP 33
2583: PUSH
2584: LD_LOC 5
2588: IN
2589: PUSH
2590: LD_EXP 33
2594: PPUSH
2595: CALL_OW 300
2599: AND
2600: PPUSH
2601: LD_EXP 30
2605: PUSH
2606: LD_LOC 5
2610: IN
2611: PUSH
2612: LD_EXP 30
2616: PPUSH
2617: CALL_OW 300
2621: AND
2622: PPUSH
2623: CALL 12186 0 2
// addmedal ( Save , - 1 ) ;
2627: LD_STRING Save
2629: PPUSH
2630: LD_INT 1
2632: NEG
2633: PPUSH
2634: CALL_OW 101
// if zabil then
2638: LD_EXP 25
2642: IFFALSE 2657
// addmedal ( Friendship , - 1 ) else
2644: LD_STRING Friendship
2646: PPUSH
2647: LD_INT 1
2649: NEG
2650: PPUSH
2651: CALL_OW 101
2655: GO 2667
// addmedal ( Friendship , 1 ) ;
2657: LD_STRING Friendship
2659: PPUSH
2660: LD_INT 1
2662: PPUSH
2663: CALL_OW 101
// givemedals ( MAIN ) ;
2667: LD_STRING MAIN
2669: PPUSH
2670: CALL_OW 102
// rewardpeople ( zachraneni ^ [ john ] ) ;
2674: LD_LOC 5
2678: PUSH
2679: LD_EXP 27
2683: PUSH
2684: EMPTY
2685: LIST
2686: ADD
2687: PPUSH
2688: CALL_OW 43
// saveitall ;
2692: CALL 3602 0 0
// youwin ;
2696: CALL_OW 103
// end else
2700: GO 3098
// begin zachraneni = filterunitsinarea ( vychod , [ [ f_side , al ] ] ) diff [ john , roth ] ;
2702: LD_ADDR_LOC 5
2706: PUSH
2707: LD_INT 13
2709: PPUSH
2710: LD_INT 22
2712: PUSH
2713: LD_EXP 2
2717: PUSH
2718: EMPTY
2719: LIST
2720: LIST
2721: PUSH
2722: EMPTY
2723: LIST
2724: PPUSH
2725: CALL_OW 70
2729: PUSH
2730: LD_EXP 27
2734: PUSH
2735: LD_EXP 29
2739: PUSH
2740: EMPTY
2741: LIST
2742: LIST
2743: DIFF
2744: ST_TO_ADDR
// tmp2 = 0 + zachraneni ;
2745: LD_ADDR_VAR 0 2
2749: PUSH
2750: LD_INT 0
2752: PUSH
2753: LD_LOC 5
2757: PLUS
2758: ST_TO_ADDR
// if tmp2 <= zustalo_malo then
2759: LD_VAR 0 2
2763: PUSH
2764: LD_LOC 4
2768: LESSEQUAL
2769: IFFALSE 2785
// say ( john , D5-JMM-1a ) else
2771: LD_EXP 27
2775: PPUSH
2776: LD_STRING D5-JMM-1a
2778: PPUSH
2779: CALL_OW 88
2783: GO 2797
// say ( john , D5-JMM-1 ) ;
2785: LD_EXP 27
2789: PPUSH
2790: LD_STRING D5-JMM-1
2792: PPUSH
2793: CALL_OW 88
// if lisamet = 2 then
2797: LD_EXP 53
2801: PUSH
2802: LD_INT 2
2804: EQUAL
2805: IFFALSE 2821
// tmp2 = tmp2 + 1 ;
2807: LD_ADDR_VAR 0 2
2811: PUSH
2812: LD_VAR 0 2
2816: PUSH
2817: LD_INT 1
2819: PLUS
2820: ST_TO_ADDR
// if frankmet then
2821: LD_EXP 52
2825: IFFALSE 2841
// tmp2 = tmp2 - 1 ;
2827: LD_ADDR_VAR 0 2
2831: PUSH
2832: LD_VAR 0 2
2836: PUSH
2837: LD_INT 1
2839: MINUS
2840: ST_TO_ADDR
// if joanmet then
2841: LD_EXP 51
2845: IFFALSE 2861
// tmp2 = tmp2 - 1 ;
2847: LD_ADDR_VAR 0 2
2851: PUSH
2852: LD_VAR 0 2
2856: PUSH
2857: LD_INT 1
2859: MINUS
2860: ST_TO_ADDR
// if contacted < ( 0 + moji_backup ) then
2861: LD_EXP 24
2865: PUSH
2866: LD_INT 0
2868: PUSH
2869: LD_EXP 50
2873: PLUS
2874: LESS
2875: IFFALSE 2890
// addmedal ( All , - 1 ) else
2877: LD_STRING All
2879: PPUSH
2880: LD_INT 1
2882: NEG
2883: PPUSH
2884: CALL_OW 101
2888: GO 2908
// begin medal1 := true ;
2890: LD_ADDR_VAR 0 5
2894: PUSH
2895: LD_INT 1
2897: ST_TO_ADDR
// addmedal ( All , 1 ) ;
2898: LD_STRING All
2900: PPUSH
2901: LD_INT 1
2903: PPUSH
2904: CALL_OW 101
// end ; SA_OnJoanAndLisaJoinedAlliance ( ( lisa in zachraneni and IsLive ( lisa ) ) , ( joan in zachraneni and IsLive ( joan ) ) ) ;
2908: LD_EXP 33
2912: PUSH
2913: LD_LOC 5
2917: IN
2918: PUSH
2919: LD_EXP 33
2923: PPUSH
2924: CALL_OW 300
2928: AND
2929: PPUSH
2930: LD_EXP 30
2934: PUSH
2935: LD_LOC 5
2939: IN
2940: PUSH
2941: LD_EXP 30
2945: PPUSH
2946: CALL_OW 300
2950: AND
2951: PPUSH
2952: CALL 12186 0 2
// if tmp2 < ( 0 + moji_backup ) then
2956: LD_VAR 0 2
2960: PUSH
2961: LD_INT 0
2963: PUSH
2964: LD_EXP 50
2968: PLUS
2969: LESS
2970: IFFALSE 2985
// addmedal ( Save , - 1 ) else
2972: LD_STRING Save
2974: PPUSH
2975: LD_INT 1
2977: NEG
2978: PPUSH
2979: CALL_OW 101
2983: GO 3003
// begin medal2 := true ;
2985: LD_ADDR_VAR 0 6
2989: PUSH
2990: LD_INT 1
2992: ST_TO_ADDR
// addmedal ( Save , 1 ) ;
2993: LD_STRING Save
2995: PPUSH
2996: LD_INT 1
2998: PPUSH
2999: CALL_OW 101
// end ; if zabil then
3003: LD_EXP 25
3007: IFFALSE 3022
// addmedal ( Friendship , - 1 ) else
3009: LD_STRING Friendship
3011: PPUSH
3012: LD_INT 1
3014: NEG
3015: PPUSH
3016: CALL_OW 101
3020: GO 3040
// begin medal3 := true ;
3022: LD_ADDR_VAR 0 7
3026: PUSH
3027: LD_INT 1
3029: ST_TO_ADDR
// addmedal ( Friendship , 1 ) ;
3030: LD_STRING Friendship
3032: PPUSH
3033: LD_INT 1
3035: PPUSH
3036: CALL_OW 101
// end ; SA_EndMission ( 4 , 1 , medal1 , medal2 , medal3 ) ;
3040: LD_INT 4
3042: PPUSH
3043: LD_INT 1
3045: PPUSH
3046: LD_VAR 0 5
3050: PPUSH
3051: LD_VAR 0 6
3055: PPUSH
3056: LD_VAR 0 7
3060: PPUSH
3061: CALL 12274 0 5
// givemedals ( MAIN ) ;
3065: LD_STRING MAIN
3067: PPUSH
3068: CALL_OW 102
// rewardpeople ( zachraneni ^ [ john ] ) ;
3072: LD_LOC 5
3076: PUSH
3077: LD_EXP 27
3081: PUSH
3082: EMPTY
3083: LIST
3084: ADD
3085: PPUSH
3086: CALL_OW 43
// saveitall ;
3090: CALL 3602 0 0
// youwin ;
3094: CALL_OW 103
// end ; end else
3098: GO 3599
// if not isinarea ( john , vychod ) then
3100: LD_EXP 27
3104: PPUSH
3105: LD_INT 13
3107: PPUSH
3108: CALL_OW 308
3112: NOT
3113: IFFALSE 3126
// begin john_vychod = false ;
3115: LD_ADDR_EXP 18
3119: PUSH
3120: LD_INT 0
3122: ST_TO_ADDR
// enable ;
3123: ENABLE
// end else
3124: GO 3599
// begin chybi = false ;
3126: LD_ADDR_VAR 0 3
3130: PUSH
3131: LD_INT 0
3133: ST_TO_ADDR
// for tmp in ( moji ^ mojivip ) do
3134: LD_ADDR_VAR 0 1
3138: PUSH
3139: LD_EXP 44
3143: PUSH
3144: LD_EXP 45
3148: ADD
3149: PUSH
3150: FOR_IN
3151: IFFALSE 3191
// if ( not isinarea ( tmp , vychod ) ) and isok ( tmp ) then
3153: LD_VAR 0 1
3157: PPUSH
3158: LD_INT 13
3160: PPUSH
3161: CALL_OW 308
3165: NOT
3166: PUSH
3167: LD_VAR 0 1
3171: PPUSH
3172: CALL_OW 302
3176: AND
3177: IFFALSE 3189
// begin chybi = true ;
3179: LD_ADDR_VAR 0 3
3183: PUSH
3184: LD_INT 1
3186: ST_TO_ADDR
// break ;
3187: GO 3191
// end ;
3189: GO 3150
3191: POP
3192: POP
// if not chybi then
3193: LD_VAR 0 3
3197: NOT
3198: IFFALSE 3598
// begin zachraneni = filterunitsinarea ( vychod , [ [ f_side , al ] ] ) diff [ john , roth ] ;
3200: LD_ADDR_LOC 5
3204: PUSH
3205: LD_INT 13
3207: PPUSH
3208: LD_INT 22
3210: PUSH
3211: LD_EXP 2
3215: PUSH
3216: EMPTY
3217: LIST
3218: LIST
3219: PUSH
3220: EMPTY
3221: LIST
3222: PPUSH
3223: CALL_OW 70
3227: PUSH
3228: LD_EXP 27
3232: PUSH
3233: LD_EXP 29
3237: PUSH
3238: EMPTY
3239: LIST
3240: LIST
3241: DIFF
3242: ST_TO_ADDR
// tmp2 = 0 + zachraneni ;
3243: LD_ADDR_VAR 0 2
3247: PUSH
3248: LD_INT 0
3250: PUSH
3251: LD_LOC 5
3255: PLUS
3256: ST_TO_ADDR
// if tmp2 <= zustalo_malo then
3257: LD_VAR 0 2
3261: PUSH
3262: LD_LOC 4
3266: LESSEQUAL
3267: IFFALSE 3283
// say ( john , D5-JMM-1a ) else
3269: LD_EXP 27
3273: PPUSH
3274: LD_STRING D5-JMM-1a
3276: PPUSH
3277: CALL_OW 88
3281: GO 3295
// say ( john , D5-JMM-1 ) ;
3283: LD_EXP 27
3287: PPUSH
3288: LD_STRING D5-JMM-1
3290: PPUSH
3291: CALL_OW 88
// if lisamet = 2 then
3295: LD_EXP 53
3299: PUSH
3300: LD_INT 2
3302: EQUAL
3303: IFFALSE 3319
// tmp2 = tmp2 + 1 ;
3305: LD_ADDR_VAR 0 2
3309: PUSH
3310: LD_VAR 0 2
3314: PUSH
3315: LD_INT 1
3317: PLUS
3318: ST_TO_ADDR
// if frankmet then
3319: LD_EXP 52
3323: IFFALSE 3339
// tmp2 = tmp2 - 1 ;
3325: LD_ADDR_VAR 0 2
3329: PUSH
3330: LD_VAR 0 2
3334: PUSH
3335: LD_INT 1
3337: MINUS
3338: ST_TO_ADDR
// if joanmet then
3339: LD_EXP 51
3343: IFFALSE 3359
// tmp2 = tmp2 - 1 ;
3345: LD_ADDR_VAR 0 2
3349: PUSH
3350: LD_VAR 0 2
3354: PUSH
3355: LD_INT 1
3357: MINUS
3358: ST_TO_ADDR
// if contacted < ( 0 + moji_backup ) then
3359: LD_EXP 24
3363: PUSH
3364: LD_INT 0
3366: PUSH
3367: LD_EXP 50
3371: PLUS
3372: LESS
3373: IFFALSE 3388
// addmedal ( All , - 1 ) else
3375: LD_STRING All
3377: PPUSH
3378: LD_INT 1
3380: NEG
3381: PPUSH
3382: CALL_OW 101
3386: GO 3406
// begin medal1 := true ;
3388: LD_ADDR_VAR 0 5
3392: PUSH
3393: LD_INT 1
3395: ST_TO_ADDR
// addmedal ( All , 1 ) ;
3396: LD_STRING All
3398: PPUSH
3399: LD_INT 1
3401: PPUSH
3402: CALL_OW 101
// end ; SA_OnJoanAndLisaJoinedAlliance ( ( lisa in zachraneni and IsLive ( lisa ) ) , ( joan in zachraneni and IsLive ( joan ) ) ) ;
3406: LD_EXP 33
3410: PUSH
3411: LD_LOC 5
3415: IN
3416: PUSH
3417: LD_EXP 33
3421: PPUSH
3422: CALL_OW 300
3426: AND
3427: PPUSH
3428: LD_EXP 30
3432: PUSH
3433: LD_LOC 5
3437: IN
3438: PUSH
3439: LD_EXP 30
3443: PPUSH
3444: CALL_OW 300
3448: AND
3449: PPUSH
3450: CALL 12186 0 2
// if tmp2 < ( 0 + moji_backup ) then
3454: LD_VAR 0 2
3458: PUSH
3459: LD_INT 0
3461: PUSH
3462: LD_EXP 50
3466: PLUS
3467: LESS
3468: IFFALSE 3483
// addmedal ( Save , - 1 ) else
3470: LD_STRING Save
3472: PPUSH
3473: LD_INT 1
3475: NEG
3476: PPUSH
3477: CALL_OW 101
3481: GO 3501
// begin addmedal ( Save , 1 ) ;
3483: LD_STRING Save
3485: PPUSH
3486: LD_INT 1
3488: PPUSH
3489: CALL_OW 101
// medal2 := true ;
3493: LD_ADDR_VAR 0 6
3497: PUSH
3498: LD_INT 1
3500: ST_TO_ADDR
// end ; if zabil then
3501: LD_EXP 25
3505: IFFALSE 3520
// addmedal ( Friendship , - 1 ) else
3507: LD_STRING Friendship
3509: PPUSH
3510: LD_INT 1
3512: NEG
3513: PPUSH
3514: CALL_OW 101
3518: GO 3538
// begin medal3 := true ;
3520: LD_ADDR_VAR 0 7
3524: PUSH
3525: LD_INT 1
3527: ST_TO_ADDR
// addmedal ( Friendship , 1 ) ;
3528: LD_STRING Friendship
3530: PPUSH
3531: LD_INT 1
3533: PPUSH
3534: CALL_OW 101
// end ; SA_EndMission ( 4 , 1 , medal1 , medal2 , medal3 ) ;
3538: LD_INT 4
3540: PPUSH
3541: LD_INT 1
3543: PPUSH
3544: LD_VAR 0 5
3548: PPUSH
3549: LD_VAR 0 6
3553: PPUSH
3554: LD_VAR 0 7
3558: PPUSH
3559: CALL 12274 0 5
// givemedals ( MAIN ) ;
3563: LD_STRING MAIN
3565: PPUSH
3566: CALL_OW 102
// rewardpeople ( zachraneni ^ [ john ] ) ;
3570: LD_LOC 5
3574: PUSH
3575: LD_EXP 27
3579: PUSH
3580: EMPTY
3581: LIST
3582: ADD
3583: PPUSH
3584: CALL_OW 43
// saveitall ;
3588: CALL 3602 0 0
// youwin ;
3592: CALL_OW 103
// end else
3596: GO 3599
// enable ;
3598: ENABLE
// end ; end ;
3599: PPOPN 7
3601: END
// function saveitall ; var tmp , vybrani , odpad ; begin
3602: LD_INT 0
3604: PPUSH
3605: PPUSH
3606: PPUSH
3607: PPUSH
// savecharacters ( john , JMM ) ;
3608: LD_EXP 27
3612: PPUSH
3613: LD_STRING JMM
3615: PPUSH
3616: CALL_OW 38
// if cyrus then
3620: LD_EXP 32
3624: IFFALSE 3676
// begin savecharacters ( cyrus , Cyrus ) ;
3626: LD_EXP 32
3630: PPUSH
3631: LD_STRING Cyrus
3633: PPUSH
3634: CALL_OW 38
// if cyrus in zachraneni then
3638: LD_EXP 32
3642: PUSH
3643: LD_LOC 5
3647: IN
3648: IFFALSE 3664
// savevariable ( al , cyrus_side ) else
3650: LD_EXP 2
3654: PPUSH
3655: LD_STRING cyrus_side
3657: PPUSH
3658: CALL_OW 39
3662: GO 3676
// savevariable ( am , cyrus_side ) ;
3664: LD_EXP 1
3668: PPUSH
3669: LD_STRING cyrus_side
3671: PPUSH
3672: CALL_OW 39
// end ; if bobby then
3676: LD_EXP 31
3680: IFFALSE 3732
// begin savecharacters ( bobby , Bobby ) ;
3682: LD_EXP 31
3686: PPUSH
3687: LD_STRING Bobby
3689: PPUSH
3690: CALL_OW 38
// if bobby in zachraneni then
3694: LD_EXP 31
3698: PUSH
3699: LD_LOC 5
3703: IN
3704: IFFALSE 3720
// savevariable ( al , bobby_side ) else
3706: LD_EXP 2
3710: PPUSH
3711: LD_STRING bobby_side
3713: PPUSH
3714: CALL_OW 39
3718: GO 3732
// savevariable ( am , bobby_side ) ;
3720: LD_EXP 1
3724: PPUSH
3725: LD_STRING bobby_side
3727: PPUSH
3728: CALL_OW 39
// end ; if lisa then
3732: LD_EXP 33
3736: IFFALSE 3788
// begin savecharacters ( lisa , Lisa ) ;
3738: LD_EXP 33
3742: PPUSH
3743: LD_STRING Lisa
3745: PPUSH
3746: CALL_OW 38
// if lisa in zachraneni then
3750: LD_EXP 33
3754: PUSH
3755: LD_LOC 5
3759: IN
3760: IFFALSE 3776
// savevariable ( al , lisa_side ) else
3762: LD_EXP 2
3766: PPUSH
3767: LD_STRING lisa_side
3769: PPUSH
3770: CALL_OW 39
3774: GO 3788
// savevariable ( am , lisa_side ) ;
3776: LD_EXP 1
3780: PPUSH
3781: LD_STRING lisa_side
3783: PPUSH
3784: CALL_OW 39
// end ; if frank then
3788: LD_EXP 34
3792: IFFALSE 3844
// begin savecharacters ( frank , Frank ) ;
3794: LD_EXP 34
3798: PPUSH
3799: LD_STRING Frank
3801: PPUSH
3802: CALL_OW 38
// if frank in zachraneni then
3806: LD_EXP 34
3810: PUSH
3811: LD_LOC 5
3815: IN
3816: IFFALSE 3832
// savevariable ( al , frank_side ) else
3818: LD_EXP 2
3822: PPUSH
3823: LD_STRING frank_side
3825: PPUSH
3826: CALL_OW 39
3830: GO 3844
// savevariable ( am , frank_side ) ;
3832: LD_EXP 1
3836: PPUSH
3837: LD_STRING frank_side
3839: PPUSH
3840: CALL_OW 39
// end ; if joan then
3844: LD_EXP 30
3848: IFFALSE 3900
// begin savecharacters ( joan , Joan ) ;
3850: LD_EXP 30
3854: PPUSH
3855: LD_STRING Joan
3857: PPUSH
3858: CALL_OW 38
// if joan in zachraneni then
3862: LD_EXP 30
3866: PUSH
3867: LD_LOC 5
3871: IN
3872: IFFALSE 3888
// savevariable ( al , joan_side ) else
3874: LD_EXP 2
3878: PPUSH
3879: LD_STRING joan_side
3881: PPUSH
3882: CALL_OW 39
3886: GO 3900
// savevariable ( am , joan_side ) ;
3888: LD_EXP 1
3892: PPUSH
3893: LD_STRING joan_side
3895: PPUSH
3896: CALL_OW 39
// end ; if yamoko then
3900: LD_EXP 38
3904: IFFALSE 3956
// begin savecharacters ( yamoko , Yamoko ) ;
3906: LD_EXP 38
3910: PPUSH
3911: LD_STRING Yamoko
3913: PPUSH
3914: CALL_OW 38
// if yamoko in zachraneni then
3918: LD_EXP 38
3922: PUSH
3923: LD_LOC 5
3927: IN
3928: IFFALSE 3944
// savevariable ( al , yamoko_side ) else
3930: LD_EXP 2
3934: PPUSH
3935: LD_STRING yamoko_side
3937: PPUSH
3938: CALL_OW 39
3942: GO 3956
// savevariable ( am , yamoko_side ) ;
3944: LD_EXP 1
3948: PPUSH
3949: LD_STRING yamoko_side
3951: PPUSH
3952: CALL_OW 39
// end ; if markc then
3956: LD_EXP 35
3960: IFFALSE 4012
// begin savecharacters ( markc , Cornell ) ;
3962: LD_EXP 35
3966: PPUSH
3967: LD_STRING Cornell
3969: PPUSH
3970: CALL_OW 38
// if markc in zachraneni then
3974: LD_EXP 35
3978: PUSH
3979: LD_LOC 5
3983: IN
3984: IFFALSE 4000
// savevariable ( al , markc_side ) else
3986: LD_EXP 2
3990: PPUSH
3991: LD_STRING markc_side
3993: PPUSH
3994: CALL_OW 39
3998: GO 4012
// savevariable ( am , markc_side ) ;
4000: LD_EXP 1
4004: PPUSH
4005: LD_STRING markc_side
4007: PPUSH
4008: CALL_OW 39
// end ; if brown then
4012: LD_EXP 41
4016: IFFALSE 4068
// begin savecharacters ( brown , Brown ) ;
4018: LD_EXP 41
4022: PPUSH
4023: LD_STRING Brown
4025: PPUSH
4026: CALL_OW 38
// if brown in zachraneni then
4030: LD_EXP 41
4034: PUSH
4035: LD_LOC 5
4039: IN
4040: IFFALSE 4056
// savevariable ( al , brown_side ) else
4042: LD_EXP 2
4046: PPUSH
4047: LD_STRING brown_side
4049: PPUSH
4050: CALL_OW 39
4054: GO 4068
// savevariable ( am , brown_side ) ;
4056: LD_EXP 1
4060: PPUSH
4061: LD_STRING brown_side
4063: PPUSH
4064: CALL_OW 39
// end ; if lucy then
4068: LD_EXP 42
4072: IFFALSE 4124
// begin savecharacters ( lucy , Donaldson ) ;
4074: LD_EXP 42
4078: PPUSH
4079: LD_STRING Donaldson
4081: PPUSH
4082: CALL_OW 38
// if lucy in zachraneni then
4086: LD_EXP 42
4090: PUSH
4091: LD_LOC 5
4095: IN
4096: IFFALSE 4112
// savevariable ( al , lucy_side ) else
4098: LD_EXP 2
4102: PPUSH
4103: LD_STRING lucy_side
4105: PPUSH
4106: CALL_OW 39
4110: GO 4124
// savevariable ( am , lucy_side ) ;
4112: LD_EXP 1
4116: PPUSH
4117: LD_STRING lucy_side
4119: PPUSH
4120: CALL_OW 39
// end ; if tim then
4124: LD_EXP 36
4128: IFFALSE 4180
// begin savecharacters ( tim , Gladstone ) ;
4130: LD_EXP 36
4134: PPUSH
4135: LD_STRING Gladstone
4137: PPUSH
4138: CALL_OW 38
// if tim in zachraneni then
4142: LD_EXP 36
4146: PUSH
4147: LD_LOC 5
4151: IN
4152: IFFALSE 4168
// savevariable ( al , tim_side ) else
4154: LD_EXP 2
4158: PPUSH
4159: LD_STRING tim_side
4161: PPUSH
4162: CALL_OW 39
4166: GO 4180
// savevariable ( am , tim_side ) ;
4168: LD_EXP 1
4172: PPUSH
4173: LD_STRING tim_side
4175: PPUSH
4176: CALL_OW 39
// end ; if denis then
4180: LD_EXP 37
4184: IFFALSE 4253
// begin savecharacters ( denis , Denis ) ;
4186: LD_EXP 37
4190: PPUSH
4191: LD_STRING Denis
4193: PPUSH
4194: CALL_OW 38
// if denis in zachraneni then
4198: LD_EXP 37
4202: PUSH
4203: LD_LOC 5
4207: IN
4208: IFFALSE 4224
// savevariable ( al , denis_side ) else
4210: LD_EXP 2
4214: PPUSH
4215: LD_STRING denis_side
4217: PPUSH
4218: CALL_OW 39
4222: GO 4236
// savevariable ( am , denis_side ) ;
4224: LD_EXP 1
4228: PPUSH
4229: LD_STRING denis_side
4231: PPUSH
4232: CALL_OW 39
// savevariable ( getside ( denis ) , denis_side ) ;
4236: LD_EXP 37
4240: PPUSH
4241: CALL_OW 255
4245: PPUSH
4246: LD_STRING denis_side
4248: PPUSH
4249: CALL_OW 39
// end ; if gary then
4253: LD_EXP 39
4257: IFFALSE 4309
// begin savecharacters ( gary , Gary ) ;
4259: LD_EXP 39
4263: PPUSH
4264: LD_STRING Gary
4266: PPUSH
4267: CALL_OW 38
// if gary in zachraneni then
4271: LD_EXP 39
4275: PUSH
4276: LD_LOC 5
4280: IN
4281: IFFALSE 4297
// savevariable ( al , gary_side ) else
4283: LD_EXP 2
4287: PPUSH
4288: LD_STRING gary_side
4290: PPUSH
4291: CALL_OW 39
4295: GO 4309
// savevariable ( am , gary_side ) ;
4297: LD_EXP 1
4301: PPUSH
4302: LD_STRING gary_side
4304: PPUSH
4305: CALL_OW 39
// end ; if simms then
4309: LD_EXP 40
4313: IFFALSE 4365
// begin savecharacters ( simms , Simms ) ;
4315: LD_EXP 40
4319: PPUSH
4320: LD_STRING Simms
4322: PPUSH
4323: CALL_OW 38
// if simms in zachraneni then
4327: LD_EXP 40
4331: PUSH
4332: LD_LOC 5
4336: IN
4337: IFFALSE 4353
// savevariable ( al , simms_side ) else
4339: LD_EXP 2
4343: PPUSH
4344: LD_STRING simms_side
4346: PPUSH
4347: CALL_OW 39
4351: GO 4365
// savevariable ( am , simms_side ) ;
4353: LD_EXP 1
4357: PPUSH
4358: LD_STRING simms_side
4360: PPUSH
4361: CALL_OW 39
// end ; vybrani = [ ] ;
4365: LD_ADDR_VAR 0 3
4369: PUSH
4370: EMPTY
4371: ST_TO_ADDR
// odpad = [ ] ;
4372: LD_ADDR_VAR 0 4
4376: PUSH
4377: EMPTY
4378: ST_TO_ADDR
// if testcharacters ( otherwithJMM ) then
4379: LD_STRING otherwithJMM
4381: PPUSH
4382: CALL_OW 28
4386: IFFALSE 4403
// vybrani = createcharacterset ( otherwithJMM ) else
4388: LD_ADDR_VAR 0 3
4392: PUSH
4393: LD_STRING otherwithJMM
4395: PPUSH
4396: CALL_OW 31
4400: ST_TO_ADDR
4401: GO 4416
// buildquery ( neny otherwithJMM , [ OK ] ) ;
4403: LD_STRING neny otherwithJMM
4405: PPUSH
4406: LD_STRING OK
4408: PUSH
4409: EMPTY
4410: LIST
4411: PPUSH
4412: CALL_OW 99
// if testcharacters ( othernotJMM ) then
4416: LD_STRING othernotJMM
4418: PPUSH
4419: CALL_OW 28
4423: IFFALSE 4440
// odpad = createcharacterset ( othernotJMM ) else
4425: LD_ADDR_VAR 0 4
4429: PUSH
4430: LD_STRING othernotJMM
4432: PPUSH
4433: CALL_OW 31
4437: ST_TO_ADDR
4438: GO 4453
// buildquery ( neny othernotJMM , [ OK ] ) ;
4440: LD_STRING neny othernotJMM
4442: PPUSH
4443: LD_STRING OK
4445: PUSH
4446: EMPTY
4447: LIST
4448: PPUSH
4449: CALL_OW 99
// tmp = zachraneni diff [ john , joan , bobby , cyrus , lisa , frank , markc , brown , lucy , tim , denis , yamoko , gary , simms ] ;
4453: LD_ADDR_VAR 0 2
4457: PUSH
4458: LD_LOC 5
4462: PUSH
4463: LD_EXP 27
4467: PUSH
4468: LD_EXP 30
4472: PUSH
4473: LD_EXP 31
4477: PUSH
4478: LD_EXP 32
4482: PUSH
4483: LD_EXP 33
4487: PUSH
4488: LD_EXP 34
4492: PUSH
4493: LD_EXP 35
4497: PUSH
4498: LD_EXP 41
4502: PUSH
4503: LD_EXP 42
4507: PUSH
4508: LD_EXP 36
4512: PUSH
4513: LD_EXP 37
4517: PUSH
4518: LD_EXP 38
4522: PUSH
4523: LD_EXP 39
4527: PUSH
4528: LD_EXP 40
4532: PUSH
4533: EMPTY
4534: LIST
4535: LIST
4536: LIST
4537: LIST
4538: LIST
4539: LIST
4540: LIST
4541: LIST
4542: LIST
4543: LIST
4544: LIST
4545: LIST
4546: LIST
4547: LIST
4548: DIFF
4549: ST_TO_ADDR
// savecharacters ( tmp , otherwithJMM ) ;
4550: LD_VAR 0 2
4554: PPUSH
4555: LD_STRING otherwithJMM
4557: PPUSH
4558: CALL_OW 38
// savecharacters ( ( vybrani diff tmp ) union odpad , othernotJMM ) ;
4562: LD_VAR 0 3
4566: PUSH
4567: LD_VAR 0 2
4571: DIFF
4572: PUSH
4573: LD_VAR 0 4
4577: UNION
4578: PPUSH
4579: LD_STRING othernotJMM
4581: PPUSH
4582: CALL_OW 38
// end ; end_of_file
4586: LD_VAR 0 1
4590: RET
// export john , powell , roth , joan , bobby , cyrus , lisa , frank , markc , tim , denis , yamoko , gary , simms , brown , lucy , zbytekz11 ; export moji , mojivip , ostatnivip ; export mista , areas , pocetmist ; export moji_backup ; export function prepare_americans ; var tmp , tmp2 , tmp3 ; begin
4591: LD_INT 0
4593: PPUSH
4594: PPUSH
4595: PPUSH
4596: PPUSH
// changesidefog ( oth , al ) ;
4597: LD_EXP 3
4601: PPUSH
4602: LD_EXP 2
4606: PPUSH
4607: CALL_OW 343
// uc_side = am ;
4611: LD_ADDR_OWVAR 20
4615: PUSH
4616: LD_EXP 1
4620: ST_TO_ADDR
// uc_nation = nation_american ;
4621: LD_ADDR_OWVAR 21
4625: PUSH
4626: LD_INT 1
4628: ST_TO_ADDR
// preparesoldier ( sex_male , ams00 ) ;
4629: LD_INT 1
4631: PPUSH
4632: LD_EXP 4
4636: PPUSH
4637: CALL_OW 381
// tmp = createhuman ;
4641: LD_ADDR_VAR 0 2
4645: PUSH
4646: CALL_OW 44
4650: ST_TO_ADDR
// placeunitxy ( tmp , 43 , 14 , false ) ;
4651: LD_VAR 0 2
4655: PPUSH
4656: LD_INT 43
4658: PPUSH
4659: LD_INT 14
4661: PPUSH
4662: LD_INT 0
4664: PPUSH
4665: CALL_OW 48
// commoveunit ( tmp , ambunk0 ) ;
4669: LD_VAR 0 2
4673: PPUSH
4674: LD_INT 40
4676: PPUSH
4677: CALL_OW 112
// preparesoldier ( sex_male , ams01 ) ;
4681: LD_INT 1
4683: PPUSH
4684: LD_EXP 5
4688: PPUSH
4689: CALL_OW 381
// tmp = createhuman ;
4693: LD_ADDR_VAR 0 2
4697: PUSH
4698: CALL_OW 44
4702: ST_TO_ADDR
// placeunitxy ( tmp , 93 , 17 , false ) ;
4703: LD_VAR 0 2
4707: PPUSH
4708: LD_INT 93
4710: PPUSH
4711: LD_INT 17
4713: PPUSH
4714: LD_INT 0
4716: PPUSH
4717: CALL_OW 48
// commoveunit ( tmp , ambunk1 ) ;
4721: LD_VAR 0 2
4725: PPUSH
4726: LD_INT 41
4728: PPUSH
4729: CALL_OW 112
// preparesoldier ( sex_male , ams02 ) ;
4733: LD_INT 1
4735: PPUSH
4736: LD_EXP 6
4740: PPUSH
4741: CALL_OW 381
// tmp = createhuman ;
4745: LD_ADDR_VAR 0 2
4749: PUSH
4750: CALL_OW 44
4754: ST_TO_ADDR
// placeunitxy ( tmp , 148 , 88 , false ) ;
4755: LD_VAR 0 2
4759: PPUSH
4760: LD_INT 148
4762: PPUSH
4763: LD_INT 88
4765: PPUSH
4766: LD_INT 0
4768: PPUSH
4769: CALL_OW 48
// commoveunit ( tmp , ambunk2 ) ;
4773: LD_VAR 0 2
4777: PPUSH
4778: LD_INT 36
4780: PPUSH
4781: CALL_OW 112
// preparesoldier ( sex_male , ams03 ) ;
4785: LD_INT 1
4787: PPUSH
4788: LD_EXP 7
4792: PPUSH
4793: CALL_OW 381
// tmp = createhuman ;
4797: LD_ADDR_VAR 0 2
4801: PUSH
4802: CALL_OW 44
4806: ST_TO_ADDR
// placeunitxy ( tmp , 108 , 87 , false ) ;
4807: LD_VAR 0 2
4811: PPUSH
4812: LD_INT 108
4814: PPUSH
4815: LD_INT 87
4817: PPUSH
4818: LD_INT 0
4820: PPUSH
4821: CALL_OW 48
// commoveunit ( tmp , ambunk3 ) ;
4825: LD_VAR 0 2
4829: PPUSH
4830: LD_INT 33
4832: PPUSH
4833: CALL_OW 112
// preparesoldier ( sex_male , ams04 ) ;
4837: LD_INT 1
4839: PPUSH
4840: LD_EXP 8
4844: PPUSH
4845: CALL_OW 381
// tmp = createhuman ;
4849: LD_ADDR_VAR 0 2
4853: PUSH
4854: CALL_OW 44
4858: ST_TO_ADDR
// placeunitxy ( tmp , 46 , 73 , false ) ;
4859: LD_VAR 0 2
4863: PPUSH
4864: LD_INT 46
4866: PPUSH
4867: LD_INT 73
4869: PPUSH
4870: LD_INT 0
4872: PPUSH
4873: CALL_OW 48
// commoveunit ( tmp , ambunk4 ) ;
4877: LD_VAR 0 2
4881: PPUSH
4882: LD_INT 38
4884: PPUSH
4885: CALL_OW 112
// preparesoldier ( sex_male , ams05 ) ;
4889: LD_INT 1
4891: PPUSH
4892: LD_EXP 9
4896: PPUSH
4897: CALL_OW 381
// tmp = createhuman ;
4901: LD_ADDR_VAR 0 2
4905: PUSH
4906: CALL_OW 44
4910: ST_TO_ADDR
// placeunitxy ( tmp , 48 , 54 , false ) ;
4911: LD_VAR 0 2
4915: PPUSH
4916: LD_INT 48
4918: PPUSH
4919: LD_INT 54
4921: PPUSH
4922: LD_INT 0
4924: PPUSH
4925: CALL_OW 48
// commoveunit ( tmp , ambunk5 ) ;
4929: LD_VAR 0 2
4933: PPUSH
4934: LD_INT 28
4936: PPUSH
4937: CALL_OW 112
// preparesoldier ( sex_male , ams06 ) ;
4941: LD_INT 1
4943: PPUSH
4944: LD_EXP 10
4948: PPUSH
4949: CALL_OW 381
// tmp = createhuman ;
4953: LD_ADDR_VAR 0 2
4957: PUSH
4958: CALL_OW 44
4962: ST_TO_ADDR
// placeunitxy ( tmp , 46 , 44 , false ) ;
4963: LD_VAR 0 2
4967: PPUSH
4968: LD_INT 46
4970: PPUSH
4971: LD_INT 44
4973: PPUSH
4974: LD_INT 0
4976: PPUSH
4977: CALL_OW 48
// commoveunit ( tmp , ambunk6 ) ;
4981: LD_VAR 0 2
4985: PPUSH
4986: LD_INT 31
4988: PPUSH
4989: CALL_OW 112
// vc_control = control_manual ;
4993: LD_ADDR_OWVAR 38
4997: PUSH
4998: LD_INT 1
5000: ST_TO_ADDR
// vc_engine = engine_siberite ;
5001: LD_ADDR_OWVAR 39
5005: PUSH
5006: LD_INT 3
5008: ST_TO_ADDR
// vc_chassis = amv0_ch ;
5009: LD_ADDR_OWVAR 37
5013: PUSH
5014: LD_EXP 11
5018: ST_TO_ADDR
// vc_weapon = amv0_wp ;
5019: LD_ADDR_OWVAR 40
5023: PUSH
5024: LD_EXP 12
5028: ST_TO_ADDR
// tmp = createvehicle ;
5029: LD_ADDR_VAR 0 2
5033: PUSH
5034: CALL_OW 45
5038: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
5039: LD_VAR 0 2
5043: PPUSH
5044: LD_INT 5
5046: PPUSH
5047: CALL_OW 233
// placeunitxy ( tmp , 131 , 61 , false ) ;
5051: LD_VAR 0 2
5055: PPUSH
5056: LD_INT 131
5058: PPUSH
5059: LD_INT 61
5061: PPUSH
5062: LD_INT 0
5064: PPUSH
5065: CALL_OW 48
// preparemechanic ( sex_male , amv0_drv ) ;
5069: LD_INT 1
5071: PPUSH
5072: LD_EXP 13
5076: PPUSH
5077: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
5081: CALL_OW 44
5085: PPUSH
5086: LD_VAR 0 2
5090: PPUSH
5091: CALL_OW 52
// comagressivemove ( tmp , 105 , 42 ) ;
5095: LD_VAR 0 2
5099: PPUSH
5100: LD_INT 105
5102: PPUSH
5103: LD_INT 42
5105: PPUSH
5106: CALL_OW 114
// addcomagressivemove ( tmp , 98 , 46 ) ;
5110: LD_VAR 0 2
5114: PPUSH
5115: LD_INT 98
5117: PPUSH
5118: LD_INT 46
5120: PPUSH
5121: CALL_OW 174
// addcomagressivemove ( tmp , 100 , 57 ) ;
5125: LD_VAR 0 2
5129: PPUSH
5130: LD_INT 100
5132: PPUSH
5133: LD_INT 57
5135: PPUSH
5136: CALL_OW 174
// addcomagressivemove ( tmp , 114 , 67 ) ;
5140: LD_VAR 0 2
5144: PPUSH
5145: LD_INT 114
5147: PPUSH
5148: LD_INT 67
5150: PPUSH
5151: CALL_OW 174
// addcomagressivemove ( tmp , 134 , 64 ) ;
5155: LD_VAR 0 2
5159: PPUSH
5160: LD_INT 134
5162: PPUSH
5163: LD_INT 64
5165: PPUSH
5166: CALL_OW 174
// addcomagressivemove ( tmp , 105 , 42 ) ;
5170: LD_VAR 0 2
5174: PPUSH
5175: LD_INT 105
5177: PPUSH
5178: LD_INT 42
5180: PPUSH
5181: CALL_OW 174
// vc_control = control_manual ;
5185: LD_ADDR_OWVAR 38
5189: PUSH
5190: LD_INT 1
5192: ST_TO_ADDR
// vc_engine = engine_siberite ;
5193: LD_ADDR_OWVAR 39
5197: PUSH
5198: LD_INT 3
5200: ST_TO_ADDR
// vc_chassis = amv1_ch ;
5201: LD_ADDR_OWVAR 37
5205: PUSH
5206: LD_EXP 14
5210: ST_TO_ADDR
// vc_weapon = amv1_wp ;
5211: LD_ADDR_OWVAR 40
5215: PUSH
5216: LD_EXP 15
5220: ST_TO_ADDR
// tmp = createvehicle ;
5221: LD_ADDR_VAR 0 2
5225: PUSH
5226: CALL_OW 45
5230: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
5231: LD_VAR 0 2
5235: PPUSH
5236: LD_INT 5
5238: PPUSH
5239: CALL_OW 233
// placeunitxy ( tmp , 110 , 96 , false ) ;
5243: LD_VAR 0 2
5247: PPUSH
5248: LD_INT 110
5250: PPUSH
5251: LD_INT 96
5253: PPUSH
5254: LD_INT 0
5256: PPUSH
5257: CALL_OW 48
// preparemechanic ( sex_male , amv1_drv ) ;
5261: LD_INT 1
5263: PPUSH
5264: LD_EXP 16
5268: PPUSH
5269: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
5273: CALL_OW 44
5277: PPUSH
5278: LD_VAR 0 2
5282: PPUSH
5283: CALL_OW 52
// comagressivemove ( tmp , 91 , 87 ) ;
5287: LD_VAR 0 2
5291: PPUSH
5292: LD_INT 91
5294: PPUSH
5295: LD_INT 87
5297: PPUSH
5298: CALL_OW 114
// addcomagressivemove ( tmp , 71 , 83 ) ;
5302: LD_VAR 0 2
5306: PPUSH
5307: LD_INT 71
5309: PPUSH
5310: LD_INT 83
5312: PPUSH
5313: CALL_OW 174
// addcomagressivemove ( tmp , 54 , 70 ) ;
5317: LD_VAR 0 2
5321: PPUSH
5322: LD_INT 54
5324: PPUSH
5325: LD_INT 70
5327: PPUSH
5328: CALL_OW 174
// addcomagressivemove ( tmp , 62 , 87 ) ;
5332: LD_VAR 0 2
5336: PPUSH
5337: LD_INT 62
5339: PPUSH
5340: LD_INT 87
5342: PPUSH
5343: CALL_OW 174
// addcomagressivemove ( tmp , 86 , 99 ) ;
5347: LD_VAR 0 2
5351: PPUSH
5352: LD_INT 86
5354: PPUSH
5355: LD_INT 99
5357: PPUSH
5358: CALL_OW 174
// addcomagressivemove ( tmp , 91 , 87 ) ;
5362: LD_VAR 0 2
5366: PPUSH
5367: LD_INT 91
5369: PPUSH
5370: LD_INT 87
5372: PPUSH
5373: CALL_OW 174
// preparehuman ( sex_female , class_sniper , amv2_cl ) ;
5377: LD_INT 2
5379: PPUSH
5380: LD_INT 5
5382: PPUSH
5383: LD_EXP 17
5387: PPUSH
5388: CALL_OW 380
// tmp = createhuman ;
5392: LD_ADDR_VAR 0 2
5396: PUSH
5397: CALL_OW 44
5401: ST_TO_ADDR
// placeunitxy ( tmp , 80 , 31 , false ) ;
5402: LD_VAR 0 2
5406: PPUSH
5407: LD_INT 80
5409: PPUSH
5410: LD_INT 31
5412: PPUSH
5413: LD_INT 0
5415: PPUSH
5416: CALL_OW 48
// comhold ( tmp ) ;
5420: LD_VAR 0 2
5424: PPUSH
5425: CALL_OW 140
// uc_side = al ;
5429: LD_ADDR_OWVAR 20
5433: PUSH
5434: LD_EXP 2
5438: ST_TO_ADDR
// if checkcharacterset ( JMM ) then
5439: LD_STRING JMM
5441: PPUSH
5442: CALL_OW 29
5446: IFFALSE 5466
// john = createcharacterwithclass ( JMM , class_soldier ) else
5448: LD_ADDR_EXP 27
5452: PUSH
5453: LD_STRING JMM
5455: PPUSH
5456: LD_INT 1
5458: PPUSH
5459: CALL_OW 35
5463: ST_TO_ADDR
5464: GO 5479
// buildquery ( neny JMM , [ OK ] ) ;
5466: LD_STRING neny JMM
5468: PPUSH
5469: LD_STRING OK
5471: PUSH
5472: EMPTY
5473: LIST
5474: PPUSH
5475: CALL_OW 99
// roth = newcharacter ( Roth ) ;
5479: LD_ADDR_EXP 29
5483: PUSH
5484: LD_STRING Roth
5486: PPUSH
5487: CALL_OW 25
5491: ST_TO_ADDR
// if not roth then
5492: LD_EXP 29
5496: NOT
5497: IFFALSE 5512
// buildquery ( neny Roth , [ OK ] ) ;
5499: LD_STRING neny Roth
5501: PPUSH
5502: LD_STRING OK
5504: PUSH
5505: EMPTY
5506: LIST
5507: PPUSH
5508: CALL_OW 99
// uc_side = am ;
5512: LD_ADDR_OWVAR 20
5516: PUSH
5517: LD_EXP 1
5521: ST_TO_ADDR
// powell = newcharacter ( Powell ) ;
5522: LD_ADDR_EXP 28
5526: PUSH
5527: LD_STRING Powell
5529: PPUSH
5530: CALL_OW 25
5534: ST_TO_ADDR
// if not powell then
5535: LD_EXP 28
5539: NOT
5540: IFFALSE 5555
// buildquery ( neny Powell , [ OK ] ) ;
5542: LD_STRING neny Powell
5544: PPUSH
5545: LD_STRING OK
5547: PUSH
5548: EMPTY
5549: LIST
5550: PPUSH
5551: CALL_OW 99
// uc_side = oth ;
5555: LD_ADDR_OWVAR 20
5559: PUSH
5560: LD_EXP 3
5564: ST_TO_ADDR
// if not ( testvariable ( joan ) and testvariable ( bobby ) and testvariable ( cyrus ) and testvariable ( lisa ) and testvariable ( frank ) and testvariable ( cornell ) and testvariable ( brown ) and testvariable ( lucy ) and testvariable ( gladstone ) and testvariable ( denis ) and testvariable ( yamoko ) and testvariable ( gary ) and testvariable ( simms ) ) then
5565: LD_STRING joan
5567: PPUSH
5568: CALL_OW 27
5572: PUSH
5573: LD_STRING bobby
5575: PPUSH
5576: CALL_OW 27
5580: AND
5581: PUSH
5582: LD_STRING cyrus
5584: PPUSH
5585: CALL_OW 27
5589: AND
5590: PUSH
5591: LD_STRING lisa
5593: PPUSH
5594: CALL_OW 27
5598: AND
5599: PUSH
5600: LD_STRING frank
5602: PPUSH
5603: CALL_OW 27
5607: AND
5608: PUSH
5609: LD_STRING cornell
5611: PPUSH
5612: CALL_OW 27
5616: AND
5617: PUSH
5618: LD_STRING brown
5620: PPUSH
5621: CALL_OW 27
5625: AND
5626: PUSH
5627: LD_STRING lucy
5629: PPUSH
5630: CALL_OW 27
5634: AND
5635: PUSH
5636: LD_STRING gladstone
5638: PPUSH
5639: CALL_OW 27
5643: AND
5644: PUSH
5645: LD_STRING denis
5647: PPUSH
5648: CALL_OW 27
5652: AND
5653: PUSH
5654: LD_STRING yamoko
5656: PPUSH
5657: CALL_OW 27
5661: AND
5662: PUSH
5663: LD_STRING gary
5665: PPUSH
5666: CALL_OW 27
5670: AND
5671: PUSH
5672: LD_STRING simms
5674: PPUSH
5675: CALL_OW 27
5679: AND
5680: NOT
5681: IFFALSE 5690
// msg ( a co treba si pustit i to intro?!? ) ;
5683: LD_STRING a co treba si pustit i to intro?!?
5685: PPUSH
5686: CALL_OW 100
// tmp = loadvariable ( joan , - 1 ) ;
5690: LD_ADDR_VAR 0 2
5694: PUSH
5695: LD_STRING joan
5697: PPUSH
5698: LD_INT 1
5700: NEG
5701: PPUSH
5702: CALL_OW 30
5706: ST_TO_ADDR
// if tmp then
5707: LD_VAR 0 2
5711: IFFALSE 5778
// begin joan = createcharacter ( Joan ) ;
5713: LD_ADDR_EXP 30
5717: PUSH
5718: LD_STRING Joan
5720: PPUSH
5721: CALL_OW 34
5725: ST_TO_ADDR
// if tmp = 1 then
5726: LD_VAR 0 2
5730: PUSH
5731: LD_INT 1
5733: EQUAL
5734: IFFALSE 5757
// mojivip = mojivip ^ [ joan ] else
5736: LD_ADDR_EXP 45
5740: PUSH
5741: LD_EXP 45
5745: PUSH
5746: LD_EXP 30
5750: PUSH
5751: EMPTY
5752: LIST
5753: ADD
5754: ST_TO_ADDR
5755: GO 5776
// ostatnivip = ostatnivip ^ [ joan ] ;
5757: LD_ADDR_EXP 46
5761: PUSH
5762: LD_EXP 46
5766: PUSH
5767: LD_EXP 30
5771: PUSH
5772: EMPTY
5773: LIST
5774: ADD
5775: ST_TO_ADDR
// end else
5776: GO 5786
// joan = 0 ;
5778: LD_ADDR_EXP 30
5782: PUSH
5783: LD_INT 0
5785: ST_TO_ADDR
// tmp = loadvariable ( bobby , - 1 ) ;
5786: LD_ADDR_VAR 0 2
5790: PUSH
5791: LD_STRING bobby
5793: PPUSH
5794: LD_INT 1
5796: NEG
5797: PPUSH
5798: CALL_OW 30
5802: ST_TO_ADDR
// if tmp then
5803: LD_VAR 0 2
5807: IFFALSE 5874
// begin bobby = createcharacter ( Bobby ) ;
5809: LD_ADDR_EXP 31
5813: PUSH
5814: LD_STRING Bobby
5816: PPUSH
5817: CALL_OW 34
5821: ST_TO_ADDR
// if tmp = 1 then
5822: LD_VAR 0 2
5826: PUSH
5827: LD_INT 1
5829: EQUAL
5830: IFFALSE 5853
// mojivip = mojivip ^ [ bobby ] else
5832: LD_ADDR_EXP 45
5836: PUSH
5837: LD_EXP 45
5841: PUSH
5842: LD_EXP 31
5846: PUSH
5847: EMPTY
5848: LIST
5849: ADD
5850: ST_TO_ADDR
5851: GO 5872
// ostatnivip = ostatnivip ^ [ bobby ] ;
5853: LD_ADDR_EXP 46
5857: PUSH
5858: LD_EXP 46
5862: PUSH
5863: LD_EXP 31
5867: PUSH
5868: EMPTY
5869: LIST
5870: ADD
5871: ST_TO_ADDR
// end else
5872: GO 5882
// bobby = 0 ;
5874: LD_ADDR_EXP 31
5878: PUSH
5879: LD_INT 0
5881: ST_TO_ADDR
// tmp = loadvariable ( cyrus , - 1 ) ;
5882: LD_ADDR_VAR 0 2
5886: PUSH
5887: LD_STRING cyrus
5889: PPUSH
5890: LD_INT 1
5892: NEG
5893: PPUSH
5894: CALL_OW 30
5898: ST_TO_ADDR
// if tmp then
5899: LD_VAR 0 2
5903: IFFALSE 5970
// begin cyrus = createcharacter ( Cyrus ) ;
5905: LD_ADDR_EXP 32
5909: PUSH
5910: LD_STRING Cyrus
5912: PPUSH
5913: CALL_OW 34
5917: ST_TO_ADDR
// if tmp = 1 then
5918: LD_VAR 0 2
5922: PUSH
5923: LD_INT 1
5925: EQUAL
5926: IFFALSE 5949
// mojivip = mojivip ^ [ cyrus ] else
5928: LD_ADDR_EXP 45
5932: PUSH
5933: LD_EXP 45
5937: PUSH
5938: LD_EXP 32
5942: PUSH
5943: EMPTY
5944: LIST
5945: ADD
5946: ST_TO_ADDR
5947: GO 5968
// ostatnivip = ostatnivip ^ [ cyrus ] ;
5949: LD_ADDR_EXP 46
5953: PUSH
5954: LD_EXP 46
5958: PUSH
5959: LD_EXP 32
5963: PUSH
5964: EMPTY
5965: LIST
5966: ADD
5967: ST_TO_ADDR
// end else
5968: GO 5978
// cyrus = 0 ;
5970: LD_ADDR_EXP 32
5974: PUSH
5975: LD_INT 0
5977: ST_TO_ADDR
// tmp = loadvariable ( lisa , - 1 ) ;
5978: LD_ADDR_VAR 0 2
5982: PUSH
5983: LD_STRING lisa
5985: PPUSH
5986: LD_INT 1
5988: NEG
5989: PPUSH
5990: CALL_OW 30
5994: ST_TO_ADDR
// if tmp then
5995: LD_VAR 0 2
5999: IFFALSE 6066
// begin lisa = createcharacter ( Lisa ) ;
6001: LD_ADDR_EXP 33
6005: PUSH
6006: LD_STRING Lisa
6008: PPUSH
6009: CALL_OW 34
6013: ST_TO_ADDR
// if tmp = 1 then
6014: LD_VAR 0 2
6018: PUSH
6019: LD_INT 1
6021: EQUAL
6022: IFFALSE 6045
// mojivip = mojivip ^ [ lisa ] else
6024: LD_ADDR_EXP 45
6028: PUSH
6029: LD_EXP 45
6033: PUSH
6034: LD_EXP 33
6038: PUSH
6039: EMPTY
6040: LIST
6041: ADD
6042: ST_TO_ADDR
6043: GO 6064
// ostatnivip = ostatnivip ^ [ lisa ] ;
6045: LD_ADDR_EXP 46
6049: PUSH
6050: LD_EXP 46
6054: PUSH
6055: LD_EXP 33
6059: PUSH
6060: EMPTY
6061: LIST
6062: ADD
6063: ST_TO_ADDR
// end else
6064: GO 6074
// lisa = 0 ;
6066: LD_ADDR_EXP 33
6070: PUSH
6071: LD_INT 0
6073: ST_TO_ADDR
// tmp = loadvariable ( frank , - 1 ) ;
6074: LD_ADDR_VAR 0 2
6078: PUSH
6079: LD_STRING frank
6081: PPUSH
6082: LD_INT 1
6084: NEG
6085: PPUSH
6086: CALL_OW 30
6090: ST_TO_ADDR
// if tmp then
6091: LD_VAR 0 2
6095: IFFALSE 6162
// begin frank = createcharacter ( Frank ) ;
6097: LD_ADDR_EXP 34
6101: PUSH
6102: LD_STRING Frank
6104: PPUSH
6105: CALL_OW 34
6109: ST_TO_ADDR
// if tmp = 1 then
6110: LD_VAR 0 2
6114: PUSH
6115: LD_INT 1
6117: EQUAL
6118: IFFALSE 6141
// mojivip = mojivip ^ [ frank ] else
6120: LD_ADDR_EXP 45
6124: PUSH
6125: LD_EXP 45
6129: PUSH
6130: LD_EXP 34
6134: PUSH
6135: EMPTY
6136: LIST
6137: ADD
6138: ST_TO_ADDR
6139: GO 6160
// ostatnivip = ostatnivip ^ [ frank ] ;
6141: LD_ADDR_EXP 46
6145: PUSH
6146: LD_EXP 46
6150: PUSH
6151: LD_EXP 34
6155: PUSH
6156: EMPTY
6157: LIST
6158: ADD
6159: ST_TO_ADDR
// end else
6160: GO 6170
// frank = 0 ;
6162: LD_ADDR_EXP 34
6166: PUSH
6167: LD_INT 0
6169: ST_TO_ADDR
// tmp = loadvariable ( cornell , - 1 ) ;
6170: LD_ADDR_VAR 0 2
6174: PUSH
6175: LD_STRING cornell
6177: PPUSH
6178: LD_INT 1
6180: NEG
6181: PPUSH
6182: CALL_OW 30
6186: ST_TO_ADDR
// if tmp then
6187: LD_VAR 0 2
6191: IFFALSE 6258
// begin markc = createcharacter ( Cornell ) ;
6193: LD_ADDR_EXP 35
6197: PUSH
6198: LD_STRING Cornell
6200: PPUSH
6201: CALL_OW 34
6205: ST_TO_ADDR
// if tmp = 1 then
6206: LD_VAR 0 2
6210: PUSH
6211: LD_INT 1
6213: EQUAL
6214: IFFALSE 6237
// mojivip = mojivip ^ [ markc ] else
6216: LD_ADDR_EXP 45
6220: PUSH
6221: LD_EXP 45
6225: PUSH
6226: LD_EXP 35
6230: PUSH
6231: EMPTY
6232: LIST
6233: ADD
6234: ST_TO_ADDR
6235: GO 6256
// ostatnivip = ostatnivip ^ [ markc ] ;
6237: LD_ADDR_EXP 46
6241: PUSH
6242: LD_EXP 46
6246: PUSH
6247: LD_EXP 35
6251: PUSH
6252: EMPTY
6253: LIST
6254: ADD
6255: ST_TO_ADDR
// end else
6256: GO 6266
// markc = 0 ;
6258: LD_ADDR_EXP 35
6262: PUSH
6263: LD_INT 0
6265: ST_TO_ADDR
// tmp = loadvariable ( brown , - 1 ) ;
6266: LD_ADDR_VAR 0 2
6270: PUSH
6271: LD_STRING brown
6273: PPUSH
6274: LD_INT 1
6276: NEG
6277: PPUSH
6278: CALL_OW 30
6282: ST_TO_ADDR
// if tmp then
6283: LD_VAR 0 2
6287: IFFALSE 6354
// begin brown = createcharacter ( Brown ) ;
6289: LD_ADDR_EXP 41
6293: PUSH
6294: LD_STRING Brown
6296: PPUSH
6297: CALL_OW 34
6301: ST_TO_ADDR
// if tmp = 1 then
6302: LD_VAR 0 2
6306: PUSH
6307: LD_INT 1
6309: EQUAL
6310: IFFALSE 6333
// mojivip = mojivip ^ [ brown ] else
6312: LD_ADDR_EXP 45
6316: PUSH
6317: LD_EXP 45
6321: PUSH
6322: LD_EXP 41
6326: PUSH
6327: EMPTY
6328: LIST
6329: ADD
6330: ST_TO_ADDR
6331: GO 6352
// ostatnivip = ostatnivip ^ [ brown ] ;
6333: LD_ADDR_EXP 46
6337: PUSH
6338: LD_EXP 46
6342: PUSH
6343: LD_EXP 41
6347: PUSH
6348: EMPTY
6349: LIST
6350: ADD
6351: ST_TO_ADDR
// end else
6352: GO 6362
// brown = 0 ;
6354: LD_ADDR_EXP 41
6358: PUSH
6359: LD_INT 0
6361: ST_TO_ADDR
// tmp = loadvariable ( lucy , - 1 ) ;
6362: LD_ADDR_VAR 0 2
6366: PUSH
6367: LD_STRING lucy
6369: PPUSH
6370: LD_INT 1
6372: NEG
6373: PPUSH
6374: CALL_OW 30
6378: ST_TO_ADDR
// if tmp then
6379: LD_VAR 0 2
6383: IFFALSE 6450
// begin lucy = createcharacter ( Donaldson ) ;
6385: LD_ADDR_EXP 42
6389: PUSH
6390: LD_STRING Donaldson
6392: PPUSH
6393: CALL_OW 34
6397: ST_TO_ADDR
// if tmp = 1 then
6398: LD_VAR 0 2
6402: PUSH
6403: LD_INT 1
6405: EQUAL
6406: IFFALSE 6429
// mojivip = mojivip ^ [ lucy ] else
6408: LD_ADDR_EXP 45
6412: PUSH
6413: LD_EXP 45
6417: PUSH
6418: LD_EXP 42
6422: PUSH
6423: EMPTY
6424: LIST
6425: ADD
6426: ST_TO_ADDR
6427: GO 6448
// ostatnivip = ostatnivip ^ [ lucy ] ;
6429: LD_ADDR_EXP 46
6433: PUSH
6434: LD_EXP 46
6438: PUSH
6439: LD_EXP 42
6443: PUSH
6444: EMPTY
6445: LIST
6446: ADD
6447: ST_TO_ADDR
// end else
6448: GO 6458
// lucy = 0 ;
6450: LD_ADDR_EXP 42
6454: PUSH
6455: LD_INT 0
6457: ST_TO_ADDR
// tmp = loadvariable ( gladstone , - 1 ) ;
6458: LD_ADDR_VAR 0 2
6462: PUSH
6463: LD_STRING gladstone
6465: PPUSH
6466: LD_INT 1
6468: NEG
6469: PPUSH
6470: CALL_OW 30
6474: ST_TO_ADDR
// if tmp then
6475: LD_VAR 0 2
6479: IFFALSE 6546
// begin tim = createcharacter ( Gladstone ) ;
6481: LD_ADDR_EXP 36
6485: PUSH
6486: LD_STRING Gladstone
6488: PPUSH
6489: CALL_OW 34
6493: ST_TO_ADDR
// if tmp = 1 then
6494: LD_VAR 0 2
6498: PUSH
6499: LD_INT 1
6501: EQUAL
6502: IFFALSE 6525
// mojivip = mojivip ^ [ tim ] else
6504: LD_ADDR_EXP 45
6508: PUSH
6509: LD_EXP 45
6513: PUSH
6514: LD_EXP 36
6518: PUSH
6519: EMPTY
6520: LIST
6521: ADD
6522: ST_TO_ADDR
6523: GO 6544
// ostatnivip = ostatnivip ^ [ tim ] ;
6525: LD_ADDR_EXP 46
6529: PUSH
6530: LD_EXP 46
6534: PUSH
6535: LD_EXP 36
6539: PUSH
6540: EMPTY
6541: LIST
6542: ADD
6543: ST_TO_ADDR
// end else
6544: GO 6554
// tim = 0 ;
6546: LD_ADDR_EXP 36
6550: PUSH
6551: LD_INT 0
6553: ST_TO_ADDR
// tmp = loadvariable ( denis , - 1 ) ;
6554: LD_ADDR_VAR 0 2
6558: PUSH
6559: LD_STRING denis
6561: PPUSH
6562: LD_INT 1
6564: NEG
6565: PPUSH
6566: CALL_OW 30
6570: ST_TO_ADDR
// if tmp then
6571: LD_VAR 0 2
6575: IFFALSE 6642
// begin denis = createcharacter ( Denis ) ;
6577: LD_ADDR_EXP 37
6581: PUSH
6582: LD_STRING Denis
6584: PPUSH
6585: CALL_OW 34
6589: ST_TO_ADDR
// if tmp = 1 then
6590: LD_VAR 0 2
6594: PUSH
6595: LD_INT 1
6597: EQUAL
6598: IFFALSE 6621
// mojivip = mojivip ^ [ denis ] else
6600: LD_ADDR_EXP 45
6604: PUSH
6605: LD_EXP 45
6609: PUSH
6610: LD_EXP 37
6614: PUSH
6615: EMPTY
6616: LIST
6617: ADD
6618: ST_TO_ADDR
6619: GO 6640
// ostatnivip = ostatnivip ^ [ denis ] ;
6621: LD_ADDR_EXP 46
6625: PUSH
6626: LD_EXP 46
6630: PUSH
6631: LD_EXP 37
6635: PUSH
6636: EMPTY
6637: LIST
6638: ADD
6639: ST_TO_ADDR
// end else
6640: GO 6650
// denis = 0 ;
6642: LD_ADDR_EXP 37
6646: PUSH
6647: LD_INT 0
6649: ST_TO_ADDR
// tmp = loadvariable ( yamoko , - 1 ) ;
6650: LD_ADDR_VAR 0 2
6654: PUSH
6655: LD_STRING yamoko
6657: PPUSH
6658: LD_INT 1
6660: NEG
6661: PPUSH
6662: CALL_OW 30
6666: ST_TO_ADDR
// if tmp then
6667: LD_VAR 0 2
6671: IFFALSE 6738
// begin yamoko = createcharacter ( Yamoko ) ;
6673: LD_ADDR_EXP 38
6677: PUSH
6678: LD_STRING Yamoko
6680: PPUSH
6681: CALL_OW 34
6685: ST_TO_ADDR
// if tmp = 1 then
6686: LD_VAR 0 2
6690: PUSH
6691: LD_INT 1
6693: EQUAL
6694: IFFALSE 6717
// mojivip = mojivip ^ [ yamoko ] else
6696: LD_ADDR_EXP 45
6700: PUSH
6701: LD_EXP 45
6705: PUSH
6706: LD_EXP 38
6710: PUSH
6711: EMPTY
6712: LIST
6713: ADD
6714: ST_TO_ADDR
6715: GO 6736
// ostatnivip = ostatnivip ^ [ yamoko ] ;
6717: LD_ADDR_EXP 46
6721: PUSH
6722: LD_EXP 46
6726: PUSH
6727: LD_EXP 38
6731: PUSH
6732: EMPTY
6733: LIST
6734: ADD
6735: ST_TO_ADDR
// end else
6736: GO 6746
// yamoko = 0 ;
6738: LD_ADDR_EXP 38
6742: PUSH
6743: LD_INT 0
6745: ST_TO_ADDR
// tmp = loadvariable ( gary , - 1 ) ;
6746: LD_ADDR_VAR 0 2
6750: PUSH
6751: LD_STRING gary
6753: PPUSH
6754: LD_INT 1
6756: NEG
6757: PPUSH
6758: CALL_OW 30
6762: ST_TO_ADDR
// if tmp then
6763: LD_VAR 0 2
6767: IFFALSE 6834
// begin gary = createcharacter ( Gary ) ;
6769: LD_ADDR_EXP 39
6773: PUSH
6774: LD_STRING Gary
6776: PPUSH
6777: CALL_OW 34
6781: ST_TO_ADDR
// if tmp = 1 then
6782: LD_VAR 0 2
6786: PUSH
6787: LD_INT 1
6789: EQUAL
6790: IFFALSE 6813
// mojivip = mojivip ^ [ gary ] else
6792: LD_ADDR_EXP 45
6796: PUSH
6797: LD_EXP 45
6801: PUSH
6802: LD_EXP 39
6806: PUSH
6807: EMPTY
6808: LIST
6809: ADD
6810: ST_TO_ADDR
6811: GO 6832
// ostatnivip = ostatnivip ^ [ gary ] ;
6813: LD_ADDR_EXP 46
6817: PUSH
6818: LD_EXP 46
6822: PUSH
6823: LD_EXP 39
6827: PUSH
6828: EMPTY
6829: LIST
6830: ADD
6831: ST_TO_ADDR
// end else
6832: GO 6842
// gary = 0 ;
6834: LD_ADDR_EXP 39
6838: PUSH
6839: LD_INT 0
6841: ST_TO_ADDR
// tmp = loadvariable ( simms , - 1 ) ;
6842: LD_ADDR_VAR 0 2
6846: PUSH
6847: LD_STRING simms
6849: PPUSH
6850: LD_INT 1
6852: NEG
6853: PPUSH
6854: CALL_OW 30
6858: ST_TO_ADDR
// if tmp then
6859: LD_VAR 0 2
6863: IFFALSE 6930
// begin simms = createcharacter ( Simms ) ;
6865: LD_ADDR_EXP 40
6869: PUSH
6870: LD_STRING Simms
6872: PPUSH
6873: CALL_OW 34
6877: ST_TO_ADDR
// if tmp = 1 then
6878: LD_VAR 0 2
6882: PUSH
6883: LD_INT 1
6885: EQUAL
6886: IFFALSE 6909
// mojivip = mojivip ^ [ simms ] else
6888: LD_ADDR_EXP 45
6892: PUSH
6893: LD_EXP 45
6897: PUSH
6898: LD_EXP 40
6902: PUSH
6903: EMPTY
6904: LIST
6905: ADD
6906: ST_TO_ADDR
6907: GO 6928
// ostatnivip = ostatnivip ^ [ simms ] ;
6909: LD_ADDR_EXP 46
6913: PUSH
6914: LD_EXP 46
6918: PUSH
6919: LD_EXP 40
6923: PUSH
6924: EMPTY
6925: LIST
6926: ADD
6927: ST_TO_ADDR
// end else
6928: GO 6938
// simms = 0 ;
6930: LD_ADDR_EXP 40
6934: PUSH
6935: LD_INT 0
6937: ST_TO_ADDR
// if not testvariable ( mojiam12a_c ) then
6938: LD_STRING mojiam12a_c
6940: PPUSH
6941: CALL_OW 27
6945: NOT
6946: IFFALSE 6963
// buildquery ( a co intro?!? (neny mojiam12a_c) , [ OK ] ) else
6948: LD_STRING a co intro?!? (neny mojiam12a_c)
6950: PPUSH
6951: LD_STRING OK
6953: PUSH
6954: EMPTY
6955: LIST
6956: PPUSH
6957: CALL_OW 99
6961: GO 7008
// begin tmp2 = loadvariable ( mojiam12a_c , - 1 ) ;
6963: LD_ADDR_VAR 0 3
6967: PUSH
6968: LD_STRING mojiam12a_c
6970: PPUSH
6971: LD_INT 1
6973: NEG
6974: PPUSH
6975: CALL_OW 30
6979: ST_TO_ADDR
// if tmp2 and checkcharacterset ( mojiam12a ) then
6980: LD_VAR 0 3
6984: PUSH
6985: LD_STRING mojiam12a
6987: PPUSH
6988: CALL_OW 29
6992: AND
6993: IFFALSE 7008
// moji = createcharacterset ( mojiam12a ) ;
6995: LD_ADDR_EXP 44
6999: PUSH
7000: LD_STRING mojiam12a
7002: PPUSH
7003: CALL_OW 31
7007: ST_TO_ADDR
// end ; disable ( 03 ) ;
7008: LD_INT 3
7010: DISABLE_MARKED
// takoviti = mojivip ^ moji ^ ostatnivip ;
7011: LD_ADDR_EXP 26
7015: PUSH
7016: LD_EXP 45
7020: PUSH
7021: LD_EXP 44
7025: ADD
7026: PUSH
7027: LD_EXP 46
7031: ADD
7032: ST_TO_ADDR
// moji_backup = mojivip ^ moji ;
7033: LD_ADDR_EXP 50
7037: PUSH
7038: LD_EXP 45
7042: PUSH
7043: LD_EXP 44
7047: ADD
7048: ST_TO_ADDR
// tmp2 = pocetmist - takoviti ;
7049: LD_ADDR_VAR 0 3
7053: PUSH
7054: LD_EXP 49
7058: PUSH
7059: LD_EXP 26
7063: MINUS
7064: ST_TO_ADDR
// for tmp = 1 to tmp2 do
7065: LD_ADDR_VAR 0 2
7069: PUSH
7070: DOUBLE
7071: LD_INT 1
7073: DEC
7074: ST_TO_ADDR
7075: LD_VAR 0 3
7079: PUSH
7080: FOR_TO
7081: IFFALSE 7154
// begin tmp3 = rand ( 1 , 2 ) ;
7083: LD_ADDR_VAR 0 4
7087: PUSH
7088: LD_INT 1
7090: PPUSH
7091: LD_INT 2
7093: PPUSH
7094: CALL_OW 12
7098: ST_TO_ADDR
// preparehuman ( rand ( 1 , 2 ) , [ class_soldier , class_scientistic ] [ tmp3 ] , 6 ) ;
7099: LD_INT 1
7101: PPUSH
7102: LD_INT 2
7104: PPUSH
7105: CALL_OW 12
7109: PPUSH
7110: LD_INT 1
7112: PUSH
7113: LD_INT 4
7115: PUSH
7116: EMPTY
7117: LIST
7118: LIST
7119: PUSH
7120: LD_VAR 0 4
7124: ARRAY
7125: PPUSH
7126: LD_INT 6
7128: PPUSH
7129: CALL_OW 380
// takoviti = takoviti ^ [ createhuman ] ;
7133: LD_ADDR_EXP 26
7137: PUSH
7138: LD_EXP 26
7142: PUSH
7143: CALL_OW 44
7147: PUSH
7148: EMPTY
7149: LIST
7150: ADD
7151: ST_TO_ADDR
// end ;
7152: GO 7080
7154: POP
7155: POP
// if debug then
7156: LD_EXP 19
7160: IFFALSE 7193
// begin debug_strings = [ moji , mojivip , ostatnivip , takoviti ] ;
7162: LD_ADDR_OWVAR 48
7166: PUSH
7167: LD_EXP 44
7171: PUSH
7172: LD_EXP 45
7176: PUSH
7177: LD_EXP 46
7181: PUSH
7182: LD_EXP 26
7186: PUSH
7187: EMPTY
7188: LIST
7189: LIST
7190: LIST
7191: LIST
7192: ST_TO_ADDR
// end ; comhold ( takoviti ) ;
7193: LD_EXP 26
7197: PPUSH
7198: CALL_OW 140
// placeunitxy ( john , 115 , 14 , false ) ;
7202: LD_EXP 27
7206: PPUSH
7207: LD_INT 115
7209: PPUSH
7210: LD_INT 14
7212: PPUSH
7213: LD_INT 0
7215: PPUSH
7216: CALL_OW 48
// placeunitxy ( roth , 118 , 14 , false ) ;
7220: LD_EXP 29
7224: PPUSH
7225: LD_INT 118
7227: PPUSH
7228: LD_INT 14
7230: PPUSH
7231: LD_INT 0
7233: PPUSH
7234: CALL_OW 48
// comhold ( [ john , roth ] ) ;
7238: LD_EXP 27
7242: PUSH
7243: LD_EXP 29
7247: PUSH
7248: EMPTY
7249: LIST
7250: LIST
7251: PPUSH
7252: CALL_OW 140
// centernowonunits ( [ john , roth ] ) ;
7256: LD_EXP 27
7260: PUSH
7261: LD_EXP 29
7265: PUSH
7266: EMPTY
7267: LIST
7268: LIST
7269: PPUSH
7270: CALL_OW 87
// interface_hidden = true ;
7274: LD_ADDR_OWVAR 54
7278: PUSH
7279: LD_INT 1
7281: ST_TO_ADDR
// dialogueon ;
7282: CALL_OW 6
// dwait ( 0 0$0.5 ) ;
7286: LD_INT 18
7288: PPUSH
7289: CALL_OW 68
// say ( john , D1-JMM-1 ) ;
7293: LD_EXP 27
7297: PPUSH
7298: LD_STRING D1-JMM-1
7300: PPUSH
7301: CALL_OW 88
// say ( roth , D1-Roth-1 ) ;
7305: LD_EXP 29
7309: PPUSH
7310: LD_STRING D1-Roth-1
7312: PPUSH
7313: CALL_OW 88
// say ( john , D1-JMM-2 ) ;
7317: LD_EXP 27
7321: PPUSH
7322: LD_STRING D1-JMM-2
7324: PPUSH
7325: CALL_OW 88
// say ( roth , D1-Roth-2 ) ;
7329: LD_EXP 29
7333: PPUSH
7334: LD_STRING D1-Roth-2
7336: PPUSH
7337: CALL_OW 88
// say ( john , D1-JMM-3 ) ;
7341: LD_EXP 27
7345: PPUSH
7346: LD_STRING D1-JMM-3
7348: PPUSH
7349: CALL_OW 88
// say ( roth , D1-Roth-3 ) ;
7353: LD_EXP 29
7357: PPUSH
7358: LD_STRING D1-Roth-3
7360: PPUSH
7361: CALL_OW 88
// settech ( tech_partinvis , al , state_researched ) ;
7365: LD_INT 16
7367: PPUSH
7368: LD_EXP 2
7372: PPUSH
7373: LD_INT 2
7375: PPUSH
7376: CALL_OW 322
// dialogueoff ;
7380: CALL_OW 7
// cominvisible ( roth ) ;
7384: LD_EXP 29
7388: PPUSH
7389: CALL_OW 152
// wait ( 0 0$1.5 ) ;
7393: LD_INT 52
7395: PPUSH
7396: CALL_OW 67
// dialogueon ;
7400: CALL_OW 6
// say ( john , D1-JMM-4 ) ;
7404: LD_EXP 27
7408: PPUSH
7409: LD_STRING D1-JMM-4
7411: PPUSH
7412: CALL_OW 88
// dialogueoff ;
7416: CALL_OW 7
// comstop ( roth ) ;
7420: LD_EXP 29
7424: PPUSH
7425: CALL_OW 141
// wait ( 5 ) ;
7429: LD_INT 5
7431: PPUSH
7432: CALL_OW 67
// dialogueon ;
7436: CALL_OW 6
// say ( john , D1-JMM-4a ) ;
7440: LD_EXP 27
7444: PPUSH
7445: LD_STRING D1-JMM-4a
7447: PPUSH
7448: CALL_OW 88
// say ( roth , D1-Roth-4 ) ;
7452: LD_EXP 29
7456: PPUSH
7457: LD_STRING D1-Roth-4
7459: PPUSH
7460: CALL_OW 88
// say ( john , D1-JMM-5 ) ;
7464: LD_EXP 27
7468: PPUSH
7469: LD_STRING D1-JMM-5
7471: PPUSH
7472: CALL_OW 88
// say ( roth , D1-Roth-5 ) ;
7476: LD_EXP 29
7480: PPUSH
7481: LD_STRING D1-Roth-5
7483: PPUSH
7484: CALL_OW 88
// say ( john , D1-JMM-6 ) ;
7488: LD_EXP 27
7492: PPUSH
7493: LD_STRING D1-JMM-6
7495: PPUSH
7496: CALL_OW 88
// say ( roth , D1-Roth-6 ) ;
7500: LD_EXP 29
7504: PPUSH
7505: LD_STRING D1-Roth-6
7507: PPUSH
7508: CALL_OW 88
// say ( john , D1-JMM-7 ) ;
7512: LD_EXP 27
7516: PPUSH
7517: LD_STRING D1-JMM-7
7519: PPUSH
7520: CALL_OW 88
// say ( roth , D1-Roth-7 ) ;
7524: LD_EXP 29
7528: PPUSH
7529: LD_STRING D1-Roth-7
7531: PPUSH
7532: CALL_OW 88
// dialogueoff ;
7536: CALL_OW 7
// placeunitxy ( powell , 115 , 27 , false ) ;
7540: LD_EXP 28
7544: PPUSH
7545: LD_INT 115
7547: PPUSH
7548: LD_INT 27
7550: PPUSH
7551: LD_INT 0
7553: PPUSH
7554: CALL_OW 48
// commovexy ( powell , 115 , 23 ) ;
7558: LD_EXP 28
7562: PPUSH
7563: LD_INT 115
7565: PPUSH
7566: LD_INT 23
7568: PPUSH
7569: CALL_OW 111
// while not isinarea ( powell , powpl ) do
7573: LD_EXP 28
7577: PPUSH
7578: LD_INT 15
7580: PPUSH
7581: CALL_OW 308
7585: NOT
7586: IFFALSE 7597
// wait ( 0 0$0.25 ) ;
7588: LD_INT 9
7590: PPUSH
7591: CALL_OW 67
7595: GO 7573
// dialogueon ;
7597: CALL_OW 6
// say ( powell , D1-Pow-7 ) ;
7601: LD_EXP 28
7605: PPUSH
7606: LD_STRING D1-Pow-7
7608: PPUSH
7609: CALL_OW 88
// say ( john , D1-JMM-8 ) ;
7613: LD_EXP 27
7617: PPUSH
7618: LD_STRING D1-JMM-8
7620: PPUSH
7621: CALL_OW 88
// say ( powell , D1-Pow-8 ) ;
7625: LD_EXP 28
7629: PPUSH
7630: LD_STRING D1-Pow-8
7632: PPUSH
7633: CALL_OW 88
// say ( john , D1-JMM-9 ) ;
7637: LD_EXP 27
7641: PPUSH
7642: LD_STRING D1-JMM-9
7644: PPUSH
7645: CALL_OW 88
// dialogueoff ;
7649: CALL_OW 7
// ingameon ;
7653: CALL_OW 8
// commovexy ( powell , 115 , 29 ) ;
7657: LD_EXP 28
7661: PPUSH
7662: LD_INT 115
7664: PPUSH
7665: LD_INT 29
7667: PPUSH
7668: CALL_OW 111
// while not isinarea ( powell , powpl2 ) do
7672: LD_EXP 28
7676: PPUSH
7677: LD_INT 16
7679: PPUSH
7680: CALL_OW 308
7684: NOT
7685: IFFALSE 7696
// wait ( 0 0$0.25 ) ;
7687: LD_INT 9
7689: PPUSH
7690: CALL_OW 67
7694: GO 7672
// ingameoff ;
7696: CALL_OW 9
// interface_hidden = true ;
7700: LD_ADDR_OWVAR 54
7704: PUSH
7705: LD_INT 1
7707: ST_TO_ADDR
// dialogueon ;
7708: CALL_OW 6
// sayradio ( powell , D1-Pow-9 ) ;
7712: LD_EXP 28
7716: PPUSH
7717: LD_STRING D1-Pow-9
7719: PPUSH
7720: CALL_OW 94
// setside ( [ roth ] , oth ) ;
7724: LD_EXP 29
7728: PUSH
7729: EMPTY
7730: LIST
7731: PPUSH
7732: LD_EXP 3
7736: PPUSH
7737: CALL_OW 235
// comhold ( roth ) ;
7741: LD_EXP 29
7745: PPUSH
7746: CALL_OW 140
// if joan and ( not ( joan in mojivip ) ) then
7750: LD_EXP 30
7754: PUSH
7755: LD_EXP 30
7759: PUSH
7760: LD_EXP 45
7764: IN
7765: NOT
7766: AND
7767: IFFALSE 7781
// sayradio ( joan , D1-Joan-9 ) ;
7769: LD_EXP 30
7773: PPUSH
7774: LD_STRING D1-Joan-9
7776: PPUSH
7777: CALL_OW 94
// say ( roth , D1-Roth-9 ) ;
7781: LD_EXP 29
7785: PPUSH
7786: LD_STRING D1-Roth-9
7788: PPUSH
7789: CALL_OW 88
// say ( john , D1-JMM-10 ) ;
7793: LD_EXP 27
7797: PPUSH
7798: LD_STRING D1-JMM-10
7800: PPUSH
7801: CALL_OW 88
// dialogueoff ;
7805: CALL_OW 7
// removeunit ( powell ) ;
7809: LD_EXP 28
7813: PPUSH
7814: CALL_OW 64
// interface_hidden = false ;
7818: LD_ADDR_OWVAR 54
7822: PUSH
7823: LD_INT 0
7825: ST_TO_ADDR
// setattitude ( al , am , att_enemy , true ) ;
7826: LD_EXP 2
7830: PPUSH
7831: LD_EXP 1
7835: PPUSH
7836: LD_INT 2
7838: PPUSH
7839: LD_INT 1
7841: PPUSH
7842: CALL_OW 80
// for tmp = 1 to pocetmist do
7846: LD_ADDR_VAR 0 2
7850: PUSH
7851: DOUBLE
7852: LD_INT 1
7854: DEC
7855: ST_TO_ADDR
7856: LD_EXP 49
7860: PUSH
7861: FOR_TO
7862: IFFALSE 7929
// begin placeunitxyr ( takoviti [ tmp ] , mista [ tmp ] [ 1 ] , mista [ tmp ] [ 2 ] , 1 , false ) ;
7864: LD_EXP 26
7868: PUSH
7869: LD_VAR 0 2
7873: ARRAY
7874: PPUSH
7875: LD_EXP 47
7879: PUSH
7880: LD_VAR 0 2
7884: ARRAY
7885: PUSH
7886: LD_INT 1
7888: ARRAY
7889: PPUSH
7890: LD_EXP 47
7894: PUSH
7895: LD_VAR 0 2
7899: ARRAY
7900: PUSH
7901: LD_INT 2
7903: ARRAY
7904: PPUSH
7905: LD_INT 1
7907: PPUSH
7908: LD_INT 0
7910: PPUSH
7911: CALL_OW 50
// settag ( tmp , 1 ) ;
7915: LD_VAR 0 2
7919: PPUSH
7920: LD_INT 1
7922: PPUSH
7923: CALL_OW 109
// end ;
7927: GO 7861
7929: POP
7930: POP
// vesel = 0 ;
7931: LD_ADDR_LOC 7
7935: PUSH
7936: LD_INT 0
7938: ST_TO_ADDR
// joanmet = false ;
7939: LD_ADDR_EXP 51
7943: PUSH
7944: LD_INT 0
7946: ST_TO_ADDR
// frankmet = false ;
7947: LD_ADDR_EXP 52
7951: PUSH
7952: LD_INT 0
7954: ST_TO_ADDR
// lisamet = false ;
7955: LD_ADDR_EXP 53
7959: PUSH
7960: LD_INT 0
7962: ST_TO_ADDR
// joan_joined = false ;
7963: LD_ADDR_EXP 54
7967: PUSH
7968: LD_INT 0
7970: ST_TO_ADDR
// enable ( 03 ) ;
7971: LD_INT 3
7973: ENABLE_MARKED
// saveforquickrestart ;
7974: CALL_OW 22
// wait ( 2 ) ;
7978: LD_INT 2
7980: PPUSH
7981: CALL_OW 67
// changemissionobjectives ( M1 ) ;
7985: LD_STRING M1
7987: PPUSH
7988: CALL_OW 337
// setareamapshow ( vychod , 1 ) ;
7992: LD_INT 13
7994: PPUSH
7995: LD_INT 1
7997: PPUSH
7998: CALL_OW 424
// john_vychod = true ;
8002: LD_ADDR_EXP 18
8006: PUSH
8007: LD_INT 1
8009: ST_TO_ADDR
// hint ( Invisibility ) ;
8010: LD_STRING Invisibility
8012: PPUSH
8013: CALL_OW 339
// end ;
8017: LD_VAR 0 1
8021: RET
// var tmpar , vesel ; function isinareaex ( un , lias ) ; var tmp , pm ; begin
8022: LD_INT 0
8024: PPUSH
8025: PPUSH
8026: PPUSH
// result = 0 ;
8027: LD_ADDR_VAR 0 3
8031: PUSH
8032: LD_INT 0
8034: ST_TO_ADDR
// pm = 0 + lias ;
8035: LD_ADDR_VAR 0 5
8039: PUSH
8040: LD_INT 0
8042: PUSH
8043: LD_VAR 0 2
8047: PLUS
8048: ST_TO_ADDR
// for tmp = 1 to pm do
8049: LD_ADDR_VAR 0 4
8053: PUSH
8054: DOUBLE
8055: LD_INT 1
8057: DEC
8058: ST_TO_ADDR
8059: LD_VAR 0 5
8063: PUSH
8064: FOR_TO
8065: IFFALSE 8115
// if isinarea ( un , lias [ tmp ] ) then
8067: LD_VAR 0 1
8071: PPUSH
8072: LD_VAR 0 2
8076: PUSH
8077: LD_VAR 0 4
8081: ARRAY
8082: PPUSH
8083: CALL_OW 308
8087: IFFALSE 8113
// begin tmpar = tmp ;
8089: LD_ADDR_LOC 6
8093: PUSH
8094: LD_VAR 0 4
8098: ST_TO_ADDR
// result = tmp ;
8099: LD_ADDR_VAR 0 3
8103: PUSH
8104: LD_VAR 0 4
8108: ST_TO_ADDR
// exit ;
8109: POP
8110: POP
8111: GO 8117
// end ;
8113: GO 8064
8115: POP
8116: POP
// end ;
8117: LD_VAR 0 3
8121: RET
// every 0 0$0.125 + 2 trigger vesel do
8122: LD_LOC 7
8126: IFFALSE 8183
8128: GO 8130
8130: DISABLE
// begin if not isinarea ( john , areas [ vesel ] ) then
8131: LD_EXP 27
8135: PPUSH
8136: LD_EXP 48
8140: PUSH
8141: LD_LOC 7
8145: ARRAY
8146: PPUSH
8147: CALL_OW 308
8151: NOT
8152: IFFALSE 8182
// begin setside ( takoviti [ vesel ] , am ) ;
8154: LD_EXP 26
8158: PUSH
8159: LD_LOC 7
8163: ARRAY
8164: PPUSH
8165: LD_EXP 1
8169: PPUSH
8170: CALL_OW 235
// vesel = 0 ;
8174: LD_ADDR_LOC 7
8178: PUSH
8179: LD_INT 0
8181: ST_TO_ADDR
// end ; enable ;
8182: ENABLE
// end ;
8183: END
// export joanmet , frankmet , lisamet ; export joan_joined ; every 0 0$0.5 + 1 trigger isinareaex ( john , areas ) marked 03 do
8184: LD_EXP 27
8188: PPUSH
8189: LD_EXP 48
8193: PPUSH
8194: CALL 8022 0 2
8198: IFFALSE 10539
8200: GO 8202
8202: DISABLE
// begin if gettag ( tmpar ) = - 1 then
8203: LD_LOC 6
8207: PPUSH
8208: CALL_OW 110
8212: PUSH
8213: LD_INT 1
8215: NEG
8216: EQUAL
8217: IFFALSE 8222
// begin enable ;
8219: ENABLE
// exit ;
8220: GO 10539
// end ; case takoviti [ tmpar ] of joan :
8222: LD_EXP 26
8226: PUSH
8227: LD_LOC 6
8231: ARRAY
8232: PUSH
8233: LD_EXP 30
8237: DOUBLE
8238: EQUAL
8239: IFTRUE 8243
8241: GO 8464
8243: POP
// if gettag ( tmpar ) = 1 then
8244: LD_LOC 6
8248: PPUSH
8249: CALL_OW 110
8253: PUSH
8254: LD_INT 1
8256: EQUAL
8257: IFFALSE 8462
// begin settag ( tmpar , 2 ) ;
8259: LD_LOC 6
8263: PPUSH
8264: LD_INT 2
8266: PPUSH
8267: CALL_OW 109
// joan_joined = true ;
8271: LD_ADDR_EXP 54
8275: PUSH
8276: LD_INT 1
8278: ST_TO_ADDR
// if joan in mojivip then
8279: LD_EXP 30
8283: PUSH
8284: LD_EXP 45
8288: IN
8289: IFFALSE 8353
// begin setside ( joan , al ) ;
8291: LD_EXP 30
8295: PPUSH
8296: LD_EXP 2
8300: PPUSH
8301: CALL_OW 235
// contacted = contacted + 1 ;
8305: LD_ADDR_EXP 24
8309: PUSH
8310: LD_EXP 24
8314: PUSH
8315: LD_INT 1
8317: PLUS
8318: ST_TO_ADDR
// dialogueon ;
8319: CALL_OW 6
// say ( joan , D3-Joan-Joan-1 ) ;
8323: LD_EXP 30
8327: PPUSH
8328: LD_STRING D3-Joan-Joan-1
8330: PPUSH
8331: CALL_OW 88
// say ( john , D3-Joan-JMM-1 ) ;
8335: LD_EXP 27
8339: PPUSH
8340: LD_STRING D3-Joan-JMM-1
8342: PPUSH
8343: CALL_OW 88
// dialogueoff ;
8347: CALL_OW 7
// end else
8351: GO 8462
// begin joanmet = true ;
8353: LD_ADDR_EXP 51
8357: PUSH
8358: LD_INT 1
8360: ST_TO_ADDR
// dialogueon ;
8361: CALL_OW 6
// say ( joan , D4-Joan-Joan-1 ) ;
8365: LD_EXP 30
8369: PPUSH
8370: LD_STRING D4-Joan-Joan-1
8372: PPUSH
8373: CALL_OW 88
// say ( john , D4-Joan-JMM-1 ) ;
8377: LD_EXP 27
8381: PPUSH
8382: LD_STRING D4-Joan-JMM-1
8384: PPUSH
8385: CALL_OW 88
// say ( joan , D4-Joan-Joan-2 ) ;
8389: LD_EXP 30
8393: PPUSH
8394: LD_STRING D4-Joan-Joan-2
8396: PPUSH
8397: CALL_OW 88
// say ( john , D4-Joan-JMM-2 ) ;
8401: LD_EXP 27
8405: PPUSH
8406: LD_STRING D4-Joan-JMM-2
8408: PPUSH
8409: CALL_OW 88
// say ( joan , D4-Joan-Joan-3 ) ;
8413: LD_EXP 30
8417: PPUSH
8418: LD_STRING D4-Joan-Joan-3
8420: PPUSH
8421: CALL_OW 88
// dialogueoff ;
8425: CALL_OW 7
// setside ( joan , al ) ;
8429: LD_EXP 30
8433: PPUSH
8434: LD_EXP 2
8438: PPUSH
8439: CALL_OW 235
// mojivip = mojivip ^ [ joan ] ;
8443: LD_ADDR_EXP 45
8447: PUSH
8448: LD_EXP 45
8452: PUSH
8453: LD_EXP 30
8457: PUSH
8458: EMPTY
8459: LIST
8460: ADD
8461: ST_TO_ADDR
// end ; end ; bobby :
8462: GO 10538
8464: LD_EXP 31
8468: DOUBLE
8469: EQUAL
8470: IFTRUE 8474
8472: GO 8632
8474: POP
// if gettag ( tmpar ) = 1 then
8475: LD_LOC 6
8479: PPUSH
8480: CALL_OW 110
8484: PUSH
8485: LD_INT 1
8487: EQUAL
8488: IFFALSE 8630
// begin settag ( tmpar , 2 ) ;
8490: LD_LOC 6
8494: PPUSH
8495: LD_INT 2
8497: PPUSH
8498: CALL_OW 109
// if bobby in mojivip then
8502: LD_EXP 31
8506: PUSH
8507: LD_EXP 45
8511: IN
8512: IFFALSE 8576
// begin setside ( bobby , al ) ;
8514: LD_EXP 31
8518: PPUSH
8519: LD_EXP 2
8523: PPUSH
8524: CALL_OW 235
// contacted = contacted + 1 ;
8528: LD_ADDR_EXP 24
8532: PUSH
8533: LD_EXP 24
8537: PUSH
8538: LD_INT 1
8540: PLUS
8541: ST_TO_ADDR
// dialogueon ;
8542: CALL_OW 6
// say ( bobby , D3-Bobby-Bobby-1 ) ;
8546: LD_EXP 31
8550: PPUSH
8551: LD_STRING D3-Bobby-Bobby-1
8553: PPUSH
8554: CALL_OW 88
// say ( john , D3-Bobby-JMM-1 ) ;
8558: LD_EXP 27
8562: PPUSH
8563: LD_STRING D3-Bobby-JMM-1
8565: PPUSH
8566: CALL_OW 88
// dialogueoff ;
8570: CALL_OW 7
// end else
8574: GO 8630
// begin vesel = tmpar ;
8576: LD_ADDR_LOC 7
8580: PUSH
8581: LD_LOC 6
8585: ST_TO_ADDR
// dialogueon ;
8586: CALL_OW 6
// say ( bobby , D4-Bobby-Bobby-1 ) ;
8590: LD_EXP 31
8594: PPUSH
8595: LD_STRING D4-Bobby-Bobby-1
8597: PPUSH
8598: CALL_OW 88
// say ( john , D4-Bobby-JMM-1 ) ;
8602: LD_EXP 27
8606: PPUSH
8607: LD_STRING D4-Bobby-JMM-1
8609: PPUSH
8610: CALL_OW 88
// say ( bobby , D4-Bobby-Bobby-2 ) ;
8614: LD_EXP 31
8618: PPUSH
8619: LD_STRING D4-Bobby-Bobby-2
8621: PPUSH
8622: CALL_OW 88
// dialogueoff ;
8626: CALL_OW 7
// end ; end ; cyrus :
8630: GO 10538
8632: LD_EXP 32
8636: DOUBLE
8637: EQUAL
8638: IFTRUE 8642
8640: GO 8788
8642: POP
// if gettag ( tmpar ) = 1 then
8643: LD_LOC 6
8647: PPUSH
8648: CALL_OW 110
8652: PUSH
8653: LD_INT 1
8655: EQUAL
8656: IFFALSE 8786
// begin settag ( tmpar , 2 ) ;
8658: LD_LOC 6
8662: PPUSH
8663: LD_INT 2
8665: PPUSH
8666: CALL_OW 109
// if cyrus in mojivip then
8670: LD_EXP 32
8674: PUSH
8675: LD_EXP 45
8679: IN
8680: IFFALSE 8744
// begin setside ( cyrus , al ) ;
8682: LD_EXP 32
8686: PPUSH
8687: LD_EXP 2
8691: PPUSH
8692: CALL_OW 235
// contacted = contacted + 1 ;
8696: LD_ADDR_EXP 24
8700: PUSH
8701: LD_EXP 24
8705: PUSH
8706: LD_INT 1
8708: PLUS
8709: ST_TO_ADDR
// dialogueon ;
8710: CALL_OW 6
// say ( cyrus , D3-Cyrus-Cyrus-1 ) ;
8714: LD_EXP 32
8718: PPUSH
8719: LD_STRING D3-Cyrus-Cyrus-1
8721: PPUSH
8722: CALL_OW 88
// say ( john , D3-Cyrus-JMM-1 ) ;
8726: LD_EXP 27
8730: PPUSH
8731: LD_STRING D3-Cyrus-JMM-1
8733: PPUSH
8734: CALL_OW 88
// dialogueoff ;
8738: CALL_OW 7
// end else
8742: GO 8786
// begin vesel = tmpar ;
8744: LD_ADDR_LOC 7
8748: PUSH
8749: LD_LOC 6
8753: ST_TO_ADDR
// dialogueon ;
8754: CALL_OW 6
// say ( cyrus , D4-Cyrus-Cyrus-1 ) ;
8758: LD_EXP 32
8762: PPUSH
8763: LD_STRING D4-Cyrus-Cyrus-1
8765: PPUSH
8766: CALL_OW 88
// say ( john , D4-Cyrus-JMM-1 ) ;
8770: LD_EXP 27
8774: PPUSH
8775: LD_STRING D4-Cyrus-JMM-1
8777: PPUSH
8778: CALL_OW 88
// dialogueoff ;
8782: CALL_OW 7
// end end ; lisa :
8786: GO 10538
8788: LD_EXP 33
8792: DOUBLE
8793: EQUAL
8794: IFTRUE 8798
8796: GO 9127
8798: POP
// if gettag ( tmpar ) = 1 then
8799: LD_LOC 6
8803: PPUSH
8804: CALL_OW 110
8808: PUSH
8809: LD_INT 1
8811: EQUAL
8812: IFFALSE 9125
// begin settag ( tmpar , 2 ) ;
8814: LD_LOC 6
8818: PPUSH
8819: LD_INT 2
8821: PPUSH
8822: CALL_OW 109
// if ( lisa in mojivip ) then
8826: LD_EXP 33
8830: PUSH
8831: LD_EXP 45
8835: IN
8836: IFFALSE 9022
// begin contacted = contacted + 1 ;
8838: LD_ADDR_EXP 24
8842: PUSH
8843: LD_EXP 24
8847: PUSH
8848: LD_INT 1
8850: PLUS
8851: ST_TO_ADDR
// if not joan_joined then
8852: LD_EXP 54
8856: NOT
8857: IFFALSE 8915
// begin setside ( lisa , al ) ;
8859: LD_EXP 33
8863: PPUSH
8864: LD_EXP 2
8868: PPUSH
8869: CALL_OW 235
// lisamet = 1 ;
8873: LD_ADDR_EXP 53
8877: PUSH
8878: LD_INT 1
8880: ST_TO_ADDR
// dialogueon ;
8881: CALL_OW 6
// say ( lisa , D3-LisaL-Lisa-1 ) ;
8885: LD_EXP 33
8889: PPUSH
8890: LD_STRING D3-LisaL-Lisa-1
8892: PPUSH
8893: CALL_OW 88
// say ( john , D3-LisaL-JMM-1 ) ;
8897: LD_EXP 27
8901: PPUSH
8902: LD_STRING D3-LisaL-JMM-1
8904: PPUSH
8905: CALL_OW 88
// dialogueoff ;
8909: CALL_OW 7
// end else
8913: GO 9020
// begin vesel = tmpar ;
8915: LD_ADDR_LOC 7
8919: PUSH
8920: LD_LOC 6
8924: ST_TO_ADDR
// dialogueon ;
8925: CALL_OW 6
// say ( lisa , D3-LisaJ-Lisa-1 ) ;
8929: LD_EXP 33
8933: PPUSH
8934: LD_STRING D3-LisaJ-Lisa-1
8936: PPUSH
8937: CALL_OW 88
// say ( john , D3-LisaJ-JMM-1 ) ;
8941: LD_EXP 27
8945: PPUSH
8946: LD_STRING D3-LisaJ-JMM-1
8948: PPUSH
8949: CALL_OW 88
// say ( lisa , D3-LisaJ-Lisa-2 ) ;
8953: LD_EXP 33
8957: PPUSH
8958: LD_STRING D3-LisaJ-Lisa-2
8960: PPUSH
8961: CALL_OW 88
// say ( john , D3-LisaJ-JMM-2 ) ;
8965: LD_EXP 27
8969: PPUSH
8970: LD_STRING D3-LisaJ-JMM-2
8972: PPUSH
8973: CALL_OW 88
// say ( lisa , D3-LisaJ-Lisa-3 ) ;
8977: LD_EXP 33
8981: PPUSH
8982: LD_STRING D3-LisaJ-Lisa-3
8984: PPUSH
8985: CALL_OW 88
// dialogueoff ;
8989: CALL_OW 7
// lisamet = 2 ;
8993: LD_ADDR_EXP 53
8997: PUSH
8998: LD_INT 2
9000: ST_TO_ADDR
// mojivip = mojivip diff [ lisa ] ;
9001: LD_ADDR_EXP 45
9005: PUSH
9006: LD_EXP 45
9010: PUSH
9011: LD_EXP 33
9015: PUSH
9016: EMPTY
9017: LIST
9018: DIFF
9019: ST_TO_ADDR
// end ; end else
9020: GO 9125
// if ( joan = 0 ) or ( not joanmet ) then
9022: LD_EXP 30
9026: PUSH
9027: LD_INT 0
9029: EQUAL
9030: PUSH
9031: LD_EXP 51
9035: NOT
9036: OR
9037: IFFALSE 9071
// begin vesel = tmpar ;
9039: LD_ADDR_LOC 7
9043: PUSH
9044: LD_LOC 6
9048: ST_TO_ADDR
// dialogueon ;
9049: CALL_OW 6
// say ( lisa , D4-LisaL-Lisa-1 ) ;
9053: LD_EXP 33
9057: PPUSH
9058: LD_STRING D4-LisaL-Lisa-1
9060: PPUSH
9061: CALL_OW 88
// dialogueoff ;
9065: CALL_OW 7
// end else
9069: GO 9125
// begin vesel = tmpar ;
9071: LD_ADDR_LOC 7
9075: PUSH
9076: LD_LOC 6
9080: ST_TO_ADDR
// dialogueon ;
9081: CALL_OW 6
// say ( lisa , D4-LisaJ-Lisa-1 ) ;
9085: LD_EXP 33
9089: PPUSH
9090: LD_STRING D4-LisaJ-Lisa-1
9092: PPUSH
9093: CALL_OW 88
// say ( john , D4-LisaJ-JMM-1 ) ;
9097: LD_EXP 27
9101: PPUSH
9102: LD_STRING D4-LisaJ-JMM-1
9104: PPUSH
9105: CALL_OW 88
// say ( lisa , D4-LisaJ-Lisa-2 ) ;
9109: LD_EXP 33
9113: PPUSH
9114: LD_STRING D4-LisaJ-Lisa-2
9116: PPUSH
9117: CALL_OW 88
// dialogueoff ;
9121: CALL_OW 7
// end ; end ; frank :
9125: GO 10538
9127: LD_EXP 34
9131: DOUBLE
9132: EQUAL
9133: IFTRUE 9137
9135: GO 9374
9137: POP
// if gettag ( tmpar ) = 1 then
9138: LD_LOC 6
9142: PPUSH
9143: CALL_OW 110
9147: PUSH
9148: LD_INT 1
9150: EQUAL
9151: IFFALSE 9372
// begin settag ( tmpar , 2 ) ;
9153: LD_LOC 6
9157: PPUSH
9158: LD_INT 2
9160: PPUSH
9161: CALL_OW 109
// if frank in mojivip then
9165: LD_EXP 34
9169: PUSH
9170: LD_EXP 45
9174: IN
9175: IFFALSE 9275
// begin setside ( frank , al ) ;
9177: LD_EXP 34
9181: PPUSH
9182: LD_EXP 2
9186: PPUSH
9187: CALL_OW 235
// contacted = contacted + 1 ;
9191: LD_ADDR_EXP 24
9195: PUSH
9196: LD_EXP 24
9200: PUSH
9201: LD_INT 1
9203: PLUS
9204: ST_TO_ADDR
// dialogueon ;
9205: CALL_OW 6
// say ( frank , D3-Frank-Frank-1 ) ;
9209: LD_EXP 34
9213: PPUSH
9214: LD_STRING D3-Frank-Frank-1
9216: PPUSH
9217: CALL_OW 88
// say ( john , D3-Frank-JMM-1 ) ;
9221: LD_EXP 27
9225: PPUSH
9226: LD_STRING D3-Frank-JMM-1
9228: PPUSH
9229: CALL_OW 88
// say ( frank , D3-Frank-Frank-2 ) ;
9233: LD_EXP 34
9237: PPUSH
9238: LD_STRING D3-Frank-Frank-2
9240: PPUSH
9241: CALL_OW 88
// say ( john , D3-Frank-JMM-2 ) ;
9245: LD_EXP 27
9249: PPUSH
9250: LD_STRING D3-Frank-JMM-2
9252: PPUSH
9253: CALL_OW 88
// say ( frank , D3-Frank-Frank-3 ) ;
9257: LD_EXP 34
9261: PPUSH
9262: LD_STRING D3-Frank-Frank-3
9264: PPUSH
9265: CALL_OW 88
// dialogueoff ;
9269: CALL_OW 7
// end else
9273: GO 9372
// begin frankmet = true ;
9275: LD_ADDR_EXP 52
9279: PUSH
9280: LD_INT 1
9282: ST_TO_ADDR
// dialogueon ;
9283: CALL_OW 6
// say ( frank , D4-Frank-Frank-1 ) ;
9287: LD_EXP 34
9291: PPUSH
9292: LD_STRING D4-Frank-Frank-1
9294: PPUSH
9295: CALL_OW 88
// say ( john , D4-Frank-JMM-1 ) ;
9299: LD_EXP 27
9303: PPUSH
9304: LD_STRING D4-Frank-JMM-1
9306: PPUSH
9307: CALL_OW 88
// say ( frank , D4-Frank-Frank-2 ) ;
9311: LD_EXP 34
9315: PPUSH
9316: LD_STRING D4-Frank-Frank-2
9318: PPUSH
9319: CALL_OW 88
// say ( john , D4-Frank-JMM-2 ) ;
9323: LD_EXP 27
9327: PPUSH
9328: LD_STRING D4-Frank-JMM-2
9330: PPUSH
9331: CALL_OW 88
// dialogueoff ;
9335: CALL_OW 7
// setside ( frank , al ) ;
9339: LD_EXP 34
9343: PPUSH
9344: LD_EXP 2
9348: PPUSH
9349: CALL_OW 235
// mojivip = mojivip ^ [ frank ] ;
9353: LD_ADDR_EXP 45
9357: PUSH
9358: LD_EXP 45
9362: PUSH
9363: LD_EXP 34
9367: PUSH
9368: EMPTY
9369: LIST
9370: ADD
9371: ST_TO_ADDR
// end ; end ; markc :
9372: GO 10538
9374: LD_EXP 35
9378: DOUBLE
9379: EQUAL
9380: IFTRUE 9384
9382: GO 9554
9384: POP
// if gettag ( tmpar ) = 1 then
9385: LD_LOC 6
9389: PPUSH
9390: CALL_OW 110
9394: PUSH
9395: LD_INT 1
9397: EQUAL
9398: IFFALSE 9552
// begin settag ( tmpar , 2 ) ;
9400: LD_LOC 6
9404: PPUSH
9405: LD_INT 2
9407: PPUSH
9408: CALL_OW 109
// if markc in mojivip then
9412: LD_EXP 35
9416: PUSH
9417: LD_EXP 45
9421: IN
9422: IFFALSE 9498
// begin setside ( markc , al ) ;
9424: LD_EXP 35
9428: PPUSH
9429: LD_EXP 2
9433: PPUSH
9434: CALL_OW 235
// contacted = contacted + 1 ;
9438: LD_ADDR_EXP 24
9442: PUSH
9443: LD_EXP 24
9447: PUSH
9448: LD_INT 1
9450: PLUS
9451: ST_TO_ADDR
// dialogueon ;
9452: CALL_OW 6
// say ( markc , D3-Mark-Corn-1 ) ;
9456: LD_EXP 35
9460: PPUSH
9461: LD_STRING D3-Mark-Corn-1
9463: PPUSH
9464: CALL_OW 88
// say ( john , D3-Mark-JMM-1 ) ;
9468: LD_EXP 27
9472: PPUSH
9473: LD_STRING D3-Mark-JMM-1
9475: PPUSH
9476: CALL_OW 88
// say ( markc , D3-Mark-Corn-2 ) ;
9480: LD_EXP 35
9484: PPUSH
9485: LD_STRING D3-Mark-Corn-2
9487: PPUSH
9488: CALL_OW 88
// dialogueoff ;
9492: CALL_OW 7
// end else
9496: GO 9552
// begin vesel = tmpar ;
9498: LD_ADDR_LOC 7
9502: PUSH
9503: LD_LOC 6
9507: ST_TO_ADDR
// dialogueon ;
9508: CALL_OW 6
// say ( markc , D4-Mark-Corn-1 ) ;
9512: LD_EXP 35
9516: PPUSH
9517: LD_STRING D4-Mark-Corn-1
9519: PPUSH
9520: CALL_OW 88
// say ( john , D4-Mark-JMM-1 ) ;
9524: LD_EXP 27
9528: PPUSH
9529: LD_STRING D4-Mark-JMM-1
9531: PPUSH
9532: CALL_OW 88
// say ( markc , D4-Mark-Corn-2 ) ;
9536: LD_EXP 35
9540: PPUSH
9541: LD_STRING D4-Mark-Corn-2
9543: PPUSH
9544: CALL_OW 88
// dialogueoff ;
9548: CALL_OW 7
// end ; end ; tim :
9552: GO 10538
9554: LD_EXP 36
9558: DOUBLE
9559: EQUAL
9560: IFTRUE 9564
9562: GO 9710
9564: POP
// if gettag ( tmpar ) = 1 then
9565: LD_LOC 6
9569: PPUSH
9570: CALL_OW 110
9574: PUSH
9575: LD_INT 1
9577: EQUAL
9578: IFFALSE 9708
// begin settag ( tmpar , 2 ) ;
9580: LD_LOC 6
9584: PPUSH
9585: LD_INT 2
9587: PPUSH
9588: CALL_OW 109
// if tim in mojivip then
9592: LD_EXP 36
9596: PUSH
9597: LD_EXP 45
9601: IN
9602: IFFALSE 9666
// begin setside ( tim , al ) ;
9604: LD_EXP 36
9608: PPUSH
9609: LD_EXP 2
9613: PPUSH
9614: CALL_OW 235
// contacted = contacted + 1 ;
9618: LD_ADDR_EXP 24
9622: PUSH
9623: LD_EXP 24
9627: PUSH
9628: LD_INT 1
9630: PLUS
9631: ST_TO_ADDR
// dialogueon ;
9632: CALL_OW 6
// say ( john , D3-Tim-JMM-1 ) ;
9636: LD_EXP 27
9640: PPUSH
9641: LD_STRING D3-Tim-JMM-1
9643: PPUSH
9644: CALL_OW 88
// say ( tim , D3-Tim-Glad-1 ) ;
9648: LD_EXP 36
9652: PPUSH
9653: LD_STRING D3-Tim-Glad-1
9655: PPUSH
9656: CALL_OW 88
// dialogueoff ;
9660: CALL_OW 7
// end else
9664: GO 9708
// begin vesel = tmpar ;
9666: LD_ADDR_LOC 7
9670: PUSH
9671: LD_LOC 6
9675: ST_TO_ADDR
// dialogueon ;
9676: CALL_OW 6
// say ( john , D4-Tim-JMM-1 ) ;
9680: LD_EXP 27
9684: PPUSH
9685: LD_STRING D4-Tim-JMM-1
9687: PPUSH
9688: CALL_OW 88
// say ( tim , D4-Tim-Glad-1 ) ;
9692: LD_EXP 36
9696: PPUSH
9697: LD_STRING D4-Tim-Glad-1
9699: PPUSH
9700: CALL_OW 88
// dialogueoff ;
9704: CALL_OW 7
// end ; end ; denis :
9708: GO 10538
9710: LD_EXP 37
9714: DOUBLE
9715: EQUAL
9716: IFTRUE 9720
9718: GO 9810
9720: POP
// if gettag ( tmpar ) = 1 then
9721: LD_LOC 6
9725: PPUSH
9726: CALL_OW 110
9730: PUSH
9731: LD_INT 1
9733: EQUAL
9734: IFFALSE 9808
// begin settag ( tmpar , 2 ) ;
9736: LD_LOC 6
9740: PPUSH
9741: LD_INT 2
9743: PPUSH
9744: CALL_OW 109
// contacted = contacted + 1 ;
9748: LD_ADDR_EXP 24
9752: PUSH
9753: LD_EXP 24
9757: PUSH
9758: LD_INT 1
9760: PLUS
9761: ST_TO_ADDR
// setside ( denis , al ) ;
9762: LD_EXP 37
9766: PPUSH
9767: LD_EXP 2
9771: PPUSH
9772: CALL_OW 235
// dialogueon ;
9776: CALL_OW 6
// say ( denis , D3-Denis-Den-1 ) ;
9780: LD_EXP 37
9784: PPUSH
9785: LD_STRING D3-Denis-Den-1
9787: PPUSH
9788: CALL_OW 88
// say ( john , D3-Denis-JMM-1 ) ;
9792: LD_EXP 27
9796: PPUSH
9797: LD_STRING D3-Denis-JMM-1
9799: PPUSH
9800: CALL_OW 88
// dialogueoff ;
9804: CALL_OW 7
// end ; yamoko :
9808: GO 10538
9810: LD_EXP 38
9814: DOUBLE
9815: EQUAL
9816: IFTRUE 9820
9818: GO 9946
9820: POP
// if gettag ( tmpar ) = 1 then
9821: LD_LOC 6
9825: PPUSH
9826: CALL_OW 110
9830: PUSH
9831: LD_INT 1
9833: EQUAL
9834: IFFALSE 9944
// begin settag ( tmpar , 2 ) ;
9836: LD_LOC 6
9840: PPUSH
9841: LD_INT 2
9843: PPUSH
9844: CALL_OW 109
// if yamoko in mojivip then
9848: LD_EXP 38
9852: PUSH
9853: LD_EXP 45
9857: IN
9858: IFFALSE 9910
// begin setside ( yamoko , al ) ;
9860: LD_EXP 38
9864: PPUSH
9865: LD_EXP 2
9869: PPUSH
9870: CALL_OW 235
// contacted = contacted + 1 ;
9874: LD_ADDR_EXP 24
9878: PUSH
9879: LD_EXP 24
9883: PUSH
9884: LD_INT 1
9886: PLUS
9887: ST_TO_ADDR
// dialogueon ;
9888: CALL_OW 6
// say ( yamoko , D3-Yamako-Yam-1 ) ;
9892: LD_EXP 38
9896: PPUSH
9897: LD_STRING D3-Yamako-Yam-1
9899: PPUSH
9900: CALL_OW 88
// dialogueoff ;
9904: CALL_OW 7
// end else
9908: GO 9944
// begin dialogueon ;
9910: CALL_OW 6
// say ( yamoko , D4-Yamako-Yam-1 ) ;
9914: LD_EXP 38
9918: PPUSH
9919: LD_STRING D4-Yamako-Yam-1
9921: PPUSH
9922: CALL_OW 88
// dialogueoff ;
9926: CALL_OW 7
// setside ( yamoko , am ) ;
9930: LD_EXP 38
9934: PPUSH
9935: LD_EXP 1
9939: PPUSH
9940: CALL_OW 235
// end ; end ; gary :
9944: GO 10538
9946: LD_EXP 39
9950: DOUBLE
9951: EQUAL
9952: IFTRUE 9956
9954: GO 10094
9956: POP
// if gettag ( tmpar ) = 1 then
9957: LD_LOC 6
9961: PPUSH
9962: CALL_OW 110
9966: PUSH
9967: LD_INT 1
9969: EQUAL
9970: IFFALSE 10092
// begin settag ( tmpar , 2 ) ;
9972: LD_LOC 6
9976: PPUSH
9977: LD_INT 2
9979: PPUSH
9980: CALL_OW 109
// if gary in mojivip then
9984: LD_EXP 39
9988: PUSH
9989: LD_EXP 45
9993: IN
9994: IFFALSE 10058
// begin setside ( gary , al ) ;
9996: LD_EXP 39
10000: PPUSH
10001: LD_EXP 2
10005: PPUSH
10006: CALL_OW 235
// contacted = contacted + 1 ;
10010: LD_ADDR_EXP 24
10014: PUSH
10015: LD_EXP 24
10019: PUSH
10020: LD_INT 1
10022: PLUS
10023: ST_TO_ADDR
// dialogueon ;
10024: CALL_OW 6
// say ( gary , D3-Gary-Gary-1 ) ;
10028: LD_EXP 39
10032: PPUSH
10033: LD_STRING D3-Gary-Gary-1
10035: PPUSH
10036: CALL_OW 88
// say ( john , D3-Gary-JMM-1 ) ;
10040: LD_EXP 27
10044: PPUSH
10045: LD_STRING D3-Gary-JMM-1
10047: PPUSH
10048: CALL_OW 88
// dialogueoff ;
10052: CALL_OW 7
// end else
10056: GO 10092
// begin dialogueon ;
10058: CALL_OW 6
// say ( gary , D4-Gary-Gary-1 ) ;
10062: LD_EXP 39
10066: PPUSH
10067: LD_STRING D4-Gary-Gary-1
10069: PPUSH
10070: CALL_OW 88
// dialogueoff ;
10074: CALL_OW 7
// setside ( gary , am ) ;
10078: LD_EXP 39
10082: PPUSH
10083: LD_EXP 1
10087: PPUSH
10088: CALL_OW 235
// end ; end ; simms :
10092: GO 10538
10094: LD_EXP 40
10098: DOUBLE
10099: EQUAL
10100: IFTRUE 10104
10102: GO 10194
10104: POP
// if gettag ( tmpar ) = 1 then
10105: LD_LOC 6
10109: PPUSH
10110: CALL_OW 110
10114: PUSH
10115: LD_INT 1
10117: EQUAL
10118: IFFALSE 10192
// begin settag ( tmpar , 2 ) ;
10120: LD_LOC 6
10124: PPUSH
10125: LD_INT 2
10127: PPUSH
10128: CALL_OW 109
// contacted = contacted + 1 ;
10132: LD_ADDR_EXP 24
10136: PUSH
10137: LD_EXP 24
10141: PUSH
10142: LD_INT 1
10144: PLUS
10145: ST_TO_ADDR
// setside ( simms , al ) ;
10146: LD_EXP 40
10150: PPUSH
10151: LD_EXP 2
10155: PPUSH
10156: CALL_OW 235
// dialogueon ;
10160: CALL_OW 6
// say ( simms , D3-Simms-Sim-1 ) ;
10164: LD_EXP 40
10168: PPUSH
10169: LD_STRING D3-Simms-Sim-1
10171: PPUSH
10172: CALL_OW 88
// say ( john , D3-Simms-JMM-1 ) ;
10176: LD_EXP 27
10180: PPUSH
10181: LD_STRING D3-Simms-JMM-1
10183: PPUSH
10184: CALL_OW 88
// dialogueoff ;
10188: CALL_OW 7
// end ; else
10192: GO 10538
10194: POP
// if gettag ( tmpar ) = 1 then
10195: LD_LOC 6
10199: PPUSH
10200: CALL_OW 110
10204: PUSH
10205: LD_INT 1
10207: EQUAL
10208: IFFALSE 10538
// begin settag ( tmpar , 2 ) ;
10210: LD_LOC 6
10214: PPUSH
10215: LD_INT 2
10217: PPUSH
10218: CALL_OW 109
// if ( takoviti [ tmpar ] in moji ) or ( takoviti [ tmpar ] in mojivip ) then
10222: LD_EXP 26
10226: PUSH
10227: LD_LOC 6
10231: ARRAY
10232: PUSH
10233: LD_EXP 44
10237: IN
10238: PUSH
10239: LD_EXP 26
10243: PUSH
10244: LD_LOC 6
10248: ARRAY
10249: PUSH
10250: LD_EXP 45
10254: IN
10255: OR
10256: IFFALSE 10393
// begin setside ( takoviti [ tmpar ] , al ) ;
10258: LD_EXP 26
10262: PUSH
10263: LD_LOC 6
10267: ARRAY
10268: PPUSH
10269: LD_EXP 2
10273: PPUSH
10274: CALL_OW 235
// contacted = contacted + 1 ;
10278: LD_ADDR_EXP 24
10282: PUSH
10283: LD_EXP 24
10287: PUSH
10288: LD_INT 1
10290: PLUS
10291: ST_TO_ADDR
// if getsex ( takoviti [ tmpar ] ) = sex_male then
10292: LD_EXP 26
10296: PUSH
10297: LD_LOC 6
10301: ARRAY
10302: PPUSH
10303: CALL_OW 258
10307: PUSH
10308: LD_INT 1
10310: EQUAL
10311: IFFALSE 10353
// begin dialogueon ;
10313: CALL_OW 6
// say ( takoviti [ tmpar ] , D3-Soldier1-Sol1-1 ) ;
10317: LD_EXP 26
10321: PUSH
10322: LD_LOC 6
10326: ARRAY
10327: PPUSH
10328: LD_STRING D3-Soldier1-Sol1-1
10330: PPUSH
10331: CALL_OW 88
// say ( john , D3-Soldier1-JMM-1 ) ;
10335: LD_EXP 27
10339: PPUSH
10340: LD_STRING D3-Soldier1-JMM-1
10342: PPUSH
10343: CALL_OW 88
// dialogueoff ;
10347: CALL_OW 7
// end else
10351: GO 10391
// begin dialogueon ;
10353: CALL_OW 6
// say ( takoviti [ tmpar ] , D3-Soldier2-Fsol2-1 ) ;
10357: LD_EXP 26
10361: PUSH
10362: LD_LOC 6
10366: ARRAY
10367: PPUSH
10368: LD_STRING D3-Soldier2-Fsol2-1
10370: PPUSH
10371: CALL_OW 88
// say ( john , D3-Soldier2-JMM-1 ) ;
10375: LD_EXP 27
10379: PPUSH
10380: LD_STRING D3-Soldier2-JMM-1
10382: PPUSH
10383: CALL_OW 88
// dialogueoff ;
10387: CALL_OW 7
// end ; end else
10391: GO 10538
// begin vesel = tmpar ;
10393: LD_ADDR_LOC 7
10397: PUSH
10398: LD_LOC 6
10402: ST_TO_ADDR
// if getsex ( takoviti [ tmpar ] ) = sex_female then
10403: LD_EXP 26
10407: PUSH
10408: LD_LOC 6
10412: ARRAY
10413: PPUSH
10414: CALL_OW 258
10418: PUSH
10419: LD_INT 2
10421: EQUAL
10422: IFFALSE 10482
// begin dialogueon ;
10424: CALL_OW 6
// say ( takoviti [ tmpar ] , D4-Soldier1-FSol1-1 ) ;
10428: LD_EXP 26
10432: PUSH
10433: LD_LOC 6
10437: ARRAY
10438: PPUSH
10439: LD_STRING D4-Soldier1-FSol1-1
10441: PPUSH
10442: CALL_OW 88
// say ( john , D4-Soldier1-JMM-1 ) ;
10446: LD_EXP 27
10450: PPUSH
10451: LD_STRING D4-Soldier1-JMM-1
10453: PPUSH
10454: CALL_OW 88
// say ( takoviti [ tmpar ] , D4-Soldier1-FSol1-2 ) ;
10458: LD_EXP 26
10462: PUSH
10463: LD_LOC 6
10467: ARRAY
10468: PPUSH
10469: LD_STRING D4-Soldier1-FSol1-2
10471: PPUSH
10472: CALL_OW 88
// dialogueoff ;
10476: CALL_OW 7
// end else
10480: GO 10538
// begin dialogueon ;
10482: CALL_OW 6
// say ( takoviti [ tmpar ] , D4-Soldier2-Sol1-1 ) ;
10486: LD_EXP 26
10490: PUSH
10491: LD_LOC 6
10495: ARRAY
10496: PPUSH
10497: LD_STRING D4-Soldier2-Sol1-1
10499: PPUSH
10500: CALL_OW 88
// say ( john , D4-Soldier2-JMM-1 ) ;
10504: LD_EXP 27
10508: PPUSH
10509: LD_STRING D4-Soldier2-JMM-1
10511: PPUSH
10512: CALL_OW 88
// say ( takoviti [ tmpar ] , D4-Soldier2-Sol2-1 ) ;
10516: LD_EXP 26
10520: PUSH
10521: LD_LOC 6
10525: ARRAY
10526: PPUSH
10527: LD_STRING D4-Soldier2-Sol2-1
10529: PPUSH
10530: CALL_OW 88
// dialogueoff ;
10534: CALL_OW 7
// end ; end ; end ; end ; enable ;
10538: ENABLE
// end ;
10539: END
// on enterbuilding ( buil , un ) do if ( un = john ) and ( buil = amlab ) then
10540: LD_VAR 0 2
10544: PUSH
10545: LD_EXP 27
10549: EQUAL
10550: PUSH
10551: LD_VAR 0 1
10555: PUSH
10556: LD_INT 47
10558: EQUAL
10559: AND
10560: IFFALSE 10599
// begin setclass ( john , class_bazooker ) ;
10562: LD_EXP 27
10566: PPUSH
10567: LD_INT 9
10569: PPUSH
10570: CALL_OW 336
// settech ( tech_soporific , al , state_researched ) ;
10574: LD_INT 13
10576: PPUSH
10577: LD_EXP 2
10581: PPUSH
10582: LD_INT 2
10584: PPUSH
10585: CALL_OW 322
// changemissionobjectives ( M1a ) ;
10589: LD_STRING M1a
10591: PPUSH
10592: CALL_OW 337
// enable ( 02 ) ;
10596: LD_INT 2
10598: ENABLE_MARKED
// end ; end_of_file
10599: PPOPN 2
10601: END
// export killx , killy ; on humandestroyed ( un , side , nation , x , y , direction , sex , class ) do if ( penalty < maxpenalty ) and ( ( side = am ) or ( side = oth ) ) then
10602: LD_EXP 21
10606: PUSH
10607: LD_EXP 22
10611: LESS
10612: PUSH
10613: LD_VAR 0 2
10617: PUSH
10618: LD_EXP 1
10622: EQUAL
10623: PUSH
10624: LD_VAR 0 2
10628: PUSH
10629: LD_EXP 3
10633: EQUAL
10634: OR
10635: AND
10636: IFFALSE 10720
// begin penalty = penalty + [ 10 , 8 , 6 ] [ difficulty ] ;
10638: LD_ADDR_EXP 21
10642: PUSH
10643: LD_EXP 21
10647: PUSH
10648: LD_INT 10
10650: PUSH
10651: LD_INT 8
10653: PUSH
10654: LD_INT 6
10656: PUSH
10657: EMPTY
10658: LIST
10659: LIST
10660: LIST
10661: PUSH
10662: LD_OWVAR 67
10666: ARRAY
10667: PLUS
10668: ST_TO_ADDR
// if debug then
10669: LD_EXP 19
10673: IFFALSE 10688
// msg ( penalty:  & penalty ) ;
10675: LD_STRING penalty: 
10677: PUSH
10678: LD_EXP 21
10682: STR
10683: PPUSH
10684: CALL_OW 100
// if penalty >= maxpenalty then
10688: LD_EXP 21
10692: PUSH
10693: LD_EXP 22
10697: GREATEREQUAL
10698: IFFALSE 10720
// begin killx = x ;
10700: LD_ADDR_EXP 55
10704: PUSH
10705: LD_VAR 0 4
10709: ST_TO_ADDR
// killy = y ;
10710: LD_ADDR_EXP 56
10714: PUSH
10715: LD_VAR 0 5
10719: ST_TO_ADDR
// end end ;
10720: PPOPN 8
10722: END
// on unitgoestored ( un ) do if ( gettype ( un ) = unit_vehicle ) and ( penalty < maxpenalty ) and ( ( getside ( un ) = am ) or ( getside ( un ) = oth ) ) then
10723: LD_VAR 0 1
10727: PPUSH
10728: CALL_OW 247
10732: PUSH
10733: LD_INT 2
10735: EQUAL
10736: PUSH
10737: LD_EXP 21
10741: PUSH
10742: LD_EXP 22
10746: LESS
10747: AND
10748: PUSH
10749: LD_VAR 0 1
10753: PPUSH
10754: CALL_OW 255
10758: PUSH
10759: LD_EXP 1
10763: EQUAL
10764: PUSH
10765: LD_VAR 0 1
10769: PPUSH
10770: CALL_OW 255
10774: PUSH
10775: LD_EXP 3
10779: EQUAL
10780: OR
10781: AND
10782: IFFALSE 10876
// begin penalty = penalty + [ 8 , 6 , 4 ] [ difficulty ] ;
10784: LD_ADDR_EXP 21
10788: PUSH
10789: LD_EXP 21
10793: PUSH
10794: LD_INT 8
10796: PUSH
10797: LD_INT 6
10799: PUSH
10800: LD_INT 4
10802: PUSH
10803: EMPTY
10804: LIST
10805: LIST
10806: LIST
10807: PUSH
10808: LD_OWVAR 67
10812: ARRAY
10813: PLUS
10814: ST_TO_ADDR
// if debug then
10815: LD_EXP 19
10819: IFFALSE 10834
// msg ( penalty:  & penalty ) ;
10821: LD_STRING penalty: 
10823: PUSH
10824: LD_EXP 21
10828: STR
10829: PPUSH
10830: CALL_OW 100
// if penalty >= maxpenalty then
10834: LD_EXP 21
10838: PUSH
10839: LD_EXP 22
10843: GREATEREQUAL
10844: IFFALSE 10876
// begin killx = getx ( un ) ;
10846: LD_ADDR_EXP 55
10850: PUSH
10851: LD_VAR 0 1
10855: PPUSH
10856: CALL_OW 250
10860: ST_TO_ADDR
// killy = gety ( un ) ;
10861: LD_ADDR_EXP 56
10865: PUSH
10866: LD_VAR 0 1
10870: PPUSH
10871: CALL_OW 251
10875: ST_TO_ADDR
// end end ;
10876: PPOPN 1
10878: END
// var guards ; every 0 0$1.2 trigger penalty >= maxpenalty do var tmp , tmp2 , tmp1 , rad ;
10879: LD_EXP 21
10883: PUSH
10884: LD_EXP 22
10888: GREATEREQUAL
10889: IFFALSE 11831
10891: GO 10893
10893: DISABLE
10894: LD_INT 0
10896: PPUSH
10897: PPUSH
10898: PPUSH
10899: PPUSH
// begin penalty = 0 ;
10900: LD_ADDR_EXP 21
10904: PUSH
10905: LD_INT 0
10907: ST_TO_ADDR
// rad = 5 ;
10908: LD_ADDR_VAR 0 4
10912: PUSH
10913: LD_INT 5
10915: ST_TO_ADDR
// tmp1 = [ ] ;
10916: LD_ADDR_VAR 0 3
10920: PUSH
10921: EMPTY
10922: ST_TO_ADDR
// while ( ( 0 + tmp1 ) < 5 ) and ( rad < 25 ) do
10923: LD_INT 0
10925: PUSH
10926: LD_VAR 0 3
10930: PLUS
10931: PUSH
10932: LD_INT 5
10934: LESS
10935: PUSH
10936: LD_VAR 0 4
10940: PUSH
10941: LD_INT 25
10943: LESS
10944: AND
10945: IFFALSE 11035
// begin rad = rad + 5 ;
10947: LD_ADDR_VAR 0 4
10951: PUSH
10952: LD_VAR 0 4
10956: PUSH
10957: LD_INT 5
10959: PLUS
10960: ST_TO_ADDR
// tmp1 = filterallunits ( [ [ f_side , al ] , f_not , [ f_type , unit_building ] , [ f_ok ] , [ f_distxy , killx , killy , rad ] ] ) ;
10961: LD_ADDR_VAR 0 3
10965: PUSH
10966: LD_INT 22
10968: PUSH
10969: LD_EXP 2
10973: PUSH
10974: EMPTY
10975: LIST
10976: LIST
10977: PUSH
10978: LD_INT 3
10980: PUSH
10981: LD_INT 21
10983: PUSH
10984: LD_INT 3
10986: PUSH
10987: EMPTY
10988: LIST
10989: LIST
10990: PUSH
10991: LD_INT 50
10993: PUSH
10994: EMPTY
10995: LIST
10996: PUSH
10997: LD_INT 92
10999: PUSH
11000: LD_EXP 55
11004: PUSH
11005: LD_EXP 56
11009: PUSH
11010: LD_VAR 0 4
11014: PUSH
11015: EMPTY
11016: LIST
11017: LIST
11018: LIST
11019: LIST
11020: PUSH
11021: EMPTY
11022: LIST
11023: LIST
11024: LIST
11025: LIST
11026: LIST
11027: PPUSH
11028: CALL_OW 69
11032: ST_TO_ADDR
// end ;
11033: GO 10923
// uc_side = am ;
11035: LD_ADDR_OWVAR 20
11039: PUSH
11040: LD_EXP 1
11044: ST_TO_ADDR
// uc_nation = nation_american ;
11045: LD_ADDR_OWVAR 21
11049: PUSH
11050: LD_INT 1
11052: ST_TO_ADDR
// vc_control = control_manual ;
11053: LD_ADDR_OWVAR 38
11057: PUSH
11058: LD_INT 1
11060: ST_TO_ADDR
// vc_engine = engine_siberite ;
11061: LD_ADDR_OWVAR 39
11065: PUSH
11066: LD_INT 3
11068: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
11069: LD_ADDR_OWVAR 37
11073: PUSH
11074: LD_INT 3
11076: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
11077: LD_ADDR_OWVAR 40
11081: PUSH
11082: LD_INT 4
11084: ST_TO_ADDR
// tmp = createvehicle ;
11085: LD_ADDR_VAR 0 1
11089: PUSH
11090: CALL_OW 45
11094: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
11095: LD_VAR 0 1
11099: PPUSH
11100: LD_INT 5
11102: PPUSH
11103: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
11107: LD_VAR 0 1
11111: PPUSH
11112: LD_INT 19
11114: PPUSH
11115: LD_INT 0
11117: PPUSH
11118: CALL_OW 49
// preparemechanic ( sex_male , 8 ) ;
11122: LD_INT 1
11124: PPUSH
11125: LD_INT 8
11127: PPUSH
11128: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11132: CALL_OW 44
11136: PPUSH
11137: LD_VAR 0 1
11141: PPUSH
11142: CALL_OW 52
// tmp2 = [ tmp ] ;
11146: LD_ADDR_VAR 0 2
11150: PUSH
11151: LD_VAR 0 1
11155: PUSH
11156: EMPTY
11157: LIST
11158: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
11159: LD_ADDR_OWVAR 37
11163: PUSH
11164: LD_INT 3
11166: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
11167: LD_ADDR_OWVAR 40
11171: PUSH
11172: LD_INT 4
11174: ST_TO_ADDR
// tmp = createvehicle ;
11175: LD_ADDR_VAR 0 1
11179: PUSH
11180: CALL_OW 45
11184: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
11185: LD_VAR 0 1
11189: PPUSH
11190: LD_INT 5
11192: PPUSH
11193: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
11197: LD_VAR 0 1
11201: PPUSH
11202: LD_INT 19
11204: PPUSH
11205: LD_INT 0
11207: PPUSH
11208: CALL_OW 49
// preparemechanic ( sex_male , 8 ) ;
11212: LD_INT 1
11214: PPUSH
11215: LD_INT 8
11217: PPUSH
11218: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11222: CALL_OW 44
11226: PPUSH
11227: LD_VAR 0 1
11231: PPUSH
11232: CALL_OW 52
// tmp2 = tmp2 ^ [ tmp ] ;
11236: LD_ADDR_VAR 0 2
11240: PUSH
11241: LD_VAR 0 2
11245: PUSH
11246: LD_VAR 0 1
11250: PUSH
11251: EMPTY
11252: LIST
11253: ADD
11254: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
11255: LD_ADDR_OWVAR 37
11259: PUSH
11260: LD_INT 3
11262: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
11263: LD_ADDR_OWVAR 40
11267: PUSH
11268: LD_INT 4
11270: ST_TO_ADDR
// tmp = createvehicle ;
11271: LD_ADDR_VAR 0 1
11275: PUSH
11276: CALL_OW 45
11280: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
11281: LD_VAR 0 1
11285: PPUSH
11286: LD_INT 5
11288: PPUSH
11289: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
11293: LD_VAR 0 1
11297: PPUSH
11298: LD_INT 19
11300: PPUSH
11301: LD_INT 0
11303: PPUSH
11304: CALL_OW 49
// preparemechanic ( sex_male , 8 ) ;
11308: LD_INT 1
11310: PPUSH
11311: LD_INT 8
11313: PPUSH
11314: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11318: CALL_OW 44
11322: PPUSH
11323: LD_VAR 0 1
11327: PPUSH
11328: CALL_OW 52
// tmp2 = tmp2 ^ [ tmp ] ;
11332: LD_ADDR_VAR 0 2
11336: PUSH
11337: LD_VAR 0 2
11341: PUSH
11342: LD_VAR 0 1
11346: PUSH
11347: EMPTY
11348: LIST
11349: ADD
11350: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
11351: LD_ADDR_OWVAR 37
11355: PUSH
11356: LD_INT 3
11358: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
11359: LD_ADDR_OWVAR 40
11363: PUSH
11364: LD_INT 4
11366: ST_TO_ADDR
// tmp = createvehicle ;
11367: LD_ADDR_VAR 0 1
11371: PUSH
11372: CALL_OW 45
11376: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
11377: LD_VAR 0 1
11381: PPUSH
11382: LD_INT 5
11384: PPUSH
11385: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
11389: LD_VAR 0 1
11393: PPUSH
11394: LD_INT 19
11396: PPUSH
11397: LD_INT 0
11399: PPUSH
11400: CALL_OW 49
// preparemechanic ( sex_male , 8 ) ;
11404: LD_INT 1
11406: PPUSH
11407: LD_INT 8
11409: PPUSH
11410: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11414: CALL_OW 44
11418: PPUSH
11419: LD_VAR 0 1
11423: PPUSH
11424: CALL_OW 52
// tmp2 = tmp2 ^ [ tmp ] ;
11428: LD_ADDR_VAR 0 2
11432: PUSH
11433: LD_VAR 0 2
11437: PUSH
11438: LD_VAR 0 1
11442: PUSH
11443: EMPTY
11444: LIST
11445: ADD
11446: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
11447: LD_ADDR_OWVAR 37
11451: PUSH
11452: LD_INT 3
11454: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
11455: LD_ADDR_OWVAR 40
11459: PUSH
11460: LD_INT 4
11462: ST_TO_ADDR
// tmp = createvehicle ;
11463: LD_ADDR_VAR 0 1
11467: PUSH
11468: CALL_OW 45
11472: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
11473: LD_VAR 0 1
11477: PPUSH
11478: LD_INT 5
11480: PPUSH
11481: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
11485: LD_VAR 0 1
11489: PPUSH
11490: LD_INT 19
11492: PPUSH
11493: LD_INT 0
11495: PPUSH
11496: CALL_OW 49
// preparemechanic ( sex_male , 8 ) ;
11500: LD_INT 1
11502: PPUSH
11503: LD_INT 8
11505: PPUSH
11506: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11510: CALL_OW 44
11514: PPUSH
11515: LD_VAR 0 1
11519: PPUSH
11520: CALL_OW 52
// tmp2 = tmp2 ^ [ tmp ] ;
11524: LD_ADDR_VAR 0 2
11528: PUSH
11529: LD_VAR 0 2
11533: PUSH
11534: LD_VAR 0 1
11538: PUSH
11539: EMPTY
11540: LIST
11541: ADD
11542: ST_TO_ADDR
// vc_chassis = us_heavy_tracked ;
11543: LD_ADDR_OWVAR 37
11547: PUSH
11548: LD_INT 4
11550: ST_TO_ADDR
// vc_weapon = us_heavy_gun ;
11551: LD_ADDR_OWVAR 40
11555: PUSH
11556: LD_INT 6
11558: ST_TO_ADDR
// tmp = createvehicle ;
11559: LD_ADDR_VAR 0 1
11563: PUSH
11564: CALL_OW 45
11568: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
11569: LD_VAR 0 1
11573: PPUSH
11574: LD_INT 5
11576: PPUSH
11577: CALL_OW 233
// placeunitarea ( tmp , guard_in , false ) ;
11581: LD_VAR 0 1
11585: PPUSH
11586: LD_INT 19
11588: PPUSH
11589: LD_INT 0
11591: PPUSH
11592: CALL_OW 49
// preparemechanic ( sex_male , 9 ) ;
11596: LD_INT 1
11598: PPUSH
11599: LD_INT 9
11601: PPUSH
11602: CALL_OW 383
// placehumaninunit ( createhuman , tmp ) ;
11606: CALL_OW 44
11610: PPUSH
11611: LD_VAR 0 1
11615: PPUSH
11616: CALL_OW 52
// tmp2 = tmp2 ^ [ tmp ] ;
11620: LD_ADDR_VAR 0 2
11624: PUSH
11625: LD_VAR 0 2
11629: PUSH
11630: LD_VAR 0 1
11634: PUSH
11635: EMPTY
11636: LIST
11637: ADD
11638: ST_TO_ADDR
// guards = tmp2 ;
11639: LD_ADDR_LOC 8
11643: PUSH
11644: LD_VAR 0 2
11648: ST_TO_ADDR
// for tmp in tmp1 do
11649: LD_ADDR_VAR 0 1
11653: PUSH
11654: LD_VAR 0 3
11658: PUSH
11659: FOR_IN
11660: IFFALSE 11692
// begin addcomattackunit ( tmp2 , tmp ) ;
11662: LD_VAR 0 2
11666: PPUSH
11667: LD_VAR 0 1
11671: PPUSH
11672: CALL_OW 175
// priorityattack ( am , tmp ) ;
11676: LD_EXP 1
11680: PPUSH
11681: LD_VAR 0 1
11685: PPUSH
11686: CALL_OW 470
// end ;
11690: GO 11659
11692: POP
11693: POP
// while getlives ( tmp1 ) > 0 do
11694: LD_VAR 0 3
11698: PPUSH
11699: CALL_OW 256
11703: PUSH
11704: LD_INT 0
11706: GREATER
11707: IFFALSE 11741
// begin wait ( 0 0$1 ) ;
11709: LD_INT 35
11711: PPUSH
11712: CALL_OW 67
// if debug then
11716: LD_EXP 19
11720: IFFALSE 11739
// debug_strings = [ cile: , tmp1 ] ;
11722: LD_ADDR_OWVAR 48
11726: PUSH
11727: LD_STRING cile:
11729: PUSH
11730: LD_VAR 0 3
11734: PUSH
11735: EMPTY
11736: LIST
11737: LIST
11738: ST_TO_ADDR
// end ;
11739: GO 11694
// if debug then
11741: LD_EXP 19
11745: IFFALSE 11754
// msg ( lets get off ) ;
11747: LD_STRING lets get off
11749: PPUSH
11750: CALL_OW 100
// for tmp = 1 to 6 do
11754: LD_ADDR_VAR 0 1
11758: PUSH
11759: DOUBLE
11760: LD_INT 1
11762: DEC
11763: ST_TO_ADDR
11764: LD_INT 6
11766: PUSH
11767: FOR_TO
11768: IFFALSE 11817
// commovexy ( guards [ tmp ] , guard_out_ [ tmp ] [ 1 ] , guard_out_ [ tmp ] [ 2 ] ) ;
11770: LD_LOC 8
11774: PUSH
11775: LD_VAR 0 1
11779: ARRAY
11780: PPUSH
11781: LD_EXP 20
11785: PUSH
11786: LD_VAR 0 1
11790: ARRAY
11791: PUSH
11792: LD_INT 1
11794: ARRAY
11795: PPUSH
11796: LD_EXP 20
11800: PUSH
11801: LD_VAR 0 1
11805: ARRAY
11806: PUSH
11807: LD_INT 2
11809: ARRAY
11810: PPUSH
11811: CALL_OW 111
11815: GO 11767
11817: POP
11818: POP
// enable ( 04 ) ;
11819: LD_INT 4
11821: ENABLE_MARKED
// achjo = 0 ;
11822: LD_ADDR_LOC 9
11826: PUSH
11827: LD_INT 0
11829: ST_TO_ADDR
// enable ;
11830: ENABLE
// end ;
11831: PPOPN 4
11833: END
// var achjo ; every 0 0$1 marked 04 do var tmp , tmp1 ;
11834: GO 11836
11836: DISABLE
11837: LD_INT 0
11839: PPUSH
11840: PPUSH
// begin tmp = filterunitsinarea ( guard_out , [ [ f_side , am ] ] ) ;
11841: LD_ADDR_VAR 0 1
11845: PUSH
11846: LD_INT 20
11848: PPUSH
11849: LD_INT 22
11851: PUSH
11852: LD_EXP 1
11856: PUSH
11857: EMPTY
11858: LIST
11859: LIST
11860: PUSH
11861: EMPTY
11862: LIST
11863: PPUSH
11864: CALL_OW 70
11868: ST_TO_ADDR
// for tmp1 in tmp do
11869: LD_ADDR_VAR 0 2
11873: PUSH
11874: LD_VAR 0 1
11878: PUSH
11879: FOR_IN
11880: IFFALSE 11893
// destroyunit ( tmp1 ) ;
11882: LD_VAR 0 2
11886: PPUSH
11887: CALL_OW 65
11891: GO 11879
11893: POP
11894: POP
// if unitfilter ( guards , [ [ f_ok ] ] ) then
11895: LD_LOC 8
11899: PPUSH
11900: LD_INT 50
11902: PUSH
11903: EMPTY
11904: LIST
11905: PUSH
11906: EMPTY
11907: LIST
11908: PPUSH
11909: CALL_OW 72
11913: IFFALSE 12011
// begin achjo = achjo + 1 ;
11915: LD_ADDR_LOC 9
11919: PUSH
11920: LD_LOC 9
11924: PUSH
11925: LD_INT 1
11927: PLUS
11928: ST_TO_ADDR
// if ( achjo mod 5 ) = 0 then
11929: LD_LOC 9
11933: PUSH
11934: LD_INT 5
11936: MOD
11937: PUSH
11938: LD_INT 0
11940: EQUAL
11941: IFFALSE 12008
// for tmp = 1 to 6 do
11943: LD_ADDR_VAR 0 1
11947: PUSH
11948: DOUBLE
11949: LD_INT 1
11951: DEC
11952: ST_TO_ADDR
11953: LD_INT 6
11955: PUSH
11956: FOR_TO
11957: IFFALSE 12006
// commovexy ( guards [ tmp ] , guard_out_ [ tmp ] [ 1 ] , guard_out_ [ tmp ] [ 2 ] ) ;
11959: LD_LOC 8
11963: PUSH
11964: LD_VAR 0 1
11968: ARRAY
11969: PPUSH
11970: LD_EXP 20
11974: PUSH
11975: LD_VAR 0 1
11979: ARRAY
11980: PUSH
11981: LD_INT 1
11983: ARRAY
11984: PPUSH
11985: LD_EXP 20
11989: PUSH
11990: LD_VAR 0 1
11994: ARRAY
11995: PUSH
11996: LD_INT 2
11998: ARRAY
11999: PPUSH
12000: CALL_OW 111
12004: GO 11956
12006: POP
12007: POP
// enable ;
12008: ENABLE
// end else
12009: GO 12011
// ; end ; end_of_file
12011: PPOPN 2
12013: END
// every 0 0$2 + 0 0$0.1 do
12014: GO 12016
12016: DISABLE
// begin if FilterAllUnits ( [ [ f_side , 7 ] , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_soldier ] , [ f_class , class_apeman_kamikaze ] ] ] ) > FilterAllUnits ( [ [ f_side , 7 ] , [ 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
12017: LD_INT 22
12019: PUSH
12020: LD_INT 7
12022: PUSH
12023: EMPTY
12024: LIST
12025: LIST
12026: PUSH
12027: LD_INT 2
12029: PUSH
12030: LD_INT 25
12032: PUSH
12033: LD_INT 12
12035: PUSH
12036: EMPTY
12037: LIST
12038: LIST
12039: PUSH
12040: LD_INT 25
12042: PUSH
12043: LD_INT 16
12045: PUSH
12046: EMPTY
12047: LIST
12048: LIST
12049: PUSH
12050: LD_INT 25
12052: PUSH
12053: LD_INT 15
12055: PUSH
12056: EMPTY
12057: LIST
12058: LIST
12059: PUSH
12060: LD_INT 25
12062: PUSH
12063: LD_INT 17
12065: PUSH
12066: EMPTY
12067: LIST
12068: LIST
12069: PUSH
12070: EMPTY
12071: LIST
12072: LIST
12073: LIST
12074: LIST
12075: LIST
12076: PUSH
12077: EMPTY
12078: LIST
12079: LIST
12080: PPUSH
12081: CALL_OW 69
12085: PUSH
12086: LD_INT 22
12088: PUSH
12089: LD_INT 7
12091: PUSH
12092: EMPTY
12093: LIST
12094: LIST
12095: PUSH
12096: LD_INT 21
12098: PUSH
12099: LD_INT 1
12101: PUSH
12102: EMPTY
12103: LIST
12104: LIST
12105: PUSH
12106: LD_INT 3
12108: PUSH
12109: LD_INT 2
12111: PUSH
12112: LD_INT 25
12114: PUSH
12115: LD_INT 12
12117: PUSH
12118: EMPTY
12119: LIST
12120: LIST
12121: PUSH
12122: LD_INT 25
12124: PUSH
12125: LD_INT 16
12127: PUSH
12128: EMPTY
12129: LIST
12130: LIST
12131: PUSH
12132: LD_INT 25
12134: PUSH
12135: LD_INT 15
12137: PUSH
12138: EMPTY
12139: LIST
12140: LIST
12141: PUSH
12142: LD_INT 25
12144: PUSH
12145: LD_INT 17
12147: PUSH
12148: EMPTY
12149: LIST
12150: LIST
12151: PUSH
12152: EMPTY
12153: LIST
12154: LIST
12155: LIST
12156: LIST
12157: LIST
12158: PUSH
12159: EMPTY
12160: LIST
12161: LIST
12162: PUSH
12163: EMPTY
12164: LIST
12165: LIST
12166: LIST
12167: PPUSH
12168: CALL_OW 69
12172: GREATER
12173: IFFALSE 12184
// begin SetAchievement ( ACH_POTA ) ;
12175: LD_STRING ACH_POTA
12177: PPUSH
12178: CALL_OW 543
// exit ;
12182: GO 12185
// end ; enable ;
12184: ENABLE
// end ;
12185: END
// export function SA_OnJoanAndLisaJoinedAlliance ( l , j ) ; var n ; begin
12186: LD_INT 0
12188: PPUSH
12189: PPUSH
// n = 0 ;
12190: LD_ADDR_VAR 0 4
12194: PUSH
12195: LD_INT 0
12197: ST_TO_ADDR
// if j then
12198: LD_VAR 0 2
12202: IFFALSE 12218
// n = n + 1 ;
12204: LD_ADDR_VAR 0 4
12208: PUSH
12209: LD_VAR 0 4
12213: PUSH
12214: LD_INT 1
12216: PLUS
12217: ST_TO_ADDR
// if l then
12218: LD_VAR 0 1
12222: IFFALSE 12238
// n = n + 1 ;
12224: LD_ADDR_VAR 0 4
12228: PUSH
12229: LD_VAR 0 4
12233: PUSH
12234: LD_INT 1
12236: PLUS
12237: ST_TO_ADDR
// SetAchievementEX ( ACH_MED , n ) ;
12238: LD_STRING ACH_MED
12240: PPUSH
12241: LD_VAR 0 4
12245: PPUSH
12246: CALL_OW 564
// if j and l then
12250: LD_VAR 0 2
12254: PUSH
12255: LD_VAR 0 1
12259: AND
12260: IFFALSE 12269
// SetAchievement ( ACH_MED ) ;
12262: LD_STRING ACH_MED
12264: PPUSH
12265: CALL_OW 543
// end ; end_of_file
12269: LD_VAR 0 3
12273: RET
// export function SA_EndMission ( campaignNumber , missionNumber , medal1 , medal2 , medal3 ) ; var achiv ; begin
12274: LD_INT 0
12276: PPUSH
12277: PPUSH
// if not missionNumber then
12278: LD_VAR 0 2
12282: NOT
12283: IFFALSE 12287
// exit ;
12285: GO 12417
// achiv := false ;
12287: LD_ADDR_VAR 0 7
12291: PUSH
12292: LD_INT 0
12294: ST_TO_ADDR
// case campaignNumber of 1 :
12295: LD_VAR 0 1
12299: PUSH
12300: LD_INT 1
12302: DOUBLE
12303: EQUAL
12304: IFTRUE 12308
12306: GO 12319
12308: POP
// achiv := ACH_GOTA ; 2 :
12309: LD_ADDR_VAR 0 7
12313: PUSH
12314: LD_STRING ACH_GOTA
12316: ST_TO_ADDR
12317: GO 12369
12319: LD_INT 2
12321: DOUBLE
12322: EQUAL
12323: IFTRUE 12327
12325: GO 12330
12327: POP
// ; 3 :
12328: GO 12369
12330: LD_INT 3
12332: DOUBLE
12333: EQUAL
12334: IFTRUE 12338
12336: GO 12349
12338: POP
// achiv := ACH_MOTSU ; 4 :
12339: LD_ADDR_VAR 0 7
12343: PUSH
12344: LD_STRING ACH_MOTSU
12346: ST_TO_ADDR
12347: GO 12369
12349: LD_INT 4
12351: DOUBLE
12352: EQUAL
12353: IFTRUE 12357
12355: GO 12368
12357: POP
// achiv := ACH_LOP ; end ;
12358: LD_ADDR_VAR 0 7
12362: PUSH
12363: LD_STRING ACH_LOP
12365: ST_TO_ADDR
12366: GO 12369
12368: POP
// if Difficulty = 3 and achiv and medal1 and medal2 and medal3 then
12369: LD_OWVAR 67
12373: PUSH
12374: LD_INT 3
12376: EQUAL
12377: PUSH
12378: LD_VAR 0 7
12382: AND
12383: PUSH
12384: LD_VAR 0 3
12388: AND
12389: PUSH
12390: LD_VAR 0 4
12394: AND
12395: PUSH
12396: LD_VAR 0 5
12400: AND
12401: IFFALSE 12417
// SetAchievementEX ( achiv , missionNumber ) ;
12403: LD_VAR 0 7
12407: PPUSH
12408: LD_VAR 0 2
12412: PPUSH
12413: CALL_OW 564
// end ;
12417: LD_VAR 0 6
12421: RET
// export function SA_BehemothConstructed ; begin
12422: LD_INT 0
12424: PPUSH
// SetAchievement ( ACH_SMC ) ;
12425: LD_STRING ACH_SMC
12427: PPUSH
12428: CALL_OW 543
// end ;
12432: LD_VAR 0 1
12436: RET
// on CustomCommand ( p1 , p2 , p3 , p4 , p5 , p6 ) do begin case p2 of 1 :
12437: LD_VAR 0 2
12441: PUSH
12442: LD_INT 1
12444: DOUBLE
12445: EQUAL
12446: IFTRUE 12450
12448: GO 12457
12450: POP
// HackUnlimitedResources ; 2 :
12451: CALL 12641 0 0
12455: GO 12638
12457: LD_INT 2
12459: DOUBLE
12460: EQUAL
12461: IFTRUE 12465
12463: GO 12472
12465: POP
// HackSetLevel10 ; 3 :
12466: CALL 12774 0 0
12470: GO 12638
12472: LD_INT 3
12474: DOUBLE
12475: EQUAL
12476: IFTRUE 12480
12478: GO 12487
12480: POP
// HackSetLevel10YourUnits ; 4 :
12481: CALL 12859 0 0
12485: GO 12638
12487: LD_INT 4
12489: DOUBLE
12490: EQUAL
12491: IFTRUE 12495
12493: GO 12517
12495: POP
// HackSpawnHuman ( p3 , p4 , p5 ) ; 5 :
12496: LD_VAR 0 3
12500: PPUSH
12501: LD_VAR 0 4
12505: PPUSH
12506: LD_VAR 0 5
12510: PPUSH
12511: CALL 12949 0 3
12515: GO 12638
12517: LD_INT 5
12519: DOUBLE
12520: EQUAL
12521: IFTRUE 12525
12523: GO 12532
12525: POP
// HackSpawnVehicle ; 6 :
12526: CALL 13010 0 0
12530: GO 12638
12532: LD_INT 6
12534: DOUBLE
12535: EQUAL
12536: IFTRUE 12540
12538: GO 12547
12540: POP
// HackInvincible ; 7 :
12541: CALL 13556 0 0
12545: GO 12638
12547: LD_INT 7
12549: DOUBLE
12550: EQUAL
12551: IFTRUE 12555
12553: GO 12562
12555: POP
// HackInvisible ; 8 :
12556: CALL 13667 0 0
12560: GO 12638
12562: LD_INT 8
12564: DOUBLE
12565: EQUAL
12566: IFTRUE 12570
12568: GO 12577
12570: POP
// HackChangeYourSide ; 9 :
12571: CALL 13724 0 0
12575: GO 12638
12577: LD_INT 9
12579: DOUBLE
12580: EQUAL
12581: IFTRUE 12585
12583: GO 12592
12585: POP
// HackChangeUnitSide ; 10 :
12586: CALL 13766 0 0
12590: GO 12638
12592: LD_INT 10
12594: DOUBLE
12595: EQUAL
12596: IFTRUE 12600
12598: GO 12607
12600: POP
// HackFog ; 11 :
12601: CALL 13867 0 0
12605: GO 12638
12607: LD_INT 11
12609: DOUBLE
12610: EQUAL
12611: IFTRUE 12615
12613: GO 12622
12615: POP
// HackApeman ; 12 :
12616: CALL 13882 0 0
12620: GO 12638
12622: LD_INT 12
12624: DOUBLE
12625: EQUAL
12626: IFTRUE 12630
12628: GO 12637
12630: POP
// HackBoom ; end ;
12631: CALL 13967 0 0
12635: GO 12638
12637: POP
// end ;
12638: PPOPN 6
12640: END
// export function HackUnlimitedResources ; var i , j , tmp ; begin
12641: LD_INT 0
12643: PPUSH
12644: PPUSH
12645: PPUSH
12646: PPUSH
// tmp := FilterAllUnits ( [ [ f_side , your_side ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
12647: LD_ADDR_VAR 0 4
12651: PUSH
12652: LD_INT 22
12654: PUSH
12655: LD_OWVAR 2
12659: PUSH
12660: EMPTY
12661: LIST
12662: LIST
12663: PUSH
12664: LD_INT 2
12666: PUSH
12667: LD_INT 30
12669: PUSH
12670: LD_INT 0
12672: PUSH
12673: EMPTY
12674: LIST
12675: LIST
12676: PUSH
12677: LD_INT 30
12679: PUSH
12680: LD_INT 1
12682: PUSH
12683: EMPTY
12684: LIST
12685: LIST
12686: PUSH
12687: EMPTY
12688: LIST
12689: LIST
12690: LIST
12691: PUSH
12692: EMPTY
12693: LIST
12694: LIST
12695: PPUSH
12696: CALL_OW 69
12700: ST_TO_ADDR
// if not tmp then
12701: LD_VAR 0 4
12705: NOT
12706: IFFALSE 12710
// exit ;
12708: GO 12769
// for i in tmp do
12710: LD_ADDR_VAR 0 2
12714: PUSH
12715: LD_VAR 0 4
12719: PUSH
12720: FOR_IN
12721: IFFALSE 12767
// for j = 1 to 3 do
12723: LD_ADDR_VAR 0 3
12727: PUSH
12728: DOUBLE
12729: LD_INT 1
12731: DEC
12732: ST_TO_ADDR
12733: LD_INT 3
12735: PUSH
12736: FOR_TO
12737: IFFALSE 12763
// SetResourceType ( GetBase ( i ) , j , 99999 ) ;
12739: LD_VAR 0 2
12743: PPUSH
12744: CALL_OW 274
12748: PPUSH
12749: LD_VAR 0 3
12753: PPUSH
12754: LD_INT 99999
12756: PPUSH
12757: CALL_OW 277
12761: GO 12736
12763: POP
12764: POP
12765: GO 12720
12767: POP
12768: POP
// end ;
12769: LD_VAR 0 1
12773: RET
// export function HackSetLevel10 ; var i , j ; begin
12774: LD_INT 0
12776: PPUSH
12777: PPUSH
12778: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
12779: LD_ADDR_VAR 0 2
12783: PUSH
12784: LD_INT 21
12786: PUSH
12787: LD_INT 1
12789: PUSH
12790: EMPTY
12791: LIST
12792: LIST
12793: PPUSH
12794: CALL_OW 69
12798: PUSH
12799: FOR_IN
12800: IFFALSE 12852
// if IsSelected ( i ) then
12802: LD_VAR 0 2
12806: PPUSH
12807: CALL_OW 306
12811: IFFALSE 12850
// begin for j := 1 to 4 do
12813: LD_ADDR_VAR 0 3
12817: PUSH
12818: DOUBLE
12819: LD_INT 1
12821: DEC
12822: ST_TO_ADDR
12823: LD_INT 4
12825: PUSH
12826: FOR_TO
12827: IFFALSE 12848
// SetSkill ( i , j , 10 ) ;
12829: LD_VAR 0 2
12833: PPUSH
12834: LD_VAR 0 3
12838: PPUSH
12839: LD_INT 10
12841: PPUSH
12842: CALL_OW 237
12846: GO 12826
12848: POP
12849: POP
// end ;
12850: GO 12799
12852: POP
12853: POP
// end ;
12854: LD_VAR 0 1
12858: RET
// export function HackSetLevel10YourUnits ; var i , j ; begin
12859: LD_INT 0
12861: PPUSH
12862: PPUSH
12863: PPUSH
// for i in FilterAllUnits ( [ [ f_side , your_side ] , [ f_type , unit_human ] ] ) do
12864: LD_ADDR_VAR 0 2
12868: PUSH
12869: LD_INT 22
12871: PUSH
12872: LD_OWVAR 2
12876: PUSH
12877: EMPTY
12878: LIST
12879: LIST
12880: PUSH
12881: LD_INT 21
12883: PUSH
12884: LD_INT 1
12886: PUSH
12887: EMPTY
12888: LIST
12889: LIST
12890: PUSH
12891: EMPTY
12892: LIST
12893: LIST
12894: PPUSH
12895: CALL_OW 69
12899: PUSH
12900: FOR_IN
12901: IFFALSE 12942
// begin for j := 1 to 4 do
12903: LD_ADDR_VAR 0 3
12907: PUSH
12908: DOUBLE
12909: LD_INT 1
12911: DEC
12912: ST_TO_ADDR
12913: LD_INT 4
12915: PUSH
12916: FOR_TO
12917: IFFALSE 12938
// SetSkill ( i , j , 10 ) ;
12919: LD_VAR 0 2
12923: PPUSH
12924: LD_VAR 0 3
12928: PPUSH
12929: LD_INT 10
12931: PPUSH
12932: CALL_OW 237
12936: GO 12916
12938: POP
12939: POP
// end ;
12940: GO 12900
12942: POP
12943: POP
// end ;
12944: LD_VAR 0 1
12948: RET
// export function HackSpawnHuman ( nation , class , skill ) ; begin
12949: LD_INT 0
12951: PPUSH
// uc_side := your_side ;
12952: LD_ADDR_OWVAR 20
12956: PUSH
12957: LD_OWVAR 2
12961: ST_TO_ADDR
// uc_nation := nation ;
12962: LD_ADDR_OWVAR 21
12966: PUSH
12967: LD_VAR 0 1
12971: ST_TO_ADDR
// InitHc ;
12972: CALL_OW 19
// PrepareHuman ( false , class , skill ) ;
12976: LD_INT 0
12978: PPUSH
12979: LD_VAR 0 2
12983: PPUSH
12984: LD_VAR 0 3
12988: PPUSH
12989: CALL_OW 380
// PlaceUnitAnywhere ( CreateHuman , true ) ;
12993: CALL_OW 44
12997: PPUSH
12998: LD_INT 1
13000: PPUSH
13001: CALL_OW 51
// end ;
13005: LD_VAR 0 4
13009: RET
// export function HackSpawnVehicle ; begin
13010: LD_INT 0
13012: PPUSH
// uc_side := your_side ;
13013: LD_ADDR_OWVAR 20
13017: PUSH
13018: LD_OWVAR 2
13022: ST_TO_ADDR
// uc_nation := rand ( 1 , 3 ) ;
13023: LD_ADDR_OWVAR 21
13027: PUSH
13028: LD_INT 1
13030: PPUSH
13031: LD_INT 3
13033: PPUSH
13034: CALL_OW 12
13038: ST_TO_ADDR
// InitVc ;
13039: CALL_OW 20
// case uc_nation of 1 :
13043: LD_OWVAR 21
13047: PUSH
13048: LD_INT 1
13050: DOUBLE
13051: EQUAL
13052: IFTRUE 13056
13054: GO 13200
13056: POP
// begin vc_chassis := [ us_light_wheeled , us_medium_wheeled , us_medium_tracked , us_heavy_tracked , us_morphling ] [ rand ( 1 , 5 ) ] ;
13057: LD_ADDR_OWVAR 37
13061: PUSH
13062: LD_INT 1
13064: PUSH
13065: LD_INT 2
13067: PUSH
13068: LD_INT 3
13070: PUSH
13071: LD_INT 4
13073: PUSH
13074: LD_INT 5
13076: PUSH
13077: EMPTY
13078: LIST
13079: LIST
13080: LIST
13081: LIST
13082: LIST
13083: PUSH
13084: LD_INT 1
13086: PPUSH
13087: LD_INT 5
13089: PPUSH
13090: CALL_OW 12
13094: ARRAY
13095: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
13096: LD_ADDR_OWVAR 39
13100: PUSH
13101: LD_INT 1
13103: PPUSH
13104: LD_INT 3
13106: PPUSH
13107: CALL_OW 12
13111: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_computer ] [ rand ( 1 , 3 ) ] ;
13112: LD_ADDR_OWVAR 38
13116: PUSH
13117: LD_INT 1
13119: PUSH
13120: LD_INT 2
13122: PUSH
13123: LD_INT 3
13125: PUSH
13126: EMPTY
13127: LIST
13128: LIST
13129: LIST
13130: PUSH
13131: LD_INT 1
13133: PPUSH
13134: LD_INT 3
13136: PPUSH
13137: CALL_OW 12
13141: ARRAY
13142: 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 ) ] ;
13143: LD_ADDR_OWVAR 40
13147: PUSH
13148: LD_INT 2
13150: PUSH
13151: LD_INT 4
13153: PUSH
13154: LD_INT 5
13156: PUSH
13157: LD_INT 3
13159: PUSH
13160: LD_INT 7
13162: PUSH
13163: LD_INT 8
13165: PUSH
13166: LD_INT 9
13168: PUSH
13169: LD_INT 10
13171: PUSH
13172: LD_INT 6
13174: PUSH
13175: EMPTY
13176: LIST
13177: LIST
13178: LIST
13179: LIST
13180: LIST
13181: LIST
13182: LIST
13183: LIST
13184: LIST
13185: PUSH
13186: LD_INT 1
13188: PPUSH
13189: LD_INT 9
13191: PPUSH
13192: CALL_OW 12
13196: ARRAY
13197: ST_TO_ADDR
// end ; 2 :
13198: GO 13465
13200: LD_INT 2
13202: DOUBLE
13203: EQUAL
13204: IFTRUE 13208
13206: GO 13332
13208: POP
// begin vc_chassis := [ ar_hovercraft , ar_light_trike , ar_medium_trike , ar_half_tracked ] [ rand ( 1 , 4 ) ] ;
13209: LD_ADDR_OWVAR 37
13213: PUSH
13214: LD_INT 11
13216: PUSH
13217: LD_INT 12
13219: PUSH
13220: LD_INT 13
13222: PUSH
13223: LD_INT 14
13225: PUSH
13226: EMPTY
13227: LIST
13228: LIST
13229: LIST
13230: LIST
13231: PUSH
13232: LD_INT 1
13234: PPUSH
13235: LD_INT 4
13237: PPUSH
13238: CALL_OW 12
13242: ARRAY
13243: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
13244: LD_ADDR_OWVAR 39
13248: PUSH
13249: LD_INT 1
13251: PPUSH
13252: LD_INT 3
13254: PPUSH
13255: CALL_OW 12
13259: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_apeman ] [ rand ( 1 , 3 ) ] ;
13260: LD_ADDR_OWVAR 38
13264: PUSH
13265: LD_INT 1
13267: PUSH
13268: LD_INT 2
13270: PUSH
13271: LD_INT 5
13273: PUSH
13274: EMPTY
13275: LIST
13276: LIST
13277: LIST
13278: PUSH
13279: LD_INT 1
13281: PPUSH
13282: LD_INT 3
13284: PPUSH
13285: CALL_OW 12
13289: ARRAY
13290: ST_TO_ADDR
// vc_weapon := [ ar_double_machine_gun , ar_flame_thrower , ar_gun , ar_rocket_launcher , ar_selfpropelled_bomb ] [ rand ( 1 , 5 ) ] ;
13291: LD_ADDR_OWVAR 40
13295: PUSH
13296: LD_INT 24
13298: PUSH
13299: LD_INT 26
13301: PUSH
13302: LD_INT 27
13304: PUSH
13305: LD_INT 28
13307: PUSH
13308: LD_INT 29
13310: PUSH
13311: EMPTY
13312: LIST
13313: LIST
13314: LIST
13315: LIST
13316: LIST
13317: PUSH
13318: LD_INT 1
13320: PPUSH
13321: LD_INT 5
13323: PPUSH
13324: CALL_OW 12
13328: ARRAY
13329: ST_TO_ADDR
// end ; 3 :
13330: GO 13465
13332: LD_INT 3
13334: DOUBLE
13335: EQUAL
13336: IFTRUE 13340
13338: GO 13464
13340: POP
// begin vc_chassis := [ ru_medium_wheeled , ru_heavy_wheeled , ru_medium_tracked , ru_heavy_tracked ] [ rand ( 1 , 4 ) ] ;
13341: LD_ADDR_OWVAR 37
13345: PUSH
13346: LD_INT 21
13348: PUSH
13349: LD_INT 23
13351: PUSH
13352: LD_INT 22
13354: PUSH
13355: LD_INT 24
13357: PUSH
13358: EMPTY
13359: LIST
13360: LIST
13361: LIST
13362: LIST
13363: PUSH
13364: LD_INT 1
13366: PPUSH
13367: LD_INT 4
13369: PPUSH
13370: CALL_OW 12
13374: ARRAY
13375: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
13376: LD_ADDR_OWVAR 39
13380: PUSH
13381: LD_INT 1
13383: PPUSH
13384: LD_INT 3
13386: PPUSH
13387: CALL_OW 12
13391: ST_TO_ADDR
// vc_control := [ control_manual , control_computer ] [ rand ( 1 , 2 ) ] ;
13392: LD_ADDR_OWVAR 38
13396: PUSH
13397: LD_INT 1
13399: PUSH
13400: LD_INT 3
13402: PUSH
13403: EMPTY
13404: LIST
13405: LIST
13406: PUSH
13407: LD_INT 1
13409: PPUSH
13410: LD_INT 2
13412: PPUSH
13413: CALL_OW 12
13417: ARRAY
13418: 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 ) ] ;
13419: LD_ADDR_OWVAR 40
13423: PUSH
13424: LD_INT 42
13426: PUSH
13427: LD_INT 43
13429: PUSH
13430: LD_INT 44
13432: PUSH
13433: LD_INT 46
13435: PUSH
13436: LD_INT 48
13438: PUSH
13439: LD_INT 47
13441: PUSH
13442: EMPTY
13443: LIST
13444: LIST
13445: LIST
13446: LIST
13447: LIST
13448: LIST
13449: PUSH
13450: LD_INT 1
13452: PPUSH
13453: LD_INT 6
13455: PPUSH
13456: CALL_OW 12
13460: ARRAY
13461: ST_TO_ADDR
// end ; end ;
13462: GO 13465
13464: POP
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
13465: CALL_OW 45
13469: PPUSH
13470: LD_INT 1
13472: PPUSH
13473: CALL_OW 51
// end ;
13477: LD_VAR 0 1
13481: RET
// export invincible ; every 1 do
13482: GO 13484
13484: DISABLE
// invincible := [ ] ;
13485: LD_ADDR_EXP 57
13489: PUSH
13490: EMPTY
13491: ST_TO_ADDR
13492: END
// every 10 do var i ;
13493: GO 13495
13495: DISABLE
13496: LD_INT 0
13498: PPUSH
// begin enable ;
13499: ENABLE
// if not invincible then
13500: LD_EXP 57
13504: NOT
13505: IFFALSE 13509
// exit ;
13507: GO 13553
// for i in invincible do
13509: LD_ADDR_VAR 0 1
13513: PUSH
13514: LD_EXP 57
13518: PUSH
13519: FOR_IN
13520: IFFALSE 13551
// if GetLives ( i ) < 1000 then
13522: LD_VAR 0 1
13526: PPUSH
13527: CALL_OW 256
13531: PUSH
13532: LD_INT 1000
13534: LESS
13535: IFFALSE 13549
// SetLives ( i , 1000 ) ;
13537: LD_VAR 0 1
13541: PPUSH
13542: LD_INT 1000
13544: PPUSH
13545: CALL_OW 234
13549: GO 13519
13551: POP
13552: POP
// end ;
13553: PPOPN 1
13555: END
// export function HackInvincible ; var i ; begin
13556: LD_INT 0
13558: PPUSH
13559: PPUSH
// for i in FilterAllUnits ( [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ) do
13560: LD_ADDR_VAR 0 2
13564: PUSH
13565: LD_INT 2
13567: PUSH
13568: LD_INT 21
13570: PUSH
13571: LD_INT 1
13573: PUSH
13574: EMPTY
13575: LIST
13576: LIST
13577: PUSH
13578: LD_INT 21
13580: PUSH
13581: LD_INT 2
13583: PUSH
13584: EMPTY
13585: LIST
13586: LIST
13587: PUSH
13588: EMPTY
13589: LIST
13590: LIST
13591: LIST
13592: PPUSH
13593: CALL_OW 69
13597: PUSH
13598: FOR_IN
13599: IFFALSE 13660
// if IsSelected ( i ) then
13601: LD_VAR 0 2
13605: PPUSH
13606: CALL_OW 306
13610: IFFALSE 13658
// begin if i in invincible then
13612: LD_VAR 0 2
13616: PUSH
13617: LD_EXP 57
13621: IN
13622: IFFALSE 13642
// invincible := invincible diff i else
13624: LD_ADDR_EXP 57
13628: PUSH
13629: LD_EXP 57
13633: PUSH
13634: LD_VAR 0 2
13638: DIFF
13639: ST_TO_ADDR
13640: GO 13658
// invincible := invincible union i ;
13642: LD_ADDR_EXP 57
13646: PUSH
13647: LD_EXP 57
13651: PUSH
13652: LD_VAR 0 2
13656: UNION
13657: ST_TO_ADDR
// end ;
13658: GO 13598
13660: POP
13661: POP
// end ;
13662: LD_VAR 0 1
13666: RET
// export function HackInvisible ; var i , j ; begin
13667: LD_INT 0
13669: PPUSH
13670: PPUSH
13671: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
13672: LD_ADDR_VAR 0 2
13676: PUSH
13677: LD_INT 21
13679: PUSH
13680: LD_INT 1
13682: PUSH
13683: EMPTY
13684: LIST
13685: LIST
13686: PPUSH
13687: CALL_OW 69
13691: PUSH
13692: FOR_IN
13693: IFFALSE 13717
// if IsSelected ( i ) then
13695: LD_VAR 0 2
13699: PPUSH
13700: CALL_OW 306
13704: IFFALSE 13715
// begin ComForceInvisible ( i ) ;
13706: LD_VAR 0 2
13710: PPUSH
13711: CALL_OW 496
// end ;
13715: GO 13692
13717: POP
13718: POP
// end ;
13719: LD_VAR 0 1
13723: RET
// export function HackChangeYourSide ; begin
13724: LD_INT 0
13726: PPUSH
// if your_side = 8 then
13727: LD_OWVAR 2
13731: PUSH
13732: LD_INT 8
13734: EQUAL
13735: IFFALSE 13747
// your_side := 0 else
13737: LD_ADDR_OWVAR 2
13741: PUSH
13742: LD_INT 0
13744: ST_TO_ADDR
13745: GO 13761
// your_side := your_side + 1 ;
13747: LD_ADDR_OWVAR 2
13751: PUSH
13752: LD_OWVAR 2
13756: PUSH
13757: LD_INT 1
13759: PLUS
13760: ST_TO_ADDR
// end ;
13761: LD_VAR 0 1
13765: RET
// export function HackChangeUnitSide ; var i , j ; begin
13766: LD_INT 0
13768: PPUSH
13769: PPUSH
13770: PPUSH
// for i in all_units do
13771: LD_ADDR_VAR 0 2
13775: PUSH
13776: LD_OWVAR 3
13780: PUSH
13781: FOR_IN
13782: IFFALSE 13860
// if IsSelected ( i ) then
13784: LD_VAR 0 2
13788: PPUSH
13789: CALL_OW 306
13793: IFFALSE 13858
// begin j := GetSide ( i ) ;
13795: LD_ADDR_VAR 0 3
13799: PUSH
13800: LD_VAR 0 2
13804: PPUSH
13805: CALL_OW 255
13809: ST_TO_ADDR
// if j = 8 then
13810: LD_VAR 0 3
13814: PUSH
13815: LD_INT 8
13817: EQUAL
13818: IFFALSE 13830
// j := 0 else
13820: LD_ADDR_VAR 0 3
13824: PUSH
13825: LD_INT 0
13827: ST_TO_ADDR
13828: GO 13844
// j := j + 1 ;
13830: LD_ADDR_VAR 0 3
13834: PUSH
13835: LD_VAR 0 3
13839: PUSH
13840: LD_INT 1
13842: PLUS
13843: ST_TO_ADDR
// SetSide ( i , j ) ;
13844: LD_VAR 0 2
13848: PPUSH
13849: LD_VAR 0 3
13853: PPUSH
13854: CALL_OW 235
// end ;
13858: GO 13781
13860: POP
13861: POP
// end ;
13862: LD_VAR 0 1
13866: RET
// export function HackFog ; begin
13867: LD_INT 0
13869: PPUSH
// FogOff ( true ) ;
13870: LD_INT 1
13872: PPUSH
13873: CALL_OW 344
// end ;
13877: LD_VAR 0 1
13881: RET
// export function HackApeman ; begin
13882: LD_INT 0
13884: PPUSH
// uc_side := your_side ;
13885: LD_ADDR_OWVAR 20
13889: PUSH
13890: LD_OWVAR 2
13894: ST_TO_ADDR
// uc_nation := 0 ;
13895: LD_ADDR_OWVAR 21
13899: PUSH
13900: LD_INT 0
13902: ST_TO_ADDR
// hc_name :=  ;
13903: LD_ADDR_OWVAR 26
13907: PUSH
13908: LD_STRING 
13910: ST_TO_ADDR
// hc_gallery :=  ;
13911: LD_ADDR_OWVAR 33
13915: PUSH
13916: LD_STRING 
13918: ST_TO_ADDR
// hc_skills := [ 0 , 0 , 0 , 0 ] ;
13919: LD_ADDR_OWVAR 31
13923: PUSH
13924: LD_INT 0
13926: PUSH
13927: LD_INT 0
13929: PUSH
13930: LD_INT 0
13932: PUSH
13933: LD_INT 0
13935: PUSH
13936: EMPTY
13937: LIST
13938: LIST
13939: LIST
13940: LIST
13941: ST_TO_ADDR
// hc_class := class_apeman ;
13942: LD_ADDR_OWVAR 28
13946: PUSH
13947: LD_INT 12
13949: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateHuman , true ) ;
13950: CALL_OW 44
13954: PPUSH
13955: LD_INT 1
13957: PPUSH
13958: CALL_OW 51
// end ;
13962: LD_VAR 0 1
13966: RET
// export function HackBoom ; begin
13967: LD_INT 0
13969: PPUSH
// uc_side := your_side ;
13970: LD_ADDR_OWVAR 20
13974: PUSH
13975: LD_OWVAR 2
13979: ST_TO_ADDR
// uc_nation := 1 ;
13980: LD_ADDR_OWVAR 21
13984: PUSH
13985: LD_INT 1
13987: ST_TO_ADDR
// vc_chassis := us_morphling ;
13988: LD_ADDR_OWVAR 37
13992: PUSH
13993: LD_INT 5
13995: ST_TO_ADDR
// vc_engine := engine_siberite ;
13996: LD_ADDR_OWVAR 39
14000: PUSH
14001: LD_INT 3
14003: ST_TO_ADDR
// vc_control := control_computer ;
14004: LD_ADDR_OWVAR 38
14008: PUSH
14009: LD_INT 3
14011: ST_TO_ADDR
// vc_weapon := us_siberium_rocket ;
14012: LD_ADDR_OWVAR 40
14016: PUSH
14017: LD_INT 8
14019: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
14020: CALL_OW 45
14024: PPUSH
14025: LD_INT 1
14027: PPUSH
14028: CALL_OW 51
// end ;
14032: LD_VAR 0 1
14036: RET
