// starting begin first = 0 ;
   0: LD_ADDR_EXP 10
   4: PUSH
   5: LD_INT 0
   7: ST_TO_ADDR
// comenterunit ( [ s1 , s2 , s3 ] , br1 ) ;
   8: LD_INT 100
  10: PUSH
  11: LD_INT 101
  13: PUSH
  14: LD_INT 99
  16: PUSH
  17: EMPTY
  18: LIST
  19: LIST
  20: LIST
  21: PPUSH
  22: LD_INT 89
  24: PPUSH
  25: CALL_OW 120
// comenterunit ( [ m2 , m3 ] , fc ) ;
  29: LD_INT 95
  31: PUSH
  32: LD_INT 153
  34: PUSH
  35: EMPTY
  36: LIST
  37: LIST
  38: PPUSH
  39: LD_INT 79
  41: PPUSH
  42: CALL_OW 120
// comenterunit ( [ n1 , n2 ] , lab ) ;
  46: LD_INT 97
  48: PUSH
  49: LD_INT 96
  51: PUSH
  52: EMPTY
  53: LIST
  54: LIST
  55: PPUSH
  56: LD_INT 68
  58: PPUSH
  59: CALL_OW 120
// Resetfog ;
  63: CALL_OW 335
// SaveForQuickRestart ;
  67: CALL_OW 22
// CenteronUnits ( my ) ;
  71: LD_INT 102
  73: PPUSH
  74: CALL_OW 85
// ingameon ;
  78: CALL_OW 8
// comenterunit ( [ m1 ] , p1 ) ;
  82: LD_INT 121
  84: PUSH
  85: EMPTY
  86: LIST
  87: PPUSH
  88: LD_INT 112
  90: PPUSH
  91: CALL_OW 120
// Say ( my , d1 ) ;
  95: LD_INT 102
  97: PPUSH
  98: LD_STRING d1
 100: PPUSH
 101: CALL_OW 88
// SayRadio ( m , d2 ) ;
 105: LD_INT 103
 107: PPUSH
 108: LD_STRING d2
 110: PPUSH
 111: CALL_OW 94
// Say ( my , d3 ) ;
 115: LD_INT 102
 117: PPUSH
 118: LD_STRING d3
 120: PPUSH
 121: CALL_OW 88
// SayRadio ( m , d4 ) ;
 125: LD_INT 103
 127: PPUSH
 128: LD_STRING d4
 130: PPUSH
 131: CALL_OW 94
// ChangeMissionObjectives ( CEL1 ) ;
 135: LD_STRING CEL1
 137: PPUSH
 138: CALL_OW 337
// ingameoff ;
 142: CALL_OW 9
// CenteronUnits ( m ) ;
 146: LD_INT 103
 148: PPUSH
 149: CALL_OW 85
// CreateCratesXY ( 5 - difficulty , 56 , 71 , false ) ;
 153: LD_INT 5
 155: PUSH
 156: LD_OWVAR 67
 160: MINUS
 161: PPUSH
 162: LD_INT 56
 164: PPUSH
 165: LD_INT 71
 167: PPUSH
 168: LD_INT 0
 170: PPUSH
 171: CALL_OW 54
// CreateCratesXY ( 5 - difficulty , 56 , 72 , false ) ;
 175: LD_INT 5
 177: PUSH
 178: LD_OWVAR 67
 182: MINUS
 183: PPUSH
 184: LD_INT 56
 186: PPUSH
 187: LD_INT 72
 189: PPUSH
 190: LD_INT 0
 192: PPUSH
 193: CALL_OW 54
// end ; end_of_file
 197: END
// every 1 1$00 do
 198: GO 200
 200: DISABLE
// begin enable ;
 201: ENABLE
