// export Alex ; export Hayes , Americans ; export CratesGathered ; function PrepareOurs ; var i , h ; begin
   0: LD_INT 0
   2: PPUSH
   3: PPUSH
   4: PPUSH
// uc_side = 1 ;
   5: LD_ADDR_OWVAR 20
   9: PUSH
  10: LD_INT 1
  12: ST_TO_ADDR
// uc_nation = 1 ;
  13: LD_ADDR_OWVAR 21
  17: PUSH
  18: LD_INT 1
  20: ST_TO_ADDR
// Alex = LoadCharacter ( Alex , 0 , 0 ) ;
  21: LD_ADDR_EXP 1
  25: PUSH
  26: LD_STRING Alex
  28: PPUSH
  29: LD_INT 0
  31: PPUSH
  32: LD_INT 0
  34: PPUSH
  35: CALL_OW 527
  39: ST_TO_ADDR
// PlaceUnitXY ( Alex , 150 , 34 , false ) ;
  40: LD_EXP 1
  44: PPUSH
  45: LD_INT 150
  47: PPUSH
  48: LD_INT 34
  50: PPUSH
  51: LD_INT 0
  53: PPUSH
  54: CALL_OW 48
// uc_side = 4 ;
  58: LD_ADDR_OWVAR 20
  62: PUSH
  63: LD_INT 4
  65: ST_TO_ADDR
// Hayes = NewCharacter ( Hayes ) ;
  66: LD_ADDR_EXP 2
  70: PUSH
  71: LD_STRING Hayes
  73: PPUSH
  74: CALL_OW 25
  78: ST_TO_ADDR
// SetBName ( AmDep , epsilon ) ;
  79: LD_INT 1
  81: PPUSH
  82: LD_STRING epsilon
  84: PPUSH
  85: CALL_OW 500
// RevealFogArea ( 1 , RevealArea ) ;
  89: LD_INT 1
  91: PPUSH
  92: LD_INT 2
  94: PPUSH
  95: CALL_OW 332
// CratesGathered = LoadVariable ( CratesGathered , 0 ) ;
  99: LD_ADDR_EXP 4
 103: PUSH
 104: LD_STRING CratesGathered
 106: PPUSH
 107: LD_INT 0
 109: PPUSH
 110: CALL_OW 30
 114: ST_TO_ADDR
// SetResourceType ( GetBase ( AmDep ) , mat_cans , CratesGathered ) ;
 115: LD_INT 1
 117: PPUSH
 118: CALL_OW 274
 122: PPUSH
 123: LD_INT 1
 125: PPUSH
 126: LD_EXP 4
 130: PPUSH
 131: CALL_OW 277
// InitHc ;
 135: CALL_OW 19
// for i = 1 to 2 do
 139: LD_ADDR_VAR 0 2
 143: PUSH
 144: DOUBLE
 145: LD_INT 1
 147: DEC
 148: ST_TO_ADDR
 149: LD_INT 2
 151: PUSH
 152: FOR_TO
 153: IFFALSE 238
// begin PrepareHuman ( false , [ class_soldier , class_scientistic ] [ i ] , Rand ( 1 , 2 ) ) ;
 155: LD_INT 0
 157: PPUSH
 158: LD_INT 1
 160: PUSH
 161: LD_INT 4
 163: PUSH
 164: EMPTY
 165: LIST
 166: LIST
 167: PUSH
 168: LD_VAR 0 2
 172: ARRAY
 173: PPUSH
 174: LD_INT 1
 176: PPUSH
 177: LD_INT 2
 179: PPUSH
 180: CALL_OW 12
 184: PPUSH
 185: CALL_OW 380
// h = CreateHuman ;
 189: LD_ADDR_VAR 0 3
 193: PUSH
 194: CALL_OW 44
 198: ST_TO_ADDR
// PlaceUnitXYR ( h , 142 , 51 , 2 , false ) ;
 199: LD_VAR 0 3
 203: PPUSH
 204: LD_INT 142
 206: PPUSH
 207: LD_INT 51
 209: PPUSH
 210: LD_INT 2
 212: PPUSH
 213: LD_INT 0
 215: PPUSH
 216: CALL_OW 50
// Americans = Americans ^ h ;
 220: LD_ADDR_EXP 3
 224: PUSH
 225: LD_EXP 3
 229: PUSH
 230: LD_VAR 0 3
 234: ADD
 235: ST_TO_ADDR
// end ;
 236: GO 152
 238: POP
 239: POP
// end ;
 240: LD_VAR 0 1
 244: RET
// starting begin PrepareOurs ;
 245: CALL 0 0 0
// disable ( 01 ) ;
 249: LD_INT 1
 251: DISABLE_MARKED
// disable ( 02 ) ;
 252: LD_INT 2
 254: DISABLE_MARKED
// RandomizeAll ;
 255: CALL_OW 11
// InGameOn ;
 259: CALL_OW 8
// CenterOnUnits ( Alex ) ;
 263: LD_EXP 1
 267: PPUSH
 268: CALL_OW 85
// Wait ( 0 0$1 ) ;
 272: LD_INT 35
 274: PPUSH
 275: CALL_OW 67
// SayRadio ( Hayes , di-h-1 ) ;
 279: LD_EXP 2
 283: PPUSH
 284: LD_STRING di-h-1
 286: PPUSH
 287: CALL_OW 94
// Say ( Alex , di-a-1 ) ;
 291: LD_EXP 1
 295: PPUSH
 296: LD_STRING di-a-1
 298: PPUSH
 299: CALL_OW 88
// SayRadio ( Hayes , di-h-2 ) ;
 303: LD_EXP 2
 307: PPUSH
 308: LD_STRING di-h-2
 310: PPUSH
 311: CALL_OW 94
// SayRadio ( Hayes , di-h-3 ) ;
 315: LD_EXP 2
 319: PPUSH
 320: LD_STRING di-h-3
 322: PPUSH
 323: CALL_OW 94
// Say ( Alex , di-a-2 ) ;
 327: LD_EXP 1
 331: PPUSH
 332: LD_STRING di-a-2
 334: PPUSH
 335: CALL_OW 88
// InGameOff ;
 339: CALL_OW 9
// SaveForQuickRestart ;
 343: CALL_OW 22
// ChangeMissionObjectives ( OHelp ) ;
 347: LD_STRING OHelp
 349: PPUSH
 350: CALL_OW 337
// Query ( Q1 ) ;
 354: LD_STRING Q1
 356: PPUSH
 357: CALL_OW 97
// ComMoveXY ( Americans , 151 , 36 ) ;
 361: LD_EXP 3
 365: PPUSH
 366: LD_INT 151
 368: PPUSH
 369: LD_INT 36
 371: PPUSH
 372: CALL_OW 111
// end ; end_of_file
 376: END
