// export Testing ; export Gensher , UPFPeople , UPFVehicles , MissionFailed , EndingCutscene ; export Legion , LegionNoRetreat , LegionRetreating , LegionRemoteMech , Farmer , FarmerVehicle , Farmertroops , FarmerBombs , AmbushBombs , FarmerRemoteMech , emptyveh , BombStatus , FarmerStatus , FightingStarted , ContactCount ; export Snake , Elizabeth , Pierre ; export Heike , Olaf , Sonya , Oswald , Ralph , Kowalski , Aviradze , Swansson , Dwayne , Khattam , Evelyn , Makise , Gonzo , others , PlayerPeople ; export Escort_others , playerpeople_previous_map ; starting begin testing = false ;
   0: LD_ADDR_EXP 1
   4: PUSH
   5: LD_INT 0
   7: ST_TO_ADDR
// disable ( 1 ) ;
   8: LD_INT 1
  10: DISABLE_MARKED
// disable ( 2 ) ;
  11: LD_INT 2
  13: DISABLE_MARKED
// disable ( 3 ) ;
  14: LD_INT 3
  16: DISABLE_MARKED
// UPFPeople = [ ] ;
  17: LD_ADDR_EXP 3
  21: PUSH
  22: EMPTY
  23: ST_TO_ADDR
// UPFVehicles = [ ] ;
  24: LD_ADDR_EXP 4
  28: PUSH
  29: EMPTY
  30: ST_TO_ADDR
// Legion = [ ] ;
  31: LD_ADDR_EXP 7
  35: PUSH
  36: EMPTY
  37: ST_TO_ADDR
// LegionNoRetreat = [ ] ;
  38: LD_ADDR_EXP 8
  42: PUSH
  43: EMPTY
  44: ST_TO_ADDR
// LegionRetreating = [ ] ;
  45: LD_ADDR_EXP 9
  49: PUSH
  50: EMPTY
  51: ST_TO_ADDR
// farmertroops = [ ] ;
  52: LD_ADDR_EXP 13
  56: PUSH
  57: EMPTY
  58: ST_TO_ADDR
// AmbushBombs = [ ] ;
  59: LD_ADDR_EXP 15
  63: PUSH
  64: EMPTY
  65: ST_TO_ADDR
// FarmerBombs = [ ] ;
  66: LD_ADDR_EXP 14
  70: PUSH
  71: EMPTY
  72: ST_TO_ADDR
// SetDifficulty ;
  73: CALL 6389 0 0
// SpaghettiAndCorpses ;
  77: CALL 1470 0 0
// LoadUPF ;
  81: CALL 94 0 0
// LoadFarmer ;
  85: CALL 5115 0 0
// LoadPlayer ;
  89: CALL 1709 0 0
// end ;
  93: END
// function LoadUPF ; var i , temp , temp2 , controlmech ; begin
  94: LD_INT 0
  96: PPUSH
  97: PPUSH
  98: PPUSH
  99: PPUSH
 100: PPUSH
// Randomize ;
 101: CALL_OW 10
// uc_nation = nation_arabian ;
 105: LD_ADDR_OWVAR 21
 109: PUSH
 110: LD_INT 2
 112: ST_TO_ADDR
// uc_side = 5 ;
 113: LD_ADDR_OWVAR 20
 117: PUSH
 118: LD_INT 5
 120: ST_TO_ADDR
// if testing then
 121: LD_EXP 1
 125: IFFALSE 142
// Gensher = NewCharacter ( Dietrich ) else
 127: LD_ADDR_EXP 2
 131: PUSH
 132: LD_STRING Dietrich
 134: PPUSH
 135: CALL_OW 25
 139: ST_TO_ADDR
 140: GO 161
// Gensher = LoadCharacter ( Gensher_11_cont , class_soldier , 0 ) ;
 142: LD_ADDR_EXP 2
 146: PUSH
 147: LD_STRING Gensher_11_cont
 149: PPUSH
 150: LD_INT 1
 152: PPUSH
 153: LD_INT 0
 155: PPUSH
 156: CALL_OW 527
 160: ST_TO_ADDR
// placeunitxy ( Gensher , 62 , 89 , false ) ;
 161: LD_EXP 2
 165: PPUSH
 166: LD_INT 62
 168: PPUSH
 169: LD_INT 89
 171: PPUSH
 172: LD_INT 0
 174: PPUSH
 175: CALL_OW 48
// comhold ( Gensher ) ;
 179: LD_EXP 2
 183: PPUSH
 184: CALL_OW 140
// for i = 1 to 3 do
 188: LD_ADDR_VAR 0 2
 192: PUSH
 193: DOUBLE
 194: LD_INT 1
 196: DEC
 197: ST_TO_ADDR
 198: LD_INT 3
 200: PUSH
 201: FOR_TO
 202: IFFALSE 361
// begin PrepareSoldier ( false , 10 ) ;
 204: LD_INT 0
 206: PPUSH
 207: LD_INT 10
 209: PPUSH
 210: CALL_OW 381
// temp = createhuman ;
 214: LD_ADDR_VAR 0 3
 218: PUSH
 219: CALL_OW 44
 223: ST_TO_ADDR
// UPFPeople = UPFPeople ^ temp ;
 224: LD_ADDR_EXP 3
 228: PUSH
 229: LD_EXP 3
 233: PUSH
 234: LD_VAR 0 3
 238: ADD
 239: ST_TO_ADDR
// placeunitxy ( temp , [ 54 , 58 , 66 ] [ i ] , [ 89 , 89 , 89 ] [ i ] , false ) ;
 240: LD_VAR 0 3
 244: PPUSH
 245: LD_INT 54
 247: PUSH
 248: LD_INT 58
 250: PUSH
 251: LD_INT 66
 253: PUSH
 254: EMPTY
 255: LIST
 256: LIST
 257: LIST
 258: PUSH
 259: LD_VAR 0 2
 263: ARRAY
 264: PPUSH
 265: LD_INT 89
 267: PUSH
 268: LD_INT 89
 270: PUSH
 271: LD_INT 89
 273: PUSH
 274: EMPTY
 275: LIST
 276: LIST
 277: LIST
 278: PUSH
 279: LD_VAR 0 2
 283: ARRAY
 284: PPUSH
 285: LD_INT 0
 287: PPUSH
 288: CALL_OW 48
// comturnxy ( temp , [ 55 , 60 , 68 ] [ i ] , [ 91 , 91 , 91 ] [ i ] ) ;
 292: LD_VAR 0 3
 296: PPUSH
 297: LD_INT 55
 299: PUSH
 300: LD_INT 60
 302: PUSH
 303: LD_INT 68
 305: PUSH
 306: EMPTY
 307: LIST
 308: LIST
 309: LIST
 310: PUSH
 311: LD_VAR 0 2
 315: ARRAY
 316: PPUSH
 317: LD_INT 91
 319: PUSH
 320: LD_INT 91
 322: PUSH
 323: LD_INT 91
 325: PUSH
 326: EMPTY
 327: LIST
 328: LIST
 329: LIST
 330: PUSH
 331: LD_VAR 0 2
 335: ARRAY
 336: PPUSH
 337: CALL_OW 118
// addcomcrawl ( temp ) ;
 341: LD_VAR 0 3
 345: PPUSH
 346: CALL_OW 197
// addcomhold ( temp ) ;
 350: LD_VAR 0 3
 354: PPUSH
 355: CALL_OW 200
// end ;
 359: GO 201
 361: POP
 362: POP
// for i = 1 to 3 do
 363: LD_ADDR_VAR 0 2
 367: PUSH
 368: DOUBLE
 369: LD_INT 1
 371: DEC
 372: ST_TO_ADDR
 373: LD_INT 3
 375: PUSH
 376: FOR_TO
 377: IFFALSE 490
// begin PrepareSoldier ( false , 10 ) ;
 379: LD_INT 0
 381: PPUSH
 382: LD_INT 10
 384: PPUSH
 385: CALL_OW 381
// temp = createhuman ;
 389: LD_ADDR_VAR 0 3
 393: PUSH
 394: CALL_OW 44
 398: ST_TO_ADDR
// UPFPeople = UPFPeople ^ temp ;
 399: LD_ADDR_EXP 3
 403: PUSH
 404: LD_EXP 3
 408: PUSH
 409: LD_VAR 0 3
 413: ADD
 414: ST_TO_ADDR
// setclass ( temp , class_mortar ) ;
 415: LD_VAR 0 3
 419: PPUSH
 420: LD_INT 8
 422: PPUSH
 423: CALL_OW 336
// placeunitxy ( temp , [ 57 , 68 , 70 ] [ i ] , [ 89 , 90 , 90 ] [ i ] , false ) ;
 427: LD_VAR 0 3
 431: PPUSH
 432: LD_INT 57
 434: PUSH
 435: LD_INT 68
 437: PUSH
 438: LD_INT 70
 440: PUSH
 441: EMPTY
 442: LIST
 443: LIST
 444: LIST
 445: PUSH
 446: LD_VAR 0 2
 450: ARRAY
 451: PPUSH
 452: LD_INT 89
 454: PUSH
 455: LD_INT 90
 457: PUSH
 458: LD_INT 90
 460: PUSH
 461: EMPTY
 462: LIST
 463: LIST
 464: LIST
 465: PUSH
 466: LD_VAR 0 2
 470: ARRAY
 471: PPUSH
 472: LD_INT 0
 474: PPUSH
 475: CALL_OW 48
// comhold ( temp ) ;
 479: LD_VAR 0 3
 483: PPUSH
 484: CALL_OW 140
// end ;
 488: GO 376
 490: POP
 491: POP
// PrepareScientist ( false , 10 ) ;
 492: LD_INT 0
 494: PPUSH
 495: LD_INT 10
 497: PPUSH
 498: CALL_OW 384
// temp = createhuman ;
 502: LD_ADDR_VAR 0 3
 506: PUSH
 507: CALL_OW 44
 511: ST_TO_ADDR
// UPFPeople = UPFPeople ^ temp ;
 512: LD_ADDR_EXP 3
 516: PUSH
 517: LD_EXP 3
 521: PUSH
 522: LD_VAR 0 3
 526: ADD
 527: ST_TO_ADDR
// placeunitxy ( temp , 54 , 80 , false ) ;
 528: LD_VAR 0 3
 532: PPUSH
 533: LD_INT 54
 535: PPUSH
 536: LD_INT 80
 538: PPUSH
 539: LD_INT 0
 541: PPUSH
 542: CALL_OW 48
// comhold ( temp ) ;
 546: LD_VAR 0 3
 550: PPUSH
 551: CALL_OW 140
// vc_chassis = ar_half_tracked ;
 555: LD_ADDR_OWVAR 37
 559: PUSH
 560: LD_INT 14
 562: ST_TO_ADDR
// vc_engine = engine_siberite ;
 563: LD_ADDR_OWVAR 39
 567: PUSH
 568: LD_INT 3
 570: ST_TO_ADDR
// vc_control = control_manual ;
 571: LD_ADDR_OWVAR 38
 575: PUSH
 576: LD_INT 1
 578: ST_TO_ADDR
// vc_weapon = ar_rocket_launcher ;
 579: LD_ADDR_OWVAR 40
 583: PUSH
 584: LD_INT 28
 586: ST_TO_ADDR
// for i = 1 to 7 do
 587: LD_ADDR_VAR 0 2
 591: PUSH
 592: DOUBLE
 593: LD_INT 1
 595: DEC
 596: ST_TO_ADDR
 597: LD_INT 7
 599: PUSH
 600: FOR_TO
 601: IFFALSE 1016
// begin if i > 2 then
 603: LD_VAR 0 2
 607: PUSH
 608: LD_INT 2
 610: GREATER
 611: IFFALSE 621
// vc_weapon = ar_gun ;
 613: LD_ADDR_OWVAR 40
 617: PUSH
 618: LD_INT 27
 620: ST_TO_ADDR
// if i = 5 then
 621: LD_VAR 0 2
 625: PUSH
 626: LD_INT 5
 628: EQUAL
 629: IFFALSE 639
// vc_weapon = ar_gatling_gun ;
 631: LD_ADDR_OWVAR 40
 635: PUSH
 636: LD_INT 25
 638: ST_TO_ADDR
// if i = 6 then
 639: LD_VAR 0 2
 643: PUSH
 644: LD_INT 6
 646: EQUAL
 647: IFFALSE 657
// vc_weapon = ar_control_tower ;
 649: LD_ADDR_OWVAR 40
 653: PUSH
 654: LD_INT 31
 656: ST_TO_ADDR
// if i = 7 then
 657: LD_VAR 0 2
 661: PUSH
 662: LD_INT 7
 664: EQUAL
 665: IFFALSE 691
// begin vc_weapon = ar_radar ;
 667: LD_ADDR_OWVAR 40
 671: PUSH
 672: LD_INT 30
 674: ST_TO_ADDR
// vc_chassis = ar_hovercraft ;
 675: LD_ADDR_OWVAR 37
 679: PUSH
 680: LD_INT 11
 682: ST_TO_ADDR
// vc_engine = engine_combustion ;
 683: LD_ADDR_OWVAR 39
 687: PUSH
 688: LD_INT 1
 690: ST_TO_ADDR
// end ; if i = 1 or i = 3 or i = 6 then
 691: LD_VAR 0 2
 695: PUSH
 696: LD_INT 1
 698: EQUAL
 699: PUSH
 700: LD_VAR 0 2
 704: PUSH
 705: LD_INT 3
 707: EQUAL
 708: OR
 709: PUSH
 710: LD_VAR 0 2
 714: PUSH
 715: LD_INT 6
 717: EQUAL
 718: OR
 719: IFFALSE 731
// vc_control = control_manual else
 721: LD_ADDR_OWVAR 38
 725: PUSH
 726: LD_INT 1
 728: ST_TO_ADDR
 729: GO 759
// if i = 4 then
 731: LD_VAR 0 2
 735: PUSH
 736: LD_INT 4
 738: EQUAL
 739: IFFALSE 751
// vc_control = control_apeman else
 741: LD_ADDR_OWVAR 38
 745: PUSH
 746: LD_INT 5
 748: ST_TO_ADDR
 749: GO 759
// vc_control = control_remote ;
 751: LD_ADDR_OWVAR 38
 755: PUSH
 756: LD_INT 2
 758: ST_TO_ADDR
// temp = createvehicle ;
 759: LD_ADDR_VAR 0 3
 763: PUSH
 764: CALL_OW 45
 768: ST_TO_ADDR
// UPFVehicles = UPFVehicles ^ temp ;
 769: LD_ADDR_EXP 4
 773: PUSH
 774: LD_EXP 4
 778: PUSH
 779: LD_VAR 0 3
 783: ADD
 784: ST_TO_ADDR
// setdir ( temp , [ 3 , 2 , 2 , 3 , 2 , 3 , 2 ] [ i ] ) ;
 785: LD_VAR 0 3
 789: PPUSH
 790: LD_INT 3
 792: PUSH
 793: LD_INT 2
 795: PUSH
 796: LD_INT 2
 798: PUSH
 799: LD_INT 3
 801: PUSH
 802: LD_INT 2
 804: PUSH
 805: LD_INT 3
 807: PUSH
 808: LD_INT 2
 810: PUSH
 811: EMPTY
 812: LIST
 813: LIST
 814: LIST
 815: LIST
 816: LIST
 817: LIST
 818: LIST
 819: PUSH
 820: LD_VAR 0 2
 824: ARRAY
 825: PPUSH
 826: CALL_OW 233
// placeunitxy ( temp , [ 59 , 66 , 72 , 53 , 57 , 52 , 60 ] [ i ] , [ 88 , 87 , 91 , 91 , 91 , 77 , 85 ] [ i ] , false ) ;
 830: LD_VAR 0 3
 834: PPUSH
 835: LD_INT 59
 837: PUSH
 838: LD_INT 66
 840: PUSH
 841: LD_INT 72
 843: PUSH
 844: LD_INT 53
 846: PUSH
 847: LD_INT 57
 849: PUSH
 850: LD_INT 52
 852: PUSH
 853: LD_INT 60
 855: PUSH
 856: EMPTY
 857: LIST
 858: LIST
 859: LIST
 860: LIST
 861: LIST
 862: LIST
 863: LIST
 864: PUSH
 865: LD_VAR 0 2
 869: ARRAY
 870: PPUSH
 871: LD_INT 88
 873: PUSH
 874: LD_INT 87
 876: PUSH
 877: LD_INT 91
 879: PUSH
 880: LD_INT 91
 882: PUSH
 883: LD_INT 91
 885: PUSH
 886: LD_INT 77
 888: PUSH
 889: LD_INT 85
 891: PUSH
 892: EMPTY
 893: LIST
 894: LIST
 895: LIST
 896: LIST
 897: LIST
 898: LIST
 899: LIST
 900: PUSH
 901: LD_VAR 0 2
 905: ARRAY
 906: PPUSH
 907: LD_INT 0
 909: PPUSH
 910: CALL_OW 48
// if i = 1 or i = 3 or i = 6 then
 914: LD_VAR 0 2
 918: PUSH
 919: LD_INT 1
 921: EQUAL
 922: PUSH
 923: LD_VAR 0 2
 927: PUSH
 928: LD_INT 3
 930: EQUAL
 931: OR
 932: PUSH
 933: LD_VAR 0 2
 937: PUSH
 938: LD_INT 6
 940: EQUAL
 941: OR
 942: IFFALSE 1014
// begin preparemechanic ( false , 10 ) ;
 944: LD_INT 0
 946: PPUSH
 947: LD_INT 10
 949: PPUSH
 950: CALL_OW 383
// temp2 = createhuman ;
 954: LD_ADDR_VAR 0 4
 958: PUSH
 959: CALL_OW 44
 963: ST_TO_ADDR
// UPFPeople = UPFPeople ^ temp2 ;
 964: LD_ADDR_EXP 3
 968: PUSH
 969: LD_EXP 3
 973: PUSH
 974: LD_VAR 0 4
 978: ADD
 979: ST_TO_ADDR
// placehumaninunit ( temp2 , temp ) ;
 980: LD_VAR 0 4
 984: PPUSH
 985: LD_VAR 0 3
 989: PPUSH
 990: CALL_OW 52
// if i = 6 then
 994: LD_VAR 0 2
 998: PUSH
 999: LD_INT 6