// CreateResourcesArea ( 1 , rand ( 4 - difficulty , 5 ) , CrateDrop , true ) ;
 202: LD_INT 1
 204: PPUSH
 205: LD_INT 4
 207: PUSH
 208: LD_OWVAR 67
 212: MINUS
 213: PPUSH
 214: LD_INT 5
 216: PPUSH
 217: CALL_OW 12
 221: PPUSH
 222: LD_INT 6
 224: PPUSH
 225: LD_INT 1
 227: PPUSH
 228: CALL_OW 59
// end ; end_of_file
 232: END
// every 0 0$0.1 trigger IsDead ( m ) do
 233: LD_INT 103
 235: PPUSH
 236: CALL_OW 301
 240: IFFALSE 259
 242: GO 244
 244: DISABLE
// begin wait ( 0 0$1 ) ;
 245: LD_INT 35
 247: PPUSH
 248: CALL_OW 67
// YouLost ( Madison_nie_zyje ) ;
 252: LD_STRING Madison_nie_zyje
 254: PPUSH
 255: CALL_OW 104
// end ;
 259: END
// every 0 0$0.1 trigger IsDead ( s ) do
 260: LD_INT 104
 262: PPUSH
 263: CALL_OW 301
 267: IFFALSE 286
 269: GO 271
 271: DISABLE
// begin wait ( 0 0$1 ) ;
 272: LD_INT 35
 274: PPUSH
 275: CALL_OW 67
// YouLost ( Greene_nie_zyje ) ;
 279: LD_STRING Greene_nie_zyje
 281: PPUSH
 282: CALL_OW 104
// end ;
 286: END
// on Contact ( side1 , side2 ) do begin if side1 = 1 and side2 = 4 then
 287: LD_VAR 0 1
 291: PUSH
 292: LD_INT 1
 294: EQUAL
 295: PUSH
 296: LD_VAR 0 2
 300: PUSH
 301: LD_INT 4
 303: EQUAL
 304: AND
 305: IFFALSE 314
// begin YouLost ( zaatakowales_sojusznika ) ;
 307: LD_STRING zaatakowales_sojusznika
 309: PPUSH
 310: CALL_OW 104
// end ; end ; end_of_file
 314: PPOPN 2
 316: END
// export attacks_enabled ; every 0 0$01 trigger IsInArea ( m , Area11 ) do
 317: LD_INT 103
 319: PPUSH
 320: LD_INT 1
 322: PPUSH
 323: CALL_OW 308
 327: IFFALSE 591
 329: GO 331
 331: DISABLE
// begin ChangeMissionObjectives ( CEL1W ) ;
 332: LD_STRING CEL1W
 334: PPUSH
 335: CALL_OW 337
// Ingameon ;
 339: CALL_OW 8
// Say ( m , d5 ) ;
 343: LD_INT 103
 345: PPUSH
 346: LD_STRING d5
 348: PPUSH
 349: CALL_OW 88
// Say ( my , d6 ) ;
 353: LD_INT 102
 355: PPUSH
 356: LD_STRING d6
 358: PPUSH
 359: CALL_OW 88
// Say ( m , d7 ) ;
 363: LD_INT 103
 365: PPUSH
 366: LD_STRING d7
 368: PPUSH
 369: CALL_OW 88
// Say ( my , d8 ) ;
 373: LD_INT 102
 375: PPUSH
 376: LD_STRING d8
 378: PPUSH
 379: CALL_OW 88
// Say ( s1 , d9 ) ;
 383: LD_INT 100
 385: PPUSH
 386: LD_STRING d9
 388: PPUSH
 389: CALL_OW 88
// Say ( my , d10 ) ;
 393: LD_INT 102
 395: PPUSH
 396: LD_STRING d10
 398: PPUSH
 399: CALL_OW 88
// Say ( s1 , d11 ) ;
 403: LD_INT 100
 405: PPUSH
 406: LD_STRING d11
 408: PPUSH
 409: CALL_OW 88
// Say ( my , d12 ) ;
 413: LD_INT 102
 415: PPUSH
 416: LD_STRING d12
 418: PPUSH
 419: CALL_OW 88
