// export You , You2 , Arabi , Arabi2 ; export mregistry1 , MD1 ; export mregistry2 , MD2 ; export mission_ended ; starting begin RandomizeAll ;
   0: CALL_OW 11
// Randomize ;
   4: CALL_OW 10
// debug_strings := [ ] ;
   8: LD_ADDR_OWVAR 48
  12: PUSH
  13: EMPTY
  14: ST_TO_ADDR
// cas = [ 0 , : , 0 ] ;
  15: LD_ADDR_EXP 59
  19: PUSH
  20: LD_INT 0
  22: PUSH
  23: LD_STRING :
  25: PUSH
  26: LD_INT 0
  28: PUSH
  29: EMPTY
  30: LIST
  31: LIST
  32: LIST
  33: ST_TO_ADDR
// InitUc ;
  34: CALL_OW 18
// InitHc ;
  38: CALL_OW 19
// InitVc ;
  42: CALL_OW 20
// mission_ended := false ;
  46: LD_ADDR_EXP 9
  50: PUSH
  51: LD_INT 0
  53: ST_TO_ADDR
// You := 1 ;
  54: LD_ADDR_EXP 1
  58: PUSH
  59: LD_INT 1
  61: ST_TO_ADDR
// You2 := 4 ;
  62: LD_ADDR_EXP 2
  66: PUSH
  67: LD_INT 4
  69: ST_TO_ADDR
// Arabi := 2 ;
  70: LD_ADDR_EXP 3
  74: PUSH
  75: LD_INT 2
  77: ST_TO_ADDR
// Arabi2 := 5 ;
  78: LD_ADDR_EXP 4
  82: PUSH
  83: LD_INT 5
  85: ST_TO_ADDR
// SetBName ( A1_dep , dammam ) ;
  86: LD_INT 4
  88: PPUSH
  89: LD_STRING dammam
  91: PPUSH
  92: CALL_OW 500
// SetBName ( A2_dep , jeddah ) ;
  96: LD_INT 46
  98: PPUSH
  99: LD_STRING jeddah
 101: PPUSH
 102: CALL_OW 500
// SetBName ( A3_dep , riyadh ) ;
 106: LD_INT 28
 108: PPUSH
 109: LD_STRING riyadh
 111: PPUSH
 112: CALL_OW 500
// disable ( 80 ) ;
 116: LD_INT 80
 118: DISABLE_MARKED
// SET_DIFFICULTY ;
 119: CALL 25308 0 0
// load_postavy ;
 123: CALL 1824 0 0
// dodej_skily ;
 127: CALL 8667 0 0
// mregistry1 = McRegistry ( Arabi , [ [ mc_reg_area_to_guard , MD1_guard ] , [ mc_reg_area_to_protect , MD1_protect ] , [ mc_reg_expire_stops_to_attack , 0 0$5 ] ] ) ;
 131: LD_ADDR_EXP 5
 135: PUSH
 136: LD_EXP 3
 140: PPUSH
 141: LD_INT 2
 143: PUSH
 144: LD_INT 27
 146: PUSH
 147: EMPTY
 148: LIST
 149: LIST
 150: PUSH
 151: LD_INT 3
 153: PUSH
 154: LD_INT 28
 156: PUSH
 157: EMPTY
 158: LIST
 159: LIST
 160: PUSH
 161: LD_INT 5
 163: PUSH
 164: LD_INT 175
 166: PUSH
 167: EMPTY
 168: LIST
 169: LIST
 170: PUSH
 171: EMPTY
 172: LIST
 173: LIST
 174: LIST
 175: PPUSH
 176: CALL_OW 399
 180: ST_TO_ADDR
// mregistry2 = McRegistry ( Arabi , [ [ mc_reg_area_to_guard , MD2_guard ] , [ mc_reg_area_to_protect , MD2_protect ] , [ mc_reg_expire_stops_to_attack , 0 0$5 ] ] ) ;
 181: LD_ADDR_EXP 7
 185: PUSH
 186: LD_EXP 3
 190: PPUSH
 191: LD_INT 2
 193: PUSH
 194: LD_INT 32
 196: PUSH
 197: EMPTY
 198: LIST
 199: LIST
 200: PUSH
 201: LD_INT 3
 203: PUSH
 204: LD_INT 33
 206: PUSH
 207: EMPTY
 208: LIST
 209: LIST
 210: PUSH
 211: LD_INT 5
 213: PUSH
 214: LD_INT 175
 216: PUSH
 217: EMPTY
 218: LIST
 219: LIST
 220: PUSH
 221: EMPTY
 222: LIST
 223: LIST
 224: LIST
 225: PPUSH
 226: CALL_OW 399
 230: ST_TO_ADDR
// MD1 = McDefend ( 2 , mregistry1 , [ A2_dep , A2_lab , A2_bar , A2_tov , A2_nau1 , A2_bu2 , A2_nau2 , MDopka1 , MDopka2 , A2_bu3 ] , [ [ mc_area_dont_leave , MD1_guard ] ] ) ;
 231: LD_ADDR_EXP 6
 235: PUSH
 236: LD_INT 2
 238: PPUSH
 239: LD_EXP 5
 243: PPUSH
 244: LD_INT 46
 246: PUSH
 247: LD_INT 61
 249: PUSH
 250: LD_INT 48
 252: PUSH
 253: LD_INT 50
 255: PUSH
 256: LD_INT 107
 258: PUSH
 259: LD_INT 63
 261: PUSH
 262: LD_INT 108
 264: PUSH
 265: LD_INT 117
 267: PUSH
 268: LD_INT 116
 270: PUSH
 271: LD_INT 47
 273: PUSH
 274: EMPTY
 275: LIST
 276: LIST
 277: LIST
 278: LIST
 279: LIST
 280: LIST
 281: LIST
 282: LIST
 283: LIST
 284: LIST
 285: PPUSH
 286: LD_INT 2
 288: PUSH
 289: LD_INT 27
 291: PUSH
 292: EMPTY
 293: LIST
 294: LIST
 295: PUSH
 296: EMPTY
 297: LIST
 298: PPUSH
 299: CALL_OW 401
 303: ST_TO_ADDR
// MD1 = McDefend ( 1 , mregistry2 , [ A2_dep , A2_lab , A2_bar , A2_tov , A2_nau1 , A2_bu3 , A2_bu6 , A2_bu5 , A2_nau2 , MDopka1 , MDopka2 ] , [ [ mc_area_dont_leave , MD2_guard ] ] ) ;
 304: LD_ADDR_EXP 6
 308: PUSH
 309: LD_INT 1
 311: PPUSH
 312: LD_EXP 7
 316: PPUSH
 317: LD_INT 46
 319: PUSH
 320: LD_INT 61
 322: PUSH
 323: LD_INT 48
 325: PUSH
 326: LD_INT 50
 328: PUSH
 329: LD_INT 107
 331: PUSH
 332: LD_INT 47
 334: PUSH
 335: LD_INT 59
 337: PUSH
 338: LD_INT 62
 340: PUSH
 341: LD_INT 108
 343: PUSH
 344: LD_INT 117
 346: PUSH
 347: LD_INT 116
 349: PUSH
 350: EMPTY
 351: LIST
 352: LIST
 353: LIST
 354: LIST
 355: LIST
 356: LIST
 357: LIST
 358: LIST
 359: LIST
 360: LIST
 361: LIST
 362: PPUSH
 363: LD_INT 2
 365: PUSH
 366: LD_INT 32
 368: PUSH
 369: EMPTY
 370: LIST
 371: LIST
 372: PUSH
 373: EMPTY
 374: LIST
 375: PPUSH
 376: CALL_OW 401
 380: ST_TO_ADDR
// A1_dobyta = false ;
 381: LD_ADDR_EXP 28
 385: PUSH
 386: LD_INT 0
 388: ST_TO_ADDR
// A2_dobyta = false ;
 389: LD_ADDR_EXP 29
 393: PUSH
 394: LD_INT 0
 396: ST_TO_ADDR
// A3_dobyta = false ;
 397: LD_ADDR_EXP 30
 401: PUSH
 402: LD_INT 0
 404: ST_TO_ADDR
// vojcli_base_2 ;
 405: CALL 9232 0 0
// vojcli_base_3 ;
 409: CALL 9930 0 0
// InGameOn ;
 413: CALL_OW 8
// Odebirani = false ;
 417: LD_ADDR_EXP 45
 421: PUSH
 422: LD_INT 0
 424: ST_TO_ADDR
// Pruzkumnik := false ;
 425: LD_ADDR_EXP 31
 429: PUSH
 430: LD_INT 0
 432: ST_TO_ADDR
// oposoldier := 0 ;
 433: LD_ADDR_EXP 46
 437: PUSH
 438: LD_INT 0
 440: ST_TO_ADDR
// choose_vojaky ;
 441: CALL 11209 0 0
// create_amici ;
 445: CALL 8074 0 0
// uklid_arabu ;
 449: CALL 17477 0 0
// create_ar_protiofenzivu ;
 453: CALL 8203 0 0
// create_arabske_utoky_behem_mise ;
 457: CALL 12612 0 0
// end ;
 461: END
// export function end_of_mission_time ; begin
 462: LD_INT 0
 464: PPUSH
// YouLost ( Command ) ;
 465: LD_STRING Command
 467: PPUSH
 468: CALL_OW 104
// end ;
 472: LD_VAR 0 1
 476: RET
// on UnitDestroyed ( un ) do begin if un = JMM then
 477: LD_VAR 0 1
 481: PUSH
 482: LD_EXP 32
 486: EQUAL
 487: IFFALSE 496
// YouLost ( JMM ) ;
 489: LD_STRING JMM
 491: PPUSH
 492: CALL_OW 104
// enable ;
 496: ENABLE
// end ;
 497: PPOPN 1
 499: END
// on EndTheMissionRaised ( void ) do begin konec_mise ;
 500: CALL 669 0 0
// end ;
 504: PPOPN 1
 506: END
// every 0 0$2 trigger not mission_ended and FilterAllUnits ( [ [ f_side , 2 ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) = 0 do var i , cargos ;
 507: LD_EXP 9
 511: NOT
 512: PUSH
 513: LD_INT 22
 515: PUSH
 516: LD_INT 2
 518: PUSH
 519: EMPTY
 520: LIST
 521: LIST
 522: PUSH
 523: LD_INT 2
 525: PUSH
 526: LD_INT 30
 528: PUSH
 529: LD_INT 0
 531: PUSH
 532: EMPTY
 533: LIST
 534: LIST
 535: PUSH
 536: LD_INT 30
 538: PUSH
 539: LD_INT 1
 541: PUSH
 542: EMPTY
 543: LIST
 544: LIST
 545: PUSH
 546: EMPTY
 547: LIST
 548: LIST
 549: LIST
 550: PUSH
 551: EMPTY
 552: LIST
 553: LIST
 554: PPUSH
 555: CALL_OW 69
 559: PUSH
 560: LD_INT 0
 562: EQUAL
 563: AND
 564: IFFALSE 666
 566: GO 568
 568: DISABLE
 569: LD_INT 0
 571: PPUSH
 572: PPUSH
// begin enable ;
 573: ENABLE
// cargos := FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_weapon , us_cargo_bay ] , [ f_weapon , ar_cargo_bay ] ] ] ) ;
 574: LD_ADDR_VAR 0 2
 578: PUSH
 579: LD_INT 22
 581: PUSH
 582: LD_EXP 1
 586: PUSH
 587: EMPTY
 588: LIST
 589: LIST
 590: PUSH
 591: LD_INT 2
 593: PUSH
 594: LD_INT 34
 596: PUSH
 597: LD_INT 12
 599: PUSH
 600: EMPTY
 601: LIST
 602: LIST
 603: PUSH
 604: LD_INT 34
 606: PUSH
 607: LD_INT 32
 609: PUSH
 610: EMPTY
 611: LIST
 612: LIST
 613: PUSH
 614: EMPTY
 615: LIST
 616: LIST
 617: LIST
 618: PUSH
 619: EMPTY
 620: LIST
 621: LIST
 622: PPUSH
 623: CALL_OW 69
 627: ST_TO_ADDR
// for i in cargos do
 628: LD_ADDR_VAR 0 1
 632: PUSH
 633: LD_VAR 0 2
 637: PUSH
 638: FOR_IN
 639: IFFALSE 664
// if GetCargo ( i , mat_artefact ) then
 641: LD_VAR 0 1
 645: PPUSH
 646: LD_INT 4
 648: PPUSH
 649: CALL_OW 289
 653: IFFALSE 662
// begin konec_mise ;
 655: CALL 669 0 0
// disable ;
 659: DISABLE
// break ;
 660: GO 664
// end ;
 662: GO 638
 664: POP
 665: POP
// end ;
 666: PPOPN 2
 668: END
// export function konec_mise ; var pommedaile ; var pomauta ; var i , pom , pom1 , pom2 ; var art ; var VIPka ; var all_units_1 , medal1 , medal2 , medal3 ; begin
 669: LD_INT 0
 671: PPUSH
 672: PPUSH
 673: PPUSH
 674: PPUSH
 675: PPUSH
 676: PPUSH
 677: PPUSH
 678: PPUSH
 679: PPUSH
 680: PPUSH
 681: PPUSH
 682: PPUSH
 683: PPUSH
// if mission_ended then
 684: LD_EXP 9
 688: IFFALSE 692
// exit ;
 690: GO 1819
// medal1 := false ;
 692: LD_ADDR_VAR 0 11
 696: PUSH
 697: LD_INT 0
 699: ST_TO_ADDR
// medal2 := false ;
 700: LD_ADDR_VAR 0 12
 704: PUSH
 705: LD_INT 0
 707: ST_TO_ADDR
// medal3 := false ;
 708: LD_ADDR_VAR 0 13
 712: PUSH
 713: LD_INT 0
 715: ST_TO_ADDR
// mission_ended := true ;
 716: LD_ADDR_EXP 9
 720: PUSH
 721: LD_INT 1
 723: ST_TO_ADDR
// DisableExclamations ;
 724: CALL_OW 474
// gained_medals := [ ] ;
 728: LD_ADDR_OWVAR 61
 732: PUSH
 733: EMPTY
 734: ST_TO_ADDR
// missing_medals := [ ] ;
 735: LD_ADDR_OWVAR 62
 739: PUSH
 740: EMPTY
 741: ST_TO_ADDR
// if Timecounter <= medaile1 [ difficulty ] then
 742: LD_EXP 58
 746: PUSH
 747: LD_EXP 56
 751: PUSH
 752: LD_OWVAR 67
 756: ARRAY
 757: LESSEQUAL
 758: IFFALSE 788
// begin AddMedal ( Time1 , 1 ) ;
 760: LD_STRING Time1
 762: PPUSH
 763: LD_INT 1
 765: PPUSH
 766: CALL_OW 101
// pommedaile = true ;
 770: LD_ADDR_VAR 0 2
 774: PUSH
 775: LD_INT 1
 777: ST_TO_ADDR
// medal1 := true ;
 778: LD_ADDR_VAR 0 11
 782: PUSH
 783: LD_INT 1
 785: ST_TO_ADDR
// end else
 786: GO 807
// begin AddMedal ( Time1 , - 1 ) ;
 788: LD_STRING Time1
 790: PPUSH
 791: LD_INT 1
 793: NEG
 794: PPUSH
 795: CALL_OW 101
// pommedaile = false ;
 799: LD_ADDR_VAR 0 2
 803: PUSH
 804: LD_INT 0
 806: ST_TO_ADDR
// end ; if Timecounter <= medaile2 [ difficulty ] then
 807: LD_EXP 58
 811: PUSH
 812: LD_EXP 57
 816: PUSH
 817: LD_OWVAR 67
 821: ARRAY
 822: LESSEQUAL
 823: IFFALSE 845
// begin AddMedal ( Time2 , 1 ) ;
 825: LD_STRING Time2
 827: PPUSH
 828: LD_INT 1
 830: PPUSH
 831: CALL_OW 101
// medal2 := true ;
 835: LD_ADDR_VAR 0 12
 839: PUSH
 840: LD_INT 1
 842: ST_TO_ADDR
// end else
 843: GO 875
// if pommedaile then
 845: LD_VAR 0 2
 849: IFFALSE 864
// AddMedal ( Time2 , - 1 ) else
 851: LD_STRING Time2
 853: PPUSH
 854: LD_INT 1
 856: NEG
 857: PPUSH
 858: CALL_OW 101
 862: GO 875
// AddMedal ( Time2 , - 2 ) ;
 864: LD_STRING Time2
 866: PPUSH
 867: LD_INT 2
 869: NEG
 870: PPUSH
 871: CALL_OW 101
// pomauta = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_weapon , us_cargo_bay ] , [ f_weapon , ar_cargo_bay ] ] ] ) ;
 875: LD_ADDR_VAR 0 3
 879: PUSH
 880: LD_INT 22
 882: PUSH
 883: LD_EXP 1
 887: PUSH
 888: EMPTY
 889: LIST
 890: LIST
 891: PUSH
 892: LD_INT 2
 894: PUSH
 895: LD_INT 34
 897: PUSH
 898: LD_INT 12
 900: PUSH
 901: EMPTY
 902: LIST
 903: LIST
 904: PUSH
 905: LD_INT 34
 907: PUSH
 908: LD_INT 32
 910: PUSH
 911: EMPTY
 912: LIST
 913: LIST
 914: PUSH
 915: EMPTY
 916: LIST
 917: LIST
 918: LIST
 919: PUSH
 920: EMPTY
 921: LIST
 922: LIST
 923: PPUSH
 924: CALL_OW 69
 928: ST_TO_ADDR
// art = false ;
 929: LD_ADDR_VAR 0 8
 933: PUSH
 934: LD_INT 0
 936: ST_TO_ADDR
// for i in pomauta do
 937: LD_ADDR_VAR 0 4
 941: PUSH
 942: LD_VAR 0 3
 946: PUSH
 947: FOR_IN
 948: IFFALSE 978
// if GetCargo ( i , mat_artefact ) > 0 then
 950: LD_VAR 0 4
 954: PPUSH
 955: LD_INT 4
 957: PPUSH
 958: CALL_OW 289
 962: PUSH
 963: LD_INT 0
 965: GREATER
 966: IFFALSE 976
// art = true ;
 968: LD_ADDR_VAR 0 8
 972: PUSH
 973: LD_INT 1
 975: ST_TO_ADDR
 976: GO 947
 978: POP
 979: POP
// if art then
 980: LD_VAR 0 8
 984: IFFALSE 1006
// begin medal3 := true ;
 986: LD_ADDR_VAR 0 13
 990: PUSH
 991: LD_INT 1
 993: ST_TO_ADDR
// AddMedal ( Artefact , 1 ) ;
 994: LD_STRING Artefact
 996: PPUSH
 997: LD_INT 1
 999: PPUSH
1000: CALL_OW 101
// end else
1004: GO 1017
// AddMedal ( Artefact , - 1 ) ;
1006: LD_STRING Artefact
1008: PPUSH
1009: LD_INT 1
1011: NEG
1012: PPUSH
1013: CALL_OW 101
// SA_EndMission ( 1 , 11 , medal1 , medal2 , medal3 ) ;
1017: LD_INT 1
1019: PPUSH
1020: LD_INT 11
1022: PPUSH
1023: LD_VAR 0 11
1027: PPUSH
1028: LD_VAR 0 12
1032: PPUSH
1033: LD_VAR 0 13
1037: PPUSH
1038: CALL 25800 0 5
// GiveMedals ( Main ) ;
1042: LD_STRING Main
1044: PPUSH
1045: CALL_OW 102
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
1049: LD_ADDR_VAR 0 5
1053: PUSH
1054: LD_INT 22
1056: PUSH
1057: LD_EXP 1
1061: PUSH
1062: EMPTY
1063: LIST
1064: LIST
1065: PUSH
1066: LD_INT 21
1068: PUSH
1069: LD_INT 1
1071: PUSH
1072: EMPTY
1073: LIST
1074: LIST
1075: PUSH
1076: EMPTY
1077: LIST
1078: LIST
1079: PPUSH
1080: CALL_OW 69
1084: ST_TO_ADDR
// for i in FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) do
1085: LD_ADDR_VAR 0 4
1089: PUSH
1090: LD_INT 22
1092: PUSH
1093: LD_EXP 1
1097: PUSH
1098: EMPTY
1099: LIST
1100: LIST
1101: PUSH
1102: LD_INT 21
1104: PUSH
1105: LD_INT 2
1107: PUSH
1108: EMPTY
1109: LIST
1110: LIST
1111: PUSH
1112: EMPTY
1113: LIST
1114: LIST
1115: PPUSH
1116: CALL_OW 69
1120: PUSH
1121: FOR_IN
1122: IFFALSE 1170
// begin pom1 = IsDrivenBy ( i ) ;
1124: LD_ADDR_VAR 0 6
1128: PUSH
1129: LD_VAR 0 4
1133: PPUSH
1134: CALL_OW 311
1138: ST_TO_ADDR
// if not ( pom1 in pom ) then
1139: LD_VAR 0 6
1143: PUSH
1144: LD_VAR 0 5
1148: IN
1149: NOT
1150: IFFALSE 1168
// pom = pom ^ pom1 ;
1152: LD_ADDR_VAR 0 5
1156: PUSH
1157: LD_VAR 0 5
1161: PUSH
1162: LD_VAR 0 6
1166: ADD
1167: ST_TO_ADDR
// end ;
1168: GO 1121
1170: POP
1171: POP
// all_units_1 = pom ;
1172: LD_ADDR_VAR 0 10
1176: PUSH
1177: LD_VAR 0 5
1181: ST_TO_ADDR
// all_units_1 = all_units_1 diff UnitFilter ( all_units_1 , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] ] ) ;
1182: LD_ADDR_VAR 0 10
1186: PUSH
1187: LD_VAR 0 10
1191: PUSH
1192: LD_VAR 0 10
1196: PPUSH
1197: LD_INT 2
1199: PUSH
1200: LD_INT 25
1202: PUSH
1203: LD_INT 12
1205: PUSH
1206: EMPTY
1207: LIST
1208: LIST
1209: PUSH
1210: LD_INT 25
1212: PUSH
1213: LD_INT 16
1215: PUSH
1216: EMPTY
1217: LIST
1218: LIST
1219: PUSH
1220: EMPTY
1221: LIST
1222: LIST
1223: LIST
1224: PPUSH
1225: CALL_OW 72
1229: DIFF
1230: ST_TO_ADDR
// RewardPeople ( all_units_1 ) ;
1231: LD_VAR 0 10
1235: PPUSH
1236: CALL_OW 43
// VIPka = [ JMM , Frank , Powell , Gary , Bobby , Yamoko , Cyrus , Cornel , Lisa , Don , Brown ] ;
1240: LD_ADDR_VAR 0 9
1244: PUSH
1245: LD_EXP 32
1249: PUSH
1250: LD_EXP 36
1254: PUSH
1255: LD_EXP 33
1259: PUSH
1260: LD_EXP 34
1264: PUSH
1265: LD_EXP 35
1269: PUSH
1270: LD_EXP 39
1274: PUSH
1275: LD_EXP 40
1279: PUSH
1280: LD_EXP 38
1284: PUSH
1285: LD_EXP 37
1289: PUSH
1290: LD_EXP 41
1294: PUSH
1295: LD_EXP 42
1299: PUSH
1300: EMPTY
1301: LIST
1302: LIST
1303: LIST
1304: LIST
1305: LIST
1306: LIST
1307: LIST
1308: LIST
1309: LIST
1310: LIST
1311: LIST
1312: ST_TO_ADDR
// SaveCharacters ( JMM , JMM ) ;
1313: LD_EXP 32
1317: PPUSH
1318: LD_STRING JMM
1320: PPUSH
1321: CALL_OW 38
// SaveCharacters ( Cyrus , Cyrus ) ;
1325: LD_EXP 40
1329: PPUSH
1330: LD_STRING Cyrus
1332: PPUSH
1333: CALL_OW 38
// if Cyrus in Amici_enter then
1337: LD_EXP 40
1341: PUSH
1342: LD_EXP 43
1346: IN
1347: IFFALSE 1361
// SaveVariable ( 6 , CyrusLoc ) else
1349: LD_INT 6
1351: PPUSH
1352: LD_STRING CyrusLoc
1354: PPUSH
1355: CALL_OW 39
1359: GO 1371
// SaveVariable ( 7 , CyrusLoc ) ;
1361: LD_INT 7
1363: PPUSH
1364: LD_STRING CyrusLoc
1366: PPUSH
1367: CALL_OW 39
// SaveCharacters ( Gary , Gary ) ;
1371: LD_EXP 34
1375: PPUSH
1376: LD_STRING Gary
1378: PPUSH
1379: CALL_OW 38
// if Gary in Amici_enter then
1383: LD_EXP 34
1387: PUSH
1388: LD_EXP 43
1392: IN
1393: IFFALSE 1407
// SaveVariable ( 6 , GaryLoc ) else
1395: LD_INT 6
1397: PPUSH
1398: LD_STRING GaryLoc
1400: PPUSH
1401: CALL_OW 39
1405: GO 1417
// SaveVariable ( 7 , GaryLoc ) ;
1407: LD_INT 7
1409: PPUSH
1410: LD_STRING GaryLoc
1412: PPUSH
1413: CALL_OW 39
// SaveCharacters ( Cornel , Cornell ) ;
1417: LD_EXP 38
1421: PPUSH
1422: LD_STRING Cornell
1424: PPUSH
1425: CALL_OW 38
// if Cornel in Amici_enter then
1429: LD_EXP 38
1433: PUSH
1434: LD_EXP 43
1438: IN
1439: IFFALSE 1453
// SaveVariable ( 6 , CornellLoc ) else
1441: LD_INT 6
1443: PPUSH
1444: LD_STRING CornellLoc
1446: PPUSH
1447: CALL_OW 39
1451: GO 1463
// SaveVariable ( 7 , CornellLoc ) ;
1453: LD_INT 7
1455: PPUSH
1456: LD_STRING CornellLoc
1458: PPUSH
1459: CALL_OW 39
// SaveCharacters ( Frank , Frank ) ;
1463: LD_EXP 36
1467: PPUSH
1468: LD_STRING Frank
1470: PPUSH
1471: CALL_OW 38
// if Frank in Amici_enter then
1475: LD_EXP 36
1479: PUSH
1480: LD_EXP 43
1484: IN
1485: IFFALSE 1499
// SaveVariable ( 6 , FrankLoc ) else
1487: LD_INT 6
1489: PPUSH
1490: LD_STRING FrankLoc
1492: PPUSH
1493: CALL_OW 39
1497: GO 1509
// SaveVariable ( 7 , FrankLoc ) ;
1499: LD_INT 7
1501: PPUSH
1502: LD_STRING FrankLoc
1504: PPUSH
1505: CALL_OW 39
// SaveCharacters ( Bobby , Bobby ) ;
1509: LD_EXP 35
1513: PPUSH
1514: LD_STRING Bobby
1516: PPUSH
1517: CALL_OW 38
// if Bobby in Amici_enter then
1521: LD_EXP 35
1525: PUSH
1526: LD_EXP 43
1530: IN
1531: IFFALSE 1545
// SaveVariable ( 6 , BobbyLoc ) else
1533: LD_INT 6
1535: PPUSH
1536: LD_STRING BobbyLoc
1538: PPUSH
1539: CALL_OW 39
1543: GO 1555
// SaveVariable ( 7 , BobbyLoc ) ;
1545: LD_INT 7
1547: PPUSH
1548: LD_STRING BobbyLoc
1550: PPUSH
1551: CALL_OW 39
// SaveCharacters ( Yamoko , Yamoko ) ;
1555: LD_EXP 39
1559: PPUSH
1560: LD_STRING Yamoko
1562: PPUSH
1563: CALL_OW 38
// if Yamoko in Amici_enter then
1567: LD_EXP 39
1571: PUSH
1572: LD_EXP 43
1576: IN
1577: IFFALSE 1591
// SaveVariable ( 6 , YamokoLoc ) else
1579: LD_INT 6
1581: PPUSH
1582: LD_STRING YamokoLoc
1584: PPUSH
1585: CALL_OW 39
1589: GO 1601
// SaveVariable ( 7 , YamokoLoc ) ;
1591: LD_INT 7
1593: PPUSH
1594: LD_STRING YamokoLoc
1596: PPUSH
1597: CALL_OW 39
// SaveCharacters ( Don , Donaldson ) ;
1601: LD_EXP 41
1605: PPUSH
1606: LD_STRING Donaldson
1608: PPUSH
1609: CALL_OW 38
// if Don in Amici_enter then
1613: LD_EXP 41
1617: PUSH
1618: LD_EXP 43
1622: IN
1623: IFFALSE 1637
// SaveVariable ( 6 , DonaldsonLoc ) else
1625: LD_INT 6
1627: PPUSH
1628: LD_STRING DonaldsonLoc
1630: PPUSH
1631: CALL_OW 39
1635: GO 1647
// SaveVariable ( 7 , DonaldsonLoc ) ;
1637: LD_INT 7
1639: PPUSH
1640: LD_STRING DonaldsonLoc
1642: PPUSH
1643: CALL_OW 39
// SaveCharacters ( Brown , Brown ) ;
1647: LD_EXP 42
1651: PPUSH
1652: LD_STRING Brown
1654: PPUSH
1655: CALL_OW 38
// if Brown in Amici_enter then
1659: LD_EXP 42
1663: PUSH
1664: LD_EXP 43
1668: IN
1669: IFFALSE 1683
// SaveVariable ( 6 , BrownLoc ) else
1671: LD_INT 6
1673: PPUSH
1674: LD_STRING BrownLoc
1676: PPUSH
1677: CALL_OW 39
1681: GO 1693
// SaveVariable ( 7 , BrownLoc ) ;
1683: LD_INT 7
1685: PPUSH
1686: LD_STRING BrownLoc
1688: PPUSH
1689: CALL_OW 39
// SaveCharacters ( Lisa , Lisa ) ;
1693: LD_EXP 37
1697: PPUSH
1698: LD_STRING Lisa
1700: PPUSH
1701: CALL_OW 38
// if Lisa in Amici_enter then
1705: LD_EXP 37
1709: PUSH
1710: LD_EXP 43
1714: IN
1715: IFFALSE 1729
// SaveVariable ( 6 , LisaLoc ) else
1717: LD_INT 6
1719: PPUSH
1720: LD_STRING LisaLoc
1722: PPUSH
1723: CALL_OW 39
1727: GO 1739
// SaveVariable ( 7 , LiasLoc ) ;
1729: LD_INT 7
1731: PPUSH
1732: LD_STRING LiasLoc
1734: PPUSH
1735: CALL_OW 39
// pom1 = lidi_other diff Amici_enter ;
1739: LD_ADDR_VAR 0 6
1743: PUSH
1744: LD_EXP 52
1748: PUSH
1749: LD_EXP 43
1753: DIFF
1754: ST_TO_ADDR
// pom2 = all_units_1 diff VIPka ;
1755: LD_ADDR_VAR 0 7
1759: PUSH
1760: LD_VAR 0 10
1764: PUSH
1765: LD_VAR 0 9
1769: DIFF
1770: ST_TO_ADDR
// DeleteCharacters ( other_survivors ) ;
1771: LD_STRING other_survivors
1773: PPUSH
1774: CALL_OW 40
// DeleteCharacters ( otherGamma2 ) ;
1778: LD_STRING otherGamma2
1780: PPUSH
1781: CALL_OW 40
// SaveCharacters ( pom1 , otherNotJMM ) ;
1785: LD_VAR 0 6
1789: PPUSH
1790: LD_STRING otherNotJMM
1792: PPUSH
1793: CALL_OW 38
// SaveCharacters ( pom2 , otherWithJMM ) ;
1797: LD_VAR 0 7
1801: PPUSH
1802: LD_STRING otherWithJMM
1804: PPUSH
1805: CALL_OW 38
// YouWin ;
1809: CALL_OW 103
// EnableExclamations ;
1813: CALL_OW 473
// exit ;
1817: GO 1819
// end ;
1819: LD_VAR 0 1
1823: RET
// function load_postavy ; var pom ; begin
1824: LD_INT 0
1826: PPUSH
1827: PPUSH
// JMM = nacti_osobu ( JMM ) ;
1828: LD_ADDR_EXP 32
1832: PUSH
1833: LD_STRING JMM
1835: PPUSH
1836: CALL 8030 0 1
1840: ST_TO_ADDR
// Powell = NewCharacter ( Powell ) ;
1841: LD_ADDR_EXP 33
1845: PUSH
1846: LD_STRING Powell
1848: PPUSH
1849: CALL_OW 25
1853: ST_TO_ADDR
// Gary = nacti_osobu ( Gary ) ;
1854: LD_ADDR_EXP 34
1858: PUSH
1859: LD_STRING Gary
1861: PPUSH
1862: CALL 8030 0 1
1866: ST_TO_ADDR
// Lisa = nacti_osobu ( Lisa ) ;
1867: LD_ADDR_EXP 37
1871: PUSH
1872: LD_STRING Lisa
1874: PPUSH
1875: CALL 8030 0 1
1879: ST_TO_ADDR
// Yamoko = nacti_osobu ( Yamoko ) ;
1880: LD_ADDR_EXP 39
1884: PUSH
1885: LD_STRING Yamoko
1887: PPUSH
1888: CALL 8030 0 1
1892: ST_TO_ADDR
// Frank = nacti_osobu ( Frank ) ;
1893: LD_ADDR_EXP 36
1897: PUSH
1898: LD_STRING Frank
1900: PPUSH
1901: CALL 8030 0 1
1905: ST_TO_ADDR
// Cornel = nacti_osobu ( Cornell ) ;
1906: LD_ADDR_EXP 38
1910: PUSH
1911: LD_STRING Cornell
1913: PPUSH
1914: CALL 8030 0 1
1918: ST_TO_ADDR
// Bobby = nacti_osobu ( Bobby ) ;
1919: LD_ADDR_EXP 35
1923: PUSH
1924: LD_STRING Bobby
1926: PPUSH
1927: CALL 8030 0 1
1931: ST_TO_ADDR
// Cyrus = nacti_osobu ( Cyrus ) ;
1932: LD_ADDR_EXP 40
1936: PUSH
1937: LD_STRING Cyrus
1939: PPUSH
1940: CALL 8030 0 1
1944: ST_TO_ADDR
// Don = nacti_osobu ( Donaldson ) ;
1945: LD_ADDR_EXP 41
1949: PUSH
1950: LD_STRING Donaldson
1952: PPUSH
1953: CALL 8030 0 1
1957: ST_TO_ADDR
// Brown = nacti_osobu ( Brown ) ;
1958: LD_ADDR_EXP 42
1962: PUSH
1963: LD_STRING Brown
1965: PPUSH
1966: CALL 8030 0 1
1970: ST_TO_ADDR
// GARYL = LoadVariable ( GaryLoc , 6 ) ;
1971: LD_ADDR_EXP 19
1975: PUSH
1976: LD_STRING GaryLoc
1978: PPUSH
1979: LD_INT 6
1981: PPUSH
1982: CALL_OW 30
1986: ST_TO_ADDR
// LISAL = LoadVariable ( LisaLoc , 6 ) ;
1987: LD_ADDR_EXP 20
1991: PUSH
1992: LD_STRING LisaLoc
1994: PPUSH
1995: LD_INT 6
1997: PPUSH
1998: CALL_OW 30
2002: ST_TO_ADDR
// YAML = LoadVariable ( YamokoLoc , 6 ) ;
2003: LD_ADDR_EXP 21
2007: PUSH
2008: LD_STRING YamokoLoc
2010: PPUSH
2011: LD_INT 6
2013: PPUSH
2014: CALL_OW 30
2018: ST_TO_ADDR
// FRANKL = LoadVariable ( FrankLoc , 6 ) ;
2019: LD_ADDR_EXP 22
2023: PUSH
2024: LD_STRING FrankLoc
2026: PPUSH
2027: LD_INT 6
2029: PPUSH
2030: CALL_OW 30
2034: ST_TO_ADDR
// CORNELL = LoadVariable ( CornellLoc , 6 ) ;
2035: LD_ADDR_EXP 23
2039: PUSH
2040: LD_STRING CornellLoc
2042: PPUSH
2043: LD_INT 6
2045: PPUSH
2046: CALL_OW 30
2050: ST_TO_ADDR
// BOBL = LoadVariable ( BobbyLoc , 6 ) ;
2051: LD_ADDR_EXP 24
2055: PUSH
2056: LD_STRING BobbyLoc
2058: PPUSH
2059: LD_INT 6
2061: PPUSH
2062: CALL_OW 30
2066: ST_TO_ADDR
// CYRL = LoadVariable ( CyrusLoc , 6 ) ;
2067: LD_ADDR_EXP 25
2071: PUSH
2072: LD_STRING CyrusLoc
2074: PPUSH
2075: LD_INT 6
2077: PPUSH
2078: CALL_OW 30
2082: ST_TO_ADDR
// DONL = LoadVariable ( DonaldsonLoc , 6 ) ;
2083: LD_ADDR_EXP 26
2087: PUSH
2088: LD_STRING DonaldsonLoc
2090: PPUSH
2091: LD_INT 6
2093: PPUSH
2094: CALL_OW 30
2098: ST_TO_ADDR
// BROWNL = LoadVariable ( BrownLoc , 6 ) ;
2099: LD_ADDR_EXP 27
2103: PUSH
2104: LD_STRING BrownLoc
2106: PPUSH
2107: LD_INT 6
2109: PPUSH
2110: CALL_OW 30
2114: ST_TO_ADDR
// if CheckCharacterSet ( otherWithJMM ) then
2115: LD_STRING otherWithJMM
2117: PPUSH
2118: CALL_OW 29
2122: IFFALSE 2139
// lidi_other = CreateCharacterSet ( otherWithJMM ) else
2124: LD_ADDR_EXP 52
2128: PUSH
2129: LD_STRING otherWithJMM
2131: PPUSH
2132: CALL_OW 31
2136: ST_TO_ADDR
2137: GO 2146
// lidi_other = [ ] ;
2139: LD_ADDR_EXP 52
2143: PUSH
2144: EMPTY
2145: ST_TO_ADDR
// if CheckCharacterSet ( other_survivors ) then
2146: LD_STRING other_survivors
2148: PPUSH
2149: CALL_OW 29
2153: IFFALSE 2170
// pom = CreateCharacterSet ( other_survivors ) else
2155: LD_ADDR_VAR 0 2
2159: PUSH
2160: LD_STRING other_survivors
2162: PPUSH
2163: CALL_OW 31
2167: ST_TO_ADDR
2168: GO 2177
// pom = [ ] ;
2170: LD_ADDR_VAR 0 2
2174: PUSH
2175: EMPTY
2176: ST_TO_ADDR
// lidi_other = lidi_other ^ pom ;
2177: LD_ADDR_EXP 52
2181: PUSH
2182: LD_EXP 52
2186: PUSH
2187: LD_VAR 0 2
2191: ADD
2192: ST_TO_ADDR
// if CheckCharacterSet ( otherNotJMM ) then
2193: LD_STRING otherNotJMM
2195: PPUSH
2196: CALL_OW 29
2200: IFFALSE 2217
// pom = CreateCharacterSet ( otherNotJMM ) else
2202: LD_ADDR_VAR 0 2
2206: PUSH
2207: LD_STRING otherNotJMM
2209: PPUSH
2210: CALL_OW 31
2214: ST_TO_ADDR
2215: GO 2224
// pom = [ ] ;
2217: LD_ADDR_VAR 0 2
2221: PUSH
2222: EMPTY
2223: ST_TO_ADDR
// lidi_other = lidi_other ^ pom ;
2224: LD_ADDR_EXP 52
2228: PUSH
2229: LD_EXP 52
2233: PUSH
2234: LD_VAR 0 2
2238: ADD
2239: ST_TO_ADDR
// if CheckCharacterSet ( otherGamma2 ) then
2240: LD_STRING otherGamma2
2242: PPUSH
2243: CALL_OW 29
2247: IFFALSE 2264
// pom = CreateCharacterSet ( otherGamma2 ) else
2249: LD_ADDR_VAR 0 2
2253: PUSH
2254: LD_STRING otherGamma2
2256: PPUSH
2257: CALL_OW 31
2261: ST_TO_ADDR
2262: GO 2271
// pom = [ ] ;
2264: LD_ADDR_VAR 0 2
2268: PUSH
2269: EMPTY
2270: ST_TO_ADDR
// lidi_other = lidi_other ^ pom ;
2271: LD_ADDR_EXP 52
2275: PUSH
2276: LD_EXP 52
2280: PUSH
2281: LD_VAR 0 2
2285: ADD
2286: ST_TO_ADDR
// end ; end_of_file
2287: LD_VAR 0 1
2291: RET
// var i , pom , pom1 , pom2 , pom3 , pom4 ; var kecy ; var KAMI ; var disable_kecy_5D ; every 0 0$0.1 do
2292: GO 2294
2294: DISABLE
// begin for i := 1 to 2 do
2295: LD_ADDR_LOC 1
2299: PUSH
2300: DOUBLE
2301: LD_INT 1
2303: DEC
2304: ST_TO_ADDR
2305: LD_INT 2
2307: PUSH
2308: FOR_TO
2309: IFFALSE 2318
// disable ( i ) ;
2311: LD_LOC 1
2315: DISABLE_MARKED
2316: GO 2308
2318: POP
2319: POP
// kecy := false ;
2320: LD_ADDR_LOC 7
2324: PUSH
2325: LD_INT 0
2327: ST_TO_ADDR
// KAMI = false ;
2328: LD_ADDR_LOC 8
2332: PUSH
2333: LD_INT 0
2335: ST_TO_ADDR
// disable_kecy_5D = false ;
2336: LD_ADDR_LOC 9
2340: PUSH
2341: LD_INT 0
2343: ST_TO_ADDR
// end ;
2344: END
// export function chmo1 ; begin
2345: LD_INT 0
2347: PPUSH
// CenterOnXY ( 86 , 145 ) ;
2348: LD_INT 86
2350: PPUSH
2351: LD_INT 145
2353: PPUSH
2354: CALL_OW 84
// SetAttitude ( You , Arabi , att_enemy , true ) ;
2358: LD_EXP 1
2362: PPUSH
2363: LD_EXP 3
2367: PPUSH
2368: LD_INT 2
2370: PPUSH
2371: LD_INT 1
2373: PPUSH
2374: CALL_OW 80
// SetAttitude ( Arabi , You , att_enemy , true ) ;
2378: LD_EXP 3
2382: PPUSH
2383: LD_EXP 1
2387: PPUSH
2388: LD_INT 2
2390: PPUSH
2391: LD_INT 1
2393: PPUSH
2394: CALL_OW 80
// SaveForQuickRestart ;
2398: CALL_OW 22
// wait ( 0 0$0.5 ) ;
2402: LD_INT 18
2404: PPUSH
2405: CALL_OW 67
// InGameOff ;
2409: CALL_OW 9
// ChangeMissionObjectives ( M1 ) ;
2413: LD_STRING M1
2415: PPUSH
2416: CALL_OW 337
// end ;
2420: LD_VAR 0 1
2424: RET
// every 0 0$3 trigger GetSide ( A1_dep ) = You or IsDead ( A1_dep ) do var pom1 ;
2425: LD_INT 4
2427: PPUSH
2428: CALL_OW 255
2432: PUSH
2433: LD_EXP 1
2437: EQUAL
2438: PUSH
2439: LD_INT 4
2441: PPUSH
2442: CALL_OW 301
2446: OR
2447: IFFALSE 3032
2449: GO 2451
2451: DISABLE
2452: LD_INT 0
2454: PPUSH
// begin A1_dobyta = true ;
2455: LD_ADDR_EXP 28
2459: PUSH
2460: LD_INT 1
2462: ST_TO_ADDR
// DialogueOn ;
2463: CALL_OW 6
// SayRadio ( Jmm , D2-JMM-1 ) ;
2467: LD_EXP 32
2471: PPUSH
2472: LD_STRING D2-JMM-1
2474: PPUSH
2475: CALL_OW 94
// SayRadio ( Powell , D2-Pow-1 ) ;
2479: LD_EXP 33
2483: PPUSH
2484: LD_STRING D2-Pow-1
2486: PPUSH
2487: CALL_OW 94
// SayRadio ( JMM , D2-JMM-2 ) ;
2491: LD_EXP 32
2495: PPUSH
2496: LD_STRING D2-JMM-2
2498: PPUSH
2499: CALL_OW 94
// SayRadio ( Powell , D2-Pow-2 ) ;
2503: LD_EXP 33
2507: PPUSH
2508: LD_STRING D2-Pow-2
2510: PPUSH
2511: CALL_OW 94
// SayRadio ( JMM , D2-JMM-3 ) ;
2515: LD_EXP 32
2519: PPUSH
2520: LD_STRING D2-JMM-3
2522: PPUSH
2523: CALL_OW 94
// DialogueOff ;
2527: CALL_OW 7
// ChangeMissionObjectives ( M2 ) ;
2531: LD_STRING M2
2533: PPUSH
2534: CALL_OW 337
// Hint ( CapturedBase ) ;
2538: LD_STRING CapturedBase
2540: PPUSH
2541: CALL_OW 339
// pom = [ ] ;
2545: LD_ADDR_LOC 2
2549: PUSH
2550: EMPTY
2551: ST_TO_ADDR
// for i in [ Gary , Bobby , Frank , Lisa , Cornel , Cyrus , Don , Brown ] do
2552: LD_ADDR_LOC 1
2556: PUSH
2557: LD_EXP 34
2561: PUSH
2562: LD_EXP 35
2566: PUSH
2567: LD_EXP 36
2571: PUSH
2572: LD_EXP 37
2576: PUSH
2577: LD_EXP 38
2581: PUSH
2582: LD_EXP 40
2586: PUSH
2587: LD_EXP 41
2591: PUSH
2592: LD_EXP 42
2596: PUSH
2597: EMPTY
2598: LIST
2599: LIST
2600: LIST
2601: LIST
2602: LIST
2603: LIST
2604: LIST
2605: LIST
2606: PUSH
2607: FOR_IN
2608: IFFALSE 2639
// if IsOK ( i ) then
2610: LD_LOC 1
2614: PPUSH
2615: CALL_OW 302
2619: IFFALSE 2637
// pom = pom ^ i ;
2621: LD_ADDR_LOC 2
2625: PUSH
2626: LD_LOC 2
2630: PUSH
2631: LD_LOC 1
2635: ADD
2636: ST_TO_ADDR
2637: GO 2607
2639: POP
2640: POP
// if pom > 3 then
2641: LD_LOC 2
2645: PUSH
2646: LD_INT 3
2648: GREATER
2649: IFFALSE 2799
// begin pom1 = pom [ Rand ( 1 , pom + 0 ) ] ;
2651: LD_ADDR_VAR 0 1
2655: PUSH
2656: LD_LOC 2
2660: PUSH
2661: LD_INT 1
2663: PPUSH
2664: LD_LOC 2
2668: PUSH
2669: LD_INT 0
2671: PLUS
2672: PPUSH
2673: CALL_OW 12
2677: ARRAY
2678: ST_TO_ADDR
// pom = pom diff pom1 [ 1 ] ;
2679: LD_ADDR_LOC 2
2683: PUSH
2684: LD_LOC 2
2688: PUSH
2689: LD_VAR 0 1
2693: PUSH
2694: LD_INT 1
2696: ARRAY
2697: DIFF
2698: ST_TO_ADDR
// pom1 = pom1 ^ pom [ Rand ( 1 , pom + 0 ) ] ;
2699: LD_ADDR_VAR 0 1
2703: PUSH
2704: LD_VAR 0 1
2708: PUSH
2709: LD_LOC 2
2713: PUSH
2714: LD_INT 1
2716: PPUSH
2717: LD_LOC 2
2721: PUSH
2722: LD_INT 0
2724: PLUS
2725: PPUSH
2726: CALL_OW 12
2730: ARRAY
2731: ADD
2732: ST_TO_ADDR
// pom = pom diff pom1 [ 2 ] ;
2733: LD_ADDR_LOC 2
2737: PUSH
2738: LD_LOC 2
2742: PUSH
2743: LD_VAR 0 1
2747: PUSH
2748: LD_INT 2
2750: ARRAY
2751: DIFF
2752: ST_TO_ADDR
// pom1 = pom1 ^ pom [ Rand ( 1 , pom + 0 ) ] ;
2753: LD_ADDR_VAR 0 1
2757: PUSH
2758: LD_VAR 0 1
2762: PUSH
2763: LD_LOC 2
2767: PUSH
2768: LD_INT 1
2770: PPUSH
2771: LD_LOC 2
2775: PUSH
2776: LD_INT 0
2778: PLUS
2779: PPUSH
2780: CALL_OW 12
2784: ARRAY
2785: ADD
2786: ST_TO_ADDR
// pom = pom1 ;
2787: LD_ADDR_LOC 2
2791: PUSH
2792: LD_VAR 0 1
2796: ST_TO_ADDR
// end else
2797: GO 2809
// pom1 = pom ;
2799: LD_ADDR_VAR 0 1
2803: PUSH
2804: LD_LOC 2
2808: ST_TO_ADDR
// for i in pom1 do
2809: LD_ADDR_LOC 1
2813: PUSH
2814: LD_VAR 0 1
2818: PUSH
2819: FOR_IN
2820: IFFALSE 3030
// case i of Gary :
2822: LD_LOC 1
2826: PUSH
2827: LD_EXP 34
2831: DOUBLE
2832: EQUAL
2833: IFTRUE 2837
2835: GO 2852
2837: POP
// Say ( Gary , D2a-Gary-1 ) ; Bobby :
2838: LD_EXP 34
2842: PPUSH
2843: LD_STRING D2a-Gary-1
2845: PPUSH
2846: CALL_OW 88
2850: GO 3028
2852: LD_EXP 35
2856: DOUBLE
2857: EQUAL
2858: IFTRUE 2862
2860: GO 2877
2862: POP
// Say ( Bobby , D2a-Bobby-1 ) ; Frank :
2863: LD_EXP 35
2867: PPUSH
2868: LD_STRING D2a-Bobby-1
2870: PPUSH
2871: CALL_OW 88
2875: GO 3028
2877: LD_EXP 36
2881: DOUBLE
2882: EQUAL
2883: IFTRUE 2887
2885: GO 2902
2887: POP
// Say ( Frank , D2a-Frank-1 ) ; Lisa :
2888: LD_EXP 36
2892: PPUSH
2893: LD_STRING D2a-Frank-1
2895: PPUSH
2896: CALL_OW 88
2900: GO 3028
2902: LD_EXP 37
2906: DOUBLE
2907: EQUAL
2908: IFTRUE 2912
2910: GO 2927
2912: POP
// Say ( Lisa , D2a-Lisa-1 ) ; Cornel :
2913: LD_EXP 37
2917: PPUSH
2918: LD_STRING D2a-Lisa-1
2920: PPUSH
2921: CALL_OW 88
2925: GO 3028
2927: LD_EXP 38
2931: DOUBLE
2932: EQUAL
2933: IFTRUE 2937
2935: GO 2952
2937: POP
// Say ( Cornel , D2a-Corn-1 ) ; Cyrus :
2938: LD_EXP 38
2942: PPUSH
2943: LD_STRING D2a-Corn-1
2945: PPUSH
2946: CALL_OW 88
2950: GO 3028
2952: LD_EXP 40
2956: DOUBLE
2957: EQUAL
2958: IFTRUE 2962
2960: GO 2977
2962: POP
// Say ( Cyrus , D2a-Cyrus-1 ) ; Don :
2963: LD_EXP 40
2967: PPUSH
2968: LD_STRING D2a-Cyrus-1
2970: PPUSH
2971: CALL_OW 88
2975: GO 3028
2977: LD_EXP 41
2981: DOUBLE
2982: EQUAL
2983: IFTRUE 2987
2985: GO 3002
2987: POP
// Say ( Don , D2a-Don-1 ) ; Brown :
2988: LD_EXP 41
2992: PPUSH
2993: LD_STRING D2a-Don-1
2995: PPUSH
2996: CALL_OW 88
3000: GO 3028
3002: LD_EXP 42
3006: DOUBLE
3007: EQUAL
3008: IFTRUE 3012
3010: GO 3027
3012: POP
// Say ( Brown , D2a-Brown-1 ) ; end ;
3013: LD_EXP 42
3017: PPUSH
3018: LD_STRING D2a-Brown-1
3020: PPUSH
3021: CALL_OW 88
3025: GO 3028
3027: POP
3028: GO 2819
3030: POP
3031: POP
// end ;
3032: PPOPN 1
3034: END
// export function dialog_frank ; var res ; begin
3035: LD_INT 0
3037: PPUSH
3038: PPUSH
// Say ( Frank , D3F-Frank-1 ) ;
3039: LD_EXP 36
3043: PPUSH
3044: LD_STRING D3F-Frank-1
3046: PPUSH
3047: CALL_OW 88
// Say ( JMM , D3F-JMM-1 ) ;
3051: LD_EXP 32
3055: PPUSH
3056: LD_STRING D3F-JMM-1
3058: PPUSH
3059: CALL_OW 88
// Say ( Frank , D3F-Frank-2 ) ;
3063: LD_EXP 36
3067: PPUSH
3068: LD_STRING D3F-Frank-2
3070: PPUSH
3071: CALL_OW 88
// res := Query ( QFrank ) ;
3075: LD_ADDR_VAR 0 2
3079: PUSH
3080: LD_STRING QFrank
3082: PPUSH
3083: CALL_OW 97
3087: ST_TO_ADDR
// case res of 1 :
3088: LD_VAR 0 2
3092: PUSH
3093: LD_INT 1
3095: DOUBLE
3096: EQUAL
3097: IFTRUE 3101
3099: GO 3124
3101: POP
// begin Say ( JMM , D3Fa-JMM-1 ) ;
3102: LD_EXP 32
3106: PPUSH
3107: LD_STRING D3Fa-JMM-1
3109: PPUSH
3110: CALL_OW 88
// result := 1 ;
3114: LD_ADDR_VAR 0 1
3118: PUSH
3119: LD_INT 1
3121: ST_TO_ADDR
// end ; 2 :
3122: GO 3280
3124: LD_INT 2
3126: DOUBLE
3127: EQUAL
3128: IFTRUE 3132
3130: GO 3248
3132: POP
// begin Say ( JMM , D3Fb-JMM-1 ) ;
3133: LD_EXP 32
3137: PPUSH
3138: LD_STRING D3Fb-JMM-1
3140: PPUSH
3141: CALL_OW 88
// Say ( Frank , D3Fb-Frank-1 ) ;
3145: LD_EXP 36
3149: PPUSH
3150: LD_STRING D3Fb-Frank-1
3152: PPUSH
3153: CALL_OW 88
// res := Query ( QFrank2 ) ;
3157: LD_ADDR_VAR 0 2
3161: PUSH
3162: LD_STRING QFrank2
3164: PPUSH
3165: CALL_OW 97
3169: ST_TO_ADDR
// if res = 1 then
3170: LD_VAR 0 2
3174: PUSH
3175: LD_INT 1
3177: EQUAL
3178: IFFALSE 3226
// begin Say ( JMM , D3Fba-JMM-1 ) ;
3180: LD_EXP 32
3184: PPUSH
3185: LD_STRING D3Fba-JMM-1
3187: PPUSH
3188: CALL_OW 88
// Say ( Frank , D3Fba-Frank-1 ) ;
3192: LD_EXP 36
3196: PPUSH
3197: LD_STRING D3Fba-Frank-1
3199: PPUSH
3200: CALL_OW 88
// Say ( JMM , D3Fba-JMM-2 ) ;
3204: LD_EXP 32
3208: PPUSH
3209: LD_STRING D3Fba-JMM-2
3211: PPUSH
3212: CALL_OW 88
// result := 21 ;
3216: LD_ADDR_VAR 0 1
3220: PUSH
3221: LD_INT 21
3223: ST_TO_ADDR
// end else
3224: GO 3246
// begin Say ( JMM , D3Fbb-JMM-1 ) ;
3226: LD_EXP 32
3230: PPUSH
3231: LD_STRING D3Fbb-JMM-1
3233: PPUSH
3234: CALL_OW 88
// result := 22 ;
3238: LD_ADDR_VAR 0 1
3242: PUSH
3243: LD_INT 22
3245: ST_TO_ADDR
// end ; end ; 3 :
3246: GO 3280
3248: LD_INT 3
3250: DOUBLE
3251: EQUAL
3252: IFTRUE 3256
3254: GO 3279
3256: POP
// begin Say ( JMM , D3Fc-JMM-1 ) ;
3257: LD_EXP 32
3261: PPUSH
3262: LD_STRING D3Fc-JMM-1
3264: PPUSH
3265: CALL_OW 88
// result := 3 ;
3269: LD_ADDR_VAR 0 1
3273: PUSH
3274: LD_INT 3
3276: ST_TO_ADDR
// end ; end ;
3277: GO 3280
3279: POP
// end ;
3280: LD_VAR 0 1
3284: RET
// export function fuspech1 ; begin
3285: LD_INT 0
3287: PPUSH
// DialogueOn ;
3288: CALL_OW 6
// Say ( JMM , D4Fa-JMM-1 ) ;
3292: LD_EXP 32
3296: PPUSH
3297: LD_STRING D4Fa-JMM-1
3299: PPUSH
3300: CALL_OW 88
// RevealFogArea ( You , Pruzkum1 ) ;
3304: LD_EXP 1
3308: PPUSH
3309: LD_INT 6
3311: PPUSH
3312: CALL_OW 332
// CenterNowOnXY ( 111 , 123 ) ;
3316: LD_INT 111
3318: PPUSH
3319: LD_INT 123
3321: PPUSH
3322: CALL_OW 86
// CenterOnXy ( 32 , 39 ) ;
3326: LD_INT 32
3328: PPUSH
3329: LD_INT 39
3331: PPUSH
3332: CALL_OW 84
// Say ( Frank , D4Fa-Frank-1 ) ;
3336: LD_EXP 36
3340: PPUSH
3341: LD_STRING D4Fa-Frank-1
3343: PPUSH
3344: CALL_OW 88
// wait ( 0 0$3 ) ;
3348: LD_INT 105
3350: PPUSH
3351: CALL_OW 67
// RevealFogArea ( You , Pruzkum2 ) ;
3355: LD_EXP 1
3359: PPUSH
3360: LD_INT 7
3362: PPUSH
3363: CALL_OW 332
// CenterNowOnXy ( 122 , 68 ) ;
3367: LD_INT 122
3369: PPUSH
3370: LD_INT 68
3372: PPUSH
3373: CALL_OW 86
// Say ( JMM , D4Fa-JMM-2 ) ;
3377: LD_EXP 32
3381: PPUSH
3382: LD_STRING D4Fa-JMM-2
3384: PPUSH
3385: CALL_OW 88
// Say ( Frank , D4Fa-Frank-2 ) ;
3389: LD_EXP 36
3393: PPUSH
3394: LD_STRING D4Fa-Frank-2
3396: PPUSH
3397: CALL_OW 88
// DialogueOff ;
3401: CALL_OW 7
// CenterOnUnits ( [ Frank ] ) ;
3405: LD_EXP 36
3409: PUSH
3410: EMPTY
3411: LIST
3412: PPUSH
3413: CALL_OW 85
// end ;
3417: LD_VAR 0 1
3421: RET
// export function fuspech2 ; begin
3422: LD_INT 0
3424: PPUSH
// DialogueOn ;
3425: CALL_OW 6
// RevealFogArea ( You , Pruzkum3 ) ;
3429: LD_EXP 1
3433: PPUSH
3434: LD_INT 8
3436: PPUSH
3437: CALL_OW 332
// if IsOK ( Frank ) then
3441: LD_EXP 36
3445: PPUSH
3446: CALL_OW 302
3450: IFFALSE 3544
// begin Say ( Frank , D4Fb-Frank-1 ) ;
3452: LD_EXP 36
3456: PPUSH
3457: LD_STRING D4Fb-Frank-1
3459: PPUSH
3460: CALL_OW 88
// Say ( JMM , D4Fb-JMM-1 ) ;
3464: LD_EXP 32
3468: PPUSH
3469: LD_STRING D4Fb-JMM-1
3471: PPUSH
3472: CALL_OW 88
// pom = GetPeople ( sex_female , class_scientistic , [ ] ) ;
3476: LD_ADDR_LOC 2
3480: PUSH
3481: LD_INT 2
3483: PPUSH
3484: LD_INT 4
3486: PPUSH
3487: EMPTY
3488: PPUSH
3489: CALL 6612 0 3
3493: ST_TO_ADDR
// if pom > 0 then
3494: LD_LOC 2
3498: PUSH
3499: LD_INT 0
3501: GREATER
3502: IFFALSE 3520
// Say ( pom [ 1 ] , D4Fb-FSci1-1 ) ;
3504: LD_LOC 2
3508: PUSH
3509: LD_INT 1
3511: ARRAY
3512: PPUSH
3513: LD_STRING D4Fb-FSci1-1
3515: PPUSH
3516: CALL_OW 88
// Say ( Frank , D4Fb-Frank-2 ) ;
3520: LD_EXP 36
3524: PPUSH
3525: LD_STRING D4Fb-Frank-2
3527: PPUSH
3528: CALL_OW 88
// Say ( JMM , D4Fb-JMM-2 ) ;
3532: LD_EXP 32
3536: PPUSH
3537: LD_STRING D4Fb-JMM-2
3539: PPUSH
3540: CALL_OW 88
// end ; DialogueOff ;
3544: CALL_OW 7
// CenterOnUnits ( [ Frank ] ) ;
3548: LD_EXP 36
3552: PUSH
3553: EMPTY
3554: LIST
3555: PPUSH
3556: CALL_OW 85
// end ;
3560: LD_VAR 0 1
3564: RET
// export function fuspech3 ; begin
3565: LD_INT 0
3567: PPUSH
// end ;
3568: LD_VAR 0 1
3572: RET
// export function dialog_yamoko ; begin
3573: LD_INT 0
3575: PPUSH
// Say ( Yamoko , D3Y-Yam-1 ) ;
3576: LD_EXP 39
3580: PPUSH
3581: LD_STRING D3Y-Yam-1
3583: PPUSH
3584: CALL_OW 88
// Say ( JMM , D3Y-JMM-1 ) ;
3588: LD_EXP 32
3592: PPUSH
3593: LD_STRING D3Y-JMM-1
3595: PPUSH
3596: CALL_OW 88
// Say ( Yamoko , D3Y-Yam-2 ) ;
3600: LD_EXP 39
3604: PPUSH
3605: LD_STRING D3Y-Yam-2
3607: PPUSH
3608: CALL_OW 88
// result = Query ( QYamoko ) ;
3612: LD_ADDR_VAR 0 1
3616: PUSH
3617: LD_STRING QYamoko
3619: PPUSH
3620: CALL_OW 97
3624: ST_TO_ADDR
// if result = 1 then
3625: LD_VAR 0 1
3629: PUSH
3630: LD_INT 1
3632: EQUAL
3633: IFFALSE 3661
// begin Say ( JMM , D3Ya-JMM-1 ) ;
3635: LD_EXP 32
3639: PPUSH
3640: LD_STRING D3Ya-JMM-1
3642: PPUSH
3643: CALL_OW 88
// Say ( Yamoko , D3Ya-Yam-1 ) ;
3647: LD_EXP 39
3651: PPUSH
3652: LD_STRING D3Ya-Yam-1
3654: PPUSH
3655: CALL_OW 88
// end else
3659: GO 3673
// Say ( JMM , D3Yb-JMM-1 ) ;
3661: LD_EXP 32
3665: PPUSH
3666: LD_STRING D3Yb-JMM-1
3668: PPUSH
3669: CALL_OW 88
// end ;
3673: LD_VAR 0 1
3677: RET
// export function yuspech1 ; begin
3678: LD_INT 0
3680: PPUSH
// DialogueOn ;
3681: CALL_OW 6
// Say ( Yamoko , D4Ya-Yam-1 ) ;
3685: LD_EXP 39
3689: PPUSH
3690: LD_STRING D4Ya-Yam-1
3692: PPUSH
3693: CALL_OW 88
// Say ( JMM , D4Ya-JMM-1 ) ;
3697: LD_EXP 32
3701: PPUSH
3702: LD_STRING D4Ya-JMM-1
3704: PPUSH
3705: CALL_OW 88
// RevealFogArea ( You , Pruzkum1 ) ;
3709: LD_EXP 1
3713: PPUSH
3714: LD_INT 6
3716: PPUSH
3717: CALL_OW 332
// CenterNowOnXY ( 111 , 123 ) ;
3721: LD_INT 111
3723: PPUSH
3724: LD_INT 123
3726: PPUSH
3727: CALL_OW 86
// CenterOnXy ( 32 , 39 ) ;
3731: LD_INT 32
3733: PPUSH
3734: LD_INT 39
3736: PPUSH
3737: CALL_OW 84
// Say ( Yamoko , D4Ya-Yam-2 ) ;
3741: LD_EXP 39
3745: PPUSH
3746: LD_STRING D4Ya-Yam-2
3748: PPUSH
3749: CALL_OW 88
// wait ( 0 0$3 ) ;
3753: LD_INT 105
3755: PPUSH
3756: CALL_OW 67
// RevealFogArea ( You , Pruzkum2 ) ;
3760: LD_EXP 1
3764: PPUSH
3765: LD_INT 7
3767: PPUSH
3768: CALL_OW 332
// CenterNowOnXy ( 122 , 68 ) ;
3772: LD_INT 122
3774: PPUSH
3775: LD_INT 68
3777: PPUSH
3778: CALL_OW 86
// Say ( JMM , D4Ya-JMM-2 ) ;
3782: LD_EXP 32
3786: PPUSH
3787: LD_STRING D4Ya-JMM-2
3789: PPUSH
3790: CALL_OW 88
// Say ( Yamoko , D4Ya-Yam-3 ) ;
3794: LD_EXP 39
3798: PPUSH
3799: LD_STRING D4Ya-Yam-3
3801: PPUSH
3802: CALL_OW 88
// DialogueOff ;
3806: CALL_OW 7
// CenterOnUnits ( [ Yamoko ] ) ;
3810: LD_EXP 39
3814: PUSH
3815: EMPTY
3816: LIST
3817: PPUSH
3818: CALL_OW 85
// end ;
3822: LD_VAR 0 1
3826: RET
// export function yuspech2 ; begin
3827: LD_INT 0
3829: PPUSH
// DialogueOn ;
3830: CALL_OW 6
// RevealFogArea ( You , Pruzkum3 ) ;
3834: LD_EXP 1
3838: PPUSH
3839: LD_INT 8
3841: PPUSH
3842: CALL_OW 332
// if IsOK ( Yamoko ) then
3846: LD_EXP 39
3850: PPUSH
3851: CALL_OW 302
3855: IFFALSE 3905
// begin Say ( Yamoko , D4Yc-Yam-1 ) ;
3857: LD_EXP 39
3861: PPUSH
3862: LD_STRING D4Yc-Yam-1
3864: PPUSH
3865: CALL_OW 88
// Say ( JMM , D4Yc-JMM-1 ) ;
3869: LD_EXP 32
3873: PPUSH
3874: LD_STRING D4Yc-JMM-1
3876: PPUSH
3877: CALL_OW 88
// Say ( Yamoko , D4Yc-Yam-2 ) ;
3881: LD_EXP 39
3885: PPUSH
3886: LD_STRING D4Yc-Yam-2
3888: PPUSH
3889: CALL_OW 88
// Say ( JMM , D4Yc-JMM-2 ) ;
3893: LD_EXP 32
3897: PPUSH
3898: LD_STRING D4Yc-JMM-2
3900: PPUSH
3901: CALL_OW 88
// end ; DialogueOff ;
3905: CALL_OW 7
// CenterOnUnits ( [ Yamoko ] ) ;
3909: LD_EXP 39
3913: PUSH
3914: EMPTY
3915: LIST
3916: PPUSH
3917: CALL_OW 85
// end ;
3921: LD_VAR 0 1
3925: RET
// export function yuspech3 ; begin
3926: LD_INT 0
3928: PPUSH
// end ;
3929: LD_VAR 0 1
3933: RET
// every 0 0$1 trigger See ( You , A2_kam1 ) or See ( You , A2_kam2 ) or See ( You , A2_kam3 ) do
3934: LD_EXP 1
3938: PPUSH
3939: LD_INT 86
3941: PPUSH
3942: CALL_OW 292
3946: PUSH
3947: LD_EXP 1
3951: PPUSH
3952: LD_INT 85
3954: PPUSH
3955: CALL_OW 292
3959: OR
3960: PUSH
3961: LD_EXP 1
3965: PPUSH
3966: LD_INT 84
3968: PPUSH
3969: CALL_OW 292
3973: OR
3974: IFFALSE 4292
3976: GO 3978
3978: DISABLE
// begin while kecy do
3979: LD_LOC 7
3983: IFFALSE 3994
// wait ( 0 0$1 ) ;
3985: LD_INT 35
3987: PPUSH
3988: CALL_OW 67
3992: GO 3979
// kecy = true ;
3994: LD_ADDR_LOC 7
3998: PUSH
3999: LD_INT 1
4001: ST_TO_ADDR
// DialogueOn ;
4002: CALL_OW 6
// if See ( You , A2_kam1 ) then
4006: LD_EXP 1
4010: PPUSH
4011: LD_INT 86
4013: PPUSH
4014: CALL_OW 292
4018: IFFALSE 4029
// CenterNowOnUnits ( A2_kam1 ) else
4020: LD_INT 86
4022: PPUSH
4023: CALL_OW 87
4027: GO 4093
// if See ( You , A2_kam2 ) then
4029: LD_EXP 1
4033: PPUSH
4034: LD_INT 85
4036: PPUSH
4037: CALL_OW 292
4041: IFFALSE 4052
// CenterNowOnUnits ( A2_kam2 ) else
4043: LD_INT 85
4045: PPUSH
4046: CALL_OW 87
4050: GO 4093
// if See ( You , A2_kam3 ) then
4052: LD_EXP 1
4056: PPUSH
4057: LD_INT 84
4059: PPUSH
4060: CALL_OW 292
4064: IFFALSE 4075
// CenterNowOnUnits ( A2_kam3 ) else
4066: LD_INT 84
4068: PPUSH
4069: CALL_OW 87
4073: GO 4093
// CenterNowOnUnits ( [ A2_kam1 , A2_kam2 , A2_kam3 ] ) ;
4075: LD_INT 86
4077: PUSH
4078: LD_INT 85
4080: PUSH
4081: LD_INT 84
4083: PUSH
4084: EMPTY
4085: LIST
4086: LIST
4087: LIST
4088: PPUSH
4089: CALL_OW 87
// pom = GetPeople ( sex_male , class_soldier , [ JMM ] ) ;
4093: LD_ADDR_LOC 2
4097: PUSH
4098: LD_INT 1
4100: PPUSH
4101: LD_INT 1
4103: PPUSH
4104: LD_EXP 32
4108: PUSH
4109: EMPTY
4110: LIST
4111: PPUSH
4112: CALL 6612 0 3
4116: ST_TO_ADDR
// if pom < 0 then
4117: LD_LOC 2
4121: PUSH
4122: LD_INT 0
4124: LESS
4125: IFFALSE 4138
// begin msg ( ERROR: GetPeople returns wrong data. Please report it as a bug ) ;
4127: LD_STRING ERROR: GetPeople returns wrong data. Please report it as a bug
4129: PPUSH
4130: CALL_OW 100
// konec_mise ;
4134: CALL 669 0 0
// end ; case pom of 0 :
4138: LD_LOC 2
4142: PUSH
4143: LD_INT 0
4145: DOUBLE
4146: EQUAL
4147: IFTRUE 4151
4149: GO 4174
4151: POP
// begin pom = JMM ;
4152: LD_ADDR_LOC 2
4156: PUSH
4157: LD_EXP 32
4161: ST_TO_ADDR
// pom1 = JMM ;
4162: LD_ADDR_LOC 3
4166: PUSH
4167: LD_EXP 32
4171: ST_TO_ADDR
// end ; 1 :
4172: GO 4238
4174: LD_INT 1
4176: DOUBLE
4177: EQUAL
4178: IFTRUE 4182
4180: GO 4209
4182: POP
// begin pom = pom [ 1 ] ;
4183: LD_ADDR_LOC 2
4187: PUSH
4188: LD_LOC 2
4192: PUSH
4193: LD_INT 1
4195: ARRAY
4196: ST_TO_ADDR
// pom1 = JMM ;
4197: LD_ADDR_LOC 3
4201: PUSH
4202: LD_EXP 32
4206: ST_TO_ADDR
// end ; else
4207: GO 4238
4209: POP
// begin pom1 = pom [ 2 ] ;
4210: LD_ADDR_LOC 3
4214: PUSH
4215: LD_LOC 2
4219: PUSH
4220: LD_INT 2
4222: ARRAY
4223: ST_TO_ADDR
// pom = pom [ 1 ] ;
4224: LD_ADDR_LOC 2
4228: PUSH
4229: LD_LOC 2
4233: PUSH
4234: LD_INT 1
4236: ARRAY
4237: ST_TO_ADDR
// end ; end ; DialogueOn ;
4238: CALL_OW 6
// Say ( pom , D5b-Sol1-1 ) ;
4242: LD_LOC 2
4246: PPUSH
4247: LD_STRING D5b-Sol1-1
4249: PPUSH
4250: CALL_OW 88
// Say ( pom1 , D5b-Sol2-1 ) ;
4254: LD_LOC 3
4258: PPUSH
4259: LD_STRING D5b-Sol2-1
4261: PPUSH
4262: CALL_OW 88
// DialogueOff ;
4266: CALL_OW 7
// if not disable_kecy_5D then
4270: LD_LOC 9
4274: NOT
4275: IFFALSE 4280
// enable ( 1 ) ;
4277: LD_INT 1
4279: ENABLE_MARKED
// DialogueOff ;
4280: CALL_OW 7
// kecy = false ;
4284: LD_ADDR_LOC 7
4288: PUSH
4289: LD_INT 0
4291: ST_TO_ADDR
// end ;
4292: END
// on UnitKamikazed ( un ) do begin if not KAMI then
4293: LD_LOC 8
4297: NOT
4298: IFFALSE 4494
// begin KAMI = true ;
4300: LD_ADDR_LOC 8
4304: PUSH
4305: LD_INT 1
4307: ST_TO_ADDR
// while kecy do
4308: LD_LOC 7
4312: IFFALSE 4323
// wait ( 0 0$1 ) ;
4314: LD_INT 35
4316: PPUSH
4317: CALL_OW 67
4321: GO 4308
// kecy = true ;
4323: LD_ADDR_LOC 7
4327: PUSH
4328: LD_INT 1
4330: ST_TO_ADDR
// wait ( 0 0$1.5 ) ;
4331: LD_INT 52
4333: PPUSH
4334: CALL_OW 67
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
4338: LD_ADDR_LOC 2
4342: PUSH
4343: LD_INT 22
4345: PUSH
4346: LD_EXP 1
4350: PUSH
4351: EMPTY
4352: LIST
4353: LIST
4354: PUSH
4355: LD_INT 21
4357: PUSH
4358: LD_INT 1
4360: PUSH
4361: EMPTY
4362: LIST
4363: LIST
4364: PUSH
4365: EMPTY
4366: LIST
4367: LIST
4368: PPUSH
4369: CALL_OW 69
4373: ST_TO_ADDR
// pom = pom diff [ JMM ] ;
4374: LD_ADDR_LOC 2
4378: PUSH
4379: LD_LOC 2
4383: PUSH
4384: LD_EXP 32
4388: PUSH
4389: EMPTY
4390: LIST
4391: DIFF
4392: ST_TO_ADDR
// if pom > 0 then
4393: LD_LOC 2
4397: PUSH
4398: LD_INT 0
4400: GREATER
4401: IFFALSE 4476
// begin DialogueOn ;
4403: CALL_OW 6
// if GetSex ( pom [ 1 ] ) = sex_male then
4407: LD_LOC 2
4411: PUSH
4412: LD_INT 1
4414: ARRAY
4415: PPUSH
4416: CALL_OW 258
4420: PUSH
4421: LD_INT 1
4423: EQUAL
4424: IFFALSE 4444
// Say ( pom [ 1 ] , D5c-Sol1-1 ) else
4426: LD_LOC 2
4430: PUSH
4431: LD_INT 1
4433: ARRAY
4434: PPUSH
4435: LD_STRING D5c-Sol1-1
4437: PPUSH
4438: CALL_OW 88
4442: GO 4460
// Say ( pom [ 1 ] , D5c-FSol1-1 ) ;
4444: LD_LOC 2
4448: PUSH
4449: LD_INT 1
4451: ARRAY
4452: PPUSH
4453: LD_STRING D5c-FSol1-1
4455: PPUSH
4456: CALL_OW 88
// Say ( JMM , D5c-JMM-1 ) ;
4460: LD_EXP 32
4464: PPUSH
4465: LD_STRING D5c-JMM-1
4467: PPUSH
4468: CALL_OW 88
// DialogueOff ;
4472: CALL_OW 7
// end ; if not disable_kecy_5D then
4476: LD_LOC 9
4480: NOT
4481: IFFALSE 4486
// enable ( 1 ) ;
4483: LD_INT 1
4485: ENABLE_MARKED
// kecy = false ;
4486: LD_ADDR_LOC 7
4490: PUSH
4491: LD_INT 0
4493: ST_TO_ADDR
// end ; enable ;
4494: ENABLE
// end ;
4495: PPOPN 1
4497: END
// every 0 0$1 trigger See ( You , A2_op1 ) or See ( You , A2_op2 ) or See ( You , A2_op3 ) do
4498: LD_EXP 1
4502: PPUSH
4503: LD_INT 89
4505: PPUSH
4506: CALL_OW 292
4510: PUSH
4511: LD_EXP 1
4515: PPUSH
4516: LD_INT 90
4518: PPUSH
4519: CALL_OW 292
4523: OR
4524: PUSH
4525: LD_EXP 1
4529: PPUSH
4530: LD_INT 91
4532: PPUSH
4533: CALL_OW 292
4537: OR
4538: IFFALSE 4837
4540: GO 4542
4542: DISABLE
// begin while kecy do
4543: LD_LOC 7
4547: IFFALSE 4558
// wait ( 0 0$1 ) ;
4549: LD_INT 35
4551: PPUSH
4552: CALL_OW 67
4556: GO 4543
// kecy = true ;
4558: LD_ADDR_LOC 7
4562: PUSH
4563: LD_INT 1
4565: ST_TO_ADDR
// CenterOnUnits ( [ A2_op1 , A2_op2 , A2_op3 ] ) ;
4566: LD_INT 89
4568: PUSH
4569: LD_INT 90
4571: PUSH
4572: LD_INT 91
4574: PUSH
4575: EMPTY
4576: LIST
4577: LIST
4578: LIST
4579: PPUSH
4580: CALL_OW 85
// pom = GetPeople ( sex_male , class_soldier , [ JMM ] ) ;
4584: LD_ADDR_LOC 2
4588: PUSH
4589: LD_INT 1
4591: PPUSH
4592: LD_INT 1
4594: PPUSH
4595: LD_EXP 32
4599: PUSH
4600: EMPTY
4601: LIST
4602: PPUSH
4603: CALL 6612 0 3
4607: ST_TO_ADDR
// if pom < 0 then
4608: LD_LOC 2
4612: PUSH
4613: LD_INT 0
4615: LESS
4616: IFFALSE 4629
// begin msg ( ERROR: GetPeople returns wrong data. Please report it as a bug ) ;
4618: LD_STRING ERROR: GetPeople returns wrong data. Please report it as a bug
4620: PPUSH
4621: CALL_OW 100
// konec_mise ;
4625: CALL 669 0 0
// end ; case pom of 0 :
4629: LD_LOC 2
4633: PUSH
4634: LD_INT 0
4636: DOUBLE
4637: EQUAL
4638: IFTRUE 4642
4640: GO 4665
4642: POP
// begin pom = JMM ;
4643: LD_ADDR_LOC 2
4647: PUSH
4648: LD_EXP 32
4652: ST_TO_ADDR
// pom1 = JMM ;
4653: LD_ADDR_LOC 3
4657: PUSH
4658: LD_EXP 32
4662: ST_TO_ADDR
// end ; 1 :
4663: GO 4729
4665: LD_INT 1
4667: DOUBLE
4668: EQUAL
4669: IFTRUE 4673
4671: GO 4700
4673: POP
// begin pom = pom [ 1 ] ;
4674: LD_ADDR_LOC 2
4678: PUSH
4679: LD_LOC 2
4683: PUSH
4684: LD_INT 1
4686: ARRAY
4687: ST_TO_ADDR
// pom1 = JMM ;
4688: LD_ADDR_LOC 3
4692: PUSH
4693: LD_EXP 32
4697: ST_TO_ADDR
// end ; else
4698: GO 4729
4700: POP
// begin pom1 = pom [ 2 ] ;
4701: LD_ADDR_LOC 3
4705: PUSH
4706: LD_LOC 2
4710: PUSH
4711: LD_INT 2
4713: ARRAY
4714: ST_TO_ADDR
// pom = pom [ 1 ] ;
4715: LD_ADDR_LOC 2
4719: PUSH
4720: LD_LOC 2
4724: PUSH
4725: LD_INT 1
4727: ARRAY
4728: ST_TO_ADDR
// end ; end ; DialogueOn ;
4729: CALL_OW 6
// if GetSex ( pom ) = sex_male then
4733: LD_LOC 2
4737: PPUSH
4738: CALL_OW 258
4742: PUSH
4743: LD_INT 1
4745: EQUAL
4746: IFFALSE 4762
// Say ( pom , D5a-Sol1-1 ) else
4748: LD_LOC 2
4752: PPUSH
4753: LD_STRING D5a-Sol1-1
4755: PPUSH
4756: CALL_OW 88
4760: GO 4774
// Say ( pom , D5a-FSol1-1 ) ;
4762: LD_LOC 2
4766: PPUSH
4767: LD_STRING D5a-FSol1-1
4769: PPUSH
4770: CALL_OW 88
// if GetSex ( pom1 ) = sex_male then
4774: LD_LOC 3
4778: PPUSH
4779: CALL_OW 258
4783: PUSH
4784: LD_INT 1
4786: EQUAL
4787: IFFALSE 4803
// Say ( pom1 , D5a-Sol2-1 ) else
4789: LD_LOC 3
4793: PPUSH
4794: LD_STRING D5a-Sol2-1
4796: PPUSH
4797: CALL_OW 88
4801: GO 4815
// Say ( pom1 , D5a-FSol2-1 ) ;
4803: LD_LOC 3
4807: PPUSH
4808: LD_STRING D5a-FSol2-1
4810: PPUSH
4811: CALL_OW 88
// DialogueOff ;
4815: CALL_OW 7
// if not disable_kecy_5D then
4819: LD_LOC 9
4823: NOT
4824: IFFALSE 4829
// enable ( 1 ) ;
4826: LD_INT 1
4828: ENABLE_MARKED
// kecy = false ;
4829: LD_ADDR_LOC 7
4833: PUSH
4834: LD_INT 0
4836: ST_TO_ADDR
// end ;
4837: END
// every 0 0$1 trigger not disable_kecy_5D marked 1 do
4838: LD_LOC 9
4842: NOT
4843: IFFALSE 5036
4845: GO 4847
4847: DISABLE
// begin while kecy do
4848: LD_LOC 7
4852: IFFALSE 4863
// wait ( 0 0$1 ) ;
4854: LD_INT 35
4856: PPUSH
4857: CALL_OW 67
4861: GO 4848
// kecy = true ;
4863: LD_ADDR_LOC 7
4867: PUSH
4868: LD_INT 1
4870: ST_TO_ADDR
// if IsOK ( Lisa ) then
4871: LD_EXP 37
4875: PPUSH
4876: CALL_OW 302
4880: IFFALSE 4896
// Say ( Lisa , D5d-Lisa-1 ) else
4882: LD_EXP 37
4886: PPUSH
4887: LD_STRING D5d-Lisa-1
4889: PPUSH
4890: CALL_OW 88
4894: GO 5008
// if IsOK ( Cyrus ) then
4896: LD_EXP 40
4900: PPUSH
4901: CALL_OW 302
4905: IFFALSE 4921
// Say ( Cyrus , D5d-Cyrus-1 ) else
4907: LD_EXP 40
4911: PPUSH
4912: LD_STRING D5d-Cyrus-1
4914: PPUSH
4915: CALL_OW 88
4919: GO 5008
// if IsOK ( Gary ) then
4921: LD_EXP 34
4925: PPUSH
4926: CALL_OW 302
4930: IFFALSE 4946
// Say ( Gary , D5d-Gary-1 ) else
4932: LD_EXP 34
4936: PPUSH
4937: LD_STRING D5d-Gary-1
4939: PPUSH
4940: CALL_OW 88
4944: GO 5008
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
4946: LD_ADDR_LOC 2
4950: PUSH
4951: LD_INT 22
4953: PUSH
4954: LD_EXP 1
4958: PUSH
4959: EMPTY
4960: LIST
4961: LIST
4962: PUSH
4963: LD_INT 21
4965: PUSH
4966: LD_INT 1
4968: PUSH
4969: EMPTY
4970: LIST
4971: LIST
4972: PUSH
4973: EMPTY
4974: LIST
4975: LIST
4976: PPUSH
4977: CALL_OW 69
4981: ST_TO_ADDR
// if pom > 0 then
4982: LD_LOC 2
4986: PUSH
4987: LD_INT 0
4989: GREATER
4990: IFFALSE 5008
// Say ( pom [ 1 ] , D5d-Sol1-1 ) ;
4992: LD_LOC 2
4996: PUSH
4997: LD_INT 1
4999: ARRAY
5000: PPUSH
5001: LD_STRING D5d-Sol1-1
5003: PPUSH
5004: CALL_OW 88
// end ; Say ( JMM , D5d-JMM-1 ) ;
5008: LD_EXP 32
5012: PPUSH
5013: LD_STRING D5d-JMM-1
5015: PPUSH
5016: CALL_OW 88
// disable_kecy_5D = true ;
5020: LD_ADDR_LOC 9
5024: PUSH
5025: LD_INT 1
5027: ST_TO_ADDR
// kecy = false ;
5028: LD_ADDR_LOC 7
5032: PUSH
5033: LD_INT 0
5035: ST_TO_ADDR
// end ;
5036: END
// every 0 0$3 trigger GetSide ( A2_dep ) = You or IsDead ( A2_dep ) do var sci1 ;
5037: LD_INT 46
5039: PPUSH
5040: CALL_OW 255
5044: PUSH
5045: LD_EXP 1
5049: EQUAL
5050: PUSH
5051: LD_INT 46
5053: PPUSH
5054: CALL_OW 301
5058: OR
5059: IFFALSE 5264
5061: GO 5063
5063: DISABLE
5064: LD_INT 0
5066: PPUSH
// begin wait ( 0 0$1 ) ;
5067: LD_INT 35
5069: PPUSH
5070: CALL_OW 67
// CreateResourcesArea ( mat_artefact , 5 , Art_zone , false ) ;
5074: LD_INT 4
5076: PPUSH
5077: LD_INT 5
5079: PPUSH
5080: LD_INT 31
5082: PPUSH
5083: LD_INT 0
5085: PPUSH
5086: CALL_OW 59
// PlaceSeeing ( 16 , 9 , You , - 5 ) ;
5090: LD_INT 16
5092: PPUSH
5093: LD_INT 9
5095: PPUSH
5096: LD_EXP 1
5100: PPUSH
5101: LD_INT 5
5103: NEG
5104: PPUSH
5105: CALL_OW 330
// wait ( 0 0$1 ) ;
5109: LD_INT 35
5111: PPUSH
5112: CALL_OW 67
// DialogueOn ;
5116: CALL_OW 6
// CenterOnXY ( 17 , 10 ) ;
5120: LD_INT 17
5122: PPUSH
5123: LD_INT 10
5125: PPUSH
5126: CALL_OW 84
// pom = GetPeople ( sex_male , class_scientistic , [ JMM ] ) ;
5130: LD_ADDR_LOC 2
5134: PUSH
5135: LD_INT 1
5137: PPUSH
5138: LD_INT 4
5140: PPUSH
5141: LD_EXP 32
5145: PUSH
5146: EMPTY
5147: LIST
5148: PPUSH
5149: CALL 6612 0 3
5153: ST_TO_ADDR
// if pom > 0 then
5154: LD_LOC 2
5158: PUSH
5159: LD_INT 0
5161: GREATER
5162: IFFALSE 5180
// sci1 = pom [ 1 ] else
5164: LD_ADDR_VAR 0 1
5168: PUSH
5169: LD_LOC 2
5173: PUSH
5174: LD_INT 1
5176: ARRAY
5177: ST_TO_ADDR
5178: GO 5182
// exit ;
5180: GO 5264
// Say ( sci1 , D6-Sci1-1 ) ;
5182: LD_VAR 0 1
5186: PPUSH
5187: LD_STRING D6-Sci1-1
5189: PPUSH
5190: CALL_OW 88
// Say ( JMM , D6-JMM-1 ) ;
5194: LD_EXP 32
5198: PPUSH
5199: LD_STRING D6-JMM-1
5201: PPUSH
5202: CALL_OW 88
// Say ( sci1 , D6-Sci1-2 ) ;
5206: LD_VAR 0 1
5210: PPUSH
5211: LD_STRING D6-Sci1-2
5213: PPUSH
5214: CALL_OW 88
// Say ( JMM , D6-JMM-2 ) ;
5218: LD_EXP 32
5222: PPUSH
5223: LD_STRING D6-JMM-2
5225: PPUSH
5226: CALL_OW 88
// DialogueOff ;
5230: CALL_OW 7
// ChangeMissionObjectives ( M3 ) ;
5234: LD_STRING M3
5236: PPUSH
5237: CALL_OW 337
// RemoveSeeing ( 16 , 9 , You ) ;
5241: LD_INT 16
5243: PPUSH
5244: LD_INT 9
5246: PPUSH
5247: LD_EXP 1
5251: PPUSH
5252: CALL_OW 331
// A2_dobyta = true ;
5256: LD_ADDR_EXP 29
5260: PUSH
5261: LD_INT 1
5263: ST_TO_ADDR
// end ;
5264: PPOPN 1
5266: END
// every 0 0$20 trigger A2_dobyta do
5267: LD_EXP 29
5271: IFFALSE 5610
5273: GO 5275
5275: DISABLE
// begin if A1_dobyta and A3_dobyta then
5276: LD_EXP 28
5280: PUSH
5281: LD_EXP 30
5285: AND
5286: IFFALSE 5290
// exit ;
5288: GO 5610
// wait ( 0 0$10 ) ;
5290: LD_INT 350
5292: PPUSH
5293: CALL_OW 67
// if not IsOK ( A3_solop ) then
5297: LD_INT 102
5299: PPUSH
5300: CALL_OW 302
5304: NOT
5305: IFFALSE 5309
// exit ;
5307: GO 5610
// DialogueOn ;
5309: CALL_OW 6
// pom = GetPeople ( sex_male , class_soldier , [ JMM , Cyrus , Gary , Bobby ] ) ;
5313: LD_ADDR_LOC 2
5317: PUSH
5318: LD_INT 1
5320: PPUSH
5321: LD_INT 1
5323: PPUSH
5324: LD_EXP 32
5328: PUSH
5329: LD_EXP 40
5333: PUSH
5334: LD_EXP 34
5338: PUSH
5339: LD_EXP 35
5343: PUSH
5344: EMPTY
5345: LIST
5346: LIST
5347: LIST
5348: LIST
5349: PPUSH
5350: CALL 6612 0 3
5354: ST_TO_ADDR
// if pom = 0 then
5355: LD_LOC 2
5359: PUSH
5360: LD_INT 0
5362: EQUAL
5363: IFFALSE 5389
// pom = GetPeople ( sex_male , class_soldier , [ JMM ] ) ;
5365: LD_ADDR_LOC 2
5369: PUSH
5370: LD_INT 1
5372: PPUSH
5373: LD_INT 1
5375: PPUSH
5376: LD_EXP 32
5380: PUSH
5381: EMPTY
5382: LIST
5383: PPUSH
5384: CALL 6612 0 3
5388: ST_TO_ADDR
// if pom = 0 then
5389: LD_LOC 2
5393: PUSH
5394: LD_INT 0
5396: EQUAL
5397: IFFALSE 5411
// pom = JMM else
5399: LD_ADDR_LOC 2
5403: PUSH
5404: LD_EXP 32
5408: ST_TO_ADDR
5409: GO 5425
// pom = pom [ 1 ] ;
5411: LD_ADDR_LOC 2
5415: PUSH
5416: LD_LOC 2
5420: PUSH
5421: LD_INT 1
5423: ARRAY
5424: ST_TO_ADDR
// Say ( pom , D7-Sol1-1 ) ;
5425: LD_LOC 2
5429: PPUSH
5430: LD_STRING D7-Sol1-1
5432: PPUSH
5433: CALL_OW 88
// Say ( JMM , D7-JMM-1 ) ;
5437: LD_EXP 32
5441: PPUSH
5442: LD_STRING D7-JMM-1
5444: PPUSH
5445: CALL_OW 88
// SayRadio ( A3_solop , D7-Ar1-1 ) ;
5449: LD_INT 102
5451: PPUSH
5452: LD_STRING D7-Ar1-1
5454: PPUSH
5455: CALL_OW 94
// Say ( JMM , D7-JMM-2 ) ;
5459: LD_EXP 32
5463: PPUSH
5464: LD_STRING D7-JMM-2
5466: PPUSH
5467: CALL_OW 88
// SayRadio ( A3_solop , D7-Ar1-2 ) ;
5471: LD_INT 102
5473: PPUSH
5474: LD_STRING D7-Ar1-2
5476: PPUSH
5477: CALL_OW 94
// Say ( JMM , D7-JMM-3 ) ;
5481: LD_EXP 32
5485: PPUSH
5486: LD_STRING D7-JMM-3
5488: PPUSH
5489: CALL_OW 88
// SayRadio ( A3_solop , D7-Ar1-3 ) ;
5493: LD_INT 102
5495: PPUSH
5496: LD_STRING D7-Ar1-3
5498: PPUSH
5499: CALL_OW 94
// Say ( JMM , D7-JMM-4 ) ;
5503: LD_EXP 32
5507: PPUSH
5508: LD_STRING D7-JMM-4
5510: PPUSH
5511: CALL_OW 88
// CenterOnXY ( 126 , 93 ) ;
5515: LD_INT 126
5517: PPUSH
5518: LD_INT 93
5520: PPUSH
5521: CALL_OW 84
// RevealFogArea ( You , Baziny ) ;
5525: LD_EXP 1
5529: PPUSH
5530: LD_INT 12
5532: PPUSH
5533: CALL_OW 332
// SayRadio ( A3_solop , D7-Ar1-4 ) ;
5537: LD_INT 102
5539: PPUSH
5540: LD_STRING D7-Ar1-4
5542: PPUSH
5543: CALL_OW 94
// pom = Query ( QCameras ) ;
5547: LD_ADDR_LOC 2
5551: PUSH
5552: LD_STRING QCameras
5554: PPUSH
5555: CALL_OW 97
5559: ST_TO_ADDR
// if pom = 1 then
5560: LD_LOC 2
5564: PUSH
5565: LD_INT 1
5567: EQUAL
5568: IFFALSE 5597
// begin oposoldier = 1 ;
5570: LD_ADDR_EXP 46
5574: PUSH
5575: LD_INT 1
5577: ST_TO_ADDR
// ChangeMissionObjectives ( MCar ) ;
5578: LD_STRING MCar
5580: PPUSH
5581: CALL_OW 337
// SetAreaMapShow ( baziny , 1 ) ;
5585: LD_INT 12
5587: PPUSH
5588: LD_INT 1
5590: PPUSH
5591: CALL_OW 424
// end else
5595: GO 5606
// oposoldier = - 1 ;
5597: LD_ADDR_EXP 46
5601: PUSH
5602: LD_INT 1
5604: NEG
5605: ST_TO_ADDR
// DialogueOff ;
5606: CALL_OW 7
// end ;
5610: END
// export function dialog_kamery ; begin
5611: LD_INT 0
5613: PPUSH
// if not IsOK ( A3_solop ) then
5614: LD_INT 102
5616: PPUSH
5617: CALL_OW 302
5621: NOT
5622: IFFALSE 5626
// exit ;
5624: GO 5728
// Say ( A3_solop , D7a-Ar1-1 ) ;
5626: LD_INT 102
5628: PPUSH
5629: LD_STRING D7a-Ar1-1
5631: PPUSH
5632: CALL_OW 88
// HiddenCamera ( 87 , 3 , You ) ;
5636: LD_INT 87
5638: PPUSH
5639: LD_INT 3
5641: PPUSH
5642: LD_EXP 1
5646: PPUSH
5647: CALL_OW 244
// HiddenCamera ( 105 , 39 , You ) ;
5651: LD_INT 105
5653: PPUSH
5654: LD_INT 39
5656: PPUSH
5657: LD_EXP 1
5661: PPUSH
5662: CALL_OW 244
// HiddenCamera ( 134 , 56 , You ) ;
5666: LD_INT 134
5668: PPUSH
5669: LD_INT 56
5671: PPUSH
5672: LD_EXP 1
5676: PPUSH
5677: CALL_OW 244
// HiddenCamera ( 122 , 51 , You ) ;
5681: LD_INT 122
5683: PPUSH
5684: LD_INT 51
5686: PPUSH
5687: LD_EXP 1
5691: PPUSH
5692: CALL_OW 244
// HiddenCamera ( 91 , 8 , You ) ;
5696: LD_INT 91
5698: PPUSH
5699: LD_INT 8
5701: PPUSH
5702: LD_EXP 1
5706: PPUSH
5707: CALL_OW 244
// ChangeMissionObjectives ( MCarOut ) ;
5711: LD_STRING MCarOut
5713: PPUSH
5714: CALL_OW 337
// SetAreaMapShow ( baziny , 0 ) ;
5718: LD_INT 12
5720: PPUSH
5721: LD_INT 0
5723: PPUSH
5724: CALL_OW 424
// end ;
5728: LD_VAR 0 1
5732: RET
// every 1 1$0 do
5733: GO 5735
5735: DISABLE
// begin wait ( timelimit [ difficulty ] ) ;
5736: LD_EXP 50
5740: PUSH
5741: LD_OWVAR 67
5745: ARRAY
5746: PPUSH
5747: CALL_OW 67
// InGameOn ;
5751: CALL_OW 8
// Say ( Powell , D9-Pow-1 ) ;
5755: LD_EXP 33
5759: PPUSH
5760: LD_STRING D9-Pow-1
5762: PPUSH
5763: CALL_OW 88
// InGameOff ;
5767: CALL_OW 9
// wait ( 10 10$0 ) ;
5771: LD_INT 21000
5773: PPUSH
5774: CALL_OW 67
// DialogueOn ;
5778: CALL_OW 6
// Say ( Powell , D9a-Pow-1 ) ;
5782: LD_EXP 33
5786: PPUSH
5787: LD_STRING D9a-Pow-1
5789: PPUSH
5790: CALL_OW 88
// end_of_mission_time ;
5794: CALL 462 0 0
// end ;
5798: END
// every 0 0$3 do
5799: GO 5801
5801: DISABLE
// begin pom1 = false ;
5802: LD_ADDR_LOC 3
5806: PUSH
5807: LD_INT 0
5809: ST_TO_ADDR
// pom = [ A3_are1 , A3_are2 , A3_are3 , A3_are4 , A3_are5 , A3_are6 , A3_are7 , A3_are8 , A3_are9 ] ;
5810: LD_ADDR_LOC 2
5814: PUSH
5815: LD_INT 23
5817: PUSH
5818: LD_INT 18
5820: PUSH
5821: LD_INT 44
5823: PUSH
5824: LD_INT 19
5826: PUSH
5827: LD_INT 24
5829: PUSH
5830: LD_INT 20
5832: PUSH
5833: LD_INT 21
5835: PUSH
5836: LD_INT 93
5838: PUSH
5839: LD_INT 22
5841: PUSH
5842: EMPTY
5843: LIST
5844: LIST
5845: LIST
5846: LIST
5847: LIST
5848: LIST
5849: LIST
5850: LIST
5851: LIST
5852: ST_TO_ADDR
// for i in pom do
5853: LD_ADDR_LOC 1
5857: PUSH
5858: LD_LOC 2
5862: PUSH
5863: FOR_IN
5864: IFFALSE 5892
// if See ( You , i ) then
5866: LD_EXP 1
5870: PPUSH
5871: LD_LOC 1
5875: PPUSH
5876: CALL_OW 292
5880: IFFALSE 5890
// pom1 = true ;
5882: LD_ADDR_LOC 3
5886: PUSH
5887: LD_INT 1
5889: ST_TO_ADDR
5890: GO 5863
5892: POP
5893: POP
// if not pom1 then
5894: LD_LOC 3
5898: NOT
5899: IFFALSE 5904
// enable else
5901: ENABLE
5902: GO 6131
// begin if not ( IsOK ( A3_rv1 ) or IsOK ( A3_rv2 ) or IsOK ( A3_rv3 ) ) then
5904: LD_INT 26
5906: PPUSH
5907: CALL_OW 302
5911: PUSH
5912: LD_INT 25
5914: PPUSH
5915: CALL_OW 302
5919: OR
5920: PUSH
5921: LD_INT 27
5923: PPUSH
5924: CALL_OW 302
5928: OR
5929: NOT
5930: IFFALSE 5935
// begin disable ;
5932: DISABLE
// exit ;
5933: GO 6131
// end ; pom = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_soldier ] ] ) ;
5935: LD_ADDR_LOC 2
5939: PUSH
5940: LD_INT 22
5942: PUSH
5943: LD_EXP 1
5947: PUSH
5948: EMPTY
5949: LIST
5950: LIST
5951: PUSH
5952: LD_INT 25
5954: PUSH
5955: LD_INT 1
5957: PUSH
5958: EMPTY
5959: LIST
5960: LIST
5961: PUSH
5962: EMPTY
5963: LIST
5964: LIST
5965: PPUSH
5966: CALL_OW 69
5970: ST_TO_ADDR
// if pom = 0 then
5971: LD_LOC 2
5975: PUSH
5976: LD_INT 0
5978: EQUAL
5979: IFFALSE 6005
// pom = GetPeople ( sex_male , class_soldier , [ JMM ] ) ;
5981: LD_ADDR_LOC 2
5985: PUSH
5986: LD_INT 1
5988: PPUSH
5989: LD_INT 1
5991: PPUSH
5992: LD_EXP 32
5996: PUSH
5997: EMPTY
5998: LIST
5999: PPUSH
6000: CALL 6612 0 3
6004: ST_TO_ADDR
// if pom = 0 then
6005: LD_LOC 2
6009: PUSH
6010: LD_INT 0
6012: EQUAL
6013: IFFALSE 6033
// pom = GetPeople ( sex_female , class_soldier , [ ] ) ;
6015: LD_ADDR_LOC 2
6019: PUSH
6020: LD_INT 2
6022: PPUSH
6023: LD_INT 1
6025: PPUSH
6026: EMPTY
6027: PPUSH
6028: CALL 6612 0 3
6032: ST_TO_ADDR
// if pom = 0 then
6033: LD_LOC 2
6037: PUSH
6038: LD_INT 0
6040: EQUAL
6041: IFFALSE 6056
// pom = [ JMM ] ;
6043: LD_ADDR_LOC 2
6047: PUSH
6048: LD_EXP 32
6052: PUSH
6053: EMPTY
6054: LIST
6055: ST_TO_ADDR
// if GetSex ( pom [ 1 ] ) = sex_male then
6056: LD_LOC 2
6060: PUSH
6061: LD_INT 1
6063: ARRAY
6064: PPUSH
6065: CALL_OW 258
6069: PUSH
6070: LD_INT 1
6072: EQUAL
6073: IFFALSE 6093
// Say ( pom [ 1 ] , D8-Sol1-1 ) else
6075: LD_LOC 2
6079: PUSH
6080: LD_INT 1
6082: ARRAY
6083: PPUSH
6084: LD_STRING D8-Sol1-1
6086: PPUSH
6087: CALL_OW 88
6091: GO 6109
// Say ( pom [ 1 ] , D8-FSol1-1 ) ;
6093: LD_LOC 2
6097: PUSH
6098: LD_INT 1
6100: ARRAY
6101: PPUSH
6102: LD_STRING D8-FSol1-1
6104: PPUSH
6105: CALL_OW 88
// Say ( JMM , D8-JMM-1 ) ;
6109: LD_EXP 32
6113: PPUSH
6114: LD_STRING D8-JMM-1
6116: PPUSH
6117: CALL_OW 88
// wait ( 0 0$20 ) ;
6121: LD_INT 700
6123: PPUSH
6124: CALL_OW 67
// enable ( 2 ) ;
6128: LD_INT 2
6130: ENABLE_MARKED
// end ; end ;
6131: END
// every 0 0$5 marked 2 do
6132: GO 6134
6134: DISABLE
// begin pom1 = false ;
6135: LD_ADDR_LOC 3
6139: PUSH
6140: LD_INT 0
6142: ST_TO_ADDR
// pom = [ A3_rv1 , A3_rv2 , A3_rv3 ] ;
6143: LD_ADDR_LOC 2
6147: PUSH
6148: LD_INT 26
6150: PUSH
6151: LD_INT 25
6153: PUSH
6154: LD_INT 27
6156: PUSH
6157: EMPTY
6158: LIST
6159: LIST
6160: LIST
6161: ST_TO_ADDR
// for i in pom do
6162: LD_ADDR_LOC 1
6166: PUSH
6167: LD_LOC 2
6171: PUSH
6172: FOR_IN
6173: IFFALSE 6201
// if See ( You , i ) then
6175: LD_EXP 1
6179: PPUSH
6180: LD_LOC 1
6184: PPUSH
6185: CALL_OW 292
6189: IFFALSE 6199
// pom1 = true ;
6191: LD_ADDR_LOC 3
6195: PUSH
6196: LD_INT 1
6198: ST_TO_ADDR
6199: GO 6172
6201: POP
6202: POP
// if not pom1 then
6203: LD_LOC 3
6207: NOT
6208: IFFALSE 6213
// enable else
6210: ENABLE
6211: GO 6478
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_soldier ] ] ) diff JMM ;
6213: LD_ADDR_LOC 2
6217: PUSH
6218: LD_INT 22
6220: PUSH
6221: LD_EXP 1
6225: PUSH
6226: EMPTY
6227: LIST
6228: LIST
6229: PUSH
6230: LD_INT 25
6232: PUSH
6233: LD_INT 1
6235: PUSH
6236: EMPTY
6237: LIST
6238: LIST
6239: PUSH
6240: EMPTY
6241: LIST
6242: LIST
6243: PPUSH
6244: CALL_OW 69
6248: PUSH
6249: LD_EXP 32
6253: DIFF
6254: ST_TO_ADDR
// if pom = 0 then
6255: LD_LOC 2
6259: PUSH
6260: LD_INT 0
6262: EQUAL
6263: IFFALSE 6289
// pom = GetPeople ( sex_male , class_soldier , [ JMM ] ) ;
6265: LD_ADDR_LOC 2
6269: PUSH
6270: LD_INT 1
6272: PPUSH
6273: LD_INT 1
6275: PPUSH
6276: LD_EXP 32
6280: PUSH
6281: EMPTY
6282: LIST
6283: PPUSH
6284: CALL 6612 0 3
6288: ST_TO_ADDR
// if pom = 0 then
6289: LD_LOC 2
6293: PUSH
6294: LD_INT 0
6296: EQUAL
6297: IFFALSE 6323
// pom = GetPeople ( sex_female , class_soldier , [ JMM ] ) ;
6299: LD_ADDR_LOC 2
6303: PUSH
6304: LD_INT 2
6306: PPUSH
6307: LD_INT 1
6309: PPUSH
6310: LD_EXP 32
6314: PUSH
6315: EMPTY
6316: LIST
6317: PPUSH
6318: CALL 6612 0 3
6322: ST_TO_ADDR
// if pom = 0 then
6323: LD_LOC 2
6327: PUSH
6328: LD_INT 0
6330: EQUAL
6331: IFFALSE 6375
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) diff JMM ;
6333: LD_ADDR_LOC 2
6337: PUSH
6338: LD_INT 22
6340: PUSH
6341: LD_EXP 1
6345: PUSH
6346: EMPTY
6347: LIST
6348: LIST
6349: PUSH
6350: LD_INT 21
6352: PUSH
6353: LD_INT 1
6355: PUSH
6356: EMPTY
6357: LIST
6358: LIST
6359: PUSH
6360: EMPTY
6361: LIST
6362: LIST
6363: PPUSH
6364: CALL_OW 69
6368: PUSH
6369: LD_EXP 32
6373: DIFF
6374: ST_TO_ADDR
// if pom = 0 then
6375: LD_LOC 2
6379: PUSH
6380: LD_INT 0
6382: EQUAL
6383: IFFALSE 6387
// exit ;
6385: GO 6478
// DialogueOn ;
6387: CALL_OW 6
// CenterOnUnits ( [ A3_rv1 , A3_rv2 , A3_rv3 ] ) ;
6391: LD_INT 26
6393: PUSH
6394: LD_INT 25
6396: PUSH
6397: LD_INT 27
6399: PUSH
6400: EMPTY
6401: LIST
6402: LIST
6403: LIST
6404: PPUSH
6405: CALL_OW 85
// if GetSex ( pom [ 1 ] ) = sex_male then
6409: LD_LOC 2
6413: PUSH
6414: LD_INT 1
6416: ARRAY
6417: PPUSH
6418: CALL_OW 258
6422: PUSH
6423: LD_INT 1
6425: EQUAL
6426: IFFALSE 6446
// Say ( pom [ 1 ] , D8a-Sol2-1 ) else
6428: LD_LOC 2
6432: PUSH
6433: LD_INT 1
6435: ARRAY
6436: PPUSH
6437: LD_STRING D8a-Sol2-1
6439: PPUSH
6440: CALL_OW 88
6444: GO 6462
// Say ( pom [ 1 ] , D8a-FSol2-1 ) ;
6446: LD_LOC 2
6450: PUSH
6451: LD_INT 1
6453: ARRAY
6454: PPUSH
6455: LD_STRING D8a-FSol2-1
6457: PPUSH
6458: CALL_OW 88
// Say ( JMM , D8a-JMM-1 ) ;
6462: LD_EXP 32
6466: PPUSH
6467: LD_STRING D8a-JMM-1
6469: PPUSH
6470: CALL_OW 88
// DialogueOff ;
6474: CALL_OW 7
// end ; end ;
6478: END
// every 0 0$0.1 trigger FilterUnitsInArea ( Abase1 , [ [ f_side , You ] ] ) > 0 do var pom ;
6479: LD_INT 3
6481: PPUSH
6482: LD_INT 22
6484: PUSH
6485: LD_EXP 1
6489: PUSH
6490: EMPTY
6491: LIST
6492: LIST
6493: PUSH
6494: EMPTY
6495: LIST
6496: PPUSH
6497: CALL_OW 70
6501: PUSH
6502: LD_INT 0
6504: GREATER
6505: IFFALSE 6609
6507: GO 6509
6509: DISABLE
6510: LD_INT 0
6512: PPUSH
// begin case Rand ( 1 , 3 ) of 1 :
6513: LD_INT 1
6515: PPUSH
6516: LD_INT 3
6518: PPUSH
6519: CALL_OW 12
6523: PUSH
6524: LD_INT 1
6526: DOUBLE
6527: EQUAL
6528: IFTRUE 6532
6530: GO 6543
6532: POP
// pom = A1_vo1 ; 2 :
6533: LD_ADDR_VAR 0 1
6537: PUSH
6538: LD_INT 72
6540: ST_TO_ADDR
6541: GO 6582
6543: LD_INT 2
6545: DOUBLE
6546: EQUAL
6547: IFTRUE 6551
6549: GO 6562
6551: POP
// pom = A1_ve1 ; 3 :
6552: LD_ADDR_VAR 0 1
6556: PUSH
6557: LD_INT 87
6559: ST_TO_ADDR
6560: GO 6582
6562: LD_INT 3
6564: DOUBLE
6565: EQUAL
6566: IFTRUE 6570
6568: GO 6581
6570: POP
// pom = A1_vo4 ; end ;
6571: LD_ADDR_VAR 0 1
6575: PUSH
6576: LD_INT 76
6578: ST_TO_ADDR
6579: GO 6582
6581: POP
// if IsOK ( pom ) then
6582: LD_VAR 0 1
6586: PPUSH
6587: CALL_OW 302
6591: IFFALSE 6605
// Say ( pom , D2aa-Ar1-1 ) ;
6593: LD_VAR 0 1
6597: PPUSH
6598: LD_STRING D2aa-Ar1-1
6600: PPUSH
6601: CALL_OW 88
// uprav_zivoty_arabskych_budov ;
6605: CALL 23386 0 0
// end ;
6609: PPOPN 1
6611: END
// function GetPeople ( sex , povolani , diffseznam ) ; var pom , pom1 , pom2 , pom3 , pom4 , pom5 , pom6 ; var pom1a , pom2a , pom3a , pom4a , pom5a , pom6a ; var j ; begin
6612: LD_INT 0
6614: PPUSH
6615: PPUSH
6616: PPUSH
6617: PPUSH
6618: PPUSH
6619: PPUSH
6620: PPUSH
6621: PPUSH
6622: PPUSH
6623: PPUSH
6624: PPUSH
6625: PPUSH
6626: PPUSH
6627: PPUSH
6628: PPUSH
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_scientistic ] , [ f_sex , sex ] ] ) ;
6629: LD_ADDR_VAR 0 6
6633: PUSH
6634: LD_INT 22
6636: PUSH
6637: LD_EXP 1
6641: PUSH
6642: EMPTY
6643: LIST
6644: LIST
6645: PUSH
6646: LD_INT 25
6648: PUSH
6649: LD_INT 4
6651: PUSH
6652: EMPTY
6653: LIST
6654: LIST
6655: PUSH
6656: LD_INT 26
6658: PUSH
6659: LD_VAR 0 1
6663: PUSH
6664: EMPTY
6665: LIST
6666: LIST
6667: PUSH
6668: EMPTY
6669: LIST
6670: LIST
6671: LIST
6672: PPUSH
6673: CALL_OW 69
6677: ST_TO_ADDR
// pom1a = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] , [ f_control , control_manual ] ] ) ;
6678: LD_ADDR_VAR 0 12
6682: PUSH
6683: LD_INT 22
6685: PUSH
6686: LD_EXP 1
6690: PUSH
6691: EMPTY
6692: LIST
6693: LIST
6694: PUSH
6695: LD_INT 21
6697: PUSH
6698: LD_INT 2
6700: PUSH
6701: EMPTY
6702: LIST
6703: LIST
6704: PUSH
6705: LD_INT 33
6707: PUSH
6708: LD_INT 1
6710: PUSH
6711: EMPTY
6712: LIST
6713: LIST
6714: PUSH
6715: EMPTY
6716: LIST
6717: LIST
6718: LIST
6719: PPUSH
6720: CALL_OW 69
6724: ST_TO_ADDR
// for j in pom1a do
6725: LD_ADDR_VAR 0 18
6729: PUSH
6730: LD_VAR 0 12
6734: PUSH
6735: FOR_IN
6736: IFFALSE 6776
// if GetClass ( Isdrivenby ( j ) ) = class_scientistic then
6738: LD_VAR 0 18
6742: PPUSH
6743: CALL_OW 311
6747: PPUSH
6748: CALL_OW 257
6752: PUSH
6753: LD_INT 4
6755: EQUAL
6756: IFFALSE 6774
// pom1 = pom1 ^ j ;
6758: LD_ADDR_VAR 0 6
6762: PUSH
6763: LD_VAR 0 6
6767: PUSH
6768: LD_VAR 0 18
6772: ADD
6773: ST_TO_ADDR
6774: GO 6735
6776: POP
6777: POP
// pom2 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_mechanic ] , [ f_sex , sex ] ] ) ;
6778: LD_ADDR_VAR 0 7
6782: PUSH
6783: LD_INT 22
6785: PUSH
6786: LD_EXP 1
6790: PUSH
6791: EMPTY
6792: LIST
6793: LIST
6794: PUSH
6795: LD_INT 25
6797: PUSH
6798: LD_INT 3
6800: PUSH
6801: EMPTY
6802: LIST
6803: LIST
6804: PUSH
6805: LD_INT 26
6807: PUSH
6808: LD_VAR 0 1
6812: PUSH
6813: EMPTY
6814: LIST
6815: LIST
6816: PUSH
6817: EMPTY
6818: LIST
6819: LIST
6820: LIST
6821: PPUSH
6822: CALL_OW 69
6826: ST_TO_ADDR
// pom2a = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] , [ f_control , control_manual ] ] ) ;
6827: LD_ADDR_VAR 0 13
6831: PUSH
6832: LD_INT 22
6834: PUSH
6835: LD_EXP 1
6839: PUSH
6840: EMPTY
6841: LIST
6842: LIST
6843: PUSH
6844: LD_INT 21
6846: PUSH
6847: LD_INT 2
6849: PUSH
6850: EMPTY
6851: LIST
6852: LIST
6853: PUSH
6854: LD_INT 33
6856: PUSH
6857: LD_INT 1
6859: PUSH
6860: EMPTY
6861: LIST
6862: LIST
6863: PUSH
6864: EMPTY
6865: LIST
6866: LIST
6867: LIST
6868: PPUSH
6869: CALL_OW 69
6873: ST_TO_ADDR
// for j in pom2a do
6874: LD_ADDR_VAR 0 18
6878: PUSH
6879: LD_VAR 0 13
6883: PUSH
6884: FOR_IN
6885: IFFALSE 6925
// if GetClass ( Isdrivenby ( j ) ) = class_mechanic then
6887: LD_VAR 0 18
6891: PPUSH
6892: CALL_OW 311
6896: PPUSH
6897: CALL_OW 257
6901: PUSH
6902: LD_INT 3
6904: EQUAL
6905: IFFALSE 6923
// pom2 = pom2 ^ j ;
6907: LD_ADDR_VAR 0 7
6911: PUSH
6912: LD_VAR 0 7
6916: PUSH
6917: LD_VAR 0 18
6921: ADD
6922: ST_TO_ADDR
6923: GO 6884
6925: POP
6926: POP
// pom3 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_engineer ] , [ f_sex , sex ] ] ) ;
6927: LD_ADDR_VAR 0 8
6931: PUSH
6932: LD_INT 22
6934: PUSH
6935: LD_EXP 1
6939: PUSH
6940: EMPTY
6941: LIST
6942: LIST
6943: PUSH
6944: LD_INT 25
6946: PUSH
6947: LD_INT 2
6949: PUSH
6950: EMPTY
6951: LIST
6952: LIST
6953: PUSH
6954: LD_INT 26
6956: PUSH
6957: LD_VAR 0 1
6961: PUSH
6962: EMPTY
6963: LIST
6964: LIST
6965: PUSH
6966: EMPTY
6967: LIST
6968: LIST
6969: LIST
6970: PPUSH
6971: CALL_OW 69
6975: ST_TO_ADDR
// pom3a = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] , [ f_control , control_manual ] ] ) ;
6976: LD_ADDR_VAR 0 14
6980: PUSH
6981: LD_INT 22
6983: PUSH
6984: LD_EXP 1
6988: PUSH
6989: EMPTY
6990: LIST
6991: LIST
6992: PUSH
6993: LD_INT 21
6995: PUSH
6996: LD_INT 2
6998: PUSH
6999: EMPTY
7000: LIST
7001: LIST
7002: PUSH
7003: LD_INT 33
7005: PUSH
7006: LD_INT 1
7008: PUSH
7009: EMPTY
7010: LIST
7011: LIST
7012: PUSH
7013: EMPTY
7014: LIST
7015: LIST
7016: LIST
7017: PPUSH
7018: CALL_OW 69
7022: ST_TO_ADDR
// for j in pom3a do
7023: LD_ADDR_VAR 0 18
7027: PUSH
7028: LD_VAR 0 14
7032: PUSH
7033: FOR_IN
7034: IFFALSE 7074
// if GetClass ( Isdrivenby ( j ) ) = class_engineer then
7036: LD_VAR 0 18
7040: PPUSH
7041: CALL_OW 311
7045: PPUSH
7046: CALL_OW 257
7050: PUSH
7051: LD_INT 2
7053: EQUAL
7054: IFFALSE 7072
// pom3 = pom3 ^ j ;
7056: LD_ADDR_VAR 0 8
7060: PUSH
7061: LD_VAR 0 8
7065: PUSH
7066: LD_VAR 0 18
7070: ADD
7071: ST_TO_ADDR
7072: GO 7033
7074: POP
7075: POP
// pom4 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_soldier ] , [ f_sex , sex ] ] ) ;
7076: LD_ADDR_VAR 0 9
7080: PUSH
7081: LD_INT 22
7083: PUSH
7084: LD_EXP 1
7088: PUSH
7089: EMPTY
7090: LIST
7091: LIST
7092: PUSH
7093: LD_INT 25
7095: PUSH
7096: LD_INT 1
7098: PUSH
7099: EMPTY
7100: LIST
7101: LIST
7102: PUSH
7103: LD_INT 26
7105: PUSH
7106: LD_VAR 0 1
7110: PUSH
7111: EMPTY
7112: LIST
7113: LIST
7114: PUSH
7115: EMPTY
7116: LIST
7117: LIST
7118: LIST
7119: PPUSH
7120: CALL_OW 69
7124: ST_TO_ADDR
// pom4a = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] , [ f_control , control_manual ] ] ) ;
7125: LD_ADDR_VAR 0 15
7129: PUSH
7130: LD_INT 22
7132: PUSH
7133: LD_EXP 1
7137: PUSH
7138: EMPTY
7139: LIST
7140: LIST
7141: PUSH
7142: LD_INT 21
7144: PUSH
7145: LD_INT 2
7147: PUSH
7148: EMPTY
7149: LIST
7150: LIST
7151: PUSH
7152: LD_INT 33
7154: PUSH
7155: LD_INT 1
7157: PUSH
7158: EMPTY
7159: LIST
7160: LIST
7161: PUSH
7162: EMPTY
7163: LIST
7164: LIST
7165: LIST
7166: PPUSH
7167: CALL_OW 69
7171: ST_TO_ADDR
// for j in pom4a do
7172: LD_ADDR_VAR 0 18
7176: PUSH
7177: LD_VAR 0 15
7181: PUSH
7182: FOR_IN
7183: IFFALSE 7223
// if GetClass ( Isdrivenby ( j ) ) = class_soldier then
7185: LD_VAR 0 18
7189: PPUSH
7190: CALL_OW 311
7194: PPUSH
7195: CALL_OW 257
7199: PUSH
7200: LD_INT 1
7202: EQUAL
7203: IFFALSE 7221
// pom4 = pom4 ^ j ;
7205: LD_ADDR_VAR 0 9
7209: PUSH
7210: LD_VAR 0 9
7214: PUSH
7215: LD_VAR 0 18
7219: ADD
7220: ST_TO_ADDR
7221: GO 7182
7223: POP
7224: POP
// pom5 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_sniper ] , [ f_sex , sex ] ] ) ;
7225: LD_ADDR_VAR 0 10
7229: PUSH
7230: LD_INT 22
7232: PUSH
7233: LD_EXP 1
7237: PUSH
7238: EMPTY
7239: LIST
7240: LIST
7241: PUSH
7242: LD_INT 25
7244: PUSH
7245: LD_INT 5
7247: PUSH
7248: EMPTY
7249: LIST
7250: LIST
7251: PUSH
7252: LD_INT 26
7254: PUSH
7255: LD_VAR 0 1
7259: PUSH
7260: EMPTY
7261: LIST
7262: LIST
7263: PUSH
7264: EMPTY
7265: LIST
7266: LIST
7267: LIST
7268: PPUSH
7269: CALL_OW 69
7273: ST_TO_ADDR
// pom5a = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] , [ f_control , control_manual ] ] ) ;
7274: LD_ADDR_VAR 0 16
7278: PUSH
7279: LD_INT 22
7281: PUSH
7282: LD_EXP 1
7286: PUSH
7287: EMPTY
7288: LIST
7289: LIST
7290: PUSH
7291: LD_INT 21
7293: PUSH
7294: LD_INT 2
7296: PUSH
7297: EMPTY
7298: LIST
7299: LIST
7300: PUSH
7301: LD_INT 33
7303: PUSH
7304: LD_INT 1
7306: PUSH
7307: EMPTY
7308: LIST
7309: LIST
7310: PUSH
7311: EMPTY
7312: LIST
7313: LIST
7314: LIST
7315: PPUSH
7316: CALL_OW 69
7320: ST_TO_ADDR
// for j in pom5a do
7321: LD_ADDR_VAR 0 18
7325: PUSH
7326: LD_VAR 0 16
7330: PUSH
7331: FOR_IN
7332: IFFALSE 7372
// if GetClass ( Isdrivenby ( j ) ) = class_sniper then
7334: LD_VAR 0 18
7338: PPUSH
7339: CALL_OW 311
7343: PPUSH
7344: CALL_OW 257
7348: PUSH
7349: LD_INT 5
7351: EQUAL
7352: IFFALSE 7370
// pom5 = pom5 ^ j ;
7354: LD_ADDR_VAR 0 10
7358: PUSH
7359: LD_VAR 0 10
7363: PUSH
7364: LD_VAR 0 18
7368: ADD
7369: ST_TO_ADDR
7370: GO 7331
7372: POP
7373: POP
// pom6 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_mortar ] , [ f_sex , sex ] ] ) ;
7374: LD_ADDR_VAR 0 11
7378: PUSH
7379: LD_INT 22
7381: PUSH
7382: LD_EXP 1
7386: PUSH
7387: EMPTY
7388: LIST
7389: LIST
7390: PUSH
7391: LD_INT 25
7393: PUSH
7394: LD_INT 8
7396: PUSH
7397: EMPTY
7398: LIST
7399: LIST
7400: PUSH
7401: LD_INT 26
7403: PUSH
7404: LD_VAR 0 1
7408: PUSH
7409: EMPTY
7410: LIST
7411: LIST
7412: PUSH
7413: EMPTY
7414: LIST
7415: LIST
7416: LIST
7417: PPUSH
7418: CALL_OW 69
7422: ST_TO_ADDR
// pom6a = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] , [ f_control , control_manual ] ] ) ;
7423: LD_ADDR_VAR 0 17
7427: PUSH
7428: LD_INT 22
7430: PUSH
7431: LD_EXP 1
7435: PUSH
7436: EMPTY
7437: LIST
7438: LIST
7439: PUSH
7440: LD_INT 21
7442: PUSH
7443: LD_INT 2
7445: PUSH
7446: EMPTY
7447: LIST
7448: LIST
7449: PUSH
7450: LD_INT 33
7452: PUSH
7453: LD_INT 1
7455: PUSH
7456: EMPTY
7457: LIST
7458: LIST
7459: PUSH
7460: EMPTY
7461: LIST
7462: LIST
7463: LIST
7464: PPUSH
7465: CALL_OW 69
7469: ST_TO_ADDR
// for j in pom6a do
7470: LD_ADDR_VAR 0 18
7474: PUSH
7475: LD_VAR 0 17
7479: PUSH
7480: FOR_IN
7481: IFFALSE 7521
// if GetClass ( Isdrivenby ( j ) ) = class_mortar then
7483: LD_VAR 0 18
7487: PPUSH
7488: CALL_OW 311
7492: PPUSH
7493: CALL_OW 257
7497: PUSH
7498: LD_INT 8
7500: EQUAL
7501: IFFALSE 7519
// pom6 = pom6 ^ j ;
7503: LD_ADDR_VAR 0 11
7507: PUSH
7508: LD_VAR 0 11
7512: PUSH
7513: LD_VAR 0 18
7517: ADD
7518: ST_TO_ADDR
7519: GO 7480
7521: POP
7522: POP
// case povolani of class_scientistic :
7523: LD_VAR 0 2
7527: PUSH
7528: LD_INT 4
7530: DOUBLE
7531: EQUAL
7532: IFTRUE 7536
7534: GO 7549
7536: POP
// pom = pom1 ; class_mechanic :
7537: LD_ADDR_VAR 0 5
7541: PUSH
7542: LD_VAR 0 6
7546: ST_TO_ADDR
7547: GO 7655
7549: LD_INT 3
7551: DOUBLE
7552: EQUAL
7553: IFTRUE 7557
7555: GO 7570
7557: POP
// pom = pom2 ; class_engineer :
7558: LD_ADDR_VAR 0 5
7562: PUSH
7563: LD_VAR 0 7
7567: ST_TO_ADDR
7568: GO 7655
7570: LD_INT 2
7572: DOUBLE
7573: EQUAL
7574: IFTRUE 7578
7576: GO 7591
7578: POP
// pom = pom3 ; class_soldier :
7579: LD_ADDR_VAR 0 5
7583: PUSH
7584: LD_VAR 0 8
7588: ST_TO_ADDR
7589: GO 7655
7591: LD_INT 1
7593: DOUBLE
7594: EQUAL
7595: IFTRUE 7599
7597: GO 7612
7599: POP
// pom = pom4 ; class_sniper :
7600: LD_ADDR_VAR 0 5
7604: PUSH
7605: LD_VAR 0 9
7609: ST_TO_ADDR
7610: GO 7655
7612: LD_INT 5
7614: DOUBLE
7615: EQUAL
7616: IFTRUE 7620
7618: GO 7633
7620: POP
// pom = pom5 ; class_mortar :
7621: LD_ADDR_VAR 0 5
7625: PUSH
7626: LD_VAR 0 10
7630: ST_TO_ADDR
7631: GO 7655
7633: LD_INT 8
7635: DOUBLE
7636: EQUAL
7637: IFTRUE 7641
7639: GO 7654
7641: POP
// pom = pom6 ; end ;
7642: LD_ADDR_VAR 0 5
7646: PUSH
7647: LD_VAR 0 11
7651: ST_TO_ADDR
7652: GO 7655
7654: POP
// if povolani <> class_scientistic then
7655: LD_VAR 0 2
7659: PUSH
7660: LD_INT 4
7662: NONEQUAL
7663: IFFALSE 7681
// pom = pom ^ pom1 ;
7665: LD_ADDR_VAR 0 5
7669: PUSH
7670: LD_VAR 0 5
7674: PUSH
7675: LD_VAR 0 6
7679: ADD
7680: ST_TO_ADDR
// if povolani <> class_mechanic then
7681: LD_VAR 0 2
7685: PUSH
7686: LD_INT 3
7688: NONEQUAL
7689: IFFALSE 7707
// pom = pom ^ pom2 ;
7691: LD_ADDR_VAR 0 5
7695: PUSH
7696: LD_VAR 0 5
7700: PUSH
7701: LD_VAR 0 7
7705: ADD
7706: ST_TO_ADDR
// if povolani <> class_engineer then
7707: LD_VAR 0 2
7711: PUSH
7712: LD_INT 2
7714: NONEQUAL
7715: IFFALSE 7733
// pom = pom ^ pom3 ;
7717: LD_ADDR_VAR 0 5
7721: PUSH
7722: LD_VAR 0 5
7726: PUSH
7727: LD_VAR 0 8
7731: ADD
7732: ST_TO_ADDR
// if povolani <> class_soldier then
7733: LD_VAR 0 2
7737: PUSH
7738: LD_INT 1
7740: NONEQUAL
7741: IFFALSE 7759
// pom = pom ^ pom4 ;
7743: LD_ADDR_VAR 0 5
7747: PUSH
7748: LD_VAR 0 5
7752: PUSH
7753: LD_VAR 0 9
7757: ADD
7758: ST_TO_ADDR
// if povolani <> class_sniper then
7759: LD_VAR 0 2
7763: PUSH
7764: LD_INT 5
7766: NONEQUAL
7767: IFFALSE 7785
// pom = pom ^ pom5 ;
7769: LD_ADDR_VAR 0 5
7773: PUSH
7774: LD_VAR 0 5
7778: PUSH
7779: LD_VAR 0 10
7783: ADD
7784: ST_TO_ADDR
// if povolani <> class_mortar then
7785: LD_VAR 0 2
7789: PUSH
7790: LD_INT 8
7792: NONEQUAL
7793: IFFALSE 7811
// pom = pom ^ pom6 ;
7795: LD_ADDR_VAR 0 5
7799: PUSH
7800: LD_VAR 0 5
7804: PUSH
7805: LD_VAR 0 11
7809: ADD
7810: ST_TO_ADDR
// result := pom diff diffseznam ;
7811: LD_ADDR_VAR 0 4
7815: PUSH
7816: LD_VAR 0 5
7820: PUSH
7821: LD_VAR 0 3
7825: DIFF
7826: ST_TO_ADDR
// end ;
7827: LD_VAR 0 4
7831: RET
// export function query_konec_mise ; var pom ; begin
7832: LD_INT 0
7834: PPUSH
7835: PPUSH
// pom = Query ( QEndMission ) ;
7836: LD_ADDR_VAR 0 2
7840: PUSH
7841: LD_STRING QEndMission
7843: PPUSH
7844: CALL_OW 97
7848: ST_TO_ADDR
// result := pom ;
7849: LD_ADDR_VAR 0 1
7853: PUSH
7854: LD_VAR 0 2
7858: ST_TO_ADDR
// end ;
7859: LD_VAR 0 1
7863: RET
// every 0 0$1 do var pom ; var jedn ;
7864: GO 7866
7866: DISABLE
7867: LD_INT 0
7869: PPUSH
7870: PPUSH
// begin jedn = 0 ;
7871: LD_ADDR_VAR 0 2
7875: PUSH
7876: LD_INT 0
7878: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , Arabi ] , [ f_type , unit_human ] , [ f_see , You ] ] ) ;
7879: LD_ADDR_VAR 0 1
7883: PUSH
7884: LD_INT 22
7886: PUSH
7887: LD_EXP 3
7891: PUSH
7892: EMPTY
7893: LIST
7894: LIST
7895: PUSH
7896: LD_INT 21
7898: PUSH
7899: LD_INT 1
7901: PUSH
7902: EMPTY
7903: LIST
7904: LIST
7905: PUSH
7906: LD_INT 101
7908: PUSH
7909: LD_EXP 1
7913: PUSH
7914: EMPTY
7915: LIST
7916: LIST
7917: PUSH
7918: EMPTY
7919: LIST
7920: LIST
7921: LIST
7922: PPUSH
7923: CALL_OW 69
7927: ST_TO_ADDR
// for i in pom do
7928: LD_ADDR_LOC 1
7932: PUSH
7933: LD_VAR 0 1
7937: PUSH
7938: FOR_IN
7939: IFFALSE 7968
// if GetLives ( i ) < 250 then
7941: LD_LOC 1
7945: PPUSH
7946: CALL_OW 256
7950: PUSH
7951: LD_INT 250
7953: LESS
7954: IFFALSE 7966
// jedn = i ;
7956: LD_ADDR_VAR 0 2
7960: PUSH
7961: LD_LOC 1
7965: ST_TO_ADDR
7966: GO 7938
7968: POP
7969: POP
// if jedn <> 0 then
7970: LD_VAR 0 2
7974: PUSH
7975: LD_INT 0
7977: NONEQUAL
7978: IFFALSE 7989
// Hint ( stimulationdrugs ) else
7980: LD_STRING stimulationdrugs
7982: PPUSH
7983: CALL_OW 339
7987: GO 7990
// enable ;
7989: ENABLE
// end ; end_of_file
7990: PPOPN 2
7992: END
// export CREATE_AR_PROTIOFENZIVU_LIST ; export JEDNOTKY_BAZE_2_LIST ; export JEDNOTKY_BAZE_3_LIST ; export Ar_utok1_LIST ; export Ar_utok2_LIST ; export Ar_utok3_LIST ; export Ar_utok4_LIST ; export Ar_utoklast_LIST ; export AR_backa_LIST ; export GARYL ; export LISAL ; export YAML ; export FRANKL ; export CORNELL ; export BOBL ; export CYRL ; export DONL ; export BROWNL ; var ah , av ; function prepare_human ( sex , clas , level , name ) ; begin
7993: LD_INT 0
7995: PPUSH
// PrepareHuman ( sex , clas , level ) ;
7996: LD_VAR 0 1
8000: PPUSH
8001: LD_VAR 0 2
8005: PPUSH
8006: LD_VAR 0 3
8010: PPUSH
8011: CALL_OW 380
// hc_name := name ;
8015: LD_ADDR_OWVAR 26
8019: PUSH
8020: LD_VAR 0 4
8024: ST_TO_ADDR
// end ;
8025: LD_VAR 0 5
8029: RET
// export function nacti_osobu ( ident ) ; begin
8030: LD_INT 0
8032: PPUSH
// if CheckCharacterSet ( ident ) then
8033: LD_VAR 0 1
8037: PPUSH
8038: CALL_OW 29
8042: IFFALSE 8061
// result := CreateCharacter ( ident ) else
8044: LD_ADDR_VAR 0 2
8048: PUSH
8049: LD_VAR 0 1
8053: PPUSH
8054: CALL_OW 34
8058: ST_TO_ADDR
8059: GO 8069
// result := 0 ;
8061: LD_ADDR_VAR 0 2
8065: PUSH
8066: LD_INT 0
8068: ST_TO_ADDR
// end ;
8069: LD_VAR 0 2
8073: RET
// export function create_amici ; var i ; begin
8074: LD_INT 0
8076: PPUSH
8077: PPUSH
// uc_side = You ;
8078: LD_ADDR_OWVAR 20
8082: PUSH
8083: LD_EXP 1
8087: ST_TO_ADDR
// uc_nation = nation_american ;
8088: LD_ADDR_OWVAR 21
8092: PUSH
8093: LD_INT 1
8095: ST_TO_ADDR
// vc_chassis := us_medium_tracked ;
8096: LD_ADDR_OWVAR 37
8100: PUSH
8101: LD_INT 3
8103: ST_TO_ADDR
// vc_control = control_computer ;
8104: LD_ADDR_OWVAR 38
8108: PUSH
8109: LD_INT 3
8111: ST_TO_ADDR
// vc_engine = engine_solar ;
8112: LD_ADDR_OWVAR 39
8116: PUSH
8117: LD_INT 2
8119: ST_TO_ADDR
// vc_weapon = us_radar ;
8120: LD_ADDR_OWVAR 40
8124: PUSH
8125: LD_INT 11
8127: ST_TO_ADDR
// av = CreateVehicle ;
8128: LD_ADDR_LOC 11
8132: PUSH
8133: CALL_OW 45
8137: ST_TO_ADDR
// Radar_enter := av ;
8138: LD_ADDR_EXP 44
8142: PUSH
8143: LD_LOC 11
8147: ST_TO_ADDR
// PlaceUnitXY ( av , 85 , 145 , false ) ;
8148: LD_LOC 11
8152: PPUSH
8153: LD_INT 85
8155: PPUSH
8156: LD_INT 145
8158: PPUSH
8159: LD_INT 0
8161: PPUSH
8162: CALL_OW 48
// for i in Amici_enter do
8166: LD_ADDR_VAR 0 2
8170: PUSH
8171: LD_EXP 43
8175: PUSH
8176: FOR_IN
8177: IFFALSE 8196
// PlaceUnitArea ( i , AMEnter , false ) ;
8179: LD_VAR 0 2
8183: PPUSH
8184: LD_INT 1
8186: PPUSH
8187: LD_INT 0
8189: PPUSH
8190: CALL_OW 49
8194: GO 8176
8196: POP
8197: POP
// end ;
8198: LD_VAR 0 1
8202: RET
// export function create_ar_protiofenzivu ; var pom ; begin
8203: LD_INT 0
8205: PPUSH
8206: PPUSH
// pom = [ ] ;
8207: LD_ADDR_VAR 0 2
8211: PUSH
8212: EMPTY
8213: ST_TO_ADDR
// uc_side := Arabi ;
8214: LD_ADDR_OWVAR 20
8218: PUSH
8219: LD_EXP 3
8223: ST_TO_ADDR
// uc_nation := nation_arabian ;
8224: LD_ADDR_OWVAR 21
8228: PUSH
8229: LD_INT 2
8231: ST_TO_ADDR
// uc_direction := 3 ;
8232: LD_ADDR_OWVAR 24
8236: PUSH
8237: LD_INT 3
8239: ST_TO_ADDR
// prepare_human ( sex_male , class_mechanic , Ar_levely [ difficulty ] , Hasam El Azis ) ;
8240: LD_INT 1
8242: PPUSH
8243: LD_INT 3
8245: PPUSH
8246: LD_EXP 49
8250: PUSH
8251: LD_OWVAR 67
8255: ARRAY
8256: PPUSH
8257: LD_STRING Hasam El Azis
8259: PPUSH
8260: CALL 7993 0 4
// ah = CreateHuman ;
8264: LD_ADDR_LOC 10
8268: PUSH
8269: CALL_OW 44
8273: ST_TO_ADDR
// vc_chassis := ar_half_tracked ;
8274: LD_ADDR_OWVAR 37
8278: PUSH
8279: LD_INT 14
8281: ST_TO_ADDR
// vc_control := control_manual ;
8282: LD_ADDR_OWVAR 38
8286: PUSH
8287: LD_INT 1
8289: ST_TO_ADDR
// vc_engine := engine_combustion ;
8290: LD_ADDR_OWVAR 39
8294: PUSH
8295: LD_INT 1
8297: ST_TO_ADDR
// vc_weapon := ar_gun ;
8298: LD_ADDR_OWVAR 40
8302: PUSH
8303: LD_INT 27
8305: ST_TO_ADDR
// av = CreateVehicle ;
8306: LD_ADDR_LOC 11
8310: PUSH
8311: CALL_OW 45
8315: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
8316: LD_LOC 10
8320: PPUSH
8321: LD_LOC 11
8325: PPUSH
8326: CALL_OW 52
// pom = pom ^ av ;
8330: LD_ADDR_VAR 0 2
8334: PUSH
8335: LD_VAR 0 2
8339: PUSH
8340: LD_LOC 11
8344: ADD
8345: ST_TO_ADDR
// prepare_human ( sex_female , class_mechanic , Ar_levely [ difficulty ] - 2 ,  ) ;
8346: LD_INT 2
8348: PPUSH
8349: LD_INT 3
8351: PPUSH
8352: LD_EXP 49
8356: PUSH
8357: LD_OWVAR 67
8361: ARRAY
8362: PUSH
8363: LD_INT 2
8365: MINUS
8366: PPUSH
8367: LD_STRING 
8369: PPUSH
8370: CALL 7993 0 4
// ah = CreateHuman ;
8374: LD_ADDR_LOC 10
8378: PUSH
8379: CALL_OW 44
8383: ST_TO_ADDR
// vc_chassis := ar_light_trike ;
8384: LD_ADDR_OWVAR 37
8388: PUSH
8389: LD_INT 12
8391: ST_TO_ADDR
// vc_control := control_manual ;
8392: LD_ADDR_OWVAR 38
8396: PUSH
8397: LD_INT 1
8399: ST_TO_ADDR
// vc_engine := engine_solar ;
8400: LD_ADDR_OWVAR 39
8404: PUSH
8405: LD_INT 2
8407: ST_TO_ADDR
// vc_weapon := ar_double_machine_gun ;
8408: LD_ADDR_OWVAR 40
8412: PUSH
8413: LD_INT 24
8415: ST_TO_ADDR
// av = CreateVehicle ;
8416: LD_ADDR_LOC 11
8420: PUSH
8421: CALL_OW 45
8425: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
8426: LD_LOC 10
8430: PPUSH
8431: LD_LOC 11
8435: PPUSH
8436: CALL_OW 52
// pom = pom ^ av ;
8440: LD_ADDR_VAR 0 2
8444: PUSH
8445: LD_VAR 0 2
8449: PUSH
8450: LD_LOC 11
8454: ADD
8455: ST_TO_ADDR
// if difficulty > 1 then
8456: LD_OWVAR 67
8460: PUSH
8461: LD_INT 1
8463: GREATER
8464: IFFALSE 8498
// begin ah = get_human ( get_sex , class_soldier , Ar_levely [ difficulty ] ,  ) ;
8466: LD_ADDR_LOC 10
8470: PUSH
8471: CALL 10530 0 0
8475: PPUSH
8476: LD_INT 1
8478: PPUSH
8479: LD_EXP 49
8483: PUSH
8484: LD_OWVAR 67
8488: ARRAY
8489: PPUSH
8490: LD_STRING 
8492: PPUSH
8493: CALL 14094 0 4
8497: ST_TO_ADDR
// end ; if difficulty > 2 then
8498: LD_OWVAR 67
8502: PUSH
8503: LD_INT 2
8505: GREATER
8506: IFFALSE 8566
// begin vc_chassis := ar_medium_trike ;
8508: LD_ADDR_OWVAR 37
8512: PUSH
8513: LD_INT 13
8515: ST_TO_ADDR
// vc_control := control_apeman ;
8516: LD_ADDR_OWVAR 38
8520: PUSH
8521: LD_INT 5
8523: ST_TO_ADDR
// vc_engine := engine_siberite ;
8524: LD_ADDR_OWVAR 39
8528: PUSH
8529: LD_INT 3
8531: ST_TO_ADDR
// vc_weapon := ar_multimissile_ballista ;
8532: LD_ADDR_OWVAR 40
8536: PUSH
8537: LD_INT 22
8539: ST_TO_ADDR
// av = CreateVehicle ;
8540: LD_ADDR_LOC 11
8544: PUSH
8545: CALL_OW 45
8549: ST_TO_ADDR
// pom = pom ^ av ;
8550: LD_ADDR_VAR 0 2
8554: PUSH
8555: LD_VAR 0 2
8559: PUSH
8560: LD_LOC 11
8564: ADD
8565: ST_TO_ADDR
// end ; CREATE_AR_PROTIOFENZIVU_LIST := pom ;
8566: LD_ADDR_EXP 10
8570: PUSH
8571: LD_VAR 0 2
8575: ST_TO_ADDR
// end ;
8576: LD_VAR 0 1
8580: RET
// export function create_auto_pro_solopa ; begin
8581: LD_INT 0
8583: PPUSH
// uc_side := Arabi ;
8584: LD_ADDR_OWVAR 20
8588: PUSH
8589: LD_EXP 3
8593: ST_TO_ADDR
// uc_nation := nation_arabian ;
8594: LD_ADDR_OWVAR 21
8598: PUSH
8599: LD_INT 2
8601: ST_TO_ADDR
// uc_direction := 3 ;
8602: LD_ADDR_OWVAR 24
8606: PUSH
8607: LD_INT 3
8609: ST_TO_ADDR
// vc_chassis := ar_half_tracked ;
8610: LD_ADDR_OWVAR 37
8614: PUSH
8615: LD_INT 14
8617: ST_TO_ADDR
// vc_control := control_manual ;
8618: LD_ADDR_OWVAR 38
8622: PUSH
8623: LD_INT 1
8625: ST_TO_ADDR
// vc_engine := engine_siberite ;
8626: LD_ADDR_OWVAR 39
8630: PUSH
8631: LD_INT 3
8633: ST_TO_ADDR
// vc_weapon := ar_gun ;
8634: LD_ADDR_OWVAR 40
8638: PUSH
8639: LD_INT 27
8641: ST_TO_ADDR
// av := CreateVehicle ;
8642: LD_ADDR_LOC 11
8646: PUSH
8647: CALL_OW 45
8651: ST_TO_ADDR
// result := av ;
8652: LD_ADDR_VAR 0 1
8656: PUSH
8657: LD_LOC 11
8661: ST_TO_ADDR
// end ;
8662: LD_VAR 0 1
8666: RET
// var pom3 , pom4 , pom5 , pom6 , pom1 ; export function dodej_skily ; var pom , i ; begin
8667: LD_INT 0
8669: PPUSH
8670: PPUSH
8671: PPUSH
// uprav_cloveka ( A2_mor3 , class_mortar , Ar_levely [ difficulty ] ) ;
8672: LD_INT 92
8674: PPUSH
8675: LD_INT 8
8677: PPUSH
8678: LD_EXP 49
8682: PUSH
8683: LD_OWVAR 67
8687: ARRAY
8688: PPUSH
8689: CALL 8933 0 3
// uprav_cloveka ( A2_zas1 , class_soldier , Ar_levely [ difficulty ] ) ;
8693: LD_INT 82
8695: PPUSH
8696: LD_INT 1
8698: PPUSH
8699: LD_EXP 49
8703: PUSH
8704: LD_OWVAR 67
8708: ARRAY
8709: PPUSH
8710: CALL 8933 0 3
// uprav_cloveka ( A2_zas2 , class_soldier , Ar_levely [ difficulty ] ) ;
8714: LD_INT 83
8716: PPUSH
8717: LD_INT 1
8719: PPUSH
8720: LD_EXP 49
8724: PUSH
8725: LD_OWVAR 67
8729: ARRAY
8730: PPUSH
8731: CALL 8933 0 3
// uprav_cloveka ( A3_zas1 , class_soldier , Ar_levely [ difficulty ] ) ;
8735: LD_INT 101
8737: PPUSH
8738: LD_INT 1
8740: PPUSH
8741: LD_EXP 49
8745: PUSH
8746: LD_OWVAR 67
8750: ARRAY
8751: PPUSH
8752: CALL 8933 0 3
// uprav_cloveka ( A3_solop , class_engineer , Ar_levely [ difficulty ] ) ;
8756: LD_INT 102
8758: PPUSH
8759: LD_INT 2
8761: PPUSH
8762: LD_EXP 49
8766: PUSH
8767: LD_OWVAR 67
8771: ARRAY
8772: PPUSH
8773: CALL 8933 0 3
// pom = [ A3_rme1 , A3_rme2 , A3_rme3 ] ;
8777: LD_ADDR_VAR 0 2
8781: PUSH
8782: LD_INT 96
8784: PUSH
8785: LD_INT 95
8787: PUSH
8788: LD_INT 94
8790: PUSH
8791: EMPTY
8792: LIST
8793: LIST
8794: LIST
8795: ST_TO_ADDR
// for i in pom do
8796: LD_ADDR_VAR 0 3
8800: PUSH
8801: LD_VAR 0 2
8805: PUSH
8806: FOR_IN
8807: IFFALSE 8834
// uprav_cloveka ( i , class_mechanic , Ar_levely [ difficulty ] ) ;
8809: LD_VAR 0 3
8813: PPUSH
8814: LD_INT 3
8816: PPUSH
8817: LD_EXP 49
8821: PUSH
8822: LD_OWVAR 67
8826: ARRAY
8827: PPUSH
8828: CALL 8933 0 3
8832: GO 8806
8834: POP
8835: POP
// end ;
8836: LD_VAR 0 1
8840: RET
// function set_skills ( un , skills ) ; begin
8841: LD_INT 0
8843: PPUSH
// SetSkill ( un , skill_combat , skills [ 1 ] ) ;
8844: LD_VAR 0 1
8848: PPUSH
8849: LD_INT 1
8851: PPUSH
8852: LD_VAR 0 2
8856: PUSH
8857: LD_INT 1
8859: ARRAY
8860: PPUSH
8861: CALL_OW 237
// SetSkill ( un , skill_engineering , skills [ 2 ] ) ;
8865: LD_VAR 0 1
8869: PPUSH
8870: LD_INT 2
8872: PPUSH
8873: LD_VAR 0 2
8877: PUSH
8878: LD_INT 2
8880: ARRAY
8881: PPUSH
8882: CALL_OW 237
// SetSkill ( un , skill_mechanical , skills [ 3 ] ) ;
8886: LD_VAR 0 1
8890: PPUSH
8891: LD_INT 3
8893: PPUSH
8894: LD_VAR 0 2
8898: PUSH
8899: LD_INT 3
8901: ARRAY
8902: PPUSH
8903: CALL_OW 237
// SetSkill ( un , skill_scientistic , skills [ 4 ] ) ;
8907: LD_VAR 0 1
8911: PPUSH
8912: LD_INT 4
8914: PPUSH
8915: LD_VAR 0 2
8919: PUSH
8920: LD_INT 4
8922: ARRAY
8923: PPUSH
8924: CALL_OW 237
// end ;
8928: LD_VAR 0 3
8932: RET
// function uprav_cloveka ( un , clas , lev ) ; begin
8933: LD_INT 0
8935: PPUSH
// prepare_human ( sex_male , clas , lev ,  ) ;
8936: LD_INT 1
8938: PPUSH
8939: LD_VAR 0 2
8943: PPUSH
8944: LD_VAR 0 3
8948: PPUSH
8949: LD_STRING 
8951: PPUSH
8952: CALL 7993 0 4
// ah = CreateHuman ;
8956: LD_ADDR_LOC 10
8960: PUSH
8961: CALL_OW 44
8965: ST_TO_ADDR
// pom1 = get_skills ( ah ) ;
8966: LD_ADDR_LOC 16
8970: PUSH
8971: LD_LOC 10
8975: PPUSH
8976: CALL 12497 0 1
8980: ST_TO_ADDR
// set_skills ( un , get_skills ( ah ) ) ;
8981: LD_VAR 0 1
8985: PPUSH
8986: LD_LOC 10
8990: PPUSH
8991: CALL 12497 0 1
8995: PPUSH
8996: CALL 8841 0 2
// DestroyUnit ( ah ) ;
9000: LD_LOC 10
9004: PPUSH
9005: CALL_OW 65
// end ;
9009: LD_VAR 0 4
9013: RET
// export function vytvor_opravare ; var pom ; begin
9014: LD_INT 0
9016: PPUSH
9017: PPUSH
// uc_side := Arabi ;
9018: LD_ADDR_OWVAR 20
9022: PUSH
9023: LD_EXP 3
9027: ST_TO_ADDR
// uc_nation := nation_arabian ;
9028: LD_ADDR_OWVAR 21
9032: PUSH
9033: LD_INT 2
9035: ST_TO_ADDR
// uc_direction := 3 ;
9036: LD_ADDR_OWVAR 24
9040: PUSH
9041: LD_INT 3
9043: ST_TO_ADDR
// pom = [ ] ;
9044: LD_ADDR_VAR 0 2
9048: PUSH
9049: EMPTY
9050: ST_TO_ADDR
// if difficulty < 3 then
9051: LD_OWVAR 67
9055: PUSH
9056: LD_INT 3
9058: LESS
9059: IFFALSE 9133
// begin prepare_human ( sex_male , class_engineer , Ar_levely [ difficulty ] + 1 , Gru Pakansu ) ;
9061: LD_INT 1
9063: PPUSH
9064: LD_INT 2
9066: PPUSH
9067: LD_EXP 49
9071: PUSH
9072: LD_OWVAR 67
9076: ARRAY
9077: PUSH
9078: LD_INT 1
9080: PLUS
9081: PPUSH
9082: LD_STRING Gru Pakansu
9084: PPUSH
9085: CALL 7993 0 4
// ah = CreateHuman ;
9089: LD_ADDR_LOC 10
9093: PUSH
9094: CALL_OW 44
9098: ST_TO_ADDR
// PlaceUnitXY ( ah , 19 , 6 , false ) ;
9099: LD_LOC 10
9103: PPUSH
9104: LD_INT 19
9106: PPUSH
9107: LD_INT 6
9109: PPUSH
9110: LD_INT 0
9112: PPUSH
9113: CALL_OW 48
// pom = pom ^ ah ;
9117: LD_ADDR_VAR 0 2
9121: PUSH
9122: LD_VAR 0 2
9126: PUSH
9127: LD_LOC 10
9131: ADD
9132: ST_TO_ADDR
// end ; if difficulty < 2 then
9133: LD_OWVAR 67
9137: PUSH
9138: LD_INT 2
9140: LESS
9141: IFFALSE 9217
// begin prepare_human ( get_sex , class_engineer , Ar_levely [ difficulty ] + 2 ,  ) ;
9143: CALL 10530 0 0
9147: PPUSH
9148: LD_INT 2
9150: PPUSH
9151: LD_EXP 49
9155: PUSH
9156: LD_OWVAR 67
9160: ARRAY
9161: PUSH
9162: LD_INT 2
9164: PLUS
9165: PPUSH
9166: LD_STRING 
9168: PPUSH
9169: CALL 7993 0 4
// ah = CreateHuman ;
9173: LD_ADDR_LOC 10
9177: PUSH
9178: CALL_OW 44
9182: ST_TO_ADDR
// PlaceUnitXY ( ah , 25 , 1 , false ) ;
9183: LD_LOC 10
9187: PPUSH
9188: LD_INT 25
9190: PPUSH
9191: LD_INT 1
9193: PPUSH
9194: LD_INT 0
9196: PPUSH
9197: CALL_OW 48
// pom = pom ^ ah ;
9201: LD_ADDR_VAR 0 2
9205: PUSH
9206: LD_VAR 0 2
9210: PUSH
9211: LD_LOC 10
9215: ADD
9216: ST_TO_ADDR
// end ; result := pom ;
9217: LD_ADDR_VAR 0 1
9221: PUSH
9222: LD_VAR 0 2
9226: ST_TO_ADDR
// end ;
9227: LD_VAR 0 1
9231: RET
// export function vojcli_base_2 ; var pom ; var i , j ; begin
9232: LD_INT 0
9234: PPUSH
9235: PPUSH
9236: PPUSH
9237: PPUSH
// pom = [ ] ;
9238: LD_ADDR_VAR 0 2
9242: PUSH
9243: EMPTY
9244: ST_TO_ADDR
// uc_side := Arabi ;
9245: LD_ADDR_OWVAR 20
9249: PUSH
9250: LD_EXP 3
9254: ST_TO_ADDR
// uc_nation := nation_arabian ;
9255: LD_ADDR_OWVAR 21
9259: PUSH
9260: LD_INT 2
9262: ST_TO_ADDR
// uc_direction := 0 ;
9263: LD_ADDR_OWVAR 24
9267: PUSH
9268: LD_INT 0
9270: ST_TO_ADDR
// for i = 1 to 7 do
9271: LD_ADDR_VAR 0 3
9275: PUSH
9276: DOUBLE
9277: LD_INT 1
9279: DEC
9280: ST_TO_ADDR
9281: LD_INT 7
9283: PUSH
9284: FOR_TO
9285: IFFALSE 9359
// begin prepare_human ( get_sex_uprava ( 1 , i ) , class_soldier , Ar_levely [ difficulty ] , get_name ( 1 , i ) ) ;
9287: LD_INT 1
9289: PPUSH
9290: LD_VAR 0 3
9294: PPUSH
9295: CALL 10565 0 2
9299: PPUSH
9300: LD_INT 1
9302: PPUSH
9303: LD_EXP 49
9307: PUSH
9308: LD_OWVAR 67
9312: ARRAY
9313: PPUSH
9314: LD_INT 1
9316: PPUSH
9317: LD_VAR 0 3
9321: PPUSH
9322: CALL 10781 0 2
9326: PPUSH
9327: CALL 7993 0 4
// ah = CreateHuman ;
9331: LD_ADDR_LOC 10
9335: PUSH
9336: CALL_OW 44
9340: ST_TO_ADDR
// pom = pom ^ ah ;
9341: LD_ADDR_VAR 0 2
9345: PUSH
9346: LD_VAR 0 2
9350: PUSH
9351: LD_LOC 10
9355: ADD
9356: ST_TO_ADDR
// end ;
9357: GO 9284
9359: POP
9360: POP
// for i = 1 to 3 do
9361: LD_ADDR_VAR 0 3
9365: PUSH
9366: DOUBLE
9367: LD_INT 1
9369: DEC
9370: ST_TO_ADDR
9371: LD_INT 3
9373: PUSH
9374: FOR_TO
9375: IFFALSE 9449
// begin prepare_human ( get_sex_uprava ( 1 , i ) , class_mortar , Ar_levely [ difficulty ] , get_name ( 1 , i ) ) ;
9377: LD_INT 1
9379: PPUSH
9380: LD_VAR 0 3
9384: PPUSH
9385: CALL 10565 0 2
9389: PPUSH
9390: LD_INT 8
9392: PPUSH
9393: LD_EXP 49
9397: PUSH
9398: LD_OWVAR 67
9402: ARRAY
9403: PPUSH
9404: LD_INT 1
9406: PPUSH
9407: LD_VAR 0 3
9411: PPUSH
9412: CALL 10781 0 2
9416: PPUSH
9417: CALL 7993 0 4
// ah = CreateHuman ;
9421: LD_ADDR_LOC 10
9425: PUSH
9426: CALL_OW 44
9430: ST_TO_ADDR
// pom = pom ^ ah ;
9431: LD_ADDR_VAR 0 2
9435: PUSH
9436: LD_VAR 0 2
9440: PUSH
9441: LD_LOC 10
9445: ADD
9446: ST_TO_ADDR
// end ;
9447: GO 9374
9449: POP
9450: POP
// for i = 1 to 2 do
9451: LD_ADDR_VAR 0 3
9455: PUSH
9456: DOUBLE
9457: LD_INT 1
9459: DEC
9460: ST_TO_ADDR
9461: LD_INT 2
9463: PUSH
9464: FOR_TO
9465: IFFALSE 9521
// begin prepare_human ( get_sex , class_scientistic , Ar_levely [ difficulty ] ,  ) ;
9467: CALL 10530 0 0
9471: PPUSH
9472: LD_INT 4
9474: PPUSH
9475: LD_EXP 49
9479: PUSH
9480: LD_OWVAR 67
9484: ARRAY
9485: PPUSH
9486: LD_STRING 
9488: PPUSH
9489: CALL 7993 0 4
// ah = CreateHuman ;
9493: LD_ADDR_LOC 10
9497: PUSH
9498: CALL_OW 44
9502: ST_TO_ADDR
// pom = pom ^ ah ;
9503: LD_ADDR_VAR 0 2
9507: PUSH
9508: LD_VAR 0 2
9512: PUSH
9513: LD_LOC 10
9517: ADD
9518: ST_TO_ADDR
// end ;
9519: GO 9464
9521: POP
9522: POP
// for i = 1 to 2 do
9523: LD_ADDR_VAR 0 3
9527: PUSH
9528: DOUBLE
9529: LD_INT 1
9531: DEC
9532: ST_TO_ADDR
9533: LD_INT 2
9535: PUSH
9536: FOR_TO
9537: IFFALSE 9619
// begin prepare_human ( get_sex_uprava ( 1 , i + 12 ) , class_mortar , Ar_levely [ difficulty ] , get_name ( 1 , i + 12 ) ) ;
9539: LD_INT 1
9541: PPUSH
9542: LD_VAR 0 3
9546: PUSH
9547: LD_INT 12
9549: PLUS
9550: PPUSH
9551: CALL 10565 0 2
9555: PPUSH
9556: LD_INT 8
9558: PPUSH
9559: LD_EXP 49
9563: PUSH
9564: LD_OWVAR 67
9568: ARRAY
9569: PPUSH
9570: LD_INT 1
9572: PPUSH
9573: LD_VAR 0 3
9577: PUSH
9578: LD_INT 12
9580: PLUS
9581: PPUSH
9582: CALL 10781 0 2
9586: PPUSH
9587: CALL 7993 0 4
// ah = CreateHuman ;
9591: LD_ADDR_LOC 10
9595: PUSH
9596: CALL_OW 44
9600: ST_TO_ADDR
// pom = pom ^ ah ;
9601: LD_ADDR_VAR 0 2
9605: PUSH
9606: LD_VAR 0 2
9610: PUSH
9611: LD_LOC 10
9615: ADD
9616: ST_TO_ADDR
// end ;
9617: GO 9536
9619: POP
9620: POP
// for i = 1 to 2 do
9621: LD_ADDR_VAR 0 3
9625: PUSH
9626: DOUBLE
9627: LD_INT 1
9629: DEC
9630: ST_TO_ADDR
9631: LD_INT 2
9633: PUSH
9634: FOR_TO
9635: IFFALSE 9717
// begin prepare_human ( get_sex_uprava ( 1 , i + 14 ) , class_engineer , Ar_levely [ difficulty ] , get_name ( 1 , i + 14 ) ) ;
9637: LD_INT 1
9639: PPUSH
9640: LD_VAR 0 3
9644: PUSH
9645: LD_INT 14
9647: PLUS
9648: PPUSH
9649: CALL 10565 0 2
9653: PPUSH
9654: LD_INT 2
9656: PPUSH
9657: LD_EXP 49
9661: PUSH
9662: LD_OWVAR 67
9666: ARRAY
9667: PPUSH
9668: LD_INT 1
9670: PPUSH
9671: LD_VAR 0 3
9675: PUSH
9676: LD_INT 14
9678: PLUS
9679: PPUSH
9680: CALL 10781 0 2
9684: PPUSH
9685: CALL 7993 0 4
// ah = CreateHuman ;
9689: LD_ADDR_LOC 10
9693: PUSH
9694: CALL_OW 44
9698: ST_TO_ADDR
// pom = pom ^ ah ;
9699: LD_ADDR_VAR 0 2
9703: PUSH
9704: LD_VAR 0 2
9708: PUSH
9709: LD_LOC 10
9713: ADD
9714: ST_TO_ADDR
// end ;
9715: GO 9634
9717: POP
9718: POP
// for i = 1 to 4 do
9719: LD_ADDR_VAR 0 3
9723: PUSH
9724: DOUBLE
9725: LD_INT 1
9727: DEC
9728: ST_TO_ADDR
9729: LD_INT 4
9731: PUSH
9732: FOR_TO
9733: IFFALSE 9815
// begin prepare_human ( get_sex_uprava ( 1 , i + 16 ) , class_mechanic , Ar_levely [ difficulty ] , get_name ( 1 , i + 16 ) ) ;
9735: LD_INT 1
9737: PPUSH
9738: LD_VAR 0 3
9742: PUSH
9743: LD_INT 16
9745: PLUS
9746: PPUSH
9747: CALL 10565 0 2
9751: PPUSH
9752: LD_INT 3
9754: PPUSH
9755: LD_EXP 49
9759: PUSH
9760: LD_OWVAR 67
9764: ARRAY
9765: PPUSH
9766: LD_INT 1
9768: PPUSH
9769: LD_VAR 0 3
9773: PUSH
9774: LD_INT 16
9776: PLUS
9777: PPUSH
9778: CALL 10781 0 2
9782: PPUSH
9783: CALL 7993 0 4
// ah = CreateHuman ;
9787: LD_ADDR_LOC 10
9791: PUSH
9792: CALL_OW 44
9796: ST_TO_ADDR
// pom = pom ^ ah ;
9797: LD_ADDR_VAR 0 2
9801: PUSH
9802: LD_VAR 0 2
9806: PUSH
9807: LD_LOC 10
9811: ADD
9812: ST_TO_ADDR
// end ;
9813: GO 9732
9815: POP
9816: POP
// for i = 1 to 3 do
9817: LD_ADDR_VAR 0 3
9821: PUSH
9822: DOUBLE
9823: LD_INT 1
9825: DEC
9826: ST_TO_ADDR
9827: LD_INT 3
9829: PUSH
9830: FOR_TO
9831: IFFALSE 9913
// begin prepare_human ( get_sex_uprava ( 1 , i + 20 ) , class_mechanic , Ar_levely [ difficulty ] , get_name ( 1 , i + 20 ) ) ;
9833: LD_INT 1
9835: PPUSH
9836: LD_VAR 0 3
9840: PUSH
9841: LD_INT 20
9843: PLUS
9844: PPUSH
9845: CALL 10565 0 2
9849: PPUSH
9850: LD_INT 3
9852: PPUSH
9853: LD_EXP 49
9857: PUSH
9858: LD_OWVAR 67
9862: ARRAY
9863: PPUSH
9864: LD_INT 1
9866: PPUSH
9867: LD_VAR 0 3
9871: PUSH
9872: LD_INT 20
9874: PLUS
9875: PPUSH
9876: CALL 10781 0 2
9880: PPUSH
9881: CALL 7993 0 4
// ah = CreateHuman ;
9885: LD_ADDR_LOC 10
9889: PUSH
9890: CALL_OW 44
9894: ST_TO_ADDR
// pom = pom ^ ah ;
9895: LD_ADDR_VAR 0 2
9899: PUSH
9900: LD_VAR 0 2
9904: PUSH
9905: LD_LOC 10
9909: ADD
9910: ST_TO_ADDR
// end ;
9911: GO 9830
9913: POP
9914: POP
// JEDNOTKY_BAZE_2_LIST = pom ;
9915: LD_ADDR_EXP 11
9919: PUSH
9920: LD_VAR 0 2
9924: ST_TO_ADDR
// end ;
9925: LD_VAR 0 1
9929: RET
// export function vojcli_base_3 ; var pom ; var i , j ; begin
9930: LD_INT 0
9932: PPUSH
9933: PPUSH
9934: PPUSH
9935: PPUSH
// pom = [ ] ;
9936: LD_ADDR_VAR 0 2
9940: PUSH
9941: EMPTY
9942: ST_TO_ADDR
// uc_side := Arabi ;
9943: LD_ADDR_OWVAR 20
9947: PUSH
9948: LD_EXP 3
9952: ST_TO_ADDR
// uc_nation := nation_arabian ;
9953: LD_ADDR_OWVAR 21
9957: PUSH
9958: LD_INT 2
9960: ST_TO_ADDR
// uc_direction := 0 ;
9961: LD_ADDR_OWVAR 24
9965: PUSH
9966: LD_INT 0
9968: ST_TO_ADDR
// for i = 1 to 4 do
9969: LD_ADDR_VAR 0 3
9973: PUSH
9974: DOUBLE
9975: LD_INT 1
9977: DEC
9978: ST_TO_ADDR
9979: LD_INT 4
9981: PUSH
9982: FOR_TO
9983: IFFALSE 10057
// begin prepare_human ( get_sex_uprava ( 2 , i ) , class_soldier , Ar_levely [ difficulty ] , get_name ( 2 , i ) ) ;
9985: LD_INT 2
9987: PPUSH
9988: LD_VAR 0 3
9992: PPUSH
9993: CALL 10565 0 2
9997: PPUSH
9998: LD_INT 1
10000: PPUSH
10001: LD_EXP 49
10005: PUSH
10006: LD_OWVAR 67
10010: ARRAY
10011: PPUSH
10012: LD_INT 2
10014: PPUSH
10015: LD_VAR 0 3
10019: PPUSH
10020: CALL 10781 0 2
10024: PPUSH
10025: CALL 7993 0 4
// ah = CreateHuman ;
10029: LD_ADDR_LOC 10
10033: PUSH
10034: CALL_OW 44
10038: ST_TO_ADDR
// pom = pom ^ ah ;
10039: LD_ADDR_VAR 0 2
10043: PUSH
10044: LD_VAR 0 2
10048: PUSH
10049: LD_LOC 10
10053: ADD
10054: ST_TO_ADDR
// end ;
10055: GO 9982
10057: POP
10058: POP
// for i = 1 to 3 do
10059: LD_ADDR_VAR 0 3
10063: PUSH
10064: DOUBLE
10065: LD_INT 1
10067: DEC
10068: ST_TO_ADDR
10069: LD_INT 3
10071: PUSH
10072: FOR_TO
10073: IFFALSE 10147
// begin prepare_human ( get_sex_uprava ( 2 , i ) , class_mortar , Ar_levely [ difficulty ] , get_name ( 2 , i ) ) ;
10075: LD_INT 2
10077: PPUSH
10078: LD_VAR 0 3
10082: PPUSH
10083: CALL 10565 0 2
10087: PPUSH
10088: LD_INT 8
10090: PPUSH
10091: LD_EXP 49
10095: PUSH
10096: LD_OWVAR 67
10100: ARRAY
10101: PPUSH
10102: LD_INT 2
10104: PPUSH
10105: LD_VAR 0 3
10109: PPUSH
10110: CALL 10781 0 2
10114: PPUSH
10115: CALL 7993 0 4
// ah = CreateHuman ;
10119: LD_ADDR_LOC 10
10123: PUSH
10124: CALL_OW 44
10128: ST_TO_ADDR
// pom = pom ^ ah ;
10129: LD_ADDR_VAR 0 2
10133: PUSH
10134: LD_VAR 0 2
10138: PUSH
10139: LD_LOC 10
10143: ADD
10144: ST_TO_ADDR
// end ;
10145: GO 10072
10147: POP
10148: POP
// for i = 1 to 4 do
10149: LD_ADDR_VAR 0 3
10153: PUSH
10154: DOUBLE
10155: LD_INT 1
10157: DEC
10158: ST_TO_ADDR
10159: LD_INT 4
10161: PUSH
10162: FOR_TO
10163: IFFALSE 10245
// begin prepare_human ( get_sex_uprava ( 2 , i + 7 ) , class_mechanic , Ar_levely [ difficulty ] , get_name ( 2 , i + 7 ) ) ;
10165: LD_INT 2
10167: PPUSH
10168: LD_VAR 0 3
10172: PUSH
10173: LD_INT 7
10175: PLUS
10176: PPUSH
10177: CALL 10565 0 2
10181: PPUSH
10182: LD_INT 3
10184: PPUSH
10185: LD_EXP 49
10189: PUSH
10190: LD_OWVAR 67
10194: ARRAY
10195: PPUSH
10196: LD_INT 2
10198: PPUSH
10199: LD_VAR 0 3
10203: PUSH
10204: LD_INT 7
10206: PLUS
10207: PPUSH
10208: CALL 10781 0 2
10212: PPUSH
10213: CALL 7993 0 4
// ah = CreateHuman ;
10217: LD_ADDR_LOC 10
10221: PUSH
10222: CALL_OW 44
10226: ST_TO_ADDR
// pom = pom ^ ah ;
10227: LD_ADDR_VAR 0 2
10231: PUSH
10232: LD_VAR 0 2
10236: PUSH
10237: LD_LOC 10
10241: ADD
10242: ST_TO_ADDR
// end ;
10243: GO 10162
10245: POP
10246: POP
// for i = 1 to 2 do
10247: LD_ADDR_VAR 0 3
10251: PUSH
10252: DOUBLE
10253: LD_INT 1
10255: DEC
10256: ST_TO_ADDR
10257: LD_INT 2
10259: PUSH
10260: FOR_TO
10261: IFFALSE 10317
// begin prepare_human ( get_sex , class_scientistic , Ar_levely [ difficulty ] ,  ) ;
10263: CALL 10530 0 0
10267: PPUSH
10268: LD_INT 4
10270: PPUSH
10271: LD_EXP 49
10275: PUSH
10276: LD_OWVAR 67
10280: ARRAY
10281: PPUSH
10282: LD_STRING 
10284: PPUSH
10285: CALL 7993 0 4
// ah = CreateHuman ;
10289: LD_ADDR_LOC 10
10293: PUSH
10294: CALL_OW 44
10298: ST_TO_ADDR
// pom = pom ^ ah ;
10299: LD_ADDR_VAR 0 2
10303: PUSH
10304: LD_VAR 0 2
10308: PUSH
10309: LD_LOC 10
10313: ADD
10314: ST_TO_ADDR
// end ;
10315: GO 10260
10317: POP
10318: POP
// for i = 1 to 2 do
10319: LD_ADDR_VAR 0 3
10323: PUSH
10324: DOUBLE
10325: LD_INT 1
10327: DEC
10328: ST_TO_ADDR
10329: LD_INT 2
10331: PUSH
10332: FOR_TO
10333: IFFALSE 10415
// begin prepare_human ( get_sex_uprava ( 2 , i + 13 ) , class_mortar , Ar_levely [ difficulty ] , get_name ( 2 , i + 13 ) ) ;
10335: LD_INT 2
10337: PPUSH
10338: LD_VAR 0 3
10342: PUSH
10343: LD_INT 13
10345: PLUS
10346: PPUSH
10347: CALL 10565 0 2
10351: PPUSH
10352: LD_INT 8
10354: PPUSH
10355: LD_EXP 49
10359: PUSH
10360: LD_OWVAR 67
10364: ARRAY
10365: PPUSH
10366: LD_INT 2
10368: PPUSH
10369: LD_VAR 0 3
10373: PUSH
10374: LD_INT 13
10376: PLUS
10377: PPUSH
10378: CALL 10781 0 2
10382: PPUSH
10383: CALL 7993 0 4
// ah = CreateHuman ;
10387: LD_ADDR_LOC 10
10391: PUSH
10392: CALL_OW 44
10396: ST_TO_ADDR
// pom = pom ^ ah ;
10397: LD_ADDR_VAR 0 2
10401: PUSH
10402: LD_VAR 0 2
10406: PUSH
10407: LD_LOC 10
10411: ADD
10412: ST_TO_ADDR
// end ;
10413: GO 10332
10415: POP
10416: POP
// for i = 1 to 2 do
10417: LD_ADDR_VAR 0 3
10421: PUSH
10422: DOUBLE
10423: LD_INT 1
10425: DEC
10426: ST_TO_ADDR
10427: LD_INT 2
10429: PUSH
10430: FOR_TO
10431: IFFALSE 10513
// begin prepare_human ( get_sex_uprava ( 2 , i + 15 ) , class_engineer , Ar_levely [ difficulty ] , get_name ( 2 , i + 15 ) ) ;
10433: LD_INT 2
10435: PPUSH
10436: LD_VAR 0 3
10440: PUSH
10441: LD_INT 15
10443: PLUS
10444: PPUSH
10445: CALL 10565 0 2
10449: PPUSH
10450: LD_INT 2
10452: PPUSH
10453: LD_EXP 49
10457: PUSH
10458: LD_OWVAR 67
10462: ARRAY
10463: PPUSH
10464: LD_INT 2
10466: PPUSH
10467: LD_VAR 0 3
10471: PUSH
10472: LD_INT 15
10474: PLUS
10475: PPUSH
10476: CALL 10781 0 2
10480: PPUSH
10481: CALL 7993 0 4
// ah = CreateHuman ;
10485: LD_ADDR_LOC 10
10489: PUSH
10490: CALL_OW 44
10494: ST_TO_ADDR
// pom = pom ^ ah ;
10495: LD_ADDR_VAR 0 2
10499: PUSH
10500: LD_VAR 0 2
10504: PUSH
10505: LD_LOC 10
10509: ADD
10510: ST_TO_ADDR
// end ;
10511: GO 10430
10513: POP
10514: POP
// JEDNOTKY_BAZE_3_LIST = pom ;
10515: LD_ADDR_EXP 12
10519: PUSH
10520: LD_VAR 0 2
10524: ST_TO_ADDR
// end ;
10525: LD_VAR 0 1
10529: RET
// function get_sex ; begin
10530: LD_INT 0
10532: PPUSH
// if Prob ( 20 ) then
10533: LD_INT 20
10535: PPUSH
10536: CALL_OW 13
10540: IFFALSE 10552
// result = sex_female else
10542: LD_ADDR_VAR 0 1
10546: PUSH
10547: LD_INT 2
10549: ST_TO_ADDR
10550: GO 10560
// result = sex_male ;
10552: LD_ADDR_VAR 0 1
10556: PUSH
10557: LD_INT 1
10559: ST_TO_ADDR
// end ;
10560: LD_VAR 0 1
10564: RET
// function get_sex_uprava ( ser , cis ) ; var a ; begin
10565: LD_INT 0
10567: PPUSH
10568: PPUSH
// case ser of 1 :
10569: LD_VAR 0 1
10573: PUSH
10574: LD_INT 1
10576: DOUBLE
10577: EQUAL
10578: IFTRUE 10582
10580: GO 10674
10582: POP
// if cis = 1 then
10583: LD_VAR 0 2
10587: PUSH
10588: LD_INT 1
10590: EQUAL
10591: IFFALSE 10603
// a = sex_female else
10593: LD_ADDR_VAR 0 4
10597: PUSH
10598: LD_INT 2
10600: ST_TO_ADDR
10601: GO 10672
// if cis in [ 3 , 4 , 5 , 7 , 8 , 13 , 14 , 15 , 20 , 23 ] then
10603: LD_VAR 0 2
10607: PUSH
10608: LD_INT 3
10610: PUSH
10611: LD_INT 4
10613: PUSH
10614: LD_INT 5
10616: PUSH
10617: LD_INT 7
10619: PUSH
10620: LD_INT 8
10622: PUSH
10623: LD_INT 13
10625: PUSH
10626: LD_INT 14
10628: PUSH
10629: LD_INT 15
10631: PUSH
10632: LD_INT 20
10634: PUSH
10635: LD_INT 23
10637: PUSH
10638: EMPTY
10639: LIST
10640: LIST
10641: LIST
10642: LIST
10643: LIST
10644: LIST
10645: LIST
10646: LIST
10647: LIST
10648: LIST
10649: IN
10650: IFFALSE 10662
// a = sex_male else
10652: LD_ADDR_VAR 0 4
10656: PUSH
10657: LD_INT 1
10659: ST_TO_ADDR
10660: GO 10672
// a = get_sex ; 2 :
10662: LD_ADDR_VAR 0 4
10666: PUSH
10667: CALL 10530 0 0
10671: ST_TO_ADDR
10672: GO 10766
10674: LD_INT 2
10676: DOUBLE
10677: EQUAL
10678: IFTRUE 10682
10680: GO 10765
10682: POP
// if cis in [ 5 ] then
10683: LD_VAR 0 2
10687: PUSH
10688: LD_INT 5
10690: PUSH
10691: EMPTY
10692: LIST
10693: IN
10694: IFFALSE 10706
// a = sex_female else
10696: LD_ADDR_VAR 0 4
10700: PUSH
10701: LD_INT 2
10703: ST_TO_ADDR
10704: GO 10763
// if cis in [ 2 , 3 , 4 , 8 , 11 , 14 , 17 ] then
10706: LD_VAR 0 2
10710: PUSH
10711: LD_INT 2
10713: PUSH
10714: LD_INT 3
10716: PUSH
10717: LD_INT 4
10719: PUSH
10720: LD_INT 8
10722: PUSH
10723: LD_INT 11
10725: PUSH
10726: LD_INT 14
10728: PUSH
10729: LD_INT 17
10731: PUSH
10732: EMPTY
10733: LIST
10734: LIST
10735: LIST
10736: LIST
10737: LIST
10738: LIST
10739: LIST
10740: IN
10741: IFFALSE 10753
// a = sex_male else
10743: LD_ADDR_VAR 0 4
10747: PUSH
10748: LD_INT 1
10750: ST_TO_ADDR
10751: GO 10763
// a = get_sex ; end ;
10753: LD_ADDR_VAR 0 4
10757: PUSH
10758: CALL 10530 0 0
10762: ST_TO_ADDR
10763: GO 10766
10765: POP
// result = a ;
10766: LD_ADDR_VAR 0 3
10770: PUSH
10771: LD_VAR 0 4
10775: ST_TO_ADDR
// end ;
10776: LD_VAR 0 3
10780: RET
// function get_name ( serie , cislo ) ; var a ; begin
10781: LD_INT 0
10783: PPUSH
10784: PPUSH
// a =  ;
10785: LD_ADDR_VAR 0 4
10789: PUSH
10790: LD_STRING 
10792: ST_TO_ADDR
// case serie of 1 :
10793: LD_VAR 0 1
10797: PUSH
10798: LD_INT 1
10800: DOUBLE
10801: EQUAL
10802: IFTRUE 10806
10804: GO 11024
10806: POP
// case cislo of 1 :
10807: LD_VAR 0 2
10811: PUSH
10812: LD_INT 1
10814: DOUBLE
10815: EQUAL
10816: IFTRUE 10820
10818: GO 10831
10820: POP
// a = Petronela Fagan ; 3 :
10821: LD_ADDR_VAR 0 4
10825: PUSH
10826: LD_STRING Petronela Fagan
10828: ST_TO_ADDR
10829: GO 11022
10831: LD_INT 3
10833: DOUBLE
10834: EQUAL
10835: IFTRUE 10839
10837: GO 10850
10839: POP
// a = Jaryn Floryk ; 4 :
10840: LD_ADDR_VAR 0 4
10844: PUSH
10845: LD_STRING Jaryn Floryk
10847: ST_TO_ADDR
10848: GO 11022
10850: LD_INT 4
10852: DOUBLE
10853: EQUAL
10854: IFTRUE 10858
10856: GO 10869
10858: POP
// a = Ira Smailer ; 5 :
10859: LD_ADDR_VAR 0 4
10863: PUSH
10864: LD_STRING Ira Smailer
10866: ST_TO_ADDR
10867: GO 11022
10869: LD_INT 5
10871: DOUBLE
10872: EQUAL
10873: IFTRUE 10877
10875: GO 10888
10877: POP
// a = Soren Rafin ; 7 :
10878: LD_ADDR_VAR 0 4
10882: PUSH
10883: LD_STRING Soren Rafin
10885: ST_TO_ADDR
10886: GO 11022
10888: LD_INT 7
10890: DOUBLE
10891: EQUAL
10892: IFTRUE 10896
10894: GO 10907
10896: POP
// a = Mark Kent ; 8 :
10897: LD_ADDR_VAR 0 4
10901: PUSH
10902: LD_STRING Mark Kent
10904: ST_TO_ADDR
10905: GO 11022
10907: LD_INT 8
10909: DOUBLE
10910: EQUAL
10911: IFTRUE 10915
10913: GO 10926
10915: POP
// a = Patrick Bull ; 13 :
10916: LD_ADDR_VAR 0 4
10920: PUSH
10921: LD_STRING Patrick Bull
10923: ST_TO_ADDR
10924: GO 11022
10926: LD_INT 13
10928: DOUBLE
10929: EQUAL
10930: IFTRUE 10934
10932: GO 10945
10934: POP
// a = Muzhid Galabi ; 14 :
10935: LD_ADDR_VAR 0 4
10939: PUSH
10940: LD_STRING Muzhid Galabi
10942: ST_TO_ADDR
10943: GO 11022
10945: LD_INT 14
10947: DOUBLE
10948: EQUAL
10949: IFTRUE 10953
10951: GO 10964
10953: POP
// a = Maxim Daigle ; 15 :
10954: LD_ADDR_VAR 0 4
10958: PUSH
10959: LD_STRING Maxim Daigle
10961: ST_TO_ADDR
10962: GO 11022
10964: LD_INT 15
10966: DOUBLE
10967: EQUAL
10968: IFTRUE 10972
10970: GO 10983
10972: POP
// a = Rick C. West ; 20 :
10973: LD_ADDR_VAR 0 4
10977: PUSH
10978: LD_STRING Rick C. West
10980: ST_TO_ADDR
10981: GO 11022
10983: LD_INT 20
10985: DOUBLE
10986: EQUAL
10987: IFTRUE 10991
10989: GO 11002
10991: POP
// a = Sinisa Mikhailovic ; 23 :
10992: LD_ADDR_VAR 0 4
10996: PUSH
10997: LD_STRING Sinisa Mikhailovic
10999: ST_TO_ADDR
11000: GO 11022
11002: LD_INT 23
11004: DOUBLE
11005: EQUAL
11006: IFTRUE 11010
11008: GO 11021
11010: POP
// a = Wayne Kettlewell ; end ; 2 :
11011: LD_ADDR_VAR 0 4
11015: PUSH
11016: LD_STRING Wayne Kettlewell
11018: ST_TO_ADDR
11019: GO 11022
11021: POP
11022: GO 11194
11024: LD_INT 2
11026: DOUBLE
11027: EQUAL
11028: IFTRUE 11032
11030: GO 11193
11032: POP
// case cislo of 2 :
11033: LD_VAR 0 2
11037: PUSH
11038: LD_INT 2
11040: DOUBLE
11041: EQUAL
11042: IFTRUE 11046
11044: GO 11057
11046: POP
// a = Danne Rydrgren ; 3 :
11047: LD_ADDR_VAR 0 4
11051: PUSH
11052: LD_STRING Danne Rydrgren
11054: ST_TO_ADDR
11055: GO 11191
11057: LD_INT 3
11059: DOUBLE
11060: EQUAL
11061: IFTRUE 11065
11063: GO 11076
11065: POP
// a = Alfred Van der Poel ; 4 :
11066: LD_ADDR_VAR 0 4
11070: PUSH
11071: LD_STRING Alfred Van der Poel
11073: ST_TO_ADDR
11074: GO 11191
11076: LD_INT 4
11078: DOUBLE
11079: EQUAL
11080: IFTRUE 11084
11082: GO 11095
11084: POP
// a = Muhammad Ali ; 5 :
11085: LD_ADDR_VAR 0 4
11089: PUSH
11090: LD_STRING Muhammad Ali
11092: ST_TO_ADDR
11093: GO 11191
11095: LD_INT 5
11097: DOUBLE
11098: EQUAL
11099: IFTRUE 11103
11101: GO 11114
11103: POP
// a = Elena Grubina ; 8 :
11104: LD_ADDR_VAR 0 4
11108: PUSH
11109: LD_STRING Elena Grubina
11111: ST_TO_ADDR
11112: GO 11191
11114: LD_INT 8
11116: DOUBLE
11117: EQUAL
11118: IFTRUE 11122
11120: GO 11133
11122: POP
// a = Oto Zimmerman ; 11 :
11123: LD_ADDR_VAR 0 4
11127: PUSH
11128: LD_STRING Oto Zimmerman
11130: ST_TO_ADDR
11131: GO 11191
11133: LD_INT 11
11135: DOUBLE
11136: EQUAL
11137: IFTRUE 11141
11139: GO 11152
11141: POP
// a = Neil Hoss ; 14 :
11142: LD_ADDR_VAR 0 4
11146: PUSH
11147: LD_STRING Neil Hoss
11149: ST_TO_ADDR
11150: GO 11191
11152: LD_INT 14
11154: DOUBLE
11155: EQUAL
11156: IFTRUE 11160
11158: GO 11171
11160: POP
// a = Cardi Nowitzke ; 17 :
11161: LD_ADDR_VAR 0 4
11165: PUSH
11166: LD_STRING Cardi Nowitzke
11168: ST_TO_ADDR
11169: GO 11191
11171: LD_INT 17
11173: DOUBLE
11174: EQUAL
11175: IFTRUE 11179
11177: GO 11190
11179: POP
// a = Leonard Van Horn ; end ; end ;
11180: LD_ADDR_VAR 0 4
11184: PUSH
11185: LD_STRING Leonard Van Horn
11187: ST_TO_ADDR
11188: GO 11191
11190: POP
11191: GO 11194
11193: POP
// result = a ;
11194: LD_ADDR_VAR 0 3
11198: PUSH
11199: LD_VAR 0 4
11203: ST_TO_ADDR
// end ;
11204: LD_VAR 0 3
11208: RET
// export function choose_vojaky ; var pom , i ; var ovyb ; var poc ; begin
11209: LD_INT 0
11211: PPUSH
11212: PPUSH
11213: PPUSH
11214: PPUSH
11215: PPUSH
// SetClass ( JMM , class_soldier ) ;
11216: LD_EXP 32
11220: PPUSH
11221: LD_INT 1
11223: PPUSH
11224: CALL_OW 336
// if Gary > 0 then
11228: LD_EXP 34
11232: PUSH
11233: LD_INT 0
11235: GREATER
11236: IFFALSE 11250
// SetClass ( Gary , class_soldier ) ;
11238: LD_EXP 34
11242: PPUSH
11243: LD_INT 1
11245: PPUSH
11246: CALL_OW 336
// if Lisa > 0 then
11250: LD_EXP 37
11254: PUSH
11255: LD_INT 0
11257: GREATER
11258: IFFALSE 11272
// SetClass ( Lisa , class_soldier ) ;
11260: LD_EXP 37
11264: PPUSH
11265: LD_INT 1
11267: PPUSH
11268: CALL_OW 336
// if Yamoko > 0 then
11272: LD_EXP 39
11276: PUSH
11277: LD_INT 0
11279: GREATER
11280: IFFALSE 11294
// SetClass ( Yamoko , class_soldier ) ;
11282: LD_EXP 39
11286: PPUSH
11287: LD_INT 1
11289: PPUSH
11290: CALL_OW 336
// if Frank > 0 then
11294: LD_EXP 36
11298: PUSH
11299: LD_INT 0
11301: GREATER
11302: IFFALSE 11316
// SetClass ( Frank , class_soldier ) ;
11304: LD_EXP 36
11308: PPUSH
11309: LD_INT 1
11311: PPUSH
11312: CALL_OW 336
// if Cornel > 0 then
11316: LD_EXP 38
11320: PUSH
11321: LD_INT 0
11323: GREATER
11324: IFFALSE 11338
// SetClass ( Cornel , class_soldier ) ;
11326: LD_EXP 38
11330: PPUSH
11331: LD_INT 1
11333: PPUSH
11334: CALL_OW 336
// if Bobby > 0 then
11338: LD_EXP 35
11342: PUSH
11343: LD_INT 0
11345: GREATER
11346: IFFALSE 11360
// SetClass ( Bobby , class_soldier ) ;
11348: LD_EXP 35
11352: PPUSH
11353: LD_INT 1
11355: PPUSH
11356: CALL_OW 336
// if Cyrus > 0 then
11360: LD_EXP 40
11364: PUSH
11365: LD_INT 0
11367: GREATER
11368: IFFALSE 11382
// SetClass ( Cyrus , class_soldier ) ;
11370: LD_EXP 40
11374: PPUSH
11375: LD_INT 1
11377: PPUSH
11378: CALL_OW 336
// if Don > 0 then
11382: LD_EXP 41
11386: PUSH
11387: LD_INT 0
11389: GREATER
11390: IFFALSE 11404
// SetClass ( Don , class_engineer ) ;
11392: LD_EXP 41
11396: PPUSH
11397: LD_INT 2
11399: PPUSH
11400: CALL_OW 336
// if Brown > 0 then
11404: LD_EXP 42
11408: PUSH
11409: LD_INT 0
11411: GREATER
11412: IFFALSE 11426
// SetClass ( Brown , class_soldier ) ;
11414: LD_EXP 42
11418: PPUSH
11419: LD_INT 1
11421: PPUSH
11422: CALL_OW 336
// ovyb = [ sel_not_changeable , sel_hired , sel_dont_change_class , JMM ] ;
11426: LD_ADDR_VAR 0 4
11430: PUSH
11431: LD_INT -4
11433: PUSH
11434: LD_INT -1
11436: PUSH
11437: LD_INT -6
11439: PUSH
11440: LD_EXP 32
11444: PUSH
11445: EMPTY
11446: LIST
11447: LIST
11448: LIST
11449: LIST
11450: ST_TO_ADDR
// ovyb = ovyb ^ [ sel_not_hired , Powell , sel_changeable , sel_change_class ] ;
11451: LD_ADDR_VAR 0 4
11455: PUSH
11456: LD_VAR 0 4
11460: PUSH
11461: LD_INT -2
11463: PUSH
11464: LD_EXP 33
11468: PUSH
11469: LD_INT -3
11471: PUSH
11472: LD_INT -5
11474: PUSH
11475: EMPTY
11476: LIST
11477: LIST
11478: LIST
11479: LIST
11480: ADD
11481: ST_TO_ADDR
// poc = 0 ;
11482: LD_ADDR_VAR 0 5
11486: PUSH
11487: LD_INT 0
11489: ST_TO_ADDR
// if Gary <> 0 and GARYL <> 7 then
11490: LD_EXP 34
11494: PUSH
11495: LD_INT 0
11497: NONEQUAL
11498: PUSH
11499: LD_EXP 19
11503: PUSH
11504: LD_INT 7
11506: NONEQUAL
11507: AND
11508: IFFALSE 11540
// begin ovyb = ovyb ^ Gary ;
11510: LD_ADDR_VAR 0 4
11514: PUSH
11515: LD_VAR 0 4
11519: PUSH
11520: LD_EXP 34
11524: ADD
11525: ST_TO_ADDR
// poc = poc + 1 ;
11526: LD_ADDR_VAR 0 5
11530: PUSH
11531: LD_VAR 0 5
11535: PUSH
11536: LD_INT 1
11538: PLUS
11539: ST_TO_ADDR
// end ; if Lisa <> 0 and LISAL <> 7 then
11540: LD_EXP 37
11544: PUSH
11545: LD_INT 0
11547: NONEQUAL
11548: PUSH
11549: LD_EXP 20
11553: PUSH
11554: LD_INT 7
11556: NONEQUAL
11557: AND
11558: IFFALSE 11590
// begin ovyb = ovyb ^ Lisa ;
11560: LD_ADDR_VAR 0 4
11564: PUSH
11565: LD_VAR 0 4
11569: PUSH
11570: LD_EXP 37
11574: ADD
11575: ST_TO_ADDR
// poc = poc + 1 ;
11576: LD_ADDR_VAR 0 5
11580: PUSH
11581: LD_VAR 0 5
11585: PUSH
11586: LD_INT 1
11588: PLUS
11589: ST_TO_ADDR
// end ; if Cornel <> 0 and CORNELL <> 7 then
11590: LD_EXP 38
11594: PUSH
11595: LD_INT 0
11597: NONEQUAL
11598: PUSH
11599: LD_EXP 23
11603: PUSH
11604: LD_INT 7
11606: NONEQUAL
11607: AND
11608: IFFALSE 11640
// begin ovyb = ovyb ^ Cornel ;
11610: LD_ADDR_VAR 0 4
11614: PUSH
11615: LD_VAR 0 4
11619: PUSH
11620: LD_EXP 38
11624: ADD
11625: ST_TO_ADDR
// poc = poc + 1 ;
11626: LD_ADDR_VAR 0 5
11630: PUSH
11631: LD_VAR 0 5
11635: PUSH
11636: LD_INT 1
11638: PLUS
11639: ST_TO_ADDR
// end ; if Frank <> 0 and FRANKL <> 7 then
11640: LD_EXP 36
11644: PUSH
11645: LD_INT 0
11647: NONEQUAL
11648: PUSH
11649: LD_EXP 22
11653: PUSH
11654: LD_INT 7
11656: NONEQUAL
11657: AND
11658: IFFALSE 11690
// begin ovyb = ovyb ^ Frank ;
11660: LD_ADDR_VAR 0 4
11664: PUSH
11665: LD_VAR 0 4
11669: PUSH
11670: LD_EXP 36
11674: ADD
11675: ST_TO_ADDR
// poc = poc + 1 ;
11676: LD_ADDR_VAR 0 5
11680: PUSH
11681: LD_VAR 0 5
11685: PUSH
11686: LD_INT 1
11688: PLUS
11689: ST_TO_ADDR
// end ; if Yamoko <> 0 and ( Frank = 0 or FRANKL = 7 ) then
11690: LD_EXP 39
11694: PUSH
11695: LD_INT 0
11697: NONEQUAL
11698: PUSH
11699: LD_EXP 36
11703: PUSH
11704: LD_INT 0
11706: EQUAL
11707: PUSH
11708: LD_EXP 22
11712: PUSH
11713: LD_INT 7
11715: EQUAL
11716: OR
11717: AND
11718: IFFALSE 11750
// begin ovyb = ovyb ^ Yamoko ;
11720: LD_ADDR_VAR 0 4
11724: PUSH
11725: LD_VAR 0 4
11729: PUSH
11730: LD_EXP 39
11734: ADD
11735: ST_TO_ADDR
// poc = poc + 1 ;
11736: LD_ADDR_VAR 0 5
11740: PUSH
11741: LD_VAR 0 5
11745: PUSH
11746: LD_INT 1
11748: PLUS
11749: ST_TO_ADDR
// end ; if Bobby <> 0 and BOBL <> 7 then
11750: LD_EXP 35
11754: PUSH
11755: LD_INT 0
11757: NONEQUAL
11758: PUSH
11759: LD_EXP 24
11763: PUSH
11764: LD_INT 7
11766: NONEQUAL
11767: AND
11768: IFFALSE 11800
// begin ovyb = ovyb ^ Bobby ;
11770: LD_ADDR_VAR 0 4
11774: PUSH
11775: LD_VAR 0 4
11779: PUSH
11780: LD_EXP 35
11784: ADD
11785: ST_TO_ADDR
// poc = poc + 1 ;
11786: LD_ADDR_VAR 0 5
11790: PUSH
11791: LD_VAR 0 5
11795: PUSH
11796: LD_INT 1
11798: PLUS
11799: ST_TO_ADDR
// end ; if Cyrus <> 0 and CYRL <> 7 then
11800: LD_EXP 40
11804: PUSH
11805: LD_INT 0
11807: NONEQUAL
11808: PUSH
11809: LD_EXP 25
11813: PUSH
11814: LD_INT 7
11816: NONEQUAL
11817: AND
11818: IFFALSE 11850
// begin ovyb = ovyb ^ Cyrus ;
11820: LD_ADDR_VAR 0 4
11824: PUSH
11825: LD_VAR 0 4
11829: PUSH
11830: LD_EXP 40
11834: ADD
11835: ST_TO_ADDR
// poc = poc + 1 ;
11836: LD_ADDR_VAR 0 5
11840: PUSH
11841: LD_VAR 0 5
11845: PUSH
11846: LD_INT 1
11848: PLUS
11849: ST_TO_ADDR
// end ; if Don <> 0 and DONL <> 7 then
11850: LD_EXP 41
11854: PUSH
11855: LD_INT 0
11857: NONEQUAL
11858: PUSH
11859: LD_EXP 26
11863: PUSH
11864: LD_INT 7
11866: NONEQUAL
11867: AND
11868: IFFALSE 11900
// begin ovyb = ovyb ^ Don ;
11870: LD_ADDR_VAR 0 4
11874: PUSH
11875: LD_VAR 0 4
11879: PUSH
11880: LD_EXP 41
11884: ADD
11885: ST_TO_ADDR
// poc = poc + 1 ;
11886: LD_ADDR_VAR 0 5
11890: PUSH
11891: LD_VAR 0 5
11895: PUSH
11896: LD_INT 1
11898: PLUS
11899: ST_TO_ADDR
// end ; if Brown <> 0 and BROWNL then
11900: LD_EXP 42
11904: PUSH
11905: LD_INT 0
11907: NONEQUAL
11908: PUSH
11909: LD_EXP 27
11913: AND
11914: IFFALSE 11946
// begin ovyb = ovyb ^ Brown ;
11916: LD_ADDR_VAR 0 4
11920: PUSH
11921: LD_VAR 0 4
11925: PUSH
11926: LD_EXP 42
11930: ADD
11931: ST_TO_ADDR
// poc = poc + 1 ;
11932: LD_ADDR_VAR 0 5
11936: PUSH
11937: LD_VAR 0 5
11941: PUSH
11942: LD_INT 1
11944: PLUS
11945: ST_TO_ADDR
// end ; pom = uprav_lidi ( lidi_other ) ;
11946: LD_ADDR_VAR 0 2
11950: PUSH
11951: LD_EXP 52
11955: PPUSH
11956: CALL 12313 0 1
11960: ST_TO_ADDR
// ovyb = ovyb ^ pom ;
11961: LD_ADDR_VAR 0 4
11965: PUSH
11966: LD_VAR 0 4
11970: PUSH
11971: LD_VAR 0 2
11975: ADD
11976: ST_TO_ADDR
// poc = poc + pom + 0 ;
11977: LD_ADDR_VAR 0 5
11981: PUSH
11982: LD_VAR 0 5
11986: PUSH
11987: LD_VAR 0 2
11991: PLUS
11992: PUSH
11993: LD_INT 0
11995: PLUS
11996: ST_TO_ADDR
// uc_side := You ;
11997: LD_ADDR_OWVAR 20
12001: PUSH
12002: LD_EXP 1
12006: ST_TO_ADDR
// uc_nation := nation_american ;
12007: LD_ADDR_OWVAR 21
12011: PUSH
12012: LD_INT 1
12014: ST_TO_ADDR
// uc_direction := 0 ;
12015: LD_ADDR_OWVAR 24
12019: PUSH
12020: LD_INT 0
12022: ST_TO_ADDR
// prepare_human ( sex_male , class_engineer , 6 ,  ) ;
12023: LD_INT 1
12025: PPUSH
12026: LD_INT 2
12028: PPUSH
12029: LD_INT 6
12031: PPUSH
12032: LD_STRING 
12034: PPUSH
12035: CALL 7993 0 4
// pom = CreateHuman ;
12039: LD_ADDR_VAR 0 2
12043: PUSH
12044: CALL_OW 44
12048: ST_TO_ADDR
// ovyb = ovyb ^ pom ;
12049: LD_ADDR_VAR 0 4
12053: PUSH
12054: LD_VAR 0 4
12058: PUSH
12059: LD_VAR 0 2
12063: ADD
12064: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , 6 ,  ) ;
12065: LD_INT 1
12067: PPUSH
12068: LD_INT 1
12070: PPUSH
12071: LD_INT 6
12073: PPUSH
12074: LD_STRING 
12076: PPUSH
12077: CALL 7993 0 4
// pom = CreateHuman ;
12081: LD_ADDR_VAR 0 2
12085: PUSH
12086: CALL_OW 44
12090: ST_TO_ADDR
// ovyb = ovyb ^ pom ;
12091: LD_ADDR_VAR 0 4
12095: PUSH
12096: LD_VAR 0 4
12100: PUSH
12101: LD_VAR 0 2
12105: ADD
12106: ST_TO_ADDR
// poc = poc + 2 ;
12107: LD_ADDR_VAR 0 5
12111: PUSH
12112: LD_VAR 0 5
12116: PUSH
12117: LD_INT 2
12119: PLUS
12120: ST_TO_ADDR
// if poc < 20 then
12121: LD_VAR 0 5
12125: PUSH
12126: LD_INT 20
12128: LESS
12129: IFFALSE 12233
// for i := 1 to 20 - poc do
12131: LD_ADDR_VAR 0 3
12135: PUSH
12136: DOUBLE
12137: LD_INT 1
12139: DEC
12140: ST_TO_ADDR
12141: LD_INT 20
12143: PUSH
12144: LD_VAR 0 5
12148: MINUS
12149: PUSH
12150: FOR_TO
12151: IFFALSE 12231
// begin if Rand ( 1 , 2 ) = 1 then
12153: LD_INT 1
12155: PPUSH
12156: LD_INT 2
12158: PPUSH
12159: CALL_OW 12
12163: PUSH
12164: LD_INT 1
12166: EQUAL
12167: IFFALSE 12187
// prepare_human ( sex_male , class_engineer , 6 ,  ) else
12169: LD_INT 1
12171: PPUSH
12172: LD_INT 2
12174: PPUSH
12175: LD_INT 6
12177: PPUSH
12178: LD_STRING 
12180: PPUSH
12181: CALL 7993 0 4
12185: GO 12203
// prepare_human ( sex_male , class_soldier , 6 ,  ) ;
12187: LD_INT 1
12189: PPUSH
12190: LD_INT 1
12192: PPUSH
12193: LD_INT 6
12195: PPUSH
12196: LD_STRING 
12198: PPUSH
12199: CALL 7993 0 4
// pom = CreateHuman ;
12203: LD_ADDR_VAR 0 2
12207: PUSH
12208: CALL_OW 44
12212: ST_TO_ADDR
// ovyb = ovyb ^ pom ;
12213: LD_ADDR_VAR 0 4
12217: PUSH
12218: LD_VAR 0 4
12222: PUSH
12223: LD_VAR 0 2
12227: ADD
12228: ST_TO_ADDR
// end ;
12229: GO 12150
12231: POP
12232: POP
// Amici_enter = CharacterSelection ( Choose 11 people , 11 , 11 , ovyb , [ [ class_engineer , 1 ] , [ class_soldier , 4 ] , [ class_mechanic , 0 ] ] ) ;
12233: LD_ADDR_EXP 43
12237: PUSH
12238: LD_STRING Choose 11 people
12240: PPUSH
12241: LD_INT 11
12243: PPUSH
12244: LD_INT 11
12246: PPUSH
12247: LD_VAR 0 4
12251: PPUSH
12252: LD_INT 2
12254: PUSH
12255: LD_INT 1
12257: PUSH
12258: EMPTY
12259: LIST
12260: LIST
12261: PUSH
12262: LD_INT 1
12264: PUSH
12265: LD_INT 4
12267: PUSH
12268: EMPTY
12269: LIST
12270: LIST
12271: PUSH
12272: LD_INT 3
12274: PUSH
12275: LD_INT 0
12277: PUSH
12278: EMPTY
12279: LIST
12280: LIST
12281: PUSH
12282: EMPTY
12283: LIST
12284: LIST
12285: LIST
12286: PPUSH
12287: CALL_OW 42
12291: ST_TO_ADDR
// Amici_enter = Amici_enter ^ JMM ;
12292: LD_ADDR_EXP 43
12296: PUSH
12297: LD_EXP 43
12301: PUSH
12302: LD_EXP 32
12306: ADD
12307: ST_TO_ADDR
// end ;
12308: LD_VAR 0 1
12312: RET
// function uprav_lidi ( lidi ) ; var pom , i ; var sk ; begin
12313: LD_INT 0
12315: PPUSH
12316: PPUSH
12317: PPUSH
12318: PPUSH
// pom = [ ] ;
12319: LD_ADDR_VAR 0 3
12323: PUSH
12324: EMPTY
12325: ST_TO_ADDR
// for i in lidi do
12326: LD_ADDR_VAR 0 4
12330: PUSH
12331: LD_VAR 0 1
12335: PUSH
12336: FOR_IN
12337: IFFALSE 12480
// begin sk = get_skills ( i ) ;
12339: LD_ADDR_VAR 0 5
12343: PUSH
12344: LD_VAR 0 4
12348: PPUSH
12349: CALL 12497 0 1
12353: ST_TO_ADDR
// if sk [ 4 ] > sk [ 1 ] and sk [ 4 ] > sk [ 2 ] and sk [ 4 ] > sk [ 3 ] then
12354: LD_VAR 0 5
12358: PUSH
12359: LD_INT 4
12361: ARRAY
12362: PUSH
12363: LD_VAR 0 5
12367: PUSH
12368: LD_INT 1
12370: ARRAY
12371: GREATER
12372: PUSH
12373: LD_VAR 0 5
12377: PUSH
12378: LD_INT 4
12380: ARRAY
12381: PUSH
12382: LD_VAR 0 5
12386: PUSH
12387: LD_INT 2
12389: ARRAY
12390: GREATER
12391: AND
12392: PUSH
12393: LD_VAR 0 5
12397: PUSH
12398: LD_INT 4
12400: ARRAY
12401: PUSH
12402: LD_VAR 0 5
12406: PUSH
12407: LD_INT 3
12409: ARRAY
12410: GREATER
12411: AND
12412: IFFALSE 12416
// continue ;
12414: GO 12336
// if sk [ 1 ] > sk [ 2 ] then
12416: LD_VAR 0 5
12420: PUSH
12421: LD_INT 1
12423: ARRAY
12424: PUSH
12425: LD_VAR 0 5
12429: PUSH
12430: LD_INT 2
12432: ARRAY
12433: GREATER
12434: IFFALSE 12450
// SetClass ( i , class_soldier ) else
12436: LD_VAR 0 4
12440: PPUSH
12441: LD_INT 1
12443: PPUSH
12444: CALL_OW 336
12448: GO 12462
// SetClass ( i , class_engineer ) ;
12450: LD_VAR 0 4
12454: PPUSH
12455: LD_INT 2
12457: PPUSH
12458: CALL_OW 336
// pom = pom ^ i ;
12462: LD_ADDR_VAR 0 3
12466: PUSH
12467: LD_VAR 0 3
12471: PUSH
12472: LD_VAR 0 4
12476: ADD
12477: ST_TO_ADDR
// end ;
12478: GO 12336
12480: POP
12481: POP
// result := pom ;
12482: LD_ADDR_VAR 0 2
12486: PUSH
12487: LD_VAR 0 3
12491: ST_TO_ADDR
// end ;
12492: LD_VAR 0 2
12496: RET
// function get_skills ( un ) ; var pom1 , pom2 , pom3 , pom4 ; begin
12497: LD_INT 0
12499: PPUSH
12500: PPUSH
12501: PPUSH
12502: PPUSH
12503: PPUSH
// pom1 := GetSkill ( un , skill_combat ) ;
12504: LD_ADDR_VAR 0 3
12508: PUSH
12509: LD_VAR 0 1
12513: PPUSH
12514: LD_INT 1
12516: PPUSH
12517: CALL_OW 259
12521: ST_TO_ADDR
// pom2 := GetSkill ( un , skill_engineering ) ;
12522: LD_ADDR_VAR 0 4
12526: PUSH
12527: LD_VAR 0 1
12531: PPUSH
12532: LD_INT 2
12534: PPUSH
12535: CALL_OW 259
12539: ST_TO_ADDR
// pom3 := GetSkill ( un , skill_mechanical ) ;
12540: LD_ADDR_VAR 0 5
12544: PUSH
12545: LD_VAR 0 1
12549: PPUSH
12550: LD_INT 3
12552: PPUSH
12553: CALL_OW 259
12557: ST_TO_ADDR
// pom4 := GetSkill ( un , skill_scientistic ) ;
12558: LD_ADDR_VAR 0 6
12562: PUSH
12563: LD_VAR 0 1
12567: PPUSH
12568: LD_INT 4
12570: PPUSH
12571: CALL_OW 259
12575: ST_TO_ADDR
// result := [ pom1 , pom2 , pom3 , pom4 ] end ;
12576: LD_ADDR_VAR 0 2
12580: PUSH
12581: LD_VAR 0 3
12585: PUSH
12586: LD_VAR 0 4
12590: PUSH
12591: LD_VAR 0 5
12595: PUSH
12596: LD_VAR 0 6
12600: PUSH
12601: EMPTY
12602: LIST
12603: LIST
12604: LIST
12605: LIST
12606: ST_TO_ADDR
12607: LD_VAR 0 2
12611: RET
// export function create_arabske_utoky_behem_mise ; var pom ; begin
12612: LD_INT 0
12614: PPUSH
12615: PPUSH
// uc_side = Arabi ;
12616: LD_ADDR_OWVAR 20
12620: PUSH
12621: LD_EXP 3
12625: ST_TO_ADDR
// uc_nation = nation_arabian ;
12626: LD_ADDR_OWVAR 21
12630: PUSH
12631: LD_INT 2
12633: ST_TO_ADDR
// pom = [ ] ;
12634: LD_ADDR_VAR 0 2
12638: PUSH
12639: EMPTY
12640: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , 4 ,  ) ;
12641: LD_ADDR_VAR 0 2
12645: PUSH
12646: CALL 10530 0 0
12650: PPUSH
12651: LD_INT 1
12653: PPUSH
12654: LD_INT 4
12656: PPUSH
12657: LD_STRING 
12659: PPUSH
12660: CALL 14094 0 4
12664: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 4 ,  ) ;
12665: LD_ADDR_VAR 0 2
12669: PUSH
12670: LD_VAR 0 2
12674: PUSH
12675: CALL 10530 0 0
12679: PPUSH
12680: LD_INT 1
12682: PPUSH
12683: LD_INT 4
12685: PPUSH
12686: LD_STRING 
12688: PPUSH
12689: CALL 14094 0 4
12693: ADD
12694: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 5 ,  ) ;
12695: LD_ADDR_VAR 0 2
12699: PUSH
12700: LD_VAR 0 2
12704: PUSH
12705: CALL 10530 0 0
12709: PPUSH
12710: LD_INT 8
12712: PPUSH
12713: LD_INT 5
12715: PPUSH
12716: LD_STRING 
12718: PPUSH
12719: CALL 14094 0 4
12723: ADD
12724: ST_TO_ADDR
// if difficulty > 1 then
12725: LD_OWVAR 67
12729: PUSH
12730: LD_INT 1
12732: GREATER
12733: IFFALSE 12765
// pom = pom ^ get_human ( get_sex , class_mortar , 5 ,  ) ;
12735: LD_ADDR_VAR 0 2
12739: PUSH
12740: LD_VAR 0 2
12744: PUSH
12745: CALL 10530 0 0
12749: PPUSH
12750: LD_INT 8
12752: PPUSH
12753: LD_INT 5
12755: PPUSH
12756: LD_STRING 
12758: PPUSH
12759: CALL 14094 0 4
12763: ADD
12764: ST_TO_ADDR
// if difficulty > 2 then
12765: LD_OWVAR 67
12769: PUSH
12770: LD_INT 2
12772: GREATER
12773: IFFALSE 12805
// pom = pom ^ get_human ( get_sex , class_soldier , 5 ,  ) ;
12775: LD_ADDR_VAR 0 2
12779: PUSH
12780: LD_VAR 0 2
12784: PUSH
12785: CALL 10530 0 0
12789: PPUSH
12790: LD_INT 1
12792: PPUSH
12793: LD_INT 5
12795: PPUSH
12796: LD_STRING 
12798: PPUSH
12799: CALL 14094 0 4
12803: ADD
12804: ST_TO_ADDR
// Ar_utok1_LIST = pom ;
12805: LD_ADDR_EXP 13
12809: PUSH
12810: LD_VAR 0 2
12814: ST_TO_ADDR
// pom = [ ] ;
12815: LD_ADDR_VAR 0 2
12819: PUSH
12820: EMPTY
12821: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
12822: LD_ADDR_OWVAR 37
12826: PUSH
12827: LD_INT 14
12829: ST_TO_ADDR
// vc_weapon = ar_gun ;
12830: LD_ADDR_OWVAR 40
12834: PUSH
12835: LD_INT 27
12837: ST_TO_ADDR
// vc_control = control_apeman ;
12838: LD_ADDR_OWVAR 38
12842: PUSH
12843: LD_INT 5
12845: ST_TO_ADDR
// vc_engine = engine_siberite ;
12846: LD_ADDR_OWVAR 39
12850: PUSH
12851: LD_INT 3
12853: ST_TO_ADDR
// av = CreateVehicle ;
12854: LD_ADDR_LOC 11
12858: PUSH
12859: CALL_OW 45
12863: ST_TO_ADDR
// pom = av ;
12864: LD_ADDR_VAR 0 2
12868: PUSH
12869: LD_LOC 11
12873: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 4 ,  ) ;
12874: LD_ADDR_LOC 10
12878: PUSH
12879: CALL 10530 0 0
12883: PPUSH
12884: LD_INT 3
12886: PPUSH
12887: LD_INT 4
12889: PPUSH
12890: LD_STRING 
12892: PPUSH
12893: CALL 14094 0 4
12897: ST_TO_ADDR
// vc_control = control_manual ;
12898: LD_ADDR_OWVAR 38
12902: PUSH
12903: LD_INT 1
12905: ST_TO_ADDR
// vc_weapon = ar_gatling_gun ;
12906: LD_ADDR_OWVAR 40
12910: PUSH
12911: LD_INT 25
12913: ST_TO_ADDR
// av = CreateVehicle ;
12914: LD_ADDR_LOC 11
12918: PUSH
12919: CALL_OW 45
12923: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
12924: LD_LOC 10
12928: PPUSH
12929: LD_LOC 11
12933: PPUSH
12934: CALL_OW 52
// pom = pom ^ av ;
12938: LD_ADDR_VAR 0 2
12942: PUSH
12943: LD_VAR 0 2
12947: PUSH
12948: LD_LOC 11
12952: ADD
12953: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 4 ,  ) ;
12954: LD_ADDR_VAR 0 2
12958: PUSH
12959: LD_VAR 0 2
12963: PUSH
12964: CALL 10530 0 0
12968: PPUSH
12969: LD_INT 1
12971: PPUSH
12972: LD_INT 4
12974: PPUSH
12975: LD_STRING 
12977: PPUSH
12978: CALL 14094 0 4
12982: ADD
12983: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_engineer , Ar_levely [ difficulty ] ,  ) ;
12984: LD_ADDR_VAR 0 2
12988: PUSH
12989: LD_VAR 0 2
12993: PUSH
12994: CALL 10530 0 0
12998: PPUSH
12999: LD_INT 2
13001: PPUSH
13002: LD_EXP 49
13006: PUSH
13007: LD_OWVAR 67
13011: ARRAY
13012: PPUSH
13013: LD_STRING 
13015: PPUSH
13016: CALL 14094 0 4
13020: ADD
13021: ST_TO_ADDR
// if difficulty > 1 then
13022: LD_OWVAR 67
13026: PUSH
13027: LD_INT 1
13029: GREATER
13030: IFFALSE 13108
// begin pom = pom ^ get_human ( get_sex , class_engineer , Ar_levely [ difficulty ] ,  ) ;
13032: LD_ADDR_VAR 0 2
13036: PUSH
13037: LD_VAR 0 2
13041: PUSH
13042: CALL 10530 0 0
13046: PPUSH
13047: LD_INT 2
13049: PPUSH
13050: LD_EXP 49
13054: PUSH
13055: LD_OWVAR 67
13059: ARRAY
13060: PPUSH
13061: LD_STRING 
13063: PPUSH
13064: CALL 14094 0 4
13068: ADD
13069: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , Ar_levely [ difficulty ] ,  ) ;
13070: LD_ADDR_VAR 0 2
13074: PUSH
13075: LD_VAR 0 2
13079: PUSH
13080: CALL 10530 0 0
13084: PPUSH
13085: LD_INT 1
13087: PPUSH
13088: LD_EXP 49
13092: PUSH
13093: LD_OWVAR 67
13097: ARRAY
13098: PPUSH
13099: LD_STRING 
13101: PPUSH
13102: CALL 14094 0 4
13106: ADD
13107: ST_TO_ADDR
// end ; Ar_utok2_LIST = pom ;
13108: LD_ADDR_EXP 14
13112: PUSH
13113: LD_VAR 0 2
13117: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , 4 ,  ) ;
13118: LD_ADDR_VAR 0 2
13122: PUSH
13123: CALL 10530 0 0
13127: PPUSH
13128: LD_INT 1
13130: PPUSH
13131: LD_INT 4
13133: PPUSH
13134: LD_STRING 
13136: PPUSH
13137: CALL 14094 0 4
13141: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 4 ,  ) ;
13142: LD_ADDR_VAR 0 2
13146: PUSH
13147: LD_VAR 0 2
13151: PUSH
13152: CALL 10530 0 0
13156: PPUSH
13157: LD_INT 1
13159: PPUSH
13160: LD_INT 4
13162: PPUSH
13163: LD_STRING 
13165: PPUSH
13166: CALL 14094 0 4
13170: ADD
13171: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , Ar_levely [ difficulty ] ,  ) ;
13172: LD_ADDR_VAR 0 2
13176: PUSH
13177: LD_VAR 0 2
13181: PUSH
13182: CALL 10530 0 0
13186: PPUSH
13187: LD_INT 8
13189: PPUSH
13190: LD_EXP 49
13194: PUSH
13195: LD_OWVAR 67
13199: ARRAY
13200: PPUSH
13201: LD_STRING 
13203: PPUSH
13204: CALL 14094 0 4
13208: ADD
13209: ST_TO_ADDR
// if difficulty > 1 then
13210: LD_OWVAR 67
13214: PUSH
13215: LD_INT 1
13217: GREATER
13218: IFFALSE 13346
// begin pom = pom ^ get_human ( get_sex , class_soldier , 4 ,  ) ;
13220: LD_ADDR_VAR 0 2
13224: PUSH
13225: LD_VAR 0 2
13229: PUSH
13230: CALL 10530 0 0
13234: PPUSH
13235: LD_INT 1
13237: PPUSH
13238: LD_INT 4
13240: PPUSH
13241: LD_STRING 
13243: PPUSH
13244: CALL 14094 0 4
13248: ADD
13249: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_engineer , Ar_levely [ difficulty ] ,  ) ;
13250: LD_ADDR_VAR 0 2
13254: PUSH
13255: LD_VAR 0 2
13259: PUSH
13260: CALL 10530 0 0
13264: PPUSH
13265: LD_INT 2
13267: PPUSH
13268: LD_EXP 49
13272: PUSH
13273: LD_OWVAR 67
13277: ARRAY
13278: PPUSH
13279: LD_STRING 
13281: PPUSH
13282: CALL 14094 0 4
13286: ADD
13287: ST_TO_ADDR
// vc_control = control_apeman ;
13288: LD_ADDR_OWVAR 38
13292: PUSH
13293: LD_INT 5
13295: ST_TO_ADDR
// vc_chassis = ar_hovercraft ;
13296: LD_ADDR_OWVAR 37
13300: PUSH
13301: LD_INT 11
13303: ST_TO_ADDR
// vc_engine = engine_combustion ;
13304: LD_ADDR_OWVAR 39
13308: PUSH
13309: LD_INT 1
13311: ST_TO_ADDR
// vc_weapon = ar_light_gun ;
13312: LD_ADDR_OWVAR 40
13316: PUSH
13317: LD_INT 23
13319: ST_TO_ADDR
// av = CreateVehicle ;
13320: LD_ADDR_LOC 11
13324: PUSH
13325: CALL_OW 45
13329: ST_TO_ADDR
// pom = pom ^ av ;
13330: LD_ADDR_VAR 0 2
13334: PUSH
13335: LD_VAR 0 2
13339: PUSH
13340: LD_LOC 11
13344: ADD
13345: ST_TO_ADDR
// end ; Ar_utok3_LIST = pom ;
13346: LD_ADDR_EXP 15
13350: PUSH
13351: LD_VAR 0 2
13355: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , 6 ,  ) ;
13356: LD_ADDR_VAR 0 2
13360: PUSH
13361: CALL 10530 0 0
13365: PPUSH
13366: LD_INT 1
13368: PPUSH
13369: LD_INT 6
13371: PPUSH
13372: LD_STRING 
13374: PPUSH
13375: CALL 14094 0 4
13379: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
13380: LD_ADDR_OWVAR 37
13384: PUSH
13385: LD_INT 14
13387: ST_TO_ADDR
// vc_weapon = ar_gun ;
13388: LD_ADDR_OWVAR 40
13392: PUSH
13393: LD_INT 27
13395: ST_TO_ADDR
// vc_control = control_apeman ;
13396: LD_ADDR_OWVAR 38
13400: PUSH
13401: LD_INT 5
13403: ST_TO_ADDR
// vc_engine = engine_siberite ;
13404: LD_ADDR_OWVAR 39
13408: PUSH
13409: LD_INT 3
13411: ST_TO_ADDR
// av = CreateVehicle ;
13412: LD_ADDR_LOC 11
13416: PUSH
13417: CALL_OW 45
13421: ST_TO_ADDR
// pom = pom ^ av ;
13422: LD_ADDR_VAR 0 2
13426: PUSH
13427: LD_VAR 0 2
13431: PUSH
13432: LD_LOC 11
13436: ADD
13437: ST_TO_ADDR
// av = CreateVehicle ;
13438: LD_ADDR_LOC 11
13442: PUSH
13443: CALL_OW 45
13447: ST_TO_ADDR
// pom = pom ^ av ;
13448: LD_ADDR_VAR 0 2
13452: PUSH
13453: LD_VAR 0 2
13457: PUSH
13458: LD_LOC 11
13462: ADD
13463: ST_TO_ADDR
// av = CreateVehicle ;
13464: LD_ADDR_LOC 11
13468: PUSH
13469: CALL_OW 45
13473: ST_TO_ADDR
// pom = pom ^ av ;
13474: LD_ADDR_VAR 0 2
13478: PUSH
13479: LD_VAR 0 2
13483: PUSH
13484: LD_LOC 11
13488: ADD
13489: ST_TO_ADDR
// Ar_utok4_LIST = pom ;
13490: LD_ADDR_EXP 16
13494: PUSH
13495: LD_VAR 0 2
13499: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , Ar_levely [ difficulty ] ,  ) ;
13500: LD_ADDR_VAR 0 2
13504: PUSH
13505: CALL 10530 0 0
13509: PPUSH
13510: LD_INT 1
13512: PPUSH
13513: LD_EXP 49
13517: PUSH
13518: LD_OWVAR 67
13522: ARRAY
13523: PPUSH
13524: LD_STRING 
13526: PPUSH
13527: CALL 14094 0 4
13531: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , Ar_levely [ difficulty ] ,  ) ;
13532: LD_ADDR_LOC 10
13536: PUSH
13537: CALL 10530 0 0
13541: PPUSH
13542: LD_INT 3
13544: PPUSH
13545: LD_EXP 49
13549: PUSH
13550: LD_OWVAR 67
13554: ARRAY
13555: PPUSH
13556: LD_STRING 
13558: PPUSH
13559: CALL 14094 0 4
13563: ST_TO_ADDR
// vc_weapon = ar_rocket_launcher ;
13564: LD_ADDR_OWVAR 40
13568: PUSH
13569: LD_INT 28
13571: ST_TO_ADDR
// vc_chassis = ar_medium_trike ;
13572: LD_ADDR_OWVAR 37
13576: PUSH
13577: LD_INT 13
13579: ST_TO_ADDR
// vc_control = control_manual ;
13580: LD_ADDR_OWVAR 38
13584: PUSH
13585: LD_INT 1
13587: ST_TO_ADDR
// vc_engine = engine_siberite ;
13588: LD_ADDR_OWVAR 39
13592: PUSH
13593: LD_INT 3
13595: ST_TO_ADDR
// av = CreateVehicle ;
13596: LD_ADDR_LOC 11
13600: PUSH
13601: CALL_OW 45
13605: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
13606: LD_LOC 10
13610: PPUSH
13611: LD_LOC 11
13615: PPUSH
13616: CALL_OW 52
// pom = pom ^ av ;
13620: LD_ADDR_VAR 0 2
13624: PUSH
13625: LD_VAR 0 2
13629: PUSH
13630: LD_LOC 11
13634: ADD
13635: ST_TO_ADDR
// if difficulty > 1 then
13636: LD_OWVAR 67
13640: PUSH
13641: LD_INT 1
13643: GREATER
13644: IFFALSE 13681
// begin vc_weapon = ar_selfpropelled_bomb ;
13646: LD_ADDR_OWVAR 40
13650: PUSH
13651: LD_INT 29
13653: ST_TO_ADDR
// av = CreateVehicle ;
13654: LD_ADDR_LOC 11
13658: PUSH
13659: CALL_OW 45
13663: ST_TO_ADDR
// pom = - pom ^ av ;
13664: LD_ADDR_VAR 0 2
13668: PUSH
13669: LD_VAR 0 2
13673: NEG
13674: PUSH
13675: LD_LOC 11
13679: ADD
13680: ST_TO_ADDR
// end ; pom = pom ^ get_human ( get_sex , class_soldier , Ar_levely [ difficulty ] ,  ) ;
13681: LD_ADDR_VAR 0 2
13685: PUSH
13686: LD_VAR 0 2
13690: PUSH
13691: CALL 10530 0 0
13695: PPUSH
13696: LD_INT 1
13698: PPUSH
13699: LD_EXP 49
13703: PUSH
13704: LD_OWVAR 67
13708: ARRAY
13709: PPUSH
13710: LD_STRING 
13712: PPUSH
13713: CALL 14094 0 4
13717: ADD
13718: ST_TO_ADDR
// if difficulty > 2 then
13719: LD_OWVAR 67
13723: PUSH
13724: LD_INT 2
13726: GREATER
13727: IFFALSE 13843
// begin pom = pom ^ get_human ( get_sex , class_scientistic , Ar_levely [ difficulty ] ,  ) ;
13729: LD_ADDR_VAR 0 2
13733: PUSH
13734: LD_VAR 0 2
13738: PUSH
13739: CALL 10530 0 0
13743: PPUSH
13744: LD_INT 4
13746: PPUSH
13747: LD_EXP 49
13751: PUSH
13752: LD_OWVAR 67
13756: ARRAY
13757: PPUSH
13758: LD_STRING 
13760: PPUSH
13761: CALL 14094 0 4
13765: ADD
13766: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , Ar_levely [ difficulty ] ,  ) ;
13767: LD_ADDR_VAR 0 2
13771: PUSH
13772: LD_VAR 0 2
13776: PUSH
13777: CALL 10530 0 0
13781: PPUSH
13782: LD_INT 8
13784: PPUSH
13785: LD_EXP 49
13789: PUSH
13790: LD_OWVAR 67
13794: ARRAY
13795: PPUSH
13796: LD_STRING 
13798: PPUSH
13799: CALL 14094 0 4
13803: ADD
13804: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , Ar_levely [ difficulty ] ,  ) ;
13805: LD_ADDR_VAR 0 2
13809: PUSH
13810: LD_VAR 0 2
13814: PUSH
13815: CALL 10530 0 0
13819: PPUSH
13820: LD_INT 8
13822: PPUSH
13823: LD_EXP 49
13827: PUSH
13828: LD_OWVAR 67
13832: ARRAY
13833: PPUSH
13834: LD_STRING 
13836: PPUSH
13837: CALL 14094 0 4
13841: ADD
13842: ST_TO_ADDR
// end ; Ar_utoklast_LIST = pom ;
13843: LD_ADDR_EXP 17
13847: PUSH
13848: LD_VAR 0 2
13852: ST_TO_ADDR
// pom = get_human ( get_sex , class_mortar , 4 ,  ) ;
13853: LD_ADDR_VAR 0 2
13857: PUSH
13858: CALL 10530 0 0
13862: PPUSH
13863: LD_INT 8
13865: PPUSH
13866: LD_INT 4
13868: PPUSH
13869: LD_STRING 
13871: PPUSH
13872: CALL 14094 0 4
13876: ST_TO_ADDR
// vc_weapon = ar_rocket_launcher ;
13877: LD_ADDR_OWVAR 40
13881: PUSH
13882: LD_INT 28
13884: ST_TO_ADDR
// vc_engine = engine_combustion ;
13885: LD_ADDR_OWVAR 39
13889: PUSH
13890: LD_INT 1
13892: ST_TO_ADDR
// vc_chassis = ar_medium_trike ;
13893: LD_ADDR_OWVAR 37
13897: PUSH
13898: LD_INT 13
13900: ST_TO_ADDR
// if difficulty = 1 then
13901: LD_OWVAR 67
13905: PUSH
13906: LD_INT 1
13908: EQUAL
13909: IFFALSE 13931
// begin vc_control = control_apeman ;
13911: LD_ADDR_OWVAR 38
13915: PUSH
13916: LD_INT 5
13918: ST_TO_ADDR
// av = CreateVehicle ;
13919: LD_ADDR_LOC 11
13923: PUSH
13924: CALL_OW 45
13928: ST_TO_ADDR
// end else
13929: GO 13995
// begin vc_control = control_manual ;
13931: LD_ADDR_OWVAR 38
13935: PUSH
13936: LD_INT 1
13938: ST_TO_ADDR
// av = CreateVehicle ;
13939: LD_ADDR_LOC 11
13943: PUSH
13944: CALL_OW 45
13948: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , Ar_levely [ difficulty ] ,  ) ;
13949: LD_ADDR_LOC 10
13953: PUSH
13954: CALL 10530 0 0
13958: PPUSH
13959: LD_INT 3
13961: PPUSH
13962: LD_EXP 49
13966: PUSH
13967: LD_OWVAR 67
13971: ARRAY
13972: PPUSH
13973: LD_STRING 
13975: PPUSH
13976: CALL 14094 0 4
13980: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
13981: LD_LOC 10
13985: PPUSH
13986: LD_LOC 11
13990: PPUSH
13991: CALL_OW 52
// end ; pom = pom ^ av ;
13995: LD_ADDR_VAR 0 2
13999: PUSH
14000: LD_VAR 0 2
14004: PUSH
14005: LD_LOC 11
14009: ADD
14010: ST_TO_ADDR
// vc_control = control_apeman ;
14011: LD_ADDR_OWVAR 38
14015: PUSH
14016: LD_INT 5
14018: ST_TO_ADDR
// av = CreateVehicle ;
14019: LD_ADDR_LOC 11
14023: PUSH
14024: CALL_OW 45
14028: ST_TO_ADDR
// pom = pom ^ av ;
14029: LD_ADDR_VAR 0 2
14033: PUSH
14034: LD_VAR 0 2
14038: PUSH
14039: LD_LOC 11
14043: ADD
14044: ST_TO_ADDR
// vc_weapon = ar_radar ;
14045: LD_ADDR_OWVAR 40
14049: PUSH
14050: LD_INT 30
14052: ST_TO_ADDR
// av = CreateVehicle ;
14053: LD_ADDR_LOC 11
14057: PUSH
14058: CALL_OW 45
14062: ST_TO_ADDR
// pom = pom ^ av ;
14063: LD_ADDR_VAR 0 2
14067: PUSH
14068: LD_VAR 0 2
14072: PUSH
14073: LD_LOC 11
14077: ADD
14078: ST_TO_ADDR
// Ar_backa_LIST = pom ;
14079: LD_ADDR_EXP 18
14083: PUSH
14084: LD_VAR 0 2
14088: ST_TO_ADDR
// end ;
14089: LD_VAR 0 1
14093: RET
// function get_human ( sex , clas , level , name ) ; var pom ; begin
14094: LD_INT 0
14096: PPUSH
14097: PPUSH
// PrepareHuman ( sex , clas , level ) ;
14098: LD_VAR 0 1
14102: PPUSH
14103: LD_VAR 0 2
14107: PPUSH
14108: LD_VAR 0 3
14112: PPUSH
14113: CALL_OW 380
// hc_name := name ;
14117: LD_ADDR_OWVAR 26
14121: PUSH
14122: LD_VAR 0 4
14126: ST_TO_ADDR
// pom = CreateHuman ;
14127: LD_ADDR_VAR 0 6
14131: PUSH
14132: CALL_OW 44
14136: ST_TO_ADDR
// result := pom ;
14137: LD_ADDR_VAR 0 5
14141: PUSH
14142: LD_VAR 0 6
14146: ST_TO_ADDR
// end ; end_of_file
14147: LD_VAR 0 5
14151: RET
// var plazici ; var navrat ; var zradci ; var pom , i ; var pocet_spadlych_beden ; every 0 0$0.1 do
14152: GO 14154
14154: DISABLE
// begin pocet_spadlych_beden = 0 ;
14155: LD_ADDR_LOC 22
14159: PUSH
14160: LD_INT 0
14162: ST_TO_ADDR
// end ;
14163: END
// every 0 0$0.1 do var sold ;
14164: GO 14166
14166: DISABLE
14167: LD_INT 0
14169: PPUSH
// begin navrat := false ;
14170: LD_ADDR_LOC 18
14174: PUSH
14175: LD_INT 0
14177: ST_TO_ADDR
// sold = UnitFilter ( Amici_enter , [ [ f_class , class_soldier ] ] ) ;
14178: LD_ADDR_VAR 0 1
14182: PUSH
14183: LD_EXP 43
14187: PPUSH
14188: LD_INT 25
14190: PUSH
14191: LD_INT 1
14193: PUSH
14194: EMPTY
14195: LIST
14196: LIST
14197: PUSH
14198: EMPTY
14199: LIST
14200: PPUSH
14201: CALL_OW 72
14205: ST_TO_ADDR
// if sold < 4 then
14206: LD_VAR 0 1
14210: PUSH
14211: LD_INT 4
14213: LESS
14214: IFFALSE 14225
// msg ( ERROR: malo vojaku . je to v prdeli ) else
14216: LD_STRING ERROR: malo vojaku . je to v prdeli
14218: PPUSH
14219: CALL_OW 100
14223: GO 14272
// plazici := [ sold [ 1 ] , sold [ 2 ] , sold [ 3 ] , sold [ 4 ] ] ;
14225: LD_ADDR_LOC 17
14229: PUSH
14230: LD_VAR 0 1
14234: PUSH
14235: LD_INT 1
14237: ARRAY
14238: PUSH
14239: LD_VAR 0 1
14243: PUSH
14244: LD_INT 2
14246: ARRAY
14247: PUSH
14248: LD_VAR 0 1
14252: PUSH
14253: LD_INT 3
14255: ARRAY
14256: PUSH
14257: LD_VAR 0 1
14261: PUSH
14262: LD_INT 4
14264: ARRAY
14265: PUSH
14266: EMPTY
14267: LIST
14268: LIST
14269: LIST
14270: LIST
14271: ST_TO_ADDR
// ComMoveXY ( Radar_enter , 87 , 137 ) ;
14272: LD_EXP 44
14276: PPUSH
14277: LD_INT 87
14279: PPUSH
14280: LD_INT 137
14282: PPUSH
14283: CALL_OW 111
// AddComMoveXY ( Radar_enter , 89 , 134 ) ;
14287: LD_EXP 44
14291: PPUSH
14292: LD_INT 89
14294: PPUSH
14295: LD_INT 134
14297: PPUSH
14298: CALL_OW 171
// AddComMoveXY ( Radar_enter , 91 , 131 ) ;
14302: LD_EXP 44
14306: PPUSH
14307: LD_INT 91
14309: PPUSH
14310: LD_INT 131
14312: PPUSH
14313: CALL_OW 171
// AddComHold ( Radar_enter ) ;
14317: LD_EXP 44
14321: PPUSH
14322: CALL_OW 200
// AddComMoveXY ( plazici [ 1 ] , 84 , 127 ) ;
14326: LD_LOC 17
14330: PUSH
14331: LD_INT 1
14333: ARRAY
14334: PPUSH
14335: LD_INT 84
14337: PPUSH
14338: LD_INT 127
14340: PPUSH
14341: CALL_OW 171
// AddComCrawl ( plazici [ 1 ] ) ;
14345: LD_LOC 17
14349: PUSH
14350: LD_INT 1
14352: ARRAY
14353: PPUSH
14354: CALL_OW 197
// AddComMoveXY ( plazici [ 1 ] , 91 , 126 ) ;
14358: LD_LOC 17
14362: PUSH
14363: LD_INT 1
14365: ARRAY
14366: PPUSH
14367: LD_INT 91
14369: PPUSH
14370: LD_INT 126
14372: PPUSH
14373: CALL_OW 171
// AddComMoveXY ( plazici [ 2 ] , 85 , 127 ) ;
14377: LD_LOC 17
14381: PUSH
14382: LD_INT 2
14384: ARRAY
14385: PPUSH
14386: LD_INT 85
14388: PPUSH
14389: LD_INT 127
14391: PPUSH
14392: CALL_OW 171
// AddComCrawl ( plazici [ 2 ] ) ;
14396: LD_LOC 17
14400: PUSH
14401: LD_INT 2
14403: ARRAY
14404: PPUSH
14405: CALL_OW 197
// AddComMoveXY ( plazici [ 2 ] , 93 , 128 ) ;
14409: LD_LOC 17
14413: PUSH
14414: LD_INT 2
14416: ARRAY
14417: PPUSH
14418: LD_INT 93
14420: PPUSH
14421: LD_INT 128
14423: PPUSH
14424: CALL_OW 171
// AddComMoveXY ( plazici [ 3 ] , 83 , 126 ) ;
14428: LD_LOC 17
14432: PUSH
14433: LD_INT 3
14435: ARRAY
14436: PPUSH
14437: LD_INT 83
14439: PPUSH
14440: LD_INT 126
14442: PPUSH
14443: CALL_OW 171
// AddComCrawl ( plazici [ 3 ] ) ;
14447: LD_LOC 17
14451: PUSH
14452: LD_INT 3
14454: ARRAY
14455: PPUSH
14456: CALL_OW 197
// AddComMoveXY ( plazici [ 3 ] , 92 , 128 ) ;
14460: LD_LOC 17
14464: PUSH
14465: LD_INT 3
14467: ARRAY
14468: PPUSH
14469: LD_INT 92
14471: PPUSH
14472: LD_INT 128
14474: PPUSH
14475: CALL_OW 171
// AddComMoveXY ( plazici [ 4 ] , 82 , 125 ) ;
14479: LD_LOC 17
14483: PUSH
14484: LD_INT 4
14486: ARRAY
14487: PPUSH
14488: LD_INT 82
14490: PPUSH
14491: LD_INT 125
14493: PPUSH
14494: CALL_OW 171
// AddComCrawl ( plazici [ 4 ] ) ;
14498: LD_LOC 17
14502: PUSH
14503: LD_INT 4
14505: ARRAY
14506: PPUSH
14507: CALL_OW 197
// AddComMoveXY ( plazici [ 4 ] , 90 , 127 ) ;
14511: LD_LOC 17
14515: PUSH
14516: LD_INT 4
14518: ARRAY
14519: PPUSH
14520: LD_INT 90
14522: PPUSH
14523: LD_INT 127
14525: PPUSH
14526: CALL_OW 171
// AddComHold ( plazici ) ;
14530: LD_LOC 17
14534: PPUSH
14535: CALL_OW 200
// CenterNowOnXY ( 92 , 135 ) ;
14539: LD_INT 92
14541: PPUSH
14542: LD_INT 135
14544: PPUSH
14545: CALL_OW 86
// end ;
14549: PPOPN 1
14551: END
// every 0 0$0.5 trigger IsAt ( Radar_enter , 91 , 131 ) do
14552: LD_EXP 44
14556: PPUSH
14557: LD_INT 91
14559: PPUSH
14560: LD_INT 131
14562: PPUSH
14563: CALL_OW 307
14567: IFFALSE 14608
14569: GO 14571
14571: DISABLE
// begin ComMoveXY ( mrtvola , 105 , 139 ) ;
14572: LD_INT 64
14574: PPUSH
14575: LD_INT 105
14577: PPUSH
14578: LD_INT 139
14580: PPUSH
14581: CALL_OW 111
// AddComTurnXY ( mrtvola , 103 , 137 ) ;
14585: LD_INT 64
14587: PPUSH
14588: LD_INT 103
14590: PPUSH
14591: LD_INT 137
14593: PPUSH
14594: CALL_OW 178
// CenterOnXY ( 97 , 132 ) ;
14598: LD_INT 97
14600: PPUSH
14601: LD_INT 132
14603: PPUSH
14604: CALL_OW 84
// end ;
14608: END
// every 0 0$1 trigger IsAt ( mrtvola , 105 , 139 ) do
14609: LD_INT 64
14611: PPUSH
14612: LD_INT 105
14614: PPUSH
14615: LD_INT 139
14617: PPUSH
14618: CALL_OW 307
14622: IFFALSE 14647
14624: GO 14626
14626: DISABLE
// begin ComExitBuilding ( zradce1 ) ;
14627: LD_INT 65
14629: PPUSH
14630: CALL_OW 122
// ComMoveXY ( zradce1 , 107 , 138 ) ;
14634: LD_INT 65
14636: PPUSH
14637: LD_INT 107
14639: PPUSH
14640: LD_INT 138
14642: PPUSH
14643: CALL_OW 111
// end ;
14647: END
// every 0 0$1 trigger IsAt ( zradce1 , 107 , 138 ) do
14648: LD_INT 65
14650: PPUSH
14651: LD_INT 107
14653: PPUSH
14654: LD_INT 138
14656: PPUSH
14657: CALL_OW 307
14661: IFFALSE 15219
14663: GO 14665
14665: DISABLE
// begin ComTurnUnit ( mrtvola , zradce1 ) ;
14666: LD_INT 64
14668: PPUSH
14669: LD_INT 65
14671: PPUSH
14672: CALL_OW 119
// ComTurnUnit ( zradce1 , mrtvola ) ;
14676: LD_INT 65
14678: PPUSH
14679: LD_INT 64
14681: PPUSH
14682: CALL_OW 119
// SayNoFace ( mrtvola , D1a-Merc1-1 ) ;
14686: LD_INT 64
14688: PPUSH
14689: LD_STRING D1a-Merc1-1
14691: PPUSH
14692: CALL_OW 89
// SayNoFace ( zradce1 , D1a-FMerc2-1 ) ;
14696: LD_INT 65
14698: PPUSH
14699: LD_STRING D1a-FMerc2-1
14701: PPUSH
14702: CALL_OW 89
// wait ( 0 0$0.3 ) ;
14706: LD_INT 10
14708: PPUSH
14709: CALL_OW 67
// ComTurnXY ( mrtvola , 101 , 141 ) ;
14713: LD_INT 64
14715: PPUSH
14716: LD_INT 101
14718: PPUSH
14719: LD_INT 141
14721: PPUSH
14722: CALL_OW 118
// wait ( 10 ) ;
14726: LD_INT 10
14728: PPUSH
14729: CALL_OW 67
// ComMoveUnit ( zradce1 , mrtvola ) ;
14733: LD_INT 65
14735: PPUSH
14736: LD_INT 64
14738: PPUSH
14739: CALL_OW 112
// SetLives ( mrtvola , 300 ) ;
14743: LD_INT 64
14745: PPUSH
14746: LD_INT 300
14748: PPUSH
14749: CALL_OW 234
// wait ( 0 0$1 ) ;
14753: LD_INT 35
14755: PPUSH
14756: CALL_OW 67
// AddComTurnUnit ( zradce1 , mrtvola ) ;
14760: LD_INT 65
14762: PPUSH
14763: LD_INT 64
14765: PPUSH
14766: CALL_OW 179
// AddComHeal ( zradce1 , mrtvola ) ;
14770: LD_INT 65
14772: PPUSH
14773: LD_INT 64
14775: PPUSH
14776: CALL_OW 188
// repeat wait ( 3 ) until GetLives ( mrtvola ) > 340 ;
14780: LD_INT 3
14782: PPUSH
14783: CALL_OW 67
14787: LD_INT 64
14789: PPUSH
14790: CALL_OW 256
14794: PUSH
14795: LD_INT 340
14797: GREATER
14798: IFFALSE 14780
// SetLives ( mrtvola , 10 ) ;
14800: LD_INT 64
14802: PPUSH
14803: LD_INT 10
14805: PPUSH
14806: CALL_OW 234
// enable ( 80 ) ;
14810: LD_INT 80
14812: ENABLE_MARKED
// wait ( 0 0$0.5 ) ;
14813: LD_INT 18
14815: PPUSH
14816: CALL_OW 67
// ForceSayNoFace ( mrtvola , D1a-Merc1-2 ) ;
14820: LD_INT 64
14822: PPUSH
14823: LD_STRING D1a-Merc1-2
14825: PPUSH
14826: CALL_OW 93
// wait ( 0 0$3 ) ;
14830: LD_INT 105
14832: PPUSH
14833: CALL_OW 67
// KillUnit ( mrtvola ) ;
14837: LD_INT 64
14839: PPUSH
14840: CALL_OW 66
// ComTurnXY ( zradce1 , 87 , 137 ) ;
14844: LD_INT 65
14846: PPUSH
14847: LD_INT 87
14849: PPUSH
14850: LD_INT 137
14852: PPUSH
14853: CALL_OW 118
// wait ( 0 0$1 ) ;
14857: LD_INT 35
14859: PPUSH
14860: CALL_OW 67
// SayNoFace ( zradce1 , D1a-FMerc2-2 ) ;
14864: LD_INT 65
14866: PPUSH
14867: LD_STRING D1a-FMerc2-2
14869: PPUSH
14870: CALL_OW 89
// ComExitBuilding ( [ zradce4 , zradce5 ] ) ;
14874: LD_INT 70
14876: PUSH
14877: LD_INT 71
14879: PUSH
14880: EMPTY
14881: LIST
14882: LIST
14883: PPUSH
14884: CALL_OW 122
// ComExitBuilding ( [ zradce2 , zradce3 , zradce6 , zradce7 ] ) ;
14888: LD_INT 68
14890: PUSH
14891: LD_INT 69
14893: PUSH
14894: LD_INT 75
14896: PUSH
14897: LD_INT 77
14899: PUSH
14900: EMPTY
14901: LIST
14902: LIST
14903: LIST
14904: LIST
14905: PPUSH
14906: CALL_OW 122
// ComMoveXY ( [ zradce2 , zradce3 , zradce6 , zradce7 ] , 165 , 141 ) ;
14910: LD_INT 68
14912: PUSH
14913: LD_INT 69
14915: PUSH
14916: LD_INT 75
14918: PUSH
14919: LD_INT 77
14921: PUSH
14922: EMPTY
14923: LIST
14924: LIST
14925: LIST
14926: LIST
14927: PPUSH
14928: LD_INT 165
14930: PPUSH
14931: LD_INT 141
14933: PPUSH
14934: CALL_OW 111
// KillUnit ( mrtvola2 ) ;
14938: LD_INT 78
14940: PPUSH
14941: CALL_OW 66
// AddComMoveUnit ( zradce4 , utek2 ) ;
14945: LD_INT 70
14947: PPUSH
14948: LD_INT 67
14950: PPUSH
14951: CALL_OW 172
// AddComMoveUnit ( zradce5 , utek1 ) ;
14955: LD_INT 71
14957: PPUSH
14958: LD_INT 66
14960: PPUSH
14961: CALL_OW 172
// SetFuel ( utek1 , 0 ) ;
14965: LD_INT 66
14967: PPUSH
14968: LD_INT 0
14970: PPUSH
14971: CALL_OW 240
// SetFuel ( utek2 , 0 ) ;
14975: LD_INT 67
14977: PPUSH
14978: LD_INT 0
14980: PPUSH
14981: CALL_OW 240
// wait ( 0 0$1 ) ;
14985: LD_INT 35
14987: PPUSH
14988: CALL_OW 67
// AddComMoveXY ( utek1 , 162 , 142 ) ;
14992: LD_INT 66
14994: PPUSH
14995: LD_INT 162
14997: PPUSH
14998: LD_INT 142
15000: PPUSH
15001: CALL_OW 171
// AddComMoveXY ( utek2 , 162 , 139 ) ;
15005: LD_INT 67
15007: PPUSH
15008: LD_INT 162
15010: PPUSH
15011: LD_INT 139
15013: PPUSH
15014: CALL_OW 171
// ComMoveXY ( zradce1 , 162 , 140 ) ;
15018: LD_INT 65
15020: PPUSH
15021: LD_INT 162
15023: PPUSH
15024: LD_INT 140
15026: PPUSH
15027: CALL_OW 111
// AddComMoveXY ( [ zradce1 , zradce2 , zradce3 , zradce6 , zradce7 ] , 175 , 128 ) ;
15031: LD_INT 65
15033: PUSH
15034: LD_INT 68
15036: PUSH
15037: LD_INT 69
15039: PUSH
15040: LD_INT 75
15042: PUSH
15043: LD_INT 77
15045: PUSH
15046: EMPTY
15047: LIST
15048: LIST
15049: LIST
15050: LIST
15051: LIST
15052: PPUSH
15053: LD_INT 175
15055: PPUSH
15056: LD_INT 128
15058: PPUSH
15059: CALL_OW 171
// AddComMoveXY ( [ zradce1 , zradce2 , zradce3 , zradce6 , zradce7 ] , 126 , 94 ) ;
15063: LD_INT 65
15065: PUSH
15066: LD_INT 68
15068: PUSH
15069: LD_INT 69
15071: PUSH
15072: LD_INT 75
15074: PUSH
15075: LD_INT 77
15077: PUSH
15078: EMPTY
15079: LIST
15080: LIST
15081: LIST
15082: LIST
15083: LIST
15084: PPUSH
15085: LD_INT 126
15087: PPUSH
15088: LD_INT 94
15090: PPUSH
15091: CALL_OW 171
// AddComMoveXY ( [ zradce1 , zradce2 , zradce3 , zradce6 , zradce7 ] , 165 , 92 ) ;
15095: LD_INT 65
15097: PUSH
15098: LD_INT 68
15100: PUSH
15101: LD_INT 69
15103: PUSH
15104: LD_INT 75
15106: PUSH
15107: LD_INT 77
15109: PUSH
15110: EMPTY
15111: LIST
15112: LIST
15113: LIST
15114: LIST
15115: LIST
15116: PPUSH
15117: LD_INT 165
15119: PPUSH
15120: LD_INT 92
15122: PPUSH
15123: CALL_OW 171
// zradci = [ zradce1 , zradce2 , zradce3 , zradce4 , zradce5 , zradce6 , zradce7 , utek1 , utek2 ] ;
15127: LD_ADDR_LOC 19
15131: PUSH
15132: LD_INT 65
15134: PUSH
15135: LD_INT 68
15137: PUSH
15138: LD_INT 69
15140: PUSH
15141: LD_INT 70
15143: PUSH
15144: LD_INT 71
15146: PUSH
15147: LD_INT 75
15149: PUSH
15150: LD_INT 77
15152: PUSH
15153: LD_INT 66
15155: PUSH
15156: LD_INT 67
15158: PUSH
15159: EMPTY
15160: LIST
15161: LIST
15162: LIST
15163: LIST
15164: LIST
15165: LIST
15166: LIST
15167: LIST
15168: LIST
15169: ST_TO_ADDR
// Odebirani = true ;
15170: LD_ADDR_EXP 45
15174: PUSH
15175: LD_INT 1
15177: ST_TO_ADDR
// ComFree ( plazici ) ;
15178: LD_LOC 17
15182: PPUSH
15183: CALL_OW 139
// ComFree ( Radar_enter ) ;
15187: LD_EXP 44
15191: PPUSH
15192: CALL_OW 139
// ComMoveXY ( plazici , 86 , 133 ) ;
15196: LD_LOC 17
15200: PPUSH
15201: LD_INT 86
15203: PPUSH
15204: LD_INT 133
15206: PPUSH
15207: CALL_OW 111
// navrat := true ;
15211: LD_ADDR_LOC 18
15215: PUSH
15216: LD_INT 1
15218: ST_TO_ADDR
// end ;
15219: END
// every 3 trigger IsLive ( mrtvola ) marked 80 do
15220: LD_INT 64
15222: PPUSH
15223: CALL_OW 300
15227: IFFALSE 15269
15229: GO 15231
15231: DISABLE
// begin enable ;
15232: ENABLE
// if GetLives ( mrtvola ) > 10 and GetLives ( mrtvola ) < 250 then
15233: LD_INT 64
15235: PPUSH
15236: CALL_OW 256
15240: PUSH
15241: LD_INT 10
15243: GREATER
15244: PUSH
15245: LD_INT 64
15247: PPUSH
15248: CALL_OW 256
15252: PUSH
15253: LD_INT 250
15255: LESS
15256: AND
15257: IFFALSE 15269
// SetLives ( mrtvola , 10 ) ;
15259: LD_INT 64
15261: PPUSH
15262: LD_INT 10
15264: PPUSH
15265: CALL_OW 234
// end ;
15269: END
// every 0 0$5 do
15270: GO 15272
15272: DISABLE
// begin if ( IsInArea ( utek1 , Benal ) or not IsOk ( zradce5 ) ) and ( IsInArea ( utek2 , Benal ) or not IsOk ( zradce4 ) ) then
15273: LD_INT 66
15275: PPUSH
15276: LD_INT 4
15278: PPUSH
15279: CALL_OW 308
15283: PUSH
15284: LD_INT 71
15286: PPUSH
15287: CALL_OW 302
15291: NOT
15292: OR
15293: PUSH
15294: LD_INT 67
15296: PPUSH
15297: LD_INT 4
15299: PPUSH
15300: CALL_OW 308
15304: PUSH
15305: LD_INT 70
15307: PPUSH
15308: CALL_OW 302
15312: NOT
15313: OR
15314: AND
15315: IFFALSE 15457
// begin if IsOk ( zradce5 ) then
15317: LD_INT 71
15319: PPUSH
15320: CALL_OW 302
15324: IFFALSE 15336
// SetFuel ( utek1 , 100 ) ;
15326: LD_INT 66
15328: PPUSH
15329: LD_INT 100
15331: PPUSH
15332: CALL_OW 240
// if IsOk ( zradce4 ) then
15336: LD_INT 70
15338: PPUSH
15339: CALL_OW 302
15343: IFFALSE 15355
// SetFuel ( utek2 , 100 ) ;
15345: LD_INT 67
15347: PPUSH
15348: LD_INT 100
15350: PPUSH
15351: CALL_OW 240
// ComEnterUnit ( zradce5 , utek1 ) ;
15355: LD_INT 71
15357: PPUSH
15358: LD_INT 66
15360: PPUSH
15361: CALL_OW 120
// ComEnterUnit ( zradce4 , utek2 ) ;
15365: LD_INT 70
15367: PPUSH
15368: LD_INT 67
15370: PPUSH
15371: CALL_OW 120
// AddComMoveXY ( [ zradce4 , zradce5 ] , 179 , 136 ) ;
15375: LD_INT 70
15377: PUSH
15378: LD_INT 71
15380: PUSH
15381: EMPTY
15382: LIST
15383: LIST
15384: PPUSH
15385: LD_INT 179
15387: PPUSH
15388: LD_INT 136
15390: PPUSH
15391: CALL_OW 171
// AddComMoveXY ( [ zradce4 , zradce5 ] , 153 , 108 ) ;
15395: LD_INT 70
15397: PUSH
15398: LD_INT 71
15400: PUSH
15401: EMPTY
15402: LIST
15403: LIST
15404: PPUSH
15405: LD_INT 153
15407: PPUSH
15408: LD_INT 108
15410: PPUSH
15411: CALL_OW 171
// AddComMoveXY ( [ zradce4 , zradce5 ] , 126 , 91 ) ;
15415: LD_INT 70
15417: PUSH
15418: LD_INT 71
15420: PUSH
15421: EMPTY
15422: LIST
15423: LIST
15424: PPUSH
15425: LD_INT 126
15427: PPUSH
15428: LD_INT 91
15430: PPUSH
15431: CALL_OW 171
// AddComMoveXY ( [ zradce4 , zradce5 ] , 165 , 92 ) ;
15435: LD_INT 70
15437: PUSH
15438: LD_INT 71
15440: PUSH
15441: EMPTY
15442: LIST
15443: LIST
15444: PPUSH
15445: LD_INT 165
15447: PPUSH
15448: LD_INT 92
15450: PPUSH
15451: CALL_OW 171
// end else
15455: GO 15478
// begin ComMoveXY ( [ utek1 , utek2 ] , 162 , 142 ) ;
15457: LD_INT 66
15459: PUSH
15460: LD_INT 67
15462: PUSH
15463: EMPTY
15464: LIST
15465: LIST
15466: PPUSH
15467: LD_INT 162
15469: PPUSH
15470: LD_INT 142
15472: PPUSH
15473: CALL_OW 111
// enable ;
15477: ENABLE
// end ; end ;
15478: END
// every 0 0$1 trigger Odebirani do
15479: LD_EXP 45
15483: IFFALSE 15597
15485: GO 15487
15487: DISABLE
// begin pom = UnitFilter ( zradci , [ f_inarea , ExitAR ] ) ;
15488: LD_ADDR_LOC 20
15492: PUSH
15493: LD_LOC 19
15497: PPUSH
15498: LD_INT 95
15500: PUSH
15501: LD_INT 5
15503: PUSH
15504: EMPTY
15505: LIST
15506: LIST
15507: PPUSH
15508: CALL_OW 72
15512: ST_TO_ADDR
// for i in pom do
15513: LD_ADDR_LOC 21
15517: PUSH
15518: LD_LOC 20
15522: PUSH
15523: FOR_IN
15524: IFFALSE 15537
// RemoveUnit ( i ) ;
15526: LD_LOC 21
15530: PPUSH
15531: CALL_OW 64
15535: GO 15523
15537: POP
15538: POP
// zradci = UnitFilter ( zradci , [ [ f_alive ] , [ f_side , Arabi ] ] ) ;
15539: LD_ADDR_LOC 19
15543: PUSH
15544: LD_LOC 19
15548: PPUSH
15549: LD_INT 51
15551: PUSH
15552: EMPTY
15553: LIST
15554: PUSH
15555: LD_INT 22
15557: PUSH
15558: LD_EXP 3
15562: PUSH
15563: EMPTY
15564: LIST
15565: LIST
15566: PUSH
15567: EMPTY
15568: LIST
15569: LIST
15570: PPUSH
15571: CALL_OW 72
15575: ST_TO_ADDR
// if zradci > 0 then
15576: LD_LOC 19
15580: PUSH
15581: LD_INT 0
15583: GREATER
15584: IFFALSE 15589
// enable else
15586: ENABLE
15587: GO 15597
// Odebirani = false ;
15589: LD_ADDR_EXP 45
15593: PUSH
15594: LD_INT 0
15596: ST_TO_ADDR
// end ;
15597: END
// every 0 0$1 trigger navrat do
15598: LD_LOC 18
15602: IFFALSE 15733
15604: GO 15606
15606: DISABLE
// begin if IsAt ( plazici [ 1 ] , 86 , 133 ) or IsAt ( plazici [ 2 ] , 86 , 133 ) or IsAt ( plazici [ 3 ] , 86 , 133 ) or IsAt ( plazici [ 4 ] , 86 , 133 ) then
15607: LD_LOC 17
15611: PUSH
15612: LD_INT 1
15614: ARRAY
15615: PPUSH
15616: LD_INT 86
15618: PPUSH
15619: LD_INT 133
15621: PPUSH
15622: CALL_OW 307
15626: PUSH
15627: LD_LOC 17
15631: PUSH
15632: LD_INT 2
15634: ARRAY
15635: PPUSH
15636: LD_INT 86
15638: PPUSH
15639: LD_INT 133
15641: PPUSH
15642: CALL_OW 307
15646: OR
15647: PUSH
15648: LD_LOC 17
15652: PUSH
15653: LD_INT 3
15655: ARRAY
15656: PPUSH
15657: LD_INT 86
15659: PPUSH
15660: LD_INT 133
15662: PPUSH
15663: CALL_OW 307
15667: OR
15668: PUSH
15669: LD_LOC 17
15673: PUSH
15674: LD_INT 4
15676: ARRAY
15677: PPUSH
15678: LD_INT 86
15680: PPUSH
15681: LD_INT 133
15683: PPUSH
15684: CALL_OW 307
15688: OR
15689: IFFALSE 15732
// begin ComWalk ( plazici ) ;
15691: LD_LOC 17
15695: PPUSH
15696: CALL_OW 138
// AddComMoveXY ( plazici , 83 , 148 ) ;
15700: LD_LOC 17
15704: PPUSH
15705: LD_INT 83
15707: PPUSH
15708: LD_INT 148
15710: PPUSH
15711: CALL_OW 171
// ComMoveXY ( Radar_enter , 87 , 152 ) ;
15715: LD_EXP 44
15719: PPUSH
15720: LD_INT 87
15722: PPUSH
15723: LD_INT 152
15725: PPUSH
15726: CALL_OW 111
// end else
15730: GO 15733
// enable ;
15732: ENABLE
// end ;
15733: END
// every 0 0$0.5 trigger navrat do
15734: LD_LOC 18
15738: IFFALSE 15772
15740: GO 15742
15742: DISABLE
// begin if IsInArea ( plazici [ 1 ] , AMret ) then
15743: LD_LOC 17
15747: PUSH
15748: LD_INT 1
15750: ARRAY
15751: PPUSH
15752: LD_INT 2
15754: PPUSH
15755: CALL_OW 308
15759: IFFALSE 15771
// begin chmo1 ;
15761: CALL 2345 0 0
// InGameOff ;
15765: CALL_OW 9
// end else
15769: GO 15772
// enable ;
15771: ENABLE
// end ;
15772: END
// every 0 0$10 trigger A1_dobyta do var pom ;
15773: LD_EXP 28
15777: IFFALSE 15872
15779: GO 15781
15781: DISABLE
15782: LD_INT 0
15784: PPUSH
// begin wait ( Rand ( 1 1$0 , 2 2$20 ) ) ;
15785: LD_INT 2100
15787: PPUSH
15788: LD_INT 4900
15790: PPUSH
15791: CALL_OW 12
15795: PPUSH
15796: CALL_OW 67
// pom = Rand ( 4 - difficulty , 5 ) ;
15800: LD_ADDR_VAR 0 1
15804: PUSH
15805: LD_INT 4
15807: PUSH
15808: LD_OWVAR 67
15812: MINUS
15813: PPUSH
15814: LD_INT 5
15816: PPUSH
15817: CALL_OW 12
15821: ST_TO_ADDR
// CreateCratesArea ( pom , Abase1 , true ) ;
15822: LD_VAR 0 1
15826: PPUSH
15827: LD_INT 3
15829: PPUSH
15830: LD_INT 1
15832: PPUSH
15833: CALL_OW 55
// pocet_spadlych_beden = pocet_spadlych_beden + pom ;
15837: LD_ADDR_LOC 22
15841: PUSH
15842: LD_LOC 22
15846: PUSH
15847: LD_VAR 0 1
15851: PLUS
15852: ST_TO_ADDR
// if pocet_spadlych_beden < max_bedny [ difficulty ] then
15853: LD_LOC 22
15857: PUSH
15858: LD_EXP 51
15862: PUSH
15863: LD_OWVAR 67
15867: ARRAY
15868: LESS
15869: IFFALSE 15872
// enable ;
15871: ENABLE
// end ;
15872: PPOPN 1
15874: END
// every 0 0$10 trigger A2_dobyta do
15875: LD_EXP 29
15879: IFFALSE 15904
15881: GO 15883
15883: DISABLE
// begin pocet_spadlych_beden = pocet_spadlych_beden - 10 + difficulty ;
15884: LD_ADDR_LOC 22
15888: PUSH
15889: LD_LOC 22
15893: PUSH
15894: LD_INT 10
15896: MINUS
15897: PUSH
15898: LD_OWVAR 67
15902: PLUS
15903: ST_TO_ADDR
// end ; end_of_file
15904: END
// export A1_dobyta ; export A2_dobyta ; export A3_dobyta ; export Pruzkumnik ; var vysl ; var pom , i ; var uspech ; export JMM ; export Powell ; export Gary ; export Bobby ; export Frank ; export Lisa ; export Cornel ; export Yamoko ; export Cyrus ; export Don ; export Brown ; export Amici_enter ; export Radar_enter ; every 0 0$30 trigger A1_dobyta do
15905: LD_EXP 28
15909: IFFALSE 16232
15911: GO 15913
15913: DISABLE
// begin if IsOK ( Frank ) then
15914: LD_EXP 36
15918: PPUSH
15919: CALL_OW 302
15923: IFFALSE 16231
// begin wait ( 0 0$10 ) ;
15925: LD_INT 350
15927: PPUSH
15928: CALL_OW 67
// vysl := dialog_frank ;
15932: LD_ADDR_LOC 23
15936: PUSH
15937: CALL 3035 0 0
15941: ST_TO_ADDR
// pom = Rand ( 1 , 100 ) ;
15942: LD_ADDR_LOC 24
15946: PUSH
15947: LD_INT 1
15949: PPUSH
15950: LD_INT 100
15952: PPUSH
15953: CALL_OW 12
15957: ST_TO_ADDR
// case vysl of 1 :
15958: LD_LOC 23
15962: PUSH
15963: LD_INT 1
15965: DOUBLE
15966: EQUAL
15967: IFTRUE 15971
15969: GO 16001
15971: POP
// begin i = [ 50 , 30 , 20 ] ;
15972: LD_ADDR_LOC 25
15976: PUSH
15977: LD_INT 50
15979: PUSH
15980: LD_INT 30
15982: PUSH
15983: LD_INT 20
15985: PUSH
15986: EMPTY
15987: LIST
15988: LIST
15989: LIST
15990: ST_TO_ADDR
// Pruzkumnik = true ;
15991: LD_ADDR_EXP 31
15995: PUSH
15996: LD_INT 1
15998: ST_TO_ADDR
// end ; 21 :
15999: GO 16048
16001: LD_INT 21
16003: DOUBLE
16004: EQUAL
16005: IFTRUE 16009
16007: GO 16039
16009: POP
// begin i = [ 80 , 15 , 5 ] ;
16010: LD_ADDR_LOC 25
16014: PUSH
16015: LD_INT 80
16017: PUSH
16018: LD_INT 15
16020: PUSH
16021: LD_INT 5
16023: PUSH
16024: EMPTY
16025: LIST
16026: LIST
16027: LIST
16028: ST_TO_ADDR
// Pruzkumnik = true ;
16029: LD_ADDR_EXP 31
16033: PUSH
16034: LD_INT 1
16036: ST_TO_ADDR
// end ; else
16037: GO 16048
16039: POP
// uspech = 0 ; end ;
16040: LD_ADDR_LOC 26
16044: PUSH
16045: LD_INT 0
16047: ST_TO_ADDR
// if Pruzkumnik then
16048: LD_EXP 31
16052: IFFALSE 16133
// begin jdi_na_pruzkum ( Frank ) ;
16054: LD_EXP 36
16058: PPUSH
16059: CALL 16553 0 1
// if pom <= i [ 1 ] then
16063: LD_LOC 24
16067: PUSH
16068: LD_LOC 25
16072: PUSH
16073: LD_INT 1
16075: ARRAY
16076: LESSEQUAL
16077: IFFALSE 16089
// uspech = 1 else
16079: LD_ADDR_LOC 26
16083: PUSH
16084: LD_INT 1
16086: ST_TO_ADDR
16087: GO 16133
// if pom <= i [ 1 ] + i [ 2 ] then
16089: LD_LOC 24
16093: PUSH
16094: LD_LOC 25
16098: PUSH
16099: LD_INT 1
16101: ARRAY
16102: PUSH
16103: LD_LOC 25
16107: PUSH
16108: LD_INT 2
16110: ARRAY
16111: PLUS
16112: LESSEQUAL
16113: IFFALSE 16125
// uspech = 2 else
16115: LD_ADDR_LOC 26
16119: PUSH
16120: LD_INT 2
16122: ST_TO_ADDR
16123: GO 16133
// uspech = 3 ;
16125: LD_ADDR_LOC 26
16129: PUSH
16130: LD_INT 3
16132: ST_TO_ADDR
// end ; case uspech of 1 :
16133: LD_LOC 26
16137: PUSH
16138: LD_INT 1
16140: DOUBLE
16141: EQUAL
16142: IFTRUE 16146
16144: GO 16172
16146: POP
// begin wait ( 3 3$0 ) ;
16147: LD_INT 6300
16149: PPUSH
16150: CALL_OW 67
// navrat_z_pruzkumu ( Frank , 1 ) ;
16154: LD_EXP 36
16158: PPUSH
16159: LD_INT 1
16161: PPUSH
16162: CALL 16801 0 2
// fuspech1 ;
16166: CALL 3285 0 0
// end ; 2 :
16170: GO 16229
16172: LD_INT 2
16174: DOUBLE
16175: EQUAL
16176: IFTRUE 16180
16178: GO 16206
16180: POP
// begin wait ( 1 1$0 ) ;
16181: LD_INT 2100
16183: PPUSH
16184: CALL_OW 67
// navrat_z_pruzkumu ( Frank , 2 ) ;
16188: LD_EXP 36
16192: PPUSH
16193: LD_INT 2
16195: PPUSH
16196: CALL 16801 0 2
// fuspech2 ;
16200: CALL 3422 0 0
// end ; 3 :
16204: GO 16229
16206: LD_INT 3
16208: DOUBLE
16209: EQUAL
16210: IFTRUE 16214
16212: GO 16228
16214: POP
// begin wait ( 5 5$0 ) ;
16215: LD_INT 10500
16217: PPUSH
16218: CALL_OW 67
// fuspech3 ;
16222: CALL 3565 0 0
// end ; end ;
16226: GO 16229
16228: POP
// end else
16229: GO 16232
// enable ;
16231: ENABLE
// end ;
16232: END
// every 0 0$30 trigger A1_dobyta do
16233: LD_EXP 28
16237: IFFALSE 16552
16239: GO 16241
16241: DISABLE
// begin if IsOK ( Yamoko ) then
16242: LD_EXP 39
16246: PPUSH
16247: CALL_OW 302
16251: IFFALSE 16551
// begin wait ( 0 0$10 ) ;
16253: LD_INT 350
16255: PPUSH
16256: CALL_OW 67
// vysl := dialog_yamoko ;
16260: LD_ADDR_LOC 23
16264: PUSH
16265: CALL 3573 0 0
16269: ST_TO_ADDR
// pom = Rand ( 1 , 100 ) ;
16270: LD_ADDR_LOC 24
16274: PUSH
16275: LD_INT 1
16277: PPUSH
16278: LD_INT 100
16280: PPUSH
16281: CALL_OW 12
16285: ST_TO_ADDR
// case vysl of 1 :
16286: LD_LOC 23
16290: PUSH
16291: LD_INT 1
16293: DOUBLE
16294: EQUAL
16295: IFTRUE 16299
16297: GO 16329
16299: POP
// begin i = [ 50 , 20 , 30 ] ;
16300: LD_ADDR_LOC 25
16304: PUSH
16305: LD_INT 50
16307: PUSH
16308: LD_INT 20
16310: PUSH
16311: LD_INT 30
16313: PUSH
16314: EMPTY
16315: LIST
16316: LIST
16317: LIST
16318: ST_TO_ADDR
// Pruzkumnik = true ;
16319: LD_ADDR_EXP 31
16323: PUSH
16324: LD_INT 1
16326: ST_TO_ADDR
// end ; 21 :
16327: GO 16368
16329: LD_INT 21
16331: DOUBLE
16332: EQUAL
16333: IFTRUE 16337
16335: GO 16367
16337: POP
// begin i = [ 70 , 25 , 5 ] ;
16338: LD_ADDR_LOC 25
16342: PUSH
16343: LD_INT 70
16345: PUSH
16346: LD_INT 25
16348: PUSH
16349: LD_INT 5
16351: PUSH
16352: EMPTY
16353: LIST
16354: LIST
16355: LIST
16356: ST_TO_ADDR
// Pruzkumnik = true ;
16357: LD_ADDR_EXP 31
16361: PUSH
16362: LD_INT 1
16364: ST_TO_ADDR
// end ; end ;
16365: GO 16368
16367: POP
// if Pruzkumnik then
16368: LD_EXP 31
16372: IFFALSE 16453
// begin jdi_na_pruzkum ( Yamoko ) ;
16374: LD_EXP 39
16378: PPUSH
16379: CALL 16553 0 1
// if pom <= i [ 1 ] then
16383: LD_LOC 24
16387: PUSH
16388: LD_LOC 25
16392: PUSH
16393: LD_INT 1
16395: ARRAY
16396: LESSEQUAL
16397: IFFALSE 16409
// uspech = 1 else
16399: LD_ADDR_LOC 26
16403: PUSH
16404: LD_INT 1
16406: ST_TO_ADDR
16407: GO 16453
// if pom <= i [ 1 ] + i [ 2 ] then
16409: LD_LOC 24
16413: PUSH
16414: LD_LOC 25
16418: PUSH
16419: LD_INT 1
16421: ARRAY
16422: PUSH
16423: LD_LOC 25
16427: PUSH
16428: LD_INT 2
16430: ARRAY
16431: PLUS
16432: LESSEQUAL
16433: IFFALSE 16445
// uspech = 2 else
16435: LD_ADDR_LOC 26
16439: PUSH
16440: LD_INT 2
16442: ST_TO_ADDR
16443: GO 16453
// uspech = 3 ;
16445: LD_ADDR_LOC 26
16449: PUSH
16450: LD_INT 3
16452: ST_TO_ADDR
// end ; case uspech of 1 :
16453: LD_LOC 26
16457: PUSH
16458: LD_INT 1
16460: DOUBLE
16461: EQUAL
16462: IFTRUE 16466
16464: GO 16492
16466: POP
// begin wait ( 2 2$0 ) ;
16467: LD_INT 4200
16469: PPUSH
16470: CALL_OW 67
// navrat_z_pruzkumu ( Yamoko , 1 ) ;
16474: LD_EXP 39
16478: PPUSH
16479: LD_INT 1
16481: PPUSH
16482: CALL 16801 0 2
// yuspech1 ;
16486: CALL 3678 0 0
// end ; 2 :
16490: GO 16549
16492: LD_INT 2
16494: DOUBLE
16495: EQUAL
16496: IFTRUE 16500
16498: GO 16526
16500: POP
// begin wait ( 1 1$0 ) ;
16501: LD_INT 2100
16503: PPUSH
16504: CALL_OW 67
// navrat_z_pruzkumu ( Yamoko , 2 ) ;
16508: LD_EXP 39
16512: PPUSH
16513: LD_INT 2
16515: PPUSH
16516: CALL 16801 0 2
// yuspech2 ;
16520: CALL 3827 0 0
// end ; 3 :
16524: GO 16549
16526: LD_INT 3
16528: DOUBLE
16529: EQUAL
16530: IFTRUE 16534
16532: GO 16548
16534: POP
// begin wait ( 5 5$0 ) ;
16535: LD_INT 10500
16537: PPUSH
16538: CALL_OW 67
// yuspech3 ;
16542: CALL 3926 0 0
// end ; end ;
16546: GO 16549
16548: POP
// end else
16549: GO 16552
// enable ;
16551: ENABLE
// end ;
16552: END
// function jdi_na_pruzkum ( pru ) ; begin
16553: LD_INT 0
16555: PPUSH
// ComStop ( pru ) ;
16556: LD_VAR 0 1
16560: PPUSH
16561: CALL_OW 141
// AddComExitBuilding ( pru ) ;
16565: LD_VAR 0 1
16569: PPUSH
16570: CALL_OW 182
// AddComExitVehicle ( pru ) ;
16574: LD_VAR 0 1
16578: PPUSH
16579: CALL_OW 181
// AddComStop ( pru ) ;
16583: LD_VAR 0 1
16587: PPUSH
16588: CALL_OW 201
// while IsInUnit ( pru ) <> 0 do
16592: LD_VAR 0 1
16596: PPUSH
16597: CALL_OW 310
16601: PUSH
16602: LD_INT 0
16604: NONEQUAL
16605: IFFALSE 16641
// begin wait ( 0 0$0.5 ) ;
16607: LD_INT 18
16609: PPUSH
16610: CALL_OW 67
// ComExitBuilding ( pru ) ;
16614: LD_VAR 0 1
16618: PPUSH
16619: CALL_OW 122
// wait ( 0 0$0.5 ) ;
16623: LD_INT 18
16625: PPUSH
16626: CALL_OW 67
// AddComExitVehicle ( pru ) ;
16630: LD_VAR 0 1
16634: PPUSH
16635: CALL_OW 181
// end ;
16639: GO 16592
// ComStop ( pru ) ;
16641: LD_VAR 0 1
16645: PPUSH
16646: CALL_OW 141
// SetSide ( pru , You2 ) ;
16650: LD_VAR 0 1
16654: PPUSH
16655: LD_EXP 2
16659: PPUSH
16660: CALL_OW 235
// SetClass ( pru , class_soldier ) ;
16664: LD_VAR 0 1
16668: PPUSH
16669: LD_INT 1
16671: PPUSH
16672: CALL_OW 336
// AddComMoveXY ( pru , 91 , 110 ) ;
16676: LD_VAR 0 1
16680: PPUSH
16681: LD_INT 91
16683: PPUSH
16684: LD_INT 110
16686: PPUSH
16687: CALL_OW 171
// AddComMoveXY ( pru , 59 , 103 ) ;
16691: LD_VAR 0 1
16695: PPUSH
16696: LD_INT 59
16698: PPUSH
16699: LD_INT 103
16701: PPUSH
16702: CALL_OW 171
// while not IsAt ( pru , 59 , 103 ) do
16706: LD_VAR 0 1
16710: PPUSH
16711: LD_INT 59
16713: PPUSH
16714: LD_INT 103
16716: PPUSH
16717: CALL_OW 307
16721: NOT
16722: IFFALSE 16748
// begin wait ( 0 0$2 ) ;
16724: LD_INT 70
16726: PPUSH
16727: CALL_OW 67
// AddComMoveXY ( pru , 59 , 103 ) ;
16731: LD_VAR 0 1
16735: PPUSH
16736: LD_INT 59
16738: PPUSH
16739: LD_INT 103
16741: PPUSH
16742: CALL_OW 171
// end ;
16746: GO 16706
// ComMoveXY ( pru , 51 , 101 ) ;
16748: LD_VAR 0 1
16752: PPUSH
16753: LD_INT 51
16755: PPUSH
16756: LD_INT 101
16758: PPUSH
16759: CALL_OW 111
// while not IsInArea ( pru , pru_out ) do
16763: LD_VAR 0 1
16767: PPUSH
16768: LD_INT 24
16770: PPUSH
16771: CALL_OW 308
16775: NOT
16776: IFFALSE 16787
// wait ( 0 0$1 ) ;
16778: LD_INT 35
16780: PPUSH
16781: CALL_OW 67
16785: GO 16763
// RemoveUnit ( pru ) ;
16787: LD_VAR 0 1
16791: PPUSH
16792: CALL_OW 64
// end ;
16796: LD_VAR 0 2
16800: RET
// function navrat_z_pruzkumu ( pru , usp ) ; begin
16801: LD_INT 0
16803: PPUSH
// PlaceUnitArea ( pru , pruarea , false ) ;
16804: LD_VAR 0 1
16808: PPUSH
16809: LD_INT 20
16811: PPUSH
16812: LD_INT 0
16814: PPUSH
16815: CALL_OW 49
// if usp = 1 then
16819: LD_VAR 0 2
16823: PUSH
16824: LD_INT 1
16826: EQUAL
16827: IFFALSE 16844
// AddComMoveXY ( pru , 47 , 87 ) ;
16829: LD_VAR 0 1
16833: PPUSH
16834: LD_INT 47
16836: PPUSH
16837: LD_INT 87
16839: PPUSH
16840: CALL_OW 171
// AddComMoveXY ( pru , 68 , 106 ) ;
16844: LD_VAR 0 1
16848: PPUSH
16849: LD_INT 68
16851: PPUSH
16852: LD_INT 106
16854: PPUSH
16855: CALL_OW 171
// AddComMoveXY ( pru , 118 , 129 ) ;
16859: LD_VAR 0 1
16863: PPUSH
16864: LD_INT 118
16866: PPUSH
16867: LD_INT 129
16869: PPUSH
16870: CALL_OW 171
// if usp <> 1 then
16874: LD_VAR 0 2
16878: PUSH
16879: LD_INT 1
16881: NONEQUAL
16882: IFFALSE 16896
// SetLives ( pru , 300 ) ;
16884: LD_VAR 0 1
16888: PPUSH
16889: LD_INT 300
16891: PPUSH
16892: CALL_OW 234
// while not IsInArea ( pru , Abase1 ) do
16896: LD_VAR 0 1
16900: PPUSH
16901: LD_INT 3
16903: PPUSH
16904: CALL_OW 308
16908: NOT
16909: IFFALSE 16920
// wait ( 0 0$2 ) ;
16911: LD_INT 70
16913: PPUSH
16914: CALL_OW 67
16918: GO 16896
// SetSide ( pru , You ) ;
16920: LD_VAR 0 1
16924: PPUSH
16925: LD_EXP 1
16929: PPUSH
16930: CALL_OW 235
// ComMoveUnit ( pru , JMM ) ;
16934: LD_VAR 0 1
16938: PPUSH
16939: LD_EXP 32
16943: PPUSH
16944: CALL_OW 112
// end ;
16948: LD_VAR 0 3
16952: RET
// every 0 0$10 trigger GetSide ( A1_tov ) or IsDead ( A1_tov ) do
16953: LD_INT 110
16955: PPUSH
16956: CALL_OW 255
16960: PUSH
16961: LD_INT 110
16963: PPUSH
16964: CALL_OW 301
16968: OR
16969: IFFALSE 17034
16971: GO 16973
16973: DISABLE
// begin SetTech ( tech_Flame , You , state_researched ) ;
16974: LD_INT 70
16976: PPUSH
16977: LD_EXP 1
16981: PPUSH
16982: LD_INT 2
16984: PPUSH
16985: CALL_OW 322
// SetTech ( tech_SibPow , You , state_researched ) ;
16989: LD_INT 21
16991: PPUSH
16992: LD_EXP 1
16996: PPUSH
16997: LD_INT 2
16999: PPUSH
17000: CALL_OW 322
// SetTech ( tech_SibEng , You , state_researched ) ;
17004: LD_INT 22
17006: PPUSH
17007: LD_EXP 1
17011: PPUSH
17012: LD_INT 2
17014: PPUSH
17015: CALL_OW 322
// SetTech ( tech_Mortar , You , state_researched ) ;
17019: LD_INT 41
17021: PPUSH
17022: LD_EXP 1
17026: PPUSH
17027: LD_INT 2
17029: PPUSH
17030: CALL_OW 322
// end ;
17034: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , Arabi ] , [ f_btype , b_warehouse ] ] ) = 0 do var pomauta ; var art ; var i , pom ;
17035: LD_INT 22
17037: PUSH
17038: LD_EXP 3
17042: PUSH
17043: EMPTY
17044: LIST
17045: LIST
17046: PUSH
17047: LD_INT 30
17049: PUSH
17050: LD_INT 1
17052: PUSH
17053: EMPTY
17054: LIST
17055: LIST
17056: PUSH
17057: EMPTY
17058: LIST
17059: LIST
17060: PPUSH
17061: CALL_OW 69
17065: PUSH
17066: LD_INT 0
17068: EQUAL
17069: IFFALSE 17238
17071: GO 17073
17073: DISABLE
17074: LD_INT 0
17076: PPUSH
17077: PPUSH
17078: PPUSH
17079: PPUSH
// begin pomauta = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_weapon , us_cargo_bay ] , [ f_weapon , ar_cargo_bay ] ] ] ) ;
17080: LD_ADDR_VAR 0 1
17084: PUSH
17085: LD_INT 22
17087: PUSH
17088: LD_EXP 1
17092: PUSH
17093: EMPTY
17094: LIST
17095: LIST
17096: PUSH
17097: LD_INT 2
17099: PUSH
17100: LD_INT 34
17102: PUSH
17103: LD_INT 12
17105: PUSH
17106: EMPTY
17107: LIST
17108: LIST
17109: PUSH
17110: LD_INT 34
17112: PUSH
17113: LD_INT 32
17115: PUSH
17116: EMPTY
17117: LIST
17118: LIST
17119: PUSH
17120: EMPTY
17121: LIST
17122: LIST
17123: LIST
17124: PUSH
17125: EMPTY
17126: LIST
17127: LIST
17128: PPUSH
17129: CALL_OW 69
17133: ST_TO_ADDR
// art = false ;
17134: LD_ADDR_VAR 0 2
17138: PUSH
17139: LD_INT 0
17141: ST_TO_ADDR
// for i in pomauta do
17142: LD_ADDR_VAR 0 3
17146: PUSH
17147: LD_VAR 0 1
17151: PUSH
17152: FOR_IN
17153: IFFALSE 17183
// if GetCargo ( i , mat_artefact ) > 0 then
17155: LD_VAR 0 3
17159: PPUSH
17160: LD_INT 4
17162: PPUSH
17163: CALL_OW 289
17167: PUSH
17168: LD_INT 0
17170: GREATER
17171: IFFALSE 17181
// art = true ;
17173: LD_ADDR_VAR 0 2
17177: PUSH
17178: LD_INT 1
17180: ST_TO_ADDR
17181: GO 17152
17183: POP
17184: POP
// if art then
17185: LD_VAR 0 2
17189: IFFALSE 17197
// konec_mise else
17191: CALL 669 0 0
17195: GO 17238
// begin pom = query_konec_mise ;
17197: LD_ADDR_VAR 0 4
17201: PUSH
17202: CALL 7832 0 0
17206: ST_TO_ADDR
// if pom = 2 then
17207: LD_VAR 0 4
17211: PUSH
17212: LD_INT 2
17214: EQUAL
17215: IFFALSE 17223
// konec_mise else
17217: CALL 669 0 0
17221: GO 17238
// begin end_the_mission_allowed = true ;
17223: LD_ADDR_OWVAR 57
17227: PUSH
17228: LD_INT 1
17230: ST_TO_ADDR
// ChangeMissionObjectives ( MDestroyOut ) ;
17231: LD_STRING MDestroyOut
17233: PPUSH
17234: CALL_OW 337
// end ; end ; end ; end_of_file
17238: PPOPN 4
17240: END
// export Odebirani ; export oposoldier ; export bum2 ; var utok1 ; var utok1_over ; var utok3_over ; var utok4_over ; var Veze_2 ; var Opr_2 ; var i , pom , pom1 ; var uklizejici_mista ; var mcm1 ; var mcm2 ; every 0 0$0.3 do
17241: GO 17243
17243: DISABLE
// begin utok1 := false ;
17244: LD_ADDR_LOC 27
17248: PUSH
17249: LD_INT 0
17251: ST_TO_ADDR
// bum2 = false ;
17252: LD_ADDR_EXP 47
17256: PUSH
17257: LD_INT 0
17259: ST_TO_ADDR
// Veze_2 := [ A2_bu1 , A2_bu2 , A2_bu3 , A2_bu4 , A2_bu4 , A2_bu5 , A2_bu6 ] ;
17260: LD_ADDR_LOC 31
17264: PUSH
17265: LD_INT 112
17267: PUSH
17268: LD_INT 63
17270: PUSH
17271: LD_INT 47
17273: PUSH
17274: LD_INT 60
17276: PUSH
17277: LD_INT 60
17279: PUSH
17280: LD_INT 62
17282: PUSH
17283: LD_INT 59
17285: PUSH
17286: EMPTY
17287: LIST
17288: LIST
17289: LIST
17290: LIST
17291: LIST
17292: LIST
17293: LIST
17294: ST_TO_ADDR
// Opr_2 = [ JEDNOTKY_BAZE_2_LIST [ 15 ] , JEDNOTKY_BAZE_2_LIST [ 16 ] ] ;
17295: LD_ADDR_LOC 32
17299: PUSH
17300: LD_EXP 11
17304: PUSH
17305: LD_INT 15
17307: ARRAY
17308: PUSH
17309: LD_EXP 11
17313: PUSH
17314: LD_INT 16
17316: ARRAY
17317: PUSH
17318: EMPTY
17319: LIST
17320: LIST
17321: ST_TO_ADDR
// pom = vytvor_opravare ;
17322: LD_ADDR_LOC 34
17326: PUSH
17327: CALL 9014 0 0
17331: ST_TO_ADDR
// Opr_2 = Opr_2 ^ pom ;
17332: LD_ADDR_LOC 32
17336: PUSH
17337: LD_LOC 32
17341: PUSH
17342: LD_LOC 34
17346: ADD
17347: ST_TO_ADDR
// Utok1_over = false ;
17348: LD_ADDR_LOC 28
17352: PUSH
17353: LD_INT 0
17355: ST_TO_ADDR
// utok3_over = false ;
17356: LD_ADDR_LOC 29
17360: PUSH
17361: LD_INT 0
17363: ST_TO_ADDR
// utok4_over = false ;
17364: LD_ADDR_LOC 30
17368: PUSH
17369: LD_INT 0
17371: ST_TO_ADDR
// uklizejici_mista = [ [ 28 , 16 ] , [ 22 , 18 ] , [ 29 , 20 ] , [ 19 , 33 ] ] ;
17372: LD_ADDR_LOC 36
17376: PUSH
17377: LD_INT 28
17379: PUSH
17380: LD_INT 16
17382: PUSH
17383: EMPTY
17384: LIST
17385: LIST
17386: PUSH
17387: LD_INT 22
17389: PUSH
17390: LD_INT 18
17392: PUSH
17393: EMPTY
17394: LIST
17395: LIST
17396: PUSH
17397: LD_INT 29
17399: PUSH
17400: LD_INT 20
17402: PUSH
17403: EMPTY
17404: LIST
17405: LIST
17406: PUSH
17407: LD_INT 19
17409: PUSH
17410: LD_INT 33
17412: PUSH
17413: EMPTY
17414: LIST
17415: LIST
17416: PUSH
17417: EMPTY
17418: LIST
17419: LIST
17420: LIST
17421: LIST
17422: ST_TO_ADDR
// disable ( 998 ) ;
17423: LD_INT 998
17425: DISABLE_MARKED
// disable ( 997 ) ;
17426: LD_INT 997
17428: DISABLE_MARKED
// disable ( 996 ) ;
17429: LD_INT 996
17431: DISABLE_MARKED
// disable ( 995 ) ;
17432: LD_INT 995
17434: DISABLE_MARKED
// if difficulty < 3 then
17435: LD_OWVAR 67
17439: PUSH
17440: LD_INT 3
17442: LESS
17443: IFFALSE 17452
// RemoveUnit ( sui1 ) ;
17445: LD_INT 118
17447: PPUSH
17448: CALL_OW 64
// if difficulty < 2 then
17452: LD_OWVAR 67
17456: PUSH
17457: LD_INT 2
17459: LESS
17460: IFFALSE 17476
// begin RemoveUnit ( sui2 ) ;
17462: LD_INT 119
17464: PPUSH
17465: CALL_OW 64
// RemoveUnit ( sui3 ) ;
17469: LD_INT 121
17471: PPUSH
17472: CALL_OW 64
// end ; end ;
17476: END
// export function uklid_arabu ; begin
17477: LD_INT 0
17479: PPUSH
// ComEnterUnit ( zradce1 , A1_lab ) ;
17480: LD_INT 65
17482: PPUSH
17483: LD_INT 15
17485: PPUSH
17486: CALL_OW 120
// ComEnterUnit ( zradce2 , A1_bu1 ) ;
17490: LD_INT 68
17492: PPUSH
17493: LD_INT 9
17495: PPUSH
17496: CALL_OW 120
// ComEnterUnit ( zradce3 , A1_bu2 ) ;
17500: LD_INT 69
17502: PPUSH
17503: LD_INT 8
17505: PPUSH
17506: CALL_OW 120
// ComEnterUnit ( zradce4 , A1_bar ) ;
17510: LD_INT 70
17512: PPUSH
17513: LD_INT 14
17515: PPUSH
17516: CALL_OW 120
// ComEnterUnit ( zradce5 , A1_bar ) ;
17520: LD_INT 71
17522: PPUSH
17523: LD_INT 14
17525: PPUSH
17526: CALL_OW 120
// ComEnterUnit ( A1_vo1 , A1_bu3 ) ;
17530: LD_INT 72
17532: PPUSH
17533: LD_INT 11
17535: PPUSH
17536: CALL_OW 120
// ComEnterUnit ( A1_vo2 , A1_dep ) ;
17540: LD_INT 73
17542: PPUSH
17543: LD_INT 4
17545: PPUSH
17546: CALL_OW 120
// ComEnterUnit ( A1_vo4 , A1_dep ) ;
17550: LD_INT 76
17552: PPUSH
17553: LD_INT 4
17555: PPUSH
17556: CALL_OW 120
// ComEnterUnit ( A1_ve1 , A1_lab ) ;
17560: LD_INT 87
17562: PPUSH
17563: LD_INT 15
17565: PPUSH
17566: CALL_OW 120
// ComEnterUnit ( A1_ve2 , A1_lab ) ;
17570: LD_INT 74
17572: PPUSH
17573: LD_INT 15
17575: PPUSH
17576: CALL_OW 120
// ComEnterUnit ( zradce6 , A1_bu6 ) ;
17580: LD_INT 75
17582: PPUSH
17583: LD_INT 10
17585: PPUSH
17586: CALL_OW 120
// ComEnterUnit ( zradce7 , A1_bu4 ) ;
17590: LD_INT 77
17592: PPUSH
17593: LD_INT 12
17595: PPUSH
17596: CALL_OW 120
// ComHold ( mrtvola2 ) ;
17600: LD_INT 78
17602: PPUSH
17603: CALL_OW 140
// ComEnterUnit ( A1_en1 , A1_dep ) ;
17607: LD_INT 79
17609: PPUSH
17610: LD_INT 4
17612: PPUSH
17613: CALL_OW 120
// ComEnterUnit ( A1_me1 , A1_tov ) ;
17617: LD_INT 81
17619: PPUSH
17620: LD_INT 110
17622: PPUSH
17623: CALL_OW 120
// ComEnterUnit ( A1_me2 , A1_tov ) ;
17627: LD_INT 80
17629: PPUSH
17630: LD_INT 110
17632: PPUSH
17633: CALL_OW 120
// ComPlaceRemoteCharge ( A2_zas1 , 52 , 62 , 0 ) ;
17637: LD_INT 82
17639: PPUSH
17640: LD_INT 52
17642: PPUSH
17643: LD_INT 62
17645: PPUSH
17646: LD_INT 0
17648: PPUSH
17649: CALL_OW 133
// ComPlaceRemoteCharge ( A2_zas2 , 55 , 64 , 0 ) ;
17653: LD_INT 83
17655: PPUSH
17656: LD_INT 55
17658: PPUSH
17659: LD_INT 64
17661: PPUSH
17662: LD_INT 0
17664: PPUSH
17665: CALL_OW 133
// AddComMoveXY ( [ A2_zas1 , A2_zas2 ] , 44 , 24 ) ;
17669: LD_INT 82
17671: PUSH
17672: LD_INT 83
17674: PUSH
17675: EMPTY
17676: LIST
17677: LIST
17678: PPUSH
17679: LD_INT 44
17681: PPUSH
17682: LD_INT 24
17684: PPUSH
17685: CALL_OW 171
// AddComMoveXY ( [ A2_zas1 , A2_zas2 ] , 30 , 11 ) ;
17689: LD_INT 82
17691: PUSH
17692: LD_INT 83
17694: PUSH
17695: EMPTY
17696: LIST
17697: LIST
17698: PPUSH
17699: LD_INT 30
17701: PPUSH
17702: LD_INT 11
17704: PPUSH
17705: CALL_OW 171
// AddComMoveXY ( [ A2_zas1 , A2_zas2 ] , 24 , 37 ) ;
17709: LD_INT 82
17711: PUSH
17712: LD_INT 83
17714: PUSH
17715: EMPTY
17716: LIST
17717: LIST
17718: PPUSH
17719: LD_INT 24
17721: PPUSH
17722: LD_INT 37
17724: PPUSH
17725: CALL_OW 171
// AddComMoveXY ( A2_zas1 , 32 , 60 ) ;
17729: LD_INT 82
17731: PPUSH
17732: LD_INT 32
17734: PPUSH
17735: LD_INT 60
17737: PPUSH
17738: CALL_OW 171
// AddComMoveXY ( A2_zas2 , 37 , 58 ) ;
17742: LD_INT 83
17744: PPUSH
17745: LD_INT 37
17747: PPUSH
17748: LD_INT 58
17750: PPUSH
17751: CALL_OW 171
// AddComCrawl ( [ A2_zas1 , A2_zas2 ] ) ;
17755: LD_INT 82
17757: PUSH
17758: LD_INT 83
17760: PUSH
17761: EMPTY
17762: LIST
17763: LIST
17764: PPUSH
17765: CALL_OW 197
// ComEnterUnit ( A3_rme1 , A3_rv1 ) ;
17769: LD_INT 96
17771: PPUSH
17772: LD_INT 26
17774: PPUSH
17775: CALL_OW 120
// ComEnterUnit ( A3_rme2 , A3_rv2 ) ;
17779: LD_INT 95
17781: PPUSH
17782: LD_INT 25
17784: PPUSH
17785: CALL_OW 120
// ComEnterUnit ( A3_rme3 , A3_rv3 ) ;
17789: LD_INT 94
17791: PPUSH
17792: LD_INT 27
17794: PPUSH
17795: CALL_OW 120
// wait ( 0 0$5 ) ;
17799: LD_INT 175
17801: PPUSH
17802: CALL_OW 67
// ComLinkTo ( [ A3_are1 , A3_are2 , A3_are3 ] , A3_rme1 ) ;
17806: LD_INT 23
17808: PUSH
17809: LD_INT 18
17811: PUSH
17812: LD_INT 44
17814: PUSH
17815: EMPTY
17816: LIST
17817: LIST
17818: LIST
17819: PPUSH
17820: LD_INT 96
17822: PPUSH
17823: CALL_OW 135
// ComLinkTo ( [ A3_are4 , A3_are5 , A3_are6 ] , A3_rme2 ) ;
17827: LD_INT 19
17829: PUSH
17830: LD_INT 24
17832: PUSH
17833: LD_INT 20
17835: PUSH
17836: EMPTY
17837: LIST
17838: LIST
17839: LIST
17840: PPUSH
17841: LD_INT 95
17843: PPUSH
17844: CALL_OW 135
// ComLinkTo ( [ A3_are7 , A3_are8 , A3_are9 ] , A3_rme3 ) ;
17848: LD_INT 21
17850: PUSH
17851: LD_INT 93
17853: PUSH
17854: LD_INT 22
17856: PUSH
17857: EMPTY
17858: LIST
17859: LIST
17860: LIST
17861: PPUSH
17862: LD_INT 94
17864: PPUSH
17865: CALL_OW 135
// ComPlaceRemoteCharge ( A3_zas1 , 103 , 19 , 0 ) ;
17869: LD_INT 101
17871: PPUSH
17872: LD_INT 103
17874: PPUSH
17875: LD_INT 19
17877: PPUSH
17878: LD_INT 0
17880: PPUSH
17881: CALL_OW 133
// AddComMoveXY ( A3_zas1 , 104 , 3 ) ;
17885: LD_INT 101
17887: PPUSH
17888: LD_INT 104
17890: PPUSH
17891: LD_INT 3
17893: PPUSH
17894: CALL_OW 171
// AddComCrawl ( A3_zas1 ) ;
17898: LD_INT 101
17900: PPUSH
17901: CALL_OW 197
// AddComTurnXY ( A3_zas1 , 102 , 8 ) ;
17905: LD_INT 101
17907: PPUSH
17908: LD_INT 102
17910: PPUSH
17911: LD_INT 8
17913: PPUSH
17914: CALL_OW 178
// end ;
17918: LD_VAR 0 1
17922: RET
// export function uklid_arabu2 ; var MD1_un ; var MD2_un ; begin
17923: LD_INT 0
17925: PPUSH
17926: PPUSH
17927: PPUSH
// MD1_un = [ ] ;
17928: LD_ADDR_VAR 0 2
17932: PUSH
17933: EMPTY
17934: ST_TO_ADDR
// MD2_un = [ ] ;
17935: LD_ADDR_VAR 0 3
17939: PUSH
17940: EMPTY
17941: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 1 ] , A2_bu1 ) ;
17942: LD_EXP 11
17946: PUSH
17947: LD_INT 1
17949: ARRAY
17950: PPUSH
17951: LD_INT 112
17953: PPUSH
17954: CALL_OW 120
// uklizejici_mista = uklizejici_mista ^ [ [ A2_bu1 , false , 0 ] ] ;
17958: LD_ADDR_LOC 36
17962: PUSH
17963: LD_LOC 36
17967: PUSH
17968: LD_INT 112
17970: PUSH
17971: LD_INT 0
17973: PUSH
17974: LD_INT 0
17976: PUSH
17977: EMPTY
17978: LIST
17979: LIST
17980: LIST
17981: PUSH
17982: EMPTY
17983: LIST
17984: ADD
17985: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 2 ] , A2_bu2 ) ;
17986: LD_EXP 11
17990: PUSH
17991: LD_INT 2
17993: ARRAY
17994: PPUSH
17995: LD_INT 63
17997: PPUSH
17998: CALL_OW 120
// MD1_un = MD1_un ^ JEDNOTKY_BAZE_2_LIST [ 2 ] ;
18002: LD_ADDR_VAR 0 2
18006: PUSH
18007: LD_VAR 0 2
18011: PUSH
18012: LD_EXP 11
18016: PUSH
18017: LD_INT 2
18019: ARRAY
18020: ADD
18021: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_bu2 , false , 0 ] ] ;
18022: LD_ADDR_LOC 36
18026: PUSH
18027: LD_LOC 36
18031: PUSH
18032: LD_INT 63
18034: PUSH
18035: LD_INT 0
18037: PUSH
18038: LD_INT 0
18040: PUSH
18041: EMPTY
18042: LIST
18043: LIST
18044: LIST
18045: PUSH
18046: EMPTY
18047: LIST
18048: ADD
18049: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 3 ] , A2_bu3 ) ;
18050: LD_EXP 11
18054: PUSH
18055: LD_INT 3
18057: ARRAY
18058: PPUSH
18059: LD_INT 47
18061: PPUSH
18062: CALL_OW 120
// if difficulty > 1 then
18066: LD_OWVAR 67
18070: PUSH
18071: LD_INT 1
18073: GREATER
18074: IFFALSE 18096
// MD1_un = MD1_un ^ JEDNOTKY_BAZE_2_LIST [ 3 ] ;
18076: LD_ADDR_VAR 0 2
18080: PUSH
18081: LD_VAR 0 2
18085: PUSH
18086: LD_EXP 11
18090: PUSH
18091: LD_INT 3
18093: ARRAY
18094: ADD
18095: ST_TO_ADDR
// if difficulty > 1 then
18096: LD_OWVAR 67
18100: PUSH
18101: LD_INT 1
18103: GREATER
18104: IFFALSE 18126
// MD2_un = MD2_un ^ JEDNOTKY_BAZE_2_LIST [ 3 ] ;
18106: LD_ADDR_VAR 0 3
18110: PUSH
18111: LD_VAR 0 3
18115: PUSH
18116: LD_EXP 11
18120: PUSH
18121: LD_INT 3
18123: ARRAY
18124: ADD
18125: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_bu3 , false , 0 ] ] ;
18126: LD_ADDR_LOC 36
18130: PUSH
18131: LD_LOC 36
18135: PUSH
18136: LD_INT 47
18138: PUSH
18139: LD_INT 0
18141: PUSH
18142: LD_INT 0
18144: PUSH
18145: EMPTY
18146: LIST
18147: LIST
18148: LIST
18149: PUSH
18150: EMPTY
18151: LIST
18152: ADD
18153: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 4 ] , A2_bu4 ) ;
18154: LD_EXP 11
18158: PUSH
18159: LD_INT 4
18161: ARRAY
18162: PPUSH
18163: LD_INT 60
18165: PPUSH
18166: CALL_OW 120
// uklizejici_mista = uklizejici_mista ^ [ [ A2_bu4 , false , 0 ] ] ;
18170: LD_ADDR_LOC 36
18174: PUSH
18175: LD_LOC 36
18179: PUSH
18180: LD_INT 60
18182: PUSH
18183: LD_INT 0
18185: PUSH
18186: LD_INT 0
18188: PUSH
18189: EMPTY
18190: LIST
18191: LIST
18192: LIST
18193: PUSH
18194: EMPTY
18195: LIST
18196: ADD
18197: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 5 ] , A2_bu5 ) ;
18198: LD_EXP 11
18202: PUSH
18203: LD_INT 5
18205: ARRAY
18206: PPUSH
18207: LD_INT 62
18209: PPUSH
18210: CALL_OW 120
// MD2_un = MD2_un ^ JEDNOTKY_BAZE_2_LIST [ 5 ] ;
18214: LD_ADDR_VAR 0 3
18218: PUSH
18219: LD_VAR 0 3
18223: PUSH
18224: LD_EXP 11
18228: PUSH
18229: LD_INT 5
18231: ARRAY
18232: ADD
18233: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_bu5 , false , 0 ] ] ;
18234: LD_ADDR_LOC 36
18238: PUSH
18239: LD_LOC 36
18243: PUSH
18244: LD_INT 62
18246: PUSH
18247: LD_INT 0
18249: PUSH
18250: LD_INT 0
18252: PUSH
18253: EMPTY
18254: LIST
18255: LIST
18256: LIST
18257: PUSH
18258: EMPTY
18259: LIST
18260: ADD
18261: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 6 ] , A2_bu6 ) ;
18262: LD_EXP 11
18266: PUSH
18267: LD_INT 6
18269: ARRAY
18270: PPUSH
18271: LD_INT 59
18273: PPUSH
18274: CALL_OW 120
// MD2_un = MD2_un ^ JEDNOTKY_BAZE_2_LIST [ 6 ] ;
18278: LD_ADDR_VAR 0 3
18282: PUSH
18283: LD_VAR 0 3
18287: PUSH
18288: LD_EXP 11
18292: PUSH
18293: LD_INT 6
18295: ARRAY
18296: ADD
18297: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_bu6 , false , 0 ] ] ;
18298: LD_ADDR_LOC 36
18302: PUSH
18303: LD_LOC 36
18307: PUSH
18308: LD_INT 59
18310: PUSH
18311: LD_INT 0
18313: PUSH
18314: LD_INT 0
18316: PUSH
18317: EMPTY
18318: LIST
18319: LIST
18320: LIST
18321: PUSH
18322: EMPTY
18323: LIST
18324: ADD
18325: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 17 ] , A2_tov ) ;
18326: LD_EXP 11
18330: PUSH
18331: LD_INT 17
18333: ARRAY
18334: PPUSH
18335: LD_INT 50
18337: PPUSH
18338: CALL_OW 120
// MD1_un = MD1_un ^ JEDNOTKY_BAZE_2_LIST [ 17 ] ;
18342: LD_ADDR_VAR 0 2
18346: PUSH
18347: LD_VAR 0 2
18351: PUSH
18352: LD_EXP 11
18356: PUSH
18357: LD_INT 17
18359: ARRAY
18360: ADD
18361: ST_TO_ADDR
// MD2_un = MD2_un ^ JEDNOTKY_BAZE_2_LIST [ 17 ] ;
18362: LD_ADDR_VAR 0 3
18366: PUSH
18367: LD_VAR 0 3
18371: PUSH
18372: LD_EXP 11
18376: PUSH
18377: LD_INT 17
18379: ARRAY
18380: ADD
18381: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_tov , true , class_mechanic ] ] ;
18382: LD_ADDR_LOC 36
18386: PUSH
18387: LD_LOC 36
18391: PUSH
18392: LD_INT 50
18394: PUSH
18395: LD_INT 1
18397: PUSH
18398: LD_INT 3
18400: PUSH
18401: EMPTY
18402: LIST
18403: LIST
18404: LIST
18405: PUSH
18406: EMPTY
18407: LIST
18408: ADD
18409: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 18 ] , A2_tov ) ;
18410: LD_EXP 11
18414: PUSH
18415: LD_INT 18
18417: ARRAY
18418: PPUSH
18419: LD_INT 50
18421: PPUSH
18422: CALL_OW 120
// MD1_un = MD1_un ^ JEDNOTKY_BAZE_2_LIST [ 18 ] ;
18426: LD_ADDR_VAR 0 2
18430: PUSH
18431: LD_VAR 0 2
18435: PUSH
18436: LD_EXP 11
18440: PUSH
18441: LD_INT 18
18443: ARRAY
18444: ADD
18445: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_tov , true , class_mechanic ] ] ;
18446: LD_ADDR_LOC 36
18450: PUSH
18451: LD_LOC 36
18455: PUSH
18456: LD_INT 50
18458: PUSH
18459: LD_INT 1
18461: PUSH
18462: LD_INT 3
18464: PUSH
18465: EMPTY
18466: LIST
18467: LIST
18468: LIST
18469: PUSH
18470: EMPTY
18471: LIST
18472: ADD
18473: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 19 ] , A2_tov ) ;
18474: LD_EXP 11
18478: PUSH
18479: LD_INT 19
18481: ARRAY
18482: PPUSH
18483: LD_INT 50
18485: PPUSH
18486: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 20 ] , A2_tov ) ;
18490: LD_EXP 11
18494: PUSH
18495: LD_INT 20
18497: ARRAY
18498: PPUSH
18499: LD_INT 50
18501: PPUSH
18502: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 15 ] , A2_dep ) ;
18506: LD_EXP 11
18510: PUSH
18511: LD_INT 15
18513: ARRAY
18514: PPUSH
18515: LD_INT 46
18517: PPUSH
18518: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 16 ] , A2_dep ) ;
18522: LD_EXP 11
18526: PUSH
18527: LD_INT 16
18529: ARRAY
18530: PPUSH
18531: LD_INT 46
18533: PPUSH
18534: CALL_OW 120
// MD2_un = MD2_un ^ JEDNOTKY_BAZE_2_LIST [ 16 ] ;
18538: LD_ADDR_VAR 0 3
18542: PUSH
18543: LD_VAR 0 3
18547: PUSH
18548: LD_EXP 11
18552: PUSH
18553: LD_INT 16
18555: ARRAY
18556: ADD
18557: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_dep , true , class_engineer ] ] ;
18558: LD_ADDR_LOC 36
18562: PUSH
18563: LD_LOC 36
18567: PUSH
18568: LD_INT 46
18570: PUSH
18571: LD_INT 1
18573: PUSH
18574: LD_INT 2
18576: PUSH
18577: EMPTY
18578: LIST
18579: LIST
18580: LIST
18581: PUSH
18582: EMPTY
18583: LIST
18584: ADD
18585: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 7 ] , A2_bar ) ;
18586: LD_EXP 11
18590: PUSH
18591: LD_INT 7
18593: ARRAY
18594: PPUSH
18595: LD_INT 48
18597: PPUSH
18598: CALL_OW 120
// MD1_un = MD1_un ^ JEDNOTKY_BAZE_2_LIST [ 7 ] ;
18602: LD_ADDR_VAR 0 2
18606: PUSH
18607: LD_VAR 0 2
18611: PUSH
18612: LD_EXP 11
18616: PUSH
18617: LD_INT 7
18619: ARRAY
18620: ADD
18621: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_bar , true , class_mortar ] ] ;
18622: LD_ADDR_LOC 36
18626: PUSH
18627: LD_LOC 36
18631: PUSH
18632: LD_INT 48
18634: PUSH
18635: LD_INT 1
18637: PUSH
18638: LD_INT 8
18640: PUSH
18641: EMPTY
18642: LIST
18643: LIST
18644: LIST
18645: PUSH
18646: EMPTY
18647: LIST
18648: ADD
18649: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 8 ] , A2_bar ) ;
18650: LD_EXP 11
18654: PUSH
18655: LD_INT 8
18657: ARRAY
18658: PPUSH
18659: LD_INT 48
18661: PPUSH
18662: CALL_OW 120
// MD2_un = MD2_un ^ JEDNOTKY_BAZE_2_LIST [ 8 ] ;
18666: LD_ADDR_VAR 0 3
18670: PUSH
18671: LD_VAR 0 3
18675: PUSH
18676: LD_EXP 11
18680: PUSH
18681: LD_INT 8
18683: ARRAY
18684: ADD
18685: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_bar , true , class_soldier ] ] ;
18686: LD_ADDR_LOC 36
18690: PUSH
18691: LD_LOC 36
18695: PUSH
18696: LD_INT 48
18698: PUSH
18699: LD_INT 1
18701: PUSH
18702: LD_INT 1
18704: PUSH
18705: EMPTY
18706: LIST
18707: LIST
18708: LIST
18709: PUSH
18710: EMPTY
18711: LIST
18712: ADD
18713: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 9 ] , A2_bar ) ;
18714: LD_EXP 11
18718: PUSH
18719: LD_INT 9
18721: ARRAY
18722: PPUSH
18723: LD_INT 48
18725: PPUSH
18726: CALL_OW 120
// uklizejici_mista = uklizejici_mista ^ [ [ A2_bar , true , class_mortar ] ] ;
18730: LD_ADDR_LOC 36
18734: PUSH
18735: LD_LOC 36
18739: PUSH
18740: LD_INT 48
18742: PUSH
18743: LD_INT 1
18745: PUSH
18746: LD_INT 8
18748: PUSH
18749: EMPTY
18750: LIST
18751: LIST
18752: LIST
18753: PUSH
18754: EMPTY
18755: LIST
18756: ADD
18757: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 10 ] , A2_bar ) ;
18758: LD_EXP 11
18762: PUSH
18763: LD_INT 10
18765: ARRAY
18766: PPUSH
18767: LD_INT 48
18769: PPUSH
18770: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 11 ] , A2_lab ) ;
18774: LD_EXP 11
18778: PUSH
18779: LD_INT 11
18781: ARRAY
18782: PPUSH
18783: LD_INT 61
18785: PPUSH
18786: CALL_OW 120
// MD1_un = MD1_un ^ JEDNOTKY_BAZE_2_LIST [ 10 ] ;
18790: LD_ADDR_VAR 0 2
18794: PUSH
18795: LD_VAR 0 2
18799: PUSH
18800: LD_EXP 11
18804: PUSH
18805: LD_INT 10
18807: ARRAY
18808: ADD
18809: ST_TO_ADDR
// MD2_un = MD2_un ^ JEDNOTKY_BAZE_2_LIST [ 10 ] ;
18810: LD_ADDR_VAR 0 3
18814: PUSH
18815: LD_VAR 0 3
18819: PUSH
18820: LD_EXP 11
18824: PUSH
18825: LD_INT 10
18827: ARRAY
18828: ADD
18829: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_lab , true , class_scientistic ] ] ;
18830: LD_ADDR_LOC 36
18834: PUSH
18835: LD_LOC 36
18839: PUSH
18840: LD_INT 61
18842: PUSH
18843: LD_INT 1
18845: PUSH
18846: LD_INT 4
18848: PUSH
18849: EMPTY
18850: LIST
18851: LIST
18852: LIST
18853: PUSH
18854: EMPTY
18855: LIST
18856: ADD
18857: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 12 ] , A2_lab ) ;
18858: LD_EXP 11
18862: PUSH
18863: LD_INT 12
18865: ARRAY
18866: PPUSH
18867: LD_INT 61
18869: PPUSH
18870: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 23 ] , A2_radar ) ;
18874: LD_EXP 11
18878: PUSH
18879: LD_INT 23
18881: ARRAY
18882: PPUSH
18883: LD_INT 88
18885: PPUSH
18886: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 21 ] , A2_nau1 ) ;
18890: LD_EXP 11
18894: PUSH
18895: LD_INT 21
18897: ARRAY
18898: PPUSH
18899: LD_INT 107
18901: PPUSH
18902: CALL_OW 120
// MD1_un = MD1_un ^ JEDNOTKY_BAZE_2_LIST [ 21 ] ;
18906: LD_ADDR_VAR 0 2
18910: PUSH
18911: LD_VAR 0 2
18915: PUSH
18916: LD_EXP 11
18920: PUSH
18921: LD_INT 21
18923: ARRAY
18924: ADD
18925: ST_TO_ADDR
// MD2_un = MD2_un ^ JEDNOTKY_BAZE_2_LIST [ 21 ] ;
18926: LD_ADDR_VAR 0 3
18930: PUSH
18931: LD_VAR 0 3
18935: PUSH
18936: LD_EXP 11
18940: PUSH
18941: LD_INT 21
18943: ARRAY
18944: ADD
18945: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_nau1 , false , 0 ] ] ;
18946: LD_ADDR_LOC 36
18950: PUSH
18951: LD_LOC 36
18955: PUSH
18956: LD_INT 107
18958: PUSH
18959: LD_INT 0
18961: PUSH
18962: LD_INT 0
18964: PUSH
18965: EMPTY
18966: LIST
18967: LIST
18968: LIST
18969: PUSH
18970: EMPTY
18971: LIST
18972: ADD
18973: ST_TO_ADDR
// ComEnterUnit ( JEDNOTKY_BAZE_2_LIST [ 22 ] , A2_nau2 ) ;
18974: LD_EXP 11
18978: PUSH
18979: LD_INT 22
18981: ARRAY
18982: PPUSH
18983: LD_INT 108
18985: PPUSH
18986: CALL_OW 120
// MD1_un = MD1_un ^ JEDNOTKY_BAZE_2_LIST [ 22 ] ;
18990: LD_ADDR_VAR 0 2
18994: PUSH
18995: LD_VAR 0 2
18999: PUSH
19000: LD_EXP 11
19004: PUSH
19005: LD_INT 22
19007: ARRAY
19008: ADD
19009: ST_TO_ADDR
// MD2_un = MD2_un ^ JEDNOTKY_BAZE_2_LIST [ 22 ] ;
19010: LD_ADDR_VAR 0 3
19014: PUSH
19015: LD_VAR 0 3
19019: PUSH
19020: LD_EXP 11
19024: PUSH
19025: LD_INT 22
19027: ARRAY
19028: ADD
19029: ST_TO_ADDR
// uklizejici_mista = uklizejici_mista ^ [ [ A2_nau2 , false , 0 ] ] ;
19030: LD_ADDR_LOC 36
19034: PUSH
19035: LD_LOC 36
19039: PUSH
19040: LD_INT 108
19042: PUSH
19043: LD_INT 0
19045: PUSH
19046: LD_INT 0
19048: PUSH
19049: EMPTY
19050: LIST
19051: LIST
19052: LIST
19053: PUSH
19054: EMPTY
19055: LIST
19056: ADD
19057: ST_TO_ADDR
// ComEnterUnit ( Opr_2 , A2_dep ) ;
19058: LD_LOC 32
19062: PPUSH
19063: LD_INT 46
19065: PPUSH
19066: CALL_OW 120
// AddMcUnits ( MD1 , MD1_un ) ;
19070: LD_EXP 6
19074: PPUSH
19075: LD_VAR 0 2
19079: PPUSH
19080: CALL_OW 390
// AddMcUnits ( MD2 , MD2_un ) ;
19084: LD_EXP 8
19088: PPUSH
19089: LD_VAR 0 3
19093: PPUSH
19094: CALL_OW 390
// end ;
19098: LD_VAR 0 1
19102: RET
// export function uklid_arabu3 ; begin
19103: LD_INT 0
19105: PPUSH
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 1 ] , A3_bu1 ) ;
19106: LD_EXP 12
19110: PUSH
19111: LD_INT 1
19113: ARRAY
19114: PPUSH
19115: LD_INT 30
19117: PPUSH
19118: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 2 ] , A3_bu2 ) ;
19122: LD_EXP 12
19126: PUSH
19127: LD_INT 2
19129: ARRAY
19130: PPUSH
19131: LD_INT 43
19133: PPUSH
19134: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 3 ] , A3_bu3 ) ;
19138: LD_EXP 12
19142: PUSH
19143: LD_INT 3
19145: ARRAY
19146: PPUSH
19147: LD_INT 31
19149: PPUSH
19150: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 7 ] , A3_bar ) ;
19154: LD_EXP 12
19158: PUSH
19159: LD_INT 7
19161: ARRAY
19162: PPUSH
19163: LD_INT 40
19165: PPUSH
19166: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 5 ] , A3_bar ) ;
19170: LD_EXP 12
19174: PUSH
19175: LD_INT 5
19177: ARRAY
19178: PPUSH
19179: LD_INT 40
19181: PPUSH
19182: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 6 ] , A3_bar ) ;
19186: LD_EXP 12
19190: PUSH
19191: LD_INT 6
19193: ARRAY
19194: PPUSH
19195: LD_INT 40
19197: PPUSH
19198: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 4 ] , A3_dep ) ;
19202: LD_EXP 12
19206: PUSH
19207: LD_INT 4
19209: ARRAY
19210: PPUSH
19211: LD_INT 28
19213: PPUSH
19214: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 8 ] , A3_tov ) ;
19218: LD_EXP 12
19222: PUSH
19223: LD_INT 8
19225: ARRAY
19226: PPUSH
19227: LD_INT 34
19229: PPUSH
19230: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 9 ] , A3_tov ) ;
19234: LD_EXP 12
19238: PUSH
19239: LD_INT 9
19241: ARRAY
19242: PPUSH
19243: LD_INT 34
19245: PPUSH
19246: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 10 ] , A3_tov ) ;
19250: LD_EXP 12
19254: PUSH
19255: LD_INT 10
19257: ARRAY
19258: PPUSH
19259: LD_INT 34
19261: PPUSH
19262: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 11 ] , A3_tov ) ;
19266: LD_EXP 12
19270: PUSH
19271: LD_INT 11
19273: ARRAY
19274: PPUSH
19275: LD_INT 34
19277: PPUSH
19278: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 12 ] , A3_lab ) ;
19282: LD_EXP 12
19286: PUSH
19287: LD_INT 12
19289: ARRAY
19290: PPUSH
19291: LD_INT 41
19293: PPUSH
19294: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 13 ] , A3_lab ) ;
19298: LD_EXP 12
19302: PUSH
19303: LD_INT 13
19305: ARRAY
19306: PPUSH
19307: LD_INT 41
19309: PPUSH
19310: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 16 ] , A3_dep ) ;
19314: LD_EXP 12
19318: PUSH
19319: LD_INT 16
19321: ARRAY
19322: PPUSH
19323: LD_INT 28
19325: PPUSH
19326: CALL_OW 120
// ComEnterUnit ( JEDNOTKY_BAZE_3_LIST [ 17 ] , A3_dep ) ;
19330: LD_EXP 12
19334: PUSH
19335: LD_INT 17
19337: ARRAY
19338: PPUSH
19339: LD_INT 28
19341: PPUSH
19342: CALL_OW 120
// end ;
19346: LD_VAR 0 1
19350: RET
// every 0 0$1 trigger FilterUnitsInArea ( Abase1 , [ [ f_side , You ] ] ) > 0 do
19351: LD_INT 3
19353: PPUSH
19354: LD_INT 22
19356: PUSH
19357: LD_EXP 1
19361: PUSH
19362: EMPTY
19363: LIST
19364: LIST
19365: PUSH
19366: EMPTY
19367: LIST
19368: PPUSH
19369: CALL_OW 70
19373: PUSH
19374: LD_INT 0
19376: GREATER
19377: IFFALSE 19523
19379: GO 19381
19381: DISABLE
// begin wait ( 0 0$2 ) ;
19382: LD_INT 70
19384: PPUSH
19385: CALL_OW 67
// ComExitBuilding ( A1_vo2 ) ;
19389: LD_INT 73
19391: PPUSH
19392: CALL_OW 122
// ComExitBuilding ( [ A1_ve1 , A1_ve2 ] ) ;
19396: LD_INT 87
19398: PUSH
19399: LD_INT 74
19401: PUSH
19402: EMPTY
19403: LIST
19404: LIST
19405: PPUSH
19406: CALL_OW 122
// AddComAgressiveMove ( A1_ve1 , 121 , 147 ) ;
19410: LD_INT 87
19412: PPUSH
19413: LD_INT 121
19415: PPUSH
19416: LD_INT 147
19418: PPUSH
19419: CALL_OW 174
// AddComAgressiveMove ( A1_ve1 , 113 , 141 ) ;
19423: LD_INT 87
19425: PPUSH
19426: LD_INT 113
19428: PPUSH
19429: LD_INT 141
19431: PPUSH
19432: CALL_OW 174
// AddComEnterUnit ( A1_ve1 , A1_bu1 ) ;
19436: LD_INT 87
19438: PPUSH
19439: LD_INT 9
19441: PPUSH
19442: CALL_OW 180
// ComExitBuilding ( A1_en1 ) ;
19446: LD_INT 79
19448: PPUSH
19449: CALL_OW 122
// ComExitBuilding ( [ A1_me1 , A1_me2 ] ) ;
19453: LD_INT 81
19455: PUSH
19456: LD_INT 80
19458: PUSH
19459: EMPTY
19460: LIST
19461: LIST
19462: PPUSH
19463: CALL_OW 122
// AddComAgressiveMove ( A1_me1 , 113 , 128 ) ;
19467: LD_INT 81
19469: PPUSH
19470: LD_INT 113
19472: PPUSH
19473: LD_INT 128
19475: PPUSH
19476: CALL_OW 174
// if difficulty = 3 then
19480: LD_OWVAR 67
19484: PUSH
19485: LD_INT 3
19487: EQUAL
19488: IFFALSE 19500
// AddComEnterUnit ( A1_me1 , A1_au2 ) ;
19490: LD_INT 81
19492: PPUSH
19493: LD_INT 109
19495: PPUSH
19496: CALL_OW 180
// AddComAgressiveMove ( A1_me2 , 117 , 125 ) ;
19500: LD_INT 80
19502: PPUSH
19503: LD_INT 117
19505: PPUSH
19506: LD_INT 125
19508: PPUSH
19509: CALL_OW 174
// AddComEnterUnit ( A1_me2 , A1_au1 ) ;
19513: LD_INT 80
19515: PPUSH
19516: LD_INT 105
19518: PPUSH
19519: CALL_OW 180
// end ;
19523: END
// every 1 1$0 trigger utok1_over do var pom , i ; var souradnice ;
19524: LD_LOC 28
19528: IFFALSE 19761
19530: GO 19532
19532: DISABLE
19533: LD_INT 0
19535: PPUSH
19536: PPUSH
19537: PPUSH
// begin wait ( utok_2_doba [ difficulty ] ) ;
19538: LD_EXP 54
19542: PUSH
19543: LD_OWVAR 67
19547: ARRAY
19548: PPUSH
19549: CALL_OW 67
// for i in Ar_utok3_LIST do
19553: LD_ADDR_VAR 0 2
19557: PUSH
19558: LD_EXP 15
19562: PUSH
19563: FOR_IN
19564: IFFALSE 19583
// PlaceUnitArea ( i , Ar_utoky , false ) ;
19566: LD_VAR 0 2
19570: PPUSH
19571: LD_INT 25
19573: PPUSH
19574: LD_INT 0
19576: PPUSH
19577: CALL_OW 49
19581: GO 19563
19583: POP
19584: POP
// pom = FilterAllUnits ( [ [ f_side , You ] ] ) ;
19585: LD_ADDR_VAR 0 1
19589: PUSH
19590: LD_INT 22
19592: PUSH
19593: LD_EXP 1
19597: PUSH
19598: EMPTY
19599: LIST
19600: LIST
19601: PUSH
19602: EMPTY
19603: LIST
19604: PPUSH
19605: CALL_OW 69
19609: ST_TO_ADDR
// if pom > 0 then
19610: LD_VAR 0 1
19614: PUSH
19615: LD_INT 0
19617: GREATER
19618: IFFALSE 19659
// souradnice = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
19620: LD_ADDR_VAR 0 3
19624: PUSH
19625: LD_VAR 0 1
19629: PUSH
19630: LD_INT 1
19632: ARRAY
19633: PPUSH
19634: CALL_OW 250
19638: PUSH
19639: LD_VAR 0 1
19643: PUSH
19644: LD_INT 1
19646: ARRAY
19647: PPUSH
19648: CALL_OW 251
19652: PUSH
19653: EMPTY
19654: LIST
19655: LIST
19656: ST_TO_ADDR
19657: GO 19674
// souradnice = [ 102 , 125 ] ;
19659: LD_ADDR_VAR 0 3
19663: PUSH
19664: LD_INT 102
19666: PUSH
19667: LD_INT 125
19669: PUSH
19670: EMPTY
19671: LIST
19672: LIST
19673: ST_TO_ADDR
// wait ( 0 0$1 ) ;
19674: LD_INT 35
19676: PPUSH
19677: CALL_OW 67
// mcm1 = McMove ( 1 , Ar_utok3_LIST , [ [ 128 , 91 ] , [ 128 , 108 ] , [ 126 , 121 ] , [ 120 , 131 ] , souradnice ] , [ mc_move_wait , mc_move_agressive ] ) ;
19681: LD_ADDR_LOC 37
19685: PUSH
19686: LD_INT 1
19688: PPUSH
19689: LD_EXP 15
19693: PPUSH
19694: LD_INT 128
19696: PUSH
19697: LD_INT 91
19699: PUSH
19700: EMPTY
19701: LIST
19702: LIST
19703: PUSH
19704: LD_INT 128
19706: PUSH
19707: LD_INT 108
19709: PUSH
19710: EMPTY
19711: LIST
19712: LIST
19713: PUSH
19714: LD_INT 126
19716: PUSH
19717: LD_INT 121
19719: PUSH
19720: EMPTY
19721: LIST
19722: LIST
19723: PUSH
19724: LD_INT 120
19726: PUSH
19727: LD_INT 131
19729: PUSH
19730: EMPTY
19731: LIST
19732: LIST
19733: PUSH
19734: LD_VAR 0 3
19738: PUSH
19739: EMPTY
19740: LIST
19741: LIST
19742: LIST
19743: LIST
19744: LIST
19745: PPUSH
19746: LD_INT 1
19748: PUSH
19749: LD_INT 6
19751: PUSH
19752: EMPTY
19753: LIST
19754: LIST
19755: PPUSH
19756: CALL_OW 398
19760: ST_TO_ADDR
// end ;
19761: PPOPN 3
19763: END
// every 0 0$5 trigger ( not IsOK ( A2_bu1 ) ) and ( not IsOK ( A2_bu2 ) ) do var pom , i ; var souradnice ;
19764: LD_INT 112
19766: PPUSH
19767: CALL_OW 302
19771: NOT
19772: PUSH
19773: LD_INT 63
19775: PPUSH
19776: CALL_OW 302
19780: NOT
19781: AND
19782: IFFALSE 20016
19784: GO 19786
19786: DISABLE
19787: LD_INT 0
19789: PPUSH
19790: PPUSH
19791: PPUSH
// begin for i in Ar_utok2_LIST do
19792: LD_ADDR_VAR 0 2
19796: PUSH
19797: LD_EXP 14
19801: PUSH
19802: FOR_IN
19803: IFFALSE 19822
// PlaceUnitArea ( i , Ar_utoky , false ) ;
19805: LD_VAR 0 2
19809: PPUSH
19810: LD_INT 25
19812: PPUSH
19813: LD_INT 0
19815: PPUSH
19816: CALL_OW 49
19820: GO 19802
19822: POP
19823: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
19824: LD_ADDR_VAR 0 1
19828: PUSH
19829: LD_INT 22
19831: PUSH
19832: LD_EXP 1
19836: PUSH
19837: EMPTY
19838: LIST
19839: LIST
19840: PUSH
19841: LD_INT 21
19843: PUSH
19844: LD_INT 1
19846: PUSH
19847: EMPTY
19848: LIST
19849: LIST
19850: PUSH
19851: EMPTY
19852: LIST
19853: LIST
19854: PPUSH
19855: CALL_OW 69
19859: ST_TO_ADDR
// if pom > 0 then
19860: LD_VAR 0 1
19864: PUSH
19865: LD_INT 0
19867: GREATER
19868: IFFALSE 19909
// souradnice = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
19870: LD_ADDR_VAR 0 3
19874: PUSH
19875: LD_VAR 0 1
19879: PUSH
19880: LD_INT 1
19882: ARRAY
19883: PPUSH
19884: CALL_OW 250
19888: PUSH
19889: LD_VAR 0 1
19893: PUSH
19894: LD_INT 1
19896: ARRAY
19897: PPUSH
19898: CALL_OW 251
19902: PUSH
19903: EMPTY
19904: LIST
19905: LIST
19906: ST_TO_ADDR
19907: GO 19924
// souradnice = [ 39 , 16 ] ;
19909: LD_ADDR_VAR 0 3
19913: PUSH
19914: LD_INT 39
19916: PUSH
19917: LD_INT 16
19919: PUSH
19920: EMPTY
19921: LIST
19922: LIST
19923: ST_TO_ADDR
// mcm2 = McMove ( 1 , Ar_utok2_LIST , [ [ 128 , 91 ] , [ 128 , 108 ] , [ 126 , 121 ] , [ 120 , 131 ] , souradnice ] , [ mc_move_wait , mc_move_agressive , mc_move_dontcapture ] ) ;
19924: LD_ADDR_LOC 38
19928: PUSH
19929: LD_INT 1
19931: PPUSH
19932: LD_EXP 14
19936: PPUSH
19937: LD_INT 128
19939: PUSH
19940: LD_INT 91
19942: PUSH
19943: EMPTY
19944: LIST
19945: LIST
19946: PUSH
19947: LD_INT 128
19949: PUSH
19950: LD_INT 108
19952: PUSH
19953: EMPTY
19954: LIST
19955: LIST
19956: PUSH
19957: LD_INT 126
19959: PUSH
19960: LD_INT 121
19962: PUSH
19963: EMPTY
19964: LIST
19965: LIST
19966: PUSH
19967: LD_INT 120
19969: PUSH
19970: LD_INT 131
19972: PUSH
19973: EMPTY
19974: LIST
19975: LIST
19976: PUSH
19977: LD_VAR 0 3
19981: PUSH
19982: EMPTY
19983: LIST
19984: LIST
19985: LIST
19986: LIST
19987: LIST
19988: PPUSH
19989: LD_INT 1
19991: PUSH
19992: LD_INT 6
19994: PUSH
19995: LD_INT 5
19997: PUSH
19998: EMPTY
19999: LIST
20000: LIST
20001: LIST
20002: PPUSH
20003: CALL_OW 398
20007: ST_TO_ADDR
// utok3_over = true ;
20008: LD_ADDR_LOC 29
20012: PUSH
20013: LD_INT 1
20015: ST_TO_ADDR
// end ;
20016: PPOPN 3
20018: END
// every 1 1$30 trigger A2_dobyta do var pom , i , pom1 ;
20019: LD_EXP 29
20023: IFFALSE 20288
20025: GO 20027
20027: DISABLE
20028: LD_INT 0
20030: PPUSH
20031: PPUSH
20032: PPUSH
// begin wait ( 2 2$0 ) ;
20033: LD_INT 4200
20035: PPUSH
20036: CALL_OW 67
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_weapon , us_cargo_bay ] , [ f_weapon , ar_cargo_bay ] ] ] ) ;
20040: LD_ADDR_VAR 0 1
20044: PUSH
20045: LD_INT 22
20047: PUSH
20048: LD_EXP 1
20052: PUSH
20053: EMPTY
20054: LIST
20055: LIST
20056: PUSH
20057: LD_INT 2
20059: PUSH
20060: LD_INT 34
20062: PUSH
20063: LD_INT 12
20065: PUSH
20066: EMPTY
20067: LIST
20068: LIST
20069: PUSH
20070: LD_INT 34
20072: PUSH
20073: LD_INT 32
20075: PUSH
20076: EMPTY
20077: LIST
20078: LIST
20079: PUSH
20080: EMPTY
20081: LIST
20082: LIST
20083: LIST
20084: PUSH
20085: EMPTY
20086: LIST
20087: LIST
20088: PPUSH
20089: CALL_OW 69
20093: ST_TO_ADDR
// for i in Ar_utok4_LIST do
20094: LD_ADDR_VAR 0 2
20098: PUSH
20099: LD_EXP 16
20103: PUSH
20104: FOR_IN
20105: IFFALSE 20124
// PlaceUnitArea ( i , Ar_utoky , false ) ;
20107: LD_VAR 0 2
20111: PPUSH
20112: LD_INT 25
20114: PPUSH
20115: LD_INT 0
20117: PPUSH
20118: CALL_OW 49
20122: GO 20104
20124: POP
20125: POP
// if pom > 0 then
20126: LD_VAR 0 1
20130: PUSH
20131: LD_INT 0
20133: GREATER
20134: IFFALSE 20208
// begin ComAgressiveMove ( Ar_utok4_LIST , GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ) ;
20136: LD_EXP 16
20140: PPUSH
20141: LD_VAR 0 1
20145: PUSH
20146: LD_INT 1
20148: ARRAY
20149: PPUSH
20150: CALL_OW 250
20154: PPUSH
20155: LD_VAR 0 1
20159: PUSH
20160: LD_INT 1
20162: ARRAY
20163: PPUSH
20164: CALL_OW 251
20168: PPUSH
20169: CALL_OW 114
// AddComAttackUnit ( Ar_utok4_LIST , pom [ 1 ] ) ;
20173: LD_EXP 16
20177: PPUSH
20178: LD_VAR 0 1
20182: PUSH
20183: LD_INT 1
20185: ARRAY
20186: PPUSH
20187: CALL_OW 175
// AddComAgressiveMove ( Ar_utok4_LIST , 59 , 7 ) ;
20191: LD_EXP 16
20195: PPUSH
20196: LD_INT 59
20198: PPUSH
20199: LD_INT 7
20201: PPUSH
20202: CALL_OW 174
// end else
20206: GO 20280
// McMove ( 1 , Ar_utok2_LIST , [ [ 128 , 91 ] , [ 128 , 108 ] , [ 126 , 121 ] , [ 120 , 123 ] ] , [ mc_move_wait , mc_move_agressive , mc_move_dontcapture ] ) ;
20208: LD_INT 1
20210: PPUSH
20211: LD_EXP 14
20215: PPUSH
20216: LD_INT 128
20218: PUSH
20219: LD_INT 91
20221: PUSH
20222: EMPTY
20223: LIST
20224: LIST
20225: PUSH
20226: LD_INT 128
20228: PUSH
20229: LD_INT 108
20231: PUSH
20232: EMPTY
20233: LIST
20234: LIST
20235: PUSH
20236: LD_INT 126
20238: PUSH
20239: LD_INT 121
20241: PUSH
20242: EMPTY
20243: LIST
20244: LIST
20245: PUSH
20246: LD_INT 120
20248: PUSH
20249: LD_INT 123
20251: PUSH
20252: EMPTY
20253: LIST
20254: LIST
20255: PUSH
20256: EMPTY
20257: LIST
20258: LIST
20259: LIST
20260: LIST
20261: PPUSH
20262: LD_INT 1
20264: PUSH
20265: LD_INT 6
20267: PUSH
20268: LD_INT 5
20270: PUSH
20271: EMPTY
20272: LIST
20273: LIST
20274: LIST
20275: PPUSH
20276: CALL_OW 398
// utok4_over = true ;
20280: LD_ADDR_LOC 30
20284: PUSH
20285: LD_INT 1
20287: ST_TO_ADDR
// end ;
20288: PPOPN 3
20290: END
// every 0 0$1 trigger FilterUnitsInArea ( zoufalost1 , [ [ f_side , Arabi ] ] ) = 0 do var i ;
20291: LD_INT 35
20293: PPUSH
20294: LD_INT 22
20296: PUSH
20297: LD_EXP 3
20301: PUSH
20302: EMPTY
20303: LIST
20304: LIST
20305: PUSH
20306: EMPTY
20307: LIST
20308: PPUSH
20309: CALL_OW 70
20313: PUSH
20314: LD_INT 0
20316: EQUAL
20317: IFFALSE 20410
20319: GO 20321
20321: DISABLE
20322: LD_INT 0
20324: PPUSH
// begin for i in Ar_backa_LIST do
20325: LD_ADDR_VAR 0 1
20329: PUSH
20330: LD_EXP 18
20334: PUSH
20335: FOR_IN
20336: IFFALSE 20355
// PlaceUnitArea ( i , backa1 , false ) ;
20338: LD_VAR 0 1
20342: PPUSH
20343: LD_INT 36
20345: PPUSH
20346: LD_INT 0
20348: PPUSH
20349: CALL_OW 49
20353: GO 20335
20355: POP
20356: POP
// McMove ( 1 , Ar_backa_LIST , [ [ 59 , 7 ] , [ 76 , 11 ] , [ 95 , 19 ] ] , [ mc_move_agressive ] ) ;
20357: LD_INT 1
20359: PPUSH
20360: LD_EXP 18
20364: PPUSH
20365: LD_INT 59
20367: PUSH
20368: LD_INT 7
20370: PUSH
20371: EMPTY
20372: LIST
20373: LIST
20374: PUSH
20375: LD_INT 76
20377: PUSH
20378: LD_INT 11
20380: PUSH
20381: EMPTY
20382: LIST
20383: LIST
20384: PUSH
20385: LD_INT 95
20387: PUSH
20388: LD_INT 19
20390: PUSH
20391: EMPTY
20392: LIST
20393: LIST
20394: PUSH
20395: EMPTY
20396: LIST
20397: LIST
20398: LIST
20399: PPUSH
20400: LD_INT 6
20402: PUSH
20403: EMPTY
20404: LIST
20405: PPUSH
20406: CALL_OW 398
// end ;
20410: PPOPN 1
20412: END
// every 1 1$0 trigger utok4_over do var pom , i , pom1 ;
20413: LD_LOC 30
20417: IFFALSE 20640
20419: GO 20421
20421: DISABLE
20422: LD_INT 0
20424: PPUSH
20425: PPUSH
20426: PPUSH
// begin wait ( last_attack_wait [ difficulty ] ) ;
20427: LD_EXP 55
20431: PUSH
20432: LD_OWVAR 67
20436: ARRAY
20437: PPUSH
20438: CALL_OW 67
// wait ( 2 2$0 ) ;
20442: LD_INT 4200
20444: PPUSH
20445: CALL_OW 67
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_weapon , us_cargo_bay ] , [ f_weapon , ar_cargo_bay ] ] ] ) ;
20449: LD_ADDR_VAR 0 1
20453: PUSH
20454: LD_INT 22
20456: PUSH
20457: LD_EXP 1
20461: PUSH
20462: EMPTY
20463: LIST
20464: LIST
20465: PUSH
20466: LD_INT 2
20468: PUSH
20469: LD_INT 34
20471: PUSH
20472: LD_INT 12
20474: PUSH
20475: EMPTY
20476: LIST
20477: LIST
20478: PUSH
20479: LD_INT 34
20481: PUSH
20482: LD_INT 32
20484: PUSH
20485: EMPTY
20486: LIST
20487: LIST
20488: PUSH
20489: EMPTY
20490: LIST
20491: LIST
20492: LIST
20493: PUSH
20494: EMPTY
20495: LIST
20496: LIST
20497: PPUSH
20498: CALL_OW 69
20502: ST_TO_ADDR
// for i in Ar_utoklast_LIST do
20503: LD_ADDR_VAR 0 2
20507: PUSH
20508: LD_EXP 17
20512: PUSH
20513: FOR_IN
20514: IFFALSE 20533
// PlaceUnitArea ( i , Ar_utoky , false ) ;
20516: LD_VAR 0 2
20520: PPUSH
20521: LD_INT 25
20523: PPUSH
20524: LD_INT 0
20526: PPUSH
20527: CALL_OW 49
20531: GO 20513
20533: POP
20534: POP
// for i in pom do
20535: LD_ADDR_VAR 0 2
20539: PUSH
20540: LD_VAR 0 1
20544: PUSH
20545: FOR_IN
20546: IFFALSE 20593
// begin AddComAgressiveMove ( Ar_utoklast_LIST , GetX ( i ) , GetY ( i ) ) ;
20548: LD_EXP 17
20552: PPUSH
20553: LD_VAR 0 2
20557: PPUSH
20558: CALL_OW 250
20562: PPUSH
20563: LD_VAR 0 2
20567: PPUSH
20568: CALL_OW 251
20572: PPUSH
20573: CALL_OW 174
// AddComAttackUnit ( Ar_utoklast_LIST , i ) ;
20577: LD_EXP 17
20581: PPUSH
20582: LD_VAR 0 2
20586: PPUSH
20587: CALL_OW 175
// end ;
20591: GO 20545
20593: POP
20594: POP
// AddComAgressiveMove ( Ar_utoklast_LIST , 18 , 17 ) ;
20595: LD_EXP 17
20599: PPUSH
20600: LD_INT 18
20602: PPUSH
20603: LD_INT 17
20605: PPUSH
20606: CALL_OW 174
// AddComAgressiveMove ( Ar_utoklast_LIST , 72 , 10 ) ;
20610: LD_EXP 17
20614: PPUSH
20615: LD_INT 72
20617: PPUSH
20618: LD_INT 10
20620: PPUSH
20621: CALL_OW 174
// AddComAgressiveMove ( Ar_utoklast_LIST , 116 , 126 ) ;
20625: LD_EXP 17
20629: PPUSH
20630: LD_INT 116
20632: PPUSH
20633: LD_INT 126
20635: PPUSH
20636: CALL_OW 174
// end ;
20640: PPOPN 3
20642: END
// every 1 1$0 trigger A1_dobyta do var pom ;
20643: LD_EXP 28
20647: IFFALSE 21074
20649: GO 20651
20651: DISABLE
20652: LD_INT 0
20654: PPUSH
// begin pom = FilterUnitsInArea ( Abase1 , [ [ f_side , You ] ] ) ;
20655: LD_ADDR_VAR 0 1
20659: PUSH
20660: LD_INT 3
20662: PPUSH
20663: LD_INT 22
20665: PUSH
20666: LD_EXP 1
20670: PUSH
20671: EMPTY
20672: LIST
20673: LIST
20674: PUSH
20675: EMPTY
20676: LIST
20677: PPUSH
20678: CALL_OW 70
20682: ST_TO_ADDR
// wait ( protiutok1 [ difficulty ] ) ;
20683: LD_EXP 48
20687: PUSH
20688: LD_OWVAR 67
20692: ARRAY
20693: PPUSH
20694: CALL_OW 67
// ComMoveXY ( [ A2_kam1 , A2_kam2 , A2_kam3 ] , 66 , 110 ) ;
20698: LD_INT 86
20700: PUSH
20701: LD_INT 85
20703: PUSH
20704: LD_INT 84
20706: PUSH
20707: EMPTY
20708: LIST
20709: LIST
20710: LIST
20711: PPUSH
20712: LD_INT 66
20714: PPUSH
20715: LD_INT 110
20717: PPUSH
20718: CALL_OW 111
// AddComAttackUnit ( A2_kam1 , NearestUnitToXY ( pom , 102 , 112 ) ) ;
20722: LD_INT 86
20724: PPUSH
20725: LD_VAR 0 1
20729: PPUSH
20730: LD_INT 102
20732: PPUSH
20733: LD_INT 112
20735: PPUSH
20736: CALL_OW 73
20740: PPUSH
20741: CALL_OW 175
// AddComAttackUnit ( A2_kam1 , pom [ Rand ( 1 , pom + 0 ) ] ) ;
20745: LD_INT 86
20747: PPUSH
20748: LD_VAR 0 1
20752: PUSH
20753: LD_INT 1
20755: PPUSH
20756: LD_VAR 0 1
20760: PUSH
20761: LD_INT 0
20763: PLUS
20764: PPUSH
20765: CALL_OW 12
20769: ARRAY
20770: PPUSH
20771: CALL_OW 175
// AddComAttackUnit ( A2_kam2 , NearestUnitToXY ( pom , 90 , 121 ) ) ;
20775: LD_INT 85
20777: PPUSH
20778: LD_VAR 0 1
20782: PPUSH
20783: LD_INT 90
20785: PPUSH
20786: LD_INT 121
20788: PPUSH
20789: CALL_OW 73
20793: PPUSH
20794: CALL_OW 175
// AddComAttackUnit ( A2_kam2 , pom [ Rand ( 1 , pom + 0 ) ] ) ;
20798: LD_INT 85
20800: PPUSH
20801: LD_VAR 0 1
20805: PUSH
20806: LD_INT 1
20808: PPUSH
20809: LD_VAR 0 1
20813: PUSH
20814: LD_INT 0
20816: PLUS
20817: PPUSH
20818: CALL_OW 12
20822: ARRAY
20823: PPUSH
20824: CALL_OW 175
// AddComAttackUnit ( A2_kam3 , A1_dep ) ;
20828: LD_INT 84
20830: PPUSH
20831: LD_INT 4
20833: PPUSH
20834: CALL_OW 175
// AddComAttackUnit ( A2_kam3 , pom [ Rand ( 1 , pom + 0 ) ] ) ;
20838: LD_INT 84
20840: PPUSH
20841: LD_VAR 0 1
20845: PUSH
20846: LD_INT 1
20848: PPUSH
20849: LD_VAR 0 1
20853: PUSH
20854: LD_INT 0
20856: PLUS
20857: PPUSH
20858: CALL_OW 12
20862: ARRAY
20863: PPUSH
20864: CALL_OW 175
// McMove ( 1 , [ A2_op1 , A2_op2 , A2_op3 ] , [ [ 44 , 25 ] , [ 50 , 54 ] , [ 92 , 101 ] , [ 112 , 124 ] ] , [ mc_move_agressive , mc_move_dontcapture ] ) ;
20868: LD_INT 1
20870: PPUSH
20871: LD_INT 89
20873: PUSH
20874: LD_INT 90
20876: PUSH
20877: LD_INT 91
20879: PUSH
20880: EMPTY
20881: LIST
20882: LIST
20883: LIST
20884: PPUSH
20885: LD_INT 44
20887: PUSH
20888: LD_INT 25
20890: PUSH
20891: EMPTY
20892: LIST
20893: LIST
20894: PUSH
20895: LD_INT 50
20897: PUSH
20898: LD_INT 54
20900: PUSH
20901: EMPTY
20902: LIST
20903: LIST
20904: PUSH
20905: LD_INT 92
20907: PUSH
20908: LD_INT 101
20910: PUSH
20911: EMPTY
20912: LIST
20913: LIST
20914: PUSH
20915: LD_INT 112
20917: PUSH
20918: LD_INT 124
20920: PUSH
20921: EMPTY
20922: LIST
20923: LIST
20924: PUSH
20925: EMPTY
20926: LIST
20927: LIST
20928: LIST
20929: LIST
20930: PPUSH
20931: LD_INT 6
20933: PUSH
20934: LD_INT 5
20936: PUSH
20937: EMPTY
20938: LIST
20939: LIST
20940: PPUSH
20941: CALL_OW 398
// ComMoveXY ( A2_mor3 , 91 , 128 ) ;
20945: LD_INT 92
20947: PPUSH
20948: LD_INT 91
20950: PPUSH
20951: LD_INT 128
20953: PPUSH
20954: CALL_OW 111
// for i in CREATE_AR_PROTIOFENZIVU_LIST do
20958: LD_ADDR_LOC 33
20962: PUSH
20963: LD_EXP 10
20967: PUSH
20968: FOR_IN
20969: IFFALSE 20988
// PlaceUnitArea ( i , protiEN , false ) ;
20971: LD_LOC 33
20975: PPUSH
20976: LD_INT 21
20978: PPUSH
20979: LD_INT 0
20981: PPUSH
20982: CALL_OW 49
20986: GO 20968
20988: POP
20989: POP
// McMove ( 1 , CREATE_AR_PROTIOFENZIVU_LIST , [ [ 49 , 31 ] , [ 55 , 76 ] , [ 100 , 109 ] , [ 122 , 132 ] ] , [ mc_move_agressive , mc_move_dontcapture ] ) ;
20990: LD_INT 1
20992: PPUSH
20993: LD_EXP 10
20997: PPUSH
20998: LD_INT 49
21000: PUSH
21001: LD_INT 31
21003: PUSH
21004: EMPTY
21005: LIST
21006: LIST
21007: PUSH
21008: LD_INT 55
21010: PUSH
21011: LD_INT 76
21013: PUSH
21014: EMPTY
21015: LIST
21016: LIST
21017: PUSH
21018: LD_INT 100
21020: PUSH
21021: LD_INT 109
21023: PUSH
21024: EMPTY
21025: LIST
21026: LIST
21027: PUSH
21028: LD_INT 122
21030: PUSH
21031: LD_INT 132
21033: PUSH
21034: EMPTY
21035: LIST
21036: LIST
21037: PUSH
21038: EMPTY
21039: LIST
21040: LIST
21041: LIST
21042: LIST
21043: PPUSH
21044: LD_INT 6
21046: PUSH
21047: LD_INT 5
21049: PUSH
21050: EMPTY
21051: LIST
21052: LIST
21053: PPUSH
21054: CALL_OW 398
// utok1 := true ;
21058: LD_ADDR_LOC 27
21062: PUSH
21063: LD_INT 1
21065: ST_TO_ADDR
// utok1_over = true ;
21066: LD_ADDR_LOC 28
21070: PUSH
21071: LD_INT 1
21073: ST_TO_ADDR
// end ;
21074: PPOPN 1
21076: END
// every 0 0$17 trigger oposoldier = - 1 do
21077: LD_EXP 46
21081: PUSH
21082: LD_INT 1
21084: NEG
21085: EQUAL
21086: IFFALSE 21163
21088: GO 21090
21090: DISABLE
// begin if not See ( You , A3_solop ) then
21091: LD_EXP 1
21095: PPUSH
21096: LD_INT 102
21098: PPUSH
21099: CALL_OW 292
21103: NOT
21104: IFFALSE 21163
// begin SetClass ( A3_solop , class_mechanic ) ;
21106: LD_INT 102
21108: PPUSH
21109: LD_INT 3
21111: PPUSH
21112: CALL_OW 336
// RemoveUnit ( A3_solop ) ;
21116: LD_INT 102
21118: PPUSH
21119: CALL_OW 64
// pom := create_auto_pro_solopa ;
21123: LD_ADDR_LOC 34
21127: PUSH
21128: CALL 8581 0 0
21132: ST_TO_ADDR
// PlaceHumanInUnit ( A3_solop , pom ) ;
21133: LD_INT 102
21135: PPUSH
21136: LD_LOC 34
21140: PPUSH
21141: CALL_OW 52
// PlaceUnitXY ( pom , 111 , 16 , false ) ;
21145: LD_LOC 34
21149: PPUSH
21150: LD_INT 111
21152: PPUSH
21153: LD_INT 16
21155: PPUSH
21156: LD_INT 0
21158: PPUSH
21159: CALL_OW 48
// end ; end ;
21163: END
// every 1 1$0 trigger oposoldier = 1 marked 999 do
21164: LD_EXP 46
21168: PUSH
21169: LD_INT 1
21171: EQUAL
21172: IFFALSE 21206
21174: GO 21176
21176: DISABLE
// begin ComMoveXY ( A3_solop , 127 , 89 ) ;
21177: LD_INT 102
21179: PPUSH
21180: LD_INT 127
21182: PPUSH
21183: LD_INT 89
21185: PPUSH
21186: CALL_OW 111
// ComMoveXY ( OpoMike , 127 , 89 ) ;
21190: LD_INT 103
21192: PPUSH
21193: LD_INT 127
21195: PPUSH
21196: LD_INT 89
21198: PPUSH
21199: CALL_OW 111
// enable ( 997 ) ;
21203: LD_INT 997
21205: ENABLE_MARKED
// end ;
21206: END
// every 0 0$1 trigger IsInArea ( A3_solop , Baziny ) marked 997 do
21207: LD_INT 102
21209: PPUSH
21210: LD_INT 12
21212: PPUSH
21213: CALL_OW 308
21217: IFFALSE 21232
21219: GO 21221
21221: DISABLE
// begin wait ( 0 0$5 ) ;
21222: LD_INT 175
21224: PPUSH
21225: CALL_OW 67
// enable ( 998 ) ;
21229: LD_INT 998
21231: ENABLE_MARKED
// end ;
21232: END
// every 0 0$5 trigger oposoldier = 1 marked 998 do
21233: LD_EXP 46
21237: PUSH
21238: LD_INT 1
21240: EQUAL
21241: IFFALSE 21459
21243: GO 21245
21245: DISABLE
// begin pom = FilterUnitsInArea ( Baziny , [ [ f_type , unit_vehicle ] , [ f_control , control_manual ] , [ f_or , [ f_weapon , us_cargo_bay ] , [ f_weapon , ar_cargo_bay ] ] , [ f_not , [ f_occupied ] ] ] ) ;
21246: LD_ADDR_LOC 34
21250: PUSH
21251: LD_INT 12
21253: PPUSH
21254: LD_INT 21
21256: PUSH
21257: LD_INT 2
21259: PUSH
21260: EMPTY
21261: LIST
21262: LIST
21263: PUSH
21264: LD_INT 33
21266: PUSH
21267: LD_INT 1
21269: PUSH
21270: EMPTY
21271: LIST
21272: LIST
21273: PUSH
21274: LD_INT 2
21276: PUSH
21277: LD_INT 34
21279: PUSH
21280: LD_INT 12
21282: PUSH
21283: EMPTY
21284: LIST
21285: LIST
21286: PUSH
21287: LD_INT 34
21289: PUSH
21290: LD_INT 32
21292: PUSH
21293: EMPTY
21294: LIST
21295: LIST
21296: PUSH
21297: EMPTY
21298: LIST
21299: LIST
21300: LIST
21301: PUSH
21302: LD_INT 3
21304: PUSH
21305: LD_INT 59
21307: PUSH
21308: EMPTY
21309: LIST
21310: PUSH
21311: EMPTY
21312: LIST
21313: LIST
21314: PUSH
21315: EMPTY
21316: LIST
21317: LIST
21318: LIST
21319: LIST
21320: PPUSH
21321: CALL_OW 70
21325: ST_TO_ADDR
// if pom > 0 then
21326: LD_LOC 34
21330: PUSH
21331: LD_INT 0
21333: GREATER
21334: IFFALSE 21436
// begin ComEnterUnit ( A3_solop , pom [ 1 ] ) ;
21336: LD_INT 102
21338: PPUSH
21339: LD_LOC 34
21343: PUSH
21344: LD_INT 1
21346: ARRAY
21347: PPUSH
21348: CALL_OW 120
// AddComMoveXY ( A3_solop , 165 , 92 ) ;
21352: LD_INT 102
21354: PPUSH
21355: LD_INT 165
21357: PPUSH
21358: LD_INT 92
21360: PPUSH
21361: CALL_OW 171
// AddComMoveXY ( OpoMike , 165 , 92 ) ;
21365: LD_INT 103
21367: PPUSH
21368: LD_INT 165
21370: PPUSH
21371: LD_INT 92
21373: PPUSH
21374: CALL_OW 171
// oposoldier = 2 ;
21378: LD_ADDR_EXP 46
21382: PUSH
21383: LD_INT 2
21385: ST_TO_ADDR
// wait ( 0 0$15 ) ;
21386: LD_INT 525
21388: PPUSH
21389: CALL_OW 67
// if not IsInUnit ( A3_solop ) then
21393: LD_INT 102
21395: PPUSH
21396: CALL_OW 310
21400: NOT
21401: IFFALSE 21434
// begin ComMoveXY ( [ A3_solop , OpoMike ] , 116 , 23 ) ;
21403: LD_INT 102
21405: PUSH
21406: LD_INT 103
21408: PUSH
21409: EMPTY
21410: LIST
21411: LIST
21412: PPUSH
21413: LD_INT 116
21415: PPUSH
21416: LD_INT 23
21418: PPUSH
21419: CALL_OW 111
// enable ( 996 ) ;
21423: LD_INT 996
21425: ENABLE_MARKED
// oposoldier = 1 ;
21426: LD_ADDR_EXP 46
21430: PUSH
21431: LD_INT 1
21433: ST_TO_ADDR
// end ; end else
21434: GO 21459
// begin AddComMoveXY ( [ A3_solop , OpoMike ] , 116 , 23 ) ;
21436: LD_INT 102
21438: PUSH
21439: LD_INT 103
21441: PUSH
21442: EMPTY
21443: LIST
21444: LIST
21445: PPUSH
21446: LD_INT 116
21448: PPUSH
21449: LD_INT 23
21451: PPUSH
21452: CALL_OW 171
// enable ( 996 ) ;
21456: LD_INT 996
21458: ENABLE_MARKED
// end ; end ;
21459: END
// every 0 0$1 trigger IsInArea ( A3_solop , Baze_zpet ) marked 996 do
21460: LD_INT 102
21462: PPUSH
21463: LD_INT 34
21465: PPUSH
21466: CALL_OW 308
21470: IFFALSE 21478
21472: GO 21474
21474: DISABLE
// begin enable ( 999 ) ;
21475: LD_INT 999
21477: ENABLE_MARKED
// end ;
21478: END
// every 0 0$3 trigger oposoldier = 2 do
21479: LD_EXP 46
21483: PUSH
21484: LD_INT 2
21486: EQUAL
21487: IFFALSE 21618
21489: GO 21491
21491: DISABLE
// begin pom = FilterUnitsInArea ( SolopEx , [ [ f_side , Arabi2 ] ] ) ;
21492: LD_ADDR_LOC 34
21496: PUSH
21497: LD_INT 13
21499: PPUSH
21500: LD_INT 22
21502: PUSH
21503: LD_EXP 4
21507: PUSH
21508: EMPTY
21509: LIST
21510: LIST
21511: PUSH
21512: EMPTY
21513: LIST
21514: PPUSH
21515: CALL_OW 70
21519: ST_TO_ADDR
// if pom > 0 then
21520: LD_LOC 34
21524: PUSH
21525: LD_INT 0
21527: GREATER
21528: IFFALSE 21617
// for i in pom do
21530: LD_ADDR_LOC 33
21534: PUSH
21535: LD_LOC 34
21539: PUSH
21540: FOR_IN
21541: IFFALSE 21615
// begin if GetType ( i ) = unit_vehicle then
21543: LD_LOC 33
21547: PPUSH
21548: CALL_OW 247
21552: PUSH
21553: LD_INT 2
21555: EQUAL
21556: IFFALSE 21604
// if IsDrivenBy ( i ) = A3_solop then
21558: LD_LOC 33
21562: PPUSH
21563: CALL_OW 311
21567: PUSH
21568: LD_INT 102
21570: EQUAL
21571: IFFALSE 21604
// begin oposoldier = 3 ;
21573: LD_ADDR_EXP 46
21577: PUSH
21578: LD_INT 3
21580: ST_TO_ADDR
// dialog_kamery ;
21581: CALL 5611 0 0
// RemoveUnit ( IsInUnit ( A3_solop ) ) ;
21585: LD_INT 102
21587: PPUSH
21588: CALL_OW 310
21592: PPUSH
21593: CALL_OW 64
// RemoveUnit ( OpoMike ) ;
21597: LD_INT 103
21599: PPUSH
21600: CALL_OW 64
// end ; RemoveUnit ( i ) ;
21604: LD_LOC 33
21608: PPUSH
21609: CALL_OW 64
// end ;
21613: GO 21540
21615: POP
21616: POP
// enable ;
21617: ENABLE
// end ;
21618: END
// every 0 0$1 do
21619: GO 21621
21621: DISABLE
// begin pom = FilterUnitsInArea ( Calibre1 , [ [ f_side , You ] ] ) ;
21622: LD_ADDR_LOC 34
21626: PUSH
21627: LD_INT 14
21629: PPUSH
21630: LD_INT 22
21632: PUSH
21633: LD_EXP 1
21637: PUSH
21638: EMPTY
21639: LIST
21640: LIST
21641: PUSH
21642: EMPTY
21643: LIST
21644: PPUSH
21645: CALL_OW 70
21649: ST_TO_ADDR
// if pom > 0 then
21650: LD_LOC 34
21654: PUSH
21655: LD_INT 0
21657: GREATER
21658: IFFALSE 21850
// begin while FilterUnitsInArea ( Boom1 , [ [ f_side , You ] ] ) = 0 do
21660: LD_INT 15
21662: PPUSH
21663: LD_INT 22
21665: PUSH
21666: LD_EXP 1
21670: PUSH
21671: EMPTY
21672: LIST
21673: LIST
21674: PUSH
21675: EMPTY
21676: LIST
21677: PPUSH
21678: CALL_OW 70
21682: PUSH
21683: LD_INT 0
21685: EQUAL
21686: IFFALSE 21697
// wait ( 0 0$0.5 ) ;
21688: LD_INT 18
21690: PPUSH
21691: CALL_OW 67
21695: GO 21660
// ComFireExplosives ( [ A2_zas1 , A2_zas2 ] ) ;
21697: LD_INT 82
21699: PUSH
21700: LD_INT 83
21702: PUSH
21703: EMPTY
21704: LIST
21705: LIST
21706: PPUSH
21707: CALL_OW 134
// AddComMoveXY ( [ A2_zas1 , A2_zas2 ] , 33 , 55 ) ;
21711: LD_INT 82
21713: PUSH
21714: LD_INT 83
21716: PUSH
21717: EMPTY
21718: LIST
21719: LIST
21720: PPUSH
21721: LD_INT 33
21723: PPUSH
21724: LD_INT 55
21726: PPUSH
21727: CALL_OW 171
// AddComWalk ( [ A2_zas1 , A2_zas2 ] ) ;
21731: LD_INT 82
21733: PUSH
21734: LD_INT 83
21736: PUSH
21737: EMPTY
21738: LIST
21739: LIST
21740: PPUSH
21741: CALL_OW 198
// AddComPlaceRemoteCharge ( A2_zas1 , 39 , 15 , 0 ) ;
21745: LD_INT 82
21747: PPUSH
21748: LD_INT 39
21750: PPUSH
21751: LD_INT 15
21753: PPUSH
21754: LD_INT 0
21756: PPUSH
21757: CALL_OW 193
// AddComPlaceRemoteCharge ( A2_zas2 , 37 , 14 , 0 ) ;
21761: LD_INT 83
21763: PPUSH
21764: LD_INT 37
21766: PPUSH
21767: LD_INT 14
21769: PPUSH
21770: LD_INT 0
21772: PPUSH
21773: CALL_OW 193
// AddComMoveXY ( [ A2_zas1 , A2_zas2 ] , 25 , 13 ) ;
21777: LD_INT 82
21779: PUSH
21780: LD_INT 83
21782: PUSH
21783: EMPTY
21784: LIST
21785: LIST
21786: PPUSH
21787: LD_INT 25
21789: PPUSH
21790: LD_INT 13
21792: PPUSH
21793: CALL_OW 171
// while FilterUnitsInArea ( Boom1 , [ [ f_side , You ] ] ) = 0 do
21797: LD_INT 15
21799: PPUSH
21800: LD_INT 22
21802: PUSH
21803: LD_EXP 1
21807: PUSH
21808: EMPTY
21809: LIST
21810: LIST
21811: PUSH
21812: EMPTY
21813: LIST
21814: PPUSH
21815: CALL_OW 70
21819: PUSH
21820: LD_INT 0
21822: EQUAL
21823: IFFALSE 21834
// wait ( 0 0$0.5 ) ;
21825: LD_INT 18
21827: PPUSH
21828: CALL_OW 67
21832: GO 21797
// ComFireExplosives ( [ A2_zas1 , A2_zas2 ] ) ;
21834: LD_INT 82
21836: PUSH
21837: LD_INT 83
21839: PUSH
21840: EMPTY
21841: LIST
21842: LIST
21843: PPUSH
21844: CALL_OW 134
// end else
21848: GO 21851
// enable ;
21850: ENABLE
// end ;
21851: END
// every 0 0$1 do
21852: GO 21854
21854: DISABLE
// begin pom = FilterUnitsInArea ( Calibre2 , [ [ f_side , You ] ] ) ;
21855: LD_ADDR_LOC 34
21859: PUSH
21860: LD_INT 18
21862: PPUSH
21863: LD_INT 22
21865: PUSH
21866: LD_EXP 1
21870: PUSH
21871: EMPTY
21872: LIST
21873: LIST
21874: PUSH
21875: EMPTY
21876: LIST
21877: PPUSH
21878: CALL_OW 70
21882: ST_TO_ADDR
// if pom > 0 then
21883: LD_LOC 34
21887: PUSH
21888: LD_INT 0
21890: GREATER
21891: IFFALSE 22056
// begin while FilterUnitsInArea ( Boom3 , [ [ f_side , You ] ] ) = 0 do
21893: LD_INT 19
21895: PPUSH
21896: LD_INT 22
21898: PUSH
21899: LD_EXP 1
21903: PUSH
21904: EMPTY
21905: LIST
21906: LIST
21907: PUSH
21908: EMPTY
21909: LIST
21910: PPUSH
21911: CALL_OW 70
21915: PUSH
21916: LD_INT 0
21918: EQUAL
21919: IFFALSE 21930
// wait ( 0 0$0.5 ) ;
21921: LD_INT 18
21923: PPUSH
21924: CALL_OW 67
21928: GO 21893
// ComFireExplosives ( A3_zas1 ) ;
21930: LD_INT 101
21932: PPUSH
21933: CALL_OW 134
// bum2 := true ;
21937: LD_ADDR_EXP 47
21941: PUSH
21942: LD_INT 1
21944: ST_TO_ADDR
// AddComWalk ( A3_zas1 ) ;
21945: LD_INT 101
21947: PPUSH
21948: CALL_OW 198
// pom = FilterUnitsInArea ( Abase3 , [ [ f_side , You ] ] ) ;
21952: LD_ADDR_LOC 34
21956: PUSH
21957: LD_INT 17
21959: PPUSH
21960: LD_INT 22
21962: PUSH
21963: LD_EXP 1
21967: PUSH
21968: EMPTY
21969: LIST
21970: LIST
21971: PUSH
21972: EMPTY
21973: LIST
21974: PPUSH
21975: CALL_OW 70
21979: ST_TO_ADDR
// if pom > 0 then
21980: LD_LOC 34
21984: PUSH
21985: LD_INT 0
21987: GREATER
21988: IFFALSE 22024
// begin AddComPlaceDelayedCharge ( A3_zas1 , 0 , 0 , pom [ 1 ] ) ;
21990: LD_INT 101
21992: PPUSH
21993: LD_INT 0
21995: PPUSH
21996: LD_INT 0
21998: PPUSH
21999: LD_LOC 34
22003: PUSH
22004: LD_INT 1
22006: ARRAY
22007: PPUSH
22008: CALL_OW 192
// AddComEnterUnit ( A3_zas1 , A3_bar ) ;
22012: LD_INT 101
22014: PPUSH
22015: LD_INT 40
22017: PPUSH
22018: CALL_OW 180
// end else
22022: GO 22054
// begin AddComPlaceRemoteCharge ( A3_zas1 , 102 , 19 , 0 ) ;
22024: LD_INT 101
22026: PPUSH
22027: LD_INT 102
22029: PPUSH
22030: LD_INT 19
22032: PPUSH
22033: LD_INT 0
22035: PPUSH
22036: CALL_OW 193
// AddComMoveXY ( A3_zas1 , 99 , 3 ) ;
22040: LD_INT 101
22042: PPUSH
22043: LD_INT 99
22045: PPUSH
22046: LD_INT 3
22048: PPUSH
22049: CALL_OW 171
// enable ;
22053: ENABLE
// end ; end else
22054: GO 22057
// enable ;
22056: ENABLE
// end ;
22057: END
// every 0 0$2 do
22058: GO 22060
22060: DISABLE
// begin pom = [ ] ;
22061: LD_ADDR_LOC 34
22065: PUSH
22066: EMPTY
22067: ST_TO_ADDR
// pom1 = [ ] ;
22068: LD_ADDR_LOC 35
22072: PUSH
22073: EMPTY
22074: ST_TO_ADDR
// for i in Veze_2 do
22075: LD_ADDR_LOC 33
22079: PUSH
22080: LD_LOC 31
22084: PUSH
22085: FOR_IN
22086: IFFALSE 22121
// if GetLives ( i ) <> 1000 then
22088: LD_LOC 33
22092: PPUSH
22093: CALL_OW 256
22097: PUSH
22098: LD_INT 1000
22100: NONEQUAL
22101: IFFALSE 22119
// pom = pom ^ i ;
22103: LD_ADDR_LOC 34
22107: PUSH
22108: LD_LOC 34
22112: PUSH
22113: LD_LOC 33
22117: ADD
22118: ST_TO_ADDR
22119: GO 22085
22121: POP
22122: POP
// for i in Opr_2 do
22123: LD_ADDR_LOC 33
22127: PUSH
22128: LD_LOC 32
22132: PUSH
22133: FOR_IN
22134: IFFALSE 22165
// if IsOK ( i ) then
22136: LD_LOC 33
22140: PPUSH
22141: CALL_OW 302
22145: IFFALSE 22163
// pom1 = pom1 ^ i ;
22147: LD_ADDR_LOC 35
22151: PUSH
22152: LD_LOC 35
22156: PUSH
22157: LD_LOC 33
22161: ADD
22162: ST_TO_ADDR
22163: GO 22133
22165: POP
22166: POP
// if pom1 > 0 and pom > 0 then
22167: LD_LOC 35
22171: PUSH
22172: LD_INT 0
22174: GREATER
22175: PUSH
22176: LD_LOC 34
22180: PUSH
22181: LD_INT 0
22183: GREATER
22184: AND
22185: IFFALSE 22343
// begin if pom + 0 <= pom1 + 0 then
22187: LD_LOC 34
22191: PUSH
22192: LD_INT 0
22194: PLUS
22195: PUSH
22196: LD_LOC 35
22200: PUSH
22201: LD_INT 0
22203: PLUS
22204: LESSEQUAL
22205: IFFALSE 22276
// for i := 1 to pom + 0 do
22207: LD_ADDR_LOC 33
22211: PUSH
22212: DOUBLE
22213: LD_INT 1
22215: DEC
22216: ST_TO_ADDR
22217: LD_LOC 34
22221: PUSH
22222: LD_INT 0
22224: PLUS
22225: PUSH
22226: FOR_TO
22227: IFFALSE 22272
// begin AddComExitBuilding ( pom1 [ i ] ) ;
22229: LD_LOC 35
22233: PUSH
22234: LD_LOC 33
22238: ARRAY
22239: PPUSH
22240: CALL_OW 182
// AddComRepairBuilding ( pom1 [ i ] , pom [ i ] ) ;
22244: LD_LOC 35
22248: PUSH
22249: LD_LOC 33
22253: ARRAY
22254: PPUSH
22255: LD_LOC 34
22259: PUSH
22260: LD_LOC 33
22264: ARRAY
22265: PPUSH
22266: CALL_OW 190
// end else
22270: GO 22226
22272: POP
22273: POP
22274: GO 22343
// for i := 1 to pom1 + 0 do
22276: LD_ADDR_LOC 33
22280: PUSH
22281: DOUBLE
22282: LD_INT 1
22284: DEC
22285: ST_TO_ADDR
22286: LD_LOC 35
22290: PUSH
22291: LD_INT 0
22293: PLUS
22294: PUSH
22295: FOR_TO
22296: IFFALSE 22341
// begin AddComExitBuilding ( pom1 [ i ] ) ;
22298: LD_LOC 35
22302: PUSH
22303: LD_LOC 33
22307: ARRAY
22308: PPUSH
22309: CALL_OW 182
// AddComRepairBuilding ( pom1 [ i ] , pom [ i ] ) ;
22313: LD_LOC 35
22317: PUSH
22318: LD_LOC 33
22322: ARRAY
22323: PPUSH
22324: LD_LOC 34
22328: PUSH
22329: LD_LOC 33
22333: ARRAY
22334: PPUSH
22335: CALL_OW 190
// end ;
22339: GO 22295
22341: POP
22342: POP
// end ; enable ;
22343: ENABLE
// end ;
22344: END
// every 0 0$1 trigger FilterUnitsInArea ( Create2 , [ [ f_side , You ] ] ) > 0 do
22345: LD_INT 22
22347: PPUSH
22348: LD_INT 22
22350: PUSH
22351: LD_EXP 1
22355: PUSH
22356: EMPTY
22357: LIST
22358: LIST
22359: PUSH
22360: EMPTY
22361: LIST
22362: PPUSH
22363: CALL_OW 70
22367: PUSH
22368: LD_INT 0
22370: GREATER
22371: IFFALSE 22968
22373: GO 22375
22375: DISABLE
// begin PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 1 ] , 28 , 39 , false ) ;
22376: LD_EXP 11
22380: PUSH
22381: LD_INT 1
22383: ARRAY
22384: PPUSH
22385: LD_INT 28
22387: PPUSH
22388: LD_INT 39
22390: PPUSH
22391: LD_INT 0
22393: PPUSH
22394: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 2 ] , 23 , 38 , false ) ;
22398: LD_EXP 11
22402: PUSH
22403: LD_INT 2
22405: ARRAY
22406: PPUSH
22407: LD_INT 23
22409: PPUSH
22410: LD_INT 38
22412: PPUSH
22413: LD_INT 0
22415: PPUSH
22416: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 3 ] , 32 , 20 , false ) ;
22420: LD_EXP 11
22424: PUSH
22425: LD_INT 3
22427: ARRAY
22428: PPUSH
22429: LD_INT 32
22431: PPUSH
22432: LD_INT 20
22434: PPUSH
22435: LD_INT 0
22437: PPUSH
22438: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 4 ] , 32 , 17 , false ) ;
22442: LD_EXP 11
22446: PUSH
22447: LD_INT 4
22449: ARRAY
22450: PPUSH
22451: LD_INT 32
22453: PPUSH
22454: LD_INT 17
22456: PPUSH
22457: LD_INT 0
22459: PPUSH
22460: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 5 ] , 38 , 8 , false ) ;
22464: LD_EXP 11
22468: PUSH
22469: LD_INT 5
22471: ARRAY
22472: PPUSH
22473: LD_INT 38
22475: PPUSH
22476: LD_INT 8
22478: PPUSH
22479: LD_INT 0
22481: PPUSH
22482: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 6 ] , 40 , 7 , false ) ;
22486: LD_EXP 11
22490: PUSH
22491: LD_INT 6
22493: ARRAY
22494: PPUSH
22495: LD_INT 40
22497: PPUSH
22498: LD_INT 7
22500: PPUSH
22501: LD_INT 0
22503: PPUSH
22504: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 7 ] , 24 , 8 , false ) ;
22508: LD_EXP 11
22512: PUSH
22513: LD_INT 7
22515: ARRAY
22516: PPUSH
22517: LD_INT 24
22519: PPUSH
22520: LD_INT 8
22522: PPUSH
22523: LD_INT 0
22525: PPUSH
22526: CALL_OW 48
// if difficulty > 1 then
22530: LD_OWVAR 67
22534: PUSH
22535: LD_INT 1
22537: GREATER
22538: IFFALSE 22564
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 8 ] , 26 , 10 , false ) else
22540: LD_EXP 11
22544: PUSH
22545: LD_INT 8
22547: ARRAY
22548: PPUSH
22549: LD_INT 26
22551: PPUSH
22552: LD_INT 10
22554: PPUSH
22555: LD_INT 0
22557: PPUSH
22558: CALL_OW 48
22562: GO 22577
// DestroyUnit ( JEDNOTKY_BAZE_2_LIST [ 8 ] ) ;
22564: LD_EXP 11
22568: PUSH
22569: LD_INT 8
22571: ARRAY
22572: PPUSH
22573: CALL_OW 65
// if difficulty > 2 then
22577: LD_OWVAR 67
22581: PUSH
22582: LD_INT 2
22584: GREATER
22585: IFFALSE 22611
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 9 ] , 25 , 11 , false ) else
22587: LD_EXP 11
22591: PUSH
22592: LD_INT 9
22594: ARRAY
22595: PPUSH
22596: LD_INT 25
22598: PPUSH
22599: LD_INT 11
22601: PPUSH
22602: LD_INT 0
22604: PPUSH
22605: CALL_OW 48
22609: GO 22624
// DestroyUnit ( JEDNOTKY_BAZE_2_LIST [ 9 ] ) ;
22611: LD_EXP 11
22615: PUSH
22616: LD_INT 9
22618: ARRAY
22619: PPUSH
22620: CALL_OW 65
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 10 ] , 24 , 10 , false ) ;
22624: LD_EXP 11
22628: PUSH
22629: LD_INT 10
22631: ARRAY
22632: PPUSH
22633: LD_INT 24
22635: PPUSH
22636: LD_INT 10
22638: PPUSH
22639: LD_INT 0
22641: PPUSH
22642: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 11 ] , 31 , 9 , false ) ;
22646: LD_EXP 11
22650: PUSH
22651: LD_INT 11
22653: ARRAY
22654: PPUSH
22655: LD_INT 31
22657: PPUSH
22658: LD_INT 9
22660: PPUSH
22661: LD_INT 0
22663: PPUSH
22664: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 12 ] , 33 , 9 , false ) ;
22668: LD_EXP 11
22672: PUSH
22673: LD_INT 12
22675: ARRAY
22676: PPUSH
22677: LD_INT 33
22679: PPUSH
22680: LD_INT 9
22682: PPUSH
22683: LD_INT 0
22685: PPUSH
22686: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 13 ] , 38 , 40 , false ) ;
22690: LD_EXP 11
22694: PUSH
22695: LD_INT 13
22697: ARRAY
22698: PPUSH
22699: LD_INT 38
22701: PPUSH
22702: LD_INT 40
22704: PPUSH
22705: LD_INT 0
22707: PPUSH
22708: CALL_OW 48
// if difficulty > 1 then
22712: LD_OWVAR 67
22716: PUSH
22717: LD_INT 1
22719: GREATER
22720: IFFALSE 22746
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 14 ] , 36 , 39 , false ) else
22722: LD_EXP 11
22726: PUSH
22727: LD_INT 14
22729: ARRAY
22730: PPUSH
22731: LD_INT 36
22733: PPUSH
22734: LD_INT 39
22736: PPUSH
22737: LD_INT 0
22739: PPUSH
22740: CALL_OW 48
22744: GO 22759
// DestroyUnit ( JEDNOTKY_BAZE_2_LIST [ 14 ] ) ;
22746: LD_EXP 11
22750: PUSH
22751: LD_INT 14
22753: ARRAY
22754: PPUSH
22755: CALL_OW 65
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 15 ] , 21 , 12 , false ) ;
22759: LD_EXP 11
22763: PUSH
22764: LD_INT 15
22766: ARRAY
22767: PPUSH
22768: LD_INT 21
22770: PPUSH
22771: LD_INT 12
22773: PPUSH
22774: LD_INT 0
22776: PPUSH
22777: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 16 ] , 21 , 13 , false ) ;
22781: LD_EXP 11
22785: PUSH
22786: LD_INT 16
22788: ARRAY
22789: PPUSH
22790: LD_INT 21
22792: PPUSH
22793: LD_INT 13
22795: PPUSH
22796: LD_INT 0
22798: PPUSH
22799: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 17 ] , 23 , 19 , false ) ;
22803: LD_EXP 11
22807: PUSH
22808: LD_INT 17
22810: ARRAY
22811: PPUSH
22812: LD_INT 23
22814: PPUSH
22815: LD_INT 19
22817: PPUSH
22818: LD_INT 0
22820: PPUSH
22821: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 18 ] , 23 , 20 , false ) ;
22825: LD_EXP 11
22829: PUSH
22830: LD_INT 18
22832: ARRAY
22833: PPUSH
22834: LD_INT 23
22836: PPUSH
22837: LD_INT 20
22839: PPUSH
22840: LD_INT 0
22842: PPUSH
22843: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 19 ] , 21 , 19 , false ) ;
22847: LD_EXP 11
22851: PUSH
22852: LD_INT 19
22854: ARRAY
22855: PPUSH
22856: LD_INT 21
22858: PPUSH
22859: LD_INT 19
22861: PPUSH
22862: LD_INT 0
22864: PPUSH
22865: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 20 ] , 24 , 20 , false ) ;
22869: LD_EXP 11
22873: PUSH
22874: LD_INT 20
22876: ARRAY
22877: PPUSH
22878: LD_INT 24
22880: PPUSH
22881: LD_INT 20
22883: PPUSH
22884: LD_INT 0
22886: PPUSH
22887: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 22 ] , 21 , 34 , false ) ;
22891: LD_EXP 11
22895: PUSH
22896: LD_INT 22
22898: ARRAY
22899: PPUSH
22900: LD_INT 21
22902: PPUSH
22903: LD_INT 34
22905: PPUSH
22906: LD_INT 0
22908: PPUSH
22909: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 21 ] , 27 , 17 , false ) ;
22913: LD_EXP 11
22917: PUSH
22918: LD_INT 21
22920: ARRAY
22921: PPUSH
22922: LD_INT 27
22924: PPUSH
22925: LD_INT 17
22927: PPUSH
22928: LD_INT 0
22930: PPUSH
22931: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_2_LIST [ 23 ] , 28 , 21 , false ) ;
22935: LD_EXP 11
22939: PUSH
22940: LD_INT 23
22942: ARRAY
22943: PPUSH
22944: LD_INT 28
22946: PPUSH
22947: LD_INT 21
22949: PPUSH
22950: LD_INT 0
22952: PPUSH
22953: CALL_OW 48
// wait ( 0 0$1 ) ;
22957: LD_INT 35
22959: PPUSH
22960: CALL_OW 67
// uklid_arabu2 ;
22964: CALL 17923 0 0
// end ;
22968: END
// every 0 0$1 trigger FilterUnitsInArea ( Create3 , [ [ f_side , You ] ] ) > 0 do
22969: LD_INT 23
22971: PPUSH
22972: LD_INT 22
22974: PUSH
22975: LD_EXP 1
22979: PUSH
22980: EMPTY
22981: LIST
22982: LIST
22983: PUSH
22984: EMPTY
22985: LIST
22986: PPUSH
22987: CALL_OW 70
22991: PUSH
22992: LD_INT 0
22994: GREATER
22995: IFFALSE 23385
22997: GO 22999
22999: DISABLE
// begin PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 1 ] , 103 , 11 , false ) ;
23000: LD_EXP 12
23004: PUSH
23005: LD_INT 1
23007: ARRAY
23008: PPUSH
23009: LD_INT 103
23011: PPUSH
23012: LD_INT 11
23014: PPUSH
23015: LD_INT 0
23017: PPUSH
23018: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 2 ] , 108 , 18 , false ) ;
23022: LD_EXP 12
23026: PUSH
23027: LD_INT 2
23029: ARRAY
23030: PPUSH
23031: LD_INT 108
23033: PPUSH
23034: LD_INT 18
23036: PPUSH
23037: LD_INT 0
23039: PPUSH
23040: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 3 ] , 107 , 21 , false ) ;
23044: LD_EXP 12
23048: PUSH
23049: LD_INT 3
23051: ARRAY
23052: PPUSH
23053: LD_INT 107
23055: PPUSH
23056: LD_INT 21
23058: PPUSH
23059: LD_INT 0
23061: PPUSH
23062: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 4 ] , 118 , 11 , false ) ;
23066: LD_EXP 12
23070: PUSH
23071: LD_INT 4
23073: ARRAY
23074: PPUSH
23075: LD_INT 118
23077: PPUSH
23078: LD_INT 11
23080: PPUSH
23081: LD_INT 0
23083: PPUSH
23084: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 5 ] , 118 , 12 , false ) ;
23088: LD_EXP 12
23092: PUSH
23093: LD_INT 5
23095: ARRAY
23096: PPUSH
23097: LD_INT 118
23099: PPUSH
23100: LD_INT 12
23102: PPUSH
23103: LD_INT 0
23105: PPUSH
23106: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 6 ] , 119 , 13 , false ) ;
23110: LD_EXP 12
23114: PUSH
23115: LD_INT 6
23117: ARRAY
23118: PPUSH
23119: LD_INT 119
23121: PPUSH
23122: LD_INT 13
23124: PPUSH
23125: LD_INT 0
23127: PPUSH
23128: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 7 ] , 115 , 9 , false ) ;
23132: LD_EXP 12
23136: PUSH
23137: LD_INT 7
23139: ARRAY
23140: PPUSH
23141: LD_INT 115
23143: PPUSH
23144: LD_INT 9
23146: PPUSH
23147: LD_INT 0
23149: PPUSH
23150: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 8 ] , 119 , 18 , false ) ;
23154: LD_EXP 12
23158: PUSH
23159: LD_INT 8
23161: ARRAY
23162: PPUSH
23163: LD_INT 119
23165: PPUSH
23166: LD_INT 18
23168: PPUSH
23169: LD_INT 0
23171: PPUSH
23172: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 9 ] , 118 , 18 , false ) ;
23176: LD_EXP 12
23180: PUSH
23181: LD_INT 9
23183: ARRAY
23184: PPUSH
23185: LD_INT 118
23187: PPUSH
23188: LD_INT 18
23190: PPUSH
23191: LD_INT 0
23193: PPUSH
23194: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 10 ] , 118 , 17 , false ) ;
23198: LD_EXP 12
23202: PUSH
23203: LD_INT 10
23205: ARRAY
23206: PPUSH
23207: LD_INT 118
23209: PPUSH
23210: LD_INT 17
23212: PPUSH
23213: LD_INT 0
23215: PPUSH
23216: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 11 ] , 118 , 16 , false ) ;
23220: LD_EXP 12
23224: PUSH
23225: LD_INT 11
23227: ARRAY
23228: PPUSH
23229: LD_INT 118
23231: PPUSH
23232: LD_INT 16
23234: PPUSH
23235: LD_INT 0
23237: PPUSH
23238: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 12 ] , 111 , 13 , false ) ;
23242: LD_EXP 12
23246: PUSH
23247: LD_INT 12
23249: ARRAY
23250: PPUSH
23251: LD_INT 111
23253: PPUSH
23254: LD_INT 13
23256: PPUSH
23257: LD_INT 0
23259: PPUSH
23260: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 13 ] , 112 , 12 , false ) ;
23264: LD_EXP 12
23268: PUSH
23269: LD_INT 13
23271: ARRAY
23272: PPUSH
23273: LD_INT 112
23275: PPUSH
23276: LD_INT 12
23278: PPUSH
23279: LD_INT 0
23281: PPUSH
23282: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 14 ] , 113 , 25 , false ) ;
23286: LD_EXP 12
23290: PUSH
23291: LD_INT 14
23293: ARRAY
23294: PPUSH
23295: LD_INT 113
23297: PPUSH
23298: LD_INT 25
23300: PPUSH
23301: LD_INT 0
23303: PPUSH
23304: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 15 ] , 113 , 27 , false ) ;
23308: LD_EXP 12
23312: PUSH
23313: LD_INT 15
23315: ARRAY
23316: PPUSH
23317: LD_INT 113
23319: PPUSH
23320: LD_INT 27
23322: PPUSH
23323: LD_INT 0
23325: PPUSH
23326: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 16 ] , 114 , 9 , false ) ;
23330: LD_EXP 12
23334: PUSH
23335: LD_INT 16
23337: ARRAY
23338: PPUSH
23339: LD_INT 114
23341: PPUSH
23342: LD_INT 9
23344: PPUSH
23345: LD_INT 0
23347: PPUSH
23348: CALL_OW 48
// PlaceUnitXY ( JEDNOTKY_BAZE_3_LIST [ 17 ] , 114 , 10 , false ) ;
23352: LD_EXP 12
23356: PUSH
23357: LD_INT 17
23359: ARRAY
23360: PPUSH
23361: LD_INT 114
23363: PPUSH
23364: LD_INT 10
23366: PPUSH
23367: LD_INT 0
23369: PPUSH
23370: CALL_OW 48
// wait ( 0 0$1 ) ;
23374: LD_INT 35
23376: PPUSH
23377: CALL_OW 67
// uklid_arabu3 ;
23381: CALL 19103 0 0
// end ;
23385: END
// export function uprav_zivoty_arabskych_budov ; begin
23386: LD_INT 0
23388: PPUSH
// SetLives ( A1_bu3 , zivoty_prvni_baze [ difficulty ] ) ;
23389: LD_INT 11
23391: PPUSH
23392: LD_EXP 53
23396: PUSH
23397: LD_OWVAR 67
23401: ARRAY
23402: PPUSH
23403: CALL_OW 234
// SetLives ( A1_bu1 , zivoty_prvni_baze [ difficulty ] ) ;
23407: LD_INT 9
23409: PPUSH
23410: LD_EXP 53
23414: PUSH
23415: LD_OWVAR 67
23419: ARRAY
23420: PPUSH
23421: CALL_OW 234
// SetLives ( A1_au2 , zivoty_prvni_baze [ difficulty ] ) ;
23425: LD_INT 109
23427: PPUSH
23428: LD_EXP 53
23432: PUSH
23433: LD_OWVAR 67
23437: ARRAY
23438: PPUSH
23439: CALL_OW 234
// SetLives ( A1_vo1 , zivoty_prvni_baze [ difficulty ] ) ;
23443: LD_INT 72
23445: PPUSH
23446: LD_EXP 53
23450: PUSH
23451: LD_OWVAR 67
23455: ARRAY
23456: PPUSH
23457: CALL_OW 234
// end ;
23461: LD_VAR 0 1
23465: RET
// every 0 0$1 trigger FilterUnitsInArea ( BummArea , [ [ f_side , You ] ] ) do var pom ;
23466: LD_INT 26
23468: PPUSH
23469: LD_INT 22
23471: PUSH
23472: LD_EXP 1
23476: PUSH
23477: EMPTY
23478: LIST
23479: LIST
23480: PUSH
23481: EMPTY
23482: LIST
23483: PPUSH
23484: CALL_OW 70
23488: IFFALSE 23557
23490: GO 23492
23492: DISABLE
23493: LD_INT 0
23495: PPUSH
// begin pom = FilterUnitsInArea ( BummArea , [ [ f_side , You ] ] ) ;
23496: LD_ADDR_VAR 0 1
23500: PUSH
23501: LD_INT 26
23503: PPUSH
23504: LD_INT 22
23506: PUSH
23507: LD_EXP 1
23511: PUSH
23512: EMPTY
23513: LIST
23514: LIST
23515: PUSH
23516: EMPTY
23517: LIST
23518: PPUSH
23519: CALL_OW 70
23523: ST_TO_ADDR
// if pom > 0 then
23524: LD_VAR 0 1
23528: PUSH
23529: LD_INT 0
23531: GREATER
23532: IFFALSE 23557
// AddComAttackUnit ( [ bumm1 , bumm2 ] , pom [ 1 ] ) ;
23534: LD_INT 114
23536: PUSH
23537: LD_INT 115
23539: PUSH
23540: EMPTY
23541: LIST
23542: LIST
23543: PPUSH
23544: LD_VAR 0 1
23548: PUSH
23549: LD_INT 1
23551: ARRAY
23552: PPUSH
23553: CALL_OW 175
// end ;
23557: PPOPN 1
23559: END
// every 0 0$1 trigger GetLives ( A2_bu1 ) < 700 do var pom , i ; var atakers ;
23560: LD_INT 112
23562: PPUSH
23563: CALL_OW 256
23567: PUSH
23568: LD_INT 700
23570: LESS
23571: IFFALSE 23819
23573: GO 23575
23575: DISABLE
23576: LD_INT 0
23578: PPUSH
23579: PPUSH
23580: PPUSH
// begin if not ( IsOK ( sui1 ) or IsOK ( sui3 ) ) then
23581: LD_INT 118
23583: PPUSH
23584: CALL_OW 302
23588: PUSH
23589: LD_INT 121
23591: PPUSH
23592: CALL_OW 302
23596: OR
23597: NOT
23598: IFFALSE 23602
// exit ;
23600: GO 23819
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
23602: LD_ADDR_VAR 0 1
23606: PUSH
23607: LD_INT 22
23609: PUSH
23610: LD_EXP 1
23614: PUSH
23615: EMPTY
23616: LIST
23617: LIST
23618: PUSH
23619: LD_INT 2
23621: PUSH
23622: LD_INT 21
23624: PUSH
23625: LD_INT 1
23627: PUSH
23628: EMPTY
23629: LIST
23630: LIST
23631: PUSH
23632: LD_INT 21
23634: PUSH
23635: LD_INT 2
23637: PUSH
23638: EMPTY
23639: LIST
23640: LIST
23641: PUSH
23642: EMPTY
23643: LIST
23644: LIST
23645: LIST
23646: PUSH
23647: EMPTY
23648: LIST
23649: LIST
23650: PPUSH
23651: CALL_OW 69
23655: ST_TO_ADDR
// for i in pom do
23656: LD_ADDR_VAR 0 2
23660: PUSH
23661: LD_VAR 0 1
23665: PUSH
23666: FOR_IN
23667: IFFALSE 23702
// if Attacks ( i ) = A2_bu1 then
23669: LD_VAR 0 2
23673: PPUSH
23674: CALL_OW 320
23678: PUSH
23679: LD_INT 112
23681: EQUAL
23682: IFFALSE 23700
// atakers = atakers ^ i ;
23684: LD_ADDR_VAR 0 3
23688: PUSH
23689: LD_VAR 0 3
23693: PUSH
23694: LD_VAR 0 2
23698: ADD
23699: ST_TO_ADDR
23700: GO 23666
23702: POP
23703: POP
// if atakers > 0 then
23704: LD_VAR 0 3
23708: PUSH
23709: LD_INT 0
23711: GREATER
23712: IFFALSE 23739
// AddComAttackUnit ( [ sui1 , sui3 ] , atakers [ 1 ] ) else
23714: LD_INT 118
23716: PUSH
23717: LD_INT 121
23719: PUSH
23720: EMPTY
23721: LIST
23722: LIST
23723: PPUSH
23724: LD_VAR 0 3
23728: PUSH
23729: LD_INT 1
23731: ARRAY
23732: PPUSH
23733: CALL_OW 175
23737: GO 23800
// begin pom = FilterUnitsInArea ( kamiattack , [ [ f_side , You ] ] ) ;
23739: LD_ADDR_VAR 0 1
23743: PUSH
23744: LD_INT 37
23746: PPUSH
23747: LD_INT 22
23749: PUSH
23750: LD_EXP 1
23754: PUSH
23755: EMPTY
23756: LIST
23757: LIST
23758: PUSH
23759: EMPTY
23760: LIST
23761: PPUSH
23762: CALL_OW 70
23766: ST_TO_ADDR
// if pom > 0 then
23767: LD_VAR 0 1
23771: PUSH
23772: LD_INT 0
23774: GREATER
23775: IFFALSE 23800
// AddComAttackUnit ( [ sui1 , sui3 ] , pom [ 1 ] ) ;
23777: LD_INT 118
23779: PUSH
23780: LD_INT 121
23782: PUSH
23783: EMPTY
23784: LIST
23785: LIST
23786: PPUSH
23787: LD_VAR 0 1
23791: PUSH
23792: LD_INT 1
23794: ARRAY
23795: PPUSH
23796: CALL_OW 175
// end ; if IsOK ( sui1 ) or IsOK ( sui3 ) then
23800: LD_INT 118
23802: PPUSH
23803: CALL_OW 302
23807: PUSH
23808: LD_INT 121
23810: PPUSH
23811: CALL_OW 302
23815: OR
23816: IFFALSE 23819
// enable ;
23818: ENABLE
// end ;
23819: PPOPN 3
23821: END
// every 0 0$2 trigger GetLives ( A2_bu3 ) < 700 do var pom , i ; var atakers ;
23822: LD_INT 47
23824: PPUSH
23825: CALL_OW 256
23829: PUSH
23830: LD_INT 700
23832: LESS
23833: IFFALSE 24081
23835: GO 23837
23837: DISABLE
23838: LD_INT 0
23840: PPUSH
23841: PPUSH
23842: PPUSH
// begin if not ( IsOK ( sui2 ) or IsOK ( sui4 ) ) then
23843: LD_INT 119
23845: PPUSH
23846: CALL_OW 302
23850: PUSH
23851: LD_INT 120
23853: PPUSH
23854: CALL_OW 302
23858: OR
23859: NOT
23860: IFFALSE 23864
// exit ;
23862: GO 24081
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
23864: LD_ADDR_VAR 0 1
23868: PUSH
23869: LD_INT 22
23871: PUSH
23872: LD_EXP 1
23876: PUSH
23877: EMPTY
23878: LIST
23879: LIST
23880: PUSH
23881: LD_INT 2
23883: PUSH
23884: LD_INT 21
23886: PUSH
23887: LD_INT 1
23889: PUSH
23890: EMPTY
23891: LIST
23892: LIST
23893: PUSH
23894: LD_INT 21
23896: PUSH
23897: LD_INT 2
23899: PUSH
23900: EMPTY
23901: LIST
23902: LIST
23903: PUSH
23904: EMPTY
23905: LIST
23906: LIST
23907: LIST
23908: PUSH
23909: EMPTY
23910: LIST
23911: LIST
23912: PPUSH
23913: CALL_OW 69
23917: ST_TO_ADDR
// for i in pom do
23918: LD_ADDR_VAR 0 2
23922: PUSH
23923: LD_VAR 0 1
23927: PUSH
23928: FOR_IN
23929: IFFALSE 23964
// if Attacks ( i ) = A2_bu3 then
23931: LD_VAR 0 2
23935: PPUSH
23936: CALL_OW 320
23940: PUSH
23941: LD_INT 47
23943: EQUAL
23944: IFFALSE 23962
// atakers = atakers ^ i ;
23946: LD_ADDR_VAR 0 3
23950: PUSH
23951: LD_VAR 0 3
23955: PUSH
23956: LD_VAR 0 2
23960: ADD
23961: ST_TO_ADDR
23962: GO 23928
23964: POP
23965: POP
// if atakers > 0 then
23966: LD_VAR 0 3
23970: PUSH
23971: LD_INT 0
23973: GREATER
23974: IFFALSE 24001
// AddComAttackUnit ( [ sui2 , sui4 ] , atakers [ 1 ] ) else
23976: LD_INT 119
23978: PUSH
23979: LD_INT 120
23981: PUSH
23982: EMPTY
23983: LIST
23984: LIST
23985: PPUSH
23986: LD_VAR 0 3
23990: PUSH
23991: LD_INT 1
23993: ARRAY
23994: PPUSH
23995: CALL_OW 175
23999: GO 24062
// begin pom = FilterUnitsInArea ( kamiattack , [ [ f_side , You ] ] ) ;
24001: LD_ADDR_VAR 0 1
24005: PUSH
24006: LD_INT 37
24008: PPUSH
24009: LD_INT 22
24011: PUSH
24012: LD_EXP 1
24016: PUSH
24017: EMPTY
24018: LIST
24019: LIST
24020: PUSH
24021: EMPTY
24022: LIST
24023: PPUSH
24024: CALL_OW 70
24028: ST_TO_ADDR
// if pom > 1 then
24029: LD_VAR 0 1
24033: PUSH
24034: LD_INT 1
24036: GREATER
24037: IFFALSE 24062
// AddComAttackUnit ( [ sui2 , sui4 ] , pom1 [ 2 ] ) ;
24039: LD_INT 119
24041: PUSH
24042: LD_INT 120
24044: PUSH
24045: EMPTY
24046: LIST
24047: LIST
24048: PPUSH
24049: LD_LOC 35
24053: PUSH
24054: LD_INT 2
24056: ARRAY
24057: PPUSH
24058: CALL_OW 175
// end ; if IsOK ( sui1 ) or IsOK ( sui3 ) then
24062: LD_INT 118
24064: PPUSH
24065: CALL_OW 302
24069: PUSH
24070: LD_INT 121
24072: PPUSH
24073: CALL_OW 302
24077: OR
24078: IFFALSE 24081
// enable ;
24080: ENABLE
// end ;
24081: PPOPN 3
24083: END
// on McDefendReturnsUnit ( mcid , un ) do var a ;
24084: LD_INT 0
24086: PPUSH
// begin a = JEDNOTKY_BAZE_2_LIST ;
24087: LD_ADDR_VAR 0 3
24091: PUSH
24092: LD_EXP 11
24096: ST_TO_ADDR
// case un of a [ 1 ] :
24097: LD_VAR 0 2
24101: PUSH
24102: LD_VAR 0 3
24106: PUSH
24107: LD_INT 1
24109: ARRAY
24110: DOUBLE
24111: EQUAL
24112: IFTRUE 24116
24114: GO 24131
24116: POP
// posli_unit ( un , 5 ) ; a [ 2 ] :
24117: LD_VAR 0 2
24121: PPUSH
24122: LD_INT 5
24124: PPUSH
24125: CALL 24633 0 2
24129: GO 24630
24131: LD_VAR 0 3
24135: PUSH
24136: LD_INT 2
24138: ARRAY
24139: DOUBLE
24140: EQUAL
24141: IFTRUE 24145
24143: GO 24160
24145: POP
// posli_unit ( un , 6 ) ; a [ 3 ] :
24146: LD_VAR 0 2
24150: PPUSH
24151: LD_INT 6
24153: PPUSH
24154: CALL 24633 0 2
24158: GO 24630
24160: LD_VAR 0 3
24164: PUSH
24165: LD_INT 3
24167: ARRAY
24168: DOUBLE
24169: EQUAL
24170: IFTRUE 24174
24172: GO 24189
24174: POP
// posli_unit ( un , 7 ) ; a [ 3 ] :
24175: LD_VAR 0 2
24179: PPUSH
24180: LD_INT 7
24182: PPUSH
24183: CALL 24633 0 2
24187: GO 24630
24189: LD_VAR 0 3
24193: PUSH
24194: LD_INT 3
24196: ARRAY
24197: DOUBLE
24198: EQUAL
24199: IFTRUE 24203
24201: GO 24218
24203: POP
// posli_unit ( un , 8 ) ; a [ 3 ] :
24204: LD_VAR 0 2
24208: PPUSH
24209: LD_INT 8
24211: PPUSH
24212: CALL 24633 0 2
24216: GO 24630
24218: LD_VAR 0 3
24222: PUSH
24223: LD_INT 3
24225: ARRAY
24226: DOUBLE
24227: EQUAL
24228: IFTRUE 24232
24230: GO 24247
24232: POP
// posli_unit ( un , 9 ) ; a [ 3 ] :
24233: LD_VAR 0 2
24237: PPUSH
24238: LD_INT 9
24240: PPUSH
24241: CALL 24633 0 2
24245: GO 24630
24247: LD_VAR 0 3
24251: PUSH
24252: LD_INT 3
24254: ARRAY
24255: DOUBLE
24256: EQUAL
24257: IFTRUE 24261
24259: GO 24276
24261: POP
// posli_unit ( un , 10 ) ; a [ 17 ] :
24262: LD_VAR 0 2
24266: PPUSH
24267: LD_INT 10
24269: PPUSH
24270: CALL 24633 0 2
24274: GO 24630
24276: LD_VAR 0 3
24280: PUSH
24281: LD_INT 17
24283: ARRAY
24284: DOUBLE
24285: EQUAL
24286: IFTRUE 24290
24288: GO 24305
24290: POP
// posli_unit ( un , 11 ) ; a [ 18 ] :
24291: LD_VAR 0 2
24295: PPUSH
24296: LD_INT 11
24298: PPUSH
24299: CALL 24633 0 2
24303: GO 24630
24305: LD_VAR 0 3
24309: PUSH
24310: LD_INT 18
24312: ARRAY
24313: DOUBLE
24314: EQUAL
24315: IFTRUE 24319
24317: GO 24334
24319: POP
// posli_unit ( un , 12 ) ; a [ 16 ] :
24320: LD_VAR 0 2
24324: PPUSH
24325: LD_INT 12
24327: PPUSH
24328: CALL 24633 0 2
24332: GO 24630
24334: LD_VAR 0 3
24338: PUSH
24339: LD_INT 16
24341: ARRAY
24342: DOUBLE
24343: EQUAL
24344: IFTRUE 24348
24346: GO 24363
24348: POP
// posli_unit ( un , 13 ) ; a [ 7 ] :
24349: LD_VAR 0 2
24353: PPUSH
24354: LD_INT 13
24356: PPUSH
24357: CALL 24633 0 2
24361: GO 24630
24363: LD_VAR 0 3
24367: PUSH
24368: LD_INT 7
24370: ARRAY
24371: DOUBLE
24372: EQUAL
24373: IFTRUE 24377
24375: GO 24392
24377: POP
// posli_unit ( un , 14 ) ; a [ 8 ] :
24378: LD_VAR 0 2
24382: PPUSH
24383: LD_INT 14
24385: PPUSH
24386: CALL 24633 0 2
24390: GO 24630
24392: LD_VAR 0 3
24396: PUSH
24397: LD_INT 8
24399: ARRAY
24400: DOUBLE
24401: EQUAL
24402: IFTRUE 24406
24404: GO 24421
24406: POP
// posli_unit ( un , 15 ) ; a [ 9 ] :
24407: LD_VAR 0 2
24411: PPUSH
24412: LD_INT 15
24414: PPUSH
24415: CALL 24633 0 2
24419: GO 24630
24421: LD_VAR 0 3
24425: PUSH
24426: LD_INT 9
24428: ARRAY
24429: DOUBLE
24430: EQUAL
24431: IFTRUE 24435
24433: GO 24450
24435: POP
// posli_unit ( un , 16 ) ; a [ 10 ] :
24436: LD_VAR 0 2
24440: PPUSH
24441: LD_INT 16
24443: PPUSH
24444: CALL 24633 0 2
24448: GO 24630
24450: LD_VAR 0 3
24454: PUSH
24455: LD_INT 10
24457: ARRAY
24458: DOUBLE
24459: EQUAL
24460: IFTRUE 24464
24462: GO 24479
24464: POP
// posli_unit ( un , 17 ) ; a [ 21 ] :
24465: LD_VAR 0 2
24469: PPUSH
24470: LD_INT 17
24472: PPUSH
24473: CALL 24633 0 2
24477: GO 24630
24479: LD_VAR 0 3
24483: PUSH
24484: LD_INT 21
24486: ARRAY
24487: DOUBLE
24488: EQUAL
24489: IFTRUE 24493
24491: GO 24508
24493: POP
// posli_unit ( un , 18 ) ; a [ 22 ] :
24494: LD_VAR 0 2
24498: PPUSH
24499: LD_INT 18
24501: PPUSH
24502: CALL 24633 0 2
24506: GO 24630
24508: LD_VAR 0 3
24512: PUSH
24513: LD_INT 22
24515: ARRAY
24516: DOUBLE
24517: EQUAL
24518: IFTRUE 24522
24520: GO 24537
24522: POP
// posli_unit ( un , 19 ) ; A2_nau2 :
24523: LD_VAR 0 2
24527: PPUSH
24528: LD_INT 19
24530: PPUSH
24531: CALL 24633 0 2
24535: GO 24630
24537: LD_INT 108
24539: DOUBLE
24540: EQUAL
24541: IFTRUE 24545
24543: GO 24560
24545: POP
// posli_unit2 ( un , 3 ) ; A2_nau1 :
24546: LD_VAR 0 2
24550: PPUSH
24551: LD_INT 3
24553: PPUSH
24554: CALL 24740 0 2
24558: GO 24630
24560: LD_INT 107
24562: DOUBLE
24563: EQUAL
24564: IFTRUE 24568
24566: GO 24583
24568: POP
// posli_unit2 ( un , 4 ) ; MDopka1 :
24569: LD_VAR 0 2
24573: PPUSH
24574: LD_INT 4
24576: PPUSH
24577: CALL 24740 0 2
24581: GO 24630
24583: LD_INT 117
24585: DOUBLE
24586: EQUAL
24587: IFTRUE 24591
24589: GO 24606
24591: POP
// posli_unit2 ( un , 1 ) ; MDopka2 :
24592: LD_VAR 0 2
24596: PPUSH
24597: LD_INT 1
24599: PPUSH
24600: CALL 24740 0 2
24604: GO 24630
24606: LD_INT 116
24608: DOUBLE
24609: EQUAL
24610: IFTRUE 24614
24612: GO 24629
24614: POP
// posli_unit2 ( un , 2 ) ; end ;
24615: LD_VAR 0 2
24619: PPUSH
24620: LD_INT 2
24622: PPUSH
24623: CALL 24740 0 2
24627: GO 24630
24629: POP
// end ;
24630: PPOPN 3
24632: END
// function posli_unit ( un , cz ) ; var a ; begin
24633: LD_INT 0
24635: PPUSH
24636: PPUSH
// a = uklizejici_mista [ cz ] ;
24637: LD_ADDR_VAR 0 4
24641: PUSH
24642: LD_LOC 36
24646: PUSH
24647: LD_VAR 0 2
24651: ARRAY
24652: ST_TO_ADDR
// debug_strings = [ Vraci MD - zaznam,unit,cislo_zaznamu , a , un , cz ] ;
24653: LD_ADDR_OWVAR 48
24657: PUSH
24658: LD_STRING Vraci MD - zaznam,unit,cislo_zaznamu
24660: PUSH
24661: LD_VAR 0 4
24665: PUSH
24666: LD_VAR 0 1
24670: PUSH
24671: LD_VAR 0 2
24675: PUSH
24676: EMPTY
24677: LIST
24678: LIST
24679: LIST
24680: LIST
24681: ST_TO_ADDR
// wait ( 3 ) ;
24682: LD_INT 3
24684: PPUSH
24685: CALL_OW 67
// ComEnterUnit ( un , a [ 1 ] ) ;
24689: LD_VAR 0 1
24693: PPUSH
24694: LD_VAR 0 4
24698: PUSH
24699: LD_INT 1
24701: ARRAY
24702: PPUSH
24703: CALL_OW 120
// if a [ 2 ] then
24707: LD_VAR 0 4
24711: PUSH
24712: LD_INT 2
24714: ARRAY
24715: IFFALSE 24735
// AddComChangeProfession ( un , a [ 3 ] ) ;
24717: LD_VAR 0 1
24721: PPUSH
24722: LD_VAR 0 4
24726: PUSH
24727: LD_INT 3
24729: ARRAY
24730: PPUSH
24731: CALL_OW 183
// end ;
24735: LD_VAR 0 3
24739: RET
// function posli_unit2 ( un , cz ) ; var a ; begin
24740: LD_INT 0
24742: PPUSH
24743: PPUSH
// a = uklizejici_mista [ cz ] ;
24744: LD_ADDR_VAR 0 4
24748: PUSH
24749: LD_LOC 36
24753: PUSH
24754: LD_VAR 0 2
24758: ARRAY
24759: ST_TO_ADDR
// debug_strings = [ Vraci MD - zaznam,unit,cislo_zaznamu , a , un , cz ] ;
24760: LD_ADDR_OWVAR 48
24764: PUSH
24765: LD_STRING Vraci MD - zaznam,unit,cislo_zaznamu
24767: PUSH
24768: LD_VAR 0 4
24772: PUSH
24773: LD_VAR 0 1
24777: PUSH
24778: LD_VAR 0 2
24782: PUSH
24783: EMPTY
24784: LIST
24785: LIST
24786: LIST
24787: LIST
24788: ST_TO_ADDR
// ComMoveXY ( un , a [ 1 ] , a [ 2 ] ) ;
24789: LD_VAR 0 1
24793: PPUSH
24794: LD_VAR 0 4
24798: PUSH
24799: LD_INT 1
24801: ARRAY
24802: PPUSH
24803: LD_VAR 0 4
24807: PUSH
24808: LD_INT 2
24810: ARRAY
24811: PPUSH
24812: CALL_OW 111
// end ;
24816: LD_VAR 0 3
24820: RET
// on McDone ( makro , stat ) do begin case makro of 1 :
24821: LD_VAR 0 1
24825: PUSH
24826: LD_INT 1
24828: DOUBLE
24829: EQUAL
24830: IFTRUE 24834
24832: GO 24844
24834: POP
// zabijeni_1_baze ( 1 ) ; 2 :
24835: LD_INT 1
24837: PPUSH
24838: CALL 24867 0 1
24842: GO 24863
24844: LD_INT 2
24846: DOUBLE
24847: EQUAL
24848: IFTRUE 24852
24850: GO 24862
24852: POP
// zabijeni_1_baze ( 2 ) ; end ;
24853: LD_INT 2
24855: PPUSH
24856: CALL 24867 0 1
24860: GO 24863
24862: POP
// enable ;
24863: ENABLE
// end ;
24864: PPOPN 2
24866: END
// function zabijeni_1_baze ( jj ) ; var pom , i ; var jedn ; begin
24867: LD_INT 0
24869: PPUSH
24870: PPUSH
24871: PPUSH
24872: PPUSH
// case jj of 1 :
24873: LD_VAR 0 1
24877: PUSH
24878: LD_INT 1
24880: DOUBLE
24881: EQUAL
24882: IFTRUE 24886
24884: GO 24899
24886: POP
// jedn = Ar_utok3_LIST ; 2 :
24887: LD_ADDR_VAR 0 5
24891: PUSH
24892: LD_EXP 15
24896: ST_TO_ADDR
24897: GO 24921
24899: LD_INT 2
24901: DOUBLE
24902: EQUAL
24903: IFTRUE 24907
24905: GO 24920
24907: POP
// jedn = Ar_utok2_LIST ; end ;
24908: LD_ADDR_VAR 0 5
24912: PUSH
24913: LD_EXP 14
24917: ST_TO_ADDR
24918: GO 24921
24920: POP
// for i in jedn do
24921: LD_ADDR_VAR 0 4
24925: PUSH
24926: LD_VAR 0 5
24930: PUSH
24931: FOR_IN
24932: IFFALSE 24972
// if GetClass ( i ) = class_engineer then
24934: LD_VAR 0 4
24938: PPUSH
24939: CALL_OW 257
24943: PUSH
24944: LD_INT 2
24946: EQUAL
24947: IFFALSE 24970
// if IsOK ( A1_dep ) then
24949: LD_INT 4
24951: PPUSH
24952: CALL_OW 302
24956: IFFALSE 24970
// ComEnterUnit ( i , A1_dep ) ;
24958: LD_VAR 0 4
24962: PPUSH
24963: LD_INT 4
24965: PPUSH
24966: CALL_OW 120
24970: GO 24931
24972: POP
24973: POP
// pom = FilterUnitsInArea ( Abase1 , [ [ f_side , You ] ] ) ;
24974: LD_ADDR_VAR 0 3
24978: PUSH
24979: LD_INT 3
24981: PPUSH
24982: LD_INT 22
24984: PUSH
24985: LD_EXP 1
24989: PUSH
24990: EMPTY
24991: LIST
24992: LIST
24993: PUSH
24994: EMPTY
24995: LIST
24996: PPUSH
24997: CALL_OW 70
25001: ST_TO_ADDR
// for i in pom do
25002: LD_ADDR_VAR 0 4
25006: PUSH
25007: LD_VAR 0 3
25011: PUSH
25012: FOR_IN
25013: IFFALSE 25031
// PriorityAttack ( Arabi , i ) ;
25015: LD_EXP 3
25019: PPUSH
25020: LD_VAR 0 4
25024: PPUSH
25025: CALL_OW 470
25029: GO 25012
25031: POP
25032: POP
// enable ( 995 ) ;
25033: LD_INT 995
25035: ENABLE_MARKED
// end ;
25036: LD_VAR 0 2
25040: RET
// every 0 0$1 marked 995 do var pom , pom1 ; var i ; var pomat ;
25041: GO 25043
25043: DISABLE
25044: LD_INT 0
25046: PPUSH
25047: PPUSH
25048: PPUSH
25049: PPUSH
// begin pom = FilterUnitsInArea ( Abase1 , [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ [ f_type , unit_vehicle ] , [ f_ready ] ] ] ] ) ;
25050: LD_ADDR_VAR 0 1
25054: PUSH
25055: LD_INT 3
25057: PPUSH
25058: LD_INT 22
25060: PUSH
25061: LD_EXP 1
25065: PUSH
25066: EMPTY
25067: LIST
25068: LIST
25069: PUSH
25070: LD_INT 2
25072: PUSH
25073: LD_INT 21
25075: PUSH
25076: LD_INT 1
25078: PUSH
25079: EMPTY
25080: LIST
25081: LIST
25082: PUSH
25083: LD_INT 21
25085: PUSH
25086: LD_INT 2
25088: PUSH
25089: EMPTY
25090: LIST
25091: LIST
25092: PUSH
25093: LD_INT 53
25095: PUSH
25096: EMPTY
25097: LIST
25098: PUSH
25099: EMPTY
25100: LIST
25101: LIST
25102: PUSH
25103: EMPTY
25104: LIST
25105: LIST
25106: LIST
25107: PUSH
25108: EMPTY
25109: LIST
25110: LIST
25111: PPUSH
25112: CALL_OW 70
25116: ST_TO_ADDR
// pom1 = FilterUnitsInArea ( Abase1 , [ [ f_side , You ] ] ) ;
25117: LD_ADDR_VAR 0 2
25121: PUSH
25122: LD_INT 3
25124: PPUSH
25125: LD_INT 22
25127: PUSH
25128: LD_EXP 1
25132: PUSH
25133: EMPTY
25134: LIST
25135: LIST
25136: PUSH
25137: EMPTY
25138: LIST
25139: PPUSH
25140: CALL_OW 70
25144: ST_TO_ADDR
// pomat = pom1 diff pom ;
25145: LD_ADDR_VAR 0 4
25149: PUSH
25150: LD_VAR 0 2
25154: PUSH
25155: LD_VAR 0 1
25159: DIFF
25160: ST_TO_ADDR
// if pomat = 0 then
25161: LD_VAR 0 4
25165: PUSH
25166: LD_INT 0
25168: EQUAL
25169: IFFALSE 25204
// for i in pom1 do
25171: LD_ADDR_VAR 0 3
25175: PUSH
25176: LD_VAR 0 2
25180: PUSH
25181: FOR_IN
25182: IFFALSE 25200
// PriorityAttack ( Arabi , i ) else
25184: LD_EXP 3
25188: PPUSH
25189: LD_VAR 0 3
25193: PPUSH
25194: CALL_OW 470
25198: GO 25181
25200: POP
25201: POP
25202: GO 25266
// begin for i in pom do
25204: LD_ADDR_VAR 0 3
25208: PUSH
25209: LD_VAR 0 1
25213: PUSH
25214: FOR_IN
25215: IFFALSE 25233
// PriorityAttack ( Arabi , i ) ;
25217: LD_EXP 3
25221: PPUSH
25222: LD_VAR 0 3
25226: PPUSH
25227: CALL_OW 470
25231: GO 25214
25233: POP
25234: POP
// for i in pomat do
25235: LD_ADDR_VAR 0 3
25239: PUSH
25240: LD_VAR 0 4
25244: PUSH
25245: FOR_IN
25246: IFFALSE 25264
// NormalAttack ( Arabi , i ) ;
25248: LD_EXP 3
25252: PPUSH
25253: LD_VAR 0 3
25257: PPUSH
25258: CALL_OW 472
25262: GO 25245
25264: POP
25265: POP
// end ; if pom <> 0 and FilterUnitsInArea ( Abase1 , [ [ f_side , You ] ] ) <> 0 then
25266: LD_VAR 0 1
25270: PUSH
25271: LD_INT 0
25273: NONEQUAL
25274: PUSH
25275: LD_INT 3
25277: PPUSH
25278: LD_INT 22
25280: PUSH
25281: LD_EXP 1
25285: PUSH
25286: EMPTY
25287: LIST
25288: LIST
25289: PUSH
25290: EMPTY
25291: LIST
25292: PPUSH
25293: CALL_OW 70
25297: PUSH
25298: LD_INT 0
25300: NONEQUAL
25301: AND
25302: IFFALSE 25305
// enable ;
25304: ENABLE
// end ; end_of_file
25305: PPOPN 4
25307: END
// export protiutok1 ; export Ar_levely ; export timelimit ; export max_bedny ; export lidi_other ; export zivoty_prvni_baze ; export utok_2_doba ; export last_attack_wait ; export medaile1 ; export medaile2 ; export Timecounter ; export function SET_DIFFICULTY ; var pom ; begin
25308: LD_INT 0
25310: PPUSH
25311: PPUSH
// protiutok1 = [ 10 10$0 , 7 7$30 , 5 5$30 ] ;
25312: LD_ADDR_EXP 48
25316: PUSH
25317: LD_INT 21000
25319: PUSH
25320: LD_INT 15750
25322: PUSH
25323: LD_INT 11550
25325: PUSH
25326: EMPTY
25327: LIST
25328: LIST
25329: LIST
25330: ST_TO_ADDR
// utok_2_doba = [ 10 10$0 , 8 8$0 , 6 6$0 ] ;
25331: LD_ADDR_EXP 54
25335: PUSH
25336: LD_INT 21000
25338: PUSH
25339: LD_INT 16800
25341: PUSH
25342: LD_INT 12600
25344: PUSH
25345: EMPTY
25346: LIST
25347: LIST
25348: LIST
25349: ST_TO_ADDR
// Ar_levely = [ 4 , 6 , 8 ] ;
25350: LD_ADDR_EXP 49
25354: PUSH
25355: LD_INT 4
25357: PUSH
25358: LD_INT 6
25360: PUSH
25361: LD_INT 8
25363: PUSH
25364: EMPTY
25365: LIST
25366: LIST
25367: LIST
25368: ST_TO_ADDR
// timelimit = [ 160 160$0 , 150 150$0 , 140 140$0 ] ;
25369: LD_ADDR_EXP 50
25373: PUSH
25374: LD_INT 336000
25376: PUSH
25377: LD_INT 315000
25379: PUSH
25380: LD_INT 294000
25382: PUSH
25383: EMPTY
25384: LIST
25385: LIST
25386: LIST
25387: ST_TO_ADDR
// medaile1 = [ 120 , 100 , 90 ] ;
25388: LD_ADDR_EXP 56
25392: PUSH
25393: LD_INT 120
25395: PUSH
25396: LD_INT 100
25398: PUSH
25399: LD_INT 90
25401: PUSH
25402: EMPTY
25403: LIST
25404: LIST
25405: LIST
25406: ST_TO_ADDR
// medaile2 = [ 100 , 90 , 80 ] ;
25407: LD_ADDR_EXP 57
25411: PUSH
25412: LD_INT 100
25414: PUSH
25415: LD_INT 90
25417: PUSH
25418: LD_INT 80
25420: PUSH
25421: EMPTY
25422: LIST
25423: LIST
25424: LIST
25425: ST_TO_ADDR
// max_bedny = [ 55 , 40 , 30 ] ;
25426: LD_ADDR_EXP 51
25430: PUSH
25431: LD_INT 55
25433: PUSH
25434: LD_INT 40
25436: PUSH
25437: LD_INT 30
25439: PUSH
25440: EMPTY
25441: LIST
25442: LIST
25443: LIST
25444: ST_TO_ADDR
// zivoty_prvni_baze = [ 700 , 850 , 1000 ] ;
25445: LD_ADDR_EXP 53
25449: PUSH
25450: LD_INT 700
25452: PUSH
25453: LD_INT 850
25455: PUSH
25456: LD_INT 1000
25458: PUSH
25459: EMPTY
25460: LIST
25461: LIST
25462: LIST
25463: ST_TO_ADDR
// last_attack_wait = [ 10 10$0 , 8 8$0 , 5 5$0 ] ;
25464: LD_ADDR_EXP 55
25468: PUSH
25469: LD_INT 21000
25471: PUSH
25472: LD_INT 16800
25474: PUSH
25475: LD_INT 10500
25477: PUSH
25478: EMPTY
25479: LIST
25480: LIST
25481: LIST
25482: ST_TO_ADDR
// Timecounter = 0 ;
25483: LD_ADDR_EXP 58
25487: PUSH
25488: LD_INT 0
25490: ST_TO_ADDR
// end ;
25491: LD_VAR 0 1
25495: RET
// export cas ; every 0 0$10 do var pom ;
25496: GO 25498
25498: DISABLE
25499: LD_INT 0
25501: PPUSH
// begin if cas [ 3 ] + 10 = 60 then
25502: LD_EXP 59
25506: PUSH
25507: LD_INT 3
25509: ARRAY
25510: PUSH
25511: LD_INT 10
25513: PLUS
25514: PUSH
25515: LD_INT 60
25517: EQUAL
25518: IFFALSE 25554
// cas = cas [ 1 ] + 1 ^ cas [ 2 ] ^ 0 else
25520: LD_ADDR_EXP 59
25524: PUSH
25525: LD_EXP 59
25529: PUSH
25530: LD_INT 1
25532: ARRAY
25533: PUSH
25534: LD_INT 1
25536: PLUS
25537: PUSH
25538: LD_EXP 59
25542: PUSH
25543: LD_INT 2
25545: ARRAY
25546: ADD
25547: PUSH
25548: LD_INT 0
25550: ADD
25551: ST_TO_ADDR
25552: GO 25592
// cas = cas [ 1 ] ^ cas [ 2 ] ^ cas [ 3 ] + 10 ;
25554: LD_ADDR_EXP 59
25558: PUSH
25559: LD_EXP 59
25563: PUSH
25564: LD_INT 1
25566: ARRAY
25567: PUSH
25568: LD_EXP 59
25572: PUSH
25573: LD_INT 2
25575: ARRAY
25576: ADD
25577: PUSH
25578: LD_EXP 59
25582: PUSH
25583: LD_INT 3
25585: ARRAY
25586: PUSH
25587: LD_INT 10
25589: PLUS
25590: ADD
25591: ST_TO_ADDR
// debug_strings = [ cas ] ;
25592: LD_ADDR_OWVAR 48
25596: PUSH
25597: LD_EXP 59
25601: PUSH
25602: EMPTY
25603: LIST
25604: ST_TO_ADDR
// enable ;
25605: ENABLE
// end ;
25606: PPOPN 1
25608: END
// every 1 1$0 do
25609: GO 25611
25611: DISABLE
// begin Timecounter = Timecounter + 1 ;
25612: LD_ADDR_EXP 58
25616: PUSH
25617: LD_EXP 58
25621: PUSH
25622: LD_INT 1
25624: PLUS
25625: ST_TO_ADDR
// enable ;
25626: ENABLE
// end ; end_of_file
25627: END
// every 0 0$2 + 0 0$0.1 do
25628: GO 25630
25630: DISABLE
// begin if FilterAllUnits ( [ [ f_side , 1 ] , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_soldier ] , [ f_class , class_apeman_kamikaze ] ] ] ) > FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_human ] , [ f_not , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_soldier ] , [ f_class , class_apeman_kamikaze ] ] ] ] ) then
25631: LD_INT 22
25633: PUSH
25634: LD_INT 1
25636: PUSH
25637: EMPTY
25638: LIST
25639: LIST
25640: PUSH
25641: LD_INT 2
25643: PUSH
25644: LD_INT 25
25646: PUSH
25647: LD_INT 12
25649: PUSH
25650: EMPTY
25651: LIST
25652: LIST
25653: PUSH
25654: LD_INT 25
25656: PUSH
25657: LD_INT 16
25659: PUSH
25660: EMPTY
25661: LIST
25662: LIST
25663: PUSH
25664: LD_INT 25
25666: PUSH
25667: LD_INT 15
25669: PUSH
25670: EMPTY
25671: LIST
25672: LIST
25673: PUSH
25674: LD_INT 25
25676: PUSH
25677: LD_INT 17
25679: PUSH
25680: EMPTY
25681: LIST
25682: LIST
25683: PUSH
25684: EMPTY
25685: LIST
25686: LIST
25687: LIST
25688: LIST
25689: LIST
25690: PUSH
25691: EMPTY
25692: LIST
25693: LIST
25694: PPUSH
25695: CALL_OW 69
25699: PUSH
25700: LD_INT 22
25702: PUSH
25703: LD_INT 1
25705: PUSH
25706: EMPTY
25707: LIST
25708: LIST
25709: PUSH
25710: LD_INT 21
25712: PUSH
25713: LD_INT 1
25715: PUSH
25716: EMPTY
25717: LIST
25718: LIST
25719: PUSH
25720: LD_INT 3
25722: PUSH
25723: LD_INT 2
25725: PUSH
25726: LD_INT 25
25728: PUSH
25729: LD_INT 12
25731: PUSH
25732: EMPTY
25733: LIST
25734: LIST
25735: PUSH
25736: LD_INT 25
25738: PUSH
25739: LD_INT 16
25741: PUSH
25742: EMPTY
25743: LIST
25744: LIST
25745: PUSH
25746: LD_INT 25
25748: PUSH
25749: LD_INT 15
25751: PUSH
25752: EMPTY
25753: LIST
25754: LIST
25755: PUSH
25756: LD_INT 25
25758: PUSH
25759: LD_INT 17
25761: PUSH
25762: EMPTY
25763: LIST
25764: LIST
25765: PUSH
25766: EMPTY
25767: LIST
25768: LIST
25769: LIST
25770: LIST
25771: LIST
25772: PUSH
25773: EMPTY
25774: LIST
25775: LIST
25776: PUSH
25777: EMPTY
25778: LIST
25779: LIST
25780: LIST
25781: PPUSH
25782: CALL_OW 69
25786: GREATER
25787: IFFALSE 25798
// begin SetAchievement ( ACH_POTA ) ;
25789: LD_STRING ACH_POTA
25791: PPUSH
25792: CALL_OW 543
// exit ;
25796: GO 25799
// end ; enable ;
25798: ENABLE
// end ; end_of_file
25799: END
// export function SA_EndMission ( campaignNumber , missionNumber , medal1 , medal2 , medal3 ) ; var achiv ; begin
25800: LD_INT 0
25802: PPUSH
25803: PPUSH
// if not missionNumber then
25804: LD_VAR 0 2
25808: NOT
25809: IFFALSE 25813
// exit ;
25811: GO 25943
// achiv := false ;
25813: LD_ADDR_VAR 0 7
25817: PUSH
25818: LD_INT 0
25820: ST_TO_ADDR
// case campaignNumber of 1 :
25821: LD_VAR 0 1
25825: PUSH
25826: LD_INT 1
25828: DOUBLE
25829: EQUAL
25830: IFTRUE 25834
25832: GO 25845
25834: POP
// achiv := ACH_GOTA ; 2 :
25835: LD_ADDR_VAR 0 7
25839: PUSH
25840: LD_STRING ACH_GOTA
25842: ST_TO_ADDR
25843: GO 25895
25845: LD_INT 2
25847: DOUBLE
25848: EQUAL
25849: IFTRUE 25853
25851: GO 25856
25853: POP
// ; 3 :
25854: GO 25895
25856: LD_INT 3
25858: DOUBLE
25859: EQUAL
25860: IFTRUE 25864
25862: GO 25875
25864: POP
// achiv := ACH_MOTSU ; 4 :
25865: LD_ADDR_VAR 0 7
25869: PUSH
25870: LD_STRING ACH_MOTSU
25872: ST_TO_ADDR
25873: GO 25895
25875: LD_INT 4
25877: DOUBLE
25878: EQUAL
25879: IFTRUE 25883
25881: GO 25894
25883: POP
// achiv := ACH_LOP ; end ;
25884: LD_ADDR_VAR 0 7
25888: PUSH
25889: LD_STRING ACH_LOP
25891: ST_TO_ADDR
25892: GO 25895
25894: POP
// if Difficulty = 3 and achiv and medal1 and medal2 and medal3 then
25895: LD_OWVAR 67
25899: PUSH
25900: LD_INT 3
25902: EQUAL
25903: PUSH
25904: LD_VAR 0 7
25908: AND
25909: PUSH
25910: LD_VAR 0 3
25914: AND
25915: PUSH
25916: LD_VAR 0 4
25920: AND
25921: PUSH
25922: LD_VAR 0 5
25926: AND
25927: IFFALSE 25943
// SetAchievementEX ( achiv , missionNumber ) ;
25929: LD_VAR 0 7
25933: PPUSH
25934: LD_VAR 0 2
25938: PPUSH
25939: CALL_OW 564
// end ;
25943: LD_VAR 0 6
25947: RET
// export function SA_BehemothConstructed ; begin
25948: LD_INT 0
25950: PPUSH
// SetAchievement ( ACH_SMC ) ;
25951: LD_STRING ACH_SMC
25953: PPUSH
25954: CALL_OW 543
// end ;
25958: LD_VAR 0 1
25962: RET
// on CustomCommand ( p1 , p2 , p3 , p4 , p5 , p6 ) do begin case p2 of 1 :
25963: LD_VAR 0 2
25967: PUSH
25968: LD_INT 1
25970: DOUBLE
25971: EQUAL
25972: IFTRUE 25976
25974: GO 25983
25976: POP
// HackUnlimitedResources ; 2 :
25977: CALL 26167 0 0
25981: GO 26164
25983: LD_INT 2
25985: DOUBLE
25986: EQUAL
25987: IFTRUE 25991
25989: GO 25998
25991: POP
// HackSetLevel10 ; 3 :
25992: CALL 26300 0 0
25996: GO 26164
25998: LD_INT 3
26000: DOUBLE
26001: EQUAL
26002: IFTRUE 26006
26004: GO 26013
26006: POP
// HackSetLevel10YourUnits ; 4 :
26007: CALL 26385 0 0
26011: GO 26164
26013: LD_INT 4
26015: DOUBLE
26016: EQUAL
26017: IFTRUE 26021
26019: GO 26043
26021: POP
// HackSpawnHuman ( p3 , p4 , p5 ) ; 5 :
26022: LD_VAR 0 3
26026: PPUSH
26027: LD_VAR 0 4
26031: PPUSH
26032: LD_VAR 0 5
26036: PPUSH
26037: CALL 26475 0 3
26041: GO 26164
26043: LD_INT 5
26045: DOUBLE
26046: EQUAL
26047: IFTRUE 26051
26049: GO 26058
26051: POP
// HackSpawnVehicle ; 6 :
26052: CALL 26536 0 0
26056: GO 26164
26058: LD_INT 6
26060: DOUBLE
26061: EQUAL
26062: IFTRUE 26066
26064: GO 26073
26066: POP
// HackInvincible ; 7 :
26067: CALL 27082 0 0
26071: GO 26164
26073: LD_INT 7
26075: DOUBLE
26076: EQUAL
26077: IFTRUE 26081
26079: GO 26088
26081: POP
// HackInvisible ; 8 :
26082: CALL 27193 0 0
26086: GO 26164
26088: LD_INT 8
26090: DOUBLE
26091: EQUAL
26092: IFTRUE 26096
26094: GO 26103
26096: POP
// HackChangeYourSide ; 9 :
26097: CALL 27250 0 0
26101: GO 26164
26103: LD_INT 9
26105: DOUBLE
26106: EQUAL
26107: IFTRUE 26111
26109: GO 26118
26111: POP
// HackChangeUnitSide ; 10 :
26112: CALL 27292 0 0
26116: GO 26164
26118: LD_INT 10
26120: DOUBLE
26121: EQUAL
26122: IFTRUE 26126
26124: GO 26133
26126: POP
// HackFog ; 11 :
26127: CALL 27393 0 0
26131: GO 26164
26133: LD_INT 11
26135: DOUBLE
26136: EQUAL
26137: IFTRUE 26141
26139: GO 26148
26141: POP
// HackApeman ; 12 :
26142: CALL 27408 0 0
26146: GO 26164
26148: LD_INT 12
26150: DOUBLE
26151: EQUAL
26152: IFTRUE 26156
26154: GO 26163
26156: POP
// HackBoom ; end ;
26157: CALL 27493 0 0
26161: GO 26164
26163: POP
// end ;
26164: PPOPN 6
26166: END
// export function HackUnlimitedResources ; var i , j , tmp ; begin
26167: LD_INT 0
26169: PPUSH
26170: PPUSH
26171: PPUSH
26172: PPUSH
// tmp := FilterAllUnits ( [ [ f_side , your_side ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
26173: LD_ADDR_VAR 0 4
26177: PUSH
26178: LD_INT 22
26180: PUSH
26181: LD_OWVAR 2
26185: PUSH
26186: EMPTY
26187: LIST
26188: LIST
26189: PUSH
26190: LD_INT 2
26192: PUSH
26193: LD_INT 30
26195: PUSH
26196: LD_INT 0
26198: PUSH
26199: EMPTY
26200: LIST
26201: LIST
26202: PUSH
26203: LD_INT 30
26205: PUSH
26206: LD_INT 1
26208: PUSH
26209: EMPTY
26210: LIST
26211: LIST
26212: PUSH
26213: EMPTY
26214: LIST
26215: LIST
26216: LIST
26217: PUSH
26218: EMPTY
26219: LIST
26220: LIST
26221: PPUSH
26222: CALL_OW 69
26226: ST_TO_ADDR
// if not tmp then
26227: LD_VAR 0 4
26231: NOT
26232: IFFALSE 26236
// exit ;
26234: GO 26295
// for i in tmp do
26236: LD_ADDR_VAR 0 2
26240: PUSH
26241: LD_VAR 0 4
26245: PUSH
26246: FOR_IN
26247: IFFALSE 26293
// for j = 1 to 3 do
26249: LD_ADDR_VAR 0 3
26253: PUSH
26254: DOUBLE
26255: LD_INT 1
26257: DEC
26258: ST_TO_ADDR
26259: LD_INT 3
26261: PUSH
26262: FOR_TO
26263: IFFALSE 26289
// SetResourceType ( GetBase ( i ) , j , 99999 ) ;
26265: LD_VAR 0 2
26269: PPUSH
26270: CALL_OW 274
26274: PPUSH
26275: LD_VAR 0 3
26279: PPUSH
26280: LD_INT 99999
26282: PPUSH
26283: CALL_OW 277
26287: GO 26262
26289: POP
26290: POP
26291: GO 26246
26293: POP
26294: POP
// end ;
26295: LD_VAR 0 1
26299: RET
// export function HackSetLevel10 ; var i , j ; begin
26300: LD_INT 0
26302: PPUSH
26303: PPUSH
26304: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
26305: LD_ADDR_VAR 0 2
26309: PUSH
26310: LD_INT 21
26312: PUSH
26313: LD_INT 1
26315: PUSH
26316: EMPTY
26317: LIST
26318: LIST
26319: PPUSH
26320: CALL_OW 69
26324: PUSH
26325: FOR_IN
26326: IFFALSE 26378
// if IsSelected ( i ) then
26328: LD_VAR 0 2
26332: PPUSH
26333: CALL_OW 306
26337: IFFALSE 26376
// begin for j := 1 to 4 do
26339: LD_ADDR_VAR 0 3
26343: PUSH
26344: DOUBLE
26345: LD_INT 1
26347: DEC
26348: ST_TO_ADDR
26349: LD_INT 4
26351: PUSH
26352: FOR_TO
26353: IFFALSE 26374
// SetSkill ( i , j , 10 ) ;
26355: LD_VAR 0 2
26359: PPUSH
26360: LD_VAR 0 3
26364: PPUSH
26365: LD_INT 10
26367: PPUSH
26368: CALL_OW 237
26372: GO 26352
26374: POP
26375: POP
// end ;
26376: GO 26325
26378: POP
26379: POP
// end ;
26380: LD_VAR 0 1
26384: RET
// export function HackSetLevel10YourUnits ; var i , j ; begin
26385: LD_INT 0
26387: PPUSH
26388: PPUSH
26389: PPUSH
// for i in FilterAllUnits ( [ [ f_side , your_side ] , [ f_type , unit_human ] ] ) do
26390: LD_ADDR_VAR 0 2
26394: PUSH
26395: LD_INT 22
26397: PUSH
26398: LD_OWVAR 2
26402: PUSH
26403: EMPTY
26404: LIST
26405: LIST
26406: PUSH
26407: LD_INT 21
26409: PUSH
26410: LD_INT 1
26412: PUSH
26413: EMPTY
26414: LIST
26415: LIST
26416: PUSH
26417: EMPTY
26418: LIST
26419: LIST
26420: PPUSH
26421: CALL_OW 69
26425: PUSH
26426: FOR_IN
26427: IFFALSE 26468
// begin for j := 1 to 4 do
26429: LD_ADDR_VAR 0 3
26433: PUSH
26434: DOUBLE
26435: LD_INT 1
26437: DEC
26438: ST_TO_ADDR
26439: LD_INT 4
26441: PUSH
26442: FOR_TO
26443: IFFALSE 26464
// SetSkill ( i , j , 10 ) ;
26445: LD_VAR 0 2
26449: PPUSH
26450: LD_VAR 0 3
26454: PPUSH
26455: LD_INT 10
26457: PPUSH
26458: CALL_OW 237
26462: GO 26442
26464: POP
26465: POP
// end ;
26466: GO 26426
26468: POP
26469: POP
// end ;
26470: LD_VAR 0 1
26474: RET
// export function HackSpawnHuman ( nation , class , skill ) ; begin
26475: LD_INT 0
26477: PPUSH
// uc_side := your_side ;
26478: LD_ADDR_OWVAR 20
26482: PUSH
26483: LD_OWVAR 2
26487: ST_TO_ADDR
// uc_nation := nation ;
26488: LD_ADDR_OWVAR 21
26492: PUSH
26493: LD_VAR 0 1
26497: ST_TO_ADDR
// InitHc ;
26498: CALL_OW 19
// PrepareHuman ( false , class , skill ) ;
26502: LD_INT 0
26504: PPUSH
26505: LD_VAR 0 2
26509: PPUSH
26510: LD_VAR 0 3
26514: PPUSH
26515: CALL_OW 380
// PlaceUnitAnywhere ( CreateHuman , true ) ;
26519: CALL_OW 44
26523: PPUSH
26524: LD_INT 1
26526: PPUSH
26527: CALL_OW 51
// end ;
26531: LD_VAR 0 4
26535: RET
// export function HackSpawnVehicle ; begin
26536: LD_INT 0
26538: PPUSH
// uc_side := your_side ;
26539: LD_ADDR_OWVAR 20
26543: PUSH
26544: LD_OWVAR 2
26548: ST_TO_ADDR
// uc_nation := rand ( 1 , 3 ) ;
26549: LD_ADDR_OWVAR 21
26553: PUSH
26554: LD_INT 1
26556: PPUSH
26557: LD_INT 3
26559: PPUSH
26560: CALL_OW 12
26564: ST_TO_ADDR
// InitVc ;
26565: CALL_OW 20
// case uc_nation of 1 :
26569: LD_OWVAR 21
26573: PUSH
26574: LD_INT 1
26576: DOUBLE
26577: EQUAL
26578: IFTRUE 26582
26580: GO 26726
26582: POP
// begin vc_chassis := [ us_light_wheeled , us_medium_wheeled , us_medium_tracked , us_heavy_tracked , us_morphling ] [ rand ( 1 , 5 ) ] ;
26583: LD_ADDR_OWVAR 37
26587: PUSH
26588: LD_INT 1
26590: PUSH
26591: LD_INT 2
26593: PUSH
26594: LD_INT 3
26596: PUSH
26597: LD_INT 4
26599: PUSH
26600: LD_INT 5
26602: PUSH
26603: EMPTY
26604: LIST
26605: LIST
26606: LIST
26607: LIST
26608: LIST
26609: PUSH
26610: LD_INT 1
26612: PPUSH
26613: LD_INT 5
26615: PPUSH
26616: CALL_OW 12
26620: ARRAY
26621: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
26622: LD_ADDR_OWVAR 39
26626: PUSH
26627: LD_INT 1
26629: PPUSH
26630: LD_INT 3
26632: PPUSH
26633: CALL_OW 12
26637: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_computer ] [ rand ( 1 , 3 ) ] ;
26638: LD_ADDR_OWVAR 38
26642: PUSH
26643: LD_INT 1
26645: PUSH
26646: LD_INT 2
26648: PUSH
26649: LD_INT 3
26651: PUSH
26652: EMPTY
26653: LIST
26654: LIST
26655: LIST
26656: PUSH
26657: LD_INT 1
26659: PPUSH
26660: LD_INT 3
26662: PPUSH
26663: CALL_OW 12
26667: ARRAY
26668: ST_TO_ADDR
// vc_weapon := [ us_machine_gun , us_gatling_gun , us_double_gun , us_light_gun , us_rocket_launcher , us_siberium_rocket , us_laser , us_double_laser , us_heavy_gun ] [ rand ( 1 , 9 ) ] ;
26669: LD_ADDR_OWVAR 40
26673: PUSH
26674: LD_INT 2
26676: PUSH
26677: LD_INT 4
26679: PUSH
26680: LD_INT 5
26682: PUSH
26683: LD_INT 3
26685: PUSH
26686: LD_INT 7
26688: PUSH
26689: LD_INT 8
26691: PUSH
26692: LD_INT 9
26694: PUSH
26695: LD_INT 10
26697: PUSH
26698: LD_INT 6
26700: PUSH
26701: EMPTY
26702: LIST
26703: LIST
26704: LIST
26705: LIST
26706: LIST
26707: LIST
26708: LIST
26709: LIST
26710: LIST
26711: PUSH
26712: LD_INT 1
26714: PPUSH
26715: LD_INT 9
26717: PPUSH
26718: CALL_OW 12
26722: ARRAY
26723: ST_TO_ADDR
// end ; 2 :
26724: GO 26991
26726: LD_INT 2
26728: DOUBLE
26729: EQUAL
26730: IFTRUE 26734
26732: GO 26858
26734: POP
// begin vc_chassis := [ ar_hovercraft , ar_light_trike , ar_medium_trike , ar_half_tracked ] [ rand ( 1 , 4 ) ] ;
26735: LD_ADDR_OWVAR 37
26739: PUSH
26740: LD_INT 11
26742: PUSH
26743: LD_INT 12
26745: PUSH
26746: LD_INT 13
26748: PUSH
26749: LD_INT 14
26751: PUSH
26752: EMPTY
26753: LIST
26754: LIST
26755: LIST
26756: LIST
26757: PUSH
26758: LD_INT 1
26760: PPUSH
26761: LD_INT 4
26763: PPUSH
26764: CALL_OW 12
26768: ARRAY
26769: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
26770: LD_ADDR_OWVAR 39
26774: PUSH
26775: LD_INT 1
26777: PPUSH
26778: LD_INT 3
26780: PPUSH
26781: CALL_OW 12
26785: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_apeman ] [ rand ( 1 , 3 ) ] ;
26786: LD_ADDR_OWVAR 38
26790: PUSH
26791: LD_INT 1
26793: PUSH
26794: LD_INT 2
26796: PUSH
26797: LD_INT 5
26799: PUSH
26800: EMPTY
26801: LIST
26802: LIST
26803: LIST
26804: PUSH
26805: LD_INT 1
26807: PPUSH
26808: LD_INT 3
26810: PPUSH
26811: CALL_OW 12
26815: ARRAY
26816: ST_TO_ADDR
// vc_weapon := [ ar_double_machine_gun , ar_flame_thrower , ar_gun , ar_rocket_launcher , ar_selfpropelled_bomb ] [ rand ( 1 , 5 ) ] ;
26817: LD_ADDR_OWVAR 40
26821: PUSH
26822: LD_INT 24
26824: PUSH
26825: LD_INT 26
26827: PUSH
26828: LD_INT 27
26830: PUSH
26831: LD_INT 28
26833: PUSH
26834: LD_INT 29
26836: PUSH
26837: EMPTY
26838: LIST
26839: LIST
26840: LIST
26841: LIST
26842: LIST
26843: PUSH
26844: LD_INT 1
26846: PPUSH
26847: LD_INT 5
26849: PPUSH
26850: CALL_OW 12
26854: ARRAY
26855: ST_TO_ADDR
// end ; 3 :
26856: GO 26991
26858: LD_INT 3
26860: DOUBLE
26861: EQUAL
26862: IFTRUE 26866
26864: GO 26990
26866: POP
// begin vc_chassis := [ ru_medium_wheeled , ru_heavy_wheeled , ru_medium_tracked , ru_heavy_tracked ] [ rand ( 1 , 4 ) ] ;
26867: LD_ADDR_OWVAR 37
26871: PUSH
26872: LD_INT 21
26874: PUSH
26875: LD_INT 23
26877: PUSH
26878: LD_INT 22
26880: PUSH
26881: LD_INT 24
26883: PUSH
26884: EMPTY
26885: LIST
26886: LIST
26887: LIST
26888: LIST
26889: PUSH
26890: LD_INT 1
26892: PPUSH
26893: LD_INT 4
26895: PPUSH
26896: CALL_OW 12
26900: ARRAY
26901: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
26902: LD_ADDR_OWVAR 39
26906: PUSH
26907: LD_INT 1
26909: PPUSH
26910: LD_INT 3
26912: PPUSH
26913: CALL_OW 12
26917: ST_TO_ADDR
// vc_control := [ control_manual , control_computer ] [ rand ( 1 , 2 ) ] ;
26918: LD_ADDR_OWVAR 38
26922: PUSH
26923: LD_INT 1
26925: PUSH
26926: LD_INT 3
26928: PUSH
26929: EMPTY
26930: LIST
26931: LIST
26932: PUSH
26933: LD_INT 1
26935: PPUSH
26936: LD_INT 2
26938: PPUSH
26939: CALL_OW 12
26943: ARRAY
26944: ST_TO_ADDR
// vc_weapon := [ ru_heavy_machine_gun , ru_gatling_gun , ru_gun , ru_heavy_gun , ru_siberium_rocket , ru_rocket ] [ rand ( 1 , 6 ) ] ;
26945: LD_ADDR_OWVAR 40
26949: PUSH
26950: LD_INT 42
26952: PUSH
26953: LD_INT 43
26955: PUSH
26956: LD_INT 44
26958: PUSH
26959: LD_INT 46
26961: PUSH
26962: LD_INT 48
26964: PUSH
26965: LD_INT 47
26967: PUSH
26968: EMPTY
26969: LIST
26970: LIST
26971: LIST
26972: LIST
26973: LIST
26974: LIST
26975: PUSH
26976: LD_INT 1
26978: PPUSH
26979: LD_INT 6
26981: PPUSH
26982: CALL_OW 12
26986: ARRAY
26987: ST_TO_ADDR
// end ; end ;
26988: GO 26991
26990: POP
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
26991: CALL_OW 45
26995: PPUSH
26996: LD_INT 1
26998: PPUSH
26999: CALL_OW 51
// end ;
27003: LD_VAR 0 1
27007: RET
// export invincible ; every 1 do
27008: GO 27010
27010: DISABLE
// invincible := [ ] ;
27011: LD_ADDR_EXP 60
27015: PUSH
27016: EMPTY
27017: ST_TO_ADDR
27018: END
// every 10 do var i ;
27019: GO 27021
27021: DISABLE
27022: LD_INT 0
27024: PPUSH
// begin enable ;
27025: ENABLE
// if not invincible then
27026: LD_EXP 60
27030: NOT
27031: IFFALSE 27035
// exit ;
27033: GO 27079
// for i in invincible do
27035: LD_ADDR_VAR 0 1
27039: PUSH
27040: LD_EXP 60
27044: PUSH
27045: FOR_IN
27046: IFFALSE 27077
// if GetLives ( i ) < 1000 then
27048: LD_VAR 0 1
27052: PPUSH
27053: CALL_OW 256
27057: PUSH
27058: LD_INT 1000
27060: LESS
27061: IFFALSE 27075
// SetLives ( i , 1000 ) ;
27063: LD_VAR 0 1
27067: PPUSH
27068: LD_INT 1000
27070: PPUSH
27071: CALL_OW 234
27075: GO 27045
27077: POP
27078: POP
// end ;
27079: PPOPN 1
27081: END
// export function HackInvincible ; var i ; begin
27082: LD_INT 0
27084: PPUSH
27085: PPUSH
// for i in FilterAllUnits ( [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ) do
27086: LD_ADDR_VAR 0 2
27090: PUSH
27091: LD_INT 2
27093: PUSH
27094: LD_INT 21
27096: PUSH
27097: LD_INT 1
27099: PUSH
27100: EMPTY
27101: LIST
27102: LIST
27103: PUSH
27104: LD_INT 21
27106: PUSH
27107: LD_INT 2
27109: PUSH
27110: EMPTY
27111: LIST
27112: LIST
27113: PUSH
27114: EMPTY
27115: LIST
27116: LIST
27117: LIST
27118: PPUSH
27119: CALL_OW 69
27123: PUSH
27124: FOR_IN
27125: IFFALSE 27186
// if IsSelected ( i ) then
27127: LD_VAR 0 2
27131: PPUSH
27132: CALL_OW 306
27136: IFFALSE 27184
// begin if i in invincible then
27138: LD_VAR 0 2
27142: PUSH
27143: LD_EXP 60
27147: IN
27148: IFFALSE 27168
// invincible := invincible diff i else
27150: LD_ADDR_EXP 60
27154: PUSH
27155: LD_EXP 60
27159: PUSH
27160: LD_VAR 0 2
27164: DIFF
27165: ST_TO_ADDR
27166: GO 27184
// invincible := invincible union i ;
27168: LD_ADDR_EXP 60
27172: PUSH
27173: LD_EXP 60
27177: PUSH
27178: LD_VAR 0 2
27182: UNION
27183: ST_TO_ADDR
// end ;
27184: GO 27124
27186: POP
27187: POP
// end ;
27188: LD_VAR 0 1
27192: RET
// export function HackInvisible ; var i , j ; begin
27193: LD_INT 0
27195: PPUSH
27196: PPUSH
27197: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
27198: LD_ADDR_VAR 0 2
27202: PUSH
27203: LD_INT 21
27205: PUSH
27206: LD_INT 1
27208: PUSH
27209: EMPTY
27210: LIST
27211: LIST
27212: PPUSH
27213: CALL_OW 69
27217: PUSH
27218: FOR_IN
27219: IFFALSE 27243
// if IsSelected ( i ) then
27221: LD_VAR 0 2
27225: PPUSH
27226: CALL_OW 306
27230: IFFALSE 27241
// begin ComForceInvisible ( i ) ;
27232: LD_VAR 0 2
27236: PPUSH
27237: CALL_OW 496
// end ;
27241: GO 27218
27243: POP
27244: POP
// end ;
27245: LD_VAR 0 1
27249: RET
// export function HackChangeYourSide ; begin
27250: LD_INT 0
27252: PPUSH
// if your_side = 8 then
27253: LD_OWVAR 2
27257: PUSH
27258: LD_INT 8
27260: EQUAL
27261: IFFALSE 27273
// your_side := 0 else
27263: LD_ADDR_OWVAR 2
27267: PUSH
27268: LD_INT 0
27270: ST_TO_ADDR
27271: GO 27287
// your_side := your_side + 1 ;
27273: LD_ADDR_OWVAR 2
27277: PUSH
27278: LD_OWVAR 2
27282: PUSH
27283: LD_INT 1
27285: PLUS
27286: ST_TO_ADDR
// end ;
27287: LD_VAR 0 1
27291: RET
// export function HackChangeUnitSide ; var i , j ; begin
27292: LD_INT 0
27294: PPUSH
27295: PPUSH
27296: PPUSH
// for i in all_units do
27297: LD_ADDR_VAR 0 2
27301: PUSH
27302: LD_OWVAR 3
27306: PUSH
27307: FOR_IN
27308: IFFALSE 27386
// if IsSelected ( i ) then
27310: LD_VAR 0 2
27314: PPUSH
27315: CALL_OW 306
27319: IFFALSE 27384
// begin j := GetSide ( i ) ;
27321: LD_ADDR_VAR 0 3
27325: PUSH
27326: LD_VAR 0 2
27330: PPUSH
27331: CALL_OW 255
27335: ST_TO_ADDR
// if j = 8 then
27336: LD_VAR 0 3
27340: PUSH
27341: LD_INT 8
27343: EQUAL
27344: IFFALSE 27356
// j := 0 else
27346: LD_ADDR_VAR 0 3
27350: PUSH
27351: LD_INT 0
27353: ST_TO_ADDR
27354: GO 27370
// j := j + 1 ;
27356: LD_ADDR_VAR 0 3
27360: PUSH
27361: LD_VAR 0 3
27365: PUSH
27366: LD_INT 1
27368: PLUS
27369: ST_TO_ADDR
// SetSide ( i , j ) ;
27370: LD_VAR 0 2
27374: PPUSH
27375: LD_VAR 0 3
27379: PPUSH
27380: CALL_OW 235
// end ;
27384: GO 27307
27386: POP
27387: POP
// end ;
27388: LD_VAR 0 1
27392: RET
// export function HackFog ; begin
27393: LD_INT 0
27395: PPUSH
// FogOff ( true ) ;
27396: LD_INT 1
27398: PPUSH
27399: CALL_OW 344
// end ;
27403: LD_VAR 0 1
27407: RET
// export function HackApeman ; begin
27408: LD_INT 0
27410: PPUSH
// uc_side := your_side ;
27411: LD_ADDR_OWVAR 20
27415: PUSH
27416: LD_OWVAR 2
27420: ST_TO_ADDR
// uc_nation := 0 ;
27421: LD_ADDR_OWVAR 21
27425: PUSH
27426: LD_INT 0
27428: ST_TO_ADDR
// hc_name :=  ;
27429: LD_ADDR_OWVAR 26
27433: PUSH
27434: LD_STRING 
27436: ST_TO_ADDR
// hc_gallery :=  ;
27437: LD_ADDR_OWVAR 33
27441: PUSH
27442: LD_STRING 
27444: ST_TO_ADDR
// hc_skills := [ 0 , 0 , 0 , 0 ] ;
27445: LD_ADDR_OWVAR 31
27449: PUSH
27450: LD_INT 0
27452: PUSH
27453: LD_INT 0
27455: PUSH
27456: LD_INT 0
27458: PUSH
27459: LD_INT 0
27461: PUSH
27462: EMPTY
27463: LIST
27464: LIST
27465: LIST
27466: LIST
27467: ST_TO_ADDR
// hc_class := class_apeman ;
27468: LD_ADDR_OWVAR 28
27472: PUSH
27473: LD_INT 12
27475: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateHuman , true ) ;
27476: CALL_OW 44
27480: PPUSH
27481: LD_INT 1
27483: PPUSH
27484: CALL_OW 51
// end ;
27488: LD_VAR 0 1
27492: RET
// export function HackBoom ; begin
27493: LD_INT 0
27495: PPUSH
// uc_side := your_side ;
27496: LD_ADDR_OWVAR 20
27500: PUSH
27501: LD_OWVAR 2
27505: ST_TO_ADDR
// uc_nation := 1 ;
27506: LD_ADDR_OWVAR 21
27510: PUSH
27511: LD_INT 1
27513: ST_TO_ADDR
// vc_chassis := us_morphling ;
27514: LD_ADDR_OWVAR 37
27518: PUSH
27519: LD_INT 5
27521: ST_TO_ADDR
// vc_engine := engine_siberite ;
27522: LD_ADDR_OWVAR 39
27526: PUSH
27527: LD_INT 3
27529: ST_TO_ADDR
// vc_control := control_computer ;
27530: LD_ADDR_OWVAR 38
27534: PUSH
27535: LD_INT 3
27537: ST_TO_ADDR
// vc_weapon := us_siberium_rocket ;
27538: LD_ADDR_OWVAR 40
27542: PUSH
27543: LD_INT 8
27545: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
27546: CALL_OW 45
27550: PPUSH
27551: LD_INT 1
27553: PPUSH
27554: CALL_OW 51
// end ;
27558: LD_VAR 0 1
27562: RET
