// export rus , amer , amer_reinf ; export dying ; var ruboilm0 , ruboilp0 , ruboilp1 , rubwrks0 , rubfact0 , rubbrid0 , rubbunk0 , rubbunk1 , rubarmr0 ; var rubdepo0 ; var ruv0 , ruhmech1 , ruv1 , ruhmech2 , ruv2 , ruhmech3 ; var rusove ; var amv0 , amv1 ; function prepare_units ; var tmp ; begin
   0: LD_INT 0
   2: PPUSH
   3: PPUSH
// amer = 1 ;
   4: LD_ADDR_EXP 2
   8: PUSH
   9: LD_INT 1
  11: ST_TO_ADDR
// amer_reinf = 4 ;
  12: LD_ADDR_EXP 3
  16: PUSH
  17: LD_INT 4
  19: ST_TO_ADDR
// rus = 3 ;
  20: LD_ADDR_EXP 1
  24: PUSH
  25: LD_INT 3
  27: ST_TO_ADDR
// dying = [ ] ;
  28: LD_ADDR_EXP 4
  32: PUSH
  33: EMPTY
  34: ST_TO_ADDR
// inituc ;
  35: CALL_OW 18
// inithc ;
  39: CALL_OW 19
// initvc ;
  43: CALL_OW 20
// initbc ;
  47: CALL_OW 21
// from_prev_mis ;
  51: CALL 18150 0 0
// case difficulty of 3 :
  55: LD_OWVAR 67
  59: PUSH
  60: LD_INT 3
  62: DOUBLE
  63: EQUAL
  64: IFTRUE 68
  66: GO 87
  68: POP
// begin vc_chassis = us_light_wheeled ;
  69: LD_ADDR_OWVAR 37
  73: PUSH
  74: LD_INT 1
  76: ST_TO_ADDR
// vc_weapon = us_light_gun ;
  77: LD_ADDR_OWVAR 40
  81: PUSH
  82: LD_INT 3
  84: ST_TO_ADDR
// end ; 2 :
  85: GO 142
  87: LD_INT 2
  89: DOUBLE
  90: EQUAL
  91: IFTRUE 95
  93: GO 114
  95: POP
// begin vc_chassis = us_medium_wheeled ;
  96: LD_ADDR_OWVAR 37
 100: PUSH
 101: LD_INT 2
 103: ST_TO_ADDR
// vc_weapon = us_double_gun ;
 104: LD_ADDR_OWVAR 40
 108: PUSH
 109: LD_INT 5
 111: ST_TO_ADDR
// end ; 1 :
 112: GO 142
 114: LD_INT 1
 116: DOUBLE
 117: EQUAL
 118: IFTRUE 122
 120: GO 141
 122: POP
// begin vc_chassis = us_medium_tracked ;
 123: LD_ADDR_OWVAR 37
 127: PUSH
 128: LD_INT 3
 130: ST_TO_ADDR
// vc_weapon = us_double_gun ;
 131: LD_ADDR_OWVAR 40
 135: PUSH
 136: LD_INT 5
 138: ST_TO_ADDR
// end ; end ;
 139: GO 142
 141: POP
// vc_control = control_remote ;
 142: LD_ADDR_OWVAR 38
 146: PUSH
 147: LD_INT 2
 149: ST_TO_ADDR
// vc_engine = engine_combustion ;
 150: LD_ADDR_OWVAR 39
 154: PUSH
 155: LD_INT 1
 157: ST_TO_ADDR
// amv0 = createvehicle ;
 158: LD_ADDR_LOC 18
 162: PUSH
 163: CALL_OW 45
 167: ST_TO_ADDR
// setdir ( amv0 , 3 ) ;
 168: LD_LOC 18
 172: PPUSH
 173: LD_INT 3
 175: PPUSH
 176: CALL_OW 233
// placeunitxyr ( amv0 , 50 , 23 , 3 , false ) ;
 180: LD_LOC 18
 184: PPUSH
 185: LD_INT 50
 187: PPUSH
 188: LD_INT 23
 190: PPUSH
 191: LD_INT 3
 193: PPUSH
 194: LD_INT 0
 196: PPUSH
 197: CALL_OW 50
// case difficulty of 3 :
 201: LD_OWVAR 67
 205: PUSH
 206: LD_INT 3
 208: DOUBLE
 209: EQUAL
 210: IFTRUE 214
 212: GO 233
 214: POP
// begin vc_chassis = us_medium_wheeled ;
 215: LD_ADDR_OWVAR 37
 219: PUSH
 220: LD_INT 2
 222: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
 223: LD_ADDR_OWVAR 40
 227: PUSH
 228: LD_INT 4
 230: ST_TO_ADDR
// end ; 2 :
 231: GO 288
 233: LD_INT 2
 235: DOUBLE
 236: EQUAL
 237: IFTRUE 241
 239: GO 260
 241: POP
// begin vc_chassis = us_medium_tracked ;
 242: LD_ADDR_OWVAR 37
 246: PUSH
 247: LD_INT 3
 249: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
 250: LD_ADDR_OWVAR 40
 254: PUSH
 255: LD_INT 4
 257: ST_TO_ADDR
// end ; 1 :
 258: GO 288
 260: LD_INT 1
 262: DOUBLE
 263: EQUAL
 264: IFTRUE 268
 266: GO 287
 268: POP
// begin vc_chassis = us_heavy_tracked ;
 269: LD_ADDR_OWVAR 37
 273: PUSH
 274: LD_INT 4
 276: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
 277: LD_ADDR_OWVAR 40
 281: PUSH
 282: LD_INT 4
 284: ST_TO_ADDR
// end ; end ;
 285: GO 288
 287: POP
// vc_control = control_remote ;
 288: LD_ADDR_OWVAR 38
 292: PUSH
 293: LD_INT 2
 295: ST_TO_ADDR
// vc_engine = engine_combustion ;
 296: LD_ADDR_OWVAR 39
 300: PUSH
 301: LD_INT 1
 303: ST_TO_ADDR
// amv1 = createvehicle ;
 304: LD_ADDR_LOC 19
 308: PUSH
 309: CALL_OW 45
 313: ST_TO_ADDR
// setdir ( amv1 , 2 ) ;
 314: LD_LOC 19
 318: PPUSH
 319: LD_INT 2
 321: PPUSH
 322: CALL_OW 233
// placeunitxyr ( amv1 , 56 , 24 , 3 , false ) ;
 326: LD_LOC 19
 330: PPUSH
 331: LD_INT 56
 333: PPUSH
 334: LD_INT 24
 336: PPUSH
 337: LD_INT 3
 339: PPUSH
 340: LD_INT 0
 342: PPUSH
 343: CALL_OW 50
// preparesoldier ( sex_male , 3 ) ;
 347: LD_INT 1
 349: PPUSH
 350: LD_INT 3
 352: PPUSH
 353: CALL_OW 381
// tmp = createhuman ;
 357: LD_ADDR_VAR 0 2
 361: PUSH
 362: CALL_OW 44
 366: ST_TO_ADDR
// setlives ( tmp , 250 ) ;
 367: LD_VAR 0 2
 371: PPUSH
 372: LD_INT 250
 374: PPUSH
 375: CALL_OW 234
// setdir ( tmp , 3 ) ;
 379: LD_VAR 0 2
 383: PPUSH
 384: LD_INT 3
 386: PPUSH
 387: CALL_OW 233
// placeunitxy ( tmp , 50 , 43 , false ) ;
 391: LD_VAR 0 2
 395: PPUSH
 396: LD_INT 50
 398: PPUSH
 399: LD_INT 43
 401: PPUSH
 402: LD_INT 0
 404: PPUSH
 405: CALL_OW 48
// uc_side = 0 ;
 409: LD_ADDR_OWVAR 20
 413: PUSH
 414: LD_INT 0
 416: ST_TO_ADDR
// preparesoldier ( sex_male , 3 ) ;
 417: LD_INT 1
 419: PPUSH
 420: LD_INT 3
 422: PPUSH
 423: CALL_OW 381
// tmp = createhuman ;
 427: LD_ADDR_VAR 0 2
 431: PUSH
 432: CALL_OW 44
 436: ST_TO_ADDR
// setlives ( tmp , 10 ) ;
 437: LD_VAR 0 2
 441: PPUSH
 442: LD_INT 10
 444: PPUSH
 445: CALL_OW 234
// setdir ( tmp , 5 ) ;
 449: LD_VAR 0 2
 453: PPUSH
 454: LD_INT 5
 456: PPUSH
 457: CALL_OW 233
// placeunitxy ( tmp , 62 , 28 , false ) ;
 461: LD_VAR 0 2
 465: PPUSH
 466: LD_INT 62
 468: PPUSH
 469: LD_INT 28
 471: PPUSH
 472: LD_INT 0
 474: PPUSH
 475: CALL_OW 48
// preparesoldier ( sex_male , 3 ) ;
 479: LD_INT 1
 481: PPUSH
 482: LD_INT 3
 484: PPUSH
 485: CALL_OW 381
// tmp = createhuman ;
 489: LD_ADDR_VAR 0 2
 493: PUSH
 494: CALL_OW 44
 498: ST_TO_ADDR
// setlives ( tmp , 10 ) ;
 499: LD_VAR 0 2
 503: PPUSH
 504: LD_INT 10
 506: PPUSH
 507: CALL_OW 234
// setdir ( tmp , 5 ) ;
 511: LD_VAR 0 2
 515: PPUSH
 516: LD_INT 5
 518: PPUSH
 519: CALL_OW 233
// placeunitxy ( tmp , 58 , 28 , false ) ;
 523: LD_VAR 0 2
 527: PPUSH
 528: LD_INT 58
 530: PPUSH
 531: LD_INT 28
 533: PPUSH
 534: LD_INT 0
 536: PPUSH
 537: CALL_OW 48
// setlives ( ambbrwr2 , hranice_umirani ) ;
 541: LD_INT 20
 543: PPUSH
 544: LD_INT 250
 546: PPUSH
 547: CALL_OW 234
// setlives ( ambbrwr0 , hranice_zraneni ) ;
 551: LD_INT 21
 553: PPUSH
 554: LD_INT 500
 556: PPUSH
 557: CALL_OW 234
// setlives ( ambbunk3 , hranice_umirani + 1 ) ;
 561: LD_INT 4
 563: PPUSH
 564: LD_INT 250
 566: PUSH
 567: LD_INT 1
 569: PLUS
 570: PPUSH
 571: CALL_OW 234
// uc_side = 1 ;
 575: LD_ADDR_OWVAR 20
 579: PUSH
 580: LD_INT 1
 582: ST_TO_ADDR
// vc_control = control_manual ;
 583: LD_ADDR_OWVAR 38
 587: PUSH
 588: LD_INT 1
 590: ST_TO_ADDR
// tmp = createvehicle ;
 591: LD_ADDR_VAR 0 2
 595: PUSH
 596: CALL_OW 45
 600: ST_TO_ADDR
// setdir ( tmp , 2 ) ;
 601: LD_VAR 0 2
 605: PPUSH
 606: LD_INT 2
 608: PPUSH
 609: CALL_OW 233
// setlives ( tmp , 49 ) ;
 613: LD_VAR 0 2
 617: PPUSH
 618: LD_INT 49
 620: PPUSH
 621: CALL_OW 234
// placeunitxy ( tmp , 45 , 39 , false ) ;
 625: LD_VAR 0 2
 629: PPUSH
 630: LD_INT 45
 632: PPUSH
 633: LD_INT 39
 635: PPUSH
 636: LD_INT 0
 638: PPUSH
 639: CALL_OW 48
// uc_nation = nation_russian ;
 643: LD_ADDR_OWVAR 21
 647: PUSH
 648: LD_INT 3
 650: ST_TO_ADDR
// uc_side = rus ;
 651: LD_ADDR_OWVAR 20
 655: PUSH
 656: LD_EXP 1
 660: ST_TO_ADDR
// bc_type = b_depot ;
 661: LD_ADDR_OWVAR 42
 665: PUSH
 666: LD_INT 0
 668: ST_TO_ADDR
// bc_level = 4 ;
 669: LD_ADDR_OWVAR 43
 673: PUSH
 674: LD_INT 4
 676: ST_TO_ADDR
// rubdepo0 = createandplacebuildingxyd ( 90 , 85 , 3 ) ;
 677: LD_ADDR_LOC 10
 681: PUSH
 682: LD_INT 90
 684: PPUSH
 685: LD_INT 85
 687: PPUSH
 688: LD_INT 3
 690: PPUSH
 691: CALL_OW 47
 695: ST_TO_ADDR
// setresourcetype ( getbase ( rubdepo0 ) , mat_cans , 500 ) ;
 696: LD_LOC 10
 700: PPUSH
 701: CALL_OW 274
 705: PPUSH
 706: LD_INT 1
 708: PPUSH
 709: LD_INT 500
 711: PPUSH
 712: CALL_OW 277
// setresourcetype ( getbase ( rubdepo0 ) , mat_oil , 20 ) ;
 716: LD_LOC 10
 720: PPUSH
 721: CALL_OW 274
 725: PPUSH
 726: LD_INT 2
 728: PPUSH
 729: LD_INT 20
 731: PPUSH
 732: CALL_OW 277
// commovexy ( ruhscie0 , 87 , 94 ) ;
 736: LD_INT 22
 738: PPUSH
 739: LD_INT 87
 741: PPUSH
 742: LD_INT 94
 744: PPUSH
 745: CALL_OW 111
// ruboilm0 = combuild ( ruhengi1 , b_oil_mine , 106 , 97 , 0 ) ;
 749: LD_ADDR_LOC 1
 753: PUSH
 754: LD_INT 6
 756: PPUSH
 757: LD_INT 29
 759: PPUSH
 760: LD_INT 106
 762: PPUSH
 763: LD_INT 97
 765: PPUSH
 766: LD_INT 0
 768: PPUSH
 769: CALL_OW 145
 773: ST_TO_ADDR
// ruboilp0 = combuild ( ruhengi0 , b_oil_power , 99 , 97 , 0 ) ;
 774: LD_ADDR_LOC 2
 778: PUSH
 779: LD_INT 5
 781: PPUSH
 782: LD_INT 26
 784: PPUSH
 785: LD_INT 99
 787: PPUSH
 788: LD_INT 97
 790: PPUSH
 791: LD_INT 0
 793: PPUSH
 794: CALL_OW 145
 798: ST_TO_ADDR
// rubbunk0 = combuild ( ruhengi2 , b_bunker , 75 , 74 , 2 ) ;
 799: LD_ADDR_LOC 7
 803: PUSH
 804: LD_INT 8
 806: PPUSH
 807: LD_INT 32
 809: PPUSH
 810: LD_INT 75
 812: PPUSH
 813: LD_INT 74
 815: PPUSH
 816: LD_INT 2
 818: PPUSH
 819: CALL_OW 145
 823: ST_TO_ADDR
// preparemechanic ( sex_male , 5 ) ;
 824: LD_INT 1
 826: PPUSH
 827: LD_INT 5
 829: PPUSH
 830: CALL_OW 383
// ruhmech1 = createhuman ;
 834: LD_ADDR_LOC 12
 838: PUSH
 839: CALL_OW 44
 843: ST_TO_ADDR
// case difficulty of 1 :
 844: LD_OWVAR 67
 848: PUSH
 849: LD_INT 1
 851: DOUBLE
 852: EQUAL
 853: IFTRUE 857
 855: GO 876
 857: POP
// begin vc_chassis = ru_medium_tracked ;
 858: LD_ADDR_OWVAR 37
 862: PUSH
 863: LD_INT 22
 865: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
 866: LD_ADDR_OWVAR 40
 870: PUSH
 871: LD_INT 43
 873: ST_TO_ADDR
// end ; 2 :
 874: GO 931
 876: LD_INT 2
 878: DOUBLE
 879: EQUAL
 880: IFTRUE 884
 882: GO 903
 884: POP
// begin vc_chassis = ru_medium_tracked ;
 885: LD_ADDR_OWVAR 37
 889: PUSH
 890: LD_INT 22
 892: ST_TO_ADDR
// vc_weapon = ru_gun ;
 893: LD_ADDR_OWVAR 40
 897: PUSH
 898: LD_INT 44
 900: ST_TO_ADDR
// end ; 3 :
 901: GO 931
 903: LD_INT 3
 905: DOUBLE
 906: EQUAL
 907: IFTRUE 911
 909: GO 930
 911: POP
// begin vc_chassis = ru_heavy_tracked ;
 912: LD_ADDR_OWVAR 37
 916: PUSH
 917: LD_INT 24
 919: ST_TO_ADDR
// vc_weapon = ru_gun ;
 920: LD_ADDR_OWVAR 40
 924: PUSH
 925: LD_INT 44
 927: ST_TO_ADDR
// end ; end ;
 928: GO 931
 930: POP
// vc_control = control_manual ;
 931: LD_ADDR_OWVAR 38
 935: PUSH
 936: LD_INT 1
 938: ST_TO_ADDR
// vc_engine = engine_combustion ;
 939: LD_ADDR_OWVAR 39
 943: PUSH
 944: LD_INT 1
 946: ST_TO_ADDR
// ruv0 = createvehicle ;
 947: LD_ADDR_LOC 11
 951: PUSH
 952: CALL_OW 45
 956: ST_TO_ADDR
// setdir ( ruv0 , 5 ) ;
 957: LD_LOC 11
 961: PPUSH
 962: LD_INT 5
 964: PPUSH
 965: CALL_OW 233
// placeunitxy ( ruv0 , 66 , 83 , false ) ;
 969: LD_LOC 11
 973: PPUSH
 974: LD_INT 66
 976: PPUSH
 977: LD_INT 83
 979: PPUSH
 980: LD_INT 0
 982: PPUSH
 983: CALL_OW 48
// placehumaninunit ( ruhmech1 , ruv0 ) ;
 987: LD_LOC 12
 991: PPUSH
 992: LD_LOC 11
 996: PPUSH
 997: CALL_OW 52
// preparemechanic ( sex_male , 4 ) ;
1001: LD_INT 1
1003: PPUSH
1004: LD_INT 4
1006: PPUSH
1007: CALL_OW 383
// ruhmech2 = createhuman ;
1011: LD_ADDR_LOC 14
1015: PUSH
1016: CALL_OW 44
1020: ST_TO_ADDR
// case difficulty of 1 :
1021: LD_OWVAR 67
1025: PUSH
1026: LD_INT 1
1028: DOUBLE
1029: EQUAL
1030: IFTRUE 1034
1032: GO 1053
1034: POP
// begin vc_chassis = ru_medium_wheeled ;
1035: LD_ADDR_OWVAR 37
1039: PUSH
1040: LD_INT 21
1042: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
1043: LD_ADDR_OWVAR 40
1047: PUSH
1048: LD_INT 42
1050: ST_TO_ADDR
// end ; 2 :
1051: GO 1108
1053: LD_INT 2
1055: DOUBLE
1056: EQUAL
1057: IFTRUE 1061
1059: GO 1080
1061: POP
// begin vc_chassis = ru_medium_wheeled ;
1062: LD_ADDR_OWVAR 37
1066: PUSH
1067: LD_INT 21
1069: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
1070: LD_ADDR_OWVAR 40
1074: PUSH
1075: LD_INT 43
1077: ST_TO_ADDR
// end ; 3 :
1078: GO 1108
1080: LD_INT 3
1082: DOUBLE
1083: EQUAL
1084: IFTRUE 1088
1086: GO 1107
1088: POP
// begin vc_chassis = ru_medium_wheeled ;
1089: LD_ADDR_OWVAR 37
1093: PUSH
1094: LD_INT 21
1096: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
1097: LD_ADDR_OWVAR 40
1101: PUSH
1102: LD_INT 43
1104: ST_TO_ADDR
// end ; end ;
1105: GO 1108
1107: POP
// vc_control = control_manual ;
1108: LD_ADDR_OWVAR 38
1112: PUSH
1113: LD_INT 1
1115: ST_TO_ADDR
// vc_engine = engine_combustion ;
1116: LD_ADDR_OWVAR 39
1120: PUSH
1121: LD_INT 1
1123: ST_TO_ADDR
// ruv1 = createvehicle ;
1124: LD_ADDR_LOC 13
1128: PUSH
1129: CALL_OW 45
1133: ST_TO_ADDR
// setdir ( ruv1 , 5 ) ;
1134: LD_LOC 13
1138: PPUSH
1139: LD_INT 5
1141: PPUSH
1142: CALL_OW 233
// placeunitxy ( ruv1 , 82 , 77 , false ) ;
1146: LD_LOC 13
1150: PPUSH
1151: LD_INT 82
1153: PPUSH
1154: LD_INT 77
1156: PPUSH
1157: LD_INT 0
1159: PPUSH
1160: CALL_OW 48
// placehumaninunit ( ruhmech2 , ruv1 ) ;
1164: LD_LOC 14
1168: PPUSH
1169: LD_LOC 13
1173: PPUSH
1174: CALL_OW 52
// case difficulty of 1 :
1178: LD_OWVAR 67
1182: PUSH
1183: LD_INT 1
1185: DOUBLE
1186: EQUAL
1187: IFTRUE 1191
1189: GO 1220
1191: POP
// begin vc_chassis = ru_medium_wheeled ;
1192: LD_ADDR_OWVAR 37
1196: PUSH
1197: LD_INT 21
1199: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
1200: LD_ADDR_OWVAR 40
1204: PUSH
1205: LD_INT 42
1207: ST_TO_ADDR
// preparemechanic ( sex_female , 2 ) ;
1208: LD_INT 2
1210: PPUSH
1211: LD_INT 2
1213: PPUSH
1214: CALL_OW 383
// end ; 2 :
1218: GO 1295
1220: LD_INT 2
1222: DOUBLE
1223: EQUAL
1224: IFTRUE 1228
1226: GO 1257
1228: POP
// begin vc_chassis = ru_medium_wheeled ;
1229: LD_ADDR_OWVAR 37
1233: PUSH
1234: LD_INT 21
1236: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
1237: LD_ADDR_OWVAR 40
1241: PUSH
1242: LD_INT 43
1244: ST_TO_ADDR
// preparemechanic ( sex_female , 3 ) ;
1245: LD_INT 2
1247: PPUSH
1248: LD_INT 3
1250: PPUSH
1251: CALL_OW 383
// end ; 3 :
1255: GO 1295
1257: LD_INT 3
1259: DOUBLE
1260: EQUAL
1261: IFTRUE 1265
1263: GO 1294
1265: POP
// begin vc_chassis = ru_medium_wheeled ;
1266: LD_ADDR_OWVAR 37
1270: PUSH
1271: LD_INT 21
1273: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
1274: LD_ADDR_OWVAR 40
1278: PUSH
1279: LD_INT 43
1281: ST_TO_ADDR
// preparemechanic ( sex_female , 4 ) ;
1282: LD_INT 2
1284: PPUSH
1285: LD_INT 4
1287: PPUSH
1288: CALL_OW 383
// end ; end ;
1292: GO 1295
1294: POP
// ruhmech3 = createhuman ;
1295: LD_ADDR_LOC 16
1299: PUSH
1300: CALL_OW 44
1304: ST_TO_ADDR
// vc_control = control_manual ;
1305: LD_ADDR_OWVAR 38
1309: PUSH
1310: LD_INT 1
1312: ST_TO_ADDR
// vc_engine = engine_combustion ;
1313: LD_ADDR_OWVAR 39
1317: PUSH
1318: LD_INT 1
1320: ST_TO_ADDR
// ruv2 = createvehicle ;
1321: LD_ADDR_LOC 15
1325: PUSH
1326: CALL_OW 45
1330: ST_TO_ADDR
// setdir ( ruv2 , 0 ) ;
1331: LD_LOC 15
1335: PPUSH
1336: LD_INT 0
1338: PPUSH
1339: CALL_OW 233
// placeunitxy ( ruv2 , 66 , 68 , false ) ;
1343: LD_LOC 15
1347: PPUSH
1348: LD_INT 66
1350: PPUSH
1351: LD_INT 68
1353: PPUSH
1354: LD_INT 0
1356: PPUSH
1357: CALL_OW 48
// placehumaninunit ( ruhmech3 , ruv2 ) ;
1361: LD_LOC 16
1365: PPUSH
1366: LD_LOC 15
1370: PPUSH
1371: CALL_OW 52
// case difficulty of 1 :
1375: LD_OWVAR 67
1379: PUSH
1380: LD_INT 1
1382: DOUBLE
1383: EQUAL
1384: IFTRUE 1388
1386: GO 1451
1388: POP
// begin setskill ( [ ruhsold1 , ruhsold2 , ruhsold4 ] , skill_combat , 3 ) ;
1389: LD_INT 11
1391: PUSH
1392: LD_INT 12
1394: PUSH
1395: LD_INT 14
1397: PUSH
1398: EMPTY
1399: LIST
1400: LIST
1401: LIST
1402: PPUSH
1403: LD_INT 1
1405: PPUSH
1406: LD_INT 3
1408: PPUSH
1409: CALL_OW 237
// setskill ( [ ruhsold3 , ruhsold5 ] , skill_combat , 3 ) ;
1413: LD_INT 13
1415: PUSH
1416: LD_INT 15
1418: PUSH
1419: EMPTY
1420: LIST
1421: LIST
1422: PPUSH
1423: LD_INT 1
1425: PPUSH
1426: LD_INT 3
1428: PPUSH
1429: CALL_OW 237
// setskill ( [ ruhsold0 ] , skill_combat , 3 ) ;
1433: LD_INT 10
1435: PUSH
1436: EMPTY
1437: LIST
1438: PPUSH
1439: LD_INT 1
1441: PPUSH
1442: LD_INT 3
1444: PPUSH
1445: CALL_OW 237
// end ; 2 :
1449: GO 1594
1451: LD_INT 2
1453: DOUBLE
1454: EQUAL
1455: IFTRUE 1459
1457: GO 1522
1459: POP
// begin setskill ( [ ruhsold1 , ruhsold2 , ruhsold4 ] , skill_combat , 5 ) ;
1460: LD_INT 11
1462: PUSH
1463: LD_INT 12
1465: PUSH
1466: LD_INT 14
1468: PUSH
1469: EMPTY
1470: LIST
1471: LIST
1472: LIST
1473: PPUSH
1474: LD_INT 1
1476: PPUSH
1477: LD_INT 5
1479: PPUSH
1480: CALL_OW 237
// setskill ( [ ruhsold3 , ruhsold5 ] , skill_combat , 4 ) ;
1484: LD_INT 13
1486: PUSH
1487: LD_INT 15
1489: PUSH
1490: EMPTY
1491: LIST
1492: LIST
1493: PPUSH
1494: LD_INT 1
1496: PPUSH
1497: LD_INT 4
1499: PPUSH
1500: CALL_OW 237
// setskill ( [ ruhsold0 ] , skill_combat , 5 ) ;
1504: LD_INT 10
1506: PUSH
1507: EMPTY
1508: LIST
1509: PPUSH
1510: LD_INT 1
1512: PPUSH
1513: LD_INT 5
1515: PPUSH
1516: CALL_OW 237
// end ; 3 :
1520: GO 1594
1522: LD_INT 3
1524: DOUBLE
1525: EQUAL
1526: IFTRUE 1530
1528: GO 1593
1530: POP
// begin setskill ( [ ruhsold1 , ruhsold2 , ruhsold4 ] , skill_combat , 7 ) ;
1531: LD_INT 11
1533: PUSH
1534: LD_INT 12
1536: PUSH
1537: LD_INT 14
1539: PUSH
1540: EMPTY
1541: LIST
1542: LIST
1543: LIST
1544: PPUSH
1545: LD_INT 1
1547: PPUSH
1548: LD_INT 7
1550: PPUSH
1551: CALL_OW 237
// setskill ( [ ruhsold3 , ruhsold5 ] , skill_combat , 6 ) ;
1555: LD_INT 13
1557: PUSH
1558: LD_INT 15
1560: PUSH
1561: EMPTY
1562: LIST
1563: LIST
1564: PPUSH
1565: LD_INT 1
1567: PPUSH
1568: LD_INT 6
1570: PPUSH
1571: CALL_OW 237
// setskill ( [ ruhsold0 ] , skill_combat , 7 ) ;
1575: LD_INT 10
1577: PUSH
1578: EMPTY
1579: LIST
1580: PPUSH
1581: LD_INT 1
1583: PPUSH
1584: LD_INT 7
1586: PPUSH
1587: CALL_OW 237
// end ; end ;
1591: GO 1594
1593: POP
// rusove = [ ruhsold0 , ruhsold1 , ruhsold2 , ruhsold3 , ruhsold4 , ruhsold5 , ruv0 , ruv1 , ruv2 ] ;
1594: LD_ADDR_LOC 17
1598: PUSH
1599: LD_INT 10
1601: PUSH
1602: LD_INT 11
1604: PUSH
1605: LD_INT 12
1607: PUSH
1608: LD_INT 13
1610: PUSH
1611: LD_INT 14
1613: PUSH
1614: LD_INT 15
1616: PUSH
1617: LD_LOC 11
1621: PUSH
1622: LD_LOC 13
1626: PUSH
1627: LD_LOC 15
1631: PUSH
1632: EMPTY
1633: LIST
1634: LIST
1635: LIST
1636: LIST
1637: LIST
1638: LIST
1639: LIST
1640: LIST
1641: LIST
1642: ST_TO_ADDR
// comremember ( rusove ) ;
1643: LD_LOC 17
1647: PPUSH
1648: CALL_OW 143
// tmp = createvehicle ;
1652: LD_ADDR_VAR 0 2
1656: PUSH
1657: CALL_OW 45
1661: ST_TO_ADDR
// setdir ( tmp , 5 ) ;
1662: LD_VAR 0 2
1666: PPUSH
1667: LD_INT 5
1669: PPUSH
1670: CALL_OW 233
// setlives ( tmp , 87 ) ;
1674: LD_VAR 0 2
1678: PPUSH
1679: LD_INT 87
1681: PPUSH
1682: CALL_OW 234
// placeunitxy ( tmp , 53 , 49 , false ) ;
1686: LD_VAR 0 2
1690: PPUSH
1691: LD_INT 53
1693: PPUSH
1694: LD_INT 49
1696: PPUSH
1697: LD_INT 0
1699: PPUSH
1700: CALL_OW 48
// end ;
1704: LD_VAR 0 1
1708: RET
// function selektnuta_budova ; var tmp ; begin
1709: LD_INT 0
1711: PPUSH
1712: PPUSH
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_building ] ] ) ;
1713: LD_ADDR_VAR 0 2
1717: PUSH
1718: LD_INT 22
1720: PUSH
1721: LD_EXP 2
1725: PUSH
1726: EMPTY
1727: LIST
1728: LIST
1729: PUSH
1730: LD_INT 21
1732: PUSH
1733: LD_INT 3
1735: PUSH
1736: EMPTY
1737: LIST
1738: LIST
1739: PUSH
1740: EMPTY
1741: LIST
1742: LIST
1743: PPUSH
1744: CALL_OW 69
1748: ST_TO_ADDR
// if isselected ( tmp ) then
1749: LD_VAR 0 2
1753: PPUSH
1754: CALL_OW 306
1758: IFFALSE 1770
// result = true else
1760: LD_ADDR_VAR 0 1
1764: PUSH
1765: LD_INT 1
1767: ST_TO_ADDR
1768: GO 1778
// result = false ;
1770: LD_ADDR_VAR 0 1
1774: PUSH
1775: LD_INT 0
1777: ST_TO_ADDR
// end ;
1778: LD_VAR 0 1
1782: RET
// every 0 0$0.3 trigger selektnuta_budova do
1783: CALL 1709 0 0
1787: IFFALSE 1799
1789: GO 1791
1791: DISABLE
// hint ( BuildingLevel ) ;
1792: LD_STRING BuildingLevel
1794: PPUSH
1795: CALL_OW 339
1799: END
// function dialog1 ; begin
1800: LD_INT 0
1802: PPUSH
// ingameon ;
1803: CALL_OW 8
// centernowonxy ( 44 , 40 ) ;
1807: LD_INT 44
1809: PPUSH
1810: LD_INT 40
1812: PPUSH
1813: CALL_OW 86
// dwait ( 0 0$1 ) ;
1817: LD_INT 35
1819: PPUSH
1820: CALL_OW 68
// case gamma2commander of 1 :
1824: LD_EXP 46
1828: PUSH
1829: LD_INT 1
1831: DOUBLE
1832: EQUAL
1833: IFTRUE 1837
1835: GO 1852
1837: POP
// say ( lucy , D1-Don-1 ) ; 2 :
1838: LD_EXP 31
1842: PPUSH
1843: LD_STRING D1-Don-1
1845: PPUSH
1846: CALL_OW 88
1850: GO 1899
1852: LD_INT 2
1854: DOUBLE
1855: EQUAL
1856: IFTRUE 1860
1858: GO 1875
1860: POP
// say ( brown , D1-Brown-1 ) ; 3 :
1861: LD_EXP 32
1865: PPUSH
1866: LD_STRING D1-Brown-1
1868: PPUSH
1869: CALL_OW 88
1873: GO 1899
1875: LD_INT 3
1877: DOUBLE
1878: EQUAL
1879: IFTRUE 1883
1881: GO 1898
1883: POP
// say ( vanh , D1-VanH-1 ) ; end ;
1884: LD_EXP 33
1888: PPUSH
1889: LD_STRING D1-VanH-1
1891: PPUSH
1892: CALL_OW 88
1896: GO 1899
1898: POP
// sayradio ( rh , D1-Har-1 ) ;
1899: LD_EXP 15
1903: PPUSH
1904: LD_STRING D1-Har-1
1906: PPUSH
1907: CALL_OW 94
// case gamma2commander of 1 :
1911: LD_EXP 46
1915: PUSH
1916: LD_INT 1
1918: DOUBLE
1919: EQUAL
1920: IFTRUE 1924
1922: GO 1939
1924: POP
// say ( lucy , D1-Don-2 ) ; 2 :
1925: LD_EXP 31
1929: PPUSH
1930: LD_STRING D1-Don-2
1932: PPUSH
1933: CALL_OW 88
1937: GO 1986
1939: LD_INT 2
1941: DOUBLE
1942: EQUAL
1943: IFTRUE 1947
1945: GO 1962
1947: POP
// say ( brown , D1-Brown-2 ) ; 3 :
1948: LD_EXP 32
1952: PPUSH
1953: LD_STRING D1-Brown-2
1955: PPUSH
1956: CALL_OW 88
1960: GO 1986
1962: LD_INT 3
1964: DOUBLE
1965: EQUAL
1966: IFTRUE 1970
1968: GO 1985
1970: POP
// say ( vanh , D1-VanH-2 ) ; end ;
1971: LD_EXP 33
1975: PPUSH
1976: LD_STRING D1-VanH-2
1978: PPUSH
1979: CALL_OW 88
1983: GO 1986
1985: POP
// sayradio ( rh , D1-Har-2 ) ;
1986: LD_EXP 15
1990: PPUSH
1991: LD_STRING D1-Har-2
1993: PPUSH
1994: CALL_OW 94
// ingameoff ;
1998: CALL_OW 9
// SaveForQuickRestart ;
2002: CALL_OW 22
// wait ( 0 0$1 ) ;
2006: LD_INT 35
2008: PPUSH
2009: CALL_OW 67
// ChangeMissionObjectives ( M1 ) ;
2013: LD_STRING M1
2015: PPUSH
2016: CALL_OW 337
// music_class = music_auto ;
2020: LD_ADDR_OWVAR 72
2024: PUSH
2025: LD_INT 0
2027: ST_TO_ADDR
// end ;
2028: LD_VAR 0 1
2032: RET
// var supply ; var first_time ; export retreat ; export poskoz , pacienti ; var pocet_lidi , chciplo ; var t2rest ; export hr_lidi , hr_auta ; export mpora ; export prebytek ; export healeri ; var aiv_met , dialcb_delayed , sikishere , cperiode ; export debug ; var maxsikjmmdist , revealed ; var bunk0_lev , bunk1_lev ; starting begin music_class = music_combat ;
2033: LD_ADDR_OWVAR 72
2037: PUSH
2038: LD_INT 1
2040: ST_TO_ADDR
// revealed = 0 ;
2041: LD_ADDR_LOC 30
2045: PUSH
2046: LD_INT 0
2048: ST_TO_ADDR
// rubfact0 = 0 ;
2049: LD_ADDR_LOC 5
2053: PUSH
2054: LD_INT 0
2056: ST_TO_ADDR
// healeri = [ ruhscie0 , ruhscie1 ] ;
2057: LD_ADDR_EXP 12
2061: PUSH
2062: LD_INT 22
2064: PUSH
2065: LD_INT 23
2067: PUSH
2068: EMPTY
2069: LIST
2070: LIST
2071: ST_TO_ADDR
// disable ( 03 ) ;
2072: LD_INT 3
2074: DISABLE_MARKED
// disable ( 27 ) ;
2075: LD_INT 27
2077: DISABLE_MARKED
// countdist = 0 ;
2078: LD_ADDR_LOC 75
2082: PUSH
2083: LD_INT 0
2085: ST_TO_ADDR
// totalatt = 0 ;
2086: LD_ADDR_LOC 76
2090: PUSH
2091: LD_INT 0
2093: ST_TO_ADDR
// setbname ( amware0 , gamma ) ;
2094: LD_INT 25
2096: PPUSH
2097: LD_STRING gamma
2099: PPUSH
2100: CALL_OW 500
// bunk0_lev = [ 2 , 5 , 7 ] [ difficulty ] ;
2104: LD_ADDR_LOC 31
2108: PUSH
2109: LD_INT 2
2111: PUSH
2112: LD_INT 5
2114: PUSH
2115: LD_INT 7
2117: PUSH
2118: EMPTY
2119: LIST
2120: LIST
2121: LIST
2122: PUSH
2123: LD_OWVAR 67
2127: ARRAY
2128: ST_TO_ADDR
// bunk1_lev = [ 2 , 5 , 7 ] [ difficulty ] ;
2129: LD_ADDR_LOC 32
2133: PUSH
2134: LD_INT 2
2136: PUSH
2137: LD_INT 5
2139: PUSH
2140: LD_INT 7
2142: PUSH
2143: EMPTY
2144: LIST
2145: LIST
2146: LIST
2147: PUSH
2148: LD_OWVAR 67
2152: ARRAY
2153: ST_TO_ADDR
// debug = false ;
2154: LD_ADDR_EXP 13
2158: PUSH
2159: LD_INT 0
2161: ST_TO_ADDR
// if debug then
2162: LD_EXP 13
2166: IFFALSE 2175
// msg ( Bacha debug je ON! ) ;
2168: LD_STRING Bacha debug je ON!
2170: PPUSH
2171: CALL_OW 100
// case difficulty of 1 :
2175: LD_OWVAR 67
2179: PUSH
2180: LD_INT 1
2182: DOUBLE
2183: EQUAL
2184: IFTRUE 2188
2186: GO 2239
2188: POP
// begin hr_lidi = 450 ;
2189: LD_ADDR_EXP 8
2193: PUSH
2194: LD_INT 450
2196: ST_TO_ADDR
// hr_auta = 430 ;
2197: LD_ADDR_EXP 9
2201: PUSH
2202: LD_INT 430
2204: ST_TO_ADDR
// mpora = 2 ;
2205: LD_ADDR_EXP 10
2209: PUSH
2210: LD_INT 2
2212: ST_TO_ADDR
// t2rest = 2 2$0 ;
2213: LD_ADDR_LOC 24
2217: PUSH
2218: LD_INT 4200
2220: ST_TO_ADDR
// cperiode = 2 2$0 ;
2221: LD_ADDR_LOC 28
2225: PUSH
2226: LD_INT 4200
2228: ST_TO_ADDR
// supply = 23 ;
2229: LD_ADDR_LOC 20
2233: PUSH
2234: LD_INT 23
2236: ST_TO_ADDR
// end ; 2 :
2237: GO 2358
2239: LD_INT 2
2241: DOUBLE
2242: EQUAL
2243: IFTRUE 2247
2245: GO 2298
2247: POP
// begin hr_lidi = 490 ;
2248: LD_ADDR_EXP 8
2252: PUSH
2253: LD_INT 490
2255: ST_TO_ADDR
// hr_auta = 500 ;
2256: LD_ADDR_EXP 9
2260: PUSH
2261: LD_INT 500
2263: ST_TO_ADDR
// mpora = 3 ;
2264: LD_ADDR_EXP 10
2268: PUSH
2269: LD_INT 3
2271: ST_TO_ADDR
// t2rest = 1 1$10 ;
2272: LD_ADDR_LOC 24
2276: PUSH
2277: LD_INT 2450
2279: ST_TO_ADDR
// cperiode = 2 2$15 ;
2280: LD_ADDR_LOC 28
2284: PUSH
2285: LD_INT 4725
2287: ST_TO_ADDR
// supply = 19 ;
2288: LD_ADDR_LOC 20
2292: PUSH
2293: LD_INT 19
2295: ST_TO_ADDR
// end ; 3 :
2296: GO 2358
2298: LD_INT 3
2300: DOUBLE
2301: EQUAL
2302: IFTRUE 2306
2304: GO 2357
2306: POP
// begin hr_lidi = 550 ;
2307: LD_ADDR_EXP 8
2311: PUSH
2312: LD_INT 550
2314: ST_TO_ADDR
// hr_auta = 570 ;
2315: LD_ADDR_EXP 9
2319: PUSH
2320: LD_INT 570
2322: ST_TO_ADDR
// mpora = 4 ;
2323: LD_ADDR_EXP 10
2327: PUSH
2328: LD_INT 4
2330: ST_TO_ADDR
// t2rest = 0 ;
2331: LD_ADDR_LOC 24
2335: PUSH
2336: LD_INT 0
2338: ST_TO_ADDR
// cperiode = 2 2$30 ;
2339: LD_ADDR_LOC 28
2343: PUSH
2344: LD_INT 5250
2346: ST_TO_ADDR
// supply = 17 ;
2347: LD_ADDR_LOC 20
2351: PUSH
2352: LD_INT 17
2354: ST_TO_ADDR
// end ; end ;
2355: GO 2358
2357: POP
// maxsikjmmdist = 13 ;
2358: LD_ADDR_LOC 29
2362: PUSH
2363: LD_INT 13
2365: ST_TO_ADDR
// jmm_zbabelec = false ;
2366: LD_ADDR_LOC 74
2370: PUSH
2371: LD_INT 0
2373: ST_TO_ADDR
// aiv_met = [ ] ;
2374: LD_ADDR_LOC 25
2378: PUSH
2379: EMPTY
2380: ST_TO_ADDR
// dialcb_delayed = false ;
2381: LD_ADDR_LOC 26
2385: PUSH
2386: LD_INT 0
2388: ST_TO_ADDR
// sikishere = false ;
2389: LD_ADDR_LOC 27
2393: PUSH
2394: LD_INT 0
2396: ST_TO_ADDR
// retreat = - 1 ;
2397: LD_ADDR_EXP 5
2401: PUSH
2402: LD_INT 1
2404: NEG
2405: ST_TO_ADDR
// poskoz = [ ] ;
2406: LD_ADDR_EXP 6
2410: PUSH
2411: EMPTY
2412: ST_TO_ADDR
// rusove0 = [ ] ;
2413: LD_ADDR_EXP 14
2417: PUSH
2418: EMPTY
2419: ST_TO_ADDR
// prebytek = [ ] ;
2420: LD_ADDR_EXP 11
2424: PUSH
2425: EMPTY
2426: ST_TO_ADDR
// pacienti = [ ] ;
2427: LD_ADDR_EXP 7
2431: PUSH
2432: EMPTY
2433: ST_TO_ADDR
// first_time = true ;
2434: LD_ADDR_LOC 21
2438: PUSH
2439: LD_INT 1
2441: ST_TO_ADDR
// gunext_ready = false ;
2442: LD_ADDR_LOC 35
2446: PUSH
2447: LD_INT 0
2449: ST_TO_ADDR
// randomize ;
2450: CALL_OW 10
// amer = 1 ;
2454: LD_ADDR_EXP 2
2458: PUSH
2459: LD_INT 1
2461: ST_TO_ADDR
// RevealFogArea ( amer , celamapa ) ;
2462: LD_EXP 2
2466: PPUSH
2467: LD_INT 4
2469: PPUSH
2470: CALL_OW 332
// prepare_units ;
2474: CALL 0 0 0
// pocet_lidi = 7 ;
2478: LD_ADDR_LOC 22
2482: PUSH
2483: LD_INT 7
2485: ST_TO_ADDR
// chciplo = 0 ;
2486: LD_ADDR_LOC 23
2490: PUSH
2491: LD_INT 0
2493: ST_TO_ADDR
// dialog1 ;
2494: CALL 1800 0 0
// end ;
2498: END
// every 0 0$15 do
2499: GO 2501
2501: DISABLE
// begin cper = cperiode ;
2502: LD_ADDR_LOC 33
2506: PUSH
2507: LD_LOC 28
2511: ST_TO_ADDR
// createcratesarea ( rand ( 4 , 5 ) , dropzone , true ) ;
2512: LD_INT 4
2514: PPUSH
2515: LD_INT 5
2517: PPUSH
2518: CALL_OW 12
2522: PPUSH
2523: LD_INT 6
2525: PPUSH
2526: LD_INT 1
2528: PPUSH
2529: CALL_OW 55
// end ;
2533: END
// every 1 1$10 do
2534: GO 2536
2536: DISABLE
// createcratesarea ( rand ( 4 , 5 ) , dropzone , true ) ;
2537: LD_INT 4
2539: PPUSH
2540: LD_INT 5
2542: PPUSH
2543: CALL_OW 12
2547: PPUSH
2548: LD_INT 6
2550: PPUSH
2551: LD_INT 1
2553: PPUSH
2554: CALL_OW 55
2558: END
// var cper ; every 0 0$15 + 1 1$45 do
2559: GO 2561
2561: DISABLE
// begin cper = cper - 0 0$15 ;
2562: LD_ADDR_LOC 33
2566: PUSH
2567: LD_LOC 33
2571: PUSH
2572: LD_INT 525
2574: MINUS
2575: ST_TO_ADDR
// if cper = 0 then
2576: LD_LOC 33
2580: PUSH
2581: LD_INT 0
2583: EQUAL
2584: IFFALSE 2649
// begin if createcratesarea ( rand ( 4 , 5 ) , dropzone , true ) then
2586: LD_INT 4
2588: PPUSH
2589: LD_INT 5
2591: PPUSH
2592: CALL_OW 12
2596: PPUSH
2597: LD_INT 6
2599: PPUSH
2600: LD_INT 1
2602: PPUSH
2603: CALL_OW 55
2607: IFFALSE 2646
// begin if ( supply > 1 ) then
2609: LD_LOC 20
2613: PUSH
2614: LD_INT 1
2616: GREATER
2617: IFFALSE 2634
// begin supply = supply - 1 ;
2619: LD_ADDR_LOC 20
2623: PUSH
2624: LD_LOC 20
2628: PUSH
2629: LD_INT 1
2631: MINUS
2632: ST_TO_ADDR
// enable ;
2633: ENABLE
// end ; cper = cperiode ;
2634: LD_ADDR_LOC 33
2638: PUSH
2639: LD_LOC 28
2643: ST_TO_ADDR
// end else
2644: GO 2647
// enable ;
2646: ENABLE
// end else
2647: GO 2650
// enable ;
2649: ENABLE
// end ;
2650: END
// every 0 0$7 do
2651: GO 2653
2653: DISABLE
// begin randomize ;
2654: CALL_OW 10
// enable ;
2658: ENABLE
// end ;
2659: END
// on humandestroyed ( manik , side , nation , x , y , direction , sex , class ) do if ( side = amer ) and ( class in [ class_soldier , class_engineer , class_mechanic , class_scientistic , class_sniper , class_bazooker ] ) then
2660: LD_VAR 0 2
2664: PUSH
2665: LD_EXP 2
2669: EQUAL
2670: PUSH
2671: LD_VAR 0 8
2675: PUSH
2676: LD_INT 1
2678: PUSH
2679: LD_INT 2
2681: PUSH
2682: LD_INT 3
2684: PUSH
2685: LD_INT 4
2687: PUSH
2688: LD_INT 5
2690: PUSH
2691: LD_INT 9
2693: PUSH
2694: EMPTY
2695: LIST
2696: LIST
2697: LIST
2698: LIST
2699: LIST
2700: LIST
2701: IN
2702: AND
2703: IFFALSE 2719
// chciplo = chciplo + 1 ;
2705: LD_ADDR_LOC 23
2709: PUSH
2710: LD_LOC 23
2714: PUSH
2715: LD_INT 1
2717: PLUS
2718: ST_TO_ADDR
2719: PPOPN 8
2721: END
// every 0 0$1 + 0 0$1 trigger isok ( ruboilp0 ) and not isconstructed ( ruboilp0 ) do
2722: LD_LOC 2
2726: PPUSH
2727: CALL_OW 302
2731: PUSH
2732: LD_LOC 2
2736: PPUSH
2737: CALL_OW 304
2741: NOT
2742: AND
2743: IFFALSE 2773
2745: GO 2747
2747: DISABLE
// begin rubwrks0 = combuild ( ruhengi0 , b_workshop , 76 , 93 , 1 ) ;
2748: LD_ADDR_LOC 4
2752: PUSH
2753: LD_INT 5
2755: PPUSH
2756: LD_INT 2
2758: PPUSH
2759: LD_INT 76
2761: PPUSH
2762: LD_INT 93
2764: PPUSH
2765: LD_INT 1
2767: PPUSH
2768: CALL_OW 145
2772: ST_TO_ADDR
// end ;
2773: END
// every 0 0$1 + 0 0$1 trigger isok ( ruboilm0 ) and not isconstructed ( ruboilm0 ) do
2774: LD_LOC 1
2778: PPUSH
2779: CALL_OW 302
2783: PUSH
2784: LD_LOC 1
2788: PPUSH
2789: CALL_OW 304
2793: NOT
2794: AND
2795: IFFALSE 2825
2797: GO 2799
2799: DISABLE
// begin rubbrid0 = combuild ( ruhengi1 , b_lab , 73 , 79 , 2 ) ;
2800: LD_ADDR_LOC 6
2804: PUSH
2805: LD_INT 6
2807: PPUSH
2808: LD_INT 6
2810: PPUSH
2811: LD_INT 73
2813: PPUSH
2814: LD_INT 79
2816: PPUSH
2817: LD_INT 2
2819: PPUSH
2820: CALL_OW 145
2824: ST_TO_ADDR
// end ;
2825: END
// every 0 0$1 + 0 0$1 trigger isok ( rubbunk0 ) and not isconstructed ( rubbunk0 ) do
2826: LD_LOC 7
2830: PPUSH
2831: CALL_OW 302
2835: PUSH
2836: LD_LOC 7
2840: PPUSH
2841: CALL_OW 304
2845: NOT
2846: AND
2847: IFFALSE 2877
2849: GO 2851
2851: DISABLE
// begin rubarmr0 = combuild ( ruhengi2 , b_armoury , 99 , 88 , 3 ) ;
2852: LD_ADDR_LOC 9
2856: PUSH
2857: LD_INT 8
2859: PPUSH
2860: LD_INT 4
2862: PPUSH
2863: LD_INT 99
2865: PPUSH
2866: LD_INT 88
2868: PPUSH
2869: LD_INT 3
2871: PPUSH
2872: CALL_OW 145
2876: ST_TO_ADDR
// end ;
2877: END
// every 0 0$1 + 0 0$1 trigger isok ( rubbrid0 ) and not isconstructed ( rubbrid0 ) do
2878: LD_LOC 6
2882: PPUSH
2883: CALL_OW 302
2887: PUSH
2888: LD_LOC 6
2892: PPUSH
2893: CALL_OW 304
2897: NOT
2898: AND
2899: IFFALSE 2950
2901: GO 2903
2903: DISABLE
// begin comupgrade ( rubdepo0 ) ;
2904: LD_LOC 10
2908: PPUSH
2909: CALL_OW 146
// comupgradelab ( rubbrid0 , b_lab_weapon ) ;
2913: LD_LOC 6
2917: PPUSH
2918: LD_INT 10
2920: PPUSH
2921: CALL_OW 147
// rubbunk1 = combuild ( ruhengi1 , b_bunker , 72 , 84 , 2 ) ;
2925: LD_ADDR_LOC 8
2929: PUSH
2930: LD_INT 6
2932: PPUSH
2933: LD_INT 32
2935: PPUSH
2936: LD_INT 72
2938: PPUSH
2939: LD_INT 84
2941: PPUSH
2942: LD_INT 2
2944: PPUSH
2945: CALL_OW 145
2949: ST_TO_ADDR
// end ;
2950: END
// every 0 0$1 + 0 0$1 trigger isok ( rubarmr0 ) and not isconstructed ( rubarmr0 ) do
2951: LD_LOC 9
2955: PPUSH
2956: CALL_OW 302
2960: PUSH
2961: LD_LOC 9
2965: PPUSH
2966: CALL_OW 304
2970: NOT
2971: AND
2972: IFFALSE 3011
2974: GO 2976
2976: DISABLE
// begin comupgrade ( rubarmr0 ) ;
2977: LD_LOC 9
2981: PPUSH
2982: CALL_OW 146
// ruboilp1 = combuild ( ruhengi2 , b_oil_power , 95 , 97 , 0 ) ;
2986: LD_ADDR_LOC 3
2990: PUSH
2991: LD_INT 8
2993: PPUSH
2994: LD_INT 26
2996: PPUSH
2997: LD_INT 95
2999: PPUSH
3000: LD_INT 97
3002: PPUSH
3003: LD_INT 0
3005: PPUSH
3006: CALL_OW 145
3010: ST_TO_ADDR
// end ;
3011: END
// every 0 0$1 + 0 0$1 trigger isok ( rubwrks0 ) and not isconstructed ( rubwrks0 ) do
3012: LD_LOC 4
3016: PPUSH
3017: CALL_OW 302
3021: PUSH
3022: LD_LOC 4
3026: PPUSH
3027: CALL_OW 304
3031: NOT
3032: AND
3033: IFFALSE 3083
3035: GO 3037
3037: DISABLE
// begin wait ( 0 0$2 ) ;
3038: LD_INT 70
3040: PPUSH
3041: CALL_OW 67
// commoveunit ( ruhmech0 , rubwrks0 ) ;
3045: LD_INT 9
3047: PPUSH
3048: LD_LOC 4
3052: PPUSH
3053: CALL_OW 112
// wait ( 0 0$3 ) ;
3057: LD_INT 105
3059: PPUSH
3060: CALL_OW 67
// comupgrade ( rubwrks0 ) ;
3064: LD_LOC 4
3068: PPUSH
3069: CALL_OW 146
// rubfact0 = rubwrks0 ;
3073: LD_ADDR_LOC 5
3077: PUSH
3078: LD_LOC 4
3082: ST_TO_ADDR
// end ;
3083: END
// on upgradecomplete ( un ) do if un = rubfact0 then
3084: LD_VAR 0 1
3088: PUSH
3089: LD_LOC 5
3093: EQUAL
3094: IFFALSE 3108
// commoveunit ( ruhmech0 , un ) ;
3096: LD_INT 9
3098: PPUSH
3099: LD_VAR 0 1
3103: PPUSH
3104: CALL_OW 112
3108: PPOPN 1
3110: END
// every 0 0$1 + 0 0$1 trigger isok ( rubbunk1 ) and not isconstructed ( rubbunk1 ) and isok ( rubfact0 ) and not isconstructed ( rubfact0 ) and isinunit ( ruhmech0 ) = rubfact0 and gunext_ready do
3111: LD_LOC 8
3115: PPUSH
3116: CALL_OW 302
3120: PUSH
3121: LD_LOC 8
3125: PPUSH
3126: CALL_OW 304
3130: NOT
3131: AND
3132: PUSH
3133: LD_LOC 5
3137: PPUSH
3138: CALL_OW 302
3142: AND
3143: PUSH
3144: LD_LOC 5
3148: PPUSH
3149: CALL_OW 304
3153: NOT
3154: AND
3155: PUSH
3156: LD_INT 9
3158: PPUSH
3159: CALL_OW 310
3163: PUSH
3164: LD_LOC 5
3168: EQUAL
3169: AND
3170: PUSH
3171: LD_LOC 35
3175: AND
3176: IFFALSE 3299
3178: GO 3180
3180: DISABLE
// begin setblevel ( rubbunk1 , bunk1_lev ) ;
3181: LD_LOC 8
3185: PPUSH
3186: LD_LOC 32
3190: PPUSH
3191: CALL_OW 241
// case difficulty of 1 :
3195: LD_OWVAR 67
3199: PUSH
3200: LD_INT 1
3202: DOUBLE
3203: EQUAL
3204: IFTRUE 3208
3206: GO 3223
3208: POP
// complaceweapon ( rubbunk1 , ru_heavy_machine_gun ) ; 2 :
3209: LD_LOC 8
3213: PPUSH
3214: LD_INT 42
3216: PPUSH
3217: CALL_OW 148
3221: GO 3270
3223: LD_INT 2
3225: DOUBLE
3226: EQUAL
3227: IFTRUE 3231
3229: GO 3246
3231: POP
// complaceweapon ( rubbunk1 , ru_gatling_gun ) ; 3 :
3232: LD_LOC 8
3236: PPUSH
3237: LD_INT 43
3239: PPUSH
3240: CALL_OW 148
3244: GO 3270
3246: LD_INT 3
3248: DOUBLE
3249: EQUAL
3250: IFTRUE 3254
3252: GO 3269
3254: POP
// complaceweapon ( rubbunk1 , ru_gatling_gun ) ; end ;
3255: LD_LOC 8
3259: PPUSH
3260: LD_INT 43
3262: PPUSH
3263: CALL_OW 148
3267: GO 3270
3269: POP
// rusove = rusove diff [ ruhsold1 ] ;
3270: LD_ADDR_LOC 17
3274: PUSH
3275: LD_LOC 17
3279: PUSH
3280: LD_INT 11
3282: PUSH
3283: EMPTY
3284: LIST
3285: DIFF
3286: ST_TO_ADDR
// commoveunit ( ruhsold1 , rubbunk1 ) ;
3287: LD_INT 11
3289: PPUSH
3290: LD_LOC 8
3294: PPUSH
3295: CALL_OW 112
// end ;
3299: END
// every 0 0$1 + 0 0$1 trigger isok ( rubbunk0 ) and not isconstructed ( rubbunk0 ) and isok ( rubfact0 ) and not isconstructed ( rubfact0 ) and isinunit ( ruhmech0 ) = rubfact0 and gunext_ready do
3300: LD_LOC 7
3304: PPUSH
3305: CALL_OW 302
3309: PUSH
3310: LD_LOC 7
3314: PPUSH
3315: CALL_OW 304
3319: NOT
3320: AND
3321: PUSH
3322: LD_LOC 5
3326: PPUSH
3327: CALL_OW 302
3331: AND
3332: PUSH
3333: LD_LOC 5
3337: PPUSH
3338: CALL_OW 304
3342: NOT
3343: AND
3344: PUSH
3345: LD_INT 9
3347: PPUSH
3348: CALL_OW 310
3352: PUSH
3353: LD_LOC 5
3357: EQUAL
3358: AND
3359: PUSH
3360: LD_LOC 35
3364: AND
3365: IFFALSE 3488
3367: GO 3369
3369: DISABLE
// begin setblevel ( rubbunk0 , bunk0_lev ) ;
3370: LD_LOC 7
3374: PPUSH
3375: LD_LOC 31
3379: PPUSH
3380: CALL_OW 241
// case difficulty of 1 :
3384: LD_OWVAR 67
3388: PUSH
3389: LD_INT 1
3391: DOUBLE
3392: EQUAL
3393: IFTRUE 3397
3395: GO 3412
3397: POP
// complaceweapon ( rubbunk0 , ru_gun ) ; 2 :
3398: LD_LOC 7
3402: PPUSH
3403: LD_INT 44
3405: PPUSH
3406: CALL_OW 148
3410: GO 3459
3412: LD_INT 2
3414: DOUBLE
3415: EQUAL
3416: IFTRUE 3420
3418: GO 3435
3420: POP
// complaceweapon ( rubbunk0 , ru_gun ) ; 3 :
3421: LD_LOC 7
3425: PPUSH
3426: LD_INT 44
3428: PPUSH
3429: CALL_OW 148
3433: GO 3459
3435: LD_INT 3
3437: DOUBLE
3438: EQUAL
3439: IFTRUE 3443
3441: GO 3458
3443: POP
// complaceweapon ( rubbunk0 , ru_heavy_gun ) ; end ;
3444: LD_LOC 7
3448: PPUSH
3449: LD_INT 46
3451: PPUSH
3452: CALL_OW 148
3456: GO 3459
3458: POP
// rusove = rusove diff [ ruhsold0 ] ;
3459: LD_ADDR_LOC 17
3463: PUSH
3464: LD_LOC 17
3468: PUSH
3469: LD_INT 10
3471: PUSH
3472: EMPTY
3473: LIST
3474: DIFF
3475: ST_TO_ADDR
// commoveunit ( ruhsold0 , rubbunk0 ) ;
3476: LD_INT 10
3478: PPUSH
3479: LD_LOC 7
3483: PPUSH
3484: CALL_OW 112
// end ;
3488: END
// var b_ext_tr ; every 0 0$1 + 2 2$0 trigger isok ( rubfact0 ) and not isconstructed ( rubfact0 ) do
3489: LD_LOC 5
3493: PPUSH
3494: CALL_OW 302
3498: PUSH
3499: LD_LOC 5
3503: PPUSH
3504: CALL_OW 304
3508: NOT
3509: AND
3510: IFFALSE 3553
3512: GO 3514
3514: DISABLE
// begin combuild ( ruhengi0 , b_ext_gun , 73 , 90 , 2 ) ;
3515: LD_INT 5
3517: PPUSH
3518: LD_INT 17
3520: PPUSH
3521: LD_INT 73
3523: PPUSH
3524: LD_INT 90
3526: PPUSH
3527: LD_INT 2
3529: PPUSH
3530: CALL_OW 145
// combuild ( ruhengi1 , b_ext_track , 76 , 95 , 0 ) ;
3534: LD_INT 6
3536: PPUSH
3537: LD_INT 16
3539: PPUSH
3540: LD_INT 76
3542: PPUSH
3543: LD_INT 95
3545: PPUSH
3546: LD_INT 0
3548: PPUSH
3549: CALL_OW 145
// end ;
3553: END
// var gunext_ready ; on buildingcomplete ( rub ) do if getside ( rub ) = rus then
3554: LD_VAR 0 1
3558: PPUSH
3559: CALL_OW 255
3563: PUSH
3564: LD_EXP 1
3568: EQUAL
3569: IFFALSE 3677
// if unitfilter ( rub , [ [ f_btype , b_ext_track ] ] ) then
3571: LD_VAR 0 1
3575: PPUSH
3576: LD_INT 30
3578: PUSH
3579: LD_INT 16
3581: PUSH
3582: EMPTY
3583: LIST
3584: LIST
3585: PUSH
3586: EMPTY
3587: LIST
3588: PPUSH
3589: CALL_OW 72
3593: IFFALSE 3616
// combuild ( ruhengi1 , b_turret , 103 , 89 , 3 ) else
3595: LD_INT 6
3597: PPUSH
3598: LD_INT 33
3600: PPUSH
3601: LD_INT 103
3603: PPUSH
3604: LD_INT 89
3606: PPUSH
3607: LD_INT 3
3609: PPUSH
3610: CALL_OW 145
3614: GO 3677
// if unitfilter ( rub , [ [ f_btype , b_turret ] ] ) then
3616: LD_VAR 0 1
3620: PPUSH
3621: LD_INT 30
3623: PUSH
3624: LD_INT 33
3626: PUSH
3627: EMPTY
3628: LIST
3629: LIST
3630: PUSH
3631: EMPTY
3632: LIST
3633: PPUSH
3634: CALL_OW 72
3638: IFFALSE 3654
// complaceweapon ( rub , ru_gatling_gun ) else
3640: LD_VAR 0 1
3644: PPUSH
3645: LD_INT 43
3647: PPUSH
3648: CALL_OW 148
3652: GO 3677
// if getbtype ( rub ) = b_ext_gun then
3654: LD_VAR 0 1
3658: PPUSH
3659: CALL_OW 266
3663: PUSH
3664: LD_INT 17
3666: EQUAL
3667: IFFALSE 3677
// gunext_ready = true ;
3669: LD_ADDR_LOC 35
3673: PUSH
3674: LD_INT 1
3676: ST_TO_ADDR
3677: PPOPN 1
3679: END
// every 2 2$30 do
3680: GO 3682
3682: DISABLE
// begin com_queue = true ;
3683: LD_ADDR_OWVAR 49
3687: PUSH
3688: LD_INT 1
3690: ST_TO_ADDR
// commoveunit ( ruhengi0 , rubdepo0 ) ;
3691: LD_INT 5
3693: PPUSH
3694: LD_LOC 10
3698: PPUSH
3699: CALL_OW 112
// commoveunit ( ruhengi0 , rubdepo0 ) ;
3703: LD_INT 5
3705: PPUSH
3706: LD_LOC 10
3710: PPUSH
3711: CALL_OW 112
// com_queue = false ;
3715: LD_ADDR_OWVAR 49
3719: PUSH
3720: LD_INT 0
3722: ST_TO_ADDR
// end ;
3723: END
// var rusove_mimo ; var pom_rumi ; function rusove_mimo_bazi ; begin
3724: LD_INT 0
3726: PPUSH
// pom_rumi = rusove diff filterunitsinarea ( rubase , [ [ f_type , unit_human ] , [ f_ok ] ] ) ;
3727: LD_ADDR_LOC 37
3731: PUSH
3732: LD_LOC 17
3736: PUSH
3737: LD_INT 1
3739: PPUSH
3740: LD_INT 21
3742: PUSH
3743: LD_INT 1
3745: PUSH
3746: EMPTY
3747: LIST
3748: LIST
3749: PUSH
3750: LD_INT 50
3752: PUSH
3753: EMPTY
3754: LIST
3755: PUSH
3756: EMPTY
3757: LIST
3758: LIST
3759: PPUSH
3760: CALL_OW 70
3764: DIFF
3765: ST_TO_ADDR
// rusove_mimo = pom_rumi diff filterunitsinarea ( rubase , [ [ f_type , unit_vehicle ] , [ f_ok ] ] ) ;
3766: LD_ADDR_LOC 36
3770: PUSH
3771: LD_LOC 37
3775: PUSH
3776: LD_INT 1
3778: PPUSH
3779: LD_INT 21
3781: PUSH
3782: LD_INT 2
3784: PUSH
3785: EMPTY
3786: LIST
3787: LIST
3788: PUSH
3789: LD_INT 50
3791: PUSH
3792: EMPTY
3793: LIST
3794: PUSH
3795: EMPTY
3796: LIST
3797: LIST
3798: PPUSH
3799: CALL_OW 70
3803: DIFF
3804: ST_TO_ADDR
// result = rusove_mimo ;
3805: LD_ADDR_VAR 0 1
3809: PUSH
3810: LD_LOC 36
3814: ST_TO_ADDR
// end ;
3815: LD_VAR 0 1
3819: RET
// every 0 0$1 trigger rusove_mimo_bazi do
3820: CALL 3724 0 0
3824: IFFALSE 3851
3826: GO 3828
3828: DISABLE
// begin if retreat >= 0 then
3829: LD_EXP 5
3833: PUSH
3834: LD_INT 0
3836: GREATEREQUAL
3837: IFFALSE 3841
// exit ;
3839: GO 3851
// comreturn ( rusove_mimo ) ;
3841: LD_LOC 36
3845: PPUSH
3846: CALL_OW 144
// enable ;
3850: ENABLE
// end ;
3851: END
// function manage_prebytek ( zaklad ) ; var bz , bzz ; begin
3852: LD_INT 0
3854: PPUSH
3855: PPUSH
3856: PPUSH
// bzz = [ ] ;
3857: LD_ADDR_VAR 0 4
3861: PUSH
3862: EMPTY
3863: ST_TO_ADDR
// for bz in rusove0 do
3864: LD_ADDR_VAR 0 3
3868: PUSH
3869: LD_EXP 14
3873: PUSH
3874: FOR_IN
3875: IFFALSE 3932
// if gettype ( bz ) = unit_vehicle then
3877: LD_VAR 0 3
3881: PPUSH
3882: CALL_OW 247
3886: PUSH
3887: LD_INT 2
3889: EQUAL
3890: IFFALSE 3930
// begin rusove0 = rusove0 diff [ bz ] ;
3892: LD_ADDR_EXP 14
3896: PUSH
3897: LD_EXP 14
3901: PUSH
3902: LD_VAR 0 3
3906: PUSH
3907: EMPTY
3908: LIST
3909: DIFF
3910: ST_TO_ADDR
// bzz = bzz ^ [ bz ] ;
3911: LD_ADDR_VAR 0 4
3915: PUSH
3916: LD_VAR 0 4
3920: PUSH
3921: LD_VAR 0 3
3925: PUSH
3926: EMPTY
3927: LIST
3928: ADD
3929: ST_TO_ADDR
// end ;
3930: GO 3874
3932: POP
3933: POP
// for bz = 1 to ( 0 + bzz ) do
3934: LD_ADDR_VAR 0 3
3938: PUSH
3939: DOUBLE
3940: LD_INT 1
3942: DEC
3943: ST_TO_ADDR
3944: LD_INT 0
3946: PUSH
3947: LD_VAR 0 4
3951: PLUS
3952: PUSH
3953: FOR_TO
3954: IFFALSE 4028
// if bz <= ( mpora - zaklad ) then
3956: LD_VAR 0 3
3960: PUSH
3961: LD_EXP 10
3965: PUSH
3966: LD_VAR 0 1
3970: MINUS
3971: LESSEQUAL
3972: IFFALSE 4001
// rusove0 = rusove0 ^ [ bzz [ bz ] ] else
3974: LD_ADDR_EXP 14
3978: PUSH
3979: LD_EXP 14
3983: PUSH
3984: LD_VAR 0 4
3988: PUSH
3989: LD_VAR 0 3
3993: ARRAY
3994: PUSH
3995: EMPTY
3996: LIST
3997: ADD
3998: ST_TO_ADDR
3999: GO 4026
// prebytek = prebytek ^ [ bzz [ bz ] ] ;
4001: LD_ADDR_EXP 11
4005: PUSH
4006: LD_EXP 11
4010: PUSH
4011: LD_VAR 0 4
4015: PUSH
4016: LD_VAR 0 3
4020: ARRAY
4021: PUSH
4022: EMPTY
4023: LIST
4024: ADD
4025: ST_TO_ADDR
4026: GO 3953
4028: POP
4029: POP
// end ;
4030: LD_VAR 0 2
4034: RET
// export rusove0 ; every 0 0$2 + 1 1$18 do
4035: GO 4037
4037: DISABLE
// begin if t2rest > 0 then
4038: LD_LOC 24
4042: PUSH
4043: LD_INT 0
4045: GREATER
4046: IFFALSE 4065
// begin t2rest = t2rest - 0 0$2 ;
4048: LD_ADDR_LOC 24
4052: PUSH
4053: LD_LOC 24
4057: PUSH
4058: LD_INT 70
4060: MINUS
4061: ST_TO_ADDR
// enable ;
4062: ENABLE
// end else
4063: GO 4137
// begin if debug then
4065: LD_EXP 13
4069: IFFALSE 4078
// msg ( utok 1 v 1:30 ) ;
4071: LD_STRING utok 1 v 1:30
4073: PPUSH
4074: CALL_OW 100
// manage_prebytek ( 1 ) ;
4078: LD_INT 1
4080: PPUSH
4081: CALL 3852 0 1
// rusove0 = [ ruhsold2 , ruhsold3 , ruv2 ] ;
4085: LD_ADDR_EXP 14
4089: PUSH
4090: LD_INT 12
4092: PUSH
4093: LD_INT 13
4095: PUSH
4096: LD_LOC 15
4100: PUSH
4101: EMPTY
4102: LIST
4103: LIST
4104: LIST
4105: ST_TO_ADDR
// rusove = rusove diff rusove0 ;
4106: LD_ADDR_LOC 17
4110: PUSH
4111: LD_LOC 17
4115: PUSH
4116: LD_EXP 14
4120: DIFF
4121: ST_TO_ADDR
// comagressivemove ( rusove0 , 53 , 46 ) ;
4122: LD_EXP 14
4126: PPUSH
4127: LD_INT 53
4129: PPUSH
4130: LD_INT 46
4132: PPUSH
4133: CALL_OW 114
// end ; end ;
4137: END
// every 0 0$1 + 2 2$0 trigger ( t2rest <= 0 ) and ( not isok ( ambbunk0 ) ) and ( not isok ( ambbunk1 ) ) do
4138: LD_LOC 24
4142: PUSH
4143: LD_INT 0
4145: LESSEQUAL
4146: PUSH
4147: LD_INT 18
4149: PPUSH
4150: CALL_OW 302
4154: NOT
4155: AND
4156: PUSH
4157: LD_INT 24
4159: PPUSH
4160: CALL_OW 302
4164: NOT
4165: AND
4166: IFFALSE 4186
4168: GO 4170
4170: DISABLE
// begin comagressivemove ( rusove0 , 63 , 43 ) ;
4171: LD_EXP 14
4175: PPUSH
4176: LD_INT 63
4178: PPUSH
4179: LD_INT 43
4181: PPUSH
4182: CALL_OW 114
// end ;
4186: END
// every 0 0$1 + 2 2$30 trigger ( t2rest <= 0 ) and ( not isok ( ambbunk0 ) ) and ( not isok ( ambbunk1 ) ) and ( not isok ( ambbrwr0 ) ) do
4187: LD_LOC 24
4191: PUSH
4192: LD_INT 0
4194: LESSEQUAL
4195: PUSH
4196: LD_INT 18
4198: PPUSH
4199: CALL_OW 302
4203: NOT
4204: AND
4205: PUSH
4206: LD_INT 24
4208: PPUSH
4209: CALL_OW 302
4213: NOT
4214: AND
4215: PUSH
4216: LD_INT 21
4218: PPUSH
4219: CALL_OW 302
4223: NOT
4224: AND
4225: IFFALSE 4245
4227: GO 4229
4229: DISABLE
// begin comagressivemove ( rusove0 , 49 , 33 ) ;
4230: LD_EXP 14
4234: PPUSH
4235: LD_INT 49
4237: PPUSH
4238: LD_INT 33
4240: PPUSH
4241: CALL_OW 114
// end ;
4245: END
// every 6 6$0 do
4246: GO 4248
4248: DISABLE
// begin case difficulty of 1 :
4249: LD_OWVAR 67
4253: PUSH
4254: LD_INT 1
4256: DOUBLE
4257: EQUAL
4258: IFTRUE 4262
4260: GO 4273
4262: POP
// t2rest = 2 2$0 ; 2 :
4263: LD_ADDR_LOC 24
4267: PUSH
4268: LD_INT 4200
4270: ST_TO_ADDR
4271: GO 4312
4273: LD_INT 2
4275: DOUBLE
4276: EQUAL
4277: IFTRUE 4281
4279: GO 4292
4281: POP
// t2rest = 1 1$0 ; 3 :
4282: LD_ADDR_LOC 24
4286: PUSH
4287: LD_INT 2100
4289: ST_TO_ADDR
4290: GO 4312
4292: LD_INT 3
4294: DOUBLE
4295: EQUAL
4296: IFTRUE 4300
4298: GO 4311
4300: POP
// t2rest = 0 ; end ;
4301: LD_ADDR_LOC 24
4305: PUSH
4306: LD_INT 0
4308: ST_TO_ADDR
4309: GO 4312
4311: POP
// end ;
4312: END
// var ruhsold6 , ruhsold7 ; var ruv3 , ruhmech4 , ruv4 , ruhmech5 ; every 0 0$2 + 6 6$28 do
4313: GO 4315
4315: DISABLE
// begin if t2rest > 0 then
4316: LD_LOC 24
4320: PUSH
4321: LD_INT 0
4323: GREATER
4324: IFFALSE 4343
// begin t2rest = t2rest - 0 0$2 ;
4326: LD_ADDR_LOC 24
4330: PUSH
4331: LD_LOC 24
4335: PUSH
4336: LD_INT 70
4338: MINUS
4339: ST_TO_ADDR
// enable ;
4340: ENABLE
// end else
4341: GO 4962
// begin if retreat >= 0 then
4343: LD_EXP 5
4347: PUSH
4348: LD_INT 0
4350: GREATEREQUAL
4351: IFFALSE 4355
// exit ;
4353: GO 4962
// if debug then
4355: LD_EXP 13
4359: IFFALSE 4368
// msg ( utok 2 v 6:30 ) ;
4361: LD_STRING utok 2 v 6:30
4363: PPUSH
4364: CALL_OW 100
// rusove0 = unitfilter ( rusove0 , [ [ f_ok ] ] ) ;
4368: LD_ADDR_EXP 14
4372: PUSH
4373: LD_EXP 14
4377: PPUSH
4378: LD_INT 50
4380: PUSH
4381: EMPTY
4382: LIST
4383: PUSH
4384: EMPTY
4385: LIST
4386: PPUSH
4387: CALL_OW 72
4391: ST_TO_ADDR
// uc_nation = nation_russian ;
4392: LD_ADDR_OWVAR 21
4396: PUSH
4397: LD_INT 3
4399: ST_TO_ADDR
// uc_side = rus ;
4400: LD_ADDR_OWVAR 20
4404: PUSH
4405: LD_EXP 1
4409: ST_TO_ADDR
// preparesoldier ( sex_male , 5 ) ;
4410: LD_INT 1
4412: PPUSH
4413: LD_INT 5
4415: PPUSH
4416: CALL_OW 381
// hc_sex = sex_male ;
4420: LD_ADDR_OWVAR 27
4424: PUSH
4425: LD_INT 1
4427: ST_TO_ADDR
// ruhsold6 = createhuman ;
4428: LD_ADDR_LOC 38
4432: PUSH
4433: CALL_OW 44
4437: ST_TO_ADDR
// preparesoldier ( sex_male , 5 ) ;
4438: LD_INT 1
4440: PPUSH
4441: LD_INT 5
4443: PPUSH
4444: CALL_OW 381
// ruhsold7 = createhuman ;
4448: LD_ADDR_LOC 39
4452: PUSH
4453: CALL_OW 44
4457: ST_TO_ADDR
// case difficulty of 1 :
4458: LD_OWVAR 67
4462: PUSH
4463: LD_INT 1
4465: DOUBLE
4466: EQUAL
4467: IFTRUE 4471
4469: GO 4484
4471: POP
// preparemechanic ( sex_female , 3 ) ; 2 :
4472: LD_INT 2
4474: PPUSH
4475: LD_INT 3
4477: PPUSH
4478: CALL_OW 383
4482: GO 4527
4484: LD_INT 2
4486: DOUBLE
4487: EQUAL
4488: IFTRUE 4492
4490: GO 4505
4492: POP
// preparemechanic ( sex_female , 3 ) ; 3 :
4493: LD_INT 2
4495: PPUSH
4496: LD_INT 3
4498: PPUSH
4499: CALL_OW 383
4503: GO 4527
4505: LD_INT 3
4507: DOUBLE
4508: EQUAL
4509: IFTRUE 4513
4511: GO 4526
4513: POP
// preparemechanic ( sex_female , 4 ) ; end ;
4514: LD_INT 2
4516: PPUSH
4517: LD_INT 4
4519: PPUSH
4520: CALL_OW 383
4524: GO 4527
4526: POP
// ruhmech5 = createhuman ;
4527: LD_ADDR_LOC 43
4531: PUSH
4532: CALL_OW 44
4536: ST_TO_ADDR
// case difficulty of 1 :
4537: LD_OWVAR 67
4541: PUSH
4542: LD_INT 1
4544: DOUBLE
4545: EQUAL
4546: IFTRUE 4550
4548: GO 4569
4550: POP
// begin vc_chassis = ru_medium_wheeled ;
4551: LD_ADDR_OWVAR 37
4555: PUSH
4556: LD_INT 21
4558: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
4559: LD_ADDR_OWVAR 40
4563: PUSH
4564: LD_INT 42
4566: ST_TO_ADDR
// end ; 2 :
4567: GO 4624
4569: LD_INT 2
4571: DOUBLE
4572: EQUAL
4573: IFTRUE 4577
4575: GO 4596
4577: POP
// begin vc_chassis = ru_medium_wheeled ;
4578: LD_ADDR_OWVAR 37
4582: PUSH
4583: LD_INT 21
4585: ST_TO_ADDR
// vc_weapon = ru_gun ;
4586: LD_ADDR_OWVAR 40
4590: PUSH
4591: LD_INT 44
4593: ST_TO_ADDR
// end ; 3 :
4594: GO 4624
4596: LD_INT 3
4598: DOUBLE
4599: EQUAL
4600: IFTRUE 4604
4602: GO 4623
4604: POP
// begin vc_chassis = ru_heavy_wheeled ;
4605: LD_ADDR_OWVAR 37
4609: PUSH
4610: LD_INT 23
4612: ST_TO_ADDR
// vc_weapon = ru_gun ;
4613: LD_ADDR_OWVAR 40
4617: PUSH
4618: LD_INT 44
4620: ST_TO_ADDR
// end ; end ;
4621: GO 4624
4623: POP
// vc_control = control_computer ;
4624: LD_ADDR_OWVAR 38
4628: PUSH
4629: LD_INT 3
4631: ST_TO_ADDR
// vc_engine = engine_combustion ;
4632: LD_ADDR_OWVAR 39
4636: PUSH
4637: LD_INT 1
4639: ST_TO_ADDR
// ruv3 = createvehicle ;
4640: LD_ADDR_LOC 40
4644: PUSH
4645: CALL_OW 45
4649: ST_TO_ADDR
// setdir ( ruv3 , 5 ) ;
4650: LD_LOC 40
4654: PPUSH
4655: LD_INT 5
4657: PPUSH
4658: CALL_OW 233
// placeunitxy ( ruv3 , 119 , 91 , false ) ;
4662: LD_LOC 40
4666: PPUSH
4667: LD_INT 119
4669: PPUSH
4670: LD_INT 91
4672: PPUSH
4673: LD_INT 0
4675: PPUSH
4676: CALL_OW 48
// case difficulty of 1 :
4680: LD_OWVAR 67
4684: PUSH
4685: LD_INT 1
4687: DOUBLE
4688: EQUAL
4689: IFTRUE 4693
4691: GO 4712
4693: POP
// begin vc_chassis = ru_medium_wheeled ;
4694: LD_ADDR_OWVAR 37
4698: PUSH
4699: LD_INT 21
4701: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
4702: LD_ADDR_OWVAR 40
4706: PUSH
4707: LD_INT 42
4709: ST_TO_ADDR
// end ; 2 :
4710: GO 4767
4712: LD_INT 2
4714: DOUBLE
4715: EQUAL
4716: IFTRUE 4720
4718: GO 4739
4720: POP
// begin vc_chassis = ru_medium_wheeled ;
4721: LD_ADDR_OWVAR 37
4725: PUSH
4726: LD_INT 21
4728: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
4729: LD_ADDR_OWVAR 40
4733: PUSH
4734: LD_INT 43
4736: ST_TO_ADDR
// end ; 3 :
4737: GO 4767
4739: LD_INT 3
4741: DOUBLE
4742: EQUAL
4743: IFTRUE 4747
4745: GO 4766
4747: POP
// begin vc_chassis = ru_medium_wheeled ;
4748: LD_ADDR_OWVAR 37
4752: PUSH
4753: LD_INT 21
4755: ST_TO_ADDR
// vc_weapon = ru_gun ;
4756: LD_ADDR_OWVAR 40
4760: PUSH
4761: LD_INT 44
4763: ST_TO_ADDR
// end ; end ;
4764: GO 4767
4766: POP
// vc_control = control_manual ;
4767: LD_ADDR_OWVAR 38
4771: PUSH
4772: LD_INT 1
4774: ST_TO_ADDR
// vc_engine = engine_combustion ;
4775: LD_ADDR_OWVAR 39
4779: PUSH
4780: LD_INT 1
4782: ST_TO_ADDR
// ruv4 = createvehicle ;
4783: LD_ADDR_LOC 42
4787: PUSH
4788: CALL_OW 45
4792: ST_TO_ADDR
// setdir ( ruv4 , 5 ) ;
4793: LD_LOC 42
4797: PPUSH
4798: LD_INT 5
4800: PPUSH
4801: CALL_OW 233
// placeunitxy ( ruv4 , 123 , 94 , false ) ;
4805: LD_LOC 42
4809: PPUSH
4810: LD_INT 123
4812: PPUSH
4813: LD_INT 94
4815: PPUSH
4816: LD_INT 0
4818: PPUSH
4819: CALL_OW 48
// placehumaninunit ( ruhmech5 , ruv4 ) ;
4823: LD_LOC 43
4827: PPUSH
4828: LD_LOC 42
4832: PPUSH
4833: CALL_OW 52
// setdir ( ruhsold6 , 5 ) ;
4837: LD_LOC 38
4841: PPUSH
4842: LD_INT 5
4844: PPUSH
4845: CALL_OW 233
// setdir ( ruhsold7 , 5 ) ;
4849: LD_LOC 39
4853: PPUSH
4854: LD_INT 5
4856: PPUSH
4857: CALL_OW 233
// placeunitxyr ( ruhsold6 , 121 , 93 , 3 , false ) ;
4861: LD_LOC 38
4865: PPUSH
4866: LD_INT 121
4868: PPUSH
4869: LD_INT 93
4871: PPUSH
4872: LD_INT 3
4874: PPUSH
4875: LD_INT 0
4877: PPUSH
4878: CALL_OW 50
// placeunitxyr ( ruhsold7 , 121 , 93 , 3 , false ) ;
4882: LD_LOC 39
4886: PPUSH
4887: LD_INT 121
4889: PPUSH
4890: LD_INT 93
4892: PPUSH
4893: LD_INT 3
4895: PPUSH
4896: LD_INT 0
4898: PPUSH
4899: CALL_OW 50
// manage_prebytek ( 2 ) ;
4903: LD_INT 2
4905: PPUSH
4906: CALL 3852 0 1
// rusove0 = rusove0 union [ ruhsold6 , ruhsold7 , ruv3 , ruv4 ] ;
4910: LD_ADDR_EXP 14
4914: PUSH
4915: LD_EXP 14
4919: PUSH
4920: LD_LOC 38
4924: PUSH
4925: LD_LOC 39
4929: PUSH
4930: LD_LOC 40
4934: PUSH
4935: LD_LOC 42
4939: PUSH
4940: EMPTY
4941: LIST
4942: LIST
4943: LIST
4944: LIST
4945: UNION
4946: ST_TO_ADDR
// comagressivemove ( rusove0 , 74 , 67 ) ;
4947: LD_EXP 14
4951: PPUSH
4952: LD_INT 74
4954: PPUSH
4955: LD_INT 67
4957: PPUSH
4958: CALL_OW 114
// end ; end ;
4962: END
// every 0 0$1 + 6 6$55 trigger ( t2rest <= 0 ) and ( not ( unitfilter ( rusove0 , [ [ f_ok ] ] ) diff filterunitsinarea ( wayarea1 , [ [ f_side , rus ] ] ) ) ) do
4963: LD_LOC 24
4967: PUSH
4968: LD_INT 0
4970: LESSEQUAL
4971: PUSH
4972: LD_EXP 14
4976: PPUSH
4977: LD_INT 50
4979: PUSH
4980: EMPTY
4981: LIST
4982: PUSH
4983: EMPTY
4984: LIST
4985: PPUSH
4986: CALL_OW 72
4990: PUSH
4991: LD_INT 3
4993: PPUSH
4994: LD_INT 22
4996: PUSH
4997: LD_EXP 1
5001: PUSH
5002: EMPTY
5003: LIST
5004: LIST
5005: PUSH
5006: EMPTY
5007: LIST
5008: PPUSH
5009: CALL_OW 70
5013: DIFF
5014: NOT
5015: AND
5016: IFFALSE 5190
5018: GO 5020
5020: DISABLE
// begin comagressivemove ( rusove0 , 57 , 41 ) ;
5021: LD_EXP 14
5025: PPUSH
5026: LD_INT 57
5028: PPUSH
5029: LD_INT 41
5031: PPUSH
5032: CALL_OW 114
// wait ( 0 0$20 ) ;
5036: LD_INT 700
5038: PPUSH
5039: CALL_OW 67
// comagressivemove ( rusove0 , 47 , 38 ) ;
5043: LD_EXP 14
5047: PPUSH
5048: LD_INT 47
5050: PPUSH
5051: LD_INT 38
5053: PPUSH
5054: CALL_OW 114
// wait ( 0 0$10 ) ;
5058: LD_INT 350
5060: PPUSH
5061: CALL_OW 67
// comagressivemove ( rusove0 , 64 , 38 ) ;
5065: LD_EXP 14
5069: PPUSH
5070: LD_INT 64
5072: PPUSH
5073: LD_INT 38
5075: PPUSH
5076: CALL_OW 114
// wait ( 0 0$10 ) ;
5080: LD_INT 350
5082: PPUSH
5083: CALL_OW 67
// comagressivemove ( rusove0 , 45 , 29 ) ;
5087: LD_EXP 14
5091: PPUSH
5092: LD_INT 45
5094: PPUSH
5095: LD_INT 29
5097: PPUSH
5098: CALL_OW 114
// wait ( 0 0$7 ) ;
5102: LD_INT 245
5104: PPUSH
5105: CALL_OW 67
// comagressivemove ( rusove0 , 45 , 20 ) ;
5109: LD_EXP 14
5113: PPUSH
5114: LD_INT 45
5116: PPUSH
5117: LD_INT 20
5119: PPUSH
5120: CALL_OW 114
// wait ( 0 0$10 ) ;
5124: LD_INT 350
5126: PPUSH
5127: CALL_OW 67
// comagressivemove ( rusove0 , 56 , 20 ) ;
5131: LD_EXP 14
5135: PPUSH
5136: LD_INT 56
5138: PPUSH
5139: LD_INT 20
5141: PPUSH
5142: CALL_OW 114
// wait ( 0 0$7 ) ;
5146: LD_INT 245
5148: PPUSH
5149: CALL_OW 67
// comagressivemove ( rusove0 , 48 , 15 ) ;
5153: LD_EXP 14
5157: PPUSH
5158: LD_INT 48
5160: PPUSH
5161: LD_INT 15
5163: PPUSH
5164: CALL_OW 114
// wait ( 0 0$10 ) ;
5168: LD_INT 350
5170: PPUSH
5171: CALL_OW 67
// comagressivemove ( rusove0 , 52 , 9 ) ;
5175: LD_EXP 14
5179: PPUSH
5180: LD_INT 52
5182: PPUSH
5183: LD_INT 9
5185: PPUSH
5186: CALL_OW 114
// end ;
5190: END
// var ruhsold8 , ruhsold9 ; var ruv5 , ruhmech6 , ruv6 , ruhmech7 ; every 11 11$30 do
5191: GO 5193
5193: DISABLE
// begin if retreat >= 0 then
5194: LD_EXP 5
5198: PUSH
5199: LD_INT 0
5201: GREATEREQUAL
5202: IFFALSE 5206
// exit ;
5204: GO 5811
// if debug then
5206: LD_EXP 13
5210: IFFALSE 5219
// msg ( utok 3 v 11:30 ) ;
5212: LD_STRING utok 3 v 11:30
5214: PPUSH
5215: CALL_OW 100
// rusove0 = unitfilter ( rusove0 , [ [ f_ok ] ] ) ;
5219: LD_ADDR_EXP 14
5223: PUSH
5224: LD_EXP 14
5228: PPUSH
5229: LD_INT 50
5231: PUSH
5232: EMPTY
5233: LIST
5234: PUSH
5235: EMPTY
5236: LIST
5237: PPUSH
5238: CALL_OW 72
5242: ST_TO_ADDR
// uc_nation = nation_russian ;
5243: LD_ADDR_OWVAR 21
5247: PUSH
5248: LD_INT 3
5250: ST_TO_ADDR
// uc_side = rus ;
5251: LD_ADDR_OWVAR 20
5255: PUSH
5256: LD_EXP 1
5260: ST_TO_ADDR
// preparesoldier ( sex_male , 5 ) ;
5261: LD_INT 1
5263: PPUSH
5264: LD_INT 5
5266: PPUSH
5267: CALL_OW 381
// ruhsold8 = createhuman ;
5271: LD_ADDR_LOC 44
5275: PUSH
5276: CALL_OW 44
5280: ST_TO_ADDR
// preparesoldier ( sex_female , 6 ) ;
5281: LD_INT 2
5283: PPUSH
5284: LD_INT 6
5286: PPUSH
5287: CALL_OW 381
// ruhsold9 = createhuman ;
5291: LD_ADDR_LOC 45
5295: PUSH
5296: CALL_OW 44
5300: ST_TO_ADDR
// case difficulty of 1 :
5301: LD_OWVAR 67
5305: PUSH
5306: LD_INT 1
5308: DOUBLE
5309: EQUAL
5310: IFTRUE 5314
5312: GO 5327
5314: POP
// preparemechanic ( sex_male , 3 ) ; 2 :
5315: LD_INT 1
5317: PPUSH
5318: LD_INT 3
5320: PPUSH
5321: CALL_OW 383
5325: GO 5370
5327: LD_INT 2
5329: DOUBLE
5330: EQUAL
5331: IFTRUE 5335
5333: GO 5348
5335: POP
// preparemechanic ( sex_male , 4 ) ; 3 :
5336: LD_INT 1
5338: PPUSH
5339: LD_INT 4
5341: PPUSH
5342: CALL_OW 383
5346: GO 5370
5348: LD_INT 3
5350: DOUBLE
5351: EQUAL
5352: IFTRUE 5356
5354: GO 5369
5356: POP
// preparemechanic ( sex_male , 5 ) ; end ;
5357: LD_INT 1
5359: PPUSH
5360: LD_INT 5
5362: PPUSH
5363: CALL_OW 383
5367: GO 5370
5369: POP
// ruhmech7 = createhuman ;
5370: LD_ADDR_LOC 49
5374: PUSH
5375: CALL_OW 44
5379: ST_TO_ADDR
// case difficulty of 1 :
5380: LD_OWVAR 67
5384: PUSH
5385: LD_INT 1
5387: DOUBLE
5388: EQUAL
5389: IFTRUE 5393
5391: GO 5412
5393: POP
// begin vc_chassis = ru_medium_wheeled ;
5394: LD_ADDR_OWVAR 37
5398: PUSH
5399: LD_INT 21
5401: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
5402: LD_ADDR_OWVAR 40
5406: PUSH
5407: LD_INT 42
5409: ST_TO_ADDR
// end ; 2 :
5410: GO 5467
5412: LD_INT 2
5414: DOUBLE
5415: EQUAL
5416: IFTRUE 5420
5418: GO 5439
5420: POP
// begin vc_chassis = ru_medium_wheeled ;
5421: LD_ADDR_OWVAR 37
5425: PUSH
5426: LD_INT 21
5428: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
5429: LD_ADDR_OWVAR 40
5433: PUSH
5434: LD_INT 43
5436: ST_TO_ADDR
// end ; 3 :
5437: GO 5467
5439: LD_INT 3
5441: DOUBLE
5442: EQUAL
5443: IFTRUE 5447
5445: GO 5466
5447: POP
// begin vc_chassis = ru_heavy_wheeled ;
5448: LD_ADDR_OWVAR 37
5452: PUSH
5453: LD_INT 23
5455: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
5456: LD_ADDR_OWVAR 40
5460: PUSH
5461: LD_INT 43
5463: ST_TO_ADDR
// end ; end ;
5464: GO 5467
5466: POP
// vc_control = control_computer ;
5467: LD_ADDR_OWVAR 38
5471: PUSH
5472: LD_INT 3
5474: ST_TO_ADDR
// vc_engine = engine_combustion ;
5475: LD_ADDR_OWVAR 39
5479: PUSH
5480: LD_INT 1
5482: ST_TO_ADDR
// ruv5 = createvehicle ;
5483: LD_ADDR_LOC 46
5487: PUSH
5488: CALL_OW 45
5492: ST_TO_ADDR
// setdir ( ruv5 , 5 ) ;
5493: LD_LOC 46
5497: PPUSH
5498: LD_INT 5
5500: PPUSH
5501: CALL_OW 233
// placeunitxyr ( ruv5 , 119 , 91 , 5 , false ) ;
5505: LD_LOC 46
5509: PPUSH
5510: LD_INT 119
5512: PPUSH
5513: LD_INT 91
5515: PPUSH
5516: LD_INT 5
5518: PPUSH
5519: LD_INT 0
5521: PPUSH
5522: CALL_OW 50
// case difficulty of 1 :
5526: LD_OWVAR 67
5530: PUSH
5531: LD_INT 1
5533: DOUBLE
5534: EQUAL
5535: IFTRUE 5539
5537: GO 5558
5539: POP
// begin vc_chassis = ru_medium_wheeled ;
5540: LD_ADDR_OWVAR 37
5544: PUSH
5545: LD_INT 21
5547: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
5548: LD_ADDR_OWVAR 40
5552: PUSH
5553: LD_INT 43
5555: ST_TO_ADDR
// end ; 2 :
5556: GO 5613
5558: LD_INT 2
5560: DOUBLE
5561: EQUAL
5562: IFTRUE 5566
5564: GO 5585
5566: POP
// begin vc_chassis = ru_medium_wheeled ;
5567: LD_ADDR_OWVAR 37
5571: PUSH
5572: LD_INT 21
5574: ST_TO_ADDR
// vc_weapon = ru_gun ;
5575: LD_ADDR_OWVAR 40
5579: PUSH
5580: LD_INT 44
5582: ST_TO_ADDR
// end ; 3 :
5583: GO 5613
5585: LD_INT 3
5587: DOUBLE
5588: EQUAL
5589: IFTRUE 5593
5591: GO 5612
5593: POP
// begin vc_chassis = ru_heavy_wheeled ;
5594: LD_ADDR_OWVAR 37
5598: PUSH
5599: LD_INT 23
5601: ST_TO_ADDR
// vc_weapon = ru_heavy_gun ;
5602: LD_ADDR_OWVAR 40
5606: PUSH
5607: LD_INT 46
5609: ST_TO_ADDR
// end ; end ;
5610: GO 5613
5612: POP
// vc_control = control_manual ;
5613: LD_ADDR_OWVAR 38
5617: PUSH
5618: LD_INT 1
5620: ST_TO_ADDR
// vc_engine = engine_combustion ;
5621: LD_ADDR_OWVAR 39
5625: PUSH
5626: LD_INT 1
5628: ST_TO_ADDR
// ruv6 = createvehicle ;
5629: LD_ADDR_LOC 48
5633: PUSH
5634: CALL_OW 45
5638: ST_TO_ADDR
// setdir ( ruv6 , 5 ) ;
5639: LD_LOC 48
5643: PPUSH
5644: LD_INT 5
5646: PPUSH
5647: CALL_OW 233
// placeunitxyr ( ruv6 , 123 , 94 , 5 , false ) ;
5651: LD_LOC 48
5655: PPUSH
5656: LD_INT 123
5658: PPUSH
5659: LD_INT 94
5661: PPUSH
5662: LD_INT 5
5664: PPUSH
5665: LD_INT 0
5667: PPUSH
5668: CALL_OW 50
// placehumaninunit ( ruhmech7 , ruv6 ) ;
5672: LD_LOC 49
5676: PPUSH
5677: LD_LOC 48
5681: PPUSH
5682: CALL_OW 52
// setdir ( ruhsold8 , 5 ) ;
5686: LD_LOC 44
5690: PPUSH
5691: LD_INT 5
5693: PPUSH
5694: CALL_OW 233
// setdir ( ruhsold9 , 5 ) ;
5698: LD_LOC 45
5702: PPUSH
5703: LD_INT 5
5705: PPUSH
5706: CALL_OW 233
// placeunitxyr ( ruhsold8 , 121 , 93 , 3 , false ) ;
5710: LD_LOC 44
5714: PPUSH
5715: LD_INT 121
5717: PPUSH
5718: LD_INT 93
5720: PPUSH
5721: LD_INT 3
5723: PPUSH
5724: LD_INT 0
5726: PPUSH
5727: CALL_OW 50
// placeunitxyr ( ruhsold9 , 121 , 93 , 3 , false ) ;
5731: LD_LOC 45
5735: PPUSH
5736: LD_INT 121
5738: PPUSH
5739: LD_INT 93
5741: PPUSH
5742: LD_INT 3
5744: PPUSH
5745: LD_INT 0
5747: PPUSH
5748: CALL_OW 50
// manage_prebytek ( 2 ) ;
5752: LD_INT 2
5754: PPUSH
5755: CALL 3852 0 1
// rusove0 = rusove0 union [ ruhsold8 , ruhsold9 , ruv5 , ruv6 ] ;
5759: LD_ADDR_EXP 14
5763: PUSH
5764: LD_EXP 14
5768: PUSH
5769: LD_LOC 44
5773: PUSH
5774: LD_LOC 45
5778: PUSH
5779: LD_LOC 46
5783: PUSH
5784: LD_LOC 48
5788: PUSH
5789: EMPTY
5790: LIST
5791: LIST
5792: LIST
5793: LIST
5794: UNION
5795: ST_TO_ADDR
// comagressivemove ( rusove0 , 71 , 63 ) ;
5796: LD_EXP 14
5800: PPUSH
5801: LD_INT 71
5803: PPUSH
5804: LD_INT 63
5806: PPUSH
5807: CALL_OW 114
// end ;
5811: END
// every 0 0$1 + 11 11$55 trigger not ( unitfilter ( rusove0 , [ [ f_ok ] ] ) diff filterunitsinarea ( wayarea1 , [ [ f_side , rus ] ] ) ) do
5812: LD_EXP 14
5816: PPUSH
5817: LD_INT 50
5819: PUSH
5820: EMPTY
5821: LIST
5822: PUSH
5823: EMPTY
5824: LIST
5825: PPUSH
5826: CALL_OW 72
5830: PUSH
5831: LD_INT 3
5833: PPUSH
5834: LD_INT 22
5836: PUSH
5837: LD_EXP 1
5841: PUSH
5842: EMPTY
5843: LIST
5844: LIST
5845: PUSH
5846: EMPTY
5847: LIST
5848: PPUSH
5849: CALL_OW 70
5853: DIFF
5854: NOT
5855: IFFALSE 6029
5857: GO 5859
5859: DISABLE
// begin comagressivemove ( rusove0 , 57 , 41 ) ;
5860: LD_EXP 14
5864: PPUSH
5865: LD_INT 57
5867: PPUSH
5868: LD_INT 41
5870: PPUSH
5871: CALL_OW 114
// wait ( 0 0$10 ) ;
5875: LD_INT 350
5877: PPUSH
5878: CALL_OW 67
// comagressivemove ( rusove0 , 47 , 38 ) ;
5882: LD_EXP 14
5886: PPUSH
5887: LD_INT 47
5889: PPUSH
5890: LD_INT 38
5892: PPUSH
5893: CALL_OW 114
// wait ( 0 0$5 ) ;
5897: LD_INT 175
5899: PPUSH
5900: CALL_OW 67
// comagressivemove ( rusove0 , 64 , 38 ) ;
5904: LD_EXP 14
5908: PPUSH
5909: LD_INT 64
5911: PPUSH
5912: LD_INT 38
5914: PPUSH
5915: CALL_OW 114
// wait ( 0 0$10 ) ;
5919: LD_INT 350
5921: PPUSH
5922: CALL_OW 67
// comagressivemove ( rusove0 , 45 , 29 ) ;
5926: LD_EXP 14
5930: PPUSH
5931: LD_INT 45
5933: PPUSH
5934: LD_INT 29
5936: PPUSH
5937: CALL_OW 114
// wait ( 0 0$5 ) ;
5941: LD_INT 175
5943: PPUSH
5944: CALL_OW 67
// comagressivemove ( rusove0 , 45 , 20 ) ;
5948: LD_EXP 14
5952: PPUSH
5953: LD_INT 45
5955: PPUSH
5956: LD_INT 20
5958: PPUSH
5959: CALL_OW 114
// wait ( 0 0$10 ) ;
5963: LD_INT 350
5965: PPUSH
5966: CALL_OW 67
// comagressivemove ( rusove0 , 56 , 20 ) ;
5970: LD_EXP 14
5974: PPUSH
5975: LD_INT 56
5977: PPUSH
5978: LD_INT 20
5980: PPUSH
5981: CALL_OW 114
// wait ( 0 0$5 ) ;
5985: LD_INT 175
5987: PPUSH
5988: CALL_OW 67
// comagressivemove ( rusove0 , 48 , 15 ) ;
5992: LD_EXP 14
5996: PPUSH
5997: LD_INT 48
5999: PPUSH
6000: LD_INT 15
6002: PPUSH
6003: CALL_OW 114
// wait ( 0 0$10 ) ;
6007: LD_INT 350
6009: PPUSH
6010: CALL_OW 67
// comagressivemove ( rusove0 , 52 , 9 ) ;
6014: LD_EXP 14
6018: PPUSH
6019: LD_INT 52
6021: PPUSH
6022: LD_INT 9
6024: PPUSH
6025: CALL_OW 114
// end ;
6029: END
// var ruhsolda , ruhsoldb ; var ruv7 , ruhmech8 , ruv8 ; every 15 15$0 do
6030: GO 6032
6032: DISABLE
// begin if retreat >= 0 then
6033: LD_EXP 5
6037: PUSH
6038: LD_INT 0
6040: GREATEREQUAL
6041: IFFALSE 6045
// exit ;
6043: GO 6674
// if debug then
6045: LD_EXP 13
6049: IFFALSE 6058
// msg ( utok 4 v 15:00 ) ;
6051: LD_STRING utok 4 v 15:00
6053: PPUSH
6054: CALL_OW 100
// rusove0 = unitfilter ( rusove0 , [ [ f_ok ] ] ) ;
6058: LD_ADDR_EXP 14
6062: PUSH
6063: LD_EXP 14
6067: PPUSH
6068: LD_INT 50
6070: PUSH
6071: EMPTY
6072: LIST
6073: PUSH
6074: EMPTY
6075: LIST
6076: PPUSH
6077: CALL_OW 72
6081: ST_TO_ADDR
// uc_nation = nation_russian ;
6082: LD_ADDR_OWVAR 21
6086: PUSH
6087: LD_INT 3
6089: ST_TO_ADDR
// uc_side = rus ;
6090: LD_ADDR_OWVAR 20
6094: PUSH
6095: LD_EXP 1
6099: ST_TO_ADDR
// preparesoldier ( sex_male , 5 ) ;
6100: LD_INT 1
6102: PPUSH
6103: LD_INT 5
6105: PPUSH
6106: CALL_OW 381
// hc_name =  ;
6110: LD_ADDR_OWVAR 26
6114: PUSH
6115: LD_STRING 
6117: ST_TO_ADDR
// ruhsolda = createhuman ;
6118: LD_ADDR_LOC 50
6122: PUSH
6123: CALL_OW 44
6127: ST_TO_ADDR
// preparesoldier ( sex_female , 6 ) ;
6128: LD_INT 2
6130: PPUSH
6131: LD_INT 6
6133: PPUSH
6134: CALL_OW 381
// hc_name =  ;
6138: LD_ADDR_OWVAR 26
6142: PUSH
6143: LD_STRING 
6145: ST_TO_ADDR
// ruhsoldb = createhuman ;
6146: LD_ADDR_LOC 51
6150: PUSH
6151: CALL_OW 44
6155: ST_TO_ADDR
// case difficulty of 1 :
6156: LD_OWVAR 67
6160: PUSH
6161: LD_INT 1
6163: DOUBLE
6164: EQUAL
6165: IFTRUE 6169
6167: GO 6182
6169: POP
// preparemechanic ( sex_male , 3 ) ; 2 :
6170: LD_INT 1
6172: PPUSH
6173: LD_INT 3
6175: PPUSH
6176: CALL_OW 383
6180: GO 6225
6182: LD_INT 2
6184: DOUBLE
6185: EQUAL
6186: IFTRUE 6190
6188: GO 6203
6190: POP
// preparemechanic ( sex_male , 4 ) ; 3 :
6191: LD_INT 1
6193: PPUSH
6194: LD_INT 4
6196: PPUSH
6197: CALL_OW 383
6201: GO 6225
6203: LD_INT 3
6205: DOUBLE
6206: EQUAL
6207: IFTRUE 6211
6209: GO 6224
6211: POP
// preparemechanic ( sex_male , 5 ) ; end ;
6212: LD_INT 1
6214: PPUSH
6215: LD_INT 5
6217: PPUSH
6218: CALL_OW 383
6222: GO 6225
6224: POP
// hc_name =  ;
6225: LD_ADDR_OWVAR 26
6229: PUSH
6230: LD_STRING 
6232: ST_TO_ADDR
// ruhmech8 = createhuman ;
6233: LD_ADDR_LOC 53
6237: PUSH
6238: CALL_OW 44
6242: ST_TO_ADDR
// case difficulty of 1 :
6243: LD_OWVAR 67
6247: PUSH
6248: LD_INT 1
6250: DOUBLE
6251: EQUAL
6252: IFTRUE 6256
6254: GO 6275
6256: POP
// begin vc_chassis = ru_medium_wheeled ;
6257: LD_ADDR_OWVAR 37
6261: PUSH
6262: LD_INT 21
6264: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
6265: LD_ADDR_OWVAR 40
6269: PUSH
6270: LD_INT 42
6272: ST_TO_ADDR
// end ; 2 :
6273: GO 6330
6275: LD_INT 2
6277: DOUBLE
6278: EQUAL
6279: IFTRUE 6283
6281: GO 6302
6283: POP
// begin vc_chassis = ru_medium_wheeled ;
6284: LD_ADDR_OWVAR 37
6288: PUSH
6289: LD_INT 21
6291: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
6292: LD_ADDR_OWVAR 40
6296: PUSH
6297: LD_INT 43
6299: ST_TO_ADDR
// end ; 3 :
6300: GO 6330
6302: LD_INT 3
6304: DOUBLE
6305: EQUAL
6306: IFTRUE 6310
6308: GO 6329
6310: POP
// begin vc_chassis = ru_heavy_wheeled ;
6311: LD_ADDR_OWVAR 37
6315: PUSH
6316: LD_INT 23
6318: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
6319: LD_ADDR_OWVAR 40
6323: PUSH
6324: LD_INT 43
6326: ST_TO_ADDR
// end ; end ;
6327: GO 6330
6329: POP
// vc_control = control_manual ;
6330: LD_ADDR_OWVAR 38
6334: PUSH
6335: LD_INT 1
6337: ST_TO_ADDR
// vc_engine = engine_combustion ;
6338: LD_ADDR_OWVAR 39
6342: PUSH
6343: LD_INT 1
6345: ST_TO_ADDR
// ruv8 = createvehicle ;
6346: LD_ADDR_LOC 54
6350: PUSH
6351: CALL_OW 45
6355: ST_TO_ADDR
// setdir ( ruv8 , 5 ) ;
6356: LD_LOC 54
6360: PPUSH
6361: LD_INT 5
6363: PPUSH
6364: CALL_OW 233
// placeunitxyr ( ruv8 , 119 , 91 , 5 , false ) ;
6368: LD_LOC 54
6372: PPUSH
6373: LD_INT 119
6375: PPUSH
6376: LD_INT 91
6378: PPUSH
6379: LD_INT 5
6381: PPUSH
6382: LD_INT 0
6384: PPUSH
6385: CALL_OW 50
// placehumaninunit ( ruhmech8 , ruv8 ) ;
6389: LD_LOC 53
6393: PPUSH
6394: LD_LOC 54
6398: PPUSH
6399: CALL_OW 52
// case difficulty of 1 :
6403: LD_OWVAR 67
6407: PUSH
6408: LD_INT 1
6410: DOUBLE
6411: EQUAL
6412: IFTRUE 6416
6414: GO 6435
6416: POP
// begin vc_chassis = ru_medium_wheeled ;
6417: LD_ADDR_OWVAR 37
6421: PUSH
6422: LD_INT 21
6424: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
6425: LD_ADDR_OWVAR 40
6429: PUSH
6430: LD_INT 43
6432: ST_TO_ADDR
// end ; 2 :
6433: GO 6490
6435: LD_INT 2
6437: DOUBLE
6438: EQUAL
6439: IFTRUE 6443
6441: GO 6462
6443: POP
// begin vc_chassis = ru_medium_wheeled ;
6444: LD_ADDR_OWVAR 37
6448: PUSH
6449: LD_INT 21
6451: ST_TO_ADDR
// vc_weapon = ru_gun ;
6452: LD_ADDR_OWVAR 40
6456: PUSH
6457: LD_INT 44
6459: ST_TO_ADDR
// end ; 3 :
6460: GO 6490
6462: LD_INT 3
6464: DOUBLE
6465: EQUAL
6466: IFTRUE 6470
6468: GO 6489
6470: POP
// begin vc_chassis = ru_heavy_wheeled ;
6471: LD_ADDR_OWVAR 37
6475: PUSH
6476: LD_INT 23
6478: ST_TO_ADDR
// vc_weapon = ru_heavy_gun ;
6479: LD_ADDR_OWVAR 40
6483: PUSH
6484: LD_INT 46
6486: ST_TO_ADDR
// end ; end ;
6487: GO 6490
6489: POP
// vc_control = control_computer ;
6490: LD_ADDR_OWVAR 38
6494: PUSH
6495: LD_INT 3
6497: ST_TO_ADDR
// vc_engine = engine_combustion ;
6498: LD_ADDR_OWVAR 39
6502: PUSH
6503: LD_INT 1
6505: ST_TO_ADDR
// ruv7 = createvehicle ;
6506: LD_ADDR_LOC 52
6510: PUSH
6511: CALL_OW 45
6515: ST_TO_ADDR
// setdir ( ruv7 , 5 ) ;
6516: LD_LOC 52
6520: PPUSH
6521: LD_INT 5
6523: PPUSH
6524: CALL_OW 233
// placeunitxyr ( ruv7 , 123 , 94 , 5 , false ) ;
6528: LD_LOC 52
6532: PPUSH
6533: LD_INT 123
6535: PPUSH
6536: LD_INT 94
6538: PPUSH
6539: LD_INT 5
6541: PPUSH
6542: LD_INT 0
6544: PPUSH
6545: CALL_OW 50
// setdir ( ruhsolda , 5 ) ;
6549: LD_LOC 50
6553: PPUSH
6554: LD_INT 5
6556: PPUSH
6557: CALL_OW 233
// setdir ( ruhsoldb , 5 ) ;
6561: LD_LOC 51
6565: PPUSH
6566: LD_INT 5
6568: PPUSH
6569: CALL_OW 233
// placeunitxyr ( ruhsolda , 121 , 93 , 3 , false ) ;
6573: LD_LOC 50
6577: PPUSH
6578: LD_INT 121
6580: PPUSH
6581: LD_INT 93
6583: PPUSH
6584: LD_INT 3
6586: PPUSH
6587: LD_INT 0
6589: PPUSH
6590: CALL_OW 50
// placeunitxyr ( ruhsoldb , 121 , 93 , 3 , false ) ;
6594: LD_LOC 51
6598: PPUSH
6599: LD_INT 121
6601: PPUSH
6602: LD_INT 93
6604: PPUSH
6605: LD_INT 3
6607: PPUSH
6608: LD_INT 0
6610: PPUSH
6611: CALL_OW 50
// manage_prebytek ( 2 ) ;
6615: LD_INT 2
6617: PPUSH
6618: CALL 3852 0 1
// rusove0 = rusove0 union [ ruhsolda , ruhsoldb , ruv7 , ruv8 ] ;
6622: LD_ADDR_EXP 14
6626: PUSH
6627: LD_EXP 14
6631: PUSH
6632: LD_LOC 50
6636: PUSH
6637: LD_LOC 51
6641: PUSH
6642: LD_LOC 52
6646: PUSH
6647: LD_LOC 54
6651: PUSH
6652: EMPTY
6653: LIST
6654: LIST
6655: LIST
6656: LIST
6657: UNION
6658: ST_TO_ADDR
// comagressivemove ( rusove0 , 57 , 67 ) ;
6659: LD_EXP 14
6663: PPUSH
6664: LD_INT 57
6666: PPUSH
6667: LD_INT 67
6669: PPUSH
6670: CALL_OW 114
// end ;
6674: END
// every 0 0$1 + 15 15$25 trigger not ( unitfilter ( rusove0 , [ [ f_ok ] ] ) diff filterunitsinarea ( wayarea2 , [ [ f_side , rus ] ] ) ) do
6675: LD_EXP 14
6679: PPUSH
6680: LD_INT 50
6682: PUSH
6683: EMPTY
6684: LIST
6685: PUSH
6686: EMPTY
6687: LIST
6688: PPUSH
6689: CALL_OW 72
6693: PUSH
6694: LD_INT 9
6696: PPUSH
6697: LD_INT 22
6699: PUSH
6700: LD_EXP 1
6704: PUSH
6705: EMPTY
6706: LIST
6707: LIST
6708: PUSH
6709: EMPTY
6710: LIST
6711: PPUSH
6712: CALL_OW 70
6716: DIFF
6717: NOT
6718: IFFALSE 6892
6720: GO 6722
6722: DISABLE
// begin comagressivemove ( rusove0 , 57 , 41 ) ;
6723: LD_EXP 14
6727: PPUSH
6728: LD_INT 57
6730: PPUSH
6731: LD_INT 41
6733: PPUSH
6734: CALL_OW 114
// wait ( 0 0$10 ) ;
6738: LD_INT 350
6740: PPUSH
6741: CALL_OW 67
// comagressivemove ( rusove0 , 47 , 38 ) ;
6745: LD_EXP 14
6749: PPUSH
6750: LD_INT 47
6752: PPUSH
6753: LD_INT 38
6755: PPUSH
6756: CALL_OW 114
// wait ( 0 0$5 ) ;
6760: LD_INT 175
6762: PPUSH
6763: CALL_OW 67
// comagressivemove ( rusove0 , 64 , 38 ) ;
6767: LD_EXP 14
6771: PPUSH
6772: LD_INT 64
6774: PPUSH
6775: LD_INT 38
6777: PPUSH
6778: CALL_OW 114
// wait ( 0 0$10 ) ;
6782: LD_INT 350
6784: PPUSH
6785: CALL_OW 67
// comagressivemove ( rusove0 , 45 , 29 ) ;
6789: LD_EXP 14
6793: PPUSH
6794: LD_INT 45
6796: PPUSH
6797: LD_INT 29
6799: PPUSH
6800: CALL_OW 114
// wait ( 0 0$5 ) ;
6804: LD_INT 175
6806: PPUSH
6807: CALL_OW 67
// comagressivemove ( rusove0 , 45 , 20 ) ;
6811: LD_EXP 14
6815: PPUSH
6816: LD_INT 45
6818: PPUSH
6819: LD_INT 20
6821: PPUSH
6822: CALL_OW 114
// wait ( 0 0$10 ) ;
6826: LD_INT 350
6828: PPUSH
6829: CALL_OW 67
// comagressivemove ( rusove0 , 56 , 20 ) ;
6833: LD_EXP 14
6837: PPUSH
6838: LD_INT 56
6840: PPUSH
6841: LD_INT 20
6843: PPUSH
6844: CALL_OW 114
// wait ( 0 0$5 ) ;
6848: LD_INT 175
6850: PPUSH
6851: CALL_OW 67
// comagressivemove ( rusove0 , 48 , 15 ) ;
6855: LD_EXP 14
6859: PPUSH
6860: LD_INT 48
6862: PPUSH
6863: LD_INT 15
6865: PPUSH
6866: CALL_OW 114
// wait ( 0 0$10 ) ;
6870: LD_INT 350
6872: PPUSH
6873: CALL_OW 67
// comagressivemove ( rusove0 , 52 , 9 ) ;
6877: LD_EXP 14
6881: PPUSH
6882: LD_INT 52
6884: PPUSH
6885: LD_INT 9
6887: PPUSH
6888: CALL_OW 114
// end ;
6892: END
// var ruhsoldc , ruhsoldd ; var ruv9 , ruhmech9 , ruhmecha , ruva , ruvb ; every 21 21$0 do
6893: GO 6895
6895: DISABLE
// begin if retreat >= 0 then
6896: LD_EXP 5
6900: PUSH
6901: LD_INT 0
6903: GREATEREQUAL
6904: IFFALSE 6908
// exit ;
6906: GO 7808
// if debug then
6908: LD_EXP 13
6912: IFFALSE 6921
// msg ( utok 5 v 21:00 ) ;
6914: LD_STRING utok 5 v 21:00
6916: PPUSH
6917: CALL_OW 100
// rusove0 = unitfilter ( rusove0 , [ [ f_ok ] ] ) ;
6921: LD_ADDR_EXP 14
6925: PUSH
6926: LD_EXP 14
6930: PPUSH
6931: LD_INT 50
6933: PUSH
6934: EMPTY
6935: LIST
6936: PUSH
6937: EMPTY
6938: LIST
6939: PPUSH
6940: CALL_OW 72
6944: ST_TO_ADDR
// uc_nation = nation_russian ;
6945: LD_ADDR_OWVAR 21
6949: PUSH
6950: LD_INT 3
6952: ST_TO_ADDR
// uc_side = rus ;
6953: LD_ADDR_OWVAR 20
6957: PUSH
6958: LD_EXP 1
6962: ST_TO_ADDR
// preparesoldier ( sex_male , 5 ) ;
6963: LD_INT 1
6965: PPUSH
6966: LD_INT 5
6968: PPUSH
6969: CALL_OW 381
// hc_name =  ;
6973: LD_ADDR_OWVAR 26
6977: PUSH
6978: LD_STRING 
6980: ST_TO_ADDR
// ruhsoldc = createhuman ;
6981: LD_ADDR_LOC 55
6985: PUSH
6986: CALL_OW 44
6990: ST_TO_ADDR
// preparesoldier ( sex_female , 6 ) ;
6991: LD_INT 2
6993: PPUSH
6994: LD_INT 6
6996: PPUSH
6997: CALL_OW 381
// hc_name =  ;
7001: LD_ADDR_OWVAR 26
7005: PUSH
7006: LD_STRING 
7008: ST_TO_ADDR
// ruhsoldd = createhuman ;
7009: LD_ADDR_LOC 56
7013: PUSH
7014: CALL_OW 44
7018: ST_TO_ADDR
// case difficulty of 1 :
7019: LD_OWVAR 67
7023: PUSH
7024: LD_INT 1
7026: DOUBLE
7027: EQUAL
7028: IFTRUE 7032
7030: GO 7045
7032: POP
// preparemechanic ( sex_male , 3 ) ; 2 :
7033: LD_INT 1
7035: PPUSH
7036: LD_INT 3
7038: PPUSH
7039: CALL_OW 383
7043: GO 7088
7045: LD_INT 2
7047: DOUBLE
7048: EQUAL
7049: IFTRUE 7053
7051: GO 7066
7053: POP
// preparemechanic ( sex_male , 4 ) ; 3 :
7054: LD_INT 1
7056: PPUSH
7057: LD_INT 4
7059: PPUSH
7060: CALL_OW 383
7064: GO 7088
7066: LD_INT 3
7068: DOUBLE
7069: EQUAL
7070: IFTRUE 7074
7072: GO 7087
7074: POP
// preparemechanic ( sex_male , 5 ) ; end ;
7075: LD_INT 1
7077: PPUSH
7078: LD_INT 5
7080: PPUSH
7081: CALL_OW 383
7085: GO 7088
7087: POP
// hc_name =  ;
7088: LD_ADDR_OWVAR 26
7092: PUSH
7093: LD_STRING 
7095: ST_TO_ADDR
// ruhmech9 = createhuman ;
7096: LD_ADDR_LOC 58
7100: PUSH
7101: CALL_OW 44
7105: ST_TO_ADDR
// case difficulty of 2 :
7106: LD_OWVAR 67
7110: PUSH
7111: LD_INT 2
7113: DOUBLE
7114: EQUAL
7115: IFTRUE 7119
7117: GO 7132
7119: POP
// preparemechanic ( sex_female , 3 ) ; 3 :
7120: LD_INT 2
7122: PPUSH
7123: LD_INT 3
7125: PPUSH
7126: CALL_OW 383
7130: GO 7154
7132: LD_INT 3
7134: DOUBLE
7135: EQUAL
7136: IFTRUE 7140
7138: GO 7153
7140: POP
// preparemechanic ( sex_female , 5 ) ; end ;
7141: LD_INT 2
7143: PPUSH
7144: LD_INT 5
7146: PPUSH
7147: CALL_OW 383
7151: GO 7154
7153: POP
// hc_name =  ;
7154: LD_ADDR_OWVAR 26
7158: PUSH
7159: LD_STRING 
7161: ST_TO_ADDR
// if difficulty > 1 then
7162: LD_OWVAR 67
7166: PUSH
7167: LD_INT 1
7169: GREATER
7170: IFFALSE 7184
// ruhmecha = createhuman else
7172: LD_ADDR_LOC 59
7176: PUSH
7177: CALL_OW 44
7181: ST_TO_ADDR
7182: GO 7192
// ruhmecha = 0 ;
7184: LD_ADDR_LOC 59
7188: PUSH
7189: LD_INT 0
7191: ST_TO_ADDR
// case difficulty of 1 :
7192: LD_OWVAR 67
7196: PUSH
7197: LD_INT 1
7199: DOUBLE
7200: EQUAL
7201: IFTRUE 7205
7203: GO 7224
7205: POP
// begin vc_chassis = ru_medium_wheeled ;
7206: LD_ADDR_OWVAR 37
7210: PUSH
7211: LD_INT 21
7213: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
7214: LD_ADDR_OWVAR 40
7218: PUSH
7219: LD_INT 42
7221: ST_TO_ADDR
// end ; 2 :
7222: GO 7279
7224: LD_INT 2
7226: DOUBLE
7227: EQUAL
7228: IFTRUE 7232
7230: GO 7251
7232: POP
// begin vc_chassis = ru_medium_wheeled ;
7233: LD_ADDR_OWVAR 37
7237: PUSH
7238: LD_INT 21
7240: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
7241: LD_ADDR_OWVAR 40
7245: PUSH
7246: LD_INT 43
7248: ST_TO_ADDR
// end ; 3 :
7249: GO 7279
7251: LD_INT 3
7253: DOUBLE
7254: EQUAL
7255: IFTRUE 7259
7257: GO 7278
7259: POP
// begin vc_chassis = ru_medium_wheeled ;
7260: LD_ADDR_OWVAR 37
7264: PUSH
7265: LD_INT 21
7267: ST_TO_ADDR
// vc_weapon = ru_gun ;
7268: LD_ADDR_OWVAR 40
7272: PUSH
7273: LD_INT 44
7275: ST_TO_ADDR
// end ; end ;
7276: GO 7279
7278: POP
// vc_control = control_manual ;
7279: LD_ADDR_OWVAR 38
7283: PUSH
7284: LD_INT 1
7286: ST_TO_ADDR
// vc_engine = engine_combustion ;
7287: LD_ADDR_OWVAR 39
7291: PUSH
7292: LD_INT 1
7294: ST_TO_ADDR
// ruv9 = createvehicle ;
7295: LD_ADDR_LOC 57
7299: PUSH
7300: CALL_OW 45
7304: ST_TO_ADDR
// setdir ( ruv9 , 5 ) ;
7305: LD_LOC 57
7309: PPUSH
7310: LD_INT 5
7312: PPUSH
7313: CALL_OW 233
// placeunitxyr ( ruv9 , 119 , 91 , 5 , false ) ;
7317: LD_LOC 57
7321: PPUSH
7322: LD_INT 119
7324: PPUSH
7325: LD_INT 91
7327: PPUSH
7328: LD_INT 5
7330: PPUSH
7331: LD_INT 0
7333: PPUSH
7334: CALL_OW 50
// placehumaninunit ( ruhmech9 , ruv9 ) ;
7338: LD_LOC 58
7342: PPUSH
7343: LD_LOC 57
7347: PPUSH
7348: CALL_OW 52
// case difficulty of 2 :
7352: LD_OWVAR 67
7356: PUSH
7357: LD_INT 2
7359: DOUBLE
7360: EQUAL
7361: IFTRUE 7365
7363: GO 7384
7365: POP
// begin vc_chassis = ru_medium_wheeled ;
7366: LD_ADDR_OWVAR 37
7370: PUSH
7371: LD_INT 21
7373: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
7374: LD_ADDR_OWVAR 40
7378: PUSH
7379: LD_INT 43
7381: ST_TO_ADDR
// end ; 3 :
7382: GO 7412
7384: LD_INT 3
7386: DOUBLE
7387: EQUAL
7388: IFTRUE 7392
7390: GO 7411
7392: POP
// begin vc_chassis = ru_heavy_wheeled ;
7393: LD_ADDR_OWVAR 37
7397: PUSH
7398: LD_INT 23
7400: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
7401: LD_ADDR_OWVAR 40
7405: PUSH
7406: LD_INT 43
7408: ST_TO_ADDR
// end ; end ;
7409: GO 7412
7411: POP
// vc_control = control_manual ;
7412: LD_ADDR_OWVAR 38
7416: PUSH
7417: LD_INT 1
7419: ST_TO_ADDR
// vc_engine = engine_combustion ;
7420: LD_ADDR_OWVAR 39
7424: PUSH
7425: LD_INT 1
7427: ST_TO_ADDR
// if difficulty > 1 then
7428: LD_OWVAR 67
7432: PUSH
7433: LD_INT 1
7435: GREATER
7436: IFFALSE 7450
// ruva = createvehicle else
7438: LD_ADDR_LOC 60
7442: PUSH
7443: CALL_OW 45
7447: ST_TO_ADDR
7448: GO 7458
// ruva = 0 ;
7450: LD_ADDR_LOC 60
7454: PUSH
7455: LD_INT 0
7457: ST_TO_ADDR
// setdir ( ruva , 5 ) ;
7458: LD_LOC 60
7462: PPUSH
7463: LD_INT 5
7465: PPUSH
7466: CALL_OW 233
// placeunitxyr ( ruva , 119 , 91 , 5 , false ) ;
7470: LD_LOC 60
7474: PPUSH
7475: LD_INT 119
7477: PPUSH
7478: LD_INT 91
7480: PPUSH
7481: LD_INT 5
7483: PPUSH
7484: LD_INT 0
7486: PPUSH
7487: CALL_OW 50
// placehumaninunit ( ruhmecha , ruva ) ;
7491: LD_LOC 59
7495: PPUSH
7496: LD_LOC 60
7500: PPUSH
7501: CALL_OW 52
// case difficulty of 1 :
7505: LD_OWVAR 67
7509: PUSH
7510: LD_INT 1
7512: DOUBLE
7513: EQUAL
7514: IFTRUE 7518
7516: GO 7537
7518: POP
// begin vc_chassis = ru_medium_wheeled ;
7519: LD_ADDR_OWVAR 37
7523: PUSH
7524: LD_INT 21
7526: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
7527: LD_ADDR_OWVAR 40
7531: PUSH
7532: LD_INT 43
7534: ST_TO_ADDR
// end ; 2 :
7535: GO 7592
7537: LD_INT 2
7539: DOUBLE
7540: EQUAL
7541: IFTRUE 7545
7543: GO 7564
7545: POP
// begin vc_chassis = ru_medium_wheeled ;
7546: LD_ADDR_OWVAR 37
7550: PUSH
7551: LD_INT 21
7553: ST_TO_ADDR
// vc_weapon = ru_gun ;
7554: LD_ADDR_OWVAR 40
7558: PUSH
7559: LD_INT 44
7561: ST_TO_ADDR
// end ; 3 :
7562: GO 7592
7564: LD_INT 3
7566: DOUBLE
7567: EQUAL
7568: IFTRUE 7572
7570: GO 7591
7572: POP
// begin vc_chassis = ru_heavy_wheeled ;
7573: LD_ADDR_OWVAR 37
7577: PUSH
7578: LD_INT 23
7580: ST_TO_ADDR
// vc_weapon = ru_heavy_gun ;
7581: LD_ADDR_OWVAR 40
7585: PUSH
7586: LD_INT 46
7588: ST_TO_ADDR
// end ; end ;
7589: GO 7592
7591: POP
// vc_control = control_computer ;
7592: LD_ADDR_OWVAR 38
7596: PUSH
7597: LD_INT 3
7599: ST_TO_ADDR
// vc_engine = engine_combustion ;
7600: LD_ADDR_OWVAR 39
7604: PUSH
7605: LD_INT 1
7607: ST_TO_ADDR
// ruvb = createvehicle ;
7608: LD_ADDR_LOC 61
7612: PUSH
7613: CALL_OW 45
7617: ST_TO_ADDR
// setdir ( ruvb , 5 ) ;
7618: LD_LOC 61
7622: PPUSH
7623: LD_INT 5
7625: PPUSH
7626: CALL_OW 233
// placeunitxyr ( ruvb , 123 , 94 , 5 , false ) ;
7630: LD_LOC 61
7634: PPUSH
7635: LD_INT 123
7637: PPUSH
7638: LD_INT 94
7640: PPUSH
7641: LD_INT 5
7643: PPUSH
7644: LD_INT 0
7646: PPUSH
7647: CALL_OW 50
// setdir ( ruhsoldc , 5 ) ;
7651: LD_LOC 55
7655: PPUSH
7656: LD_INT 5
7658: PPUSH
7659: CALL_OW 233
// setdir ( ruhsoldd , 5 ) ;
7663: LD_LOC 56
7667: PPUSH
7668: LD_INT 5
7670: PPUSH
7671: CALL_OW 233
// placeunitxyr ( ruhsoldc , 121 , 93 , 3 , false ) ;
7675: LD_LOC 55
7679: PPUSH
7680: LD_INT 121
7682: PPUSH
7683: LD_INT 93
7685: PPUSH
7686: LD_INT 3
7688: PPUSH
7689: LD_INT 0
7691: PPUSH
7692: CALL_OW 50
// placeunitxyr ( ruhsoldd , 121 , 93 , 3 , false ) ;
7696: LD_LOC 56
7700: PPUSH
7701: LD_INT 121
7703: PPUSH
7704: LD_INT 93
7706: PPUSH
7707: LD_INT 3
7709: PPUSH
7710: LD_INT 0
7712: PPUSH
7713: CALL_OW 50
// if difficulty > 1 then
7717: LD_OWVAR 67
7721: PUSH
7722: LD_INT 1
7724: GREATER
7725: IFFALSE 7736
// manage_prebytek ( 3 ) else
7727: LD_INT 3
7729: PPUSH
7730: CALL 3852 0 1
7734: GO 7743
// manage_prebytek ( 2 ) ;
7736: LD_INT 2
7738: PPUSH
7739: CALL 3852 0 1
// rusove0 = rusove0 union [ ruhsoldc , ruhsoldd , ruv9 , ruva , ruvb ] diff [ 0 ] ;
7743: LD_ADDR_EXP 14
7747: PUSH
7748: LD_EXP 14
7752: PUSH
7753: LD_LOC 55
7757: PUSH
7758: LD_LOC 56
7762: PUSH
7763: LD_LOC 57
7767: PUSH
7768: LD_LOC 60
7772: PUSH
7773: LD_LOC 61
7777: PUSH
7778: EMPTY
7779: LIST
7780: LIST
7781: LIST
7782: LIST
7783: LIST
7784: UNION
7785: PUSH
7786: LD_INT 0
7788: PUSH
7789: EMPTY
7790: LIST
7791: DIFF
7792: ST_TO_ADDR
// comagressivemove ( rusove0 , 57 , 67 ) ;
7793: LD_EXP 14
7797: PPUSH
7798: LD_INT 57
7800: PPUSH
7801: LD_INT 67
7803: PPUSH
7804: CALL_OW 114
// end ;
7808: END
// every 0 0$1 + 21 21$25 trigger not ( unitfilter ( rusove0 , [ [ f_ok ] ] ) diff filterunitsinarea ( wayarea2 , [ [ f_side , rus ] ] ) ) do
7809: LD_EXP 14
7813: PPUSH
7814: LD_INT 50
7816: PUSH
7817: EMPTY
7818: LIST
7819: PUSH
7820: EMPTY
7821: LIST
7822: PPUSH
7823: CALL_OW 72
7827: PUSH
7828: LD_INT 9
7830: PPUSH
7831: LD_INT 22
7833: PUSH
7834: LD_EXP 1
7838: PUSH
7839: EMPTY
7840: LIST
7841: LIST
7842: PUSH
7843: EMPTY
7844: LIST
7845: PPUSH
7846: CALL_OW 70
7850: DIFF
7851: NOT
7852: IFFALSE 8026
7854: GO 7856
7856: DISABLE
// begin comagressivemove ( rusove0 , 57 , 41 ) ;
7857: LD_EXP 14
7861: PPUSH
7862: LD_INT 57
7864: PPUSH
7865: LD_INT 41
7867: PPUSH
7868: CALL_OW 114
// wait ( 0 0$10 ) ;
7872: LD_INT 350
7874: PPUSH
7875: CALL_OW 67
// comagressivemove ( rusove0 , 47 , 38 ) ;
7879: LD_EXP 14
7883: PPUSH
7884: LD_INT 47
7886: PPUSH
7887: LD_INT 38
7889: PPUSH
7890: CALL_OW 114
// wait ( 0 0$5 ) ;
7894: LD_INT 175
7896: PPUSH
7897: CALL_OW 67
// comagressivemove ( rusove0 , 64 , 38 ) ;
7901: LD_EXP 14
7905: PPUSH
7906: LD_INT 64
7908: PPUSH
7909: LD_INT 38
7911: PPUSH
7912: CALL_OW 114
// wait ( 0 0$10 ) ;
7916: LD_INT 350
7918: PPUSH
7919: CALL_OW 67
// comagressivemove ( rusove0 , 45 , 29 ) ;
7923: LD_EXP 14
7927: PPUSH
7928: LD_INT 45
7930: PPUSH
7931: LD_INT 29
7933: PPUSH
7934: CALL_OW 114
// wait ( 0 0$5 ) ;
7938: LD_INT 175
7940: PPUSH
7941: CALL_OW 67
// comagressivemove ( rusove0 , 45 , 20 ) ;
7945: LD_EXP 14
7949: PPUSH
7950: LD_INT 45
7952: PPUSH
7953: LD_INT 20
7955: PPUSH
7956: CALL_OW 114
// wait ( 0 0$10 ) ;
7960: LD_INT 350
7962: PPUSH
7963: CALL_OW 67
// comagressivemove ( rusove0 , 56 , 20 ) ;
7967: LD_EXP 14
7971: PPUSH
7972: LD_INT 56
7974: PPUSH
7975: LD_INT 20
7977: PPUSH
7978: CALL_OW 114
// wait ( 0 0$5 ) ;
7982: LD_INT 175
7984: PPUSH
7985: CALL_OW 67
// comagressivemove ( rusove0 , 48 , 15 ) ;
7989: LD_EXP 14
7993: PPUSH
7994: LD_INT 48
7996: PPUSH
7997: LD_INT 15
7999: PPUSH
8000: CALL_OW 114
// wait ( 0 0$10 ) ;
8004: LD_INT 350
8006: PPUSH
8007: CALL_OW 67
// comagressivemove ( rusove0 , 52 , 9 ) ;
8011: LD_EXP 14
8015: PPUSH
8016: LD_INT 52
8018: PPUSH
8019: LD_INT 9
8021: PPUSH
8022: CALL_OW 114
// end ;
8026: END
// every 0 0$30 do
8027: GO 8029
8029: DISABLE
// begin placeunitxyr ( posilya [ 1 ] , 79 , 3 , 3 , false ) ;
8030: LD_EXP 27
8034: PUSH
8035: LD_INT 1
8037: ARRAY
8038: PPUSH
8039: LD_INT 79
8041: PPUSH
8042: LD_INT 3
8044: PPUSH
8045: LD_INT 3
8047: PPUSH
8048: LD_INT 0
8050: PPUSH
8051: CALL_OW 50
// placeunitxyr ( posilya [ 2 ] , 80 , 2 , 3 , false ) ;
8055: LD_EXP 27
8059: PUSH
8060: LD_INT 2
8062: ARRAY
8063: PPUSH
8064: LD_INT 80
8066: PPUSH
8067: LD_INT 2
8069: PPUSH
8070: LD_INT 3
8072: PPUSH
8073: LD_INT 0
8075: PPUSH
8076: CALL_OW 50
// pocet_lidi = pocet_lidi + 2 ;
8080: LD_ADDR_LOC 22
8084: PUSH
8085: LD_LOC 22
8089: PUSH
8090: LD_INT 2
8092: PLUS
8093: ST_TO_ADDR
// commovexy ( posilya , 77 , 16 ) ;
8094: LD_EXP 27
8098: PPUSH
8099: LD_INT 77
8101: PPUSH
8102: LD_INT 16
8104: PPUSH
8105: CALL_OW 111
// wait ( 0 0$7 ) ;
8109: LD_INT 245
8111: PPUSH
8112: CALL_OW 67
// commovexy ( posilya , 68 , 21 ) ;
8116: LD_EXP 27
8120: PPUSH
8121: LD_INT 68
8123: PPUSH
8124: LD_INT 21
8126: PPUSH
8127: CALL_OW 111
// wait ( 0 0$7 ) ;
8131: LD_INT 245
8133: PPUSH
8134: CALL_OW 67
// commovexy ( posilya , 55 , 15 ) ;
8138: LD_EXP 27
8142: PPUSH
8143: LD_INT 55
8145: PPUSH
8146: LD_INT 15
8148: PPUSH
8149: CALL_OW 111
// wait ( 0 0$7 ) ;
8153: LD_INT 245
8155: PPUSH
8156: CALL_OW 67
// centeronunits ( posilya ) ;
8160: LD_EXP 27
8164: PPUSH
8165: CALL_OW 85
// dialogueon ;
8169: CALL_OW 6
// if glad and ( gladloc = 3 ) then
8173: LD_EXP 34
8177: PUSH
8178: LD_EXP 44
8182: PUSH
8183: LD_INT 3
8185: EQUAL
8186: AND
8187: IFFALSE 8203
// say ( glad , D2-Glad-1 ) else
8189: LD_EXP 34
8193: PPUSH
8194: LD_STRING D2-Glad-1
8196: PPUSH
8197: CALL_OW 88
8201: GO 8256
// if getsex ( posilya [ 2 ] ) = sex_male then
8203: LD_EXP 27
8207: PUSH
8208: LD_INT 2
8210: ARRAY
8211: PPUSH
8212: CALL_OW 258
8216: PUSH
8217: LD_INT 1
8219: EQUAL
8220: IFFALSE 8240
// say ( posilya [ 2 ] , D2-Sol1-1 ) else
8222: LD_EXP 27
8226: PUSH
8227: LD_INT 2
8229: ARRAY
8230: PPUSH
8231: LD_STRING D2-Sol1-1
8233: PPUSH
8234: CALL_OW 88
8238: GO 8256
// say ( posilya [ 2 ] , D2-FSol1-1 ) ;
8240: LD_EXP 27
8244: PUSH
8245: LD_INT 2
8247: ARRAY
8248: PPUSH
8249: LD_STRING D2-FSol1-1
8251: PPUSH
8252: CALL_OW 88
// case gamma2commander of 1 :
8256: LD_EXP 46
8260: PUSH
8261: LD_INT 1
8263: DOUBLE
8264: EQUAL
8265: IFTRUE 8269
8267: GO 8284
8269: POP
// say ( lucy , D2-Don-1 ) ; 2 :
8270: LD_EXP 31
8274: PPUSH
8275: LD_STRING D2-Don-1
8277: PPUSH
8278: CALL_OW 88
8282: GO 8331
8284: LD_INT 2
8286: DOUBLE
8287: EQUAL
8288: IFTRUE 8292
8290: GO 8307
8292: POP
// say ( brown , D2-Brown-1 ) ; 3 :
8293: LD_EXP 32
8297: PPUSH
8298: LD_STRING D2-Brown-1
8300: PPUSH
8301: CALL_OW 88
8305: GO 8331
8307: LD_INT 3
8309: DOUBLE
8310: EQUAL
8311: IFTRUE 8315
8313: GO 8330
8315: POP
// say ( vanh , D2-VanH-1 ) ; end ;
8316: LD_EXP 33
8320: PPUSH
8321: LD_STRING D2-VanH-1
8323: PPUSH
8324: CALL_OW 88
8328: GO 8331
8330: POP
// dialogueoff ;
8331: CALL_OW 7
// end ;
8335: END
// every 0 0$5 do var tmp , tmpch ;
8336: GO 8338
8338: DISABLE
8339: LD_INT 0
8341: PPUSH
8342: PPUSH
// begin return_time = return_time - 0 0$5 ;
8343: LD_ADDR_EXP 29
8347: PUSH
8348: LD_EXP 29
8352: PUSH
8353: LD_INT 175
8355: MINUS
8356: ST_TO_ADDR
// if return_time <= 0 then
8357: LD_EXP 29
8361: PUSH
8362: LD_INT 0
8364: LESSEQUAL
8365: IFFALSE 10089
// begin john = john_ ;
8367: LD_ADDR_EXP 17
8371: PUSH
8372: LD_EXP 20
8376: ST_TO_ADDR
// placeunitxyr ( posilyb [ 1 ] , 77 , 4 , 3 , false ) ;
8377: LD_EXP 28
8381: PUSH
8382: LD_INT 1
8384: ARRAY
8385: PPUSH
8386: LD_INT 77
8388: PPUSH
8389: LD_INT 4
8391: PPUSH
8392: LD_INT 3
8394: PPUSH
8395: LD_INT 0
8397: PPUSH
8398: CALL_OW 50
// placeunitxyr ( posilyb [ 2 ] , 77 , 4 , 3 , false ) ;
8402: LD_EXP 28
8406: PUSH
8407: LD_INT 2
8409: ARRAY
8410: PPUSH
8411: LD_INT 77
8413: PPUSH
8414: LD_INT 4
8416: PPUSH
8417: LD_INT 3
8419: PPUSH
8420: LD_INT 0
8422: PPUSH
8423: CALL_OW 50
// placeunitxyr ( posilyb [ 3 ] , 77 , 4 , 3 , false ) ;
8427: LD_EXP 28
8431: PUSH
8432: LD_INT 3
8434: ARRAY
8435: PPUSH
8436: LD_INT 77
8438: PPUSH
8439: LD_INT 4
8441: PPUSH
8442: LD_INT 3
8444: PPUSH
8445: LD_INT 0
8447: PPUSH
8448: CALL_OW 50
// placeunitxyr ( posilyb [ 4 ] , 77 , 4 , 3 , false ) ;
8452: LD_EXP 28
8456: PUSH
8457: LD_INT 4
8459: ARRAY
8460: PPUSH
8461: LD_INT 77
8463: PPUSH
8464: LD_INT 4
8466: PPUSH
8467: LD_INT 3
8469: PPUSH
8470: LD_INT 0
8472: PPUSH
8473: CALL_OW 50
// placeunitxyr ( posilyb [ 5 ] , 77 , 4 , 3 , false ) ;
8477: LD_EXP 28
8481: PUSH
8482: LD_INT 5
8484: ARRAY
8485: PPUSH
8486: LD_INT 77
8488: PPUSH
8489: LD_INT 4
8491: PPUSH
8492: LD_INT 3
8494: PPUSH
8495: LD_INT 0
8497: PPUSH
8498: CALL_OW 50
// pocet_lidi = pocet_lidi + 5 ;
8502: LD_ADDR_LOC 22
8506: PUSH
8507: LD_LOC 22
8511: PUSH
8512: LD_INT 5
8514: PLUS
8515: ST_TO_ADDR
// commovexy ( posilyb , 77 , 16 ) ;
8516: LD_EXP 28
8520: PPUSH
8521: LD_INT 77
8523: PPUSH
8524: LD_INT 16
8526: PPUSH
8527: CALL_OW 111
// wait ( 0 0$7 ) ;
8531: LD_INT 245
8533: PPUSH
8534: CALL_OW 67
// commovexy ( posilyb , 69 , 20 ) ;
8538: LD_EXP 28
8542: PPUSH
8543: LD_INT 69
8545: PPUSH
8546: LD_INT 20
8548: PPUSH
8549: CALL_OW 111
// wait ( 0 0$7 ) ;
8553: LD_INT 245
8555: PPUSH
8556: CALL_OW 67
// centeronunits ( posilyb ) ;
8560: LD_EXP 28
8564: PPUSH
8565: CALL_OW 85
// dialogueon ;
8569: CALL_OW 6
// say ( john , D3-JMM-1 ) ;
8573: LD_EXP 17
8577: PPUSH
8578: LD_STRING D3-JMM-1
8580: PPUSH
8581: CALL_OW 88
// tmpch = 0 ;
8585: LD_ADDR_VAR 0 2
8589: PUSH
8590: LD_INT 0
8592: ST_TO_ADDR
// case gamma2commander of 1 :
8593: LD_EXP 46
8597: PUSH
8598: LD_INT 1
8600: DOUBLE
8601: EQUAL
8602: IFTRUE 8606
8604: GO 8642
8606: POP
// if islive ( lucy ) then
8607: LD_EXP 31
8611: PPUSH
8612: CALL_OW 300
8616: IFFALSE 8632
// say ( lucy , D3-Don-1 ) else
8618: LD_EXP 31
8622: PPUSH
8623: LD_STRING D3-Don-1
8625: PPUSH
8626: CALL_OW 88
8630: GO 8640
// tmpch = 1 ; 2 :
8632: LD_ADDR_VAR 0 2
8636: PUSH
8637: LD_INT 1
8639: ST_TO_ADDR
8640: GO 8731
8642: LD_INT 2
8644: DOUBLE
8645: EQUAL
8646: IFTRUE 8650
8648: GO 8686
8650: POP
// if islive ( brown ) then
8651: LD_EXP 32
8655: PPUSH
8656: CALL_OW 300
8660: IFFALSE 8676
// say ( brown , D3-Brown-1 ) else
8662: LD_EXP 32
8666: PPUSH
8667: LD_STRING D3-Brown-1
8669: PPUSH
8670: CALL_OW 88
8674: GO 8684
// tmpch = 1 ; 3 :
8676: LD_ADDR_VAR 0 2
8680: PUSH
8681: LD_INT 1
8683: ST_TO_ADDR
8684: GO 8731
8686: LD_INT 3
8688: DOUBLE
8689: EQUAL
8690: IFTRUE 8694
8692: GO 8730
8694: POP
// if islive ( vanh ) then
8695: LD_EXP 33
8699: PPUSH
8700: CALL_OW 300
8704: IFFALSE 8720
// say ( vanh , D3-VanH-1 ) else
8706: LD_EXP 33
8710: PPUSH
8711: LD_STRING D3-VanH-1
8713: PPUSH
8714: CALL_OW 88
8718: GO 8728
// tmpch = 1 ; end ;
8720: LD_ADDR_VAR 0 2
8724: PUSH
8725: LD_INT 1
8727: ST_TO_ADDR
8728: GO 8731
8730: POP
// if tmpch then
8731: LD_VAR 0 2
8735: IFFALSE 9277
// case gamma2commander of 1 :
8737: LD_EXP 46
8741: PUSH
8742: LD_INT 1
8744: DOUBLE
8745: EQUAL
8746: IFTRUE 8750
8748: GO 8872
8750: POP
// begin tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_placed ] , [ f_sex , sex_male ] , f_not , [ f_nation , nation_nature ] ] ) ;
8751: LD_ADDR_VAR 0 1
8755: PUSH
8756: LD_INT 22
8758: PUSH
8759: LD_EXP 2
8763: PUSH
8764: EMPTY
8765: LIST
8766: LIST
8767: PUSH
8768: LD_INT 21
8770: PUSH
8771: LD_INT 1
8773: PUSH
8774: EMPTY
8775: LIST
8776: LIST
8777: PUSH
8778: LD_INT 52
8780: PUSH
8781: EMPTY
8782: LIST
8783: PUSH
8784: LD_INT 26
8786: PUSH
8787: LD_INT 1
8789: PUSH
8790: EMPTY
8791: LIST
8792: LIST
8793: PUSH
8794: LD_INT 3
8796: PUSH
8797: LD_INT 23
8799: PUSH
8800: LD_INT 0
8802: PUSH
8803: EMPTY
8804: LIST
8805: LIST
8806: PUSH
8807: EMPTY
8808: LIST
8809: LIST
8810: LIST
8811: LIST
8812: LIST
8813: LIST
8814: PPUSH
8815: CALL_OW 69
8819: ST_TO_ADDR
// if tmp then
8820: LD_VAR 0 1
8824: IFFALSE 8870
// begin say ( tmp [ 1 ] , D3-Sol1-1 ) ;
8826: LD_VAR 0 1
8830: PUSH
8831: LD_INT 1
8833: ARRAY
8834: PPUSH
8835: LD_STRING D3-Sol1-1
8837: PPUSH
8838: CALL_OW 88
// say ( tmp [ 1 ] , D3-Sol1-1c ) ;
8842: LD_VAR 0 1
8846: PUSH
8847: LD_INT 1
8849: ARRAY
8850: PPUSH
8851: LD_STRING D3-Sol1-1c
8853: PPUSH
8854: CALL_OW 88
// say ( john , D3-JMM-2 ) ;
8858: LD_EXP 17
8862: PPUSH
8863: LD_STRING D3-JMM-2
8865: PPUSH
8866: CALL_OW 88
// end ; end ; 2 :
8870: GO 9277
8872: LD_INT 2
8874: DOUBLE
8875: EQUAL
8876: IFTRUE 8880
8878: GO 9002
8880: POP
// begin tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_placed ] , [ f_sex , sex_male ] , f_not , [ f_nation , nation_nature ] ] ) ;
8881: LD_ADDR_VAR 0 1
8885: PUSH
8886: LD_INT 22
8888: PUSH
8889: LD_EXP 2
8893: PUSH
8894: EMPTY
8895: LIST
8896: LIST
8897: PUSH
8898: LD_INT 21
8900: PUSH
8901: LD_INT 1
8903: PUSH
8904: EMPTY
8905: LIST
8906: LIST
8907: PUSH
8908: LD_INT 52
8910: PUSH
8911: EMPTY
8912: LIST
8913: PUSH
8914: LD_INT 26
8916: PUSH
8917: LD_INT 1
8919: PUSH
8920: EMPTY
8921: LIST
8922: LIST
8923: PUSH
8924: LD_INT 3
8926: PUSH
8927: LD_INT 23
8929: PUSH
8930: LD_INT 0
8932: PUSH
8933: EMPTY
8934: LIST
8935: LIST
8936: PUSH
8937: EMPTY
8938: LIST
8939: LIST
8940: LIST
8941: LIST
8942: LIST
8943: LIST
8944: PPUSH
8945: CALL_OW 69
8949: ST_TO_ADDR
// if tmp then
8950: LD_VAR 0 1
8954: IFFALSE 9000
// begin say ( tmp [ 1 ] , D3-Sol1-1a ) ;
8956: LD_VAR 0 1
8960: PUSH
8961: LD_INT 1
8963: ARRAY
8964: PPUSH
8965: LD_STRING D3-Sol1-1a
8967: PPUSH
8968: CALL_OW 88
// say ( tmp [ 1 ] , D3-Sol1-1c ) ;
8972: LD_VAR 0 1
8976: PUSH
8977: LD_INT 1
8979: ARRAY
8980: PPUSH
8981: LD_STRING D3-Sol1-1c
8983: PPUSH
8984: CALL_OW 88
// say ( john , D3-JMM-2 ) ;
8988: LD_EXP 17
8992: PPUSH
8993: LD_STRING D3-JMM-2
8995: PPUSH
8996: CALL_OW 88
// end ; end ; 3 :
9000: GO 9277
9002: LD_INT 3
9004: DOUBLE
9005: EQUAL
9006: IFTRUE 9010
9008: GO 9276
9010: POP
// begin tmp = filterunitsinarea ( ambase , [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_placed ] , [ f_sex , sex_male ] , f_not , [ f_nation , nation_nature ] ] ) diff john ;
9011: LD_ADDR_VAR 0 1
9015: PUSH
9016: LD_INT 8
9018: PPUSH
9019: LD_INT 22
9021: PUSH
9022: LD_EXP 2
9026: PUSH
9027: EMPTY
9028: LIST
9029: LIST
9030: PUSH
9031: LD_INT 21
9033: PUSH
9034: LD_INT 1
9036: PUSH
9037: EMPTY
9038: LIST
9039: LIST
9040: PUSH
9041: LD_INT 52
9043: PUSH
9044: EMPTY
9045: LIST
9046: PUSH
9047: LD_INT 26
9049: PUSH
9050: LD_INT 1
9052: PUSH
9053: EMPTY
9054: LIST
9055: LIST
9056: PUSH
9057: LD_INT 3
9059: PUSH
9060: LD_INT 23
9062: PUSH
9063: LD_INT 0
9065: PUSH
9066: EMPTY
9067: LIST
9068: LIST
9069: PUSH
9070: EMPTY
9071: LIST
9072: LIST
9073: LIST
9074: LIST
9075: LIST
9076: LIST
9077: PPUSH
9078: CALL_OW 70
9082: PUSH
9083: LD_EXP 17
9087: DIFF
9088: ST_TO_ADDR
// if tmp > 0 then
9089: LD_VAR 0 1
9093: PUSH
9094: LD_INT 0
9096: GREATER
9097: IFFALSE 9145
// begin say ( tmp [ 1 ] , D3-Sol1-1b ) ;
9099: LD_VAR 0 1
9103: PUSH
9104: LD_INT 1
9106: ARRAY
9107: PPUSH
9108: LD_STRING D3-Sol1-1b
9110: PPUSH
9111: CALL_OW 88
// say ( tmp [ 1 ] , D3-Sol1-1c ) ;
9115: LD_VAR 0 1
9119: PUSH
9120: LD_INT 1
9122: ARRAY
9123: PPUSH
9124: LD_STRING D3-Sol1-1c
9126: PPUSH
9127: CALL_OW 88
// say ( john , D3-JMM-2 ) ;
9131: LD_EXP 17
9135: PPUSH
9136: LD_STRING D3-JMM-2
9138: PPUSH
9139: CALL_OW 88
// end else
9143: GO 9274
// begin tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_placed ] , [ f_sex , sex_male ] , f_not , [ f_nation , nation_nature ] ] ) diff john ;
9145: LD_ADDR_VAR 0 1
9149: PUSH
9150: LD_INT 22
9152: PUSH
9153: LD_EXP 2
9157: PUSH
9158: EMPTY
9159: LIST
9160: LIST
9161: PUSH
9162: LD_INT 21
9164: PUSH
9165: LD_INT 1
9167: PUSH
9168: EMPTY
9169: LIST
9170: LIST
9171: PUSH
9172: LD_INT 52
9174: PUSH
9175: EMPTY
9176: LIST
9177: PUSH
9178: LD_INT 26
9180: PUSH
9181: LD_INT 1
9183: PUSH
9184: EMPTY
9185: LIST
9186: LIST
9187: PUSH
9188: LD_INT 3
9190: PUSH
9191: LD_INT 23
9193: PUSH
9194: LD_INT 0
9196: PUSH
9197: EMPTY
9198: LIST
9199: LIST
9200: PUSH
9201: EMPTY
9202: LIST
9203: LIST
9204: LIST
9205: LIST
9206: LIST
9207: LIST
9208: PPUSH
9209: CALL_OW 69
9213: PUSH
9214: LD_EXP 17
9218: DIFF
9219: ST_TO_ADDR
// if tmp > 0 then
9220: LD_VAR 0 1
9224: PUSH
9225: LD_INT 0
9227: GREATER
9228: IFFALSE 9274
// begin say ( tmp [ 1 ] , D3-Sol1-1b ) ;
9230: LD_VAR 0 1
9234: PUSH
9235: LD_INT 1
9237: ARRAY
9238: PPUSH
9239: LD_STRING D3-Sol1-1b
9241: PPUSH
9242: CALL_OW 88
// say ( tmp [ 1 ] , D3-Sol1-1c ) ;
9246: LD_VAR 0 1
9250: PUSH
9251: LD_INT 1
9253: ARRAY
9254: PPUSH
9255: LD_STRING D3-Sol1-1c
9257: PPUSH
9258: CALL_OW 88
// say ( john , D3-JMM-2 ) ;
9262: LD_EXP 17
9266: PPUSH
9267: LD_STRING D3-JMM-2
9269: PPUSH
9270: CALL_OW 88
// end ; end ; end ; end ;
9274: GO 9277
9276: POP
// wait ( 0 0$1 ) ;
9277: LD_INT 35
9279: PPUSH
9280: CALL_OW 67
// if joan > 0 then
9284: LD_EXP 35
9288: PUSH
9289: LD_INT 0
9291: GREATER
9292: IFFALSE 9783
// begin if islive ( joan ) then
9294: LD_EXP 35
9298: PPUSH
9299: CALL_OW 300
9303: IFFALSE 9331
// begin say ( joan , D3a-Joan-1 ) ;
9305: LD_EXP 35
9309: PPUSH
9310: LD_STRING D3a-Joan-1
9312: PPUSH
9313: CALL_OW 88
// say ( john , D3a-JMM-1 ) ;
9317: LD_EXP 17
9321: PPUSH
9322: LD_STRING D3a-JMM-1
9324: PPUSH
9325: CALL_OW 88
// end else
9329: GO 9783
// if islive ( lucy ) then
9331: LD_EXP 31
9335: PPUSH
9336: CALL_OW 300
9340: IFFALSE 9403
// begin say ( john , D3b-JMM-1 ) ;
9342: LD_EXP 17
9346: PPUSH
9347: LD_STRING D3b-JMM-1
9349: PPUSH
9350: CALL_OW 88
// say ( lucy , D3b-Don-1 ) ;
9354: LD_EXP 31
9358: PPUSH
9359: LD_STRING D3b-Don-1
9361: PPUSH
9362: CALL_OW 88
// say ( john , D3b-JMM-2 ) ;
9366: LD_EXP 17
9370: PPUSH
9371: LD_STRING D3b-JMM-2
9373: PPUSH
9374: CALL_OW 88
// if isok ( lisa ) then
9378: LD_EXP 18
9382: PPUSH
9383: CALL_OW 302
9387: IFFALSE 9401
// say ( lisa , D3b-Lisa-2 ) ;
9389: LD_EXP 18
9393: PPUSH
9394: LD_STRING D3b-Lisa-2
9396: PPUSH
9397: CALL_OW 88
// end else
9401: GO 9783
// if islive ( brown ) then
9403: LD_EXP 32
9407: PPUSH
9408: CALL_OW 300
9412: IFFALSE 9475
// begin say ( john , D3b-JMM-1 ) ;
9414: LD_EXP 17
9418: PPUSH
9419: LD_STRING D3b-JMM-1
9421: PPUSH
9422: CALL_OW 88
// say ( brown , D3b-Brown-1 ) ;
9426: LD_EXP 32
9430: PPUSH
9431: LD_STRING D3b-Brown-1
9433: PPUSH
9434: CALL_OW 88
// say ( john , D3b-JMM-2 ) ;
9438: LD_EXP 17
9442: PPUSH
9443: LD_STRING D3b-JMM-2
9445: PPUSH
9446: CALL_OW 88
// if isok ( lisa ) then
9450: LD_EXP 18
9454: PPUSH
9455: CALL_OW 302
9459: IFFALSE 9473
// say ( lisa , D3b-Lisa-2 ) ;
9461: LD_EXP 18
9465: PPUSH
9466: LD_STRING D3b-Lisa-2
9468: PPUSH
9469: CALL_OW 88
// end else
9473: GO 9783
// if islive ( vanh ) then
9475: LD_EXP 33
9479: PPUSH
9480: CALL_OW 300
9484: IFFALSE 9547
// begin say ( john , D3b-JMM-1 ) ;
9486: LD_EXP 17
9490: PPUSH
9491: LD_STRING D3b-JMM-1
9493: PPUSH
9494: CALL_OW 88
// say ( vanh , D3b-VanH-1 ) ;
9498: LD_EXP 33
9502: PPUSH
9503: LD_STRING D3b-VanH-1
9505: PPUSH
9506: CALL_OW 88
// say ( john , D3b-JMM-2 ) ;
9510: LD_EXP 17
9514: PPUSH
9515: LD_STRING D3b-JMM-2
9517: PPUSH
9518: CALL_OW 88
// if isok ( lisa ) then
9522: LD_EXP 18
9526: PPUSH
9527: CALL_OW 302
9531: IFFALSE 9545
// say ( lisa , D3b-Lisa-2 ) ;
9533: LD_EXP 18
9537: PPUSH
9538: LD_STRING D3b-Lisa-2
9540: PPUSH
9541: CALL_OW 88
// end else
9545: GO 9783
// begin tmp = filterunitsinarea ( ambase , [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_placed ] , [ f_sex , sex_male ] , f_not , [ f_nation , nation_nature ] ] ) diff john ;
9547: LD_ADDR_VAR 0 1
9551: PUSH
9552: LD_INT 8
9554: PPUSH
9555: LD_INT 22
9557: PUSH
9558: LD_EXP 2
9562: PUSH
9563: EMPTY
9564: LIST
9565: LIST
9566: PUSH
9567: LD_INT 21
9569: PUSH
9570: LD_INT 1
9572: PUSH
9573: EMPTY
9574: LIST
9575: LIST
9576: PUSH
9577: LD_INT 52
9579: PUSH
9580: EMPTY
9581: LIST
9582: PUSH
9583: LD_INT 26
9585: PUSH
9586: LD_INT 1
9588: PUSH
9589: EMPTY
9590: LIST
9591: LIST
9592: PUSH
9593: LD_INT 3
9595: PUSH
9596: LD_INT 23
9598: PUSH
9599: LD_INT 0
9601: PUSH
9602: EMPTY
9603: LIST
9604: LIST
9605: PUSH
9606: EMPTY
9607: LIST
9608: LIST
9609: LIST
9610: LIST
9611: LIST
9612: LIST
9613: PPUSH
9614: CALL_OW 70
9618: PUSH
9619: LD_EXP 17
9623: DIFF
9624: ST_TO_ADDR
// if tmp = 0 then
9625: LD_VAR 0 1
9629: PUSH
9630: LD_INT 0
9632: EQUAL
9633: IFFALSE 9710
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_placed ] , [ f_sex , sex_male ] , f_not , [ f_nation , nation_nature ] ] ) diff john ;
9635: LD_ADDR_VAR 0 1
9639: PUSH
9640: LD_INT 22
9642: PUSH
9643: LD_EXP 2
9647: PUSH
9648: EMPTY
9649: LIST
9650: LIST
9651: PUSH
9652: LD_INT 21
9654: PUSH
9655: LD_INT 1
9657: PUSH
9658: EMPTY
9659: LIST
9660: LIST
9661: PUSH
9662: LD_INT 52
9664: PUSH
9665: EMPTY
9666: LIST
9667: PUSH
9668: LD_INT 26
9670: PUSH
9671: LD_INT 1
9673: PUSH
9674: EMPTY
9675: LIST
9676: LIST
9677: PUSH
9678: LD_INT 3
9680: PUSH
9681: LD_INT 23
9683: PUSH
9684: LD_INT 0
9686: PUSH
9687: EMPTY
9688: LIST
9689: LIST
9690: PUSH
9691: EMPTY
9692: LIST
9693: LIST
9694: LIST
9695: LIST
9696: LIST
9697: LIST
9698: PPUSH
9699: CALL_OW 69
9703: PUSH
9704: LD_EXP 17
9708: DIFF
9709: ST_TO_ADDR
// if tmp > 0 then
9710: LD_VAR 0 1
9714: PUSH
9715: LD_INT 0
9717: GREATER
9718: IFFALSE 9783
// begin say ( john , D3b-JMM-1 ) ;
9720: LD_EXP 17
9724: PPUSH
9725: LD_STRING D3b-JMM-1
9727: PPUSH
9728: CALL_OW 88
// say ( tmp [ 1 ] , D3b-Sol1-1 ) ;
9732: LD_VAR 0 1
9736: PUSH
9737: LD_INT 1
9739: ARRAY
9740: PPUSH
9741: LD_STRING D3b-Sol1-1
9743: PPUSH
9744: CALL_OW 88
// say ( john , D3b-JMM-2 ) ;
9748: LD_EXP 17
9752: PPUSH
9753: LD_STRING D3b-JMM-2
9755: PPUSH
9756: CALL_OW 88
// if isok ( lisa ) then
9760: LD_EXP 18
9764: PPUSH
9765: CALL_OW 302
9769: IFFALSE 9783
// say ( lisa , D3b-Lisa-2 ) ;
9771: LD_EXP 18
9775: PPUSH
9776: LD_STRING D3b-Lisa-2
9778: PPUSH
9779: CALL_OW 88
// end ; end ; end ; if dialcb_delayed then
9783: LD_LOC 26
9787: IFFALSE 10083
// begin tmp = filterunitsinarea ( ambase , [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_placed ] , [ f_sex , sex_male ] , f_not , [ f_nation , nation_nature ] ] ) diff john ;
9789: LD_ADDR_VAR 0 1
9793: PUSH
9794: LD_INT 8
9796: PPUSH
9797: LD_INT 22
9799: PUSH
9800: LD_EXP 2
9804: PUSH
9805: EMPTY
9806: LIST
9807: LIST
9808: PUSH
9809: LD_INT 21
9811: PUSH
9812: LD_INT 1
9814: PUSH
9815: EMPTY
9816: LIST
9817: LIST
9818: PUSH
9819: LD_INT 52
9821: PUSH
9822: EMPTY
9823: LIST
9824: PUSH
9825: LD_INT 26
9827: PUSH
9828: LD_INT 1
9830: PUSH
9831: EMPTY
9832: LIST
9833: LIST
9834: PUSH
9835: LD_INT 3
9837: PUSH
9838: LD_INT 23
9840: PUSH
9841: LD_INT 0
9843: PUSH
9844: EMPTY
9845: LIST
9846: LIST
9847: PUSH
9848: EMPTY
9849: LIST
9850: LIST
9851: LIST
9852: LIST
9853: LIST
9854: LIST
9855: PPUSH
9856: CALL_OW 70
9860: PUSH
9861: LD_EXP 17
9865: DIFF
9866: ST_TO_ADDR
// if tmp > 0 then
9867: LD_VAR 0 1
9871: PUSH
9872: LD_INT 0
9874: GREATER
9875: IFFALSE 9935
// begin say ( tmp [ 1 ] , DCa-Sol1-1 ) ;
9877: LD_VAR 0 1
9881: PUSH
9882: LD_INT 1
9884: ARRAY
9885: PPUSH
9886: LD_STRING DCa-Sol1-1
9888: PPUSH
9889: CALL_OW 88
// say ( john , DCb-JMM-1 ) ;
9893: LD_EXP 17
9897: PPUSH
9898: LD_STRING DCb-JMM-1
9900: PPUSH
9901: CALL_OW 88
// say ( tmp [ 1 ] , DCb-Sol1-1 ) ;
9905: LD_VAR 0 1
9909: PUSH
9910: LD_INT 1
9912: ARRAY
9913: PPUSH
9914: LD_STRING DCb-Sol1-1
9916: PPUSH
9917: CALL_OW 88
// say ( john , DCb-JMM-2 ) ;
9921: LD_EXP 17
9925: PPUSH
9926: LD_STRING DCb-JMM-2
9928: PPUSH
9929: CALL_OW 88
// end else
9933: GO 10076
// begin tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_placed ] , [ f_sex , sex_male ] , f_not , [ f_nation , nation_nature ] ] ) diff john ;
9935: LD_ADDR_VAR 0 1
9939: PUSH
9940: LD_INT 22
9942: PUSH
9943: LD_EXP 2
9947: PUSH
9948: EMPTY
9949: LIST
9950: LIST
9951: PUSH
9952: LD_INT 21
9954: PUSH
9955: LD_INT 1
9957: PUSH
9958: EMPTY
9959: LIST
9960: LIST
9961: PUSH
9962: LD_INT 52
9964: PUSH
9965: EMPTY
9966: LIST
9967: PUSH
9968: LD_INT 26
9970: PUSH
9971: LD_INT 1
9973: PUSH
9974: EMPTY
9975: LIST
9976: LIST
9977: PUSH
9978: LD_INT 3
9980: PUSH
9981: LD_INT 23
9983: PUSH
9984: LD_INT 0
9986: PUSH
9987: EMPTY
9988: LIST
9989: LIST
9990: PUSH
9991: EMPTY
9992: LIST
9993: LIST
9994: LIST
9995: LIST
9996: LIST
9997: LIST
9998: PPUSH
9999: CALL_OW 69
10003: PUSH
10004: LD_EXP 17
10008: DIFF
10009: ST_TO_ADDR
// if tmp > 0 then
10010: LD_VAR 0 1
10014: PUSH
10015: LD_INT 0
10017: GREATER
10018: IFFALSE 10076
// begin say ( tmp [ 1 ] , DCa-Sol1-1 ) ;
10020: LD_VAR 0 1
10024: PUSH
10025: LD_INT 1
10027: ARRAY
10028: PPUSH
10029: LD_STRING DCa-Sol1-1
10031: PPUSH
10032: CALL_OW 88
// say ( john , DCb-JMM-1 ) ;
10036: LD_EXP 17
10040: PPUSH
10041: LD_STRING DCb-JMM-1
10043: PPUSH
10044: CALL_OW 88
// say ( tmp [ 1 ] , DCb-Sol1-1 ) ;
10048: LD_VAR 0 1
10052: PUSH
10053: LD_INT 1
10055: ARRAY
10056: PPUSH
10057: LD_STRING DCb-Sol1-1
10059: PPUSH
10060: CALL_OW 88
// say ( john , DCb-JMM-2 ) ;
10064: LD_EXP 17
10068: PPUSH
10069: LD_STRING DCb-JMM-2
10071: PPUSH
10072: CALL_OW 88
// end ; end ; hint ( ComputerCapturing ) ;
10076: LD_STRING ComputerCapturing
10078: PPUSH
10079: CALL_OW 339
// end ; dialogueoff ;
10083: CALL_OW 7
// end else
10087: GO 10090
// enable ;
10089: ENABLE
// end ;
10090: PPOPN 2
10092: END
// every 0 0$1 + 16 16$0 do
10093: GO 10095
10095: DISABLE
// begin dialogueon ;
10096: CALL_OW 6
// sayradio ( powel , D4-Pow-1 ) ;
10100: LD_EXP 16
10104: PPUSH
10105: LD_STRING D4-Pow-1
10107: PPUSH
10108: CALL_OW 94
// say ( john , D4-JMM-1 ) ;
10112: LD_EXP 17
10116: PPUSH
10117: LD_STRING D4-JMM-1
10119: PPUSH
10120: CALL_OW 88
// sayradio ( powel , D4-Pow-2 ) ;
10124: LD_EXP 16
10128: PPUSH
10129: LD_STRING D4-Pow-2
10131: PPUSH
10132: CALL_OW 94
// say ( john , D4-JMM-2 ) ;
10136: LD_EXP 17
10140: PPUSH
10141: LD_STRING D4-JMM-2
10143: PPUSH
10144: CALL_OW 88
// sayradio ( powel , D4-Pow-3 ) ;
10148: LD_EXP 16
10152: PPUSH
10153: LD_STRING D4-Pow-3
10155: PPUSH
10156: CALL_OW 94
// dialogueoff ;
10160: CALL_OW 7
// end ;
10164: END
// every 0 0$1 + 17 17$0 do
10165: GO 10167
10167: DISABLE
// begin dialogueon ;
10168: CALL_OW 6
// sayradio ( powel , D4a-Pow-1 ) ;
10172: LD_EXP 16
10176: PPUSH
10177: LD_STRING D4a-Pow-1
10179: PPUSH
10180: CALL_OW 94
// dialogueoff ;
10184: CALL_OW 7
// end ;
10188: END
// var amhsoldb , amhsoldd , amhmecha , amhmechb , amhmechc , amva , amvb , amvc , amvd ; var reinf_us ; every 0 0$1 + 25 25$0 do
10189: GO 10191
10191: DISABLE
// begin changesidefog ( amer_reinf , amer ) ;
10192: LD_EXP 3
10196: PPUSH
10197: LD_EXP 2
10201: PPUSH
10202: CALL_OW 343
// uc_nation = nation_american ;
10206: LD_ADDR_OWVAR 21
10210: PUSH
10211: LD_INT 1
10213: ST_TO_ADDR
// uc_side = amer_reinf ;
10214: LD_ADDR_OWVAR 20
10218: PUSH
10219: LD_EXP 3
10223: ST_TO_ADDR
// hc_class = class_soldier ;
10224: LD_ADDR_OWVAR 28
10228: PUSH
10229: LD_INT 1
10231: ST_TO_ADDR
// case difficulty of 3 :
10232: LD_OWVAR 67
10236: PUSH
10237: LD_INT 3
10239: DOUBLE
10240: EQUAL
10241: IFTRUE 10245
10243: GO 10264
10245: POP
// begin vc_chassis = us_medium_wheeled ;
10246: LD_ADDR_OWVAR 37
10250: PUSH
10251: LD_INT 2
10253: ST_TO_ADDR
// vc_weapon = us_machine_gun ;
10254: LD_ADDR_OWVAR 40
10258: PUSH
10259: LD_INT 2
10261: ST_TO_ADDR
// end ; 2 :
10262: GO 10319
10264: LD_INT 2
10266: DOUBLE
10267: EQUAL
10268: IFTRUE 10272
10270: GO 10291
10272: POP
// begin vc_chassis = us_medium_tracked ;
10273: LD_ADDR_OWVAR 37
10277: PUSH
10278: LD_INT 3
10280: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
10281: LD_ADDR_OWVAR 40
10285: PUSH
10286: LD_INT 4
10288: ST_TO_ADDR
// end ; 1 :
10289: GO 10319
10291: LD_INT 1
10293: DOUBLE
10294: EQUAL
10295: IFTRUE 10299
10297: GO 10318
10299: POP
// begin vc_chassis = us_heavy_tracked ;
10300: LD_ADDR_OWVAR 37
10304: PUSH
10305: LD_INT 4
10307: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
10308: LD_ADDR_OWVAR 40
10312: PUSH
10313: LD_INT 4
10315: ST_TO_ADDR
// end ; end ;
10316: GO 10319
10318: POP
// vc_control = control_manual ;
10319: LD_ADDR_OWVAR 38
10323: PUSH
10324: LD_INT 1
10326: ST_TO_ADDR
// vc_engine = engine_combustion ;
10327: LD_ADDR_OWVAR 39
10331: PUSH
10332: LD_INT 1
10334: ST_TO_ADDR
// amvd = createvehicle ;
10335: LD_ADDR_LOC 70
10339: PUSH
10340: CALL_OW 45
10344: ST_TO_ADDR
// setdir ( amvd , 2 ) ;
10345: LD_LOC 70
10349: PPUSH
10350: LD_INT 2
10352: PPUSH
10353: CALL_OW 233
// placeunitxyr ( amvd , 15 , 2 , 7 , false ) ;
10357: LD_LOC 70
10361: PPUSH
10362: LD_INT 15
10364: PPUSH
10365: LD_INT 2
10367: PPUSH
10368: LD_INT 7
10370: PPUSH
10371: LD_INT 0
10373: PPUSH
10374: CALL_OW 50
// placehumaninunit ( amhsolda , amvd ) ;
10378: LD_EXP 26
10382: PPUSH
10383: LD_LOC 70
10387: PPUSH
10388: CALL_OW 52
// preparesoldier ( sex_male , 4 ) ;
10392: LD_INT 1
10394: PPUSH
10395: LD_INT 4
10397: PPUSH
10398: CALL_OW 381
// amhsoldb = createhuman ;
10402: LD_ADDR_LOC 62
10406: PUSH
10407: CALL_OW 44
10411: ST_TO_ADDR
// placeunitxyr ( amhsoldb , 15 , 2 , 7 , false ) ;
10412: LD_LOC 62
10416: PPUSH
10417: LD_INT 15
10419: PPUSH
10420: LD_INT 2
10422: PPUSH
10423: LD_INT 7
10425: PPUSH
10426: LD_INT 0
10428: PPUSH
10429: CALL_OW 50
// case difficulty of 1 :
10433: LD_OWVAR 67
10437: PUSH
10438: LD_INT 1
10440: DOUBLE
10441: EQUAL
10442: IFTRUE 10446
10444: GO 10459
10446: POP
// preparemechanic ( sex_female , 5 ) ; 2 :
10447: LD_INT 2
10449: PPUSH
10450: LD_INT 5
10452: PPUSH
10453: CALL_OW 383
10457: GO 10502
10459: LD_INT 2
10461: DOUBLE
10462: EQUAL
10463: IFTRUE 10467
10465: GO 10480
10467: POP
// preparemechanic ( sex_female , 4 ) ; 3 :
10468: LD_INT 2
10470: PPUSH
10471: LD_INT 4
10473: PPUSH
10474: CALL_OW 383
10478: GO 10502
10480: LD_INT 3
10482: DOUBLE
10483: EQUAL
10484: IFTRUE 10488
10486: GO 10501
10488: POP
// preparemechanic ( sex_female , 3 ) ; end ;
10489: LD_INT 2
10491: PPUSH
10492: LD_INT 3
10494: PPUSH
10495: CALL_OW 383
10499: GO 10502
10501: POP
// amhmecha = createhuman ;
10502: LD_ADDR_LOC 64
10506: PUSH
10507: CALL_OW 44
10511: ST_TO_ADDR
// case difficulty of 1 :
10512: LD_OWVAR 67
10516: PUSH
10517: LD_INT 1
10519: DOUBLE
10520: EQUAL
10521: IFTRUE 10525
10523: GO 10538
10525: POP
// preparemechanic ( sex_female , 4 ) ; 2 :
10526: LD_INT 2
10528: PPUSH
10529: LD_INT 4
10531: PPUSH
10532: CALL_OW 383
10536: GO 10581
10538: LD_INT 2
10540: DOUBLE
10541: EQUAL
10542: IFTRUE 10546
10544: GO 10559
10546: POP
// preparemechanic ( sex_female , 4 ) ; 3 :
10547: LD_INT 2
10549: PPUSH
10550: LD_INT 4
10552: PPUSH
10553: CALL_OW 383
10557: GO 10581
10559: LD_INT 3
10561: DOUBLE
10562: EQUAL
10563: IFTRUE 10567
10565: GO 10580
10567: POP
// preparemechanic ( sex_female , 3 ) ; end ;
10568: LD_INT 2
10570: PPUSH
10571: LD_INT 3
10573: PPUSH
10574: CALL_OW 383
10578: GO 10581
10580: POP
// amhmechc = createhuman ;
10581: LD_ADDR_LOC 66
10585: PUSH
10586: CALL_OW 44
10590: ST_TO_ADDR
// preparemechanic ( sex_male , 5 ) ;
10591: LD_INT 1
10593: PPUSH
10594: LD_INT 5
10596: PPUSH
10597: CALL_OW 383
// amhmechb = createhuman ;
10601: LD_ADDR_LOC 65
10605: PUSH
10606: CALL_OW 44
10610: ST_TO_ADDR
// preparesoldier ( sex_male , 5 ) ;
10611: LD_INT 1
10613: PPUSH
10614: LD_INT 5
10616: PPUSH
10617: CALL_OW 381
// amhsoldd = createhuman ;
10621: LD_ADDR_LOC 63
10625: PUSH
10626: CALL_OW 44
10630: ST_TO_ADDR
// placeunitxyr ( amhsoldd , 15 , 2 , 7 , false ) ;
10631: LD_LOC 63
10635: PPUSH
10636: LD_INT 15
10638: PPUSH
10639: LD_INT 2
10641: PPUSH
10642: LD_INT 7
10644: PPUSH
10645: LD_INT 0
10647: PPUSH
10648: CALL_OW 50
// case difficulty of 3 :
10652: LD_OWVAR 67
10656: PUSH
10657: LD_INT 3
10659: DOUBLE
10660: EQUAL
10661: IFTRUE 10665
10663: GO 10684
10665: POP
// begin vc_chassis = us_medium_wheeled ;
10666: LD_ADDR_OWVAR 37
10670: PUSH
10671: LD_INT 2
10673: ST_TO_ADDR
// vc_weapon = us_machine_gun ;
10674: LD_ADDR_OWVAR 40
10678: PUSH
10679: LD_INT 2
10681: ST_TO_ADDR
// end ; 2 :
10682: GO 10739
10684: LD_INT 2
10686: DOUBLE
10687: EQUAL
10688: IFTRUE 10692
10690: GO 10711
10692: POP
// begin vc_chassis = us_medium_tracked ;
10693: LD_ADDR_OWVAR 37
10697: PUSH
10698: LD_INT 3
10700: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
10701: LD_ADDR_OWVAR 40
10705: PUSH
10706: LD_INT 4
10708: ST_TO_ADDR
// end ; 1 :
10709: GO 10739
10711: LD_INT 1
10713: DOUBLE
10714: EQUAL
10715: IFTRUE 10719
10717: GO 10738
10719: POP
// begin vc_chassis = us_heavy_tracked ;
10720: LD_ADDR_OWVAR 37
10724: PUSH
10725: LD_INT 4
10727: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
10728: LD_ADDR_OWVAR 40
10732: PUSH
10733: LD_INT 4
10735: ST_TO_ADDR
// end ; end ;
10736: GO 10739
10738: POP
// vc_control = control_manual ;
10739: LD_ADDR_OWVAR 38
10743: PUSH
10744: LD_INT 1
10746: ST_TO_ADDR
// vc_engine = engine_combustion ;
10747: LD_ADDR_OWVAR 39
10751: PUSH
10752: LD_INT 1
10754: ST_TO_ADDR
// amva = createvehicle ;
10755: LD_ADDR_LOC 67
10759: PUSH
10760: CALL_OW 45
10764: ST_TO_ADDR
// setdir ( amva , 2 ) ;
10765: LD_LOC 67
10769: PPUSH
10770: LD_INT 2
10772: PPUSH
10773: CALL_OW 233
// placeunitxyr ( amva , 15 , 2 , 7 , false ) ;
10777: LD_LOC 67
10781: PPUSH
10782: LD_INT 15
10784: PPUSH
10785: LD_INT 2
10787: PPUSH
10788: LD_INT 7
10790: PPUSH
10791: LD_INT 0
10793: PPUSH
10794: CALL_OW 50
// placehumaninunit ( amhmecha , amva ) ;
10798: LD_LOC 64
10802: PPUSH
10803: LD_LOC 67
10807: PPUSH
10808: CALL_OW 52
// case difficulty of 3 :
10812: LD_OWVAR 67
10816: PUSH
10817: LD_INT 3
10819: DOUBLE
10820: EQUAL
10821: IFTRUE 10825
10823: GO 10844
10825: POP
// begin vc_chassis = us_medium_wheeled ;
10826: LD_ADDR_OWVAR 37
10830: PUSH
10831: LD_INT 2
10833: ST_TO_ADDR
// vc_weapon = us_light_gun ;
10834: LD_ADDR_OWVAR 40
10838: PUSH
10839: LD_INT 3
10841: ST_TO_ADDR
// end ; 2 :
10842: GO 10899
10844: LD_INT 2
10846: DOUBLE
10847: EQUAL
10848: IFTRUE 10852
10850: GO 10871
10852: POP
// begin vc_chassis = us_medium_wheeled ;
10853: LD_ADDR_OWVAR 37
10857: PUSH
10858: LD_INT 2
10860: ST_TO_ADDR
// vc_weapon = us_light_gun ;
10861: LD_ADDR_OWVAR 40
10865: PUSH
10866: LD_INT 3
10868: ST_TO_ADDR
// end ; 1 :
10869: GO 10899
10871: LD_INT 1
10873: DOUBLE
10874: EQUAL
10875: IFTRUE 10879
10877: GO 10898
10879: POP
// begin vc_chassis = us_medium_tracked ;
10880: LD_ADDR_OWVAR 37
10884: PUSH
10885: LD_INT 3
10887: ST_TO_ADDR
// vc_weapon = us_double_gun ;
10888: LD_ADDR_OWVAR 40
10892: PUSH
10893: LD_INT 5
10895: ST_TO_ADDR
// end ; end ;
10896: GO 10899
10898: POP
// vc_control = control_manual ;
10899: LD_ADDR_OWVAR 38
10903: PUSH
10904: LD_INT 1
10906: ST_TO_ADDR
// vc_engine = engine_combustion ;
10907: LD_ADDR_OWVAR 39
10911: PUSH
10912: LD_INT 1
10914: ST_TO_ADDR
// amvb = createvehicle ;
10915: LD_ADDR_LOC 68
10919: PUSH
10920: CALL_OW 45
10924: ST_TO_ADDR
// setdir ( amvb , 2 ) ;
10925: LD_LOC 68
10929: PPUSH
10930: LD_INT 2
10932: PPUSH
10933: CALL_OW 233
// placeunitxyr ( amvb , 15 , 2 , 7 , false ) ;
10937: LD_LOC 68
10941: PPUSH
10942: LD_INT 15
10944: PPUSH
10945: LD_INT 2
10947: PPUSH
10948: LD_INT 7
10950: PPUSH
10951: LD_INT 0
10953: PPUSH
10954: CALL_OW 50
// placehumaninunit ( amhmechb , amvb ) ;
10958: LD_LOC 65
10962: PPUSH
10963: LD_LOC 68
10967: PPUSH
10968: CALL_OW 52
// case difficulty of 3 :
10972: LD_OWVAR 67
10976: PUSH
10977: LD_INT 3
10979: DOUBLE
10980: EQUAL
10981: IFTRUE 10985
10983: GO 11004
10985: POP
// begin vc_chassis = us_medium_wheeled ;
10986: LD_ADDR_OWVAR 37
10990: PUSH
10991: LD_INT 2
10993: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
10994: LD_ADDR_OWVAR 40
10998: PUSH
10999: LD_INT 4
11001: ST_TO_ADDR
// end ; 2 :
11002: GO 11059
11004: LD_INT 2
11006: DOUBLE
11007: EQUAL
11008: IFTRUE 11012
11010: GO 11031
11012: POP
// begin vc_chassis = us_heavy_tracked ;
11013: LD_ADDR_OWVAR 37
11017: PUSH
11018: LD_INT 4
11020: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
11021: LD_ADDR_OWVAR 40
11025: PUSH
11026: LD_INT 4
11028: ST_TO_ADDR
// end ; 1 :
11029: GO 11059
11031: LD_INT 1
11033: DOUBLE
11034: EQUAL
11035: IFTRUE 11039
11037: GO 11058
11039: POP
// begin vc_chassis = us_heavy_tracked ;
11040: LD_ADDR_OWVAR 37
11044: PUSH
11045: LD_INT 4
11047: ST_TO_ADDR
// vc_weapon = us_double_gun ;
11048: LD_ADDR_OWVAR 40
11052: PUSH
11053: LD_INT 5
11055: ST_TO_ADDR
// end ; end ;
11056: GO 11059
11058: POP
// vc_control = control_manual ;
11059: LD_ADDR_OWVAR 38
11063: PUSH
11064: LD_INT 1
11066: ST_TO_ADDR
// vc_engine = engine_combustion ;
11067: LD_ADDR_OWVAR 39
11071: PUSH
11072: LD_INT 1
11074: ST_TO_ADDR
// amvc = createvehicle ;
11075: LD_ADDR_LOC 69
11079: PUSH
11080: CALL_OW 45
11084: ST_TO_ADDR
// setdir ( amvc , 2 ) ;
11085: LD_LOC 69
11089: PPUSH
11090: LD_INT 2
11092: PPUSH
11093: CALL_OW 233
// placeunitxyr ( amvc , 15 , 2 , 7 , false ) ;
11097: LD_LOC 69
11101: PPUSH
11102: LD_INT 15
11104: PPUSH
11105: LD_INT 2
11107: PPUSH
11108: LD_INT 7
11110: PPUSH
11111: LD_INT 0
11113: PPUSH
11114: CALL_OW 50
// placehumaninunit ( amhmechc , amvc ) ;
11118: LD_LOC 66
11122: PPUSH
11123: LD_LOC 69
11127: PPUSH
11128: CALL_OW 52
// reinf_us = [ amhsoldb , amhsoldd , amva , amvb , amvc , amvd ] ;
11132: LD_ADDR_LOC 71
11136: PUSH
11137: LD_LOC 62
11141: PUSH
11142: LD_LOC 63
11146: PUSH
11147: LD_LOC 67
11151: PUSH
11152: LD_LOC 68
11156: PUSH
11157: LD_LOC 69
11161: PUSH
11162: LD_LOC 70
11166: PUSH
11167: EMPTY
11168: LIST
11169: LIST
11170: LIST
11171: LIST
11172: LIST
11173: LIST
11174: ST_TO_ADDR
// sikishere = true ;
11175: LD_ADDR_LOC 27
11179: PUSH
11180: LD_INT 1
11182: ST_TO_ADDR
// comagressivemove ( reinf_us , 36 , 30 ) ;
11183: LD_LOC 71
11187: PPUSH
11188: LD_INT 36
11190: PPUSH
11191: LD_INT 30
11193: PPUSH
11194: CALL_OW 114
// end ;
11198: END
// var time2go ; every 0 0$1 + 25 25$20 trigger not ( unitfilter ( reinf_us , [ [ f_ok ] ] ) diff filterunitsinarea ( wayarea0 , [ [ f_side , amer_reinf ] , [ f_ok ] ] ) ) do var tmp ;
11199: LD_LOC 71
11203: PPUSH
11204: LD_INT 50
11206: PUSH
11207: EMPTY
11208: LIST
11209: PUSH
11210: EMPTY
11211: LIST
11212: PPUSH
11213: CALL_OW 72
11217: PUSH
11218: LD_INT 2
11220: PPUSH
11221: LD_INT 22
11223: PUSH
11224: LD_EXP 3
11228: PUSH
11229: EMPTY
11230: LIST
11231: LIST
11232: PUSH
11233: LD_INT 50
11235: PUSH
11236: EMPTY
11237: LIST
11238: PUSH
11239: EMPTY
11240: LIST
11241: LIST
11242: PPUSH
11243: CALL_OW 70
11247: DIFF
11248: NOT
11249: IFFALSE 11521
11251: GO 11253
11253: DISABLE
11254: LD_INT 0
11256: PPUSH
// begin commovexy ( reinf_us , 53 , 24 ) ;
11257: LD_LOC 71
11261: PPUSH
11262: LD_INT 53
11264: PPUSH
11265: LD_INT 24
11267: PPUSH
11268: CALL_OW 111
// wait ( 0 0$11 ) ;
11272: LD_INT 385
11274: PPUSH
11275: CALL_OW 67
// tmp = tick ;
11279: LD_ADDR_VAR 0 1
11283: PUSH
11284: LD_OWVAR 1
11288: ST_TO_ADDR
// dialogueon ;
11289: CALL_OW 6
// say ( amhsolda , D5-Sik-1 ) ;
11293: LD_EXP 26
11297: PPUSH
11298: LD_STRING D5-Sik-1
11300: PPUSH
11301: CALL_OW 88
// if chciplo <= 3 then
11305: LD_LOC 23
11309: PUSH
11310: LD_INT 3
11312: LESSEQUAL
11313: IFFALSE 11329
// say ( john , D5-JMM-1a ) else
11315: LD_EXP 17
11319: PPUSH
11320: LD_STRING D5-JMM-1a
11322: PPUSH
11323: CALL_OW 88
11327: GO 11341
// say ( john , D5-JMM-1b ) ;
11329: LD_EXP 17
11333: PPUSH
11334: LD_STRING D5-JMM-1b
11336: PPUSH
11337: CALL_OW 88
// say ( amhsolda , D5-Sik-2 ) ;
11341: LD_EXP 26
11345: PPUSH
11346: LD_STRING D5-Sik-2
11348: PPUSH
11349: CALL_OW 88
// case query ( QSikorski ) of 1 :
11353: LD_STRING QSikorski
11355: PPUSH
11356: CALL_OW 97
11360: PUSH
11361: LD_INT 1
11363: DOUBLE
11364: EQUAL
11365: IFTRUE 11369
11367: GO 11398
11369: POP
// begin time2go = tmp + 1 1$0 ;
11370: LD_ADDR_LOC 72
11374: PUSH
11375: LD_VAR 0 1
11379: PUSH
11380: LD_INT 2100
11382: PLUS
11383: ST_TO_ADDR
// say ( amhsolda , D5a-Sik-1 ) ;
11384: LD_EXP 26
11388: PPUSH
11389: LD_STRING D5a-Sik-1
11391: PPUSH
11392: CALL_OW 88
// end ; 2 :
11396: GO 11497
11398: LD_INT 2
11400: DOUBLE
11401: EQUAL
11402: IFTRUE 11406
11404: GO 11435
11406: POP
// begin time2go = tmp + 5 5$0 ;
11407: LD_ADDR_LOC 72
11411: PUSH
11412: LD_VAR 0 1
11416: PUSH
11417: LD_INT 10500
11419: PLUS
11420: ST_TO_ADDR
// say ( amhsolda , D5b-Sik-1 ) ;
11421: LD_EXP 26
11425: PPUSH
11426: LD_STRING D5b-Sik-1
11428: PPUSH
11429: CALL_OW 88
// end ; 3 :
11433: GO 11497
11435: LD_INT 3
11437: DOUBLE
11438: EQUAL
11439: IFTRUE 11443
11441: GO 11496
11443: POP
// begin time2go = tmp + 5 5$0 ;
11444: LD_ADDR_LOC 72
11448: PUSH
11449: LD_VAR 0 1
11453: PUSH
11454: LD_INT 10500
11456: PLUS
11457: ST_TO_ADDR
// say ( amhsolda , D5c-Sik-1 ) ;
11458: LD_EXP 26
11462: PPUSH
11463: LD_STRING D5c-Sik-1
11465: PPUSH
11466: CALL_OW 88
// say ( john , D5c-JMM-1 ) ;
11470: LD_EXP 17
11474: PPUSH
11475: LD_STRING D5c-JMM-1
11477: PPUSH
11478: CALL_OW 88
// say ( amhsolda , D5c-Sik-2 ) ;
11482: LD_EXP 26
11486: PPUSH
11487: LD_STRING D5c-Sik-2
11489: PPUSH
11490: CALL_OW 88
// end ; end ;
11494: GO 11497
11496: POP
// dialogueoff ;
11497: CALL_OW 7
// display_strings = [ #Am08-1 , time2go ] ;
11501: LD_ADDR_OWVAR 47
11505: PUSH
11506: LD_STRING #Am08-1
11508: PUSH
11509: LD_LOC 72
11513: PUSH
11514: EMPTY
11515: LIST
11516: LIST
11517: ST_TO_ADDR
// enable ( 37 ) ;
11518: LD_INT 37
11520: ENABLE_MARKED
// end ;
11521: PPOPN 1
11523: END
// every 0 0$1 marked 37 do var tmp ;
11524: GO 11526
11526: DISABLE
11527: LD_INT 0
11529: PPUSH
// begin tmp = time2go - tick ;
11530: LD_ADDR_VAR 0 1
11534: PUSH
11535: LD_LOC 72
11539: PUSH
11540: LD_OWVAR 1
11544: MINUS
11545: ST_TO_ADDR
// if tmp < 0 then
11546: LD_VAR 0 1
11550: PUSH
11551: LD_INT 0
11553: LESS
11554: IFFALSE 11564
// tmp = 0 ;
11556: LD_ADDR_VAR 0 1
11560: PUSH
11561: LD_INT 0
11563: ST_TO_ADDR
// display_strings = [ #Am08-1 , tmp ] ;
11564: LD_ADDR_OWVAR 47
11568: PUSH
11569: LD_STRING #Am08-1
11571: PUSH
11572: LD_VAR 0 1
11576: PUSH
11577: EMPTY
11578: LIST
11579: LIST
11580: ST_TO_ADDR
// if tmp > 0 then
11581: LD_VAR 0 1
11585: PUSH
11586: LD_INT 0
11588: GREATER
11589: IFFALSE 11594
// enable else
11591: ENABLE
11592: GO 11601
// display_strings = [ ] ;
11594: LD_ADDR_OWVAR 47
11598: PUSH
11599: EMPTY
11600: ST_TO_ADDR
// end ;
11601: PPOPN 1
11603: END
// var combat_started ; every 0 0$1 + 26 26$20 trigger tick >= time2go do var ntmp ;
11604: LD_OWVAR 1
11608: PUSH
11609: LD_LOC 72
11613: GREATEREQUAL
11614: IFFALSE 11721
11616: GO 11618
11618: DISABLE
11619: LD_INT 0
11621: PPUSH
// begin manage_prebytek ( 1 ) ;
11622: LD_INT 1
11624: PPUSH
11625: CALL 3852 0 1
// commovetoarea ( prebytek , ar_exit_ ) ;
11629: LD_EXP 11
11633: PPUSH
11634: LD_INT 17
11636: PPUSH
11637: CALL_OW 113
// enable ( 27 ) ;
11641: LD_INT 27
11643: ENABLE_MARKED
// dialogueon ;
11644: CALL_OW 6
// say ( amhsolda , D6-Sik-1 ) ;
11648: LD_EXP 26
11652: PPUSH
11653: LD_STRING D6-Sik-1
11655: PPUSH
11656: CALL_OW 88
// changemissionobjectives ( M2 ) ;
11660: LD_STRING M2
11662: PPUSH
11663: CALL_OW 337
// dialogueoff ;
11667: CALL_OW 7
// combat_started = tick + 0 0$13 ;
11671: LD_ADDR_LOC 73
11675: PUSH
11676: LD_OWVAR 1
11680: PUSH
11681: LD_INT 455
11683: PLUS
11684: ST_TO_ADDR
// comagressivemove ( reinf_us , 63 , 63 ) ;
11685: LD_LOC 71
11689: PPUSH
11690: LD_INT 63
11692: PPUSH
11693: LD_INT 63
11695: PPUSH
11696: CALL_OW 114
// wait ( 0 0$11 ) ;
11700: LD_INT 385
11702: PPUSH
11703: CALL_OW 67
// comattackunit ( reinf_us , rubbunk0 ) ;
11707: LD_LOC 71
11711: PPUSH
11712: LD_LOC 7
11716: PPUSH
11717: CALL_OW 115
// end ;
11721: PPOPN 1
11723: END
// every 0 0$1 marked 27 do var tmp , tmp_ ;
11724: GO 11726
11726: DISABLE
11727: LD_INT 0
11729: PPUSH
11730: PPUSH
// begin tmp = filterunitsinarea ( ar_exit_ , [ [ f_side , rus ] ] ) ;
11731: LD_ADDR_VAR 0 1
11735: PUSH
11736: LD_INT 17
11738: PPUSH
11739: LD_INT 22
11741: PUSH
11742: LD_EXP 1
11746: PUSH
11747: EMPTY
11748: LIST
11749: LIST
11750: PUSH
11751: EMPTY
11752: LIST
11753: PPUSH
11754: CALL_OW 70
11758: ST_TO_ADDR
// for tmp_ in tmp do
11759: LD_ADDR_VAR 0 2
11763: PUSH
11764: LD_VAR 0 1
11768: PUSH
11769: FOR_IN
11770: IFFALSE 11783
// destroyunit ( tmp_ ) ;
11772: LD_VAR 0 2
11776: PPUSH
11777: CALL_OW 65
11781: GO 11769
11783: POP
11784: POP
// prebytek = prebytek diff tmp ;
11785: LD_ADDR_EXP 11
11789: PUSH
11790: LD_EXP 11
11794: PUSH
11795: LD_VAR 0 1
11799: DIFF
11800: ST_TO_ADDR
// if prebytek then
11801: LD_EXP 11
11805: IFFALSE 11820
// begin enable ;
11807: ENABLE
// commovetoarea ( prebytek , ar_exit_ ) ;
11808: LD_EXP 11
11812: PPUSH
11813: LD_INT 17
11815: PPUSH
11816: CALL_OW 113
// end ; end ;
11820: PPOPN 2
11822: END
// function utoci ( un ) ; var tmp , tmp_ , tmp__ ; begin
11823: LD_INT 0
11825: PPUSH
11826: PPUSH
11827: PPUSH
11828: PPUSH
// tmp = 0 ;
11829: LD_ADDR_VAR 0 3
11833: PUSH
11834: LD_INT 0
11836: ST_TO_ADDR
// if isinunit ( un ) then
11837: LD_VAR 0 1
11841: PPUSH
11842: CALL_OW 310
11846: IFFALSE 11900
// if gettype ( isinunit ( un ) ) = unit_vehicle then
11848: LD_VAR 0 1
11852: PPUSH
11853: CALL_OW 310
11857: PPUSH
11858: CALL_OW 247
11862: PUSH
11863: LD_INT 2
11865: EQUAL
11866: IFFALSE 11890
// tmp = wantstoattack ( isinunit ( un ) ) else
11868: LD_ADDR_VAR 0 3
11872: PUSH
11873: LD_VAR 0 1
11877: PPUSH
11878: CALL_OW 310
11882: PPUSH
11883: CALL_OW 319
11887: ST_TO_ADDR
11888: GO 11898
// tmp = 0 else
11890: LD_ADDR_VAR 0 3
11894: PUSH
11895: LD_INT 0
11897: ST_TO_ADDR
11898: GO 11915
// tmp = wantstoattack ( un ) ;
11900: LD_ADDR_VAR 0 3
11904: PUSH
11905: LD_VAR 0 1
11909: PPUSH
11910: CALL_OW 319
11914: ST_TO_ADDR
// if tmp then
11915: LD_VAR 0 3
11919: IFFALSE 11931
// result = 1 else
11921: LD_ADDR_VAR 0 2
11925: PUSH
11926: LD_INT 1
11928: ST_TO_ADDR
11929: GO 11939
// result = 0 ;
11931: LD_ADDR_VAR 0 2
11935: PUSH
11936: LD_INT 0
11938: ST_TO_ADDR
// end ;
11939: LD_VAR 0 2
11943: RET
// var jmm_zbabelec ; every 0 0$1 + 26 26$21 trigger tick >= time2go and ( tick >= combat_started ) and filterunitsinarea ( rubaserng , [ [ f_side , amer_reinf ] ] ) do var tmp ;
11944: LD_OWVAR 1
11948: PUSH
11949: LD_LOC 72
11953: GREATEREQUAL
11954: PUSH
11955: LD_OWVAR 1
11959: PUSH
11960: LD_LOC 73
11964: GREATEREQUAL
11965: AND
11966: PUSH
11967: LD_INT 7
11969: PPUSH
11970: LD_INT 22
11972: PUSH
11973: LD_EXP 3
11977: PUSH
11978: EMPTY
11979: LIST
11980: LIST
11981: PUSH
11982: EMPTY
11983: LIST
11984: PPUSH
11985: CALL_OW 70
11989: AND
11990: IFFALSE 12196
11992: GO 11994
11994: DISABLE
11995: LD_INT 0
11997: PPUSH
// begin dialogueon ;
11998: CALL_OW 6
// say ( amhsolda , D7-Sik-1 ) ;
12002: LD_EXP 26
12006: PPUSH
12007: LD_STRING D7-Sik-1
12009: PPUSH
12010: CALL_OW 88
// jmm_zbabelec = false ;
12014: LD_ADDR_LOC 74
12018: PUSH
12019: LD_INT 0
12021: ST_TO_ADDR
// tmp = nearestunittounit ( filterallunits ( [ [ f_side , rus ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) , john ) ;
12022: LD_ADDR_VAR 0 1
12026: PUSH
12027: LD_INT 22
12029: PUSH
12030: LD_EXP 1
12034: PUSH
12035: EMPTY
12036: LIST
12037: LIST
12038: PUSH
12039: LD_INT 2
12041: PUSH
12042: LD_INT 21
12044: PUSH
12045: LD_INT 1
12047: PUSH
12048: EMPTY
12049: LIST
12050: LIST
12051: PUSH
12052: LD_INT 21
12054: PUSH
12055: LD_INT 2
12057: PUSH
12058: EMPTY
12059: LIST
12060: LIST
12061: PUSH
12062: EMPTY
12063: LIST
12064: LIST
12065: LIST
12066: PUSH
12067: EMPTY
12068: LIST
12069: LIST
12070: PPUSH
12071: CALL_OW 69
12075: PPUSH
12076: LD_EXP 17
12080: PPUSH
12081: CALL_OW 74
12085: ST_TO_ADDR
// if ( getdistunits ( john , amhsolda ) <= maxsikjmmdist ) or utoci ( john ) or ( getdistunits ( john , tmp ) <= maxsikjmmdist ) or isinarea ( john , rubaserng ) then
12086: LD_EXP 17
12090: PPUSH
12091: LD_EXP 26
12095: PPUSH
12096: CALL_OW 296
12100: PUSH
12101: LD_LOC 29
12105: LESSEQUAL
12106: PUSH
12107: LD_EXP 17
12111: PPUSH
12112: CALL 11823 0 1
12116: OR
12117: PUSH
12118: LD_EXP 17
12122: PPUSH
12123: LD_VAR 0 1
12127: PPUSH
12128: CALL_OW 296
12132: PUSH
12133: LD_LOC 29
12137: LESSEQUAL
12138: OR
12139: PUSH
12140: LD_EXP 17
12144: PPUSH
12145: LD_INT 7
12147: PPUSH
12148: CALL_OW 308
12152: OR
12153: IFFALSE 12169
// say ( amhsolda , D7a-Sik-1 ) else
12155: LD_EXP 26
12159: PPUSH
12160: LD_STRING D7a-Sik-1
12162: PPUSH
12163: CALL_OW 88
12167: GO 12189
// begin say ( amhsolda , D7b-Sik-1 ) ;
12169: LD_EXP 26
12173: PPUSH
12174: LD_STRING D7b-Sik-1
12176: PPUSH
12177: CALL_OW 88
// jmm_zbabelec = true ;
12181: LD_ADDR_LOC 74
12185: PUSH
12186: LD_INT 1
12188: ST_TO_ADDR
// end ; dialogueoff ;
12189: CALL_OW 7
// enable ( 03 ) ;
12193: LD_INT 3
12195: ENABLE_MARKED
// end ;
12196: PPOPN 1
12198: END
// var countdist , totalatt ; every 0 0$0.3 marked 03 do var tmp ;
12199: GO 12201
12201: DISABLE
12202: LD_INT 0
12204: PPUSH
// begin if debug then
12205: LD_EXP 13
12209: IFFALSE 12230
// debug_strings = [ totalatt , countdist ] ;
12211: LD_ADDR_OWVAR 48
12215: PUSH
12216: LD_LOC 76
12220: PUSH
12221: LD_LOC 75
12225: PUSH
12226: EMPTY
12227: LIST
12228: LIST
12229: ST_TO_ADDR
// if retreat >= 0 then
12230: LD_EXP 5
12234: PUSH
12235: LD_INT 0
12237: GREATEREQUAL
12238: IFFALSE 12242
// exit ;
12240: GO 12400
// tmp = nearestunittounit ( filterallunits ( [ [ f_side , rus ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) , john ) ;
12242: LD_ADDR_VAR 0 1
12246: PUSH
12247: LD_INT 22
12249: PUSH
12250: LD_EXP 1
12254: PUSH
12255: EMPTY
12256: LIST
12257: LIST
12258: PUSH
12259: LD_INT 2
12261: PUSH
12262: LD_INT 21
12264: PUSH
12265: LD_INT 1
12267: PUSH
12268: EMPTY
12269: LIST
12270: LIST
12271: PUSH
12272: LD_INT 21
12274: PUSH
12275: LD_INT 2
12277: PUSH
12278: EMPTY
12279: LIST
12280: LIST
12281: PUSH
12282: EMPTY
12283: LIST
12284: LIST
12285: LIST
12286: PUSH
12287: EMPTY
12288: LIST
12289: LIST
12290: PPUSH
12291: CALL_OW 69
12295: PPUSH
12296: LD_EXP 17
12300: PPUSH
12301: CALL_OW 74
12305: ST_TO_ADDR
// totalatt = totalatt + ( ( getdistunits ( john , amhsolda ) <= maxsikjmmdist ) or utoci ( john ) or ( getdistunits ( john , tmp ) <= maxsikjmmdist ) or isinarea ( john , rubaserng ) ) ;
12306: LD_ADDR_LOC 76
12310: PUSH
12311: LD_LOC 76
12315: PUSH
12316: LD_EXP 17
12320: PPUSH
12321: LD_EXP 26
12325: PPUSH
12326: CALL_OW 296
12330: PUSH
12331: LD_LOC 29
12335: LESSEQUAL
12336: PUSH
12337: LD_EXP 17
12341: PPUSH
12342: CALL 11823 0 1
12346: OR
12347: PUSH
12348: LD_EXP 17
12352: PPUSH
12353: LD_VAR 0 1
12357: PPUSH
12358: CALL_OW 296
12362: PUSH
12363: LD_LOC 29
12367: LESSEQUAL
12368: OR
12369: PUSH
12370: LD_EXP 17
12374: PPUSH
12375: LD_INT 7
12377: PPUSH
12378: CALL_OW 308
12382: OR
12383: PLUS
12384: ST_TO_ADDR
// countdist = countdist + 1 ;
12385: LD_ADDR_LOC 75
12389: PUSH
12390: LD_LOC 75
12394: PUSH
12395: LD_INT 1
12397: PLUS
12398: ST_TO_ADDR
// enable ;
12399: ENABLE
// end ;
12400: PPOPN 1
12402: END
// on unitgoestored ( un ) do begin if ( getside ( un ) = rus ) and ( gettype ( un ) = unit_vehicle ) and ( getcontrol ( un ) = control_computer ) then
12403: LD_VAR 0 1
12407: PPUSH
12408: CALL_OW 255
12412: PUSH
12413: LD_EXP 1
12417: EQUAL
12418: PUSH
12419: LD_VAR 0 1
12423: PPUSH
12424: CALL_OW 247
12428: PUSH
12429: LD_INT 2
12431: EQUAL
12432: AND
12433: PUSH
12434: LD_VAR 0 1
12438: PPUSH
12439: CALL_OW 263
12443: PUSH
12444: LD_INT 3
12446: EQUAL
12447: AND
12448: IFFALSE 12479
// aiv_met = [ getx ( un ) , gety ( un ) ] ;
12450: LD_ADDR_LOC 25
12454: PUSH
12455: LD_VAR 0 1
12459: PPUSH
12460: CALL_OW 250
12464: PUSH
12465: LD_VAR 0 1
12469: PPUSH
12470: CALL_OW 251
12474: PUSH
12475: EMPTY
12476: LIST
12477: LIST
12478: ST_TO_ADDR
// end ;
12479: PPOPN 1
12481: END
// every 0 0$0.7 trigger aiv_met do var tmp1 , dc_time , tmp2 , sizes ;
12482: LD_LOC 25
12486: IFFALSE 13908
12488: GO 12490
12490: DISABLE
12491: LD_INT 0
12493: PPUSH
12494: PPUSH
12495: PPUSH
12496: PPUSH
// begin sizes = [ 5 , 7 , 10 , 14 , 20 , 50 ] ;
12497: LD_ADDR_VAR 0 4
12501: PUSH
12502: LD_INT 5
12504: PUSH
12505: LD_INT 7
12507: PUSH
12508: LD_INT 10
12510: PUSH
12511: LD_INT 14
12513: PUSH
12514: LD_INT 20
12516: PUSH
12517: LD_INT 50
12519: PUSH
12520: EMPTY
12521: LIST
12522: LIST
12523: LIST
12524: LIST
12525: LIST
12526: LIST
12527: ST_TO_ADDR
// dc_time = tick ;
12528: LD_ADDR_VAR 0 2
12532: PUSH
12533: LD_OWVAR 1
12537: ST_TO_ADDR
// if debug then
12538: LD_EXP 13
12542: IFFALSE 12553
// msg ( aiv_met ) ;
12544: LD_LOC 25
12548: PPUSH
12549: CALL_OW 100
// tmp2 = 1 ;
12553: LD_ADDR_VAR 0 3
12557: PUSH
12558: LD_INT 1
12560: ST_TO_ADDR
// tmp1 = filterallunits ( [ [ f_side , amer ] , [ f_distxy , aiv_met [ 1 ] , aiv_met [ 2 ] , sizes [ tmp2 ] ] , f_not , [ f_nation , nation_nature ] , f_not , [ f_type , unit_building ] ] ) ;
12561: LD_ADDR_VAR 0 1
12565: PUSH
12566: LD_INT 22
12568: PUSH
12569: LD_EXP 2
12573: PUSH
12574: EMPTY
12575: LIST
12576: LIST
12577: PUSH
12578: LD_INT 92
12580: PUSH
12581: LD_LOC 25
12585: PUSH
12586: LD_INT 1
12588: ARRAY
12589: PUSH
12590: LD_LOC 25
12594: PUSH
12595: LD_INT 2
12597: ARRAY
12598: PUSH
12599: LD_VAR 0 4
12603: PUSH
12604: LD_VAR 0 3
12608: ARRAY
12609: PUSH
12610: EMPTY
12611: LIST
12612: LIST
12613: LIST
12614: LIST
12615: PUSH
12616: LD_INT 3
12618: PUSH
12619: LD_INT 23
12621: PUSH
12622: LD_INT 0
12624: PUSH
12625: EMPTY
12626: LIST
12627: LIST
12628: PUSH
12629: LD_INT 3
12631: PUSH
12632: LD_INT 21
12634: PUSH
12635: LD_INT 3
12637: PUSH
12638: EMPTY
12639: LIST
12640: LIST
12641: PUSH
12642: EMPTY
12643: LIST
12644: LIST
12645: LIST
12646: LIST
12647: LIST
12648: LIST
12649: PPUSH
12650: CALL_OW 69
12654: ST_TO_ADDR
// if not tmp1 then
12655: LD_VAR 0 1
12659: NOT
12660: IFFALSE 12764
// begin tmp2 = 2 ;
12662: LD_ADDR_VAR 0 3
12666: PUSH
12667: LD_INT 2
12669: ST_TO_ADDR
// tmp1 = filterallunits ( [ [ f_side , amer ] , [ f_distxy , aiv_met [ 1 ] , aiv_met [ 2 ] , sizes [ tmp2 ] ] , f_not , [ f_nation , nation_nature ] , f_not , [ f_type , unit_building ] ] ) ;
12670: LD_ADDR_VAR 0 1
12674: PUSH
12675: LD_INT 22
12677: PUSH
12678: LD_EXP 2
12682: PUSH
12683: EMPTY
12684: LIST
12685: LIST
12686: PUSH
12687: LD_INT 92
12689: PUSH
12690: LD_LOC 25
12694: PUSH
12695: LD_INT 1
12697: ARRAY
12698: PUSH
12699: LD_LOC 25
12703: PUSH
12704: LD_INT 2
12706: ARRAY
12707: PUSH
12708: LD_VAR 0 4
12712: PUSH
12713: LD_VAR 0 3
12717: ARRAY
12718: PUSH
12719: EMPTY
12720: LIST
12721: LIST
12722: LIST
12723: LIST
12724: PUSH
12725: LD_INT 3
12727: PUSH
12728: LD_INT 23
12730: PUSH
12731: LD_INT 0
12733: PUSH
12734: EMPTY
12735: LIST
12736: LIST
12737: PUSH
12738: LD_INT 3
12740: PUSH
12741: LD_INT 21
12743: PUSH
12744: LD_INT 3
12746: PUSH
12747: EMPTY
12748: LIST
12749: LIST
12750: PUSH
12751: EMPTY
12752: LIST
12753: LIST
12754: LIST
12755: LIST
12756: LIST
12757: LIST
12758: PPUSH
12759: CALL_OW 69
12763: ST_TO_ADDR
// end ; if not tmp1 then
12764: LD_VAR 0 1
12768: NOT
12769: IFFALSE 12873
// begin tmp2 = 3 ;
12771: LD_ADDR_VAR 0 3
12775: PUSH
12776: LD_INT 3
12778: ST_TO_ADDR
// tmp1 = filterallunits ( [ [ f_side , amer ] , [ f_distxy , aiv_met [ 1 ] , aiv_met [ 2 ] , sizes [ tmp2 ] ] , f_not , [ f_nation , nation_nature ] , f_not , [ f_type , unit_building ] ] ) ;
12779: LD_ADDR_VAR 0 1
12783: PUSH
12784: LD_INT 22
12786: PUSH
12787: LD_EXP 2
12791: PUSH
12792: EMPTY
12793: LIST
12794: LIST
12795: PUSH
12796: LD_INT 92
12798: PUSH
12799: LD_LOC 25
12803: PUSH
12804: LD_INT 1
12806: ARRAY
12807: PUSH
12808: LD_LOC 25
12812: PUSH
12813: LD_INT 2
12815: ARRAY
12816: PUSH
12817: LD_VAR 0 4
12821: PUSH
12822: LD_VAR 0 3
12826: ARRAY
12827: PUSH
12828: EMPTY
12829: LIST
12830: LIST
12831: LIST
12832: LIST
12833: PUSH
12834: LD_INT 3
12836: PUSH
12837: LD_INT 23
12839: PUSH
12840: LD_INT 0
12842: PUSH
12843: EMPTY
12844: LIST
12845: LIST
12846: PUSH
12847: LD_INT 3
12849: PUSH
12850: LD_INT 21
12852: PUSH
12853: LD_INT 3
12855: PUSH
12856: EMPTY
12857: LIST
12858: LIST
12859: PUSH
12860: EMPTY
12861: LIST
12862: LIST
12863: LIST
12864: LIST
12865: LIST
12866: LIST
12867: PPUSH
12868: CALL_OW 69
12872: ST_TO_ADDR
// end ; if not tmp1 then
12873: LD_VAR 0 1
12877: NOT
12878: IFFALSE 12982
// begin tmp2 = 4 ;
12880: LD_ADDR_VAR 0 3
12884: PUSH
12885: LD_INT 4
12887: ST_TO_ADDR
// tmp1 = filterallunits ( [ [ f_side , amer ] , [ f_distxy , aiv_met [ 1 ] , aiv_met [ 2 ] , sizes [ tmp2 ] ] , f_not , [ f_nation , nation_nature ] , f_not , [ f_type , unit_building ] ] ) ;
12888: LD_ADDR_VAR 0 1
12892: PUSH
12893: LD_INT 22
12895: PUSH
12896: LD_EXP 2
12900: PUSH
12901: EMPTY
12902: LIST
12903: LIST
12904: PUSH
12905: LD_INT 92
12907: PUSH
12908: LD_LOC 25
12912: PUSH
12913: LD_INT 1
12915: ARRAY
12916: PUSH
12917: LD_LOC 25
12921: PUSH
12922: LD_INT 2
12924: ARRAY
12925: PUSH
12926: LD_VAR 0 4
12930: PUSH
12931: LD_VAR 0 3
12935: ARRAY
12936: PUSH
12937: EMPTY
12938: LIST
12939: LIST
12940: LIST
12941: LIST
12942: PUSH
12943: LD_INT 3
12945: PUSH
12946: LD_INT 23
12948: PUSH
12949: LD_INT 0
12951: PUSH
12952: EMPTY
12953: LIST
12954: LIST
12955: PUSH
12956: LD_INT 3
12958: PUSH
12959: LD_INT 21
12961: PUSH
12962: LD_INT 3
12964: PUSH
12965: EMPTY
12966: LIST
12967: LIST
12968: PUSH
12969: EMPTY
12970: LIST
12971: LIST
12972: LIST
12973: LIST
12974: LIST
12975: LIST
12976: PPUSH
12977: CALL_OW 69
12981: ST_TO_ADDR
// end ; if not tmp1 then
12982: LD_VAR 0 1
12986: NOT
12987: IFFALSE 13091
// begin tmp2 = 5 ;
12989: LD_ADDR_VAR 0 3
12993: PUSH
12994: LD_INT 5
12996: ST_TO_ADDR
// tmp1 = filterallunits ( [ [ f_side , amer ] , [ f_distxy , aiv_met [ 1 ] , aiv_met [ 2 ] , sizes [ tmp2 ] ] , f_not , [ f_nation , nation_nature ] , f_not , [ f_type , unit_building ] ] ) ;
12997: LD_ADDR_VAR 0 1
13001: PUSH
13002: LD_INT 22
13004: PUSH
13005: LD_EXP 2
13009: PUSH
13010: EMPTY
13011: LIST
13012: LIST
13013: PUSH
13014: LD_INT 92
13016: PUSH
13017: LD_LOC 25
13021: PUSH
13022: LD_INT 1
13024: ARRAY
13025: PUSH
13026: LD_LOC 25
13030: PUSH
13031: LD_INT 2
13033: ARRAY
13034: PUSH
13035: LD_VAR 0 4
13039: PUSH
13040: LD_VAR 0 3
13044: ARRAY
13045: PUSH
13046: EMPTY
13047: LIST
13048: LIST
13049: LIST
13050: LIST
13051: PUSH
13052: LD_INT 3
13054: PUSH
13055: LD_INT 23
13057: PUSH
13058: LD_INT 0
13060: PUSH
13061: EMPTY
13062: LIST
13063: LIST
13064: PUSH
13065: LD_INT 3
13067: PUSH
13068: LD_INT 21
13070: PUSH
13071: LD_INT 3
13073: PUSH
13074: EMPTY
13075: LIST
13076: LIST
13077: PUSH
13078: EMPTY
13079: LIST
13080: LIST
13081: LIST
13082: LIST
13083: LIST
13084: LIST
13085: PPUSH
13086: CALL_OW 69
13090: ST_TO_ADDR
// end ; if not tmp1 then
13091: LD_VAR 0 1
13095: NOT
13096: IFFALSE 13200
// begin tmp2 = 6 ;
13098: LD_ADDR_VAR 0 3
13102: PUSH
13103: LD_INT 6
13105: ST_TO_ADDR
// tmp1 = filterallunits ( [ [ f_side , amer ] , [ f_distxy , aiv_met [ 1 ] , aiv_met [ 2 ] , sizes [ tmp2 ] ] , f_not , [ f_nation , nation_nature ] , f_not , [ f_type , unit_building ] ] ) ;
13106: LD_ADDR_VAR 0 1
13110: PUSH
13111: LD_INT 22
13113: PUSH
13114: LD_EXP 2
13118: PUSH
13119: EMPTY
13120: LIST
13121: LIST
13122: PUSH
13123: LD_INT 92
13125: PUSH
13126: LD_LOC 25
13130: PUSH
13131: LD_INT 1
13133: ARRAY
13134: PUSH
13135: LD_LOC 25
13139: PUSH
13140: LD_INT 2
13142: ARRAY
13143: PUSH
13144: LD_VAR 0 4
13148: PUSH
13149: LD_VAR 0 3
13153: ARRAY
13154: PUSH
13155: EMPTY
13156: LIST
13157: LIST
13158: LIST
13159: LIST
13160: PUSH
13161: LD_INT 3
13163: PUSH
13164: LD_INT 23
13166: PUSH
13167: LD_INT 0
13169: PUSH
13170: EMPTY
13171: LIST
13172: LIST
13173: PUSH
13174: LD_INT 3
13176: PUSH
13177: LD_INT 21
13179: PUSH
13180: LD_INT 3
13182: PUSH
13183: EMPTY
13184: LIST
13185: LIST
13186: PUSH
13187: EMPTY
13188: LIST
13189: LIST
13190: LIST
13191: LIST
13192: LIST
13193: LIST
13194: PPUSH
13195: CALL_OW 69
13199: ST_TO_ADDR
// end ; if not tmp1 then
13200: LD_VAR 0 1
13204: NOT
13205: IFFALSE 13270
// begin tmp2 = 7 ;
13207: LD_ADDR_VAR 0 3
13211: PUSH
13212: LD_INT 7
13214: ST_TO_ADDR
// tmp1 = filterallunits ( [ [ f_side , amer ] , f_not , [ f_nation , nation_nature ] , f_not , [ f_type , unit_building ] ] ) ;
13215: LD_ADDR_VAR 0 1
13219: PUSH
13220: LD_INT 22
13222: PUSH
13223: LD_EXP 2
13227: PUSH
13228: EMPTY
13229: LIST
13230: LIST
13231: PUSH
13232: LD_INT 3
13234: PUSH
13235: LD_INT 23
13237: PUSH
13238: LD_INT 0
13240: PUSH
13241: EMPTY
13242: LIST
13243: LIST
13244: PUSH
13245: LD_INT 3
13247: PUSH
13248: LD_INT 21
13250: PUSH
13251: LD_INT 3
13253: PUSH
13254: EMPTY
13255: LIST
13256: LIST
13257: PUSH
13258: EMPTY
13259: LIST
13260: LIST
13261: LIST
13262: LIST
13263: LIST
13264: PPUSH
13265: CALL_OW 69
13269: ST_TO_ADDR
// end ; if tmp1 then
13270: LD_VAR 0 1
13274: IFFALSE 13908
// begin tmp1 = tmp1 [ 1 ] ;
13276: LD_ADDR_VAR 0 1
13280: PUSH
13281: LD_VAR 0 1
13285: PUSH
13286: LD_INT 1
13288: ARRAY
13289: ST_TO_ADDR
// case gettype ( tmp1 ) of unit_human :
13290: LD_VAR 0 1
13294: PPUSH
13295: CALL_OW 247
13299: PUSH
13300: LD_INT 1
13302: DOUBLE
13303: EQUAL
13304: IFTRUE 13308
13306: GO 13321
13308: POP
// tmp1 = tmp1 ; unit_vehicle :
13309: LD_ADDR_VAR 0 1
13313: PUSH
13314: LD_VAR 0 1
13318: ST_TO_ADDR
13319: GO 13400
13321: LD_INT 2
13323: DOUBLE
13324: EQUAL
13325: IFTRUE 13329
13327: GO 13397
13329: POP
// begin case getcontrol ( tmp1 ) of control_manual :
13330: LD_VAR 0 1
13334: PPUSH
13335: CALL_OW 263
13339: PUSH
13340: LD_INT 1
13342: DOUBLE
13343: EQUAL
13344: IFTRUE 13348
13346: GO 13366
13348: POP
// tmp1 = isdrivenby ( tmp1 ) ; control_remote :
13349: LD_ADDR_VAR 0 1
13353: PUSH
13354: LD_VAR 0 1
13358: PPUSH
13359: CALL_OW 311
13363: ST_TO_ADDR
13364: GO 13395
13366: LD_INT 2
13368: DOUBLE
13369: EQUAL
13370: IFTRUE 13374
13372: GO 13392
13374: POP
// tmp1 = iscontroledby ( tmp1 ) ; else
13375: LD_ADDR_VAR 0 1
13379: PUSH
13380: LD_VAR 0 1
13384: PPUSH
13385: CALL_OW 312
13389: ST_TO_ADDR
13390: GO 13395
13392: POP
// exit ; end ;
13393: GO 13908
// end ; else
13395: GO 13400
13397: POP
// exit ; end ;
13398: GO 13908
// centernowonxy ( aiv_met [ 1 ] , aiv_met [ 2 ] ) ;
13400: LD_LOC 25
13404: PUSH
13405: LD_INT 1
13407: ARRAY
13408: PPUSH
13409: LD_LOC 25
13413: PUSH
13414: LD_INT 2
13416: ARRAY
13417: PPUSH
13418: CALL_OW 86
// wait ( 0 0$1 ) ;
13422: LD_INT 35
13424: PPUSH
13425: CALL_OW 67
// dialogueon ;
13429: CALL_OW 6
// if getsex ( tmp1 ) = sex_male then
13433: LD_VAR 0 1
13437: PPUSH
13438: CALL_OW 258
13442: PUSH
13443: LD_INT 1
13445: EQUAL
13446: IFFALSE 13462
// say ( tmp1 , DC-Sol1-1 ) else
13448: LD_VAR 0 1
13452: PPUSH
13453: LD_STRING DC-Sol1-1
13455: PPUSH
13456: CALL_OW 88
13460: GO 13474
// say ( tmp1 , DC-FSol1-1 ) ;
13462: LD_VAR 0 1
13466: PPUSH
13467: LD_STRING DC-FSol1-1
13469: PPUSH
13470: CALL_OW 88
// if dc_time < ( return_time + 0 0$5 ) then
13474: LD_VAR 0 2
13478: PUSH
13479: LD_EXP 29
13483: PUSH
13484: LD_INT 175
13486: PLUS
13487: LESS
13488: IFFALSE 13504
// begin dialcb_delayed = true ;
13490: LD_ADDR_LOC 26
13494: PUSH
13495: LD_INT 1
13497: ST_TO_ADDR
// dialogueoff ;
13498: CALL_OW 7
// end else
13502: GO 13908
// begin if getsex ( tmp1 ) = sex_female then
13504: LD_VAR 0 1
13508: PPUSH
13509: CALL_OW 258
13513: PUSH
13514: LD_INT 2
13516: EQUAL
13517: IFFALSE 13854
// begin if tmp2 <= 6 then
13519: LD_VAR 0 3
13523: PUSH
13524: LD_INT 6
13526: LESSEQUAL
13527: IFFALSE 13630
// tmp1 = filterallunits ( [ [ f_side , amer ] , [ f_sex , sex_male ] , [ f_distxy , aiv_met [ 1 ] , aiv_met [ 2 ] , sizes [ tmp2 ] ] , f_not , [ f_nation , nation_nature ] ] ) diff [ john ] else
13529: LD_ADDR_VAR 0 1
13533: PUSH
13534: LD_INT 22
13536: PUSH
13537: LD_EXP 2
13541: PUSH
13542: EMPTY
13543: LIST
13544: LIST
13545: PUSH
13546: LD_INT 26
13548: PUSH
13549: LD_INT 1
13551: PUSH
13552: EMPTY
13553: LIST
13554: LIST
13555: PUSH
13556: LD_INT 92
13558: PUSH
13559: LD_LOC 25
13563: PUSH
13564: LD_INT 1
13566: ARRAY
13567: PUSH
13568: LD_LOC 25
13572: PUSH
13573: LD_INT 2
13575: ARRAY
13576: PUSH
13577: LD_VAR 0 4
13581: PUSH
13582: LD_VAR 0 3
13586: ARRAY
13587: PUSH
13588: EMPTY
13589: LIST
13590: LIST
13591: LIST
13592: LIST
13593: PUSH
13594: LD_INT 3
13596: PUSH
13597: LD_INT 23
13599: PUSH
13600: LD_INT 0
13602: PUSH
13603: EMPTY
13604: LIST
13605: LIST
13606: PUSH
13607: EMPTY
13608: LIST
13609: LIST
13610: LIST
13611: LIST
13612: LIST
13613: PPUSH
13614: CALL_OW 69
13618: PUSH
13619: LD_EXP 17
13623: PUSH
13624: EMPTY
13625: LIST
13626: DIFF
13627: ST_TO_ADDR
13628: GO 13690
// tmp1 = filterallunits ( [ [ f_side , amer ] , [ f_sex , sex_male ] , f_not , [ f_nation , nation_nature ] ] ) diff [ john ] ;
13630: LD_ADDR_VAR 0 1
13634: PUSH
13635: LD_INT 22
13637: PUSH
13638: LD_EXP 2
13642: PUSH
13643: EMPTY
13644: LIST
13645: LIST
13646: PUSH
13647: LD_INT 26
13649: PUSH
13650: LD_INT 1
13652: PUSH
13653: EMPTY
13654: LIST
13655: LIST
13656: PUSH
13657: LD_INT 3
13659: PUSH
13660: LD_INT 23
13662: PUSH
13663: LD_INT 0
13665: PUSH
13666: EMPTY
13667: LIST
13668: LIST
13669: PUSH
13670: EMPTY
13671: LIST
13672: LIST
13673: LIST
13674: LIST
13675: PPUSH
13676: CALL_OW 69
13680: PUSH
13681: LD_EXP 17
13685: PUSH
13686: EMPTY
13687: LIST
13688: DIFF
13689: ST_TO_ADDR
// while not tmp1 and ( tmp2 < 6 ) do
13690: LD_VAR 0 1
13694: NOT
13695: PUSH
13696: LD_VAR 0 3
13700: PUSH
13701: LD_INT 6
13703: LESS
13704: AND
13705: IFFALSE 13822
// begin tmp2 = tmp2 + 1 ;
13707: LD_ADDR_VAR 0 3
13711: PUSH
13712: LD_VAR 0 3
13716: PUSH
13717: LD_INT 1
13719: PLUS
13720: ST_TO_ADDR
// tmp1 = filterallunits ( [ [ f_side , amer ] , [ f_sex , sex_male ] , [ f_distxy , aiv_met [ 1 ] , aiv_met [ 2 ] , sizes [ tmp2 ] ] , f_not , [ f_nation , nation_nature ] ] ) diff [ john ] ;
13721: LD_ADDR_VAR 0 1
13725: PUSH
13726: LD_INT 22
13728: PUSH
13729: LD_EXP 2
13733: PUSH
13734: EMPTY
13735: LIST
13736: LIST
13737: PUSH
13738: LD_INT 26
13740: PUSH
13741: LD_INT 1
13743: PUSH
13744: EMPTY
13745: LIST
13746: LIST
13747: PUSH
13748: LD_INT 92
13750: PUSH
13751: LD_LOC 25
13755: PUSH
13756: LD_INT 1
13758: ARRAY
13759: PUSH
13760: LD_LOC 25
13764: PUSH
13765: LD_INT 2
13767: ARRAY
13768: PUSH
13769: LD_VAR 0 4
13773: PUSH
13774: LD_VAR 0 3
13778: ARRAY
13779: PUSH
13780: EMPTY
13781: LIST
13782: LIST
13783: LIST
13784: LIST
13785: PUSH
13786: LD_INT 3
13788: PUSH
13789: LD_INT 23
13791: PUSH
13792: LD_INT 0
13794: PUSH
13795: EMPTY
13796: LIST
13797: LIST
13798: PUSH
13799: EMPTY
13800: LIST
13801: LIST
13802: LIST
13803: LIST
13804: LIST
13805: PPUSH
13806: CALL_OW 69
13810: PUSH
13811: LD_EXP 17
13815: PUSH
13816: EMPTY
13817: LIST
13818: DIFF
13819: ST_TO_ADDR
// end ;
13820: GO 13690
// if tmp1 then
13822: LD_VAR 0 1
13826: IFFALSE 13844
// tmp1 = tmp1 [ 1 ] else
13828: LD_ADDR_VAR 0 1
13832: PUSH
13833: LD_VAR 0 1
13837: PUSH
13838: LD_INT 1
13840: ARRAY
13841: ST_TO_ADDR
13842: GO 13854
// tmp1 = john ;
13844: LD_ADDR_VAR 0 1
13848: PUSH
13849: LD_EXP 17
13853: ST_TO_ADDR
// end ; say ( john , DCb-JMM-1 ) ;
13854: LD_EXP 17
13858: PPUSH
13859: LD_STRING DCb-JMM-1
13861: PPUSH
13862: CALL_OW 88
// say ( tmp1 , DCb-Sol1-1 ) ;
13866: LD_VAR 0 1
13870: PPUSH
13871: LD_STRING DCb-Sol1-1
13873: PPUSH
13874: CALL_OW 88
// say ( john , DCb-JMM-2 ) ;
13878: LD_EXP 17
13882: PPUSH
13883: LD_STRING DCb-JMM-2
13885: PPUSH
13886: CALL_OW 88
// dialogueoff ;
13890: CALL_OW 7
// wait ( 0 0$0.5 ) ;
13894: LD_INT 18
13896: PPUSH
13897: CALL_OW 67
// hint ( ComputerCapturing ) ;
13901: LD_STRING ComputerCapturing
13903: PPUSH
13904: CALL_OW 339
// end ; end ; end ;
13908: PPOPN 4
13910: END
// every 0 0$1 trigger unitfilter ( filterallunits ( [ [ f_side , rus ] , [ f_ok ] ] ) , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ) <= 7 do
13911: LD_INT 22
13913: PUSH
13914: LD_EXP 1
13918: PUSH
13919: EMPTY
13920: LIST
13921: LIST
13922: PUSH
13923: LD_INT 50
13925: PUSH
13926: EMPTY
13927: LIST
13928: PUSH
13929: EMPTY
13930: LIST
13931: LIST
13932: PPUSH
13933: CALL_OW 69
13937: PPUSH
13938: LD_INT 2
13940: PUSH
13941: LD_INT 21
13943: PUSH
13944: LD_INT 1
13946: PUSH
13947: EMPTY
13948: LIST
13949: LIST
13950: PUSH
13951: LD_INT 21
13953: PUSH
13954: LD_INT 2
13956: PUSH
13957: EMPTY
13958: LIST
13959: LIST
13960: PUSH
13961: EMPTY
13962: LIST
13963: LIST
13964: LIST
13965: PPUSH
13966: CALL_OW 72
13970: PUSH
13971: LD_INT 7
13973: LESSEQUAL
13974: IFFALSE 14169
13976: GO 13978
13978: DISABLE
// begin retreat = 5 ;
13979: LD_ADDR_EXP 5
13983: PUSH
13984: LD_INT 5
13986: ST_TO_ADDR
// disable ( 17 ) ;
13987: LD_INT 17
13989: DISABLE_MARKED
// commovetoarea ( filterallunits ( [ [ f_side , rus ] , [ f_ok ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) , ar_exit ) ;
13990: LD_INT 22
13992: PUSH
13993: LD_EXP 1
13997: PUSH
13998: EMPTY
13999: LIST
14000: LIST
14001: PUSH
14002: LD_INT 50
14004: PUSH
14005: EMPTY
14006: LIST
14007: PUSH
14008: LD_INT 2
14010: PUSH
14011: LD_INT 21
14013: PUSH
14014: LD_INT 1
14016: PUSH
14017: EMPTY
14018: LIST
14019: LIST
14020: PUSH
14021: LD_INT 21
14023: PUSH
14024: LD_INT 2
14026: PUSH
14027: EMPTY
14028: LIST
14029: LIST
14030: PUSH
14031: EMPTY
14032: LIST
14033: LIST
14034: LIST
14035: PUSH
14036: EMPTY
14037: LIST
14038: LIST
14039: LIST
14040: PPUSH
14041: CALL_OW 69
14045: PPUSH
14046: LD_INT 16
14048: PPUSH
14049: CALL_OW 113
// changesidefog ( rus , amer ) ;
14053: LD_EXP 1
14057: PPUSH
14058: LD_EXP 2
14062: PPUSH
14063: CALL_OW 343
// setattitude ( rus , amer , att_friend , false ) ;
14067: LD_EXP 1
14071: PPUSH
14072: LD_EXP 2
14076: PPUSH
14077: LD_INT 1
14079: PPUSH
14080: LD_INT 0
14082: PPUSH
14083: CALL_OW 80
// commovetoarea ( filterunitsexceptarea ( dropzone , [ [ f_or , [ f_side , amer ] , [ f_side , amer_reinf ] ] , [ f_ok ] ] ) , ar_exit_AM ) ;
14087: LD_INT 6
14089: PPUSH
14090: LD_INT 2
14092: PUSH
14093: LD_INT 22
14095: PUSH
14096: LD_EXP 2
14100: PUSH
14101: EMPTY
14102: LIST
14103: LIST
14104: PUSH
14105: LD_INT 22
14107: PUSH
14108: LD_EXP 3
14112: PUSH
14113: EMPTY
14114: LIST
14115: LIST
14116: PUSH
14117: EMPTY
14118: LIST
14119: LIST
14120: LIST
14121: PUSH
14122: LD_INT 50
14124: PUSH
14125: EMPTY
14126: LIST
14127: PUSH
14128: EMPTY
14129: LIST
14130: LIST
14131: PPUSH
14132: CALL_OW 71
14136: PPUSH
14137: LD_INT 18
14139: PPUSH
14140: CALL_OW 113
// ingame_video = true ;
14144: LD_ADDR_OWVAR 52
14148: PUSH
14149: LD_INT 1
14151: ST_TO_ADDR
// interface_hidden = true ;
14152: LD_ADDR_OWVAR 54
14156: PUSH
14157: LD_INT 1
14159: ST_TO_ADDR
// centeronunits ( zbytek ) ;
14160: LD_LOC 77
14164: PPUSH
14165: CALL_OW 85
// end ;
14169: END
// var zbytek ; var i , pompoc ; every 0 0$0.7 do var zbytek2 ;
14170: GO 14172
14172: DISABLE
14173: LD_INT 0
14175: PPUSH
// begin case retreat of - 1 :
14176: LD_EXP 5
14180: PUSH
14181: LD_INT 1
14183: NEG
14184: DOUBLE
14185: EQUAL
14186: IFTRUE 14190
14188: GO 14194
14190: POP
// begin enable ;
14191: ENABLE
// end ; 4 :
14192: GO 14538
14194: LD_INT 4
14196: DOUBLE
14197: EQUAL
14198: IFTRUE 14202
14200: GO 14450
14202: POP
// begin pompoc = pompoc + 1 ;
14203: LD_ADDR_LOC 79
14207: PUSH
14208: LD_LOC 79
14212: PUSH
14213: LD_INT 1
14215: PLUS
14216: ST_TO_ADDR
// zbytek = filterallunits ( [ [ f_side , rus ] , [ f_ok ] , [ f_or , [ f_type , unit_human ] , [ f_and , [ f_type , unit_vehicle ] , [ f_occupied ] ] ] ] ) ;
14217: LD_ADDR_LOC 77
14221: PUSH
14222: LD_INT 22
14224: PUSH
14225: LD_EXP 1
14229: PUSH
14230: EMPTY
14231: LIST
14232: LIST
14233: PUSH
14234: LD_INT 50
14236: PUSH
14237: EMPTY
14238: LIST
14239: PUSH
14240: LD_INT 2
14242: PUSH
14243: LD_INT 21
14245: PUSH
14246: LD_INT 1
14248: PUSH
14249: EMPTY
14250: LIST
14251: LIST
14252: PUSH
14253: LD_INT 1
14255: PUSH
14256: LD_INT 21
14258: PUSH
14259: LD_INT 2
14261: PUSH
14262: EMPTY
14263: LIST
14264: LIST
14265: PUSH
14266: LD_INT 59
14268: PUSH
14269: EMPTY
14270: LIST
14271: PUSH
14272: EMPTY
14273: LIST
14274: LIST
14275: LIST
14276: PUSH
14277: EMPTY
14278: LIST
14279: LIST
14280: LIST
14281: PUSH
14282: EMPTY
14283: LIST
14284: LIST
14285: LIST
14286: PPUSH
14287: CALL_OW 69
14291: ST_TO_ADDR
// zbytek2 = filterunitsinarea ( ar_exit , [ [ f_side , rus ] , [ f_ok ] ] ) ;
14292: LD_ADDR_VAR 0 1
14296: PUSH
14297: LD_INT 16
14299: PPUSH
14300: LD_INT 22
14302: PUSH
14303: LD_EXP 1
14307: PUSH
14308: EMPTY
14309: LIST
14310: LIST
14311: PUSH
14312: LD_INT 50
14314: PUSH
14315: EMPTY
14316: LIST
14317: PUSH
14318: EMPTY
14319: LIST
14320: LIST
14321: PPUSH
14322: CALL_OW 70
14326: ST_TO_ADDR
// zbytek = zbytek diff zbytek2 ;
14327: LD_ADDR_LOC 77
14331: PUSH
14332: LD_LOC 77
14336: PUSH
14337: LD_VAR 0 1
14341: DIFF
14342: ST_TO_ADDR
// for i in zbytek2 do
14343: LD_ADDR_LOC 78
14347: PUSH
14348: LD_VAR 0 1
14352: PUSH
14353: FOR_IN
14354: IFFALSE 14367
// destroyunit ( i ) ;
14356: LD_LOC 78
14360: PPUSH
14361: CALL_OW 65
14365: GO 14353
14367: POP
14368: POP
// if zbytek then
14369: LD_LOC 77
14373: IFFALSE 14432
// begin centeronunits ( zbytek ) ;
14375: LD_LOC 77
14379: PPUSH
14380: CALL_OW 85
// enable ;
14384: ENABLE
// if pompoc = 3 then
14385: LD_LOC 79
14389: PUSH
14390: LD_INT 3
14392: EQUAL
14393: IFFALSE 14430
// begin commovetoarea ( zbytek , ar_exit ) ;
14395: LD_LOC 77
14399: PPUSH
14400: LD_INT 16
14402: PPUSH
14403: CALL_OW 113
// addcommovexy ( zbytek , 126 , 98 ) ;
14407: LD_LOC 77
14411: PPUSH
14412: LD_INT 126
14414: PPUSH
14415: LD_INT 98
14417: PPUSH
14418: CALL_OW 171
// pompoc = 0 ;
14422: LD_ADDR_LOC 79
14426: PUSH
14427: LD_INT 0
14429: ST_TO_ADDR
// end end else
14430: GO 14448
// begin ingame_video = false ;
14432: LD_ADDR_OWVAR 52
14436: PUSH
14437: LD_INT 0
14439: ST_TO_ADDR
// interface_hidden = false ;
14440: LD_ADDR_OWVAR 54
14444: PUSH
14445: LD_INT 0
14447: ST_TO_ADDR
// end ; end ; else
14448: GO 14538
14450: POP
// begin disable ( 17 ) ;
14451: LD_INT 17
14453: DISABLE_MARKED
// zbytek = filterunitsinarea ( ar_exit , [ [ f_side , rus ] , [ f_ok ] ] ) ;
14454: LD_ADDR_LOC 77
14458: PUSH
14459: LD_INT 16
14461: PPUSH
14462: LD_INT 22
14464: PUSH
14465: LD_EXP 1
14469: PUSH
14470: EMPTY
14471: LIST
14472: LIST
14473: PUSH
14474: LD_INT 50
14476: PUSH
14477: EMPTY
14478: LIST
14479: PUSH
14480: EMPTY
14481: LIST
14482: LIST
14483: PPUSH
14484: CALL_OW 70
14488: ST_TO_ADDR
// for i in zbytek do
14489: LD_ADDR_LOC 78
14493: PUSH
14494: LD_LOC 77
14498: PUSH
14499: FOR_IN
14500: IFFALSE 14513
// destroyunit ( i ) ;
14502: LD_LOC 78
14506: PPUSH
14507: CALL_OW 65
14511: GO 14499
14513: POP
14514: POP
// retreat = retreat - 1 ;
14515: LD_ADDR_EXP 5
14519: PUSH
14520: LD_EXP 5
14524: PUSH
14525: LD_INT 1
14527: MINUS
14528: ST_TO_ADDR
// pompoc = 0 ;
14529: LD_ADDR_LOC 79
14533: PUSH
14534: LD_INT 0
14536: ST_TO_ADDR
// enable ;
14537: ENABLE
// end ; end ; end ;
14538: PPOPN 1
14540: END
// every 0 0$1 + 1 1$0 trigger not filterallunits ( [ [ f_side , rus ] , [ f_ok ] , [ f_type , unit_human ] ] ) do
14541: LD_INT 22
14543: PUSH
14544: LD_EXP 1
14548: PUSH
14549: EMPTY
14550: LIST
14551: LIST
14552: PUSH
14553: LD_INT 50
14555: PUSH
14556: EMPTY
14557: LIST
14558: PUSH
14559: LD_INT 21
14561: PUSH
14562: LD_INT 1
14564: PUSH
14565: EMPTY
14566: LIST
14567: LIST
14568: PUSH
14569: EMPTY
14570: LIST
14571: LIST
14572: LIST
14573: PPUSH
14574: CALL_OW 69
14578: NOT
14579: IFFALSE 14880
14581: GO 14583
14583: DISABLE
// begin exclusiveon ;
14584: CALL_OW 4
// stop_action = true ;
14588: LD_ADDR_OWVAR 55
14592: PUSH
14593: LD_INT 1
14595: ST_TO_ADDR
// if ( totalatt * 5 ) < countdist then
14596: LD_LOC 76
14600: PUSH
14601: LD_INT 5
14603: MUL
14604: PUSH
14605: LD_LOC 75
14609: LESS
14610: IFFALSE 14651
// if islive ( amhsolda ) then
14612: LD_EXP 26
14616: PPUSH
14617: CALL_OW 300
14621: IFFALSE 14637
// sayradio ( powel , D8b-Pow-1 ) else
14623: LD_EXP 16
14627: PPUSH
14628: LD_STRING D8b-Pow-1
14630: PPUSH
14631: CALL_OW 94
14635: GO 14649
// sayradio ( powel , D8a-Pow-1 ) else
14637: LD_EXP 16
14641: PPUSH
14642: LD_STRING D8a-Pow-1
14644: PPUSH
14645: CALL_OW 94
14649: GO 14674
// if islive ( amhsolda ) then
14651: LD_EXP 26
14655: PPUSH
14656: CALL_OW 300
14660: IFFALSE 14674
// say ( amhsolda , D9-Sik-1 ) ;
14662: LD_EXP 26
14666: PPUSH
14667: LD_STRING D9-Sik-1
14669: PPUSH
14670: CALL_OW 88
// stop_action = false ;
14674: LD_ADDR_OWVAR 55
14678: PUSH
14679: LD_INT 0
14681: ST_TO_ADDR
// exclusiveoff ;
14682: CALL_OW 5
// wait ( 0 0$0.5 ) ;
14686: LD_INT 18
14688: PPUSH
14689: CALL_OW 67
// if ( totalatt * 5 ) < countdist then
14693: LD_LOC 76
14697: PUSH
14698: LD_INT 5
14700: MUL
14701: PUSH
14702: LD_LOC 75
14706: LESS
14707: IFFALSE 14718
// youlost ( Dismissed ) else
14709: LD_STRING Dismissed
14711: PPUSH
14712: CALL_OW 104
14716: GO 14880
// begin if tick < 12 12$00 then
14718: LD_OWVAR 1
14722: PUSH
14723: LD_INT 25200
14725: LESS
14726: IFFALSE 14732
// SA_Rush ;
14728: CALL 25775 0 0
// if FilterAllUnits ( [ f_side , 4 ] ) = 0 then
14732: LD_INT 22
14734: PUSH
14735: LD_INT 4
14737: PUSH
14738: EMPTY
14739: LIST
14740: LIST
14741: PPUSH
14742: CALL_OW 69
14746: PUSH
14747: LD_INT 0
14749: EQUAL
14750: IFFALSE 14756
// SA_WithoutHelp ;
14752: CALL 25760 0 0
// addmedal ( nothing1 , 1 ) ;
14756: LD_STRING nothing1
14758: PPUSH
14759: LD_INT 1
14761: PPUSH
14762: CALL_OW 101
// addmedal ( nothing2 , 1 ) ;
14766: LD_STRING nothing2
14768: PPUSH
14769: LD_INT 1
14771: PPUSH
14772: CALL_OW 101
// addmedal ( perfect , 1 ) ;
14776: LD_STRING perfect
14778: PPUSH
14779: LD_INT 1
14781: PPUSH
14782: CALL_OW 101
// SA_EndMission ( 1 , 8 , true , true , true ) ;
14786: LD_INT 1
14788: PPUSH
14789: LD_INT 8
14791: PPUSH
14792: LD_INT 1
14794: PPUSH
14795: LD_INT 1
14797: PPUSH
14798: LD_INT 1
14800: PPUSH
14801: CALL 25790 0 5
// givemedals ( Main ) ;
14805: LD_STRING Main
14807: PPUSH
14808: CALL_OW 102
// rewardpeople ( filterallunits ( [ [ f_alive ] , [ f_side , amer ] , [ f_type , unit_human ] , [ f_not , [ f_nation , nation_nature ] ] ] ) ) ;
14812: LD_INT 51
14814: PUSH
14815: EMPTY
14816: LIST
14817: PUSH
14818: LD_INT 22
14820: PUSH
14821: LD_EXP 2
14825: PUSH
14826: EMPTY
14827: LIST
14828: LIST
14829: PUSH
14830: LD_INT 21
14832: PUSH
14833: LD_INT 1
14835: PUSH
14836: EMPTY
14837: LIST
14838: LIST
14839: PUSH
14840: LD_INT 3
14842: PUSH
14843: LD_INT 23
14845: PUSH
14846: LD_INT 0
14848: PUSH
14849: EMPTY
14850: LIST
14851: LIST
14852: PUSH
14853: EMPTY
14854: LIST
14855: LIST
14856: PUSH
14857: EMPTY
14858: LIST
14859: LIST
14860: LIST
14861: LIST
14862: PPUSH
14863: CALL_OW 69
14867: PPUSH
14868: CALL_OW 43
// saveitall ;
14872: CALL 16517 0 0
// youwin ;
14876: CALL_OW 103
// end ; end ;
14880: END
// every 0 0$1 trigger john and not islive ( john ) do
14881: LD_EXP 17
14885: PUSH
14886: LD_EXP 17
14890: PPUSH
14891: CALL_OW 300
14895: NOT
14896: AND
14897: IFFALSE 14916
14899: GO 14901
14901: DISABLE
// begin wait ( 0 0$1 ) ;
14902: LD_INT 35
14904: PPUSH
14905: CALL_OW 67
// youlost ( JMM ) ;
14909: LD_STRING JMM
14911: PPUSH
14912: CALL_OW 104
// end ;
14916: END
// every 0 0$1 + 3 trigger not filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] , f_not , [ f_nation , nation_nature ] ] ) do
14917: LD_INT 22
14919: PUSH
14920: LD_EXP 2
14924: PUSH
14925: EMPTY
14926: LIST
14927: LIST
14928: PUSH
14929: LD_INT 21
14931: PUSH
14932: LD_INT 1
14934: PUSH
14935: EMPTY
14936: LIST
14937: LIST
14938: PUSH
14939: LD_INT 50
14941: PUSH
14942: EMPTY
14943: LIST
14944: PUSH
14945: LD_INT 3
14947: PUSH
14948: LD_INT 23
14950: PUSH
14951: LD_INT 0
14953: PUSH
14954: EMPTY
14955: LIST
14956: LIST
14957: PUSH
14958: EMPTY
14959: LIST
14960: LIST
14961: LIST
14962: LIST
14963: LIST
14964: PPUSH
14965: CALL_OW 69
14969: NOT
14970: IFFALSE 14982
14972: GO 14974
14974: DISABLE
// youlost ( Destroyed ) ;
14975: LD_STRING Destroyed
14977: PPUSH
14978: CALL_OW 104
14982: END
// every 0 0$3 + 30 30$1 trigger sikishere and ( tick > combat_started ) do var tmp , tmq ;
14983: LD_LOC 27
14987: PUSH
14988: LD_OWVAR 1
14992: PUSH
14993: LD_LOC 73
14997: GREATER
14998: AND
14999: IFFALSE 15102
15001: GO 15003
15003: DISABLE
15004: LD_INT 0
15006: PPUSH
15007: PPUSH
// begin tmq = true ;
15008: LD_ADDR_VAR 0 2
15012: PUSH
15013: LD_INT 1
15015: ST_TO_ADDR
// for tmp in reinf_us do
15016: LD_ADDR_VAR 0 1
15020: PUSH
15021: LD_LOC 71
15025: PUSH
15026: FOR_IN
15027: IFFALSE 15064
// tmq = tmq and ( not islive ( tmp ) or isdying ( tmp ) ) ;
15029: LD_ADDR_VAR 0 2
15033: PUSH
15034: LD_VAR 0 2
15038: PUSH
15039: LD_VAR 0 1
15043: PPUSH
15044: CALL_OW 300
15048: NOT
15049: PUSH
15050: LD_VAR 0 1
15054: PPUSH
15055: CALL_OW 303
15059: OR
15060: AND
15061: ST_TO_ADDR
15062: GO 15026
15064: POP
15065: POP
// if tmq then
15066: LD_VAR 0 2
15070: IFFALSE 15101
// begin dialogueon ;
15072: CALL_OW 6
// sayradio ( powel , D8c-Pow-1 ) ;
15076: LD_EXP 16
15080: PPUSH
15081: LD_STRING D8c-Pow-1
15083: PPUSH
15084: CALL_OW 94
// dialogueoff ;
15088: CALL_OW 7
// youlost ( Dismissed ) ;
15092: LD_STRING Dismissed
15094: PPUSH
15095: CALL_OW 104
// end else
15099: GO 15102
// enable ;
15101: ENABLE
// end ;
15102: PPOPN 2
15104: END
// every 0 0$1 trigger not filterallunits ( [ [ f_side , amer ] , [ f_type , unit_building ] ] ) do
15105: LD_INT 22
15107: PUSH
15108: LD_EXP 2
15112: PUSH
15113: EMPTY
15114: LIST
15115: LIST
15116: PUSH
15117: LD_INT 21
15119: PUSH
15120: LD_INT 3
15122: PUSH
15123: EMPTY
15124: LIST
15125: LIST
15126: PUSH
15127: EMPTY
15128: LIST
15129: LIST
15130: PPUSH
15131: CALL_OW 69
15135: NOT
15136: IFFALSE 15155
15138: GO 15140
15140: DISABLE
// begin wait ( 0 0$3 ) ;
15141: LD_INT 105
15143: PPUSH
15144: CALL_OW 67
// youlost ( Destroyed ) ;
15148: LD_STRING Destroyed
15150: PPUSH
15151: CALL_OW 104
// end ;
15155: END
// on Command ( com ) do var i , j , temp , x , y , typeTask ;
15156: LD_INT 0
15158: PPUSH
15159: PPUSH
15160: PPUSH
15161: PPUSH
15162: PPUSH
15163: PPUSH
// begin for i in FilterAllUnits ( [ [ f_side , amer ] , [ f_type , unit_human ] ] ) do
15164: LD_ADDR_VAR 0 2
15168: PUSH
15169: LD_INT 22
15171: PUSH
15172: LD_EXP 2
15176: PUSH
15177: EMPTY
15178: LIST
15179: LIST
15180: PUSH
15181: LD_INT 21
15183: PUSH
15184: LD_INT 1
15186: PUSH
15187: EMPTY
15188: LIST
15189: LIST
15190: PUSH
15191: EMPTY
15192: LIST
15193: LIST
15194: PPUSH
15195: CALL_OW 69
15199: PUSH
15200: FOR_IN
15201: IFFALSE 15407
// if GetTaskList ( i ) > 0 then
15203: LD_VAR 0 2
15207: PPUSH
15208: CALL_OW 437
15212: PUSH
15213: LD_INT 0
15215: GREATER
15216: IFFALSE 15405
// for j = 1 to GetTaskList ( i ) do
15218: LD_ADDR_VAR 0 3
15222: PUSH
15223: DOUBLE
15224: LD_INT 1
15226: DEC
15227: ST_TO_ADDR
15228: LD_VAR 0 2
15232: PPUSH
15233: CALL_OW 437
15237: PUSH
15238: FOR_TO
15239: IFFALSE 15403
// begin temp = GetTaskList ( i ) [ j ] [ 4 ] ;
15241: LD_ADDR_VAR 0 4
15245: PUSH
15246: LD_VAR 0 2
15250: PPUSH
15251: CALL_OW 437
15255: PUSH
15256: LD_VAR 0 3
15260: ARRAY
15261: PUSH
15262: LD_INT 4
15264: ARRAY
15265: ST_TO_ADDR
// x = GetTaskList ( i ) [ j ] [ 2 ] ;
15266: LD_ADDR_VAR 0 5
15270: PUSH
15271: LD_VAR 0 2
15275: PPUSH
15276: CALL_OW 437
15280: PUSH
15281: LD_VAR 0 3
15285: ARRAY
15286: PUSH
15287: LD_INT 2
15289: ARRAY
15290: ST_TO_ADDR
// y = GetTaskList ( i ) [ j ] [ 3 ] ;
15291: LD_ADDR_VAR 0 6
15295: PUSH
15296: LD_VAR 0 2
15300: PPUSH
15301: CALL_OW 437
15305: PUSH
15306: LD_VAR 0 3
15310: ARRAY
15311: PUSH
15312: LD_INT 3
15314: ARRAY
15315: ST_TO_ADDR
// typeTask = GetTaskList ( i ) [ j ] [ 1 ] ;
15316: LD_ADDR_VAR 0 7
15320: PUSH
15321: LD_VAR 0 2
15325: PPUSH
15326: CALL_OW 437
15330: PUSH
15331: LD_VAR 0 3
15335: ARRAY
15336: PUSH
15337: LD_INT 1
15339: ARRAY
15340: ST_TO_ADDR
// if x > 0 and y > 0 and typeTask = B and InArea ( x , y , BlockBuildArea ) then
15341: LD_VAR 0 5
15345: PUSH
15346: LD_INT 0
15348: GREATER
15349: PUSH
15350: LD_VAR 0 6
15354: PUSH
15355: LD_INT 0
15357: GREATER
15358: AND
15359: PUSH
15360: LD_VAR 0 7
15364: PUSH
15365: LD_STRING B
15367: EQUAL
15368: AND
15369: PUSH
15370: LD_VAR 0 5
15374: PPUSH
15375: LD_VAR 0 6
15379: PPUSH
15380: LD_INT 19
15382: PPUSH
15383: CALL_OW 309
15387: AND
15388: IFFALSE 15401
// SetTaskList ( i , [ ] ) ;
15390: LD_VAR 0 2
15394: PPUSH
15395: EMPTY
15396: PPUSH
15397: CALL_OW 446
// end ;
15401: GO 15238
15403: POP
15404: POP
15405: GO 15200
15407: POP
15408: POP
// end ;
15409: PPOPN 7
15411: END
// function return_am ; var pom ; begin
15412: LD_INT 0
15414: PPUSH
15415: PPUSH
// pom = FilterUnitsInArea ( ar_exit , [ [ f_side , amer ] ] ) ;
15416: LD_ADDR_VAR 0 2
15420: PUSH
15421: LD_INT 16
15423: PPUSH
15424: LD_INT 22
15426: PUSH
15427: LD_EXP 2
15431: PUSH
15432: EMPTY
15433: LIST
15434: LIST
15435: PUSH
15436: EMPTY
15437: LIST
15438: PPUSH
15439: CALL_OW 70
15443: ST_TO_ADDR
// ComMoveToArea ( pom , ar_exit_AM ) ;
15444: LD_VAR 0 2
15448: PPUSH
15449: LD_INT 18
15451: PPUSH
15452: CALL_OW 113
// end ;
15456: LD_VAR 0 1
15460: RET
// every 0 0$1 do var pom ;
15461: GO 15463
15463: DISABLE
15464: LD_INT 0
15466: PPUSH
// begin pom = FilterUnitsInArea ( ar_exit , [ [ f_side , amer ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
15467: LD_ADDR_VAR 0 1
15471: PUSH
15472: LD_INT 16
15474: PPUSH
15475: LD_INT 22
15477: PUSH
15478: LD_EXP 2
15482: PUSH
15483: EMPTY
15484: LIST
15485: LIST
15486: PUSH
15487: LD_INT 2
15489: PUSH
15490: LD_INT 21
15492: PUSH
15493: LD_INT 2
15495: PUSH
15496: EMPTY
15497: LIST
15498: LIST
15499: PUSH
15500: LD_INT 21
15502: PUSH
15503: LD_INT 1
15505: PUSH
15506: EMPTY
15507: LIST
15508: LIST
15509: PUSH
15510: EMPTY
15511: LIST
15512: LIST
15513: LIST
15514: PUSH
15515: EMPTY
15516: LIST
15517: LIST
15518: PPUSH
15519: CALL_OW 70
15523: ST_TO_ADDR
// if pom > 0 then
15524: LD_VAR 0 1
15528: PUSH
15529: LD_INT 0
15531: GREATER
15532: IFFALSE 15538
// begin return_am ;
15534: CALL 15412 0 0
// end ; enable ;
15538: ENABLE
// end ; end_of_file
15539: PPOPN 1
15541: END
// var healeri_mimo ; function healeri_mimo_rb ; begin
15542: LD_INT 0
15544: PPUSH
// healeri_mimo = healeri diff filterunitsinarea ( repairbay , [ [ f_type , unit_human ] , [ f_ok ] ] ) ;
15545: LD_ADDR_LOC 80
15549: PUSH
15550: LD_EXP 12
15554: PUSH
15555: LD_INT 5
15557: PPUSH
15558: LD_INT 21
15560: PUSH
15561: LD_INT 1
15563: PUSH
15564: EMPTY
15565: LIST
15566: LIST
15567: PUSH
15568: LD_INT 50
15570: PUSH
15571: EMPTY
15572: LIST
15573: PUSH
15574: EMPTY
15575: LIST
15576: LIST
15577: PPUSH
15578: CALL_OW 70
15582: DIFF
15583: ST_TO_ADDR
// result = healeri_mimo ;
15584: LD_ADDR_VAR 0 1
15588: PUSH
15589: LD_LOC 80
15593: ST_TO_ADDR
// end ;
15594: LD_VAR 0 1
15598: RET
// every 0 0$0.9 trigger healeri_mimo_rb marked 17 do
15599: CALL 15542 0 0
15603: IFFALSE 15636
15605: GO 15607
15607: DISABLE
// begin if retreat >= 0 then
15608: LD_EXP 5
15612: PUSH
15613: LD_INT 0
15615: GREATEREQUAL
15616: IFFALSE 15620
// exit ;
15618: GO 15636
// commovexy ( healeri_mimo , 84 , 90 ) ;
15620: LD_LOC 80
15624: PPUSH
15625: LD_INT 84
15627: PPUSH
15628: LD_INT 90
15630: PPUSH
15631: CALL_OW 111
// enable ;
15635: ENABLE
// end ;
15636: END
// var poskoz_ ; var kn_ ; every 0 0$0.7 do
15637: GO 15639
15639: DISABLE
// begin if retreat >= 0 then
15640: LD_EXP 5
15644: PUSH
15645: LD_INT 0
15647: GREATEREQUAL
15648: IFFALSE 15652
// exit ;
15650: GO 15862
// poskoz_ = unitfilter ( rusove0 , [ [ f_type , unit_vehicle ] ] ) ;
15652: LD_ADDR_LOC 81
15656: PUSH
15657: LD_EXP 14
15661: PPUSH
15662: LD_INT 21
15664: PUSH
15665: LD_INT 2
15667: PUSH
15668: EMPTY
15669: LIST
15670: LIST
15671: PUSH
15672: EMPTY
15673: LIST
15674: PPUSH
15675: CALL_OW 72
15679: ST_TO_ADDR
// for kn_ in poskoz_ do
15680: LD_ADDR_LOC 82
15684: PUSH
15685: LD_LOC 81
15689: PUSH
15690: FOR_IN
15691: IFFALSE 15747
// begin if getlives ( kn_ ) <= hr_auta then
15693: LD_LOC 82
15697: PPUSH
15698: CALL_OW 256
15702: PUSH
15703: LD_EXP 9
15707: LESSEQUAL
15708: IFFALSE 15745
// begin rusove0 = rusove0 diff kn_ ;
15710: LD_ADDR_EXP 14
15714: PUSH
15715: LD_EXP 14
15719: PUSH
15720: LD_LOC 82
15724: DIFF
15725: ST_TO_ADDR
// poskoz = poskoz ^ [ kn_ ] ;
15726: LD_ADDR_EXP 6
15730: PUSH
15731: LD_EXP 6
15735: PUSH
15736: LD_LOC 82
15740: PUSH
15741: EMPTY
15742: LIST
15743: ADD
15744: ST_TO_ADDR
// end ; end ;
15745: GO 15690
15747: POP
15748: POP
// poskoz_ = unitfilter ( rusove0 , [ [ f_type , unit_human ] ] ) ;
15749: LD_ADDR_LOC 81
15753: PUSH
15754: LD_EXP 14
15758: PPUSH
15759: LD_INT 21
15761: PUSH
15762: LD_INT 1
15764: PUSH
15765: EMPTY
15766: LIST
15767: LIST
15768: PUSH
15769: EMPTY
15770: LIST
15771: PPUSH
15772: CALL_OW 72
15776: ST_TO_ADDR
// for kn_ in poskoz_ do
15777: LD_ADDR_LOC 82
15781: PUSH
15782: LD_LOC 81
15786: PUSH
15787: FOR_IN
15788: IFFALSE 15844
// begin if getlives ( kn_ ) <= hr_lidi then
15790: LD_LOC 82
15794: PPUSH
15795: CALL_OW 256
15799: PUSH
15800: LD_EXP 8
15804: LESSEQUAL
15805: IFFALSE 15842
// begin rusove0 = rusove0 diff kn_ ;
15807: LD_ADDR_EXP 14
15811: PUSH
15812: LD_EXP 14
15816: PUSH
15817: LD_LOC 82
15821: DIFF
15822: ST_TO_ADDR
// poskoz = poskoz ^ [ kn_ ] ;
15823: LD_ADDR_EXP 6
15827: PUSH
15828: LD_EXP 6
15832: PUSH
15833: LD_LOC 82
15837: PUSH
15838: EMPTY
15839: LIST
15840: ADD
15841: ST_TO_ADDR
// end ; end ;
15842: GO 15787
15844: POP
15845: POP
// commovexy ( poskoz , 86 , 92 ) ;
15846: LD_EXP 6
15850: PPUSH
15851: LD_INT 86
15853: PPUSH
15854: LD_INT 92
15856: PPUSH
15857: CALL_OW 111
// enable ;
15861: ENABLE
// end ;
15862: END
// var pom_rupo ; var driver ; var kn__ ; every 0 0$1.5 do var poskpom , p95 ;
15863: GO 15865
15865: DISABLE
15866: LD_INT 0
15868: PPUSH
15869: PPUSH
// begin if retreat >= 0 then
15870: LD_EXP 5
15874: PUSH
15875: LD_INT 0
15877: GREATEREQUAL
15878: IFFALSE 15882
// exit ;
15880: GO 16413
// poskpom = poskoz ;
15882: LD_ADDR_VAR 0 1
15886: PUSH
15887: LD_EXP 6
15891: ST_TO_ADDR
// poskoz = [ ] ;
15892: LD_ADDR_EXP 6
15896: PUSH
15897: EMPTY
15898: ST_TO_ADDR
// for p95 in poskpom do
15899: LD_ADDR_VAR 0 2
15903: PUSH
15904: LD_VAR 0 1
15908: PUSH
15909: FOR_IN
15910: IFFALSE 15944
// if islive ( p95 ) then
15912: LD_VAR 0 2
15916: PPUSH
15917: CALL_OW 300
15921: IFFALSE 15942
// poskoz = poskoz ^ [ p95 ] ;
15923: LD_ADDR_EXP 6
15927: PUSH
15928: LD_EXP 6
15932: PUSH
15933: LD_VAR 0 2
15937: PUSH
15938: EMPTY
15939: LIST
15940: ADD
15941: ST_TO_ADDR
15942: GO 15909
15944: POP
15945: POP
// pom_rupo = filterunitsinarea ( repairbay , [ [ f_side , rus ] , [ f_type , unit_vehicle ] ] ) isect poskoz ;
15946: LD_ADDR_LOC 83
15950: PUSH
15951: LD_INT 5
15953: PPUSH
15954: LD_INT 22
15956: PUSH
15957: LD_EXP 1
15961: PUSH
15962: EMPTY
15963: LIST
15964: LIST
15965: PUSH
15966: LD_INT 21
15968: PUSH
15969: LD_INT 2
15971: PUSH
15972: EMPTY
15973: LIST
15974: LIST
15975: PUSH
15976: EMPTY
15977: LIST
15978: LIST
15979: PPUSH
15980: CALL_OW 70
15984: PUSH
15985: LD_EXP 6
15989: ISECT
15990: ST_TO_ADDR
// for kn__ in pom_rupo do
15991: LD_ADDR_LOC 85
15995: PUSH
15996: LD_LOC 83
16000: PUSH
16001: FOR_IN
16002: IFFALSE 16212
// begin driver = isdrivenby ( kn__ ) ;
16004: LD_ADDR_LOC 84
16008: PUSH
16009: LD_LOC 85
16013: PPUSH
16014: CALL_OW 311
16018: ST_TO_ADDR
// if driver then
16019: LD_LOC 84
16023: IFFALSE 16145
// begin comhold ( driver ) ;
16025: LD_LOC 84
16029: PPUSH
16030: CALL_OW 140
// setfuel ( kn__ , 100 ) ;
16034: LD_LOC 85
16038: PPUSH
16039: LD_INT 100
16041: PPUSH
16042: CALL_OW 240
// comexitvehicle ( kn__ ) ;
16046: LD_LOC 85
16050: PPUSH
16051: CALL_OW 121
// wait ( 0 0$0.5 ) ;
16055: LD_INT 18
16057: PPUSH
16058: CALL_OW 67
// addcomrepairvehicle ( [ driver ] , kn__ ) ;
16062: LD_LOC 84
16066: PUSH
16067: EMPTY
16068: LIST
16069: PPUSH
16070: LD_LOC 85
16074: PPUSH
16075: CALL_OW 189
// addcommoveunit ( [ driver ] , kn__ ) ;
16079: LD_LOC 84
16083: PUSH
16084: EMPTY
16085: LIST
16086: PPUSH
16087: LD_LOC 85
16091: PPUSH
16092: CALL_OW 172
// addcomfree ( driver ) ;
16096: LD_LOC 84
16100: PPUSH
16101: CALL_OW 199
// poskoz = poskoz diff [ kn__ ] ;
16105: LD_ADDR_EXP 6
16109: PUSH
16110: LD_EXP 6
16114: PUSH
16115: LD_LOC 85
16119: PUSH
16120: EMPTY
16121: LIST
16122: DIFF
16123: ST_TO_ADDR
// rusove0 = rusove0 ^ [ kn__ ] ;
16124: LD_ADDR_EXP 14
16128: PUSH
16129: LD_EXP 14
16133: PUSH
16134: LD_LOC 85
16138: PUSH
16139: EMPTY
16140: LIST
16141: ADD
16142: ST_TO_ADDR
// end else
16143: GO 16210
// if unitfilter ( [ kn__ ] , [ [ f_control , control_computer ] ] ) then
16145: LD_LOC 85
16149: PUSH
16150: EMPTY
16151: LIST
16152: PPUSH
16153: LD_INT 33
16155: PUSH
16156: LD_INT 3
16158: PUSH
16159: EMPTY
16160: LIST
16161: LIST
16162: PUSH
16163: EMPTY
16164: LIST
16165: PPUSH
16166: CALL_OW 72
16170: IFFALSE 16210
// begin poskoz = poskoz diff [ kn__ ] ;
16172: LD_ADDR_EXP 6
16176: PUSH
16177: LD_EXP 6
16181: PUSH
16182: LD_LOC 85
16186: PUSH
16187: EMPTY
16188: LIST
16189: DIFF
16190: ST_TO_ADDR
// pacienti = pacienti ^ [ kn__ ] ;
16191: LD_ADDR_EXP 7
16195: PUSH
16196: LD_EXP 7
16200: PUSH
16201: LD_LOC 85
16205: PUSH
16206: EMPTY
16207: LIST
16208: ADD
16209: ST_TO_ADDR
// end ; end ;
16210: GO 16001
16212: POP
16213: POP
// pom_rupo = filterunitsinarea ( repairbay , [ [ f_side , rus ] , [ f_type , unit_human ] ] ) isect poskoz ;
16214: LD_ADDR_LOC 83
16218: PUSH
16219: LD_INT 5
16221: PPUSH
16222: LD_INT 22
16224: PUSH
16225: LD_EXP 1
16229: PUSH
16230: EMPTY
16231: LIST
16232: LIST
16233: PUSH
16234: LD_INT 21
16236: PUSH
16237: LD_INT 1
16239: PUSH
16240: EMPTY
16241: LIST
16242: LIST
16243: PUSH
16244: EMPTY
16245: LIST
16246: LIST
16247: PPUSH
16248: CALL_OW 70
16252: PUSH
16253: LD_EXP 6
16257: ISECT
16258: ST_TO_ADDR
// for kn__ in pom_rupo do
16259: LD_ADDR_LOC 85
16263: PUSH
16264: LD_LOC 83
16268: PUSH
16269: FOR_IN
16270: IFFALSE 16312
// begin poskoz = poskoz diff [ kn__ ] ;
16272: LD_ADDR_EXP 6
16276: PUSH
16277: LD_EXP 6
16281: PUSH
16282: LD_LOC 85
16286: PUSH
16287: EMPTY
16288: LIST
16289: DIFF
16290: ST_TO_ADDR
// pacienti = pacienti ^ [ kn__ ] ;
16291: LD_ADDR_EXP 7
16295: PUSH
16296: LD_EXP 7
16300: PUSH
16301: LD_LOC 85
16305: PUSH
16306: EMPTY
16307: LIST
16308: ADD
16309: ST_TO_ADDR
// end ;
16310: GO 16269
16312: POP
16313: POP
// for kn__ in pacienti do
16314: LD_ADDR_LOC 85
16318: PUSH
16319: LD_EXP 7
16323: PUSH
16324: FOR_IN
16325: IFFALSE 16382
// begin if getlives ( kn__ ) >= 950 then
16327: LD_LOC 85
16331: PPUSH
16332: CALL_OW 256
16336: PUSH
16337: LD_INT 950
16339: GREATEREQUAL
16340: IFFALSE 16380
// begin pacienti = pacienti diff [ kn__ ] ;
16342: LD_ADDR_EXP 7
16346: PUSH
16347: LD_EXP 7
16351: PUSH
16352: LD_LOC 85
16356: PUSH
16357: EMPTY
16358: LIST
16359: DIFF
16360: ST_TO_ADDR
// rusove0 = rusove0 ^ [ kn__ ] ;
16361: LD_ADDR_EXP 14
16365: PUSH
16366: LD_EXP 14
16370: PUSH
16371: LD_LOC 85
16375: PUSH
16376: EMPTY
16377: LIST
16378: ADD
16379: ST_TO_ADDR
// end ; end ;
16380: GO 16324
16382: POP
16383: POP
// if pacienti >= 1 then
16384: LD_EXP 7
16388: PUSH
16389: LD_INT 1
16391: GREATEREQUAL
16392: IFFALSE 16412
// comheal ( healeri , pacienti [ 1 ] ) ;
16394: LD_EXP 12
16398: PPUSH
16399: LD_EXP 7
16403: PUSH
16404: LD_INT 1
16406: ARRAY
16407: PPUSH
16408: CALL_OW 128
// enable ;
16412: ENABLE
// end ;
16413: PPOPN 2
16415: END
// on vehiclecaptured ( newid , oldid , origside , cptrdby ) do if origside = rus then
16416: LD_VAR 0 3
16420: PUSH
16421: LD_EXP 1
16425: EQUAL
16426: IFFALSE 16466
// begin rusove0 = rusove0 diff [ oldid ] ;
16428: LD_ADDR_EXP 14
16432: PUSH
16433: LD_EXP 14
16437: PUSH
16438: LD_VAR 0 2
16442: PUSH
16443: EMPTY
16444: LIST
16445: DIFF
16446: ST_TO_ADDR
// poskoz = poskoz diff [ oldid ] ;
16447: LD_ADDR_EXP 6
16451: PUSH
16452: LD_EXP 6
16456: PUSH
16457: LD_VAR 0 2
16461: PUSH
16462: EMPTY
16463: LIST
16464: DIFF
16465: ST_TO_ADDR
// end ; end_of_file
16466: PPOPN 4
16468: END
// export rh , powel ; export john ; export lisa , frank , john_ ; export cyrus , bobby , denis , yamoko ; export amhsold0 , amhsolda ; export posilya , posilyb ; export return_time , return_time_ ; export lucy , brown , vanh , glad , joan ; export lisaloc , frankloc , cyrusloc , bobbyloc , denisloc , yamokoloc , lucyloc , brownloc , gladloc , joanloc ; export gamma2commander ; var time ; var othergamma2 , othergamma3 , otherunplaced , otherjmm , otherlatejmm ; var gamma2vip , gamma3vip , withjmmvip , withjmmlatevip ; var gamma2 ; var ambctwr0 ; function pouzit ( un ) ; begin
16469: LD_INT 0
16471: PPUSH
// result = ( un in posilya ) or ( un in posilyb ) or ( un in smejdi ) ;
16472: LD_ADDR_VAR 0 2
16476: PUSH
16477: LD_VAR 0 1
16481: PUSH
16482: LD_EXP 27
16486: IN
16487: PUSH
16488: LD_VAR 0 1
16492: PUSH
16493: LD_EXP 28
16497: IN
16498: OR
16499: PUSH
16500: LD_VAR 0 1
16504: PUSH
16505: LD_LOC 98
16509: IN
16510: OR
16511: ST_TO_ADDR
// end ;
16512: LD_VAR 0 2
16516: RET
// export function saveitall ; var tmz , bz , tmzo ; begin
16517: LD_INT 0
16519: PPUSH
16520: PPUSH
16521: PPUSH
16522: PPUSH
// if john then
16523: LD_EXP 17
16527: IFFALSE 16543
// savecharacters ( john , JMM ) else
16529: LD_EXP 17
16533: PPUSH
16534: LD_STRING JMM
16536: PPUSH
16537: CALL_OW 38
16541: GO 16555
// savecharacters ( john_ , JMM ) ;
16543: LD_EXP 20
16547: PPUSH
16548: LD_STRING JMM
16550: PPUSH
16551: CALL_OW 38
// savecharacters ( [ ] , Harisson ) ;
16555: EMPTY
16556: PPUSH
16557: LD_STRING Harisson
16559: PPUSH
16560: CALL_OW 38
// deletecharacters ( Harisson ) ;
16564: LD_STRING Harisson
16566: PPUSH
16567: CALL_OW 40
// if cyrus then
16571: LD_EXP 21
16575: IFFALSE 16645
// begin savecharacters ( cyrus , Cyrus ) ;
16577: LD_EXP 21
16581: PPUSH
16582: LD_STRING Cyrus
16584: PPUSH
16585: CALL_OW 38
// if isdead ( cyrus ) then
16589: LD_EXP 21
16593: PPUSH
16594: CALL_OW 301
16598: IFFALSE 16612
// savevariable ( 0 , CyrusLoc ) else
16600: LD_INT 0
16602: PPUSH
16603: LD_STRING CyrusLoc
16605: PPUSH
16606: CALL_OW 39
16610: GO 16645
// if pouzit ( cyrus ) or ( cyrus in withjmmlatevip ) then
16612: LD_EXP 21
16616: PPUSH
16617: CALL 16469 0 1
16621: PUSH
16622: LD_EXP 21
16626: PUSH
16627: LD_LOC 95
16631: IN
16632: OR
16633: IFFALSE 16645
// savevariable ( 2 , CyrusLoc ) ;
16635: LD_INT 2
16637: PPUSH
16638: LD_STRING CyrusLoc
16640: PPUSH
16641: CALL_OW 39
// end ; if bobby then
16645: LD_EXP 22
16649: IFFALSE 16719
// begin savecharacters ( bobby , Bobby ) ;
16651: LD_EXP 22
16655: PPUSH
16656: LD_STRING Bobby
16658: PPUSH
16659: CALL_OW 38
// if isdead ( bobby ) then
16663: LD_EXP 22
16667: PPUSH
16668: CALL_OW 301
16672: IFFALSE 16686
// savevariable ( 0 , BobbyLoc ) else
16674: LD_INT 0
16676: PPUSH
16677: LD_STRING BobbyLoc
16679: PPUSH
16680: CALL_OW 39
16684: GO 16719
// if pouzit ( bobby ) or ( bobby in withjmmlatevip ) then
16686: LD_EXP 22
16690: PPUSH
16691: CALL 16469 0 1
16695: PUSH
16696: LD_EXP 22
16700: PUSH
16701: LD_LOC 95
16705: IN
16706: OR
16707: IFFALSE 16719
// savevariable ( 2 , BobbyLoc ) ;
16709: LD_INT 2
16711: PPUSH
16712: LD_STRING BobbyLoc
16714: PPUSH
16715: CALL_OW 39
// end ; if lisa then
16719: LD_EXP 18
16723: IFFALSE 16793
// begin savecharacters ( lisa , Lisa ) ;
16725: LD_EXP 18
16729: PPUSH
16730: LD_STRING Lisa
16732: PPUSH
16733: CALL_OW 38
// if isdead ( lisa ) then
16737: LD_EXP 18
16741: PPUSH
16742: CALL_OW 301
16746: IFFALSE 16760
// savevariable ( 0 , LisaLoc ) else
16748: LD_INT 0
16750: PPUSH
16751: LD_STRING LisaLoc
16753: PPUSH
16754: CALL_OW 39
16758: GO 16793
// if pouzit ( lisa ) or ( lisa in withjmmlatevip ) then
16760: LD_EXP 18
16764: PPUSH
16765: CALL 16469 0 1
16769: PUSH
16770: LD_EXP 18
16774: PUSH
16775: LD_LOC 95
16779: IN
16780: OR
16781: IFFALSE 16793
// savevariable ( 2 , LisaLoc ) ;
16783: LD_INT 2
16785: PPUSH
16786: LD_STRING LisaLoc
16788: PPUSH
16789: CALL_OW 39
// end ; if frank then
16793: LD_EXP 19
16797: IFFALSE 16867
// begin savecharacters ( frank , Frank ) ;
16799: LD_EXP 19
16803: PPUSH
16804: LD_STRING Frank
16806: PPUSH
16807: CALL_OW 38
// if isdead ( frank ) then
16811: LD_EXP 19
16815: PPUSH
16816: CALL_OW 301
16820: IFFALSE 16834
// savevariable ( 0 , FrankLoc ) else
16822: LD_INT 0
16824: PPUSH
16825: LD_STRING FrankLoc
16827: PPUSH
16828: CALL_OW 39
16832: GO 16867
// if pouzit ( frank ) or ( frank in withjmmlatevip ) then
16834: LD_EXP 19
16838: PPUSH
16839: CALL 16469 0 1
16843: PUSH
16844: LD_EXP 19
16848: PUSH
16849: LD_LOC 95
16853: IN
16854: OR
16855: IFFALSE 16867
// savevariable ( 2 , FrankLoc ) ;
16857: LD_INT 2
16859: PPUSH
16860: LD_STRING FrankLoc
16862: PPUSH
16863: CALL_OW 39
// end ; if lucy then
16867: LD_EXP 31
16871: IFFALSE 16941
// begin savecharacters ( lucy , Donaldson ) ;
16873: LD_EXP 31
16877: PPUSH
16878: LD_STRING Donaldson
16880: PPUSH
16881: CALL_OW 38
// if isdead ( lucy ) then
16885: LD_EXP 31
16889: PPUSH
16890: CALL_OW 301
16894: IFFALSE 16908
// savevariable ( 0 , DonaldsonLoc ) else
16896: LD_INT 0
16898: PPUSH
16899: LD_STRING DonaldsonLoc
16901: PPUSH
16902: CALL_OW 39
16906: GO 16941
// if pouzit ( lucy ) or ( lucy in withjmmlatevip ) then
16908: LD_EXP 31
16912: PPUSH
16913: CALL 16469 0 1
16917: PUSH
16918: LD_EXP 31
16922: PUSH
16923: LD_LOC 95
16927: IN
16928: OR
16929: IFFALSE 16941
// savevariable ( 2 , DonaldsonLoc ) ;
16931: LD_INT 2
16933: PPUSH
16934: LD_STRING DonaldsonLoc
16936: PPUSH
16937: CALL_OW 39
// end ; if brown then
16941: LD_EXP 32
16945: IFFALSE 17015
// begin savecharacters ( brown , Brown ) ;
16947: LD_EXP 32
16951: PPUSH
16952: LD_STRING Brown
16954: PPUSH
16955: CALL_OW 38
// if isdead ( brown ) then
16959: LD_EXP 32
16963: PPUSH
16964: CALL_OW 301
16968: IFFALSE 16982
// savevariable ( 0 , BrownLoc ) else
16970: LD_INT 0
16972: PPUSH
16973: LD_STRING BrownLoc
16975: PPUSH
16976: CALL_OW 39
16980: GO 17015
// if pouzit ( brown ) or ( brown in withjmmlatevip ) then
16982: LD_EXP 32
16986: PPUSH
16987: CALL 16469 0 1
16991: PUSH
16992: LD_EXP 32
16996: PUSH
16997: LD_LOC 95
17001: IN
17002: OR
17003: IFFALSE 17015
// savevariable ( 2 , BrownLoc ) ;
17005: LD_INT 2
17007: PPUSH
17008: LD_STRING BrownLoc
17010: PPUSH
17011: CALL_OW 39
// end ; if denis then
17015: LD_EXP 23
17019: IFFALSE 17089
// begin savecharacters ( denis , Denis ) ;
17021: LD_EXP 23
17025: PPUSH
17026: LD_STRING Denis
17028: PPUSH
17029: CALL_OW 38
// if isdead ( denis ) then
17033: LD_EXP 23
17037: PPUSH
17038: CALL_OW 301
17042: IFFALSE 17056
// savevariable ( 0 , DenisLoc ) else
17044: LD_INT 0
17046: PPUSH
17047: LD_STRING DenisLoc
17049: PPUSH
17050: CALL_OW 39
17054: GO 17089
// if pouzit ( denis ) or ( denis in withjmmlatevip ) then
17056: LD_EXP 23
17060: PPUSH
17061: CALL 16469 0 1
17065: PUSH
17066: LD_EXP 23
17070: PUSH
17071: LD_LOC 95
17075: IN
17076: OR
17077: IFFALSE 17089
// savevariable ( 2 , DenisLoc ) ;
17079: LD_INT 2
17081: PPUSH
17082: LD_STRING DenisLoc
17084: PPUSH
17085: CALL_OW 39
// end ; if joan then
17089: LD_EXP 35
17093: IFFALSE 17140
// begin savecharacters ( joan , Joan ) ;
17095: LD_EXP 35
17099: PPUSH
17100: LD_STRING Joan
17102: PPUSH
17103: CALL_OW 38
// if isdead ( joan ) then
17107: LD_EXP 35
17111: PPUSH
17112: CALL_OW 301
17116: IFFALSE 17130
// savevariable ( 0 , JoanLoc ) else
17118: LD_INT 0
17120: PPUSH
17121: LD_STRING JoanLoc
17123: PPUSH
17124: CALL_OW 39
17128: GO 17140
// savevariable ( 2 , JoanLoc ) ;
17130: LD_INT 2
17132: PPUSH
17133: LD_STRING JoanLoc
17135: PPUSH
17136: CALL_OW 39
// end ; if glad then
17140: LD_EXP 34
17144: IFFALSE 17214
// begin savecharacters ( glad , Gladstone ) ;
17146: LD_EXP 34
17150: PPUSH
17151: LD_STRING Gladstone
17153: PPUSH
17154: CALL_OW 38
// if isdead ( glad ) then
17158: LD_EXP 34
17162: PPUSH
17163: CALL_OW 301
17167: IFFALSE 17181
// savevariable ( 0 , GladstoneLoc ) else
17169: LD_INT 0
17171: PPUSH
17172: LD_STRING GladstoneLoc
17174: PPUSH
17175: CALL_OW 39
17179: GO 17214
// if pouzit ( glad ) or ( glad in withjmmlatevip ) then
17181: LD_EXP 34
17185: PPUSH
17186: CALL 16469 0 1
17190: PUSH
17191: LD_EXP 34
17195: PUSH
17196: LD_LOC 95
17200: IN
17201: OR
17202: IFFALSE 17214
// savevariable ( 2 , GladstoneLoc ) ;
17204: LD_INT 2
17206: PPUSH
17207: LD_STRING GladstoneLoc
17209: PPUSH
17210: CALL_OW 39
// end ; if not frank then
17214: LD_EXP 19
17218: NOT
17219: IFFALSE 17295
// if yamoko then
17221: LD_EXP 24
17225: IFFALSE 17295
// begin savecharacters ( yamoko , Yamoko ) ;
17227: LD_EXP 24
17231: PPUSH
17232: LD_STRING Yamoko
17234: PPUSH
17235: CALL_OW 38
// if isdead ( yamoko ) then
17239: LD_EXP 24
17243: PPUSH
17244: CALL_OW 301
17248: IFFALSE 17262
// savevariable ( 0 , YamokoLoc ) else
17250: LD_INT 0
17252: PPUSH
17253: LD_STRING YamokoLoc
17255: PPUSH
17256: CALL_OW 39
17260: GO 17295
// if pouzit ( yamoko ) or ( yamoko in withjmmlatevip ) then
17262: LD_EXP 24
17266: PPUSH
17267: CALL 16469 0 1
17271: PUSH
17272: LD_EXP 24
17276: PUSH
17277: LD_LOC 95
17281: IN
17282: OR
17283: IFFALSE 17295
// savevariable ( 2 , YamokoLoc ) ;
17285: LD_INT 2
17287: PPUSH
17288: LD_STRING YamokoLoc
17290: PPUSH
17291: CALL_OW 39
// end ; savecharacters ( amhsolda , Sikorski ) ;
17295: LD_EXP 26
17299: PPUSH
17300: LD_STRING Sikorski
17302: PPUSH
17303: CALL_OW 38
// if isdead ( amhsolda ) then
17307: LD_EXP 26
17311: PPUSH
17312: CALL_OW 301
17316: IFFALSE 17330
// savevariable ( 0 , SikorskiLoc ) else
17318: LD_INT 0
17320: PPUSH
17321: LD_STRING SikorskiLoc
17323: PPUSH
17324: CALL_OW 39
17328: GO 17340
// savevariable ( 2 , SikorskiLoc ) ;
17330: LD_INT 2
17332: PPUSH
17333: LD_STRING SikorskiLoc
17335: PPUSH
17336: CALL_OW 39
// savecharacters ( vanh , VanHouten ) ;
17340: LD_EXP 33
17344: PPUSH
17345: LD_STRING VanHouten
17347: PPUSH
17348: CALL_OW 38
// if gamma2commander = 3 then
17352: LD_EXP 46
17356: PUSH
17357: LD_INT 3
17359: EQUAL
17360: IFFALSE 17397
// if isdead ( vanh ) then
17362: LD_EXP 33
17366: PPUSH
17367: CALL_OW 301
17371: IFFALSE 17385
// savevariable ( 0 , VanHoutenLoc ) else
17373: LD_INT 0
17375: PPUSH
17376: LD_STRING VanHoutenLoc
17378: PPUSH
17379: CALL_OW 39
17383: GO 17395
// savevariable ( 2 , VanHoutenLoc ) else
17385: LD_INT 2
17387: PPUSH
17388: LD_STRING VanHoutenLoc
17390: PPUSH
17391: CALL_OW 39
17395: GO 17407
// savevariable ( 0 , VanHoutenLoc ) ;
17397: LD_INT 0
17399: PPUSH
17400: LD_STRING VanHoutenLoc
17402: PPUSH
17403: CALL_OW 39
// tmz = filterallunits ( [ [ f_alive ] , [ f_side , amer ] , [ f_type , unit_human ] ] ) diff [ john , cyrus , bobby , lisa , frank , lucy , brown , denis , joan , glad , yamoko , amhsolda , vanh ] ;
17407: LD_ADDR_VAR 0 2
17411: PUSH
17412: LD_INT 51
17414: PUSH
17415: EMPTY
17416: LIST
17417: PUSH
17418: LD_INT 22
17420: PUSH
17421: LD_EXP 2
17425: PUSH
17426: EMPTY
17427: LIST
17428: LIST
17429: PUSH
17430: LD_INT 21
17432: PUSH
17433: LD_INT 1
17435: PUSH
17436: EMPTY
17437: LIST
17438: LIST
17439: PUSH
17440: EMPTY
17441: LIST
17442: LIST
17443: LIST
17444: PPUSH
17445: CALL_OW 69
17449: PUSH
17450: LD_EXP 17
17454: PUSH
17455: LD_EXP 21
17459: PUSH
17460: LD_EXP 22
17464: PUSH
17465: LD_EXP 18
17469: PUSH
17470: LD_EXP 19
17474: PUSH
17475: LD_EXP 31
17479: PUSH
17480: LD_EXP 32
17484: PUSH
17485: LD_EXP 23
17489: PUSH
17490: LD_EXP 35
17494: PUSH
17495: LD_EXP 34
17499: PUSH
17500: LD_EXP 24
17504: PUSH
17505: LD_EXP 26
17509: PUSH
17510: LD_EXP 33
17514: PUSH
17515: EMPTY
17516: LIST
17517: LIST
17518: LIST
17519: LIST
17520: LIST
17521: LIST
17522: LIST
17523: LIST
17524: LIST
17525: LIST
17526: LIST
17527: LIST
17528: LIST
17529: DIFF
17530: ST_TO_ADDR
// tmz = unitfilter ( tmz , [ f_not , [ f_nation , nation_nature ] ] ) ;
17531: LD_ADDR_VAR 0 2
17535: PUSH
17536: LD_VAR 0 2
17540: PPUSH
17541: LD_INT 3
17543: PUSH
17544: LD_INT 23
17546: PUSH
17547: LD_INT 0
17549: PUSH
17550: EMPTY
17551: LIST
17552: LIST
17553: PUSH
17554: EMPTY
17555: LIST
17556: LIST
17557: PPUSH
17558: CALL_OW 72
17562: ST_TO_ADDR
// savecharacters ( tmz union ( othergamma2 ^ othergamma3 ^ otherunplaced ^ otherjmm ^ otherlatejmm ) , otherGamma2 ) ;
17563: LD_VAR 0 2
17567: PUSH
17568: LD_LOC 87
17572: PUSH
17573: LD_LOC 88
17577: ADD
17578: PUSH
17579: LD_LOC 89
17583: ADD
17584: PUSH
17585: LD_LOC 90
17589: ADD
17590: PUSH
17591: LD_LOC 91
17595: ADD
17596: UNION
17597: PPUSH
17598: LD_STRING otherGamma2
17600: PPUSH
17601: CALL_OW 38
// savecharacters ( [ ] , otherDelta ) ;
17605: EMPTY
17606: PPUSH
17607: LD_STRING otherDelta
17609: PPUSH
17610: CALL_OW 38
// savecharacters ( [ ] , otherUnplaced ) ;
17614: EMPTY
17615: PPUSH
17616: LD_STRING otherUnplaced
17618: PPUSH
17619: CALL_OW 38
// savecharacters ( [ ] , otherJMM ) ;
17623: EMPTY
17624: PPUSH
17625: LD_STRING otherJMM
17627: PPUSH
17628: CALL_OW 38
// savecharacters ( [ ] , otherLateJMM ) ;
17632: EMPTY
17633: PPUSH
17634: LD_STRING otherLateJMM
17636: PPUSH
17637: CALL_OW 38
// tmz = filterallunits ( [ [ f_side , amer ] , [ f_nation , nation_american ] , [ f_btype , b_factory ] ] ) ;
17641: LD_ADDR_VAR 0 2
17645: PUSH
17646: LD_INT 22
17648: PUSH
17649: LD_EXP 2
17653: PUSH
17654: EMPTY
17655: LIST
17656: LIST
17657: PUSH
17658: LD_INT 23
17660: PUSH
17661: LD_INT 1
17663: PUSH
17664: EMPTY
17665: LIST
17666: LIST
17667: PUSH
17668: LD_INT 30
17670: PUSH
17671: LD_INT 3
17673: PUSH
17674: EMPTY
17675: LIST
17676: LIST
17677: PUSH
17678: EMPTY
17679: LIST
17680: LIST
17681: LIST
17682: PPUSH
17683: CALL_OW 69
17687: ST_TO_ADDR
// tmz = tmz ^ filterallunits ( [ [ f_side , amer ] , [ f_nation , nation_american ] , [ f_type , unit_building ] , f_not , [ f_btype , b_factory ] ] ) ;
17688: LD_ADDR_VAR 0 2
17692: PUSH
17693: LD_VAR 0 2
17697: PUSH
17698: LD_INT 22
17700: PUSH
17701: LD_EXP 2
17705: PUSH
17706: EMPTY
17707: LIST
17708: LIST
17709: PUSH
17710: LD_INT 23
17712: PUSH
17713: LD_INT 1
17715: PUSH
17716: EMPTY
17717: LIST
17718: LIST
17719: PUSH
17720: LD_INT 21
17722: PUSH
17723: LD_INT 3
17725: PUSH
17726: EMPTY
17727: LIST
17728: LIST
17729: PUSH
17730: LD_INT 3
17732: PUSH
17733: LD_INT 30
17735: PUSH
17736: LD_INT 3
17738: PUSH
17739: EMPTY
17740: LIST
17741: LIST
17742: PUSH
17743: EMPTY
17744: LIST
17745: LIST
17746: LIST
17747: LIST
17748: LIST
17749: PPUSH
17750: CALL_OW 69
17754: ADD
17755: ST_TO_ADDR
// tmzo = [ ] ;
17756: LD_ADDR_VAR 0 4
17760: PUSH
17761: EMPTY
17762: ST_TO_ADDR
// for bz in tmz do
17763: LD_ADDR_VAR 0 3
17767: PUSH
17768: LD_VAR 0 2
17772: PUSH
17773: FOR_IN
17774: IFFALSE 18131
// case getbtype ( bz ) of b_lab_basic , b_lab_weapon :
17776: LD_VAR 0 3
17780: PPUSH
17781: CALL_OW 266
17785: PUSH
17786: LD_INT 9
17788: DOUBLE
17789: EQUAL
17790: IFTRUE 17800
17792: LD_INT 10
17794: DOUBLE
17795: EQUAL
17796: IFTRUE 17800
17798: GO 17803
17800: POP
// begin end ; b_lab , b_lab_half , b_lab_full :
17801: GO 18129
17803: LD_INT 6
17805: DOUBLE
17806: EQUAL
17807: IFTRUE 17823
17809: LD_INT 7
17811: DOUBLE
17812: EQUAL
17813: IFTRUE 17823
17815: LD_INT 8
17817: DOUBLE
17818: EQUAL
17819: IFTRUE 17823
17821: GO 17936
17823: POP
// tmzo = tmzo ^ [ [ getx ( bz ) , gety ( bz ) , getdir ( bz ) , getbtype ( bz ) , getblevel ( bz ) , getnation ( bz ) , getlabkind ( bz , 1 ) , getlabkind ( bz , 2 ) ] ] ; b_bunker , b_turret :
17824: LD_ADDR_VAR 0 4
17828: PUSH
17829: LD_VAR 0 4
17833: PUSH
17834: LD_VAR 0 3
17838: PPUSH
17839: CALL_OW 250
17843: PUSH
17844: LD_VAR 0 3
17848: PPUSH
17849: CALL_OW 251
17853: PUSH
17854: LD_VAR 0 3
17858: PPUSH
17859: CALL_OW 254
17863: PUSH
17864: LD_VAR 0 3
17868: PPUSH
17869: CALL_OW 266
17873: PUSH
17874: LD_VAR 0 3
17878: PPUSH
17879: CALL_OW 267
17883: PUSH
17884: LD_VAR 0 3
17888: PPUSH
17889: CALL_OW 248
17893: PUSH
17894: LD_VAR 0 3
17898: PPUSH
17899: LD_INT 1
17901: PPUSH
17902: CALL_OW 268
17906: PUSH
17907: LD_VAR 0 3
17911: PPUSH
17912: LD_INT 2
17914: PPUSH
17915: CALL_OW 268
17919: PUSH
17920: EMPTY
17921: LIST
17922: LIST
17923: LIST
17924: LIST
17925: LIST
17926: LIST
17927: LIST
17928: LIST
17929: PUSH
17930: EMPTY
17931: LIST
17932: ADD
17933: ST_TO_ADDR
17934: GO 18129
17936: LD_INT 32
17938: DOUBLE
17939: EQUAL
17940: IFTRUE 17950
17942: LD_INT 33
17944: DOUBLE
17945: EQUAL
17946: IFTRUE 17950
17948: GO 18046
17950: POP
// tmzo = tmzo ^ [ [ getx ( bz ) , gety ( bz ) , getdir ( bz ) , getbtype ( bz ) , getblevel ( bz ) , getnation ( bz ) , getbweapon ( bz ) ] ] ; else
17951: LD_ADDR_VAR 0 4
17955: PUSH
17956: LD_VAR 0 4
17960: PUSH
17961: LD_VAR 0 3
17965: PPUSH
17966: CALL_OW 250
17970: PUSH
17971: LD_VAR 0 3
17975: PPUSH
17976: CALL_OW 251
17980: PUSH
17981: LD_VAR 0 3
17985: PPUSH
17986: CALL_OW 254
17990: PUSH
17991: LD_VAR 0 3
17995: PPUSH
17996: CALL_OW 266
18000: PUSH
18001: LD_VAR 0 3
18005: PPUSH
18006: CALL_OW 267
18010: PUSH
18011: LD_VAR 0 3
18015: PPUSH
18016: CALL_OW 248
18020: PUSH
18021: LD_VAR 0 3
18025: PPUSH
18026: CALL_OW 269
18030: PUSH
18031: EMPTY
18032: LIST
18033: LIST
18034: LIST
18035: LIST
18036: LIST
18037: LIST
18038: LIST
18039: PUSH
18040: EMPTY
18041: LIST
18042: ADD
18043: ST_TO_ADDR
18044: GO 18129
18046: POP
// tmzo = tmzo ^ [ [ getx ( bz ) , gety ( bz ) , getdir ( bz ) , getbtype ( bz ) , getblevel ( bz ) , getnation ( bz ) ] ] ; end ;
18047: LD_ADDR_VAR 0 4
18051: PUSH
18052: LD_VAR 0 4
18056: PUSH
18057: LD_VAR 0 3
18061: PPUSH
18062: CALL_OW 250
18066: PUSH
18067: LD_VAR 0 3
18071: PPUSH
18072: CALL_OW 251
18076: PUSH
18077: LD_VAR 0 3
18081: PPUSH
18082: CALL_OW 254
18086: PUSH
18087: LD_VAR 0 3
18091: PPUSH
18092: CALL_OW 266
18096: PUSH
18097: LD_VAR 0 3
18101: PPUSH
18102: CALL_OW 267
18106: PUSH
18107: LD_VAR 0 3
18111: PPUSH
18112: CALL_OW 248
18116: PUSH
18117: EMPTY
18118: LIST
18119: LIST
18120: LIST
18121: LIST
18122: LIST
18123: LIST
18124: PUSH
18125: EMPTY
18126: LIST
18127: ADD
18128: ST_TO_ADDR
18129: GO 17773
18131: POP
18132: POP
// savevariable ( tmzo , Gamma2 ) ;
18133: LD_VAR 0 4
18137: PPUSH
18138: LD_STRING Gamma2
18140: PPUSH
18141: CALL_OW 39
// end ;
18145: LD_VAR 0 1
18149: RET
// var smejdi ; var zbytci ; export function from_prev_mis ; var tmp , tmp1 , tmz , tmz_ , tm_c , tm_e , tm_m , tm_s , tmp_c , tmp_e , tmp_m , tmp_s , tot , lab_done , retry ; var smery ; begin
18150: LD_INT 0
18152: PPUSH
18153: PPUSH
18154: PPUSH
18155: PPUSH
18156: PPUSH
18157: PPUSH
18158: PPUSH
18159: PPUSH
18160: PPUSH
18161: PPUSH
18162: PPUSH
18163: PPUSH
18164: PPUSH
18165: PPUSH
18166: PPUSH
18167: PPUSH
18168: PPUSH
// uc_side = amer ;
18169: LD_ADDR_OWVAR 20
18173: PUSH
18174: LD_EXP 2
18178: ST_TO_ADDR
// uc_nation = nation_american ;
18179: LD_ADDR_OWVAR 21
18183: PUSH
18184: LD_INT 1
18186: ST_TO_ADDR
// return_time = 0 0$1 ;
18187: LD_ADDR_EXP 29
18191: PUSH
18192: LD_INT 35
18194: ST_TO_ADDR
// return_time_ = 0 0$1 ;
18195: LD_ADDR_EXP 30
18199: PUSH
18200: LD_INT 35
18202: ST_TO_ADDR
// othergamma2 = [ ] ;
18203: LD_ADDR_LOC 87
18207: PUSH
18208: EMPTY
18209: ST_TO_ADDR
// othergamma3 = [ ] ;
18210: LD_ADDR_LOC 88
18214: PUSH
18215: EMPTY
18216: ST_TO_ADDR
// otherunplaced = [ ] ;
18217: LD_ADDR_LOC 89
18221: PUSH
18222: EMPTY
18223: ST_TO_ADDR
// otherjmm = [ ] ;
18224: LD_ADDR_LOC 90
18228: PUSH
18229: EMPTY
18230: ST_TO_ADDR
// gamma2vip = [ ] ;
18231: LD_ADDR_LOC 92
18235: PUSH
18236: EMPTY
18237: ST_TO_ADDR
// gamma3vip = [ ] ;
18238: LD_ADDR_LOC 93
18242: PUSH
18243: EMPTY
18244: ST_TO_ADDR
// withjmmvip = [ ] ;
18245: LD_ADDR_LOC 94
18249: PUSH
18250: EMPTY
18251: ST_TO_ADDR
// withjmmlatevip = [ ] ;
18252: LD_ADDR_LOC 95
18256: PUSH
18257: EMPTY
18258: ST_TO_ADDR
// time = loadvariable ( Time , - 1 ) ;
18259: LD_ADDR_LOC 86
18263: PUSH
18264: LD_STRING Time
18266: PPUSH
18267: LD_INT 1
18269: NEG
18270: PPUSH
18271: CALL_OW 30
18275: ST_TO_ADDR
// if time = - 1 then
18276: LD_LOC 86
18280: PUSH
18281: LD_INT 1
18283: NEG
18284: EQUAL
18285: IFFALSE 18302
// buildquery ( neny Time , [ OK ] ) else
18287: LD_STRING neny Time
18289: PPUSH
18290: LD_STRING OK
18292: PUSH
18293: EMPTY
18294: LIST
18295: PPUSH
18296: CALL_OW 99
18300: GO 18358
// begin if time > 14 14$50 then
18302: LD_LOC 86
18306: PUSH
18307: LD_INT 31150
18309: GREATER
18310: IFFALSE 18320
// time = 14 14$50 ;
18312: LD_ADDR_LOC 86
18316: PUSH
18317: LD_INT 31150
18319: ST_TO_ADDR
// if time < 0 0$30 then
18320: LD_LOC 86
18324: PUSH
18325: LD_INT 1050
18327: LESS
18328: IFFALSE 18338
// time = 1 1$30 ;
18330: LD_ADDR_LOC 86
18334: PUSH
18335: LD_INT 3150
18337: ST_TO_ADDR
// return_time = time ;
18338: LD_ADDR_EXP 29
18342: PUSH
18343: LD_LOC 86
18347: ST_TO_ADDR
// return_time_ = time ;
18348: LD_ADDR_EXP 30
18352: PUSH
18353: LD_LOC 86
18357: ST_TO_ADDR
// end ; gamma2 = loadvariable ( Gamma2 , [ ] ) ;
18358: LD_ADDR_LOC 96
18362: PUSH
18363: LD_STRING Gamma2
18365: PPUSH
18366: EMPTY
18367: PPUSH
18368: CALL_OW 30
18372: ST_TO_ADDR
// if gamma2 = 0 then
18373: LD_LOC 96
18377: PUSH
18378: LD_INT 0
18380: EQUAL
18381: IFFALSE 18405
// buildquery ( [ neny Gamma2 , Gamma2 ] , [ OK ] ) ;
18383: LD_STRING neny Gamma2
18385: PUSH
18386: LD_LOC 96
18390: PUSH
18391: EMPTY
18392: LIST
18393: LIST
18394: PPUSH
18395: LD_STRING OK
18397: PUSH
18398: EMPTY
18399: LIST
18400: PPUSH
18401: CALL_OW 99
// lab_done = false ;
18405: LD_ADDR_VAR 0 15
18409: PUSH
18410: LD_INT 0
18412: ST_TO_ADDR
// retry = [ ] ;
18413: LD_ADDR_VAR 0 16
18417: PUSH
18418: EMPTY
18419: ST_TO_ADDR
// for tmp in gamma2 do
18420: LD_ADDR_VAR 0 2
18424: PUSH
18425: LD_LOC 96
18429: PUSH
18430: FOR_IN
18431: IFFALSE 19004
// begin if tmp [ 1 ] = 38 and tmp [ 2 ] = 3 then
18433: LD_VAR 0 2
18437: PUSH
18438: LD_INT 1
18440: ARRAY
18441: PUSH
18442: LD_INT 38
18444: EQUAL
18445: PUSH
18446: LD_VAR 0 2
18450: PUSH
18451: LD_INT 2
18453: ARRAY
18454: PUSH
18455: LD_INT 3
18457: EQUAL
18458: AND
18459: IFFALSE 18463
// else
18461: GO 19002
// if tmp [ 1 ] = 40 and tmp [ 2 ] = 11 then
18463: LD_VAR 0 2
18467: PUSH
18468: LD_INT 1
18470: ARRAY
18471: PUSH
18472: LD_INT 40
18474: EQUAL
18475: PUSH
18476: LD_VAR 0 2
18480: PUSH
18481: LD_INT 2
18483: ARRAY
18484: PUSH
18485: LD_INT 11
18487: EQUAL
18488: AND
18489: IFFALSE 18493
// else
18491: GO 19002
// if tmp [ 1 ] = 52 and tmp [ 2 ] = 12 then
18493: LD_VAR 0 2
18497: PUSH
18498: LD_INT 1
18500: ARRAY
18501: PUSH
18502: LD_INT 52
18504: EQUAL
18505: PUSH
18506: LD_VAR 0 2
18510: PUSH
18511: LD_INT 2
18513: ARRAY
18514: PUSH
18515: LD_INT 12
18517: EQUAL
18518: AND
18519: IFFALSE 18523
// else
18521: GO 19002
// if tmp [ 4 ] = b_breastwork or tmp [ 4 ] = b_bunker or tmp [ 4 ] = b_factory or tmp [ 4 ] = b_workshop or tmp [ 4 ] = b_depot or tmp [ 4 ] = b_warehouse then
18523: LD_VAR 0 2
18527: PUSH
18528: LD_INT 4
18530: ARRAY
18531: PUSH
18532: LD_INT 31
18534: EQUAL
18535: PUSH
18536: LD_VAR 0 2
18540: PUSH
18541: LD_INT 4
18543: ARRAY
18544: PUSH
18545: LD_INT 32
18547: EQUAL
18548: OR
18549: PUSH
18550: LD_VAR 0 2
18554: PUSH
18555: LD_INT 4
18557: ARRAY
18558: PUSH
18559: LD_INT 3
18561: EQUAL
18562: OR
18563: PUSH
18564: LD_VAR 0 2
18568: PUSH
18569: LD_INT 4
18571: ARRAY
18572: PUSH
18573: LD_INT 2
18575: EQUAL
18576: OR
18577: PUSH
18578: LD_VAR 0 2
18582: PUSH
18583: LD_INT 4
18585: ARRAY
18586: PUSH
18587: LD_INT 0
18589: EQUAL
18590: OR
18591: PUSH
18592: LD_VAR 0 2
18596: PUSH
18597: LD_INT 4
18599: ARRAY
18600: PUSH
18601: LD_INT 1
18603: EQUAL
18604: OR
18605: IFFALSE 18609
// else
18607: GO 19002
// if ( tmp [ 4 ] = b_lab or tmp [ 4 ] = b_lab_half or tmp [ 4 ] = b_lab_full ) and not lab_done then
18609: LD_VAR 0 2
18613: PUSH
18614: LD_INT 4
18616: ARRAY
18617: PUSH
18618: LD_INT 6
18620: EQUAL
18621: PUSH
18622: LD_VAR 0 2
18626: PUSH
18627: LD_INT 4
18629: ARRAY
18630: PUSH
18631: LD_INT 7
18633: EQUAL
18634: OR
18635: PUSH
18636: LD_VAR 0 2
18640: PUSH
18641: LD_INT 4
18643: ARRAY
18644: PUSH
18645: LD_INT 8
18647: EQUAL
18648: OR
18649: PUSH
18650: LD_VAR 0 15
18654: NOT
18655: AND
18656: IFFALSE 18784
// begin uc_direction = tmp [ 3 ] ;
18658: LD_ADDR_OWVAR 24
18662: PUSH
18663: LD_VAR 0 2
18667: PUSH
18668: LD_INT 3
18670: ARRAY
18671: ST_TO_ADDR
// bc_type = b_lab_full ;
18672: LD_ADDR_OWVAR 42
18676: PUSH
18677: LD_INT 8
18679: ST_TO_ADDR
// bc_level = tmp [ 5 ] ;
18680: LD_ADDR_OWVAR 43
18684: PUSH
18685: LD_VAR 0 2
18689: PUSH
18690: LD_INT 5
18692: ARRAY
18693: ST_TO_ADDR
// bc_kind1 = b_lab_weapon ;
18694: LD_ADDR_OWVAR 44
18698: PUSH
18699: LD_INT 10
18701: ST_TO_ADDR
// bc_kind2 = b_lab_opto ;
18702: LD_ADDR_OWVAR 45
18706: PUSH
18707: LD_INT 15
18709: ST_TO_ADDR
// tmp1 = createbuilding ;
18710: LD_ADDR_VAR 0 3
18714: PUSH
18715: CALL_OW 46
18719: ST_TO_ADDR
// if not placeunitxy ( tmp1 , tmp [ 1 ] , tmp [ 2 ] , false ) then
18720: LD_VAR 0 3
18724: PPUSH
18725: LD_VAR 0 2
18729: PUSH
18730: LD_INT 1
18732: ARRAY
18733: PPUSH
18734: LD_VAR 0 2
18738: PUSH
18739: LD_INT 2
18741: ARRAY
18742: PPUSH
18743: LD_INT 0
18745: PPUSH
18746: CALL_OW 48
18750: NOT
18751: IFFALSE 18774
// retry = retry ^ [ tmp ] else
18753: LD_ADDR_VAR 0 16
18757: PUSH
18758: LD_VAR 0 16
18762: PUSH
18763: LD_VAR 0 2
18767: PUSH
18768: EMPTY
18769: LIST
18770: ADD
18771: ST_TO_ADDR
18772: GO 18782
// lab_done = true ;
18774: LD_ADDR_VAR 0 15
18778: PUSH
18779: LD_INT 1
18781: ST_TO_ADDR
// end else
18782: GO 19002
// if tmp [ 4 ] = b_armoury then
18784: LD_VAR 0 2
18788: PUSH
18789: LD_INT 4
18791: ARRAY
18792: PUSH
18793: LD_INT 4
18795: EQUAL
18796: IFFALSE 18898
// begin uc_direction = tmp [ 3 ] ;
18798: LD_ADDR_OWVAR 24
18802: PUSH
18803: LD_VAR 0 2
18807: PUSH
18808: LD_INT 3
18810: ARRAY
18811: ST_TO_ADDR
// bc_type = b_barracks ;
18812: LD_ADDR_OWVAR 42
18816: PUSH
18817: LD_INT 5
18819: ST_TO_ADDR
// bc_level = tmp [ 5 ] ;
18820: LD_ADDR_OWVAR 43
18824: PUSH
18825: LD_VAR 0 2
18829: PUSH
18830: LD_INT 5
18832: ARRAY
18833: ST_TO_ADDR
// tmp1 = createbuilding ;
18834: LD_ADDR_VAR 0 3
18838: PUSH
18839: CALL_OW 46
18843: ST_TO_ADDR
// if not placeunitxy ( tmp1 , tmp [ 1 ] , tmp [ 2 ] , false ) then
18844: LD_VAR 0 3
18848: PPUSH
18849: LD_VAR 0 2
18853: PUSH
18854: LD_INT 1
18856: ARRAY
18857: PPUSH
18858: LD_VAR 0 2
18862: PUSH
18863: LD_INT 2
18865: ARRAY
18866: PPUSH
18867: LD_INT 0
18869: PPUSH
18870: CALL_OW 48
18874: NOT
18875: IFFALSE 18896
// retry = retry ^ [ tmp ] ;
18877: LD_ADDR_VAR 0 16
18881: PUSH
18882: LD_VAR 0 16
18886: PUSH
18887: LD_VAR 0 2
18891: PUSH
18892: EMPTY
18893: LIST
18894: ADD
18895: ST_TO_ADDR
// end else
18896: GO 19002
// begin uc_direction = tmp [ 3 ] ;
18898: LD_ADDR_OWVAR 24
18902: PUSH
18903: LD_VAR 0 2
18907: PUSH
18908: LD_INT 3
18910: ARRAY
18911: ST_TO_ADDR
// bc_type = tmp [ 4 ] ;
18912: LD_ADDR_OWVAR 42
18916: PUSH
18917: LD_VAR 0 2
18921: PUSH
18922: LD_INT 4
18924: ARRAY
18925: ST_TO_ADDR
// bc_level = tmp [ 5 ] ;
18926: LD_ADDR_OWVAR 43
18930: PUSH
18931: LD_VAR 0 2
18935: PUSH
18936: LD_INT 5
18938: ARRAY
18939: ST_TO_ADDR
// tmp1 = createbuilding ;
18940: LD_ADDR_VAR 0 3
18944: PUSH
18945: CALL_OW 46
18949: ST_TO_ADDR
// if not placeunitxy ( tmp1 , tmp [ 1 ] , tmp [ 2 ] , false ) then
18950: LD_VAR 0 3
18954: PPUSH
18955: LD_VAR 0 2
18959: PUSH
18960: LD_INT 1
18962: ARRAY
18963: PPUSH
18964: LD_VAR 0 2
18968: PUSH
18969: LD_INT 2
18971: ARRAY
18972: PPUSH
18973: LD_INT 0
18975: PPUSH
18976: CALL_OW 48
18980: NOT
18981: IFFALSE 19002
// retry = retry ^ [ tmp ] ;
18983: LD_ADDR_VAR 0 16
18987: PUSH
18988: LD_VAR 0 16
18992: PUSH
18993: LD_VAR 0 2
18997: PUSH
18998: EMPTY
18999: LIST
19000: ADD
19001: ST_TO_ADDR
// end ; end ;
19002: GO 18430
19004: POP
19005: POP
// bc_type = b_control_tower ;
19006: LD_ADDR_OWVAR 42
19010: PUSH
19011: LD_INT 36
19013: ST_TO_ADDR
// bc_level = 4 ;
19014: LD_ADDR_OWVAR 43
19018: PUSH
19019: LD_INT 4
19021: ST_TO_ADDR
// smery = [ [ [ 48 , 16 ] , [ 49 , 16 ] , [ 50 , 16 ] , [ 50 , 15 ] , [ 50 , 14 ] , [ 50 , 13 ] , [ 49 , 12 ] , [ 48 , 11 ] , [ 47 , 11 ] , [ 46 , 11 ] , [ 45 , 11 ] , [ 45 , 12 ] , [ 45 , 13 ] , [ 46 , 14 ] , [ 47 , 15 ] ] , [ [ 48 , 16 ] , [ 49 , 16 ] , [ 50 , 16 ] , [ 51 , 16 ] , [ 51 , 15 ] , [ 51 , 14 ] , [ 50 , 13 ] , [ 49 , 12 ] , [ 48 , 11 ] , [ 47 , 11 ] , [ 46 , 11 ] , [ 46 , 12 ] , [ 46 , 13 ] , [ 46 , 14 ] , [ 47 , 15 ] ] , [ [ 49 , 17 ] , [ 50 , 17 ] , [ 51 , 17 ] , [ 51 , 16 ] , [ 51 , 15 ] , [ 51 , 14 ] , [ 50 , 13 ] , [ 49 , 12 ] , [ 48 , 12 ] , [ 47 , 12 ] , [ 46 , 12 ] , [ 46 , 13 ] , [ 46 , 14 ] , [ 47 , 15 ] , [ 48 , 16 ] ] , [ [ 48 , 17 ] , [ 49 , 17 ] , [ 50 , 17 ] , [ 51 , 17 ] , [ 51 , 16 ] , [ 51 , 15 ] , [ 50 , 14 ] , [ 49 , 13 ] , [ 48 , 12 ] , [ 47 , 12 ] , [ 46 , 12 ] , [ 46 , 13 ] , [ 46 , 14 ] , [ 46 , 15 ] , [ 47 , 16 ] ] , [ [ 48 , 17 ] , [ 49 , 17 ] , [ 50 , 17 ] , [ 50 , 16 ] , [ 50 , 15 ] , [ 50 , 14 ] , [ 49 , 13 ] , [ 48 , 12 ] , [ 47 , 12 ] , [ 46 , 12 ] , [ 45 , 12 ] , [ 45 , 13 ] , [ 45 , 14 ] , [ 46 , 15 ] , [ 47 , 16 ] ] , [ [ 47 , 16 ] , [ 48 , 16 ] , [ 49 , 16 ] , [ 50 , 16 ] , [ 50 , 15 ] , [ 50 , 14 ] , [ 49 , 13 ] , [ 48 , 12 ] , [ 47 , 11 ] , [ 46 , 11 ] , [ 45 , 11 ] , [ 45 , 12 ] , [ 45 , 13 ] , [ 45 , 14 ] , [ 46 , 15 ] ] ] ;
19022: LD_ADDR_VAR 0 17
19026: PUSH
19027: LD_INT 48
19029: PUSH
19030: LD_INT 16
19032: PUSH
19033: EMPTY
19034: LIST
19035: LIST
19036: PUSH
19037: LD_INT 49
19039: PUSH
19040: LD_INT 16
19042: PUSH
19043: EMPTY
19044: LIST
19045: LIST
19046: PUSH
19047: LD_INT 50
19049: PUSH
19050: LD_INT 16
19052: PUSH
19053: EMPTY
19054: LIST
19055: LIST
19056: PUSH
19057: LD_INT 50
19059: PUSH
19060: LD_INT 15
19062: PUSH
19063: EMPTY
19064: LIST
19065: LIST
19066: PUSH
19067: LD_INT 50
19069: PUSH
19070: LD_INT 14
19072: PUSH
19073: EMPTY
19074: LIST
19075: LIST
19076: PUSH
19077: LD_INT 50
19079: PUSH
19080: LD_INT 13
19082: PUSH
19083: EMPTY
19084: LIST
19085: LIST
19086: PUSH
19087: LD_INT 49
19089: PUSH
19090: LD_INT 12
19092: PUSH
19093: EMPTY
19094: LIST
19095: LIST
19096: PUSH
19097: LD_INT 48
19099: PUSH
19100: LD_INT 11
19102: PUSH
19103: EMPTY
19104: LIST
19105: LIST
19106: PUSH
19107: LD_INT 47
19109: PUSH
19110: LD_INT 11
19112: PUSH
19113: EMPTY
19114: LIST
19115: LIST
19116: PUSH
19117: LD_INT 46
19119: PUSH
19120: LD_INT 11
19122: PUSH
19123: EMPTY
19124: LIST
19125: LIST
19126: PUSH
19127: LD_INT 45
19129: PUSH
19130: LD_INT 11
19132: PUSH
19133: EMPTY
19134: LIST
19135: LIST
19136: PUSH
19137: LD_INT 45
19139: PUSH
19140: LD_INT 12
19142: PUSH
19143: EMPTY
19144: LIST
19145: LIST
19146: PUSH
19147: LD_INT 45
19149: PUSH
19150: LD_INT 13
19152: PUSH
19153: EMPTY
19154: LIST
19155: LIST
19156: PUSH
19157: LD_INT 46
19159: PUSH
19160: LD_INT 14
19162: PUSH
19163: EMPTY
19164: LIST
19165: LIST
19166: PUSH
19167: LD_INT 47
19169: PUSH
19170: LD_INT 15
19172: PUSH
19173: EMPTY
19174: LIST
19175: LIST
19176: PUSH
19177: EMPTY
19178: LIST
19179: LIST
19180: LIST
19181: LIST
19182: LIST
19183: LIST
19184: LIST
19185: LIST
19186: LIST
19187: LIST
19188: LIST
19189: LIST
19190: LIST
19191: LIST
19192: LIST
19193: PUSH
19194: LD_INT 48
19196: PUSH
19197: LD_INT 16
19199: PUSH
19200: EMPTY
19201: LIST
19202: LIST
19203: PUSH
19204: LD_INT 49
19206: PUSH
19207: LD_INT 16
19209: PUSH
19210: EMPTY
19211: LIST
19212: LIST
19213: PUSH
19214: LD_INT 50
19216: PUSH
19217: LD_INT 16
19219: PUSH
19220: EMPTY
19221: LIST
19222: LIST
19223: PUSH
19224: LD_INT 51
19226: PUSH
19227: LD_INT 16
19229: PUSH
19230: EMPTY
19231: LIST
19232: LIST
19233: PUSH
19234: LD_INT 51
19236: PUSH
19237: LD_INT 15
19239: PUSH
19240: EMPTY
19241: LIST
19242: LIST
19243: PUSH
19244: LD_INT 51
19246: PUSH
19247: LD_INT 14
19249: PUSH
19250: EMPTY
19251: LIST
19252: LIST
19253: PUSH
19254: LD_INT 50
19256: PUSH
19257: LD_INT 13
19259: PUSH
19260: EMPTY
19261: LIST
19262: LIST
19263: PUSH
19264: LD_INT 49
19266: PUSH
19267: LD_INT 12
19269: PUSH
19270: EMPTY
19271: LIST
19272: LIST
19273: PUSH
19274: LD_INT 48
19276: PUSH
19277: LD_INT 11
19279: PUSH
19280: EMPTY
19281: LIST
19282: LIST
19283: PUSH
19284: LD_INT 47
19286: PUSH
19287: LD_INT 11
19289: PUSH
19290: EMPTY
19291: LIST
19292: LIST
19293: PUSH
19294: LD_INT 46
19296: PUSH
19297: LD_INT 11
19299: PUSH
19300: EMPTY
19301: LIST
19302: LIST
19303: PUSH
19304: LD_INT 46
19306: PUSH
19307: LD_INT 12
19309: PUSH
19310: EMPTY
19311: LIST
19312: LIST
19313: PUSH
19314: LD_INT 46
19316: PUSH
19317: LD_INT 13
19319: PUSH
19320: EMPTY
19321: LIST
19322: LIST
19323: PUSH
19324: LD_INT 46
19326: PUSH
19327: LD_INT 14
19329: PUSH
19330: EMPTY
19331: LIST
19332: LIST
19333: PUSH
19334: LD_INT 47
19336: PUSH
19337: LD_INT 15
19339: PUSH
19340: EMPTY
19341: LIST
19342: LIST
19343: PUSH
19344: EMPTY
19345: LIST
19346: LIST
19347: LIST
19348: LIST
19349: LIST
19350: LIST
19351: LIST
19352: LIST
19353: LIST
19354: LIST
19355: LIST
19356: LIST
19357: LIST
19358: LIST
19359: LIST
19360: PUSH
19361: LD_INT 49
19363: PUSH
19364: LD_INT 17
19366: PUSH
19367: EMPTY
19368: LIST
19369: LIST
19370: PUSH
19371: LD_INT 50
19373: PUSH
19374: LD_INT 17
19376: PUSH
19377: EMPTY
19378: LIST
19379: LIST
19380: PUSH
19381: LD_INT 51
19383: PUSH
19384: LD_INT 17
19386: PUSH
19387: EMPTY
19388: LIST
19389: LIST
19390: PUSH
19391: LD_INT 51
19393: PUSH
19394: LD_INT 16
19396: PUSH
19397: EMPTY
19398: LIST
19399: LIST
19400: PUSH
19401: LD_INT 51
19403: PUSH
19404: LD_INT 15
19406: PUSH
19407: EMPTY
19408: LIST
19409: LIST
19410: PUSH
19411: LD_INT 51
19413: PUSH
19414: LD_INT 14
19416: PUSH
19417: EMPTY
19418: LIST
19419: LIST
19420: PUSH
19421: LD_INT 50
19423: PUSH
19424: LD_INT 13
19426: PUSH
19427: EMPTY
19428: LIST
19429: LIST
19430: PUSH
19431: LD_INT 49
19433: PUSH
19434: LD_INT 12
19436: PUSH
19437: EMPTY
19438: LIST
19439: LIST
19440: PUSH
19441: LD_INT 48
19443: PUSH
19444: LD_INT 12
19446: PUSH
19447: EMPTY
19448: LIST
19449: LIST
19450: PUSH
19451: LD_INT 47
19453: PUSH
19454: LD_INT 12
19456: PUSH
19457: EMPTY
19458: LIST
19459: LIST
19460: PUSH
19461: LD_INT 46
19463: PUSH
19464: LD_INT 12
19466: PUSH
19467: EMPTY
19468: LIST
19469: LIST
19470: PUSH
19471: LD_INT 46
19473: PUSH
19474: LD_INT 13
19476: PUSH
19477: EMPTY
19478: LIST
19479: LIST
19480: PUSH
19481: LD_INT 46
19483: PUSH
19484: LD_INT 14
19486: PUSH
19487: EMPTY
19488: LIST
19489: LIST
19490: PUSH
19491: LD_INT 47
19493: PUSH
19494: LD_INT 15
19496: PUSH
19497: EMPTY
19498: LIST
19499: LIST
19500: PUSH
19501: LD_INT 48
19503: PUSH
19504: LD_INT 16
19506: PUSH
19507: EMPTY
19508: LIST
19509: LIST
19510: PUSH
19511: EMPTY
19512: LIST
19513: LIST
19514: LIST
19515: LIST
19516: LIST
19517: LIST
19518: LIST
19519: LIST
19520: LIST
19521: LIST
19522: LIST
19523: LIST
19524: LIST
19525: LIST
19526: LIST
19527: PUSH
19528: LD_INT 48
19530: PUSH
19531: LD_INT 17
19533: PUSH
19534: EMPTY
19535: LIST
19536: LIST
19537: PUSH
19538: LD_INT 49
19540: PUSH
19541: LD_INT 17
19543: PUSH
19544: EMPTY
19545: LIST
19546: LIST
19547: PUSH
19548: LD_INT 50
19550: PUSH
19551: LD_INT 17
19553: PUSH
19554: EMPTY
19555: LIST
19556: LIST
19557: PUSH
19558: LD_INT 51
19560: PUSH
19561: LD_INT 17
19563: PUSH
19564: EMPTY
19565: LIST
19566: LIST
19567: PUSH
19568: LD_INT 51
19570: PUSH
19571: LD_INT 16
19573: PUSH
19574: EMPTY
19575: LIST
19576: LIST
19577: PUSH
19578: LD_INT 51
19580: PUSH
19581: LD_INT 15
19583: PUSH
19584: EMPTY
19585: LIST
19586: LIST
19587: PUSH
19588: LD_INT 50
19590: PUSH
19591: LD_INT 14
19593: PUSH
19594: EMPTY
19595: LIST
19596: LIST
19597: PUSH
19598: LD_INT 49
19600: PUSH
19601: LD_INT 13
19603: PUSH
19604: EMPTY
19605: LIST
19606: LIST
19607: PUSH
19608: LD_INT 48
19610: PUSH
19611: LD_INT 12
19613: PUSH
19614: EMPTY
19615: LIST
19616: LIST
19617: PUSH
19618: LD_INT 47
19620: PUSH
19621: LD_INT 12
19623: PUSH
19624: EMPTY
19625: LIST
19626: LIST
19627: PUSH
19628: LD_INT 46
19630: PUSH
19631: LD_INT 12
19633: PUSH
19634: EMPTY
19635: LIST
19636: LIST
19637: PUSH
19638: LD_INT 46
19640: PUSH
19641: LD_INT 13
19643: PUSH
19644: EMPTY
19645: LIST
19646: LIST
19647: PUSH
19648: LD_INT 46
19650: PUSH
19651: LD_INT 14
19653: PUSH
19654: EMPTY
19655: LIST
19656: LIST
19657: PUSH
19658: LD_INT 46
19660: PUSH
19661: LD_INT 15
19663: PUSH
19664: EMPTY
19665: LIST
19666: LIST
19667: PUSH
19668: LD_INT 47
19670: PUSH
19671: LD_INT 16
19673: PUSH
19674: EMPTY
19675: LIST
19676: LIST
19677: PUSH
19678: EMPTY
19679: LIST
19680: LIST
19681: LIST
19682: LIST
19683: LIST
19684: LIST
19685: LIST
19686: LIST
19687: LIST
19688: LIST
19689: LIST
19690: LIST
19691: LIST
19692: LIST
19693: LIST
19694: PUSH
19695: LD_INT 48
19697: PUSH
19698: LD_INT 17
19700: PUSH
19701: EMPTY
19702: LIST
19703: LIST
19704: PUSH
19705: LD_INT 49
19707: PUSH
19708: LD_INT 17
19710: PUSH
19711: EMPTY
19712: LIST
19713: LIST
19714: PUSH
19715: LD_INT 50
19717: PUSH
19718: LD_INT 17
19720: PUSH
19721: EMPTY
19722: LIST
19723: LIST
19724: PUSH
19725: LD_INT 50
19727: PUSH
19728: LD_INT 16
19730: PUSH
19731: EMPTY
19732: LIST
19733: LIST
19734: PUSH
19735: LD_INT 50
19737: PUSH
19738: LD_INT 15
19740: PUSH
19741: EMPTY
19742: LIST
19743: LIST
19744: PUSH
19745: LD_INT 50
19747: PUSH
19748: LD_INT 14
19750: PUSH
19751: EMPTY
19752: LIST
19753: LIST
19754: PUSH
19755: LD_INT 49
19757: PUSH
19758: LD_INT 13
19760: PUSH
19761: EMPTY
19762: LIST
19763: LIST
19764: PUSH
19765: LD_INT 48
19767: PUSH
19768: LD_INT 12
19770: PUSH
19771: EMPTY
19772: LIST
19773: LIST
19774: PUSH
19775: LD_INT 47
19777: PUSH
19778: LD_INT 12
19780: PUSH
19781: EMPTY
19782: LIST
19783: LIST
19784: PUSH
19785: LD_INT 46
19787: PUSH
19788: LD_INT 12
19790: PUSH
19791: EMPTY
19792: LIST
19793: LIST
19794: PUSH
19795: LD_INT 45
19797: PUSH
19798: LD_INT 12
19800: PUSH
19801: EMPTY
19802: LIST
19803: LIST
19804: PUSH
19805: LD_INT 45
19807: PUSH
19808: LD_INT 13
19810: PUSH
19811: EMPTY
19812: LIST
19813: LIST
19814: PUSH
19815: LD_INT 45
19817: PUSH
19818: LD_INT 14
19820: PUSH
19821: EMPTY
19822: LIST
19823: LIST
19824: PUSH
19825: LD_INT 46
19827: PUSH
19828: LD_INT 15
19830: PUSH
19831: EMPTY
19832: LIST
19833: LIST
19834: PUSH
19835: LD_INT 47
19837: PUSH
19838: LD_INT 16
19840: PUSH
19841: EMPTY
19842: LIST
19843: LIST
19844: PUSH
19845: EMPTY
19846: LIST
19847: LIST
19848: LIST
19849: LIST
19850: LIST
19851: LIST
19852: LIST
19853: LIST
19854: LIST
19855: LIST
19856: LIST
19857: LIST
19858: LIST
19859: LIST
19860: LIST
19861: PUSH
19862: LD_INT 47
19864: PUSH
19865: LD_INT 16
19867: PUSH
19868: EMPTY
19869: LIST
19870: LIST
19871: PUSH
19872: LD_INT 48
19874: PUSH
19875: LD_INT 16
19877: PUSH
19878: EMPTY
19879: LIST
19880: LIST
19881: PUSH
19882: LD_INT 49
19884: PUSH
19885: LD_INT 16
19887: PUSH
19888: EMPTY
19889: LIST
19890: LIST
19891: PUSH
19892: LD_INT 50
19894: PUSH
19895: LD_INT 16
19897: PUSH
19898: EMPTY
19899: LIST
19900: LIST
19901: PUSH
19902: LD_INT 50
19904: PUSH
19905: LD_INT 15
19907: PUSH
19908: EMPTY
19909: LIST
19910: LIST
19911: PUSH
19912: LD_INT 50
19914: PUSH
19915: LD_INT 14
19917: PUSH
19918: EMPTY
19919: LIST
19920: LIST
19921: PUSH
19922: LD_INT 49
19924: PUSH
19925: LD_INT 13
19927: PUSH
19928: EMPTY
19929: LIST
19930: LIST
19931: PUSH
19932: LD_INT 48
19934: PUSH
19935: LD_INT 12
19937: PUSH
19938: EMPTY
19939: LIST
19940: LIST
19941: PUSH
19942: LD_INT 47
19944: PUSH
19945: LD_INT 11
19947: PUSH
19948: EMPTY
19949: LIST
19950: LIST
19951: PUSH
19952: LD_INT 46
19954: PUSH
19955: LD_INT 11
19957: PUSH
19958: EMPTY
19959: LIST
19960: LIST
19961: PUSH
19962: LD_INT 45
19964: PUSH
19965: LD_INT 11
19967: PUSH
19968: EMPTY
19969: LIST
19970: LIST
19971: PUSH
19972: LD_INT 45
19974: PUSH
19975: LD_INT 12
19977: PUSH
19978: EMPTY
19979: LIST
19980: LIST
19981: PUSH
19982: LD_INT 45
19984: PUSH
19985: LD_INT 13
19987: PUSH
19988: EMPTY
19989: LIST
19990: LIST
19991: PUSH
19992: LD_INT 45
19994: PUSH
19995: LD_INT 14
19997: PUSH
19998: EMPTY
19999: LIST
20000: LIST
20001: PUSH
20002: LD_INT 46
20004: PUSH
20005: LD_INT 15
20007: PUSH
20008: EMPTY
20009: LIST
20010: LIST
20011: PUSH
20012: EMPTY
20013: LIST
20014: LIST
20015: LIST
20016: LIST
20017: LIST
20018: LIST
20019: LIST
20020: LIST
20021: LIST
20022: LIST
20023: LIST
20024: LIST
20025: LIST
20026: LIST
20027: LIST
20028: PUSH
20029: EMPTY
20030: LIST
20031: LIST
20032: LIST
20033: LIST
20034: LIST
20035: LIST
20036: ST_TO_ADDR
// tmp1 = [ ] ;
20037: LD_ADDR_VAR 0 3
20041: PUSH
20042: EMPTY
20043: ST_TO_ADDR
// for tmz = 1 to 6 do
20044: LD_ADDR_VAR 0 4
20048: PUSH
20049: DOUBLE
20050: LD_INT 1
20052: DEC
20053: ST_TO_ADDR
20054: LD_INT 6
20056: PUSH
20057: FOR_TO
20058: IFFALSE 20188
// begin tm_c = false ;
20060: LD_ADDR_VAR 0 6
20064: PUSH
20065: LD_INT 0
20067: ST_TO_ADDR
// for tmz_ = 1 to 15 do
20068: LD_ADDR_VAR 0 5
20072: PUSH
20073: DOUBLE
20074: LD_INT 1
20076: DEC
20077: ST_TO_ADDR
20078: LD_INT 15
20080: PUSH
20081: FOR_TO
20082: IFFALSE 20144
// if hexinfo ( smery [ tmz ] [ tmz_ ] [ 1 ] , smery [ tmz ] [ tmz_ ] [ 2 ] ) then
20084: LD_VAR 0 17
20088: PUSH
20089: LD_VAR 0 4
20093: ARRAY
20094: PUSH
20095: LD_VAR 0 5
20099: ARRAY
20100: PUSH
20101: LD_INT 1
20103: ARRAY
20104: PPUSH
20105: LD_VAR 0 17
20109: PUSH
20110: LD_VAR 0 4
20114: ARRAY
20115: PUSH
20116: LD_VAR 0 5
20120: ARRAY
20121: PUSH
20122: LD_INT 2
20124: ARRAY
20125: PPUSH
20126: CALL_OW 428
20130: IFFALSE 20142
// begin tm_c = true ;
20132: LD_ADDR_VAR 0 6
20136: PUSH
20137: LD_INT 1
20139: ST_TO_ADDR
// break ;
20140: GO 20144
// end ;
20142: GO 20081
20144: POP
20145: POP
// if not tm_c then
20146: LD_VAR 0 6
20150: NOT
20151: IFFALSE 20178
// tmp1 = tmp1 ^ [ tmz - 1 ] else
20153: LD_ADDR_VAR 0 3
20157: PUSH
20158: LD_VAR 0 3
20162: PUSH
20163: LD_VAR 0 4
20167: PUSH
20168: LD_INT 1
20170: MINUS
20171: PUSH
20172: EMPTY
20173: LIST
20174: ADD
20175: ST_TO_ADDR
20176: GO 20186
// tm_c = false ;
20178: LD_ADDR_VAR 0 6
20182: PUSH
20183: LD_INT 0
20185: ST_TO_ADDR
// end ;
20186: GO 20057
20188: POP
20189: POP
// tm_c = false ;
20190: LD_ADDR_VAR 0 6
20194: PUSH
20195: LD_INT 0
20197: ST_TO_ADDR
// for tmz in tmp1 do
20198: LD_ADDR_VAR 0 4
20202: PUSH
20203: LD_VAR 0 3
20207: PUSH
20208: FOR_IN
20209: IFFALSE 20274
// begin uc_direction = tmz ;
20211: LD_ADDR_OWVAR 24
20215: PUSH
20216: LD_VAR 0 4
20220: ST_TO_ADDR
// ambctwr0 = createbuilding ;
20221: LD_ADDR_LOC 97
20225: PUSH
20226: CALL_OW 46
20230: ST_TO_ADDR
// if placeunitxy ( ambctwr0 , 48 , 14 , false ) then
20231: LD_LOC 97
20235: PPUSH
20236: LD_INT 48
20238: PPUSH
20239: LD_INT 14
20241: PPUSH
20242: LD_INT 0
20244: PPUSH
20245: CALL_OW 48
20249: IFFALSE 20263
// begin tm_c = true ;
20251: LD_ADDR_VAR 0 6
20255: PUSH
20256: LD_INT 1
20258: ST_TO_ADDR
// break ;
20259: GO 20274
// end else
20261: GO 20272
// destroyunit ( ambctwr0 ) ;
20263: LD_LOC 97
20267: PPUSH
20268: CALL_OW 65
// end ;
20272: GO 20208
20274: POP
20275: POP
// for tmp in retry do
20276: LD_ADDR_VAR 0 2
20280: PUSH
20281: LD_VAR 0 16
20285: PUSH
20286: FOR_IN
20287: IFFALSE 20617
// begin if ( tmp [ 4 ] in [ b_lab , b_lab_half , b_lab_full ] ) and not lab_done then
20289: LD_VAR 0 2
20293: PUSH
20294: LD_INT 4
20296: ARRAY
20297: PUSH
20298: LD_INT 6
20300: PUSH
20301: LD_INT 7
20303: PUSH
20304: LD_INT 8
20306: PUSH
20307: EMPTY
20308: LIST
20309: LIST
20310: LIST
20311: IN
20312: PUSH
20313: LD_VAR 0 15
20317: NOT
20318: AND
20319: IFFALSE 20426
// begin uc_direction = tmp [ 3 ] ;
20321: LD_ADDR_OWVAR 24
20325: PUSH
20326: LD_VAR 0 2
20330: PUSH
20331: LD_INT 3
20333: ARRAY
20334: ST_TO_ADDR
// bc_type = b_lab_full ;
20335: LD_ADDR_OWVAR 42
20339: PUSH
20340: LD_INT 8
20342: ST_TO_ADDR
// bc_level = tmp [ 5 ] ;
20343: LD_ADDR_OWVAR 43
20347: PUSH
20348: LD_VAR 0 2
20352: PUSH
20353: LD_INT 5
20355: ARRAY
20356: ST_TO_ADDR
// bc_kind1 = b_lab_weapon ;
20357: LD_ADDR_OWVAR 44
20361: PUSH
20362: LD_INT 10
20364: ST_TO_ADDR
// bc_kind2 = b_lab_opto ;
20365: LD_ADDR_OWVAR 45
20369: PUSH
20370: LD_INT 15
20372: ST_TO_ADDR
// tmp1 = createbuilding ;
20373: LD_ADDR_VAR 0 3
20377: PUSH
20378: CALL_OW 46
20382: ST_TO_ADDR
// if not placeunitarea ( tmp1 , ambase , false ) then
20383: LD_VAR 0 3
20387: PPUSH
20388: LD_INT 8
20390: PPUSH
20391: LD_INT 0
20393: PPUSH
20394: CALL_OW 49
20398: NOT
20399: IFFALSE 20416
// buildquery ( lab nebude , [ OK ] ) else
20401: LD_STRING lab nebude
20403: PPUSH
20404: LD_STRING OK
20406: PUSH
20407: EMPTY
20408: LIST
20409: PPUSH
20410: CALL_OW 99
20414: GO 20424
// lab_done = true ;
20416: LD_ADDR_VAR 0 15
20420: PUSH
20421: LD_INT 1
20423: ST_TO_ADDR
// end else
20424: GO 20615
// if tmp [ 4 ] = b_armoury then
20426: LD_VAR 0 2
20430: PUSH
20431: LD_INT 4
20433: ARRAY
20434: PUSH
20435: LD_INT 4
20437: EQUAL
20438: IFFALSE 20519
// begin uc_direction = tmp [ 3 ] ;
20440: LD_ADDR_OWVAR 24
20444: PUSH
20445: LD_VAR 0 2
20449: PUSH
20450: LD_INT 3
20452: ARRAY
20453: ST_TO_ADDR
// bc_type = b_barracks ;
20454: LD_ADDR_OWVAR 42
20458: PUSH
20459: LD_INT 5
20461: ST_TO_ADDR
// bc_level = tmp [ 5 ] ;
20462: LD_ADDR_OWVAR 43
20466: PUSH
20467: LD_VAR 0 2
20471: PUSH
20472: LD_INT 5
20474: ARRAY
20475: ST_TO_ADDR
// tmp1 = createbuilding ;
20476: LD_ADDR_VAR 0 3
20480: PUSH
20481: CALL_OW 46
20485: ST_TO_ADDR
// if not placeunitarea ( tmp1 , ambase , false ) then
20486: LD_VAR 0 3
20490: PPUSH
20491: LD_INT 8
20493: PPUSH
20494: LD_INT 0
20496: PPUSH
20497: CALL_OW 49
20501: NOT
20502: IFFALSE 20517
// buildquery ( barracks nebudou , [ OK ] ) ;
20504: LD_STRING barracks nebudou
20506: PPUSH
20507: LD_STRING OK
20509: PUSH
20510: EMPTY
20511: LIST
20512: PPUSH
20513: CALL_OW 99
// end else
20517: GO 20615
// begin uc_direction = tmp [ 3 ] ;
20519: LD_ADDR_OWVAR 24
20523: PUSH
20524: LD_VAR 0 2
20528: PUSH
20529: LD_INT 3
20531: ARRAY
20532: ST_TO_ADDR
// bc_type = tmp [ 4 ] ;
20533: LD_ADDR_OWVAR 42
20537: PUSH
20538: LD_VAR 0 2
20542: PUSH
20543: LD_INT 4
20545: ARRAY
20546: ST_TO_ADDR
// bc_level = tmp [ 5 ] ;
20547: LD_ADDR_OWVAR 43
20551: PUSH
20552: LD_VAR 0 2
20556: PUSH
20557: LD_INT 5
20559: ARRAY
20560: ST_TO_ADDR
// tmp1 = createbuilding ;
20561: LD_ADDR_VAR 0 3
20565: PUSH
20566: CALL_OW 46
20570: ST_TO_ADDR
// if not placeunitarea ( tmp1 , ambase , false ) then
20571: LD_VAR 0 3
20575: PPUSH
20576: LD_INT 8
20578: PPUSH
20579: LD_INT 0
20581: PPUSH
20582: CALL_OW 49
20586: NOT
20587: IFFALSE 20615
// buildquery ( [ tmp [ 4 ] , nebude ] , [ OK ] ) ;
20589: LD_VAR 0 2
20593: PUSH
20594: LD_INT 4
20596: ARRAY
20597: PUSH
20598: LD_STRING nebude
20600: PUSH
20601: EMPTY
20602: LIST
20603: LIST
20604: PPUSH
20605: LD_STRING OK
20607: PUSH
20608: EMPTY
20609: LIST
20610: PPUSH
20611: CALL_OW 99
// end ; end ;
20615: GO 20286
20617: POP
20618: POP
// if not tm_c then
20619: LD_VAR 0 6
20623: NOT
20624: IFFALSE 20657
// if not placeunitarea ( ambctwr0 , ambase , false ) then
20626: LD_LOC 97
20630: PPUSH
20631: LD_INT 8
20633: PPUSH
20634: LD_INT 0
20636: PPUSH
20637: CALL_OW 49
20641: NOT
20642: IFFALSE 20657
// buildquery ( control tower nebude , [ OK ] ) ;
20644: LD_STRING control tower nebude
20646: PPUSH
20647: LD_STRING OK
20649: PUSH
20650: EMPTY
20651: LIST
20652: PPUSH
20653: CALL_OW 99
// if not testcharacters ( otherGamma2 ) or not checkcharacterset ( otherGamma2 ) then
20657: LD_STRING otherGamma2
20659: PPUSH
20660: CALL_OW 28
20664: NOT
20665: PUSH
20666: LD_STRING otherGamma2
20668: PPUSH
20669: CALL_OW 29
20673: NOT
20674: OR
20675: IFFALSE 20679
// else
20677: GO 20692
// othergamma2 = createcharacterset ( otherGamma2 ) ;
20679: LD_ADDR_LOC 87
20683: PUSH
20684: LD_STRING otherGamma2
20686: PPUSH
20687: CALL_OW 31
20691: ST_TO_ADDR
// if not testcharacters ( otherDelta ) or not checkcharacterset ( otherDelta ) then
20692: LD_STRING otherDelta
20694: PPUSH
20695: CALL_OW 28
20699: NOT
20700: PUSH
20701: LD_STRING otherDelta
20703: PPUSH
20704: CALL_OW 29
20708: NOT
20709: OR
20710: IFFALSE 20714
// else
20712: GO 20727
// othergamma3 = createcharacterset ( otherDelta ) ;
20714: LD_ADDR_LOC 88
20718: PUSH
20719: LD_STRING otherDelta
20721: PPUSH
20722: CALL_OW 31
20726: ST_TO_ADDR
// if not testcharacters ( otherUnplaced ) or not checkcharacterset ( otherUnplaced ) then
20727: LD_STRING otherUnplaced
20729: PPUSH
20730: CALL_OW 28
20734: NOT
20735: PUSH
20736: LD_STRING otherUnplaced
20738: PPUSH
20739: CALL_OW 29
20743: NOT
20744: OR
20745: IFFALSE 20749
// else
20747: GO 20762
// otherunplaced = createcharacterset ( otherUnplaced ) ;
20749: LD_ADDR_LOC 89
20753: PUSH
20754: LD_STRING otherUnplaced
20756: PPUSH
20757: CALL_OW 31
20761: ST_TO_ADDR
// if not testcharacters ( otherJMM ) or not checkcharacterset ( otherJMM ) then
20762: LD_STRING otherJMM
20764: PPUSH
20765: CALL_OW 28
20769: NOT
20770: PUSH
20771: LD_STRING otherJMM
20773: PPUSH
20774: CALL_OW 29
20778: NOT
20779: OR
20780: IFFALSE 20784
// else
20782: GO 20797
// otherjmm = createcharacterset ( otherJMM ) ;
20784: LD_ADDR_LOC 90
20788: PUSH
20789: LD_STRING otherJMM
20791: PPUSH
20792: CALL_OW 31
20796: ST_TO_ADDR
// if not testcharacters ( otherLateJMM ) or not checkcharacterset ( otherLateJMM ) then
20797: LD_STRING otherLateJMM
20799: PPUSH
20800: CALL_OW 28
20804: NOT
20805: PUSH
20806: LD_STRING otherLateJMM
20808: PPUSH
20809: CALL_OW 29
20813: NOT
20814: OR
20815: IFFALSE 20819
// else
20817: GO 20832
// otherlatejmm = createcharacterset ( otherLateJMM ) ;
20819: LD_ADDR_LOC 91
20823: PUSH
20824: LD_STRING otherLateJMM
20826: PPUSH
20827: CALL_OW 31
20831: ST_TO_ADDR
// rh = newcharacter ( Harisson ) ;
20832: LD_ADDR_EXP 15
20836: PUSH
20837: LD_STRING Harisson
20839: PPUSH
20840: CALL_OW 25
20844: ST_TO_ADDR
// if not rh then
20845: LD_EXP 15
20849: NOT
20850: IFFALSE 20865
// buildquery ( neny Harisson , [ OK ] ) ;
20852: LD_STRING neny Harisson
20854: PPUSH
20855: LD_STRING OK
20857: PUSH
20858: EMPTY
20859: LIST
20860: PPUSH
20861: CALL_OW 99
// if testcharacters ( JMM ) and checkcharacterset ( JMM ) then
20865: LD_STRING JMM
20867: PPUSH
20868: CALL_OW 28
20872: PUSH
20873: LD_STRING JMM
20875: PPUSH
20876: CALL_OW 29
20880: AND
20881: IFFALSE 20901
// john_ = createcharacterwithclass ( JMM , class_soldier ) else
20883: LD_ADDR_EXP 20
20887: PUSH
20888: LD_STRING JMM
20890: PPUSH
20891: LD_INT 1
20893: PPUSH
20894: CALL_OW 35
20898: ST_TO_ADDR
20899: GO 20914
// buildquery ( neny JMM , [ OK ] ) ;
20901: LD_STRING neny JMM
20903: PPUSH
20904: LD_STRING OK
20906: PUSH
20907: EMPTY
20908: LIST
20909: PPUSH
20910: CALL_OW 99
// powel = newcharacter ( Powell ) ;
20914: LD_ADDR_EXP 16
20918: PUSH
20919: LD_STRING Powell
20921: PPUSH
20922: CALL_OW 25
20926: ST_TO_ADDR
// if not powel then
20927: LD_EXP 16
20931: NOT
20932: IFFALSE 20947
// buildquery ( neny Powell , [ OK ] ) ;
20934: LD_STRING neny Powell
20936: PPUSH
20937: LD_STRING OK
20939: PUSH
20940: EMPTY
20941: LIST
20942: PPUSH
20943: CALL_OW 99
// gamma2commander = loadvariable ( Gamma2Commander , 0 ) ;
20947: LD_ADDR_EXP 46
20951: PUSH
20952: LD_STRING Gamma2Commander
20954: PPUSH
20955: LD_INT 0
20957: PPUSH
20958: CALL_OW 30
20962: ST_TO_ADDR
// if not gamma2commander then
20963: LD_EXP 46
20967: NOT
20968: IFFALSE 20983
// buildquery ( neny Gamma2Commander , [ OK ] ) ;
20970: LD_STRING neny Gamma2Commander
20972: PPUSH
20973: LD_STRING OK
20975: PUSH
20976: EMPTY
20977: LIST
20978: PPUSH
20979: CALL_OW 99
// lucy = 0 ;
20983: LD_ADDR_EXP 31
20987: PUSH
20988: LD_INT 0
20990: ST_TO_ADDR
// brown = 0 ;
20991: LD_ADDR_EXP 32
20995: PUSH
20996: LD_INT 0
20998: ST_TO_ADDR
// vanh = 0 ;
20999: LD_ADDR_EXP 33
21003: PUSH
21004: LD_INT 0
21006: ST_TO_ADDR
// if not testcharacters ( Donaldson ) or not checkcharacterset ( Donaldson ) then
21007: LD_STRING Donaldson
21009: PPUSH
21010: CALL_OW 28
21014: NOT
21015: PUSH
21016: LD_STRING Donaldson
21018: PPUSH
21019: CALL_OW 29
21023: NOT
21024: OR
21025: IFFALSE 21037
// lucy = 0 else
21027: LD_ADDR_EXP 31
21031: PUSH
21032: LD_INT 0
21034: ST_TO_ADDR
21035: GO 21091
// begin lucy = createcharacter ( Donaldson ) ;
21037: LD_ADDR_EXP 31
21041: PUSH
21042: LD_STRING Donaldson
21044: PPUSH
21045: CALL_OW 34
21049: ST_TO_ADDR
// lucyloc = loadvariable ( DonaldsonLoc , - 1 ) ;
21050: LD_ADDR_EXP 42
21054: PUSH
21055: LD_STRING DonaldsonLoc
21057: PPUSH
21058: LD_INT 1
21060: NEG
21061: PPUSH
21062: CALL_OW 30
21066: ST_TO_ADDR
// if lucyloc = - 1 then
21067: LD_EXP 42
21071: PUSH
21072: LD_INT 1
21074: NEG
21075: EQUAL
21076: IFFALSE 21091
// buildquery ( neny DonaldsonLoc , [ OK ] ) ;
21078: LD_STRING neny DonaldsonLoc
21080: PPUSH
21081: LD_STRING OK
21083: PUSH
21084: EMPTY
21085: LIST
21086: PPUSH
21087: CALL_OW 99
// end ; if not testcharacters ( Brown ) or not checkcharacterset ( Brown ) then
21091: LD_STRING Brown
21093: PPUSH
21094: CALL_OW 28
21098: NOT
21099: PUSH
21100: LD_STRING Brown
21102: PPUSH
21103: CALL_OW 29
21107: NOT
21108: OR
21109: IFFALSE 21121
// brown = 0 else
21111: LD_ADDR_EXP 32
21115: PUSH
21116: LD_INT 0
21118: ST_TO_ADDR
21119: GO 21175
// begin brown = createcharacter ( Brown ) ;
21121: LD_ADDR_EXP 32
21125: PUSH
21126: LD_STRING Brown
21128: PPUSH
21129: CALL_OW 34
21133: ST_TO_ADDR
// brownloc = loadvariable ( BrownLoc , - 1 ) ;
21134: LD_ADDR_EXP 43
21138: PUSH
21139: LD_STRING BrownLoc
21141: PPUSH
21142: LD_INT 1
21144: NEG
21145: PPUSH
21146: CALL_OW 30
21150: ST_TO_ADDR
// if brownloc = - 1 then
21151: LD_EXP 43
21155: PUSH
21156: LD_INT 1
21158: NEG
21159: EQUAL
21160: IFFALSE 21175
// buildquery ( neny BrownLoc , [ OK ] ) ;
21162: LD_STRING neny BrownLoc
21164: PPUSH
21165: LD_STRING OK
21167: PUSH
21168: EMPTY
21169: LIST
21170: PPUSH
21171: CALL_OW 99
// end ; vanh = newcharacter ( VanHouten ) ;
21175: LD_ADDR_EXP 33
21179: PUSH
21180: LD_STRING VanHouten
21182: PPUSH
21183: CALL_OW 25
21187: ST_TO_ADDR
// case gamma2commander of 1 :
21188: LD_EXP 46
21192: PUSH
21193: LD_INT 1
21195: DOUBLE
21196: EQUAL
21197: IFTRUE 21201
21199: GO 21236
21201: POP
// if not lucy then
21202: LD_EXP 31
21206: NOT
21207: IFFALSE 21224
// buildquery ( neny Donaldson , [ OK ] ) else
21209: LD_STRING neny Donaldson
21211: PPUSH
21212: LD_STRING OK
21214: PUSH
21215: EMPTY
21216: LIST
21217: PPUSH
21218: CALL_OW 99
21222: GO 21234
// amhsold0 = lucy ; 2 :
21224: LD_ADDR_EXP 25
21228: PUSH
21229: LD_EXP 31
21233: ST_TO_ADDR
21234: GO 21323
21236: LD_INT 2
21238: DOUBLE
21239: EQUAL
21240: IFTRUE 21244
21242: GO 21279
21244: POP
// if not brown then
21245: LD_EXP 32
21249: NOT
21250: IFFALSE 21267
// buildquery ( neny Brown , [ OK ] ) else
21252: LD_STRING neny Brown
21254: PPUSH
21255: LD_STRING OK
21257: PUSH
21258: EMPTY
21259: LIST
21260: PPUSH
21261: CALL_OW 99
21265: GO 21277
// amhsold0 = brown ; 3 :
21267: LD_ADDR_EXP 25
21271: PUSH
21272: LD_EXP 32
21276: ST_TO_ADDR
21277: GO 21323
21279: LD_INT 3
21281: DOUBLE
21282: EQUAL
21283: IFTRUE 21287
21285: GO 21322
21287: POP
// if not vanh then
21288: LD_EXP 33
21292: NOT
21293: IFFALSE 21310
// buildquery ( neny VanHouten , [ OK ] ) else
21295: LD_STRING neny VanHouten
21297: PPUSH
21298: LD_STRING OK
21300: PUSH
21301: EMPTY
21302: LIST
21303: PPUSH
21304: CALL_OW 99
21308: GO 21320
// amhsold0 = vanh ; end ;
21310: LD_ADDR_EXP 25
21314: PUSH
21315: LD_EXP 33
21319: ST_TO_ADDR
21320: GO 21323
21322: POP
// uc_side = amer_reinf ;
21323: LD_ADDR_OWVAR 20
21327: PUSH
21328: LD_EXP 3
21332: ST_TO_ADDR
// amhsolda = newcharacter ( Sikorski ) ;
21333: LD_ADDR_EXP 26
21337: PUSH
21338: LD_STRING Sikorski
21340: PPUSH
21341: CALL_OW 25
21345: ST_TO_ADDR
// uc_side = amer ;
21346: LD_ADDR_OWVAR 20
21350: PUSH
21351: LD_EXP 2
21355: ST_TO_ADDR
// if not amhsolda then
21356: LD_EXP 26
21360: NOT
21361: IFFALSE 21376
// buildquery ( neny Sikorski , [ OK ] ) ;
21363: LD_STRING neny Sikorski
21365: PPUSH
21366: LD_STRING OK
21368: PUSH
21369: EMPTY
21370: LIST
21371: PPUSH
21372: CALL_OW 99
// if not testcharacters ( Lisa ) or not checkcharacterset ( Lisa ) then
21376: LD_STRING Lisa
21378: PPUSH
21379: CALL_OW 28
21383: NOT
21384: PUSH
21385: LD_STRING Lisa
21387: PPUSH
21388: CALL_OW 29
21392: NOT
21393: OR
21394: IFFALSE 21406
// lisa = 0 else
21396: LD_ADDR_EXP 18
21400: PUSH
21401: LD_INT 0
21403: ST_TO_ADDR
21404: GO 21587
// begin lisa = createcharacter ( Lisa ) ;
21406: LD_ADDR_EXP 18
21410: PUSH
21411: LD_STRING Lisa
21413: PPUSH
21414: CALL_OW 34
21418: ST_TO_ADDR
// lisaloc = loadvariable ( LisaLoc , - 1 ) ;
21419: LD_ADDR_EXP 36
21423: PUSH
21424: LD_STRING LisaLoc
21426: PPUSH
21427: LD_INT 1
21429: NEG
21430: PPUSH
21431: CALL_OW 30
21435: ST_TO_ADDR
// case lisaloc of 2 :
21436: LD_EXP 36
21440: PUSH
21441: LD_INT 2
21443: DOUBLE
21444: EQUAL
21445: IFTRUE 21449
21447: GO 21471
21449: POP
// gamma2vip = gamma2vip ^ [ lisa ] ; 3 :
21450: LD_ADDR_LOC 92
21454: PUSH
21455: LD_LOC 92
21459: PUSH
21460: LD_EXP 18
21464: PUSH
21465: EMPTY
21466: LIST
21467: ADD
21468: ST_TO_ADDR
21469: GO 21587
21471: LD_INT 3
21473: DOUBLE
21474: EQUAL
21475: IFTRUE 21479
21477: GO 21501
21479: POP
// gamma3vip = gamma3vip ^ [ lisa ] ; 4 :
21480: LD_ADDR_LOC 93
21484: PUSH
21485: LD_LOC 93
21489: PUSH
21490: LD_EXP 18
21494: PUSH
21495: EMPTY
21496: LIST
21497: ADD
21498: ST_TO_ADDR
21499: GO 21587
21501: LD_INT 4
21503: DOUBLE
21504: EQUAL
21505: IFTRUE 21509
21507: GO 21531
21509: POP
// withjmmvip = withjmmvip ^ [ lisa ] ; 5 :
21510: LD_ADDR_LOC 94
21514: PUSH
21515: LD_LOC 94
21519: PUSH
21520: LD_EXP 18
21524: PUSH
21525: EMPTY
21526: LIST
21527: ADD
21528: ST_TO_ADDR
21529: GO 21587
21531: LD_INT 5
21533: DOUBLE
21534: EQUAL
21535: IFTRUE 21539
21537: GO 21561
21539: POP
// withjmmlatevip = withjmmlatevip ^ [ lisa ] ; - 1 :
21540: LD_ADDR_LOC 95
21544: PUSH
21545: LD_LOC 95
21549: PUSH
21550: LD_EXP 18
21554: PUSH
21555: EMPTY
21556: LIST
21557: ADD
21558: ST_TO_ADDR
21559: GO 21587
21561: LD_INT 1
21563: NEG
21564: DOUBLE
21565: EQUAL
21566: IFTRUE 21570
21568: GO 21586
21570: POP
// buildquery ( neny LisaLoc , [ OK ] ) ; end ;
21571: LD_STRING neny LisaLoc
21573: PPUSH
21574: LD_STRING OK
21576: PUSH
21577: EMPTY
21578: LIST
21579: PPUSH
21580: CALL_OW 99
21584: GO 21587
21586: POP
// end ; if not testcharacters ( Frank ) or not checkcharacterset ( Frank ) then
21587: LD_STRING Frank
21589: PPUSH
21590: CALL_OW 28
21594: NOT
21595: PUSH
21596: LD_STRING Frank
21598: PPUSH
21599: CALL_OW 29
21603: NOT
21604: OR
21605: IFFALSE 21617
// frank = 0 else
21607: LD_ADDR_EXP 19
21611: PUSH
21612: LD_INT 0
21614: ST_TO_ADDR
21615: GO 21798
// begin frank = createcharacter ( Frank ) ;
21617: LD_ADDR_EXP 19
21621: PUSH
21622: LD_STRING Frank
21624: PPUSH
21625: CALL_OW 34
21629: ST_TO_ADDR
// frankloc = loadvariable ( FrankLoc , - 1 ) ;
21630: LD_ADDR_EXP 37
21634: PUSH
21635: LD_STRING FrankLoc
21637: PPUSH
21638: LD_INT 1
21640: NEG
21641: PPUSH
21642: CALL_OW 30
21646: ST_TO_ADDR
// case frankloc of 2 :
21647: LD_EXP 37
21651: PUSH
21652: LD_INT 2
21654: DOUBLE
21655: EQUAL
21656: IFTRUE 21660
21658: GO 21682
21660: POP
// gamma2vip = gamma2vip ^ [ frank ] ; 3 :
21661: LD_ADDR_LOC 92
21665: PUSH
21666: LD_LOC 92
21670: PUSH
21671: LD_EXP 19
21675: PUSH
21676: EMPTY
21677: LIST
21678: ADD
21679: ST_TO_ADDR
21680: GO 21798
21682: LD_INT 3
21684: DOUBLE
21685: EQUAL
21686: IFTRUE 21690
21688: GO 21712
21690: POP
// gamma3vip = gamma3vip ^ [ frank ] ; 4 :
21691: LD_ADDR_LOC 93
21695: PUSH
21696: LD_LOC 93
21700: PUSH
21701: LD_EXP 19
21705: PUSH
21706: EMPTY
21707: LIST
21708: ADD
21709: ST_TO_ADDR
21710: GO 21798
21712: LD_INT 4
21714: DOUBLE
21715: EQUAL
21716: IFTRUE 21720
21718: GO 21742
21720: POP
// withjmmvip = withjmmvip ^ [ frank ] ; 5 :
21721: LD_ADDR_LOC 94
21725: PUSH
21726: LD_LOC 94
21730: PUSH
21731: LD_EXP 19
21735: PUSH
21736: EMPTY
21737: LIST
21738: ADD
21739: ST_TO_ADDR
21740: GO 21798
21742: LD_INT 5
21744: DOUBLE
21745: EQUAL
21746: IFTRUE 21750
21748: GO 21772
21750: POP
// withjmmlatevip = withjmmlatevip ^ [ frank ] ; - 1 :
21751: LD_ADDR_LOC 95
21755: PUSH
21756: LD_LOC 95
21760: PUSH
21761: LD_EXP 19
21765: PUSH
21766: EMPTY
21767: LIST
21768: ADD
21769: ST_TO_ADDR
21770: GO 21798
21772: LD_INT 1
21774: NEG
21775: DOUBLE
21776: EQUAL
21777: IFTRUE 21781
21779: GO 21797
21781: POP
// buildquery ( neny FrankLoc , [ OK ] ) ; end ;
21782: LD_STRING neny FrankLoc
21784: PPUSH
21785: LD_STRING OK
21787: PUSH
21788: EMPTY
21789: LIST
21790: PPUSH
21791: CALL_OW 99
21795: GO 21798
21797: POP
// end ; if not testcharacters ( Joan ) or not checkcharacterset ( Joan ) then
21798: LD_STRING Joan
21800: PPUSH
21801: CALL_OW 28
21805: NOT
21806: PUSH
21807: LD_STRING Joan
21809: PPUSH
21810: CALL_OW 29
21814: NOT
21815: OR
21816: IFFALSE 21828
// joan = 0 else
21818: LD_ADDR_EXP 35
21822: PUSH
21823: LD_INT 0
21825: ST_TO_ADDR
21826: GO 21900
// begin joan = createcharacter ( Joan ) ;
21828: LD_ADDR_EXP 35
21832: PUSH
21833: LD_STRING Joan
21835: PPUSH
21836: CALL_OW 34
21840: ST_TO_ADDR
// joanloc = loadvariable ( JoanLoc , - 1 ) ;
21841: LD_ADDR_EXP 45
21845: PUSH
21846: LD_STRING JoanLoc
21848: PPUSH
21849: LD_INT 1
21851: NEG
21852: PPUSH
21853: CALL_OW 30
21857: ST_TO_ADDR
// case joanloc of 9 :
21858: LD_EXP 45
21862: PUSH
21863: LD_INT 9
21865: DOUBLE
21866: EQUAL
21867: IFTRUE 21871
21869: GO 21874
21871: POP
// ; - 1 :
21872: GO 21900
21874: LD_INT 1
21876: NEG
21877: DOUBLE
21878: EQUAL
21879: IFTRUE 21883
21881: GO 21899
21883: POP
// buildquery ( neny JoanLoc , [ OK ] ) ; end ;
21884: LD_STRING neny JoanLoc
21886: PPUSH
21887: LD_STRING OK
21889: PUSH
21890: EMPTY
21891: LIST
21892: PPUSH
21893: CALL_OW 99
21897: GO 21900
21899: POP
// end ; if not testcharacters ( Gladstone ) or not checkcharacterset ( Gladstone ) then
21900: LD_STRING Gladstone
21902: PPUSH
21903: CALL_OW 28
21907: NOT
21908: PUSH
21909: LD_STRING Gladstone
21911: PPUSH
21912: CALL_OW 29
21916: NOT
21917: OR
21918: IFFALSE 21930
// glad = 0 else
21920: LD_ADDR_EXP 34
21924: PUSH
21925: LD_INT 0
21927: ST_TO_ADDR
21928: GO 22111
// begin glad = createcharacter ( Gladstone ) ;
21930: LD_ADDR_EXP 34
21934: PUSH
21935: LD_STRING Gladstone
21937: PPUSH
21938: CALL_OW 34
21942: ST_TO_ADDR
// gladloc = loadvariable ( GladstoneLoc , - 1 ) ;
21943: LD_ADDR_EXP 44
21947: PUSH
21948: LD_STRING GladstoneLoc
21950: PPUSH
21951: LD_INT 1
21953: NEG
21954: PPUSH
21955: CALL_OW 30
21959: ST_TO_ADDR
// case gladloc of 2 :
21960: LD_EXP 44
21964: PUSH
21965: LD_INT 2
21967: DOUBLE
21968: EQUAL
21969: IFTRUE 21973
21971: GO 21995
21973: POP
// gamma2vip = gamma2vip ^ [ glad ] ; 3 :
21974: LD_ADDR_LOC 92
21978: PUSH
21979: LD_LOC 92
21983: PUSH
21984: LD_EXP 34
21988: PUSH
21989: EMPTY
21990: LIST
21991: ADD
21992: ST_TO_ADDR
21993: GO 22111
21995: LD_INT 3
21997: DOUBLE
21998: EQUAL
21999: IFTRUE 22003
22001: GO 22025
22003: POP
// gamma3vip = gamma3vip ^ [ glad ] ; 4 :
22004: LD_ADDR_LOC 93
22008: PUSH
22009: LD_LOC 93
22013: PUSH
22014: LD_EXP 34
22018: PUSH
22019: EMPTY
22020: LIST
22021: ADD
22022: ST_TO_ADDR
22023: GO 22111
22025: LD_INT 4
22027: DOUBLE
22028: EQUAL
22029: IFTRUE 22033
22031: GO 22055
22033: POP
// withjmmvip = withjmmvip ^ [ glad ] ; 5 :
22034: LD_ADDR_LOC 94
22038: PUSH
22039: LD_LOC 94
22043: PUSH
22044: LD_EXP 34
22048: PUSH
22049: EMPTY
22050: LIST
22051: ADD
22052: ST_TO_ADDR
22053: GO 22111
22055: LD_INT 5
22057: DOUBLE
22058: EQUAL
22059: IFTRUE 22063
22061: GO 22085
22063: POP
// withjmmlatevip = withjmmlatevip ^ [ glad ] ; - 1 :
22064: LD_ADDR_LOC 95
22068: PUSH
22069: LD_LOC 95
22073: PUSH
22074: LD_EXP 34
22078: PUSH
22079: EMPTY
22080: LIST
22081: ADD
22082: ST_TO_ADDR
22083: GO 22111
22085: LD_INT 1
22087: NEG
22088: DOUBLE
22089: EQUAL
22090: IFTRUE 22094
22092: GO 22110
22094: POP
// buildquery ( neny GladstoneLoc , [ OK ] ) ; end ;
22095: LD_STRING neny GladstoneLoc
22097: PPUSH
22098: LD_STRING OK
22100: PUSH
22101: EMPTY
22102: LIST
22103: PPUSH
22104: CALL_OW 99
22108: GO 22111
22110: POP
// end ; if not testcharacters ( Cyrus ) or not checkcharacterset ( Cyrus ) then
22111: LD_STRING Cyrus
22113: PPUSH
22114: CALL_OW 28
22118: NOT
22119: PUSH
22120: LD_STRING Cyrus
22122: PPUSH
22123: CALL_OW 29
22127: NOT
22128: OR
22129: IFFALSE 22141
// cyrus = 0 else
22131: LD_ADDR_EXP 21
22135: PUSH
22136: LD_INT 0
22138: ST_TO_ADDR
22139: GO 22322
// begin cyrus = createcharacter ( Cyrus ) ;
22141: LD_ADDR_EXP 21
22145: PUSH
22146: LD_STRING Cyrus
22148: PPUSH
22149: CALL_OW 34
22153: ST_TO_ADDR
// cyrusloc = loadvariable ( CyrusLoc , - 1 ) ;
22154: LD_ADDR_EXP 38
22158: PUSH
22159: LD_STRING CyrusLoc
22161: PPUSH
22162: LD_INT 1
22164: NEG
22165: PPUSH
22166: CALL_OW 30
22170: ST_TO_ADDR
// case cyrusloc of 2 :
22171: LD_EXP 38
22175: PUSH
22176: LD_INT 2
22178: DOUBLE
22179: EQUAL
22180: IFTRUE 22184
22182: GO 22206
22184: POP
// gamma2vip = gamma2vip ^ [ cyrus ] ; 3 :
22185: LD_ADDR_LOC 92
22189: PUSH
22190: LD_LOC 92
22194: PUSH
22195: LD_EXP 21
22199: PUSH
22200: EMPTY
22201: LIST
22202: ADD
22203: ST_TO_ADDR
22204: GO 22322
22206: LD_INT 3
22208: DOUBLE
22209: EQUAL
22210: IFTRUE 22214
22212: GO 22236
22214: POP
// gamma3vip = gamma3vip ^ [ cyrus ] ; 4 :
22215: LD_ADDR_LOC 93
22219: PUSH
22220: LD_LOC 93
22224: PUSH
22225: LD_EXP 21
22229: PUSH
22230: EMPTY
22231: LIST
22232: ADD
22233: ST_TO_ADDR
22234: GO 22322
22236: LD_INT 4
22238: DOUBLE
22239: EQUAL
22240: IFTRUE 22244
22242: GO 22266
22244: POP
// withjmmvip = withjmmvip ^ [ cyrus ] ; 5 :
22245: LD_ADDR_LOC 94
22249: PUSH
22250: LD_LOC 94
22254: PUSH
22255: LD_EXP 21
22259: PUSH
22260: EMPTY
22261: LIST
22262: ADD
22263: ST_TO_ADDR
22264: GO 22322
22266: LD_INT 5
22268: DOUBLE
22269: EQUAL
22270: IFTRUE 22274
22272: GO 22296
22274: POP
// withjmmlatevip = withjmmlatevip ^ [ cyrus ] ; - 1 :
22275: LD_ADDR_LOC 95
22279: PUSH
22280: LD_LOC 95
22284: PUSH
22285: LD_EXP 21
22289: PUSH
22290: EMPTY
22291: LIST
22292: ADD
22293: ST_TO_ADDR
22294: GO 22322
22296: LD_INT 1
22298: NEG
22299: DOUBLE
22300: EQUAL
22301: IFTRUE 22305
22303: GO 22321
22305: POP
// buildquery ( neny CyrusLoc , [ OK ] ) ; end ;
22306: LD_STRING neny CyrusLoc
22308: PPUSH
22309: LD_STRING OK
22311: PUSH
22312: EMPTY
22313: LIST
22314: PPUSH
22315: CALL_OW 99
22319: GO 22322
22321: POP
// end ; if not testcharacters ( Bobby ) or not checkcharacterset ( Bobby ) then
22322: LD_STRING Bobby
22324: PPUSH
22325: CALL_OW 28
22329: NOT
22330: PUSH
22331: LD_STRING Bobby
22333: PPUSH
22334: CALL_OW 29
22338: NOT
22339: OR
22340: IFFALSE 22352
// bobby = 0 else
22342: LD_ADDR_EXP 22
22346: PUSH
22347: LD_INT 0
22349: ST_TO_ADDR
22350: GO 22533
// begin bobby = createcharacter ( Bobby ) ;
22352: LD_ADDR_EXP 22
22356: PUSH
22357: LD_STRING Bobby
22359: PPUSH
22360: CALL_OW 34
22364: ST_TO_ADDR
// bobbyloc = loadvariable ( BobbyLoc , - 1 ) ;
22365: LD_ADDR_EXP 39
22369: PUSH
22370: LD_STRING BobbyLoc
22372: PPUSH
22373: LD_INT 1
22375: NEG
22376: PPUSH
22377: CALL_OW 30
22381: ST_TO_ADDR
// case bobbyloc of 2 :
22382: LD_EXP 39
22386: PUSH
22387: LD_INT 2
22389: DOUBLE
22390: EQUAL
22391: IFTRUE 22395
22393: GO 22417
22395: POP
// gamma2vip = gamma2vip ^ [ bobby ] ; 3 :
22396: LD_ADDR_LOC 92
22400: PUSH
22401: LD_LOC 92
22405: PUSH
22406: LD_EXP 22
22410: PUSH
22411: EMPTY
22412: LIST
22413: ADD
22414: ST_TO_ADDR
22415: GO 22533
22417: LD_INT 3
22419: DOUBLE
22420: EQUAL
22421: IFTRUE 22425
22423: GO 22447
22425: POP
// gamma3vip = gamma3vip ^ [ bobby ] ; 4 :
22426: LD_ADDR_LOC 93
22430: PUSH
22431: LD_LOC 93
22435: PUSH
22436: LD_EXP 22
22440: PUSH
22441: EMPTY
22442: LIST
22443: ADD
22444: ST_TO_ADDR
22445: GO 22533
22447: LD_INT 4
22449: DOUBLE
22450: EQUAL
22451: IFTRUE 22455
22453: GO 22477
22455: POP
// withjmmvip = withjmmvip ^ [ bobby ] ; 5 :
22456: LD_ADDR_LOC 94
22460: PUSH
22461: LD_LOC 94
22465: PUSH
22466: LD_EXP 22
22470: PUSH
22471: EMPTY
22472: LIST
22473: ADD
22474: ST_TO_ADDR
22475: GO 22533
22477: LD_INT 5
22479: DOUBLE
22480: EQUAL
22481: IFTRUE 22485
22483: GO 22507
22485: POP
// withjmmlatevip = withjmmlatevip ^ [ bobby ] ; - 1 :
22486: LD_ADDR_LOC 95
22490: PUSH
22491: LD_LOC 95
22495: PUSH
22496: LD_EXP 22
22500: PUSH
22501: EMPTY
22502: LIST
22503: ADD
22504: ST_TO_ADDR
22505: GO 22533
22507: LD_INT 1
22509: NEG
22510: DOUBLE
22511: EQUAL
22512: IFTRUE 22516
22514: GO 22532
22516: POP
// buildquery ( neny BobbyLoc , [ OK ] ) ; end ;
22517: LD_STRING neny BobbyLoc
22519: PPUSH
22520: LD_STRING OK
22522: PUSH
22523: EMPTY
22524: LIST
22525: PPUSH
22526: CALL_OW 99
22530: GO 22533
22532: POP
// end ; if not testcharacters ( Denis ) or not checkcharacterset ( Denis ) then
22533: LD_STRING Denis
22535: PPUSH
22536: CALL_OW 28
22540: NOT
22541: PUSH
22542: LD_STRING Denis
22544: PPUSH
22545: CALL_OW 29
22549: NOT
22550: OR
22551: IFFALSE 22563
// denis = 0 else
22553: LD_ADDR_EXP 23
22557: PUSH
22558: LD_INT 0
22560: ST_TO_ADDR
22561: GO 22744
// begin denis = createcharacter ( Denis ) ;
22563: LD_ADDR_EXP 23
22567: PUSH
22568: LD_STRING Denis
22570: PPUSH
22571: CALL_OW 34
22575: ST_TO_ADDR
// denisloc = loadvariable ( DenisLoc , - 1 ) ;
22576: LD_ADDR_EXP 40
22580: PUSH
22581: LD_STRING DenisLoc
22583: PPUSH
22584: LD_INT 1
22586: NEG
22587: PPUSH
22588: CALL_OW 30
22592: ST_TO_ADDR
// case denisloc of 2 :
22593: LD_EXP 40
22597: PUSH
22598: LD_INT 2
22600: DOUBLE
22601: EQUAL
22602: IFTRUE 22606
22604: GO 22628
22606: POP
// gamma2vip = gamma2vip ^ [ denis ] ; 3 :
22607: LD_ADDR_LOC 92
22611: PUSH
22612: LD_LOC 92
22616: PUSH
22617: LD_EXP 23
22621: PUSH
22622: EMPTY
22623: LIST
22624: ADD
22625: ST_TO_ADDR
22626: GO 22744
22628: LD_INT 3
22630: DOUBLE
22631: EQUAL
22632: IFTRUE 22636
22634: GO 22658
22636: POP
// gamma3vip = gamma3vip ^ [ denis ] ; 4 :
22637: LD_ADDR_LOC 93
22641: PUSH
22642: LD_LOC 93
22646: PUSH
22647: LD_EXP 23
22651: PUSH
22652: EMPTY
22653: LIST
22654: ADD
22655: ST_TO_ADDR
22656: GO 22744
22658: LD_INT 4
22660: DOUBLE
22661: EQUAL
22662: IFTRUE 22666
22664: GO 22688
22666: POP
// withjmmvip = withjmmvip ^ [ denis ] ; 5 :
22667: LD_ADDR_LOC 94
22671: PUSH
22672: LD_LOC 94
22676: PUSH
22677: LD_EXP 23
22681: PUSH
22682: EMPTY
22683: LIST
22684: ADD
22685: ST_TO_ADDR
22686: GO 22744
22688: LD_INT 5
22690: DOUBLE
22691: EQUAL
22692: IFTRUE 22696
22694: GO 22718
22696: POP
// withjmmlatevip = withjmmlatevip ^ [ denis ] ; - 1 :
22697: LD_ADDR_LOC 95
22701: PUSH
22702: LD_LOC 95
22706: PUSH
22707: LD_EXP 23
22711: PUSH
22712: EMPTY
22713: LIST
22714: ADD
22715: ST_TO_ADDR
22716: GO 22744
22718: LD_INT 1
22720: NEG
22721: DOUBLE
22722: EQUAL
22723: IFTRUE 22727
22725: GO 22743
22727: POP
// buildquery ( neny DenisLoc , [ OK ] ) ; end ;
22728: LD_STRING neny DenisLoc
22730: PPUSH
22731: LD_STRING OK
22733: PUSH
22734: EMPTY
22735: LIST
22736: PPUSH
22737: CALL_OW 99
22741: GO 22744
22743: POP
// end ; yamoko = 0 ;
22744: LD_ADDR_EXP 24
22748: PUSH
22749: LD_INT 0
22751: ST_TO_ADDR
// if not frank then
22752: LD_EXP 19
22756: NOT
22757: IFFALSE 22970
// if not testcharacters ( Yamoko ) or not checkcharacterset ( Yamoko ) then
22759: LD_STRING Yamoko
22761: PPUSH
22762: CALL_OW 28
22766: NOT
22767: PUSH
22768: LD_STRING Yamoko
22770: PPUSH
22771: CALL_OW 29
22775: NOT
22776: OR
22777: IFFALSE 22789
// yamoko = 0 else
22779: LD_ADDR_EXP 24
22783: PUSH
22784: LD_INT 0
22786: ST_TO_ADDR
22787: GO 22970
// begin yamoko = createcharacter ( Yamoko ) ;
22789: LD_ADDR_EXP 24
22793: PUSH
22794: LD_STRING Yamoko
22796: PPUSH
22797: CALL_OW 34
22801: ST_TO_ADDR
// yamokoloc = loadvariable ( YamokoLoc , - 1 ) ;
22802: LD_ADDR_EXP 41
22806: PUSH
22807: LD_STRING YamokoLoc
22809: PPUSH
22810: LD_INT 1
22812: NEG
22813: PPUSH
22814: CALL_OW 30
22818: ST_TO_ADDR
// case yamokoloc of 2 :
22819: LD_EXP 41
22823: PUSH
22824: LD_INT 2
22826: DOUBLE
22827: EQUAL
22828: IFTRUE 22832
22830: GO 22854
22832: POP
// gamma2vip = gamma2vip ^ [ yamoko ] ; 3 :
22833: LD_ADDR_LOC 92
22837: PUSH
22838: LD_LOC 92
22842: PUSH
22843: LD_EXP 24
22847: PUSH
22848: EMPTY
22849: LIST
22850: ADD
22851: ST_TO_ADDR
22852: GO 22970
22854: LD_INT 3
22856: DOUBLE
22857: EQUAL
22858: IFTRUE 22862
22860: GO 22884
22862: POP
// gamma3vip = gamma3vip ^ [ yamoko ] ; 4 :
22863: LD_ADDR_LOC 93
22867: PUSH
22868: LD_LOC 93
22872: PUSH
22873: LD_EXP 24
22877: PUSH
22878: EMPTY
22879: LIST
22880: ADD
22881: ST_TO_ADDR
22882: GO 22970
22884: LD_INT 4
22886: DOUBLE
22887: EQUAL
22888: IFTRUE 22892
22890: GO 22914
22892: POP
// withjmmvip = withjmmvip ^ [ yamoko ] ; 5 :
22893: LD_ADDR_LOC 94
22897: PUSH
22898: LD_LOC 94
22902: PUSH
22903: LD_EXP 24
22907: PUSH
22908: EMPTY
22909: LIST
22910: ADD
22911: ST_TO_ADDR
22912: GO 22970
22914: LD_INT 5
22916: DOUBLE
22917: EQUAL
22918: IFTRUE 22922
22920: GO 22944
22922: POP
// withjmmlatevip = withjmmlatevip ^ [ yamoko ] ; - 1 :
22923: LD_ADDR_LOC 95
22927: PUSH
22928: LD_LOC 95
22932: PUSH
22933: LD_EXP 24
22937: PUSH
22938: EMPTY
22939: LIST
22940: ADD
22941: ST_TO_ADDR
22942: GO 22970
22944: LD_INT 1
22946: NEG
22947: DOUBLE
22948: EQUAL
22949: IFTRUE 22953
22951: GO 22969
22953: POP
// buildquery ( neny YamokoLoc , [ OK ] ) ; end ;
22954: LD_STRING neny YamokoLoc
22956: PPUSH
22957: LD_STRING OK
22959: PUSH
22960: EMPTY
22961: LIST
22962: PPUSH
22963: CALL_OW 99
22967: GO 22970
22969: POP
// end ; posilya = [ ] ;
22970: LD_ADDR_EXP 27
22974: PUSH
22975: EMPTY
22976: ST_TO_ADDR
// if gamma3vip >= 2 then
22977: LD_LOC 93
22981: PUSH
22982: LD_INT 2
22984: GREATEREQUAL
22985: IFFALSE 23016
// posilya = [ gamma3vip [ 1 ] , gamma3vip [ 2 ] ] else
22987: LD_ADDR_EXP 27
22991: PUSH
22992: LD_LOC 93
22996: PUSH
22997: LD_INT 1
22999: ARRAY
23000: PUSH
23001: LD_LOC 93
23005: PUSH
23006: LD_INT 2
23008: ARRAY
23009: PUSH
23010: EMPTY
23011: LIST
23012: LIST
23013: ST_TO_ADDR
23014: GO 23234
// begin tmp = 0 + gamma3vip + othergamma3 ;
23016: LD_ADDR_VAR 0 2
23020: PUSH
23021: LD_INT 0
23023: PUSH
23024: LD_LOC 93
23028: PLUS
23029: PUSH
23030: LD_LOC 88
23034: PLUS
23035: ST_TO_ADDR
// if tmp < 2 then
23036: LD_VAR 0 2
23040: PUSH
23041: LD_INT 2
23043: LESS
23044: IFFALSE 23169
// begin posilya = gamma3vip ^ othergamma3 ;
23046: LD_ADDR_EXP 27
23050: PUSH
23051: LD_LOC 93
23055: PUSH
23056: LD_LOC 88
23060: ADD
23061: ST_TO_ADDR
// if ( not glad ) or ( glad and gladloc <> 3 ) then
23062: LD_EXP 34
23066: NOT
23067: PUSH
23068: LD_EXP 34
23072: PUSH
23073: LD_EXP 44
23077: PUSH
23078: LD_INT 3
23080: NONEQUAL
23081: AND
23082: OR
23083: IFFALSE 23128
// begin preparescientist ( sex_male , 2 ) ;
23085: LD_INT 1
23087: PPUSH
23088: LD_INT 2
23090: PPUSH
23091: CALL_OW 384
// posilya = posilya ^ [ createhuman ] ;
23095: LD_ADDR_EXP 27
23099: PUSH
23100: LD_EXP 27
23104: PUSH
23105: CALL_OW 44
23109: PUSH
23110: EMPTY
23111: LIST
23112: ADD
23113: ST_TO_ADDR
// tmp = tmp + 1 ;
23114: LD_ADDR_VAR 0 2
23118: PUSH
23119: LD_VAR 0 2
23123: PUSH
23124: LD_INT 1
23126: PLUS
23127: ST_TO_ADDR
// end ; if tmp = 1 then
23128: LD_VAR 0 2
23132: PUSH
23133: LD_INT 1
23135: EQUAL
23136: IFFALSE 23167
// begin preparesoldier ( sex_male , 2 ) ;
23138: LD_INT 1
23140: PPUSH
23141: LD_INT 2
23143: PPUSH
23144: CALL_OW 381
// posilya = posilya ^ [ createhuman ] ;
23148: LD_ADDR_EXP 27
23152: PUSH
23153: LD_EXP 27
23157: PUSH
23158: CALL_OW 44
23162: PUSH
23163: EMPTY
23164: LIST
23165: ADD
23166: ST_TO_ADDR
// end ; end else
23167: GO 23234
// begin tmp1 = [ ] ;
23169: LD_ADDR_VAR 0 3
23173: PUSH
23174: EMPTY
23175: ST_TO_ADDR
// tmp1 = gamma3vip ^ othergamma3 ;
23176: LD_ADDR_VAR 0 3
23180: PUSH
23181: LD_LOC 93
23185: PUSH
23186: LD_LOC 88
23190: ADD
23191: ST_TO_ADDR
// for tmp = 1 to 2 do
23192: LD_ADDR_VAR 0 2
23196: PUSH
23197: DOUBLE
23198: LD_INT 1
23200: DEC
23201: ST_TO_ADDR
23202: LD_INT 2
23204: PUSH
23205: FOR_TO
23206: IFFALSE 23232
// posilya = posilya ^ tmp1 [ tmp ] ;
23208: LD_ADDR_EXP 27
23212: PUSH
23213: LD_EXP 27
23217: PUSH
23218: LD_VAR 0 3
23222: PUSH
23223: LD_VAR 0 2
23227: ARRAY
23228: ADD
23229: ST_TO_ADDR
23230: GO 23205
23232: POP
23233: POP
// end ; end ; posilyb = [ john_ ] ;
23234: LD_ADDR_EXP 28
23238: PUSH
23239: LD_EXP 20
23243: PUSH
23244: EMPTY
23245: LIST
23246: ST_TO_ADDR
// if withjmmvip >= 4 then
23247: LD_LOC 94
23251: PUSH
23252: LD_INT 4
23254: GREATEREQUAL
23255: IFFALSE 23312
// posilyb = [ john_ , withjmmvip [ 1 ] , withjmmvip [ 2 ] , withjmmvip [ 3 ] , withjmmvip [ 4 ] ] else
23257: LD_ADDR_EXP 28
23261: PUSH
23262: LD_EXP 20
23266: PUSH
23267: LD_LOC 94
23271: PUSH
23272: LD_INT 1
23274: ARRAY
23275: PUSH
23276: LD_LOC 94
23280: PUSH
23281: LD_INT 2
23283: ARRAY
23284: PUSH
23285: LD_LOC 94
23289: PUSH
23290: LD_INT 3
23292: ARRAY
23293: PUSH
23294: LD_LOC 94
23298: PUSH
23299: LD_INT 4
23301: ARRAY
23302: PUSH
23303: EMPTY
23304: LIST
23305: LIST
23306: LIST
23307: LIST
23308: LIST
23309: ST_TO_ADDR
23310: GO 23580
// begin tmp = 0 + withjmmvip + otherjmm ;
23312: LD_ADDR_VAR 0 2
23316: PUSH
23317: LD_INT 0
23319: PUSH
23320: LD_LOC 94
23324: PLUS
23325: PUSH
23326: LD_LOC 90
23330: PLUS
23331: ST_TO_ADDR
// if tmp < 4 then
23332: LD_VAR 0 2
23336: PUSH
23337: LD_INT 4
23339: LESS
23340: IFFALSE 23515
// begin posilyb = [ john_ ] ^ withjmmvip ^ otherjmm ;
23342: LD_ADDR_EXP 28
23346: PUSH
23347: LD_EXP 20
23351: PUSH
23352: EMPTY
23353: LIST
23354: PUSH
23355: LD_LOC 94
23359: ADD
23360: PUSH
23361: LD_LOC 90
23365: ADD
23366: ST_TO_ADDR
// if tmp = 0 then
23367: LD_VAR 0 2
23371: PUSH
23372: LD_INT 0
23374: EQUAL
23375: IFFALSE 23406
// begin preparemechanic ( sex_male , 3 ) ;
23377: LD_INT 1
23379: PPUSH
23380: LD_INT 3
23382: PPUSH
23383: CALL_OW 383
// posilyb = posilyb ^ [ createhuman ] ;
23387: LD_ADDR_EXP 28
23391: PUSH
23392: LD_EXP 28
23396: PUSH
23397: CALL_OW 44
23401: PUSH
23402: EMPTY
23403: LIST
23404: ADD
23405: ST_TO_ADDR
// end ; if tmp <= 1 then
23406: LD_VAR 0 2
23410: PUSH
23411: LD_INT 1
23413: LESSEQUAL
23414: IFFALSE 23445
// begin preparesoldier ( sex_female , 3 ) ;
23416: LD_INT 2
23418: PPUSH
23419: LD_INT 3
23421: PPUSH
23422: CALL_OW 381
// posilyb = posilyb ^ [ createhuman ] ;
23426: LD_ADDR_EXP 28
23430: PUSH
23431: LD_EXP 28
23435: PUSH
23436: CALL_OW 44
23440: PUSH
23441: EMPTY
23442: LIST
23443: ADD
23444: ST_TO_ADDR
// end ; if tmp <= 2 then
23445: LD_VAR 0 2
23449: PUSH
23450: LD_INT 2
23452: LESSEQUAL
23453: IFFALSE 23484
// begin preparesoldier ( sex_male , 3 ) ;
23455: LD_INT 1
23457: PPUSH
23458: LD_INT 3
23460: PPUSH
23461: CALL_OW 381
// posilyb = posilyb ^ [ createhuman ] ;
23465: LD_ADDR_EXP 28
23469: PUSH
23470: LD_EXP 28
23474: PUSH
23475: CALL_OW 44
23479: PUSH
23480: EMPTY
23481: LIST
23482: ADD
23483: ST_TO_ADDR
// end ; preparesoldier ( sex_male , 3 ) ;
23484: LD_INT 1
23486: PPUSH
23487: LD_INT 3
23489: PPUSH
23490: CALL_OW 381
// posilyb = posilyb ^ [ createhuman ] ;
23494: LD_ADDR_EXP 28
23498: PUSH
23499: LD_EXP 28
23503: PUSH
23504: CALL_OW 44
23508: PUSH
23509: EMPTY
23510: LIST
23511: ADD
23512: ST_TO_ADDR
// end else
23513: GO 23580
// begin tmp1 = [ ] ;
23515: LD_ADDR_VAR 0 3
23519: PUSH
23520: EMPTY
23521: ST_TO_ADDR
// tmp1 = withjmmvip ^ otherjmm ;
23522: LD_ADDR_VAR 0 3
23526: PUSH
23527: LD_LOC 94
23531: PUSH
23532: LD_LOC 90
23536: ADD
23537: ST_TO_ADDR
// for tmp = 1 to 4 do
23538: LD_ADDR_VAR 0 2
23542: PUSH
23543: DOUBLE
23544: LD_INT 1
23546: DEC
23547: ST_TO_ADDR
23548: LD_INT 4
23550: PUSH
23551: FOR_TO
23552: IFFALSE 23578
// posilyb = posilyb ^ tmp1 [ tmp ] ;
23554: LD_ADDR_EXP 28
23558: PUSH
23559: LD_EXP 28
23563: PUSH
23564: LD_VAR 0 3
23568: PUSH
23569: LD_VAR 0 2
23573: ARRAY
23574: ADD
23575: ST_TO_ADDR
23576: GO 23551
23578: POP
23579: POP
// end ; end ; if not placeunitxyr ( amhsold0 , 44 , 8 , 3 , false ) then
23580: LD_EXP 25
23584: PPUSH
23585: LD_INT 44
23587: PPUSH
23588: LD_INT 8
23590: PPUSH
23591: LD_INT 3
23593: PPUSH
23594: LD_INT 0
23596: PPUSH
23597: CALL_OW 50
23601: NOT
23602: IFFALSE 23619
// placeunitarea ( amhsold0 , ambase , false ) ;
23604: LD_EXP 25
23608: PPUSH
23609: LD_INT 8
23611: PPUSH
23612: LD_INT 0
23614: PPUSH
23615: CALL_OW 49
// tmz = gamma2vip union othergamma2 union otherunplaced ;
23619: LD_ADDR_VAR 0 4
23623: PUSH
23624: LD_LOC 92
23628: PUSH
23629: LD_LOC 87
23633: UNION
23634: PUSH
23635: LD_LOC 89
23639: UNION
23640: ST_TO_ADDR
// tmz_ = tmz ;
23641: LD_ADDR_VAR 0 5
23645: PUSH
23646: LD_VAR 0 4
23650: ST_TO_ADDR
// tm_c = unitfilter ( tmz , [ [ f_class , class_soldier ] ] ) ;
23651: LD_ADDR_VAR 0 6
23655: PUSH
23656: LD_VAR 0 4
23660: PPUSH
23661: LD_INT 25
23663: PUSH
23664: LD_INT 1
23666: PUSH
23667: EMPTY
23668: LIST
23669: LIST
23670: PUSH
23671: EMPTY
23672: LIST
23673: PPUSH
23674: CALL_OW 72
23678: ST_TO_ADDR
// tm_e = unitfilter ( tmz , [ [ f_class , class_engineer ] ] ) ;
23679: LD_ADDR_VAR 0 7
23683: PUSH
23684: LD_VAR 0 4
23688: PPUSH
23689: LD_INT 25
23691: PUSH
23692: LD_INT 2
23694: PUSH
23695: EMPTY
23696: LIST
23697: LIST
23698: PUSH
23699: EMPTY
23700: LIST
23701: PPUSH
23702: CALL_OW 72
23706: ST_TO_ADDR
// tm_m = unitfilter ( tmz , [ [ f_class , class_mechanic ] ] ) ;
23707: LD_ADDR_VAR 0 8
23711: PUSH
23712: LD_VAR 0 4
23716: PPUSH
23717: LD_INT 25
23719: PUSH
23720: LD_INT 3
23722: PUSH
23723: EMPTY
23724: LIST
23725: LIST
23726: PUSH
23727: EMPTY
23728: LIST
23729: PPUSH
23730: CALL_OW 72
23734: ST_TO_ADDR
// tm_s = unitfilter ( tmz , [ [ f_class , class_scientistic ] ] ) ;
23735: LD_ADDR_VAR 0 9
23739: PUSH
23740: LD_VAR 0 4
23744: PPUSH
23745: LD_INT 25
23747: PUSH
23748: LD_INT 4
23750: PUSH
23751: EMPTY
23752: LIST
23753: LIST
23754: PUSH
23755: EMPTY
23756: LIST
23757: PPUSH
23758: CALL_OW 72
23762: ST_TO_ADDR
// if tmz >= 6 then
23763: LD_VAR 0 4
23767: PUSH
23768: LD_INT 6
23770: GREATEREQUAL
23771: IFFALSE 24430
// begin tmp_c = 0 + tm_c ;
23773: LD_ADDR_VAR 0 10
23777: PUSH
23778: LD_INT 0
23780: PUSH
23781: LD_VAR 0 6
23785: PLUS
23786: ST_TO_ADDR
// if tmp_c > 3 then
23787: LD_VAR 0 10
23791: PUSH
23792: LD_INT 3
23794: GREATER
23795: IFFALSE 23805
// tmp_c = 2 ;
23797: LD_ADDR_VAR 0 10
23801: PUSH
23802: LD_INT 2
23804: ST_TO_ADDR
// for tmp1 = 1 to tmp_c do
23805: LD_ADDR_VAR 0 3
23809: PUSH
23810: DOUBLE
23811: LD_INT 1
23813: DEC
23814: ST_TO_ADDR
23815: LD_VAR 0 10
23819: PUSH
23820: FOR_TO
23821: IFFALSE 23901
// begin if not placeunitxyr ( tm_c [ tmp1 ] , 52 , 36 , 3 , false ) then
23823: LD_VAR 0 6
23827: PUSH
23828: LD_VAR 0 3
23832: ARRAY
23833: PPUSH
23834: LD_INT 52
23836: PPUSH
23837: LD_INT 36
23839: PPUSH
23840: LD_INT 3
23842: PPUSH
23843: LD_INT 0
23845: PPUSH
23846: CALL_OW 50
23850: NOT
23851: IFFALSE 23874
// placeunitarea ( tm_c [ tmp1 ] , ambase , false ) ;
23853: LD_VAR 0 6
23857: PUSH
23858: LD_VAR 0 3
23862: ARRAY
23863: PPUSH
23864: LD_INT 8
23866: PPUSH
23867: LD_INT 0
23869: PPUSH
23870: CALL_OW 49
// tmz = tmz diff [ tm_c [ tmp1 ] ] ;
23874: LD_ADDR_VAR 0 4
23878: PUSH
23879: LD_VAR 0 4
23883: PUSH
23884: LD_VAR 0 6
23888: PUSH
23889: LD_VAR 0 3
23893: ARRAY
23894: PUSH
23895: EMPTY
23896: LIST
23897: DIFF
23898: ST_TO_ADDR
// end ;
23899: GO 23820
23901: POP
23902: POP
// tot = tmp_c ;
23903: LD_ADDR_VAR 0 14
23907: PUSH
23908: LD_VAR 0 10
23912: ST_TO_ADDR
// tmp_m = 0 + tm_m ;
23913: LD_ADDR_VAR 0 12
23917: PUSH
23918: LD_INT 0
23920: PUSH
23921: LD_VAR 0 8
23925: PLUS
23926: ST_TO_ADDR
// if tmp_m > 3 then
23927: LD_VAR 0 12
23931: PUSH
23932: LD_INT 3
23934: GREATER
23935: IFFALSE 23945
// tmp_m = 2 ;
23937: LD_ADDR_VAR 0 12
23941: PUSH
23942: LD_INT 2
23944: ST_TO_ADDR
// for tmp1 = 1 to tmp_m do
23945: LD_ADDR_VAR 0 3
23949: PUSH
23950: DOUBLE
23951: LD_INT 1
23953: DEC
23954: ST_TO_ADDR
23955: LD_VAR 0 12
23959: PUSH
23960: FOR_TO
23961: IFFALSE 24041
// begin if not placeunitxyr ( tm_m [ tmp1 ] , 45 , 16 , 3 , false ) then
23963: LD_VAR 0 8
23967: PUSH
23968: LD_VAR 0 3
23972: ARRAY
23973: PPUSH
23974: LD_INT 45
23976: PPUSH
23977: LD_INT 16
23979: PPUSH
23980: LD_INT 3
23982: PPUSH
23983: LD_INT 0
23985: PPUSH
23986: CALL_OW 50
23990: NOT
23991: IFFALSE 24014
// placeunitarea ( tm_m [ tmp1 ] , ambase , false ) ;
23993: LD_VAR 0 8
23997: PUSH
23998: LD_VAR 0 3
24002: ARRAY
24003: PPUSH
24004: LD_INT 8
24006: PPUSH
24007: LD_INT 0
24009: PPUSH
24010: CALL_OW 49
// tmz = tmz diff [ tm_m [ tmp1 ] ] ;
24014: LD_ADDR_VAR 0 4
24018: PUSH
24019: LD_VAR 0 4
24023: PUSH
24024: LD_VAR 0 8
24028: PUSH
24029: LD_VAR 0 3
24033: ARRAY
24034: PUSH
24035: EMPTY
24036: LIST
24037: DIFF
24038: ST_TO_ADDR
// end ;
24039: GO 23960
24041: POP
24042: POP
// tot = tot + tmp_m ;
24043: LD_ADDR_VAR 0 14
24047: PUSH
24048: LD_VAR 0 14
24052: PUSH
24053: LD_VAR 0 12
24057: PLUS
24058: ST_TO_ADDR
// tmp_e = 0 + tm_e ;
24059: LD_ADDR_VAR 0 11
24063: PUSH
24064: LD_INT 0
24066: PUSH
24067: LD_VAR 0 7
24071: PLUS
24072: ST_TO_ADDR
// if tmp_e > 2 then
24073: LD_VAR 0 11
24077: PUSH
24078: LD_INT 2
24080: GREATER
24081: IFFALSE 24091
// tmp_e = 1 ;
24083: LD_ADDR_VAR 0 11
24087: PUSH
24088: LD_INT 1
24090: ST_TO_ADDR
// for tmp1 = 1 to tmp_e do
24091: LD_ADDR_VAR 0 3
24095: PUSH
24096: DOUBLE
24097: LD_INT 1
24099: DEC
24100: ST_TO_ADDR
24101: LD_VAR 0 11
24105: PUSH
24106: FOR_TO
24107: IFFALSE 24187
// begin if not placeunitxyr ( tm_e [ tmp1 ] , 52 , 16 , 3 , false ) then
24109: LD_VAR 0 7
24113: PUSH
24114: LD_VAR 0 3
24118: ARRAY
24119: PPUSH
24120: LD_INT 52
24122: PPUSH
24123: LD_INT 16
24125: PPUSH
24126: LD_INT 3
24128: PPUSH
24129: LD_INT 0
24131: PPUSH
24132: CALL_OW 50
24136: NOT
24137: IFFALSE 24160
// placeunitarea ( tm_e [ tmp1 ] , ambase , false ) ;
24139: LD_VAR 0 7
24143: PUSH
24144: LD_VAR 0 3
24148: ARRAY
24149: PPUSH
24150: LD_INT 8
24152: PPUSH
24153: LD_INT 0
24155: PPUSH
24156: CALL_OW 49
// tmz = tmz diff [ tm_e [ tmp1 ] ] ;
24160: LD_ADDR_VAR 0 4
24164: PUSH
24165: LD_VAR 0 4
24169: PUSH
24170: LD_VAR 0 7
24174: PUSH
24175: LD_VAR 0 3
24179: ARRAY
24180: PUSH
24181: EMPTY
24182: LIST
24183: DIFF
24184: ST_TO_ADDR
// end ;
24185: GO 24106
24187: POP
24188: POP
// tot = tot + tmp_e ;
24189: LD_ADDR_VAR 0 14
24193: PUSH
24194: LD_VAR 0 14
24198: PUSH
24199: LD_VAR 0 11
24203: PLUS
24204: ST_TO_ADDR
// tmp_s = 0 + tm_s ;
24205: LD_ADDR_VAR 0 13
24209: PUSH
24210: LD_INT 0
24212: PUSH
24213: LD_VAR 0 9
24217: PLUS
24218: ST_TO_ADDR
// if tmp_s > 2 then
24219: LD_VAR 0 13
24223: PUSH
24224: LD_INT 2
24226: GREATER
24227: IFFALSE 24237
// tmp_s = 1 ;
24229: LD_ADDR_VAR 0 13
24233: PUSH
24234: LD_INT 1
24236: ST_TO_ADDR
// for tmp1 = 1 to tmp_s do
24237: LD_ADDR_VAR 0 3
24241: PUSH
24242: DOUBLE
24243: LD_INT 1
24245: DEC
24246: ST_TO_ADDR
24247: LD_VAR 0 13
24251: PUSH
24252: FOR_TO
24253: IFFALSE 24333
// begin if not placeunitxyr ( tm_s [ tmp1 ] , 60 , 18 , 3 , false ) then
24255: LD_VAR 0 9
24259: PUSH
24260: LD_VAR 0 3
24264: ARRAY
24265: PPUSH
24266: LD_INT 60
24268: PPUSH
24269: LD_INT 18
24271: PPUSH
24272: LD_INT 3
24274: PPUSH
24275: LD_INT 0
24277: PPUSH
24278: CALL_OW 50
24282: NOT
24283: IFFALSE 24306
// placeunitarea ( tm_s [ tmp1 ] , ambase , false ) ;
24285: LD_VAR 0 9
24289: PUSH
24290: LD_VAR 0 3
24294: ARRAY
24295: PPUSH
24296: LD_INT 8
24298: PPUSH
24299: LD_INT 0
24301: PPUSH
24302: CALL_OW 49
// tmz = tmz diff [ tm_s [ tmp1 ] ] ;
24306: LD_ADDR_VAR 0 4
24310: PUSH
24311: LD_VAR 0 4
24315: PUSH
24316: LD_VAR 0 9
24320: PUSH
24321: LD_VAR 0 3
24325: ARRAY
24326: PUSH
24327: EMPTY
24328: LIST
24329: DIFF
24330: ST_TO_ADDR
// end ;
24331: GO 24252
24333: POP
24334: POP
// tot = tot + tmp_s ;
24335: LD_ADDR_VAR 0 14
24339: PUSH
24340: LD_VAR 0 14
24344: PUSH
24345: LD_VAR 0 13
24349: PLUS
24350: ST_TO_ADDR
// for tmp1 = 1 to ( 6 - tot ) do
24351: LD_ADDR_VAR 0 3
24355: PUSH
24356: DOUBLE
24357: LD_INT 1
24359: DEC
24360: ST_TO_ADDR
24361: LD_INT 6
24363: PUSH
24364: LD_VAR 0 14
24368: MINUS
24369: PUSH
24370: FOR_TO
24371: IFFALSE 24426
// if not placeunitxyr ( tmz [ tmp1 ] , 45 , 8 , 5 , false ) then
24373: LD_VAR 0 4
24377: PUSH
24378: LD_VAR 0 3
24382: ARRAY
24383: PPUSH
24384: LD_INT 45
24386: PPUSH
24387: LD_INT 8
24389: PPUSH
24390: LD_INT 5
24392: PPUSH
24393: LD_INT 0
24395: PPUSH
24396: CALL_OW 50
24400: NOT
24401: IFFALSE 24424
// placeunitarea ( tmz [ tmp1 ] , ambase , false ) ;
24403: LD_VAR 0 4
24407: PUSH
24408: LD_VAR 0 3
24412: ARRAY
24413: PPUSH
24414: LD_INT 8
24416: PPUSH
24417: LD_INT 0
24419: PPUSH
24420: CALL_OW 49
24424: GO 24370
24426: POP
24427: POP
// end else
24428: GO 25422
// begin tmp_c = 0 + tm_c ;
24430: LD_ADDR_VAR 0 10
24434: PUSH
24435: LD_INT 0
24437: PUSH
24438: LD_VAR 0 6
24442: PLUS
24443: ST_TO_ADDR
// if tmp_c > 3 then
24444: LD_VAR 0 10
24448: PUSH
24449: LD_INT 3
24451: GREATER
24452: IFFALSE 24462
// tmp_c = 2 ;
24454: LD_ADDR_VAR 0 10
24458: PUSH
24459: LD_INT 2
24461: ST_TO_ADDR
// for tmp1 = 1 to tmp_c do
24462: LD_ADDR_VAR 0 3
24466: PUSH
24467: DOUBLE
24468: LD_INT 1
24470: DEC
24471: ST_TO_ADDR
24472: LD_VAR 0 10
24476: PUSH
24477: FOR_TO
24478: IFFALSE 24558
// begin if not placeunitxyr ( tm_c [ tmp1 ] , 52 , 36 , 3 , false ) then
24480: LD_VAR 0 6
24484: PUSH
24485: LD_VAR 0 3
24489: ARRAY
24490: PPUSH
24491: LD_INT 52
24493: PPUSH
24494: LD_INT 36
24496: PPUSH
24497: LD_INT 3
24499: PPUSH
24500: LD_INT 0
24502: PPUSH
24503: CALL_OW 50
24507: NOT
24508: IFFALSE 24531
// placeunitarea ( tm_c [ tmp1 ] , ambase , false ) ;
24510: LD_VAR 0 6
24514: PUSH
24515: LD_VAR 0 3
24519: ARRAY
24520: PPUSH
24521: LD_INT 8
24523: PPUSH
24524: LD_INT 0
24526: PPUSH
24527: CALL_OW 49
// tmz = tmz diff [ tm_c [ tmp1 ] ] ;
24531: LD_ADDR_VAR 0 4
24535: PUSH
24536: LD_VAR 0 4
24540: PUSH
24541: LD_VAR 0 6
24545: PUSH
24546: LD_VAR 0 3
24550: ARRAY
24551: PUSH
24552: EMPTY
24553: LIST
24554: DIFF
24555: ST_TO_ADDR
// end ;
24556: GO 24477
24558: POP
24559: POP
// tot = tmp_c ;
24560: LD_ADDR_VAR 0 14
24564: PUSH
24565: LD_VAR 0 10
24569: ST_TO_ADDR
// if tmp_c = 0 then
24570: LD_VAR 0 10
24574: PUSH
24575: LD_INT 0
24577: EQUAL
24578: IFFALSE 24639
// begin preparesoldier ( sex_male , 3 ) ;
24580: LD_INT 1
24582: PPUSH
24583: LD_INT 3
24585: PPUSH
24586: CALL_OW 381
// tmp = createhuman ;
24590: LD_ADDR_VAR 0 2
24594: PUSH
24595: CALL_OW 44
24599: ST_TO_ADDR
// if not placeunitxyr ( tmp , 52 , 36 , 3 , false ) then
24600: LD_VAR 0 2
24604: PPUSH
24605: LD_INT 52
24607: PPUSH
24608: LD_INT 36
24610: PPUSH
24611: LD_INT 3
24613: PPUSH
24614: LD_INT 0
24616: PPUSH
24617: CALL_OW 50
24621: NOT
24622: IFFALSE 24639
// placeunitarea ( tmp , ambase , false ) ;
24624: LD_VAR 0 2
24628: PPUSH
24629: LD_INT 8
24631: PPUSH
24632: LD_INT 0
24634: PPUSH
24635: CALL_OW 49
// end ; if tmp_c <= 1 then
24639: LD_VAR 0 10
24643: PUSH
24644: LD_INT 1
24646: LESSEQUAL
24647: IFFALSE 24708
// begin preparesoldier ( sex_male , 3 ) ;
24649: LD_INT 1
24651: PPUSH
24652: LD_INT 3
24654: PPUSH
24655: CALL_OW 381
// tmp = createhuman ;
24659: LD_ADDR_VAR 0 2
24663: PUSH
24664: CALL_OW 44
24668: ST_TO_ADDR
// if not placeunitxyr ( tmp , 52 , 36 , 3 , false ) then
24669: LD_VAR 0 2
24673: PPUSH
24674: LD_INT 52
24676: PPUSH
24677: LD_INT 36
24679: PPUSH
24680: LD_INT 3
24682: PPUSH
24683: LD_INT 0
24685: PPUSH
24686: CALL_OW 50
24690: NOT
24691: IFFALSE 24708
// placeunitarea ( tmp , ambase , false ) ;
24693: LD_VAR 0 2
24697: PPUSH
24698: LD_INT 8
24700: PPUSH
24701: LD_INT 0
24703: PPUSH
24704: CALL_OW 49
// end ; tmp_m = 0 + tm_m ;
24708: LD_ADDR_VAR 0 12
24712: PUSH
24713: LD_INT 0
24715: PUSH
24716: LD_VAR 0 8
24720: PLUS
24721: ST_TO_ADDR
// if tmp_m > 3 then
24722: LD_VAR 0 12
24726: PUSH
24727: LD_INT 3
24729: GREATER
24730: IFFALSE 24740
// tmp_m = 2 ;
24732: LD_ADDR_VAR 0 12
24736: PUSH
24737: LD_INT 2
24739: ST_TO_ADDR
// for tmp1 = 1 to tmp_m do
24740: LD_ADDR_VAR 0 3
24744: PUSH
24745: DOUBLE
24746: LD_INT 1
24748: DEC
24749: ST_TO_ADDR
24750: LD_VAR 0 12
24754: PUSH
24755: FOR_TO
24756: IFFALSE 24836
// begin if not placeunitxyr ( tm_m [ tmp1 ] , 45 , 16 , 3 , false ) then
24758: LD_VAR 0 8
24762: PUSH
24763: LD_VAR 0 3
24767: ARRAY
24768: PPUSH
24769: LD_INT 45
24771: PPUSH
24772: LD_INT 16
24774: PPUSH
24775: LD_INT 3
24777: PPUSH
24778: LD_INT 0
24780: PPUSH
24781: CALL_OW 50
24785: NOT
24786: IFFALSE 24809
// placeunitarea ( tm_m [ tmp1 ] , ambase , false ) ;
24788: LD_VAR 0 8
24792: PUSH
24793: LD_VAR 0 3
24797: ARRAY
24798: PPUSH
24799: LD_INT 8
24801: PPUSH
24802: LD_INT 0
24804: PPUSH
24805: CALL_OW 49
// tmz = tmz diff [ tm_m [ tmp1 ] ] ;
24809: LD_ADDR_VAR 0 4
24813: PUSH
24814: LD_VAR 0 4
24818: PUSH
24819: LD_VAR 0 8
24823: PUSH
24824: LD_VAR 0 3
24828: ARRAY
24829: PUSH
24830: EMPTY
24831: LIST
24832: DIFF
24833: ST_TO_ADDR
// end ;
24834: GO 24755
24836: POP
24837: POP
// tot = tot + tmp_m ;
24838: LD_ADDR_VAR 0 14
24842: PUSH
24843: LD_VAR 0 14
24847: PUSH
24848: LD_VAR 0 12
24852: PLUS
24853: ST_TO_ADDR
// if tmp_m = 0 then
24854: LD_VAR 0 12
24858: PUSH
24859: LD_INT 0
24861: EQUAL
24862: IFFALSE 24923
// begin preparemechanic ( sex_male , 3 ) ;
24864: LD_INT 1
24866: PPUSH
24867: LD_INT 3
24869: PPUSH
24870: CALL_OW 383
// tmp = createhuman ;
24874: LD_ADDR_VAR 0 2
24878: PUSH
24879: CALL_OW 44
24883: ST_TO_ADDR
// if not placeunitxyr ( tmp , 45 , 16 , 3 , false ) then
24884: LD_VAR 0 2
24888: PPUSH
24889: LD_INT 45
24891: PPUSH
24892: LD_INT 16
24894: PPUSH
24895: LD_INT 3
24897: PPUSH
24898: LD_INT 0
24900: PPUSH
24901: CALL_OW 50
24905: NOT
24906: IFFALSE 24923
// placeunitarea ( tmp , ambase , false ) ;
24908: LD_VAR 0 2
24912: PPUSH
24913: LD_INT 8
24915: PPUSH
24916: LD_INT 0
24918: PPUSH
24919: CALL_OW 49
// end ; if tmp_m <= 1 then
24923: LD_VAR 0 12
24927: PUSH
24928: LD_INT 1
24930: LESSEQUAL
24931: IFFALSE 24992
// begin preparemechanic ( sex_male , 3 ) ;
24933: LD_INT 1
24935: PPUSH
24936: LD_INT 3
24938: PPUSH
24939: CALL_OW 383
// tmp = createhuman ;
24943: LD_ADDR_VAR 0 2
24947: PUSH
24948: CALL_OW 44
24952: ST_TO_ADDR
// if not placeunitxyr ( tmp , 45 , 16 , 3 , false ) then
24953: LD_VAR 0 2
24957: PPUSH
24958: LD_INT 45
24960: PPUSH
24961: LD_INT 16
24963: PPUSH
24964: LD_INT 3
24966: PPUSH
24967: LD_INT 0
24969: PPUSH
24970: CALL_OW 50
24974: NOT
24975: IFFALSE 24992
// placeunitarea ( tmp , ambase , false ) ;
24977: LD_VAR 0 2
24981: PPUSH
24982: LD_INT 8
24984: PPUSH
24985: LD_INT 0
24987: PPUSH
24988: CALL_OW 49
// end ; tmp_e = 0 + tm_e ;
24992: LD_ADDR_VAR 0 11
24996: PUSH
24997: LD_INT 0
24999: PUSH
25000: LD_VAR 0 7
25004: PLUS
25005: ST_TO_ADDR
// if tmp_e > 2 then
25006: LD_VAR 0 11
25010: PUSH
25011: LD_INT 2
25013: GREATER
25014: IFFALSE 25024
// tmp_e = 1 ;
25016: LD_ADDR_VAR 0 11
25020: PUSH
25021: LD_INT 1
25023: ST_TO_ADDR
// for tmp1 = 1 to tmp_e do
25024: LD_ADDR_VAR 0 3
25028: PUSH
25029: DOUBLE
25030: LD_INT 1
25032: DEC
25033: ST_TO_ADDR
25034: LD_VAR 0 11
25038: PUSH
25039: FOR_TO
25040: IFFALSE 25120
// begin if not placeunitxyr ( tm_e [ tmp1 ] , 52 , 16 , 3 , false ) then
25042: LD_VAR 0 7
25046: PUSH
25047: LD_VAR 0 3
25051: ARRAY
25052: PPUSH
25053: LD_INT 52
25055: PPUSH
25056: LD_INT 16
25058: PPUSH
25059: LD_INT 3
25061: PPUSH
25062: LD_INT 0
25064: PPUSH
25065: CALL_OW 50
25069: NOT
25070: IFFALSE 25093
// placeunitarea ( tm_e [ tmp1 ] , ambase , false ) ;
25072: LD_VAR 0 7
25076: PUSH
25077: LD_VAR 0 3
25081: ARRAY
25082: PPUSH
25083: LD_INT 8
25085: PPUSH
25086: LD_INT 0
25088: PPUSH
25089: CALL_OW 49
// tmz = tmz diff [ tm_e [ tmp1 ] ] ;
25093: LD_ADDR_VAR 0 4
25097: PUSH
25098: LD_VAR 0 4
25102: PUSH
25103: LD_VAR 0 7
25107: PUSH
25108: LD_VAR 0 3
25112: ARRAY
25113: PUSH
25114: EMPTY
25115: LIST
25116: DIFF
25117: ST_TO_ADDR
// end ;
25118: GO 25039
25120: POP
25121: POP
// tot = tot + tmp_e ;
25122: LD_ADDR_VAR 0 14
25126: PUSH
25127: LD_VAR 0 14
25131: PUSH
25132: LD_VAR 0 11
25136: PLUS
25137: ST_TO_ADDR
// if tmp_e = 0 then
25138: LD_VAR 0 11
25142: PUSH
25143: LD_INT 0
25145: EQUAL
25146: IFFALSE 25207
// begin prepareengineer ( sex_female , 3 ) ;
25148: LD_INT 2
25150: PPUSH
25151: LD_INT 3
25153: PPUSH
25154: CALL_OW 382
// tmp = createhuman ;
25158: LD_ADDR_VAR 0 2
25162: PUSH
25163: CALL_OW 44
25167: ST_TO_ADDR
// if not placeunitxyr ( tmp , 52 , 16 , 3 , false ) then
25168: LD_VAR 0 2
25172: PPUSH
25173: LD_INT 52
25175: PPUSH
25176: LD_INT 16
25178: PPUSH
25179: LD_INT 3
25181: PPUSH
25182: LD_INT 0
25184: PPUSH
25185: CALL_OW 50
25189: NOT
25190: IFFALSE 25207
// placeunitarea ( tmp , ambase , false ) ;
25192: LD_VAR 0 2
25196: PPUSH
25197: LD_INT 8
25199: PPUSH
25200: LD_INT 0
25202: PPUSH
25203: CALL_OW 49
// end ; tmp_s = 0 + tm_s ;
25207: LD_ADDR_VAR 0 13
25211: PUSH
25212: LD_INT 0
25214: PUSH
25215: LD_VAR 0 9
25219: PLUS
25220: ST_TO_ADDR
// if tmp_s > 2 then
25221: LD_VAR 0 13
25225: PUSH
25226: LD_INT 2
25228: GREATER
25229: IFFALSE 25239
// tmp_s = 1 ;
25231: LD_ADDR_VAR 0 13
25235: PUSH
25236: LD_INT 1
25238: ST_TO_ADDR
// for tmp1 = 1 to tmp_s do
25239: LD_ADDR_VAR 0 3
25243: PUSH
25244: DOUBLE
25245: LD_INT 1
25247: DEC
25248: ST_TO_ADDR
25249: LD_VAR 0 13
25253: PUSH
25254: FOR_TO
25255: IFFALSE 25335
// begin if not placeunitxyr ( tm_s [ tmp1 ] , 60 , 18 , 3 , false ) then
25257: LD_VAR 0 9
25261: PUSH
25262: LD_VAR 0 3
25266: ARRAY
25267: PPUSH
25268: LD_INT 60
25270: PPUSH
25271: LD_INT 18
25273: PPUSH
25274: LD_INT 3
25276: PPUSH
25277: LD_INT 0
25279: PPUSH
25280: CALL_OW 50
25284: NOT
25285: IFFALSE 25308
// placeunitarea ( tm_s [ tmp1 ] , ambase , false ) ;
25287: LD_VAR 0 9
25291: PUSH
25292: LD_VAR 0 3
25296: ARRAY
25297: PPUSH
25298: LD_INT 8
25300: PPUSH
25301: LD_INT 0
25303: PPUSH
25304: CALL_OW 49
// tmz = tmz diff [ tm_s [ tmp1 ] ] ;
25308: LD_ADDR_VAR 0 4
25312: PUSH
25313: LD_VAR 0 4
25317: PUSH
25318: LD_VAR 0 9
25322: PUSH
25323: LD_VAR 0 3
25327: ARRAY
25328: PUSH
25329: EMPTY
25330: LIST
25331: DIFF
25332: ST_TO_ADDR
// end ;
25333: GO 25254
25335: POP
25336: POP
// tot = tot + tmp_s ;
25337: LD_ADDR_VAR 0 14
25341: PUSH
25342: LD_VAR 0 14
25346: PUSH
25347: LD_VAR 0 13
25351: PLUS
25352: ST_TO_ADDR
// if tmp_s = 0 then
25353: LD_VAR 0 13
25357: PUSH
25358: LD_INT 0
25360: EQUAL
25361: IFFALSE 25422
// begin preparescientist ( sex_female , 2 ) ;
25363: LD_INT 2
25365: PPUSH
25366: LD_INT 2
25368: PPUSH
25369: CALL_OW 384
// tmp = createhuman ;
25373: LD_ADDR_VAR 0 2
25377: PUSH
25378: CALL_OW 44
25382: ST_TO_ADDR
// if not placeunitxyr ( tmp , 60 , 18 , 3 , false ) then
25383: LD_VAR 0 2
25387: PPUSH
25388: LD_INT 60
25390: PPUSH
25391: LD_INT 18
25393: PPUSH
25394: LD_INT 3
25396: PPUSH
25397: LD_INT 0
25399: PPUSH
25400: CALL_OW 50
25404: NOT
25405: IFFALSE 25422
// placeunitarea ( tmp , ambase , false ) ;
25407: LD_VAR 0 2
25411: PPUSH
25412: LD_INT 8
25414: PPUSH
25415: LD_INT 0
25417: PPUSH
25418: CALL_OW 49
// end ; end ; if joan then
25422: LD_EXP 35
25426: IFFALSE 25449
// placeunitxyr ( joan , 52 , 15 , 2 , false ) ;
25428: LD_EXP 35
25432: PPUSH
25433: LD_INT 52
25435: PPUSH
25436: LD_INT 15
25438: PPUSH
25439: LD_INT 2
25441: PPUSH
25442: LD_INT 0
25444: PPUSH
25445: CALL_OW 50
// smejdi = tmz_ diff tmz ;
25449: LD_ADDR_LOC 98
25453: PUSH
25454: LD_VAR 0 5
25458: PUSH
25459: LD_VAR 0 4
25463: DIFF
25464: ST_TO_ADDR
// zbytci = tmz ;
25465: LD_ADDR_LOC 99
25469: PUSH
25470: LD_VAR 0 4
25474: ST_TO_ADDR
// uc_nation = nation_nature ;
25475: LD_ADDR_OWVAR 21
25479: PUSH
25480: LD_INT 0
25482: ST_TO_ADDR
// preparehuman ( sex_male , class_apeman_engineer , 0 ) ;
25483: LD_INT 1
25485: PPUSH
25486: LD_INT 16
25488: PPUSH
25489: LD_INT 0
25491: PPUSH
25492: CALL_OW 380
// placeunitarea ( createhuman , ambase , false ) ;
25496: CALL_OW 44
25500: PPUSH
25501: LD_INT 8
25503: PPUSH
25504: LD_INT 0
25506: PPUSH
25507: CALL_OW 49
// preparehuman ( sex_male , class_apeman_engineer , 0 ) ;
25511: LD_INT 1
25513: PPUSH
25514: LD_INT 16
25516: PPUSH
25517: LD_INT 0
25519: PPUSH
25520: CALL_OW 380
// placeunitarea ( createhuman , ambase , false ) ;
25524: CALL_OW 44
25528: PPUSH
25529: LD_INT 8
25531: PPUSH
25532: LD_INT 0
25534: PPUSH
25535: CALL_OW 49
// preparehuman ( sex_male , class_apeman_engineer , 0 ) ;
25539: LD_INT 1
25541: PPUSH
25542: LD_INT 16
25544: PPUSH
25545: LD_INT 0
25547: PPUSH
25548: CALL_OW 380
// placeunitarea ( createhuman , ambase , false ) ;
25552: CALL_OW 44
25556: PPUSH
25557: LD_INT 8
25559: PPUSH
25560: LD_INT 0
25562: PPUSH
25563: CALL_OW 49
// uc_nation = nation_american ;
25567: LD_ADDR_OWVAR 21
25571: PUSH
25572: LD_INT 1
25574: ST_TO_ADDR
// hc_name =  ;
25575: LD_ADDR_OWVAR 26
25579: PUSH
25580: LD_STRING 
25582: ST_TO_ADDR
// end ; end_of_file
25583: LD_VAR 0 1
25587: RET
// every 0 0$2 + 0 0$0.1 do
25588: GO 25590
25590: DISABLE
// begin if FilterAllUnits ( [ [ f_side , 1 ] , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_soldier ] , [ f_class , class_apeman_kamikaze ] ] ] ) > FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_human ] , [ f_not , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_soldier ] , [ f_class , class_apeman_kamikaze ] ] ] ] ) then
25591: LD_INT 22
25593: PUSH
25594: LD_INT 1
25596: PUSH
25597: EMPTY
25598: LIST
25599: LIST
25600: PUSH
25601: LD_INT 2
25603: PUSH
25604: LD_INT 25
25606: PUSH
25607: LD_INT 12
25609: PUSH
25610: EMPTY
25611: LIST
25612: LIST
25613: PUSH
25614: LD_INT 25
25616: PUSH
25617: LD_INT 16
25619: PUSH
25620: EMPTY
25621: LIST
25622: LIST
25623: PUSH
25624: LD_INT 25
25626: PUSH
25627: LD_INT 15
25629: PUSH
25630: EMPTY
25631: LIST
25632: LIST
25633: PUSH
25634: LD_INT 25
25636: PUSH
25637: LD_INT 17
25639: PUSH
25640: EMPTY
25641: LIST
25642: LIST
25643: PUSH
25644: EMPTY
25645: LIST
25646: LIST
25647: LIST
25648: LIST
25649: LIST
25650: PUSH
25651: EMPTY
25652: LIST
25653: LIST
25654: PPUSH
25655: CALL_OW 69
25659: PUSH
25660: LD_INT 22
25662: PUSH
25663: LD_INT 1
25665: PUSH
25666: EMPTY
25667: LIST
25668: LIST
25669: PUSH
25670: LD_INT 21
25672: PUSH
25673: LD_INT 1
25675: PUSH
25676: EMPTY
25677: LIST
25678: LIST
25679: PUSH
25680: LD_INT 3
25682: PUSH
25683: LD_INT 2
25685: PUSH
25686: LD_INT 25
25688: PUSH
25689: LD_INT 12
25691: PUSH
25692: EMPTY
25693: LIST
25694: LIST
25695: PUSH
25696: LD_INT 25
25698: PUSH
25699: LD_INT 16
25701: PUSH
25702: EMPTY
25703: LIST
25704: LIST
25705: PUSH
25706: LD_INT 25
25708: PUSH
25709: LD_INT 15
25711: PUSH
25712: EMPTY
25713: LIST
25714: LIST
25715: PUSH
25716: LD_INT 25
25718: PUSH
25719: LD_INT 17
25721: PUSH
25722: EMPTY
25723: LIST
25724: LIST
25725: PUSH
25726: EMPTY
25727: LIST
25728: LIST
25729: LIST
25730: LIST
25731: LIST
25732: PUSH
25733: EMPTY
25734: LIST
25735: LIST
25736: PUSH
25737: EMPTY
25738: LIST
25739: LIST
25740: LIST
25741: PPUSH
25742: CALL_OW 69
25746: GREATER
25747: IFFALSE 25758
// begin SetAchievement ( ACH_POTA ) ;
25749: LD_STRING ACH_POTA
25751: PPUSH
25752: CALL_OW 543
// exit ;
25756: GO 25759
// end ; enable ;
25758: ENABLE
// end ;
25759: END
// export function SA_WithoutHelp ; begin
25760: LD_INT 0
25762: PPUSH
// SetAchievement ( ACH_IGT ) ;
25763: LD_STRING ACH_IGT
25765: PPUSH
25766: CALL_OW 543
// end ;
25770: LD_VAR 0 1
25774: RET
// export function SA_Rush ; begin
25775: LD_INT 0
25777: PPUSH
// SetAchievement ( ACH_RUS ) ;
25778: LD_STRING ACH_RUS
25780: PPUSH
25781: CALL_OW 543
// end ; end_of_file
25785: LD_VAR 0 1
25789: RET
// export function SA_EndMission ( campaignNumber , missionNumber , medal1 , medal2 , medal3 ) ; var achiv ; begin
25790: LD_INT 0
25792: PPUSH
25793: PPUSH
// if not missionNumber then
25794: LD_VAR 0 2
25798: NOT
25799: IFFALSE 25803
// exit ;
25801: GO 25933
// achiv := false ;
25803: LD_ADDR_VAR 0 7
25807: PUSH
25808: LD_INT 0
25810: ST_TO_ADDR
// case campaignNumber of 1 :
25811: LD_VAR 0 1
25815: PUSH
25816: LD_INT 1
25818: DOUBLE
25819: EQUAL
25820: IFTRUE 25824
25822: GO 25835
25824: POP
// achiv := ACH_GOTA ; 2 :
25825: LD_ADDR_VAR 0 7
25829: PUSH
25830: LD_STRING ACH_GOTA
25832: ST_TO_ADDR
25833: GO 25885
25835: LD_INT 2
25837: DOUBLE
25838: EQUAL
25839: IFTRUE 25843
25841: GO 25846
25843: POP
// ; 3 :
25844: GO 25885
25846: LD_INT 3
25848: DOUBLE
25849: EQUAL
25850: IFTRUE 25854
25852: GO 25865
25854: POP
// achiv := ACH_MOTSU ; 4 :
25855: LD_ADDR_VAR 0 7
25859: PUSH
25860: LD_STRING ACH_MOTSU
25862: ST_TO_ADDR
25863: GO 25885
25865: LD_INT 4
25867: DOUBLE
25868: EQUAL
25869: IFTRUE 25873
25871: GO 25884
25873: POP
// achiv := ACH_LOP ; end ;
25874: LD_ADDR_VAR 0 7
25878: PUSH
25879: LD_STRING ACH_LOP
25881: ST_TO_ADDR
25882: GO 25885
25884: POP
// if Difficulty = 3 and achiv and medal1 and medal2 and medal3 then
25885: LD_OWVAR 67
25889: PUSH
25890: LD_INT 3
25892: EQUAL
25893: PUSH
25894: LD_VAR 0 7
25898: AND
25899: PUSH
25900: LD_VAR 0 3
25904: AND
25905: PUSH
25906: LD_VAR 0 4
25910: AND
25911: PUSH
25912: LD_VAR 0 5
25916: AND
25917: IFFALSE 25933
// SetAchievementEX ( achiv , missionNumber ) ;
25919: LD_VAR 0 7
25923: PPUSH
25924: LD_VAR 0 2
25928: PPUSH
25929: CALL_OW 564
// end ;
25933: LD_VAR 0 6
25937: RET
// export function SA_BehemothConstructed ; begin
25938: LD_INT 0
25940: PPUSH
// SetAchievement ( ACH_SMC ) ;
25941: LD_STRING ACH_SMC
25943: PPUSH
25944: CALL_OW 543
// end ;
25948: LD_VAR 0 1
25952: RET
// on CustomCommand ( p1 , p2 , p3 , p4 , p5 , p6 ) do begin case p2 of 1 :
25953: LD_VAR 0 2
25957: PUSH
25958: LD_INT 1
25960: DOUBLE
25961: EQUAL
25962: IFTRUE 25966
25964: GO 25973
25966: POP
// HackUnlimitedResources ; 2 :
25967: CALL 26157 0 0
25971: GO 26154
25973: LD_INT 2
25975: DOUBLE
25976: EQUAL
25977: IFTRUE 25981
25979: GO 25988
25981: POP
// HackSetLevel10 ; 3 :
25982: CALL 26290 0 0
25986: GO 26154
25988: LD_INT 3
25990: DOUBLE
25991: EQUAL
25992: IFTRUE 25996
25994: GO 26003
25996: POP
// HackSetLevel10YourUnits ; 4 :
25997: CALL 26375 0 0
26001: GO 26154
26003: LD_INT 4
26005: DOUBLE
26006: EQUAL
26007: IFTRUE 26011
26009: GO 26033
26011: POP
// HackSpawnHuman ( p3 , p4 , p5 ) ; 5 :
26012: LD_VAR 0 3
26016: PPUSH
26017: LD_VAR 0 4
26021: PPUSH
26022: LD_VAR 0 5
26026: PPUSH
26027: CALL 26465 0 3
26031: GO 26154
26033: LD_INT 5
26035: DOUBLE
26036: EQUAL
26037: IFTRUE 26041
26039: GO 26048
26041: POP
// HackSpawnVehicle ; 6 :
26042: CALL 26526 0 0
26046: GO 26154
26048: LD_INT 6
26050: DOUBLE
26051: EQUAL
26052: IFTRUE 26056
26054: GO 26063
26056: POP
// HackInvincible ; 7 :
26057: CALL 27072 0 0
26061: GO 26154
26063: LD_INT 7
26065: DOUBLE
26066: EQUAL
26067: IFTRUE 26071
26069: GO 26078
26071: POP
// HackInvisible ; 8 :
26072: CALL 27183 0 0
26076: GO 26154
26078: LD_INT 8
26080: DOUBLE
26081: EQUAL
26082: IFTRUE 26086
26084: GO 26093
26086: POP
// HackChangeYourSide ; 9 :
26087: CALL 27240 0 0
26091: GO 26154
26093: LD_INT 9
26095: DOUBLE
26096: EQUAL
26097: IFTRUE 26101
26099: GO 26108
26101: POP
// HackChangeUnitSide ; 10 :
26102: CALL 27282 0 0
26106: GO 26154
26108: LD_INT 10
26110: DOUBLE
26111: EQUAL
26112: IFTRUE 26116
26114: GO 26123
26116: POP
// HackFog ; 11 :
26117: CALL 27383 0 0
26121: GO 26154
26123: LD_INT 11
26125: DOUBLE
26126: EQUAL
26127: IFTRUE 26131
26129: GO 26138
26131: POP
// HackApeman ; 12 :
26132: CALL 27398 0 0
26136: GO 26154
26138: LD_INT 12
26140: DOUBLE
26141: EQUAL
26142: IFTRUE 26146
26144: GO 26153
26146: POP
// HackBoom ; end ;
26147: CALL 27483 0 0
26151: GO 26154
26153: POP
// end ;
26154: PPOPN 6
26156: END
// export function HackUnlimitedResources ; var i , j , tmp ; begin
26157: LD_INT 0
26159: PPUSH
26160: PPUSH
26161: PPUSH
26162: PPUSH
// tmp := FilterAllUnits ( [ [ f_side , your_side ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
26163: LD_ADDR_VAR 0 4
26167: PUSH
26168: LD_INT 22
26170: PUSH
26171: LD_OWVAR 2
26175: PUSH
26176: EMPTY
26177: LIST
26178: LIST
26179: PUSH
26180: LD_INT 2
26182: PUSH
26183: LD_INT 30
26185: PUSH
26186: LD_INT 0
26188: PUSH
26189: EMPTY
26190: LIST
26191: LIST
26192: PUSH
26193: LD_INT 30
26195: PUSH
26196: LD_INT 1
26198: PUSH
26199: EMPTY
26200: LIST
26201: LIST
26202: PUSH
26203: EMPTY
26204: LIST
26205: LIST
26206: LIST
26207: PUSH
26208: EMPTY
26209: LIST
26210: LIST
26211: PPUSH
26212: CALL_OW 69
26216: ST_TO_ADDR
// if not tmp then
26217: LD_VAR 0 4
26221: NOT
26222: IFFALSE 26226
// exit ;
26224: GO 26285
// for i in tmp do
26226: LD_ADDR_VAR 0 2
26230: PUSH
26231: LD_VAR 0 4
26235: PUSH
26236: FOR_IN
26237: IFFALSE 26283
// for j = 1 to 3 do
26239: LD_ADDR_VAR 0 3
26243: PUSH
26244: DOUBLE
26245: LD_INT 1
26247: DEC
26248: ST_TO_ADDR
26249: LD_INT 3
26251: PUSH
26252: FOR_TO
26253: IFFALSE 26279
// SetResourceType ( GetBase ( i ) , j , 99999 ) ;
26255: LD_VAR 0 2
26259: PPUSH
26260: CALL_OW 274
26264: PPUSH
26265: LD_VAR 0 3
26269: PPUSH
26270: LD_INT 99999
26272: PPUSH
26273: CALL_OW 277
26277: GO 26252
26279: POP
26280: POP
26281: GO 26236
26283: POP
26284: POP
// end ;
26285: LD_VAR 0 1
26289: RET
// export function HackSetLevel10 ; var i , j ; begin
26290: LD_INT 0
26292: PPUSH
26293: PPUSH
26294: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
26295: LD_ADDR_VAR 0 2
26299: PUSH
26300: LD_INT 21
26302: PUSH
26303: LD_INT 1
26305: PUSH
26306: EMPTY
26307: LIST
26308: LIST
26309: PPUSH
26310: CALL_OW 69
26314: PUSH
26315: FOR_IN
26316: IFFALSE 26368
// if IsSelected ( i ) then
26318: LD_VAR 0 2
26322: PPUSH
26323: CALL_OW 306
26327: IFFALSE 26366
// begin for j := 1 to 4 do
26329: LD_ADDR_VAR 0 3
26333: PUSH
26334: DOUBLE
26335: LD_INT 1
26337: DEC
26338: ST_TO_ADDR
26339: LD_INT 4
26341: PUSH
26342: FOR_TO
26343: IFFALSE 26364
// SetSkill ( i , j , 10 ) ;
26345: LD_VAR 0 2
26349: PPUSH
26350: LD_VAR 0 3
26354: PPUSH
26355: LD_INT 10
26357: PPUSH
26358: CALL_OW 237
26362: GO 26342
26364: POP
26365: POP
// end ;
26366: GO 26315
26368: POP
26369: POP
// end ;
26370: LD_VAR 0 1
26374: RET
// export function HackSetLevel10YourUnits ; var i , j ; begin
26375: LD_INT 0
26377: PPUSH
26378: PPUSH
26379: PPUSH
// for i in FilterAllUnits ( [ [ f_side , your_side ] , [ f_type , unit_human ] ] ) do
26380: LD_ADDR_VAR 0 2
26384: PUSH
26385: LD_INT 22
26387: PUSH
26388: LD_OWVAR 2
26392: PUSH
26393: EMPTY
26394: LIST
26395: LIST
26396: PUSH
26397: LD_INT 21
26399: PUSH
26400: LD_INT 1
26402: PUSH
26403: EMPTY
26404: LIST
26405: LIST
26406: PUSH
26407: EMPTY
26408: LIST
26409: LIST
26410: PPUSH
26411: CALL_OW 69
26415: PUSH
26416: FOR_IN
26417: IFFALSE 26458
// begin for j := 1 to 4 do
26419: LD_ADDR_VAR 0 3
26423: PUSH
26424: DOUBLE
26425: LD_INT 1
26427: DEC
26428: ST_TO_ADDR
26429: LD_INT 4
26431: PUSH
26432: FOR_TO
26433: IFFALSE 26454
// SetSkill ( i , j , 10 ) ;
26435: LD_VAR 0 2
26439: PPUSH
26440: LD_VAR 0 3
26444: PPUSH
26445: LD_INT 10
26447: PPUSH
26448: CALL_OW 237
26452: GO 26432
26454: POP
26455: POP
// end ;
26456: GO 26416
26458: POP
26459: POP
// end ;
26460: LD_VAR 0 1
26464: RET
// export function HackSpawnHuman ( nation , class , skill ) ; begin
26465: LD_INT 0
26467: PPUSH
// uc_side := your_side ;
26468: LD_ADDR_OWVAR 20
26472: PUSH
26473: LD_OWVAR 2
26477: ST_TO_ADDR
// uc_nation := nation ;
26478: LD_ADDR_OWVAR 21
26482: PUSH
26483: LD_VAR 0 1
26487: ST_TO_ADDR
// InitHc ;
26488: CALL_OW 19
// PrepareHuman ( false , class , skill ) ;
26492: LD_INT 0
26494: PPUSH
26495: LD_VAR 0 2
26499: PPUSH
26500: LD_VAR 0 3
26504: PPUSH
26505: CALL_OW 380
// PlaceUnitAnywhere ( CreateHuman , true ) ;
26509: CALL_OW 44
26513: PPUSH
26514: LD_INT 1
26516: PPUSH
26517: CALL_OW 51
// end ;
26521: LD_VAR 0 4
26525: RET
// export function HackSpawnVehicle ; begin
26526: LD_INT 0
26528: PPUSH
// uc_side := your_side ;
26529: LD_ADDR_OWVAR 20
26533: PUSH
26534: LD_OWVAR 2
26538: ST_TO_ADDR
// uc_nation := rand ( 1 , 3 ) ;
26539: LD_ADDR_OWVAR 21
26543: PUSH
26544: LD_INT 1
26546: PPUSH
26547: LD_INT 3
26549: PPUSH
26550: CALL_OW 12
26554: ST_TO_ADDR
// InitVc ;
26555: CALL_OW 20
// case uc_nation of 1 :
26559: LD_OWVAR 21
26563: PUSH
26564: LD_INT 1
26566: DOUBLE
26567: EQUAL
26568: IFTRUE 26572
26570: GO 26716
26572: POP
// begin vc_chassis := [ us_light_wheeled , us_medium_wheeled , us_medium_tracked , us_heavy_tracked , us_morphling ] [ rand ( 1 , 5 ) ] ;
26573: LD_ADDR_OWVAR 37
26577: PUSH
26578: LD_INT 1
26580: PUSH
26581: LD_INT 2
26583: PUSH
26584: LD_INT 3
26586: PUSH
26587: LD_INT 4
26589: PUSH
26590: LD_INT 5
26592: PUSH
26593: EMPTY
26594: LIST
26595: LIST
26596: LIST
26597: LIST
26598: LIST
26599: PUSH
26600: LD_INT 1
26602: PPUSH
26603: LD_INT 5
26605: PPUSH
26606: CALL_OW 12
26610: ARRAY
26611: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
26612: LD_ADDR_OWVAR 39
26616: PUSH
26617: LD_INT 1
26619: PPUSH
26620: LD_INT 3
26622: PPUSH
26623: CALL_OW 12
26627: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_computer ] [ rand ( 1 , 3 ) ] ;
26628: LD_ADDR_OWVAR 38
26632: PUSH
26633: LD_INT 1
26635: PUSH
26636: LD_INT 2
26638: PUSH
26639: LD_INT 3
26641: PUSH
26642: EMPTY
26643: LIST
26644: LIST
26645: LIST
26646: PUSH
26647: LD_INT 1
26649: PPUSH
26650: LD_INT 3
26652: PPUSH
26653: CALL_OW 12
26657: ARRAY
26658: 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 ) ] ;
26659: LD_ADDR_OWVAR 40
26663: PUSH
26664: LD_INT 2
26666: PUSH
26667: LD_INT 4
26669: PUSH
26670: LD_INT 5
26672: PUSH
26673: LD_INT 3
26675: PUSH
26676: LD_INT 7
26678: PUSH
26679: LD_INT 8
26681: PUSH
26682: LD_INT 9
26684: PUSH
26685: LD_INT 10
26687: PUSH
26688: LD_INT 6
26690: PUSH
26691: EMPTY
26692: LIST
26693: LIST
26694: LIST
26695: LIST
26696: LIST
26697: LIST
26698: LIST
26699: LIST
26700: LIST
26701: PUSH
26702: LD_INT 1
26704: PPUSH
26705: LD_INT 9
26707: PPUSH
26708: CALL_OW 12
26712: ARRAY
26713: ST_TO_ADDR
// end ; 2 :
26714: GO 26981
26716: LD_INT 2
26718: DOUBLE
26719: EQUAL
26720: IFTRUE 26724
26722: GO 26848
26724: POP
// begin vc_chassis := [ ar_hovercraft , ar_light_trike , ar_medium_trike , ar_half_tracked ] [ rand ( 1 , 4 ) ] ;
26725: LD_ADDR_OWVAR 37
26729: PUSH
26730: LD_INT 11
26732: PUSH
26733: LD_INT 12
26735: PUSH
26736: LD_INT 13
26738: PUSH
26739: LD_INT 14
26741: PUSH
26742: EMPTY
26743: LIST
26744: LIST
26745: LIST
26746: LIST
26747: PUSH
26748: LD_INT 1
26750: PPUSH
26751: LD_INT 4
26753: PPUSH
26754: CALL_OW 12
26758: ARRAY
26759: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
26760: LD_ADDR_OWVAR 39
26764: PUSH
26765: LD_INT 1
26767: PPUSH
26768: LD_INT 3
26770: PPUSH
26771: CALL_OW 12
26775: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_apeman ] [ rand ( 1 , 3 ) ] ;
26776: LD_ADDR_OWVAR 38
26780: PUSH
26781: LD_INT 1
26783: PUSH
26784: LD_INT 2
26786: PUSH
26787: LD_INT 5
26789: PUSH
26790: EMPTY
26791: LIST
26792: LIST
26793: LIST
26794: PUSH
26795: LD_INT 1
26797: PPUSH
26798: LD_INT 3
26800: PPUSH
26801: CALL_OW 12
26805: ARRAY
26806: ST_TO_ADDR
// vc_weapon := [ ar_double_machine_gun , ar_flame_thrower , ar_gun , ar_rocket_launcher , ar_selfpropelled_bomb ] [ rand ( 1 , 5 ) ] ;
26807: LD_ADDR_OWVAR 40
26811: PUSH
26812: LD_INT 24
26814: PUSH
26815: LD_INT 26
26817: PUSH
26818: LD_INT 27
26820: PUSH
26821: LD_INT 28
26823: PUSH
26824: LD_INT 29
26826: PUSH
26827: EMPTY
26828: LIST
26829: LIST
26830: LIST
26831: LIST
26832: LIST
26833: PUSH
26834: LD_INT 1
26836: PPUSH
26837: LD_INT 5
26839: PPUSH
26840: CALL_OW 12
26844: ARRAY
26845: ST_TO_ADDR
// end ; 3 :
26846: GO 26981
26848: LD_INT 3
26850: DOUBLE
26851: EQUAL
26852: IFTRUE 26856
26854: GO 26980
26856: POP
// begin vc_chassis := [ ru_medium_wheeled , ru_heavy_wheeled , ru_medium_tracked , ru_heavy_tracked ] [ rand ( 1 , 4 ) ] ;
26857: LD_ADDR_OWVAR 37
26861: PUSH
26862: LD_INT 21
26864: PUSH
26865: LD_INT 23
26867: PUSH
26868: LD_INT 22
26870: PUSH
26871: LD_INT 24
26873: PUSH
26874: EMPTY
26875: LIST
26876: LIST
26877: LIST
26878: LIST
26879: PUSH
26880: LD_INT 1
26882: PPUSH
26883: LD_INT 4
26885: PPUSH
26886: CALL_OW 12
26890: ARRAY
26891: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
26892: LD_ADDR_OWVAR 39
26896: PUSH
26897: LD_INT 1
26899: PPUSH
26900: LD_INT 3
26902: PPUSH
26903: CALL_OW 12
26907: ST_TO_ADDR
// vc_control := [ control_manual , control_computer ] [ rand ( 1 , 2 ) ] ;
26908: LD_ADDR_OWVAR 38
26912: PUSH
26913: LD_INT 1
26915: PUSH
26916: LD_INT 3
26918: PUSH
26919: EMPTY
26920: LIST
26921: LIST
26922: PUSH
26923: LD_INT 1
26925: PPUSH
26926: LD_INT 2
26928: PPUSH
26929: CALL_OW 12
26933: ARRAY
26934: 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 ) ] ;
26935: LD_ADDR_OWVAR 40
26939: PUSH
26940: LD_INT 42
26942: PUSH
26943: LD_INT 43
26945: PUSH
26946: LD_INT 44
26948: PUSH
26949: LD_INT 46
26951: PUSH
26952: LD_INT 48
26954: PUSH
26955: LD_INT 47
26957: PUSH
26958: EMPTY
26959: LIST
26960: LIST
26961: LIST
26962: LIST
26963: LIST
26964: LIST
26965: PUSH
26966: LD_INT 1
26968: PPUSH
26969: LD_INT 6
26971: PPUSH
26972: CALL_OW 12
26976: ARRAY
26977: ST_TO_ADDR
// end ; end ;
26978: GO 26981
26980: POP
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
26981: CALL_OW 45
26985: PPUSH
26986: LD_INT 1
26988: PPUSH
26989: CALL_OW 51
// end ;
26993: LD_VAR 0 1
26997: RET
// export invincible ; every 1 do
26998: GO 27000
27000: DISABLE
// invincible := [ ] ;
27001: LD_ADDR_EXP 47
27005: PUSH
27006: EMPTY
27007: ST_TO_ADDR
27008: END
// every 10 do var i ;
27009: GO 27011
27011: DISABLE
27012: LD_INT 0
27014: PPUSH
// begin enable ;
27015: ENABLE
// if not invincible then
27016: LD_EXP 47
27020: NOT
27021: IFFALSE 27025
// exit ;
27023: GO 27069
// for i in invincible do
27025: LD_ADDR_VAR 0 1
27029: PUSH
27030: LD_EXP 47
27034: PUSH
27035: FOR_IN
27036: IFFALSE 27067
// if GetLives ( i ) < 1000 then
27038: LD_VAR 0 1
27042: PPUSH
27043: CALL_OW 256
27047: PUSH
27048: LD_INT 1000
27050: LESS
27051: IFFALSE 27065
// SetLives ( i , 1000 ) ;
27053: LD_VAR 0 1
27057: PPUSH
27058: LD_INT 1000
27060: PPUSH
27061: CALL_OW 234
27065: GO 27035
27067: POP
27068: POP
// end ;
27069: PPOPN 1
27071: END
// export function HackInvincible ; var i ; begin
27072: LD_INT 0
27074: PPUSH
27075: PPUSH
// for i in FilterAllUnits ( [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ) do
27076: LD_ADDR_VAR 0 2
27080: PUSH
27081: LD_INT 2
27083: PUSH
27084: LD_INT 21
27086: PUSH
27087: LD_INT 1
27089: PUSH
27090: EMPTY
27091: LIST
27092: LIST
27093: PUSH
27094: LD_INT 21
27096: PUSH
27097: LD_INT 2
27099: PUSH
27100: EMPTY
27101: LIST
27102: LIST
27103: PUSH
27104: EMPTY
27105: LIST
27106: LIST
27107: LIST
27108: PPUSH
27109: CALL_OW 69
27113: PUSH
27114: FOR_IN
27115: IFFALSE 27176
// if IsSelected ( i ) then
27117: LD_VAR 0 2
27121: PPUSH
27122: CALL_OW 306
27126: IFFALSE 27174
// begin if i in invincible then
27128: LD_VAR 0 2
27132: PUSH
27133: LD_EXP 47
27137: IN
27138: IFFALSE 27158
// invincible := invincible diff i else
27140: LD_ADDR_EXP 47
27144: PUSH
27145: LD_EXP 47
27149: PUSH
27150: LD_VAR 0 2
27154: DIFF
27155: ST_TO_ADDR
27156: GO 27174
// invincible := invincible union i ;
27158: LD_ADDR_EXP 47
27162: PUSH
27163: LD_EXP 47
27167: PUSH
27168: LD_VAR 0 2
27172: UNION
27173: ST_TO_ADDR
// end ;
27174: GO 27114
27176: POP
27177: POP
// end ;
27178: LD_VAR 0 1
27182: RET
// export function HackInvisible ; var i , j ; begin
27183: LD_INT 0
27185: PPUSH
27186: PPUSH
27187: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
27188: LD_ADDR_VAR 0 2
27192: PUSH
27193: LD_INT 21
27195: PUSH
27196: LD_INT 1
27198: PUSH
27199: EMPTY
27200: LIST
27201: LIST
27202: PPUSH
27203: CALL_OW 69
27207: PUSH
27208: FOR_IN
27209: IFFALSE 27233
// if IsSelected ( i ) then
27211: LD_VAR 0 2
27215: PPUSH
27216: CALL_OW 306
27220: IFFALSE 27231
// begin ComForceInvisible ( i ) ;
27222: LD_VAR 0 2
27226: PPUSH
27227: CALL_OW 496
// end ;
27231: GO 27208
27233: POP
27234: POP
// end ;
27235: LD_VAR 0 1
27239: RET
// export function HackChangeYourSide ; begin
27240: LD_INT 0
27242: PPUSH
// if your_side = 8 then
27243: LD_OWVAR 2
27247: PUSH
27248: LD_INT 8
27250: EQUAL
27251: IFFALSE 27263
// your_side := 0 else
27253: LD_ADDR_OWVAR 2
27257: PUSH
27258: LD_INT 0
27260: ST_TO_ADDR
27261: GO 27277
// your_side := your_side + 1 ;
27263: LD_ADDR_OWVAR 2
27267: PUSH
27268: LD_OWVAR 2
27272: PUSH
27273: LD_INT 1
27275: PLUS
27276: ST_TO_ADDR
// end ;
27277: LD_VAR 0 1
27281: RET
// export function HackChangeUnitSide ; var i , j ; begin
27282: LD_INT 0
27284: PPUSH
27285: PPUSH
27286: PPUSH
// for i in all_units do
27287: LD_ADDR_VAR 0 2
27291: PUSH
27292: LD_OWVAR 3
27296: PUSH
27297: FOR_IN
27298: IFFALSE 27376
// if IsSelected ( i ) then
27300: LD_VAR 0 2
27304: PPUSH
27305: CALL_OW 306
27309: IFFALSE 27374
// begin j := GetSide ( i ) ;
27311: LD_ADDR_VAR 0 3
27315: PUSH
27316: LD_VAR 0 2
27320: PPUSH
27321: CALL_OW 255
27325: ST_TO_ADDR
// if j = 8 then
27326: LD_VAR 0 3
27330: PUSH
27331: LD_INT 8
27333: EQUAL
27334: IFFALSE 27346
// j := 0 else
27336: LD_ADDR_VAR 0 3
27340: PUSH
27341: LD_INT 0
27343: ST_TO_ADDR
27344: GO 27360
// j := j + 1 ;
27346: LD_ADDR_VAR 0 3
27350: PUSH
27351: LD_VAR 0 3
27355: PUSH
27356: LD_INT 1
27358: PLUS
27359: ST_TO_ADDR
// SetSide ( i , j ) ;
27360: LD_VAR 0 2
27364: PPUSH
27365: LD_VAR 0 3
27369: PPUSH
27370: CALL_OW 235
// end ;
27374: GO 27297
27376: POP
27377: POP
// end ;
27378: LD_VAR 0 1
27382: RET
// export function HackFog ; begin
27383: LD_INT 0
27385: PPUSH
// FogOff ( true ) ;
27386: LD_INT 1
27388: PPUSH
27389: CALL_OW 344
// end ;
27393: LD_VAR 0 1
27397: RET
// export function HackApeman ; begin
27398: LD_INT 0
27400: PPUSH
// uc_side := your_side ;
27401: LD_ADDR_OWVAR 20
27405: PUSH
27406: LD_OWVAR 2
27410: ST_TO_ADDR
// uc_nation := 0 ;
27411: LD_ADDR_OWVAR 21
27415: PUSH
27416: LD_INT 0
27418: ST_TO_ADDR
// hc_name :=  ;
27419: LD_ADDR_OWVAR 26
27423: PUSH
27424: LD_STRING 
27426: ST_TO_ADDR
// hc_gallery :=  ;
27427: LD_ADDR_OWVAR 33
27431: PUSH
27432: LD_STRING 
27434: ST_TO_ADDR
// hc_skills := [ 0 , 0 , 0 , 0 ] ;
27435: LD_ADDR_OWVAR 31
27439: PUSH
27440: LD_INT 0
27442: PUSH
27443: LD_INT 0
27445: PUSH
27446: LD_INT 0
27448: PUSH
27449: LD_INT 0
27451: PUSH
27452: EMPTY
27453: LIST
27454: LIST
27455: LIST
27456: LIST
27457: ST_TO_ADDR
// hc_class := class_apeman ;
27458: LD_ADDR_OWVAR 28
27462: PUSH
27463: LD_INT 12
27465: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateHuman , true ) ;
27466: CALL_OW 44
27470: PPUSH
27471: LD_INT 1
27473: PPUSH
27474: CALL_OW 51
// end ;
27478: LD_VAR 0 1
27482: RET
// export function HackBoom ; begin
27483: LD_INT 0
27485: PPUSH
// uc_side := your_side ;
27486: LD_ADDR_OWVAR 20
27490: PUSH
27491: LD_OWVAR 2
27495: ST_TO_ADDR
// uc_nation := 1 ;
27496: LD_ADDR_OWVAR 21
27500: PUSH
27501: LD_INT 1
27503: ST_TO_ADDR
// vc_chassis := us_morphling ;
27504: LD_ADDR_OWVAR 37
27508: PUSH
27509: LD_INT 5
27511: ST_TO_ADDR
// vc_engine := engine_siberite ;
27512: LD_ADDR_OWVAR 39
27516: PUSH
27517: LD_INT 3
27519: ST_TO_ADDR
// vc_control := control_computer ;
27520: LD_ADDR_OWVAR 38
27524: PUSH
27525: LD_INT 3
27527: ST_TO_ADDR
// vc_weapon := us_siberium_rocket ;
27528: LD_ADDR_OWVAR 40
27532: PUSH
27533: LD_INT 8
27535: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
27536: CALL_OW 45
27540: PPUSH
27541: LD_INT 1
27543: PPUSH
27544: CALL_OW 51
// end ;
27548: LD_VAR 0 1
27552: RET