// ingameoff ;
 423: CALL_OW 9
// ChangeSide ;
 427: CALL 592 0 0
// ChangeMissionObjectives ( CEL2 ) ;
 431: LD_STRING CEL2
 433: PPUSH
 434: CALL_OW 337
// wait ( 10 10$00 ) ;
 438: LD_INT 21000
 440: PPUSH
 441: CALL_OW 67
// ChangeMissionObjectives ( CEL2W ) ;
 445: LD_STRING CEL2W
 447: PPUSH
 448: CALL_OW 337
// ChangeMissionObjectives ( CEL3 ) ;
 452: LD_STRING CEL3
 454: PPUSH
 455: CALL_OW 337
// arabwrog ;
 459: CALL 651 0 0
// wait ( 2 2$30 ) ;
 463: LD_INT 5250
 465: PPUSH
 466: CALL_OW 67
// attacks_enabled = true ;
 470: LD_ADDR_EXP 1
 474: PUSH
 475: LD_INT 1
 477: ST_TO_ADDR
// wait ( 5 5$00 ) ;
 478: LD_INT 10500
 480: PPUSH
 481: CALL_OW 67
// Say ( my , d13 ) ;
 485: LD_INT 102
 487: PPUSH
 488: LD_STRING d13
 490: PPUSH
 491: CALL_OW 88
// wait ( 16 16$30 ) ;
 495: LD_INT 34650
 497: PPUSH
 498: CALL_OW 67
// attacks_enabled = false ;
 502: LD_ADDR_EXP 1
 506: PUSH
 507: LD_INT 0
 509: ST_TO_ADDR
// arabwrog ;
 510: CALL 651 0 0
// arabwrog ;
 514: CALL 651 0 0
// arabwrog ;
 518: CALL 651 0 0
// arabwrog ;
 522: CALL 651 0 0
// wait ( 1 1$00 ) ;
 526: LD_INT 2100
 528: PPUSH
 529: CALL_OW 67
// ChangeMissionObjectives ( CEL2W ) ;
 533: LD_STRING CEL2W
 535: PPUSH
 536: CALL_OW 337
// Say ( my , d14 ) ;
 540: LD_INT 102
 542: PPUSH
 543: LD_STRING d14
 545: PPUSH
 546: CALL_OW 88
// AddMedal ( medal1 , 1 ) ;
 550: LD_STRING medal1
 552: PPUSH
 553: LD_INT 1
 555: PPUSH
 556: CALL_OW 101
// AddMedal ( medal2 , 1 ) ;
 560: LD_STRING medal2
 562: PPUSH
 563: LD_INT 1
 565: PPUSH
 566: CALL_OW 101
// AddMedal ( medal3 , 1 ) ;
 570: LD_STRING medal3
 572: PPUSH
 573: LD_INT 1
 575: PPUSH
 576: CALL_OW 101
// GiveMedals ( Main ) ;
 580: LD_STRING Main
 582: PPUSH
 583: CALL_OW 102
// YouWin ;
 587: CALL_OW 103
// end ;
 591: END
// export function ChangeSide ; var un , kinlist ; begin
 592: LD_INT 0
 594: PPUSH
 595: PPUSH
 596: PPUSH
// kinlist = FilterAllUnits ( [ f_side , 4 ] ) ;
 597: LD_ADDR_VAR 0 3
 601: PUSH
 602: LD_INT 22
 604: PUSH
 605: LD_INT 4
 607: PUSH
 608: EMPTY
 609: LIST
 610: LIST
 611: PPUSH
 612: CALL_OW 69
 616: ST_TO_ADDR
// for un in kinlist do
 617: LD_ADDR_VAR 0 2
 621: PUSH
 622: LD_VAR 0 3
 626: PUSH
 627: FOR_IN
 628: IFFALSE 644
// begin SetSide ( un , 1 ) ;
 630: LD_VAR 0 2
 634: PPUSH
 635: LD_INT 1
 637: PPUSH
 638: CALL_OW 235