// export NewArrivals , Saved ; every 0 0$1 do var i , h , c ; var pos , l , t , tlimit ;
 377: GO 379
 379: DISABLE
 380: LD_INT 0
 382: PPUSH
 383: PPUSH
 384: PPUSH
 385: PPUSH
 386: PPUSH
 387: PPUSH
 388: PPUSH
// begin Wait ( 1 1$0 ) ;
 389: LD_INT 2100
 391: PPUSH
 392: CALL_OW 67
// tlimit = [ 4 4$20 , 3 3$40 , 3 3$00 ] [ difficulty ] ;
 396: LD_ADDR_VAR 0 7
 400: PUSH
 401: LD_INT 9100
 403: PUSH
 404: LD_INT 7700
 406: PUSH
 407: LD_INT 6300
 409: PUSH
 410: EMPTY
 411: LIST
 412: LIST
 413: LIST
 414: PUSH
 415: LD_OWVAR 67
 419: ARRAY
 420: ST_TO_ADDR
// for i = 1 to 3 do
 421: LD_ADDR_VAR 0 1
 425: PUSH
 426: DOUBLE
 427: LD_INT 1
 429: DEC
 430: ST_TO_ADDR
 431: LD_INT 3
 433: PUSH
 434: FOR_TO
 435: IFFALSE 1282
// begin pos = Rand ( 1 , 5 ) ;
 437: LD_ADDR_VAR 0 4
 441: PUSH
 442: LD_INT 1
 444: PPUSH
 445: LD_INT 5
 447: PPUSH
 448: CALL_OW 12
 452: ST_TO_ADDR
// l = [ [ 175 , 15 ] , [ 231 , 134 ] , [ 166 , 128 ] , [ 114 , 136 ] , [ 38 , 55 ] ] [ pos ] ;
 453: LD_ADDR_VAR 0 5
 457: PUSH
 458: LD_INT 175
 460: PUSH
 461: LD_INT 15
 463: PUSH
 464: EMPTY
 465: LIST
 466: LIST
 467: PUSH
 468: LD_INT 231
 470: PUSH
 471: LD_INT 134
 473: PUSH
 474: EMPTY
 475: LIST
 476: LIST
 477: PUSH
 478: LD_INT 166
 480: PUSH
 481: LD_INT 128
 483: PUSH
 484: EMPTY
 485: LIST
 486: LIST
 487: PUSH
 488: LD_INT 114
 490: PUSH
 491: LD_INT 136
 493: PUSH
 494: EMPTY
 495: LIST
 496: LIST
 497: PUSH
 498: LD_INT 38
 500: PUSH
 501: LD_INT 55
 503: PUSH
 504: EMPTY
 505: LIST
 506: LIST
 507: PUSH
 508: EMPTY
 509: LIST
 510: LIST
 511: LIST
 512: LIST
 513: LIST
 514: PUSH
 515: LD_VAR 0 4
 519: ARRAY
 520: ST_TO_ADDR
// uc_side = 4 ;
 521: LD_ADDR_OWVAR 20
 525: PUSH
 526: LD_INT 4
 528: ST_TO_ADDR
// uc_nation = nation_american ;
 529: LD_ADDR_OWVAR 21
 533: PUSH
 534: LD_INT 1
 536: ST_TO_ADDR
// PrepareSoldier ( 0 , Rand ( 1 , 3 ) ) ;
 537: LD_INT 0
 539: PPUSH
 540: LD_INT 1
 542: PPUSH
 543: LD_INT 3
 545: PPUSH
 546: CALL_OW 12
 550: PPUSH
 551: CALL_OW 381
// h = CreateHuman ;
 555: LD_ADDR_VAR 0 2
 559: PUSH
 560: CALL_OW 44
 564: ST_TO_ADDR
// PlaceUnitXY ( h , l [ 1 ] , l [ 2 ] , true ) ;
 565: LD_VAR 0 2
 569: PPUSH
 570: LD_VAR 0 5
 574: PUSH
 575: LD_INT 1
 577: ARRAY
 578: PPUSH
 579: LD_VAR 0 5
 583: PUSH
 584: LD_INT 2
 586: ARRAY
 587: PPUSH
 588: LD_INT 1
 590: PPUSH
 591: CALL_OW 48
// Wait ( 0 0$2 ) ;
 595: LD_INT 70
 597: PPUSH
 598: CALL_OW 67
// DialogueOn ;
 602: CALL_OW 6
// SayRadio ( h , dl-s-1 ) ;
 606: LD_VAR 0 2
 610: PPUSH
 611: LD_STRING dl-s-1
 613: PPUSH
 614: CALL_OW 94
// Say ( Alex , [ dl-a-1 , dl-a-1a ] [ Rand ( 1 , 2 ) ] ) ;
 618: LD_EXP 1
 622: PPUSH
 623: LD_STRING dl-a-1
 625: PUSH
 626: LD_STRING dl-a-1a
 628: PUSH
 629: EMPTY
 630: LIST
 631: LIST
 632: PUSH
 633: LD_INT 1
 635: PPUSH
 636: LD_INT 2
 638: PPUSH
 639: CALL_OW 12
 643: ARRAY
 644: PPUSH
 645: CALL_OW 88
// case pos of 1 :
 649: LD_VAR 0 4
 653: PUSH
 654: LD_INT 1
 656: DOUBLE
 657: EQUAL
 658: IFTRUE 662
 660: GO 696
 662: POP
// SayRadio ( h , [ dl-pa-1 , dl-pa-2 ] [ Rand ( 1 , 2 ) ] ) ; 2 :
 663: LD_VAR 0 2
 667: PPUSH
 668: LD_STRING dl-pa-1
 670: PUSH
 671: LD_STRING dl-pa-2
 673: PUSH
 674: EMPTY
 675: LIST
 676: LIST
 677: PUSH
 678: LD_INT 1
 680: PPUSH
 681: LD_INT 2
 683: PPUSH
 684: CALL_OW 12
 688: ARRAY
 689: PPUSH
 690: CALL_OW 94
 694: GO 904
 696: LD_INT 2
 698: DOUBLE
 699: EQUAL
 700: IFTRUE 704
 702: GO 738
 704: POP
// SayRadio ( h , [ dl-pb-1 , dl-pb-2 ] [ Rand ( 1 , 2 ) ] ) ; 3 :
 705: LD_VAR 0 2
 709: PPUSH
 710: LD_STRING dl-pb-1
 712: PUSH
 713: LD_STRING dl-pb-2
 715: PUSH
 716: EMPTY
 717: LIST
 718: LIST
 719: PUSH
 720: LD_INT 1
 722: PPUSH
 723: LD_INT 2
 725: PPUSH
 726: CALL_OW 12
 730: ARRAY
 731: PPUSH
 732: CALL_OW 94
 736: GO 904
 738: LD_INT 3
 740: DOUBLE
 741: EQUAL
 742: IFTRUE 746
 744: GO 780
 746: POP