1001: EQUAL
1002: IFFALSE 1014
// controlmech = temp2 ;
1004: LD_ADDR_VAR 0 5
1008: PUSH
1009: LD_VAR 0 4
1013: ST_TO_ADDR
// end ; end ;
1014: GO 600
1016: POP
1017: POP
// for i in UPFVehicles do
1018: LD_ADDR_VAR 0 2
1022: PUSH
1023: LD_EXP 4
1027: PUSH
1028: FOR_IN
1029: IFFALSE 1056
// begin comlinkto ( i , controlmech ) ;
1031: LD_VAR 0 2
1035: PPUSH
1036: LD_VAR 0 5
1040: PPUSH
1041: CALL_OW 135
// addcomhold ( i ) ;
1045: LD_VAR 0 2
1049: PPUSH
1050: CALL_OW 200
// end ;
1054: GO 1028
1056: POP
1057: POP
// vc_engine = engine_combustion ;
1058: LD_ADDR_OWVAR 39
1062: PUSH
1063: LD_INT 1
1065: ST_TO_ADDR
// vc_control = control_manual ;
1066: LD_ADDR_OWVAR 38
1070: PUSH
1071: LD_INT 1
1073: ST_TO_ADDR
// for i = 1 to 7 do
1074: LD_ADDR_VAR 0 2
1078: PUSH
1079: DOUBLE
1080: LD_INT 1
1082: DEC
1083: ST_TO_ADDR
1084: LD_INT 7
1086: PUSH
1087: FOR_TO
1088: IFFALSE 1463
// begin if i = 1 or i = 2 then
1090: LD_VAR 0 2
1094: PUSH
1095: LD_INT 1
1097: EQUAL
1098: PUSH
1099: LD_VAR 0 2
1103: PUSH
1104: LD_INT 2
1106: EQUAL
1107: OR
1108: IFFALSE 1146
// begin vc_chassis = ar_hovercraft ;
1110: LD_ADDR_OWVAR 37
1114: PUSH
1115: LD_INT 11
1117: ST_TO_ADDR
// if i = 1 then
1118: LD_VAR 0 2
1122: PUSH
1123: LD_INT 1
1125: EQUAL
1126: IFFALSE 1138
// vc_weapon = ar_light_gun else
1128: LD_ADDR_OWVAR 40
1132: PUSH
1133: LD_INT 23
1135: ST_TO_ADDR
1136: GO 1146
// vc_weapon = ar_double_machine_gun ;
1138: LD_ADDR_OWVAR 40
1142: PUSH
1143: LD_INT 24
1145: ST_TO_ADDR
// end ; if i = 3 or i = 4 then
1146: LD_VAR 0 2
1150: PUSH
1151: LD_INT 3
1153: EQUAL
1154: PUSH
1155: LD_VAR 0 2
1159: PUSH
1160: LD_INT 4
1162: EQUAL
1163: OR
1164: IFFALSE 1182
// begin vc_chassis = ar_light_trike ;
1166: LD_ADDR_OWVAR 37
1170: PUSH
1171: LD_INT 12
1173: ST_TO_ADDR
// vc_weapon = ar_light_gun ;
1174: LD_ADDR_OWVAR 40
1178: PUSH
1179: LD_INT 23
1181: ST_TO_ADDR
// end ; if i = 5 or i = 6 then
1182: LD_VAR 0 2
1186: PUSH
1187: LD_INT 5
1189: EQUAL
1190: PUSH
1191: LD_VAR 0 2
1195: PUSH
1196: LD_INT 6
1198: EQUAL
1199: OR
1200: IFFALSE 1238
// begin vc_chassis = ar_medium_trike ;
1202: LD_ADDR_OWVAR 37
1206: PUSH
1207: LD_INT 13
1209: ST_TO_ADDR
// if i = 1 then
1210: LD_VAR 0 2
1214: PUSH
1215: LD_INT 1
1217: EQUAL
1218: IFFALSE 1230
// vc_weapon = ar_flame_thrower else
1220: LD_ADDR_OWVAR 40
1224: PUSH
1225: LD_INT 26
1227: ST_TO_ADDR
1228: GO 1238
// vc_weapon = ar_gatling_gun ;
1230: LD_ADDR_OWVAR 40
1234: PUSH
1235: LD_INT 25
1237: ST_TO_ADDR
// end ; if i = 7 then
1238: LD_VAR 0 2
1242: PUSH
1243: LD_INT 7
1245: EQUAL
1246: IFFALSE 1264
// begin vc_chassis = ar_half_tracked ;
1248: LD_ADDR_OWVAR 37
1252: PUSH
1253: LD_INT 14
1255: ST_TO_ADDR
// vc_weapon = ar_gun ;
1256: LD_ADDR_OWVAR 40
1260: PUSH
1261: LD_INT 27
1263: ST_TO_ADDR
// end ; temp = createvehicle ;
1264: LD_ADDR_VAR 0 3
1268: PUSH
1269: CALL_OW 45
1273: ST_TO_ADDR
// setdir ( temp , [ 5 , 3 , 4 , 5 , 0 , 1 , 0 ] [ i ] ) ;
1274: LD_VAR 0 3
1278: PPUSH
1279: LD_INT 5
1281: PUSH
1282: LD_INT 3
1284: PUSH
1285: LD_INT 4
1287: PUSH
1288: LD_INT 5
1290: PUSH
1291: LD_INT 0
1293: PUSH
1294: LD_INT 1
1296: PUSH
1297: LD_INT 0
1299: PUSH
1300: EMPTY
1301: LIST
1302: LIST
1303: LIST
1304: LIST
1305: LIST
1306: LIST
1307: LIST
1308: PUSH
1309: LD_VAR 0 2
1313: ARRAY
1314: PPUSH
1315: CALL_OW 233
// placeunitxy ( temp , [ 47 , 45 , 45 , 54 , 59 , 60 , 54 ] [ i ] , [ 80 , 77 , 72 , 72 , 75 , 79 , 76 ] [ i ] , false ) ;
1319: LD_VAR 0 3
1323: PPUSH
1324: LD_INT 47
1326: PUSH
1327: LD_INT 45
1329: PUSH
1330: LD_INT 45
1332: PUSH
1333: LD_INT 54
1335: PUSH
1336: LD_INT 59
1338: PUSH
1339: LD_INT 60
1341: PUSH
1342: LD_INT 54
1344: PUSH
1345: EMPTY
1346: LIST
1347: LIST
1348: LIST
1349: LIST
1350: LIST
1351: LIST
1352: LIST
1353: PUSH
1354: LD_VAR 0 2
1358: ARRAY
1359: PPUSH
1360: LD_INT 80
1362: PUSH
1363: LD_INT 77
1365: PUSH
1366: LD_INT 72
1368: PUSH
1369: LD_INT 72
1371: PUSH
1372: LD_INT 75
1374: PUSH
1375: LD_INT 79
1377: PUSH
1378: LD_INT 76
1380: PUSH
1381: EMPTY
1382: LIST
1383: LIST
1384: LIST
1385: LIST
1386: LIST
1387: LIST
1388: LIST
1389: PUSH
1390: LD_VAR 0 2
1394: ARRAY
1395: PPUSH
1396: LD_INT 0
1398: PPUSH
1399: CALL_OW 48
// setfuel ( temp , rand ( 30 , 70 ) ) ;
1403: LD_VAR 0 3
1407: PPUSH
1408: LD_INT 30
1410: PPUSH
1411: LD_INT 70
1413: PPUSH
1414: CALL_OW 12
1418: PPUSH
1419: CALL_OW 240
// if i = 7 then
1423: LD_VAR 0 2
1427: PUSH
1428: LD_INT 7
1430: EQUAL
1431: IFFALSE 1461
// begin setfuel ( temp , 0 ) ;
1433: LD_VAR 0 3
1437: PPUSH
1438: LD_INT 0
1440: PPUSH
1441: CALL_OW 240
// UPFVehicles = UPFVehicles ^ temp ;
1445: LD_ADDR_EXP 4
1449: PUSH
1450: LD_EXP 4
1454: PUSH
1455: LD_VAR 0 3
1459: ADD
1460: ST_TO_ADDR
// end ; end ;
1461: GO 1087
1463: POP
1464: POP
// end ;
1465: LD_VAR 0 1
1469: RET
// function SpaghettiAndCorpses ; var i , temp ; begin
1470: LD_INT 0
1472: PPUSH
1473: PPUSH
1474: PPUSH
// InGameOn ;
1475: CALL_OW 8
// centeronxy ( 101 , 78 ) ;
1479: LD_INT 101
1481: PPUSH
1482: LD_INT 78
1484: PPUSH
1485: CALL_OW 84
// Randomize ;
1489: CALL_OW 10
// uc_nation = nation_arabian ;
1493: LD_ADDR_OWVAR 21
1497: PUSH
1498: LD_INT 2
1500: ST_TO_ADDR
// uc_side = 5 ;
1501: LD_ADDR_OWVAR 20
1505: PUSH
1506: LD_INT 5
1508: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
1509: LD_ADDR_OWVAR 37
1513: PUSH
1514: LD_INT 14
1516: ST_TO_ADDR
// for i = 1 to 15 do
1517: LD_ADDR_VAR 0 2
1521: PUSH
1522: DOUBLE
1523: LD_INT 1
1525: DEC
1526: ST_TO_ADDR
1527: LD_INT 15
1529: PUSH
1530: FOR_TO
1531: IFFALSE 1635
// begin if rand ( 1 , 3 ) = 1 then
1533: LD_INT 1
1535: PPUSH
1536: LD_INT 3
1538: PPUSH
1539: CALL_OW 12
1543: PUSH
1544: LD_INT 1
1546: EQUAL
1547: IFFALSE 1564
// preparehuman ( false , class_mechanic , 0 ) else
1549: LD_INT 0
1551: PPUSH
1552: LD_INT 3
1554: PPUSH
1555: LD_INT 0
1557: PPUSH
1558: CALL_OW 380
1562: GO 1596
// preparehuman ( false , [ class_soldier , class_mortar ] [ rand ( 1 , 2 ) ] , 0 ) ;
1564: LD_INT 0
1566: PPUSH
1567: LD_INT 1
1569: PUSH
1570: LD_INT 8
1572: PUSH
1573: EMPTY
1574: LIST
1575: LIST
1576: PUSH
1577: LD_INT 1
1579: PPUSH
1580: LD_INT 2
1582: PPUSH
1583: CALL_OW 12
1587: ARRAY
1588: PPUSH
1589: LD_INT 0
1591: PPUSH
1592: CALL_OW 380
// temp = createhuman ;
1596: LD_ADDR_VAR 0 3
1600: PUSH
1601: CALL_OW 44
1605: ST_TO_ADDR
// placeunitarea ( temp , deadarea , false ) ;
1606: LD_VAR 0 3
1610: PPUSH
1611: LD_INT 3
1613: PPUSH
1614: LD_INT 0
1616: PPUSH
1617: CALL_OW 49
// setlives ( temp , 0 ) ;
1621: LD_VAR 0 3
1625: PPUSH
1626: LD_INT 0
1628: PPUSH
1629: CALL_OW 234
// end ;
1633: GO 1530
1635: POP
1636: POP
// for i = 1 to 15 do
1637: LD_ADDR_VAR 0 2
1641: PUSH
1642: DOUBLE
1643: LD_INT 1
1645: DEC
1646: ST_TO_ADDR
1647: LD_INT 15
1649: PUSH
1650: FOR_TO
1651: IFFALSE 1692
// begin temp = createvehicle ;
1653: LD_ADDR_VAR 0 3
1657: PUSH
1658: CALL_OW 45
1662: ST_TO_ADDR
// placeunitarea ( temp , deadarea , false ) ;
1663: LD_VAR 0 3
1667: PPUSH
1668: LD_INT 3
1670: PPUSH
1671: LD_INT 0
1673: PPUSH
1674: CALL_OW 49
// setlives ( temp , 0 ) ;
1678: LD_VAR 0 3
1682: PPUSH
1683: LD_INT 0
1685: PPUSH
1686: CALL_OW 234
// end ;
1690: GO 1650
1692: POP
1693: POP
// wait ( 0 0$2 ) ;
1694: LD_INT 70
1696: PPUSH
1697: CALL_OW 67
// enable ( 1 ) ;
1701: LD_INT 1
1703: ENABLE_MARKED
// end ;
1704: LD_VAR 0 1
1708: RET
// function LoadPlayer ; var PlayerVehicles , drivers ; var i , j , veh , temp_list , apes ; begin
1709: LD_INT 0
1711: PPUSH
1712: PPUSH
1713: PPUSH
1714: PPUSH
1715: PPUSH
1716: PPUSH
1717: PPUSH
1718: PPUSH
// Randomize ;
1719: CALL_OW 10
// if testing = true then
1723: LD_EXP 1
1727: PUSH
1728: LD_INT 1
1730: EQUAL
1731: IFFALSE 3453
// begin uc_side = 2 ;
1733: LD_ADDR_OWVAR 20
1737: PUSH
1738: LD_INT 2
1740: ST_TO_ADDR
// Snake = NewCharacter ( Snake ) ;
1741: LD_ADDR_EXP 22
1745: PUSH
1746: LD_STRING Snake
1748: PPUSH
1749: CALL_OW 25
1753: ST_TO_ADDR
// uc_nation = nation_nature ;
1754: LD_ADDR_OWVAR 21
1758: PUSH
1759: LD_INT 0
1761: ST_TO_ADDR
// hc_class = class_apeman_soldier ;
1762: LD_ADDR_OWVAR 28
1766: PUSH
1767: LD_INT 15
1769: ST_TO_ADDR
// hc_attr = [ 10 , 16 ] ;
1770: LD_ADDR_OWVAR 29
1774: PUSH
1775: LD_INT 10
1777: PUSH
1778: LD_INT 16
1780: PUSH
1781: EMPTY
1782: LIST
1783: LIST
1784: ST_TO_ADDR
// hc_skills = [ 4 , 5 , 8 , 4 ] ;
1785: LD_ADDR_OWVAR 31
1789: PUSH
1790: LD_INT 4
1792: PUSH
1793: LD_INT 5
1795: PUSH
1796: LD_INT 8
1798: PUSH
1799: LD_INT 4
1801: PUSH
1802: EMPTY
1803: LIST
1804: LIST
1805: LIST
1806: LIST
1807: ST_TO_ADDR
// hc_sex = 1 ;
1808: LD_ADDR_OWVAR 27
1812: PUSH
1813: LD_INT 1
1815: ST_TO_ADDR
// hc_name = Gonzo ;
1816: LD_ADDR_OWVAR 26
1820: PUSH
1821: LD_STRING Gonzo
1823: ST_TO_ADDR
// Gonzo = CreateHuman ;
1824: LD_ADDR_EXP 37
1828: PUSH
1829: CALL_OW 44
1833: ST_TO_ADDR
// uc_nation = nation_arabian ;
1834: LD_ADDR_OWVAR 21
1838: PUSH
1839: LD_INT 2
1841: ST_TO_ADDR
// hc_class = class_mechanic ;
1842: LD_ADDR_OWVAR 28
1846: PUSH
1847: LD_INT 3
1849: ST_TO_ADDR
// hc_attr = [ 12 , 10 ] ;
1850: LD_ADDR_OWVAR 29
1854: PUSH
1855: LD_INT 12
1857: PUSH
1858: LD_INT 10
1860: PUSH
1861: EMPTY
1862: LIST
1863: LIST
1864: ST_TO_ADDR
// hc_skills = [ 4 , 5 , 9 , 4 ] ;
1865: LD_ADDR_OWVAR 31
1869: PUSH
1870: LD_INT 4
1872: PUSH
1873: LD_INT 5
1875: PUSH
1876: LD_INT 9
1878: PUSH
1879: LD_INT 4
1881: PUSH
1882: EMPTY
1883: LIST
1884: LIST
1885: LIST
1886: LIST
1887: ST_TO_ADDR
// hc_sex = 1 ;
1888: LD_ADDR_OWVAR 27
1892: PUSH
1893: LD_INT 1
1895: ST_TO_ADDR
// hc_gallery = ar ;
1896: LD_ADDR_OWVAR 33
1900: PUSH
1901: LD_STRING ar
1903: ST_TO_ADDR
// hc_face_number = 2 ;
1904: LD_ADDR_OWVAR 34
1908: PUSH
1909: LD_INT 2
1911: ST_TO_ADDR
// hc_name = Olaf ;
1912: LD_ADDR_OWVAR 26
1916: PUSH
1917: LD_STRING Olaf
1919: ST_TO_ADDR
// Olaf = CreateHuman ;
1920: LD_ADDR_EXP 26
1924: PUSH
1925: CALL_OW 44
1929: ST_TO_ADDR
// hc_class = class_mortar ;
1930: LD_ADDR_OWVAR 28
1934: PUSH
1935: LD_INT 8
1937: ST_TO_ADDR
// hc_attr = [ 11 , 10 ] ;
1938: LD_ADDR_OWVAR 29
1942: PUSH
1943: LD_INT 11
1945: PUSH
1946: LD_INT 10
1948: PUSH
1949: EMPTY
1950: LIST
1951: LIST
1952: ST_TO_ADDR
// hc_skills = [ 9 , 6 , 6 , 4 ] ;
1953: LD_ADDR_OWVAR 31
1957: PUSH
1958: LD_INT 9
1960: PUSH
1961: LD_INT 6
1963: PUSH
1964: LD_INT 6
1966: PUSH
1967: LD_INT 4
1969: PUSH
1970: EMPTY
1971: LIST
1972: LIST
1973: LIST
1974: LIST
1975: ST_TO_ADDR
// hc_sex = 1 ;
1976: LD_ADDR_OWVAR 27
1980: PUSH
1981: LD_INT 1
1983: ST_TO_ADDR
// hc_gallery = ar ;
1984: LD_ADDR_OWVAR 33
1988: PUSH
1989: LD_STRING ar
1991: ST_TO_ADDR
// hc_face_number = 15 ;
1992: LD_ADDR_OWVAR 34
1996: PUSH
1997: LD_INT 15
1999: ST_TO_ADDR
// hc_name = Oswald ;
2000: LD_ADDR_OWVAR 26
2004: PUSH
2005: LD_STRING Oswald
2007: ST_TO_ADDR
// Oswald = CreateHuman ;
2008: LD_ADDR_EXP 28
2012: PUSH
2013: CALL_OW 44
2017: ST_TO_ADDR
// hc_class = class_mechanic ;
2018: LD_ADDR_OWVAR 28
2022: PUSH
2023: LD_INT 3
2025: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
2026: LD_ADDR_OWVAR 29
2030: PUSH
2031: LD_INT 10
2033: PUSH
2034: LD_INT 10
2036: PUSH
2037: EMPTY
2038: LIST
2039: LIST
2040: ST_TO_ADDR
// hc_skills = [ 8 , 5 , 8 , 5 ] ;
2041: LD_ADDR_OWVAR 31
2045: PUSH
2046: LD_INT 8
2048: PUSH
2049: LD_INT 5
2051: PUSH
2052: LD_INT 8
2054: PUSH
2055: LD_INT 5
2057: PUSH
2058: EMPTY
2059: LIST
2060: LIST
2061: LIST
2062: LIST
2063: ST_TO_ADDR
// hc_sex = 1 ;
2064: LD_ADDR_OWVAR 27
2068: PUSH
2069: LD_INT 1
2071: ST_TO_ADDR
// hc_gallery = ar ;
2072: LD_ADDR_OWVAR 33
2076: PUSH
2077: LD_STRING ar
2079: ST_TO_ADDR
// hc_face_number = 5 ;
2080: LD_ADDR_OWVAR 34
2084: PUSH
2085: LD_INT 5
2087: ST_TO_ADDR
// hc_name = Ralph ;
2088: LD_ADDR_OWVAR 26
2092: PUSH
2093: LD_STRING Ralph
2095: ST_TO_ADDR
// Ralph = CreateHuman ;
2096: LD_ADDR_EXP 29
2100: PUSH
2101: CALL_OW 44
2105: ST_TO_ADDR
// hc_class = class_scientistic ;
2106: LD_ADDR_OWVAR 28
2110: PUSH
2111: LD_INT 4
2113: ST_TO_ADDR
// hc_attr = [ 9 , 11 ] ;
2114: LD_ADDR_OWVAR 29
2118: PUSH
2119: LD_INT 9
2121: PUSH
2122: LD_INT 11
2124: PUSH
2125: EMPTY
2126: LIST
2127: LIST
2128: ST_TO_ADDR
// hc_skills = [ 5 , 6 , 9 , 9 ] ;
2129: LD_ADDR_OWVAR 31
2133: PUSH
2134: LD_INT 5
2136: PUSH
2137: LD_INT 6
2139: PUSH
2140: LD_INT 9
2142: PUSH
2143: LD_INT 9
2145: PUSH
2146: EMPTY
2147: LIST
2148: LIST
2149: LIST
2150: LIST
2151: ST_TO_ADDR
// hc_sex = 2 ;
2152: LD_ADDR_OWVAR 27
2156: PUSH
2157: LD_INT 2
2159: ST_TO_ADDR
// hc_gallery = ar ;
2160: LD_ADDR_OWVAR 33
2164: PUSH
2165: LD_STRING ar
2167: ST_TO_ADDR
// hc_face_number = 6 ;
2168: LD_ADDR_OWVAR 34
2172: PUSH
2173: LD_INT 6
2175: ST_TO_ADDR
// hc_name = Sonya ;
2176: LD_ADDR_OWVAR 26
2180: PUSH
2181: LD_STRING Sonya
2183: ST_TO_ADDR
// Sonya = CreateHuman ;
2184: LD_ADDR_EXP 27
2188: PUSH
2189: CALL_OW 44
2193: ST_TO_ADDR
// hc_class = class_scientistic ;
2194: LD_ADDR_OWVAR 28
2198: PUSH
2199: LD_INT 4
2201: ST_TO_ADDR
// hc_attr = [ 10 , 12 ] ;
2202: LD_ADDR_OWVAR 29
2206: PUSH
2207: LD_INT 10
2209: PUSH
2210: LD_INT 12
2212: PUSH
2213: EMPTY
2214: LIST
2215: LIST
2216: ST_TO_ADDR
// hc_skills = [ 4 , 5 , 6 , 9 ] ;
2217: LD_ADDR_OWVAR 31
2221: PUSH
2222: LD_INT 4
2224: PUSH
2225: LD_INT 5
2227: PUSH
2228: LD_INT 6
2230: PUSH
2231: LD_INT 9
2233: PUSH
2234: EMPTY
2235: LIST
2236: LIST
2237: LIST
2238: LIST
2239: ST_TO_ADDR
// hc_sex = 1 ;
2240: LD_ADDR_OWVAR 27
2244: PUSH
2245: LD_INT 1
2247: ST_TO_ADDR
// hc_gallery = ar_new ;
2248: LD_ADDR_OWVAR 33
2252: PUSH
2253: LD_STRING ar_new
2255: ST_TO_ADDR
// hc_face_number = 1 ;
2256: LD_ADDR_OWVAR 34
2260: PUSH
2261: LD_INT 1
2263: ST_TO_ADDR
// hc_name = Aviradze ;
2264: LD_ADDR_OWVAR 26
2268: PUSH
2269: LD_STRING Aviradze
2271: ST_TO_ADDR
// Aviradze = CreateHuman ;
2272: LD_ADDR_EXP 31
2276: PUSH
2277: CALL_OW 44
2281: ST_TO_ADDR
// hc_class = class_mortar ;
2282: LD_ADDR_OWVAR 28
2286: PUSH
2287: LD_INT 8
2289: ST_TO_ADDR
// hc_attr = [ 11 , 10 ] ;
2290: LD_ADDR_OWVAR 29
2294: PUSH
2295: LD_INT 11
2297: PUSH
2298: LD_INT 10
2300: PUSH
2301: EMPTY
2302: LIST
2303: LIST
2304: ST_TO_ADDR
// hc_skills = [ 8 , 6 , 7 , 4 ] ;
2305: LD_ADDR_OWVAR 31
2309: PUSH
2310: LD_INT 8
2312: PUSH
2313: LD_INT 6
2315: PUSH
2316: LD_INT 7
2318: PUSH
2319: LD_INT 4
2321: PUSH
2322: EMPTY
2323: LIST
2324: LIST
2325: LIST
2326: LIST
2327: ST_TO_ADDR
// hc_sex = 1 ;
2328: LD_ADDR_OWVAR 27
2332: PUSH
2333: LD_INT 1
2335: ST_TO_ADDR
// hc_gallery = ar_new ;
2336: LD_ADDR_OWVAR 33
2340: PUSH
2341: LD_STRING ar_new
2343: ST_TO_ADDR
// hc_face_number = 2 ;
2344: LD_ADDR_OWVAR 34
2348: PUSH
2349: LD_INT 2
2351: ST_TO_ADDR
// hc_name = Kowalski ;
2352: LD_ADDR_OWVAR 26
2356: PUSH
2357: LD_STRING Kowalski
2359: ST_TO_ADDR
// Kowalski = CreateHuman ;
2360: LD_ADDR_EXP 30
2364: PUSH
2365: CALL_OW 44
2369: ST_TO_ADDR
// hc_class = class_mechanic ;
2370: LD_ADDR_OWVAR 28
2374: PUSH
2375: LD_INT 3
2377: ST_TO_ADDR
// hc_attr = [ 9 , 10 ] ;
2378: LD_ADDR_OWVAR 29
2382: PUSH
2383: LD_INT 9
2385: PUSH
2386: LD_INT 10
2388: PUSH
2389: EMPTY
2390: LIST
2391: LIST
2392: ST_TO_ADDR
// hc_skills = [ 5 , 9 , 6 , 6 ] ;
2393: LD_ADDR_OWVAR 31
2397: PUSH
2398: LD_INT 5
2400: PUSH
2401: LD_INT 9
2403: PUSH
2404: LD_INT 6
2406: PUSH
2407: LD_INT 6
2409: PUSH
2410: EMPTY
2411: LIST
2412: LIST
2413: LIST
2414: LIST
2415: ST_TO_ADDR
// hc_sex = 2 ;
2416: LD_ADDR_OWVAR 27
2420: PUSH
2421: LD_INT 2
2423: ST_TO_ADDR
// hc_gallery = ar_new ;
2424: LD_ADDR_OWVAR 33
2428: PUSH
2429: LD_STRING ar_new
2431: ST_TO_ADDR
// hc_face_number = 5 ;
2432: LD_ADDR_OWVAR 34
2436: PUSH
2437: LD_INT 5
2439: ST_TO_ADDR
// hc_name = Evelyn ;
2440: LD_ADDR_OWVAR 26
2444: PUSH
2445: LD_STRING Evelyn
2447: ST_TO_ADDR
// Evelyn = CreateHuman ;
2448: LD_ADDR_EXP 35
2452: PUSH
2453: CALL_OW 44
2457: ST_TO_ADDR
// hc_class = class_mechanic ;
2458: LD_ADDR_OWVAR 28
2462: PUSH
2463: LD_INT 3
2465: ST_TO_ADDR
// hc_attr = [ 10 , 10 ] ;
2466: LD_ADDR_OWVAR 29
2470: PUSH
2471: LD_INT 10
2473: PUSH
2474: LD_INT 10
2476: PUSH
2477: EMPTY
2478: LIST
2479: LIST
2480: ST_TO_ADDR
// hc_skills = [ 6 , 4 , 9 , 5 ] ;
2481: LD_ADDR_OWVAR 31
2485: PUSH
2486: LD_INT 6
2488: PUSH
2489: LD_INT 4
2491: PUSH
2492: LD_INT 9
2494: PUSH
2495: LD_INT 5
2497: PUSH
2498: EMPTY
2499: LIST
2500: LIST
2501: LIST
2502: LIST
2503: ST_TO_ADDR
// hc_sex = 1 ;
2504: LD_ADDR_OWVAR 27
2508: PUSH
2509: LD_INT 1
2511: ST_TO_ADDR
// hc_gallery = ar_new ;
2512: LD_ADDR_OWVAR 33
2516: PUSH
2517: LD_STRING ar_new
2519: ST_TO_ADDR
// hc_face_number = 31 ;
2520: LD_ADDR_OWVAR 34
2524: PUSH
2525: LD_INT 31
2527: ST_TO_ADDR
// hc_name = Swansson ;
2528: LD_ADDR_OWVAR 26
2532: PUSH
2533: LD_STRING Swansson
2535: ST_TO_ADDR
// Swansson = CreateHuman ;
2536: LD_ADDR_EXP 32
2540: PUSH
2541: CALL_OW 44
2545: ST_TO_ADDR
// hc_class = class_mechanic ;
2546: LD_ADDR_OWVAR 28
2550: PUSH
2551: LD_INT 3
2553: ST_TO_ADDR
// hc_attr = [ 11 , 10 ] ;
2554: LD_ADDR_OWVAR 29
2558: PUSH
2559: LD_INT 11
2561: PUSH
2562: LD_INT 10
2564: PUSH
2565: EMPTY
2566: LIST
2567: LIST
2568: ST_TO_ADDR
// hc_skills = [ 7 , 5 , 9 , 5 ] ;
2569: LD_ADDR_OWVAR 31
2573: PUSH
2574: LD_INT 7
2576: PUSH
2577: LD_INT 5
2579: PUSH
2580: LD_INT 9
2582: PUSH
2583: LD_INT 5
2585: PUSH
2586: EMPTY
2587: LIST
2588: LIST
2589: LIST
2590: LIST
2591: ST_TO_ADDR
// hc_sex = 1 ;
2592: LD_ADDR_OWVAR 27
2596: PUSH
2597: LD_INT 1
2599: ST_TO_ADDR
// hc_gallery = ar_new ;
2600: LD_ADDR_OWVAR 33
2604: PUSH
2605: LD_STRING ar_new
2607: ST_TO_ADDR
// hc_face_number = 13 ;
2608: LD_ADDR_OWVAR 34
2612: PUSH
2613: LD_INT 13
2615: ST_TO_ADDR
// hc_name = Dwayne ;
2616: LD_ADDR_OWVAR 26
2620: PUSH
2621: LD_STRING Dwayne
2623: ST_TO_ADDR
// Dwayne = CreateHuman ;
2624: LD_ADDR_EXP 33
2628: PUSH
2629: CALL_OW 44
2633: ST_TO_ADDR
// hc_class = class_scientistic ;
2634: LD_ADDR_OWVAR 28
2638: PUSH
2639: LD_INT 4
2641: ST_TO_ADDR
// hc_attr = [ 9 , 10 ] ;
2642: LD_ADDR_OWVAR 29
2646: PUSH
2647: LD_INT 9
2649: PUSH
2650: LD_INT 10
2652: PUSH
2653: EMPTY
2654: LIST
2655: LIST
2656: ST_TO_ADDR
// hc_skills = [ 4 , 6 , 5 , 9 ] ;
2657: LD_ADDR_OWVAR 31
2661: PUSH
2662: LD_INT 4
2664: PUSH
2665: LD_INT 6
2667: PUSH
2668: LD_INT 5
2670: PUSH
2671: LD_INT 9
2673: PUSH
2674: EMPTY
2675: LIST
2676: LIST
2677: LIST
2678: LIST
2679: ST_TO_ADDR
// hc_sex = 1 ;
2680: LD_ADDR_OWVAR 27
2684: PUSH
2685: LD_INT 1
2687: ST_TO_ADDR
// hc_gallery = us ;
2688: LD_ADDR_OWVAR 33
2692: PUSH
2693: LD_STRING us
2695: ST_TO_ADDR
// hc_face_number = 10 ;
2696: LD_ADDR_OWVAR 34
2700: PUSH
2701: LD_INT 10
2703: ST_TO_ADDR
// hc_name = Khattam ;
2704: LD_ADDR_OWVAR 26
2708: PUSH
2709: LD_STRING Khattam
2711: ST_TO_ADDR
// Khattam = CreateHuman ;
2712: LD_ADDR_EXP 34
2716: PUSH
2717: CALL_OW 44
2721: ST_TO_ADDR
// hc_class = class_scientistic ;
2722: LD_ADDR_OWVAR 28
2726: PUSH
2727: LD_INT 4
2729: ST_TO_ADDR
// hc_attr = [ 9 , 9 ] ;
2730: LD_ADDR_OWVAR 29
2734: PUSH
2735: LD_INT 9
2737: PUSH
2738: LD_INT 9
2740: PUSH
2741: EMPTY
2742: LIST
2743: LIST
2744: ST_TO_ADDR
// hc_skills = [ 4 , 8 , 8 , 10 ] ;
2745: LD_ADDR_OWVAR 31
2749: PUSH
2750: LD_INT 4
2752: PUSH
2753: LD_INT 8
2755: PUSH
2756: LD_INT 8
2758: PUSH
2759: LD_INT 10
2761: PUSH
2762: EMPTY
2763: LIST
2764: LIST
2765: LIST
2766: LIST
2767: ST_TO_ADDR
// hc_sex = 2 ;
2768: LD_ADDR_OWVAR 27
2772: PUSH
2773: LD_INT 2
2775: ST_TO_ADDR
// hc_gallery = ar_new ;
2776: LD_ADDR_OWVAR 33
2780: PUSH
2781: LD_STRING ar_new
2783: ST_TO_ADDR
// hc_face_number = 34 ;
2784: LD_ADDR_OWVAR 34
2788: PUSH
2789: LD_INT 34
2791: ST_TO_ADDR
// hc_name = Makise ;
2792: LD_ADDR_OWVAR 26
2796: PUSH
2797: LD_STRING Makise
2799: ST_TO_ADDR
// Makise = CreateHuman ;
2800: LD_ADDR_EXP 36
2804: PUSH
2805: CALL_OW 44
2809: ST_TO_ADDR
// hc_class = class_mortar ;
2810: LD_ADDR_OWVAR 28
2814: PUSH
2815: LD_INT 8
2817: ST_TO_ADDR
// hc_attr = [ 12 , 12 ] ;
2818: LD_ADDR_OWVAR 29
2822: PUSH
2823: LD_INT 12
2825: PUSH
2826: LD_INT 12
2828: PUSH
2829: EMPTY
2830: LIST
2831: LIST
2832: ST_TO_ADDR
// hc_skills = [ 9 , 4 , 8 , 6 ] ;
2833: LD_ADDR_OWVAR 31
2837: PUSH
2838: LD_INT 9
2840: PUSH
2841: LD_INT 4
2843: PUSH
2844: LD_INT 8
2846: PUSH
2847: LD_INT 6
2849: PUSH
2850: EMPTY
2851: LIST
2852: LIST
2853: LIST
2854: LIST
2855: ST_TO_ADDR
// hc_sex = 2 ;
2856: LD_ADDR_OWVAR 27
2860: PUSH
2861: LD_INT 2
2863: ST_TO_ADDR
// hc_gallery = ru ;
2864: LD_ADDR_OWVAR 33
2868: PUSH
2869: LD_STRING ru
2871: ST_TO_ADDR
// hc_face_number = 24 ;
2872: LD_ADDR_OWVAR 34
2876: PUSH
2877: LD_INT 24
2879: ST_TO_ADDR
// hc_name = Heike ;
2880: LD_ADDR_OWVAR 26
2884: PUSH
2885: LD_STRING Heike
2887: ST_TO_ADDR
// Heike = CreateHuman ;
2888: LD_ADDR_EXP 25
2892: PUSH
2893: CALL_OW 44
2897: ST_TO_ADDR
// playerpeople = [ Oswald , Olaf , Sonya , Ralph , Kowalski , Aviradze , Swansson , Dwayne , Khattam , Evelyn , Makise ] ^ others diff 0 ;
2898: LD_ADDR_EXP 39
2902: PUSH
2903: LD_EXP 28
2907: PUSH
2908: LD_EXP 26
2912: PUSH
2913: LD_EXP 27
2917: PUSH
2918: LD_EXP 29
2922: PUSH
2923: LD_EXP 30
2927: PUSH
2928: LD_EXP 31
2932: PUSH
2933: LD_EXP 32
2937: PUSH
2938: LD_EXP 33
2942: PUSH
2943: LD_EXP 34
2947: PUSH
2948: LD_EXP 35
2952: PUSH
2953: LD_EXP 36
2957: PUSH
2958: EMPTY
2959: LIST
2960: LIST
2961: LIST
2962: LIST
2963: LIST
2964: LIST
2965: LIST
2966: LIST
2967: LIST
2968: LIST
2969: LIST
2970: PUSH
2971: LD_EXP 38
2975: ADD
2976: PUSH
2977: LD_INT 0
2979: DIFF
2980: ST_TO_ADDR
// temp_list = [ [ ar_half_tracked , control_apeman , engine_siberite , ar_radar ] , [ ar_half_tracked , control_apeman , engine_siberite , ar_rocket_launcher ] , [ ar_half_tracked , control_apeman , engine_siberite , ar_gun ] , [ ar_half_tracked , control_manual , engine_siberite , ar_gun ] , [ ar_half_tracked , control_manual , engine_siberite , ar_gun ] , [ ar_half_tracked , control_manual , engine_siberite , ar_rocket_launcher ] , [ ar_half_tracked , control_manual , engine_siberite , ar_rocket_launcher ] ] ;
2981: LD_ADDR_VAR 0 7
2985: PUSH
2986: LD_INT 14
2988: PUSH
2989: LD_INT 5
2991: PUSH
2992: LD_INT 3
2994: PUSH
2995: LD_INT 30
2997: PUSH
2998: EMPTY
2999: LIST
3000: LIST
3001: LIST
3002: LIST
3003: PUSH
3004: LD_INT 14
3006: PUSH
3007: LD_INT 5
3009: PUSH
3010: LD_INT 3
3012: PUSH
3013: LD_INT 28
3015: PUSH
3016: EMPTY
3017: LIST
3018: LIST
3019: LIST
3020: LIST
3021: PUSH
3022: LD_INT 14
3024: PUSH
3025: LD_INT 5
3027: PUSH
3028: LD_INT 3
3030: PUSH
3031: LD_INT 27
3033: PUSH
3034: EMPTY
3035: LIST
3036: LIST
3037: LIST
3038: LIST
3039: PUSH
3040: LD_INT 14
3042: PUSH
3043: LD_INT 1
3045: PUSH
3046: LD_INT 3
3048: PUSH
3049: LD_INT 27
3051: PUSH
3052: EMPTY
3053: LIST
3054: LIST
3055: LIST
3056: LIST
3057: PUSH
3058: LD_INT 14
3060: PUSH
3061: LD_INT 1
3063: PUSH
3064: LD_INT 3
3066: PUSH
3067: LD_INT 27
3069: PUSH
3070: EMPTY
3071: LIST
3072: LIST
3073: LIST
3074: LIST
3075: PUSH
3076: LD_INT 14
3078: PUSH
3079: LD_INT 1
3081: PUSH
3082: LD_INT 3
3084: PUSH
3085: LD_INT 28
3087: PUSH
3088: EMPTY
3089: LIST
3090: LIST
3091: LIST
3092: LIST
3093: PUSH
3094: LD_INT 14
3096: PUSH
3097: LD_INT 1
3099: PUSH
3100: LD_INT 3
3102: PUSH
3103: LD_INT 28
3105: PUSH
3106: EMPTY
3107: LIST
3108: LIST
3109: LIST
3110: LIST
3111: PUSH
3112: EMPTY
3113: LIST
3114: LIST
3115: LIST
3116: LIST
3117: LIST
3118: LIST
3119: LIST
3120: ST_TO_ADDR
// PlayerVehicles = [ ] ;
3121: LD_ADDR_VAR 0 2
3125: PUSH
3126: EMPTY
3127: ST_TO_ADDR
// for i in temp_list do
3128: LD_ADDR_VAR 0 4
3132: PUSH
3133: LD_VAR 0 7
3137: PUSH
3138: FOR_IN
3139: IFFALSE 3215
// begin vc_chassis = i [ 1 ] ;
3141: LD_ADDR_OWVAR 37
3145: PUSH
3146: LD_VAR 0 4
3150: PUSH
3151: LD_INT 1
3153: ARRAY
3154: ST_TO_ADDR
// vc_control = i [ 2 ] ;
3155: LD_ADDR_OWVAR 38
3159: PUSH
3160: LD_VAR 0 4
3164: PUSH
3165: LD_INT 2
3167: ARRAY
3168: ST_TO_ADDR
// vc_engine = i [ 3 ] ;
3169: LD_ADDR_OWVAR 39
3173: PUSH
3174: LD_VAR 0 4
3178: PUSH
3179: LD_INT 3
3181: ARRAY
3182: ST_TO_ADDR
// vc_weapon = i [ 4 ] ;
3183: LD_ADDR_OWVAR 40
3187: PUSH
3188: LD_VAR 0 4
3192: PUSH
3193: LD_INT 4
3195: ARRAY
3196: ST_TO_ADDR
// PlayerVehicles = PlayerVehicles ^ createvehicle ;
3197: LD_ADDR_VAR 0 2
3201: PUSH
3202: LD_VAR 0 2
3206: PUSH
3207: CALL_OW 45
3211: ADD
3212: ST_TO_ADDR
// end ;
3213: GO 3138
3215: POP
3216: POP
// temp_list = Heike ;
3217: LD_ADDR_VAR 0 7
3221: PUSH
3222: LD_EXP 25
3226: ST_TO_ADDR
// for i = 1 to [ 5 , 4 , 3 ] [ difficulty ] do
3227: LD_ADDR_VAR 0 4
3231: PUSH
3232: DOUBLE
3233: LD_INT 1
3235: DEC
3236: ST_TO_ADDR
3237: LD_INT 5
3239: PUSH
3240: LD_INT 4
3242: PUSH
3243: LD_INT 3
3245: PUSH
3246: EMPTY
3247: LIST
3248: LIST
3249: LIST
3250: PUSH
3251: LD_OWVAR 67
3255: ARRAY
3256: PUSH
3257: FOR_TO
3258: IFFALSE 3308
// begin temp_list = temp_list ^ playerpeople [ rand ( 1 , playerpeople ) ] ;
3260: LD_ADDR_VAR 0 7
3264: PUSH
3265: LD_VAR 0 7
3269: PUSH
3270: LD_EXP 39
3274: PUSH
3275: LD_INT 1
3277: PPUSH
3278: LD_EXP 39
3282: PPUSH
3283: CALL_OW 12
3287: ARRAY
3288: ADD
3289: ST_TO_ADDR
// playerpeople = playerpeople diff temp_list ;
3290: LD_ADDR_EXP 39
3294: PUSH
3295: LD_EXP 39
3299: PUSH
3300: LD_VAR 0 7
3304: DIFF
3305: ST_TO_ADDR
// end ;
3306: GO 3257
3308: POP
3309: POP
// playerpeople = temp_list ;
3310: LD_ADDR_EXP 39
3314: PUSH
3315: LD_VAR 0 7
3319: ST_TO_ADDR
// for i in playerpeople do
3320: LD_ADDR_VAR 0 4
3324: PUSH
3325: LD_EXP 39
3329: PUSH
3330: FOR_IN
3331: IFFALSE 3402
// if unitfilter ( PlayerVehicles , [ f_empty ] ) > 0 then
3333: LD_VAR 0 2
3337: PPUSH
3338: LD_INT 58
3340: PUSH
3341: EMPTY
3342: LIST
3343: PPUSH
3344: CALL_OW 72
3348: PUSH
3349: LD_INT 0
3351: GREATER
3352: IFFALSE 3385
// placehumaninunit ( i , unitfilter ( PlayerVehicles , [ f_empty ] ) [ 1 ] ) else
3354: LD_VAR 0 4
3358: PPUSH
3359: LD_VAR 0 2
3363: PPUSH
3364: LD_INT 58
3366: PUSH
3367: EMPTY
3368: LIST
3369: PPUSH
3370: CALL_OW 72
3374: PUSH
3375: LD_INT 1
3377: ARRAY
3378: PPUSH
3379: CALL_OW 52
3383: GO 3400
// placeunitarea ( i , entry , false ) ;
3385: LD_VAR 0 4
3389: PPUSH
3390: LD_INT 1
3392: PPUSH
3393: LD_INT 0
3395: PPUSH
3396: CALL_OW 49
3400: GO 3330
3402: POP
3403: POP
// for i in PlayerVehicles do
3404: LD_ADDR_VAR 0 4
3408: PUSH
3409: LD_VAR 0 2
3413: PUSH
3414: FOR_IN
3415: IFFALSE 3434
// placeunitarea ( i , entry , false ) ;
3417: LD_VAR 0 4
3421: PPUSH
3422: LD_INT 1
3424: PPUSH
3425: LD_INT 0
3427: PPUSH
3428: CALL_OW 49
3432: GO 3414
3434: POP
3435: POP
// placeunitarea ( Gonzo , entry , false ) ;
3436: LD_EXP 37
3440: PPUSH
3441: LD_INT 1
3443: PPUSH
3444: LD_INT 0
3446: PPUSH
3447: CALL_OW 49
// end else
3451: GO 4968
// begin PlayerVehicles = LoadVariable ( Rescue_Vehicles_14 , 0 ) ;
3453: LD_ADDR_VAR 0 2
3457: PUSH
3458: LD_STRING Rescue_Vehicles_14
3460: PPUSH
3461: LD_INT 0
3463: PPUSH
3464: CALL_OW 30
3468: ST_TO_ADDR
// drivers = LoadVariable ( rescue_drivers_14 , 0 ) ;
3469: LD_ADDR_VAR 0 3
3473: PUSH
3474: LD_STRING rescue_drivers_14
3476: PPUSH
3477: LD_INT 0
3479: PPUSH
3480: CALL_OW 30
3484: ST_TO_ADDR
// uc_side = 2 ;
3485: LD_ADDR_OWVAR 20
3489: PUSH
3490: LD_INT 2
3492: ST_TO_ADDR
// uc_nation = nation_arabian ;
3493: LD_ADDR_OWVAR 21
3497: PUSH
3498: LD_INT 2
3500: ST_TO_ADDR
// Snake = NewCharacter ( Snake ) ;
3501: LD_ADDR_EXP 22
3505: PUSH
3506: LD_STRING Snake
3508: PPUSH
3509: CALL_OW 25
3513: ST_TO_ADDR
// Heike = LoadCharacter ( Heike_Rescue_14_cont , 0 , 0 ) ;
3514: LD_ADDR_EXP 25
3518: PUSH
3519: LD_STRING Heike_Rescue_14_cont
3521: PPUSH
3522: LD_INT 0
3524: PPUSH
3525: LD_INT 0
3527: PPUSH
3528: CALL_OW 527
3532: ST_TO_ADDR
// Gonzo = LoadCharacter ( Gonzo_Rescue_14_cont , 0 , 0 ) ;
3533: LD_ADDR_EXP 37
3537: PUSH
3538: LD_STRING Gonzo_Rescue_14_cont
3540: PPUSH
3541: LD_INT 0
3543: PPUSH
3544: LD_INT 0
3546: PPUSH
3547: CALL_OW 527
3551: ST_TO_ADDR
// if TestCharacters ( Olaf_Rescue_14_cont ) then
3552: LD_STRING Olaf_Rescue_14_cont
3554: PPUSH
3555: CALL_OW 28
3559: IFFALSE 3580
// Olaf = LoadCharacter ( Olaf_Rescue_14_cont , 0 , 0 ) ;
3561: LD_ADDR_EXP 26
3565: PUSH
3566: LD_STRING Olaf_Rescue_14_cont
3568: PPUSH
3569: LD_INT 0
3571: PPUSH
3572: LD_INT 0
3574: PPUSH
3575: CALL_OW 527
3579: ST_TO_ADDR
// if TestCharacters ( Sonya_Rescue_14_cont ) then
3580: LD_STRING Sonya_Rescue_14_cont
3582: PPUSH
3583: CALL_OW 28
3587: IFFALSE 3608
// Sonya = LoadCharacter ( Sonya_Rescue_14_cont , 0 , 0 ) ;
3589: LD_ADDR_EXP 27
3593: PUSH
3594: LD_STRING Sonya_Rescue_14_cont
3596: PPUSH
3597: LD_INT 0
3599: PPUSH
3600: LD_INT 0
3602: PPUSH
3603: CALL_OW 527
3607: ST_TO_ADDR
// if TestCharacters ( Oswald_Rescue_14_cont ) then
3608: LD_STRING Oswald_Rescue_14_cont
3610: PPUSH
3611: CALL_OW 28
3615: IFFALSE 3636
// Oswald = LoadCharacter ( Oswald_Rescue_14_cont , 0 , 0 ) ;
3617: LD_ADDR_EXP 28
3621: PUSH
3622: LD_STRING Oswald_Rescue_14_cont
3624: PPUSH
3625: LD_INT 0
3627: PPUSH
3628: LD_INT 0
3630: PPUSH
3631: CALL_OW 527
3635: ST_TO_ADDR
// if TestCharacters ( Ralph_Rescue_14_cont ) then
3636: LD_STRING Ralph_Rescue_14_cont
3638: PPUSH
3639: CALL_OW 28
3643: IFFALSE 3664
// Ralph = LoadCharacter ( Ralph_Rescue_14_cont , 0 , 0 ) ;
3645: LD_ADDR_EXP 29
3649: PUSH
3650: LD_STRING Ralph_Rescue_14_cont
3652: PPUSH
3653: LD_INT 0
3655: PPUSH
3656: LD_INT 0
3658: PPUSH
3659: CALL_OW 527
3663: ST_TO_ADDR
// if TestCharacters ( Kowalski_Rescue_14_cont ) then
3664: LD_STRING Kowalski_Rescue_14_cont
3666: PPUSH
3667: CALL_OW 28
3671: IFFALSE 3692
// Kowalski = LoadCharacter ( Kowalski_Rescue_14_cont , 0 , 0 ) ;
3673: LD_ADDR_EXP 30
3677: PUSH
3678: LD_STRING Kowalski_Rescue_14_cont
3680: PPUSH
3681: LD_INT 0
3683: PPUSH
3684: LD_INT 0
3686: PPUSH
3687: CALL_OW 527
3691: ST_TO_ADDR
// if TestCharacters ( Aviradze_Rescue_14_cont ) then
3692: LD_STRING Aviradze_Rescue_14_cont
3694: PPUSH
3695: CALL_OW 28
3699: IFFALSE 3720
// Aviradze = LoadCharacter ( Aviradze_Rescue_14_cont , 0 , 0 ) ;
3701: LD_ADDR_EXP 31
3705: PUSH
3706: LD_STRING Aviradze_Rescue_14_cont
3708: PPUSH
3709: LD_INT 0
3711: PPUSH
3712: LD_INT 0
3714: PPUSH
3715: CALL_OW 527
3719: ST_TO_ADDR
// if TestCharacters ( Swansson_Rescue_14_cont ) then
3720: LD_STRING Swansson_Rescue_14_cont
3722: PPUSH
3723: CALL_OW 28
3727: IFFALSE 3748
// Swansson = LoadCharacter ( Swansson_Rescue_14_cont , 0 , 0 ) ;
3729: LD_ADDR_EXP 32
3733: PUSH
3734: LD_STRING Swansson_Rescue_14_cont
3736: PPUSH
3737: LD_INT 0
3739: PPUSH
3740: LD_INT 0
3742: PPUSH
3743: CALL_OW 527
3747: ST_TO_ADDR
// if TestCharacters ( Dwayne_Rescue_14_cont ) then
3748: LD_STRING Dwayne_Rescue_14_cont
3750: PPUSH
3751: CALL_OW 28
3755: IFFALSE 3776
// Dwayne = LoadCharacter ( Dwayne_Rescue_14_cont , 0 , 0 ) ;
3757: LD_ADDR_EXP 33
3761: PUSH
3762: LD_STRING Dwayne_Rescue_14_cont
3764: PPUSH
3765: LD_INT 0
3767: PPUSH
3768: LD_INT 0
3770: PPUSH
3771: CALL_OW 527
3775: ST_TO_ADDR
// if TestCharacters ( Khattam_Rescue_14_cont ) then
3776: LD_STRING Khattam_Rescue_14_cont
3778: PPUSH
3779: CALL_OW 28
3783: IFFALSE 3804
// Khattam = LoadCharacter ( Khattam_Rescue_14_cont , 0 , 0 ) ;
3785: LD_ADDR_EXP 34
3789: PUSH
3790: LD_STRING Khattam_Rescue_14_cont
3792: PPUSH
3793: LD_INT 0
3795: PPUSH
3796: LD_INT 0
3798: PPUSH
3799: CALL_OW 527
3803: ST_TO_ADDR
// if TestCharacters ( Evelyn_Rescue_14_cont ) then
3804: LD_STRING Evelyn_Rescue_14_cont
3806: PPUSH
3807: CALL_OW 28
3811: IFFALSE 3832
// Evelyn = LoadCharacter ( Evelyn_Rescue_14_cont , 0 , 0 ) ;
3813: LD_ADDR_EXP 35
3817: PUSH
3818: LD_STRING Evelyn_Rescue_14_cont
3820: PPUSH
3821: LD_INT 0
3823: PPUSH
3824: LD_INT 0
3826: PPUSH
3827: CALL_OW 527
3831: ST_TO_ADDR
// if TestCharacters ( Makise_Rescue_14_cont ) then
3832: LD_STRING Makise_Rescue_14_cont
3834: PPUSH
3835: CALL_OW 28
3839: IFFALSE 3860
// Makise = LoadCharacter ( Makise_Rescue_14_cont , 0 , 0 ) ;
3841: LD_ADDR_EXP 36
3845: PUSH
3846: LD_STRING Makise_Rescue_14_cont
3848: PPUSH
3849: LD_INT 0
3851: PPUSH
3852: LD_INT 0
3854: PPUSH
3855: CALL_OW 527
3859: ST_TO_ADDR
// others = LoadCharacter ( Others_Rescue_14_cont , 0 , 0 ) ;
3860: LD_ADDR_EXP 38
3864: PUSH
3865: LD_STRING Others_Rescue_14_cont
3867: PPUSH
3868: LD_INT 0
3870: PPUSH
3871: LD_INT 0
3873: PPUSH
3874: CALL_OW 527
3878: ST_TO_ADDR
// apes = LoadCharacter ( Apes_Rescue_14_cont , 0 , 0 ) ;
3879: LD_ADDR_VAR 0 8
3883: PUSH
3884: LD_STRING Apes_Rescue_14_cont
3886: PPUSH
3887: LD_INT 0
3889: PPUSH
3890: LD_INT 0
3892: PPUSH
3893: CALL_OW 527
3897: ST_TO_ADDR
// playerpeople = [ Heike , Olaf , Sonya , Oswald , Ralph , Kowalski , Aviradze , Swansson , Dwayne , Khattam , Evelyn , Makise ] ^ others ;
3898: LD_ADDR_EXP 39
3902: PUSH
3903: LD_EXP 25
3907: PUSH
3908: LD_EXP 26
3912: PUSH
3913: LD_EXP 27
3917: PUSH
3918: LD_EXP 28
3922: PUSH
3923: LD_EXP 29
3927: PUSH
3928: LD_EXP 30
3932: PUSH
3933: LD_EXP 31
3937: PUSH
3938: LD_EXP 32
3942: PUSH
3943: LD_EXP 33
3947: PUSH
3948: LD_EXP 34
3952: PUSH
3953: LD_EXP 35
3957: PUSH
3958: LD_EXP 36
3962: PUSH
3963: EMPTY
3964: LIST
3965: LIST
3966: LIST
3967: LIST
3968: LIST
3969: LIST
3970: LIST
3971: LIST
3972: LIST
3973: LIST
3974: LIST
3975: LIST
3976: PUSH
3977: LD_EXP 38
3981: ADD
3982: ST_TO_ADDR
// playerpeople_previous_map = [ ] ;
3983: LD_ADDR_EXP 41
3987: PUSH
3988: EMPTY
3989: ST_TO_ADDR
// if TestCharacters ( Olaf_Escort_14_cont ) then
3990: LD_STRING Olaf_Escort_14_cont
3992: PPUSH
3993: CALL_OW 28
3997: IFFALSE 4034
// begin Olaf = LoadCharacter ( Olaf_Escort_14_cont , 0 , 0 ) ;
3999: LD_ADDR_EXP 26
4003: PUSH
4004: LD_STRING Olaf_Escort_14_cont
4006: PPUSH
4007: LD_INT 0
4009: PPUSH
4010: LD_INT 0
4012: PPUSH
4013: CALL_OW 527
4017: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ^ Olaf ;
4018: LD_ADDR_EXP 41
4022: PUSH
4023: LD_EXP 41
4027: PUSH
4028: LD_EXP 26
4032: ADD
4033: ST_TO_ADDR
// end ; if TestCharacters ( Sonya_Escort_14_cont ) then
4034: LD_STRING Sonya_Escort_14_cont
4036: PPUSH
4037: CALL_OW 28
4041: IFFALSE 4078
// begin Sonya = LoadCharacter ( Sonya_Escort_14_cont , 0 , 0 ) ;
4043: LD_ADDR_EXP 27
4047: PUSH
4048: LD_STRING Sonya_Escort_14_cont
4050: PPUSH
4051: LD_INT 0
4053: PPUSH
4054: LD_INT 0
4056: PPUSH
4057: CALL_OW 527
4061: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ^ Sonya ;
4062: LD_ADDR_EXP 41
4066: PUSH
4067: LD_EXP 41
4071: PUSH
4072: LD_EXP 27
4076: ADD
4077: ST_TO_ADDR
// end ; if TestCharacters ( Oswald_Escort_14_cont ) then
4078: LD_STRING Oswald_Escort_14_cont
4080: PPUSH
4081: CALL_OW 28
4085: IFFALSE 4122
// begin Oswald = LoadCharacter ( Oswald_Escort_14_cont , 0 , 0 ) ;
4087: LD_ADDR_EXP 28
4091: PUSH
4092: LD_STRING Oswald_Escort_14_cont
4094: PPUSH
4095: LD_INT 0
4097: PPUSH
4098: LD_INT 0
4100: PPUSH
4101: CALL_OW 527
4105: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ^ Oswald ;
4106: LD_ADDR_EXP 41
4110: PUSH
4111: LD_EXP 41
4115: PUSH
4116: LD_EXP 28
4120: ADD
4121: ST_TO_ADDR
// end ; if TestCharacters ( Ralph_Escort_14_cont ) then
4122: LD_STRING Ralph_Escort_14_cont
4124: PPUSH
4125: CALL_OW 28
4129: IFFALSE 4166
// begin Ralph = LoadCharacter ( Ralph_Escort_14_cont , 0 , 0 ) ;
4131: LD_ADDR_EXP 29
4135: PUSH
4136: LD_STRING Ralph_Escort_14_cont
4138: PPUSH
4139: LD_INT 0
4141: PPUSH
4142: LD_INT 0
4144: PPUSH
4145: CALL_OW 527
4149: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ^ Ralph ;
4150: LD_ADDR_EXP 41
4154: PUSH
4155: LD_EXP 41
4159: PUSH
4160: LD_EXP 29
4164: ADD
4165: ST_TO_ADDR
// end ; if TestCharacters ( Kowalski_Escort_14_cont ) then
4166: LD_STRING Kowalski_Escort_14_cont
4168: PPUSH
4169: CALL_OW 28
4173: IFFALSE 4210
// begin Kowalski = LoadCharacter ( Kowalski_Escort_14_cont , 0 , 0 ) ;
4175: LD_ADDR_EXP 30
4179: PUSH
4180: LD_STRING Kowalski_Escort_14_cont
4182: PPUSH
4183: LD_INT 0
4185: PPUSH
4186: LD_INT 0
4188: PPUSH
4189: CALL_OW 527
4193: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ^ Kowalski ;
4194: LD_ADDR_EXP 41
4198: PUSH
4199: LD_EXP 41
4203: PUSH
4204: LD_EXP 30
4208: ADD
4209: ST_TO_ADDR
// end ; if TestCharacters ( Aviradze_Escort_14_cont ) then
4210: LD_STRING Aviradze_Escort_14_cont
4212: PPUSH
4213: CALL_OW 28
4217: IFFALSE 4254
// begin Aviradze = LoadCharacter ( Aviradze_Escort_14_cont , 0 , 0 ) ;
4219: LD_ADDR_EXP 31
4223: PUSH
4224: LD_STRING Aviradze_Escort_14_cont
4226: PPUSH
4227: LD_INT 0
4229: PPUSH
4230: LD_INT 0
4232: PPUSH
4233: CALL_OW 527
4237: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ^ Aviradze ;
4238: LD_ADDR_EXP 41
4242: PUSH
4243: LD_EXP 41
4247: PUSH
4248: LD_EXP 31
4252: ADD
4253: ST_TO_ADDR
// end ; if TestCharacters ( Swansson_Escort_14_cont ) then
4254: LD_STRING Swansson_Escort_14_cont
4256: PPUSH
4257: CALL_OW 28
4261: IFFALSE 4298
// begin Swansson = LoadCharacter ( Swansson_Escort_14_cont , 0 , 0 ) ;
4263: LD_ADDR_EXP 32
4267: PUSH
4268: LD_STRING Swansson_Escort_14_cont
4270: PPUSH
4271: LD_INT 0
4273: PPUSH
4274: LD_INT 0
4276: PPUSH
4277: CALL_OW 527
4281: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ^ Swansson ;
4282: LD_ADDR_EXP 41
4286: PUSH
4287: LD_EXP 41
4291: PUSH
4292: LD_EXP 32
4296: ADD
4297: ST_TO_ADDR
// end ; if TestCharacters ( Dwayne_Escort_14_cont ) then
4298: LD_STRING Dwayne_Escort_14_cont
4300: PPUSH
4301: CALL_OW 28
4305: IFFALSE 4342
// begin Dwayne = LoadCharacter ( Dwayne_Escort_14_cont , 0 , 0 ) ;
4307: LD_ADDR_EXP 33
4311: PUSH
4312: LD_STRING Dwayne_Escort_14_cont
4314: PPUSH
4315: LD_INT 0
4317: PPUSH
4318: LD_INT 0
4320: PPUSH
4321: CALL_OW 527
4325: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ^ Dwayne ;
4326: LD_ADDR_EXP 41
4330: PUSH
4331: LD_EXP 41
4335: PUSH
4336: LD_EXP 33
4340: ADD
4341: ST_TO_ADDR
// end ; if TestCharacters ( Khattam_Escort_14_cont ) then
4342: LD_STRING Khattam_Escort_14_cont
4344: PPUSH
4345: CALL_OW 28
4349: IFFALSE 4386
// begin Khattam = LoadCharacter ( Khattam_Escort_14_cont , 0 , 0 ) ;
4351: LD_ADDR_EXP 34
4355: PUSH
4356: LD_STRING Khattam_Escort_14_cont
4358: PPUSH
4359: LD_INT 0
4361: PPUSH
4362: LD_INT 0
4364: PPUSH
4365: CALL_OW 527
4369: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ^ Khattam ;
4370: LD_ADDR_EXP 41
4374: PUSH
4375: LD_EXP 41
4379: PUSH
4380: LD_EXP 34
4384: ADD
4385: ST_TO_ADDR
// end ; if TestCharacters ( Evelyn_Escort_14_cont ) then
4386: LD_STRING Evelyn_Escort_14_cont
4388: PPUSH
4389: CALL_OW 28
4393: IFFALSE 4430
// begin Evelyn = LoadCharacter ( Evelyn_Escort_14_cont , 0 , 0 ) ;
4395: LD_ADDR_EXP 35
4399: PUSH
4400: LD_STRING Evelyn_Escort_14_cont
4402: PPUSH
4403: LD_INT 0
4405: PPUSH
4406: LD_INT 0
4408: PPUSH
4409: CALL_OW 527
4413: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ^ Evelyn ;
4414: LD_ADDR_EXP 41
4418: PUSH
4419: LD_EXP 41
4423: PUSH
4424: LD_EXP 35
4428: ADD
4429: ST_TO_ADDR
// end ; if TestCharacters ( Makise_Escort_14_cont ) then
4430: LD_STRING Makise_Escort_14_cont
4432: PPUSH
4433: CALL_OW 28
4437: IFFALSE 4474
// begin Makise = LoadCharacter ( Makise_Escort_14_cont , 0 , 0 ) ;
4439: LD_ADDR_EXP 36
4443: PUSH
4444: LD_STRING Makise_Escort_14_cont
4446: PPUSH
4447: LD_INT 0
4449: PPUSH
4450: LD_INT 0
4452: PPUSH
4453: CALL_OW 527
4457: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ^ Makise ;
4458: LD_ADDR_EXP 41
4462: PUSH
4463: LD_EXP 41
4467: PUSH
4468: LD_EXP 36
4472: ADD
4473: ST_TO_ADDR
// end ; escort_others = LoadCharacter ( Others_Escort_14_cont , 0 , 0 ) ;
4474: LD_ADDR_EXP 40
4478: PUSH
4479: LD_STRING Others_Escort_14_cont
4481: PPUSH
4482: LD_INT 0
4484: PPUSH
4485: LD_INT 0
4487: PPUSH
4488: CALL_OW 527
4492: ST_TO_ADDR
// playerpeople_previous_map = playerpeople_previous_map ;
4493: LD_ADDR_EXP 41
4497: PUSH
4498: LD_EXP 41
4502: ST_TO_ADDR
// for i = 1 to playervehicles do
4503: LD_ADDR_VAR 0 4
4507: PUSH
4508: DOUBLE
4509: LD_INT 1
4511: DEC
4512: ST_TO_ADDR
4513: LD_VAR 0 2
4517: PUSH
4518: FOR_TO
4519: IFFALSE 4748
// begin uc_side = 2 ;
4521: LD_ADDR_OWVAR 20
4525: PUSH
4526: LD_INT 2
4528: ST_TO_ADDR
// uc_nation = playervehicles [ i ] [ 1 ] ;
4529: LD_ADDR_OWVAR 21
4533: PUSH
4534: LD_VAR 0 2
4538: PUSH
4539: LD_VAR 0 4
4543: ARRAY
4544: PUSH
4545: LD_INT 1
4547: ARRAY
4548: ST_TO_ADDR
// vc_weapon = playervehicles [ i ] [ 2 ] ;
4549: LD_ADDR_OWVAR 40
4553: PUSH
4554: LD_VAR 0 2
4558: PUSH
4559: LD_VAR 0 4
4563: ARRAY
4564: PUSH
4565: LD_INT 2
4567: ARRAY
4568: ST_TO_ADDR
// vc_chassis = playervehicles [ i ] [ 3 ] ;
4569: LD_ADDR_OWVAR 37
4573: PUSH
4574: LD_VAR 0 2
4578: PUSH
4579: LD_VAR 0 4
4583: ARRAY
4584: PUSH
4585: LD_INT 3
4587: ARRAY
4588: ST_TO_ADDR
// vc_control = playervehicles [ i ] [ 4 ] ;
4589: LD_ADDR_OWVAR 38
4593: PUSH
4594: LD_VAR 0 2
4598: PUSH
4599: LD_VAR 0 4
4603: ARRAY
4604: PUSH
4605: LD_INT 4
4607: ARRAY
4608: ST_TO_ADDR
// vc_engine = playervehicles [ i ] [ 5 ] ;
4609: LD_ADDR_OWVAR 39
4613: PUSH
4614: LD_VAR 0 2
4618: PUSH
4619: LD_VAR 0 4
4623: ARRAY
4624: PUSH
4625: LD_INT 5
4627: ARRAY
4628: ST_TO_ADDR
// veh = createvehicle ;
4629: LD_ADDR_VAR 0 6
4633: PUSH
4634: CALL_OW 45
4638: ST_TO_ADDR
// placeunitarea ( veh , entry , false ) ;
4639: LD_VAR 0 6
4643: PPUSH
4644: LD_INT 1
4646: PPUSH
4647: LD_INT 0
4649: PPUSH
4650: CALL_OW 49
// if playervehicles [ i ] [ 4 ] = control_manual then
4654: LD_VAR 0 2
4658: PUSH
4659: LD_VAR 0 4
4663: ARRAY
4664: PUSH
4665: LD_INT 4
4667: ARRAY
4668: PUSH
4669: LD_INT 1
4671: EQUAL
4672: IFFALSE 4746
// for j = 1 to drivers do
4674: LD_ADDR_VAR 0 5
4678: PUSH
4679: DOUBLE
4680: LD_INT 1
4682: DEC
4683: ST_TO_ADDR
4684: LD_VAR 0 3
4688: PUSH
4689: FOR_TO
4690: IFFALSE 4744
// if drivers [ j ] = i and playerpeople >= j then
4692: LD_VAR 0 3
4696: PUSH
4697: LD_VAR 0 5
4701: ARRAY
4702: PUSH
4703: LD_VAR 0 4
4707: EQUAL
4708: PUSH
4709: LD_EXP 39
4713: PUSH
4714: LD_VAR 0 5
4718: GREATEREQUAL
4719: AND
4720: IFFALSE 4742
// placehumaninunit ( playerpeople [ j ] , veh ) ;
4722: LD_EXP 39
4726: PUSH
4727: LD_VAR 0 5
4731: ARRAY
4732: PPUSH
4733: LD_VAR 0 6
4737: PPUSH
4738: CALL_OW 52
4742: GO 4689
4744: POP
4745: POP
// end ;
4746: GO 4518
4748: POP
4749: POP
// for i in playerpeople ^ Gonzo ^ apes do
4750: LD_ADDR_VAR 0 4
4754: PUSH
4755: LD_EXP 39
4759: PUSH
4760: LD_EXP 37
4764: ADD
4765: PUSH
4766: LD_VAR 0 8
4770: ADD
4771: PUSH
4772: FOR_IN
4773: IFFALSE 4804
// if not isinunit ( i ) then
4775: LD_VAR 0 4
4779: PPUSH
4780: CALL_OW 310
4784: NOT
4785: IFFALSE 4802
// placeunitarea ( i , entry , false ) ;
4787: LD_VAR 0 4
4791: PPUSH
4792: LD_INT 1
4794: PPUSH
4795: LD_INT 0
4797: PPUSH
4798: CALL_OW 49
4802: GO 4772
4804: POP
4805: POP
// for i in filterallunits ( [ [ f_side , 2 ] , [ f_type , unit_vehicle ] ] ) do
4806: LD_ADDR_VAR 0 4
4810: PUSH
4811: LD_INT 22
4813: PUSH
4814: LD_INT 2
4816: PUSH
4817: EMPTY
4818: LIST
4819: LIST
4820: PUSH
4821: LD_INT 21
4823: PUSH
4824: LD_INT 2
4826: PUSH
4827: EMPTY
4828: LIST
4829: LIST
4830: PUSH
4831: EMPTY
4832: LIST
4833: LIST
4834: PPUSH
4835: CALL_OW 69
4839: PUSH
4840: FOR_IN
4841: IFFALSE 4952
// if GetWeapon ( i ) = ar_control_tower then
4843: LD_VAR 0 4
4847: PPUSH
4848: CALL_OW 264
4852: PUSH
4853: LD_INT 31
4855: EQUAL
4856: IFFALSE 4950
// begin for j in filterallunits ( [ [ f_side , 2 ] , [ f_type , unit_vehicle ] ] ) do
4858: LD_ADDR_VAR 0 5
4862: PUSH
4863: LD_INT 22
4865: PUSH
4866: LD_INT 2
4868: PUSH
4869: EMPTY
4870: LIST
4871: LIST
4872: PUSH
4873: LD_INT 21
4875: PUSH
4876: LD_INT 2
4878: PUSH
4879: EMPTY
4880: LIST
4881: LIST
4882: PUSH
4883: EMPTY
4884: LIST
4885: LIST
4886: PPUSH
4887: CALL_OW 69
4891: PUSH
4892: FOR_IN
4893: IFFALSE 4946
// if getcontrol ( j ) = control_remote and iscontroledby ( j ) = 0 then
4895: LD_VAR 0 5
4899: PPUSH
4900: CALL_OW 263
4904: PUSH
4905: LD_INT 2
4907: EQUAL
4908: PUSH
4909: LD_VAR 0 5
4913: PPUSH
4914: CALL_OW 312
4918: PUSH
4919: LD_INT 0
4921: EQUAL
4922: AND
4923: IFFALSE 4944
// LinkVehicleToHuman ( j , isdrivenby ( i ) ) ;
4925: LD_VAR 0 5
4929: PPUSH
4930: LD_VAR 0 4
4934: PPUSH
4935: CALL_OW 311
4939: PPUSH
4940: CALL_OW 53
4944: GO 4892
4946: POP
4947: POP
// break ;
4948: GO 4952
// end ;
4950: GO 4840
4952: POP
4953: POP
// playerpeople = playerpeople diff 0 ;
4954: LD_ADDR_EXP 39
4958: PUSH
4959: LD_EXP 39
4963: PUSH
4964: LD_INT 0
4966: DIFF
4967: ST_TO_ADDR
// end ; hc_name = Elizabeth Laeken ;
4968: LD_ADDR_OWVAR 26
4972: PUSH
4973: LD_STRING Elizabeth Laeken
4975: ST_TO_ADDR
// hc_gallery = ar_new ;
4976: LD_ADDR_OWVAR 33
4980: PUSH
4981: LD_STRING ar_new
4983: ST_TO_ADDR
// hc_face_number = 39 ;
4984: LD_ADDR_OWVAR 34
4988: PUSH
4989: LD_INT 39
4991: ST_TO_ADDR
// PrepareSoldier ( sex_female , 8 ) ;
4992: LD_INT 2
4994: PPUSH
4995: LD_INT 8
4997: PPUSH
4998: CALL_OW 381
// hc_attr = [ 11 , 11 ] ;
5002: LD_ADDR_OWVAR 29
5006: PUSH
5007: LD_INT 11
5009: PUSH
5010: LD_INT 11
5012: PUSH
5013: EMPTY
5014: LIST
5015: LIST
5016: ST_TO_ADDR
// Elizabeth = Createhuman ;
5017: LD_ADDR_EXP 23
5021: PUSH
5022: CALL_OW 44
5026: ST_TO_ADDR
// setclass ( Elizabeth , class_mortar ) ;
5027: LD_EXP 23
5031: PPUSH
5032: LD_INT 8
5034: PPUSH
5035: CALL_OW 336
// hc_name = Pierre Leclerc ;
5039: LD_ADDR_OWVAR 26
5043: PUSH
5044: LD_STRING Pierre Leclerc
5046: ST_TO_ADDR
// hc_gallery = ar_new ;
5047: LD_ADDR_OWVAR 33
5051: PUSH
5052: LD_STRING ar_new
5054: ST_TO_ADDR
// hc_face_number = 40 ;
5055: LD_ADDR_OWVAR 34
5059: PUSH
5060: LD_INT 40
5062: ST_TO_ADDR
// PrepareSoldier ( sex_male , 8 ) ;
5063: LD_INT 1
5065: PPUSH
5066: LD_INT 8
5068: PPUSH
5069: CALL_OW 381
// hc_attr = [ 11 , 11 ] ;
5073: LD_ADDR_OWVAR 29
5077: PUSH
5078: LD_INT 11
5080: PUSH
5081: LD_INT 11
5083: PUSH
5084: EMPTY
5085: LIST
5086: LIST
5087: ST_TO_ADDR
// Pierre = Createhuman ;
5088: LD_ADDR_EXP 24
5092: PUSH
5093: CALL_OW 44
5097: ST_TO_ADDR
// setclass ( Pierre , class_soldier ) ;
5098: LD_EXP 24
5102: PPUSH
5103: LD_INT 1
5105: PPUSH
5106: CALL_OW 336
// end ;
5110: LD_VAR 0 1
5114: RET
// function LoadFarmer ; var i , temp , radar ; begin
5115: LD_INT 0
5117: PPUSH
5118: PPUSH
5119: PPUSH
5120: PPUSH
// Randomize ;
5121: CALL_OW 10
// uc_side = 8 ;
5125: LD_ADDR_OWVAR 20
5129: PUSH
5130: LD_INT 8
5132: ST_TO_ADDR
// uc_nation = nation_arabian ;
5133: LD_ADDR_OWVAR 21
5137: PUSH
5138: LD_INT 2
5140: ST_TO_ADDR
// Farmer = NewCharacter ( Farmer ) ;
5141: LD_ADDR_EXP 11
5145: PUSH
5146: LD_STRING Farmer
5148: PPUSH
5149: CALL_OW 25
5153: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
5154: LD_ADDR_OWVAR 37
5158: PUSH
5159: LD_INT 14
5161: ST_TO_ADDR
// vc_engine = engine_siberite ;
5162: LD_ADDR_OWVAR 39
5166: PUSH
5167: LD_INT 3
5169: ST_TO_ADDR
// vc_control = control_manual ;
5170: LD_ADDR_OWVAR 38
5174: PUSH
5175: LD_INT 1
5177: ST_TO_ADDR
// vc_weapon = ar_rocket_launcher ;
5178: LD_ADDR_OWVAR 40
5182: PUSH
5183: LD_INT 28
5185: ST_TO_ADDR
// FarmerVehicle = Createvehicle ;
5186: LD_ADDR_EXP 12
5190: PUSH
5191: CALL_OW 45
5195: ST_TO_ADDR
// setdir ( FarmerVehicle , 3 ) ;
5196: LD_EXP 12
5200: PPUSH
5201: LD_INT 3
5203: PPUSH
5204: CALL_OW 233
// placeunitxy ( FarmerVehicle , 55 , 31 , false ) ;
5208: LD_EXP 12
5212: PPUSH
5213: LD_INT 55
5215: PPUSH
5216: LD_INT 31
5218: PPUSH
5219: LD_INT 0
5221: PPUSH
5222: CALL_OW 48
// placehumaninunit ( farmer , farmervehicle ) ;
5226: LD_EXP 11
5230: PPUSH
5231: LD_EXP 12
5235: PPUSH
5236: CALL_OW 52
// temp = createvehicle ;
5240: LD_ADDR_VAR 0 3
5244: PUSH
5245: CALL_OW 45
5249: ST_TO_ADDR
// setdir ( temp , 0 ) ;
5250: LD_VAR 0 3
5254: PPUSH
5255: LD_INT 0
5257: PPUSH
5258: CALL_OW 233
// placeunitxy ( temp , 51 , 32 , false ) ;
5262: LD_VAR 0 3
5266: PPUSH
5267: LD_INT 51
5269: PPUSH
5270: LD_INT 32
5272: PPUSH
5273: LD_INT 0
5275: PPUSH
5276: CALL_OW 48
// farmertroops = farmertroops ^ temp ;
5280: LD_ADDR_EXP 13
5284: PUSH
5285: LD_EXP 13
5289: PUSH
5290: LD_VAR 0 3
5294: ADD
5295: ST_TO_ADDR
// vc_weapon = ar_gun ;
5296: LD_ADDR_OWVAR 40
5300: PUSH
5301: LD_INT 27
5303: ST_TO_ADDR
// temp = createvehicle ;
5304: LD_ADDR_VAR 0 3
5308: PUSH
5309: CALL_OW 45
5313: ST_TO_ADDR
// setdir ( temp , 1 ) ;
5314: LD_VAR 0 3
5318: PPUSH
5319: LD_INT 1
5321: PPUSH
5322: CALL_OW 233
// placeunitxy ( temp , 63 , 34 , false ) ;
5326: LD_VAR 0 3
5330: PPUSH
5331: LD_INT 63
5333: PPUSH
5334: LD_INT 34
5336: PPUSH
5337: LD_INT 0
5339: PPUSH
5340: CALL_OW 48
// farmertroops = farmertroops ^ temp ;
5344: LD_ADDR_EXP 13
5348: PUSH
5349: LD_EXP 13
5353: PUSH
5354: LD_VAR 0 3
5358: ADD
5359: ST_TO_ADDR
// temp = createvehicle ;
5360: LD_ADDR_VAR 0 3
5364: PUSH
5365: CALL_OW 45
5369: ST_TO_ADDR
// setdir ( temp , 1 ) ;
5370: LD_VAR 0 3
5374: PPUSH
5375: LD_INT 1
5377: PPUSH
5378: CALL_OW 233
// placeunitxy ( temp , 41 , 17 , false ) ;
5382: LD_VAR 0 3
5386: PPUSH
5387: LD_INT 41
5389: PPUSH
5390: LD_INT 17
5392: PPUSH
5393: LD_INT 0
5395: PPUSH
5396: CALL_OW 48
// emptyveh = temp ;
5400: LD_ADDR_EXP 17
5404: PUSH
5405: LD_VAR 0 3
5409: ST_TO_ADDR
// vc_weapon = ar_gatling_gun ;
5410: LD_ADDR_OWVAR 40
5414: PUSH
5415: LD_INT 25
5417: ST_TO_ADDR
// temp = createvehicle ^ createvehicle ;
5418: LD_ADDR_VAR 0 3
5422: PUSH
5423: CALL_OW 45
5427: PUSH
5428: CALL_OW 45
5432: ADD
5433: ST_TO_ADDR
// setdir ( temp [ 1 ] , 3 ) ;
5434: LD_VAR 0 3
5438: PUSH
5439: LD_INT 1
5441: ARRAY
5442: PPUSH
5443: LD_INT 3
5445: PPUSH
5446: CALL_OW 233
// setdir ( temp [ 2 ] , 3 ) ;
5450: LD_VAR 0 3
5454: PUSH
5455: LD_INT 2
5457: ARRAY
5458: PPUSH
5459: LD_INT 3
5461: PPUSH
5462: CALL_OW 233
// placeunitxy ( temp [ 1 ] , 37 , 33 , false ) ;
5466: LD_VAR 0 3
5470: PUSH
5471: LD_INT 1
5473: ARRAY
5474: PPUSH
5475: LD_INT 37
5477: PPUSH
5478: LD_INT 33
5480: PPUSH
5481: LD_INT 0
5483: PPUSH
5484: CALL_OW 48
// placeunitxy ( temp [ 2 ] , 54 , 38 , false ) ;
5488: LD_VAR 0 3
5492: PUSH
5493: LD_INT 2
5495: ARRAY
5496: PPUSH
5497: LD_INT 54
5499: PPUSH
5500: LD_INT 38
5502: PPUSH
5503: LD_INT 0
5505: PPUSH
5506: CALL_OW 48
// farmertroops = farmertroops ^ temp [ 1 ] ^ temp [ 2 ] ;
5510: LD_ADDR_EXP 13
5514: PUSH
5515: LD_EXP 13
5519: PUSH
5520: LD_VAR 0 3
5524: PUSH
5525: LD_INT 1
5527: ARRAY
5528: ADD
5529: PUSH
5530: LD_VAR 0 3
5534: PUSH
5535: LD_INT 2
5537: ARRAY
5538: ADD
5539: ST_TO_ADDR
// vc_weapon = ar_flame_thrower ;
5540: LD_ADDR_OWVAR 40
5544: PUSH
5545: LD_INT 26
5547: ST_TO_ADDR
// temp = createvehicle ;
5548: LD_ADDR_VAR 0 3
5552: PUSH
5553: CALL_OW 45
5557: ST_TO_ADDR
// setdir ( temp , 3 ) ;
5558: LD_VAR 0 3
5562: PPUSH
5563: LD_INT 3
5565: PPUSH
5566: CALL_OW 233
// placeunitxy ( temp , 41 , 34 , false ) ;
5570: LD_VAR 0 3
5574: PPUSH
5575: LD_INT 41
5577: PPUSH
5578: LD_INT 34
5580: PPUSH
5581: LD_INT 0
5583: PPUSH
5584: CALL_OW 48
// farmertroops = farmertroops ^ temp ;
5588: LD_ADDR_EXP 13
5592: PUSH
5593: LD_EXP 13
5597: PUSH
5598: LD_VAR 0 3
5602: ADD
5603: ST_TO_ADDR
// vc_weapon = ar_control_tower ;
5604: LD_ADDR_OWVAR 40
5608: PUSH
5609: LD_INT 31
5611: ST_TO_ADDR
// temp = createvehicle ;
5612: LD_ADDR_VAR 0 3
5616: PUSH
5617: CALL_OW 45
5621: ST_TO_ADDR
// placeunitxy ( temp , 47 , 27 , false ) ;
5622: LD_VAR 0 3
5626: PPUSH
5627: LD_INT 47
5629: PPUSH
5630: LD_INT 27
5632: PPUSH
5633: LD_INT 0
5635: PPUSH
5636: CALL_OW 48
// farmertroops = farmertroops ^ temp ;
5640: LD_ADDR_EXP 13
5644: PUSH
5645: LD_EXP 13
5649: PUSH
5650: LD_VAR 0 3
5654: ADD
5655: ST_TO_ADDR
// vc_weapon = ar_selfpropelled_bomb ;
5656: LD_ADDR_OWVAR 40
5660: PUSH
5661: LD_INT 29
5663: ST_TO_ADDR
// vc_control = control_remote ;
5664: LD_ADDR_OWVAR 38
5668: PUSH
5669: LD_INT 2
5671: ST_TO_ADDR
// if difficulty >= 1 then
5672: LD_OWVAR 67
5676: PUSH
5677: LD_INT 1
5679: GREATEREQUAL
5680: IFFALSE 5738
// begin temp = createvehicle ;
5682: LD_ADDR_VAR 0 3
5686: PUSH
5687: CALL_OW 45
5691: ST_TO_ADDR
// setdir ( temp , 3 ) ;
5692: LD_VAR 0 3
5696: PPUSH
5697: LD_INT 3
5699: PPUSH
5700: CALL_OW 233
// placeunitxy ( temp , 33 , 28 , false ) ;
5704: LD_VAR 0 3
5708: PPUSH
5709: LD_INT 33
5711: PPUSH
5712: LD_INT 28
5714: PPUSH
5715: LD_INT 0
5717: PPUSH
5718: CALL_OW 48
// AmbushBombs = AmbushBombs ^ temp ;
5722: LD_ADDR_EXP 15
5726: PUSH
5727: LD_EXP 15
5731: PUSH
5732: LD_VAR 0 3
5736: ADD
5737: ST_TO_ADDR
// end ; if difficulty >= 2 then
5738: LD_OWVAR 67
5742: PUSH
5743: LD_INT 2
5745: GREATEREQUAL
5746: IFFALSE 5804
// begin temp = createvehicle ;
5748: LD_ADDR_VAR 0 3
5752: PUSH
5753: CALL_OW 45
5757: ST_TO_ADDR
// setdir ( temp , 3 ) ;
5758: LD_VAR 0 3
5762: PPUSH
5763: LD_INT 3
5765: PPUSH
5766: CALL_OW 233
// placeunitxy ( temp , 37 , 27 , false ) ;
5770: LD_VAR 0 3
5774: PPUSH
5775: LD_INT 37
5777: PPUSH
5778: LD_INT 27
5780: PPUSH
5781: LD_INT 0
5783: PPUSH
5784: CALL_OW 48
// AmbushBombs = AmbushBombs ^ temp ;
5788: LD_ADDR_EXP 15
5792: PUSH
5793: LD_EXP 15
5797: PUSH
5798: LD_VAR 0 3
5802: ADD
5803: ST_TO_ADDR
// end ; if difficulty = 3 then
5804: LD_OWVAR 67
5808: PUSH
5809: LD_INT 3
5811: EQUAL
5812: IFFALSE 5870
// begin temp = createvehicle ;
5814: LD_ADDR_VAR 0 3
5818: PUSH
5819: CALL_OW 45
5823: ST_TO_ADDR
// setdir ( temp , 3 ) ;
5824: LD_VAR 0 3
5828: PPUSH
5829: LD_INT 3
5831: PPUSH
5832: CALL_OW 233
// placeunitxy ( temp , 33 , 25 , false ) ;
5836: LD_VAR 0 3
5840: PPUSH
5841: LD_INT 33
5843: PPUSH
5844: LD_INT 25
5846: PPUSH
5847: LD_INT 0
5849: PPUSH
5850: CALL_OW 48
// AmbushBombs = AmbushBombs ^ temp ;
5854: LD_ADDR_EXP 15
5858: PUSH
5859: LD_EXP 15
5863: PUSH
5864: LD_VAR 0 3
5868: ADD
5869: ST_TO_ADDR
// end ; temp = createvehicle ^ createvehicle ;
5870: LD_ADDR_VAR 0 3
5874: PUSH
5875: CALL_OW 45
5879: PUSH
5880: CALL_OW 45
5884: ADD
5885: ST_TO_ADDR
// setdir ( temp [ 1 ] , 0 ) ;
5886: LD_VAR 0 3
5890: PUSH
5891: LD_INT 1
5893: ARRAY
5894: PPUSH
5895: LD_INT 0
5897: PPUSH
5898: CALL_OW 233
// setdir ( temp [ 2 ] , 0 ) ;
5902: LD_VAR 0 3
5906: PUSH
5907: LD_INT 2
5909: ARRAY
5910: PPUSH
5911: LD_INT 0
5913: PPUSH
5914: CALL_OW 233
// placeunitxy ( temp [ 1 ] , 44 , 15 , false ) ;
5918: LD_VAR 0 3
5922: PUSH
5923: LD_INT 1
5925: ARRAY
5926: PPUSH
5927: LD_INT 44
5929: PPUSH
5930: LD_INT 15
5932: PPUSH
5933: LD_INT 0
5935: PPUSH
5936: CALL_OW 48
// placeunitxy ( temp [ 2 ] , 38 , 13 , false ) ;
5940: LD_VAR 0 3
5944: PUSH
5945: LD_INT 2
5947: ARRAY
5948: PPUSH
5949: LD_INT 38
5951: PPUSH
5952: LD_INT 13
5954: PPUSH
5955: LD_INT 0
5957: PPUSH
5958: CALL_OW 48
// FarmerBombs = temp ;
5962: LD_ADDR_EXP 14
5966: PUSH
5967: LD_VAR 0 3
5971: ST_TO_ADDR
// vc_weapon = ar_radar ;
5972: LD_ADDR_OWVAR 40
5976: PUSH
5977: LD_INT 30
5979: ST_TO_ADDR
// temp = createvehicle ;
5980: LD_ADDR_VAR 0 3
5984: PUSH
5985: CALL_OW 45
5989: ST_TO_ADDR
// placeunitxy ( temp , 51 , 29 , false ) ;
5990: LD_VAR 0 3
5994: PPUSH
5995: LD_INT 51
5997: PPUSH
5998: LD_INT 29
6000: PPUSH
6001: LD_INT 0
6003: PPUSH
6004: CALL_OW 48
// radar = temp ;
6008: LD_ADDR_VAR 0 4
6012: PUSH
6013: LD_VAR 0 3
6017: ST_TO_ADDR
// farmertroops = farmertroops ^ temp ;
6018: LD_ADDR_EXP 13
6022: PUSH
6023: LD_EXP 13
6027: PUSH
6028: LD_VAR 0 3
6032: ADD
6033: ST_TO_ADDR
// for i = 1 to 5 do
6034: LD_ADDR_VAR 0 2
6038: PUSH
6039: DOUBLE
6040: LD_INT 1
6042: DEC
6043: ST_TO_ADDR
6044: LD_INT 5
6046: PUSH
6047: FOR_TO
6048: IFFALSE 6195
// begin preparesoldier ( false , [ 6 , 8 , 10 ] [ difficulty ] ) ;
6050: LD_INT 0
6052: PPUSH
6053: LD_INT 6
6055: PUSH
6056: LD_INT 8
6058: PUSH
6059: LD_INT 10
6061: PUSH
6062: EMPTY
6063: LIST
6064: LIST
6065: LIST
6066: PUSH
6067: LD_OWVAR 67
6071: ARRAY
6072: PPUSH
6073: CALL_OW 381
// temp = createhuman ;
6077: LD_ADDR_VAR 0 3
6081: PUSH
6082: CALL_OW 44
6086: ST_TO_ADDR
// farmertroops = farmertroops ^ temp ;
6087: LD_ADDR_EXP 13
6091: PUSH
6092: LD_EXP 13
6096: PUSH
6097: LD_VAR 0 3
6101: ADD
6102: ST_TO_ADDR
// if i > 2 then
6103: LD_VAR 0 2
6107: PUSH
6108: LD_INT 2
6110: GREATER
6111: IFFALSE 6125
// setclass ( temp , class_mortar ) ;
6113: LD_VAR 0 3
6117: PPUSH
6118: LD_INT 8
6120: PPUSH
6121: CALL_OW 336
// placeunitxy ( temp , [ 49 , 43 , 49 , 60 , 52 ] [ i ] , [ 38 , 24 , 36 , 38 , 25 ] [ i ] , false ) ;
6125: LD_VAR 0 3
6129: PPUSH
6130: LD_INT 49
6132: PUSH
6133: LD_INT 43
6135: PUSH
6136: LD_INT 49
6138: PUSH
6139: LD_INT 60
6141: PUSH
6142: LD_INT 52
6144: PUSH
6145: EMPTY
6146: LIST
6147: LIST
6148: LIST
6149: LIST
6150: LIST
6151: PUSH
6152: LD_VAR 0 2
6156: ARRAY
6157: PPUSH
6158: LD_INT 38
6160: PUSH
6161: LD_INT 24
6163: PUSH
6164: LD_INT 36
6166: PUSH
6167: LD_INT 38
6169: PUSH
6170: LD_INT 25
6172: PUSH
6173: EMPTY
6174: LIST
6175: LIST
6176: LIST
6177: LIST
6178: LIST
6179: PUSH
6180: LD_VAR 0 2
6184: ARRAY
6185: PPUSH
6186: LD_INT 0
6188: PPUSH
6189: CALL_OW 48
// end ;
6193: GO 6047
6195: POP
6196: POP
// for i in unitfilter ( farmertroops , [ f_control , control_manual ] ) ^ hexinfo ( 47 , 27 ) do
6197: LD_ADDR_VAR 0 2
6201: PUSH
6202: LD_EXP 13
6206: PPUSH
6207: LD_INT 33
6209: PUSH
6210: LD_INT 1
6212: PUSH
6213: EMPTY
6214: LIST
6215: LIST
6216: PPUSH
6217: CALL_OW 72
6221: PUSH
6222: LD_INT 47
6224: PPUSH
6225: LD_INT 27
6227: PPUSH
6228: CALL_OW 428
6232: ADD
6233: PUSH
6234: FOR_IN
6235: IFFALSE 6306
// begin preparemechanic ( false , [ 6 , 8 , 10 ] [ difficulty ] ) ;
6237: LD_INT 0
6239: PPUSH
6240: LD_INT 6
6242: PUSH
6243: LD_INT 8
6245: PUSH
6246: LD_INT 10
6248: PUSH
6249: EMPTY
6250: LIST
6251: LIST
6252: LIST
6253: PUSH
6254: LD_OWVAR 67
6258: ARRAY
6259: PPUSH
6260: CALL_OW 383
// temp = createhuman ;
6264: LD_ADDR_VAR 0 3
6268: PUSH
6269: CALL_OW 44
6273: ST_TO_ADDR
// placehumaninunit ( temp , i ) ;
6274: LD_VAR 0 3
6278: PPUSH
6279: LD_VAR 0 2
6283: PPUSH
6284: CALL_OW 52
// farmertroops = farmertroops ^ temp ;
6288: LD_ADDR_EXP 13
6292: PUSH
6293: LD_EXP 13
6297: PUSH
6298: LD_VAR 0 3
6302: ADD
6303: ST_TO_ADDR
// end ;
6304: GO 6234
6306: POP
6307: POP
// FarmerRemoteMech = IsDrivenBy ( hexinfo ( 47 , 27 ) ) ;
6308: LD_ADDR_EXP 16
6312: PUSH
6313: LD_INT 47
6315: PPUSH
6316: LD_INT 27
6318: PPUSH
6319: CALL_OW 428
6323: PPUSH
6324: CALL_OW 311
6328: ST_TO_ADDR
// for i in unitfilter ( farmertroops , [ f_control , control_remote ] ) ^ radar do
6329: LD_ADDR_VAR 0 2
6333: PUSH
6334: LD_EXP 13
6338: PPUSH
6339: LD_INT 33
6341: PUSH
6342: LD_INT 2
6344: PUSH
6345: EMPTY
6346: LIST
6347: LIST
6348: PPUSH
6349: CALL_OW 72
6353: PUSH
6354: LD_VAR 0 4
6358: ADD
6359: PUSH
6360: FOR_IN
6361: IFFALSE 6379
// linkvehicletohuman ( i , FarmerRemoteMech ) ;
6363: LD_VAR 0 2
6367: PPUSH
6368: LD_EXP 16
6372: PPUSH
6373: CALL_OW 53
6377: GO 6360
6379: POP
6380: POP
// enable ( 3 ) ;
6381: LD_INT 3
6383: ENABLE_MARKED
// end ;
6384: LD_VAR 0 1
6388: RET
// function SetDifficulty ; begin
6389: LD_INT 0
6391: PPUSH
// if difficulty < 3 then
6392: LD_OWVAR 67
6396: PUSH
6397: LD_INT 3
6399: LESS
6400: IFFALSE 6529
// begin Settech ( Tech_weap3 , 8 , state_enabled ) ;
6402: LD_INT 53
6404: PPUSH
6405: LD_INT 8
6407: PPUSH
6408: LD_INT 1
6410: PPUSH
6411: CALL_OW 322
// Settech ( Tech_sib3 , 8 , state_enabled ) ;
6415: LD_INT 56
6417: PPUSH
6418: LD_INT 8
6420: PPUSH
6421: LD_INT 1
6423: PPUSH
6424: CALL_OW 322
// Settech ( Tech_bio3 , 8 , state_enabled ) ;
6428: LD_INT 68
6430: PPUSH
6431: LD_INT 8
6433: PPUSH
6434: LD_INT 1
6436: PPUSH
6437: CALL_OW 322
// Settech ( Tech_opto3 , 8 , state_enabled ) ;
6441: LD_INT 62
6443: PPUSH
6444: LD_INT 8
6446: PPUSH
6447: LD_INT 1
6449: PPUSH
6450: CALL_OW 322
// if difficulty = 1 then
6454: LD_OWVAR 67
6458: PUSH
6459: LD_INT 1
6461: EQUAL
6462: IFFALSE 6529
// begin Settech ( Tech_weap2 , 8 , state_enabled ) ;
6464: LD_INT 52
6466: PPUSH
6467: LD_INT 8
6469: PPUSH
6470: LD_INT 1
6472: PPUSH
6473: CALL_OW 322
// Settech ( Tech_sib2 , 8 , state_enabled ) ;
6477: LD_INT 55
6479: PPUSH
6480: LD_INT 8
6482: PPUSH
6483: LD_INT 1
6485: PPUSH
6486: CALL_OW 322
// Settech ( Tech_bio2 , 8 , state_enabled ) ;
6490: LD_INT 67
6492: PPUSH
6493: LD_INT 8
6495: PPUSH
6496: LD_INT 1
6498: PPUSH
6499: CALL_OW 322
// Settech ( Tech_opto2 , 8 , state_enabled ) ;
6503: LD_INT 61
6505: PPUSH
6506: LD_INT 8
6508: PPUSH
6509: LD_INT 1
6511: PPUSH
6512: CALL_OW 322
// Settech ( Tech_Tech3 , 8 , state_enabled ) ;
6516: LD_INT 50
6518: PPUSH
6519: LD_INT 8
6521: PPUSH
6522: LD_INT 1
6524: PPUSH
6525: CALL_OW 322
// end ; end ; end ; end_of_file
6529: LD_VAR 0 1
6533: RET
// every 0 0$1 marked 3 do var temp , temp_list ;
6534: GO 6536
6536: DISABLE
6537: LD_INT 0
6539: PPUSH
6540: PPUSH
// begin Randomize ;
6541: CALL_OW 10
// IngameOn ;
6545: CALL_OW 8
// ExclusiveOff ;
6549: CALL_OW 5
// centeronunits ( heike ) ;
6553: LD_EXP 25
6557: PPUSH
6558: CALL_OW 85
// Say ( Heike , Rs_He1 ) ;
6562: LD_EXP 25
6566: PPUSH
6567: LD_STRING Rs_He1
6569: PPUSH
6570: CALL_OW 88
// changesidefog ( 5 , 2 ) ;
6574: LD_INT 5
6576: PPUSH
6577: LD_INT 2
6579: PPUSH
6580: CALL_OW 343
// Centeronunits ( Gensher ) ;
6584: LD_EXP 2
6588: PPUSH
6589: CALL_OW 85
// Say ( Gensher , Rs_Ge1 ) ;
6593: LD_EXP 2
6597: PPUSH
6598: LD_STRING Rs_Ge1
6600: PPUSH
6601: CALL_OW 88
// case getsex ( UPFPeople [ 5 ] ) of sex_male :
6605: LD_EXP 3
6609: PUSH
6610: LD_INT 5
6612: ARRAY
6613: PPUSH
6614: CALL_OW 258
6618: PUSH
6619: LD_INT 1
6621: DOUBLE
6622: EQUAL
6623: IFTRUE 6627
6625: GO 6646
6627: POP
// Say ( UPFPeople [ 5 ] , Rs_SomeM1 ) ; sex_female :
6628: LD_EXP 3
6632: PUSH
6633: LD_INT 5
6635: ARRAY
6636: PPUSH
6637: LD_STRING Rs_SomeM1
6639: PPUSH
6640: CALL_OW 88
6644: GO 6674
6646: LD_INT 2
6648: DOUBLE
6649: EQUAL
6650: IFTRUE 6654
6652: GO 6673
6654: POP
// Say ( UPFPeople [ 5 ] , Rs_SomeF1 ) ; end ;
6655: LD_EXP 3
6659: PUSH
6660: LD_INT 5
6662: ARRAY
6663: PPUSH
6664: LD_STRING Rs_SomeF1
6666: PPUSH
6667: CALL_OW 88
6671: GO 6674
6673: POP
// Say ( Gensher , Rs_Ge2 ) ;
6674: LD_EXP 2
6678: PPUSH
6679: LD_STRING Rs_Ge2
6681: PPUSH
6682: CALL_OW 88
// wait ( 0 0$5 ) ;
6686: LD_INT 175
6688: PPUSH
6689: CALL_OW 67
// temp_list = PlayerPeople diff Heike ;
6693: LD_ADDR_VAR 0 2
6697: PUSH
6698: LD_EXP 39
6702: PUSH
6703: LD_EXP 25
6707: DIFF
6708: ST_TO_ADDR
// temp = temp_list [ rand ( 1 , temp_list ) ] ;
6709: LD_ADDR_VAR 0 1
6713: PUSH
6714: LD_VAR 0 2
6718: PUSH
6719: LD_INT 1
6721: PPUSH
6722: LD_VAR 0 2
6726: PPUSH
6727: CALL_OW 12
6731: ARRAY
6732: ST_TO_ADDR
// if not temp [ 1 ] in [ Olaf , Sonya , Oswald , Ralph , Kowalski , Aviradze , Swansson , Dwayne , Khattam , Evelyn , Makise ] then
6733: LD_VAR 0 1
6737: PUSH
6738: LD_INT 1
6740: ARRAY
6741: PUSH
6742: LD_EXP 26
6746: PUSH
6747: LD_EXP 27
6751: PUSH
6752: LD_EXP 28
6756: PUSH
6757: LD_EXP 29
6761: PUSH
6762: LD_EXP 30
6766: PUSH
6767: LD_EXP 31
6771: PUSH
6772: LD_EXP 32
6776: PUSH
6777: LD_EXP 33
6781: PUSH
6782: LD_EXP 34
6786: PUSH
6787: LD_EXP 35
6791: PUSH
6792: LD_EXP 36
6796: PUSH
6797: EMPTY
6798: LIST
6799: LIST
6800: LIST
6801: LIST
6802: LIST
6803: LIST
6804: LIST
6805: LIST
6806: LIST
6807: LIST
6808: LIST
6809: IN
6810: NOT
6811: IFFALSE 6866
// if getsex ( temp [ 1 ] ) = sex_male then
6813: LD_VAR 0 1
6817: PUSH
6818: LD_INT 1
6820: ARRAY
6821: PPUSH
6822: CALL_OW 258
6826: PUSH
6827: LD_INT 1
6829: EQUAL
6830: IFFALSE 6850
// Say ( temp [ 1 ] , Rs_SomeM2 ) else
6832: LD_VAR 0 1
6836: PUSH
6837: LD_INT 1
6839: ARRAY
6840: PPUSH
6841: LD_STRING Rs_SomeM2
6843: PPUSH
6844: CALL_OW 88
6848: GO 6866
// Say ( temp [ 1 ] , Rs_SomeF2 ) ;
6850: LD_VAR 0 1
6854: PUSH
6855: LD_INT 1
6857: ARRAY
6858: PPUSH
6859: LD_STRING Rs_SomeF2
6861: PPUSH
6862: CALL_OW 88
// case temp [ 1 ] of Olaf :
6866: LD_VAR 0 1
6870: PUSH
6871: LD_INT 1
6873: ARRAY
6874: PUSH
6875: LD_EXP 26
6879: DOUBLE
6880: EQUAL
6881: IFTRUE 6885
6883: GO 6904
6885: POP
// Say ( temp [ 1 ] , Rs_Olaf1 ) ; Sonya :
6886: LD_VAR 0 1
6890: PUSH
6891: LD_INT 1
6893: ARRAY
6894: PPUSH
6895: LD_STRING Rs_Olaf1
6897: PPUSH
6898: CALL_OW 88
6902: GO 7195
6904: LD_EXP 27
6908: DOUBLE
6909: EQUAL
6910: IFTRUE 6914
6912: GO 6933
6914: POP
// Say ( temp [ 1 ] , Rs_So1 ) ; Oswald :
6915: LD_VAR 0 1
6919: PUSH
6920: LD_INT 1
6922: ARRAY
6923: PPUSH
6924: LD_STRING Rs_So1
6926: PPUSH
6927: CALL_OW 88
6931: GO 7195
6933: LD_EXP 28
6937: DOUBLE
6938: EQUAL
6939: IFTRUE 6943
6941: GO 6962
6943: POP
// Say ( temp [ 1 ] , Rs_Os1 ) ; Ralph :
6944: LD_VAR 0 1
6948: PUSH
6949: LD_INT 1
6951: ARRAY
6952: PPUSH
6953: LD_STRING Rs_Os1
6955: PPUSH
6956: CALL_OW 88
6960: GO 7195
6962: LD_EXP 29
6966: DOUBLE
6967: EQUAL
6968: IFTRUE 6972
6970: GO 6991
6972: POP
// Say ( temp [ 1 ] , Rs_Ra1 ) ; Kowalski :
6973: LD_VAR 0 1
6977: PUSH
6978: LD_INT 1
6980: ARRAY
6981: PPUSH
6982: LD_STRING Rs_Ra1
6984: PPUSH
6985: CALL_OW 88
6989: GO 7195
6991: LD_EXP 30
6995: DOUBLE
6996: EQUAL
6997: IFTRUE 7001
6999: GO 7020
7001: POP
// Say ( temp [ 1 ] , Rs_Ko1 ) ; Khattam :
7002: LD_VAR 0 1
7006: PUSH
7007: LD_INT 1
7009: ARRAY
7010: PPUSH
7011: LD_STRING Rs_Ko1
7013: PPUSH
7014: CALL_OW 88
7018: GO 7195
7020: LD_EXP 34
7024: DOUBLE
7025: EQUAL
7026: IFTRUE 7030
7028: GO 7049
7030: POP
// Say ( temp [ 1 ] , Rs_Kh1 ) ; Aviradze :
7031: LD_VAR 0 1
7035: PUSH
7036: LD_INT 1
7038: ARRAY
7039: PPUSH
7040: LD_STRING Rs_Kh1
7042: PPUSH
7043: CALL_OW 88
7047: GO 7195
7049: LD_EXP 31
7053: DOUBLE
7054: EQUAL
7055: IFTRUE 7059
7057: GO 7078
7059: POP
// Say ( temp [ 1 ] , Rs_Av1 ) ; Evelyn :
7060: LD_VAR 0 1
7064: PUSH
7065: LD_INT 1
7067: ARRAY
7068: PPUSH
7069: LD_STRING Rs_Av1
7071: PPUSH
7072: CALL_OW 88
7076: GO 7195
7078: LD_EXP 35
7082: DOUBLE
7083: EQUAL
7084: IFTRUE 7088
7086: GO 7107
7088: POP
// Say ( temp [ 1 ] , Rs_Ev1 ) ; Swansson :
7089: LD_VAR 0 1
7093: PUSH
7094: LD_INT 1
7096: ARRAY
7097: PPUSH
7098: LD_STRING Rs_Ev1
7100: PPUSH
7101: CALL_OW 88
7105: GO 7195
7107: LD_EXP 32
7111: DOUBLE
7112: EQUAL
7113: IFTRUE 7117
7115: GO 7136
7117: POP
// Say ( temp [ 1 ] , Rs_Sw1 ) ; Dwayne :
7118: LD_VAR 0 1
7122: PUSH
7123: LD_INT 1
7125: ARRAY
7126: PPUSH
7127: LD_STRING Rs_Sw1
7129: PPUSH
7130: CALL_OW 88
7134: GO 7195
7136: LD_EXP 33
7140: DOUBLE
7141: EQUAL
7142: IFTRUE 7146
7144: GO 7165
7146: POP
// Say ( temp [ 1 ] , Rs_Dw1 ) ; Makise :
7147: LD_VAR 0 1
7151: PUSH
7152: LD_INT 1
7154: ARRAY
7155: PPUSH
7156: LD_STRING Rs_Dw1
7158: PPUSH
7159: CALL_OW 88
7163: GO 7195
7165: LD_EXP 36
7169: DOUBLE
7170: EQUAL
7171: IFTRUE 7175
7173: GO 7194
7175: POP
// Say ( temp [ 1 ] , Rs_Ma1 ) ; end ;
7176: LD_VAR 0 1
7180: PUSH
7181: LD_INT 1
7183: ARRAY
7184: PPUSH
7185: LD_STRING Rs_Ma1
7187: PPUSH
7188: CALL_OW 88
7192: GO 7195
7194: POP
// placeseeing ( 51 , 31 , 2 , 10 ) ;
7195: LD_INT 51
7197: PPUSH
7198: LD_INT 31
7200: PPUSH
7201: LD_INT 2
7203: PPUSH
7204: LD_INT 10
7206: PPUSH
7207: CALL_OW 330
// centeronunits ( Farmervehicle ) ;
7211: LD_EXP 12
7215: PPUSH
7216: CALL_OW 85
// wait ( 0 0$3 ) ;
7220: LD_INT 105
7222: PPUSH
7223: CALL_OW 67
// temp = temp_list [ rand ( 1 , temp_list ) ] ;
7227: LD_ADDR_VAR 0 1
7231: PUSH
7232: LD_VAR 0 2
7236: PUSH
7237: LD_INT 1
7239: PPUSH
7240: LD_VAR 0 2
7244: PPUSH
7245: CALL_OW 12
7249: ARRAY
7250: ST_TO_ADDR
// if not temp [ 1 ] in [ Olaf , Sonya , Oswald , Ralph , Kowalski , Aviradze , Swansson , Dwayne , Khattam , Evelyn , Makise ] then
7251: LD_VAR 0 1
7255: PUSH
7256: LD_INT 1
7258: ARRAY
7259: PUSH
7260: LD_EXP 26
7264: PUSH
7265: LD_EXP 27
7269: PUSH
7270: LD_EXP 28
7274: PUSH
7275: LD_EXP 29
7279: PUSH
7280: LD_EXP 30
7284: PUSH
7285: LD_EXP 31
7289: PUSH
7290: LD_EXP 32
7294: PUSH
7295: LD_EXP 33
7299: PUSH
7300: LD_EXP 34
7304: PUSH
7305: LD_EXP 35
7309: PUSH
7310: LD_EXP 36
7314: PUSH
7315: EMPTY
7316: LIST
7317: LIST
7318: LIST
7319: LIST
7320: LIST
7321: LIST
7322: LIST
7323: LIST
7324: LIST
7325: LIST
7326: LIST
7327: IN
7328: NOT
7329: IFFALSE 7384
// if getsex ( temp [ 1 ] ) = sex_male then
7331: LD_VAR 0 1
7335: PUSH
7336: LD_INT 1
7338: ARRAY
7339: PPUSH
7340: CALL_OW 258
7344: PUSH
7345: LD_INT 1
7347: EQUAL
7348: IFFALSE 7368
// Say ( temp [ 1 ] , Rs_SomeM3 ) else
7350: LD_VAR 0 1
7354: PUSH
7355: LD_INT 1
7357: ARRAY
7358: PPUSH
7359: LD_STRING Rs_SomeM3
7361: PPUSH
7362: CALL_OW 88
7366: GO 7384
// Say ( temp [ 1 ] , Rs_SomeF3 ) ;
7368: LD_VAR 0 1
7372: PUSH
7373: LD_INT 1
7375: ARRAY
7376: PPUSH
7377: LD_STRING Rs_SomeF3
7379: PPUSH
7380: CALL_OW 88
// case temp [ 1 ] of Olaf :
7384: LD_VAR 0 1
7388: PUSH
7389: LD_INT 1
7391: ARRAY
7392: PUSH
7393: LD_EXP 26
7397: DOUBLE
7398: EQUAL
7399: IFTRUE 7403
7401: GO 7422
7403: POP
// Say ( temp [ 1 ] , Rs_Olaf2 ) ; Sonya :
7404: LD_VAR 0 1
7408: PUSH
7409: LD_INT 1
7411: ARRAY
7412: PPUSH
7413: LD_STRING Rs_Olaf2
7415: PPUSH
7416: CALL_OW 88
7420: GO 7713
7422: LD_EXP 27
7426: DOUBLE
7427: EQUAL
7428: IFTRUE 7432
7430: GO 7451
7432: POP
// Say ( temp [ 1 ] , Rs_So2 ) ; Oswald :
7433: LD_VAR 0 1
7437: PUSH
7438: LD_INT 1
7440: ARRAY
7441: PPUSH
7442: LD_STRING Rs_So2
7444: PPUSH
7445: CALL_OW 88
7449: GO 7713
7451: LD_EXP 28
7455: DOUBLE
7456: EQUAL
7457: IFTRUE 7461
7459: GO 7480
7461: POP
// Say ( temp [ 1 ] , Rs_Os2 ) ; Ralph :
7462: LD_VAR 0 1
7466: PUSH
7467: LD_INT 1
7469: ARRAY
7470: PPUSH
7471: LD_STRING Rs_Os2
7473: PPUSH
7474: CALL_OW 88
7478: GO 7713
7480: LD_EXP 29
7484: DOUBLE
7485: EQUAL
7486: IFTRUE 7490
7488: GO 7509
7490: POP
// Say ( temp [ 1 ] , Rs_Ra2 ) ; Kowalski :
7491: LD_VAR 0 1
7495: PUSH
7496: LD_INT 1
7498: ARRAY
7499: PPUSH
7500: LD_STRING Rs_Ra2
7502: PPUSH
7503: CALL_OW 88
7507: GO 7713
7509: LD_EXP 30
7513: DOUBLE
7514: EQUAL
7515: IFTRUE 7519
7517: GO 7538
7519: POP
// Say ( temp [ 1 ] , Rs_Ko2 ) ; Khattam :
7520: LD_VAR 0 1
7524: PUSH
7525: LD_INT 1
7527: ARRAY
7528: PPUSH
7529: LD_STRING Rs_Ko2
7531: PPUSH
7532: CALL_OW 88
7536: GO 7713
7538: LD_EXP 34
7542: DOUBLE
7543: EQUAL
7544: IFTRUE 7548
7546: GO 7567
7548: POP
// Say ( temp [ 1 ] , Rs_Kh2 ) ; Aviradze :
7549: LD_VAR 0 1
7553: PUSH
7554: LD_INT 1
7556: ARRAY
7557: PPUSH
7558: LD_STRING Rs_Kh2
7560: PPUSH
7561: CALL_OW 88
7565: GO 7713
7567: LD_EXP 31
7571: DOUBLE
7572: EQUAL
7573: IFTRUE 7577
7575: GO 7596
7577: POP
// Say ( temp [ 1 ] , Rs_Av2 ) ; Evelyn :
7578: LD_VAR 0 1
7582: PUSH
7583: LD_INT 1
7585: ARRAY
7586: PPUSH
7587: LD_STRING Rs_Av2
7589: PPUSH
7590: CALL_OW 88
7594: GO 7713
7596: LD_EXP 35
7600: DOUBLE
7601: EQUAL
7602: IFTRUE 7606
7604: GO 7625
7606: POP
// Say ( temp [ 1 ] , Rs_Ev2 ) ; Swansson :
7607: LD_VAR 0 1
7611: PUSH
7612: LD_INT 1
7614: ARRAY
7615: PPUSH
7616: LD_STRING Rs_Ev2
7618: PPUSH
7619: CALL_OW 88
7623: GO 7713
7625: LD_EXP 32
7629: DOUBLE
7630: EQUAL
7631: IFTRUE 7635
7633: GO 7654
7635: POP
// Say ( temp [ 1 ] , Rs_Sw2 ) ; Dwayne :
7636: LD_VAR 0 1
7640: PUSH
7641: LD_INT 1
7643: ARRAY
7644: PPUSH
7645: LD_STRING Rs_Sw2
7647: PPUSH
7648: CALL_OW 88
7652: GO 7713
7654: LD_EXP 33
7658: DOUBLE
7659: EQUAL
7660: IFTRUE 7664
7662: GO 7683
7664: POP
// Say ( temp [ 1 ] , Rs_Dw2 ) ; Makise :
7665: LD_VAR 0 1
7669: PUSH
7670: LD_INT 1
7672: ARRAY
7673: PPUSH
7674: LD_STRING Rs_Dw2
7676: PPUSH
7677: CALL_OW 88
7681: GO 7713
7683: LD_EXP 36
7687: DOUBLE
7688: EQUAL
7689: IFTRUE 7693
7691: GO 7712
7693: POP
// Say ( temp [ 1 ] , Rs_Ma2 ) ; end ;
7694: LD_VAR 0 1
7698: PUSH
7699: LD_INT 1
7701: ARRAY
7702: PPUSH
7703: LD_STRING Rs_Ma2
7705: PPUSH
7706: CALL_OW 88
7710: GO 7713
7712: POP
// Say ( Heike , Rs_He2 ) ;
7713: LD_EXP 25
7717: PPUSH
7718: LD_STRING Rs_He2
7720: PPUSH
7721: CALL_OW 88
// centeronunits ( isinunit ( heike ) ) ;
7725: LD_EXP 25
7729: PPUSH
7730: CALL_OW 310
7734: PPUSH
7735: CALL_OW 85
// removeseeing ( 51 , 31 , 2 ) ;
7739: LD_INT 51
7741: PPUSH
7742: LD_INT 31
7744: PPUSH
7745: LD_INT 2
7747: PPUSH
7748: CALL_OW 331
// wait ( 0 0$2 ) ;
7752: LD_INT 70
7754: PPUSH
7755: CALL_OW 67
// InGameOff ;
7759: CALL_OW 9
// ChangeMissionObjectives ( rescue1 ) ;
7763: LD_STRING rescue1
7765: PPUSH
7766: CALL_OW 337
// Saveforquickrestart ;
7770: CALL_OW 22
// enable ( 2 ) ;
7774: LD_INT 2
7776: ENABLE_MARKED
// end ;
7777: PPOPN 2
7779: END
// every 0 0$1 marked 2 do var i , temp ;
7780: GO 7782
7782: DISABLE
7783: LD_INT 0
7785: PPUSH
7786: PPUSH
// begin repeat wait ( 0 0$1 ) ;
7787: LD_INT 35
7789: PPUSH
7790: CALL_OW 67
// until ContactTime ( [ 2 , 8 ] ) < 0 0$2 ;
7794: LD_INT 2
7796: PUSH
7797: LD_INT 8
7799: PUSH
7800: EMPTY
7801: LIST
7802: LIST
7803: PPUSH
7804: CALL_OW 462
7808: PUSH
7809: LD_INT 70
7811: LESS
7812: IFFALSE 7787
// wait ( 0 0$10 ) ;
7814: LD_INT 350
7816: PPUSH
7817: CALL_OW 67
// FightingStarted = tick ;
7821: LD_ADDR_EXP 20
7825: PUSH
7826: LD_OWVAR 1
7830: ST_TO_ADDR
// Say ( Farmer , Rs_Fa1 ) ;
7831: LD_EXP 11
7835: PPUSH
7836: LD_STRING Rs_Fa1
7838: PPUSH
7839: CALL_OW 88
// Say ( Heike , Rs_He3 ) ;
7843: LD_EXP 25
7847: PPUSH
7848: LD_STRING Rs_He3
7850: PPUSH
7851: CALL_OW 88
// ChangeMissionObjectives ( rescue2 ) ;
7855: LD_STRING rescue2
7857: PPUSH
7858: CALL_OW 337
// if LoadVariable ( Transport_Teleported_14_cont , 0 ) < 1 and testing = false then
7862: LD_STRING Transport_Teleported_14_cont
7864: PPUSH
7865: LD_INT 0
7867: PPUSH
7868: CALL_OW 30
7872: PUSH
7873: LD_INT 1
7875: LESS
7876: PUSH
7877: LD_EXP 1
7881: PUSH
7882: LD_INT 0
7884: EQUAL
7885: AND
7886: IFFALSE 7890
// exit ;
7888: GO 8063
// temp = tick ;
7890: LD_ADDR_VAR 0 2
7894: PUSH
7895: LD_OWVAR 1
7899: ST_TO_ADDR
// repeat wait ( 0 0$1 ) ;
7900: LD_INT 35
7902: PPUSH
7903: CALL_OW 67
// until ( unitfilter ( FarmerTroops , [ f_ok ] ) < 17 and tick > temp + 0 0$10 ) or ( not isinunit ( farmer ) or isinunit ( farmer ) = emptyveh ) ;
7907: LD_EXP 13
7911: PPUSH
7912: LD_INT 50
7914: PUSH
7915: EMPTY
7916: LIST
7917: PPUSH
7918: CALL_OW 72
7922: PUSH
7923: LD_INT 17
7925: LESS
7926: PUSH
7927: LD_OWVAR 1
7931: PUSH
7932: LD_VAR 0 2
7936: PUSH
7937: LD_INT 350
7939: PLUS
7940: GREATER
7941: AND
7942: PUSH
7943: LD_EXP 11
7947: PPUSH
7948: CALL_OW 310
7952: NOT
7953: PUSH
7954: LD_EXP 11
7958: PPUSH
7959: CALL_OW 310
7963: PUSH
7964: LD_EXP 17
7968: EQUAL
7969: OR
7970: OR
7971: IFFALSE 7900
// placeunitarea ( Pierre , enter_snake , false ) ;
7973: LD_EXP 24
7977: PPUSH
7978: LD_INT 2
7980: PPUSH
7981: LD_INT 0
7983: PPUSH
7984: CALL_OW 49
// placeunitarea ( Elizabeth , enter_snake , false ) ;
7988: LD_EXP 23
7992: PPUSH
7993: LD_INT 2
7995: PPUSH
7996: LD_INT 0
7998: PPUSH
7999: CALL_OW 49
// placeunitarea ( Snake , enter_snake , false ) ;
8003: LD_EXP 22
8007: PPUSH
8008: LD_INT 2
8010: PPUSH
8011: LD_INT 0
8013: PPUSH
8014: CALL_OW 49
// centeronunits ( Snake ) ;
8018: LD_EXP 22
8022: PPUSH
8023: CALL_OW 85
// Say ( Snake , Rs_Sn1 ) ;
8027: LD_EXP 22
8031: PPUSH
8032: LD_STRING Rs_Sn1
8034: PPUSH
8035: CALL_OW 88
// Say ( Heike , Rs_He4 ) ;
8039: LD_EXP 25
8043: PPUSH
8044: LD_STRING Rs_He4
8046: PPUSH
8047: CALL_OW 88
// Say ( Snake , Rs_Sn2 ) ;
8051: LD_EXP 22
8055: PPUSH
8056: LD_STRING Rs_Sn2
8058: PPUSH
8059: CALL_OW 88
// end ;
8063: PPOPN 2
8065: END
// every 0 0$1.1 do
8066: GO 8068
8068: DISABLE
// begin repeat wait ( 0 0$0.1 ) ;
8069: LD_INT 4
8071: PPUSH
8072: CALL_OW 67
// if GetLives ( Farmer ) <= 250 then
8076: LD_EXP 11
8080: PPUSH
8081: CALL_OW 256
8085: PUSH
8086: LD_INT 250
8088: LESSEQUAL
8089: IFFALSE 8113
// begin DialogueOn ;
8091: CALL_OW 6
// ForceSay ( Farmer , Rs_Fa2 ) ;
8095: LD_EXP 11
8099: PPUSH
8100: LD_STRING Rs_Fa2
8102: PPUSH
8103: CALL_OW 91
// DialogueOff ;
8107: CALL_OW 7
// exit ;
8111: GO 8117
// end ; until false ;
8113: LD_INT 0
8115: IFFALSE 8069
// end ;
8117: END
// every 0 0$1 marked 2 do var i , temp , time ;
8118: GO 8120
8120: DISABLE
8121: LD_INT 0
8123: PPUSH
8124: PPUSH
8125: PPUSH
// begin case BombStatus of 0 :
8126: LD_EXP 18
8130: PUSH
8131: LD_INT 0
8133: DOUBLE
8134: EQUAL
8135: IFTRUE 8139
8137: GO 8264
8139: POP
// if ( tick > FightingStarted + 0 0$25 and not FightingStarted = 0 ) or UnitFilter ( AmbushBombs , [ [ f_not , [ f_ok ] ] ] ) > 0 then
8140: LD_OWVAR 1
8144: PUSH
8145: LD_EXP 20
8149: PUSH
8150: LD_INT 875
8152: PLUS
8153: GREATER
8154: PUSH
8155: LD_EXP 20
8159: PUSH
8160: LD_INT 0
8162: EQUAL
8163: NOT
8164: AND
8165: PUSH
8166: LD_EXP 15
8170: PPUSH
8171: LD_INT 3
8173: PUSH
8174: LD_INT 50
8176: PUSH
8177: EMPTY
8178: LIST
8179: PUSH
8180: EMPTY
8181: LIST
8182: LIST
8183: PUSH
8184: EMPTY
8185: LIST
8186: PPUSH
8187: CALL_OW 72
8191: PUSH
8192: LD_INT 0
8194: GREATER
8195: OR
8196: IFFALSE 8262
// begin BombStatus = 1 ;
8198: LD_ADDR_EXP 18
8202: PUSH
8203: LD_INT 1
8205: ST_TO_ADDR
// temp = tick ;
8206: LD_ADDR_VAR 0 2
8210: PUSH
8211: LD_OWVAR 1
8215: ST_TO_ADDR
// for i in AmbushBombs do
8216: LD_ADDR_VAR 0 1
8220: PUSH
8221: LD_EXP 15
8225: PUSH
8226: FOR_IN
8227: IFFALSE 8245
// LinkVehicleToHuman ( i , FarmerRemoteMech ) ;
8229: LD_VAR 0 1
8233: PPUSH
8234: LD_EXP 16
8238: PPUSH
8239: CALL_OW 53
8243: GO 8226
8245: POP
8246: POP
// commovexy ( AmbushBombs , 51 , 44 ) ;
8247: LD_EXP 15
8251: PPUSH
8252: LD_INT 51
8254: PPUSH
8255: LD_INT 44
8257: PPUSH
8258: CALL_OW 111
// end ; 1 :
8262: GO 8625
8264: LD_INT 1
8266: DOUBLE
8267: EQUAL
8268: IFTRUE 8272
8270: GO 8351
8272: POP
// begin for i in Filterallunits ( [ f_side , 2 ] ) do
8273: LD_ADDR_VAR 0 1
8277: PUSH
8278: LD_INT 22
8280: PUSH
8281: LD_INT 2
8283: PUSH
8284: EMPTY
8285: LIST
8286: LIST
8287: PPUSH
8288: CALL_OW 69
8292: PUSH
8293: FOR_IN
8294: IFFALSE 8323
// if attacks ( i ) in AmbushBombs then
8296: LD_VAR 0 1
8300: PPUSH
8301: CALL_OW 320
8305: PUSH
8306: LD_EXP 15
8310: IN
8311: IFFALSE 8321
// BombStatus = 3 ;
8313: LD_ADDR_EXP 18
8317: PUSH
8318: LD_INT 3
8320: ST_TO_ADDR
8321: GO 8293
8323: POP
8324: POP
// if tick > temp + 0 0$10 then
8325: LD_OWVAR 1
8329: PUSH
8330: LD_VAR 0 2
8334: PUSH
8335: LD_INT 350
8337: PLUS
8338: GREATER
8339: IFFALSE 8349
// BombStatus = 2 ;
8341: LD_ADDR_EXP 18
8345: PUSH
8346: LD_INT 2
8348: ST_TO_ADDR
// end ; 2 :
8349: GO 8625
8351: LD_INT 2
8353: DOUBLE
8354: EQUAL
8355: IFTRUE 8359
8357: GO 8544
8359: POP
// begin for i in Filterallunits ( [ f_side , 2 ] ) do
8360: LD_ADDR_VAR 0 1
8364: PUSH
8365: LD_INT 22
8367: PUSH
8368: LD_INT 2
8370: PUSH
8371: EMPTY
8372: LIST
8373: LIST
8374: PPUSH
8375: CALL_OW 69
8379: PUSH
8380: FOR_IN
8381: IFFALSE 8410
// if attacks ( i ) in AmbushBombs then
8383: LD_VAR 0 1
8387: PPUSH
8388: CALL_OW 320
8392: PUSH
8393: LD_EXP 15
8397: IN
8398: IFFALSE 8408
// BombStatus = 3 ;
8400: LD_ADDR_EXP 18
8404: PUSH
8405: LD_INT 3
8407: ST_TO_ADDR
8408: GO 8380
8410: POP
8411: POP
// temp = 0 ;
8412: LD_ADDR_VAR 0 2
8416: PUSH
8417: LD_INT 0
8419: ST_TO_ADDR
// for i in Filterallunits ( [ f_side , 2 ] ) diff Snake ^ Pierre ^ Elizabeth do
8420: LD_ADDR_VAR 0 1
8424: PUSH
8425: LD_INT 22
8427: PUSH
8428: LD_INT 2
8430: PUSH
8431: EMPTY
8432: LIST
8433: LIST
8434: PPUSH
8435: CALL_OW 69
8439: PUSH
8440: LD_EXP 22
8444: PUSH
8445: LD_EXP 24
8449: ADD
8450: PUSH
8451: LD_EXP 23
8455: ADD
8456: DIFF
8457: PUSH
8458: FOR_IN
8459: IFFALSE 8488
// if Attacks ( i ) in farmertroops then
8461: LD_VAR 0 1
8465: PPUSH
8466: CALL_OW 320
8470: PUSH
8471: LD_EXP 13
8475: IN
8476: IFFALSE 8486
// temp = 1 ;
8478: LD_ADDR_VAR 0 2
8482: PUSH
8483: LD_INT 1
8485: ST_TO_ADDR
8486: GO 8458
8488: POP
8489: POP
// if temp = 1 then
8490: LD_VAR 0 2
8494: PUSH
8495: LD_INT 1
8497: EQUAL
8498: IFFALSE 8516
// ContactCount = ContactCount + 0 0$1 else
8500: LD_ADDR_EXP 21
8504: PUSH
8505: LD_EXP 21
8509: PUSH
8510: LD_INT 35
8512: PLUS
8513: ST_TO_ADDR
8514: GO 8524
// ContactCount = 0 ;
8516: LD_ADDR_EXP 21
8520: PUSH
8521: LD_INT 0
8523: ST_TO_ADDR
// if ContactCount >= 4 then
8524: LD_EXP 21
8528: PUSH
8529: LD_INT 4
8531: GREATEREQUAL
8532: IFFALSE 8542
// BombStatus = 3 ;
8534: LD_ADDR_EXP 18
8538: PUSH
8539: LD_INT 3
8541: ST_TO_ADDR
// end ; 3 :
8542: GO 8625
8544: LD_INT 3
8546: DOUBLE
8547: EQUAL
8548: IFTRUE 8552
8550: GO 8624
8552: POP
// for i in AmbushBombs do
8553: LD_ADDR_VAR 0 1
8557: PUSH
8558: LD_EXP 15
8562: PUSH
8563: FOR_IN
8564: IFFALSE 8620
// comattackunit ( i , NearestUnitToUnit ( Filterallunits ( [ f_side , 2 ] ) diff Snake ^ Elizabeth ^ Pierre , i ) ) ; end ;
8566: LD_VAR 0 1
8570: PPUSH
8571: LD_INT 22
8573: PUSH
8574: LD_INT 2
8576: PUSH
8577: EMPTY
8578: LIST
8579: LIST
8580: PPUSH
8581: CALL_OW 69
8585: PUSH
8586: LD_EXP 22
8590: PUSH
8591: LD_EXP 23
8595: ADD
8596: PUSH
8597: LD_EXP 24
8601: ADD
8602: DIFF
8603: PPUSH
8604: LD_VAR 0 1
8608: PPUSH
8609: CALL_OW 74
8613: PPUSH
8614: CALL_OW 115
8618: GO 8563
8620: POP
8621: POP
8622: GO 8625
8624: POP
// enable ;
8625: ENABLE
// end ;
8626: PPOPN 3
8628: END
// every 0 0$1 marked 2 do var i , temp , temp2 ;
8629: GO 8631
8631: DISABLE
8632: LD_INT 0
8634: PPUSH
8635: PPUSH
8636: PPUSH
// begin if FarmerStatus < 2 then
8637: LD_EXP 19
8641: PUSH
8642: LD_INT 2
8644: LESS
8645: IFFALSE 8687
// for i in FarmerBombs do
8647: LD_ADDR_VAR 0 1
8651: PUSH
8652: LD_EXP 14
8656: PUSH
8657: FOR_IN
8658: IFFALSE 8685
// if GetLives ( i ) < 800 then
8660: LD_VAR 0 1
8664: PPUSH
8665: CALL_OW 256
8669: PUSH
8670: LD_INT 800
8672: LESS
8673: IFFALSE 8683
// temp = 1 ;
8675: LD_ADDR_VAR 0 2
8679: PUSH
8680: LD_INT 1
8682: ST_TO_ADDR
8683: GO 8657
8685: POP
8686: POP
// temp2 = IsInUnit ( Heike ) ;
8687: LD_ADDR_VAR 0 3
8691: PUSH
8692: LD_EXP 25
8696: PPUSH
8697: CALL_OW 310
8701: ST_TO_ADDR
// if temp2 = 0 then
8702: LD_VAR 0 3
8706: PUSH
8707: LD_INT 0
8709: EQUAL
8710: IFFALSE 8722
// temp2 = Heike ;
8712: LD_ADDR_VAR 0 3
8716: PUSH
8717: LD_EXP 25
8721: ST_TO_ADDR
// if temp = 1 then
8722: LD_VAR 0 2
8726: PUSH
8727: LD_INT 1
8729: EQUAL
8730: IFFALSE 8890
// begin for i in FarmerBombs do
8732: LD_ADDR_VAR 0 1
8736: PUSH
8737: LD_EXP 14
8741: PUSH
8742: FOR_IN
8743: IFFALSE 8773
// if not IsControledBy ( i ) then
8745: LD_VAR 0 1
8749: PPUSH
8750: CALL_OW 312
8754: NOT
8755: IFFALSE 8771
// LinkVehicleToHuman ( i , FarmerRemoteMech ) ;
8757: LD_VAR 0 1
8761: PPUSH
8762: LD_EXP 16
8766: PPUSH
8767: CALL_OW 53
8771: GO 8742
8773: POP
8774: POP
// if GetDistUnits ( NearestUnitToUnit ( FarmerBombs , temp2 ) , temp2 ) < 35 then
8775: LD_EXP 14
8779: PPUSH
8780: LD_VAR 0 3
8784: PPUSH
8785: CALL_OW 74
8789: PPUSH
8790: LD_VAR 0 3
8794: PPUSH
8795: CALL_OW 296
8799: PUSH
8800: LD_INT 35
8802: LESS
8803: IFFALSE 8821
// ComAttackUnit ( FarmerBombs , temp2 ) else
8805: LD_EXP 14
8809: PPUSH
8810: LD_VAR 0 3
8814: PPUSH
8815: CALL_OW 115
8819: GO 8890
// for i in FarmerBombs do
8821: LD_ADDR_VAR 0 1
8825: PUSH
8826: LD_EXP 14
8830: PUSH
8831: FOR_IN
8832: IFFALSE 8888
// ComAttackUnit ( i , NearestUnitToUnit ( FilterAllUnits ( [ f_side , 2 ] ) diff Snake ^ Pierre ^ Elizabeth , i ) ) ;
8834: LD_VAR 0 1
8838: PPUSH
8839: LD_INT 22
8841: PUSH
8842: LD_INT 2
8844: PUSH
8845: EMPTY
8846: LIST
8847: LIST
8848: PPUSH
8849: CALL_OW 69
8853: PUSH
8854: LD_EXP 22
8858: PUSH
8859: LD_EXP 24
8863: ADD
8864: PUSH
8865: LD_EXP 23
8869: ADD
8870: DIFF
8871: PPUSH
8872: LD_VAR 0 1
8876: PPUSH
8877: CALL_OW 74
8881: PPUSH
8882: CALL_OW 115
8886: GO 8831
8888: POP
8889: POP
// end ; case FarmerStatus of 0 :
8890: LD_EXP 19
8894: PUSH
8895: LD_INT 0
8897: DOUBLE
8898: EQUAL
8899: IFTRUE 8903
8901: GO 8979
8903: POP
// if not IsOk ( FarmerVehicle ) then
8904: LD_EXP 12
8908: PPUSH
8909: CALL_OW 302
8913: NOT
8914: IFFALSE 8977
// if IsInUnit ( Farmer ) then
8916: LD_EXP 11
8920: PPUSH
8921: CALL_OW 310
8925: IFFALSE 8937
// FarmerStatus = 1 else
8927: LD_ADDR_EXP 19
8931: PUSH
8932: LD_INT 1
8934: ST_TO_ADDR
8935: GO 8977
// if IsOk ( emptyveh ) and GetSide ( emptyveh ) = 8 then
8937: LD_EXP 17
8941: PPUSH
8942: CALL_OW 302
8946: PUSH
8947: LD_EXP 17
8951: PPUSH
8952: CALL_OW 255
8956: PUSH
8957: LD_INT 8
8959: EQUAL
8960: AND
8961: IFFALSE 8977
// ComEnterUnit ( Farmer , emptyveh ) ; 1 :
8963: LD_EXP 11
8967: PPUSH
8968: LD_EXP 17
8972: PPUSH
8973: CALL_OW 120
8977: GO 9054
8979: LD_INT 1
8981: DOUBLE
8982: EQUAL
8983: IFTRUE 8987
8985: GO 9053
8987: POP
// begin for i in FarmerBombs do
8988: LD_ADDR_VAR 0 1
8992: PUSH
8993: LD_EXP 14
8997: PUSH
8998: FOR_IN
8999: IFFALSE 9029
// if not IsControledBy ( i ) then
9001: LD_VAR 0 1
9005: PPUSH
9006: CALL_OW 312
9010: NOT
9011: IFFALSE 9027
// LinkVehicleToHuman ( i , FarmerRemoteMech ) ;
9013: LD_VAR 0 1
9017: PPUSH
9018: LD_EXP 16
9022: PPUSH
9023: CALL_OW 53
9027: GO 8998
9029: POP
9030: POP
// comattackunit ( Farmer ^ FarmerBombs , Heike ) ;
9031: LD_EXP 11
9035: PUSH
9036: LD_EXP 14
9040: ADD
9041: PPUSH
9042: LD_EXP 25
9046: PPUSH
9047: CALL_OW 115
// end ; end ;
9051: GO 9054
9053: POP
// enable ;
9054: ENABLE
// end ;
9055: PPOPN 3
9057: END
// every 0 0$1 marked 2 do var i ;
9058: GO 9060
9060: DISABLE
9061: LD_INT 0
9063: PPUSH
// begin for i in FarmerTroops ^ AmbushBombs do
9064: LD_ADDR_VAR 0 1
9068: PUSH
9069: LD_EXP 13
9073: PUSH
9074: LD_EXP 15
9078: ADD
9079: PUSH
9080: FOR_IN
9081: IFFALSE 9121
// if not isok ( i ) and getcontrol ( i ) = control_remote then
9083: LD_VAR 0 1
9087: PPUSH
9088: CALL_OW 302
9092: NOT
9093: PUSH
9094: LD_VAR 0 1
9098: PPUSH
9099: CALL_OW 263
9103: PUSH
9104: LD_INT 2
9106: EQUAL
9107: AND
9108: IFFALSE 9119
// comunlink ( i ) ;
9110: LD_VAR 0 1
9114: PPUSH
9115: CALL_OW 136
9119: GO 9080
9121: POP
9122: POP
// enable ;
9123: ENABLE
// end ;
9124: PPOPN 1
9126: END
// every 0 0$1 trigger EndingCutscene do
9127: LD_EXP 6
9131: IFFALSE 9151
9133: GO 9135
9135: DISABLE
// begin ComMoveXY ( FarmerTroops , 70 , 2 ) ;
9136: LD_EXP 13
9140: PPUSH
9141: LD_INT 70
9143: PPUSH
9144: LD_INT 2
9146: PPUSH
9147: CALL_OW 111
// end ;
9151: END
// every 0 0$1 marked 1 do var i , temp , temp2 , count , controlmechs ;
9152: GO 9154
9154: DISABLE
9155: LD_INT 0
9157: PPUSH
9158: PPUSH
9159: PPUSH
9160: PPUSH
9161: PPUSH
// begin Randomize ;
9162: CALL_OW 10
// uc_side = 8 ;
9166: LD_ADDR_OWVAR 20
9170: PUSH
9171: LD_INT 8
9173: ST_TO_ADDR
// uc_nation = nation_arabian ;
9174: LD_ADDR_OWVAR 21
9178: PUSH
9179: LD_INT 2
9181: ST_TO_ADDR
// Legion = [ ] ;
9182: LD_ADDR_EXP 7
9186: PUSH
9187: EMPTY
9188: ST_TO_ADDR
// controlmechs = [ ] ;
9189: LD_ADDR_VAR 0 5
9193: PUSH
9194: EMPTY
9195: ST_TO_ADDR
// for i = 1 to 3 do
9196: LD_ADDR_VAR 0 1
9200: PUSH
9201: DOUBLE
9202: LD_INT 1
9204: DEC
9205: ST_TO_ADDR
9206: LD_INT 3
9208: PUSH
9209: FOR_TO
9210: IFFALSE 9240
// begin preparemechanic ( false , 10 ) ;
9212: LD_INT 0
9214: PPUSH
9215: LD_INT 10
9217: PPUSH
9218: CALL_OW 383
// controlmechs = controlmechs ^ createhuman ;
9222: LD_ADDR_VAR 0 5
9226: PUSH
9227: LD_VAR 0 5
9231: PUSH
9232: CALL_OW 44
9236: ADD
9237: ST_TO_ADDR
// end ;
9238: GO 9209
9240: POP
9241: POP
// LegionRemoteMech = controlmechs ;
9242: LD_ADDR_EXP 10
9246: PUSH
9247: LD_VAR 0 5
9251: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
9252: LD_ADDR_OWVAR 37
9256: PUSH
9257: LD_INT 14
9259: ST_TO_ADDR
// vc_engine = engine_siberite ;
9260: LD_ADDR_OWVAR 39
9264: PUSH
9265: LD_INT 3
9267: ST_TO_ADDR
// vc_control = control_manual ;
9268: LD_ADDR_OWVAR 38
9272: PUSH
9273: LD_INT 1
9275: ST_TO_ADDR
// vc_weapon = ar_control_tower ;
9276: LD_ADDR_OWVAR 40
9280: PUSH
9281: LD_INT 31
9283: ST_TO_ADDR
// temp = createvehicle ^ createvehicle ^ createvehicle ;
9284: LD_ADDR_VAR 0 2
9288: PUSH
9289: CALL_OW 45
9293: PUSH
9294: CALL_OW 45
9298: ADD
9299: PUSH
9300: CALL_OW 45
9304: ADD
9305: ST_TO_ADDR
// for i = 1 to 3 do
9306: LD_ADDR_VAR 0 1
9310: PUSH
9311: DOUBLE
9312: LD_INT 1
9314: DEC
9315: ST_TO_ADDR
9316: LD_INT 3
9318: PUSH
9319: FOR_TO
9320: IFFALSE 9350
// placehumaninunit ( controlmechs [ i ] , temp [ i ] ) ;
9322: LD_VAR 0 5
9326: PUSH
9327: LD_VAR 0 1
9331: ARRAY
9332: PPUSH
9333: LD_VAR 0 2
9337: PUSH
9338: LD_VAR 0 1
9342: ARRAY
9343: PPUSH
9344: CALL_OW 52
9348: GO 9319
9350: POP
9351: POP
// for i in temp do
9352: LD_ADDR_VAR 0 1
9356: PUSH
9357: LD_VAR 0 2
9361: PUSH
9362: FOR_IN
9363: IFFALSE 9382
// placeunitarea ( i , LegionAttackNormal , false ) ;
9365: LD_VAR 0 1
9369: PPUSH
9370: LD_INT 4
9372: PPUSH
9373: LD_INT 0
9375: PPUSH
9376: CALL_OW 49
9380: GO 9362
9382: POP
9383: POP
// repeat if EndingCutscene then
9384: LD_EXP 6
9388: IFFALSE 9392
// exit ;
9390: GO 10171
// while Legion < 15 do
9392: LD_EXP 7
9396: PUSH
9397: LD_INT 15
9399: LESS
9400: IFFALSE 10152
// begin if rand ( 1 , 3 ) = 1 then
9402: LD_INT 1
9404: PPUSH
9405: LD_INT 3
9407: PPUSH
9408: CALL_OW 12
9412: PUSH
9413: LD_INT 1
9415: EQUAL
9416: IFFALSE 9597
// begin hc_gallery =  ;
9418: LD_ADDR_OWVAR 33
9422: PUSH
9423: LD_STRING 
9425: ST_TO_ADDR
// hc_name =  ;
9426: LD_ADDR_OWVAR 26
9430: PUSH
9431: LD_STRING 
9433: ST_TO_ADDR
// PrepareSoldier ( false , 10 ) ;
9434: LD_INT 0
9436: PPUSH
9437: LD_INT 10
9439: PPUSH
9440: CALL_OW 381
// temp = createhuman ;
9444: LD_ADDR_VAR 0 2
9448: PUSH
9449: CALL_OW 44
9453: ST_TO_ADDR
// if rand ( 1 , 3 ) = 1 then
9454: LD_INT 1
9456: PPUSH
9457: LD_INT 3
9459: PPUSH
9460: CALL_OW 12
9464: PUSH
9465: LD_INT 1
9467: EQUAL
9468: IFFALSE 9486
// LegionNoRetreat = LegionNoRetreat ^ temp ;
9470: LD_ADDR_EXP 8
9474: PUSH
9475: LD_EXP 8
9479: PUSH
9480: LD_VAR 0 2
9484: ADD
9485: ST_TO_ADDR
// if rand ( 1 , 2 ) = 1 then
9486: LD_INT 1
9488: PPUSH
9489: LD_INT 2
9491: PPUSH
9492: CALL_OW 12
9496: PUSH
9497: LD_INT 1
9499: EQUAL
9500: IFFALSE 9514
// setclass ( temp , class_mortar ) ;
9502: LD_VAR 0 2
9506: PPUSH
9507: LD_INT 8
9509: PPUSH
9510: CALL_OW 336
// setattr ( temp , attr_speed , 12 ) ;
9514: LD_VAR 0 2
9518: PPUSH
9519: LD_INT 2
9521: PPUSH
9522: LD_INT 12
9524: PPUSH
9525: CALL_OW 239
// setattr ( temp , attr_stamina , 12 ) ;
9529: LD_VAR 0 2
9533: PPUSH
9534: LD_INT 1
9536: PPUSH
9537: LD_INT 12
9539: PPUSH
9540: CALL_OW 239
// placeunitarea ( temp , legionattacknormal , false ) ;
9544: LD_VAR 0 2
9548: PPUSH
9549: LD_INT 4
9551: PPUSH
9552: LD_INT 0
9554: PPUSH
9555: CALL_OW 49
// settag ( temp , rand ( 1 , 3 ) ) ;
9559: LD_VAR 0 2
9563: PPUSH
9564: LD_INT 1
9566: PPUSH
9567: LD_INT 3
9569: PPUSH
9570: CALL_OW 12
9574: PPUSH
9575: CALL_OW 109
// Legion = Legion ^ temp ;
9579: LD_ADDR_EXP 7
9583: PUSH
9584: LD_EXP 7
9588: PUSH
9589: LD_VAR 0 2
9593: ADD
9594: ST_TO_ADDR
// end else
9595: GO 10150
// begin vc_engine = [ engine_siberite , engine_combustion ] [ rand ( 1 , 2 ) ] ;
9597: LD_ADDR_OWVAR 39
9601: PUSH
9602: LD_INT 3
9604: PUSH
9605: LD_INT 1
9607: PUSH
9608: EMPTY
9609: LIST
9610: LIST
9611: PUSH
9612: LD_INT 1
9614: PPUSH
9615: LD_INT 2
9617: PPUSH
9618: CALL_OW 12
9622: ARRAY
9623: ST_TO_ADDR
// vc_control = [ control_manual , control_remote , control_apeman ] [ rand ( 1 , 3 ) ] ;
9624: LD_ADDR_OWVAR 38
9628: PUSH
9629: LD_INT 1
9631: PUSH
9632: LD_INT 2
9634: PUSH
9635: LD_INT 5
9637: PUSH
9638: EMPTY
9639: LIST
9640: LIST
9641: LIST
9642: PUSH
9643: LD_INT 1
9645: PPUSH
9646: LD_INT 3
9648: PPUSH
9649: CALL_OW 12
9653: ARRAY
9654: ST_TO_ADDR
// vc_chassis = [ ar_half_tracked , ar_half_tracked , ar_medium_trike ] [ rand ( 1 , 3 ) ] ;
9655: LD_ADDR_OWVAR 37
9659: PUSH
9660: LD_INT 14
9662: PUSH
9663: LD_INT 14
9665: PUSH
9666: LD_INT 13
9668: PUSH
9669: EMPTY
9670: LIST
9671: LIST
9672: LIST
9673: PUSH
9674: LD_INT 1
9676: PPUSH
9677: LD_INT 3
9679: PPUSH
9680: CALL_OW 12
9684: ARRAY
9685: ST_TO_ADDR
// if unitfilter ( legion , [ f_weapon , ar_rocket_launcher ] ) < 3 then
9686: LD_EXP 7
9690: PPUSH
9691: LD_INT 34
9693: PUSH
9694: LD_INT 28
9696: PUSH
9697: EMPTY
9698: LIST
9699: LIST
9700: PPUSH
9701: CALL_OW 72
9705: PUSH
9706: LD_INT 3
9708: LESS
9709: IFFALSE 9768
// vc_weapon = [ ar_gun , ar_gun , ar_gun , ar_rocket_launcher , ar_rocket_launcher , ar_rocket_launcher , ar_gatling_gun , ar_gatling_gun , ar_flame_thrower ] [ rand ( 1 , 9 ) ] else
9711: LD_ADDR_OWVAR 40
9715: PUSH
9716: LD_INT 27
9718: PUSH
9719: LD_INT 27
9721: PUSH
9722: LD_INT 27
9724: PUSH
9725: LD_INT 28
9727: PUSH
9728: LD_INT 28
9730: PUSH
9731: LD_INT 28
9733: PUSH
9734: LD_INT 25
9736: PUSH
9737: LD_INT 25
9739: PUSH
9740: LD_INT 26
9742: PUSH
9743: EMPTY
9744: LIST
9745: LIST
9746: LIST
9747: LIST
9748: LIST
9749: LIST
9750: LIST
9751: LIST
9752: LIST
9753: PUSH
9754: LD_INT 1
9756: PPUSH
9757: LD_INT 9
9759: PPUSH
9760: CALL_OW 12
9764: ARRAY
9765: ST_TO_ADDR
9766: GO 9811
// vc_weapon = [ ar_gun , ar_gun , ar_gun , ar_gatling_gun , ar_gatling_gun , ar_flame_thrower ] [ rand ( 1 , 5 ) ] ;
9768: LD_ADDR_OWVAR 40
9772: PUSH
9773: LD_INT 27
9775: PUSH
9776: LD_INT 27
9778: PUSH
9779: LD_INT 27
9781: PUSH
9782: LD_INT 25
9784: PUSH
9785: LD_INT 25
9787: PUSH
9788: LD_INT 26
9790: PUSH
9791: EMPTY
9792: LIST
9793: LIST
9794: LIST
9795: LIST
9796: LIST
9797: LIST
9798: PUSH
9799: LD_INT 1
9801: PPUSH
9802: LD_INT 5
9804: PPUSH
9805: CALL_OW 12
9809: ARRAY
9810: ST_TO_ADDR
// temp = createvehicle ;
9811: LD_ADDR_VAR 0 2
9815: PUSH
9816: CALL_OW 45
9820: ST_TO_ADDR
// placeunitarea ( temp , legionattacknormal , false ) ;
9821: LD_VAR 0 2
9825: PPUSH
9826: LD_INT 4
9828: PPUSH
9829: LD_INT 0
9831: PPUSH
9832: CALL_OW 49
// if getcontrol ( temp ) = control_remote then
9836: LD_VAR 0 2
9840: PPUSH
9841: CALL_OW 263
9845: PUSH
9846: LD_INT 2
9848: EQUAL
9849: IFFALSE 9982
// begin count = 11 ;
9851: LD_ADDR_VAR 0 4
9855: PUSH
9856: LD_INT 11
9858: ST_TO_ADDR
// temp2 = controlmechs [ 1 ] ;
9859: LD_ADDR_VAR 0 3
9863: PUSH
9864: LD_VAR 0 5
9868: PUSH
9869: LD_INT 1
9871: ARRAY
9872: ST_TO_ADDR
// for i in controlmechs do
9873: LD_ADDR_VAR 0 1
9877: PUSH
9878: LD_VAR 0 5
9882: PUSH
9883: FOR_IN
9884: IFFALSE 9930
// if unitslinked ( i ) < count then
9886: LD_VAR 0 1
9890: PPUSH
9891: CALL_OW 432
9895: PUSH
9896: LD_VAR 0 4
9900: LESS
9901: IFFALSE 9928
// begin count = unitslinked ( i ) ;
9903: LD_ADDR_VAR 0 4
9907: PUSH
9908: LD_VAR 0 1
9912: PPUSH
9913: CALL_OW 432
9917: ST_TO_ADDR
// temp2 = i ;
9918: LD_ADDR_VAR 0 3
9922: PUSH
9923: LD_VAR 0 1
9927: ST_TO_ADDR
// end ;
9928: GO 9883
9930: POP
9931: POP
// linkvehicletohuman ( temp , temp2 ) ;
9932: LD_VAR 0 2
9936: PPUSH
9937: LD_VAR 0 3
9941: PPUSH
9942: CALL_OW 53
// settag ( temp , rand ( 1 , 3 ) ) ;
9946: LD_VAR 0 2
9950: PPUSH
9951: LD_INT 1
9953: PPUSH
9954: LD_INT 3
9956: PPUSH
9957: CALL_OW 12
9961: PPUSH
9962: CALL_OW 109
// Legion = Legion ^ temp ;
9966: LD_ADDR_EXP 7
9970: PUSH
9971: LD_EXP 7
9975: PUSH
9976: LD_VAR 0 2
9980: ADD
9981: ST_TO_ADDR
// end ; if getcontrol ( temp ) = control_manual then
9982: LD_VAR 0 2
9986: PPUSH
9987: CALL_OW 263
9991: PUSH
9992: LD_INT 1
9994: EQUAL
9995: IFFALSE 10099
// begin preparemechanic ( false , 10 ) ;
9997: LD_INT 0
9999: PPUSH
10000: LD_INT 10
10002: PPUSH
10003: CALL_OW 383
// temp2 = createhuman ;
10007: LD_ADDR_VAR 0 3
10011: PUSH
10012: CALL_OW 44
10016: ST_TO_ADDR
// if rand ( 1 , 3 ) = 1 then
10017: LD_INT 1
10019: PPUSH
10020: LD_INT 3
10022: PPUSH
10023: CALL_OW 12
10027: PUSH
10028: LD_INT 1
10030: EQUAL
10031: IFFALSE 10049
// LegionNoRetreat = LegionNoRetreat ^ temp2 ;
10033: LD_ADDR_EXP 8
10037: PUSH
10038: LD_EXP 8
10042: PUSH
10043: LD_VAR 0 3
10047: ADD
10048: ST_TO_ADDR
// placehumaninunit ( temp2 , temp ) ;
10049: LD_VAR 0 3
10053: PPUSH
10054: LD_VAR 0 2
10058: PPUSH
10059: CALL_OW 52
// settag ( temp2 , rand ( 1 , 3 ) ) ;
10063: LD_VAR 0 3
10067: PPUSH
10068: LD_INT 1
10070: PPUSH
10071: LD_INT 3
10073: PPUSH
10074: CALL_OW 12
10078: PPUSH
10079: CALL_OW 109
// Legion = Legion ^ temp2 ;
10083: LD_ADDR_EXP 7
10087: PUSH
10088: LD_EXP 7
10092: PUSH
10093: LD_VAR 0 3
10097: ADD
10098: ST_TO_ADDR
// end ; if getcontrol ( temp ) = control_apeman then
10099: LD_VAR 0 2
10103: PPUSH
10104: CALL_OW 263
10108: PUSH
10109: LD_INT 5
10111: EQUAL
10112: IFFALSE 10150
// begin settag ( temp , rand ( 1 , 3 ) ) ;
10114: LD_VAR 0 2
10118: PPUSH
10119: LD_INT 1
10121: PPUSH
10122: LD_INT 3
10124: PPUSH
10125: CALL_OW 12
10129: PPUSH
10130: CALL_OW 109
// Legion = Legion ^ temp ;
10134: LD_ADDR_EXP 7
10138: PUSH
10139: LD_EXP 7
10143: PUSH
10144: LD_VAR 0 2
10148: ADD
10149: ST_TO_ADDR
// end ; end ; end ;
10150: GO 9392
// wait ( 0 0$45 ) ;
10152: LD_INT 1575
10154: PPUSH
10155: CALL_OW 67
// until missionfailed or EndingCutscene ;
10159: LD_EXP 5
10163: PUSH
10164: LD_EXP 6
10168: OR
10169: IFFALSE 9384
// end ;
10171: PPOPN 5
10173: END
// every 0 0$1 trigger Legion > 0 do var i , temp ;
10174: LD_EXP 7
10178: PUSH
10179: LD_INT 0
10181: GREATER
10182: IFFALSE 10640
10184: GO 10186
10186: DISABLE
10187: LD_INT 0
10189: PPUSH
10190: PPUSH
// begin for i in Legion do
10191: LD_ADDR_VAR 0 1
10195: PUSH
10196: LD_EXP 7
10200: PUSH
10201: FOR_IN
10202: IFFALSE 10637
// begin if getweapon ( i ) = ar_rocket_launcher or getclass ( i ) = class_mortar then
10204: LD_VAR 0 1
10208: PPUSH
10209: CALL_OW 264
10213: PUSH
10214: LD_INT 28
10216: EQUAL
10217: PUSH
10218: LD_VAR 0 1
10222: PPUSH
10223: CALL_OW 257
10227: PUSH
10228: LD_INT 8
10230: EQUAL
10231: OR
10232: IFFALSE 10412
// begin if unitfilter ( Legion , [ f_or , [ f_weapon , ar_rocket_launcher ] , [ f_class , class_mortar ] ] ) = Legion and getdistunitxy ( i , [ 57 , 65 , 73 ] [ gettag ( i ) ] , 95 ) > 9 then
10234: LD_EXP 7
10238: PPUSH
10239: LD_INT 2
10241: PUSH
10242: LD_INT 34
10244: PUSH
10245: LD_INT 28
10247: PUSH
10248: EMPTY
10249: LIST
10250: LIST
10251: PUSH
10252: LD_INT 25
10254: PUSH
10255: LD_INT 8
10257: PUSH
10258: EMPTY
10259: LIST
10260: LIST
10261: PUSH
10262: EMPTY
10263: LIST
10264: LIST
10265: LIST
10266: PPUSH
10267: CALL_OW 72
10271: PUSH
10272: LD_EXP 7
10276: EQUAL
10277: PUSH
10278: LD_VAR 0 1
10282: PPUSH
10283: LD_INT 57
10285: PUSH
10286: LD_INT 65
10288: PUSH
10289: LD_INT 73
10291: PUSH
10292: EMPTY
10293: LIST
10294: LIST
10295: LIST
10296: PUSH
10297: LD_VAR 0 1
10301: PPUSH
10302: CALL_OW 110
10306: ARRAY
10307: PPUSH
10308: LD_INT 95
10310: PPUSH
10311: CALL_OW 297
10315: PUSH
10316: LD_INT 9
10318: GREATER
10319: AND
10320: IFFALSE 10361
// commovexy ( i , [ 62 , 70 , 78 ] [ gettag ( i ) ] , 105 ) else
10322: LD_VAR 0 1
10326: PPUSH
10327: LD_INT 62
10329: PUSH
10330: LD_INT 70
10332: PUSH
10333: LD_INT 78
10335: PUSH
10336: EMPTY
10337: LIST
10338: LIST
10339: LIST
10340: PUSH
10341: LD_VAR 0 1
10345: PPUSH
10346: CALL_OW 110
10350: ARRAY
10351: PPUSH
10352: LD_INT 105
10354: PPUSH
10355: CALL_OW 111
10359: GO 10410
// comattackunit ( i , ( UPFVehicles [ 3 ] ^ UPFVehicles [ 4 ] ^ UPFVehicles [ 5 ] ) [ gettag ( i ) ] ) ;
10361: LD_VAR 0 1
10365: PPUSH
10366: LD_EXP 4
10370: PUSH
10371: LD_INT 3
10373: ARRAY
10374: PUSH
10375: LD_EXP 4
10379: PUSH
10380: LD_INT 4
10382: ARRAY
10383: ADD
10384: PUSH
10385: LD_EXP 4
10389: PUSH
10390: LD_INT 5
10392: ARRAY
10393: ADD
10394: PUSH
10395: LD_VAR 0 1
10399: PPUSH
10400: CALL_OW 110
10404: ARRAY
10405: PPUSH
10406: CALL_OW 115
// end else
10410: GO 10449
// comagressivemove ( i , [ 57 , 65 , 73 ] [ gettag ( i ) ] , 95 ) ;
10412: LD_VAR 0 1
10416: PPUSH
10417: LD_INT 57
10419: PUSH
10420: LD_INT 65
10422: PUSH
10423: LD_INT 73
10425: PUSH
10426: EMPTY
10427: LIST
10428: LIST
10429: LIST
10430: PUSH
10431: LD_VAR 0 1
10435: PPUSH
10436: CALL_OW 110
10440: ARRAY
10441: PPUSH
10442: LD_INT 95
10444: PPUSH
10445: CALL_OW 114
// if getlives ( i ) < 500 then
10449: LD_VAR 0 1
10453: PPUSH
10454: CALL_OW 256
10458: PUSH
10459: LD_INT 500
10461: LESS
10462: IFFALSE 10536
// if gettype ( i ) = unit_human and not i in LegionNoRetreat then
10464: LD_VAR 0 1
10468: PPUSH
10469: CALL_OW 247
10473: PUSH
10474: LD_INT 1
10476: EQUAL
10477: PUSH
10478: LD_VAR 0 1
10482: PUSH
10483: LD_EXP 8
10487: IN
10488: NOT
10489: AND
10490: IFFALSE 10536
// begin LegionRetreating = LegionRetreating ^ i ;
10492: LD_ADDR_EXP 9
10496: PUSH
10497: LD_EXP 9
10501: PUSH
10502: LD_VAR 0 1
10506: ADD
10507: ST_TO_ADDR
// DoNotAttack ( 5 , i ) ;
10508: LD_INT 5
10510: PPUSH
10511: LD_VAR 0 1
10515: PPUSH
10516: CALL_OW 471
// Legion = Legion diff i ;
10520: LD_ADDR_EXP 7
10524: PUSH
10525: LD_EXP 7
10529: PUSH
10530: LD_VAR 0 1
10534: DIFF
10535: ST_TO_ADDR
// end ; if getclass ( i ) = class_mechanic and not isinunit ( i ) then
10536: LD_VAR 0 1
10540: PPUSH
10541: CALL_OW 257
10545: PUSH
10546: LD_INT 3
10548: EQUAL
10549: PUSH
10550: LD_VAR 0 1
10554: PPUSH
10555: CALL_OW 310
10559: NOT
10560: AND
10561: IFFALSE 10607
// begin LegionRetreating = LegionRetreating ^ i ;
10563: LD_ADDR_EXP 9
10567: PUSH
10568: LD_EXP 9
10572: PUSH
10573: LD_VAR 0 1
10577: ADD
10578: ST_TO_ADDR
// DoNotAttack ( 5 , i ) ;
10579: LD_INT 5
10581: PPUSH
10582: LD_VAR 0 1
10586: PPUSH
10587: CALL_OW 471
// Legion = Legion diff i ;
10591: LD_ADDR_EXP 7
10595: PUSH
10596: LD_EXP 7
10600: PUSH
10601: LD_VAR 0 1
10605: DIFF
10606: ST_TO_ADDR
// end ; if not isok ( i ) then
10607: LD_VAR 0 1
10611: PPUSH
10612: CALL_OW 302
10616: NOT
10617: IFFALSE 10635
// Legion = Legion diff i ;
10619: LD_ADDR_EXP 7
10623: PUSH
10624: LD_EXP 7
10628: PUSH
10629: LD_VAR 0 1
10633: DIFF
10634: ST_TO_ADDR
// end ;
10635: GO 10201
10637: POP
10638: POP
// enable ;
10639: ENABLE
// end ;
10640: PPOPN 2
10642: END
// every 0 0$1 trigger LegionRetreating > 0 do var i ;
10643: LD_EXP 9
10647: PUSH
10648: LD_INT 0
10650: GREATER
10651: IFFALSE 10764
10653: GO 10655
10655: DISABLE
10656: LD_INT 0
10658: PPUSH
// begin for i in LegionRetreating do
10659: LD_ADDR_VAR 0 1
10663: PUSH
10664: LD_EXP 9
10668: PUSH
10669: FOR_IN
10670: IFFALSE 10761
// begin commovexy ( i , 83 , 132 ) ;
10672: LD_VAR 0 1
10676: PPUSH
10677: LD_INT 83
10679: PPUSH
10680: LD_INT 132
10682: PPUSH
10683: CALL_OW 111
// if getdistunitxy ( i , 83 , 132 ) < 5 then
10687: LD_VAR 0 1
10691: PPUSH
10692: LD_INT 83
10694: PPUSH
10695: LD_INT 132
10697: PPUSH
10698: CALL_OW 297
10702: PUSH
10703: LD_INT 5
10705: LESS
10706: IFFALSE 10717
// removeunit ( i ) ;
10708: LD_VAR 0 1
10712: PPUSH
10713: CALL_OW 64
// if getlives ( i ) < 500 and getlives ( i ) > 300 then
10717: LD_VAR 0 1
10721: PPUSH
10722: CALL_OW 256
10726: PUSH
10727: LD_INT 500
10729: LESS
10730: PUSH
10731: LD_VAR 0 1
10735: PPUSH
10736: CALL_OW 256
10740: PUSH
10741: LD_INT 300
10743: GREATER
10744: AND
10745: IFFALSE 10759
// setlives ( i , 490 ) ;
10747: LD_VAR 0 1
10751: PPUSH
10752: LD_INT 490
10754: PPUSH
10755: CALL_OW 234
// end ;
10759: GO 10669
10761: POP
10762: POP
// enable ;
10763: ENABLE
// end ;
10764: PPOPN 1
10766: END
// on Command ( com ) do var i , j ;
10767: LD_INT 0
10769: PPUSH
10770: PPUSH
// begin for i in FilterAllUnits ( [ f_side , 2 ] ) do
10771: LD_ADDR_VAR 0 2
10775: PUSH
10776: LD_INT 22
10778: PUSH
10779: LD_INT 2
10781: PUSH
10782: EMPTY
10783: LIST
10784: LIST
10785: PPUSH
10786: CALL_OW 69
10790: PUSH
10791: FOR_IN
10792: IFFALSE 10924
// if HasTask ( i ) then
10794: LD_VAR 0 2
10798: PPUSH
10799: CALL_OW 314
10803: IFFALSE 10922
// for j = 1 to GetTaskList ( i ) do
10805: LD_ADDR_VAR 0 3
10809: PUSH
10810: DOUBLE
10811: LD_INT 1
10813: DEC
10814: ST_TO_ADDR
10815: LD_VAR 0 2
10819: PPUSH
10820: CALL_OW 437
10824: PUSH
10825: FOR_TO
10826: IFFALSE 10920
// if InArea ( GetTaskList ( i ) [ j ] [ 2 ] , GetTaskList ( i ) [ j ] [ 3 ] , playerinaccessible ) or GetSide ( GetTaskList ( i ) [ j ] [ 4 ] ) = 5 then
10828: LD_VAR 0 2
10832: PPUSH
10833: CALL_OW 437
10837: PUSH
10838: LD_VAR 0 3
10842: ARRAY
10843: PUSH
10844: LD_INT 2
10846: ARRAY
10847: PPUSH
10848: LD_VAR 0 2
10852: PPUSH
10853: CALL_OW 437
10857: PUSH
10858: LD_VAR 0 3
10862: ARRAY
10863: PUSH
10864: LD_INT 3
10866: ARRAY
10867: PPUSH
10868: LD_INT 6
10870: PPUSH
10871: CALL_OW 309
10875: PUSH
10876: LD_VAR 0 2
10880: PPUSH
10881: CALL_OW 437
10885: PUSH
10886: LD_VAR 0 3
10890: ARRAY
10891: PUSH
10892: LD_INT 4
10894: ARRAY
10895: PPUSH
10896: CALL_OW 255
10900: PUSH
10901: LD_INT 5
10903: EQUAL
10904: OR
10905: IFFALSE 10918
// SetTaskList ( i , [ ] ) ;
10907: LD_VAR 0 2
10911: PPUSH
10912: EMPTY
10913: PPUSH
10914: CALL_OW 446
10918: GO 10825
10920: POP
10921: POP
10922: GO 10791
10924: POP
10925: POP
// end ;
10926: PPOPN 3
10928: END
// every 0 0$0.1 marked 1 do var i ;
10929: GO 10931
10931: DISABLE
10932: LD_INT 0
10934: PPUSH
// begin for i in UPFPeople ^ UPFVehicles do
10935: LD_ADDR_VAR 0 1
10939: PUSH
10940: LD_EXP 3
10944: PUSH
10945: LD_EXP 4
10949: ADD
10950: PUSH
10951: FOR_IN
10952: IFFALSE 10983
// if getlives ( i ) < 800 then
10954: LD_VAR 0 1
10958: PPUSH
10959: CALL_OW 256
10963: PUSH
10964: LD_INT 800
10966: LESS
10967: IFFALSE 10981
// setlives ( i , 800 ) ;
10969: LD_VAR 0 1
10973: PPUSH
10974: LD_INT 800
10976: PPUSH
10977: CALL_OW 234
10981: GO 10951
10983: POP
10984: POP
// if missionfailed then
10985: LD_EXP 5
10989: IFFALSE 10993
// exit ;
10991: GO 10994
// enable ;
10993: ENABLE
// end ;
10994: PPOPN 1
10996: END
// every 0 0$1 do var i ;
10997: GO 10999
10999: DISABLE
11000: LD_INT 0
11002: PPUSH
// begin if missionfailed then
11003: LD_EXP 5
11007: IFFALSE 11011
// exit ;
11009: GO 11140
// for i in filterallunits ( [ [ f_side , 5 ] , [ f_class , class_mortar ] ] ) ^ Gensher do
11011: LD_ADDR_VAR 0 1
11015: PUSH
11016: LD_INT 22
11018: PUSH
11019: LD_INT 5
11021: PUSH
11022: EMPTY
11023: LIST
11024: LIST
11025: PUSH
11026: LD_INT 25
11028: PUSH
11029: LD_INT 8
11031: PUSH
11032: EMPTY
11033: LIST
11034: LIST
11035: PUSH
11036: EMPTY
11037: LIST
11038: LIST
11039: PPUSH
11040: CALL_OW 69
11044: PUSH
11045: LD_EXP 2
11049: ADD
11050: PUSH
11051: FOR_IN
11052: IFFALSE 11137
// if hastask ( i ) = 0 and not getdir ( i ) in [ 2 , 3 ] then
11054: LD_VAR 0 1
11058: PPUSH
11059: CALL_OW 314
11063: PUSH
11064: LD_INT 0
11066: EQUAL
11067: PUSH
11068: LD_VAR 0 1
11072: PPUSH
11073: CALL_OW 254
11077: PUSH
11078: LD_INT 2
11080: PUSH
11081: LD_INT 3
11083: PUSH
11084: EMPTY
11085: LIST
11086: LIST
11087: IN
11088: NOT
11089: AND
11090: IFFALSE 11135
// begin comturnxy ( i , [ 60 , 77 ] [ rand ( 1 , 2 ) ] , 103 ) ;
11092: LD_VAR 0 1
11096: PPUSH
11097: LD_INT 60
11099: PUSH
11100: LD_INT 77
11102: PUSH
11103: EMPTY
11104: LIST
11105: LIST
11106: PUSH
11107: LD_INT 1
11109: PPUSH
11110: LD_INT 2
11112: PPUSH
11113: CALL_OW 12
11117: ARRAY
11118: PPUSH
11119: LD_INT 103
11121: PPUSH
11122: CALL_OW 118
// addcomhold ( i ) ;
11126: LD_VAR 0 1
11130: PPUSH
11131: CALL_OW 200
// end ;
11135: GO 11051
11137: POP
11138: POP
// enable ;
11139: ENABLE
// end ;
11140: PPOPN 1
11142: END
// every 0 0$1 marked 2 do var i , time ;
11143: GO 11145
11145: DISABLE
11146: LD_INT 0
11148: PPUSH
11149: PPUSH
// begin if testing then
11150: LD_EXP 1
11154: IFFALSE 11166
// time = 5 5$0 else
11156: LD_ADDR_VAR 0 2
11160: PUSH
11161: LD_INT 10500
11163: ST_TO_ADDR
11164: GO 11186
// time = loadvariable ( extra_time_14_cont , 0 ) + 3 3$0 ;
11166: LD_ADDR_VAR 0 2
11170: PUSH
11171: LD_STRING extra_time_14_cont
11173: PPUSH
11174: LD_INT 0
11176: PPUSH
11177: CALL_OW 30
11181: PUSH
11182: LD_INT 6300
11184: PLUS
11185: ST_TO_ADDR
// if time > 8 8$0 then
11186: LD_VAR 0 2
11190: PUSH
11191: LD_INT 16800
11193: GREATER
11194: IFFALSE 11204
// time = 8 8$0 ;
11196: LD_ADDR_VAR 0 2
11200: PUSH
11201: LD_INT 16800
11203: ST_TO_ADDR
// repeat wait ( 0 0$1 ) ;
11204: LD_INT 35
11206: PPUSH
11207: CALL_OW 67
// time = time - 0 0$1 ;
11211: LD_ADDR_VAR 0 2
11215: PUSH
11216: LD_VAR 0 2
11220: PUSH
11221: LD_INT 35
11223: MINUS
11224: ST_TO_ADDR
// if testing = true then
11225: LD_EXP 1
11229: PUSH
11230: LD_INT 1
11232: EQUAL
11233: IFFALSE 11252
// display_strings = [ #Ar14-FinalCountdown , time ] ;
11235: LD_ADDR_OWVAR 47
11239: PUSH
11240: LD_STRING #Ar14-FinalCountdown
11242: PUSH
11243: LD_VAR 0 2
11247: PUSH
11248: EMPTY
11249: LIST
11250: LIST
11251: ST_TO_ADDR
// if missionfailed or EndingCutscene then
11252: LD_EXP 5
11256: PUSH
11257: LD_EXP 6
11261: OR
11262: IFFALSE 11266
// exit ;
11264: GO 11284
// until time < 1 ;
11266: LD_VAR 0 2
11270: PUSH
11271: LD_INT 1
11273: LESS
11274: IFFALSE 11204
// MissionFailed = 1 ;
11276: LD_ADDR_EXP 5
11280: PUSH
11281: LD_INT 1
11283: ST_TO_ADDR
// end ;
11284: PPOPN 2
11286: END
// every 0 0$1 trigger missionfailed do var i , j , LegionEnd , Bombs , temp , count , gline ;
11287: LD_EXP 5
11291: IFFALSE 12003
11293: GO 11295
11295: DISABLE
11296: LD_INT 0
11298: PPUSH
11299: PPUSH
11300: PPUSH
11301: PPUSH
11302: PPUSH
11303: PPUSH
11304: PPUSH
// begin disable ( 1 ) ;
11305: LD_INT 1
11307: DISABLE_MARKED
// LegionEnd = Legion ;
11308: LD_ADDR_VAR 0 3
11312: PUSH
11313: LD_EXP 7
11317: ST_TO_ADDR
// Legion = [ ] ;
11318: LD_ADDR_EXP 7
11322: PUSH
11323: EMPTY
11324: ST_TO_ADDR
// Bombs = [ ] ;
11325: LD_ADDR_VAR 0 4
11329: PUSH
11330: EMPTY
11331: ST_TO_ADDR
// uc_side = 8 ;
11332: LD_ADDR_OWVAR 20
11336: PUSH
11337: LD_INT 8
11339: ST_TO_ADDR
// uc_nation = nation_arabian ;
11340: LD_ADDR_OWVAR 21
11344: PUSH
11345: LD_INT 2
11347: ST_TO_ADDR
// InGameOn ;
11348: CALL_OW 8
// centeronxy ( 66 , 95 ) ;
11352: LD_INT 66
11354: PPUSH
11355: LD_INT 95
11357: PPUSH
11358: CALL_OW 84
// wait ( 0 0$3 ) ;
11362: LD_INT 105
11364: PPUSH
11365: CALL_OW 67
// Say ( Heike , Rs_He11 ) ;
11369: LD_EXP 25
11373: PPUSH
11374: LD_STRING Rs_He11
11376: PPUSH
11377: CALL_OW 88
// while Islive ( Gensher ) do
11381: LD_EXP 2
11385: PPUSH
11386: CALL_OW 300
11390: IFFALSE 11989
// begin wait ( 0 0$0.2 ) ;
11392: LD_INT 7
11394: PPUSH
11395: CALL_OW 67
// if unitfilter ( bombs , [ f_ok ] ) < 3 then
11399: LD_VAR 0 4
11403: PPUSH
11404: LD_INT 50
11406: PUSH
11407: EMPTY
11408: LIST
11409: PPUSH
11410: CALL_OW 72
11414: PUSH
11415: LD_INT 3
11417: LESS
11418: IFFALSE 11619
// begin vc_weapon = ar_selfpropelled_bomb ;
11420: LD_ADDR_OWVAR 40
11424: PUSH
11425: LD_INT 29
11427: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
11428: LD_ADDR_OWVAR 37
11432: PUSH
11433: LD_INT 14
11435: ST_TO_ADDR
// vc_engine = engine_siberite ;
11436: LD_ADDR_OWVAR 39
11440: PUSH
11441: LD_INT 3
11443: ST_TO_ADDR
// vc_control = control_remote ;
11444: LD_ADDR_OWVAR 38
11448: PUSH
11449: LD_INT 2
11451: ST_TO_ADDR
// Bombs = Bombs ^ Createvehicle ^ Createvehicle ;
11452: LD_ADDR_VAR 0 4
11456: PUSH
11457: LD_VAR 0 4
11461: PUSH
11462: CALL_OW 45
11466: ADD
11467: PUSH
11468: CALL_OW 45
11472: ADD
11473: ST_TO_ADDR
// for i in unitfilter ( bombs , [ [ f_lives , 900 ] , [ f_not , [ f_placed ] ] ] ) do
11474: LD_ADDR_VAR 0 1
11478: PUSH
11479: LD_VAR 0 4
11483: PPUSH
11484: LD_INT 24
11486: PUSH
11487: LD_INT 900
11489: PUSH
11490: EMPTY
11491: LIST
11492: LIST
11493: PUSH
11494: LD_INT 3
11496: PUSH
11497: LD_INT 52
11499: PUSH
11500: EMPTY
11501: LIST
11502: PUSH
11503: EMPTY
11504: LIST
11505: LIST
11506: PUSH
11507: EMPTY
11508: LIST
11509: LIST
11510: PPUSH
11511: CALL_OW 72
11515: PUSH
11516: FOR_IN
11517: IFFALSE 11617
// begin placeunitarea ( i , legionattacknormal , false ) ;
11519: LD_VAR 0 1
11523: PPUSH
11524: LD_INT 4
11526: PPUSH
11527: LD_INT 0
11529: PPUSH
11530: CALL_OW 49
// count = 11 ;
11534: LD_ADDR_VAR 0 6
11538: PUSH
11539: LD_INT 11
11541: ST_TO_ADDR
// for j in LegionRemoteMech do
11542: LD_ADDR_VAR 0 2
11546: PUSH
11547: LD_EXP 10
11551: PUSH
11552: FOR_IN
11553: IFFALSE 11599
// if unitslinked ( j ) < count then
11555: LD_VAR 0 2
11559: PPUSH
11560: CALL_OW 432
11564: PUSH
11565: LD_VAR 0 6
11569: LESS
11570: IFFALSE 11597
// begin count = unitslinked ( j ) ;
11572: LD_ADDR_VAR 0 6
11576: PUSH
11577: LD_VAR 0 2
11581: PPUSH
11582: CALL_OW 432
11586: ST_TO_ADDR
// temp = j ;
11587: LD_ADDR_VAR 0 5
11591: PUSH
11592: LD_VAR 0 2
11596: ST_TO_ADDR
// end ;
11597: GO 11552
11599: POP
11600: POP
// linkvehicletohuman ( i , temp ) ;
11601: LD_VAR 0 1
11605: PPUSH
11606: LD_VAR 0 5
11610: PPUSH
11611: CALL_OW 53
// end ;
11615: GO 11516
11617: POP
11618: POP
// end ; if unitfilter ( LegionEnd , [ [ f_lives , 900 ] , [ f_not , [ f_placed ] ] ] ) < 3 then
11619: LD_VAR 0 3
11623: PPUSH
11624: LD_INT 24
11626: PUSH
11627: LD_INT 900
11629: PUSH
11630: EMPTY
11631: LIST
11632: LIST
11633: PUSH
11634: LD_INT 3
11636: PUSH
11637: LD_INT 52
11639: PUSH
11640: EMPTY
11641: LIST
11642: PUSH
11643: EMPTY
11644: LIST
11645: LIST
11646: PUSH
11647: EMPTY
11648: LIST
11649: LIST
11650: PPUSH
11651: CALL_OW 72
11655: PUSH
11656: LD_INT 3
11658: LESS
11659: IFFALSE 11885
// begin vc_weapon = [ ar_gun , ar_rocket_launcher , ar_gatling_gun ] [ rand ( 1 , 3 ) ] ;
11661: LD_ADDR_OWVAR 40
11665: PUSH
11666: LD_INT 27
11668: PUSH
11669: LD_INT 28
11671: PUSH
11672: LD_INT 25
11674: PUSH
11675: EMPTY
11676: LIST
11677: LIST
11678: LIST
11679: PUSH
11680: LD_INT 1
11682: PPUSH
11683: LD_INT 3
11685: PPUSH
11686: CALL_OW 12
11690: ARRAY
11691: ST_TO_ADDR
// ; vc_chassis = ar_half_tracked ;
11692: LD_ADDR_OWVAR 37
11696: PUSH
11697: LD_INT 14
11699: ST_TO_ADDR
// vc_engine = engine_siberite ;
11700: LD_ADDR_OWVAR 39
11704: PUSH
11705: LD_INT 3
11707: ST_TO_ADDR
// vc_control = control_remote ;
11708: LD_ADDR_OWVAR 38
11712: PUSH
11713: LD_INT 2
11715: ST_TO_ADDR
// LegionEnd = LegionEnd ^ Createvehicle ^ Createvehicle ^ Createvehicle ;
11716: LD_ADDR_VAR 0 3
11720: PUSH
11721: LD_VAR 0 3
11725: PUSH
11726: CALL_OW 45
11730: ADD
11731: PUSH
11732: CALL_OW 45
11736: ADD
11737: PUSH
11738: CALL_OW 45
11742: ADD
11743: ST_TO_ADDR
// for i in unitfilter ( LegionEnd , [ [ f_alive ] , [ f_not , [ f_placed ] ] ] ) do
11744: LD_ADDR_VAR 0 1
11748: PUSH
11749: LD_VAR 0 3
11753: PPUSH
11754: LD_INT 51
11756: PUSH
11757: EMPTY
11758: LIST
11759: PUSH
11760: LD_INT 3
11762: PUSH
11763: LD_INT 52
11765: PUSH
11766: EMPTY
11767: LIST
11768: PUSH
11769: EMPTY
11770: LIST
11771: LIST
11772: PUSH
11773: EMPTY
11774: LIST
11775: LIST
11776: PPUSH
11777: CALL_OW 72
11781: PUSH
11782: FOR_IN
11783: IFFALSE 11883
// begin placeunitarea ( i , legionattacknormal , false ) ;
11785: LD_VAR 0 1
11789: PPUSH
11790: LD_INT 4
11792: PPUSH
11793: LD_INT 0
11795: PPUSH
11796: CALL_OW 49
// count = 11 ;
11800: LD_ADDR_VAR 0 6
11804: PUSH
11805: LD_INT 11
11807: ST_TO_ADDR
// for j in LegionRemoteMech do
11808: LD_ADDR_VAR 0 2
11812: PUSH
11813: LD_EXP 10
11817: PUSH
11818: FOR_IN
11819: IFFALSE 11865
// if unitslinked ( j ) < count then
11821: LD_VAR 0 2
11825: PPUSH
11826: CALL_OW 432
11830: PUSH
11831: LD_VAR 0 6
11835: LESS
11836: IFFALSE 11863
// begin count = unitslinked ( j ) ;
11838: LD_ADDR_VAR 0 6
11842: PUSH
11843: LD_VAR 0 2
11847: PPUSH
11848: CALL_OW 432
11852: ST_TO_ADDR
// temp = j ;
11853: LD_ADDR_VAR 0 5
11857: PUSH
11858: LD_VAR 0 2
11862: ST_TO_ADDR
// end ;
11863: GO 11818
11865: POP
11866: POP
// linkvehicletohuman ( i , temp ) ;
11867: LD_VAR 0 1
11871: PPUSH
11872: LD_VAR 0 5
11876: PPUSH
11877: CALL_OW 53
// end ;
11881: GO 11782
11883: POP
11884: POP
// end ; for i in Bombs ^ LegionEnd do
11885: LD_ADDR_VAR 0 1
11889: PUSH
11890: LD_VAR 0 4
11894: PUSH
11895: LD_VAR 0 3
11899: ADD
11900: PUSH
11901: FOR_IN
11902: IFFALSE 11940
// comattackunit ( i , nearestunittounit ( filterallunits ( [ f_side , 5 ] ) , i ) ) ;
11904: LD_VAR 0 1
11908: PPUSH
11909: LD_INT 22
11911: PUSH
11912: LD_INT 5
11914: PUSH
11915: EMPTY
11916: LIST
11917: LIST
11918: PPUSH
11919: CALL_OW 69
11923: PPUSH
11924: LD_VAR 0 1
11928: PPUSH
11929: CALL_OW 74
11933: PPUSH
11934: CALL_OW 115
11938: GO 11901
11940: POP
11941: POP
// if getlives ( Gensher ) < 800 and gline = 0 then
11942: LD_EXP 2
11946: PPUSH
11947: CALL_OW 256
11951: PUSH
11952: LD_INT 800
11954: LESS
11955: PUSH
11956: LD_VAR 0 7
11960: PUSH
11961: LD_INT 0
11963: EQUAL
11964: AND
11965: IFFALSE 11987
// begin Say ( Gensher , Rs_Ge10 ) ;
11967: LD_EXP 2
11971: PPUSH
11972: LD_STRING Rs_Ge10
11974: PPUSH
11975: CALL_OW 88
// gline = 1 ;
11979: LD_ADDR_VAR 0 7
11983: PUSH
11984: LD_INT 1
11986: ST_TO_ADDR
// end ; end ;
11987: GO 11381
// wait ( 0 0$5 ) ;
11989: LD_INT 175
11991: PPUSH
11992: CALL_OW 67
// youlost ( Gensherdead ) ;
11996: LD_STRING Gensherdead
11998: PPUSH
11999: CALL_OW 104
// end ;
12003: PPOPN 7
12005: END
// every 0 0$1 trigger isdead ( heike ) marked 2 do
12006: LD_EXP 25
12010: PPUSH
12011: CALL_OW 301
12015: IFFALSE 12027
12017: GO 12019
12019: DISABLE
// youlost ( HeikeDead ) ; end_of_file
12020: LD_STRING HeikeDead
12022: PPUSH
12023: CALL_OW 104
12027: END
// every 0 0$1 trigger EndingCutscene = 0 marked 2 do var temp , i ;
12028: LD_EXP 6
12032: PUSH
12033: LD_INT 0
12035: EQUAL
12036: IFFALSE 12217
12038: GO 12040
12040: DISABLE
12041: LD_INT 0
12043: PPUSH
12044: PPUSH
// begin for i in FarmerTroops do
12045: LD_ADDR_VAR 0 2
12049: PUSH
12050: LD_EXP 13
12054: PUSH
12055: FOR_IN
12056: IFFALSE 12185
// begin if GetType ( i ) = unit_vehicle and ( IsDrivenBy ( i ) or IsControledBy ( i ) or GetControl ( i ) = control_apeman ) then
12058: LD_VAR 0 2
12062: PPUSH
12063: CALL_OW 247
12067: PUSH
12068: LD_INT 2
12070: EQUAL
12071: PUSH
12072: LD_VAR 0 2
12076: PPUSH
12077: CALL_OW 311
12081: PUSH
12082: LD_VAR 0 2
12086: PPUSH
12087: CALL_OW 312
12091: OR
12092: PUSH
12093: LD_VAR 0 2
12097: PPUSH
12098: CALL_OW 263
12102: PUSH
12103: LD_INT 5
12105: EQUAL
12106: OR
12107: AND
12108: IFFALSE 12129
// if IsOk ( i ) then
12110: LD_VAR 0 2
12114: PPUSH
12115: CALL_OW 302
12119: IFFALSE 12129
// temp = 1 ;
12121: LD_ADDR_VAR 0 1
12125: PUSH
12126: LD_INT 1
12128: ST_TO_ADDR
// if GetType ( i ) = unit_human and not GetClass ( i ) = class_mechanic then
12129: LD_VAR 0 2
12133: PPUSH
12134: CALL_OW 247
12138: PUSH
12139: LD_INT 1
12141: EQUAL
12142: PUSH
12143: LD_VAR 0 2
12147: PPUSH
12148: CALL_OW 257
12152: PUSH
12153: LD_INT 3
12155: EQUAL
12156: NOT
12157: AND
12158: IFFALSE 12183
// if GetLives ( i ) > 0 then
12160: LD_VAR 0 2
12164: PPUSH
12165: CALL_OW 256
12169: PUSH
12170: LD_INT 0
12172: GREATER
12173: IFFALSE 12183
// temp = 1 ;
12175: LD_ADDR_VAR 0 1
12179: PUSH
12180: LD_INT 1
12182: ST_TO_ADDR
// end ;
12183: GO 12055
12185: POP
12186: POP
// if temp = 0 and IsDead ( Farmer ) then
12187: LD_VAR 0 1
12191: PUSH
12192: LD_INT 0
12194: EQUAL
12195: PUSH
12196: LD_EXP 11
12200: PPUSH
12201: CALL_OW 301
12205: AND
12206: IFFALSE 12216
// EndingCutscene = 1 ;
12208: LD_ADDR_EXP 6
12212: PUSH
12213: LD_INT 1
12215: ST_TO_ADDR
// enable ;
12216: ENABLE
// end ;
12217: PPOPN 2
12219: END
// every 0 0$1 trigger EndingCutscene do var LegionFinal , soldiers , mechanics , i , temp ;
12220: LD_EXP 6
12224: IFFALSE 14625
12226: GO 12228
12228: DISABLE
12229: LD_INT 0
12231: PPUSH
12232: PPUSH
12233: PPUSH
12234: PPUSH
12235: PPUSH
// begin Randomize ;
12236: CALL_OW 10
// mechanics = unitfilter ( UPFPeople , [ f_class , class_mechanic ] ) ;
12240: LD_ADDR_VAR 0 3
12244: PUSH
12245: LD_EXP 3
12249: PPUSH
12250: LD_INT 25
12252: PUSH
12253: LD_INT 3
12255: PUSH
12256: EMPTY
12257: LIST
12258: LIST
12259: PPUSH
12260: CALL_OW 72
12264: ST_TO_ADDR
// soldiers = unitfilter ( UPFPeople , [ f_class , class_soldier ] ) ;
12265: LD_ADDR_VAR 0 2
12269: PUSH
12270: LD_EXP 3
12274: PPUSH
12275: LD_INT 25
12277: PUSH
12278: LD_INT 1
12280: PUSH
12281: EMPTY
12282: LIST
12283: LIST
12284: PPUSH
12285: CALL_OW 72
12289: ST_TO_ADDR
// setattr ( Gensher , attr_stamina , 300 ) ;
12290: LD_EXP 2
12294: PPUSH
12295: LD_INT 1
12297: PPUSH
12298: LD_INT 300
12300: PPUSH
12301: CALL_OW 239
// temp = UPFVehicles [ 4 ] ^ UPFVehicles [ 5 ] ;
12305: LD_ADDR_VAR 0 5
12309: PUSH
12310: LD_EXP 4
12314: PUSH
12315: LD_INT 4
12317: ARRAY
12318: PUSH
12319: LD_EXP 4
12323: PUSH
12324: LD_INT 5
12326: ARRAY
12327: ADD
12328: ST_TO_ADDR
// UPFVehicles = UPFVehicles diff temp ;
12329: LD_ADDR_EXP 4
12333: PUSH
12334: LD_EXP 4
12338: PUSH
12339: LD_VAR 0 5
12343: DIFF
12344: ST_TO_ADDR
// setlives ( temp , 250 ) ;
12345: LD_VAR 0 5
12349: PPUSH
12350: LD_INT 250
12352: PPUSH
12353: CALL_OW 234
// removeunit ( Gensher ) ;
12357: LD_EXP 2
12361: PPUSH
12362: CALL_OW 64
// placeunitxy ( Gensher , 62 , 89 , false ) ;
12366: LD_EXP 2
12370: PPUSH
12371: LD_INT 62
12373: PPUSH
12374: LD_INT 89
12376: PPUSH
12377: LD_INT 0
12379: PPUSH
12380: CALL_OW 48
// comhold ( Gensher ) ;
12384: LD_EXP 2
12388: PPUSH
12389: CALL_OW 140
// InGameOn ;
12393: CALL_OW 8
// Exclusiveoff ;
12397: CALL_OW 5
// Say ( Heike , Rs_He5 ) ;
12401: LD_EXP 25
12405: PPUSH
12406: LD_STRING Rs_He5
12408: PPUSH
12409: CALL_OW 88
// centeronunits ( Gensher ) ;
12413: LD_EXP 2
12417: PPUSH
12418: CALL_OW 85
// Say ( Gensher , Rs_Ge3 ) ;
12422: LD_EXP 2
12426: PPUSH
12427: LD_STRING Rs_Ge3
12429: PPUSH
12430: CALL_OW 88
// wait ( 0 0$1 ) ;
12434: LD_INT 35
12436: PPUSH
12437: CALL_OW 67
// for i in filterallunits ( [ f_side , 8 ] ) do
12441: LD_ADDR_VAR 0 4
12445: PUSH
12446: LD_INT 22
12448: PUSH
12449: LD_INT 8
12451: PUSH
12452: EMPTY
12453: LIST
12454: LIST
12455: PPUSH
12456: CALL_OW 69
12460: PUSH
12461: FOR_IN
12462: IFFALSE 12490
// if Gety ( i ) < 50 then
12464: LD_VAR 0 4
12468: PPUSH
12469: CALL_OW 251
12473: PUSH
12474: LD_INT 50
12476: LESS
12477: IFFALSE 12488
// removeunit ( i ) ;
12479: LD_VAR 0 4
12483: PPUSH
12484: CALL_OW 64
12488: GO 12461
12490: POP
12491: POP
// commovexy ( filterallunits ( [ [ f_side , 2 ] , [ f_type , unit_vehicle ] ] ) , 47 , 8 ) ;
12492: LD_INT 22
12494: PUSH
12495: LD_INT 2
12497: PUSH
12498: EMPTY
12499: LIST
12500: LIST
12501: PUSH
12502: LD_INT 21
12504: PUSH
12505: LD_INT 2
12507: PUSH
12508: EMPTY
12509: LIST
12510: LIST
12511: PUSH
12512: EMPTY
12513: LIST
12514: LIST
12515: PPUSH
12516: CALL_OW 69
12520: PPUSH
12521: LD_INT 47
12523: PPUSH
12524: LD_INT 8
12526: PPUSH
12527: CALL_OW 111
// addcommovexy ( filterallunits ( [ [ f_side , 2 ] , [ f_type , unit_vehicle ] ] ) , 36 , 7 ) ;
12531: LD_INT 22
12533: PUSH
12534: LD_INT 2
12536: PUSH
12537: EMPTY
12538: LIST
12539: LIST
12540: PUSH
12541: LD_INT 21
12543: PUSH
12544: LD_INT 2
12546: PUSH
12547: EMPTY
12548: LIST
12549: LIST
12550: PUSH
12551: EMPTY
12552: LIST
12553: LIST
12554: PPUSH
12555: CALL_OW 69
12559: PPUSH
12560: LD_INT 36
12562: PPUSH
12563: LD_INT 7
12565: PPUSH
12566: CALL_OW 171
// addcommovexy ( filterallunits ( [ [ f_side , 2 ] , [ f_type , unit_vehicle ] ] ) , 33 , 17 ) ;
12570: LD_INT 22
12572: PUSH
12573: LD_INT 2
12575: PUSH
12576: EMPTY
12577: LIST
12578: LIST
12579: PUSH
12580: LD_INT 21
12582: PUSH
12583: LD_INT 2
12585: PUSH
12586: EMPTY
12587: LIST
12588: LIST
12589: PUSH
12590: EMPTY
12591: LIST
12592: LIST
12593: PPUSH
12594: CALL_OW 69
12598: PPUSH
12599: LD_INT 33
12601: PPUSH
12602: LD_INT 17
12604: PPUSH
12605: CALL_OW 171
// commovexy ( filterallunits ( [ [ f_side , 2 ] , [ f_type , unit_human ] ] ) , 34 , 27 ) ;
12609: LD_INT 22
12611: PUSH
12612: LD_INT 2
12614: PUSH
12615: EMPTY
12616: LIST
12617: LIST
12618: PUSH
12619: LD_INT 21
12621: PUSH
12622: LD_INT 1
12624: PUSH
12625: EMPTY
12626: LIST
12627: LIST
12628: PUSH
12629: EMPTY
12630: LIST
12631: LIST
12632: PPUSH
12633: CALL_OW 69
12637: PPUSH
12638: LD_INT 34
12640: PPUSH
12641: LD_INT 27
12643: PPUSH
12644: CALL_OW 111
// addcomhold ( filterallunits ( [ [ f_side , 2 ] , [ f_type , unit_human ] ] ) ) ;
12648: LD_INT 22
12650: PUSH
12651: LD_INT 2
12653: PUSH
12654: EMPTY
12655: LIST
12656: LIST
12657: PUSH
12658: LD_INT 21
12660: PUSH
12661: LD_INT 1
12663: PUSH
12664: EMPTY
12665: LIST
12666: LIST
12667: PUSH
12668: EMPTY
12669: LIST
12670: LIST
12671: PPUSH
12672: CALL_OW 69
12676: PPUSH
12677: CALL_OW 200
// for i in filterallunits ( [ [ f_side , 2 ] , [ f_type , unit_human ] ] ) do
12681: LD_ADDR_VAR 0 4
12685: PUSH
12686: LD_INT 22
12688: PUSH
12689: LD_INT 2
12691: PUSH
12692: EMPTY
12693: LIST
12694: LIST
12695: PUSH
12696: LD_INT 21
12698: PUSH
12699: LD_INT 1
12701: PUSH
12702: EMPTY
12703: LIST
12704: LIST
12705: PUSH
12706: EMPTY
12707: LIST
12708: LIST
12709: PPUSH
12710: CALL_OW 69
12714: PUSH
12715: FOR_IN
12716: IFFALSE 12747
// if getlives ( i ) < 400 then
12718: LD_VAR 0 4
12722: PPUSH
12723: CALL_OW 256
12727: PUSH
12728: LD_INT 400
12730: LESS
12731: IFFALSE 12745
// setlives ( i , 400 ) ;
12733: LD_VAR 0 4
12737: PPUSH
12738: LD_INT 400
12740: PPUSH
12741: CALL_OW 234
12745: GO 12715
12747: POP
12748: POP
// temp = [ Snake , Pierre , Elizabeth ] diff 0 ;
12749: LD_ADDR_VAR 0 5
12753: PUSH
12754: LD_EXP 22
12758: PUSH
12759: LD_EXP 24
12763: PUSH
12764: LD_EXP 23
12768: PUSH
12769: EMPTY
12770: LIST
12771: LIST
12772: LIST
12773: PUSH
12774: LD_INT 0
12776: DIFF
12777: ST_TO_ADDR
// if temp > 0 then
12778: LD_VAR 0 5
12782: PUSH
12783: LD_INT 0
12785: GREATER
12786: IFFALSE 12846
// for i in temp do
12788: LD_ADDR_VAR 0 4
12792: PUSH
12793: LD_VAR 0 5
12797: PUSH
12798: FOR_IN
12799: IFFALSE 12844
// if IsPlaced ( i ) then
12801: LD_VAR 0 4
12805: PPUSH
12806: CALL_OW 305
12810: IFFALSE 12842
// begin removeunit ( i ) ;
12812: LD_VAR 0 4
12816: PPUSH
12817: CALL_OW 64
// placeunitxyr ( i , 33 , 26 , 3 , false ) ;
12821: LD_VAR 0 4
12825: PPUSH
12826: LD_INT 33
12828: PPUSH
12829: LD_INT 26
12831: PPUSH
12832: LD_INT 3
12834: PPUSH
12835: LD_INT 0
12837: PPUSH
12838: CALL_OW 50
// end ;
12842: GO 12798
12844: POP
12845: POP
// commovexy ( Snake , 38 , 31 ) ;
12846: LD_EXP 22
12850: PPUSH
12851: LD_INT 38
12853: PPUSH
12854: LD_INT 31
12856: PPUSH
12857: CALL_OW 111
// addcomhold ( Snake ) ;
12861: LD_EXP 22
12865: PPUSH
12866: CALL_OW 200
// temp = isinunit ( Heike ) ;
12870: LD_ADDR_VAR 0 5
12874: PUSH
12875: LD_EXP 25
12879: PPUSH
12880: CALL_OW 310
12884: ST_TO_ADDR
// comexitvehicle ( Heike ) ;
12885: LD_EXP 25
12889: PPUSH
12890: CALL_OW 121
// removeunit ( Heike ) ;
12894: LD_EXP 25
12898: PPUSH
12899: CALL_OW 64
// removeunit ( temp ) ;
12903: LD_VAR 0 5
12907: PPUSH
12908: CALL_OW 64
// Placeunitxy ( Heike , 42 , 32 , false ) ;
12912: LD_EXP 25
12916: PPUSH
12917: LD_INT 42
12919: PPUSH
12920: LD_INT 32
12922: PPUSH
12923: LD_INT 0
12925: PPUSH
12926: CALL_OW 48
// comhold ( Heike ) ;
12930: LD_EXP 25
12934: PPUSH
12935: CALL_OW 140
// temp = filterallunits ( [ [ f_side , 2 ] , [ f_or , [ f_control , control_manual ] , [ f_control , control_remote ] ] ] ) ;
12939: LD_ADDR_VAR 0 5
12943: PUSH
12944: LD_INT 22
12946: PUSH
12947: LD_INT 2
12949: PUSH
12950: EMPTY
12951: LIST
12952: LIST
12953: PUSH
12954: LD_INT 2
12956: PUSH
12957: LD_INT 33
12959: PUSH
12960: LD_INT 1
12962: PUSH
12963: EMPTY
12964: LIST
12965: LIST
12966: PUSH
12967: LD_INT 33
12969: PUSH
12970: LD_INT 2
12972: PUSH
12973: EMPTY
12974: LIST
12975: LIST
12976: PUSH
12977: EMPTY
12978: LIST
12979: LIST
12980: LIST
12981: PUSH
12982: EMPTY
12983: LIST
12984: LIST
12985: PPUSH
12986: CALL_OW 69
12990: ST_TO_ADDR
// for i in temp do
12991: LD_ADDR_VAR 0 4
12995: PUSH
12996: LD_VAR 0 5
13000: PUSH
13001: FOR_IN
13002: IFFALSE 13075
// if ( GetControl ( i ) = control_manual and IsDrivenBy ( i ) = 0 ) or ( GetControl ( i ) = control_remote and IsControledBy ( i ) = 0 ) then
13004: LD_VAR 0 4
13008: PPUSH
13009: CALL_OW 263
13013: PUSH
13014: LD_INT 1
13016: EQUAL
13017: PUSH
13018: LD_VAR 0 4
13022: PPUSH
13023: CALL_OW 311
13027: PUSH
13028: LD_INT 0
13030: EQUAL
13031: AND
13032: PUSH
13033: LD_VAR 0 4
13037: PPUSH
13038: CALL_OW 263
13042: PUSH
13043: LD_INT 2
13045: EQUAL
13046: PUSH
13047: LD_VAR 0 4
13051: PPUSH
13052: CALL_OW 312
13056: PUSH
13057: LD_INT 0
13059: EQUAL
13060: AND
13061: OR
13062: IFFALSE 13073
// removeunit ( i ) ;
13064: LD_VAR 0 4
13068: PPUSH
13069: CALL_OW 64
13073: GO 13001
13075: POP
13076: POP
// Say ( Heike , Rs_He6 ) ;
13077: LD_EXP 25
13081: PPUSH
13082: LD_STRING Rs_He6
13084: PPUSH
13085: CALL_OW 88
// wait ( 0 0$2 ) ;
13089: LD_INT 70
13091: PPUSH
13092: CALL_OW 67
// LegionFinal = Legion ;
13096: LD_ADDR_VAR 0 1
13100: PUSH
13101: LD_EXP 7
13105: ST_TO_ADDR
// setlives ( unitfilter ( Legion , [ f_weapon , ar_rocket_launcher ] ) , 200 ) ;
13106: LD_EXP 7
13110: PPUSH
13111: LD_INT 34
13113: PUSH
13114: LD_INT 28
13116: PUSH
13117: EMPTY
13118: LIST
13119: LIST
13120: PPUSH
13121: CALL_OW 72
13125: PPUSH
13126: LD_INT 200
13128: PPUSH
13129: CALL_OW 234
// repeat wait ( 0 0$1 ) ;
13133: LD_INT 35
13135: PPUSH
13136: CALL_OW 67
// for i in LegionFinal do
13140: LD_ADDR_VAR 0 4
13144: PUSH
13145: LD_VAR 0 1
13149: PUSH
13150: FOR_IN
13151: IFFALSE 13193
// if isdead ( i ) or isdying ( i ) then
13153: LD_VAR 0 4
13157: PPUSH
13158: CALL_OW 301
13162: PUSH
13163: LD_VAR 0 4
13167: PPUSH
13168: CALL_OW 303
13172: OR
13173: IFFALSE 13191
// LegionFinal = LegionFinal diff i ;
13175: LD_ADDR_VAR 0 1
13179: PUSH
13180: LD_VAR 0 1
13184: PUSH
13185: LD_VAR 0 4
13189: DIFF
13190: ST_TO_ADDR
13191: GO 13150
13193: POP
13194: POP
// until LegionFinal = 0 ;
13195: LD_VAR 0 1
13199: PUSH
13200: LD_INT 0
13202: EQUAL
13203: IFFALSE 13133
// Say ( Gensher , Rs_Ge4 ) ;
13205: LD_EXP 2
13209: PPUSH
13210: LD_STRING Rs_Ge4
13212: PPUSH
13213: CALL_OW 88
// comwalk ( Soldiers ) ;
13217: LD_VAR 0 2
13221: PPUSH
13222: CALL_OW 138
// addcomplaceremotecharge ( Soldiers [ 1 ] , 50 , 81 , 0 ) ;
13226: LD_VAR 0 2
13230: PUSH
13231: LD_INT 1
13233: ARRAY
13234: PPUSH
13235: LD_INT 50
13237: PPUSH
13238: LD_INT 81
13240: PPUSH
13241: LD_INT 0
13243: PPUSH
13244: CALL_OW 193
// addcomplaceremotecharge ( Soldiers [ 2 ] , 55 , 82 , 0 ) ;
13248: LD_VAR 0 2
13252: PUSH
13253: LD_INT 2
13255: ARRAY
13256: PPUSH
13257: LD_INT 55
13259: PPUSH
13260: LD_INT 82
13262: PPUSH
13263: LD_INT 0
13265: PPUSH
13266: CALL_OW 193
// addcomplaceremotecharge ( Soldiers [ 3 ] , 60 , 82 , 0 ) ;
13270: LD_VAR 0 2
13274: PUSH
13275: LD_INT 3
13277: ARRAY
13278: PPUSH
13279: LD_INT 60
13281: PPUSH
13282: LD_INT 82
13284: PPUSH
13285: LD_INT 0
13287: PPUSH
13288: CALL_OW 193
// addcommovexy ( soldiers , 40 , 40 ) ;
13292: LD_VAR 0 2
13296: PPUSH
13297: LD_INT 40
13299: PPUSH
13300: LD_INT 40
13302: PPUSH
13303: CALL_OW 171
// commovexy ( unitfilter ( UPFPeople , [ f_or , [ f_class , class_mortar ] , [ f_class , class_scientistic ] ] ) , 40 , 40 ) ;
13307: LD_EXP 3
13311: PPUSH
13312: LD_INT 2
13314: PUSH
13315: LD_INT 25
13317: PUSH
13318: LD_INT 8
13320: PUSH
13321: EMPTY
13322: LIST
13323: LIST
13324: PUSH
13325: LD_INT 25
13327: PUSH
13328: LD_INT 4
13330: PUSH
13331: EMPTY
13332: LIST
13333: LIST
13334: PUSH
13335: EMPTY
13336: LIST
13337: LIST
13338: LIST
13339: PPUSH
13340: CALL_OW 72
13344: PPUSH
13345: LD_INT 40
13347: PPUSH
13348: LD_INT 40
13350: PPUSH
13351: CALL_OW 111
// wait ( 0 0$2 ) ;
13355: LD_INT 70
13357: PPUSH
13358: CALL_OW 67
// comexitvehicle ( mechanics [ 1 ] ^ mechanics [ 3 ] ) ;
13362: LD_VAR 0 3
13366: PUSH
13367: LD_INT 1
13369: ARRAY
13370: PUSH
13371: LD_VAR 0 3
13375: PUSH
13376: LD_INT 3
13378: ARRAY
13379: ADD
13380: PPUSH
13381: CALL_OW 121
// addcommovexy ( mechanics [ 1 ] ^ mechanics [ 3 ] , 40 , 40 ) ;
13385: LD_VAR 0 3
13389: PUSH
13390: LD_INT 1
13392: ARRAY
13393: PUSH
13394: LD_VAR 0 3
13398: PUSH
13399: LD_INT 3
13401: ARRAY
13402: ADD
13403: PPUSH
13404: LD_INT 40
13406: PPUSH
13407: LD_INT 40
13409: PPUSH
13410: CALL_OW 171
// wait ( 0 0$0.5 ) ;
13414: LD_INT 18
13416: PPUSH
13417: CALL_OW 67
// commovexy ( mechanics [ 1 ] ^ mechanics [ 3 ] , 40 , 40 ) ;
13421: LD_VAR 0 3
13425: PUSH
13426: LD_INT 1
13428: ARRAY
13429: PUSH
13430: LD_VAR 0 3
13434: PUSH
13435: LD_INT 3
13437: ARRAY
13438: ADD
13439: PPUSH
13440: LD_INT 40
13442: PPUSH
13443: LD_INT 40
13445: PPUSH
13446: CALL_OW 111
// wait ( 0 0$2 ) ;
13450: LD_INT 70
13452: PPUSH
13453: CALL_OW 67
// comagressivemove ( mechanics [ 2 ] , 46 , 74 ) ;
13457: LD_VAR 0 3
13461: PUSH
13462: LD_INT 2
13464: ARRAY
13465: PPUSH
13466: LD_INT 46
13468: PPUSH
13469: LD_INT 74
13471: PPUSH
13472: CALL_OW 114
// wait ( 0 0$2 ) ;
13476: LD_INT 70
13478: PPUSH
13479: CALL_OW 67
// addcomexitvehicle ( mechanics [ 2 ] ) ;
13483: LD_VAR 0 3
13487: PUSH
13488: LD_INT 2
13490: ARRAY
13491: PPUSH
13492: CALL_OW 181
// addcommovexy ( mechanics , 40 , 40 ) ;
13496: LD_VAR 0 3
13500: PPUSH
13501: LD_INT 40
13503: PPUSH
13504: LD_INT 40
13506: PPUSH
13507: CALL_OW 171
// complaceremotecharge ( Gensher , 50 , 73 , 0 ) ;
13511: LD_EXP 2
13515: PPUSH
13516: LD_INT 50
13518: PPUSH
13519: LD_INT 73
13521: PPUSH
13522: LD_INT 0
13524: PPUSH
13525: CALL_OW 133
// addcomturnxy ( Gensher , 59 , 93 ) ;
13529: LD_EXP 2
13533: PPUSH
13534: LD_INT 59
13536: PPUSH
13537: LD_INT 93
13539: PPUSH
13540: CALL_OW 178
// uc_side = 8 ;
13544: LD_ADDR_OWVAR 20
13548: PUSH
13549: LD_INT 8
13551: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
13552: LD_ADDR_OWVAR 37
13556: PUSH
13557: LD_INT 14
13559: ST_TO_ADDR
// vc_engine = engine_siberite ;
13560: LD_ADDR_OWVAR 39
13564: PUSH
13565: LD_INT 3
13567: ST_TO_ADDR
// vc_control = control_remote ;
13568: LD_ADDR_OWVAR 38
13572: PUSH
13573: LD_INT 2
13575: ST_TO_ADDR
// vc_weapon = ar_gun ;
13576: LD_ADDR_OWVAR 40
13580: PUSH
13581: LD_INT 27
13583: ST_TO_ADDR
// LegionFinal = createvehicle ^ createvehicle ;
13584: LD_ADDR_VAR 0 1
13588: PUSH
13589: CALL_OW 45
13593: PUSH
13594: CALL_OW 45
13598: ADD
13599: ST_TO_ADDR
// vc_weapon = ar_rocket_launcher ;
13600: LD_ADDR_OWVAR 40
13604: PUSH
13605: LD_INT 28
13607: ST_TO_ADDR
// LegionFinal = LegionFinal ^ createvehicle ;
13608: LD_ADDR_VAR 0 1
13612: PUSH
13613: LD_VAR 0 1
13617: PUSH
13618: CALL_OW 45
13622: ADD
13623: ST_TO_ADDR
// for i = 1 to LegionFinal do
13624: LD_ADDR_VAR 0 4
13628: PUSH
13629: DOUBLE
13630: LD_INT 1
13632: DEC
13633: ST_TO_ADDR
13634: LD_VAR 0 1
13638: PUSH
13639: FOR_TO
13640: IFFALSE 13709
// begin placeunitxy ( LegionFinal [ i ] , [ 56 , 71 , 84 ] [ i ] , 106 , false ) ;
13642: LD_VAR 0 1
13646: PUSH
13647: LD_VAR 0 4
13651: ARRAY
13652: PPUSH
13653: LD_INT 56
13655: PUSH
13656: LD_INT 71
13658: PUSH
13659: LD_INT 84
13661: PUSH
13662: EMPTY
13663: LIST
13664: LIST
13665: LIST
13666: PUSH
13667: LD_VAR 0 4
13671: ARRAY
13672: PPUSH
13673: LD_INT 106
13675: PPUSH
13676: LD_INT 0
13678: PPUSH
13679: CALL_OW 48
// linkvehicletohuman ( LegionFinal [ i ] , LegionRemoteMech [ 1 ] ) ;
13683: LD_VAR 0 1
13687: PUSH
13688: LD_VAR 0 4
13692: ARRAY
13693: PPUSH
13694: LD_EXP 10
13698: PUSH
13699: LD_INT 1
13701: ARRAY
13702: PPUSH
13703: CALL_OW 53
// end ;
13707: GO 13639
13709: POP
13710: POP
// ExclusiveOn ;
13711: CALL_OW 4
// setlives ( UPFVEhicles , 1000 ) ;
13715: LD_EXP 4
13719: PPUSH
13720: LD_INT 1000
13722: PPUSH
13723: CALL_OW 234
// repeat wait ( 0 0$0.1 ) ;
13727: LD_INT 4
13729: PPUSH
13730: CALL_OW 67
// comattackunit ( LegionFinal , Nearestunittounit ( UPFVehicles , isinunit ( LegionRemoteMech [ 1 ] ) ) ) ;
13734: LD_VAR 0 1
13738: PPUSH
13739: LD_EXP 4
13743: PPUSH
13744: LD_EXP 10
13748: PUSH
13749: LD_INT 1
13751: ARRAY
13752: PPUSH
13753: CALL_OW 310
13757: PPUSH
13758: CALL_OW 74
13762: PPUSH
13763: CALL_OW 115
// for i in UPFVehicles do
13767: LD_ADDR_VAR 0 4
13771: PUSH
13772: LD_EXP 4
13776: PUSH
13777: FOR_IN
13778: IFFALSE 13809
// if getlives ( i ) < 1000 then
13780: LD_VAR 0 4
13784: PPUSH
13785: CALL_OW 256
13789: PUSH
13790: LD_INT 1000
13792: LESS
13793: IFFALSE 13807
// setlives ( i , 0 ) ;
13795: LD_VAR 0 4
13799: PPUSH
13800: LD_INT 0
13802: PPUSH
13803: CALL_OW 234
13807: GO 13777
13809: POP
13810: POP
// for i in mechanics do
13811: LD_ADDR_VAR 0 4
13815: PUSH
13816: LD_VAR 0 3
13820: PUSH
13821: FOR_IN
13822: IFFALSE 13864
// if not isinunit ( i ) then
13824: LD_VAR 0 4
13828: PPUSH
13829: CALL_OW 310
13833: NOT
13834: IFFALSE 13853
// commovexy ( i , 40 , 40 ) else
13836: LD_VAR 0 4
13840: PPUSH
13841: LD_INT 40
13843: PPUSH
13844: LD_INT 40
13846: PPUSH
13847: CALL_OW 111
13851: GO 13862
// comexitvehicle ( i ) ;
13853: LD_VAR 0 4
13857: PPUSH
13858: CALL_OW 121
13862: GO 13821
13864: POP
13865: POP
// until unitfilter ( UPFVehicles , [ f_ok ] ) = 0 ;
13866: LD_EXP 4
13870: PPUSH
13871: LD_INT 50
13873: PUSH
13874: EMPTY
13875: LIST
13876: PPUSH
13877: CALL_OW 72
13881: PUSH
13882: LD_INT 0
13884: EQUAL
13885: IFFALSE 13727
// addcommovexy ( LegionFinal [ 1 ] , 50 , 81 ) ;
13887: LD_VAR 0 1
13891: PUSH
13892: LD_INT 1
13894: ARRAY
13895: PPUSH
13896: LD_INT 50
13898: PPUSH
13899: LD_INT 81
13901: PPUSH
13902: CALL_OW 171
// addcommovexy ( LegionFinal [ 2 ] , 55 , 82 ) ;
13906: LD_VAR 0 1
13910: PUSH
13911: LD_INT 2
13913: ARRAY
13914: PPUSH
13915: LD_INT 55
13917: PPUSH
13918: LD_INT 82
13920: PPUSH
13921: CALL_OW 171
// addcommovexy ( LegionFinal [ 3 ] , 60 , 82 ) ;
13925: LD_VAR 0 1
13929: PUSH
13930: LD_INT 3
13932: ARRAY
13933: PPUSH
13934: LD_INT 60
13936: PPUSH
13937: LD_INT 82
13939: PPUSH
13940: CALL_OW 171
// centeronxy ( 51 , 75 ) ;
13944: LD_INT 51
13946: PPUSH
13947: LD_INT 75
13949: PPUSH
13950: CALL_OW 84
// repeat wait ( 0 0$0.5 ) ;
13954: LD_INT 18
13956: PPUSH
13957: CALL_OW 67
// if getdistunitxy ( LegionFinal [ 1 ] , 50 , 81 ) < 3 then
13961: LD_VAR 0 1
13965: PUSH
13966: LD_INT 1
13968: ARRAY
13969: PPUSH
13970: LD_INT 50
13972: PPUSH
13973: LD_INT 81
13975: PPUSH
13976: CALL_OW 297
13980: PUSH
13981: LD_INT 3
13983: LESS
13984: IFFALSE 14015
// begin LaunchMineAtPos ( 50 , 81 , 5 ) ;
13986: LD_INT 50
13988: PPUSH
13989: LD_INT 81
13991: PPUSH
13992: LD_INT 5
13994: PPUSH
13995: CALL_OW 456
// setlives ( LegionFinal [ 1 ] , 0 ) ;
13999: LD_VAR 0 1
14003: PUSH
14004: LD_INT 1
14006: ARRAY
14007: PPUSH
14008: LD_INT 0
14010: PPUSH
14011: CALL_OW 234
// end ; if getdistunitxy ( LegionFinal [ 2 ] , 55 , 82 ) < 3 then
14015: LD_VAR 0 1
14019: PUSH
14020: LD_INT 2
14022: ARRAY
14023: PPUSH
14024: LD_INT 55
14026: PPUSH
14027: LD_INT 82
14029: PPUSH
14030: CALL_OW 297
14034: PUSH
14035: LD_INT 3
14037: LESS
14038: IFFALSE 14069
// begin LaunchMineAtPos ( 55 , 82 , 5 ) ;
14040: LD_INT 55
14042: PPUSH
14043: LD_INT 82
14045: PPUSH
14046: LD_INT 5
14048: PPUSH
14049: CALL_OW 456
// setlives ( LegionFinal [ 2 ] , 0 ) ;
14053: LD_VAR 0 1
14057: PUSH
14058: LD_INT 2
14060: ARRAY
14061: PPUSH
14062: LD_INT 0
14064: PPUSH
14065: CALL_OW 234
// end ; if getdistunitxy ( LegionFinal [ 3 ] , 60 , 82 ) < 3 then
14069: LD_VAR 0 1
14073: PUSH
14074: LD_INT 3
14076: ARRAY
14077: PPUSH
14078: LD_INT 60
14080: PPUSH
14081: LD_INT 82
14083: PPUSH
14084: CALL_OW 297
14088: PUSH
14089: LD_INT 3
14091: LESS
14092: IFFALSE 14123
// begin LaunchMineAtPos ( 60 , 82 , 5 ) ;
14094: LD_INT 60
14096: PPUSH
14097: LD_INT 82
14099: PPUSH
14100: LD_INT 5
14102: PPUSH
14103: CALL_OW 456
// setlives ( LegionFinal [ 3 ] , 0 ) ;
14107: LD_VAR 0 1
14111: PUSH
14112: LD_INT 3
14114: ARRAY
14115: PPUSH
14116: LD_INT 0
14118: PPUSH
14119: CALL_OW 234
// end ; until unitfilter ( LegionFinal , [ f_ok ] ) = 0 ;
14123: LD_VAR 0 1
14127: PPUSH
14128: LD_INT 50
14130: PUSH
14131: EMPTY
14132: LIST
14133: PPUSH
14134: CALL_OW 72
14138: PUSH
14139: LD_INT 0
14141: EQUAL
14142: IFFALSE 13954
// centeronxy ( 48 , 70 ) ;
14144: LD_INT 48
14146: PPUSH
14147: LD_INT 70
14149: PPUSH
14150: CALL_OW 84
// vc_weapon = ar_selfpropelled_bomb ;
14154: LD_ADDR_OWVAR 40
14158: PUSH
14159: LD_INT 29
14161: ST_TO_ADDR
// LegionFinal = createvehicle ;
14162: LD_ADDR_VAR 0 1
14166: PUSH
14167: CALL_OW 45
14171: ST_TO_ADDR
// placeunitarea ( LegionFinal , areabomb , false ) ;
14172: LD_VAR 0 1
14176: PPUSH
14177: LD_INT 5
14179: PPUSH
14180: LD_INT 0
14182: PPUSH
14183: CALL_OW 49
// linkvehicletohuman ( LegionFinal , LegionRemoteMech [ 1 ] ) ;
14187: LD_VAR 0 1
14191: PPUSH
14192: LD_EXP 10
14196: PUSH
14197: LD_INT 1
14199: ARRAY
14200: PPUSH
14201: CALL_OW 53
// commovexy ( LegionFinal , 50 , 73 ) ;
14205: LD_VAR 0 1
14209: PPUSH
14210: LD_INT 50
14212: PPUSH
14213: LD_INT 73
14215: PPUSH
14216: CALL_OW 111
// addcomattackunit ( LegionFinal , Gensher ) ;
14220: LD_VAR 0 1
14224: PPUSH
14225: LD_EXP 2
14229: PPUSH
14230: CALL_OW 175
// wait ( 0 0$1.5 ) ;
14234: LD_INT 52
14236: PPUSH
14237: CALL_OW 67
// commovexy ( Gensher , 42 , 64 ) ;
14241: LD_EXP 2
14245: PPUSH
14246: LD_INT 42
14248: PPUSH
14249: LD_INT 64
14251: PPUSH
14252: CALL_OW 111
// addcommovexy ( Gensher , 42 , 34 ) ;
14256: LD_EXP 2
14260: PPUSH
14261: LD_INT 42
14263: PPUSH
14264: LD_INT 34
14266: PPUSH
14267: CALL_OW 171
// comturnunit ( Heike ^ Snake , Gensher ) ;
14271: LD_EXP 25
14275: PUSH
14276: LD_EXP 22
14280: ADD
14281: PPUSH
14282: LD_EXP 2
14286: PPUSH
14287: CALL_OW 119
// repeat wait ( 0 0$0.5 ) ;
14291: LD_INT 18
14293: PPUSH
14294: CALL_OW 67
// if getdistunitxy ( LegionFinal , 50 , 73 ) < 3 then
14298: LD_VAR 0 1
14302: PPUSH
14303: LD_INT 50
14305: PPUSH
14306: LD_INT 73
14308: PPUSH
14309: CALL_OW 297
14313: PUSH
14314: LD_INT 3
14316: LESS
14317: IFFALSE 14351
// begin LaunchMineAtPos ( 50 , 73 , 5 ) ;
14319: LD_INT 50
14321: PPUSH
14322: LD_INT 73
14324: PPUSH
14325: LD_INT 5
14327: PPUSH
14328: CALL_OW 456
// setlives ( LegionFinal , 0 ) ;
14332: LD_VAR 0 1
14336: PPUSH
14337: LD_INT 0
14339: PPUSH
14340: CALL_OW 234
// LegionFinal = [ ] end ;
14344: LD_ADDR_VAR 0 1
14348: PUSH
14349: EMPTY
14350: ST_TO_ADDR
// setlives ( Legion , 0 ) ;
14351: LD_EXP 7
14355: PPUSH
14356: LD_INT 0
14358: PPUSH
14359: CALL_OW 234
// until LegionFinal = 0 ;
14363: LD_VAR 0 1
14367: PUSH
14368: LD_INT 0
14370: EQUAL
14371: IFFALSE 14291
// wait ( 0 0$3 ) ;
14373: LD_INT 105
14375: PPUSH
14376: CALL_OW 67
// setattr ( Gensher , attr_stamina , 10 ) ;
14380: LD_EXP 2
14384: PPUSH
14385: LD_INT 1
14387: PPUSH
14388: LD_INT 10
14390: PPUSH
14391: CALL_OW 239
// repeat wait ( 0 0$3 ) ;
14395: LD_INT 105
14397: PPUSH
14398: CALL_OW 67
// centeronunits ( Gensher ) ;
14402: LD_EXP 2
14406: PPUSH
14407: CALL_OW 85
// until getdistunitxy ( Gensher , 42 , 34 ) < 5 ;
14411: LD_EXP 2
14415: PPUSH
14416: LD_INT 42
14418: PPUSH
14419: LD_INT 34
14421: PPUSH
14422: CALL_OW 297
14426: PUSH
14427: LD_INT 5
14429: LESS
14430: IFFALSE 14395
// Say ( Heike , Rs_He7 ) ;
14432: LD_EXP 25
14436: PPUSH
14437: LD_STRING Rs_He7
14439: PPUSH
14440: CALL_OW 88
// Say ( Gensher , Rs_Ge5 ) ;
14444: LD_EXP 2
14448: PPUSH
14449: LD_STRING Rs_Ge5
14451: PPUSH
14452: CALL_OW 88
// comturnxy ( Gensher , 49 , 34 ) ;
14456: LD_EXP 2
14460: PPUSH
14461: LD_INT 49
14463: PPUSH
14464: LD_INT 34
14466: PPUSH
14467: CALL_OW 118
// Say ( Gensher , Rs_Ge6 ) ;
14471: LD_EXP 2
14475: PPUSH
14476: LD_STRING Rs_Ge6
14478: PPUSH
14479: CALL_OW 88
// Say ( Heike , Rs_He8 ) ;
14483: LD_EXP 25
14487: PPUSH
14488: LD_STRING Rs_He8
14490: PPUSH
14491: CALL_OW 88
// Say ( Heike , Rs_He9 ) ;
14495: LD_EXP 25
14499: PPUSH
14500: LD_STRING Rs_He9
14502: PPUSH
14503: CALL_OW 88
// comturnunit ( Gensher , Heike ) ;
14507: LD_EXP 2
14511: PPUSH
14512: LD_EXP 25
14516: PPUSH
14517: CALL_OW 119
// Say ( Gensher , Rs_Ge7 ) ;
14521: LD_EXP 2
14525: PPUSH
14526: LD_STRING Rs_Ge7
14528: PPUSH
14529: CALL_OW 88
// Say ( Heike , Rs_He10 ) ;
14533: LD_EXP 25
14537: PPUSH
14538: LD_STRING Rs_He10
14540: PPUSH
14541: CALL_OW 88
// Say ( Gensher , Rs_Ge8 ) ;
14545: LD_EXP 2
14549: PPUSH
14550: LD_STRING Rs_Ge8
14552: PPUSH
14553: CALL_OW 88
// if IsPlaced ( Snake ) then
14557: LD_EXP 22
14561: PPUSH
14562: CALL_OW 305
14566: IFFALSE 14582
// Say ( Snake , Rs_Sn3 ) else
14568: LD_EXP 22
14572: PPUSH
14573: LD_STRING Rs_Sn3
14575: PPUSH
14576: CALL_OW 88
14580: GO 14594
// Say ( Gensher , Rs_Ge9 ) ;
14582: LD_EXP 2
14586: PPUSH
14587: LD_STRING Rs_Ge9
14589: PPUSH
14590: CALL_OW 88
// removeunit ( Gensher ) ;
14594: LD_EXP 2
14598: PPUSH
14599: CALL_OW 64
// placeunitxy ( Gensher , 42 , 34 , false ) ;
14603: LD_EXP 2
14607: PPUSH
14608: LD_INT 42
14610: PPUSH
14611: LD_INT 34
14613: PPUSH
14614: LD_INT 0
14616: PPUSH
14617: CALL_OW 48
// Saving ;
14621: CALL 14628 0 0
// end ;
14625: PPOPN 5
14627: END
// function Saving ; var i , destruction , resources , teleport , people , un_list , name_list ; begin
14628: LD_INT 0
14630: PPUSH
14631: PPUSH
14632: PPUSH
14633: PPUSH
14634: PPUSH
14635: PPUSH
14636: PPUSH
14637: PPUSH
// if testing then
14638: LD_EXP 1
14642: IFFALSE 14654
// Destruction = 1 else
14644: LD_ADDR_VAR 0 3
14648: PUSH
14649: LD_INT 1
14651: ST_TO_ADDR
14652: GO 14670
// Destruction = LoadVariable ( Destruction_14_cont , 0 ) ;
14654: LD_ADDR_VAR 0 3
14658: PUSH
14659: LD_STRING Destruction_14_cont
14661: PPUSH
14662: LD_INT 0
14664: PPUSH
14665: CALL_OW 30
14669: ST_TO_ADDR
// AddMedal ( Destruction , Destruction ) ;
14670: LD_STRING Destruction
14672: PPUSH
14673: LD_VAR 0 3
14677: PPUSH
14678: CALL_OW 101
// Resources = LoadVariable ( Resources_gathered_14_cont , [ 0 , 0 , 0 ] ) ;
14682: LD_ADDR_VAR 0 4
14686: PUSH
14687: LD_STRING Resources_gathered_14_cont
14689: PPUSH
14690: LD_INT 0
14692: PUSH
14693: LD_INT 0
14695: PUSH
14696: LD_INT 0
14698: PUSH
14699: EMPTY
14700: LIST
14701: LIST
14702: LIST
14703: PPUSH
14704: CALL_OW 30
14708: ST_TO_ADDR
// if testing then
14709: LD_EXP 1
14713: IFFALSE 14727
// AddMedal ( Resources , 1 ) else
14715: LD_STRING Resources
14717: PPUSH
14718: LD_INT 1
14720: PPUSH
14721: CALL_OW 101
14725: GO 14812
// if Resources [ 1 ] >= [ 1000 , 1250 , 1500 ] [ difficulty ] and Resources [ 3 ] >= [ 350 , 400 , 500 ] [ difficulty ] then
14727: LD_VAR 0 4
14731: PUSH
14732: LD_INT 1
14734: ARRAY
14735: PUSH
14736: LD_INT 1000
14738: PUSH
14739: LD_INT 1250
14741: PUSH
14742: LD_INT 1500
14744: PUSH
14745: EMPTY
14746: LIST
14747: LIST
14748: LIST
14749: PUSH
14750: LD_OWVAR 67
14754: ARRAY
14755: GREATEREQUAL
14756: PUSH
14757: LD_VAR 0 4
14761: PUSH
14762: LD_INT 3
14764: ARRAY
14765: PUSH
14766: LD_INT 350
14768: PUSH
14769: LD_INT 400
14771: PUSH
14772: LD_INT 500
14774: PUSH
14775: EMPTY
14776: LIST
14777: LIST
14778: LIST
14779: PUSH
14780: LD_OWVAR 67
14784: ARRAY
14785: GREATEREQUAL
14786: AND
14787: IFFALSE 14801
// AddMedal ( Resources , 1 ) else
14789: LD_STRING Resources
14791: PPUSH
14792: LD_INT 1
14794: PPUSH
14795: CALL_OW 101
14799: GO 14812
// AddMedal ( Resources , - 1 ) ;
14801: LD_STRING Resources
14803: PPUSH
14804: LD_INT 1
14806: NEG
14807: PPUSH
14808: CALL_OW 101
// if testing then
14812: LD_EXP 1
14816: IFFALSE 14828
// Teleport = 1 else
14818: LD_ADDR_VAR 0 5
14822: PUSH
14823: LD_INT 1
14825: ST_TO_ADDR
14826: GO 14844
// Teleport = LoadVariable ( Transport_Teleported_14_cont , 0 ) ;
14828: LD_ADDR_VAR 0 5
14832: PUSH
14833: LD_STRING Transport_Teleported_14_cont
14835: PPUSH
14836: LD_INT 0
14838: PPUSH
14839: CALL_OW 30
14843: ST_TO_ADDR
// AddMedal ( Teleport , Teleport ) ;
14844: LD_STRING Teleport
14846: PPUSH
14847: LD_VAR 0 5
14851: PPUSH
14852: CALL_OW 101
// GiveMedals ( medals ) ;
14856: LD_STRING medals
14858: PPUSH
14859: CALL_OW 102
// People = ( PlayerPeople ^ playerpeople_previous_map ^ escort_others ^ Gensher ^ Gonzo ) diff 0 ;
14863: LD_ADDR_VAR 0 6
14867: PUSH
14868: LD_EXP 39
14872: PUSH
14873: LD_EXP 41
14877: ADD
14878: PUSH
14879: LD_EXP 40
14883: ADD
14884: PUSH
14885: LD_EXP 2
14889: ADD
14890: PUSH
14891: LD_EXP 37
14895: ADD
14896: PUSH
14897: LD_INT 0
14899: DIFF
14900: ST_TO_ADDR
// if LoadVariable ( Transport_Teleported_14_cont , 0 ) = 1 or testing then
14901: LD_STRING Transport_Teleported_14_cont
14903: PPUSH
14904: LD_INT 0
14906: PPUSH
14907: CALL_OW 30
14911: PUSH
14912: LD_INT 1
14914: EQUAL
14915: PUSH
14916: LD_EXP 1
14920: OR
14921: IFFALSE 14953
// People = People ^ Snake ^ Pierre ^ Elizabeth else
14923: LD_ADDR_VAR 0 6
14927: PUSH
14928: LD_VAR 0 6
14932: PUSH
14933: LD_EXP 22
14937: ADD
14938: PUSH
14939: LD_EXP 24
14943: ADD
14944: PUSH
14945: LD_EXP 23
14949: ADD
14950: ST_TO_ADDR
14951: GO 14991
// begin People = People ^ Snake ;
14953: LD_ADDR_VAR 0 6
14957: PUSH
14958: LD_VAR 0 6
14962: PUSH
14963: LD_EXP 22
14967: ADD
14968: ST_TO_ADDR
// escort_others = escort_others ^ Pierre ^ Elizabeth ;
14969: LD_ADDR_EXP 40
14973: PUSH
14974: LD_EXP 40
14978: PUSH
14979: LD_EXP 24
14983: ADD
14984: PUSH
14985: LD_EXP 23
14989: ADD
14990: ST_TO_ADDR
// end ; RewardPeople ( People ) ;
14991: LD_VAR 0 6
14995: PPUSH
14996: CALL_OW 43
// un_list = [ Heike , Oswald , Olaf , Sonya , Ralph , Kowalski , Aviradze , Swansson , Dwayne , Khattam , Evelyn , Gonzo , Makise , Snake , Gensher ] ;
15000: LD_ADDR_VAR 0 7
15004: PUSH
15005: LD_EXP 25
15009: PUSH
15010: LD_EXP 28
15014: PUSH
15015: LD_EXP 26
15019: PUSH
15020: LD_EXP 27
15024: PUSH
15025: LD_EXP 29
15029: PUSH
15030: LD_EXP 30
15034: PUSH
15035: LD_EXP 31
15039: PUSH
15040: LD_EXP 32
15044: PUSH
15045: LD_EXP 33
15049: PUSH
15050: LD_EXP 34
15054: PUSH
15055: LD_EXP 35
15059: PUSH
15060: LD_EXP 37
15064: PUSH
15065: LD_EXP 36
15069: PUSH
15070: LD_EXP 22
15074: PUSH
15075: LD_EXP 2
15079: PUSH
15080: EMPTY
15081: LIST
15082: LIST
15083: LIST
15084: LIST
15085: LIST
15086: LIST
15087: LIST
15088: LIST
15089: LIST
15090: LIST
15091: LIST
15092: LIST
15093: LIST
15094: LIST
15095: LIST
15096: ST_TO_ADDR
// name_list = [ Heike , Oswald , Olaf , Sonya , Ralph , Kowalski , Aviradze , Swansson , Dwayne , Khattam , Evelyn , Gonzo , Makise , Snake , Gensher ] ;
15097: LD_ADDR_VAR 0 8
15101: PUSH
15102: LD_STRING Heike
15104: PUSH
15105: LD_STRING Oswald
15107: PUSH
15108: LD_STRING Olaf
15110: PUSH
15111: LD_STRING Sonya
15113: PUSH
15114: LD_STRING Ralph
15116: PUSH
15117: LD_STRING Kowalski
15119: PUSH
15120: LD_STRING Aviradze
15122: PUSH
15123: LD_STRING Swansson
15125: PUSH
15126: LD_STRING Dwayne
15128: PUSH
15129: LD_STRING Khattam
15131: PUSH
15132: LD_STRING Evelyn
15134: PUSH
15135: LD_STRING Gonzo
15137: PUSH
15138: LD_STRING Makise
15140: PUSH
15141: LD_STRING Snake
15143: PUSH
15144: LD_STRING Gensher
15146: PUSH
15147: EMPTY
15148: LIST
15149: LIST
15150: LIST
15151: LIST
15152: LIST
15153: LIST
15154: LIST
15155: LIST
15156: LIST
15157: LIST
15158: LIST
15159: LIST
15160: LIST
15161: LIST
15162: LIST
15163: ST_TO_ADDR
// for i = 1 to un_list do
15164: LD_ADDR_VAR 0 2
15168: PUSH
15169: DOUBLE
15170: LD_INT 1
15172: DEC
15173: ST_TO_ADDR
15174: LD_VAR 0 7
15178: PUSH
15179: FOR_TO
15180: IFFALSE 15232
// if un_list [ i ] in People then
15182: LD_VAR 0 7
15186: PUSH
15187: LD_VAR 0 2
15191: ARRAY
15192: PUSH
15193: LD_VAR 0 6
15197: IN
15198: IFFALSE 15230
// SaveCharacters ( un_list [ i ] , name_list [ i ] & _14_cont2 ) ;
15200: LD_VAR 0 7
15204: PUSH
15205: LD_VAR 0 2
15209: ARRAY
15210: PPUSH
15211: LD_VAR 0 8
15215: PUSH
15216: LD_VAR 0 2
15220: ARRAY
15221: PUSH
15222: LD_STRING _14_cont2
15224: STR
15225: PPUSH
15226: CALL_OW 38
15230: GO 15179
15232: POP
15233: POP
// SaveCharacters ( People diff un_list , Others_14_cont2 ) ;
15234: LD_VAR 0 6
15238: PUSH
15239: LD_VAR 0 7
15243: DIFF
15244: PPUSH
15245: LD_STRING Others_14_cont2
15247: PPUSH
15248: CALL_OW 38
// SaveCharacters ( UPFPeople , UPF_14_cont2 ) ;
15252: LD_EXP 3
15256: PPUSH
15257: LD_STRING UPF_14_cont2
15259: PPUSH
15260: CALL_OW 38
// SaveCharacters ( escort_others , convoy_others_14_cont2 ) ;
15264: LD_EXP 40
15268: PPUSH
15269: LD_STRING convoy_others_14_cont2
15271: PPUSH
15272: CALL_OW 38
// YouWin ;
15276: CALL_OW 103
// end ;
15280: LD_VAR 0 1
15284: RET