// end ;
 642: GO 627
 644: POP
 645: POP
// end ; end_of_file
 646: LD_VAR 0 1
 650: RET
// export soldat1 , soldat2 , soldat3 , soldat4 , mechanik1 , mechanik2 , hg1 , hg2 , first ; export function arabwrog ; var LeetSkillz , AttackDirection ; begin
 651: LD_INT 0
 653: PPUSH
 654: PPUSH
 655: PPUSH
// LeetSkillz = [ rand ( 1 , 2 ) , rand ( 2 , 3 ) , rand ( 2 , 6 ) ] ;
 656: LD_ADDR_VAR 0 2
 660: PUSH
 661: LD_INT 1
 663: PPUSH
 664: LD_INT 2
 666: PPUSH
 667: CALL_OW 12
 671: PUSH
 672: LD_INT 2
 674: PPUSH
 675: LD_INT 3
 677: PPUSH
 678: CALL_OW 12
 682: PUSH
 683: LD_INT 2
 685: PPUSH
 686: LD_INT 6
 688: PPUSH
 689: CALL_OW 12
 693: PUSH
 694: EMPTY
 695: LIST
 696: LIST
 697: LIST
 698: ST_TO_ADDR
// AttackDirection = [ Area12 , Area13 , Area14 , Area15 ] ;
 699: LD_ADDR_VAR 0 3
 703: PUSH
 704: LD_INT 2
 706: PUSH
 707: LD_INT 3
 709: PUSH
 710: LD_INT 4
 712: PUSH
 713: LD_INT 5
 715: PUSH
 716: EMPTY
 717: LIST
 718: LIST
 719: LIST
 720: LIST
 721: ST_TO_ADDR
// uc_side = 2 ;
 722: LD_ADDR_OWVAR 20
 726: PUSH
 727: LD_INT 2
 729: ST_TO_ADDR
// uc_nation = nation_arabian ;
 730: LD_ADDR_OWVAR 21
 734: PUSH
 735: LD_INT 2
 737: ST_TO_ADDR
// hc_class = CLASS_SOLDIER ;
 738: LD_ADDR_OWVAR 28
 742: PUSH
 743: LD_INT 1
 745: ST_TO_ADDR
// PrepareSoldierSkills ( LeetSkillz [ difficulty ] ) ;
 746: LD_VAR 0 2
 750: PUSH
 751: LD_OWVAR 67
 755: ARRAY
 756: PPUSH
 757: CALL_OW 375
// soldat1 = CreateHuman ;
 761: LD_ADDR_EXP 2
 765: PUSH
 766: CALL_OW 44
 770: ST_TO_ADDR
// soldat2 = CreateHuman ;
 771: LD_ADDR_EXP 3
 775: PUSH
 776: CALL_OW 44
 780: ST_TO_ADDR
// soldat3 = CreateHuman ;
 781: LD_ADDR_EXP 4
 785: PUSH
 786: CALL_OW 44
 790: ST_TO_ADDR
// soldat4 = CreateHuman ;
 791: LD_ADDR_EXP 5
 795: PUSH
 796: CALL_OW 44
 800: ST_TO_ADDR
// PlaceUnitArea ( soldat1 , AttackDirection [ rand ( 1 , 4 ) ] , false ) ;
 801: LD_EXP 2
 805: PPUSH
 806: LD_VAR 0 3
 810: PUSH
 811: LD_INT 1
 813: PPUSH
 814: LD_INT 4
 816: PPUSH
 817: CALL_OW 12
 821: ARRAY
 822: PPUSH
 823: LD_INT 0
 825: PPUSH
 826: CALL_OW 49
