// 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 ; var 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 13
  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 13
 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 13
 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 13
 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 13
 334: PUSH
 335: LD_LOC 13
 339: PUSH
 340: LD_LOC 13
 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 13
 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 13
 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 13
 413: PUSH
 414: LD_LOC 13
 418: PUSH
 419: LD_LOC 13
 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 13
 453: PUSH
 454: LD_INT 1
 456: ARRAY
 457: ST_TO_ADDR
// other_survivors = other_survivors diff other_survivors [ 1 ] ;
 458: LD_ADDR_LOC 13
 462: PUSH
 463: LD_LOC 13
 467: PUSH
 468: LD_LOC 13
 472: PUSH
 473: LD_INT 1
 475: ARRAY
 476: DIFF
 477: ST_TO_ADDR
// end ; savecharacters ( other_survivors , other_survivors ) ;
 478: LD_LOC 13
 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 14
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 30
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 31
2570: PUSH
2571: EMPTY
2572: ST_TO_ADDR
// healeri = [ ruhscie0 , ruhscie1 ] ;
2573: LD_ADDR_EXP 32
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 30
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 14
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 15
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 16
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 ; 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 41
3072: PUSH
3073: LD_INT 0
3075: ST_TO_ADDR
// if debug then
3076: LD_EXP 41
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
// rubbunk1 = 0 ;
3132: LD_ADDR_EXP 15
3136: PUSH
3137: LD_INT 0
3139: ST_TO_ADDR
// rubbrwr2 = 0 ;
3140: LD_ADDR_EXP 16
3144: PUSH
3145: LD_INT 0
3147: ST_TO_ADDR
// ruboilp1 = 0 ;
3148: LD_ADDR_LOC 34
3152: PUSH
3153: LD_INT 0
3155: ST_TO_ADDR
// rubwrks0 = 0 ;
3156: LD_ADDR_LOC 33
3160: PUSH
3161: LD_INT 0
3163: ST_TO_ADDR
// revealed = 0 ;
3164: LD_ADDR_LOC 24
3168: PUSH
3169: LD_INT 0
3171: ST_TO_ADDR
// randomize ;
3172: CALL_OW 10
// dial1_ended = false ;
3176: LD_ADDR_LOC 23
3180: PUSH
3181: LD_INT 0
3183: ST_TO_ADDR
// hint_capt = false ;
3184: LD_ADDR_LOC 25
3188: PUSH
3189: LD_INT 0
3191: ST_TO_ADDR
// case difficulty of 1 :
3192: LD_OWVAR 67
3196: PUSH
3197: LD_INT 1
3199: DOUBLE
3200: EQUAL
3201: IFTRUE 3205
3203: GO 3255
3205: POP
// begin hr_lidi = 450 ;
3206: LD_ADDR_EXP 36
3210: PUSH
3211: LD_INT 450
3213: ST_TO_ADDR
// hr_auta = 490 ;
3214: LD_ADDR_EXP 37
3218: PUSH
3219: LD_INT 490
3221: ST_TO_ADDR
// mpora = 2 ;
3222: LD_ADDR_EXP 38
3226: PUSH
3227: LD_INT 2
3229: ST_TO_ADDR
// mpard = 0 ;
3230: LD_ADDR_EXP 39
3234: PUSH
3235: LD_INT 0
3237: ST_TO_ADDR
// settech ( tech_tech1 , rus , state_enabled ) ;
3238: LD_INT 48
3240: PPUSH
3241: LD_EXP 1
3245: PPUSH
3246: LD_INT 1
3248: PPUSH
3249: CALL_OW 322
// end ; 2 :
3253: GO 3372
3255: LD_INT 2
3257: DOUBLE
3258: EQUAL
3259: IFTRUE 3263
3261: GO 3313
3263: POP
// begin hr_lidi = 487 ;
3264: LD_ADDR_EXP 36
3268: PUSH
3269: LD_INT 487
3271: ST_TO_ADDR
// hr_auta = 532 ;
3272: LD_ADDR_EXP 37
3276: PUSH
3277: LD_INT 532
3279: ST_TO_ADDR
// mpora = 3 ;
3280: LD_ADDR_EXP 38
3284: PUSH
3285: LD_INT 3
3287: ST_TO_ADDR
// mpard = 1 ;
3288: LD_ADDR_EXP 39
3292: PUSH
3293: LD_INT 1
3295: ST_TO_ADDR
// settech ( tech_tech1 , rus , state_enabled ) ;
3296: LD_INT 48
3298: PPUSH
3299: LD_EXP 1
3303: PPUSH
3304: LD_INT 1
3306: PPUSH
3307: CALL_OW 322
// end ; 3 :
3311: GO 3372
3313: LD_INT 3
3315: DOUBLE
3316: EQUAL
3317: IFTRUE 3321
3319: GO 3371
3321: POP
// begin hr_lidi = 524 ;
3322: LD_ADDR_EXP 36
3326: PUSH
3327: LD_INT 524
3329: ST_TO_ADDR
// hr_auta = 574 ;
3330: LD_ADDR_EXP 37
3334: PUSH
3335: LD_INT 574
3337: ST_TO_ADDR
// mpora = 4 ;
3338: LD_ADDR_EXP 38
3342: PUSH
3343: LD_INT 4
3345: ST_TO_ADDR
// mpard = 3 ;
3346: LD_ADDR_EXP 39
3350: PUSH
3351: LD_INT 3
3353: ST_TO_ADDR
// settech ( tech_tech1 , rus , state_researched ) ;
3354: LD_INT 48
3356: PPUSH
3357: LD_EXP 1
3361: PPUSH
3362: LD_INT 2
3364: PPUSH
3365: CALL_OW 322
// end ; end ;
3369: GO 3372
3371: POP
// powerhint = false ;
3372: LD_ADDR_LOC 32
3376: PUSH
3377: LD_INT 0
3379: ST_TO_ADDR
// which_dlg = 0 ;
3380: LD_ADDR_LOC 18
3384: PUSH
3385: LD_INT 0
3387: ST_TO_ADDR
// zbaven_veleni = false ;
3388: LD_ADDR_LOC 22
3392: PUSH
3393: LD_INT 0
3395: ST_TO_ADDR
// chciplo = 8 ;
3396: LD_ADDR_LOC 21
3400: PUSH
3401: LD_INT 8
3403: ST_TO_ADDR
// depot_done = false ;
3404: LD_ADDR_LOC 11
3408: PUSH
3409: LD_INT 0
3411: ST_TO_ADDR
// ruboilp1 = 0 ;
3412: LD_ADDR_LOC 34
3416: PUSH
3417: LD_INT 0
3419: ST_TO_ADDR
// bunker_done = false ;
3420: LD_ADDR_EXP 19
3424: PUSH
3425: LD_INT 0
3427: ST_TO_ADDR
// brwr_done = false ;
3428: LD_ADDR_EXP 20
3432: PUSH
3433: LD_INT 0
3435: ST_TO_ADDR
// attacking = false ;
3436: LD_ADDR_EXP 18
3440: PUSH
3441: LD_INT 0
3443: ST_TO_ADDR
// opev_start = false ;
3444: LD_ADDR_LOC 19
3448: PUSH
3449: LD_INT 0
3451: ST_TO_ADDR
// rubase1_gone = false ;
3452: LD_ADDR_EXP 21
3456: PUSH
3457: LD_INT 0
3459: ST_TO_ADDR
// build_wrks = false ;
3460: LD_ADDR_LOC 12
3464: PUSH
3465: LD_INT 0
3467: ST_TO_ADDR
// flaka_se = false ;
3468: LD_ADDR_LOC 20
3472: PUSH
3473: LD_INT 0
3475: ST_TO_ADDR
// vracet_se = true ;
3476: LD_ADDR_EXP 55
3480: PUSH
3481: LD_INT 1
3483: ST_TO_ADDR
// retreat = false ;
3484: LD_ADDR_EXP 33
3488: PUSH
3489: LD_INT 0
3491: ST_TO_ADDR
// rubbunk1 = 0 ;
3492: LD_ADDR_EXP 15
3496: PUSH
3497: LD_INT 0
3499: ST_TO_ADDR
// poskoz = [ ] ;
3500: LD_ADDR_EXP 34
3504: PUSH
3505: EMPTY
3506: ST_TO_ADDR
// prebytek = [ ] ;
3507: LD_ADDR_EXP 40
3511: PUSH
3512: EMPTY
3513: ST_TO_ADDR
// pacienti = [ ] ;
3514: LD_ADDR_EXP 35
3518: PUSH
3519: EMPTY
3520: ST_TO_ADDR
// supply = 11 ;
3521: LD_ADDR_LOC 17
3525: PUSH
3526: LD_INT 11
3528: ST_TO_ADDR
// bu1_done = false ;
3529: LD_ADDR_LOC 27
3533: PUSH
3534: LD_INT 0
3536: ST_TO_ADDR
// br2_done = false ;
3537: LD_ADDR_LOC 28
3541: PUSH
3542: LD_INT 0
3544: ST_TO_ADDR
// op1_done = false ;
3545: LD_ADDR_LOC 29
3549: PUSH
3550: LD_INT 0
3552: ST_TO_ADDR
// oilpowpldone = false ;
3553: LD_ADDR_LOC 30
3557: PUSH
3558: LD_INT 0
3560: ST_TO_ADDR
// scndoildrill = false ;
3561: LD_ADDR_LOC 31
3565: PUSH
3566: LD_INT 0
3568: ST_TO_ADDR
// ingameon ;
3569: CALL_OW 8
// prepare_units ;
3573: CALL 1797 0 0
// comhold ( [ john , amhsold0 , amhsold1 , amhmech0 , bobby , cyrus , lisa ] ) ;
3577: LD_LOC 1
3581: PUSH
3582: LD_INT 34
3584: PUSH
3585: LD_LOC 8
3589: PUSH
3590: LD_INT 17
3592: PUSH
3593: LD_LOC 2
3597: PUSH
3598: LD_LOC 3
3602: PUSH
3603: LD_LOC 4
3607: PUSH
3608: EMPTY
3609: LIST
3610: LIST
3611: LIST
3612: LIST
3613: LIST
3614: LIST
3615: LIST
3616: PPUSH
3617: CALL_OW 140
// wait ( 0 0$4 ) ;
3621: LD_INT 140
3623: PPUSH
3624: CALL_OW 67
// centeronxy ( 53 , 21 ) ;
3628: LD_INT 53
3630: PPUSH
3631: LD_INT 21
3633: PPUSH
3634: CALL_OW 84
// end ;
3638: END
// function auto_ve_zlutem ; var tmp , tmp1 ; begin
3639: LD_INT 0
3641: PPUSH
3642: PPUSH
3643: PPUSH
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_vehicle ] ] ) ;
3644: LD_ADDR_VAR 0 2
3648: PUSH
3649: LD_INT 22
3651: PUSH
3652: LD_EXP 2
3656: PUSH
3657: EMPTY
3658: LIST
3659: LIST
3660: PUSH
3661: LD_INT 21
3663: PUSH
3664: LD_INT 2
3666: PUSH
3667: EMPTY
3668: LIST
3669: LIST
3670: PUSH
3671: EMPTY
3672: LIST
3673: LIST
3674: PPUSH
3675: CALL_OW 69
3679: ST_TO_ADDR
// for tmp1 in tmp do
3680: LD_ADDR_VAR 0 3
3684: PUSH
3685: LD_VAR 0 2
3689: PUSH
3690: FOR_IN
3691: IFFALSE 3722
// if getlives ( tmp1 ) < hranice_zraneni then
3693: LD_VAR 0 3
3697: PPUSH
3698: CALL_OW 256
3702: PUSH
3703: LD_INT 500
3705: LESS
3706: IFFALSE 3720
// begin result = true ;
3708: LD_ADDR_VAR 0 1
3712: PUSH
3713: LD_INT 1
3715: ST_TO_ADDR
// exit ;
3716: POP
3717: POP
3718: GO 3732
// end ;
3720: GO 3690
3722: POP
3723: POP
// result = false ;
3724: LD_ADDR_VAR 0 1
3728: PUSH
3729: LD_INT 0
3731: ST_TO_ADDR
// end ;
3732: LD_VAR 0 1
3736: RET
// every 0 0$1 trigger auto_ve_zlutem do
3737: CALL 3639 0 0
3741: IFFALSE 3753
3743: GO 3745
3745: DISABLE
// hint ( Repair ) ;
3746: LD_STRING Repair
3748: PPUSH
3749: CALL_OW 339
3753: END
// on unitgoestored ( un ) marked 13 do if ( difficulty = 2 ) and ( un = rubdepo0 ) then
3754: LD_OWVAR 67
3758: PUSH
3759: LD_INT 2
3761: EQUAL
3762: PUSH
3763: LD_VAR 0 1
3767: PUSH
3768: LD_EXP 14
3772: EQUAL
3773: AND
3774: IFFALSE 3793
// begin settech ( tech_tech1 , rus , state_researched ) ;
3776: LD_INT 48
3778: PPUSH
3779: LD_EXP 1
3783: PPUSH
3784: LD_INT 2
3786: PPUSH
3787: CALL_OW 322
// end else
3791: GO 3853
// if ( not hint_capt ) and ( un in filterallunits ( [ [ f_side , rus ] , [ f_type , unit_vehicle ] ] ) ) then
3793: LD_LOC 25
3797: NOT
3798: PUSH
3799: LD_VAR 0 1
3803: PUSH
3804: LD_INT 22
3806: PUSH
3807: LD_EXP 1
3811: PUSH
3812: EMPTY
3813: LIST
3814: LIST
3815: PUSH
3816: LD_INT 21
3818: PUSH
3819: LD_INT 2
3821: PUSH
3822: EMPTY
3823: LIST
3824: LIST
3825: PUSH
3826: EMPTY
3827: LIST
3828: LIST
3829: PPUSH
3830: CALL_OW 69
3834: IN
3835: AND
3836: IFFALSE 3853
// begin hint_capt = true ;
3838: LD_ADDR_LOC 25
3842: PUSH
3843: LD_INT 1
3845: ST_TO_ADDR
// hint ( CapturingVehicles1 ) ;
3846: LD_STRING CapturingVehicles1
3848: PPUSH
3849: CALL_OW 339
// end ;
3853: PPOPN 1
3855: END
// every 0 0$1 trigger see ( amer , rubdepo0 ) or see ( amer , rubwrks0 ) do
3856: LD_EXP 2
3860: PPUSH
3861: LD_EXP 14
3865: PPUSH
3866: CALL_OW 292
3870: PUSH
3871: LD_EXP 2
3875: PPUSH
3876: LD_LOC 33
3880: PPUSH
3881: CALL_OW 292
3885: OR
3886: IFFALSE 3898
3888: GO 3890
3890: DISABLE
// begin hint ( Capturing2 ) ;
3891: LD_STRING Capturing2
3893: PPUSH
3894: CALL_OW 339
// end ;
3898: END
// every 0 0$1 trigger isinunit ( john ) = false do
3899: LD_LOC 1
3903: PPUSH
3904: CALL_OW 310
3908: PUSH
3909: LD_INT 0
3911: EQUAL
3912: IFFALSE 4360
3914: GO 3916
3916: DISABLE
// begin centeronunits ( john ) ;
3917: LD_LOC 1
3921: PPUSH
3922: CALL_OW 85
// commovexy ( john , 50 , 14 ) ;
3926: LD_LOC 1
3930: PPUSH
3931: LD_INT 50
3933: PPUSH
3934: LD_INT 14
3936: PPUSH
3937: CALL_OW 111
// commovexy ( amhsold1 , 50 , 14 ) ;
3941: LD_LOC 8
3945: PPUSH
3946: LD_INT 50
3948: PPUSH
3949: LD_INT 14
3951: PPUSH
3952: CALL_OW 111
// say ( john , D1-JMM-1 ) ;
3956: LD_LOC 1
3960: PPUSH
3961: LD_STRING D1-JMM-1
3963: PPUSH
3964: CALL_OW 88
// centeronxy ( 50 , 14 ) ;
3968: LD_INT 50
3970: PPUSH
3971: LD_INT 14
3973: PPUSH
3974: CALL_OW 84
// say ( amhsold1 , D1-Brown-1 ) ;
3978: LD_LOC 8
3982: PPUSH
3983: LD_STRING D1-Brown-1
3985: PPUSH
3986: CALL_OW 88
// say ( john , D1-JMM-2 ) ;
3990: LD_LOC 1
3994: PPUSH
3995: LD_STRING D1-JMM-2
3997: PPUSH
3998: CALL_OW 88
// say ( amhsold1 , D1-Brown-2 ) ;
4002: LD_LOC 8
4006: PPUSH
4007: LD_STRING D1-Brown-2
4009: PPUSH
4010: CALL_OW 88
// say ( amhsold0 , D1-FSol1-2 ) ;
4014: LD_INT 34
4016: PPUSH
4017: LD_STRING D1-FSol1-2
4019: PPUSH
4020: CALL_OW 88
// say ( amhmech0 , D1-Sol2-2 ) ;
4024: LD_INT 17
4026: PPUSH
4027: LD_STRING D1-Sol2-2
4029: PPUSH
4030: CALL_OW 88
// if bobby then
4034: LD_LOC 2
4038: IFFALSE 4052
// say ( bobby , D1-Bobby-2 ) ;
4040: LD_LOC 2
4044: PPUSH
4045: LD_STRING D1-Bobby-2
4047: PPUSH
4048: CALL_OW 88
// if cyrus then
4052: LD_LOC 3
4056: IFFALSE 4070
// say ( cyrus , D1-Cyrus-2 ) ;
4058: LD_LOC 3
4062: PPUSH
4063: LD_STRING D1-Cyrus-2
4065: PPUSH
4066: CALL_OW 88
// if lisa then
4070: LD_LOC 4
4074: IFFALSE 4088
// say ( lisa , D1-Lisa-2 ) ;
4076: LD_LOC 4
4080: PPUSH
4081: LD_STRING D1-Lisa-2
4083: PPUSH
4084: CALL_OW 88
// say ( john , D1-JMM-3 ) ;
4088: LD_LOC 1
4092: PPUSH
4093: LD_STRING D1-JMM-3
4095: PPUSH
4096: CALL_OW 88
// commovexy ( john , 42 , 6 ) ;
4100: LD_LOC 1
4104: PPUSH
4105: LD_INT 42
4107: PPUSH
4108: LD_INT 6
4110: PPUSH
4111: CALL_OW 111
// wait ( 0 0$2.2 ) ;
4115: LD_INT 77
4117: PPUSH
4118: CALL_OW 67
// centeronunits ( john ) ;
4122: LD_LOC 1
4126: PPUSH
4127: CALL_OW 85
// say ( john , D1-JMM-3a ) ;
4131: LD_LOC 1
4135: PPUSH
4136: LD_STRING D1-JMM-3a
4138: PPUSH
4139: CALL_OW 88
// say ( amhsold1 , D1-Brown-3 ) ;
4143: LD_LOC 8
4147: PPUSH
4148: LD_STRING D1-Brown-3
4150: PPUSH
4151: CALL_OW 88
// sayradio ( rh , D1-Har-3 ) ;
4155: LD_EXP 4
4159: PPUSH
4160: LD_STRING D1-Har-3
4162: PPUSH
4163: CALL_OW 94
// say ( john , D1-JMM-4 ) ;
4167: LD_LOC 1
4171: PPUSH
4172: LD_STRING D1-JMM-4
4174: PPUSH
4175: CALL_OW 88
// sayradio ( rh , D1-Har-4 ) ;
4179: LD_EXP 4
4183: PPUSH
4184: LD_STRING D1-Har-4
4186: PPUSH
4187: CALL_OW 94
// say ( john , D1-JMM-5 ) ;
4191: LD_LOC 1
4195: PPUSH
4196: LD_STRING D1-JMM-5
4198: PPUSH
4199: CALL_OW 88
// sayradio ( rh , D1-Har-5 ) ;
4203: LD_EXP 4
4207: PPUSH
4208: LD_STRING D1-Har-5
4210: PPUSH
4211: CALL_OW 94
// say ( john , D1-JMM-6 ) ;
4215: LD_LOC 1
4219: PPUSH
4220: LD_STRING D1-JMM-6
4222: PPUSH
4223: CALL_OW 88
// ingameoff ;
4227: CALL_OW 9
// saveforquickrestart ;
4231: CALL_OW 22
// wait ( 0 0$0.7 ) ;
4235: LD_INT 24
4237: PPUSH
4238: CALL_OW 67
// changemissionobjectives ( M1 ) ;
4242: LD_STRING M1
4244: PPUSH
4245: CALL_OW 337
// comfree ( [ john , amhsold0 , amhsold1 , amhmech0 , bobby , cyrus , lisa ] ) ;
4249: LD_LOC 1
4253: PUSH
4254: LD_INT 34
4256: PUSH
4257: LD_LOC 8
4261: PUSH
4262: LD_INT 17
4264: PUSH
4265: LD_LOC 2
4269: PUSH
4270: LD_LOC 3
4274: PUSH
4275: LD_LOC 4
4279: PUSH
4280: EMPTY
4281: LIST
4282: LIST
4283: LIST
4284: LIST
4285: LIST
4286: LIST
4287: LIST
4288: PPUSH
4289: CALL_OW 139
// wait ( 0 0$1 ) ;
4293: LD_INT 35
4295: PPUSH
4296: CALL_OW 67
// hint ( Oil ) ;
4300: LD_STRING Oil
4302: PPUSH
4303: CALL_OW 339
// rubdepo0 = combuild ( ruhengi1 , b_depot , 50 , 61 , 5 ) ;
4307: LD_ADDR_EXP 14
4311: PUSH
4312: LD_INT 18
4314: PPUSH
4315: LD_INT 0
4317: PPUSH
4318: LD_INT 50
4320: PPUSH
4321: LD_INT 61
4323: PPUSH
4324: LD_INT 5
4326: PPUSH
4327: CALL_OW 145
4331: ST_TO_ADDR
// commovexy ( ruhengi0 , 50 , 57 ) ;
4332: LD_INT 2
4334: PPUSH
4335: LD_INT 50
4337: PPUSH
4338: LD_INT 57
4340: PPUSH
4341: CALL_OW 111
// wait ( 0 0$10 ) ;
4345: LD_INT 350
4347: PPUSH
4348: CALL_OW 67
// dial1_ended = true ;
4352: LD_ADDR_LOC 23
4356: PUSH
4357: LD_INT 1
4359: ST_TO_ADDR
// end ;
4360: END
// every 0 0$2 + 1 1$0 trigger dial1_ended do
4361: LD_LOC 23
4365: IFFALSE 4440
4367: GO 4369
4369: DISABLE
// begin if not unitfilter ( [ ambwrks0 ] , [ [ f_btype , b_factory ] ] ) then
4370: LD_INT 5
4372: PUSH
4373: EMPTY
4374: LIST
4375: PPUSH
4376: LD_INT 30
4378: PUSH
4379: LD_INT 3
4381: PUSH
4382: EMPTY
4383: LIST
4384: LIST
4385: PUSH
4386: EMPTY
4387: LIST
4388: PPUSH
4389: CALL_OW 72
4393: NOT
4394: IFFALSE 4440
// begin dialogueon ;
4396: CALL_OW 6
// say ( amhmech0 , D9-Mech1-1 ) ;
4400: LD_INT 17
4402: PPUSH
4403: LD_STRING D9-Mech1-1
4405: PPUSH
4406: CALL_OW 88
// say ( john , D9-JMM-1 ) ;
4410: LD_LOC 1
4414: PPUSH
4415: LD_STRING D9-JMM-1
4417: PPUSH
4418: CALL_OW 88
// dialogueoff ;
4422: CALL_OW 7
// wait ( 0 0$1 ) ;
4426: LD_INT 35
4428: PPUSH
4429: CALL_OW 67
// hint ( Upgrade ) ;
4433: LD_STRING Upgrade
4435: PPUSH
4436: CALL_OW 339
// end ; end ;
4440: END
// on upgradecomplete ( un ) do if getbtype ( un ) = b_factory then
4441: LD_VAR 0 1
4445: PPUSH
4446: CALL_OW 266
4450: PUSH
4451: LD_INT 3
4453: EQUAL
4454: IFFALSE 4464
// begin hint ( Turrets ) ;
4456: LD_STRING Turrets
4458: PPUSH
4459: CALL_OW 339
// disable ;
4463: DISABLE
// end ;
4464: PPOPN 1
4466: 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
4467: LD_INT 5
4469: PUSH
4470: EMPTY
4471: LIST
4472: PPUSH
4473: LD_INT 30
4475: PUSH
4476: LD_INT 3
4478: PUSH
4479: EMPTY
4480: LIST
4481: LIST
4482: PUSH
4483: EMPTY
4484: LIST
4485: PPUSH
4486: CALL_OW 72
4490: PUSH
4491: LD_INT 5
4493: PPUSH
4494: CALL_OW 304
4498: NOT
4499: AND
4500: PUSH
4501: LD_INT 22
4503: PUSH
4504: LD_EXP 2
4508: PUSH
4509: EMPTY
4510: LIST
4511: LIST
4512: PUSH
4513: EMPTY
4514: LIST
4515: PPUSH
4516: CALL_OW 69
4520: PPUSH
4521: LD_INT 2
4523: PUSH
4524: LD_INT 30
4526: PUSH
4527: LD_INT 26
4529: PUSH
4530: EMPTY
4531: LIST
4532: LIST
4533: PUSH
4534: LD_INT 30
4536: PUSH
4537: LD_INT 27
4539: PUSH
4540: EMPTY
4541: LIST
4542: LIST
4543: PUSH
4544: EMPTY
4545: LIST
4546: LIST
4547: LIST
4548: PPUSH
4549: CALL_OW 72
4553: NOT
4554: AND
4555: IFFALSE 4578
4557: GO 4559
4559: DISABLE
// begin if which_dlg <> 11 then
4560: LD_LOC 18
4564: PUSH
4565: LD_INT 11
4567: NONEQUAL
4568: IFFALSE 4578
// which_dlg = 10 ;
4570: LD_ADDR_LOC 18
4574: PUSH
4575: LD_INT 10
4577: ST_TO_ADDR
// end ;
4578: 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
4579: LD_INT 22
4581: PUSH
4582: LD_EXP 2
4586: PUSH
4587: EMPTY
4588: LIST
4589: LIST
4590: PUSH
4591: LD_INT 30
4593: PUSH
4594: LD_INT 32
4596: PUSH
4597: EMPTY
4598: LIST
4599: LIST
4600: PUSH
4601: EMPTY
4602: LIST
4603: LIST
4604: PPUSH
4605: CALL_OW 69
4609: PUSH
4610: LD_INT 22
4612: PUSH
4613: LD_EXP 2
4617: PUSH
4618: EMPTY
4619: LIST
4620: LIST
4621: PUSH
4622: EMPTY
4623: LIST
4624: PPUSH
4625: CALL_OW 69
4629: PPUSH
4630: LD_INT 2
4632: PUSH
4633: LD_INT 30
4635: PUSH
4636: LD_INT 26
4638: PUSH
4639: EMPTY
4640: LIST
4641: LIST
4642: PUSH
4643: LD_INT 30
4645: PUSH
4646: LD_INT 27
4648: PUSH
4649: EMPTY
4650: LIST
4651: LIST
4652: PUSH
4653: EMPTY
4654: LIST
4655: LIST
4656: LIST
4657: PPUSH
4658: CALL_OW 72
4662: NOT
4663: AND
4664: IFFALSE 4687
4666: GO 4668
4668: DISABLE
// begin if which_dlg <> 10 then
4669: LD_LOC 18
4673: PUSH
4674: LD_INT 10
4676: NONEQUAL
4677: IFFALSE 4687
// which_dlg = 11 ;
4679: LD_ADDR_LOC 18
4683: PUSH
4684: LD_INT 11
4686: ST_TO_ADDR
// end ;
4687: END
// every 0 0$1 + 0 0$5.5 trigger which_dlg <> 0 do
4688: LD_LOC 18
4692: PUSH
4693: LD_INT 0
4695: NONEQUAL
4696: IFFALSE 4931
4698: GO 4700
4700: DISABLE
// begin dialogueon ;
4701: CALL_OW 6
// if which_dlg = 10 then
4705: LD_LOC 18
4709: PUSH
4710: LD_INT 10
4712: EQUAL
4713: IFFALSE 4737
// begin say ( john , D9a-JMM-1 ) ;
4715: LD_LOC 1
4719: PPUSH
4720: LD_STRING D9a-JMM-1
4722: PPUSH
4723: CALL_OW 88
// say ( amhmech0 , D9a-Mech1-1 ) ;
4727: LD_INT 17
4729: PPUSH
4730: LD_STRING D9a-Mech1-1
4732: PPUSH
4733: CALL_OW 88
// end ; if which_dlg = 11 then
4737: LD_LOC 18
4741: PUSH
4742: LD_INT 11
4744: EQUAL
4745: IFFALSE 4757
// begin say ( amhengi0 , D9b-Eng1-1 ) ;
4747: LD_INT 15
4749: PPUSH
4750: LD_STRING D9b-Eng1-1
4752: PPUSH
4753: CALL_OW 88
// end ; if ( not researched ( amer , tech_oilpow ) ) and ( not researched ( amer , tech_solpow ) ) then
4757: LD_EXP 2
4761: PPUSH
4762: LD_INT 46
4764: PPUSH
4765: CALL_OW 325
4769: NOT
4770: PUSH
4771: LD_EXP 2
4775: PPUSH
4776: LD_INT 35
4778: PPUSH
4779: CALL_OW 325
4783: NOT
4784: AND
4785: IFFALSE 4801
// say ( john , D9c-JMM-1 ) else
4787: LD_LOC 1
4791: PPUSH
4792: LD_STRING D9c-JMM-1
4794: PPUSH
4795: CALL_OW 88
4799: GO 4927
// if ( not researched ( amer , tech_oilpow ) ) and researched ( amer , tech_solpow ) then
4801: LD_EXP 2
4805: PPUSH
4806: LD_INT 46
4808: PPUSH
4809: CALL_OW 325
4813: NOT
4814: PUSH
4815: LD_EXP 2
4819: PPUSH
4820: LD_INT 35
4822: PPUSH
4823: CALL_OW 325
4827: AND
4828: IFFALSE 4844
// say ( john , D9c-JMM-1a ) else
4830: LD_LOC 1
4834: PPUSH
4835: LD_STRING D9c-JMM-1a
4837: PPUSH
4838: CALL_OW 88
4842: GO 4927
// if researched ( amer , tech_oilpow ) and ( not researched ( amer , tech_solpow ) ) then
4844: LD_EXP 2
4848: PPUSH
4849: LD_INT 46
4851: PPUSH
4852: CALL_OW 325
4856: PUSH
4857: LD_EXP 2
4861: PPUSH
4862: LD_INT 35
4864: PPUSH
4865: CALL_OW 325
4869: NOT
4870: AND
4871: IFFALSE 4887
// say ( john , D9c-JMM-1b ) else
4873: LD_LOC 1
4877: PPUSH
4878: LD_STRING D9c-JMM-1b
4880: PPUSH
4881: CALL_OW 88
4885: GO 4927
// if researched ( amer , tech_oilpow ) and researched ( amer , tech_solpow ) then
4887: LD_EXP 2
4891: PPUSH
4892: LD_INT 46
4894: PPUSH
4895: CALL_OW 325
4899: PUSH
4900: LD_EXP 2
4904: PPUSH
4905: LD_INT 35
4907: PPUSH
4908: CALL_OW 325
4912: AND
4913: IFFALSE 4927
// say ( john , D9c-JMM-1c ) ;
4915: LD_LOC 1
4919: PPUSH
4920: LD_STRING D9c-JMM-1c
4922: PPUSH
4923: CALL_OW 88
// dialogueoff ;
4927: CALL_OW 7
// end ;
4931: END
// function postavena_fact ; var zatr ; begin
4932: LD_INT 0
4934: PPUSH
4935: PPUSH
// zatr = unitfilter ( [ ambwrks0 ] , [ [ f_btype , b_factory ] ] ) ;
4936: LD_ADDR_VAR 0 2
4940: PUSH
4941: LD_INT 5
4943: PUSH
4944: EMPTY
4945: LIST
4946: PPUSH
4947: LD_INT 30
4949: PUSH
4950: LD_INT 3
4952: PUSH
4953: EMPTY
4954: LIST
4955: LIST
4956: PUSH
4957: EMPTY
4958: LIST
4959: PPUSH
4960: CALL_OW 72
4964: ST_TO_ADDR
// result = false ;
4965: LD_ADDR_VAR 0 1
4969: PUSH
4970: LD_INT 0
4972: ST_TO_ADDR
// if zatr then
4973: LD_VAR 0 2
4977: IFFALSE 5003
// if not isconstructed ( zatr [ 1 ] ) then
4979: LD_VAR 0 2
4983: PUSH
4984: LD_INT 1
4986: ARRAY
4987: PPUSH
4988: CALL_OW 304
4992: NOT
4993: IFFALSE 5003
// result = true ;
4995: LD_ADDR_VAR 0 1
4999: PUSH
5000: LD_INT 1
5002: ST_TO_ADDR
// end ;
5003: LD_VAR 0 1
5007: RET
// function postavena_elekt ; var tmp , ii ; begin
5008: LD_INT 0
5010: PPUSH
5011: PPUSH
5012: PPUSH
// result = false ;
5013: LD_ADDR_VAR 0 1
5017: PUSH
5018: LD_INT 0
5020: ST_TO_ADDR
// tmp = unitfilter ( filterallunits ( [ [ f_side , amer ] ] ) , [ f_or , [ f_btype , b_oil_power ] , [ f_btype , b_solar_power ] ] ) ;
5021: LD_ADDR_VAR 0 2
5025: PUSH
5026: LD_INT 22
5028: PUSH
5029: LD_EXP 2
5033: PUSH
5034: EMPTY
5035: LIST
5036: LIST
5037: PUSH
5038: EMPTY
5039: LIST
5040: PPUSH
5041: CALL_OW 69
5045: PPUSH
5046: LD_INT 2
5048: PUSH
5049: LD_INT 30
5051: PUSH
5052: LD_INT 26
5054: PUSH
5055: EMPTY
5056: LIST
5057: LIST
5058: PUSH
5059: LD_INT 30
5061: PUSH
5062: LD_INT 27
5064: PUSH
5065: EMPTY
5066: LIST
5067: LIST
5068: PUSH
5069: EMPTY
5070: LIST
5071: LIST
5072: LIST
5073: PPUSH
5074: CALL_OW 72
5078: ST_TO_ADDR
// if tmp then
5079: LD_VAR 0 2
5083: IFFALSE 5126
// for ii in tmp do
5085: LD_ADDR_VAR 0 3
5089: PUSH
5090: LD_VAR 0 2
5094: PUSH
5095: FOR_IN
5096: IFFALSE 5124
// if not isconstructed ( ii ) then
5098: LD_VAR 0 3
5102: PPUSH
5103: CALL_OW 304
5107: NOT
5108: IFFALSE 5122
// begin result = true ;
5110: LD_ADDR_VAR 0 1
5114: PUSH
5115: LD_INT 1
5117: ST_TO_ADDR
// exit ;
5118: POP
5119: POP
5120: GO 5126
// end ;
5122: GO 5095
5124: POP
5125: POP
// end ;
5126: LD_VAR 0 1
5130: RET
// every 0 0$2.5 trigger postavena_fact and postavena_elekt do
5131: CALL 4932 0 0
5135: PUSH
5136: CALL 5008 0 0
5140: AND
5141: IFFALSE 5164
5143: GO 5145
5145: DISABLE
// begin dialogueon ;
5146: CALL_OW 6
// say ( amhmech0 , D10-Mech1-1 ) ;
5150: LD_INT 17
5152: PPUSH
5153: LD_STRING D10-Mech1-1
5155: PPUSH
5156: CALL_OW 88
// dialogueoff ;
5160: CALL_OW 7
// end ;
5164: END
// var zatr ; function postaveny_bunkr ; begin
5165: LD_INT 0
5167: PPUSH
// zatr = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_bunker ] , [ f_nation , nation_american ] ] ) ;
5168: LD_ADDR_LOC 26
5172: PUSH
5173: LD_INT 22
5175: PUSH
5176: LD_EXP 2
5180: PUSH
5181: EMPTY
5182: LIST
5183: LIST
5184: PUSH
5185: LD_INT 30
5187: PUSH
5188: LD_INT 32
5190: PUSH
5191: EMPTY
5192: LIST
5193: LIST
5194: PUSH
5195: LD_INT 23
5197: PUSH
5198: LD_INT 1
5200: PUSH
5201: EMPTY
5202: LIST
5203: LIST
5204: PUSH
5205: EMPTY
5206: LIST
5207: LIST
5208: LIST
5209: PPUSH
5210: CALL_OW 69
5214: ST_TO_ADDR
// result = false ;
5215: LD_ADDR_VAR 0 1
5219: PUSH
5220: LD_INT 0
5222: ST_TO_ADDR
// if zatr then
5223: LD_LOC 26
5227: IFFALSE 5253
// if not isconstructed ( zatr [ 1 ] ) then
5229: LD_LOC 26
5233: PUSH
5234: LD_INT 1
5236: ARRAY
5237: PPUSH
5238: CALL_OW 304
5242: NOT
5243: IFFALSE 5253
// result = true ;
5245: LD_ADDR_VAR 0 1
5249: PUSH
5250: LD_INT 1
5252: ST_TO_ADDR
// end ;
5253: LD_VAR 0 1
5257: RET
// every 0 0$1 + 0 0$5.1 trigger postaveny_bunkr do
5258: CALL 5165 0 0
5262: IFFALSE 5285
5264: GO 5266
5266: DISABLE
// begin dialogueon ;
5267: CALL_OW 6
// say ( amhengi0 , D11-Eng1-1 ) ;
5271: LD_INT 15
5273: PPUSH
5274: LD_STRING D11-Eng1-1
5276: PPUSH
5277: CALL_OW 88
// dialogueoff ;
5281: CALL_OW 7
// end ;
5285: END
// every 2 2$0 + 0 0$15 do
5286: GO 5288
5288: DISABLE
// begin createcratesarea ( 5 , targetarea , true ) ;
5289: LD_INT 5
5291: PPUSH
5292: LD_INT 11
5294: PPUSH
5295: LD_INT 1
5297: PPUSH
5298: CALL_OW 55
// if supply then
5302: LD_LOC 17
5306: IFFALSE 5323
// begin supply = supply - 1 ;
5308: LD_ADDR_LOC 17
5312: PUSH
5313: LD_LOC 17
5317: PUSH
5318: LD_INT 1
5320: MINUS
5321: ST_TO_ADDR
// enable ;
5322: ENABLE
// end ; end ;
5323: END
// every 0 0$7 do
5324: GO 5326
5326: DISABLE
// begin randomize ;
5327: CALL_OW 10
// enable ;
5331: ENABLE
// end ;
5332: END
// var bu1_done , br2_done , op1_done ; var oilpowpldone , scndoildrill , powerhint ; on buildingcomplete ( un ) marked 01 do if un = rubbunk1 then
5333: LD_VAR 0 1
5337: PUSH
5338: LD_EXP 15
5342: EQUAL
5343: IFFALSE 5355
// bu1_done = true else
5345: LD_ADDR_LOC 27
5349: PUSH
5350: LD_INT 1
5352: ST_TO_ADDR
5353: GO 5654
// if un = rubbrwr2 then
5355: LD_VAR 0 1
5359: PUSH
5360: LD_EXP 16
5364: EQUAL
5365: IFFALSE 5377
// br2_done = true else
5367: LD_ADDR_LOC 28
5371: PUSH
5372: LD_INT 1
5374: ST_TO_ADDR
5375: GO 5654
// if un = ruboilp1 then
5377: LD_VAR 0 1
5381: PUSH
5382: LD_LOC 34
5386: EQUAL
5387: IFFALSE 5399
// op1_done = true else
5389: LD_ADDR_LOC 29
5393: PUSH
5394: LD_INT 1
5396: ST_TO_ADDR
5397: GO 5654
// if un = rubwrks0 then
5399: LD_VAR 0 1
5403: PUSH
5404: LD_LOC 33
5408: EQUAL
5409: IFFALSE 5421
// build_wrks = true else
5411: LD_ADDR_LOC 12
5415: PUSH
5416: LD_INT 1
5418: ST_TO_ADDR
5419: GO 5654
// if ( getnation ( un ) = nation_american ) and ( getbtype ( un ) = b_oil_power ) and not oilpowpldone then
5421: LD_VAR 0 1
5425: PPUSH
5426: CALL_OW 248
5430: PUSH
5431: LD_INT 1
5433: EQUAL
5434: PUSH
5435: LD_VAR 0 1
5439: PPUSH
5440: CALL_OW 266
5444: PUSH
5445: LD_INT 26
5447: EQUAL
5448: AND
5449: PUSH
5450: LD_LOC 30
5454: NOT
5455: AND
5456: IFFALSE 5503
// begin oilpowpldone = true ;
5458: LD_ADDR_LOC 30
5462: PUSH
5463: LD_INT 1
5465: ST_TO_ADDR
// if not powerhint then
5466: LD_LOC 32
5470: NOT
5471: IFFALSE 5488
// begin powerhint = true ;
5473: LD_ADDR_LOC 32
5477: PUSH
5478: LD_INT 1
5480: ST_TO_ADDR
// hint ( PowerPlant ) ;
5481: LD_STRING PowerPlant
5483: PPUSH
5484: CALL_OW 339
// end ; if scndoildrill then
5488: LD_LOC 31
5492: IFFALSE 5501
// changemissionobjectives ( M1a ) ;
5494: LD_STRING M1a
5496: PPUSH
5497: CALL_OW 337
// end else
5501: GO 5654
// if ( getnation ( un ) = nation_american ) and ( getbtype ( un ) = b_oil_mine ) and ( getx ( un ) <> 38 ) and ( gety ( un ) <> 3 ) and not scndoildrill then
5503: LD_VAR 0 1
5507: PPUSH
5508: CALL_OW 248
5512: PUSH
5513: LD_INT 1
5515: EQUAL
5516: PUSH
5517: LD_VAR 0 1
5521: PPUSH
5522: CALL_OW 266
5526: PUSH
5527: LD_INT 29
5529: EQUAL
5530: AND
5531: PUSH
5532: LD_VAR 0 1
5536: PPUSH
5537: CALL_OW 250
5541: PUSH
5542: LD_INT 38
5544: NONEQUAL
5545: AND
5546: PUSH
5547: LD_VAR 0 1
5551: PPUSH
5552: CALL_OW 251
5556: PUSH
5557: LD_INT 3
5559: NONEQUAL
5560: AND
5561: PUSH
5562: LD_LOC 31
5566: NOT
5567: AND
5568: IFFALSE 5593
// begin scndoildrill = true ;
5570: LD_ADDR_LOC 31
5574: PUSH
5575: LD_INT 1
5577: ST_TO_ADDR
// if oilpowpldone then
5578: LD_LOC 30
5582: IFFALSE 5591
// changemissionobjectives ( M1a ) ;
5584: LD_STRING M1a
5586: PPUSH
5587: CALL_OW 337
// end else
5591: GO 5654
// if ( getbtype ( un ) = b_solar_power ) and ( not powerhint ) then
5593: LD_VAR 0 1
5597: PPUSH
5598: CALL_OW 266
5602: PUSH
5603: LD_INT 27
5605: EQUAL
5606: PUSH
5607: LD_LOC 32
5611: NOT
5612: AND
5613: IFFALSE 5632
// begin powerhint = true ;
5615: LD_ADDR_LOC 32
5619: PUSH
5620: LD_INT 1
5622: ST_TO_ADDR
// hint ( PowerPlant ) ;
5623: LD_STRING PowerPlant
5625: PPUSH
5626: CALL_OW 339
// end else
5630: GO 5654
// if getbtype ( un ) = b_bunker then
5632: LD_VAR 0 1
5636: PPUSH
5637: CALL_OW 266
5641: PUSH
5642: LD_INT 32
5644: EQUAL
5645: IFFALSE 5654
// hint ( Turrets2 ) ;
5647: LD_STRING Turrets2
5649: PPUSH
5650: CALL_OW 339
5654: PPOPN 1
5656: END
// every 0 0$3 + 1 1$25 trigger isinarea ( ruhengi1 , rubase1rng ) and not isconstructed ( rubdepo0 ) do
5657: LD_INT 18
5659: PPUSH
5660: LD_INT 3
5662: PPUSH
5663: CALL_OW 308
5667: PUSH
5668: LD_EXP 14
5672: PPUSH
5673: CALL_OW 304
5677: NOT
5678: AND
5679: IFFALSE 5732
5681: GO 5683
5683: DISABLE
// begin depot_done = true ;
5684: LD_ADDR_LOC 11
5688: PUSH
5689: LD_INT 1
5691: ST_TO_ADDR
// comcollect ( [ ruhengi1 , ruhengi0 ] , 40 , 54 ) ;
5692: LD_INT 18
5694: PUSH
5695: LD_INT 2
5697: PUSH
5698: EMPTY
5699: LIST
5700: LIST
5701: PPUSH
5702: LD_INT 40
5704: PPUSH
5705: LD_INT 54
5707: PPUSH
5708: CALL_OW 117
// commovexy ( ruv0 , 48 , 53 ) ;
5712: LD_INT 7
5714: PPUSH
5715: LD_INT 48
5717: PPUSH
5718: LD_INT 53
5720: PPUSH
5721: CALL_OW 111
// addcomhold ( ruv0 ) ;
5725: LD_INT 7
5727: PPUSH
5728: CALL_OW 200
// end ;
5732: END
// every 0 0$3 + 1 1$40 trigger depot_done and getresourcetype ( getbase ( rubdepo0 ) , mat_cans ) >= 30 do
5733: LD_LOC 11
5737: PUSH
5738: LD_EXP 14
5742: PPUSH
5743: CALL_OW 274
5747: PPUSH
5748: LD_INT 1
5750: PPUSH
5751: CALL_OW 275
5755: PUSH
5756: LD_INT 30
5758: GREATEREQUAL
5759: AND
5760: IFFALSE 5857
5762: GO 5764
5764: DISABLE
// begin comhold ( [ ruhengi0 , ruhengi1 ] ) ;
5765: LD_INT 2
5767: PUSH
5768: LD_INT 18
5770: PUSH
5771: EMPTY
5772: LIST
5773: LIST
5774: PPUSH
5775: CALL_OW 140
// addresourcetype ( getbase ( rubdepo0 ) , mat_cans , 50 ) ;
5779: LD_EXP 14
5783: PPUSH
5784: CALL_OW 274
5788: PPUSH
5789: LD_INT 1
5791: PPUSH
5792: LD_INT 50
5794: PPUSH
5795: CALL_OW 276
// rubbunk1 = combuild ( ruhengi1 , b_bunker , 44 , 50 , 3 ) ;
5799: LD_ADDR_EXP 15
5803: PUSH
5804: LD_INT 18
5806: PPUSH
5807: LD_INT 32
5809: PPUSH
5810: LD_INT 44
5812: PPUSH
5813: LD_INT 50
5815: PPUSH
5816: LD_INT 3
5818: PPUSH
5819: CALL_OW 145
5823: ST_TO_ADDR
// rubbrwr2 = combuild ( ruhengi0 , b_breastwork , 52 , 57 , 3 ) ;
5824: LD_ADDR_EXP 16
5828: PUSH
5829: LD_INT 2
5831: PPUSH
5832: LD_INT 31
5834: PPUSH
5835: LD_INT 52
5837: PPUSH
5838: LD_INT 57
5840: PPUSH
5841: LD_INT 3
5843: PPUSH
5844: CALL_OW 145
5848: ST_TO_ADDR
// opev_start = true ;
5849: LD_ADDR_LOC 19
5853: PUSH
5854: LD_INT 1
5856: ST_TO_ADDR
// end ;
5857: END
// every 0 0$3 + 1 1$55 trigger opev_start and bu1_done do
5858: LD_LOC 19
5862: PUSH
5863: LD_LOC 27
5867: AND
5868: IFFALSE 5927
5870: GO 5872
5872: DISABLE
// begin setblevel ( rubbunk1 , bunk_lev ) ;
5873: LD_EXP 15
5877: PPUSH
5878: LD_LOC 16
5882: PPUSH
5883: CALL_OW 241
// commoveunit ( ruhsold1 , rubbunk1 ) ;
5887: LD_INT 12
5889: PPUSH
5890: LD_EXP 15
5894: PPUSH
5895: CALL_OW 112
// addresourcetype ( getbase ( rubdepo0 ) , mat_cans , 90 ) ;
5899: LD_EXP 14
5903: PPUSH
5904: CALL_OW 274
5908: PPUSH
5909: LD_INT 1
5911: PPUSH
5912: LD_INT 90
5914: PPUSH
5915: CALL_OW 276
// bunker_done = true ;
5919: LD_ADDR_EXP 19
5923: PUSH
5924: LD_INT 1
5926: ST_TO_ADDR
// end ;
5927: END
// every 0 0$2.5 + 1 1$57 trigger bunker_done and not isinunit ( ruhsold1 ) = rubbunk1 do
5928: LD_EXP 19
5932: PUSH
5933: LD_INT 12
5935: PPUSH
5936: CALL_OW 310
5940: PUSH
5941: LD_EXP 15
5945: EQUAL
5946: NOT
5947: AND
5948: IFFALSE 5989
5950: GO 5952
5952: DISABLE
// begin commoveunit ( ruhsold1 , rubbunk1 ) ;
5953: LD_INT 12
5955: PPUSH
5956: LD_EXP 15
5960: PPUSH
5961: CALL_OW 112
// wait ( 0 0$3 ) ;
5965: LD_INT 105
5967: PPUSH
5968: CALL_OW 67
// if not isinunit ( ruhsold1 ) = rubbunk1 then
5972: LD_INT 12
5974: PPUSH
5975: CALL_OW 310
5979: PUSH
5980: LD_EXP 15
5984: EQUAL
5985: NOT
5986: IFFALSE 5989
// enable ;
5988: ENABLE
// end ;
5989: END
// every 0 0$5 + 2 2$0 trigger bunker_done do
5990: LD_EXP 19
5994: IFFALSE 6025
5996: GO 5998
5998: DISABLE
// begin comfree ( ruhengi0 ) ;
5999: LD_INT 2
6001: PPUSH
6002: CALL_OW 139
// combuild ( ruhengi1 , b_oil_mine , 42 , 54 , 0 ) ;
6006: LD_INT 18
6008: PPUSH
6009: LD_INT 29
6011: PPUSH
6012: LD_INT 42
6014: PPUSH
6015: LD_INT 54
6017: PPUSH
6018: LD_INT 0
6020: PPUSH
6021: CALL_OW 145
// end ;
6025: END
// var rubwrks0 ; every 0 0$5 + 3 3$15 trigger depot_done and getresourcetype ( getbase ( rubdepo0 ) , mat_oil ) > 0 do
6026: LD_LOC 11
6030: PUSH
6031: LD_EXP 14
6035: PPUSH
6036: CALL_OW 274
6040: PPUSH
6041: LD_INT 2
6043: PPUSH
6044: CALL_OW 275
6048: PUSH
6049: LD_INT 0
6051: GREATER
6052: AND
6053: IFFALSE 6083
6055: GO 6057
6057: DISABLE
// begin rubwrks0 = combuild ( ruhengi1 , b_workshop , 39 , 48 , 2 ) ;
6058: LD_ADDR_LOC 33
6062: PUSH
6063: LD_INT 18
6065: PPUSH
6066: LD_INT 2
6068: PPUSH
6069: LD_INT 39
6071: PPUSH
6072: LD_INT 48
6074: PPUSH
6075: LD_INT 2
6077: PPUSH
6078: CALL_OW 145
6082: ST_TO_ADDR
// end ;
6083: END
// var ruboilp1 ; every 0 0$5 + 4 4$25 trigger build_wrks and not IsConstructed ( rubwrks0 ) do
6084: LD_LOC 12
6088: PUSH
6089: LD_LOC 33
6093: PPUSH
6094: CALL_OW 304
6098: NOT
6099: AND
6100: IFFALSE 6142
6102: GO 6104
6104: DISABLE
// begin ruboilp1 = combuild ( ruhengi1 , b_oil_power , 34 , 49 , 0 ) ;
6105: LD_ADDR_LOC 34
6109: PUSH
6110: LD_INT 18
6112: PPUSH
6113: LD_INT 26
6115: PPUSH
6116: LD_INT 34
6118: PPUSH
6119: LD_INT 49
6121: PPUSH
6122: LD_INT 0
6124: PPUSH
6125: CALL_OW 145
6129: ST_TO_ADDR
// commoveunit ( ruhmech1 , rubwrks0 ) ;
6130: LD_INT 19
6132: PPUSH
6133: LD_LOC 33
6137: PPUSH
6138: CALL_OW 112
// end ;
6142: END
// every 0 0$6 + 4 4$20 trigger build_wrks and Isinunit ( ruhmech1 ) = rubwrks0 do
6143: LD_LOC 12
6147: PUSH
6148: LD_INT 19
6150: PPUSH
6151: CALL_OW 310
6155: PUSH
6156: LD_LOC 33
6160: EQUAL
6161: AND
6162: IFFALSE 6189
6164: GO 6166
6166: DISABLE
// begin commoveunit ( ruhengi0 , rubware0 ) ;
6167: LD_INT 2
6169: PPUSH
6170: LD_INT 21
6172: PPUSH
6173: CALL_OW 112
// complaceweapon ( rubbunk1 , ru_heavy_machine_gun ) ;
6177: LD_EXP 15
6181: PPUSH
6182: LD_INT 42
6184: PPUSH
6185: CALL_OW 148
// end ;
6189: END
// on weaponplaced ( bunk , fact ) do if bunk = rubbunk1 then
6190: LD_VAR 0 1
6194: PUSH
6195: LD_EXP 15
6199: EQUAL
6200: IFFALSE 6225
// begin commovexy ( ruv0 , 73 , 78 ) ;
6202: LD_INT 7
6204: PPUSH
6205: LD_INT 73
6207: PPUSH
6208: LD_INT 78
6210: PPUSH
6211: CALL_OW 111
// commoveunit ( ruhmech1 , rubfact0 ) ;
6215: LD_INT 19
6217: PPUSH
6218: LD_INT 24
6220: PPUSH
6221: CALL_OW 112
// end ;
6225: PPOPN 2
6227: END
// every 0 0$7 + 4 4$55 trigger ruboilp1 and op1_done do
6228: LD_LOC 34
6232: PUSH
6233: LD_LOC 29
6237: AND
6238: IFFALSE 6255
6240: GO 6242
6242: DISABLE
// begin commoveunit ( ruhengi1 , rubdepo0 ) ;
6243: LD_INT 18
6245: PPUSH
6246: LD_EXP 14
6250: PPUSH
6251: CALL_OW 112
// end ;
6255: END
// every 0 0$3 + 1 1$54 trigger opev_start and br2_done do
6256: LD_LOC 19
6260: PUSH
6261: LD_LOC 28
6265: AND
6266: IFFALSE 6318
6268: GO 6270
6270: DISABLE
// begin brwr_done = true ;
6271: LD_ADDR_EXP 20
6275: PUSH
6276: LD_INT 1
6278: ST_TO_ADDR
// setblevel ( rubbrwr2 , brwr_lev ) ;
6279: LD_EXP 16
6283: PPUSH
6284: LD_LOC 15
6288: PPUSH
6289: CALL_OW 241
// commoveunit ( ruhsold2 , rubbrwr2 ) ;
6293: LD_INT 10
6295: PPUSH
6296: LD_EXP 16
6300: PPUSH
6301: CALL_OW 112
// comcollect ( ruhengi0 , 40 , 53 ) ;
6305: LD_INT 2
6307: PPUSH
6308: LD_INT 40
6310: PPUSH
6311: LD_INT 53
6313: PPUSH
6314: CALL_OW 117
// end ;
6318: END
// every 0 0$3 + 2 2$00 trigger brwr_done do
6319: LD_EXP 20
6323: IFFALSE 6370
6325: GO 6327
6327: DISABLE
// begin wait ( 0 0$5 ) ;
6328: LD_INT 175
6330: PPUSH
6331: CALL_OW 67
// com_queue = true ;
6335: LD_ADDR_OWVAR 49
6339: PUSH
6340: LD_INT 1
6342: ST_TO_ADDR
// commoveunit ( ruhengi0 , rubdepo0 ) ;
6343: LD_INT 2
6345: PPUSH
6346: LD_EXP 14
6350: PPUSH
6351: CALL_OW 112
// comexitbuilding ( ruhengi0 ) ;
6355: LD_INT 2
6357: PPUSH
6358: CALL_OW 122
// com_queue = false ;
6362: LD_ADDR_OWVAR 49
6366: PUSH
6367: LD_INT 0
6369: ST_TO_ADDR
// end ;
6370: END
// every 6 6$0 do
6371: GO 6373
6373: DISABLE
// begin uc_nation = nation_russian ;
6374: LD_ADDR_OWVAR 21
6378: PUSH
6379: LD_INT 3
6381: ST_TO_ADDR
// uc_side = rus ;
6382: LD_ADDR_OWVAR 20
6386: PUSH
6387: LD_EXP 1
6391: ST_TO_ADDR
// case difficulty of 1 :
6392: LD_OWVAR 67
6396: PUSH
6397: LD_INT 1
6399: DOUBLE
6400: EQUAL
6401: IFTRUE 6405
6403: GO 6418
6405: POP
// preparesoldier ( sex_male , 1 ) ; 2 :
6406: LD_INT 1
6408: PPUSH
6409: LD_INT 1
6411: PPUSH
6412: CALL_OW 381
6416: GO 6461
6418: LD_INT 2
6420: DOUBLE
6421: EQUAL
6422: IFTRUE 6426
6424: GO 6439
6426: POP
// preparesoldier ( sex_male , 2 ) ; 3 :
6427: LD_INT 1
6429: PPUSH
6430: LD_INT 2
6432: PPUSH
6433: CALL_OW 381
6437: GO 6461
6439: LD_INT 3
6441: DOUBLE
6442: EQUAL
6443: IFTRUE 6447
6445: GO 6460
6447: POP
// preparesoldier ( sex_male , 3 ) ; end ;
6448: LD_INT 1
6450: PPUSH
6451: LD_INT 3
6453: PPUSH
6454: CALL_OW 381
6458: GO 6461
6460: POP
// ruhsoldj = createhuman ;
6461: LD_ADDR_EXP 25
6465: PUSH
6466: CALL_OW 44
6470: ST_TO_ADDR
// placeunitarea ( ruhsoldj , rusreinf0 , false ) ;
6471: LD_EXP 25
6475: PPUSH
6476: LD_INT 6
6478: PPUSH
6479: LD_INT 0
6481: PPUSH
6482: CALL_OW 49
// case difficulty of 1 :
6486: LD_OWVAR 67
6490: PUSH
6491: LD_INT 1
6493: DOUBLE
6494: EQUAL
6495: IFTRUE 6499
6497: GO 6512
6499: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
6500: LD_INT 1
6502: PPUSH
6503: LD_INT 2
6505: PPUSH
6506: CALL_OW 381
6510: GO 6555
6512: LD_INT 2
6514: DOUBLE
6515: EQUAL
6516: IFTRUE 6520
6518: GO 6533
6520: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
6521: LD_INT 1
6523: PPUSH
6524: LD_INT 3
6526: PPUSH
6527: CALL_OW 381
6531: GO 6555
6533: LD_INT 3
6535: DOUBLE
6536: EQUAL
6537: IFTRUE 6541
6539: GO 6554
6541: POP
// preparesoldier ( sex_male , 3 ) ; end ;
6542: LD_INT 1
6544: PPUSH
6545: LD_INT 3
6547: PPUSH
6548: CALL_OW 381
6552: GO 6555
6554: POP
// ruhsoldk = createhuman ;
6555: LD_ADDR_EXP 26
6559: PUSH
6560: CALL_OW 44
6564: ST_TO_ADDR
// placeunitarea ( ruhsoldk , rusreinf0 , false ) ;
6565: LD_EXP 26
6569: PPUSH
6570: LD_INT 6
6572: PPUSH
6573: LD_INT 0
6575: PPUSH
6576: CALL_OW 49
// case difficulty of 1 :
6580: LD_OWVAR 67
6584: PUSH
6585: LD_INT 1
6587: DOUBLE
6588: EQUAL
6589: IFTRUE 6593
6591: GO 6606
6593: POP
// preparesoldier ( sex_male , 1 ) ; 2 :
6594: LD_INT 1
6596: PPUSH
6597: LD_INT 1
6599: PPUSH
6600: CALL_OW 381
6604: GO 6649
6606: LD_INT 2
6608: DOUBLE
6609: EQUAL
6610: IFTRUE 6614
6612: GO 6627
6614: POP
// preparesoldier ( sex_male , 2 ) ; 3 :
6615: LD_INT 1
6617: PPUSH
6618: LD_INT 2
6620: PPUSH
6621: CALL_OW 381
6625: GO 6649
6627: LD_INT 3
6629: DOUBLE
6630: EQUAL
6631: IFTRUE 6635
6633: GO 6648
6635: POP
// preparesoldier ( sex_male , 3 ) ; end ;
6636: LD_INT 1
6638: PPUSH
6639: LD_INT 3
6641: PPUSH
6642: CALL_OW 381
6646: GO 6649
6648: POP
// ruhsoldl = createhuman ;
6649: LD_ADDR_EXP 27
6653: PUSH
6654: CALL_OW 44
6658: ST_TO_ADDR
// placeunitarea ( ruhsoldl , rusreinf0 , false ) ;
6659: LD_EXP 27
6663: PPUSH
6664: LD_INT 6
6666: PPUSH
6667: LD_INT 0
6669: PPUSH
6670: CALL_OW 49
// comremember ( [ ruhsoldj , ruhsoldk , ruhsoldl ] ) ;
6674: LD_EXP 25
6678: PUSH
6679: LD_EXP 26
6683: PUSH
6684: LD_EXP 27
6688: PUSH
6689: EMPTY
6690: LIST
6691: LIST
6692: LIST
6693: PPUSH
6694: CALL_OW 143
// comagressivemove ( [ ruhsoldj , ruhsoldk , ruhsoldl ] , 78 , 46 ) ;
6698: LD_EXP 25
6702: PUSH
6703: LD_EXP 26
6707: PUSH
6708: LD_EXP 27
6712: PUSH
6713: EMPTY
6714: LIST
6715: LIST
6716: LIST
6717: PPUSH
6718: LD_INT 78
6720: PPUSH
6721: LD_INT 46
6723: PPUSH
6724: CALL_OW 114
// end ;
6728: 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
6729: LD_EXP 25
6733: PUSH
6734: LD_EXP 26
6738: PUSH
6739: LD_EXP 27
6743: PUSH
6744: EMPTY
6745: LIST
6746: LIST
6747: LIST
6748: PUSH
6749: LD_INT 9
6751: PPUSH
6752: LD_INT 50
6754: PUSH
6755: EMPTY
6756: LIST
6757: PUSH
6758: LD_INT 22
6760: PUSH
6761: LD_EXP 1
6765: PUSH
6766: EMPTY
6767: LIST
6768: LIST
6769: PUSH
6770: LD_INT 21
6772: PUSH
6773: LD_INT 1
6775: PUSH
6776: EMPTY
6777: LIST
6778: LIST
6779: PUSH
6780: EMPTY
6781: LIST
6782: LIST
6783: LIST
6784: PPUSH
6785: CALL_OW 70
6789: DIFF
6790: NOT
6791: IFFALSE 6833
6793: GO 6795
6795: DISABLE
// begin comagressivemove ( [ ruhsoldj , ruhsoldk , ruhsoldl ] , 55 , 16 ) ;
6796: LD_EXP 25
6800: PUSH
6801: LD_EXP 26
6805: PUSH
6806: LD_EXP 27
6810: PUSH
6811: EMPTY
6812: LIST
6813: LIST
6814: LIST
6815: PPUSH
6816: LD_INT 55
6818: PPUSH
6819: LD_INT 16
6821: PPUSH
6822: CALL_OW 114
// hint ( Shift ) ;
6826: LD_STRING Shift
6828: PPUSH
6829: CALL_OW 339
// end ;
6833: END
// every 0 0$0.7 + 6 6$5 trigger unitfilter ( [ ruhsoldj , ruhsoldk , ruhsoldl ] , [ [ f_ok ] ] ) < 3 do var pomsold , pomsold2 ;
6834: LD_EXP 25
6838: PUSH
6839: LD_EXP 26
6843: PUSH
6844: LD_EXP 27
6848: PUSH
6849: EMPTY
6850: LIST
6851: LIST
6852: LIST
6853: PPUSH
6854: LD_INT 50
6856: PUSH
6857: EMPTY
6858: LIST
6859: PUSH
6860: EMPTY
6861: LIST
6862: PPUSH
6863: CALL_OW 72
6867: PUSH
6868: LD_INT 3
6870: LESS
6871: IFFALSE 7582
6873: GO 6875
6875: DISABLE
6876: LD_INT 0
6878: PPUSH
6879: PPUSH
// begin comreturn ( [ ruhsoldj , ruhsoldk , ruhsoldl ] ) ;
6880: LD_EXP 25
6884: PUSH
6885: LD_EXP 26
6889: PUSH
6890: LD_EXP 27
6894: PUSH
6895: EMPTY
6896: LIST
6897: LIST
6898: LIST
6899: PPUSH
6900: CALL_OW 144
// wait ( 0 0$1 ) ;
6904: LD_INT 35
6906: PPUSH
6907: CALL_OW 67
// pomsold = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) diff [ john ] ;
6911: LD_ADDR_VAR 0 1
6915: PUSH
6916: LD_INT 22
6918: PUSH
6919: LD_EXP 2
6923: PUSH
6924: EMPTY
6925: LIST
6926: LIST
6927: PUSH
6928: LD_INT 21
6930: PUSH
6931: LD_INT 1
6933: PUSH
6934: EMPTY
6935: LIST
6936: LIST
6937: PUSH
6938: LD_INT 50
6940: PUSH
6941: EMPTY
6942: LIST
6943: PUSH
6944: EMPTY
6945: LIST
6946: LIST
6947: LIST
6948: PPUSH
6949: CALL_OW 69
6953: PUSH
6954: LD_LOC 1
6958: PUSH
6959: EMPTY
6960: LIST
6961: DIFF
6962: ST_TO_ADDR
// if pomsold <> 0 then
6963: LD_VAR 0 1
6967: PUSH
6968: LD_INT 0
6970: NONEQUAL
6971: IFFALSE 7545
// begin pomsold2 = unitfilter ( pomsold , [ [ f_class , classtype_soldier ] ] ) ;
6973: LD_ADDR_VAR 0 2
6977: PUSH
6978: LD_VAR 0 1
6982: PPUSH
6983: LD_INT 25
6985: PUSH
6986: LD_INT 1
6988: PUSH
6989: EMPTY
6990: LIST
6991: LIST
6992: PUSH
6993: EMPTY
6994: LIST
6995: PPUSH
6996: CALL_OW 72
7000: ST_TO_ADDR
// if pomsold2 <> 0 then
7001: LD_VAR 0 2
7005: PUSH
7006: LD_INT 0
7008: NONEQUAL
7009: IFFALSE 7027
// pomsold = pomsold2 [ 1 ] else
7011: LD_ADDR_VAR 0 1
7015: PUSH
7016: LD_VAR 0 2
7020: PUSH
7021: LD_INT 1
7023: ARRAY
7024: ST_TO_ADDR
7025: GO 7041
// pomsold = pomsold [ 1 ] ;
7027: LD_ADDR_VAR 0 1
7031: PUSH
7032: LD_VAR 0 1
7036: PUSH
7037: LD_INT 1
7039: ARRAY
7040: ST_TO_ADDR
// wait ( 0 0$1 ) ;
7041: LD_INT 35
7043: PPUSH
7044: CALL_OW 67
// dialogueon ;
7048: CALL_OW 6
// if getsex ( pomsold ) = sex_female then
7052: LD_VAR 0 1
7056: PPUSH
7057: CALL_OW 258
7061: PUSH
7062: LD_INT 2
7064: EQUAL
7065: IFFALSE 7081
// say ( pomsold , DAtt1-FSol1-1 ) else
7067: LD_VAR 0 1
7071: PPUSH
7072: LD_STRING DAtt1-FSol1-1
7074: PPUSH
7075: CALL_OW 88
7079: GO 7093
// say ( pomsold , DAtt1-Sol1-1 ) ;
7081: LD_VAR 0 1
7085: PPUSH
7086: LD_STRING DAtt1-Sol1-1
7088: PPUSH
7089: CALL_OW 88
// say ( john , DAtt1-JMM-1 ) ;
7093: LD_LOC 1
7097: PPUSH
7098: LD_STRING DAtt1-JMM-1
7100: PPUSH
7101: CALL_OW 88
// if ( 0 + filterallunits ( [ [ f_side , amer ] , [ f_btype , b_breastwork ] ] ) + filterallunits ( [ [ f_side , amer ] , [ f_btype , b_bunker ] ] ) ) <= 3 then
7105: LD_INT 0
7107: PUSH
7108: LD_INT 22
7110: PUSH
7111: LD_EXP 2
7115: PUSH
7116: EMPTY
7117: LIST
7118: LIST
7119: PUSH
7120: LD_INT 30
7122: PUSH
7123: LD_INT 31
7125: PUSH
7126: EMPTY
7127: LIST
7128: LIST
7129: PUSH
7130: EMPTY
7131: LIST
7132: LIST
7133: PPUSH
7134: CALL_OW 69
7138: PLUS
7139: PUSH
7140: LD_INT 22
7142: PUSH
7143: LD_EXP 2
7147: PUSH
7148: EMPTY
7149: LIST
7150: LIST
7151: PUSH
7152: LD_INT 30
7154: PUSH
7155: LD_INT 32
7157: PUSH
7158: EMPTY
7159: LIST
7160: LIST
7161: PUSH
7162: EMPTY
7163: LIST
7164: LIST
7165: PPUSH
7166: CALL_OW 69
7170: PLUS
7171: PUSH
7172: LD_INT 3
7174: LESSEQUAL
7175: IFFALSE 7427
// begin if isok ( lisa ) then
7177: LD_LOC 4
7181: PPUSH
7182: CALL_OW 302
7186: IFFALSE 7202
// say ( lisa , DAtt1a-Lisa-1 ) else
7188: LD_LOC 4
7192: PPUSH
7193: LD_STRING DAtt1a-Lisa-1
7195: PPUSH
7196: CALL_OW 88
7200: GO 7387
// if getsex ( pomsold ) = sex_male then
7202: LD_VAR 0 1
7206: PPUSH
7207: CALL_OW 258
7211: PUSH
7212: LD_INT 1
7214: EQUAL
7215: IFFALSE 7231
// say ( pomsold , DAtt1a-Sol1-1 ) else
7217: LD_VAR 0 1
7221: PPUSH
7222: LD_STRING DAtt1a-Sol1-1
7224: PPUSH
7225: CALL_OW 88
7229: GO 7387
// begin pomsold = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] , [ f_sex , sex_male ] ] ) diff john ;
7231: LD_ADDR_VAR 0 1
7235: PUSH
7236: LD_INT 22
7238: PUSH
7239: LD_EXP 2
7243: PUSH
7244: EMPTY
7245: LIST
7246: LIST
7247: PUSH
7248: LD_INT 21
7250: PUSH
7251: LD_INT 1
7253: PUSH
7254: EMPTY
7255: LIST
7256: LIST
7257: PUSH
7258: LD_INT 50
7260: PUSH
7261: EMPTY
7262: LIST
7263: PUSH
7264: LD_INT 26
7266: PUSH
7267: LD_INT 1
7269: PUSH
7270: EMPTY
7271: LIST
7272: LIST
7273: PUSH
7274: EMPTY
7275: LIST
7276: LIST
7277: LIST
7278: LIST
7279: PPUSH
7280: CALL_OW 69
7284: PUSH
7285: LD_LOC 1
7289: DIFF
7290: ST_TO_ADDR
// if pomsold then
7291: LD_VAR 0 1
7295: IFFALSE 7379
// begin pomsold2 = unitfilter ( pomsold , [ [ f_class , classtype_soldier ] ] ) ;
7297: LD_ADDR_VAR 0 2
7301: PUSH
7302: LD_VAR 0 1
7306: PPUSH
7307: LD_INT 25
7309: PUSH
7310: LD_INT 1
7312: PUSH
7313: EMPTY
7314: LIST
7315: LIST
7316: PUSH
7317: EMPTY
7318: LIST
7319: PPUSH
7320: CALL_OW 72
7324: ST_TO_ADDR
// if pomsold2 <> 0 then
7325: LD_VAR 0 2
7329: PUSH
7330: LD_INT 0
7332: NONEQUAL
7333: IFFALSE 7351
// pomsold = pomsold2 [ 1 ] else
7335: LD_ADDR_VAR 0 1
7339: PUSH
7340: LD_VAR 0 2
7344: PUSH
7345: LD_INT 1
7347: ARRAY
7348: ST_TO_ADDR
7349: GO 7365
// pomsold = pomsold [ 1 ] ;
7351: LD_ADDR_VAR 0 1
7355: PUSH
7356: LD_VAR 0 1
7360: PUSH
7361: LD_INT 1
7363: ARRAY
7364: ST_TO_ADDR
// say ( pomsold , DAtt1a-Sol1-1 ) ;
7365: LD_VAR 0 1
7369: PPUSH
7370: LD_STRING DAtt1a-Sol1-1
7372: PPUSH
7373: CALL_OW 88
// end else
7377: GO 7387
// pomsold = 0 ;
7379: LD_ADDR_VAR 0 1
7383: PUSH
7384: LD_INT 0
7386: ST_TO_ADDR
// end ; if isok ( lisa ) or getsex ( pomsold ) = sex_male then
7387: LD_LOC 4
7391: PPUSH
7392: CALL_OW 302
7396: PUSH
7397: LD_VAR 0 1
7401: PPUSH
7402: CALL_OW 258
7406: PUSH
7407: LD_INT 1
7409: EQUAL
7410: OR
7411: IFFALSE 7425
// say ( john , DAtt1a-JMM-1 ) ;
7413: LD_LOC 1
7417: PPUSH
7418: LD_STRING DAtt1a-JMM-1
7420: PPUSH
7421: CALL_OW 88
// end else
7425: GO 7541
// if getsex ( pomsold ) = sex_male then
7427: LD_VAR 0 1
7431: PPUSH
7432: CALL_OW 258
7436: PUSH
7437: LD_INT 1
7439: EQUAL
7440: IFFALSE 7456
// say ( pomsold , DAtt1b-Sol1-1 ) else
7442: LD_VAR 0 1
7446: PPUSH
7447: LD_STRING DAtt1b-Sol1-1
7449: PPUSH
7450: CALL_OW 88
7454: GO 7541
// begin pomsold = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] , [ f_sex , sex_male ] ] ) diff [ john ] ;
7456: LD_ADDR_VAR 0 1
7460: PUSH
7461: LD_INT 22
7463: PUSH
7464: LD_EXP 2
7468: PUSH
7469: EMPTY
7470: LIST
7471: LIST
7472: PUSH
7473: LD_INT 21
7475: PUSH
7476: LD_INT 1
7478: PUSH
7479: EMPTY
7480: LIST
7481: LIST
7482: PUSH
7483: LD_INT 50
7485: PUSH
7486: EMPTY
7487: LIST
7488: PUSH
7489: LD_INT 26
7491: PUSH
7492: LD_INT 1
7494: PUSH
7495: EMPTY
7496: LIST
7497: LIST
7498: PUSH
7499: EMPTY
7500: LIST
7501: LIST
7502: LIST
7503: LIST
7504: PPUSH
7505: CALL_OW 69
7509: PUSH
7510: LD_LOC 1
7514: PUSH
7515: EMPTY
7516: LIST
7517: DIFF
7518: ST_TO_ADDR
// if pomsold then
7519: LD_VAR 0 1
7523: IFFALSE 7541
// say ( pomsold [ 1 ] , DAtt1b-Sol1-1 ) ;
7525: LD_VAR 0 1
7529: PUSH
7530: LD_INT 1
7532: ARRAY
7533: PPUSH
7534: LD_STRING DAtt1b-Sol1-1
7536: PPUSH
7537: CALL_OW 88
// end ; dialogueoff ;
7541: CALL_OW 7
// end ; wait ( 0 0$7 ) ;
7545: LD_INT 245
7547: PPUSH
7548: CALL_OW 67
// commovexy ( [ ruhsoldj , ruhsoldk , ruhsoldl ] , 76 , 77 ) ;
7552: LD_EXP 25
7556: PUSH
7557: LD_EXP 26
7561: PUSH
7562: LD_EXP 27
7566: PUSH
7567: EMPTY
7568: LIST
7569: LIST
7570: LIST
7571: PPUSH
7572: LD_INT 76
7574: PPUSH
7575: LD_INT 77
7577: PPUSH
7578: CALL_OW 111
// end ;
7582: PPOPN 2
7584: END
// every 0 0$10 + 9 9$0 do
7585: GO 7587
7587: DISABLE
// begin dialogueon ;
7588: CALL_OW 6
// sayradio ( lucyd , D2-Don-1 ) ;
7592: LD_LOC 6
7596: PPUSH
7597: LD_STRING D2-Don-1
7599: PPUSH
7600: CALL_OW 94
// say ( john , D2-JMM-1 ) ;
7604: LD_LOC 1
7608: PPUSH
7609: LD_STRING D2-JMM-1
7611: PPUSH
7612: CALL_OW 88
// sayradio ( lucyd , D2-Don-2 ) ;
7616: LD_LOC 6
7620: PPUSH
7621: LD_STRING D2-Don-2
7623: PPUSH
7624: CALL_OW 94
// say ( john , D2-JMM-2 ) ;
7628: LD_LOC 1
7632: PPUSH
7633: LD_STRING D2-JMM-2
7635: PPUSH
7636: CALL_OW 88
// sayradio ( lucyd , D2-Don-3 ) ;
7640: LD_LOC 6
7644: PPUSH
7645: LD_STRING D2-Don-3
7647: PPUSH
7648: CALL_OW 94
// dialogueoff ;
7652: CALL_OW 7
// end ;
7656: END
// every 12 12$10 do
7657: GO 7659
7659: DISABLE
// begin placeunitarea ( lucyd , reinf0 , false ) ;
7660: LD_LOC 6
7664: PPUSH
7665: LD_INT 4
7667: PPUSH
7668: LD_INT 0
7670: PPUSH
7671: CALL_OW 49
// uc_nation = nation_american ;
7675: LD_ADDR_OWVAR 21
7679: PUSH
7680: LD_INT 1
7682: ST_TO_ADDR
// uc_side = amer ;
7683: LD_ADDR_OWVAR 20
7687: PUSH
7688: LD_EXP 2
7692: ST_TO_ADDR
// if frank then
7693: LD_LOC 5
7697: IFFALSE 7726
// begin placeunitarea ( frank , reinf0 , false ) ;
7699: LD_LOC 5
7703: PPUSH
7704: LD_INT 4
7706: PPUSH
7707: LD_INT 0
7709: PPUSH
7710: CALL_OW 49
// amhsold4 = frank ;
7714: LD_ADDR_EXP 6
7718: PUSH
7719: LD_LOC 5
7723: ST_TO_ADDR
// end else
7724: GO 7761
// begin preparesoldier ( sex_male , 3 ) ;
7726: LD_INT 1
7728: PPUSH
7729: LD_INT 3
7731: PPUSH
7732: CALL_OW 381
// amhsold4 = createhuman ;
7736: LD_ADDR_EXP 6
7740: PUSH
7741: CALL_OW 44
7745: ST_TO_ADDR
// placeunitarea ( amhsold4 , reinf0 , false ) ;
7746: LD_EXP 6
7750: PPUSH
7751: LD_INT 4
7753: PPUSH
7754: LD_INT 0
7756: PPUSH
7757: CALL_OW 49
// end ; preparesoldier ( sex_male , 3 ) ;
7761: LD_INT 1
7763: PPUSH
7764: LD_INT 3
7766: PPUSH
7767: CALL_OW 381
// amhsold5 = createhuman ;
7771: LD_ADDR_EXP 7
7775: PUSH
7776: CALL_OW 44
7780: ST_TO_ADDR
// placeunitarea ( amhsold5 , reinf0 , false ) ;
7781: LD_EXP 7
7785: PPUSH
7786: LD_INT 4
7788: PPUSH
7789: LD_INT 0
7791: PPUSH
7792: CALL_OW 49
// if difficulty = 3 then
7796: LD_OWVAR 67
7800: PUSH
7801: LD_INT 3
7803: EQUAL
7804: IFFALSE 7818
// preparemechanic ( sex_female , 2 ) else
7806: LD_INT 2
7808: PPUSH
7809: LD_INT 2
7811: PPUSH
7812: CALL_OW 383
7816: GO 7828
// preparemechanic ( sex_female , 3 ) ;
7818: LD_INT 2
7820: PPUSH
7821: LD_INT 3
7823: PPUSH
7824: CALL_OW 383
// amhsold6 = createhuman ;
7828: LD_ADDR_EXP 8
7832: PUSH
7833: CALL_OW 44
7837: ST_TO_ADDR
// placeunitarea ( amhsold6 , reinf0 , false ) ;
7838: LD_EXP 8
7842: PPUSH
7843: LD_INT 4
7845: PPUSH
7846: LD_INT 0
7848: PPUSH
7849: CALL_OW 49
// if difficulty = 3 then
7853: LD_OWVAR 67
7857: PUSH
7858: LD_INT 3
7860: EQUAL
7861: IFFALSE 7875
// preparemechanic ( sex_male , 1 ) else
7863: LD_INT 1
7865: PPUSH
7866: LD_INT 1
7868: PPUSH
7869: CALL_OW 383
7873: GO 7885
// preparemechanic ( sex_male , 2 ) ;
7875: LD_INT 1
7877: PPUSH
7878: LD_INT 2
7880: PPUSH
7881: CALL_OW 383
// amhsold7 = createhuman ;
7885: LD_ADDR_LOC 7
7889: PUSH
7890: CALL_OW 44
7894: ST_TO_ADDR
// placeunitarea ( amhsold7 , reinf0 , false ) ;
7895: LD_LOC 7
7899: PPUSH
7900: LD_INT 4
7902: PPUSH
7903: LD_INT 0
7905: PPUSH
7906: CALL_OW 49
// chciplo = chciplo + 5 ;
7910: LD_ADDR_LOC 21
7914: PUSH
7915: LD_LOC 21
7919: PUSH
7920: LD_INT 5
7922: PLUS
7923: ST_TO_ADDR
// if difficulty = 1 then
7924: LD_OWVAR 67
7928: PUSH
7929: LD_INT 1
7931: EQUAL
7932: IFFALSE 7983
// begin preparesoldier ( sex_male , 2 ) ;
7934: LD_INT 1
7936: PPUSH
7937: LD_INT 2
7939: PPUSH
7940: CALL_OW 381
// amhsold7 = createhuman ;
7944: LD_ADDR_LOC 7
7948: PUSH
7949: CALL_OW 44
7953: ST_TO_ADDR
// placeunitarea ( amhsold7 , reinf0 , false ) ;
7954: LD_LOC 7
7958: PPUSH
7959: LD_INT 4
7961: PPUSH
7962: LD_INT 0
7964: PPUSH
7965: CALL_OW 49
// chciplo = chciplo + 1 ;
7969: LD_ADDR_LOC 21
7973: PUSH
7974: LD_LOC 21
7978: PUSH
7979: LD_INT 1
7981: PLUS
7982: ST_TO_ADDR
// end ; centeronunits ( [ lucyd , amhsold4 , amhsold5 , amhsold6 ] ) ;
7983: LD_LOC 6
7987: PUSH
7988: LD_EXP 6
7992: PUSH
7993: LD_EXP 7
7997: PUSH
7998: LD_EXP 8
8002: PUSH
8003: EMPTY
8004: LIST
8005: LIST
8006: LIST
8007: LIST
8008: PPUSH
8009: CALL_OW 85
// dialogueon ;
8013: CALL_OW 6
// say ( amhsold5 , D3-Sol1-1 ) ;
8017: LD_EXP 7
8021: PPUSH
8022: LD_STRING D3-Sol1-1
8024: PPUSH
8025: CALL_OW 88
// say ( amhsold7 , D3-Sol2-1 ) ;
8029: LD_LOC 7
8033: PPUSH
8034: LD_STRING D3-Sol2-1
8036: PPUSH
8037: CALL_OW 88
// if frank then
8041: LD_LOC 5
8045: IFFALSE 8059
// say ( frank , D3-Frank-1 ) ;
8047: LD_LOC 5
8051: PPUSH
8052: LD_STRING D3-Frank-1
8054: PPUSH
8055: CALL_OW 88
// say ( lucyd , D3-Don-1 ) ;
8059: LD_LOC 6
8063: PPUSH
8064: LD_STRING D3-Don-1
8066: PPUSH
8067: CALL_OW 88
// sayradio ( lucyd , D3-Don-1a ) ;
8071: LD_LOC 6
8075: PPUSH
8076: LD_STRING D3-Don-1a
8078: PPUSH
8079: CALL_OW 94
// say ( john , D3-JMM-1 ) ;
8083: LD_LOC 1
8087: PPUSH
8088: LD_STRING D3-JMM-1
8090: PPUSH
8091: CALL_OW 88
// sayradio ( lucyd , D3-Don-2 ) ;
8095: LD_LOC 6
8099: PPUSH
8100: LD_STRING D3-Don-2
8102: PPUSH
8103: CALL_OW 94
// if rubase1_notrazed then
8107: CALL 8186 0 0
8111: IFFALSE 8169
// begin say ( john , D3-JMM-2 ) ;
8113: LD_LOC 1
8117: PPUSH
8118: LD_STRING D3-JMM-2
8120: PPUSH
8121: CALL_OW 88
// sayradio ( lucyd , D3-Don-3 ) ;
8125: LD_LOC 6
8129: PPUSH
8130: LD_STRING D3-Don-3
8132: PPUSH
8133: CALL_OW 94
// say ( john , D3-JMM-3 ) ;
8137: LD_LOC 1
8141: PPUSH
8142: LD_STRING D3-JMM-3
8144: PPUSH
8145: CALL_OW 88
// if frank then
8149: LD_LOC 5
8153: IFFALSE 8167
// say ( frank , D3-Frank-3 ) ;
8155: LD_LOC 5
8159: PPUSH
8160: LD_STRING D3-Frank-3
8162: PPUSH
8163: CALL_OW 88
// end else
8167: GO 8181
// begin say ( john , D3-JMM-4 ) ;
8169: LD_LOC 1
8173: PPUSH
8174: LD_STRING D3-JMM-4
8176: PPUSH
8177: CALL_OW 88
// end ; dialogueoff ;
8181: CALL_OW 7
// end ;
8185: END
// function rubase1_notrazed ; begin
8186: LD_INT 0
8188: PPUSH
// result = filterunitsinarea ( rubase1rng , [ [ f_side , rus ] , [ f_alive ] ] ) ;
8189: LD_ADDR_VAR 0 1
8193: PUSH
8194: LD_INT 3
8196: PPUSH
8197: LD_INT 22
8199: PUSH
8200: LD_EXP 1
8204: PUSH
8205: EMPTY
8206: LIST
8207: LIST
8208: PUSH
8209: LD_INT 51
8211: PUSH
8212: EMPTY
8213: LIST
8214: PUSH
8215: EMPTY
8216: LIST
8217: LIST
8218: PPUSH
8219: CALL_OW 70
8223: ST_TO_ADDR
// end ;
8224: LD_VAR 0 1
8228: RET
// every 0 0$2 + 12 12$20 trigger getdistunits ( john , frank ) < 5 do
8229: LD_LOC 1
8233: PPUSH
8234: LD_LOC 5
8238: PPUSH
8239: CALL_OW 296
8243: PUSH
8244: LD_INT 5
8246: LESS
8247: IFFALSE 8362
8249: GO 8251
8251: DISABLE
// begin rubase1_gone = true ;
8252: LD_ADDR_EXP 21
8256: PUSH
8257: LD_INT 1
8259: ST_TO_ADDR
// dialogueon ;
8260: CALL_OW 6
// if isok ( frank ) then
8264: LD_LOC 5
8268: PPUSH
8269: CALL_OW 302
8273: IFFALSE 8358
// begin say ( frank , D3a-Frank-1 ) ;
8275: LD_LOC 5
8279: PPUSH
8280: LD_STRING D3a-Frank-1
8282: PPUSH
8283: CALL_OW 88
// if isok ( lisa ) then
8287: LD_LOC 4
8291: PPUSH
8292: CALL_OW 302
8296: IFFALSE 8346
// begin say ( lisa , D3a-Lisa-1 ) ;
8298: LD_LOC 4
8302: PPUSH
8303: LD_STRING D3a-Lisa-1
8305: PPUSH
8306: CALL_OW 88
// say ( frank , D3a-Frank-2 ) ;
8310: LD_LOC 5
8314: PPUSH
8315: LD_STRING D3a-Frank-2
8317: PPUSH
8318: CALL_OW 88
// say ( lisa , D3a-Lisa-2 ) ;
8322: LD_LOC 4
8326: PPUSH
8327: LD_STRING D3a-Lisa-2
8329: PPUSH
8330: CALL_OW 88
// say ( frank , D3a-Frank-3 ) ;
8334: LD_LOC 5
8338: PPUSH
8339: LD_STRING D3a-Frank-3
8341: PPUSH
8342: CALL_OW 88
// end ; say ( john , D3a-JMM-3 ) ;
8346: LD_LOC 1
8350: PPUSH
8351: LD_STRING D3a-JMM-3
8353: PPUSH
8354: CALL_OW 88
// end ; dialogueoff ;
8358: CALL_OW 7
// end ;
8362: END
// every 0 0$3 + 12 12$52 trigger ( [ lucyd , amhsold4 , amhsold5 , amhsold6 ] diff filterunitsinarea ( reinf0ex , [ [ f_side , amer ] ] ) ) <= 2 do
8363: LD_LOC 6
8367: PUSH
8368: LD_EXP 6
8372: PUSH
8373: LD_EXP 7
8377: PUSH
8378: LD_EXP 8
8382: PUSH
8383: EMPTY
8384: LIST
8385: LIST
8386: LIST
8387: LIST
8388: PUSH
8389: LD_INT 21
8391: PPUSH
8392: LD_INT 22
8394: PUSH
8395: LD_EXP 2
8399: PUSH
8400: EMPTY
8401: LIST
8402: LIST
8403: PUSH
8404: EMPTY
8405: LIST
8406: PPUSH
8407: CALL_OW 70
8411: DIFF
8412: PUSH
8413: LD_INT 2
8415: LESSEQUAL
8416: IFFALSE 8441
8418: GO 8420
8420: DISABLE
// begin dialogueon ;
8421: CALL_OW 6
// sayradio ( lucyd , D3b-Don-1 ) ;
8425: LD_LOC 6
8429: PPUSH
8430: LD_STRING D3b-Don-1
8432: PPUSH
8433: CALL_OW 94
// dialogueoff ;
8437: CALL_OW 7
// end ;
8441: END
// every 0 0$1 + 1 1$0 trigger ( not filterallunits ( [ [ f_side , rus ] , [ f_ok ] , [ f_type , unit_human ] ] ) ) do var tmp , tmp2 ;
8442: LD_INT 22
8444: PUSH
8445: LD_EXP 1
8449: PUSH
8450: EMPTY
8451: LIST
8452: LIST
8453: PUSH
8454: LD_INT 50
8456: PUSH
8457: EMPTY
8458: LIST
8459: PUSH
8460: LD_INT 21
8462: PUSH
8463: LD_INT 1
8465: PUSH
8466: EMPTY
8467: LIST
8468: LIST
8469: PUSH
8470: EMPTY
8471: LIST
8472: LIST
8473: LIST
8474: PPUSH
8475: CALL_OW 69
8479: NOT
8480: IFFALSE 8766
8482: GO 8484
8484: DISABLE
8485: LD_INT 0
8487: PPUSH
8488: PPUSH
// begin if debug then
8489: LD_EXP 41
8493: IFFALSE 8502
// msg ( koncime! ) ;
8495: LD_STRING koncime!
8497: PPUSH
8498: CALL_OW 100
// wait ( 0 0$1 ) ;
8502: LD_INT 35
8504: PPUSH
8505: CALL_OW 67
// chciplo = chciplo - filterallunits ( [ [ f_alive ] , [ f_side , amer ] , [ f_type , unit_human ] ] ) ;
8509: LD_ADDR_LOC 21
8513: PUSH
8514: LD_LOC 21
8518: PUSH
8519: LD_INT 51
8521: PUSH
8522: EMPTY
8523: LIST
8524: PUSH
8525: LD_INT 22
8527: PUSH
8528: LD_EXP 2
8532: PUSH
8533: EMPTY
8534: LIST
8535: LIST
8536: PUSH
8537: LD_INT 21
8539: PUSH
8540: LD_INT 1
8542: PUSH
8543: EMPTY
8544: LIST
8545: LIST
8546: PUSH
8547: EMPTY
8548: LIST
8549: LIST
8550: LIST
8551: PPUSH
8552: CALL_OW 69
8556: MINUS
8557: ST_TO_ADDR
// if chciplo > 3 then
8558: LD_LOC 21
8562: PUSH
8563: LD_INT 3
8565: GREATER
8566: IFFALSE 8581
// addmedal ( deaths , - 1 ) else
8568: LD_STRING deaths
8570: PPUSH
8571: LD_INT 1
8573: NEG
8574: PPUSH
8575: CALL_OW 101
8579: GO 8591
// addmedal ( deaths , 1 ) ;
8581: LD_STRING deaths
8583: PPUSH
8584: LD_INT 1
8586: PPUSH
8587: CALL_OW 101
// if oilpowpldone and scndoildrill then
8591: LD_LOC 30
8595: PUSH
8596: LD_LOC 31
8600: AND
8601: IFFALSE 8615
// addmedal ( oil , 1 ) else
8603: LD_STRING oil
8605: PPUSH
8606: LD_INT 1
8608: PPUSH
8609: CALL_OW 101
8613: GO 8680
// if not oilpowpldone and not scndoildrill then
8615: LD_LOC 30
8619: NOT
8620: PUSH
8621: LD_LOC 31
8625: NOT
8626: AND
8627: IFFALSE 8642
// addmedal ( oil , - 3 ) else
8629: LD_STRING oil
8631: PPUSH
8632: LD_INT 3
8634: NEG
8635: PPUSH
8636: CALL_OW 101
8640: GO 8680
// if not oilpowpldone then
8642: LD_LOC 30
8646: NOT
8647: IFFALSE 8662
// addmedal ( oil , - 1 ) else
8649: LD_STRING oil
8651: PPUSH
8652: LD_INT 1
8654: NEG
8655: PPUSH
8656: CALL_OW 101
8660: GO 8680
// if not scndoildrill then
8662: LD_LOC 31
8666: NOT
8667: IFFALSE 8680
// addmedal ( oil , - 2 ) ;
8669: LD_STRING oil
8671: PPUSH
8672: LD_INT 2
8674: NEG
8675: PPUSH
8676: CALL_OW 101
// if zbaven_veleni then
8680: LD_LOC 22
8684: IFFALSE 8699
// addmedal ( honour , - 1 ) else
8686: LD_STRING honour
8688: PPUSH
8689: LD_INT 1
8691: NEG
8692: PPUSH
8693: CALL_OW 101
8697: GO 8709
// addmedal ( honour , 1 ) ;
8699: LD_STRING honour
8701: PPUSH
8702: LD_INT 1
8704: PPUSH
8705: CALL_OW 101
// givemedals ( Main ) ;
8709: LD_STRING Main
8711: PPUSH
8712: CALL_OW 102
// rewardpeople ( filterallunits ( [ [ f_alive ] , [ f_side , amer ] , [ f_type , unit_human ] ] ) ) ;
8716: LD_INT 51
8718: PUSH
8719: EMPTY
8720: LIST
8721: PUSH
8722: LD_INT 22
8724: PUSH
8725: LD_EXP 2
8729: PUSH
8730: EMPTY
8731: LIST
8732: LIST
8733: PUSH
8734: LD_INT 21
8736: PUSH
8737: LD_INT 1
8739: PUSH
8740: EMPTY
8741: LIST
8742: LIST
8743: PUSH
8744: EMPTY
8745: LIST
8746: LIST
8747: LIST
8748: PPUSH
8749: CALL_OW 69
8753: PPUSH
8754: CALL_OW 43
// saveitall ;
8758: CALL 781 0 0
// youwin ;
8762: CALL_OW 103
// end ;
8766: PPOPN 2
8768: END
// on unitdestroyed ( un ) do if un = john then
8769: LD_VAR 0 1
8773: PUSH
8774: LD_LOC 1
8778: EQUAL
8779: IFFALSE 8788
// begin youlost ( JMM ) ;
8781: LD_STRING JMM
8783: PPUSH
8784: CALL_OW 104
// end ;
8788: PPOPN 1
8790: END
// every 0 0$1 trigger not filterallunits ( [ [ f_or , [ f_side , amer ] , [ f_side , amer2 ] ] , [ f_type , unit_building ] ] ) do
8791: LD_INT 2
8793: PUSH
8794: LD_INT 22
8796: PUSH
8797: LD_EXP 2
8801: PUSH
8802: EMPTY
8803: LIST
8804: LIST
8805: PUSH
8806: LD_INT 22
8808: PUSH
8809: LD_EXP 3
8813: PUSH
8814: EMPTY
8815: LIST
8816: LIST
8817: PUSH
8818: EMPTY
8819: LIST
8820: LIST
8821: LIST
8822: PUSH
8823: LD_INT 21
8825: PUSH
8826: LD_INT 3
8828: PUSH
8829: EMPTY
8830: LIST
8831: LIST
8832: PUSH
8833: EMPTY
8834: LIST
8835: LIST
8836: PPUSH
8837: CALL_OW 69
8841: NOT
8842: IFFALSE 8861
8844: GO 8846
8846: DISABLE
// begin wait ( 0 0$3 ) ;
8847: LD_INT 105
8849: PPUSH
8850: CALL_OW 67
// youlost ( Base ) ;
8854: LD_STRING Base
8856: PPUSH
8857: CALL_OW 104
// end ;
8861: END
// every 0 0$1 trigger filterallunits ( [ [ f_side , rus ] , [ f_ok ] , [ f_type , unit_human ] ] ) <= 5 do
8862: LD_INT 22
8864: PUSH
8865: LD_EXP 1
8869: PUSH
8870: EMPTY
8871: LIST
8872: LIST
8873: PUSH
8874: LD_INT 50
8876: PUSH
8877: EMPTY
8878: LIST
8879: PUSH
8880: LD_INT 21
8882: PUSH
8883: LD_INT 1
8885: PUSH
8886: EMPTY
8887: LIST
8888: LIST
8889: PUSH
8890: EMPTY
8891: LIST
8892: LIST
8893: LIST
8894: PPUSH
8895: CALL_OW 69
8899: PUSH
8900: LD_INT 5
8902: LESSEQUAL
8903: IFFALSE 9067
8905: GO 8907
8907: DISABLE
// begin zbytek = filterallunits ( [ [ f_side , rus ] , [ f_ok ] , [ f_type , unit_human ] ] ) ;
8908: LD_ADDR_LOC 35
8912: PUSH
8913: LD_INT 22
8915: PUSH
8916: LD_EXP 1
8920: PUSH
8921: EMPTY
8922: LIST
8923: LIST
8924: PUSH
8925: LD_INT 50
8927: PUSH
8928: EMPTY
8929: LIST
8930: PUSH
8931: LD_INT 21
8933: PUSH
8934: LD_INT 1
8936: PUSH
8937: EMPTY
8938: LIST
8939: LIST
8940: PUSH
8941: EMPTY
8942: LIST
8943: LIST
8944: LIST
8945: PPUSH
8946: CALL_OW 69
8950: ST_TO_ADDR
// commovetoarea ( zbytek , retr_ar ) ;
8951: LD_LOC 35
8955: PPUSH
8956: LD_INT 20
8958: PPUSH
8959: CALL_OW 113
// changesidefog ( rus , amer ) ;
8963: LD_EXP 1
8967: PPUSH
8968: LD_EXP 2
8972: PPUSH
8973: CALL_OW 343
// setattitude ( rus , amer , att_friend , false ) ;
8977: LD_EXP 1
8981: PPUSH
8982: LD_EXP 2
8986: PPUSH
8987: LD_INT 1
8989: PPUSH
8990: LD_INT 0
8992: PPUSH
8993: CALL_OW 80
// commovetoarea ( filterunitsexceptarea ( targetarea , [ [ f_side , amer ] , [ f_ok ] ] ) , retr_ar ) ;
8997: LD_INT 11
8999: PPUSH
9000: LD_INT 22
9002: PUSH
9003: LD_EXP 2
9007: PUSH
9008: EMPTY
9009: LIST
9010: LIST
9011: PUSH
9012: LD_INT 50
9014: PUSH
9015: EMPTY
9016: LIST
9017: PUSH
9018: EMPTY
9019: LIST
9020: LIST
9021: PPUSH
9022: CALL_OW 71
9026: PPUSH
9027: LD_INT 20
9029: PPUSH
9030: CALL_OW 113
// ingame_video = true ;
9034: LD_ADDR_OWVAR 52
9038: PUSH
9039: LD_INT 1
9041: ST_TO_ADDR
// interface_hidden = true ;
9042: LD_ADDR_OWVAR 54
9046: PUSH
9047: LD_INT 1
9049: ST_TO_ADDR
// centeronunits ( zbytek ) ;
9050: LD_LOC 35
9054: PPUSH
9055: CALL_OW 85
// retreat = true ;
9059: LD_ADDR_EXP 33
9063: PUSH
9064: LD_INT 1
9066: ST_TO_ADDR
// end ;
9067: END
// var zbytek ; every 0 0$0.7 trigger retreat do var ii ;
9068: LD_EXP 33
9072: IFFALSE 9320
9074: GO 9076
9076: DISABLE
9077: LD_INT 0
9079: 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 ] ] ] ] ) ;
9080: LD_ADDR_LOC 35
9084: PUSH
9085: LD_INT 20
9087: PPUSH
9088: LD_INT 22
9090: PUSH
9091: LD_EXP 1
9095: PUSH
9096: EMPTY
9097: LIST
9098: LIST
9099: PUSH
9100: LD_INT 51
9102: PUSH
9103: EMPTY
9104: LIST
9105: PUSH
9106: LD_INT 2
9108: PUSH
9109: LD_INT 21
9111: PUSH
9112: LD_INT 1
9114: PUSH
9115: EMPTY
9116: LIST
9117: LIST
9118: PUSH
9119: LD_INT 1
9121: PUSH
9122: LD_INT 21
9124: PUSH
9125: LD_INT 2
9127: PUSH
9128: EMPTY
9129: LIST
9130: LIST
9131: PUSH
9132: LD_INT 59
9134: PUSH
9135: EMPTY
9136: LIST
9137: PUSH
9138: EMPTY
9139: LIST
9140: LIST
9141: LIST
9142: PUSH
9143: EMPTY
9144: LIST
9145: LIST
9146: LIST
9147: PUSH
9148: EMPTY
9149: LIST
9150: LIST
9151: LIST
9152: PPUSH
9153: CALL_OW 70
9157: ST_TO_ADDR
// for ii in zbytek do
9158: LD_ADDR_VAR 0 1
9162: PUSH
9163: LD_LOC 35
9167: PUSH
9168: FOR_IN
9169: IFFALSE 9182
// destroyunit ( ii ) ;
9171: LD_VAR 0 1
9175: PPUSH
9176: CALL_OW 65
9180: GO 9168
9182: POP
9183: POP
// zbytek = filterallunits ( [ [ f_side , rus ] , [ f_ok ] , [ f_or , [ f_type , unit_human ] , [ f_and , [ f_type , unit_vehicle ] , [ f_occupied ] ] ] ] ) ;
9184: LD_ADDR_LOC 35
9188: PUSH
9189: LD_INT 22
9191: PUSH
9192: LD_EXP 1
9196: PUSH
9197: EMPTY
9198: LIST
9199: LIST
9200: PUSH
9201: LD_INT 50
9203: PUSH
9204: EMPTY
9205: LIST
9206: PUSH
9207: LD_INT 2
9209: PUSH
9210: LD_INT 21
9212: PUSH
9213: LD_INT 1
9215: PUSH
9216: EMPTY
9217: LIST
9218: LIST
9219: PUSH
9220: LD_INT 1
9222: PUSH
9223: LD_INT 21
9225: PUSH
9226: LD_INT 2
9228: PUSH
9229: EMPTY
9230: LIST
9231: LIST
9232: PUSH
9233: LD_INT 59
9235: PUSH
9236: EMPTY
9237: LIST
9238: PUSH
9239: EMPTY
9240: LIST
9241: LIST
9242: LIST
9243: PUSH
9244: EMPTY
9245: LIST
9246: LIST
9247: LIST
9248: PUSH
9249: EMPTY
9250: LIST
9251: LIST
9252: LIST
9253: PPUSH
9254: CALL_OW 69
9258: ST_TO_ADDR
// if zbytek then
9259: LD_LOC 35
9263: IFFALSE 9304
// begin enable ;
9265: ENABLE
// centeronunits ( zbytek ) ;
9266: LD_LOC 35
9270: PPUSH
9271: CALL_OW 85
// commovetoarea ( zbytek , retr_ar ) ;
9275: LD_LOC 35
9279: PPUSH
9280: LD_INT 20
9282: PPUSH
9283: CALL_OW 113
// addcommovexy ( zbytek , 126 , 98 ) ;
9287: LD_LOC 35
9291: PPUSH
9292: LD_INT 126
9294: PPUSH
9295: LD_INT 98
9297: PPUSH
9298: CALL_OW 171
// end else
9302: GO 9320
// begin ingame_video = false ;
9304: LD_ADDR_OWVAR 52
9308: PUSH
9309: LD_INT 0
9311: ST_TO_ADDR
// interface_hidden = false ;
9312: LD_ADDR_OWVAR 54
9316: PUSH
9317: LD_INT 0
9319: ST_TO_ADDR
// end ; end ;
9320: PPOPN 1
9322: END
// var qres ; every 0 0$10 + 20 20$0 do
9323: GO 9325
9325: DISABLE
// begin dialogueon ;
9326: CALL_OW 6
// sayradio ( rh , D4-Har-1 ) ;
9330: LD_EXP 4
9334: PPUSH
9335: LD_STRING D4-Har-1
9337: PPUSH
9338: CALL_OW 94
// say ( john , D4-JMM-1 ) ;
9342: LD_LOC 1
9346: PPUSH
9347: LD_STRING D4-JMM-1
9349: PPUSH
9350: CALL_OW 88
// sayradio ( rh , D4-Har-2 ) ;
9354: LD_EXP 4
9358: PPUSH
9359: LD_STRING D4-Har-2
9361: PPUSH
9362: CALL_OW 94
// qres = query ( Q1 ) ;
9366: LD_ADDR_LOC 36
9370: PUSH
9371: LD_STRING Q1
9373: PPUSH
9374: CALL_OW 97
9378: ST_TO_ADDR
// case qres of 1 :
9379: LD_LOC 36
9383: PUSH
9384: LD_INT 1
9386: DOUBLE
9387: EQUAL
9388: IFTRUE 9392
9390: GO 9419
9392: POP
// begin say ( john , D5-JMM-1 ) ;
9393: LD_LOC 1
9397: PPUSH
9398: LD_STRING D5-JMM-1
9400: PPUSH
9401: CALL_OW 88
// sayradio ( rh , D5-Har-1 ) ;
9405: LD_EXP 4
9409: PPUSH
9410: LD_STRING D5-Har-1
9412: PPUSH
9413: CALL_OW 94
// end ; 2 :
9417: GO 9490
9419: LD_INT 2
9421: DOUBLE
9422: EQUAL
9423: IFTRUE 9427
9425: GO 9454
9427: POP
// begin say ( john , D5-JMM-2 ) ;
9428: LD_LOC 1
9432: PPUSH
9433: LD_STRING D5-JMM-2
9435: PPUSH
9436: CALL_OW 88
// sayradio ( rh , D5-Har-2 ) ;
9440: LD_EXP 4
9444: PPUSH
9445: LD_STRING D5-Har-2
9447: PPUSH
9448: CALL_OW 94
// end ; 3 :
9452: GO 9490
9454: LD_INT 3
9456: DOUBLE
9457: EQUAL
9458: IFTRUE 9462
9460: GO 9489
9462: POP
// begin say ( john , D5-JMM-3 ) ;
9463: LD_LOC 1
9467: PPUSH
9468: LD_STRING D5-JMM-3
9470: PPUSH
9471: CALL_OW 88
// sayradio ( rh , D5-Har-3 ) ;
9475: LD_EXP 4
9479: PPUSH
9480: LD_STRING D5-Har-3
9482: PPUSH
9483: CALL_OW 94
// end ; end ;
9487: GO 9490
9489: POP
// dialogueoff ;
9490: CALL_OW 7
// end ;
9494: END
// every 0 0$10 + 26 26$0 do
9495: GO 9497
9497: DISABLE
// begin uc_nation = nation_american ;
9498: LD_ADDR_OWVAR 21
9502: PUSH
9503: LD_INT 1
9505: ST_TO_ADDR
// uc_side = amer ;
9506: LD_ADDR_OWVAR 20
9510: PUSH
9511: LD_EXP 2
9515: ST_TO_ADDR
// preparemechanic ( sex_male , 3 ) ;
9516: LD_INT 1
9518: PPUSH
9519: LD_INT 3
9521: PPUSH
9522: CALL_OW 383
// amhsold8 = createhuman ;
9526: LD_ADDR_EXP 9
9530: PUSH
9531: CALL_OW 44
9535: ST_TO_ADDR
// placeunitarea ( amhsold8 , reinf1 , false ) ;
9536: LD_EXP 9
9540: PPUSH
9541: LD_INT 5
9543: PPUSH
9544: LD_INT 0
9546: PPUSH
9547: CALL_OW 49
// preparesoldier ( sex_male , 3 ) ;
9551: LD_INT 1
9553: PPUSH
9554: LD_INT 3
9556: PPUSH
9557: CALL_OW 381
// amhsold9 = createhuman ;
9561: LD_ADDR_EXP 10
9565: PUSH
9566: CALL_OW 44
9570: ST_TO_ADDR
// placeunitarea ( amhsold9 , reinf1 , false ) ;
9571: LD_EXP 10
9575: PPUSH
9576: LD_INT 5
9578: PPUSH
9579: LD_INT 0
9581: PPUSH
9582: CALL_OW 49
// preparesoldier ( sex_male , 3 ) ;
9586: LD_INT 1
9588: PPUSH
9589: LD_INT 3
9591: PPUSH
9592: CALL_OW 381
// amhsolda = createhuman ;
9596: LD_ADDR_EXP 11
9600: PUSH
9601: CALL_OW 44
9605: ST_TO_ADDR
// placeunitarea ( amhsolda , reinf1 , false ) ;
9606: LD_EXP 11
9610: PPUSH
9611: LD_INT 5
9613: PPUSH
9614: LD_INT 0
9616: PPUSH
9617: CALL_OW 49
// case qres of 1 :
9621: LD_LOC 36
9625: PUSH
9626: LD_INT 1
9628: DOUBLE
9629: EQUAL
9630: IFTRUE 9634
9632: GO 9675
9634: POP
// begin centeronunits ( [ amhsold8 , amhsold9 , amhsolda ] ) ;
9635: LD_EXP 9
9639: PUSH
9640: LD_EXP 10
9644: PUSH
9645: LD_EXP 11
9649: PUSH
9650: EMPTY
9651: LIST
9652: LIST
9653: LIST
9654: PPUSH
9655: CALL_OW 85
// chciplo = chciplo + 3 ;
9659: LD_ADDR_LOC 21
9663: PUSH
9664: LD_LOC 21
9668: PUSH
9669: LD_INT 3
9671: PLUS
9672: ST_TO_ADDR
// end ; 2 :
9673: GO 9897
9675: LD_INT 2
9677: DOUBLE
9678: EQUAL
9679: IFTRUE 9683
9681: GO 9765
9683: POP
// begin preparesoldier ( sex_female , 4 ) ;
9684: LD_INT 2
9686: PPUSH
9687: LD_INT 4
9689: PPUSH
9690: CALL_OW 381
// amhsoldb = createhuman ;
9694: LD_ADDR_EXP 12
9698: PUSH
9699: CALL_OW 44
9703: ST_TO_ADDR
// placeunitarea ( amhsoldb , reinf1 , false ) ;
9704: LD_EXP 12
9708: PPUSH
9709: LD_INT 5
9711: PPUSH
9712: LD_INT 0
9714: PPUSH
9715: CALL_OW 49
// chciplo = chciplo + 4 ;
9719: LD_ADDR_LOC 21
9723: PUSH
9724: LD_LOC 21
9728: PUSH
9729: LD_INT 4
9731: PLUS
9732: ST_TO_ADDR
// centeronunits ( [ amhsold8 , amhsold9 , amhsolda , amhsoldb ] ) ;
9733: LD_EXP 9
9737: PUSH
9738: LD_EXP 10
9742: PUSH
9743: LD_EXP 11
9747: PUSH
9748: LD_EXP 12
9752: PUSH
9753: EMPTY
9754: LIST
9755: LIST
9756: LIST
9757: LIST
9758: PPUSH
9759: CALL_OW 85
// end ; 3 :
9763: GO 9897
9765: LD_INT 3
9767: DOUBLE
9768: EQUAL
9769: IFTRUE 9773
9771: GO 9896
9773: POP
// begin preparesoldier ( sex_female , 3 ) ;
9774: LD_INT 2
9776: PPUSH
9777: LD_INT 3
9779: PPUSH
9780: CALL_OW 381
// amhsoldb = createhuman ;
9784: LD_ADDR_EXP 12
9788: PUSH
9789: CALL_OW 44
9793: ST_TO_ADDR
// placeunitarea ( amhsoldb , reinf1 , false ) ;
9794: LD_EXP 12
9798: PPUSH
9799: LD_INT 5
9801: PPUSH
9802: LD_INT 0
9804: PPUSH
9805: CALL_OW 49
// preparesoldier ( sex_male , 4 ) ;
9809: LD_INT 1
9811: PPUSH
9812: LD_INT 4
9814: PPUSH
9815: CALL_OW 381
// amhsoldc = createhuman ;
9819: LD_ADDR_EXP 13
9823: PUSH
9824: CALL_OW 44
9828: ST_TO_ADDR
// placeunitarea ( amhsoldc , reinf1 , false ) ;
9829: LD_EXP 13
9833: PPUSH
9834: LD_INT 5
9836: PPUSH
9837: LD_INT 0
9839: PPUSH
9840: CALL_OW 49
// chciplo = chciplo + 5 ;
9844: LD_ADDR_LOC 21
9848: PUSH
9849: LD_LOC 21
9853: PUSH
9854: LD_INT 5
9856: PLUS
9857: ST_TO_ADDR
// centeronunits ( [ amhsold8 , amhsold9 , amhsolda , amhsoldb , amhsoldc ] ) ;
9858: LD_EXP 9
9862: PUSH
9863: LD_EXP 10
9867: PUSH
9868: LD_EXP 11
9872: PUSH
9873: LD_EXP 12
9877: PUSH
9878: LD_EXP 13
9882: PUSH
9883: EMPTY
9884: LIST
9885: LIST
9886: LIST
9887: LIST
9888: LIST
9889: PPUSH
9890: CALL_OW 85
// end ; end ;
9894: GO 9897
9896: POP
// dialogueon ;
9897: CALL_OW 6
// sayradio ( amhsold8 , D6-Sol3-1 ) ;
9901: LD_EXP 9
9905: PPUSH
9906: LD_STRING D6-Sol3-1
9908: PPUSH
9909: CALL_OW 94
// dialogueoff ;
9913: CALL_OW 7
// end ;
9917: END
// var utoci , cas , utoci_ , utocil ; every 0 0$10 + 30 30$30 do
9918: GO 9920
9920: DISABLE
// begin dialogueon ;
9921: CALL_OW 6
// sayradio ( rh , D7-Har-1 ) ;
9925: LD_EXP 4
9929: PPUSH
9930: LD_STRING D7-Har-1
9932: PPUSH
9933: CALL_OW 94
// wait ( 0 0$2 ) ;
9937: LD_INT 70
9939: PPUSH
9940: CALL_OW 67
// changemissionobjectives ( M2 ) ;
9944: LD_STRING M2
9946: PPUSH
9947: CALL_OW 337
// dialogueoff ;
9951: CALL_OW 7
// utoci = false ;
9955: LD_ADDR_LOC 37
9959: PUSH
9960: LD_INT 0
9962: ST_TO_ADDR
// utocil = 0 ;
9963: LD_ADDR_LOC 40
9967: PUSH
9968: LD_INT 0
9970: ST_TO_ADDR
// utoci_ = 0 ;
9971: LD_ADDR_LOC 39
9975: PUSH
9976: LD_INT 0
9978: ST_TO_ADDR
// cas = 0 ;
9979: LD_ADDR_LOC 38
9983: PUSH
9984: LD_INT 0
9986: ST_TO_ADDR
// enable ( 02 ) ;
9987: LD_INT 2
9989: ENABLE_MARKED
// end ;
9990: END
// every 0 0$1 + 3 3$0 marked 02 do
9991: GO 9993
9993: DISABLE
// begin cas = cas + 1 ;
9994: LD_ADDR_LOC 38
9998: PUSH
9999: LD_LOC 38
10003: PUSH
10004: LD_INT 1
10006: PLUS
10007: ST_TO_ADDR
// if inbattle ( amer ) then
10008: LD_EXP 2
10012: PPUSH
10013: CALL_OW 463
10017: IFFALSE 10033
// utoci_ = utoci_ + 1 ;
10019: LD_ADDR_LOC 39
10023: PUSH
10024: LD_LOC 39
10028: PUSH
10029: LD_INT 1
10031: PLUS
10032: ST_TO_ADDR
// if debug then
10033: LD_EXP 41
10037: IFFALSE 10066
// debug_strings = [ utoci_: & utoci_ , cas: & cas ] ;
10039: LD_ADDR_OWVAR 48
10043: PUSH
10044: LD_STRING utoci_:
10046: PUSH
10047: LD_LOC 39
10051: STR
10052: PUSH
10053: LD_STRING cas:
10055: PUSH
10056: LD_LOC 38
10060: STR
10061: PUSH
10062: EMPTY
10063: LIST
10064: LIST
10065: ST_TO_ADDR
// if cas > 119 then
10066: LD_LOC 38
10070: PUSH
10071: LD_INT 119
10073: GREATER
10074: IFFALSE 10135
// begin cas = 0 ;
10076: LD_ADDR_LOC 38
10080: PUSH
10081: LD_INT 0
10083: ST_TO_ADDR
// if utoci_ > 24 then
10084: LD_LOC 39
10088: PUSH
10089: LD_INT 24
10091: GREATER
10092: IFFALSE 10127
// begin utoci = true ;
10094: LD_ADDR_LOC 37
10098: PUSH
10099: LD_INT 1
10101: ST_TO_ADDR
// if not utocil then
10102: LD_LOC 40
10106: NOT
10107: IFFALSE 10117
// utocil = true ;
10109: LD_ADDR_LOC 40
10113: PUSH
10114: LD_INT 1
10116: ST_TO_ADDR
// utoci_ = 0 ;
10117: LD_ADDR_LOC 39
10121: PUSH
10122: LD_INT 0
10124: ST_TO_ADDR
// end else
10125: GO 10135
// utoci = false ;
10127: LD_ADDR_LOC 37
10131: PUSH
10132: LD_INT 0
10134: ST_TO_ADDR
// end ; enable ;
10135: ENABLE
// end ;
10136: END
// every 0 0$10 + 34 34$30 do var tmp , tmp1 , tmp2 ;
10137: GO 10139
10139: DISABLE
10140: LD_INT 0
10142: PPUSH
10143: PPUSH
10144: PPUSH
// begin case difficulty of 3 :
10145: LD_OWVAR 67
10149: PUSH
10150: LD_INT 3
10152: DOUBLE
10153: EQUAL
10154: IFTRUE 10158
10156: GO 10168
10158: POP
// wait ( 0 0$1 ) ; 2 :
10159: LD_INT 35
10161: PPUSH
10162: CALL_OW 67
10166: GO 10205
10168: LD_INT 2
10170: DOUBLE
10171: EQUAL
10172: IFTRUE 10176
10174: GO 10186
10176: POP
// wait ( 2 2$0 ) ; 1 :
10177: LD_INT 4200
10179: PPUSH
10180: CALL_OW 67
10184: GO 10205
10186: LD_INT 1
10188: DOUBLE
10189: EQUAL
10190: IFTRUE 10194
10192: GO 10204
10194: POP
// wait ( 6 6$0 ) ; end ;
10195: LD_INT 12600
10197: PPUSH
10198: CALL_OW 67
10202: GO 10205
10204: POP
// while true do
10205: LD_INT 1
10207: IFFALSE 10267
// if utoci then
10209: LD_LOC 37
10213: IFFALSE 10224
// wait ( 2 2$0 ) else
10215: LD_INT 4200
10217: PPUSH
10218: CALL_OW 67
10222: GO 10265
// if utoci_ > 0 then
10224: LD_LOC 39
10228: PUSH
10229: LD_INT 0
10231: GREATER
10232: IFFALSE 10263
// if ( ( cas / utoci_ ) <= 6 ) then
10234: LD_LOC 38
10238: PUSH
10239: LD_LOC 39
10243: DIVREAL
10244: PUSH
10245: LD_INT 6
10247: LESSEQUAL
10248: IFFALSE 10259
// wait ( 2 2$0 ) else
10250: LD_INT 4200
10252: PPUSH
10253: CALL_OW 67
10257: GO 10261
// break else
10259: GO 10267
10261: GO 10265
// break ;
10263: GO 10267
10265: GO 10205
// tmp = filterunitsinarea ( rubase0 , [ [ f_side , rus ] ] ) ;
10267: LD_ADDR_VAR 0 1
10271: PUSH
10272: LD_INT 1
10274: PPUSH
10275: LD_INT 22
10277: PUSH
10278: LD_EXP 1
10282: PUSH
10283: EMPTY
10284: LIST
10285: LIST
10286: PUSH
10287: EMPTY
10288: LIST
10289: PPUSH
10290: CALL_OW 70
10294: ST_TO_ADDR
// tmp2 = [ ] ;
10295: LD_ADDR_VAR 0 3
10299: PUSH
10300: EMPTY
10301: ST_TO_ADDR
// for tmp1 in tmp do
10302: LD_ADDR_VAR 0 2
10306: PUSH
10307: LD_VAR 0 1
10311: PUSH
10312: FOR_IN
10313: IFFALSE 10396
// case gettype ( tmp1 ) of unit_human :
10315: LD_VAR 0 2
10319: PPUSH
10320: CALL_OW 247
10324: PUSH
10325: LD_INT 1
10327: DOUBLE
10328: EQUAL
10329: IFTRUE 10333
10331: GO 10355
10333: POP
// tmp2 = tmp2 ^ [ tmp1 ] ; unit_building , unit_vehicle :
10334: LD_ADDR_VAR 0 3
10338: PUSH
10339: LD_VAR 0 3
10343: PUSH
10344: LD_VAR 0 2
10348: PUSH
10349: EMPTY
10350: LIST
10351: ADD
10352: ST_TO_ADDR
10353: GO 10394
10355: LD_INT 3
10357: DOUBLE
10358: EQUAL
10359: IFTRUE 10369
10361: LD_INT 2
10363: DOUBLE
10364: EQUAL
10365: IFTRUE 10369
10367: GO 10393
10369: POP
// tmp2 = tmp2 ^ unitsinside ( tmp1 ) ; end ;
10370: LD_ADDR_VAR 0 3
10374: PUSH
10375: LD_VAR 0 3
10379: PUSH
10380: LD_VAR 0 2
10384: PPUSH
10385: CALL_OW 313
10389: ADD
10390: ST_TO_ADDR
10391: GO 10394
10393: POP
10394: GO 10312
10396: POP
10397: POP
// tmp2 = tmp2 diff [ 0 ] ;
10398: LD_ADDR_VAR 0 3
10402: PUSH
10403: LD_VAR 0 3
10407: PUSH
10408: LD_INT 0
10410: PUSH
10411: EMPTY
10412: LIST
10413: DIFF
10414: ST_TO_ADDR
// if tmp2 > 5 then
10415: LD_VAR 0 3
10419: PUSH
10420: LD_INT 5
10422: GREATER
10423: IFFALSE 10460
// begin dialogueon ;
10425: CALL_OW 6
// sayradio ( rh , D7a-Har-1 ) ;
10429: LD_EXP 4
10433: PPUSH
10434: LD_STRING D7a-Har-1
10436: PPUSH
10437: CALL_OW 94
// dialogueoff ;
10441: CALL_OW 7
// changemissionobjectives ( M2a ) ;
10445: LD_STRING M2a
10447: PPUSH
10448: CALL_OW 337
// flaka_se = true ;
10452: LD_ADDR_LOC 20
10456: PUSH
10457: LD_INT 1
10459: ST_TO_ADDR
// end ; end ;
10460: PPOPN 3
10462: END
// var pom8 , pom8_ ; every 0 0$10 + 40 40$0 trigger flaka_se do
10463: LD_LOC 20
10467: IFFALSE 10807
10469: GO 10471
10471: DISABLE
// begin case difficulty of 3 :
10472: LD_OWVAR 67
10476: PUSH
10477: LD_INT 3
10479: DOUBLE
10480: EQUAL
10481: IFTRUE 10485
10483: GO 10495
10485: POP
// wait ( 0 0$1 ) ; 2 :
10486: LD_INT 35
10488: PPUSH
10489: CALL_OW 67
10493: GO 10532
10495: LD_INT 2
10497: DOUBLE
10498: EQUAL
10499: IFTRUE 10503
10501: GO 10513
10503: POP
// wait ( 3 3$0 ) ; 1 :
10504: LD_INT 6300
10506: PPUSH
10507: CALL_OW 67
10511: GO 10532
10513: LD_INT 1
10515: DOUBLE
10516: EQUAL
10517: IFTRUE 10521
10519: GO 10531
10521: POP
// wait ( 9 9$0 ) ; end ;
10522: LD_INT 18900
10524: PPUSH
10525: CALL_OW 67
10529: GO 10532
10531: POP
// if not filterunitsinarea ( rubase0 , [ [ f_side , amer ] , [ f_alive ] ] ) then
10532: LD_INT 1
10534: PPUSH
10535: LD_INT 22
10537: PUSH
10538: LD_EXP 2
10542: PUSH
10543: EMPTY
10544: LIST
10545: LIST
10546: PUSH
10547: LD_INT 51
10549: PUSH
10550: EMPTY
10551: LIST
10552: PUSH
10553: EMPTY
10554: LIST
10555: LIST
10556: PPUSH
10557: CALL_OW 70
10561: NOT
10562: IFFALSE 10807
// begin dialogueon ;
10564: CALL_OW 6
// if isok ( lucyd ) then
10568: LD_LOC 6
10572: PPUSH
10573: CALL_OW 302
10577: IFFALSE 10593
// sayradio ( rh , D8-Har-1 ) else
10579: LD_EXP 4
10583: PPUSH
10584: LD_STRING D8-Har-1
10586: PPUSH
10587: CALL_OW 94
10591: GO 10605
// sayradio ( rh , D8-Har-1a ) ;
10593: LD_EXP 4
10597: PPUSH
10598: LD_STRING D8-Har-1a
10600: PPUSH
10601: CALL_OW 94
// dialogueoff ;
10605: CALL_OW 7
// pom8 = unitfilter ( filterallunits ( [ [ f_side , amer ] ] ) , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ) diff [ john , isinunit ( john ) ] ;
10609: LD_ADDR_LOC 41
10613: PUSH
10614: LD_INT 22
10616: PUSH
10617: LD_EXP 2
10621: PUSH
10622: EMPTY
10623: LIST
10624: LIST
10625: PUSH
10626: EMPTY
10627: LIST
10628: PPUSH
10629: CALL_OW 69
10633: PPUSH
10634: LD_INT 2
10636: PUSH
10637: LD_INT 21
10639: PUSH
10640: LD_INT 1
10642: PUSH
10643: EMPTY
10644: LIST
10645: LIST
10646: PUSH
10647: LD_INT 21
10649: PUSH
10650: LD_INT 2
10652: PUSH
10653: EMPTY
10654: LIST
10655: LIST
10656: PUSH
10657: EMPTY
10658: LIST
10659: LIST
10660: LIST
10661: PPUSH
10662: CALL_OW 72
10666: PUSH
10667: LD_LOC 1
10671: PUSH
10672: LD_LOC 1
10676: PPUSH
10677: CALL_OW 310
10681: PUSH
10682: EMPTY
10683: LIST
10684: LIST
10685: DIFF
10686: ST_TO_ADDR
// setattitude ( amer , amer2 , att_neutral , true ) ;
10687: LD_EXP 2
10691: PPUSH
10692: LD_EXP 3
10696: PPUSH
10697: LD_INT 0
10699: PPUSH
10700: LD_INT 1
10702: PPUSH
10703: CALL_OW 80
// setside ( pom8 , amer2 ) ;
10707: LD_LOC 41
10711: PPUSH
10712: LD_EXP 3
10716: PPUSH
10717: CALL_OW 235
// setsidebase ( getbase ( ambdept0 ) , amer2 ) ;
10721: LD_INT 4
10723: PPUSH
10724: CALL_OW 274
10728: PPUSH
10729: LD_EXP 3
10733: PPUSH
10734: CALL_OW 236
// changesidefog ( amer2 , amer ) ;
10738: LD_EXP 3
10742: PPUSH
10743: LD_EXP 2
10747: PPUSH
10748: CALL_OW 343
// pom8 = unitfilter ( pom8 , [ f_not , [ f_type , unit_building ] ] ) ;
10752: LD_ADDR_LOC 41
10756: PUSH
10757: LD_LOC 41
10761: PPUSH
10762: LD_INT 3
10764: PUSH
10765: LD_INT 21
10767: PUSH
10768: LD_INT 3
10770: PUSH
10771: EMPTY
10772: LIST
10773: LIST
10774: PUSH
10775: EMPTY
10776: LIST
10777: LIST
10778: PPUSH
10779: CALL_OW 72
10783: ST_TO_ADDR
// comagressivemove ( pom8 , 88 , 89 ) ;
10784: LD_LOC 41
10788: PPUSH
10789: LD_INT 88
10791: PPUSH
10792: LD_INT 89
10794: PPUSH
10795: CALL_OW 114
// zbaven_veleni = true ;
10799: LD_ADDR_LOC 22
10803: PUSH
10804: LD_INT 1
10806: ST_TO_ADDR
// end ; end ; end_of_file
10807: 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
10808: LD_INT 0
10810: PPUSH
// enemy = FilterUnitsInArea ( rubase1rng , [ [ f_side , amer ] , [ f_alive ] ] ) ;
10811: LD_ADDR_LOC 44
10815: PUSH
10816: LD_INT 3
10818: PPUSH
10819: LD_INT 22
10821: PUSH
10822: LD_EXP 2
10826: PUSH
10827: EMPTY
10828: LIST
10829: LIST
10830: PUSH
10831: LD_INT 51
10833: PUSH
10834: EMPTY
10835: LIST
10836: PUSH
10837: EMPTY
10838: LIST
10839: LIST
10840: PPUSH
10841: CALL_OW 70
10845: ST_TO_ADDR
// result = enemy ;
10846: LD_ADDR_VAR 0 1
10850: PUSH
10851: LD_LOC 44
10855: ST_TO_ADDR
// if enemy then
10856: LD_LOC 44
10860: IFFALSE 10906
// begin pom = unitfilter ( enemy , [ [ f_type , unit_vehicle ] ] ) ;
10862: LD_ADDR_LOC 43
10866: PUSH
10867: LD_LOC 44
10871: PPUSH
10872: LD_INT 21
10874: PUSH
10875: LD_INT 2
10877: PUSH
10878: EMPTY
10879: LIST
10880: LIST
10881: PUSH
10882: EMPTY
10883: LIST
10884: PPUSH
10885: CALL_OW 72
10889: ST_TO_ADDR
// if pom then
10890: LD_LOC 43
10894: IFFALSE 10906
// enemy = pom ;
10896: LD_ADDR_LOC 44
10900: PUSH
10901: LD_LOC 43
10905: ST_TO_ADDR
// end ; end ;
10906: LD_VAR 0 1
10910: RET
// every 0 0$1 + 0 0$20 trigger not rubase1_gone and not attacking and enemies_rb1 do
10911: LD_EXP 21
10915: NOT
10916: PUSH
10917: LD_EXP 18
10921: NOT
10922: AND
10923: PUSH
10924: CALL 10808 0 0
10928: AND
10929: IFFALSE 11011
10931: GO 10933
10933: DISABLE
// begin comfree ( rusove2 ) ;
10934: LD_EXP 17
10938: PPUSH
10939: CALL_OW 139
// comagressivemove ( rusove2 , getx ( enemy [ 1 ] ) , gety ( enemy [ 1 ] ) ) ;
10943: LD_EXP 17
10947: PPUSH
10948: LD_LOC 44
10952: PUSH
10953: LD_INT 1
10955: ARRAY
10956: PPUSH
10957: CALL_OW 250
10961: PPUSH
10962: LD_LOC 44
10966: PUSH
10967: LD_INT 1
10969: ARRAY
10970: PPUSH
10971: CALL_OW 251
10975: PPUSH
10976: CALL_OW 114
// if not isinunit ( ruhengi1 ) then
10980: LD_INT 18
10982: PPUSH
10983: CALL_OW 310
10987: NOT
10988: IFFALSE 11002
// commoveunit ( ruhengi1 , rubdepo0 ) ;
10990: LD_INT 18
10992: PPUSH
10993: LD_EXP 14
10997: PPUSH
10998: CALL_OW 112
// attacking = true ;
11002: LD_ADDR_EXP 18
11006: PUSH
11007: LD_INT 1
11009: ST_TO_ADDR
// enable ;
11010: ENABLE
// end ;
11011: END
// var rusaci_mimo_ ; function rusaci_mimo ; begin
11012: LD_INT 0
11014: PPUSH
// rusaci_mimo_ = rusove2 diff filterunitsinarea ( RuBase1rng , [ [ f_side , rus ] ] ) ;
11015: LD_ADDR_LOC 45
11019: PUSH
11020: LD_EXP 17
11024: PUSH
11025: LD_INT 3
11027: PPUSH
11028: LD_INT 22
11030: PUSH
11031: LD_EXP 1
11035: PUSH
11036: EMPTY
11037: LIST
11038: LIST
11039: PUSH
11040: EMPTY
11041: LIST
11042: PPUSH
11043: CALL_OW 70
11047: DIFF
11048: ST_TO_ADDR
// result = rusaci_mimo_ ;
11049: LD_ADDR_VAR 0 1
11053: PUSH
11054: LD_LOC 45
11058: ST_TO_ADDR
// end ;
11059: LD_VAR 0 1
11063: RET
// every 0 0$1.3 + 0 0$20.7 trigger attacking and rusaci_mimo do
11064: LD_EXP 18
11068: PUSH
11069: CALL 11012 0 0
11073: AND
11074: IFFALSE 11094
11076: GO 11078
11078: DISABLE
// begin comagressivemove ( rusove2 , 44 , 53 ) ;
11079: LD_EXP 17
11083: PPUSH
11084: LD_INT 44
11086: PPUSH
11087: LD_INT 53
11089: PPUSH
11090: CALL_OW 114
// end ;
11094: END
// every 0 0$1 + 0 0$20.3 trigger attacking and not FilterUnitsInArea ( rubase1rng , [ [ f_side , amer ] , [ f_alive ] ] ) do
11095: LD_EXP 18
11099: PUSH
11100: LD_INT 3
11102: PPUSH
11103: LD_INT 22
11105: PUSH
11106: LD_EXP 2
11110: PUSH
11111: EMPTY
11112: LIST
11113: LIST
11114: PUSH
11115: LD_INT 51
11117: PUSH
11118: EMPTY
11119: LIST
11120: PUSH
11121: EMPTY
11122: LIST
11123: LIST
11124: PPUSH
11125: CALL_OW 70
11129: NOT
11130: AND
11131: IFFALSE 11170
11133: GO 11135
11135: DISABLE
// begin comhold ( rusove2 ) ;
11136: LD_EXP 17
11140: PPUSH
11141: CALL_OW 140
// comreturn ( rusove2 ) ;
11145: LD_EXP 17
11149: PPUSH
11150: CALL_OW 144
// attacking = false ;
11154: LD_ADDR_EXP 18
11158: PUSH
11159: LD_INT 0
11161: ST_TO_ADDR
// if not rubase1_gone then
11162: LD_EXP 21
11166: NOT
11167: IFFALSE 11170
// enable ;
11169: ENABLE
// end ;
11170: END
// function manage_prebytek ( zaklad ) ; var bz , bzz ; begin
11171: LD_INT 0
11173: PPUSH
11174: PPUSH
11175: PPUSH
// bzz = [ ] ;
11176: LD_ADDR_VAR 0 4
11180: PUSH
11181: EMPTY
11182: ST_TO_ADDR
// for bz in rusove0 do
11183: LD_ADDR_VAR 0 3
11187: PUSH
11188: LD_EXP 31
11192: PUSH
11193: FOR_IN
11194: IFFALSE 11251
// if gettype ( bz ) = unit_vehicle then
11196: LD_VAR 0 3
11200: PPUSH
11201: CALL_OW 247
11205: PUSH
11206: LD_INT 2
11208: EQUAL
11209: IFFALSE 11249
// begin rusove0 = rusove0 diff [ bz ] ;
11211: LD_ADDR_EXP 31
11215: PUSH
11216: LD_EXP 31
11220: PUSH
11221: LD_VAR 0 3
11225: PUSH
11226: EMPTY
11227: LIST
11228: DIFF
11229: ST_TO_ADDR
// bzz = bzz ^ [ bz ] ;
11230: LD_ADDR_VAR 0 4
11234: PUSH
11235: LD_VAR 0 4
11239: PUSH
11240: LD_VAR 0 3
11244: PUSH
11245: EMPTY
11246: LIST
11247: ADD
11248: ST_TO_ADDR
// end ;
11249: GO 11193
11251: POP
11252: POP
// for bz = 1 to ( 0 + bzz ) do
11253: LD_ADDR_VAR 0 3
11257: PUSH
11258: DOUBLE
11259: LD_INT 1
11261: DEC
11262: ST_TO_ADDR
11263: LD_INT 0
11265: PUSH
11266: LD_VAR 0 4
11270: PLUS
11271: PUSH
11272: FOR_TO
11273: IFFALSE 11347
// if bz <= ( mpora - zaklad ) then
11275: LD_VAR 0 3
11279: PUSH
11280: LD_EXP 38
11284: PUSH
11285: LD_VAR 0 1
11289: MINUS
11290: LESSEQUAL
11291: IFFALSE 11320
// rusove0 = rusove0 ^ [ bzz [ bz ] ] else
11293: LD_ADDR_EXP 31
11297: PUSH
11298: LD_EXP 31
11302: PUSH
11303: LD_VAR 0 4
11307: PUSH
11308: LD_VAR 0 3
11312: ARRAY
11313: PUSH
11314: EMPTY
11315: LIST
11316: ADD
11317: ST_TO_ADDR
11318: GO 11345
// prebytek = prebytek ^ [ bzz [ bz ] ] ;
11320: LD_ADDR_EXP 40
11324: PUSH
11325: LD_EXP 40
11329: PUSH
11330: LD_VAR 0 4
11334: PUSH
11335: LD_VAR 0 3
11339: ARRAY
11340: PUSH
11341: EMPTY
11342: LIST
11343: ADD
11344: ST_TO_ADDR
11345: GO 11272
11347: POP
11348: POP
// end ;
11349: LD_VAR 0 2
11353: RET
// var nppp ; every 17 17$0 do
11354: GO 11356
11356: DISABLE
// begin if retreat then
11357: LD_EXP 33
11361: IFFALSE 11365
// exit ;
11363: GO 12310
// disable ( 17 ) ;
11365: LD_INT 17
11367: DISABLE_MARKED
// case difficulty of 1 :
11368: LD_OWVAR 67
11372: PUSH
11373: LD_INT 1
11375: DOUBLE
11376: EQUAL
11377: IFTRUE 11381
11379: GO 11391
11381: POP
// wait ( 1 1$0 ) ; 2 :
11382: LD_INT 2100
11384: PPUSH
11385: CALL_OW 67
11389: GO 11410
11391: LD_INT 2
11393: DOUBLE
11394: EQUAL
11395: IFTRUE 11399
11397: GO 11409
11399: POP
// wait ( 0 0$30 ) ; end ;
11400: LD_INT 1050
11402: PPUSH
11403: CALL_OW 67
11407: GO 11410
11409: POP
// uc_nation = nation_russian ;
11410: LD_ADDR_OWVAR 21
11414: PUSH
11415: LD_INT 3
11417: ST_TO_ADDR
// uc_side = rus ;
11418: LD_ADDR_OWVAR 20
11422: PUSH
11423: LD_EXP 1
11427: ST_TO_ADDR
// case difficulty of 2 :
11428: LD_OWVAR 67
11432: PUSH
11433: LD_INT 2
11435: DOUBLE
11436: EQUAL
11437: IFTRUE 11441
11439: GO 11454
11441: POP
// preparemechanic ( sex_female , 1 ) ; 3 :
11442: LD_INT 2
11444: PPUSH
11445: LD_INT 1
11447: PPUSH
11448: CALL_OW 383
11452: GO 11497
11454: LD_INT 3
11456: DOUBLE
11457: EQUAL
11458: IFTRUE 11462
11460: GO 11475
11462: POP
// preparemechanic ( sex_female , 2 ) ; 1 :
11463: LD_INT 2
11465: PPUSH
11466: LD_INT 2
11468: PPUSH
11469: CALL_OW 383
11473: GO 11497
11475: LD_INT 1
11477: DOUBLE
11478: EQUAL
11479: IFTRUE 11483
11481: GO 11496
11483: POP
// preparemechanic ( sex_female , 0 ) ; end ;
11484: LD_INT 2
11486: PPUSH
11487: LD_INT 0
11489: PPUSH
11490: CALL_OW 383
11494: GO 11497
11496: POP
// ruhmech6 = createhuman ;
11497: LD_ADDR_EXP 56
11501: PUSH
11502: CALL_OW 44
11506: ST_TO_ADDR
// case difficulty of 1 :
11507: LD_OWVAR 67
11511: PUSH
11512: LD_INT 1
11514: DOUBLE
11515: EQUAL
11516: IFTRUE 11520
11518: GO 11539
11520: POP
// begin vc_chassis = ru_medium_wheeled ;
11521: LD_ADDR_OWVAR 37
11525: PUSH
11526: LD_INT 21
11528: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
11529: LD_ADDR_OWVAR 40
11533: PUSH
11534: LD_INT 42
11536: ST_TO_ADDR
// end ; 2 :
11537: GO 11594
11539: LD_INT 2
11541: DOUBLE
11542: EQUAL
11543: IFTRUE 11547
11545: GO 11566
11547: POP
// begin vc_chassis = ru_medium_wheeled ;
11548: LD_ADDR_OWVAR 37
11552: PUSH
11553: LD_INT 21
11555: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
11556: LD_ADDR_OWVAR 40
11560: PUSH
11561: LD_INT 42
11563: ST_TO_ADDR
// end ; 3 :
11564: GO 11594
11566: LD_INT 3
11568: DOUBLE
11569: EQUAL
11570: IFTRUE 11574
11572: GO 11593
11574: POP
// begin vc_chassis = ru_medium_wheeled ;
11575: LD_ADDR_OWVAR 37
11579: PUSH
11580: LD_INT 21
11582: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
11583: LD_ADDR_OWVAR 40
11587: PUSH
11588: LD_INT 43
11590: ST_TO_ADDR
// end ; end ;
11591: GO 11594
11593: POP
// vc_control = control_manual ;
11594: LD_ADDR_OWVAR 38
11598: PUSH
11599: LD_INT 1
11601: ST_TO_ADDR
// vc_engine = engine_combustion ;
11602: LD_ADDR_OWVAR 39
11606: PUSH
11607: LD_INT 1
11609: ST_TO_ADDR
// ruv5 = createvehicle ;
11610: LD_ADDR_EXP 57
11614: PUSH
11615: CALL_OW 45
11619: ST_TO_ADDR
// setdir ( ruv5 , 0 ) ;
11620: LD_EXP 57
11624: PPUSH
11625: LD_INT 0
11627: PPUSH
11628: CALL_OW 233
// placeunitarea ( ruv5 , rusreinf1 , false ) ;
11632: LD_EXP 57
11636: PPUSH
11637: LD_INT 7
11639: PPUSH
11640: LD_INT 0
11642: PPUSH
11643: CALL_OW 49
// placehumaninunit ( ruhmech6 , ruv5 ) ;
11647: LD_EXP 56
11651: PPUSH
11652: LD_EXP 57
11656: PPUSH
11657: CALL_OW 52
// case difficulty of 2 :
11661: LD_OWVAR 67
11665: PUSH
11666: LD_INT 2
11668: DOUBLE
11669: EQUAL
11670: IFTRUE 11674
11672: GO 11687
11674: POP
// preparemechanic ( sex_male , 1 ) ; 3 :
11675: LD_INT 1
11677: PPUSH
11678: LD_INT 1
11680: PPUSH
11681: CALL_OW 383
11685: GO 11730
11687: LD_INT 3
11689: DOUBLE
11690: EQUAL
11691: IFTRUE 11695
11693: GO 11708
11695: POP
// preparemechanic ( sex_male , 2 ) ; 1 :
11696: LD_INT 1
11698: PPUSH
11699: LD_INT 2
11701: PPUSH
11702: CALL_OW 383
11706: GO 11730
11708: LD_INT 1
11710: DOUBLE
11711: EQUAL
11712: IFTRUE 11716
11714: GO 11729
11716: POP
// preparemechanic ( sex_male , 0 ) ; end ;
11717: LD_INT 1
11719: PPUSH
11720: LD_INT 0
11722: PPUSH
11723: CALL_OW 383
11727: GO 11730
11729: POP
// ruhmech7 = createhuman ;
11730: LD_ADDR_EXP 58
11734: PUSH
11735: CALL_OW 44
11739: ST_TO_ADDR
// case difficulty of 1 :
11740: LD_OWVAR 67
11744: PUSH
11745: LD_INT 1
11747: DOUBLE
11748: EQUAL
11749: IFTRUE 11753
11751: GO 11772
11753: POP
// begin vc_chassis = ru_medium_wheeled ;
11754: LD_ADDR_OWVAR 37
11758: PUSH
11759: LD_INT 21
11761: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
11762: LD_ADDR_OWVAR 40
11766: PUSH
11767: LD_INT 42
11769: ST_TO_ADDR
// end ; 2 :
11770: GO 11827
11772: LD_INT 2
11774: DOUBLE
11775: EQUAL
11776: IFTRUE 11780
11778: GO 11799
11780: POP
// begin vc_chassis = ru_medium_wheeled ;
11781: LD_ADDR_OWVAR 37
11785: PUSH
11786: LD_INT 21
11788: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
11789: LD_ADDR_OWVAR 40
11793: PUSH
11794: LD_INT 43
11796: ST_TO_ADDR
// end ; 3 :
11797: GO 11827
11799: LD_INT 3
11801: DOUBLE
11802: EQUAL
11803: IFTRUE 11807
11805: GO 11826
11807: POP
// begin vc_chassis = ru_medium_wheeled ;
11808: LD_ADDR_OWVAR 37
11812: PUSH
11813: LD_INT 21
11815: ST_TO_ADDR
// vc_weapon = ru_gun ;
11816: LD_ADDR_OWVAR 40
11820: PUSH
11821: LD_INT 44
11823: ST_TO_ADDR
// end ; end ;
11824: GO 11827
11826: POP
// vc_control = control_manual ;
11827: LD_ADDR_OWVAR 38
11831: PUSH
11832: LD_INT 1
11834: ST_TO_ADDR
// vc_engine = engine_combustion ;
11835: LD_ADDR_OWVAR 39
11839: PUSH
11840: LD_INT 1
11842: ST_TO_ADDR
// ruv6 = createvehicle ;
11843: LD_ADDR_EXP 59
11847: PUSH
11848: CALL_OW 45
11852: ST_TO_ADDR
// setdir ( ruv6 , 0 ) ;
11853: LD_EXP 59
11857: PPUSH
11858: LD_INT 0
11860: PPUSH
11861: CALL_OW 233
// placeunitarea ( ruv6 , rusreinf1 , false ) ;
11865: LD_EXP 59
11869: PPUSH
11870: LD_INT 7
11872: PPUSH
11873: LD_INT 0
11875: PPUSH
11876: CALL_OW 49
// placehumaninunit ( ruhmech7 , ruv6 ) ;
11880: LD_EXP 58
11884: PPUSH
11885: LD_EXP 59
11889: PPUSH
11890: CALL_OW 52
// comfree ( [ ruv5 , ruv6 ] ) ;
11894: LD_EXP 57
11898: PUSH
11899: LD_EXP 59
11903: PUSH
11904: EMPTY
11905: LIST
11906: LIST
11907: PPUSH
11908: CALL_OW 139
// if filterunitsinarea ( rubase1rng , [ [ f_side , amer ] , [ f_alive ] ] ) then
11912: LD_INT 3
11914: PPUSH
11915: LD_INT 22
11917: PUSH
11918: LD_EXP 2
11922: PUSH
11923: EMPTY
11924: LIST
11925: LIST
11926: PUSH
11927: LD_INT 51
11929: PUSH
11930: EMPTY
11931: LIST
11932: PUSH
11933: EMPTY
11934: LIST
11935: LIST
11936: PPUSH
11937: CALL_OW 70
11941: IFFALSE 11969
// comagressivemove ( [ ruv5 , ruv6 ] , 56 , 61 ) else
11943: LD_EXP 57
11947: PUSH
11948: LD_EXP 59
11952: PUSH
11953: EMPTY
11954: LIST
11955: LIST
11956: PPUSH
11957: LD_INT 56
11959: PPUSH
11960: LD_INT 61
11962: PPUSH
11963: CALL_OW 114
11967: GO 11993
// comagressivemove ( [ ruv5 , ruv6 ] , 47 , 45 ) ;
11969: LD_EXP 57
11973: PUSH
11974: LD_EXP 59
11978: PUSH
11979: EMPTY
11980: LIST
11981: LIST
11982: PPUSH
11983: LD_INT 47
11985: PPUSH
11986: LD_INT 45
11988: PPUSH
11989: CALL_OW 114
// nppp = unitfilter ( [ ruhsoldj , ruhsoldk , ruhsoldl ] , [ [ f_ok ] ] ) ;
11993: LD_ADDR_LOC 46
11997: PUSH
11998: LD_EXP 25
12002: PUSH
12003: LD_EXP 26
12007: PUSH
12008: LD_EXP 27
12012: PUSH
12013: EMPTY
12014: LIST
12015: LIST
12016: LIST
12017: PPUSH
12018: LD_INT 50
12020: PUSH
12021: EMPTY
12022: LIST
12023: PUSH
12024: EMPTY
12025: LIST
12026: PPUSH
12027: CALL_OW 72
12031: ST_TO_ADDR
// case difficulty of 1 :
12032: LD_OWVAR 67
12036: PUSH
12037: LD_INT 1
12039: DOUBLE
12040: EQUAL
12041: IFTRUE 12045
12043: GO 12058
12045: POP
// preparesoldier ( sex_female , 2 ) ; 2 :
12046: LD_INT 2
12048: PPUSH
12049: LD_INT 2
12051: PPUSH
12052: CALL_OW 381
12056: GO 12101
12058: LD_INT 2
12060: DOUBLE
12061: EQUAL
12062: IFTRUE 12066
12064: GO 12079
12066: POP
// preparesoldier ( sex_female , 2 ) ; 3 :
12067: LD_INT 2
12069: PPUSH
12070: LD_INT 2
12072: PPUSH
12073: CALL_OW 381
12077: GO 12101
12079: LD_INT 3
12081: DOUBLE
12082: EQUAL
12083: IFTRUE 12087
12085: GO 12100
12087: POP
// preparesoldier ( sex_female , 3 ) ; end ;
12088: LD_INT 2
12090: PPUSH
12091: LD_INT 3
12093: PPUSH
12094: CALL_OW 381
12098: GO 12101
12100: POP
// ruhsoldm = createhuman ;
12101: LD_ADDR_EXP 60
12105: PUSH
12106: CALL_OW 44
12110: ST_TO_ADDR
// placeunitarea ( ruhsoldm , rusreinf0 , false ) ;
12111: LD_EXP 60
12115: PPUSH
12116: LD_INT 6
12118: PPUSH
12119: LD_INT 0
12121: PPUSH
12122: CALL_OW 49
// case difficulty of 1 :
12126: LD_OWVAR 67
12130: PUSH
12131: LD_INT 1
12133: DOUBLE
12134: EQUAL
12135: IFTRUE 12139
12137: GO 12152
12139: POP
// preparesoldier ( sex_male , 1 ) ; 2 :
12140: LD_INT 1
12142: PPUSH
12143: LD_INT 1
12145: PPUSH
12146: CALL_OW 381
12150: GO 12195
12152: LD_INT 2
12154: DOUBLE
12155: EQUAL
12156: IFTRUE 12160
12158: GO 12173
12160: POP
// preparesoldier ( sex_male , 2 ) ; 3 :
12161: LD_INT 1
12163: PPUSH
12164: LD_INT 2
12166: PPUSH
12167: CALL_OW 381
12171: GO 12195
12173: LD_INT 3
12175: DOUBLE
12176: EQUAL
12177: IFTRUE 12181
12179: GO 12194
12181: POP
// preparesoldier ( sex_male , 2 ) ; end ;
12182: LD_INT 1
12184: PPUSH
12185: LD_INT 2
12187: PPUSH
12188: CALL_OW 381
12192: GO 12195
12194: POP
// ruhsoldn = createhuman ;
12195: LD_ADDR_EXP 61
12199: PUSH
12200: CALL_OW 44
12204: ST_TO_ADDR
// placeunitarea ( ruhsoldn , rusreinf0 , false ) ;
12205: LD_EXP 61
12209: PPUSH
12210: LD_INT 6
12212: PPUSH
12213: LD_INT 0
12215: PPUSH
12216: CALL_OW 49
// nppp = nppp ^ [ ruhsoldm , ruhsoldn ] ;
12220: LD_ADDR_LOC 46
12224: PUSH
12225: LD_LOC 46
12229: PUSH
12230: LD_EXP 60
12234: PUSH
12235: LD_EXP 61
12239: PUSH
12240: EMPTY
12241: LIST
12242: LIST
12243: ADD
12244: ST_TO_ADDR
// comfree ( nppp ) ;
12245: LD_LOC 46
12249: PPUSH
12250: CALL_OW 139
// comagressivemove ( nppp , 78 , 46 ) ;
12254: LD_LOC 46
12258: PPUSH
12259: LD_INT 78
12261: PPUSH
12262: LD_INT 46
12264: PPUSH
12265: CALL_OW 114
// manage_prebytek ( 2 ) ;
12269: LD_INT 2
12271: PPUSH
12272: CALL 11171 0 1
// rusove0 = rusove0 union ( [ ruv5 , ruv6 ] union nppp ) ;
12276: LD_ADDR_EXP 31
12280: PUSH
12281: LD_EXP 31
12285: PUSH
12286: LD_EXP 57
12290: PUSH
12291: LD_EXP 59
12295: PUSH
12296: EMPTY
12297: LIST
12298: LIST
12299: PUSH
12300: LD_LOC 46
12304: UNION
12305: UNION
12306: ST_TO_ADDR
// enable ( 17 ) ;
12307: LD_INT 17
12309: ENABLE_MARKED
// end ;
12310: 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
12311: LD_EXP 57
12315: PUSH
12316: LD_EXP 59
12320: PUSH
12321: EMPTY
12322: LIST
12323: LIST
12324: PUSH
12325: LD_INT 10
12327: PPUSH
12328: LD_INT 22
12330: PUSH
12331: LD_EXP 1
12335: PUSH
12336: EMPTY
12337: LIST
12338: LIST
12339: PUSH
12340: LD_INT 21
12342: PUSH
12343: LD_INT 2
12345: PUSH
12346: EMPTY
12347: LIST
12348: LIST
12349: PUSH
12350: EMPTY
12351: LIST
12352: LIST
12353: PPUSH
12354: CALL_OW 70
12358: DIFF
12359: NOT
12360: IFFALSE 12389
12362: GO 12364
12364: DISABLE
// begin comagressivemove ( [ ruv5 , ruv6 ] , 47 , 25 ) ;
12365: LD_EXP 57
12369: PUSH
12370: LD_EXP 59
12374: PUSH
12375: EMPTY
12376: LIST
12377: LIST
12378: PPUSH
12379: LD_INT 47
12381: PPUSH
12382: LD_INT 25
12384: PPUSH
12385: CALL_OW 114
// end ;
12389: END
// every 0 0$1 + 17 17$10 trigger filterunitsinarea ( wayarea1 , [ [ f_side , rus ] , [ f_type , unit_human ] ] ) > 2 marked 17 do
12390: LD_INT 9
12392: PPUSH
12393: LD_INT 22
12395: PUSH
12396: LD_EXP 1
12400: PUSH
12401: EMPTY
12402: LIST
12403: LIST
12404: PUSH
12405: LD_INT 21
12407: PUSH
12408: LD_INT 1
12410: PUSH
12411: EMPTY
12412: LIST
12413: LIST
12414: PUSH
12415: EMPTY
12416: LIST
12417: LIST
12418: PPUSH
12419: CALL_OW 70
12423: PUSH
12424: LD_INT 2
12426: GREATER
12427: IFFALSE 12447
12429: GO 12431
12431: DISABLE
// begin comagressivemove ( nppp , 61 , 22 ) ;
12432: LD_LOC 46
12436: PPUSH
12437: LD_INT 61
12439: PPUSH
12440: LD_INT 22
12442: PPUSH
12443: CALL_OW 114
// end ;
12447: END
// every 18 18$0 marked 17 do var tmp ;
12448: GO 12450
12450: DISABLE
12451: LD_INT 0
12453: PPUSH
// begin case difficulty of 1 :
12454: LD_OWVAR 67
12458: PUSH
12459: LD_INT 1
12461: DOUBLE
12462: EQUAL
12463: IFTRUE 12467
12465: GO 12477
12467: POP
// wait ( 1 1$0 ) ; 2 :
12468: LD_INT 2100
12470: PPUSH
12471: CALL_OW 67
12475: GO 12496
12477: LD_INT 2
12479: DOUBLE
12480: EQUAL
12481: IFTRUE 12485
12483: GO 12495
12485: POP
// wait ( 0 0$30 ) ; end ;
12486: LD_INT 1050
12488: PPUSH
12489: CALL_OW 67
12493: GO 12496
12495: POP
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_bunker ] , [ f_occupied ] ] ) ;
12496: LD_ADDR_VAR 0 1
12500: PUSH
12501: LD_INT 22
12503: PUSH
12504: LD_EXP 2
12508: PUSH
12509: EMPTY
12510: LIST
12511: LIST
12512: PUSH
12513: LD_INT 30
12515: PUSH
12516: LD_INT 32
12518: PUSH
12519: EMPTY
12520: LIST
12521: LIST
12522: PUSH
12523: LD_INT 59
12525: PUSH
12526: EMPTY
12527: LIST
12528: PUSH
12529: EMPTY
12530: LIST
12531: LIST
12532: LIST
12533: PPUSH
12534: CALL_OW 69
12538: ST_TO_ADDR
// if not tmp then
12539: LD_VAR 0 1
12543: NOT
12544: IFFALSE 12589
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_breastwork ] , [ f_occupied ] ] ) ;
12546: LD_ADDR_VAR 0 1
12550: PUSH
12551: LD_INT 22
12553: PUSH
12554: LD_EXP 2
12558: PUSH
12559: EMPTY
12560: LIST
12561: LIST
12562: PUSH
12563: LD_INT 30
12565: PUSH
12566: LD_INT 31
12568: PUSH
12569: EMPTY
12570: LIST
12571: LIST
12572: PUSH
12573: LD_INT 59
12575: PUSH
12576: EMPTY
12577: LIST
12578: PUSH
12579: EMPTY
12580: LIST
12581: LIST
12582: LIST
12583: PPUSH
12584: CALL_OW 69
12588: ST_TO_ADDR
// if not tmp then
12589: LD_VAR 0 1
12593: NOT
12594: IFFALSE 12639
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_vehicle ] , [ f_occupied ] ] ) ;
12596: LD_ADDR_VAR 0 1
12600: PUSH
12601: LD_INT 22
12603: PUSH
12604: LD_EXP 2
12608: PUSH
12609: EMPTY
12610: LIST
12611: LIST
12612: PUSH
12613: LD_INT 21
12615: PUSH
12616: LD_INT 2
12618: PUSH
12619: EMPTY
12620: LIST
12621: LIST
12622: PUSH
12623: LD_INT 59
12625: PUSH
12626: EMPTY
12627: LIST
12628: PUSH
12629: EMPTY
12630: LIST
12631: LIST
12632: LIST
12633: PPUSH
12634: CALL_OW 69
12638: ST_TO_ADDR
// if not tmp then
12639: LD_VAR 0 1
12643: NOT
12644: IFFALSE 12689
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
12646: LD_ADDR_VAR 0 1
12650: PUSH
12651: LD_INT 22
12653: PUSH
12654: LD_EXP 2
12658: PUSH
12659: EMPTY
12660: LIST
12661: LIST
12662: PUSH
12663: LD_INT 21
12665: PUSH
12666: LD_INT 1
12668: PUSH
12669: EMPTY
12670: LIST
12671: LIST
12672: PUSH
12673: LD_INT 50
12675: PUSH
12676: EMPTY
12677: LIST
12678: PUSH
12679: EMPTY
12680: LIST
12681: LIST
12682: LIST
12683: PPUSH
12684: CALL_OW 69
12688: ST_TO_ADDR
// if tmp then
12689: LD_VAR 0 1
12693: IFFALSE 12713
// comattackunit ( rusove0 , tmp [ 1 ] ) ;
12695: LD_EXP 31
12699: PPUSH
12700: LD_VAR 0 1
12704: PUSH
12705: LD_INT 1
12707: ARRAY
12708: PPUSH
12709: CALL_OW 115
// end ;
12713: PPOPN 1
12715: END
// every 22 22$0 do
12716: GO 12718
12718: DISABLE
// begin if retreat then
12719: LD_EXP 33
12723: IFFALSE 12727
// exit ;
12725: GO 13355
// uc_nation = nation_russian ;
12727: LD_ADDR_OWVAR 21
12731: PUSH
12732: LD_INT 3
12734: ST_TO_ADDR
// uc_side = rus ;
12735: LD_ADDR_OWVAR 20
12739: PUSH
12740: LD_EXP 1
12744: ST_TO_ADDR
// case difficulty of 2 :
12745: LD_OWVAR 67
12749: PUSH
12750: LD_INT 2
12752: DOUBLE
12753: EQUAL
12754: IFTRUE 12758
12756: GO 12771
12758: POP
// preparemechanic ( sex_male , 1 ) ; 3 :
12759: LD_INT 1
12761: PPUSH
12762: LD_INT 1
12764: PPUSH
12765: CALL_OW 383
12769: GO 12814
12771: LD_INT 3
12773: DOUBLE
12774: EQUAL
12775: IFTRUE 12779
12777: GO 12792
12779: POP
// preparemechanic ( sex_male , 2 ) ; 1 :
12780: LD_INT 1
12782: PPUSH
12783: LD_INT 2
12785: PPUSH
12786: CALL_OW 383
12790: GO 12814
12792: LD_INT 1
12794: DOUBLE
12795: EQUAL
12796: IFTRUE 12800
12798: GO 12813
12800: POP
// preparemechanic ( sex_male , 0 ) ; end ;
12801: LD_INT 1
12803: PPUSH
12804: LD_INT 0
12806: PPUSH
12807: CALL_OW 383
12811: GO 12814
12813: POP
// ruhmech4 = createhuman ;
12814: LD_ADDR_EXP 45
12818: PUSH
12819: CALL_OW 44
12823: ST_TO_ADDR
// case difficulty of 1 :
12824: LD_OWVAR 67
12828: PUSH
12829: LD_INT 1
12831: DOUBLE
12832: EQUAL
12833: IFTRUE 12837
12835: GO 12850
12837: POP
// preparesoldier ( sex_female , 2 ) ; 2 :
12838: LD_INT 2
12840: PPUSH
12841: LD_INT 2
12843: PPUSH
12844: CALL_OW 381
12848: GO 12893
12850: LD_INT 2
12852: DOUBLE
12853: EQUAL
12854: IFTRUE 12858
12856: GO 12871
12858: POP
// preparesoldier ( sex_female , 3 ) ; 3 :
12859: LD_INT 2
12861: PPUSH
12862: LD_INT 3
12864: PPUSH
12865: CALL_OW 381
12869: GO 12893
12871: LD_INT 3
12873: DOUBLE
12874: EQUAL
12875: IFTRUE 12879
12877: GO 12892
12879: POP
// preparesoldier ( sex_female , 4 ) ; end ;
12880: LD_INT 2
12882: PPUSH
12883: LD_INT 4
12885: PPUSH
12886: CALL_OW 381
12890: GO 12893
12892: POP
// hc_class = class_soldier ;
12893: LD_ADDR_OWVAR 28
12897: PUSH
12898: LD_INT 1
12900: ST_TO_ADDR
// ruhsold8 = createhuman ;
12901: LD_ADDR_EXP 43
12905: PUSH
12906: CALL_OW 44
12910: ST_TO_ADDR
// if difficulty = 3 then
12911: LD_OWVAR 67
12915: PUSH
12916: LD_INT 3
12918: EQUAL
12919: IFFALSE 12936
// placeunitarea ( ruhsold8 , rusreinf0 , false ) ;
12921: LD_EXP 43
12925: PPUSH
12926: LD_INT 6
12928: PPUSH
12929: LD_INT 0
12931: PPUSH
12932: CALL_OW 49
// case difficulty of 1 :
12936: LD_OWVAR 67
12940: PUSH
12941: LD_INT 1
12943: DOUBLE
12944: EQUAL
12945: IFTRUE 12949
12947: GO 12962
12949: POP
// preparesoldier ( sex_female , 2 ) ; 2 :
12950: LD_INT 2
12952: PPUSH
12953: LD_INT 2
12955: PPUSH
12956: CALL_OW 381
12960: GO 13005
12962: LD_INT 2
12964: DOUBLE
12965: EQUAL
12966: IFTRUE 12970
12968: GO 12983
12970: POP
// preparesoldier ( sex_female , 3 ) ; 3 :
12971: LD_INT 2
12973: PPUSH
12974: LD_INT 3
12976: PPUSH
12977: CALL_OW 381
12981: GO 13005
12983: LD_INT 3
12985: DOUBLE
12986: EQUAL
12987: IFTRUE 12991
12989: GO 13004
12991: POP
// preparesoldier ( sex_female , 4 ) ; end ;
12992: LD_INT 2
12994: PPUSH
12995: LD_INT 4
12997: PPUSH
12998: CALL_OW 381
13002: GO 13005
13004: POP
// ruhsold9 = createhuman ;
13005: LD_ADDR_EXP 44
13009: PUSH
13010: CALL_OW 44
13014: ST_TO_ADDR
// placeunitarea ( ruhsold9 , rusreinf0 , false ) ;
13015: LD_EXP 44
13019: PPUSH
13020: LD_INT 6
13022: PPUSH
13023: LD_INT 0
13025: PPUSH
13026: CALL_OW 49
// case difficulty of 1 :
13030: LD_OWVAR 67
13034: PUSH
13035: LD_INT 1
13037: DOUBLE
13038: EQUAL
13039: IFTRUE 13043
13041: GO 13062
13043: POP
// begin vc_chassis = ru_medium_wheeled ;
13044: LD_ADDR_OWVAR 37
13048: PUSH
13049: LD_INT 21
13051: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
13052: LD_ADDR_OWVAR 40
13056: PUSH
13057: LD_INT 42
13059: ST_TO_ADDR
// end ; 2 :
13060: GO 13117
13062: LD_INT 2
13064: DOUBLE
13065: EQUAL
13066: IFTRUE 13070
13068: GO 13089
13070: POP
// begin vc_chassis = ru_medium_wheeled ;
13071: LD_ADDR_OWVAR 37
13075: PUSH
13076: LD_INT 21
13078: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
13079: LD_ADDR_OWVAR 40
13083: PUSH
13084: LD_INT 43
13086: ST_TO_ADDR
// end ; 3 :
13087: GO 13117
13089: LD_INT 3
13091: DOUBLE
13092: EQUAL
13093: IFTRUE 13097
13095: GO 13116
13097: POP
// begin vc_chassis = ru_heavy_wheeled ;
13098: LD_ADDR_OWVAR 37
13102: PUSH
13103: LD_INT 23
13105: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
13106: LD_ADDR_OWVAR 40
13110: PUSH
13111: LD_INT 43
13113: ST_TO_ADDR
// end ; end ;
13114: GO 13117
13116: POP
// vc_control = control_manual ;
13117: LD_ADDR_OWVAR 38
13121: PUSH
13122: LD_INT 1
13124: ST_TO_ADDR
// vc_engine = engine_combustion ;
13125: LD_ADDR_OWVAR 39
13129: PUSH
13130: LD_INT 1
13132: ST_TO_ADDR
// ruv3 = createvehicle ;
13133: LD_ADDR_EXP 42
13137: PUSH
13138: CALL_OW 45
13142: ST_TO_ADDR
// placeunitarea ( ruv3 , rusreinf0 , false ) ;
13143: LD_EXP 42
13147: PPUSH
13148: LD_INT 6
13150: PPUSH
13151: LD_INT 0
13153: PPUSH
13154: CALL_OW 49
// placehumaninunit ( ruhmech4 , ruv3 ) ;
13158: LD_EXP 45
13162: PPUSH
13163: LD_EXP 42
13167: PPUSH
13168: CALL_OW 52
// case difficulty of 1 :
13172: LD_OWVAR 67
13176: PUSH
13177: LD_INT 1
13179: DOUBLE
13180: EQUAL
13181: IFTRUE 13185
13183: GO 13198
13185: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
13186: LD_INT 1
13188: PPUSH
13189: LD_INT 2
13191: PPUSH
13192: CALL_OW 381
13196: GO 13241
13198: LD_INT 2
13200: DOUBLE
13201: EQUAL
13202: IFTRUE 13206
13204: GO 13219
13206: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
13207: LD_INT 1
13209: PPUSH
13210: LD_INT 3
13212: PPUSH
13213: CALL_OW 381
13217: GO 13241
13219: LD_INT 3
13221: DOUBLE
13222: EQUAL
13223: IFTRUE 13227
13225: GO 13240
13227: POP
// preparesoldier ( sex_male , 4 ) ; end ;
13228: LD_INT 1
13230: PPUSH
13231: LD_INT 4
13233: PPUSH
13234: CALL_OW 381
13238: GO 13241
13240: POP
// ruhsolda = createhuman ;
13241: LD_ADDR_EXP 46
13245: PUSH
13246: CALL_OW 44
13250: ST_TO_ADDR
// placeunitarea ( ruhsolda , rusreinf0 , false ) ;
13251: LD_EXP 46
13255: PPUSH
13256: LD_INT 6
13258: PPUSH
13259: LD_INT 0
13261: PPUSH
13262: CALL_OW 49
// manage_prebytek ( 1 ) ;
13266: LD_INT 1
13268: PPUSH
13269: CALL 11171 0 1
// rusove0 = rusove0 union [ ruhsold8 , ruhsold9 , ruhsolda , ruv3 ] ;
13273: LD_ADDR_EXP 31
13277: PUSH
13278: LD_EXP 31
13282: PUSH
13283: LD_EXP 43
13287: PUSH
13288: LD_EXP 44
13292: PUSH
13293: LD_EXP 46
13297: PUSH
13298: LD_EXP 42
13302: PUSH
13303: EMPTY
13304: LIST
13305: LIST
13306: LIST
13307: LIST
13308: UNION
13309: ST_TO_ADDR
// comfree ( [ ruhsold8 , ruhsold9 , ruhsolda , ruv3 ] ) ;
13310: LD_EXP 43
13314: PUSH
13315: LD_EXP 44
13319: PUSH
13320: LD_EXP 46
13324: PUSH
13325: LD_EXP 42
13329: PUSH
13330: EMPTY
13331: LIST
13332: LIST
13333: LIST
13334: LIST
13335: PPUSH
13336: CALL_OW 139
// comagressivemove ( rusove0 , 66 , 66 ) ;
13340: LD_EXP 31
13344: PPUSH
13345: LD_INT 66
13347: PPUSH
13348: LD_INT 66
13350: PPUSH
13351: CALL_OW 114
// end ;
13355: END
// every 0 0$1 + 22 22$09 trigger isinarea ( ruhsold8 , wayarea0 ) or isinarea ( ruhsold9 , wayarea0 ) or isinarea ( ruhsolda , wayarea0 ) do
13356: LD_EXP 43
13360: PPUSH
13361: LD_INT 8
13363: PPUSH
13364: CALL_OW 308
13368: PUSH
13369: LD_EXP 44
13373: PPUSH
13374: LD_INT 8
13376: PPUSH
13377: CALL_OW 308
13381: OR
13382: PUSH
13383: LD_EXP 46
13387: PPUSH
13388: LD_INT 8
13390: PPUSH
13391: CALL_OW 308
13395: OR
13396: IFFALSE 13423
13398: GO 13400
13400: DISABLE
// begin wait ( 1 1$0 ) ;
13401: LD_INT 2100
13403: PPUSH
13404: CALL_OW 67
// comagressivemove ( rusove0 , 50 , 50 ) ;
13408: LD_EXP 31
13412: PPUSH
13413: LD_INT 50
13415: PPUSH
13416: LD_INT 50
13418: PPUSH
13419: CALL_OW 114
// end ;
13423: END
// every 0 0$1 + 22 22$19 trigger isinarea ( ruhsold8 , wayarea2 ) or isinarea ( ruhsold9 , wayarea2 ) or isinarea ( ruhsolda , wayarea2 ) do var tmp ;
13424: LD_EXP 43
13428: PPUSH
13429: LD_INT 10
13431: PPUSH
13432: CALL_OW 308
13436: PUSH
13437: LD_EXP 44
13441: PPUSH
13442: LD_INT 10
13444: PPUSH
13445: CALL_OW 308
13449: OR
13450: PUSH
13451: LD_EXP 46
13455: PPUSH
13456: LD_INT 10
13458: PPUSH
13459: CALL_OW 308
13463: OR
13464: IFFALSE 13721
13466: GO 13468
13468: DISABLE
13469: LD_INT 0
13471: PPUSH
// begin wait ( 0 0$30 ) ;
13472: LD_INT 1050
13474: PPUSH
13475: CALL_OW 67
// comagressivemove ( rusove0 , 40 , 30 ) ;
13479: LD_EXP 31
13483: PPUSH
13484: LD_INT 40
13486: PPUSH
13487: LD_INT 30
13489: PPUSH
13490: CALL_OW 114
// wait ( 0 0$10 ) ;
13494: LD_INT 350
13496: PPUSH
13497: CALL_OW 67
// tmp = filterunitsinarea ( ambase , [ [ f_side , amer ] , [ f_alive ] , [ f_type , unit_human ] ] ) ;
13501: LD_ADDR_VAR 0 1
13505: PUSH
13506: LD_INT 2
13508: PPUSH
13509: LD_INT 22
13511: PUSH
13512: LD_EXP 2
13516: PUSH
13517: EMPTY
13518: LIST
13519: LIST
13520: PUSH
13521: LD_INT 51
13523: PUSH
13524: EMPTY
13525: LIST
13526: PUSH
13527: LD_INT 21
13529: PUSH
13530: LD_INT 1
13532: PUSH
13533: EMPTY
13534: LIST
13535: LIST
13536: PUSH
13537: EMPTY
13538: LIST
13539: LIST
13540: LIST
13541: PPUSH
13542: CALL_OW 70
13546: ST_TO_ADDR
// if not tmp then
13547: LD_VAR 0 1
13551: NOT
13552: IFFALSE 13597
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_breastwork ] , [ f_occupied ] ] ) ;
13554: LD_ADDR_VAR 0 1
13558: PUSH
13559: LD_INT 22
13561: PUSH
13562: LD_EXP 2
13566: PUSH
13567: EMPTY
13568: LIST
13569: LIST
13570: PUSH
13571: LD_INT 30
13573: PUSH
13574: LD_INT 31
13576: PUSH
13577: EMPTY
13578: LIST
13579: LIST
13580: PUSH
13581: LD_INT 59
13583: PUSH
13584: EMPTY
13585: LIST
13586: PUSH
13587: EMPTY
13588: LIST
13589: LIST
13590: LIST
13591: PPUSH
13592: CALL_OW 69
13596: ST_TO_ADDR
// if not tmp then
13597: LD_VAR 0 1
13601: NOT
13602: IFFALSE 13647
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_vehicle ] , [ f_occupied ] ] ) ;
13604: LD_ADDR_VAR 0 1
13608: PUSH
13609: LD_INT 22
13611: PUSH
13612: LD_EXP 2
13616: PUSH
13617: EMPTY
13618: LIST
13619: LIST
13620: PUSH
13621: LD_INT 21
13623: PUSH
13624: LD_INT 2
13626: PUSH
13627: EMPTY
13628: LIST
13629: LIST
13630: PUSH
13631: LD_INT 59
13633: PUSH
13634: EMPTY
13635: LIST
13636: PUSH
13637: EMPTY
13638: LIST
13639: LIST
13640: LIST
13641: PPUSH
13642: CALL_OW 69
13646: ST_TO_ADDR
// if not tmp then
13647: LD_VAR 0 1
13651: NOT
13652: IFFALSE 13697
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
13654: LD_ADDR_VAR 0 1
13658: PUSH
13659: LD_INT 22
13661: PUSH
13662: LD_EXP 2
13666: PUSH
13667: EMPTY
13668: LIST
13669: LIST
13670: PUSH
13671: LD_INT 21
13673: PUSH
13674: LD_INT 1
13676: PUSH
13677: EMPTY
13678: LIST
13679: LIST
13680: PUSH
13681: LD_INT 50
13683: PUSH
13684: EMPTY
13685: LIST
13686: PUSH
13687: EMPTY
13688: LIST
13689: LIST
13690: LIST
13691: PPUSH
13692: CALL_OW 69
13696: ST_TO_ADDR
// if tmp then
13697: LD_VAR 0 1
13701: IFFALSE 13721
// comattackunit ( rusove0 , tmp [ 1 ] ) ;
13703: LD_EXP 31
13707: PPUSH
13708: LD_VAR 0 1
13712: PUSH
13713: LD_INT 1
13715: ARRAY
13716: PPUSH
13717: CALL_OW 115
// end ;
13721: PPOPN 1
13723: END
// every 28 28$40 do
13724: GO 13726
13726: DISABLE
// begin if retreat then
13727: LD_EXP 33
13731: IFFALSE 13735
// exit ;
13733: GO 14765
// vracet_se = false ;
13735: LD_ADDR_EXP 55
13739: PUSH
13740: LD_INT 0
13742: ST_TO_ADDR
// uc_nation = nation_russian ;
13743: LD_ADDR_OWVAR 21
13747: PUSH
13748: LD_INT 3
13750: ST_TO_ADDR
// uc_side = rus ;
13751: LD_ADDR_OWVAR 20
13755: PUSH
13756: LD_EXP 1
13760: ST_TO_ADDR
// case difficulty of 1 :
13761: LD_OWVAR 67
13765: PUSH
13766: LD_INT 1
13768: DOUBLE
13769: EQUAL
13770: IFTRUE 13774
13772: GO 13787
13774: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
13775: LD_INT 1
13777: PPUSH
13778: LD_INT 2
13780: PPUSH
13781: CALL_OW 381
13785: GO 13830
13787: LD_INT 2
13789: DOUBLE
13790: EQUAL
13791: IFTRUE 13795
13793: GO 13808
13795: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
13796: LD_INT 1
13798: PPUSH
13799: LD_INT 3
13801: PPUSH
13802: CALL_OW 381
13806: GO 13830
13808: LD_INT 3
13810: DOUBLE
13811: EQUAL
13812: IFTRUE 13816
13814: GO 13829
13816: POP
// preparesoldier ( sex_male , 4 ) ; end ;
13817: LD_INT 1
13819: PPUSH
13820: LD_INT 4
13822: PPUSH
13823: CALL_OW 381
13827: GO 13830
13829: POP
// ruhsoldb = createhuman ;
13830: LD_ADDR_EXP 47
13834: PUSH
13835: CALL_OW 44
13839: ST_TO_ADDR
// placeunitarea ( ruhsoldb , rusreinf0 , false ) ;
13840: LD_EXP 47
13844: PPUSH
13845: LD_INT 6
13847: PPUSH
13848: LD_INT 0
13850: PPUSH
13851: CALL_OW 49
// case difficulty of 1 :
13855: LD_OWVAR 67
13859: PUSH
13860: LD_INT 1
13862: DOUBLE
13863: EQUAL
13864: IFTRUE 13868
13866: GO 13881
13868: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
13869: LD_INT 1
13871: PPUSH
13872: LD_INT 2
13874: PPUSH
13875: CALL_OW 381
13879: GO 13924
13881: LD_INT 2
13883: DOUBLE
13884: EQUAL
13885: IFTRUE 13889
13887: GO 13902
13889: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
13890: LD_INT 1
13892: PPUSH
13893: LD_INT 3
13895: PPUSH
13896: CALL_OW 381
13900: GO 13924
13902: LD_INT 3
13904: DOUBLE
13905: EQUAL
13906: IFTRUE 13910
13908: GO 13923
13910: POP
// preparesoldier ( sex_male , 3 ) ; end ;
13911: LD_INT 1
13913: PPUSH
13914: LD_INT 3
13916: PPUSH
13917: CALL_OW 381
13921: GO 13924
13923: POP
// ruhsoldc = createhuman ;
13924: LD_ADDR_EXP 48
13928: PUSH
13929: CALL_OW 44
13933: ST_TO_ADDR
// placeunitarea ( ruhsoldc , rusreinf0 , false ) ;
13934: LD_EXP 48
13938: PPUSH
13939: LD_INT 6
13941: PPUSH
13942: LD_INT 0
13944: PPUSH
13945: CALL_OW 49
// case difficulty of 1 :
13949: LD_OWVAR 67
13953: PUSH
13954: LD_INT 1
13956: DOUBLE
13957: EQUAL
13958: IFTRUE 13962
13960: GO 13975
13962: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
13963: LD_INT 1
13965: PPUSH
13966: LD_INT 2
13968: PPUSH
13969: CALL_OW 381
13973: GO 14018
13975: LD_INT 2
13977: DOUBLE
13978: EQUAL
13979: IFTRUE 13983
13981: GO 13996
13983: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
13984: LD_INT 1
13986: PPUSH
13987: LD_INT 3
13989: PPUSH
13990: CALL_OW 381
13994: GO 14018
13996: LD_INT 3
13998: DOUBLE
13999: EQUAL
14000: IFTRUE 14004
14002: GO 14017
14004: POP
// preparesoldier ( sex_male , 4 ) ; end ;
14005: LD_INT 1
14007: PPUSH
14008: LD_INT 4
14010: PPUSH
14011: CALL_OW 381
14015: GO 14018
14017: POP
// ruhsoldd = createhuman ;
14018: LD_ADDR_EXP 49
14022: PUSH
14023: CALL_OW 44
14027: ST_TO_ADDR
// placeunitarea ( ruhsoldd , rusreinf0 , false ) ;
14028: LD_EXP 49
14032: PPUSH
14033: LD_INT 6
14035: PPUSH
14036: LD_INT 0
14038: PPUSH
14039: CALL_OW 49
// case difficulty of 1 :
14043: LD_OWVAR 67
14047: PUSH
14048: LD_INT 1
14050: DOUBLE
14051: EQUAL
14052: IFTRUE 14056
14054: GO 14069
14056: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
14057: LD_INT 1
14059: PPUSH
14060: LD_INT 2
14062: PPUSH
14063: CALL_OW 381
14067: GO 14112
14069: LD_INT 2
14071: DOUBLE
14072: EQUAL
14073: IFTRUE 14077
14075: GO 14090
14077: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
14078: LD_INT 1
14080: PPUSH
14081: LD_INT 3
14083: PPUSH
14084: CALL_OW 381
14088: GO 14112
14090: LD_INT 3
14092: DOUBLE
14093: EQUAL
14094: IFTRUE 14098
14096: GO 14111
14098: POP
// preparesoldier ( sex_male , 3 ) ; end ;
14099: LD_INT 1
14101: PPUSH
14102: LD_INT 3
14104: PPUSH
14105: CALL_OW 381
14109: GO 14112
14111: POP
// ruhsolde = createhuman ;
14112: LD_ADDR_EXP 50
14116: PUSH
14117: CALL_OW 44
14121: ST_TO_ADDR
// placeunitarea ( ruhsolde , rusreinf0 , false ) ;
14122: LD_EXP 50
14126: PPUSH
14127: LD_INT 6
14129: PPUSH
14130: LD_INT 0
14132: PPUSH
14133: CALL_OW 49
// comfree ( [ ruhsoldb , ruhsoldc , ruhsoldd , ruhsolde ] ) ;
14137: LD_EXP 47
14141: PUSH
14142: LD_EXP 48
14146: PUSH
14147: LD_EXP 49
14151: PUSH
14152: LD_EXP 50
14156: PUSH
14157: EMPTY
14158: LIST
14159: LIST
14160: LIST
14161: LIST
14162: PPUSH
14163: CALL_OW 139
// comagressivemove ( [ ruhsoldb , ruhsoldc , ruhsoldd , ruhsolde ] , 78 , 46 ) ;
14167: LD_EXP 47
14171: PUSH
14172: LD_EXP 48
14176: PUSH
14177: LD_EXP 49
14181: PUSH
14182: LD_EXP 50
14186: PUSH
14187: EMPTY
14188: LIST
14189: LIST
14190: LIST
14191: LIST
14192: PPUSH
14193: LD_INT 78
14195: PPUSH
14196: LD_INT 46
14198: PPUSH
14199: CALL_OW 114
// rusove2 = [ ] ;
14203: LD_ADDR_EXP 17
14207: PUSH
14208: EMPTY
14209: ST_TO_ADDR
// if isok ( ruv1 ) then
14210: LD_EXP 23
14214: PPUSH
14215: CALL_OW 302
14219: IFFALSE 14240
// rusove2 = rusove2 ^ [ ruv1 ] ;
14221: LD_ADDR_EXP 17
14225: PUSH
14226: LD_EXP 17
14230: PUSH
14231: LD_EXP 23
14235: PUSH
14236: EMPTY
14237: LIST
14238: ADD
14239: ST_TO_ADDR
// if isok ( ruv2 ) then
14240: LD_EXP 24
14244: PPUSH
14245: CALL_OW 302
14249: IFFALSE 14270
// rusove2 = rusove2 ^ [ ruv2 ] ;
14251: LD_ADDR_EXP 17
14255: PUSH
14256: LD_EXP 17
14260: PUSH
14261: LD_EXP 24
14265: PUSH
14266: EMPTY
14267: LIST
14268: ADD
14269: ST_TO_ADDR
// manage_prebytek ( 0 + rusove2 ) ;
14270: LD_INT 0
14272: PUSH
14273: LD_EXP 17
14277: PLUS
14278: PPUSH
14279: CALL 11171 0 1
// if isok ( ruhsold0 ) then
14283: LD_INT 8
14285: PPUSH
14286: CALL_OW 302
14290: IFFALSE 14309
// rusove2 = rusove2 ^ [ ruhsold0 ] ;
14292: LD_ADDR_EXP 17
14296: PUSH
14297: LD_EXP 17
14301: PUSH
14302: LD_INT 8
14304: PUSH
14305: EMPTY
14306: LIST
14307: ADD
14308: ST_TO_ADDR
// if isok ( ruhsold6 ) then
14309: LD_INT 27
14311: PPUSH
14312: CALL_OW 302
14316: IFFALSE 14335
// rusove2 = rusove2 ^ [ ruhsold6 ] ;
14318: LD_ADDR_EXP 17
14322: PUSH
14323: LD_EXP 17
14327: PUSH
14328: LD_INT 27
14330: PUSH
14331: EMPTY
14332: LIST
14333: ADD
14334: ST_TO_ADDR
// if isok ( ruhsold7 ) then
14335: LD_INT 28
14337: PPUSH
14338: CALL_OW 302
14342: IFFALSE 14361
// rusove2 = rusove2 ^ [ ruhsold7 ] ;
14344: LD_ADDR_EXP 17
14348: PUSH
14349: LD_EXP 17
14353: PUSH
14354: LD_INT 28
14356: PUSH
14357: EMPTY
14358: LIST
14359: ADD
14360: ST_TO_ADDR
// case difficulty of 1 :
14361: LD_OWVAR 67
14365: PUSH
14366: LD_INT 1
14368: DOUBLE
14369: EQUAL
14370: IFTRUE 14374
14372: GO 14387
14374: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
14375: LD_INT 1
14377: PPUSH
14378: LD_INT 2
14380: PPUSH
14381: CALL_OW 381
14385: GO 14430
14387: LD_INT 2
14389: DOUBLE
14390: EQUAL
14391: IFTRUE 14395
14393: GO 14408
14395: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
14396: LD_INT 1
14398: PPUSH
14399: LD_INT 3
14401: PPUSH
14402: CALL_OW 381
14406: GO 14430
14408: LD_INT 3
14410: DOUBLE
14411: EQUAL
14412: IFTRUE 14416
14414: GO 14429
14416: POP
// preparesoldier ( sex_male , 4 ) ; end ;
14417: LD_INT 1
14419: PPUSH
14420: LD_INT 4
14422: PPUSH
14423: CALL_OW 381
14427: GO 14430
14429: POP
// ruhsoldf = createhuman ;
14430: LD_ADDR_EXP 51
14434: PUSH
14435: CALL_OW 44
14439: ST_TO_ADDR
// placeunitarea ( ruhsoldf , rusreinf1 , false ) ;
14440: LD_EXP 51
14444: PPUSH
14445: LD_INT 7
14447: PPUSH
14448: LD_INT 0
14450: PPUSH
14451: CALL_OW 49
// case difficulty of 1 :
14455: LD_OWVAR 67
14459: PUSH
14460: LD_INT 1
14462: DOUBLE
14463: EQUAL
14464: IFTRUE 14468
14466: GO 14481
14468: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
14469: LD_INT 1
14471: PPUSH
14472: LD_INT 2
14474: PPUSH
14475: CALL_OW 381
14479: GO 14524
14481: LD_INT 2
14483: DOUBLE
14484: EQUAL
14485: IFTRUE 14489
14487: GO 14502
14489: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
14490: LD_INT 1
14492: PPUSH
14493: LD_INT 3
14495: PPUSH
14496: CALL_OW 381
14500: GO 14524
14502: LD_INT 3
14504: DOUBLE
14505: EQUAL
14506: IFTRUE 14510
14508: GO 14523
14510: POP
// preparesoldier ( sex_male , 3 ) ; end ;
14511: LD_INT 1
14513: PPUSH
14514: LD_INT 3
14516: PPUSH
14517: CALL_OW 381
14521: GO 14524
14523: POP
// ruhsoldg = createhuman ;
14524: LD_ADDR_EXP 52
14528: PUSH
14529: CALL_OW 44
14533: ST_TO_ADDR
// if difficulty = 3 then
14534: LD_OWVAR 67
14538: PUSH
14539: LD_INT 3
14541: EQUAL
14542: IFFALSE 14559
// placeunitarea ( ruhsoldg , rusreinf1 , false ) ;
14544: LD_EXP 52
14548: PPUSH
14549: LD_INT 7
14551: PPUSH
14552: LD_INT 0
14554: PPUSH
14555: CALL_OW 49
// case difficulty of 1 :
14559: LD_OWVAR 67
14563: PUSH
14564: LD_INT 1
14566: DOUBLE
14567: EQUAL
14568: IFTRUE 14572
14570: GO 14585
14572: POP
// preparesoldier ( sex_male , 2 ) ; 2 :
14573: LD_INT 1
14575: PPUSH
14576: LD_INT 2
14578: PPUSH
14579: CALL_OW 381
14583: GO 14628
14585: LD_INT 2
14587: DOUBLE
14588: EQUAL
14589: IFTRUE 14593
14591: GO 14606
14593: POP
// preparesoldier ( sex_male , 3 ) ; 3 :
14594: LD_INT 1
14596: PPUSH
14597: LD_INT 3
14599: PPUSH
14600: CALL_OW 381
14604: GO 14628
14606: LD_INT 3
14608: DOUBLE
14609: EQUAL
14610: IFTRUE 14614
14612: GO 14627
14614: POP
// preparesoldier ( sex_male , 4 ) ; end ;
14615: LD_INT 1
14617: PPUSH
14618: LD_INT 4
14620: PPUSH
14621: CALL_OW 381
14625: GO 14628
14627: POP
// ruhsoldh = createhuman ;
14628: LD_ADDR_EXP 53
14632: PUSH
14633: CALL_OW 44
14637: ST_TO_ADDR
// placeunitarea ( ruhsoldh , rusreinf1 , false ) ;
14638: LD_EXP 53
14642: PPUSH
14643: LD_INT 7
14645: PPUSH
14646: LD_INT 0
14648: PPUSH
14649: CALL_OW 49
// preparesoldier ( sex_male , 4 ) ;
14653: LD_INT 1
14655: PPUSH
14656: LD_INT 4
14658: PPUSH
14659: CALL_OW 381
// ruhsoldi = createhuman ;
14663: LD_ADDR_EXP 54
14667: PUSH
14668: CALL_OW 44
14672: ST_TO_ADDR
// placeunitarea ( ruhsoldi , rusreinf1 , false ) ;
14673: LD_EXP 54
14677: PPUSH
14678: LD_INT 7
14680: PPUSH
14681: LD_INT 0
14683: PPUSH
14684: CALL_OW 49
// rusove2 = rusove2 ^ [ ruhsoldf , ruhsoldg , ruhsoldh , ruhsoldi ] ;
14688: LD_ADDR_EXP 17
14692: PUSH
14693: LD_EXP 17
14697: PUSH
14698: LD_EXP 51
14702: PUSH
14703: LD_EXP 52
14707: PUSH
14708: LD_EXP 53
14712: PUSH
14713: LD_EXP 54
14717: PUSH
14718: EMPTY
14719: LIST
14720: LIST
14721: LIST
14722: LIST
14723: ADD
14724: ST_TO_ADDR
// comfree ( rusove2 ) ;
14725: LD_EXP 17
14729: PPUSH
14730: CALL_OW 139
// rusove0 = rusove0 union rusove2 ;
14734: LD_ADDR_EXP 31
14738: PUSH
14739: LD_EXP 31
14743: PUSH
14744: LD_EXP 17
14748: UNION
14749: ST_TO_ADDR
// comagressivemove ( rusove0 , 47 , 45 ) ;
14750: LD_EXP 31
14754: PPUSH
14755: LD_INT 47
14757: PPUSH
14758: LD_INT 45
14760: PPUSH
14761: CALL_OW 114
// end ;
14765: 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 ;
14766: LD_EXP 47
14770: PPUSH
14771: LD_INT 9
14773: PPUSH
14774: CALL_OW 308
14778: PUSH
14779: LD_EXP 48
14783: PPUSH
14784: LD_INT 9
14786: PPUSH
14787: CALL_OW 308
14791: OR
14792: PUSH
14793: LD_EXP 49
14797: PPUSH
14798: LD_INT 9
14800: PPUSH
14801: CALL_OW 308
14805: OR
14806: PUSH
14807: LD_EXP 50
14811: PPUSH
14812: LD_INT 9
14814: PPUSH
14815: CALL_OW 308
14819: OR
14820: IFFALSE 15112
14822: GO 14824
14824: DISABLE
14825: LD_INT 0
14827: PPUSH
// begin comagressivemove ( [ ruhsoldb , ruhsoldc , ruhsoldd , ruhsolde ] , 53 , 13 ) ;
14828: LD_EXP 47
14832: PUSH
14833: LD_EXP 48
14837: PUSH
14838: LD_EXP 49
14842: PUSH
14843: LD_EXP 50
14847: PUSH
14848: EMPTY
14849: LIST
14850: LIST
14851: LIST
14852: LIST
14853: PPUSH
14854: LD_INT 53
14856: PPUSH
14857: LD_INT 13
14859: PPUSH
14860: CALL_OW 114
// wait ( 0 0$7 ) ;
14864: LD_INT 245
14866: PPUSH
14867: CALL_OW 67
// tmp = filterunitsinarea ( ambase , [ [ f_side , amer ] , [ f_alive ] , [ f_type , unit_human ] ] ) ;
14871: LD_ADDR_VAR 0 1
14875: PUSH
14876: LD_INT 2
14878: PPUSH
14879: LD_INT 22
14881: PUSH
14882: LD_EXP 2
14886: PUSH
14887: EMPTY
14888: LIST
14889: LIST
14890: PUSH
14891: LD_INT 51
14893: PUSH
14894: EMPTY
14895: LIST
14896: PUSH
14897: LD_INT 21
14899: PUSH
14900: LD_INT 1
14902: PUSH
14903: EMPTY
14904: LIST
14905: LIST
14906: PUSH
14907: EMPTY
14908: LIST
14909: LIST
14910: LIST
14911: PPUSH
14912: CALL_OW 70
14916: ST_TO_ADDR
// if not tmp then
14917: LD_VAR 0 1
14921: NOT
14922: IFFALSE 14967
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_breastwork ] , [ f_occupied ] ] ) ;
14924: LD_ADDR_VAR 0 1
14928: PUSH
14929: LD_INT 22
14931: PUSH
14932: LD_EXP 2
14936: PUSH
14937: EMPTY
14938: LIST
14939: LIST
14940: PUSH
14941: LD_INT 30
14943: PUSH
14944: LD_INT 31
14946: PUSH
14947: EMPTY
14948: LIST
14949: LIST
14950: PUSH
14951: LD_INT 59
14953: PUSH
14954: EMPTY
14955: LIST
14956: PUSH
14957: EMPTY
14958: LIST
14959: LIST
14960: LIST
14961: PPUSH
14962: CALL_OW 69
14966: ST_TO_ADDR
// if not tmp then
14967: LD_VAR 0 1
14971: NOT
14972: IFFALSE 15017
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_vehicle ] , [ f_occupied ] ] ) ;
14974: LD_ADDR_VAR 0 1
14978: PUSH
14979: LD_INT 22
14981: PUSH
14982: LD_EXP 2
14986: PUSH
14987: EMPTY
14988: LIST
14989: LIST
14990: PUSH
14991: LD_INT 21
14993: PUSH
14994: LD_INT 2
14996: PUSH
14997: EMPTY
14998: LIST
14999: LIST
15000: PUSH
15001: LD_INT 59
15003: PUSH
15004: EMPTY
15005: LIST
15006: PUSH
15007: EMPTY
15008: LIST
15009: LIST
15010: LIST
15011: PPUSH
15012: CALL_OW 69
15016: ST_TO_ADDR
// if not tmp then
15017: LD_VAR 0 1
15021: NOT
15022: IFFALSE 15067
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
15024: LD_ADDR_VAR 0 1
15028: PUSH
15029: LD_INT 22
15031: PUSH
15032: LD_EXP 2
15036: PUSH
15037: EMPTY
15038: LIST
15039: LIST
15040: PUSH
15041: LD_INT 21
15043: PUSH
15044: LD_INT 1
15046: PUSH
15047: EMPTY
15048: LIST
15049: LIST
15050: PUSH
15051: LD_INT 50
15053: PUSH
15054: EMPTY
15055: LIST
15056: PUSH
15057: EMPTY
15058: LIST
15059: LIST
15060: LIST
15061: PPUSH
15062: CALL_OW 69
15066: ST_TO_ADDR
// if tmp then
15067: LD_VAR 0 1
15071: IFFALSE 15112
// comattackunit ( [ ruhsoldb , ruhsoldc , ruhsoldd , ruhsolde ] , tmp [ 1 ] ) ;
15073: LD_EXP 47
15077: PUSH
15078: LD_EXP 48
15082: PUSH
15083: LD_EXP 49
15087: PUSH
15088: LD_EXP 50
15092: PUSH
15093: EMPTY
15094: LIST
15095: LIST
15096: LIST
15097: LIST
15098: PPUSH
15099: LD_VAR 0 1
15103: PUSH
15104: LD_INT 1
15106: ARRAY
15107: PPUSH
15108: CALL_OW 115
// end ;
15112: PPOPN 1
15114: 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 ;
15115: LD_EXP 51
15119: PPUSH
15120: LD_INT 10
15122: PPUSH
15123: CALL_OW 308
15127: PUSH
15128: LD_EXP 52
15132: PPUSH
15133: LD_INT 10
15135: PPUSH
15136: CALL_OW 308
15140: OR
15141: PUSH
15142: LD_EXP 53
15146: PPUSH
15147: LD_INT 10
15149: PPUSH
15150: CALL_OW 308
15154: OR
15155: PUSH
15156: LD_EXP 54
15160: PPUSH
15161: LD_INT 10
15163: PPUSH
15164: CALL_OW 308
15168: OR
15169: IFFALSE 15462
15171: GO 15173
15173: DISABLE
15174: LD_INT 0
15176: PPUSH
// begin if not filterunitsinarea ( rubase1rng , [ [ f_side , rus ] , [ f_btype , b_depot ] ] ) then
15177: LD_INT 3
15179: PPUSH
15180: LD_INT 22
15182: PUSH
15183: LD_EXP 1
15187: PUSH
15188: EMPTY
15189: LIST
15190: LIST
15191: PUSH
15192: LD_INT 30
15194: PUSH
15195: LD_INT 0
15197: PUSH
15198: EMPTY
15199: LIST
15200: LIST
15201: PUSH
15202: EMPTY
15203: LIST
15204: LIST
15205: PPUSH
15206: CALL_OW 70
15210: NOT
15211: IFFALSE 15220
// wait ( 1 1$30 ) ;
15213: LD_INT 3150
15215: PPUSH
15216: CALL_OW 67
// comagressivemove ( rusove0 , 47 , 25 ) ;
15220: LD_EXP 31
15224: PPUSH
15225: LD_INT 47
15227: PPUSH
15228: LD_INT 25
15230: PPUSH
15231: CALL_OW 114
// wait ( 0 0$3 ) ;
15235: LD_INT 105
15237: PPUSH
15238: CALL_OW 67
// tmp = filterunitsinarea ( ambase , [ [ f_side , amer ] , [ f_alive ] , [ f_type , unit_human ] ] ) ;
15242: LD_ADDR_VAR 0 1
15246: PUSH
15247: LD_INT 2
15249: PPUSH
15250: LD_INT 22
15252: PUSH
15253: LD_EXP 2
15257: PUSH
15258: EMPTY
15259: LIST
15260: LIST
15261: PUSH
15262: LD_INT 51
15264: PUSH
15265: EMPTY
15266: LIST
15267: PUSH
15268: LD_INT 21
15270: PUSH
15271: LD_INT 1
15273: PUSH
15274: EMPTY
15275: LIST
15276: LIST
15277: PUSH
15278: EMPTY
15279: LIST
15280: LIST
15281: LIST
15282: PPUSH
15283: CALL_OW 70
15287: ST_TO_ADDR
// if not tmp then
15288: LD_VAR 0 1
15292: NOT
15293: IFFALSE 15338
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_btype , b_breastwork ] , [ f_occupied ] ] ) ;
15295: LD_ADDR_VAR 0 1
15299: PUSH
15300: LD_INT 22
15302: PUSH
15303: LD_EXP 2
15307: PUSH
15308: EMPTY
15309: LIST
15310: LIST
15311: PUSH
15312: LD_INT 30
15314: PUSH
15315: LD_INT 31
15317: PUSH
15318: EMPTY
15319: LIST
15320: LIST
15321: PUSH
15322: LD_INT 59
15324: PUSH
15325: EMPTY
15326: LIST
15327: PUSH
15328: EMPTY
15329: LIST
15330: LIST
15331: LIST
15332: PPUSH
15333: CALL_OW 69
15337: ST_TO_ADDR
// if not tmp then
15338: LD_VAR 0 1
15342: NOT
15343: IFFALSE 15388
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_vehicle ] , [ f_occupied ] ] ) ;
15345: LD_ADDR_VAR 0 1
15349: PUSH
15350: LD_INT 22
15352: PUSH
15353: LD_EXP 2
15357: PUSH
15358: EMPTY
15359: LIST
15360: LIST
15361: PUSH
15362: LD_INT 21
15364: PUSH
15365: LD_INT 2
15367: PUSH
15368: EMPTY
15369: LIST
15370: LIST
15371: PUSH
15372: LD_INT 59
15374: PUSH
15375: EMPTY
15376: LIST
15377: PUSH
15378: EMPTY
15379: LIST
15380: LIST
15381: LIST
15382: PPUSH
15383: CALL_OW 69
15387: ST_TO_ADDR
// if not tmp then
15388: LD_VAR 0 1
15392: NOT
15393: IFFALSE 15438
// tmp = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
15395: LD_ADDR_VAR 0 1
15399: PUSH
15400: LD_INT 22
15402: PUSH
15403: LD_EXP 2
15407: PUSH
15408: EMPTY
15409: LIST
15410: LIST
15411: PUSH
15412: LD_INT 21
15414: PUSH
15415: LD_INT 1
15417: PUSH
15418: EMPTY
15419: LIST
15420: LIST
15421: PUSH
15422: LD_INT 50
15424: PUSH
15425: EMPTY
15426: LIST
15427: PUSH
15428: EMPTY
15429: LIST
15430: LIST
15431: LIST
15432: PPUSH
15433: CALL_OW 69
15437: ST_TO_ADDR
// if tmp then
15438: LD_VAR 0 1
15442: IFFALSE 15462
// comattackunit ( rusove0 , tmp [ 1 ] ) ;
15444: LD_EXP 31
15448: PPUSH
15449: LD_VAR 0 1
15453: PUSH
15454: LD_INT 1
15456: ARRAY
15457: PPUSH
15458: CALL_OW 115
// end ;
15462: PPOPN 1
15464: END
// var zivi_amerikani_ ; function zivi_amerikani ; begin
15465: LD_INT 0
15467: PPUSH
// zivi_amerikani_ = filterunitsinarea ( ambase , [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
15468: LD_ADDR_LOC 47
15472: PUSH
15473: LD_INT 2
15475: PPUSH
15476: LD_INT 22
15478: PUSH
15479: LD_EXP 2
15483: PUSH
15484: EMPTY
15485: LIST
15486: LIST
15487: PUSH
15488: LD_INT 21
15490: PUSH
15491: LD_INT 1
15493: PUSH
15494: EMPTY
15495: LIST
15496: LIST
15497: PUSH
15498: LD_INT 50
15500: PUSH
15501: EMPTY
15502: LIST
15503: PUSH
15504: EMPTY
15505: LIST
15506: LIST
15507: LIST
15508: PPUSH
15509: CALL_OW 70
15513: ST_TO_ADDR
// if not zivi_amerikani_ then
15514: LD_LOC 47
15518: NOT
15519: IFFALSE 15564
// zivi_amerikani_ = filterallunits ( [ [ f_side , amer ] , [ f_type , unit_human ] , [ f_ok ] ] ) ;
15521: LD_ADDR_LOC 47
15525: PUSH
15526: LD_INT 22
15528: PUSH
15529: LD_EXP 2
15533: PUSH
15534: EMPTY
15535: LIST
15536: LIST
15537: PUSH
15538: LD_INT 21
15540: PUSH
15541: LD_INT 1
15543: PUSH
15544: EMPTY
15545: LIST
15546: LIST
15547: PUSH
15548: LD_INT 50
15550: PUSH
15551: EMPTY
15552: LIST
15553: PUSH
15554: EMPTY
15555: LIST
15556: LIST
15557: LIST
15558: PPUSH
15559: CALL_OW 69
15563: ST_TO_ADDR
// result = zivi_amerikani_ ;
15564: LD_ADDR_VAR 0 1
15568: PUSH
15569: LD_LOC 47
15573: ST_TO_ADDR
// end ;
15574: LD_VAR 0 1
15578: RET
// every 0 0$1 + 30 30$0 trigger zivi_amerikani do
15579: CALL 15465 0 0
15583: IFFALSE 15613
15585: GO 15587
15587: DISABLE
// begin if not retreat then
15588: LD_EXP 33
15592: NOT
15593: IFFALSE 15613
// comattackunit ( rusove0 , zivi_amerikani_ [ 1 ] ) ;
15595: LD_EXP 31
15599: PPUSH
15600: LD_LOC 47
15604: PUSH
15605: LD_INT 1
15607: ARRAY
15608: PPUSH
15609: CALL_OW 115
// end ; end_of_file
15613: END
// var rusove_mimo ; var pom_rumi ; function rusove_mimo_bazi ; begin
15614: LD_INT 0
15616: PPUSH
// pom_rumi = rusove diff filterunitsinarea ( rubase0 , [ [ f_type , unit_human ] , [ f_ok ] ] ) ;
15617: LD_ADDR_LOC 49
15621: PUSH
15622: LD_EXP 30
15626: PUSH
15627: LD_INT 1
15629: PPUSH
15630: LD_INT 21
15632: PUSH
15633: LD_INT 1
15635: PUSH
15636: EMPTY
15637: LIST
15638: LIST
15639: PUSH
15640: LD_INT 50
15642: PUSH
15643: EMPTY
15644: LIST
15645: PUSH
15646: EMPTY
15647: LIST
15648: LIST
15649: PPUSH
15650: CALL_OW 70
15654: DIFF
15655: ST_TO_ADDR
// rusove_mimo = pom_rumi diff filterunitsinarea ( rubase0 , [ [ f_type , unit_vehicle ] , [ f_ok ] ] ) ;
15656: LD_ADDR_LOC 48
15660: PUSH
15661: LD_LOC 49
15665: PUSH
15666: LD_INT 1
15668: PPUSH
15669: LD_INT 21
15671: PUSH
15672: LD_INT 2
15674: PUSH
15675: EMPTY
15676: LIST
15677: LIST
15678: PUSH
15679: LD_INT 50
15681: PUSH
15682: EMPTY
15683: LIST
15684: PUSH
15685: EMPTY
15686: LIST
15687: LIST
15688: PPUSH
15689: CALL_OW 70
15693: DIFF
15694: ST_TO_ADDR
// result = rusove_mimo ;
15695: LD_ADDR_VAR 0 1
15699: PUSH
15700: LD_LOC 48
15704: ST_TO_ADDR
// end ;
15705: LD_VAR 0 1
15709: RET
// every 0 0$1 trigger rusove_mimo_bazi do
15710: CALL 15614 0 0
15714: IFFALSE 15737
15716: GO 15718
15718: DISABLE
// begin if retreat then
15719: LD_EXP 33
15723: IFFALSE 15727
// exit ;
15725: GO 15737
// comreturn ( rusove_mimo ) ;
15727: LD_LOC 48
15731: PPUSH
15732: CALL_OW 144
// enable ;
15736: ENABLE
// end ;
15737: END
// var healeri_mimo ; function healeri_mimo_rb ; begin
15738: LD_INT 0
15740: PPUSH
// healeri_mimo = healeri diff filterunitsinarea ( repairbay , [ [ f_type , unit_human ] , [ f_ok ] ] ) ;
15741: LD_ADDR_LOC 50
15745: PUSH
15746: LD_EXP 32
15750: PUSH
15751: LD_INT 12
15753: PPUSH
15754: LD_INT 21
15756: PUSH
15757: LD_INT 1
15759: PUSH
15760: EMPTY
15761: LIST
15762: LIST
15763: PUSH
15764: LD_INT 50
15766: PUSH
15767: EMPTY
15768: LIST
15769: PUSH
15770: EMPTY
15771: LIST
15772: LIST
15773: PPUSH
15774: CALL_OW 70
15778: DIFF
15779: ST_TO_ADDR
// result = healeri_mimo ;
15780: LD_ADDR_VAR 0 1
15784: PUSH
15785: LD_LOC 50
15789: ST_TO_ADDR
// end ;
15790: LD_VAR 0 1
15794: RET
// every 0 0$0.9 trigger healeri_mimo_rb do
15795: CALL 15738 0 0
15799: IFFALSE 15828
15801: GO 15803
15803: DISABLE
// begin if retreat then
15804: LD_EXP 33
15808: IFFALSE 15812
// exit ;
15810: GO 15828
// commovexy ( healeri_mimo , 85 , 97 ) ;
15812: LD_LOC 50
15816: PPUSH
15817: LD_INT 85
15819: PPUSH
15820: LD_INT 97
15822: PPUSH
15823: CALL_OW 111
// enable ;
15827: ENABLE
// end ;
15828: END
// var poskoz_ ; var kn_ ; every 0 0$0.7 do
15829: GO 15831
15831: DISABLE
// begin if retreat then
15832: LD_EXP 33
15836: IFFALSE 15840
// exit ;
15838: GO 16050
// poskoz_ = unitfilter ( rusove0 , [ [ f_type , unit_vehicle ] ] ) ;
15840: LD_ADDR_LOC 51
15844: PUSH
15845: LD_EXP 31
15849: PPUSH
15850: LD_INT 21
15852: PUSH
15853: LD_INT 2
15855: PUSH
15856: EMPTY
15857: LIST
15858: LIST
15859: PUSH
15860: EMPTY
15861: LIST
15862: PPUSH
15863: CALL_OW 72
15867: ST_TO_ADDR
// for kn_ in poskoz_ do
15868: LD_ADDR_LOC 52
15872: PUSH
15873: LD_LOC 51
15877: PUSH
15878: FOR_IN
15879: IFFALSE 15935
// begin if getlives ( kn_ ) <= hr_auta then
15881: LD_LOC 52
15885: PPUSH
15886: CALL_OW 256
15890: PUSH
15891: LD_EXP 37
15895: LESSEQUAL
15896: IFFALSE 15933
// begin rusove0 = rusove0 diff kn_ ;
15898: LD_ADDR_EXP 31
15902: PUSH
15903: LD_EXP 31
15907: PUSH
15908: LD_LOC 52
15912: DIFF
15913: ST_TO_ADDR
// poskoz = poskoz ^ [ kn_ ] ;
15914: LD_ADDR_EXP 34
15918: PUSH
15919: LD_EXP 34
15923: PUSH
15924: LD_LOC 52
15928: PUSH
15929: EMPTY
15930: LIST
15931: ADD
15932: ST_TO_ADDR
// end ; end ;
15933: GO 15878
15935: POP
15936: POP
// poskoz_ = unitfilter ( rusove0 , [ [ f_type , unit_human ] ] ) ;
15937: LD_ADDR_LOC 51
15941: PUSH
15942: LD_EXP 31
15946: PPUSH
15947: LD_INT 21
15949: PUSH
15950: LD_INT 1
15952: PUSH
15953: EMPTY
15954: LIST
15955: LIST
15956: PUSH
15957: EMPTY
15958: LIST
15959: PPUSH
15960: CALL_OW 72
15964: ST_TO_ADDR
// for kn_ in poskoz_ do
15965: LD_ADDR_LOC 52
15969: PUSH
15970: LD_LOC 51
15974: PUSH
15975: FOR_IN
15976: IFFALSE 16032
// begin if getlives ( kn_ ) <= hr_lidi then
15978: LD_LOC 52
15982: PPUSH
15983: CALL_OW 256
15987: PUSH
15988: LD_EXP 36
15992: LESSEQUAL
15993: IFFALSE 16030
// begin rusove0 = rusove0 diff kn_ ;
15995: LD_ADDR_EXP 31
15999: PUSH
16000: LD_EXP 31
16004: PUSH
16005: LD_LOC 52
16009: DIFF
16010: ST_TO_ADDR
// poskoz = poskoz ^ [ kn_ ] ;
16011: LD_ADDR_EXP 34
16015: PUSH
16016: LD_EXP 34
16020: PUSH
16021: LD_LOC 52
16025: PUSH
16026: EMPTY
16027: LIST
16028: ADD
16029: ST_TO_ADDR
// end ; end ;
16030: GO 15975
16032: POP
16033: POP
// commovexy ( poskoz , 80 , 96 ) ;
16034: LD_EXP 34
16038: PPUSH
16039: LD_INT 80
16041: PPUSH
16042: LD_INT 96
16044: PPUSH
16045: CALL_OW 111
// enable ;
16049: ENABLE
// end ;
16050: END
// var pom_rupo ; var driver ; var kn__ ; every 0 0$1.5 do var p95 , p96 , poskpom ;
16051: GO 16053
16053: DISABLE
16054: LD_INT 0
16056: PPUSH
16057: PPUSH
16058: PPUSH
// begin if retreat then
16059: LD_EXP 33
16063: IFFALSE 16067
// exit ;
16065: GO 16685
// poskpom = poskoz ;
16067: LD_ADDR_VAR 0 3
16071: PUSH
16072: LD_EXP 34
16076: ST_TO_ADDR
// poskoz = [ ] ;
16077: LD_ADDR_EXP 34
16081: PUSH
16082: EMPTY
16083: ST_TO_ADDR
// for p95 in poskpom do
16084: LD_ADDR_VAR 0 1
16088: PUSH
16089: LD_VAR 0 3
16093: PUSH
16094: FOR_IN
16095: IFFALSE 16129
// if islive ( p95 ) then
16097: LD_VAR 0 1
16101: PPUSH
16102: CALL_OW 300
16106: IFFALSE 16127
// poskoz = poskoz ^ [ p95 ] ;
16108: LD_ADDR_EXP 34
16112: PUSH
16113: LD_EXP 34
16117: PUSH
16118: LD_VAR 0 1
16122: PUSH
16123: EMPTY
16124: LIST
16125: ADD
16126: ST_TO_ADDR
16127: GO 16094
16129: POP
16130: POP
// pom_rupo = prebytek isect filterunitsinarea ( repairbay , [ [ f_side , rus ] , [ f_type , unit_vehicle ] ] ) ;
16131: LD_ADDR_LOC 53
16135: PUSH
16136: LD_EXP 40
16140: PUSH
16141: LD_INT 12
16143: PPUSH
16144: LD_INT 22
16146: PUSH
16147: LD_EXP 1
16151: PUSH
16152: EMPTY
16153: LIST
16154: LIST
16155: PUSH
16156: LD_INT 21
16158: PUSH
16159: LD_INT 2
16161: PUSH
16162: EMPTY
16163: LIST
16164: LIST
16165: PUSH
16166: EMPTY
16167: LIST
16168: LIST
16169: PPUSH
16170: CALL_OW 70
16174: ISECT
16175: ST_TO_ADDR
// if ( 0 + prebytek ) > mpard then
16176: LD_INT 0
16178: PUSH
16179: LD_EXP 40
16183: PLUS
16184: PUSH
16185: LD_EXP 39
16189: GREATER
16190: IFFALSE 16291
// begin if ( 0 + prebytek - mpard ) >= ( 0 + pom_rupo ) then
16192: LD_INT 0
16194: PUSH
16195: LD_EXP 40
16199: PLUS
16200: PUSH
16201: LD_EXP 39
16205: MINUS
16206: PUSH
16207: LD_INT 0
16209: PUSH
16210: LD_LOC 53
16214: PLUS
16215: GREATEREQUAL
16216: IFFALSE 16234
// p96 = ( 0 + pom_rupo ) else
16218: LD_ADDR_VAR 0 2
16222: PUSH
16223: LD_INT 0
16225: PUSH
16226: LD_LOC 53
16230: PLUS
16231: ST_TO_ADDR
16232: GO 16254
// p96 = ( 0 + prebytek - mpard ) ;
16234: LD_ADDR_VAR 0 2
16238: PUSH
16239: LD_INT 0
16241: PUSH
16242: LD_EXP 40
16246: PLUS
16247: PUSH
16248: LD_EXP 39
16252: MINUS
16253: ST_TO_ADDR
// for p95 = 1 to p96 do
16254: LD_ADDR_VAR 0 1
16258: PUSH
16259: DOUBLE
16260: LD_INT 1
16262: DEC
16263: ST_TO_ADDR
16264: LD_VAR 0 2
16268: PUSH
16269: FOR_TO
16270: IFFALSE 16289
// destroyunit ( pom_rupo [ p95 ] ) ;
16272: LD_LOC 53
16276: PUSH
16277: LD_VAR 0 1
16281: ARRAY
16282: PPUSH
16283: CALL_OW 65
16287: GO 16269
16289: POP
16290: POP
// end ; pom_rupo = filterunitsinarea ( repairbay , [ [ f_side , rus ] , [ f_type , unit_vehicle ] ] ) isect poskoz ;
16291: LD_ADDR_LOC 53
16295: PUSH
16296: LD_INT 12
16298: PPUSH
16299: LD_INT 22
16301: PUSH
16302: LD_EXP 1
16306: PUSH
16307: EMPTY
16308: LIST
16309: LIST
16310: PUSH
16311: LD_INT 21
16313: PUSH
16314: LD_INT 2
16316: PUSH
16317: EMPTY
16318: LIST
16319: LIST
16320: PUSH
16321: EMPTY
16322: LIST
16323: LIST
16324: PPUSH
16325: CALL_OW 70
16329: PUSH
16330: LD_EXP 34
16334: ISECT
16335: ST_TO_ADDR
// for kn__ in pom_rupo do
16336: LD_ADDR_LOC 55
16340: PUSH
16341: LD_LOC 53
16345: PUSH
16346: FOR_IN
16347: IFFALSE 16484
// begin driver = isdrivenby ( kn__ ) ;
16349: LD_ADDR_LOC 54
16353: PUSH
16354: LD_LOC 55
16358: PPUSH
16359: CALL_OW 311
16363: ST_TO_ADDR
// comhold ( driver ) ;
16364: LD_LOC 54
16368: PPUSH
16369: CALL_OW 140
// setfuel ( kn__ , 100 ) ;
16373: LD_LOC 55
16377: PPUSH
16378: LD_INT 100
16380: PPUSH
16381: CALL_OW 240
// comexitvehicle ( kn__ ) ;
16385: LD_LOC 55
16389: PPUSH
16390: CALL_OW 121
// wait ( 0 0$0.5 ) ;
16394: LD_INT 18
16396: PPUSH
16397: CALL_OW 67
// addcomrepairvehicle ( [ driver ] , kn__ ) ;
16401: LD_LOC 54
16405: PUSH
16406: EMPTY
16407: LIST
16408: PPUSH
16409: LD_LOC 55
16413: PPUSH
16414: CALL_OW 189
// addcommoveunit ( [ driver ] , kn__ ) ;
16418: LD_LOC 54
16422: PUSH
16423: EMPTY
16424: LIST
16425: PPUSH
16426: LD_LOC 55
16430: PPUSH
16431: CALL_OW 172
// addcomfree ( driver ) ;
16435: LD_LOC 54
16439: PPUSH
16440: CALL_OW 199
// poskoz = poskoz diff [ kn__ ] ;
16444: LD_ADDR_EXP 34
16448: PUSH
16449: LD_EXP 34
16453: PUSH
16454: LD_LOC 55
16458: PUSH
16459: EMPTY
16460: LIST
16461: DIFF
16462: ST_TO_ADDR
// rusove0 = rusove0 ^ [ kn__ ] ;
16463: LD_ADDR_EXP 31
16467: PUSH
16468: LD_EXP 31
16472: PUSH
16473: LD_LOC 55
16477: PUSH
16478: EMPTY
16479: LIST
16480: ADD
16481: ST_TO_ADDR
// end ;
16482: GO 16346
16484: POP
16485: POP
// pom_rupo = filterunitsinarea ( repairbay , [ [ f_side , rus ] , [ f_type , unit_human ] ] ) isect poskoz ;
16486: LD_ADDR_LOC 53
16490: PUSH
16491: LD_INT 12
16493: PPUSH
16494: LD_INT 22
16496: PUSH
16497: LD_EXP 1
16501: PUSH
16502: EMPTY
16503: LIST
16504: LIST
16505: PUSH
16506: LD_INT 21
16508: PUSH
16509: LD_INT 1
16511: PUSH
16512: EMPTY
16513: LIST
16514: LIST
16515: PUSH
16516: EMPTY
16517: LIST
16518: LIST
16519: PPUSH
16520: CALL_OW 70
16524: PUSH
16525: LD_EXP 34
16529: ISECT
16530: ST_TO_ADDR
// for kn__ in pom_rupo do
16531: LD_ADDR_LOC 55
16535: PUSH
16536: LD_LOC 53
16540: PUSH
16541: FOR_IN
16542: IFFALSE 16584
// begin poskoz = poskoz diff [ kn__ ] ;
16544: LD_ADDR_EXP 34
16548: PUSH
16549: LD_EXP 34
16553: PUSH
16554: LD_LOC 55
16558: PUSH
16559: EMPTY
16560: LIST
16561: DIFF
16562: ST_TO_ADDR
// pacienti = pacienti ^ [ kn__ ] ;
16563: LD_ADDR_EXP 35
16567: PUSH
16568: LD_EXP 35
16572: PUSH
16573: LD_LOC 55
16577: PUSH
16578: EMPTY
16579: LIST
16580: ADD
16581: ST_TO_ADDR
// end ;
16582: GO 16541
16584: POP
16585: POP
// for kn__ in pacienti do
16586: LD_ADDR_LOC 55
16590: PUSH
16591: LD_EXP 35
16595: PUSH
16596: FOR_IN
16597: IFFALSE 16654
// begin if getlives ( kn__ ) >= 950 then
16599: LD_LOC 55
16603: PPUSH
16604: CALL_OW 256
16608: PUSH
16609: LD_INT 950
16611: GREATEREQUAL
16612: IFFALSE 16652
// begin pacienti = pacienti diff [ kn__ ] ;
16614: LD_ADDR_EXP 35
16618: PUSH
16619: LD_EXP 35
16623: PUSH
16624: LD_LOC 55
16628: PUSH
16629: EMPTY
16630: LIST
16631: DIFF
16632: ST_TO_ADDR
// rusove0 = rusove0 ^ [ kn__ ] ;
16633: LD_ADDR_EXP 31
16637: PUSH
16638: LD_EXP 31
16642: PUSH
16643: LD_LOC 55
16647: PUSH
16648: EMPTY
16649: LIST
16650: ADD
16651: ST_TO_ADDR
// end ; end ;
16652: GO 16596
16654: POP
16655: POP
// if pacienti >= 1 then
16656: LD_EXP 35
16660: PUSH
16661: LD_INT 1
16663: GREATEREQUAL
16664: IFFALSE 16684
// comheal ( healeri , pacienti [ 1 ] ) ;
16666: LD_EXP 32
16670: PPUSH
16671: LD_EXP 35
16675: PUSH
16676: LD_INT 1
16678: ARRAY
16679: PPUSH
16680: CALL_OW 128
// enable ;
16684: ENABLE
// end ;
16685: PPOPN 3
16687: END
// on vehiclecaptured ( newid , oldid , origside , cptrdby ) do if origside = rus then
16688: LD_VAR 0 3
16692: PUSH
16693: LD_EXP 1
16697: EQUAL
16698: IFFALSE 16738
// begin rusove0 = rusove0 diff [ oldid ] ;
16700: LD_ADDR_EXP 31
16704: PUSH
16705: LD_EXP 31
16709: PUSH
16710: LD_VAR 0 2
16714: PUSH
16715: EMPTY
16716: LIST
16717: DIFF
16718: ST_TO_ADDR
// poskoz = poskoz diff [ oldid ] ;
16719: LD_ADDR_EXP 34
16723: PUSH
16724: LD_EXP 34
16728: PUSH
16729: LD_VAR 0 2
16733: PUSH
16734: EMPTY
16735: LIST
16736: DIFF
16737: ST_TO_ADDR
// end ;
16738: PPOPN 4
16740: END
