// export You , Amici , Amici2 , Arabi ; export everybody ; export macmilanUnitsDeadCounter ; starting begin You = 3 ;
   0: LD_ADDR_EXP 1
   4: PUSH
   5: LD_INT 3
   7: ST_TO_ADDR
// Amici = 1 ;
   8: LD_ADDR_EXP 2
  12: PUSH
  13: LD_INT 1
  15: ST_TO_ADDR
// Arabi = 2 ;
  16: LD_ADDR_EXP 4
  20: PUSH
  21: LD_INT 2
  23: ST_TO_ADDR
// Amici2 = 4 ;
  24: LD_ADDR_EXP 3
  28: PUSH
  29: LD_INT 4
  31: ST_TO_ADDR
// RandomizeAll ;
  32: CALL_OW 11
// debug_strings = [ ] ;
  36: LD_ADDR_OWVAR 48
  40: PUSH
  41: EMPTY
  42: ST_TO_ADDR
// InitBc ;
  43: CALL_OW 21
// InitHc ;
  47: CALL_OW 19
// InitUc ;
  51: CALL_OW 18
// InitVc ;
  55: CALL_OW 20
// macmilanUnitsDeadCounter := 0 ;
  59: LD_ADDR_EXP 6
  63: PUSH
  64: LD_INT 0
  66: ST_TO_ADDR
// SET_DIFFICULTY ;
  67: CALL 11134 0 0
// load_postav ;
  71: CALL 1304 0 0
// load_promenne ;
  75: CALL 1573 0 0
// vytvor_araby ;
  79: CALL 7712 0 0
// vytvor_amiky ;
  83: CALL 7971 0 0
// cislo_baze = vyber_misto_pro_zakladnu ;
  87: LD_ADDR_EXP 9
  91: PUSH
  92: CALL 1713 0 0
  96: ST_TO_ADDR
// place_resource ;
  97: CALL 4453 0 0
// Ru_enter = vyber_lidi_pro_misi ;
 101: LD_ADDR_EXP 10
 105: PUSH
 106: CALL 5565 0 0
 110: ST_TO_ADDR
// create_first_utok ;
 111: CALL 8911 0 0
// create_second_utok ;
 115: CALL 9171 0 0
// create_third_utok ;
 119: CALL 9587 0 0
// create_rusky_konvoj ( Ru_enter ) ;
 123: LD_EXP 10
 127: PPUSH
 128: CALL 6976 0 1
// placni_rusy_na_zacatek ;
 132: CALL 4539 0 0
// InGameOff ;
 136: CALL_OW 9
// end ;
 140: END
// on UnitDestroyed ( un ) do begin if un = bur then
 141: LD_VAR 0 1
 145: PUSH
 146: LD_EXP 12
 150: EQUAL
 151: IFFALSE 160
// YouLost ( Burlak ) ;
 153: LD_STRING Burlak
 155: PPUSH
 156: CALL_OW 104
// if GetSide ( un ) = 4 then
 160: LD_VAR 0 1
 164: PPUSH
 165: CALL_OW 255
 169: PUSH
 170: LD_INT 4
 172: EQUAL
 173: IFFALSE 198
// begin macmilanUnitsDeadCounter := macmilanUnitsDeadCounter + 1 ;
 175: LD_ADDR_EXP 6
 179: PUSH
 180: LD_EXP 6
 184: PUSH
 185: LD_INT 1
 187: PLUS
 188: ST_TO_ADDR
// SA_MeatGrinder ( macmilanUnitsDeadCounter ) ;
 189: LD_EXP 6
 193: PPUSH
 194: CALL 21246 0 1
// end ; end ;
 198: PPOPN 1
 200: END
// export function prohra_vedci ; begin
 201: LD_INT 0
 203: PPUSH
// YouLost ( Scientists ) ;
 204: LD_STRING Scientists
 206: PPUSH
 207: CALL_OW 104
// end ;
 211: LD_VAR 0 1
 215: RET
// on EndTheMissionRaised ( void ) do begin end_the_mission_allowed := false ;
 216: LD_ADDR_OWVAR 57
 220: PUSH
 221: LD_INT 0
 223: ST_TO_ADDR
// konec_mise ;
 224: CALL 231 0 0
// end ;
 228: PPOPN 1
 230: END
// export function konec_mise ; var i , pom , pom1 ; var drv ; var all_people ; var plab ; var medal1 , medal2 , medal3 ; begin
 231: LD_INT 0
 233: PPUSH
 234: PPUSH
 235: PPUSH
 236: PPUSH
 237: PPUSH
 238: PPUSH
 239: PPUSH
 240: PPUSH
 241: PPUSH
 242: PPUSH
// medal1 := false ;
 243: LD_ADDR_VAR 0 8
 247: PUSH
 248: LD_INT 0
 250: ST_TO_ADDR
// medal2 := false ;
 251: LD_ADDR_VAR 0 9
 255: PUSH
 256: LD_INT 0
 258: ST_TO_ADDR
// medal3 := false ;
 259: LD_ADDR_VAR 0 10
 263: PUSH
 264: LD_INT 0
 266: ST_TO_ADDR
// DisableExclamations ;
 267: CALL_OW 474
// gained_medals := [ ] ;
 271: LD_ADDR_OWVAR 61
 275: PUSH
 276: EMPTY
 277: ST_TO_ADDR
// missing_medals := [ ] ;
 278: LD_ADDR_OWVAR 62
 282: PUSH
 283: EMPTY
 284: ST_TO_ADDR
// if IsOK ( masha ) and GetSide ( masha ) = You then
 285: LD_EXP 11
 289: PPUSH
 290: CALL_OW 302
 294: PUSH
 295: LD_EXP 11
 299: PPUSH
 300: CALL_OW 255
 304: PUSH
 305: LD_EXP 1
 309: EQUAL
 310: AND
 311: IFFALSE 333
// begin AddMedal ( Masha , 1 ) ;
 313: LD_STRING Masha
 315: PPUSH
 316: LD_INT 1
 318: PPUSH
 319: CALL_OW 101
// medal1 := true ;
 323: LD_ADDR_VAR 0 8
 327: PUSH
 328: LD_INT 1
 330: ST_TO_ADDR
// end else
 331: GO 344
// AddMedal ( Masha , - 1 ) ;
 333: LD_STRING Masha
 335: PPUSH
 336: LD_INT 1
 338: NEG
 339: PPUSH
 340: CALL_OW 101
// plab = 0 ;
 344: LD_ADDR_VAR 0 7
 348: PUSH
 349: LD_INT 0
 351: ST_TO_ADDR
// for i in [ Am_lab1 , Am_lab2 , Am_lab3 ] do
 352: LD_ADDR_VAR 0 2
 356: PUSH
 357: LD_INT 48
 359: PUSH
 360: LD_INT 55
 362: PUSH
 363: LD_INT 56
 365: PUSH
 366: EMPTY
 367: LIST
 368: LIST
 369: LIST
 370: PUSH
 371: FOR_IN
 372: IFFALSE 407
// if GetSide ( i ) = You then
 374: LD_VAR 0 2
 378: PPUSH
 379: CALL_OW 255
 383: PUSH
 384: LD_EXP 1
 388: EQUAL
 389: IFFALSE 405
// plab = plab + 1 ;
 391: LD_ADDR_VAR 0 7
 395: PUSH
 396: LD_VAR 0 7
 400: PUSH
 401: LD_INT 1
 403: PLUS
 404: ST_TO_ADDR
 405: GO 371
 407: POP
 408: POP
// if plab >= 3 then
 409: LD_VAR 0 7
 413: PUSH
 414: LD_INT 3
 416: GREATEREQUAL
 417: IFFALSE 439
// begin AddMedal ( Capture , 1 ) ;
 419: LD_STRING Capture
 421: PPUSH
 422: LD_INT 1
 424: PPUSH
 425: CALL_OW 101
// medal2 := true ;
 429: LD_ADDR_VAR 0 9
 433: PUSH
 434: LD_INT 1
 436: ST_TO_ADDR
// end else
 437: GO 450
// AddMedal ( Capture , - 1 ) ;
 439: LD_STRING Capture
 441: PPUSH
 442: LD_INT 1
 444: NEG
 445: PPUSH
 446: CALL_OW 101
// if GetTech ( tech_TauRad , You ) = state_researched or GetTech ( tech_SpacAnom , You ) = state_researched then
 450: LD_INT 28
 452: PPUSH
 453: LD_EXP 1
 457: PPUSH
 458: CALL_OW 321
 462: PUSH
 463: LD_INT 2
 465: EQUAL
 466: PUSH
 467: LD_INT 29
 469: PPUSH
 470: LD_EXP 1
 474: PPUSH
 475: CALL_OW 321
 479: PUSH
 480: LD_INT 2
 482: EQUAL
 483: OR
 484: IFFALSE 506
// begin AddMedal ( Invention , 1 ) ;
 486: LD_STRING Invention
 488: PPUSH
 489: LD_INT 1
 491: PPUSH
 492: CALL_OW 101
// medal3 := true ;
 496: LD_ADDR_VAR 0 10
 500: PUSH
 501: LD_INT 1
 503: ST_TO_ADDR
// end else
 504: GO 517
// AddMedal ( Invention , - 1 ) ;
 506: LD_STRING Invention
 508: PPUSH
 509: LD_INT 1
 511: NEG
 512: PPUSH
 513: CALL_OW 101
// SA_EndMission ( 3 , 9 , medal1 , medal2 , medal3 ) ;
 517: LD_INT 3
 519: PPUSH
 520: LD_INT 9
 522: PPUSH
 523: LD_VAR 0 8
 527: PPUSH
 528: LD_VAR 0 9
 532: PPUSH
 533: LD_VAR 0 10
 537: PPUSH
 538: CALL 21266 0 5
// GiveMedals ( Main ) ;
 542: LD_STRING Main
 544: PPUSH
 545: CALL_OW 102
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
 549: LD_ADDR_VAR 0 3
 553: PUSH
 554: LD_INT 22
 556: PUSH
 557: LD_EXP 1
 561: PUSH
 562: EMPTY
 563: LIST
 564: LIST
 565: PUSH
 566: LD_INT 21
 568: PUSH
 569: LD_INT 1
 571: PUSH
 572: EMPTY
 573: LIST
 574: LIST
 575: PUSH
 576: EMPTY
 577: LIST
 578: LIST
 579: PPUSH
 580: CALL_OW 69
 584: ST_TO_ADDR
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
 585: LD_ADDR_VAR 0 4
 589: PUSH
 590: LD_INT 22
 592: PUSH
 593: LD_EXP 1
 597: PUSH
 598: EMPTY
 599: LIST
 600: LIST
 601: PUSH
 602: LD_INT 21
 604: PUSH
 605: LD_INT 2
 607: PUSH
 608: EMPTY
 609: LIST
 610: LIST
 611: PUSH
 612: EMPTY
 613: LIST
 614: LIST
 615: PPUSH
 616: CALL_OW 69
 620: ST_TO_ADDR
// for i in pom1 do
 621: LD_ADDR_VAR 0 2
 625: PUSH
 626: LD_VAR 0 4
 630: PUSH
 631: FOR_IN
 632: IFFALSE 691
// if IsDrivenBy ( i ) then
 634: LD_VAR 0 2
 638: PPUSH
 639: CALL_OW 311
 643: IFFALSE 689
// begin drv = IsDrivenBy ( i ) ;
 645: LD_ADDR_VAR 0 5
 649: PUSH
 650: LD_VAR 0 2
 654: PPUSH
 655: CALL_OW 311
 659: ST_TO_ADDR
// if not ( drv in pom ) then
 660: LD_VAR 0 5
 664: PUSH
 665: LD_VAR 0 3
 669: IN
 670: NOT
 671: IFFALSE 689
// pom = pom ^ drv ;
 673: LD_ADDR_VAR 0 3
 677: PUSH
 678: LD_VAR 0 3
 682: PUSH
 683: LD_VAR 0 5
 687: ADD
 688: ST_TO_ADDR
// end ;
 689: GO 631
 691: POP
 692: POP
// all_people = pom ;
 693: LD_ADDR_VAR 0 6
 697: PUSH
 698: LD_VAR 0 3
 702: ST_TO_ADDR
// all_people = all_people diff UnitFilter ( all_people , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_soldier ] ] ) ;
 703: LD_ADDR_VAR 0 6
 707: PUSH
 708: LD_VAR 0 6
 712: PUSH
 713: LD_VAR 0 6
 717: PPUSH
 718: LD_INT 2
 720: PUSH
 721: LD_INT 25
 723: PUSH
 724: LD_INT 12
 726: PUSH
 727: EMPTY
 728: LIST
 729: LIST
 730: PUSH
 731: LD_INT 25
 733: PUSH
 734: LD_INT 16
 736: PUSH
 737: EMPTY
 738: LIST
 739: LIST
 740: PUSH
 741: LD_INT 25
 743: PUSH
 744: LD_INT 15
 746: PUSH
 747: EMPTY
 748: LIST
 749: LIST
 750: PUSH
 751: EMPTY
 752: LIST
 753: LIST
 754: LIST
 755: LIST
 756: PPUSH
 757: CALL_OW 72
 761: DIFF
 762: ST_TO_ADDR
// RewardPeople ( all_people ) ;
 763: LD_VAR 0 6
 767: PPUSH
 768: CALL_OW 43
// SaveCharacters ( bur , Burlak ) ;
 772: LD_EXP 12
 776: PPUSH
 777: LD_STRING Burlak
 779: PPUSH
 780: CALL_OW 38
// SaveCharacters ( dol , Dolgov ) ;
 784: LD_EXP 13
 788: PPUSH
 789: LD_STRING Dolgov
 791: PPUSH
 792: CALL_OW 38
// SaveCharacters ( kapisto , Kapitsova ) ;
 796: LD_EXP 14
 800: PPUSH
 801: LD_STRING Kapitsova
 803: PPUSH
 804: CALL_OW 38
// SaveCharacters ( petro , Petrosyan ) ;
 808: LD_EXP 15
 812: PPUSH
 813: LD_STRING Petrosyan
 815: PPUSH
 816: CALL_OW 38
// SaveCharacters ( pop , Popov ) ;
 820: LD_EXP 16
 824: PPUSH
 825: LD_STRING Popov
 827: PPUSH
 828: CALL_OW 38
// SaveCharacters ( bel , Belkov ) ;
 832: LD_EXP 17
 836: PPUSH
 837: LD_STRING Belkov
 839: PPUSH
 840: CALL_OW 38
// SaveCharacters ( gny , Gnyevko ) ;
 844: LD_EXP 18
 848: PPUSH
 849: LD_STRING Gnyevko
 851: PPUSH
 852: CALL_OW 38
// SaveCharacters ( kiri , Kirilenkova ) ;
 856: LD_EXP 19
 860: PPUSH
 861: LD_STRING Kirilenkova
 863: PPUSH
 864: CALL_OW 38
// SaveCharacters ( koval , Kovalyuk ) ;
 868: LD_EXP 20
 872: PPUSH
 873: LD_STRING Kovalyuk
 875: PPUSH
 876: CALL_OW 38
// SaveCharacters ( schol , Scholtze ) ;
 880: LD_EXP 21
 884: PPUSH
 885: LD_STRING Scholtze
 887: PPUSH
 888: CALL_OW 38
// SaveCharacters ( kuzmov , Kuzmov ) ;
 892: LD_EXP 22
 896: PPUSH
 897: LD_STRING Kuzmov
 899: PPUSH
 900: CALL_OW 38
// SaveCharacters ( karam , Karamazov ) ;
 904: LD_EXP 23
 908: PPUSH
 909: LD_STRING Karamazov
 911: PPUSH
 912: CALL_OW 38
// SaveCharacters ( petrov , Petrovova ) ;
 916: LD_EXP 24
 920: PPUSH
 921: LD_STRING Petrovova
 923: PPUSH
 924: CALL_OW 38
// SaveCharacters ( gleb , Gleb ) ;
 928: LD_EXP 25
 932: PPUSH
 933: LD_STRING Gleb
 935: PPUSH
 936: CALL_OW 38
// SaveCharacters ( lipsch , Lipschin ) ;
 940: LD_EXP 26
 944: PPUSH
 945: LD_STRING Lipschin
 947: PPUSH
 948: CALL_OW 38
// SaveCharacters ( tito , Titov ) ;
 952: LD_EXP 27
 956: PPUSH
 957: LD_STRING Titov
 959: PPUSH
 960: CALL_OW 38
// SaveCharacters ( xavier , Xavier ) ;
 964: LD_EXP 28
 968: PPUSH
 969: LD_STRING Xavier
 971: PPUSH
 972: CALL_OW 38
// SaveCharacters ( obluk , Oblukov ) ;
 976: LD_EXP 29
 980: PPUSH
 981: LD_STRING Oblukov
 983: PPUSH
 984: CALL_OW 38
// SaveCharacters ( kozlov , Kozlov ) ;
 988: LD_EXP 30
 992: PPUSH
 993: LD_STRING Kozlov
 995: PPUSH
 996: CALL_OW 38
// if plab >= 2 then
1000: LD_VAR 0 7
1004: PUSH
1005: LD_INT 2
1007: GREATEREQUAL
1008: IFFALSE 1022
// SaveVariable ( true , LabCaptured ) else
1010: LD_INT 1
1012: PPUSH
1013: LD_STRING LabCaptured
1015: PPUSH
1016: CALL_OW 39
1020: GO 1032
// SaveVariable ( false , LabCaptured ) ;
1022: LD_INT 0
1024: PPUSH
1025: LD_STRING LabCaptured
1027: PPUSH
1028: CALL_OW 39
// if not IsOK ( masha ) then
1032: LD_EXP 11
1036: PPUSH
1037: CALL_OW 302
1041: NOT
1042: IFFALSE 1051
// DeleteVariable ( Masha ) ;
1044: LD_STRING Masha
1046: PPUSH
1047: CALL_OW 41
// SaveVariable ( GetTech ( tech_TauRad , You ) , shifting ) ;
1051: LD_INT 28
1053: PPUSH
1054: LD_EXP 1
1058: PPUSH
1059: CALL_OW 321
1063: PPUSH
1064: LD_STRING shifting
1066: PPUSH
1067: CALL_OW 39
// SaveVariable ( GetTech ( tech_SpacAnom , You ) , slowing ) ;
1071: LD_INT 29
1073: PPUSH
1074: LD_EXP 1
1078: PPUSH
1079: CALL_OW 321
1083: PPUSH
1084: LD_STRING slowing
1086: PPUSH
1087: CALL_OW 39
// pom := [ ] ;
1091: LD_ADDR_VAR 0 3
1095: PUSH
1096: EMPTY
1097: ST_TO_ADDR
// for i in everybody do
1098: LD_ADDR_VAR 0 2
1102: PUSH
1103: LD_EXP 5
1107: PUSH
1108: FOR_IN
1109: IFFALSE 1144
// if GetLives ( i ) > 0 then
1111: LD_VAR 0 2
1115: PPUSH
1116: CALL_OW 256
1120: PUSH
1121: LD_INT 0
1123: GREATER
1124: IFFALSE 1142
// pom := pom ^ i ;
1126: LD_ADDR_VAR 0 3
1130: PUSH
1131: LD_VAR 0 3
1135: PUSH
1136: LD_VAR 0 2
1140: ADD
1141: ST_TO_ADDR
1142: GO 1108
1144: POP
1145: POP
// pom := pom diff [ bur , dol , kapisto , petro , pop , bel , gny , kiri , koval , schol , kuzmov , karam , petrov , gleb , lipsch , tito , xavier , obluk , kozlov , 0 ] ;
1146: LD_ADDR_VAR 0 3
1150: PUSH
1151: LD_VAR 0 3
1155: PUSH
1156: LD_EXP 12
1160: PUSH
1161: LD_EXP 13
1165: PUSH
1166: LD_EXP 14
1170: PUSH
1171: LD_EXP 15
1175: PUSH
1176: LD_EXP 16
1180: PUSH
1181: LD_EXP 17
1185: PUSH
1186: LD_EXP 18
1190: PUSH
1191: LD_EXP 19
1195: PUSH
1196: LD_EXP 20
1200: PUSH
1201: LD_EXP 21
1205: PUSH
1206: LD_EXP 22
1210: PUSH
1211: LD_EXP 23
1215: PUSH
1216: LD_EXP 24
1220: PUSH
1221: LD_EXP 25
1225: PUSH
1226: LD_EXP 26
1230: PUSH
1231: LD_EXP 27
1235: PUSH
1236: LD_EXP 28
1240: PUSH
1241: LD_EXP 29
1245: PUSH
1246: LD_EXP 30
1250: PUSH
1251: LD_INT 0
1253: PUSH
1254: EMPTY
1255: LIST
1256: LIST
1257: LIST
1258: LIST
1259: LIST
1260: LIST
1261: LIST
1262: LIST
1263: LIST
1264: LIST
1265: LIST
1266: LIST
1267: LIST
1268: LIST
1269: LIST
1270: LIST
1271: LIST
1272: LIST
1273: LIST
1274: LIST
1275: DIFF
1276: ST_TO_ADDR
// SaveCharacters ( pom , survivors3 ) ;
1277: LD_VAR 0 3
1281: PPUSH
1282: LD_STRING survivors3
1284: PPUSH
1285: CALL_OW 38
// YouWin ( ) ;
1289: CALL_OW 103
// EnableExclamations ;
1293: CALL_OW 473
// exit ;
1297: GO 1299
// end ;
1299: LD_VAR 0 1
1303: RET
// function load_postav ; begin
1304: LD_INT 0
1306: PPUSH
// pop = nacti_osobu ( Popov ) ;
1307: LD_ADDR_EXP 16
1311: PUSH
1312: LD_STRING Popov
1314: PPUSH
1315: CALL 7927 0 1
1319: ST_TO_ADDR
// SetSide ( pop , You ) ;
1320: LD_EXP 16
1324: PPUSH
1325: LD_EXP 1
1329: PPUSH
1330: CALL_OW 235
// dol = nacti_osobu ( Dolgov ) ;
1334: LD_ADDR_EXP 13
1338: PUSH
1339: LD_STRING Dolgov
1341: PPUSH
1342: CALL 7927 0 1
1346: ST_TO_ADDR
// bur = nacti_osobu ( Burlak ) ;
1347: LD_ADDR_EXP 12
1351: PUSH
1352: LD_STRING Burlak
1354: PPUSH
1355: CALL 7927 0 1
1359: ST_TO_ADDR
// kapisto = nacti_osobu ( Kapitsova ) ;
1360: LD_ADDR_EXP 14
1364: PUSH
1365: LD_STRING Kapitsova
1367: PPUSH
1368: CALL 7927 0 1
1372: ST_TO_ADDR
// petro = nacti_osobu ( Petrosyan ) ;
1373: LD_ADDR_EXP 15
1377: PUSH
1378: LD_STRING Petrosyan
1380: PPUSH
1381: CALL 7927 0 1
1385: ST_TO_ADDR
// bel = nacti_osobu ( Belkov ) ;
1386: LD_ADDR_EXP 17
1390: PUSH
1391: LD_STRING Belkov
1393: PPUSH
1394: CALL 7927 0 1
1398: ST_TO_ADDR
// gny = nacti_osobu ( Gnyevko ) ;
1399: LD_ADDR_EXP 18
1403: PUSH
1404: LD_STRING Gnyevko
1406: PPUSH
1407: CALL 7927 0 1
1411: ST_TO_ADDR
// kiri = nacti_osobu ( Kirilenkova ) ;
1412: LD_ADDR_EXP 19
1416: PUSH
1417: LD_STRING Kirilenkova
1419: PPUSH
1420: CALL 7927 0 1
1424: ST_TO_ADDR
// koval = nacti_osobu ( Kovalyuk ) ;
1425: LD_ADDR_EXP 20
1429: PUSH
1430: LD_STRING Kovalyuk
1432: PPUSH
1433: CALL 7927 0 1
1437: ST_TO_ADDR
// schol = nacti_osobu ( Scholtze ) ;
1438: LD_ADDR_EXP 21
1442: PUSH
1443: LD_STRING Scholtze
1445: PPUSH
1446: CALL 7927 0 1
1450: ST_TO_ADDR
// kuzmov = nacti_osobu ( Kuzmov ) ;
1451: LD_ADDR_EXP 22
1455: PUSH
1456: LD_STRING Kuzmov
1458: PPUSH
1459: CALL 7927 0 1
1463: ST_TO_ADDR
// karam = nacti_osobu ( Karamazov ) ;
1464: LD_ADDR_EXP 23
1468: PUSH
1469: LD_STRING Karamazov
1471: PPUSH
1472: CALL 7927 0 1
1476: ST_TO_ADDR
// petrov = nacti_osobu ( Petrovova ) ;
1477: LD_ADDR_EXP 24
1481: PUSH
1482: LD_STRING Petrovova
1484: PPUSH
1485: CALL 7927 0 1
1489: ST_TO_ADDR
// gleb = nacti_osobu ( Gleb ) ;
1490: LD_ADDR_EXP 25
1494: PUSH
1495: LD_STRING Gleb
1497: PPUSH
1498: CALL 7927 0 1
1502: ST_TO_ADDR
// lipsch = nacti_osobu ( Lipschin ) ;
1503: LD_ADDR_EXP 26
1507: PUSH
1508: LD_STRING Lipschin
1510: PPUSH
1511: CALL 7927 0 1
1515: ST_TO_ADDR
// tito = nacti_osobu ( Titov ) ;
1516: LD_ADDR_EXP 27
1520: PUSH
1521: LD_STRING Titov
1523: PPUSH
1524: CALL 7927 0 1
1528: ST_TO_ADDR
// xavier = nacti_osobu ( Xavier ) ;
1529: LD_ADDR_EXP 28
1533: PUSH
1534: LD_STRING Xavier
1536: PPUSH
1537: CALL 7927 0 1
1541: ST_TO_ADDR
// obluk = nacti_osobu ( Oblukov ) ;
1542: LD_ADDR_EXP 29
1546: PUSH
1547: LD_STRING Oblukov
1549: PPUSH
1550: CALL 7927 0 1
1554: ST_TO_ADDR
// kozlov = nacti_osobu ( Kozlov ) ;
1555: LD_ADDR_EXP 30
1559: PUSH
1560: LD_STRING Kozlov
1562: PPUSH
1563: CALL 7927 0 1
1567: ST_TO_ADDR
// end ;
1568: LD_VAR 0 1
1572: RET
// function load_promenne ; begin
1573: LD_INT 0
1575: PPUSH
// masha_l = LoadVariable ( Masha , [ ru_heavy_tracked , engine_combustion , control_manual , ru_heavy_gun ] ) ;
1576: LD_ADDR_EXP 53
1580: PUSH
1581: LD_STRING Masha
1583: PPUSH
1584: LD_INT 24
1586: PUSH
1587: LD_INT 1
1589: PUSH
1590: LD_INT 1
1592: PUSH
1593: LD_INT 46
1595: PUSH
1596: EMPTY
1597: LIST
1598: LIST
1599: LIST
1600: LIST
1601: PPUSH
1602: CALL_OW 30
1606: ST_TO_ADDR
// maccepted = LoadVariable ( MercHandedover , true ) ;
1607: LD_ADDR_EXP 54
1611: PUSH
1612: LD_STRING MercHandedover
1614: PPUSH
1615: LD_INT 1
1617: PPUSH
1618: CALL_OW 30
1622: ST_TO_ADDR
// mhandedover = not LoadVariable ( GenscherBetrayed , false ) ;
1623: LD_ADDR_EXP 55
1627: PUSH
1628: LD_STRING GenscherBetrayed
1630: PPUSH
1631: LD_INT 0
1633: PPUSH
1634: CALL_OW 30
1638: NOT
1639: ST_TO_ADDR
// end ; end_of_file
1640: LD_VAR 0 1
1644: RET
// var kecy ; export KECY_s_arabama ; var taurad ; var uz_byly_kecy_o_mashe ; every 0 0$0.1 do var i ;
1645: GO 1647
1647: DISABLE
1648: LD_INT 0
1650: PPUSH
// begin KECY_s_arabama = false ;
1651: LD_ADDR_EXP 7
1655: PUSH
1656: LD_INT 0
1658: ST_TO_ADDR
// taurad = false ;
1659: LD_ADDR_LOC 2
1663: PUSH
1664: LD_INT 0
1666: ST_TO_ADDR
// uz_byly_kecy_o_mashe = false ;
1667: LD_ADDR_LOC 3
1671: PUSH
1672: LD_INT 0
1674: ST_TO_ADDR
// for i in [ 1 , 2 , 3 , 4 ] do
1675: LD_ADDR_VAR 0 1
1679: PUSH
1680: LD_INT 1
1682: PUSH
1683: LD_INT 2
1685: PUSH
1686: LD_INT 3
1688: PUSH
1689: LD_INT 4
1691: PUSH
1692: EMPTY
1693: LIST
1694: LIST
1695: LIST
1696: LIST
1697: PUSH
1698: FOR_IN
1699: IFFALSE 1708
// disable ( i ) ;
1701: LD_VAR 0 1
1705: DISABLE_MARKED
1706: GO 1698
1708: POP
1709: POP
// end ;
1710: PPOPN 1
1712: END
// export function vyber_misto_pro_zakladnu ; var pom ; begin
1713: LD_INT 0
1715: PPUSH
1716: PPUSH
// pom = Query ( QStarting ) ;
1717: LD_ADDR_VAR 0 2
1721: PUSH
1722: LD_STRING QStarting
1724: PPUSH
1725: CALL_OW 97
1729: ST_TO_ADDR
// case pom of 1 :
1730: LD_VAR 0 2
1734: PUSH
1735: LD_INT 1
1737: DOUBLE
1738: EQUAL
1739: IFTRUE 1743
1741: GO 1754
1743: POP
// Ru_base = base1 ; 2 :
1744: LD_ADDR_EXP 8
1748: PUSH
1749: LD_INT 1
1751: ST_TO_ADDR
1752: GO 1793
1754: LD_INT 2
1756: DOUBLE
1757: EQUAL
1758: IFTRUE 1762
1760: GO 1773
1762: POP
// Ru_base = base2 ; 3 :
1763: LD_ADDR_EXP 8
1767: PUSH
1768: LD_INT 2
1770: ST_TO_ADDR
1771: GO 1793
1773: LD_INT 3
1775: DOUBLE
1776: EQUAL
1777: IFTRUE 1781
1779: GO 1792
1781: POP
// Ru_base = base3 ; end ;
1782: LD_ADDR_EXP 8
1786: PUSH
1787: LD_INT 3
1789: ST_TO_ADDR
1790: GO 1793
1792: POP
// result = pom ;
1793: LD_ADDR_VAR 0 1
1797: PUSH
1798: LD_VAR 0 2
1802: ST_TO_ADDR
// end ;
1803: LD_VAR 0 1
1807: RET
// export function chmo1 ; begin
1808: LD_INT 0
1810: PPUSH
// wait ( 0 0$0.5 ) ;
1811: LD_INT 18
1813: PPUSH
1814: CALL_OW 67
// SaveForQuickRestart ;
1818: CALL_OW 22
// ChangeMissionObjectives ( MStart ) ;
1822: LD_STRING MStart
1824: PPUSH
1825: CALL_OW 337
// end ;
1829: LD_VAR 0 1
1833: RET
// on Contact ( s1 , s2 ) do begin if s1 = Amici and s2 = You then
1834: LD_VAR 0 1
1838: PUSH
1839: LD_EXP 2
1843: EQUAL
1844: PUSH
1845: LD_VAR 0 2
1849: PUSH
1850: LD_EXP 1
1854: EQUAL
1855: AND
1856: IFFALSE 2045
// begin while kecy do
1858: LD_LOC 1
1862: IFFALSE 1873
// wait ( 0 0$1 ) ;
1864: LD_INT 35
1866: PPUSH
1867: CALL_OW 67
1871: GO 1858
// kecy = true ;
1873: LD_ADDR_LOC 1
1877: PUSH
1878: LD_INT 1
1880: ST_TO_ADDR
// DialogueOn ;
1881: CALL_OW 6
// Say ( Joan , DJoan-Joan-1 ) ;
1885: LD_EXP 62
1889: PPUSH
1890: LD_STRING DJoan-Joan-1
1892: PPUSH
1893: CALL_OW 88
// Say ( bur , DJoan-Bur-1 ) ;
1897: LD_EXP 12
1901: PPUSH
1902: LD_STRING DJoan-Bur-1
1904: PPUSH
1905: CALL_OW 88
// Say ( Joan , DJoan-Joan-2 ) ;
1909: LD_EXP 62
1913: PPUSH
1914: LD_STRING DJoan-Joan-2
1916: PPUSH
1917: CALL_OW 88
// Say ( bur , DJoan-Bur-2 ) ;
1921: LD_EXP 12
1925: PPUSH
1926: LD_STRING DJoan-Bur-2
1928: PPUSH
1929: CALL_OW 88
// SayRadio ( JMM , DJoan-JMM-2 ) ;
1933: LD_EXP 61
1937: PPUSH
1938: LD_STRING DJoan-JMM-2
1940: PPUSH
1941: CALL_OW 94
// Say ( bur , DJoan-Bur-3 ) ;
1945: LD_EXP 12
1949: PPUSH
1950: LD_STRING DJoan-Bur-3
1952: PPUSH
1953: CALL_OW 88
// SayRadio ( JMM , DJoan-JMM-3 ) ;
1957: LD_EXP 61
1961: PPUSH
1962: LD_STRING DJoan-JMM-3
1964: PPUSH
1965: CALL_OW 94
// DialogueOff ;
1969: CALL_OW 7
// if not KECY_s_arabama then
1973: LD_EXP 7
1977: NOT
1978: IFFALSE 2014
// begin if not maccepted then
1980: LD_EXP 54
1984: NOT
1985: IFFALSE 1992
// enable ( 1 ) else
1987: LD_INT 1
1989: ENABLE_MARKED
1990: GO 2006
// if mhandedover then
1992: LD_EXP 55
1996: IFFALSE 2003
// enable ( 2 ) else
1998: LD_INT 2
2000: ENABLE_MARKED
2001: GO 2006
// enable ( 3 ) ;
2003: LD_INT 3
2005: ENABLE_MARKED
// KECY_s_arabama = true ;
2006: LD_ADDR_EXP 7
2010: PUSH
2011: LD_INT 1
2013: ST_TO_ADDR
// end ; enable ( 4 ) ;
2014: LD_INT 4
2016: ENABLE_MARKED
// kecy = false ;
2017: LD_ADDR_LOC 1
2021: PUSH
2022: LD_INT 0
2024: ST_TO_ADDR
// Am_utoky = 1 ;
2025: LD_ADDR_EXP 71
2029: PUSH
2030: LD_INT 1
2032: ST_TO_ADDR
// ComExitBuilding ( Joan ) ;
2033: LD_EXP 62
2037: PPUSH
2038: CALL_OW 122
// disable ;
2042: DISABLE
// end else
2043: GO 2046
// enable ;
2045: ENABLE
// end ;
2046: PPOPN 2
2048: END
// every 0 0$1 marked 1 do
2049: GO 2051
2051: DISABLE
// begin wait ( 0 0$5 ) ;
2052: LD_INT 175
2054: PPUSH
2055: CALL_OW 67
// while kecy do
2059: LD_LOC 1
2063: IFFALSE 2074
// wait ( 0 0$1 ) ;
2065: LD_INT 35
2067: PPUSH
2068: CALL_OW 67
2072: GO 2059
// kecy = true ;
2074: LD_ADDR_LOC 1
2078: PUSH
2079: LD_INT 1
2081: ST_TO_ADDR
// DialogueOn ;
2082: CALL_OW 6
// Say ( diet , DArNeutral-Diet-1 ) ;
2086: LD_EXP 56
2090: PPUSH
2091: LD_STRING DArNeutral-Diet-1
2093: PPUSH
2094: CALL_OW 88
// DialogueOff ;
2098: CALL_OW 7
// kecy = false ;
2102: LD_ADDR_LOC 1
2106: PUSH
2107: LD_INT 0
2109: ST_TO_ADDR
// Arabi_vztah = 2 ;
2110: LD_ADDR_EXP 60
2114: PUSH
2115: LD_INT 2
2117: ST_TO_ADDR
// ar_leave_north ;
2118: CALL 11850 0 0
// end ;
2122: END
// every 0 0$1 marked 2 do var pom ;
2123: GO 2125
2125: DISABLE
2126: LD_INT 0
2128: PPUSH
// begin wait ( 0 0$5 ) ;
2129: LD_INT 175
2131: PPUSH
2132: CALL_OW 67
// while kecy do
2136: LD_LOC 1
2140: IFFALSE 2151
// wait ( 0 0$1 ) ;
2142: LD_INT 35
2144: PPUSH
2145: CALL_OW 67
2149: GO 2136
// kecy = true ;
2151: LD_ADDR_LOC 1
2155: PUSH
2156: LD_INT 1
2158: ST_TO_ADDR
// DialogueOn ;
2159: CALL_OW 6
// SayRadio ( diet , DArHelp-Diet-1 ) ;
2163: LD_EXP 56
2167: PPUSH
2168: LD_STRING DArHelp-Diet-1
2170: PPUSH
2171: CALL_OW 94
// pom = Query ( QArHelp ) ;
2175: LD_ADDR_VAR 0 1
2179: PUSH
2180: LD_STRING QArHelp
2182: PPUSH
2183: CALL_OW 97
2187: ST_TO_ADDR
// case pom of 1 :
2188: LD_VAR 0 1
2192: PUSH
2193: LD_INT 1
2195: DOUBLE
2196: EQUAL
2197: IFTRUE 2201
2199: GO 2252
2201: POP
// begin SayRadio ( bur , DQrArHelp#1-Bur-1 ) ;
2202: LD_EXP 12
2206: PPUSH
2207: LD_STRING DQrArHelp#1-Bur-1
2209: PPUSH
2210: CALL_OW 94
// SayRadio ( diet , DQrArHelp#1-Diet-1 ) ;
2214: LD_EXP 56
2218: PPUSH
2219: LD_STRING DQrArHelp#1-Diet-1
2221: PPUSH
2222: CALL_OW 94
// SayRadio ( bur , DQrArHelp#1-Bur-2 ) ;
2226: LD_EXP 12
2230: PPUSH
2231: LD_STRING DQrArHelp#1-Bur-2
2233: PPUSH
2234: CALL_OW 94
// SayRadio ( diet , DQrArHelp#1-Diet-2 ) ;
2238: LD_EXP 56
2242: PPUSH
2243: LD_STRING DQrArHelp#1-Diet-2
2245: PPUSH
2246: CALL_OW 94
// end ; 2 :
2250: GO 2288
2252: LD_INT 2
2254: DOUBLE
2255: EQUAL
2256: IFTRUE 2260
2258: GO 2287
2260: POP
// begin SayRadio ( bur , DQrArHelp#2-Bur-1 ) ;
2261: LD_EXP 12
2265: PPUSH
2266: LD_STRING DQrArHelp#2-Bur-1
2268: PPUSH
2269: CALL_OW 94
// SayRadio ( diet , DQrArHelp#2-Diet-1 ) ;
2273: LD_EXP 56
2277: PPUSH
2278: LD_STRING DQrArHelp#2-Diet-1
2280: PPUSH
2281: CALL_OW 94
// end ; end ;
2285: GO 2288
2287: POP
// DialogueOff ;
2288: CALL_OW 7
// kecy = false ;
2292: LD_ADDR_LOC 1
2296: PUSH
2297: LD_INT 0
2299: ST_TO_ADDR
// case pom of 1 :
2300: LD_VAR 0 1
2304: PUSH
2305: LD_INT 1
2307: DOUBLE
2308: EQUAL
2309: IFTRUE 2313
2311: GO 2328
2313: POP
// begin Arabi_vztah = 20 ;
2314: LD_ADDR_EXP 60
2318: PUSH
2319: LD_INT 20
2321: ST_TO_ADDR
// arabi_spojenci ;
2322: CALL 12052 0 0
// end ; 2 :
2326: GO 2356
2328: LD_INT 2
2330: DOUBLE
2331: EQUAL
2332: IFTRUE 2336
2334: GO 2355
2336: POP
// begin SA_NoThanksGensher ;
2337: CALL 21231 0 0
// Arabi_vztah = 3 ;
2341: LD_ADDR_EXP 60
2345: PUSH
2346: LD_INT 3
2348: ST_TO_ADDR
// arabi_north_okamzite ;
2349: CALL 11577 0 0
// end ; end ;
2353: GO 2356
2355: POP
// end ;
2356: PPOPN 1
2358: END
// every 0 0$1 marked 3 do
2359: GO 2361
2361: DISABLE
// begin wait ( 0 0$5 ) ;
2362: LD_INT 175
2364: PPUSH
2365: CALL_OW 67
// while kecy do
2369: LD_LOC 1
2373: IFFALSE 2384
// wait ( 0 0$1 ) ;
2375: LD_INT 35
2377: PPUSH
2378: CALL_OW 67
2382: GO 2369
// kecy = true ;
2384: LD_ADDR_LOC 1
2388: PUSH
2389: LD_INT 1
2391: ST_TO_ADDR
// DialogueOn ;
2392: CALL_OW 6
// SayRadio ( diet , DArHostile-Diet-1 ) ;
2396: LD_EXP 56
2400: PPUSH
2401: LD_STRING DArHostile-Diet-1
2403: PPUSH
2404: CALL_OW 94
// Arabi_vztah = 0 ;
2408: LD_ADDR_EXP 60
2412: PUSH
2413: LD_INT 0
2415: ST_TO_ADDR
// arabi_ally_amici ;
2416: CALL 12094 0 0
// DialogueOff ;
2420: CALL_OW 7
// kecy = false ;
2424: LD_ADDR_LOC 1
2428: PUSH
2429: LD_INT 0
2431: ST_TO_ADDR
// end ;
2432: END
// every 0 0$15 marked 4 do
2433: GO 2435
2435: DISABLE
// begin wait ( 0 0$20 ) ;
2436: LD_INT 700
2438: PPUSH
2439: CALL_OW 67
// while kecy do
2443: LD_LOC 1
2447: IFFALSE 2458
// wait ( 0 0$1 ) ;
2449: LD_INT 35
2451: PPUSH
2452: CALL_OW 67
2456: GO 2443
// kecy = true ;
2458: LD_ADDR_LOC 1
2462: PUSH
2463: LD_INT 1
2465: ST_TO_ADDR
// DialogueOn ;
2466: CALL_OW 6
// SayRadio ( pop , DCapture-Pop-1 ) ;
2470: LD_EXP 16
2474: PPUSH
2475: LD_STRING DCapture-Pop-1
2477: PPUSH
2478: CALL_OW 94
// ChangeMissionObjectives ( MCapture ) ;
2482: LD_STRING MCapture
2484: PPUSH
2485: CALL_OW 337
// DialogueOff ;
2489: CALL_OW 7
// kecy = false ;
2493: LD_ADDR_LOC 1
2497: PUSH
2498: LD_INT 0
2500: ST_TO_ADDR
// end ;
2501: END
// on UnitGoesToRed ( un ) do begin if un = Joan then
2502: LD_VAR 0 1
2506: PUSH
2507: LD_EXP 62
2511: EQUAL
2512: IFFALSE 2606
// begin DialogueOn ;
2514: CALL_OW 6
// CenterNowOnUnits ( Joan ) ;
2518: LD_EXP 62
2522: PPUSH
2523: CALL_OW 87
// ForceSay ( Joan , DJoanDies-Joan-1 ) ;
2527: LD_EXP 62
2531: PPUSH
2532: LD_STRING DJoanDies-Joan-1
2534: PPUSH
2535: CALL_OW 91
// SayRadio ( JMM , DJoanDies-JMM-1 ) ;
2539: LD_EXP 61
2543: PPUSH
2544: LD_STRING DJoanDies-JMM-1
2546: PPUSH
2547: CALL_OW 94
// wait ( 0 0$1 ) ;
2551: LD_INT 35
2553: PPUSH
2554: CALL_OW 67
// SetLives ( Joan , 0 ) ;
2558: LD_EXP 62
2562: PPUSH
2563: LD_INT 0
2565: PPUSH
2566: CALL_OW 234
// KillUnit ( Joan ) ;
2570: LD_EXP 62
2574: PPUSH
2575: CALL_OW 66
// DialogueOff ;
2579: CALL_OW 7
// wait ( wait_mcmillanova_pomsta [ difficulty ] ) ;
2583: LD_EXP 49
2587: PUSH
2588: LD_OWVAR 67
2592: ARRAY
2593: PPUSH
2594: CALL_OW 67
// mcmillanova_pomsta = true ;
2598: LD_ADDR_EXP 72
2602: PUSH
2603: LD_INT 1
2605: ST_TO_ADDR
// end ; enable ;
2606: ENABLE
// end ;
2607: PPOPN 1
2609: END
// export function dialog_masha_kaput ; begin
2610: LD_INT 0
2612: PPUSH
// if uz_byly_kecy_o_mashe then
2613: LD_LOC 3
2617: IFFALSE 2621
// exit ;
2619: GO 2680
// while kecy do
2621: LD_LOC 1
2625: IFFALSE 2636
// wait ( 0 0$1 ) ;
2627: LD_INT 35
2629: PPUSH
2630: CALL_OW 67
2634: GO 2621
// kecy = true ;
2636: LD_ADDR_LOC 1
2640: PUSH
2641: LD_INT 1
2643: ST_TO_ADDR
// DialogueOn ;
2644: CALL_OW 6
// Say ( bur , DMashaDies-Bur-1 ) ;
2648: LD_EXP 12
2652: PPUSH
2653: LD_STRING DMashaDies-Bur-1
2655: PPUSH
2656: CALL_OW 88
// uz_byly_kecy_o_mashe = true ;
2660: LD_ADDR_LOC 3
2664: PUSH
2665: LD_INT 1
2667: ST_TO_ADDR
// DialogueOff ;
2668: CALL_OW 7
// kecy = false ;
2672: LD_ADDR_LOC 1
2676: PUSH
2677: LD_INT 0
2679: ST_TO_ADDR
// end ;
2680: LD_VAR 0 1
2684: RET
// on VehicleCaptured ( new , auto , strana , hum ) do begin if auto = masha then
2685: LD_VAR 0 2
2689: PUSH
2690: LD_EXP 11
2694: EQUAL
2695: IFFALSE 2701
// dialog_masha_kaput ;
2697: CALL 2610 0 0
// enable ;
2701: ENABLE
// end ;
2702: PPOPN 4
2704: END
// every 0 0$3 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_lab_half ] , [ f_btype , b_lab_full ] ] ] ) > 0 do var pom , i ; var je_space ; var labc ;
2705: LD_INT 22
2707: PUSH
2708: LD_EXP 1
2712: PUSH
2713: EMPTY
2714: LIST
2715: LIST
2716: PUSH
2717: LD_INT 2
2719: PUSH
2720: LD_INT 30
2722: PUSH
2723: LD_INT 7
2725: PUSH
2726: EMPTY
2727: LIST
2728: LIST
2729: PUSH
2730: LD_INT 30
2732: PUSH
2733: LD_INT 8
2735: PUSH
2736: EMPTY
2737: LIST
2738: LIST
2739: PUSH
2740: EMPTY
2741: LIST
2742: LIST
2743: LIST
2744: PUSH
2745: EMPTY
2746: LIST
2747: LIST
2748: PPUSH
2749: CALL_OW 69
2753: PUSH
2754: LD_INT 0
2756: GREATER
2757: IFFALSE 3110
2759: GO 2761
2761: DISABLE
2762: LD_INT 0
2764: PPUSH
2765: PPUSH
2766: PPUSH
2767: PPUSH
// begin je_space = false ;
2768: LD_ADDR_VAR 0 3
2772: PUSH
2773: LD_INT 0
2775: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_lab_half ] , [ f_btype , b_lab_full ] ] ] ) ;
2776: LD_ADDR_VAR 0 1
2780: PUSH
2781: LD_INT 22
2783: PUSH
2784: LD_EXP 1
2788: PUSH
2789: EMPTY
2790: LIST
2791: LIST
2792: PUSH
2793: LD_INT 2
2795: PUSH
2796: LD_INT 30
2798: PUSH
2799: LD_INT 7
2801: PUSH
2802: EMPTY
2803: LIST
2804: LIST
2805: PUSH
2806: LD_INT 30
2808: PUSH
2809: LD_INT 8
2811: PUSH
2812: EMPTY
2813: LIST
2814: LIST
2815: PUSH
2816: EMPTY
2817: LIST
2818: LIST
2819: LIST
2820: PUSH
2821: EMPTY
2822: LIST
2823: LIST
2824: PPUSH
2825: CALL_OW 69
2829: ST_TO_ADDR
// for i in pom do
2830: LD_ADDR_VAR 0 2
2834: PUSH
2835: LD_VAR 0 1
2839: PUSH
2840: FOR_IN
2841: IFFALSE 2899
// if GetLabKind ( i , 1 ) = b_lab_spacetime or GetLabKind ( i , 2 ) = b_lab_spacetime then
2843: LD_VAR 0 2
2847: PPUSH
2848: LD_INT 1
2850: PPUSH
2851: CALL_OW 268
2855: PUSH
2856: LD_INT 14
2858: EQUAL
2859: PUSH
2860: LD_VAR 0 2
2864: PPUSH
2865: LD_INT 2
2867: PPUSH
2868: CALL_OW 268
2872: PUSH
2873: LD_INT 14
2875: EQUAL
2876: OR
2877: IFFALSE 2897
// begin je_space = true ;
2879: LD_ADDR_VAR 0 3
2883: PUSH
2884: LD_INT 1
2886: ST_TO_ADDR
// labc = i ;
2887: LD_ADDR_VAR 0 4
2891: PUSH
2892: LD_VAR 0 2
2896: ST_TO_ADDR
// end ;
2897: GO 2840
2899: POP
2900: POP
// if je_space then
2901: LD_VAR 0 3
2905: IFFALSE 3109
// begin while IsConstructed ( i ) <> 0 do
2907: LD_VAR 0 2
2911: PPUSH
2912: CALL_OW 304
2916: PUSH
2917: LD_INT 0
2919: NONEQUAL
2920: IFFALSE 2931
// wait ( 0 0$1 ) ;
2922: LD_INT 35
2924: PPUSH
2925: CALL_OW 67
2929: GO 2907
// while kecy do
2931: LD_LOC 1
2935: IFFALSE 2946
// wait ( 0 0$5 ) ;
2937: LD_INT 175
2939: PPUSH
2940: CALL_OW 67
2944: GO 2931
// kecy = true ;
2946: LD_ADDR_LOC 1
2950: PUSH
2951: LD_INT 1
2953: ST_TO_ADDR
// DialogueOn ;
2954: CALL_OW 6
// Say ( bur , DResearch-Bur-1 ) ;
2958: LD_EXP 12
2962: PPUSH
2963: LD_STRING DResearch-Bur-1
2965: PPUSH
2966: CALL_OW 88
// if IsOK ( kapisto ) then
2970: LD_EXP 14
2974: PPUSH
2975: CALL_OW 302
2979: IFFALSE 2995
// Say ( kapisto , DResearch-Kap-1 ) else
2981: LD_EXP 14
2985: PPUSH
2986: LD_STRING DResearch-Kap-1
2988: PPUSH
2989: CALL_OW 88
2993: GO 3095
// if IsOK ( petro ) then
2995: LD_EXP 15
2999: PPUSH
3000: CALL_OW 302
3004: IFFALSE 3020
// Say ( petro , DResearch-Pty-1 ) else
3006: LD_EXP 15
3010: PPUSH
3011: LD_STRING DResearch-Pty-1
3013: PPUSH
3014: CALL_OW 88
3018: GO 3095
// if IsOK ( dol ) then
3020: LD_EXP 13
3024: PPUSH
3025: CALL_OW 302
3029: IFFALSE 3045
// Say ( dol , DResearch-Dol-1 ) else
3031: LD_EXP 13
3035: PPUSH
3036: LD_STRING DResearch-Dol-1
3038: PPUSH
3039: CALL_OW 88
3043: GO 3095
// begin pom = GetPeople ( sex_male , class_scientistic , [ bur ] ) ;
3045: LD_ADDR_VAR 0 1
3049: PUSH
3050: LD_INT 1
3052: PPUSH
3053: LD_INT 4
3055: PPUSH
3056: LD_EXP 12
3060: PUSH
3061: EMPTY
3062: LIST
3063: PPUSH
3064: CALL 3113 0 3
3068: ST_TO_ADDR
// if pom <> 0 then
3069: LD_VAR 0 1
3073: PUSH
3074: LD_INT 0
3076: NONEQUAL
3077: IFFALSE 3095
// Say ( pom [ 1 ] , DResearch-RSol1-1 ) ;
3079: LD_VAR 0 1
3083: PUSH
3084: LD_INT 1
3086: ARRAY
3087: PPUSH
3088: LD_STRING DResearch-RSol1-1
3090: PPUSH
3091: CALL_OW 88
// end ; DialogueOff ;
3095: CALL_OW 7
// kecy = false ;
3099: LD_ADDR_LOC 1
3103: PUSH
3104: LD_INT 0
3106: ST_TO_ADDR
// end else
3107: GO 3110
// enable ;
3109: ENABLE
// end ;
3110: PPOPN 4
3112: END
// function GetPeople ( sex , povolani , diffseznam ) ; var pom , pom1 , pom2 , pom3 , pom4 ; begin
3113: LD_INT 0
3115: PPUSH
3116: PPUSH
3117: PPUSH
3118: PPUSH
3119: PPUSH
3120: PPUSH
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_scientistic ] , [ f_sex , sex ] ] ) ;
3121: LD_ADDR_VAR 0 6
3125: PUSH
3126: LD_INT 22
3128: PUSH
3129: LD_EXP 1
3133: PUSH
3134: EMPTY
3135: LIST
3136: LIST
3137: PUSH
3138: LD_INT 25
3140: PUSH
3141: LD_INT 4
3143: PUSH
3144: EMPTY
3145: LIST
3146: LIST
3147: PUSH
3148: LD_INT 26
3150: PUSH
3151: LD_VAR 0 1
3155: PUSH
3156: EMPTY
3157: LIST
3158: LIST
3159: PUSH
3160: EMPTY
3161: LIST
3162: LIST
3163: LIST
3164: PPUSH
3165: CALL_OW 69
3169: ST_TO_ADDR
// pom2 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_mechanic ] , [ f_sex , sex ] ] ) ;
3170: LD_ADDR_VAR 0 7
3174: PUSH
3175: LD_INT 22
3177: PUSH
3178: LD_EXP 1
3182: PUSH
3183: EMPTY
3184: LIST
3185: LIST
3186: PUSH
3187: LD_INT 25
3189: PUSH
3190: LD_INT 3
3192: PUSH
3193: EMPTY
3194: LIST
3195: LIST
3196: PUSH
3197: LD_INT 26
3199: PUSH
3200: LD_VAR 0 1
3204: PUSH
3205: EMPTY
3206: LIST
3207: LIST
3208: PUSH
3209: EMPTY
3210: LIST
3211: LIST
3212: LIST
3213: PPUSH
3214: CALL_OW 69
3218: ST_TO_ADDR
// pom3 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_engineer ] , [ f_sex , sex ] ] ) ;
3219: LD_ADDR_VAR 0 8
3223: PUSH
3224: LD_INT 22
3226: PUSH
3227: LD_EXP 1
3231: PUSH
3232: EMPTY
3233: LIST
3234: LIST
3235: PUSH
3236: LD_INT 25
3238: PUSH
3239: LD_INT 2
3241: PUSH
3242: EMPTY
3243: LIST
3244: LIST
3245: PUSH
3246: LD_INT 26
3248: PUSH
3249: LD_VAR 0 1
3253: PUSH
3254: EMPTY
3255: LIST
3256: LIST
3257: PUSH
3258: EMPTY
3259: LIST
3260: LIST
3261: LIST
3262: PPUSH
3263: CALL_OW 69
3267: ST_TO_ADDR
// pom4 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_soldier ] , [ f_sex , sex ] ] ) ;
3268: LD_ADDR_VAR 0 9
3272: PUSH
3273: LD_INT 22
3275: PUSH
3276: LD_EXP 1
3280: PUSH
3281: EMPTY
3282: LIST
3283: LIST
3284: PUSH
3285: LD_INT 25
3287: PUSH
3288: LD_INT 1
3290: PUSH
3291: EMPTY
3292: LIST
3293: LIST
3294: PUSH
3295: LD_INT 26
3297: PUSH
3298: LD_VAR 0 1
3302: PUSH
3303: EMPTY
3304: LIST
3305: LIST
3306: PUSH
3307: EMPTY
3308: LIST
3309: LIST
3310: LIST
3311: PPUSH
3312: CALL_OW 69
3316: ST_TO_ADDR
// case povolani of class_scientistic :
3317: LD_VAR 0 2
3321: PUSH
3322: LD_INT 4
3324: DOUBLE
3325: EQUAL
3326: IFTRUE 3330
3328: GO 3343
3330: POP
// pom = pom1 ; class_mechanic :
3331: LD_ADDR_VAR 0 5
3335: PUSH
3336: LD_VAR 0 6
3340: ST_TO_ADDR
3341: GO 3407
3343: LD_INT 3
3345: DOUBLE
3346: EQUAL
3347: IFTRUE 3351
3349: GO 3364
3351: POP
// pom = pom2 ; class_engineer :
3352: LD_ADDR_VAR 0 5
3356: PUSH
3357: LD_VAR 0 7
3361: ST_TO_ADDR
3362: GO 3407
3364: LD_INT 2
3366: DOUBLE
3367: EQUAL
3368: IFTRUE 3372
3370: GO 3385
3372: POP
// pom = pom3 ; class_soldier :
3373: LD_ADDR_VAR 0 5
3377: PUSH
3378: LD_VAR 0 8
3382: ST_TO_ADDR
3383: GO 3407
3385: LD_INT 1
3387: DOUBLE
3388: EQUAL
3389: IFTRUE 3393
3391: GO 3406
3393: POP
// pom = pom4 ; end ;
3394: LD_ADDR_VAR 0 5
3398: PUSH
3399: LD_VAR 0 9
3403: ST_TO_ADDR
3404: GO 3407
3406: POP
// if povolani <> class_scientistic then
3407: LD_VAR 0 2
3411: PUSH
3412: LD_INT 4
3414: NONEQUAL
3415: IFFALSE 3433
// pom = pom ^ pom1 ;
3417: LD_ADDR_VAR 0 5
3421: PUSH
3422: LD_VAR 0 5
3426: PUSH
3427: LD_VAR 0 6
3431: ADD
3432: ST_TO_ADDR
// if povolani <> class_mechanic then
3433: LD_VAR 0 2
3437: PUSH
3438: LD_INT 3
3440: NONEQUAL
3441: IFFALSE 3459
// pom = pom ^ pom2 ;
3443: LD_ADDR_VAR 0 5
3447: PUSH
3448: LD_VAR 0 5
3452: PUSH
3453: LD_VAR 0 7
3457: ADD
3458: ST_TO_ADDR
// if povolani <> class_engineer then
3459: LD_VAR 0 2
3463: PUSH
3464: LD_INT 2
3466: NONEQUAL
3467: IFFALSE 3485
// pom = pom ^ pom3 ;
3469: LD_ADDR_VAR 0 5
3473: PUSH
3474: LD_VAR 0 5
3478: PUSH
3479: LD_VAR 0 8
3483: ADD
3484: ST_TO_ADDR
// if povolani <> class_soldier then
3485: LD_VAR 0 2
3489: PUSH
3490: LD_INT 1
3492: NONEQUAL
3493: IFFALSE 3511
// pom = pom ^ pom4 ;
3495: LD_ADDR_VAR 0 5
3499: PUSH
3500: LD_VAR 0 5
3504: PUSH
3505: LD_VAR 0 9
3509: ADD
3510: ST_TO_ADDR
// result := pom diff diffseznam ;
3511: LD_ADDR_VAR 0 4
3515: PUSH
3516: LD_VAR 0 5
3520: PUSH
3521: LD_VAR 0 3
3525: DIFF
3526: ST_TO_ADDR
// end ;
3527: LD_VAR 0 4
3531: RET
// on VehicleDestroyed ( un , side , nation , x , y , dir , chas , contr , eng , weap ) do begin if un = masha and side = You then
3532: LD_VAR 0 1
3536: PUSH
3537: LD_EXP 11
3541: EQUAL
3542: PUSH
3543: LD_VAR 0 2
3547: PUSH
3548: LD_EXP 1
3552: EQUAL
3553: AND
3554: IFFALSE 3560
// dialog_masha_kaput ;
3556: CALL 2610 0 0
// end ;
3560: PPOPN 10
3562: END
// every 0 0$1 trigger GetTech ( tech_TauRad , You ) = state_researched or GetTech ( tech_SpacAnom , You ) = state_researched do var pom ;
3563: LD_INT 28
3565: PPUSH
3566: LD_EXP 1
3570: PPUSH
3571: CALL_OW 321
3575: PUSH
3576: LD_INT 2
3578: EQUAL
3579: PUSH
3580: LD_INT 29
3582: PPUSH
3583: LD_EXP 1
3587: PPUSH
3588: CALL_OW 321
3592: PUSH
3593: LD_INT 2
3595: EQUAL
3596: OR
3597: IFFALSE 3991
3599: GO 3601
3601: DISABLE
3602: LD_INT 0
3604: PPUSH
// begin DialogueOn ;
3605: CALL_OW 6
// if IsOK ( kapisto ) then
3609: LD_EXP 14
3613: PPUSH
3614: CALL_OW 302
3618: IFFALSE 3686
// begin Say ( kapisto , DSpecBaz-Kap-1 ) ;
3620: LD_EXP 14
3624: PPUSH
3625: LD_STRING DSpecBaz-Kap-1
3627: PPUSH
3628: CALL_OW 88
// if GetTech ( tech_TauRad , You ) = state_researched then
3632: LD_INT 28
3634: PPUSH
3635: LD_EXP 1
3639: PPUSH
3640: CALL_OW 321
3644: PUSH
3645: LD_INT 2
3647: EQUAL
3648: IFFALSE 3672
// begin Say ( kapisto , DSpecBaz-Kap-1b ) ;
3650: LD_EXP 14
3654: PPUSH
3655: LD_STRING DSpecBaz-Kap-1b
3657: PPUSH
3658: CALL_OW 88
// taurad = true ;
3662: LD_ADDR_LOC 2
3666: PUSH
3667: LD_INT 1
3669: ST_TO_ADDR
// end else
3670: GO 3684
// Say ( kapisto , DSpecBaz-Kap-1c ) ;
3672: LD_EXP 14
3676: PPUSH
3677: LD_STRING DSpecBaz-Kap-1c
3679: PPUSH
3680: CALL_OW 88
// end else
3684: GO 3968
// if IsOK ( petro ) then
3686: LD_EXP 15
3690: PPUSH
3691: CALL_OW 302
3695: IFFALSE 3763
// begin Say ( petro , DSpecBaz-Pty-1 ) ;
3697: LD_EXP 15
3701: PPUSH
3702: LD_STRING DSpecBaz-Pty-1
3704: PPUSH
3705: CALL_OW 88
// if GetTech ( tech_TauRad , You ) = state_researched then
3709: LD_INT 28
3711: PPUSH
3712: LD_EXP 1
3716: PPUSH
3717: CALL_OW 321
3721: PUSH
3722: LD_INT 2
3724: EQUAL
3725: IFFALSE 3749
// begin Say ( petro , DSpecBaz-Pty-1b ) ;
3727: LD_EXP 15
3731: PPUSH
3732: LD_STRING DSpecBaz-Pty-1b
3734: PPUSH
3735: CALL_OW 88
// taurad = true ;
3739: LD_ADDR_LOC 2
3743: PUSH
3744: LD_INT 1
3746: ST_TO_ADDR
// end else
3747: GO 3761
// Say ( petro , DSpecBaz-Pty-1c ) ;
3749: LD_EXP 15
3753: PPUSH
3754: LD_STRING DSpecBaz-Pty-1c
3756: PPUSH
3757: CALL_OW 88
// end else
3761: GO 3968
// if IsOK ( dol ) then
3763: LD_EXP 13
3767: PPUSH
3768: CALL_OW 302
3772: IFFALSE 3840
// begin Say ( dol , DSpecBaz-Dol-1 ) ;
3774: LD_EXP 13
3778: PPUSH
3779: LD_STRING DSpecBaz-Dol-1
3781: PPUSH
3782: CALL_OW 88
// if GetTech ( tech_TauRad , You ) = state_researched then
3786: LD_INT 28
3788: PPUSH
3789: LD_EXP 1
3793: PPUSH
3794: CALL_OW 321
3798: PUSH
3799: LD_INT 2
3801: EQUAL
3802: IFFALSE 3826
// begin Say ( dol , DSpecBaz-Dol-1b ) ;
3804: LD_EXP 13
3808: PPUSH
3809: LD_STRING DSpecBaz-Dol-1b
3811: PPUSH
3812: CALL_OW 88
// taurad = true ;
3816: LD_ADDR_LOC 2
3820: PUSH
3821: LD_INT 1
3823: ST_TO_ADDR
// end else
3824: GO 3838
// Say ( dol , DSpecBaz-Dol-1c ) ;
3826: LD_EXP 13
3830: PPUSH
3831: LD_STRING DSpecBaz-Dol-1c
3833: PPUSH
3834: CALL_OW 88
// end else
3838: GO 3968
// begin pom = GetPeople ( sex_male , class_scientistic , [ bur , petro , kapisto , dol ] ) ;
3840: LD_ADDR_VAR 0 1
3844: PUSH
3845: LD_INT 1
3847: PPUSH
3848: LD_INT 4
3850: PPUSH
3851: LD_EXP 12
3855: PUSH
3856: LD_EXP 15
3860: PUSH
3861: LD_EXP 14
3865: PUSH
3866: LD_EXP 13
3870: PUSH
3871: EMPTY
3872: LIST
3873: LIST
3874: LIST
3875: LIST
3876: PPUSH
3877: CALL 3113 0 3
3881: ST_TO_ADDR
// if pom > 0 then
3882: LD_VAR 0 1
3886: PUSH
3887: LD_INT 0
3889: GREATER
3890: IFFALSE 3968
// begin Say ( pom [ 1 ] , DSpecBaz-RSci1-1 ) ;
3892: LD_VAR 0 1
3896: PUSH
3897: LD_INT 1
3899: ARRAY
3900: PPUSH
3901: LD_STRING DSpecBaz-RSci1-1
3903: PPUSH
3904: CALL_OW 88
// if GetTech ( tech_TauRad , You ) = state_researched then
3908: LD_INT 28
3910: PPUSH
3911: LD_EXP 1
3915: PPUSH
3916: CALL_OW 321
3920: PUSH
3921: LD_INT 2
3923: EQUAL
3924: IFFALSE 3952
// begin Say ( pom [ 1 ] , DSpecBaz-RSci1-1b ) ;
3926: LD_VAR 0 1
3930: PUSH
3931: LD_INT 1
3933: ARRAY
3934: PPUSH
3935: LD_STRING DSpecBaz-RSci1-1b
3937: PPUSH
3938: CALL_OW 88
// taurad = true ;
3942: LD_ADDR_LOC 2
3946: PUSH
3947: LD_INT 1
3949: ST_TO_ADDR
// end else
3950: GO 3968
// Say ( pom [ 1 ] , DSpecBaz-RSci1-1c ) ;
3952: LD_VAR 0 1
3956: PUSH
3957: LD_INT 1
3959: ARRAY
3960: PPUSH
3961: LD_STRING DSpecBaz-RSci1-1c
3963: PPUSH
3964: CALL_OW 88
// end ; end ; Say ( bur , DSpecBaz-Bur-1 ) ;
3968: LD_EXP 12
3972: PPUSH
3973: LD_STRING DSpecBaz-Bur-1
3975: PPUSH
3976: CALL_OW 88
// Hint ( SpecBaz ) ;
3980: LD_STRING SpecBaz
3982: PPUSH
3983: CALL_OW 339
// DialogueOff ;
3987: CALL_OW 7
// end ;
3991: PPOPN 1
3993: END
// every 0 0$1 trigger GetTech ( tech_TauRad , You ) = state_researched and GetTech ( tech_SpacAnom , You ) = state_researched do var pom ;
3994: LD_INT 28
3996: PPUSH
3997: LD_EXP 1
4001: PPUSH
4002: CALL_OW 321
4006: PUSH
4007: LD_INT 2
4009: EQUAL
4010: PUSH
4011: LD_INT 29
4013: PPUSH
4014: LD_EXP 1
4018: PPUSH
4019: CALL_OW 321
4023: PUSH
4024: LD_INT 2
4026: EQUAL
4027: AND
4028: IFFALSE 4335
4030: GO 4032
4032: DISABLE
4033: LD_INT 0
4035: PPUSH
// begin DialogueOn ;
4036: CALL_OW 6
// if IsOK ( kapisto ) then
4040: LD_EXP 14
4044: PPUSH
4045: CALL_OW 302
4049: IFFALSE 4097
// begin Say ( kapisto , DSpecBaz-Kap-1a ) ;
4051: LD_EXP 14
4055: PPUSH
4056: LD_STRING DSpecBaz-Kap-1a
4058: PPUSH
4059: CALL_OW 88
// if taurad then
4063: LD_LOC 2
4067: IFFALSE 4083
// Say ( kapisto , DSpecBaz-Kap-1c ) else
4069: LD_EXP 14
4073: PPUSH
4074: LD_STRING DSpecBaz-Kap-1c
4076: PPUSH
4077: CALL_OW 88
4081: GO 4095
// Say ( kapisto , DSpecBaz-Kap-1b ) ;
4083: LD_EXP 14
4087: PPUSH
4088: LD_STRING DSpecBaz-Kap-1b
4090: PPUSH
4091: CALL_OW 88
// end else
4095: GO 4319
// if IsOK ( petro ) then
4097: LD_EXP 15
4101: PPUSH
4102: CALL_OW 302
4106: IFFALSE 4154
// begin Say ( petro , DSpecBaz-Pty-1a ) ;
4108: LD_EXP 15
4112: PPUSH
4113: LD_STRING DSpecBaz-Pty-1a
4115: PPUSH
4116: CALL_OW 88
// if taurad then
4120: LD_LOC 2
4124: IFFALSE 4140
// Say ( petro , DSpecBaz-Pty-1c ) else
4126: LD_EXP 15
4130: PPUSH
4131: LD_STRING DSpecBaz-Pty-1c
4133: PPUSH
4134: CALL_OW 88
4138: GO 4152
// Say ( petro , DSpecBaz-Pty-1b ) ;
4140: LD_EXP 15
4144: PPUSH
4145: LD_STRING DSpecBaz-Pty-1b
4147: PPUSH
4148: CALL_OW 88
// end else
4152: GO 4319
// if IsOK ( dol ) then
4154: LD_EXP 13
4158: PPUSH
4159: CALL_OW 302
4163: IFFALSE 4211
// begin Say ( dol , DSpecBaz-Dol-1a ) ;
4165: LD_EXP 13
4169: PPUSH
4170: LD_STRING DSpecBaz-Dol-1a
4172: PPUSH
4173: CALL_OW 88
// if taurad then
4177: LD_LOC 2
4181: IFFALSE 4197
// Say ( dol , DSpecBaz-Dol-1c ) else
4183: LD_EXP 13
4187: PPUSH
4188: LD_STRING DSpecBaz-Dol-1c
4190: PPUSH
4191: CALL_OW 88
4195: GO 4209
// Say ( dol , DSpecBaz-Dol-1b ) ;
4197: LD_EXP 13
4201: PPUSH
4202: LD_STRING DSpecBaz-Dol-1b
4204: PPUSH
4205: CALL_OW 88
// end else
4209: GO 4319
// begin pom = GetPeople ( sex_male , class_scientistic , [ bur , petro , kapisto , dol ] ) ;
4211: LD_ADDR_VAR 0 1
4215: PUSH
4216: LD_INT 1
4218: PPUSH
4219: LD_INT 4
4221: PPUSH
4222: LD_EXP 12
4226: PUSH
4227: LD_EXP 15
4231: PUSH
4232: LD_EXP 14
4236: PUSH
4237: LD_EXP 13
4241: PUSH
4242: EMPTY
4243: LIST
4244: LIST
4245: LIST
4246: LIST
4247: PPUSH
4248: CALL 3113 0 3
4252: ST_TO_ADDR
// if pom > 0 then
4253: LD_VAR 0 1
4257: PUSH
4258: LD_INT 0
4260: GREATER
4261: IFFALSE 4319
// begin Say ( pom [ 1 ] , DSpecBaz-RSci1-1a ) ;
4263: LD_VAR 0 1
4267: PUSH
4268: LD_INT 1
4270: ARRAY
4271: PPUSH
4272: LD_STRING DSpecBaz-RSci1-1a
4274: PPUSH
4275: CALL_OW 88
// if taurad then
4279: LD_LOC 2
4283: IFFALSE 4303
// Say ( pom [ 1 ] , DSpecBaz-RSci1-1c ) else
4285: LD_VAR 0 1
4289: PUSH
4290: LD_INT 1
4292: ARRAY
4293: PPUSH
4294: LD_STRING DSpecBaz-RSci1-1c
4296: PPUSH
4297: CALL_OW 88
4301: GO 4319
// Say ( pom [ 1 ] , DSpecBaz-RSci1-1b ) ;
4303: LD_VAR 0 1
4307: PUSH
4308: LD_INT 1
4310: ARRAY
4311: PPUSH
4312: LD_STRING DSpecBaz-RSci1-1b
4314: PPUSH
4315: CALL_OW 88
// end ; end ; Say ( bur , DSpecBaz-Bur-1a ) ;
4319: LD_EXP 12
4323: PPUSH
4324: LD_STRING DSpecBaz-Bur-1a
4326: PPUSH
4327: CALL_OW 88
// DialogueOff ;
4331: CALL_OW 7
// end ;
4335: PPOPN 1
4337: END
// every 0 0$1 trigger SeeArea ( You , Arabi_see ) > 2 do
4338: LD_EXP 1
4342: PPUSH
4343: LD_INT 28
4345: PPUSH
4346: CALL_OW 294
4350: PUSH
4351: LD_INT 2
4353: GREATER
4354: IFFALSE 4400
4356: GO 4358
4358: DISABLE
// begin if not KECY_s_arabama then
4359: LD_EXP 7
4363: NOT
4364: IFFALSE 4400
// begin if not maccepted then
4366: LD_EXP 54
4370: NOT
4371: IFFALSE 4378
// enable ( 1 ) else
4373: LD_INT 1
4375: ENABLE_MARKED
4376: GO 4392
// if mhandedover then
4378: LD_EXP 55
4382: IFFALSE 4389
// enable ( 2 ) else
4384: LD_INT 2
4386: ENABLE_MARKED
4387: GO 4392
// enable ( 3 ) ;
4389: LD_INT 3
4391: ENABLE_MARKED
// KECY_s_arabama = true ;
4392: LD_ADDR_EXP 7
4396: PUSH
4397: LD_INT 1
4399: ST_TO_ADDR
// end ; end ;
4400: END
// export function query_konec ; var pom ; begin
4401: LD_INT 0
4403: PPUSH
4404: PPUSH
// pom = Query ( QEndMission ) ;
4405: LD_ADDR_VAR 0 2
4409: PUSH
4410: LD_STRING QEndMission
4412: PPUSH
4413: CALL_OW 97
4417: ST_TO_ADDR
// result := pom ;
4418: LD_ADDR_VAR 0 1
4422: PUSH
4423: LD_VAR 0 2
4427: ST_TO_ADDR
// end ; end_of_file
4428: LD_VAR 0 1
4432: RET
// export Ru_base ; export cislo_baze ; export Ru_enter ; export masha ; export bur ; export dol ; export kapisto ; export petro ; export pop ; export bel ; export gny ; export kiri ; export koval ; export schol ; export kuzmov ; export karam ; export petrov ; export gleb ; export lipsch ; export tito ; export xavier ; export obluk ; export kozlov ; var bedny ; export test_ukonceni_allowed ; every 0 0$0.1 do
4433: GO 4435
4435: DISABLE
// begin bedny = 0 ;
4436: LD_ADDR_LOC 4
4440: PUSH
4441: LD_INT 0
4443: ST_TO_ADDR
// test_ukonceni_allowed = false ;
4444: LD_ADDR_EXP 31
4448: PUSH
4449: LD_INT 0
4451: ST_TO_ADDR
// end ;
4452: END
// export function place_resource ; begin
4453: LD_INT 0
4455: PPUSH
// CreateDepositXY ( 45 , 72 , mat_oil ) ;
4456: LD_INT 45
4458: PPUSH
4459: LD_INT 72
4461: PPUSH
4462: LD_INT 2
4464: PPUSH
4465: CALL_OW 62
// CreateDepositXY ( 51 , 86 , mat_siberit ) ;
4469: LD_INT 51
4471: PPUSH
4472: LD_INT 86
4474: PPUSH
4475: LD_INT 3
4477: PPUSH
4478: CALL_OW 62
// CreateDepositXY ( 92 , 110 , mat_oil ) ;
4482: LD_INT 92
4484: PPUSH
4485: LD_INT 110
4487: PPUSH
4488: LD_INT 2
4490: PPUSH
4491: CALL_OW 62
// CreateDepositXY ( 103 , 103 , mat_siberit ) ;
4495: LD_INT 103
4497: PPUSH
4498: LD_INT 103
4500: PPUSH
4501: LD_INT 3
4503: PPUSH
4504: CALL_OW 62
// CreateDepositXY ( 151 , 84 , mat_oil ) ;
4508: LD_INT 151
4510: PPUSH
4511: LD_INT 84
4513: PPUSH
4514: LD_INT 2
4516: PPUSH
4517: CALL_OW 62
// CreateDepositXY ( 139 , 60 , mat_siberit ) ;
4521: LD_INT 139
4523: PPUSH
4524: LD_INT 60
4526: PPUSH
4527: LD_INT 3
4529: PPUSH
4530: CALL_OW 62
// end ;
4534: LD_VAR 0 1
4538: RET
// export function placni_rusy_na_zacatek ; var ezone ; var i ; begin
4539: LD_INT 0
4541: PPUSH
4542: PPUSH
4543: PPUSH
// case cislo_baze of 1 :
4544: LD_EXP 9
4548: PUSH
4549: LD_INT 1
4551: DOUBLE
4552: EQUAL
4553: IFTRUE 4557
4555: GO 4580
4557: POP
// begin ezone = ezone1 ;
4558: LD_ADDR_VAR 0 2
4562: PUSH
4563: LD_INT 4
4565: ST_TO_ADDR
// RevealFogArea ( You , Renter1 ) ;
4566: LD_EXP 1
4570: PPUSH
4571: LD_INT 14
4573: PPUSH
4574: CALL_OW 332
// end ; 2 :
4578: GO 4643
4580: LD_INT 2
4582: DOUBLE
4583: EQUAL
4584: IFTRUE 4588
4586: GO 4611
4588: POP
// begin ezone = ezone2 ;
4589: LD_ADDR_VAR 0 2
4593: PUSH
4594: LD_INT 5
4596: ST_TO_ADDR
// RevealFogArea ( You , Renter2 ) ;
4597: LD_EXP 1
4601: PPUSH
4602: LD_INT 15
4604: PPUSH
4605: CALL_OW 332
// end ; 3 :
4609: GO 4643
4611: LD_INT 3
4613: DOUBLE
4614: EQUAL
4615: IFTRUE 4619
4617: GO 4642
4619: POP
// begin ezone = ezone3 ;
4620: LD_ADDR_VAR 0 2
4624: PUSH
4625: LD_INT 6
4627: ST_TO_ADDR
// RevealFogArea ( You , Renter3 ) ;
4628: LD_EXP 1
4632: PPUSH
4633: LD_INT 16
4635: PPUSH
4636: CALL_OW 332
// end ; end ;
4640: GO 4643
4642: POP
// for i in RUSI_ENTER_LIST do
4643: LD_ADDR_VAR 0 3
4647: PUSH
4648: LD_EXP 32
4652: PUSH
4653: FOR_IN
4654: IFFALSE 4675
// PlaceUnitArea ( i , ezone , false ) ;
4656: LD_VAR 0 3
4660: PPUSH
4661: LD_VAR 0 2
4665: PPUSH
4666: LD_INT 0
4668: PPUSH
4669: CALL_OW 49
4673: GO 4653
4675: POP
4676: POP
// CenterNowOnUnits ( RUSI_ENTER_LIST ) ;
4677: LD_EXP 32
4681: PPUSH
4682: CALL_OW 87
// chmo1 ;
4686: CALL 1808 0 0
// InGameOff ;
4690: CALL_OW 9
// end ;
4694: LD_VAR 0 1
4698: RET
// every 0 0$1 do
4699: GO 4701
4701: DISABLE
// begin wait ( delay_beden [ difficulty ] ) ;
4702: LD_EXP 45
4706: PUSH
4707: LD_OWVAR 67
4711: ARRAY
4712: PPUSH
4713: CALL_OW 67
// wait ( Rand ( 1 , bedny * 0 0$20 ) ) ;
4717: LD_INT 1
4719: PPUSH
4720: LD_LOC 4
4724: PUSH
4725: LD_INT 700
4727: MUL
4728: PPUSH
4729: CALL_OW 12
4733: PPUSH
4734: CALL_OW 67
// bedny = bedny + 1 ;
4738: LD_ADDR_LOC 4
4742: PUSH
4743: LD_LOC 4
4747: PUSH
4748: LD_INT 1
4750: PLUS
4751: ST_TO_ADDR
// case cislo_baze of 1 :
4752: LD_EXP 9
4756: PUSH
4757: LD_INT 1
4759: DOUBLE
4760: EQUAL
4761: IFTRUE 4765
4763: GO 4789
4765: POP
// CreateCratesArea ( Rand ( 3 , 5 ) , base3 , true ) ; 2 :
4766: LD_INT 3
4768: PPUSH
4769: LD_INT 5
4771: PPUSH
4772: CALL_OW 12
4776: PPUSH
4777: LD_INT 3
4779: PPUSH
4780: LD_INT 1
4782: PPUSH
4783: CALL_OW 55
4787: GO 4861
4789: LD_INT 2
4791: DOUBLE
4792: EQUAL
4793: IFTRUE 4797
4795: GO 4821
4797: POP
// CreateCratesArea ( Rand ( 3 , 5 ) , base2 , true ) ; 3 :
4798: LD_INT 3
4800: PPUSH
4801: LD_INT 5
4803: PPUSH
4804: CALL_OW 12
4808: PPUSH
4809: LD_INT 2
4811: PPUSH
4812: LD_INT 1
4814: PPUSH
4815: CALL_OW 55
4819: GO 4861
4821: LD_INT 3
4823: DOUBLE
4824: EQUAL
4825: IFTRUE 4829
4827: GO 4853
4829: POP
// CreateCratesArea ( Rand ( 3 , 5 ) , base1 , true ) ; else
4830: LD_INT 3
4832: PPUSH
4833: LD_INT 5
4835: PPUSH
4836: CALL_OW 12
4840: PPUSH
4841: LD_INT 1
4843: PPUSH
4844: LD_INT 1
4846: PPUSH
4847: CALL_OW 55
4851: GO 4861
4853: POP
// begin msg ( ERROR: pri padani beden doslo k chybe ) ;
4854: LD_STRING ERROR: pri padani beden doslo k chybe
4856: PPUSH
4857: CALL_OW 100
// end ; end ; enable ;
4861: ENABLE
// end ;
4862: END
// every 1 1$30 do
4863: GO 4865
4865: DISABLE
// begin wait ( Rand ( 1 , 1 1$0 ) ) ;
4866: LD_INT 1
4868: PPUSH
4869: LD_INT 2100
4871: PPUSH
4872: CALL_OW 12
4876: PPUSH
4877: CALL_OW 67
// CreateCratesArea ( Rand ( 1 , 5 ) , Bedny_Ar , true ) ;
4881: LD_INT 1
4883: PPUSH
4884: LD_INT 5
4886: PPUSH
4887: CALL_OW 12
4891: PPUSH
4892: LD_INT 24
4894: PPUSH
4895: LD_INT 1
4897: PPUSH
4898: CALL_OW 55
// enable ;
4902: ENABLE
// end ;
4903: END
// every 0 0$1 do var okay ; var plab ; var i ; var pom ;
4904: GO 4906
4906: DISABLE
4907: LD_INT 0
4909: PPUSH
4910: PPUSH
4911: PPUSH
4912: PPUSH
// begin okay = true ;
4913: LD_ADDR_VAR 0 1
4917: PUSH
4918: LD_INT 1
4920: ST_TO_ADDR
// if IsOK ( Am_lab1 ) then
4921: LD_INT 48
4923: PPUSH
4924: CALL_OW 302
4928: IFFALSE 4953
// if GetSide ( Am_lab1 ) = Amici then
4930: LD_INT 48
4932: PPUSH
4933: CALL_OW 255
4937: PUSH
4938: LD_EXP 2
4942: EQUAL
4943: IFFALSE 4953
// okay = false ;
4945: LD_ADDR_VAR 0 1
4949: PUSH
4950: LD_INT 0
4952: ST_TO_ADDR
// if IsOK ( Am_lab2 ) then
4953: LD_INT 55
4955: PPUSH
4956: CALL_OW 302
4960: IFFALSE 4985
// if GetSide ( Am_lab2 ) = Amici then
4962: LD_INT 55
4964: PPUSH
4965: CALL_OW 255
4969: PUSH
4970: LD_EXP 2
4974: EQUAL
4975: IFFALSE 4985
// okay = false ;
4977: LD_ADDR_VAR 0 1
4981: PUSH
4982: LD_INT 0
4984: ST_TO_ADDR
// if IsOK ( Am_lab3 ) then
4985: LD_INT 56
4987: PPUSH
4988: CALL_OW 302
4992: IFFALSE 5017
// if GetSide ( Am_lab3 ) = Amici then
4994: LD_INT 56
4996: PPUSH
4997: CALL_OW 255
5001: PUSH
5002: LD_EXP 2
5006: EQUAL
5007: IFFALSE 5017
// okay = false ;
5009: LD_ADDR_VAR 0 1
5013: PUSH
5014: LD_INT 0
5016: ST_TO_ADDR
// if IsOK ( Joan ) then
5017: LD_EXP 62
5021: PPUSH
5022: CALL_OW 302
5026: IFFALSE 5036
// okay = false ;
5028: LD_ADDR_VAR 0 1
5032: PUSH
5033: LD_INT 0
5035: ST_TO_ADDR
// if okay and test_na_vedce then
5036: LD_VAR 0 1
5040: PUSH
5041: CALL 20923 0 0
5045: AND
5046: IFFALSE 5226
// begin plab = 0 ;
5048: LD_ADDR_VAR 0 2
5052: PUSH
5053: LD_INT 0
5055: ST_TO_ADDR
// for i in [ Am_lab1 , Am_lab2 , Am_lab3 ] do
5056: LD_ADDR_VAR 0 3
5060: PUSH
5061: LD_INT 48
5063: PUSH
5064: LD_INT 55
5066: PUSH
5067: LD_INT 56
5069: PUSH
5070: EMPTY
5071: LIST
5072: LIST
5073: LIST
5074: PUSH
5075: FOR_IN
5076: IFFALSE 5122
// if GetSide ( i ) = You or IsDead ( i ) then
5078: LD_VAR 0 3
5082: PPUSH
5083: CALL_OW 255
5087: PUSH
5088: LD_EXP 1
5092: EQUAL
5093: PUSH
5094: LD_VAR 0 3
5098: PPUSH
5099: CALL_OW 301
5103: OR
5104: IFFALSE 5120
// plab = plab + 1 ;
5106: LD_ADDR_VAR 0 2
5110: PUSH
5111: LD_VAR 0 2
5115: PUSH
5116: LD_INT 1
5118: PLUS
5119: ST_TO_ADDR
5120: GO 5075
5122: POP
5123: POP
// if GetTech ( tech_TauRad , You ) and GetTech ( tech_SpacAnom , You ) then
5124: LD_INT 28
5126: PPUSH
5127: LD_EXP 1
5131: PPUSH
5132: CALL_OW 321
5136: PUSH
5137: LD_INT 29
5139: PPUSH
5140: LD_EXP 1
5144: PPUSH
5145: CALL_OW 321
5149: AND
5150: IFFALSE 5166
// plab = plab + 1 ;
5152: LD_ADDR_VAR 0 2
5156: PUSH
5157: LD_VAR 0 2
5161: PUSH
5162: LD_INT 1
5164: PLUS
5165: ST_TO_ADDR
// if plab >= 4 then
5166: LD_VAR 0 2
5170: PUSH
5171: LD_INT 4
5173: GREATEREQUAL
5174: IFFALSE 5182
// konec_mise else
5176: CALL 231 0 0
5180: GO 5224
// begin pom = query_konec ;
5182: LD_ADDR_VAR 0 4
5186: PUSH
5187: CALL 4401 0 0
5191: ST_TO_ADDR
// if pom = 2 then
5192: LD_VAR 0 4
5196: PUSH
5197: LD_INT 2
5199: EQUAL
5200: IFFALSE 5208
// konec_mise else
5202: CALL 231 0 0
5206: GO 5224
// begin end_the_mission_allowed = true ;
5208: LD_ADDR_OWVAR 57
5212: PUSH
5213: LD_INT 1
5215: ST_TO_ADDR
// test_ukonceni_allowed = true ;
5216: LD_ADDR_EXP 31
5220: PUSH
5221: LD_INT 1
5223: ST_TO_ADDR
// end ; end ; end else
5224: GO 5227
// enable ;
5226: ENABLE
// end ;
5227: PPOPN 4
5229: END
// every 0 0$1 do
5230: GO 5232
5232: DISABLE
// begin SetMark ( Masha , 1 ) ;
5233: LD_EXP 11
5237: PPUSH
5238: LD_INT 1
5240: PPUSH
5241: CALL_OW 242
// end ;
5245: END
// every 0 0$5 trigger test_ukonceni_allowed do var okay ; var i ; var plab ;
5246: LD_EXP 31
5250: IFFALSE 5528
5252: GO 5254
5254: DISABLE
5255: LD_INT 0
5257: PPUSH
5258: PPUSH
5259: PPUSH
// begin okay = true ;
5260: LD_ADDR_VAR 0 1
5264: PUSH
5265: LD_INT 1
5267: ST_TO_ADDR
// if IsOK ( Am_lab1 ) then
5268: LD_INT 48
5270: PPUSH
5271: CALL_OW 302
5275: IFFALSE 5300
// if GetSide ( Am_lab1 ) = Amici then
5277: LD_INT 48
5279: PPUSH
5280: CALL_OW 255
5284: PUSH
5285: LD_EXP 2
5289: EQUAL
5290: IFFALSE 5300
// okay = false ;
5292: LD_ADDR_VAR 0 1
5296: PUSH
5297: LD_INT 0
5299: ST_TO_ADDR
// if IsOK ( Am_lab2 ) then
5300: LD_INT 55
5302: PPUSH
5303: CALL_OW 302
5307: IFFALSE 5332
// if GetSide ( Am_lab2 ) = Amici then
5309: LD_INT 55
5311: PPUSH
5312: CALL_OW 255
5316: PUSH
5317: LD_EXP 2
5321: EQUAL
5322: IFFALSE 5332
// okay = false ;
5324: LD_ADDR_VAR 0 1
5328: PUSH
5329: LD_INT 0
5331: ST_TO_ADDR
// if IsOK ( Am_lab2 ) then
5332: LD_INT 55
5334: PPUSH
5335: CALL_OW 302
5339: IFFALSE 5364
// if GetSide ( Am_lab2 ) = Amici then
5341: LD_INT 55
5343: PPUSH
5344: CALL_OW 255
5348: PUSH
5349: LD_EXP 2
5353: EQUAL
5354: IFFALSE 5364
// okay = false ;
5356: LD_ADDR_VAR 0 1
5360: PUSH
5361: LD_INT 0
5363: ST_TO_ADDR
// if IsOK ( Joan ) then
5364: LD_EXP 62
5368: PPUSH
5369: CALL_OW 302
5373: IFFALSE 5383
// okay = false ;
5375: LD_ADDR_VAR 0 1
5379: PUSH
5380: LD_INT 0
5382: ST_TO_ADDR
// if okay and test_na_vedce then
5383: LD_VAR 0 1
5387: PUSH
5388: CALL 20923 0 0
5392: AND
5393: IFFALSE 5527
// begin plab = 0 ;
5395: LD_ADDR_VAR 0 3
5399: PUSH
5400: LD_INT 0
5402: ST_TO_ADDR
// for i in [ Am_lab1 , Am_lab2 , Am_lab3 ] do
5403: LD_ADDR_VAR 0 2
5407: PUSH
5408: LD_INT 48
5410: PUSH
5411: LD_INT 55
5413: PUSH
5414: LD_INT 56
5416: PUSH
5417: EMPTY
5418: LIST
5419: LIST
5420: LIST
5421: PUSH
5422: FOR_IN
5423: IFFALSE 5469
// if GetSide ( i ) = You or IsDead ( i ) then
5425: LD_VAR 0 2
5429: PPUSH
5430: CALL_OW 255
5434: PUSH
5435: LD_EXP 1
5439: EQUAL
5440: PUSH
5441: LD_VAR 0 2
5445: PPUSH
5446: CALL_OW 301
5450: OR
5451: IFFALSE 5467
// plab = plab + 1 ;
5453: LD_ADDR_VAR 0 3
5457: PUSH
5458: LD_VAR 0 3
5462: PUSH
5463: LD_INT 1
5465: PLUS
5466: ST_TO_ADDR
5467: GO 5422
5469: POP
5470: POP
// if GetTech ( tech_TauRad , You ) and GetTech ( tech_SpacAnom , You ) then
5471: LD_INT 28
5473: PPUSH
5474: LD_EXP 1
5478: PPUSH
5479: CALL_OW 321
5483: PUSH
5484: LD_INT 29
5486: PPUSH
5487: LD_EXP 1
5491: PPUSH
5492: CALL_OW 321
5496: AND
5497: IFFALSE 5513
// plab = plab + 1 ;
5499: LD_ADDR_VAR 0 3
5503: PUSH
5504: LD_VAR 0 3
5508: PUSH
5509: LD_INT 1
5511: PLUS
5512: ST_TO_ADDR
// if plab >= 4 then
5513: LD_VAR 0 3
5517: PUSH
5518: LD_INT 4
5520: GREATEREQUAL
5521: IFFALSE 5527
// konec_mise ;
5523: CALL 231 0 0
// end ; enable ;
5527: ENABLE
// end ;
5528: PPOPN 3
5530: END
// every 1 1$0 trigger GetSide ( Ar_bar ) = You do
5531: LD_INT 61
5533: PPUSH
5534: CALL_OW 255
5538: PUSH
5539: LD_EXP 1
5543: EQUAL
5544: IFFALSE 5564
5546: GO 5548
5548: DISABLE
// begin SetTech ( tech_Mortar , You , state_researched ) ;
5549: LD_INT 41
5551: PPUSH
5552: LD_EXP 1
5556: PPUSH
5557: LD_INT 2
5559: PPUSH
5560: CALL_OW 322
// end ; end_of_file
5564: END
// export RUSI_ENTER_LIST ; export AM_UTOK_1_LIST ; export AM_UTOK_2_LIST ; export AM_UTOK_3_LIST ; var av , ah ; export function vyber_lidi_pro_misi ; var lvyber ; var i , j , pom ; var vyber ; begin
5565: LD_INT 0
5567: PPUSH
5568: PPUSH
5569: PPUSH
5570: PPUSH
5571: PPUSH
5572: PPUSH
// uc_nation = nation_russian ;
5573: LD_ADDR_OWVAR 21
5577: PUSH
5578: LD_INT 3
5580: ST_TO_ADDR
// uc_side = You ;
5581: LD_ADDR_OWVAR 20
5585: PUSH
5586: LD_EXP 1
5590: ST_TO_ADDR
// pom = [ ] ;
5591: LD_ADDR_VAR 0 5
5595: PUSH
5596: EMPTY
5597: ST_TO_ADDR
// SetSide ( bur , You ) ;
5598: LD_EXP 12
5602: PPUSH
5603: LD_EXP 1
5607: PPUSH
5608: CALL_OW 235
// SetClass ( bur , class_mechanic ) ;
5612: LD_EXP 12
5616: PPUSH
5617: LD_INT 3
5619: PPUSH
5620: CALL_OW 336
// if dol > 0 then
5624: LD_EXP 13
5628: PUSH
5629: LD_INT 0
5631: GREATER
5632: IFFALSE 5660
// begin SetClass ( dol , class_scientistic ) ;
5634: LD_EXP 13
5638: PPUSH
5639: LD_INT 4
5641: PPUSH
5642: CALL_OW 336
// SetSide ( dol , You ) ;
5646: LD_EXP 13
5650: PPUSH
5651: LD_EXP 1
5655: PPUSH
5656: CALL_OW 235
// end ; if kapisto > 0 then
5660: LD_EXP 14
5664: PUSH
5665: LD_INT 0
5667: GREATER
5668: IFFALSE 5696
// begin SetClass ( kapisto , class_scientistic ) ;
5670: LD_EXP 14
5674: PPUSH
5675: LD_INT 4
5677: PPUSH
5678: CALL_OW 336
// SetSide ( kapisto , You ) ;
5682: LD_EXP 14
5686: PPUSH
5687: LD_EXP 1
5691: PPUSH
5692: CALL_OW 235
// end ; if petro > 0 then
5696: LD_EXP 15
5700: PUSH
5701: LD_INT 0
5703: GREATER
5704: IFFALSE 5732
// begin SetClass ( petro , class_scientistic ) ;
5706: LD_EXP 15
5710: PPUSH
5711: LD_INT 4
5713: PPUSH
5714: CALL_OW 336
// SetSide ( petro , You ) ;
5718: LD_EXP 15
5722: PPUSH
5723: LD_EXP 1
5727: PPUSH
5728: CALL_OW 235
// end ; lvyber = [ sel_not_changeable , sel_hired , sel_dont_change_class , bur ] ;
5732: LD_ADDR_VAR 0 2
5736: PUSH
5737: LD_INT -4
5739: PUSH
5740: LD_INT -1
5742: PUSH
5743: LD_INT -6
5745: PUSH
5746: LD_EXP 12
5750: PUSH
5751: EMPTY
5752: LIST
5753: LIST
5754: LIST
5755: LIST
5756: ST_TO_ADDR
// lvyber = lvyber ^ [ sel_not_hired , sel_changeable , sel_change_class ] ;
5757: LD_ADDR_VAR 0 2
5761: PUSH
5762: LD_VAR 0 2
5766: PUSH
5767: LD_INT -2
5769: PUSH
5770: LD_INT -3
5772: PUSH
5773: LD_INT -5
5775: PUSH
5776: EMPTY
5777: LIST
5778: LIST
5779: LIST
5780: ADD
5781: ST_TO_ADDR
// if dol > 0 then
5782: LD_EXP 13
5786: PUSH
5787: LD_INT 0
5789: GREATER
5790: IFFALSE 5834
// begin SetSide ( dol , You ) ;
5792: LD_EXP 13
5796: PPUSH
5797: LD_EXP 1
5801: PPUSH
5802: CALL_OW 235
// SetClass ( dol , class_scientistic ) ;
5806: LD_EXP 13
5810: PPUSH
5811: LD_INT 4
5813: PPUSH
5814: CALL_OW 336
// lvyber = lvyber ^ dol ;
5818: LD_ADDR_VAR 0 2
5822: PUSH
5823: LD_VAR 0 2
5827: PUSH
5828: LD_EXP 13
5832: ADD
5833: ST_TO_ADDR
// end ; if kapisto > 0 then
5834: LD_EXP 14
5838: PUSH
5839: LD_INT 0
5841: GREATER
5842: IFFALSE 5886
// begin SetSide ( kapisto , You ) ;
5844: LD_EXP 14
5848: PPUSH
5849: LD_EXP 1
5853: PPUSH
5854: CALL_OW 235
// SetClass ( kapisto , class_scientistic ) ;
5858: LD_EXP 14
5862: PPUSH
5863: LD_INT 4
5865: PPUSH
5866: CALL_OW 336
// lvyber = lvyber ^ kapisto ;
5870: LD_ADDR_VAR 0 2
5874: PUSH
5875: LD_VAR 0 2
5879: PUSH
5880: LD_EXP 14
5884: ADD
5885: ST_TO_ADDR
// end ; if petro > 0 then
5886: LD_EXP 15
5890: PUSH
5891: LD_INT 0
5893: GREATER
5894: IFFALSE 5938
// begin SetSide ( petro , You ) ;
5896: LD_EXP 15
5900: PPUSH
5901: LD_EXP 1
5905: PPUSH
5906: CALL_OW 235
// SetClass ( petro , class_scientistic ) ;
5910: LD_EXP 15
5914: PPUSH
5915: LD_INT 4
5917: PPUSH
5918: CALL_OW 336
// lvyber = lvyber ^ petro ;
5922: LD_ADDR_VAR 0 2
5926: PUSH
5927: LD_VAR 0 2
5931: PUSH
5932: LD_EXP 15
5936: ADD
5937: ST_TO_ADDR
// end ; if bel > 0 then
5938: LD_EXP 17
5942: PUSH
5943: LD_INT 0
5945: GREATER
5946: IFFALSE 5990
// begin SetSide ( bel , You ) ;
5948: LD_EXP 17
5952: PPUSH
5953: LD_EXP 1
5957: PPUSH
5958: CALL_OW 235
// SetClass ( bel , class_soldier ) ;
5962: LD_EXP 17
5966: PPUSH
5967: LD_INT 1
5969: PPUSH
5970: CALL_OW 336
// lvyber = lvyber ^ bel ;
5974: LD_ADDR_VAR 0 2
5978: PUSH
5979: LD_VAR 0 2
5983: PUSH
5984: LD_EXP 17
5988: ADD
5989: ST_TO_ADDR
// end ; if gny > 0 then
5990: LD_EXP 18
5994: PUSH
5995: LD_INT 0
5997: GREATER
5998: IFFALSE 6042
// begin SetSide ( gny , You ) ;
6000: LD_EXP 18
6004: PPUSH
6005: LD_EXP 1
6009: PPUSH
6010: CALL_OW 235
// SetClass ( gny , class_soldier ) ;
6014: LD_EXP 18
6018: PPUSH
6019: LD_INT 1
6021: PPUSH
6022: CALL_OW 336
// lvyber = lvyber ^ gny ;
6026: LD_ADDR_VAR 0 2
6030: PUSH
6031: LD_VAR 0 2
6035: PUSH
6036: LD_EXP 18
6040: ADD
6041: ST_TO_ADDR
// end ; if kiri > 0 then
6042: LD_EXP 19
6046: PUSH
6047: LD_INT 0
6049: GREATER
6050: IFFALSE 6094
// begin SetSide ( kiri , You ) ;
6052: LD_EXP 19
6056: PPUSH
6057: LD_EXP 1
6061: PPUSH
6062: CALL_OW 235
// SetClass ( kiri , class_scientistic ) ;
6066: LD_EXP 19
6070: PPUSH
6071: LD_INT 4
6073: PPUSH
6074: CALL_OW 336
// lvyber = lvyber ^ kiri ;
6078: LD_ADDR_VAR 0 2
6082: PUSH
6083: LD_VAR 0 2
6087: PUSH
6088: LD_EXP 19
6092: ADD
6093: ST_TO_ADDR
// end ; if koval > 0 then
6094: LD_EXP 20
6098: PUSH
6099: LD_INT 0
6101: GREATER
6102: IFFALSE 6146
// begin SetSide ( koval , You ) ;
6104: LD_EXP 20
6108: PPUSH
6109: LD_EXP 1
6113: PPUSH
6114: CALL_OW 235
// SetClass ( koval , class_soldier ) ;
6118: LD_EXP 20
6122: PPUSH
6123: LD_INT 1
6125: PPUSH
6126: CALL_OW 336
// lvyber = lvyber ^ koval ;
6130: LD_ADDR_VAR 0 2
6134: PUSH
6135: LD_VAR 0 2
6139: PUSH
6140: LD_EXP 20
6144: ADD
6145: ST_TO_ADDR
// end ; if schol > 0 then
6146: LD_EXP 21
6150: PUSH
6151: LD_INT 0
6153: GREATER
6154: IFFALSE 6198
// begin SetSide ( schol , You ) ;
6156: LD_EXP 21
6160: PPUSH
6161: LD_EXP 1
6165: PPUSH
6166: CALL_OW 235
// SetClass ( schol , class_scientistic ) ;
6170: LD_EXP 21
6174: PPUSH
6175: LD_INT 4
6177: PPUSH
6178: CALL_OW 336
// lvyber = lvyber ^ schol ;
6182: LD_ADDR_VAR 0 2
6186: PUSH
6187: LD_VAR 0 2
6191: PUSH
6192: LD_EXP 21
6196: ADD
6197: ST_TO_ADDR
// end ; if kuzmov > 0 then
6198: LD_EXP 22
6202: PUSH
6203: LD_INT 0
6205: GREATER
6206: IFFALSE 6250
// begin SetSide ( kuzmov , You ) ;
6208: LD_EXP 22
6212: PPUSH
6213: LD_EXP 1
6217: PPUSH
6218: CALL_OW 235
// SetClass ( kuzmov , class_soldier ) ;
6222: LD_EXP 22
6226: PPUSH
6227: LD_INT 1
6229: PPUSH
6230: CALL_OW 336
// lvyber = lvyber ^ kuzmov ;
6234: LD_ADDR_VAR 0 2
6238: PUSH
6239: LD_VAR 0 2
6243: PUSH
6244: LD_EXP 22
6248: ADD
6249: ST_TO_ADDR
// end ; if karam > 0 then
6250: LD_EXP 23
6254: PUSH
6255: LD_INT 0
6257: GREATER
6258: IFFALSE 6302
// begin SetSide ( karam , You ) ;
6260: LD_EXP 23
6264: PPUSH
6265: LD_EXP 1
6269: PPUSH
6270: CALL_OW 235
// SetClass ( karam , class_soldier ) ;
6274: LD_EXP 23
6278: PPUSH
6279: LD_INT 1
6281: PPUSH
6282: CALL_OW 336
// lvyber = lvyber ^ karam ;
6286: LD_ADDR_VAR 0 2
6290: PUSH
6291: LD_VAR 0 2
6295: PUSH
6296: LD_EXP 23
6300: ADD
6301: ST_TO_ADDR
// end ; if petrov > 0 then
6302: LD_EXP 24
6306: PUSH
6307: LD_INT 0
6309: GREATER
6310: IFFALSE 6354
// begin SetSide ( petrov , You ) ;
6312: LD_EXP 24
6316: PPUSH
6317: LD_EXP 1
6321: PPUSH
6322: CALL_OW 235
// SetClass ( petrov , class_mechanic ) ;
6326: LD_EXP 24
6330: PPUSH
6331: LD_INT 3
6333: PPUSH
6334: CALL_OW 336
// lvyber = lvyber ^ petrov ;
6338: LD_ADDR_VAR 0 2
6342: PUSH
6343: LD_VAR 0 2
6347: PUSH
6348: LD_EXP 24
6352: ADD
6353: ST_TO_ADDR
// end ; if gleb > 0 then
6354: LD_EXP 25
6358: PUSH
6359: LD_INT 0
6361: GREATER
6362: IFFALSE 6406
// begin SetSide ( gleb , You ) ;
6364: LD_EXP 25
6368: PPUSH
6369: LD_EXP 1
6373: PPUSH
6374: CALL_OW 235
// SetClass ( gleb , class_mechanic ) ;
6378: LD_EXP 25
6382: PPUSH
6383: LD_INT 3
6385: PPUSH
6386: CALL_OW 336
// lvyber = lvyber ^ gleb ;
6390: LD_ADDR_VAR 0 2
6394: PUSH
6395: LD_VAR 0 2
6399: PUSH
6400: LD_EXP 25
6404: ADD
6405: ST_TO_ADDR
// end ; if lipsch > 0 then
6406: LD_EXP 26
6410: PUSH
6411: LD_INT 0
6413: GREATER
6414: IFFALSE 6458
// begin SetSide ( lipsch , You ) ;
6416: LD_EXP 26
6420: PPUSH
6421: LD_EXP 1
6425: PPUSH
6426: CALL_OW 235
// SetClass ( lipsch , class_engineer ) ;
6430: LD_EXP 26
6434: PPUSH
6435: LD_INT 2
6437: PPUSH
6438: CALL_OW 336
// lvyber = lvyber ^ lipsch ;
6442: LD_ADDR_VAR 0 2
6446: PUSH
6447: LD_VAR 0 2
6451: PUSH
6452: LD_EXP 26
6456: ADD
6457: ST_TO_ADDR
// end ; if tito > 0 then
6458: LD_EXP 27
6462: PUSH
6463: LD_INT 0
6465: GREATER
6466: IFFALSE 6510
// begin SetSide ( tito , You ) ;
6468: LD_EXP 27
6472: PPUSH
6473: LD_EXP 1
6477: PPUSH
6478: CALL_OW 235
// SetClass ( tito , class_soldier ) ;
6482: LD_EXP 27
6486: PPUSH
6487: LD_INT 1
6489: PPUSH
6490: CALL_OW 336
// lvyber = lvyber ^ tito ;
6494: LD_ADDR_VAR 0 2
6498: PUSH
6499: LD_VAR 0 2
6503: PUSH
6504: LD_EXP 27
6508: ADD
6509: ST_TO_ADDR
// end ; if xavier > 0 then
6510: LD_EXP 28
6514: PUSH
6515: LD_INT 0
6517: GREATER
6518: IFFALSE 6562
// begin SetSide ( xavier , You ) ;
6520: LD_EXP 28
6524: PPUSH
6525: LD_EXP 1
6529: PPUSH
6530: CALL_OW 235
// SetClass ( xavier , class_soldier ) ;
6534: LD_EXP 28
6538: PPUSH
6539: LD_INT 1
6541: PPUSH
6542: CALL_OW 336
// lvyber = lvyber ^ xavier ;
6546: LD_ADDR_VAR 0 2
6550: PUSH
6551: LD_VAR 0 2
6555: PUSH
6556: LD_EXP 28
6560: ADD
6561: ST_TO_ADDR
// end ; if obluk > 0 then
6562: LD_EXP 29
6566: PUSH
6567: LD_INT 0
6569: GREATER
6570: IFFALSE 6614
// begin SetSide ( obluk , You ) ;
6572: LD_EXP 29
6576: PPUSH
6577: LD_EXP 1
6581: PPUSH
6582: CALL_OW 235
// SetClass ( obluk , class_soldier ) ;
6586: LD_EXP 29
6590: PPUSH
6591: LD_INT 1
6593: PPUSH
6594: CALL_OW 336
// lvyber = lvyber ^ obluk ;
6598: LD_ADDR_VAR 0 2
6602: PUSH
6603: LD_VAR 0 2
6607: PUSH
6608: LD_EXP 29
6612: ADD
6613: ST_TO_ADDR
// end ; if kozlov > 0 then
6614: LD_EXP 30
6618: PUSH
6619: LD_INT 0
6621: GREATER
6622: IFFALSE 6666
// begin SetSide ( kozlov , You ) ;
6624: LD_EXP 30
6628: PPUSH
6629: LD_EXP 1
6633: PPUSH
6634: CALL_OW 235
// SetClass ( kozlov , class_soldier ) ;
6638: LD_EXP 30
6642: PPUSH
6643: LD_INT 1
6645: PPUSH
6646: CALL_OW 336
// lvyber = lvyber ^ kozlov ;
6650: LD_ADDR_VAR 0 2
6654: PUSH
6655: LD_VAR 0 2
6659: PUSH
6660: LD_EXP 30
6664: ADD
6665: ST_TO_ADDR
// end ; if TestCharacters ( survivors3 ) then
6666: LD_STRING survivors3
6668: PPUSH
6669: CALL_OW 28
6673: IFFALSE 6688
// pom := CreateCharacterSet ( survivors3 ) ;
6675: LD_ADDR_VAR 0 5
6679: PUSH
6680: LD_STRING survivors3
6682: PPUSH
6683: CALL_OW 31
6687: ST_TO_ADDR
// everybody := pom ;
6688: LD_ADDR_EXP 5
6692: PUSH
6693: LD_VAR 0 5
6697: ST_TO_ADDR
// for i in pom do
6698: LD_ADDR_VAR 0 3
6702: PUSH
6703: LD_VAR 0 5
6707: PUSH
6708: FOR_IN
6709: IFFALSE 6722
// nastav_povolani_podle_skilu ( i ) ;
6711: LD_VAR 0 3
6715: PPUSH
6716: CALL 10814 0 1
6720: GO 6708
6722: POP
6723: POP
// if pom < pocet_lidi_na_zacatku [ difficulty ] then
6724: LD_VAR 0 5
6728: PUSH
6729: LD_EXP 38
6733: PUSH
6734: LD_OWVAR 67
6738: ARRAY
6739: LESS
6740: IFFALSE 6814
// for i := 1 to ( pocet_lidi_na_zacatku [ difficulty ] - pom ) do
6742: LD_ADDR_VAR 0 3
6746: PUSH
6747: DOUBLE
6748: LD_INT 1
6750: DEC
6751: ST_TO_ADDR
6752: LD_EXP 38
6756: PUSH
6757: LD_OWVAR 67
6761: ARRAY
6762: PUSH
6763: LD_VAR 0 5
6767: MINUS
6768: PUSH
6769: FOR_TO
6770: IFFALSE 6812
// pom = pom ^ get_human ( get_sex , Rand ( 1 , 4 ) , 6 ,  ) ;
6772: LD_ADDR_VAR 0 5
6776: PUSH
6777: LD_VAR 0 5
6781: PUSH
6782: CALL 7619 0 0
6786: PPUSH
6787: LD_INT 1
6789: PPUSH
6790: LD_INT 4
6792: PPUSH
6793: CALL_OW 12
6797: PPUSH
6798: LD_INT 6
6800: PPUSH
6801: LD_STRING 
6803: PPUSH
6804: CALL 7654 0 4
6808: ADD
6809: ST_TO_ADDR
6810: GO 6769
6812: POP
6813: POP
// lvyber = lvyber ^ pom ;
6814: LD_ADDR_VAR 0 2
6818: PUSH
6819: LD_VAR 0 2
6823: PUSH
6824: LD_VAR 0 5
6828: ADD
6829: ST_TO_ADDR
// pom = CharacterSelection ( Vyber si peopliky , pocet_lidi_na_zacatku [ difficulty ] , pocet_lidi_na_zacatku [ difficulty ] , lvyber , [ [ class_engineer , 1 ] , [ class_scientistic , 0 ] , [ class_mechanic , 0 ] , [ class_soldier , 0 ] ] ) ;
6830: LD_ADDR_VAR 0 5
6834: PUSH
6835: LD_STRING Vyber si peopliky
6837: PPUSH
6838: LD_EXP 38
6842: PUSH
6843: LD_OWVAR 67
6847: ARRAY
6848: PPUSH
6849: LD_EXP 38
6853: PUSH
6854: LD_OWVAR 67
6858: ARRAY
6859: PPUSH
6860: LD_VAR 0 2
6864: PPUSH
6865: LD_INT 2
6867: PUSH
6868: LD_INT 1
6870: PUSH
6871: EMPTY
6872: LIST
6873: LIST
6874: PUSH
6875: LD_INT 4
6877: PUSH
6878: LD_INT 0
6880: PUSH
6881: EMPTY
6882: LIST
6883: LIST
6884: PUSH
6885: LD_INT 3
6887: PUSH
6888: LD_INT 0
6890: PUSH
6891: EMPTY
6892: LIST
6893: LIST
6894: PUSH
6895: LD_INT 1
6897: PUSH
6898: LD_INT 0
6900: PUSH
6901: EMPTY
6902: LIST
6903: LIST
6904: PUSH
6905: EMPTY
6906: LIST
6907: LIST
6908: LIST
6909: LIST
6910: PPUSH
6911: CALL_OW 42
6915: ST_TO_ADDR
// everybody := everybody union pom ;
6916: LD_ADDR_EXP 5
6920: PUSH
6921: LD_EXP 5
6925: PUSH
6926: LD_VAR 0 5
6930: UNION
6931: ST_TO_ADDR
// vyber = [ bur ] ;
6932: LD_ADDR_VAR 0 6
6936: PUSH
6937: LD_EXP 12
6941: PUSH
6942: EMPTY
6943: LIST
6944: ST_TO_ADDR
// vyber = vyber ^ pom ;
6945: LD_ADDR_VAR 0 6
6949: PUSH
6950: LD_VAR 0 6
6954: PUSH
6955: LD_VAR 0 5
6959: ADD
6960: ST_TO_ADDR
// result := vyber ;
6961: LD_ADDR_VAR 0 1
6965: PUSH
6966: LD_VAR 0 6
6970: ST_TO_ADDR
// end ;
6971: LD_VAR 0 1
6975: RET
// export function create_rusky_konvoj ( lidicci ) ; var pom ; var lpom ; begin
6976: LD_INT 0
6978: PPUSH
6979: PPUSH
6980: PPUSH
// pom = [ ] ;
6981: LD_ADDR_VAR 0 3
6985: PUSH
6986: EMPTY
6987: ST_TO_ADDR
// lpom = lidicci ;
6988: LD_ADDR_VAR 0 4
6992: PUSH
6993: LD_VAR 0 1
6997: ST_TO_ADDR
// uc_nation = nation_russian ;
6998: LD_ADDR_OWVAR 21
7002: PUSH
7003: LD_INT 3
7005: ST_TO_ADDR
// uc_side = You ;
7006: LD_ADDR_OWVAR 20
7010: PUSH
7011: LD_EXP 1
7015: ST_TO_ADDR
// vc_chassis = masha_l [ 1 ] ;
7016: LD_ADDR_OWVAR 37
7020: PUSH
7021: LD_EXP 53
7025: PUSH
7026: LD_INT 1
7028: ARRAY
7029: ST_TO_ADDR
// vc_engine = masha_l [ 2 ] ;
7030: LD_ADDR_OWVAR 39
7034: PUSH
7035: LD_EXP 53
7039: PUSH
7040: LD_INT 2
7042: ARRAY
7043: ST_TO_ADDR
// vc_control = masha_l [ 3 ] ;
7044: LD_ADDR_OWVAR 38
7048: PUSH
7049: LD_EXP 53
7053: PUSH
7054: LD_INT 3
7056: ARRAY
7057: ST_TO_ADDR
// vc_weapon = masha_l [ 4 ] ;
7058: LD_ADDR_OWVAR 40
7062: PUSH
7063: LD_EXP 53
7067: PUSH
7068: LD_INT 4
7070: ARRAY
7071: ST_TO_ADDR
// av = CreateVehicle ;
7072: LD_ADDR_LOC 5
7076: PUSH
7077: CALL_OW 45
7081: ST_TO_ADDR
// masha = av ;
7082: LD_ADDR_EXP 11
7086: PUSH
7087: LD_LOC 5
7091: ST_TO_ADDR
// SetMark ( masha , 1 ) ;
7092: LD_EXP 11
7096: PPUSH
7097: LD_INT 1
7099: PPUSH
7100: CALL_OW 242
// PlaceHumanInUnit ( bur , masha ) ;
7104: LD_EXP 12
7108: PPUSH
7109: LD_EXP 11
7113: PPUSH
7114: CALL_OW 52
// lpom = lpom diff bur ;
7118: LD_ADDR_VAR 0 4
7122: PUSH
7123: LD_VAR 0 4
7127: PUSH
7128: LD_EXP 12
7132: DIFF
7133: ST_TO_ADDR
// pom = pom ^ masha ;
7134: LD_ADDR_VAR 0 3
7138: PUSH
7139: LD_VAR 0 3
7143: PUSH
7144: LD_EXP 11
7148: ADD
7149: ST_TO_ADDR
// vc_control = control_manual ;
7150: LD_ADDR_OWVAR 38
7154: PUSH
7155: LD_INT 1
7157: ST_TO_ADDR
// vc_engine = engine_combustion ;
7158: LD_ADDR_OWVAR 39
7162: PUSH
7163: LD_INT 1
7165: ST_TO_ADDR
// vc_chassis = ru_medium_tracked ;
7166: LD_ADDR_OWVAR 37
7170: PUSH
7171: LD_INT 22
7173: ST_TO_ADDR
// vc_weapon = ru_cargo_bay ;
7174: LD_ADDR_OWVAR 40
7178: PUSH
7179: LD_INT 51
7181: ST_TO_ADDR
// av = CreateVehicle ;
7182: LD_ADDR_LOC 5
7186: PUSH
7187: CALL_OW 45
7191: ST_TO_ADDR
// PlaceHumanInUnit ( lpom [ 1 ] , av ) ;
7192: LD_VAR 0 4
7196: PUSH
7197: LD_INT 1
7199: ARRAY
7200: PPUSH
7201: LD_LOC 5
7205: PPUSH
7206: CALL_OW 52
// AddCargo ( av , mat_cans , 100 ) ;
7210: LD_LOC 5
7214: PPUSH
7215: LD_INT 1
7217: PPUSH
7218: LD_INT 100
7220: PPUSH
7221: CALL_OW 291
// pom = pom ^ av ;
7225: LD_ADDR_VAR 0 3
7229: PUSH
7230: LD_VAR 0 3
7234: PUSH
7235: LD_LOC 5
7239: ADD
7240: ST_TO_ADDR
// av = CreateVehicle ;
7241: LD_ADDR_LOC 5
7245: PUSH
7246: CALL_OW 45
7250: ST_TO_ADDR
// PlaceHumanInUnit ( lpom [ 2 ] , av ) ;
7251: LD_VAR 0 4
7255: PUSH
7256: LD_INT 2
7258: ARRAY
7259: PPUSH
7260: LD_LOC 5
7264: PPUSH
7265: CALL_OW 52
// AddCargo ( av , mat_cans , 50 ) ;
7269: LD_LOC 5
7273: PPUSH
7274: LD_INT 1
7276: PPUSH
7277: LD_INT 50
7279: PPUSH
7280: CALL_OW 291
// AddCargo ( av , mat_oil , 50 ) ;
7284: LD_LOC 5
7288: PPUSH
7289: LD_INT 2
7291: PPUSH
7292: LD_INT 50
7294: PPUSH
7295: CALL_OW 291
// pom = pom ^ av ;
7299: LD_ADDR_VAR 0 3
7303: PUSH
7304: LD_VAR 0 3
7308: PUSH
7309: LD_LOC 5
7313: ADD
7314: ST_TO_ADDR
// av = CreateVehicle ;
7315: LD_ADDR_LOC 5
7319: PUSH
7320: CALL_OW 45
7324: ST_TO_ADDR
// PlaceHumanInUnit ( lpom [ 3 ] , av ) ;
7325: LD_VAR 0 4
7329: PUSH
7330: LD_INT 3
7332: ARRAY
7333: PPUSH
7334: LD_LOC 5
7338: PPUSH
7339: CALL_OW 52
// AddCargo ( av , mat_cans , 20 ) ;
7343: LD_LOC 5
7347: PPUSH
7348: LD_INT 1
7350: PPUSH
7351: LD_INT 20
7353: PPUSH
7354: CALL_OW 291
// AddCargo ( av , mat_oil , 40 ) ;
7358: LD_LOC 5
7362: PPUSH
7363: LD_INT 2
7365: PPUSH
7366: LD_INT 40
7368: PPUSH
7369: CALL_OW 291
// AddCargo ( av , mat_siberit , 20 ) ;
7373: LD_LOC 5
7377: PPUSH
7378: LD_INT 3
7380: PPUSH
7381: LD_INT 20
7383: PPUSH
7384: CALL_OW 291
// pom = pom ^ av ;
7388: LD_ADDR_VAR 0 3
7392: PUSH
7393: LD_VAR 0 3
7397: PUSH
7398: LD_LOC 5
7402: ADD
7403: ST_TO_ADDR
// vc_weapon = ru_crane ;
7404: LD_ADDR_OWVAR 40
7408: PUSH
7409: LD_INT 52
7411: ST_TO_ADDR
// vc_chassis = ru_medium_tracked ;
7412: LD_ADDR_OWVAR 37
7416: PUSH
7417: LD_INT 22
7419: ST_TO_ADDR
// av = CreateVehicle ;
7420: LD_ADDR_LOC 5
7424: PUSH
7425: CALL_OW 45
7429: ST_TO_ADDR
// PlaceHumanInUnit ( lpom [ 4 ] , av ) ;
7430: LD_VAR 0 4
7434: PUSH
7435: LD_INT 4
7437: ARRAY
7438: PPUSH
7439: LD_LOC 5
7443: PPUSH
7444: CALL_OW 52
// pom = pom ^ av ;
7448: LD_ADDR_VAR 0 3
7452: PUSH
7453: LD_VAR 0 3
7457: PUSH
7458: LD_LOC 5
7462: ADD
7463: ST_TO_ADDR
// vc_weapon = zbran_na_uvod [ difficulty ] ;
7464: LD_ADDR_OWVAR 40
7468: PUSH
7469: LD_EXP 50
7473: PUSH
7474: LD_OWVAR 67
7478: ARRAY
7479: ST_TO_ADDR
// vc_chassis = chassis_na_uvod [ difficulty ] ;
7480: LD_ADDR_OWVAR 37
7484: PUSH
7485: LD_EXP 51
7489: PUSH
7490: LD_OWVAR 67
7494: ARRAY
7495: ST_TO_ADDR
// if difficulty < 3 then
7496: LD_OWVAR 67
7500: PUSH
7501: LD_INT 3
7503: LESS
7504: IFFALSE 7550
// begin av = CreateVehicle ;
7506: LD_ADDR_LOC 5
7510: PUSH
7511: CALL_OW 45
7515: ST_TO_ADDR
// PlaceHumanInUnit ( lpom [ 5 ] , av ) ;
7516: LD_VAR 0 4
7520: PUSH
7521: LD_INT 5
7523: ARRAY
7524: PPUSH
7525: LD_LOC 5
7529: PPUSH
7530: CALL_OW 52
// pom = pom ^ av ;
7534: LD_ADDR_VAR 0 3
7538: PUSH
7539: LD_VAR 0 3
7543: PUSH
7544: LD_LOC 5
7548: ADD
7549: ST_TO_ADDR
// end ; if difficulty < 2 then
7550: LD_OWVAR 67
7554: PUSH
7555: LD_INT 2
7557: LESS
7558: IFFALSE 7604
// begin av = CreateVehicle ;
7560: LD_ADDR_LOC 5
7564: PUSH
7565: CALL_OW 45
7569: ST_TO_ADDR
// PlaceHumanInUnit ( lpom [ 6 ] , av ) ;
7570: LD_VAR 0 4
7574: PUSH
7575: LD_INT 6
7577: ARRAY
7578: PPUSH
7579: LD_LOC 5
7583: PPUSH
7584: CALL_OW 52
// pom = pom ^ av ;
7588: LD_ADDR_VAR 0 3
7592: PUSH
7593: LD_VAR 0 3
7597: PUSH
7598: LD_LOC 5
7602: ADD
7603: ST_TO_ADDR
// end ; RUSI_ENTER_LIST = pom ;
7604: LD_ADDR_EXP 32
7608: PUSH
7609: LD_VAR 0 3
7613: ST_TO_ADDR
// end ;
7614: LD_VAR 0 2
7618: RET
// function get_sex ; begin
7619: LD_INT 0
7621: PPUSH
// if Prob ( 20 ) then
7622: LD_INT 20
7624: PPUSH
7625: CALL_OW 13
7629: IFFALSE 7641
// result = sex_female else
7631: LD_ADDR_VAR 0 1
7635: PUSH
7636: LD_INT 2
7638: ST_TO_ADDR
7639: GO 7649
// result = sex_male ;
7641: LD_ADDR_VAR 0 1
7645: PUSH
7646: LD_INT 1
7648: ST_TO_ADDR
// end ;
7649: LD_VAR 0 1
7653: RET
// function get_human ( sex , clas , level , name ) ; var pom ; begin
7654: LD_INT 0
7656: PPUSH
7657: PPUSH
// PrepareHuman ( sex , clas , level ) ;
7658: LD_VAR 0 1
7662: PPUSH
7663: LD_VAR 0 2
7667: PPUSH
7668: LD_VAR 0 3
7672: PPUSH
7673: CALL_OW 380
// hc_name := name ;
7677: LD_ADDR_OWVAR 26
7681: PUSH
7682: LD_VAR 0 4
7686: ST_TO_ADDR
// pom = CreateHuman ;
7687: LD_ADDR_VAR 0 6
7691: PUSH
7692: CALL_OW 44
7696: ST_TO_ADDR
// result := pom ;
7697: LD_ADDR_VAR 0 5
7701: PUSH
7702: LD_VAR 0 6
7706: ST_TO_ADDR
// end ;
7707: LD_VAR 0 5
7711: RET
// export function vytvor_araby ; begin
7712: LD_INT 0
7714: PPUSH
// uc_nation = nation_arabian ;
7715: LD_ADDR_OWVAR 21
7719: PUSH
7720: LD_INT 2
7722: ST_TO_ADDR
// uc_side = Arabi ;
7723: LD_ADDR_OWVAR 20
7727: PUSH
7728: LD_EXP 4
7732: ST_TO_ADDR
// diet = nacti_osobu ( Dietrich ) ;
7733: LD_ADDR_EXP 56
7737: PUSH
7738: LD_STRING Dietrich
7740: PPUSH
7741: CALL 7927 0 1
7745: ST_TO_ADDR
// SetSide ( diet , Arabi ) ;
7746: LD_EXP 56
7750: PPUSH
7751: LD_EXP 4
7755: PPUSH
7756: CALL_OW 235
// PlaceUnitXY ( diet , 76 , 19 , false ) ;
7760: LD_EXP 56
7764: PPUSH
7765: LD_INT 76
7767: PPUSH
7768: LD_INT 19
7770: PPUSH
7771: LD_INT 0
7773: PPUSH
7774: CALL_OW 48
// A2 = get_human ( sex_male , class_soldier , levely_arabi [ difficulty ] ,  ) ;
7778: LD_ADDR_EXP 57
7782: PUSH
7783: LD_INT 1
7785: PPUSH
7786: LD_INT 1
7788: PPUSH
7789: LD_EXP 39
7793: PUSH
7794: LD_OWVAR 67
7798: ARRAY
7799: PPUSH
7800: LD_STRING 
7802: PPUSH
7803: CALL 7654 0 4
7807: ST_TO_ADDR
// PlaceUnitXY ( A2 , 74 , 22 , false ) ;
7808: LD_EXP 57
7812: PPUSH
7813: LD_INT 74
7815: PPUSH
7816: LD_INT 22
7818: PPUSH
7819: LD_INT 0
7821: PPUSH
7822: CALL_OW 48
// A3 = get_human ( sex_male , class_engineer , levely_arabi [ difficulty ] ,  ) ;
7826: LD_ADDR_EXP 58
7830: PUSH
7831: LD_INT 1
7833: PPUSH
7834: LD_INT 2
7836: PPUSH
7837: LD_EXP 39
7841: PUSH
7842: LD_OWVAR 67
7846: ARRAY
7847: PPUSH
7848: LD_STRING 
7850: PPUSH
7851: CALL 7654 0 4
7855: ST_TO_ADDR
// PlaceUnitXY ( A3 , 74 , 21 , false ) ;
7856: LD_EXP 58
7860: PPUSH
7861: LD_INT 74
7863: PPUSH
7864: LD_INT 21
7866: PPUSH
7867: LD_INT 0
7869: PPUSH
7870: CALL_OW 48
// A4 = get_human ( sex_male , class_soldier , levely_arabi [ difficulty ] ,  ) ;
7874: LD_ADDR_EXP 59
7878: PUSH
7879: LD_INT 1
7881: PPUSH
7882: LD_INT 1
7884: PPUSH
7885: LD_EXP 39
7889: PUSH
7890: LD_OWVAR 67
7894: ARRAY
7895: PPUSH
7896: LD_STRING 
7898: PPUSH
7899: CALL 7654 0 4
7903: ST_TO_ADDR
// PlaceUnitXY ( A4 , 75 , 22 , false ) ;
7904: LD_EXP 59
7908: PPUSH
7909: LD_INT 75
7911: PPUSH
7912: LD_INT 22
7914: PPUSH
7915: LD_INT 0
7917: PPUSH
7918: CALL_OW 48
// end ;
7922: LD_VAR 0 1
7926: RET
// export function nacti_osobu ( ident ) ; begin
7927: LD_INT 0
7929: PPUSH
// if CheckCharacterSet ( ident ) then
7930: LD_VAR 0 1
7934: PPUSH
7935: CALL_OW 29
7939: IFFALSE 7958
// result := CreateCharacter ( ident ) else
7941: LD_ADDR_VAR 0 2
7945: PUSH
7946: LD_VAR 0 1
7950: PPUSH
7951: CALL_OW 34
7955: ST_TO_ADDR
7956: GO 7966
// result := 0 ;
7958: LD_ADDR_VAR 0 2
7962: PUSH
7963: LD_INT 0
7965: ST_TO_ADDR
// end ;
7966: LD_VAR 0 2
7970: RET
// export function vytvor_amiky ; begin
7971: LD_INT 0
7973: PPUSH
// uc_nation = nation_american ;
7974: LD_ADDR_OWVAR 21
7978: PUSH
7979: LD_INT 1
7981: ST_TO_ADDR
// uc_side = Amici ;
7982: LD_ADDR_OWVAR 20
7986: PUSH
7987: LD_EXP 2
7991: ST_TO_ADDR
// Joan = nacti_osobu ( Joan ) ;
7992: LD_ADDR_EXP 62
7996: PUSH
7997: LD_STRING Joan
7999: PPUSH
8000: CALL 7927 0 1
8004: ST_TO_ADDR
// SetClass ( Joan , class_scientistic ) ;
8005: LD_EXP 62
8009: PPUSH
8010: LD_INT 4
8012: PPUSH
8013: CALL_OW 336
// SetSide ( Joan , Amici ) ;
8017: LD_EXP 62
8021: PPUSH
8022: LD_EXP 2
8026: PPUSH
8027: CALL_OW 235
// JMM = nacti_osobu ( MacMillan ) ;
8031: LD_ADDR_EXP 61
8035: PUSH
8036: LD_STRING MacMillan
8038: PPUSH
8039: CALL 7927 0 1
8043: ST_TO_ADDR
// SetSide ( JMM , Amici ) ;
8044: LD_EXP 61
8048: PPUSH
8049: LD_EXP 2
8053: PPUSH
8054: CALL_OW 235
// SetClass ( JMM , class_soldier ) ;
8058: LD_EXP 61
8062: PPUSH
8063: LD_INT 1
8065: PPUSH
8066: CALL_OW 336
// PlaceUnitXY ( Joan , 111 , 41 , false ) ;
8070: LD_EXP 62
8074: PPUSH
8075: LD_INT 111
8077: PPUSH
8078: LD_INT 41
8080: PPUSH
8081: LD_INT 0
8083: PPUSH
8084: CALL_OW 48
// ah = get_human ( sex_female , class_scientistic , levely_amici [ difficulty ] , Karin Horak ) ;
8088: LD_ADDR_LOC 6
8092: PUSH
8093: LD_INT 2
8095: PPUSH
8096: LD_INT 4
8098: PPUSH
8099: LD_EXP 42
8103: PUSH
8104: LD_OWVAR 67
8108: ARRAY
8109: PPUSH
8110: LD_STRING Karin Horak
8112: PPUSH
8113: CALL 7654 0 4
8117: ST_TO_ADDR
// PlaceUnitXY ( ah , 107 , 30 , false ) ;
8118: LD_LOC 6
8122: PPUSH
8123: LD_INT 107
8125: PPUSH
8126: LD_INT 30
8128: PPUSH
8129: LD_INT 0
8131: PPUSH
8132: CALL_OW 48
// VEDCI1 = [ ah ] ;
8136: LD_ADDR_EXP 63
8140: PUSH
8141: LD_LOC 6
8145: PUSH
8146: EMPTY
8147: LIST
8148: ST_TO_ADDR
// ah = get_human ( get_sex , class_scientistic , levely_amici [ difficulty ] ,  ) ;
8149: LD_ADDR_LOC 6
8153: PUSH
8154: CALL 7619 0 0
8158: PPUSH
8159: LD_INT 4
8161: PPUSH
8162: LD_EXP 42
8166: PUSH
8167: LD_OWVAR 67
8171: ARRAY
8172: PPUSH
8173: LD_STRING 
8175: PPUSH
8176: CALL 7654 0 4
8180: ST_TO_ADDR
// PlaceUnitXY ( ah , 110 , 32 , false ) ;
8181: LD_LOC 6
8185: PPUSH
8186: LD_INT 110
8188: PPUSH
8189: LD_INT 32
8191: PPUSH
8192: LD_INT 0
8194: PPUSH
8195: CALL_OW 48
// VEDCI1 = VEDCI1 ^ ah ;
8199: LD_ADDR_EXP 63
8203: PUSH
8204: LD_EXP 63
8208: PUSH
8209: LD_LOC 6
8213: ADD
8214: ST_TO_ADDR
// ah = get_human ( sex_female , class_scientistic , levely_amici [ difficulty ] ,  ) ;
8215: LD_ADDR_LOC 6
8219: PUSH
8220: LD_INT 2
8222: PPUSH
8223: LD_INT 4
8225: PPUSH
8226: LD_EXP 42
8230: PUSH
8231: LD_OWVAR 67
8235: ARRAY
8236: PPUSH
8237: LD_STRING 
8239: PPUSH
8240: CALL 7654 0 4
8244: ST_TO_ADDR
// PlaceUnitXY ( ah , 113 , 40 , false ) ;
8245: LD_LOC 6
8249: PPUSH
8250: LD_INT 113
8252: PPUSH
8253: LD_INT 40
8255: PPUSH
8256: LD_INT 0
8258: PPUSH
8259: CALL_OW 48
// VEDCI2 = [ ah ] ;
8263: LD_ADDR_EXP 64
8267: PUSH
8268: LD_LOC 6
8272: PUSH
8273: EMPTY
8274: LIST
8275: ST_TO_ADDR
// ah = get_human ( sex_female , class_scientistic , levely_amici [ difficulty ] ,  ) ;
8276: LD_ADDR_LOC 6
8280: PUSH
8281: LD_INT 2
8283: PPUSH
8284: LD_INT 4
8286: PPUSH
8287: LD_EXP 42
8291: PUSH
8292: LD_OWVAR 67
8296: ARRAY
8297: PPUSH
8298: LD_STRING 
8300: PPUSH
8301: CALL 7654 0 4
8305: ST_TO_ADDR
// PlaceUnitXY ( ah , 112 , 40 , false ) ;
8306: LD_LOC 6
8310: PPUSH
8311: LD_INT 112
8313: PPUSH
8314: LD_INT 40
8316: PPUSH
8317: LD_INT 0
8319: PPUSH
8320: CALL_OW 48
// VEDCI2 = VEDCI2 ^ ah ;
8324: LD_ADDR_EXP 64
8328: PUSH
8329: LD_EXP 64
8333: PUSH
8334: LD_LOC 6
8338: ADD
8339: ST_TO_ADDR
// ah = get_human ( get_sex , class_scientistic , levely_amici [ difficulty ] ,  ) ;
8340: LD_ADDR_LOC 6
8344: PUSH
8345: CALL 7619 0 0
8349: PPUSH
8350: LD_INT 4
8352: PPUSH
8353: LD_EXP 42
8357: PUSH
8358: LD_OWVAR 67
8362: ARRAY
8363: PPUSH
8364: LD_STRING 
8366: PPUSH
8367: CALL 7654 0 4
8371: ST_TO_ADDR
// PlaceUnitXY ( ah , 106 , 43 , false ) ;
8372: LD_LOC 6
8376: PPUSH
8377: LD_INT 106
8379: PPUSH
8380: LD_INT 43
8382: PPUSH
8383: LD_INT 0
8385: PPUSH
8386: CALL_OW 48
// VEDCI3 = [ ah ] ;
8390: LD_ADDR_EXP 65
8394: PUSH
8395: LD_LOC 6
8399: PUSH
8400: EMPTY
8401: LIST
8402: ST_TO_ADDR
// ah = get_human ( get_sex , class_scientistic , levely_amici [ difficulty ] ,  ) ;
8403: LD_ADDR_LOC 6
8407: PUSH
8408: CALL 7619 0 0
8412: PPUSH
8413: LD_INT 4
8415: PPUSH
8416: LD_EXP 42
8420: PUSH
8421: LD_OWVAR 67
8425: ARRAY
8426: PPUSH
8427: LD_STRING 
8429: PPUSH
8430: CALL 7654 0 4
8434: ST_TO_ADDR
// PlaceUnitXY ( ah , 106 , 44 , false ) ;
8435: LD_LOC 6
8439: PPUSH
8440: LD_INT 106
8442: PPUSH
8443: LD_INT 44
8445: PPUSH
8446: LD_INT 0
8448: PPUSH
8449: CALL_OW 48
// VEDCI3 = VEDCI3 ^ ah ;
8453: LD_ADDR_EXP 65
8457: PUSH
8458: LD_EXP 65
8462: PUSH
8463: LD_LOC 6
8467: ADD
8468: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] + 1 , David Love ) ;
8469: LD_ADDR_LOC 6
8473: PUSH
8474: CALL 7619 0 0
8478: PPUSH
8479: LD_INT 3
8481: PPUSH
8482: LD_EXP 42
8486: PUSH
8487: LD_OWVAR 67
8491: ARRAY
8492: PUSH
8493: LD_INT 1
8495: PLUS
8496: PPUSH
8497: LD_STRING David Love
8499: PPUSH
8500: CALL 7654 0 4
8504: ST_TO_ADDR
// PlaceUnitXY ( ah , 105 , 29 , false ) ;
8505: LD_LOC 6
8509: PPUSH
8510: LD_INT 105
8512: PPUSH
8513: LD_INT 29
8515: PPUSH
8516: LD_INT 0
8518: PPUSH
8519: CALL_OW 48
// Am_mech = ah ;
8523: LD_ADDR_EXP 68
8527: PUSH
8528: LD_LOC 6
8532: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] + 1 ,  ) ;
8533: LD_ADDR_LOC 6
8537: PUSH
8538: CALL 7619 0 0
8542: PPUSH
8543: LD_INT 3
8545: PPUSH
8546: LD_EXP 42
8550: PUSH
8551: LD_OWVAR 67
8555: ARRAY
8556: PUSH
8557: LD_INT 1
8559: PLUS
8560: PPUSH
8561: LD_STRING 
8563: PPUSH
8564: CALL 7654 0 4
8568: ST_TO_ADDR
// PlaceUnitXY ( ah , 105 , 30 , false ) ;
8569: LD_LOC 6
8573: PPUSH
8574: LD_INT 105
8576: PPUSH
8577: LD_INT 30
8579: PPUSH
8580: LD_INT 0
8582: PPUSH
8583: CALL_OW 48
// Am_mech = Am_mech ^ ah ;
8587: LD_ADDR_EXP 68
8591: PUSH
8592: LD_EXP 68
8596: PUSH
8597: LD_LOC 6
8601: ADD
8602: ST_TO_ADDR
// prepare_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
8603: CALL 7619 0 0
8607: PPUSH
8608: LD_INT 3
8610: PPUSH
8611: LD_EXP 42
8615: PUSH
8616: LD_OWVAR 67
8620: ARRAY
8621: PPUSH
8622: LD_STRING 
8624: PPUSH
8625: CALL 8874 0 4
// SetSkill ( ah , skill_combat , 6 ) ;
8629: LD_LOC 6
8633: PPUSH
8634: LD_INT 1
8636: PPUSH
8637: LD_INT 6
8639: PPUSH
8640: CALL_OW 237
// ah = CreateHuman ;
8644: LD_ADDR_LOC 6
8648: PUSH
8649: CALL_OW 44
8653: ST_TO_ADDR
// PlaceUnitXY ( ah , 106 , 39 , false ) ;
8654: LD_LOC 6
8658: PPUSH
8659: LD_INT 106
8661: PPUSH
8662: LD_INT 39
8664: PPUSH
8665: LD_INT 0
8667: PPUSH
8668: CALL_OW 48
// Am_vyr = ah ;
8672: LD_ADDR_EXP 69
8676: PUSH
8677: LD_LOC 6
8681: ST_TO_ADDR
// ah = get_human ( sex_male , class_soldier , levely_amici [ difficulty ] ,  ) ;
8682: LD_ADDR_LOC 6
8686: PUSH
8687: LD_INT 1
8689: PPUSH
8690: LD_INT 1
8692: PPUSH
8693: LD_EXP 42
8697: PUSH
8698: LD_OWVAR 67
8702: ARRAY
8703: PPUSH
8704: LD_STRING 
8706: PPUSH
8707: CALL 7654 0 4
8711: ST_TO_ADDR
// PlaceUnitXY ( ah , 104 , 39 , false ) ;
8712: LD_LOC 6
8716: PPUSH
8717: LD_INT 104
8719: PPUSH
8720: LD_INT 39
8722: PPUSH
8723: LD_INT 0
8725: PPUSH
8726: CALL_OW 48
// Am_sol = [ ah ] ;
8730: LD_ADDR_EXP 67
8734: PUSH
8735: LD_LOC 6
8739: PUSH
8740: EMPTY
8741: LIST
8742: ST_TO_ADDR
// ah = get_human ( sex_male , class_soldier , levely_amici [ difficulty ] ,  ) ;
8743: LD_ADDR_LOC 6
8747: PUSH
8748: LD_INT 1
8750: PPUSH
8751: LD_INT 1
8753: PPUSH
8754: LD_EXP 42
8758: PUSH
8759: LD_OWVAR 67
8763: ARRAY
8764: PPUSH
8765: LD_STRING 
8767: PPUSH
8768: CALL 7654 0 4
8772: ST_TO_ADDR
// PlaceUnitXY ( ah , 102 , 44 , false ) ;
8773: LD_LOC 6
8777: PPUSH
8778: LD_INT 102
8780: PPUSH
8781: LD_INT 44
8783: PPUSH
8784: LD_INT 0
8786: PPUSH
8787: CALL_OW 48
// Am_sol = Am_sol ^ ah ;
8791: LD_ADDR_EXP 67
8795: PUSH
8796: LD_EXP 67
8800: PUSH
8801: LD_LOC 6
8805: ADD
8806: ST_TO_ADDR
// ah = get_human ( sex_male , class_sniper , levely_amici [ difficulty ] - 2 ,  ) ;
8807: LD_ADDR_LOC 6
8811: PUSH
8812: LD_INT 1
8814: PPUSH
8815: LD_INT 5
8817: PPUSH
8818: LD_EXP 42
8822: PUSH
8823: LD_OWVAR 67
8827: ARRAY
8828: PUSH
8829: LD_INT 2
8831: MINUS
8832: PPUSH
8833: LD_STRING 
8835: PPUSH
8836: CALL 7654 0 4
8840: ST_TO_ADDR
// PlaceUnitXY ( ah , 98 , 43 , false ) ;
8841: LD_LOC 6
8845: PPUSH
8846: LD_INT 98
8848: PPUSH
8849: LD_INT 43
8851: PPUSH
8852: LD_INT 0
8854: PPUSH
8855: CALL_OW 48
// Am_snipe = ah ;
8859: LD_ADDR_EXP 70
8863: PUSH
8864: LD_LOC 6
8868: ST_TO_ADDR
// end ;
8869: LD_VAR 0 1
8873: RET
// function prepare_human ( sex , clas , level , name ) ; begin
8874: LD_INT 0
8876: PPUSH
// PrepareHuman ( sex , clas , level ) ;
8877: LD_VAR 0 1
8881: PPUSH
8882: LD_VAR 0 2
8886: PPUSH
8887: LD_VAR 0 3
8891: PPUSH
8892: CALL_OW 380
// hc_name := name ;
8896: LD_ADDR_OWVAR 26
8900: PUSH
8901: LD_VAR 0 4
8905: ST_TO_ADDR
// end ;
8906: LD_VAR 0 5
8910: RET
// export function create_first_utok ; var pom ; begin
8911: LD_INT 0
8913: PPUSH
8914: PPUSH
// pom = [ ] ;
8915: LD_ADDR_VAR 0 2
8919: PUSH
8920: EMPTY
8921: ST_TO_ADDR
// uc_nation = nation_american ;
8922: LD_ADDR_OWVAR 21
8926: PUSH
8927: LD_INT 1
8929: ST_TO_ADDR
// uc_side = Amici2 ;
8930: LD_ADDR_OWVAR 20
8934: PUSH
8935: LD_EXP 3
8939: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
8940: LD_ADDR_VAR 0 2
8944: PUSH
8945: CALL 7619 0 0
8949: PPUSH
8950: LD_INT 1
8952: PPUSH
8953: LD_EXP 42
8957: PUSH
8958: LD_OWVAR 67
8962: ARRAY
8963: PPUSH
8964: LD_STRING 
8966: PPUSH
8967: CALL 7654 0 4
8971: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
8972: LD_ADDR_VAR 0 2
8976: PUSH
8977: LD_VAR 0 2
8981: PUSH
8982: CALL 7619 0 0
8986: PPUSH
8987: LD_INT 1
8989: PPUSH
8990: LD_EXP 42
8994: PUSH
8995: LD_OWVAR 67
8999: ARRAY
9000: PPUSH
9001: LD_STRING 
9003: PPUSH
9004: CALL 7654 0 4
9008: ADD
9009: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
9010: LD_ADDR_VAR 0 2
9014: PUSH
9015: LD_VAR 0 2
9019: PUSH
9020: CALL 7619 0 0
9024: PPUSH
9025: LD_INT 1
9027: PPUSH
9028: LD_EXP 42
9032: PUSH
9033: LD_OWVAR 67
9037: ARRAY
9038: PPUSH
9039: LD_STRING 
9041: PPUSH
9042: CALL 7654 0 4
9046: ADD
9047: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] - 3 ,  ) ;
9048: LD_ADDR_LOC 6
9052: PUSH
9053: CALL 7619 0 0
9057: PPUSH
9058: LD_INT 3
9060: PPUSH
9061: LD_EXP 42
9065: PUSH
9066: LD_OWVAR 67
9070: ARRAY
9071: PUSH
9072: LD_INT 3
9074: MINUS
9075: PPUSH
9076: LD_STRING 
9078: PPUSH
9079: CALL 7654 0 4
9083: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
9084: LD_ADDR_OWVAR 37
9088: PUSH
9089: LD_INT 3
9091: ST_TO_ADDR
// vc_control = control_manual ;
9092: LD_ADDR_OWVAR 38
9096: PUSH
9097: LD_INT 1
9099: ST_TO_ADDR
// vc_engine = engine_combustion ;
9100: LD_ADDR_OWVAR 39
9104: PUSH
9105: LD_INT 1
9107: ST_TO_ADDR
// vc_weapon = us_double_gun ;
9108: LD_ADDR_OWVAR 40
9112: PUSH
9113: LD_INT 5
9115: ST_TO_ADDR
// av = CreateVehicle ;
9116: LD_ADDR_LOC 5
9120: PUSH
9121: CALL_OW 45
9125: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9126: LD_LOC 6
9130: PPUSH
9131: LD_LOC 5
9135: PPUSH
9136: CALL_OW 52
// pom = pom ^ av ;
9140: LD_ADDR_VAR 0 2
9144: PUSH
9145: LD_VAR 0 2
9149: PUSH
9150: LD_LOC 5
9154: ADD
9155: ST_TO_ADDR
// AM_UTOK_1_LIST = pom ;
9156: LD_ADDR_EXP 33
9160: PUSH
9161: LD_VAR 0 2
9165: ST_TO_ADDR
// end ;
9166: LD_VAR 0 1
9170: RET
// export function create_second_utok ; var pom ; begin
9171: LD_INT 0
9173: PPUSH
9174: PPUSH
// pom = [ ] ;
9175: LD_ADDR_VAR 0 2
9179: PUSH
9180: EMPTY
9181: ST_TO_ADDR
// uc_nation = nation_american ;
9182: LD_ADDR_OWVAR 21
9186: PUSH
9187: LD_INT 1
9189: ST_TO_ADDR
// uc_side = Amici2 ;
9190: LD_ADDR_OWVAR 20
9194: PUSH
9195: LD_EXP 3
9199: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
9200: LD_ADDR_VAR 0 2
9204: PUSH
9205: CALL 7619 0 0
9209: PPUSH
9210: LD_INT 1
9212: PPUSH
9213: LD_EXP 42
9217: PUSH
9218: LD_OWVAR 67
9222: ARRAY
9223: PPUSH
9224: LD_STRING 
9226: PPUSH
9227: CALL 7654 0 4
9231: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
9232: LD_ADDR_VAR 0 2
9236: PUSH
9237: LD_VAR 0 2
9241: PUSH
9242: CALL 7619 0 0
9246: PPUSH
9247: LD_INT 1
9249: PPUSH
9250: LD_EXP 42
9254: PUSH
9255: LD_OWVAR 67
9259: ARRAY
9260: PPUSH
9261: LD_STRING 
9263: PPUSH
9264: CALL 7654 0 4
9268: ADD
9269: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] - 3 ,  ) ;
9270: LD_ADDR_LOC 6
9274: PUSH
9275: CALL 7619 0 0
9279: PPUSH
9280: LD_INT 3
9282: PPUSH
9283: LD_EXP 42
9287: PUSH
9288: LD_OWVAR 67
9292: ARRAY
9293: PUSH
9294: LD_INT 3
9296: MINUS
9297: PPUSH
9298: LD_STRING 
9300: PPUSH
9301: CALL 7654 0 4
9305: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
9306: LD_ADDR_OWVAR 37
9310: PUSH
9311: LD_INT 3
9313: ST_TO_ADDR
// vc_control = control_manual ;
9314: LD_ADDR_OWVAR 38
9318: PUSH
9319: LD_INT 1
9321: ST_TO_ADDR
// vc_engine = engine_combustion ;
9322: LD_ADDR_OWVAR 39
9326: PUSH
9327: LD_INT 1
9329: ST_TO_ADDR
// vc_weapon = us_double_gun ;
9330: LD_ADDR_OWVAR 40
9334: PUSH
9335: LD_INT 5
9337: ST_TO_ADDR
// av = CreateVehicle ;
9338: LD_ADDR_LOC 5
9342: PUSH
9343: CALL_OW 45
9347: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9348: LD_LOC 6
9352: PPUSH
9353: LD_LOC 5
9357: PPUSH
9358: CALL_OW 52
// pom = pom ^ av ;
9362: LD_ADDR_VAR 0 2
9366: PUSH
9367: LD_VAR 0 2
9371: PUSH
9372: LD_LOC 5
9376: ADD
9377: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] - 3 ,  ) ;
9378: LD_ADDR_LOC 6
9382: PUSH
9383: CALL 7619 0 0
9387: PPUSH
9388: LD_INT 3
9390: PPUSH
9391: LD_EXP 42
9395: PUSH
9396: LD_OWVAR 67
9400: ARRAY
9401: PUSH
9402: LD_INT 3
9404: MINUS
9405: PPUSH
9406: LD_STRING 
9408: PPUSH
9409: CALL 7654 0 4
9413: ST_TO_ADDR
// av = CreateVehicle ;
9414: LD_ADDR_LOC 5
9418: PUSH
9419: CALL_OW 45
9423: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9424: LD_LOC 6
9428: PPUSH
9429: LD_LOC 5
9433: PPUSH
9434: CALL_OW 52
// pom = pom ^ av ;
9438: LD_ADDR_VAR 0 2
9442: PUSH
9443: LD_VAR 0 2
9447: PUSH
9448: LD_LOC 5
9452: ADD
9453: ST_TO_ADDR
// if difficulty > 2 then
9454: LD_OWVAR 67
9458: PUSH
9459: LD_INT 2
9461: GREATER
9462: IFFALSE 9572
// begin ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] - 3 ,  ) ;
9464: LD_ADDR_LOC 6
9468: PUSH
9469: CALL 7619 0 0
9473: PPUSH
9474: LD_INT 3
9476: PPUSH
9477: LD_EXP 42
9481: PUSH
9482: LD_OWVAR 67
9486: ARRAY
9487: PUSH
9488: LD_INT 3
9490: MINUS
9491: PPUSH
9492: LD_STRING 
9494: PPUSH
9495: CALL 7654 0 4
9499: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
9500: LD_ADDR_OWVAR 37
9504: PUSH
9505: LD_INT 3
9507: ST_TO_ADDR
// vc_control = control_manual ;
9508: LD_ADDR_OWVAR 38
9512: PUSH
9513: LD_INT 1
9515: ST_TO_ADDR
// vc_engine = engine_solar ;
9516: LD_ADDR_OWVAR 39
9520: PUSH
9521: LD_INT 2
9523: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
9524: LD_ADDR_OWVAR 40
9528: PUSH
9529: LD_INT 4
9531: ST_TO_ADDR
// av = CreateVehicle ;
9532: LD_ADDR_LOC 5
9536: PUSH
9537: CALL_OW 45
9541: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9542: LD_LOC 6
9546: PPUSH
9547: LD_LOC 5
9551: PPUSH
9552: CALL_OW 52
// pom = pom ^ av ;
9556: LD_ADDR_VAR 0 2
9560: PUSH
9561: LD_VAR 0 2
9565: PUSH
9566: LD_LOC 5
9570: ADD
9571: ST_TO_ADDR
// end ; AM_UTOK_2_LIST = pom ;
9572: LD_ADDR_EXP 34
9576: PUSH
9577: LD_VAR 0 2
9581: ST_TO_ADDR
// end ;
9582: LD_VAR 0 1
9586: RET
// export function create_third_utok ; var pom ; begin
9587: LD_INT 0
9589: PPUSH
9590: PPUSH
// pom = [ ] ;
9591: LD_ADDR_VAR 0 2
9595: PUSH
9596: EMPTY
9597: ST_TO_ADDR
// uc_nation = nation_american ;
9598: LD_ADDR_OWVAR 21
9602: PUSH
9603: LD_INT 1
9605: ST_TO_ADDR
// uc_side = Amici2 ;
9606: LD_ADDR_OWVAR 20
9610: PUSH
9611: LD_EXP 3
9615: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
9616: LD_ADDR_VAR 0 2
9620: PUSH
9621: CALL 7619 0 0
9625: PPUSH
9626: LD_INT 1
9628: PPUSH
9629: LD_EXP 42
9633: PUSH
9634: LD_OWVAR 67
9638: ARRAY
9639: PPUSH
9640: LD_STRING 
9642: PPUSH
9643: CALL 7654 0 4
9647: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_sniper , levely_amici [ difficulty ] ,  ) ;
9648: LD_ADDR_VAR 0 2
9652: PUSH
9653: LD_VAR 0 2
9657: PUSH
9658: CALL 7619 0 0
9662: PPUSH
9663: LD_INT 5
9665: PPUSH
9666: LD_EXP 42
9670: PUSH
9671: LD_OWVAR 67
9675: ARRAY
9676: PPUSH
9677: LD_STRING 
9679: PPUSH
9680: CALL 7654 0 4
9684: ADD
9685: ST_TO_ADDR
// if difficulty > 2 then
9686: LD_OWVAR 67
9690: PUSH
9691: LD_INT 2
9693: GREATER
9694: IFFALSE 9734
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
9696: LD_ADDR_VAR 0 2
9700: PUSH
9701: LD_VAR 0 2
9705: PUSH
9706: CALL 7619 0 0
9710: PPUSH
9711: LD_INT 1
9713: PPUSH
9714: LD_EXP 42
9718: PUSH
9719: LD_OWVAR 67
9723: ARRAY
9724: PPUSH
9725: LD_STRING 
9727: PPUSH
9728: CALL 7654 0 4
9732: ADD
9733: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] - 2 ,  ) ;
9734: LD_ADDR_LOC 6
9738: PUSH
9739: CALL 7619 0 0
9743: PPUSH
9744: LD_INT 3
9746: PPUSH
9747: LD_EXP 42
9751: PUSH
9752: LD_OWVAR 67
9756: ARRAY
9757: PUSH
9758: LD_INT 2
9760: MINUS
9761: PPUSH
9762: LD_STRING 
9764: PPUSH
9765: CALL 7654 0 4
9769: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
9770: LD_ADDR_OWVAR 37
9774: PUSH
9775: LD_INT 3
9777: ST_TO_ADDR
// vc_control = control_manual ;
9778: LD_ADDR_OWVAR 38
9782: PUSH
9783: LD_INT 1
9785: ST_TO_ADDR
// vc_engine = engine_combustion ;
9786: LD_ADDR_OWVAR 39
9790: PUSH
9791: LD_INT 1
9793: ST_TO_ADDR
// vc_weapon = us_double_gun ;
9794: LD_ADDR_OWVAR 40
9798: PUSH
9799: LD_INT 5
9801: ST_TO_ADDR
// av = CreateVehicle ;
9802: LD_ADDR_LOC 5
9806: PUSH
9807: CALL_OW 45
9811: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9812: LD_LOC 6
9816: PPUSH
9817: LD_LOC 5
9821: PPUSH
9822: CALL_OW 52
// pom = pom ^ av ;
9826: LD_ADDR_VAR 0 2
9830: PUSH
9831: LD_VAR 0 2
9835: PUSH
9836: LD_LOC 5
9840: ADD
9841: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] - 2 ,  ) ;
9842: LD_ADDR_LOC 6
9846: PUSH
9847: CALL 7619 0 0
9851: PPUSH
9852: LD_INT 3
9854: PPUSH
9855: LD_EXP 42
9859: PUSH
9860: LD_OWVAR 67
9864: ARRAY
9865: PUSH
9866: LD_INT 2
9868: MINUS
9869: PPUSH
9870: LD_STRING 
9872: PPUSH
9873: CALL 7654 0 4
9877: ST_TO_ADDR
// vc_chassis = us_heavy_tracked ;
9878: LD_ADDR_OWVAR 37
9882: PUSH
9883: LD_INT 4
9885: ST_TO_ADDR
// vc_weapon = us_heavy_gun ;
9886: LD_ADDR_OWVAR 40
9890: PUSH
9891: LD_INT 6
9893: ST_TO_ADDR
// av = CreateVehicle ;
9894: LD_ADDR_LOC 5
9898: PUSH
9899: CALL_OW 45
9903: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9904: LD_LOC 6
9908: PPUSH
9909: LD_LOC 5
9913: PPUSH
9914: CALL_OW 52
// pom = pom ^ av ;
9918: LD_ADDR_VAR 0 2
9922: PUSH
9923: LD_VAR 0 2
9927: PUSH
9928: LD_LOC 5
9932: ADD
9933: ST_TO_ADDR
// AM_UTOK_3_LIST = pom ;
9934: LD_ADDR_EXP 35
9938: PUSH
9939: LD_VAR 0 2
9943: ST_TO_ADDR
// end ;
9944: LD_VAR 0 1
9948: RET
// export function create_JMM_revange ; var pom , i ; begin
9949: LD_INT 0
9951: PPUSH
9952: PPUSH
9953: PPUSH
// pom = [ ] ;
9954: LD_ADDR_VAR 0 2
9958: PUSH
9959: EMPTY
9960: ST_TO_ADDR
// uc_nation = nation_american ;
9961: LD_ADDR_OWVAR 21
9965: PUSH
9966: LD_INT 1
9968: ST_TO_ADDR
// uc_side = Amici2 ;
9969: LD_ADDR_OWVAR 20
9973: PUSH
9974: LD_EXP 3
9978: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
9979: LD_ADDR_VAR 0 2
9983: PUSH
9984: CALL 7619 0 0
9988: PPUSH
9989: LD_INT 1
9991: PPUSH
9992: LD_EXP 42
9996: PUSH
9997: LD_OWVAR 67
10001: ARRAY
10002: PPUSH
10003: LD_STRING 
10005: PPUSH
10006: CALL 7654 0 4
10010: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_sniper , levely_amici [ difficulty ] ,  ) ;
10011: LD_ADDR_VAR 0 2
10015: PUSH
10016: LD_VAR 0 2
10020: PUSH
10021: CALL 7619 0 0
10025: PPUSH
10026: LD_INT 5
10028: PPUSH
10029: LD_EXP 42
10033: PUSH
10034: LD_OWVAR 67
10038: ARRAY
10039: PPUSH
10040: LD_STRING 
10042: PPUSH
10043: CALL 7654 0 4
10047: ADD
10048: ST_TO_ADDR
// if difficulty > 2 then
10049: LD_OWVAR 67
10053: PUSH
10054: LD_INT 2
10056: GREATER
10057: IFFALSE 10097
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
10059: LD_ADDR_VAR 0 2
10063: PUSH
10064: LD_VAR 0 2
10068: PUSH
10069: CALL 7619 0 0
10073: PPUSH
10074: LD_INT 1
10076: PPUSH
10077: LD_EXP 42
10081: PUSH
10082: LD_OWVAR 67
10086: ARRAY
10087: PPUSH
10088: LD_STRING 
10090: PPUSH
10091: CALL 7654 0 4
10095: ADD
10096: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] - 2 ,  ) ;
10097: LD_ADDR_LOC 6
10101: PUSH
10102: CALL 7619 0 0
10106: PPUSH
10107: LD_INT 3
10109: PPUSH
10110: LD_EXP 42
10114: PUSH
10115: LD_OWVAR 67
10119: ARRAY
10120: PUSH
10121: LD_INT 2
10123: MINUS
10124: PPUSH
10125: LD_STRING 
10127: PPUSH
10128: CALL 7654 0 4
10132: ST_TO_ADDR
// vc_chassis = us_heavy_tracked ;
10133: LD_ADDR_OWVAR 37
10137: PUSH
10138: LD_INT 4
10140: ST_TO_ADDR
// vc_weapon = us_heavy_gun ;
10141: LD_ADDR_OWVAR 40
10145: PUSH
10146: LD_INT 6
10148: ST_TO_ADDR
// av = CreateVehicle ;
10149: LD_ADDR_LOC 5
10153: PUSH
10154: CALL_OW 45
10158: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
10159: LD_LOC 6
10163: PPUSH
10164: LD_LOC 5
10168: PPUSH
10169: CALL_OW 52
// pom = pom ^ av ;
10173: LD_ADDR_VAR 0 2
10177: PUSH
10178: LD_VAR 0 2
10182: PUSH
10183: LD_LOC 5
10187: ADD
10188: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] - 4 ,  ) ;
10189: LD_ADDR_LOC 6
10193: PUSH
10194: CALL 7619 0 0
10198: PPUSH
10199: LD_INT 3
10201: PPUSH
10202: LD_EXP 42
10206: PUSH
10207: LD_OWVAR 67
10211: ARRAY
10212: PUSH
10213: LD_INT 4
10215: MINUS
10216: PPUSH
10217: LD_STRING 
10219: PPUSH
10220: CALL 7654 0 4
10224: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
10225: LD_ADDR_OWVAR 37
10229: PUSH
10230: LD_INT 3
10232: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
10233: LD_ADDR_OWVAR 40
10237: PUSH
10238: LD_INT 4
10240: ST_TO_ADDR
// av = CreateVehicle ;
10241: LD_ADDR_LOC 5
10245: PUSH
10246: CALL_OW 45
10250: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
10251: LD_LOC 6
10255: PPUSH
10256: LD_LOC 5
10260: PPUSH
10261: CALL_OW 52
// pom = pom ^ av ;
10265: LD_ADDR_VAR 0 2
10269: PUSH
10270: LD_VAR 0 2
10274: PUSH
10275: LD_LOC 5
10279: ADD
10280: ST_TO_ADDR
// if prob ( 50 ) then
10281: LD_INT 50
10283: PPUSH
10284: CALL_OW 13
10288: IFFALSE 10316
// begin av = CreateVehicle ;
10290: LD_ADDR_LOC 5
10294: PUSH
10295: CALL_OW 45
10299: ST_TO_ADDR
// pom = pom ^ av ;
10300: LD_ADDR_VAR 0 2
10304: PUSH
10305: LD_VAR 0 2
10309: PUSH
10310: LD_LOC 5
10314: ADD
10315: ST_TO_ADDR
// end ; if difficulty > 1 then
10316: LD_OWVAR 67
10320: PUSH
10321: LD_INT 1
10323: GREATER
10324: IFFALSE 10364
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
10326: LD_ADDR_VAR 0 2
10330: PUSH
10331: LD_VAR 0 2
10335: PUSH
10336: CALL 7619 0 0
10340: PPUSH
10341: LD_INT 1
10343: PPUSH
10344: LD_EXP 42
10348: PUSH
10349: LD_OWVAR 67
10353: ARRAY
10354: PPUSH
10355: LD_STRING 
10357: PPUSH
10358: CALL 7654 0 4
10362: ADD
10363: ST_TO_ADDR
// if prob ( 50 ) and difficulty > 1 then
10364: LD_INT 50
10366: PPUSH
10367: CALL_OW 13
10371: PUSH
10372: LD_OWVAR 67
10376: PUSH
10377: LD_INT 1
10379: GREATER
10380: AND
10381: IFFALSE 10451
// for i = 1 to Rand ( 1 , difficulty ) do
10383: LD_ADDR_VAR 0 3
10387: PUSH
10388: DOUBLE
10389: LD_INT 1
10391: DEC
10392: ST_TO_ADDR
10393: LD_INT 1
10395: PPUSH
10396: LD_OWVAR 67
10400: PPUSH
10401: CALL_OW 12
10405: PUSH
10406: FOR_TO
10407: IFFALSE 10449
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
10409: LD_ADDR_VAR 0 2
10413: PUSH
10414: LD_VAR 0 2
10418: PUSH
10419: CALL 7619 0 0
10423: PPUSH
10424: LD_INT 1
10426: PPUSH
10427: LD_EXP 42
10431: PUSH
10432: LD_OWVAR 67
10436: ARRAY
10437: PPUSH
10438: LD_STRING 
10440: PPUSH
10441: CALL 7654 0 4
10445: ADD
10446: ST_TO_ADDR
10447: GO 10406
10449: POP
10450: POP
// result := pom ;
10451: LD_ADDR_VAR 0 1
10455: PUSH
10456: LD_VAR 0 2
10460: ST_TO_ADDR
// end ;
10461: LD_VAR 0 1
10465: RET
// export function create_pre_attack ; var i , pom ; var PC ; begin
10466: LD_INT 0
10468: PPUSH
10469: PPUSH
10470: PPUSH
10471: PPUSH
// pom = [ ] ;
10472: LD_ADDR_VAR 0 3
10476: PUSH
10477: EMPTY
10478: ST_TO_ADDR
// uc_nation = nation_american ;
10479: LD_ADDR_OWVAR 21
10483: PUSH
10484: LD_INT 1
10486: ST_TO_ADDR
// uc_side = Amici2 ;
10487: LD_ADDR_OWVAR 20
10491: PUSH
10492: LD_EXP 3
10496: ST_TO_ADDR
// PC = counter_utoku ;
10497: LD_ADDR_VAR 0 4
10501: PUSH
10502: LD_EXP 73
10506: ST_TO_ADDR
// for i in Rand ( 1 , 3 ) + difficulty do
10507: LD_ADDR_VAR 0 2
10511: PUSH
10512: LD_INT 1
10514: PPUSH
10515: LD_INT 3
10517: PPUSH
10518: CALL_OW 12
10522: PUSH
10523: LD_OWVAR 67
10527: PLUS
10528: PUSH
10529: FOR_IN
10530: IFFALSE 10590
// begin pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] - 2 ,  ) ;
10532: LD_ADDR_VAR 0 3
10536: PUSH
10537: LD_VAR 0 3
10541: PUSH
10542: CALL 7619 0 0
10546: PPUSH
10547: LD_INT 1
10549: PPUSH
10550: LD_EXP 42
10554: PUSH
10555: LD_OWVAR 67
10559: ARRAY
10560: PUSH
10561: LD_INT 2
10563: MINUS
10564: PPUSH
10565: LD_STRING 
10567: PPUSH
10568: CALL 7654 0 4
10572: ADD
10573: ST_TO_ADDR
// counter_utoku = counter_utoku + 1 ;
10574: LD_ADDR_EXP 73
10578: PUSH
10579: LD_EXP 73
10583: PUSH
10584: LD_INT 1
10586: PLUS
10587: ST_TO_ADDR
// end ;
10588: GO 10529
10590: POP
10591: POP
// PC = PC - 1 ;
10592: LD_ADDR_VAR 0 4
10596: PUSH
10597: LD_VAR 0 4
10601: PUSH
10602: LD_INT 1
10604: MINUS
10605: ST_TO_ADDR
// if counter_utoku > 10 then
10606: LD_EXP 73
10610: PUSH
10611: LD_INT 10
10613: GREATER
10614: IFFALSE 10719
// begin vc_chassis = us_medium_tracked ;
10616: LD_ADDR_OWVAR 37
10620: PUSH
10621: LD_INT 3
10623: ST_TO_ADDR
// vc_engine = engine_combustion ;
10624: LD_ADDR_OWVAR 39
10628: PUSH
10629: LD_INT 1
10631: ST_TO_ADDR
// vc_control = control_computer ;
10632: LD_ADDR_OWVAR 38
10636: PUSH
10637: LD_INT 3
10639: ST_TO_ADDR
// vc_weapon = [ us_light_gun , us_gatling_gun , us_double_gun , us_machine_gun ] [ Rand ( 1 , 4 ) ] ;
10640: LD_ADDR_OWVAR 40
10644: PUSH
10645: LD_INT 3
10647: PUSH
10648: LD_INT 4
10650: PUSH
10651: LD_INT 5
10653: PUSH
10654: LD_INT 2
10656: PUSH
10657: EMPTY
10658: LIST
10659: LIST
10660: LIST
10661: LIST
10662: PUSH
10663: LD_INT 1
10665: PPUSH
10666: LD_INT 4
10668: PPUSH
10669: CALL_OW 12
10673: ARRAY
10674: ST_TO_ADDR
// pom = pom ^ av ;
10675: LD_ADDR_VAR 0 3
10679: PUSH
10680: LD_VAR 0 3
10684: PUSH
10685: LD_LOC 5
10689: ADD
10690: ST_TO_ADDR
// counter_utoku = counter_utoku - 5 ;
10691: LD_ADDR_EXP 73
10695: PUSH
10696: LD_EXP 73
10700: PUSH
10701: LD_INT 5
10703: MINUS
10704: ST_TO_ADDR
// PC = PC - 10 ;
10705: LD_ADDR_VAR 0 4
10709: PUSH
10710: LD_VAR 0 4
10714: PUSH
10715: LD_INT 10
10717: MINUS
10718: ST_TO_ADDR
// end ; if counter_utoku > 5 then
10719: LD_EXP 73
10723: PUSH
10724: LD_INT 5
10726: GREATER
10727: IFFALSE 10799
// begin pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] + 1 ,  ) ;
10729: LD_ADDR_VAR 0 3
10733: PUSH
10734: LD_VAR 0 3
10738: PUSH
10739: CALL 7619 0 0
10743: PPUSH
10744: LD_INT 1
10746: PPUSH
10747: LD_EXP 42
10751: PUSH
10752: LD_OWVAR 67
10756: ARRAY
10757: PUSH
10758: LD_INT 1
10760: PLUS
10761: PPUSH
10762: LD_STRING 
10764: PPUSH
10765: CALL 7654 0 4
10769: ADD
10770: ST_TO_ADDR
// counter_utoku = counter_utoku - 1 ;
10771: LD_ADDR_EXP 73
10775: PUSH
10776: LD_EXP 73
10780: PUSH
10781: LD_INT 1
10783: MINUS
10784: ST_TO_ADDR
// PC = PC - 3 ;
10785: LD_ADDR_VAR 0 4
10789: PUSH
10790: LD_VAR 0 4
10794: PUSH
10795: LD_INT 3
10797: MINUS
10798: ST_TO_ADDR
// end ; result := pom ;
10799: LD_ADDR_VAR 0 1
10803: PUSH
10804: LD_VAR 0 3
10808: ST_TO_ADDR
// end ;
10809: LD_VAR 0 1
10813: RET
// function nastav_povolani_podle_skilu ( voj ) ; var comb , eng , sci , mech ; var classa ; begin
10814: LD_INT 0
10816: PPUSH
10817: PPUSH
10818: PPUSH
10819: PPUSH
10820: PPUSH
10821: PPUSH
// if GetNation ( voj ) = nation_nature then
10822: LD_VAR 0 1
10826: PPUSH
10827: CALL_OW 248
10831: PUSH
10832: LD_INT 0
10834: EQUAL
10835: IFFALSE 10851
// begin SetClass ( voj , class_apeman ) ;
10837: LD_VAR 0 1
10841: PPUSH
10842: LD_INT 12
10844: PPUSH
10845: CALL_OW 336
// exit ;
10849: GO 11129
// end ; mech = GetSkill ( voj , skill_mechanical ) ;
10851: LD_ADDR_VAR 0 6
10855: PUSH
10856: LD_VAR 0 1
10860: PPUSH
10861: LD_INT 3
10863: PPUSH
10864: CALL_OW 259
10868: ST_TO_ADDR
// eng = GetSkill ( voj , skill_engineering ) ;
10869: LD_ADDR_VAR 0 4
10873: PUSH
10874: LD_VAR 0 1
10878: PPUSH
10879: LD_INT 2
10881: PPUSH
10882: CALL_OW 259
10886: ST_TO_ADDR
// sci = GetSkill ( voj , skill_scientistic ) ;
10887: LD_ADDR_VAR 0 5
10891: PUSH
10892: LD_VAR 0 1
10896: PPUSH
10897: LD_INT 4
10899: PPUSH
10900: CALL_OW 259
10904: ST_TO_ADDR
// comb = GetSkill ( voj , skill_combat ) ;
10905: LD_ADDR_VAR 0 3
10909: PUSH
10910: LD_VAR 0 1
10914: PPUSH
10915: LD_INT 1
10917: PPUSH
10918: CALL_OW 259
10922: ST_TO_ADDR
// if comb >= eng and comb >= sci and comb >= mech then
10923: LD_VAR 0 3
10927: PUSH
10928: LD_VAR 0 4
10932: GREATEREQUAL
10933: PUSH
10934: LD_VAR 0 3
10938: PUSH
10939: LD_VAR 0 5
10943: GREATEREQUAL
10944: AND
10945: PUSH
10946: LD_VAR 0 3
10950: PUSH
10951: LD_VAR 0 6
10955: GREATEREQUAL
10956: AND
10957: IFFALSE 10969
// classa = class_soldier else
10959: LD_ADDR_VAR 0 7
10963: PUSH
10964: LD_INT 1
10966: ST_TO_ADDR
10967: GO 11115
// if eng >= comb and eng >= mech and eng >= sci then
10969: LD_VAR 0 4
10973: PUSH
10974: LD_VAR 0 3
10978: GREATEREQUAL
10979: PUSH
10980: LD_VAR 0 4
10984: PUSH
10985: LD_VAR 0 6
10989: GREATEREQUAL
10990: AND
10991: PUSH
10992: LD_VAR 0 4
10996: PUSH
10997: LD_VAR 0 5
11001: GREATEREQUAL
11002: AND
11003: IFFALSE 11015
// classa = class_engineer else
11005: LD_ADDR_VAR 0 7
11009: PUSH
11010: LD_INT 2
11012: ST_TO_ADDR
11013: GO 11115
// if sci >= eng and sci >= mech and sci >= comb then
11015: LD_VAR 0 5
11019: PUSH
11020: LD_VAR 0 4
11024: GREATEREQUAL
11025: PUSH
11026: LD_VAR 0 5
11030: PUSH
11031: LD_VAR 0 6
11035: GREATEREQUAL
11036: AND
11037: PUSH
11038: LD_VAR 0 5
11042: PUSH
11043: LD_VAR 0 3
11047: GREATEREQUAL
11048: AND
11049: IFFALSE 11061
// classa = class_scientistic else
11051: LD_ADDR_VAR 0 7
11055: PUSH
11056: LD_INT 4
11058: ST_TO_ADDR
11059: GO 11115
// if mech >= comb and mech >= eng and mech >= sci then
11061: LD_VAR 0 6
11065: PUSH
11066: LD_VAR 0 3
11070: GREATEREQUAL
11071: PUSH
11072: LD_VAR 0 6
11076: PUSH
11077: LD_VAR 0 4
11081: GREATEREQUAL
11082: AND
11083: PUSH
11084: LD_VAR 0 6
11088: PUSH
11089: LD_VAR 0 5
11093: GREATEREQUAL
11094: AND
11095: IFFALSE 11107
// classa = class_mechanic else
11097: LD_ADDR_VAR 0 7
11101: PUSH
11102: LD_INT 3
11104: ST_TO_ADDR
11105: GO 11115
// classa = class_soldier ;
11107: LD_ADDR_VAR 0 7
11111: PUSH
11112: LD_INT 1
11114: ST_TO_ADDR
// SetClass ( voj , classa ) ;
11115: LD_VAR 0 1
11119: PPUSH
11120: LD_VAR 0 7
11124: PPUSH
11125: CALL_OW 336
// end ; end_of_file
11129: LD_VAR 0 2
11133: RET
// export CHASSIS_FOR_VEHICLE ; export GUN_FOR_VEHICLE ; export pocet_lidi_na_zacatku ; export levely_arabi ; export levely_budovy_arabi ; export levely_budovy_amici ; export levely_amici ; export cas_utoku_amiku ; export max_pocet_aut ; export delay_beden ; export cas_prvniho_utoku ; export cas_na_odchod_vedcu ; export doba_od_utoku_k_uteku_vedcu ; export wait_mcmillanova_pomsta ; export zbran_na_uvod ; export chassis_na_uvod ; export cas_na_opakovani_preattacku ; export masha_l ; export maccepted ; export mhandedover ; export function SET_DIFFICULTY ; begin
11134: LD_INT 0
11136: PPUSH
// GUN_FOR_VEHICLE = [ ru_heavy_gun , ru_gun , ru_gatling_gun ] ;
11137: LD_ADDR_EXP 37
11141: PUSH
11142: LD_INT 46
11144: PUSH
11145: LD_INT 44
11147: PUSH
11148: LD_INT 43
11150: PUSH
11151: EMPTY
11152: LIST
11153: LIST
11154: LIST
11155: ST_TO_ADDR
// CHASSIS_FOR_VEHICLE = [ ru_heavy_tracked , ru_medium_tracked , ru_heavy_wheeled ] ;
11156: LD_ADDR_EXP 36
11160: PUSH
11161: LD_INT 24
11163: PUSH
11164: LD_INT 22
11166: PUSH
11167: LD_INT 23
11169: PUSH
11170: EMPTY
11171: LIST
11172: LIST
11173: LIST
11174: ST_TO_ADDR
// pocet_lidi_na_zacatku = [ 6 , 5 , 4 ] ;
11175: LD_ADDR_EXP 38
11179: PUSH
11180: LD_INT 6
11182: PUSH
11183: LD_INT 5
11185: PUSH
11186: LD_INT 4
11188: PUSH
11189: EMPTY
11190: LIST
11191: LIST
11192: LIST
11193: ST_TO_ADDR
// levely_arabi = [ 6 , 7 , 8 ] ;
11194: LD_ADDR_EXP 39
11198: PUSH
11199: LD_INT 6
11201: PUSH
11202: LD_INT 7
11204: PUSH
11205: LD_INT 8
11207: PUSH
11208: EMPTY
11209: LIST
11210: LIST
11211: LIST
11212: ST_TO_ADDR
// levely_budovy_arabi = [ 7 , 8 , 9 ] ;
11213: LD_ADDR_EXP 40
11217: PUSH
11218: LD_INT 7
11220: PUSH
11221: LD_INT 8
11223: PUSH
11224: LD_INT 9
11226: PUSH
11227: EMPTY
11228: LIST
11229: LIST
11230: LIST
11231: ST_TO_ADDR
// levely_budovy_amici = [ 3 , 5 , 7 ] ;
11232: LD_ADDR_EXP 41
11236: PUSH
11237: LD_INT 3
11239: PUSH
11240: LD_INT 5
11242: PUSH
11243: LD_INT 7
11245: PUSH
11246: EMPTY
11247: LIST
11248: LIST
11249: LIST
11250: ST_TO_ADDR
// levely_amici = [ 7 , 8 , 9 ] ;
11251: LD_ADDR_EXP 42
11255: PUSH
11256: LD_INT 7
11258: PUSH
11259: LD_INT 8
11261: PUSH
11262: LD_INT 9
11264: PUSH
11265: EMPTY
11266: LIST
11267: LIST
11268: LIST
11269: ST_TO_ADDR
// cas_utoku_amiku = [ 5 5$0 , 4 4$0 , 3 3$0 ] ;
11270: LD_ADDR_EXP 43
11274: PUSH
11275: LD_INT 10500
11277: PUSH
11278: LD_INT 8400
11280: PUSH
11281: LD_INT 6300
11283: PUSH
11284: EMPTY
11285: LIST
11286: LIST
11287: LIST
11288: ST_TO_ADDR
// max_pocet_aut = [ 3 , 4 , 5 ] ;
11289: LD_ADDR_EXP 44
11293: PUSH
11294: LD_INT 3
11296: PUSH
11297: LD_INT 4
11299: PUSH
11300: LD_INT 5
11302: PUSH
11303: EMPTY
11304: LIST
11305: LIST
11306: LIST
11307: ST_TO_ADDR
// delay_beden = [ 0 0$30 , 0 0$50 , 1 1$10 ] ;
11308: LD_ADDR_EXP 45
11312: PUSH
11313: LD_INT 1050
11315: PUSH
11316: LD_INT 1750
11318: PUSH
11319: LD_INT 2450
11321: PUSH
11322: EMPTY
11323: LIST
11324: LIST
11325: LIST
11326: ST_TO_ADDR
// cas_prvniho_utoku = [ 7 7$0 , 6 6$0 , 5 5$0 ] ;
11327: LD_ADDR_EXP 46
11331: PUSH
11332: LD_INT 14700
11334: PUSH
11335: LD_INT 12600
11337: PUSH
11338: LD_INT 10500
11340: PUSH
11341: EMPTY
11342: LIST
11343: LIST
11344: LIST
11345: ST_TO_ADDR
// cas_na_odchod_vedcu = [ 40 40$0 , 28 28$0 , 18 18$0 ] ;
11346: LD_ADDR_EXP 47
11350: PUSH
11351: LD_INT 84000
11353: PUSH
11354: LD_INT 58800
11356: PUSH
11357: LD_INT 37800
11359: PUSH
11360: EMPTY
11361: LIST
11362: LIST
11363: LIST
11364: ST_TO_ADDR
// doba_od_utoku_k_uteku_vedcu = [ 8 8$0 , 6 6$0 , 4 4$0 ] ;
11365: LD_ADDR_EXP 48
11369: PUSH
11370: LD_INT 16800
11372: PUSH
11373: LD_INT 12600
11375: PUSH
11376: LD_INT 8400
11378: PUSH
11379: EMPTY
11380: LIST
11381: LIST
11382: LIST
11383: ST_TO_ADDR
// wait_mcmillanova_pomsta = [ 12 12$0 , 9 9$0 , 6 6$0 ] ;
11384: LD_ADDR_EXP 49
11388: PUSH
11389: LD_INT 25200
11391: PUSH
11392: LD_INT 18900
11394: PUSH
11395: LD_INT 12600
11397: PUSH
11398: EMPTY
11399: LIST
11400: LIST
11401: LIST
11402: ST_TO_ADDR
// zbran_na_uvod = [ ru_heavy_gun , ru_gun , ru_gatling_gun ] ;
11403: LD_ADDR_EXP 50
11407: PUSH
11408: LD_INT 46
11410: PUSH
11411: LD_INT 44
11413: PUSH
11414: LD_INT 43
11416: PUSH
11417: EMPTY
11418: LIST
11419: LIST
11420: LIST
11421: ST_TO_ADDR
// chassis_na_uvod = [ ru_heavy_tracked , ru_medium_tracked , ru_medium_wheeled ] ;
11422: LD_ADDR_EXP 51
11426: PUSH
11427: LD_INT 24
11429: PUSH
11430: LD_INT 22
11432: PUSH
11433: LD_INT 21
11435: PUSH
11436: EMPTY
11437: LIST
11438: LIST
11439: LIST
11440: ST_TO_ADDR
// cas_na_opakovani_preattacku = [ 5 5$0 , 3 3$0 , 2 2$0 ] ;
11441: LD_ADDR_EXP 52
11445: PUSH
11446: LD_INT 10500
11448: PUSH
11449: LD_INT 6300
11451: PUSH
11452: LD_INT 4200
11454: PUSH
11455: EMPTY
11456: LIST
11457: LIST
11458: LIST
11459: ST_TO_ADDR
// end ; end_of_file
11460: LD_VAR 0 1
11464: RET
// export diet ; export A2 ; export A3 ; export A4 ; var Arabi_enter ; var Arabi_opoce ; export Arabi_vztah ; every 0 0$0.1 do var i ;
11465: GO 11467
11467: DISABLE
11468: LD_INT 0
11470: PPUSH
// begin Arabi_enter = [ A1 , A2 , A3 , A4 , diet ] ;
11471: LD_ADDR_LOC 7
11475: PUSH
11476: LD_INT 134
11478: PUSH
11479: LD_EXP 57
11483: PUSH
11484: LD_EXP 58
11488: PUSH
11489: LD_EXP 59
11493: PUSH
11494: LD_EXP 56
11498: PUSH
11499: EMPTY
11500: LIST
11501: LIST
11502: LIST
11503: LIST
11504: LIST
11505: ST_TO_ADDR
// Arabi_opoce = [ Op1 , Op2 , Op3 , OP_dep ] ;
11506: LD_ADDR_LOC 8
11510: PUSH
11511: LD_INT 139
11513: PUSH
11514: LD_INT 138
11516: PUSH
11517: LD_INT 135
11519: PUSH
11520: LD_INT 184
11522: PUSH
11523: EMPTY
11524: LIST
11525: LIST
11526: LIST
11527: LIST
11528: ST_TO_ADDR
// Arabi_vztah = 1 ;
11529: LD_ADDR_EXP 60
11533: PUSH
11534: LD_INT 1
11536: ST_TO_ADDR
// for i in [ 101 , 102 ] do
11537: LD_ADDR_VAR 0 1
11541: PUSH
11542: LD_INT 101
11544: PUSH
11545: LD_INT 102
11547: PUSH
11548: EMPTY
11549: LIST
11550: LIST
11551: PUSH
11552: FOR_IN
11553: IFFALSE 11562
// disable ( i ) ;
11555: LD_VAR 0 1
11559: DISABLE_MARKED
11560: GO 11552
11562: POP
11563: POP
// ComEnterUnit ( OP_dep , Ar_dep ) ;
11564: LD_INT 184
11566: PPUSH
11567: LD_INT 58
11569: PPUSH
11570: CALL_OW 120
// end ;
11574: PPOPN 1
11576: END
// export function arabi_north_okamzite ; var i ; begin
11577: LD_INT 0
11579: PPUSH
11580: PPUSH
// wait ( 0 0$5 ) ;
11581: LD_INT 175
11583: PPUSH
11584: CALL_OW 67
// for i in Arabi_enter do
11588: LD_ADDR_VAR 0 2
11592: PUSH
11593: LD_LOC 7
11597: PUSH
11598: FOR_IN
11599: IFFALSE 11623
// if IsInUnit ( i ) then
11601: LD_VAR 0 2
11605: PPUSH
11606: CALL_OW 310
11610: IFFALSE 11621
// ComExitBuilding ( i ) ;
11612: LD_VAR 0 2
11616: PPUSH
11617: CALL_OW 122
11621: GO 11598
11623: POP
11624: POP
// AddComMoveXY ( Arabi_enter , 59 , 1 ) ;
11625: LD_LOC 7
11629: PPUSH
11630: LD_INT 59
11632: PPUSH
11633: LD_INT 1
11635: PPUSH
11636: CALL_OW 171
// enable ( 101 ) ;
11640: LD_INT 101
11642: ENABLE_MARKED
// for i in Arabi_opoce do
11643: LD_ADDR_VAR 0 2
11647: PUSH
11648: LD_LOC 8
11652: PUSH
11653: FOR_IN
11654: IFFALSE 11678
// if IsInUnit ( i ) then
11656: LD_VAR 0 2
11660: PPUSH
11661: CALL_OW 310
11665: IFFALSE 11676
// ComExitBuilding ( i ) ;
11667: LD_VAR 0 2
11671: PPUSH
11672: CALL_OW 122
11676: GO 11653
11678: POP
11679: POP
// AddComMoveXY ( Arabi_opoce , 59 , 1 ) ;
11680: LD_LOC 8
11684: PPUSH
11685: LD_INT 59
11687: PPUSH
11688: LD_INT 1
11690: PPUSH
11691: CALL_OW 171
// wait ( 0 0$10 ) ;
11695: LD_INT 350
11697: PPUSH
11698: CALL_OW 67
// while Arabi_enter <> 0 do
11702: LD_LOC 7
11706: PUSH
11707: LD_INT 0
11709: NONEQUAL
11710: IFFALSE 11751
// begin ComMoveXY ( Arabi_enter , 62 , 2 ) ;
11712: LD_LOC 7
11716: PPUSH
11717: LD_INT 62
11719: PPUSH
11720: LD_INT 2
11722: PPUSH
11723: CALL_OW 111
// ComMoveXY ( Arabi_opoce , 62 , 2 ) ;
11727: LD_LOC 8
11731: PPUSH
11732: LD_INT 62
11734: PPUSH
11735: LD_INT 2
11737: PPUSH
11738: CALL_OW 111
// wait ( 0 0$2 ) ;
11742: LD_INT 70
11744: PPUSH
11745: CALL_OW 67
// end ;
11749: GO 11702
// disable ( 101 ) ;
11751: LD_INT 101
11753: DISABLE_MARKED
// end ;
11754: LD_VAR 0 1
11758: RET
// every 0 0$1 marked 101 do var pom , i ;
11759: GO 11761
11761: DISABLE
11762: LD_INT 0
11764: PPUSH
11765: PPUSH
// begin pom = FilterUnitsInArea ( Exarabi , [ [ f_side , Arabi ] ] ) ;
11766: LD_ADDR_VAR 0 1
11770: PUSH
11771: LD_INT 7
11773: PPUSH
11774: LD_INT 22
11776: PUSH
11777: LD_EXP 4
11781: PUSH
11782: EMPTY
11783: LIST
11784: LIST
11785: PUSH
11786: EMPTY
11787: LIST
11788: PPUSH
11789: CALL_OW 70
11793: ST_TO_ADDR
// if pom <> 0 then
11794: LD_VAR 0 1
11798: PUSH
11799: LD_INT 0
11801: NONEQUAL
11802: IFFALSE 11846
// for i in pom do
11804: LD_ADDR_VAR 0 2
11808: PUSH
11809: LD_VAR 0 1
11813: PUSH
11814: FOR_IN
11815: IFFALSE 11844
// begin RemoveUnit ( i ) ;
11817: LD_VAR 0 2
11821: PPUSH
11822: CALL_OW 64
// Arabi_enter = Arabi_enter diff i ;
11826: LD_ADDR_LOC 7
11830: PUSH
11831: LD_LOC 7
11835: PUSH
11836: LD_VAR 0 2
11840: DIFF
11841: ST_TO_ADDR
// end ;
11842: GO 11814
11844: POP
11845: POP
// enable ;
11846: ENABLE
// end ;
11847: PPOPN 2
11849: END
// export function ar_leave_north ; var i ; begin
11850: LD_INT 0
11852: PPUSH
11853: PPUSH
// SetAttitude ( Arabi , You , att_neutral , true ) ;
11854: LD_EXP 4
11858: PPUSH
11859: LD_EXP 1
11863: PPUSH
11864: LD_INT 0
11866: PPUSH
11867: LD_INT 1
11869: PPUSH
11870: CALL_OW 80
// wait ( 0 0$30 ) ;
11874: LD_INT 1050
11876: PPUSH
11877: CALL_OW 67
// for i in Arabi_enter do
11881: LD_ADDR_VAR 0 2
11885: PUSH
11886: LD_LOC 7
11890: PUSH
11891: FOR_IN
11892: IFFALSE 11916
// if IsInUnit ( i ) then
11894: LD_VAR 0 2
11898: PPUSH
11899: CALL_OW 310
11903: IFFALSE 11914
// ComExitBuilding ( i ) ;
11905: LD_VAR 0 2
11909: PPUSH
11910: CALL_OW 122
11914: GO 11891
11916: POP
11917: POP
// AddComMoveXY ( Arabi_enter , 59 , 1 ) ;
11918: LD_LOC 7
11922: PPUSH
11923: LD_INT 59
11925: PPUSH
11926: LD_INT 1
11928: PPUSH
11929: CALL_OW 171
// for i in Arabi_opoce do
11933: LD_ADDR_VAR 0 2
11937: PUSH
11938: LD_LOC 8
11942: PUSH
11943: FOR_IN
11944: IFFALSE 11968
// if IsInUnit ( i ) then
11946: LD_VAR 0 2
11950: PPUSH
11951: CALL_OW 310
11955: IFFALSE 11966
// ComExitBuilding ( i ) ;
11957: LD_VAR 0 2
11961: PPUSH
11962: CALL_OW 122
11966: GO 11943
11968: POP
11969: POP
// AddComMoveXY ( Arabi_opoce , 59 , 1 ) ;
11970: LD_LOC 8
11974: PPUSH
11975: LD_INT 59
11977: PPUSH
11978: LD_INT 1
11980: PPUSH
11981: CALL_OW 171
// enable ( 101 ) ;
11985: LD_INT 101
11987: ENABLE_MARKED
// wait ( 0 0$10 ) ;
11988: LD_INT 350
11990: PPUSH
11991: CALL_OW 67
// while Arabi_enter <> 0 do
11995: LD_LOC 7
11999: PUSH
12000: LD_INT 0
12002: NONEQUAL
12003: IFFALSE 12044
// begin ComMoveXY ( Arabi_enter , 62 , 2 ) ;
12005: LD_LOC 7
12009: PPUSH
12010: LD_INT 62
12012: PPUSH
12013: LD_INT 2
12015: PPUSH
12016: CALL_OW 111
// ComMoveXY ( Arabi_opoce , 62 , 2 ) ;
12020: LD_LOC 8
12024: PPUSH
12025: LD_INT 62
12027: PPUSH
12028: LD_INT 2
12030: PPUSH
12031: CALL_OW 111
// wait ( 0 0$2 ) ;
12035: LD_INT 70
12037: PPUSH
12038: CALL_OW 67
// end ;
12042: GO 11995
// disable ( 101 ) ;
12044: LD_INT 101
12046: DISABLE_MARKED
// end ;
12047: LD_VAR 0 1
12051: RET
// export function arabi_spojenci ; begin
12052: LD_INT 0
12054: PPUSH
// SetAttitude ( Arabi , You , att_neutral , true ) ;
12055: LD_EXP 4
12059: PPUSH
12060: LD_EXP 1
12064: PPUSH
12065: LD_INT 0
12067: PPUSH
12068: LD_INT 1
12070: PPUSH
12071: CALL_OW 80
// ChangeSideFog ( Arabi , You ) ;
12075: LD_EXP 4
12079: PPUSH
12080: LD_EXP 1
12084: PPUSH
12085: CALL_OW 343
// end ;
12089: LD_VAR 0 1
12093: RET
// export function arabi_ally_amici ; begin
12094: LD_INT 0
12096: PPUSH
// SetAttitude ( Arabi , You , att_enemy , false ) ;
12097: LD_EXP 4
12101: PPUSH
12102: LD_EXP 1
12106: PPUSH
12107: LD_INT 2
12109: PPUSH
12110: LD_INT 0
12112: PPUSH
12113: CALL_OW 80
// end ;
12117: LD_VAR 0 1
12121: RET
// every 0 0$1 do
12122: GO 12124
12124: DISABLE
// begin ComEnterUnit ( Arabi_enter [ 1 ] , Ar_lab ) ;
12125: LD_LOC 7
12129: PUSH
12130: LD_INT 1
12132: ARRAY
12133: PPUSH
12134: LD_INT 59
12136: PPUSH
12137: CALL_OW 120
// ComPlaceRemoteCharge ( diet , 78 , 47 , 0 ) ;
12141: LD_EXP 56
12145: PPUSH
12146: LD_INT 78
12148: PPUSH
12149: LD_INT 47
12151: PPUSH
12152: LD_INT 0
12154: PPUSH
12155: CALL_OW 133
// AddComEnterUnit ( diet , Ar_bar ) ;
12159: LD_EXP 56
12163: PPUSH
12164: LD_INT 61
12166: PPUSH
12167: CALL_OW 180
// ComPlaceRemoteCharge ( Arabi_enter [ 2 ] , 78 , 43 , 0 ) ;
12171: LD_LOC 7
12175: PUSH
12176: LD_INT 2
12178: ARRAY
12179: PPUSH
12180: LD_INT 78
12182: PPUSH
12183: LD_INT 43
12185: PPUSH
12186: LD_INT 0
12188: PPUSH
12189: CALL_OW 133
// AddComEnterUnit ( Arabi_enter [ 2 ] , Ar_bu1 ) ;
12193: LD_LOC 7
12197: PUSH
12198: LD_INT 2
12200: ARRAY
12201: PPUSH
12202: LD_INT 73
12204: PPUSH
12205: CALL_OW 180
// ComHiddenCamera ( Arabi_enter [ 3 ] , 64 , 38 ) ;
12209: LD_LOC 7
12213: PUSH
12214: LD_INT 3
12216: ARRAY
12217: PPUSH
12218: LD_INT 64
12220: PPUSH
12221: LD_INT 38
12223: PPUSH
12224: CALL_OW 157
// AddComHiddenCamera ( Arabi_enter [ 3 ] , 85 , 52 ) ;
12228: LD_LOC 7
12232: PUSH
12233: LD_INT 3
12235: ARRAY
12236: PPUSH
12237: LD_INT 85
12239: PPUSH
12240: LD_INT 52
12242: PPUSH
12243: CALL_OW 217
// AddComHiddenCamera ( Arabi_enter [ 3 ] , 101 , 51 ) ;
12247: LD_LOC 7
12251: PUSH
12252: LD_INT 3
12254: ARRAY
12255: PPUSH
12256: LD_INT 101
12258: PPUSH
12259: LD_INT 51
12261: PPUSH
12262: CALL_OW 217
// AddComEnterUnit ( Arabi_enter [ 3 ] , Ar_dep ) ;
12266: LD_LOC 7
12270: PUSH
12271: LD_INT 3
12273: ARRAY
12274: PPUSH
12275: LD_INT 58
12277: PPUSH
12278: CALL_OW 180
// ComPlaceRemoteCharge ( Arabi_enter [ 4 ] , 82 , 46 , 0 ) ;
12282: LD_LOC 7
12286: PUSH
12287: LD_INT 4
12289: ARRAY
12290: PPUSH
12291: LD_INT 82
12293: PPUSH
12294: LD_INT 46
12296: PPUSH
12297: LD_INT 0
12299: PPUSH
12300: CALL_OW 133
// AddComEnterUnit ( Arabi_enter [ 4 ] , Ar_bu2 ) ;
12304: LD_LOC 7
12308: PUSH
12309: LD_INT 4
12311: ARRAY
12312: PPUSH
12313: LD_INT 78
12315: PPUSH
12316: CALL_OW 180
// ComEnterUnit ( Op1 , Ar_dep ) ;
12320: LD_INT 139
12322: PPUSH
12323: LD_INT 58
12325: PPUSH
12326: CALL_OW 120
// ComEnterUnit ( Op2 , Ar_bar ) ;
12330: LD_INT 138
12332: PPUSH
12333: LD_INT 61
12335: PPUSH
12336: CALL_OW 120
// ComMoveXY ( Op3 , 49 , 3 ) ;
12340: LD_INT 135
12342: PPUSH
12343: LD_INT 49
12345: PPUSH
12346: LD_INT 3
12348: PPUSH
12349: CALL_OW 111
// AddComMoveXY ( Op3 , 45 , 5 ) ;
12353: LD_INT 135
12355: PPUSH
12356: LD_INT 45
12358: PPUSH
12359: LD_INT 5
12361: PPUSH
12362: CALL_OW 171
// AddComMoveXY ( Op3 , 45 , 15 ) ;
12366: LD_INT 135
12368: PPUSH
12369: LD_INT 45
12371: PPUSH
12372: LD_INT 15
12374: PPUSH
12375: CALL_OW 171
// AddComMoveXY ( Op3 , 62 , 29 ) ;
12379: LD_INT 135
12381: PPUSH
12382: LD_INT 62
12384: PPUSH
12385: LD_INT 29
12387: PPUSH
12388: CALL_OW 171
// HiddenCamera ( 40 , 7 , Arabi ) ;
12392: LD_INT 40
12394: PPUSH
12395: LD_INT 7
12397: PPUSH
12398: LD_EXP 4
12402: PPUSH
12403: CALL_OW 244
// end ;
12407: END
// every 1 1$7 do
12408: GO 12410
12410: DISABLE
// begin if Researched ( Arabi , tech_Sib1 ) then
12411: LD_EXP 4
12415: PPUSH
12416: LD_INT 54
12418: PPUSH
12419: CALL_OW 325
12423: IFFALSE 12450
// begin SetTech ( tech_Sib1 , Arabi , state_enabled ) ;
12425: LD_INT 54
12427: PPUSH
12428: LD_EXP 4
12432: PPUSH
12433: LD_INT 1
12435: PPUSH
12436: CALL_OW 322
// ComResearch ( Ar_lab , tech_Sib1 ) ;
12440: LD_INT 59
12442: PPUSH
12443: LD_INT 54
12445: PPUSH
12446: CALL_OW 124
// end ; enable ;
12450: ENABLE
// end ;
12451: END
// every 0 0$19 do
12452: GO 12454
12454: DISABLE
// begin SetTech ( tech_Sib1 , Arabi , state_enabled ) ;
12455: LD_INT 54
12457: PPUSH
12458: LD_EXP 4
12462: PPUSH
12463: LD_INT 1
12465: PPUSH
12466: CALL_OW 322
// ComResearch ( Ar_lab , tech_Sib1 ) ;
12470: LD_INT 59
12472: PPUSH
12473: LD_INT 54
12475: PPUSH
12476: CALL_OW 124
// end ;
12480: END
// every 0 0$1 trigger Arabi_vztah = 0 and bojeschopnych_rusu > 0 do var pom ;
12481: LD_EXP 60
12485: PUSH
12486: LD_INT 0
12488: EQUAL
12489: PUSH
12490: CALL 13817 0 0
12494: PUSH
12495: LD_INT 0
12497: GREATER
12498: AND
12499: IFFALSE 13224
12501: GO 12503
12503: DISABLE
12504: LD_INT 0
12506: PPUSH
// begin if GetClass ( A1 ) = class_scientistic then
12507: LD_INT 134
12509: PPUSH
12510: CALL_OW 257
12514: PUSH
12515: LD_INT 4
12517: EQUAL
12518: IFFALSE 12547
// begin ComExitBuilding ( A1 ) ;
12520: LD_INT 134
12522: PPUSH
12523: CALL_OW 122
// AddComEnterUnit ( A1 , Ar_bar ) ;
12527: LD_INT 134
12529: PPUSH
12530: LD_INT 61
12532: PPUSH
12533: CALL_OW 180
// AddComChangeProfession ( A1 , class_mortar ) ;
12537: LD_INT 134
12539: PPUSH
12540: LD_INT 8
12542: PPUSH
12543: CALL_OW 183
// end ; if GetClass ( A3 ) = class_engineer then
12547: LD_EXP 58
12551: PPUSH
12552: CALL_OW 257
12556: PUSH
12557: LD_INT 2
12559: EQUAL
12560: IFFALSE 12595
// begin ComExitBuilding ( A3 ) ;
12562: LD_EXP 58
12566: PPUSH
12567: CALL_OW 122
// AddComEnterUnit ( A3 , Ar_bar ) ;
12571: LD_EXP 58
12575: PPUSH
12576: LD_INT 61
12578: PPUSH
12579: CALL_OW 180
// AddComChangeProfession ( A3 , class_soldier ) ;
12583: LD_EXP 58
12587: PPUSH
12588: LD_INT 1
12590: PPUSH
12591: CALL_OW 183
// end ; if not IsInUnit ( diet ) = Ar_bar then
12595: LD_EXP 56
12599: PPUSH
12600: CALL_OW 310
12604: PUSH
12605: LD_INT 61
12607: EQUAL
12608: NOT
12609: IFFALSE 12637
// begin ComEnterUnit ( diet , Ar_bar ) ;
12611: LD_EXP 56
12615: PPUSH
12616: LD_INT 61
12618: PPUSH
12619: CALL_OW 120
// AddComChangeProfession ( diet , class_mortar ) ;
12623: LD_EXP 56
12627: PPUSH
12628: LD_INT 8
12630: PPUSH
12631: CALL_OW 183
// end else
12635: GO 12664
// if GetClass ( diet ) = class_soldier then
12637: LD_EXP 56
12641: PPUSH
12642: CALL_OW 257
12646: PUSH
12647: LD_INT 1
12649: EQUAL
12650: IFFALSE 12664
// ComChangeProfession ( diet , class_mortar ) ;
12652: LD_EXP 56
12656: PPUSH
12657: LD_INT 8
12659: PPUSH
12660: CALL_OW 123
// if IsInUnit ( A2 ) = 0 or IsInUnit ( A2 ) = Ar_bar then
12664: LD_EXP 57
12668: PPUSH
12669: CALL_OW 310
12673: PUSH
12674: LD_INT 0
12676: EQUAL
12677: PUSH
12678: LD_EXP 57
12682: PPUSH
12683: CALL_OW 310
12687: PUSH
12688: LD_INT 61
12690: EQUAL
12691: OR
12692: IFFALSE 12940
// begin if IsOK ( Ar_bu1 ) then
12694: LD_INT 73
12696: PPUSH
12697: CALL_OW 302
12701: IFFALSE 12726
// begin ComExitBuilding ( A2 ) ;
12703: LD_EXP 57
12707: PPUSH
12708: CALL_OW 122
// AddComEnterUnit ( A2 , Ar_bu1 ) ;
12712: LD_EXP 57
12716: PPUSH
12717: LD_INT 73
12719: PPUSH
12720: CALL_OW 180
// end else
12724: GO 12940
// begin pom = FilterUnitsInArea ( Ar_base , [ [ f_side , Arabi ] , [ f_btype , b_breastwork ] ] ) ;
12726: LD_ADDR_VAR 0 1
12730: PUSH
12731: LD_INT 8
12733: PPUSH
12734: LD_INT 22
12736: PUSH
12737: LD_EXP 4
12741: PUSH
12742: EMPTY
12743: LIST
12744: LIST
12745: PUSH
12746: LD_INT 30
12748: PUSH
12749: LD_INT 31
12751: PUSH
12752: EMPTY
12753: LIST
12754: LIST
12755: PUSH
12756: EMPTY
12757: LIST
12758: LIST
12759: PPUSH
12760: CALL_OW 70
12764: ST_TO_ADDR
// case pom of 1 :
12765: LD_VAR 0 1
12769: PUSH
12770: LD_INT 1
12772: DOUBLE
12773: EQUAL
12774: IFTRUE 12778
12776: GO 12853
12778: POP
// if GetX ( pom [ 1 ] ) = 78 then
12779: LD_VAR 0 1
12783: PUSH
12784: LD_INT 1
12786: ARRAY
12787: PPUSH
12788: CALL_OW 250
12792: PUSH
12793: LD_INT 78
12795: EQUAL
12796: IFFALSE 12827
// begin ComExitBuilding ( A2 ) ;
12798: LD_EXP 57
12802: PPUSH
12803: CALL_OW 122
// AddComEnterUnit ( A2 , pom [ 1 ] ) ;
12807: LD_EXP 57
12811: PPUSH
12812: LD_VAR 0 1
12816: PUSH
12817: LD_INT 1
12819: ARRAY
12820: PPUSH
12821: CALL_OW 180
// end else
12825: GO 12851
// begin ComEnterUnit ( A2 , Ar_bar ) ;
12827: LD_EXP 57
12831: PPUSH
12832: LD_INT 61
12834: PPUSH
12835: CALL_OW 120
// AddComChangeProfession ( A2 , class_mortar ) ;
12839: LD_EXP 57
12843: PPUSH
12844: LD_INT 8
12846: PPUSH
12847: CALL_OW 183
// end ; 2 :
12851: GO 12940
12853: LD_INT 2
12855: DOUBLE
12856: EQUAL
12857: IFTRUE 12861
12859: GO 12939
12861: POP
// if GetX ( pom [ 1 ] ) = 78 then
12862: LD_VAR 0 1
12866: PUSH
12867: LD_INT 1
12869: ARRAY
12870: PPUSH
12871: CALL_OW 250
12875: PUSH
12876: LD_INT 78
12878: EQUAL
12879: IFFALSE 12910
// begin ComExitBuilding ( A2 ) ;
12881: LD_EXP 57
12885: PPUSH
12886: CALL_OW 122
// AddComEnterUnit ( A2 , pom [ 1 ] ) ;
12890: LD_EXP 57
12894: PPUSH
12895: LD_VAR 0 1
12899: PUSH
12900: LD_INT 1
12902: ARRAY
12903: PPUSH
12904: CALL_OW 180
// end else
12908: GO 12937
// begin ComExitBuilding ( A2 ) ;
12910: LD_EXP 57
12914: PPUSH
12915: CALL_OW 122
// AddComEnterUnit ( A2 , pom [ 2 ] ) ;
12919: LD_EXP 57
12923: PPUSH
12924: LD_VAR 0 1
12928: PUSH
12929: LD_INT 2
12931: ARRAY
12932: PPUSH
12933: CALL_OW 180
// end ; end ;
12937: GO 12940
12939: POP
// end ; end ; if IsInUnit ( A4 ) = 0 or IsInUnit ( A4 ) = Ar_bar then
12940: LD_EXP 59
12944: PPUSH
12945: CALL_OW 310
12949: PUSH
12950: LD_INT 0
12952: EQUAL
12953: PUSH
12954: LD_EXP 59
12958: PPUSH
12959: CALL_OW 310
12963: PUSH
12964: LD_INT 61
12966: EQUAL
12967: OR
12968: IFFALSE 13216
// begin if IsOK ( Ar_bu2 ) then
12970: LD_INT 78
12972: PPUSH
12973: CALL_OW 302
12977: IFFALSE 13002
// begin ComExitBuilding ( A4 ) ;
12979: LD_EXP 59
12983: PPUSH
12984: CALL_OW 122
// AddComEnterUnit ( A4 , Ar_bu2 ) ;
12988: LD_EXP 59
12992: PPUSH
12993: LD_INT 78
12995: PPUSH
12996: CALL_OW 180
// end else
13000: GO 13216
// begin pom = FilterUnitsInArea ( Ar_base , [ [ f_side , Arabi ] , [ f_btype , b_breastwork ] ] ) ;
13002: LD_ADDR_VAR 0 1
13006: PUSH
13007: LD_INT 8
13009: PPUSH
13010: LD_INT 22
13012: PUSH
13013: LD_EXP 4
13017: PUSH
13018: EMPTY
13019: LIST
13020: LIST
13021: PUSH
13022: LD_INT 30
13024: PUSH
13025: LD_INT 31
13027: PUSH
13028: EMPTY
13029: LIST
13030: LIST
13031: PUSH
13032: EMPTY
13033: LIST
13034: LIST
13035: PPUSH
13036: CALL_OW 70
13040: ST_TO_ADDR
// case pom of 1 :
13041: LD_VAR 0 1
13045: PUSH
13046: LD_INT 1
13048: DOUBLE
13049: EQUAL
13050: IFTRUE 13054
13052: GO 13129
13054: POP
// if GetX ( pom [ 1 ] ) = 78 then
13055: LD_VAR 0 1
13059: PUSH
13060: LD_INT 1
13062: ARRAY
13063: PPUSH
13064: CALL_OW 250
13068: PUSH
13069: LD_INT 78
13071: EQUAL
13072: IFFALSE 13103
// begin ComExitBuilding ( A4 ) ;
13074: LD_EXP 59
13078: PPUSH
13079: CALL_OW 122
// AddComEnterUnit ( A4 , pom [ 1 ] ) ;
13083: LD_EXP 59
13087: PPUSH
13088: LD_VAR 0 1
13092: PUSH
13093: LD_INT 1
13095: ARRAY
13096: PPUSH
13097: CALL_OW 180
// end else
13101: GO 13127
// begin ComEnterUnit ( A2 , Ar_bar ) ;
13103: LD_EXP 57
13107: PPUSH
13108: LD_INT 61
13110: PPUSH
13111: CALL_OW 120
// AddComChangeProfession ( A2 , class_mortar ) ;
13115: LD_EXP 57
13119: PPUSH
13120: LD_INT 8
13122: PPUSH
13123: CALL_OW 183
// end ; 2 :
13127: GO 13216
13129: LD_INT 2
13131: DOUBLE
13132: EQUAL
13133: IFTRUE 13137
13135: GO 13215
13137: POP
// if GetX ( pom [ 1 ] ) = 78 then
13138: LD_VAR 0 1
13142: PUSH
13143: LD_INT 1
13145: ARRAY
13146: PPUSH
13147: CALL_OW 250
13151: PUSH
13152: LD_INT 78
13154: EQUAL
13155: IFFALSE 13186
// begin ComExitBuilding ( A4 ) ;
13157: LD_EXP 59
13161: PPUSH
13162: CALL_OW 122
// AddComEnterUnit ( A4 , pom [ 1 ] ) ;
13166: LD_EXP 59
13170: PPUSH
13171: LD_VAR 0 1
13175: PUSH
13176: LD_INT 1
13178: ARRAY
13179: PPUSH
13180: CALL_OW 180
// end else
13184: GO 13213
// begin ComExitBuilding ( A4 ) ;
13186: LD_EXP 59
13190: PPUSH
13191: CALL_OW 122
// AddComEnterUnit ( A4 , pom [ 2 ] ) ;
13195: LD_EXP 59
13199: PPUSH
13200: LD_VAR 0 1
13204: PUSH
13205: LD_INT 2
13207: ARRAY
13208: PPUSH
13209: CALL_OW 180
// end ; end ;
13213: GO 13216
13215: POP
// end ; end ; wait ( 0 0$10 ) ;
13216: LD_INT 350
13218: PPUSH
13219: CALL_OW 67
// enable ;
13223: ENABLE
// end ;
13224: PPOPN 1
13226: END
// every 0 0$10 trigger Arabi_vztah = 0 and bojeschopnych_rusu = 0 do var pom , i , pom1 ;
13227: LD_EXP 60
13231: PUSH
13232: LD_INT 0
13234: EQUAL
13235: PUSH
13236: CALL 13817 0 0
13240: PUSH
13241: LD_INT 0
13243: EQUAL
13244: AND
13245: IFFALSE 13581
13247: GO 13249
13249: DISABLE
13250: LD_INT 0
13252: PPUSH
13253: PPUSH
13254: PPUSH
// begin pom1 = [ ] ;
13255: LD_ADDR_VAR 0 3
13259: PUSH
13260: EMPTY
13261: ST_TO_ADDR
// pom = FilterUnitsInArea ( Ar_base , [ [ f_side , Arabi ] , [ f_type , unit_building ] ] ) ;
13262: LD_ADDR_VAR 0 1
13266: PUSH
13267: LD_INT 8
13269: PPUSH
13270: LD_INT 22
13272: PUSH
13273: LD_EXP 4
13277: PUSH
13278: EMPTY
13279: LIST
13280: LIST
13281: PUSH
13282: LD_INT 21
13284: PUSH
13285: LD_INT 3
13287: PUSH
13288: EMPTY
13289: LIST
13290: LIST
13291: PUSH
13292: EMPTY
13293: LIST
13294: LIST
13295: PPUSH
13296: CALL_OW 70
13300: ST_TO_ADDR
// for i in pom do
13301: LD_ADDR_VAR 0 2
13305: PUSH
13306: LD_VAR 0 1
13310: PUSH
13311: FOR_IN
13312: IFFALSE 13347
// if GetLives ( i ) < 1000 then
13314: LD_VAR 0 2
13318: PPUSH
13319: CALL_OW 256
13323: PUSH
13324: LD_INT 1000
13326: LESS
13327: IFFALSE 13345
// pom1 = pom1 ^ i ;
13329: LD_ADDR_VAR 0 3
13333: PUSH
13334: LD_VAR 0 3
13338: PUSH
13339: LD_VAR 0 2
13343: ADD
13344: ST_TO_ADDR
13345: GO 13311
13347: POP
13348: POP
// if pom1 > 0 then
13349: LD_VAR 0 3
13353: PUSH
13354: LD_INT 0
13356: GREATER
13357: IFFALSE 13461
// begin if IsInUnit ( A3 ) = Ar_bar then
13359: LD_EXP 58
13363: PPUSH
13364: CALL_OW 310
13368: PUSH
13369: LD_INT 61
13371: EQUAL
13372: IFFALSE 13459
// begin ComExitBuilding ( A3 ) ;
13374: LD_EXP 58
13378: PPUSH
13379: CALL_OW 122
// AddComEnterUnit ( A3 , Ar_dep ) ;
13383: LD_EXP 58
13387: PPUSH
13388: LD_INT 58
13390: PPUSH
13391: CALL_OW 180
// AddComChangeProfession ( A3 , class_engineer ) ;
13395: LD_EXP 58
13399: PPUSH
13400: LD_INT 2
13402: PPUSH
13403: CALL_OW 183
// AddComExitBuilding ( A3 ) ;
13407: LD_EXP 58
13411: PPUSH
13412: CALL_OW 182
// for i in pom1 do
13416: LD_ADDR_VAR 0 2
13420: PUSH
13421: LD_VAR 0 3
13425: PUSH
13426: FOR_IN
13427: IFFALSE 13445
// AddComRepairBuilding ( A3 , i ) ;
13429: LD_EXP 58
13433: PPUSH
13434: LD_VAR 0 2
13438: PPUSH
13439: CALL_OW 190
13443: GO 13426
13445: POP
13446: POP
// AddComEnterUnit ( A3 , Ar_dep ) ;
13447: LD_EXP 58
13451: PPUSH
13452: LD_INT 58
13454: PPUSH
13455: CALL_OW 180
// end ; end else
13459: GO 13494
// begin ComExitBuilding ( A3 ) ;
13461: LD_EXP 58
13465: PPUSH
13466: CALL_OW 122
// AddComEnterUnit ( A3 , Ar_dep ) ;
13470: LD_EXP 58
13474: PPUSH
13475: LD_INT 58
13477: PPUSH
13478: CALL_OW 180
// AddComChangeProfession ( A3 , class_engineer ) ;
13482: LD_EXP 58
13486: PPUSH
13487: LD_INT 2
13489: PPUSH
13490: CALL_OW 183
// end ; if pom < 7 then
13494: LD_VAR 0 1
13498: PUSH
13499: LD_INT 7
13501: LESS
13502: IFFALSE 13513
// staveni_budov_arabi ( pom ) ;
13504: LD_VAR 0 1
13508: PPUSH
13509: CALL 13584 0 1
// if GetClass ( diet ) <> class_soldier then
13513: LD_EXP 56
13517: PPUSH
13518: CALL_OW 257
13522: PUSH
13523: LD_INT 1
13525: NONEQUAL
13526: IFFALSE 13540
// ComChangeProfession ( diet , class_soldier ) ;
13528: LD_EXP 56
13532: PPUSH
13533: LD_INT 1
13535: PPUSH
13536: CALL_OW 123
// if IsInUnit ( A1 ) <> Ar_lab then
13540: LD_INT 134
13542: PPUSH
13543: CALL_OW 310
13547: PUSH
13548: LD_INT 59
13550: NONEQUAL
13551: IFFALSE 13580
// begin ComExitBuilding ( A1 ) ;
13553: LD_INT 134
13555: PPUSH
13556: CALL_OW 122
// AddComEnterUnit ( A1 , Ar_lab ) ;
13560: LD_INT 134
13562: PPUSH
13563: LD_INT 59
13565: PPUSH
13566: CALL_OW 180
// AddComChangeProfession ( A1 , class_scientistic ) ;
13570: LD_INT 134
13572: PPUSH
13573: LD_INT 4
13575: PPUSH
13576: CALL_OW 183
// end ; enable ;
13580: ENABLE
// end ;
13581: PPOPN 3
13583: END
// function staveni_budov_arabi ( list_budov ) ; var pom ; begin
13584: LD_INT 0
13586: PPUSH
13587: PPUSH
// pom = FilterUnitsInArea ( Ar_base , [ [ f_side , You ] , [ f_or , [ f_btype , b_bunker ] , [ f_btype , b_breastwork ] ] ] ) ;
13588: LD_ADDR_VAR 0 3
13592: PUSH
13593: LD_INT 8
13595: PPUSH
13596: LD_INT 22
13598: PUSH
13599: LD_EXP 1
13603: PUSH
13604: EMPTY
13605: LIST
13606: LIST
13607: PUSH
13608: LD_INT 2
13610: PUSH
13611: LD_INT 30
13613: PUSH
13614: LD_INT 32
13616: PUSH
13617: EMPTY
13618: LIST
13619: LIST
13620: PUSH
13621: LD_INT 30
13623: PUSH
13624: LD_INT 31
13626: PUSH
13627: EMPTY
13628: LIST
13629: LIST
13630: PUSH
13631: EMPTY
13632: LIST
13633: LIST
13634: LIST
13635: PUSH
13636: EMPTY
13637: LIST
13638: LIST
13639: PPUSH
13640: CALL_OW 70
13644: ST_TO_ADDR
// if pom <> 2 then
13645: LD_VAR 0 3
13649: PUSH
13650: LD_INT 2
13652: NONEQUAL
13653: IFFALSE 13812
// begin if IsInUnit ( A3 ) = Ar_dep then
13655: LD_EXP 58
13659: PPUSH
13660: CALL_OW 310
13664: PUSH
13665: LD_INT 58
13667: EQUAL
13668: IFFALSE 13679
// ComExitBuilding ( A3 ) ;
13670: LD_EXP 58
13674: PPUSH
13675: CALL_OW 122
// case pom of 0 :
13679: LD_VAR 0 3
13683: PUSH
13684: LD_INT 0
13686: DOUBLE
13687: EQUAL
13688: IFTRUE 13692
13690: GO 13737
13692: POP
// begin AddComBuild ( A3 , b_breastwork , 78 , 32 , 3 ) ;
13693: LD_EXP 58
13697: PPUSH
13698: LD_INT 31
13700: PPUSH
13701: LD_INT 78
13703: PPUSH
13704: LD_INT 32
13706: PPUSH
13707: LD_INT 3
13709: PPUSH
13710: CALL_OW 205
// AddComBuild ( A3 , b_breastwork , 73 , 30 , 3 ) ;
13714: LD_EXP 58
13718: PPUSH
13719: LD_INT 31
13721: PPUSH
13722: LD_INT 73
13724: PPUSH
13725: LD_INT 30
13727: PPUSH
13728: LD_INT 3
13730: PPUSH
13731: CALL_OW 205
// end ; 1 :
13735: GO 13812
13737: LD_INT 1
13739: DOUBLE
13740: EQUAL
13741: IFTRUE 13745
13743: GO 13811
13745: POP
// if GetX ( pom [ 1 ] ) = 78 then
13746: LD_VAR 0 3
13750: PUSH
13751: LD_INT 1
13753: ARRAY
13754: PPUSH
13755: CALL_OW 250
13759: PUSH
13760: LD_INT 78
13762: EQUAL
13763: IFFALSE 13788
// AddComBuild ( A3 , b_breastwork , 73 , 30 , 3 ) else
13765: LD_EXP 58
13769: PPUSH
13770: LD_INT 31
13772: PPUSH
13773: LD_INT 73
13775: PPUSH
13776: LD_INT 30
13778: PPUSH
13779: LD_INT 3
13781: PPUSH
13782: CALL_OW 205
13786: GO 13809
// AddComBuild ( A3 , b_breastwork , 78 , 32 , 3 ) ; end ;
13788: LD_EXP 58
13792: PPUSH
13793: LD_INT 31
13795: PPUSH
13796: LD_INT 78
13798: PPUSH
13799: LD_INT 32
13801: PPUSH
13802: LD_INT 3
13804: PPUSH
13805: CALL_OW 205
13809: GO 13812
13811: POP
// end ; end ;
13812: LD_VAR 0 2
13816: RET
// function bojeschopnych_rusu ; var pom , i , pom1 ; begin
13817: LD_INT 0
13819: PPUSH
13820: PPUSH
13821: PPUSH
13822: PPUSH
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_see , Arabi ] ] ) ;
13823: LD_ADDR_VAR 0 2
13827: PUSH
13828: LD_INT 22
13830: PUSH
13831: LD_EXP 1
13835: PUSH
13836: EMPTY
13837: LIST
13838: LIST
13839: PUSH
13840: LD_INT 101
13842: PUSH
13843: LD_EXP 4
13847: PUSH
13848: EMPTY
13849: LIST
13850: LIST
13851: PUSH
13852: EMPTY
13853: LIST
13854: LIST
13855: PPUSH
13856: CALL_OW 69
13860: ST_TO_ADDR
// pom1 = pom ;
13861: LD_ADDR_VAR 0 4
13865: PUSH
13866: LD_VAR 0 2
13870: ST_TO_ADDR
// for i in pom do
13871: LD_ADDR_VAR 0 3
13875: PUSH
13876: LD_VAR 0 2
13880: PUSH
13881: FOR_IN
13882: IFFALSE 13932
// if GetType ( i ) = unit_vehicle and IsDrivenBy ( i ) = 0 then
13884: LD_VAR 0 3
13888: PPUSH
13889: CALL_OW 247
13893: PUSH
13894: LD_INT 2
13896: EQUAL
13897: PUSH
13898: LD_VAR 0 3
13902: PPUSH
13903: CALL_OW 311
13907: PUSH
13908: LD_INT 0
13910: EQUAL
13911: AND
13912: IFFALSE 13930
// pom1 = pom1 diff i ;
13914: LD_ADDR_VAR 0 4
13918: PUSH
13919: LD_VAR 0 4
13923: PUSH
13924: LD_VAR 0 3
13928: DIFF
13929: ST_TO_ADDR
13930: GO 13881
13932: POP
13933: POP
// debug_strings = [ pom1 ] ;
13934: LD_ADDR_OWVAR 48
13938: PUSH
13939: LD_VAR 0 4
13943: PUSH
13944: EMPTY
13945: LIST
13946: ST_TO_ADDR
// result := pom1 + 0 ;
13947: LD_ADDR_VAR 0 1
13951: PUSH
13952: LD_VAR 0 4
13956: PUSH
13957: LD_INT 0
13959: PLUS
13960: ST_TO_ADDR
// end ;
13961: LD_VAR 0 1
13965: RET
// every 0 0$0.5 trigger Arabi_vztah = 0 do var pom ;
13966: LD_EXP 60
13970: PUSH
13971: LD_INT 0
13973: EQUAL
13974: IFFALSE 14123
13976: GO 13978
13978: DISABLE
13979: LD_INT 0
13981: PPUSH
// begin pom = FilterUnitsInArea ( Armina1 , [ [ f_side , You ] ] ) ;
13982: LD_ADDR_VAR 0 1
13986: PUSH
13987: LD_INT 9
13989: PPUSH
13990: LD_INT 22
13992: PUSH
13993: LD_EXP 1
13997: PUSH
13998: EMPTY
13999: LIST
14000: LIST
14001: PUSH
14002: EMPTY
14003: LIST
14004: PPUSH
14005: CALL_OW 70
14009: ST_TO_ADDR
// if pom > 0 then
14010: LD_VAR 0 1
14014: PUSH
14015: LD_INT 0
14017: GREATER
14018: IFFALSE 14029
// ComFireExplosives ( diet ) ;
14020: LD_EXP 56
14024: PPUSH
14025: CALL_OW 134
// pom = FilterUnitsInArea ( Armina2 , [ [ f_side , You ] ] ) ;
14029: LD_ADDR_VAR 0 1
14033: PUSH
14034: LD_INT 10
14036: PPUSH
14037: LD_INT 22
14039: PUSH
14040: LD_EXP 1
14044: PUSH
14045: EMPTY
14046: LIST
14047: LIST
14048: PUSH
14049: EMPTY
14050: LIST
14051: PPUSH
14052: CALL_OW 70
14056: ST_TO_ADDR
// if pom > 0 then
14057: LD_VAR 0 1
14061: PUSH
14062: LD_INT 0
14064: GREATER
14065: IFFALSE 14076
// ComFireExplosives ( A2 ) ;
14067: LD_EXP 57
14071: PPUSH
14072: CALL_OW 134
// pom = FilterUnitsInArea ( Armina3 , [ [ f_side , You ] ] ) ;
14076: LD_ADDR_VAR 0 1
14080: PUSH
14081: LD_INT 11
14083: PPUSH
14084: LD_INT 22
14086: PUSH
14087: LD_EXP 1
14091: PUSH
14092: EMPTY
14093: LIST
14094: LIST
14095: PUSH
14096: EMPTY
14097: LIST
14098: PPUSH
14099: CALL_OW 70
14103: ST_TO_ADDR
// if pom > 0 then
14104: LD_VAR 0 1
14108: PUSH
14109: LD_INT 0
14111: GREATER
14112: IFFALSE 14123
// ComFireExplosives ( A4 ) ;
14114: LD_EXP 59
14118: PPUSH
14119: CALL_OW 134
// end ;
14123: PPOPN 1
14125: END
// every 0 0$20 trigger Arabi_vztah = 0 and bojeschopnych_rusu = 0 do var i , pom , pom1 ;
14126: LD_EXP 60
14130: PUSH
14131: LD_INT 0
14133: EQUAL
14134: PUSH
14135: CALL 13817 0 0
14139: PUSH
14140: LD_INT 0
14142: EQUAL
14143: AND
14144: IFFALSE 14393
14146: GO 14148
14148: DISABLE
14149: LD_INT 0
14151: PPUSH
14152: PPUSH
14153: PPUSH
// begin pom1 = [ ] ;
14154: LD_ADDR_VAR 0 3
14158: PUSH
14159: EMPTY
14160: ST_TO_ADDR
// for i in Arabi_enter do
14161: LD_ADDR_VAR 0 1
14165: PUSH
14166: LD_LOC 7
14170: PUSH
14171: FOR_IN
14172: IFFALSE 14227
// if GetLives ( i ) < 1000 and i <> A1 and IsIdle ( i ) then
14174: LD_VAR 0 1
14178: PPUSH
14179: CALL_OW 256
14183: PUSH
14184: LD_INT 1000
14186: LESS
14187: PUSH
14188: LD_VAR 0 1
14192: PUSH
14193: LD_INT 134
14195: NONEQUAL
14196: AND
14197: PUSH
14198: LD_VAR 0 1
14202: PPUSH
14203: CALL_OW 316
14207: AND
14208: IFFALSE 14225
// ComMoveXY ( i , 77 , 20 ) ;
14210: LD_VAR 0 1
14214: PPUSH
14215: LD_INT 77
14217: PPUSH
14218: LD_INT 20
14220: PPUSH
14221: CALL_OW 111
14225: GO 14171
14227: POP
14228: POP
// pom = FilterUnitsInArea ( HealArea , [ [ f_side , Arabi ] ] ) ;
14229: LD_ADDR_VAR 0 2
14233: PUSH
14234: LD_INT 12
14236: PPUSH
14237: LD_INT 22
14239: PUSH
14240: LD_EXP 4
14244: PUSH
14245: EMPTY
14246: LIST
14247: LIST
14248: PUSH
14249: EMPTY
14250: LIST
14251: PPUSH
14252: CALL_OW 70
14256: ST_TO_ADDR
// for i in pom do
14257: LD_ADDR_VAR 0 1
14261: PUSH
14262: LD_VAR 0 2
14266: PUSH
14267: FOR_IN
14268: IFFALSE 14303
// if GetLives ( i ) < 1000 then
14270: LD_VAR 0 1
14274: PPUSH
14275: CALL_OW 256
14279: PUSH
14280: LD_INT 1000
14282: LESS
14283: IFFALSE 14301
// pom1 = pom1 ^ i ;
14285: LD_ADDR_VAR 0 3
14289: PUSH
14290: LD_VAR 0 3
14294: PUSH
14295: LD_VAR 0 1
14299: ADD
14300: ST_TO_ADDR
14301: GO 14267
14303: POP
14304: POP
// if IsOK ( A1 ) then
14305: LD_INT 134
14307: PPUSH
14308: CALL_OW 302
14312: IFFALSE 14393
// begin if pom1 > 0 then
14314: LD_VAR 0 3
14318: PUSH
14319: LD_INT 0
14321: GREATER
14322: IFFALSE 14392
// begin while IsInUnit ( A1 ) <> Ar_lab do
14324: LD_INT 134
14326: PPUSH
14327: CALL_OW 310
14331: PUSH
14332: LD_INT 59
14334: NONEQUAL
14335: IFFALSE 14346
// wait ( 0 0$3 ) ;
14337: LD_INT 105
14339: PPUSH
14340: CALL_OW 67
14344: GO 14324
// ComExitBuilding ( A1 ) ;
14346: LD_INT 134
14348: PPUSH
14349: CALL_OW 122
// for i in pom1 do
14353: LD_ADDR_VAR 0 1
14357: PUSH
14358: LD_VAR 0 3
14362: PUSH
14363: FOR_IN
14364: IFFALSE 14380
// AddComHeal ( A1 , i ) ;
14366: LD_INT 134
14368: PPUSH
14369: LD_VAR 0 1
14373: PPUSH
14374: CALL_OW 188
14378: GO 14363
14380: POP
14381: POP
// AddComEnterUnit ( A1 , ar_lab ) ;
14382: LD_INT 134
14384: PPUSH
14385: LD_INT 59
14387: PPUSH
14388: CALL_OW 180
// end ; enable ;
14392: ENABLE
// end ; end ;
14393: PPOPN 3
14395: END
// every 0 0$30 trigger Arabi_vztah = 0 and bojeschopnych_rusu = 0 do var pom ;
14396: LD_EXP 60
14400: PUSH
14401: LD_INT 0
14403: EQUAL
14404: PUSH
14405: CALL 13817 0 0
14409: PUSH
14410: LD_INT 0
14412: EQUAL
14413: AND
14414: IFFALSE 14897
14416: GO 14418
14418: DISABLE
14419: LD_INT 0
14421: PPUSH
// begin if ( not MineAtPos ( 78 , 47 ) ) and IsOK ( diet ) then
14422: LD_INT 78
14424: PPUSH
14425: LD_INT 47
14427: PPUSH
14428: CALL_OW 458
14432: NOT
14433: PUSH
14434: LD_EXP 56
14438: PPUSH
14439: CALL_OW 302
14443: AND
14444: IFFALSE 14577
// begin while HasTask ( diet ) do
14446: LD_EXP 56
14450: PPUSH
14451: CALL_OW 314
14455: IFFALSE 14466
// wait ( 0 0$1 ) ;
14457: LD_INT 35
14459: PPUSH
14460: CALL_OW 67
14464: GO 14446
// if not MineAtPos ( 78 , 47 ) then
14466: LD_INT 78
14468: PPUSH
14469: LD_INT 47
14471: PPUSH
14472: CALL_OW 458
14476: NOT
14477: IFFALSE 14577
// begin pom = IsInUnit ( diet ) ;
14479: LD_ADDR_VAR 0 1
14483: PUSH
14484: LD_EXP 56
14488: PPUSH
14489: CALL_OW 310
14493: ST_TO_ADDR
// if pom = 0 then
14494: LD_VAR 0 1
14498: PUSH
14499: LD_INT 0
14501: EQUAL
14502: IFFALSE 14515
// ComRemember ( diet ) else
14504: LD_EXP 56
14508: PPUSH
14509: CALL_OW 143
14513: GO 14524
// ComExitBuilding ( diet ) ;
14515: LD_EXP 56
14519: PPUSH
14520: CALL_OW 122
// AddComPlaceRemoteCharge ( diet , 78 , 47 , 0 ) ;
14524: LD_EXP 56
14528: PPUSH
14529: LD_INT 78
14531: PPUSH
14532: LD_INT 47
14534: PPUSH
14535: LD_INT 0
14537: PPUSH
14538: CALL_OW 193
// if pom > 0 then
14542: LD_VAR 0 1
14546: PUSH
14547: LD_INT 0
14549: GREATER
14550: IFFALSE 14568
// AddComEnterUnit ( diet , pom ) else
14552: LD_EXP 56
14556: PPUSH
14557: LD_VAR 0 1
14561: PPUSH
14562: CALL_OW 180
14566: GO 14577
// AddComReturn ( diet ) ;
14568: LD_EXP 56
14572: PPUSH
14573: CALL_OW 204
// end ; end ; if ( not MineAtPos ( 78 , 43 ) ) and IsOK ( A2 ) then
14577: LD_INT 78
14579: PPUSH
14580: LD_INT 43
14582: PPUSH
14583: CALL_OW 458
14587: NOT
14588: PUSH
14589: LD_EXP 57
14593: PPUSH
14594: CALL_OW 302
14598: AND
14599: IFFALSE 14732
// begin while HasTask ( A2 ) do
14601: LD_EXP 57
14605: PPUSH
14606: CALL_OW 314
14610: IFFALSE 14621
// wait ( 0 0$1 ) ;
14612: LD_INT 35
14614: PPUSH
14615: CALL_OW 67
14619: GO 14601
// if not MineAtPos ( 78 , 43 ) then
14621: LD_INT 78
14623: PPUSH
14624: LD_INT 43
14626: PPUSH
14627: CALL_OW 458
14631: NOT
14632: IFFALSE 14732
// begin pom = IsInUnit ( A2 ) ;
14634: LD_ADDR_VAR 0 1
14638: PUSH
14639: LD_EXP 57
14643: PPUSH
14644: CALL_OW 310
14648: ST_TO_ADDR
// if pom = 0 then
14649: LD_VAR 0 1
14653: PUSH
14654: LD_INT 0
14656: EQUAL
14657: IFFALSE 14670
// ComRemember ( A2 ) else
14659: LD_EXP 57
14663: PPUSH
14664: CALL_OW 143
14668: GO 14679
// ComExitBuilding ( A2 ) ;
14670: LD_EXP 57
14674: PPUSH
14675: CALL_OW 122
// AddComPlaceRemoteCharge ( A2 , 78 , 43 , 0 ) ;
14679: LD_EXP 57
14683: PPUSH
14684: LD_INT 78
14686: PPUSH
14687: LD_INT 43
14689: PPUSH
14690: LD_INT 0
14692: PPUSH
14693: CALL_OW 193
// if pom > 0 then
14697: LD_VAR 0 1
14701: PUSH
14702: LD_INT 0
14704: GREATER
14705: IFFALSE 14723
// AddComEnterUnit ( A2 , pom ) else
14707: LD_EXP 57
14711: PPUSH
14712: LD_VAR 0 1
14716: PPUSH
14717: CALL_OW 180
14721: GO 14732
// AddComReturn ( A2 ) ;
14723: LD_EXP 57
14727: PPUSH
14728: CALL_OW 204
// end ; end ; if ( not MineAtPos ( 82 , 46 ) ) and IsOK ( A4 ) then
14732: LD_INT 82
14734: PPUSH
14735: LD_INT 46
14737: PPUSH
14738: CALL_OW 458
14742: NOT
14743: PUSH
14744: LD_EXP 59
14748: PPUSH
14749: CALL_OW 302
14753: AND
14754: IFFALSE 14896
// begin while HasTask ( A4 ) do
14756: LD_EXP 59
14760: PPUSH
14761: CALL_OW 314
14765: IFFALSE 14776
// wait ( 0 0$1 ) ;
14767: LD_INT 35
14769: PPUSH
14770: CALL_OW 67
14774: GO 14756
// if not MineAtPos ( 82 , 46 ) then
14776: LD_INT 82
14778: PPUSH
14779: LD_INT 46
14781: PPUSH
14782: CALL_OW 458
14786: NOT
14787: IFFALSE 14896
// begin pom = IsInUnit ( A4 ) ;
14789: LD_ADDR_VAR 0 1
14793: PUSH
14794: LD_EXP 59
14798: PPUSH
14799: CALL_OW 310
14803: ST_TO_ADDR
// if pom = 0 then
14804: LD_VAR 0 1
14808: PUSH
14809: LD_INT 0
14811: EQUAL
14812: IFFALSE 14825
// ComRemember ( A4 ) else
14814: LD_EXP 59
14818: PPUSH
14819: CALL_OW 143
14823: GO 14834
// ComExitBuilding ( A4 ) ;
14825: LD_EXP 59
14829: PPUSH
14830: CALL_OW 122
// AddComExitBuilding ( A4 ) ;
14834: LD_EXP 59
14838: PPUSH
14839: CALL_OW 182
// AddComPlaceRemoteCharge ( A4 , 82 , 76 , 0 ) ;
14843: LD_EXP 59
14847: PPUSH
14848: LD_INT 82
14850: PPUSH
14851: LD_INT 76
14853: PPUSH
14854: LD_INT 0
14856: PPUSH
14857: CALL_OW 193
// if pom > 0 then
14861: LD_VAR 0 1
14865: PUSH
14866: LD_INT 0
14868: GREATER
14869: IFFALSE 14887
// AddComEnterUnit ( A4 , pom ) else
14871: LD_EXP 59
14875: PPUSH
14876: LD_VAR 0 1
14880: PPUSH
14881: CALL_OW 180
14885: GO 14896
// AddComReturn ( A4 ) ;
14887: LD_EXP 59
14891: PPUSH
14892: CALL_OW 204
// end ; end ; enable ;
14896: ENABLE
// end ;
14897: PPOPN 1
14899: END
// every 0 0$5 trigger Arabi_vztah = 0 and bojeschopnych_rusu = 0 do var i , pom ;
14900: LD_EXP 60
14904: PUSH
14905: LD_INT 0
14907: EQUAL
14908: PUSH
14909: CALL 13817 0 0
14913: PUSH
14914: LD_INT 0
14916: EQUAL
14917: AND
14918: IFFALSE 15052
14920: GO 14922
14922: DISABLE
14923: LD_INT 0
14925: PPUSH
14926: PPUSH
// begin pom = FIlterAllUnits ( [ [ f_side , You ] , [ f_see , Arabi ] ] ) ;
14927: LD_ADDR_VAR 0 2
14931: PUSH
14932: LD_INT 22
14934: PUSH
14935: LD_EXP 1
14939: PUSH
14940: EMPTY
14941: LIST
14942: LIST
14943: PUSH
14944: LD_INT 101
14946: PUSH
14947: LD_EXP 4
14951: PUSH
14952: EMPTY
14953: LIST
14954: LIST
14955: PUSH
14956: EMPTY
14957: LIST
14958: LIST
14959: PPUSH
14960: CALL_OW 69
14964: ST_TO_ADDR
// if pom > 0 then
14965: LD_VAR 0 2
14969: PUSH
14970: LD_INT 0
14972: GREATER
14973: IFFALSE 15051
// begin ComChangeProfession ( diet , class_mortar ) ;
14975: LD_EXP 56
14979: PPUSH
14980: LD_INT 8
14982: PPUSH
14983: CALL_OW 123
// AddComExitBuilding ( diet ) ;
14987: LD_EXP 56
14991: PPUSH
14992: CALL_OW 182
// for i in pom do
14996: LD_ADDR_VAR 0 1
15000: PUSH
15001: LD_VAR 0 2
15005: PUSH
15006: FOR_IN
15007: IFFALSE 15025
// AddComAttackUnit ( diet , i ) ;
15009: LD_EXP 56
15013: PPUSH
15014: LD_VAR 0 1
15018: PPUSH
15019: CALL_OW 175
15023: GO 15006
15025: POP
15026: POP
// AddComEnterUnit ( diet , Ar_bar ) ;
15027: LD_EXP 56
15031: PPUSH
15032: LD_INT 61
15034: PPUSH
15035: CALL_OW 180
// AddComChangeProfession ( diet , class_soldier ) ;
15039: LD_EXP 56
15043: PPUSH
15044: LD_INT 1
15046: PPUSH
15047: CALL_OW 183
// end ; enable ;
15051: ENABLE
// end ;
15052: PPOPN 2
15054: END
// every 0 0$0.1 do var pom , i ;
15055: GO 15057
15057: DISABLE
15058: LD_INT 0
15060: PPUSH
15061: PPUSH
// begin pom = FilterUnitsInArea ( Ar_base , [ [ f_side , Arabi ] , [ f_type , unit_building ] ] ) ;
15062: LD_ADDR_VAR 0 1
15066: PUSH
15067: LD_INT 8
15069: PPUSH
15070: LD_INT 22
15072: PUSH
15073: LD_EXP 4
15077: PUSH
15078: EMPTY
15079: LIST
15080: LIST
15081: PUSH
15082: LD_INT 21
15084: PUSH
15085: LD_INT 3
15087: PUSH
15088: EMPTY
15089: LIST
15090: LIST
15091: PUSH
15092: EMPTY
15093: LIST
15094: LIST
15095: PPUSH
15096: CALL_OW 70
15100: ST_TO_ADDR
// for i in pom do
15101: LD_ADDR_VAR 0 2
15105: PUSH
15106: LD_VAR 0 1
15110: PUSH
15111: FOR_IN
15112: IFFALSE 15136
// SetBLevel ( i , levely_budovy_arabi [ difficulty ] ) ;
15114: LD_VAR 0 2
15118: PPUSH
15119: LD_EXP 40
15123: PUSH
15124: LD_OWVAR 67
15128: ARRAY
15129: PPUSH
15130: CALL_OW 241
15134: GO 15111
15136: POP
15137: POP
// end ;
15138: PPOPN 2
15140: END
// every 0 0$5 trigger Arabi_vztah = 20 do var pom ; var poc ;
15141: LD_EXP 60
15145: PUSH
15146: LD_INT 20
15148: EQUAL
15149: IFFALSE 15519
15151: GO 15153
15153: DISABLE
15154: LD_INT 0
15156: PPUSH
15157: PPUSH
// begin wait ( 0 0$30 ) ;
15158: LD_INT 1050
15160: PPUSH
15161: CALL_OW 67
// ComExitBuilding ( Arabi_enter ) ;
15165: LD_LOC 7
15169: PPUSH
15170: CALL_OW 122
// AddComEnterUnit ( Arabi_enter , Ar_bar ) ;
15174: LD_LOC 7
15178: PPUSH
15179: LD_INT 61
15181: PPUSH
15182: CALL_OW 180
// AddComChangeProfession ( Arabi_enter , class_mortar ) ;
15186: LD_LOC 7
15190: PPUSH
15191: LD_INT 8
15193: PPUSH
15194: CALL_OW 183
// RemoveMineOfUnit ( diet ) ;
15198: LD_EXP 56
15202: PPUSH
15203: CALL_OW 460
// RemoveMineOfUnit ( A2 ) ;
15207: LD_EXP 57
15211: PPUSH
15212: CALL_OW 460
// RemoveMineOfUnit ( A4 ) ;
15216: LD_EXP 59
15220: PPUSH
15221: CALL_OW 460
// AddComPlaceRemoteCharge ( diet , 0 , 0 , Am_at6 ) ;
15225: LD_EXP 56
15229: PPUSH
15230: LD_INT 0
15232: PPUSH
15233: LD_INT 0
15235: PPUSH
15236: LD_INT 180
15238: PPUSH
15239: CALL_OW 193
// AddComPlaceRemoteCharge ( A2 , 0 , 0 , Am_at7 ) ;
15243: LD_EXP 57
15247: PPUSH
15248: LD_INT 0
15250: PPUSH
15251: LD_INT 0
15253: PPUSH
15254: LD_INT 70
15256: PPUSH
15257: CALL_OW 193
// AddComPlaceRemoteCharge ( A3 , 0 , 0 , Am_bar ) ;
15261: LD_EXP 58
15265: PPUSH
15266: LD_INT 0
15268: PPUSH
15269: LD_INT 0
15271: PPUSH
15272: LD_INT 85
15274: PPUSH
15275: CALL_OW 193
// AddComPlaceRemoteCharge ( A4 , 0 , 0 , Am_at4 ) ;
15279: LD_EXP 59
15283: PPUSH
15284: LD_INT 0
15286: PPUSH
15287: LD_INT 0
15289: PPUSH
15290: LD_INT 69
15292: PPUSH
15293: CALL_OW 193
// AddComMoveXY ( Arabi_enter , 88 , 9 ) ;
15297: LD_LOC 7
15301: PPUSH
15302: LD_INT 88
15304: PPUSH
15305: LD_INT 9
15307: PPUSH
15308: CALL_OW 171
// ComExitBuilding ( Arabi_opoce ) ;
15312: LD_LOC 8
15316: PPUSH
15317: CALL_OW 122
// AddComEnterUnit ( Arabi_opoce , Ar_bar ) ;
15321: LD_LOC 8
15325: PPUSH
15326: LD_INT 61
15328: PPUSH
15329: CALL_OW 180
// AddComChangeProfession ( Arabi_opoce , class_apeman_kamikaze ) ;
15333: LD_LOC 8
15337: PPUSH
15338: LD_INT 17
15340: PPUSH
15341: CALL_OW 183
// AddComExitBuilding ( Arabi_opoce ) ;
15345: LD_LOC 8
15349: PPUSH
15350: CALL_OW 182
// wait ( 1 1$0 ) ;
15354: LD_INT 2100
15356: PPUSH
15357: CALL_OW 67
// while FilterAllUnits ( [ [ f_side , You ] , [ f_see , Amici ] ] ) = 0 do
15361: LD_INT 22
15363: PUSH
15364: LD_EXP 1
15368: PUSH
15369: EMPTY
15370: LIST
15371: LIST
15372: PUSH
15373: LD_INT 101
15375: PUSH
15376: LD_EXP 2
15380: PUSH
15381: EMPTY
15382: LIST
15383: LIST
15384: PUSH
15385: EMPTY
15386: LIST
15387: LIST
15388: PPUSH
15389: CALL_OW 69
15393: PUSH
15394: LD_INT 0
15396: EQUAL
15397: IFFALSE 15408
// wait ( 0 0$5 ) ;
15399: LD_INT 175
15401: PPUSH
15402: CALL_OW 67
15406: GO 15361
// ComFireExplosives ( [ diet , A2 , A3 , A4 ] ) ;
15408: LD_EXP 56
15412: PUSH
15413: LD_EXP 57
15417: PUSH
15418: LD_EXP 58
15422: PUSH
15423: LD_EXP 59
15427: PUSH
15428: EMPTY
15429: LIST
15430: LIST
15431: LIST
15432: LIST
15433: PPUSH
15434: CALL_OW 134
// AddComAttackUnit ( Arabi_enter , Am_el2 ) ;
15438: LD_LOC 7
15442: PPUSH
15443: LD_INT 81
15445: PPUSH
15446: CALL_OW 175
// AddComAttackUnit ( Arabi_opoce , Am_tov ) ;
15450: LD_LOC 8
15454: PPUSH
15455: LD_INT 175
15457: PPUSH
15458: CALL_OW 175
// wait ( 0 0$3 ) ;
15462: LD_INT 105
15464: PPUSH
15465: CALL_OW 67
// SetAttitude ( Arabi , Amici , att_enemy , true ) ;
15469: LD_EXP 4
15473: PPUSH
15474: LD_EXP 2
15478: PPUSH
15479: LD_INT 2
15481: PPUSH
15482: LD_INT 1
15484: PPUSH
15485: CALL_OW 80
// SetAttitude ( Amici , Arabi , att_enemy , true ) ;
15489: LD_EXP 2
15493: PPUSH
15494: LD_EXP 4
15498: PPUSH
15499: LD_INT 2
15501: PPUSH
15502: LD_INT 1
15504: PPUSH
15505: CALL_OW 80
// wait ( 0 0$30 ) ;
15509: LD_INT 1050
15511: PPUSH
15512: CALL_OW 67
// enable ( 102 ) ;
15516: LD_INT 102
15518: ENABLE_MARKED
// end ;
15519: PPOPN 2
15521: END
// every 0 0$1 trigger GetLives ( Am_el2 ) < 200 marked 102 do
15522: LD_INT 81
15524: PPUSH
15525: CALL_OW 256
15529: PUSH
15530: LD_INT 200
15532: LESS
15533: IFFALSE 15615
15535: GO 15537
15537: DISABLE
// begin ComMoveXY ( Arabi_enter , 61 , 1 ) ;
15538: LD_LOC 7
15542: PPUSH
15543: LD_INT 61
15545: PPUSH
15546: LD_INT 1
15548: PPUSH
15549: CALL_OW 111
// enable ( 101 ) ;
15553: LD_INT 101
15555: ENABLE_MARKED
// while FilterAllUnits ( [ [ f_side , Arabi ] , [ f_class , class_mortar ] ] ) do
15556: LD_INT 22
15558: PUSH
15559: LD_EXP 4
15563: PUSH
15564: EMPTY
15565: LIST
15566: LIST
15567: PUSH
15568: LD_INT 25
15570: PUSH
15571: LD_INT 8
15573: PUSH
15574: EMPTY
15575: LIST
15576: LIST
15577: PUSH
15578: EMPTY
15579: LIST
15580: LIST
15581: PPUSH
15582: CALL_OW 69
15586: IFFALSE 15612
// begin ComMoveXY ( Arabi_enter , 61 , 1 ) ;
15588: LD_LOC 7
15592: PPUSH
15593: LD_INT 61
15595: PPUSH
15596: LD_INT 1
15598: PPUSH
15599: CALL_OW 111
// wait ( 0 0$1 ) ;
15603: LD_INT 35
15605: PPUSH
15606: CALL_OW 67
// end ;
15610: GO 15556
// disable ( 101 ) ;
15612: LD_INT 101
15614: DISABLE_MARKED
// end ;
15615: END
// every 0 0$11 do var pom ;
15616: GO 15618
15618: DISABLE
15619: LD_INT 0
15621: PPUSH
// begin pom = UnitsInside ( Ar_lab ) ;
15622: LD_ADDR_VAR 0 1
15626: PUSH
15627: LD_INT 59
15629: PPUSH
15630: CALL_OW 313
15634: ST_TO_ADDR
// ComChangeProfession ( pom , class_scientistic ) ;
15635: LD_VAR 0 1
15639: PPUSH
15640: LD_INT 4
15642: PPUSH
15643: CALL_OW 123
// enable ;
15647: ENABLE
// end ;
15648: PPOPN 1
15650: END
// every 0 0$1 trigger not KECY_s_arabama do var pom , i ; var vysl ;
15651: LD_EXP 7
15655: NOT
15656: IFFALSE 15838
15658: GO 15660
15660: DISABLE
15661: LD_INT 0
15663: PPUSH
15664: PPUSH
15665: PPUSH
// begin vysl = false ;
15666: LD_ADDR_VAR 0 3
15670: PUSH
15671: LD_INT 0
15673: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
15674: LD_ADDR_VAR 0 1
15678: PUSH
15679: LD_INT 22
15681: PUSH
15682: LD_EXP 1
15686: PUSH
15687: EMPTY
15688: LIST
15689: LIST
15690: PUSH
15691: LD_INT 2
15693: PUSH
15694: LD_INT 21
15696: PUSH
15697: LD_INT 2
15699: PUSH
15700: EMPTY
15701: LIST
15702: LIST
15703: PUSH
15704: LD_INT 21
15706: PUSH
15707: LD_INT 1
15709: PUSH
15710: EMPTY
15711: LIST
15712: LIST
15713: PUSH
15714: EMPTY
15715: LIST
15716: LIST
15717: LIST
15718: PUSH
15719: EMPTY
15720: LIST
15721: LIST
15722: PPUSH
15723: CALL_OW 69
15727: ST_TO_ADDR
// for i in pom do
15728: LD_ADDR_VAR 0 2
15732: PUSH
15733: LD_VAR 0 1
15737: PUSH
15738: FOR_IN
15739: IFFALSE 15773
// if GetSide ( Attacks ( i ) ) = Arabi then
15741: LD_VAR 0 2
15745: PPUSH
15746: CALL_OW 320
15750: PPUSH
15751: CALL_OW 255
15755: PUSH
15756: LD_EXP 4
15760: EQUAL
15761: IFFALSE 15771
// vysl = true ;
15763: LD_ADDR_VAR 0 3
15767: PUSH
15768: LD_INT 1
15770: ST_TO_ADDR
15771: GO 15738
15773: POP
15774: POP
// if vysl then
15775: LD_VAR 0 3
15779: IFFALSE 15837
// begin KECY_s_arabama = true ;
15781: LD_ADDR_EXP 7
15785: PUSH
15786: LD_INT 1
15788: ST_TO_ADDR
// SetAttitude ( You , Arabi , att_enemy , true ) ;
15789: LD_EXP 1
15793: PPUSH
15794: LD_EXP 4
15798: PPUSH
15799: LD_INT 2
15801: PPUSH
15802: LD_INT 1
15804: PPUSH
15805: CALL_OW 80
// SetAttitude ( Arabi , You , att_enemy , true ) ;
15809: LD_EXP 4
15813: PPUSH
15814: LD_EXP 1
15818: PPUSH
15819: LD_INT 2
15821: PPUSH
15822: LD_INT 1
15824: PPUSH
15825: CALL_OW 80
// Arabi_vztah = 0 ;
15829: LD_ADDR_EXP 60
15833: PUSH
15834: LD_INT 0
15836: ST_TO_ADDR
// end ; enable ;
15837: ENABLE
// end ; end_of_file
15838: PPOPN 3
15840: END
// export JMM ; export Joan ; export VEDCI1 ; export VEDCI2 ; export VEDCI3 ; export Am_opoce ; export Am_sol ; export Am_mech ; export Am_vyr ; export Am_snipe ; export Am_utoky ; var UTOCENI ; export mcmillanova_pomsta ; export counter_utoku ; every 0 0$0.1 do
15841: GO 15843
15843: DISABLE
// begin UTOCENI = false ;
15844: LD_ADDR_LOC 9
15848: PUSH
15849: LD_INT 0
15851: ST_TO_ADDR
// Am_utoky = 0 ;
15852: LD_ADDR_EXP 71
15856: PUSH
15857: LD_INT 0
15859: ST_TO_ADDR
// Am_opoce = [ OPC1 , OPC2 , OPC3 , OPC4 ] ;
15860: LD_ADDR_EXP 66
15864: PUSH
15865: LD_INT 140
15867: PUSH
15868: LD_INT 141
15870: PUSH
15871: LD_INT 142
15873: PUSH
15874: LD_INT 143
15876: PUSH
15877: EMPTY
15878: LIST
15879: LIST
15880: LIST
15881: LIST
15882: ST_TO_ADDR
// mcmillanova_pomsta = false ;
15883: LD_ADDR_EXP 72
15887: PUSH
15888: LD_INT 0
15890: ST_TO_ADDR
// counter_utoku = 0 ;
15891: LD_ADDR_EXP 73
15895: PUSH
15896: LD_INT 0
15898: ST_TO_ADDR
// disable ( 998 ) ;
15899: LD_INT 998
15901: DISABLE_MARKED
// end ;
15902: END
// every 0 0$0.2 do
15903: GO 15905
15905: DISABLE
// begin ComEnterUnit ( VEDCI1 , Am_lab1 ) ;
15906: LD_EXP 63
15910: PPUSH
15911: LD_INT 48
15913: PPUSH
15914: CALL_OW 120
// ComEnterUnit ( VEDCI2 , Am_lab2 ) ;
15918: LD_EXP 64
15922: PPUSH
15923: LD_INT 55
15925: PPUSH
15926: CALL_OW 120
// ComEnterUnit ( VEDCI3 , Am_lab3 ) ;
15930: LD_EXP 65
15934: PPUSH
15935: LD_INT 56
15937: PPUSH
15938: CALL_OW 120
// ComEnterUnit ( Joan , Am_lab2 ) ;
15942: LD_EXP 62
15946: PPUSH
15947: LD_INT 55
15949: PPUSH
15950: CALL_OW 120
// ComEnterUnit ( Am_opoce , Am_dep ) ;
15954: LD_EXP 66
15958: PPUSH
15959: LD_INT 45
15961: PPUSH
15962: CALL_OW 120
// ComEnterUnit ( Am_mech , Am_ct ) ;
15966: LD_EXP 68
15970: PPUSH
15971: LD_INT 83
15973: PPUSH
15974: CALL_OW 120
// ComEnterUnit ( Am_vyr , Am_tov ) ;
15978: LD_EXP 69
15982: PPUSH
15983: LD_INT 175
15985: PPUSH
15986: CALL_OW 120
// ComEnterUnit ( Am_snipe , Am_bar ) ;
15990: LD_EXP 70
15994: PPUSH
15995: LD_INT 85
15997: PPUSH
15998: CALL_OW 120
// ComEnterUnit ( Am_sol , Am_bar ) ;
16002: LD_EXP 67
16006: PPUSH
16007: LD_INT 85
16009: PPUSH
16010: CALL_OW 120
// end ;
16014: END
// every 0 0$0.1 do var i , pom ;
16015: GO 16017
16017: DISABLE
16018: LD_INT 0
16020: PPUSH
16021: PPUSH
// begin pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_type , unit_building ] ] ) ;
16022: LD_ADDR_VAR 0 2
16026: PUSH
16027: LD_INT 13
16029: PPUSH
16030: LD_INT 22
16032: PUSH
16033: LD_EXP 2
16037: PUSH
16038: EMPTY
16039: LIST
16040: LIST
16041: PUSH
16042: LD_INT 21
16044: PUSH
16045: LD_INT 3
16047: PUSH
16048: EMPTY
16049: LIST
16050: LIST
16051: PUSH
16052: EMPTY
16053: LIST
16054: LIST
16055: PPUSH
16056: CALL_OW 70
16060: ST_TO_ADDR
// for i in pom do
16061: LD_ADDR_VAR 0 1
16065: PUSH
16066: LD_VAR 0 2
16070: PUSH
16071: FOR_IN
16072: IFFALSE 16096
// SetBLevel ( i , levely_budovy_amici [ difficulty ] ) ;
16074: LD_VAR 0 1
16078: PPUSH
16079: LD_EXP 41
16083: PUSH
16084: LD_OWVAR 67
16088: ARRAY
16089: PPUSH
16090: CALL_OW 241
16094: GO 16071
16096: POP
16097: POP
// end ;
16098: PPOPN 2
16100: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_see , Amici ] ] ) > 0 do var pom ;
16101: LD_INT 22
16103: PUSH
16104: LD_EXP 1
16108: PUSH
16109: EMPTY
16110: LIST
16111: LIST
16112: PUSH
16113: LD_INT 101
16115: PUSH
16116: LD_EXP 2
16120: PUSH
16121: EMPTY
16122: LIST
16123: LIST
16124: PUSH
16125: EMPTY
16126: LIST
16127: LIST
16128: PPUSH
16129: CALL_OW 69
16133: PUSH
16134: LD_INT 0
16136: GREATER
16137: IFFALSE 16399
16139: GO 16141
16141: DISABLE
16142: LD_INT 0
16144: PPUSH
// begin pom = FilterUnitsInArea ( Am_vychod , [ [ f_side , You ] ] ) ;
16145: LD_ADDR_VAR 0 1
16149: PUSH
16150: LD_INT 18
16152: PPUSH
16153: LD_INT 22
16155: PUSH
16156: LD_EXP 1
16160: PUSH
16161: EMPTY
16162: LIST
16163: LIST
16164: PUSH
16165: EMPTY
16166: LIST
16167: PPUSH
16168: CALL_OW 70
16172: ST_TO_ADDR
// if pom > 0 then
16173: LD_VAR 0 1
16177: PUSH
16178: LD_INT 0
16180: GREATER
16181: IFFALSE 16273
// begin if IsOK ( Am_sol [ 1 ] ) then
16183: LD_EXP 67
16187: PUSH
16188: LD_INT 1
16190: ARRAY
16191: PPUSH
16192: CALL_OW 302
16196: IFFALSE 16227
// begin ComExitBuilding ( Am_sol [ 1 ] ) ;
16198: LD_EXP 67
16202: PUSH
16203: LD_INT 1
16205: ARRAY
16206: PPUSH
16207: CALL_OW 122
// AddComEnterUnit ( Am_sol [ 1 ] , Am_bu3 ) ;
16211: LD_EXP 67
16215: PUSH
16216: LD_INT 1
16218: ARRAY
16219: PPUSH
16220: LD_INT 166
16222: PPUSH
16223: CALL_OW 180
// end ; if IsOK ( Am_sol [ 2 ] ) then
16227: LD_EXP 67
16231: PUSH
16232: LD_INT 2
16234: ARRAY
16235: PPUSH
16236: CALL_OW 302
16240: IFFALSE 16271
// begin ComExitBuilding ( Am_sol [ 2 ] ) ;
16242: LD_EXP 67
16246: PUSH
16247: LD_INT 2
16249: ARRAY
16250: PPUSH
16251: CALL_OW 122
// AddComEnterUnit ( Am_sol [ 2 ] , Am_bu4 ) ;
16255: LD_EXP 67
16259: PUSH
16260: LD_INT 2
16262: ARRAY
16263: PPUSH
16264: LD_INT 171
16266: PPUSH
16267: CALL_OW 180
// end ; end else
16271: GO 16399
// begin pom = FilterUnitsInArea ( Am_vychod , [ [ f_side , You ] ] ) ;
16273: LD_ADDR_VAR 0 1
16277: PUSH
16278: LD_INT 18
16280: PPUSH
16281: LD_INT 22
16283: PUSH
16284: LD_EXP 1
16288: PUSH
16289: EMPTY
16290: LIST
16291: LIST
16292: PUSH
16293: EMPTY
16294: LIST
16295: PPUSH
16296: CALL_OW 70
16300: ST_TO_ADDR
// if pom > 0 then
16301: LD_VAR 0 1
16305: PUSH
16306: LD_INT 0
16308: GREATER
16309: IFFALSE 16399
// begin if IsOK ( Am_sol [ 1 ] ) then
16311: LD_EXP 67
16315: PUSH
16316: LD_INT 1
16318: ARRAY
16319: PPUSH
16320: CALL_OW 302
16324: IFFALSE 16355
// begin ComExitBuilding ( Am_sol [ 1 ] ) ;
16326: LD_EXP 67
16330: PUSH
16331: LD_INT 1
16333: ARRAY
16334: PPUSH
16335: CALL_OW 122
// AddComEnterUnit ( Am_sol [ 1 ] , Am_bu1 ) ;
16339: LD_EXP 67
16343: PUSH
16344: LD_INT 1
16346: ARRAY
16347: PPUSH
16348: LD_INT 52
16350: PPUSH
16351: CALL_OW 180
// end ; if IsOK ( Am_sol [ 2 ] ) then
16355: LD_EXP 67
16359: PUSH
16360: LD_INT 2
16362: ARRAY
16363: PPUSH
16364: CALL_OW 302
16368: IFFALSE 16399
// begin ComExitBuilding ( Am_sol [ 2 ] ) ;
16370: LD_EXP 67
16374: PUSH
16375: LD_INT 2
16377: ARRAY
16378: PPUSH
16379: CALL_OW 122
// AddComEnterUnit ( Am_sol [ 2 ] , Am_bu2 ) ;
16383: LD_EXP 67
16387: PUSH
16388: LD_INT 2
16390: ARRAY
16391: PPUSH
16392: LD_INT 53
16394: PPUSH
16395: CALL_OW 180
// end ; end ; end ; end ;
16399: PPOPN 1
16401: END
// every 1 1$7 do
16402: GO 16404
16404: DISABLE
// begin if Researched ( Amici , tech_Sib1 ) then
16405: LD_EXP 2
16409: PPUSH
16410: LD_INT 54
16412: PPUSH
16413: CALL_OW 325
16417: IFFALSE 16451
// begin SetTech ( tech_Sib1 , Amici , state_enabled ) ;
16419: LD_INT 54
16421: PPUSH
16422: LD_EXP 2
16426: PPUSH
16427: LD_INT 1
16429: PPUSH
16430: CALL_OW 322
// ComResearch ( [ Am_lab1 , Am_lab2 ] , tech_Sib1 ) ;
16434: LD_INT 48
16436: PUSH
16437: LD_INT 55
16439: PUSH
16440: EMPTY
16441: LIST
16442: LIST
16443: PPUSH
16444: LD_INT 54
16446: PPUSH
16447: CALL_OW 124
// end ; enable ;
16451: ENABLE
// end ;
16452: END
// every 0 0$19 do
16453: GO 16455
16455: DISABLE
// begin SetTech ( tech_Sib1 , Amici , state_enabled ) ;
16456: LD_INT 54
16458: PPUSH
16459: LD_EXP 2
16463: PPUSH
16464: LD_INT 1
16466: PPUSH
16467: CALL_OW 322
// ComResearch ( [ Am_lab1 , Am_lab2 ] , tech_Sib1 ) ;
16471: LD_INT 48
16473: PUSH
16474: LD_INT 55
16476: PUSH
16477: EMPTY
16478: LIST
16479: LIST
16480: PPUSH
16481: LD_INT 54
16483: PPUSH
16484: CALL_OW 124
// end ;
16488: END
// every 1 1$8 do
16489: GO 16491
16491: DISABLE
// begin if Researched ( Amici , tech_Opto1 ) then
16492: LD_EXP 2
16496: PPUSH
16497: LD_INT 60
16499: PPUSH
16500: CALL_OW 325
16504: IFFALSE 16531
// begin SetTech ( tech_Opto1 , Amici , state_enabled ) ;
16506: LD_INT 60
16508: PPUSH
16509: LD_EXP 2
16513: PPUSH
16514: LD_INT 1
16516: PPUSH
16517: CALL_OW 322
// ComResearch ( Am_lab3 , tech_Opto1 ) ;
16521: LD_INT 56
16523: PPUSH
16524: LD_INT 60
16526: PPUSH
16527: CALL_OW 124
// end ; enable ;
16531: ENABLE
// end ;
16532: END
// every 0 0$21 do
16533: GO 16535
16535: DISABLE
// begin SetTech ( tech_Opto1 , Amici , state_enabled ) ;
16536: LD_INT 60
16538: PPUSH
16539: LD_EXP 2
16543: PPUSH
16544: LD_INT 1
16546: PPUSH
16547: CALL_OW 322
// ComResearch ( Am_lab3 , tech_Opto1 ) ;
16551: LD_INT 56
16553: PPUSH
16554: LD_INT 60
16556: PPUSH
16557: CALL_OW 124
// end ;
16561: END
// every 0 0$10 trigger Arabi_vztah = 0 and bojeschopnych_rusu = 0 do var pom , i , pom1 ;
16562: LD_EXP 60
16566: PUSH
16567: LD_INT 0
16569: EQUAL
16570: PUSH
16571: CALL 16666 0 0
16575: PUSH
16576: LD_INT 0
16578: EQUAL
16579: AND
16580: IFFALSE 16663
16582: GO 16584
16584: DISABLE
16585: LD_INT 0
16587: PPUSH
16588: PPUSH
16589: PPUSH
// begin if IsOK ( Am_bar ) and IsInUnit ( Am_sol [ 1 ] ) <> Am_bar and IsInUnit ( Am_sol [ 1 ] ) <> Am_bar then
16590: LD_INT 85
16592: PPUSH
16593: CALL_OW 302
16597: PUSH
16598: LD_EXP 67
16602: PUSH
16603: LD_INT 1
16605: ARRAY
16606: PPUSH
16607: CALL_OW 310
16611: PUSH
16612: LD_INT 85
16614: NONEQUAL
16615: AND
16616: PUSH
16617: LD_EXP 67
16621: PUSH
16622: LD_INT 1
16624: ARRAY
16625: PPUSH
16626: CALL_OW 310
16630: PUSH
16631: LD_INT 85
16633: NONEQUAL
16634: AND
16635: IFFALSE 16658
// begin ComExitBuilding ( Am_sol ) ;
16637: LD_EXP 67
16641: PPUSH
16642: CALL_OW 122
// AddComEnterUnit ( Am_sol , Am_bar ) ;
16646: LD_EXP 67
16650: PPUSH
16651: LD_INT 85
16653: PPUSH
16654: CALL_OW 180
// end ; opravovani_budov ;
16658: CALL 18797 0 0
// enable ;
16662: ENABLE
// end ;
16663: PPOPN 3
16665: END
// function bojeschopnych_rusu ; var pom , i , pom1 ; begin
16666: LD_INT 0
16668: PPUSH
16669: PPUSH
16670: PPUSH
16671: PPUSH
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_see , Amici ] ] ) ;
16672: LD_ADDR_VAR 0 2
16676: PUSH
16677: LD_INT 22
16679: PUSH
16680: LD_EXP 1
16684: PUSH
16685: EMPTY
16686: LIST
16687: LIST
16688: PUSH
16689: LD_INT 101
16691: PUSH
16692: LD_EXP 2
16696: PUSH
16697: EMPTY
16698: LIST
16699: LIST
16700: PUSH
16701: EMPTY
16702: LIST
16703: LIST
16704: PPUSH
16705: CALL_OW 69
16709: ST_TO_ADDR
// pom1 = pom ;
16710: LD_ADDR_VAR 0 4
16714: PUSH
16715: LD_VAR 0 2
16719: ST_TO_ADDR
// for i in pom do
16720: LD_ADDR_VAR 0 3
16724: PUSH
16725: LD_VAR 0 2
16729: PUSH
16730: FOR_IN
16731: IFFALSE 16781
// if GetType ( i ) = unit_vehicle and IsDrivenBy ( i ) = 0 then
16733: LD_VAR 0 3
16737: PPUSH
16738: CALL_OW 247
16742: PUSH
16743: LD_INT 2
16745: EQUAL
16746: PUSH
16747: LD_VAR 0 3
16751: PPUSH
16752: CALL_OW 311
16756: PUSH
16757: LD_INT 0
16759: EQUAL
16760: AND
16761: IFFALSE 16779
// pom1 = pom1 diff i ;
16763: LD_ADDR_VAR 0 4
16767: PUSH
16768: LD_VAR 0 4
16772: PUSH
16773: LD_VAR 0 3
16777: DIFF
16778: ST_TO_ADDR
16779: GO 16730
16781: POP
16782: POP
// debug_strings = [ pom1 ] ;
16783: LD_ADDR_OWVAR 48
16787: PUSH
16788: LD_VAR 0 4
16792: PUSH
16793: EMPTY
16794: LIST
16795: ST_TO_ADDR
// result := pom1 + 0 ;
16796: LD_ADDR_VAR 0 1
16800: PUSH
16801: LD_VAR 0 4
16805: PUSH
16806: LD_INT 0
16808: PLUS
16809: ST_TO_ADDR
// end ;
16810: LD_VAR 0 1
16814: RET
// every 0 0$19 trigger Am_utoky = 1 do var i ; var cesta ;
16815: LD_EXP 71
16819: PUSH
16820: LD_INT 1
16822: EQUAL
16823: IFFALSE 17177
16825: GO 16827
16827: DISABLE
16828: LD_INT 0
16830: PPUSH
16831: PPUSH
// begin wait ( cas_utoku_amiku [ difficulty ] ) ;
16832: LD_EXP 43
16836: PUSH
16837: LD_OWVAR 67
16841: ARRAY
16842: PPUSH
16843: CALL_OW 67
// wait ( Rand ( 1 , 0 0$30 ) ) ;
16847: LD_INT 1
16849: PPUSH
16850: LD_INT 1050
16852: PPUSH
16853: CALL_OW 12
16857: PPUSH
16858: CALL_OW 67
// if mcmillanova_pomsta then
16862: LD_EXP 72
16866: IFFALSE 16870
// exit ;
16868: GO 17177
// for i in AM_UTOK_1_LIST do
16870: LD_ADDR_VAR 0 1
16874: PUSH
16875: LD_EXP 33
16879: PUSH
16880: FOR_IN
16881: IFFALSE 16900
// PlaceUnitArea ( i , Am_enter , false ) ;
16883: LD_VAR 0 1
16887: PPUSH
16888: LD_INT 19
16890: PPUSH
16891: LD_INT 0
16893: PPUSH
16894: CALL_OW 49
16898: GO 16880
16900: POP
16901: POP
// case cislo_baze of 1 :
16902: LD_EXP 9
16906: PUSH
16907: LD_INT 1
16909: DOUBLE
16910: EQUAL
16911: IFTRUE 16915
16913: GO 16969
16915: POP
// cesta = [ [ 40 , 46 ] , [ 70 , 62 ] , [ 57 , 77 ] , [ 48 , 75 ] ] ; 2 :
16916: LD_ADDR_VAR 0 2
16920: PUSH
16921: LD_INT 40
16923: PUSH
16924: LD_INT 46
16926: PUSH
16927: EMPTY
16928: LIST
16929: LIST
16930: PUSH
16931: LD_INT 70
16933: PUSH
16934: LD_INT 62
16936: PUSH
16937: EMPTY
16938: LIST
16939: LIST
16940: PUSH
16941: LD_INT 57
16943: PUSH
16944: LD_INT 77
16946: PUSH
16947: EMPTY
16948: LIST
16949: LIST
16950: PUSH
16951: LD_INT 48
16953: PUSH
16954: LD_INT 75
16956: PUSH
16957: EMPTY
16958: LIST
16959: LIST
16960: PUSH
16961: EMPTY
16962: LIST
16963: LIST
16964: LIST
16965: LIST
16966: ST_TO_ADDR
16967: GO 17138
16969: LD_INT 2
16971: DOUBLE
16972: EQUAL
16973: IFTRUE 16977
16975: GO 17042
16977: POP
// cesta = [ [ 40 , 47 ] , [ 61 , 52 ] , [ 76 , 58 ] , [ 83 , 72 ] , [ 94 , 91 ] ] ; 3 :
16978: LD_ADDR_VAR 0 2
16982: PUSH
16983: LD_INT 40
16985: PUSH
16986: LD_INT 47
16988: PUSH
16989: EMPTY
16990: LIST
16991: LIST
16992: PUSH
16993: LD_INT 61
16995: PUSH
16996: LD_INT 52
16998: PUSH
16999: EMPTY
17000: LIST
17001: LIST
17002: PUSH
17003: LD_INT 76
17005: PUSH
17006: LD_INT 58
17008: PUSH
17009: EMPTY
17010: LIST
17011: LIST
17012: PUSH
17013: LD_INT 83
17015: PUSH
17016: LD_INT 72
17018: PUSH
17019: EMPTY
17020: LIST
17021: LIST
17022: PUSH
17023: LD_INT 94
17025: PUSH
17026: LD_INT 91
17028: PUSH
17029: EMPTY
17030: LIST
17031: LIST
17032: PUSH
17033: EMPTY
17034: LIST
17035: LIST
17036: LIST
17037: LIST
17038: LIST
17039: ST_TO_ADDR
17040: GO 17138
17042: LD_INT 3
17044: DOUBLE
17045: EQUAL
17046: IFTRUE 17050
17048: GO 17137
17050: POP
// cesta = [ [ 40 , 47 ] , [ 61 , 52 ] , [ 86 , 76 ] , [ 103 , 95 ] , [ 126 , 79 ] , [ 140 , 82 ] , [ 144 , 69 ] ] ; end ;
17051: LD_ADDR_VAR 0 2
17055: PUSH
17056: LD_INT 40
17058: PUSH
17059: LD_INT 47
17061: PUSH
17062: EMPTY
17063: LIST
17064: LIST
17065: PUSH
17066: LD_INT 61
17068: PUSH
17069: LD_INT 52
17071: PUSH
17072: EMPTY
17073: LIST
17074: LIST
17075: PUSH
17076: LD_INT 86
17078: PUSH
17079: LD_INT 76
17081: PUSH
17082: EMPTY
17083: LIST
17084: LIST
17085: PUSH
17086: LD_INT 103
17088: PUSH
17089: LD_INT 95
17091: PUSH
17092: EMPTY
17093: LIST
17094: LIST
17095: PUSH
17096: LD_INT 126
17098: PUSH
17099: LD_INT 79
17101: PUSH
17102: EMPTY
17103: LIST
17104: LIST
17105: PUSH
17106: LD_INT 140
17108: PUSH
17109: LD_INT 82
17111: PUSH
17112: EMPTY
17113: LIST
17114: LIST
17115: PUSH
17116: LD_INT 144
17118: PUSH
17119: LD_INT 69
17121: PUSH
17122: EMPTY
17123: LIST
17124: LIST
17125: PUSH
17126: EMPTY
17127: LIST
17128: LIST
17129: LIST
17130: LIST
17131: LIST
17132: LIST
17133: LIST
17134: ST_TO_ADDR
17135: GO 17138
17137: POP
// McMove ( 1 , AM_UTOK_1_LIST , cesta , [ mc_move_dontcapture , mc_move_agressive , mc_move_waitwp ] ) ;
17138: LD_INT 1
17140: PPUSH
17141: LD_EXP 33
17145: PPUSH
17146: LD_VAR 0 2
17150: PPUSH
17151: LD_INT 5
17153: PUSH
17154: LD_INT 6
17156: PUSH
17157: LD_INT 3
17159: PUSH
17160: EMPTY
17161: LIST
17162: LIST
17163: LIST
17164: PPUSH
17165: CALL_OW 398
// Am_utoky = 2 ;
17169: LD_ADDR_EXP 71
17173: PUSH
17174: LD_INT 2
17176: ST_TO_ADDR
// end ;
17177: PPOPN 2
17179: END
// every 0 0$17 trigger Am_utoky = 2 do var i ; var cesta ;
17180: LD_EXP 71
17184: PUSH
17185: LD_INT 2
17187: EQUAL
17188: IFFALSE 17527
17190: GO 17192
17192: DISABLE
17193: LD_INT 0
17195: PPUSH
17196: PPUSH
// begin wait ( cas_utoku_amiku [ difficulty ] ) ;
17197: LD_EXP 43
17201: PUSH
17202: LD_OWVAR 67
17206: ARRAY
17207: PPUSH
17208: CALL_OW 67
// if mcmillanova_pomsta then
17212: LD_EXP 72
17216: IFFALSE 17220
// exit ;
17218: GO 17527
// for i in AM_UTOK_2_LIST do
17220: LD_ADDR_VAR 0 1
17224: PUSH
17225: LD_EXP 34
17229: PUSH
17230: FOR_IN
17231: IFFALSE 17250
// PlaceUnitArea ( i , Am_enter , false ) ;
17233: LD_VAR 0 1
17237: PPUSH
17238: LD_INT 19
17240: PPUSH
17241: LD_INT 0
17243: PPUSH
17244: CALL_OW 49
17248: GO 17230
17250: POP
17251: POP
// case cislo_baze of 1 :
17252: LD_EXP 9
17256: PUSH
17257: LD_INT 1
17259: DOUBLE
17260: EQUAL
17261: IFTRUE 17265
17263: GO 17319
17265: POP
// cesta = [ [ 40 , 46 ] , [ 70 , 62 ] , [ 57 , 77 ] , [ 48 , 75 ] ] ; 2 :
17266: LD_ADDR_VAR 0 2
17270: PUSH
17271: LD_INT 40
17273: PUSH
17274: LD_INT 46
17276: PUSH
17277: EMPTY
17278: LIST
17279: LIST
17280: PUSH
17281: LD_INT 70
17283: PUSH
17284: LD_INT 62
17286: PUSH
17287: EMPTY
17288: LIST
17289: LIST
17290: PUSH
17291: LD_INT 57
17293: PUSH
17294: LD_INT 77
17296: PUSH
17297: EMPTY
17298: LIST
17299: LIST
17300: PUSH
17301: LD_INT 48
17303: PUSH
17304: LD_INT 75
17306: PUSH
17307: EMPTY
17308: LIST
17309: LIST
17310: PUSH
17311: EMPTY
17312: LIST
17313: LIST
17314: LIST
17315: LIST
17316: ST_TO_ADDR
17317: GO 17488
17319: LD_INT 2
17321: DOUBLE
17322: EQUAL
17323: IFTRUE 17327
17325: GO 17392
17327: POP
// cesta = [ [ 40 , 47 ] , [ 61 , 52 ] , [ 76 , 58 ] , [ 83 , 72 ] , [ 94 , 91 ] ] ; 3 :
17328: LD_ADDR_VAR 0 2
17332: PUSH
17333: LD_INT 40
17335: PUSH
17336: LD_INT 47
17338: PUSH
17339: EMPTY
17340: LIST
17341: LIST
17342: PUSH
17343: LD_INT 61
17345: PUSH
17346: LD_INT 52
17348: PUSH
17349: EMPTY
17350: LIST
17351: LIST
17352: PUSH
17353: LD_INT 76
17355: PUSH
17356: LD_INT 58
17358: PUSH
17359: EMPTY
17360: LIST
17361: LIST
17362: PUSH
17363: LD_INT 83
17365: PUSH
17366: LD_INT 72
17368: PUSH
17369: EMPTY
17370: LIST
17371: LIST
17372: PUSH
17373: LD_INT 94
17375: PUSH
17376: LD_INT 91
17378: PUSH
17379: EMPTY
17380: LIST
17381: LIST
17382: PUSH
17383: EMPTY
17384: LIST
17385: LIST
17386: LIST
17387: LIST
17388: LIST
17389: ST_TO_ADDR
17390: GO 17488
17392: LD_INT 3
17394: DOUBLE
17395: EQUAL
17396: IFTRUE 17400
17398: GO 17487
17400: POP
// cesta = [ [ 40 , 47 ] , [ 61 , 52 ] , [ 86 , 76 ] , [ 103 , 95 ] , [ 126 , 79 ] , [ 140 , 82 ] , [ 144 , 69 ] ] ; end ;
17401: LD_ADDR_VAR 0 2
17405: PUSH
17406: LD_INT 40
17408: PUSH
17409: LD_INT 47
17411: PUSH
17412: EMPTY
17413: LIST
17414: LIST
17415: PUSH
17416: LD_INT 61
17418: PUSH
17419: LD_INT 52
17421: PUSH
17422: EMPTY
17423: LIST
17424: LIST
17425: PUSH
17426: LD_INT 86
17428: PUSH
17429: LD_INT 76
17431: PUSH
17432: EMPTY
17433: LIST
17434: LIST
17435: PUSH
17436: LD_INT 103
17438: PUSH
17439: LD_INT 95
17441: PUSH
17442: EMPTY
17443: LIST
17444: LIST
17445: PUSH
17446: LD_INT 126
17448: PUSH
17449: LD_INT 79
17451: PUSH
17452: EMPTY
17453: LIST
17454: LIST
17455: PUSH
17456: LD_INT 140
17458: PUSH
17459: LD_INT 82
17461: PUSH
17462: EMPTY
17463: LIST
17464: LIST
17465: PUSH
17466: LD_INT 144
17468: PUSH
17469: LD_INT 69
17471: PUSH
17472: EMPTY
17473: LIST
17474: LIST
17475: PUSH
17476: EMPTY
17477: LIST
17478: LIST
17479: LIST
17480: LIST
17481: LIST
17482: LIST
17483: LIST
17484: ST_TO_ADDR
17485: GO 17488
17487: POP
// McMove ( 1 , AM_UTOK_2_LIST , cesta , [ mc_move_dontcapture , mc_move_agressive , mc_move_waitwp ] ) ;
17488: LD_INT 1
17490: PPUSH
17491: LD_EXP 34
17495: PPUSH
17496: LD_VAR 0 2
17500: PPUSH
17501: LD_INT 5
17503: PUSH
17504: LD_INT 6
17506: PUSH
17507: LD_INT 3
17509: PUSH
17510: EMPTY
17511: LIST
17512: LIST
17513: LIST
17514: PPUSH
17515: CALL_OW 398
// Am_utoky = 3 ;
17519: LD_ADDR_EXP 71
17523: PUSH
17524: LD_INT 3
17526: ST_TO_ADDR
// end ;
17527: PPOPN 2
17529: END
// every 0 0$19 trigger Am_utoky = 3 do var i ; var cesta ;
17530: LD_EXP 71
17534: PUSH
17535: LD_INT 3
17537: EQUAL
17538: IFFALSE 17910
17540: GO 17542
17542: DISABLE
17543: LD_INT 0
17545: PPUSH
17546: PPUSH
// begin wait ( cas_utoku_amiku [ difficulty ] ) ;
17547: LD_EXP 43
17551: PUSH
17552: LD_OWVAR 67
17556: ARRAY
17557: PPUSH
17558: CALL_OW 67
// if mcmillanova_pomsta then
17562: LD_EXP 72
17566: IFFALSE 17570
// exit ;
17568: GO 17910
// for i in AM_UTOK_3_LIST do
17570: LD_ADDR_VAR 0 1
17574: PUSH
17575: LD_EXP 35
17579: PUSH
17580: FOR_IN
17581: IFFALSE 17600
// PlaceUnitArea ( i , Am_enter , false ) ;
17583: LD_VAR 0 1
17587: PPUSH
17588: LD_INT 19
17590: PPUSH
17591: LD_INT 0
17593: PPUSH
17594: CALL_OW 49
17598: GO 17580
17600: POP
17601: POP
// case cislo_baze of 1 :
17602: LD_EXP 9
17606: PUSH
17607: LD_INT 1
17609: DOUBLE
17610: EQUAL
17611: IFTRUE 17615
17613: GO 17680
17615: POP
// cesta = [ [ 40 , 46 ] , [ 70 , 62 ] , [ 96 , 104 ] , [ 70 , 100 ] , [ 49 , 78 ] ] ; 2 :
17616: LD_ADDR_VAR 0 2
17620: PUSH
17621: LD_INT 40
17623: PUSH
17624: LD_INT 46
17626: PUSH
17627: EMPTY
17628: LIST
17629: LIST
17630: PUSH
17631: LD_INT 70
17633: PUSH
17634: LD_INT 62
17636: PUSH
17637: EMPTY
17638: LIST
17639: LIST
17640: PUSH
17641: LD_INT 96
17643: PUSH
17644: LD_INT 104
17646: PUSH
17647: EMPTY
17648: LIST
17649: LIST
17650: PUSH
17651: LD_INT 70
17653: PUSH
17654: LD_INT 100
17656: PUSH
17657: EMPTY
17658: LIST
17659: LIST
17660: PUSH
17661: LD_INT 49
17663: PUSH
17664: LD_INT 78
17666: PUSH
17667: EMPTY
17668: LIST
17669: LIST
17670: PUSH
17671: EMPTY
17672: LIST
17673: LIST
17674: LIST
17675: LIST
17676: LIST
17677: ST_TO_ADDR
17678: GO 17871
17680: LD_INT 2
17682: DOUBLE
17683: EQUAL
17684: IFTRUE 17688
17686: GO 17764
17688: POP
// cesta = [ [ 40 , 47 ] , [ 61 , 52 ] , [ 59 , 76 ] , [ 59 , 85 ] , [ 71 , 99 ] , [ 97 , 103 ] ] ; 3 :
17689: LD_ADDR_VAR 0 2
17693: PUSH
17694: LD_INT 40
17696: PUSH
17697: LD_INT 47
17699: PUSH
17700: EMPTY
17701: LIST
17702: LIST
17703: PUSH
17704: LD_INT 61
17706: PUSH
17707: LD_INT 52
17709: PUSH
17710: EMPTY
17711: LIST
17712: LIST
17713: PUSH
17714: LD_INT 59
17716: PUSH
17717: LD_INT 76
17719: PUSH
17720: EMPTY
17721: LIST
17722: LIST
17723: PUSH
17724: LD_INT 59
17726: PUSH
17727: LD_INT 85
17729: PUSH
17730: EMPTY
17731: LIST
17732: LIST
17733: PUSH
17734: LD_INT 71
17736: PUSH
17737: LD_INT 99
17739: PUSH
17740: EMPTY
17741: LIST
17742: LIST
17743: PUSH
17744: LD_INT 97
17746: PUSH
17747: LD_INT 103
17749: PUSH
17750: EMPTY
17751: LIST
17752: LIST
17753: PUSH
17754: EMPTY
17755: LIST
17756: LIST
17757: LIST
17758: LIST
17759: LIST
17760: LIST
17761: ST_TO_ADDR
17762: GO 17871
17764: LD_INT 3
17766: DOUBLE
17767: EQUAL
17768: IFTRUE 17772
17770: GO 17870
17772: POP
// cesta = [ [ 40 , 47 ] , [ 61 , 52 ] , [ 87 , 42 ] , [ 84 , 20 ] , [ 100 , 30 ] , [ 128 , 41 ] , [ 139 , 45 ] , [ 148 , 65 ] ] ; end ;
17773: LD_ADDR_VAR 0 2
17777: PUSH
17778: LD_INT 40
17780: PUSH
17781: LD_INT 47
17783: PUSH
17784: EMPTY
17785: LIST
17786: LIST
17787: PUSH
17788: LD_INT 61
17790: PUSH
17791: LD_INT 52
17793: PUSH
17794: EMPTY
17795: LIST
17796: LIST
17797: PUSH
17798: LD_INT 87
17800: PUSH
17801: LD_INT 42
17803: PUSH
17804: EMPTY
17805: LIST
17806: LIST
17807: PUSH
17808: LD_INT 84
17810: PUSH
17811: LD_INT 20
17813: PUSH
17814: EMPTY
17815: LIST
17816: LIST
17817: PUSH
17818: LD_INT 100
17820: PUSH
17821: LD_INT 30
17823: PUSH
17824: EMPTY
17825: LIST
17826: LIST
17827: PUSH
17828: LD_INT 128
17830: PUSH
17831: LD_INT 41
17833: PUSH
17834: EMPTY
17835: LIST
17836: LIST
17837: PUSH
17838: LD_INT 139
17840: PUSH
17841: LD_INT 45
17843: PUSH
17844: EMPTY
17845: LIST
17846: LIST
17847: PUSH
17848: LD_INT 148
17850: PUSH
17851: LD_INT 65
17853: PUSH
17854: EMPTY
17855: LIST
17856: LIST
17857: PUSH
17858: EMPTY
17859: LIST
17860: LIST
17861: LIST
17862: LIST
17863: LIST
17864: LIST
17865: LIST
17866: LIST
17867: ST_TO_ADDR
17868: GO 17871
17870: POP
// McMove ( 1 , AM_UTOK_3_LIST , cesta , [ mc_move_dontcapture , mc_move_agressive , mc_move_waitwp ] ) ;
17871: LD_INT 1
17873: PPUSH
17874: LD_EXP 35
17878: PPUSH
17879: LD_VAR 0 2
17883: PPUSH
17884: LD_INT 5
17886: PUSH
17887: LD_INT 6
17889: PUSH
17890: LD_INT 3
17892: PUSH
17893: EMPTY
17894: LIST
17895: LIST
17896: LIST
17897: PPUSH
17898: CALL_OW 398
// Am_utoky = 4 ;
17902: LD_ADDR_EXP 71
17906: PUSH
17907: LD_INT 4
17909: ST_TO_ADDR
// end ;
17910: PPOPN 2
17912: END
// every 0 0$19 trigger mcmillanova_pomsta marked 999 do var units ; var i , pom ; var cesta ;
17913: LD_EXP 72
17917: IFFALSE 18218
17919: GO 17921
17921: DISABLE
17922: LD_INT 0
17924: PPUSH
17925: PPUSH
17926: PPUSH
17927: PPUSH
// begin cesta = [ [ 74 , 52 ] ] ;
17928: LD_ADDR_VAR 0 4
17932: PUSH
17933: LD_INT 74
17935: PUSH
17936: LD_INT 52
17938: PUSH
17939: EMPTY
17940: LIST
17941: LIST
17942: PUSH
17943: EMPTY
17944: LIST
17945: ST_TO_ADDR
// units = create_JMM_revange ;
17946: LD_ADDR_VAR 0 1
17950: PUSH
17951: CALL 9949 0 0
17955: ST_TO_ADDR
// for i in units do
17956: LD_ADDR_VAR 0 2
17960: PUSH
17961: LD_VAR 0 1
17965: PUSH
17966: FOR_IN
17967: IFFALSE 17986
// PlaceUnitArea ( i , JMM_revenge , false ) ;
17969: LD_VAR 0 2
17973: PPUSH
17974: LD_INT 29
17976: PPUSH
17977: LD_INT 0
17979: PPUSH
17980: CALL_OW 49
17984: GO 17966
17986: POP
17987: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
17988: LD_ADDR_VAR 0 3
17992: PUSH
17993: LD_INT 22
17995: PUSH
17996: LD_EXP 1
18000: PUSH
18001: EMPTY
18002: LIST
18003: LIST
18004: PUSH
18005: LD_INT 2
18007: PUSH
18008: LD_INT 21
18010: PUSH
18011: LD_INT 2
18013: PUSH
18014: EMPTY
18015: LIST
18016: LIST
18017: PUSH
18018: LD_INT 21
18020: PUSH
18021: LD_INT 1
18023: PUSH
18024: EMPTY
18025: LIST
18026: LIST
18027: PUSH
18028: EMPTY
18029: LIST
18030: LIST
18031: LIST
18032: PUSH
18033: EMPTY
18034: LIST
18035: LIST
18036: PPUSH
18037: CALL_OW 69
18041: ST_TO_ADDR
// for i in pom do
18042: LD_ADDR_VAR 0 2
18046: PUSH
18047: LD_VAR 0 3
18051: PUSH
18052: FOR_IN
18053: IFFALSE 18095
// cesta = cesta ^ [ [ GetX ( i ) , GetY ( i ) ] ] ;
18055: LD_ADDR_VAR 0 4
18059: PUSH
18060: LD_VAR 0 4
18064: PUSH
18065: LD_VAR 0 2
18069: PPUSH
18070: CALL_OW 250
18074: PUSH
18075: LD_VAR 0 2
18079: PPUSH
18080: CALL_OW 251
18084: PUSH
18085: EMPTY
18086: LIST
18087: LIST
18088: PUSH
18089: EMPTY
18090: LIST
18091: ADD
18092: ST_TO_ADDR
18093: GO 18052
18095: POP
18096: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_building ] ] ) ;
18097: LD_ADDR_VAR 0 3
18101: PUSH
18102: LD_INT 22
18104: PUSH
18105: LD_EXP 1
18109: PUSH
18110: EMPTY
18111: LIST
18112: LIST
18113: PUSH
18114: LD_INT 21
18116: PUSH
18117: LD_INT 3
18119: PUSH
18120: EMPTY
18121: LIST
18122: LIST
18123: PUSH
18124: EMPTY
18125: LIST
18126: LIST
18127: PPUSH
18128: CALL_OW 69
18132: ST_TO_ADDR
// for i in pom do
18133: LD_ADDR_VAR 0 2
18137: PUSH
18138: LD_VAR 0 3
18142: PUSH
18143: FOR_IN
18144: IFFALSE 18186
// cesta = cesta ^ [ [ GetX ( i ) , GetY ( i ) ] ] ;
18146: LD_ADDR_VAR 0 4
18150: PUSH
18151: LD_VAR 0 4
18155: PUSH
18156: LD_VAR 0 2
18160: PPUSH
18161: CALL_OW 250
18165: PUSH
18166: LD_VAR 0 2
18170: PPUSH
18171: CALL_OW 251
18175: PUSH
18176: EMPTY
18177: LIST
18178: LIST
18179: PUSH
18180: EMPTY
18181: LIST
18182: ADD
18183: ST_TO_ADDR
18184: GO 18143
18186: POP
18187: POP
// McMove ( 1 , units , cesta , [ mc_move_agressive , mc_move_dontcapture ] ) ;
18188: LD_INT 1
18190: PPUSH
18191: LD_VAR 0 1
18195: PPUSH
18196: LD_VAR 0 4
18200: PPUSH
18201: LD_INT 6
18203: PUSH
18204: LD_INT 5
18206: PUSH
18207: EMPTY
18208: LIST
18209: LIST
18210: PPUSH
18211: CALL_OW 398
// enable ( 998 ) ;
18215: LD_INT 998
18217: ENABLE_MARKED
// end ;
18218: PPOPN 4
18220: END
// every 0 0$13 marked 998 do
18221: GO 18223
18223: DISABLE
// begin wait ( wait_mcmillanova_pomsta [ difficulty ] ) ;
18224: LD_EXP 49
18228: PUSH
18229: LD_OWVAR 67
18233: ARRAY
18234: PPUSH
18235: CALL_OW 67
// enable ( 999 ) ;
18239: LD_INT 999
18241: ENABLE_MARKED
// end ;
18242: END
// every 0 0$13 trigger Am_utoky = 4 do
18243: LD_EXP 71
18247: PUSH
18248: LD_INT 4
18250: EQUAL
18251: IFFALSE 18603
18253: GO 18255
18255: DISABLE
// begin wait ( cas_na_odchod_vedcu [ difficulty ] ) ;
18256: LD_EXP 47
18260: PUSH
18261: LD_OWVAR 67
18265: ARRAY
18266: PPUSH
18267: CALL_OW 67
// cekej_na_utok ;
18271: CALL 20762 0 0
// ComExitBuilding ( VEDCI1 ) ;
18275: LD_EXP 63
18279: PPUSH
18280: CALL_OW 122
// McMove ( 1 , VEDCI1 , [ [ 118 , 60 ] , [ 113 , 73 ] , [ 98 , 74 ] , [ 87 , 42 ] , [ 82 , 33 ] , [ 67 , 2 ] ] , [ ] ) ;
18284: LD_INT 1
18286: PPUSH
18287: LD_EXP 63
18291: PPUSH
18292: LD_INT 118
18294: PUSH
18295: LD_INT 60
18297: PUSH
18298: EMPTY
18299: LIST
18300: LIST
18301: PUSH
18302: LD_INT 113
18304: PUSH
18305: LD_INT 73
18307: PUSH
18308: EMPTY
18309: LIST
18310: LIST
18311: PUSH
18312: LD_INT 98
18314: PUSH
18315: LD_INT 74
18317: PUSH
18318: EMPTY
18319: LIST
18320: LIST
18321: PUSH
18322: LD_INT 87
18324: PUSH
18325: LD_INT 42
18327: PUSH
18328: EMPTY
18329: LIST
18330: LIST
18331: PUSH
18332: LD_INT 82
18334: PUSH
18335: LD_INT 33
18337: PUSH
18338: EMPTY
18339: LIST
18340: LIST
18341: PUSH
18342: LD_INT 67
18344: PUSH
18345: LD_INT 2
18347: PUSH
18348: EMPTY
18349: LIST
18350: LIST
18351: PUSH
18352: EMPTY
18353: LIST
18354: LIST
18355: LIST
18356: LIST
18357: LIST
18358: LIST
18359: PPUSH
18360: EMPTY
18361: PPUSH
18362: CALL_OW 398
// ComExitBuilding ( VEDCI2 ) ;
18366: LD_EXP 64
18370: PPUSH
18371: CALL_OW 122
// wait ( 0 0$30 ) ;
18375: LD_INT 1050
18377: PPUSH
18378: CALL_OW 67
// McMove ( 1 , VEDCI2 , [ [ 88 , 10 ] , [ 85 , 42 ] , [ 93 , 57 ] , [ 62 , 50 ] , [ 43 , 31 ] , [ 24 , 22 ] , [ 30 , 40 ] , [ 15 , 29 ] ] , [ ] ) ;
18382: LD_INT 1
18384: PPUSH
18385: LD_EXP 64
18389: PPUSH
18390: LD_INT 88
18392: PUSH
18393: LD_INT 10
18395: PUSH
18396: EMPTY
18397: LIST
18398: LIST
18399: PUSH
18400: LD_INT 85
18402: PUSH
18403: LD_INT 42
18405: PUSH
18406: EMPTY
18407: LIST
18408: LIST
18409: PUSH
18410: LD_INT 93
18412: PUSH
18413: LD_INT 57
18415: PUSH
18416: EMPTY
18417: LIST
18418: LIST
18419: PUSH
18420: LD_INT 62
18422: PUSH
18423: LD_INT 50
18425: PUSH
18426: EMPTY
18427: LIST
18428: LIST
18429: PUSH
18430: LD_INT 43
18432: PUSH
18433: LD_INT 31
18435: PUSH
18436: EMPTY
18437: LIST
18438: LIST
18439: PUSH
18440: LD_INT 24
18442: PUSH
18443: LD_INT 22
18445: PUSH
18446: EMPTY
18447: LIST
18448: LIST
18449: PUSH
18450: LD_INT 30
18452: PUSH
18453: LD_INT 40
18455: PUSH
18456: EMPTY
18457: LIST
18458: LIST
18459: PUSH
18460: LD_INT 15
18462: PUSH
18463: LD_INT 29
18465: PUSH
18466: EMPTY
18467: LIST
18468: LIST
18469: PUSH
18470: EMPTY
18471: LIST
18472: LIST
18473: LIST
18474: LIST
18475: LIST
18476: LIST
18477: LIST
18478: LIST
18479: PPUSH
18480: EMPTY
18481: PPUSH
18482: CALL_OW 398
// ComExitBuilding ( VEDCI3 ) ;
18486: LD_EXP 65
18490: PPUSH
18491: CALL_OW 122
// wait ( 0 0$30 ) ;
18495: LD_INT 1050
18497: PPUSH
18498: CALL_OW 67
// McMove ( 1 , VEDCI3 , [ [ 101 , 46 ] , [ 112 , 75 ] , [ 90 , 90 ] , [ 70 , 83 ] , [ 54 , 82 ] , [ 32 , 44 ] , [ 16 , 28 ] ] , [ ] ) ;
18502: LD_INT 1
18504: PPUSH
18505: LD_EXP 65
18509: PPUSH
18510: LD_INT 101
18512: PUSH
18513: LD_INT 46
18515: PUSH
18516: EMPTY
18517: LIST
18518: LIST
18519: PUSH
18520: LD_INT 112
18522: PUSH
18523: LD_INT 75
18525: PUSH
18526: EMPTY
18527: LIST
18528: LIST
18529: PUSH
18530: LD_INT 90
18532: PUSH
18533: LD_INT 90
18535: PUSH
18536: EMPTY
18537: LIST
18538: LIST
18539: PUSH
18540: LD_INT 70
18542: PUSH
18543: LD_INT 83
18545: PUSH
18546: EMPTY
18547: LIST
18548: LIST
18549: PUSH
18550: LD_INT 54
18552: PUSH
18553: LD_INT 82
18555: PUSH
18556: EMPTY
18557: LIST
18558: LIST
18559: PUSH
18560: LD_INT 32
18562: PUSH
18563: LD_INT 44
18565: PUSH
18566: EMPTY
18567: LIST
18568: LIST
18569: PUSH
18570: LD_INT 16
18572: PUSH
18573: LD_INT 28
18575: PUSH
18576: EMPTY
18577: LIST
18578: LIST
18579: PUSH
18580: EMPTY
18581: LIST
18582: LIST
18583: LIST
18584: LIST
18585: LIST
18586: LIST
18587: LIST
18588: PPUSH
18589: EMPTY
18590: PPUSH
18591: CALL_OW 398
// Am_utoky = 5 ;
18595: LD_ADDR_EXP 71
18599: PUSH
18600: LD_INT 5
18602: ST_TO_ADDR
// end ;
18603: END
// every 0 0$1 trigger Am_utoky = 5 do var pom , i ;
18604: LD_EXP 71
18608: PUSH
18609: LD_INT 5
18611: EQUAL
18612: IFFALSE 18794
18614: GO 18616
18616: DISABLE
18617: LD_INT 0
18619: PPUSH
18620: PPUSH
// begin pom = FilterUnitsInArea ( Sci_ex_2 , [ [ f_side , Amici ] , [ f_class , class_scientistic ] ] ) ;
18621: LD_ADDR_VAR 0 1
18625: PUSH
18626: LD_INT 21
18628: PPUSH
18629: LD_INT 22
18631: PUSH
18632: LD_EXP 2
18636: PUSH
18637: EMPTY
18638: LIST
18639: LIST
18640: PUSH
18641: LD_INT 25
18643: PUSH
18644: LD_INT 4
18646: PUSH
18647: EMPTY
18648: LIST
18649: LIST
18650: PUSH
18651: EMPTY
18652: LIST
18653: LIST
18654: PPUSH
18655: CALL_OW 70
18659: ST_TO_ADDR
// if pom > 0 then
18660: LD_VAR 0 1
18664: PUSH
18665: LD_INT 0
18667: GREATER
18668: IFFALSE 18707
// begin for i in pom do
18670: LD_ADDR_VAR 0 2
18674: PUSH
18675: LD_VAR 0 1
18679: PUSH
18680: FOR_IN
18681: IFFALSE 18694
// RemoveUnit ( i ) ;
18683: LD_VAR 0 2
18687: PPUSH
18688: CALL_OW 64
18692: GO 18680
18694: POP
18695: POP
// wait ( 0 0$2 ) ;
18696: LD_INT 70
18698: PPUSH
18699: CALL_OW 67
// prohra_vedci ;
18703: CALL 201 0 0
// end ; pom = FilterUnitsInArea ( Sci_ex_3 , [ [ f_side , Amici ] , [ f_class , class_scientistic ] ] ) ;
18707: LD_ADDR_VAR 0 1
18711: PUSH
18712: LD_INT 22
18714: PPUSH
18715: LD_INT 22
18717: PUSH
18718: LD_EXP 2
18722: PUSH
18723: EMPTY
18724: LIST
18725: LIST
18726: PUSH
18727: LD_INT 25
18729: PUSH
18730: LD_INT 4
18732: PUSH
18733: EMPTY
18734: LIST
18735: LIST
18736: PUSH
18737: EMPTY
18738: LIST
18739: LIST
18740: PPUSH
18741: CALL_OW 70
18745: ST_TO_ADDR
// if pom > 0 then
18746: LD_VAR 0 1
18750: PUSH
18751: LD_INT 0
18753: GREATER
18754: IFFALSE 18793
// begin for i in pom do
18756: LD_ADDR_VAR 0 2
18760: PUSH
18761: LD_VAR 0 1
18765: PUSH
18766: FOR_IN
18767: IFFALSE 18780
// RemoveUnit ( i ) ;
18769: LD_VAR 0 2
18773: PPUSH
18774: CALL_OW 64
18778: GO 18766
18780: POP
18781: POP
// wait ( 0 0$2 ) ;
18782: LD_INT 70
18784: PPUSH
18785: CALL_OW 67
// prohra_vedci ;
18789: CALL 201 0 0
// end ; enable ;
18793: ENABLE
// end ;
18794: PPOPN 2
18796: END
// function opravovani_budov ; var pom , pom1 , i ; begin
18797: LD_INT 0
18799: PPUSH
18800: PPUSH
18801: PPUSH
18802: PPUSH
// pom1 = [ ] ;
18803: LD_ADDR_VAR 0 3
18807: PUSH
18808: EMPTY
18809: ST_TO_ADDR
// pom = FilterUnitsInArea ( Am_base , [ [ f_side , Arabi ] , [ f_type , unit_building ] ] ) ;
18810: LD_ADDR_VAR 0 2
18814: PUSH
18815: LD_INT 13
18817: PPUSH
18818: LD_INT 22
18820: PUSH
18821: LD_EXP 4
18825: PUSH
18826: EMPTY
18827: LIST
18828: LIST
18829: PUSH
18830: LD_INT 21
18832: PUSH
18833: LD_INT 3
18835: PUSH
18836: EMPTY
18837: LIST
18838: LIST
18839: PUSH
18840: EMPTY
18841: LIST
18842: LIST
18843: PPUSH
18844: CALL_OW 70
18848: ST_TO_ADDR
// for i in pom do
18849: LD_ADDR_VAR 0 4
18853: PUSH
18854: LD_VAR 0 2
18858: PUSH
18859: FOR_IN
18860: IFFALSE 18895
// if GetLives ( i ) < 1000 then
18862: LD_VAR 0 4
18866: PPUSH
18867: CALL_OW 256
18871: PUSH
18872: LD_INT 1000
18874: LESS
18875: IFFALSE 18893
// pom1 = pom1 ^ i ;
18877: LD_ADDR_VAR 0 3
18881: PUSH
18882: LD_VAR 0 3
18886: PUSH
18887: LD_VAR 0 4
18891: ADD
18892: ST_TO_ADDR
18893: GO 18859
18895: POP
18896: POP
// if pom1 > 0 then
18897: LD_VAR 0 3
18901: PUSH
18902: LD_INT 0
18904: GREATER
18905: IFFALSE 19020
// begin if IsInUnit ( Am_opoce [ 1 ] ) or IsInUnit ( Am_opoce [ 2 ] ) or IsInUnit ( Am_opoce [ 3 ] ) then
18907: LD_EXP 66
18911: PUSH
18912: LD_INT 1
18914: ARRAY
18915: PPUSH
18916: CALL_OW 310
18920: PUSH
18921: LD_EXP 66
18925: PUSH
18926: LD_INT 2
18928: ARRAY
18929: PPUSH
18930: CALL_OW 310
18934: OR
18935: PUSH
18936: LD_EXP 66
18940: PUSH
18941: LD_INT 3
18943: ARRAY
18944: PPUSH
18945: CALL_OW 310
18949: OR
18950: IFFALSE 19020
// begin ComExitBuilding ( Am_opoce ) ;
18952: LD_EXP 66
18956: PPUSH
18957: CALL_OW 122
// for i in pom1 do
18961: LD_ADDR_VAR 0 4
18965: PUSH
18966: LD_VAR 0 3
18970: PUSH
18971: FOR_IN
18972: IFFALSE 18990
// AddComRepairBuilding ( Am_opoce , i ) ;
18974: LD_EXP 66
18978: PPUSH
18979: LD_VAR 0 4
18983: PPUSH
18984: CALL_OW 190
18988: GO 18971
18990: POP
18991: POP
// AddComEnterUnit ( Am_opoce , Am_dep ) ;
18992: LD_EXP 66
18996: PPUSH
18997: LD_INT 45
18999: PPUSH
19000: CALL_OW 180
// ComEnterUnit ( Am_opoce [ 4 ] , Am_dep ) ;
19004: LD_EXP 66
19008: PUSH
19009: LD_INT 4
19011: ARRAY
19012: PPUSH
19013: LD_INT 45
19015: PPUSH
19016: CALL_OW 120
// end ; end end ;
19020: LD_VAR 0 1
19024: RET
// every 0 0$10 trigger FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_type , unit_vehicle ] ] ) < max_pocet_aut [ difficulty ] do var design ;
19025: LD_INT 13
19027: PPUSH
19028: LD_INT 22
19030: PUSH
19031: LD_EXP 2
19035: PUSH
19036: EMPTY
19037: LIST
19038: LIST
19039: PUSH
19040: LD_INT 21
19042: PUSH
19043: LD_INT 2
19045: PUSH
19046: EMPTY
19047: LIST
19048: LIST
19049: PUSH
19050: EMPTY
19051: LIST
19052: LIST
19053: PPUSH
19054: CALL_OW 70
19058: PUSH
19059: LD_EXP 44
19063: PUSH
19064: LD_OWVAR 67
19068: ARRAY
19069: LESS
19070: IFFALSE 19157
19072: GO 19074
19074: DISABLE
19075: LD_INT 0
19077: PPUSH
// begin AddResourceType ( GetBase ( Am_dep ) , mat_cans , 50 ) ;
19078: LD_INT 45
19080: PPUSH
19081: CALL_OW 274
19085: PPUSH
19086: LD_INT 1
19088: PPUSH
19089: LD_INT 50
19091: PPUSH
19092: CALL_OW 276
// if BuildingStatus ( Am_tov ) <> 3 then
19096: LD_INT 175
19098: PPUSH
19099: CALL_OW 461
19103: PUSH
19104: LD_INT 3
19106: NONEQUAL
19107: IFFALSE 19156
// begin design = get_random_design ;
19109: LD_ADDR_VAR 0 1
19113: PUSH
19114: CALL 19160 0 0
19118: ST_TO_ADDR
// ComConstruct ( Am_tov , design [ 1 ] , design [ 2 ] , control_remote , design [ 3 ] ) ;
19119: LD_INT 175
19121: PPUSH
19122: LD_VAR 0 1
19126: PUSH
19127: LD_INT 1
19129: ARRAY
19130: PPUSH
19131: LD_VAR 0 1
19135: PUSH
19136: LD_INT 2
19138: ARRAY
19139: PPUSH
19140: LD_INT 2
19142: PPUSH
19143: LD_VAR 0 1
19147: PUSH
19148: LD_INT 3
19150: ARRAY
19151: PPUSH
19152: CALL_OW 125
// end ; enable ;
19156: ENABLE
// end ;
19157: PPOPN 1
19159: END
// function get_random_design ; var pom1 , pom2 , pom3 ; var aa , aa1 , aa2 , aa3 ; begin
19160: LD_INT 0
19162: PPUSH
19163: PPUSH
19164: PPUSH
19165: PPUSH
19166: PPUSH
19167: PPUSH
19168: PPUSH
19169: PPUSH
// pom1 = Rand ( 1 , 5 ) ;
19170: LD_ADDR_VAR 0 2
19174: PUSH
19175: LD_INT 1
19177: PPUSH
19178: LD_INT 5
19180: PPUSH
19181: CALL_OW 12
19185: ST_TO_ADDR
// case pom1 of 1 :
19186: LD_VAR 0 2
19190: PUSH
19191: LD_INT 1
19193: DOUBLE
19194: EQUAL
19195: IFTRUE 19199
19197: GO 19210
19199: POP
// aa3 = us_machine_gun ; 2 :
19200: LD_ADDR_VAR 0 8
19204: PUSH
19205: LD_INT 2
19207: ST_TO_ADDR
19208: GO 19287
19210: LD_INT 2
19212: DOUBLE
19213: EQUAL
19214: IFTRUE 19218
19216: GO 19229
19218: POP
// aa3 = us_light_gun ; 3 :
19219: LD_ADDR_VAR 0 8
19223: PUSH
19224: LD_INT 3
19226: ST_TO_ADDR
19227: GO 19287
19229: LD_INT 3
19231: DOUBLE
19232: EQUAL
19233: IFTRUE 19237
19235: GO 19248
19237: POP
// aa3 = us_gatling_gun ; 4 :
19238: LD_ADDR_VAR 0 8
19242: PUSH
19243: LD_INT 4
19245: ST_TO_ADDR
19246: GO 19287
19248: LD_INT 4
19250: DOUBLE
19251: EQUAL
19252: IFTRUE 19256
19254: GO 19267
19256: POP
// aa3 = us_double_gun ; 5 :
19257: LD_ADDR_VAR 0 8
19261: PUSH
19262: LD_INT 5
19264: ST_TO_ADDR
19265: GO 19287
19267: LD_INT 5
19269: DOUBLE
19270: EQUAL
19271: IFTRUE 19275
19273: GO 19286
19275: POP
// aa3 = us_heavy_gun ; end ;
19276: LD_ADDR_VAR 0 8
19280: PUSH
19281: LD_INT 6
19283: ST_TO_ADDR
19284: GO 19287
19286: POP
// if pom1 = 5 then
19287: LD_VAR 0 2
19291: PUSH
19292: LD_INT 5
19294: EQUAL
19295: IFFALSE 19307
// pom2 = 4 else
19297: LD_ADDR_VAR 0 3
19301: PUSH
19302: LD_INT 4
19304: ST_TO_ADDR
19305: GO 19358
// if pom1 in [ 3 , 4 ] then
19307: LD_VAR 0 2
19311: PUSH
19312: LD_INT 3
19314: PUSH
19315: LD_INT 4
19317: PUSH
19318: EMPTY
19319: LIST
19320: LIST
19321: IN
19322: IFFALSE 19342
// pom2 = Rand ( 2 , 4 ) else
19324: LD_ADDR_VAR 0 3
19328: PUSH
19329: LD_INT 2
19331: PPUSH
19332: LD_INT 4
19334: PPUSH
19335: CALL_OW 12
19339: ST_TO_ADDR
19340: GO 19358
// pom2 = Rand ( 1 , 4 ) ;
19342: LD_ADDR_VAR 0 3
19346: PUSH
19347: LD_INT 1
19349: PPUSH
19350: LD_INT 4
19352: PPUSH
19353: CALL_OW 12
19357: ST_TO_ADDR
// case pom2 of 1 :
19358: LD_VAR 0 3
19362: PUSH
19363: LD_INT 1
19365: DOUBLE
19366: EQUAL
19367: IFTRUE 19371
19369: GO 19382
19371: POP
// aa1 = us_light_wheeled ; 2 :
19372: LD_ADDR_VAR 0 6
19376: PUSH
19377: LD_INT 1
19379: ST_TO_ADDR
19380: GO 19440
19382: LD_INT 2
19384: DOUBLE
19385: EQUAL
19386: IFTRUE 19390
19388: GO 19401
19390: POP
// aa1 = us_medium_wheeled ; 3 :
19391: LD_ADDR_VAR 0 6
19395: PUSH
19396: LD_INT 2
19398: ST_TO_ADDR
19399: GO 19440
19401: LD_INT 3
19403: DOUBLE
19404: EQUAL
19405: IFTRUE 19409
19407: GO 19420
19409: POP
// aa1 = us_medium_tracked ; 4 :
19410: LD_ADDR_VAR 0 6
19414: PUSH
19415: LD_INT 3
19417: ST_TO_ADDR
19418: GO 19440
19420: LD_INT 4
19422: DOUBLE
19423: EQUAL
19424: IFTRUE 19428
19426: GO 19439
19428: POP
// aa1 = us_heavy_tracked ; end ;
19429: LD_ADDR_VAR 0 6
19433: PUSH
19434: LD_INT 4
19436: ST_TO_ADDR
19437: GO 19440
19439: POP
// if pom2 <> 4 then
19440: LD_VAR 0 3
19444: PUSH
19445: LD_INT 4
19447: NONEQUAL
19448: IFFALSE 19468
// pom3 = Rand ( 1 , 3 ) else
19450: LD_ADDR_VAR 0 4
19454: PUSH
19455: LD_INT 1
19457: PPUSH
19458: LD_INT 3
19460: PPUSH
19461: CALL_OW 12
19465: ST_TO_ADDR
19466: GO 19484
// pom3 = Rand ( 2 , 3 ) ;
19468: LD_ADDR_VAR 0 4
19472: PUSH
19473: LD_INT 2
19475: PPUSH
19476: LD_INT 3
19478: PPUSH
19479: CALL_OW 12
19483: ST_TO_ADDR
// case pom3 of 1 :
19484: LD_VAR 0 4
19488: PUSH
19489: LD_INT 1
19491: DOUBLE
19492: EQUAL
19493: IFTRUE 19497
19495: GO 19508
19497: POP
// aa2 = engine_solar ; 2 :
19498: LD_ADDR_VAR 0 7
19502: PUSH
19503: LD_INT 2
19505: ST_TO_ADDR
19506: GO 19547
19508: LD_INT 2
19510: DOUBLE
19511: EQUAL
19512: IFTRUE 19516
19514: GO 19527
19516: POP
// aa2 = engine_combustion ; 3 :
19517: LD_ADDR_VAR 0 7
19521: PUSH
19522: LD_INT 1
19524: ST_TO_ADDR
19525: GO 19547
19527: LD_INT 3
19529: DOUBLE
19530: EQUAL
19531: IFTRUE 19535
19533: GO 19546
19535: POP
// aa2 = engine_siberite ; end ;
19536: LD_ADDR_VAR 0 7
19540: PUSH
19541: LD_INT 3
19543: ST_TO_ADDR
19544: GO 19547
19546: POP
// aa = [ aa1 , aa2 , aa3 ] ;
19547: LD_ADDR_VAR 0 5
19551: PUSH
19552: LD_VAR 0 6
19556: PUSH
19557: LD_VAR 0 7
19561: PUSH
19562: LD_VAR 0 8
19566: PUSH
19567: EMPTY
19568: LIST
19569: LIST
19570: LIST
19571: ST_TO_ADDR
// result = aa ;
19572: LD_ADDR_VAR 0 1
19576: PUSH
19577: LD_VAR 0 5
19581: ST_TO_ADDR
// end ;
19582: LD_VAR 0 1
19586: RET
// every 0 0$5 trigger IsOK ( Am_snipe ) do var u , sl ;
19587: LD_EXP 70
19591: PPUSH
19592: CALL_OW 302
19596: IFFALSE 19721
19598: GO 19600
19600: DISABLE
19601: LD_INT 0
19603: PPUSH
19604: PPUSH
// begin sl = false ;
19605: LD_ADDR_VAR 0 2
19609: PUSH
19610: LD_INT 0
19612: ST_TO_ADDR
// if Attacks ( Am_snipe ) < 0 then
19613: LD_EXP 70
19617: PPUSH
19618: CALL_OW 320
19622: PUSH
19623: LD_INT 0
19625: LESS
19626: IFFALSE 19720
// begin u = Attacks ( Am_snipe ) ;
19628: LD_ADDR_VAR 0 1
19632: PUSH
19633: LD_EXP 70
19637: PPUSH
19638: CALL_OW 320
19642: ST_TO_ADDR
// if GetType ( u ) <> unit_vehicle then
19643: LD_VAR 0 1
19647: PPUSH
19648: CALL_OW 247
19652: PUSH
19653: LD_INT 2
19655: NONEQUAL
19656: IFFALSE 19668
// sl = true else
19658: LD_ADDR_VAR 0 2
19662: PUSH
19663: LD_INT 1
19665: ST_TO_ADDR
19666: GO 19691
// if GetControl ( u ) = control_manual then
19668: LD_VAR 0 1
19672: PPUSH
19673: CALL_OW 263
19677: PUSH
19678: LD_INT 1
19680: EQUAL
19681: IFFALSE 19691
// sl = true ;
19683: LD_ADDR_VAR 0 2
19687: PUSH
19688: LD_INT 1
19690: ST_TO_ADDR
// if sl then
19691: LD_VAR 0 2
19695: IFFALSE 19720
// if Prob ( 45 ) then
19697: LD_INT 45
19699: PPUSH
19700: CALL_OW 13
19704: IFFALSE 19720
// ComAttackSoporific ( Am_snipe , u ) ;
19706: LD_EXP 70
19710: PPUSH
19711: LD_VAR 0 1
19715: PPUSH
19716: CALL_OW 166
// end ; enable ;
19720: ENABLE
// end ;
19721: PPOPN 2
19723: END
// every 0 0$1 do
19724: GO 19726
19726: DISABLE
// begin wait ( cas_prvniho_utoku [ difficulty ] ) ;
19727: LD_EXP 46
19731: PUSH
19732: LD_OWVAR 67
19736: ARRAY
19737: PPUSH
19738: CALL_OW 67
// UTOCENI = true ;
19742: LD_ADDR_LOC 9
19746: PUSH
19747: LD_INT 1
19749: ST_TO_ADDR
// end ;
19750: END
// every 0 0$1 trigger UTOCENI do var pom , i ; var cesty ;
19751: LD_LOC 9
19755: IFFALSE 20502
19757: GO 19759
19759: DISABLE
19760: LD_INT 0
19762: PPUSH
19763: PPUSH
19764: PPUSH
// begin pom = create_pre_attack ;
19765: LD_ADDR_VAR 0 1
19769: PUSH
19770: CALL 10466 0 0
19774: ST_TO_ADDR
// for i in pom do
19775: LD_ADDR_VAR 0 2
19779: PUSH
19780: LD_VAR 0 1
19784: PUSH
19785: FOR_IN
19786: IFFALSE 19805
// PlaceUnitArea ( i , Am_enter , false ) ;
19788: LD_VAR 0 2
19792: PPUSH
19793: LD_INT 19
19795: PPUSH
19796: LD_INT 0
19798: PPUSH
19799: CALL_OW 49
19803: GO 19785
19805: POP
19806: POP
// case cislo_baze of 1 :
19807: LD_EXP 9
19811: PUSH
19812: LD_INT 1
19814: DOUBLE
19815: EQUAL
19816: IFTRUE 19820
19818: GO 20004
19820: POP
// cesty = [ [ [ 46 , 50 ] , [ 75 , 55 ] , [ 85 , 75 ] , [ 96 , 102 ] , [ 69 , 101 ] , [ 48 , 78 ] ] , [ [ 38 , 43 ] , [ 58 , 54 ] , [ 51 , 80 ] ] , [ [ 46 , 50 ] , [ 75 , 55 ] , [ 85 , 75 ] , [ 96 , 102 ] , [ 69 , 101 ] , [ 48 , 78 ] ] ] ; 2 :
19821: LD_ADDR_VAR 0 3
19825: PUSH
19826: LD_INT 46
19828: PUSH
19829: LD_INT 50
19831: PUSH
19832: EMPTY
19833: LIST
19834: LIST
19835: PUSH
19836: LD_INT 75
19838: PUSH
19839: LD_INT 55
19841: PUSH
19842: EMPTY
19843: LIST
19844: LIST
19845: PUSH
19846: LD_INT 85
19848: PUSH
19849: LD_INT 75
19851: PUSH
19852: EMPTY
19853: LIST
19854: LIST
19855: PUSH
19856: LD_INT 96
19858: PUSH
19859: LD_INT 102
19861: PUSH
19862: EMPTY
19863: LIST
19864: LIST
19865: PUSH
19866: LD_INT 69
19868: PUSH
19869: LD_INT 101
19871: PUSH
19872: EMPTY
19873: LIST
19874: LIST
19875: PUSH
19876: LD_INT 48
19878: PUSH
19879: LD_INT 78
19881: PUSH
19882: EMPTY
19883: LIST
19884: LIST
19885: PUSH
19886: EMPTY
19887: LIST
19888: LIST
19889: LIST
19890: LIST
19891: LIST
19892: LIST
19893: PUSH
19894: LD_INT 38
19896: PUSH
19897: LD_INT 43
19899: PUSH
19900: EMPTY
19901: LIST
19902: LIST
19903: PUSH
19904: LD_INT 58
19906: PUSH
19907: LD_INT 54
19909: PUSH
19910: EMPTY
19911: LIST
19912: LIST
19913: PUSH
19914: LD_INT 51
19916: PUSH
19917: LD_INT 80
19919: PUSH
19920: EMPTY
19921: LIST
19922: LIST
19923: PUSH
19924: EMPTY
19925: LIST
19926: LIST
19927: LIST
19928: PUSH
19929: LD_INT 46
19931: PUSH
19932: LD_INT 50
19934: PUSH
19935: EMPTY
19936: LIST
19937: LIST
19938: PUSH
19939: LD_INT 75
19941: PUSH
19942: LD_INT 55
19944: PUSH
19945: EMPTY
19946: LIST
19947: LIST
19948: PUSH
19949: LD_INT 85
19951: PUSH
19952: LD_INT 75
19954: PUSH
19955: EMPTY
19956: LIST
19957: LIST
19958: PUSH
19959: LD_INT 96
19961: PUSH
19962: LD_INT 102
19964: PUSH
19965: EMPTY
19966: LIST
19967: LIST
19968: PUSH
19969: LD_INT 69
19971: PUSH
19972: LD_INT 101
19974: PUSH
19975: EMPTY
19976: LIST
19977: LIST
19978: PUSH
19979: LD_INT 48
19981: PUSH
19982: LD_INT 78
19984: PUSH
19985: EMPTY
19986: LIST
19987: LIST
19988: PUSH
19989: EMPTY
19990: LIST
19991: LIST
19992: LIST
19993: LIST
19994: LIST
19995: LIST
19996: PUSH
19997: EMPTY
19998: LIST
19999: LIST
20000: LIST
20001: ST_TO_ADDR
20002: GO 20433
20004: LD_INT 2
20006: DOUBLE
20007: EQUAL
20008: IFTRUE 20012
20010: GO 20185
20012: POP
// cesty = [ [ [ 40 , 47 ] , [ 61 , 52 ] , [ 59 , 76 ] , [ 59 , 85 ] , [ 71 , 99 ] , [ 97 , 103 ] ] , [ [ 42 , 46 ] , [ 71 , 48 ] , [ 81 , 66 ] , [ 96 , 98 ] ] , [ [ 42 , 46 ] , [ 71 , 48 ] , [ 81 , 66 ] , [ 96 , 98 ] ] ] ; 3 :
20013: LD_ADDR_VAR 0 3
20017: PUSH
20018: LD_INT 40
20020: PUSH
20021: LD_INT 47
20023: PUSH
20024: EMPTY
20025: LIST
20026: LIST
20027: PUSH
20028: LD_INT 61
20030: PUSH
20031: LD_INT 52
20033: PUSH
20034: EMPTY
20035: LIST
20036: LIST
20037: PUSH
20038: LD_INT 59
20040: PUSH
20041: LD_INT 76
20043: PUSH
20044: EMPTY
20045: LIST
20046: LIST
20047: PUSH
20048: LD_INT 59
20050: PUSH
20051: LD_INT 85
20053: PUSH
20054: EMPTY
20055: LIST
20056: LIST
20057: PUSH
20058: LD_INT 71
20060: PUSH
20061: LD_INT 99
20063: PUSH
20064: EMPTY
20065: LIST
20066: LIST
20067: PUSH
20068: LD_INT 97
20070: PUSH
20071: LD_INT 103
20073: PUSH
20074: EMPTY
20075: LIST
20076: LIST
20077: PUSH
20078: EMPTY
20079: LIST
20080: LIST
20081: LIST
20082: LIST
20083: LIST
20084: LIST
20085: PUSH
20086: LD_INT 42
20088: PUSH
20089: LD_INT 46
20091: PUSH
20092: EMPTY
20093: LIST
20094: LIST
20095: PUSH
20096: LD_INT 71
20098: PUSH
20099: LD_INT 48
20101: PUSH
20102: EMPTY
20103: LIST
20104: LIST
20105: PUSH
20106: LD_INT 81
20108: PUSH
20109: LD_INT 66
20111: PUSH
20112: EMPTY
20113: LIST
20114: LIST
20115: PUSH
20116: LD_INT 96
20118: PUSH
20119: LD_INT 98
20121: PUSH
20122: EMPTY
20123: LIST
20124: LIST
20125: PUSH
20126: EMPTY
20127: LIST
20128: LIST
20129: LIST
20130: LIST
20131: PUSH
20132: LD_INT 42
20134: PUSH
20135: LD_INT 46
20137: PUSH
20138: EMPTY
20139: LIST
20140: LIST
20141: PUSH
20142: LD_INT 71
20144: PUSH
20145: LD_INT 48
20147: PUSH
20148: EMPTY
20149: LIST
20150: LIST
20151: PUSH
20152: LD_INT 81
20154: PUSH
20155: LD_INT 66
20157: PUSH
20158: EMPTY
20159: LIST
20160: LIST
20161: PUSH
20162: LD_INT 96
20164: PUSH
20165: LD_INT 98
20167: PUSH
20168: EMPTY
20169: LIST
20170: LIST
20171: PUSH
20172: EMPTY
20173: LIST
20174: LIST
20175: LIST
20176: LIST
20177: PUSH
20178: EMPTY
20179: LIST
20180: LIST
20181: LIST
20182: ST_TO_ADDR
20183: GO 20433
20185: LD_INT 3
20187: DOUBLE
20188: EQUAL
20189: IFTRUE 20193
20191: GO 20432
20193: POP
// cesty = [ [ [ 40 , 47 ] , [ 61 , 52 ] , [ 87 , 42 ] , [ 95 , 94 ] , [ 113 , 96 ] , [ 143 , 78 ] , [ 142 , 68 ] , [ 160 , 88 ] ] , [ [ 39 , 43 ] , [ 70 , 49 ] , [ 94 , 93 ] , [ 122 , 93 ] , [ 147 , 64 ] , [ 156 , 88 ] ] , [ [ 39 , 43 ] , [ 70 , 49 ] , [ 94 , 93 ] , [ 122 , 93 ] , [ 147 , 64 ] , [ 156 , 88 ] ] ] ; end ;
20194: LD_ADDR_VAR 0 3
20198: PUSH
20199: LD_INT 40
20201: PUSH
20202: LD_INT 47
20204: PUSH
20205: EMPTY
20206: LIST
20207: LIST
20208: PUSH
20209: LD_INT 61
20211: PUSH
20212: LD_INT 52
20214: PUSH
20215: EMPTY
20216: LIST
20217: LIST
20218: PUSH
20219: LD_INT 87
20221: PUSH
20222: LD_INT 42
20224: PUSH
20225: EMPTY
20226: LIST
20227: LIST
20228: PUSH
20229: LD_INT 95
20231: PUSH
20232: LD_INT 94
20234: PUSH
20235: EMPTY
20236: LIST
20237: LIST
20238: PUSH
20239: LD_INT 113
20241: PUSH
20242: LD_INT 96
20244: PUSH
20245: EMPTY
20246: LIST
20247: LIST
20248: PUSH
20249: LD_INT 143
20251: PUSH
20252: LD_INT 78
20254: PUSH
20255: EMPTY
20256: LIST
20257: LIST
20258: PUSH
20259: LD_INT 142
20261: PUSH
20262: LD_INT 68
20264: PUSH
20265: EMPTY
20266: LIST
20267: LIST
20268: PUSH
20269: LD_INT 160
20271: PUSH
20272: LD_INT 88
20274: PUSH
20275: EMPTY
20276: LIST
20277: LIST
20278: PUSH
20279: EMPTY
20280: LIST
20281: LIST
20282: LIST
20283: LIST
20284: LIST
20285: LIST
20286: LIST
20287: LIST
20288: PUSH
20289: LD_INT 39
20291: PUSH
20292: LD_INT 43
20294: PUSH
20295: EMPTY
20296: LIST
20297: LIST
20298: PUSH
20299: LD_INT 70
20301: PUSH
20302: LD_INT 49
20304: PUSH
20305: EMPTY
20306: LIST
20307: LIST
20308: PUSH
20309: LD_INT 94
20311: PUSH
20312: LD_INT 93
20314: PUSH
20315: EMPTY
20316: LIST
20317: LIST
20318: PUSH
20319: LD_INT 122
20321: PUSH
20322: LD_INT 93
20324: PUSH
20325: EMPTY
20326: LIST
20327: LIST
20328: PUSH
20329: LD_INT 147
20331: PUSH
20332: LD_INT 64
20334: PUSH
20335: EMPTY
20336: LIST
20337: LIST
20338: PUSH
20339: LD_INT 156
20341: PUSH
20342: LD_INT 88
20344: PUSH
20345: EMPTY
20346: LIST
20347: LIST
20348: PUSH
20349: EMPTY
20350: LIST
20351: LIST
20352: LIST
20353: LIST
20354: LIST
20355: LIST
20356: PUSH
20357: LD_INT 39
20359: PUSH
20360: LD_INT 43
20362: PUSH
20363: EMPTY
20364: LIST
20365: LIST
20366: PUSH
20367: LD_INT 70
20369: PUSH
20370: LD_INT 49
20372: PUSH
20373: EMPTY
20374: LIST
20375: LIST
20376: PUSH
20377: LD_INT 94
20379: PUSH
20380: LD_INT 93
20382: PUSH
20383: EMPTY
20384: LIST
20385: LIST
20386: PUSH
20387: LD_INT 122
20389: PUSH
20390: LD_INT 93
20392: PUSH
20393: EMPTY
20394: LIST
20395: LIST
20396: PUSH
20397: LD_INT 147
20399: PUSH
20400: LD_INT 64
20402: PUSH
20403: EMPTY
20404: LIST
20405: LIST
20406: PUSH
20407: LD_INT 156
20409: PUSH
20410: LD_INT 88
20412: PUSH
20413: EMPTY
20414: LIST
20415: LIST
20416: PUSH
20417: EMPTY
20418: LIST
20419: LIST
20420: LIST
20421: LIST
20422: LIST
20423: LIST
20424: PUSH
20425: EMPTY
20426: LIST
20427: LIST
20428: LIST
20429: ST_TO_ADDR
20430: GO 20433
20432: POP
// McMove ( 1 , pom , cesty [ Rand ( 1 , 3 ) ] , [ mc_move_dontcapture , mc_move_agressive , mc_move_waitwp ] ) ;
20433: LD_INT 1
20435: PPUSH
20436: LD_VAR 0 1
20440: PPUSH
20441: LD_VAR 0 3
20445: PUSH
20446: LD_INT 1
20448: PPUSH
20449: LD_INT 3
20451: PPUSH
20452: CALL_OW 12
20456: ARRAY
20457: PPUSH
20458: LD_INT 5
20460: PUSH
20461: LD_INT 6
20463: PUSH
20464: LD_INT 3
20466: PUSH
20467: EMPTY
20468: LIST
20469: LIST
20470: LIST
20471: PPUSH
20472: CALL_OW 398
// wait ( cas_na_opakovani_preattacku [ difficulty ] ) ;
20476: LD_EXP 52
20480: PUSH
20481: LD_OWVAR 67
20485: ARRAY
20486: PPUSH
20487: CALL_OW 67
// if Am_utoky = 0 then
20491: LD_EXP 71
20495: PUSH
20496: LD_INT 0
20498: EQUAL
20499: IFFALSE 20502
// enable ;
20501: ENABLE
// end ;
20502: PPOPN 3
20504: END
// on VehicleConstructed ( veh , f ) do var pom ;
20505: LD_INT 0
20507: PPUSH
// begin if f = Am_tov then
20508: LD_VAR 0 2
20512: PUSH
20513: LD_INT 175
20515: EQUAL
20516: IFFALSE 20758
// begin pom = Rand ( 1 , 2 ) ;
20518: LD_ADDR_VAR 0 3
20522: PUSH
20523: LD_INT 1
20525: PPUSH
20526: LD_INT 2
20528: PPUSH
20529: CALL_OW 12
20533: ST_TO_ADDR
// case pom of 1 :
20534: LD_VAR 0 3
20538: PUSH
20539: LD_INT 1
20541: DOUBLE
20542: EQUAL
20543: IFTRUE 20547
20545: GO 20648
20547: POP
// if IsOK ( Am_mech [ 1 ] ) then
20548: LD_EXP 68
20552: PUSH
20553: LD_INT 1
20555: ARRAY
20556: PPUSH
20557: CALL_OW 302
20561: IFFALSE 20598
// begin ComLinkTo ( veh , Am_mech [ 1 ] ) ;
20563: LD_VAR 0 1
20567: PPUSH
20568: LD_EXP 68
20572: PUSH
20573: LD_INT 1
20575: ARRAY
20576: PPUSH
20577: CALL_OW 135
// AddComMoveXY ( veh , 89 , 22 ) ;
20581: LD_VAR 0 1
20585: PPUSH
20586: LD_INT 89
20588: PPUSH
20589: LD_INT 22
20591: PPUSH
20592: CALL_OW 171
// end else
20596: GO 20646
// if IsOK ( Am_mech [ 2 ] ) then
20598: LD_EXP 68
20602: PUSH
20603: LD_INT 2
20605: ARRAY
20606: PPUSH
20607: CALL_OW 302
20611: IFFALSE 20646
// begin ComLinkTo ( veh , Am_mech [ 2 ] ) ;
20613: LD_VAR 0 1
20617: PPUSH
20618: LD_EXP 68
20622: PUSH
20623: LD_INT 2
20625: ARRAY
20626: PPUSH
20627: CALL_OW 135
// AddComMoveXY ( veh , 119 , 40 ) ;
20631: LD_VAR 0 1
20635: PPUSH
20636: LD_INT 119
20638: PPUSH
20639: LD_INT 40
20641: PPUSH
20642: CALL_OW 171
// end ; 2 :
20646: GO 20758
20648: LD_INT 2
20650: DOUBLE
20651: EQUAL
20652: IFTRUE 20656
20654: GO 20757
20656: POP
// if IsOK ( Am_mech [ 2 ] ) then
20657: LD_EXP 68
20661: PUSH
20662: LD_INT 2
20664: ARRAY
20665: PPUSH
20666: CALL_OW 302
20670: IFFALSE 20707
// begin ComLinkTo ( veh , Am_mech [ 2 ] ) ;
20672: LD_VAR 0 1
20676: PPUSH
20677: LD_EXP 68
20681: PUSH
20682: LD_INT 2
20684: ARRAY
20685: PPUSH
20686: CALL_OW 135
// AddComMoveXY ( veh , 119 , 40 ) ;
20690: LD_VAR 0 1
20694: PPUSH
20695: LD_INT 119
20697: PPUSH
20698: LD_INT 40
20700: PPUSH
20701: CALL_OW 171
// end else
20705: GO 20755
// if IsOK ( Am_mech [ 1 ] ) then
20707: LD_EXP 68
20711: PUSH
20712: LD_INT 1
20714: ARRAY
20715: PPUSH
20716: CALL_OW 302
20720: IFFALSE 20755
// begin ComLinkTo ( veh , Am_mech [ 1 ] ) ;
20722: LD_VAR 0 1
20726: PPUSH
20727: LD_EXP 68
20731: PUSH
20732: LD_INT 1
20734: ARRAY
20735: PPUSH
20736: CALL_OW 135
// AddComMoveXY ( veh , 89 , 22 ) ;
20740: LD_VAR 0 1
20744: PPUSH
20745: LD_INT 89
20747: PPUSH
20748: LD_INT 22
20750: PPUSH
20751: CALL_OW 171
// end ; end ;
20755: GO 20758
20757: POP
// end ; enable ;
20758: ENABLE
// end ;
20759: PPOPN 3
20761: END
// function cekej_na_utok ; var utoci ; var i , pom ; var aunits ; begin
20762: LD_INT 0
20764: PPUSH
20765: PPUSH
20766: PPUSH
20767: PPUSH
20768: PPUSH
// utoci = false ;
20769: LD_ADDR_VAR 0 2
20773: PUSH
20774: LD_INT 0
20776: ST_TO_ADDR
// aunits = FilterUnitsInArea ( Am_base_at , [ [ f_side , Amici ] ] ) ;
20777: LD_ADDR_VAR 0 5
20781: PUSH
20782: LD_INT 25
20784: PPUSH
20785: LD_INT 22
20787: PUSH
20788: LD_EXP 2
20792: PUSH
20793: EMPTY
20794: LIST
20795: LIST
20796: PUSH
20797: EMPTY
20798: LIST
20799: PPUSH
20800: CALL_OW 70
20804: ST_TO_ADDR
// while not utoci do
20805: LD_VAR 0 2
20809: NOT
20810: IFFALSE 20903
// begin pom = FilterAllUnits ( [ [ f_side , You ] ] ) ;
20812: LD_ADDR_VAR 0 4
20816: PUSH
20817: LD_INT 22
20819: PUSH
20820: LD_EXP 1
20824: PUSH
20825: EMPTY
20826: LIST
20827: LIST
20828: PUSH
20829: EMPTY
20830: LIST
20831: PPUSH
20832: CALL_OW 69
20836: ST_TO_ADDR
// for i in pom do
20837: LD_ADDR_VAR 0 3
20841: PUSH
20842: LD_VAR 0 4
20846: PUSH
20847: FOR_IN
20848: IFFALSE 20892
// if Attacks ( i ) <> 0 then
20850: LD_VAR 0 3
20854: PPUSH
20855: CALL_OW 320
20859: PUSH
20860: LD_INT 0
20862: NONEQUAL
20863: IFFALSE 20890
// if Attacks ( i ) in aunits then
20865: LD_VAR 0 3
20869: PPUSH
20870: CALL_OW 320
20874: PUSH
20875: LD_VAR 0 5
20879: IN
20880: IFFALSE 20890
// utoci = true ;
20882: LD_ADDR_VAR 0 2
20886: PUSH
20887: LD_INT 1
20889: ST_TO_ADDR
20890: GO 20847
20892: POP
20893: POP
// wait ( 0 0$10 ) ;
20894: LD_INT 350
20896: PPUSH
20897: CALL_OW 67
// end ;
20901: GO 20805
// wait ( doba_od_utoku_k_uteku_vedcu [ difficulty ] ) ;
20903: LD_EXP 48
20907: PUSH
20908: LD_OWVAR 67
20912: ARRAY
20913: PPUSH
20914: CALL_OW 67
// end ;
20918: LD_VAR 0 1
20922: RET
// export function test_na_vedce ; var i ; var OK ; begin
20923: LD_INT 0
20925: PPUSH
20926: PPUSH
20927: PPUSH
// OK = true ;
20928: LD_ADDR_VAR 0 3
20932: PUSH
20933: LD_INT 1
20935: ST_TO_ADDR
// for i in VEDCI1 do
20936: LD_ADDR_VAR 0 2
20940: PUSH
20941: LD_EXP 63
20945: PUSH
20946: FOR_IN
20947: IFFALSE 20970
// if IsLive ( i ) then
20949: LD_VAR 0 2
20953: PPUSH
20954: CALL_OW 300
20958: IFFALSE 20968
// OK = false ;
20960: LD_ADDR_VAR 0 3
20964: PUSH
20965: LD_INT 0
20967: ST_TO_ADDR
20968: GO 20946
20970: POP
20971: POP
// for i in VEDCI2 do
20972: LD_ADDR_VAR 0 2
20976: PUSH
20977: LD_EXP 64
20981: PUSH
20982: FOR_IN
20983: IFFALSE 21006
// if IsLive ( i ) then
20985: LD_VAR 0 2
20989: PPUSH
20990: CALL_OW 300
20994: IFFALSE 21004
// OK = false ;
20996: LD_ADDR_VAR 0 3
21000: PUSH
21001: LD_INT 0
21003: ST_TO_ADDR
21004: GO 20982
21006: POP
21007: POP
// for i in VEDCI3 do
21008: LD_ADDR_VAR 0 2
21012: PUSH
21013: LD_EXP 65
21017: PUSH
21018: FOR_IN
21019: IFFALSE 21042
// if IsLive ( i ) then
21021: LD_VAR 0 2
21025: PPUSH
21026: CALL_OW 300
21030: IFFALSE 21040
// OK = false ;
21032: LD_ADDR_VAR 0 3
21036: PUSH
21037: LD_INT 0
21039: ST_TO_ADDR
21040: GO 21018
21042: POP
21043: POP
// result := OK ;
21044: LD_ADDR_VAR 0 1
21048: PUSH
21049: LD_VAR 0 3
21053: ST_TO_ADDR
// end ; end_of_file
21054: LD_VAR 0 1
21058: RET
// every 0 0$2 + 0 0$0.1 do
21059: GO 21061
21061: DISABLE
// begin if FilterAllUnits ( [ [ f_side , 3 ] , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_soldier ] , [ f_class , class_apeman_kamikaze ] ] ] ) > FilterAllUnits ( [ [ f_side , 3 ] , [ 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
21062: LD_INT 22
21064: PUSH
21065: LD_INT 3
21067: PUSH
21068: EMPTY
21069: LIST
21070: LIST
21071: PUSH
21072: LD_INT 2
21074: PUSH
21075: LD_INT 25
21077: PUSH
21078: LD_INT 12
21080: PUSH
21081: EMPTY
21082: LIST
21083: LIST
21084: PUSH
21085: LD_INT 25
21087: PUSH
21088: LD_INT 16
21090: PUSH
21091: EMPTY
21092: LIST
21093: LIST
21094: PUSH
21095: LD_INT 25
21097: PUSH
21098: LD_INT 15
21100: PUSH
21101: EMPTY
21102: LIST
21103: LIST
21104: PUSH
21105: LD_INT 25
21107: PUSH
21108: LD_INT 17
21110: PUSH
21111: EMPTY
21112: LIST
21113: LIST
21114: PUSH
21115: EMPTY
21116: LIST
21117: LIST
21118: LIST
21119: LIST
21120: LIST
21121: PUSH
21122: EMPTY
21123: LIST
21124: LIST
21125: PPUSH
21126: CALL_OW 69
21130: PUSH
21131: LD_INT 22
21133: PUSH
21134: LD_INT 3
21136: PUSH
21137: EMPTY
21138: LIST
21139: LIST
21140: PUSH
21141: LD_INT 21
21143: PUSH
21144: LD_INT 1
21146: PUSH
21147: EMPTY
21148: LIST
21149: LIST
21150: PUSH
21151: LD_INT 3
21153: PUSH
21154: LD_INT 2
21156: PUSH
21157: LD_INT 25
21159: PUSH
21160: LD_INT 12
21162: PUSH
21163: EMPTY
21164: LIST
21165: LIST
21166: PUSH
21167: LD_INT 25
21169: PUSH
21170: LD_INT 16
21172: PUSH
21173: EMPTY
21174: LIST
21175: LIST
21176: PUSH
21177: LD_INT 25
21179: PUSH
21180: LD_INT 15
21182: PUSH
21183: EMPTY
21184: LIST
21185: LIST
21186: PUSH
21187: LD_INT 25
21189: PUSH
21190: LD_INT 17
21192: PUSH
21193: EMPTY
21194: LIST
21195: LIST
21196: PUSH
21197: EMPTY
21198: LIST
21199: LIST
21200: LIST
21201: LIST
21202: LIST
21203: PUSH
21204: EMPTY
21205: LIST
21206: LIST
21207: PUSH
21208: EMPTY
21209: LIST
21210: LIST
21211: LIST
21212: PPUSH
21213: CALL_OW 69
21217: GREATER
21218: IFFALSE 21229
// begin SetAchievement ( ACH_POTA ) ;
21220: LD_STRING ACH_POTA
21222: PPUSH
21223: CALL_OW 543
// exit ;
21227: GO 21230
// end ; enable ;
21229: ENABLE
// end ;
21230: END
// export function SA_NoThanksGensher ; begin
21231: LD_INT 0
21233: PPUSH
// SetAchievement ( ACH_NOT ) ;
21234: LD_STRING ACH_NOT
21236: PPUSH
21237: CALL_OW 543
// end ;
21241: LD_VAR 0 1
21245: RET
// export function SA_MeatGrinder ( n ) ; begin
21246: LD_INT 0
21248: PPUSH
// SetAchievementEx ( ACH_MTG , n ) ;
21249: LD_STRING ACH_MTG
21251: PPUSH
21252: LD_VAR 0 1
21256: PPUSH
21257: CALL_OW 564
// end ; end_of_file
21261: LD_VAR 0 2
21265: RET
// export function SA_EndMission ( campaignNumber , missionNumber , medal1 , medal2 , medal3 ) ; var achiv ; begin
21266: LD_INT 0
21268: PPUSH
21269: PPUSH
// if not missionNumber then
21270: LD_VAR 0 2
21274: NOT
21275: IFFALSE 21279
// exit ;
21277: GO 21409
// achiv := false ;
21279: LD_ADDR_VAR 0 7
21283: PUSH
21284: LD_INT 0
21286: ST_TO_ADDR
// case campaignNumber of 1 :
21287: LD_VAR 0 1
21291: PUSH
21292: LD_INT 1
21294: DOUBLE
21295: EQUAL
21296: IFTRUE 21300
21298: GO 21311
21300: POP
// achiv := ACH_GOTA ; 2 :
21301: LD_ADDR_VAR 0 7
21305: PUSH
21306: LD_STRING ACH_GOTA
21308: ST_TO_ADDR
21309: GO 21361
21311: LD_INT 2
21313: DOUBLE
21314: EQUAL
21315: IFTRUE 21319
21317: GO 21322
21319: POP
// ; 3 :
21320: GO 21361
21322: LD_INT 3
21324: DOUBLE
21325: EQUAL
21326: IFTRUE 21330
21328: GO 21341
21330: POP
// achiv := ACH_MOTSU ; 4 :
21331: LD_ADDR_VAR 0 7
21335: PUSH
21336: LD_STRING ACH_MOTSU
21338: ST_TO_ADDR
21339: GO 21361
21341: LD_INT 4
21343: DOUBLE
21344: EQUAL
21345: IFTRUE 21349
21347: GO 21360
21349: POP
// achiv := ACH_LOP ; end ;
21350: LD_ADDR_VAR 0 7
21354: PUSH
21355: LD_STRING ACH_LOP
21357: ST_TO_ADDR
21358: GO 21361
21360: POP
// if Difficulty = 3 and achiv and medal1 and medal2 and medal3 then
21361: LD_OWVAR 67
21365: PUSH
21366: LD_INT 3
21368: EQUAL
21369: PUSH
21370: LD_VAR 0 7
21374: AND
21375: PUSH
21376: LD_VAR 0 3
21380: AND
21381: PUSH
21382: LD_VAR 0 4
21386: AND
21387: PUSH
21388: LD_VAR 0 5
21392: AND
21393: IFFALSE 21409
// SetAchievementEX ( achiv , missionNumber ) ;
21395: LD_VAR 0 7
21399: PPUSH
21400: LD_VAR 0 2
21404: PPUSH
21405: CALL_OW 564
// end ;
21409: LD_VAR 0 6
21413: RET
// export function SA_BehemothConstructed ; begin
21414: LD_INT 0
21416: PPUSH
// SetAchievement ( ACH_SMC ) ;
21417: LD_STRING ACH_SMC
21419: PPUSH
21420: CALL_OW 543
// end ;
21424: LD_VAR 0 1
21428: RET
// on CustomCommand ( p1 , p2 , p3 , p4 , p5 , p6 ) do begin case p2 of 1 :
21429: LD_VAR 0 2
21433: PUSH
21434: LD_INT 1
21436: DOUBLE
21437: EQUAL
21438: IFTRUE 21442
21440: GO 21449
21442: POP
// HackUnlimitedResources ; 2 :
21443: CALL 21633 0 0
21447: GO 21630
21449: LD_INT 2
21451: DOUBLE
21452: EQUAL
21453: IFTRUE 21457
21455: GO 21464
21457: POP
// HackSetLevel10 ; 3 :
21458: CALL 21766 0 0
21462: GO 21630
21464: LD_INT 3
21466: DOUBLE
21467: EQUAL
21468: IFTRUE 21472
21470: GO 21479
21472: POP
// HackSetLevel10YourUnits ; 4 :
21473: CALL 21851 0 0
21477: GO 21630
21479: LD_INT 4
21481: DOUBLE
21482: EQUAL
21483: IFTRUE 21487
21485: GO 21509
21487: POP
// HackSpawnHuman ( p3 , p4 , p5 ) ; 5 :
21488: LD_VAR 0 3
21492: PPUSH
21493: LD_VAR 0 4
21497: PPUSH
21498: LD_VAR 0 5
21502: PPUSH
21503: CALL 21941 0 3
21507: GO 21630
21509: LD_INT 5
21511: DOUBLE
21512: EQUAL
21513: IFTRUE 21517
21515: GO 21524
21517: POP
// HackSpawnVehicle ; 6 :
21518: CALL 22002 0 0
21522: GO 21630
21524: LD_INT 6
21526: DOUBLE
21527: EQUAL
21528: IFTRUE 21532
21530: GO 21539
21532: POP
// HackInvincible ; 7 :
21533: CALL 22548 0 0
21537: GO 21630
21539: LD_INT 7
21541: DOUBLE
21542: EQUAL
21543: IFTRUE 21547
21545: GO 21554
21547: POP
// HackInvisible ; 8 :
21548: CALL 22659 0 0
21552: GO 21630
21554: LD_INT 8
21556: DOUBLE
21557: EQUAL
21558: IFTRUE 21562
21560: GO 21569
21562: POP
// HackChangeYourSide ; 9 :
21563: CALL 22716 0 0
21567: GO 21630
21569: LD_INT 9
21571: DOUBLE
21572: EQUAL
21573: IFTRUE 21577
21575: GO 21584
21577: POP
// HackChangeUnitSide ; 10 :
21578: CALL 22758 0 0
21582: GO 21630
21584: LD_INT 10
21586: DOUBLE
21587: EQUAL
21588: IFTRUE 21592
21590: GO 21599
21592: POP
// HackFog ; 11 :
21593: CALL 22859 0 0
21597: GO 21630
21599: LD_INT 11
21601: DOUBLE
21602: EQUAL
21603: IFTRUE 21607
21605: GO 21614
21607: POP
// HackApeman ; 12 :
21608: CALL 22874 0 0
21612: GO 21630
21614: LD_INT 12
21616: DOUBLE
21617: EQUAL
21618: IFTRUE 21622
21620: GO 21629
21622: POP
// HackBoom ; end ;
21623: CALL 22959 0 0
21627: GO 21630
21629: POP
// end ;
21630: PPOPN 6
21632: END
// export function HackUnlimitedResources ; var i , j , tmp ; begin
21633: LD_INT 0
21635: PPUSH
21636: PPUSH
21637: PPUSH
21638: PPUSH
// tmp := FilterAllUnits ( [ [ f_side , your_side ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
21639: LD_ADDR_VAR 0 4
21643: PUSH
21644: LD_INT 22
21646: PUSH
21647: LD_OWVAR 2
21651: PUSH
21652: EMPTY
21653: LIST
21654: LIST
21655: PUSH
21656: LD_INT 2
21658: PUSH
21659: LD_INT 30
21661: PUSH
21662: LD_INT 0
21664: PUSH
21665: EMPTY
21666: LIST
21667: LIST
21668: PUSH
21669: LD_INT 30
21671: PUSH
21672: LD_INT 1
21674: PUSH
21675: EMPTY
21676: LIST
21677: LIST
21678: PUSH
21679: EMPTY
21680: LIST
21681: LIST
21682: LIST
21683: PUSH
21684: EMPTY
21685: LIST
21686: LIST
21687: PPUSH
21688: CALL_OW 69
21692: ST_TO_ADDR
// if not tmp then
21693: LD_VAR 0 4
21697: NOT
21698: IFFALSE 21702
// exit ;
21700: GO 21761
// for i in tmp do
21702: LD_ADDR_VAR 0 2
21706: PUSH
21707: LD_VAR 0 4
21711: PUSH
21712: FOR_IN
21713: IFFALSE 21759
// for j = 1 to 3 do
21715: LD_ADDR_VAR 0 3
21719: PUSH
21720: DOUBLE
21721: LD_INT 1
21723: DEC
21724: ST_TO_ADDR
21725: LD_INT 3
21727: PUSH
21728: FOR_TO
21729: IFFALSE 21755
// SetResourceType ( GetBase ( i ) , j , 99999 ) ;
21731: LD_VAR 0 2
21735: PPUSH
21736: CALL_OW 274
21740: PPUSH
21741: LD_VAR 0 3
21745: PPUSH
21746: LD_INT 99999
21748: PPUSH
21749: CALL_OW 277
21753: GO 21728
21755: POP
21756: POP
21757: GO 21712
21759: POP
21760: POP
// end ;
21761: LD_VAR 0 1
21765: RET
// export function HackSetLevel10 ; var i , j ; begin
21766: LD_INT 0
21768: PPUSH
21769: PPUSH
21770: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
21771: LD_ADDR_VAR 0 2
21775: PUSH
21776: LD_INT 21
21778: PUSH
21779: LD_INT 1
21781: PUSH
21782: EMPTY
21783: LIST
21784: LIST
21785: PPUSH
21786: CALL_OW 69
21790: PUSH
21791: FOR_IN
21792: IFFALSE 21844
// if IsSelected ( i ) then
21794: LD_VAR 0 2
21798: PPUSH
21799: CALL_OW 306
21803: IFFALSE 21842
// begin for j := 1 to 4 do
21805: LD_ADDR_VAR 0 3
21809: PUSH
21810: DOUBLE
21811: LD_INT 1
21813: DEC
21814: ST_TO_ADDR
21815: LD_INT 4
21817: PUSH
21818: FOR_TO
21819: IFFALSE 21840
// SetSkill ( i , j , 10 ) ;
21821: LD_VAR 0 2
21825: PPUSH
21826: LD_VAR 0 3
21830: PPUSH
21831: LD_INT 10
21833: PPUSH
21834: CALL_OW 237
21838: GO 21818
21840: POP
21841: POP
// end ;
21842: GO 21791
21844: POP
21845: POP
// end ;
21846: LD_VAR 0 1
21850: RET
// export function HackSetLevel10YourUnits ; var i , j ; begin
21851: LD_INT 0
21853: PPUSH
21854: PPUSH
21855: PPUSH
// for i in FilterAllUnits ( [ [ f_side , your_side ] , [ f_type , unit_human ] ] ) do
21856: LD_ADDR_VAR 0 2
21860: PUSH
21861: LD_INT 22
21863: PUSH
21864: LD_OWVAR 2
21868: PUSH
21869: EMPTY
21870: LIST
21871: LIST
21872: PUSH
21873: LD_INT 21
21875: PUSH
21876: LD_INT 1
21878: PUSH
21879: EMPTY
21880: LIST
21881: LIST
21882: PUSH
21883: EMPTY
21884: LIST
21885: LIST
21886: PPUSH
21887: CALL_OW 69
21891: PUSH
21892: FOR_IN
21893: IFFALSE 21934
// begin for j := 1 to 4 do
21895: LD_ADDR_VAR 0 3
21899: PUSH
21900: DOUBLE
21901: LD_INT 1
21903: DEC
21904: ST_TO_ADDR
21905: LD_INT 4
21907: PUSH
21908: FOR_TO
21909: IFFALSE 21930
// SetSkill ( i , j , 10 ) ;
21911: LD_VAR 0 2
21915: PPUSH
21916: LD_VAR 0 3
21920: PPUSH
21921: LD_INT 10
21923: PPUSH
21924: CALL_OW 237
21928: GO 21908
21930: POP
21931: POP
// end ;
21932: GO 21892
21934: POP
21935: POP
// end ;
21936: LD_VAR 0 1
21940: RET
// export function HackSpawnHuman ( nation , class , skill ) ; begin
21941: LD_INT 0
21943: PPUSH
// uc_side := your_side ;
21944: LD_ADDR_OWVAR 20
21948: PUSH
21949: LD_OWVAR 2
21953: ST_TO_ADDR
// uc_nation := nation ;
21954: LD_ADDR_OWVAR 21
21958: PUSH
21959: LD_VAR 0 1
21963: ST_TO_ADDR
// InitHc ;
21964: CALL_OW 19
// PrepareHuman ( false , class , skill ) ;
21968: LD_INT 0
21970: PPUSH
21971: LD_VAR 0 2
21975: PPUSH
21976: LD_VAR 0 3
21980: PPUSH
21981: CALL_OW 380
// PlaceUnitAnywhere ( CreateHuman , true ) ;
21985: CALL_OW 44
21989: PPUSH
21990: LD_INT 1
21992: PPUSH
21993: CALL_OW 51
// end ;
21997: LD_VAR 0 4
22001: RET
// export function HackSpawnVehicle ; begin
22002: LD_INT 0
22004: PPUSH
// uc_side := your_side ;
22005: LD_ADDR_OWVAR 20
22009: PUSH
22010: LD_OWVAR 2
22014: ST_TO_ADDR
// uc_nation := rand ( 1 , 3 ) ;
22015: LD_ADDR_OWVAR 21
22019: PUSH
22020: LD_INT 1
22022: PPUSH
22023: LD_INT 3
22025: PPUSH
22026: CALL_OW 12
22030: ST_TO_ADDR
// InitVc ;
22031: CALL_OW 20
// case uc_nation of 1 :
22035: LD_OWVAR 21
22039: PUSH
22040: LD_INT 1
22042: DOUBLE
22043: EQUAL
22044: IFTRUE 22048
22046: GO 22192
22048: POP
// begin vc_chassis := [ us_light_wheeled , us_medium_wheeled , us_medium_tracked , us_heavy_tracked , us_morphling ] [ rand ( 1 , 5 ) ] ;
22049: LD_ADDR_OWVAR 37
22053: PUSH
22054: LD_INT 1
22056: PUSH
22057: LD_INT 2
22059: PUSH
22060: LD_INT 3
22062: PUSH
22063: LD_INT 4
22065: PUSH
22066: LD_INT 5
22068: PUSH
22069: EMPTY
22070: LIST
22071: LIST
22072: LIST
22073: LIST
22074: LIST
22075: PUSH
22076: LD_INT 1
22078: PPUSH
22079: LD_INT 5
22081: PPUSH
22082: CALL_OW 12
22086: ARRAY
22087: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
22088: LD_ADDR_OWVAR 39
22092: PUSH
22093: LD_INT 1
22095: PPUSH
22096: LD_INT 3
22098: PPUSH
22099: CALL_OW 12
22103: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_computer ] [ rand ( 1 , 3 ) ] ;
22104: LD_ADDR_OWVAR 38
22108: PUSH
22109: LD_INT 1
22111: PUSH
22112: LD_INT 2
22114: PUSH
22115: LD_INT 3
22117: PUSH
22118: EMPTY
22119: LIST
22120: LIST
22121: LIST
22122: PUSH
22123: LD_INT 1
22125: PPUSH
22126: LD_INT 3
22128: PPUSH
22129: CALL_OW 12
22133: ARRAY
22134: 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 ) ] ;
22135: LD_ADDR_OWVAR 40
22139: PUSH
22140: LD_INT 2
22142: PUSH
22143: LD_INT 4
22145: PUSH
22146: LD_INT 5
22148: PUSH
22149: LD_INT 3
22151: PUSH
22152: LD_INT 7
22154: PUSH
22155: LD_INT 8
22157: PUSH
22158: LD_INT 9
22160: PUSH
22161: LD_INT 10
22163: PUSH
22164: LD_INT 6
22166: PUSH
22167: EMPTY
22168: LIST
22169: LIST
22170: LIST
22171: LIST
22172: LIST
22173: LIST
22174: LIST
22175: LIST
22176: LIST
22177: PUSH
22178: LD_INT 1
22180: PPUSH
22181: LD_INT 9
22183: PPUSH
22184: CALL_OW 12
22188: ARRAY
22189: ST_TO_ADDR
// end ; 2 :
22190: GO 22457
22192: LD_INT 2
22194: DOUBLE
22195: EQUAL
22196: IFTRUE 22200
22198: GO 22324
22200: POP
// begin vc_chassis := [ ar_hovercraft , ar_light_trike , ar_medium_trike , ar_half_tracked ] [ rand ( 1 , 4 ) ] ;
22201: LD_ADDR_OWVAR 37
22205: PUSH
22206: LD_INT 11
22208: PUSH
22209: LD_INT 12
22211: PUSH
22212: LD_INT 13
22214: PUSH
22215: LD_INT 14
22217: PUSH
22218: EMPTY
22219: LIST
22220: LIST
22221: LIST
22222: LIST
22223: PUSH
22224: LD_INT 1
22226: PPUSH
22227: LD_INT 4
22229: PPUSH
22230: CALL_OW 12
22234: ARRAY
22235: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
22236: LD_ADDR_OWVAR 39
22240: PUSH
22241: LD_INT 1
22243: PPUSH
22244: LD_INT 3
22246: PPUSH
22247: CALL_OW 12
22251: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_apeman ] [ rand ( 1 , 3 ) ] ;
22252: LD_ADDR_OWVAR 38
22256: PUSH
22257: LD_INT 1
22259: PUSH
22260: LD_INT 2
22262: PUSH
22263: LD_INT 5
22265: PUSH
22266: EMPTY
22267: LIST
22268: LIST
22269: LIST
22270: PUSH
22271: LD_INT 1
22273: PPUSH
22274: LD_INT 3
22276: PPUSH
22277: CALL_OW 12
22281: ARRAY
22282: ST_TO_ADDR
// vc_weapon := [ ar_double_machine_gun , ar_flame_thrower , ar_gun , ar_rocket_launcher , ar_selfpropelled_bomb ] [ rand ( 1 , 5 ) ] ;
22283: LD_ADDR_OWVAR 40
22287: PUSH
22288: LD_INT 24
22290: PUSH
22291: LD_INT 26
22293: PUSH
22294: LD_INT 27
22296: PUSH
22297: LD_INT 28
22299: PUSH
22300: LD_INT 29
22302: PUSH
22303: EMPTY
22304: LIST
22305: LIST
22306: LIST
22307: LIST
22308: LIST
22309: PUSH
22310: LD_INT 1
22312: PPUSH
22313: LD_INT 5
22315: PPUSH
22316: CALL_OW 12
22320: ARRAY
22321: ST_TO_ADDR
// end ; 3 :
22322: GO 22457
22324: LD_INT 3
22326: DOUBLE
22327: EQUAL
22328: IFTRUE 22332
22330: GO 22456
22332: POP
// begin vc_chassis := [ ru_medium_wheeled , ru_heavy_wheeled , ru_medium_tracked , ru_heavy_tracked ] [ rand ( 1 , 4 ) ] ;
22333: LD_ADDR_OWVAR 37
22337: PUSH
22338: LD_INT 21
22340: PUSH
22341: LD_INT 23
22343: PUSH
22344: LD_INT 22
22346: PUSH
22347: LD_INT 24
22349: PUSH
22350: EMPTY
22351: LIST
22352: LIST
22353: LIST
22354: LIST
22355: PUSH
22356: LD_INT 1
22358: PPUSH
22359: LD_INT 4
22361: PPUSH
22362: CALL_OW 12
22366: ARRAY
22367: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
22368: LD_ADDR_OWVAR 39
22372: PUSH
22373: LD_INT 1
22375: PPUSH
22376: LD_INT 3
22378: PPUSH
22379: CALL_OW 12
22383: ST_TO_ADDR
// vc_control := [ control_manual , control_computer ] [ rand ( 1 , 2 ) ] ;
22384: LD_ADDR_OWVAR 38
22388: PUSH
22389: LD_INT 1
22391: PUSH
22392: LD_INT 3
22394: PUSH
22395: EMPTY
22396: LIST
22397: LIST
22398: PUSH
22399: LD_INT 1
22401: PPUSH
22402: LD_INT 2
22404: PPUSH
22405: CALL_OW 12
22409: ARRAY
22410: 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 ) ] ;
22411: LD_ADDR_OWVAR 40
22415: PUSH
22416: LD_INT 42
22418: PUSH
22419: LD_INT 43
22421: PUSH
22422: LD_INT 44
22424: PUSH
22425: LD_INT 46
22427: PUSH
22428: LD_INT 48
22430: PUSH
22431: LD_INT 47
22433: PUSH
22434: EMPTY
22435: LIST
22436: LIST
22437: LIST
22438: LIST
22439: LIST
22440: LIST
22441: PUSH
22442: LD_INT 1
22444: PPUSH
22445: LD_INT 6
22447: PPUSH
22448: CALL_OW 12
22452: ARRAY
22453: ST_TO_ADDR
// end ; end ;
22454: GO 22457
22456: POP
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
22457: CALL_OW 45
22461: PPUSH
22462: LD_INT 1
22464: PPUSH
22465: CALL_OW 51
// end ;
22469: LD_VAR 0 1
22473: RET
// export invincible ; every 1 do
22474: GO 22476
22476: DISABLE
// invincible := [ ] ;
22477: LD_ADDR_EXP 74
22481: PUSH
22482: EMPTY
22483: ST_TO_ADDR
22484: END
// every 10 do var i ;
22485: GO 22487
22487: DISABLE
22488: LD_INT 0
22490: PPUSH
// begin enable ;
22491: ENABLE
// if not invincible then
22492: LD_EXP 74
22496: NOT
22497: IFFALSE 22501
// exit ;
22499: GO 22545
// for i in invincible do
22501: LD_ADDR_VAR 0 1
22505: PUSH
22506: LD_EXP 74
22510: PUSH
22511: FOR_IN
22512: IFFALSE 22543
// if GetLives ( i ) < 1000 then
22514: LD_VAR 0 1
22518: PPUSH
22519: CALL_OW 256
22523: PUSH
22524: LD_INT 1000
22526: LESS
22527: IFFALSE 22541
// SetLives ( i , 1000 ) ;
22529: LD_VAR 0 1
22533: PPUSH
22534: LD_INT 1000
22536: PPUSH
22537: CALL_OW 234
22541: GO 22511
22543: POP
22544: POP
// end ;
22545: PPOPN 1
22547: END
// export function HackInvincible ; var i ; begin
22548: LD_INT 0
22550: PPUSH
22551: PPUSH
// for i in FilterAllUnits ( [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ) do
22552: LD_ADDR_VAR 0 2
22556: PUSH
22557: LD_INT 2
22559: PUSH
22560: LD_INT 21
22562: PUSH
22563: LD_INT 1
22565: PUSH
22566: EMPTY
22567: LIST
22568: LIST
22569: PUSH
22570: LD_INT 21
22572: PUSH
22573: LD_INT 2
22575: PUSH
22576: EMPTY
22577: LIST
22578: LIST
22579: PUSH
22580: EMPTY
22581: LIST
22582: LIST
22583: LIST
22584: PPUSH
22585: CALL_OW 69
22589: PUSH
22590: FOR_IN
22591: IFFALSE 22652
// if IsSelected ( i ) then
22593: LD_VAR 0 2
22597: PPUSH
22598: CALL_OW 306
22602: IFFALSE 22650
// begin if i in invincible then
22604: LD_VAR 0 2
22608: PUSH
22609: LD_EXP 74
22613: IN
22614: IFFALSE 22634
// invincible := invincible diff i else
22616: LD_ADDR_EXP 74
22620: PUSH
22621: LD_EXP 74
22625: PUSH
22626: LD_VAR 0 2
22630: DIFF
22631: ST_TO_ADDR
22632: GO 22650
// invincible := invincible union i ;
22634: LD_ADDR_EXP 74
22638: PUSH
22639: LD_EXP 74
22643: PUSH
22644: LD_VAR 0 2
22648: UNION
22649: ST_TO_ADDR
// end ;
22650: GO 22590
22652: POP
22653: POP
// end ;
22654: LD_VAR 0 1
22658: RET
// export function HackInvisible ; var i , j ; begin
22659: LD_INT 0
22661: PPUSH
22662: PPUSH
22663: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
22664: LD_ADDR_VAR 0 2
22668: PUSH
22669: LD_INT 21
22671: PUSH
22672: LD_INT 1
22674: PUSH
22675: EMPTY
22676: LIST
22677: LIST
22678: PPUSH
22679: CALL_OW 69
22683: PUSH
22684: FOR_IN
22685: IFFALSE 22709
// if IsSelected ( i ) then
22687: LD_VAR 0 2
22691: PPUSH
22692: CALL_OW 306
22696: IFFALSE 22707
// begin ComForceInvisible ( i ) ;
22698: LD_VAR 0 2
22702: PPUSH
22703: CALL_OW 496
// end ;
22707: GO 22684
22709: POP
22710: POP
// end ;
22711: LD_VAR 0 1
22715: RET
// export function HackChangeYourSide ; begin
22716: LD_INT 0
22718: PPUSH
// if your_side = 8 then
22719: LD_OWVAR 2
22723: PUSH
22724: LD_INT 8
22726: EQUAL
22727: IFFALSE 22739
// your_side := 0 else
22729: LD_ADDR_OWVAR 2
22733: PUSH
22734: LD_INT 0
22736: ST_TO_ADDR
22737: GO 22753
// your_side := your_side + 1 ;
22739: LD_ADDR_OWVAR 2
22743: PUSH
22744: LD_OWVAR 2
22748: PUSH
22749: LD_INT 1
22751: PLUS
22752: ST_TO_ADDR
// end ;
22753: LD_VAR 0 1
22757: RET
// export function HackChangeUnitSide ; var i , j ; begin
22758: LD_INT 0
22760: PPUSH
22761: PPUSH
22762: PPUSH
// for i in all_units do
22763: LD_ADDR_VAR 0 2
22767: PUSH
22768: LD_OWVAR 3
22772: PUSH
22773: FOR_IN
22774: IFFALSE 22852
// if IsSelected ( i ) then
22776: LD_VAR 0 2
22780: PPUSH
22781: CALL_OW 306
22785: IFFALSE 22850
// begin j := GetSide ( i ) ;
22787: LD_ADDR_VAR 0 3
22791: PUSH
22792: LD_VAR 0 2
22796: PPUSH
22797: CALL_OW 255
22801: ST_TO_ADDR
// if j = 8 then
22802: LD_VAR 0 3
22806: PUSH
22807: LD_INT 8
22809: EQUAL
22810: IFFALSE 22822
// j := 0 else
22812: LD_ADDR_VAR 0 3
22816: PUSH
22817: LD_INT 0
22819: ST_TO_ADDR
22820: GO 22836
// j := j + 1 ;
22822: LD_ADDR_VAR 0 3
22826: PUSH
22827: LD_VAR 0 3
22831: PUSH
22832: LD_INT 1
22834: PLUS
22835: ST_TO_ADDR
// SetSide ( i , j ) ;
22836: LD_VAR 0 2
22840: PPUSH
22841: LD_VAR 0 3
22845: PPUSH
22846: CALL_OW 235
// end ;
22850: GO 22773
22852: POP
22853: POP
// end ;
22854: LD_VAR 0 1
22858: RET
// export function HackFog ; begin
22859: LD_INT 0
22861: PPUSH
// FogOff ( true ) ;
22862: LD_INT 1
22864: PPUSH
22865: CALL_OW 344
// end ;
22869: LD_VAR 0 1
22873: RET
// export function HackApeman ; begin
22874: LD_INT 0
22876: PPUSH
// uc_side := your_side ;
22877: LD_ADDR_OWVAR 20
22881: PUSH
22882: LD_OWVAR 2
22886: ST_TO_ADDR
// uc_nation := 0 ;
22887: LD_ADDR_OWVAR 21
22891: PUSH
22892: LD_INT 0
22894: ST_TO_ADDR
// hc_name :=  ;
22895: LD_ADDR_OWVAR 26
22899: PUSH
22900: LD_STRING 
22902: ST_TO_ADDR
// hc_gallery :=  ;
22903: LD_ADDR_OWVAR 33
22907: PUSH
22908: LD_STRING 
22910: ST_TO_ADDR
// hc_skills := [ 0 , 0 , 0 , 0 ] ;
22911: LD_ADDR_OWVAR 31
22915: PUSH
22916: LD_INT 0
22918: PUSH
22919: LD_INT 0
22921: PUSH
22922: LD_INT 0
22924: PUSH
22925: LD_INT 0
22927: PUSH
22928: EMPTY
22929: LIST
22930: LIST
22931: LIST
22932: LIST
22933: ST_TO_ADDR
// hc_class := class_apeman ;
22934: LD_ADDR_OWVAR 28
22938: PUSH
22939: LD_INT 12
22941: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateHuman , true ) ;
22942: CALL_OW 44
22946: PPUSH
22947: LD_INT 1
22949: PPUSH
22950: CALL_OW 51
// end ;
22954: LD_VAR 0 1
22958: RET
// export function HackBoom ; begin
22959: LD_INT 0
22961: PPUSH
// uc_side := your_side ;
22962: LD_ADDR_OWVAR 20
22966: PUSH
22967: LD_OWVAR 2
22971: ST_TO_ADDR
// uc_nation := 1 ;
22972: LD_ADDR_OWVAR 21
22976: PUSH
22977: LD_INT 1
22979: ST_TO_ADDR
// vc_chassis := us_morphling ;
22980: LD_ADDR_OWVAR 37
22984: PUSH
22985: LD_INT 5
22987: ST_TO_ADDR
// vc_engine := engine_siberite ;
22988: LD_ADDR_OWVAR 39
22992: PUSH
22993: LD_INT 3
22995: ST_TO_ADDR
// vc_control := control_computer ;
22996: LD_ADDR_OWVAR 38
23000: PUSH
23001: LD_INT 3
23003: ST_TO_ADDR
// vc_weapon := us_siberium_rocket ;
23004: LD_ADDR_OWVAR 40
23008: PUSH
23009: LD_INT 8
23011: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
23012: CALL_OW 45
23016: PPUSH
23017: LD_INT 1
23019: PPUSH
23020: CALL_OW 51
// end ;
23024: LD_VAR 0 1
23028: RET