// PlaceUnitArea ( soldat2 , AttackDirection [ rand ( 1 , 4 ) ] , false ) ;
 830: LD_EXP 3
 834: PPUSH
 835: LD_VAR 0 3
 839: PUSH
 840: LD_INT 1
 842: PPUSH
 843: LD_INT 4
 845: PPUSH
 846: CALL_OW 12
 850: ARRAY
 851: PPUSH
 852: LD_INT 0
 854: PPUSH
 855: CALL_OW 49
// PlaceUnitArea ( soldat3 , AttackDirection [ rand ( 1 , 4 ) ] , false ) ;
 859: LD_EXP 4
 863: PPUSH
 864: LD_VAR 0 3
 868: PUSH
 869: LD_INT 1
 871: PPUSH
 872: LD_INT 4
 874: PPUSH
 875: CALL_OW 12
 879: ARRAY
 880: PPUSH
 881: LD_INT 0
 883: PPUSH
 884: CALL_OW 49
// PlaceUnitArea ( soldat4 , AttackDirection [ rand ( 1 , 4 ) ] , false ) ;
 888: LD_EXP 5
 892: PPUSH
 893: LD_VAR 0 3
 897: PUSH
 898: LD_INT 1
 900: PPUSH
 901: LD_INT 4
 903: PPUSH
 904: CALL_OW 12
 908: ARRAY
 909: PPUSH
 910: LD_INT 0
 912: PPUSH
 913: CALL_OW 49
// comagressivemove ( [ soldat1 , soldat2 , soldat3 , soldat4 ] , 60 , 50 ) ;
 917: LD_EXP 2
 921: PUSH
 922: LD_EXP 3
 926: PUSH
 927: LD_EXP 4
 931: PUSH
 932: LD_EXP 5
 936: PUSH
 937: EMPTY
 938: LIST
 939: LIST
 940: LIST
 941: LIST
 942: PPUSH
 943: LD_INT 60
 945: PPUSH
 946: LD_INT 50
 948: PPUSH
 949: CALL_OW 114
// uc_side = 2 ;
 953: LD_ADDR_OWVAR 20
 957: PUSH
 958: LD_INT 2
 960: ST_TO_ADDR
// uc_nation = nation_arabian ;
 961: LD_ADDR_OWVAR 21
 965: PUSH
 966: LD_INT 2
 968: ST_TO_ADDR
// hc_class = CLASS_MECHANIC ;
 969: LD_ADDR_OWVAR 28
 973: PUSH
 974: LD_INT 3
 976: ST_TO_ADDR
// PrepareMechanicSkills ( LeetSkillz [ difficulty ] ) ;
 977: LD_VAR 0 2
 981: PUSH
 982: LD_OWVAR 67
 986: ARRAY
 987: PPUSH
 988: CALL_OW 377
// mechanik1 = CreateHuman ;
 992: LD_ADDR_EXP 6
 996: PUSH
 997: CALL_OW 44