// SayRadio ( h , [ dl-pc-1 , dl-pc-2 ] [ Rand ( 1 , 2 ) ] ) ; 4 :
 747: LD_VAR 0 2
 751: PPUSH
 752: LD_STRING dl-pc-1
 754: PUSH
 755: LD_STRING dl-pc-2
 757: PUSH
 758: EMPTY
 759: LIST
 760: LIST
 761: PUSH
 762: LD_INT 1
 764: PPUSH
 765: LD_INT 2
 767: PPUSH
 768: CALL_OW 12
 772: ARRAY
 773: PPUSH
 774: CALL_OW 94
 778: GO 904
 780: LD_INT 4
 782: DOUBLE
 783: EQUAL
 784: IFTRUE 788
 786: GO 822
 788: POP
// SayRadio ( h , [ dl-pd-1 , dl-pd-2 ] [ Rand ( 1 , 2 ) ] ) ; 5 :
 789: LD_VAR 0 2
 793: PPUSH
 794: LD_STRING dl-pd-1
 796: PUSH
 797: LD_STRING dl-pd-2
 799: PUSH
 800: EMPTY
 801: LIST
 802: LIST
 803: PUSH
 804: LD_INT 1
 806: PPUSH
 807: LD_INT 2
 809: PPUSH
 810: CALL_OW 12
 814: ARRAY
 815: PPUSH
 816: CALL_OW 94
 820: GO 904
 822: LD_INT 5
 824: DOUBLE
 825: EQUAL
 826: IFTRUE 830
 828: GO 903
 830: POP
// case Rand ( 1 , 2 ) of 1 :
 831: LD_INT 1
 833: PPUSH
 834: LD_INT 2
 836: PPUSH
 837: CALL_OW 12
 841: PUSH
 842: LD_INT 1
 844: DOUBLE
 845: EQUAL
 846: IFTRUE 850
 848: GO 865
 850: POP
// Say ( h , dl-pe-1 ) ; 2 :
 851: LD_VAR 0 2
 855: PPUSH
 856: LD_STRING dl-pe-1
 858: PPUSH
 859: CALL_OW 88
 863: GO 901
 865: LD_INT 2
 867: DOUBLE
 868: EQUAL
 869: IFTRUE 873
 871: GO 900
 873: POP
// begin Say ( h , dl-pe-2 ) ;
 874: LD_VAR 0 2
 878: PPUSH
 879: LD_STRING dl-pe-2
 881: PPUSH
 882: CALL_OW 88
// SetLives ( h , 400 ) ;
 886: LD_VAR 0 2
 890: PPUSH
 891: LD_INT 400
 893: PPUSH
 894: CALL_OW 234
// end ; end ; end ;
 898: GO 901
 900: POP
 901: GO 904
 903: POP
// Say ( Alex , dl-a-2 ) ;
 904: LD_EXP 1
 908: PPUSH
 909: LD_STRING dl-a-2
 911: PPUSH
 912: CALL_OW 88
// DialogueOff ;
 916: CALL_OW 7
// t = 0 0$0 ;
 920: LD_ADDR_VAR 0 6
 924: PUSH
 925: LD_INT 0
 927: ST_TO_ADDR
// repeat begin Wait ( 0 0$1 ) ;
 928: LD_INT 35
 930: PPUSH
 931: CALL_OW 67
// t = t + 0 0$1 ;
 935: LD_ADDR_VAR 0 6
 939: PUSH
 940: LD_VAR 0 6
 944: PUSH
 945: LD_INT 35
 947: PLUS
 948: ST_TO_ADDR
// end until See ( 1 , h ) or t = tlimit ;
 949: LD_INT 1
 951: PPUSH
 952: LD_VAR 0 2
 956: PPUSH
 957: CALL_OW 292
 961: PUSH
 962: LD_VAR 0 6
 966: PUSH
 967: LD_VAR 0 7
 971: EQUAL
 972: OR
 973: IFFALSE 928
// if See ( 1 , h ) then
 975: LD_INT 1
 977: PPUSH
 978: LD_VAR 0 2
 982: PPUSH
 983: CALL_OW 292
 987: IFFALSE 1176
// begin c = NearestUnitToUnit ( FilterAllUnits ( [ f_side , 1 ] ) , h ) ;
 989: LD_ADDR_VAR 0 3
 993: PUSH
 994: LD_INT 22
 996: PUSH
 997: LD_INT 1
 999: PUSH
