// export You , Amici , Rusi , You2 , Rusi2 , You3 , NoLosses ; starting begin InitVars ;
   0: CALL 1441 0 0
// disable_prediction = true ;
   4: LD_ADDR_OWVAR 50
   8: PUSH
   9: LD_INT 1
  11: ST_TO_ADDR
// debug_strings = [ ] ;
  12: LD_ADDR_OWVAR 48
  16: PUSH
  17: EMPTY
  18: ST_TO_ADDR
// RandomizeAll ;
  19: CALL_OW 11
// InitHc ;
  23: CALL_OW 19
// InitUc ;
  27: CALL_OW 18
// InitVc ;
  31: CALL_OW 20
// You = 3 ;
  35: LD_ADDR_EXP 1
  39: PUSH
  40: LD_INT 3
  42: ST_TO_ADDR
// Rusi = You ;
  43: LD_ADDR_EXP 3
  47: PUSH
  48: LD_EXP 1
  52: ST_TO_ADDR
// Amici = 1 ;
  53: LD_ADDR_EXP 2
  57: PUSH
  58: LD_INT 1
  60: ST_TO_ADDR
// You2 = 6 ;
  61: LD_ADDR_EXP 4
  65: PUSH
  66: LD_INT 6
  68: ST_TO_ADDR
// You3 = 5 ;
  69: LD_ADDR_EXP 6
  73: PUSH
  74: LD_INT 5
  76: ST_TO_ADDR
// Rusi2 = You2 ;
  77: LD_ADDR_EXP 5
  81: PUSH
  82: LD_EXP 4
  86: ST_TO_ADDR
// NoLosses := true ;
  87: LD_ADDR_EXP 7
  91: PUSH
  92: LD_INT 1
  94: ST_TO_ADDR
// set_difficulty ;
  95: CALL 4965 0 0
// load_postav ;
  99: CALL 1307 0 0
// create_rusi_navic ;
 103: CALL 15992 0 0
// amici_breast ;
 107: CALL 3660 0 0
// create_amici_past ;
 111: CALL 3891 0 0
// create_amici_staveni_w ;
 115: CALL 4037 0 0
// create_utok_na_belkova ;
 119: CALL 4274 0 0
// create_vojaci_zacatek ;
 123: CALL 4533 0 0
// uklid_rusu ;
 127: CALL 13004 0 0
// wait ( 0 0$2 ) ;
 131: LD_INT 70
 133: PPUSH
 134: CALL_OW 67
// ChangeSideFog ( You , You2 ) ;
 138: LD_EXP 1
 142: PPUSH
 143: LD_EXP 4
 147: PPUSH
 148: CALL_OW 343
// InGameOn ;
 152: CALL_OW 8
// CenterOnXY ( 117 , 101 ) ;
 156: LD_INT 117
 158: PPUSH
 159: LD_INT 101
 161: PPUSH
 162: CALL_OW 84
// end ;
 166: END
// on UnitDestroyed ( un ) do begin if un = bur then
 167: LD_VAR 0 1
 171: PUSH
 172: LD_EXP 47
 176: EQUAL
 177: IFFALSE 186
// YouLost ( Burlak ) ;
 179: LD_STRING Burlak
 181: PPUSH
 182: CALL_OW 104
// enable ;
 186: ENABLE
// end ;
 187: PPOPN 1
 189: END
// on HumanDestroyed ( un , side , nat , x , y , dir , sex , cl ) do begin if ( side = You ) then
 190: LD_VAR 0 2
 194: PUSH
 195: LD_EXP 1
 199: EQUAL
 200: IFFALSE 210
// NoLosses := false ;
 202: LD_ADDR_EXP 7
 206: PUSH
 207: LD_INT 0
 209: ST_TO_ADDR
// end ;
 210: PPOPN 8
 212: END
// export function konec_mise_utok ; begin
 213: LD_INT 0
 215: PPUSH
// YouLost ( SelfAttack ) ;
 216: LD_STRING SelfAttack
 218: PPUSH
 219: CALL_OW 104
// end ;
 223: LD_VAR 0 1
 227: RET
// export function konec_mise ; var i , pom , pom1 ; var zivi ; var drv ; var a , b , c , d , e , f ; var budovy ; var material ; var bw ; var all_lidi ; var lidi ; begin
 228: LD_INT 0
 230: PPUSH
 231: PPUSH
 232: PPUSH
 233: PPUSH
 234: PPUSH
 235: PPUSH
 236: PPUSH
 237: PPUSH
 238: PPUSH
 239: PPUSH
 240: PPUSH
 241: PPUSH
 242: PPUSH
 243: PPUSH
 244: PPUSH
 245: PPUSH
 246: PPUSH
// DisableExclamations ;
 247: CALL_OW 474
// gained_medals := [ ] ;
 251: LD_ADDR_OWVAR 61
 255: PUSH
 256: EMPTY
 257: ST_TO_ADDR
// missing_medals := [ ] ;
 258: LD_ADDR_OWVAR 62
 262: PUSH
 263: EMPTY
 264: ST_TO_ADDR
// zivi = 0 ;
 265: LD_ADDR_VAR 0 5
 269: PUSH
 270: LD_INT 0
 272: ST_TO_ADDR
// if NoLosses then
 273: LD_EXP 7
 277: IFFALSE 291
// AddMedal ( NoLosses , 1 ) else
 279: LD_STRING NoLosses
 281: PPUSH
 282: LD_INT 1
 284: PPUSH
 285: CALL_OW 101
 289: GO 302
// AddMedal ( NoLosses , - 1 ) ;
 291: LD_STRING NoLosses
 293: PPUSH
 294: LD_INT 1
 296: NEG
 297: PPUSH
 298: CALL_OW 101
// if BelkovFreed then
 302: LD_EXP 13
 306: IFFALSE 381
// if IsOK ( bel ) then
 308: LD_EXP 49
 312: PPUSH
 313: CALL_OW 302
 317: IFFALSE 331
// AddMedal ( Belkov , 1 ) else
 319: LD_STRING Belkov
 321: PPUSH
 322: LD_INT 1
 324: PPUSH
 325: CALL_OW 101
 329: GO 379
// if UnitFilter ( BelkovComp , [ f_OK ] ) + 0 > 0 then
 331: LD_EXP 14
 335: PPUSH
 336: LD_INT 50
 338: PUSH
 339: EMPTY
 340: LIST
 341: PPUSH
 342: CALL_OW 72
 346: PUSH
 347: LD_INT 0
 349: PLUS
 350: PUSH
 351: LD_INT 0
 353: GREATER
 354: IFFALSE 368
// AddMedal ( Belkov , 2 ) else
 356: LD_STRING Belkov
 358: PPUSH
 359: LD_INT 2
 361: PPUSH
 362: CALL_OW 101
 366: GO 379
// AddMedal ( Belkov , - 3 ) else
 368: LD_STRING Belkov
 370: PPUSH
 371: LD_INT 3
 373: NEG
 374: PPUSH
 375: CALL_OW 101
 379: GO 411
// if objBelkov then
 381: LD_EXP 25
 385: IFFALSE 400
// AddMedal ( Belkov , - 2 ) else
 387: LD_STRING Belkov
 389: PPUSH
 390: LD_INT 2
 392: NEG
 393: PPUSH
 394: CALL_OW 101
 398: GO 411
// AddMedal ( Belkov , - 1 ) ;
 400: LD_STRING Belkov
 402: PPUSH
 403: LD_INT 1
 405: NEG
 406: PPUSH
 407: CALL_OW 101
// case stav_utoku of 1 :
 411: LD_EXP 56
 415: PUSH
 416: LD_INT 1
 418: DOUBLE
 419: EQUAL
 420: IFTRUE 424
 422: GO 437
 424: POP
// AddMedal ( Initiative , 1 ) ; 2 :
 425: LD_STRING Initiative
 427: PPUSH
 428: LD_INT 1
 430: PPUSH
 431: CALL_OW 101
 435: GO 492
 437: LD_INT 2
 439: DOUBLE
 440: EQUAL
 441: IFTRUE 445
 443: GO 459
 445: POP
// AddMedal ( Initiative , - 2 ) ; 3 :
 446: LD_STRING Initiative
 448: PPUSH
 449: LD_INT 2
 451: NEG
 452: PPUSH
 453: CALL_OW 101
 457: GO 492
 459: LD_INT 3
 461: DOUBLE
 462: EQUAL
 463: IFTRUE 467
 465: GO 481
 467: POP
// AddMedal ( Initiative , - 1 ) ; else
 468: LD_STRING Initiative
 470: PPUSH
 471: LD_INT 1
 473: NEG
 474: PPUSH
 475: CALL_OW 101
 479: GO 492
 481: POP
// AddMedal ( Initiative , 1 ) ; end ;
 482: LD_STRING Initiative
 484: PPUSH
 485: LD_INT 1
 487: PPUSH
 488: CALL_OW 101
// GiveMedals ( Main ) ;
 492: LD_STRING Main
 494: PPUSH
 495: CALL_OW 102
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
 499: LD_ADDR_VAR 0 3
 503: PUSH
 504: LD_INT 22
 506: PUSH
 507: LD_EXP 1
 511: PUSH
 512: EMPTY
 513: LIST
 514: LIST
 515: PUSH
 516: LD_INT 21
 518: PUSH
 519: LD_INT 1
 521: PUSH
 522: EMPTY
 523: LIST
 524: LIST
 525: PUSH
 526: EMPTY
 527: LIST
 528: LIST
 529: PPUSH
 530: CALL_OW 69
 534: ST_TO_ADDR
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
 535: LD_ADDR_VAR 0 4
 539: PUSH
 540: LD_INT 22
 542: PUSH
 543: LD_EXP 1
 547: PUSH
 548: EMPTY
 549: LIST
 550: LIST
 551: PUSH
 552: LD_INT 21
 554: PUSH
 555: LD_INT 2
 557: PUSH
 558: EMPTY
 559: LIST
 560: LIST
 561: PUSH
 562: EMPTY
 563: LIST
 564: LIST
 565: PPUSH
 566: CALL_OW 69
 570: ST_TO_ADDR
// for i in pom1 do
 571: LD_ADDR_VAR 0 2
 575: PUSH
 576: LD_VAR 0 4
 580: PUSH
 581: FOR_IN
 582: IFFALSE 641
// if IsDrivenBy ( i ) then
 584: LD_VAR 0 2
 588: PPUSH
 589: CALL_OW 311
 593: IFFALSE 639
// begin drv = IsDrivenBy ( i ) ;
 595: LD_ADDR_VAR 0 6
 599: PUSH
 600: LD_VAR 0 2
 604: PPUSH
 605: CALL_OW 311
 609: ST_TO_ADDR
// if not ( drv in pom ) then
 610: LD_VAR 0 6
 614: PUSH
 615: LD_VAR 0 3
 619: IN
 620: NOT
 621: IFFALSE 639
// pom = pom ^ drv ;
 623: LD_ADDR_VAR 0 3
 627: PUSH
 628: LD_VAR 0 3
 632: PUSH
 633: LD_VAR 0 6
 637: ADD
 638: ST_TO_ADDR
// end ;
 639: GO 581
 641: POP
 642: POP
// all_lidi = pom ;
 643: LD_ADDR_VAR 0 16
 647: PUSH
 648: LD_VAR 0 3
 652: ST_TO_ADDR
// RewardPeople ( all_lidi ) ;
 653: LD_VAR 0 16
 657: PPUSH
 658: CALL_OW 43
// SaveCharacters ( bur , Burlak ) ;
 662: LD_EXP 47
 666: PPUSH
 667: LD_STRING Burlak
 669: PPUSH
 670: CALL_OW 38
// SaveCharacters ( plat , Platonov ) ;
 674: LD_EXP 51
 678: PPUSH
 679: LD_STRING Platonov
 681: PPUSH
 682: CALL_OW 38
// SaveCharacters ( kurin , Kurin ) ;
 686: LD_EXP 50
 690: PPUSH
 691: LD_STRING Kurin
 693: PPUSH
 694: CALL_OW 38
// SaveCharacters ( bel , Belkov ) ;
 698: LD_EXP 49
 702: PPUSH
 703: LD_STRING Belkov
 705: PPUSH
 706: CALL_OW 38
// SaveCharacters ( gny , Gnyevko ) ;
 710: LD_EXP 46
 714: PPUSH
 715: LD_STRING Gnyevko
 717: PPUSH
 718: CALL_OW 38
// SaveCharacters ( kov , Kovalyuk ) ;
 722: LD_EXP 48
 726: PPUSH
 727: LD_STRING Kovalyuk
 729: PPUSH
 730: CALL_OW 38
// all_lidi = pom diff [ bur , plat , kurin , bel , gny , kov ] ;
 734: LD_ADDR_VAR 0 16
 738: PUSH
 739: LD_VAR 0 3
 743: PUSH
 744: LD_EXP 47
 748: PUSH
 749: LD_EXP 51
 753: PUSH
 754: LD_EXP 50
 758: PUSH
 759: LD_EXP 49
 763: PUSH
 764: LD_EXP 46
 768: PUSH
 769: LD_EXP 48
 773: PUSH
 774: EMPTY
 775: LIST
 776: LIST
 777: LIST
 778: LIST
 779: LIST
 780: LIST
 781: DIFF
 782: ST_TO_ADDR
// all_lidi = all_lidi union rusi_survivors ;
 783: LD_ADDR_VAR 0 16
 787: PUSH
 788: LD_VAR 0 16
 792: PUSH
 793: LD_EXP 55
 797: UNION
 798: ST_TO_ADDR
// SaveCharacters ( all_lidi , survivors1 ) ;
 799: LD_VAR 0 16
 803: PPUSH
 804: LD_STRING survivors1
 806: PPUSH
 807: CALL_OW 38
// if BelkovFreed then
 811: LD_EXP 13
 815: IFFALSE 829
// SaveVariable ( 1 , belkov_saved ) else
 817: LD_INT 1
 819: PPUSH
 820: LD_STRING belkov_saved
 822: PPUSH
 823: CALL_OW 39
 827: GO 839
// SaveVariable ( 0 , belkov_saved ) ;
 829: LD_INT 0
 831: PPUSH
 832: LD_STRING belkov_saved
 834: PPUSH
 835: CALL_OW 39
// case stav_utoku of 0 :
 839: LD_EXP 56
 843: PUSH
 844: LD_INT 0
 846: DOUBLE
 847: EQUAL
 848: IFTRUE 852
 850: GO 865
 852: POP
// SaveVariable ( 3 , utok_stav ) ; 1 :
 853: LD_INT 3
 855: PPUSH
 856: LD_STRING utok_stav
 858: PPUSH
 859: CALL_OW 39
 863: GO 929
 865: LD_INT 1
 867: DOUBLE
 868: EQUAL
 869: IFTRUE 873
 871: GO 886
 873: POP
// SaveVariable ( 1 , utok_stav ) ; 2 :
 874: LD_INT 1
 876: PPUSH
 877: LD_STRING utok_stav
 879: PPUSH
 880: CALL_OW 39
 884: GO 929
 886: LD_INT 2
 888: DOUBLE
 889: EQUAL
 890: IFTRUE 894
 892: GO 907
 894: POP
// SaveVariable ( 2 , utok_stav ) ; 3 :
 895: LD_INT 2
 897: PPUSH
 898: LD_STRING utok_stav
 900: PPUSH
 901: CALL_OW 39
 905: GO 929
 907: LD_INT 3
 909: DOUBLE
 910: EQUAL
 911: IFTRUE 915
 913: GO 928
 915: POP
// SaveVariable ( 3 , utok_stav ) ; end ;
 916: LD_INT 3
 918: PPUSH
 919: LD_STRING utok_stav
 921: PPUSH
 922: CALL_OW 39
 926: GO 929
 928: POP
// budovy = [ ] ;
 929: LD_ADDR_VAR 0 13
 933: PUSH
 934: EMPTY
 935: ST_TO_ADDR
// bw = 0 ;
 936: LD_ADDR_VAR 0 15
 940: PUSH
 941: LD_INT 0
 943: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_building ] ] ) ;
 944: LD_ADDR_VAR 0 3
 948: PUSH
 949: LD_INT 22
 951: PUSH
 952: LD_EXP 1
 956: PUSH
 957: EMPTY
 958: LIST
 959: LIST
 960: PUSH
 961: LD_INT 21
 963: PUSH
 964: LD_INT 3
 966: PUSH
 967: EMPTY
 968: LIST
 969: LIST
 970: PUSH
 971: EMPTY
 972: LIST
 973: LIST
 974: PPUSH
 975: CALL_OW 69
 979: ST_TO_ADDR
// for i in pom do
 980: LD_ADDR_VAR 0 2
 984: PUSH
 985: LD_VAR 0 3
 989: PUSH
 990: FOR_IN
 991: IFFALSE 1147
// begin a = GetBType ( i ) ;
 993: LD_ADDR_VAR 0 7
 997: PUSH
 998: LD_VAR 0 2
1002: PPUSH
1003: CALL_OW 266
1007: ST_TO_ADDR
// b = GetBLevel ( i ) ;
1008: LD_ADDR_VAR 0 8
1012: PUSH
1013: LD_VAR 0 2
1017: PPUSH
1018: CALL_OW 267
1022: ST_TO_ADDR
// c = GetX ( i ) ;
1023: LD_ADDR_VAR 0 9
1027: PUSH
1028: LD_VAR 0 2
1032: PPUSH
1033: CALL_OW 250
1037: ST_TO_ADDR
// d = GetY ( i ) ;
1038: LD_ADDR_VAR 0 10
1042: PUSH
1043: LD_VAR 0 2
1047: PPUSH
1048: CALL_OW 251
1052: ST_TO_ADDR
// e = GetDir ( i ) ;
1053: LD_ADDR_VAR 0 11
1057: PUSH
1058: LD_VAR 0 2
1062: PPUSH
1063: CALL_OW 254
1067: ST_TO_ADDR
// f = GetNation ( i ) ;
1068: LD_ADDR_VAR 0 12
1072: PUSH
1073: LD_VAR 0 2
1077: PPUSH
1078: CALL_OW 248
1082: ST_TO_ADDR
// pom1 = [ a , b , c , d , e , f ] ;
1083: LD_ADDR_VAR 0 4
1087: PUSH
1088: LD_VAR 0 7
1092: PUSH
1093: LD_VAR 0 8
1097: PUSH
1098: LD_VAR 0 9
1102: PUSH
1103: LD_VAR 0 10
1107: PUSH
1108: LD_VAR 0 11
1112: PUSH
1113: LD_VAR 0 12
1117: PUSH
1118: EMPTY
1119: LIST
1120: LIST
1121: LIST
1122: LIST
1123: LIST
1124: LIST
1125: ST_TO_ADDR
// budovy = budovy ^ [ pom1 ] ;
1126: LD_ADDR_VAR 0 13
1130: PUSH
1131: LD_VAR 0 13
1135: PUSH
1136: LD_VAR 0 4
1140: PUSH
1141: EMPTY
1142: LIST
1143: ADD
1144: ST_TO_ADDR
// end ;
1145: GO 990
1147: POP
1148: POP
// SaveVariable ( budovy , budovy ) ;
1149: LD_VAR 0 13
1153: PPUSH
1154: LD_STRING budovy
1156: PPUSH
1157: CALL_OW 39
// if isOK ( am_bre1 ) then
1161: LD_INT 30
1163: PPUSH
1164: CALL_OW 302
1168: IFFALSE 1184
// bw = bw + 1 ;
1170: LD_ADDR_VAR 0 15
1174: PUSH
1175: LD_VAR 0 15
1179: PUSH
1180: LD_INT 1
1182: PLUS
1183: ST_TO_ADDR
// if IsOK ( am_bre2 ) then
1184: LD_INT 31
1186: PPUSH
1187: CALL_OW 302
1191: IFFALSE 1207
// bw = bw + 2 ;
1193: LD_ADDR_VAR 0 15
1197: PUSH
1198: LD_VAR 0 15
1202: PUSH
1203: LD_INT 2
1205: PLUS
1206: ST_TO_ADDR
// SaveVariable ( bw , bw_east ) ;
1207: LD_VAR 0 15
1211: PPUSH
1212: LD_STRING bw_east
1214: PPUSH
1215: CALL_OW 39
// pom = [ ] ;
1219: LD_ADDR_VAR 0 3
1223: PUSH
1224: EMPTY
1225: ST_TO_ADDR
// if ISOK ( ABW1 ) then
1226: LD_EXP 73
1230: PPUSH
1231: CALL_OW 302
1235: IFFALSE 1253
// pom = pom ^ ABW1 ;
1237: LD_ADDR_VAR 0 3
1241: PUSH
1242: LD_VAR 0 3
1246: PUSH
1247: LD_EXP 73
1251: ADD
1252: ST_TO_ADDR
// if ISOK ( ABW2 ) then
1253: LD_EXP 74
1257: PPUSH
1258: CALL_OW 302
1262: IFFALSE 1280
// pom = pom ^ ABW2 ;
1264: LD_ADDR_VAR 0 3
1268: PUSH
1269: LD_VAR 0 3
1273: PUSH
1274: LD_EXP 74
1278: ADD
1279: ST_TO_ADDR
// SaveCharacters ( pom , amici_bw ) ;
1280: LD_VAR 0 3
1284: PPUSH
1285: LD_STRING amici_bw
1287: PPUSH
1288: CALL_OW 38
// YouWin ;
1292: CALL_OW 103
// EnableExclamations ;
1296: CALL_OW 473
// exit ;
1300: GO 1302
// end ;
1302: LD_VAR 0 1
1306: RET
// function load_postav ; begin
1307: LD_INT 0
1309: PPUSH
// kurin = NewCharacter ( kurin ) ;
1310: LD_ADDR_EXP 50
1314: PUSH
1315: LD_STRING kurin
1317: PPUSH
1318: CALL_OW 25
1322: ST_TO_ADDR
// if CheckCharacterSet ( Belkov ) then
1323: LD_STRING Belkov
1325: PPUSH
1326: CALL_OW 29
1330: IFFALSE 1342
// BELKOV_MRTVY = false else
1332: LD_ADDR_EXP 43
1336: PUSH
1337: LD_INT 0
1339: ST_TO_ADDR
1340: GO 1350
// BELKOV_MRTVY = true ;
1342: LD_ADDR_EXP 43
1346: PUSH
1347: LD_INT 1
1349: ST_TO_ADDR
// if BELKOV_MRTVY then
1350: LD_EXP 43
1354: IFFALSE 1371
// begin bel = NewCharacter ( Belkov2 ) ;
1356: LD_ADDR_EXP 49
1360: PUSH
1361: LD_STRING Belkov2
1363: PPUSH
1364: CALL_OW 25
1368: ST_TO_ADDR
// end else
1369: GO 1384
// bel = nacti_osobu ( Belkov ) ;
1371: LD_ADDR_EXP 49
1375: PUSH
1376: LD_STRING Belkov
1378: PPUSH
1379: CALL 4840 0 1
1383: ST_TO_ADDR
// kov = NewCharacter ( Kovalyuk ) ;
1384: LD_ADDR_EXP 48
1388: PUSH
1389: LD_STRING Kovalyuk
1391: PPUSH
1392: CALL_OW 25
1396: ST_TO_ADDR
// bur = nacti_osobu ( Burlak ) ;
1397: LD_ADDR_EXP 47
1401: PUSH
1402: LD_STRING Burlak
1404: PPUSH
1405: CALL 4840 0 1
1409: ST_TO_ADDR
// gny = nacti_osobu ( Gnyevko ) ;
1410: LD_ADDR_EXP 46
1414: PUSH
1415: LD_STRING Gnyevko
1417: PPUSH
1418: CALL 4840 0 1
1422: ST_TO_ADDR
// plat = NewCharacter ( Platonov ) ;
1423: LD_ADDR_EXP 51
1427: PUSH
1428: LD_STRING Platonov
1430: PPUSH
1431: CALL_OW 25
1435: ST_TO_ADDR
// end ; end_of_file
1436: LD_VAR 0 1
1440: RET
// export CarCount , WBW , EBW , BurlakComp , BurlakOut , BelkovFreed , BelkovComp , WBWSpotted , WBWAttacked , WBWDestroyed , WBWReported , EBWSpotted , EBWDestroyed , EBWReported , Charted , QAttAm , objAttack , objBelkov , objReturn , Reinforcements , InWest , BeriaVisited , CanReturn , playing , d19a , McCestaNaSever ; export function InitVars ; begin
1441: LD_INT 0
1443: PPUSH
// CarCount = 0 ;
1444: LD_ADDR_EXP 8
1448: PUSH
1449: LD_INT 0
1451: ST_TO_ADDR
// WBWSpotted := false ;
1452: LD_ADDR_EXP 15
1456: PUSH
1457: LD_INT 0
1459: ST_TO_ADDR
// WBWAttacked := false ;
1460: LD_ADDR_EXP 16
1464: PUSH
1465: LD_INT 0
1467: ST_TO_ADDR
// WBWDestroyed := false ;
1468: LD_ADDR_EXP 17
1472: PUSH
1473: LD_INT 0
1475: ST_TO_ADDR
// WBWReported := false ;
1476: LD_ADDR_EXP 18
1480: PUSH
1481: LD_INT 0
1483: ST_TO_ADDR
// EBWSpotted := false ;
1484: LD_ADDR_EXP 19
1488: PUSH
1489: LD_INT 0
1491: ST_TO_ADDR
// EBWDestroyed := false ;
1492: LD_ADDR_EXP 20
1496: PUSH
1497: LD_INT 0
1499: ST_TO_ADDR
// EBWReported := false ;
1500: LD_ADDR_EXP 21
1504: PUSH
1505: LD_INT 0
1507: ST_TO_ADDR
// BelkovFreed := false ;
1508: LD_ADDR_EXP 13
1512: PUSH
1513: LD_INT 0
1515: ST_TO_ADDR
// BelkovComp := [ ] ;
1516: LD_ADDR_EXP 14
1520: PUSH
1521: EMPTY
1522: ST_TO_ADDR
// QAttAm := false ;
1523: LD_ADDR_EXP 23
1527: PUSH
1528: LD_INT 0
1530: ST_TO_ADDR
// d19a := false ;
1531: LD_ADDR_EXP 32
1535: PUSH
1536: LD_INT 0
1538: ST_TO_ADDR
// objAttack := false ;
1539: LD_ADDR_EXP 24
1543: PUSH
1544: LD_INT 0
1546: ST_TO_ADDR
// Reinforcements := false ;
1547: LD_ADDR_EXP 27
1551: PUSH
1552: LD_INT 0
1554: ST_TO_ADDR
// Charted := false ;
1555: LD_ADDR_EXP 22
1559: PUSH
1560: LD_INT 0
1562: ST_TO_ADDR
// objBelkov := false ;
1563: LD_ADDR_EXP 25
1567: PUSH
1568: LD_INT 0
1570: ST_TO_ADDR
// objReturn := false ;
1571: LD_ADDR_EXP 26
1575: PUSH
1576: LD_INT 0
1578: ST_TO_ADDR
// BeriaVisited := false ;
1579: LD_ADDR_EXP 29
1583: PUSH
1584: LD_INT 0
1586: ST_TO_ADDR
// InWest := false ;
1587: LD_ADDR_EXP 28
1591: PUSH
1592: LD_INT 0
1594: ST_TO_ADDR
// playing := false ;
1595: LD_ADDR_EXP 31
1599: PUSH
1600: LD_INT 0
1602: ST_TO_ADDR
// EBW := [ Am_bre1 , Am_bre2 ] ;
1603: LD_ADDR_EXP 10
1607: PUSH
1608: LD_INT 30
1610: PUSH
1611: LD_INT 31
1613: PUSH
1614: EMPTY
1615: LIST
1616: LIST
1617: ST_TO_ADDR
// BurlakOut := [ ] ;
1618: LD_ADDR_EXP 12
1622: PUSH
1623: EMPTY
1624: ST_TO_ADDR
// CanReturn := false ;
1625: LD_ADDR_EXP 30
1629: PUSH
1630: LD_INT 0
1632: ST_TO_ADDR
// McCestaNaSever := 0 ;
1633: LD_ADDR_EXP 33
1637: PUSH
1638: LD_INT 0
1640: ST_TO_ADDR
// disable ( 99 ) ;
1641: LD_INT 99
1643: DISABLE_MARKED
// disable ( 100 ) ;
1644: LD_INT 100
1646: DISABLE_MARKED
// disable ( 101 ) ;
1647: LD_INT 101
1649: DISABLE_MARKED
// disable ( 300 ) ;
1650: LD_INT 300
1652: DISABLE_MARKED
// disable ( 301 ) ;
1653: LD_INT 301
1655: DISABLE_MARKED
// disable ( 302 ) ;
1656: LD_INT 302
1658: DISABLE_MARKED
// end ;
1659: LD_VAR 0 1
1663: RET
// function ListAttacks ( who , whom ) ; var i ; begin
1664: LD_INT 0
1666: PPUSH
1667: PPUSH
// result := false ;
1668: LD_ADDR_VAR 0 3
1672: PUSH
1673: LD_INT 0
1675: ST_TO_ADDR
// for i in who do
1676: LD_ADDR_VAR 0 4
1680: PUSH
1681: LD_VAR 0 1
1685: PUSH
1686: FOR_IN
1687: IFFALSE 1718
// begin if Attacks ( i ) in whom then
1689: LD_VAR 0 4
1693: PPUSH
1694: CALL_OW 320
1698: PUSH
1699: LD_VAR 0 2
1703: IN
1704: IFFALSE 1716
// begin result := true ;
1706: LD_ADDR_VAR 0 3
1710: PUSH
1711: LD_INT 1
1713: ST_TO_ADDR
// break end ;
1714: GO 1718
// end ;
1716: GO 1686
1718: POP
1719: POP
// end ;
1720: LD_VAR 0 3
1724: RET
// function ListSee ( side , who ) ; var i ; begin
1725: LD_INT 0
1727: PPUSH
1728: PPUSH
// result := false ;
1729: LD_ADDR_VAR 0 3
1733: PUSH
1734: LD_INT 0
1736: ST_TO_ADDR
// for i in who do
1737: LD_ADDR_VAR 0 4
1741: PUSH
1742: LD_VAR 0 2
1746: PUSH
1747: FOR_IN
1748: IFFALSE 1778
// begin if see ( side , i ) then
1750: LD_VAR 0 1
1754: PPUSH
1755: LD_VAR 0 4
1759: PPUSH
1760: CALL_OW 292
1764: IFFALSE 1776
// begin result := true ;
1766: LD_ADDR_VAR 0 3
1770: PUSH
1771: LD_INT 1
1773: ST_TO_ADDR
// break ;
1774: GO 1778
// end ; end ;
1776: GO 1747
1778: POP
1779: POP
// end ;
1780: LD_VAR 0 3
1784: RET
// function BurlakInArea ( area ) ; var i , pom , hum ; begin
1785: LD_INT 0
1787: PPUSH
1788: PPUSH
1789: PPUSH
1790: PPUSH
// hum := [ ] ;
1791: LD_ADDR_VAR 0 5
1795: PUSH
1796: EMPTY
1797: ST_TO_ADDR
// pom := FilterUnitsInArea ( area , [ [ f_side , you ] , [ f_ready ] ] ) ;
1798: LD_ADDR_VAR 0 4
1802: PUSH
1803: LD_VAR 0 1
1807: PPUSH
1808: LD_INT 22
1810: PUSH
1811: LD_EXP 1
1815: PUSH
1816: EMPTY
1817: LIST
1818: LIST
1819: PUSH
1820: LD_INT 53
1822: PUSH
1823: EMPTY
1824: LIST
1825: PUSH
1826: EMPTY
1827: LIST
1828: LIST
1829: PPUSH
1830: CALL_OW 70
1834: ST_TO_ADDR
// for i in pom do
1835: LD_ADDR_VAR 0 3
1839: PUSH
1840: LD_VAR 0 4
1844: PUSH
1845: FOR_IN
1846: IFFALSE 1932
// begin if GetType ( i ) = unit_human then
1848: LD_VAR 0 3
1852: PPUSH
1853: CALL_OW 247
1857: PUSH
1858: LD_INT 1
1860: EQUAL
1861: IFFALSE 1879
// begin hum := hum ^ i ;
1863: LD_ADDR_VAR 0 5
1867: PUSH
1868: LD_VAR 0 5
1872: PUSH
1873: LD_VAR 0 3
1877: ADD
1878: ST_TO_ADDR
// end ; if ( GetType ( i ) = unit_building ) or ( GetType ( i ) = unit_vehicle ) then
1879: LD_VAR 0 3
1883: PPUSH
1884: CALL_OW 247
1888: PUSH
1889: LD_INT 3
1891: EQUAL
1892: PUSH
1893: LD_VAR 0 3
1897: PPUSH
1898: CALL_OW 247
1902: PUSH
1903: LD_INT 2
1905: EQUAL
1906: OR
1907: IFFALSE 1930
// begin hum := hum union UnitsInside ( i ) ;
1909: LD_ADDR_VAR 0 5
1913: PUSH
1914: LD_VAR 0 5
1918: PUSH
1919: LD_VAR 0 3
1923: PPUSH
1924: CALL_OW 313
1928: UNION
1929: ST_TO_ADDR
// end ; end ;
1930: GO 1845
1932: POP
1933: POP
// if ( hum isect BurlakOut ) > 0 then
1934: LD_VAR 0 5
1938: PUSH
1939: LD_EXP 12
1943: ISECT
1944: PUSH
1945: LD_INT 0
1947: GREATER
1948: IFFALSE 1960
// result := true else
1950: LD_ADDR_VAR 0 2
1954: PUSH
1955: LD_INT 1
1957: ST_TO_ADDR
1958: GO 1968
// result := false ;
1960: LD_ADDR_VAR 0 2
1964: PUSH
1965: LD_INT 0
1967: ST_TO_ADDR
// end ;
1968: LD_VAR 0 2
1972: RET
// export function MissionProper ; begin
1973: LD_INT 0
1975: PPUSH
// enable ( 99 ) ;
1976: LD_INT 99
1978: ENABLE_MARKED
// enable ( 100 ) ;
1979: LD_INT 100
1981: ENABLE_MARKED
// CanReturn := false ;
1982: LD_ADDR_EXP 30
1986: PUSH
1987: LD_INT 0
1989: ST_TO_ADDR
// end ;
1990: LD_VAR 0 1
1994: RET
// function ShouldReturn ; begin
1995: LD_INT 0
1997: PPUSH
// if Charted and ( BelkovFreed or ( not objBelkov ) ) and ( WBWDestroyed or ( not objAttack ) ) and ( not objReturn ) then
1998: LD_EXP 22
2002: PUSH
2003: LD_EXP 13
2007: PUSH
2008: LD_EXP 25
2012: NOT
2013: OR
2014: AND
2015: PUSH
2016: LD_EXP 17
2020: PUSH
2021: LD_EXP 24
2025: NOT
2026: OR
2027: AND
2028: PUSH
2029: LD_EXP 26
2033: NOT
2034: AND
2035: IFFALSE 2052
// begin ChangeMissionObjectives ( M10a ) ;
2037: LD_STRING M10a
2039: PPUSH
2040: CALL_OW 337
// objReturn := true ;
2044: LD_ADDR_EXP 26
2048: PUSH
2049: LD_INT 1
2051: ST_TO_ADDR
// end ; end ;
2052: LD_VAR 0 1
2056: RET
// on VehicleConstructed ( veh , fact ) do begin CarCount := CarCount + 1 ;
2057: LD_ADDR_EXP 8
2061: PUSH
2062: LD_EXP 8
2066: PUSH
2067: LD_INT 1
2069: PLUS
2070: ST_TO_ADDR
// if CarCount = 1 then
2071: LD_EXP 8
2075: PUSH
2076: LD_INT 1
2078: EQUAL
2079: IFFALSE 2084
// enable ( 300 ) ;
2081: LD_INT 300
2083: ENABLE_MARKED
// if CarCount = UnitFilter ( Rusi_enter , [ f_OK ] ) then
2084: LD_EXP 8
2088: PUSH
2089: LD_EXP 52
2093: PPUSH
2094: LD_INT 50
2096: PUSH
2097: EMPTY
2098: LIST
2099: PPUSH
2100: CALL_OW 72
2104: EQUAL
2105: IFFALSE 2110
// enable ( 302 ) ;
2107: LD_INT 302
2109: ENABLE_MARKED
// if CarCount = UnitFilter ( Rusi_enter , [ f_OK ] ) + 1 then
2110: LD_EXP 8
2114: PUSH
2115: LD_EXP 52
2119: PPUSH
2120: LD_INT 50
2122: PUSH
2123: EMPTY
2124: LIST
2125: PPUSH
2126: CALL_OW 72
2130: PUSH
2131: LD_INT 1
2133: PLUS
2134: EQUAL
2135: IFFALSE 2140
// enable ( 301 ) ;
2137: LD_INT 301
2139: ENABLE_MARKED
// end ;
2140: PPOPN 2
2142: END
// every 0 0$1 marked 301 do
2143: GO 2145
2145: DISABLE
// begin rozhovor_ukonceni_m5 ;
2146: CALL 8372 0 0
// stav = 7 ;
2150: LD_ADDR_EXP 57
2154: PUSH
2155: LD_INT 7
2157: ST_TO_ADDR
// end ;
2158: END
// every 0 0$5 trigger ( ListSee ( you , WBW ) or ListAttacks ( WBW , BurlakOut ) ) and ( not WBWDestroyed ) do
2159: LD_EXP 1
2163: PPUSH
2164: LD_EXP 9
2168: PPUSH
2169: CALL 1725 0 2
2173: PUSH
2174: LD_EXP 9
2178: PPUSH
2179: LD_EXP 12
2183: PPUSH
2184: CALL 1664 0 2
2188: OR
2189: PUSH
2190: LD_EXP 17
2194: NOT
2195: AND
2196: IFFALSE 2450
2198: GO 2200
2200: DISABLE
// begin if BurlakInArea ( kopec ) then
2201: LD_INT 26
2203: PPUSH
2204: CALL 1785 0 1
2208: IFFALSE 2218
// begin InWest := true ;
2210: LD_ADDR_EXP 28
2214: PUSH
2215: LD_INT 1
2217: ST_TO_ADDR
// end ; if not WBWSpotted then
2218: LD_EXP 15
2222: NOT
2223: IFFALSE 2229
// begin play_dialog_15 ;
2225: CALL 10644 0 0
// end ; WBWSpotted := true ;
2229: LD_ADDR_EXP 15
2233: PUSH
2234: LD_INT 1
2236: ST_TO_ADDR
// if InWest and ( not QAttAm ) and ( not objAttack ) then
2237: LD_EXP 28
2241: PUSH
2242: LD_EXP 23
2246: NOT
2247: AND
2248: PUSH
2249: LD_EXP 24
2253: NOT
2254: AND
2255: IFFALSE 2374
// begin case query ( QAttackBw ) of 1 :
2257: LD_STRING QAttackBw
2259: PPUSH
2260: CALL_OW 97
2264: PUSH
2265: LD_INT 1
2267: DOUBLE
2268: EQUAL
2269: IFTRUE 2273
2271: GO 2288
2273: POP
// begin play_dialog_qwbw1 ;
2274: CALL 10849 0 0
// stav_utoku := 1 ;
2278: LD_ADDR_EXP 56
2282: PUSH
2283: LD_INT 1
2285: ST_TO_ADDR
// end ; 2 :
2286: GO 2347
2288: LD_INT 2
2290: DOUBLE
2291: EQUAL
2292: IFTRUE 2296
2294: GO 2327
2296: POP
// begin play_dialog_qwbw2 ;
2297: CALL 10936 0 0
// posily_go := true ;
2301: LD_ADDR_EXP 65
2305: PUSH
2306: LD_INT 1
2308: ST_TO_ADDR
// Reinforcements := true ;
2309: LD_ADDR_EXP 27
2313: PUSH
2314: LD_INT 1
2316: ST_TO_ADDR
// stav_utoku := 2 ;
2317: LD_ADDR_EXP 56
2321: PUSH
2322: LD_INT 2
2324: ST_TO_ADDR
// end ; 3 :
2325: GO 2347
2327: LD_INT 3
2329: DOUBLE
2330: EQUAL
2331: IFTRUE 2335
2333: GO 2346
2335: POP
// begin stav_utoku := 3 end ; end ;
2336: LD_ADDR_EXP 56
2340: PUSH
2341: LD_INT 3
2343: ST_TO_ADDR
2344: GO 2347
2346: POP
// ChangeMissionObjectives ( M7 ) ;
2347: LD_STRING M7
2349: PPUSH
2350: CALL_OW 337
// objAttack := true ;
2354: LD_ADDR_EXP 24
2358: PUSH
2359: LD_INT 1
2361: ST_TO_ADDR
// play_dialog_19 ;
2362: CALL 11023 0 0
// WBWAttacked := true ;
2366: LD_ADDR_EXP 16
2370: PUSH
2371: LD_INT 1
2373: ST_TO_ADDR
// end ; if ( not InWest ) and ListAttacks ( BurlakOut , WBW ) and ( not d19a ) then
2374: LD_EXP 28
2378: NOT
2379: PUSH
2380: LD_EXP 12
2384: PPUSH
2385: LD_EXP 9
2389: PPUSH
2390: CALL 1664 0 2
2394: AND
2395: PUSH
2396: LD_EXP 32
2400: NOT
2401: AND
2402: IFFALSE 2439
// begin wait ( 0 0$5 ) ;
2404: LD_INT 175
2406: PPUSH
2407: CALL_OW 67
// if ListAttacks ( BurlakOut , WBW ) then
2411: LD_EXP 12
2415: PPUSH
2416: LD_EXP 9
2420: PPUSH
2421: CALL 1664 0 2
2425: IFFALSE 2439
// begin play_dialog_19a ;
2427: CALL 11134 0 0
// d19a := true ;
2431: LD_ADDR_EXP 32
2435: PUSH
2436: LD_INT 1
2438: ST_TO_ADDR
// end ; end ; if ( not InWest ) then
2439: LD_EXP 28
2443: NOT
2444: IFFALSE 2449
// enable else
2446: ENABLE
2447: GO 2450
// disable ;
2449: DISABLE
// end ;
2450: END
// every 0 0$5 trigger FilterUnitsInArea ( Am_base , [ [ f_OK ] , [ f_side , Amici ] , [ f_btype , b_breastwork ] ] ) do var pom ;
2451: LD_INT 9
2453: PPUSH
2454: LD_INT 50
2456: PUSH
2457: EMPTY
2458: LIST
2459: PUSH
2460: LD_INT 22
2462: PUSH
2463: LD_EXP 2
2467: PUSH
2468: EMPTY
2469: LIST
2470: LIST
2471: PUSH
2472: LD_INT 30
2474: PUSH
2475: LD_INT 31
2477: PUSH
2478: EMPTY
2479: LIST
2480: LIST
2481: PUSH
2482: EMPTY
2483: LIST
2484: LIST
2485: LIST
2486: PPUSH
2487: CALL_OW 70
2491: IFFALSE 2626
2493: GO 2495
2495: DISABLE
2496: LD_INT 0
2498: PPUSH
// begin pom := FilterUnitsInArea ( Am_base , [ [ f_OK ] , [ f_side , Amici ] , [ f_btype , b_breastwork ] ] ) ;
2499: LD_ADDR_VAR 0 1
2503: PUSH
2504: LD_INT 9
2506: PPUSH
2507: LD_INT 50
2509: PUSH
2510: EMPTY
2511: LIST
2512: PUSH
2513: LD_INT 22
2515: PUSH
2516: LD_EXP 2
2520: PUSH
2521: EMPTY
2522: LIST
2523: LIST
2524: PUSH
2525: LD_INT 30
2527: PUSH
2528: LD_INT 31
2530: PUSH
2531: EMPTY
2532: LIST
2533: LIST
2534: PUSH
2535: EMPTY
2536: LIST
2537: LIST
2538: LIST
2539: PPUSH
2540: CALL_OW 70
2544: ST_TO_ADDR
// BWW_1 = pom [ 1 ] ;
2545: LD_ADDR_EXP 71
2549: PUSH
2550: LD_VAR 0 1
2554: PUSH
2555: LD_INT 1
2557: ARRAY
2558: ST_TO_ADDR
// enable ( 101 ) ;
2559: LD_INT 101
2561: ENABLE_MARKED
// WBW := [ BWW_1 ] ;
2562: LD_ADDR_EXP 9
2566: PUSH
2567: LD_EXP 71
2571: PUSH
2572: EMPTY
2573: LIST
2574: ST_TO_ADDR
// if pom + 0 > 1 then
2575: LD_VAR 0 1
2579: PUSH
2580: LD_INT 0
2582: PLUS
2583: PUSH
2584: LD_INT 1
2586: GREATER
2587: IFFALSE 2625
// begin BWW_2 := pom [ 2 ] ;
2589: LD_ADDR_EXP 72
2593: PUSH
2594: LD_VAR 0 1
2598: PUSH
2599: LD_INT 2
2601: ARRAY
2602: ST_TO_ADDR
// WBW := WBW ^ [ BWW_2 ] ;
2603: LD_ADDR_EXP 9
2607: PUSH
2608: LD_EXP 9
2612: PUSH
2613: LD_EXP 72
2617: PUSH
2618: EMPTY
2619: LIST
2620: ADD
2621: ST_TO_ADDR
// disable ;
2622: DISABLE
// end else
2623: GO 2626
// begin enable ;
2625: ENABLE
// end ; end ;
2626: PPOPN 1
2628: END
// every 0 0$3 trigger ( UnitFilter ( WBW , [ [ f_OK ] , [ f_side , amici ] ] ) = 0 ) marked 101 do
2629: LD_EXP 9
2633: PPUSH
2634: LD_INT 50
2636: PUSH
2637: EMPTY
2638: LIST
2639: PUSH
2640: LD_INT 22
2642: PUSH
2643: LD_EXP 2
2647: PUSH
2648: EMPTY
2649: LIST
2650: LIST
2651: PUSH
2652: EMPTY
2653: LIST
2654: LIST
2655: PPUSH
2656: CALL_OW 72
2660: PUSH
2661: LD_INT 0
2663: EQUAL
2664: IFFALSE 2699
2666: GO 2668
2668: DISABLE
// begin play_dialog_20 ;
2669: CALL 11366 0 0
// WBWDestroyed := true ;
2673: LD_ADDR_EXP 17
2677: PUSH
2678: LD_INT 1
2680: ST_TO_ADDR
// if objAttack then
2681: LD_EXP 24
2685: IFFALSE 2694
// ChangeMissionObjectives ( M8 ) ;
2687: LD_STRING M8
2689: PPUSH
2690: CALL_OW 337
// ShouldReturn ;
2694: CALL 1995 0 0
// disable end ;
2698: DISABLE
2699: END
// every 0 0$5 trigger ListSee ( you , EBW ) or ListAttacks ( EBW , BurlakOut ) do var pom ;
2700: LD_EXP 1
2704: PPUSH
2705: LD_EXP 10
2709: PPUSH
2710: CALL 1725 0 2
2714: PUSH
2715: LD_EXP 10
2719: PPUSH
2720: LD_EXP 12
2724: PPUSH
2725: CALL 1664 0 2
2729: OR
2730: IFFALSE 2751
2732: GO 2734
2734: DISABLE
2735: LD_INT 0
2737: PPUSH
// begin play_dialog_16 ;
2738: CALL 11221 0 0
// EBWSpotted := true ;
2742: LD_ADDR_EXP 19
2746: PUSH
2747: LD_INT 1
2749: ST_TO_ADDR
// disable ;
2750: DISABLE
// end ;
2751: PPOPN 1
2753: END
// every 0 0$3 trigger ( UnitFilter ( EBW , [ f_OK ] ) = 0 ) do
2754: LD_EXP 10
2758: PPUSH
2759: LD_INT 50
2761: PUSH
2762: EMPTY
2763: LIST
2764: PPUSH
2765: CALL_OW 72
2769: PUSH
2770: LD_INT 0
2772: EQUAL
2773: IFFALSE 2791
2775: GO 2777
2777: DISABLE
// begin play_dialog_20a ;
2778: CALL 11429 0 0
// EBWDestroyed := true ;
2782: LD_ADDR_EXP 20
2786: PUSH
2787: LD_INT 1
2789: ST_TO_ADDR
// disable end ;
2790: DISABLE
2791: END
// every 0 0$5 trigger ( BurlakInArea ( Test4 ) ) do
2792: LD_INT 12
2794: PPUSH
2795: CALL 1785 0 1
2799: IFFALSE 2897
2801: GO 2803
2803: DISABLE
// begin if ( not objBelkov ) and ( IsOK ( Bel ) ) then
2804: LD_EXP 25
2808: NOT
2809: PUSH
2810: LD_EXP 49
2814: PPUSH
2815: CALL_OW 302
2819: AND
2820: IFFALSE 2888
// begin objBelkov := true ;
2822: LD_ADDR_EXP 25
2826: PUSH
2827: LD_INT 1
2829: ST_TO_ADDR
// case query ( QAttackAm ) of 1 :
2830: LD_STRING QAttackAm
2832: PPUSH
2833: CALL_OW 97
2837: PUSH
2838: LD_INT 1
2840: DOUBLE
2841: EQUAL
2842: IFTRUE 2846
2844: GO 2853
2846: POP
// play_dialog_qAtAm1 ; 2 :
2847: CALL 11492 0 0
2851: GO 2877
2853: LD_INT 2
2855: DOUBLE
2856: EQUAL
2857: IFTRUE 2861
2859: GO 2876
2861: POP
// begin play_dialog_qAtAm2 ;
2862: CALL 11555 0 0
// posily_go = true ;
2866: LD_ADDR_EXP 65
2870: PUSH
2871: LD_INT 1
2873: ST_TO_ADDR
// end ; end ;
2874: GO 2877
2876: POP
// ChangeMissionObjectives ( M9 ) ;
2877: LD_STRING M9
2879: PPUSH
2880: CALL_OW 337
// play_dialog_23 ;
2884: CALL 11671 0 0
// end ; QAttAm := true ;
2888: LD_ADDR_EXP 23
2892: PUSH
2893: LD_INT 1
2895: ST_TO_ADDR
// disable end ;
2896: DISABLE
2897: END
// every 0 0$5 trigger ( BurlakInArea ( belkov_kop ) ) do var i ;
2898: LD_INT 25
2900: PPUSH
2901: CALL 1785 0 1
2905: IFFALSE 3054
2907: GO 2909
2909: DISABLE
2910: LD_INT 0
2912: PPUSH
// begin if ( not objBelkov ) then
2913: LD_EXP 25
2917: NOT
2918: IFFALSE 2922
// exit ;
2920: GO 3054
// play_dialog_24 ;
2922: CALL 11745 0 0
// BelkovFreed := true ;
2926: LD_ADDR_EXP 13
2930: PUSH
2931: LD_INT 1
2933: ST_TO_ADDR
// if objBelkov then
2934: LD_EXP 25
2938: IFFALSE 2947
// ChangeMissionObjectives ( M9a ) ;
2940: LD_STRING M9a
2942: PPUSH
2943: CALL_OW 337
// if ( WBWSpotted ) and ( not WBWDestroyed ) and ( not objAttack ) then
2947: LD_EXP 15
2951: PUSH
2952: LD_EXP 17
2956: NOT
2957: AND
2958: PUSH
2959: LD_EXP 24
2963: NOT
2964: AND
2965: IFFALSE 2990
// begin ChangeMissionObjectives ( M7 ) ;
2967: LD_STRING M7
2969: PPUSH
2970: CALL_OW 337
// objAttack := true ;
2974: LD_ADDR_EXP 24
2978: PUSH
2979: LD_INT 1
2981: ST_TO_ADDR
// stav_utoku := 1 ;
2982: LD_ADDR_EXP 56
2986: PUSH
2987: LD_INT 1
2989: ST_TO_ADDR
// end ; BelkovComp = FilterUnitsInArea ( Belkov_kop_prebarvi , [ [ f_side , You2 ] ] ) ;
2990: LD_ADDR_EXP 14
2994: PUSH
2995: LD_INT 31
2997: PPUSH
2998: LD_INT 22
3000: PUSH
3001: LD_EXP 4
3005: PUSH
3006: EMPTY
3007: LIST
3008: LIST
3009: PUSH
3010: EMPTY
3011: LIST
3012: PPUSH
3013: CALL_OW 70
3017: ST_TO_ADDR
// for i in BelkovComp do
3018: LD_ADDR_VAR 0 1
3022: PUSH
3023: LD_EXP 14
3027: PUSH
3028: FOR_IN
3029: IFFALSE 3047
// SetSide ( i , You ) ;
3031: LD_VAR 0 1
3035: PPUSH
3036: LD_EXP 1
3040: PPUSH
3041: CALL_OW 235
3045: GO 3028
3047: POP
3048: POP
// ShouldReturn ;
3049: CALL 1995 0 0
// disable end ;
3053: DISABLE
3054: PPOPN 1
3056: END
// every 0 0$10 do var pom ;
3057: GO 3059
3059: DISABLE
3060: LD_INT 0
3062: PPUSH
// begin pom = SeeGreyArea ( You , Narea ) ;
3063: LD_ADDR_VAR 0 1
3067: PUSH
3068: LD_EXP 1
3072: PPUSH
3073: LD_INT 24
3075: PPUSH
3076: CALL_OW 452
3080: ST_TO_ADDR
// if pom >= procento_odkrytych_pro_vyhru [ difficulty ] then
3081: LD_VAR 0 1
3085: PUSH
3086: LD_EXP 39
3090: PUSH
3091: LD_OWVAR 67
3095: ARRAY
3096: GREATEREQUAL
3097: IFFALSE 3120
// begin ChangeMissionObjectives ( M10 ) ;
3099: LD_STRING M10
3101: PPUSH
3102: CALL_OW 337
// Charted := true ;
3106: LD_ADDR_EXP 22
3110: PUSH
3111: LD_INT 1
3113: ST_TO_ADDR
// ShouldReturn ;
3114: CALL 1995 0 0
// end else
3118: GO 3121
// enable ;
3120: ENABLE
// end ;
3121: PPOPN 1
3123: END
// every 0 0$5 trigger ( not BurlakInArea ( RU2_base ) ) marked 99 do var i ;
3124: LD_INT 1
3126: PPUSH
3127: CALL 1785 0 1
3131: NOT
3132: IFFALSE 3252
3134: GO 3136
3136: DISABLE
3137: LD_INT 0
3139: PPUSH
// begin BurlakComp := UnitFilter ( BurlakComp , [ f_alive ] ) ;
3140: LD_ADDR_EXP 11
3144: PUSH
3145: LD_EXP 11
3149: PPUSH
3150: LD_INT 51
3152: PUSH
3153: EMPTY
3154: LIST
3155: PPUSH
3156: CALL_OW 72
3160: ST_TO_ADDR
// BurlakOut := [ ] ;
3161: LD_ADDR_EXP 12
3165: PUSH
3166: EMPTY
3167: ST_TO_ADDR
// for i in BurlakComp do
3168: LD_ADDR_VAR 0 1
3172: PUSH
3173: LD_EXP 11
3177: PUSH
3178: FOR_IN
3179: IFFALSE 3217
// begin if ( not IsInArea ( i , Ru2_base ) ) then
3181: LD_VAR 0 1
3185: PPUSH
3186: LD_INT 1
3188: PPUSH
3189: CALL_OW 308
3193: NOT
3194: IFFALSE 3215
// BurlakOut := BurlakOut ^ [ i ] ;
3196: LD_ADDR_EXP 12
3200: PUSH
3201: LD_EXP 12
3205: PUSH
3206: LD_VAR 0 1
3210: PUSH
3211: EMPTY
3212: LIST
3213: ADD
3214: ST_TO_ADDR
// end ;
3215: GO 3178
3217: POP
3218: POP
// if BurlakOut + 0 > 0 then
3219: LD_EXP 12
3223: PUSH
3224: LD_INT 0
3226: PLUS
3227: PUSH
3228: LD_INT 0
3230: GREATER
3231: IFFALSE 3243
// CanReturn := true else
3233: LD_ADDR_EXP 30
3237: PUSH
3238: LD_INT 1
3240: ST_TO_ADDR
3241: GO 3251
// CanReturn := false ;
3243: LD_ADDR_EXP 30
3247: PUSH
3248: LD_INT 0
3250: ST_TO_ADDR
// enable ;
3251: ENABLE
// end ;
3252: PPOPN 1
3254: END
// every 0 0$5 trigger ( BurlakInArea ( RU2_base ) ) marked 100 do var i ;
3255: LD_INT 1
3257: PPUSH
3258: CALL 1785 0 1
3262: IFFALSE 3599
3264: GO 3266
3266: DISABLE
3267: LD_INT 0
3269: PPUSH
// begin enable ;
3270: ENABLE
// if objReturn then
3271: LD_EXP 26
3275: IFFALSE 3328
// begin for i in BurlakComp do
3277: LD_ADDR_VAR 0 1
3281: PUSH
3282: LD_EXP 11
3286: PUSH
3287: FOR_IN
3288: IFFALSE 3311
// begin if not IsInArea ( i , RU2_base ) then
3290: LD_VAR 0 1
3294: PPUSH
3295: LD_INT 1
3297: PPUSH
3298: CALL_OW 308
3302: NOT
3303: IFFALSE 3309
// exit ;
3305: POP
3306: POP
3307: GO 3599
// end ;
3309: GO 3287
3311: POP
3312: POP
// ChangeMissionObjectives ( M10b ) ;
3313: LD_STRING M10b
3315: PPUSH
3316: CALL_OW 337
// objReturn := false ;
3320: LD_ADDR_EXP 26
3324: PUSH
3325: LD_INT 0
3327: ST_TO_ADDR
// end ; if Charted and WBWDestroyed and ( BelkovFreed or not ( IsOK ( Bel ) ) ) then
3328: LD_EXP 22
3332: PUSH
3333: LD_EXP 17
3337: AND
3338: PUSH
3339: LD_EXP 13
3343: PUSH
3344: LD_EXP 49
3348: PPUSH
3349: CALL_OW 302
3353: NOT
3354: OR
3355: AND
3356: IFFALSE 3371
// begin konec_mise ;
3358: CALL 228 0 0
// wait ( 0 0$1 ) ;
3362: LD_INT 35
3364: PPUSH
3365: CALL_OW 67
// exit ;
3369: GO 3599
// end ; if Charted and WBWDestroyed and ( not objBelkov ) and ( IsOK ( Bel ) ) then
3371: LD_EXP 22
3375: PUSH
3376: LD_EXP 17
3380: AND
3381: PUSH
3382: LD_EXP 25
3386: NOT
3387: AND
3388: PUSH
3389: LD_EXP 49
3393: PPUSH
3394: CALL_OW 302
3398: AND
3399: IFFALSE 3453
// begin case Query ( QContMission ) of 1 :
3401: LD_STRING QContMission
3403: PPUSH
3404: CALL_OW 97
3408: PUSH
3409: LD_INT 1
3411: DOUBLE
3412: EQUAL
3413: IFTRUE 3417
3415: GO 3424
3417: POP
// konec_mise ; 2 :
3418: CALL 228 0 0
3422: GO 3451
3424: LD_INT 2
3426: DOUBLE
3427: EQUAL
3428: IFTRUE 3432
3430: GO 3450
3432: POP
// begin ChangeMissionObjectives ( M9 ) ;
3433: LD_STRING M9
3435: PPUSH
3436: CALL_OW 337
// objBelkov := true ;
3440: LD_ADDR_EXP 25
3444: PUSH
3445: LD_INT 1
3447: ST_TO_ADDR
// end ; end ;
3448: GO 3451
3450: POP
// exit ;
3451: GO 3599
// end ; if not CanReturn then
3453: LD_EXP 30
3457: NOT
3458: IFFALSE 3462
// exit ;
3460: GO 3599
// CanReturn := false ;
3462: LD_ADDR_EXP 30
3466: PUSH
3467: LD_INT 0
3469: ST_TO_ADDR
// if ( not WBWDestroyed ) or ( not EBWDestroyed ) then
3470: LD_EXP 17
3474: NOT
3475: PUSH
3476: LD_EXP 20
3480: NOT
3481: OR
3482: IFFALSE 3501
// begin if not BeriaVisited then
3484: LD_EXP 29
3488: NOT
3489: IFFALSE 3497
// play_dialog_25 else
3491: CALL 11941 0 0
3495: GO 3501
// play_dialog_25a ;
3497: CALL 12204 0 0
// end ; BeriaVisited := true ;
3501: LD_ADDR_EXP 29
3505: PUSH
3506: LD_INT 1
3508: ST_TO_ADDR
// if WBWSpotted and ( not WBWDestroyed ) and ( not Reinforcements ) then
3509: LD_EXP 15
3513: PUSH
3514: LD_EXP 17
3518: NOT
3519: AND
3520: PUSH
3521: LD_EXP 27
3525: NOT
3526: AND
3527: IFFALSE 3581
// begin play_dialog_25b ;
3529: CALL 12391 0 0
// posily_go := true ;
3533: LD_ADDR_EXP 65
3537: PUSH
3538: LD_INT 1
3540: ST_TO_ADDR
// Reinforcements := true ;
3541: LD_ADDR_EXP 27
3545: PUSH
3546: LD_INT 1
3548: ST_TO_ADDR
// if ( not objAttack ) then
3549: LD_EXP 24
3553: NOT
3554: IFFALSE 3579
// begin ChangeMissionObjectives ( M7 ) ;
3556: LD_STRING M7
3558: PPUSH
3559: CALL_OW 337
// objAttack := true ;
3563: LD_ADDR_EXP 24
3567: PUSH
3568: LD_INT 1
3570: ST_TO_ADDR
// stav_utoku := 1 ;
3571: LD_ADDR_EXP 56
3575: PUSH
3576: LD_INT 1
3578: ST_TO_ADDR
// end ; exit ;
3579: GO 3599
// end ; if ( not Charted ) or ( not WBWSpotted ) then
3581: LD_EXP 22
3585: NOT
3586: PUSH
3587: LD_EXP 15
3591: NOT
3592: OR
3593: IFFALSE 3599
// begin play_dialog_25c ;
3595: CALL 12442 0 0
// end ; end ; end_of_file
3599: PPOPN 1
3601: END
// export AMICI_PAST_LIST ; export AMICI_STAVENI_BASE_LIST ; export AMICI_UTOK_BELKOV_LIST ; var ah , av ; export function get_human ( sex , clas , level , name ) ; var pom ; begin
3602: LD_INT 0
3604: PPUSH
3605: PPUSH
// PrepareHuman ( sex , clas , level ) ;
3606: LD_VAR 0 1
3610: PPUSH
3611: LD_VAR 0 2
3615: PPUSH
3616: LD_VAR 0 3
3620: PPUSH
3621: CALL_OW 380
// hc_name := name ;
3625: LD_ADDR_OWVAR 26
3629: PUSH
3630: LD_VAR 0 4
3634: ST_TO_ADDR
// pom = CreateHuman ;
3635: LD_ADDR_VAR 0 6
3639: PUSH
3640: CALL_OW 44
3644: ST_TO_ADDR
// result := pom ;
3645: LD_ADDR_VAR 0 5
3649: PUSH
3650: LD_VAR 0 6
3654: ST_TO_ADDR
// end ;
3655: LD_VAR 0 5
3659: RET
// export function amici_breast ; begin
3660: LD_INT 0
3662: PPUSH
// uc_nation = nation_american ;
3663: LD_ADDR_OWVAR 21
3667: PUSH
3668: LD_INT 1
3670: ST_TO_ADDR
// uc_side = Amici ;
3671: LD_ADDR_OWVAR 20
3675: PUSH
3676: LD_EXP 2
3680: ST_TO_ADDR
// ah = get_human ( sex_male , class_soldier , LEVELY_AMICI [ difficulty ] , David Love ) ;
3681: LD_ADDR_LOC 1
3685: PUSH
3686: LD_INT 1
3688: PPUSH
3689: LD_INT 1
3691: PPUSH
3692: LD_EXP 37
3696: PUSH
3697: LD_OWVAR 67
3701: ARRAY
3702: PPUSH
3703: LD_STRING David Love
3705: PPUSH
3706: CALL 3602 0 4
3710: ST_TO_ADDR
// PlaceUnitXY ( ah , 107 , 63 , false ) ;
3711: LD_LOC 1
3715: PPUSH
3716: LD_INT 107
3718: PPUSH
3719: LD_INT 63
3721: PPUSH
3722: LD_INT 0
3724: PPUSH
3725: CALL_OW 48
// ComMoveXY ( ah , 92 , 56 ) ;
3729: LD_LOC 1
3733: PPUSH
3734: LD_INT 92
3736: PPUSH
3737: LD_INT 56
3739: PPUSH
3740: CALL_OW 111
// ABW1 = ah ;
3744: LD_ADDR_EXP 73
3748: PUSH
3749: LD_LOC 1
3753: ST_TO_ADDR
// AddComEnterUnit ( ah , am_bre1 ) ;
3754: LD_LOC 1
3758: PPUSH
3759: LD_INT 30
3761: PPUSH
3762: CALL_OW 180
// ah = get_human ( sex_male , class_soldier , LEVELY_AMICI [ difficulty ] , John Kraninger ) ;
3766: LD_ADDR_LOC 1
3770: PUSH
3771: LD_INT 1
3773: PPUSH
3774: LD_INT 1
3776: PPUSH
3777: LD_EXP 37
3781: PUSH
3782: LD_OWVAR 67
3786: ARRAY
3787: PPUSH
3788: LD_STRING John Kraninger
3790: PPUSH
3791: CALL 3602 0 4
3795: ST_TO_ADDR
// PlaceUnitXY ( ah , 106 , 65 , false ) ;
3796: LD_LOC 1
3800: PPUSH
3801: LD_INT 106
3803: PPUSH
3804: LD_INT 65
3806: PPUSH
3807: LD_INT 0
3809: PPUSH
3810: CALL_OW 48
// ComMoveXY ( ah , 95 , 61 ) ;
3814: LD_LOC 1
3818: PPUSH
3819: LD_INT 95
3821: PPUSH
3822: LD_INT 61
3824: PPUSH
3825: CALL_OW 111
// AddComEnterUnit ( ah , am_bre2 ) ;
3829: LD_LOC 1
3833: PPUSH
3834: LD_INT 31
3836: PPUSH
3837: CALL_OW 180
// ABW2 = ah ;
3841: LD_ADDR_EXP 74
3845: PUSH
3846: LD_LOC 1
3850: ST_TO_ADDR
// end ;
3851: LD_VAR 0 1
3855: RET
// function get_sex ; begin
3856: LD_INT 0
3858: PPUSH
// if Prob ( 20 ) then
3859: LD_INT 20
3861: PPUSH
3862: CALL_OW 13
3866: IFFALSE 3878
// result = sex_female else
3868: LD_ADDR_VAR 0 1
3872: PUSH
3873: LD_INT 2
3875: ST_TO_ADDR
3876: GO 3886
// result = sex_male ;
3878: LD_ADDR_VAR 0 1
3882: PUSH
3883: LD_INT 1
3885: ST_TO_ADDR
// end ;
3886: LD_VAR 0 1
3890: RET
// export function create_amici_past ; var i ; var a ; var p_vojaku ; begin
3891: LD_INT 0
3893: PPUSH
3894: PPUSH
3895: PPUSH
3896: PPUSH
// a = [ ] ;
3897: LD_ADDR_VAR 0 3
3901: PUSH
3902: EMPTY
3903: ST_TO_ADDR
// p_vojaku = amici_past_pocet [ difficulty ] ;
3904: LD_ADDR_VAR 0 4
3908: PUSH
3909: LD_EXP 38
3913: PUSH
3914: LD_OWVAR 67
3918: ARRAY
3919: ST_TO_ADDR
// a = get_human ( sex_male , class_soldier , LEVELY_AMICI [ difficulty ] + 1 ,  ) ;
3920: LD_ADDR_VAR 0 3
3924: PUSH
3925: LD_INT 1
3927: PPUSH
3928: LD_INT 1
3930: PPUSH
3931: LD_EXP 37
3935: PUSH
3936: LD_OWVAR 67
3940: ARRAY
3941: PUSH
3942: LD_INT 1
3944: PLUS
3945: PPUSH
3946: LD_STRING 
3948: PPUSH
3949: CALL 3602 0 4
3953: ST_TO_ADDR
// for i := 1 to p_vojaku - 1 do
3954: LD_ADDR_VAR 0 2
3958: PUSH
3959: DOUBLE
3960: LD_INT 1
3962: DEC
3963: ST_TO_ADDR
3964: LD_VAR 0 4
3968: PUSH
3969: LD_INT 1
3971: MINUS
3972: PUSH
3973: FOR_TO
3974: IFFALSE 4020
// a = a ^ get_human ( get_sex , class_soldier , LEVELY_AMICI [ difficulty ] + 1 ,  ) ;
3976: LD_ADDR_VAR 0 3
3980: PUSH
3981: LD_VAR 0 3
3985: PUSH
3986: CALL 3856 0 0
3990: PPUSH
3991: LD_INT 1
3993: PPUSH
3994: LD_EXP 37
3998: PUSH
3999: LD_OWVAR 67
4003: ARRAY
4004: PUSH
4005: LD_INT 1
4007: PLUS
4008: PPUSH
4009: LD_STRING 
4011: PPUSH
4012: CALL 3602 0 4
4016: ADD
4017: ST_TO_ADDR
4018: GO 3973
4020: POP
4021: POP
// AMICI_PAST_LIST = a ;
4022: LD_ADDR_EXP 34
4026: PUSH
4027: LD_VAR 0 3
4031: ST_TO_ADDR
// end ;
4032: LD_VAR 0 1
4036: RET
// export function create_amici_staveni_w ; var a ; begin
4037: LD_INT 0
4039: PPUSH
4040: PPUSH
// a = get_human ( get_sex , class_soldier , LEVELY_AMICI [ difficulty ] ,  ) ;
4041: LD_ADDR_VAR 0 2
4045: PUSH
4046: CALL 3856 0 0
4050: PPUSH
4051: LD_INT 1
4053: PPUSH
4054: LD_EXP 37
4058: PUSH
4059: LD_OWVAR 67
4063: ARRAY
4064: PPUSH
4065: LD_STRING 
4067: PPUSH
4068: CALL 3602 0 4
4072: ST_TO_ADDR
// a = a ^ get_human ( get_sex , class_soldier , LEVELY_AMICI [ difficulty ] ,  ) ;
4073: LD_ADDR_VAR 0 2
4077: PUSH
4078: LD_VAR 0 2
4082: PUSH
4083: CALL 3856 0 0
4087: PPUSH
4088: LD_INT 1
4090: PPUSH
4091: LD_EXP 37
4095: PUSH
4096: LD_OWVAR 67
4100: ARRAY
4101: PPUSH
4102: LD_STRING 
4104: PPUSH
4105: CALL 3602 0 4
4109: ADD
4110: ST_TO_ADDR
// a = a ^ get_human ( get_sex , class_engineer , LEVELY_AMICI [ difficulty ] ,  ) ;
4111: LD_ADDR_VAR 0 2
4115: PUSH
4116: LD_VAR 0 2
4120: PUSH
4121: CALL 3856 0 0
4125: PPUSH
4126: LD_INT 2
4128: PPUSH
4129: LD_EXP 37
4133: PUSH
4134: LD_OWVAR 67
4138: ARRAY
4139: PPUSH
4140: LD_STRING 
4142: PPUSH
4143: CALL 3602 0 4
4147: ADD
4148: ST_TO_ADDR
// a = a ^ get_human ( get_sex , class_engineer , LEVELY_AMICI [ difficulty ] ,  ) ;
4149: LD_ADDR_VAR 0 2
4153: PUSH
4154: LD_VAR 0 2
4158: PUSH
4159: CALL 3856 0 0
4163: PPUSH
4164: LD_INT 2
4166: PPUSH
4167: LD_EXP 37
4171: PUSH
4172: LD_OWVAR 67
4176: ARRAY
4177: PPUSH
4178: LD_STRING 
4180: PPUSH
4181: CALL 3602 0 4
4185: ADD
4186: ST_TO_ADDR
// AMICI_STAVENI_BASE_LIST = a ;
4187: LD_ADDR_EXP 35
4191: PUSH
4192: LD_VAR 0 2
4196: ST_TO_ADDR
// end ;
4197: LD_VAR 0 1
4201: RET
// export function vyber_cloveka ( list , cla ) ; var i ; var a ; begin
4202: LD_INT 0
4204: PPUSH
4205: PPUSH
4206: PPUSH
// a = 0 ;
4207: LD_ADDR_VAR 0 5
4211: PUSH
4212: LD_INT 0
4214: ST_TO_ADDR
// for i in list do
4215: LD_ADDR_VAR 0 4
4219: PUSH
4220: LD_VAR 0 1
4224: PUSH
4225: FOR_IN
4226: IFFALSE 4257
// if GetClass ( i ) = cla then
4228: LD_VAR 0 4
4232: PPUSH
4233: CALL_OW 257
4237: PUSH
4238: LD_VAR 0 2
4242: EQUAL
4243: IFFALSE 4255
// a = i ;
4245: LD_ADDR_VAR 0 5
4249: PUSH
4250: LD_VAR 0 4
4254: ST_TO_ADDR
4255: GO 4225
4257: POP
4258: POP
// result = a ;
4259: LD_ADDR_VAR 0 3
4263: PUSH
4264: LD_VAR 0 5
4268: ST_TO_ADDR
// end ;
4269: LD_VAR 0 3
4273: RET
// export function create_utok_na_belkova ; var pom ; begin
4274: LD_INT 0
4276: PPUSH
4277: PPUSH
// uc_side = Amici ;
4278: LD_ADDR_OWVAR 20
4282: PUSH
4283: LD_EXP 2
4287: ST_TO_ADDR
// uc_nation = nation_american ;
4288: LD_ADDR_OWVAR 21
4292: PUSH
4293: LD_INT 1
4295: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , LEVELY_AMICI [ difficulty ] ,  ) ;
4296: LD_ADDR_VAR 0 2
4300: PUSH
4301: CALL 3856 0 0
4305: PPUSH
4306: LD_INT 1
4308: PPUSH
4309: LD_EXP 37
4313: PUSH
4314: LD_OWVAR 67
4318: ARRAY
4319: PPUSH
4320: LD_STRING 
4322: PPUSH
4323: CALL 3602 0 4
4327: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , LEVELY_AMICI [ difficulty ] ,  ) ;
4328: LD_ADDR_VAR 0 2
4332: PUSH
4333: LD_VAR 0 2
4337: PUSH
4338: CALL 3856 0 0
4342: PPUSH
4343: LD_INT 1
4345: PPUSH
4346: LD_EXP 37
4350: PUSH
4351: LD_OWVAR 67
4355: ARRAY
4356: PPUSH
4357: LD_STRING 
4359: PPUSH
4360: CALL 3602 0 4
4364: ADD
4365: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , LEVELY_AMICI [ difficulty ] ,  ) ;
4366: LD_ADDR_VAR 0 2
4370: PUSH
4371: LD_VAR 0 2
4375: PUSH
4376: CALL 3856 0 0
4380: PPUSH
4381: LD_INT 1
4383: PPUSH
4384: LD_EXP 37
4388: PUSH
4389: LD_OWVAR 67
4393: ARRAY
4394: PPUSH
4395: LD_STRING 
4397: PPUSH
4398: CALL 3602 0 4
4402: ADD
4403: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , LEVELY_AMICI [ difficulty ] ,  ) ;
4404: LD_ADDR_VAR 0 2
4408: PUSH
4409: LD_VAR 0 2
4413: PUSH
4414: CALL 3856 0 0
4418: PPUSH
4419: LD_INT 1
4421: PPUSH
4422: LD_EXP 37
4426: PUSH
4427: LD_OWVAR 67
4431: ARRAY
4432: PPUSH
4433: LD_STRING 
4435: PPUSH
4436: CALL 3602 0 4
4440: ADD
4441: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , LEVELY_AMICI [ difficulty ] ,  ) ;
4442: LD_ADDR_VAR 0 2
4446: PUSH
4447: LD_VAR 0 2
4451: PUSH
4452: CALL 3856 0 0
4456: PPUSH
4457: LD_INT 1
4459: PPUSH
4460: LD_EXP 37
4464: PUSH
4465: LD_OWVAR 67
4469: ARRAY
4470: PPUSH
4471: LD_STRING 
4473: PPUSH
4474: CALL 3602 0 4
4478: ADD
4479: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , LEVELY_AMICI [ difficulty ] ,  ) ;
4480: LD_ADDR_VAR 0 2
4484: PUSH
4485: LD_VAR 0 2
4489: PUSH
4490: CALL 3856 0 0
4494: PPUSH
4495: LD_INT 1
4497: PPUSH
4498: LD_EXP 37
4502: PUSH
4503: LD_OWVAR 67
4507: ARRAY
4508: PPUSH
4509: LD_STRING 
4511: PPUSH
4512: CALL 3602 0 4
4516: ADD
4517: ST_TO_ADDR
// AMICI_UTOK_BELKOV_LIST = pom ;
4518: LD_ADDR_EXP 36
4522: PUSH
4523: LD_VAR 0 2
4527: ST_TO_ADDR
// end ;
4528: LD_VAR 0 1
4532: RET
// export function create_vojaci_zacatek ; var pom_gny ; begin
4533: LD_INT 0
4535: PPUSH
4536: PPUSH
// uc_nation = nation_russian ;
4537: LD_ADDR_OWVAR 21
4541: PUSH
4542: LD_INT 3
4544: ST_TO_ADDR
// uc_side = You ;
4545: LD_ADDR_OWVAR 20
4549: PUSH
4550: LD_EXP 1
4554: ST_TO_ADDR
// SetSide ( Kurin , You2 ) ;
4555: LD_EXP 50
4559: PPUSH
4560: LD_EXP 4
4564: PPUSH
4565: CALL_OW 235
// PlaceUnitXY ( kurin , 121 , 101 , false ) ;
4569: LD_EXP 50
4573: PPUSH
4574: LD_INT 121
4576: PPUSH
4577: LD_INT 101
4579: PPUSH
4580: LD_INT 0
4582: PPUSH
4583: CALL_OW 48
// Setclass ( bel , class_soldier ) ;
4587: LD_EXP 49
4591: PPUSH
4592: LD_INT 1
4594: PPUSH
4595: CALL_OW 336
// SetSide ( bel , You2 ) ;
4599: LD_EXP 49
4603: PPUSH
4604: LD_EXP 4
4608: PPUSH
4609: CALL_OW 235
// PlaceUnitXY ( bel , 121 , 104 , false ) ;
4613: LD_EXP 49
4617: PPUSH
4618: LD_INT 121
4620: PPUSH
4621: LD_INT 104
4623: PPUSH
4624: LD_INT 0
4626: PPUSH
4627: CALL_OW 48
// SetSide ( kov , You ) ;
4631: LD_EXP 48
4635: PPUSH
4636: LD_EXP 1
4640: PPUSH
4641: CALL_OW 235
// PlaceUnitXY ( kov , 126 , 105 , false ) ;
4645: LD_EXP 48
4649: PPUSH
4650: LD_INT 126
4652: PPUSH
4653: LD_INT 105
4655: PPUSH
4656: LD_INT 0
4658: PPUSH
4659: CALL_OW 48
// SetClass ( bur , class_mechanic ) ;
4663: LD_EXP 47
4667: PPUSH
4668: LD_INT 3
4670: PPUSH
4671: CALL_OW 336
// SetSide ( bur , You ) ;
4675: LD_EXP 47
4679: PPUSH
4680: LD_EXP 1
4684: PPUSH
4685: CALL_OW 235
// PlaceUnitXY ( bur , 124 , 105 , false ) ;
4689: LD_EXP 47
4693: PPUSH
4694: LD_INT 124
4696: PPUSH
4697: LD_INT 105
4699: PPUSH
4700: LD_INT 0
4702: PPUSH
4703: CALL_OW 48
// if gny <> 0 then
4707: LD_EXP 46
4711: PUSH
4712: LD_INT 0
4714: NONEQUAL
4715: IFFALSE 4763
// begin SetClass ( gny , class_soldier ) ;
4717: LD_EXP 46
4721: PPUSH
4722: LD_INT 1
4724: PPUSH
4725: CALL_OW 336
// SetSide ( gny , You ) ;
4729: LD_EXP 46
4733: PPUSH
4734: LD_EXP 1
4738: PPUSH
4739: CALL_OW 235
// PlaceUnitXY ( gny , 120 , 103 , false ) ;
4743: LD_EXP 46
4747: PPUSH
4748: LD_INT 120
4750: PPUSH
4751: LD_INT 103
4753: PPUSH
4754: LD_INT 0
4756: PPUSH
4757: CALL_OW 48
// end else
4761: GO 4803
// begin pom_gny = get_human ( sex_male , class_soldier , 2 ,  ) ;
4763: LD_ADDR_VAR 0 2
4767: PUSH
4768: LD_INT 1
4770: PPUSH
4771: LD_INT 1
4773: PPUSH
4774: LD_INT 2
4776: PPUSH
4777: LD_STRING 
4779: PPUSH
4780: CALL 3602 0 4
4784: ST_TO_ADDR
// PlaceUnitXY ( pom_gny , 120 , 103 , false ) ;
4785: LD_VAR 0 2
4789: PPUSH
4790: LD_INT 120
4792: PPUSH
4793: LD_INT 103
4795: PPUSH
4796: LD_INT 0
4798: PPUSH
4799: CALL_OW 48
// end ; SetSide ( plat , You3 ) ;
4803: LD_EXP 51
4807: PPUSH
4808: LD_EXP 6
4812: PPUSH
4813: CALL_OW 235
// PlaceUnitXY ( plat , 66 , 90 , false ) ;
4817: LD_EXP 51
4821: PPUSH
4822: LD_INT 66
4824: PPUSH
4825: LD_INT 90
4827: PPUSH
4828: LD_INT 0
4830: PPUSH
4831: CALL_OW 48
// end ;
4835: LD_VAR 0 1
4839: RET
// export function nacti_osobu ( ident ) ; begin
4840: LD_INT 0
4842: PPUSH
// if CheckCharacterSet ( ident ) then
4843: LD_VAR 0 1
4847: PPUSH
4848: CALL_OW 29
4852: IFFALSE 4871
// result := CreateCharacter ( ident ) else
4854: LD_ADDR_VAR 0 2
4858: PUSH
4859: LD_VAR 0 1
4863: PPUSH
4864: CALL_OW 34
4868: ST_TO_ADDR
4869: GO 4879
// result := 0 ;
4871: LD_ADDR_VAR 0 2
4875: PUSH
4876: LD_INT 0
4878: ST_TO_ADDR
// end ;
4879: LD_VAR 0 2
4883: RET
// export function place_amik_k_videni ; begin
4884: LD_INT 0
4886: PPUSH
// uc_side = Amici ;
4887: LD_ADDR_OWVAR 20
4891: PUSH
4892: LD_EXP 2
4896: ST_TO_ADDR
// uc_nation = nation_american ;
4897: LD_ADDR_OWVAR 21
4901: PUSH
4902: LD_INT 1
4904: ST_TO_ADDR
// ah = get_human ( get_sex , class_soldier , 3 ,  ) ;
4905: LD_ADDR_LOC 1
4909: PUSH
4910: CALL 3856 0 0
4914: PPUSH
4915: LD_INT 1
4917: PPUSH
4918: LD_INT 3
4920: PPUSH
4921: LD_STRING 
4923: PPUSH
4924: CALL 3602 0 4
4928: ST_TO_ADDR
// PlaceUnitXYR ( ah , 72 , 28 , 3 , false ) ;
4929: LD_LOC 1
4933: PPUSH
4934: LD_INT 72
4936: PPUSH
4937: LD_INT 28
4939: PPUSH
4940: LD_INT 3
4942: PPUSH
4943: LD_INT 0
4945: PPUSH
4946: CALL_OW 50
// result := ah ;
4950: LD_ADDR_VAR 0 1
4954: PUSH
4955: LD_LOC 1
4959: ST_TO_ADDR
// end ; end_of_file
4960: LD_VAR 0 1
4964: RET
// export LEVELY_AMICI ; export amici_past_pocet ; export procento_odkrytych_pro_vyhru ; export cas_na_zachranu_belkova ; export levely_bw_na_zapade ; export levely_bw_na_vychode ; export BELKOV_MRTVY ; export function set_difficulty ; begin
4965: LD_INT 0
4967: PPUSH
// LEVELY_AMICI = [ 1 , 2 , 3 ] ;
4968: LD_ADDR_EXP 37
4972: PUSH
4973: LD_INT 1
4975: PUSH
4976: LD_INT 2
4978: PUSH
4979: LD_INT 3
4981: PUSH
4982: EMPTY
4983: LIST
4984: LIST
4985: LIST
4986: ST_TO_ADDR
// amici_past_pocet = [ 3 , 5 , 7 ] ;
4987: LD_ADDR_EXP 38
4991: PUSH
4992: LD_INT 3
4994: PUSH
4995: LD_INT 5
4997: PUSH
4998: LD_INT 7
5000: PUSH
5001: EMPTY
5002: LIST
5003: LIST
5004: LIST
5005: ST_TO_ADDR
// procento_odkrytych_pro_vyhru = [ 3400 , 3600 , 3800 ] ;
5006: LD_ADDR_EXP 39
5010: PUSH
5011: LD_INT 3400
5013: PUSH
5014: LD_INT 3600
5016: PUSH
5017: LD_INT 3800
5019: PUSH
5020: EMPTY
5021: LIST
5022: LIST
5023: LIST
5024: ST_TO_ADDR
// cas_na_zachranu_belkova = [ 20 20$0 , 15 15$0 , 10 10$0 ] ;
5025: LD_ADDR_EXP 40
5029: PUSH
5030: LD_INT 42000
5032: PUSH
5033: LD_INT 31500
5035: PUSH
5036: LD_INT 21000
5038: PUSH
5039: EMPTY
5040: LIST
5041: LIST
5042: LIST
5043: ST_TO_ADDR
// levely_bw_na_zapade = [ 1 , 2 , 3 ] ;
5044: LD_ADDR_EXP 41
5048: PUSH
5049: LD_INT 1
5051: PUSH
5052: LD_INT 2
5054: PUSH
5055: LD_INT 3
5057: PUSH
5058: EMPTY
5059: LIST
5060: LIST
5061: LIST
5062: ST_TO_ADDR
// levely_bw_na_vychode = [ 1 , 2 , 3 ] ;
5063: LD_ADDR_EXP 42
5067: PUSH
5068: LD_INT 1
5070: PUSH
5071: LD_INT 2
5073: PUSH
5074: LD_INT 3
5076: PUSH
5077: EMPTY
5078: LIST
5079: LIST
5080: LIST
5081: ST_TO_ADDR
// end ;
5082: LD_VAR 0 1
5086: RET
// every 0 0$0.1 do
5087: GO 5089
5089: DISABLE
// begin SetBName ( RU1_dep , kirov ) ;
5090: LD_INT 1
5092: PPUSH
5093: LD_STRING kirov
5095: PPUSH
5096: CALL_OW 500
// SetBName ( RU2_dep , beria ) ;
5100: LD_INT 26
5102: PPUSH
5103: LD_STRING beria
5105: PPUSH
5106: CALL_OW 500
// end ; end_of_file
5110: END
// var prilis_na_north ; var is_out_base ; var wasattack ; var ridic_1_auta ; var je_mimo ; var byl_v_zakladne ; var kecal_s_platonovem ; var znicene_bw ; var bw_e_nasli ; var cont_mission ; var kecy_bw_w ; export navrat_a_konec ; export belkov_solved ; var skurveny_mission_objectiv_uz_prosel ; var konstanta_utoceni ; var kecy_pri_vraceni_belkova ; every 0 0$0.1 do var i ;
5111: GO 5113
5113: DISABLE
5114: LD_INT 0
5116: PPUSH
// begin prilis_na_north = [ 1 , 2 , 4 , 5 , 6 ] ;
5117: LD_ADDR_LOC 3
5121: PUSH
5122: LD_INT 1
5124: PUSH
5125: LD_INT 2
5127: PUSH
5128: LD_INT 4
5130: PUSH
5131: LD_INT 5
5133: PUSH
5134: LD_INT 6
5136: PUSH
5137: EMPTY
5138: LIST
5139: LIST
5140: LIST
5141: LIST
5142: LIST
5143: ST_TO_ADDR
// is_out_base = [ 3 ] ;
5144: LD_ADDR_LOC 4
5148: PUSH
5149: LD_INT 3
5151: PUSH
5152: EMPTY
5153: LIST
5154: ST_TO_ADDR
// bw_e_nasli = false ;
5155: LD_ADDR_LOC 11
5159: PUSH
5160: LD_INT 0
5162: ST_TO_ADDR
// kecy_bw_w = false ;
5163: LD_ADDR_LOC 13
5167: PUSH
5168: LD_INT 0
5170: ST_TO_ADDR
// wasattack = false ;
5171: LD_ADDR_LOC 5
5175: PUSH
5176: LD_INT 0
5178: ST_TO_ADDR
// je_mimo = false ;
5179: LD_ADDR_LOC 7
5183: PUSH
5184: LD_INT 0
5186: ST_TO_ADDR
// byl_v_zakladne = false ;
5187: LD_ADDR_LOC 8
5191: PUSH
5192: LD_INT 0
5194: ST_TO_ADDR
// kecal_s_platonovem = false ;
5195: LD_ADDR_LOC 9
5199: PUSH
5200: LD_INT 0
5202: ST_TO_ADDR
// znicene_bw = false ;
5203: LD_ADDR_LOC 10
5207: PUSH
5208: LD_INT 0
5210: ST_TO_ADDR
// belkov_solved = 1 ;
5211: LD_ADDR_EXP 45
5215: PUSH
5216: LD_INT 1
5218: ST_TO_ADDR
// konstanta_utoceni = 0 ;
5219: LD_ADDR_LOC 15
5223: PUSH
5224: LD_INT 0
5226: ST_TO_ADDR
// navrat_a_konec = false ;
5227: LD_ADDR_EXP 44
5231: PUSH
5232: LD_INT 0
5234: ST_TO_ADDR
// cont_mission = false ;
5235: LD_ADDR_LOC 12
5239: PUSH
5240: LD_INT 0
5242: ST_TO_ADDR
// skurveny_mission_objectiv_uz_prosel = false ;
5243: LD_ADDR_LOC 14
5247: PUSH
5248: LD_INT 0
5250: ST_TO_ADDR
// kecy_pri_vraceni_belkova = 0 ;
5251: LD_ADDR_LOC 16
5255: PUSH
5256: LD_INT 0
5258: ST_TO_ADDR
// for i in [ 991 , 992 ] do
5259: LD_ADDR_VAR 0 1
5263: PUSH
5264: LD_INT 991
5266: PUSH
5267: LD_INT 992
5269: PUSH
5270: EMPTY
5271: LIST
5272: LIST
5273: PUSH
5274: FOR_IN
5275: IFFALSE 5284
// disable ( i ) ;
5277: LD_VAR 0 1
5281: DISABLE_MARKED
5282: GO 5274
5284: POP
5285: POP
// end ;
5286: PPOPN 1
5288: END
// every 0 0$3 do
5289: GO 5291
5291: DISABLE
// begin ComTurnUnit ( kurin , bur ) ;
5292: LD_EXP 50
5296: PPUSH
5297: LD_EXP 47
5301: PPUSH
5302: CALL_OW 119
// ComTurnUnit ( bur , kurin ) ;
5306: LD_EXP 47
5310: PPUSH
5311: LD_EXP 50
5315: PPUSH
5316: CALL_OW 119
// Say ( kurin , D1-Kur-1 ) ;
5320: LD_EXP 50
5324: PPUSH
5325: LD_STRING D1-Kur-1
5327: PPUSH
5328: CALL_OW 88
// Say ( bur , D1-Bur-1 ) ;
5332: LD_EXP 47
5336: PPUSH
5337: LD_STRING D1-Bur-1
5339: PPUSH
5340: CALL_OW 88
// Say ( kurin , D1-Kur-2 ) ;
5344: LD_EXP 50
5348: PPUSH
5349: LD_STRING D1-Kur-2
5351: PPUSH
5352: CALL_OW 88
// Say ( bur , D1-Bur-2 ) ;
5356: LD_EXP 47
5360: PPUSH
5361: LD_STRING D1-Bur-2
5363: PPUSH
5364: CALL_OW 88
// Say ( kurin , D1-Kur-3 ) ;
5368: LD_EXP 50
5372: PPUSH
5373: LD_STRING D1-Kur-3
5375: PPUSH
5376: CALL_OW 88
// if gny <> 0 then
5380: LD_EXP 46
5384: PUSH
5385: LD_INT 0
5387: NONEQUAL
5388: IFFALSE 5402
// Say ( kurin , D1-Kur-3a ) ;
5390: LD_EXP 50
5394: PPUSH
5395: LD_STRING D1-Kur-3a
5397: PPUSH
5398: CALL_OW 88
// SaveForQuickRestart ;
5402: CALL_OW 22
// wait ( 0 0$1 ) ;
5406: LD_INT 35
5408: PPUSH
5409: CALL_OW 67
// ChangeMissionObjectives ( M1 ) ;
5413: LD_STRING M1
5415: PPUSH
5416: CALL_OW 337
// InGameOff ;
5420: CALL_OW 9
// stav = 1 ;
5424: LD_ADDR_EXP 57
5428: PUSH
5429: LD_INT 1
5431: ST_TO_ADDR
// enable ( 991 ) ;
5432: LD_INT 991
5434: ENABLE_MARKED
// end ;
5435: END
// every 0 0$1 trigger SeeXY ( You , 69 , 83 ) or SeeXY ( You , 73 , 96 ) and ( not kecal_s_platonovem ) do var pom ; var sq ;
5436: LD_EXP 1
5440: PPUSH
5441: LD_INT 69
5443: PPUSH
5444: LD_INT 83
5446: PPUSH
5447: CALL_OW 293
5451: PUSH
5452: LD_EXP 1
5456: PPUSH
5457: LD_INT 73
5459: PPUSH
5460: LD_INT 96
5462: PPUSH
5463: CALL_OW 293
5467: PUSH
5468: LD_LOC 9
5472: NOT
5473: AND
5474: OR
5475: IFFALSE 5571
5477: GO 5479
5479: DISABLE
5480: LD_INT 0
5482: PPUSH
5483: PPUSH
// begin DialogueOn ;
5484: CALL_OW 6
// if SeeXY ( You , 71 , 84 ) then
5488: LD_EXP 1
5492: PPUSH
5493: LD_INT 71
5495: PPUSH
5496: LD_INT 84
5498: PPUSH
5499: CALL_OW 293
5503: IFFALSE 5515
// pom = Ru2_vb1 else
5505: LD_ADDR_VAR 0 1
5509: PUSH
5510: LD_INT 9
5512: ST_TO_ADDR
5513: GO 5523
// pom = Ru2_vb2 ;
5515: LD_ADDR_VAR 0 1
5519: PUSH
5520: LD_INT 10
5522: ST_TO_ADDR
// Say ( pom , D2-RSol1-1 ) ;
5523: LD_VAR 0 1
5527: PPUSH
5528: LD_STRING D2-RSol1-1
5530: PPUSH
5531: CALL_OW 88
// Say ( bur , D2-Bur-1 ) ;
5535: LD_EXP 47
5539: PPUSH
5540: LD_STRING D2-Bur-1
5542: PPUSH
5543: CALL_OW 88
// Say ( pom , D2-RSol1-2 ) ;
5547: LD_VAR 0 1
5551: PPUSH
5552: LD_STRING D2-RSol1-2
5554: PPUSH
5555: CALL_OW 88
// stav = 2 ;
5559: LD_ADDR_EXP 57
5563: PUSH
5564: LD_INT 2
5566: ST_TO_ADDR
// DialogueOff ;
5567: CALL_OW 7
// end ;
5571: PPOPN 2
5573: END
// every 0 0$1 trigger IsInArea ( bur , near_plat ) do
5574: LD_EXP 47
5578: PPUSH
5579: LD_INT 5
5581: PPUSH
5582: CALL_OW 308
5586: IFFALSE 5940
5588: GO 5590
5590: DISABLE
// begin kecal_s_platonovem = true ;
5591: LD_ADDR_LOC 9
5595: PUSH
5596: LD_INT 1
5598: ST_TO_ADDR
// DialogueOn ;
5599: CALL_OW 6
// ComHold ( bur ) ;
5603: LD_EXP 47
5607: PPUSH
5608: CALL_OW 140
// ComTurnUnit ( plat , bur ) ;
5612: LD_EXP 51
5616: PPUSH
5617: LD_EXP 47
5621: PPUSH
5622: CALL_OW 119
// AddComTurnUnit ( bur , plat ) ;
5626: LD_EXP 47
5630: PPUSH
5631: LD_EXP 51
5635: PPUSH
5636: CALL_OW 179
// Say ( plat , D2-Pla-2 ) ;
5640: LD_EXP 51
5644: PPUSH
5645: LD_STRING D2-Pla-2
5647: PPUSH
5648: CALL_OW 88
// Say ( bur , D2-Bur-2 ) ;
5652: LD_EXP 47
5656: PPUSH
5657: LD_STRING D2-Bur-2
5659: PPUSH
5660: CALL_OW 88
// Say ( plat , D2-Pla-3 ) ;
5664: LD_EXP 51
5668: PPUSH
5669: LD_STRING D2-Pla-3
5671: PPUSH
5672: CALL_OW 88
// Say ( bur , D2-Bur-3 ) ;
5676: LD_EXP 47
5680: PPUSH
5681: LD_STRING D2-Bur-3
5683: PPUSH
5684: CALL_OW 88
// Say ( plat , D2-Pla-4 ) ;
5688: LD_EXP 51
5692: PPUSH
5693: LD_STRING D2-Pla-4
5695: PPUSH
5696: CALL_OW 88
// Say ( bur , D2-Bur-4 ) ;
5700: LD_EXP 47
5704: PPUSH
5705: LD_STRING D2-Bur-4
5707: PPUSH
5708: CALL_OW 88
// Say ( plat , D2-Pla-5 ) ;
5712: LD_EXP 51
5716: PPUSH
5717: LD_STRING D2-Pla-5
5719: PPUSH
5720: CALL_OW 88
// info_q ( [ 1 , 2 , 3 , 4 ] ) ;
5724: LD_INT 1
5726: PUSH
5727: LD_INT 2
5729: PUSH
5730: LD_INT 3
5732: PUSH
5733: LD_INT 4
5735: PUSH
5736: EMPTY
5737: LIST
5738: LIST
5739: LIST
5740: LIST
5741: PPUSH
5742: CALL 5941 0 1
// Say ( plat , D3-Pla-1 ) ;
5746: LD_EXP 51
5750: PPUSH
5751: LD_STRING D3-Pla-1
5753: PPUSH
5754: CALL_OW 88
// Say ( bur , D3-Bur-1 ) ;
5758: LD_EXP 47
5762: PPUSH
5763: LD_STRING D3-Bur-1
5765: PPUSH
5766: CALL_OW 88
// ChangeMissionObjectives ( M2a ) ;
5770: LD_STRING M2a
5772: PPUSH
5773: CALL_OW 337
// Hint ( Base ) ;
5777: LD_STRING Base
5779: PPUSH
5780: CALL_OW 339
// Hint ( Depot ) ;
5784: LD_STRING Depot
5786: PPUSH
5787: CALL_OW 339
// Hint ( Construction ) ;
5791: LD_STRING Construction
5793: PPUSH
5794: CALL_OW 339
// DialogueOff ;
5798: CALL_OW 7
// ComFree ( plat ) ;
5802: LD_EXP 51
5806: PPUSH
5807: CALL_OW 139
// AddComFree ( bur ) ;
5811: LD_EXP 47
5815: PPUSH
5816: CALL_OW 199
// stav = 3 ;
5820: LD_ADDR_EXP 57
5824: PUSH
5825: LD_INT 3
5827: ST_TO_ADDR
// SetSide ( RU2_dep , You ) ;
5828: LD_INT 26
5830: PPUSH
5831: LD_EXP 1
5835: PPUSH
5836: CALL_OW 235
// SetSide ( plat , You2 ) ;
5840: LD_EXP 51
5844: PPUSH
5845: LD_EXP 4
5849: PPUSH
5850: CALL_OW 235
// SetSide ( RU2_bu1 , You2 ) ;
5854: LD_INT 4
5856: PPUSH
5857: LD_EXP 4
5861: PPUSH
5862: CALL_OW 235
// SetSide ( RU2_bu2 , You2 ) ;
5866: LD_INT 11
5868: PPUSH
5869: LD_EXP 4
5873: PPUSH
5874: CALL_OW 235
// SetSide ( RU2_vb1 , You2 ) ;
5878: LD_INT 9
5880: PPUSH
5881: LD_EXP 4
5885: PPUSH
5886: CALL_OW 235
// SetSide ( RU2_vb2 , You2 ) ;
5890: LD_INT 10
5892: PPUSH
5893: LD_EXP 4
5897: PPUSH
5898: CALL_OW 235
// SetSide ( RU2_hv1 , You2 ) ;
5902: LD_INT 15
5904: PPUSH
5905: LD_EXP 4
5909: PPUSH
5910: CALL_OW 235
// SetSide ( RU2_hv2 , You2 ) ;
5914: LD_INT 16
5916: PPUSH
5917: LD_EXP 4
5921: PPUSH
5922: CALL_OW 235
// ComStop ( RU2_hv1 ) ;
5926: LD_INT 15
5928: PPUSH
5929: CALL_OW 141
// ComStop ( RU2_hv2 ) ;
5933: LD_INT 16
5935: PPUSH
5936: CALL_OW 141
// end ;
5940: END
// function info_q ( q ) ; var pom ; var q1 ; begin
5941: LD_INT 0
5943: PPUSH
5944: PPUSH
5945: PPUSH
// pom = SelectiveQuery ( QMoreInfo , q ) ;
5946: LD_ADDR_VAR 0 3
5950: PUSH
5951: LD_STRING QMoreInfo
5953: PPUSH
5954: LD_VAR 0 1
5958: PPUSH
5959: CALL_OW 98
5963: ST_TO_ADDR
// case pom of 1 :
5964: LD_VAR 0 3
5968: PUSH
5969: LD_INT 1
5971: DOUBLE
5972: EQUAL
5973: IFTRUE 5977
5975: GO 6037
5977: POP
// begin Say ( bur , D2a-Bur-1 ) ;
5978: LD_EXP 47
5982: PPUSH
5983: LD_STRING D2a-Bur-1
5985: PPUSH
5986: CALL_OW 88
// Say ( plat , D2a-Pla-1 ) ;
5990: LD_EXP 51
5994: PPUSH
5995: LD_STRING D2a-Pla-1
5997: PPUSH
5998: CALL_OW 88
// q1 = q diff 1 ;
6002: LD_ADDR_VAR 0 4
6006: PUSH
6007: LD_VAR 0 1
6011: PUSH
6012: LD_INT 1
6014: DIFF
6015: ST_TO_ADDR
// if q1 >= 2 then
6016: LD_VAR 0 4
6020: PUSH
6021: LD_INT 2
6023: GREATEREQUAL
6024: IFFALSE 6035
// info_q ( q1 ) ;
6026: LD_VAR 0 4
6030: PPUSH
6031: CALL 5941 0 1
// end ; 2 :
6035: GO 6174
6037: LD_INT 2
6039: DOUBLE
6040: EQUAL
6041: IFTRUE 6045
6043: GO 6105
6045: POP
// begin Say ( bur , D2b-Bur-1 ) ;
6046: LD_EXP 47
6050: PPUSH
6051: LD_STRING D2b-Bur-1
6053: PPUSH
6054: CALL_OW 88
// Say ( plat , D2b-Pla-1 ) ;
6058: LD_EXP 51
6062: PPUSH
6063: LD_STRING D2b-Pla-1
6065: PPUSH
6066: CALL_OW 88
// q1 = q diff 2 ;
6070: LD_ADDR_VAR 0 4
6074: PUSH
6075: LD_VAR 0 1
6079: PUSH
6080: LD_INT 2
6082: DIFF
6083: ST_TO_ADDR
// if q1 >= 2 then
6084: LD_VAR 0 4
6088: PUSH
6089: LD_INT 2
6091: GREATEREQUAL
6092: IFFALSE 6103
// info_q ( q1 ) ;
6094: LD_VAR 0 4
6098: PPUSH
6099: CALL 5941 0 1
// end ; 3 :
6103: GO 6174
6105: LD_INT 3
6107: DOUBLE
6108: EQUAL
6109: IFTRUE 6113
6111: GO 6173
6113: POP
// begin Say ( bur , D2c-Bur-1 ) ;
6114: LD_EXP 47
6118: PPUSH
6119: LD_STRING D2c-Bur-1
6121: PPUSH
6122: CALL_OW 88
// Say ( plat , D2c-Pla-1 ) ;
6126: LD_EXP 51
6130: PPUSH
6131: LD_STRING D2c-Pla-1
6133: PPUSH
6134: CALL_OW 88
// q1 = q diff 3 ;
6138: LD_ADDR_VAR 0 4
6142: PUSH
6143: LD_VAR 0 1
6147: PUSH
6148: LD_INT 3
6150: DIFF
6151: ST_TO_ADDR
// if q1 >= 2 then
6152: LD_VAR 0 4
6156: PUSH
6157: LD_INT 2
6159: GREATEREQUAL
6160: IFFALSE 6171
// info_q ( q1 ) ;
6162: LD_VAR 0 4
6166: PPUSH
6167: CALL 5941 0 1
// end ; end ;
6171: GO 6174
6173: POP
// end ;
6174: LD_VAR 0 2
6178: RET
// every 0 0$1 trigger stav in prilis_na_north do var pom ;
6179: LD_EXP 57
6183: PUSH
6184: LD_LOC 3
6188: IN
6189: IFFALSE 6344
6191: GO 6193
6193: DISABLE
6194: LD_INT 0
6196: PPUSH
// begin pom = FilterUnitsInArea ( Upozarea , [ [ f_side , You ] ] ) ;
6197: LD_ADDR_VAR 0 1
6201: PUSH
6202: LD_INT 2
6204: PPUSH
6205: LD_INT 22
6207: PUSH
6208: LD_EXP 1
6212: PUSH
6213: EMPTY
6214: LIST
6215: LIST
6216: PUSH
6217: EMPTY
6218: LIST
6219: PPUSH
6220: CALL_OW 70
6224: ST_TO_ADDR
// if pom > 0 then
6225: LD_VAR 0 1
6229: PUSH
6230: LD_INT 0
6232: GREATER
6233: IFFALSE 6343
// begin ComHold ( pom ) ;
6235: LD_VAR 0 1
6239: PPUSH
6240: CALL_OW 140
// DialogueOn ;
6244: CALL_OW 6
// posli_lidi_zpet ;
6248: CALL 15637 0 0
// if bur in pom then
6252: LD_EXP 47
6256: PUSH
6257: LD_VAR 0 1
6261: IN
6262: IFFALSE 6278
// Say ( Bur , D1b-Bur-1 ) else
6264: LD_EXP 47
6268: PPUSH
6269: LD_STRING D1b-Bur-1
6271: PPUSH
6272: CALL_OW 88
6276: GO 6290
// Say ( Kov , D1b-Kov-1 ) ;
6278: LD_EXP 48
6282: PPUSH
6283: LD_STRING D1b-Kov-1
6285: PPUSH
6286: CALL_OW 88
// DialogueOff ;
6290: CALL_OW 7
// InGameOn ;
6294: CALL_OW 8
// while FilterUnitsInArea ( Upozarea , [ [ f_side , You ] ] ) <> 0 do
6298: LD_INT 2
6300: PPUSH
6301: LD_INT 22
6303: PUSH
6304: LD_EXP 1
6308: PUSH
6309: EMPTY
6310: LIST
6311: LIST
6312: PUSH
6313: EMPTY
6314: LIST
6315: PPUSH
6316: CALL_OW 70
6320: PUSH
6321: LD_INT 0
6323: NONEQUAL
6324: IFFALSE 6339
// begin wait ( 0 0$2 ) ;
6326: LD_INT 70
6328: PPUSH
6329: CALL_OW 67
// posli_lidi_zpet ;
6333: CALL 15637 0 0
// end ;
6337: GO 6298
// InGameOff ;
6339: CALL_OW 9
// end ; enable ;
6343: ENABLE
// end ;
6344: PPOPN 1
6346: END
// every 0 0$1 trigger FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_lab ] ] ) = 1 do var pom , pom1 ;
6347: LD_INT 1
6349: PPUSH
6350: LD_INT 22
6352: PUSH
6353: LD_EXP 1
6357: PUSH
6358: EMPTY
6359: LIST
6360: LIST
6361: PUSH
6362: LD_INT 30
6364: PUSH
6365: LD_INT 6
6367: PUSH
6368: EMPTY
6369: LIST
6370: LIST
6371: PUSH
6372: EMPTY
6373: LIST
6374: LIST
6375: PPUSH
6376: CALL_OW 70
6380: PUSH
6381: LD_INT 1
6383: EQUAL
6384: IFFALSE 6631
6386: GO 6388
6388: DISABLE
6389: LD_INT 0
6391: PPUSH
6392: PPUSH
// begin pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_lab ] ] ) ;
6393: LD_ADDR_VAR 0 1
6397: PUSH
6398: LD_INT 1
6400: PPUSH
6401: LD_INT 22
6403: PUSH
6404: LD_EXP 1
6408: PUSH
6409: EMPTY
6410: LIST
6411: LIST
6412: PUSH
6413: LD_INT 30
6415: PUSH
6416: LD_INT 6
6418: PUSH
6419: EMPTY
6420: LIST
6421: LIST
6422: PUSH
6423: EMPTY
6424: LIST
6425: LIST
6426: PPUSH
6427: CALL_OW 70
6431: ST_TO_ADDR
// pom1 = 7 ;
6432: LD_ADDR_VAR 0 2
6436: PUSH
6437: LD_INT 7
6439: ST_TO_ADDR
// while IsConstructed ( pom [ 1 ] ) <> 0 do
6440: LD_VAR 0 1
6444: PUSH
6445: LD_INT 1
6447: ARRAY
6448: PPUSH
6449: CALL_OW 304
6453: PUSH
6454: LD_INT 0
6456: NONEQUAL
6457: IFFALSE 6468
// wait ( 0 0$2 ) ;
6459: LD_INT 70
6461: PPUSH
6462: CALL_OW 67
6466: GO 6440
// DialogueOn ;
6468: CALL_OW 6
// Hint ( Laboratory ) ;
6472: LD_STRING Laboratory
6474: PPUSH
6475: CALL_OW 339
// Hint ( Healing ) ;
6479: LD_STRING Healing
6481: PPUSH
6482: CALL_OW 339
// Say ( bur , D5a-Bur-1 ) ;
6486: LD_EXP 47
6490: PPUSH
6491: LD_STRING D5a-Bur-1
6493: PPUSH
6494: CALL_OW 88
// pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_workshop ] ] ) ;
6498: LD_ADDR_VAR 0 1
6502: PUSH
6503: LD_INT 1
6505: PPUSH
6506: LD_INT 22
6508: PUSH
6509: LD_EXP 1
6513: PUSH
6514: EMPTY
6515: LIST
6516: LIST
6517: PUSH
6518: LD_INT 30
6520: PUSH
6521: LD_INT 2
6523: PUSH
6524: EMPTY
6525: LIST
6526: LIST
6527: PUSH
6528: EMPTY
6529: LIST
6530: LIST
6531: PPUSH
6532: CALL_OW 70
6536: ST_TO_ADDR
// if pom > 0 then
6537: LD_VAR 0 1
6541: PUSH
6542: LD_INT 0
6544: GREATER
6545: IFFALSE 6566
// pom1 = IsConstructed ( pom [ 1 ] ) ;
6547: LD_ADDR_VAR 0 2
6551: PUSH
6552: LD_VAR 0 1
6556: PUSH
6557: LD_INT 1
6559: ARRAY
6560: PPUSH
6561: CALL_OW 304
6565: ST_TO_ADDR
// if pom1 = 0 then
6566: LD_VAR 0 2
6570: PUSH
6571: LD_INT 0
6573: EQUAL
6574: IFFALSE 6608
// begin Say ( plat , D5a-Pla-1 ) ;
6576: LD_EXP 51
6580: PPUSH
6581: LD_STRING D5a-Pla-1
6583: PPUSH
6584: CALL_OW 88
// ChangeMissionObjectives ( M2 ) ;
6588: LD_STRING M2
6590: PPUSH
6591: CALL_OW 337
// pokracovani_rozhovoru ;
6595: CALL 6941 0 0
// Hint ( BuildingVehicles ) ;
6599: LD_STRING BuildingVehicles
6601: PPUSH
6602: CALL_OW 339
// end else
6606: GO 6627
// begin Say ( plat , D5a-Pla-1a ) ;
6608: LD_EXP 51
6612: PPUSH
6613: LD_STRING D5a-Pla-1a
6615: PPUSH
6616: CALL_OW 88
// ChangeMissionObjectives ( M2b ) ;
6620: LD_STRING M2b
6622: PPUSH
6623: CALL_OW 337
// end ; DialogueOff ;
6627: CALL_OW 7
// end ;
6631: PPOPN 2
6633: END
// every 0 0$1 trigger FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_workshop ] ] ) = 1 do var pom , pom1 ;
6634: LD_INT 1
6636: PPUSH
6637: LD_INT 22
6639: PUSH
6640: LD_EXP 1
6644: PUSH
6645: EMPTY
6646: LIST
6647: LIST
6648: PUSH
6649: LD_INT 30
6651: PUSH
6652: LD_INT 2
6654: PUSH
6655: EMPTY
6656: LIST
6657: LIST
6658: PUSH
6659: EMPTY
6660: LIST
6661: LIST
6662: PPUSH
6663: CALL_OW 70
6667: PUSH
6668: LD_INT 1
6670: EQUAL
6671: IFFALSE 6938
6673: GO 6675
6675: DISABLE
6676: LD_INT 0
6678: PPUSH
6679: PPUSH
// begin pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_workshop ] ] ) ;
6680: LD_ADDR_VAR 0 1
6684: PUSH
6685: LD_INT 1
6687: PPUSH
6688: LD_INT 22
6690: PUSH
6691: LD_EXP 1
6695: PUSH
6696: EMPTY
6697: LIST
6698: LIST
6699: PUSH
6700: LD_INT 30
6702: PUSH
6703: LD_INT 2
6705: PUSH
6706: EMPTY
6707: LIST
6708: LIST
6709: PUSH
6710: EMPTY
6711: LIST
6712: LIST
6713: PPUSH
6714: CALL_OW 70
6718: ST_TO_ADDR
// pom1 = 7 ;
6719: LD_ADDR_VAR 0 2
6723: PUSH
6724: LD_INT 7
6726: ST_TO_ADDR
// while IsConstructed ( pom [ 1 ] ) <> 0 do
6727: LD_VAR 0 1
6731: PUSH
6732: LD_INT 1
6734: ARRAY
6735: PPUSH
6736: CALL_OW 304
6740: PUSH
6741: LD_INT 0
6743: NONEQUAL
6744: IFFALSE 6755
// wait ( 0 0$2 ) ;
6746: LD_INT 70
6748: PPUSH
6749: CALL_OW 67
6753: GO 6727
// DialogueOn ;
6755: CALL_OW 6
// if GetTech ( tech_OilEng , You ) = state_researched then
6759: LD_INT 47
6761: PPUSH
6762: LD_EXP 1
6766: PPUSH
6767: CALL_OW 321
6771: PUSH
6772: LD_INT 2
6774: EQUAL
6775: IFFALSE 6786
// Hint ( Workshop2 ) else
6777: LD_STRING Workshop2
6779: PPUSH
6780: CALL_OW 339
6784: GO 6793
// Hint ( Workshop1 ) ;
6786: LD_STRING Workshop1
6788: PPUSH
6789: CALL_OW 339
// Say ( bur , D5b-Bur-1 ) ;
6793: LD_EXP 47
6797: PPUSH
6798: LD_STRING D5b-Bur-1
6800: PPUSH
6801: CALL_OW 88
// pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_lab ] ] ) ;
6805: LD_ADDR_VAR 0 1
6809: PUSH
6810: LD_INT 1
6812: PPUSH
6813: LD_INT 22
6815: PUSH
6816: LD_EXP 1
6820: PUSH
6821: EMPTY
6822: LIST
6823: LIST
6824: PUSH
6825: LD_INT 30
6827: PUSH
6828: LD_INT 6
6830: PUSH
6831: EMPTY
6832: LIST
6833: LIST
6834: PUSH
6835: EMPTY
6836: LIST
6837: LIST
6838: PPUSH
6839: CALL_OW 70
6843: ST_TO_ADDR
// if pom > 0 then
6844: LD_VAR 0 1
6848: PUSH
6849: LD_INT 0
6851: GREATER
6852: IFFALSE 6873
// pom1 = IsConstructed ( pom [ 1 ] ) ;
6854: LD_ADDR_VAR 0 2
6858: PUSH
6859: LD_VAR 0 1
6863: PUSH
6864: LD_INT 1
6866: ARRAY
6867: PPUSH
6868: CALL_OW 304
6872: ST_TO_ADDR
// if pom1 = 0 then
6873: LD_VAR 0 2
6877: PUSH
6878: LD_INT 0
6880: EQUAL
6881: IFFALSE 6915
// begin Say ( plat , D5b-Pla-1 ) ;
6883: LD_EXP 51
6887: PPUSH
6888: LD_STRING D5b-Pla-1
6890: PPUSH
6891: CALL_OW 88
// ChangeMissionObjectives ( M2 ) ;
6895: LD_STRING M2
6897: PPUSH
6898: CALL_OW 337
// pokracovani_rozhovoru ;
6902: CALL 6941 0 0
// Hint ( BuildingVehicles ) ;
6906: LD_STRING BuildingVehicles
6908: PPUSH
6909: CALL_OW 339
// end else
6913: GO 6934
// begin Say ( plat , D5b-Pla-1a ) ;
6915: LD_EXP 51
6919: PPUSH
6920: LD_STRING D5b-Pla-1a
6922: PPUSH
6923: CALL_OW 88
// ChangeMissionObjectives ( M2c ) ;
6927: LD_STRING M2c
6929: PPUSH
6930: CALL_OW 337
// end ; DialogueOff ;
6934: CALL_OW 7
// end ;
6938: PPOPN 2
6940: END
// function pokracovani_rozhovoru ; begin
6941: LD_INT 0
6943: PPUSH
// if Researched ( You , tech_OilEng ) then
6944: LD_EXP 1
6948: PPUSH
6949: LD_INT 47
6951: PPUSH
6952: CALL_OW 325
6956: IFFALSE 6984
// begin Say ( bur , D7b-Bur-1 ) ;
6958: LD_EXP 47
6962: PPUSH
6963: LD_STRING D7b-Bur-1
6965: PPUSH
6966: CALL_OW 88
// Say ( plat , D7b-Pla-1 ) ;
6970: LD_EXP 51
6974: PPUSH
6975: LD_STRING D7b-Pla-1
6977: PPUSH
6978: CALL_OW 88
// end else
6982: GO 7008
// begin Say ( bur , D7a-Bur-1 ) ;
6984: LD_EXP 47
6988: PPUSH
6989: LD_STRING D7a-Bur-1
6991: PPUSH
6992: CALL_OW 88
// Say ( plat , D7a-Pla-1 ) ;
6996: LD_EXP 51
7000: PPUSH
7001: LD_STRING D7a-Pla-1
7003: PPUSH
7004: CALL_OW 88
// end ; end ;
7008: LD_VAR 0 1
7012: RET
// every 0 0$1 trigger stav in is_out_base do var pom , pom1 ;
7013: LD_EXP 57
7017: PUSH
7018: LD_LOC 4
7022: IN
7023: IFFALSE 7211
7025: GO 7027
7027: DISABLE
7028: LD_INT 0
7030: PPUSH
7031: PPUSH
// begin pom = FilterUnitsInArea ( Out_base , [ [ f_side , You ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
7032: LD_ADDR_VAR 0 1
7036: PUSH
7037: LD_INT 6
7039: PPUSH
7040: LD_INT 22
7042: PUSH
7043: LD_EXP 1
7047: PUSH
7048: EMPTY
7049: LIST
7050: LIST
7051: PUSH
7052: LD_INT 2
7054: PUSH
7055: LD_INT 21
7057: PUSH
7058: LD_INT 2
7060: PUSH
7061: EMPTY
7062: LIST
7063: LIST
7064: PUSH
7065: LD_INT 21
7067: PUSH
7068: LD_INT 1
7070: PUSH
7071: EMPTY
7072: LIST
7073: LIST
7074: PUSH
7075: EMPTY
7076: LIST
7077: LIST
7078: LIST
7079: PUSH
7080: EMPTY
7081: LIST
7082: LIST
7083: PPUSH
7084: CALL_OW 70
7088: ST_TO_ADDR
// if pom > 0 then
7089: LD_VAR 0 1
7093: PUSH
7094: LD_INT 0
7096: GREATER
7097: IFFALSE 7210
// begin ComHold ( pom ) ;
7099: LD_VAR 0 1
7103: PPUSH
7104: CALL_OW 140
// DialogueOn ;
7108: CALL_OW 6
// Say ( plat , D8-Pla-1 ) ;
7112: LD_EXP 51
7116: PPUSH
7117: LD_STRING D8-Pla-1
7119: PPUSH
7120: CALL_OW 88
// DialogueOff ;
7124: CALL_OW 7
// InGameOn ;
7128: CALL_OW 8
// posli_rusi_zpet_out_base ;
7132: CALL 15686 0 0
// while FilterUnitsInArea ( Out_base , [ [ f_side , You ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) <> 0 do
7136: LD_INT 6
7138: PPUSH
7139: LD_INT 22
7141: PUSH
7142: LD_EXP 1
7146: PUSH
7147: EMPTY
7148: LIST
7149: LIST
7150: PUSH
7151: LD_INT 2
7153: PUSH
7154: LD_INT 21
7156: PUSH
7157: LD_INT 2
7159: PUSH
7160: EMPTY
7161: LIST
7162: LIST
7163: PUSH
7164: LD_INT 21
7166: PUSH
7167: LD_INT 1
7169: PUSH
7170: EMPTY
7171: LIST
7172: LIST
7173: PUSH
7174: EMPTY
7175: LIST
7176: LIST
7177: LIST
7178: PUSH
7179: EMPTY
7180: LIST
7181: LIST
7182: PPUSH
7183: CALL_OW 70
7187: PUSH
7188: LD_INT 0
7190: NONEQUAL
7191: IFFALSE 7206
// begin wait ( 0 0$2 ) ;
7193: LD_INT 70
7195: PPUSH
7196: CALL_OW 67
// posli_rusi_zpet_out_base ;
7200: CALL 15686 0 0
// end ;
7204: GO 7136
// InGameOff ;
7206: CALL_OW 9
// end ; enable ;
7210: ENABLE
// end ;
7211: PPOPN 2
7213: END
// every 0 0$1 marked 300 do var pom ;
7214: GO 7216
7216: DISABLE
7217: LD_INT 0
7219: PPUSH
// begin wait ( 0 0$4 ) ;
7220: LD_INT 140
7222: PPUSH
7223: CALL_OW 67
// pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
7227: LD_ADDR_VAR 0 1
7231: PUSH
7232: LD_INT 1
7234: PPUSH
7235: LD_INT 22
7237: PUSH
7238: LD_EXP 1
7242: PUSH
7243: EMPTY
7244: LIST
7245: LIST
7246: PUSH
7247: LD_INT 21
7249: PUSH
7250: LD_INT 2
7252: PUSH
7253: EMPTY
7254: LIST
7255: LIST
7256: PUSH
7257: EMPTY
7258: LIST
7259: LIST
7260: PPUSH
7261: CALL_OW 70
7265: ST_TO_ADDR
// DialogueOn ;
7266: CALL_OW 6
// Say ( bur , D9-Bur-1 ) ;
7270: LD_EXP 47
7274: PPUSH
7275: LD_STRING D9-Bur-1
7277: PPUSH
7278: CALL_OW 88
// Say ( plat , D9-Pla-1 ) ;
7282: LD_EXP 51
7286: PPUSH
7287: LD_STRING D9-Pla-1
7289: PPUSH
7290: CALL_OW 88
// ChangeMissionObjectives ( M3 ) ;
7294: LD_STRING M3
7296: PPUSH
7297: CALL_OW 337
// stav = 4 ;
7301: LD_ADDR_EXP 57
7305: PUSH
7306: LD_INT 4
7308: ST_TO_ADDR
// DialogueOff ;
7309: CALL_OW 7
// Hint ( Driving ) ;
7313: LD_STRING Driving
7315: PPUSH
7316: CALL_OW 339
// wait ( 0 0$10 ) ;
7320: LD_INT 350
7322: PPUSH
7323: CALL_OW 67
// end ;
7327: PPOPN 1
7329: END
// every 0 0$5 trigger stav > 3 do var pom , i ; var a ;
7330: LD_EXP 57
7334: PUSH
7335: LD_INT 3
7337: GREATER
7338: IFFALSE 7448
7340: GO 7342
7342: DISABLE
7343: LD_INT 0
7345: PPUSH
7346: PPUSH
7347: PPUSH
// begin a = false ;
7348: LD_ADDR_VAR 0 3
7352: PUSH
7353: LD_INT 0
7355: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
7356: LD_ADDR_VAR 0 1
7360: PUSH
7361: LD_INT 22
7363: PUSH
7364: LD_EXP 1
7368: PUSH
7369: EMPTY
7370: LIST
7371: LIST
7372: PUSH
7373: LD_INT 21
7375: PUSH
7376: LD_INT 2
7378: PUSH
7379: EMPTY
7380: LIST
7381: LIST
7382: PUSH
7383: EMPTY
7384: LIST
7385: LIST
7386: PPUSH
7387: CALL_OW 69
7391: ST_TO_ADDR
// for i in pom do
7392: LD_ADDR_VAR 0 2
7396: PUSH
7397: LD_VAR 0 1
7401: PUSH
7402: FOR_IN
7403: IFFALSE 7430
// if GetLives ( i ) < 900 then
7405: LD_VAR 0 2
7409: PPUSH
7410: CALL_OW 256
7414: PUSH
7415: LD_INT 900
7417: LESS
7418: IFFALSE 7428
// a = true ;
7420: LD_ADDR_VAR 0 3
7424: PUSH
7425: LD_INT 1
7427: ST_TO_ADDR
7428: GO 7402
7430: POP
7431: POP
// if a then
7432: LD_VAR 0 3
7436: IFFALSE 7447
// Hint ( Repair ) else
7438: LD_STRING Repair
7440: PPUSH
7441: CALL_OW 339
7445: GO 7448
// enable ;
7447: ENABLE
// end ;
7448: PPOPN 3
7450: END
// every 0 0$5 trigger stav > 3 do var pom , i ; var a ;
7451: LD_EXP 57
7455: PUSH
7456: LD_INT 3
7458: GREATER
7459: IFFALSE 7569
7461: GO 7463
7463: DISABLE
7464: LD_INT 0
7466: PPUSH
7467: PPUSH
7468: PPUSH
// begin a = false ;
7469: LD_ADDR_VAR 0 3
7473: PUSH
7474: LD_INT 0
7476: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
7477: LD_ADDR_VAR 0 1
7481: PUSH
7482: LD_INT 22
7484: PUSH
7485: LD_EXP 1
7489: PUSH
7490: EMPTY
7491: LIST
7492: LIST
7493: PUSH
7494: LD_INT 21
7496: PUSH
7497: LD_INT 2
7499: PUSH
7500: EMPTY
7501: LIST
7502: LIST
7503: PUSH
7504: EMPTY
7505: LIST
7506: LIST
7507: PPUSH
7508: CALL_OW 69
7512: ST_TO_ADDR
// for i in pom do
7513: LD_ADDR_VAR 0 2
7517: PUSH
7518: LD_VAR 0 1
7522: PUSH
7523: FOR_IN
7524: IFFALSE 7551
// if GetFuel ( i ) < 20 then
7526: LD_VAR 0 2
7530: PPUSH
7531: CALL_OW 261
7535: PUSH
7536: LD_INT 20
7538: LESS
7539: IFFALSE 7549
// a = true ;
7541: LD_ADDR_VAR 0 3
7545: PUSH
7546: LD_INT 1
7548: ST_TO_ADDR
7549: GO 7523
7551: POP
7552: POP
// if a then
7553: LD_VAR 0 3
7557: IFFALSE 7568
// Hint ( Fuel ) else
7559: LD_STRING Fuel
7561: PPUSH
7562: CALL_OW 339
7566: GO 7569
// enable ;
7568: ENABLE
// end ;
7569: PPOPN 3
7571: END
// every 0 0$2 trigger stav = 4 and test_is_auto_in_area do var auto ; var ridic ;
7572: LD_EXP 57
7576: PUSH
7577: LD_INT 4
7579: EQUAL
7580: PUSH
7581: CALL 15324 0 0
7585: AND
7586: IFFALSE 8004
7588: GO 7590
7590: DISABLE
7591: LD_INT 0
7593: PPUSH
7594: PPUSH
// begin disable ( 991 ) ;
7595: LD_INT 991
7597: DISABLE_MARKED
// InGameOn ;
7598: CALL_OW 8
// auto = FilterUnitsInArea ( RU1_base , [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
7602: LD_ADDR_VAR 0 1
7606: PUSH
7607: LD_INT 3
7609: PPUSH
7610: LD_INT 22
7612: PUSH
7613: LD_EXP 1
7617: PUSH
7618: EMPTY
7619: LIST
7620: LIST
7621: PUSH
7622: LD_INT 21
7624: PUSH
7625: LD_INT 2
7627: PUSH
7628: EMPTY
7629: LIST
7630: LIST
7631: PUSH
7632: EMPTY
7633: LIST
7634: LIST
7635: PPUSH
7636: CALL_OW 70
7640: ST_TO_ADDR
// auto = auto [ 1 ] ;
7641: LD_ADDR_VAR 0 1
7645: PUSH
7646: LD_VAR 0 1
7650: PUSH
7651: LD_INT 1
7653: ARRAY
7654: ST_TO_ADDR
// ridic = IsDrivenBy ( auto ) ;
7655: LD_ADDR_VAR 0 2
7659: PUSH
7660: LD_VAR 0 1
7664: PPUSH
7665: CALL_OW 311
7669: ST_TO_ADDR
// ComMoveXY ( ridic , 117 , 101 ) ;
7670: LD_VAR 0 2
7674: PPUSH
7675: LD_INT 117
7677: PPUSH
7678: LD_INT 101
7680: PPUSH
7681: CALL_OW 111
// CenterOnUnits ( [ auto ] ) ;
7685: LD_VAR 0 1
7689: PUSH
7690: EMPTY
7691: LIST
7692: PPUSH
7693: CALL_OW 85
// Say ( kurin , D10-Kur-1 ) ;
7697: LD_EXP 50
7701: PPUSH
7702: LD_STRING D10-Kur-1
7704: PPUSH
7705: CALL_OW 88
// Say ( bel , D10-Bel-1 ) ;
7709: LD_EXP 49
7713: PPUSH
7714: LD_STRING D10-Bel-1
7716: PPUSH
7717: CALL_OW 88
// ComExitVehicle ( ridic ) ;
7721: LD_VAR 0 2
7725: PPUSH
7726: CALL_OW 121
// AddComHold ( ridic ) ;
7730: LD_VAR 0 2
7734: PPUSH
7735: CALL_OW 200
// wait ( 0 0$1 ) ;
7739: LD_INT 35
7741: PPUSH
7742: CALL_OW 67
// if BELKOV_MRTVY then
7746: LD_EXP 43
7750: IFFALSE 7788
// begin Say ( bur , D10-Bur-1 ) ;
7752: LD_EXP 47
7756: PPUSH
7757: LD_STRING D10-Bur-1
7759: PPUSH
7760: CALL_OW 88
// Say ( bel , D10-Bel-2 ) ;
7764: LD_EXP 49
7768: PPUSH
7769: LD_STRING D10-Bel-2
7771: PPUSH
7772: CALL_OW 88
// Say ( bur , D10-Bur-2 ) ;
7776: LD_EXP 47
7780: PPUSH
7781: LD_STRING D10-Bur-2
7783: PPUSH
7784: CALL_OW 88
// end ; AddComHold ( ridic ) ;
7788: LD_VAR 0 2
7792: PPUSH
7793: CALL_OW 200
// if BELKOV_MRTVY then
7797: LD_EXP 43
7801: IFFALSE 7817
// Say ( kurin , D10-Kur-2a ) else
7803: LD_EXP 50
7807: PPUSH
7808: LD_STRING D10-Kur-2a
7810: PPUSH
7811: CALL_OW 88
7815: GO 7829
// Say ( kurin , D10-Kur-2 ) ;
7817: LD_EXP 50
7821: PPUSH
7822: LD_STRING D10-Kur-2
7824: PPUSH
7825: CALL_OW 88
// ComExitBuilding ( bel ) ;
7829: LD_EXP 49
7833: PPUSH
7834: CALL_OW 122
// while IsInUnit ( ridic ) <> 0 do
7838: LD_VAR 0 2
7842: PPUSH
7843: CALL_OW 310
7847: PUSH
7848: LD_INT 0
7850: NONEQUAL
7851: IFFALSE 7871
// begin wait ( 0 0$1 ) ;
7853: LD_INT 35
7855: PPUSH
7856: CALL_OW 67
// ComExitVehicle ( ridic ) ;
7860: LD_VAR 0 2
7864: PPUSH
7865: CALL_OW 121
// end ;
7869: GO 7838
// AddComEnterUnit ( bel , auto ) ;
7871: LD_EXP 49
7875: PPUSH
7876: LD_VAR 0 1
7880: PPUSH
7881: CALL_OW 180
// wait ( 0 0$1 ) ;
7885: LD_INT 35
7887: PPUSH
7888: CALL_OW 67
// while IsInUnit ( bel ) = 0 do
7892: LD_EXP 49
7896: PPUSH
7897: CALL_OW 310
7901: PUSH
7902: LD_INT 0
7904: EQUAL
7905: IFFALSE 7939
// begin wait ( 0 0$1 ) ;
7907: LD_INT 35
7909: PPUSH
7910: CALL_OW 67
// ComExitBuilding ( bel ) ;
7914: LD_EXP 49
7918: PPUSH
7919: CALL_OW 122
// AddComEnterUnit ( bel , auto ) ;
7923: LD_EXP 49
7927: PPUSH
7928: LD_VAR 0 1
7932: PPUSH
7933: CALL_OW 180
// end ;
7937: GO 7892
// ComFree ( ridic ) ;
7939: LD_VAR 0 2
7943: PPUSH
7944: CALL_OW 139
// Say ( kurin , D10-Kur-2b ) ;
7948: LD_EXP 50
7952: PPUSH
7953: LD_STRING D10-Kur-2b
7955: PPUSH
7956: CALL_OW 88
// ridic_1_auta = ridic ;
7960: LD_ADDR_LOC 6
7964: PUSH
7965: LD_VAR 0 2
7969: ST_TO_ADDR
// ChangeMissionObjectives ( M4 ) ;
7970: LD_STRING M4
7972: PPUSH
7973: CALL_OW 337
// objReturn := true ;
7977: LD_ADDR_EXP 26
7981: PUSH
7982: LD_INT 1
7984: ST_TO_ADDR
// stav = 5 ;
7985: LD_ADDR_EXP 57
7989: PUSH
7990: LD_INT 5
7992: ST_TO_ADDR
// InGameOff ;
7993: CALL_OW 9
// rusi_cesta_na_sever ;
7997: CALL 14028 0 0
// enable ( 992 ) ;
8001: LD_INT 992
8003: ENABLE_MARKED
// end ;
8004: PPOPN 2
8006: END
// every 0 0$1 trigger stav = 5 and IsInArea ( ridic_1_auta , RU2_base ) do var poc , i ;
8007: LD_EXP 57
8011: PUSH
8012: LD_INT 5
8014: EQUAL
8015: PUSH
8016: LD_LOC 6
8020: PPUSH
8021: LD_INT 1
8023: PPUSH
8024: CALL_OW 308
8028: AND
8029: IFFALSE 8186
8031: GO 8033
8033: DISABLE
8034: LD_INT 0
8036: PPUSH
8037: PPUSH
// begin poc = 0 ;
8038: LD_ADDR_VAR 0 1
8042: PUSH
8043: LD_INT 0
8045: ST_TO_ADDR
// DialogueOn ;
8046: CALL_OW 6
// Say ( plat , D11-Pla-1 ) ;
8050: LD_EXP 51
8054: PPUSH
8055: LD_STRING D11-Pla-1
8057: PPUSH
8058: CALL_OW 88
// for i in Rusi_enter do
8062: LD_ADDR_VAR 0 2
8066: PUSH
8067: LD_EXP 52
8071: PUSH
8072: FOR_IN
8073: IFFALSE 8102
// if IsLive ( i ) then
8075: LD_VAR 0 2
8079: PPUSH
8080: CALL_OW 300
8084: IFFALSE 8100
// poc = poc + 1 ;
8086: LD_ADDR_VAR 0 1
8090: PUSH
8091: LD_VAR 0 1
8095: PUSH
8096: LD_INT 1
8098: PLUS
8099: ST_TO_ADDR
8100: GO 8072
8102: POP
8103: POP
// if poc > 1 then
8104: LD_VAR 0 1
8108: PUSH
8109: LD_INT 1
8111: GREATER
8112: IFFALSE 8128
// Say ( bur , D11-Bur-1a ) else
8114: LD_EXP 47
8118: PPUSH
8119: LD_STRING D11-Bur-1a
8121: PPUSH
8122: CALL_OW 88
8126: GO 8140
// Say ( bur , D11-Bur-1 ) ;
8128: LD_EXP 47
8132: PPUSH
8133: LD_STRING D11-Bur-1
8135: PPUSH
8136: CALL_OW 88
// ChangeMissionObjectives ( M5 ) ;
8140: LD_STRING M5
8142: PPUSH
8143: CALL_OW 337
// objReturn := false ;
8147: LD_ADDR_EXP 26
8151: PUSH
8152: LD_INT 0
8154: ST_TO_ADDR
// CreateCratesXYR ( 2 , 64 , 83 , 6 , true ) ;
8155: LD_INT 2
8157: PPUSH
8158: LD_INT 64
8160: PPUSH
8161: LD_INT 83
8163: PPUSH
8164: LD_INT 6
8166: PPUSH
8167: LD_INT 1
8169: PPUSH
8170: CALL_OW 56
// stav = 6 ;
8174: LD_ADDR_EXP 57
8178: PUSH
8179: LD_INT 6
8181: ST_TO_ADDR
// DialogueOff ;
8182: CALL_OW 7
// end ;
8186: PPOPN 2
8188: END
// export function dialog_boreni ; begin
8189: LD_INT 0
8191: PPUSH
// Say ( plat , D6-Pla-1 ) ;
8192: LD_EXP 51
8196: PPUSH
8197: LD_STRING D6-Pla-1
8199: PPUSH
8200: CALL_OW 88
// Say ( bur , D6-Bur-1 ) ;
8204: LD_EXP 47
8208: PPUSH
8209: LD_STRING D6-Bur-1
8211: PPUSH
8212: CALL_OW 88
// end ;
8216: LD_VAR 0 1
8220: RET
// export function dialog_past_amici ; var pom , i ; begin
8221: LD_INT 0
8223: PPUSH
8224: PPUSH
8225: PPUSH
// DialogueOn ;
8226: CALL_OW 6
// CenterOnUnits ( Rusi_sever ) ;
8230: LD_EXP 53
8234: PPUSH
8235: CALL_OW 85
// wait ( 0 0$2 ) ;
8239: LD_INT 70
8241: PPUSH
8242: CALL_OW 67
// pom = UnitFilter ( Amici_past , [ [ f_ok ] , [ f_type , unit_human ] ] ) ;
8246: LD_ADDR_VAR 0 2
8250: PUSH
8251: LD_EXP 69
8255: PPUSH
8256: LD_INT 50
8258: PUSH
8259: EMPTY
8260: LIST
8261: PUSH
8262: LD_INT 21
8264: PUSH
8265: LD_INT 1
8267: PUSH
8268: EMPTY
8269: LIST
8270: LIST
8271: PUSH
8272: EMPTY
8273: LIST
8274: LIST
8275: PPUSH
8276: CALL_OW 72
8280: ST_TO_ADDR
// for i in pom do
8281: LD_ADDR_VAR 0 3
8285: PUSH
8286: LD_VAR 0 2
8290: PUSH
8291: FOR_IN
8292: IFFALSE 8329
// if GetSex ( i ) = sex_male then
8294: LD_VAR 0 3
8298: PPUSH
8299: CALL_OW 258
8303: PUSH
8304: LD_INT 1
8306: EQUAL
8307: IFFALSE 8327
// begin SayRadio ( pom [ 1 ] , D13-Sol1-1 ) ;
8309: LD_VAR 0 2
8313: PUSH
8314: LD_INT 1
8316: ARRAY
8317: PPUSH
8318: LD_STRING D13-Sol1-1
8320: PPUSH
8321: CALL_OW 94
// break ;
8325: GO 8329
// end ;
8327: GO 8291
8329: POP
8330: POP
// SayRadio ( bel , D13-Bel-1 ) ;
8331: LD_EXP 49
8335: PPUSH
8336: LD_STRING D13-Bel-1
8338: PPUSH
8339: CALL_OW 94
// SayRadio ( kurin , D13-Kur-1 ) ;
8343: LD_EXP 50
8347: PPUSH
8348: LD_STRING D13-Kur-1
8350: PPUSH
8351: CALL_OW 94
// SayRadio ( bel , D13-Bel-2 ) ;
8355: LD_EXP 49
8359: PPUSH
8360: LD_STRING D13-Bel-2
8362: PPUSH
8363: CALL_OW 94
// end ;
8367: LD_VAR 0 1
8371: RET
// export function rozhovor_ukonceni_m5 ; begin
8372: LD_INT 0
8374: PPUSH
// wait ( 0 0$2 ) ;
8375: LD_INT 70
8377: PPUSH
8378: CALL_OW 67
// DialogueOn ;
8382: CALL_OW 6
// Say ( bur , D12-Bur-1 ) ;
8386: LD_EXP 47
8390: PPUSH
8391: LD_STRING D12-Bur-1
8393: PPUSH
8394: CALL_OW 88
// Say ( plat , D12-Pla-1 ) ;
8398: LD_EXP 51
8402: PPUSH
8403: LD_STRING D12-Pla-1
8405: PPUSH
8406: CALL_OW 88
// Say ( bur , D12-Bur-2 ) ;
8410: LD_EXP 47
8414: PPUSH
8415: LD_STRING D12-Bur-2
8417: PPUSH
8418: CALL_OW 88
// Say ( plat , D12-Pla-2 ) ;
8422: LD_EXP 51
8426: PPUSH
8427: LD_STRING D12-Pla-2
8429: PPUSH
8430: CALL_OW 88
// Say ( bur , D12-Bur-3 ) ;
8434: LD_EXP 47
8438: PPUSH
8439: LD_STRING D12-Bur-3
8441: PPUSH
8442: CALL_OW 88
// Say ( plat , D12-Pla-3 ) ;
8446: LD_EXP 51
8450: PPUSH
8451: LD_STRING D12-Pla-3
8453: PPUSH
8454: CALL_OW 88
// ChangeMissionObjectives ( M6 ) ;
8458: LD_STRING M6
8460: PPUSH
8461: CALL_OW 337
// DialogueOff ;
8465: CALL_OW 7
// disable ( 992 ) ;
8469: LD_INT 992
8471: DISABLE_MARKED
// MissionProper ;
8472: CALL 1973 0 0
// end ;
8476: LD_VAR 0 1
8480: RET
// every 0 0$5 trigger stav = 7 do var i ; var pom ; var avideni ;
8481: LD_EXP 57
8485: PUSH
8486: LD_INT 7
8488: EQUAL
8489: IFFALSE 9262
8491: GO 8493
8493: DISABLE
8494: LD_INT 0
8496: PPUSH
8497: PPUSH
8498: PPUSH
// begin wait ( 0 0$1 ) ;
8499: LD_INT 35
8501: PPUSH
8502: CALL_OW 67
// dialog_past_amici ;
8506: CALL 8221 0 0
// CenterNowOnXY ( 58 , 17 ) ;
8510: LD_INT 58
8512: PPUSH
8513: LD_INT 17
8515: PPUSH
8516: CALL_OW 86
// ComMoveXY ( Rusi_sever , 59 , 16 ) ;
8520: LD_EXP 53
8524: PPUSH
8525: LD_INT 59
8527: PPUSH
8528: LD_INT 16
8530: PPUSH
8531: CALL_OW 111
// pom = FilterAllUnits ( [ [ f_side , You ] ] ) ;
8535: LD_ADDR_VAR 0 2
8539: PUSH
8540: LD_INT 22
8542: PUSH
8543: LD_EXP 1
8547: PUSH
8548: EMPTY
8549: LIST
8550: LIST
8551: PUSH
8552: EMPTY
8553: LIST
8554: PPUSH
8555: CALL_OW 69
8559: ST_TO_ADDR
// ComStop ( pom ) ;
8560: LD_VAR 0 2
8564: PPUSH
8565: CALL_OW 141
// for i in pom do
8569: LD_ADDR_VAR 0 1
8573: PUSH
8574: LD_VAR 0 2
8578: PUSH
8579: FOR_IN
8580: IFFALSE 8598
// DoNotAttack ( Amici , i ) ;
8582: LD_EXP 2
8586: PPUSH
8587: LD_VAR 0 1
8591: PPUSH
8592: CALL_OW 471
8596: GO 8579
8598: POP
8599: POP
// DoNotAttack ( Amici , bel ) ;
8600: LD_EXP 2
8604: PPUSH
8605: LD_EXP 49
8609: PPUSH
8610: CALL_OW 471
// DialogueOff ;
8614: CALL_OW 7
// InGameOn ;
8618: CALL_OW 8
// avideni = place_amik_k_videni ;
8622: LD_ADDR_VAR 0 3
8626: PUSH
8627: CALL 4884 0 0
8631: ST_TO_ADDR
// ComMoveXY ( avideni , 55 , 11 ) ;
8632: LD_VAR 0 3
8636: PPUSH
8637: LD_INT 55
8639: PPUSH
8640: LD_INT 11
8642: PPUSH
8643: CALL_OW 111
// while FilterAllUnits ( [ [ f_side , Amici ] , [ f_see , You2 ] ] ) = 0 do
8647: LD_INT 22
8649: PUSH
8650: LD_EXP 2
8654: PUSH
8655: EMPTY
8656: LIST
8657: LIST
8658: PUSH
8659: LD_INT 101
8661: PUSH
8662: LD_EXP 4
8666: PUSH
8667: EMPTY
8668: LIST
8669: LIST
8670: PUSH
8671: EMPTY
8672: LIST
8673: LIST
8674: PPUSH
8675: CALL_OW 69
8679: PUSH
8680: LD_INT 0
8682: EQUAL
8683: IFFALSE 8709
// begin wait ( 0 0$03 ) ;
8685: LD_INT 105
8687: PPUSH
8688: CALL_OW 67
// ComMoveXY ( avideni , 55 , 11 ) ;
8692: LD_VAR 0 3
8696: PPUSH
8697: LD_INT 55
8699: PPUSH
8700: LD_INT 11
8702: PPUSH
8703: CALL_OW 111
// end ;
8707: GO 8647
// DoNotAttack ( Amici , auto_belkov ) ;
8709: LD_EXP 2
8713: PPUSH
8714: LD_EXP 67
8718: PPUSH
8719: CALL_OW 471
// while IsInUnit ( bel ) do
8723: LD_EXP 49
8727: PPUSH
8728: CALL_OW 310
8732: IFFALSE 8752
// begin ComExitVehicle ( bel ) ;
8734: LD_EXP 49
8738: PPUSH
8739: CALL_OW 121
// wait ( 0 0$0.1 ) ;
8743: LD_INT 4
8745: PPUSH
8746: CALL_OW 67
// end ;
8750: GO 8723
// wait ( 0 0$0.5 ) ;
8752: LD_INT 18
8754: PPUSH
8755: CALL_OW 67
// AddComMoveXY ( bel , 47 , 7 ) ;
8759: LD_EXP 49
8763: PPUSH
8764: LD_INT 47
8766: PPUSH
8767: LD_INT 7
8769: PPUSH
8770: CALL_OW 171
// AddComMoveXY ( bel , 33 , 5 ) ;
8774: LD_EXP 49
8778: PPUSH
8779: LD_INT 33
8781: PPUSH
8782: LD_INT 5
8784: PPUSH
8785: CALL_OW 171
// AddComMoveXY ( bel , 34 , 11 ) ;
8789: LD_EXP 49
8793: PPUSH
8794: LD_INT 34
8796: PPUSH
8797: LD_INT 11
8799: PPUSH
8800: CALL_OW 171
// AddComMoveXY ( bel , 45 , 13 ) ;
8804: LD_EXP 49
8808: PPUSH
8809: LD_INT 45
8811: PPUSH
8812: LD_INT 13
8814: PPUSH
8815: CALL_OW 171
// SetLives ( IsInUnit ( bel ) , 600 ) ;
8819: LD_EXP 49
8823: PPUSH
8824: CALL_OW 310
8828: PPUSH
8829: LD_INT 600
8831: PPUSH
8832: CALL_OW 234
// ComWalk ( Amici_past ) ;
8836: LD_EXP 69
8840: PPUSH
8841: CALL_OW 138
// InGameOff ;
8845: CALL_OW 9
// DialogueOn ;
8849: CALL_OW 6
// Say ( Amici_past [ 1 ] , D14-Sol1-1 ) ;
8853: LD_EXP 69
8857: PUSH
8858: LD_INT 1
8860: ARRAY
8861: PPUSH
8862: LD_STRING D14-Sol1-1
8864: PPUSH
8865: CALL_OW 88
// DialogueOff ;
8869: CALL_OW 7
// music_class = music_combat ;
8873: LD_ADDR_OWVAR 72
8877: PUSH
8878: LD_INT 1
8880: ST_TO_ADDR
// InGameOn ;
8881: CALL_OW 8
// for i in Rusi_sever do
8885: LD_ADDR_VAR 0 1
8889: PUSH
8890: LD_EXP 53
8894: PUSH
8895: FOR_IN
8896: IFFALSE 8931
// if GetType ( i ) = unit_vehicle then
8898: LD_VAR 0 1
8902: PPUSH
8903: CALL_OW 247
8907: PUSH
8908: LD_INT 2
8910: EQUAL
8911: IFFALSE 8929
// Rusi_sever = Rusi_sever diff i ;
8913: LD_ADDR_EXP 53
8917: PUSH
8918: LD_EXP 53
8922: PUSH
8923: LD_VAR 0 1
8927: DIFF
8928: ST_TO_ADDR
8929: GO 8895
8931: POP
8932: POP
// ComMoveXY ( Rusi_sever , 47 , 7 ) ;
8933: LD_EXP 53
8937: PPUSH
8938: LD_INT 47
8940: PPUSH
8941: LD_INT 7
8943: PPUSH
8944: CALL_OW 111
// AddComMoveXY ( Rusi_sever , 33 , 5 ) ;
8948: LD_EXP 53
8952: PPUSH
8953: LD_INT 33
8955: PPUSH
8956: LD_INT 5
8958: PPUSH
8959: CALL_OW 171
// AddComMoveXY ( Rusi_sever , 34 , 11 ) ;
8963: LD_EXP 53
8967: PPUSH
8968: LD_INT 34
8970: PPUSH
8971: LD_INT 11
8973: PPUSH
8974: CALL_OW 171
// AddComMoveXY ( Rusi_sever , 45 , 13 ) ;
8978: LD_EXP 53
8982: PPUSH
8983: LD_INT 45
8985: PPUSH
8986: LD_INT 13
8988: PPUSH
8989: CALL_OW 171
// Rusi_sever = Rusi_sever ^ bel ;
8993: LD_ADDR_EXP 53
8997: PUSH
8998: LD_EXP 53
9002: PUSH
9003: LD_EXP 49
9007: ADD
9008: ST_TO_ADDR
// InGameOff ;
9009: CALL_OW 9
// DialogueOn ;
9013: CALL_OW 6
// Say ( bel , D14-Bel-1 ) ;
9017: LD_EXP 49
9021: PPUSH
9022: LD_STRING D14-Bel-1
9024: PPUSH
9025: CALL_OW 88
// DialogueOff ;
9029: CALL_OW 7
// InGameOn ;
9033: CALL_OW 8
// ComAgressiveMove ( Amici_past , 62 , 18 ) ;
9037: LD_EXP 69
9041: PPUSH
9042: LD_INT 62
9044: PPUSH
9045: LD_INT 18
9047: PPUSH
9048: CALL_OW 114
// wait ( 2 ) ;
9052: LD_INT 2
9054: PPUSH
9055: CALL_OW 67
// rusi_save_belkov ;
9059: CALL 15735 0 0
// amici_boj ;
9063: CALL 17452 0 0
// belkov_solved = 1 ;
9067: LD_ADDR_EXP 45
9071: PUSH
9072: LD_INT 1
9074: ST_TO_ADDR
// CenterOnUnits ( [ bel ] ) ;
9075: LD_EXP 49
9079: PUSH
9080: EMPTY
9081: LIST
9082: PPUSH
9083: CALL_OW 85
// wait ( 0 0$2 ) ;
9087: LD_INT 70
9089: PPUSH
9090: CALL_OW 67
// while not See ( Amici , bel ) do
9094: LD_EXP 2
9098: PPUSH
9099: LD_EXP 49
9103: PPUSH
9104: CALL_OW 292
9108: NOT
9109: IFFALSE 9134
// begin AddComMoveUnit ( Amici_past , bel ) ;
9111: LD_EXP 69
9115: PPUSH
9116: LD_EXP 49
9120: PPUSH
9121: CALL_OW 172
// wait ( 0 0$1 ) ;
9125: LD_INT 35
9127: PPUSH
9128: CALL_OW 67
// end ;
9132: GO 9094
// InGameOff ;
9134: CALL_OW 9
// DialogueOn ;
9138: CALL_OW 6
// SayRadio ( bel , D14-Bel-1a ) ;
9142: LD_EXP 49
9146: PPUSH
9147: LD_STRING D14-Bel-1a
9149: PPUSH
9150: CALL_OW 94
// SayRadio ( kurin , D14-Kur-1 ) ;
9154: LD_EXP 50
9158: PPUSH
9159: LD_STRING D14-Kur-1
9161: PPUSH
9162: CALL_OW 94
// SayRadio ( bel , D14-Bel-2 ) ;
9166: LD_EXP 49
9170: PPUSH
9171: LD_STRING D14-Bel-2
9173: PPUSH
9174: CALL_OW 94
// SayRadio ( kurin , D14-Kur-2 ) ;
9178: LD_EXP 50
9182: PPUSH
9183: LD_STRING D14-Kur-2
9185: PPUSH
9186: CALL_OW 94
// DialogueOff ;
9190: CALL_OW 7
// music_class = 0 ;
9194: LD_ADDR_OWVAR 72
9198: PUSH
9199: LD_INT 0
9201: ST_TO_ADDR
// for i in pom do
9202: LD_ADDR_VAR 0 1
9206: PUSH
9207: LD_VAR 0 2
9211: PUSH
9212: FOR_IN
9213: IFFALSE 9231
// NormalAttack ( Amici , i ) ;
9215: LD_EXP 2
9219: PPUSH
9220: LD_VAR 0 1
9224: PPUSH
9225: CALL_OW 472
9229: GO 9212
9231: POP
9232: POP
// NormalAttack ( Amici , bel ) ;
9233: LD_EXP 2
9237: PPUSH
9238: LD_EXP 49
9242: PPUSH
9243: CALL_OW 472
// amici_po_kecech ;
9247: CALL 18730 0 0
// wait ( 0 0$5 ) ;
9251: LD_INT 175
9253: PPUSH
9254: CALL_OW 67
// dialog_burlak_help ;
9258: CALL 9265 0 0
// end ;
9262: PPOPN 3
9264: END
// function dialog_burlak_help ; begin
9265: LD_INT 0
9267: PPUSH
// DialogueOn ;
9268: CALL_OW 6
// Say ( bur , D14a-Bur-1 ) ;
9272: LD_EXP 47
9276: PPUSH
9277: LD_STRING D14a-Bur-1
9279: PPUSH
9280: CALL_OW 88
// Say ( plat , D14a-Pla-1 ) ;
9284: LD_EXP 51
9288: PPUSH
9289: LD_STRING D14a-Pla-1
9291: PPUSH
9292: CALL_OW 88
// Say ( bur , D14a-Bur-2 ) ;
9296: LD_EXP 47
9300: PPUSH
9301: LD_STRING D14a-Bur-2
9303: PPUSH
9304: CALL_OW 88
// Say ( plat , D14a-Pla-2 ) ;
9308: LD_EXP 51
9312: PPUSH
9313: LD_STRING D14a-Pla-2
9315: PPUSH
9316: CALL_OW 88
// Say ( bur , D14a-Bur-3 ) ;
9320: LD_EXP 47
9324: PPUSH
9325: LD_STRING D14a-Bur-3
9327: PPUSH
9328: CALL_OW 88
// Say ( plat , D14a-Pla-3 ) ;
9332: LD_EXP 51
9336: PPUSH
9337: LD_STRING D14a-Pla-3
9339: PPUSH
9340: CALL_OW 88
// Say ( bur , D14a-Bur-4 ) ;
9344: LD_EXP 47
9348: PPUSH
9349: LD_STRING D14a-Bur-4
9351: PPUSH
9352: CALL_OW 88
// Say ( plat , D14a-Pla-4 ) ;
9356: LD_EXP 51
9360: PPUSH
9361: LD_STRING D14a-Pla-4
9363: PPUSH
9364: CALL_OW 88
// DialogueOff ;
9368: CALL_OW 7
// end ;
9372: LD_VAR 0 1
9376: RET
// every 0 0$6 trigger bedny_hint do
9377: LD_EXP 62
9381: IFFALSE 9393
9383: GO 9385
9385: DISABLE
// begin Hint ( GatheringMaterial ) ;
9386: LD_STRING GatheringMaterial
9388: PPUSH
9389: CALL_OW 339
// end ;
9393: END
// export function hlaska_platonov_bedny ; begin
9394: LD_INT 0
9396: PPUSH
// Say ( plat , D4-Pla-1 ) ;
9397: LD_EXP 51
9401: PPUSH
9402: LD_STRING D4-Pla-1
9404: PPUSH
9405: CALL_OW 88
// end ;
9409: LD_VAR 0 1
9413: RET
// function GetPeople ( sex , povolani , diffseznam ) ; var pom , pom1 , pom2 , pom3 , pom4 ; begin
9414: LD_INT 0
9416: PPUSH
9417: PPUSH
9418: PPUSH
9419: PPUSH
9420: PPUSH
9421: PPUSH
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_scientistic ] , [ f_sex , sex ] ] ) ;
9422: LD_ADDR_VAR 0 6
9426: PUSH
9427: LD_INT 22
9429: PUSH
9430: LD_EXP 1
9434: PUSH
9435: EMPTY
9436: LIST
9437: LIST
9438: PUSH
9439: LD_INT 25
9441: PUSH
9442: LD_INT 4
9444: PUSH
9445: EMPTY
9446: LIST
9447: LIST
9448: PUSH
9449: LD_INT 26
9451: PUSH
9452: LD_VAR 0 1
9456: PUSH
9457: EMPTY
9458: LIST
9459: LIST
9460: PUSH
9461: EMPTY
9462: LIST
9463: LIST
9464: LIST
9465: PPUSH
9466: CALL_OW 69
9470: ST_TO_ADDR
// pom2 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_mechanic ] , [ f_sex , sex ] ] ) ;
9471: LD_ADDR_VAR 0 7
9475: PUSH
9476: LD_INT 22
9478: PUSH
9479: LD_EXP 1
9483: PUSH
9484: EMPTY
9485: LIST
9486: LIST
9487: PUSH
9488: LD_INT 25
9490: PUSH
9491: LD_INT 3
9493: PUSH
9494: EMPTY
9495: LIST
9496: LIST
9497: PUSH
9498: LD_INT 26
9500: PUSH
9501: LD_VAR 0 1
9505: PUSH
9506: EMPTY
9507: LIST
9508: LIST
9509: PUSH
9510: EMPTY
9511: LIST
9512: LIST
9513: LIST
9514: PPUSH
9515: CALL_OW 69
9519: ST_TO_ADDR
// pom3 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_engineer ] , [ f_sex , sex ] ] ) ;
9520: LD_ADDR_VAR 0 8
9524: PUSH
9525: LD_INT 22
9527: PUSH
9528: LD_EXP 1
9532: PUSH
9533: EMPTY
9534: LIST
9535: LIST
9536: PUSH
9537: LD_INT 25
9539: PUSH
9540: LD_INT 2
9542: PUSH
9543: EMPTY
9544: LIST
9545: LIST
9546: PUSH
9547: LD_INT 26
9549: PUSH
9550: LD_VAR 0 1
9554: PUSH
9555: EMPTY
9556: LIST
9557: LIST
9558: PUSH
9559: EMPTY
9560: LIST
9561: LIST
9562: LIST
9563: PPUSH
9564: CALL_OW 69
9568: ST_TO_ADDR
// pom4 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_soldier ] , [ f_sex , sex ] ] ) ;
9569: LD_ADDR_VAR 0 9
9573: PUSH
9574: LD_INT 22
9576: PUSH
9577: LD_EXP 1
9581: PUSH
9582: EMPTY
9583: LIST
9584: LIST
9585: PUSH
9586: LD_INT 25
9588: PUSH
9589: LD_INT 1
9591: PUSH
9592: EMPTY
9593: LIST
9594: LIST
9595: PUSH
9596: LD_INT 26
9598: PUSH
9599: LD_VAR 0 1
9603: PUSH
9604: EMPTY
9605: LIST
9606: LIST
9607: PUSH
9608: EMPTY
9609: LIST
9610: LIST
9611: LIST
9612: PPUSH
9613: CALL_OW 69
9617: ST_TO_ADDR
// case povolani of class_scientistic :
9618: LD_VAR 0 2
9622: PUSH
9623: LD_INT 4
9625: DOUBLE
9626: EQUAL
9627: IFTRUE 9631
9629: GO 9644
9631: POP
// pom = pom1 ; class_mechanic :
9632: LD_ADDR_VAR 0 5
9636: PUSH
9637: LD_VAR 0 6
9641: ST_TO_ADDR
9642: GO 9708
9644: LD_INT 3
9646: DOUBLE
9647: EQUAL
9648: IFTRUE 9652
9650: GO 9665
9652: POP
// pom = pom2 ; class_engineer :
9653: LD_ADDR_VAR 0 5
9657: PUSH
9658: LD_VAR 0 7
9662: ST_TO_ADDR
9663: GO 9708
9665: LD_INT 2
9667: DOUBLE
9668: EQUAL
9669: IFTRUE 9673
9671: GO 9686
9673: POP
// pom = pom3 ; class_soldier :
9674: LD_ADDR_VAR 0 5
9678: PUSH
9679: LD_VAR 0 8
9683: ST_TO_ADDR
9684: GO 9708
9686: LD_INT 1
9688: DOUBLE
9689: EQUAL
9690: IFTRUE 9694
9692: GO 9707
9694: POP
// pom = pom4 ; end ;
9695: LD_ADDR_VAR 0 5
9699: PUSH
9700: LD_VAR 0 9
9704: ST_TO_ADDR
9705: GO 9708
9707: POP
// if povolani <> class_scientistic then
9708: LD_VAR 0 2
9712: PUSH
9713: LD_INT 4
9715: NONEQUAL
9716: IFFALSE 9734
// pom = pom ^ pom1 ;
9718: LD_ADDR_VAR 0 5
9722: PUSH
9723: LD_VAR 0 5
9727: PUSH
9728: LD_VAR 0 6
9732: ADD
9733: ST_TO_ADDR
// if povolani <> class_mechanic then
9734: LD_VAR 0 2
9738: PUSH
9739: LD_INT 3
9741: NONEQUAL
9742: IFFALSE 9760
// pom = pom ^ pom2 ;
9744: LD_ADDR_VAR 0 5
9748: PUSH
9749: LD_VAR 0 5
9753: PUSH
9754: LD_VAR 0 7
9758: ADD
9759: ST_TO_ADDR
// if povolani <> class_engineer then
9760: LD_VAR 0 2
9764: PUSH
9765: LD_INT 2
9767: NONEQUAL
9768: IFFALSE 9786
// pom = pom ^ pom3 ;
9770: LD_ADDR_VAR 0 5
9774: PUSH
9775: LD_VAR 0 5
9779: PUSH
9780: LD_VAR 0 8
9784: ADD
9785: ST_TO_ADDR
// if povolani <> class_soldier then
9786: LD_VAR 0 2
9790: PUSH
9791: LD_INT 1
9793: NONEQUAL
9794: IFFALSE 9812
// pom = pom ^ pom4 ;
9796: LD_ADDR_VAR 0 5
9800: PUSH
9801: LD_VAR 0 5
9805: PUSH
9806: LD_VAR 0 9
9810: ADD
9811: ST_TO_ADDR
// result := pom diff diffseznam ;
9812: LD_ADDR_VAR 0 4
9816: PUSH
9817: LD_VAR 0 5
9821: PUSH
9822: LD_VAR 0 3
9826: DIFF
9827: ST_TO_ADDR
// end ;
9828: LD_VAR 0 4
9832: RET
// every 0 0$1 trigger test_is_in_area_burlak and venku marked 991 do var pom ;
9833: CALL 13267 0 0
9837: PUSH
9838: LD_EXP 58
9842: AND
9843: IFFALSE 9930
9845: GO 9847
9847: DISABLE
9848: LD_INT 0
9850: PPUSH
// begin pom = FilterUnitsInArea ( RU1_base , [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
9851: LD_ADDR_VAR 0 1
9855: PUSH
9856: LD_INT 3
9858: PPUSH
9859: LD_INT 22
9861: PUSH
9862: LD_EXP 1
9866: PUSH
9867: EMPTY
9868: LIST
9869: LIST
9870: PUSH
9871: LD_INT 21
9873: PUSH
9874: LD_INT 2
9876: PUSH
9877: EMPTY
9878: LIST
9879: LIST
9880: PUSH
9881: EMPTY
9882: LIST
9883: LIST
9884: PPUSH
9885: CALL_OW 70
9889: ST_TO_ADDR
// if pom > 0 then
9890: LD_VAR 0 1
9894: PUSH
9895: LD_INT 0
9897: GREATER
9898: IFFALSE 9902
// exit ;
9900: GO 9930
// InGameOn ;
9902: CALL_OW 8
// Say ( kurin , D1a-Kur-1 ) ;
9906: LD_EXP 50
9910: PPUSH
9911: LD_STRING D1a-Kur-1
9913: PPUSH
9914: CALL_OW 88
// InGameOff ;
9918: CALL_OW 9
// venku = false ;
9922: LD_ADDR_EXP 58
9926: PUSH
9927: LD_INT 0
9929: ST_TO_ADDR
// end ;
9930: PPOPN 1
9932: END
// every 0 0$1 trigger test_is_in_area_burlak and venku marked 992 do var pom ;
9933: CALL 13267 0 0
9937: PUSH
9938: LD_EXP 58
9942: AND
9943: IFFALSE 10031
9945: GO 9947
9947: DISABLE
9948: LD_INT 0
9950: PPUSH
// begin pom = FilterUnitsInArea ( RU1_base , [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
9951: LD_ADDR_VAR 0 1
9955: PUSH
9956: LD_INT 3
9958: PPUSH
9959: LD_INT 22
9961: PUSH
9962: LD_EXP 1
9966: PUSH
9967: EMPTY
9968: LIST
9969: LIST
9970: PUSH
9971: LD_INT 21
9973: PUSH
9974: LD_INT 2
9976: PUSH
9977: EMPTY
9978: LIST
9979: LIST
9980: PUSH
9981: EMPTY
9982: LIST
9983: LIST
9984: PPUSH
9985: CALL_OW 70
9989: ST_TO_ADDR
// if pom > 0 then
9990: LD_VAR 0 1
9994: PUSH
9995: LD_INT 0
9997: GREATER
9998: IFFALSE 10030
// begin InGameOn ;
10000: CALL_OW 8
// Say ( kurin , D1a-Kur-1a ) ;
10004: LD_EXP 50
10008: PPUSH
10009: LD_STRING D1a-Kur-1a
10011: PPUSH
10012: CALL_OW 88
// InGameOff ;
10016: CALL_OW 9
// venku = false ;
10020: LD_ADDR_EXP 58
10024: PUSH
10025: LD_INT 0
10027: ST_TO_ADDR
// end else
10028: GO 10031
// enable ;
10030: ENABLE
// end ;
10031: PPOPN 1
10033: END
// every 0 0$2 trigger stav > 6 and not IsInArea ( bur , RU2_base ) do
10034: LD_EXP 57
10038: PUSH
10039: LD_INT 6
10041: GREATER
10042: PUSH
10043: LD_EXP 47
10047: PPUSH
10048: LD_INT 1
10050: PPUSH
10051: CALL_OW 308
10055: NOT
10056: AND
10057: IFFALSE 10071
10059: GO 10061
10061: DISABLE
// begin je_mimo = true ;
10062: LD_ADDR_LOC 7
10066: PUSH
10067: LD_INT 1
10069: ST_TO_ADDR
// enable ;
10070: ENABLE
// end ;
10071: END
// export function dialog_belkov_smrt ; var pom ; begin
10072: LD_INT 0
10074: PPUSH
10075: PPUSH
// InGameOn ;
10076: CALL_OW 8
// belkov_solved = 3 ;
10080: LD_ADDR_EXP 45
10084: PUSH
10085: LD_INT 3
10087: ST_TO_ADDR
// if pom >= procento_odkrytych_pro_vyhru [ difficulty ] and FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_breastwork ] ] ) = 0 then
10088: LD_VAR 0 2
10092: PUSH
10093: LD_EXP 39
10097: PUSH
10098: LD_OWVAR 67
10102: ARRAY
10103: GREATEREQUAL
10104: PUSH
10105: LD_INT 9
10107: PPUSH
10108: LD_INT 22
10110: PUSH
10111: LD_EXP 2
10115: PUSH
10116: EMPTY
10117: LIST
10118: LIST
10119: PUSH
10120: LD_INT 30
10122: PUSH
10123: LD_INT 31
10125: PUSH
10126: EMPTY
10127: LIST
10128: LIST
10129: PUSH
10130: EMPTY
10131: LIST
10132: LIST
10133: PPUSH
10134: CALL_OW 70
10138: PUSH
10139: LD_INT 0
10141: EQUAL
10142: AND
10143: IFFALSE 10162
// begin navrat_a_konec = true ;
10145: LD_ADDR_EXP 44
10149: PUSH
10150: LD_INT 1
10152: ST_TO_ADDR
// ChangeMissionObjectives ( M10a ) ;
10153: LD_STRING M10a
10155: PPUSH
10156: CALL_OW 337
// end else
10160: GO 10169
// ChangeMissionObjectives ( M9a ) ;
10162: LD_STRING M9a
10164: PPUSH
10165: CALL_OW 337
// InGameOff ;
10169: CALL_OW 9
// end ;
10173: LD_VAR 0 1
10177: RET
// every 0 0$1 do var pom , i ; var Ru_Units ;
10178: GO 10180
10180: DISABLE
10181: LD_INT 0
10183: PPUSH
10184: PPUSH
10185: PPUSH
// begin Ru_Units = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
10186: LD_ADDR_VAR 0 3
10190: PUSH
10191: LD_INT 22
10193: PUSH
10194: LD_EXP 1
10198: PUSH
10199: EMPTY
10200: LIST
10201: LIST
10202: PUSH
10203: LD_INT 2
10205: PUSH
10206: LD_INT 21
10208: PUSH
10209: LD_INT 1
10211: PUSH
10212: EMPTY
10213: LIST
10214: LIST
10215: PUSH
10216: LD_INT 21
10218: PUSH
10219: LD_INT 2
10221: PUSH
10222: EMPTY
10223: LIST
10224: LIST
10225: PUSH
10226: EMPTY
10227: LIST
10228: LIST
10229: LIST
10230: PUSH
10231: EMPTY
10232: LIST
10233: LIST
10234: PPUSH
10235: CALL_OW 69
10239: ST_TO_ADDR
// for i in Ru_Units do
10240: LD_ADDR_VAR 0 2
10244: PUSH
10245: LD_VAR 0 3
10249: PUSH
10250: FOR_IN
10251: IFFALSE 10370
// begin pom = Attacks ( i ) ;
10253: LD_ADDR_VAR 0 1
10257: PUSH
10258: LD_VAR 0 2
10262: PPUSH
10263: CALL_OW 320
10267: ST_TO_ADDR
// if pom <> 0 then
10268: LD_VAR 0 1
10272: PUSH
10273: LD_INT 0
10275: NONEQUAL
10276: IFFALSE 10318
// if Getside ( pom ) in [ You2 , You3 ] then
10278: LD_VAR 0 1
10282: PPUSH
10283: CALL_OW 255
10287: PUSH
10288: LD_EXP 4
10292: PUSH
10293: LD_EXP 6
10297: PUSH
10298: EMPTY
10299: LIST
10300: LIST
10301: IN
10302: IFFALSE 10318
// konstanta_utoceni = konstanta_utoceni + 1 ;
10304: LD_ADDR_LOC 15
10308: PUSH
10309: LD_LOC 15
10313: PUSH
10314: LD_INT 1
10316: PLUS
10317: ST_TO_ADDR
// if pom = bel or pom = plat or pom = kurin then
10318: LD_VAR 0 1
10322: PUSH
10323: LD_EXP 49
10327: EQUAL
10328: PUSH
10329: LD_VAR 0 1
10333: PUSH
10334: LD_EXP 51
10338: EQUAL
10339: OR
10340: PUSH
10341: LD_VAR 0 1
10345: PUSH
10346: LD_EXP 50
10350: EQUAL
10351: OR
10352: IFFALSE 10368
// konstanta_utoceni = konstanta_utoceni + 10 ;
10354: LD_ADDR_LOC 15
10358: PUSH
10359: LD_LOC 15
10363: PUSH
10364: LD_INT 10
10366: PLUS
10367: ST_TO_ADDR
// end ;
10368: GO 10250
10370: POP
10371: POP
// if konstanta_utoceni < 10 then
10372: LD_LOC 15
10376: PUSH
10377: LD_INT 10
10379: LESS
10380: IFFALSE 10383
// enable ;
10382: ENABLE
// end ;
10383: PPOPN 3
10385: END
// every 0 0$1 trigger konstanta_utoceni >= 10 do
10386: LD_LOC 15
10390: PUSH
10391: LD_INT 10
10393: GREATEREQUAL
10394: IFFALSE 10403
10396: GO 10398
10398: DISABLE
// begin konec_mise_utok ;
10399: CALL 213 0 0
// end ;
10403: END
// export function hint_skilly ; begin
10404: LD_INT 0
10406: PPUSH
// Hint ( Skills ) ;
10407: LD_STRING Skills
10409: PPUSH
10410: CALL_OW 339
// end ;
10414: LD_VAR 0 1
10418: RET
// every 0 0$2 do var pom ; var i ; var hinton ;
10419: GO 10421
10421: DISABLE
10422: LD_INT 0
10424: PPUSH
10425: PPUSH
10426: PPUSH
// begin hinton = false ;
10427: LD_ADDR_VAR 0 3
10431: PUSH
10432: LD_INT 0
10434: ST_TO_ADDR
// pom = FilterUnitsInArea ( VEHCAP , [ [ f_side , Amici ] , [ f_type , unit_vehicle ] ] ) ;
10435: LD_ADDR_VAR 0 1
10439: PUSH
10440: LD_INT 30
10442: PPUSH
10443: LD_INT 22
10445: PUSH
10446: LD_EXP 2
10450: PUSH
10451: EMPTY
10452: LIST
10453: LIST
10454: PUSH
10455: LD_INT 21
10457: PUSH
10458: LD_INT 2
10460: PUSH
10461: EMPTY
10462: LIST
10463: LIST
10464: PUSH
10465: EMPTY
10466: LIST
10467: LIST
10468: PPUSH
10469: CALL_OW 70
10473: ST_TO_ADDR
// for i in pom do
10474: LD_ADDR_VAR 0 2
10478: PUSH
10479: LD_VAR 0 1
10483: PUSH
10484: FOR_IN
10485: IFFALSE 10512
// if IsDrivenBy ( i ) = 0 then
10487: LD_VAR 0 2
10491: PPUSH
10492: CALL_OW 311
10496: PUSH
10497: LD_INT 0
10499: EQUAL
10500: IFFALSE 10510
// hinton = true ;
10502: LD_ADDR_VAR 0 3
10506: PUSH
10507: LD_INT 1
10509: ST_TO_ADDR
10510: GO 10484
10512: POP
10513: POP
// if hinton then
10514: LD_VAR 0 3
10518: IFFALSE 10529
// Hint ( CapturingVehicles1 ) else
10520: LD_STRING CapturingVehicles1
10522: PPUSH
10523: CALL_OW 339
10527: GO 10530
// enable ;
10529: ENABLE
// end ;
10530: PPOPN 3
10532: END
// every 0 0$2 do var pom , i ; var BUDE_hint ;
10533: GO 10535
10535: DISABLE
10536: LD_INT 0
10538: PPUSH
10539: PPUSH
10540: PPUSH
// begin BUDE_hint = false ;
10541: LD_ADDR_VAR 0 3
10545: PUSH
10546: LD_INT 0
10548: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_building ] ] ) ;
10549: LD_ADDR_VAR 0 1
10553: PUSH
10554: LD_INT 22
10556: PUSH
10557: LD_EXP 1
10561: PUSH
10562: EMPTY
10563: LIST
10564: LIST
10565: PUSH
10566: LD_INT 21
10568: PUSH
10569: LD_INT 3
10571: PUSH
10572: EMPTY
10573: LIST
10574: LIST
10575: PUSH
10576: EMPTY
10577: LIST
10578: LIST
10579: PPUSH
10580: CALL_OW 69
10584: ST_TO_ADDR
// for i in pom do
10585: LD_ADDR_VAR 0 2
10589: PUSH
10590: LD_VAR 0 1
10594: PUSH
10595: FOR_IN
10596: IFFALSE 10623
// if IsConstructed ( i ) <> 0 then
10598: LD_VAR 0 2
10602: PPUSH
10603: CALL_OW 304
10607: PUSH
10608: LD_INT 0
10610: NONEQUAL
10611: IFFALSE 10621
// BUDE_hint = true ;
10613: LD_ADDR_VAR 0 3
10617: PUSH
10618: LD_INT 1
10620: ST_TO_ADDR
10621: GO 10595
10623: POP
10624: POP
// if BUDE_hint then
10625: LD_VAR 0 3
10629: IFFALSE 10640
// Hint ( Building2 ) else
10631: LD_STRING Building2
10633: PPUSH
10634: CALL_OW 339
10638: GO 10641
// enable ;
10640: ENABLE
// end ; end_of_file
10641: PPOPN 3
10643: END
// var PlayingLooped ; export function play_dialog_15 ; begin
10644: LD_INT 0
10646: PPUSH
// while playing do
10647: LD_EXP 31
10651: IFFALSE 10662
// wait ( 0 0$1 ) ;
10653: LD_INT 35
10655: PPUSH
10656: CALL_OW 67
10660: GO 10647
// playing := true ;
10662: LD_ADDR_EXP 31
10666: PUSH
10667: LD_INT 1
10669: ST_TO_ADDR
// CenterOnXY ( 60 , 52 ) ;
10670: LD_INT 60
10672: PPUSH
10673: LD_INT 52
10675: PPUSH
10676: CALL_OW 84
// DialogueOn ;
10680: CALL_OW 6
// say ( Bur , D15-Bur-1 ) ;
10684: LD_EXP 47
10688: PPUSH
10689: LD_STRING D15-Bur-1
10691: PPUSH
10692: CALL_OW 88
// if IsOK ( Gny ) then
10696: LD_EXP 46
10700: PPUSH
10701: CALL_OW 302
10705: IFFALSE 10721
// say ( Gny , D15-Gny-1 ) else
10707: LD_EXP 46
10711: PPUSH
10712: LD_STRING D15-Gny-1
10714: PPUSH
10715: CALL_OW 88
10719: GO 10760
// if not BelkovFreed and IsOK ( Kov ) then
10721: LD_EXP 13
10725: NOT
10726: PUSH
10727: LD_EXP 48
10731: PPUSH
10732: CALL_OW 302
10736: AND
10737: IFFALSE 10753
// say ( Kov , D15-Kov-1 ) else
10739: LD_EXP 48
10743: PPUSH
10744: LD_STRING D15-Kov-1
10746: PPUSH
10747: CALL_OW 88
10751: GO 10760
// Wait ( 0 0$5 ) ;
10753: LD_INT 175
10755: PPUSH
10756: CALL_OW 67
// if not InWest then
10760: LD_EXP 28
10764: NOT
10765: IFFALSE 10823
// begin say ( Bur , D15-Bur-2 ) ;
10767: LD_EXP 47
10771: PPUSH
10772: LD_STRING D15-Bur-2
10774: PPUSH
10775: CALL_OW 88
// if IsOK ( Kov ) then
10779: LD_EXP 48
10783: PPUSH
10784: CALL_OW 302
10788: IFFALSE 10804
// say ( Kov , D15-Kov-2 ) else
10790: LD_EXP 48
10794: PPUSH
10795: LD_STRING D15-Kov-2
10797: PPUSH
10798: CALL_OW 88
10802: GO 10811
// wait ( 0 0$5 ) ;
10804: LD_INT 175
10806: PPUSH
10807: CALL_OW 67
// say ( Bur , D15-Bur-3 ) ;
10811: LD_EXP 47
10815: PPUSH
10816: LD_STRING D15-Bur-3
10818: PPUSH
10819: CALL_OW 88
// end ; DialogueOff ;
10823: CALL_OW 7
// CenterOnUnits ( BurlakComp ) ;
10827: LD_EXP 11
10831: PPUSH
10832: CALL_OW 85
// playing := false ;
10836: LD_ADDR_EXP 31
10840: PUSH
10841: LD_INT 0
10843: ST_TO_ADDR
// end ;
10844: LD_VAR 0 1
10848: RET
// export function play_dialog_qwbw1 ; begin
10849: LD_INT 0
10851: PPUSH
// while playing do
10852: LD_EXP 31
10856: IFFALSE 10867
// wait ( 0 0$1 ) ;
10858: LD_INT 35
10860: PPUSH
10861: CALL_OW 67
10865: GO 10852
// playing := true ;
10867: LD_ADDR_EXP 31
10871: PUSH
10872: LD_INT 1
10874: ST_TO_ADDR
// say ( Bur , D17-Bur-1 ) ;
10875: LD_EXP 47
10879: PPUSH
10880: LD_STRING D17-Bur-1
10882: PPUSH
10883: CALL_OW 88
// say ( Plat , D17-Pla-1 ) ;
10887: LD_EXP 51
10891: PPUSH
10892: LD_STRING D17-Pla-1
10894: PPUSH
10895: CALL_OW 88
// say ( Bur , D17-Bur-2 ) ;
10899: LD_EXP 47
10903: PPUSH
10904: LD_STRING D17-Bur-2
10906: PPUSH
10907: CALL_OW 88
// say ( Plat , D17-Pla-2 ) ;
10911: LD_EXP 51
10915: PPUSH
10916: LD_STRING D17-Pla-2
10918: PPUSH
10919: CALL_OW 88
// playing := false ;
10923: LD_ADDR_EXP 31
10927: PUSH
10928: LD_INT 0
10930: ST_TO_ADDR
// end ;
10931: LD_VAR 0 1
10935: RET
// export function play_dialog_qwbw2 ; begin
10936: LD_INT 0
10938: PPUSH
// while playing do
10939: LD_EXP 31
10943: IFFALSE 10954
// wait ( 0 0$1 ) ;
10945: LD_INT 35
10947: PPUSH
10948: CALL_OW 67
10952: GO 10939
// playing := true ;
10954: LD_ADDR_EXP 31
10958: PUSH
10959: LD_INT 1
10961: ST_TO_ADDR
// say ( Bur , D18-Bur-1 ) ;
10962: LD_EXP 47
10966: PPUSH
10967: LD_STRING D18-Bur-1
10969: PPUSH
10970: CALL_OW 88
// say ( Plat , D18-Pla-1 ) ;
10974: LD_EXP 51
10978: PPUSH
10979: LD_STRING D18-Pla-1
10981: PPUSH
10982: CALL_OW 88
// say ( Bur , D18-Bur-2 ) ;
10986: LD_EXP 47
10990: PPUSH
10991: LD_STRING D18-Bur-2
10993: PPUSH
10994: CALL_OW 88
// say ( Plat , D18-Pla-2 ) ;
10998: LD_EXP 51
11002: PPUSH
11003: LD_STRING D18-Pla-2
11005: PPUSH
11006: CALL_OW 88
// playing := false ;
11010: LD_ADDR_EXP 31
11014: PUSH
11015: LD_INT 0
11017: ST_TO_ADDR
// end ;
11018: LD_VAR 0 1
11022: RET
// export function play_dialog_19 ; begin
11023: LD_INT 0
11025: PPUSH
// while playing do
11026: LD_EXP 31
11030: IFFALSE 11041
// wait ( 0 0$1 ) ;
11032: LD_INT 35
11034: PPUSH
11035: CALL_OW 67
11039: GO 11026
// playing := true ;
11041: LD_ADDR_EXP 31
11045: PUSH
11046: LD_INT 1
11048: ST_TO_ADDR
// if IsOK ( Gny ) then
11049: LD_EXP 46
11053: PPUSH
11054: CALL_OW 302
11058: IFFALSE 11086
// begin say ( Gny , D19-Gny-1 ) ;
11060: LD_EXP 46
11064: PPUSH
11065: LD_STRING D19-Gny-1
11067: PPUSH
11068: CALL_OW 88
// say ( Bur , D19-Bur-1 ) ;
11072: LD_EXP 47
11076: PPUSH
11077: LD_STRING D19-Bur-1
11079: PPUSH
11080: CALL_OW 88
// end else
11084: GO 11121
// if IsOK ( Kov ) then
11086: LD_EXP 48
11090: PPUSH
11091: CALL_OW 302
11095: IFFALSE 11121
// begin say ( Kov , D19-Kov-1 ) ;
11097: LD_EXP 48
11101: PPUSH
11102: LD_STRING D19-Kov-1
11104: PPUSH
11105: CALL_OW 88
// say ( Bur , D19-Bur-2 ) ;
11109: LD_EXP 47
11113: PPUSH
11114: LD_STRING D19-Bur-2
11116: PPUSH
11117: CALL_OW 88
// end ; playing := false ;
11121: LD_ADDR_EXP 31
11125: PUSH
11126: LD_INT 0
11128: ST_TO_ADDR
// end ;
11129: LD_VAR 0 1
11133: RET
// export function play_dialog_19a ; begin
11134: LD_INT 0
11136: PPUSH
// while playing do
11137: LD_EXP 31
11141: IFFALSE 11152
// wait ( 0 0$1 ) ;
11143: LD_INT 35
11145: PPUSH
11146: CALL_OW 67
11150: GO 11137
// playing := true ;
11152: LD_ADDR_EXP 31
11156: PUSH
11157: LD_INT 1
11159: ST_TO_ADDR
// if IsOK ( Gny ) then
11160: LD_EXP 46
11164: PPUSH
11165: CALL_OW 302
11169: IFFALSE 11185
// say ( Gny , D19A-Gny-1 ) else
11171: LD_EXP 46
11175: PPUSH
11176: LD_STRING D19A-Gny-1
11178: PPUSH
11179: CALL_OW 88
11183: GO 11208
// if IsOK ( Kov ) then
11185: LD_EXP 48
11189: PPUSH
11190: CALL_OW 302
11194: IFFALSE 11208
// say ( Kov , D19A-Kov-1 ) ;
11196: LD_EXP 48
11200: PPUSH
11201: LD_STRING D19A-Kov-1
11203: PPUSH
11204: CALL_OW 88
// playing := false ;
11208: LD_ADDR_EXP 31
11212: PUSH
11213: LD_INT 0
11215: ST_TO_ADDR
// end ;
11216: LD_VAR 0 1
11220: RET
// export function play_dialog_16 ; begin
11221: LD_INT 0
11223: PPUSH
// while playing do
11224: LD_EXP 31
11228: IFFALSE 11239
// wait ( 0 0$1 ) ;
11230: LD_INT 35
11232: PPUSH
11233: CALL_OW 67
11237: GO 11224
// playing := true ;
11239: LD_ADDR_EXP 31
11243: PUSH
11244: LD_INT 1
11246: ST_TO_ADDR
// CenterOnXY ( 90 , 57 ) ;
11247: LD_INT 90
11249: PPUSH
11250: LD_INT 57
11252: PPUSH
11253: CALL_OW 84
// DialogueOn ;
11257: CALL_OW 6
// if IsOK ( Kov ) then
11261: LD_EXP 48
11265: PPUSH
11266: CALL_OW 302
11270: IFFALSE 11305
// if not WBWSpotted then
11272: LD_EXP 15
11276: NOT
11277: IFFALSE 11293
// say ( Kov , D16-Kov-1 ) else
11279: LD_EXP 48
11283: PPUSH
11284: LD_STRING D16-Kov-1
11286: PPUSH
11287: CALL_OW 88
11291: GO 11305
// say ( Kov , D16-Kov-1a ) ;
11293: LD_EXP 48
11297: PPUSH
11298: LD_STRING D16-Kov-1a
11300: PPUSH
11301: CALL_OW 88
// say ( Bur , D16-Bur-1 ) ;
11305: LD_EXP 47
11309: PPUSH
11310: LD_STRING D16-Bur-1
11312: PPUSH
11313: CALL_OW 88
// if IsOK ( Gny ) then
11317: LD_EXP 46
11321: PPUSH
11322: CALL_OW 302
11326: IFFALSE 11340
// say ( Gny , D16-Gny-1 ) ;
11328: LD_EXP 46
11332: PPUSH
11333: LD_STRING D16-Gny-1
11335: PPUSH
11336: CALL_OW 88
// DialogueOff ;
11340: CALL_OW 7
// CenterOnUnits ( BurlakComp ) ;
11344: LD_EXP 11
11348: PPUSH
11349: CALL_OW 85
// playing := false ;
11353: LD_ADDR_EXP 31
11357: PUSH
11358: LD_INT 0
11360: ST_TO_ADDR
// end ;
11361: LD_VAR 0 1
11365: RET
// export function play_dialog_20 ; begin
11366: LD_INT 0
11368: PPUSH
// while playing do
11369: LD_EXP 31
11373: IFFALSE 11384
// wait ( 0 0$1 ) ;
11375: LD_INT 35
11377: PPUSH
11378: CALL_OW 67
11382: GO 11369
// playing := true ;
11384: LD_ADDR_EXP 31
11388: PUSH
11389: LD_INT 1
11391: ST_TO_ADDR
// say ( Bur , D20-Bur-1 ) ;
11392: LD_EXP 47
11396: PPUSH
11397: LD_STRING D20-Bur-1
11399: PPUSH
11400: CALL_OW 88
// say ( Plat , D20-Pla-1 ) ;
11404: LD_EXP 51
11408: PPUSH
11409: LD_STRING D20-Pla-1
11411: PPUSH
11412: CALL_OW 88
// playing := false ;
11416: LD_ADDR_EXP 31
11420: PUSH
11421: LD_INT 0
11423: ST_TO_ADDR
// end ;
11424: LD_VAR 0 1
11428: RET
// export function play_dialog_20a ; begin
11429: LD_INT 0
11431: PPUSH
// while playing do
11432: LD_EXP 31
11436: IFFALSE 11447
// wait ( 0 0$1 ) ;
11438: LD_INT 35
11440: PPUSH
11441: CALL_OW 67
11445: GO 11432
// playing := true ;
11447: LD_ADDR_EXP 31
11451: PUSH
11452: LD_INT 1
11454: ST_TO_ADDR
// say ( Bur , D20a-Bur-1 ) ;
11455: LD_EXP 47
11459: PPUSH
11460: LD_STRING D20a-Bur-1
11462: PPUSH
11463: CALL_OW 88
// say ( Plat , D20a-Pla-1 ) ;
11467: LD_EXP 51
11471: PPUSH
11472: LD_STRING D20a-Pla-1
11474: PPUSH
11475: CALL_OW 88
// playing := false ;
11479: LD_ADDR_EXP 31
11483: PUSH
11484: LD_INT 0
11486: ST_TO_ADDR
// end ;
11487: LD_VAR 0 1
11491: RET
// export function play_dialog_qAtAm1 ; begin
11492: LD_INT 0
11494: PPUSH
// while playing do
11495: LD_EXP 31
11499: IFFALSE 11510
// wait ( 0 0$1 ) ;
11501: LD_INT 35
11503: PPUSH
11504: CALL_OW 67
11508: GO 11495
// playing := true ;
11510: LD_ADDR_EXP 31
11514: PUSH
11515: LD_INT 1
11517: ST_TO_ADDR
// say ( Bur , D21-Bur-1 ) ;
11518: LD_EXP 47
11522: PPUSH
11523: LD_STRING D21-Bur-1
11525: PPUSH
11526: CALL_OW 88
// say ( Plat , D21-Pla-1 ) ;
11530: LD_EXP 51
11534: PPUSH
11535: LD_STRING D21-Pla-1
11537: PPUSH
11538: CALL_OW 88
// playing := false ;
11542: LD_ADDR_EXP 31
11546: PUSH
11547: LD_INT 0
11549: ST_TO_ADDR
// end ;
11550: LD_VAR 0 1
11554: RET
// export function play_dialog_qAtAm2 ; begin
11555: LD_INT 0
11557: PPUSH
// while playing do
11558: LD_EXP 31
11562: IFFALSE 11573
// wait ( 0 0$1 ) ;
11564: LD_INT 35
11566: PPUSH
11567: CALL_OW 67
11571: GO 11558
// playing := true ;
11573: LD_ADDR_EXP 31
11577: PUSH
11578: LD_INT 1
11580: ST_TO_ADDR
// say ( Bur , D22-Bur-1 ) ;
11581: LD_EXP 47
11585: PPUSH
11586: LD_STRING D22-Bur-1
11588: PPUSH
11589: CALL_OW 88
// if ( not Reinforcements ) and ( WBWDestroyed ) then
11593: LD_EXP 27
11597: NOT
11598: PUSH
11599: LD_EXP 17
11603: AND
11604: IFFALSE 11620
// say ( Plat , D22-Pla-1 ) else
11606: LD_EXP 51
11610: PPUSH
11611: LD_STRING D22-Pla-1
11613: PPUSH
11614: CALL_OW 88
11618: GO 11658
// if ( Reinforcements ) and ( WBWDestroyed ) then
11620: LD_EXP 27
11624: PUSH
11625: LD_EXP 17
11629: AND
11630: IFFALSE 11646
// say ( Plat , D22-Pla-1b ) else
11632: LD_EXP 51
11636: PPUSH
11637: LD_STRING D22-Pla-1b
11639: PPUSH
11640: CALL_OW 88
11644: GO 11658
// say ( Plat , D22-Pla-1a ) ;
11646: LD_EXP 51
11650: PPUSH
11651: LD_STRING D22-Pla-1a
11653: PPUSH
11654: CALL_OW 88
// playing := false ;
11658: LD_ADDR_EXP 31
11662: PUSH
11663: LD_INT 0
11665: ST_TO_ADDR
// end ;
11666: LD_VAR 0 1
11670: RET
// export function play_dialog_23 ; begin
11671: LD_INT 0
11673: PPUSH
// while playing do
11674: LD_EXP 31
11678: IFFALSE 11689
// wait ( 0 0$1 ) ;
11680: LD_INT 35
11682: PPUSH
11683: CALL_OW 67
11687: GO 11674
// playing := true ;
11689: LD_ADDR_EXP 31
11693: PUSH
11694: LD_INT 1
11696: ST_TO_ADDR
// if IsOK ( Gny ) then
11697: LD_EXP 46
11701: PPUSH
11702: CALL_OW 302
11706: IFFALSE 11732
// begin say ( Gny , D23-Gny-1 ) ;
11708: LD_EXP 46
11712: PPUSH
11713: LD_STRING D23-Gny-1
11715: PPUSH
11716: CALL_OW 88
// say ( Bur , D23-Bur-1 ) ;
11720: LD_EXP 47
11724: PPUSH
11725: LD_STRING D23-Bur-1
11727: PPUSH
11728: CALL_OW 88
// end ; playing := false ;
11732: LD_ADDR_EXP 31
11736: PUSH
11737: LD_INT 0
11739: ST_TO_ADDR
// end ;
11740: LD_VAR 0 1
11744: RET
// export function play_dialog_24 ; begin
11745: LD_INT 0
11747: PPUSH
// while playing do
11748: LD_EXP 31
11752: IFFALSE 11763
// wait ( 0 0$1 ) ;
11754: LD_INT 35
11756: PPUSH
11757: CALL_OW 67
11761: GO 11748
// playing := true ;
11763: LD_ADDR_EXP 31
11767: PUSH
11768: LD_INT 1
11770: ST_TO_ADDR
// if not IsOK ( Bel ) then
11771: LD_EXP 49
11775: PPUSH
11776: CALL_OW 302
11780: NOT
11781: IFFALSE 11794
// begin Msg ( Bel is killed. Please report this bug. Mission will now be terminated. ) ;
11783: LD_STRING Bel is killed. Please report this bug. Mission will now be terminated.
11785: PPUSH
11786: CALL_OW 100
// konec_mise ;
11790: CALL 228 0 0
// end ; say ( Bel , D24-Bel-1 ) ;
11794: LD_EXP 49
11798: PPUSH
11799: LD_STRING D24-Bel-1
11801: PPUSH
11802: CALL_OW 88
// if BELKOV_MRTVY then
11806: LD_EXP 43
11810: IFFALSE 11826
// say ( Bur , D24-Bur-1a ) else
11812: LD_EXP 47
11816: PPUSH
11817: LD_STRING D24-Bur-1a
11819: PPUSH
11820: CALL_OW 88
11824: GO 11838
// say ( Bur , D24-Bur-1 ) ;
11826: LD_EXP 47
11830: PPUSH
11831: LD_STRING D24-Bur-1
11833: PPUSH
11834: CALL_OW 88
// say ( Bel , D24-Bel-2 ) ;
11838: LD_EXP 49
11842: PPUSH
11843: LD_STRING D24-Bel-2
11845: PPUSH
11846: CALL_OW 88
// say ( Bur , D24-Bur-2 ) ;
11850: LD_EXP 47
11854: PPUSH
11855: LD_STRING D24-Bur-2
11857: PPUSH
11858: CALL_OW 88
// if ( GetSide ( auto_belkov ) = you ) then
11862: LD_EXP 67
11866: PPUSH
11867: CALL_OW 255
11871: PUSH
11872: LD_EXP 1
11876: EQUAL
11877: IFFALSE 11891
// begin say ( Bur , D24-Bur-2a ) ;
11879: LD_EXP 47
11883: PPUSH
11884: LD_STRING D24-Bur-2a
11886: PPUSH
11887: CALL_OW 88
// end ; say ( Plat , D24-Pla-2 ) ;
11891: LD_EXP 51
11895: PPUSH
11896: LD_STRING D24-Pla-2
11898: PPUSH
11899: CALL_OW 88
// if WBWSpotted and ( not WBWDestroyed ) then
11903: LD_EXP 15
11907: PUSH
11908: LD_EXP 17
11912: NOT
11913: AND
11914: IFFALSE 11928
// begin say ( Plat , D24-Pla-2a ) ;
11916: LD_EXP 51
11920: PPUSH
11921: LD_STRING D24-Pla-2a
11923: PPUSH
11924: CALL_OW 88
// end ; playing := false ;
11928: LD_ADDR_EXP 31
11932: PUSH
11933: LD_INT 0
11935: ST_TO_ADDR
// end ;
11936: LD_VAR 0 1
11940: RET
// export function play_dialog_25 ; var SomethingNew ; begin
11941: LD_INT 0
11943: PPUSH
11944: PPUSH
// while playing do
11945: LD_EXP 31
11949: IFFALSE 11960
// wait ( 0 0$1 ) ;
11951: LD_INT 35
11953: PPUSH
11954: CALL_OW 67
11958: GO 11945
// playing := true ;
11960: LD_ADDR_EXP 31
11964: PUSH
11965: LD_INT 1
11967: ST_TO_ADDR
// say ( Plat , D25-Pla-1 ) ;
11968: LD_EXP 51
11972: PPUSH
11973: LD_STRING D25-Pla-1
11975: PPUSH
11976: CALL_OW 88
// SomethingNew := false ;
11980: LD_ADDR_VAR 0 2
11984: PUSH
11985: LD_INT 0
11987: ST_TO_ADDR
// if ( WBWSpotted ) and ( not WBWDestroyed ) and ( not WBWReported ) and ( EBWSpotted ) and ( not EBWDestroyed ) and ( not EBWReported ) then
11988: LD_EXP 15
11992: PUSH
11993: LD_EXP 17
11997: NOT
11998: AND
11999: PUSH
12000: LD_EXP 18
12004: NOT
12005: AND
12006: PUSH
12007: LD_EXP 19
12011: AND
12012: PUSH
12013: LD_EXP 20
12017: NOT
12018: AND
12019: PUSH
12020: LD_EXP 21
12024: NOT
12025: AND
12026: IFFALSE 12064
// begin say ( Bur , D25-Bur-1 ) ;
12028: LD_EXP 47
12032: PPUSH
12033: LD_STRING D25-Bur-1
12035: PPUSH
12036: CALL_OW 88
// WBWReported := true ;
12040: LD_ADDR_EXP 18
12044: PUSH
12045: LD_INT 1
12047: ST_TO_ADDR
// EBWReported := true ;
12048: LD_ADDR_EXP 21
12052: PUSH
12053: LD_INT 1
12055: ST_TO_ADDR
// SomethingNew := true ;
12056: LD_ADDR_VAR 0 2
12060: PUSH
12061: LD_INT 1
12063: ST_TO_ADDR
// end ; if EBWSpotted and ( not EBWDestroyed ) and ( not EBWReported ) then
12064: LD_EXP 19
12068: PUSH
12069: LD_EXP 20
12073: NOT
12074: AND
12075: PUSH
12076: LD_EXP 21
12080: NOT
12081: AND
12082: IFFALSE 12112
// begin say ( Bur , D25-Bur-1a ) ;
12084: LD_EXP 47
12088: PPUSH
12089: LD_STRING D25-Bur-1a
12091: PPUSH
12092: CALL_OW 88
// EBWReported := true ;
12096: LD_ADDR_EXP 21
12100: PUSH
12101: LD_INT 1
12103: ST_TO_ADDR
// SomethingNew := true ;
12104: LD_ADDR_VAR 0 2
12108: PUSH
12109: LD_INT 1
12111: ST_TO_ADDR
// end ; if WBWSpotted and ( not WBWDestroyed ) and ( not WBWReported ) then
12112: LD_EXP 15
12116: PUSH
12117: LD_EXP 17
12121: NOT
12122: AND
12123: PUSH
12124: LD_EXP 18
12128: NOT
12129: AND
12130: IFFALSE 12172
// begin say ( Bur , D25-Bur-1b ) ;
12132: LD_EXP 47
12136: PPUSH
12137: LD_STRING D25-Bur-1b
12139: PPUSH
12140: CALL_OW 88
// say ( Bur , D25b-Bur-1 ) ;
12144: LD_EXP 47
12148: PPUSH
12149: LD_STRING D25b-Bur-1
12151: PPUSH
12152: CALL_OW 88
// WBWReported := true ;
12156: LD_ADDR_EXP 18
12160: PUSH
12161: LD_INT 1
12163: ST_TO_ADDR
// SomethingNew := true ;
12164: LD_ADDR_VAR 0 2
12168: PUSH
12169: LD_INT 1
12171: ST_TO_ADDR
// end ; if ( not SomethingNew ) then
12172: LD_VAR 0 2
12176: NOT
12177: IFFALSE 12191
// say ( Bur , D25-Bur-1c ) ;
12179: LD_EXP 47
12183: PPUSH
12184: LD_STRING D25-Bur-1c
12186: PPUSH
12187: CALL_OW 88
// playing := false ;
12191: LD_ADDR_EXP 31
12195: PUSH
12196: LD_INT 0
12198: ST_TO_ADDR
// end ;
12199: LD_VAR 0 1
12203: RET
// export function play_dialog_25a ; var SomethingNew ; begin
12204: LD_INT 0
12206: PPUSH
12207: PPUSH
// while playing do
12208: LD_EXP 31
12212: IFFALSE 12223
// wait ( 0 0$1 ) ;
12214: LD_INT 35
12216: PPUSH
12217: CALL_OW 67
12221: GO 12208
// playing := true ;
12223: LD_ADDR_EXP 31
12227: PUSH
12228: LD_INT 1
12230: ST_TO_ADDR
// say ( Plat , D25a-Pla-1 ) ;
12231: LD_EXP 51
12235: PPUSH
12236: LD_STRING D25a-Pla-1
12238: PPUSH
12239: CALL_OW 88
// SomethingNew := false ;
12243: LD_ADDR_VAR 0 2
12247: PUSH
12248: LD_INT 0
12250: ST_TO_ADDR
// if WBWSpotted and ( not WBWDestroyed ) and ( not WBWReported ) then
12251: LD_EXP 15
12255: PUSH
12256: LD_EXP 17
12260: NOT
12261: AND
12262: PUSH
12263: LD_EXP 18
12267: NOT
12268: AND
12269: IFFALSE 12311
// begin say ( Bur , D25a-Bur-1b ) ;
12271: LD_EXP 47
12275: PPUSH
12276: LD_STRING D25a-Bur-1b
12278: PPUSH
12279: CALL_OW 88
// say ( Bur , D25b-Bur-1 ) ;
12283: LD_EXP 47
12287: PPUSH
12288: LD_STRING D25b-Bur-1
12290: PPUSH
12291: CALL_OW 88
// WBWReported := true ;
12295: LD_ADDR_EXP 18
12299: PUSH
12300: LD_INT 1
12302: ST_TO_ADDR
// SomethingNew := true ;
12303: LD_ADDR_VAR 0 2
12307: PUSH
12308: LD_INT 1
12310: ST_TO_ADDR
// end ; if EBWSpotted and ( not EBWDestroyed ) and ( not EBWReported ) then
12311: LD_EXP 19
12315: PUSH
12316: LD_EXP 20
12320: NOT
12321: AND
12322: PUSH
12323: LD_EXP 21
12327: NOT
12328: AND
12329: IFFALSE 12359
// begin say ( Bur , D25a-Bur-1a ) ;
12331: LD_EXP 47
12335: PPUSH
12336: LD_STRING D25a-Bur-1a
12338: PPUSH
12339: CALL_OW 88
// EBWReported := true ;
12343: LD_ADDR_EXP 21
12347: PUSH
12348: LD_INT 1
12350: ST_TO_ADDR
// SomethingNew := true ;
12351: LD_ADDR_VAR 0 2
12355: PUSH
12356: LD_INT 1
12358: ST_TO_ADDR
// end ; if ( not SomethingNew ) then
12359: LD_VAR 0 2
12363: NOT
12364: IFFALSE 12378
// say ( Bur , D25a-Bur-1 ) ;
12366: LD_EXP 47
12370: PPUSH
12371: LD_STRING D25a-Bur-1
12373: PPUSH
12374: CALL_OW 88
// playing := false ;
12378: LD_ADDR_EXP 31
12382: PUSH
12383: LD_INT 0
12385: ST_TO_ADDR
// end ;
12386: LD_VAR 0 1
12390: RET
// export function play_dialog_25b ; begin
12391: LD_INT 0
12393: PPUSH
// while playing do
12394: LD_EXP 31
12398: IFFALSE 12409
// wait ( 0 0$1 ) ;
12400: LD_INT 35
12402: PPUSH
12403: CALL_OW 67
12407: GO 12394
// playing := true ;
12409: LD_ADDR_EXP 31
12413: PUSH
12414: LD_INT 1
12416: ST_TO_ADDR
// say ( Plat , D25b-Pla-1 ) ;
12417: LD_EXP 51
12421: PPUSH
12422: LD_STRING D25b-Pla-1
12424: PPUSH
12425: CALL_OW 88
// playing := false ;
12429: LD_ADDR_EXP 31
12433: PUSH
12434: LD_INT 0
12436: ST_TO_ADDR
// end ;
12437: LD_VAR 0 1
12441: RET
// export function play_dialog_25c ; begin
12442: LD_INT 0
12444: PPUSH
// while playing do
12445: LD_EXP 31
12449: IFFALSE 12460
// wait ( 0 0$1 ) ;
12451: LD_INT 35
12453: PPUSH
12454: CALL_OW 67
12458: GO 12445
// playing := true ;
12460: LD_ADDR_EXP 31
12464: PUSH
12465: LD_INT 1
12467: ST_TO_ADDR
// if ( not WBWSpotted ) then
12468: LD_EXP 15
12472: NOT
12473: IFFALSE 12489
// say ( Plat , D25c-Pla-1 ) else
12475: LD_EXP 51
12479: PPUSH
12480: LD_STRING D25c-Pla-1
12482: PPUSH
12483: CALL_OW 88
12487: GO 12501
// say ( Plat , D25c-Pla-1a ) ;
12489: LD_EXP 51
12493: PPUSH
12494: LD_STRING D25c-Pla-1a
12496: PPUSH
12497: CALL_OW 88
// playing := false ;
12501: LD_ADDR_EXP 31
12505: PUSH
12506: LD_INT 0
12508: ST_TO_ADDR
// end ;
12509: LD_VAR 0 1
12513: RET
// every 0 0$5 do
12514: GO 12516
12516: DISABLE
// begin if Playing then
12517: LD_EXP 31
12521: IFFALSE 12539
// PlayingLooped := PlayingLooped + 1 else
12523: LD_ADDR_LOC 17
12527: PUSH
12528: LD_LOC 17
12532: PUSH
12533: LD_INT 1
12535: PLUS
12536: ST_TO_ADDR
12537: GO 12547
// PlayingLooped := 0 ;
12539: LD_ADDR_LOC 17
12543: PUSH
12544: LD_INT 0
12546: ST_TO_ADDR
// if PlayingLooped >= 30 then
12547: LD_LOC 17
12551: PUSH
12552: LD_INT 30
12554: GREATEREQUAL
12555: IFFALSE 12572
// begin msg ( Playing too long. Possible bug. Please report. ) ;
12557: LD_STRING Playing too long. Possible bug. Please report.
12559: PPUSH
12560: CALL_OW 100
// Playing := false ;
12564: LD_ADDR_EXP 31
12568: PUSH
12569: LD_INT 0
12571: ST_TO_ADDR
// end ; enable end ; end_of_file
12572: ENABLE
12573: END
// export Gny ; export bur ; export Kov ; export bel ; export kurin ; export plat ; export Rusi_enter ; export Rusi_sever ; export Rusi_01 ; export rusi_survivors ; export stav_utoku ; export stav ; export venku ; export videli_w ; export videli_e ; export bedny ; export bedny_hint ; export videne ; export zasilek ; export posily_go ; export saved_bel ; export auto_belkov ; var pocet_uukazani ; var BurSk ; var BelSk ; var GnySk ; every 0 0$0.1 do var i ;
12574: GO 12576
12576: DISABLE
12577: LD_INT 0
12579: PPUSH
// begin zasilek = 0 ;
12580: LD_ADDR_EXP 64
12584: PUSH
12585: LD_INT 0
12587: ST_TO_ADDR
// bedny_hint = false ;
12588: LD_ADDR_EXP 62
12592: PUSH
12593: LD_INT 0
12595: ST_TO_ADDR
// stav = 0 ;
12596: LD_ADDR_EXP 57
12600: PUSH
12601: LD_INT 0
12603: ST_TO_ADDR
// Rusi_enter = FilterUnitsInArea ( RU1_base , [ [ f_side , You ] ] ) ;
12604: LD_ADDR_EXP 52
12608: PUSH
12609: LD_INT 3
12611: PPUSH
12612: LD_INT 22
12614: PUSH
12615: LD_EXP 1
12619: PUSH
12620: EMPTY
12621: LIST
12622: LIST
12623: PUSH
12624: EMPTY
12625: LIST
12626: PPUSH
12627: CALL_OW 70
12631: ST_TO_ADDR
// BurlakComp = Rusi_enter ;
12632: LD_ADDR_EXP 11
12636: PUSH
12637: LD_EXP 52
12641: ST_TO_ADDR
// venku = false ;
12642: LD_ADDR_EXP 58
12646: PUSH
12647: LD_INT 0
12649: ST_TO_ADDR
// stav_utoku = 0 ;
12650: LD_ADDR_EXP 56
12654: PUSH
12655: LD_INT 0
12657: ST_TO_ADDR
// videli_w = false ;
12658: LD_ADDR_EXP 59
12662: PUSH
12663: LD_INT 0
12665: ST_TO_ADDR
// videli_e = false ;
12666: LD_ADDR_EXP 60
12670: PUSH
12671: LD_INT 0
12673: ST_TO_ADDR
// bedny = [ ] ;
12674: LD_ADDR_EXP 61
12678: PUSH
12679: EMPTY
12680: ST_TO_ADDR
// videne = [ ] ;
12681: LD_ADDR_EXP 63
12685: PUSH
12686: EMPTY
12687: ST_TO_ADDR
// Rusi_sever = [ bel ] ;
12688: LD_ADDR_EXP 53
12692: PUSH
12693: LD_EXP 49
12697: PUSH
12698: EMPTY
12699: LIST
12700: ST_TO_ADDR
// Rusi_01 = [ ] ;
12701: LD_ADDR_EXP 54
12705: PUSH
12706: EMPTY
12707: ST_TO_ADDR
// posily_go = false ;
12708: LD_ADDR_EXP 65
12712: PUSH
12713: LD_INT 0
12715: ST_TO_ADDR
// saved_bel = false ;
12716: LD_ADDR_EXP 66
12720: PUSH
12721: LD_INT 0
12723: ST_TO_ADDR
// pocet_uukazani = 0 ;
12724: LD_ADDR_LOC 18
12728: PUSH
12729: LD_INT 0
12731: ST_TO_ADDR
// for i in [ 501 , 502 , 503 , 599 ] do
12732: LD_ADDR_VAR 0 1
12736: PUSH
12737: LD_INT 501
12739: PUSH
12740: LD_INT 502
12742: PUSH
12743: LD_INT 503
12745: PUSH
12746: LD_INT 599
12748: PUSH
12749: EMPTY
12750: LIST
12751: LIST
12752: LIST
12753: LIST
12754: PUSH
12755: FOR_IN
12756: IFFALSE 12765
// disable ( i ) ;
12758: LD_VAR 0 1
12762: DISABLE_MARKED
12763: GO 12755
12765: POP
12766: POP
// nastaveni_zacatku_skillu ;
12767: CALL 12774 0 0
// end ;
12771: PPOPN 1
12773: END
// function nastaveni_zacatku_skillu ; begin
12774: LD_INT 0
12776: PPUSH
// if IsOK ( bur ) then
12777: LD_EXP 47
12781: PPUSH
12782: CALL_OW 302
12786: IFFALSE 12851
// BurSk := [ GetSkill ( bur , 1 ) , GetSkill ( bur , 2 ) , GetSkill ( bur , 3 ) , GetSkill ( bur , 4 ) ] ;
12788: LD_ADDR_LOC 19
12792: PUSH
12793: LD_EXP 47
12797: PPUSH
12798: LD_INT 1
12800: PPUSH
12801: CALL_OW 259
12805: PUSH
12806: LD_EXP 47
12810: PPUSH
12811: LD_INT 2
12813: PPUSH
12814: CALL_OW 259
12818: PUSH
12819: LD_EXP 47
12823: PPUSH
12824: LD_INT 3
12826: PPUSH
12827: CALL_OW 259
12831: PUSH
12832: LD_EXP 47
12836: PPUSH
12837: LD_INT 4
12839: PPUSH
12840: CALL_OW 259
12844: PUSH
12845: EMPTY
12846: LIST
12847: LIST
12848: LIST
12849: LIST
12850: ST_TO_ADDR
// if IsOK ( Gny ) then
12851: LD_EXP 46
12855: PPUSH
12856: CALL_OW 302
12860: IFFALSE 12925
// GnySk := [ GetSkill ( Gny , 1 ) , GetSkill ( Gny , 2 ) , GetSkill ( Gny , 3 ) , GetSkill ( Gny , 4 ) ] ;
12862: LD_ADDR_LOC 21
12866: PUSH
12867: LD_EXP 46
12871: PPUSH
12872: LD_INT 1
12874: PPUSH
12875: CALL_OW 259
12879: PUSH
12880: LD_EXP 46
12884: PPUSH
12885: LD_INT 2
12887: PPUSH
12888: CALL_OW 259
12892: PUSH
12893: LD_EXP 46
12897: PPUSH
12898: LD_INT 3
12900: PPUSH
12901: CALL_OW 259
12905: PUSH
12906: LD_EXP 46
12910: PPUSH
12911: LD_INT 4
12913: PPUSH
12914: CALL_OW 259
12918: PUSH
12919: EMPTY
12920: LIST
12921: LIST
12922: LIST
12923: LIST
12924: ST_TO_ADDR
// if IsOK ( bel ) then
12925: LD_EXP 49
12929: PPUSH
12930: CALL_OW 302
12934: IFFALSE 12999
// BelSk := [ GetSkill ( bel , 1 ) , GetSkill ( bel , 2 ) , GetSkill ( bel , 3 ) , GetSkill ( bel , 4 ) ] ;
12936: LD_ADDR_LOC 20
12940: PUSH
12941: LD_EXP 49
12945: PPUSH
12946: LD_INT 1
12948: PPUSH
12949: CALL_OW 259
12953: PUSH
12954: LD_EXP 49
12958: PPUSH
12959: LD_INT 2
12961: PPUSH
12962: CALL_OW 259
12966: PUSH
12967: LD_EXP 49
12971: PPUSH
12972: LD_INT 3
12974: PPUSH
12975: CALL_OW 259
12979: PUSH
12980: LD_EXP 49
12984: PPUSH
12985: LD_INT 4
12987: PPUSH
12988: CALL_OW 259
12992: PUSH
12993: EMPTY
12994: LIST
12995: LIST
12996: LIST
12997: LIST
12998: ST_TO_ADDR
// end ;
12999: LD_VAR 0 1
13003: RET
// export function uklid_rusu ; begin
13004: LD_INT 0
13006: PPUSH
// ComEnterUnit ( RU1_vb1 , RU1_bu1 ) ;
13007: LD_INT 12
13009: PPUSH
13010: LD_INT 6
13012: PPUSH
13013: CALL_OW 120
// ComEnterUnit ( RU1_vb2 , RU1_bu2 ) ;
13017: LD_INT 13
13019: PPUSH
13020: LD_INT 14
13022: PPUSH
13023: CALL_OW 120
// ComEnterUnit ( bel , RU1_bar ) ;
13027: LD_EXP 49
13031: PPUSH
13032: LD_INT 5
13034: PPUSH
13035: CALL_OW 120
// ComEnterUnit ( RU1_sol1 , RU1_bar ) ;
13039: LD_INT 28
13041: PPUSH
13042: LD_INT 5
13044: PPUSH
13045: CALL_OW 120
// ComEnterUnit ( RU1_sol2 , RU1_bar ) ;
13049: LD_INT 29
13051: PPUSH
13052: LD_INT 5
13054: PPUSH
13055: CALL_OW 120
// ComEnterUnit ( RU1_vo1 , RU1_bar ) ;
13059: LD_INT 20
13061: PPUSH
13062: LD_INT 5
13064: PPUSH
13065: CALL_OW 120
// ComEnterUnit ( RU1_sci1 , RU1_lab ) ;
13069: LD_INT 27
13071: PPUSH
13072: LD_INT 3
13074: PPUSH
13075: CALL_OW 120
// ComEnterUnit ( RU1_sci2 , RU1_lab ) ;
13079: LD_INT 19
13081: PPUSH
13082: LD_INT 3
13084: PPUSH
13085: CALL_OW 120
// ComEnterUnit ( RU1_eng1 , RU1_dep ) ;
13089: LD_INT 18
13091: PPUSH
13092: LD_INT 1
13094: PPUSH
13095: CALL_OW 120
// ComEnterUnit ( RU1_me1 , RU1_tov ) ;
13099: LD_INT 17
13101: PPUSH
13102: LD_INT 2
13104: PPUSH
13105: CALL_OW 120
// ComMoveXY ( plat , 67 , 90 ) ;
13109: LD_EXP 51
13113: PPUSH
13114: LD_INT 67
13116: PPUSH
13117: LD_INT 90
13119: PPUSH
13120: CALL_OW 111
// AddComHold ( plat ) ;
13124: LD_EXP 51
13128: PPUSH
13129: CALL_OW 200
// ComEnterUnit ( Ru2_vb1 , Ru2_bu1 ) ;
13133: LD_INT 9
13135: PPUSH
13136: LD_INT 4
13138: PPUSH
13139: CALL_OW 120
// ComEnterUnit ( Ru2_vb2 , Ru2_bu2 ) ;
13143: LD_INT 10
13145: PPUSH
13146: LD_INT 11
13148: PPUSH
13149: CALL_OW 120
// end ;
13153: LD_VAR 0 1
13157: RET
// every 0 0$30 trigger stav > 2 and stav < 7 do var pom ;
13158: LD_EXP 57
13162: PUSH
13163: LD_INT 2
13165: GREATER
13166: PUSH
13167: LD_EXP 57
13171: PUSH
13172: LD_INT 7
13174: LESS
13175: AND
13176: IFFALSE 13237
13178: GO 13180
13180: DISABLE
13181: LD_INT 0
13183: PPUSH
// begin ComFree ( plat ) ;
13184: LD_EXP 51
13188: PPUSH
13189: CALL_OW 139
// pom = RandHexArea ( RU2_base , true ) ;
13193: LD_ADDR_VAR 0 1
13197: PUSH
13198: LD_INT 1
13200: PPUSH
13201: LD_INT 1
13203: PPUSH
13204: CALL_OW 16
13208: ST_TO_ADDR
// AddComMoveXY ( plat , pom [ 1 ] , pom [ 2 ] ) ;
13209: LD_EXP 51
13213: PPUSH
13214: LD_VAR 0 1
13218: PUSH
13219: LD_INT 1
13221: ARRAY
13222: PPUSH
13223: LD_VAR 0 1
13227: PUSH
13228: LD_INT 2
13230: ARRAY
13231: PPUSH
13232: CALL_OW 171
// enable ;
13236: ENABLE
// end ;
13237: PPOPN 1
13239: END
// every 0 0$1 trigger not venku and not test_is_in_area_burlak do
13240: LD_EXP 58
13244: NOT
13245: PUSH
13246: CALL 13267 0 0
13250: NOT
13251: AND
13252: IFFALSE 13266
13254: GO 13256
13256: DISABLE
// begin venku = true ;
13257: LD_ADDR_EXP 58
13261: PUSH
13262: LD_INT 1
13264: ST_TO_ADDR
// enable ;
13265: ENABLE
// end ;
13266: END
// export function test_is_in_area_burlak ; var a ; var pom , i ; begin
13267: LD_INT 0
13269: PPUSH
13270: PPUSH
13271: PPUSH
13272: PPUSH
// a = false ;
13273: LD_ADDR_VAR 0 2
13277: PUSH
13278: LD_INT 0
13280: ST_TO_ADDR
// if IsInArea ( bur , RU1_base ) then
13281: LD_EXP 47
13285: PPUSH
13286: LD_INT 3
13288: PPUSH
13289: CALL_OW 308
13293: IFFALSE 13303
// a = true ;
13295: LD_ADDR_VAR 0 2
13299: PUSH
13300: LD_INT 1
13302: ST_TO_ADDR
// pom = FilterUnitsInArea ( RU1_base , [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
13303: LD_ADDR_VAR 0 3
13307: PUSH
13308: LD_INT 3
13310: PPUSH
13311: LD_INT 22
13313: PUSH
13314: LD_EXP 1
13318: PUSH
13319: EMPTY
13320: LIST
13321: LIST
13322: PUSH
13323: LD_INT 21
13325: PUSH
13326: LD_INT 2
13328: PUSH
13329: EMPTY
13330: LIST
13331: LIST
13332: PUSH
13333: EMPTY
13334: LIST
13335: LIST
13336: PPUSH
13337: CALL_OW 70
13341: ST_TO_ADDR
// if pom > 0 then
13342: LD_VAR 0 3
13346: PUSH
13347: LD_INT 0
13349: GREATER
13350: IFFALSE 13394
// for i in pom do
13352: LD_ADDR_VAR 0 4
13356: PUSH
13357: LD_VAR 0 3
13361: PUSH
13362: FOR_IN
13363: IFFALSE 13392
// if IsDrivenBy ( i ) = bur then
13365: LD_VAR 0 4
13369: PPUSH
13370: CALL_OW 311
13374: PUSH
13375: LD_EXP 47
13379: EQUAL
13380: IFFALSE 13390
// a = true ;
13382: LD_ADDR_VAR 0 2
13386: PUSH
13387: LD_INT 1
13389: ST_TO_ADDR
13390: GO 13362
13392: POP
13393: POP
// result = a ;
13394: LD_ADDR_VAR 0 1
13398: PUSH
13399: LD_VAR 0 2
13403: ST_TO_ADDR
// end ;
13404: LD_VAR 0 1
13408: RET
// every 0 0$7 do var pom ;
13409: GO 13411
13411: DISABLE
13412: LD_INT 0
13414: PPUSH
// begin pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_breastwork ] ] ) ;
13415: LD_ADDR_VAR 0 1
13419: PUSH
13420: LD_INT 1
13422: PPUSH
13423: LD_INT 22
13425: PUSH
13426: LD_EXP 1
13430: PUSH
13431: EMPTY
13432: LIST
13433: LIST
13434: PUSH
13435: LD_INT 30
13437: PUSH
13438: LD_INT 31
13440: PUSH
13441: EMPTY
13442: LIST
13443: LIST
13444: PUSH
13445: EMPTY
13446: LIST
13447: LIST
13448: PPUSH
13449: CALL_OW 70
13453: ST_TO_ADDR
// if pom > 0 then
13454: LD_VAR 0 1
13458: PUSH
13459: LD_INT 0
13461: GREATER
13462: IFFALSE 13476
// destroy ( pom , b_breastwork ) ;
13464: LD_VAR 0 1
13468: PPUSH
13469: LD_INT 31
13471: PPUSH
13472: CALL 13602 0 2
// pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_armoury ] ] ) ;
13476: LD_ADDR_VAR 0 1
13480: PUSH
13481: LD_INT 1
13483: PPUSH
13484: LD_INT 22
13486: PUSH
13487: LD_EXP 1
13491: PUSH
13492: EMPTY
13493: LIST
13494: LIST
13495: PUSH
13496: LD_INT 30
13498: PUSH
13499: LD_INT 4
13501: PUSH
13502: EMPTY
13503: LIST
13504: LIST
13505: PUSH
13506: EMPTY
13507: LIST
13508: LIST
13509: PPUSH
13510: CALL_OW 70
13514: ST_TO_ADDR
// if pom > 0 then
13515: LD_VAR 0 1
13519: PUSH
13520: LD_INT 0
13522: GREATER
13523: IFFALSE 13537
// destroy ( pom , b_armoury ) ;
13525: LD_VAR 0 1
13529: PPUSH
13530: LD_INT 4
13532: PPUSH
13533: CALL 13602 0 2
// pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_oil_power ] ] ) ;
13537: LD_ADDR_VAR 0 1
13541: PUSH
13542: LD_INT 1
13544: PPUSH
13545: LD_INT 22
13547: PUSH
13548: LD_EXP 1
13552: PUSH
13553: EMPTY
13554: LIST
13555: LIST
13556: PUSH
13557: LD_INT 30
13559: PUSH
13560: LD_INT 26
13562: PUSH
13563: EMPTY
13564: LIST
13565: LIST
13566: PUSH
13567: EMPTY
13568: LIST
13569: LIST
13570: PPUSH
13571: CALL_OW 70
13575: ST_TO_ADDR
// if pom > 0 then
13576: LD_VAR 0 1
13580: PUSH
13581: LD_INT 0
13583: GREATER
13584: IFFALSE 13598
// destroy ( pom , b_oil_power ) ;
13586: LD_VAR 0 1
13590: PPUSH
13591: LD_INT 26
13593: PPUSH
13594: CALL 13602 0 2
// enable ;
13598: ENABLE
// end ;
13599: PPOPN 1
13601: END
// function destroy ( sez , typ ) ; var i , j ; var pom ; var res ; begin
13602: LD_INT 0
13604: PPUSH
13605: PPUSH
13606: PPUSH
13607: PPUSH
13608: PPUSH
// InGameOn ;
13609: CALL_OW 8
// dialog_boreni ;
13613: CALL 8189 0 0
// for i in sez do
13617: LD_ADDR_VAR 0 4
13621: PUSH
13622: LD_VAR 0 1
13626: PUSH
13627: FOR_IN
13628: IFFALSE 13812
// begin pom = UnitsInside ( i ) ;
13630: LD_ADDR_VAR 0 6
13634: PUSH
13635: LD_VAR 0 4
13639: PPUSH
13640: CALL_OW 313
13644: ST_TO_ADDR
// ComExitBuilding ( pom ) ;
13645: LD_VAR 0 6
13649: PPUSH
13650: CALL_OW 122
// wait ( 0 0$2 ) ;
13654: LD_INT 70
13656: PPUSH
13657: CALL_OW 67
// DestroyUnit ( i ) ;
13661: LD_VAR 0 4
13665: PPUSH
13666: CALL_OW 65
// case typ of b_breastwork :
13670: LD_VAR 0 2
13674: PUSH
13675: LD_INT 31
13677: DOUBLE
13678: EQUAL
13679: IFTRUE 13683
13681: GO 13704
13683: POP
// res = [ [ mat_cans , 10 ] ] ; b_armoury :
13684: LD_ADDR_VAR 0 7
13688: PUSH
13689: LD_INT 1
13691: PUSH
13692: LD_INT 10
13694: PUSH
13695: EMPTY
13696: LIST
13697: LIST
13698: PUSH
13699: EMPTY
13700: LIST
13701: ST_TO_ADDR
13702: GO 13763
13704: LD_INT 4
13706: DOUBLE
13707: EQUAL
13708: IFTRUE 13712
13710: GO 13733
13712: POP
// res = [ [ mat_cans , 30 ] ] ; b_oil_power :
13713: LD_ADDR_VAR 0 7
13717: PUSH
13718: LD_INT 1
13720: PUSH
13721: LD_INT 30
13723: PUSH
13724: EMPTY
13725: LIST
13726: LIST
13727: PUSH
13728: EMPTY
13729: LIST
13730: ST_TO_ADDR
13731: GO 13763
13733: LD_INT 26
13735: DOUBLE
13736: EQUAL
13737: IFTRUE 13741
13739: GO 13762
13741: POP
// res = [ [ mat_cans , 20 ] ] ; end ;
13742: LD_ADDR_VAR 0 7
13746: PUSH
13747: LD_INT 1
13749: PUSH
13750: LD_INT 20
13752: PUSH
13753: EMPTY
13754: LIST
13755: LIST
13756: PUSH
13757: EMPTY
13758: LIST
13759: ST_TO_ADDR
13760: GO 13763
13762: POP
// for j in res do
13763: LD_ADDR_VAR 0 5
13767: PUSH
13768: LD_VAR 0 7
13772: PUSH
13773: FOR_IN
13774: IFFALSE 13808
// AddResourceType ( GetBase ( RU2_dep ) , j [ 1 ] , j [ 2 ] ) ;
13776: LD_INT 26
13778: PPUSH
13779: CALL_OW 274
13783: PPUSH
13784: LD_VAR 0 5
13788: PUSH
13789: LD_INT 1
13791: ARRAY
13792: PPUSH
13793: LD_VAR 0 5
13797: PUSH
13798: LD_INT 2
13800: ARRAY
13801: PPUSH
13802: CALL_OW 276
13806: GO 13773
13808: POP
13809: POP
// end ;
13810: GO 13627
13812: POP
13813: POP
// InGameOff ;
13814: CALL_OW 9
// end ;
13818: LD_VAR 0 3
13822: RET
// on McDone ( ID , state ) do var u , w , dist , tol , Arrived ;
13823: LD_INT 0
13825: PPUSH
13826: PPUSH
13827: PPUSH
13828: PPUSH
13829: PPUSH
// begin tol := 8 ;
13830: LD_ADDR_VAR 0 6
13834: PUSH
13835: LD_INT 8
13837: ST_TO_ADDR
// if ID <> McCestaNaSever then
13838: LD_VAR 0 1
13842: PUSH
13843: LD_EXP 33
13847: NONEQUAL
13848: IFFALSE 13852
// exit ;
13850: GO 14025
// repeat Arrived := true ;
13852: LD_ADDR_VAR 0 7
13856: PUSH
13857: LD_INT 1
13859: ST_TO_ADDR
// for u in Rusi_sever do
13860: LD_ADDR_VAR 0 3
13864: PUSH
13865: LD_EXP 53
13869: PUSH
13870: FOR_IN
13871: IFFALSE 14010
// if GetDistUnitXY ( u , wptCestaNaSever [ wptCestaNaSever ] [ 1 ] , wptCestaNaSever [ wptCestaNaSever ] [ 2 ] ) > tol then
13873: LD_VAR 0 3
13877: PPUSH
13878: LD_EXP 68
13882: PUSH
13883: LD_EXP 68
13887: ARRAY
13888: PUSH
13889: LD_INT 1
13891: ARRAY
13892: PPUSH
13893: LD_EXP 68
13897: PUSH
13898: LD_EXP 68
13902: ARRAY
13903: PUSH
13904: LD_INT 2
13906: ARRAY
13907: PPUSH
13908: CALL_OW 297
13912: PUSH
13913: LD_VAR 0 6
13917: GREATER
13918: IFFALSE 14008
// begin Arrived := false ;
13920: LD_ADDR_VAR 0 7
13924: PUSH
13925: LD_INT 0
13927: ST_TO_ADDR
// ComStop ( u ) ;
13928: LD_VAR 0 3
13932: PPUSH
13933: CALL_OW 141
// for w in wptCestaNaSever do
13937: LD_ADDR_VAR 0 4
13941: PUSH
13942: LD_EXP 68
13946: PUSH
13947: FOR_IN
13948: IFFALSE 14006
// begin if GetY ( u ) > w [ 2 ] + tol then
13950: LD_VAR 0 3
13954: PPUSH
13955: CALL_OW 251
13959: PUSH
13960: LD_VAR 0 4
13964: PUSH
13965: LD_INT 2
13967: ARRAY
13968: PUSH
13969: LD_VAR 0 6
13973: PLUS
13974: GREATER
13975: IFFALSE 14004
// begin AddComMoveXY ( u , w [ 1 ] , w [ 2 ] ) ;
13977: LD_VAR 0 3
13981: PPUSH
13982: LD_VAR 0 4
13986: PUSH
13987: LD_INT 1
13989: ARRAY
13990: PPUSH
13991: LD_VAR 0 4
13995: PUSH
13996: LD_INT 2
13998: ARRAY
13999: PPUSH
14000: CALL_OW 171
// end ; end ;
14004: GO 13947
14006: POP
14007: POP
// end ;
14008: GO 13870
14010: POP
14011: POP
// wait ( 0 0$15 ) until Arrived ;
14012: LD_INT 525
14014: PPUSH
14015: CALL_OW 67
14019: LD_VAR 0 7
14023: IFFALSE 13852
// end ;
14025: PPOPN 7
14027: END
// export wptCestaNaSever ; export function rusi_cesta_na_sever ; var pom ; begin
14028: LD_INT 0
14030: PPUSH
14031: PPUSH
// if rusi_survivors < 3 then
14032: LD_EXP 55
14036: PUSH
14037: LD_INT 3
14039: LESS
14040: IFFALSE 14067
// rusi_survivors = rusi_survivors ^ [ RU1_sol1 , RU1_sol2 , RU1_sci1 ] ;
14042: LD_ADDR_EXP 55
14046: PUSH
14047: LD_EXP 55
14051: PUSH
14052: LD_INT 28
14054: PUSH
14055: LD_INT 29
14057: PUSH
14058: LD_INT 27
14060: PUSH
14061: EMPTY
14062: LIST
14063: LIST
14064: LIST
14065: ADD
14066: ST_TO_ADDR
// Rusi_01 = rusi_survivors ;
14067: LD_ADDR_EXP 54
14071: PUSH
14072: LD_EXP 55
14076: ST_TO_ADDR
// pom = [ IsInUnit ( bel ) , Rusi_01 [ 1 ] , Rusi_01 [ 2 ] , Rusi_01 [ 3 ] ] ;
14077: LD_ADDR_VAR 0 2
14081: PUSH
14082: LD_EXP 49
14086: PPUSH
14087: CALL_OW 310
14091: PUSH
14092: LD_EXP 54
14096: PUSH
14097: LD_INT 1
14099: ARRAY
14100: PUSH
14101: LD_EXP 54
14105: PUSH
14106: LD_INT 2
14108: ARRAY
14109: PUSH
14110: LD_EXP 54
14114: PUSH
14115: LD_INT 3
14117: ARRAY
14118: PUSH
14119: EMPTY
14120: LIST
14121: LIST
14122: LIST
14123: LIST
14124: ST_TO_ADDR
// ComExitBuilding ( [ Rusi_01 [ 1 ] , Rusi_01 [ 2 ] , Rusi_01 [ 3 ] ] ) ;
14125: LD_EXP 54
14129: PUSH
14130: LD_INT 1
14132: ARRAY
14133: PUSH
14134: LD_EXP 54
14138: PUSH
14139: LD_INT 2
14141: ARRAY
14142: PUSH
14143: LD_EXP 54
14147: PUSH
14148: LD_INT 3
14150: ARRAY
14151: PUSH
14152: EMPTY
14153: LIST
14154: LIST
14155: LIST
14156: PPUSH
14157: CALL_OW 122
// wptCestaNaSever := [ [ 87 , 93 ] , [ 77 , 74 ] , [ 68 , 58 ] , [ 66 , 46 ] , [ 59 , 28 ] , [ 59 , 12 ] ] ;
14161: LD_ADDR_EXP 68
14165: PUSH
14166: LD_INT 87
14168: PUSH
14169: LD_INT 93
14171: PUSH
14172: EMPTY
14173: LIST
14174: LIST
14175: PUSH
14176: LD_INT 77
14178: PUSH
14179: LD_INT 74
14181: PUSH
14182: EMPTY
14183: LIST
14184: LIST
14185: PUSH
14186: LD_INT 68
14188: PUSH
14189: LD_INT 58
14191: PUSH
14192: EMPTY
14193: LIST
14194: LIST
14195: PUSH
14196: LD_INT 66
14198: PUSH
14199: LD_INT 46
14201: PUSH
14202: EMPTY
14203: LIST
14204: LIST
14205: PUSH
14206: LD_INT 59
14208: PUSH
14209: LD_INT 28
14211: PUSH
14212: EMPTY
14213: LIST
14214: LIST
14215: PUSH
14216: LD_INT 59
14218: PUSH
14219: LD_INT 12
14221: PUSH
14222: EMPTY
14223: LIST
14224: LIST
14225: PUSH
14226: EMPTY
14227: LIST
14228: LIST
14229: LIST
14230: LIST
14231: LIST
14232: LIST
14233: ST_TO_ADDR
// mcCestaNaSever = McMove ( 1 , pom , wptCestaNaSever , [ mc_move_waitwp ] ) ;
14234: LD_ADDR_EXP 33
14238: PUSH
14239: LD_INT 1
14241: PPUSH
14242: LD_VAR 0 2
14246: PPUSH
14247: LD_EXP 68
14251: PPUSH
14252: LD_INT 3
14254: PUSH
14255: EMPTY
14256: LIST
14257: PPUSH
14258: CALL_OW 398
14262: ST_TO_ADDR
// Rusi_sever = pom ;
14263: LD_ADDR_EXP 53
14267: PUSH
14268: LD_VAR 0 2
14272: ST_TO_ADDR
// rusi_survivors = Rusi_01 diff pom ;
14273: LD_ADDR_EXP 55
14277: PUSH
14278: LD_EXP 54
14282: PUSH
14283: LD_VAR 0 2
14287: DIFF
14288: ST_TO_ADDR
// repeat wait ( 0 0$5 ) until ( FilterUnitsInArea ( RU1_base , [ ] ) isect Rusi_sever ) = 0 ;
14289: LD_INT 175
14291: PPUSH
14292: CALL_OW 67
14296: LD_INT 3
14298: PPUSH
14299: EMPTY
14300: PPUSH
14301: CALL_OW 70
14305: PUSH
14306: LD_EXP 53
14310: ISECT
14311: PUSH
14312: LD_INT 0
14314: EQUAL
14315: IFFALSE 14289
// wait ( 1 1$0 ) ;
14317: LD_INT 2100
14319: PPUSH
14320: CALL_OW 67
// stavba_am_baze ;
14324: CALL 16621 0 0
// end ;
14328: LD_VAR 0 1
14332: RET
// every 0 0$4 do var pom ;
14333: GO 14335
14335: DISABLE
14336: LD_INT 0
14338: PPUSH
// begin pom = FilterUnitsInArea ( Test2 , [ [ f_side , You2 ] ] ) ;
14339: LD_ADDR_VAR 0 1
14343: PUSH
14344: LD_INT 10
14346: PPUSH
14347: LD_INT 22
14349: PUSH
14350: LD_EXP 4
14354: PUSH
14355: EMPTY
14356: LIST
14357: LIST
14358: PUSH
14359: EMPTY
14360: LIST
14361: PPUSH
14362: CALL_OW 70
14366: ST_TO_ADDR
// if pom + 0 = Rusi_sever + 0 then
14367: LD_VAR 0 1
14371: PUSH
14372: LD_INT 0
14374: PLUS
14375: PUSH
14376: LD_EXP 53
14380: PUSH
14381: LD_INT 0
14383: PLUS
14384: EQUAL
14385: IFFALSE 14394
// begin manage_rusi_sever ;
14387: CALL 15400 0 0
// disable ;
14391: DISABLE
// end else
14392: GO 14395
// enable ;
14394: ENABLE
// end ;
14395: PPOPN 1
14397: END
// every 0 0$20 trigger stav > 2 and stav < 7 do var i ; var misto ;
14398: LD_EXP 57
14402: PUSH
14403: LD_INT 2
14405: GREATER
14406: PUSH
14407: LD_EXP 57
14411: PUSH
14412: LD_INT 7
14414: LESS
14415: AND
14416: IFFALSE 14704
14418: GO 14420
14420: DISABLE
14421: LD_INT 0
14423: PPUSH
14424: PPUSH
// begin misto = [ ] ;
14425: LD_ADDR_VAR 0 2
14429: PUSH
14430: EMPTY
14431: ST_TO_ADDR
// for i in bedny do
14432: LD_ADDR_VAR 0 1
14436: PUSH
14437: LD_EXP 61
14441: PUSH
14442: FOR_IN
14443: IFFALSE 14529
// if SeeXY ( You2 , i [ 1 ] , i [ 2 ] ) then
14445: LD_EXP 4
14449: PPUSH
14450: LD_VAR 0 1
14454: PUSH
14455: LD_INT 1
14457: ARRAY
14458: PPUSH
14459: LD_VAR 0 1
14463: PUSH
14464: LD_INT 2
14466: ARRAY
14467: PPUSH
14468: CALL_OW 293
14472: IFFALSE 14527
// if i in videne then
14474: LD_VAR 0 1
14478: PUSH
14479: LD_EXP 63
14483: IN
14484: IFFALSE 14498
// misto = misto else
14486: LD_ADDR_VAR 0 2
14490: PUSH
14491: LD_VAR 0 2
14495: ST_TO_ADDR
14496: GO 14527
// begin misto = i ;
14498: LD_ADDR_VAR 0 2
14502: PUSH
14503: LD_VAR 0 1
14507: ST_TO_ADDR
// videne = videne ^ [ i ] ;
14508: LD_ADDR_EXP 63
14512: PUSH
14513: LD_EXP 63
14517: PUSH
14518: LD_VAR 0 1
14522: PUSH
14523: EMPTY
14524: LIST
14525: ADD
14526: ST_TO_ADDR
// end ;
14527: GO 14442
14529: POP
14530: POP
// if misto <> 0 then
14531: LD_VAR 0 2
14535: PUSH
14536: LD_INT 0
14538: NONEQUAL
14539: IFFALSE 14676
// begin bedny_hint = true ;
14541: LD_ADDR_EXP 62
14545: PUSH
14546: LD_INT 1
14548: ST_TO_ADDR
// ComMoveXY ( plat , misto [ 1 ] , misto [ 2 ] ) ;
14549: LD_EXP 51
14553: PPUSH
14554: LD_VAR 0 2
14558: PUSH
14559: LD_INT 1
14561: ARRAY
14562: PPUSH
14563: LD_VAR 0 2
14567: PUSH
14568: LD_INT 2
14570: ARRAY
14571: PPUSH
14572: CALL_OW 111
// wait ( 0 0$5 ) ;
14576: LD_INT 175
14578: PPUSH
14579: CALL_OW 67
// if HexInfo ( misto [ 1 ] , misto [ 2 ] ) <> 0 or HexInfo ( misto [ 1 ] , misto [ 2 ] ) <> plat then
14583: LD_VAR 0 2
14587: PUSH
14588: LD_INT 1
14590: ARRAY
14591: PPUSH
14592: LD_VAR 0 2
14596: PUSH
14597: LD_INT 2
14599: ARRAY
14600: PPUSH
14601: CALL_OW 428
14605: PUSH
14606: LD_INT 0
14608: NONEQUAL
14609: PUSH
14610: LD_VAR 0 2
14614: PUSH
14615: LD_INT 1
14617: ARRAY
14618: PPUSH
14619: LD_VAR 0 2
14623: PUSH
14624: LD_INT 2
14626: ARRAY
14627: PPUSH
14628: CALL_OW 428
14632: PUSH
14633: LD_EXP 51
14637: NONEQUAL
14638: OR
14639: IFFALSE 14676
// begin hlaska_platonov_bedny ;
14641: CALL 9394 0 0
// pocet_uukazani = pocet_uukazani + 1 ;
14645: LD_ADDR_LOC 18
14649: PUSH
14650: LD_LOC 18
14654: PUSH
14655: LD_INT 1
14657: PLUS
14658: ST_TO_ADDR
// debug_strings = [ Platonov bvedny , pocet_uukazani ] ;
14659: LD_ADDR_OWVAR 48
14663: PUSH
14664: LD_STRING Platonov bvedny
14666: PUSH
14667: LD_LOC 18
14671: PUSH
14672: EMPTY
14673: LIST
14674: LIST
14675: ST_TO_ADDR
// end ; end ; debug_strings = [ Platonov bvedny , pocet_uukazani ] ;
14676: LD_ADDR_OWVAR 48
14680: PUSH
14681: LD_STRING Platonov bvedny
14683: PUSH
14684: LD_LOC 18
14688: PUSH
14689: EMPTY
14690: LIST
14691: LIST
14692: ST_TO_ADDR
// if pocet_uukazani < 6 then
14693: LD_LOC 18
14697: PUSH
14698: LD_INT 6
14700: LESS
14701: IFFALSE 14704
// enable ;
14703: ENABLE
// end ;
14704: PPOPN 2
14706: END
// every 0 0$13 trigger stav > 2 and stav < 7 do var i ; var a ;
14707: LD_EXP 57
14711: PUSH
14712: LD_INT 2
14714: GREATER
14715: PUSH
14716: LD_EXP 57
14720: PUSH
14721: LD_INT 7
14723: LESS
14724: AND
14725: IFFALSE 14816
14727: GO 14729
14729: DISABLE
14730: LD_INT 0
14732: PPUSH
14733: PPUSH
// begin a = [ ] ;
14734: LD_ADDR_VAR 0 2
14738: PUSH
14739: EMPTY
14740: ST_TO_ADDR
// for i in bedny do
14741: LD_ADDR_VAR 0 1
14745: PUSH
14746: LD_EXP 61
14750: PUSH
14751: FOR_IN
14752: IFFALSE 14803
// if GetResourceAmountXY ( i [ 1 ] , i [ 2 ] ) <> 0 then
14754: LD_VAR 0 1
14758: PUSH
14759: LD_INT 1
14761: ARRAY
14762: PPUSH
14763: LD_VAR 0 1
14767: PUSH
14768: LD_INT 2
14770: ARRAY
14771: PPUSH
14772: CALL_OW 284
14776: PUSH
14777: LD_INT 0
14779: NONEQUAL
14780: IFFALSE 14801
// a = a ^ [ i ] ;
14782: LD_ADDR_VAR 0 2
14786: PUSH
14787: LD_VAR 0 2
14791: PUSH
14792: LD_VAR 0 1
14796: PUSH
14797: EMPTY
14798: LIST
14799: ADD
14800: ST_TO_ADDR
14801: GO 14751
14803: POP
14804: POP
// bedny = a ;
14805: LD_ADDR_EXP 61
14809: PUSH
14810: LD_VAR 0 2
14814: ST_TO_ADDR
// enable ;
14815: ENABLE
// end ;
14816: PPOPN 2
14818: END
// every 0 0$10 trigger stav = 3 do var hex ;
14819: LD_EXP 57
14823: PUSH
14824: LD_INT 3
14826: EQUAL
14827: IFFALSE 14959
14829: GO 14831
14831: DISABLE
14832: LD_INT 0
14834: PPUSH
// begin wait ( Rand ( 0 0$30 , 1 1$0 ) ) ;
14835: LD_INT 1050
14837: PPUSH
14838: LD_INT 2100
14840: PPUSH
14841: CALL_OW 12
14845: PPUSH
14846: CALL_OW 67
// hex = RandHexArea ( bedny_ar , true ) ;
14850: LD_ADDR_VAR 0 1
14854: PUSH
14855: LD_INT 28
14857: PPUSH
14858: LD_INT 1
14860: PPUSH
14861: CALL_OW 16
14865: ST_TO_ADDR
// while HexInfo ( hex [ 1 ] , hex [ 2 ] ) <> 0 do
14866: LD_VAR 0 1
14870: PUSH
14871: LD_INT 1
14873: ARRAY
14874: PPUSH
14875: LD_VAR 0 1
14879: PUSH
14880: LD_INT 2
14882: ARRAY
14883: PPUSH
14884: CALL_OW 428
14888: PUSH
14889: LD_INT 0
14891: NONEQUAL
14892: IFFALSE 14912
// hex = RandHexArea ( bedny_ar , true ) ;
14894: LD_ADDR_VAR 0 1
14898: PUSH
14899: LD_INT 28
14901: PPUSH
14902: LD_INT 1
14904: PPUSH
14905: CALL_OW 16
14909: ST_TO_ADDR
14910: GO 14866
// CreateCratesXY ( 4 , hex [ 1 ] , hex [ 2 ] , true ) ;
14912: LD_INT 4
14914: PPUSH
14915: LD_VAR 0 1
14919: PUSH
14920: LD_INT 1
14922: ARRAY
14923: PPUSH
14924: LD_VAR 0 1
14928: PUSH
14929: LD_INT 2
14931: ARRAY
14932: PPUSH
14933: LD_INT 1
14935: PPUSH
14936: CALL_OW 54
// bedny = bedny ^ [ hex ] ;
14940: LD_ADDR_EXP 61
14944: PUSH
14945: LD_EXP 61
14949: PUSH
14950: LD_VAR 0 1
14954: PUSH
14955: EMPTY
14956: LIST
14957: ADD
14958: ST_TO_ADDR
// end ;
14959: PPOPN 1
14961: END
// every 0 0$10 trigger stav >= 6 and stav < 7 do var hex ;
14962: LD_EXP 57
14966: PUSH
14967: LD_INT 6
14969: GREATEREQUAL
14970: PUSH
14971: LD_EXP 57
14975: PUSH
14976: LD_INT 7
14978: LESS
14979: AND
14980: IFFALSE 15135
14982: GO 14984
14984: DISABLE
14985: LD_INT 0
14987: PPUSH
// begin wait ( Rand ( 0 0$30 , 1 1$30 ) ) ;
14988: LD_INT 1050
14990: PPUSH
14991: LD_INT 3150
14993: PPUSH
14994: CALL_OW 12
14998: PPUSH
14999: CALL_OW 67
// hex = RandHexArea ( bedny_ar , true ) ;
15003: LD_ADDR_VAR 0 1
15007: PUSH
15008: LD_INT 28
15010: PPUSH
15011: LD_INT 1
15013: PPUSH
15014: CALL_OW 16
15018: ST_TO_ADDR
// while HexInfo ( hex [ 1 ] , hex [ 2 ] ) <> 0 do
15019: LD_VAR 0 1
15023: PUSH
15024: LD_INT 1
15026: ARRAY
15027: PPUSH
15028: LD_VAR 0 1
15032: PUSH
15033: LD_INT 2
15035: ARRAY
15036: PPUSH
15037: CALL_OW 428
15041: PUSH
15042: LD_INT 0
15044: NONEQUAL
15045: IFFALSE 15065
// hex = RandHexArea ( bedny_ar , true ) ;
15047: LD_ADDR_VAR 0 1
15051: PUSH
15052: LD_INT 28
15054: PPUSH
15055: LD_INT 1
15057: PPUSH
15058: CALL_OW 16
15062: ST_TO_ADDR
15063: GO 15019
// CreateCratesXY ( Rand ( 3 , 5 ) , hex [ 1 ] , hex [ 2 ] , true ) ;
15065: LD_INT 3
15067: PPUSH
15068: LD_INT 5
15070: PPUSH
15071: CALL_OW 12
15075: PPUSH
15076: LD_VAR 0 1
15080: PUSH
15081: LD_INT 1
15083: ARRAY
15084: PPUSH
15085: LD_VAR 0 1
15089: PUSH
15090: LD_INT 2
15092: ARRAY
15093: PPUSH
15094: LD_INT 1
15096: PPUSH
15097: CALL_OW 54
// bedny = bedny ^ [ hex ] ;
15101: LD_ADDR_EXP 61
15105: PUSH
15106: LD_EXP 61
15110: PUSH
15111: LD_VAR 0 1
15115: PUSH
15116: EMPTY
15117: LIST
15118: ADD
15119: ST_TO_ADDR
// zasilek = zasilek + 1 ;
15120: LD_ADDR_EXP 64
15124: PUSH
15125: LD_EXP 64
15129: PUSH
15130: LD_INT 1
15132: PLUS
15133: ST_TO_ADDR
// enable ;
15134: ENABLE
// end ;
15135: PPOPN 1
15137: END
// every 0 0$10 trigger stav >= 5 and stav < 7 marked 503 do var hex ;
15138: LD_EXP 57
15142: PUSH
15143: LD_INT 5
15145: GREATEREQUAL
15146: PUSH
15147: LD_EXP 57
15151: PUSH
15152: LD_INT 7
15154: LESS
15155: AND
15156: IFFALSE 15321
15158: GO 15160
15160: DISABLE
15161: LD_INT 0
15163: PPUSH
// begin wait ( Rand ( 0 0$30 , 1 1$30 ) ) ;
15164: LD_INT 1050
15166: PPUSH
15167: LD_INT 3150
15169: PPUSH
15170: CALL_OW 12
15174: PPUSH
15175: CALL_OW 67
// hex = RandHexArea ( RU2_base , true ) ;
15179: LD_ADDR_VAR 0 1
15183: PUSH
15184: LD_INT 1
15186: PPUSH
15187: LD_INT 1
15189: PPUSH
15190: CALL_OW 16
15194: ST_TO_ADDR
// while HexInfo ( hex [ 1 ] , hex [ 2 ] ) <> 0 do
15195: LD_VAR 0 1
15199: PUSH
15200: LD_INT 1
15202: ARRAY
15203: PPUSH
15204: LD_VAR 0 1
15208: PUSH
15209: LD_INT 2
15211: ARRAY
15212: PPUSH
15213: CALL_OW 428
15217: PUSH
15218: LD_INT 0
15220: NONEQUAL
15221: IFFALSE 15241
// hex = RandHexArea ( RU2_base , true ) ;
15223: LD_ADDR_VAR 0 1
15227: PUSH
15228: LD_INT 1
15230: PPUSH
15231: LD_INT 1
15233: PPUSH
15234: CALL_OW 16
15238: ST_TO_ADDR
15239: GO 15195
// CreateCratesXY ( Rand ( 3 , 5 ) , hex [ 1 ] , hex [ 2 ] , true ) ;
15241: LD_INT 3
15243: PPUSH
15244: LD_INT 5
15246: PPUSH
15247: CALL_OW 12
15251: PPUSH
15252: LD_VAR 0 1
15256: PUSH
15257: LD_INT 1
15259: ARRAY
15260: PPUSH
15261: LD_VAR 0 1
15265: PUSH
15266: LD_INT 2
15268: ARRAY
15269: PPUSH
15270: LD_INT 1
15272: PPUSH
15273: CALL_OW 54
// bedny = bedny ^ [ hex ] ;
15277: LD_ADDR_EXP 61
15281: PUSH
15282: LD_EXP 61
15286: PUSH
15287: LD_VAR 0 1
15291: PUSH
15292: EMPTY
15293: LIST
15294: ADD
15295: ST_TO_ADDR
// zasilek = zasilek + 1 ;
15296: LD_ADDR_EXP 64
15300: PUSH
15301: LD_EXP 64
15305: PUSH
15306: LD_INT 1
15308: PLUS
15309: ST_TO_ADDR
// if zasilek < 4 then
15310: LD_EXP 64
15314: PUSH
15315: LD_INT 4
15317: LESS
15318: IFFALSE 15321
// enable ;
15320: ENABLE
// end ;
15321: PPOPN 1
15323: END
// export function test_is_auto_in_area ; var pom ; begin
15324: LD_INT 0
15326: PPUSH
15327: PPUSH
// pom = FilterUnitsInArea ( RU1_base , [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
15328: LD_ADDR_VAR 0 2
15332: PUSH
15333: LD_INT 3
15335: PPUSH
15336: LD_INT 22
15338: PUSH
15339: LD_EXP 1
15343: PUSH
15344: EMPTY
15345: LIST
15346: LIST
15347: PUSH
15348: LD_INT 21
15350: PUSH
15351: LD_INT 2
15353: PUSH
15354: EMPTY
15355: LIST
15356: LIST
15357: PUSH
15358: EMPTY
15359: LIST
15360: LIST
15361: PPUSH
15362: CALL_OW 70
15366: ST_TO_ADDR
// if pom > 0 then
15367: LD_VAR 0 2
15371: PUSH
15372: LD_INT 0
15374: GREATER
15375: IFFALSE 15387
// result = true else
15377: LD_ADDR_VAR 0 1
15381: PUSH
15382: LD_INT 1
15384: ST_TO_ADDR
15385: GO 15395
// result = false ;
15387: LD_ADDR_VAR 0 1
15391: PUSH
15392: LD_INT 0
15394: ST_TO_ADDR
// end ;
15395: LD_VAR 0 1
15399: RET
// function manage_rusi_sever ; begin
15400: LD_INT 0
15402: PPUSH
// wait ( 0 0$20 ) ;
15403: LD_INT 700
15405: PPUSH
15406: CALL_OW 67
// ComMoveXY ( Rusi_sever , 90 , 25 ) ;
15410: LD_EXP 53
15414: PPUSH
15415: LD_INT 90
15417: PPUSH
15418: LD_INT 25
15420: PPUSH
15421: CALL_OW 111
// end ;
15425: LD_VAR 0 1
15429: RET
// every 0 0$1 trigger FilterUnitsInArea ( Odber_bel , [ [ f_side , You2 ] ] ) > 0 do var pom , i ;
15430: LD_INT 14
15432: PPUSH
15433: LD_INT 22
15435: PUSH
15436: LD_EXP 4
15440: PUSH
15441: EMPTY
15442: LIST
15443: LIST
15444: PUSH
15445: EMPTY
15446: LIST
15447: PPUSH
15448: CALL_OW 70
15452: PUSH
15453: LD_INT 0
15455: GREATER
15456: IFFALSE 15566
15458: GO 15460
15460: DISABLE
15461: LD_INT 0
15463: PPUSH
15464: PPUSH
// begin pom = FilterUnitsInArea ( Odber_bel , [ [ f_side , You2 ] ] ) ;
15465: LD_ADDR_VAR 0 1
15469: PUSH
15470: LD_INT 14
15472: PPUSH
15473: LD_INT 22
15475: PUSH
15476: LD_EXP 4
15480: PUSH
15481: EMPTY
15482: LIST
15483: LIST
15484: PUSH
15485: EMPTY
15486: LIST
15487: PPUSH
15488: CALL_OW 70
15492: ST_TO_ADDR
// for i in pom do
15493: LD_ADDR_VAR 0 2
15497: PUSH
15498: LD_VAR 0 1
15502: PUSH
15503: FOR_IN
15504: IFFALSE 15529
// if i in Rusi_sever then
15506: LD_VAR 0 2
15510: PUSH
15511: LD_EXP 53
15515: IN
15516: IFFALSE 15527
// RemoveUnit ( i ) ;
15518: LD_VAR 0 2
15522: PPUSH
15523: CALL_OW 64
15527: GO 15503
15529: POP
15530: POP
// pom = UnitFilter ( Rusi_sever , [ [ f_OK ] ] ) ;
15531: LD_ADDR_VAR 0 1
15535: PUSH
15536: LD_EXP 53
15540: PPUSH
15541: LD_INT 50
15543: PUSH
15544: EMPTY
15545: LIST
15546: PUSH
15547: EMPTY
15548: LIST
15549: PPUSH
15550: CALL_OW 72
15554: ST_TO_ADDR
// if pom > 0 then
15555: LD_VAR 0 1
15559: PUSH
15560: LD_INT 0
15562: GREATER
15563: IFFALSE 15566
// enable ;
15565: ENABLE
// end ;
15566: PPOPN 2
15568: END
// every 0 0$1 marked 302 do
15569: GO 15571
15571: DISABLE
// begin placni_amiky_past ;
15572: CALL 16504 0 0
// placni_zpet_rusy_sever ;
15576: CALL 15581 0 0
// end ;
15580: END
// function placni_zpet_rusy_sever ; var i ; begin
15581: LD_INT 0
15583: PPUSH
15584: PPUSH
// for i in Rusi_sever do
15585: LD_ADDR_VAR 0 2
15589: PUSH
15590: LD_EXP 53
15594: PUSH
15595: FOR_IN
15596: IFFALSE 15615
// PlaceUnitArea ( i , Zpet_bel , false ) ;
15598: LD_VAR 0 2
15602: PPUSH
15603: LD_INT 15
15605: PPUSH
15606: LD_INT 0
15608: PPUSH
15609: CALL_OW 49
15613: GO 15595
15615: POP
15616: POP
// ComMoveXY ( Rusi_sever , 56 , 9 ) ;
15617: LD_EXP 53
15621: PPUSH
15622: LD_INT 56
15624: PPUSH
15625: LD_INT 9
15627: PPUSH
15628: CALL_OW 111
// end ;
15632: LD_VAR 0 1
15636: RET
// export function posli_lidi_zpet ; var pom ; begin
15637: LD_INT 0
15639: PPUSH
15640: PPUSH
// pom = FilterUnitsInArea ( Upozarea , [ [ f_side , You ] ] ) ;
15641: LD_ADDR_VAR 0 2
15645: PUSH
15646: LD_INT 2
15648: PPUSH
15649: LD_INT 22
15651: PUSH
15652: LD_EXP 1
15656: PUSH
15657: EMPTY
15658: LIST
15659: LIST
15660: PUSH
15661: EMPTY
15662: LIST
15663: PPUSH
15664: CALL_OW 70
15668: ST_TO_ADDR
// ComMoveToArea ( pom , RU2_base ) ;
15669: LD_VAR 0 2
15673: PPUSH
15674: LD_INT 1
15676: PPUSH
15677: CALL_OW 113
// end ;
15681: LD_VAR 0 1
15685: RET
// export function posli_rusi_zpet_out_base ; var pom ; begin
15686: LD_INT 0
15688: PPUSH
15689: PPUSH
// pom = FilterUnitsInArea ( Out_base , [ [ f_side , You ] ] ) ;
15690: LD_ADDR_VAR 0 2
15694: PUSH
15695: LD_INT 6
15697: PPUSH
15698: LD_INT 22
15700: PUSH
15701: LD_EXP 1
15705: PUSH
15706: EMPTY
15707: LIST
15708: LIST
15709: PUSH
15710: EMPTY
15711: LIST
15712: PPUSH
15713: CALL_OW 70
15717: ST_TO_ADDR
// ComMoveToArea ( pom , RU2_base ) ;
15718: LD_VAR 0 2
15722: PPUSH
15723: LD_INT 1
15725: PPUSH
15726: CALL_OW 113
// end ;
15730: LD_VAR 0 1
15734: RET
// export function rusi_save_belkov ; begin
15735: LD_INT 0
15737: PPUSH
// enable ( 501 ) ;
15738: LD_INT 501
15740: ENABLE_MARKED
// enable ( 502 ) ;
15741: LD_INT 502
15743: ENABLE_MARKED
// enable ( 599 ) ;
15744: LD_INT 599
15746: ENABLE_MARKED
// end ;
15747: LD_VAR 0 1
15751: RET
// every 0 0$1 trigger GetLives ( bel ) < 800 marked 501 do
15752: LD_EXP 49
15756: PPUSH
15757: CALL_OW 256
15761: PUSH
15762: LD_INT 800
15764: LESS
15765: IFFALSE 15783
15767: GO 15769
15769: DISABLE
// begin SetLives ( bel , 800 ) ;
15770: LD_EXP 49
15774: PPUSH
15775: LD_INT 800
15777: PPUSH
15778: CALL_OW 234
// enable ;
15782: ENABLE
// end ;
15783: END
// every 0 0$1 trigger saved_bel do
15784: LD_EXP 66
15788: IFFALSE 15796
15790: GO 15792
15792: DISABLE
// begin disable ( 501 ) ;
15793: LD_INT 501
15795: DISABLE_MARKED
// end ;
15796: END
// every 0 0$1 trigger GetSide ( bel ) = You marked 599 do
15797: LD_EXP 49
15801: PPUSH
15802: CALL_OW 255
15806: PUSH
15807: LD_EXP 1
15811: EQUAL
15812: IFFALSE 15820
15814: GO 15816
15816: DISABLE
// begin disable ( 501 ) ;
15817: LD_INT 501
15819: DISABLE_MARKED
// end ;
15820: END
// every 0 0$1 marked 502 do var i ; var pom ;
15821: GO 15823
15823: DISABLE
15824: LD_INT 0
15826: PPUSH
15827: PPUSH
// begin pom = false ;
15828: LD_ADDR_VAR 0 2
15832: PUSH
15833: LD_INT 0
15835: ST_TO_ADDR
// wait ( cas_na_zachranu_belkova [ difficulty ] ) ;
15836: LD_EXP 40
15840: PUSH
15841: LD_OWVAR 67
15845: ARRAY
15846: PPUSH
15847: CALL_OW 67
// disable ( 501 ) ;
15851: LD_INT 501
15853: DISABLE_MARKED
// if IsOK ( bel ) and ( not saved_bel ) then
15854: LD_EXP 49
15858: PPUSH
15859: CALL_OW 302
15863: PUSH
15864: LD_EXP 66
15868: NOT
15869: AND
15870: IFFALSE 15876
// amici_attack_belkov ;
15872: CALL 17800 0 0
// while ( FilterUnitsInArea ( Belkov_kop , [ f_side , You2 ] ) + 0 > 0 ) and ( UnitFilter ( AMICI_UTOK_BELKOV_LIST , [ f_OK ] ) + 0 > 0 ) do
15876: LD_INT 25
15878: PPUSH
15879: LD_INT 22
15881: PUSH
15882: LD_EXP 4
15886: PUSH
15887: EMPTY
15888: LIST
15889: LIST
15890: PPUSH
15891: CALL_OW 70
15895: PUSH
15896: LD_INT 0
15898: PLUS
15899: PUSH
15900: LD_INT 0
15902: GREATER
15903: PUSH
15904: LD_EXP 36
15908: PPUSH
15909: LD_INT 50
15911: PUSH
15912: EMPTY
15913: LIST
15914: PPUSH
15915: CALL_OW 72
15919: PUSH
15920: LD_INT 0
15922: PLUS
15923: PUSH
15924: LD_INT 0
15926: GREATER
15927: AND
15928: IFFALSE 15972
// begin wait ( 0 0$1 ) ;
15930: LD_INT 35
15932: PPUSH
15933: CALL_OW 67
// if objBelkov and IsDead ( bel ) then
15937: LD_EXP 25
15941: PUSH
15942: LD_EXP 49
15946: PPUSH
15947: CALL_OW 301
15951: AND
15952: IFFALSE 15970
// begin YouLost ( Belkov ) ;
15954: LD_STRING Belkov
15956: PPUSH
15957: CALL_OW 104
// wait ( 1 ) ;
15961: LD_INT 1
15963: PPUSH
15964: CALL_OW 67
// exit ;
15968: GO 15976
// end ; end ;
15970: GO 15876
// amici_retreat ;
15972: CALL 17947 0 0
// end ;
15976: PPOPN 2
15978: END
// every 0 0$2 trigger saved_bel do
15979: LD_EXP 66
15983: IFFALSE 15991
15985: GO 15987
15987: DISABLE
// begin disable ( 502 ) ;
15988: LD_INT 502
15990: DISABLE_MARKED
// end ;
15991: END
// export function create_rusi_navic ; var pom , i ; begin
15992: LD_INT 0
15994: PPUSH
15995: PPUSH
15996: PPUSH
// if CheckCharacterSet ( survivors1 ) then
15997: LD_STRING survivors1
15999: PPUSH
16000: CALL_OW 29
16004: IFFALSE 16021
// pom = CreateCharacterSet ( survivors1 ) else
16006: LD_ADDR_VAR 0 2
16010: PUSH
16011: LD_STRING survivors1
16013: PPUSH
16014: CALL_OW 31
16018: ST_TO_ADDR
16019: GO 16028
// pom = [ ] ;
16021: LD_ADDR_VAR 0 2
16025: PUSH
16026: EMPTY
16027: ST_TO_ADDR
// for i in pom do
16028: LD_ADDR_VAR 0 3
16032: PUSH
16033: LD_VAR 0 2
16037: PUSH
16038: FOR_IN
16039: IFFALSE 16078
// begin SetSide ( i , You2 ) ;
16041: LD_VAR 0 3
16045: PPUSH
16046: LD_EXP 4
16050: PPUSH
16051: CALL_OW 235
// PlaceUnitXYR ( i , 129 , 111 , 5 , false ) ;
16055: LD_VAR 0 3
16059: PPUSH
16060: LD_INT 129
16062: PPUSH
16063: LD_INT 111
16065: PPUSH
16066: LD_INT 5
16068: PPUSH
16069: LD_INT 0
16071: PPUSH
16072: CALL_OW 50
// end ;
16076: GO 16038
16078: POP
16079: POP
// if pom <> 0 then
16080: LD_VAR 0 2
16084: PUSH
16085: LD_INT 0
16087: NONEQUAL
16088: IFFALSE 16102
// ComEnterUnit ( pom , RU1_tov ) ;
16090: LD_VAR 0 2
16094: PPUSH
16095: LD_INT 2
16097: PPUSH
16098: CALL_OW 120
// rusi_survivors = pom ;
16102: LD_ADDR_EXP 55
16106: PUSH
16107: LD_VAR 0 2
16111: ST_TO_ADDR
// end ;
16112: LD_VAR 0 1
16116: RET
// every 0 0$5 do var zmena ;
16117: GO 16119
16119: DISABLE
16120: LD_INT 0
16122: PPUSH
// begin zmena = false ;
16123: LD_ADDR_VAR 0 1
16127: PUSH
16128: LD_INT 0
16130: ST_TO_ADDR
// if IsOk ( bur ) then
16131: LD_EXP 47
16135: PPUSH
16136: CALL_OW 302
16140: IFFALSE 16246
// if ( ( GetSkill ( bur , 1 ) <> BurSk [ 1 ] ) or ( GetSkill ( bur , 2 ) <> BurSk [ 2 ] ) or ( GetSkill ( bur , 3 ) <> BurSk [ 3 ] ) or ( GetSkill ( bur , 4 ) <> BurSk [ 4 ] ) ) then
16142: LD_EXP 47
16146: PPUSH
16147: LD_INT 1
16149: PPUSH
16150: CALL_OW 259
16154: PUSH
16155: LD_LOC 19
16159: PUSH
16160: LD_INT 1
16162: ARRAY
16163: NONEQUAL
16164: PUSH
16165: LD_EXP 47
16169: PPUSH
16170: LD_INT 2
16172: PPUSH
16173: CALL_OW 259
16177: PUSH
16178: LD_LOC 19
16182: PUSH
16183: LD_INT 2
16185: ARRAY
16186: NONEQUAL
16187: OR
16188: PUSH
16189: LD_EXP 47
16193: PPUSH
16194: LD_INT 3
16196: PPUSH
16197: CALL_OW 259
16201: PUSH
16202: LD_LOC 19
16206: PUSH
16207: LD_INT 3
16209: ARRAY
16210: NONEQUAL
16211: OR
16212: PUSH
16213: LD_EXP 47
16217: PPUSH
16218: LD_INT 4
16220: PPUSH
16221: CALL_OW 259
16225: PUSH
16226: LD_LOC 19
16230: PUSH
16231: LD_INT 4
16233: ARRAY
16234: NONEQUAL
16235: OR
16236: IFFALSE 16246
// zmena = true ;
16238: LD_ADDR_VAR 0 1
16242: PUSH
16243: LD_INT 1
16245: ST_TO_ADDR
// if IsOk ( Gny ) then
16246: LD_EXP 46
16250: PPUSH
16251: CALL_OW 302
16255: IFFALSE 16361
// if ( ( GetSkill ( Gny , 1 ) <> GnySk [ 1 ] ) or ( GetSkill ( Gny , 2 ) <> GnySk [ 2 ] ) or ( GetSkill ( Gny , 3 ) <> GnySk [ 3 ] ) or ( GetSkill ( Gny , 4 ) <> GnySk [ 4 ] ) ) then
16257: LD_EXP 46
16261: PPUSH
16262: LD_INT 1
16264: PPUSH
16265: CALL_OW 259
16269: PUSH
16270: LD_LOC 21
16274: PUSH
16275: LD_INT 1
16277: ARRAY
16278: NONEQUAL
16279: PUSH
16280: LD_EXP 46
16284: PPUSH
16285: LD_INT 2
16287: PPUSH
16288: CALL_OW 259
16292: PUSH
16293: LD_LOC 21
16297: PUSH
16298: LD_INT 2
16300: ARRAY
16301: NONEQUAL
16302: OR
16303: PUSH
16304: LD_EXP 46
16308: PPUSH
16309: LD_INT 3
16311: PPUSH
16312: CALL_OW 259
16316: PUSH
16317: LD_LOC 21
16321: PUSH
16322: LD_INT 3
16324: ARRAY
16325: NONEQUAL
16326: OR
16327: PUSH
16328: LD_EXP 46
16332: PPUSH
16333: LD_INT 4
16335: PPUSH
16336: CALL_OW 259
16340: PUSH
16341: LD_LOC 21
16345: PUSH
16346: LD_INT 4
16348: ARRAY
16349: NONEQUAL
16350: OR
16351: IFFALSE 16361
// zmena = true ;
16353: LD_ADDR_VAR 0 1
16357: PUSH
16358: LD_INT 1
16360: ST_TO_ADDR
// if IsOk ( bel ) then
16361: LD_EXP 49
16365: PPUSH
16366: CALL_OW 302
16370: IFFALSE 16476
// if ( ( GetSkill ( bel , 1 ) <> BelSk [ 1 ] ) or ( GetSkill ( bel , 2 ) <> BelSk [ 2 ] ) or ( GetSkill ( bel , 3 ) <> BelSk [ 3 ] ) or ( GetSkill ( bel , 4 ) <> BelSk [ 4 ] ) ) then
16372: LD_EXP 49
16376: PPUSH
16377: LD_INT 1
16379: PPUSH
16380: CALL_OW 259
16384: PUSH
16385: LD_LOC 20
16389: PUSH
16390: LD_INT 1
16392: ARRAY
16393: NONEQUAL
16394: PUSH
16395: LD_EXP 49
16399: PPUSH
16400: LD_INT 2
16402: PPUSH
16403: CALL_OW 259
16407: PUSH
16408: LD_LOC 20
16412: PUSH
16413: LD_INT 2
16415: ARRAY
16416: NONEQUAL
16417: OR
16418: PUSH
16419: LD_EXP 49
16423: PPUSH
16424: LD_INT 3
16426: PPUSH
16427: CALL_OW 259
16431: PUSH
16432: LD_LOC 20
16436: PUSH
16437: LD_INT 3
16439: ARRAY
16440: NONEQUAL
16441: OR
16442: PUSH
16443: LD_EXP 49
16447: PPUSH
16448: LD_INT 4
16450: PPUSH
16451: CALL_OW 259
16455: PUSH
16456: LD_LOC 20
16460: PUSH
16461: LD_INT 4
16463: ARRAY
16464: NONEQUAL
16465: OR
16466: IFFALSE 16476
// zmena = true ;
16468: LD_ADDR_VAR 0 1
16472: PUSH
16473: LD_INT 1
16475: ST_TO_ADDR
// if zmena then
16476: LD_VAR 0 1
16480: IFFALSE 16488
// hint_skilly else
16482: CALL 10404 0 0
16486: GO 16489
// enable ;
16488: ENABLE
// end ; end_of_file
16489: PPOPN 1
16491: END
// export Amici_past ; export Amici_baze ; export BWW_1 , BWW_2 ; export ABW1 , ABW2 ; var opravy ; var Am_opravari ; every 0 0$0.1 do
16492: GO 16494
16494: DISABLE
// begin opravy = false ;
16495: LD_ADDR_LOC 22
16499: PUSH
16500: LD_INT 0
16502: ST_TO_ADDR
// end ;
16503: END
// export function placni_amiky_past ; var i ; begin
16504: LD_INT 0
16506: PPUSH
16507: PPUSH
// for i in AMICI_PAST_LIST do
16508: LD_ADDR_VAR 0 2
16512: PUSH
16513: LD_EXP 34
16517: PUSH
16518: FOR_IN
16519: IFFALSE 16538
// PlaceUnitArea ( i , Am_past , false ) ;
16521: LD_VAR 0 2
16525: PPUSH
16526: LD_INT 7
16528: PPUSH
16529: LD_INT 0
16531: PPUSH
16532: CALL_OW 49
16536: GO 16518
16538: POP
16539: POP
// Amici_past = AMICI_PAST_LIST ;
16540: LD_ADDR_EXP 69
16544: PUSH
16545: LD_EXP 34
16549: ST_TO_ADDR
// AddComCrawl ( AMICI_PAST_LIST ) ;
16550: LD_EXP 34
16554: PPUSH
16555: CALL_OW 197
// AddComMoveXY ( AMICI_PAST_LIST , 60 , 28 ) ;
16559: LD_EXP 34
16563: PPUSH
16564: LD_INT 60
16566: PPUSH
16567: LD_INT 28
16569: PPUSH
16570: CALL_OW 171
// AddComMoveXY ( [ AMICI_PAST_LIST [ 1 ] , AMICI_PAST_LIST [ 2 ] , AMICI_PAST_LIST [ 3 ] ] , 73 , 21 ) ;
16574: LD_EXP 34
16578: PUSH
16579: LD_INT 1
16581: ARRAY
16582: PUSH
16583: LD_EXP 34
16587: PUSH
16588: LD_INT 2
16590: ARRAY
16591: PUSH
16592: LD_EXP 34
16596: PUSH
16597: LD_INT 3
16599: ARRAY
16600: PUSH
16601: EMPTY
16602: LIST
16603: LIST
16604: LIST
16605: PPUSH
16606: LD_INT 73
16608: PPUSH
16609: LD_INT 21
16611: PPUSH
16612: CALL_OW 171
// end ;
16616: LD_VAR 0 1
16620: RET
// export function stavba_am_baze ; var i ; var pom ; begin
16621: LD_INT 0
16623: PPUSH
16624: PPUSH
16625: PPUSH
// Amici_baze = AMICI_STAVENI_BASE_LIST ;
16626: LD_ADDR_EXP 70
16630: PUSH
16631: LD_EXP 35
16635: ST_TO_ADDR
// for i in AMICI_STAVENI_BASE_LIST do
16636: LD_ADDR_VAR 0 2
16640: PUSH
16641: LD_EXP 35
16645: PUSH
16646: FOR_IN
16647: IFFALSE 16666
// PlaceUnitArea ( i , Amici_enter , false ) ;
16649: LD_VAR 0 2
16653: PPUSH
16654: LD_INT 8
16656: PPUSH
16657: LD_INT 0
16659: PPUSH
16660: CALL_OW 49
16664: GO 16646
16666: POP
16667: POP
// ComMoveXY ( Amici_baze , 53 , 55 ) ;
16668: LD_EXP 70
16672: PPUSH
16673: LD_INT 53
16675: PPUSH
16676: LD_INT 55
16678: PPUSH
16679: CALL_OW 111
// uc_nation := nation_american ;
16683: LD_ADDR_OWVAR 21
16687: PUSH
16688: LD_INT 1
16690: ST_TO_ADDR
// uc_side := amici ;
16691: LD_ADDR_OWVAR 20
16695: PUSH
16696: LD_EXP 2
16700: ST_TO_ADDR
// bc_type := b_depot ;
16701: LD_ADDR_OWVAR 42
16705: PUSH
16706: LD_INT 0
16708: ST_TO_ADDR
// bc_level := 0 ;
16709: LD_ADDR_OWVAR 43
16713: PUSH
16714: LD_INT 0
16716: ST_TO_ADDR
// CreateAndPlaceBuildingXYD ( 52 , 48 , 2 ) ;
16717: LD_INT 52
16719: PPUSH
16720: LD_INT 48
16722: PPUSH
16723: LD_INT 2
16725: PPUSH
16726: CALL_OW 47
// end ;
16730: LD_VAR 0 1
16734: RET
// every 0 0$5 trigger FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_depot ] ] ) > 0 do var pom , i ;
16735: LD_INT 9
16737: PPUSH
16738: LD_INT 22
16740: PUSH
16741: LD_EXP 2
16745: PUSH
16746: EMPTY
16747: LIST
16748: LIST
16749: PUSH
16750: LD_INT 30
16752: PUSH
16753: LD_INT 0
16755: PUSH
16756: EMPTY
16757: LIST
16758: LIST
16759: PUSH
16760: EMPTY
16761: LIST
16762: LIST
16763: PPUSH
16764: CALL_OW 70
16768: PUSH
16769: LD_INT 0
16771: GREATER
16772: IFFALSE 16935
16774: GO 16776
16776: DISABLE
16777: LD_INT 0
16779: PPUSH
16780: PPUSH
// begin pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_depot ] ] ) ;
16781: LD_ADDR_VAR 0 1
16785: PUSH
16786: LD_INT 9
16788: PPUSH
16789: LD_INT 22
16791: PUSH
16792: LD_EXP 2
16796: PUSH
16797: EMPTY
16798: LIST
16799: LIST
16800: PUSH
16801: LD_INT 30
16803: PUSH
16804: LD_INT 0
16806: PUSH
16807: EMPTY
16808: LIST
16809: LIST
16810: PUSH
16811: EMPTY
16812: LIST
16813: LIST
16814: PPUSH
16815: CALL_OW 70
16819: ST_TO_ADDR
// while IsConstructed ( pom [ 1 ] ) <> 0 do
16820: LD_VAR 0 1
16824: PUSH
16825: LD_INT 1
16827: ARRAY
16828: PPUSH
16829: CALL_OW 304
16833: PUSH
16834: LD_INT 0
16836: NONEQUAL
16837: IFFALSE 16848
// wait ( 0 0$2 ) ;
16839: LD_INT 70
16841: PPUSH
16842: CALL_OW 67
16846: GO 16820
// AddResourceType ( GetBase ( pom [ 1 ] ) , mat_cans , 40 ) ;
16848: LD_VAR 0 1
16852: PUSH
16853: LD_INT 1
16855: ARRAY
16856: PPUSH
16857: CALL_OW 274
16861: PPUSH
16862: LD_INT 1
16864: PPUSH
16865: LD_INT 40
16867: PPUSH
16868: CALL_OW 276
// for i in Amici_baze do
16872: LD_ADDR_VAR 0 2
16876: PUSH
16877: LD_EXP 70
16881: PUSH
16882: FOR_IN
16883: IFFALSE 16912
// if GetClass ( i ) = class_engineer then
16885: LD_VAR 0 2
16889: PPUSH
16890: CALL_OW 257
16894: PUSH
16895: LD_INT 2
16897: EQUAL
16898: IFFALSE 16910
// pom = i ;
16900: LD_ADDR_VAR 0 1
16904: PUSH
16905: LD_VAR 0 2
16909: ST_TO_ADDR
16910: GO 16882
16912: POP
16913: POP
// AddComBuild ( pom , b_breastwork , 61 , 52 , 4 ) ;
16914: LD_VAR 0 1
16918: PPUSH
16919: LD_INT 31
16921: PPUSH
16922: LD_INT 61
16924: PPUSH
16925: LD_INT 52
16927: PPUSH
16928: LD_INT 4
16930: PPUSH
16931: CALL_OW 205
// end ;
16935: PPOPN 2
16937: END
// every 0 0$5 trigger FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_breastwork ] ] ) > 0 do var pom , i ;
16938: LD_INT 9
16940: PPUSH
16941: LD_INT 22
16943: PUSH
16944: LD_EXP 2
16948: PUSH
16949: EMPTY
16950: LIST
16951: LIST
16952: PUSH
16953: LD_INT 30
16955: PUSH
16956: LD_INT 31
16958: PUSH
16959: EMPTY
16960: LIST
16961: LIST
16962: PUSH
16963: EMPTY
16964: LIST
16965: LIST
16966: PPUSH
16967: CALL_OW 70
16971: PUSH
16972: LD_INT 0
16974: GREATER
16975: IFFALSE 17114
16977: GO 16979
16979: DISABLE
16980: LD_INT 0
16982: PPUSH
16983: PPUSH
// begin pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_breastwork ] ] ) ;
16984: LD_ADDR_VAR 0 1
16988: PUSH
16989: LD_INT 9
16991: PPUSH
16992: LD_INT 22
16994: PUSH
16995: LD_EXP 2
16999: PUSH
17000: EMPTY
17001: LIST
17002: LIST
17003: PUSH
17004: LD_INT 30
17006: PUSH
17007: LD_INT 31
17009: PUSH
17010: EMPTY
17011: LIST
17012: LIST
17013: PUSH
17014: EMPTY
17015: LIST
17016: LIST
17017: PPUSH
17018: CALL_OW 70
17022: ST_TO_ADDR
// while IsConstructed ( pom [ 1 ] ) <> 0 do
17023: LD_VAR 0 1
17027: PUSH
17028: LD_INT 1
17030: ARRAY
17031: PPUSH
17032: CALL_OW 304
17036: PUSH
17037: LD_INT 0
17039: NONEQUAL
17040: IFFALSE 17051
// wait ( 0 0$2 ) ;
17042: LD_INT 70
17044: PPUSH
17045: CALL_OW 67
17049: GO 17023
// for i in Amici_baze do
17051: LD_ADDR_VAR 0 2
17055: PUSH
17056: LD_EXP 70
17060: PUSH
17061: FOR_IN
17062: IFFALSE 17091
// if GetClass ( i ) = class_engineer then
17064: LD_VAR 0 2
17068: PPUSH
17069: CALL_OW 257
17073: PUSH
17074: LD_INT 2
17076: EQUAL
17077: IFFALSE 17089
// pom = i ;
17079: LD_ADDR_VAR 0 1
17083: PUSH
17084: LD_VAR 0 2
17088: ST_TO_ADDR
17089: GO 17061
17091: POP
17092: POP
// AddComBuild ( pom , b_breastwork , 62 , 56 , 4 ) ;
17093: LD_VAR 0 1
17097: PPUSH
17098: LD_INT 31
17100: PPUSH
17101: LD_INT 62
17103: PPUSH
17104: LD_INT 56
17106: PPUSH
17107: LD_INT 4
17109: PPUSH
17110: CALL_OW 205
// end ;
17114: PPOPN 2
17116: END
// every 0 0$5 trigger FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_breastwork ] ] ) > 1 do var pom , i , pom1 ;
17117: LD_INT 9
17119: PPUSH
17120: LD_INT 22
17122: PUSH
17123: LD_EXP 2
17127: PUSH
17128: EMPTY
17129: LIST
17130: LIST
17131: PUSH
17132: LD_INT 30
17134: PUSH
17135: LD_INT 31
17137: PUSH
17138: EMPTY
17139: LIST
17140: LIST
17141: PUSH
17142: EMPTY
17143: LIST
17144: LIST
17145: PPUSH
17146: CALL_OW 70
17150: PUSH
17151: LD_INT 1
17153: GREATER
17154: IFFALSE 17449
17156: GO 17158
17158: DISABLE
17159: LD_INT 0
17161: PPUSH
17162: PPUSH
17163: PPUSH
// begin pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_breastwork ] ] ) ;
17164: LD_ADDR_VAR 0 1
17168: PUSH
17169: LD_INT 9
17171: PPUSH
17172: LD_INT 22
17174: PUSH
17175: LD_EXP 2
17179: PUSH
17180: EMPTY
17181: LIST
17182: LIST
17183: PUSH
17184: LD_INT 30
17186: PUSH
17187: LD_INT 31
17189: PUSH
17190: EMPTY
17191: LIST
17192: LIST
17193: PUSH
17194: EMPTY
17195: LIST
17196: LIST
17197: PPUSH
17198: CALL_OW 70
17202: ST_TO_ADDR
// pom1 = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_class , class_soldier ] ] ) ;
17203: LD_ADDR_VAR 0 3
17207: PUSH
17208: LD_INT 9
17210: PPUSH
17211: LD_INT 22
17213: PUSH
17214: LD_EXP 2
17218: PUSH
17219: EMPTY
17220: LIST
17221: LIST
17222: PUSH
17223: LD_INT 25
17225: PUSH
17226: LD_INT 1
17228: PUSH
17229: EMPTY
17230: LIST
17231: LIST
17232: PUSH
17233: EMPTY
17234: LIST
17235: LIST
17236: PPUSH
17237: CALL_OW 70
17241: ST_TO_ADDR
// while IsConstructed ( pom [ 1 ] ) or IsConstructed ( pom [ 2 ] ) <> 0 do
17242: LD_VAR 0 1
17246: PUSH
17247: LD_INT 1
17249: ARRAY
17250: PPUSH
17251: CALL_OW 304
17255: PUSH
17256: LD_VAR 0 1
17260: PUSH
17261: LD_INT 2
17263: ARRAY
17264: PPUSH
17265: CALL_OW 304
17269: PUSH
17270: LD_INT 0
17272: NONEQUAL
17273: OR
17274: IFFALSE 17285
// wait ( 0 0$1 ) ;
17276: LD_INT 35
17278: PPUSH
17279: CALL_OW 67
17283: GO 17242
// ComEnterUnit ( pom1 [ 1 ] , pom [ 1 ] ) ;
17285: LD_VAR 0 3
17289: PUSH
17290: LD_INT 1
17292: ARRAY
17293: PPUSH
17294: LD_VAR 0 1
17298: PUSH
17299: LD_INT 1
17301: ARRAY
17302: PPUSH
17303: CALL_OW 120
// ComEnterUnit ( pom1 [ 2 ] , pom [ 2 ] ) ;
17307: LD_VAR 0 3
17311: PUSH
17312: LD_INT 2
17314: ARRAY
17315: PPUSH
17316: LD_VAR 0 1
17320: PUSH
17321: LD_INT 2
17323: ARRAY
17324: PPUSH
17325: CALL_OW 120
// SetBLevel ( pom , levely_bw_na_zapade [ difficulty ] ) ;
17329: LD_VAR 0 1
17333: PPUSH
17334: LD_EXP 41
17338: PUSH
17339: LD_OWVAR 67
17343: ARRAY
17344: PPUSH
17345: CALL_OW 241
// pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_depot ] ] ) ;
17349: LD_ADDR_VAR 0 1
17353: PUSH
17354: LD_INT 9
17356: PPUSH
17357: LD_INT 22
17359: PUSH
17360: LD_EXP 2
17364: PUSH
17365: EMPTY
17366: LIST
17367: LIST
17368: PUSH
17369: LD_INT 30
17371: PUSH
17372: LD_INT 0
17374: PUSH
17375: EMPTY
17376: LIST
17377: LIST
17378: PUSH
17379: EMPTY
17380: LIST
17381: LIST
17382: PPUSH
17383: CALL_OW 70
17387: ST_TO_ADDR
// pom1 = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_class , class_engineer ] ] ) ;
17388: LD_ADDR_VAR 0 3
17392: PUSH
17393: LD_INT 9
17395: PPUSH
17396: LD_INT 22
17398: PUSH
17399: LD_EXP 2
17403: PUSH
17404: EMPTY
17405: LIST
17406: LIST
17407: PUSH
17408: LD_INT 25
17410: PUSH
17411: LD_INT 2
17413: PUSH
17414: EMPTY
17415: LIST
17416: LIST
17417: PUSH
17418: EMPTY
17419: LIST
17420: LIST
17421: PPUSH
17422: CALL_OW 70
17426: ST_TO_ADDR
// ComEnterUnit ( pom1 , pom [ 1 ] ) ;
17427: LD_VAR 0 3
17431: PPUSH
17432: LD_VAR 0 1
17436: PUSH
17437: LD_INT 1
17439: ARRAY
17440: PPUSH
17441: CALL_OW 120
// nastav_levely_budov ;
17445: CALL 19023 0 0
// end ;
17449: PPOPN 3
17451: END
// export function amici_boj ; var mech ; var auto ; var i ; var AP ; begin
17452: LD_INT 0
17454: PPUSH
17455: PPUSH
17456: PPUSH
17457: PPUSH
17458: PPUSH
// ComMoveXY ( Amici_past , 64 , 16 ) ;
17459: LD_EXP 69
17463: PPUSH
17464: LD_INT 64
17466: PPUSH
17467: LD_INT 16
17469: PPUSH
17470: CALL_OW 111
// mech = vyber_cloveka ( Amici_past , class_mechanic ) ;
17474: LD_ADDR_VAR 0 2
17478: PUSH
17479: LD_EXP 69
17483: PPUSH
17484: LD_INT 3
17486: PPUSH
17487: CALL 4202 0 2
17491: ST_TO_ADDR
// if mech = 0 or ( not IsOK ( mech ) ) then
17492: LD_VAR 0 2
17496: PUSH
17497: LD_INT 0
17499: EQUAL
17500: PUSH
17501: LD_VAR 0 2
17505: PPUSH
17506: CALL_OW 302
17510: NOT
17511: OR
17512: IFFALSE 17542
// mech = UnitFilter ( Amici_past , [ [ f_ok ] ] ) [ 1 ] ;
17514: LD_ADDR_VAR 0 2
17518: PUSH
17519: LD_EXP 69
17523: PPUSH
17524: LD_INT 50
17526: PUSH
17527: EMPTY
17528: LIST
17529: PUSH
17530: EMPTY
17531: LIST
17532: PPUSH
17533: CALL_OW 72
17537: PUSH
17538: LD_INT 1
17540: ARRAY
17541: ST_TO_ADDR
// auto = FilterAllUnits ( [ [ f_side , You2 ] , [ f_type , unit_vehicle ] ] ) ;
17542: LD_ADDR_VAR 0 3
17546: PUSH
17547: LD_INT 22
17549: PUSH
17550: LD_EXP 4
17554: PUSH
17555: EMPTY
17556: LIST
17557: LIST
17558: PUSH
17559: LD_INT 21
17561: PUSH
17562: LD_INT 2
17564: PUSH
17565: EMPTY
17566: LIST
17567: LIST
17568: PUSH
17569: EMPTY
17570: LIST
17571: LIST
17572: PPUSH
17573: CALL_OW 69
17577: ST_TO_ADDR
// if auto > 0 then
17578: LD_VAR 0 3
17582: PUSH
17583: LD_INT 0
17585: GREATER
17586: IFFALSE 17602
// auto = auto [ 1 ] ;
17588: LD_ADDR_VAR 0 3
17592: PUSH
17593: LD_VAR 0 3
17597: PUSH
17598: LD_INT 1
17600: ARRAY
17601: ST_TO_ADDR
// if mech = 0 then
17602: LD_VAR 0 2
17606: PUSH
17607: LD_INT 0
17609: EQUAL
17610: IFFALSE 17626
// mech = Amici_past [ 1 ] ;
17612: LD_ADDR_VAR 0 2
17616: PUSH
17617: LD_EXP 69
17621: PUSH
17622: LD_INT 1
17624: ARRAY
17625: ST_TO_ADDR
// ComEnterUnit ( mech , auto ) ;
17626: LD_VAR 0 2
17630: PPUSH
17631: LD_VAR 0 3
17635: PPUSH
17636: CALL_OW 120
// AddComMoveXY ( Amici_past , 69 , 18 ) ;
17640: LD_EXP 69
17644: PPUSH
17645: LD_INT 69
17647: PPUSH
17648: LD_INT 18
17650: PPUSH
17651: CALL_OW 171
// AddComMoveXY ( auto , 72 , 21 ) ;
17655: LD_VAR 0 3
17659: PPUSH
17660: LD_INT 72
17662: PPUSH
17663: LD_INT 21
17665: PPUSH
17666: CALL_OW 171
// wait ( 0 0$3 ) ;
17670: LD_INT 105
17672: PPUSH
17673: CALL_OW 67
// zaber_to_auto ;
17677: CALL 18890 0 0
// while FilterAllUnits ( [ [ f_side , Amici ] , [ f_type , unit_vehicle ] ] ) = 0 do
17681: LD_INT 22
17683: PUSH
17684: LD_EXP 2
17688: PUSH
17689: EMPTY
17690: LIST
17691: LIST
17692: PUSH
17693: LD_INT 21
17695: PUSH
17696: LD_INT 2
17698: PUSH
17699: EMPTY
17700: LIST
17701: LIST
17702: PUSH
17703: EMPTY
17704: LIST
17705: LIST
17706: PPUSH
17707: CALL_OW 69
17711: PUSH
17712: LD_INT 0
17714: EQUAL
17715: IFFALSE 17795
// begin for i in Amici_past do
17717: LD_ADDR_VAR 0 4
17721: PUSH
17722: LD_EXP 69
17726: PUSH
17727: FOR_IN
17728: IFFALSE 17755
// if IsOK ( i ) then
17730: LD_VAR 0 4
17734: PPUSH
17735: CALL_OW 302
17739: IFFALSE 17753
// begin AP = i ;
17741: LD_ADDR_VAR 0 5
17745: PUSH
17746: LD_VAR 0 4
17750: ST_TO_ADDR
// break ;
17751: GO 17755
// end ;
17753: GO 17727
17755: POP
17756: POP
// ComEnterUnit ( AP , Auto_belkov ) ;
17757: LD_VAR 0 5
17761: PPUSH
17762: LD_EXP 67
17766: PPUSH
17767: CALL_OW 120
// AddComMoveXY ( AP , 73 , 22 ) ;
17771: LD_VAR 0 5
17775: PPUSH
17776: LD_INT 73
17778: PPUSH
17779: LD_INT 22
17781: PPUSH
17782: CALL_OW 171
// wait ( 0 0$2 ) ;
17786: LD_INT 70
17788: PPUSH
17789: CALL_OW 67
// end ;
17793: GO 17681
// end ;
17795: LD_VAR 0 1
17799: RET
// export function amici_attack_belkov ; var i ; begin
17800: LD_INT 0
17802: PPUSH
17803: PPUSH
// if GetSide ( bel ) <> You then
17804: LD_EXP 49
17808: PPUSH
17809: CALL_OW 255
17813: PUSH
17814: LD_EXP 1
17818: NONEQUAL
17819: IFFALSE 17942
// begin for i in AMICI_UTOK_BELKOV_LIST do
17821: LD_ADDR_VAR 0 2
17825: PUSH
17826: LD_EXP 36
17830: PUSH
17831: FOR_IN
17832: IFFALSE 17851
// PlaceUnitArea ( i , Zpet_bel , false ) ;
17834: LD_VAR 0 2
17838: PPUSH
17839: LD_INT 15
17841: PPUSH
17842: LD_INT 0
17844: PPUSH
17845: CALL_OW 49
17849: GO 17831
17851: POP
17852: POP
// McMove ( 1 , AMICI_UTOK_BELKOV_LIST , [ [ 44 , 6 ] , [ 36 , 5 ] , [ 36 , 10 ] , [ GetX ( bel ) , GetY ( bel ) ] , [ 52 , 2 ] ] , [ mc_move_agressive ] ) ;
17853: LD_INT 1
17855: PPUSH
17856: LD_EXP 36
17860: PPUSH
17861: LD_INT 44
17863: PUSH
17864: LD_INT 6
17866: PUSH
17867: EMPTY
17868: LIST
17869: LIST
17870: PUSH
17871: LD_INT 36
17873: PUSH
17874: LD_INT 5
17876: PUSH
17877: EMPTY
17878: LIST
17879: LIST
17880: PUSH
17881: LD_INT 36
17883: PUSH
17884: LD_INT 10
17886: PUSH
17887: EMPTY
17888: LIST
17889: LIST
17890: PUSH
17891: LD_EXP 49
17895: PPUSH
17896: CALL_OW 250
17900: PUSH
17901: LD_EXP 49
17905: PPUSH
17906: CALL_OW 251
17910: PUSH
17911: EMPTY
17912: LIST
17913: LIST
17914: PUSH
17915: LD_INT 52
17917: PUSH
17918: LD_INT 2
17920: PUSH
17921: EMPTY
17922: LIST
17923: LIST
17924: PUSH
17925: EMPTY
17926: LIST
17927: LIST
17928: LIST
17929: LIST
17930: LIST
17931: PPUSH
17932: LD_INT 6
17934: PUSH
17935: EMPTY
17936: LIST
17937: PPUSH
17938: CALL_OW 398
// end ; end ;
17942: LD_VAR 0 1
17946: RET
// export function amici_retreat ; var i , Amici_All ; begin
17947: LD_INT 0
17949: PPUSH
17950: PPUSH
17951: PPUSH
// Amici_All := AMICI_UTOK_BELKOV_LIST union AMICI_PAST_LIST ^ auto_belkov ;
17952: LD_ADDR_VAR 0 3
17956: PUSH
17957: LD_EXP 36
17961: PUSH
17962: LD_EXP 34
17966: PUSH
17967: LD_EXP 67
17971: ADD
17972: UNION
17973: ST_TO_ADDR
// repeat ComMoveToArea ( Amici_All , Zpet_bel ) ;
17974: LD_VAR 0 3
17978: PPUSH
17979: LD_INT 15
17981: PPUSH
17982: CALL_OW 113
// wait ( 0 0$1 ) ;
17986: LD_INT 35
17988: PPUSH
17989: CALL_OW 67
// for i in Amici_All do
17993: LD_ADDR_VAR 0 2
17997: PUSH
17998: LD_VAR 0 3
18002: PUSH
18003: FOR_IN
18004: IFFALSE 18075
// begin if not ( IsOK ( i ) ) then
18006: LD_VAR 0 2
18010: PPUSH
18011: CALL_OW 302
18015: NOT
18016: IFFALSE 18034
// Amici_All := Amici_All diff i ;
18018: LD_ADDR_VAR 0 3
18022: PUSH
18023: LD_VAR 0 3
18027: PUSH
18028: LD_VAR 0 2
18032: DIFF
18033: ST_TO_ADDR
// if IsInArea ( i , Zpet_bel ) then
18034: LD_VAR 0 2
18038: PPUSH
18039: LD_INT 15
18041: PPUSH
18042: CALL_OW 308
18046: IFFALSE 18073
// begin Amici_All := Amici_All diff i ;
18048: LD_ADDR_VAR 0 3
18052: PUSH
18053: LD_VAR 0 3
18057: PUSH
18058: LD_VAR 0 2
18062: DIFF
18063: ST_TO_ADDR
// RemoveUnit ( i ) ;
18064: LD_VAR 0 2
18068: PPUSH
18069: CALL_OW 64
// end ; end ;
18073: GO 18003
18075: POP
18076: POP
// until Amici_All = [ ] ;
18077: LD_VAR 0 3
18081: PUSH
18082: EMPTY
18083: EQUAL
18084: IFFALSE 17974
// end ;
18086: LD_VAR 0 1
18090: RET
// every 0 0$2 trigger FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_breastwork ] ] ) = 2 do
18091: LD_INT 9
18093: PPUSH
18094: LD_INT 22
18096: PUSH
18097: LD_EXP 2
18101: PUSH
18102: EMPTY
18103: LIST
18104: LIST
18105: PUSH
18106: LD_INT 30
18108: PUSH
18109: LD_INT 31
18111: PUSH
18112: EMPTY
18113: LIST
18114: LIST
18115: PUSH
18116: EMPTY
18117: LIST
18118: LIST
18119: PPUSH
18120: CALL_OW 70
18124: PUSH
18125: LD_INT 2
18127: EQUAL
18128: IFFALSE 18169
18130: GO 18132
18132: DISABLE
// begin Am_opravari = UnitFilter ( Amici_baze , [ [ f_class , class_engineer ] ] ) ;
18133: LD_ADDR_LOC 23
18137: PUSH
18138: LD_EXP 70
18142: PPUSH
18143: LD_INT 25
18145: PUSH
18146: LD_INT 2
18148: PUSH
18149: EMPTY
18150: LIST
18151: LIST
18152: PUSH
18153: EMPTY
18154: LIST
18155: PPUSH
18156: CALL_OW 72
18160: ST_TO_ADDR
// opravy = true ;
18161: LD_ADDR_LOC 22
18165: PUSH
18166: LD_INT 1
18168: ST_TO_ADDR
// end ;
18169: END
// every 0 0$4 trigger opravy do var pom , i ; var pom1 , pom2 ;
18170: LD_LOC 22
18174: IFFALSE 18650
18176: GO 18178
18178: DISABLE
18179: LD_INT 0
18181: PPUSH
18182: PPUSH
18183: PPUSH
18184: PPUSH
// begin pom1 = [ ] ;
18185: LD_ADDR_VAR 0 3
18189: PUSH
18190: EMPTY
18191: ST_TO_ADDR
// pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_breastwork ] ] ) ;
18192: LD_ADDR_VAR 0 1
18196: PUSH
18197: LD_INT 9
18199: PPUSH
18200: LD_INT 22
18202: PUSH
18203: LD_EXP 2
18207: PUSH
18208: EMPTY
18209: LIST
18210: LIST
18211: PUSH
18212: LD_INT 30
18214: PUSH
18215: LD_INT 31
18217: PUSH
18218: EMPTY
18219: LIST
18220: LIST
18221: PUSH
18222: EMPTY
18223: LIST
18224: LIST
18225: PPUSH
18226: CALL_OW 70
18230: ST_TO_ADDR
// for i in pom do
18231: LD_ADDR_VAR 0 2
18235: PUSH
18236: LD_VAR 0 1
18240: PUSH
18241: FOR_IN
18242: IFFALSE 18277
// if GetLives ( i ) < 1000 then
18244: LD_VAR 0 2
18248: PPUSH
18249: CALL_OW 256
18253: PUSH
18254: LD_INT 1000
18256: LESS
18257: IFFALSE 18275
// pom1 = pom1 ^ i ;
18259: LD_ADDR_VAR 0 3
18263: PUSH
18264: LD_VAR 0 3
18268: PUSH
18269: LD_VAR 0 2
18273: ADD
18274: ST_TO_ADDR
18275: GO 18241
18277: POP
18278: POP
// case pom1 + 0 of 1 :
18279: LD_VAR 0 3
18283: PUSH
18284: LD_INT 0
18286: PLUS
18287: PUSH
18288: LD_INT 1
18290: DOUBLE
18291: EQUAL
18292: IFTRUE 18296
18294: GO 18400
18296: POP
// begin ComExitBuilding ( Am_opravari ) ;
18297: LD_LOC 23
18301: PPUSH
18302: CALL_OW 122
// AddComRepairBuilding ( Am_opravari , pom1 [ 1 ] ) ;
18306: LD_LOC 23
18310: PPUSH
18311: LD_VAR 0 3
18315: PUSH
18316: LD_INT 1
18318: ARRAY
18319: PPUSH
18320: CALL_OW 190
// pom2 = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_depot ] ] ) ;
18324: LD_ADDR_VAR 0 4
18328: PUSH
18329: LD_INT 9
18331: PPUSH
18332: LD_INT 22
18334: PUSH
18335: LD_EXP 2
18339: PUSH
18340: EMPTY
18341: LIST
18342: LIST
18343: PUSH
18344: LD_INT 30
18346: PUSH
18347: LD_INT 0
18349: PUSH
18350: EMPTY
18351: LIST
18352: LIST
18353: PUSH
18354: EMPTY
18355: LIST
18356: LIST
18357: PPUSH
18358: CALL_OW 70
18362: ST_TO_ADDR
// if pom2 > 0 then
18363: LD_VAR 0 4
18367: PUSH
18368: LD_INT 0
18370: GREATER
18371: IFFALSE 18391
// AddComEnterUnit ( Am_opravari , pom2 [ 1 ] ) ;
18373: LD_LOC 23
18377: PPUSH
18378: LD_VAR 0 4
18382: PUSH
18383: LD_INT 1
18385: ARRAY
18386: PPUSH
18387: CALL_OW 180
// wait ( 0 0$5 ) ;
18391: LD_INT 175
18393: PPUSH
18394: CALL_OW 67
// end ; 2 :
18398: GO 18649
18400: LD_INT 2
18402: DOUBLE
18403: EQUAL
18404: IFTRUE 18408
18406: GO 18648
18408: POP
// begin if Am_opravari + 0 = 2 then
18409: LD_LOC 23
18413: PUSH
18414: LD_INT 0
18416: PLUS
18417: PUSH
18418: LD_INT 2
18420: EQUAL
18421: IFFALSE 18545
// begin ComExitBuilding ( Am_opravari ) ;
18423: LD_LOC 23
18427: PPUSH
18428: CALL_OW 122
// AddComRepairBuilding ( Am_opravari [ 2 ] , pom1 [ 1 ] ) ;
18432: LD_LOC 23
18436: PUSH
18437: LD_INT 2
18439: ARRAY
18440: PPUSH
18441: LD_VAR 0 3
18445: PUSH
18446: LD_INT 1
18448: ARRAY
18449: PPUSH
18450: CALL_OW 190
// AddComRepairBuilding ( Am_opravari [ 1 ] , pom1 [ 1 ] ) ;
18454: LD_LOC 23
18458: PUSH
18459: LD_INT 1
18461: ARRAY
18462: PPUSH
18463: LD_VAR 0 3
18467: PUSH
18468: LD_INT 1
18470: ARRAY
18471: PPUSH
18472: CALL_OW 190
// pom2 = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_depot ] ] ) ;
18476: LD_ADDR_VAR 0 4
18480: PUSH
18481: LD_INT 9
18483: PPUSH
18484: LD_INT 22
18486: PUSH
18487: LD_EXP 2
18491: PUSH
18492: EMPTY
18493: LIST
18494: LIST
18495: PUSH
18496: LD_INT 30
18498: PUSH
18499: LD_INT 0
18501: PUSH
18502: EMPTY
18503: LIST
18504: LIST
18505: PUSH
18506: EMPTY
18507: LIST
18508: LIST
18509: PPUSH
18510: CALL_OW 70
18514: ST_TO_ADDR
// if pom2 > 0 then
18515: LD_VAR 0 4
18519: PUSH
18520: LD_INT 0
18522: GREATER
18523: IFFALSE 18543
// AddComEnterUnit ( Am_opravari , pom2 [ 1 ] ) ;
18525: LD_LOC 23
18529: PPUSH
18530: LD_VAR 0 4
18534: PUSH
18535: LD_INT 1
18537: ARRAY
18538: PPUSH
18539: CALL_OW 180
// end else
18543: GO 18639
// begin ComExitBuilding ( Am_opravari ) ;
18545: LD_LOC 23
18549: PPUSH
18550: CALL_OW 122
// AddComRepairBuilding ( Am_opravari , pom1 [ 1 ] ) ;
18554: LD_LOC 23
18558: PPUSH
18559: LD_VAR 0 3
18563: PUSH
18564: LD_INT 1
18566: ARRAY
18567: PPUSH
18568: CALL_OW 190
// pom2 = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_btype , b_depot ] ] ) ;
18572: LD_ADDR_VAR 0 4
18576: PUSH
18577: LD_INT 9
18579: PPUSH
18580: LD_INT 22
18582: PUSH
18583: LD_EXP 2
18587: PUSH
18588: EMPTY
18589: LIST
18590: LIST
18591: PUSH
18592: LD_INT 30
18594: PUSH
18595: LD_INT 0
18597: PUSH
18598: EMPTY
18599: LIST
18600: LIST
18601: PUSH
18602: EMPTY
18603: LIST
18604: LIST
18605: PPUSH
18606: CALL_OW 70
18610: ST_TO_ADDR
// if pom2 > 0 then
18611: LD_VAR 0 4
18615: PUSH
18616: LD_INT 0
18618: GREATER
18619: IFFALSE 18639
// AddComEnterUnit ( Am_opravari , pom2 [ 1 ] ) ;
18621: LD_LOC 23
18625: PPUSH
18626: LD_VAR 0 4
18630: PUSH
18631: LD_INT 1
18633: ARRAY
18634: PPUSH
18635: CALL_OW 180
// end ; wait ( 0 0$5 ) ;
18639: LD_INT 175
18641: PPUSH
18642: CALL_OW 67
// end ; end ;
18646: GO 18649
18648: POP
// enable ;
18649: ENABLE
// end ;
18650: PPOPN 4
18652: END
// every 0 0$1 trigger opravy do var pom , i ;
18653: LD_LOC 22
18657: IFFALSE 18727
18659: GO 18661
18661: DISABLE
18662: LD_INT 0
18664: PPUSH
18665: PPUSH
// begin pom = [ ] ;
18666: LD_ADDR_VAR 0 1
18670: PUSH
18671: EMPTY
18672: ST_TO_ADDR
// for i in Am_opravari do
18673: LD_ADDR_VAR 0 2
18677: PUSH
18678: LD_LOC 23
18682: PUSH
18683: FOR_IN
18684: IFFALSE 18715
// if IsOK ( i ) then
18686: LD_VAR 0 2
18690: PPUSH
18691: CALL_OW 302
18695: IFFALSE 18713
// pom = pom ^ i ;
18697: LD_ADDR_VAR 0 1
18701: PUSH
18702: LD_VAR 0 1
18706: PUSH
18707: LD_VAR 0 2
18711: ADD
18712: ST_TO_ADDR
18713: GO 18683
18715: POP
18716: POP
// Am_opravari = pom ;
18717: LD_ADDR_LOC 23
18721: PUSH
18722: LD_VAR 0 1
18726: ST_TO_ADDR
// end ;
18727: PPOPN 2
18729: END
// export function amici_po_kecech ; var i , j ; var pom ; begin
18730: LD_INT 0
18732: PPUSH
18733: PPUSH
18734: PPUSH
18735: PPUSH
// i = 1 ;
18736: LD_ADDR_VAR 0 2
18740: PUSH
18741: LD_INT 1
18743: ST_TO_ADDR
// if GetSide ( auto_belkov ) <> Amici then
18744: LD_EXP 67
18748: PPUSH
18749: CALL_OW 255
18753: PUSH
18754: LD_EXP 2
18758: NONEQUAL
18759: IFFALSE 18842
// begin for i in Amici_past do
18761: LD_ADDR_VAR 0 2
18765: PUSH
18766: LD_EXP 69
18770: PUSH
18771: FOR_IN
18772: IFFALSE 18797
// if IsOK ( i ) then
18774: LD_VAR 0 2
18778: PPUSH
18779: CALL_OW 302
18783: IFFALSE 18795
// pom = i ;
18785: LD_ADDR_VAR 0 4
18789: PUSH
18790: LD_VAR 0 2
18794: ST_TO_ADDR
18795: GO 18771
18797: POP
18798: POP
// ComEnterUnit ( pom , auto_belkov ) ;
18799: LD_VAR 0 4
18803: PPUSH
18804: LD_EXP 67
18808: PPUSH
18809: CALL_OW 120
// AddComMoveXY ( pom , 74 , 22 ) ;
18813: LD_VAR 0 4
18817: PPUSH
18818: LD_INT 74
18820: PPUSH
18821: LD_INT 22
18823: PPUSH
18824: CALL_OW 171
// i = i + 1 ;
18828: LD_ADDR_VAR 0 2
18832: PUSH
18833: LD_VAR 0 2
18837: PUSH
18838: LD_INT 1
18840: PLUS
18841: ST_TO_ADDR
// end ; for i in Amici_past do
18842: LD_ADDR_VAR 0 2
18846: PUSH
18847: LD_EXP 69
18851: PUSH
18852: FOR_IN
18853: IFFALSE 18883
// if IsOK ( i ) then
18855: LD_VAR 0 2
18859: PPUSH
18860: CALL_OW 302
18864: IFFALSE 18881
// ComMoveXY ( i , 72 , 25 ) ;
18866: LD_VAR 0 2
18870: PPUSH
18871: LD_INT 72
18873: PPUSH
18874: LD_INT 25
18876: PPUSH
18877: CALL_OW 111
18881: GO 18852
18883: POP
18884: POP
// end ;
18885: LD_VAR 0 1
18889: RET
// function zaber_to_auto ; var i , pom ; begin
18890: LD_INT 0
18892: PPUSH
18893: PPUSH
18894: PPUSH
// while ( FilterAllUnits ( [ [ f_side , Amici ] , [ f_type , unit_vehicle ] ] ) = 0 ) and IsOK ( auto_belkov ) do
18895: LD_INT 22
18897: PUSH
18898: LD_EXP 2
18902: PUSH
18903: EMPTY
18904: LIST
18905: LIST
18906: PUSH
18907: LD_INT 21
18909: PUSH
18910: LD_INT 2
18912: PUSH
18913: EMPTY
18914: LIST
18915: LIST
18916: PUSH
18917: EMPTY
18918: LIST
18919: LIST
18920: PPUSH
18921: CALL_OW 69
18925: PUSH
18926: LD_INT 0
18928: EQUAL
18929: PUSH
18930: LD_EXP 67
18934: PPUSH
18935: CALL_OW 302
18939: AND
18940: IFFALSE 19018
// begin for i in Amici_past do
18942: LD_ADDR_VAR 0 2
18946: PUSH
18947: LD_EXP 69
18951: PUSH
18952: FOR_IN
18953: IFFALSE 18978
// if IsOK ( i ) then
18955: LD_VAR 0 2
18959: PPUSH
18960: CALL_OW 302
18964: IFFALSE 18976
// pom = i ;
18966: LD_ADDR_VAR 0 3
18970: PUSH
18971: LD_VAR 0 2
18975: ST_TO_ADDR
18976: GO 18952
18978: POP
18979: POP
// ComEnterUnit ( pom , auto_belkov ) ;
18980: LD_VAR 0 3
18984: PPUSH
18985: LD_EXP 67
18989: PPUSH
18990: CALL_OW 120
// AddComMoveXY ( pom , 72 , 20 ) ;
18994: LD_VAR 0 3
18998: PPUSH
18999: LD_INT 72
19001: PPUSH
19002: LD_INT 20
19004: PPUSH
19005: CALL_OW 171
// wait ( 0 0$2 ) ;
19009: LD_INT 70
19011: PPUSH
19012: CALL_OW 67
// end ;
19016: GO 18895
// end ;
19018: LD_VAR 0 1
19022: RET
// function nastav_levely_budov ; begin
19023: LD_INT 0
19025: PPUSH
// SetBLevel ( [ Am_bre1 , Am_bre2 ] , levely_bw_na_vychode ) ;
19026: LD_INT 30
19028: PUSH
19029: LD_INT 31
19031: PUSH
19032: EMPTY
19033: LIST
19034: LIST
19035: PPUSH
19036: LD_EXP 42
19040: PPUSH
19041: CALL_OW 241
// SetBLevel ( [ BWW_1 , BWW_2 ] , levely_bw_na_vychode ) ;
19045: LD_EXP 71
19049: PUSH
19050: LD_EXP 72
19054: PUSH
19055: EMPTY
19056: LIST
19057: LIST
19058: PPUSH
19059: LD_EXP 42
19063: PPUSH
19064: CALL_OW 241
// end ; end_of_file
19068: LD_VAR 0 1
19072: RET
// every 0 0$5 trigger posily_go do var pom ; var i ;
19073: LD_EXP 65
19077: IFFALSE 19191
19079: GO 19081
19081: DISABLE
19082: LD_INT 0
19084: PPUSH
19085: PPUSH
// begin pom = [ RU2_hv1 , RU2_hv2 ] ;
19086: LD_ADDR_VAR 0 1
19090: PUSH
19091: LD_INT 15
19093: PUSH
19094: LD_INT 16
19096: PUSH
19097: EMPTY
19098: LIST
19099: LIST
19100: ST_TO_ADDR
// wait ( 2 ) ;
19101: LD_INT 2
19103: PPUSH
19104: CALL_OW 67
// AddComAgressiveMove ( pom , GetX ( bur ) , GetY ( bur ) ) ;
19108: LD_VAR 0 1
19112: PPUSH
19113: LD_EXP 47
19117: PPUSH
19118: CALL_OW 250
19122: PPUSH
19123: LD_EXP 47
19127: PPUSH
19128: CALL_OW 251
19132: PPUSH
19133: CALL_OW 174
// wait ( 0 0$6 ) ;
19137: LD_INT 210
19139: PPUSH
19140: CALL_OW 67
// for i in pom do
19144: LD_ADDR_VAR 0 2
19148: PUSH
19149: LD_VAR 0 1
19153: PUSH
19154: FOR_IN
19155: IFFALSE 19189
// begin SetSide ( i , You ) ;
19157: LD_VAR 0 2
19161: PPUSH
19162: LD_EXP 1
19166: PPUSH
19167: CALL_OW 235
// BurlakComp = BurlakComp ^ i ;
19171: LD_ADDR_EXP 11
19175: PUSH
19176: LD_EXP 11
19180: PUSH
19181: LD_VAR 0 2
19185: ADD
19186: ST_TO_ADDR
// end ;
19187: GO 19154
19189: POP
19190: POP
// end ;
19191: PPOPN 2
19193: END
// on VehicleCaptured ( vehicle , ab , side , human ) do begin if ab = auto_belkov then
19194: LD_VAR 0 2
19198: PUSH
19199: LD_EXP 67
19203: EQUAL
19204: IFFALSE 19216
// auto_belkov = vehicle ;
19206: LD_ADDR_EXP 67
19210: PUSH
19211: LD_VAR 0 1
19215: ST_TO_ADDR
// debug_strings = [ auto_belkov , GetSide ( auto_belkov ) , bel , IsDrivenBy ( auto_belkov ) ] ;
19216: LD_ADDR_OWVAR 48
19220: PUSH
19221: LD_EXP 67
19225: PUSH
19226: LD_EXP 67
19230: PPUSH
19231: CALL_OW 255
19235: PUSH
19236: LD_EXP 49
19240: PUSH
19241: LD_EXP 67
19245: PPUSH
19246: CALL_OW 311
19250: PUSH
19251: EMPTY
19252: LIST
19253: LIST
19254: LIST
19255: LIST
19256: ST_TO_ADDR
// enable ;
19257: ENABLE
// end ;
19258: PPOPN 4
19260: END