1001: ST_TO_ADDR
// mechanik2 = CreateHuman ;
1002: LD_ADDR_EXP 7
1006: PUSH
1007: CALL_OW 44
1011: ST_TO_ADDR
// vc_chassis = ar_medium_trike ;
1012: LD_ADDR_OWVAR 37
1016: PUSH
1017: LD_INT 13
1019: ST_TO_ADDR
// if difficulty = 3 then
1020: LD_OWVAR 67
1024: PUSH
1025: LD_INT 3
1027: EQUAL
1028: IFFALSE 1038
// vc_chassis = ar_half_tracked ;
1030: LD_ADDR_OWVAR 37
1034: PUSH
1035: LD_INT 14
1037: ST_TO_ADDR
// vc_engine = engine_combustion ;
1038: LD_ADDR_OWVAR 39
1042: PUSH
1043: LD_INT 1
1045: ST_TO_ADDR
// vc_control = control_manual ;
1046: LD_ADDR_OWVAR 38
1050: PUSH
1051: LD_INT 1
1053: ST_TO_ADDR
// vc_weapon = ar_gun ;
1054: LD_ADDR_OWVAR 40
1058: PUSH
1059: LD_INT 27
1061: ST_TO_ADDR
// if ( ( not difficulty = 3 ) and first = 0 ) then
1062: LD_OWVAR 67
1066: PUSH
1067: LD_INT 3
1069: EQUAL
1070: NOT
1071: PUSH
1072: LD_EXP 10
1076: PUSH
1077: LD_INT 0
1079: EQUAL
1080: AND
1081: IFFALSE 1091
// vc_weapon = ar_double_machine_gun ;
1083: LD_ADDR_OWVAR 40
1087: PUSH
1088: LD_INT 24
1090: ST_TO_ADDR
// hg1 = CreateVehicle ;
1091: LD_ADDR_EXP 8
1095: PUSH
1096: CALL_OW 45
1100: ST_TO_ADDR
// vc_weapon = rand ( ar_double_machine_gun , ar_gun ) ;
1101: LD_ADDR_OWVAR 40
1105: PUSH
1106: LD_INT 24
1108: PPUSH
1109: LD_INT 27
1111: PPUSH
1112: CALL_OW 12
1116: ST_TO_ADDR
// if difficulty = 1 then
1117: LD_OWVAR 67
1121: PUSH
1122: LD_INT 1
1124: EQUAL
1125: IFFALSE 1135
// vc_weapon = ar_double_machine_gun ;
1127: LD_ADDR_OWVAR 40
1131: PUSH
1132: LD_INT 24
1134: ST_TO_ADDR
// hg2 = CreateVehicle ;
1135: LD_ADDR_EXP 9
1139: PUSH
1140: CALL_OW 45
1144: ST_TO_ADDR
// PlaceHumanInUnit ( mechanik1 , hg1 ) ;
1145: LD_EXP 6
1149: PPUSH
1150: LD_EXP 8
1154: PPUSH
1155: CALL_OW 52
// PlaceHumanInUnit ( mechanik2 , hg2 ) ;
1159: LD_EXP 7
1163: PPUSH
1164: LD_EXP 9
1168: PPUSH
1169: CALL_OW 52
// PlaceUnitArea ( hg1 , AttackDirection [ rand ( 1 , 3 ) ] , false ) ;
1173: LD_EXP 8
1177: PPUSH
1178: LD_VAR 0 3
1182: PUSH
1183: LD_INT 1
1185: PPUSH
1186: LD_INT 3
1188: PPUSH
1189: CALL_OW 12
1193: ARRAY
1194: PPUSH
1195: LD_INT 0
1197: PPUSH
1198: CALL_OW 49
// PlaceUnitArea ( hg2 , AttackDirection [ rand ( 1 , 3 ) ] , false ) ;
1202: LD_EXP 9
1206: PPUSH
1207: LD_VAR 0 3
1211: PUSH
1212: LD_INT 1
1214: PPUSH
1215: LD_INT 3
1217: PPUSH
1218: CALL_OW 12
1222: ARRAY
1223: PPUSH
1224: LD_INT 0
1226: PPUSH
1227: CALL_OW 49
// comagressivemove ( [ hg1 , hg2 ] , 58 , 44 ) ;
1231: LD_EXP 8
1235: PUSH
1236: LD_EXP 9
1240: PUSH
1241: EMPTY
1242: LIST
1243: LIST
1244: PPUSH
1245: LD_INT 58
1247: PPUSH
1248: LD_INT 44
1250: PPUSH
1251: CALL_OW 114
// first = 1 ;
1255: LD_ADDR_EXP 10
1259: PUSH
1260: LD_INT 1
1262: ST_TO_ADDR
// end ;
1263: LD_VAR 0 1
1267: RET
// every 3 3$00 trigger attacks_enabled do
1268: LD_EXP 1
1272: IFFALSE 1286
1274: GO 1276
1276: DISABLE
// begin enable ;
1277: ENABLE
// arabwrog ;
1278: CALL 651 0 0
// arabwrog ;
1282: CALL 651 0 0
// end ;
1286: END
