// export rus , amer , amer2 ; export rh ; export amhsold3 , amhsold4 , amhsold5 , amhsold6 , amhsold8 , amhsold9 , amhsolda , amhsoldb , amhsoldc ; export rubdepo0 , rubbunk1 , rubbrwr2 ; export rusove2 ; export attacking ; export bunker_done , brwr_done ; export rubase1_gone ; export ruhmech3 ; export ruv1 , ruv2 ; export ruhsoldj , ruhsoldk , ruhsoldl ; export ruv4 , ruhmech5 ; var john , bobby , cyrus , lisa , frank , lucyd , amhsold7 ; var amhsold1 ; var i , j ; export depot_done ; var build_wrks ; var other_survivors ; function from_prev_mis ; var tmz ; begin
   0: LD_INT 0
   2: PPUSH
   3: PPUSH
// uc_side = amer ;
   4: LD_ADDR_OWVAR 20
   8: PUSH
   9: LD_EXP 2
  13: ST_TO_ADDR
// lisa = 0 ;
  14: LD_ADDR_LOC 4
  18: PUSH
  19: LD_INT 0
  21: ST_TO_ADDR
// bobby = 0 ;
  22: LD_ADDR_LOC 2
  26: PUSH
  27: LD_INT 0
  29: ST_TO_ADDR
// cyrus = 0 ;
  30: LD_ADDR_LOC 3
  34: PUSH
  35: LD_INT 0
  37: ST_TO_ADDR
// other_survivors = [ ] ;
  38: LD_ADDR_LOC 12
  42: PUSH
  43: EMPTY
  44: ST_TO_ADDR
// rh = newcharacter ( Harisson ) ;
  45: LD_ADDR_EXP 4
  49: PUSH
  50: LD_STRING Harisson
  52: PPUSH
  53: CALL_OW 25
  57: ST_TO_ADDR
// if not rh then
  58: LD_EXP 4
  62: NOT
  63: IFFALSE 78
// buildquery ( neny Harisson , [ OK ] ) ;
  65: LD_STRING neny Harisson
  67: PPUSH
  68: LD_STRING OK
  70: PUSH
  71: EMPTY
  72: LIST
  73: PPUSH
  74: CALL_OW 99
// if testcharacters ( JMM ) and checkcharacterset ( JMM ) then
  78: LD_STRING JMM
  80: PPUSH
  81: CALL_OW 28
  85: PUSH
  86: LD_STRING JMM
  88: PPUSH
  89: CALL_OW 29
  93: AND
  94: IFFALSE 114
// john = createcharacterwithclass ( JMM , class_soldier ) else
  96: LD_ADDR_LOC 1
 100: PUSH
 101: LD_STRING JMM
 103: PPUSH
 104: LD_INT 1
 106: PPUSH
 107: CALL_OW 35
 111: ST_TO_ADDR
 112: GO 127
// buildquery ( neny JMM , [ OK ] ) ;
 114: LD_STRING neny JMM
 116: PPUSH
 117: LD_STRING OK
 119: PUSH
 120: EMPTY
 121: LIST
 122: PPUSH
 123: CALL_OW 99
// if not testcharacters ( Lisa ) then
 127: LD_STRING Lisa
 129: PPUSH
 130: CALL_OW 28
 134: NOT
 135: IFFALSE 146
// msg ( neny Lisa ) else
 137: LD_STRING neny Lisa
 139: PPUSH
 140: CALL_OW 100
 144: GO 565
// if not checkcharacterset ( Lisa ) then
 146: LD_STRING Lisa
 148: PPUSH
 149: CALL_OW 29
 153: NOT
 154: IFFALSE 542
// if not testcharacters ( Cyrus ) then
 156: LD_STRING Cyrus
 158: PPUSH
 159: CALL_OW 28
 163: NOT
 164: IFFALSE 175
// msg ( neny Cyrus ) else
 166: LD_STRING neny Cyrus
 168: PPUSH
 169: CALL_OW 100
 173: GO 540
// if not checkcharacterset ( Cyrus ) then
 175: LD_STRING Cyrus
 177: PPUSH
 178: CALL_OW 29
 182: NOT
 183: IFFALSE 517
// if not testcharacters ( Bobby ) then
 185: LD_STRING Bobby
 187: PPUSH
 188: CALL_OW 28
 192: NOT
 193: IFFALSE 204
// msg ( neny Bobby ) else
 195: LD_STRING neny Bobby
 197: PPUSH
 198: CALL_OW 100
 202: GO 515
// if not checkcharacterset ( Bobby ) then
 204: LD_STRING Bobby
 206: PPUSH
 207: CALL_OW 29
 211: NOT
 212: IFFALSE 492
// if not testcharacters ( other_survivors ) then
 214: LD_STRING other_survivors
 216: PPUSH
 217: CALL_OW 28
 221: NOT
 222: IFFALSE 233
// msg ( neny other_survivors ) else
 224: LD_STRING neny other_survivors
 226: PPUSH
 227: CALL_OW 100
 231: GO 490
// if not checkcharacterset ( other_survivors ) then
 233: LD_STRING other_survivors
 235: PPUSH
 236: CALL_OW 29
 240: NOT
 241: IFFALSE 265
// begin preparesoldier ( sex_male , 3 ) ;
 243: LD_INT 1
 245: PPUSH
 246: LD_INT 3
 248: PPUSH
 249: CALL_OW 381
// amhsold3 = createhuman ;
 253: LD_ADDR_EXP 5
 257: PUSH
 258: CALL_OW 44
 262: ST_TO_ADDR
// end else
 263: GO 490
// begin other_survivors = createcharacterset ( other_survivors ) ;
 265: LD_ADDR_LOC 12
 269: PUSH
 270: LD_STRING other_survivors
 272: PPUSH
 273: CALL_OW 31
 277: ST_TO_ADDR
// amhsold3 = 0 ;
 278: LD_ADDR_EXP 5
 282: PUSH
 283: LD_INT 0
 285: ST_TO_ADDR
// for tmz in other_survivors do
 286: LD_ADDR_VAR 0 2
 290: PUSH
 291: LD_LOC 12
 295: PUSH
 296: FOR_IN
 297: IFFALSE 356
// if getclass ( tmz ) = class_soldier then
 299: LD_VAR 0 2
 303: PPUSH
 304: CALL_OW 257
 308: PUSH
 309: LD_INT 1
 311: EQUAL
 312: IFFALSE 354
// begin amhsold3 = other_survivors [ tmz ] ;
 314: LD_ADDR_EXP 5
 318: PUSH
 319: LD_LOC 12
 323: PUSH
 324: LD_VAR 0 2
 328: ARRAY
 329: ST_TO_ADDR
// other_survivors = other_survivors diff other_survivors [ tmz ] ;
 330: LD_ADDR_LOC 12
 334: PUSH
 335: LD_LOC 12
 339: PUSH
 340: LD_LOC 12
 344: PUSH
 345: LD_VAR 0 2
 349: ARRAY
 350: DIFF
 351: ST_TO_ADDR
// break ;
 352: GO 356
// end ;
 354: GO 296
 356: POP
 357: POP
// if not amhsold3 then
 358: LD_EXP 5
 362: NOT
 363: IFFALSE 437
// for tmz in other_survivors do
 365: LD_ADDR_VAR 0 2
 369: PUSH
 370: LD_LOC 12
 374: PUSH
 375: FOR_IN
 376: IFFALSE 435
// if getclass ( tmz ) = class_mechanic then
 378: LD_VAR 0 2
 382: PPUSH
 383: CALL_OW 257
 387: PUSH
 388: LD_INT 3
 390: EQUAL
 391: IFFALSE 433
// begin amhsold3 = other_survivors [ tmz ] ;
 393: LD_ADDR_EXP 5
 397: PUSH
 398: LD_LOC 12
 402: PUSH
 403: LD_VAR 0 2
 407: ARRAY
 408: ST_TO_ADDR
// other_survivors = other_survivors diff other_survivors [ tmz ] ;
 409: LD_ADDR_LOC 12
 413: PUSH
 414: LD_LOC 12
 418: PUSH
 419: LD_LOC 12
 423: PUSH
 424: LD_VAR 0 2
 428: ARRAY
 429: DIFF
 430: ST_TO_ADDR
// break ;
 431: GO 435
// end ;
 433: GO 375
 435: POP
 436: POP
// if not amhsold3 then
 437: LD_EXP 5
 441: NOT
 442: IFFALSE 478
// begin amhsold3 = other_survivors [ 1 ] ;
 444: LD_ADDR_EXP 5
 448: PUSH
 449: LD_LOC 12
 453: PUSH
 454: LD_INT 1
 456: ARRAY
 457: ST_TO_ADDR
// other_survivors = other_survivors diff other_survivors [ 1 ] ;
 458: LD_ADDR_LOC 12
 462: PUSH
 463: LD_LOC 12
 467: PUSH
 468: LD_LOC 12
 472: PUSH
 473: LD_INT 1
 475: ARRAY
 476: DIFF
 477: ST_TO_ADDR
// end ; savecharacters ( other_survivors , other_survivors ) ;
 478: LD_LOC 12
 482: PPUSH
 483: LD_STRING other_survivors
 485: PPUSH
 486: CALL_OW 38
// end else
 490: GO 515
// begin bobby = createcharacter ( Bobby ) ;
 492: LD_ADDR_LOC 2
 496: PUSH
 497: LD_STRING Bobby
 499: PPUSH
 500: CALL_OW 34
 504: ST_TO_ADDR
// amhsold3 = bobby ;
 505: LD_ADDR_EXP 5
 509: PUSH
 510: LD_LOC 2
 514: ST_TO_ADDR
// end else
 515: GO 540
// begin cyrus = createcharacter ( Cyrus ) ;
 517: LD_ADDR_LOC 3
 521: PUSH
 522: LD_STRING Cyrus
 524: PPUSH
 525: CALL_OW 34
 529: ST_TO_ADDR
// amhsold3 = cyrus ;
 530: LD_ADDR_EXP 5
 534: PUSH
 535: LD_LOC 3
 539: ST_TO_ADDR
// end else
 540: GO 565
// begin lisa = createcharacter ( Lisa ) ;
 542: LD_ADDR_LOC 4
 546: PUSH
 547: LD_STRING Lisa
 549: PPUSH
 550: CALL_OW 34
 554: ST_TO_ADDR
// amhsold3 = lisa ;
 555: LD_ADDR_EXP 5
 559: PUSH
 560: LD_LOC 4
 564: ST_TO_ADDR
// end ; if not testcharacters ( Frank ) or not checkcharacterset ( Frank ) then
 565: LD_STRING Frank
 567: PPUSH
 568: CALL_OW 28
 572: NOT
 573: PUSH
 574: LD_STRING Frank
 576: PPUSH
 577: CALL_OW 29
 581: NOT
 582: OR
 583: IFFALSE 595
// frank = 0 else
 585: LD_ADDR_LOC 5
 589: PUSH
 590: LD_INT 0
 592: ST_TO_ADDR
 593: GO 608
// frank = createcharacter ( Frank ) ;
 595: LD_ADDR_LOC 5
 599: PUSH
 600: LD_STRING Frank
 602: PPUSH
 603: CALL_OW 34
 607: ST_TO_ADDR
// lucyd = newcharacter ( Donaldson ) ;
 608: LD_ADDR_LOC 6
 612: PUSH
 613: LD_STRING Donaldson
 615: PPUSH
 616: CALL_OW 25
 620: ST_TO_ADDR
// if not lucyd then
 621: LD_LOC 6
 625: NOT
 626: IFFALSE 641
// buildquery ( neny Donaldson , [ OK ] ) ;
 628: LD_STRING neny Donaldson
 630: PPUSH
 631: LD_STRING OK
 633: PUSH
 634: EMPTY
 635: LIST
 636: PPUSH
 637: CALL_OW 99
// amhsold1 = newcharacter ( Brown ) ;
 641: LD_ADDR_LOC 8
 645: PUSH
 646: LD_STRING Brown
 648: PPUSH
 649: CALL_OW 25
 653: ST_TO_ADDR
// if not amhsold1 then
 654: LD_LOC 8
 658: NOT
 659: IFFALSE 674
// buildquery ( neny Brown , [ OK ] ) ;
 661: LD_STRING neny Brown
 663: PPUSH
 664: LD_STRING OK
 666: PUSH
 667: EMPTY
 668: LIST
 669: PPUSH
 670: CALL_OW 99
// setdir ( amhsold1 , 3 ) ;
 674: LD_LOC 8
 678: PPUSH
 679: LD_INT 3
 681: PPUSH
 682: CALL_OW 233
// placeunitxy ( amhsold1 , 55 , 24 , false ) ;
 686: LD_LOC 8
 690: PPUSH
 691: LD_INT 55
 693: PPUSH
 694: LD_INT 24
 696: PPUSH
 697: LD_INT 0
 699: PPUSH
 700: CALL_OW 48
// setdir ( amhsold3 , 3 ) ;
 704: LD_EXP 5
 708: PPUSH
 709: LD_INT 3
 711: PPUSH
 712: CALL_OW 233
// placeunitxy ( amhsold3 , 49 , 12 , false ) ;
 716: LD_EXP 5
 720: PPUSH
 721: LD_INT 49
 723: PPUSH
 724: LD_INT 12
 726: PPUSH
 727: LD_INT 0
 729: PPUSH
 730: CALL_OW 48
// placehumaninunit ( john , amvj ) ;
 734: LD_LOC 1
 738: PPUSH
 739: LD_INT 32
 741: PPUSH
 742: CALL_OW 52
// centeronxy ( 42 , 26 ) ;
 746: LD_INT 42
 748: PPUSH
 749: LD_INT 26
 751: PPUSH
 752: CALL_OW 84
// commovexy ( amvj , 53 , 24 ) ;
 756: LD_INT 32
 758: PPUSH
 759: LD_INT 53
 761: PPUSH
 762: LD_INT 24
 764: PPUSH
 765: CALL_OW 111
// addcomexitvehicle ( amvj ) ;
 769: LD_INT 32
 771: PPUSH
 772: CALL_OW 181
// end ;
 776: LD_VAR 0 1
 780: RET
// function saveitall ; var tmz , bz , tmzo ; begin
 781: LD_INT 0
 783: PPUSH
 784: PPUSH
 785: PPUSH
 786: PPUSH
// savecharacters ( john , JMM ) ;
 787: LD_LOC 1
 791: PPUSH
 792: LD_STRING JMM
 794: PPUSH
 795: CALL_OW 38
// if cyrus then
 799: LD_LOC 3
 803: IFFALSE 817
// savecharacters ( cyrus , Cyrus ) ;
 805: LD_LOC 3
 809: PPUSH
 810: LD_STRING Cyrus
 812: PPUSH
 813: CALL_OW 38
// if bobby then
 817: LD_LOC 2
 821: IFFALSE 835
// savecharacters ( bobby , Bobby ) ;
 823: LD_LOC 2
 827: PPUSH
 828: LD_STRING Bobby
 830: PPUSH
 831: CALL_OW 38
// if lisa then
 835: LD_LOC 4
 839: IFFALSE 853
// savecharacters ( lisa , Lisa ) ;
 841: LD_LOC 4
 845: PPUSH
 846: LD_STRING Lisa
 848: PPUSH
 849: CALL_OW 38
// savecharacters ( frank , Frank ) ;
 853: LD_LOC 5
 857: PPUSH
 858: LD_STRING Frank
 860: PPUSH
 861: CALL_OW 38
// savecharacters ( lucyd , Donaldson ) ;
 865: LD_LOC 6
 869: PPUSH
 870: LD_STRING Donaldson
 872: PPUSH
 873: CALL_OW 38
// savecharacters ( amhsold1 , Brown ) ;
 877: LD_LOC 8
 881: PPUSH
 882: LD_STRING Brown
 884: PPUSH
 885: CALL_OW 38
// savecharacters ( filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] ] ) diff [ john , cyrus , bobby , lisa , frank , lucyd , amhsold1 ] , otherGamma2 ) ;
 889: LD_INT 22
 891: PUSH
 892: LD_EXP 2
 896: PUSH
 897: EMPTY
 898: LIST
 899: LIST
 900: PUSH
 901: LD_INT 21
 903: PUSH
 904: LD_INT 1
 906: PUSH
 907: EMPTY
 908: LIST
 909: LIST
 910: PUSH
 911: EMPTY
 912: LIST
 913: LIST
 914: PPUSH
 915: CALL_OW 69
 919: PUSH
 920: LD_LOC 1
 924: PUSH
 925: LD_LOC 3
 929: PUSH
 930: LD_LOC 2
 934: PUSH
 935: LD_LOC 4
 939: PUSH
 940: LD_LOC 5
 944: PUSH
 945: LD_LOC 6
 949: PUSH
 950: LD_LOC 8
 954: PUSH
 955: EMPTY
 956: LIST
 957: LIST
 958: LIST
 959: LIST
 960: LIST
 961: LIST
 962: LIST
 963: DIFF
 964: PPUSH
 965: LD_STRING otherGamma2
 967: PPUSH
 968: CALL_OW 38
// if lisa then
 972: LD_LOC 4
 976: IFFALSE 1013
// if isdead ( lisa ) then
 978: LD_LOC 4
 982: PPUSH
 983: CALL_OW 301
 987: IFFALSE 1001
// savevariable ( 0 , LisaLoc ) else
 989: LD_INT 0
 991: PPUSH
 992: LD_STRING LisaLoc
 994: PPUSH
 995: CALL_OW 39
 999: GO 1011
// savevariable ( 2 , LisaLoc ) else
1001: LD_INT 2
1003: PPUSH
1004: LD_STRING LisaLoc
1006: PPUSH
1007: CALL_OW 39
1011: GO 1023
// savevariable ( 1 , LisaLoc ) ;
1013: LD_INT 1
1015: PPUSH
1016: LD_STRING LisaLoc
1018: PPUSH
1019: CALL_OW 39
// if bobby then
1023: LD_LOC 2
1027: IFFALSE 1064
// if isdead ( bobby ) then
1029: LD_LOC 2
1033: PPUSH
1034: CALL_OW 301
1038: IFFALSE 1052
// savevariable ( 0 , BobbyLoc ) else
1040: LD_INT 0
1042: PPUSH
1043: LD_STRING BobbyLoc
1045: PPUSH
1046: CALL_OW 39
1050: GO 1062
// savevariable ( 2 , BobbyLoc ) else
1052: LD_INT 2
1054: PPUSH
1055: LD_STRING BobbyLoc
1057: PPUSH
1058: CALL_OW 39
1062: GO 1074
// savevariable ( 1 , BobbyLoc ) ;
1064: LD_INT 1
1066: PPUSH
1067: LD_STRING BobbyLoc
1069: PPUSH
1070: CALL_OW 39
// if cyrus then
1074: LD_LOC 3
1078: IFFALSE 1115
// if isdead ( cyrus ) then
1080: LD_LOC 3
1084: PPUSH
1085: CALL_OW 301
1089: IFFALSE 1103
// savevariable ( 0 , CyrusLoc ) else
1091: LD_INT 0
1093: PPUSH
1094: LD_STRING CyrusLoc
1096: PPUSH
1097: CALL_OW 39
1101: GO 1113
// savevariable ( 2 , CyrusLoc ) else
1103: LD_INT 2
1105: PPUSH
1106: LD_STRING CyrusLoc
1108: PPUSH
1109: CALL_OW 39
1113: GO 1125
// savevariable ( 1 , CyrusLoc ) ;
1115: LD_INT 1
1117: PPUSH
1118: LD_STRING CyrusLoc
1120: PPUSH
1121: CALL_OW 39
// if frank then
1125: LD_LOC 5
1129: IFFALSE 1166
// if isdead ( frank ) then
1131: LD_LOC 5
1135: PPUSH
1136: CALL_OW 301
1140: IFFALSE 1154
// savevariable ( 0 , FrankLoc ) else
1142: LD_INT 0
1144: PPUSH
1145: LD_STRING FrankLoc
1147: PPUSH
1148: CALL_OW 39
1152: GO 1164
// savevariable ( 2 , FrankLoc ) else
1154: LD_INT 2
1156: PPUSH
1157: LD_STRING FrankLoc
1159: PPUSH
1160: CALL_OW 39
1164: GO 1176
// savevariable ( 1 , FrankLoc ) ;
1166: LD_INT 1
1168: PPUSH
1169: LD_STRING FrankLoc
1171: PPUSH
1172: CALL_OW 39
// if isdead ( amhsold1 ) then
1176: LD_LOC 8
1180: PPUSH
1181: CALL_OW 301
1185: IFFALSE 1199
// savevariable ( 0 , BrownLoc ) else
1187: LD_INT 0
1189: PPUSH
1190: LD_STRING BrownLoc
1192: PPUSH
1193: CALL_OW 39
1197: GO 1209
// savevariable ( 2 , BrownLoc ) ;
1199: LD_INT 2
1201: PPUSH
1202: LD_STRING BrownLoc
1204: PPUSH
1205: CALL_OW 39
// if isdead ( frank ) then
1209: LD_LOC 5
1213: PPUSH
1214: CALL_OW 301
1218: IFFALSE 1232
// savevariable ( 0 , DonaldsonLoc ) else
1220: LD_INT 0
1222: PPUSH
1223: LD_STRING DonaldsonLoc
1225: PPUSH
1226: CALL_OW 39
1230: GO 1242
// savevariable ( 2 , DonaldsonLoc ) ;
1232: LD_INT 2
1234: PPUSH
1235: LD_STRING DonaldsonLoc
1237: PPUSH
1238: CALL_OW 39
// tmz = filterunitsinarea ( ambase , [ [ f_or , [ f_side , amer ] , [ f_side , amer2 ] ] , [ f_nation , nation_american ] , [ f_btype , b_factory ] ] ) ;
1242: LD_ADDR_VAR 0 2
1246: PUSH
1247: LD_INT 2
1249: PPUSH
1250: LD_INT 2
1252: PUSH
1253: LD_INT 22
1255: PUSH
1256: LD_EXP 2
1260: PUSH
1261: EMPTY
1262: LIST
1263: LIST
1264: PUSH
1265: LD_INT 22
1267: PUSH
1268: LD_EXP 3
1272: PUSH
1273: EMPTY
1274: LIST
1275: LIST
1276: PUSH
1277: EMPTY
1278: LIST
1279: LIST
1280: LIST
1281: PUSH
1282: LD_INT 23
1284: PUSH
1285: LD_INT 1
1287: PUSH
1288: EMPTY
1289: LIST
1290: LIST
1291: PUSH
1292: LD_INT 30
1294: PUSH
1295: LD_INT 3
1297: PUSH
1298: EMPTY
1299: LIST
1300: LIST
1301: PUSH
1302: EMPTY
1303: LIST
1304: LIST
1305: LIST
1306: PPUSH
1307: CALL_OW 70
1311: ST_TO_ADDR
// tmz = tmz ^ filterunitsinarea ( ambase , [ [ f_or , [ f_side , amer ] , [ f_side , amer2 ] ] , [ f_nation , nation_american ] , [ f_type , unit_building ] , f_not , [ f_btype , b_factory ] ] ) ;
1312: LD_ADDR_VAR 0 2
1316: PUSH
1317: LD_VAR 0 2
1321: PUSH
1322: LD_INT 2
1324: PPUSH
1325: LD_INT 2
1327: PUSH
1328: LD_INT 22
1330: PUSH
1331: LD_EXP 2
1335: PUSH
1336: EMPTY
1337: LIST
1338: LIST
1339: PUSH
1340: LD_INT 22
1342: PUSH
1343: LD_EXP 3
1347: PUSH
1348: EMPTY
1349: LIST
1350: LIST
1351: PUSH
1352: EMPTY
1353: LIST
1354: LIST
1355: LIST
1356: PUSH
1357: LD_INT 23
1359: PUSH
1360: LD_INT 1
1362: PUSH
1363: EMPTY
1364: LIST
1365: LIST
1366: PUSH
1367: LD_INT 21
1369: PUSH
1370: LD_INT 3
1372: PUSH
1373: EMPTY
1374: LIST
1375: LIST
1376: PUSH
1377: LD_INT 3
1379: PUSH
1380: LD_INT 30
1382: PUSH
1383: LD_INT 3
1385: PUSH
1386: EMPTY
1387: LIST
1388: LIST
1389: PUSH
1390: EMPTY
1391: LIST
1392: LIST
1393: LIST
1394: LIST
1395: LIST
1396: PPUSH
1397: CALL_OW 70
1401: ADD
1402: ST_TO_ADDR
// tmzo = [ ] ;
1403: LD_ADDR_VAR 0 4
1407: PUSH
1408: EMPTY
1409: ST_TO_ADDR
// for bz in tmz do
1410: LD_ADDR_VAR 0 3
1414: PUSH
1415: LD_VAR 0 2
1419: PUSH
1420: FOR_IN
1421: IFFALSE 1778
// case getbtype ( bz ) of b_lab_basic , b_lab_weapon :
1423: LD_VAR 0 3
1427: PPUSH
1428: CALL_OW 266
1432: PUSH
1433: LD_INT 9
1435: DOUBLE
1436: EQUAL
1437: IFTRUE 1447
1439: LD_INT 10
1441: DOUBLE
1442: EQUAL
1443: IFTRUE 1447
1445: GO 1450
1447: POP
// begin end ; b_lab , b_lab_half , b_lab_full :
1448: GO 1776
1450: LD_INT 6
1452: DOUBLE
1453: EQUAL
1454: IFTRUE 1470
1456: LD_INT 7
1458: DOUBLE
1459: EQUAL
1460: IFTRUE 1470
1462: LD_INT 8
1464: DOUBLE
1465: EQUAL
1466: IFTRUE 1470
1468: GO 1583
1470: 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 :
1471: LD_ADDR_VAR 0 4
1475: PUSH
1476: LD_VAR 0 4
1480: PUSH
1481: LD_VAR 0 3
1485: PPUSH
1486: CALL_OW 250
1490: PUSH
1491: LD_VAR 0 3
1495: PPUSH
1496: CALL_OW 251
1500: PUSH
1501: LD_VAR 0 3
1505: PPUSH
1506: CALL_OW 254
1510: PUSH
1511: LD_VAR 0 3
1515: PPUSH
1516: CALL_OW 266
1520: PUSH
1521: LD_VAR 0 3
1525: PPUSH
1526: CALL_OW 267
1530: PUSH
1531: LD_VAR 0 3
1535: PPUSH
1536: CALL_OW 248
1540: PUSH
1541: LD_VAR 0 3
1545: PPUSH
1546: LD_INT 1
1548: PPUSH
1549: CALL_OW 268
1553: PUSH
1554: LD_VAR 0 3
1558: PPUSH
1559: LD_INT 2
1561: PPUSH
1562: CALL_OW 268
1566: PUSH
1567: EMPTY
1568: LIST
1569: LIST
1570: LIST
1571: LIST
1572: LIST
1573: LIST
1574: LIST
1575: LIST
1576: PUSH
1577: EMPTY
1578: LIST
1579: ADD
1580: ST_TO_ADDR
1581: GO 1776
1583: LD_INT 32
1585: DOUBLE
1586: EQUAL
1587: IFTRUE 1597
1589: LD_INT 33
1591: DOUBLE
1592: EQUAL
1593: IFTRUE 1597
1595: GO 1693
1597: POP
// tmzo = tmzo ^ [ [ getx ( bz ) , gety ( bz ) , getdir ( bz ) , getbtype ( bz ) , getblevel ( bz ) , getnation ( bz ) , getbweapon ( bz ) ] ] ; else
1598: LD_ADDR_VAR 0 4
1602: PUSH
1603: LD_VAR 0 4
1607: PUSH
1608: LD_VAR 0 3
1612: PPUSH
1613: CALL_OW 250
1617: PUSH
1618: LD_VAR 0 3
1622: PPUSH
1623: CALL_OW 251
1627: PUSH
1628: LD_VAR 0 3
1632: PPUSH
1633: CALL_OW 254
1637: PUSH
1638: LD_VAR 0 3
1642: PPUSH
1643: CALL_OW 266
1647: PUSH
1648: LD_VAR 0 3
1652: PPUSH
1653: CALL_OW 267
1657: PUSH
1658: LD_VAR 0 3
1662: PPUSH
1663: CALL_OW 248
1667: PUSH
1668: LD_VAR 0 3
1672: PPUSH
1673: CALL_OW 269
1677: PUSH
1678: EMPTY
1679: LIST
1680: LIST
1681: LIST
1682: LIST
1683: LIST
1684: LIST
1685: LIST
1686: PUSH
1687: EMPTY
1688: LIST
1689: ADD
1690: ST_TO_ADDR
1691: GO 1776
1693: POP
// tmzo = tmzo ^ [ [ getx ( bz ) , gety ( bz ) , getdir ( bz ) , getbtype ( bz ) , getblevel ( bz ) , getnation ( bz ) ] ] ; end ;
1694: LD_ADDR_VAR 0 4
1698: PUSH
1699: LD_VAR 0 4
1703: PUSH
1704: LD_VAR 0 3
1708: PPUSH
1709: CALL_OW 250
1713: PUSH
1714: LD_VAR 0 3
1718: PPUSH
1719: CALL_OW 251
1723: PUSH
1724: LD_VAR 0 3
1728: PPUSH
1729: CALL_OW 254
1733: PUSH
1734: LD_VAR 0 3
1738: PPUSH
1739: CALL_OW 266
1743: PUSH
1744: LD_VAR 0 3
1748: PPUSH
1749: CALL_OW 267
1753: PUSH
1754: LD_VAR 0 3
1758: PPUSH
1759: CALL_OW 248
1763: PUSH
1764: EMPTY
1765: LIST
1766: LIST
1767: LIST
1768: LIST
1769: LIST
1770: LIST
1771: PUSH
1772: EMPTY
1773: LIST
1774: ADD
1775: ST_TO_ADDR
1776: GO 1420
1778: POP
1779: POP
// savevariable ( tmzo , Gamma2 ) ;
1780: LD_VAR 0 4
1784: PPUSH
1785: LD_STRING Gamma2
1787: PPUSH
1788: CALL_OW 39
// end ;
1792: LD_VAR 0 1
1796: RET
// export rusove , rusove0 ; var rusove1 ; export healeri ; var brwr_lev , bunk_lev ; function prepare_units ; begin
1797: LD_INT 0
1799: PPUSH
// amer = 1 ;
1800: LD_ADDR_EXP 2
1804: PUSH
1805: LD_INT 1
1807: ST_TO_ADDR
// amer2 = 4 ;
1808: LD_ADDR_EXP 3
1812: PUSH
1813: LD_INT 4
1815: ST_TO_ADDR
// rus = 3 ;
1816: LD_ADDR_EXP 1
1820: PUSH
1821: LD_INT 3
1823: ST_TO_ADDR
// inituc ;
1824: CALL_OW 18
// inithc ;
1828: CALL_OW 19
// initvc ;
1832: CALL_OW 20
// initbc ;
1836: CALL_OW 21
// from_prev_mis ;
1840: CALL 0 0 0
// comenterunit ( rusoldff , rubunkff ) ;
1844: LD_INT 40
1846: PPUSH
1847: LD_INT 39
1849: PPUSH
1850: CALL_OW 120
// uc_nation = nation_russian ;
1854: LD_ADDR_OWVAR 21
1858: PUSH
1859: LD_INT 3
1861: ST_TO_ADDR
// uc_side = rus ;
1862: LD_ADDR_OWVAR 20
1866: PUSH
1867: LD_EXP 1
1871: ST_TO_ADDR
// case difficulty of 2 :
1872: LD_OWVAR 67
1876: PUSH
1877: LD_INT 2
1879: DOUBLE
1880: EQUAL
1881: IFTRUE 1885
1883: GO 1898
1885: POP
// preparemechanic ( sex_male , 1 ) ; 3 :
1886: LD_INT 1
1888: PPUSH
1889: LD_INT 1
1891: PPUSH
1892: CALL_OW 383
1896: GO 1941
1898: LD_INT 3
1900: DOUBLE
1901: EQUAL
1902: IFTRUE 1906
1904: GO 1919
1906: POP
// preparemechanic ( sex_male , 2 ) ; 1 :
1907: LD_INT 1
1909: PPUSH
1910: LD_INT 2
1912: PPUSH
1913: CALL_OW 383
1917: GO 1941
1919: LD_INT 1
1921: DOUBLE
1922: EQUAL
1923: IFTRUE 1927
1925: GO 1940
1927: POP
// preparemechanic ( sex_male , 0 ) ; end ;
1928: LD_INT 1
1930: PPUSH
1931: LD_INT 0
1933: PPUSH
1934: CALL_OW 383
1938: GO 1941
1940: POP
// hc_sex = sex_male ;
1941: LD_ADDR_OWVAR 27
1945: PUSH
1946: LD_INT 1
1948: ST_TO_ADDR
// ruhmech3 = createhuman ;
1949: LD_ADDR_EXP 22
1953: PUSH
1954: CALL_OW 44
1958: ST_TO_ADDR
// case difficulty of 2 :
1959: LD_OWVAR 67
1963: PUSH
1964: LD_INT 2
1966: DOUBLE
1967: EQUAL
1968: IFTRUE 1972
1970: GO 1991
1972: POP
// begin vc_chassis = ru_medium_wheeled ;
1973: LD_ADDR_OWVAR 37
1977: PUSH
1978: LD_INT 21
1980: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
1981: LD_ADDR_OWVAR 40
1985: PUSH
1986: LD_INT 42
1988: ST_TO_ADDR
// end ; 3 :
1989: GO 2019
1991: LD_INT 3
1993: DOUBLE
1994: EQUAL
1995: IFTRUE 1999
1997: GO 2018
1999: POP
// begin vc_chassis = ru_medium_wheeled ;
2000: LD_ADDR_OWVAR 37
2004: PUSH
2005: LD_INT 21
2007: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
2008: LD_ADDR_OWVAR 40
2012: PUSH
2013: LD_INT 43
2015: ST_TO_ADDR
// end ; end ;
2016: GO 2019
2018: POP
// vc_control = control_manual ;
2019: LD_ADDR_OWVAR 38
2023: PUSH
2024: LD_INT 1
2026: ST_TO_ADDR
// vc_engine = engine_combustion ;
2027: LD_ADDR_OWVAR 39
2031: PUSH
2032: LD_INT 1
2034: ST_TO_ADDR
// if difficulty > 1 then
2035: LD_OWVAR 67
2039: PUSH
2040: LD_INT 1
2042: GREATER
2043: IFFALSE 2057
// ruv2 = createvehicle else
2045: LD_ADDR_EXP 24
2049: PUSH
2050: CALL_OW 45
2054: ST_TO_ADDR
2055: GO 2065
// ruv2 = 0 ;
2057: LD_ADDR_EXP 24
2061: PUSH
2062: LD_INT 0
2064: ST_TO_ADDR
// setdir ( ruv2 , 5 ) ;
2065: LD_EXP 24
2069: PPUSH
2070: LD_INT 5
2072: PPUSH
2073: CALL_OW 233
// placeunitxy ( ruv2 , 72 , 91 , false ) ;
2077: LD_EXP 24
2081: PPUSH
2082: LD_INT 72
2084: PPUSH
2085: LD_INT 91
2087: PPUSH
2088: LD_INT 0
2090: PPUSH
2091: CALL_OW 48
// placehumaninunit ( ruhmech3 , ruv2 ) ;
2095: LD_EXP 22
2099: PPUSH
2100: LD_EXP 24
2104: PPUSH
2105: CALL_OW 52
// case difficulty of 2 :
2109: LD_OWVAR 67
2113: PUSH
2114: LD_INT 2
2116: DOUBLE
2117: EQUAL
2118: IFTRUE 2122
2120: GO 2135
2122: POP
// preparemechanic ( sex_male , 1 ) ; 3 :
2123: LD_INT 1
2125: PPUSH
2126: LD_INT 1
2128: PPUSH
2129: CALL_OW 383
2133: GO 2178
2135: LD_INT 3
2137: DOUBLE
2138: EQUAL
2139: IFTRUE 2143
2141: GO 2156
2143: POP
// preparemechanic ( sex_male , 2 ) ; 1 :
2144: LD_INT 1
2146: PPUSH
2147: LD_INT 2
2149: PPUSH
2150: CALL_OW 383
2154: GO 2178
2156: LD_INT 1
2158: DOUBLE
2159: EQUAL
2160: IFTRUE 2164
2162: GO 2177
2164: POP
// preparemechanic ( sex_male , 0 ) ; end ;
2165: LD_INT 1
2167: PPUSH
2168: LD_INT 0
2170: PPUSH
2171: CALL_OW 383
2175: GO 2178
2177: POP
// ruhmech5 = createhuman ;
2178: LD_ADDR_EXP 29
2182: PUSH
2183: CALL_OW 44
2187: ST_TO_ADDR
// case difficulty of 2 :
2188: LD_OWVAR 67
2192: PUSH
2193: LD_INT 2
2195: DOUBLE
2196: EQUAL
2197: IFTRUE 2201
2199: GO 2220
2201: POP
// begin vc_chassis = ru_medium_wheeled ;
2202: LD_ADDR_OWVAR 37
2206: PUSH
2207: LD_INT 21
2209: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
2210: LD_ADDR_OWVAR 40
2214: PUSH
2215: LD_INT 42
2217: ST_TO_ADDR
// end ; 3 :
2218: GO 2275
2220: LD_INT 3
2222: DOUBLE
2223: EQUAL
2224: IFTRUE 2228
2226: GO 2247
2228: POP
// begin vc_chassis = ru_medium_wheeled ;
2229: LD_ADDR_OWVAR 37
2233: PUSH
2234: LD_INT 21
2236: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
2237: LD_ADDR_OWVAR 40
2241: PUSH
2242: LD_INT 43
2244: ST_TO_ADDR
// end ; 1 :
2245: GO 2275
2247: LD_INT 1
2249: DOUBLE
2250: EQUAL
2251: IFTRUE 2255
2253: GO 2274
2255: POP
// begin vc_chassis = ru_medium_wheeled ;
2256: LD_ADDR_OWVAR 37
2260: PUSH
2261: LD_INT 21
2263: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
2264: LD_ADDR_OWVAR 40
2268: PUSH
2269: LD_INT 42
2271: ST_TO_ADDR
// end ; end ;
2272: GO 2275
2274: POP
// vc_control = control_manual ;
2275: LD_ADDR_OWVAR 38
2279: PUSH
2280: LD_INT 1
2282: ST_TO_ADDR
// vc_engine = engine_combustion ;
2283: LD_ADDR_OWVAR 39
2287: PUSH
2288: LD_INT 1
2290: ST_TO_ADDR
// ruv4 = createvehicle ;
2291: LD_ADDR_EXP 28
2295: PUSH
2296: CALL_OW 45
2300: ST_TO_ADDR
// setdir ( ruv4 , 5 ) ;
2301: LD_EXP 28
2305: PPUSH
2306: LD_INT 5
2308: PPUSH
2309: CALL_OW 233
// placeunitxy ( ruv4 , 68 , 69 , false ) ;
2313: LD_EXP 28
2317: PPUSH
2318: LD_INT 68
2320: PPUSH
2321: LD_INT 69
2323: PPUSH
2324: LD_INT 0
2326: PPUSH
2327: CALL_OW 48
// placehumaninunit ( ruhmech5 , ruv4 ) ;
2331: LD_EXP 29
2335: PPUSH
2336: LD_EXP 28
2340: PPUSH
2341: CALL_OW 52
// case difficulty of 2 :
2345: LD_OWVAR 67
2349: PUSH
2350: LD_INT 2
2352: DOUBLE
2353: EQUAL
2354: IFTRUE 2358
2356: GO 2377
2358: POP
// begin vc_chassis = ru_medium_wheeled ;
2359: LD_ADDR_OWVAR 37
2363: PUSH
2364: LD_INT 21
2366: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
2367: LD_ADDR_OWVAR 40
2371: PUSH
2372: LD_INT 42
2374: ST_TO_ADDR
// end ; 3 :
2375: GO 2405
2377: LD_INT 3
2379: DOUBLE
2380: EQUAL
2381: IFTRUE 2385
2383: GO 2404
2385: POP
// begin vc_chassis = ru_medium_wheeled ;
2386: LD_ADDR_OWVAR 37
2390: PUSH
2391: LD_INT 21
2393: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
2394: LD_ADDR_OWVAR 40
2398: PUSH
2399: LD_INT 43
2401: ST_TO_ADDR
// end ; end ;
2402: GO 2405
2404: POP
// vc_control = control_manual ;
2405: LD_ADDR_OWVAR 38
2409: PUSH
2410: LD_INT 1
2412: ST_TO_ADDR
// vc_engine = engine_combustion ;
2413: LD_ADDR_OWVAR 39
2417: PUSH
2418: LD_INT 1
2420: ST_TO_ADDR
// if difficulty > 1 then
2421: LD_OWVAR 67
2425: PUSH
2426: LD_INT 1
2428: GREATER
2429: IFFALSE 2443
// ruv1 = createvehicle else
2431: LD_ADDR_EXP 23
2435: PUSH
2436: CALL_OW 45
2440: ST_TO_ADDR
2441: GO 2451
// ruv1 = 0 ;
2443: LD_ADDR_EXP 23
2447: PUSH
2448: LD_INT 0
2450: ST_TO_ADDR
// setdir ( ruv1 , 5 ) ;
2451: LD_EXP 23
2455: PPUSH
2456: LD_INT 5
2458: PPUSH
2459: CALL_OW 233
// placeunitxy ( ruv1 , 80 , 85 , false ) ;
2463: LD_EXP 23
2467: PPUSH
2468: LD_INT 80
2470: PPUSH
2471: LD_INT 85
2473: PPUSH
2474: LD_INT 0
2476: PPUSH
2477: CALL_OW 48
// commoveunit ( ruhmech0 , ruv1 ) ;
2481: LD_INT 3
2483: PPUSH
2484: LD_EXP 23
2488: PPUSH
2489: CALL_OW 112
// commoveunit ( ruhmech2 , ruv0 ) ;
2493: LD_INT 29
2495: PPUSH
2496: LD_INT 7
2498: PPUSH
2499: CALL_OW 112
// rusove1 = [ ruv0 , ruhsold1 , ruhsold2 ] ;
2503: LD_ADDR_LOC 13
2507: PUSH
2508: LD_INT 7
2510: PUSH
2511: LD_INT 12
2513: PUSH
2514: LD_INT 10
2516: PUSH
2517: EMPTY
2518: LIST
2519: LIST
2520: LIST
2521: ST_TO_ADDR
// rusove2 = [ ruhsold6 , ruhsold7 , ruv4 ] ;
2522: LD_ADDR_EXP 17
2526: PUSH
2527: LD_INT 27
2529: PUSH
2530: LD_INT 28
2532: PUSH
2533: LD_EXP 28
2537: PUSH
2538: EMPTY
2539: LIST
2540: LIST
2541: LIST
2542: ST_TO_ADDR
// rusove = [ ruv1 , ruv2 , ruhsold0 ] ;
2543: LD_ADDR_EXP 31
2547: PUSH
2548: LD_EXP 23
2552: PUSH
2553: LD_EXP 24
2557: PUSH
2558: LD_INT 8
2560: PUSH
2561: EMPTY
2562: LIST
2563: LIST
2564: LIST
2565: ST_TO_ADDR
// rusove0 = [ ] ;
2566: LD_ADDR_EXP 32
2570: PUSH
2571: EMPTY
2572: ST_TO_ADDR
// healeri = [ ruhscie0 , ruhscie1 ] ;
2573: LD_ADDR_EXP 33
2577: PUSH
2578: LD_INT 37
2580: PUSH
2581: LD_INT 36
2583: PUSH
2584: EMPTY
2585: LIST
2586: LIST
2587: ST_TO_ADDR
// comremember ( rusove ) ;
2588: LD_EXP 31
2592: PPUSH
2593: CALL_OW 143
// commoveunit ( ruhmech1 , rubfact0 ) ;
2597: LD_INT 19
2599: PPUSH
2600: LD_INT 24
2602: PPUSH
2603: CALL_OW 112
// comremember ( rusove2 ) ;
2607: LD_EXP 17
2611: PPUSH
2612: CALL_OW 143
// comhold ( rusove2 ) ;
2616: LD_EXP 17
2620: PPUSH
2621: CALL_OW 140
// commoveunit ( ruhsold3 , rubbrwr0 ) ;
2625: LD_INT 11
2627: PPUSH
2628: LD_INT 26
2630: PPUSH
2631: CALL_OW 112
// commoveunit ( ruhsold4 , rubbrwr1 ) ;
2635: LD_INT 9
2637: PPUSH
2638: LD_INT 23
2640: PPUSH
2641: CALL_OW 112
// commoveunit ( ruhsold5 , rubbunk0 ) ;
2645: LD_INT 20
2647: PPUSH
2648: LD_INT 25
2650: PPUSH
2651: CALL_OW 112
// commovexy ( rusove1 , 47 , 51 ) ;
2655: LD_LOC 13
2659: PPUSH
2660: LD_INT 47
2662: PPUSH
2663: LD_INT 51
2665: PPUSH
2666: CALL_OW 111
// case difficulty of 2 :
2670: LD_OWVAR 67
2674: PUSH
2675: LD_INT 2
2677: DOUBLE
2678: EQUAL
2679: IFTRUE 2683
2681: GO 2783
2683: POP
// begin setskill ( [ ruhmech0 , ruhmech2 ] , skill_mechanical , 2 ) ;
2684: LD_INT 3
2686: PUSH
2687: LD_INT 29
2689: PUSH
2690: EMPTY
2691: LIST
2692: LIST
2693: PPUSH
2694: LD_INT 3
2696: PPUSH
2697: LD_INT 2
2699: PPUSH
2700: CALL_OW 237
// complaceweapon ( rubbunk0 , ru_gatling_gun ) ;
2704: LD_INT 25
2706: PPUSH
2707: LD_INT 43
2709: PPUSH
2710: CALL_OW 148
// setskill ( [ ruhsold2 , ruhsold6 , ruhsold7 ] , skill_combat , 3 ) ;
2714: LD_INT 10
2716: PUSH
2717: LD_INT 27
2719: PUSH
2720: LD_INT 28
2722: PUSH
2723: EMPTY
2724: LIST
2725: LIST
2726: LIST
2727: PPUSH
2728: LD_INT 1
2730: PPUSH
2731: LD_INT 3
2733: PPUSH
2734: CALL_OW 237
// setskill ( ruhsold1 , skill_combat , 2 ) ;
2738: LD_INT 12
2740: PPUSH
2741: LD_INT 1
2743: PPUSH
2744: LD_INT 2
2746: PPUSH
2747: CALL_OW 237
// setblevel ( [ rubbrwr0 , rubbrwr1 ] , 2 ) ;
2751: LD_INT 26
2753: PUSH
2754: LD_INT 23
2756: PUSH
2757: EMPTY
2758: LIST
2759: LIST
2760: PPUSH
2761: LD_INT 2
2763: PPUSH
2764: CALL_OW 241
// setblevel ( [ rubbunk0 ] , 2 ) ;
2768: LD_INT 25
2770: PUSH
2771: EMPTY
2772: LIST
2773: PPUSH
2774: LD_INT 2
2776: PPUSH
2777: CALL_OW 241
// end ; 3 :
2781: GO 3000
2783: LD_INT 3
2785: DOUBLE
2786: EQUAL
2787: IFTRUE 2791
2789: GO 2891
2791: POP
// begin setskill ( [ ruhmech0 , ruhmech2 ] , skill_mechanical , 2 ) ;
2792: LD_INT 3
2794: PUSH
2795: LD_INT 29
2797: PUSH
2798: EMPTY
2799: LIST
2800: LIST
2801: PPUSH
2802: LD_INT 3
2804: PPUSH
2805: LD_INT 2
2807: PPUSH
2808: CALL_OW 237
// complaceweapon ( rubbunk0 , ru_gun ) ;
2812: LD_INT 25
2814: PPUSH
2815: LD_INT 44
2817: PPUSH
2818: CALL_OW 148
// setskill ( [ ruhsold1 , ruhsold6 , ruhsold7 ] , skill_combat , 3 ) ;
2822: LD_INT 12
2824: PUSH
2825: LD_INT 27
2827: PUSH
2828: LD_INT 28
2830: PUSH
2831: EMPTY
2832: LIST
2833: LIST
2834: LIST
2835: PPUSH
2836: LD_INT 1
2838: PPUSH
2839: LD_INT 3
2841: PPUSH
2842: CALL_OW 237
// setskill ( ruhsold2 , skill_combat , 4 ) ;
2846: LD_INT 10
2848: PPUSH
2849: LD_INT 1
2851: PPUSH
2852: LD_INT 4
2854: PPUSH
2855: CALL_OW 237
// setblevel ( [ rubbrwr0 , rubbrwr1 ] , 4 ) ;
2859: LD_INT 26
2861: PUSH
2862: LD_INT 23
2864: PUSH
2865: EMPTY
2866: LIST
2867: LIST
2868: PPUSH
2869: LD_INT 4
2871: PPUSH
2872: CALL_OW 241
// setblevel ( [ rubbunk0 ] , 5 ) ;
2876: LD_INT 25
2878: PUSH
2879: EMPTY
2880: LIST
2881: PPUSH
2882: LD_INT 5
2884: PPUSH
2885: CALL_OW 241
// end ; 1 :
2889: GO 3000
2891: LD_INT 1
2893: DOUBLE
2894: EQUAL
2895: IFTRUE 2899
2897: GO 2999
2899: POP
// begin setskill ( [ ruhmech0 , ruhmech2 ] , skill_mechanical , 1 ) ;
2900: LD_INT 3
2902: PUSH
2903: LD_INT 29
2905: PUSH
2906: EMPTY
2907: LIST
2908: LIST
2909: PPUSH
2910: LD_INT 3
2912: PPUSH
2913: LD_INT 1
2915: PPUSH
2916: CALL_OW 237
// complaceweapon ( rubbunk0 , ru_heavy_machine_gun ) ;
2920: LD_INT 25
2922: PPUSH
2923: LD_INT 42
2925: PPUSH
2926: CALL_OW 148
// setskill ( [ ruhsold2 , ruhsold6 , ruhsold7 ] , skill_combat , 1 ) ;
2930: LD_INT 10
2932: PUSH
2933: LD_INT 27
2935: PUSH
2936: LD_INT 28
2938: PUSH
2939: EMPTY
2940: LIST
2941: LIST
2942: LIST
2943: PPUSH
2944: LD_INT 1
2946: PPUSH
2947: LD_INT 1
2949: PPUSH
2950: CALL_OW 237
// setskill ( ruhsold1 , skill_combat , 0 ) ;
2954: LD_INT 12
2956: PPUSH
2957: LD_INT 1
2959: PPUSH
2960: LD_INT 0
2962: PPUSH
2963: CALL_OW 237
// setblevel ( [ rubbrwr0 , rubbrwr1 ] , 1 ) ;
2967: LD_INT 26
2969: PUSH
2970: LD_INT 23
2972: PUSH
2973: EMPTY
2974: LIST
2975: LIST
2976: PPUSH
2977: LD_INT 1
2979: PPUSH
2980: CALL_OW 241
// setblevel ( [ rubbunk0 ] , 0 ) ;
2984: LD_INT 25
2986: PUSH
2987: EMPTY
2988: LIST
2989: PPUSH
2990: LD_INT 0
2992: PPUSH
2993: CALL_OW 241
// end ; end ;
2997: GO 3000
2999: POP
// brwr_lev = [ 1 , 3 , 5 ] [ difficulty ] ;
3000: LD_ADDR_LOC 14
3004: PUSH
3005: LD_INT 1
3007: PUSH
3008: LD_INT 3
3010: PUSH
3011: LD_INT 5
3013: PUSH
3014: EMPTY
3015: LIST
3016: LIST
3017: LIST
3018: PUSH
3019: LD_OWVAR 67
3023: ARRAY
3024: ST_TO_ADDR
// bunk_lev = [ 0 , 2 , 4 ] [ difficulty ] ;
3025: LD_ADDR_LOC 15
3029: PUSH
3030: LD_INT 0
3032: PUSH
3033: LD_INT 2
3035: PUSH
3036: LD_INT 4
3038: PUSH
3039: EMPTY
3040: LIST
3041: LIST
3042: LIST
3043: PUSH
3044: LD_OWVAR 67
3048: ARRAY
3049: ST_TO_ADDR
// end ;
3050: LD_VAR 0 1
3054: RET
// var supply , which_dlg ; var opev_start ; var flaka_se ; export retreat ; var chciplo , zbaven_veleni ; export poskoz , pacienti ; var dial1_ended ; export hr_lidi , hr_auta ; export mpora ; export mpard ; export prebytek , debug ; var revealed , hint_capt ; export brownIsDead , donaldsonIsDead ; starting begin disable ( 02 ) ;
3055: LD_INT 2
3057: DISABLE_MARKED
// setbname ( ambdept0 , gamma ) ;
3058: LD_INT 4
3060: PPUSH
3061: LD_STRING gamma
3063: PPUSH
3064: CALL_OW 500
// debug = false ;
3068: LD_ADDR_EXP 42
3072: PUSH
3073: LD_INT 0
3075: ST_TO_ADDR
// if debug then
3076: LD_EXP 42
3080: IFFALSE 3089
// msg ( Bacha, debug is ON! ) ;
3082: LD_STRING Bacha, debug is ON!
3084: PPUSH
3085: CALL_OW 100
// amer = 1 ;
3089: LD_ADDR_EXP 2
3093: PUSH
3094: LD_INT 1
3096: ST_TO_ADDR
// rus = 3 ;
3097: LD_ADDR_EXP 1
3101: PUSH
3102: LD_INT 3
3104: ST_TO_ADDR
// setresourcevisibility ( 42 , 54 , rus ) ;
3105: LD_INT 42
3107: PPUSH
3108: LD_INT 54
3110: PPUSH
3111: LD_EXP 1
3115: PPUSH
3116: CALL_OW 441
// revealfogarea ( amer , odrkfog ) ;
3120: LD_EXP 2
3124: PPUSH
3125: LD_INT 14
3127: PPUSH
3128: CALL_OW 332
// brownIsDead := true ;
3132: LD_ADDR_EXP 43
3136: PUSH
3137: LD_INT 1
3139: ST_TO_ADDR
// donaldsonIsDead := true ;
3140: LD_ADDR_EXP 44
3144: PUSH
3145: LD_INT 1
3147: ST_TO_ADDR
// rubbunk1 = 0 ;
3148: LD_ADDR_EXP 15
3152: PUSH
3153: LD_INT 0
3155: ST_TO_ADDR
// rubbrwr2 = 0 ;
3156: LD_ADDR_EXP 16
3160: PUSH
3161: LD_INT 0
3163: ST_TO_ADDR
// ruboilp1 = 0 ;
3164: LD_ADDR_LOC 33
3168: PUSH
3169: LD_INT 0
3171: ST_TO_ADDR
// rubwrks0 = 0 ;
3172: LD_ADDR_LOC 32
3176: PUSH
3177: LD_INT 0
3179: ST_TO_ADDR
// revealed = 0 ;
3180: LD_ADDR_LOC 23
3184: PUSH
3185: LD_INT 0
3187: ST_TO_ADDR
// randomize ;
3188: CALL_OW 10
// dial1_ended = false ;
3192: LD_ADDR_LOC 22
3196: PUSH
3197: LD_INT 0
3199: ST_TO_ADDR
// hint_capt = false ;
3200: LD_ADDR_LOC 24
3204: PUSH
3205: LD_INT 0
3207: ST_TO_ADDR
// case difficulty of 1 :
3208: LD_OWVAR 67
3212: PUSH
3213: LD_INT 1
3215: DOUBLE
3216: EQUAL
3217: IFTRUE 3221
3219: GO 3271
3221: POP
// begin hr_lidi = 450 ;
3222: LD_ADDR_EXP 37
3226: PUSH
3227: LD_INT 450
3229: ST_TO_ADDR
// hr_auta = 490 ;
3230: LD_ADDR_EXP 38
3234: PUSH
3235: LD_INT 490
3237: ST_TO_ADDR
// mpora = 2 ;
3238: LD_ADDR_EXP 39
3242: PUSH
3243: LD_INT 2
3245: ST_TO_ADDR
// mpard = 0 ;
3246: LD_ADDR_EXP 40
3250: PUSH
3251: LD_INT 0
3253: ST_TO_ADDR
// settech ( tech_tech1 , rus , state_enabled ) ;
3254: LD_INT 48
3256: PPUSH
3257: LD_EXP 1
3261: PPUSH
3262: LD_INT 1
3264: PPUSH
3265: CALL_OW 322
// end ; 2 :
3269: GO 3388
3271: LD_INT 2
3273: DOUBLE
3274: EQUAL
3275: IFTRUE 3279
3277: GO 3329
3279: POP
// begin hr_lidi = 487 ;
3280: LD_ADDR_EXP 37
3284: PUSH
3285: LD_INT 487
3287: ST_TO_ADDR
// hr_auta = 532 ;
3288: LD_ADDR_EXP 38
3292: PUSH
3293: LD_INT 532
3295: ST_TO_ADDR
// mpora = 3 ;
3296: LD_ADDR_EXP 39
3300: PUSH
3301: LD_INT 3
3303: ST_TO_ADDR
// mpard = 1 ;
3304: LD_ADDR_EXP 40
3308: PUSH
3309: LD_INT 1
3311: ST_TO_ADDR
// settech ( tech_tech1 , rus , state_enabled ) ;
3312: LD_INT 48
3314: PPUSH
3315: LD_EXP 1
3319: PPUSH
3320: LD_INT 1
3322: PPUSH
3323: CALL_OW 322
// end ; 3 :
3327: GO 3388
3329: LD_INT 3
3331: DOUBLE
3332: EQUAL
3333: IFTRUE 3337
3335: GO 3387
3337: POP
// begin hr_lidi = 524 ;
3338: LD_ADDR_EXP 37
3342: PUSH
3343: LD_INT 524
3345: ST_TO_ADDR
// hr_auta = 574 ;
3346: LD_ADDR_EXP 38
3350: PUSH
3351: LD_INT 574
3353: ST_TO_ADDR
// mpora = 4 ;
3354: LD_ADDR_EXP 39
3358: PUSH
3359: LD_INT 4
3361: ST_TO_ADDR
// mpard = 3 ;
3362: LD_ADDR_EXP 40
3366: PUSH
3367: LD_INT 3
3369: ST_TO_ADDR
// settech ( tech_tech1 , rus , state_researched ) ;
3370: LD_INT 48
3372: PPUSH
3373: LD_EXP 1
3377: PPUSH
3378: LD_INT 2
3380: PPUSH
3381: CALL_OW 322
// end ; end ;
3385: GO 3388
3387: POP
// powerhint = false ;
3388: LD_ADDR_LOC 31
3392: PUSH
3393: LD_INT 0
3395: ST_TO_ADDR
// which_dlg = 0 ;
3396: LD_ADDR_LOC 17
3400: PUSH
3401: LD_INT 0
3403: ST_TO_ADDR
// zbaven_veleni = false ;
3404: LD_ADDR_LOC 21
3408: PUSH
3409: LD_INT 0
3411: ST_TO_ADDR
// chciplo = 8 ;
3412: LD_ADDR_LOC 20
3416: PUSH
3417: LD_INT 8
3419: ST_TO_ADDR
// depot_done = false ;
3420: LD_ADDR_EXP 30
3424: PUSH
3425: LD_INT 0
3427: ST_TO_ADDR
// rubdepo0 = 0 ;
3428: LD_ADDR_EXP 14
3432: PUSH
3433: LD_INT 0
3435: ST_TO_ADDR
// ruboilp1 = 0 ;
3436: LD_ADDR_LOC 33
3440: PUSH
3441: LD_INT 0
3443: ST_TO_ADDR
// bunker_done = false ;
3444: LD_ADDR_EXP 19
3448: PUSH
3449: LD_INT 0
3451: ST_TO_ADDR
// brwr_done = false ;
3452: LD_ADDR_EXP 20
3456: PUSH
3457: LD_INT 0
3459: ST_TO_ADDR
// attacking = false ;
3460: LD_ADDR_EXP 18
3464: PUSH
3465: LD_INT 0
3467: ST_TO_ADDR
// opev_start = false ;
3468: LD_ADDR_LOC 18
3472: PUSH
3473: LD_INT 0
3475: ST_TO_ADDR
// rubase1_gone = false ;
3476: LD_ADDR_EXP 21
3480: PUSH
3481: LD_INT 0
3483: ST_TO_ADDR
// build_wrks = false ;
3484: LD_ADDR_LOC 11
3488: PUSH
3489: LD_INT 0
3491: ST_TO_ADDR
// flaka_se = false ;
3492: LD_ADDR_LOC 19
3496: PUSH
3497: LD_INT 0
3499: ST_TO_ADDR
// vracet_se = true ;
3500: LD_ADDR_EXP 58
3504: PUSH
3505: LD_INT 1
3507: ST_TO_ADDR
// retreat = false ;
3508: LD_ADDR_EXP 34
3512: PUSH
3513: LD_INT 0
3515: ST_TO_ADDR
// rubbunk1 = 0 ;
3516: LD_ADDR_EXP 15
3520: PUSH
3521: LD_INT 0
3523: ST_TO_ADDR
// poskoz = [ ] ;
3524: LD_ADDR_EXP 35
3528: PUSH
3529: EMPTY
3530: ST_TO_ADDR
// prebytek = [ ] ;
3531: LD_ADDR_EXP 41
3535: PUSH
3536: EMPTY
3537: ST_TO_ADDR
// pacienti = [ ] ;
3538: LD_ADDR_EXP 36
3542: PUSH
3543: EMPTY
3544: ST_TO_ADDR
// supply = 11 ;
3545: LD_ADDR_LOC 16
3549: PUSH
3550: LD_INT 11
3552: ST_TO_ADDR
// bu1_done = false ;
3553: LD_ADDR_LOC 26
3557: PUSH
3558: LD_INT 0
3560: ST_TO_ADDR
// br2_done = false ;
3561: LD_ADDR_LOC 27
3565: PUSH
3566: LD_INT 0
3568: ST_TO_ADDR
// op1_done = false ;
3569: LD_ADDR_LOC 28
3573: PUSH
3574: LD_INT 0
3576: ST_TO_ADDR
// oilpowpldone = false ;
3577: LD_ADDR_LOC 29
3581: PUSH
3582: LD_INT 0
3584: ST_TO_ADDR
// scndoildrill = false ;
3585: LD_ADDR_LOC 30
3589: PUSH
3590: LD_INT 0
3592: ST_TO_ADDR
// ingameon ;
3593: CALL_OW 8
// prepare_units ;
3597: CALL 1797 0 0
// comhold ( [ john , amhsold0 , amhsold1 , amhmech0 , bobby , cyrus , lisa ] ) ;
3601: LD_LOC 1
3605: PUSH
3606: LD_INT 34
3608: PUSH
3609: LD_LOC 8
3613: PUSH
3614: LD_INT 17
3616: PUSH
3617: LD_LOC 2
3621: PUSH
3622: LD_LOC 3
3626: PUSH
3627: LD_LOC 4
3631: PUSH
3632: EMPTY
3633: LIST
3634: LIST
3635: LIST
3636: LIST
3637: LIST
3638: LIST
3639: LIST
3640: PPUSH
3641: CALL_OW 140
// wait ( 0 0$4 ) ;
3645: LD_INT 140
3647: PPUSH
3648: CALL_OW 67
// centeronxy ( 53 , 21 ) ;
3652: LD_INT 53
3654: PPUSH
3655: LD_INT 21
3657: PPUSH
3658: CALL_OW 84
// end ;
3662: END
// function auto_ve_zlutem ; var tmp , tmp1 ; begin
3663: LD_INT 0
3665: PPUSH
3666: PPUSH
3667: PPUSH
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_vehicle ] ] ) ;
3668: LD_ADDR_VAR 0 2
3672: PUSH
3673: LD_INT 22
3675: PUSH
3676: LD_EXP 2
3680: PUSH
3681: EMPTY
3682: LIST
3683: LIST
3684: PUSH
3685: LD_INT 21
3687: PUSH
3688: LD_INT 2
3690: PUSH
3691: EMPTY
3692: LIST
3693: LIST
3694: PUSH
3695: EMPTY
3696: LIST
3697: LIST
3698: PPUSH
3699: CALL_OW 69
3703: ST_TO_ADDR
// for tmp1 in tmp do
3704: LD_ADDR_VAR 0 3
3708: PUSH
3709: LD_VAR 0 2
3713: PUSH
3714: FOR_IN
3715: IFFALSE 3746
// if getlives ( tmp1 ) < hranice_zraneni then
3717: LD_VAR 0 3
3721: PPUSH
3722: CALL_OW 256
3726: PUSH
3727: LD_INT 500
3729: LESS
3730: IFFALSE 3744
// begin result = true ;
3732: LD_ADDR_VAR 0 1
3736: PUSH
3737: LD_INT 1
3739: ST_TO_ADDR
// exit ;
3740: POP
3741: POP
3742: GO 3756
// end ;
3744: GO 3714
3746: POP
3747: POP
// result = false ;
3748: LD_ADDR_VAR 0 1
3752: PUSH
3753: LD_INT 0
3755: ST_TO_ADDR
// end ;
3756: LD_VAR 0 1
3760: RET
// every 0 0$1 trigger auto_ve_zlutem do
3761: CALL 3663 0 0
3765: IFFALSE 3777
3767: GO 3769
3769: DISABLE
// hint ( Repair ) ;
3770: LD_STRING Repair
3772: PPUSH
3773: CALL_OW 339
3777: END
// on unitgoestored ( un ) marked 13 do if ( difficulty = 2 ) and ( un = rubdepo0 ) then
3778: LD_OWVAR 67
3782: PUSH
3783: LD_INT 2
3785: EQUAL
3786: PUSH
3787: LD_VAR 0 1
3791: PUSH
3792: LD_EXP 14
3796: EQUAL
3797: AND
3798: IFFALSE 3817
// begin settech ( tech_tech1 , rus , state_researched ) ;
3800: LD_INT 48
3802: PPUSH
3803: LD_EXP 1
3807: PPUSH
3808: LD_INT 2
3810: PPUSH
3811: CALL_OW 322
// end else
3815: GO 3877
// if ( not hint_capt ) and ( un in filterallunits ( [ [ f_side , rus ] , [ f_type , unit_vehicle ] ] ) ) then
3817: LD_LOC 24
3821: NOT
3822: PUSH
3823: LD_VAR 0 1
3827: PUSH
3828: LD_INT 22
3830: PUSH
3831: LD_EXP 1
3835: PUSH
3836: EMPTY
3837: LIST
3838: LIST
3839: PUSH
3840: LD_INT 21
3842: PUSH
3843: LD_INT 2
3845: PUSH
3846: EMPTY
3847: LIST
3848: LIST
3849: PUSH
3850: EMPTY
3851: LIST
3852: LIST
3853: PPUSH
3854: CALL_OW 69
3858: IN
3859: AND
3860: IFFALSE 3877
// begin hint_capt = true ;
3862: LD_ADDR_LOC 24
3866: PUSH
3867: LD_INT 1
3869: ST_TO_ADDR
// hint ( CapturingVehicles1 ) ;
3870: LD_STRING CapturingVehicles1
3872: PPUSH
3873: CALL_OW 339
// end ;
3877: PPOPN 1
3879: END
// every 0 0$1 trigger see ( amer , rubdepo0 ) or see ( amer , rubwrks0 ) do
3880: LD_EXP 2
3884: PPUSH
3885: LD_EXP 14
3889: PPUSH
3890: CALL_OW 292
3894: PUSH
3895: LD_EXP 2
3899: PPUSH
3900: LD_LOC 32
3904: PPUSH
3905: CALL_OW 292
3909: OR
3910: IFFALSE 3922
3912: GO 3914
3914: DISABLE
// begin hint ( Capturing2 ) ;
3915: LD_STRING Capturing2
3917: PPUSH
3918: CALL_OW 339
// end ;
3922: END
// every 0 0$1 trigger isinunit ( john ) = false do
3923: LD_LOC 1
3927: PPUSH
3928: CALL_OW 310
3932: PUSH
3933: LD_INT 0
3935: EQUAL
3936: IFFALSE 4384
3938: GO 3940
3940: DISABLE
// begin centeronunits ( john ) ;
3941: LD_LOC 1
3945: PPUSH
3946: CALL_OW 85
// commovexy ( john , 50 , 14 ) ;
3950: LD_LOC 1
3954: PPUSH
3955: LD_INT 50
3957: PPUSH
3958: LD_INT 14
3960: PPUSH
3961: CALL_OW 111
// commovexy ( amhsold1 , 50 , 14 ) ;
3965: LD_LOC 8
3969: PPUSH
3970: LD_INT 50
3972: PPUSH
3973: LD_INT 14
3975: PPUSH
3976: CALL_OW 111
// say ( john , D1-JMM-1 ) ;
3980: LD_LOC 1
3984: PPUSH
3985: LD_STRING D1-JMM-1
3987: PPUSH
3988: CALL_OW 88
// centeronxy ( 50 , 14 ) ;
3992: LD_INT 50
3994: PPUSH
3995: LD_INT 14
3997: PPUSH
3998: CALL_OW 84
// say ( amhsold1 , D1-Brown-1 ) ;
4002: LD_LOC 8
4006: PPUSH
4007: LD_STRING D1-Brown-1
4009: PPUSH
4010: CALL_OW 88
// say ( john , D1-JMM-2 ) ;
4014: LD_LOC 1
4018: PPUSH
4019: LD_STRING D1-JMM-2
4021: PPUSH
4022: CALL_OW 88
// say ( amhsold1 , D1-Brown-2 ) ;
4026: LD_LOC 8
4030: PPUSH
4031: LD_STRING D1-Brown-2
4033: PPUSH
4034: CALL_OW 88
// say ( amhsold0 , D1-FSol1-2 ) ;
4038: LD_INT 34
4040: PPUSH
4041: LD_STRING D1-FSol1-2
4043: PPUSH
4044: CALL_OW 88
// say ( amhmech0 , D1-Sol2-2 ) ;
4048: LD_INT 17
4050: PPUSH
4051: LD_STRING D1-Sol2-2
4053: PPUSH
4054: CALL_OW 88
// if bobby then
4058: LD_LOC 2
4062: IFFALSE 4076
// say ( bobby , D1-Bobby-2 ) ;
4064: LD_LOC 2
4068: PPUSH
4069: LD_STRING D1-Bobby-2
4071: PPUSH
4072: CALL_OW 88
// if cyrus then
4076: LD_LOC 3
4080: IFFALSE 4094
// say ( cyrus , D1-Cyrus-2 ) ;
4082: LD_LOC 3
4086: PPUSH
4087: LD_STRING D1-Cyrus-2
4089: PPUSH
4090: CALL_OW 88
// if lisa then
4094: LD_LOC 4
4098: IFFALSE 4112
// say ( lisa , D1-Lisa-2 ) ;
4100: LD_LOC 4
4104: PPUSH
4105: LD_STRING D1-Lisa-2
4107: PPUSH
4108: CALL_OW 88
// say ( john , D1-JMM-3 ) ;
4112: LD_LOC 1
4116: PPUSH
4117: LD_STRING D1-JMM-3
4119: PPUSH
4120: CALL_OW 88
// commovexy ( john , 42 , 6 ) ;
4124: LD_LOC 1
4128: PPUSH
4129: LD_INT 42
4131: PPUSH
4132: LD_INT 6
4134: PPUSH
4135: CALL_OW 111
// wait ( 0 0$2.2 ) ;
4139: LD_INT 77
4141: PPUSH
4142: CALL_OW 67
// centeronunits ( john ) ;
4146: LD_LOC 1
4150: PPUSH
4151: CALL_OW 85
// say ( john , D1-JMM-3a ) ;
4155: LD_LOC 1
4159: PPUSH
4160: LD_STRING D1-JMM-3a
4162: PPUSH
4163: CALL_OW 88
// say ( amhsold1 , D1-Brown-3 ) ;
4167: LD_LOC 8
4171: PPUSH
4172: LD_STRING D1-Brown-3
4174: PPUSH
4175: CALL_OW 88
// sayradio ( rh , D1-Har-3 ) ;
4179: LD_EXP 4
4183: PPUSH
4184: LD_STRING D1-Har-3
4186: PPUSH
4187: CALL_OW 94
// say ( john , D1-JMM-4 ) ;
4191: LD_LOC 1
4195: PPUSH
4196: LD_STRING D1-JMM-4
4198: PPUSH
4199: CALL_OW 88
// sayradio ( rh , D1-Har-4 ) ;
4203: LD_EXP 4
4207: PPUSH
4208: LD_STRING D1-Har-4
4210: PPUSH
4211: CALL_OW 94
// say ( john , D1-JMM-5 ) ;
4215: LD_LOC 1
4219: PPUSH
4220: LD_STRING D1-JMM-5
4222: PPUSH
4223: CALL_OW 88
// sayradio ( rh , D1-Har-5 ) ;
4227: LD_EXP 4
4231: PPUSH
4232: LD_STRING D1-Har-5
4234: PPUSH
4235: CALL_OW 94
// say ( john , D1-JMM-6 ) ;
4239: LD_LOC 1
4243: PPUSH
4244: LD_STRING D1-JMM-6
4246: PPUSH
4247: CALL_OW 88
// ingameoff ;
4251: CALL_OW 9
// saveforquickrestart ;
4255: CALL_OW 22
// wait ( 0 0$0.7 ) ;
4259: LD_INT 24
4261: PPUSH
4262: CALL_OW 67
// changemissionobjectives ( M1 ) ;
4266: LD_STRING M1
4268: PPUSH
4269: CALL_OW 337
// comfree ( [ john , amhsold0 , amhsold1 , amhmech0 , bobby , cyrus , lisa ] ) ;
4273: LD_LOC 1
4277: PUSH
4278: LD_INT 34
4280: PUSH
4281: LD_LOC 8
4285: PUSH
4286: LD_INT 17
4288: PUSH
4289: LD_LOC 2
4293: PUSH
4294: LD_LOC 3
4298: PUSH
4299: LD_LOC 4
4303: PUSH
4304: EMPTY
4305: LIST
4306: LIST
4307: LIST
4308: LIST
4309: LIST
4310: LIST
4311: LIST
4312: PPUSH
4313: CALL_OW 139
// wait ( 0 0$1 ) ;
4317: LD_INT 35
4319: PPUSH
4320: CALL_OW 67
// hint ( Oil ) ;
4324: LD_STRING Oil
4326: PPUSH
4327: CALL_OW 339
// rubdepo0 = combuild ( ruhengi1 , b_depot , 50 , 61 , 5 ) ;
4331: LD_ADDR_EXP 14
4335: PUSH
4336: LD_INT 18
4338: PPUSH
4339: LD_INT 0
4341: PPUSH
4342: LD_INT 50
4344: PPUSH
4345: LD_INT 61
4347: PPUSH
4348: LD_INT 5
4350: PPUSH
4351: CALL_OW 145
4355: ST_TO_ADDR
// commovexy ( ruhengi0 , 50 , 57 ) ;
4356: LD_INT 2
4358: PPUSH
4359: LD_INT 50
4361: PPUSH
4362: LD_INT 57
4364: PPUSH
4365: CALL_OW 111
// wait ( 0 0$10 ) ;
4369: LD_INT 350
4371: PPUSH
4372: CALL_OW 67
// dial1_ended = true ;
4376: LD_ADDR_LOC 22
4380: PUSH
4381: LD_INT 1
4383: ST_TO_ADDR
// end ;
4384: END
// every 0 0$2 + 1 1$0 trigger dial1_ended do
4385: LD_LOC 22
4389: IFFALSE 4464
4391: GO 4393
4393: DISABLE
// begin if not unitfilter ( [ ambwrks0 ] , [ [ f_btype , b_factory ] ] ) then
4394: LD_INT 5
4396: PUSH
4397: EMPTY
4398: LIST
4399: PPUSH
4400: LD_INT 30
4402: PUSH
4403: LD_INT 3
4405: PUSH
4406: EMPTY
4407: LIST
4408: LIST
4409: PUSH
4410: EMPTY
4411: LIST
4412: PPUSH
4413: CALL_OW 72
4417: NOT
4418: IFFALSE 4464
// begin dialogueon ;
4420: CALL_OW 6
// say ( amhmech0 , D9-Mech1-1 ) ;
4424: LD_INT 17
4426: PPUSH
4427: LD_STRING D9-Mech1-1
4429: PPUSH
4430: CALL_OW 88
// say ( john , D9-JMM-1 ) ;
4434: LD_LOC 1
4438: PPUSH
4439: LD_STRING D9-JMM-1
4441: PPUSH
4442: CALL_OW 88
// dialogueoff ;
4446: CALL_OW 7
// wait ( 0 0$1 ) ;
4450: LD_INT 35
4452: PPUSH
4453: CALL_OW 67
// hint ( Upgrade ) ;
4457: LD_STRING Upgrade
4459: PPUSH
4460: CALL_OW 339
// end ; end ;
4464: END
// on upgradecomplete ( un ) do if getbtype ( un ) = b_factory then
4465: LD_VAR 0 1
4469: PPUSH
4470: CALL_OW 266
4474: PUSH
4475: LD_INT 3
4477: EQUAL
4478: IFFALSE 4488
// begin hint ( Turrets ) ;
4480: LD_STRING Turrets
4482: PPUSH
4483: CALL_OW 339
// disable ;
4487: DISABLE
// end ;
4488: PPOPN 1
4490: END
// every 0 0$1 + 0 0$30 trigger unitfilter ( [ ambwrks0 ] , [ [ f_btype , b_factory ] ] ) and ( not isconstructed ( ambwrks0 ) ) and ( not unitfilter ( filterallunits ( [ [ f_side , amer ] ] ) , [ f_or , [ f_btype , b_oil_power ] , [ f_btype , b_solar_power ] ] ) ) do
4491: LD_INT 5
4493: PUSH
4494: EMPTY
4495: LIST
4496: PPUSH
4497: LD_INT 30
4499: PUSH
4500: LD_INT 3
4502: PUSH
4503: EMPTY
4504: LIST
4505: LIST
4506: PUSH
4507: EMPTY
4508: LIST
4509: PPUSH
4510: CALL_OW 72
4514: PUSH
4515: LD_INT 5
4517: PPUSH
4518: CALL_OW 304
4522: NOT
4523: AND
4524: PUSH
4525: LD_INT 22
4527: PUSH
4528: LD_EXP 2
4532: PUSH
4533: EMPTY
4534: LIST
4535: LIST
4536: PUSH
4537: EMPTY
4538: LIST
4539: PPUSH
4540: CALL_OW 69
4544: PPUSH
4545: LD_INT 2
4547: PUSH
4548: LD_INT 30
4550: PUSH
4551: LD_INT 26
4553: PUSH
4554: EMPTY
4555: LIST
4556: LIST
4557: PUSH
4558: LD_INT 30
4560: PUSH
4561: LD_INT 27
4563: PUSH
4564: EMPTY
4565: LIST
4566: LIST
4567: PUSH
4568: EMPTY
4569: LIST
4570: LIST
4571: LIST
4572: PPUSH
4573: CALL_OW 72
4577: NOT
4578: AND
4579: IFFALSE 4602
4581: GO 4583
4583: DISABLE
// begin if which_dlg <> 11 then
4584: LD_LOC 17
4588: PUSH
4589: LD_INT 11
4591: NONEQUAL
4592: IFFALSE 4602
// which_dlg = 10 ;
4594: LD_ADDR_LOC 17
4598: PUSH
4599: LD_INT 10
4601: ST_TO_ADDR
// end ;
4602: END
// every 0 0$1 + 0 0$5 trigger filterallunits ( [ [ f_side , amer ] , [ f_btype , b_bunker ] ] ) and not unitfilter ( filterallunits ( [ [ f_side , amer ] ] ) , [ f_or , [ f_btype , b_oil_power ] , [ f_btype , b_solar_power ] ] ) do
4603: LD_INT 22
4605: PUSH
4606: LD_EXP 2
4610: PUSH
4611: EMPTY
4612: LIST
4613: LIST
4614: PUSH
4615: LD_INT 30
4617: PUSH
4618: LD_INT 32
4620: PUSH
4621: EMPTY
4622: LIST
4623: LIST
4624: PUSH
4625: EMPTY
4626: LIST
4627: LIST
4628: PPUSH
4629: CALL_OW 69
4633: PUSH
4634: LD_INT 22
4636: PUSH
4637: LD_EXP 2
4641: PUSH
4642: EMPTY
4643: LIST
4644: LIST
4645: PUSH
4646: EMPTY
4647: LIST
4648: PPUSH
4649: CALL_OW 69
4653: PPUSH
4654: LD_INT 2
4656: PUSH
4657: LD_INT 30
4659: PUSH
4660: LD_INT 26
4662: PUSH
4663: EMPTY
4664: LIST
4665: LIST
4666: PUSH
4667: LD_INT 30
4669: PUSH
4670: LD_INT 27
4672: PUSH
4673: EMPTY
4674: LIST
4675: LIST
4676: PUSH
4677: EMPTY
4678: LIST
4679: LIST
4680: LIST
4681: PPUSH
4682: CALL_OW 72
4686: NOT
4687: AND
4688: IFFALSE 4711
4690: GO 4692
4692: DISABLE
// begin if which_dlg <> 10 then
4693: LD_LOC 17
4697: PUSH
4698: LD_INT 10
4700: NONEQUAL
4701: IFFALSE 4711
// which_dlg = 11 ;
4703: LD_ADDR_LOC 17
4707: PUSH
4708: LD_INT 11
4710: ST_TO_ADDR
// end ;
4711: END
// every 0 0$1 + 0 0$5.5 trigger which_dlg <> 0 do
4712: LD_LOC 17
4716: PUSH
4717: LD_INT 0
4719: NONEQUAL
4720: IFFALSE 4955
4722: GO 4724
4724: DISABLE
// begin dialogueon ;
4725: CALL_OW 6
// if which_dlg = 10 then
4729: LD_LOC 17
4733: PUSH
4734: LD_INT 10
4736: EQUAL
4737: IFFALSE 4761
// begin say ( john , D9a-JMM-1 ) ;
4739: LD_LOC 1
4743: PPUSH
4744: LD_STRING D9a-JMM-1
4746: PPUSH
4747: CALL_OW 88
// say ( amhmech0 , D9a-Mech1-1 ) ;
4751: LD_INT 17
4753: PPUSH
4754: LD_STRING D9a-Mech1-1
4756: PPUSH
4757: CALL_OW 88
// end ; if which_dlg = 11 then
4761: LD_LOC 17
4765: PUSH
4766: LD_INT 11
4768: EQUAL
4769: IFFALSE 4781
// begin say ( amhengi0 , D9b-Eng1-1 ) ;
4771: LD_INT 15
4773: PPUSH
4774: LD_STRING D9b-Eng1-1
4776: PPUSH
4777: CALL_OW 88
// end ; if ( not researched ( amer , tech_oilpow ) ) and ( not researched ( amer , tech_solpow ) ) then
4781: LD_EXP 2
4785: PPUSH
4786: LD_INT 46
4788: PPUSH
4789: CALL_OW 325
4793: NOT
4794: PUSH
4795: LD_EXP 2
4799: PPUSH
4800: LD_INT 35
4802: PPUSH
4803: CALL_OW 325
4807: NOT
4808: AND
4809: IFFALSE 4825
// say ( john , D9c-JMM-1 ) else
4811: LD_LOC 1
4815: PPUSH
4816: LD_STRING D9c-JMM-1
4818: PPUSH
4819: CALL_OW 88
4823: GO 4951
// if ( not researched ( amer , tech_oilpow ) ) and researched ( amer , tech_solpow ) then
4825: LD_EXP 2
4829: PPUSH
4830: LD_INT 46
4832: PPUSH
4833: CALL_OW 325
4837: NOT
4838: PUSH
4839: LD_EXP 2
4843: PPUSH
4844: LD_INT 35
4846: PPUSH
4847: CALL_OW 325
4851: AND
4852: IFFALSE 4868
// say ( john , D9c-JMM-1a ) else
4854: LD_LOC 1
4858: PPUSH
4859: LD_STRING D9c-JMM-1a
4861: PPUSH
4862: CALL_OW 88
4866: GO 4951
// if researched ( amer , tech_oilpow ) and ( not researched ( amer , tech_solpow ) ) then
4868: LD_EXP 2
4872: PPUSH
4873: LD_INT 46
4875: PPUSH
4876: CALL_OW 325
4880: PUSH
4881: LD_EXP 2
4885: PPUSH
4886: LD_INT 35
4888: PPUSH
4889: CALL_OW 325
4893: NOT
4894: AND
4895: IFFALSE 4911
// say ( john , D9c-JMM-1b ) else
4897: LD_LOC 1
4901: PPUSH
4902: LD_STRING D9c-JMM-1b
4904: PPUSH
4905: CALL_OW 88
4909: GO 4951
// if researched ( amer , tech_oilpow ) and researched ( amer , tech_solpow ) then
4911: LD_EXP 2
4915: PPUSH
4916: LD_INT 46
4918: PPUSH
4919: CALL_OW 325
4923: PUSH
4924: LD_EXP 2
4928: PPUSH
4929: LD_INT 35
4931: PPUSH
4932: CALL_OW 325
4936: AND
4937: IFFALSE 4951
// say ( john , D9c-JMM-1c ) ;
4939: LD_LOC 1
4943: PPUSH
4944: LD_STRING D9c-JMM-1c
4946: PPUSH
4947: CALL_OW 88
// dialogueoff ;
4951: CALL_OW 7
// end ;
4955: END
// function postavena_fact ; var zatr ; begin
4956: LD_INT 0
4958: PPUSH
4959: PPUSH
// zatr = unitfilter ( [ ambwrks0 ] , [ [ f_btype , b_factory ] ] ) ;
4960: LD_ADDR_VAR 0 2
4964: PUSH
4965: LD_INT 5
4967: PUSH
4968: EMPTY
4969: LIST
4970: PPUSH
4971: LD_INT 30
4973: PUSH
4974: LD_INT 3
4976: PUSH
4977: EMPTY
4978: LIST
4979: LIST
4980: PUSH
4981: EMPTY
4982: LIST
4983: PPUSH
4984: CALL_OW 72
4988: ST_TO_ADDR
// result = false ;
4989: LD_ADDR_VAR 0 1
4993: PUSH
4994: LD_INT 0
4996: ST_TO_ADDR
// if zatr then
4997: LD_VAR 0 2
5001: IFFALSE 5027
// if not isconstructed ( zatr [ 1 ] ) then
5003: LD_VAR 0 2
5007: PUSH
5008: LD_INT 1
5010: ARRAY
5011: PPUSH
5012: CALL_OW 304
5016: NOT
5017: IFFALSE 5027
// result = true ;
5019: LD_ADDR_VAR 0 1
5023: PUSH
5024: LD_INT 1
5026: ST_TO_ADDR
// end ;
5027: LD_VAR 0 1
5031: RET
// function postavena_elekt ; var tmp , ii ; begin
5032: LD_INT 0
5034: PPUSH
5035: PPUSH
5036: PPUSH
// result = false ;
5037: LD_ADDR_VAR 0 1
5041: PUSH
5042: LD_INT 0
5044: ST_TO_ADDR
// tmp = unitfilter ( filterallunits ( [ [ f_side , amer ] ] ) , [ f_or , [ f_btype , b_oil_power ] , [ f_btype , b_solar_power ] ] ) ;
5045: LD_ADDR_VAR 0 2
5049: PUSH
5050: LD_INT 22
5052: PUSH
5053: LD_EXP 2
5057: PUSH
5058: EMPTY
5059: LIST
5060: LIST
5061: PUSH
5062: EMPTY
5063: LIST
5064: PPUSH
5065: CALL_OW 69
5069: PPUSH
5070: LD_INT 2
5072: PUSH
5073: LD_INT 30
5075: PUSH
5076: LD_INT 26
5078: PUSH
5079: EMPTY
5080: LIST
5081: LIST
5082: PUSH
5083: LD_INT 30
5085: PUSH
5086: LD_INT 27
5088: PUSH
5089: EMPTY
5090: LIST
5091: LIST
5092: PUSH
5093: EMPTY
5094: LIST
5095: LIST
5096: LIST
5097: PPUSH
5098: CALL_OW 72
5102: ST_TO_ADDR
// if tmp then
5103: LD_VAR 0 2
5107: IFFALSE 5150
// for ii in tmp do
5109: LD_ADDR_VAR 0 3
5113: PUSH
5114: LD_VAR 0 2
5118: PUSH
5119: FOR_IN
5120: IFFALSE 5148
// if not isconstructed ( ii ) then
5122: LD_VAR 0 3
5126: PPUSH
5127: CALL_OW 304
5131: NOT
5132: IFFALSE 5146
// begin result = true ;
5134: LD_ADDR_VAR 0 1
5138: PUSH
5139: LD_INT 1
5141: ST_TO_ADDR
// exit ;
5142: POP
5143: POP
5144: GO 5150
// end ;
5146: GO 5119
5148: POP
5149: POP
// end ;
5150: LD_VAR 0 1
5154: RET
// every 0 0$2.5 trigger postavena_fact and postavena_elekt do
5155: CALL 4956 0 0
5159: PUSH
5160: CALL 5032 0 0
5164: AND
5165: IFFALSE 5188
5167: GO 5169
5169: DISABLE
// begin dialogueon ;
5170: CALL_OW 6
// say ( amhmech0 , D10-Mech1-1 ) ;
5174: LD_INT 17
5176: PPUSH
5177: LD_STRING D10-Mech1-1
5179: PPUSH
5180: CALL_OW 88
// dialogueoff ;
5184: CALL_OW 7
// end ;
5188: END
// var zatr ; function postaveny_bunkr ; begin
5189: LD_INT 0
5191: PPUSH
// zatr = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_bunker ] , [ f_nation , nation_american ] ] ) ;
5192: LD_ADDR_LOC 25
5196: PUSH
5197: LD_INT 22
5199: PUSH
5200: LD_EXP 2
5204: PUSH
5205: EMPTY
5206: LIST
5207: LIST
5208: PUSH
5209: LD_INT 30
5211: PUSH
5212: LD_INT 32
5214: PUSH
5215: EMPTY
5216: LIST
5217: LIST
5218: PUSH
5219: LD_INT 23
5221: PUSH
5222: LD_INT 1
5224: PUSH
5225: EMPTY
5226: LIST
5227: LIST
5228: PUSH
5229: EMPTY
5230: LIST
5231: LIST
5232: LIST
5233: PPUSH
5234: CALL_OW 69
5238: ST_TO_ADDR
// result = false ;
5239: LD_ADDR_VAR 0 1
5243: PUSH
5244: LD_INT 0
5246: ST_TO_ADDR
// if zatr then
5247: LD_LOC 25
5251: IFFALSE 5277
// if not isconstructed ( zatr [ 1 ] ) then
5253: LD_LOC 25
5257: PUSH
5258: LD_INT 1
5260: ARRAY
5261: PPUSH
5262: CALL_OW 304
5266: NOT
5267: IFFALSE 5277
// result = true ;
5269: LD_ADDR_VAR 0 1
5273: PUSH
5274: LD_INT 1
5276: ST_TO_ADDR
// end ;
5277: LD_VAR 0 1
5281: RET
// every 0 0$1 + 0 0$5.1 trigger postaveny_bunkr do
5282: CALL 5189 0 0
5286: IFFALSE 5309
5288: GO 5290
5290: DISABLE
// begin dialogueon ;
5291: CALL_OW 6
// say ( amhengi0 , D11-Eng1-1 ) ;
5295: LD_INT 15
5297: PPUSH
5298: LD_STRING D11-Eng1-1
5300: PPUSH
5301: CALL_OW 88
// dialogueoff ;
5305: CALL_OW 7
// end ;
5309: END
// every 2 2$0 + 0 0$15 do
5310: GO 5312
5312: DISABLE
// begin createcratesarea ( 5 , targetarea , true ) ;
5313: LD_INT 5
5315: PPUSH
5316: LD_INT 11
5318: PPUSH
5319: LD_INT 1
5321: PPUSH
5322: CALL_OW 55
// if supply then
5326: LD_LOC 16
5330: IFFALSE 5347
// begin supply = supply - 1 ;
5332: LD_ADDR_LOC 16
5336: PUSH
5337: LD_LOC 16
5341: PUSH
5342: LD_INT 1
5344: MINUS
5345: ST_TO_ADDR
// enable ;
5346: ENABLE
// end ; end ;
5347: END
// every 0 0$7 do
5348: GO 5350
5350: DISABLE
// begin randomize ;
5351: CALL_OW 10
// enable ;
5355: ENABLE
// end ;
5356: END
// var bu1_done , br2_done , op1_done ; var oilpowpldone , scndoildrill , powerhint ; on buildingcomplete ( un ) marked 01 do if un = rubbunk1 then
5357: LD_VAR 0 1
5361: PUSH
5362: LD_EXP 15
5366: EQUAL
5367: IFFALSE 5379
// bu1_done = true else
5369: LD_ADDR_LOC 26
5373: PUSH
5374: LD_INT 1
5376: ST_TO_ADDR
5377: GO 5678
// if un = rubbrwr2 then
5379: LD_VAR 0 1
5383: PUSH
5384: LD_EXP 16
5388: EQUAL
5389: IFFALSE 5401
// br2_done = true else
5391: LD_ADDR_LOC 27
5395: PUSH
5396: LD_INT 1
5398: ST_TO_ADDR
5399: GO 5678
// if un = ruboilp1 then
5401: LD_VAR 0 1
5405: PUSH
5406: LD_LOC 33
5410: EQUAL
5411: IFFALSE 5423
// op1_done = true else
5413: LD_ADDR_LOC 28
5417: PUSH
5418: LD_INT 1
5420: ST_TO_ADDR
5421: GO 5678
// if un = rubwrks0 then
5423: LD_VAR 0 1
5427: PUSH
5428: LD_LOC 32
5432: EQUAL
5433: IFFALSE 5445
// build_wrks = true else
5435: LD_ADDR_LOC 11
5439: PUSH
5440: LD_INT 1
5442: ST_TO_ADDR
5443: GO 5678
// if ( getnation ( un ) = nation_american ) and ( getbtype ( un ) = b_oil_power ) and not oilpowpldone then
5445: LD_VAR 0 1
5449: PPUSH
5450: CALL_OW 248
5454: PUSH
5455: LD_INT 1
5457: EQUAL
5458: PUSH
5459: LD_VAR 0 1
5463: PPUSH
5464: CALL_OW 266
5468: PUSH
5469: LD_INT 26
5471: EQUAL
5472: AND
5473: PUSH
5474: LD_LOC 29
5478: NOT
5479: AND
5480: IFFALSE 5527
// begin oilpowpldone = true ;
5482: LD_ADDR_LOC 29
5486: PUSH
5487: LD_INT 1
5489: ST_TO_ADDR
// if not powerhint then
5490: LD_LOC 31
5494: NOT
5495: IFFALSE 5512
// begin powerhint = true ;
5497: LD_ADDR_LOC 31
5501: PUSH
5502: LD_INT 1
5504: ST_TO_ADDR
// hint ( PowerPlant ) ;
5505: LD_STRING PowerPlant
5507: PPUSH
5508: CALL_OW 339
// end ; if scndoildrill then
5512: LD_LOC 30
5516: IFFALSE 5525
// changemissionobjectives ( M1a ) ;
5518: LD_STRING M1a
5520: PPUSH
5521: CALL_OW 337
// end else
5525: GO 5678
// if ( getnation ( un ) = nation_american ) and ( getbtype ( un ) = b_oil_mine ) and ( getx ( un ) <> 38 ) and ( gety ( un ) <> 3 ) and not scndoildrill then
5527: LD_VAR 0 1
5531: PPUSH
5532: CALL_OW 248
5536: PUSH
5537: LD_INT 1
5539: EQUAL
5540: PUSH
5541: LD_VAR 0 1
5545: PPUSH
5546: CALL_OW 266
5550: PUSH
5551: LD_INT 29
5553: EQUAL
5554: AND
5555: PUSH
5556: LD_VAR 0 1
5560: PPUSH
5561: CALL_OW 250
5565: PUSH
5566: LD_INT 38
5568: NONEQUAL
5569: AND
5570: PUSH
5571: LD_VAR 0 1
5575: PPUSH
5576: CALL_OW 251
5580: PUSH
5581: LD_INT 3
5583: NONEQUAL
5584: AND
5585: PUSH
5586: LD_LOC 30
5590: NOT
5591: AND
5592: IFFALSE 5617
// begin scndoildrill = true ;
5594: LD_ADDR_LOC 30
5598: PUSH
5599: LD_INT 1
5601: ST_TO_ADDR
// if oilpowpldone then
5602: LD_LOC 29
5606: IFFALSE 5615
// changemissionobjectives ( M1a ) ;
5608: LD_STRING M1a
5610: PPUSH
5611: CALL_OW 337
// end else
5615: GO 5678
// if ( getbtype ( un ) = b_solar_power ) and ( not powerhint ) then
5617: LD_VAR 0 1
5621: PPUSH
5622: CALL_OW 266
5626: PUSH
5627: LD_INT 27
5629: EQUAL
5630: PUSH
5631: LD_LOC 31
5635: NOT
5636: AND
5637: IFFALSE 5656
// begin powerhint = true ;
5639: LD_ADDR_LOC 31
5643: PUSH
5644: LD_INT 1
5646: ST_TO_ADDR
// hint ( PowerPlant ) ;
5647: LD_STRING PowerPlant
5649: PPUSH
5650: CALL_OW 339
// end else
5654: GO 5678
// if getbtype ( un ) = b_bunker then
5656: LD_VAR 0 1
5660: PPUSH
5661: CALL_OW 266
5665: PUSH
5666: LD_INT 32
5668: EQUAL
5669: IFFALSE 5678
// hint ( Turrets2 ) ;
5671: LD_STRING Turrets2
5673: PPUSH
5674: CALL_OW 339
5678: PPOPN 1
5680: END
// every 0 0$3 + 1 1$25 trigger isinarea ( ruhengi1 , rubase1rng ) and not isconstructed ( rubdepo0 ) and rubdepo0 > 0 do
5681: LD_INT 18
5683: PPUSH
5684: LD_INT 3
5686: PPUSH
5687: CALL_OW 308
5691: PUSH
5692: LD_EXP 14
5696: PPUSH
5697: CALL_OW 304
5701: NOT
5702: AND
5703: PUSH
5704: LD_EXP 14
5708: PUSH
5709: LD_INT 0
5711: GREATER
5712: AND
5713: IFFALSE 5766
5715: GO 5717
5717: DISABLE
// begin depot_done = true ;
5718: LD_ADDR_EXP 30
5722: PUSH
5723: LD_INT 1
5725: ST_TO_ADDR
// comcollect ( [ ruhengi1 , ruhengi0 ] , 40 , 54 ) ;
5726: LD_INT 18
5728: PUSH
5729: LD_INT 2
5731: PUSH
5732: EMPTY
5733: LIST
5734: LIST
5735: PPUSH
5736: LD_INT 40
5738: PPUSH
5739: LD_INT 54
5741: PPUSH
5742: CALL_OW 117
// commovexy ( ruv0 , 48 , 53 ) ;
5746: LD_INT 7
5748: PPUSH
5749: LD_INT 48
5751: PPUSH
5752: LD_INT 53
5754: PPUSH
5755: CALL_OW 111
// addcomhold ( ruv0 ) ;
5759: LD_INT 7
5761: PPUSH
5762: CALL_OW 200
// end ;
5766: END
// every 0 0$3 + 1 1$40 trigger depot_done and getresourcetype ( getbase ( rubdepo0 ) , mat_cans ) >= 30 do
5767: LD_EXP 30
5771: PUSH
5772: LD_EXP 14
5776: PPUSH
5777: CALL_OW 274
5781: PPUSH
5782: LD_INT 1
5784: PPUSH
5785: CALL_OW 275
5789: PUSH
5790: LD_INT 30
5792: GREATEREQUAL
5793: AND
5794: IFFALSE 5891
5796: GO 5798
5798: DISABLE
// begin comhold ( [ ruhengi0 , ruhengi1 ] ) ;
5799: LD_INT 2
5801: PUSH
5802: LD_INT 18
5804: PUSH
5805: EMPTY
5806: LIST
5807: LIST
5808: PPUSH
5809: CALL_OW 140
// addresourcetype ( getbase ( rubdepo0 ) , mat_cans , 50 ) ;
5813: LD_EXP 14
5817: PPUSH
5818: CALL_OW 274
5822: PPUSH
5823: LD_INT 1
5825: PPUSH
5826: LD_INT 50
5828: PPUSH
5829: CALL_OW 276
// rubbunk1 = combuild ( ruhengi1 , b_bunker , 44 , 50 , 3 ) ;
5833: LD_ADDR_EXP 15
5837: PUSH
5838: LD_INT 18
5840: PPUSH
5841: LD_INT 32
5843: PPUSH
5844: LD_INT 44
5846: PPUSH
5847: LD_INT 50
5849: PPUSH
5850: LD_INT 3
5852: PPUSH
5853: CALL_OW 145
5857: ST_TO_ADDR
// rubbrwr2 = combuild ( ruhengi0 , b_breastwork , 52 , 57 , 3 ) ;
5858: LD_ADDR_EXP 16
5862: PUSH
5863: LD_INT 2
5865: PPUSH
5866: LD_INT 31
5868: PPUSH
5869: LD_INT 52
5871: PPUSH
5872: LD_INT 57
5874: PPUSH
5875: LD_INT 3
5877: PPUSH
5878: CALL_OW 145
5882: ST_TO_ADDR
// opev_start = true ;
5883: LD_ADDR_LOC 18
5887: PUSH
5888: LD_INT 1
5890: ST_TO_ADDR
// end ;
5891: END
// every 0 0$3 + 1 1$55 trigger opev_start and bu1_done do
5892: LD_LOC 18
5896: PUSH
5897: LD_LOC 26
5901: AND
5902: IFFALSE 5961
5904: GO 5906
5906: DISABLE
// begin setblevel ( rubbunk1 , bunk_lev ) ;
5907: LD_EXP 15
5911: PPUSH
5912: LD_LOC 15
5916: PPUSH
5917: CALL_OW 241
// commoveunit ( ruhsold1 , rubbunk1 ) ;
5921: LD_INT 12
5923: PPUSH
5924: LD_EXP 15
5928: PPUSH
5929: CALL_OW 112
// addresourcetype ( getbase ( rubdepo0 ) , mat_cans , 90 ) ;
5933: LD_EXP 14
5937: PPUSH
5938: CALL_OW 274
5942: PPUSH
5943: LD_INT 1
5945: PPUSH
5946: LD_INT 90
5948: PPUSH
5949: CALL_OW 276
// bunker_done = true ;
5953: LD_ADDR_EXP 19
5957: PUSH
5958: LD_INT 1
5960: ST_TO_ADDR
// end ;
5961: END
// every 0 0$2.5 + 1 1$57 trigger bunker_done and not isinunit ( ruhsold1 ) = rubbunk1 do
5962: LD_EXP 19
5966: PUSH
5967: LD_INT 12
5969: PPUSH
5970: CALL_OW 310
5974: PUSH
5975: LD_EXP 15
5979: EQUAL
5980: NOT
5981: AND
5982: IFFALSE 6023
5984: GO 5986
5986: DISABLE
// begin commoveunit ( ruhsold1 , rubbunk1 ) ;
5987: LD_INT 12
5989: PPUSH
5990: LD_EXP 15
5994: PPUSH
5995: CALL_OW 112
// wait ( 0 0$3 ) ;
5999: LD_INT 105
6001: PPUSH
6002: CALL_OW 67
// if not isinunit ( ruhsold1 ) = rubbunk1 then
6006: LD_INT 12
6008: PPUSH
6009: CALL_OW 310
6013: PUSH
6014: LD_EXP 15
6018: EQUAL
6019: NOT
6020: IFFALSE 6023
// enable ;
6022: ENABLE
// end ;
6023: END
// every 0 0$5 + 2 2$0 trigger bunker_done do
6024: LD_EXP 19
6028: IFFALSE 6059
6030: GO 6032
6032: DISABLE
// begin comfree ( ruhengi0 ) ;
6033: LD_INT 2
6035: PPUSH
6036: CALL_OW 139
// combuild ( ruhengi1 , b_oil_mine , 42 , 54 , 0 ) ;
6040: LD_INT 18
6042: PPUSH
6043: LD_INT 29
6045: PPUSH
6046: LD_INT 42
6048: PPUSH
6049: LD_INT 54
6051: PPUSH
6052: LD_INT 0
6054: PPUSH
6055: CALL_OW 145
// end ;
6059: END
// var rubwrks0 ; every 0 0$5 + 3 3$15 trigger depot_done and getresourcetype ( getbase ( rubdepo0 ) , mat_oil ) > 0 do
6060: LD_EXP 30
6064: PUSH
6065: LD_EXP 14
6069: PPUSH
6070: CALL_OW 274
6074: PPUSH
6075: LD_INT 2
6077: PPUSH
6078: CALL_OW 275
6082: PUSH
6083: LD_INT 0
6085: GREATER
6086: AND
6087: IFFALSE 6117
6089: GO 6091
6091: DISABLE
// begin rubwrks0 = combuild ( ruhengi1 , b_workshop , 39 , 48 , 2 ) ;
6092: LD_ADDR_LOC 32
6096: PUSH
6097: LD_INT 18
6099: PPUSH
6100: LD_INT 2
6102: PPUSH
6103: LD_INT 39
6105: PPUSH
6106: LD_INT 48
6108: PPUSH
6109: LD_INT 2
6111: PPUSH
6112: CALL_OW 145
6116: ST_TO_ADDR
// end ;
6117: END
// var ruboilp1 ; every 0 0$5 + 4 4$25 trigger build_wrks and not IsConstructed ( rubwrks0 ) do
6118: LD_LOC 11
6122: PUSH
6123: LD_LOC 32
6127: PPUSH
6128: CALL_OW 304
6132: NOT
6133: AND
6134: IFFALSE 6176
6136: GO 6138
6138: DISABLE
// begin ruboilp1 = combuild ( ruhengi1 , b_oil_power , 34 , 49 , 0 ) ;
6139: LD_ADDR_LOC 33
6143: PUSH
6144: LD_INT 18
6146: PPUSH
6147: LD_INT 26
6149: PPUSH
6150: LD_INT 34
6152: PPUSH
6153: LD_INT 49
6155: PPUSH
6156: LD_INT 0
6158: PPUSH
6159: CALL_OW 145
6163: ST_TO_ADDR
// commoveunit ( ruhmech1 , rubwrks0 ) ;
6164: LD_INT 19
6166: PPUSH
6167: LD_LOC 32
6171: PPUSH
6172: CALL_OW 112
// end ;
6176: END
// every 0 0$6 + 4 4$20 trigger build_wrks and Isinunit ( ruhmech1 ) = rubwrks0 do
6177: LD_LOC 11
6181: PUSH
6182: LD_INT 19
6184: PPUSH
6185: CALL_OW 310
6189: PUSH
6190: LD_LOC 32
6194: EQUAL
6195: AND
6196: IFFALSE 6223
6198: GO 6200
6200: DISABLE
// begin commoveunit ( ruhengi0 , rubware0 ) ;
6201: LD_INT 2
6203: PPUSH
6204: LD_INT 21
6206: PPUSH
6207: CALL_OW 112
// complaceweapon ( rubbunk1 , ru_heavy_machine_gun ) ;
6211: LD_EXP 15
6215: PPUSH
6216: LD_INT 42
6218: PPUSH
6219: CALL_OW 148
// end ;
6223: END
// on weaponplaced ( bunk , fact ) do if bunk = rubbunk1 then
6224: LD_VAR 0 1
6228: PUSH
6229: LD_EXP 15
6233: EQUAL
6234: IFFALSE 6259
// begin commovexy ( ruv0 , 73 , 78 ) ;
6236: LD_INT 7
6238: PPUSH
6239: LD_INT 73
6241: PPUSH
6242: LD_INT 78
6244: PPUSH
6245: CALL_OW 111
// commoveunit ( ruhmech1 , rubfact0 ) ;
6249: LD_INT 19
6251: PPUSH
6252: LD_INT 24
6254: PPUSH
6255: CALL_OW 112
// end ;
6259: PPOPN 2
6261: END
// every 0 0$7 + 4 4$55 trigger ruboilp1 and op1_done do
6262: LD_LOC 33
6266: PUSH
6267: LD_LOC 28
6271: AND
6272: IFFALSE 6289
6274: GO 6276
6276: DISABLE
// begin commoveunit ( ruhengi1 , rubdepo0 ) ;
6277: LD_INT 18
6279: PPUSH
6280: LD_EXP 14
6284: PPUSH
6285: CALL_OW 112
// end ;
6289: END
// every 0 0$3 + 1 1$54 trigger opev_start and br2_done do
6290: LD_LOC 18
6294: PUSH
6295: LD_LOC 27
6299: AND
6300: IFFALSE 6352
6302: GO 6304
6304: DISABLE
// begin brwr_done = true ;
6305: LD_ADDR_EXP 20
6309: PUSH
6310: LD_INT 1
6312: ST_TO_ADDR
// setblevel ( rubbrwr2 , brwr_lev ) ;
6313: LD_EXP 16
6317: PPUSH
6318: LD_LOC 14
6322: PPUSH
6323: CALL_OW 241
// commoveunit ( ruhsold2 , rubbrwr2 ) ;
6327: LD_INT 10
6329: PPUSH
6330: LD_EXP 16
6334: PPUSH
6335: CALL_OW 112
// comcollect ( ruhengi0 , 40 , 53 ) ;
6339: LD_INT 2
6341: PPUSH
6342: LD_INT 40
6344: PPUSH
6345: LD_INT 53
6347: PPUSH
6348: CALL_OW 117
// end ;
6352: END
// every 0 0$3 + 2 2$00 trigger brwr_done do
6353: LD_EXP 20
6357: IFFALSE 6404
6359: GO 6361
6361: DISABLE
// begin wait ( 0 0$5 ) ;
6362: LD_INT 175
6364: PPUSH
6365: CALL_OW 67
// com_queue = true ;
6369: LD_ADDR_OWVAR 49
6373: PUSH
6374: LD_INT 1
6376: ST_TO_ADDR
// commoveunit ( ruhengi0 , rubdepo0 ) ;
6377: LD_INT 2
6379: PPUSH
6380: LD_EXP 14
6384: PPUSH
6385: CALL_OW 112
// comexitbuilding ( ruhengi0 ) ;
6389: LD_INT 2
6391: PPUSH
6392: CALL_OW 122
// com_queue = false ;
6396: LD_ADDR_OWVAR 49
6400: PUSH
6401: LD_INT 0
6403: ST_TO_ADDR
// end ;
6404: END
// every 6 6$0 do
6405: GO 6407
6407: DISABLE
// begin uc_nation = nation_russian ;
6408: LD_ADDR_OWVAR 21
6412: PUSH
6413: LD_INT 3
6415: ST_TO_ADDR
// uc_side = rus ;
6416: LD_ADDR_OWVAR 20
6420: PUSH
6421: LD_EXP 1
6425: ST_TO_ADDR
// case difficulty of 1 :
6426: LD_OWVAR 67
6430: PUSH
6431: LD_INT 1
6433: DOUBLE
6434: EQUAL
6435: IFTRUE 6439
6437: GO 6452
6439: POP
// preparesoldier ( sex_male , 1 ) ; 2 :
6440: LD_INT 1
6442: PPUSH
6443: LD_INT 1
6445: PPUSH
6446: CALL_OW 381
6450: GO 6495
6452: LD_INT 2
6454: DOUBLE
6455: EQUAL
6456: IFTRUE 6460
6458: GO 6473
6460: POP
// preparesoldier ( sex_male , 2 ) ; 3 :
6461: LD_INT 1
6463: PPUSH
6464: LD_INT 2
6466: PPUSH
6467: CALL_OW 381
6471: GO 6495
6473: LD_INT 3
6475: DOUBLE
6476: EQUAL
6477: IFTRUE 6481
6479: GO 6494
6481: POP
// preparesoldier ( sex_male , 3 ) ; end ;
6482: LD_INT 1
6484: PPUSH
6485: LD_INT 3
6487: PPUSH
6488: CALL_OW 381
6492: GO 6495
6494: POP
// ruhsoldj = createhuman ;
6495: LD_ADDR_EXP 25
6499: PUSH
6500: CALL_OW 44
6504: ST_TO_ADDR
// placeunitarea ( ruhsoldj , rusreinf0 , false ) ;
6505: LD_EXP 25
6509: PPUSH
6510: LD_INT 6
6512: PPUSH
6513: LD_INT 0
6515: PPUSH
6516: CALL_OW 49
// case difficulty of 1 :
6520: LD_OWVAR 67
6524: PUSH
6525: LD_INT 1
6527: DOUBLE
6528: EQUAL
6529: IFTRUE 6533
6531: GO 6546
6533: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
6534: LD_INT 1
6536: PPUSH
6537: LD_INT 2
6539: PPUSH
6540: CALL_OW 381
6544: GO 6589
6546: LD_INT 2
6548: DOUBLE
6549: EQUAL
6550: IFTRUE 6554
6552: GO 6567
6554: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
6555: LD_INT 1
6557: PPUSH
6558: LD_INT 3
6560: PPUSH
6561: CALL_OW 381
6565: GO 6589
6567: LD_INT 3
6569: DOUBLE
6570: EQUAL
6571: IFTRUE 6575
6573: GO 6588
6575: POP
// preparesoldier ( sex_male , 3 ) ; end ;
6576: LD_INT 1
6578: PPUSH
6579: LD_INT 3
6581: PPUSH
6582: CALL_OW 381
6586: GO 6589
6588: POP
// ruhsoldk = createhuman ;
6589: LD_ADDR_EXP 26
6593: PUSH
6594: CALL_OW 44
6598: ST_TO_ADDR
// placeunitarea ( ruhsoldk , rusreinf0 , false ) ;
6599: LD_EXP 26
6603: PPUSH
6604: LD_INT 6
6606: PPUSH
6607: LD_INT 0
6609: PPUSH
6610: CALL_OW 49
// case difficulty of 1 :
6614: LD_OWVAR 67
6618: PUSH
6619: LD_INT 1
6621: DOUBLE
6622: EQUAL
6623: IFTRUE 6627
6625: GO 6640
6627: POP
// preparesoldier ( sex_male , 1 ) ; 2 :
6628: LD_INT 1
6630: PPUSH
6631: LD_INT 1
6633: PPUSH
6634: CALL_OW 381
6638: GO 6683
6640: LD_INT 2
6642: DOUBLE
6643: EQUAL
6644: IFTRUE 6648
6646: GO 6661
6648: POP
// preparesoldier ( sex_male , 2 ) ; 3 :
6649: LD_INT 1
6651: PPUSH
6652: LD_INT 2
6654: PPUSH
6655: CALL_OW 381
6659: GO 6683
6661: LD_INT 3
6663: DOUBLE
6664: EQUAL
6665: IFTRUE 6669
6667: GO 6682
6669: POP
// preparesoldier ( sex_male , 3 ) ; end ;
6670: LD_INT 1
6672: PPUSH
6673: LD_INT 3
6675: PPUSH
6676: CALL_OW 381
6680: GO 6683
6682: POP
// ruhsoldl = createhuman ;
6683: LD_ADDR_EXP 27
6687: PUSH
6688: CALL_OW 44
6692: ST_TO_ADDR
// placeunitarea ( ruhsoldl , rusreinf0 , false ) ;
6693: LD_EXP 27
6697: PPUSH
6698: LD_INT 6
6700: PPUSH
6701: LD_INT 0
6703: PPUSH
6704: CALL_OW 49
// comremember ( [ ruhsoldj , ruhsoldk , ruhsoldl ] ) ;
6708: LD_EXP 25
6712: PUSH
6713: LD_EXP 26
6717: PUSH
6718: LD_EXP 27
6722: PUSH
6723: EMPTY
6724: LIST
6725: LIST
6726: LIST
6727: PPUSH
6728: CALL_OW 143
// comagressivemove ( [ ruhsoldj , ruhsoldk , ruhsoldl ] , 78 , 46 ) ;
6732: LD_EXP 25
6736: PUSH
6737: LD_EXP 26
6741: PUSH
6742: LD_EXP 27
6746: PUSH
6747: EMPTY
6748: LIST
6749: LIST
6750: LIST
6751: PPUSH
6752: LD_INT 78
6754: PPUSH
6755: LD_INT 46
6757: PPUSH
6758: CALL_OW 114
// end ;
6762: END
// every 0 0$1 + 6 6$0 trigger not ( [ ruhsoldj , ruhsoldk , ruhsoldl ] diff filterunitsinarea ( wayarea1 , [ [ f_ok ] , [ f_side , rus ] , [ f_type , unit_human ] ] ) ) do
6763: LD_EXP 25
6767: PUSH
6768: LD_EXP 26
6772: PUSH
6773: LD_EXP 27
6777: PUSH
6778: EMPTY
6779: LIST
6780: LIST
6781: LIST
6782: PUSH
6783: LD_INT 9
6785: PPUSH
6786: LD_INT 50
6788: PUSH
6789: EMPTY
6790: LIST
6791: PUSH
6792: LD_INT 22
6794: PUSH
6795: LD_EXP 1
6799: PUSH
6800: EMPTY
6801: LIST
6802: LIST
6803: PUSH
6804: LD_INT 21
6806: PUSH
6807: LD_INT 1
6809: PUSH
6810: EMPTY
6811: LIST
6812: LIST
6813: PUSH
6814: EMPTY
6815: LIST
6816: LIST
6817: LIST
6818: PPUSH
6819: CALL_OW 70
6823: DIFF
6824: NOT
6825: IFFALSE 6867
6827: GO 6829
6829: DISABLE
// begin comagressivemove ( [ ruhsoldj , ruhsoldk , ruhsoldl ] , 55 , 16 ) ;
6830: LD_EXP 25
6834: PUSH
6835: LD_EXP 26
6839: PUSH
6840: LD_EXP 27
6844: PUSH
6845: EMPTY
6846: LIST
6847: LIST
6848: LIST
6849: PPUSH
6850: LD_INT 55
6852: PPUSH
6853: LD_INT 16
6855: PPUSH
6856: CALL_OW 114
// hint ( Shift ) ;
6860: LD_STRING Shift
6862: PPUSH
6863: CALL_OW 339
// end ;
6867: END
// every 0 0$0.7 + 6 6$5 trigger unitfilter ( [ ruhsoldj , ruhsoldk , ruhsoldl ] , [ [ f_ok ] ] ) < 3 do var pomsold , pomsold2 ;
6868: LD_EXP 25
6872: PUSH
6873: LD_EXP 26
6877: PUSH
6878: LD_EXP 27
6882: PUSH
6883: EMPTY
6884: LIST
6885: LIST
6886: LIST
6887: PPUSH
6888: LD_INT 50
6890: PUSH
6891: EMPTY
6892: LIST
6893: PUSH
6894: EMPTY
6895: LIST
6896: PPUSH
6897: CALL_OW 72
6901: PUSH
6902: LD_INT 3
6904: LESS
6905: IFFALSE 7616
6907: GO 6909
6909: DISABLE
6910: LD_INT 0
6912: PPUSH
6913: PPUSH
// begin comreturn ( [ ruhsoldj , ruhsoldk , ruhsoldl ] ) ;
6914: LD_EXP 25
6918: PUSH
6919: LD_EXP 26
6923: PUSH
6924: LD_EXP 27
6928: PUSH
6929: EMPTY
6930: LIST
6931: LIST
6932: LIST
6933: PPUSH
6934: CALL_OW 144
// wait ( 0 0$1 ) ;
6938: LD_INT 35
6940: PPUSH
6941: CALL_OW 67
// pomsold = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) diff [ john ] ;
6945: LD_ADDR_VAR 0 1
6949: PUSH
6950: LD_INT 22
6952: PUSH
6953: LD_EXP 2
6957: PUSH
6958: EMPTY
6959: LIST
6960: LIST
6961: PUSH
6962: LD_INT 21
6964: PUSH
6965: LD_INT 1
6967: PUSH
6968: EMPTY
6969: LIST
6970: LIST
6971: PUSH
6972: LD_INT 50
6974: PUSH
6975: EMPTY
6976: LIST
6977: PUSH
6978: EMPTY
6979: LIST
6980: LIST
6981: LIST
6982: PPUSH
6983: CALL_OW 69
6987: PUSH
6988: LD_LOC 1
6992: PUSH
6993: EMPTY
6994: LIST
6995: DIFF
6996: ST_TO_ADDR
// if pomsold <> 0 then
6997: LD_VAR 0 1
7001: PUSH
7002: LD_INT 0
7004: NONEQUAL
7005: IFFALSE 7579
// begin pomsold2 = unitfilter ( pomsold , [ [ f_class , classtype_soldier ] ] ) ;
7007: LD_ADDR_VAR 0 2
7011: PUSH
7012: LD_VAR 0 1
7016: PPUSH
7017: LD_INT 25
7019: PUSH
7020: LD_INT 1
7022: PUSH
7023: EMPTY
7024: LIST
7025: LIST
7026: PUSH
7027: EMPTY
7028: LIST
7029: PPUSH
7030: CALL_OW 72
7034: ST_TO_ADDR
// if pomsold2 <> 0 then
7035: LD_VAR 0 2
7039: PUSH
7040: LD_INT 0
7042: NONEQUAL
7043: IFFALSE 7061
// pomsold = pomsold2 [ 1 ] else
7045: LD_ADDR_VAR 0 1
7049: PUSH
7050: LD_VAR 0 2
7054: PUSH
7055: LD_INT 1
7057: ARRAY
7058: ST_TO_ADDR
7059: GO 7075
// pomsold = pomsold [ 1 ] ;
7061: LD_ADDR_VAR 0 1
7065: PUSH
7066: LD_VAR 0 1
7070: PUSH
7071: LD_INT 1
7073: ARRAY
7074: ST_TO_ADDR
// wait ( 0 0$1 ) ;
7075: LD_INT 35
7077: PPUSH
7078: CALL_OW 67
// dialogueon ;
7082: CALL_OW 6
// if getsex ( pomsold ) = sex_female then
7086: LD_VAR 0 1
7090: PPUSH
7091: CALL_OW 258
7095: PUSH
7096: LD_INT 2
7098: EQUAL
7099: IFFALSE 7115
// say ( pomsold , DAtt1-FSol1-1 ) else
7101: LD_VAR 0 1
7105: PPUSH
7106: LD_STRING DAtt1-FSol1-1
7108: PPUSH
7109: CALL_OW 88
7113: GO 7127
// say ( pomsold , DAtt1-Sol1-1 ) ;
7115: LD_VAR 0 1
7119: PPUSH
7120: LD_STRING DAtt1-Sol1-1
7122: PPUSH
7123: CALL_OW 88
// say ( john , DAtt1-JMM-1 ) ;
7127: LD_LOC 1
7131: PPUSH
7132: LD_STRING DAtt1-JMM-1
7134: PPUSH
7135: CALL_OW 88
// if ( 0 + filterallunits ( [ [ f_side , amer ] , [ f_btype , b_breastwork ] ] ) + filterallunits ( [ [ f_side , amer ] , [ f_btype , b_bunker ] ] ) ) <= 3 then
7139: LD_INT 0
7141: PUSH
7142: LD_INT 22
7144: PUSH
7145: LD_EXP 2
7149: PUSH
7150: EMPTY
7151: LIST
7152: LIST
7153: PUSH
7154: LD_INT 30
7156: PUSH
7157: LD_INT 31
7159: PUSH
7160: EMPTY
7161: LIST
7162: LIST
7163: PUSH
7164: EMPTY
7165: LIST
7166: LIST
7167: PPUSH
7168: CALL_OW 69
7172: PLUS
7173: PUSH
7174: LD_INT 22
7176: PUSH
7177: LD_EXP 2
7181: PUSH
7182: EMPTY
7183: LIST
7184: LIST
7185: PUSH
7186: LD_INT 30
7188: PUSH
7189: LD_INT 32
7191: PUSH
7192: EMPTY
7193: LIST
7194: LIST
7195: PUSH
7196: EMPTY
7197: LIST
7198: LIST
7199: PPUSH
7200: CALL_OW 69
7204: PLUS
7205: PUSH
7206: LD_INT 3
7208: LESSEQUAL
7209: IFFALSE 7461
// begin if isok ( lisa ) then
7211: LD_LOC 4
7215: PPUSH
7216: CALL_OW 302
7220: IFFALSE 7236
// say ( lisa , DAtt1a-Lisa-1 ) else
7222: LD_LOC 4
7226: PPUSH
7227: LD_STRING DAtt1a-Lisa-1
7229: PPUSH
7230: CALL_OW 88
7234: GO 7421
// if getsex ( pomsold ) = sex_male then
7236: LD_VAR 0 1
7240: PPUSH
7241: CALL_OW 258
7245: PUSH
7246: LD_INT 1
7248: EQUAL
7249: IFFALSE 7265
// say ( pomsold , DAtt1a-Sol1-1 ) else
7251: LD_VAR 0 1
7255: PPUSH
7256: LD_STRING DAtt1a-Sol1-1
7258: PPUSH
7259: CALL_OW 88
7263: GO 7421
// begin pomsold = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] , [ f_sex , sex_male ] ] ) diff john ;
7265: LD_ADDR_VAR 0 1
7269: PUSH
7270: LD_INT 22
7272: PUSH
7273: LD_EXP 2
7277: PUSH
7278: EMPTY
7279: LIST
7280: LIST
7281: PUSH
7282: LD_INT 21
7284: PUSH
7285: LD_INT 1
7287: PUSH
7288: EMPTY
7289: LIST
7290: LIST
7291: PUSH
7292: LD_INT 50
7294: PUSH
7295: EMPTY
7296: LIST
7297: PUSH
7298: LD_INT 26
7300: PUSH
7301: LD_INT 1
7303: PUSH
7304: EMPTY
7305: LIST
7306: LIST
7307: PUSH
7308: EMPTY
7309: LIST
7310: LIST
7311: LIST
7312: LIST
7313: PPUSH
7314: CALL_OW 69
7318: PUSH
7319: LD_LOC 1
7323: DIFF
7324: ST_TO_ADDR
// if pomsold then
7325: LD_VAR 0 1
7329: IFFALSE 7413
// begin pomsold2 = unitfilter ( pomsold , [ [ f_class , classtype_soldier ] ] ) ;
7331: LD_ADDR_VAR 0 2
7335: PUSH
7336: LD_VAR 0 1
7340: PPUSH
7341: LD_INT 25
7343: PUSH
7344: LD_INT 1
7346: PUSH
7347: EMPTY
7348: LIST
7349: LIST
7350: PUSH
7351: EMPTY
7352: LIST
7353: PPUSH
7354: CALL_OW 72
7358: ST_TO_ADDR
// if pomsold2 <> 0 then
7359: LD_VAR 0 2
7363: PUSH
7364: LD_INT 0
7366: NONEQUAL
7367: IFFALSE 7385
// pomsold = pomsold2 [ 1 ] else
7369: LD_ADDR_VAR 0 1
7373: PUSH
7374: LD_VAR 0 2
7378: PUSH
7379: LD_INT 1
7381: ARRAY
7382: ST_TO_ADDR
7383: GO 7399
// pomsold = pomsold [ 1 ] ;
7385: LD_ADDR_VAR 0 1
7389: PUSH
7390: LD_VAR 0 1
7394: PUSH
7395: LD_INT 1
7397: ARRAY
7398: ST_TO_ADDR
// say ( pomsold , DAtt1a-Sol1-1 ) ;
7399: LD_VAR 0 1
7403: PPUSH
7404: LD_STRING DAtt1a-Sol1-1
7406: PPUSH
7407: CALL_OW 88
// end else
7411: GO 7421
// pomsold = 0 ;
7413: LD_ADDR_VAR 0 1
7417: PUSH
7418: LD_INT 0
7420: ST_TO_ADDR
// end ; if isok ( lisa ) or getsex ( pomsold ) = sex_male then
7421: LD_LOC 4
7425: PPUSH
7426: CALL_OW 302
7430: PUSH
7431: LD_VAR 0 1
7435: PPUSH
7436: CALL_OW 258
7440: PUSH
7441: LD_INT 1
7443: EQUAL
7444: OR
7445: IFFALSE 7459
// say ( john , DAtt1a-JMM-1 ) ;
7447: LD_LOC 1
7451: PPUSH
7452: LD_STRING DAtt1a-JMM-1
7454: PPUSH
7455: CALL_OW 88
// end else
7459: GO 7575
// if getsex ( pomsold ) = sex_male then
7461: LD_VAR 0 1
7465: PPUSH
7466: CALL_OW 258
7470: PUSH
7471: LD_INT 1
7473: EQUAL
7474: IFFALSE 7490
// say ( pomsold , DAtt1b-Sol1-1 ) else
7476: LD_VAR 0 1
7480: PPUSH
7481: LD_STRING DAtt1b-Sol1-1
7483: PPUSH
7484: CALL_OW 88
7488: GO 7575
// begin pomsold = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] , [ f_sex , sex_male ] ] ) diff [ john ] ;
7490: LD_ADDR_VAR 0 1
7494: PUSH
7495: LD_INT 22
7497: PUSH
7498: LD_EXP 2
7502: PUSH
7503: EMPTY
7504: LIST
7505: LIST
7506: PUSH
7507: LD_INT 21
7509: PUSH
7510: LD_INT 1
7512: PUSH
7513: EMPTY
7514: LIST
7515: LIST
7516: PUSH
7517: LD_INT 50
7519: PUSH
7520: EMPTY
7521: LIST
7522: PUSH
7523: LD_INT 26
7525: PUSH
7526: LD_INT 1
7528: PUSH
7529: EMPTY
7530: LIST
7531: LIST
7532: PUSH
7533: EMPTY
7534: LIST
7535: LIST
7536: LIST
7537: LIST
7538: PPUSH
7539: CALL_OW 69
7543: PUSH
7544: LD_LOC 1
7548: PUSH
7549: EMPTY
7550: LIST
7551: DIFF
7552: ST_TO_ADDR
// if pomsold then
7553: LD_VAR 0 1
7557: IFFALSE 7575
// say ( pomsold [ 1 ] , DAtt1b-Sol1-1 ) ;
7559: LD_VAR 0 1
7563: PUSH
7564: LD_INT 1
7566: ARRAY
7567: PPUSH
7568: LD_STRING DAtt1b-Sol1-1
7570: PPUSH
7571: CALL_OW 88
// end ; dialogueoff ;
7575: CALL_OW 7
// end ; wait ( 0 0$7 ) ;
7579: LD_INT 245
7581: PPUSH
7582: CALL_OW 67
// commovexy ( [ ruhsoldj , ruhsoldk , ruhsoldl ] , 76 , 77 ) ;
7586: LD_EXP 25
7590: PUSH
7591: LD_EXP 26
7595: PUSH
7596: LD_EXP 27
7600: PUSH
7601: EMPTY
7602: LIST
7603: LIST
7604: LIST
7605: PPUSH
7606: LD_INT 76
7608: PPUSH
7609: LD_INT 77
7611: PPUSH
7612: CALL_OW 111
// end ;
7616: PPOPN 2
7618: END
// every 0 0$10 + 9 9$0 do
7619: GO 7621
7621: DISABLE
// begin dialogueon ;
7622: CALL_OW 6
// sayradio ( lucyd , D2-Don-1 ) ;
7626: LD_LOC 6
7630: PPUSH
7631: LD_STRING D2-Don-1
7633: PPUSH
7634: CALL_OW 94
// say ( john , D2-JMM-1 ) ;
7638: LD_LOC 1
7642: PPUSH
7643: LD_STRING D2-JMM-1
7645: PPUSH
7646: CALL_OW 88
// sayradio ( lucyd , D2-Don-2 ) ;
7650: LD_LOC 6
7654: PPUSH
7655: LD_STRING D2-Don-2
7657: PPUSH
7658: CALL_OW 94
// say ( john , D2-JMM-2 ) ;
7662: LD_LOC 1
7666: PPUSH
7667: LD_STRING D2-JMM-2
7669: PPUSH
7670: CALL_OW 88
// sayradio ( lucyd , D2-Don-3 ) ;
7674: LD_LOC 6
7678: PPUSH
7679: LD_STRING D2-Don-3
7681: PPUSH
7682: CALL_OW 94
// dialogueoff ;
7686: CALL_OW 7
// end ;
7690: END
// every 12 12$10 do
7691: GO 7693
7693: DISABLE
// begin placeunitarea ( lucyd , reinf0 , false ) ;
7694: LD_LOC 6
7698: PPUSH
7699: LD_INT 4
7701: PPUSH
7702: LD_INT 0
7704: PPUSH
7705: CALL_OW 49
// uc_nation = nation_american ;
7709: LD_ADDR_OWVAR 21
7713: PUSH
7714: LD_INT 1
7716: ST_TO_ADDR
// uc_side = amer ;
7717: LD_ADDR_OWVAR 20
7721: PUSH
7722: LD_EXP 2
7726: ST_TO_ADDR
// if frank then
7727: LD_LOC 5
7731: IFFALSE 7760
// begin placeunitarea ( frank , reinf0 , false ) ;
7733: LD_LOC 5
7737: PPUSH
7738: LD_INT 4
7740: PPUSH
7741: LD_INT 0
7743: PPUSH
7744: CALL_OW 49
// amhsold4 = frank ;
7748: LD_ADDR_EXP 6
7752: PUSH
7753: LD_LOC 5
7757: ST_TO_ADDR
// end else
7758: GO 7795
// begin preparesoldier ( sex_male , 3 ) ;
7760: LD_INT 1
7762: PPUSH
7763: LD_INT 3
7765: PPUSH
7766: CALL_OW 381
// amhsold4 = createhuman ;
7770: LD_ADDR_EXP 6
7774: PUSH
7775: CALL_OW 44
7779: ST_TO_ADDR
// placeunitarea ( amhsold4 , reinf0 , false ) ;
7780: LD_EXP 6
7784: PPUSH
7785: LD_INT 4
7787: PPUSH
7788: LD_INT 0
7790: PPUSH
7791: CALL_OW 49
// end ; preparesoldier ( sex_male , 3 ) ;
7795: LD_INT 1
7797: PPUSH
7798: LD_INT 3
7800: PPUSH
7801: CALL_OW 381
// amhsold5 = createhuman ;
7805: LD_ADDR_EXP 7
7809: PUSH
7810: CALL_OW 44
7814: ST_TO_ADDR
// placeunitarea ( amhsold5 , reinf0 , false ) ;
7815: LD_EXP 7
7819: PPUSH
7820: LD_INT 4
7822: PPUSH
7823: LD_INT 0
7825: PPUSH
7826: CALL_OW 49
// if difficulty = 3 then
7830: LD_OWVAR 67
7834: PUSH
7835: LD_INT 3
7837: EQUAL
7838: IFFALSE 7852
// preparemechanic ( sex_female , 2 ) else
7840: LD_INT 2
7842: PPUSH
7843: LD_INT 2
7845: PPUSH
7846: CALL_OW 383
7850: GO 7862
// preparemechanic ( sex_female , 3 ) ;
7852: LD_INT 2
7854: PPUSH
7855: LD_INT 3
7857: PPUSH
7858: CALL_OW 383
// amhsold6 = createhuman ;
7862: LD_ADDR_EXP 8
7866: PUSH
7867: CALL_OW 44
7871: ST_TO_ADDR
// placeunitarea ( amhsold6 , reinf0 , false ) ;
7872: LD_EXP 8
7876: PPUSH
7877: LD_INT 4
7879: PPUSH
7880: LD_INT 0
7882: PPUSH
7883: CALL_OW 49
// if difficulty = 3 then
7887: LD_OWVAR 67
7891: PUSH
7892: LD_INT 3
7894: EQUAL
7895: IFFALSE 7909
// preparemechanic ( sex_male , 1 ) else
7897: LD_INT 1
7899: PPUSH
7900: LD_INT 1
7902: PPUSH
7903: CALL_OW 383
7907: GO 7919
// preparemechanic ( sex_male , 2 ) ;
7909: LD_INT 1
7911: PPUSH
7912: LD_INT 2
7914: PPUSH
7915: CALL_OW 383
// amhsold7 = createhuman ;
7919: LD_ADDR_LOC 7
7923: PUSH
7924: CALL_OW 44
7928: ST_TO_ADDR
// placeunitarea ( amhsold7 , reinf0 , false ) ;
7929: LD_LOC 7
7933: PPUSH
7934: LD_INT 4
7936: PPUSH
7937: LD_INT 0
7939: PPUSH
7940: CALL_OW 49
// chciplo = chciplo + 5 ;
7944: LD_ADDR_LOC 20
7948: PUSH
7949: LD_LOC 20
7953: PUSH
7954: LD_INT 5
7956: PLUS
7957: ST_TO_ADDR
// if difficulty = 1 then
7958: LD_OWVAR 67
7962: PUSH
7963: LD_INT 1
7965: EQUAL
7966: IFFALSE 8017
// begin preparesoldier ( sex_male , 2 ) ;
7968: LD_INT 1
7970: PPUSH
7971: LD_INT 2
7973: PPUSH
7974: CALL_OW 381
// amhsold7 = createhuman ;
7978: LD_ADDR_LOC 7
7982: PUSH
7983: CALL_OW 44
7987: ST_TO_ADDR
// placeunitarea ( amhsold7 , reinf0 , false ) ;
7988: LD_LOC 7
7992: PPUSH
7993: LD_INT 4
7995: PPUSH
7996: LD_INT 0
7998: PPUSH
7999: CALL_OW 49
// chciplo = chciplo + 1 ;
8003: LD_ADDR_LOC 20
8007: PUSH
8008: LD_LOC 20
8012: PUSH
8013: LD_INT 1
8015: PLUS
8016: ST_TO_ADDR
// end ; centeronunits ( [ lucyd , amhsold4 , amhsold5 , amhsold6 ] ) ;
8017: LD_LOC 6
8021: PUSH
8022: LD_EXP 6
8026: PUSH
8027: LD_EXP 7
8031: PUSH
8032: LD_EXP 8
8036: PUSH
8037: EMPTY
8038: LIST
8039: LIST
8040: LIST
8041: LIST
8042: PPUSH
8043: CALL_OW 85
// dialogueon ;
8047: CALL_OW 6
// say ( amhsold5 , D3-Sol1-1 ) ;
8051: LD_EXP 7
8055: PPUSH
8056: LD_STRING D3-Sol1-1
8058: PPUSH
8059: CALL_OW 88
// say ( amhsold7 , D3-Sol2-1 ) ;
8063: LD_LOC 7
8067: PPUSH
8068: LD_STRING D3-Sol2-1
8070: PPUSH
8071: CALL_OW 88
// if frank then
8075: LD_LOC 5
8079: IFFALSE 8093
// say ( frank , D3-Frank-1 ) ;
8081: LD_LOC 5
8085: PPUSH
8086: LD_STRING D3-Frank-1
8088: PPUSH
8089: CALL_OW 88
// say ( lucyd , D3-Don-1 ) ;
8093: LD_LOC 6
8097: PPUSH
8098: LD_STRING D3-Don-1
8100: PPUSH
8101: CALL_OW 88
// sayradio ( lucyd , D3-Don-1a ) ;
8105: LD_LOC 6
8109: PPUSH
8110: LD_STRING D3-Don-1a
8112: PPUSH
8113: CALL_OW 94
// say ( john , D3-JMM-1 ) ;
8117: LD_LOC 1
8121: PPUSH
8122: LD_STRING D3-JMM-1
8124: PPUSH
8125: CALL_OW 88
// sayradio ( lucyd , D3-Don-2 ) ;
8129: LD_LOC 6
8133: PPUSH
8134: LD_STRING D3-Don-2
8136: PPUSH
8137: CALL_OW 94
// if rubase1_notrazed then
8141: CALL 8220 0 0
8145: IFFALSE 8203
// begin say ( john , D3-JMM-2 ) ;
8147: LD_LOC 1
8151: PPUSH
8152: LD_STRING D3-JMM-2
8154: PPUSH
8155: CALL_OW 88
// sayradio ( lucyd , D3-Don-3 ) ;
8159: LD_LOC 6
8163: PPUSH
8164: LD_STRING D3-Don-3
8166: PPUSH
8167: CALL_OW 94
// say ( john , D3-JMM-3 ) ;
8171: LD_LOC 1
8175: PPUSH
8176: LD_STRING D3-JMM-3
8178: PPUSH
8179: CALL_OW 88
// if frank then
8183: LD_LOC 5
8187: IFFALSE 8201
// say ( frank , D3-Frank-3 ) ;
8189: LD_LOC 5
8193: PPUSH
8194: LD_STRING D3-Frank-3
8196: PPUSH
8197: CALL_OW 88
// end else
8201: GO 8215
// begin say ( john , D3-JMM-4 ) ;
8203: LD_LOC 1
8207: PPUSH
8208: LD_STRING D3-JMM-4
8210: PPUSH
8211: CALL_OW 88
// end ; dialogueoff ;
8215: CALL_OW 7
// end ;
8219: END
// function rubase1_notrazed ; begin
8220: LD_INT 0
8222: PPUSH
// result = filterunitsinarea ( rubase1rng , [ [ f_side , rus ] , [ f_alive ] ] ) ;
8223: LD_ADDR_VAR 0 1
8227: PUSH
8228: LD_INT 3
8230: PPUSH
8231: LD_INT 22
8233: PUSH
8234: LD_EXP 1
8238: PUSH
8239: EMPTY
8240: LIST
8241: LIST
8242: PUSH
8243: LD_INT 51
8245: PUSH
8246: EMPTY
8247: LIST
8248: PUSH
8249: EMPTY
8250: LIST
8251: LIST
8252: PPUSH
8253: CALL_OW 70
8257: ST_TO_ADDR
// end ;
8258: LD_VAR 0 1
8262: RET
// every 0 0$2 + 12 12$20 trigger getdistunits ( john , frank ) < 5 do
8263: LD_LOC 1
8267: PPUSH
8268: LD_LOC 5
8272: PPUSH
8273: CALL_OW 296
8277: PUSH
8278: LD_INT 5
8280: LESS
8281: IFFALSE 8396
8283: GO 8285
8285: DISABLE
// begin rubase1_gone = true ;
8286: LD_ADDR_EXP 21
8290: PUSH
8291: LD_INT 1
8293: ST_TO_ADDR
// dialogueon ;
8294: CALL_OW 6
// if isok ( frank ) then
8298: LD_LOC 5
8302: PPUSH
8303: CALL_OW 302
8307: IFFALSE 8392
// begin say ( frank , D3a-Frank-1 ) ;
8309: LD_LOC 5
8313: PPUSH
8314: LD_STRING D3a-Frank-1
8316: PPUSH
8317: CALL_OW 88
// if isok ( lisa ) then
8321: LD_LOC 4
8325: PPUSH
8326: CALL_OW 302
8330: IFFALSE 8380
// begin say ( lisa , D3a-Lisa-1 ) ;
8332: LD_LOC 4
8336: PPUSH
8337: LD_STRING D3a-Lisa-1
8339: PPUSH
8340: CALL_OW 88
// say ( frank , D3a-Frank-2 ) ;
8344: LD_LOC 5
8348: PPUSH
8349: LD_STRING D3a-Frank-2
8351: PPUSH
8352: CALL_OW 88
// say ( lisa , D3a-Lisa-2 ) ;
8356: LD_LOC 4
8360: PPUSH
8361: LD_STRING D3a-Lisa-2
8363: PPUSH
8364: CALL_OW 88
// say ( frank , D3a-Frank-3 ) ;
8368: LD_LOC 5
8372: PPUSH
8373: LD_STRING D3a-Frank-3
8375: PPUSH
8376: CALL_OW 88
// end ; say ( john , D3a-JMM-3 ) ;
8380: LD_LOC 1
8384: PPUSH
8385: LD_STRING D3a-JMM-3
8387: PPUSH
8388: CALL_OW 88
// end ; dialogueoff ;
8392: CALL_OW 7
// end ;
8396: END
// every 0 0$3 + 12 12$52 trigger ( [ lucyd , amhsold4 , amhsold5 , amhsold6 ] diff filterunitsinarea ( reinf0ex , [ [ f_side , amer ] ] ) ) <= 2 do
8397: LD_LOC 6
8401: PUSH
8402: LD_EXP 6
8406: PUSH
8407: LD_EXP 7
8411: PUSH
8412: LD_EXP 8
8416: PUSH
8417: EMPTY
8418: LIST
8419: LIST
8420: LIST
8421: LIST
8422: PUSH
8423: LD_INT 21
8425: PPUSH
8426: LD_INT 22
8428: PUSH
8429: LD_EXP 2
8433: PUSH
8434: EMPTY
8435: LIST
8436: LIST
8437: PUSH
8438: EMPTY
8439: LIST
8440: PPUSH
8441: CALL_OW 70
8445: DIFF
8446: PUSH
8447: LD_INT 2
8449: LESSEQUAL
8450: IFFALSE 8475
8452: GO 8454
8454: DISABLE
// begin dialogueon ;
8455: CALL_OW 6
// sayradio ( lucyd , D3b-Don-1 ) ;
8459: LD_LOC 6
8463: PPUSH
8464: LD_STRING D3b-Don-1
8466: PPUSH
8467: CALL_OW 94
// dialogueoff ;
8471: CALL_OW 7
// end ;
8475: END
// every 0 0$1 + 1 1$0 trigger ( not filterallunits ( [ [ f_side , rus ] , [ f_ok ] , [ f_type , unit_human ] ] ) ) do var tmp , tmp2 , medal1 , medal2 , medal3 ;
8476: LD_INT 22
8478: PUSH
8479: LD_EXP 1
8483: PUSH
8484: EMPTY
8485: LIST
8486: LIST
8487: PUSH
8488: LD_INT 50
8490: PUSH
8491: EMPTY
8492: LIST
8493: PUSH
8494: LD_INT 21
8496: PUSH
8497: LD_INT 1
8499: PUSH
8500: EMPTY
8501: LIST
8502: LIST
8503: PUSH
8504: EMPTY
8505: LIST
8506: LIST
8507: LIST
8508: PPUSH
8509: CALL_OW 69
8513: NOT
8514: IFFALSE 8876
8516: GO 8518
8518: DISABLE
8519: LD_INT 0
8521: PPUSH
8522: PPUSH
8523: PPUSH
8524: PPUSH
8525: PPUSH
// begin medal1 := false ;
8526: LD_ADDR_VAR 0 3
8530: PUSH
8531: LD_INT 0
8533: ST_TO_ADDR
// medal2 := false ;
8534: LD_ADDR_VAR 0 4
8538: PUSH
8539: LD_INT 0
8541: ST_TO_ADDR
// medal3 := false ;
8542: LD_ADDR_VAR 0 5
8546: PUSH
8547: LD_INT 0
8549: ST_TO_ADDR
// if debug then
8550: LD_EXP 42
8554: IFFALSE 8563
// msg ( koncime! ) ;
8556: LD_STRING koncime!
8558: PPUSH
8559: CALL_OW 100
// wait ( 0 0$1 ) ;
8563: LD_INT 35
8565: PPUSH
8566: CALL_OW 67
// chciplo = chciplo - filterallunits ( [ [ f_alive ] , [ f_side , amer ] , [ f_type , unit_human ] ] ) ;
8570: LD_ADDR_LOC 20
8574: PUSH
8575: LD_LOC 20
8579: PUSH
8580: LD_INT 51
8582: PUSH
8583: EMPTY
8584: LIST
8585: PUSH
8586: LD_INT 22
8588: PUSH
8589: LD_EXP 2
8593: PUSH
8594: EMPTY
8595: LIST
8596: LIST
8597: PUSH
8598: LD_INT 21
8600: PUSH
8601: LD_INT 1
8603: PUSH
8604: EMPTY
8605: LIST
8606: LIST
8607: PUSH
8608: EMPTY
8609: LIST
8610: LIST
8611: LIST
8612: PPUSH
8613: CALL_OW 69
8617: MINUS
8618: ST_TO_ADDR
// if chciplo > 3 then
8619: LD_LOC 20
8623: PUSH
8624: LD_INT 3
8626: GREATER
8627: IFFALSE 8642
// addmedal ( deaths , - 1 ) else
8629: LD_STRING deaths
8631: PPUSH
8632: LD_INT 1
8634: NEG
8635: PPUSH
8636: CALL_OW 101
8640: GO 8660
// begin AddMedal ( deaths , 1 ) ;
8642: LD_STRING deaths
8644: PPUSH
8645: LD_INT 1
8647: PPUSH
8648: CALL_OW 101
// medal1 := true ;
8652: LD_ADDR_VAR 0 3
8656: PUSH
8657: LD_INT 1
8659: ST_TO_ADDR
// end ; if oilpowpldone and scndoildrill then
8660: LD_LOC 29
8664: PUSH
8665: LD_LOC 30
8669: AND
8670: IFFALSE 8692
// begin AddMedal ( oil , 1 ) ;
8672: LD_STRING oil
8674: PPUSH
8675: LD_INT 1
8677: PPUSH
8678: CALL_OW 101
// medal2 := true ;
8682: LD_ADDR_VAR 0 4
8686: PUSH
8687: LD_INT 1
8689: ST_TO_ADDR
// end else
8690: GO 8757
// if not oilpowpldone and not scndoildrill then
8692: LD_LOC 29
8696: NOT
8697: PUSH
8698: LD_LOC 30
8702: NOT
8703: AND
8704: IFFALSE 8719
// addmedal ( oil , - 3 ) else
8706: LD_STRING oil
8708: PPUSH
8709: LD_INT 3
8711: NEG
8712: PPUSH
8713: CALL_OW 101
8717: GO 8757
// if not oilpowpldone then
8719: LD_LOC 29
8723: NOT
8724: IFFALSE 8739
// addmedal ( oil , - 1 ) else
8726: LD_STRING oil
8728: PPUSH
8729: LD_INT 1
8731: NEG
8732: PPUSH
8733: CALL_OW 101
8737: GO 8757
// if not scndoildrill then
8739: LD_LOC 30
8743: NOT
8744: IFFALSE 8757
// addmedal ( oil , - 2 ) ;
8746: LD_STRING oil
8748: PPUSH
8749: LD_INT 2
8751: NEG
8752: PPUSH
8753: CALL_OW 101
// if zbaven_veleni then
8757: LD_LOC 21
8761: IFFALSE 8776
// addmedal ( honour , - 1 ) else
8763: LD_STRING honour
8765: PPUSH
8766: LD_INT 1
8768: NEG
8769: PPUSH
8770: CALL_OW 101
8774: GO 8794
// begin AddMedal ( honour , 1 ) ;
8776: LD_STRING honour
8778: PPUSH
8779: LD_INT 1
8781: PPUSH
8782: CALL_OW 101
// medal3 := true ;
8786: LD_ADDR_VAR 0 5
8790: PUSH
8791: LD_INT 1
8793: ST_TO_ADDR
// end ; SA_EndMission ( 1 , 4 , medal1 , medal2 , medal3 ) ;
8794: LD_INT 1
8796: PPUSH
8797: LD_INT 4
8799: PPUSH
8800: LD_VAR 0 3
8804: PPUSH
8805: LD_VAR 0 4
8809: PPUSH
8810: LD_VAR 0 5
8814: PPUSH
8815: CALL 17358 0 5
// givemedals ( Main ) ;
8819: LD_STRING Main
8821: PPUSH
8822: CALL_OW 102
// rewardpeople ( filterallunits ( [ [ f_alive ] , [ f_side , amer ] , [ f_type , unit_human ] ] ) ) ;
8826: LD_INT 51
8828: PUSH
8829: EMPTY
8830: LIST
8831: PUSH
8832: LD_INT 22
8834: PUSH
8835: LD_EXP 2
8839: PUSH
8840: EMPTY
8841: LIST
8842: LIST
8843: PUSH
8844: LD_INT 21
8846: PUSH
8847: LD_INT 1
8849: PUSH
8850: EMPTY
8851: LIST
8852: LIST
8853: PUSH
8854: EMPTY
8855: LIST
8856: LIST
8857: LIST
8858: PPUSH
8859: CALL_OW 69
8863: PPUSH
8864: CALL_OW 43
// saveitall ;
8868: CALL 781 0 0
// youwin ;
8872: CALL_OW 103
// end ;
8876: PPOPN 5
8878: END
// on UnitDestroyed ( un ) do begin if un = John then
8879: LD_VAR 0 1
8883: PUSH
8884: LD_LOC 1
8888: EQUAL
8889: IFFALSE 8898
// YouLost ( JMM ) ;
8891: LD_STRING JMM
8893: PPUSH
8894: CALL_OW 104
// if amhsold1 then
8898: LD_LOC 8
8902: IFFALSE 8912
// brownIsDead := true ;
8904: LD_ADDR_EXP 43
8908: PUSH
8909: LD_INT 1
8911: ST_TO_ADDR
// if lucyd then
8912: LD_LOC 6
8916: IFFALSE 8926
// donaldsonIsDead := true ;
8918: LD_ADDR_EXP 44
8922: PUSH
8923: LD_INT 1
8925: ST_TO_ADDR
// end ;
8926: PPOPN 1
8928: END
// every 0 0$1 trigger brownIsDead and donaldsonIsDead do
8929: LD_EXP 43
8933: PUSH
8934: LD_EXP 44
8938: AND
8939: IFFALSE 8948
8941: GO 8943
8943: DISABLE
// SA_BrownAndDonaldsonDead ;
8944: CALL 17343 0 0
8948: END
// every 0 0$1 trigger not filterallunits ( [ [ f_or , [ f_side , amer ] , [ f_side , amer2 ] ] , [ f_type , unit_building ] ] ) do
8949: LD_INT 2
8951: PUSH
8952: LD_INT 22
8954: PUSH
8955: LD_EXP 2
8959: PUSH
8960: EMPTY
8961: LIST
8962: LIST
8963: PUSH
8964: LD_INT 22
8966: PUSH
8967: LD_EXP 3
8971: PUSH
8972: EMPTY
8973: LIST
8974: LIST
8975: PUSH
8976: EMPTY
8977: LIST
8978: LIST
8979: LIST
8980: PUSH
8981: LD_INT 21
8983: PUSH
8984: LD_INT 3
8986: PUSH
8987: EMPTY
8988: LIST
8989: LIST
8990: PUSH
8991: EMPTY
8992: LIST
8993: LIST
8994: PPUSH
8995: CALL_OW 69
8999: NOT
9000: IFFALSE 9019
9002: GO 9004
9004: DISABLE
// begin wait ( 0 0$3 ) ;
9005: LD_INT 105
9007: PPUSH
9008: CALL_OW 67
// youlost ( Base ) ;
9012: LD_STRING Base
9014: PPUSH
9015: CALL_OW 104
// end ;
9019: END
// every 0 0$1 trigger filterallunits ( [ [ f_side , rus ] , [ f_ok ] , [ f_type , unit_human ] ] ) <= 5 do
9020: LD_INT 22
9022: PUSH
9023: LD_EXP 1
9027: PUSH
9028: EMPTY
9029: LIST
9030: LIST
9031: PUSH
9032: LD_INT 50
9034: PUSH
9035: EMPTY
9036: LIST
9037: PUSH
9038: LD_INT 21
9040: PUSH
9041: LD_INT 1
9043: PUSH
9044: EMPTY
9045: LIST
9046: LIST
9047: PUSH
9048: EMPTY
9049: LIST
9050: LIST
9051: LIST
9052: PPUSH
9053: CALL_OW 69
9057: PUSH
9058: LD_INT 5
9060: LESSEQUAL
9061: IFFALSE 9225
9063: GO 9065
9065: DISABLE
// begin zbytek = filterallunits ( [ [ f_side , rus ] , [ f_ok ] , [ f_type , unit_human ] ] ) ;
9066: LD_ADDR_LOC 34
9070: PUSH
9071: LD_INT 22
9073: PUSH
9074: LD_EXP 1
9078: PUSH
9079: EMPTY
9080: LIST
9081: LIST
9082: PUSH
9083: LD_INT 50
9085: PUSH
9086: EMPTY
9087: LIST
9088: PUSH
9089: LD_INT 21
9091: PUSH
9092: LD_INT 1
9094: PUSH
9095: EMPTY
9096: LIST
9097: LIST
9098: PUSH
9099: EMPTY
9100: LIST
9101: LIST
9102: LIST
9103: PPUSH
9104: CALL_OW 69
9108: ST_TO_ADDR
// commovetoarea ( zbytek , retr_ar ) ;
9109: LD_LOC 34
9113: PPUSH
9114: LD_INT 20
9116: PPUSH
9117: CALL_OW 113
// changesidefog ( rus , amer ) ;
9121: LD_EXP 1
9125: PPUSH
9126: LD_EXP 2
9130: PPUSH
9131: CALL_OW 343
// setattitude ( rus , amer , att_friend , false ) ;
9135: LD_EXP 1
9139: PPUSH
9140: LD_EXP 2
9144: PPUSH
9145: LD_INT 1
9147: PPUSH
9148: LD_INT 0
9150: PPUSH
9151: CALL_OW 80
// commovetoarea ( filterunitsexceptarea ( targetarea , [ [ f_side , amer ] , [ f_ok ] ] ) , retr_ar_AM ) ;
9155: LD_INT 11
9157: PPUSH
9158: LD_INT 22
9160: PUSH
9161: LD_EXP 2
9165: PUSH
9166: EMPTY
9167: LIST
9168: LIST
9169: PUSH
9170: LD_INT 50
9172: PUSH
9173: EMPTY
9174: LIST
9175: PUSH
9176: EMPTY
9177: LIST
9178: LIST
9179: PPUSH
9180: CALL_OW 71
9184: PPUSH
9185: LD_INT 23
9187: PPUSH
9188: CALL_OW 113
// ingame_video = true ;
9192: LD_ADDR_OWVAR 52
9196: PUSH
9197: LD_INT 1
9199: ST_TO_ADDR
// interface_hidden = true ;
9200: LD_ADDR_OWVAR 54
9204: PUSH
9205: LD_INT 1
9207: ST_TO_ADDR
// centeronunits ( zbytek ) ;
9208: LD_LOC 34
9212: PPUSH
9213: CALL_OW 85
// retreat = true ;
9217: LD_ADDR_EXP 34
9221: PUSH
9222: LD_INT 1
9224: ST_TO_ADDR
// end ;
9225: END
// var zbytek ; every 0 0$0.7 trigger retreat do var ii ;
9226: LD_EXP 34
9230: IFFALSE 9478
9232: GO 9234
9234: DISABLE
9235: LD_INT 0
9237: PPUSH
// begin zbytek = filterunitsinarea ( retr_ar , [ [ f_side , rus ] , [ f_alive ] , [ f_or , [ f_type , unit_human ] , [ f_and , [ f_type , unit_vehicle ] , [ f_occupied ] ] ] ] ) ;
9238: LD_ADDR_LOC 34
9242: PUSH
9243: LD_INT 20
9245: PPUSH
9246: LD_INT 22
9248: PUSH
9249: LD_EXP 1
9253: PUSH
9254: EMPTY
9255: LIST
9256: LIST
9257: PUSH
9258: LD_INT 51
9260: PUSH
9261: EMPTY
9262: LIST
9263: PUSH
9264: LD_INT 2
9266: PUSH
9267: LD_INT 21
9269: PUSH
9270: LD_INT 1
9272: PUSH
9273: EMPTY
9274: LIST
9275: LIST
9276: PUSH
9277: LD_INT 1
9279: PUSH
9280: LD_INT 21
9282: PUSH
9283: LD_INT 2
9285: PUSH
9286: EMPTY
9287: LIST
9288: LIST
9289: PUSH
9290: LD_INT 59
9292: PUSH
9293: EMPTY
9294: LIST
9295: PUSH
9296: EMPTY
9297: LIST
9298: LIST
9299: LIST
9300: PUSH
9301: EMPTY
9302: LIST
9303: LIST
9304: LIST
9305: PUSH
9306: EMPTY
9307: LIST
9308: LIST
9309: LIST
9310: PPUSH
9311: CALL_OW 70
9315: ST_TO_ADDR
// for ii in zbytek do
9316: LD_ADDR_VAR 0 1
9320: PUSH
9321: LD_LOC 34
9325: PUSH
9326: FOR_IN
9327: IFFALSE 9340
// destroyunit ( ii ) ;
9329: LD_VAR 0 1
9333: PPUSH
9334: CALL_OW 65
9338: GO 9326
9340: POP
9341: POP
// zbytek = filterallunits ( [ [ f_side , rus ] , [ f_ok ] , [ f_or , [ f_type , unit_human ] , [ f_and , [ f_type , unit_vehicle ] , [ f_occupied ] ] ] ] ) ;
9342: LD_ADDR_LOC 34
9346: PUSH
9347: LD_INT 22
9349: PUSH
9350: LD_EXP 1
9354: PUSH
9355: EMPTY
9356: LIST
9357: LIST
9358: PUSH
9359: LD_INT 50
9361: PUSH
9362: EMPTY
9363: LIST
9364: PUSH
9365: LD_INT 2
9367: PUSH
9368: LD_INT 21
9370: PUSH
9371: LD_INT 1
9373: PUSH
9374: EMPTY
9375: LIST
9376: LIST
9377: PUSH
9378: LD_INT 1
9380: PUSH
9381: LD_INT 21
9383: PUSH
9384: LD_INT 2
9386: PUSH
9387: EMPTY
9388: LIST
9389: LIST
9390: PUSH
9391: LD_INT 59
9393: PUSH
9394: EMPTY
9395: LIST
9396: PUSH
9397: EMPTY
9398: LIST
9399: LIST
9400: LIST
9401: PUSH
9402: EMPTY
9403: LIST
9404: LIST
9405: LIST
9406: PUSH
9407: EMPTY
9408: LIST
9409: LIST
9410: LIST
9411: PPUSH
9412: CALL_OW 69
9416: ST_TO_ADDR
// if zbytek then
9417: LD_LOC 34
9421: IFFALSE 9462
// begin enable ;
9423: ENABLE
// centeronunits ( zbytek ) ;
9424: LD_LOC 34
9428: PPUSH
9429: CALL_OW 85
// commovetoarea ( zbytek , retr_ar ) ;
9433: LD_LOC 34
9437: PPUSH
9438: LD_INT 20
9440: PPUSH
9441: CALL_OW 113
// addcommovexy ( zbytek , 126 , 98 ) ;
9445: LD_LOC 34
9449: PPUSH
9450: LD_INT 126
9452: PPUSH
9453: LD_INT 98
9455: PPUSH
9456: CALL_OW 171
// end else
9460: GO 9478
// begin ingame_video = false ;
9462: LD_ADDR_OWVAR 52
9466: PUSH
9467: LD_INT 0
9469: ST_TO_ADDR
// interface_hidden = false ;
9470: LD_ADDR_OWVAR 54
9474: PUSH
9475: LD_INT 0
9477: ST_TO_ADDR
// end ; end ;
9478: PPOPN 1
9480: END
// var qres ; every 0 0$10 + 20 20$0 do
9481: GO 9483
9483: DISABLE
// begin dialogueon ;
9484: CALL_OW 6
// sayradio ( rh , D4-Har-1 ) ;
9488: LD_EXP 4
9492: PPUSH
9493: LD_STRING D4-Har-1
9495: PPUSH
9496: CALL_OW 94
// say ( john , D4-JMM-1 ) ;
9500: LD_LOC 1
9504: PPUSH
9505: LD_STRING D4-JMM-1
9507: PPUSH
9508: CALL_OW 88
// sayradio ( rh , D4-Har-2 ) ;
9512: LD_EXP 4
9516: PPUSH
9517: LD_STRING D4-Har-2
9519: PPUSH
9520: CALL_OW 94
// qres = query ( Q1 ) ;
9524: LD_ADDR_LOC 35
9528: PUSH
9529: LD_STRING Q1
9531: PPUSH
9532: CALL_OW 97
9536: ST_TO_ADDR
// case qres of 1 :
9537: LD_LOC 35
9541: PUSH
9542: LD_INT 1
9544: DOUBLE
9545: EQUAL
9546: IFTRUE 9550
9548: GO 9577
9550: POP
// begin say ( john , D5-JMM-1 ) ;
9551: LD_LOC 1
9555: PPUSH
9556: LD_STRING D5-JMM-1
9558: PPUSH
9559: CALL_OW 88
// sayradio ( rh , D5-Har-1 ) ;
9563: LD_EXP 4
9567: PPUSH
9568: LD_STRING D5-Har-1
9570: PPUSH
9571: CALL_OW 94
// end ; 2 :
9575: GO 9648
9577: LD_INT 2
9579: DOUBLE
9580: EQUAL
9581: IFTRUE 9585
9583: GO 9612
9585: POP
// begin say ( john , D5-JMM-2 ) ;
9586: LD_LOC 1
9590: PPUSH
9591: LD_STRING D5-JMM-2
9593: PPUSH
9594: CALL_OW 88
// sayradio ( rh , D5-Har-2 ) ;
9598: LD_EXP 4
9602: PPUSH
9603: LD_STRING D5-Har-2
9605: PPUSH
9606: CALL_OW 94
// end ; 3 :
9610: GO 9648
9612: LD_INT 3
9614: DOUBLE
9615: EQUAL
9616: IFTRUE 9620
9618: GO 9647
9620: POP
// begin say ( john , D5-JMM-3 ) ;
9621: LD_LOC 1
9625: PPUSH
9626: LD_STRING D5-JMM-3
9628: PPUSH
9629: CALL_OW 88
// sayradio ( rh , D5-Har-3 ) ;
9633: LD_EXP 4
9637: PPUSH
9638: LD_STRING D5-Har-3
9640: PPUSH
9641: CALL_OW 94
// end ; end ;
9645: GO 9648
9647: POP
// dialogueoff ;
9648: CALL_OW 7
// end ;
9652: END
// every 0 0$10 + 26 26$0 do
9653: GO 9655
9655: DISABLE
// begin uc_nation = nation_american ;
9656: LD_ADDR_OWVAR 21
9660: PUSH
9661: LD_INT 1
9663: ST_TO_ADDR
// uc_side = amer ;
9664: LD_ADDR_OWVAR 20
9668: PUSH
9669: LD_EXP 2
9673: ST_TO_ADDR
// preparemechanic ( sex_male , 3 ) ;
9674: LD_INT 1
9676: PPUSH
9677: LD_INT 3
9679: PPUSH
9680: CALL_OW 383
// amhsold8 = createhuman ;
9684: LD_ADDR_EXP 9
9688: PUSH
9689: CALL_OW 44
9693: ST_TO_ADDR
// placeunitarea ( amhsold8 , reinf1 , false ) ;
9694: LD_EXP 9
9698: PPUSH
9699: LD_INT 5
9701: PPUSH
9702: LD_INT 0
9704: PPUSH
9705: CALL_OW 49
// preparesoldier ( sex_male , 3 ) ;
9709: LD_INT 1
9711: PPUSH
9712: LD_INT 3
9714: PPUSH
9715: CALL_OW 381
// amhsold9 = createhuman ;
9719: LD_ADDR_EXP 10
9723: PUSH
9724: CALL_OW 44
9728: ST_TO_ADDR
// placeunitarea ( amhsold9 , reinf1 , false ) ;
9729: LD_EXP 10
9733: PPUSH
9734: LD_INT 5
9736: PPUSH
9737: LD_INT 0
9739: PPUSH
9740: CALL_OW 49
// preparesoldier ( sex_male , 3 ) ;
9744: LD_INT 1
9746: PPUSH
9747: LD_INT 3
9749: PPUSH
9750: CALL_OW 381
// amhsolda = createhuman ;
9754: LD_ADDR_EXP 11
9758: PUSH
9759: CALL_OW 44
9763: ST_TO_ADDR
// placeunitarea ( amhsolda , reinf1 , false ) ;
9764: LD_EXP 11
9768: PPUSH
9769: LD_INT 5
9771: PPUSH
9772: LD_INT 0
9774: PPUSH
9775: CALL_OW 49
// case qres of 1 :
9779: LD_LOC 35
9783: PUSH
9784: LD_INT 1
9786: DOUBLE
9787: EQUAL
9788: IFTRUE 9792
9790: GO 9833
9792: POP
// begin centeronunits ( [ amhsold8 , amhsold9 , amhsolda ] ) ;
9793: LD_EXP 9
9797: PUSH
9798: LD_EXP 10
9802: PUSH
9803: LD_EXP 11
9807: PUSH
9808: EMPTY
9809: LIST
9810: LIST
9811: LIST
9812: PPUSH
9813: CALL_OW 85
// chciplo = chciplo + 3 ;
9817: LD_ADDR_LOC 20
9821: PUSH
9822: LD_LOC 20
9826: PUSH
9827: LD_INT 3
9829: PLUS
9830: ST_TO_ADDR
// end ; 2 :
9831: GO 10055
9833: LD_INT 2
9835: DOUBLE
9836: EQUAL
9837: IFTRUE 9841
9839: GO 9923
9841: POP
// begin preparesoldier ( sex_female , 4 ) ;
9842: LD_INT 2
9844: PPUSH
9845: LD_INT 4
9847: PPUSH
9848: CALL_OW 381
// amhsoldb = createhuman ;
9852: LD_ADDR_EXP 12
9856: PUSH
9857: CALL_OW 44
9861: ST_TO_ADDR
// placeunitarea ( amhsoldb , reinf1 , false ) ;
9862: LD_EXP 12
9866: PPUSH
9867: LD_INT 5
9869: PPUSH
9870: LD_INT 0
9872: PPUSH
9873: CALL_OW 49
// chciplo = chciplo + 4 ;
9877: LD_ADDR_LOC 20
9881: PUSH
9882: LD_LOC 20
9886: PUSH
9887: LD_INT 4
9889: PLUS
9890: ST_TO_ADDR
// centeronunits ( [ amhsold8 , amhsold9 , amhsolda , amhsoldb ] ) ;
9891: LD_EXP 9
9895: PUSH
9896: LD_EXP 10
9900: PUSH
9901: LD_EXP 11
9905: PUSH
9906: LD_EXP 12
9910: PUSH
9911: EMPTY
9912: LIST
9913: LIST
9914: LIST
9915: LIST
9916: PPUSH
9917: CALL_OW 85
// end ; 3 :
9921: GO 10055
9923: LD_INT 3
9925: DOUBLE
9926: EQUAL
9927: IFTRUE 9931
9929: GO 10054
9931: POP
// begin preparesoldier ( sex_female , 3 ) ;
9932: LD_INT 2
9934: PPUSH
9935: LD_INT 3
9937: PPUSH
9938: CALL_OW 381
// amhsoldb = createhuman ;
9942: LD_ADDR_EXP 12
9946: PUSH
9947: CALL_OW 44
9951: ST_TO_ADDR
// placeunitarea ( amhsoldb , reinf1 , false ) ;
9952: LD_EXP 12
9956: PPUSH
9957: LD_INT 5
9959: PPUSH
9960: LD_INT 0
9962: PPUSH
9963: CALL_OW 49
// preparesoldier ( sex_male , 4 ) ;
9967: LD_INT 1
9969: PPUSH
9970: LD_INT 4
9972: PPUSH
9973: CALL_OW 381
// amhsoldc = createhuman ;
9977: LD_ADDR_EXP 13
9981: PUSH
9982: CALL_OW 44
9986: ST_TO_ADDR
// placeunitarea ( amhsoldc , reinf1 , false ) ;
9987: LD_EXP 13
9991: PPUSH
9992: LD_INT 5
9994: PPUSH
9995: LD_INT 0
9997: PPUSH
9998: CALL_OW 49
// chciplo = chciplo + 5 ;
10002: LD_ADDR_LOC 20
10006: PUSH
10007: LD_LOC 20
10011: PUSH
10012: LD_INT 5
10014: PLUS
10015: ST_TO_ADDR
// centeronunits ( [ amhsold8 , amhsold9 , amhsolda , amhsoldb , amhsoldc ] ) ;
10016: LD_EXP 9
10020: PUSH
10021: LD_EXP 10
10025: PUSH
10026: LD_EXP 11
10030: PUSH
10031: LD_EXP 12
10035: PUSH
10036: LD_EXP 13
10040: PUSH
10041: EMPTY
10042: LIST
10043: LIST
10044: LIST
10045: LIST
10046: LIST
10047: PPUSH
10048: CALL_OW 85
// end ; end ;
10052: GO 10055
10054: POP
// dialogueon ;
10055: CALL_OW 6
// sayradio ( amhsold8 , D6-Sol3-1 ) ;
10059: LD_EXP 9
10063: PPUSH
10064: LD_STRING D6-Sol3-1
10066: PPUSH
10067: CALL_OW 94
// dialogueoff ;
10071: CALL_OW 7
// end ;
10075: END
// var utoci , cas , utoci_ , utocil ; every 0 0$10 + 30 30$30 do
10076: GO 10078
10078: DISABLE
// begin dialogueon ;
10079: CALL_OW 6
// sayradio ( rh , D7-Har-1 ) ;
10083: LD_EXP 4
10087: PPUSH
10088: LD_STRING D7-Har-1
10090: PPUSH
10091: CALL_OW 94
// wait ( 0 0$2 ) ;
10095: LD_INT 70
10097: PPUSH
10098: CALL_OW 67
// changemissionobjectives ( M2 ) ;
10102: LD_STRING M2
10104: PPUSH
10105: CALL_OW 337
// dialogueoff ;
10109: CALL_OW 7
// utoci = false ;
10113: LD_ADDR_LOC 36
10117: PUSH
10118: LD_INT 0
10120: ST_TO_ADDR
// utocil = 0 ;
10121: LD_ADDR_LOC 39
10125: PUSH
10126: LD_INT 0
10128: ST_TO_ADDR
// utoci_ = 0 ;
10129: LD_ADDR_LOC 38
10133: PUSH
10134: LD_INT 0
10136: ST_TO_ADDR
// cas = 0 ;
10137: LD_ADDR_LOC 37
10141: PUSH
10142: LD_INT 0
10144: ST_TO_ADDR
// enable ( 02 ) ;
10145: LD_INT 2
10147: ENABLE_MARKED
// end ;
10148: END
// every 0 0$1 + 3 3$0 marked 02 do
10149: GO 10151
10151: DISABLE
// begin cas = cas + 1 ;
10152: LD_ADDR_LOC 37
10156: PUSH
10157: LD_LOC 37
10161: PUSH
10162: LD_INT 1
10164: PLUS
10165: ST_TO_ADDR
// if inbattle ( amer ) then
10166: LD_EXP 2
10170: PPUSH
10171: CALL_OW 463
10175: IFFALSE 10191
// utoci_ = utoci_ + 1 ;
10177: LD_ADDR_LOC 38
10181: PUSH
10182: LD_LOC 38
10186: PUSH
10187: LD_INT 1
10189: PLUS
10190: ST_TO_ADDR
// if debug then
10191: LD_EXP 42
10195: IFFALSE 10224
// debug_strings = [ utoci_: & utoci_ , cas: & cas ] ;
10197: LD_ADDR_OWVAR 48
10201: PUSH
10202: LD_STRING utoci_:
10204: PUSH
10205: LD_LOC 38
10209: STR
10210: PUSH
10211: LD_STRING cas:
10213: PUSH
10214: LD_LOC 37
10218: STR
10219: PUSH
10220: EMPTY
10221: LIST
10222: LIST
10223: ST_TO_ADDR
// if cas > 119 then
10224: LD_LOC 37
10228: PUSH
10229: LD_INT 119
10231: GREATER
10232: IFFALSE 10293
// begin cas = 0 ;
10234: LD_ADDR_LOC 37
10238: PUSH
10239: LD_INT 0
10241: ST_TO_ADDR
// if utoci_ > 24 then
10242: LD_LOC 38
10246: PUSH
10247: LD_INT 24
10249: GREATER
10250: IFFALSE 10285
// begin utoci = true ;
10252: LD_ADDR_LOC 36
10256: PUSH
10257: LD_INT 1
10259: ST_TO_ADDR
// if not utocil then
10260: LD_LOC 39
10264: NOT
10265: IFFALSE 10275
// utocil = true ;
10267: LD_ADDR_LOC 39
10271: PUSH
10272: LD_INT 1
10274: ST_TO_ADDR
// utoci_ = 0 ;
10275: LD_ADDR_LOC 38
10279: PUSH
10280: LD_INT 0
10282: ST_TO_ADDR
// end else
10283: GO 10293
// utoci = false ;
10285: LD_ADDR_LOC 36
10289: PUSH
10290: LD_INT 0
10292: ST_TO_ADDR
// end ; enable ;
10293: ENABLE
// end ;
10294: END
// every 0 0$10 + 34 34$30 do var tmp , tmp1 , tmp2 ;
10295: GO 10297
10297: DISABLE
10298: LD_INT 0
10300: PPUSH
10301: PPUSH
10302: PPUSH
// begin case difficulty of 3 :
10303: LD_OWVAR 67
10307: PUSH
10308: LD_INT 3
10310: DOUBLE
10311: EQUAL
10312: IFTRUE 10316
10314: GO 10326
10316: POP
// wait ( 0 0$1 ) ; 2 :
10317: LD_INT 35
10319: PPUSH
10320: CALL_OW 67
10324: GO 10363
10326: LD_INT 2
10328: DOUBLE
10329: EQUAL
10330: IFTRUE 10334
10332: GO 10344
10334: POP
// wait ( 2 2$0 ) ; 1 :
10335: LD_INT 4200
10337: PPUSH
10338: CALL_OW 67
10342: GO 10363
10344: LD_INT 1
10346: DOUBLE
10347: EQUAL
10348: IFTRUE 10352
10350: GO 10362
10352: POP
// wait ( 6 6$0 ) ; end ;
10353: LD_INT 12600
10355: PPUSH
10356: CALL_OW 67
10360: GO 10363
10362: POP
// while true do
10363: LD_INT 1
10365: IFFALSE 10425
// if utoci then
10367: LD_LOC 36
10371: IFFALSE 10382
// wait ( 2 2$0 ) else
10373: LD_INT 4200
10375: PPUSH
10376: CALL_OW 67
10380: GO 10423
// if utoci_ > 0 then
10382: LD_LOC 38
10386: PUSH
10387: LD_INT 0
10389: GREATER
10390: IFFALSE 10421
// if ( ( cas / utoci_ ) <= 6 ) then
10392: LD_LOC 37
10396: PUSH
10397: LD_LOC 38
10401: DIVREAL
10402: PUSH
10403: LD_INT 6
10405: LESSEQUAL
10406: IFFALSE 10417
// wait ( 2 2$0 ) else
10408: LD_INT 4200
10410: PPUSH
10411: CALL_OW 67
10415: GO 10419
// break else
10417: GO 10425
10419: GO 10423
// break ;
10421: GO 10425
10423: GO 10363
// tmp = filterunitsinarea ( rubase0 , [ [ f_side , rus ] ] ) ;
10425: LD_ADDR_VAR 0 1
10429: PUSH
10430: LD_INT 1
10432: PPUSH
10433: LD_INT 22
10435: PUSH
10436: LD_EXP 1
10440: PUSH
10441: EMPTY
10442: LIST
10443: LIST
10444: PUSH
10445: EMPTY
10446: LIST
10447: PPUSH
10448: CALL_OW 70
10452: ST_TO_ADDR
// tmp2 = [ ] ;
10453: LD_ADDR_VAR 0 3
10457: PUSH
10458: EMPTY
10459: ST_TO_ADDR
// for tmp1 in tmp do
10460: LD_ADDR_VAR 0 2
10464: PUSH
10465: LD_VAR 0 1
10469: PUSH
10470: FOR_IN
10471: IFFALSE 10554
// case gettype ( tmp1 ) of unit_human :
10473: LD_VAR 0 2
10477: PPUSH
10478: CALL_OW 247
10482: PUSH
10483: LD_INT 1
10485: DOUBLE
10486: EQUAL
10487: IFTRUE 10491
10489: GO 10513
10491: POP
// tmp2 = tmp2 ^ [ tmp1 ] ; unit_building , unit_vehicle :
10492: LD_ADDR_VAR 0 3
10496: PUSH
10497: LD_VAR 0 3
10501: PUSH
10502: LD_VAR 0 2
10506: PUSH
10507: EMPTY
10508: LIST
10509: ADD
10510: ST_TO_ADDR
10511: GO 10552
10513: LD_INT 3
10515: DOUBLE
10516: EQUAL
10517: IFTRUE 10527
10519: LD_INT 2
10521: DOUBLE
10522: EQUAL
10523: IFTRUE 10527
10525: GO 10551
10527: POP
// tmp2 = tmp2 ^ unitsinside ( tmp1 ) ; end ;
10528: LD_ADDR_VAR 0 3
10532: PUSH
10533: LD_VAR 0 3
10537: PUSH
10538: LD_VAR 0 2
10542: PPUSH
10543: CALL_OW 313
10547: ADD
10548: ST_TO_ADDR
10549: GO 10552
10551: POP
10552: GO 10470
10554: POP
10555: POP
// tmp2 = tmp2 diff [ 0 ] ;
10556: LD_ADDR_VAR 0 3
10560: PUSH
10561: LD_VAR 0 3
10565: PUSH
10566: LD_INT 0
10568: PUSH
10569: EMPTY
10570: LIST
10571: DIFF
10572: ST_TO_ADDR
// if tmp2 > 5 then
10573: LD_VAR 0 3
10577: PUSH
10578: LD_INT 5
10580: GREATER
10581: IFFALSE 10618
// begin dialogueon ;
10583: CALL_OW 6
// sayradio ( rh , D7a-Har-1 ) ;
10587: LD_EXP 4
10591: PPUSH
10592: LD_STRING D7a-Har-1
10594: PPUSH
10595: CALL_OW 94
// dialogueoff ;
10599: CALL_OW 7
// changemissionobjectives ( M2a ) ;
10603: LD_STRING M2a
10605: PPUSH
10606: CALL_OW 337
// flaka_se = true ;
10610: LD_ADDR_LOC 19
10614: PUSH
10615: LD_INT 1
10617: ST_TO_ADDR
// end ; end ;
10618: PPOPN 3
10620: END
// var pom8 , pom8_ ; every 0 0$10 + 40 40$0 trigger flaka_se do
10621: LD_LOC 19
10625: IFFALSE 10965
10627: GO 10629
10629: DISABLE
// begin case difficulty of 3 :
10630: LD_OWVAR 67
10634: PUSH
10635: LD_INT 3
10637: DOUBLE
10638: EQUAL
10639: IFTRUE 10643
10641: GO 10653
10643: POP
// wait ( 0 0$1 ) ; 2 :
10644: LD_INT 35
10646: PPUSH
10647: CALL_OW 67
10651: GO 10690
10653: LD_INT 2
10655: DOUBLE
10656: EQUAL
10657: IFTRUE 10661
10659: GO 10671
10661: POP
// wait ( 3 3$0 ) ; 1 :
10662: LD_INT 6300
10664: PPUSH
10665: CALL_OW 67
10669: GO 10690
10671: LD_INT 1
10673: DOUBLE
10674: EQUAL
10675: IFTRUE 10679
10677: GO 10689
10679: POP
// wait ( 9 9$0 ) ; end ;
10680: LD_INT 18900
10682: PPUSH
10683: CALL_OW 67
10687: GO 10690
10689: POP
// if not filterunitsinarea ( rubase0 , [ [ f_side , amer ] , [ f_alive ] ] ) then
10690: LD_INT 1
10692: PPUSH
10693: LD_INT 22
10695: PUSH
10696: LD_EXP 2
10700: PUSH
10701: EMPTY
10702: LIST
10703: LIST
10704: PUSH
10705: LD_INT 51
10707: PUSH
10708: EMPTY
10709: LIST
10710: PUSH
10711: EMPTY
10712: LIST
10713: LIST
10714: PPUSH
10715: CALL_OW 70
10719: NOT
10720: IFFALSE 10965
// begin dialogueon ;
10722: CALL_OW 6
// if isok ( lucyd ) then
10726: LD_LOC 6
10730: PPUSH
10731: CALL_OW 302
10735: IFFALSE 10751
// sayradio ( rh , D8-Har-1 ) else
10737: LD_EXP 4
10741: PPUSH
10742: LD_STRING D8-Har-1
10744: PPUSH
10745: CALL_OW 94
10749: GO 10763
// sayradio ( rh , D8-Har-1a ) ;
10751: LD_EXP 4
10755: PPUSH
10756: LD_STRING D8-Har-1a
10758: PPUSH
10759: CALL_OW 94
// dialogueoff ;
10763: CALL_OW 7
// pom8 = unitfilter ( filterallunits ( [ [ f_side , amer ] ] ) , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ) diff [ john , isinunit ( john ) ] ;
10767: LD_ADDR_LOC 40
10771: PUSH
10772: LD_INT 22
10774: PUSH
10775: LD_EXP 2
10779: PUSH
10780: EMPTY
10781: LIST
10782: LIST
10783: PUSH
10784: EMPTY
10785: LIST
10786: PPUSH
10787: CALL_OW 69
10791: PPUSH
10792: LD_INT 2
10794: PUSH
10795: LD_INT 21
10797: PUSH
10798: LD_INT 1
10800: PUSH
10801: EMPTY
10802: LIST
10803: LIST
10804: PUSH
10805: LD_INT 21
10807: PUSH
10808: LD_INT 2
10810: PUSH
10811: EMPTY
10812: LIST
10813: LIST
10814: PUSH
10815: EMPTY
10816: LIST
10817: LIST
10818: LIST
10819: PPUSH
10820: CALL_OW 72
10824: PUSH
10825: LD_LOC 1
10829: PUSH
10830: LD_LOC 1
10834: PPUSH
10835: CALL_OW 310
10839: PUSH
10840: EMPTY
10841: LIST
10842: LIST
10843: DIFF
10844: ST_TO_ADDR
// setattitude ( amer , amer2 , att_neutral , true ) ;
10845: LD_EXP 2
10849: PPUSH
10850: LD_EXP 3
10854: PPUSH
10855: LD_INT 0
10857: PPUSH
10858: LD_INT 1
10860: PPUSH
10861: CALL_OW 80
// setside ( pom8 , amer2 ) ;
10865: LD_LOC 40
10869: PPUSH
10870: LD_EXP 3
10874: PPUSH
10875: CALL_OW 235
// setsidebase ( getbase ( ambdept0 ) , amer2 ) ;
10879: LD_INT 4
10881: PPUSH
10882: CALL_OW 274
10886: PPUSH
10887: LD_EXP 3
10891: PPUSH
10892: CALL_OW 236
// changesidefog ( amer2 , amer ) ;
10896: LD_EXP 3
10900: PPUSH
10901: LD_EXP 2
10905: PPUSH
10906: CALL_OW 343
// pom8 = unitfilter ( pom8 , [ f_not , [ f_type , unit_building ] ] ) ;
10910: LD_ADDR_LOC 40
10914: PUSH
10915: LD_LOC 40
10919: PPUSH
10920: LD_INT 3
10922: PUSH
10923: LD_INT 21
10925: PUSH
10926: LD_INT 3
10928: PUSH
10929: EMPTY
10930: LIST
10931: LIST
10932: PUSH
10933: EMPTY
10934: LIST
10935: LIST
10936: PPUSH
10937: CALL_OW 72
10941: ST_TO_ADDR
// comagressivemove ( pom8 , 88 , 89 ) ;
10942: LD_LOC 40
10946: PPUSH
10947: LD_INT 88
10949: PPUSH
10950: LD_INT 89
10952: PPUSH
10953: CALL_OW 114
// zbaven_veleni = true ;
10957: LD_ADDR_LOC 21
10961: PUSH
10962: LD_INT 1
10964: ST_TO_ADDR
// end ; end ;
10965: END
// on Command ( com ) do var i , j , temp , x , y , typeTask ;
10966: LD_INT 0
10968: PPUSH
10969: PPUSH
10970: PPUSH
10971: PPUSH
10972: PPUSH
10973: PPUSH
// begin for i in FilterAllUnits ( [ [ f_side , amer ] , [ f_type , unit_human ] ] ) do
10974: LD_ADDR_VAR 0 2
10978: PUSH
10979: LD_INT 22
10981: PUSH
10982: LD_EXP 2
10986: PUSH
10987: EMPTY
10988: LIST
10989: LIST
10990: PUSH
10991: LD_INT 21
10993: PUSH
10994: LD_INT 1
10996: PUSH
10997: EMPTY
10998: LIST
10999: LIST
11000: PUSH
11001: EMPTY
11002: LIST
11003: LIST
11004: PPUSH
11005: CALL_OW 69
11009: PUSH
11010: FOR_IN
11011: IFFALSE 11217
// if GetTaskList ( i ) > 0 then
11013: LD_VAR 0 2
11017: PPUSH
11018: CALL_OW 437
11022: PUSH
11023: LD_INT 0
11025: GREATER
11026: IFFALSE 11215
// for j = 1 to GetTaskList ( i ) do
11028: LD_ADDR_VAR 0 3
11032: PUSH
11033: DOUBLE
11034: LD_INT 1
11036: DEC
11037: ST_TO_ADDR
11038: LD_VAR 0 2
11042: PPUSH
11043: CALL_OW 437
11047: PUSH
11048: FOR_TO
11049: IFFALSE 11213
// begin temp = GetTaskList ( i ) [ j ] [ 4 ] ;
11051: LD_ADDR_VAR 0 4
11055: PUSH
11056: LD_VAR 0 2
11060: PPUSH
11061: CALL_OW 437
11065: PUSH
11066: LD_VAR 0 3
11070: ARRAY
11071: PUSH
11072: LD_INT 4
11074: ARRAY
11075: ST_TO_ADDR
// x = GetTaskList ( i ) [ j ] [ 2 ] ;
11076: LD_ADDR_VAR 0 5
11080: PUSH
11081: LD_VAR 0 2
11085: PPUSH
11086: CALL_OW 437
11090: PUSH
11091: LD_VAR 0 3
11095: ARRAY
11096: PUSH
11097: LD_INT 2
11099: ARRAY
11100: ST_TO_ADDR
// y = GetTaskList ( i ) [ j ] [ 3 ] ;
11101: LD_ADDR_VAR 0 6
11105: PUSH
11106: LD_VAR 0 2
11110: PPUSH
11111: CALL_OW 437
11115: PUSH
11116: LD_VAR 0 3
11120: ARRAY
11121: PUSH
11122: LD_INT 3
11124: ARRAY
11125: ST_TO_ADDR
// typeTask = GetTaskList ( i ) [ j ] [ 1 ] ;
11126: LD_ADDR_VAR 0 7
11130: PUSH
11131: LD_VAR 0 2
11135: PPUSH
11136: CALL_OW 437
11140: PUSH
11141: LD_VAR 0 3
11145: ARRAY
11146: PUSH
11147: LD_INT 1
11149: ARRAY
11150: ST_TO_ADDR
// if x > 0 and y > 0 and typeTask = B and InArea ( x , y , BlockBuildArea ) then
11151: LD_VAR 0 5
11155: PUSH
11156: LD_INT 0
11158: GREATER
11159: PUSH
11160: LD_VAR 0 6
11164: PUSH
11165: LD_INT 0
11167: GREATER
11168: AND
11169: PUSH
11170: LD_VAR 0 7
11174: PUSH
11175: LD_STRING B
11177: EQUAL
11178: AND
11179: PUSH
11180: LD_VAR 0 5
11184: PPUSH
11185: LD_VAR 0 6
11189: PPUSH
11190: LD_INT 22
11192: PPUSH
11193: CALL_OW 309
11197: AND
11198: IFFALSE 11211
// SetTaskList ( i , [ ] ) ;
11200: LD_VAR 0 2
11204: PPUSH
11205: EMPTY
11206: PPUSH
11207: CALL_OW 446
// end ;
11211: GO 11048
11213: POP
11214: POP
11215: GO 11010
11217: POP
11218: POP
// end ;
11219: PPOPN 7
11221: END
// function return_am ; var pom ; begin
11222: LD_INT 0
11224: PPUSH
11225: PPUSH
// pom = FilterUnitsInArea ( retr_ar , [ [ f_side , amer ] ] ) ;
11226: LD_ADDR_VAR 0 2
11230: PUSH
11231: LD_INT 20
11233: PPUSH
11234: LD_INT 22
11236: PUSH
11237: LD_EXP 2
11241: PUSH
11242: EMPTY
11243: LIST
11244: LIST
11245: PUSH
11246: EMPTY
11247: LIST
11248: PPUSH
11249: CALL_OW 70
11253: ST_TO_ADDR
// ComMoveToArea ( pom , retr_ar_AM ) ;
11254: LD_VAR 0 2
11258: PPUSH
11259: LD_INT 23
11261: PPUSH
11262: CALL_OW 113
// end ;
11266: LD_VAR 0 1
11270: RET
// every 0 0$1 do var pom ;
11271: GO 11273
11273: DISABLE
11274: LD_INT 0
11276: PPUSH
// begin pom = FilterUnitsInArea ( retr_ar , [ [ f_side , amer ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
11277: LD_ADDR_VAR 0 1
11281: PUSH
11282: LD_INT 20
11284: PPUSH
11285: LD_INT 22
11287: PUSH
11288: LD_EXP 2
11292: PUSH
11293: EMPTY
11294: LIST
11295: LIST
11296: PUSH
11297: LD_INT 2
11299: PUSH
11300: LD_INT 21
11302: PUSH
11303: LD_INT 2
11305: PUSH
11306: EMPTY
11307: LIST
11308: LIST
11309: PUSH
11310: LD_INT 21
11312: PUSH
11313: LD_INT 1
11315: PUSH
11316: EMPTY
11317: LIST
11318: LIST
11319: PUSH
11320: EMPTY
11321: LIST
11322: LIST
11323: LIST
11324: PUSH
11325: EMPTY
11326: LIST
11327: LIST
11328: PPUSH
11329: CALL_OW 70
11333: ST_TO_ADDR
// if pom > 0 then
11334: LD_VAR 0 1
11338: PUSH
11339: LD_INT 0
11341: GREATER
11342: IFFALSE 11348
// begin return_am ;
11344: CALL 11222 0 0
// end ; enable ;
11348: ENABLE
// end ; end_of_file
11349: PPOPN 1
11351: END
// export ruv3 , ruhsold8 , ruhsold9 , ruhmech4 , ruhsolda , ruhsoldb , ruhsoldc , ruhsoldd , ruhsolde , ruhsoldf , ruhsoldg , ruhsoldh , ruhsoldi ; export vracet_se ; export ruhmech6 , ruv5 , ruhmech7 , ruv6 , ruhsoldm , ruhsoldn ; var pom , enemy ; function enemies_rb1 ; begin
11352: LD_INT 0
11354: PPUSH
// enemy = FilterUnitsInArea ( rubase1rng , [ [ f_side , amer ] , [ f_alive ] ] ) ;
11355: LD_ADDR_LOC 43
11359: PUSH
11360: LD_INT 3
11362: PPUSH
11363: LD_INT 22
11365: PUSH
11366: LD_EXP 2
11370: PUSH
11371: EMPTY
11372: LIST
11373: LIST
11374: PUSH
11375: LD_INT 51
11377: PUSH
11378: EMPTY
11379: LIST
11380: PUSH
11381: EMPTY
11382: LIST
11383: LIST
11384: PPUSH
11385: CALL_OW 70
11389: ST_TO_ADDR
// result = enemy ;
11390: LD_ADDR_VAR 0 1
11394: PUSH
11395: LD_LOC 43
11399: ST_TO_ADDR
// if enemy then
11400: LD_LOC 43
11404: IFFALSE 11450
// begin pom = unitfilter ( enemy , [ [ f_type , unit_vehicle ] ] ) ;
11406: LD_ADDR_LOC 42
11410: PUSH
11411: LD_LOC 43
11415: PPUSH
11416: LD_INT 21
11418: PUSH
11419: LD_INT 2
11421: PUSH
11422: EMPTY
11423: LIST
11424: LIST
11425: PUSH
11426: EMPTY
11427: LIST
11428: PPUSH
11429: CALL_OW 72
11433: ST_TO_ADDR
// if pom then
11434: LD_LOC 42
11438: IFFALSE 11450
// enemy = pom ;
11440: LD_ADDR_LOC 43
11444: PUSH
11445: LD_LOC 42
11449: ST_TO_ADDR
// end ; end ;
11450: LD_VAR 0 1
11454: RET
// every 0 0$1 + 0 0$20 trigger not rubase1_gone and not attacking and enemies_rb1 do
11455: LD_EXP 21
11459: NOT
11460: PUSH
11461: LD_EXP 18
11465: NOT
11466: AND
11467: PUSH
11468: CALL 11352 0 0
11472: AND
11473: IFFALSE 11555
11475: GO 11477
11477: DISABLE
// begin comfree ( rusove2 ) ;
11478: LD_EXP 17
11482: PPUSH
11483: CALL_OW 139
// comagressivemove ( rusove2 , getx ( enemy [ 1 ] ) , gety ( enemy [ 1 ] ) ) ;
11487: LD_EXP 17
11491: PPUSH
11492: LD_LOC 43
11496: PUSH
11497: LD_INT 1
11499: ARRAY
11500: PPUSH
11501: CALL_OW 250
11505: PPUSH
11506: LD_LOC 43
11510: PUSH
11511: LD_INT 1
11513: ARRAY
11514: PPUSH
11515: CALL_OW 251
11519: PPUSH
11520: CALL_OW 114
// if not isinunit ( ruhengi1 ) then
11524: LD_INT 18
11526: PPUSH
11527: CALL_OW 310
11531: NOT
11532: IFFALSE 11546
// commoveunit ( ruhengi1 , rubdepo0 ) ;
11534: LD_INT 18
11536: PPUSH
11537: LD_EXP 14
11541: PPUSH
11542: CALL_OW 112
// attacking = true ;
11546: LD_ADDR_EXP 18
11550: PUSH
11551: LD_INT 1
11553: ST_TO_ADDR
// enable ;
11554: ENABLE
// end ;
11555: END
// var rusaci_mimo_ ; function rusaci_mimo ; begin
11556: LD_INT 0
11558: PPUSH
// rusaci_mimo_ = rusove2 diff filterunitsinarea ( RuBase1rng , [ [ f_side , rus ] ] ) ;
11559: LD_ADDR_LOC 44
11563: PUSH
11564: LD_EXP 17
11568: PUSH
11569: LD_INT 3
11571: PPUSH
11572: LD_INT 22
11574: PUSH
11575: LD_EXP 1
11579: PUSH
11580: EMPTY
11581: LIST
11582: LIST
11583: PUSH
11584: EMPTY
11585: LIST
11586: PPUSH
11587: CALL_OW 70
11591: DIFF
11592: ST_TO_ADDR
// result = rusaci_mimo_ ;
11593: LD_ADDR_VAR 0 1
11597: PUSH
11598: LD_LOC 44
11602: ST_TO_ADDR
// end ;
11603: LD_VAR 0 1
11607: RET
// every 0 0$1.3 + 0 0$20.7 trigger attacking and rusaci_mimo do
11608: LD_EXP 18
11612: PUSH
11613: CALL 11556 0 0
11617: AND
11618: IFFALSE 11638
11620: GO 11622
11622: DISABLE
// begin comagressivemove ( rusove2 , 44 , 53 ) ;
11623: LD_EXP 17
11627: PPUSH
11628: LD_INT 44
11630: PPUSH
11631: LD_INT 53
11633: PPUSH
11634: CALL_OW 114
// end ;
11638: END
// every 0 0$1 + 0 0$20.3 trigger attacking and not FilterUnitsInArea ( rubase1rng , [ [ f_side , amer ] , [ f_alive ] ] ) do
11639: LD_EXP 18
11643: PUSH
11644: LD_INT 3
11646: PPUSH
11647: LD_INT 22
11649: PUSH
11650: LD_EXP 2
11654: PUSH
11655: EMPTY
11656: LIST
11657: LIST
11658: PUSH
11659: LD_INT 51
11661: PUSH
11662: EMPTY
11663: LIST
11664: PUSH
11665: EMPTY
11666: LIST
11667: LIST
11668: PPUSH
11669: CALL_OW 70
11673: NOT
11674: AND
11675: IFFALSE 11714
11677: GO 11679
11679: DISABLE
// begin comhold ( rusove2 ) ;
11680: LD_EXP 17
11684: PPUSH
11685: CALL_OW 140
// comreturn ( rusove2 ) ;
11689: LD_EXP 17
11693: PPUSH
11694: CALL_OW 144
// attacking = false ;
11698: LD_ADDR_EXP 18
11702: PUSH
11703: LD_INT 0
11705: ST_TO_ADDR
// if not rubase1_gone then
11706: LD_EXP 21
11710: NOT
11711: IFFALSE 11714
// enable ;
11713: ENABLE
// end ;
11714: END
// function manage_prebytek ( zaklad ) ; var bz , bzz ; begin
11715: LD_INT 0
11717: PPUSH
11718: PPUSH
11719: PPUSH
// bzz = [ ] ;
11720: LD_ADDR_VAR 0 4
11724: PUSH
11725: EMPTY
11726: ST_TO_ADDR
// for bz in rusove0 do
11727: LD_ADDR_VAR 0 3
11731: PUSH
11732: LD_EXP 32
11736: PUSH
11737: FOR_IN
11738: IFFALSE 11795
// if gettype ( bz ) = unit_vehicle then
11740: LD_VAR 0 3
11744: PPUSH
11745: CALL_OW 247
11749: PUSH
11750: LD_INT 2
11752: EQUAL
11753: IFFALSE 11793
// begin rusove0 = rusove0 diff [ bz ] ;
11755: LD_ADDR_EXP 32
11759: PUSH
11760: LD_EXP 32
11764: PUSH
11765: LD_VAR 0 3
11769: PUSH
11770: EMPTY
11771: LIST
11772: DIFF
11773: ST_TO_ADDR
// bzz = bzz ^ [ bz ] ;
11774: LD_ADDR_VAR 0 4
11778: PUSH
11779: LD_VAR 0 4
11783: PUSH
11784: LD_VAR 0 3
11788: PUSH
11789: EMPTY
11790: LIST
11791: ADD
11792: ST_TO_ADDR
// end ;
11793: GO 11737
11795: POP
11796: POP
// for bz = 1 to ( 0 + bzz ) do
11797: LD_ADDR_VAR 0 3
11801: PUSH
11802: DOUBLE
11803: LD_INT 1
11805: DEC
11806: ST_TO_ADDR
11807: LD_INT 0
11809: PUSH
11810: LD_VAR 0 4
11814: PLUS
11815: PUSH
11816: FOR_TO
11817: IFFALSE 11891
// if bz <= ( mpora - zaklad ) then
11819: LD_VAR 0 3
11823: PUSH
11824: LD_EXP 39
11828: PUSH
11829: LD_VAR 0 1
11833: MINUS
11834: LESSEQUAL
11835: IFFALSE 11864
// rusove0 = rusove0 ^ [ bzz [ bz ] ] else
11837: LD_ADDR_EXP 32
11841: PUSH
11842: LD_EXP 32
11846: PUSH
11847: LD_VAR 0 4
11851: PUSH
11852: LD_VAR 0 3
11856: ARRAY
11857: PUSH
11858: EMPTY
11859: LIST
11860: ADD
11861: ST_TO_ADDR
11862: GO 11889
// prebytek = prebytek ^ [ bzz [ bz ] ] ;
11864: LD_ADDR_EXP 41
11868: PUSH
11869: LD_EXP 41
11873: PUSH
11874: LD_VAR 0 4
11878: PUSH
11879: LD_VAR 0 3
11883: ARRAY
11884: PUSH
11885: EMPTY
11886: LIST
11887: ADD
11888: ST_TO_ADDR
11889: GO 11816
11891: POP
11892: POP
// end ;
11893: LD_VAR 0 2
11897: RET
// var nppp ; every 17 17$0 do
11898: GO 11900
11900: DISABLE
// begin if retreat then
11901: LD_EXP 34
11905: IFFALSE 11909
// exit ;
11907: GO 12854
// disable ( 17 ) ;
11909: LD_INT 17
11911: DISABLE_MARKED
// case difficulty of 1 :
11912: LD_OWVAR 67
11916: PUSH
11917: LD_INT 1
11919: DOUBLE
11920: EQUAL
11921: IFTRUE 11925
11923: GO 11935
11925: POP
// wait ( 1 1$0 ) ; 2 :
11926: LD_INT 2100
11928: PPUSH
11929: CALL_OW 67
11933: GO 11954
11935: LD_INT 2
11937: DOUBLE
11938: EQUAL
11939: IFTRUE 11943
11941: GO 11953
11943: POP
// wait ( 0 0$30 ) ; end ;
11944: LD_INT 1050
11946: PPUSH
11947: CALL_OW 67
11951: GO 11954
11953: POP
// uc_nation = nation_russian ;
11954: LD_ADDR_OWVAR 21
11958: PUSH
11959: LD_INT 3
11961: ST_TO_ADDR
// uc_side = rus ;
11962: LD_ADDR_OWVAR 20
11966: PUSH
11967: LD_EXP 1
11971: ST_TO_ADDR
// case difficulty of 2 :
11972: LD_OWVAR 67
11976: PUSH
11977: LD_INT 2
11979: DOUBLE
11980: EQUAL
11981: IFTRUE 11985
11983: GO 11998
11985: POP
// preparemechanic ( sex_female , 1 ) ; 3 :
11986: LD_INT 2
11988: PPUSH
11989: LD_INT 1
11991: PPUSH
11992: CALL_OW 383
11996: GO 12041
11998: LD_INT 3
12000: DOUBLE
12001: EQUAL
12002: IFTRUE 12006
12004: GO 12019
12006: POP
// preparemechanic ( sex_female , 2 ) ; 1 :
12007: LD_INT 2
12009: PPUSH
12010: LD_INT 2
12012: PPUSH
12013: CALL_OW 383
12017: GO 12041
12019: LD_INT 1
12021: DOUBLE
12022: EQUAL
12023: IFTRUE 12027
12025: GO 12040
12027: POP
// preparemechanic ( sex_female , 0 ) ; end ;
12028: LD_INT 2
12030: PPUSH
12031: LD_INT 0
12033: PPUSH
12034: CALL_OW 383
12038: GO 12041
12040: POP
// ruhmech6 = createhuman ;
12041: LD_ADDR_EXP 59
12045: PUSH
12046: CALL_OW 44
12050: ST_TO_ADDR
// case difficulty of 1 :
12051: LD_OWVAR 67
12055: PUSH
12056: LD_INT 1
12058: DOUBLE
12059: EQUAL
12060: IFTRUE 12064
12062: GO 12083
12064: POP
// begin vc_chassis = ru_medium_wheeled ;
12065: LD_ADDR_OWVAR 37
12069: PUSH
12070: LD_INT 21
12072: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
12073: LD_ADDR_OWVAR 40
12077: PUSH
12078: LD_INT 42
12080: ST_TO_ADDR
// end ; 2 :
12081: GO 12138
12083: LD_INT 2
12085: DOUBLE
12086: EQUAL
12087: IFTRUE 12091
12089: GO 12110
12091: POP
// begin vc_chassis = ru_medium_wheeled ;
12092: LD_ADDR_OWVAR 37
12096: PUSH
12097: LD_INT 21
12099: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
12100: LD_ADDR_OWVAR 40
12104: PUSH
12105: LD_INT 42
12107: ST_TO_ADDR
// end ; 3 :
12108: GO 12138
12110: LD_INT 3
12112: DOUBLE
12113: EQUAL
12114: IFTRUE 12118
12116: GO 12137
12118: POP
// begin vc_chassis = ru_medium_wheeled ;
12119: LD_ADDR_OWVAR 37
12123: PUSH
12124: LD_INT 21
12126: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
12127: LD_ADDR_OWVAR 40
12131: PUSH
12132: LD_INT 43
12134: ST_TO_ADDR
// end ; end ;
12135: GO 12138
12137: POP
// vc_control = control_manual ;
12138: LD_ADDR_OWVAR 38
12142: PUSH
12143: LD_INT 1
12145: ST_TO_ADDR
// vc_engine = engine_combustion ;
12146: LD_ADDR_OWVAR 39
12150: PUSH
12151: LD_INT 1
12153: ST_TO_ADDR
// ruv5 = createvehicle ;
12154: LD_ADDR_EXP 60
12158: PUSH
12159: CALL_OW 45
12163: ST_TO_ADDR
// setdir ( ruv5 , 0 ) ;
12164: LD_EXP 60
12168: PPUSH
12169: LD_INT 0
12171: PPUSH
12172: CALL_OW 233
// placeunitarea ( ruv5 , rusreinf1 , false ) ;
12176: LD_EXP 60
12180: PPUSH
12181: LD_INT 7
12183: PPUSH
12184: LD_INT 0
12186: PPUSH
12187: CALL_OW 49
// placehumaninunit ( ruhmech6 , ruv5 ) ;
12191: LD_EXP 59
12195: PPUSH
12196: LD_EXP 60
12200: PPUSH
12201: CALL_OW 52
// case difficulty of 2 :
12205: LD_OWVAR 67
12209: PUSH
12210: LD_INT 2
12212: DOUBLE
12213: EQUAL
12214: IFTRUE 12218
12216: GO 12231
12218: POP
// preparemechanic ( sex_male , 1 ) ; 3 :
12219: LD_INT 1
12221: PPUSH
12222: LD_INT 1
12224: PPUSH
12225: CALL_OW 383
12229: GO 12274
12231: LD_INT 3
12233: DOUBLE
12234: EQUAL
12235: IFTRUE 12239
12237: GO 12252
12239: POP
// preparemechanic ( sex_male , 2 ) ; 1 :
12240: LD_INT 1
12242: PPUSH
12243: LD_INT 2
12245: PPUSH
12246: CALL_OW 383
12250: GO 12274
12252: LD_INT 1
12254: DOUBLE
12255: EQUAL
12256: IFTRUE 12260
12258: GO 12273
12260: POP
// preparemechanic ( sex_male , 0 ) ; end ;
12261: LD_INT 1
12263: PPUSH
12264: LD_INT 0
12266: PPUSH
12267: CALL_OW 383
12271: GO 12274
12273: POP
// ruhmech7 = createhuman ;
12274: LD_ADDR_EXP 61
12278: PUSH
12279: CALL_OW 44
12283: ST_TO_ADDR
// case difficulty of 1 :
12284: LD_OWVAR 67
12288: PUSH
12289: LD_INT 1
12291: DOUBLE
12292: EQUAL
12293: IFTRUE 12297
12295: GO 12316
12297: POP
// begin vc_chassis = ru_medium_wheeled ;
12298: LD_ADDR_OWVAR 37
12302: PUSH
12303: LD_INT 21
12305: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
12306: LD_ADDR_OWVAR 40
12310: PUSH
12311: LD_INT 42
12313: ST_TO_ADDR
// end ; 2 :
12314: GO 12371
12316: LD_INT 2
12318: DOUBLE
12319: EQUAL
12320: IFTRUE 12324
12322: GO 12343
12324: POP
// begin vc_chassis = ru_medium_wheeled ;
12325: LD_ADDR_OWVAR 37
12329: PUSH
12330: LD_INT 21
12332: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
12333: LD_ADDR_OWVAR 40
12337: PUSH
12338: LD_INT 43
12340: ST_TO_ADDR
// end ; 3 :
12341: GO 12371
12343: LD_INT 3
12345: DOUBLE
12346: EQUAL
12347: IFTRUE 12351
12349: GO 12370
12351: POP
// begin vc_chassis = ru_medium_wheeled ;
12352: LD_ADDR_OWVAR 37
12356: PUSH
12357: LD_INT 21
12359: ST_TO_ADDR
// vc_weapon = ru_gun ;
12360: LD_ADDR_OWVAR 40
12364: PUSH
12365: LD_INT 44
12367: ST_TO_ADDR
// end ; end ;
12368: GO 12371
12370: POP
// vc_control = control_manual ;
12371: LD_ADDR_OWVAR 38
12375: PUSH
12376: LD_INT 1
12378: ST_TO_ADDR
// vc_engine = engine_combustion ;
12379: LD_ADDR_OWVAR 39
12383: PUSH
12384: LD_INT 1
12386: ST_TO_ADDR
// ruv6 = createvehicle ;
12387: LD_ADDR_EXP 62
12391: PUSH
12392: CALL_OW 45
12396: ST_TO_ADDR
// setdir ( ruv6 , 0 ) ;
12397: LD_EXP 62
12401: PPUSH
12402: LD_INT 0
12404: PPUSH
12405: CALL_OW 233
// placeunitarea ( ruv6 , rusreinf1 , false ) ;
12409: LD_EXP 62
12413: PPUSH
12414: LD_INT 7
12416: PPUSH
12417: LD_INT 0
12419: PPUSH
12420: CALL_OW 49
// placehumaninunit ( ruhmech7 , ruv6 ) ;
12424: LD_EXP 61
12428: PPUSH
12429: LD_EXP 62
12433: PPUSH
12434: CALL_OW 52
// comfree ( [ ruv5 , ruv6 ] ) ;
12438: LD_EXP 60
12442: PUSH
12443: LD_EXP 62
12447: PUSH
12448: EMPTY
12449: LIST
12450: LIST
12451: PPUSH
12452: CALL_OW 139
// if filterunitsinarea ( rubase1rng , [ [ f_side , amer ] , [ f_alive ] ] ) then
12456: LD_INT 3
12458: PPUSH
12459: LD_INT 22
12461: PUSH
12462: LD_EXP 2
12466: PUSH
12467: EMPTY
12468: LIST
12469: LIST
12470: PUSH
12471: LD_INT 51
12473: PUSH
12474: EMPTY
12475: LIST
12476: PUSH
12477: EMPTY
12478: LIST
12479: LIST
12480: PPUSH
12481: CALL_OW 70
12485: IFFALSE 12513
// comagressivemove ( [ ruv5 , ruv6 ] , 56 , 61 ) else
12487: LD_EXP 60
12491: PUSH
12492: LD_EXP 62
12496: PUSH
12497: EMPTY
12498: LIST
12499: LIST
12500: PPUSH
12501: LD_INT 56
12503: PPUSH
12504: LD_INT 61
12506: PPUSH
12507: CALL_OW 114
12511: GO 12537
// comagressivemove ( [ ruv5 , ruv6 ] , 47 , 45 ) ;
12513: LD_EXP 60
12517: PUSH
12518: LD_EXP 62
12522: PUSH
12523: EMPTY
12524: LIST
12525: LIST
12526: PPUSH
12527: LD_INT 47
12529: PPUSH
12530: LD_INT 45
12532: PPUSH
12533: CALL_OW 114
// nppp = unitfilter ( [ ruhsoldj , ruhsoldk , ruhsoldl ] , [ [ f_ok ] ] ) ;
12537: LD_ADDR_LOC 45
12541: PUSH
12542: LD_EXP 25
12546: PUSH
12547: LD_EXP 26
12551: PUSH
12552: LD_EXP 27
12556: PUSH
12557: EMPTY
12558: LIST
12559: LIST
12560: LIST
12561: PPUSH
12562: LD_INT 50
12564: PUSH
12565: EMPTY
12566: LIST
12567: PUSH
12568: EMPTY
12569: LIST
12570: PPUSH
12571: CALL_OW 72
12575: ST_TO_ADDR
// case difficulty of 1 :
12576: LD_OWVAR 67
12580: PUSH
12581: LD_INT 1
12583: DOUBLE
12584: EQUAL
12585: IFTRUE 12589
12587: GO 12602
12589: POP
// preparesoldier ( sex_female , 2 ) ; 2 :
12590: LD_INT 2
12592: PPUSH
12593: LD_INT 2
12595: PPUSH
12596: CALL_OW 381
12600: GO 12645
12602: LD_INT 2
12604: DOUBLE
12605: EQUAL
12606: IFTRUE 12610
12608: GO 12623
12610: POP
// preparesoldier ( sex_female , 2 ) ; 3 :
12611: LD_INT 2
12613: PPUSH
12614: LD_INT 2
12616: PPUSH
12617: CALL_OW 381
12621: GO 12645
12623: LD_INT 3
12625: DOUBLE
12626: EQUAL
12627: IFTRUE 12631
12629: GO 12644
12631: POP
// preparesoldier ( sex_female , 3 ) ; end ;
12632: LD_INT 2
12634: PPUSH
12635: LD_INT 3
12637: PPUSH
12638: CALL_OW 381
12642: GO 12645
12644: POP
// ruhsoldm = createhuman ;
12645: LD_ADDR_EXP 63
12649: PUSH
12650: CALL_OW 44
12654: ST_TO_ADDR
// placeunitarea ( ruhsoldm , rusreinf0 , false ) ;
12655: LD_EXP 63
12659: PPUSH
12660: LD_INT 6
12662: PPUSH
12663: LD_INT 0
12665: PPUSH
12666: CALL_OW 49
// case difficulty of 1 :
12670: LD_OWVAR 67
12674: PUSH
12675: LD_INT 1
12677: DOUBLE
12678: EQUAL
12679: IFTRUE 12683
12681: GO 12696
12683: POP
// preparesoldier ( sex_male , 1 ) ; 2 :
12684: LD_INT 1
12686: PPUSH
12687: LD_INT 1
12689: PPUSH
12690: CALL_OW 381
12694: GO 12739
12696: LD_INT 2
12698: DOUBLE
12699: EQUAL
12700: IFTRUE 12704
12702: GO 12717
12704: POP
// preparesoldier ( sex_male , 2 ) ; 3 :
12705: LD_INT 1
12707: PPUSH
12708: LD_INT 2
12710: PPUSH
12711: CALL_OW 381
12715: GO 12739
12717: LD_INT 3
12719: DOUBLE
12720: EQUAL
12721: IFTRUE 12725
12723: GO 12738
12725: POP
// preparesoldier ( sex_male , 2 ) ; end ;
12726: LD_INT 1
12728: PPUSH
12729: LD_INT 2
12731: PPUSH
12732: CALL_OW 381
12736: GO 12739
12738: POP
// ruhsoldn = createhuman ;
12739: LD_ADDR_EXP 64
12743: PUSH
12744: CALL_OW 44
12748: ST_TO_ADDR
// placeunitarea ( ruhsoldn , rusreinf0 , false ) ;
12749: LD_EXP 64
12753: PPUSH
12754: LD_INT 6
12756: PPUSH
12757: LD_INT 0
12759: PPUSH
12760: CALL_OW 49
// nppp = nppp ^ [ ruhsoldm , ruhsoldn ] ;
12764: LD_ADDR_LOC 45
12768: PUSH
12769: LD_LOC 45
12773: PUSH
12774: LD_EXP 63
12778: PUSH
12779: LD_EXP 64
12783: PUSH
12784: EMPTY
12785: LIST
12786: LIST
12787: ADD
12788: ST_TO_ADDR
// comfree ( nppp ) ;
12789: LD_LOC 45
12793: PPUSH
12794: CALL_OW 139
// comagressivemove ( nppp , 78 , 46 ) ;
12798: LD_LOC 45
12802: PPUSH
12803: LD_INT 78
12805: PPUSH
12806: LD_INT 46
12808: PPUSH
12809: CALL_OW 114
// manage_prebytek ( 2 ) ;
12813: LD_INT 2
12815: PPUSH
12816: CALL 11715 0 1
// rusove0 = rusove0 union ( [ ruv5 , ruv6 ] union nppp ) ;
12820: LD_ADDR_EXP 32
12824: PUSH
12825: LD_EXP 32
12829: PUSH
12830: LD_EXP 60
12834: PUSH
12835: LD_EXP 62
12839: PUSH
12840: EMPTY
12841: LIST
12842: LIST
12843: PUSH
12844: LD_LOC 45
12848: UNION
12849: UNION
12850: ST_TO_ADDR
// enable ( 17 ) ;
12851: LD_INT 17
12853: ENABLE_MARKED
// end ;
12854: END
// every 0 0$1 + 17 17$10 trigger not ( [ ruv5 , ruv6 ] diff filterunitsinarea ( wayarea2 , [ [ f_side , rus ] , [ f_type , unit_vehicle ] ] ) ) marked 17 do
12855: LD_EXP 60
12859: PUSH
12860: LD_EXP 62
12864: PUSH
12865: EMPTY
12866: LIST
12867: LIST
12868: PUSH
12869: LD_INT 10
12871: PPUSH
12872: LD_INT 22
12874: PUSH
12875: LD_EXP 1
12879: PUSH
12880: EMPTY
12881: LIST
12882: LIST
12883: PUSH
12884: LD_INT 21
12886: PUSH
12887: LD_INT 2
12889: PUSH
12890: EMPTY
12891: LIST
12892: LIST
12893: PUSH
12894: EMPTY
12895: LIST
12896: LIST
12897: PPUSH
12898: CALL_OW 70
12902: DIFF
12903: NOT
12904: IFFALSE 12933
12906: GO 12908
12908: DISABLE
// begin comagressivemove ( [ ruv5 , ruv6 ] , 47 , 25 ) ;
12909: LD_EXP 60
12913: PUSH
12914: LD_EXP 62
12918: PUSH
12919: EMPTY
12920: LIST
12921: LIST
12922: PPUSH
12923: LD_INT 47
12925: PPUSH
12926: LD_INT 25
12928: PPUSH
12929: CALL_OW 114
// end ;
12933: END
// every 0 0$1 + 17 17$10 trigger filterunitsinarea ( wayarea1 , [ [ f_side , rus ] , [ f_type , unit_human ] ] ) > 2 marked 17 do
12934: LD_INT 9
12936: PPUSH
12937: LD_INT 22
12939: PUSH
12940: LD_EXP 1
12944: PUSH
12945: EMPTY
12946: LIST
12947: LIST
12948: PUSH
12949: LD_INT 21
12951: PUSH
12952: LD_INT 1
12954: PUSH
12955: EMPTY
12956: LIST
12957: LIST
12958: PUSH
12959: EMPTY
12960: LIST
12961: LIST
12962: PPUSH
12963: CALL_OW 70
12967: PUSH
12968: LD_INT 2
12970: GREATER
12971: IFFALSE 12991
12973: GO 12975
12975: DISABLE
// begin comagressivemove ( nppp , 61 , 22 ) ;
12976: LD_LOC 45
12980: PPUSH
12981: LD_INT 61
12983: PPUSH
12984: LD_INT 22
12986: PPUSH
12987: CALL_OW 114
// end ;
12991: END
// every 18 18$0 marked 17 do var tmp ;
12992: GO 12994
12994: DISABLE
12995: LD_INT 0
12997: PPUSH
// begin case difficulty of 1 :
12998: LD_OWVAR 67
13002: PUSH
13003: LD_INT 1
13005: DOUBLE
13006: EQUAL
13007: IFTRUE 13011
13009: GO 13021
13011: POP
// wait ( 1 1$0 ) ; 2 :
13012: LD_INT 2100
13014: PPUSH
13015: CALL_OW 67
13019: GO 13040
13021: LD_INT 2
13023: DOUBLE
13024: EQUAL
13025: IFTRUE 13029
13027: GO 13039
13029: POP
// wait ( 0 0$30 ) ; end ;
13030: LD_INT 1050
13032: PPUSH
13033: CALL_OW 67
13037: GO 13040
13039: POP
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_bunker ] , [ f_occupied ] ] ) ;
13040: LD_ADDR_VAR 0 1
13044: PUSH
13045: LD_INT 22
13047: PUSH
13048: LD_EXP 2
13052: PUSH
13053: EMPTY
13054: LIST
13055: LIST
13056: PUSH
13057: LD_INT 30
13059: PUSH
13060: LD_INT 32
13062: PUSH
13063: EMPTY
13064: LIST
13065: LIST
13066: PUSH
13067: LD_INT 59
13069: PUSH
13070: EMPTY
13071: LIST
13072: PUSH
13073: EMPTY
13074: LIST
13075: LIST
13076: LIST
13077: PPUSH
13078: CALL_OW 69
13082: ST_TO_ADDR
// if not tmp then
13083: LD_VAR 0 1
13087: NOT
13088: IFFALSE 13133
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_breastwork ] , [ f_occupied ] ] ) ;
13090: LD_ADDR_VAR 0 1
13094: PUSH
13095: LD_INT 22
13097: PUSH
13098: LD_EXP 2
13102: PUSH
13103: EMPTY
13104: LIST
13105: LIST
13106: PUSH
13107: LD_INT 30
13109: PUSH
13110: LD_INT 31
13112: PUSH
13113: EMPTY
13114: LIST
13115: LIST
13116: PUSH
13117: LD_INT 59
13119: PUSH
13120: EMPTY
13121: LIST
13122: PUSH
13123: EMPTY
13124: LIST
13125: LIST
13126: LIST
13127: PPUSH
13128: CALL_OW 69
13132: ST_TO_ADDR
// if not tmp then
13133: LD_VAR 0 1
13137: NOT
13138: IFFALSE 13183
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_vehicle ] , [ f_occupied ] ] ) ;
13140: LD_ADDR_VAR 0 1
13144: PUSH
13145: LD_INT 22
13147: PUSH
13148: LD_EXP 2
13152: PUSH
13153: EMPTY
13154: LIST
13155: LIST
13156: PUSH
13157: LD_INT 21
13159: PUSH
13160: LD_INT 2
13162: PUSH
13163: EMPTY
13164: LIST
13165: LIST
13166: PUSH
13167: LD_INT 59
13169: PUSH
13170: EMPTY
13171: LIST
13172: PUSH
13173: EMPTY
13174: LIST
13175: LIST
13176: LIST
13177: PPUSH
13178: CALL_OW 69
13182: ST_TO_ADDR
// if not tmp then
13183: LD_VAR 0 1
13187: NOT
13188: IFFALSE 13233
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
13190: LD_ADDR_VAR 0 1
13194: PUSH
13195: LD_INT 22
13197: PUSH
13198: LD_EXP 2
13202: PUSH
13203: EMPTY
13204: LIST
13205: LIST
13206: PUSH
13207: LD_INT 21
13209: PUSH
13210: LD_INT 1
13212: PUSH
13213: EMPTY
13214: LIST
13215: LIST
13216: PUSH
13217: LD_INT 50
13219: PUSH
13220: EMPTY
13221: LIST
13222: PUSH
13223: EMPTY
13224: LIST
13225: LIST
13226: LIST
13227: PPUSH
13228: CALL_OW 69
13232: ST_TO_ADDR
// if tmp then
13233: LD_VAR 0 1
13237: IFFALSE 13257
// comattackunit ( rusove0 , tmp [ 1 ] ) ;
13239: LD_EXP 32
13243: PPUSH
13244: LD_VAR 0 1
13248: PUSH
13249: LD_INT 1
13251: ARRAY
13252: PPUSH
13253: CALL_OW 115
// end ;
13257: PPOPN 1
13259: END
// every 22 22$0 do
13260: GO 13262
13262: DISABLE
// begin if retreat then
13263: LD_EXP 34
13267: IFFALSE 13271
// exit ;
13269: GO 13899
// uc_nation = nation_russian ;
13271: LD_ADDR_OWVAR 21
13275: PUSH
13276: LD_INT 3
13278: ST_TO_ADDR
// uc_side = rus ;
13279: LD_ADDR_OWVAR 20
13283: PUSH
13284: LD_EXP 1
13288: ST_TO_ADDR
// case difficulty of 2 :
13289: LD_OWVAR 67
13293: PUSH
13294: LD_INT 2
13296: DOUBLE
13297: EQUAL
13298: IFTRUE 13302
13300: GO 13315
13302: POP
// preparemechanic ( sex_male , 1 ) ; 3 :
13303: LD_INT 1
13305: PPUSH
13306: LD_INT 1
13308: PPUSH
13309: CALL_OW 383
13313: GO 13358
13315: LD_INT 3
13317: DOUBLE
13318: EQUAL
13319: IFTRUE 13323
13321: GO 13336
13323: POP
// preparemechanic ( sex_male , 2 ) ; 1 :
13324: LD_INT 1
13326: PPUSH
13327: LD_INT 2
13329: PPUSH
13330: CALL_OW 383
13334: GO 13358
13336: LD_INT 1
13338: DOUBLE
13339: EQUAL
13340: IFTRUE 13344
13342: GO 13357
13344: POP
// preparemechanic ( sex_male , 0 ) ; end ;
13345: LD_INT 1
13347: PPUSH
13348: LD_INT 0
13350: PPUSH
13351: CALL_OW 383
13355: GO 13358
13357: POP
// ruhmech4 = createhuman ;
13358: LD_ADDR_EXP 48
13362: PUSH
13363: CALL_OW 44
13367: ST_TO_ADDR
// case difficulty of 1 :
13368: LD_OWVAR 67
13372: PUSH
13373: LD_INT 1
13375: DOUBLE
13376: EQUAL
13377: IFTRUE 13381
13379: GO 13394
13381: POP
// preparesoldier ( sex_female , 2 ) ; 2 :
13382: LD_INT 2
13384: PPUSH
13385: LD_INT 2
13387: PPUSH
13388: CALL_OW 381
13392: GO 13437
13394: LD_INT 2
13396: DOUBLE
13397: EQUAL
13398: IFTRUE 13402
13400: GO 13415
13402: POP
// preparesoldier ( sex_female , 3 ) ; 3 :
13403: LD_INT 2
13405: PPUSH
13406: LD_INT 3
13408: PPUSH
13409: CALL_OW 381
13413: GO 13437
13415: LD_INT 3
13417: DOUBLE
13418: EQUAL
13419: IFTRUE 13423
13421: GO 13436
13423: POP
// preparesoldier ( sex_female , 4 ) ; end ;
13424: LD_INT 2
13426: PPUSH
13427: LD_INT 4
13429: PPUSH
13430: CALL_OW 381
13434: GO 13437
13436: POP
// hc_class = class_soldier ;
13437: LD_ADDR_OWVAR 28
13441: PUSH
13442: LD_INT 1
13444: ST_TO_ADDR
// ruhsold8 = createhuman ;
13445: LD_ADDR_EXP 46
13449: PUSH
13450: CALL_OW 44
13454: ST_TO_ADDR
// if difficulty = 3 then
13455: LD_OWVAR 67
13459: PUSH
13460: LD_INT 3
13462: EQUAL
13463: IFFALSE 13480
// placeunitarea ( ruhsold8 , rusreinf0 , false ) ;
13465: LD_EXP 46
13469: PPUSH
13470: LD_INT 6
13472: PPUSH
13473: LD_INT 0
13475: PPUSH
13476: CALL_OW 49
// case difficulty of 1 :
13480: LD_OWVAR 67
13484: PUSH
13485: LD_INT 1
13487: DOUBLE
13488: EQUAL
13489: IFTRUE 13493
13491: GO 13506
13493: POP
// preparesoldier ( sex_female , 2 ) ; 2 :
13494: LD_INT 2
13496: PPUSH
13497: LD_INT 2
13499: PPUSH
13500: CALL_OW 381
13504: GO 13549
13506: LD_INT 2
13508: DOUBLE
13509: EQUAL
13510: IFTRUE 13514
13512: GO 13527
13514: POP
// preparesoldier ( sex_female , 3 ) ; 3 :
13515: LD_INT 2
13517: PPUSH
13518: LD_INT 3
13520: PPUSH
13521: CALL_OW 381
13525: GO 13549
13527: LD_INT 3
13529: DOUBLE
13530: EQUAL
13531: IFTRUE 13535
13533: GO 13548
13535: POP
// preparesoldier ( sex_female , 4 ) ; end ;
13536: LD_INT 2
13538: PPUSH
13539: LD_INT 4
13541: PPUSH
13542: CALL_OW 381
13546: GO 13549
13548: POP
// ruhsold9 = createhuman ;
13549: LD_ADDR_EXP 47
13553: PUSH
13554: CALL_OW 44
13558: ST_TO_ADDR
// placeunitarea ( ruhsold9 , rusreinf0 , false ) ;
13559: LD_EXP 47
13563: PPUSH
13564: LD_INT 6
13566: PPUSH
13567: LD_INT 0
13569: PPUSH
13570: CALL_OW 49
// case difficulty of 1 :
13574: LD_OWVAR 67
13578: PUSH
13579: LD_INT 1
13581: DOUBLE
13582: EQUAL
13583: IFTRUE 13587
13585: GO 13606
13587: POP
// begin vc_chassis = ru_medium_wheeled ;
13588: LD_ADDR_OWVAR 37
13592: PUSH
13593: LD_INT 21
13595: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
13596: LD_ADDR_OWVAR 40
13600: PUSH
13601: LD_INT 42
13603: ST_TO_ADDR
// end ; 2 :
13604: GO 13661
13606: LD_INT 2
13608: DOUBLE
13609: EQUAL
13610: IFTRUE 13614
13612: GO 13633
13614: POP
// begin vc_chassis = ru_medium_wheeled ;
13615: LD_ADDR_OWVAR 37
13619: PUSH
13620: LD_INT 21
13622: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
13623: LD_ADDR_OWVAR 40
13627: PUSH
13628: LD_INT 43
13630: ST_TO_ADDR
// end ; 3 :
13631: GO 13661
13633: LD_INT 3
13635: DOUBLE
13636: EQUAL
13637: IFTRUE 13641
13639: GO 13660
13641: POP
// begin vc_chassis = ru_heavy_wheeled ;
13642: LD_ADDR_OWVAR 37
13646: PUSH
13647: LD_INT 23
13649: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
13650: LD_ADDR_OWVAR 40
13654: PUSH
13655: LD_INT 43
13657: ST_TO_ADDR
// end ; end ;
13658: GO 13661
13660: POP
// vc_control = control_manual ;
13661: LD_ADDR_OWVAR 38
13665: PUSH
13666: LD_INT 1
13668: ST_TO_ADDR
// vc_engine = engine_combustion ;
13669: LD_ADDR_OWVAR 39
13673: PUSH
13674: LD_INT 1
13676: ST_TO_ADDR
// ruv3 = createvehicle ;
13677: LD_ADDR_EXP 45
13681: PUSH
13682: CALL_OW 45
13686: ST_TO_ADDR
// placeunitarea ( ruv3 , rusreinf0 , false ) ;
13687: LD_EXP 45
13691: PPUSH
13692: LD_INT 6
13694: PPUSH
13695: LD_INT 0
13697: PPUSH
13698: CALL_OW 49
// placehumaninunit ( ruhmech4 , ruv3 ) ;
13702: LD_EXP 48
13706: PPUSH
13707: LD_EXP 45
13711: PPUSH
13712: CALL_OW 52
// case difficulty of 1 :
13716: LD_OWVAR 67
13720: PUSH
13721: LD_INT 1
13723: DOUBLE
13724: EQUAL
13725: IFTRUE 13729
13727: GO 13742
13729: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
13730: LD_INT 1
13732: PPUSH
13733: LD_INT 2
13735: PPUSH
13736: CALL_OW 381
13740: GO 13785
13742: LD_INT 2
13744: DOUBLE
13745: EQUAL
13746: IFTRUE 13750
13748: GO 13763
13750: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
13751: LD_INT 1
13753: PPUSH
13754: LD_INT 3
13756: PPUSH
13757: CALL_OW 381
13761: GO 13785
13763: LD_INT 3
13765: DOUBLE
13766: EQUAL
13767: IFTRUE 13771
13769: GO 13784
13771: POP
// preparesoldier ( sex_male , 4 ) ; end ;
13772: LD_INT 1
13774: PPUSH
13775: LD_INT 4
13777: PPUSH
13778: CALL_OW 381
13782: GO 13785
13784: POP
// ruhsolda = createhuman ;
13785: LD_ADDR_EXP 49
13789: PUSH
13790: CALL_OW 44
13794: ST_TO_ADDR
// placeunitarea ( ruhsolda , rusreinf0 , false ) ;
13795: LD_EXP 49
13799: PPUSH
13800: LD_INT 6
13802: PPUSH
13803: LD_INT 0
13805: PPUSH
13806: CALL_OW 49
// manage_prebytek ( 1 ) ;
13810: LD_INT 1
13812: PPUSH
13813: CALL 11715 0 1
// rusove0 = rusove0 union [ ruhsold8 , ruhsold9 , ruhsolda , ruv3 ] ;
13817: LD_ADDR_EXP 32
13821: PUSH
13822: LD_EXP 32
13826: PUSH
13827: LD_EXP 46
13831: PUSH
13832: LD_EXP 47
13836: PUSH
13837: LD_EXP 49
13841: PUSH
13842: LD_EXP 45
13846: PUSH
13847: EMPTY
13848: LIST
13849: LIST
13850: LIST
13851: LIST
13852: UNION
13853: ST_TO_ADDR
// comfree ( [ ruhsold8 , ruhsold9 , ruhsolda , ruv3 ] ) ;
13854: LD_EXP 46
13858: PUSH
13859: LD_EXP 47
13863: PUSH
13864: LD_EXP 49
13868: PUSH
13869: LD_EXP 45
13873: PUSH
13874: EMPTY
13875: LIST
13876: LIST
13877: LIST
13878: LIST
13879: PPUSH
13880: CALL_OW 139
// comagressivemove ( rusove0 , 66 , 66 ) ;
13884: LD_EXP 32
13888: PPUSH
13889: LD_INT 66
13891: PPUSH
13892: LD_INT 66
13894: PPUSH
13895: CALL_OW 114
// end ;
13899: END
// every 0 0$1 + 22 22$09 trigger isinarea ( ruhsold8 , wayarea0 ) or isinarea ( ruhsold9 , wayarea0 ) or isinarea ( ruhsolda , wayarea0 ) do
13900: LD_EXP 46
13904: PPUSH
13905: LD_INT 8
13907: PPUSH
13908: CALL_OW 308
13912: PUSH
13913: LD_EXP 47
13917: PPUSH
13918: LD_INT 8
13920: PPUSH
13921: CALL_OW 308
13925: OR
13926: PUSH
13927: LD_EXP 49
13931: PPUSH
13932: LD_INT 8
13934: PPUSH
13935: CALL_OW 308
13939: OR
13940: IFFALSE 13967
13942: GO 13944
13944: DISABLE
// begin wait ( 1 1$0 ) ;
13945: LD_INT 2100
13947: PPUSH
13948: CALL_OW 67
// comagressivemove ( rusove0 , 50 , 50 ) ;
13952: LD_EXP 32
13956: PPUSH
13957: LD_INT 50
13959: PPUSH
13960: LD_INT 50
13962: PPUSH
13963: CALL_OW 114
// end ;
13967: END
// every 0 0$1 + 22 22$19 trigger isinarea ( ruhsold8 , wayarea2 ) or isinarea ( ruhsold9 , wayarea2 ) or isinarea ( ruhsolda , wayarea2 ) do var tmp ;
13968: LD_EXP 46
13972: PPUSH
13973: LD_INT 10
13975: PPUSH
13976: CALL_OW 308
13980: PUSH
13981: LD_EXP 47
13985: PPUSH
13986: LD_INT 10
13988: PPUSH
13989: CALL_OW 308
13993: OR
13994: PUSH
13995: LD_EXP 49
13999: PPUSH
14000: LD_INT 10
14002: PPUSH
14003: CALL_OW 308
14007: OR
14008: IFFALSE 14265
14010: GO 14012
14012: DISABLE
14013: LD_INT 0
14015: PPUSH
// begin wait ( 0 0$30 ) ;
14016: LD_INT 1050
14018: PPUSH
14019: CALL_OW 67
// comagressivemove ( rusove0 , 40 , 30 ) ;
14023: LD_EXP 32
14027: PPUSH
14028: LD_INT 40
14030: PPUSH
14031: LD_INT 30
14033: PPUSH
14034: CALL_OW 114
// wait ( 0 0$10 ) ;
14038: LD_INT 350
14040: PPUSH
14041: CALL_OW 67
// tmp = filterunitsinarea ( ambase , [ [ f_side , amer ] , [ f_alive ] , [ f_type , unit_human ] ] ) ;
14045: LD_ADDR_VAR 0 1
14049: PUSH
14050: LD_INT 2
14052: PPUSH
14053: LD_INT 22
14055: PUSH
14056: LD_EXP 2
14060: PUSH
14061: EMPTY
14062: LIST
14063: LIST
14064: PUSH
14065: LD_INT 51
14067: PUSH
14068: EMPTY
14069: LIST
14070: PUSH
14071: LD_INT 21
14073: PUSH
14074: LD_INT 1
14076: PUSH
14077: EMPTY
14078: LIST
14079: LIST
14080: PUSH
14081: EMPTY
14082: LIST
14083: LIST
14084: LIST
14085: PPUSH
14086: CALL_OW 70
14090: ST_TO_ADDR
// if not tmp then
14091: LD_VAR 0 1
14095: NOT
14096: IFFALSE 14141
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_breastwork ] , [ f_occupied ] ] ) ;
14098: LD_ADDR_VAR 0 1
14102: PUSH
14103: LD_INT 22
14105: PUSH
14106: LD_EXP 2
14110: PUSH
14111: EMPTY
14112: LIST
14113: LIST
14114: PUSH
14115: LD_INT 30
14117: PUSH
14118: LD_INT 31
14120: PUSH
14121: EMPTY
14122: LIST
14123: LIST
14124: PUSH
14125: LD_INT 59
14127: PUSH
14128: EMPTY
14129: LIST
14130: PUSH
14131: EMPTY
14132: LIST
14133: LIST
14134: LIST
14135: PPUSH
14136: CALL_OW 69
14140: ST_TO_ADDR
// if not tmp then
14141: LD_VAR 0 1
14145: NOT
14146: IFFALSE 14191
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_vehicle ] , [ f_occupied ] ] ) ;
14148: LD_ADDR_VAR 0 1
14152: PUSH
14153: LD_INT 22
14155: PUSH
14156: LD_EXP 2
14160: PUSH
14161: EMPTY
14162: LIST
14163: LIST
14164: PUSH
14165: LD_INT 21
14167: PUSH
14168: LD_INT 2
14170: PUSH
14171: EMPTY
14172: LIST
14173: LIST
14174: PUSH
14175: LD_INT 59
14177: PUSH
14178: EMPTY
14179: LIST
14180: PUSH
14181: EMPTY
14182: LIST
14183: LIST
14184: LIST
14185: PPUSH
14186: CALL_OW 69
14190: ST_TO_ADDR
// if not tmp then
14191: LD_VAR 0 1
14195: NOT
14196: IFFALSE 14241
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
14198: LD_ADDR_VAR 0 1
14202: PUSH
14203: LD_INT 22
14205: PUSH
14206: LD_EXP 2
14210: PUSH
14211: EMPTY
14212: LIST
14213: LIST
14214: PUSH
14215: LD_INT 21
14217: PUSH
14218: LD_INT 1
14220: PUSH
14221: EMPTY
14222: LIST
14223: LIST
14224: PUSH
14225: LD_INT 50
14227: PUSH
14228: EMPTY
14229: LIST
14230: PUSH
14231: EMPTY
14232: LIST
14233: LIST
14234: LIST
14235: PPUSH
14236: CALL_OW 69
14240: ST_TO_ADDR
// if tmp then
14241: LD_VAR 0 1
14245: IFFALSE 14265
// comattackunit ( rusove0 , tmp [ 1 ] ) ;
14247: LD_EXP 32
14251: PPUSH
14252: LD_VAR 0 1
14256: PUSH
14257: LD_INT 1
14259: ARRAY
14260: PPUSH
14261: CALL_OW 115
// end ;
14265: PPOPN 1
14267: END
// every 28 28$40 do
14268: GO 14270
14270: DISABLE
// begin if retreat then
14271: LD_EXP 34
14275: IFFALSE 14279
// exit ;
14277: GO 15309
// vracet_se = false ;
14279: LD_ADDR_EXP 58
14283: PUSH
14284: LD_INT 0
14286: ST_TO_ADDR
// uc_nation = nation_russian ;
14287: LD_ADDR_OWVAR 21
14291: PUSH
14292: LD_INT 3
14294: ST_TO_ADDR
// uc_side = rus ;
14295: LD_ADDR_OWVAR 20
14299: PUSH
14300: LD_EXP 1
14304: ST_TO_ADDR
// case difficulty of 1 :
14305: LD_OWVAR 67
14309: PUSH
14310: LD_INT 1
14312: DOUBLE
14313: EQUAL
14314: IFTRUE 14318
14316: GO 14331
14318: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
14319: LD_INT 1
14321: PPUSH
14322: LD_INT 2
14324: PPUSH
14325: CALL_OW 381
14329: GO 14374
14331: LD_INT 2
14333: DOUBLE
14334: EQUAL
14335: IFTRUE 14339
14337: GO 14352
14339: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
14340: LD_INT 1
14342: PPUSH
14343: LD_INT 3
14345: PPUSH
14346: CALL_OW 381
14350: GO 14374
14352: LD_INT 3
14354: DOUBLE
14355: EQUAL
14356: IFTRUE 14360
14358: GO 14373
14360: POP
// preparesoldier ( sex_male , 4 ) ; end ;
14361: LD_INT 1
14363: PPUSH
14364: LD_INT 4
14366: PPUSH
14367: CALL_OW 381
14371: GO 14374
14373: POP
// ruhsoldb = createhuman ;
14374: LD_ADDR_EXP 50
14378: PUSH
14379: CALL_OW 44
14383: ST_TO_ADDR
// placeunitarea ( ruhsoldb , rusreinf0 , false ) ;
14384: LD_EXP 50
14388: PPUSH
14389: LD_INT 6
14391: PPUSH
14392: LD_INT 0
14394: PPUSH
14395: CALL_OW 49
// case difficulty of 1 :
14399: LD_OWVAR 67
14403: PUSH
14404: LD_INT 1
14406: DOUBLE
14407: EQUAL
14408: IFTRUE 14412
14410: GO 14425
14412: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
14413: LD_INT 1
14415: PPUSH
14416: LD_INT 2
14418: PPUSH
14419: CALL_OW 381
14423: GO 14468
14425: LD_INT 2
14427: DOUBLE
14428: EQUAL
14429: IFTRUE 14433
14431: GO 14446
14433: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
14434: LD_INT 1
14436: PPUSH
14437: LD_INT 3
14439: PPUSH
14440: CALL_OW 381
14444: GO 14468
14446: LD_INT 3
14448: DOUBLE
14449: EQUAL
14450: IFTRUE 14454
14452: GO 14467
14454: POP
// preparesoldier ( sex_male , 3 ) ; end ;
14455: LD_INT 1
14457: PPUSH
14458: LD_INT 3
14460: PPUSH
14461: CALL_OW 381
14465: GO 14468
14467: POP
// ruhsoldc = createhuman ;
14468: LD_ADDR_EXP 51
14472: PUSH
14473: CALL_OW 44
14477: ST_TO_ADDR
// placeunitarea ( ruhsoldc , rusreinf0 , false ) ;
14478: LD_EXP 51
14482: PPUSH
14483: LD_INT 6
14485: PPUSH
14486: LD_INT 0
14488: PPUSH
14489: CALL_OW 49
// case difficulty of 1 :
14493: LD_OWVAR 67
14497: PUSH
14498: LD_INT 1
14500: DOUBLE
14501: EQUAL
14502: IFTRUE 14506
14504: GO 14519
14506: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
14507: LD_INT 1
14509: PPUSH
14510: LD_INT 2
14512: PPUSH
14513: CALL_OW 381
14517: GO 14562
14519: LD_INT 2
14521: DOUBLE
14522: EQUAL
14523: IFTRUE 14527
14525: GO 14540
14527: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
14528: LD_INT 1
14530: PPUSH
14531: LD_INT 3
14533: PPUSH
14534: CALL_OW 381
14538: GO 14562
14540: LD_INT 3
14542: DOUBLE
14543: EQUAL
14544: IFTRUE 14548
14546: GO 14561
14548: POP
// preparesoldier ( sex_male , 4 ) ; end ;
14549: LD_INT 1
14551: PPUSH
14552: LD_INT 4
14554: PPUSH
14555: CALL_OW 381
14559: GO 14562
14561: POP
// ruhsoldd = createhuman ;
14562: LD_ADDR_EXP 52
14566: PUSH
14567: CALL_OW 44
14571: ST_TO_ADDR
// placeunitarea ( ruhsoldd , rusreinf0 , false ) ;
14572: LD_EXP 52
14576: PPUSH
14577: LD_INT 6
14579: PPUSH
14580: LD_INT 0
14582: PPUSH
14583: CALL_OW 49
// case difficulty of 1 :
14587: LD_OWVAR 67
14591: PUSH
14592: LD_INT 1
14594: DOUBLE
14595: EQUAL
14596: IFTRUE 14600
14598: GO 14613
14600: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
14601: LD_INT 1
14603: PPUSH
14604: LD_INT 2
14606: PPUSH
14607: CALL_OW 381
14611: GO 14656
14613: LD_INT 2
14615: DOUBLE
14616: EQUAL
14617: IFTRUE 14621
14619: GO 14634
14621: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
14622: LD_INT 1
14624: PPUSH
14625: LD_INT 3
14627: PPUSH
14628: CALL_OW 381
14632: GO 14656
14634: LD_INT 3
14636: DOUBLE
14637: EQUAL
14638: IFTRUE 14642
14640: GO 14655
14642: POP
// preparesoldier ( sex_male , 3 ) ; end ;
14643: LD_INT 1
14645: PPUSH
14646: LD_INT 3
14648: PPUSH
14649: CALL_OW 381
14653: GO 14656
14655: POP
// ruhsolde = createhuman ;
14656: LD_ADDR_EXP 53
14660: PUSH
14661: CALL_OW 44
14665: ST_TO_ADDR
// placeunitarea ( ruhsolde , rusreinf0 , false ) ;
14666: LD_EXP 53
14670: PPUSH
14671: LD_INT 6
14673: PPUSH
14674: LD_INT 0
14676: PPUSH
14677: CALL_OW 49
// comfree ( [ ruhsoldb , ruhsoldc , ruhsoldd , ruhsolde ] ) ;
14681: LD_EXP 50
14685: PUSH
14686: LD_EXP 51
14690: PUSH
14691: LD_EXP 52
14695: PUSH
14696: LD_EXP 53
14700: PUSH
14701: EMPTY
14702: LIST
14703: LIST
14704: LIST
14705: LIST
14706: PPUSH
14707: CALL_OW 139
// comagressivemove ( [ ruhsoldb , ruhsoldc , ruhsoldd , ruhsolde ] , 78 , 46 ) ;
14711: LD_EXP 50
14715: PUSH
14716: LD_EXP 51
14720: PUSH
14721: LD_EXP 52
14725: PUSH
14726: LD_EXP 53
14730: PUSH
14731: EMPTY
14732: LIST
14733: LIST
14734: LIST
14735: LIST
14736: PPUSH
14737: LD_INT 78
14739: PPUSH
14740: LD_INT 46
14742: PPUSH
14743: CALL_OW 114
// rusove2 = [ ] ;
14747: LD_ADDR_EXP 17
14751: PUSH
14752: EMPTY
14753: ST_TO_ADDR
// if isok ( ruv1 ) then
14754: LD_EXP 23
14758: PPUSH
14759: CALL_OW 302
14763: IFFALSE 14784
// rusove2 = rusove2 ^ [ ruv1 ] ;
14765: LD_ADDR_EXP 17
14769: PUSH
14770: LD_EXP 17
14774: PUSH
14775: LD_EXP 23
14779: PUSH
14780: EMPTY
14781: LIST
14782: ADD
14783: ST_TO_ADDR
// if isok ( ruv2 ) then
14784: LD_EXP 24
14788: PPUSH
14789: CALL_OW 302
14793: IFFALSE 14814
// rusove2 = rusove2 ^ [ ruv2 ] ;
14795: LD_ADDR_EXP 17
14799: PUSH
14800: LD_EXP 17
14804: PUSH
14805: LD_EXP 24
14809: PUSH
14810: EMPTY
14811: LIST
14812: ADD
14813: ST_TO_ADDR
// manage_prebytek ( 0 + rusove2 ) ;
14814: LD_INT 0
14816: PUSH
14817: LD_EXP 17
14821: PLUS
14822: PPUSH
14823: CALL 11715 0 1
// if isok ( ruhsold0 ) then
14827: LD_INT 8
14829: PPUSH
14830: CALL_OW 302
14834: IFFALSE 14853
// rusove2 = rusove2 ^ [ ruhsold0 ] ;
14836: LD_ADDR_EXP 17
14840: PUSH
14841: LD_EXP 17
14845: PUSH
14846: LD_INT 8
14848: PUSH
14849: EMPTY
14850: LIST
14851: ADD
14852: ST_TO_ADDR
// if isok ( ruhsold6 ) then
14853: LD_INT 27
14855: PPUSH
14856: CALL_OW 302
14860: IFFALSE 14879
// rusove2 = rusove2 ^ [ ruhsold6 ] ;
14862: LD_ADDR_EXP 17
14866: PUSH
14867: LD_EXP 17
14871: PUSH
14872: LD_INT 27
14874: PUSH
14875: EMPTY
14876: LIST
14877: ADD
14878: ST_TO_ADDR
// if isok ( ruhsold7 ) then
14879: LD_INT 28
14881: PPUSH
14882: CALL_OW 302
14886: IFFALSE 14905
// rusove2 = rusove2 ^ [ ruhsold7 ] ;
14888: LD_ADDR_EXP 17
14892: PUSH
14893: LD_EXP 17
14897: PUSH
14898: LD_INT 28
14900: PUSH
14901: EMPTY
14902: LIST
14903: ADD
14904: ST_TO_ADDR
// case difficulty of 1 :
14905: LD_OWVAR 67
14909: PUSH
14910: LD_INT 1
14912: DOUBLE
14913: EQUAL
14914: IFTRUE 14918
14916: GO 14931
14918: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
14919: LD_INT 1
14921: PPUSH
14922: LD_INT 2
14924: PPUSH
14925: CALL_OW 381
14929: GO 14974
14931: LD_INT 2
14933: DOUBLE
14934: EQUAL
14935: IFTRUE 14939
14937: GO 14952
14939: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
14940: LD_INT 1
14942: PPUSH
14943: LD_INT 3
14945: PPUSH
14946: CALL_OW 381
14950: GO 14974
14952: LD_INT 3
14954: DOUBLE
14955: EQUAL
14956: IFTRUE 14960
14958: GO 14973
14960: POP
// preparesoldier ( sex_male , 4 ) ; end ;
14961: LD_INT 1
14963: PPUSH
14964: LD_INT 4
14966: PPUSH
14967: CALL_OW 381
14971: GO 14974
14973: POP
// ruhsoldf = createhuman ;
14974: LD_ADDR_EXP 54
14978: PUSH
14979: CALL_OW 44
14983: ST_TO_ADDR
// placeunitarea ( ruhsoldf , rusreinf1 , false ) ;
14984: LD_EXP 54
14988: PPUSH
14989: LD_INT 7
14991: PPUSH
14992: LD_INT 0
14994: PPUSH
14995: CALL_OW 49
// case difficulty of 1 :
14999: LD_OWVAR 67
15003: PUSH
15004: LD_INT 1
15006: DOUBLE
15007: EQUAL
15008: IFTRUE 15012
15010: GO 15025
15012: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
15013: LD_INT 1
15015: PPUSH
15016: LD_INT 2
15018: PPUSH
15019: CALL_OW 381
15023: GO 15068
15025: LD_INT 2
15027: DOUBLE
15028: EQUAL
15029: IFTRUE 15033
15031: GO 15046
15033: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
15034: LD_INT 1
15036: PPUSH
15037: LD_INT 3
15039: PPUSH
15040: CALL_OW 381
15044: GO 15068
15046: LD_INT 3
15048: DOUBLE
15049: EQUAL
15050: IFTRUE 15054
15052: GO 15067
15054: POP
// preparesoldier ( sex_male , 3 ) ; end ;
15055: LD_INT 1
15057: PPUSH
15058: LD_INT 3
15060: PPUSH
15061: CALL_OW 381
15065: GO 15068
15067: POP
// ruhsoldg = createhuman ;
15068: LD_ADDR_EXP 55
15072: PUSH
15073: CALL_OW 44
15077: ST_TO_ADDR
// if difficulty = 3 then
15078: LD_OWVAR 67
15082: PUSH
15083: LD_INT 3
15085: EQUAL
15086: IFFALSE 15103
// placeunitarea ( ruhsoldg , rusreinf1 , false ) ;
15088: LD_EXP 55
15092: PPUSH
15093: LD_INT 7
15095: PPUSH
15096: LD_INT 0
15098: PPUSH
15099: CALL_OW 49
// case difficulty of 1 :
15103: LD_OWVAR 67
15107: PUSH
15108: LD_INT 1
15110: DOUBLE
15111: EQUAL
15112: IFTRUE 15116
15114: GO 15129
15116: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
15117: LD_INT 1
15119: PPUSH
15120: LD_INT 2
15122: PPUSH
15123: CALL_OW 381
15127: GO 15172
15129: LD_INT 2
15131: DOUBLE
15132: EQUAL
15133: IFTRUE 15137
15135: GO 15150
15137: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
15138: LD_INT 1
15140: PPUSH
15141: LD_INT 3
15143: PPUSH
15144: CALL_OW 381
15148: GO 15172
15150: LD_INT 3
15152: DOUBLE
15153: EQUAL
15154: IFTRUE 15158
15156: GO 15171
15158: POP
// preparesoldier ( sex_male , 4 ) ; end ;
15159: LD_INT 1
15161: PPUSH
15162: LD_INT 4
15164: PPUSH
15165: CALL_OW 381
15169: GO 15172
15171: POP
// ruhsoldh = createhuman ;
15172: LD_ADDR_EXP 56
15176: PUSH
15177: CALL_OW 44
15181: ST_TO_ADDR
// placeunitarea ( ruhsoldh , rusreinf1 , false ) ;
15182: LD_EXP 56
15186: PPUSH
15187: LD_INT 7
15189: PPUSH
15190: LD_INT 0
15192: PPUSH
15193: CALL_OW 49
// preparesoldier ( sex_male , 4 ) ;
15197: LD_INT 1
15199: PPUSH
15200: LD_INT 4
15202: PPUSH
15203: CALL_OW 381
// ruhsoldi = createhuman ;
15207: LD_ADDR_EXP 57
15211: PUSH
15212: CALL_OW 44
15216: ST_TO_ADDR
// placeunitarea ( ruhsoldi , rusreinf1 , false ) ;
15217: LD_EXP 57
15221: PPUSH
15222: LD_INT 7
15224: PPUSH
15225: LD_INT 0
15227: PPUSH
15228: CALL_OW 49
// rusove2 = rusove2 ^ [ ruhsoldf , ruhsoldg , ruhsoldh , ruhsoldi ] ;
15232: LD_ADDR_EXP 17
15236: PUSH
15237: LD_EXP 17
15241: PUSH
15242: LD_EXP 54
15246: PUSH
15247: LD_EXP 55
15251: PUSH
15252: LD_EXP 56
15256: PUSH
15257: LD_EXP 57
15261: PUSH
15262: EMPTY
15263: LIST
15264: LIST
15265: LIST
15266: LIST
15267: ADD
15268: ST_TO_ADDR
// comfree ( rusove2 ) ;
15269: LD_EXP 17
15273: PPUSH
15274: CALL_OW 139
// rusove0 = rusove0 union rusove2 ;
15278: LD_ADDR_EXP 32
15282: PUSH
15283: LD_EXP 32
15287: PUSH
15288: LD_EXP 17
15292: UNION
15293: ST_TO_ADDR
// comagressivemove ( rusove0 , 47 , 45 ) ;
15294: LD_EXP 32
15298: PPUSH
15299: LD_INT 47
15301: PPUSH
15302: LD_INT 45
15304: PPUSH
15305: CALL_OW 114
// end ;
15309: END
// every 0 0$1 + 28 28$49 trigger isinarea ( ruhsoldb , wayarea1 ) or isinarea ( ruhsoldc , wayarea1 ) or isinarea ( ruhsoldd , wayarea1 ) or isinarea ( ruhsolde , wayarea1 ) do var tmp ;
15310: LD_EXP 50
15314: PPUSH
15315: LD_INT 9
15317: PPUSH
15318: CALL_OW 308
15322: PUSH
15323: LD_EXP 51
15327: PPUSH
15328: LD_INT 9
15330: PPUSH
15331: CALL_OW 308
15335: OR
15336: PUSH
15337: LD_EXP 52
15341: PPUSH
15342: LD_INT 9
15344: PPUSH
15345: CALL_OW 308
15349: OR
15350: PUSH
15351: LD_EXP 53
15355: PPUSH
15356: LD_INT 9
15358: PPUSH
15359: CALL_OW 308
15363: OR
15364: IFFALSE 15656
15366: GO 15368
15368: DISABLE
15369: LD_INT 0
15371: PPUSH
// begin comagressivemove ( [ ruhsoldb , ruhsoldc , ruhsoldd , ruhsolde ] , 53 , 13 ) ;
15372: LD_EXP 50
15376: PUSH
15377: LD_EXP 51
15381: PUSH
15382: LD_EXP 52
15386: PUSH
15387: LD_EXP 53
15391: PUSH
15392: EMPTY
15393: LIST
15394: LIST
15395: LIST
15396: LIST
15397: PPUSH
15398: LD_INT 53
15400: PPUSH
15401: LD_INT 13
15403: PPUSH
15404: CALL_OW 114
// wait ( 0 0$7 ) ;
15408: LD_INT 245
15410: PPUSH
15411: CALL_OW 67
// tmp = filterunitsinarea ( ambase , [ [ f_side , amer ] , [ f_alive ] , [ f_type , unit_human ] ] ) ;
15415: LD_ADDR_VAR 0 1
15419: PUSH
15420: LD_INT 2
15422: PPUSH
15423: LD_INT 22
15425: PUSH
15426: LD_EXP 2
15430: PUSH
15431: EMPTY
15432: LIST
15433: LIST
15434: PUSH
15435: LD_INT 51
15437: PUSH
15438: EMPTY
15439: LIST
15440: PUSH
15441: LD_INT 21
15443: PUSH
15444: LD_INT 1
15446: PUSH
15447: EMPTY
15448: LIST
15449: LIST
15450: PUSH
15451: EMPTY
15452: LIST
15453: LIST
15454: LIST
15455: PPUSH
15456: CALL_OW 70
15460: ST_TO_ADDR
// if not tmp then
15461: LD_VAR 0 1
15465: NOT
15466: IFFALSE 15511
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_breastwork ] , [ f_occupied ] ] ) ;
15468: LD_ADDR_VAR 0 1
15472: PUSH
15473: LD_INT 22
15475: PUSH
15476: LD_EXP 2
15480: PUSH
15481: EMPTY
15482: LIST
15483: LIST
15484: PUSH
15485: LD_INT 30
15487: PUSH
15488: LD_INT 31
15490: PUSH
15491: EMPTY
15492: LIST
15493: LIST
15494: PUSH
15495: LD_INT 59
15497: PUSH
15498: EMPTY
15499: LIST
15500: PUSH
15501: EMPTY
15502: LIST
15503: LIST
15504: LIST
15505: PPUSH
15506: CALL_OW 69
15510: ST_TO_ADDR
// if not tmp then
15511: LD_VAR 0 1
15515: NOT
15516: IFFALSE 15561
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_vehicle ] , [ f_occupied ] ] ) ;
15518: LD_ADDR_VAR 0 1
15522: PUSH
15523: LD_INT 22
15525: PUSH
15526: LD_EXP 2
15530: PUSH
15531: EMPTY
15532: LIST
15533: LIST
15534: PUSH
15535: LD_INT 21
15537: PUSH
15538: LD_INT 2
15540: PUSH
15541: EMPTY
15542: LIST
15543: LIST
15544: PUSH
15545: LD_INT 59
15547: PUSH
15548: EMPTY
15549: LIST
15550: PUSH
15551: EMPTY
15552: LIST
15553: LIST
15554: LIST
15555: PPUSH
15556: CALL_OW 69
15560: ST_TO_ADDR
// if not tmp then
15561: LD_VAR 0 1
15565: NOT
15566: IFFALSE 15611
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
15568: LD_ADDR_VAR 0 1
15572: PUSH
15573: LD_INT 22
15575: PUSH
15576: LD_EXP 2
15580: PUSH
15581: EMPTY
15582: LIST
15583: LIST
15584: PUSH
15585: LD_INT 21
15587: PUSH
15588: LD_INT 1
15590: PUSH
15591: EMPTY
15592: LIST
15593: LIST
15594: PUSH
15595: LD_INT 50
15597: PUSH
15598: EMPTY
15599: LIST
15600: PUSH
15601: EMPTY
15602: LIST
15603: LIST
15604: LIST
15605: PPUSH
15606: CALL_OW 69
15610: ST_TO_ADDR
// if tmp then
15611: LD_VAR 0 1
15615: IFFALSE 15656
// comattackunit ( [ ruhsoldb , ruhsoldc , ruhsoldd , ruhsolde ] , tmp [ 1 ] ) ;
15617: LD_EXP 50
15621: PUSH
15622: LD_EXP 51
15626: PUSH
15627: LD_EXP 52
15631: PUSH
15632: LD_EXP 53
15636: PUSH
15637: EMPTY
15638: LIST
15639: LIST
15640: LIST
15641: LIST
15642: PPUSH
15643: LD_VAR 0 1
15647: PUSH
15648: LD_INT 1
15650: ARRAY
15651: PPUSH
15652: CALL_OW 115
// end ;
15656: PPOPN 1
15658: END
// every 0 0$1 + 28 28$49 trigger isinarea ( ruhsoldf , wayarea2 ) or isinarea ( ruhsoldg , wayarea2 ) or isinarea ( ruhsoldh , wayarea2 ) or isinarea ( ruhsoldi , wayarea2 ) do var tmp ;
15659: LD_EXP 54
15663: PPUSH
15664: LD_INT 10
15666: PPUSH
15667: CALL_OW 308
15671: PUSH
15672: LD_EXP 55
15676: PPUSH
15677: LD_INT 10
15679: PPUSH
15680: CALL_OW 308
15684: OR
15685: PUSH
15686: LD_EXP 56
15690: PPUSH
15691: LD_INT 10
15693: PPUSH
15694: CALL_OW 308
15698: OR
15699: PUSH
15700: LD_EXP 57
15704: PPUSH
15705: LD_INT 10
15707: PPUSH
15708: CALL_OW 308
15712: OR
15713: IFFALSE 16006
15715: GO 15717
15717: DISABLE
15718: LD_INT 0
15720: PPUSH
// begin if not filterunitsinarea ( rubase1rng , [ [ f_side , rus ] , [ f_btype , b_depot ] ] ) then
15721: LD_INT 3
15723: PPUSH
15724: LD_INT 22
15726: PUSH
15727: LD_EXP 1
15731: PUSH
15732: EMPTY
15733: LIST
15734: LIST
15735: PUSH
15736: LD_INT 30
15738: PUSH
15739: LD_INT 0
15741: PUSH
15742: EMPTY
15743: LIST
15744: LIST
15745: PUSH
15746: EMPTY
15747: LIST
15748: LIST
15749: PPUSH
15750: CALL_OW 70
15754: NOT
15755: IFFALSE 15764
// wait ( 1 1$30 ) ;
15757: LD_INT 3150
15759: PPUSH
15760: CALL_OW 67
// comagressivemove ( rusove0 , 47 , 25 ) ;
15764: LD_EXP 32
15768: PPUSH
15769: LD_INT 47
15771: PPUSH
15772: LD_INT 25
15774: PPUSH
15775: CALL_OW 114
// wait ( 0 0$3 ) ;
15779: LD_INT 105
15781: PPUSH
15782: CALL_OW 67
// tmp = filterunitsinarea ( ambase , [ [ f_side , amer ] , [ f_alive ] , [ f_type , unit_human ] ] ) ;
15786: LD_ADDR_VAR 0 1
15790: PUSH
15791: LD_INT 2
15793: PPUSH
15794: LD_INT 22
15796: PUSH
15797: LD_EXP 2
15801: PUSH
15802: EMPTY
15803: LIST
15804: LIST
15805: PUSH
15806: LD_INT 51
15808: PUSH
15809: EMPTY
15810: LIST
15811: PUSH
15812: LD_INT 21
15814: PUSH
15815: LD_INT 1
15817: PUSH
15818: EMPTY
15819: LIST
15820: LIST
15821: PUSH
15822: EMPTY
15823: LIST
15824: LIST
15825: LIST
15826: PPUSH
15827: CALL_OW 70
15831: ST_TO_ADDR
// if not tmp then
15832: LD_VAR 0 1
15836: NOT
15837: IFFALSE 15882
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_breastwork ] , [ f_occupied ] ] ) ;
15839: LD_ADDR_VAR 0 1
15843: PUSH
15844: LD_INT 22
15846: PUSH
15847: LD_EXP 2
15851: PUSH
15852: EMPTY
15853: LIST
15854: LIST
15855: PUSH
15856: LD_INT 30
15858: PUSH
15859: LD_INT 31
15861: PUSH
15862: EMPTY
15863: LIST
15864: LIST
15865: PUSH
15866: LD_INT 59
15868: PUSH
15869: EMPTY
15870: LIST
15871: PUSH
15872: EMPTY
15873: LIST
15874: LIST
15875: LIST
15876: PPUSH
15877: CALL_OW 69
15881: ST_TO_ADDR
// if not tmp then
15882: LD_VAR 0 1
15886: NOT
15887: IFFALSE 15932
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_vehicle ] , [ f_occupied ] ] ) ;
15889: LD_ADDR_VAR 0 1
15893: PUSH
15894: LD_INT 22
15896: PUSH
15897: LD_EXP 2
15901: PUSH
15902: EMPTY
15903: LIST
15904: LIST
15905: PUSH
15906: LD_INT 21
15908: PUSH
15909: LD_INT 2
15911: PUSH
15912: EMPTY
15913: LIST
15914: LIST
15915: PUSH
15916: LD_INT 59
15918: PUSH
15919: EMPTY
15920: LIST
15921: PUSH
15922: EMPTY
15923: LIST
15924: LIST
15925: LIST
15926: PPUSH
15927: CALL_OW 69
15931: ST_TO_ADDR
// if not tmp then
15932: LD_VAR 0 1
15936: NOT
15937: IFFALSE 15982
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
15939: LD_ADDR_VAR 0 1
15943: PUSH
15944: LD_INT 22
15946: PUSH
15947: LD_EXP 2
15951: PUSH
15952: EMPTY
15953: LIST
15954: LIST
15955: PUSH
15956: LD_INT 21
15958: PUSH
15959: LD_INT 1
15961: PUSH
15962: EMPTY
15963: LIST
15964: LIST
15965: PUSH
15966: LD_INT 50
15968: PUSH
15969: EMPTY
15970: LIST
15971: PUSH
15972: EMPTY
15973: LIST
15974: LIST
15975: LIST
15976: PPUSH
15977: CALL_OW 69
15981: ST_TO_ADDR
// if tmp then
15982: LD_VAR 0 1
15986: IFFALSE 16006
// comattackunit ( rusove0 , tmp [ 1 ] ) ;
15988: LD_EXP 32
15992: PPUSH
15993: LD_VAR 0 1
15997: PUSH
15998: LD_INT 1
16000: ARRAY
16001: PPUSH
16002: CALL_OW 115
// end ;
16006: PPOPN 1
16008: END
// var zivi_amerikani_ ; function zivi_amerikani ; begin
16009: LD_INT 0
16011: PPUSH
// zivi_amerikani_ = filterunitsinarea ( ambase , [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
16012: LD_ADDR_LOC 46
16016: PUSH
16017: LD_INT 2
16019: PPUSH
16020: LD_INT 22
16022: PUSH
16023: LD_EXP 2
16027: PUSH
16028: EMPTY
16029: LIST
16030: LIST
16031: PUSH
16032: LD_INT 21
16034: PUSH
16035: LD_INT 1
16037: PUSH
16038: EMPTY
16039: LIST
16040: LIST
16041: PUSH
16042: LD_INT 50
16044: PUSH
16045: EMPTY
16046: LIST
16047: PUSH
16048: EMPTY
16049: LIST
16050: LIST
16051: LIST
16052: PPUSH
16053: CALL_OW 70
16057: ST_TO_ADDR
// if not zivi_amerikani_ then
16058: LD_LOC 46
16062: NOT
16063: IFFALSE 16108
// zivi_amerikani_ = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
16065: LD_ADDR_LOC 46
16069: PUSH
16070: LD_INT 22
16072: PUSH
16073: LD_EXP 2
16077: PUSH
16078: EMPTY
16079: LIST
16080: LIST
16081: PUSH
16082: LD_INT 21
16084: PUSH
16085: LD_INT 1
16087: PUSH
16088: EMPTY
16089: LIST
16090: LIST
16091: PUSH
16092: LD_INT 50
16094: PUSH
16095: EMPTY
16096: LIST
16097: PUSH
16098: EMPTY
16099: LIST
16100: LIST
16101: LIST
16102: PPUSH
16103: CALL_OW 69
16107: ST_TO_ADDR
// result = zivi_amerikani_ ;
16108: LD_ADDR_VAR 0 1
16112: PUSH
16113: LD_LOC 46
16117: ST_TO_ADDR
// end ;
16118: LD_VAR 0 1
16122: RET
// every 0 0$1 + 30 30$0 trigger zivi_amerikani do
16123: CALL 16009 0 0
16127: IFFALSE 16157
16129: GO 16131
16131: DISABLE
// begin if not retreat then
16132: LD_EXP 34
16136: NOT
16137: IFFALSE 16157
// comattackunit ( rusove0 , zivi_amerikani_ [ 1 ] ) ;
16139: LD_EXP 32
16143: PPUSH
16144: LD_LOC 46
16148: PUSH
16149: LD_INT 1
16151: ARRAY
16152: PPUSH
16153: CALL_OW 115
// end ; end_of_file
16157: END
// var rusove_mimo ; var pom_rumi ; function rusove_mimo_bazi ; begin
16158: LD_INT 0
16160: PPUSH
// pom_rumi = rusove diff filterunitsinarea ( rubase0 , [ [ f_type , unit_human ] , [ f_ok ] ] ) ;
16161: LD_ADDR_LOC 48
16165: PUSH
16166: LD_EXP 31
16170: PUSH
16171: LD_INT 1
16173: PPUSH
16174: LD_INT 21
16176: PUSH
16177: LD_INT 1
16179: PUSH
16180: EMPTY
16181: LIST
16182: LIST
16183: PUSH
16184: LD_INT 50
16186: PUSH
16187: EMPTY
16188: LIST
16189: PUSH
16190: EMPTY
16191: LIST
16192: LIST
16193: PPUSH
16194: CALL_OW 70
16198: DIFF
16199: ST_TO_ADDR
// rusove_mimo = pom_rumi diff filterunitsinarea ( rubase0 , [ [ f_type , unit_vehicle ] , [ f_ok ] ] ) ;
16200: LD_ADDR_LOC 47
16204: PUSH
16205: LD_LOC 48
16209: PUSH
16210: LD_INT 1
16212: PPUSH
16213: LD_INT 21
16215: PUSH
16216: LD_INT 2
16218: PUSH
16219: EMPTY
16220: LIST
16221: LIST
16222: PUSH
16223: LD_INT 50
16225: PUSH
16226: EMPTY
16227: LIST
16228: PUSH
16229: EMPTY
16230: LIST
16231: LIST
16232: PPUSH
16233: CALL_OW 70
16237: DIFF
16238: ST_TO_ADDR
// result = rusove_mimo ;
16239: LD_ADDR_VAR 0 1
16243: PUSH
16244: LD_LOC 47
16248: ST_TO_ADDR
// end ;
16249: LD_VAR 0 1
16253: RET
// every 0 0$1 trigger rusove_mimo_bazi do
16254: CALL 16158 0 0
16258: IFFALSE 16281
16260: GO 16262
16262: DISABLE
// begin if retreat then
16263: LD_EXP 34
16267: IFFALSE 16271
// exit ;
16269: GO 16281
// comreturn ( rusove_mimo ) ;
16271: LD_LOC 47
16275: PPUSH
16276: CALL_OW 144
// enable ;
16280: ENABLE
// end ;
16281: END
// var healeri_mimo ; function healeri_mimo_rb ; begin
16282: LD_INT 0
16284: PPUSH
// healeri_mimo = healeri diff filterunitsinarea ( repairbay , [ [ f_type , unit_human ] , [ f_ok ] ] ) ;
16285: LD_ADDR_LOC 49
16289: PUSH
16290: LD_EXP 33
16294: PUSH
16295: LD_INT 12
16297: PPUSH
16298: LD_INT 21
16300: PUSH
16301: LD_INT 1
16303: PUSH
16304: EMPTY
16305: LIST
16306: LIST
16307: PUSH
16308: LD_INT 50
16310: PUSH
16311: EMPTY
16312: LIST
16313: PUSH
16314: EMPTY
16315: LIST
16316: LIST
16317: PPUSH
16318: CALL_OW 70
16322: DIFF
16323: ST_TO_ADDR
// result = healeri_mimo ;
16324: LD_ADDR_VAR 0 1
16328: PUSH
16329: LD_LOC 49
16333: ST_TO_ADDR
// end ;
16334: LD_VAR 0 1
16338: RET
// every 0 0$0.9 trigger healeri_mimo_rb do
16339: CALL 16282 0 0
16343: IFFALSE 16372
16345: GO 16347
16347: DISABLE
// begin if retreat then
16348: LD_EXP 34
16352: IFFALSE 16356
// exit ;
16354: GO 16372
// commovexy ( healeri_mimo , 85 , 97 ) ;
16356: LD_LOC 49
16360: PPUSH
16361: LD_INT 85
16363: PPUSH
16364: LD_INT 97
16366: PPUSH
16367: CALL_OW 111
// enable ;
16371: ENABLE
// end ;
16372: END
// var poskoz_ ; var kn_ ; every 0 0$0.7 do
16373: GO 16375
16375: DISABLE
// begin if retreat then
16376: LD_EXP 34
16380: IFFALSE 16384
// exit ;
16382: GO 16594
// poskoz_ = unitfilter ( rusove0 , [ [ f_type , unit_vehicle ] ] ) ;
16384: LD_ADDR_LOC 50
16388: PUSH
16389: LD_EXP 32
16393: PPUSH
16394: LD_INT 21
16396: PUSH
16397: LD_INT 2
16399: PUSH
16400: EMPTY
16401: LIST
16402: LIST
16403: PUSH
16404: EMPTY
16405: LIST
16406: PPUSH
16407: CALL_OW 72
16411: ST_TO_ADDR
// for kn_ in poskoz_ do
16412: LD_ADDR_LOC 51
16416: PUSH
16417: LD_LOC 50
16421: PUSH
16422: FOR_IN
16423: IFFALSE 16479
// begin if getlives ( kn_ ) <= hr_auta then
16425: LD_LOC 51
16429: PPUSH
16430: CALL_OW 256
16434: PUSH
16435: LD_EXP 38
16439: LESSEQUAL
16440: IFFALSE 16477
// begin rusove0 = rusove0 diff kn_ ;
16442: LD_ADDR_EXP 32
16446: PUSH
16447: LD_EXP 32
16451: PUSH
16452: LD_LOC 51
16456: DIFF
16457: ST_TO_ADDR
// poskoz = poskoz ^ [ kn_ ] ;
16458: LD_ADDR_EXP 35
16462: PUSH
16463: LD_EXP 35
16467: PUSH
16468: LD_LOC 51
16472: PUSH
16473: EMPTY
16474: LIST
16475: ADD
16476: ST_TO_ADDR
// end ; end ;
16477: GO 16422
16479: POP
16480: POP
// poskoz_ = unitfilter ( rusove0 , [ [ f_type , unit_human ] ] ) ;
16481: LD_ADDR_LOC 50
16485: PUSH
16486: LD_EXP 32
16490: PPUSH
16491: LD_INT 21
16493: PUSH
16494: LD_INT 1
16496: PUSH
16497: EMPTY
16498: LIST
16499: LIST
16500: PUSH
16501: EMPTY
16502: LIST
16503: PPUSH
16504: CALL_OW 72
16508: ST_TO_ADDR
// for kn_ in poskoz_ do
16509: LD_ADDR_LOC 51
16513: PUSH
16514: LD_LOC 50
16518: PUSH
16519: FOR_IN
16520: IFFALSE 16576
// begin if getlives ( kn_ ) <= hr_lidi then
16522: LD_LOC 51
16526: PPUSH
16527: CALL_OW 256
16531: PUSH
16532: LD_EXP 37
16536: LESSEQUAL
16537: IFFALSE 16574
// begin rusove0 = rusove0 diff kn_ ;
16539: LD_ADDR_EXP 32
16543: PUSH
16544: LD_EXP 32
16548: PUSH
16549: LD_LOC 51
16553: DIFF
16554: ST_TO_ADDR
// poskoz = poskoz ^ [ kn_ ] ;
16555: LD_ADDR_EXP 35
16559: PUSH
16560: LD_EXP 35
16564: PUSH
16565: LD_LOC 51
16569: PUSH
16570: EMPTY
16571: LIST
16572: ADD
16573: ST_TO_ADDR
// end ; end ;
16574: GO 16519
16576: POP
16577: POP
// commovexy ( poskoz , 80 , 96 ) ;
16578: LD_EXP 35
16582: PPUSH
16583: LD_INT 80
16585: PPUSH
16586: LD_INT 96
16588: PPUSH
16589: CALL_OW 111
// enable ;
16593: ENABLE
// end ;
16594: END
// var pom_rupo ; var driver ; var kn__ ; every 0 0$1.5 do var p95 , p96 , poskpom ;
16595: GO 16597
16597: DISABLE
16598: LD_INT 0
16600: PPUSH
16601: PPUSH
16602: PPUSH
// begin if retreat then
16603: LD_EXP 34
16607: IFFALSE 16611
// exit ;
16609: GO 17229
// poskpom = poskoz ;
16611: LD_ADDR_VAR 0 3
16615: PUSH
16616: LD_EXP 35
16620: ST_TO_ADDR
// poskoz = [ ] ;
16621: LD_ADDR_EXP 35
16625: PUSH
16626: EMPTY
16627: ST_TO_ADDR
// for p95 in poskpom do
16628: LD_ADDR_VAR 0 1
16632: PUSH
16633: LD_VAR 0 3
16637: PUSH
16638: FOR_IN
16639: IFFALSE 16673
// if islive ( p95 ) then
16641: LD_VAR 0 1
16645: PPUSH
16646: CALL_OW 300
16650: IFFALSE 16671
// poskoz = poskoz ^ [ p95 ] ;
16652: LD_ADDR_EXP 35
16656: PUSH
16657: LD_EXP 35
16661: PUSH
16662: LD_VAR 0 1
16666: PUSH
16667: EMPTY
16668: LIST
16669: ADD
16670: ST_TO_ADDR
16671: GO 16638
16673: POP
16674: POP
// pom_rupo = prebytek isect filterunitsinarea ( repairbay , [ [ f_side , rus ] , [ f_type , unit_vehicle ] ] ) ;
16675: LD_ADDR_LOC 52
16679: PUSH
16680: LD_EXP 41
16684: PUSH
16685: LD_INT 12
16687: PPUSH
16688: LD_INT 22
16690: PUSH
16691: LD_EXP 1
16695: PUSH
16696: EMPTY
16697: LIST
16698: LIST
16699: PUSH
16700: LD_INT 21
16702: PUSH
16703: LD_INT 2
16705: PUSH
16706: EMPTY
16707: LIST
16708: LIST
16709: PUSH
16710: EMPTY
16711: LIST
16712: LIST
16713: PPUSH
16714: CALL_OW 70
16718: ISECT
16719: ST_TO_ADDR
// if ( 0 + prebytek ) > mpard then
16720: LD_INT 0
16722: PUSH
16723: LD_EXP 41
16727: PLUS
16728: PUSH
16729: LD_EXP 40
16733: GREATER
16734: IFFALSE 16835
// begin if ( 0 + prebytek - mpard ) >= ( 0 + pom_rupo ) then
16736: LD_INT 0
16738: PUSH
16739: LD_EXP 41
16743: PLUS
16744: PUSH
16745: LD_EXP 40
16749: MINUS
16750: PUSH
16751: LD_INT 0
16753: PUSH
16754: LD_LOC 52
16758: PLUS
16759: GREATEREQUAL
16760: IFFALSE 16778
// p96 = ( 0 + pom_rupo ) else
16762: LD_ADDR_VAR 0 2
16766: PUSH
16767: LD_INT 0
16769: PUSH
16770: LD_LOC 52
16774: PLUS
16775: ST_TO_ADDR
16776: GO 16798
// p96 = ( 0 + prebytek - mpard ) ;
16778: LD_ADDR_VAR 0 2
16782: PUSH
16783: LD_INT 0
16785: PUSH
16786: LD_EXP 41
16790: PLUS
16791: PUSH
16792: LD_EXP 40
16796: MINUS
16797: ST_TO_ADDR
// for p95 = 1 to p96 do
16798: LD_ADDR_VAR 0 1
16802: PUSH
16803: DOUBLE
16804: LD_INT 1
16806: DEC
16807: ST_TO_ADDR
16808: LD_VAR 0 2
16812: PUSH
16813: FOR_TO
16814: IFFALSE 16833
// destroyunit ( pom_rupo [ p95 ] ) ;
16816: LD_LOC 52
16820: PUSH
16821: LD_VAR 0 1
16825: ARRAY
16826: PPUSH
16827: CALL_OW 65
16831: GO 16813
16833: POP
16834: POP
// end ; pom_rupo = filterunitsinarea ( repairbay , [ [ f_side , rus ] , [ f_type , unit_vehicle ] ] ) isect poskoz ;
16835: LD_ADDR_LOC 52
16839: PUSH
16840: LD_INT 12
16842: PPUSH
16843: LD_INT 22
16845: PUSH
16846: LD_EXP 1
16850: PUSH
16851: EMPTY
16852: LIST
16853: LIST
16854: PUSH
16855: LD_INT 21
16857: PUSH
16858: LD_INT 2
16860: PUSH
16861: EMPTY
16862: LIST
16863: LIST
16864: PUSH
16865: EMPTY
16866: LIST
16867: LIST
16868: PPUSH
16869: CALL_OW 70
16873: PUSH
16874: LD_EXP 35
16878: ISECT
16879: ST_TO_ADDR
// for kn__ in pom_rupo do
16880: LD_ADDR_LOC 54
16884: PUSH
16885: LD_LOC 52
16889: PUSH
16890: FOR_IN
16891: IFFALSE 17028
// begin driver = isdrivenby ( kn__ ) ;
16893: LD_ADDR_LOC 53
16897: PUSH
16898: LD_LOC 54
16902: PPUSH
16903: CALL_OW 311
16907: ST_TO_ADDR
// comhold ( driver ) ;
16908: LD_LOC 53
16912: PPUSH
16913: CALL_OW 140
// setfuel ( kn__ , 100 ) ;
16917: LD_LOC 54
16921: PPUSH
16922: LD_INT 100
16924: PPUSH
16925: CALL_OW 240
// comexitvehicle ( kn__ ) ;
16929: LD_LOC 54
16933: PPUSH
16934: CALL_OW 121
// wait ( 0 0$0.5 ) ;
16938: LD_INT 18
16940: PPUSH
16941: CALL_OW 67
// addcomrepairvehicle ( [ driver ] , kn__ ) ;
16945: LD_LOC 53
16949: PUSH
16950: EMPTY
16951: LIST
16952: PPUSH
16953: LD_LOC 54
16957: PPUSH
16958: CALL_OW 189
// addcommoveunit ( [ driver ] , kn__ ) ;
16962: LD_LOC 53
16966: PUSH
16967: EMPTY
16968: LIST
16969: PPUSH
16970: LD_LOC 54
16974: PPUSH
16975: CALL_OW 172
// addcomfree ( driver ) ;
16979: LD_LOC 53
16983: PPUSH
16984: CALL_OW 199
// poskoz = poskoz diff [ kn__ ] ;
16988: LD_ADDR_EXP 35
16992: PUSH
16993: LD_EXP 35
16997: PUSH
16998: LD_LOC 54
17002: PUSH
17003: EMPTY
17004: LIST
17005: DIFF
17006: ST_TO_ADDR
// rusove0 = rusove0 ^ [ kn__ ] ;
17007: LD_ADDR_EXP 32
17011: PUSH
17012: LD_EXP 32
17016: PUSH
17017: LD_LOC 54
17021: PUSH
17022: EMPTY
17023: LIST
17024: ADD
17025: ST_TO_ADDR
// end ;
17026: GO 16890
17028: POP
17029: POP
// pom_rupo = filterunitsinarea ( repairbay , [ [ f_side , rus ] , [ f_type , unit_human ] ] ) isect poskoz ;
17030: LD_ADDR_LOC 52
17034: PUSH
17035: LD_INT 12
17037: PPUSH
17038: LD_INT 22
17040: PUSH
17041: LD_EXP 1
17045: PUSH
17046: EMPTY
17047: LIST
17048: LIST
17049: PUSH
17050: LD_INT 21
17052: PUSH
17053: LD_INT 1
17055: PUSH
17056: EMPTY
17057: LIST
17058: LIST
17059: PUSH
17060: EMPTY
17061: LIST
17062: LIST
17063: PPUSH
17064: CALL_OW 70
17068: PUSH
17069: LD_EXP 35
17073: ISECT
17074: ST_TO_ADDR
// for kn__ in pom_rupo do
17075: LD_ADDR_LOC 54
17079: PUSH
17080: LD_LOC 52
17084: PUSH
17085: FOR_IN
17086: IFFALSE 17128
// begin poskoz = poskoz diff [ kn__ ] ;
17088: LD_ADDR_EXP 35
17092: PUSH
17093: LD_EXP 35
17097: PUSH
17098: LD_LOC 54
17102: PUSH
17103: EMPTY
17104: LIST
17105: DIFF
17106: ST_TO_ADDR
// pacienti = pacienti ^ [ kn__ ] ;
17107: LD_ADDR_EXP 36
17111: PUSH
17112: LD_EXP 36
17116: PUSH
17117: LD_LOC 54
17121: PUSH
17122: EMPTY
17123: LIST
17124: ADD
17125: ST_TO_ADDR
// end ;
17126: GO 17085
17128: POP
17129: POP
// for kn__ in pacienti do
17130: LD_ADDR_LOC 54
17134: PUSH
17135: LD_EXP 36
17139: PUSH
17140: FOR_IN
17141: IFFALSE 17198
// begin if getlives ( kn__ ) >= 950 then
17143: LD_LOC 54
17147: PPUSH
17148: CALL_OW 256
17152: PUSH
17153: LD_INT 950
17155: GREATEREQUAL
17156: IFFALSE 17196
// begin pacienti = pacienti diff [ kn__ ] ;
17158: LD_ADDR_EXP 36
17162: PUSH
17163: LD_EXP 36
17167: PUSH
17168: LD_LOC 54
17172: PUSH
17173: EMPTY
17174: LIST
17175: DIFF
17176: ST_TO_ADDR
// rusove0 = rusove0 ^ [ kn__ ] ;
17177: LD_ADDR_EXP 32
17181: PUSH
17182: LD_EXP 32
17186: PUSH
17187: LD_LOC 54
17191: PUSH
17192: EMPTY
17193: LIST
17194: ADD
17195: ST_TO_ADDR
// end ; end ;
17196: GO 17140
17198: POP
17199: POP
// if pacienti >= 1 then
17200: LD_EXP 36
17204: PUSH
17205: LD_INT 1
17207: GREATEREQUAL
17208: IFFALSE 17228
// comheal ( healeri , pacienti [ 1 ] ) ;
17210: LD_EXP 33
17214: PPUSH
17215: LD_EXP 36
17219: PUSH
17220: LD_INT 1
17222: ARRAY
17223: PPUSH
17224: CALL_OW 128
// enable ;
17228: ENABLE
// end ;
17229: PPOPN 3
17231: END
// on vehiclecaptured ( newid , oldid , origside , cptrdby ) do if origside = rus then
17232: LD_VAR 0 3
17236: PUSH
17237: LD_EXP 1
17241: EQUAL
17242: IFFALSE 17282
// begin rusove0 = rusove0 diff [ oldid ] ;
17244: LD_ADDR_EXP 32
17248: PUSH
17249: LD_EXP 32
17253: PUSH
17254: LD_VAR 0 2
17258: PUSH
17259: EMPTY
17260: LIST
17261: DIFF
17262: ST_TO_ADDR
// poskoz = poskoz diff [ oldid ] ;
17263: LD_ADDR_EXP 35
17267: PUSH
17268: LD_EXP 35
17272: PUSH
17273: LD_VAR 0 2
17277: PUSH
17278: EMPTY
17279: LIST
17280: DIFF
17281: ST_TO_ADDR
// end ; end_of_file
17282: PPOPN 4
17284: END
// every 0 0$1 do
17285: GO 17287
17287: DISABLE
// begin repeat wait ( 0 0$1 ) ;
17288: LD_INT 35
17290: PPUSH
17291: CALL_OW 67
// if depot_done then
17295: LD_EXP 30
17299: IFFALSE 17303
// exit ;
17301: GO 17342
// if UnitFilter ( [ ruhengi1 , ruhengi0 ] , [ f_alive ] ) = 0 then
17303: LD_INT 18
17305: PUSH
17306: LD_INT 2
17308: PUSH
17309: EMPTY
17310: LIST
17311: LIST
17312: PPUSH
17313: LD_INT 51
17315: PUSH
17316: EMPTY
17317: LIST
17318: PPUSH
17319: CALL_OW 72
17323: PUSH
17324: LD_INT 0
17326: EQUAL
17327: IFFALSE 17338
// begin SetAchievement ( ACH_SAN ) ;
17329: LD_STRING ACH_SAN
17331: PPUSH
17332: CALL_OW 543
// exit ;
17336: GO 17342
// end ; until false ;
17338: LD_INT 0
17340: IFFALSE 17288
// end ;
17342: END
// export function SA_BrownAndDonaldsonDead ; begin
17343: LD_INT 0
17345: PPUSH
// SetAchievement ( ACH_ODE ) ;
17346: LD_STRING ACH_ODE
17348: PPUSH
17349: CALL_OW 543
// end ; end_of_file
17353: LD_VAR 0 1
17357: RET
// export function SA_EndMission ( campaignNumber , missionNumber , medal1 , medal2 , medal3 ) ; var achiv ; begin
17358: LD_INT 0
17360: PPUSH
17361: PPUSH
// if not missionNumber then
17362: LD_VAR 0 2
17366: NOT
17367: IFFALSE 17371
// exit ;
17369: GO 17501
// achiv := false ;
17371: LD_ADDR_VAR 0 7
17375: PUSH
17376: LD_INT 0
17378: ST_TO_ADDR
// case campaignNumber of 1 :
17379: LD_VAR 0 1
17383: PUSH
17384: LD_INT 1
17386: DOUBLE
17387: EQUAL
17388: IFTRUE 17392
17390: GO 17403
17392: POP
// achiv := ACH_GOTA ; 2 :
17393: LD_ADDR_VAR 0 7
17397: PUSH
17398: LD_STRING ACH_GOTA
17400: ST_TO_ADDR
17401: GO 17453
17403: LD_INT 2
17405: DOUBLE
17406: EQUAL
17407: IFTRUE 17411
17409: GO 17414
17411: POP
// ; 3 :
17412: GO 17453
17414: LD_INT 3
17416: DOUBLE
17417: EQUAL
17418: IFTRUE 17422
17420: GO 17433
17422: POP
// achiv := ACH_MOTSU ; 4 :
17423: LD_ADDR_VAR 0 7
17427: PUSH
17428: LD_STRING ACH_MOTSU
17430: ST_TO_ADDR
17431: GO 17453
17433: LD_INT 4
17435: DOUBLE
17436: EQUAL
17437: IFTRUE 17441
17439: GO 17452
17441: POP
// achiv := ACH_LOP ; end ;
17442: LD_ADDR_VAR 0 7
17446: PUSH
17447: LD_STRING ACH_LOP
17449: ST_TO_ADDR
17450: GO 17453
17452: POP
// if Difficulty = 3 and achiv and medal1 and medal2 and medal3 then
17453: LD_OWVAR 67
17457: PUSH
17458: LD_INT 3
17460: EQUAL
17461: PUSH
17462: LD_VAR 0 7
17466: AND
17467: PUSH
17468: LD_VAR 0 3
17472: AND
17473: PUSH
17474: LD_VAR 0 4
17478: AND
17479: PUSH
17480: LD_VAR 0 5
17484: AND
17485: IFFALSE 17501
// SetAchievementEX ( achiv , missionNumber ) ;
17487: LD_VAR 0 7
17491: PPUSH
17492: LD_VAR 0 2
17496: PPUSH
17497: CALL_OW 564
// end ;
17501: LD_VAR 0 6
17505: RET
// export function SA_BehemothConstructed ; begin
17506: LD_INT 0
17508: PPUSH
// SetAchievement ( ACH_SMC ) ;
17509: LD_STRING ACH_SMC
17511: PPUSH
17512: CALL_OW 543
// end ;
17516: LD_VAR 0 1
17520: RET
// on CustomCommand ( p1 , p2 , p3 , p4 , p5 , p6 ) do begin case p2 of 1 :
17521: LD_VAR 0 2
17525: PUSH
17526: LD_INT 1
17528: DOUBLE
17529: EQUAL
17530: IFTRUE 17534
17532: GO 17541
17534: POP
// HackUnlimitedResources ; 2 :
17535: CALL 17725 0 0
17539: GO 17722
17541: LD_INT 2
17543: DOUBLE
17544: EQUAL
17545: IFTRUE 17549
17547: GO 17556
17549: POP
// HackSetLevel10 ; 3 :
17550: CALL 17858 0 0
17554: GO 17722
17556: LD_INT 3
17558: DOUBLE
17559: EQUAL
17560: IFTRUE 17564
17562: GO 17571
17564: POP
// HackSetLevel10YourUnits ; 4 :
17565: CALL 17943 0 0
17569: GO 17722
17571: LD_INT 4
17573: DOUBLE
17574: EQUAL
17575: IFTRUE 17579
17577: GO 17601
17579: POP
// HackSpawnHuman ( p3 , p4 , p5 ) ; 5 :
17580: LD_VAR 0 3
17584: PPUSH
17585: LD_VAR 0 4
17589: PPUSH
17590: LD_VAR 0 5
17594: PPUSH
17595: CALL 18033 0 3
17599: GO 17722
17601: LD_INT 5
17603: DOUBLE
17604: EQUAL
17605: IFTRUE 17609
17607: GO 17616
17609: POP
// HackSpawnVehicle ; 6 :
17610: CALL 18094 0 0
17614: GO 17722
17616: LD_INT 6
17618: DOUBLE
17619: EQUAL
17620: IFTRUE 17624
17622: GO 17631
17624: POP
// HackInvincible ; 7 :
17625: CALL 18640 0 0
17629: GO 17722
17631: LD_INT 7
17633: DOUBLE
17634: EQUAL
17635: IFTRUE 17639
17637: GO 17646
17639: POP
// HackInvisible ; 8 :
17640: CALL 18751 0 0
17644: GO 17722
17646: LD_INT 8
17648: DOUBLE
17649: EQUAL
17650: IFTRUE 17654
17652: GO 17661
17654: POP
// HackChangeYourSide ; 9 :
17655: CALL 18808 0 0
17659: GO 17722
17661: LD_INT 9
17663: DOUBLE
17664: EQUAL
17665: IFTRUE 17669
17667: GO 17676
17669: POP
// HackChangeUnitSide ; 10 :
17670: CALL 18850 0 0
17674: GO 17722
17676: LD_INT 10
17678: DOUBLE
17679: EQUAL
17680: IFTRUE 17684
17682: GO 17691
17684: POP
// HackFog ; 11 :
17685: CALL 18951 0 0
17689: GO 17722
17691: LD_INT 11
17693: DOUBLE
17694: EQUAL
17695: IFTRUE 17699
17697: GO 17706
17699: POP
// HackApeman ; 12 :
17700: CALL 18966 0 0
17704: GO 17722
17706: LD_INT 12
17708: DOUBLE
17709: EQUAL
17710: IFTRUE 17714
17712: GO 17721
17714: POP
// HackBoom ; end ;
17715: CALL 19051 0 0
17719: GO 17722
17721: POP
// end ;
17722: PPOPN 6
17724: END
// export function HackUnlimitedResources ; var i , j , tmp ; begin
17725: LD_INT 0
17727: PPUSH
17728: PPUSH
17729: PPUSH
17730: PPUSH
// tmp := FilterAllUnits ( [ [ f_side , your_side ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
17731: LD_ADDR_VAR 0 4
17735: PUSH
17736: LD_INT 22
17738: PUSH
17739: LD_OWVAR 2
17743: PUSH
17744: EMPTY
17745: LIST
17746: LIST
17747: PUSH
17748: LD_INT 2
17750: PUSH
17751: LD_INT 30
17753: PUSH
17754: LD_INT 0
17756: PUSH
17757: EMPTY
17758: LIST
17759: LIST
17760: PUSH
17761: LD_INT 30
17763: PUSH
17764: LD_INT 1
17766: PUSH
17767: EMPTY
17768: LIST
17769: LIST
17770: PUSH
17771: EMPTY
17772: LIST
17773: LIST
17774: LIST
17775: PUSH
17776: EMPTY
17777: LIST
17778: LIST
17779: PPUSH
17780: CALL_OW 69
17784: ST_TO_ADDR
// if not tmp then
17785: LD_VAR 0 4
17789: NOT
17790: IFFALSE 17794
// exit ;
17792: GO 17853
// for i in tmp do
17794: LD_ADDR_VAR 0 2
17798: PUSH
17799: LD_VAR 0 4
17803: PUSH
17804: FOR_IN
17805: IFFALSE 17851
// for j = 1 to 3 do
17807: LD_ADDR_VAR 0 3
17811: PUSH
17812: DOUBLE
17813: LD_INT 1
17815: DEC
17816: ST_TO_ADDR
17817: LD_INT 3
17819: PUSH
17820: FOR_TO
17821: IFFALSE 17847
// SetResourceType ( GetBase ( i ) , j , 99999 ) ;
17823: LD_VAR 0 2
17827: PPUSH
17828: CALL_OW 274
17832: PPUSH
17833: LD_VAR 0 3
17837: PPUSH
17838: LD_INT 99999
17840: PPUSH
17841: CALL_OW 277
17845: GO 17820
17847: POP
17848: POP
17849: GO 17804
17851: POP
17852: POP
// end ;
17853: LD_VAR 0 1
17857: RET
// export function HackSetLevel10 ; var i , j ; begin
17858: LD_INT 0
17860: PPUSH
17861: PPUSH
17862: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
17863: LD_ADDR_VAR 0 2
17867: PUSH
17868: LD_INT 21
17870: PUSH
17871: LD_INT 1
17873: PUSH
17874: EMPTY
17875: LIST
17876: LIST
17877: PPUSH
17878: CALL_OW 69
17882: PUSH
17883: FOR_IN
17884: IFFALSE 17936
// if IsSelected ( i ) then
17886: LD_VAR 0 2
17890: PPUSH
17891: CALL_OW 306
17895: IFFALSE 17934
// begin for j := 1 to 4 do
17897: LD_ADDR_VAR 0 3
17901: PUSH
17902: DOUBLE
17903: LD_INT 1
17905: DEC
17906: ST_TO_ADDR
17907: LD_INT 4
17909: PUSH
17910: FOR_TO
17911: IFFALSE 17932
// SetSkill ( i , j , 10 ) ;
17913: LD_VAR 0 2
17917: PPUSH
17918: LD_VAR 0 3
17922: PPUSH
17923: LD_INT 10
17925: PPUSH
17926: CALL_OW 237
17930: GO 17910
17932: POP
17933: POP
// end ;
17934: GO 17883
17936: POP
17937: POP
// end ;
17938: LD_VAR 0 1
17942: RET
// export function HackSetLevel10YourUnits ; var i , j ; begin
17943: LD_INT 0
17945: PPUSH
17946: PPUSH
17947: PPUSH
// for i in FilterAllUnits ( [ [ f_side , your_side ] , [ f_type , unit_human ] ] ) do
17948: LD_ADDR_VAR 0 2
17952: PUSH
17953: LD_INT 22
17955: PUSH
17956: LD_OWVAR 2
17960: PUSH
17961: EMPTY
17962: LIST
17963: LIST
17964: PUSH
17965: LD_INT 21
17967: PUSH
17968: LD_INT 1
17970: PUSH
17971: EMPTY
17972: LIST
17973: LIST
17974: PUSH
17975: EMPTY
17976: LIST
17977: LIST
17978: PPUSH
17979: CALL_OW 69
17983: PUSH
17984: FOR_IN
17985: IFFALSE 18026
// begin for j := 1 to 4 do
17987: LD_ADDR_VAR 0 3
17991: PUSH
17992: DOUBLE
17993: LD_INT 1
17995: DEC
17996: ST_TO_ADDR
17997: LD_INT 4
17999: PUSH
18000: FOR_TO
18001: IFFALSE 18022
// SetSkill ( i , j , 10 ) ;
18003: LD_VAR 0 2
18007: PPUSH
18008: LD_VAR 0 3
18012: PPUSH
18013: LD_INT 10
18015: PPUSH
18016: CALL_OW 237
18020: GO 18000
18022: POP
18023: POP
// end ;
18024: GO 17984
18026: POP
18027: POP
// end ;
18028: LD_VAR 0 1
18032: RET
// export function HackSpawnHuman ( nation , class , skill ) ; begin
18033: LD_INT 0
18035: PPUSH
// uc_side := your_side ;
18036: LD_ADDR_OWVAR 20
18040: PUSH
18041: LD_OWVAR 2
18045: ST_TO_ADDR
// uc_nation := nation ;
18046: LD_ADDR_OWVAR 21
18050: PUSH
18051: LD_VAR 0 1
18055: ST_TO_ADDR
// InitHc ;
18056: CALL_OW 19
// PrepareHuman ( false , class , skill ) ;
18060: LD_INT 0
18062: PPUSH
18063: LD_VAR 0 2
18067: PPUSH
18068: LD_VAR 0 3
18072: PPUSH
18073: CALL_OW 380
// PlaceUnitAnywhere ( CreateHuman , true ) ;
18077: CALL_OW 44
18081: PPUSH
18082: LD_INT 1
18084: PPUSH
18085: CALL_OW 51
// end ;
18089: LD_VAR 0 4
18093: RET
// export function HackSpawnVehicle ; begin
18094: LD_INT 0
18096: PPUSH
// uc_side := your_side ;
18097: LD_ADDR_OWVAR 20
18101: PUSH
18102: LD_OWVAR 2
18106: ST_TO_ADDR
// uc_nation := rand ( 1 , 3 ) ;
18107: LD_ADDR_OWVAR 21
18111: PUSH
18112: LD_INT 1
18114: PPUSH
18115: LD_INT 3
18117: PPUSH
18118: CALL_OW 12
18122: ST_TO_ADDR
// InitVc ;
18123: CALL_OW 20
// case uc_nation of 1 :
18127: LD_OWVAR 21
18131: PUSH
18132: LD_INT 1
18134: DOUBLE
18135: EQUAL
18136: IFTRUE 18140
18138: GO 18284
18140: POP
// begin vc_chassis := [ us_light_wheeled , us_medium_wheeled , us_medium_tracked , us_heavy_tracked , us_morphling ] [ rand ( 1 , 5 ) ] ;
18141: LD_ADDR_OWVAR 37
18145: PUSH
18146: LD_INT 1
18148: PUSH
18149: LD_INT 2
18151: PUSH
18152: LD_INT 3
18154: PUSH
18155: LD_INT 4
18157: PUSH
18158: LD_INT 5
18160: PUSH
18161: EMPTY
18162: LIST
18163: LIST
18164: LIST
18165: LIST
18166: LIST
18167: PUSH
18168: LD_INT 1
18170: PPUSH
18171: LD_INT 5
18173: PPUSH
18174: CALL_OW 12
18178: ARRAY
18179: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
18180: LD_ADDR_OWVAR 39
18184: PUSH
18185: LD_INT 1
18187: PPUSH
18188: LD_INT 3
18190: PPUSH
18191: CALL_OW 12
18195: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_computer ] [ rand ( 1 , 3 ) ] ;
18196: LD_ADDR_OWVAR 38
18200: PUSH
18201: LD_INT 1
18203: PUSH
18204: LD_INT 2
18206: PUSH
18207: LD_INT 3
18209: PUSH
18210: EMPTY
18211: LIST
18212: LIST
18213: LIST
18214: PUSH
18215: LD_INT 1
18217: PPUSH
18218: LD_INT 3
18220: PPUSH
18221: CALL_OW 12
18225: ARRAY
18226: 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 ) ] ;
18227: LD_ADDR_OWVAR 40
18231: PUSH
18232: LD_INT 2
18234: PUSH
18235: LD_INT 4
18237: PUSH
18238: LD_INT 5
18240: PUSH
18241: LD_INT 3
18243: PUSH
18244: LD_INT 7
18246: PUSH
18247: LD_INT 8
18249: PUSH
18250: LD_INT 9
18252: PUSH
18253: LD_INT 10
18255: PUSH
18256: LD_INT 6
18258: PUSH
18259: EMPTY
18260: LIST
18261: LIST
18262: LIST
18263: LIST
18264: LIST
18265: LIST
18266: LIST
18267: LIST
18268: LIST
18269: PUSH
18270: LD_INT 1
18272: PPUSH
18273: LD_INT 9
18275: PPUSH
18276: CALL_OW 12
18280: ARRAY
18281: ST_TO_ADDR
// end ; 2 :
18282: GO 18549
18284: LD_INT 2
18286: DOUBLE
18287: EQUAL
18288: IFTRUE 18292
18290: GO 18416
18292: POP
// begin vc_chassis := [ ar_hovercraft , ar_light_trike , ar_medium_trike , ar_half_tracked ] [ rand ( 1 , 4 ) ] ;
18293: LD_ADDR_OWVAR 37
18297: PUSH
18298: LD_INT 11
18300: PUSH
18301: LD_INT 12
18303: PUSH
18304: LD_INT 13
18306: PUSH
18307: LD_INT 14
18309: PUSH
18310: EMPTY
18311: LIST
18312: LIST
18313: LIST
18314: LIST
18315: PUSH
18316: LD_INT 1
18318: PPUSH
18319: LD_INT 4
18321: PPUSH
18322: CALL_OW 12
18326: ARRAY
18327: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
18328: LD_ADDR_OWVAR 39
18332: PUSH
18333: LD_INT 1
18335: PPUSH
18336: LD_INT 3
18338: PPUSH
18339: CALL_OW 12
18343: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_apeman ] [ rand ( 1 , 3 ) ] ;
18344: LD_ADDR_OWVAR 38
18348: PUSH
18349: LD_INT 1
18351: PUSH
18352: LD_INT 2
18354: PUSH
18355: LD_INT 5
18357: PUSH
18358: EMPTY
18359: LIST
18360: LIST
18361: LIST
18362: PUSH
18363: LD_INT 1
18365: PPUSH
18366: LD_INT 3
18368: PPUSH
18369: CALL_OW 12
18373: ARRAY
18374: ST_TO_ADDR
// vc_weapon := [ ar_double_machine_gun , ar_flame_thrower , ar_gun , ar_rocket_launcher , ar_selfpropelled_bomb ] [ rand ( 1 , 5 ) ] ;
18375: LD_ADDR_OWVAR 40
18379: PUSH
18380: LD_INT 24
18382: PUSH
18383: LD_INT 26
18385: PUSH
18386: LD_INT 27
18388: PUSH
18389: LD_INT 28
18391: PUSH
18392: LD_INT 29
18394: PUSH
18395: EMPTY
18396: LIST
18397: LIST
18398: LIST
18399: LIST
18400: LIST
18401: PUSH
18402: LD_INT 1
18404: PPUSH
18405: LD_INT 5
18407: PPUSH
18408: CALL_OW 12
18412: ARRAY
18413: ST_TO_ADDR
// end ; 3 :
18414: GO 18549
18416: LD_INT 3
18418: DOUBLE
18419: EQUAL
18420: IFTRUE 18424
18422: GO 18548
18424: POP
// begin vc_chassis := [ ru_medium_wheeled , ru_heavy_wheeled , ru_medium_tracked , ru_heavy_tracked ] [ rand ( 1 , 4 ) ] ;
18425: LD_ADDR_OWVAR 37
18429: PUSH
18430: LD_INT 21
18432: PUSH
18433: LD_INT 23
18435: PUSH
18436: LD_INT 22
18438: PUSH
18439: LD_INT 24
18441: PUSH
18442: EMPTY
18443: LIST
18444: LIST
18445: LIST
18446: LIST
18447: PUSH
18448: LD_INT 1
18450: PPUSH
18451: LD_INT 4
18453: PPUSH
18454: CALL_OW 12
18458: ARRAY
18459: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
18460: LD_ADDR_OWVAR 39
18464: PUSH
18465: LD_INT 1
18467: PPUSH
18468: LD_INT 3
18470: PPUSH
18471: CALL_OW 12
18475: ST_TO_ADDR
// vc_control := [ control_manual , control_computer ] [ rand ( 1 , 2 ) ] ;
18476: LD_ADDR_OWVAR 38
18480: PUSH
18481: LD_INT 1
18483: PUSH
18484: LD_INT 3
18486: PUSH
18487: EMPTY
18488: LIST
18489: LIST
18490: PUSH
18491: LD_INT 1
18493: PPUSH
18494: LD_INT 2
18496: PPUSH
18497: CALL_OW 12
18501: ARRAY
18502: 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 ) ] ;
18503: LD_ADDR_OWVAR 40
18507: PUSH
18508: LD_INT 42
18510: PUSH
18511: LD_INT 43
18513: PUSH
18514: LD_INT 44
18516: PUSH
18517: LD_INT 46
18519: PUSH
18520: LD_INT 48
18522: PUSH
18523: LD_INT 47
18525: PUSH
18526: EMPTY
18527: LIST
18528: LIST
18529: LIST
18530: LIST
18531: LIST
18532: LIST
18533: PUSH
18534: LD_INT 1
18536: PPUSH
18537: LD_INT 6
18539: PPUSH
18540: CALL_OW 12
18544: ARRAY
18545: ST_TO_ADDR
// end ; end ;
18546: GO 18549
18548: POP
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
18549: CALL_OW 45
18553: PPUSH
18554: LD_INT 1
18556: PPUSH
18557: CALL_OW 51
// end ;
18561: LD_VAR 0 1
18565: RET
// export invincible ; every 1 do
18566: GO 18568
18568: DISABLE
// invincible := [ ] ;
18569: LD_ADDR_EXP 65
18573: PUSH
18574: EMPTY
18575: ST_TO_ADDR
18576: END
// every 10 do var i ;
18577: GO 18579
18579: DISABLE
18580: LD_INT 0
18582: PPUSH
// begin enable ;
18583: ENABLE
// if not invincible then
18584: LD_EXP 65
18588: NOT
18589: IFFALSE 18593
// exit ;
18591: GO 18637
// for i in invincible do
18593: LD_ADDR_VAR 0 1
18597: PUSH
18598: LD_EXP 65
18602: PUSH
18603: FOR_IN
18604: IFFALSE 18635
// if GetLives ( i ) < 1000 then
18606: LD_VAR 0 1
18610: PPUSH
18611: CALL_OW 256
18615: PUSH
18616: LD_INT 1000
18618: LESS
18619: IFFALSE 18633
// SetLives ( i , 1000 ) ;
18621: LD_VAR 0 1
18625: PPUSH
18626: LD_INT 1000
18628: PPUSH
18629: CALL_OW 234
18633: GO 18603
18635: POP
18636: POP
// end ;
18637: PPOPN 1
18639: END
// export function HackInvincible ; var i ; begin
18640: LD_INT 0
18642: PPUSH
18643: PPUSH
// for i in FilterAllUnits ( [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ) do
18644: LD_ADDR_VAR 0 2
18648: PUSH
18649: LD_INT 2
18651: PUSH
18652: LD_INT 21
18654: PUSH
18655: LD_INT 1
18657: PUSH
18658: EMPTY
18659: LIST
18660: LIST
18661: PUSH
18662: LD_INT 21
18664: PUSH
18665: LD_INT 2
18667: PUSH
18668: EMPTY
18669: LIST
18670: LIST
18671: PUSH
18672: EMPTY
18673: LIST
18674: LIST
18675: LIST
18676: PPUSH
18677: CALL_OW 69
18681: PUSH
18682: FOR_IN
18683: IFFALSE 18744
// if IsSelected ( i ) then
18685: LD_VAR 0 2
18689: PPUSH
18690: CALL_OW 306
18694: IFFALSE 18742
// begin if i in invincible then
18696: LD_VAR 0 2
18700: PUSH
18701: LD_EXP 65
18705: IN
18706: IFFALSE 18726
// invincible := invincible diff i else
18708: LD_ADDR_EXP 65
18712: PUSH
18713: LD_EXP 65
18717: PUSH
18718: LD_VAR 0 2
18722: DIFF
18723: ST_TO_ADDR
18724: GO 18742
// invincible := invincible union i ;
18726: LD_ADDR_EXP 65
18730: PUSH
18731: LD_EXP 65
18735: PUSH
18736: LD_VAR 0 2
18740: UNION
18741: ST_TO_ADDR
// end ;
18742: GO 18682
18744: POP
18745: POP
// end ;
18746: LD_VAR 0 1
18750: RET
// export function HackInvisible ; var i , j ; begin
18751: LD_INT 0
18753: PPUSH
18754: PPUSH
18755: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
18756: LD_ADDR_VAR 0 2
18760: PUSH
18761: LD_INT 21
18763: PUSH
18764: LD_INT 1
18766: PUSH
18767: EMPTY
18768: LIST
18769: LIST
18770: PPUSH
18771: CALL_OW 69
18775: PUSH
18776: FOR_IN
18777: IFFALSE 18801
// if IsSelected ( i ) then
18779: LD_VAR 0 2
18783: PPUSH
18784: CALL_OW 306
18788: IFFALSE 18799
// begin ComForceInvisible ( i ) ;
18790: LD_VAR 0 2
18794: PPUSH
18795: CALL_OW 496
// end ;
18799: GO 18776
18801: POP
18802: POP
// end ;
18803: LD_VAR 0 1
18807: RET
// export function HackChangeYourSide ; begin
18808: LD_INT 0
18810: PPUSH
// if your_side = 8 then
18811: LD_OWVAR 2
18815: PUSH
18816: LD_INT 8
18818: EQUAL
18819: IFFALSE 18831
// your_side := 0 else
18821: LD_ADDR_OWVAR 2
18825: PUSH
18826: LD_INT 0
18828: ST_TO_ADDR
18829: GO 18845
// your_side := your_side + 1 ;
18831: LD_ADDR_OWVAR 2
18835: PUSH
18836: LD_OWVAR 2
18840: PUSH
18841: LD_INT 1
18843: PLUS
18844: ST_TO_ADDR
// end ;
18845: LD_VAR 0 1
18849: RET
// export function HackChangeUnitSide ; var i , j ; begin
18850: LD_INT 0
18852: PPUSH
18853: PPUSH
18854: PPUSH
// for i in all_units do
18855: LD_ADDR_VAR 0 2
18859: PUSH
18860: LD_OWVAR 3
18864: PUSH
18865: FOR_IN
18866: IFFALSE 18944
// if IsSelected ( i ) then
18868: LD_VAR 0 2
18872: PPUSH
18873: CALL_OW 306
18877: IFFALSE 18942
// begin j := GetSide ( i ) ;
18879: LD_ADDR_VAR 0 3
18883: PUSH
18884: LD_VAR 0 2
18888: PPUSH
18889: CALL_OW 255
18893: ST_TO_ADDR
// if j = 8 then
18894: LD_VAR 0 3
18898: PUSH
18899: LD_INT 8
18901: EQUAL
18902: IFFALSE 18914
// j := 0 else
18904: LD_ADDR_VAR 0 3
18908: PUSH
18909: LD_INT 0
18911: ST_TO_ADDR
18912: GO 18928
// j := j + 1 ;
18914: LD_ADDR_VAR 0 3
18918: PUSH
18919: LD_VAR 0 3
18923: PUSH
18924: LD_INT 1
18926: PLUS
18927: ST_TO_ADDR
// SetSide ( i , j ) ;
18928: LD_VAR 0 2
18932: PPUSH
18933: LD_VAR 0 3
18937: PPUSH
18938: CALL_OW 235
// end ;
18942: GO 18865
18944: POP
18945: POP
// end ;
18946: LD_VAR 0 1
18950: RET
// export function HackFog ; begin
18951: LD_INT 0
18953: PPUSH
// FogOff ( true ) ;
18954: LD_INT 1
18956: PPUSH
18957: CALL_OW 344
// end ;
18961: LD_VAR 0 1
18965: RET
// export function HackApeman ; begin
18966: LD_INT 0
18968: PPUSH
// uc_side := your_side ;
18969: LD_ADDR_OWVAR 20
18973: PUSH
18974: LD_OWVAR 2
18978: ST_TO_ADDR
// uc_nation := 0 ;
18979: LD_ADDR_OWVAR 21
18983: PUSH
18984: LD_INT 0
18986: ST_TO_ADDR
// hc_name :=  ;
18987: LD_ADDR_OWVAR 26
18991: PUSH
18992: LD_STRING 
18994: ST_TO_ADDR
// hc_gallery :=  ;
18995: LD_ADDR_OWVAR 33
18999: PUSH
19000: LD_STRING 
19002: ST_TO_ADDR
// hc_skills := [ 0 , 0 , 0 , 0 ] ;
19003: LD_ADDR_OWVAR 31
19007: PUSH
19008: LD_INT 0
19010: PUSH
19011: LD_INT 0
19013: PUSH
19014: LD_INT 0
19016: PUSH
19017: LD_INT 0
19019: PUSH
19020: EMPTY
19021: LIST
19022: LIST
19023: LIST
19024: LIST
19025: ST_TO_ADDR
// hc_class := class_apeman ;
19026: LD_ADDR_OWVAR 28
19030: PUSH
19031: LD_INT 12
19033: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateHuman , true ) ;
19034: CALL_OW 44
19038: PPUSH
19039: LD_INT 1
19041: PPUSH
19042: CALL_OW 51
// end ;
19046: LD_VAR 0 1
19050: RET
// export function HackBoom ; begin
19051: LD_INT 0
19053: PPUSH
// uc_side := your_side ;
19054: LD_ADDR_OWVAR 20
19058: PUSH
19059: LD_OWVAR 2
19063: ST_TO_ADDR
// uc_nation := 1 ;
19064: LD_ADDR_OWVAR 21
19068: PUSH
19069: LD_INT 1
19071: ST_TO_ADDR
// vc_chassis := us_morphling ;
19072: LD_ADDR_OWVAR 37
19076: PUSH
19077: LD_INT 5
19079: ST_TO_ADDR
// vc_engine := engine_siberite ;
19080: LD_ADDR_OWVAR 39
19084: PUSH
19085: LD_INT 3
19087: ST_TO_ADDR
// vc_control := control_computer ;
19088: LD_ADDR_OWVAR 38
19092: PUSH
19093: LD_INT 3
19095: ST_TO_ADDR
// vc_weapon := us_siberium_rocket ;
19096: LD_ADDR_OWVAR 40
19100: PUSH
19101: LD_INT 8
19103: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
19104: CALL_OW 45
19108: PPUSH
19109: LD_INT 1
19111: PPUSH
19112: CALL_OW 51
// end ;
19116: LD_VAR 0 1
19120: RET