1000: EMPTY
1001: LIST
1002: LIST
1003: PPUSH
1004: CALL_OW 69
1008: PPUSH
1009: LD_VAR 0 2
1013: PPUSH
1014: CALL_OW 74
1018: ST_TO_ADDR
// CenterOnUnits ( h ) ;
1019: LD_VAR 0 2
1023: PPUSH
1024: CALL_OW 85
// Say ( c , dl-c-1 ) ;
1028: LD_VAR 0 3
1032: PPUSH
1033: LD_STRING dl-c-1
1035: PPUSH
1036: CALL_OW 88
// repeat begin ComMoveXY ( h , GetX ( c ) , GetY ( c ) ) ;
1040: LD_VAR 0 2
1044: PPUSH
1045: LD_VAR 0 3
1049: PPUSH
1050: CALL_OW 250
1054: PPUSH
1055: LD_VAR 0 3
1059: PPUSH
1060: CALL_OW 251
1064: PPUSH
1065: CALL_OW 111
// Wait ( 0 0$2 ) ;
1069: LD_INT 70
1071: PPUSH
1072: CALL_OW 67
// end until IsInArea ( h , EpsilonArea ) ;
1076: LD_VAR 0 2
1080: PPUSH
1081: LD_INT 4
1083: PPUSH
1084: CALL_OW 308
1088: IFFALSE 1040
// if not GetSide ( AmArm ) = 4 then
1090: LD_INT 31
1092: PPUSH
1093: CALL_OW 255
1097: PUSH
1098: LD_INT 4
1100: EQUAL
1101: NOT
1102: IFFALSE 1114
// SetSide ( AmArm , 4 ) ;
1104: LD_INT 31
1106: PPUSH
1107: LD_INT 4
1109: PPUSH
1110: CALL_OW 235
// Wait ( 0 0$1 ) ;
1114: LD_INT 35
1116: PPUSH
1117: CALL_OW 67
// ComEnterUnit ( h , AmArm ) ;
1121: LD_VAR 0 2
1125: PPUSH
1126: LD_INT 31
1128: PPUSH
1129: CALL_OW 120
// PlaceSeeing ( GetX ( AmArm ) , GetY ( AmArm ) , 1 , - 8 ) ;
1133: LD_INT 31
1135: PPUSH
1136: CALL_OW 250
1140: PPUSH
1141: LD_INT 31
1143: PPUSH
1144: CALL_OW 251
1148: PPUSH
1149: LD_INT 1
1151: PPUSH
1152: LD_INT 8
1154: NEG
1155: PPUSH
1156: CALL_OW 330
// Saved = Saved + 1 ;
1160: LD_ADDR_EXP 6
1164: PUSH
1165: LD_EXP 6
1169: PUSH
1170: LD_INT 1
1172: PLUS
1173: ST_TO_ADDR
// end else
1174: GO 1251
// if t = tlimit then
1176: LD_VAR 0 6
1180: PUSH
1181: LD_VAR 0 7
1185: EQUAL
1186: IFFALSE 1251
// begin DialogueOn ;
1188: CALL_OW 6
// SayRadio ( h , [ dl-s-2 , dl-s-2a ] [ Rand ( 1 , 2 ) ] ) ;
1192: LD_VAR 0 2
1196: PPUSH
1197: LD_STRING dl-s-2
1199: PUSH
1200: LD_STRING dl-s-2a
1202: PUSH
1203: EMPTY
1204: LIST
1205: LIST
1206: PUSH
1207: LD_INT 1
1209: PPUSH
1210: LD_INT 2
1212: PPUSH
1213: CALL_OW 12
1217: ARRAY
1218: PPUSH
1219: CALL_OW 94
// SetLives ( h , 1 ) ;
1223: LD_VAR 0 2
1227: PPUSH
1228: LD_INT 1
1230: PPUSH
1231: CALL_OW 234
// Say ( Alex , dl-a-2 ) ;
1235: LD_EXP 1
1239: PPUSH
1240: LD_STRING dl-a-2
1242: PPUSH
1243: CALL_OW 88
// DialogueOff ;
1247: CALL_OW 7
// end ; NewArrivals = NewArrivals + 1 ;
1251: LD_ADDR_EXP 5
1255: PUSH
1256: LD_EXP 5
1260: PUSH
1261: LD_INT 1
1263: PLUS
1264: ST_TO_ADDR
// Wait ( Rand ( 0 0$30 , 1 1$0 ) ) ;
1265: LD_INT 1050
1267: PPUSH
1268: LD_INT 2100
1270: PPUSH
1271: CALL_OW 12
1275: PPUSH
1276: CALL_OW 67
// end ;
1280: GO 434
1282: POP
1283: POP
// end ;
1284: PPOPN 7
1286: END
// every 0 0$1 trigger See ( 1 , Americans [ 1 ] ) do
1287: LD_INT 1
1289: PPUSH
1290: LD_EXP 3
1294: PUSH
1295: LD_INT 1
1297: ARRAY
1298: PPUSH
1299: CALL_OW 292
1303: IFFALSE 1413
1305: GO 1307
1307: DISABLE
// begin DialogueOn ;
1308: CALL_OW 6
// CenterOnUnits ( [ Alex , Americans [ 1 ] ] ) ;
1312: LD_EXP 1
1316: PUSH
1317: LD_EXP 3
1321: PUSH
1322: LD_INT 1
1324: ARRAY
1325: PUSH
1326: EMPTY
1327: LIST
1328: LIST
1329: PPUSH
1330: CALL_OW 85
// DWait ( 0 0$0.5 ) ;
1334: LD_INT 18
1336: PPUSH
1337: CALL_OW 68
// Say ( Americans [ 1 ] , dh-s-1 ) ;
1341: LD_EXP 3
1345: PUSH
1346: LD_INT 1
1348: ARRAY
1349: PPUSH
1350: LD_STRING dh-s-1
1352: PPUSH
1353: CALL_OW 88
// Say ( Alex , dh-a-1 ) ;
1357: LD_EXP 1
1361: PPUSH
1362: LD_STRING dh-a-1
1364: PPUSH
1365: CALL_OW 88
// Say ( Americans [ 1 ] , dh-s-2 ) ;
1369: LD_EXP 3
1373: PUSH
1374: LD_INT 1
1376: ARRAY
1377: PPUSH
1378: LD_STRING dh-s-2
1380: PPUSH
1381: CALL_OW 88
// Say ( Alex , dh-a-2 ) ;
1385: LD_EXP 1
1389: PPUSH
1390: LD_STRING dh-a-2
1392: PPUSH
1393: CALL_OW 88
// SetSide ( Americans , 1 ) ;
1397: LD_EXP 3
1401: PPUSH
1402: LD_INT 1
1404: PPUSH
1405: CALL_OW 235
// DialogueOff ;
1409: CALL_OW 7
// end ;
1413: END
// every 0 0$1 trigger NewArrivals = 3 do
1414: LD_EXP 5
1418: PUSH
1419: LD_INT 3
1421: EQUAL
1422: IFFALSE 1595
1424: GO 1426
1426: DISABLE
// begin Wait ( 0 0$10 ) ;
1427: LD_INT 350
1429: PPUSH
1430: CALL_OW 67
// DialogueOn ;
1434: CALL_OW 6
// SayRadio ( Hayes , de-h-1 ) ;
1438: LD_EXP 2
1442: PPUSH
1443: LD_STRING de-h-1
1445: PPUSH
1446: CALL_OW 94
// if Saved > 0 then
1450: LD_EXP 6
1454: PUSH
1455: LD_INT 0
1457: GREATER
1458: IFFALSE 1564
// begin Say ( Alex , de-a-1 ) ;
1460: LD_EXP 1
1464: PPUSH
1465: LD_STRING de-a-1
1467: PPUSH
1468: CALL_OW 88
// SayRadio ( Hayes , de-h-2 ) ;
1472: LD_EXP 2
1476: PPUSH
1477: LD_STRING de-h-2
1479: PPUSH
1480: CALL_OW 94
// Say ( Alex , de-a-2 ) ;
1484: LD_EXP 1
1488: PPUSH
1489: LD_STRING de-a-2
1491: PPUSH
1492: CALL_OW 88
// ChangeMissionObjectives ( OMove ) ;
1496: LD_STRING OMove
1498: PPUSH
1499: CALL_OW 337
// DialogueOff ;
1503: CALL_OW 7
// ArabsEnding = true ;
1507: LD_ADDR_EXP 12
1511: PUSH
1512: LD_INT 1
1514: ST_TO_ADDR
// SetAreaMapShow ( AllExitArea , 1 ) ;
1515: LD_INT 1
1517: PPUSH
1518: LD_INT 1
1520: PPUSH
1521: CALL_OW 424
// enable ( 01 ) ;
1525: LD_INT 1
1527: ENABLE_MARKED
// enable ( 02 ) ;
1528: LD_INT 2
1530: ENABLE_MARKED
// SetSide ( FilterAllUnits ( [ f_side , 4 ] ) diff [ Hayes ] , 1 ) ;
1531: LD_INT 22
1533: PUSH
1534: LD_INT 4
1536: PUSH
1537: EMPTY
1538: LIST
1539: LIST
1540: PPUSH
1541: CALL_OW 69
1545: PUSH
1546: LD_EXP 2
1550: PUSH
1551: EMPTY
1552: LIST
1553: DIFF
1554: PPUSH
1555: LD_INT 1
1557: PPUSH
1558: CALL_OW 235
// end else
1562: GO 1595
// begin Say ( Alex , de-a-1a ) ;
1564: LD_EXP 1
1568: PPUSH
1569: LD_STRING de-a-1a
1571: PPUSH
1572: CALL_OW 88
// SayRadio ( Hayes , de-h-2a ) ;
1576: LD_EXP 2
1580: PPUSH
1581: LD_STRING de-h-2a
1583: PPUSH
1584: CALL_OW 94
// YouLost ( Slow ) ;
1588: LD_STRING Slow
1590: PPUSH
1591: CALL_OW 104
// end ; end ;
1595: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_building ] , [ f_ok ] ] ) = 0 do
1596: LD_INT 22
1598: PUSH
1599: LD_INT 1
1601: PUSH
1602: EMPTY
1603: LIST
1604: LIST
1605: PUSH
1606: LD_INT 21
1608: PUSH
1609: LD_INT 3
1611: PUSH
1612: EMPTY
1613: LIST
1614: LIST
1615: PUSH
1616: LD_INT 50
1618: PUSH
1619: EMPTY
1620: LIST
1621: PUSH
1622: EMPTY
1623: LIST
1624: LIST
1625: LIST
1626: PPUSH
1627: CALL_OW 69
1631: PUSH
1632: LD_INT 0
1634: EQUAL
1635: IFFALSE 1647
1637: GO 1639
1639: DISABLE
// ChangeMissionObjectives ( ODismantleOut ) ;
1640: LD_STRING ODismantleOut
1642: PPUSH
1643: CALL_OW 337
1647: END
// every 0 0$1 trigger FilterUnitsExceptArea ( AllExitArea , [ [ f_side , 1 ] , [ f_type , unit_human ] ] ) = 0 marked 01 do
1648: LD_INT 1
1650: PPUSH
1651: LD_INT 22
1653: PUSH
1654: LD_INT 1
1656: PUSH
1657: EMPTY
1658: LIST
1659: LIST
1660: PUSH
1661: LD_INT 21
1663: PUSH
1664: LD_INT 1
1666: PUSH
1667: EMPTY
1668: LIST
1669: LIST
1670: PUSH
1671: EMPTY
1672: LIST
1673: LIST
1674: PPUSH
1675: CALL_OW 71
1679: PUSH
1680: LD_INT 0
1682: EQUAL
1683: IFFALSE 1921
1685: GO 1687
1687: DISABLE
// begin if Saved = 3 then
1688: LD_EXP 6
1692: PUSH
1693: LD_INT 3
1695: EQUAL
1696: IFFALSE 1710
// AddMedal ( MSaved , 1 ) else
1698: LD_STRING MSaved
1700: PPUSH
1701: LD_INT 1
1703: PPUSH
1704: CALL_OW 101
1708: GO 1721
// AddMedal ( MSaved , - 1 ) ;
1710: LD_STRING MSaved
1712: PPUSH
1713: LD_INT 1
1715: NEG
1716: PPUSH
1717: CALL_OW 101
// if Losses then
1721: LD_EXP 13
1725: IFFALSE 1740
// AddMedal ( MLosses , - 1 ) else
1727: LD_STRING MLosses
1729: PPUSH
1730: LD_INT 1
1732: NEG
1733: PPUSH
1734: CALL_OW 101
1738: GO 1750
// AddMedal ( MLosses , 1 ) ;
1740: LD_STRING MLosses
1742: PPUSH
1743: LD_INT 1
1745: PPUSH
1746: CALL_OW 101
// if FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_building ] , [ f_ok ] ] ) then
1750: LD_INT 22
1752: PUSH
1753: LD_INT 1
1755: PUSH
1756: EMPTY
1757: LIST
1758: LIST
1759: PUSH
1760: LD_INT 21
1762: PUSH
1763: LD_INT 3
1765: PUSH
1766: EMPTY
1767: LIST
1768: LIST
1769: PUSH
1770: LD_INT 50
1772: PUSH
1773: EMPTY
1774: LIST
1775: PUSH
1776: EMPTY
1777: LIST
1778: LIST
1779: LIST
1780: PPUSH
1781: CALL_OW 69
1785: IFFALSE 1810
// begin AddMedal ( MCleaned , - 1 ) ;
1787: LD_STRING MCleaned
1789: PPUSH
1790: LD_INT 1
1792: NEG
1793: PPUSH
1794: CALL_OW 101
// SaveVariable ( 1 , EpsilonCleaned ) ;
1798: LD_INT 1
1800: PPUSH
1801: LD_STRING EpsilonCleaned
1803: PPUSH
1804: CALL_OW 39
// end else
1808: GO 1820
// AddMedal ( MCleaned , 1 ) ;
1810: LD_STRING MCleaned
1812: PPUSH
1813: LD_INT 1
1815: PPUSH
1816: CALL_OW 101
// GiveMedals ( Main ) ;
1820: LD_STRING Main
1822: PPUSH
1823: CALL_OW 102
// RewardPeople ( FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_human ] ] ) ) ;
1827: LD_INT 22
1829: PUSH
1830: LD_INT 1
1832: PUSH
1833: EMPTY
1834: LIST
1835: LIST
1836: PUSH
1837: LD_INT 21
1839: PUSH
1840: LD_INT 1
1842: PUSH
1843: EMPTY
1844: LIST
1845: LIST
1846: PUSH
1847: EMPTY
1848: LIST
1849: LIST
1850: PPUSH
1851: CALL_OW 69
1855: PPUSH
1856: CALL_OW 43
// SaveCharacters ( Alex , Alex ) ;
1860: LD_EXP 1
1864: PPUSH
1865: LD_STRING Alex
1867: PPUSH
1868: CALL_OW 38
// SaveCharacters ( FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_human ] ] ) diff [ Alex ] , TeamEpsilon ) ;
1872: LD_INT 22
1874: PUSH
1875: LD_INT 1
1877: PUSH
1878: EMPTY
1879: LIST
1880: LIST
1881: PUSH
1882: LD_INT 21
1884: PUSH
1885: LD_INT 1
1887: PUSH
1888: EMPTY
1889: LIST
1890: LIST
1891: PUSH
1892: EMPTY
1893: LIST
1894: LIST
1895: PPUSH
1896: CALL_OW 69
1900: PUSH
1901: LD_EXP 1
1905: PUSH
1906: EMPTY
1907: LIST
1908: DIFF
1909: PPUSH
1910: LD_STRING TeamEpsilon
1912: PPUSH
1913: CALL_OW 38
// YouWin ;
1917: CALL_OW 103
// end ; end_of_file
1921: END
// export Green , GreenBoss ; every 0 0$1 do var i , h ;
1922: GO 1924
1924: DISABLE
1925: LD_INT 0
1927: PPUSH
1928: PPUSH
// begin uc_side = 7 ;
1929: LD_ADDR_OWVAR 20
1933: PUSH
1934: LD_INT 7
1936: ST_TO_ADDR
// uc_nation = 1 ;
1937: LD_ADDR_OWVAR 21
1941: PUSH
1942: LD_INT 1
1944: ST_TO_ADDR
// for i = 1 to 2 do
1945: LD_ADDR_VAR 0 1
1949: PUSH
1950: DOUBLE
1951: LD_INT 1
1953: DEC
1954: ST_TO_ADDR
1955: LD_INT 2
1957: PUSH
1958: FOR_TO
1959: IFFALSE 2041
// begin InitHc ;
1961: CALL_OW 19
// PrepareSoldier ( 0 , Rand ( 2 , 3 ) ) ;
1965: LD_INT 0
1967: PPUSH
1968: LD_INT 2
1970: PPUSH
1971: LD_INT 3
1973: PPUSH
1974: CALL_OW 12
1978: PPUSH
1979: CALL_OW 381
// h = CreateHuman ;
1983: LD_ADDR_VAR 0 2
1987: PUSH
1988: CALL_OW 44
1992: ST_TO_ADDR
// PlaceUnitXYR ( h , 182 , 114 , 3 , false ) ;
1993: LD_VAR 0 2
1997: PPUSH
1998: LD_INT 182
2000: PPUSH
2001: LD_INT 114
2003: PPUSH
2004: LD_INT 3
2006: PPUSH
2007: LD_INT 0
2009: PPUSH
2010: CALL_OW 50
// ComCrawl ( h ) ;
2014: LD_VAR 0 2
2018: PPUSH
2019: CALL_OW 137
// Green = Green ^ h ;
2023: LD_ADDR_EXP 7
2027: PUSH
2028: LD_EXP 7
2032: PUSH
2033: LD_VAR 0 2
2037: ADD
2038: ST_TO_ADDR
// end ;
2039: GO 1958
2041: POP
2042: POP
// InitHc ;
2043: CALL_OW 19
// PrepareScientist ( 1 , 3 ) ;
2047: LD_INT 1
2049: PPUSH
2050: LD_INT 3
2052: PPUSH
2053: CALL_OW 384
// GreenBoss = CreateHuman ;
2057: LD_ADDR_EXP 8
2061: PUSH
2062: CALL_OW 44
2066: ST_TO_ADDR
// PlaceUnitXY ( GreenBoss , 182 , 114 , false ) ;
2067: LD_EXP 8
2071: PPUSH
2072: LD_INT 182
2074: PPUSH
2075: LD_INT 114
2077: PPUSH
2078: LD_INT 0
2080: PPUSH
2081: CALL_OW 48
// ComHold ( GreenBoss ) ;
2085: LD_EXP 8
2089: PPUSH
2090: CALL_OW 140
// end ;
2094: PPOPN 2
2096: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , 7 ] , [ f_see , 1 ] ] ) do var s , c ;
2097: LD_INT 22
2099: PUSH
2100: LD_INT 7
2102: PUSH
2103: EMPTY
2104: LIST
2105: LIST
2106: PUSH
2107: LD_INT 101
2109: PUSH
2110: LD_INT 1
2112: PUSH
2113: EMPTY
2114: LIST
2115: LIST
2116: PUSH
2117: EMPTY
2118: LIST
2119: LIST
2120: PPUSH
2121: CALL_OW 69
2125: IFFALSE 2364
2127: GO 2129
2129: DISABLE
2130: LD_INT 0
2132: PPUSH
2133: PPUSH
// begin s = FilterAllUnits ( [ [ f_side , 7 ] , [ f_see , 1 ] ] ) ;
2134: LD_ADDR_VAR 0 1
2138: PUSH
2139: LD_INT 22
2141: PUSH
2142: LD_INT 7
2144: PUSH
2145: EMPTY
2146: LIST
2147: LIST
2148: PUSH
2149: LD_INT 101
2151: PUSH
2152: LD_INT 1
2154: PUSH
2155: EMPTY
2156: LIST
2157: LIST
2158: PUSH
2159: EMPTY
2160: LIST
2161: LIST
2162: PPUSH
2163: CALL_OW 69
2167: ST_TO_ADDR
// c = NearestUnitToUnit ( FilterAllUnits ( [ f_side , 1 ] ) , GreenBoss ) ;
2168: LD_ADDR_VAR 0 2
2172: PUSH
2173: LD_INT 22
2175: PUSH
2176: LD_INT 1
2178: PUSH
2179: EMPTY
2180: LIST
2181: LIST
2182: PPUSH
2183: CALL_OW 69
2187: PPUSH
2188: LD_EXP 8
2192: PPUSH
2193: CALL_OW 74
2197: ST_TO_ADDR
// InGameOn ;
2198: CALL_OW 8
// DialogueOn ;
2202: CALL_OW 6
// CenterOnUnits ( s ) ;
2206: LD_VAR 0 1
2210: PPUSH
2211: CALL_OW 85
// Say ( GreenBoss , dr-r-1 ) ;
2215: LD_EXP 8
2219: PPUSH
2220: LD_STRING dr-r-1
2222: PPUSH
2223: CALL_OW 88
// Say ( c , dr-s-1 ) ;
2227: LD_VAR 0 2
2231: PPUSH
2232: LD_STRING dr-s-1
2234: PPUSH
2235: CALL_OW 88
// Say ( GreenBoss , dr-r-2 ) ;
2239: LD_EXP 8
2243: PPUSH
2244: LD_STRING dr-r-2
2246: PPUSH
2247: CALL_OW 88
// Say ( c , dr-s-2 ) ;
2251: LD_VAR 0 2
2255: PPUSH
2256: LD_STRING dr-s-2
2258: PPUSH
2259: CALL_OW 88
// DialogueOff ;
2263: CALL_OW 7
// InGameOff ;
2267: CALL_OW 9
// Wait ( 0 0$2 ) ;
2271: LD_INT 70
2273: PPUSH
2274: CALL_OW 67
// SetAttitude ( 1 , 7 , att_enemy , true ) ;
2278: LD_INT 1
2280: PPUSH
2281: LD_INT 7
2283: PPUSH
2284: LD_INT 2
2286: PPUSH
2287: LD_INT 1
2289: PPUSH
2290: CALL_OW 80
// Wait ( 0 0$6 ) ;
2294: LD_INT 210
2296: PPUSH
2297: CALL_OW 67
// DialogueOn ;
2301: CALL_OW 6
// Say ( Alex , dr-a-1 ) ;
2305: LD_EXP 1
2309: PPUSH
2310: LD_STRING dr-a-1
2312: PPUSH
2313: CALL_OW 88
// SayRadio ( Hayes , dr-h-1 ) ;
2317: LD_EXP 2
2321: PPUSH
2322: LD_STRING dr-h-1
2324: PPUSH
2325: CALL_OW 94
// Say ( Alex , dr-a-2 ) ;
2329: LD_EXP 1
2333: PPUSH
2334: LD_STRING dr-a-2
2336: PPUSH
2337: CALL_OW 88
// SayRadio ( Hayes , dr-h-2 ) ;
2341: LD_EXP 2
2345: PPUSH
2346: LD_STRING dr-h-2
2348: PPUSH
2349: CALL_OW 94
// DialogueOff ;
2353: CALL_OW 7
// ChangeMissionObjectives ( OSouthOut ) ;
2357: LD_STRING OSouthOut
2359: PPUSH
2360: CALL_OW 337
// end ; end_of_file
2364: PPOPN 2
2366: END
// export ArabsOne , ArabsTwo , ArabsThree ; export ArabsEnding ; every 2 2$35 do var i , h , s ;
2367: GO 2369
2369: DISABLE
2370: LD_INT 0
2372: PPUSH
2373: PPUSH
2374: PPUSH
// begin s = [ Rand ( 1 , 3 ) , Rand ( 2 , 3 ) , Rand ( 2 , 4 ) ] [ difficulty ] ;
2375: LD_ADDR_VAR 0 3
2379: PUSH
2380: LD_INT 1
2382: PPUSH
2383: LD_INT 3
2385: PPUSH
2386: CALL_OW 12
2390: PUSH
2391: LD_INT 2
2393: PPUSH
2394: LD_INT 3
2396: PPUSH
2397: CALL_OW 12
2401: PUSH
2402: LD_INT 2
2404: PPUSH
2405: LD_INT 4
2407: PPUSH
2408: CALL_OW 12
2412: PUSH
2413: EMPTY
2414: LIST
2415: LIST
2416: LIST
2417: PUSH
2418: LD_OWVAR 67
2422: ARRAY
2423: ST_TO_ADDR
// uc_side = 2 ;
2424: LD_ADDR_OWVAR 20
2428: PUSH
2429: LD_INT 2
2431: ST_TO_ADDR
// uc_nation = 2 ;
2432: LD_ADDR_OWVAR 21
2436: PUSH
2437: LD_INT 2
2439: ST_TO_ADDR
// for i = 1 to 3 do
2440: LD_ADDR_VAR 0 1
2444: PUSH
2445: DOUBLE
2446: LD_INT 1
2448: DEC
2449: ST_TO_ADDR
2450: LD_INT 3
2452: PUSH
2453: FOR_TO
2454: IFFALSE 2521
// begin InitHc ;
2456: CALL_OW 19
// PrepareSoldier ( 0 , s ) ;
2460: LD_INT 0
2462: PPUSH
2463: LD_VAR 0 3
2467: PPUSH
2468: CALL_OW 381
// h = CreateHuman ;
2472: LD_ADDR_VAR 0 2
2476: PUSH
2477: CALL_OW 44
2481: ST_TO_ADDR
// PlaceUnitXYR ( h , 69 , 4 , 2 , false ) ;
2482: LD_VAR 0 2
2486: PPUSH
2487: LD_INT 69
2489: PPUSH
2490: LD_INT 4
2492: PPUSH
2493: LD_INT 2
2495: PPUSH
2496: LD_INT 0
2498: PPUSH
2499: CALL_OW 50
// ArabsOne = ArabsOne ^ h ;
2503: LD_ADDR_EXP 9
2507: PUSH
2508: LD_EXP 9
2512: PUSH
2513: LD_VAR 0 2
2517: ADD
2518: ST_TO_ADDR
// end ;
2519: GO 2453
2521: POP
2522: POP
// ComAgressiveMove ( ArabsOne , 102 , 42 ) ;
2523: LD_EXP 9
2527: PPUSH
2528: LD_INT 102
2530: PPUSH
2531: LD_INT 42
2533: PPUSH
2534: CALL_OW 114
// AddComCrawl ( ArabsOne ) ;
2538: LD_EXP 9
2542: PPUSH
2543: CALL_OW 197
// for i = 1 to [ 2 , 3 , 4 ] [ difficulty ] do
2547: LD_ADDR_VAR 0 1
2551: PUSH
2552: DOUBLE
2553: LD_INT 1
2555: DEC
2556: ST_TO_ADDR
2557: LD_INT 2
2559: PUSH
2560: LD_INT 3
2562: PUSH
2563: LD_INT 4
2565: PUSH
2566: EMPTY
2567: LIST
2568: LIST
2569: LIST
2570: PUSH
2571: LD_OWVAR 67
2575: ARRAY
2576: PUSH
2577: FOR_TO
2578: IFFALSE 2645
// begin InitHc ;
2580: CALL_OW 19
// PrepareSoldier ( 0 , s ) ;
2584: LD_INT 0
2586: PPUSH
2587: LD_VAR 0 3
2591: PPUSH
2592: CALL_OW 381
// h = CreateHuman ;
2596: LD_ADDR_VAR 0 2
2600: PUSH
2601: CALL_OW 44
2605: ST_TO_ADDR
// PlaceUnitXYR ( h , 65 , 121 , 3 , false ) ;
2606: LD_VAR 0 2
2610: PPUSH
2611: LD_INT 65
2613: PPUSH
2614: LD_INT 121
2616: PPUSH
2617: LD_INT 3
2619: PPUSH
2620: LD_INT 0
2622: PPUSH
2623: CALL_OW 50
// ArabsTwo = ArabsTwo ^ h ;
2627: LD_ADDR_EXP 10
2631: PUSH
2632: LD_EXP 10
2636: PUSH
2637: LD_VAR 0 2
2641: ADD
2642: ST_TO_ADDR
// end ;
2643: GO 2577
2645: POP
2646: POP
// ComCrawl ( ArabsTwo ) ;
2647: LD_EXP 10
2651: PPUSH
2652: CALL_OW 137
// for i = 1 to 3 do
2656: LD_ADDR_VAR 0 1
2660: PUSH
2661: DOUBLE
2662: LD_INT 1
2664: DEC
2665: ST_TO_ADDR
2666: LD_INT 3
2668: PUSH
2669: FOR_TO
2670: IFFALSE 2737
// begin InitHc ;
2672: CALL_OW 19
// PrepareSoldier ( 0 , s ) ;
2676: LD_INT 0
2678: PPUSH
2679: LD_VAR 0 3
2683: PPUSH
2684: CALL_OW 381
// h = CreateHuman ;
2688: LD_ADDR_VAR 0 2
2692: PUSH
2693: CALL_OW 44
2697: ST_TO_ADDR
// PlaceUnitXYR ( h , 46 , 19 , 2 , false ) ;
2698: LD_VAR 0 2
2702: PPUSH
2703: LD_INT 46
2705: PPUSH
2706: LD_INT 19
2708: PPUSH
2709: LD_INT 2
2711: PPUSH
2712: LD_INT 0
2714: PPUSH
2715: CALL_OW 50
// ArabsThree = ArabsThree ^ h ;
2719: LD_ADDR_EXP 11
2723: PUSH
2724: LD_EXP 11
2728: PUSH
2729: LD_VAR 0 2
2733: ADD
2734: ST_TO_ADDR
// end ;
2735: GO 2669
2737: POP
2738: POP
// ComCrawl ( ArabsThree ) ;
2739: LD_EXP 11
2743: PPUSH
2744: CALL_OW 137
// end ;
2748: PPOPN 3
2750: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_see , 1 ] , [ f_side , 2 ] ] ) do var s , c ;
2751: LD_INT 101
2753: PUSH
2754: LD_INT 1
2756: PUSH
2757: EMPTY
2758: LIST
2759: LIST
2760: PUSH
2761: LD_INT 22
2763: PUSH
2764: LD_INT 2
2766: PUSH
2767: EMPTY
2768: LIST
2769: LIST
2770: PUSH
2771: EMPTY
2772: LIST
2773: LIST
2774: PPUSH
2775: CALL_OW 69
2779: IFFALSE 2924
2781: GO 2783
2783: DISABLE
2784: LD_INT 0
2786: PPUSH
2787: PPUSH
// begin s = FilterAllUnits ( [ [ f_side , 7 ] , [ f_see , 1 ] ] ) ;
2788: LD_ADDR_VAR 0 1
2792: PUSH
2793: LD_INT 22
2795: PUSH
2796: LD_INT 7
2798: PUSH
2799: EMPTY
2800: LIST
2801: LIST
2802: PUSH
2803: LD_INT 101
2805: PUSH
2806: LD_INT 1
2808: PUSH
2809: EMPTY
2810: LIST
2811: LIST
2812: PUSH
2813: EMPTY
2814: LIST
2815: LIST
2816: PPUSH
2817: CALL_OW 69
2821: ST_TO_ADDR
// c = NearestUnitToUnit ( FilterAllUnits ( [ f_side , 1 ] ) , s [ 1 ] ) ;
2822: LD_ADDR_VAR 0 2
2826: PUSH
2827: LD_INT 22
2829: PUSH
2830: LD_INT 1
2832: PUSH
2833: EMPTY
2834: LIST
2835: LIST
2836: PPUSH
2837: CALL_OW 69
2841: PPUSH
2842: LD_VAR 0 1
2846: PUSH
2847: LD_INT 1
2849: ARRAY
2850: PPUSH
2851: CALL_OW 74
2855: ST_TO_ADDR
// Wait ( 0 0$1 ) ;
2856: LD_INT 35
2858: PPUSH
2859: CALL_OW 67
// InGameOn ;
2863: CALL_OW 8
// DialogueOn ;
2867: CALL_OW 6
// CenterOnUnits ( s ) ;
2871: LD_VAR 0 1
2875: PPUSH
2876: CALL_OW 85
// Say ( c , da-s-1 ) ;
2880: LD_VAR 0 2
2884: PPUSH
2885: LD_STRING da-s-1
2887: PPUSH
2888: CALL_OW 88
// Say ( Alex , da-a-1 ) ;
2892: LD_EXP 1
2896: PPUSH
2897: LD_STRING da-a-1
2899: PPUSH
2900: CALL_OW 88
// SayRadio ( Hayes , da-h-1 ) ;
2904: LD_EXP 2
2908: PPUSH
2909: LD_STRING da-h-1
2911: PPUSH
2912: CALL_OW 94
// InGameOff ;
2916: CALL_OW 9
// DialogueOff ;
2920: CALL_OW 7
// end ;
2924: PPOPN 2
2926: END
// every 0 0$1 trigger ArabsEnding do
2927: LD_EXP 12
2931: IFFALSE 2966
2933: GO 2935
2935: DISABLE
// begin ComAgressiveMove ( ArabsOne , 145 , 33 ) ;
2936: LD_EXP 9
2940: PPUSH
2941: LD_INT 145
2943: PPUSH
2944: LD_INT 33
2946: PPUSH
2947: CALL_OW 114
// ComAgressiveMove ( ArabsTwo , 104 , 137 ) ;
2951: LD_EXP 10
2955: PPUSH
2956: LD_INT 104
2958: PPUSH
2959: LD_INT 137
2961: PPUSH
2962: CALL_OW 114
// end ; end_of_file
2966: END
// export Losses ; on UnitDestroyed ( un ) do begin if un = Alex then
2967: LD_VAR 0 1
2971: PUSH
2972: LD_EXP 1
2976: EQUAL
2977: IFFALSE 2986
// YouLost ( AlexDead ) ;
2979: LD_STRING AlexDead
2981: PPUSH
2982: CALL_OW 104
// if GetSide ( un ) = 1 and GetType ( un ) = unit_human then
2986: LD_VAR 0 1
2990: PPUSH
2991: CALL_OW 255
2995: PUSH
2996: LD_INT 1
2998: EQUAL
2999: PUSH
3000: LD_VAR 0 1
3004: PPUSH
3005: CALL_OW 247
3009: PUSH
3010: LD_INT 1
3012: EQUAL
3013: AND
3014: IFFALSE 3024
// Losses = true ;
3016: LD_ADDR_EXP 13
3020: PUSH
3021: LD_INT 1
3023: ST_TO_ADDR
// end ;
3024: PPOPN 1
3026: END
// every 0 0$1 do
3027: GO 3029
3029: DISABLE
// begin Wait ( Rand ( 1 1$30 , 2 2$30 ) ) ;
3030: LD_INT 3150
3032: PPUSH
3033: LD_INT 5250
3035: PPUSH
3036: CALL_OW 12
3040: PPUSH
3041: CALL_OW 67
// CreateCratesArea ( Rand ( 1 , 5 ) , RevealArea , true ) ;
3045: LD_INT 1
3047: PPUSH
3048: LD_INT 5
3050: PPUSH
3051: CALL_OW 12
3055: PPUSH
3056: LD_INT 2
3058: PPUSH
3059: LD_INT 1
3061: PPUSH
3062: CALL_OW 55
// enable ;
3066: ENABLE
// end ;
3067: END
// every 0 0$1 do
3068: GO 3070
3070: DISABLE
// begin Wait ( Rand ( 3 3$0 , 4 4$30 ) ) ;
3071: LD_INT 6300
3073: PPUSH
3074: LD_INT 9450
3076: PPUSH
3077: CALL_OW 12
3081: PPUSH
3082: CALL_OW 67
// if FilterAllUnits ( [ [ f_btype , b_oil_mine ] , [ f_ready ] ] ) then
3086: LD_INT 30
3088: PUSH
3089: LD_INT 29
3091: PUSH
3092: EMPTY
3093: LIST
3094: LIST
3095: PUSH
3096: LD_INT 53
3098: PUSH
3099: EMPTY
3100: LIST
3101: PUSH
3102: EMPTY
3103: LIST
3104: LIST
3105: PPUSH
3106: CALL_OW 69
3110: IFFALSE 3125
// MineExplosion ( 129 , 25 , 1 ) ;
3112: LD_INT 129
3114: PPUSH
3115: LD_INT 25
3117: PPUSH
3118: LD_INT 1
3120: PPUSH
3121: CALL_OW 453
// enable ;
3125: ENABLE
// end ;
3126: END
