// var stReady , stRepair , stInCombat , stHelp , stNotReady , ImpatienceTreshold ; var vozKirov , vozKirovImpat , vozKirovState , vozKirovOut , vozHrace , mechKirov , mechKirovOut ; var targHrace , targAcquired ; every 0 0$1 marked 10 do var i ; var auta , autapom ; var poc ;
   0: GO 2
   2: DISABLE
   3: LD_INT 0
   5: PPUSH
   6: PPUSH
   7: PPUSH
   8: PPUSH
// begin auta = FilterUnitsInArea ( RU2_base , [ [ f_type , unit_vehicle ] , [ f_occupied ] ] ) ;
   9: LD_ADDR_VAR 0 2
  13: PUSH
  14: LD_INT 2
  16: PPUSH
  17: LD_INT 21
  19: PUSH
  20: LD_INT 2
  22: PUSH
  23: EMPTY
  24: LIST
  25: LIST
  26: PUSH
  27: LD_INT 59
  29: PUSH
  30: EMPTY
  31: LIST
  32: PUSH
  33: EMPTY
  34: LIST
  35: LIST
  36: PPUSH
  37: CALL_OW 70
  41: ST_TO_ADDR
// for i in auta do
  42: LD_ADDR_VAR 0 1
  46: PUSH
  47: LD_VAR 0 2
  51: PUSH
  52: FOR_IN
  53: IFFALSE 132
// begin ComMoveToArea ( i , Zarea_utok ) ;
  55: LD_VAR 0 1
  59: PPUSH
  60: LD_INT 50
  62: PPUSH
  63: CALL_OW 113
// AddComAgressiveMove ( i , 28 , 15 ) ;
  67: LD_VAR 0 1
  71: PPUSH
  72: LD_INT 28
  74: PPUSH
  75: LD_INT 15
  77: PPUSH
  78: CALL_OW 174
// AddComAttackUnit ( i , Am_bu3 ) ;
  82: LD_VAR 0 1
  86: PPUSH
  87: LD_INT 19
  89: PPUSH
  90: CALL_OW 175
// AddComAgressiveMove ( i , 13 , 9 ) ;
  94: LD_VAR 0 1
  98: PPUSH
  99: LD_INT 13
 101: PPUSH
 102: LD_INT 9
 104: PPUSH
 105: CALL_OW 174
// RUSKE_POSILY_RIDICI_LIST = RUSKE_POSILY_RIDICI_LIST diff IsDrivenBy ( i ) ;
 109: LD_ADDR_EXP 57
 113: PUSH
 114: LD_EXP 57
 118: PUSH
 119: LD_VAR 0 1
 123: PPUSH
 124: CALL_OW 311
 128: DIFF
 129: ST_TO_ADDR
// end ;
 130: GO 52
 132: POP
 133: POP
// auta = FilterUnitsInArea ( RU2_base , [ [ f_type , unit_vehicle ] , f_not , [ f_occupied ] ] ) ;
 134: LD_ADDR_VAR 0 2
 138: PUSH
 139: LD_INT 2
 141: PPUSH
 142: LD_INT 21
 144: PUSH
 145: LD_INT 2
 147: PUSH
 148: EMPTY
 149: LIST
 150: LIST
 151: PUSH
 152: LD_INT 3
 154: PUSH
 155: LD_INT 59
 157: PUSH
 158: EMPTY
 159: LIST
 160: PUSH
 161: EMPTY
 162: LIST
 163: LIST
 164: LIST
 165: PPUSH
 166: CALL_OW 70
 170: ST_TO_ADDR
// poc = 1 ;
 171: LD_ADDR_VAR 0 4
 175: PUSH
 176: LD_INT 1
 178: ST_TO_ADDR
// for i in RUSKE_POSILY_RIDICI_LIST do
 179: LD_ADDR_VAR 0 1
 183: PUSH
 184: LD_EXP 57
 188: PUSH
 189: FOR_IN
 190: IFFALSE 244
// begin if auta + 0 >= poc then
 192: LD_VAR 0 2
 196: PUSH
 197: LD_INT 0
 199: PLUS
 200: PUSH
 201: LD_VAR 0 4
 205: GREATEREQUAL
 206: IFFALSE 228
// ComEnterUnit ( i , auta [ poc ] ) ;
 208: LD_VAR 0 1
 212: PPUSH
 213: LD_VAR 0 2
 217: PUSH
 218: LD_VAR 0 4
 222: ARRAY
 223: PPUSH
 224: CALL_OW 120
// poc = poc + 1 ;
 228: LD_ADDR_VAR 0 4
 232: PUSH
 233: LD_VAR 0 4
 237: PUSH
 238: LD_INT 1
 240: PLUS
 241: ST_TO_ADDR
// end ;
 242: GO 189
 244: POP
 245: POP
// if RUSKE_POSILY_RIDICI_LIST <> 0 then
 246: LD_EXP 57
 250: PUSH
 251: LD_INT 0
 253: NONEQUAL
 254: IFFALSE 257
// enable ;
 256: ENABLE
// end ;
 257: PPOPN 4
 259: END
// every 0 0$1 trigger setkani_om and stav_omikron < 7 do
 260: LD_EXP 41
 264: PUSH
 265: LD_EXP 39
 269: PUSH
 270: LD_INT 7
 272: LESS
 273: AND
 274: IFFALSE 296
 276: GO 278
 278: DISABLE
// begin RepairVehicles ( 6 , Om_repair , 61 , 9 ) ;
 279: LD_INT 6
 281: PPUSH
 282: LD_INT 52
 284: PPUSH
 285: LD_INT 61
 287: PPUSH
 288: LD_INT 9
 290: PPUSH
 291: CALL 724 0 4
// enable ;
 295: ENABLE
// end ;
 296: END
// every 0 0$1 trigger setkani_om and stav_omikron < 7 do
 297: LD_EXP 41
 301: PUSH
 302: LD_EXP 39
 306: PUSH
 307: LD_INT 7
 309: LESS
 310: AND
 311: IFFALSE 323
 313: GO 315
 315: DISABLE
// begin AttackVehicles ( 6 ) ;
 316: LD_INT 6
 318: PPUSH
 319: CALL 324 0 1
// end ;
 323: END
// export function AttackVehicles ( side ) ; var i , j , vehiclesOK , target1 , target2 , seeEnemy ; begin
 324: LD_INT 0
 326: PPUSH
 327: PPUSH
 328: PPUSH
 329: PPUSH
 330: PPUSH
 331: PPUSH
 332: PPUSH
// if FilterAllUnits ( [ [ f_side , side ] , [ f_type , unit_vehicle ] , [ f_lives , 1000 ] ] ) >= 0 then
 333: LD_INT 22
 335: PUSH
 336: LD_VAR 0 1
 340: PUSH
 341: EMPTY
 342: LIST
 343: LIST
 344: PUSH
 345: LD_INT 21
 347: PUSH
 348: LD_INT 2
 350: PUSH
 351: EMPTY
 352: LIST
 353: LIST
 354: PUSH
 355: LD_INT 24
 357: PUSH
 358: LD_INT 1000
 360: PUSH
 361: EMPTY
 362: LIST
 363: LIST
 364: PUSH
 365: EMPTY
 366: LIST
 367: LIST
 368: LIST
 369: PPUSH
 370: CALL_OW 69
 374: PUSH
 375: LD_INT 0
 377: GREATEREQUAL
 378: IFFALSE 719
// repeat wait ( 0 0$1 ) ;
 380: LD_INT 35
 382: PPUSH
 383: CALL_OW 67
// vehiclesOK = FilterAllUnits ( [ [ f_side , side ] , [ f_type , unit_vehicle ] , [ f_lives , 650 ] , [ f_or , [ f_weapon , 42 ] , [ f_weapon , 43 ] , [ f_weapon , 44 ] ] ] ) ;
 387: LD_ADDR_VAR 0 5
 391: PUSH
 392: LD_INT 22
 394: PUSH
 395: LD_VAR 0 1
 399: PUSH
 400: EMPTY
 401: LIST
 402: LIST
 403: PUSH
 404: LD_INT 21
 406: PUSH
 407: LD_INT 2
 409: PUSH
 410: EMPTY
 411: LIST
 412: LIST
 413: PUSH
 414: LD_INT 24
 416: PUSH
 417: LD_INT 650
 419: PUSH
 420: EMPTY
 421: LIST
 422: LIST
 423: PUSH
 424: LD_INT 2
 426: PUSH
 427: LD_INT 34
 429: PUSH
 430: LD_INT 42
 432: PUSH
 433: EMPTY
 434: LIST
 435: LIST
 436: PUSH
 437: LD_INT 34
 439: PUSH
 440: LD_INT 43
 442: PUSH
 443: EMPTY
 444: LIST
 445: LIST
 446: PUSH
 447: LD_INT 34
 449: PUSH
 450: LD_INT 44
 452: PUSH
 453: EMPTY
 454: LIST
 455: LIST
 456: PUSH
 457: EMPTY
 458: LIST
 459: LIST
 460: LIST
 461: LIST
 462: PUSH
 463: EMPTY
 464: LIST
 465: LIST
 466: LIST
 467: LIST
 468: PPUSH
 469: CALL_OW 69
 473: ST_TO_ADDR
// for j in vehiclesOK do
 474: LD_ADDR_VAR 0 4
 478: PUSH
 479: LD_VAR 0 5
 483: PUSH
 484: FOR_IN
 485: IFFALSE 660
// begin target1 := NearestUnitToUnit ( FilterAllUnits ( [ [ f_side , 1 ] ] ) , j ) ;
 487: LD_ADDR_VAR 0 6
 491: PUSH
 492: LD_INT 22
 494: PUSH
 495: LD_INT 1
 497: PUSH
 498: EMPTY
 499: LIST
 500: LIST
 501: PUSH
 502: EMPTY
 503: LIST
 504: PPUSH
 505: CALL_OW 69
 509: PPUSH
 510: LD_VAR 0 4
 514: PPUSH
 515: CALL_OW 74
 519: ST_TO_ADDR
// target2 := NearestUnitToUnit ( FilterAllUnits ( [ [ [ f_side , 1 ] , [ f_or , [ f_occupied ] , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ] ) , j ) ;
 520: LD_ADDR_VAR 0 7
 524: PUSH
 525: LD_INT 22
 527: PUSH
 528: LD_INT 1
 530: PUSH
 531: EMPTY
 532: LIST
 533: LIST
 534: PUSH
 535: LD_INT 2
 537: PUSH
 538: LD_INT 59
 540: PUSH
 541: EMPTY
 542: LIST
 543: PUSH
 544: LD_INT 21
 546: PUSH
 547: LD_INT 1
 549: PUSH
 550: EMPTY
 551: LIST
 552: LIST
 553: PUSH
 554: LD_INT 21
 556: PUSH
 557: LD_INT 2
 559: PUSH
 560: EMPTY
 561: LIST
 562: LIST
 563: PUSH
 564: EMPTY
 565: LIST
 566: LIST
 567: LIST
 568: LIST
 569: PUSH
 570: EMPTY
 571: LIST
 572: LIST
 573: PUSH
 574: EMPTY
 575: LIST
 576: PPUSH
 577: CALL_OW 69
 581: PPUSH
 582: LD_VAR 0 4
 586: PPUSH
 587: CALL_OW 74
 591: ST_TO_ADDR
// if GetDistUnits ( j , target1 ) + 8 < GetDistUnits ( j , target2 ) then
 592: LD_VAR 0 4
 596: PPUSH
 597: LD_VAR 0 6
 601: PPUSH
 602: CALL_OW 296
 606: PUSH
 607: LD_INT 8
 609: PLUS
 610: PUSH
 611: LD_VAR 0 4
 615: PPUSH
 616: LD_VAR 0 7
 620: PPUSH
 621: CALL_OW 296
 625: LESS
 626: IFFALSE 644
// ComAttackUnit ( j , target1 ) else
 628: LD_VAR 0 4
 632: PPUSH
 633: LD_VAR 0 6
 637: PPUSH
 638: CALL_OW 115
 642: GO 658
// ComAttackUnit ( j , target2 ) ;
 644: LD_VAR 0 4
 648: PPUSH
 649: LD_VAR 0 7
 653: PPUSH
 654: CALL_OW 115
// end ;
 658: GO 484
 660: POP
 661: POP
// until FilterAllUnits ( [ [ f_side , side ] , [ f_type , unit_vehicle ] , [ f_lives , 1000 ] ] ) = 0 or stav_omikron >= 7 ;
 662: LD_INT 22
 664: PUSH
 665: LD_VAR 0 1
 669: PUSH
 670: EMPTY
 671: LIST
 672: LIST
 673: PUSH
 674: LD_INT 21
 676: PUSH
 677: LD_INT 2
 679: PUSH
 680: EMPTY
 681: LIST
 682: LIST
 683: PUSH
 684: LD_INT 24
 686: PUSH
 687: LD_INT 1000
 689: PUSH
 690: EMPTY
 691: LIST
 692: LIST
 693: PUSH
 694: EMPTY
 695: LIST
 696: LIST
 697: LIST
 698: PPUSH
 699: CALL_OW 69
 703: PUSH
 704: LD_INT 0
 706: EQUAL
 707: PUSH
 708: LD_EXP 39
 712: PUSH
 713: LD_INT 7
 715: GREATEREQUAL
 716: OR
 717: IFFALSE 380
// end ;
 719: LD_VAR 0 2
 723: RET
// export function RepairVehicles ( side , area , repX , repY ) ; var i , j , damageVehicles ; begin
 724: LD_INT 0
 726: PPUSH
 727: PPUSH
 728: PPUSH
 729: PPUSH
// damageVehicles = FilterAllUnits ( [ [ f_side , side ] , [ f_type , unit_vehicle ] , [ f_not , [ f_lives , 650 ] ] ] ) ;
 730: LD_ADDR_VAR 0 8
 734: PUSH
 735: LD_INT 22
 737: PUSH
 738: LD_VAR 0 1
 742: PUSH
 743: EMPTY
 744: LIST
 745: LIST
 746: PUSH
 747: LD_INT 21
 749: PUSH
 750: LD_INT 2
 752: PUSH
 753: EMPTY
 754: LIST
 755: LIST
 756: PUSH
 757: LD_INT 3
 759: PUSH
 760: LD_INT 24
 762: PUSH
 763: LD_INT 650
 765: PUSH
 766: EMPTY
 767: LIST
 768: LIST
 769: PUSH
 770: EMPTY
 771: LIST
 772: LIST
 773: PUSH
 774: EMPTY
 775: LIST
 776: LIST
 777: LIST
 778: PPUSH
 779: CALL_OW 69
 783: ST_TO_ADDR
// if damageVehicles > 0 then
 784: LD_VAR 0 8
 788: PUSH
 789: LD_INT 0
 791: GREATER
 792: IFFALSE 813
// ComMoveXY ( damageVehicles , repX , repY ) ;
 794: LD_VAR 0 8
 798: PPUSH
 799: LD_VAR 0 3
 803: PPUSH
 804: LD_VAR 0 4
 808: PPUSH
 809: CALL_OW 111
// if UnitFilter ( damageVehicles , [ [ f_inarea , area ] , [ f_not , [ f_empty ] ] ] ) > 0 then
 813: LD_VAR 0 8
 817: PPUSH
 818: LD_INT 95
 820: PUSH
 821: LD_VAR 0 2
 825: PUSH
 826: EMPTY
 827: LIST
 828: LIST
 829: PUSH
 830: LD_INT 3
 832: PUSH
 833: LD_INT 58
 835: PUSH
 836: EMPTY
 837: LIST
 838: PUSH
 839: EMPTY
 840: LIST
 841: LIST
 842: PUSH
 843: EMPTY
 844: LIST
 845: LIST
 846: PPUSH
 847: CALL_OW 72
 851: PUSH
 852: LD_INT 0
 854: GREATER
 855: IFFALSE 922
// for i in UnitFilter ( damageVehicles , [ [ f_inarea , area ] , [ f_not , [ f_empty ] ] ] ) do
 857: LD_ADDR_VAR 0 6
 861: PUSH
 862: LD_VAR 0 8
 866: PPUSH
 867: LD_INT 95
 869: PUSH
 870: LD_VAR 0 2
 874: PUSH
 875: EMPTY
 876: LIST
 877: LIST
 878: PUSH
 879: LD_INT 3
 881: PUSH
 882: LD_INT 58
 884: PUSH
 885: EMPTY
 886: LIST
 887: PUSH
 888: EMPTY
 889: LIST
 890: LIST
 891: PUSH
 892: EMPTY
 893: LIST
 894: LIST
 895: PPUSH
 896: CALL_OW 72
 900: PUSH
 901: FOR_IN
 902: IFFALSE 920
// ComExitVehicle ( UnitsInside ( i ) ) ;
 904: LD_VAR 0 6
 908: PPUSH
 909: CALL_OW 313
 913: PPUSH
 914: CALL_OW 121
 918: GO 901
 920: POP
 921: POP
// end ;
 922: LD_VAR 0 5
 926: RET
// on LeaveVehicle ( vehicle , human ) do begin if GetSide ( vehicle ) = 6 and GetSide ( human ) = 6 and IsOk ( vehicle ) then
 927: LD_VAR 0 1
 931: PPUSH
 932: CALL_OW 255
 936: PUSH
 937: LD_INT 6
 939: EQUAL
 940: PUSH
 941: LD_VAR 0 2
 945: PPUSH
 946: CALL_OW 255
 950: PUSH
 951: LD_INT 6
 953: EQUAL
 954: AND
 955: PUSH
 956: LD_VAR 0 1
 960: PPUSH
 961: CALL_OW 302
 965: AND
 966: IFFALSE 1041
// if GetWeapon ( vehicle ) = 42 or GetWeapon ( vehicle ) = 43 or GetWeapon ( vehicle ) = 44 then
 968: LD_VAR 0 1
 972: PPUSH
 973: CALL_OW 264
 977: PUSH
 978: LD_INT 42
 980: EQUAL
 981: PUSH
 982: LD_VAR 0 1
 986: PPUSH
 987: CALL_OW 264
 991: PUSH
 992: LD_INT 43
 994: EQUAL
 995: OR
 996: PUSH
 997: LD_VAR 0 1
1001: PPUSH
1002: CALL_OW 264
1006: PUSH
1007: LD_INT 44
1009: EQUAL
1010: OR
1011: IFFALSE 1041
// begin ComRepairVehicle ( human , vehicle ) ;
1013: LD_VAR 0 2
1017: PPUSH
1018: LD_VAR 0 1
1022: PPUSH
1023: CALL_OW 129
// AddComEnterUnit ( human , vehicle ) ;
1027: LD_VAR 0 2
1031: PPUSH
1032: LD_VAR 0 1
1036: PPUSH
1037: CALL_OW 180
// end ; end ;
1041: PPOPN 2
1043: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] ] ) do var i ;
1044: LD_INT 22
1046: PUSH
1047: LD_INT 6
1049: PUSH
1050: EMPTY
1051: LIST
1052: LIST
1053: PUSH
1054: LD_INT 21
1056: PUSH
1057: LD_INT 2
1059: PUSH
1060: EMPTY
1061: LIST
1062: LIST
1063: PUSH
1064: EMPTY
1065: LIST
1066: LIST
1067: PPUSH
1068: CALL_OW 69
1072: IFFALSE 1149
1074: GO 1076
1076: DISABLE
1077: LD_INT 0
1079: PPUSH
// begin enable ;
1080: ENABLE
// for i in FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] ] ) do
1081: LD_ADDR_VAR 0 1
1085: PUSH
1086: LD_INT 22
1088: PUSH
1089: LD_INT 6
1091: PUSH
1092: EMPTY
1093: LIST
1094: LIST
1095: PUSH
1096: LD_INT 21
1098: PUSH
1099: LD_INT 2
1101: PUSH
1102: EMPTY
1103: LIST
1104: LIST
1105: PUSH
1106: EMPTY
1107: LIST
1108: LIST
1109: PPUSH
1110: CALL_OW 69
1114: PUSH
1115: FOR_IN
1116: IFFALSE 1147
// if GetFuel ( i ) < 3 then
1118: LD_VAR 0 1
1122: PPUSH
1123: CALL_OW 261
1127: PUSH
1128: LD_INT 3
1130: LESS
1131: IFFALSE 1145
// SetFuel ( i , 3 ) ;
1133: LD_VAR 0 1
1137: PPUSH
1138: LD_INT 3
1140: PPUSH
1141: CALL_OW 240
1145: GO 1115
1147: POP
1148: POP
// end ; end_of_file
1149: PPOPN 1
1151: END
// export You , You2 , You3 , Amici , Arabi ; export KurinDialog ; export KurinAddTime ; starting begin RandomizeAll ;
1152: CALL_OW 11
// InitHc ;
1156: CALL_OW 19
// InitBc ;
1160: CALL_OW 21
// InitVc ;
1164: CALL_OW 20
// InitUc ;
1168: CALL_OW 18
// KurinDialog = 0 ;
1172: LD_ADDR_EXP 6
1176: PUSH
1177: LD_INT 0
1179: ST_TO_ADDR
// KurinAddTime = 0 ;
1180: LD_ADDR_EXP 7
1184: PUSH
1185: LD_INT 0
1187: ST_TO_ADDR
// set_difficulty ;
1188: CALL 4327 0 0
// load_postav ;
1192: CALL 2152 0 0
// load_promenne ;
1196: CALL 2304 0 0
// You = 3 ;
1200: LD_ADDR_EXP 1
1204: PUSH
1205: LD_INT 3
1207: ST_TO_ADDR
// You2 = 6 ;
1208: LD_ADDR_EXP 2
1212: PUSH
1213: LD_INT 6
1215: ST_TO_ADDR
// You3 = 5 ;
1216: LD_ADDR_EXP 3
1220: PUSH
1221: LD_INT 5
1223: ST_TO_ADDR
// Amici = 1 ;
1224: LD_ADDR_EXP 4
1228: PUSH
1229: LD_INT 1
1231: ST_TO_ADDR
// Arabi = 2 ;
1232: LD_ADDR_EXP 5
1236: PUSH
1237: LD_INT 2
1239: ST_TO_ADDR
// placni_budovy_z_predesle_mise ;
1240: CALL 2706 0 0
// RevealFogArea ( You , CelaRU02 ) ;
1244: LD_EXP 1
1248: PPUSH
1249: LD_INT 36
1251: PPUSH
1252: CALL_OW 332
// RevealFogArea ( You2 , CelaRU02 ) ;
1256: LD_EXP 2
1260: PPUSH
1261: LD_INT 36
1263: PPUSH
1264: CALL_OW 332
// create_arabsky_utok ;
1268: CALL 19009 0 0
// create_americka_pomoc_hlidce ;
1272: CALL 16933 0 0
// create_americke_posily ;
1276: CALL 17802 0 0
// create_ruske_posily_na_omicron ;
1280: CALL 20158 0 0
// create_arabi_komanda ;
1284: CALL 21130 0 0
// create_ru_posily_ma_utek ;
1288: CALL 21976 0 0
// create_arabi_na_posily_kirovu ;
1292: CALL 22428 0 0
// create_cerpaci_ruske_auta ;
1296: CALL 22880 0 0
// create_am_jednotky ;
1300: CALL 20800 0 0
// set_skily_amikum ;
1304: CALL 17286 0 0
// uklid_rusu ;
1308: CALL 5095 0 0
// ChangeSideFog ( You , You ) ;
1312: LD_EXP 1
1316: PPUSH
1317: LD_EXP 1
1321: PPUSH
1322: CALL_OW 343
// ChangeSideFog ( You2 , You ) ;
1326: LD_EXP 2
1330: PPUSH
1331: LD_EXP 1
1335: PPUSH
1336: CALL_OW 343
// pojmenovani_zakladen ;
1340: CALL 4752 0 0
// InGameOn ;
1344: CALL_OW 8
// CenterOnXY ( 137 , 76 ) ;
1348: LD_INT 137
1350: PPUSH
1351: LD_INT 76
1353: PPUSH
1354: CALL_OW 84
// RevealFogArea ( You , CelaRU02 ) ;
1358: LD_EXP 1
1362: PPUSH
1363: LD_INT 36
1365: PPUSH
1366: CALL_OW 332
// RevealFogArea ( You2 , CelaRU02 ) ;
1370: LD_EXP 2
1374: PPUSH
1375: LD_INT 36
1377: PPUSH
1378: CALL_OW 332
// uvodni_pokec ;
1382: CALL 10206 0 0
// end ;
1386: END
// on UnitDestroyed ( un ) do begin if un = schol2 and GetSide ( un ) = 6 then
1387: LD_VAR 0 1
1391: PUSH
1392: LD_EXP 34
1396: EQUAL
1397: PUSH
1398: LD_VAR 0 1
1402: PPUSH
1403: CALL_OW 255
1407: PUSH
1408: LD_INT 6
1410: EQUAL
1411: AND
1412: IFFALSE 1418
// SA_DontSaveScholtze ;
1414: CALL 29299 0 0
// if un = bur then
1418: LD_VAR 0 1
1422: PUSH
1423: LD_EXP 29
1427: EQUAL
1428: IFFALSE 1437
// YouLost ( Burlak ) ;
1430: LD_STRING Burlak
1432: PPUSH
1433: CALL_OW 104
// end ;
1437: PPOPN 1
1439: END
// export function konec_mise_lhani ; begin
1440: LD_INT 0
1442: PPUSH
// hlaska_lhani ;
1443: CALL 15593 0 0
// YouLost ( Vehicles ) ;
1447: LD_STRING Vehicles
1449: PPUSH
1450: CALL_OW 104
// end ;
1454: LD_VAR 0 1
1458: RET
// export function konec_pred_omikronem ; begin
1459: LD_INT 0
1461: PPUSH
// YouLost ( Delay ) ;
1462: LD_STRING Delay
1464: PPUSH
1465: CALL_OW 104
// end ;
1469: LD_VAR 0 1
1473: RET
// export function konec_mise_utok ; begin
1474: LD_INT 0
1476: PPUSH
// YouLost ( SelfAttack ) ;
1477: LD_STRING SelfAttack
1479: PPUSH
1480: CALL_OW 104
// end ;
1484: LD_VAR 0 1
1488: RET
// export function konec_mise ; var i , pom , pom1 ; var zivi ; var drv ; var mrtvi ; var all_people ; var medal1 , medal2 , medal3 ; begin
1489: LD_INT 0
1491: PPUSH
1492: PPUSH
1493: PPUSH
1494: PPUSH
1495: PPUSH
1496: PPUSH
1497: PPUSH
1498: PPUSH
1499: PPUSH
1500: PPUSH
1501: PPUSH
// medal1 := false ;
1502: LD_ADDR_VAR 0 9
1506: PUSH
1507: LD_INT 0
1509: ST_TO_ADDR
// medal2 := false ;
1510: LD_ADDR_VAR 0 10
1514: PUSH
1515: LD_INT 0
1517: ST_TO_ADDR
// medal3 := false ;
1518: LD_ADDR_VAR 0 11
1522: PUSH
1523: LD_INT 0
1525: ST_TO_ADDR
// DisableExclamations ;
1526: CALL_OW 474
// gained_medals := [ ] ;
1530: LD_ADDR_OWVAR 61
1534: PUSH
1535: EMPTY
1536: ST_TO_ADDR
// missing_medals := [ ] ;
1537: LD_ADDR_OWVAR 62
1541: PUSH
1542: EMPTY
1543: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_side , 3 ] , [ f_btype , b_depot ] ] ) = 1 then
1544: LD_INT 22
1546: PUSH
1547: LD_INT 3
1549: PUSH
1550: EMPTY
1551: LIST
1552: LIST
1553: PUSH
1554: LD_INT 30
1556: PUSH
1557: LD_INT 0
1559: PUSH
1560: EMPTY
1561: LIST
1562: LIST
1563: PUSH
1564: EMPTY
1565: LIST
1566: LIST
1567: PPUSH
1568: CALL_OW 69
1572: PUSH
1573: LD_INT 1
1575: EQUAL
1576: IFFALSE 1582
// SA_OneDepotWin ;
1578: CALL 29314 0 0
// if Prezite_posily >= muze_projit_posil [ difficulty ] then
1582: LD_EXP 73
1586: PUSH
1587: LD_EXP 22
1591: PUSH
1592: LD_OWVAR 67
1596: ARRAY
1597: GREATEREQUAL
1598: IFFALSE 1613
// AddMedal ( PreventReinforcements , - 1 ) else
1600: LD_STRING PreventReinforcements
1602: PPUSH
1603: LD_INT 1
1605: NEG
1606: PPUSH
1607: CALL_OW 101
1611: GO 1631
// begin medal1 := true ;
1613: LD_ADDR_VAR 0 9
1617: PUSH
1618: LD_INT 1
1620: ST_TO_ADDR
// AddMedal ( PreventReinforcements , 1 ) ;
1621: LD_STRING PreventReinforcements
1623: PPUSH
1624: LD_INT 1
1626: PPUSH
1627: CALL_OW 101
// end ; if scholtze_saved and IsLive ( schol ) and GetSide ( schol ) = 3 then
1631: LD_EXP 37
1635: PUSH
1636: LD_EXP 33
1640: PPUSH
1641: CALL_OW 300
1645: AND
1646: PUSH
1647: LD_EXP 33
1651: PPUSH
1652: CALL_OW 255
1656: PUSH
1657: LD_INT 3
1659: EQUAL
1660: AND
1661: IFFALSE 1683
// begin AddMedal ( Scholtze , 1 ) ;
1663: LD_STRING Scholtze
1665: PPUSH
1666: LD_INT 1
1668: PPUSH
1669: CALL_OW 101
// medal2 := true ;
1673: LD_ADDR_VAR 0 10
1677: PUSH
1678: LD_INT 1
1680: ST_TO_ADDR
// end else
1681: GO 1694
// AddMedal ( Scholtze , - 1 ) ;
1683: LD_STRING Scholtze
1685: PPUSH
1686: LD_INT 1
1688: NEG
1689: PPUSH
1690: CALL_OW 101
// case stav_aut_new of 1 :
1694: LD_EXP 46
1698: PUSH
1699: LD_INT 1
1701: DOUBLE
1702: EQUAL
1703: IFTRUE 1707
1705: GO 1728
1707: POP
// begin AddMedal ( Surplus , 1 ) ;
1708: LD_STRING Surplus
1710: PPUSH
1711: LD_INT 1
1713: PPUSH
1714: CALL_OW 101
// medal3 := true ;
1718: LD_ADDR_VAR 0 11
1722: PUSH
1723: LD_INT 1
1725: ST_TO_ADDR
// end ; 2 :
1726: GO 1773
1728: LD_INT 2
1730: DOUBLE
1731: EQUAL
1732: IFTRUE 1736
1734: GO 1750
1736: POP
// AddMedal ( Surplus , - 1 ) ; 3 :
1737: LD_STRING Surplus
1739: PPUSH
1740: LD_INT 1
1742: NEG
1743: PPUSH
1744: CALL_OW 101
1748: GO 1773
1750: LD_INT 3
1752: DOUBLE
1753: EQUAL
1754: IFTRUE 1758
1756: GO 1772
1758: POP
// AddMedal ( Surplus , - 2 ) ; end ;
1759: LD_STRING Surplus
1761: PPUSH
1762: LD_INT 2
1764: NEG
1765: PPUSH
1766: CALL_OW 101
1770: GO 1773
1772: POP
// if not stav_aut_new then
1773: LD_EXP 46
1777: NOT
1778: IFFALSE 1791
// AddMedal ( Surplus , - 1 ) ;
1780: LD_STRING Surplus
1782: PPUSH
1783: LD_INT 1
1785: NEG
1786: PPUSH
1787: CALL_OW 101
// SA_EndMission ( 3 , 3 , medal1 , medal2 , medal3 ) ;
1791: LD_INT 3
1793: PPUSH
1794: LD_INT 3
1796: PPUSH
1797: LD_VAR 0 9
1801: PPUSH
1802: LD_VAR 0 10
1806: PPUSH
1807: LD_VAR 0 11
1811: PPUSH
1812: CALL 29329 0 5
// GiveMedals ( Main ) ;
1816: LD_STRING Main
1818: PPUSH
1819: CALL_OW 102
// all_people := FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
1823: LD_ADDR_VAR 0 8
1827: PUSH
1828: LD_INT 22
1830: PUSH
1831: LD_EXP 1
1835: PUSH
1836: EMPTY
1837: LIST
1838: LIST
1839: PUSH
1840: LD_INT 21
1842: PUSH
1843: LD_INT 1
1845: PUSH
1846: EMPTY
1847: LIST
1848: LIST
1849: PUSH
1850: EMPTY
1851: LIST
1852: LIST
1853: PPUSH
1854: CALL_OW 69
1858: ST_TO_ADDR
// RewardPeople ( all_people ) ;
1859: LD_VAR 0 8
1863: PPUSH
1864: CALL_OW 43
// if not ( bel in all_people ) then
1868: LD_EXP 32
1872: PUSH
1873: LD_VAR 0 8
1877: IN
1878: NOT
1879: IFFALSE 1890
// KillUnit ( bel ) ;
1881: LD_EXP 32
1885: PPUSH
1886: CALL_OW 66
// if not ( gny in all_people ) then
1890: LD_EXP 31
1894: PUSH
1895: LD_VAR 0 8
1899: IN
1900: NOT
1901: IFFALSE 1912
// KillUnit ( gny ) ;
1903: LD_EXP 31
1907: PPUSH
1908: CALL_OW 66
// if not ( kov in all_people ) then
1912: LD_EXP 30
1916: PUSH
1917: LD_VAR 0 8
1921: IN
1922: NOT
1923: IFFALSE 1934
// KillUnit ( kov ) ;
1925: LD_EXP 30
1929: PPUSH
1930: CALL_OW 66
// if not ( schol in all_people ) then
1934: LD_EXP 33
1938: PUSH
1939: LD_VAR 0 8
1943: IN
1944: NOT
1945: IFFALSE 1956
// KillUnit ( schol ) ;
1947: LD_EXP 33
1951: PPUSH
1952: CALL_OW 66
// SaveCharacters ( bur , Burlak ) ;
1956: LD_EXP 29
1960: PPUSH
1961: LD_STRING Burlak
1963: PPUSH
1964: CALL_OW 38
// SaveCharacters ( bel , Belkov ) ;
1968: LD_EXP 32
1972: PPUSH
1973: LD_STRING Belkov
1975: PPUSH
1976: CALL_OW 38
// SaveCharacters ( gny , Gnyevko ) ;
1980: LD_EXP 31
1984: PPUSH
1985: LD_STRING Gnyevko
1987: PPUSH
1988: CALL_OW 38
// SaveCharacters ( kov , Kovalyuk ) ;
1992: LD_EXP 30
1996: PPUSH
1997: LD_STRING Kovalyuk
1999: PPUSH
2000: CALL_OW 38
// SaveCharacters ( schol , Scholtze ) ;
2004: LD_EXP 33
2008: PPUSH
2009: LD_STRING Scholtze
2011: PPUSH
2012: CALL_OW 38
// SaveCharacters ( pop , Popov ) ;
2016: LD_EXP 28
2020: PPUSH
2021: LD_STRING Popov
2023: PPUSH
2024: CALL_OW 38
// pom := all_people diff [ bur , kur , bel , gny , kov , schol , schol2 , pop ] ;
2028: LD_ADDR_VAR 0 3
2032: PUSH
2033: LD_VAR 0 8
2037: PUSH
2038: LD_EXP 29
2042: PUSH
2043: LD_EXP 27
2047: PUSH
2048: LD_EXP 32
2052: PUSH
2053: LD_EXP 31
2057: PUSH
2058: LD_EXP 30
2062: PUSH
2063: LD_EXP 33
2067: PUSH
2068: LD_EXP 34
2072: PUSH
2073: LD_EXP 28
2077: PUSH
2078: EMPTY
2079: LIST
2080: LIST
2081: LIST
2082: LIST
2083: LIST
2084: LIST
2085: LIST
2086: LIST
2087: DIFF
2088: ST_TO_ADDR
// SaveCharacters ( pom , survivors1 ) ;
2089: LD_VAR 0 3
2093: PPUSH
2094: LD_STRING survivors1
2096: PPUSH
2097: CALL_OW 38
// SaveVariable ( BELKOV_SAVED , belkov_saved ) ;
2101: LD_EXP 24
2105: PPUSH
2106: LD_STRING belkov_saved
2108: PPUSH
2109: CALL_OW 39
// SaveVariable ( STAV_UTOKU , stav_utoku ) ;
2113: LD_EXP 25
2117: PPUSH
2118: LD_STRING stav_utoku
2120: PPUSH
2121: CALL_OW 39
// SaveVariable ( stav_aut , Surplus_vehicles ) ;
2125: LD_EXP 38
2129: PPUSH
2130: LD_STRING Surplus_vehicles
2132: PPUSH
2133: CALL_OW 39
// YouWin ;
2137: CALL_OW 103
// EnableExclamations ;
2141: CALL_OW 473
// exit ;
2145: GO 2147
// end ;
2147: LD_VAR 0 1
2151: RET
// function load_postav ; begin
2152: LD_INT 0
2154: PPUSH
// grishko = NewCharacter ( Grishko ) ;
2155: LD_ADDR_EXP 35
2159: PUSH
2160: LD_STRING Grishko
2162: PPUSH
2163: CALL_OW 25
2167: ST_TO_ADDR
// kur = nacti_osobu ( kurin ) ;
2168: LD_ADDR_EXP 27
2172: PUSH
2173: LD_STRING kurin
2175: PPUSH
2176: CALL 21086 0 1
2180: ST_TO_ADDR
// bel = nacti_osobu ( Belkov ) ;
2181: LD_ADDR_EXP 32
2185: PUSH
2186: LD_STRING Belkov
2188: PPUSH
2189: CALL 21086 0 1
2193: ST_TO_ADDR
// kov = nacti_osobu ( Kovalyuk ) ;
2194: LD_ADDR_EXP 30
2198: PUSH
2199: LD_STRING Kovalyuk
2201: PPUSH
2202: CALL 21086 0 1
2206: ST_TO_ADDR
// bur = nacti_osobu ( Burlak ) ;
2207: LD_ADDR_EXP 29
2211: PUSH
2212: LD_STRING Burlak
2214: PPUSH
2215: CALL 21086 0 1
2219: ST_TO_ADDR
// gny = nacti_osobu ( Gnyevko ) ;
2220: LD_ADDR_EXP 31
2224: PUSH
2225: LD_STRING Gnyevko
2227: PPUSH
2228: CALL 21086 0 1
2232: ST_TO_ADDR
// pop = NewCharacter ( Popov ) ;
2233: LD_ADDR_EXP 28
2237: PUSH
2238: LD_STRING Popov
2240: PPUSH
2241: CALL_OW 25
2245: ST_TO_ADDR
// if CheckCharacterSet ( survivors1 ) then
2246: LD_STRING survivors1
2248: PPUSH
2249: CALL_OW 29
2253: IFFALSE 2268
// other_survivors_mise_2 = CreateCharacterSet ( survivors1 ) ;
2255: LD_ADDR_EXP 71
2259: PUSH
2260: LD_STRING survivors1
2262: PPUSH
2263: CALL_OW 31
2267: ST_TO_ADDR
// if CheckCharacterSet ( amici_bw ) then
2268: LD_STRING amici_bw
2270: PPUSH
2271: CALL_OW 29
2275: IFFALSE 2292
// amici_bw_2 = CreateCharacter ( amici_bw ) else
2277: LD_ADDR_EXP 10
2281: PUSH
2282: LD_STRING amici_bw
2284: PPUSH
2285: CALL_OW 34
2289: ST_TO_ADDR
2290: GO 2299
// amici_bw_2 = [ ] ;
2292: LD_ADDR_EXP 10
2296: PUSH
2297: EMPTY
2298: ST_TO_ADDR
// end ;
2299: LD_VAR 0 1
2303: RET
// function load_promenne ; var default_budovy ; begin
2304: LD_INT 0
2306: PPUSH
2307: PPUSH
// default_budovy = [ [ 0 , 2 , 66 , 97 , 0 ] , [ 2 , 1 , 61 , 83 , 2 ] , [ 6 , 1 , 73 , 90 , 4 ] ] ;
2308: LD_ADDR_VAR 0 2
2312: PUSH
2313: LD_INT 0
2315: PUSH
2316: LD_INT 2
2318: PUSH
2319: LD_INT 66
2321: PUSH
2322: LD_INT 97
2324: PUSH
2325: LD_INT 0
2327: PUSH
2328: EMPTY
2329: LIST
2330: LIST
2331: LIST
2332: LIST
2333: LIST
2334: PUSH
2335: LD_INT 2
2337: PUSH
2338: LD_INT 1
2340: PUSH
2341: LD_INT 61
2343: PUSH
2344: LD_INT 83
2346: PUSH
2347: LD_INT 2
2349: PUSH
2350: EMPTY
2351: LIST
2352: LIST
2353: LIST
2354: LIST
2355: LIST
2356: PUSH
2357: LD_INT 6
2359: PUSH
2360: LD_INT 1
2362: PUSH
2363: LD_INT 73
2365: PUSH
2366: LD_INT 90
2368: PUSH
2369: LD_INT 4
2371: PUSH
2372: EMPTY
2373: LIST
2374: LIST
2375: LIST
2376: LIST
2377: LIST
2378: PUSH
2379: EMPTY
2380: LIST
2381: LIST
2382: LIST
2383: ST_TO_ADDR
// budovy_mise_2 = LoadVariable ( budovy , default_budovy ) ;
2384: LD_ADDR_EXP 8
2388: PUSH
2389: LD_STRING budovy
2391: PPUSH
2392: LD_VAR 0 2
2396: PPUSH
2397: CALL_OW 30
2401: ST_TO_ADDR
// breastworks_east = LoadVariable ( bw_east , 3 ) ;
2402: LD_ADDR_EXP 9
2406: PUSH
2407: LD_STRING bw_east
2409: PPUSH
2410: LD_INT 3
2412: PPUSH
2413: CALL_OW 30
2417: ST_TO_ADDR
// end ;
2418: LD_VAR 0 1
2422: RET
// export function create_scholtze ; var pom ; begin
2423: LD_INT 0
2425: PPUSH
2426: PPUSH
// pom = NewCharacter ( Scholtze ) ;
2427: LD_ADDR_VAR 0 2
2431: PUSH
2432: LD_STRING Scholtze
2434: PPUSH
2435: CALL_OW 25
2439: ST_TO_ADDR
// SetSide ( pom , You2 ) ;
2440: LD_VAR 0 2
2444: PPUSH
2445: LD_EXP 2
2449: PPUSH
2450: CALL_OW 235
// SetClass ( pom , class_scientistic ) ;
2454: LD_VAR 0 2
2458: PPUSH
2459: LD_INT 4
2461: PPUSH
2462: CALL_OW 336
// PlaceUnitXYR ( pom , 49 , 5 , 8 , true ) ;
2466: LD_VAR 0 2
2470: PPUSH
2471: LD_INT 49
2473: PPUSH
2474: LD_INT 5
2476: PPUSH
2477: LD_INT 8
2479: PPUSH
2480: LD_INT 1
2482: PPUSH
2483: CALL_OW 50
// result = pom ;
2487: LD_ADDR_VAR 0 1
2491: PUSH
2492: LD_VAR 0 2
2496: ST_TO_ADDR
// end ;
2497: LD_VAR 0 1
2501: RET
// on Command ( com ) do var i , j , temp ;
2502: LD_INT 0
2504: PPUSH
2505: PPUSH
2506: PPUSH
// begin for i in FilterAllUnits ( [ [ f_side , 3 ] , [ f_type , unit_human ] ] ) do
2507: LD_ADDR_VAR 0 2
2511: PUSH
2512: LD_INT 22
2514: PUSH
2515: LD_INT 3
2517: PUSH
2518: EMPTY
2519: LIST
2520: LIST
2521: PUSH
2522: LD_INT 21
2524: PUSH
2525: LD_INT 1
2527: PUSH
2528: EMPTY
2529: LIST
2530: LIST
2531: PUSH
2532: EMPTY
2533: LIST
2534: LIST
2535: PPUSH
2536: CALL_OW 69
2540: PUSH
2541: FOR_IN
2542: IFFALSE 2689
// if GetTaskList ( i ) > 0 then
2544: LD_VAR 0 2
2548: PPUSH
2549: CALL_OW 437
2553: PUSH
2554: LD_INT 0
2556: GREATER
2557: IFFALSE 2687
// for j = 1 to GetTaskList ( i ) do
2559: LD_ADDR_VAR 0 3
2563: PUSH
2564: DOUBLE
2565: LD_INT 1
2567: DEC
2568: ST_TO_ADDR
2569: LD_VAR 0 2
2573: PPUSH
2574: CALL_OW 437
2578: PUSH
2579: FOR_TO
2580: IFFALSE 2685
// begin temp = GetTaskList ( i ) [ j ] [ 4 ] ;
2582: LD_ADDR_VAR 0 4
2586: PUSH
2587: LD_VAR 0 2
2591: PPUSH
2592: CALL_OW 437
2596: PUSH
2597: LD_VAR 0 3
2601: ARRAY
2602: PUSH
2603: LD_INT 4
2605: ARRAY
2606: ST_TO_ADDR
// if temp = RU1_dep or ( GetSide ( temp ) = 6 and GetTaskList ( i ) [ j ] [ 1 ] = e and GetType ( temp ) = unit_vehicle ) then
2607: LD_VAR 0 4
2611: PUSH
2612: LD_INT 1
2614: EQUAL
2615: PUSH
2616: LD_VAR 0 4
2620: PPUSH
2621: CALL_OW 255
2625: PUSH
2626: LD_INT 6
2628: EQUAL
2629: PUSH
2630: LD_VAR 0 2
2634: PPUSH
2635: CALL_OW 437
2639: PUSH
2640: LD_VAR 0 3
2644: ARRAY
2645: PUSH
2646: LD_INT 1
2648: ARRAY
2649: PUSH
2650: LD_STRING e
2652: EQUAL
2653: AND
2654: PUSH
2655: LD_VAR 0 4
2659: PPUSH
2660: CALL_OW 247
2664: PUSH
2665: LD_INT 2
2667: EQUAL
2668: AND
2669: OR
2670: IFFALSE 2683
// SetTaskList ( i , [ ] ) ;
2672: LD_VAR 0 2
2676: PPUSH
2677: EMPTY
2678: PPUSH
2679: CALL_OW 446
// end ;
2683: GO 2579
2685: POP
2686: POP
2687: GO 2541
2689: POP
2690: POP
// end ; end_of_file
2691: PPOPN 4
2693: END
// var konzervy_delay ; export budovy_mise_2 ; export breastworks_east ; export amici_bw_2 ; every 0 0$0.1 do
2694: GO 2696
2696: DISABLE
// begin konzervy_delay = 0 ;
2697: LD_ADDR_LOC 16
2701: PUSH
2702: LD_INT 0
2704: ST_TO_ADDR
// end ;
2705: END
// export function placni_budovy_z_predesle_mise ; var pom , i ; var ab ; var bw_e ; var vojaci ; var pocet ; begin
2706: LD_INT 0
2708: PPUSH
2709: PPUSH
2710: PPUSH
2711: PPUSH
2712: PPUSH
2713: PPUSH
2714: PPUSH
// uc_side = You ;
2715: LD_ADDR_OWVAR 20
2719: PUSH
2720: LD_EXP 1
2724: ST_TO_ADDR
// bc_kind1 = b_lab_basic ;
2725: LD_ADDR_OWVAR 44
2729: PUSH
2730: LD_INT 9
2732: ST_TO_ADDR
// bc_kind2 = b_lab_basic ;
2733: LD_ADDR_OWVAR 45
2737: PUSH
2738: LD_INT 9
2740: ST_TO_ADDR
// for i in budovy_mise_2 do
2741: LD_ADDR_VAR 0 3
2745: PUSH
2746: LD_EXP 8
2750: PUSH
2751: FOR_IN
2752: IFFALSE 2900
// begin uc_nation = i [ 6 ] ;
2754: LD_ADDR_OWVAR 21
2758: PUSH
2759: LD_VAR 0 3
2763: PUSH
2764: LD_INT 6
2766: ARRAY
2767: ST_TO_ADDR
// bc_type = i [ 1 ] ;
2768: LD_ADDR_OWVAR 42
2772: PUSH
2773: LD_VAR 0 3
2777: PUSH
2778: LD_INT 1
2780: ARRAY
2781: ST_TO_ADDR
// bc_level = i [ 2 ] ;
2782: LD_ADDR_OWVAR 43
2786: PUSH
2787: LD_VAR 0 3
2791: PUSH
2792: LD_INT 2
2794: ARRAY
2795: ST_TO_ADDR
// pom = CreateAndPlaceBuildingXYD ( i [ 3 ] + 30 , i [ 4 ] - 20 , i [ 5 ] ) ;
2796: LD_ADDR_VAR 0 2
2800: PUSH
2801: LD_VAR 0 3
2805: PUSH
2806: LD_INT 3
2808: ARRAY
2809: PUSH
2810: LD_INT 30
2812: PLUS
2813: PPUSH
2814: LD_VAR 0 3
2818: PUSH
2819: LD_INT 4
2821: ARRAY
2822: PUSH
2823: LD_INT 20
2825: MINUS
2826: PPUSH
2827: LD_VAR 0 3
2831: PUSH
2832: LD_INT 5
2834: ARRAY
2835: PPUSH
2836: CALL_OW 47
2840: ST_TO_ADDR
// if bc_type in [ b_depot , b_warehouse ] then
2841: LD_OWVAR 42
2845: PUSH
2846: LD_INT 0
2848: PUSH
2849: LD_INT 1
2851: PUSH
2852: EMPTY
2853: LIST
2854: LIST
2855: IN
2856: IFFALSE 2898
// begin SetResourceType ( GetBase ( pom ) , mat_cans , 100 ) ;
2858: LD_VAR 0 2
2862: PPUSH
2863: CALL_OW 274
2867: PPUSH
2868: LD_INT 1
2870: PPUSH
2871: LD_INT 100
2873: PPUSH
2874: CALL_OW 277
// SetResourceType ( GetBase ( pom ) , mat_oil , 25 ) ;
2878: LD_VAR 0 2
2882: PPUSH
2883: CALL_OW 274
2887: PPUSH
2888: LD_INT 2
2890: PPUSH
2891: LD_INT 25
2893: PPUSH
2894: CALL_OW 277
// end ; end ;
2898: GO 2751
2900: POP
2901: POP
// bw_e = breastworks_east ;
2902: LD_ADDR_VAR 0 5
2906: PUSH
2907: LD_EXP 9
2911: ST_TO_ADDR
// uc_side = Amici ;
2912: LD_ADDR_OWVAR 20
2916: PUSH
2917: LD_EXP 4
2921: ST_TO_ADDR
// uc_nation = nation_american ;
2922: LD_ADDR_OWVAR 21
2926: PUSH
2927: LD_INT 1
2929: ST_TO_ADDR
// bc_type = b_breastwork ;
2930: LD_ADDR_OWVAR 42
2934: PUSH
2935: LD_INT 31
2937: ST_TO_ADDR
// bc_level = level_bw_e [ difficulty ] ;
2938: LD_ADDR_OWVAR 43
2942: PUSH
2943: LD_EXP 11
2947: PUSH
2948: LD_OWVAR 67
2952: ARRAY
2953: ST_TO_ADDR
// if bw_e > 1 then
2954: LD_VAR 0 5
2958: PUSH
2959: LD_INT 1
2961: GREATER
2962: IFFALSE 2977
// CreateAndPlaceBuildingXYD ( 123 , 42 , 1 ) ;
2964: LD_INT 123
2966: PPUSH
2967: LD_INT 42
2969: PPUSH
2970: LD_INT 1
2972: PPUSH
2973: CALL_OW 47
// if bw_e = 1 or bw_e = 3 then
2977: LD_VAR 0 5
2981: PUSH
2982: LD_INT 1
2984: EQUAL
2985: PUSH
2986: LD_VAR 0 5
2990: PUSH
2991: LD_INT 3
2993: EQUAL
2994: OR
2995: IFFALSE 3010
// CreateAndPlaceBuildingXYD ( 120 , 36 , 1 ) ;
2997: LD_INT 120
2999: PPUSH
3000: LD_INT 36
3002: PPUSH
3003: LD_INT 1
3005: PPUSH
3006: CALL_OW 47
// vojaci = amici_bw_2 ;
3010: LD_ADDR_VAR 0 6
3014: PUSH
3015: LD_EXP 10
3019: ST_TO_ADDR
// if bw_e > 0 then
3020: LD_VAR 0 5
3024: PUSH
3025: LD_INT 0
3027: GREATER
3028: IFFALSE 3277
// begin if bw_e = 1 or bw_e = 2 then
3030: LD_VAR 0 5
3034: PUSH
3035: LD_INT 1
3037: EQUAL
3038: PUSH
3039: LD_VAR 0 5
3043: PUSH
3044: LD_INT 2
3046: EQUAL
3047: OR
3048: IFFALSE 3060
// pocet = 1 else
3050: LD_ADDR_VAR 0 7
3054: PUSH
3055: LD_INT 1
3057: ST_TO_ADDR
3058: GO 3068
// pocet = 2 ;
3060: LD_ADDR_VAR 0 7
3064: PUSH
3065: LD_INT 2
3067: ST_TO_ADDR
// vojaci = vojaci ^ get_human ( sex_male , class_soldier , 2 ,  ) ;
3068: LD_ADDR_VAR 0 6
3072: PUSH
3073: LD_VAR 0 6
3077: PUSH
3078: LD_INT 1
3080: PPUSH
3081: LD_INT 1
3083: PPUSH
3084: LD_INT 2
3086: PPUSH
3087: LD_STRING 
3089: PPUSH
3090: CALL 16886 0 4
3094: ADD
3095: ST_TO_ADDR
// vojaci = vojaci ^ get_human ( sex_male , class_soldier , 2 ,  ) ;
3096: LD_ADDR_VAR 0 6
3100: PUSH
3101: LD_VAR 0 6
3105: PUSH
3106: LD_INT 1
3108: PPUSH
3109: LD_INT 1
3111: PPUSH
3112: LD_INT 2
3114: PPUSH
3115: LD_STRING 
3117: PPUSH
3118: CALL 16886 0 4
3122: ADD
3123: ST_TO_ADDR
// pom = FilterUnitsinArea ( Am_bw_e , [ [ f_side , Amici ] , [ f_btype , b_breastwork ] ] ) ;
3124: LD_ADDR_VAR 0 2
3128: PUSH
3129: LD_INT 22
3131: PPUSH
3132: LD_INT 22
3134: PUSH
3135: LD_EXP 4
3139: PUSH
3140: EMPTY
3141: LIST
3142: LIST
3143: PUSH
3144: LD_INT 30
3146: PUSH
3147: LD_INT 31
3149: PUSH
3150: EMPTY
3151: LIST
3152: LIST
3153: PUSH
3154: EMPTY
3155: LIST
3156: LIST
3157: PPUSH
3158: CALL_OW 70
3162: ST_TO_ADDR
// if pocet >= 1 then
3163: LD_VAR 0 7
3167: PUSH
3168: LD_INT 1
3170: GREATEREQUAL
3171: IFFALSE 3220
// begin PlaceUnitXYR ( vojaci [ 1 ] , 129 , 39 , 5 , false ) ;
3173: LD_VAR 0 6
3177: PUSH
3178: LD_INT 1
3180: ARRAY
3181: PPUSH
3182: LD_INT 129
3184: PPUSH
3185: LD_INT 39
3187: PPUSH
3188: LD_INT 5
3190: PPUSH
3191: LD_INT 0
3193: PPUSH
3194: CALL_OW 50
// ComEnterUnit ( vojaci [ 1 ] , pom [ 1 ] ) ;
3198: LD_VAR 0 6
3202: PUSH
3203: LD_INT 1
3205: ARRAY
3206: PPUSH
3207: LD_VAR 0 2
3211: PUSH
3212: LD_INT 1
3214: ARRAY
3215: PPUSH
3216: CALL_OW 120
// end ; if pocet = 2 then
3220: LD_VAR 0 7
3224: PUSH
3225: LD_INT 2
3227: EQUAL
3228: IFFALSE 3277
// begin PlaceUnitXYR ( vojaci [ 2 ] , 129 , 39 , 5 , false ) ;
3230: LD_VAR 0 6
3234: PUSH
3235: LD_INT 2
3237: ARRAY
3238: PPUSH
3239: LD_INT 129
3241: PPUSH
3242: LD_INT 39
3244: PPUSH
3245: LD_INT 5
3247: PPUSH
3248: LD_INT 0
3250: PPUSH
3251: CALL_OW 50
// ComEnterUnit ( vojaci [ 2 ] , pom [ 2 ] ) ;
3255: LD_VAR 0 6
3259: PUSH
3260: LD_INT 2
3262: ARRAY
3263: PPUSH
3264: LD_VAR 0 2
3268: PUSH
3269: LD_INT 2
3271: ARRAY
3272: PPUSH
3273: CALL_OW 120
// end ; end ; end ;
3277: LD_VAR 0 1
3281: RET
// export function vyber_characteru ; var pom ; var units_na_vyber ; var i ; var pocet ; var vyber ; var osurviv ; begin
3282: LD_INT 0
3284: PPUSH
3285: PPUSH
3286: PPUSH
3287: PPUSH
3288: PPUSH
3289: PPUSH
3290: PPUSH
// uc_side = You ;
3291: LD_ADDR_OWVAR 20
3295: PUSH
3296: LD_EXP 1
3300: ST_TO_ADDR
// uc_nation = nation_russian ;
3301: LD_ADDR_OWVAR 21
3305: PUSH
3306: LD_INT 3
3308: ST_TO_ADDR
// pocet = 3 ;
3309: LD_ADDR_VAR 0 5
3313: PUSH
3314: LD_INT 3
3316: ST_TO_ADDR
// units_na_vyber = [ sel_not_changeable , sel_hired , sel_dont_change_class , bur ] ;
3317: LD_ADDR_VAR 0 3
3321: PUSH
3322: LD_INT -4
3324: PUSH
3325: LD_INT -1
3327: PUSH
3328: LD_INT -6
3330: PUSH
3331: LD_EXP 29
3335: PUSH
3336: EMPTY
3337: LIST
3338: LIST
3339: LIST
3340: LIST
3341: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ [ sel_change_class ] ;
3342: LD_ADDR_VAR 0 3
3346: PUSH
3347: LD_VAR 0 3
3351: PUSH
3352: LD_INT -5
3354: PUSH
3355: EMPTY
3356: LIST
3357: ADD
3358: ST_TO_ADDR
// if IsOK ( gny ) then
3359: LD_EXP 31
3363: PPUSH
3364: CALL_OW 302
3368: IFFALSE 3402
// begin SetSide ( gny , You ) ;
3370: LD_EXP 31
3374: PPUSH
3375: LD_EXP 1
3379: PPUSH
3380: CALL_OW 235
// units_na_vyber = units_na_vyber ^ gny end else
3384: LD_ADDR_VAR 0 3
3388: PUSH
3389: LD_VAR 0 3
3393: PUSH
3394: LD_EXP 31
3398: ADD
3399: ST_TO_ADDR
3400: GO 3416
// pocet = pocet + 1 ;
3402: LD_ADDR_VAR 0 5
3406: PUSH
3407: LD_VAR 0 5
3411: PUSH
3412: LD_INT 1
3414: PLUS
3415: ST_TO_ADDR
// if IsOK ( kov ) then
3416: LD_EXP 30
3420: PPUSH
3421: CALL_OW 302
3425: IFFALSE 3459
// begin SetSide ( kov , You ) ;
3427: LD_EXP 30
3431: PPUSH
3432: LD_EXP 1
3436: PPUSH
3437: CALL_OW 235
// units_na_vyber = units_na_vyber ^ kov end else
3441: LD_ADDR_VAR 0 3
3445: PUSH
3446: LD_VAR 0 3
3450: PUSH
3451: LD_EXP 30
3455: ADD
3456: ST_TO_ADDR
3457: GO 3473
// pocet = pocet + 1 ;
3459: LD_ADDR_VAR 0 5
3463: PUSH
3464: LD_VAR 0 5
3468: PUSH
3469: LD_INT 1
3471: PLUS
3472: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ [ sel_not_hired , sel_changeable , sel_change_class ] ;
3473: LD_ADDR_VAR 0 3
3477: PUSH
3478: LD_VAR 0 3
3482: PUSH
3483: LD_INT -2
3485: PUSH
3486: LD_INT -3
3488: PUSH
3489: LD_INT -5
3491: PUSH
3492: EMPTY
3493: LIST
3494: LIST
3495: LIST
3496: ADD
3497: ST_TO_ADDR
// if IsOK ( bel ) then
3498: LD_EXP 32
3502: PPUSH
3503: CALL_OW 302
3507: IFFALSE 3539
// begin SetSide ( bel , You ) ;
3509: LD_EXP 32
3513: PPUSH
3514: LD_EXP 1
3518: PPUSH
3519: CALL_OW 235
// units_na_vyber = units_na_vyber ^ bel ;
3523: LD_ADDR_VAR 0 3
3527: PUSH
3528: LD_VAR 0 3
3532: PUSH
3533: LD_EXP 32
3537: ADD
3538: ST_TO_ADDR
// end ; osurviv = other_survivors_mise_2 ;
3539: LD_ADDR_VAR 0 7
3543: PUSH
3544: LD_EXP 71
3548: ST_TO_ADDR
// for i in osurviv do
3549: LD_ADDR_VAR 0 4
3553: PUSH
3554: LD_VAR 0 7
3558: PUSH
3559: FOR_IN
3560: IFFALSE 3578
// SetSide ( i , You ) ;
3562: LD_VAR 0 4
3566: PPUSH
3567: LD_EXP 1
3571: PPUSH
3572: CALL_OW 235
3576: GO 3559
3578: POP
3579: POP
// units_na_vyber = units_na_vyber ^ osurviv ;
3580: LD_ADDR_VAR 0 3
3584: PUSH
3585: LD_VAR 0 3
3589: PUSH
3590: LD_VAR 0 7
3594: ADD
3595: ST_TO_ADDR
// uc_side = You ;
3596: LD_ADDR_OWVAR 20
3600: PUSH
3601: LD_EXP 1
3605: ST_TO_ADDR
// uc_nation = nation_russian ;
3606: LD_ADDR_OWVAR 21
3610: PUSH
3611: LD_INT 3
3613: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_soldier , 2 ,  ) ;
3614: LD_ADDR_VAR 0 3
3618: PUSH
3619: LD_VAR 0 3
3623: PUSH
3624: CALL 16851 0 0
3628: PPUSH
3629: LD_INT 1
3631: PPUSH
3632: LD_INT 2
3634: PPUSH
3635: LD_STRING 
3637: PPUSH
3638: CALL 16886 0 4
3642: ADD
3643: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( sex_female , class_soldier , 3 ,  ) ;
3644: LD_ADDR_VAR 0 3
3648: PUSH
3649: LD_VAR 0 3
3653: PUSH
3654: LD_INT 2
3656: PPUSH
3657: LD_INT 1
3659: PPUSH
3660: LD_INT 3
3662: PPUSH
3663: LD_STRING 
3665: PPUSH
3666: CALL 16886 0 4
3670: ADD
3671: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_engineer , 2 ,  ) ;
3672: LD_ADDR_VAR 0 3
3676: PUSH
3677: LD_VAR 0 3
3681: PUSH
3682: CALL 16851 0 0
3686: PPUSH
3687: LD_INT 2
3689: PPUSH
3690: LD_INT 2
3692: PPUSH
3693: LD_STRING 
3695: PPUSH
3696: CALL 16886 0 4
3700: ADD
3701: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_scientistic , 2 ,  ) ;
3702: LD_ADDR_VAR 0 3
3706: PUSH
3707: LD_VAR 0 3
3711: PUSH
3712: CALL 16851 0 0
3716: PPUSH
3717: LD_INT 4
3719: PPUSH
3720: LD_INT 2
3722: PPUSH
3723: LD_STRING 
3725: PPUSH
3726: CALL 16886 0 4
3730: ADD
3731: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_mechanic , 2 ,  ) ;
3732: LD_ADDR_VAR 0 3
3736: PUSH
3737: LD_VAR 0 3
3741: PUSH
3742: CALL 16851 0 0
3746: PPUSH
3747: LD_INT 3
3749: PPUSH
3750: LD_INT 2
3752: PPUSH
3753: LD_STRING 
3755: PPUSH
3756: CALL 16886 0 4
3760: ADD
3761: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_engineer , 2 ,  ) ;
3762: LD_ADDR_VAR 0 3
3766: PUSH
3767: LD_VAR 0 3
3771: PUSH
3772: CALL 16851 0 0
3776: PPUSH
3777: LD_INT 2
3779: PPUSH
3780: LD_INT 2
3782: PPUSH
3783: LD_STRING 
3785: PPUSH
3786: CALL 16886 0 4
3790: ADD
3791: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_scientistic , 2 ,  ) ;
3792: LD_ADDR_VAR 0 3
3796: PUSH
3797: LD_VAR 0 3
3801: PUSH
3802: CALL 16851 0 0
3806: PPUSH
3807: LD_INT 4
3809: PPUSH
3810: LD_INT 2
3812: PPUSH
3813: LD_STRING 
3815: PPUSH
3816: CALL 16886 0 4
3820: ADD
3821: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_mechanic , 2 ,  ) ;
3822: LD_ADDR_VAR 0 3
3826: PUSH
3827: LD_VAR 0 3
3831: PUSH
3832: CALL 16851 0 0
3836: PPUSH
3837: LD_INT 3
3839: PPUSH
3840: LD_INT 2
3842: PPUSH
3843: LD_STRING 
3845: PPUSH
3846: CALL 16886 0 4
3850: ADD
3851: ST_TO_ADDR
// pom = CharacterSelection ( Vyber si peopliky , pocet , pocet , units_na_vyber , [ [ class_engineer , 1 ] , [ class_scientistic , 1 ] , [ class_mechanic , 0 ] , [ class_soldier , 0 ] ] ) ;
3852: LD_ADDR_VAR 0 2
3856: PUSH
3857: LD_STRING Vyber si peopliky
3859: PPUSH
3860: LD_VAR 0 5
3864: PPUSH
3865: LD_VAR 0 5
3869: PPUSH
3870: LD_VAR 0 3
3874: PPUSH
3875: LD_INT 2
3877: PUSH
3878: LD_INT 1
3880: PUSH
3881: EMPTY
3882: LIST
3883: LIST
3884: PUSH
3885: LD_INT 4
3887: PUSH
3888: LD_INT 1
3890: PUSH
3891: EMPTY
3892: LIST
3893: LIST
3894: PUSH
3895: LD_INT 3
3897: PUSH
3898: LD_INT 0
3900: PUSH
3901: EMPTY
3902: LIST
3903: LIST
3904: PUSH
3905: LD_INT 1
3907: PUSH
3908: LD_INT 0
3910: PUSH
3911: EMPTY
3912: LIST
3913: LIST
3914: PUSH
3915: EMPTY
3916: LIST
3917: LIST
3918: LIST
3919: LIST
3920: PPUSH
3921: CALL_OW 42
3925: ST_TO_ADDR
// vyber = [ bur ] ;
3926: LD_ADDR_VAR 0 6
3930: PUSH
3931: LD_EXP 29
3935: PUSH
3936: EMPTY
3937: LIST
3938: ST_TO_ADDR
// if IsOK ( gny ) then
3939: LD_EXP 31
3943: PPUSH
3944: CALL_OW 302
3948: IFFALSE 3966
// vyber = vyber ^ gny ;
3950: LD_ADDR_VAR 0 6
3954: PUSH
3955: LD_VAR 0 6
3959: PUSH
3960: LD_EXP 31
3964: ADD
3965: ST_TO_ADDR
// if IsOK ( kov ) then
3966: LD_EXP 30
3970: PPUSH
3971: CALL_OW 302
3975: IFFALSE 3993
// vyber = vyber ^ kov ;
3977: LD_ADDR_VAR 0 6
3981: PUSH
3982: LD_VAR 0 6
3986: PUSH
3987: LD_EXP 30
3991: ADD
3992: ST_TO_ADDR
// vyber = vyber ^ pom ;
3993: LD_ADDR_VAR 0 6
3997: PUSH
3998: LD_VAR 0 6
4002: PUSH
4003: LD_VAR 0 2
4007: ADD
4008: ST_TO_ADDR
// manage_zbytek ( osurviv diff vyber ) ;
4009: LD_VAR 0 7
4013: PUSH
4014: LD_VAR 0 6
4018: DIFF
4019: PPUSH
4020: CALL 4254 0 1
// result := vyber ;
4024: LD_ADDR_VAR 0 1
4028: PUSH
4029: LD_VAR 0 6
4033: ST_TO_ADDR
// end ;
4034: LD_VAR 0 1
4038: RET
// export function placni_unity ( unity ) ; var i ; begin
4039: LD_INT 0
4041: PPUSH
4042: PPUSH
// for i in unity do
4043: LD_ADDR_VAR 0 3
4047: PUSH
4048: LD_VAR 0 1
4052: PUSH
4053: FOR_IN
4054: IFFALSE 4093
// begin SetSide ( i , You ) ;
4056: LD_VAR 0 3
4060: PPUSH
4061: LD_EXP 1
4065: PPUSH
4066: CALL_OW 235
// PlaceUnitXYR ( i , 99 , 73 , 5 , false ) ;
4070: LD_VAR 0 3
4074: PPUSH
4075: LD_INT 99
4077: PPUSH
4078: LD_INT 73
4080: PPUSH
4081: LD_INT 5
4083: PPUSH
4084: LD_INT 0
4086: PPUSH
4087: CALL_OW 50
// end ;
4091: GO 4053
4093: POP
4094: POP
// wait ( 0 0$0.5 ) ;
4095: LD_INT 18
4097: PPUSH
4098: CALL_OW 67
// SaveForQuickRestart ;
4102: CALL_OW 22
// end ;
4106: LD_VAR 0 2
4110: RET
// every 0 0$10 trigger stav_omikron < 3 do
4111: LD_EXP 39
4115: PUSH
4116: LD_INT 3
4118: LESS
4119: IFFALSE 4188
4121: GO 4123
4123: DISABLE
// begin wait ( Rand ( 50 , 2 2$00 ) ) ;
4124: LD_INT 50
4126: PPUSH
4127: LD_INT 4200
4129: PPUSH
4130: CALL_OW 12
4134: PPUSH
4135: CALL_OW 67
// wait ( konzervy_delay * 0 0$5 ) ;
4139: LD_LOC 16
4143: PUSH
4144: LD_INT 175
4146: MUL
4147: PPUSH
4148: CALL_OW 67
// konzervy_delay = konzervy_delay + 1 ;
4152: LD_ADDR_LOC 16
4156: PUSH
4157: LD_LOC 16
4161: PUSH
4162: LD_INT 1
4164: PLUS
4165: ST_TO_ADDR
// CreateCratesArea ( Rand ( 3 , 5 ) , RU2_bedny , true ) ;
4166: LD_INT 3
4168: PPUSH
4169: LD_INT 5
4171: PPUSH
4172: CALL_OW 12
4176: PPUSH
4177: LD_INT 7
4179: PPUSH
4180: LD_INT 1
4182: PPUSH
4183: CALL_OW 55
// enable ;
4187: ENABLE
// end ;
4188: END
// every 0 0$30 do
4189: GO 4191
4191: DISABLE
// begin CreateCratesArea ( Rand ( 3 , 5 ) , RU2_bedny , true ) ;
4192: LD_INT 3
4194: PPUSH
4195: LD_INT 5
4197: PPUSH
4198: CALL_OW 12
4202: PPUSH
4203: LD_INT 7
4205: PPUSH
4206: LD_INT 1
4208: PPUSH
4209: CALL_OW 55
// end ;
4213: END
// every 1 1$20 do
4214: GO 4216
4216: DISABLE
// begin wait ( Rand ( 1 , 0 0$40 ) ) ;
4217: LD_INT 1
4219: PPUSH
4220: LD_INT 1400
4222: PPUSH
4223: CALL_OW 12
4227: PPUSH
4228: CALL_OW 67
// CreateCratesArea ( Rand ( 1 , 4 ) , konzervy_all , true ) ;
4232: LD_INT 1
4234: PPUSH
4235: LD_INT 4
4237: PPUSH
4238: CALL_OW 12
4242: PPUSH
4243: LD_INT 25
4245: PPUSH
4246: LD_INT 1
4248: PPUSH
4249: CALL_OW 55
// end ;
4253: END
// function manage_zbytek ( lidi ) ; var i ; begin
4254: LD_INT 0
4256: PPUSH
4257: PPUSH
// for i in lidi do
4258: LD_ADDR_VAR 0 3
4262: PUSH
4263: LD_VAR 0 1
4267: PUSH
4268: FOR_IN
4269: IFFALSE 4308
// begin SetSide ( i , You2 ) ;
4271: LD_VAR 0 3
4275: PPUSH
4276: LD_EXP 2
4280: PPUSH
4281: CALL_OW 235
// PlaceUnitXYR ( i , 144 , 79 , 3 , false ) ;
4285: LD_VAR 0 3
4289: PPUSH
4290: LD_INT 144
4292: PPUSH
4293: LD_INT 79
4295: PPUSH
4296: LD_INT 3
4298: PPUSH
4299: LD_INT 0
4301: PPUSH
4302: CALL_OW 50
// end ;
4306: GO 4268
4308: POP
4309: POP
// ComEnterUnit ( lidi , RU1_dep ) ;
4310: LD_VAR 0 1
4314: PPUSH
4315: LD_INT 1
4317: PPUSH
4318: CALL_OW 120
// end ; end_of_file
4322: LD_VAR 0 2
4326: RET
// export level_bw_e ; export schol_find_amikama ; export levely_amici ; export posily1 ; export posily11 ; export posily2 ; export posily3 ; export posily4 ; export utok_na_omikron ; export levely_ruske_posily ; export levely_am_budov ; export muze_projit_posil ; export muze_prezit_posil ; export BELKOV_SAVED ; export STAV_UTOKU ; export function set_difficulty ; begin
4327: LD_INT 0
4329: PPUSH
// BELKOV_SAVED = LoadVariable ( belkov_saved , 0 ) ;
4330: LD_ADDR_EXP 24
4334: PUSH
4335: LD_STRING belkov_saved
4337: PPUSH
4338: LD_INT 0
4340: PPUSH
4341: CALL_OW 30
4345: ST_TO_ADDR
// STAV_UTOKU = LoadVariable ( utok_stav , 3 ) ;
4346: LD_ADDR_EXP 25
4350: PUSH
4351: LD_STRING utok_stav
4353: PPUSH
4354: LD_INT 3
4356: PPUSH
4357: CALL_OW 30
4361: ST_TO_ADDR
// level_bw_e = [ 2 , 3 , 4 ] ;
4362: LD_ADDR_EXP 11
4366: PUSH
4367: LD_INT 2
4369: PUSH
4370: LD_INT 3
4372: PUSH
4373: LD_INT 4
4375: PUSH
4376: EMPTY
4377: LIST
4378: LIST
4379: LIST
4380: ST_TO_ADDR
// schol_find_amikama = [ 11 11$0 , 9 9$0 , 7 7$0 ] ;
4381: LD_ADDR_EXP 12
4385: PUSH
4386: LD_INT 23100
4388: PUSH
4389: LD_INT 18900
4391: PUSH
4392: LD_INT 14700
4394: PUSH
4395: EMPTY
4396: LIST
4397: LIST
4398: LIST
4399: ST_TO_ADDR
// levely_amici = [ 2 , 3 , 4 ] ;
4400: LD_ADDR_EXP 13
4404: PUSH
4405: LD_INT 2
4407: PUSH
4408: LD_INT 3
4410: PUSH
4411: LD_INT 4
4413: PUSH
4414: EMPTY
4415: LIST
4416: LIST
4417: LIST
4418: ST_TO_ADDR
// posily1 = [ 13 13$00 , 11 11$00 , 10 10$00 ] ;
4419: LD_ADDR_EXP 14
4423: PUSH
4424: LD_INT 27300
4426: PUSH
4427: LD_INT 23100
4429: PUSH
4430: LD_INT 21000
4432: PUSH
4433: EMPTY
4434: LIST
4435: LIST
4436: LIST
4437: ST_TO_ADDR
// posily11 = [ 5 5$0 , 4 4$0 , 3 3$0 ] ;
4438: LD_ADDR_EXP 15
4442: PUSH
4443: LD_INT 10500
4445: PUSH
4446: LD_INT 8400
4448: PUSH
4449: LD_INT 6300
4451: PUSH
4452: EMPTY
4453: LIST
4454: LIST
4455: LIST
4456: ST_TO_ADDR
// posily2 = [ 10 10$0 , 8 8$0 , 5 5$0 ] ;
4457: LD_ADDR_EXP 16
4461: PUSH
4462: LD_INT 21000
4464: PUSH
4465: LD_INT 16800
4467: PUSH
4468: LD_INT 10500
4470: PUSH
4471: EMPTY
4472: LIST
4473: LIST
4474: LIST
4475: ST_TO_ADDR
// posily3 = [ 11 11$0 , 8 8$30 , 5 5$0 ] ;
4476: LD_ADDR_EXP 17
4480: PUSH
4481: LD_INT 23100
4483: PUSH
4484: LD_INT 17850
4486: PUSH
4487: LD_INT 10500
4489: PUSH
4490: EMPTY
4491: LIST
4492: LIST
4493: LIST
4494: ST_TO_ADDR
// posily4 = [ 8 8$0 , 7 7$0 , 5 5$0 ] ;
4495: LD_ADDR_EXP 18
4499: PUSH
4500: LD_INT 16800
4502: PUSH
4503: LD_INT 14700
4505: PUSH
4506: LD_INT 10500
4508: PUSH
4509: EMPTY
4510: LIST
4511: LIST
4512: LIST
4513: ST_TO_ADDR
// utok_na_omikron = [ 55 55$0 , 45 45$0 , 35 35$0 ] [ difficulty ] ;
4514: LD_ADDR_EXP 19
4518: PUSH
4519: LD_INT 115500
4521: PUSH
4522: LD_INT 94500
4524: PUSH
4525: LD_INT 73500
4527: PUSH
4528: EMPTY
4529: LIST
4530: LIST
4531: LIST
4532: PUSH
4533: LD_OWVAR 67
4537: ARRAY
4538: ST_TO_ADDR
// levely_ruske_posily = [ 4 , 3 , 2 ] ;
4539: LD_ADDR_EXP 20
4543: PUSH
4544: LD_INT 4
4546: PUSH
4547: LD_INT 3
4549: PUSH
4550: LD_INT 2
4552: PUSH
4553: EMPTY
4554: LIST
4555: LIST
4556: LIST
4557: ST_TO_ADDR
// levely_am_budov = [ 0 , 1 , 2 ] ;
4558: LD_ADDR_EXP 21
4562: PUSH
4563: LD_INT 0
4565: PUSH
4566: LD_INT 1
4568: PUSH
4569: LD_INT 2
4571: PUSH
4572: EMPTY
4573: LIST
4574: LIST
4575: LIST
4576: ST_TO_ADDR
// muze_projit_posil = [ 8 , 8 , 6 ] ;
4577: LD_ADDR_EXP 22
4581: PUSH
4582: LD_INT 8
4584: PUSH
4585: LD_INT 8
4587: PUSH
4588: LD_INT 6
4590: PUSH
4591: EMPTY
4592: LIST
4593: LIST
4594: LIST
4595: ST_TO_ADDR
// muze_prezit_posil = [ 2 , 5 , 100 ] ;
4596: LD_ADDR_EXP 23
4600: PUSH
4601: LD_INT 2
4603: PUSH
4604: LD_INT 5
4606: PUSH
4607: LD_INT 100
4609: PUSH
4610: EMPTY
4611: LIST
4612: LIST
4613: LIST
4614: ST_TO_ADDR
// cas = [ 0 , : , 0 ] ;
4615: LD_ADDR_EXP 26
4619: PUSH
4620: LD_INT 0
4622: PUSH
4623: LD_STRING :
4625: PUSH
4626: LD_INT 0
4628: PUSH
4629: EMPTY
4630: LIST
4631: LIST
4632: LIST
4633: ST_TO_ADDR
// end ;
4634: LD_VAR 0 1
4638: RET
// export cas ; every 0 0$10 do var pom ;
4639: GO 4641
4641: DISABLE
4642: LD_INT 0
4644: PPUSH
// begin if cas [ 3 ] + 10 = 60 then
4645: LD_EXP 26
4649: PUSH
4650: LD_INT 3
4652: ARRAY
4653: PUSH
4654: LD_INT 10
4656: PLUS
4657: PUSH
4658: LD_INT 60
4660: EQUAL
4661: IFFALSE 4697
// cas = cas [ 1 ] + 1 ^ cas [ 2 ] ^ 0 else
4663: LD_ADDR_EXP 26
4667: PUSH
4668: LD_EXP 26
4672: PUSH
4673: LD_INT 1
4675: ARRAY
4676: PUSH
4677: LD_INT 1
4679: PLUS
4680: PUSH
4681: LD_EXP 26
4685: PUSH
4686: LD_INT 2
4688: ARRAY
4689: ADD
4690: PUSH
4691: LD_INT 0
4693: ADD
4694: ST_TO_ADDR
4695: GO 4735
// cas = cas [ 1 ] ^ cas [ 2 ] ^ cas [ 3 ] + 10 ;
4697: LD_ADDR_EXP 26
4701: PUSH
4702: LD_EXP 26
4706: PUSH
4707: LD_INT 1
4709: ARRAY
4710: PUSH
4711: LD_EXP 26
4715: PUSH
4716: LD_INT 2
4718: ARRAY
4719: ADD
4720: PUSH
4721: LD_EXP 26
4725: PUSH
4726: LD_INT 3
4728: ARRAY
4729: PUSH
4730: LD_INT 10
4732: PLUS
4733: ADD
4734: ST_TO_ADDR
// debug_strings = [ cas ] ;
4735: LD_ADDR_OWVAR 48
4739: PUSH
4740: LD_EXP 26
4744: PUSH
4745: EMPTY
4746: LIST
4747: ST_TO_ADDR
// enable ;
4748: ENABLE
// end ;
4749: PPOPN 1
4751: END
// export function pojmenovani_zakladen ; var pom ; begin
4752: LD_INT 0
4754: PPUSH
4755: PPUSH
// SetBName ( RU1_dep , kirov ) ;
4756: LD_INT 1
4758: PPUSH
4759: LD_STRING kirov
4761: PPUSH
4762: CALL_OW 500
// pom = FilterUnitsInArea ( Ru2_base , [ [ f_side , You ] , [ f_btype , b_depot ] ] ) ;
4766: LD_ADDR_VAR 0 2
4770: PUSH
4771: LD_INT 2
4773: PPUSH
4774: LD_INT 22
4776: PUSH
4777: LD_EXP 1
4781: PUSH
4782: EMPTY
4783: LIST
4784: LIST
4785: PUSH
4786: LD_INT 30
4788: PUSH
4789: LD_INT 0
4791: PUSH
4792: EMPTY
4793: LIST
4794: LIST
4795: PUSH
4796: EMPTY
4797: LIST
4798: LIST
4799: PPUSH
4800: CALL_OW 70
4804: ST_TO_ADDR
// if pom > 0 then
4805: LD_VAR 0 2
4809: PUSH
4810: LD_INT 0
4812: GREATER
4813: IFFALSE 4831
// SetBName ( pom [ 1 ] , beria ) ;
4815: LD_VAR 0 2
4819: PUSH
4820: LD_INT 1
4822: ARRAY
4823: PPUSH
4824: LD_STRING beria
4826: PPUSH
4827: CALL_OW 500
// SetBName ( Am_dep , omikron ) ;
4831: LD_INT 12
4833: PPUSH
4834: LD_STRING omikron
4836: PPUSH
4837: CALL_OW 500
// end ;
4841: LD_VAR 0 1
4845: RET
// export function pojmenovani_kaganoviche ( base ) ; begin
4846: LD_INT 0
4848: PPUSH
// SetBName ( base , kagan ) ;
4849: LD_VAR 0 1
4853: PPUSH
4854: LD_STRING kagan
4856: PPUSH
4857: CALL_OW 500
// end ; end_of_file
4861: LD_VAR 0 2
4865: RET
// export kur ; export pop ; export bur ; export kov ; export gny ; export bel ; export schol ; export schol2 ; export grishko ; export Rusi_enter ; export scholtze_saved ; export stav_aut ; export stav_omikron ; export RU_videl_oil ; var counter_zapnut ; export setkani_om ; var R_comp ; export Rusi_utekli ; export Rusi_save ; var dialog_probehnul ; var qrefuel_over ; export kecy_scholtze_nalezen ; export konec_counteru ; export stav_aut_new ; export postavenych_aut ; var TTime ; export special_time ; every 0 0$0.1 do var i ;
4866: GO 4868
4868: DISABLE
4869: LD_INT 0
4871: PPUSH
// begin schol = 0 ;
4872: LD_ADDR_EXP 33
4876: PUSH
4877: LD_INT 0
4879: ST_TO_ADDR
// scholtze_saved = false ;
4880: LD_ADDR_EXP 37
4884: PUSH
4885: LD_INT 0
4887: ST_TO_ADDR
// stav_omikron = 0 ;
4888: LD_ADDR_EXP 39
4892: PUSH
4893: LD_INT 0
4895: ST_TO_ADDR
// stav_aut = 0 ;
4896: LD_ADDR_EXP 38
4900: PUSH
4901: LD_INT 0
4903: ST_TO_ADDR
// RU_videl_oil = false ;
4904: LD_ADDR_EXP 40
4908: PUSH
4909: LD_INT 0
4911: ST_TO_ADDR
// counter_zapnut = false ;
4912: LD_ADDR_LOC 17
4916: PUSH
4917: LD_INT 0
4919: ST_TO_ADDR
// setkani_om = false ;
4920: LD_ADDR_EXP 41
4924: PUSH
4925: LD_INT 0
4927: ST_TO_ADDR
// R_comp = [ ] ;
4928: LD_ADDR_LOC 18
4932: PUSH
4933: EMPTY
4934: ST_TO_ADDR
// Rusi_utekli = [ ] ;
4935: LD_ADDR_EXP 42
4939: PUSH
4940: EMPTY
4941: ST_TO_ADDR
// Rusi_save = [ ] ;
4942: LD_ADDR_EXP 43
4946: PUSH
4947: EMPTY
4948: ST_TO_ADDR
// dialog_probehnul = false ;
4949: LD_ADDR_LOC 19
4953: PUSH
4954: LD_INT 0
4956: ST_TO_ADDR
// qrefuel_over = false ;
4957: LD_ADDR_LOC 20
4961: PUSH
4962: LD_INT 0
4964: ST_TO_ADDR
// kecy_scholtze_nalezen = false ;
4965: LD_ADDR_EXP 44
4969: PUSH
4970: LD_INT 0
4972: ST_TO_ADDR
// postavenych_aut = 0 ;
4973: LD_ADDR_EXP 47
4977: PUSH
4978: LD_INT 0
4980: ST_TO_ADDR
// TTime = 0 ;
4981: LD_ADDR_LOC 21
4985: PUSH
4986: LD_INT 0
4988: ST_TO_ADDR
// konec_counteru = false ;
4989: LD_ADDR_EXP 45
4993: PUSH
4994: LD_INT 0
4996: ST_TO_ADDR
// stav_aut_new = 0 ;
4997: LD_ADDR_EXP 46
5001: PUSH
5002: LD_INT 0
5004: ST_TO_ADDR
// special_time = false ;
5005: LD_ADDR_EXP 48
5009: PUSH
5010: LD_INT 0
5012: ST_TO_ADDR
// for i in [ 1 , 2 , 3 , 6 , 7 , 8 , 9 , 10 , 51 , 52 , 53 , 200 , 201 , 202 , 203 ] do
5013: LD_ADDR_VAR 0 1
5017: PUSH
5018: LD_INT 1
5020: PUSH
5021: LD_INT 2
5023: PUSH
5024: LD_INT 3
5026: PUSH
5027: LD_INT 6
5029: PUSH
5030: LD_INT 7
5032: PUSH
5033: LD_INT 8
5035: PUSH
5036: LD_INT 9
5038: PUSH
5039: LD_INT 10
5041: PUSH
5042: LD_INT 51
5044: PUSH
5045: LD_INT 52
5047: PUSH
5048: LD_INT 53
5050: PUSH
5051: LD_INT 200
5053: PUSH
5054: LD_INT 201
5056: PUSH
5057: LD_INT 202
5059: PUSH
5060: LD_INT 203
5062: PUSH
5063: EMPTY
5064: LIST
5065: LIST
5066: LIST
5067: LIST
5068: LIST
5069: LIST
5070: LIST
5071: LIST
5072: LIST
5073: LIST
5074: LIST
5075: LIST
5076: LIST
5077: LIST
5078: LIST
5079: PUSH
5080: FOR_IN
5081: IFFALSE 5090
// disable ( i ) ;
5083: LD_VAR 0 1
5087: DISABLE_MARKED
5088: GO 5080
5090: POP
5091: POP
// end ;
5092: PPOPN 1
5094: END
// export function uklid_rusu ; begin
5095: LD_INT 0
5097: PPUSH
// ComEnterUnit ( RU1_vb1 , RU1_bu1 ) ;
5098: LD_INT 42
5100: PPUSH
5101: LD_INT 3
5103: PPUSH
5104: CALL_OW 120
// ComEnterUnit ( RU1_vb2 , RU1_bu2 ) ;
5108: LD_INT 43
5110: PPUSH
5111: LD_INT 4
5113: PPUSH
5114: CALL_OW 120
// ComEnterUnit ( RU1_sci1 , RU1_lab2 ) ;
5118: LD_INT 44
5120: PPUSH
5121: LD_INT 16
5123: PPUSH
5124: CALL_OW 120
// ComEnterUnit ( RU1_sci2 , RU1_lab2 ) ;
5128: LD_INT 45
5130: PPUSH
5131: LD_INT 16
5133: PPUSH
5134: CALL_OW 120
// ComEnterUnit ( RU1_sci3 , RU1_lab2 ) ;
5138: LD_INT 46
5140: PPUSH
5141: LD_INT 16
5143: PPUSH
5144: CALL_OW 120
// ComEnterUnit ( RU1_sci4 , RU1_lab1 ) ;
5148: LD_INT 47
5150: PPUSH
5151: LD_INT 6
5153: PPUSH
5154: CALL_OW 120
// ComEnterUnit ( RU1_sci5 , RU1_lab1 ) ;
5158: LD_INT 48
5160: PPUSH
5161: LD_INT 6
5163: PPUSH
5164: CALL_OW 120
// ComEnterUnit ( RU1_me1 , RU1_fac ) ;
5168: LD_INT 49
5170: PPUSH
5171: LD_INT 5
5173: PPUSH
5174: CALL_OW 120
// ComEnterUnit ( RU1_me2 , RU1_fac ) ;
5178: LD_INT 50
5180: PPUSH
5181: LD_INT 5
5183: PPUSH
5184: CALL_OW 120
// ComEnterUnit ( RU1_me3 , RU1_fac ) ;
5188: LD_INT 51
5190: PPUSH
5191: LD_INT 5
5193: PPUSH
5194: CALL_OW 120
// ComEnterUnit ( pop , RU1_bar1 ) ;
5198: LD_EXP 28
5202: PPUSH
5203: LD_INT 2
5205: PPUSH
5206: CALL_OW 120
// ComEnterUnit ( RU1_sol1 , RU1_bar1 ) ;
5210: LD_INT 52
5212: PPUSH
5213: LD_INT 2
5215: PPUSH
5216: CALL_OW 120
// ComEnterUnit ( RU1_sol2 , RU1_bar1 ) ;
5220: LD_INT 53
5222: PPUSH
5223: LD_INT 2
5225: PPUSH
5226: CALL_OW 120
// ComEnterUnit ( RU1_sol3 , RU1_bar2 ) ;
5230: LD_INT 56
5232: PPUSH
5233: LD_INT 17
5235: PPUSH
5236: CALL_OW 120
// ComEnterUnit ( RU1_sol4 , RU1_bar2 ) ;
5240: LD_INT 54
5242: PPUSH
5243: LD_INT 17
5245: PPUSH
5246: CALL_OW 120
// ComEnterUnit ( RU1_sol5 , RU1_bar2 ) ;
5250: LD_INT 55
5252: PPUSH
5253: LD_INT 17
5255: PPUSH
5256: CALL_OW 120
// ComEnterUnit ( RU1_eng1 , RU1_dep ) ;
5260: LD_INT 57
5262: PPUSH
5263: LD_INT 1
5265: PPUSH
5266: CALL_OW 120
// end ;
5270: LD_VAR 0 1
5274: RET
// every 5 5$30 do var pom ;
5275: GO 5277
5277: DISABLE
5278: LD_INT 0
5280: PPUSH
// begin schol2 = create_scholtze ;
5281: LD_ADDR_EXP 34
5285: PUSH
5286: CALL 2423 0 0
5290: ST_TO_ADDR
// wait ( 0 0$2 ) ;
5291: LD_INT 70
5293: PPUSH
5294: CALL_OW 67
// CenterNowOnUnits ( schol2 ) ;
5298: LD_EXP 34
5302: PPUSH
5303: CALL_OW 87
// dialog_scholtze_enter ;
5307: CALL 11640 0 0
// ComMoveToArea ( schol2 , scholze_flee ) ;
5311: LD_EXP 34
5315: PPUSH
5316: LD_INT 45
5318: PPUSH
5319: CALL_OW 113
// AddComHold ( schol2 ) ;
5323: LD_EXP 34
5327: PPUSH
5328: CALL_OW 200
// wait ( 0 0$5 ) ;
5332: LD_INT 175
5334: PPUSH
5335: CALL_OW 67
// amici_hlidka ;
5339: CALL 23878 0 0
// enable ( 1 ) ;
5343: LD_INT 1
5345: ENABLE_MARKED
// end ;
5346: PPOPN 1
5348: END
// every 0 0$1 trigger FilterUnitsInArea ( Schol_les , [ [ f_side , You ] ] ) > 0 marked 1 do
5349: LD_INT 26
5351: PPUSH
5352: LD_INT 22
5354: PUSH
5355: LD_EXP 1
5359: PUSH
5360: EMPTY
5361: LIST
5362: LIST
5363: PUSH
5364: EMPTY
5365: LIST
5366: PPUSH
5367: CALL_OW 70
5371: PUSH
5372: LD_INT 0
5374: GREATER
5375: IFFALSE 5449
5377: GO 5379
5379: DISABLE
// begin kecy_scholtze_nalezen = true ;
5380: LD_ADDR_EXP 44
5384: PUSH
5385: LD_INT 1
5387: ST_TO_ADDR
// dialog_scholtze_nalezen ;
5388: CALL 11712 0 0
// SetSide ( schol2 , You ) ;
5392: LD_EXP 34
5396: PPUSH
5397: LD_EXP 1
5401: PPUSH
5402: CALL_OW 235
// schol = schol2 ;
5406: LD_ADDR_EXP 33
5410: PUSH
5411: LD_EXP 34
5415: ST_TO_ADDR
// ChangeMissionObjectives ( MScholtzeOut ) ;
5416: LD_STRING MScholtzeOut
5418: PPUSH
5419: CALL_OW 337
// wait ( 1 1$0 ) ;
5423: LD_INT 2100
5425: PPUSH
5426: CALL_OW 67
// if IsLive ( schol ) then
5430: LD_EXP 33
5434: PPUSH
5435: CALL_OW 300
5439: IFFALSE 5449
// scholtze_saved = true ;
5441: LD_ADDR_EXP 37
5445: PUSH
5446: LD_INT 1
5448: ST_TO_ADDR
// end ;
5449: END
// every 1 1$0 do
5450: GO 5452
5452: DISABLE
// begin if GetResourceType ( GetBase ( RU1_dep ) , mat_oil ) < 50 then
5453: LD_INT 1
5455: PPUSH
5456: CALL_OW 274
5460: PPUSH
5461: LD_INT 2
5463: PPUSH
5464: CALL_OW 275
5468: PUSH
5469: LD_INT 50
5471: LESS
5472: IFFALSE 5492
// AddResourceType ( GetBase ( RU1_dep ) , mat_oil , 100 ) ;
5474: LD_INT 1
5476: PPUSH
5477: CALL_OW 274
5481: PPUSH
5482: LD_INT 2
5484: PPUSH
5485: LD_INT 100
5487: PPUSH
5488: CALL_OW 276
// enable ;
5492: ENABLE
// end ;
5493: END
// every 1 1$7 do
5494: GO 5496
5496: DISABLE
// begin if Researched ( You2 , tech_Weap1 ) then
5497: LD_EXP 2
5501: PPUSH
5502: LD_INT 51
5504: PPUSH
5505: CALL_OW 325
5509: IFFALSE 5536
// begin SetTech ( tech_Weap1 , You2 , state_enabled ) ;
5511: LD_INT 51
5513: PPUSH
5514: LD_EXP 2
5518: PPUSH
5519: LD_INT 1
5521: PPUSH
5522: CALL_OW 322
// ComResearch ( RU1_lab1 , tech_Weap1 ) ;
5526: LD_INT 6
5528: PPUSH
5529: LD_INT 51
5531: PPUSH
5532: CALL_OW 124
// end ; enable ;
5536: ENABLE
// end ;
5537: END
// every 0 0$19 do
5538: GO 5540
5540: DISABLE
// begin SetTech ( tech_Weap1 , You2 , state_enabled ) ;
5541: LD_INT 51
5543: PPUSH
5544: LD_EXP 2
5548: PPUSH
5549: LD_INT 1
5551: PPUSH
5552: CALL_OW 322
// ComResearch ( RU1_lab1 , tech_Weap1 ) ;
5556: LD_INT 6
5558: PPUSH
5559: LD_INT 51
5561: PPUSH
5562: CALL_OW 124
// end ;
5566: END
// every 0 0$5 trigger stav_omikron = 2 do
5567: LD_EXP 39
5571: PUSH
5572: LD_INT 2
5574: EQUAL
5575: IFFALSE 5618
5577: GO 5579
5579: DISABLE
// begin TTime = 7 7$0 ;
5580: LD_ADDR_LOC 21
5584: PUSH
5585: LD_INT 14700
5587: ST_TO_ADDR
// enable ( 53 ) ;
5588: LD_INT 53
5590: ENABLE_MARKED
// wait ( 7 7$0 ) ;
5591: LD_INT 14700
5593: PPUSH
5594: CALL_OW 67
// special_time = true ;
5598: LD_ADDR_EXP 48
5602: PUSH
5603: LD_INT 1
5605: ST_TO_ADDR
// hlaska_omicron ;
5606: CALL 13309 0 0
// stav_omikron = 3 ;
5610: LD_ADDR_EXP 39
5614: PUSH
5615: LD_INT 3
5617: ST_TO_ADDR
// end ;
5618: END
// export function popov_ven ; var i ; begin
5619: LD_INT 0
5621: PPUSH
5622: PPUSH
// for i = 1 to 8 do
5623: LD_ADDR_VAR 0 2
5627: PUSH
5628: DOUBLE
5629: LD_INT 1
5631: DEC
5632: ST_TO_ADDR
5633: LD_INT 8
5635: PUSH
5636: FOR_TO
5637: IFFALSE 5655
// DoNotAttack ( i , pop ) ;
5639: LD_VAR 0 2
5643: PPUSH
5644: LD_EXP 28
5648: PPUSH
5649: CALL_OW 471
5653: GO 5636
5655: POP
5656: POP
// while IsInUnit ( pop ) > 0 do
5657: LD_EXP 28
5661: PPUSH
5662: CALL_OW 310
5666: PUSH
5667: LD_INT 0
5669: GREATER
5670: IFFALSE 5737
// begin case GetType ( IsInUnit ( pop ) ) of unit_building :
5672: LD_EXP 28
5676: PPUSH
5677: CALL_OW 310
5681: PPUSH
5682: CALL_OW 247
5686: PUSH
5687: LD_INT 3
5689: DOUBLE
5690: EQUAL
5691: IFTRUE 5695
5693: GO 5707
5695: POP
// ComExitBuilding ( pop ) ; unit_vehicle :
5696: LD_EXP 28
5700: PPUSH
5701: CALL_OW 122
5705: GO 5728
5707: LD_INT 2
5709: DOUBLE
5710: EQUAL
5711: IFTRUE 5715
5713: GO 5727
5715: POP
// ComExitVehicle ( pop ) ; end ;
5716: LD_EXP 28
5720: PPUSH
5721: CALL_OW 121
5725: GO 5728
5727: POP
// wait ( 0 0$0.5 ) ;
5728: LD_INT 18
5730: PPUSH
5731: CALL_OW 67
// end ;
5735: GO 5657
// AddComMoveToArea ( pop , bst_2 ) ;
5737: LD_EXP 28
5741: PPUSH
5742: LD_INT 41
5744: PPUSH
5745: CALL_OW 173
// AddComMoveToArea ( pop , bst_3 ) ;
5749: LD_EXP 28
5753: PPUSH
5754: LD_INT 42
5756: PPUSH
5757: CALL_OW 173
// AddComHold ( pop ) ;
5761: LD_EXP 28
5765: PPUSH
5766: CALL_OW 200
// end ;
5770: LD_VAR 0 1
5774: RET
// every 0 0$5 trigger IsInArea ( pop , Exit_area ) do
5775: LD_EXP 28
5779: PPUSH
5780: LD_INT 16
5782: PPUSH
5783: CALL_OW 308
5787: IFFALSE 5801
5789: GO 5791
5791: DISABLE
// begin RemoveUnit ( pop ) ;
5792: LD_EXP 28
5796: PPUSH
5797: CALL_OW 64
// end ;
5801: END
// export function prebarveni_druhe_baze ; var pom , i ; begin
5802: LD_INT 0
5804: PPUSH
5805: PPUSH
5806: PPUSH
// pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You3 ] , [ f_type , unit_building ] ] ) ;
5807: LD_ADDR_VAR 0 2
5811: PUSH
5812: LD_INT 2
5814: PPUSH
5815: LD_INT 22
5817: PUSH
5818: LD_EXP 3
5822: PUSH
5823: EMPTY
5824: LIST
5825: LIST
5826: PUSH
5827: LD_INT 21
5829: PUSH
5830: LD_INT 3
5832: PUSH
5833: EMPTY
5834: LIST
5835: LIST
5836: PUSH
5837: EMPTY
5838: LIST
5839: LIST
5840: PPUSH
5841: CALL_OW 70
5845: ST_TO_ADDR
// for i in pom do
5846: LD_ADDR_VAR 0 3
5850: PUSH
5851: LD_VAR 0 2
5855: PUSH
5856: FOR_IN
5857: IFFALSE 5875
// SetSide ( i , You ) ;
5859: LD_VAR 0 3
5863: PPUSH
5864: LD_EXP 1
5868: PPUSH
5869: CALL_OW 235
5873: GO 5856
5875: POP
5876: POP
// end ;
5877: LD_VAR 0 1
5881: RET
// export function pomoc_pro_omikroni_utok ; var i ; begin
5882: LD_INT 0
5884: PPUSH
5885: PPUSH
// for i in RUSKE_POSILY_NA_OMICRON_LIST do
5886: LD_ADDR_VAR 0 2
5890: PUSH
5891: LD_EXP 56
5895: PUSH
5896: FOR_IN
5897: IFFALSE 5916
// PlaceUnitArea ( i , Enterposil , false ) ;
5899: LD_VAR 0 2
5903: PPUSH
5904: LD_INT 49
5906: PPUSH
5907: LD_INT 0
5909: PPUSH
5910: CALL_OW 49
5914: GO 5896
5916: POP
5917: POP
// ComMoveToArea ( RUSKE_POSILY_NA_OMICRON_LIST , bst_4 ) ;
5918: LD_EXP 56
5922: PPUSH
5923: LD_INT 43
5925: PPUSH
5926: CALL_OW 113
// for i in RUSKE_POSILY_RIDICI_LIST do
5930: LD_ADDR_VAR 0 2
5934: PUSH
5935: LD_EXP 57
5939: PUSH
5940: FOR_IN
5941: IFFALSE 5960
// PlaceUnitArea ( i , Arabi1 , false ) ;
5943: LD_VAR 0 2
5947: PPUSH
5948: LD_INT 12
5950: PPUSH
5951: LD_INT 0
5953: PPUSH
5954: CALL_OW 49
5958: GO 5940
5960: POP
5961: POP
// ComMoveToArea ( RUSKE_POSILY_RIDICI_LIST , bst_1 ) ;
5962: LD_EXP 57
5966: PPUSH
5967: LD_INT 40
5969: PPUSH
5970: CALL_OW 113
// AddComEnterUnit ( RUSKE_POSILY_RIDICI_LIST , RU1_fac ) ;
5974: LD_EXP 57
5978: PPUSH
5979: LD_INT 5
5981: PPUSH
5982: CALL_OW 180
// end ;
5986: LD_VAR 0 1
5990: RET
// every 0 0$1 trigger stav_omikron = 3 and not special_time do
5991: LD_EXP 39
5995: PUSH
5996: LD_INT 3
5998: EQUAL
5999: PUSH
6000: LD_EXP 48
6004: NOT
6005: AND
6006: IFFALSE 6040
6008: GO 6010
6010: DISABLE
// begin disable ( 53 ) ;
6011: LD_INT 53
6013: DISABLE_MARKED
// TTime = 3 3$0 ;
6014: LD_ADDR_LOC 21
6018: PUSH
6019: LD_INT 6300
6021: ST_TO_ADDR
// enable ( 51 ) ;
6022: LD_INT 51
6024: ENABLE_MARKED
// counter_zapnut = true ;
6025: LD_ADDR_LOC 17
6029: PUSH
6030: LD_INT 1
6032: ST_TO_ADDR
// posli_ruske_posily ;
6033: CALL 6543 0 0
// enable ( 3 ) ;
6037: LD_INT 3
6039: ENABLE_MARKED
// end ;
6040: END
// every 0 0$1 trigger stav_omikron = 3 and special_time do
6041: LD_EXP 39
6045: PUSH
6046: LD_INT 3
6048: EQUAL
6049: PUSH
6050: LD_EXP 48
6054: AND
6055: IFFALSE 6089
6057: GO 6059
6059: DISABLE
// begin disable ( 53 ) ;
6060: LD_INT 53
6062: DISABLE_MARKED
// TTime = 2 2$0 ;
6063: LD_ADDR_LOC 21
6067: PUSH
6068: LD_INT 4200
6070: ST_TO_ADDR
// enable ( 51 ) ;
6071: LD_INT 51
6073: ENABLE_MARKED
// counter_zapnut = true ;
6074: LD_ADDR_LOC 17
6078: PUSH
6079: LD_INT 1
6081: ST_TO_ADDR
// posli_ruske_posily ;
6082: CALL 6543 0 0
// enable ( 3 ) ;
6086: LD_INT 3
6088: ENABLE_MARKED
// end ;
6089: END
// every 0 0$3 trigger stav_omikron = 3 do var i , pom , pom1 , pom2 , rpom ; var rusi_enter_new ; var poc ;
6090: LD_EXP 39
6094: PUSH
6095: LD_INT 3
6097: EQUAL
6098: IFFALSE 6295
6100: GO 6102
6102: DISABLE
6103: LD_INT 0
6105: PPUSH
6106: PPUSH
6107: PPUSH
6108: PPUSH
6109: PPUSH
6110: PPUSH
6111: PPUSH
// begin if FilterUnitsInArea ( Om_zone , [ [ f_side , You ] ] ) then
6112: LD_INT 8
6114: PPUSH
6115: LD_INT 22
6117: PUSH
6118: LD_EXP 1
6122: PUSH
6123: EMPTY
6124: LIST
6125: LIST
6126: PUSH
6127: EMPTY
6128: LIST
6129: PPUSH
6130: CALL_OW 70
6134: IFFALSE 6294
// begin rpom = FilterUnitsExceptArea ( Om_pom1 , [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
6136: LD_ADDR_VAR 0 5
6140: PUSH
6141: LD_INT 23
6143: PPUSH
6144: LD_INT 22
6146: PUSH
6147: LD_EXP 1
6151: PUSH
6152: EMPTY
6153: LIST
6154: LIST
6155: PUSH
6156: LD_INT 21
6158: PUSH
6159: LD_INT 1
6161: PUSH
6162: EMPTY
6163: LIST
6164: LIST
6165: PUSH
6166: EMPTY
6167: LIST
6168: LIST
6169: PPUSH
6170: CALL_OW 71
6174: ST_TO_ADDR
// if rpom = 0 then
6175: LD_VAR 0 5
6179: PUSH
6180: LD_INT 0
6182: EQUAL
6183: IFFALSE 6291
// begin disable ( 51 ) ;
6185: LD_INT 51
6187: DISABLE_MARKED
// disable ( 52 ) ;
6188: LD_INT 52
6190: DISABLE_MARKED
// konec_counteru = true ;
6191: LD_ADDR_EXP 45
6195: PUSH
6196: LD_INT 1
6198: ST_TO_ADDR
// poc = 0 ;
6199: LD_ADDR_VAR 0 7
6203: PUSH
6204: LD_INT 0
6206: ST_TO_ADDR
// while FilterUnitsInArea ( Om_zone , [ [ f_side , You2 ] ] ) = 0 and poc < 60 do
6207: LD_INT 8
6209: PPUSH
6210: LD_INT 22
6212: PUSH
6213: LD_EXP 2
6217: PUSH
6218: EMPTY
6219: LIST
6220: LIST
6221: PUSH
6222: EMPTY
6223: LIST
6224: PPUSH
6225: CALL_OW 70
6229: PUSH
6230: LD_INT 0
6232: EQUAL
6233: PUSH
6234: LD_VAR 0 7
6238: PUSH
6239: LD_INT 60
6241: LESS
6242: AND
6243: IFFALSE 6268
// begin wait ( 0 0$1 ) ;
6245: LD_INT 35
6247: PPUSH
6248: CALL_OW 67
// poc = poc + 1 ;
6252: LD_ADDR_VAR 0 7
6256: PUSH
6257: LD_VAR 0 7
6261: PUSH
6262: LD_INT 1
6264: PLUS
6265: ST_TO_ADDR
// end ;
6266: GO 6207
// stav_omikron = 4 ;
6268: LD_ADDR_EXP 39
6272: PUSH
6273: LD_INT 4
6275: ST_TO_ADDR
// dialog_pred_omicronem ;
6276: CALL 13392 0 0
// enable ( 9 ) ;
6280: LD_INT 9
6282: ENABLE_MARKED
// disable ( 3 ) ;
6283: LD_INT 3
6285: DISABLE_MARKED
// enable ( 10 ) ;
6286: LD_INT 10
6288: ENABLE_MARKED
// end else
6289: GO 6292
// enable ;
6291: ENABLE
// end else
6292: GO 6295
// enable ;
6294: ENABLE
// end ;
6295: PPOPN 7
6297: END
// export function CheckVehicles ; var pom , pom1 , pom2 ; begin
6298: LD_INT 0
6300: PPUSH
6301: PPUSH
6302: PPUSH
6303: PPUSH
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
6304: LD_ADDR_VAR 0 2
6308: PUSH
6309: LD_INT 22
6311: PUSH
6312: LD_EXP 1
6316: PUSH
6317: EMPTY
6318: LIST
6319: LIST
6320: PUSH
6321: LD_INT 21
6323: PUSH
6324: LD_INT 2
6326: PUSH
6327: EMPTY
6328: LIST
6329: LIST
6330: PUSH
6331: EMPTY
6332: LIST
6333: LIST
6334: PPUSH
6335: CALL_OW 69
6339: ST_TO_ADDR
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] , [ f_alive ] ] ) ;
6340: LD_ADDR_VAR 0 3
6344: PUSH
6345: LD_INT 22
6347: PUSH
6348: LD_EXP 1
6352: PUSH
6353: EMPTY
6354: LIST
6355: LIST
6356: PUSH
6357: LD_INT 21
6359: PUSH
6360: LD_INT 1
6362: PUSH
6363: EMPTY
6364: LIST
6365: LIST
6366: PUSH
6367: LD_INT 51
6369: PUSH
6370: EMPTY
6371: LIST
6372: PUSH
6373: EMPTY
6374: LIST
6375: LIST
6376: LIST
6377: PPUSH
6378: CALL_OW 69
6382: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Ru2_base , [ [ f_side , You2 ] , [ f_type , unit_vehicle ] ] ) ;
6383: LD_ADDR_VAR 0 4
6387: PUSH
6388: LD_INT 2
6390: PPUSH
6391: LD_INT 22
6393: PUSH
6394: LD_EXP 2
6398: PUSH
6399: EMPTY
6400: LIST
6401: LIST
6402: PUSH
6403: LD_INT 21
6405: PUSH
6406: LD_INT 2
6408: PUSH
6409: EMPTY
6410: LIST
6411: LIST
6412: PUSH
6413: EMPTY
6414: LIST
6415: LIST
6416: PPUSH
6417: CALL_OW 70
6421: ST_TO_ADDR
// pom = pom + pom2 ;
6422: LD_ADDR_VAR 0 2
6426: PUSH
6427: LD_VAR 0 2
6431: PUSH
6432: LD_VAR 0 4
6436: PLUS
6437: ST_TO_ADDR
// if pom < pom1 then
6438: LD_VAR 0 2
6442: PUSH
6443: LD_VAR 0 3
6447: LESS
6448: IFFALSE 6458
// stav_aut_new = 3 ;
6450: LD_ADDR_EXP 46
6454: PUSH
6455: LD_INT 3
6457: ST_TO_ADDR
// if pom = pom1 then
6458: LD_VAR 0 2
6462: PUSH
6463: LD_VAR 0 3
6467: EQUAL
6468: IFFALSE 6478
// stav_aut_new = 2 ;
6470: LD_ADDR_EXP 46
6474: PUSH
6475: LD_INT 2
6477: ST_TO_ADDR
// if pom > pom1 and KurinAddTime = 0 then
6478: LD_VAR 0 2
6482: PUSH
6483: LD_VAR 0 3
6487: GREATER
6488: PUSH
6489: LD_EXP 7
6493: PUSH
6494: LD_INT 0
6496: EQUAL
6497: AND
6498: IFFALSE 6508
// stav_aut_new = 1 ;
6500: LD_ADDR_EXP 46
6504: PUSH
6505: LD_INT 1
6507: ST_TO_ADDR
// if pom >= pom1 and KurinAddTime = 1 then
6508: LD_VAR 0 2
6512: PUSH
6513: LD_VAR 0 3
6517: GREATEREQUAL
6518: PUSH
6519: LD_EXP 7
6523: PUSH
6524: LD_INT 1
6526: EQUAL
6527: AND
6528: IFFALSE 6538
// stav_aut_new = 2 ;
6530: LD_ADDR_EXP 46
6534: PUSH
6535: LD_INT 2
6537: ST_TO_ADDR
// end ;
6538: LD_VAR 0 1
6542: RET
// function posli_ruske_posily ; begin
6543: LD_INT 0
6545: PPUSH
// McMove ( 1 , FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_vehicle ] ] ) , [ [ 109 , 54 ] , [ 102 , 38 ] , [ 90 , 22 ] , [ 54 , 10 ] ] , [ mc_move_dontcapture ] ) ;
6546: LD_INT 1
6548: PPUSH
6549: LD_INT 22
6551: PUSH
6552: LD_INT 6
6554: PUSH
6555: EMPTY
6556: LIST
6557: LIST
6558: PUSH
6559: LD_INT 21
6561: PUSH
6562: LD_INT 2
6564: PUSH
6565: EMPTY
6566: LIST
6567: LIST
6568: PUSH
6569: EMPTY
6570: LIST
6571: LIST
6572: PPUSH
6573: CALL_OW 69
6577: PPUSH
6578: LD_INT 109
6580: PUSH
6581: LD_INT 54
6583: PUSH
6584: EMPTY
6585: LIST
6586: LIST
6587: PUSH
6588: LD_INT 102
6590: PUSH
6591: LD_INT 38
6593: PUSH
6594: EMPTY
6595: LIST
6596: LIST
6597: PUSH
6598: LD_INT 90
6600: PUSH
6601: LD_INT 22
6603: PUSH
6604: EMPTY
6605: LIST
6606: LIST
6607: PUSH
6608: LD_INT 54
6610: PUSH
6611: LD_INT 10
6613: PUSH
6614: EMPTY
6615: LIST
6616: LIST
6617: PUSH
6618: EMPTY
6619: LIST
6620: LIST
6621: LIST
6622: LIST
6623: PPUSH
6624: LD_INT 5
6626: PUSH
6627: EMPTY
6628: LIST
6629: PPUSH
6630: CALL_OW 398
// end ;
6634: LD_VAR 0 1
6638: RET
// every 0 0$7 marked 2 do var i , k , pom ;
6639: GO 6641
6641: DISABLE
6642: LD_INT 0
6644: PPUSH
6645: PPUSH
6646: PPUSH
// begin ComExitBuilding ( RUSKE_POSILY_RIDICI_LIST ) ;
6647: LD_EXP 57
6651: PPUSH
6652: CALL_OW 122
// while FilterUnitsInArea ( RU2_base , [ [ f_side , You2 ] ] ) < RUSKE_POSILY_RIDICI_LIST do
6656: LD_INT 2
6658: PPUSH
6659: LD_INT 22
6661: PUSH
6662: LD_EXP 2
6666: PUSH
6667: EMPTY
6668: LIST
6669: LIST
6670: PUSH
6671: EMPTY
6672: LIST
6673: PPUSH
6674: CALL_OW 70
6678: PUSH
6679: LD_EXP 57
6683: LESS
6684: IFFALSE 6707
// begin ComMoveToArea ( RUSKE_POSILY_RIDICI_LIST , drivers_enter ) ;
6686: LD_EXP 57
6690: PPUSH
6691: LD_INT 47
6693: PPUSH
6694: CALL_OW 113
// wait ( 0 0$1 ) ;
6698: LD_INT 35
6700: PPUSH
6701: CALL_OW 67
// end ;
6705: GO 6656
// pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_type , unit_vehicle ] , [ f_not , [ f_occupied ] ] ] ) ;
6707: LD_ADDR_VAR 0 3
6711: PUSH
6712: LD_INT 2
6714: PPUSH
6715: LD_INT 22
6717: PUSH
6718: LD_EXP 1
6722: PUSH
6723: EMPTY
6724: LIST
6725: LIST
6726: PUSH
6727: LD_INT 21
6729: PUSH
6730: LD_INT 2
6732: PUSH
6733: EMPTY
6734: LIST
6735: LIST
6736: PUSH
6737: LD_INT 3
6739: PUSH
6740: LD_INT 59
6742: PUSH
6743: EMPTY
6744: LIST
6745: PUSH
6746: EMPTY
6747: LIST
6748: LIST
6749: PUSH
6750: EMPTY
6751: LIST
6752: LIST
6753: LIST
6754: PPUSH
6755: CALL_OW 70
6759: ST_TO_ADDR
// if not pom then
6760: LD_VAR 0 3
6764: NOT
6765: IFFALSE 6771
// konec_mise_lhani ;
6767: CALL 1440 0 0
// if pom < RUSKE_POSILY_RIDICI_LIST then
6771: LD_VAR 0 3
6775: PUSH
6776: LD_EXP 57
6780: LESS
6781: IFFALSE 6795
// k := pom else
6783: LD_ADDR_VAR 0 2
6787: PUSH
6788: LD_VAR 0 3
6792: ST_TO_ADDR
6793: GO 6805
// k := RUSKE_POSILY_RIDICI_LIST ;
6795: LD_ADDR_VAR 0 2
6799: PUSH
6800: LD_EXP 57
6804: ST_TO_ADDR
// for i = 1 to k do
6805: LD_ADDR_VAR 0 1
6809: PUSH
6810: DOUBLE
6811: LD_INT 1
6813: DEC
6814: ST_TO_ADDR
6815: LD_VAR 0 2
6819: PUSH
6820: FOR_TO
6821: IFFALSE 6872
// begin ComEnterUnit ( RUSKE_POSILY_RIDICI_LIST [ i ] , pom [ i ] ) ;
6823: LD_EXP 57
6827: PUSH
6828: LD_VAR 0 1
6832: ARRAY
6833: PPUSH
6834: LD_VAR 0 3
6838: PUSH
6839: LD_VAR 0 1
6843: ARRAY
6844: PPUSH
6845: CALL_OW 120
// AddComMoveXY ( RUSKE_POSILY_RIDICI_LIST [ i ] , 60 , 13 ) ;
6849: LD_EXP 57
6853: PUSH
6854: LD_VAR 0 1
6858: ARRAY
6859: PPUSH
6860: LD_INT 60
6862: PPUSH
6863: LD_INT 13
6865: PPUSH
6866: CALL_OW 171
// end ;
6870: GO 6820
6872: POP
6873: POP
// end ;
6874: PPOPN 3
6876: END
// every 0 0$1 marked 3 do
6877: GO 6879
6879: DISABLE
// begin if special_time then
6880: LD_EXP 48
6884: IFFALSE 6895
// wait ( 2 2$0 ) else
6886: LD_INT 4200
6888: PPUSH
6889: CALL_OW 67
6893: GO 6902
// wait ( 3 3$0 ) ;
6895: LD_INT 6300
6897: PPUSH
6898: CALL_OW 67
// if not setkani_om then
6902: LD_EXP 41
6906: NOT
6907: IFFALSE 6945
// begin dialog_upoz ;
6909: CALL 15637 0 0
// TTime = 2 2$0 ;
6913: LD_ADDR_LOC 21
6917: PUSH
6918: LD_INT 4200
6920: ST_TO_ADDR
// disable ( 51 ) ;
6921: LD_INT 51
6923: DISABLE_MARKED
// enable ( 52 ) ;
6924: LD_INT 52
6926: ENABLE_MARKED
// wait ( 2 2$0 ) ;
6927: LD_INT 4200
6929: PPUSH
6930: CALL_OW 67
// if not setkani_om then
6934: LD_EXP 41
6938: NOT
6939: IFFALSE 6945
// konec_pred_omikronem ;
6941: CALL 1459 0 0
// end ; end ;
6945: END
// every 0 0$1 marked 4 do var pom ;
6946: GO 6948
6948: DISABLE
6949: LD_INT 0
6951: PPUSH
// begin wait ( utok_na_omikron - 5 5$0 ) ;
6952: LD_EXP 19
6956: PUSH
6957: LD_INT 10500
6959: MINUS
6960: PPUSH
6961: CALL_OW 67
// pomoc_pro_omikroni_utok ;
6965: CALL 5882 0 0
// wait ( 5 5$0 ) ;
6969: LD_INT 10500
6971: PPUSH
6972: CALL_OW 67
// disable ( 5 ) ;
6976: LD_INT 5
6978: DISABLE_MARKED
// if dialog_probehnul then
6979: LD_LOC 19
6983: IFFALSE 6989
// exit else
6985: GO 7097
6987: GO 6997
// dialog_probehnul := true ;
6989: LD_ADDR_LOC 19
6993: PUSH
6994: LD_INT 1
6996: ST_TO_ADDR
// pom = dialog_otazka_poctu_aut ;
6997: LD_ADDR_VAR 0 1
7001: PUSH
7002: CALL 13098 0 0
7006: ST_TO_ADDR
// case pom of 1 :
7007: LD_VAR 0 1
7011: PUSH
7012: LD_INT 1
7014: DOUBLE
7015: EQUAL
7016: IFTRUE 7020
7018: GO 7042
7020: POP
// begin stav_omikron = 3 ;
7021: LD_ADDR_EXP 39
7025: PUSH
7026: LD_INT 3
7028: ST_TO_ADDR
// stav_aut = 1 ;
7029: LD_ADDR_EXP 38
7033: PUSH
7034: LD_INT 1
7036: ST_TO_ADDR
// enable ( 2 ) ;
7037: LD_INT 2
7039: ENABLE_MARKED
// end ; 2 :
7040: GO 7097
7042: LD_INT 2
7044: DOUBLE
7045: EQUAL
7046: IFTRUE 7050
7048: GO 7069
7050: POP
// begin stav_omikron = 3 ;
7051: LD_ADDR_EXP 39
7055: PUSH
7056: LD_INT 3
7058: ST_TO_ADDR
// stav_aut = 2 ;
7059: LD_ADDR_EXP 38
7063: PUSH
7064: LD_INT 2
7066: ST_TO_ADDR
// end ; 3 :
7067: GO 7097
7069: LD_INT 3
7071: DOUBLE
7072: EQUAL
7073: IFTRUE 7077
7075: GO 7096
7077: POP
// begin stav_omikron = 2 ;
7078: LD_ADDR_EXP 39
7082: PUSH
7083: LD_INT 2
7085: ST_TO_ADDR
// stav_aut = 3 ;
7086: LD_ADDR_EXP 38
7090: PUSH
7091: LD_INT 3
7093: ST_TO_ADDR
// end ; end ;
7094: GO 7097
7096: POP
// end ;
7097: PPOPN 1
7099: END
// every 0 0$17 trigger stav_omikron < 2 marked 5 do var un , veh ;
7100: LD_EXP 39
7104: PUSH
7105: LD_INT 2
7107: LESS
7108: IFFALSE 7340
7110: GO 7112
7112: DISABLE
7113: LD_INT 0
7115: PPUSH
7116: PPUSH
// begin un = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
7117: LD_ADDR_VAR 0 1
7121: PUSH
7122: LD_INT 22
7124: PUSH
7125: LD_EXP 1
7129: PUSH
7130: EMPTY
7131: LIST
7132: LIST
7133: PUSH
7134: LD_INT 21
7136: PUSH
7137: LD_INT 1
7139: PUSH
7140: EMPTY
7141: LIST
7142: LIST
7143: PUSH
7144: EMPTY
7145: LIST
7146: LIST
7147: PPUSH
7148: CALL_OW 69
7152: ST_TO_ADDR
// veh = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
7153: LD_ADDR_VAR 0 2
7157: PUSH
7158: LD_INT 22
7160: PUSH
7161: LD_EXP 1
7165: PUSH
7166: EMPTY
7167: LIST
7168: LIST
7169: PUSH
7170: LD_INT 21
7172: PUSH
7173: LD_INT 2
7175: PUSH
7176: EMPTY
7177: LIST
7178: LIST
7179: PUSH
7180: EMPTY
7181: LIST
7182: LIST
7183: PPUSH
7184: CALL_OW 69
7188: ST_TO_ADDR
// if veh >= ( un + 2 ) then
7189: LD_VAR 0 2
7193: PUSH
7194: LD_VAR 0 1
7198: PUSH
7199: LD_INT 2
7201: PLUS
7202: GREATEREQUAL
7203: IFFALSE 7339
// begin disable ( 4 ) ;
7205: LD_INT 4
7207: DISABLE_MARKED
// pomoc_pro_omikroni_utok ;
7208: CALL 5882 0 0
// if dialog_probehnul then
7212: LD_LOC 19
7216: IFFALSE 7222
// exit else
7218: GO 7340
7220: GO 7230
// dialog_probehnul = true ;
7222: LD_ADDR_LOC 19
7226: PUSH
7227: LD_INT 1
7229: ST_TO_ADDR
// wait ( 0 0$10 ) ;
7230: LD_INT 350
7232: PPUSH
7233: CALL_OW 67
// un = dialog_otazka_poctu_aut ;
7237: LD_ADDR_VAR 0 1
7241: PUSH
7242: CALL 13098 0 0
7246: ST_TO_ADDR
// case un of 1 :
7247: LD_VAR 0 1
7251: PUSH
7252: LD_INT 1
7254: DOUBLE
7255: EQUAL
7256: IFTRUE 7260
7258: GO 7282
7260: POP
// begin stav_omikron = 3 ;
7261: LD_ADDR_EXP 39
7265: PUSH
7266: LD_INT 3
7268: ST_TO_ADDR
// stav_aut = 1 ;
7269: LD_ADDR_EXP 38
7273: PUSH
7274: LD_INT 1
7276: ST_TO_ADDR
// enable ( 2 ) ;
7277: LD_INT 2
7279: ENABLE_MARKED
// end ; 2 :
7280: GO 7337
7282: LD_INT 2
7284: DOUBLE
7285: EQUAL
7286: IFTRUE 7290
7288: GO 7309
7290: POP
// begin stav_omikron = 3 ;
7291: LD_ADDR_EXP 39
7295: PUSH
7296: LD_INT 3
7298: ST_TO_ADDR
// stav_aut = 2 ;
7299: LD_ADDR_EXP 38
7303: PUSH
7304: LD_INT 2
7306: ST_TO_ADDR
// end ; 3 :
7307: GO 7337
7309: LD_INT 3
7311: DOUBLE
7312: EQUAL
7313: IFTRUE 7317
7315: GO 7336
7317: POP
// begin stav_omikron = 2 ;
7318: LD_ADDR_EXP 39
7322: PUSH
7323: LD_INT 2
7325: ST_TO_ADDR
// stav_aut = 3 ;
7326: LD_ADDR_EXP 38
7330: PUSH
7331: LD_INT 3
7333: ST_TO_ADDR
// end ; end ;
7334: GO 7337
7336: POP
// end else
7337: GO 7340
// enable ;
7339: ENABLE
// end ;
7340: PPOPN 2
7342: END
// export function manage_ruske_computery_zpet ; var pom ; begin
7343: LD_INT 0
7345: PPUSH
7346: PPUSH
// disable ( 200 ) ;
7347: LD_INT 200
7349: DISABLE_MARKED
// disable ( 201 ) ;
7350: LD_INT 201
7352: DISABLE_MARKED
// disable ( 202 ) ;
7353: LD_INT 202
7355: DISABLE_MARKED
// disable ( 203 ) ;
7356: LD_INT 203
7358: DISABLE_MARKED
// pom = FilterUnitsInArea ( Am_base , [ [ F_side , You2 ] ] ) ;
7359: LD_ADDR_VAR 0 2
7363: PUSH
7364: LD_INT 6
7366: PPUSH
7367: LD_INT 22
7369: PUSH
7370: LD_EXP 2
7374: PUSH
7375: EMPTY
7376: LIST
7377: LIST
7378: PUSH
7379: EMPTY
7380: LIST
7381: PPUSH
7382: CALL_OW 70
7386: ST_TO_ADDR
// McMove ( 2 , pom , [ [ 42 , 14 ] , [ 60 , 15 ] , [ 95 , 21 ] , [ 100 , 34 ] ] , [ mc_move_agressive , mc_move_wait , mc_move_waitwp ] ) ;
7387: LD_INT 2
7389: PPUSH
7390: LD_VAR 0 2
7394: PPUSH
7395: LD_INT 42
7397: PUSH
7398: LD_INT 14
7400: PUSH
7401: EMPTY
7402: LIST
7403: LIST
7404: PUSH
7405: LD_INT 60
7407: PUSH
7408: LD_INT 15
7410: PUSH
7411: EMPTY
7412: LIST
7413: LIST
7414: PUSH
7415: LD_INT 95
7417: PUSH
7418: LD_INT 21
7420: PUSH
7421: EMPTY
7422: LIST
7423: LIST
7424: PUSH
7425: LD_INT 100
7427: PUSH
7428: LD_INT 34
7430: PUSH
7431: EMPTY
7432: LIST
7433: LIST
7434: PUSH
7435: EMPTY
7436: LIST
7437: LIST
7438: LIST
7439: LIST
7440: PPUSH
7441: LD_INT 6
7443: PUSH
7444: LD_INT 1
7446: PUSH
7447: LD_INT 3
7449: PUSH
7450: EMPTY
7451: LIST
7452: LIST
7453: LIST
7454: PPUSH
7455: CALL_OW 398
// enable ( 5 ) ;
7459: LD_INT 5
7461: ENABLE_MARKED
// R_comp = pom ;
7462: LD_ADDR_LOC 18
7466: PUSH
7467: LD_VAR 0 2
7471: ST_TO_ADDR
// end ;
7472: LD_VAR 0 1
7476: RET
// every 0 0$15 marked 5 do
7477: GO 7479
7479: DISABLE
// begin wait ( 1 1$0 ) ;
7480: LD_INT 2100
7482: PPUSH
7483: CALL_OW 67
// McMove ( 1 , R_comp , [ [ 110 , 59 ] , [ 129 , 75 ] ] , [ mc_move_agressive , mc_move_wait , mc_move_waitwp ] ) ;
7487: LD_INT 1
7489: PPUSH
7490: LD_LOC 18
7494: PPUSH
7495: LD_INT 110
7497: PUSH
7498: LD_INT 59
7500: PUSH
7501: EMPTY
7502: LIST
7503: LIST
7504: PUSH
7505: LD_INT 129
7507: PUSH
7508: LD_INT 75
7510: PUSH
7511: EMPTY
7512: LIST
7513: LIST
7514: PUSH
7515: EMPTY
7516: LIST
7517: LIST
7518: PPUSH
7519: LD_INT 6
7521: PUSH
7522: LD_INT 1
7524: PUSH
7525: LD_INT 3
7527: PUSH
7528: EMPTY
7529: LIST
7530: LIST
7531: LIST
7532: PPUSH
7533: CALL_OW 398
// end ;
7537: END
// function split_ruske_jednotky ( jedn ) ; var i , pom ; var p1 , p2 , p3 , p4 ; var a ; begin
7538: LD_INT 0
7540: PPUSH
7541: PPUSH
7542: PPUSH
7543: PPUSH
7544: PPUSH
7545: PPUSH
7546: PPUSH
7547: PPUSH
// p1 = [ ] ;
7548: LD_ADDR_VAR 0 5
7552: PUSH
7553: EMPTY
7554: ST_TO_ADDR
// p2 = [ ] ;
7555: LD_ADDR_VAR 0 6
7559: PUSH
7560: EMPTY
7561: ST_TO_ADDR
// p3 = [ ] ;
7562: LD_ADDR_VAR 0 7
7566: PUSH
7567: EMPTY
7568: ST_TO_ADDR
// p4 = [ ] ;
7569: LD_ADDR_VAR 0 8
7573: PUSH
7574: EMPTY
7575: ST_TO_ADDR
// for i in jedn do
7576: LD_ADDR_VAR 0 3
7580: PUSH
7581: LD_VAR 0 1
7585: PUSH
7586: FOR_IN
7587: IFFALSE 7721
// begin pom = Rand ( 1 , 4 ) ;
7589: LD_ADDR_VAR 0 4
7593: PUSH
7594: LD_INT 1
7596: PPUSH
7597: LD_INT 4
7599: PPUSH
7600: CALL_OW 12
7604: ST_TO_ADDR
// case pom of 1 :
7605: LD_VAR 0 4
7609: PUSH
7610: LD_INT 1
7612: DOUBLE
7613: EQUAL
7614: IFTRUE 7618
7616: GO 7637
7618: POP
// p1 = p1 ^ i ; 2 :
7619: LD_ADDR_VAR 0 5
7623: PUSH
7624: LD_VAR 0 5
7628: PUSH
7629: LD_VAR 0 3
7633: ADD
7634: ST_TO_ADDR
7635: GO 7719
7637: LD_INT 2
7639: DOUBLE
7640: EQUAL
7641: IFTRUE 7645
7643: GO 7664
7645: POP
// p2 = p2 ^ i ; 3 :
7646: LD_ADDR_VAR 0 6
7650: PUSH
7651: LD_VAR 0 6
7655: PUSH
7656: LD_VAR 0 3
7660: ADD
7661: ST_TO_ADDR
7662: GO 7719
7664: LD_INT 3
7666: DOUBLE
7667: EQUAL
7668: IFTRUE 7672
7670: GO 7691
7672: POP
// p3 = p3 ^ i ; 4 :
7673: LD_ADDR_VAR 0 7
7677: PUSH
7678: LD_VAR 0 7
7682: PUSH
7683: LD_VAR 0 3
7687: ADD
7688: ST_TO_ADDR
7689: GO 7719
7691: LD_INT 4
7693: DOUBLE
7694: EQUAL
7695: IFTRUE 7699
7697: GO 7718
7699: POP
// p4 = p4 ^ i ; end ;
7700: LD_ADDR_VAR 0 8
7704: PUSH
7705: LD_VAR 0 8
7709: PUSH
7710: LD_VAR 0 3
7714: ADD
7715: ST_TO_ADDR
7716: GO 7719
7718: POP
// end ;
7719: GO 7586
7721: POP
7722: POP
// a = [ p1 , p2 , p3 , p4 ] ;
7723: LD_ADDR_VAR 0 9
7727: PUSH
7728: LD_VAR 0 5
7732: PUSH
7733: LD_VAR 0 6
7737: PUSH
7738: LD_VAR 0 7
7742: PUSH
7743: LD_VAR 0 8
7747: PUSH
7748: EMPTY
7749: LIST
7750: LIST
7751: LIST
7752: LIST
7753: ST_TO_ADDR
// result := a ;
7754: LD_ADDR_VAR 0 2
7758: PUSH
7759: LD_VAR 0 9
7763: ST_TO_ADDR
// end ;
7764: LD_VAR 0 2
7768: RET
// every 0 0$1 marked 6 do var pom , i ;
7769: GO 7771
7771: DISABLE
7772: LD_INT 0
7774: PPUSH
7775: PPUSH
// begin pom = FilterUnitsInArea ( RU_odber , [ [ f_side , You2 ] ] ) ;
7776: LD_ADDR_VAR 0 1
7780: PUSH
7781: LD_INT 27
7783: PPUSH
7784: LD_INT 22
7786: PUSH
7787: LD_EXP 2
7791: PUSH
7792: EMPTY
7793: LIST
7794: LIST
7795: PUSH
7796: EMPTY
7797: LIST
7798: PPUSH
7799: CALL_OW 70
7803: ST_TO_ADDR
// if pom > 0 then
7804: LD_VAR 0 1
7808: PUSH
7809: LD_INT 0
7811: GREATER
7812: IFFALSE 7856
// begin Rusi_utekli = Rusi_utekli ^ pom ;
7814: LD_ADDR_EXP 42
7818: PUSH
7819: LD_EXP 42
7823: PUSH
7824: LD_VAR 0 1
7828: ADD
7829: ST_TO_ADDR
// for i in pom do
7830: LD_ADDR_VAR 0 2
7834: PUSH
7835: LD_VAR 0 1
7839: PUSH
7840: FOR_IN
7841: IFFALSE 7854
// RemoveUnit ( i ) ;
7843: LD_VAR 0 2
7847: PPUSH
7848: CALL_OW 64
7852: GO 7840
7854: POP
7855: POP
// end ; enable ;
7856: ENABLE
// end ;
7857: PPOPN 2
7859: END
// every 25 25$0 do var i , pom ;
7860: GO 7862
7862: DISABLE
7863: LD_INT 0
7865: PPUSH
7866: PPUSH
// begin for i in RU_posily_na_utek do
7867: LD_ADDR_VAR 0 1
7871: PUSH
7872: LD_EXP 58
7876: PUSH
7877: FOR_IN
7878: IFFALSE 7897
// PlaceUnitArea ( i , Ru_posily , false ) ;
7880: LD_VAR 0 1
7884: PPUSH
7885: LD_INT 28
7887: PPUSH
7888: LD_INT 0
7890: PPUSH
7891: CALL_OW 49
7895: GO 7877
7897: POP
7898: POP
// pom = UnitFilter ( RU_posily_na_utek , [ [ f_type , unit_vehicle ] ] ) ;
7899: LD_ADDR_VAR 0 2
7903: PUSH
7904: LD_EXP 58
7908: PPUSH
7909: LD_INT 21
7911: PUSH
7912: LD_INT 2
7914: PUSH
7915: EMPTY
7916: LIST
7917: LIST
7918: PUSH
7919: EMPTY
7920: LIST
7921: PPUSH
7922: CALL_OW 72
7926: ST_TO_ADDR
// ComMoveXY ( pom , 155 , 93 ) ;
7927: LD_VAR 0 2
7931: PPUSH
7932: LD_INT 155
7934: PPUSH
7935: LD_INT 93
7937: PPUSH
7938: CALL_OW 111
// Rusi_save = pom ;
7942: LD_ADDR_EXP 43
7946: PUSH
7947: LD_VAR 0 2
7951: ST_TO_ADDR
// pom = UnitFilter ( RU_posily_na_utek , [ [ f_class , class_soldier ] ] ) ;
7952: LD_ADDR_VAR 0 2
7956: PUSH
7957: LD_EXP 58
7961: PPUSH
7962: LD_INT 25
7964: PUSH
7965: LD_INT 1
7967: PUSH
7968: EMPTY
7969: LIST
7970: LIST
7971: PUSH
7972: EMPTY
7973: LIST
7974: PPUSH
7975: CALL_OW 72
7979: ST_TO_ADDR
// ComEnterUnit ( pom , RU1_bar2 ) ;
7980: LD_VAR 0 2
7984: PPUSH
7985: LD_INT 17
7987: PPUSH
7988: CALL_OW 120
// pom = UnitFilter ( RU_posily_na_utek , [ [ f_class , class_mechanic ] ] ) ;
7992: LD_ADDR_VAR 0 2
7996: PUSH
7997: LD_EXP 58
8001: PPUSH
8002: LD_INT 25
8004: PUSH
8005: LD_INT 3
8007: PUSH
8008: EMPTY
8009: LIST
8010: LIST
8011: PUSH
8012: EMPTY
8013: LIST
8014: PPUSH
8015: CALL_OW 72
8019: ST_TO_ADDR
// ComEnterUnit ( pom , RU1_fac ) ;
8020: LD_VAR 0 2
8024: PPUSH
8025: LD_INT 5
8027: PPUSH
8028: CALL_OW 120
// pom = UnitFilter ( RU_posily_na_utek , [ [ f_class , class_engineer ] ] ) ;
8032: LD_ADDR_VAR 0 2
8036: PUSH
8037: LD_EXP 58
8041: PPUSH
8042: LD_INT 25
8044: PUSH
8045: LD_INT 2
8047: PUSH
8048: EMPTY
8049: LIST
8050: LIST
8051: PUSH
8052: EMPTY
8053: LIST
8054: PPUSH
8055: CALL_OW 72
8059: ST_TO_ADDR
// ComEnterUnit ( pom , RU1_dep ) ;
8060: LD_VAR 0 2
8064: PPUSH
8065: LD_INT 1
8067: PPUSH
8068: CALL_OW 120
// Rusi_save = Rusi_save ^ [ RU1_sol1 , RU1_me3 , Ru1_sci2 , RU1_sci5 , RU1_sci3 , RU1_sol5 , RU1_eng1 ] ;
8072: LD_ADDR_EXP 43
8076: PUSH
8077: LD_EXP 43
8081: PUSH
8082: LD_INT 52
8084: PUSH
8085: LD_INT 51
8087: PUSH
8088: LD_INT 45
8090: PUSH
8091: LD_INT 48
8093: PUSH
8094: LD_INT 46
8096: PUSH
8097: LD_INT 55
8099: PUSH
8100: LD_INT 57
8102: PUSH
8103: EMPTY
8104: LIST
8105: LIST
8106: LIST
8107: LIST
8108: LIST
8109: LIST
8110: LIST
8111: ADD
8112: ST_TO_ADDR
// end ;
8113: PPOPN 2
8115: END
// export function posli_rusy_pryc ; var pom ; begin
8116: LD_INT 0
8118: PPUSH
8119: PPUSH
// SetLives ( Rusi_save , 800 ) ;
8120: LD_EXP 43
8124: PPUSH
8125: LD_INT 800
8127: PPUSH
8128: CALL_OW 234
// pom = split_ruske_jednotky ( Rusi_save ) ;
8132: LD_ADDR_VAR 0 2
8136: PUSH
8137: LD_EXP 43
8141: PPUSH
8142: CALL 7538 0 1
8146: ST_TO_ADDR
// ComExitBuilding ( Rusi_save ) ;
8147: LD_EXP 43
8151: PPUSH
8152: CALL_OW 122
// AddComMoveXY ( pom [ 1 ] , 110 , 45 ) ;
8156: LD_VAR 0 2
8160: PUSH
8161: LD_INT 1
8163: ARRAY
8164: PPUSH
8165: LD_INT 110
8167: PPUSH
8168: LD_INT 45
8170: PPUSH
8171: CALL_OW 171
// AddComMoveXY ( pom [ 2 ] , 103 , 60 ) ;
8175: LD_VAR 0 2
8179: PUSH
8180: LD_INT 2
8182: ARRAY
8183: PPUSH
8184: LD_INT 103
8186: PPUSH
8187: LD_INT 60
8189: PPUSH
8190: CALL_OW 171
// AddComMoveXY ( pom [ 3 ] , 76 , 80 ) ;
8194: LD_VAR 0 2
8198: PUSH
8199: LD_INT 3
8201: ARRAY
8202: PPUSH
8203: LD_INT 76
8205: PPUSH
8206: LD_INT 80
8208: PPUSH
8209: CALL_OW 171
// AddComMoveXY ( pom [ 4 ] , 53 , 1 ) ;
8213: LD_VAR 0 2
8217: PUSH
8218: LD_INT 4
8220: ARRAY
8221: PPUSH
8222: LD_INT 53
8224: PPUSH
8225: LD_INT 1
8227: PPUSH
8228: CALL_OW 171
// end ;
8232: LD_VAR 0 1
8236: RET
// export function posli_lidi_zpet_omicron ; var pom ; var pom1 , i ; begin
8237: LD_INT 0
8239: PPUSH
8240: PPUSH
8241: PPUSH
8242: PPUSH
// pom1 = [ ] ;
8243: LD_ADDR_VAR 0 3
8247: PUSH
8248: EMPTY
8249: ST_TO_ADDR
// pom = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_building ] , [ f_side , You ] ] ) ;
8250: LD_ADDR_VAR 0 2
8254: PUSH
8255: LD_INT 20
8257: PPUSH
8258: LD_INT 21
8260: PUSH
8261: LD_INT 3
8263: PUSH
8264: EMPTY
8265: LIST
8266: LIST
8267: PUSH
8268: LD_INT 22
8270: PUSH
8271: LD_EXP 1
8275: PUSH
8276: EMPTY
8277: LIST
8278: LIST
8279: PUSH
8280: EMPTY
8281: LIST
8282: LIST
8283: PPUSH
8284: CALL_OW 70
8288: ST_TO_ADDR
// for i in pom do
8289: LD_ADDR_VAR 0 4
8293: PUSH
8294: LD_VAR 0 2
8298: PUSH
8299: FOR_IN
8300: IFFALSE 8325
// pom1 = pom1 ^ UnitsInside ( i ) ;
8302: LD_ADDR_VAR 0 3
8306: PUSH
8307: LD_VAR 0 3
8311: PUSH
8312: LD_VAR 0 4
8316: PPUSH
8317: CALL_OW 313
8321: ADD
8322: ST_TO_ADDR
8323: GO 8299
8325: POP
8326: POP
// ComExitBuilding ( pom1 ) ;
8327: LD_VAR 0 3
8331: PPUSH
8332: CALL_OW 122
// pom = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_human ] , [ f_side , You ] ] ) ;
8336: LD_ADDR_VAR 0 2
8340: PUSH
8341: LD_INT 20
8343: PPUSH
8344: LD_INT 21
8346: PUSH
8347: LD_INT 1
8349: PUSH
8350: EMPTY
8351: LIST
8352: LIST
8353: PUSH
8354: LD_INT 22
8356: PUSH
8357: LD_EXP 1
8361: PUSH
8362: EMPTY
8363: LIST
8364: LIST
8365: PUSH
8366: EMPTY
8367: LIST
8368: LIST
8369: PPUSH
8370: CALL_OW 70
8374: ST_TO_ADDR
// pom1 = pom1 ^ pom ;
8375: LD_ADDR_VAR 0 3
8379: PUSH
8380: LD_VAR 0 3
8384: PUSH
8385: LD_VAR 0 2
8389: ADD
8390: ST_TO_ADDR
// pom = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_vehicle ] , [ f_side , You ] ] ) ;
8391: LD_ADDR_VAR 0 2
8395: PUSH
8396: LD_INT 20
8398: PPUSH
8399: LD_INT 21
8401: PUSH
8402: LD_INT 2
8404: PUSH
8405: EMPTY
8406: LIST
8407: LIST
8408: PUSH
8409: LD_INT 22
8411: PUSH
8412: LD_EXP 1
8416: PUSH
8417: EMPTY
8418: LIST
8419: LIST
8420: PUSH
8421: EMPTY
8422: LIST
8423: LIST
8424: PPUSH
8425: CALL_OW 70
8429: ST_TO_ADDR
// for i in pom do
8430: LD_ADDR_VAR 0 4
8434: PUSH
8435: LD_VAR 0 2
8439: PUSH
8440: FOR_IN
8441: IFFALSE 8493
// begin pom1 = pom ^ i ;
8443: LD_ADDR_VAR 0 3
8447: PUSH
8448: LD_VAR 0 2
8452: PUSH
8453: LD_VAR 0 4
8457: ADD
8458: ST_TO_ADDR
// if IsDrivenBy ( i ) then
8459: LD_VAR 0 4
8463: PPUSH
8464: CALL_OW 311
8468: IFFALSE 8491
// pom1 = pom1 ^ IsDrivenBy ( i ) ;
8470: LD_ADDR_VAR 0 3
8474: PUSH
8475: LD_VAR 0 3
8479: PUSH
8480: LD_VAR 0 4
8484: PPUSH
8485: CALL_OW 311
8489: ADD
8490: ST_TO_ADDR
// end ;
8491: GO 8440
8493: POP
8494: POP
// SetSide ( pom1 , You3 ) ;
8495: LD_VAR 0 3
8499: PPUSH
8500: LD_EXP 3
8504: PPUSH
8505: CALL_OW 235
// pom = FilterUnitsInArea ( Om_ven_1 , [ [ f_side , You3 ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
8509: LD_ADDR_VAR 0 2
8513: PUSH
8514: LD_INT 29
8516: PPUSH
8517: LD_INT 22
8519: PUSH
8520: LD_EXP 3
8524: PUSH
8525: EMPTY
8526: LIST
8527: LIST
8528: PUSH
8529: LD_INT 2
8531: PUSH
8532: LD_INT 21
8534: PUSH
8535: LD_INT 2
8537: PUSH
8538: EMPTY
8539: LIST
8540: LIST
8541: PUSH
8542: LD_INT 21
8544: PUSH
8545: LD_INT 1
8547: PUSH
8548: EMPTY
8549: LIST
8550: LIST
8551: PUSH
8552: EMPTY
8553: LIST
8554: LIST
8555: LIST
8556: PUSH
8557: EMPTY
8558: LIST
8559: LIST
8560: PPUSH
8561: CALL_OW 70
8565: ST_TO_ADDR
// ComMoveXY ( pom , 79 , 16 ) ;
8566: LD_VAR 0 2
8570: PPUSH
8571: LD_INT 79
8573: PPUSH
8574: LD_INT 16
8576: PPUSH
8577: CALL_OW 111
// pom = FilterUnitsInArea ( Om_ven_2 , [ [ f_side , You3 ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
8581: LD_ADDR_VAR 0 2
8585: PUSH
8586: LD_INT 30
8588: PPUSH
8589: LD_INT 22
8591: PUSH
8592: LD_EXP 3
8596: PUSH
8597: EMPTY
8598: LIST
8599: LIST
8600: PUSH
8601: LD_INT 2
8603: PUSH
8604: LD_INT 21
8606: PUSH
8607: LD_INT 2
8609: PUSH
8610: EMPTY
8611: LIST
8612: LIST
8613: PUSH
8614: LD_INT 21
8616: PUSH
8617: LD_INT 1
8619: PUSH
8620: EMPTY
8621: LIST
8622: LIST
8623: PUSH
8624: EMPTY
8625: LIST
8626: LIST
8627: LIST
8628: PUSH
8629: EMPTY
8630: LIST
8631: LIST
8632: PPUSH
8633: CALL_OW 70
8637: ST_TO_ADDR
// ComMoveXY ( pom , 67 , 40 ) ;
8638: LD_VAR 0 2
8642: PPUSH
8643: LD_INT 67
8645: PPUSH
8646: LD_INT 40
8648: PPUSH
8649: CALL_OW 111
// pom = FilterUnitsInArea ( Om_ven_3 , [ [ f_side , You3 ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
8653: LD_ADDR_VAR 0 2
8657: PUSH
8658: LD_INT 31
8660: PPUSH
8661: LD_INT 22
8663: PUSH
8664: LD_EXP 3
8668: PUSH
8669: EMPTY
8670: LIST
8671: LIST
8672: PUSH
8673: LD_INT 2
8675: PUSH
8676: LD_INT 21
8678: PUSH
8679: LD_INT 2
8681: PUSH
8682: EMPTY
8683: LIST
8684: LIST
8685: PUSH
8686: LD_INT 21
8688: PUSH
8689: LD_INT 1
8691: PUSH
8692: EMPTY
8693: LIST
8694: LIST
8695: PUSH
8696: EMPTY
8697: LIST
8698: LIST
8699: LIST
8700: PUSH
8701: EMPTY
8702: LIST
8703: LIST
8704: PPUSH
8705: CALL_OW 70
8709: ST_TO_ADDR
// ComMoveXY ( pom , 58 , 52 ) ;
8710: LD_VAR 0 2
8714: PPUSH
8715: LD_INT 58
8717: PPUSH
8718: LD_INT 52
8720: PPUSH
8721: CALL_OW 111
// end ;
8725: LD_VAR 0 1
8729: RET
// export function get_lidi_popov_area ; var pom , i ; var drv ; var a ; begin
8730: LD_INT 0
8732: PPUSH
8733: PPUSH
8734: PPUSH
8735: PPUSH
8736: PPUSH
// a = [ ] ;
8737: LD_ADDR_VAR 0 5
8741: PUSH
8742: EMPTY
8743: ST_TO_ADDR
// pom = FilterUnitsInArea ( Pop_area , [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
8744: LD_ADDR_VAR 0 2
8748: PUSH
8749: LD_INT 15
8751: PPUSH
8752: LD_INT 22
8754: PUSH
8755: LD_EXP 1
8759: PUSH
8760: EMPTY
8761: LIST
8762: LIST
8763: PUSH
8764: LD_INT 21
8766: PUSH
8767: LD_INT 1
8769: PUSH
8770: EMPTY
8771: LIST
8772: LIST
8773: PUSH
8774: EMPTY
8775: LIST
8776: LIST
8777: PPUSH
8778: CALL_OW 70
8782: ST_TO_ADDR
// a = pom ;
8783: LD_ADDR_VAR 0 5
8787: PUSH
8788: LD_VAR 0 2
8792: ST_TO_ADDR
// pom = FilterUnitsInArea ( Pop_area , [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
8793: LD_ADDR_VAR 0 2
8797: PUSH
8798: LD_INT 15
8800: PPUSH
8801: LD_INT 22
8803: PUSH
8804: LD_EXP 1
8808: PUSH
8809: EMPTY
8810: LIST
8811: LIST
8812: PUSH
8813: LD_INT 21
8815: PUSH
8816: LD_INT 2
8818: PUSH
8819: EMPTY
8820: LIST
8821: LIST
8822: PUSH
8823: EMPTY
8824: LIST
8825: LIST
8826: PPUSH
8827: CALL_OW 70
8831: ST_TO_ADDR
// for i in pom do
8832: LD_ADDR_VAR 0 3
8836: PUSH
8837: LD_VAR 0 2
8841: PUSH
8842: FOR_IN
8843: IFFALSE 8901
// begin drv = IsDrivenBy ( i ) ;
8845: LD_ADDR_VAR 0 4
8849: PUSH
8850: LD_VAR 0 3
8854: PPUSH
8855: CALL_OW 311
8859: ST_TO_ADDR
// if ( not ( drv in a ) ) and ( drv <> 0 ) then
8860: LD_VAR 0 4
8864: PUSH
8865: LD_VAR 0 5
8869: IN
8870: NOT
8871: PUSH
8872: LD_VAR 0 4
8876: PUSH
8877: LD_INT 0
8879: NONEQUAL
8880: AND
8881: IFFALSE 8899
// a = a ^ drv ;
8883: LD_ADDR_VAR 0 5
8887: PUSH
8888: LD_VAR 0 5
8892: PUSH
8893: LD_VAR 0 4
8897: ADD
8898: ST_TO_ADDR
// end ;
8899: GO 8842
8901: POP
8902: POP
// result := a ;
8903: LD_ADDR_VAR 0 1
8907: PUSH
8908: LD_VAR 0 5
8912: ST_TO_ADDR
// end ;
8913: LD_VAR 0 1
8917: RET
// export function totalni_ukonceni_mise_v_ingame_videu ; var pom ; begin
8918: LD_INT 0
8920: PPUSH
8921: PPUSH
// InGameOn ;
8922: CALL_OW 8
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
8926: LD_ADDR_VAR 0 2
8930: PUSH
8931: LD_INT 22
8933: PUSH
8934: LD_EXP 1
8938: PUSH
8939: EMPTY
8940: LIST
8941: LIST
8942: PUSH
8943: LD_INT 2
8945: PUSH
8946: LD_INT 21
8948: PUSH
8949: LD_INT 2
8951: PUSH
8952: EMPTY
8953: LIST
8954: LIST
8955: PUSH
8956: LD_INT 21
8958: PUSH
8959: LD_INT 1
8961: PUSH
8962: EMPTY
8963: LIST
8964: LIST
8965: PUSH
8966: EMPTY
8967: LIST
8968: LIST
8969: LIST
8970: PUSH
8971: EMPTY
8972: LIST
8973: LIST
8974: PPUSH
8975: CALL_OW 69
8979: ST_TO_ADDR
// McMove ( 10 , pom , [ [ 108 , 70 ] , [ 77 , 65 ] , [ 53 , 63 ] , [ 40 , 64 ] , [ 51 , 97 ] ] , [ mc_no_stop , mc_move_dontcapture ] ) ;
8980: LD_INT 10
8982: PPUSH
8983: LD_VAR 0 2
8987: PPUSH
8988: LD_INT 108
8990: PUSH
8991: LD_INT 70
8993: PUSH
8994: EMPTY
8995: LIST
8996: LIST
8997: PUSH
8998: LD_INT 77
9000: PUSH
9001: LD_INT 65
9003: PUSH
9004: EMPTY
9005: LIST
9006: LIST
9007: PUSH
9008: LD_INT 53
9010: PUSH
9011: LD_INT 63
9013: PUSH
9014: EMPTY
9015: LIST
9016: LIST
9017: PUSH
9018: LD_INT 40
9020: PUSH
9021: LD_INT 64
9023: PUSH
9024: EMPTY
9025: LIST
9026: LIST
9027: PUSH
9028: LD_INT 51
9030: PUSH
9031: LD_INT 97
9033: PUSH
9034: EMPTY
9035: LIST
9036: LIST
9037: PUSH
9038: EMPTY
9039: LIST
9040: LIST
9041: LIST
9042: LIST
9043: LIST
9044: PPUSH
9045: LD_INT 10
9047: PUSH
9048: LD_INT 5
9050: PUSH
9051: EMPTY
9052: LIST
9053: LIST
9054: PPUSH
9055: CALL_OW 398
// pom = FilterAllUnits ( [ [ f_side , You2 ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
9059: LD_ADDR_VAR 0 2
9063: PUSH
9064: LD_INT 22
9066: PUSH
9067: LD_EXP 2
9071: PUSH
9072: EMPTY
9073: LIST
9074: LIST
9075: PUSH
9076: LD_INT 2
9078: PUSH
9079: LD_INT 21
9081: PUSH
9082: LD_INT 2
9084: PUSH
9085: EMPTY
9086: LIST
9087: LIST
9088: PUSH
9089: LD_INT 21
9091: PUSH
9092: LD_INT 1
9094: PUSH
9095: EMPTY
9096: LIST
9097: LIST
9098: PUSH
9099: EMPTY
9100: LIST
9101: LIST
9102: LIST
9103: PUSH
9104: EMPTY
9105: LIST
9106: LIST
9107: PPUSH
9108: CALL_OW 69
9112: ST_TO_ADDR
// McMove ( 10 , pom , [ [ 108 , 70 ] , [ 77 , 65 ] , [ 53 , 63 ] , [ 40 , 64 ] , [ 51 , 97 ] ] , [ mc_no_stop , mc_move_dontcapture ] ) ;
9113: LD_INT 10
9115: PPUSH
9116: LD_VAR 0 2
9120: PPUSH
9121: LD_INT 108
9123: PUSH
9124: LD_INT 70
9126: PUSH
9127: EMPTY
9128: LIST
9129: LIST
9130: PUSH
9131: LD_INT 77
9133: PUSH
9134: LD_INT 65
9136: PUSH
9137: EMPTY
9138: LIST
9139: LIST
9140: PUSH
9141: LD_INT 53
9143: PUSH
9144: LD_INT 63
9146: PUSH
9147: EMPTY
9148: LIST
9149: LIST
9150: PUSH
9151: LD_INT 40
9153: PUSH
9154: LD_INT 64
9156: PUSH
9157: EMPTY
9158: LIST
9159: LIST
9160: PUSH
9161: LD_INT 51
9163: PUSH
9164: LD_INT 97
9166: PUSH
9167: EMPTY
9168: LIST
9169: LIST
9170: PUSH
9171: EMPTY
9172: LIST
9173: LIST
9174: LIST
9175: LIST
9176: LIST
9177: PPUSH
9178: LD_INT 10
9180: PUSH
9181: LD_INT 5
9183: PUSH
9184: EMPTY
9185: LIST
9186: LIST
9187: PPUSH
9188: CALL_OW 398
// enable ( 7 ) ;
9192: LD_INT 7
9194: ENABLE_MARKED
// wait ( 0 0$10 ) ;
9195: LD_INT 350
9197: PPUSH
9198: CALL_OW 67
// InGameOff ;
9202: CALL_OW 9
// konec_mise ;
9206: CALL 1489 0 0
// end ;
9210: LD_VAR 0 1
9214: RET
// export function schovej_kurina ; begin
9215: LD_INT 0
9217: PPUSH
// ComEnterUnit ( kur , RU1_dep ) ;
9218: LD_EXP 27
9222: PPUSH
9223: LD_INT 1
9225: PPUSH
9226: CALL_OW 120
// end ;
9230: LD_VAR 0 1
9234: RET
// export function posli_kurina_na_smrt ; begin
9235: LD_INT 0
9237: PPUSH
// ComExitBuilding ( kur ) ;
9238: LD_EXP 27
9242: PPUSH
9243: CALL_OW 122
// end ;
9247: LD_VAR 0 1
9251: RET
// every 0 0$2 do var pom ; var i ;
9252: GO 9254
9254: DISABLE
9255: LD_INT 0
9257: PPUSH
9258: PPUSH
// begin pom = FilterUnitsExceptArea ( Om_ven , [ [ f_side , You3 ] ] ) ;
9259: LD_ADDR_VAR 0 1
9263: PUSH
9264: LD_INT 20
9266: PPUSH
9267: LD_INT 22
9269: PUSH
9270: LD_EXP 3
9274: PUSH
9275: EMPTY
9276: LIST
9277: LIST
9278: PUSH
9279: EMPTY
9280: LIST
9281: PPUSH
9282: CALL_OW 71
9286: ST_TO_ADDR
// for i in pom do
9287: LD_ADDR_VAR 0 2
9291: PUSH
9292: LD_VAR 0 1
9296: PUSH
9297: FOR_IN
9298: IFFALSE 9361
// begin if GetType ( i ) = unit_vehicle then
9300: LD_VAR 0 2
9304: PPUSH
9305: CALL_OW 247
9309: PUSH
9310: LD_INT 2
9312: EQUAL
9313: IFFALSE 9345
// if IsDrivenBy ( i ) then
9315: LD_VAR 0 2
9319: PPUSH
9320: CALL_OW 311
9324: IFFALSE 9345
// SetSide ( IsDrivenBy ( i ) , You ) ;
9326: LD_VAR 0 2
9330: PPUSH
9331: CALL_OW 311
9335: PPUSH
9336: LD_EXP 1
9340: PPUSH
9341: CALL_OW 235
// SetSide ( i , You ) ;
9345: LD_VAR 0 2
9349: PPUSH
9350: LD_EXP 1
9354: PPUSH
9355: CALL_OW 235
// end ;
9359: GO 9297
9361: POP
9362: POP
// enable ;
9363: ENABLE
// end ;
9364: PPOPN 2
9366: END
// every 0 0$1 marked 9 do var i ; var ridici ; var mcm ;
9367: GO 9369
9369: DISABLE
9370: LD_INT 0
9372: PPUSH
9373: PPUSH
9374: PPUSH
// begin if FilterUnitsInArea ( cargoSpawnSave , [ f_side , 1 ] ) then
9375: LD_INT 56
9377: PPUSH
9378: LD_INT 22
9380: PUSH
9381: LD_INT 1
9383: PUSH
9384: EMPTY
9385: LIST
9386: LIST
9387: PPUSH
9388: CALL_OW 70
9392: IFFALSE 9433
// for i in FilterUnitsInArea ( cargoSpawnSave , [ f_side , 1 ] ) do
9394: LD_ADDR_VAR 0 1
9398: PUSH
9399: LD_INT 56
9401: PPUSH
9402: LD_INT 22
9404: PUSH
9405: LD_INT 1
9407: PUSH
9408: EMPTY
9409: LIST
9410: LIST
9411: PPUSH
9412: CALL_OW 70
9416: PUSH
9417: FOR_IN
9418: IFFALSE 9431
// RemoveUnit ( i ) ;
9420: LD_VAR 0 1
9424: PPUSH
9425: CALL_OW 64
9429: GO 9417
9431: POP
9432: POP
// ridici = [ ] ;
9433: LD_ADDR_VAR 0 2
9437: PUSH
9438: EMPTY
9439: ST_TO_ADDR
// for i in RUSI_CERPACI_AUTA_LIST do
9440: LD_ADDR_VAR 0 1
9444: PUSH
9445: LD_EXP 59
9449: PUSH
9450: FOR_IN
9451: IFFALSE 9491
// begin PlaceUnitArea ( i , cargoSpawn , false ) ;
9453: LD_VAR 0 1
9457: PPUSH
9458: LD_INT 55
9460: PPUSH
9461: LD_INT 0
9463: PPUSH
9464: CALL_OW 49
// ridici = ridici ^ IsDrivenBy ( i ) ;
9468: LD_ADDR_VAR 0 2
9472: PUSH
9473: LD_VAR 0 2
9477: PUSH
9478: LD_VAR 0 1
9482: PPUSH
9483: CALL_OW 311
9487: ADD
9488: ST_TO_ADDR
// end ;
9489: GO 9450
9491: POP
9492: POP
// mcm = McMove ( 10 , RUSI_CERPACI_AUTA_LIST , [ [ 130 , 75 ] , [ 112 , 59 ] , [ 106 , 32 ] , [ 91 , 21 ] , [ 62 , 9 ] ] , [ mc_move_waitwp ] ) ;
9493: LD_ADDR_VAR 0 3
9497: PUSH
9498: LD_INT 10
9500: PPUSH
9501: LD_EXP 59
9505: PPUSH
9506: LD_INT 130
9508: PUSH
9509: LD_INT 75
9511: PUSH
9512: EMPTY
9513: LIST
9514: LIST
9515: PUSH
9516: LD_INT 112
9518: PUSH
9519: LD_INT 59
9521: PUSH
9522: EMPTY
9523: LIST
9524: LIST
9525: PUSH
9526: LD_INT 106
9528: PUSH
9529: LD_INT 32
9531: PUSH
9532: EMPTY
9533: LIST
9534: LIST
9535: PUSH
9536: LD_INT 91
9538: PUSH
9539: LD_INT 21
9541: PUSH
9542: EMPTY
9543: LIST
9544: LIST
9545: PUSH
9546: LD_INT 62
9548: PUSH
9549: LD_INT 9
9551: PUSH
9552: EMPTY
9553: LIST
9554: LIST
9555: PUSH
9556: EMPTY
9557: LIST
9558: LIST
9559: LIST
9560: LIST
9561: LIST
9562: PPUSH
9563: LD_INT 3
9565: PUSH
9566: EMPTY
9567: LIST
9568: PPUSH
9569: CALL_OW 398
9573: ST_TO_ADDR
// while UnitFilter ( RUSI_CERPACI_AUTA_LIST , [ [ f_inarea , benzina ] ] ) <> RUSI_CERPACI_AUTA_LIST do
9574: LD_EXP 59
9578: PPUSH
9579: LD_INT 95
9581: PUSH
9582: LD_INT 48
9584: PUSH
9585: EMPTY
9586: LIST
9587: LIST
9588: PUSH
9589: EMPTY
9590: LIST
9591: PPUSH
9592: CALL_OW 72
9596: PUSH
9597: LD_EXP 59
9601: NONEQUAL
9602: IFFALSE 9637
// begin KillMc ( mcm ) ;
9604: LD_VAR 0 3
9608: PPUSH
9609: CALL_OW 387
// wait ( 0 0$2 ) ;
9613: LD_INT 70
9615: PPUSH
9616: CALL_OW 67
// ComMoveXY ( RUSI_CERPACI_AUTA_LIST , 62 , 9 ) ;
9620: LD_EXP 59
9624: PPUSH
9625: LD_INT 62
9627: PPUSH
9628: LD_INT 9
9630: PPUSH
9631: CALL_OW 111
// end ;
9635: GO 9574
// hint_cerpaci_auta ;
9637: CALL 16836 0 0
// ComExitVehicle ( ridici ) ;
9641: LD_VAR 0 2
9645: PPUSH
9646: CALL_OW 121
// AddComAgressiveMove ( ridici , 45 , 6 ) ;
9650: LD_VAR 0 2
9654: PPUSH
9655: LD_INT 45
9657: PPUSH
9658: LD_INT 6
9660: PPUSH
9661: CALL_OW 174
// AddComAgressiveMove ( ridici , 15 , 10 ) ;
9665: LD_VAR 0 2
9669: PPUSH
9670: LD_INT 15
9672: PPUSH
9673: LD_INT 10
9675: PPUSH
9676: CALL_OW 174
// AddComAttackUnit ( ridici , Am_dep ) ;
9680: LD_VAR 0 2
9684: PPUSH
9685: LD_INT 12
9687: PPUSH
9688: CALL_OW 175
// end ;
9692: PPOPN 3
9694: END
// every 0 0$2 do var pom , i ; var ridic ;
9695: GO 9697
9697: DISABLE
9698: LD_INT 0
9700: PPUSH
9701: PPUSH
9702: PPUSH
// begin pom = FilterUnitsInArea ( Cauta , [ [ f_side , You2 ] , [ f_weapon , ru_cargo_bay ] ] ) ;
9703: LD_ADDR_VAR 0 1
9707: PUSH
9708: LD_INT 39
9710: PPUSH
9711: LD_INT 22
9713: PUSH
9714: LD_EXP 2
9718: PUSH
9719: EMPTY
9720: LIST
9721: LIST
9722: PUSH
9723: LD_INT 34
9725: PUSH
9726: LD_INT 51
9728: PUSH
9729: EMPTY
9730: LIST
9731: LIST
9732: PUSH
9733: EMPTY
9734: LIST
9735: LIST
9736: PPUSH
9737: CALL_OW 70
9741: ST_TO_ADDR
// if pom > 0 then
9742: LD_VAR 0 1
9746: PUSH
9747: LD_INT 0
9749: GREATER
9750: IFFALSE 9771
// begin if not qrefuel_over then
9752: LD_LOC 20
9756: NOT
9757: IFFALSE 9771
// begin qrefuel_over = true ;
9759: LD_ADDR_LOC 20
9763: PUSH
9764: LD_INT 1
9766: ST_TO_ADDR
// query_refuel ;
9767: CALL 16754 0 0
// end ; end ; for i in pom do
9771: LD_ADDR_VAR 0 2
9775: PUSH
9776: LD_VAR 0 1
9780: PUSH
9781: FOR_IN
9782: IFFALSE 9836
// if IsDrivenBy ( i ) then
9784: LD_VAR 0 2
9788: PPUSH
9789: CALL_OW 311
9793: IFFALSE 9834
// begin ridic = IsDrivenBy ( i ) ;
9795: LD_ADDR_VAR 0 3
9799: PUSH
9800: LD_VAR 0 2
9804: PPUSH
9805: CALL_OW 311
9809: ST_TO_ADDR
// ComExitVehicle ( ridic ) ;
9810: LD_VAR 0 3
9814: PPUSH
9815: CALL_OW 121
// AddComAgressiveMove ( ridic , 21 , 14 ) ;
9819: LD_VAR 0 3
9823: PPUSH
9824: LD_INT 21
9826: PPUSH
9827: LD_INT 14
9829: PPUSH
9830: CALL_OW 174
// end ;
9834: GO 9781
9836: POP
9837: POP
// enable ;
9838: ENABLE
// end ;
9839: PPOPN 3
9841: END
// on VehicleConstructed ( v , fact ) do begin if GetSide ( fact ) = 3 then
9842: LD_VAR 0 2
9846: PPUSH
9847: CALL_OW 255
9851: PUSH
9852: LD_INT 3
9854: EQUAL
9855: IFFALSE 9871
// postavenych_aut = postavenych_aut + 1 ;
9857: LD_ADDR_EXP 47
9861: PUSH
9862: LD_EXP 47
9866: PUSH
9867: LD_INT 1
9869: PLUS
9870: ST_TO_ADDR
// if GetSide ( fact ) = 6 then
9871: LD_VAR 0 2
9875: PPUSH
9876: CALL_OW 255
9880: PUSH
9881: LD_INT 6
9883: EQUAL
9884: IFFALSE 9901
// ComMoveXY ( v , 125 , 70 ) ;
9886: LD_VAR 0 1
9890: PPUSH
9891: LD_INT 125
9893: PPUSH
9894: LD_INT 70
9896: PPUSH
9897: CALL_OW 111
// end ;
9901: PPOPN 2
9903: END
// every 0 0$1 marked 51 do
9904: GO 9906
9906: DISABLE
// begin if konec_counteru then
9907: LD_EXP 45
9911: IFFALSE 9922
// begin display_strings = [ ] ;
9913: LD_ADDR_OWVAR 47
9917: PUSH
9918: EMPTY
9919: ST_TO_ADDR
// exit ;
9920: GO 9973
// end ; display_strings = [ #Ru03-1 , TTime ] ;
9922: LD_ADDR_OWVAR 47
9926: PUSH
9927: LD_STRING #Ru03-1
9929: PUSH
9930: LD_LOC 21
9934: PUSH
9935: EMPTY
9936: LIST
9937: LIST
9938: ST_TO_ADDR
// TTime = TTime - 0 0$1 ;
9939: LD_ADDR_LOC 21
9943: PUSH
9944: LD_LOC 21
9948: PUSH
9949: LD_INT 35
9951: MINUS
9952: ST_TO_ADDR
// if TTime > 0 then
9953: LD_LOC 21
9957: PUSH
9958: LD_INT 0
9960: GREATER
9961: IFFALSE 9966
// enable else
9963: ENABLE
9964: GO 9973
// display_strings = [ ] ;
9966: LD_ADDR_OWVAR 47
9970: PUSH
9971: EMPTY
9972: ST_TO_ADDR
// end ;
9973: END
// every 0 0$1 marked 52 do
9974: GO 9976
9976: DISABLE
// begin if konec_counteru then
9977: LD_EXP 45
9981: IFFALSE 9992
// begin display_strings = [ ] ;
9983: LD_ADDR_OWVAR 47
9987: PUSH
9988: EMPTY
9989: ST_TO_ADDR
// exit ;
9990: GO 10043
// end ; display_strings = [ #Ru03-2 , TTime ] ;
9992: LD_ADDR_OWVAR 47
9996: PUSH
9997: LD_STRING #Ru03-2
9999: PUSH
10000: LD_LOC 21
10004: PUSH
10005: EMPTY
10006: LIST
10007: LIST
10008: ST_TO_ADDR
// TTime = TTime - 0 0$1 ;
10009: LD_ADDR_LOC 21
10013: PUSH
10014: LD_LOC 21
10018: PUSH
10019: LD_INT 35
10021: MINUS
10022: ST_TO_ADDR
// if TTime > 0 then
10023: LD_LOC 21
10027: PUSH
10028: LD_INT 0
10030: GREATER
10031: IFFALSE 10036
// enable else
10033: ENABLE
10034: GO 10043
// display_strings = [ ] ;
10036: LD_ADDR_OWVAR 47
10040: PUSH
10041: EMPTY
10042: ST_TO_ADDR
// end ;
10043: END
// every 0 0$1 marked 53 do
10044: GO 10046
10046: DISABLE
// begin if konec_counteru then
10047: LD_EXP 45
10051: IFFALSE 10062
// begin display_strings = [ ] ;
10053: LD_ADDR_OWVAR 47
10057: PUSH
10058: EMPTY
10059: ST_TO_ADDR
// exit ;
10060: GO 10113
// end ; display_strings = [ #Ru03-3 , TTime ] ;
10062: LD_ADDR_OWVAR 47
10066: PUSH
10067: LD_STRING #Ru03-3
10069: PUSH
10070: LD_LOC 21
10074: PUSH
10075: EMPTY
10076: LIST
10077: LIST
10078: ST_TO_ADDR
// TTime = TTime - 0 0$1 ;
10079: LD_ADDR_LOC 21
10083: PUSH
10084: LD_LOC 21
10088: PUSH
10089: LD_INT 35
10091: MINUS
10092: ST_TO_ADDR
// if TTime > 0 then
10093: LD_LOC 21
10097: PUSH
10098: LD_INT 0
10100: GREATER
10101: IFFALSE 10106
// enable else
10103: ENABLE
10104: GO 10113
// display_strings = [ ] ;
10106: LD_ADDR_OWVAR 47
10110: PUSH
10111: EMPTY
10112: ST_TO_ADDR
// end ;
10113: END
// export function zastaveni_rusaku ; var pom ; begin
10114: LD_INT 0
10116: PPUSH
10117: PPUSH
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
10118: LD_ADDR_VAR 0 2
10122: PUSH
10123: LD_INT 22
10125: PUSH
10126: LD_EXP 1
10130: PUSH
10131: EMPTY
10132: LIST
10133: LIST
10134: PUSH
10135: LD_INT 2
10137: PUSH
10138: LD_INT 21
10140: PUSH
10141: LD_INT 2
10143: PUSH
10144: EMPTY
10145: LIST
10146: LIST
10147: PUSH
10148: LD_INT 21
10150: PUSH
10151: LD_INT 1
10153: PUSH
10154: EMPTY
10155: LIST
10156: LIST
10157: PUSH
10158: EMPTY
10159: LIST
10160: LIST
10161: LIST
10162: PUSH
10163: EMPTY
10164: LIST
10165: LIST
10166: PPUSH
10167: CALL_OW 69
10171: ST_TO_ADDR
// ComStand ( pom ) ;
10172: LD_VAR 0 2
10176: PPUSH
10177: CALL_OW 165
// end ; end_of_file
10181: LD_VAR 0 1
10185: RET
// export konstanta_utoceni ; var hint_bw ; every 0 0$0.1 do
10186: GO 10188
10188: DISABLE
// begin konstanta_utoceni = 0 ;
10189: LD_ADDR_EXP 49
10193: PUSH
10194: LD_INT 0
10196: ST_TO_ADDR
// hint_bw = false ;
10197: LD_ADDR_LOC 22
10201: PUSH
10202: LD_INT 0
10204: ST_TO_ADDR
// end ;
10205: END
// export function uvodni_pokec ; var vyber , eng ; begin
10206: LD_INT 0
10208: PPUSH
10209: PPUSH
10210: PPUSH
// wait ( 0 0$2 ) ;
10211: LD_INT 70
10213: PPUSH
10214: CALL_OW 67
// ComTurnUnit ( bur , kur ) ;
10218: LD_EXP 29
10222: PPUSH
10223: LD_EXP 27
10227: PPUSH
10228: CALL_OW 119
// ComTurnUnit ( kur , bur ) ;
10232: LD_EXP 27
10236: PPUSH
10237: LD_EXP 29
10241: PPUSH
10242: CALL_OW 119
// if BELKOV_SAVED then
10246: LD_EXP 24
10250: IFFALSE 10290
// begin Say ( kur , D1b-Kur-1 ) ;
10252: LD_EXP 27
10256: PPUSH
10257: LD_STRING D1b-Kur-1
10259: PPUSH
10260: CALL_OW 88
// Say ( bel , D1b-Bel-1 ) ;
10264: LD_EXP 32
10268: PPUSH
10269: LD_STRING D1b-Bel-1
10271: PPUSH
10272: CALL_OW 88
// Say ( kur , D1b-Kur-2 ) ;
10276: LD_EXP 27
10280: PPUSH
10281: LD_STRING D1b-Kur-2
10283: PPUSH
10284: CALL_OW 88
// end else
10288: GO 10374
// begin Say ( kur , D1a-Kur-1 ) ;
10290: LD_EXP 27
10294: PPUSH
10295: LD_STRING D1a-Kur-1
10297: PPUSH
10298: CALL_OW 88
// Say ( bur , D1a-Bur-1 ) ;
10302: LD_EXP 29
10306: PPUSH
10307: LD_STRING D1a-Bur-1
10309: PPUSH
10310: CALL_OW 88
// if STAV_UTOKU = 3 then
10314: LD_EXP 25
10318: PUSH
10319: LD_INT 3
10321: EQUAL
10322: IFFALSE 10338
// Say ( kur , D1a-Kur-2a ) else
10324: LD_EXP 27
10328: PPUSH
10329: LD_STRING D1a-Kur-2a
10331: PPUSH
10332: CALL_OW 88
10336: GO 10350
// Say ( kur , D1a-Kur-2 ) ;
10338: LD_EXP 27
10342: PPUSH
10343: LD_STRING D1a-Kur-2
10345: PPUSH
10346: CALL_OW 88
// Say ( kur , D1a-Kur-2b ) ;
10350: LD_EXP 27
10354: PPUSH
10355: LD_STRING D1a-Kur-2b
10357: PPUSH
10358: CALL_OW 88
// Say ( bur , D1a-Bur-2 ) ;
10362: LD_EXP 29
10366: PPUSH
10367: LD_STRING D1a-Bur-2
10369: PPUSH
10370: CALL_OW 88
// end ; Say ( kur , D2-Kur-1 ) ;
10374: LD_EXP 27
10378: PPUSH
10379: LD_STRING D2-Kur-1
10381: PPUSH
10382: CALL_OW 88
// Say ( bur , D2-Bur-1 ) ;
10386: LD_EXP 29
10390: PPUSH
10391: LD_STRING D2-Bur-1
10393: PPUSH
10394: CALL_OW 88
// Say ( kur , D2-Kur-2 ) ;
10398: LD_EXP 27
10402: PPUSH
10403: LD_STRING D2-Kur-2
10405: PPUSH
10406: CALL_OW 88
// Say ( bur , D2-Bur-2 ) ;
10410: LD_EXP 29
10414: PPUSH
10415: LD_STRING D2-Bur-2
10417: PPUSH
10418: CALL_OW 88
// Say ( kur , D2-Kur-3 ) ;
10422: LD_EXP 27
10426: PPUSH
10427: LD_STRING D2-Kur-3
10429: PPUSH
10430: CALL_OW 88
// Say ( pop , D2-Pop-3 ) ;
10434: LD_EXP 28
10438: PPUSH
10439: LD_STRING D2-Pop-3
10441: PPUSH
10442: CALL_OW 88
// Say ( kur , D2-Kur-4 ) ;
10446: LD_EXP 27
10450: PPUSH
10451: LD_STRING D2-Kur-4
10453: PPUSH
10454: CALL_OW 88
// Say ( bur , D2-Bur-4 ) ;
10458: LD_EXP 29
10462: PPUSH
10463: LD_STRING D2-Bur-4
10465: PPUSH
10466: CALL_OW 88
// Say ( kur , D2-Kur-5 ) ;
10470: LD_EXP 27
10474: PPUSH
10475: LD_STRING D2-Kur-5
10477: PPUSH
10478: CALL_OW 88
// Say ( bur , D2-Bur-5 ) ;
10482: LD_EXP 29
10486: PPUSH
10487: LD_STRING D2-Bur-5
10489: PPUSH
10490: CALL_OW 88
// Say ( kur , D2-Kur-6 ) ;
10494: LD_EXP 27
10498: PPUSH
10499: LD_STRING D2-Kur-6
10501: PPUSH
10502: CALL_OW 88
// vyber = vyber_characteru ;
10506: LD_ADDR_VAR 0 2
10510: PUSH
10511: CALL 3282 0 0
10515: ST_TO_ADDR
// if bel in vyber then
10516: LD_EXP 32
10520: PUSH
10521: LD_VAR 0 2
10525: IN
10526: IFFALSE 10539
// RemoveUnit ( bel ) else
10528: LD_EXP 32
10532: PPUSH
10533: CALL_OW 64
10537: GO 10553
// Setside ( bel , You2 ) ;
10539: LD_EXP 32
10543: PPUSH
10544: LD_EXP 2
10548: PPUSH
10549: CALL_OW 235
// if IsOK ( kov ) then
10553: LD_EXP 30
10557: PPUSH
10558: CALL_OW 302
10562: IFFALSE 10573
// RemoveUnit ( kov ) ;
10564: LD_EXP 30
10568: PPUSH
10569: CALL_OW 64
// if IsOK ( gny ) then
10573: LD_EXP 31
10577: PPUSH
10578: CALL_OW 302
10582: IFFALSE 10593
// RemoveUnit ( gny ) ;
10584: LD_EXP 31
10588: PPUSH
10589: CALL_OW 64
// RemoveUnit ( bur ) ;
10593: LD_EXP 29
10597: PPUSH
10598: CALL_OW 64
// prebarveni_druhe_baze ;
10602: CALL 5802 0 0
// ChangeSideFog ( You3 , You ) ;
10606: LD_EXP 3
10610: PPUSH
10611: LD_EXP 1
10615: PPUSH
10616: CALL_OW 343
// placni_unity ( vyber ) ;
10620: LD_VAR 0 2
10624: PPUSH
10625: CALL 4039 0 1
// CenterOnUnits ( vyber ) ;
10629: LD_VAR 0 2
10633: PPUSH
10634: CALL_OW 85
// RevealFogArea ( You , Wth ) ;
10638: LD_EXP 1
10642: PPUSH
10643: LD_INT 24
10645: PPUSH
10646: CALL_OW 332
// wait ( 0 0$2 ) ;
10650: LD_INT 70
10652: PPUSH
10653: CALL_OW 67
// ChangeMissionObjectives ( M1 ) ;
10657: LD_STRING M1
10659: PPUSH
10660: CALL_OW 337
// hint_bw = true ;
10664: LD_ADDR_LOC 22
10668: PUSH
10669: LD_INT 1
10671: ST_TO_ADDR
// Hint ( Oil ) ;
10672: LD_STRING Oil
10674: PPUSH
10675: CALL_OW 339
// Hint ( Upgrading ) ;
10679: LD_STRING Upgrading
10681: PPUSH
10682: CALL_OW 339
// InGameOff ;
10686: CALL_OW 9
// wait ( 1 1$00 ) ;
10690: LD_INT 2100
10692: PPUSH
10693: CALL_OW 67
// eng := FilterAllUnits ( [ [ f_side , 6 ] , [ f_class , 2 ] ] ) ;
10697: LD_ADDR_VAR 0 3
10701: PUSH
10702: LD_INT 22
10704: PUSH
10705: LD_INT 6
10707: PUSH
10708: EMPTY
10709: LIST
10710: LIST
10711: PUSH
10712: LD_INT 25
10714: PUSH
10715: LD_INT 2
10717: PUSH
10718: EMPTY
10719: LIST
10720: LIST
10721: PUSH
10722: EMPTY
10723: LIST
10724: LIST
10725: PPUSH
10726: CALL_OW 69
10730: ST_TO_ADDR
// if not eng then
10731: LD_VAR 0 3
10735: NOT
10736: IFFALSE 10740
// exit ;
10738: GO 10789
// ComExitBuilding ( eng ) ;
10740: LD_VAR 0 3
10744: PPUSH
10745: CALL_OW 122
// AddComBuild ( eng , b_oil_power , 140 , 69 , 0 ) ;
10749: LD_VAR 0 3
10753: PPUSH
10754: LD_INT 26
10756: PPUSH
10757: LD_INT 140
10759: PPUSH
10760: LD_INT 69
10762: PPUSH
10763: LD_INT 0
10765: PPUSH
10766: CALL_OW 205
// wait ( 2 2$30 ) ;
10770: LD_INT 5250
10772: PPUSH
10773: CALL_OW 67
// ComEnterUnit ( eng , RU1_dep ) ;
10777: LD_VAR 0 3
10781: PPUSH
10782: LD_INT 1
10784: PPUSH
10785: CALL_OW 120
// end ;
10789: LD_VAR 0 1
10793: RET
// every 0 0$1 trigger GetResourceVisibility ( 57 , 89 , You ) > 0 do
10794: LD_INT 57
10796: PPUSH
10797: LD_INT 89
10799: PPUSH
10800: LD_EXP 1
10804: PPUSH
10805: CALL_OW 440
10809: PUSH
10810: LD_INT 0
10812: GREATER
10813: IFFALSE 10917
10815: GO 10817
10817: DISABLE
// begin CenterOnXY ( 57 , 89 ) ;
10818: LD_INT 57
10820: PPUSH
10821: LD_INT 89
10823: PPUSH
10824: CALL_OW 84
// DialogueOn ;
10828: CALL_OW 6
// interface_hidden := true ;
10832: LD_ADDR_OWVAR 54
10836: PUSH
10837: LD_INT 1
10839: ST_TO_ADDR
// Say ( bur , D2a-Bur-1 ) ;
10840: LD_EXP 29
10844: PPUSH
10845: LD_STRING D2a-Bur-1
10847: PPUSH
10848: CALL_OW 88
// SayRadio ( kur , D2a-Kur-1 ) ;
10852: LD_EXP 27
10856: PPUSH
10857: LD_STRING D2a-Kur-1
10859: PPUSH
10860: CALL_OW 94
// RU_videl_oil = true ;
10864: LD_ADDR_EXP 40
10868: PUSH
10869: LD_INT 1
10871: ST_TO_ADDR
// interface_hidden := false ;
10872: LD_ADDR_OWVAR 54
10876: PUSH
10877: LD_INT 0
10879: ST_TO_ADDR
// Hint ( OilSpoted ) ;
10880: LD_STRING OilSpoted
10882: PPUSH
10883: CALL_OW 339
// DialogueOff ;
10887: CALL_OW 7
// wait ( 0 0$45 ) ;
10891: LD_INT 1575
10893: PPUSH
10894: CALL_OW 67
// ComConstruct ( Ru1_fac , ru_medium_wheeled , engine_combustion , control_manual , ru_heavy_machine_gun ) ;
10898: LD_INT 5
10900: PPUSH
10901: LD_INT 21
10903: PPUSH
10904: LD_INT 1
10906: PPUSH
10907: LD_INT 1
10909: PPUSH
10910: LD_INT 42
10912: PPUSH
10913: CALL_OW 125
// end ;
10917: END
// every 0 0$3 trigger RU_videl_oil and FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) > 1 do var pom , pom1 ; var i ;
10918: LD_EXP 40
10922: PUSH
10923: LD_INT 22
10925: PUSH
10926: LD_EXP 1
10930: PUSH
10931: EMPTY
10932: LIST
10933: LIST
10934: PUSH
10935: LD_INT 30
10937: PUSH
10938: LD_INT 0
10940: PUSH
10941: EMPTY
10942: LIST
10943: LIST
10944: PUSH
10945: EMPTY
10946: LIST
10947: LIST
10948: PPUSH
10949: CALL_OW 69
10953: PUSH
10954: LD_INT 1
10956: GREATER
10957: AND
10958: IFFALSE 11122
10960: GO 10962
10962: DISABLE
10963: LD_INT 0
10965: PPUSH
10966: PPUSH
10967: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) ;
10968: LD_ADDR_VAR 0 1
10972: PUSH
10973: LD_INT 22
10975: PUSH
10976: LD_EXP 1
10980: PUSH
10981: EMPTY
10982: LIST
10983: LIST
10984: PUSH
10985: LD_INT 30
10987: PUSH
10988: LD_INT 0
10990: PUSH
10991: EMPTY
10992: LIST
10993: LIST
10994: PUSH
10995: EMPTY
10996: LIST
10997: LIST
10998: PPUSH
10999: CALL_OW 69
11003: ST_TO_ADDR
// pom1 = [ ] ;
11004: LD_ADDR_VAR 0 2
11008: PUSH
11009: EMPTY
11010: ST_TO_ADDR
// for i in pom do
11011: LD_ADDR_VAR 0 3
11015: PUSH
11016: LD_VAR 0 1
11020: PUSH
11021: FOR_IN
11022: IFFALSE 11063
// if GetDistUnitXY ( i , 56 , 88 ) < 30 then
11024: LD_VAR 0 3
11028: PPUSH
11029: LD_INT 56
11031: PPUSH
11032: LD_INT 88
11034: PPUSH
11035: CALL_OW 297
11039: PUSH
11040: LD_INT 30
11042: LESS
11043: IFFALSE 11061
// pom1 = pom1 ^ i ;
11045: LD_ADDR_VAR 0 2
11049: PUSH
11050: LD_VAR 0 2
11054: PUSH
11055: LD_VAR 0 3
11059: ADD
11060: ST_TO_ADDR
11061: GO 11021
11063: POP
11064: POP
// if pom1 > 0 then
11065: LD_VAR 0 2
11069: PUSH
11070: LD_INT 0
11072: GREATER
11073: IFFALSE 11121
// begin while IsConstructed ( pom1 [ 1 ] ) do
11075: LD_VAR 0 2
11079: PUSH
11080: LD_INT 1
11082: ARRAY
11083: PPUSH
11084: CALL_OW 304
11088: IFFALSE 11099
// wait ( 0 0$5 ) ;
11090: LD_INT 175
11092: PPUSH
11093: CALL_OW 67
11097: GO 11075
// ChangeMissionObjectives ( M2 ) ;
11099: LD_STRING M2
11101: PPUSH
11102: CALL_OW 337
// pojmenovani_kaganoviche ( pom1 [ 1 ] ) ;
11106: LD_VAR 0 2
11110: PUSH
11111: LD_INT 1
11113: ARRAY
11114: PPUSH
11115: CALL 4846 0 1
// end else
11119: GO 11122
// enable ;
11121: ENABLE
// end ;
11122: PPOPN 3
11124: END
// every 0 0$2 trigger FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_factory ] ] ) > 0 do var pom ;
11125: LD_INT 2
11127: PPUSH
11128: LD_INT 22
11130: PUSH
11131: LD_EXP 1
11135: PUSH
11136: EMPTY
11137: LIST
11138: LIST
11139: PUSH
11140: LD_INT 30
11142: PUSH
11143: LD_INT 3
11145: PUSH
11146: EMPTY
11147: LIST
11148: LIST
11149: PUSH
11150: EMPTY
11151: LIST
11152: LIST
11153: PPUSH
11154: CALL_OW 70
11158: PUSH
11159: LD_INT 0
11161: GREATER
11162: IFFALSE 11454
11164: GO 11166
11166: DISABLE
11167: LD_INT 0
11169: PPUSH
// begin pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_factory ] ] ) ;
11170: LD_ADDR_VAR 0 1
11174: PUSH
11175: LD_INT 2
11177: PPUSH
11178: LD_INT 22
11180: PUSH
11181: LD_EXP 1
11185: PUSH
11186: EMPTY
11187: LIST
11188: LIST
11189: PUSH
11190: LD_INT 30
11192: PUSH
11193: LD_INT 3
11195: PUSH
11196: EMPTY
11197: LIST
11198: LIST
11199: PUSH
11200: EMPTY
11201: LIST
11202: LIST
11203: PPUSH
11204: CALL_OW 70
11208: ST_TO_ADDR
// pom = pom [ 1 ] ;
11209: LD_ADDR_VAR 0 1
11213: PUSH
11214: LD_VAR 0 1
11218: PUSH
11219: LD_INT 1
11221: ARRAY
11222: ST_TO_ADDR
// while IsConstructed ( pom ) <> 0 do
11223: LD_VAR 0 1
11227: PPUSH
11228: CALL_OW 304
11232: PUSH
11233: LD_INT 0
11235: NONEQUAL
11236: IFFALSE 11247
// wait ( 0 0$2 ) ;
11238: LD_INT 70
11240: PPUSH
11241: CALL_OW 67
11245: GO 11223
// CenterNowOnUnits ( pom ) ;
11247: LD_VAR 0 1
11251: PPUSH
11252: CALL_OW 87
// interface_hidden := true ;
11256: LD_ADDR_OWVAR 54
11260: PUSH
11261: LD_INT 1
11263: ST_TO_ADDR
// pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_oil_power ] ] ) ;
11264: LD_ADDR_VAR 0 1
11268: PUSH
11269: LD_INT 2
11271: PPUSH
11272: LD_INT 22
11274: PUSH
11275: LD_EXP 1
11279: PUSH
11280: EMPTY
11281: LIST
11282: LIST
11283: PUSH
11284: LD_INT 30
11286: PUSH
11287: LD_INT 26
11289: PUSH
11290: EMPTY
11291: LIST
11292: LIST
11293: PUSH
11294: EMPTY
11295: LIST
11296: LIST
11297: PPUSH
11298: CALL_OW 70
11302: ST_TO_ADDR
// if pom = 0 then
11303: LD_VAR 0 1
11307: PUSH
11308: LD_INT 0
11310: EQUAL
11311: IFFALSE 11428
// begin DialogueOn ;
11313: CALL_OW 6
// Say ( bur , D3aa-Bur-1 ) ;
11317: LD_EXP 29
11321: PPUSH
11322: LD_STRING D3aa-Bur-1
11324: PPUSH
11325: CALL_OW 88
// if IsOK ( schol ) then
11329: LD_EXP 33
11333: PPUSH
11334: CALL_OW 302
11338: IFFALSE 11366
// begin Say ( schol , D3aa-Sch-1 ) ;
11340: LD_EXP 33
11344: PPUSH
11345: LD_STRING D3aa-Sch-1
11347: PPUSH
11348: CALL_OW 88
// Say ( bur , D3aa-Bur-2 ) ;
11352: LD_EXP 29
11356: PPUSH
11357: LD_STRING D3aa-Bur-2
11359: PPUSH
11360: CALL_OW 88
// end else
11364: GO 11428
// begin pom = GetPeople ( sex_male , class_scientistic , [ bur ] ) ;
11366: LD_ADDR_VAR 0 1
11370: PUSH
11371: LD_INT 1
11373: PPUSH
11374: LD_INT 4
11376: PPUSH
11377: LD_EXP 29
11381: PUSH
11382: EMPTY
11383: LIST
11384: PPUSH
11385: CALL 11999 0 3
11389: ST_TO_ADDR
// if pom > 0 then
11390: LD_VAR 0 1
11394: PUSH
11395: LD_INT 0
11397: GREATER
11398: IFFALSE 11428
// begin Say ( pom [ 1 ] , D3aa-Sci1-1 ) ;
11400: LD_VAR 0 1
11404: PUSH
11405: LD_INT 1
11407: ARRAY
11408: PPUSH
11409: LD_STRING D3aa-Sci1-1
11411: PPUSH
11412: CALL_OW 88
// Say ( bur , D3aa-Bur-2 ) ;
11416: LD_EXP 29
11420: PPUSH
11421: LD_STRING D3aa-Bur-2
11423: PPUSH
11424: CALL_OW 88
// end ; end ; end ; ChangeMissionObjectives ( M3 ) ;
11428: LD_STRING M3
11430: PPUSH
11431: CALL_OW 337
// Hint ( Factory ) ;
11435: LD_STRING Factory
11437: PPUSH
11438: CALL_OW 339
// interface_hidden := false ;
11442: LD_ADDR_OWVAR 54
11446: PUSH
11447: LD_INT 0
11449: ST_TO_ADDR
// DialogueOff ;
11450: CALL_OW 7
// end ;
11454: PPOPN 1
11456: END
// every 0 0$5 trigger FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_armoury ] ] ) > 0 do var pom ;
11457: LD_INT 2
11459: PPUSH
11460: LD_INT 22
11462: PUSH
11463: LD_EXP 1
11467: PUSH
11468: EMPTY
11469: LIST
11470: LIST
11471: PUSH
11472: LD_INT 30
11474: PUSH
11475: LD_INT 4
11477: PUSH
11478: EMPTY
11479: LIST
11480: LIST
11481: PUSH
11482: EMPTY
11483: LIST
11484: LIST
11485: PPUSH
11486: CALL_OW 70
11490: PUSH
11491: LD_INT 0
11493: GREATER
11494: IFFALSE 11576
11496: GO 11498
11498: DISABLE
11499: LD_INT 0
11501: PPUSH
// begin pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_armoury ] ] ) ;
11502: LD_ADDR_VAR 0 1
11506: PUSH
11507: LD_INT 2
11509: PPUSH
11510: LD_INT 22
11512: PUSH
11513: LD_EXP 1
11517: PUSH
11518: EMPTY
11519: LIST
11520: LIST
11521: PUSH
11522: LD_INT 30
11524: PUSH
11525: LD_INT 4
11527: PUSH
11528: EMPTY
11529: LIST
11530: LIST
11531: PUSH
11532: EMPTY
11533: LIST
11534: LIST
11535: PPUSH
11536: CALL_OW 70
11540: ST_TO_ADDR
// while IsConstructed ( pom [ 1 ] ) <> 0 do
11541: LD_VAR 0 1
11545: PUSH
11546: LD_INT 1
11548: ARRAY
11549: PPUSH
11550: CALL_OW 304
11554: PUSH
11555: LD_INT 0
11557: NONEQUAL
11558: IFFALSE 11569
// wait ( 0 0$5 ) ;
11560: LD_INT 175
11562: PPUSH
11563: CALL_OW 67
11567: GO 11541
// Hint ( Armoury ) ;
11569: LD_STRING Armoury
11571: PPUSH
11572: CALL_OW 339
// end ;
11576: PPOPN 1
11578: END
// every 0 0$3 trigger hint_bw do var pom ;
11579: LD_LOC 22
11583: IFFALSE 11637
11585: GO 11587
11587: DISABLE
11588: LD_INT 0
11590: PPUSH
// begin pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_breastwork ] ] ) ;
11591: LD_ADDR_VAR 0 1
11595: PUSH
11596: LD_INT 2
11598: PPUSH
11599: LD_INT 22
11601: PUSH
11602: LD_EXP 1
11606: PUSH
11607: EMPTY
11608: LIST
11609: LIST
11610: PUSH
11611: LD_INT 30
11613: PUSH
11614: LD_INT 31
11616: PUSH
11617: EMPTY
11618: LIST
11619: LIST
11620: PUSH
11621: EMPTY
11622: LIST
11623: LIST
11624: PPUSH
11625: CALL_OW 70
11629: ST_TO_ADDR
// Hint ( bunkers ) ;
11630: LD_STRING bunkers
11632: PPUSH
11633: CALL_OW 339
// end ;
11637: PPOPN 1
11639: END
// export function dialog_scholtze_enter ; begin
11640: LD_INT 0
11642: PPUSH
// CenterOnUnits ( schol2 ) ;
11643: LD_EXP 34
11647: PPUSH
11648: CALL_OW 85
// DialogueOn ;
11652: CALL_OW 6
// interface_hidden := true ;
11656: LD_ADDR_OWVAR 54
11660: PUSH
11661: LD_INT 1
11663: ST_TO_ADDR
// SayRadio ( schol2 , D4-Sch-1 ) ;
11664: LD_EXP 34
11668: PPUSH
11669: LD_STRING D4-Sch-1
11671: PPUSH
11672: CALL_OW 94
// Say ( bur , D4-Bur-1 ) ;
11676: LD_EXP 29
11680: PPUSH
11681: LD_STRING D4-Bur-1
11683: PPUSH
11684: CALL_OW 88
// ChangeMissionObjectives ( M4 ) ;
11688: LD_STRING M4
11690: PPUSH
11691: CALL_OW 337
// interface_hidden := false ;
11695: LD_ADDR_OWVAR 54
11699: PUSH
11700: LD_INT 0
11702: ST_TO_ADDR
// DialogueOff ;
11703: CALL_OW 7
// end ;
11707: LD_VAR 0 1
11711: RET
// export function dialog_scholtze_nalezen ; begin
11712: LD_INT 0
11714: PPUSH
// CenterOnUnits ( schol2 ) ;
11715: LD_EXP 34
11719: PPUSH
11720: CALL_OW 85
// DialogueOn ;
11724: CALL_OW 6
// interface_hidden := true ;
11728: LD_ADDR_OWVAR 54
11732: PUSH
11733: LD_INT 1
11735: ST_TO_ADDR
// if IsOK ( schol2 ) then
11736: LD_EXP 34
11740: PPUSH
11741: CALL_OW 302
11745: IFFALSE 11790
// begin Say ( schol2 , D4a-Sch-1 ) ;
11747: LD_EXP 34
11751: PPUSH
11752: LD_STRING D4a-Sch-1
11754: PPUSH
11755: CALL_OW 88
// Say ( bur , D4a-Bur-1 ) ;
11759: LD_EXP 29
11763: PPUSH
11764: LD_STRING D4a-Bur-1
11766: PPUSH
11767: CALL_OW 88
// Say ( schol2 , D4a-Sch-2 ) ;
11771: LD_EXP 34
11775: PPUSH
11776: LD_STRING D4a-Sch-2
11778: PPUSH
11779: CALL_OW 88
// ChangeMissionObjectives ( MScholtzeOut ) ;
11783: LD_STRING MScholtzeOut
11785: PPUSH
11786: CALL_OW 337
// end ; interface_hidden := false ;
11790: LD_ADDR_OWVAR 54
11794: PUSH
11795: LD_INT 0
11797: ST_TO_ADDR
// DialogueOff ;
11798: CALL_OW 7
// end ;
11802: LD_VAR 0 1
11806: RET
// every 0 0$1 trigger am_posily_videny_rusakama and FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) = 1 marked 201 do var pom ;
11807: CALL 26374 0 0
11811: PUSH
11812: LD_INT 22
11814: PUSH
11815: LD_EXP 1
11819: PUSH
11820: EMPTY
11821: LIST
11822: LIST
11823: PUSH
11824: LD_INT 30
11826: PUSH
11827: LD_INT 0
11829: PUSH
11830: EMPTY
11831: LIST
11832: LIST
11833: PUSH
11834: EMPTY
11835: LIST
11836: LIST
11837: PPUSH
11838: CALL_OW 69
11842: PUSH
11843: LD_INT 1
11845: EQUAL
11846: AND
11847: IFFALSE 11996
11849: GO 11851
11851: DISABLE
11852: LD_INT 0
11854: PPUSH
// begin DialogueOn ;
11855: CALL_OW 6
// interface_hidden := true ;
11859: LD_ADDR_OWVAR 54
11863: PUSH
11864: LD_INT 1
11866: ST_TO_ADDR
// CenterOnUnits ( Am_posily ) ;
11867: LD_EXP 72
11871: PPUSH
11872: CALL_OW 85
// pom = GetPeople ( sex_male , class_soldier , [ bur , gny , kov ] ) ;
11876: LD_ADDR_VAR 0 1
11880: PUSH
11881: LD_INT 1
11883: PPUSH
11884: LD_INT 1
11886: PPUSH
11887: LD_EXP 29
11891: PUSH
11892: LD_EXP 31
11896: PUSH
11897: LD_EXP 30
11901: PUSH
11902: EMPTY
11903: LIST
11904: LIST
11905: LIST
11906: PPUSH
11907: CALL 11999 0 3
11911: ST_TO_ADDR
// if pom = 0 then
11912: LD_VAR 0 1
11916: PUSH
11917: LD_INT 0
11919: EQUAL
11920: IFFALSE 11946
// pom = GetPeople ( sex_male , class_soldier , [ bur ] ) ;
11922: LD_ADDR_VAR 0 1
11926: PUSH
11927: LD_INT 1
11929: PPUSH
11930: LD_INT 1
11932: PPUSH
11933: LD_EXP 29
11937: PUSH
11938: EMPTY
11939: LIST
11940: PPUSH
11941: CALL 11999 0 3
11945: ST_TO_ADDR
// if pom > 0 then
11946: LD_VAR 0 1
11950: PUSH
11951: LD_INT 0
11953: GREATER
11954: IFFALSE 11984
// begin Say ( pom [ 1 ] , D3a-RSol1-1 ) ;
11956: LD_VAR 0 1
11960: PUSH
11961: LD_INT 1
11963: ARRAY
11964: PPUSH
11965: LD_STRING D3a-RSol1-1
11967: PPUSH
11968: CALL_OW 88
// Say ( bur , D3a-Bur-1 ) ;
11972: LD_EXP 29
11976: PPUSH
11977: LD_STRING D3a-Bur-1
11979: PPUSH
11980: CALL_OW 88
// end ; interface_hidden := false ;
11984: LD_ADDR_OWVAR 54
11988: PUSH
11989: LD_INT 0
11991: ST_TO_ADDR
// DialogueOff ;
11992: CALL_OW 7
// end ;
11996: PPOPN 1
11998: END
// function GetPeople ( sex , povolani , diffseznam ) ; var pom , pom1 , pom2 , pom3 , pom4 ; begin
11999: LD_INT 0
12001: PPUSH
12002: PPUSH
12003: PPUSH
12004: PPUSH
12005: PPUSH
12006: PPUSH
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_scientistic ] , [ f_sex , sex ] ] ) ;
12007: LD_ADDR_VAR 0 6
12011: PUSH
12012: LD_INT 22
12014: PUSH
12015: LD_EXP 1
12019: PUSH
12020: EMPTY
12021: LIST
12022: LIST
12023: PUSH
12024: LD_INT 25
12026: PUSH
12027: LD_INT 4
12029: PUSH
12030: EMPTY
12031: LIST
12032: LIST
12033: PUSH
12034: LD_INT 26
12036: PUSH
12037: LD_VAR 0 1
12041: PUSH
12042: EMPTY
12043: LIST
12044: LIST
12045: PUSH
12046: EMPTY
12047: LIST
12048: LIST
12049: LIST
12050: PPUSH
12051: CALL_OW 69
12055: ST_TO_ADDR
// pom2 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_mechanic ] , [ f_sex , sex ] ] ) ;
12056: LD_ADDR_VAR 0 7
12060: PUSH
12061: LD_INT 22
12063: PUSH
12064: LD_EXP 1
12068: PUSH
12069: EMPTY
12070: LIST
12071: LIST
12072: PUSH
12073: LD_INT 25
12075: PUSH
12076: LD_INT 3
12078: PUSH
12079: EMPTY
12080: LIST
12081: LIST
12082: PUSH
12083: LD_INT 26
12085: PUSH
12086: LD_VAR 0 1
12090: PUSH
12091: EMPTY
12092: LIST
12093: LIST
12094: PUSH
12095: EMPTY
12096: LIST
12097: LIST
12098: LIST
12099: PPUSH
12100: CALL_OW 69
12104: ST_TO_ADDR
// pom3 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_engineer ] , [ f_sex , sex ] ] ) ;
12105: LD_ADDR_VAR 0 8
12109: PUSH
12110: LD_INT 22
12112: PUSH
12113: LD_EXP 1
12117: PUSH
12118: EMPTY
12119: LIST
12120: LIST
12121: PUSH
12122: LD_INT 25
12124: PUSH
12125: LD_INT 2
12127: PUSH
12128: EMPTY
12129: LIST
12130: LIST
12131: PUSH
12132: LD_INT 26
12134: PUSH
12135: LD_VAR 0 1
12139: PUSH
12140: EMPTY
12141: LIST
12142: LIST
12143: PUSH
12144: EMPTY
12145: LIST
12146: LIST
12147: LIST
12148: PPUSH
12149: CALL_OW 69
12153: ST_TO_ADDR
// pom4 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_soldier ] , [ f_sex , sex ] ] ) ;
12154: LD_ADDR_VAR 0 9
12158: PUSH
12159: LD_INT 22
12161: PUSH
12162: LD_EXP 1
12166: PUSH
12167: EMPTY
12168: LIST
12169: LIST
12170: PUSH
12171: LD_INT 25
12173: PUSH
12174: LD_INT 1
12176: PUSH
12177: EMPTY
12178: LIST
12179: LIST
12180: PUSH
12181: LD_INT 26
12183: PUSH
12184: LD_VAR 0 1
12188: PUSH
12189: EMPTY
12190: LIST
12191: LIST
12192: PUSH
12193: EMPTY
12194: LIST
12195: LIST
12196: LIST
12197: PPUSH
12198: CALL_OW 69
12202: ST_TO_ADDR
// case povolani of class_scientistic :
12203: LD_VAR 0 2
12207: PUSH
12208: LD_INT 4
12210: DOUBLE
12211: EQUAL
12212: IFTRUE 12216
12214: GO 12229
12216: POP
// pom = pom1 ; class_mechanic :
12217: LD_ADDR_VAR 0 5
12221: PUSH
12222: LD_VAR 0 6
12226: ST_TO_ADDR
12227: GO 12293
12229: LD_INT 3
12231: DOUBLE
12232: EQUAL
12233: IFTRUE 12237
12235: GO 12250
12237: POP
// pom = pom2 ; class_engineer :
12238: LD_ADDR_VAR 0 5
12242: PUSH
12243: LD_VAR 0 7
12247: ST_TO_ADDR
12248: GO 12293
12250: LD_INT 2
12252: DOUBLE
12253: EQUAL
12254: IFTRUE 12258
12256: GO 12271
12258: POP
// pom = pom3 ; class_soldier :
12259: LD_ADDR_VAR 0 5
12263: PUSH
12264: LD_VAR 0 8
12268: ST_TO_ADDR
12269: GO 12293
12271: LD_INT 1
12273: DOUBLE
12274: EQUAL
12275: IFTRUE 12279
12277: GO 12292
12279: POP
// pom = pom4 ; end ;
12280: LD_ADDR_VAR 0 5
12284: PUSH
12285: LD_VAR 0 9
12289: ST_TO_ADDR
12290: GO 12293
12292: POP
// if povolani <> class_scientistic then
12293: LD_VAR 0 2
12297: PUSH
12298: LD_INT 4
12300: NONEQUAL
12301: IFFALSE 12319
// pom = pom ^ pom1 ;
12303: LD_ADDR_VAR 0 5
12307: PUSH
12308: LD_VAR 0 5
12312: PUSH
12313: LD_VAR 0 6
12317: ADD
12318: ST_TO_ADDR
// if povolani <> class_mechanic then
12319: LD_VAR 0 2
12323: PUSH
12324: LD_INT 3
12326: NONEQUAL
12327: IFFALSE 12345
// pom = pom ^ pom2 ;
12329: LD_ADDR_VAR 0 5
12333: PUSH
12334: LD_VAR 0 5
12338: PUSH
12339: LD_VAR 0 7
12343: ADD
12344: ST_TO_ADDR
// if povolani <> class_engineer then
12345: LD_VAR 0 2
12349: PUSH
12350: LD_INT 2
12352: NONEQUAL
12353: IFFALSE 12371
// pom = pom ^ pom3 ;
12355: LD_ADDR_VAR 0 5
12359: PUSH
12360: LD_VAR 0 5
12364: PUSH
12365: LD_VAR 0 8
12369: ADD
12370: ST_TO_ADDR
// if povolani <> class_soldier then
12371: LD_VAR 0 2
12375: PUSH
12376: LD_INT 1
12378: NONEQUAL
12379: IFFALSE 12397
// pom = pom ^ pom4 ;
12381: LD_ADDR_VAR 0 5
12385: PUSH
12386: LD_VAR 0 5
12390: PUSH
12391: LD_VAR 0 9
12395: ADD
12396: ST_TO_ADDR
// result := pom diff diffseznam ;
12397: LD_ADDR_VAR 0 4
12401: PUSH
12402: LD_VAR 0 5
12406: PUSH
12407: LD_VAR 0 3
12411: DIFF
12412: ST_TO_ADDR
// end ;
12413: LD_VAR 0 4
12417: RET
// function GetPeopleSide ( side , sex , povolani , diffseznam ) ; var pom , pom1 , pom2 , pom3 , pom4 ; begin
12418: LD_INT 0
12420: PPUSH
12421: PPUSH
12422: PPUSH
12423: PPUSH
12424: PPUSH
12425: PPUSH
// pom1 = FilterAllUnits ( [ [ f_side , side ] , [ f_class , class_scientistic ] , [ f_sex , sex ] ] ) ;
12426: LD_ADDR_VAR 0 7
12430: PUSH
12431: LD_INT 22
12433: PUSH
12434: LD_VAR 0 1
12438: PUSH
12439: EMPTY
12440: LIST
12441: LIST
12442: PUSH
12443: LD_INT 25
12445: PUSH
12446: LD_INT 4
12448: PUSH
12449: EMPTY
12450: LIST
12451: LIST
12452: PUSH
12453: LD_INT 26
12455: PUSH
12456: LD_VAR 0 2
12460: PUSH
12461: EMPTY
12462: LIST
12463: LIST
12464: PUSH
12465: EMPTY
12466: LIST
12467: LIST
12468: LIST
12469: PPUSH
12470: CALL_OW 69
12474: ST_TO_ADDR
// pom2 = FilterAllUnits ( [ [ f_side , side ] , [ f_class , class_mechanic ] , [ f_sex , sex ] ] ) ;
12475: LD_ADDR_VAR 0 8
12479: PUSH
12480: LD_INT 22
12482: PUSH
12483: LD_VAR 0 1
12487: PUSH
12488: EMPTY
12489: LIST
12490: LIST
12491: PUSH
12492: LD_INT 25
12494: PUSH
12495: LD_INT 3
12497: PUSH
12498: EMPTY
12499: LIST
12500: LIST
12501: PUSH
12502: LD_INT 26
12504: PUSH
12505: LD_VAR 0 2
12509: PUSH
12510: EMPTY
12511: LIST
12512: LIST
12513: PUSH
12514: EMPTY
12515: LIST
12516: LIST
12517: LIST
12518: PPUSH
12519: CALL_OW 69
12523: ST_TO_ADDR
// pom3 = FilterAllUnits ( [ [ f_side , side ] , [ f_class , class_engineer ] , [ f_sex , sex ] ] ) ;
12524: LD_ADDR_VAR 0 9
12528: PUSH
12529: LD_INT 22
12531: PUSH
12532: LD_VAR 0 1
12536: PUSH
12537: EMPTY
12538: LIST
12539: LIST
12540: PUSH
12541: LD_INT 25
12543: PUSH
12544: LD_INT 2
12546: PUSH
12547: EMPTY
12548: LIST
12549: LIST
12550: PUSH
12551: LD_INT 26
12553: PUSH
12554: LD_VAR 0 2
12558: PUSH
12559: EMPTY
12560: LIST
12561: LIST
12562: PUSH
12563: EMPTY
12564: LIST
12565: LIST
12566: LIST
12567: PPUSH
12568: CALL_OW 69
12572: ST_TO_ADDR
// pom4 = FilterAllUnits ( [ [ f_side , side ] , [ f_class , class_soldier ] , [ f_sex , sex ] ] ) ;
12573: LD_ADDR_VAR 0 10
12577: PUSH
12578: LD_INT 22
12580: PUSH
12581: LD_VAR 0 1
12585: PUSH
12586: EMPTY
12587: LIST
12588: LIST
12589: PUSH
12590: LD_INT 25
12592: PUSH
12593: LD_INT 1
12595: PUSH
12596: EMPTY
12597: LIST
12598: LIST
12599: PUSH
12600: LD_INT 26
12602: PUSH
12603: LD_VAR 0 2
12607: PUSH
12608: EMPTY
12609: LIST
12610: LIST
12611: PUSH
12612: EMPTY
12613: LIST
12614: LIST
12615: LIST
12616: PPUSH
12617: CALL_OW 69
12621: ST_TO_ADDR
// case povolani of class_scientistic :
12622: LD_VAR 0 3
12626: PUSH
12627: LD_INT 4
12629: DOUBLE
12630: EQUAL
12631: IFTRUE 12635
12633: GO 12648
12635: POP
// pom = pom1 ; class_mechanic :
12636: LD_ADDR_VAR 0 6
12640: PUSH
12641: LD_VAR 0 7
12645: ST_TO_ADDR
12646: GO 12712
12648: LD_INT 3
12650: DOUBLE
12651: EQUAL
12652: IFTRUE 12656
12654: GO 12669
12656: POP
// pom = pom2 ; class_engineer :
12657: LD_ADDR_VAR 0 6
12661: PUSH
12662: LD_VAR 0 8
12666: ST_TO_ADDR
12667: GO 12712
12669: LD_INT 2
12671: DOUBLE
12672: EQUAL
12673: IFTRUE 12677
12675: GO 12690
12677: POP
// pom = pom3 ; class_soldier :
12678: LD_ADDR_VAR 0 6
12682: PUSH
12683: LD_VAR 0 9
12687: ST_TO_ADDR
12688: GO 12712
12690: LD_INT 1
12692: DOUBLE
12693: EQUAL
12694: IFTRUE 12698
12696: GO 12711
12698: POP
// pom = pom4 ; end ;
12699: LD_ADDR_VAR 0 6
12703: PUSH
12704: LD_VAR 0 10
12708: ST_TO_ADDR
12709: GO 12712
12711: POP
// if povolani <> class_scientistic then
12712: LD_VAR 0 3
12716: PUSH
12717: LD_INT 4
12719: NONEQUAL
12720: IFFALSE 12738
// pom = pom ^ pom1 ;
12722: LD_ADDR_VAR 0 6
12726: PUSH
12727: LD_VAR 0 6
12731: PUSH
12732: LD_VAR 0 7
12736: ADD
12737: ST_TO_ADDR
// if povolani <> class_mechanic then
12738: LD_VAR 0 3
12742: PUSH
12743: LD_INT 3
12745: NONEQUAL
12746: IFFALSE 12764
// pom = pom ^ pom2 ;
12748: LD_ADDR_VAR 0 6
12752: PUSH
12753: LD_VAR 0 6
12757: PUSH
12758: LD_VAR 0 8
12762: ADD
12763: ST_TO_ADDR
// if povolani <> class_engineer then
12764: LD_VAR 0 3
12768: PUSH
12769: LD_INT 2
12771: NONEQUAL
12772: IFFALSE 12790
// pom = pom ^ pom3 ;
12774: LD_ADDR_VAR 0 6
12778: PUSH
12779: LD_VAR 0 6
12783: PUSH
12784: LD_VAR 0 9
12788: ADD
12789: ST_TO_ADDR
// if povolani <> class_soldier then
12790: LD_VAR 0 3
12794: PUSH
12795: LD_INT 1
12797: NONEQUAL
12798: IFFALSE 12816
// pom = pom ^ pom4 ;
12800: LD_ADDR_VAR 0 6
12804: PUSH
12805: LD_VAR 0 6
12809: PUSH
12810: LD_VAR 0 10
12814: ADD
12815: ST_TO_ADDR
// result := pom diff diffseznam ;
12816: LD_ADDR_VAR 0 5
12820: PUSH
12821: LD_VAR 0 6
12825: PUSH
12826: LD_VAR 0 4
12830: DIFF
12831: ST_TO_ADDR
// end ;
12832: LD_VAR 0 5
12836: RET
// every 0 0$1 trigger am_posily_videny_rusakama and FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) > 1 do var pom ;
12837: CALL 26374 0 0
12841: PUSH
12842: LD_INT 22
12844: PUSH
12845: LD_EXP 1
12849: PUSH
12850: EMPTY
12851: LIST
12852: LIST
12853: PUSH
12854: LD_INT 30
12856: PUSH
12857: LD_INT 0
12859: PUSH
12860: EMPTY
12861: LIST
12862: LIST
12863: PUSH
12864: EMPTY
12865: LIST
12866: LIST
12867: PPUSH
12868: CALL_OW 69
12872: PUSH
12873: LD_INT 1
12875: GREATER
12876: AND
12877: IFFALSE 13095
12879: GO 12881
12881: DISABLE
12882: LD_INT 0
12884: PPUSH
// begin disable ( 201 ) ;
12885: LD_INT 201
12887: DISABLE_MARKED
// DialogueOn ;
12888: CALL_OW 6
// interface_hidden := true ;
12892: LD_ADDR_OWVAR 54
12896: PUSH
12897: LD_INT 1
12899: ST_TO_ADDR
// CenterOnUnits ( Am_posily ) ;
12900: LD_EXP 72
12904: PPUSH
12905: CALL_OW 85
// pom = GetPeople ( sex_male , class_soldier , [ bur , gny , kov ] ) ;
12909: LD_ADDR_VAR 0 1
12913: PUSH
12914: LD_INT 1
12916: PPUSH
12917: LD_INT 1
12919: PPUSH
12920: LD_EXP 29
12924: PUSH
12925: LD_EXP 31
12929: PUSH
12930: LD_EXP 30
12934: PUSH
12935: EMPTY
12936: LIST
12937: LIST
12938: LIST
12939: PPUSH
12940: CALL 11999 0 3
12944: ST_TO_ADDR
// if pom = 0 then
12945: LD_VAR 0 1
12949: PUSH
12950: LD_INT 0
12952: EQUAL
12953: IFFALSE 12979
// pom = GetPeople ( sex_male , class_soldier , [ bur ] ) ;
12955: LD_ADDR_VAR 0 1
12959: PUSH
12960: LD_INT 1
12962: PPUSH
12963: LD_INT 1
12965: PPUSH
12966: LD_EXP 29
12970: PUSH
12971: EMPTY
12972: LIST
12973: PPUSH
12974: CALL 11999 0 3
12978: ST_TO_ADDR
// if pom > 0 then
12979: LD_VAR 0 1
12983: PUSH
12984: LD_INT 0
12986: GREATER
12987: IFFALSE 13083
// begin Say ( pom [ 1 ] , D3b-RSol1-1 ) ;
12989: LD_VAR 0 1
12993: PUSH
12994: LD_INT 1
12996: ARRAY
12997: PPUSH
12998: LD_STRING D3b-RSol1-1
13000: PPUSH
13001: CALL_OW 88
// if IsOK ( gny ) then
13005: LD_EXP 31
13009: PPUSH
13010: CALL_OW 302
13014: IFFALSE 13042
// begin Say ( gny , D3b-Gny-1 ) ;
13016: LD_EXP 31
13020: PPUSH
13021: LD_STRING D3b-Gny-1
13023: PPUSH
13024: CALL_OW 88
// Say ( bur , D3b-Bur-1 ) ;
13028: LD_EXP 29
13032: PPUSH
13033: LD_STRING D3b-Bur-1
13035: PPUSH
13036: CALL_OW 88
// end else
13040: GO 13083
// if ISOK ( kov ) then
13042: LD_EXP 30
13046: PPUSH
13047: CALL_OW 302
13051: IFFALSE 13067
// Say ( kov , D3b-Kov-1 ) else
13053: LD_EXP 30
13057: PPUSH
13058: LD_STRING D3b-Kov-1
13060: PPUSH
13061: CALL_OW 88
13065: GO 13083
// Say ( pom [ 1 ] , D3b-RSol1-2 ) ;
13067: LD_VAR 0 1
13071: PUSH
13072: LD_INT 1
13074: ARRAY
13075: PPUSH
13076: LD_STRING D3b-RSol1-2
13078: PPUSH
13079: CALL_OW 88
// end ; interface_hidden := false ;
13083: LD_ADDR_OWVAR 54
13087: PUSH
13088: LD_INT 0
13090: ST_TO_ADDR
// DialogueOff ;
13091: CALL_OW 7
// end ;
13095: PPOPN 1
13097: END
// export function dialog_otazka_poctu_aut ; var pom ; begin
13098: LD_INT 0
13100: PPUSH
13101: PPUSH
// DialogueOn ;
13102: CALL_OW 6
// interface_hidden := true ;
13106: LD_ADDR_OWVAR 54
13110: PUSH
13111: LD_INT 1
13113: ST_TO_ADDR
// Say ( kur , D5-Kur-1 ) ;
13114: LD_EXP 27
13118: PPUSH
13119: LD_STRING D5-Kur-1
13121: PPUSH
13122: CALL_OW 88
// pom = Query ( QVehicles ) ;
13126: LD_ADDR_VAR 0 2
13130: PUSH
13131: LD_STRING QVehicles
13133: PPUSH
13134: CALL_OW 97
13138: ST_TO_ADDR
// case pom of 1 :
13139: LD_VAR 0 2
13143: PUSH
13144: LD_INT 1
13146: DOUBLE
13147: EQUAL
13148: IFTRUE 13152
13150: GO 13179
13152: POP
// begin Say ( bur , D6a-Bur-1 ) ;
13153: LD_EXP 29
13157: PPUSH
13158: LD_STRING D6a-Bur-1
13160: PPUSH
13161: CALL_OW 88
// Say ( kur , D6a-Kur-1 ) ;
13165: LD_EXP 27
13169: PPUSH
13170: LD_STRING D6a-Kur-1
13172: PPUSH
13173: CALL_OW 88
// end ; 2 :
13177: GO 13282
13179: LD_INT 2
13181: DOUBLE
13182: EQUAL
13183: IFTRUE 13187
13185: GO 13226
13187: POP
// begin Say ( bur , D6b-Bur-1 ) ;
13188: LD_EXP 29
13192: PPUSH
13193: LD_STRING D6b-Bur-1
13195: PPUSH
13196: CALL_OW 88
// Say ( kur , D6b-Kur-1 ) ;
13200: LD_EXP 27
13204: PPUSH
13205: LD_STRING D6b-Kur-1
13207: PPUSH
13208: CALL_OW 88
// Say ( bur , D6b-Bur-2 ) ;
13212: LD_EXP 29
13216: PPUSH
13217: LD_STRING D6b-Bur-2
13219: PPUSH
13220: CALL_OW 88
// end ; 3 :
13224: GO 13282
13226: LD_INT 3
13228: DOUBLE
13229: EQUAL
13230: IFTRUE 13234
13232: GO 13281
13234: POP
// begin Say ( bur , D6c-Bur-1 ) ;
13235: LD_EXP 29
13239: PPUSH
13240: LD_STRING D6c-Bur-1
13242: PPUSH
13243: CALL_OW 88
// Say ( kur , D6c-Kur-1 ) ;
13247: LD_EXP 27
13251: PPUSH
13252: LD_STRING D6c-Kur-1
13254: PPUSH
13255: CALL_OW 88
// Say ( bur , D6c-Bur-2 ) ;
13259: LD_EXP 29
13263: PPUSH
13264: LD_STRING D6c-Bur-2
13266: PPUSH
13267: CALL_OW 88
// KurinAddTime = 1 ;
13271: LD_ADDR_EXP 7
13275: PUSH
13276: LD_INT 1
13278: ST_TO_ADDR
// end ; end ;
13279: GO 13282
13281: POP
// interface_hidden := false ;
13282: LD_ADDR_OWVAR 54
13286: PUSH
13287: LD_INT 0
13289: ST_TO_ADDR
// DialogueOff ;
13290: CALL_OW 7
// result := pom ;
13294: LD_ADDR_VAR 0 1
13298: PUSH
13299: LD_VAR 0 2
13303: ST_TO_ADDR
// end ;
13304: LD_VAR 0 1
13308: RET
// export function hlaska_omicron ; begin
13309: LD_INT 0
13311: PPUSH
// DialogueOn ;
13312: CALL_OW 6
// interface_hidden := true ;
13316: LD_ADDR_OWVAR 54
13320: PUSH
13321: LD_INT 1
13323: ST_TO_ADDR
// Say ( kur , D6c-Kur-2 ) ;
13324: LD_EXP 27
13328: PPUSH
13329: LD_STRING D6c-Kur-2
13331: PPUSH
13332: CALL_OW 88
// interface_hidden := false ;
13336: LD_ADDR_OWVAR 54
13340: PUSH
13341: LD_INT 0
13343: ST_TO_ADDR
// DialogueOff ;
13344: CALL_OW 7
// end ;
13348: LD_VAR 0 1
13352: RET
// every 0 0$1 trigger stav_omikron = 3 do
13353: LD_EXP 39
13357: PUSH
13358: LD_INT 3
13360: EQUAL
13361: IFFALSE 13391
13363: GO 13365
13365: DISABLE
// begin CheckVehicles ;
13366: CALL 6298 0 0
// ChangeMissionObjectives ( M5 ) ;
13370: LD_STRING M5
13372: PPUSH
13373: CALL_OW 337
// SetAreaMapShow ( Om_zone1 , 1 ) ;
13377: LD_INT 32
13379: PPUSH
13380: LD_INT 1
13382: PPUSH
13383: CALL_OW 424
// CheckVehicles ;
13387: CALL 6298 0 0
// end ;
13391: END
// export function dialog_pred_omicronem ; var pom ; begin
13392: LD_INT 0
13394: PPUSH
13395: PPUSH
// DialogueOn ;
13396: CALL_OW 6
// interface_hidden := true ;
13400: LD_ADDR_OWVAR 54
13404: PUSH
13405: LD_INT 1
13407: ST_TO_ADDR
// Say ( bur , D7-Bur-1 ) ;
13408: LD_EXP 29
13412: PPUSH
13413: LD_STRING D7-Bur-1
13415: PPUSH
13416: CALL_OW 88
// SayRadio ( kur , D7-Kur-1 ) ;
13420: LD_EXP 27
13424: PPUSH
13425: LD_STRING D7-Kur-1
13427: PPUSH
13428: CALL_OW 94
// setkani_om := true ;
13432: LD_ADDR_EXP 41
13436: PUSH
13437: LD_INT 1
13439: ST_TO_ADDR
// ChangeMissionObjectives ( M5a ) ;
13440: LD_STRING M5a
13442: PPUSH
13443: CALL_OW 337
// SetAreaMapShow ( Om_zone1 , 0 ) ;
13447: LD_INT 32
13449: PPUSH
13450: LD_INT 0
13452: PPUSH
13453: CALL_OW 424
// interface_hidden := false ;
13457: LD_ADDR_OWVAR 54
13461: PUSH
13462: LD_INT 0
13464: ST_TO_ADDR
// DialogueOff ;
13465: CALL_OW 7
// end ;
13469: LD_VAR 0 1
13473: RET
// every 0 0$5 trigger stav_omikron = 4 and omicron_half_destroyed do var pom ;
13474: LD_EXP 39
13478: PUSH
13479: LD_INT 4
13481: EQUAL
13482: PUSH
13483: CALL 26443 0 0
13487: AND
13488: IFFALSE 13755
13490: GO 13492
13492: DISABLE
13493: LD_INT 0
13495: PPUSH
// begin popov_ven ;
13496: CALL 5619 0 0
// DialogueOn ;
13500: CALL_OW 6
// interface_hidden := true ;
13504: LD_ADDR_OWVAR 54
13508: PUSH
13509: LD_INT 1
13511: ST_TO_ADDR
// pom = create_kecajici_amik ;
13512: LD_ADDR_VAR 0 1
13516: PUSH
13517: CALL 18848 0 0
13521: ST_TO_ADDR
// SayRadio ( pom , D8-Sol1-1 ) ;
13522: LD_VAR 0 1
13526: PPUSH
13527: LD_STRING D8-Sol1-1
13529: PPUSH
13530: CALL_OW 94
// if IsOK ( kov ) then
13534: LD_EXP 30
13538: PPUSH
13539: CALL_OW 302
13543: IFFALSE 13559
// Say ( kov , D8-Kov-1 ) else
13545: LD_EXP 30
13549: PPUSH
13550: LD_STRING D8-Kov-1
13552: PPUSH
13553: CALL_OW 88
13557: GO 13650
// begin pom = GetPeople ( sex_male , class_soldier , [ bur , gny ] ) ;
13559: LD_ADDR_VAR 0 1
13563: PUSH
13564: LD_INT 1
13566: PPUSH
13567: LD_INT 1
13569: PPUSH
13570: LD_EXP 29
13574: PUSH
13575: LD_EXP 31
13579: PUSH
13580: EMPTY
13581: LIST
13582: LIST
13583: PPUSH
13584: CALL 11999 0 3
13588: ST_TO_ADDR
// if pom = 0 then
13589: LD_VAR 0 1
13593: PUSH
13594: LD_INT 0
13596: EQUAL
13597: IFFALSE 13634
// GetPeopleSide ( You2 , sex_male , class_soldier , [ kur , pop , bel ] ) ;
13599: LD_EXP 2
13603: PPUSH
13604: LD_INT 1
13606: PPUSH
13607: LD_INT 1
13609: PPUSH
13610: LD_EXP 27
13614: PUSH
13615: LD_EXP 28
13619: PUSH
13620: LD_EXP 32
13624: PUSH
13625: EMPTY
13626: LIST
13627: LIST
13628: LIST
13629: PPUSH
13630: CALL 12418 0 4
// Say ( pom [ 1 ] , D8-RSol1-1 ) ;
13634: LD_VAR 0 1
13638: PUSH
13639: LD_INT 1
13641: ARRAY
13642: PPUSH
13643: LD_STRING D8-RSol1-1
13645: PPUSH
13646: CALL_OW 88
// end ; if IsOK ( gny ) then
13650: LD_EXP 31
13654: PPUSH
13655: CALL_OW 302
13659: IFFALSE 13675
// Say ( gny , D8-Gny-1 ) else
13661: LD_EXP 31
13665: PPUSH
13666: LD_STRING D8-Gny-1
13668: PPUSH
13669: CALL_OW 88
13673: GO 13731
// begin pom = GetPeople ( sex_male , class_soldier , [ bur , gny ] ) ;
13675: LD_ADDR_VAR 0 1
13679: PUSH
13680: LD_INT 1
13682: PPUSH
13683: LD_INT 1
13685: PPUSH
13686: LD_EXP 29
13690: PUSH
13691: LD_EXP 31
13695: PUSH
13696: EMPTY
13697: LIST
13698: LIST
13699: PPUSH
13700: CALL 11999 0 3
13704: ST_TO_ADDR
// if pom > 1 then
13705: LD_VAR 0 1
13709: PUSH
13710: LD_INT 1
13712: GREATER
13713: IFFALSE 13731
// Say ( pom [ 2 ] , D8-RSol2-1 ) ;
13715: LD_VAR 0 1
13719: PUSH
13720: LD_INT 2
13722: ARRAY
13723: PPUSH
13724: LD_STRING D8-RSol2-1
13726: PPUSH
13727: CALL_OW 88
// end ; interface_hidden := false ;
13731: LD_ADDR_OWVAR 54
13735: PUSH
13736: LD_INT 0
13738: ST_TO_ADDR
// DialogueOff ;
13739: CALL_OW 7
// stahnuti_amiku ;
13743: CALL 26606 0 0
// stav_omikron = 5 ;
13747: LD_ADDR_EXP 39
13751: PUSH
13752: LD_INT 5
13754: ST_TO_ADDR
// end ;
13755: PPOPN 1
13757: END
// every 0 0$5 trigger stav_omikron = 5 do var gri ;
13758: LD_EXP 39
13762: PUSH
13763: LD_INT 5
13765: EQUAL
13766: IFFALSE 13927
13768: GO 13770
13770: DISABLE
13771: LD_INT 0
13773: PPUSH
// begin setkani_om = false ;
13774: LD_ADDR_EXP 41
13778: PUSH
13779: LD_INT 0
13781: ST_TO_ADDR
// gri = create_grishko ;
13782: LD_ADDR_VAR 0 1
13786: PUSH
13787: CALL 18907 0 0
13791: ST_TO_ADDR
// CenterOnUnits ( gri ) ;
13792: LD_VAR 0 1
13796: PPUSH
13797: CALL_OW 85
// DialogueOn ;
13801: CALL_OW 6
// interface_hidden := true ;
13805: LD_ADDR_OWVAR 54
13809: PUSH
13810: LD_INT 1
13812: ST_TO_ADDR
// SayRadio ( gri , D9-Gri-1 ) ;
13813: LD_VAR 0 1
13817: PPUSH
13818: LD_STRING D9-Gri-1
13820: PPUSH
13821: CALL_OW 94
// SayRadio ( kur , D9-Kur-1 ) ;
13825: LD_EXP 27
13829: PPUSH
13830: LD_STRING D9-Kur-1
13832: PPUSH
13833: CALL_OW 94
// wait ( 0 0$2 ) ;
13837: LD_INT 70
13839: PPUSH
13840: CALL_OW 67
// SayRadio ( gri , D9-Gri-2 ) ;
13844: LD_VAR 0 1
13848: PPUSH
13849: LD_STRING D9-Gri-2
13851: PPUSH
13852: CALL_OW 94
// SayRadio ( kur , D9-Kur-2 ) ;
13856: LD_EXP 27
13860: PPUSH
13861: LD_STRING D9-Kur-2
13863: PPUSH
13864: CALL_OW 94
// SayRadio ( gri , D9-Gri-3 ) ;
13868: LD_VAR 0 1
13872: PPUSH
13873: LD_STRING D9-Gri-3
13875: PPUSH
13876: CALL_OW 94
// SayRadio ( kur , D9-Kur-3 ) ;
13880: LD_EXP 27
13884: PPUSH
13885: LD_STRING D9-Kur-3
13887: PPUSH
13888: CALL_OW 94
// interface_hidden := false ;
13892: LD_ADDR_OWVAR 54
13896: PUSH
13897: LD_INT 0
13899: ST_TO_ADDR
// DialogueOff ;
13900: CALL_OW 7
// wait ( 0 0$20 ) ;
13904: LD_INT 700
13906: PPUSH
13907: CALL_OW 67
// stav_omikron = 6 ;
13911: LD_ADDR_EXP 39
13915: PUSH
13916: LD_INT 6
13918: ST_TO_ADDR
// zastaveni_rusaku ;
13919: CALL 10114 0 0
// utok_arabu ;
13923: CALL 27447 0 0
// end ;
13927: PPOPN 1
13929: END
// export function kecy_behem_utoku_arabu ; var i ; begin
13930: LD_INT 0
13932: PPUSH
13933: PPUSH
// stav_omikron = 7 ;
13934: LD_ADDR_EXP 39
13938: PUSH
13939: LD_INT 7
13941: ST_TO_ADDR
// SayRadio ( kur , D9a-Kur-1 ) ;
13942: LD_EXP 27
13946: PPUSH
13947: LD_STRING D9a-Kur-1
13949: PPUSH
13950: CALL_OW 94
// Say ( bur , D9a-Bur-1 ) ;
13954: LD_EXP 29
13958: PPUSH
13959: LD_STRING D9a-Bur-1
13961: PPUSH
13962: CALL_OW 88
// SayRadio ( kur , D9a-Kur-2 ) ;
13966: LD_EXP 27
13970: PPUSH
13971: LD_STRING D9a-Kur-2
13973: PPUSH
13974: CALL_OW 94
// posilani_arabskych_hlidek = true ;
13978: LD_ADDR_EXP 74
13982: PUSH
13983: LD_INT 1
13985: ST_TO_ADDR
// manage_ruske_computery_zpet ;
13986: CALL 7343 0 0
// end ;
13990: LD_VAR 0 1
13994: RET
// every 0 0$1 trigger stav_omikron = 8 and get_lidi_popov_area > 0 do var pom , pom1 ;
13995: LD_EXP 39
13999: PUSH
14000: LD_INT 8
14002: EQUAL
14003: PUSH
14004: CALL 8730 0 0
14008: PUSH
14009: LD_INT 0
14011: GREATER
14012: AND
14013: IFFALSE 14271
14015: GO 14017
14017: DISABLE
14018: LD_INT 0
14020: PPUSH
14021: PPUSH
// begin pom = get_lidi_popov_area ;
14022: LD_ADDR_VAR 0 1
14026: PUSH
14027: CALL 8730 0 0
14031: ST_TO_ADDR
// pom = pom [ 1 ] ;
14032: LD_ADDR_VAR 0 1
14036: PUSH
14037: LD_VAR 0 1
14041: PUSH
14042: LD_INT 1
14044: ARRAY
14045: ST_TO_ADDR
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
14046: LD_ADDR_VAR 0 2
14050: PUSH
14051: LD_INT 22
14053: PUSH
14054: LD_EXP 1
14058: PUSH
14059: EMPTY
14060: LIST
14061: LIST
14062: PUSH
14063: LD_INT 2
14065: PUSH
14066: LD_INT 21
14068: PUSH
14069: LD_INT 1
14071: PUSH
14072: EMPTY
14073: LIST
14074: LIST
14075: PUSH
14076: LD_INT 21
14078: PUSH
14079: LD_INT 2
14081: PUSH
14082: EMPTY
14083: LIST
14084: LIST
14085: PUSH
14086: EMPTY
14087: LIST
14088: LIST
14089: LIST
14090: PUSH
14091: EMPTY
14092: LIST
14093: LIST
14094: PPUSH
14095: CALL_OW 69
14099: ST_TO_ADDR
// ComStop ( pom1 ) ;
14100: LD_VAR 0 2
14104: PPUSH
14105: CALL_OW 141
// ArDontAttackPlayer ( true ) ;
14109: LD_INT 1
14111: PPUSH
14112: CALL 28484 0 1
// InGameOn ;
14116: CALL_OW 8
// CenterOnUnits ( [ pop ] ) ;
14120: LD_EXP 28
14124: PUSH
14125: EMPTY
14126: LIST
14127: PPUSH
14128: CALL_OW 85
// ComMoveUnit ( pop , pom ) ;
14132: LD_EXP 28
14136: PPUSH
14137: LD_VAR 0 1
14141: PPUSH
14142: CALL_OW 112
// while GetDistUnits ( pop , pom ) > 4 do
14146: LD_EXP 28
14150: PPUSH
14151: LD_VAR 0 1
14155: PPUSH
14156: CALL_OW 296
14160: PUSH
14161: LD_INT 4
14163: GREATER
14164: IFFALSE 14175
// wait ( 0 0$1 ) ;
14166: LD_INT 35
14168: PPUSH
14169: CALL_OW 67
14173: GO 14146
// ComTurnUnit ( pom , pop ) ;
14175: LD_VAR 0 1
14179: PPUSH
14180: LD_EXP 28
14184: PPUSH
14185: CALL_OW 119
// CenterOnUnits ( [ pop ] ) ;
14189: LD_EXP 28
14193: PUSH
14194: EMPTY
14195: LIST
14196: PPUSH
14197: CALL_OW 85
// InGameOff ;
14201: CALL_OW 9
// DialogueOn ;
14205: CALL_OW 6
// interface_hidden := true ;
14209: LD_ADDR_OWVAR 54
14213: PUSH
14214: LD_INT 1
14216: ST_TO_ADDR
// if GetDistUnits ( pop , bur ) <= 10 then
14217: LD_EXP 28
14221: PPUSH
14222: LD_EXP 29
14226: PPUSH
14227: CALL_OW 296
14231: PUSH
14232: LD_INT 10
14234: LESSEQUAL
14235: IFFALSE 14243
// dialog_popov_s_burlakem else
14237: CALL 14274 0 0
14241: GO 14247
// dialog_popov_bez_burlaka ;
14243: CALL 14402 0 0
// stav_omikron = 9 ;
14247: LD_ADDR_EXP 39
14251: PUSH
14252: LD_INT 9
14254: ST_TO_ADDR
// interface_hidden := false ;
14255: LD_ADDR_OWVAR 54
14259: PUSH
14260: LD_INT 0
14262: ST_TO_ADDR
// DialogueOff ;
14263: CALL_OW 7
// totalni_ukonceni_mise_v_ingame_videu ;
14267: CALL 8918 0 0
// end ;
14271: PPOPN 2
14273: END
// function dialog_popov_s_burlakem ; begin
14274: LD_INT 0
14276: PPUSH
// Say ( bur , D10a-Bur-1 ) ;
14277: LD_EXP 29
14281: PPUSH
14282: LD_STRING D10a-Bur-1
14284: PPUSH
14285: CALL_OW 88
// Say ( pop , D10a-Pop-1 ) ;
14289: LD_EXP 28
14293: PPUSH
14294: LD_STRING D10a-Pop-1
14296: PPUSH
14297: CALL_OW 88
// Say ( bur , D10a-Bur-2 ) ;
14301: LD_EXP 29
14305: PPUSH
14306: LD_STRING D10a-Bur-2
14308: PPUSH
14309: CALL_OW 88
// Say ( pop , D10a-Pop-2 ) ;
14313: LD_EXP 28
14317: PPUSH
14318: LD_STRING D10a-Pop-2
14320: PPUSH
14321: CALL_OW 88
// Say ( bur , D10a-Bur-3 ) ;
14325: LD_EXP 29
14329: PPUSH
14330: LD_STRING D10a-Bur-3
14332: PPUSH
14333: CALL_OW 88
// Say ( pop , D10a-Pop-3 ) ;
14337: LD_EXP 28
14341: PPUSH
14342: LD_STRING D10a-Pop-3
14344: PPUSH
14345: CALL_OW 88
// Say ( bur , D10a-Bur-4 ) ;
14349: LD_EXP 29
14353: PPUSH
14354: LD_STRING D10a-Bur-4
14356: PPUSH
14357: CALL_OW 88
// Say ( pop , D10a-Pop-4 ) ;
14361: LD_EXP 28
14365: PPUSH
14366: LD_STRING D10a-Pop-4
14368: PPUSH
14369: CALL_OW 88
// Say ( bur , D10a-Bur-5 ) ;
14373: LD_EXP 29
14377: PPUSH
14378: LD_STRING D10a-Bur-5
14380: PPUSH
14381: CALL_OW 88
// Say ( pop , D10a-Pop-5 ) ;
14385: LD_EXP 28
14389: PPUSH
14390: LD_STRING D10a-Pop-5
14392: PPUSH
14393: CALL_OW 88
// end ;
14397: LD_VAR 0 1
14401: RET
// function dialog_popov_bez_burlaka ; var pom ; begin
14402: LD_INT 0
14404: PPUSH
14405: PPUSH
// pom = FilterUnitsInArea ( Pop_area , [ [ f_side , You ] , [ f_type , unit_human ] , [ f_sex , sex_male ] ] ) ;
14406: LD_ADDR_VAR 0 2
14410: PUSH
14411: LD_INT 15
14413: PPUSH
14414: LD_INT 22
14416: PUSH
14417: LD_EXP 1
14421: PUSH
14422: EMPTY
14423: LIST
14424: LIST
14425: PUSH
14426: LD_INT 21
14428: PUSH
14429: LD_INT 1
14431: PUSH
14432: EMPTY
14433: LIST
14434: LIST
14435: PUSH
14436: LD_INT 26
14438: PUSH
14439: LD_INT 1
14441: PUSH
14442: EMPTY
14443: LIST
14444: LIST
14445: PUSH
14446: EMPTY
14447: LIST
14448: LIST
14449: LIST
14450: PPUSH
14451: CALL_OW 70
14455: ST_TO_ADDR
// if pom = 0 then
14456: LD_VAR 0 2
14460: PUSH
14461: LD_INT 0
14463: EQUAL
14464: IFFALSE 14468
// exit ;
14466: GO 14588
// Say ( pom , D10b-RSol1-1 ) ;
14468: LD_VAR 0 2
14472: PPUSH
14473: LD_STRING D10b-RSol1-1
14475: PPUSH
14476: CALL_OW 88
// Say ( pop , D10b-Pop-1 ) ;
14480: LD_EXP 28
14484: PPUSH
14485: LD_STRING D10b-Pop-1
14487: PPUSH
14488: CALL_OW 88
// Say ( pom , D10b-RSol1-2 ) ;
14492: LD_VAR 0 2
14496: PPUSH
14497: LD_STRING D10b-RSol1-2
14499: PPUSH
14500: CALL_OW 88
// SayRadio ( pop , D10b-Pop-2 ) ;
14504: LD_EXP 28
14508: PPUSH
14509: LD_STRING D10b-Pop-2
14511: PPUSH
14512: CALL_OW 94
// Say ( bur , D10b-Bur-2 ) ;
14516: LD_EXP 29
14520: PPUSH
14521: LD_STRING D10b-Bur-2
14523: PPUSH
14524: CALL_OW 88
// SayRadio ( pop , D10b-Pop-3 ) ;
14528: LD_EXP 28
14532: PPUSH
14533: LD_STRING D10b-Pop-3
14535: PPUSH
14536: CALL_OW 94
// Say ( bur , D10b-Bur-3 ) ;
14540: LD_EXP 29
14544: PPUSH
14545: LD_STRING D10b-Bur-3
14547: PPUSH
14548: CALL_OW 88
// SayRadio ( pop , D10b-Pop-4 ) ;
14552: LD_EXP 28
14556: PPUSH
14557: LD_STRING D10b-Pop-4
14559: PPUSH
14560: CALL_OW 94
// Say ( bur , D10b-Bur-4 ) ;
14564: LD_EXP 29
14568: PPUSH
14569: LD_STRING D10b-Bur-4
14571: PPUSH
14572: CALL_OW 88
// SayRadio ( pop , D10b-Pop-5 ) ;
14576: LD_EXP 28
14580: PPUSH
14581: LD_STRING D10b-Pop-5
14583: PPUSH
14584: CALL_OW 94
// end ;
14588: LD_VAR 0 1
14592: RET
// every 0 0$1 trigger stav_omikron in [ 0 , 1 , 2 , 3 ] do var pom , i , upoz , pom1 , pom2 , pom3 ; var dr_pom1 , dr_pom2 , dr_pom3 ; var dr_pom ;
14593: LD_EXP 39
14597: PUSH
14598: LD_INT 0
14600: PUSH
14601: LD_INT 1
14603: PUSH
14604: LD_INT 2
14606: PUSH
14607: LD_INT 3
14609: PUSH
14610: EMPTY
14611: LIST
14612: LIST
14613: LIST
14614: LIST
14615: IN
14616: IFFALSE 15408
14618: GO 14620
14620: DISABLE
14621: LD_INT 0
14623: PPUSH
14624: PPUSH
14625: PPUSH
14626: PPUSH
14627: PPUSH
14628: PPUSH
14629: PPUSH
14630: PPUSH
14631: PPUSH
14632: PPUSH
// begin upoz = false ;
14633: LD_ADDR_VAR 0 3
14637: PUSH
14638: LD_INT 0
14640: ST_TO_ADDR
// pom = FilterUnitsInArea ( Om_attack , [ [ f_side , You ] , f_not , [ f_type , unit_building ] ] ) ;
14641: LD_ADDR_VAR 0 1
14645: PUSH
14646: LD_INT 17
14648: PPUSH
14649: LD_INT 22
14651: PUSH
14652: LD_EXP 1
14656: PUSH
14657: EMPTY
14658: LIST
14659: LIST
14660: PUSH
14661: LD_INT 3
14663: PUSH
14664: LD_INT 21
14666: PUSH
14667: LD_INT 3
14669: PUSH
14670: EMPTY
14671: LIST
14672: LIST
14673: PUSH
14674: EMPTY
14675: LIST
14676: LIST
14677: LIST
14678: PPUSH
14679: CALL_OW 70
14683: ST_TO_ADDR
// dr_pom = FilterUnitsInArea ( Om_attack , [ [ f_side , You ] , [ f_type , unit_building ] ] ) ;
14684: LD_ADDR_VAR 0 10
14688: PUSH
14689: LD_INT 17
14691: PPUSH
14692: LD_INT 22
14694: PUSH
14695: LD_EXP 1
14699: PUSH
14700: EMPTY
14701: LIST
14702: LIST
14703: PUSH
14704: LD_INT 21
14706: PUSH
14707: LD_INT 3
14709: PUSH
14710: EMPTY
14711: LIST
14712: LIST
14713: PUSH
14714: EMPTY
14715: LIST
14716: LIST
14717: PPUSH
14718: CALL_OW 70
14722: ST_TO_ADDR
// for i in dr_pom do
14723: LD_ADDR_VAR 0 2
14727: PUSH
14728: LD_VAR 0 10
14732: PUSH
14733: FOR_IN
14734: IFFALSE 14759
// pom = pom union UnitsInside ( i ) ;
14736: LD_ADDR_VAR 0 1
14740: PUSH
14741: LD_VAR 0 1
14745: PUSH
14746: LD_VAR 0 2
14750: PPUSH
14751: CALL_OW 313
14755: UNION
14756: ST_TO_ADDR
14757: GO 14733
14759: POP
14760: POP
// if pom then
14761: LD_VAR 0 1
14765: IFFALSE 14814
// for i in pom do
14767: LD_ADDR_VAR 0 2
14771: PUSH
14772: LD_VAR 0 1
14776: PUSH
14777: FOR_IN
14778: IFFALSE 14812
// if Getside ( Attacks ( i ) ) = Amici then
14780: LD_VAR 0 2
14784: PPUSH
14785: CALL_OW 320
14789: PPUSH
14790: CALL_OW 255
14794: PUSH
14795: LD_EXP 4
14799: EQUAL
14800: IFFALSE 14810
// upoz = true ;
14802: LD_ADDR_VAR 0 3
14806: PUSH
14807: LD_INT 1
14809: ST_TO_ADDR
14810: GO 14777
14812: POP
14813: POP
// if upoz then
14814: LD_VAR 0 3
14818: IFFALSE 15407
// begin DialogueOn ;
14820: CALL_OW 6
// interface_hidden := true ;
14824: LD_ADDR_OWVAR 54
14828: PUSH
14829: LD_INT 1
14831: ST_TO_ADDR
// if IsOK ( gny ) then
14832: LD_EXP 31
14836: PPUSH
14837: CALL_OW 302
14841: IFFALSE 14869
// begin Say ( gny , D11-Gny-1 ) ;
14843: LD_EXP 31
14847: PPUSH
14848: LD_STRING D11-Gny-1
14850: PPUSH
14851: CALL_OW 88
// Say ( bur , D11-Bur-1 ) ;
14855: LD_EXP 29
14859: PPUSH
14860: LD_STRING D11-Bur-1
14862: PPUSH
14863: CALL_OW 88
// end else
14867: GO 14881
// SayRadio ( kur , D11-Kur-1 ) ;
14869: LD_EXP 27
14873: PPUSH
14874: LD_STRING D11-Kur-1
14876: PPUSH
14877: CALL_OW 94
// interface_hidden := true ;
14881: LD_ADDR_OWVAR 54
14885: PUSH
14886: LD_INT 1
14888: ST_TO_ADDR
// DialogueOff ;
14889: CALL_OW 7
// InGameOn ;
14893: CALL_OW 8
// repeat pom1 = FilterUnitsInArea ( om_at_1 , [ [ f_side , you ] , f_not , [ f_type , unit_building ] ] ) ;
14897: LD_ADDR_VAR 0 4
14901: PUSH
14902: LD_INT 18
14904: PPUSH
14905: LD_INT 22
14907: PUSH
14908: LD_EXP 1
14912: PUSH
14913: EMPTY
14914: LIST
14915: LIST
14916: PUSH
14917: LD_INT 3
14919: PUSH
14920: LD_INT 21
14922: PUSH
14923: LD_INT 3
14925: PUSH
14926: EMPTY
14927: LIST
14928: LIST
14929: PUSH
14930: EMPTY
14931: LIST
14932: LIST
14933: LIST
14934: PPUSH
14935: CALL_OW 70
14939: ST_TO_ADDR
// dr_pom1 = FilterUnitsInArea ( om_at_1 , [ [ f_side , you ] , [ f_type , unit_building ] ] ) ;
14940: LD_ADDR_VAR 0 7
14944: PUSH
14945: LD_INT 18
14947: PPUSH
14948: LD_INT 22
14950: PUSH
14951: LD_EXP 1
14955: PUSH
14956: EMPTY
14957: LIST
14958: LIST
14959: PUSH
14960: LD_INT 21
14962: PUSH
14963: LD_INT 3
14965: PUSH
14966: EMPTY
14967: LIST
14968: LIST
14969: PUSH
14970: EMPTY
14971: LIST
14972: LIST
14973: PPUSH
14974: CALL_OW 70
14978: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( om_at_2 , [ [ f_side , you ] , f_not , [ f_type , unit_building ] ] ) ;
14979: LD_ADDR_VAR 0 5
14983: PUSH
14984: LD_INT 19
14986: PPUSH
14987: LD_INT 22
14989: PUSH
14990: LD_EXP 1
14994: PUSH
14995: EMPTY
14996: LIST
14997: LIST
14998: PUSH
14999: LD_INT 3
15001: PUSH
15002: LD_INT 21
15004: PUSH
15005: LD_INT 3
15007: PUSH
15008: EMPTY
15009: LIST
15010: LIST
15011: PUSH
15012: EMPTY
15013: LIST
15014: LIST
15015: LIST
15016: PPUSH
15017: CALL_OW 70
15021: ST_TO_ADDR
// dr_pom2 = FilterUnitsInArea ( om_at_2 , [ [ f_side , you ] , [ f_type , unit_building ] ] ) ;
15022: LD_ADDR_VAR 0 8
15026: PUSH
15027: LD_INT 19
15029: PPUSH
15030: LD_INT 22
15032: PUSH
15033: LD_EXP 1
15037: PUSH
15038: EMPTY
15039: LIST
15040: LIST
15041: PUSH
15042: LD_INT 21
15044: PUSH
15045: LD_INT 3
15047: PUSH
15048: EMPTY
15049: LIST
15050: LIST
15051: PUSH
15052: EMPTY
15053: LIST
15054: LIST
15055: PPUSH
15056: CALL_OW 70
15060: ST_TO_ADDR
// pom3 = FilterUnitsInArea ( om_at_3 , [ [ f_side , you ] , f_not , [ f_type , unit_building ] ] ) ;
15061: LD_ADDR_VAR 0 6
15065: PUSH
15066: LD_INT 37
15068: PPUSH
15069: LD_INT 22
15071: PUSH
15072: LD_EXP 1
15076: PUSH
15077: EMPTY
15078: LIST
15079: LIST
15080: PUSH
15081: LD_INT 3
15083: PUSH
15084: LD_INT 21
15086: PUSH
15087: LD_INT 3
15089: PUSH
15090: EMPTY
15091: LIST
15092: LIST
15093: PUSH
15094: EMPTY
15095: LIST
15096: LIST
15097: LIST
15098: PPUSH
15099: CALL_OW 70
15103: ST_TO_ADDR
// dr_pom3 = FilterUnitsInArea ( om_at_3 , [ [ f_side , you ] , [ f_type , unit_building ] ] ) ;
15104: LD_ADDR_VAR 0 9
15108: PUSH
15109: LD_INT 37
15111: PPUSH
15112: LD_INT 22
15114: PUSH
15115: LD_EXP 1
15119: PUSH
15120: EMPTY
15121: LIST
15122: LIST
15123: PUSH
15124: LD_INT 21
15126: PUSH
15127: LD_INT 3
15129: PUSH
15130: EMPTY
15131: LIST
15132: LIST
15133: PUSH
15134: EMPTY
15135: LIST
15136: LIST
15137: PPUSH
15138: CALL_OW 70
15142: ST_TO_ADDR
// ComMoveToArea ( pom1 , om_ven_3 ) ;
15143: LD_VAR 0 4
15147: PPUSH
15148: LD_INT 31
15150: PPUSH
15151: CALL_OW 113
// for i in dr_pom1 do
15155: LD_ADDR_VAR 0 2
15159: PUSH
15160: LD_VAR 0 7
15164: PUSH
15165: FOR_IN
15166: IFFALSE 15206
// begin dr_pom = UnitsInside ( i ) ;
15168: LD_ADDR_VAR 0 10
15172: PUSH
15173: LD_VAR 0 2
15177: PPUSH
15178: CALL_OW 313
15182: ST_TO_ADDR
// ComExitBuilding ( dr_pom ) ;
15183: LD_VAR 0 10
15187: PPUSH
15188: CALL_OW 122
// AddComMoveToArea ( dr_pom , om_ven_1 ) ;
15192: LD_VAR 0 10
15196: PPUSH
15197: LD_INT 29
15199: PPUSH
15200: CALL_OW 173
// end ;
15204: GO 15165
15206: POP
15207: POP
// ComMoveToArea ( pom2 , om_zone ) ;
15208: LD_VAR 0 5
15212: PPUSH
15213: LD_INT 8
15215: PPUSH
15216: CALL_OW 113
// for i in dr_pom2 do
15220: LD_ADDR_VAR 0 2
15224: PUSH
15225: LD_VAR 0 8
15229: PUSH
15230: FOR_IN
15231: IFFALSE 15271
// begin dr_pom = UnitsInside ( i ) ;
15233: LD_ADDR_VAR 0 10
15237: PUSH
15238: LD_VAR 0 2
15242: PPUSH
15243: CALL_OW 313
15247: ST_TO_ADDR
// ComExitBuilding ( dr_pom ) ;
15248: LD_VAR 0 10
15252: PPUSH
15253: CALL_OW 122
// AddComMoveToArea ( dr_pom , om_ven_2 ) ;
15257: LD_VAR 0 10
15261: PPUSH
15262: LD_INT 30
15264: PPUSH
15265: CALL_OW 173
// end ;
15269: GO 15230
15271: POP
15272: POP
// ComMoveToArea ( pom3 , om_zone ) ;
15273: LD_VAR 0 6
15277: PPUSH
15278: LD_INT 8
15280: PPUSH
15281: CALL_OW 113
// for i in dr_pom3 do
15285: LD_ADDR_VAR 0 2
15289: PUSH
15290: LD_VAR 0 9
15294: PUSH
15295: FOR_IN
15296: IFFALSE 15336
// begin dr_pom = UnitsInside ( i ) ;
15298: LD_ADDR_VAR 0 10
15302: PUSH
15303: LD_VAR 0 2
15307: PPUSH
15308: CALL_OW 313
15312: ST_TO_ADDR
// ComExitBuilding ( dr_pom ) ;
15313: LD_VAR 0 10
15317: PPUSH
15318: CALL_OW 122
// AddComMoveToArea ( dr_pom , om_ven_3 ) ;
15322: LD_VAR 0 10
15326: PPUSH
15327: LD_INT 31
15329: PPUSH
15330: CALL_OW 173
// end ;
15334: GO 15295
15336: POP
15337: POP
// wait ( 0 0$3 ) ;
15338: LD_INT 105
15340: PPUSH
15341: CALL_OW 67
// until not ( pom1 or pom3 or pom3 ) ;
15345: LD_VAR 0 4
15349: PUSH
15350: LD_VAR 0 6
15354: OR
15355: PUSH
15356: LD_VAR 0 6
15360: OR
15361: NOT
15362: IFFALSE 14897
// wait ( 0 0$4 ) ;
15364: LD_INT 140
15366: PPUSH
15367: CALL_OW 67
// if dr_pom3 then
15371: LD_VAR 0 9
15375: IFFALSE 15403
// for i in dr_pom3 do
15377: LD_ADDR_VAR 0 2
15381: PUSH
15382: LD_VAR 0 9
15386: PUSH
15387: FOR_IN
15388: IFFALSE 15401
// KillUnit ( i ) ;
15390: LD_VAR 0 2
15394: PPUSH
15395: CALL_OW 66
15399: GO 15387
15401: POP
15402: POP
// InGameOff ;
15403: CALL_OW 9
// end ; enable ;
15407: ENABLE
// end ;
15408: PPOPN 10
15410: END
// every 1 trigger stav_omikron in [ 4 , 5 , 6 ] do var pom , pom1 , pom2 , i , AreaNotCleared , firstDialog ;
15411: LD_EXP 39
15415: PUSH
15416: LD_INT 4
15418: PUSH
15419: LD_INT 5
15421: PUSH
15422: LD_INT 6
15424: PUSH
15425: EMPTY
15426: LIST
15427: LIST
15428: LIST
15429: IN
15430: IFFALSE 15590
15432: GO 15434
15434: DISABLE
15435: LD_INT 0
15437: PPUSH
15438: PPUSH
15439: PPUSH
15440: PPUSH
15441: PPUSH
15442: PPUSH
// begin enable ;
15443: ENABLE
// pom = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_human ] , [ f_side , 3 ] ] ) ;
15444: LD_ADDR_VAR 0 1
15448: PUSH
15449: LD_INT 20
15451: PPUSH
15452: LD_INT 21
15454: PUSH
15455: LD_INT 1
15457: PUSH
15458: EMPTY
15459: LIST
15460: LIST
15461: PUSH
15462: LD_INT 22
15464: PUSH
15465: LD_INT 3
15467: PUSH
15468: EMPTY
15469: LIST
15470: LIST
15471: PUSH
15472: EMPTY
15473: LIST
15474: LIST
15475: PPUSH
15476: CALL_OW 70
15480: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_vehicle ] , [ f_side , 3 ] ] ) ;
15481: LD_ADDR_VAR 0 3
15485: PUSH
15486: LD_INT 20
15488: PPUSH
15489: LD_INT 21
15491: PUSH
15492: LD_INT 2
15494: PUSH
15495: EMPTY
15496: LIST
15497: LIST
15498: PUSH
15499: LD_INT 22
15501: PUSH
15502: LD_INT 3
15504: PUSH
15505: EMPTY
15506: LIST
15507: LIST
15508: PUSH
15509: EMPTY
15510: LIST
15511: LIST
15512: PPUSH
15513: CALL_OW 70
15517: ST_TO_ADDR
// if pom or pom2 then
15518: LD_VAR 0 1
15522: PUSH
15523: LD_VAR 0 3
15527: OR
15528: IFFALSE 15590
// begin ComMoveXY ( pom , 62 , 16 ) ;
15530: LD_VAR 0 1
15534: PPUSH
15535: LD_INT 62
15537: PPUSH
15538: LD_INT 16
15540: PPUSH
15541: CALL_OW 111
// ComMoveXY ( pom2 , 62 , 16 ) ;
15545: LD_VAR 0 3
15549: PPUSH
15550: LD_INT 62
15552: PPUSH
15553: LD_INT 16
15555: PPUSH
15556: CALL_OW 111
// if KurinDialog = 0 then
15560: LD_EXP 6
15564: PUSH
15565: LD_INT 0
15567: EQUAL
15568: IFFALSE 15590
// begin KurinDialog = 1 ;
15570: LD_ADDR_EXP 6
15574: PUSH
15575: LD_INT 1
15577: ST_TO_ADDR
// Say ( kur , D12-Kur-1 ) ;
15578: LD_EXP 27
15582: PPUSH
15583: LD_STRING D12-Kur-1
15585: PPUSH
15586: CALL_OW 88
// end ; end ; end ;
15590: PPOPN 6
15592: END
// export function hlaska_lhani ; begin
15593: LD_INT 0
15595: PPUSH
// DialogueOn ;
15596: CALL_OW 6
// interface_hidden := true ;
15600: LD_ADDR_OWVAR 54
15604: PUSH
15605: LD_INT 1
15607: ST_TO_ADDR
// Say ( kur , D6d-Kur-1 ) ;
15608: LD_EXP 27
15612: PPUSH
15613: LD_STRING D6d-Kur-1
15615: PPUSH
15616: CALL_OW 88
// interface_hidden := false ;
15620: LD_ADDR_OWVAR 54
15624: PUSH
15625: LD_INT 0
15627: ST_TO_ADDR
// DialogueOff ;
15628: CALL_OW 7
// end ;
15632: LD_VAR 0 1
15636: RET
// export function dialog_upoz ; begin
15637: LD_INT 0
15639: PPUSH
// DialogueOn ;
15640: CALL_OW 6
// interface_hidden := true ;
15644: LD_ADDR_OWVAR 54
15648: PUSH
15649: LD_INT 1
15651: ST_TO_ADDR
// SayRadio ( kur , D7a-Kur-1 ) ;
15652: LD_EXP 27
15656: PPUSH
15657: LD_STRING D7a-Kur-1
15659: PPUSH
15660: CALL_OW 94
// interface_hidden := false ;
15664: LD_ADDR_OWVAR 54
15668: PUSH
15669: LD_INT 0
15671: ST_TO_ADDR
// DialogueOff ;
15672: CALL_OW 7
// end ;
15676: LD_VAR 0 1
15680: RET
// every 0 0$1 do var pom , i ; var Ru_Units ;
15681: GO 15683
15683: DISABLE
15684: LD_INT 0
15686: PPUSH
15687: PPUSH
15688: PPUSH
// begin Ru_Units = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
15689: LD_ADDR_VAR 0 3
15693: PUSH
15694: LD_INT 22
15696: PUSH
15697: LD_EXP 1
15701: PUSH
15702: EMPTY
15703: LIST
15704: LIST
15705: PUSH
15706: LD_INT 2
15708: PUSH
15709: LD_INT 21
15711: PUSH
15712: LD_INT 1
15714: PUSH
15715: EMPTY
15716: LIST
15717: LIST
15718: PUSH
15719: LD_INT 21
15721: PUSH
15722: LD_INT 2
15724: PUSH
15725: EMPTY
15726: LIST
15727: LIST
15728: PUSH
15729: EMPTY
15730: LIST
15731: LIST
15732: LIST
15733: PUSH
15734: EMPTY
15735: LIST
15736: LIST
15737: PPUSH
15738: CALL_OW 69
15742: ST_TO_ADDR
// for i in Ru_Units do
15743: LD_ADDR_VAR 0 2
15747: PUSH
15748: LD_VAR 0 3
15752: PUSH
15753: FOR_IN
15754: IFFALSE 15861
// begin pom = Attacks ( i ) ;
15756: LD_ADDR_VAR 0 1
15760: PUSH
15761: LD_VAR 0 2
15765: PPUSH
15766: CALL_OW 320
15770: ST_TO_ADDR
// if pom <> 0 then
15771: LD_VAR 0 1
15775: PUSH
15776: LD_INT 0
15778: NONEQUAL
15779: IFFALSE 15821
// if Getside ( pom ) in [ You2 , You3 ] then
15781: LD_VAR 0 1
15785: PPUSH
15786: CALL_OW 255
15790: PUSH
15791: LD_EXP 2
15795: PUSH
15796: LD_EXP 3
15800: PUSH
15801: EMPTY
15802: LIST
15803: LIST
15804: IN
15805: IFFALSE 15821
// konstanta_utoceni = konstanta_utoceni + 1 ;
15807: LD_ADDR_EXP 49
15811: PUSH
15812: LD_EXP 49
15816: PUSH
15817: LD_INT 1
15819: PLUS
15820: ST_TO_ADDR
// if pom = pop or pom = kur then
15821: LD_VAR 0 1
15825: PUSH
15826: LD_EXP 28
15830: EQUAL
15831: PUSH
15832: LD_VAR 0 1
15836: PUSH
15837: LD_EXP 27
15841: EQUAL
15842: OR
15843: IFFALSE 15859
// konstanta_utoceni = konstanta_utoceni + 10 ;
15845: LD_ADDR_EXP 49
15849: PUSH
15850: LD_EXP 49
15854: PUSH
15855: LD_INT 10
15857: PLUS
15858: ST_TO_ADDR
// end ;
15859: GO 15753
15861: POP
15862: POP
// if konstanta_utoceni < 10 then
15863: LD_EXP 49
15867: PUSH
15868: LD_INT 10
15870: LESS
15871: IFFALSE 15874
// enable ;
15873: ENABLE
// end ;
15874: PPOPN 3
15876: END
// every 0 0$1 trigger konstanta_utoceni >= 10 do
15877: LD_EXP 49
15881: PUSH
15882: LD_INT 10
15884: GREATEREQUAL
15885: IFFALSE 15894
15887: GO 15889
15889: DISABLE
// begin konec_mise_utok ;
15890: CALL 1474 0 0
// end ;
15894: END
// every 0 0$1 trigger stav_omikron < 6 and not FilterAllUnits ( [ f_side , 2 ] ) and ( FilterAllUnits ( [ [ f_side , 6 ] , [ f_type , unit_building ] , [ f_not , [ f_constructed ] ] , [ f_not , [ f_lives , 999 ] ] ] ) or GetLives ( kur ) < 999 ) do
15895: LD_EXP 39
15899: PUSH
15900: LD_INT 6
15902: LESS
15903: PUSH
15904: LD_INT 22
15906: PUSH
15907: LD_INT 2
15909: PUSH
15910: EMPTY
15911: LIST
15912: LIST
15913: PPUSH
15914: CALL_OW 69
15918: NOT
15919: AND
15920: PUSH
15921: LD_INT 22
15923: PUSH
15924: LD_INT 6
15926: PUSH
15927: EMPTY
15928: LIST
15929: LIST
15930: PUSH
15931: LD_INT 21
15933: PUSH
15934: LD_INT 3
15936: PUSH
15937: EMPTY
15938: LIST
15939: LIST
15940: PUSH
15941: LD_INT 3
15943: PUSH
15944: LD_INT 57
15946: PUSH
15947: EMPTY
15948: LIST
15949: PUSH
15950: EMPTY
15951: LIST
15952: LIST
15953: PUSH
15954: LD_INT 3
15956: PUSH
15957: LD_INT 24
15959: PUSH
15960: LD_INT 999
15962: PUSH
15963: EMPTY
15964: LIST
15965: LIST
15966: PUSH
15967: EMPTY
15968: LIST
15969: LIST
15970: PUSH
15971: EMPTY
15972: LIST
15973: LIST
15974: LIST
15975: LIST
15976: PPUSH
15977: CALL_OW 69
15981: PUSH
15982: LD_EXP 27
15986: PPUSH
15987: CALL_OW 256
15991: PUSH
15992: LD_INT 999
15994: LESS
15995: OR
15996: AND
15997: IFFALSE 16006
15999: GO 16001
16001: DISABLE
// konec_mise_utok ;
16002: CALL 1474 0 0
16006: END
// export function dialog_scholtze_umrel ; var i , pom , pom1 ; begin
16007: LD_INT 0
16009: PPUSH
16010: PPUSH
16011: PPUSH
16012: PPUSH
// pom = 0 ;
16013: LD_ADDR_VAR 0 3
16017: PUSH
16018: LD_INT 0
16020: ST_TO_ADDR
// DialogueOn ;
16021: CALL_OW 6
// interface_hidden := true ;
16025: LD_ADDR_OWVAR 54
16029: PUSH
16030: LD_INT 1
16032: ST_TO_ADDR
// ForceSay ( schol2 , D4b-Sch-1 ) ;
16033: LD_EXP 34
16037: PPUSH
16038: LD_STRING D4b-Sch-1
16040: PPUSH
16041: CALL_OW 91
// pom = FilterAllUnits ( [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
16045: LD_ADDR_VAR 0 3
16049: PUSH
16050: LD_INT 22
16052: PUSH
16053: LD_EXP 4
16057: PUSH
16058: EMPTY
16059: LIST
16060: LIST
16061: PUSH
16062: LD_INT 21
16064: PUSH
16065: LD_INT 1
16067: PUSH
16068: EMPTY
16069: LIST
16070: LIST
16071: PUSH
16072: EMPTY
16073: LIST
16074: LIST
16075: PPUSH
16076: CALL_OW 69
16080: ST_TO_ADDR
// pom1 = NearestUnitToUnit ( pom , schol2 ) ;
16081: LD_ADDR_VAR 0 4
16085: PUSH
16086: LD_VAR 0 3
16090: PPUSH
16091: LD_EXP 34
16095: PPUSH
16096: CALL_OW 74
16100: ST_TO_ADDR
// if pom1 <> 0 then
16101: LD_VAR 0 4
16105: PUSH
16106: LD_INT 0
16108: NONEQUAL
16109: IFFALSE 16123
// SayNoName ( pom1 , D4b-Sol1-1 ) ;
16111: LD_VAR 0 4
16115: PPUSH
16116: LD_STRING D4b-Sol1-1
16118: PPUSH
16119: CALL_OW 90
// pom1 = NearestUnitToUnit ( pom diff pom1 , pom1 ) ;
16123: LD_ADDR_VAR 0 4
16127: PUSH
16128: LD_VAR 0 3
16132: PUSH
16133: LD_VAR 0 4
16137: DIFF
16138: PPUSH
16139: LD_VAR 0 4
16143: PPUSH
16144: CALL_OW 74
16148: ST_TO_ADDR
// SayNoName ( pom1 , D4b-Sol2-1 ) ;
16149: LD_VAR 0 4
16153: PPUSH
16154: LD_STRING D4b-Sol2-1
16156: PPUSH
16157: CALL_OW 90
// ForceSay ( schol2 , D4b-Sch-2 ) ;
16161: LD_EXP 34
16165: PPUSH
16166: LD_STRING D4b-Sch-2
16168: PPUSH
16169: CALL_OW 91
// Say ( bur , D4b-Bur-2 ) ;
16173: LD_EXP 29
16177: PPUSH
16178: LD_STRING D4b-Bur-2
16180: PPUSH
16181: CALL_OW 88
// SetLives ( schol2 , 0 ) ;
16185: LD_EXP 34
16189: PPUSH
16190: LD_INT 0
16192: PPUSH
16193: CALL_OW 234
// ChangeMissionObjectives ( MScholtzeDel ) ;
16197: LD_STRING MScholtzeDel
16199: PPUSH
16200: CALL_OW 337
// interface_hidden := false ;
16204: LD_ADDR_OWVAR 54
16208: PUSH
16209: LD_INT 0
16211: ST_TO_ADDR
// DialogueOff ;
16212: CALL_OW 7
// end ;
16216: LD_VAR 0 1
16220: RET
// on UnitGoesToRed ( un ) do begin if un = schol2 then
16221: LD_VAR 0 1
16225: PUSH
16226: LD_EXP 34
16230: EQUAL
16231: IFFALSE 16247
// if kecy_scholtze_nalezen then
16233: LD_EXP 44
16237: IFFALSE 16243
// exit else
16239: GO 16247
16241: GO 16247
// dialog_scholtze_umrel ;
16243: CALL 16007 0 0
// end ;
16247: PPOPN 1
16249: END
// every 0 0$2 trigger FilterUnitsInArea ( noTracksArea , [ [ f_side , You ] , [ f_or , [ f_chassis , ru_medium_wheeled ] , [ f_chassis , ru_heavy_wheeled ] , [ f_chassis , us_light_wheeled ] , [ f_chassis , us_medium_wheeled ] ] ] ) and stav_omikron in [ 0 , 1 , 2 , 3 ] do
16250: LD_INT 53
16252: PPUSH
16253: LD_INT 22
16255: PUSH
16256: LD_EXP 1
16260: PUSH
16261: EMPTY
16262: LIST
16263: LIST
16264: PUSH
16265: LD_INT 2
16267: PUSH
16268: LD_INT 31
16270: PUSH
16271: LD_INT 21
16273: PUSH
16274: EMPTY
16275: LIST
16276: LIST
16277: PUSH
16278: LD_INT 31
16280: PUSH
16281: LD_INT 23
16283: PUSH
16284: EMPTY
16285: LIST
16286: LIST
16287: PUSH
16288: LD_INT 31
16290: PUSH
16291: LD_INT 1
16293: PUSH
16294: EMPTY
16295: LIST
16296: LIST
16297: PUSH
16298: LD_INT 31
16300: PUSH
16301: LD_INT 2
16303: PUSH
16304: EMPTY
16305: LIST
16306: LIST
16307: PUSH
16308: EMPTY
16309: LIST
16310: LIST
16311: LIST
16312: LIST
16313: LIST
16314: PUSH
16315: EMPTY
16316: LIST
16317: LIST
16318: PPUSH
16319: CALL_OW 70
16323: PUSH
16324: LD_EXP 39
16328: PUSH
16329: LD_INT 0
16331: PUSH
16332: LD_INT 1
16334: PUSH
16335: LD_INT 2
16337: PUSH
16338: LD_INT 3
16340: PUSH
16341: EMPTY
16342: LIST
16343: LIST
16344: LIST
16345: LIST
16346: IN
16347: AND
16348: IFFALSE 16375
16350: GO 16352
16352: DISABLE
// begin CenterOnXY ( 38 , 58 ) ;
16353: LD_INT 38
16355: PPUSH
16356: LD_INT 58
16358: PPUSH
16359: CALL_OW 84
// Say ( bur , D5a-Bur-1 ) ;
16363: LD_EXP 29
16367: PPUSH
16368: LD_STRING D5a-Bur-1
16370: PPUSH
16371: CALL_OW 88
// end ;
16375: END
// on BuildingStarted ( b , builder ) do begin if b in FilterUnitsInArea ( restrictedArea , [ f_side , 3 ] ) then
16376: LD_VAR 0 1
16380: PUSH
16381: LD_INT 54
16383: PPUSH
16384: LD_INT 22
16386: PUSH
16387: LD_INT 3
16389: PUSH
16390: EMPTY
16391: LIST
16392: LIST
16393: PPUSH
16394: CALL_OW 70
16398: IN
16399: IFFALSE 16410
// RemoveUnit ( b ) ;
16401: LD_VAR 0 1
16405: PPUSH
16406: CALL_OW 64
// end ;
16410: PPOPN 2
16412: END
// every 0 0$3 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_oil_power ] ] ) > 0 do var pom ;
16413: LD_INT 22
16415: PUSH
16416: LD_EXP 1
16420: PUSH
16421: EMPTY
16422: LIST
16423: LIST
16424: PUSH
16425: LD_INT 30
16427: PUSH
16428: LD_INT 26
16430: PUSH
16431: EMPTY
16432: LIST
16433: LIST
16434: PUSH
16435: EMPTY
16436: LIST
16437: LIST
16438: PPUSH
16439: CALL_OW 69
16443: PUSH
16444: LD_INT 0
16446: GREATER
16447: IFFALSE 16539
16449: GO 16451
16451: DISABLE
16452: LD_INT 0
16454: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_oil_mine ] ] ) ;
16455: LD_ADDR_VAR 0 1
16459: PUSH
16460: LD_INT 22
16462: PUSH
16463: LD_EXP 1
16467: PUSH
16468: EMPTY
16469: LIST
16470: LIST
16471: PUSH
16472: LD_INT 30
16474: PUSH
16475: LD_INT 29
16477: PUSH
16478: EMPTY
16479: LIST
16480: LIST
16481: PUSH
16482: EMPTY
16483: LIST
16484: LIST
16485: PPUSH
16486: CALL_OW 69
16490: ST_TO_ADDR
// if pom > 0 then
16491: LD_VAR 0 1
16495: PUSH
16496: LD_INT 0
16498: GREATER
16499: IFFALSE 16538
// begin while IsConstructed ( pom [ 1 ] ) <> 0 do
16501: LD_VAR 0 1
16505: PUSH
16506: LD_INT 1
16508: ARRAY
16509: PPUSH
16510: CALL_OW 304
16514: PUSH
16515: LD_INT 0
16517: NONEQUAL
16518: IFFALSE 16529
// wait ( 0 0$1 ) ;
16520: LD_INT 35
16522: PPUSH
16523: CALL_OW 67
16527: GO 16501
// Hint ( PowerPlant ) ;
16529: LD_STRING PowerPlant
16531: PPUSH
16532: CALL_OW 339
// end else
16536: GO 16539
// enable ;
16538: ENABLE
// end ;
16539: PPOPN 1
16541: END
// every 0 0$5 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) > 1 do var pom , pom1 ; var i ; var pocet ;
16542: LD_INT 22
16544: PUSH
16545: LD_EXP 1
16549: PUSH
16550: EMPTY
16551: LIST
16552: LIST
16553: PUSH
16554: LD_INT 30
16556: PUSH
16557: LD_INT 0
16559: PUSH
16560: EMPTY
16561: LIST
16562: LIST
16563: PUSH
16564: EMPTY
16565: LIST
16566: LIST
16567: PPUSH
16568: CALL_OW 69
16572: PUSH
16573: LD_INT 1
16575: GREATER
16576: IFFALSE 16736
16578: GO 16580
16580: DISABLE
16581: LD_INT 0
16583: PPUSH
16584: PPUSH
16585: PPUSH
16586: PPUSH
// begin pocet = 0 ;
16587: LD_ADDR_VAR 0 4
16591: PUSH
16592: LD_INT 0
16594: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) ;
16595: LD_ADDR_VAR 0 1
16599: PUSH
16600: LD_INT 22
16602: PUSH
16603: LD_EXP 1
16607: PUSH
16608: EMPTY
16609: LIST
16610: LIST
16611: PUSH
16612: LD_INT 30
16614: PUSH
16615: LD_INT 0
16617: PUSH
16618: EMPTY
16619: LIST
16620: LIST
16621: PUSH
16622: EMPTY
16623: LIST
16624: LIST
16625: PPUSH
16626: CALL_OW 69
16630: ST_TO_ADDR
// pom1 = pom ;
16631: LD_ADDR_VAR 0 2
16635: PUSH
16636: LD_VAR 0 1
16640: ST_TO_ADDR
// while pocet < 2 do
16641: LD_VAR 0 4
16645: PUSH
16646: LD_INT 2
16648: LESS
16649: IFFALSE 16729
// begin for i in pom do
16651: LD_ADDR_VAR 0 3
16655: PUSH
16656: LD_VAR 0 1
16660: PUSH
16661: FOR_IN
16662: IFFALSE 16708
// if not IsConstructed ( i ) then
16664: LD_VAR 0 3
16668: PPUSH
16669: CALL_OW 304
16673: NOT
16674: IFFALSE 16706
// begin pocet = pocet + 1 ;
16676: LD_ADDR_VAR 0 4
16680: PUSH
16681: LD_VAR 0 4
16685: PUSH
16686: LD_INT 1
16688: PLUS
16689: ST_TO_ADDR
// pom1 = pom1 diff i ;
16690: LD_ADDR_VAR 0 2
16694: PUSH
16695: LD_VAR 0 2
16699: PUSH
16700: LD_VAR 0 3
16704: DIFF
16705: ST_TO_ADDR
// end ;
16706: GO 16661
16708: POP
16709: POP
// pom = pom1 ;
16710: LD_ADDR_VAR 0 1
16714: PUSH
16715: LD_VAR 0 2
16719: ST_TO_ADDR
// wait ( 0 0$2 ) ;
16720: LD_INT 70
16722: PPUSH
16723: CALL_OW 67
// end ;
16727: GO 16641
// Hint ( Transport1 ) ;
16729: LD_STRING Transport1
16731: PPUSH
16732: CALL_OW 339
// end ;
16736: PPOPN 4
16738: END
// export function chmo_6 ; begin
16739: LD_INT 0
16741: PPUSH
// ChangeMissionObjectives ( M6a ) ;
16742: LD_STRING M6a
16744: PPUSH
16745: CALL_OW 337
// end ;
16749: LD_VAR 0 1
16753: RET
// export function query_refuel ; begin
16754: LD_INT 0
16756: PPUSH
// Query ( QRefuel ) ;
16757: LD_STRING QRefuel
16759: PPUSH
16760: CALL_OW 97
// end ;
16764: LD_VAR 0 1
16768: RET
// every 0 0$6 do var pom ;
16769: GO 16771
16771: DISABLE
16772: LD_INT 0
16774: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
16775: LD_ADDR_VAR 0 1
16779: PUSH
16780: LD_INT 22
16782: PUSH
16783: LD_EXP 1
16787: PUSH
16788: EMPTY
16789: LIST
16790: LIST
16791: PUSH
16792: LD_INT 21
16794: PUSH
16795: LD_INT 1
16797: PUSH
16798: EMPTY
16799: LIST
16800: LIST
16801: PUSH
16802: EMPTY
16803: LIST
16804: LIST
16805: PPUSH
16806: CALL_OW 69
16810: ST_TO_ADDR
// if postavenych_aut >= pom then
16811: LD_EXP 47
16815: PUSH
16816: LD_VAR 0 1
16820: GREATEREQUAL
16821: IFFALSE 16832
// ChangeMissionObjectives ( M3a ) else
16823: LD_STRING M3a
16825: PPUSH
16826: CALL_OW 337
16830: GO 16833
// enable ;
16832: ENABLE
// end ;
16833: PPOPN 1
16835: END
// export function hint_cerpaci_auta ; begin
16836: LD_INT 0
16838: PPUSH
// Hint ( refuelingtrucks ) ;
16839: LD_STRING refuelingtrucks
16841: PPUSH
16842: CALL_OW 339
// end ; end_of_file
16846: LD_VAR 0 1
16850: RET
// export AMERICKA_POMOC_HLIDCE_LIST ; export AMERICKE_POSILY1_LIST ; export AMERICKE_POSILY2_LIST ; export AMERICKE_POSILY3_LIST ; export AMERICKE_POSILY4_LIST ; export AMERICKE_POSILY11_LIST ; export RUSKE_POSILY_NA_OMICRON_LIST ; export RUSKE_POSILY_RIDICI_LIST ; export RU_posily_na_utek ; export RUSI_CERPACI_AUTA_LIST ; export ARABI_KAMIKADZE_LIST ; export ARABI_PRVNI_VLNA ; export ARABI_FLAME_LIST ; export ARABI_SELF_AUTA ; export ARABI_VOJACI ; export ARABI_doraz ; export ARABI_KIROV_POSILY ; export Arabi_komanda1 ; export Arabi_komanda2 ; export Arabi_komanda3 ; export Arabi_komanda4 ; export other_survivors_mise_2 ; var ah , av ; export function get_sex ; begin
16851: LD_INT 0
16853: PPUSH
// if Prob ( 20 ) then
16854: LD_INT 20
16856: PPUSH
16857: CALL_OW 13
16861: IFFALSE 16873
// result = sex_female else
16863: LD_ADDR_VAR 0 1
16867: PUSH
16868: LD_INT 2
16870: ST_TO_ADDR
16871: GO 16881
// result = sex_male ;
16873: LD_ADDR_VAR 0 1
16877: PUSH
16878: LD_INT 1
16880: ST_TO_ADDR
// end ;
16881: LD_VAR 0 1
16885: RET
// export function get_human ( sex , clas , level , name ) ; begin
16886: LD_INT 0
16888: PPUSH
// PrepareHuman ( sex , clas , level ) ;
16889: LD_VAR 0 1
16893: PPUSH
16894: LD_VAR 0 2
16898: PPUSH
16899: LD_VAR 0 3
16903: PPUSH
16904: CALL_OW 380
// hc_name := name ;
16908: LD_ADDR_OWVAR 26
16912: PUSH
16913: LD_VAR 0 4
16917: ST_TO_ADDR
// result := CreateHuman ;
16918: LD_ADDR_VAR 0 5
16922: PUSH
16923: CALL_OW 44
16927: ST_TO_ADDR
// end ;
16928: LD_VAR 0 5
16932: RET
// export function create_americka_pomoc_hlidce ; var pom ; begin
16933: LD_INT 0
16935: PPUSH
16936: PPUSH
// pom = [ ] ;
16937: LD_ADDR_VAR 0 2
16941: PUSH
16942: EMPTY
16943: ST_TO_ADDR
// uc_side = Amici ;
16944: LD_ADDR_OWVAR 20
16948: PUSH
16949: LD_EXP 4
16953: ST_TO_ADDR
// uc_nation = nation_american ;
16954: LD_ADDR_OWVAR 21
16958: PUSH
16959: LD_INT 1
16961: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
16962: LD_ADDR_LOC 23
16966: PUSH
16967: CALL 16851 0 0
16971: PPUSH
16972: LD_INT 3
16974: PPUSH
16975: LD_EXP 13
16979: PUSH
16980: LD_OWVAR 67
16984: ARRAY
16985: PPUSH
16986: LD_STRING 
16988: PPUSH
16989: CALL 16886 0 4
16993: ST_TO_ADDR
// case difficulty of 1 :
16994: LD_OWVAR 67
16998: PUSH
16999: LD_INT 1
17001: DOUBLE
17002: EQUAL
17003: IFTRUE 17007
17005: GO 17042
17007: POP
// begin vc_chassis = us_light_wheeled ;
17008: LD_ADDR_OWVAR 37
17012: PUSH
17013: LD_INT 1
17015: ST_TO_ADDR
// vc_control = control_manual ;
17016: LD_ADDR_OWVAR 38
17020: PUSH
17021: LD_INT 1
17023: ST_TO_ADDR
// vc_engine = engine_solar ;
17024: LD_ADDR_OWVAR 39
17028: PUSH
17029: LD_INT 2
17031: ST_TO_ADDR
// vc_weapon = us_light_gun ;
17032: LD_ADDR_OWVAR 40
17036: PUSH
17037: LD_INT 3
17039: ST_TO_ADDR
// end ; 2 :
17040: GO 17129
17042: LD_INT 2
17044: DOUBLE
17045: EQUAL
17046: IFTRUE 17050
17048: GO 17085
17050: POP
// begin vc_chassis = us_light_wheeled ;
17051: LD_ADDR_OWVAR 37
17055: PUSH
17056: LD_INT 1
17058: ST_TO_ADDR
// vc_control = control_manual ;
17059: LD_ADDR_OWVAR 38
17063: PUSH
17064: LD_INT 1
17066: ST_TO_ADDR
// vc_engine = engine_solar ;
17067: LD_ADDR_OWVAR 39
17071: PUSH
17072: LD_INT 2
17074: ST_TO_ADDR
// vc_weapon = us_machine_gun ;
17075: LD_ADDR_OWVAR 40
17079: PUSH
17080: LD_INT 2
17082: ST_TO_ADDR
// end ; 3 :
17083: GO 17129
17085: LD_INT 3
17087: DOUBLE
17088: EQUAL
17089: IFTRUE 17093
17091: GO 17128
17093: POP
// begin vc_chassis = us_medium_wheeled ;
17094: LD_ADDR_OWVAR 37
17098: PUSH
17099: LD_INT 2
17101: ST_TO_ADDR
// vc_control = control_manual ;
17102: LD_ADDR_OWVAR 38
17106: PUSH
17107: LD_INT 1
17109: ST_TO_ADDR
// vc_engine = engine_combustion ;
17110: LD_ADDR_OWVAR 39
17114: PUSH
17115: LD_INT 1
17117: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
17118: LD_ADDR_OWVAR 40
17122: PUSH
17123: LD_INT 4
17125: ST_TO_ADDR
// end ; end ;
17126: GO 17129
17128: POP
// av = CreateVehicle ;
17129: LD_ADDR_LOC 24
17133: PUSH
17134: CALL_OW 45
17138: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
17139: LD_LOC 23
17143: PPUSH
17144: LD_LOC 24
17148: PPUSH
17149: CALL_OW 52
// pom = pom ^ av ;
17153: LD_ADDR_VAR 0 2
17157: PUSH
17158: LD_VAR 0 2
17162: PUSH
17163: LD_LOC 24
17167: ADD
17168: ST_TO_ADDR
// ah = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
17169: LD_ADDR_LOC 23
17173: PUSH
17174: CALL 16851 0 0
17178: PPUSH
17179: LD_INT 1
17181: PPUSH
17182: LD_EXP 13
17186: PUSH
17187: LD_OWVAR 67
17191: ARRAY
17192: PPUSH
17193: LD_STRING 
17195: PPUSH
17196: CALL 16886 0 4
17200: ST_TO_ADDR
// pom = pom ^ ah ;
17201: LD_ADDR_VAR 0 2
17205: PUSH
17206: LD_VAR 0 2
17210: PUSH
17211: LD_LOC 23
17215: ADD
17216: ST_TO_ADDR
// if pom > 2 then
17217: LD_VAR 0 2
17221: PUSH
17222: LD_INT 2
17224: GREATER
17225: IFFALSE 17271
// pom = pom ^ ah = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
17227: LD_ADDR_VAR 0 2
17231: PUSH
17232: LD_VAR 0 2
17236: PUSH
17237: LD_LOC 23
17241: ADD
17242: PUSH
17243: CALL 16851 0 0
17247: PPUSH
17248: LD_INT 1
17250: PPUSH
17251: LD_EXP 13
17255: PUSH
17256: LD_OWVAR 67
17260: ARRAY
17261: PPUSH
17262: LD_STRING 
17264: PPUSH
17265: CALL 16886 0 4
17269: EQUAL
17270: ST_TO_ADDR
// AMERICKA_POMOC_HLIDCE_LIST = pom ;
17271: LD_ADDR_EXP 50
17275: PUSH
17276: LD_VAR 0 2
17280: ST_TO_ADDR
// end ;
17281: LD_VAR 0 1
17285: RET
// export function set_skily_amikum ; var pom , i ; begin
17286: LD_INT 0
17288: PPUSH
17289: PPUSH
17290: PPUSH
// pom = [ Am_sol1 , Am_sol2 , Am_sol3 , Am_sol4 , Am_vb1 , Am_vb2 , Am_vb3 , Am_vb4 ] ;
17291: LD_ADDR_VAR 0 2
17295: PUSH
17296: LD_INT 38
17298: PUSH
17299: LD_INT 39
17301: PUSH
17302: LD_INT 40
17304: PUSH
17305: LD_INT 41
17307: PUSH
17308: LD_INT 29
17310: PUSH
17311: LD_INT 30
17313: PUSH
17314: LD_INT 31
17316: PUSH
17317: LD_INT 32
17319: PUSH
17320: EMPTY
17321: LIST
17322: LIST
17323: LIST
17324: LIST
17325: LIST
17326: LIST
17327: LIST
17328: LIST
17329: ST_TO_ADDR
// for i in pom do
17330: LD_ADDR_VAR 0 3
17334: PUSH
17335: LD_VAR 0 2
17339: PUSH
17340: FOR_IN
17341: IFFALSE 17368
// uprav_cloveka ( i , class_soldier , levely_amici [ difficulty ] ) ;
17343: LD_VAR 0 3
17347: PPUSH
17348: LD_INT 1
17350: PPUSH
17351: LD_EXP 13
17355: PUSH
17356: LD_OWVAR 67
17360: ARRAY
17361: PPUSH
17362: CALL 17683 0 3
17366: GO 17340
17368: POP
17369: POP
// pom = [ Am_me1 , Am_me2 , Am_me3 ] ;
17370: LD_ADDR_VAR 0 2
17374: PUSH
17375: LD_INT 33
17377: PUSH
17378: LD_INT 34
17380: PUSH
17381: LD_INT 35
17383: PUSH
17384: EMPTY
17385: LIST
17386: LIST
17387: LIST
17388: ST_TO_ADDR
// for i in pom do
17389: LD_ADDR_VAR 0 3
17393: PUSH
17394: LD_VAR 0 2
17398: PUSH
17399: FOR_IN
17400: IFFALSE 17427
// uprav_cloveka ( i , class_mechanic , levely_amici [ difficulty ] ) ;
17402: LD_VAR 0 3
17406: PPUSH
17407: LD_INT 3
17409: PPUSH
17410: LD_EXP 13
17414: PUSH
17415: LD_OWVAR 67
17419: ARRAY
17420: PPUSH
17421: CALL 17683 0 3
17425: GO 17399
17427: POP
17428: POP
// uprav_cloveka ( Am_sci1 , class_scientistic , levely_amici [ difficulty ] ) ;
17429: LD_INT 37
17431: PPUSH
17432: LD_INT 4
17434: PPUSH
17435: LD_EXP 13
17439: PUSH
17440: LD_OWVAR 67
17444: ARRAY
17445: PPUSH
17446: CALL 17683 0 3
// uprav_cloveka ( Am_eng1 , class_engineer , levely_amici [ difficulty ] ) ;
17450: LD_INT 36
17452: PPUSH
17453: LD_INT 2
17455: PPUSH
17456: LD_EXP 13
17460: PUSH
17461: LD_OWVAR 67
17465: ARRAY
17466: PPUSH
17467: CALL 17683 0 3
// end ;
17471: LD_VAR 0 1
17475: RET
// function set_skills ( un , skills ) ; begin
17476: LD_INT 0
17478: PPUSH
// SetSkill ( un , skill_combat , skills [ 1 ] ) ;
17479: LD_VAR 0 1
17483: PPUSH
17484: LD_INT 1
17486: PPUSH
17487: LD_VAR 0 2
17491: PUSH
17492: LD_INT 1
17494: ARRAY
17495: PPUSH
17496: CALL_OW 237
// SetSkill ( un , skill_engineering , skills [ 2 ] ) ;
17500: LD_VAR 0 1
17504: PPUSH
17505: LD_INT 2
17507: PPUSH
17508: LD_VAR 0 2
17512: PUSH
17513: LD_INT 2
17515: ARRAY
17516: PPUSH
17517: CALL_OW 237
// SetSkill ( un , skill_mechanical , skills [ 3 ] ) ;
17521: LD_VAR 0 1
17525: PPUSH
17526: LD_INT 3
17528: PPUSH
17529: LD_VAR 0 2
17533: PUSH
17534: LD_INT 3
17536: ARRAY
17537: PPUSH
17538: CALL_OW 237
// SetSkill ( un , skill_scientistic , skills [ 4 ] ) ;
17542: LD_VAR 0 1
17546: PPUSH
17547: LD_INT 4
17549: PPUSH
17550: LD_VAR 0 2
17554: PUSH
17555: LD_INT 4
17557: ARRAY
17558: PPUSH
17559: CALL_OW 237
// end ;
17563: LD_VAR 0 3
17567: RET
// function get_skills ( un ) ; var pom3 , pom4 , pom5 , pom6 ; begin
17568: LD_INT 0
17570: PPUSH
17571: PPUSH
17572: PPUSH
17573: PPUSH
17574: PPUSH
// pom3 := GetSkill ( un , skill_combat ) ;
17575: LD_ADDR_VAR 0 3
17579: PUSH
17580: LD_VAR 0 1
17584: PPUSH
17585: LD_INT 1
17587: PPUSH
17588: CALL_OW 259
17592: ST_TO_ADDR
// pom4 := GetSkill ( un , skill_engineering ) ;
17593: LD_ADDR_VAR 0 4
17597: PUSH
17598: LD_VAR 0 1
17602: PPUSH
17603: LD_INT 2
17605: PPUSH
17606: CALL_OW 259
17610: ST_TO_ADDR
// pom5 := GetSkill ( un , skill_mechanical ) ;
17611: LD_ADDR_VAR 0 5
17615: PUSH
17616: LD_VAR 0 1
17620: PPUSH
17621: LD_INT 3
17623: PPUSH
17624: CALL_OW 259
17628: ST_TO_ADDR
// pom6 := GetSkill ( un , skill_scientistic ) ;
17629: LD_ADDR_VAR 0 6
17633: PUSH
17634: LD_VAR 0 1
17638: PPUSH
17639: LD_INT 4
17641: PPUSH
17642: CALL_OW 259
17646: ST_TO_ADDR
// result := [ pom3 , pom4 , pom5 , pom6 ] end ;
17647: LD_ADDR_VAR 0 2
17651: PUSH
17652: LD_VAR 0 3
17656: PUSH
17657: LD_VAR 0 4
17661: PUSH
17662: LD_VAR 0 5
17666: PUSH
17667: LD_VAR 0 6
17671: PUSH
17672: EMPTY
17673: LIST
17674: LIST
17675: LIST
17676: LIST
17677: ST_TO_ADDR
17678: LD_VAR 0 2
17682: RET
// function uprav_cloveka ( un , clas , lev ) ; var pom1 ; begin
17683: LD_INT 0
17685: PPUSH
17686: PPUSH
// prepare_human ( sex_male , clas , lev ,  ) ;
17687: LD_INT 1
17689: PPUSH
17690: LD_VAR 0 2
17694: PPUSH
17695: LD_VAR 0 3
17699: PPUSH
17700: LD_STRING 
17702: PPUSH
17703: CALL 17765 0 4
// ah = CreateHuman ;
17707: LD_ADDR_LOC 23
17711: PUSH
17712: CALL_OW 44
17716: ST_TO_ADDR
// pom1 = get_skills ( ah ) ;
17717: LD_ADDR_VAR 0 5
17721: PUSH
17722: LD_LOC 23
17726: PPUSH
17727: CALL 17568 0 1
17731: ST_TO_ADDR
// set_skills ( un , get_skills ( ah ) ) ;
17732: LD_VAR 0 1
17736: PPUSH
17737: LD_LOC 23
17741: PPUSH
17742: CALL 17568 0 1
17746: PPUSH
17747: CALL 17476 0 2
// DestroyUnit ( ah ) ;
17751: LD_LOC 23
17755: PPUSH
17756: CALL_OW 65
// end ;
17760: LD_VAR 0 4
17764: RET
// function prepare_human ( sex , clas , level , name ) ; begin
17765: LD_INT 0
17767: PPUSH
// PrepareHuman ( sex , clas , level ) ;
17768: LD_VAR 0 1
17772: PPUSH
17773: LD_VAR 0 2
17777: PPUSH
17778: LD_VAR 0 3
17782: PPUSH
17783: CALL_OW 380
// hc_name := name ;
17787: LD_ADDR_OWVAR 26
17791: PUSH
17792: LD_VAR 0 4
17796: ST_TO_ADDR
// end ;
17797: LD_VAR 0 5
17801: RET
// export function create_americke_posily ; var pom ; begin
17802: LD_INT 0
17804: PPUSH
17805: PPUSH
// uc_side = Amici ;
17806: LD_ADDR_OWVAR 20
17810: PUSH
17811: LD_EXP 4
17815: ST_TO_ADDR
// uc_nation = nation_american ;
17816: LD_ADDR_OWVAR 21
17820: PUSH
17821: LD_INT 1
17823: ST_TO_ADDR
// pom = [ ] ;
17824: LD_ADDR_VAR 0 2
17828: PUSH
17829: EMPTY
17830: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
17831: LD_ADDR_VAR 0 2
17835: PUSH
17836: LD_VAR 0 2
17840: PUSH
17841: CALL 16851 0 0
17845: PPUSH
17846: LD_INT 1
17848: PPUSH
17849: LD_EXP 13
17853: PUSH
17854: LD_OWVAR 67
17858: ARRAY
17859: PPUSH
17860: LD_STRING 
17862: PPUSH
17863: CALL 16886 0 4
17867: ADD
17868: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
17869: LD_ADDR_VAR 0 2
17873: PUSH
17874: LD_VAR 0 2
17878: PUSH
17879: CALL 16851 0 0
17883: PPUSH
17884: LD_INT 1
17886: PPUSH
17887: LD_EXP 13
17891: PUSH
17892: LD_OWVAR 67
17896: ARRAY
17897: PPUSH
17898: LD_STRING 
17900: PPUSH
17901: CALL 16886 0 4
17905: ADD
17906: ST_TO_ADDR
// AMERICKE_POSILY1_LIST = pom ;
17907: LD_ADDR_EXP 51
17911: PUSH
17912: LD_VAR 0 2
17916: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
17917: LD_ADDR_VAR 0 2
17921: PUSH
17922: CALL 16851 0 0
17926: PPUSH
17927: LD_INT 1
17929: PPUSH
17930: LD_EXP 13
17934: PUSH
17935: LD_OWVAR 67
17939: ARRAY
17940: PPUSH
17941: LD_STRING 
17943: PPUSH
17944: CALL 16886 0 4
17948: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
17949: LD_ADDR_VAR 0 2
17953: PUSH
17954: LD_VAR 0 2
17958: PUSH
17959: CALL 16851 0 0
17963: PPUSH
17964: LD_INT 3
17966: PPUSH
17967: LD_EXP 13
17971: PUSH
17972: LD_OWVAR 67
17976: ARRAY
17977: PPUSH
17978: LD_STRING 
17980: PPUSH
17981: CALL 16886 0 4
17985: ADD
17986: ST_TO_ADDR
// if pom > 1 then
17987: LD_VAR 0 2
17991: PUSH
17992: LD_INT 1
17994: GREATER
17995: IFFALSE 18035
// pom = pom ^ get_human ( get_sex , class_scientistic , levely_amici [ difficulty ] ,  ) ;
17997: LD_ADDR_VAR 0 2
18001: PUSH
18002: LD_VAR 0 2
18006: PUSH
18007: CALL 16851 0 0
18011: PPUSH
18012: LD_INT 4
18014: PPUSH
18015: LD_EXP 13
18019: PUSH
18020: LD_OWVAR 67
18024: ARRAY
18025: PPUSH
18026: LD_STRING 
18028: PPUSH
18029: CALL 16886 0 4
18033: ADD
18034: ST_TO_ADDR
// if pom > 2 then
18035: LD_VAR 0 2
18039: PUSH
18040: LD_INT 2
18042: GREATER
18043: IFFALSE 18083
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18045: LD_ADDR_VAR 0 2
18049: PUSH
18050: LD_VAR 0 2
18054: PUSH
18055: CALL 16851 0 0
18059: PPUSH
18060: LD_INT 1
18062: PPUSH
18063: LD_EXP 13
18067: PUSH
18068: LD_OWVAR 67
18072: ARRAY
18073: PPUSH
18074: LD_STRING 
18076: PPUSH
18077: CALL 16886 0 4
18081: ADD
18082: ST_TO_ADDR
// AMERICKE_POSILY2_LIST = pom ;
18083: LD_ADDR_EXP 52
18087: PUSH
18088: LD_VAR 0 2
18092: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18093: LD_ADDR_VAR 0 2
18097: PUSH
18098: CALL 16851 0 0
18102: PPUSH
18103: LD_INT 1
18105: PPUSH
18106: LD_EXP 13
18110: PUSH
18111: LD_OWVAR 67
18115: ARRAY
18116: PPUSH
18117: LD_STRING 
18119: PPUSH
18120: CALL 16886 0 4
18124: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18125: LD_ADDR_VAR 0 2
18129: PUSH
18130: LD_VAR 0 2
18134: PUSH
18135: CALL 16851 0 0
18139: PPUSH
18140: LD_INT 1
18142: PPUSH
18143: LD_EXP 13
18147: PUSH
18148: LD_OWVAR 67
18152: ARRAY
18153: PPUSH
18154: LD_STRING 
18156: PPUSH
18157: CALL 16886 0 4
18161: ADD
18162: ST_TO_ADDR
// if pom = 1 then
18163: LD_VAR 0 2
18167: PUSH
18168: LD_INT 1
18170: EQUAL
18171: IFFALSE 18211
// pom = pom ^ get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
18173: LD_ADDR_VAR 0 2
18177: PUSH
18178: LD_VAR 0 2
18182: PUSH
18183: CALL 16851 0 0
18187: PPUSH
18188: LD_INT 3
18190: PPUSH
18191: LD_EXP 13
18195: PUSH
18196: LD_OWVAR 67
18200: ARRAY
18201: PPUSH
18202: LD_STRING 
18204: PPUSH
18205: CALL 16886 0 4
18209: ADD
18210: ST_TO_ADDR
// if pom = 2 then
18211: LD_VAR 0 2
18215: PUSH
18216: LD_INT 2
18218: EQUAL
18219: IFFALSE 18325
// begin ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
18221: LD_ADDR_LOC 23
18225: PUSH
18226: CALL 16851 0 0
18230: PPUSH
18231: LD_INT 3
18233: PPUSH
18234: LD_EXP 13
18238: PUSH
18239: LD_OWVAR 67
18243: ARRAY
18244: PPUSH
18245: LD_STRING 
18247: PPUSH
18248: CALL 16886 0 4
18252: ST_TO_ADDR
// vc_chassis = us_light_wheeled ;
18253: LD_ADDR_OWVAR 37
18257: PUSH
18258: LD_INT 1
18260: ST_TO_ADDR
// vc_control = control_manual ;
18261: LD_ADDR_OWVAR 38
18265: PUSH
18266: LD_INT 1
18268: ST_TO_ADDR
// vc_engine = engine_solar ;
18269: LD_ADDR_OWVAR 39
18273: PUSH
18274: LD_INT 2
18276: ST_TO_ADDR
// vc_weapon = us_machine_gun ;
18277: LD_ADDR_OWVAR 40
18281: PUSH
18282: LD_INT 2
18284: ST_TO_ADDR
// av = CreateVehicle ;
18285: LD_ADDR_LOC 24
18289: PUSH
18290: CALL_OW 45
18294: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
18295: LD_LOC 23
18299: PPUSH
18300: LD_LOC 24
18304: PPUSH
18305: CALL_OW 52
// pom = pom ^ av ;
18309: LD_ADDR_VAR 0 2
18313: PUSH
18314: LD_VAR 0 2
18318: PUSH
18319: LD_LOC 24
18323: ADD
18324: ST_TO_ADDR
// end ; if pom = 3 then
18325: LD_VAR 0 2
18329: PUSH
18330: LD_INT 3
18332: EQUAL
18333: IFFALSE 18439
// begin ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
18335: LD_ADDR_LOC 23
18339: PUSH
18340: CALL 16851 0 0
18344: PPUSH
18345: LD_INT 3
18347: PPUSH
18348: LD_EXP 13
18352: PUSH
18353: LD_OWVAR 67
18357: ARRAY
18358: PPUSH
18359: LD_STRING 
18361: PPUSH
18362: CALL 16886 0 4
18366: ST_TO_ADDR
// vc_chassis = us_medium_wheeled ;
18367: LD_ADDR_OWVAR 37
18371: PUSH
18372: LD_INT 2
18374: ST_TO_ADDR
// vc_control = control_manual ;
18375: LD_ADDR_OWVAR 38
18379: PUSH
18380: LD_INT 1
18382: ST_TO_ADDR
// vc_engine = engine_solar ;
18383: LD_ADDR_OWVAR 39
18387: PUSH
18388: LD_INT 2
18390: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
18391: LD_ADDR_OWVAR 40
18395: PUSH
18396: LD_INT 4
18398: ST_TO_ADDR
// av = CreateVehicle ;
18399: LD_ADDR_LOC 24
18403: PUSH
18404: CALL_OW 45
18408: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
18409: LD_LOC 23
18413: PPUSH
18414: LD_LOC 24
18418: PPUSH
18419: CALL_OW 52
// pom = pom ^ av ;
18423: LD_ADDR_VAR 0 2
18427: PUSH
18428: LD_VAR 0 2
18432: PUSH
18433: LD_LOC 24
18437: ADD
18438: ST_TO_ADDR
// end ; AMERICKE_POSILY3_LIST = pom ;
18439: LD_ADDR_EXP 53
18443: PUSH
18444: LD_VAR 0 2
18448: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18449: LD_ADDR_VAR 0 2
18453: PUSH
18454: CALL 16851 0 0
18458: PPUSH
18459: LD_INT 1
18461: PPUSH
18462: LD_EXP 13
18466: PUSH
18467: LD_OWVAR 67
18471: ARRAY
18472: PPUSH
18473: LD_STRING 
18475: PPUSH
18476: CALL 16886 0 4
18480: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18481: LD_ADDR_VAR 0 2
18485: PUSH
18486: LD_VAR 0 2
18490: PUSH
18491: CALL 16851 0 0
18495: PPUSH
18496: LD_INT 1
18498: PPUSH
18499: LD_EXP 13
18503: PUSH
18504: LD_OWVAR 67
18508: ARRAY
18509: PPUSH
18510: LD_STRING 
18512: PPUSH
18513: CALL 16886 0 4
18517: ADD
18518: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] - 1 ,  ) ;
18519: LD_ADDR_VAR 0 2
18523: PUSH
18524: LD_VAR 0 2
18528: PUSH
18529: CALL 16851 0 0
18533: PPUSH
18534: LD_INT 1
18536: PPUSH
18537: LD_EXP 13
18541: PUSH
18542: LD_OWVAR 67
18546: ARRAY
18547: PUSH
18548: LD_INT 1
18550: MINUS
18551: PPUSH
18552: LD_STRING 
18554: PPUSH
18555: CALL 16886 0 4
18559: ADD
18560: ST_TO_ADDR
// AMERICKE_POSILY4_LIST = pom ;
18561: LD_ADDR_EXP 54
18565: PUSH
18566: LD_VAR 0 2
18570: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18571: LD_ADDR_VAR 0 2
18575: PUSH
18576: CALL 16851 0 0
18580: PPUSH
18581: LD_INT 1
18583: PPUSH
18584: LD_EXP 13
18588: PUSH
18589: LD_OWVAR 67
18593: ARRAY
18594: PPUSH
18595: LD_STRING 
18597: PPUSH
18598: CALL 16886 0 4
18602: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] - 1 ,  ) ;
18603: LD_ADDR_VAR 0 2
18607: PUSH
18608: LD_VAR 0 2
18612: PUSH
18613: CALL 16851 0 0
18617: PPUSH
18618: LD_INT 1
18620: PPUSH
18621: LD_EXP 13
18625: PUSH
18626: LD_OWVAR 67
18630: ARRAY
18631: PUSH
18632: LD_INT 1
18634: MINUS
18635: PPUSH
18636: LD_STRING 
18638: PPUSH
18639: CALL 16886 0 4
18643: ADD
18644: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] - 1 ,  ) ;
18645: LD_ADDR_VAR 0 2
18649: PUSH
18650: LD_VAR 0 2
18654: PUSH
18655: CALL 16851 0 0
18659: PPUSH
18660: LD_INT 1
18662: PPUSH
18663: LD_EXP 13
18667: PUSH
18668: LD_OWVAR 67
18672: ARRAY
18673: PUSH
18674: LD_INT 1
18676: MINUS
18677: PPUSH
18678: LD_STRING 
18680: PPUSH
18681: CALL 16886 0 4
18685: ADD
18686: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_scientistic , levely_amici [ difficulty ] - 1 ,  ) ;
18687: LD_ADDR_VAR 0 2
18691: PUSH
18692: LD_VAR 0 2
18696: PUSH
18697: CALL 16851 0 0
18701: PPUSH
18702: LD_INT 4
18704: PPUSH
18705: LD_EXP 13
18709: PUSH
18710: LD_OWVAR 67
18714: ARRAY
18715: PUSH
18716: LD_INT 1
18718: MINUS
18719: PPUSH
18720: LD_STRING 
18722: PPUSH
18723: CALL 16886 0 4
18727: ADD
18728: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
18729: LD_ADDR_LOC 23
18733: PUSH
18734: CALL 16851 0 0
18738: PPUSH
18739: LD_INT 3
18741: PPUSH
18742: LD_EXP 13
18746: PUSH
18747: LD_OWVAR 67
18751: ARRAY
18752: PPUSH
18753: LD_STRING 
18755: PPUSH
18756: CALL 16886 0 4
18760: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
18761: LD_ADDR_OWVAR 37
18765: PUSH
18766: LD_INT 3
18768: ST_TO_ADDR
// vc_control = control_manual ;
18769: LD_ADDR_OWVAR 38
18773: PUSH
18774: LD_INT 1
18776: ST_TO_ADDR
// vc_engine = engine_combustion ;
18777: LD_ADDR_OWVAR 39
18781: PUSH
18782: LD_INT 1
18784: ST_TO_ADDR
// vc_weapon = us_machine_gun ;
18785: LD_ADDR_OWVAR 40
18789: PUSH
18790: LD_INT 2
18792: ST_TO_ADDR
// av = CreateVehicle ;
18793: LD_ADDR_LOC 24
18797: PUSH
18798: CALL_OW 45
18802: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
18803: LD_LOC 23
18807: PPUSH
18808: LD_LOC 24
18812: PPUSH
18813: CALL_OW 52
// pom = pom ^ av ;
18817: LD_ADDR_VAR 0 2
18821: PUSH
18822: LD_VAR 0 2
18826: PUSH
18827: LD_LOC 24
18831: ADD
18832: ST_TO_ADDR
// AMERICKE_POSILY11_LIST = pom ;
18833: LD_ADDR_EXP 55
18837: PUSH
18838: LD_VAR 0 2
18842: ST_TO_ADDR
// end ;
18843: LD_VAR 0 1
18847: RET
// export function create_kecajici_amik ; var pom ; begin
18848: LD_INT 0
18850: PPUSH
18851: PPUSH
// uc_side = Amici ;
18852: LD_ADDR_OWVAR 20
18856: PUSH
18857: LD_EXP 4
18861: ST_TO_ADDR
// uc_nation = nation_american ;
18862: LD_ADDR_OWVAR 21
18866: PUSH
18867: LD_INT 1
18869: ST_TO_ADDR
// pom = get_human ( sex_male , class_soldier , 4 , Mike Damme ) ;
18870: LD_ADDR_VAR 0 2
18874: PUSH
18875: LD_INT 1
18877: PPUSH
18878: LD_INT 1
18880: PPUSH
18881: LD_INT 4
18883: PPUSH
18884: LD_STRING Mike Damme
18886: PPUSH
18887: CALL 16886 0 4
18891: ST_TO_ADDR
// result := pom ;
18892: LD_ADDR_VAR 0 1
18896: PUSH
18897: LD_VAR 0 2
18901: ST_TO_ADDR
// end ;
18902: LD_VAR 0 1
18906: RET
// export function create_grishko ; var pom ; begin
18907: LD_INT 0
18909: PPUSH
18910: PPUSH
// pom = grishko ;
18911: LD_ADDR_VAR 0 2
18915: PUSH
18916: LD_EXP 35
18920: ST_TO_ADDR
// if pom = 0 then
18921: LD_VAR 0 2
18925: PUSH
18926: LD_INT 0
18928: EQUAL
18929: IFFALSE 18953
// pom = get_human ( sex_male , class_soldier , 4 , Piotr Grishko ) ;
18931: LD_ADDR_VAR 0 2
18935: PUSH
18936: LD_INT 1
18938: PPUSH
18939: LD_INT 1
18941: PPUSH
18942: LD_INT 4
18944: PPUSH
18945: LD_STRING Piotr Grishko
18947: PPUSH
18948: CALL 16886 0 4
18952: ST_TO_ADDR
// if pom > 0 then
18953: LD_VAR 0 2
18957: PUSH
18958: LD_INT 0
18960: GREATER
18961: IFFALSE 18997
// begin SetSide ( pom [ 1 ] , You2 ) ;
18963: LD_VAR 0 2
18967: PUSH
18968: LD_INT 1
18970: ARRAY
18971: PPUSH
18972: LD_EXP 2
18976: PPUSH
18977: CALL_OW 235
// result = pom [ 1 ] ;
18981: LD_ADDR_VAR 0 1
18985: PUSH
18986: LD_VAR 0 2
18990: PUSH
18991: LD_INT 1
18993: ARRAY
18994: ST_TO_ADDR
// end else
18995: GO 19004
// msg ( ERROR: Grishko se z nejakych obskurnich duvodu nevytvoril ) ;
18997: LD_STRING ERROR: Grishko se z nejakych obskurnich duvodu nevytvoril
18999: PPUSH
19000: CALL_OW 100
// end ;
19004: LD_VAR 0 1
19008: RET
// export function create_arabsky_utok ; var pom , i ; begin
19009: LD_INT 0
19011: PPUSH
19012: PPUSH
19013: PPUSH
// pom = FilterUnitsInArea ( Ar_jedn , [ [ f_side , Arabi ] , [ f_class , class_apeman_kamikaze ] ] ) ;
19014: LD_ADDR_VAR 0 2
19018: PUSH
19019: LD_INT 9
19021: PPUSH
19022: LD_INT 22
19024: PUSH
19025: LD_EXP 5
19029: PUSH
19030: EMPTY
19031: LIST
19032: LIST
19033: PUSH
19034: LD_INT 25
19036: PUSH
19037: LD_INT 17
19039: PUSH
19040: EMPTY
19041: LIST
19042: LIST
19043: PUSH
19044: EMPTY
19045: LIST
19046: LIST
19047: PPUSH
19048: CALL_OW 70
19052: ST_TO_ADDR
// ARABI_KAMIKADZE_LIST = pom ;
19053: LD_ADDR_EXP 60
19057: PUSH
19058: LD_VAR 0 2
19062: ST_TO_ADDR
// for i in pom do
19063: LD_ADDR_VAR 0 3
19067: PUSH
19068: LD_VAR 0 2
19072: PUSH
19073: FOR_IN
19074: IFFALSE 19087
// RemoveUnit ( i ) ;
19076: LD_VAR 0 3
19080: PPUSH
19081: CALL_OW 64
19085: GO 19073
19087: POP
19088: POP
// pom = [ ] ;
19089: LD_ADDR_VAR 0 2
19093: PUSH
19094: EMPTY
19095: ST_TO_ADDR
// uc_side = Arabi ;
19096: LD_ADDR_OWVAR 20
19100: PUSH
19101: LD_EXP 5
19105: ST_TO_ADDR
// uc_nation = nation_arabian ;
19106: LD_ADDR_OWVAR 21
19110: PUSH
19111: LD_INT 2
19113: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19114: LD_ADDR_LOC 23
19118: PUSH
19119: CALL 16851 0 0
19123: PPUSH
19124: LD_INT 3
19126: PPUSH
19127: LD_INT 9
19129: PPUSH
19130: LD_STRING 
19132: PPUSH
19133: CALL 16886 0 4
19137: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
19138: LD_ADDR_OWVAR 37
19142: PUSH
19143: LD_INT 14
19145: ST_TO_ADDR
// vc_weapon = ar_flame_thrower ;
19146: LD_ADDR_OWVAR 40
19150: PUSH
19151: LD_INT 26
19153: ST_TO_ADDR
// vc_control = control_manual ;
19154: LD_ADDR_OWVAR 38
19158: PUSH
19159: LD_INT 1
19161: ST_TO_ADDR
// vc_engine = engine_combustion ;
19162: LD_ADDR_OWVAR 39
19166: PUSH
19167: LD_INT 1
19169: ST_TO_ADDR
// av = CreateVehicle ;
19170: LD_ADDR_LOC 24
19174: PUSH
19175: CALL_OW 45
19179: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19180: LD_LOC 23
19184: PPUSH
19185: LD_LOC 24
19189: PPUSH
19190: CALL_OW 52
// pom = pom ^ av ;
19194: LD_ADDR_VAR 0 2
19198: PUSH
19199: LD_VAR 0 2
19203: PUSH
19204: LD_LOC 24
19208: ADD
19209: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19210: LD_ADDR_LOC 23
19214: PUSH
19215: CALL 16851 0 0
19219: PPUSH
19220: LD_INT 3
19222: PPUSH
19223: LD_INT 9
19225: PPUSH
19226: LD_STRING 
19228: PPUSH
19229: CALL 16886 0 4
19233: ST_TO_ADDR
// av = CreateVehicle ;
19234: LD_ADDR_LOC 24
19238: PUSH
19239: CALL_OW 45
19243: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19244: LD_LOC 23
19248: PPUSH
19249: LD_LOC 24
19253: PPUSH
19254: CALL_OW 52
// pom = pom ^ av ;
19258: LD_ADDR_VAR 0 2
19262: PUSH
19263: LD_VAR 0 2
19267: PUSH
19268: LD_LOC 24
19272: ADD
19273: ST_TO_ADDR
// ARABI_FLAME_LIST = pom ;
19274: LD_ADDR_EXP 62
19278: PUSH
19279: LD_VAR 0 2
19283: ST_TO_ADDR
// pom = [ ] ;
19284: LD_ADDR_VAR 0 2
19288: PUSH
19289: EMPTY
19290: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19291: LD_ADDR_LOC 23
19295: PUSH
19296: CALL 16851 0 0
19300: PPUSH
19301: LD_INT 3
19303: PPUSH
19304: LD_INT 9
19306: PPUSH
19307: LD_STRING 
19309: PPUSH
19310: CALL 16886 0 4
19314: ST_TO_ADDR
// vc_weapon = ar_gun ;
19315: LD_ADDR_OWVAR 40
19319: PUSH
19320: LD_INT 27
19322: ST_TO_ADDR
// av = CreateVehicle ;
19323: LD_ADDR_LOC 24
19327: PUSH
19328: CALL_OW 45
19332: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19333: LD_LOC 23
19337: PPUSH
19338: LD_LOC 24
19342: PPUSH
19343: CALL_OW 52
// pom = av ;
19347: LD_ADDR_VAR 0 2
19351: PUSH
19352: LD_LOC 24
19356: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19357: LD_ADDR_LOC 23
19361: PUSH
19362: CALL 16851 0 0
19366: PPUSH
19367: LD_INT 3
19369: PPUSH
19370: LD_INT 9
19372: PPUSH
19373: LD_STRING 
19375: PPUSH
19376: CALL 16886 0 4
19380: ST_TO_ADDR
// av = CreateVehicle ;
19381: LD_ADDR_LOC 24
19385: PUSH
19386: CALL_OW 45
19390: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19391: LD_LOC 23
19395: PPUSH
19396: LD_LOC 24
19400: PPUSH
19401: CALL_OW 52
// pom = pom ^ av ;
19405: LD_ADDR_VAR 0 2
19409: PUSH
19410: LD_VAR 0 2
19414: PUSH
19415: LD_LOC 24
19419: ADD
19420: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19421: LD_ADDR_LOC 23
19425: PUSH
19426: CALL 16851 0 0
19430: PPUSH
19431: LD_INT 3
19433: PPUSH
19434: LD_INT 9
19436: PPUSH
19437: LD_STRING 
19439: PPUSH
19440: CALL 16886 0 4
19444: ST_TO_ADDR
// vc_weapon = ar_gatling_gun ;
19445: LD_ADDR_OWVAR 40
19449: PUSH
19450: LD_INT 25
19452: ST_TO_ADDR
// av = CreateVehicle ;
19453: LD_ADDR_LOC 24
19457: PUSH
19458: CALL_OW 45
19462: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19463: LD_LOC 23
19467: PPUSH
19468: LD_LOC 24
19472: PPUSH
19473: CALL_OW 52
// pom = pom ^ av ;
19477: LD_ADDR_VAR 0 2
19481: PUSH
19482: LD_VAR 0 2
19486: PUSH
19487: LD_LOC 24
19491: ADD
19492: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19493: LD_ADDR_LOC 23
19497: PUSH
19498: CALL 16851 0 0
19502: PPUSH
19503: LD_INT 3
19505: PPUSH
19506: LD_INT 9
19508: PPUSH
19509: LD_STRING 
19511: PPUSH
19512: CALL 16886 0 4
19516: ST_TO_ADDR
// vc_weapon = ar_rocket_launcher ;
19517: LD_ADDR_OWVAR 40
19521: PUSH
19522: LD_INT 28
19524: ST_TO_ADDR
// av = CreateVehicle ;
19525: LD_ADDR_LOC 24
19529: PUSH
19530: CALL_OW 45
19534: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19535: LD_LOC 23
19539: PPUSH
19540: LD_LOC 24
19544: PPUSH
19545: CALL_OW 52
// pom = pom ^ av ;
19549: LD_ADDR_VAR 0 2
19553: PUSH
19554: LD_VAR 0 2
19558: PUSH
19559: LD_LOC 24
19563: ADD
19564: ST_TO_ADDR
// ARABI_PRVNI_VLNA = pom ;
19565: LD_ADDR_EXP 61
19569: PUSH
19570: LD_VAR 0 2
19574: ST_TO_ADDR
// pom = [ ] ;
19575: LD_ADDR_VAR 0 2
19579: PUSH
19580: EMPTY
19581: ST_TO_ADDR
// vc_weapon = ar_selfpropelled_bomb ;
19582: LD_ADDR_OWVAR 40
19586: PUSH
19587: LD_INT 29
19589: ST_TO_ADDR
// vc_control = control_apeman ;
19590: LD_ADDR_OWVAR 38
19594: PUSH
19595: LD_INT 5
19597: ST_TO_ADDR
// ah = CreateVehicle ;
19598: LD_ADDR_LOC 23
19602: PUSH
19603: CALL_OW 45
19607: ST_TO_ADDR
// pom = ah ;
19608: LD_ADDR_VAR 0 2
19612: PUSH
19613: LD_LOC 23
19617: ST_TO_ADDR
// pom = pom ^ CreateVehicle ;
19618: LD_ADDR_VAR 0 2
19622: PUSH
19623: LD_VAR 0 2
19627: PUSH
19628: CALL_OW 45
19632: ADD
19633: ST_TO_ADDR
// ARABI_SELF_AUTA = pom ;
19634: LD_ADDR_EXP 63
19638: PUSH
19639: LD_VAR 0 2
19643: ST_TO_ADDR
// pom = [ ] ;
19644: LD_ADDR_VAR 0 2
19648: PUSH
19649: EMPTY
19650: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , 9 ,  ) ;
19651: LD_ADDR_VAR 0 2
19655: PUSH
19656: CALL 16851 0 0
19660: PPUSH
19661: LD_INT 1
19663: PPUSH
19664: LD_INT 9
19666: PPUSH
19667: LD_STRING 
19669: PPUSH
19670: CALL 16886 0 4
19674: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 9 ,  ) ;
19675: LD_ADDR_VAR 0 2
19679: PUSH
19680: LD_VAR 0 2
19684: PUSH
19685: CALL 16851 0 0
19689: PPUSH
19690: LD_INT 1
19692: PPUSH
19693: LD_INT 9
19695: PPUSH
19696: LD_STRING 
19698: PPUSH
19699: CALL 16886 0 4
19703: ADD
19704: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 9 ,  ) ;
19705: LD_ADDR_VAR 0 2
19709: PUSH
19710: LD_VAR 0 2
19714: PUSH
19715: CALL 16851 0 0
19719: PPUSH
19720: LD_INT 1
19722: PPUSH
19723: LD_INT 9
19725: PPUSH
19726: LD_STRING 
19728: PPUSH
19729: CALL 16886 0 4
19733: ADD
19734: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 9 ,  ) ;
19735: LD_ADDR_VAR 0 2
19739: PUSH
19740: LD_VAR 0 2
19744: PUSH
19745: CALL 16851 0 0
19749: PPUSH
19750: LD_INT 1
19752: PPUSH
19753: LD_INT 9
19755: PPUSH
19756: LD_STRING 
19758: PPUSH
19759: CALL 16886 0 4
19763: ADD
19764: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 9 ,  ) ;
19765: LD_ADDR_VAR 0 2
19769: PUSH
19770: LD_VAR 0 2
19774: PUSH
19775: CALL 16851 0 0
19779: PPUSH
19780: LD_INT 8
19782: PPUSH
19783: LD_INT 9
19785: PPUSH
19786: LD_STRING 
19788: PPUSH
19789: CALL 16886 0 4
19793: ADD
19794: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 9 ,  ) ;
19795: LD_ADDR_VAR 0 2
19799: PUSH
19800: LD_VAR 0 2
19804: PUSH
19805: CALL 16851 0 0
19809: PPUSH
19810: LD_INT 8
19812: PPUSH
19813: LD_INT 9
19815: PPUSH
19816: LD_STRING 
19818: PPUSH
19819: CALL 16886 0 4
19823: ADD
19824: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 9 ,  ) ;
19825: LD_ADDR_VAR 0 2
19829: PUSH
19830: LD_VAR 0 2
19834: PUSH
19835: CALL 16851 0 0
19839: PPUSH
19840: LD_INT 1
19842: PPUSH
19843: LD_INT 9
19845: PPUSH
19846: LD_STRING 
19848: PPUSH
19849: CALL 16886 0 4
19853: ADD
19854: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 9 ,  ) ;
19855: LD_ADDR_VAR 0 2
19859: PUSH
19860: LD_VAR 0 2
19864: PUSH
19865: CALL 16851 0 0
19869: PPUSH
19870: LD_INT 8
19872: PPUSH
19873: LD_INT 9
19875: PPUSH
19876: LD_STRING 
19878: PPUSH
19879: CALL 16886 0 4
19883: ADD
19884: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 9 ,  ) ;
19885: LD_ADDR_VAR 0 2
19889: PUSH
19890: LD_VAR 0 2
19894: PUSH
19895: CALL 16851 0 0
19899: PPUSH
19900: LD_INT 8
19902: PPUSH
19903: LD_INT 9
19905: PPUSH
19906: LD_STRING 
19908: PPUSH
19909: CALL 16886 0 4
19913: ADD
19914: ST_TO_ADDR
// ARABI_VOJACI = pom ;
19915: LD_ADDR_EXP 64
19919: PUSH
19920: LD_VAR 0 2
19924: ST_TO_ADDR
// vc_weapon = ar_rocket_launcher ;
19925: LD_ADDR_OWVAR 40
19929: PUSH
19930: LD_INT 28
19932: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
19933: LD_ADDR_OWVAR 37
19937: PUSH
19938: LD_INT 14
19940: ST_TO_ADDR
// vc_control = control_manual ;
19941: LD_ADDR_OWVAR 38
19945: PUSH
19946: LD_INT 1
19948: ST_TO_ADDR
// vc_engine = engine_combustion ;
19949: LD_ADDR_OWVAR 39
19953: PUSH
19954: LD_INT 1
19956: ST_TO_ADDR
// av = CreateVehicle ;
19957: LD_ADDR_LOC 24
19961: PUSH
19962: CALL_OW 45
19966: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19967: LD_ADDR_LOC 23
19971: PUSH
19972: CALL 16851 0 0
19976: PPUSH
19977: LD_INT 3
19979: PPUSH
19980: LD_INT 9
19982: PPUSH
19983: LD_STRING 
19985: PPUSH
19986: CALL 16886 0 4
19990: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19991: LD_LOC 23
19995: PPUSH
19996: LD_LOC 24
20000: PPUSH
20001: CALL_OW 52
// pom = av ;
20005: LD_ADDR_VAR 0 2
20009: PUSH
20010: LD_LOC 24
20014: ST_TO_ADDR
// av = CreateVehicle ;
20015: LD_ADDR_LOC 24
20019: PUSH
20020: CALL_OW 45
20024: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 8 ,  ) ;
20025: LD_ADDR_LOC 23
20029: PUSH
20030: CALL 16851 0 0
20034: PPUSH
20035: LD_INT 3
20037: PPUSH
20038: LD_INT 8
20040: PPUSH
20041: LD_STRING 
20043: PPUSH
20044: CALL 16886 0 4
20048: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20049: LD_LOC 23
20053: PPUSH
20054: LD_LOC 24
20058: PPUSH
20059: CALL_OW 52
// pom = pom ^ av ;
20063: LD_ADDR_VAR 0 2
20067: PUSH
20068: LD_VAR 0 2
20072: PUSH
20073: LD_LOC 24
20077: ADD
20078: ST_TO_ADDR
// av = CreateVehicle ;
20079: LD_ADDR_LOC 24
20083: PUSH
20084: CALL_OW 45
20088: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 8 ,  ) ;
20089: LD_ADDR_LOC 23
20093: PUSH
20094: CALL 16851 0 0
20098: PPUSH
20099: LD_INT 3
20101: PPUSH
20102: LD_INT 8
20104: PPUSH
20105: LD_STRING 
20107: PPUSH
20108: CALL 16886 0 4
20112: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20113: LD_LOC 23
20117: PPUSH
20118: LD_LOC 24
20122: PPUSH
20123: CALL_OW 52
// pom = pom ^ av ;
20127: LD_ADDR_VAR 0 2
20131: PUSH
20132: LD_VAR 0 2
20136: PUSH
20137: LD_LOC 24
20141: ADD
20142: ST_TO_ADDR
// ARABI_doraz = pom ;
20143: LD_ADDR_EXP 65
20147: PUSH
20148: LD_VAR 0 2
20152: ST_TO_ADDR
// end ;
20153: LD_VAR 0 1
20157: RET
// export function create_ruske_posily_na_omicron ; var pom ; begin
20158: LD_INT 0
20160: PPUSH
20161: PPUSH
// pom = [ ] ;
20162: LD_ADDR_VAR 0 2
20166: PUSH
20167: EMPTY
20168: ST_TO_ADDR
// uc_side = You2 ;
20169: LD_ADDR_OWVAR 20
20173: PUSH
20174: LD_EXP 2
20178: ST_TO_ADDR
// uc_nation = nation_russian ;
20179: LD_ADDR_OWVAR 21
20183: PUSH
20184: LD_INT 3
20186: ST_TO_ADDR
// vc_chassis = ru_heavy_wheeled ;
20187: LD_ADDR_OWVAR 37
20191: PUSH
20192: LD_INT 23
20194: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
20195: LD_ADDR_OWVAR 40
20199: PUSH
20200: LD_INT 43
20202: ST_TO_ADDR
// vc_control = control_manual ;
20203: LD_ADDR_OWVAR 38
20207: PUSH
20208: LD_INT 1
20210: ST_TO_ADDR
// vc_engine = engine_combustion ;
20211: LD_ADDR_OWVAR 39
20215: PUSH
20216: LD_INT 1
20218: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] ,  ) ;
20219: LD_ADDR_LOC 23
20223: PUSH
20224: CALL 16851 0 0
20228: PPUSH
20229: LD_INT 3
20231: PPUSH
20232: LD_EXP 20
20236: PUSH
20237: LD_OWVAR 67
20241: ARRAY
20242: PPUSH
20243: LD_STRING 
20245: PPUSH
20246: CALL 16886 0 4
20250: ST_TO_ADDR
// av = CreateVehicle ;
20251: LD_ADDR_LOC 24
20255: PUSH
20256: CALL_OW 45
20260: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20261: LD_LOC 23
20265: PPUSH
20266: LD_LOC 24
20270: PPUSH
20271: CALL_OW 52
// pom = pom ^ av ;
20275: LD_ADDR_VAR 0 2
20279: PUSH
20280: LD_VAR 0 2
20284: PUSH
20285: LD_LOC 24
20289: ADD
20290: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] + 1 ,  ) ;
20291: LD_ADDR_LOC 23
20295: PUSH
20296: CALL 16851 0 0
20300: PPUSH
20301: LD_INT 3
20303: PPUSH
20304: LD_EXP 20
20308: PUSH
20309: LD_OWVAR 67
20313: ARRAY
20314: PUSH
20315: LD_INT 1
20317: PLUS
20318: PPUSH
20319: LD_STRING 
20321: PPUSH
20322: CALL 16886 0 4
20326: ST_TO_ADDR
// av = CreateVehicle ;
20327: LD_ADDR_LOC 24
20331: PUSH
20332: CALL_OW 45
20336: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20337: LD_LOC 23
20341: PPUSH
20342: LD_LOC 24
20346: PPUSH
20347: CALL_OW 52
// pom = pom ^ av ;
20351: LD_ADDR_VAR 0 2
20355: PUSH
20356: LD_VAR 0 2
20360: PUSH
20361: LD_LOC 24
20365: ADD
20366: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] ,  ) ;
20367: LD_ADDR_LOC 23
20371: PUSH
20372: CALL 16851 0 0
20376: PPUSH
20377: LD_INT 3
20379: PPUSH
20380: LD_EXP 20
20384: PUSH
20385: LD_OWVAR 67
20389: ARRAY
20390: PPUSH
20391: LD_STRING 
20393: PPUSH
20394: CALL 16886 0 4
20398: ST_TO_ADDR
// vc_weapon = ru_gun ;
20399: LD_ADDR_OWVAR 40
20403: PUSH
20404: LD_INT 44
20406: ST_TO_ADDR
// av = CreateVehicle ;
20407: LD_ADDR_LOC 24
20411: PUSH
20412: CALL_OW 45
20416: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20417: LD_LOC 23
20421: PPUSH
20422: LD_LOC 24
20426: PPUSH
20427: CALL_OW 52
// pom = pom ^ av ;
20431: LD_ADDR_VAR 0 2
20435: PUSH
20436: LD_VAR 0 2
20440: PUSH
20441: LD_LOC 24
20445: ADD
20446: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] - 1 ,  ) ;
20447: LD_ADDR_LOC 23
20451: PUSH
20452: CALL 16851 0 0
20456: PPUSH
20457: LD_INT 3
20459: PPUSH
20460: LD_EXP 20
20464: PUSH
20465: LD_OWVAR 67
20469: ARRAY
20470: PUSH
20471: LD_INT 1
20473: MINUS
20474: PPUSH
20475: LD_STRING 
20477: PPUSH
20478: CALL 16886 0 4
20482: ST_TO_ADDR
// vc_chassis = ru_medium_tracked ;
20483: LD_ADDR_OWVAR 37
20487: PUSH
20488: LD_INT 22
20490: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
20491: LD_ADDR_OWVAR 40
20495: PUSH
20496: LD_INT 42
20498: ST_TO_ADDR
// av = CreateVehicle ;
20499: LD_ADDR_LOC 24
20503: PUSH
20504: CALL_OW 45
20508: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20509: LD_LOC 23
20513: PPUSH
20514: LD_LOC 24
20518: PPUSH
20519: CALL_OW 52
// pom = pom ^ av ;
20523: LD_ADDR_VAR 0 2
20527: PUSH
20528: LD_VAR 0 2
20532: PUSH
20533: LD_LOC 24
20537: ADD
20538: ST_TO_ADDR
// RUSKE_POSILY_NA_OMICRON_LIST = pom ;
20539: LD_ADDR_EXP 56
20543: PUSH
20544: LD_VAR 0 2
20548: ST_TO_ADDR
// pom = [ ] ;
20549: LD_ADDR_VAR 0 2
20553: PUSH
20554: EMPTY
20555: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] ,  ) ;
20556: LD_ADDR_LOC 23
20560: PUSH
20561: CALL 16851 0 0
20565: PPUSH
20566: LD_INT 3
20568: PPUSH
20569: LD_EXP 20
20573: PUSH
20574: LD_OWVAR 67
20578: ARRAY
20579: PPUSH
20580: LD_STRING 
20582: PPUSH
20583: CALL 16886 0 4
20587: ST_TO_ADDR
// pom = pom ^ ah ;
20588: LD_ADDR_VAR 0 2
20592: PUSH
20593: LD_VAR 0 2
20597: PUSH
20598: LD_LOC 23
20602: ADD
20603: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] ,  ) ;
20604: LD_ADDR_LOC 23
20608: PUSH
20609: CALL 16851 0 0
20613: PPUSH
20614: LD_INT 3
20616: PPUSH
20617: LD_EXP 20
20621: PUSH
20622: LD_OWVAR 67
20626: ARRAY
20627: PPUSH
20628: LD_STRING 
20630: PPUSH
20631: CALL 16886 0 4
20635: ST_TO_ADDR
// pom = pom ^ ah ;
20636: LD_ADDR_VAR 0 2
20640: PUSH
20641: LD_VAR 0 2
20645: PUSH
20646: LD_LOC 23
20650: ADD
20651: ST_TO_ADDR
// RUSKE_POSILY_RIDICI_LIST = pom ;
20652: LD_ADDR_EXP 57
20656: PUSH
20657: LD_VAR 0 2
20661: ST_TO_ADDR
// end ;
20662: LD_VAR 0 1
20666: RET
// export function create_dalsi_ridici ( auta ) ; var i , pom ; var poc ; begin
20667: LD_INT 0
20669: PPUSH
20670: PPUSH
20671: PPUSH
20672: PPUSH
// uc_side = You2 ;
20673: LD_ADDR_OWVAR 20
20677: PUSH
20678: LD_EXP 2
20682: ST_TO_ADDR
// uc_nation = nation_russian ;
20683: LD_ADDR_OWVAR 21
20687: PUSH
20688: LD_INT 3
20690: ST_TO_ADDR
// pom = [ ] ;
20691: LD_ADDR_VAR 0 4
20695: PUSH
20696: EMPTY
20697: ST_TO_ADDR
// poc = 0 ;
20698: LD_ADDR_VAR 0 5
20702: PUSH
20703: LD_INT 0
20705: ST_TO_ADDR
// for i in auta do
20706: LD_ADDR_VAR 0 3
20710: PUSH
20711: LD_VAR 0 1
20715: PUSH
20716: FOR_IN
20717: IFFALSE 20783
// begin poc = poc + 1 ;
20719: LD_ADDR_VAR 0 5
20723: PUSH
20724: LD_VAR 0 5
20728: PUSH
20729: LD_INT 1
20731: PLUS
20732: ST_TO_ADDR
// if poc < 3 then
20733: LD_VAR 0 5
20737: PUSH
20738: LD_INT 3
20740: LESS
20741: IFFALSE 20781
// pom = pom ^ get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] ,  ) ;
20743: LD_ADDR_VAR 0 4
20747: PUSH
20748: LD_VAR 0 4
20752: PUSH
20753: CALL 16851 0 0
20757: PPUSH
20758: LD_INT 3
20760: PPUSH
20761: LD_EXP 20
20765: PUSH
20766: LD_OWVAR 67
20770: ARRAY
20771: PPUSH
20772: LD_STRING 
20774: PPUSH
20775: CALL 16886 0 4
20779: ADD
20780: ST_TO_ADDR
// end ;
20781: GO 20716
20783: POP
20784: POP
// result := pom ;
20785: LD_ADDR_VAR 0 2
20789: PUSH
20790: LD_VAR 0 4
20794: ST_TO_ADDR
// end ;
20795: LD_VAR 0 2
20799: RET
// export function create_am_jednotky ; begin
20800: LD_INT 0
20802: PPUSH
// SetSide ( kur , You2 ) ;
20803: LD_EXP 27
20807: PPUSH
20808: LD_EXP 2
20812: PPUSH
20813: CALL_OW 235
// PlaceUnitXY ( kur , 149 , 79 , false ) ;
20817: LD_EXP 27
20821: PPUSH
20822: LD_INT 149
20824: PPUSH
20825: LD_INT 79
20827: PPUSH
20828: LD_INT 0
20830: PPUSH
20831: CALL_OW 48
// if BELKOV_SAVED then
20835: LD_EXP 24
20839: IFFALSE 20885
// begin SetSide ( bel , You2 ) ;
20841: LD_EXP 32
20845: PPUSH
20846: LD_EXP 2
20850: PPUSH
20851: CALL_OW 235
// SetClass ( bel , class_soldier ) ;
20855: LD_EXP 32
20859: PPUSH
20860: LD_INT 1
20862: PPUSH
20863: CALL_OW 336
// PlaceUnitXY ( bel , 141 , 80 , false ) ;
20867: LD_EXP 32
20871: PPUSH
20872: LD_INT 141
20874: PPUSH
20875: LD_INT 80
20877: PPUSH
20878: LD_INT 0
20880: PPUSH
20881: CALL_OW 48
// end ; if kov <> 0 then
20885: LD_EXP 30
20889: PUSH
20890: LD_INT 0
20892: NONEQUAL
20893: IFFALSE 20939
// begin SetSide ( kov , You ) ;
20895: LD_EXP 30
20899: PPUSH
20900: LD_EXP 1
20904: PPUSH
20905: CALL_OW 235
// SetClass ( kov , class_soldier ) ;
20909: LD_EXP 30
20913: PPUSH
20914: LD_INT 1
20916: PPUSH
20917: CALL_OW 336
// PlaceUnitXY ( kov , 142 , 80 , false ) ;
20921: LD_EXP 30
20925: PPUSH
20926: LD_INT 142
20928: PPUSH
20929: LD_INT 80
20931: PPUSH
20932: LD_INT 0
20934: PPUSH
20935: CALL_OW 48
// end ; SetClass ( bur , class_mechanic ) ;
20939: LD_EXP 29
20943: PPUSH
20944: LD_INT 3
20946: PPUSH
20947: CALL_OW 336
// SetSide ( bur , You ) ;
20951: LD_EXP 29
20955: PPUSH
20956: LD_EXP 1
20960: PPUSH
20961: CALL_OW 235
// PlaceUnitXY ( bur , 144 , 80 , false ) ;
20965: LD_EXP 29
20969: PPUSH
20970: LD_INT 144
20972: PPUSH
20973: LD_INT 80
20975: PPUSH
20976: LD_INT 0
20978: PPUSH
20979: CALL_OW 48
// if gny <> 0 then
20983: LD_EXP 31
20987: PUSH
20988: LD_INT 0
20990: NONEQUAL
20991: IFFALSE 21049
// begin SetClass ( gny , class_soldier ) ;
20993: LD_EXP 31
20997: PPUSH
20998: LD_INT 1
21000: PPUSH
21001: CALL_OW 336
// SetSide ( gny , You ) ;
21005: LD_EXP 31
21009: PPUSH
21010: LD_EXP 1
21014: PPUSH
21015: CALL_OW 235
// SetClass ( gny , class_mechanic ) ;
21019: LD_EXP 31
21023: PPUSH
21024: LD_INT 3
21026: PPUSH
21027: CALL_OW 336
// PlaceUnitXY ( gny , 142 , 79 , false ) ;
21031: LD_EXP 31
21035: PPUSH
21036: LD_INT 142
21038: PPUSH
21039: LD_INT 79
21041: PPUSH
21042: LD_INT 0
21044: PPUSH
21045: CALL_OW 48
// end ; SetSide ( pop , You2 ) ;
21049: LD_EXP 28
21053: PPUSH
21054: LD_EXP 2
21058: PPUSH
21059: CALL_OW 235
// PlaceUnitXY ( pop , 136 , 79 , false ) ;
21063: LD_EXP 28
21067: PPUSH
21068: LD_INT 136
21070: PPUSH
21071: LD_INT 79
21073: PPUSH
21074: LD_INT 0
21076: PPUSH
21077: CALL_OW 48
// end ;
21081: LD_VAR 0 1
21085: RET
// export function nacti_osobu ( ident ) ; begin
21086: LD_INT 0
21088: PPUSH
// if CheckCharacterSet ( ident ) then
21089: LD_VAR 0 1
21093: PPUSH
21094: CALL_OW 29
21098: IFFALSE 21117
// result := CreateCharacter ( ident ) else
21100: LD_ADDR_VAR 0 2
21104: PUSH
21105: LD_VAR 0 1
21109: PPUSH
21110: CALL_OW 34
21114: ST_TO_ADDR
21115: GO 21125
// result := 0 ;
21117: LD_ADDR_VAR 0 2
21121: PUSH
21122: LD_INT 0
21124: ST_TO_ADDR
// end ;
21125: LD_VAR 0 2
21129: RET
// export function create_arabi_komanda ; var pom ; begin
21130: LD_INT 0
21132: PPUSH
21133: PPUSH
// uc_side = Arabi ;
21134: LD_ADDR_OWVAR 20
21138: PUSH
21139: LD_EXP 5
21143: ST_TO_ADDR
// uc_nation = nation_arabian ;
21144: LD_ADDR_OWVAR 21
21148: PUSH
21149: LD_INT 2
21151: ST_TO_ADDR
// pom = [ ] ;
21152: LD_ADDR_VAR 0 2
21156: PUSH
21157: EMPTY
21158: ST_TO_ADDR
// pom = get_human ( sex_female , class_soldier , 8 ,  ) ;
21159: LD_ADDR_VAR 0 2
21163: PUSH
21164: LD_INT 2
21166: PPUSH
21167: LD_INT 1
21169: PPUSH
21170: LD_INT 8
21172: PPUSH
21173: LD_STRING 
21175: PPUSH
21176: CALL 16886 0 4
21180: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
21181: LD_ADDR_VAR 0 2
21185: PUSH
21186: LD_VAR 0 2
21190: PUSH
21191: CALL 16851 0 0
21195: PPUSH
21196: LD_INT 1
21198: PPUSH
21199: LD_INT 6
21201: PPUSH
21202: LD_STRING 
21204: PPUSH
21205: CALL 16886 0 4
21209: ADD
21210: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
21211: LD_ADDR_VAR 0 2
21215: PUSH
21216: LD_VAR 0 2
21220: PUSH
21221: CALL 16851 0 0
21225: PPUSH
21226: LD_INT 1
21228: PPUSH
21229: LD_INT 6
21231: PPUSH
21232: LD_STRING 
21234: PPUSH
21235: CALL 16886 0 4
21239: ADD
21240: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
21241: LD_ADDR_VAR 0 2
21245: PUSH
21246: LD_VAR 0 2
21250: PUSH
21251: CALL 16851 0 0
21255: PPUSH
21256: LD_INT 1
21258: PPUSH
21259: LD_INT 6
21261: PPUSH
21262: LD_STRING 
21264: PPUSH
21265: CALL 16886 0 4
21269: ADD
21270: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 6 ,  ) ;
21271: LD_ADDR_LOC 23
21275: PUSH
21276: CALL 16851 0 0
21280: PPUSH
21281: LD_INT 3
21283: PPUSH
21284: LD_INT 6
21286: PPUSH
21287: LD_STRING 
21289: PPUSH
21290: CALL 16886 0 4
21294: ST_TO_ADDR
// vc_weapon = ar_gatling_gun ;
21295: LD_ADDR_OWVAR 40
21299: PUSH
21300: LD_INT 25
21302: ST_TO_ADDR
// vc_chassis = ar_medium_trike ;
21303: LD_ADDR_OWVAR 37
21307: PUSH
21308: LD_INT 13
21310: ST_TO_ADDR
// vc_control = control_manual ;
21311: LD_ADDR_OWVAR 38
21315: PUSH
21316: LD_INT 1
21318: ST_TO_ADDR
// vc_engine = engine_solar ;
21319: LD_ADDR_OWVAR 39
21323: PUSH
21324: LD_INT 2
21326: ST_TO_ADDR
// av = CreateVehicle ;
21327: LD_ADDR_LOC 24
21331: PUSH
21332: CALL_OW 45
21336: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
21337: LD_LOC 23
21341: PPUSH
21342: LD_LOC 24
21346: PPUSH
21347: CALL_OW 52
// pom = pom ^ av ;
21351: LD_ADDR_VAR 0 2
21355: PUSH
21356: LD_VAR 0 2
21360: PUSH
21361: LD_LOC 24
21365: ADD
21366: ST_TO_ADDR
// vc_weapon = ar_gun ;
21367: LD_ADDR_OWVAR 40
21371: PUSH
21372: LD_INT 27
21374: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
21375: LD_ADDR_OWVAR 37
21379: PUSH
21380: LD_INT 14
21382: ST_TO_ADDR
// vc_control = control_apeman ;
21383: LD_ADDR_OWVAR 38
21387: PUSH
21388: LD_INT 5
21390: ST_TO_ADDR
// vc_engine = engine_combustion ;
21391: LD_ADDR_OWVAR 39
21395: PUSH
21396: LD_INT 1
21398: ST_TO_ADDR
// av = CreateVehicle ;
21399: LD_ADDR_LOC 24
21403: PUSH
21404: CALL_OW 45
21408: ST_TO_ADDR
// pom = pom ^ av ;
21409: LD_ADDR_VAR 0 2
21413: PUSH
21414: LD_VAR 0 2
21418: PUSH
21419: LD_LOC 24
21423: ADD
21424: ST_TO_ADDR
// vc_weapon = ar_gun ;
21425: LD_ADDR_OWVAR 40
21429: PUSH
21430: LD_INT 27
21432: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
21433: LD_ADDR_OWVAR 37
21437: PUSH
21438: LD_INT 14
21440: ST_TO_ADDR
// vc_control = control_apeman ;
21441: LD_ADDR_OWVAR 38
21445: PUSH
21446: LD_INT 5
21448: ST_TO_ADDR
// vc_engine = engine_combustion ;
21449: LD_ADDR_OWVAR 39
21453: PUSH
21454: LD_INT 1
21456: ST_TO_ADDR
// av = CreateVehicle ;
21457: LD_ADDR_LOC 24
21461: PUSH
21462: CALL_OW 45
21466: ST_TO_ADDR
// pom = pom ^ av ;
21467: LD_ADDR_VAR 0 2
21471: PUSH
21472: LD_VAR 0 2
21476: PUSH
21477: LD_LOC 24
21481: ADD
21482: ST_TO_ADDR
// Arabi_komanda1 = pom ;
21483: LD_ADDR_EXP 67
21487: PUSH
21488: LD_VAR 0 2
21492: ST_TO_ADDR
// Arabi_komanda2 = pom ;
21493: LD_ADDR_EXP 68
21497: PUSH
21498: LD_VAR 0 2
21502: ST_TO_ADDR
// vc_weapon = ar_gun ;
21503: LD_ADDR_OWVAR 40
21507: PUSH
21508: LD_INT 27
21510: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
21511: LD_ADDR_OWVAR 37
21515: PUSH
21516: LD_INT 14
21518: ST_TO_ADDR
// vc_control = control_apeman ;
21519: LD_ADDR_OWVAR 38
21523: PUSH
21524: LD_INT 5
21526: ST_TO_ADDR
// vc_engine = engine_combustion ;
21527: LD_ADDR_OWVAR 39
21531: PUSH
21532: LD_INT 1
21534: ST_TO_ADDR
// av = CreateVehicle ;
21535: LD_ADDR_LOC 24
21539: PUSH
21540: CALL_OW 45
21544: ST_TO_ADDR
// pom = pom ^ av ;
21545: LD_ADDR_VAR 0 2
21549: PUSH
21550: LD_VAR 0 2
21554: PUSH
21555: LD_LOC 24
21559: ADD
21560: ST_TO_ADDR
// av = CreateVehicle ;
21561: LD_ADDR_LOC 24
21565: PUSH
21566: CALL_OW 45
21570: ST_TO_ADDR
// pom = pom ^ av ;
21571: LD_ADDR_VAR 0 2
21575: PUSH
21576: LD_VAR 0 2
21580: PUSH
21581: LD_LOC 24
21585: ADD
21586: ST_TO_ADDR
// vc_weapon = ar_gun ;
21587: LD_ADDR_OWVAR 40
21591: PUSH
21592: LD_INT 27
21594: ST_TO_ADDR
// av = CreateVehicle ;
21595: LD_ADDR_LOC 24
21599: PUSH
21600: CALL_OW 45
21604: ST_TO_ADDR
// pom = pom ^ av ;
21605: LD_ADDR_VAR 0 2
21609: PUSH
21610: LD_VAR 0 2
21614: PUSH
21615: LD_LOC 24
21619: ADD
21620: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
21621: LD_ADDR_VAR 0 2
21625: PUSH
21626: LD_VAR 0 2
21630: PUSH
21631: CALL 16851 0 0
21635: PPUSH
21636: LD_INT 1
21638: PPUSH
21639: LD_INT 6
21641: PPUSH
21642: LD_STRING 
21644: PPUSH
21645: CALL 16886 0 4
21649: ADD
21650: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
21651: LD_ADDR_VAR 0 2
21655: PUSH
21656: LD_VAR 0 2
21660: PUSH
21661: CALL 16851 0 0
21665: PPUSH
21666: LD_INT 1
21668: PPUSH
21669: LD_INT 6
21671: PPUSH
21672: LD_STRING 
21674: PPUSH
21675: CALL 16886 0 4
21679: ADD
21680: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 6 ,  ) ;
21681: LD_ADDR_LOC 23
21685: PUSH
21686: CALL 16851 0 0
21690: PPUSH
21691: LD_INT 3
21693: PPUSH
21694: LD_INT 6
21696: PPUSH
21697: LD_STRING 
21699: PPUSH
21700: CALL 16886 0 4
21704: ST_TO_ADDR
// vc_weapon = ar_gun ;
21705: LD_ADDR_OWVAR 40
21709: PUSH
21710: LD_INT 27
21712: ST_TO_ADDR
// vc_chassis = ar_medium_trike ;
21713: LD_ADDR_OWVAR 37
21717: PUSH
21718: LD_INT 13
21720: ST_TO_ADDR
// vc_control = control_manual ;
21721: LD_ADDR_OWVAR 38
21725: PUSH
21726: LD_INT 1
21728: ST_TO_ADDR
// vc_engine = engine_siberite ;
21729: LD_ADDR_OWVAR 39
21733: PUSH
21734: LD_INT 3
21736: ST_TO_ADDR
// av = CreateVehicle ;
21737: LD_ADDR_LOC 24
21741: PUSH
21742: CALL_OW 45
21746: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
21747: LD_LOC 23
21751: PPUSH
21752: LD_LOC 24
21756: PPUSH
21757: CALL_OW 52
// pom = pom ^ av ;
21761: LD_ADDR_VAR 0 2
21765: PUSH
21766: LD_VAR 0 2
21770: PUSH
21771: LD_LOC 24
21775: ADD
21776: ST_TO_ADDR
// Arabi_komanda3 = pom ;
21777: LD_ADDR_EXP 69
21781: PUSH
21782: LD_VAR 0 2
21786: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , 8 ,  ) ;
21787: LD_ADDR_VAR 0 2
21791: PUSH
21792: CALL 16851 0 0
21796: PPUSH
21797: LD_INT 1
21799: PPUSH
21800: LD_INT 8
21802: PPUSH
21803: LD_STRING 
21805: PPUSH
21806: CALL 16886 0 4
21810: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
21811: LD_ADDR_VAR 0 2
21815: PUSH
21816: LD_VAR 0 2
21820: PUSH
21821: CALL 16851 0 0
21825: PPUSH
21826: LD_INT 1
21828: PPUSH
21829: LD_INT 6
21831: PPUSH
21832: LD_STRING 
21834: PPUSH
21835: CALL 16886 0 4
21839: ADD
21840: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
21841: LD_ADDR_VAR 0 2
21845: PUSH
21846: LD_VAR 0 2
21850: PUSH
21851: CALL 16851 0 0
21855: PPUSH
21856: LD_INT 1
21858: PPUSH
21859: LD_INT 6
21861: PPUSH
21862: LD_STRING 
21864: PPUSH
21865: CALL 16886 0 4
21869: ADD
21870: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 6 ,  ) ;
21871: LD_ADDR_VAR 0 2
21875: PUSH
21876: LD_VAR 0 2
21880: PUSH
21881: CALL 16851 0 0
21885: PPUSH
21886: LD_INT 8
21888: PPUSH
21889: LD_INT 6
21891: PPUSH
21892: LD_STRING 
21894: PPUSH
21895: CALL 16886 0 4
21899: ADD
21900: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 6 ,  ) ;
21901: LD_ADDR_VAR 0 2
21905: PUSH
21906: LD_VAR 0 2
21910: PUSH
21911: CALL 16851 0 0
21915: PPUSH
21916: LD_INT 8
21918: PPUSH
21919: LD_INT 6
21921: PPUSH
21922: LD_STRING 
21924: PPUSH
21925: CALL 16886 0 4
21929: ADD
21930: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_scientistic , 6 ,  ) ;
21931: LD_ADDR_VAR 0 2
21935: PUSH
21936: LD_VAR 0 2
21940: PUSH
21941: CALL 16851 0 0
21945: PPUSH
21946: LD_INT 4
21948: PPUSH
21949: LD_INT 6
21951: PPUSH
21952: LD_STRING 
21954: PPUSH
21955: CALL 16886 0 4
21959: ADD
21960: ST_TO_ADDR
// Arabi_komanda4 = pom ;
21961: LD_ADDR_EXP 70
21965: PUSH
21966: LD_VAR 0 2
21970: ST_TO_ADDR
// end ;
21971: LD_VAR 0 1
21975: RET
// export function create_ru_posily_ma_utek ; var pom ; begin
21976: LD_INT 0
21978: PPUSH
21979: PPUSH
// uc_side = You2 ;
21980: LD_ADDR_OWVAR 20
21984: PUSH
21985: LD_EXP 2
21989: ST_TO_ADDR
// uc_nation = nation_russian ;
21990: LD_ADDR_OWVAR 21
21994: PUSH
21995: LD_INT 3
21997: ST_TO_ADDR
// pom = [ ] ;
21998: LD_ADDR_VAR 0 2
22002: PUSH
22003: EMPTY
22004: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 3 ,  ) ;
22005: LD_ADDR_LOC 23
22009: PUSH
22010: CALL 16851 0 0
22014: PPUSH
22015: LD_INT 3
22017: PPUSH
22018: LD_INT 3
22020: PPUSH
22021: LD_STRING 
22023: PPUSH
22024: CALL 16886 0 4
22028: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
22029: LD_ADDR_OWVAR 40
22033: PUSH
22034: LD_INT 42
22036: ST_TO_ADDR
// vc_chassis = ru_heavy_wheeled ;
22037: LD_ADDR_OWVAR 37
22041: PUSH
22042: LD_INT 23
22044: ST_TO_ADDR
// vc_control = control_manual ;
22045: LD_ADDR_OWVAR 38
22049: PUSH
22050: LD_INT 1
22052: ST_TO_ADDR
// vc_engine = engine_combustion ;
22053: LD_ADDR_OWVAR 39
22057: PUSH
22058: LD_INT 1
22060: ST_TO_ADDR
// av = CreateVehicle ;
22061: LD_ADDR_LOC 24
22065: PUSH
22066: CALL_OW 45
22070: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
22071: LD_LOC 23
22075: PPUSH
22076: LD_LOC 24
22080: PPUSH
22081: CALL_OW 52
// pom = pom ^ av ;
22085: LD_ADDR_VAR 0 2
22089: PUSH
22090: LD_VAR 0 2
22094: PUSH
22095: LD_LOC 24
22099: ADD
22100: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 3 ,  ) ;
22101: LD_ADDR_LOC 23
22105: PUSH
22106: CALL 16851 0 0
22110: PPUSH
22111: LD_INT 3
22113: PPUSH
22114: LD_INT 3
22116: PPUSH
22117: LD_STRING 
22119: PPUSH
22120: CALL 16886 0 4
22124: ST_TO_ADDR
// vc_chassis = ru_medium_wheeled ;
22125: LD_ADDR_OWVAR 37
22129: PUSH
22130: LD_INT 21
22132: ST_TO_ADDR
// av = CreateVehicle ;
22133: LD_ADDR_LOC 24
22137: PUSH
22138: CALL_OW 45
22142: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
22143: LD_LOC 23
22147: PPUSH
22148: LD_LOC 24
22152: PPUSH
22153: CALL_OW 52
// pom = pom ^ av ;
22157: LD_ADDR_VAR 0 2
22161: PUSH
22162: LD_VAR 0 2
22166: PUSH
22167: LD_LOC 24
22171: ADD
22172: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 3 ,  ) ;
22173: LD_ADDR_VAR 0 2
22177: PUSH
22178: LD_VAR 0 2
22182: PUSH
22183: CALL 16851 0 0
22187: PPUSH
22188: LD_INT 1
22190: PPUSH
22191: LD_INT 3
22193: PPUSH
22194: LD_STRING 
22196: PPUSH
22197: CALL 16886 0 4
22201: ADD
22202: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 3 ,  ) ;
22203: LD_ADDR_VAR 0 2
22207: PUSH
22208: LD_VAR 0 2
22212: PUSH
22213: CALL 16851 0 0
22217: PPUSH
22218: LD_INT 1
22220: PPUSH
22221: LD_INT 3
22223: PPUSH
22224: LD_STRING 
22226: PPUSH
22227: CALL 16886 0 4
22231: ADD
22232: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 3 ,  ) ;
22233: LD_ADDR_VAR 0 2
22237: PUSH
22238: LD_VAR 0 2
22242: PUSH
22243: CALL 16851 0 0
22247: PPUSH
22248: LD_INT 1
22250: PPUSH
22251: LD_INT 3
22253: PPUSH
22254: LD_STRING 
22256: PPUSH
22257: CALL 16886 0 4
22261: ADD
22262: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , 3 ,  ) ;
22263: LD_ADDR_VAR 0 2
22267: PUSH
22268: LD_VAR 0 2
22272: PUSH
22273: CALL 16851 0 0
22277: PPUSH
22278: LD_INT 3
22280: PPUSH
22281: LD_INT 3
22283: PPUSH
22284: LD_STRING 
22286: PPUSH
22287: CALL 16886 0 4
22291: ADD
22292: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , 3 ,  ) ;
22293: LD_ADDR_VAR 0 2
22297: PUSH
22298: LD_VAR 0 2
22302: PUSH
22303: CALL 16851 0 0
22307: PPUSH
22308: LD_INT 3
22310: PPUSH
22311: LD_INT 3
22313: PPUSH
22314: LD_STRING 
22316: PPUSH
22317: CALL 16886 0 4
22321: ADD
22322: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , 3 ,  ) ;
22323: LD_ADDR_VAR 0 2
22327: PUSH
22328: LD_VAR 0 2
22332: PUSH
22333: CALL 16851 0 0
22337: PPUSH
22338: LD_INT 3
22340: PPUSH
22341: LD_INT 3
22343: PPUSH
22344: LD_STRING 
22346: PPUSH
22347: CALL 16886 0 4
22351: ADD
22352: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_engineer , 3 ,  ) ;
22353: LD_ADDR_VAR 0 2
22357: PUSH
22358: LD_VAR 0 2
22362: PUSH
22363: CALL 16851 0 0
22367: PPUSH
22368: LD_INT 2
22370: PPUSH
22371: LD_INT 3
22373: PPUSH
22374: LD_STRING 
22376: PPUSH
22377: CALL 16886 0 4
22381: ADD
22382: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_engineer , 3 ,  ) ;
22383: LD_ADDR_VAR 0 2
22387: PUSH
22388: LD_VAR 0 2
22392: PUSH
22393: CALL 16851 0 0
22397: PPUSH
22398: LD_INT 2
22400: PPUSH
22401: LD_INT 3
22403: PPUSH
22404: LD_STRING 
22406: PPUSH
22407: CALL 16886 0 4
22411: ADD
22412: ST_TO_ADDR
// RU_posily_na_utek = pom ;
22413: LD_ADDR_EXP 58
22417: PUSH
22418: LD_VAR 0 2
22422: ST_TO_ADDR
// end ;
22423: LD_VAR 0 1
22427: RET
// export function create_arabi_na_posily_kirovu ; var pom ; begin
22428: LD_INT 0
22430: PPUSH
22431: PPUSH
// pom = [ ] ;
22432: LD_ADDR_VAR 0 2
22436: PUSH
22437: EMPTY
22438: ST_TO_ADDR
// uc_side = Arabi ;
22439: LD_ADDR_OWVAR 20
22443: PUSH
22444: LD_EXP 5
22448: ST_TO_ADDR
// uc_nation = nation_arabian ;
22449: LD_ADDR_OWVAR 21
22453: PUSH
22454: LD_INT 2
22456: ST_TO_ADDR
// vc_weapon = ar_gun ;
22457: LD_ADDR_OWVAR 40
22461: PUSH
22462: LD_INT 27
22464: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
22465: LD_ADDR_OWVAR 37
22469: PUSH
22470: LD_INT 14
22472: ST_TO_ADDR
// vc_control = control_apeman ;
22473: LD_ADDR_OWVAR 38
22477: PUSH
22478: LD_INT 5
22480: ST_TO_ADDR
// vc_engine = engine_combustion ;
22481: LD_ADDR_OWVAR 39
22485: PUSH
22486: LD_INT 1
22488: ST_TO_ADDR
// av = CreateVehicle ;
22489: LD_ADDR_LOC 24
22493: PUSH
22494: CALL_OW 45
22498: ST_TO_ADDR
// pom = pom ^ av ;
22499: LD_ADDR_VAR 0 2
22503: PUSH
22504: LD_VAR 0 2
22508: PUSH
22509: LD_LOC 24
22513: ADD
22514: ST_TO_ADDR
// av = CreateVehicle ;
22515: LD_ADDR_LOC 24
22519: PUSH
22520: CALL_OW 45
22524: ST_TO_ADDR
// pom = pom ^ av ;
22525: LD_ADDR_VAR 0 2
22529: PUSH
22530: LD_VAR 0 2
22534: PUSH
22535: LD_LOC 24
22539: ADD
22540: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 5 ,  ) ;
22541: LD_ADDR_LOC 23
22545: PUSH
22546: CALL 16851 0 0
22550: PPUSH
22551: LD_INT 3
22553: PPUSH
22554: LD_INT 5
22556: PPUSH
22557: LD_STRING 
22559: PPUSH
22560: CALL 16886 0 4
22564: ST_TO_ADDR
// vc_control = control_manual ;
22565: LD_ADDR_OWVAR 38
22569: PUSH
22570: LD_INT 1
22572: ST_TO_ADDR
// av = CreateVehicle ;
22573: LD_ADDR_LOC 24
22577: PUSH
22578: CALL_OW 45
22582: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
22583: LD_LOC 23
22587: PPUSH
22588: LD_LOC 24
22592: PPUSH
22593: CALL_OW 52
// pom = pom ^ av ;
22597: LD_ADDR_VAR 0 2
22601: PUSH
22602: LD_VAR 0 2
22606: PUSH
22607: LD_LOC 24
22611: ADD
22612: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 5 ,  ) ;
22613: LD_ADDR_LOC 23
22617: PUSH
22618: CALL 16851 0 0
22622: PPUSH
22623: LD_INT 3
22625: PPUSH
22626: LD_INT 5
22628: PPUSH
22629: LD_STRING 
22631: PPUSH
22632: CALL 16886 0 4
22636: ST_TO_ADDR
// vc_control = control_manual ;
22637: LD_ADDR_OWVAR 38
22641: PUSH
22642: LD_INT 1
22644: ST_TO_ADDR
// av = CreateVehicle ;
22645: LD_ADDR_LOC 24
22649: PUSH
22650: CALL_OW 45
22654: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
22655: LD_LOC 23
22659: PPUSH
22660: LD_LOC 24
22664: PPUSH
22665: CALL_OW 52
// pom = pom ^ av ;
22669: LD_ADDR_VAR 0 2
22673: PUSH
22674: LD_VAR 0 2
22678: PUSH
22679: LD_LOC 24
22683: ADD
22684: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 7 ,  ) ;
22685: LD_ADDR_VAR 0 2
22689: PUSH
22690: LD_VAR 0 2
22694: PUSH
22695: CALL 16851 0 0
22699: PPUSH
22700: LD_INT 1
22702: PPUSH
22703: LD_INT 7
22705: PPUSH
22706: LD_STRING 
22708: PPUSH
22709: CALL 16886 0 4
22713: ADD
22714: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 7 ,  ) ;
22715: LD_ADDR_VAR 0 2
22719: PUSH
22720: LD_VAR 0 2
22724: PUSH
22725: CALL 16851 0 0
22729: PPUSH
22730: LD_INT 1
22732: PPUSH
22733: LD_INT 7
22735: PPUSH
22736: LD_STRING 
22738: PPUSH
22739: CALL 16886 0 4
22743: ADD
22744: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 7 ,  ) ;
22745: LD_ADDR_VAR 0 2
22749: PUSH
22750: LD_VAR 0 2
22754: PUSH
22755: CALL 16851 0 0
22759: PPUSH
22760: LD_INT 8
22762: PPUSH
22763: LD_INT 7
22765: PPUSH
22766: LD_STRING 
22768: PPUSH
22769: CALL 16886 0 4
22773: ADD
22774: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 7 ,  ) ;
22775: LD_ADDR_VAR 0 2
22779: PUSH
22780: LD_VAR 0 2
22784: PUSH
22785: CALL 16851 0 0
22789: PPUSH
22790: LD_INT 8
22792: PPUSH
22793: LD_INT 7
22795: PPUSH
22796: LD_STRING 
22798: PPUSH
22799: CALL 16886 0 4
22803: ADD
22804: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 7 ,  ) ;
22805: LD_ADDR_VAR 0 2
22809: PUSH
22810: LD_VAR 0 2
22814: PUSH
22815: CALL 16851 0 0
22819: PPUSH
22820: LD_INT 8
22822: PPUSH
22823: LD_INT 7
22825: PPUSH
22826: LD_STRING 
22828: PPUSH
22829: CALL 16886 0 4
22833: ADD
22834: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 7 ,  ) ;
22835: LD_ADDR_VAR 0 2
22839: PUSH
22840: LD_VAR 0 2
22844: PUSH
22845: CALL 16851 0 0
22849: PPUSH
22850: LD_INT 8
22852: PPUSH
22853: LD_INT 7
22855: PPUSH
22856: LD_STRING 
22858: PPUSH
22859: CALL 16886 0 4
22863: ADD
22864: ST_TO_ADDR
// ARABI_KIROV_POSILY = pom ;
22865: LD_ADDR_EXP 66
22869: PUSH
22870: LD_VAR 0 2
22874: ST_TO_ADDR
// end ;
22875: LD_VAR 0 1
22879: RET
// export function create_cerpaci_ruske_auta ; var pom ; begin
22880: LD_INT 0
22882: PPUSH
22883: PPUSH
// pom = [ ] ;
22884: LD_ADDR_VAR 0 2
22888: PUSH
22889: EMPTY
22890: ST_TO_ADDR
// uc_nation = nation_russian ;
22891: LD_ADDR_OWVAR 21
22895: PUSH
22896: LD_INT 3
22898: ST_TO_ADDR
// uc_side = You2 ;
22899: LD_ADDR_OWVAR 20
22903: PUSH
22904: LD_EXP 2
22908: ST_TO_ADDR
// vc_weapon = ru_cargo_bay ;
22909: LD_ADDR_OWVAR 40
22913: PUSH
22914: LD_INT 51
22916: ST_TO_ADDR
// vc_chassis = ru_medium_wheeled ;
22917: LD_ADDR_OWVAR 37
22921: PUSH
22922: LD_INT 21
22924: ST_TO_ADDR
// vc_control = control_manual ;
22925: LD_ADDR_OWVAR 38
22929: PUSH
22930: LD_INT 1
22932: ST_TO_ADDR
// vc_engine = engine_combustion ;
22933: LD_ADDR_OWVAR 39
22937: PUSH
22938: LD_INT 1
22940: ST_TO_ADDR
// av = CreateVehicle ;
22941: LD_ADDR_LOC 24
22945: PUSH
22946: CALL_OW 45
22950: ST_TO_ADDR
// ah = get_human ( get_sex , class_soldier , 4 ,  ) ;
22951: LD_ADDR_LOC 23
22955: PUSH
22956: CALL 16851 0 0
22960: PPUSH
22961: LD_INT 1
22963: PPUSH
22964: LD_INT 4
22966: PPUSH
22967: LD_STRING 
22969: PPUSH
22970: CALL 16886 0 4
22974: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
22975: LD_LOC 23
22979: PPUSH
22980: LD_LOC 24
22984: PPUSH
22985: CALL_OW 52
// SetCargo ( av , mat_oil , 100 ) ;
22989: LD_LOC 24
22993: PPUSH
22994: LD_INT 2
22996: PPUSH
22997: LD_INT 100
22999: PPUSH
23000: CALL_OW 290
// pom = pom ^ av ;
23004: LD_ADDR_VAR 0 2
23008: PUSH
23009: LD_VAR 0 2
23013: PUSH
23014: LD_LOC 24
23018: ADD
23019: ST_TO_ADDR
// av = CreateVehicle ;
23020: LD_ADDR_LOC 24
23024: PUSH
23025: CALL_OW 45
23029: ST_TO_ADDR
// ah = get_human ( get_sex , class_soldier , 4 ,  ) ;
23030: LD_ADDR_LOC 23
23034: PUSH
23035: CALL 16851 0 0
23039: PPUSH
23040: LD_INT 1
23042: PPUSH
23043: LD_INT 4
23045: PPUSH
23046: LD_STRING 
23048: PPUSH
23049: CALL 16886 0 4
23053: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
23054: LD_LOC 23
23058: PPUSH
23059: LD_LOC 24
23063: PPUSH
23064: CALL_OW 52
// SetCargo ( av , mat_oil , 100 ) ;
23068: LD_LOC 24
23072: PPUSH
23073: LD_INT 2
23075: PPUSH
23076: LD_INT 100
23078: PPUSH
23079: CALL_OW 290
// pom = pom ^ av ;
23083: LD_ADDR_VAR 0 2
23087: PUSH
23088: LD_VAR 0 2
23092: PUSH
23093: LD_LOC 24
23097: ADD
23098: ST_TO_ADDR
// av = CreateVehicle ;
23099: LD_ADDR_LOC 24
23103: PUSH
23104: CALL_OW 45
23108: ST_TO_ADDR
// ah = get_human ( get_sex , class_soldier , 4 ,  ) ;
23109: LD_ADDR_LOC 23
23113: PUSH
23114: CALL 16851 0 0
23118: PPUSH
23119: LD_INT 1
23121: PPUSH
23122: LD_INT 4
23124: PPUSH
23125: LD_STRING 
23127: PPUSH
23128: CALL 16886 0 4
23132: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
23133: LD_LOC 23
23137: PPUSH
23138: LD_LOC 24
23142: PPUSH
23143: CALL_OW 52
// SetCargo ( av , mat_oil , 100 ) ;
23147: LD_LOC 24
23151: PPUSH
23152: LD_INT 2
23154: PPUSH
23155: LD_INT 100
23157: PPUSH
23158: CALL_OW 290
// pom = pom ^ av ;
23162: LD_ADDR_VAR 0 2
23166: PUSH
23167: LD_VAR 0 2
23171: PUSH
23172: LD_LOC 24
23176: ADD
23177: ST_TO_ADDR
// RUSI_CERPACI_AUTA_LIST = pom ;
23178: LD_ADDR_EXP 59
23182: PUSH
23183: LD_VAR 0 2
23187: ST_TO_ADDR
// end ; end_of_file
23188: LD_VAR 0 1
23192: RET
// var Am_hlidka ; var Am_pomoc ; export Am_posily ; export Prezite_posily ; every 0 0$0.1 do var i ;
23193: GO 23195
23195: DISABLE
23196: LD_INT 0
23198: PPUSH
// begin Am_hlidka = [ ] ;
23199: LD_ADDR_LOC 25
23203: PUSH
23204: EMPTY
23205: ST_TO_ADDR
// Am_pomoc = [ ] ;
23206: LD_ADDR_LOC 26
23210: PUSH
23211: EMPTY
23212: ST_TO_ADDR
// Prezite_posily = 0 ;
23213: LD_ADDR_EXP 73
23217: PUSH
23218: LD_INT 0
23220: ST_TO_ADDR
// for i in [ 101 , 102 , 103 ] do
23221: LD_ADDR_VAR 0 1
23225: PUSH
23226: LD_INT 101
23228: PUSH
23229: LD_INT 102
23231: PUSH
23232: LD_INT 103
23234: PUSH
23235: EMPTY
23236: LIST
23237: LIST
23238: LIST
23239: PUSH
23240: FOR_IN
23241: IFFALSE 23250
// enable ( i ) end ;
23243: LD_VAR 0 1
23247: ENABLE_MARKED
23248: GO 23240
23250: POP
23251: POP
23252: PPOPN 1
23254: END
// export function PrepareOmicron ; var i , skill ; begin
23255: LD_INT 0
23257: PPUSH
23258: PPUSH
23259: PPUSH
// uc_side := 1 ;
23260: LD_ADDR_OWVAR 20
23264: PUSH
23265: LD_INT 1
23267: ST_TO_ADDR
// uc_nation := 1 ;
23268: LD_ADDR_OWVAR 21
23272: PUSH
23273: LD_INT 1
23275: ST_TO_ADDR
// skill := [ 3 , 4 , 5 ] [ Difficulty ] ;
23276: LD_ADDR_VAR 0 3
23280: PUSH
23281: LD_INT 3
23283: PUSH
23284: LD_INT 4
23286: PUSH
23287: LD_INT 5
23289: PUSH
23290: EMPTY
23291: LIST
23292: LIST
23293: LIST
23294: PUSH
23295: LD_OWVAR 67
23299: ARRAY
23300: ST_TO_ADDR
// for i = 1 to Difficulty do
23301: LD_ADDR_VAR 0 2
23305: PUSH
23306: DOUBLE
23307: LD_INT 1
23309: DEC
23310: ST_TO_ADDR
23311: LD_OWVAR 67
23315: PUSH
23316: FOR_TO
23317: IFFALSE 23357
// begin PrepareHuman ( false , 2 , skill ) ;
23319: LD_INT 0
23321: PPUSH
23322: LD_INT 2
23324: PPUSH
23325: LD_VAR 0 3
23329: PPUSH
23330: CALL_OW 380
// PlaceUnitXYR ( CreateHuman , 20 , 13 , 6 , false ) ;
23334: CALL_OW 44
23338: PPUSH
23339: LD_INT 20
23341: PPUSH
23342: LD_INT 13
23344: PPUSH
23345: LD_INT 6
23347: PPUSH
23348: LD_INT 0
23350: PPUSH
23351: CALL_OW 50
// end ;
23355: GO 23316
23357: POP
23358: POP
// if Difficulty > 1 then
23359: LD_OWVAR 67
23363: PUSH
23364: LD_INT 1
23366: GREATER
23367: IFFALSE 23379
// begin PlaceWeaponTurret ( Am_bu1 , us_gatling_gun ) ;
23369: LD_INT 7
23371: PPUSH
23372: LD_INT 4
23374: PPUSH
23375: CALL_OW 431
// end ; end ;
23379: LD_VAR 0 1
23383: RET
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , 1 ] , [ f_class , 2 ] ] ) do var i , engs , buildings ;
23384: LD_INT 22
23386: PUSH
23387: LD_INT 1
23389: PUSH
23390: EMPTY
23391: LIST
23392: LIST
23393: PUSH
23394: LD_INT 25
23396: PUSH
23397: LD_INT 2
23399: PUSH
23400: EMPTY
23401: LIST
23402: LIST
23403: PUSH
23404: EMPTY
23405: LIST
23406: LIST
23407: PPUSH
23408: CALL_OW 69
23412: IFFALSE 23617
23414: GO 23416
23416: DISABLE
23417: LD_INT 0
23419: PPUSH
23420: PPUSH
23421: PPUSH
// begin enable ;
23422: ENABLE
// buildings := FilterAllUnits ( [ [ f_side , 1 ] , [ f_btype , b_armoury ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
23423: LD_ADDR_VAR 0 3
23427: PUSH
23428: LD_INT 22
23430: PUSH
23431: LD_INT 1
23433: PUSH
23434: EMPTY
23435: LIST
23436: LIST
23437: PUSH
23438: LD_INT 30
23440: PUSH
23441: LD_INT 4
23443: PUSH
23444: EMPTY
23445: LIST
23446: LIST
23447: PUSH
23448: LD_INT 3
23450: PUSH
23451: LD_INT 24
23453: PUSH
23454: LD_INT 1000
23456: PUSH
23457: EMPTY
23458: LIST
23459: LIST
23460: PUSH
23461: EMPTY
23462: LIST
23463: LIST
23464: PUSH
23465: EMPTY
23466: LIST
23467: LIST
23468: LIST
23469: PPUSH
23470: CALL_OW 69
23474: ST_TO_ADDR
// engs := FilterAllUnits ( [ [ f_side , 1 ] , [ f_class , 2 ] ] ) ;
23475: LD_ADDR_VAR 0 2
23479: PUSH
23480: LD_INT 22
23482: PUSH
23483: LD_INT 1
23485: PUSH
23486: EMPTY
23487: LIST
23488: LIST
23489: PUSH
23490: LD_INT 25
23492: PUSH
23493: LD_INT 2
23495: PUSH
23496: EMPTY
23497: LIST
23498: LIST
23499: PUSH
23500: EMPTY
23501: LIST
23502: LIST
23503: PPUSH
23504: CALL_OW 69
23508: ST_TO_ADDR
// for i in engs do
23509: LD_ADDR_VAR 0 1
23513: PUSH
23514: LD_VAR 0 2
23518: PUSH
23519: FOR_IN
23520: IFFALSE 23615
// if not HasTask ( i ) and not IsInUnit ( i ) and not buildings then
23522: LD_VAR 0 1
23526: PPUSH
23527: CALL_OW 314
23531: NOT
23532: PUSH
23533: LD_VAR 0 1
23537: PPUSH
23538: CALL_OW 310
23542: NOT
23543: AND
23544: PUSH
23545: LD_VAR 0 3
23549: NOT
23550: AND
23551: IFFALSE 23567
// ComEnterUnit ( i , Am_dep ) else
23553: LD_VAR 0 1
23557: PPUSH
23558: LD_INT 12
23560: PPUSH
23561: CALL_OW 120
23565: GO 23613
// if buildings then
23567: LD_VAR 0 3
23571: IFFALSE 23613
// if IsInUnit ( i ) then
23573: LD_VAR 0 1
23577: PPUSH
23578: CALL_OW 310
23582: IFFALSE 23595
// ComExitBuilding ( i ) else
23584: LD_VAR 0 1
23588: PPUSH
23589: CALL_OW 122
23593: GO 23613
// ComRepairBuilding ( i , buildings [ 1 ] ) ;
23595: LD_VAR 0 1
23599: PPUSH
23600: LD_VAR 0 3
23604: PUSH
23605: LD_INT 1
23607: ARRAY
23608: PPUSH
23609: CALL_OW 130
23613: GO 23519
23615: POP
23616: POP
// end ;
23617: PPOPN 3
23619: END
// every 0 0$1 do var budovy ;
23620: GO 23622
23622: DISABLE
23623: LD_INT 0
23625: PPUSH
// begin PrepareOmicron ;
23626: CALL 23255 0 0
// ComEnterUnit ( Am_pru1 , Am_bar2 ) ;
23630: LD_INT 26
23632: PPUSH
23633: LD_INT 25
23635: PPUSH
23636: CALL_OW 120
// ComEnterUnit ( Am_pru2 , Am_bar2 ) ;
23640: LD_INT 27
23642: PPUSH
23643: LD_INT 25
23645: PPUSH
23646: CALL_OW 120
// ComEnterUnit ( Am_pru3 , Am_bar2 ) ;
23650: LD_INT 28
23652: PPUSH
23653: LD_INT 25
23655: PPUSH
23656: CALL_OW 120
// ComEnterUnit ( Am_vb1 , Am_bu1 ) ;
23660: LD_INT 29
23662: PPUSH
23663: LD_INT 7
23665: PPUSH
23666: CALL_OW 120
// ComEnterUnit ( Am_vb2 , Am_bu2 ) ;
23670: LD_INT 30
23672: PPUSH
23673: LD_INT 8
23675: PPUSH
23676: CALL_OW 120
// ComEnterUnit ( Am_vb3 , Am_bu3 ) ;
23680: LD_INT 31
23682: PPUSH
23683: LD_INT 19
23685: PPUSH
23686: CALL_OW 120
// ComEnterUnit ( Am_vb4 , Am_bu4 ) ;
23690: LD_INT 32
23692: PPUSH
23693: LD_INT 18
23695: PPUSH
23696: CALL_OW 120
// ComEnterUnit ( Am_sol1 , Am_bar1 ) ;
23700: LD_INT 38
23702: PPUSH
23703: LD_INT 11
23705: PPUSH
23706: CALL_OW 120
// ComEnterUnit ( Am_sol2 , Am_bar1 ) ;
23710: LD_INT 39
23712: PPUSH
23713: LD_INT 11
23715: PPUSH
23716: CALL_OW 120
// ComEnterUnit ( Am_sol3 , Am_bar1 ) ;
23720: LD_INT 40
23722: PPUSH
23723: LD_INT 11
23725: PPUSH
23726: CALL_OW 120
// ComEnterUnit ( pitomec , Am_bar2 ) ;
23730: LD_INT 63
23732: PPUSH
23733: LD_INT 25
23735: PPUSH
23736: CALL_OW 120
// ComEnterUnit ( Am_sol4 , Am_dep ) ;
23740: LD_INT 41
23742: PPUSH
23743: LD_INT 12
23745: PPUSH
23746: CALL_OW 120
// ComEnterUnit ( Am_eng1 , Am_dep ) ;
23750: LD_INT 36
23752: PPUSH
23753: LD_INT 12
23755: PPUSH
23756: CALL_OW 120
// ComEnterUnit ( Am_sci1 , Am_lab ) ;
23760: LD_INT 37
23762: PPUSH
23763: LD_INT 9
23765: PPUSH
23766: CALL_OW 120
// ComEnterUnit ( Am_me1 , Am_fac ) ;
23770: LD_INT 33
23772: PPUSH
23773: LD_INT 10
23775: PPUSH
23776: CALL_OW 120
// ComEnterUnit ( Am_me2 , Am_fac ) ;
23780: LD_INT 34
23782: PPUSH
23783: LD_INT 10
23785: PPUSH
23786: CALL_OW 120
// ComEnterUnit ( Am_me3 , Am_fac ) ;
23790: LD_INT 35
23792: PPUSH
23793: LD_INT 10
23795: PPUSH
23796: CALL_OW 120
// budovy = [ Am_bu1 , Am_bu2 , Am_bu3 , Am_bu4 , Am_el1 , Am_el2 , Am_lab , Am_fac , Am_mine , Am_dep , Am_bar1 , Am_bar2 ] ;
23800: LD_ADDR_VAR 0 1
23804: PUSH
23805: LD_INT 7
23807: PUSH
23808: LD_INT 8
23810: PUSH
23811: LD_INT 19
23813: PUSH
23814: LD_INT 18
23816: PUSH
23817: LD_INT 22
23819: PUSH
23820: LD_INT 23
23822: PUSH
23823: LD_INT 9
23825: PUSH
23826: LD_INT 10
23828: PUSH
23829: LD_INT 24
23831: PUSH
23832: LD_INT 12
23834: PUSH
23835: LD_INT 11
23837: PUSH
23838: LD_INT 25
23840: PUSH
23841: EMPTY
23842: LIST
23843: LIST
23844: LIST
23845: LIST
23846: LIST
23847: LIST
23848: LIST
23849: LIST
23850: LIST
23851: LIST
23852: LIST
23853: LIST
23854: ST_TO_ADDR
// SetBLevel ( budovy , levely_am_budov [ difficulty ] ) ;
23855: LD_VAR 0 1
23859: PPUSH
23860: LD_EXP 21
23864: PUSH
23865: LD_OWVAR 67
23869: ARRAY
23870: PPUSH
23871: CALL_OW 241
// end ;
23875: PPOPN 1
23877: END
// export function amici_hlidka ; begin
23878: LD_INT 0
23880: PPUSH
// case difficulty of 1 :
23881: LD_OWVAR 67
23885: PUSH
23886: LD_INT 1
23888: DOUBLE
23889: EQUAL
23890: IFTRUE 23894
23892: GO 23908
23894: POP
// Am_hlidka = [ Am_pru1 ] ; 2 :
23895: LD_ADDR_LOC 25
23899: PUSH
23900: LD_INT 26
23902: PUSH
23903: EMPTY
23904: LIST
23905: ST_TO_ADDR
23906: GO 23965
23908: LD_INT 2
23910: DOUBLE
23911: EQUAL
23912: IFTRUE 23916
23914: GO 23934
23916: POP
// Am_hlidka = [ Am_pru1 , Am_pru2 ] ; 3 :
23917: LD_ADDR_LOC 25
23921: PUSH
23922: LD_INT 26
23924: PUSH
23925: LD_INT 27
23927: PUSH
23928: EMPTY
23929: LIST
23930: LIST
23931: ST_TO_ADDR
23932: GO 23965
23934: LD_INT 3
23936: DOUBLE
23937: EQUAL
23938: IFTRUE 23942
23940: GO 23964
23942: POP
// Am_hlidka = [ Am_pru1 , Am_pru2 , Am_pru3 ] ; end ;
23943: LD_ADDR_LOC 25
23947: PUSH
23948: LD_INT 26
23950: PUSH
23951: LD_INT 27
23953: PUSH
23954: LD_INT 28
23956: PUSH
23957: EMPTY
23958: LIST
23959: LIST
23960: LIST
23961: ST_TO_ADDR
23962: GO 23965
23964: POP
// ComExitBuilding ( Am_hlidka ) ;
23965: LD_LOC 25
23969: PPUSH
23970: CALL_OW 122
// AddComAgressiveMove ( Am_hlidka , 34 , 16 ) ;
23974: LD_LOC 25
23978: PPUSH
23979: LD_INT 34
23981: PPUSH
23982: LD_INT 16
23984: PPUSH
23985: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
23989: LD_LOC 25
23993: PPUSH
23994: LD_INT 245
23996: PPUSH
23997: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 51 , 19 ) ;
24001: LD_LOC 25
24005: PPUSH
24006: LD_INT 51
24008: PPUSH
24009: LD_INT 19
24011: PPUSH
24012: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24016: LD_LOC 25
24020: PPUSH
24021: LD_INT 245
24023: PPUSH
24024: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 54 , 5 ) ;
24028: LD_LOC 25
24032: PPUSH
24033: LD_INT 54
24035: PPUSH
24036: LD_INT 5
24038: PPUSH
24039: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24043: LD_LOC 25
24047: PPUSH
24048: LD_INT 245
24050: PPUSH
24051: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 77 , 16 ) ;
24055: LD_LOC 25
24059: PPUSH
24060: LD_INT 77
24062: PPUSH
24063: LD_INT 16
24065: PPUSH
24066: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24070: LD_LOC 25
24074: PPUSH
24075: LD_INT 245
24077: PPUSH
24078: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 81 , 32 ) ;
24082: LD_LOC 25
24086: PPUSH
24087: LD_INT 81
24089: PPUSH
24090: LD_INT 32
24092: PPUSH
24093: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24097: LD_LOC 25
24101: PPUSH
24102: LD_INT 245
24104: PPUSH
24105: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 73 , 32 ) ;
24109: LD_LOC 25
24113: PPUSH
24114: LD_INT 73
24116: PPUSH
24117: LD_INT 32
24119: PPUSH
24120: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24124: LD_LOC 25
24128: PPUSH
24129: LD_INT 245
24131: PPUSH
24132: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 57 , 33 ) ;
24136: LD_LOC 25
24140: PPUSH
24141: LD_INT 57
24143: PPUSH
24144: LD_INT 33
24146: PPUSH
24147: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24151: LD_LOC 25
24155: PPUSH
24156: LD_INT 245
24158: PPUSH
24159: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 45 , 24 ) ;
24163: LD_LOC 25
24167: PPUSH
24168: LD_INT 45
24170: PPUSH
24171: LD_INT 24
24173: PPUSH
24174: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24178: LD_LOC 25
24182: PPUSH
24183: LD_INT 245
24185: PPUSH
24186: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 34 , 13 ) ;
24190: LD_LOC 25
24194: PPUSH
24195: LD_INT 34
24197: PPUSH
24198: LD_INT 13
24200: PPUSH
24201: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24205: LD_LOC 25
24209: PPUSH
24210: LD_INT 245
24212: PPUSH
24213: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 34 , 16 ) ;
24217: LD_LOC 25
24221: PPUSH
24222: LD_INT 34
24224: PPUSH
24225: LD_INT 16
24227: PPUSH
24228: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24232: LD_LOC 25
24236: PPUSH
24237: LD_INT 245
24239: PPUSH
24240: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 51 , 19 ) ;
24244: LD_LOC 25
24248: PPUSH
24249: LD_INT 51
24251: PPUSH
24252: LD_INT 19
24254: PPUSH
24255: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24259: LD_LOC 25
24263: PPUSH
24264: LD_INT 245
24266: PPUSH
24267: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 54 , 5 ) ;
24271: LD_LOC 25
24275: PPUSH
24276: LD_INT 54
24278: PPUSH
24279: LD_INT 5
24281: PPUSH
24282: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24286: LD_LOC 25
24290: PPUSH
24291: LD_INT 245
24293: PPUSH
24294: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 77 , 16 ) ;
24298: LD_LOC 25
24302: PPUSH
24303: LD_INT 77
24305: PPUSH
24306: LD_INT 16
24308: PPUSH
24309: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24313: LD_LOC 25
24317: PPUSH
24318: LD_INT 245
24320: PPUSH
24321: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 81 , 32 ) ;
24325: LD_LOC 25
24329: PPUSH
24330: LD_INT 81
24332: PPUSH
24333: LD_INT 32
24335: PPUSH
24336: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24340: LD_LOC 25
24344: PPUSH
24345: LD_INT 245
24347: PPUSH
24348: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 73 , 32 ) ;
24352: LD_LOC 25
24356: PPUSH
24357: LD_INT 73
24359: PPUSH
24360: LD_INT 32
24362: PPUSH
24363: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24367: LD_LOC 25
24371: PPUSH
24372: LD_INT 245
24374: PPUSH
24375: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 57 , 33 ) ;
24379: LD_LOC 25
24383: PPUSH
24384: LD_INT 57
24386: PPUSH
24387: LD_INT 33
24389: PPUSH
24390: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24394: LD_LOC 25
24398: PPUSH
24399: LD_INT 245
24401: PPUSH
24402: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 45 , 24 ) ;
24406: LD_LOC 25
24410: PPUSH
24411: LD_INT 45
24413: PPUSH
24414: LD_INT 24
24416: PPUSH
24417: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24421: LD_LOC 25
24425: PPUSH
24426: LD_INT 245
24428: PPUSH
24429: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 34 , 13 ) ;
24433: LD_LOC 25
24437: PPUSH
24438: LD_INT 34
24440: PPUSH
24441: LD_INT 13
24443: PPUSH
24444: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24448: LD_LOC 25
24452: PPUSH
24453: LD_INT 245
24455: PPUSH
24456: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 34 , 16 ) ;
24460: LD_LOC 25
24464: PPUSH
24465: LD_INT 34
24467: PPUSH
24468: LD_INT 16
24470: PPUSH
24471: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24475: LD_LOC 25
24479: PPUSH
24480: LD_INT 245
24482: PPUSH
24483: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 51 , 19 ) ;
24487: LD_LOC 25
24491: PPUSH
24492: LD_INT 51
24494: PPUSH
24495: LD_INT 19
24497: PPUSH
24498: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24502: LD_LOC 25
24506: PPUSH
24507: LD_INT 245
24509: PPUSH
24510: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 54 , 5 ) ;
24514: LD_LOC 25
24518: PPUSH
24519: LD_INT 54
24521: PPUSH
24522: LD_INT 5
24524: PPUSH
24525: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24529: LD_LOC 25
24533: PPUSH
24534: LD_INT 245
24536: PPUSH
24537: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 77 , 16 ) ;
24541: LD_LOC 25
24545: PPUSH
24546: LD_INT 77
24548: PPUSH
24549: LD_INT 16
24551: PPUSH
24552: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24556: LD_LOC 25
24560: PPUSH
24561: LD_INT 245
24563: PPUSH
24564: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 81 , 32 ) ;
24568: LD_LOC 25
24572: PPUSH
24573: LD_INT 81
24575: PPUSH
24576: LD_INT 32
24578: PPUSH
24579: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24583: LD_LOC 25
24587: PPUSH
24588: LD_INT 245
24590: PPUSH
24591: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 73 , 32 ) ;
24595: LD_LOC 25
24599: PPUSH
24600: LD_INT 73
24602: PPUSH
24603: LD_INT 32
24605: PPUSH
24606: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24610: LD_LOC 25
24614: PPUSH
24615: LD_INT 245
24617: PPUSH
24618: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 57 , 33 ) ;
24622: LD_LOC 25
24626: PPUSH
24627: LD_INT 57
24629: PPUSH
24630: LD_INT 33
24632: PPUSH
24633: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24637: LD_LOC 25
24641: PPUSH
24642: LD_INT 245
24644: PPUSH
24645: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 45 , 24 ) ;
24649: LD_LOC 25
24653: PPUSH
24654: LD_INT 45
24656: PPUSH
24657: LD_INT 24
24659: PPUSH
24660: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24664: LD_LOC 25
24668: PPUSH
24669: LD_INT 245
24671: PPUSH
24672: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 34 , 13 ) ;
24676: LD_LOC 25
24680: PPUSH
24681: LD_INT 34
24683: PPUSH
24684: LD_INT 13
24686: PPUSH
24687: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24691: LD_LOC 25
24695: PPUSH
24696: LD_INT 245
24698: PPUSH
24699: CALL_OW 202
// enable ( 101 ) ;
24703: LD_INT 101
24705: ENABLE_MARKED
// enable ( 103 ) ;
24706: LD_INT 103
24708: ENABLE_MARKED
// enable ( 102 ) ;
24709: LD_INT 102
24711: ENABLE_MARKED
// end ;
24712: LD_VAR 0 1
24716: RET
// every 0 0$1 marked 102 do var i , j , pom ;
24717: GO 24719
24719: DISABLE
24720: LD_INT 0
24722: PPUSH
24723: PPUSH
24724: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
24725: LD_ADDR_VAR 0 3
24729: PUSH
24730: LD_INT 22
24732: PUSH
24733: LD_EXP 1
24737: PUSH
24738: EMPTY
24739: LIST
24740: LIST
24741: PUSH
24742: LD_INT 21
24744: PUSH
24745: LD_INT 1
24747: PUSH
24748: EMPTY
24749: LIST
24750: LIST
24751: PUSH
24752: EMPTY
24753: LIST
24754: LIST
24755: PPUSH
24756: CALL_OW 69
24760: ST_TO_ADDR
// for i in Am_hlidka do
24761: LD_ADDR_VAR 0 1
24765: PUSH
24766: LD_LOC 25
24770: PUSH
24771: FOR_IN
24772: IFFALSE 24840
// if GetLives ( i ) < 1000 then
24774: LD_VAR 0 1
24778: PPUSH
24779: CALL_OW 256
24783: PUSH
24784: LD_INT 1000
24786: LESS
24787: IFFALSE 24838
// for j in pom do
24789: LD_ADDR_VAR 0 2
24793: PUSH
24794: LD_VAR 0 3
24798: PUSH
24799: FOR_IN
24800: IFFALSE 24836
// begin if See ( Amici , j ) then
24802: LD_EXP 4
24806: PPUSH
24807: LD_VAR 0 2
24811: PPUSH
24812: CALL_OW 292
24816: IFFALSE 24832
// ComAttackUnit ( Am_hlidka , j ) ;
24818: LD_LOC 25
24822: PPUSH
24823: LD_VAR 0 2
24827: PPUSH
24828: CALL_OW 115
// break ;
24832: GO 24836
// end ;
24834: GO 24799
24836: POP
24837: POP
24838: GO 24771
24840: POP
24841: POP
// end ;
24842: PPOPN 3
24844: END
// every 0 0$1 marked 101 do var i ; var jedn ; var posli ;
24845: GO 24847
24847: DISABLE
24848: LD_INT 0
24850: PPUSH
24851: PPUSH
24852: PPUSH
// begin jedn = [ ] ;
24853: LD_ADDR_VAR 0 2
24857: PUSH
24858: EMPTY
24859: ST_TO_ADDR
// posli = false ;
24860: LD_ADDR_VAR 0 3
24864: PUSH
24865: LD_INT 0
24867: ST_TO_ADDR
// for i in Am_hlidka do
24868: LD_ADDR_VAR 0 1
24872: PUSH
24873: LD_LOC 25
24877: PUSH
24878: FOR_IN
24879: IFFALSE 24914
// if GetLives ( i ) < 1000 then
24881: LD_VAR 0 1
24885: PPUSH
24886: CALL_OW 256
24890: PUSH
24891: LD_INT 1000
24893: LESS
24894: IFFALSE 24912
// jedn = jedn ^ i ;
24896: LD_ADDR_VAR 0 2
24900: PUSH
24901: LD_VAR 0 2
24905: PUSH
24906: LD_VAR 0 1
24910: ADD
24911: ST_TO_ADDR
24912: GO 24878
24914: POP
24915: POP
// if jedn > 0 then
24916: LD_VAR 0 2
24920: PUSH
24921: LD_INT 0
24923: GREATER
24924: IFFALSE 24969
// begin wait ( 0 0$7 ) ;
24926: LD_INT 245
24928: PPUSH
24929: CALL_OW 67
// for i in jedn do
24933: LD_ADDR_VAR 0 1
24937: PUSH
24938: LD_VAR 0 2
24942: PUSH
24943: FOR_IN
24944: IFFALSE 24967
// if IsOK ( i ) then
24946: LD_VAR 0 1
24950: PPUSH
24951: CALL_OW 302
24955: IFFALSE 24965
// posli = true ;
24957: LD_ADDR_VAR 0 3
24961: PUSH
24962: LD_INT 1
24964: ST_TO_ADDR
24965: GO 24943
24967: POP
24968: POP
// end ; if posli then
24969: LD_VAR 0 3
24973: IFFALSE 24988
// americka_pomoc_hlidce ( jedn [ 1 ] ) ;
24975: LD_VAR 0 2
24979: PUSH
24980: LD_INT 1
24982: ARRAY
24983: PPUSH
24984: CALL 25147 0 1
// enable ;
24988: ENABLE
// end ;
24989: PPOPN 3
24991: END
// every 0 0$1 marked 102 do
24992: GO 24994
24994: DISABLE
// begin wait ( schol_find_amikama [ difficulty ] ) ;
24995: LD_EXP 12
24999: PUSH
25000: LD_OWVAR 67
25004: ARRAY
25005: PPUSH
25006: CALL_OW 67
// if GetSide ( schol ) = You or GetSide ( schol2 ) = You then
25010: LD_EXP 33
25014: PPUSH
25015: CALL_OW 255
25019: PUSH
25020: LD_EXP 1
25024: EQUAL
25025: PUSH
25026: LD_EXP 34
25030: PPUSH
25031: CALL_OW 255
25035: PUSH
25036: LD_EXP 1
25040: EQUAL
25041: OR
25042: IFFALSE 25048
// exit else
25044: GO 25077
25046: GO 25077
// begin ComAgressiveMove ( Am_hlidka , 38 , 2 ) ;
25048: LD_LOC 25
25052: PPUSH
25053: LD_INT 38
25055: PPUSH
25056: LD_INT 2
25058: PPUSH
25059: CALL_OW 114
// AddComAttackUnit ( Am_hlidka , schol2 ) ;
25063: LD_LOC 25
25067: PPUSH
25068: LD_EXP 34
25072: PPUSH
25073: CALL_OW 175
// end ; end ;
25077: END
// every 0 0$3 trigger scholtze_saved or IsDead ( schol2 ) do
25078: LD_EXP 37
25082: PUSH
25083: LD_EXP 34
25087: PPUSH
25088: CALL_OW 301
25092: OR
25093: IFFALSE 25146
25095: GO 25097
25097: DISABLE
// begin ComAgressiveMove ( Am_hlidka , 28 , 18 ) ;
25098: LD_LOC 25
25102: PPUSH
25103: LD_INT 28
25105: PPUSH
25106: LD_INT 18
25108: PPUSH
25109: CALL_OW 114
// AddComEnterUnit ( Am_hlidka , Am_bar2 ) ;
25113: LD_LOC 25
25117: PPUSH
25118: LD_INT 25
25120: PPUSH
25121: CALL_OW 180
// ComAgressiveMove ( Am_pomoc , 21 , 32 ) ;
25125: LD_LOC 26
25129: PPUSH
25130: LD_INT 21
25132: PPUSH
25133: LD_INT 32
25135: PPUSH
25136: CALL_OW 114
// disable ( 101 ) ;
25140: LD_INT 101
25142: DISABLE_MARKED
// disable ( 102 ) ;
25143: LD_INT 102
25145: DISABLE_MARKED
// end ;
25146: END
// function americka_pomoc_hlidce ( jedn ) ; var i ; begin
25147: LD_INT 0
25149: PPUSH
25150: PPUSH
// Am_pomoc = AMERICKA_POMOC_HLIDCE_LIST ;
25151: LD_ADDR_LOC 26
25155: PUSH
25156: LD_EXP 50
25160: ST_TO_ADDR
// while SeeArea ( Amici , Help_area ) > 0 do
25161: LD_EXP 4
25165: PPUSH
25166: LD_INT 3
25168: PPUSH
25169: CALL_OW 294
25173: PUSH
25174: LD_INT 0
25176: GREATER
25177: IFFALSE 25188
// wait ( 0 0$1 ) ;
25179: LD_INT 35
25181: PPUSH
25182: CALL_OW 67
25186: GO 25161
// for i in AMERICKA_POMOC_HLIDCE_LIST do
25188: LD_ADDR_VAR 0 3
25192: PUSH
25193: LD_EXP 50
25197: PUSH
25198: FOR_IN
25199: IFFALSE 25218
// PlaceUnitArea ( i , Help_area , false ) ;
25201: LD_VAR 0 3
25205: PPUSH
25206: LD_INT 3
25208: PPUSH
25209: LD_INT 0
25211: PPUSH
25212: CALL_OW 49
25216: GO 25198
25218: POP
25219: POP
// wait ( 0 0$1 ) ;
25220: LD_INT 35
25222: PPUSH
25223: CALL_OW 67
// ComAgressiveMove ( Am_pomoc , GetX ( jedn ) , GetY ( jedn ) ) ;
25227: LD_LOC 26
25231: PPUSH
25232: LD_VAR 0 1
25236: PPUSH
25237: CALL_OW 250
25241: PPUSH
25242: LD_VAR 0 1
25246: PPUSH
25247: CALL_OW 251
25251: PPUSH
25252: CALL_OW 114
// end ;
25256: LD_VAR 0 2
25260: RET
// every 0 0$10 do
25261: GO 25263
25263: DISABLE
// begin wait ( Rand ( 1 , 0 0$30 ) ) ;
25264: LD_INT 1
25266: PPUSH
25267: LD_INT 1050
25269: PPUSH
25270: CALL_OW 12
25274: PPUSH
25275: CALL_OW 67
// wait ( posily1 [ difficulty ] ) ;
25279: LD_EXP 14
25283: PUSH
25284: LD_OWVAR 67
25288: ARRAY
25289: PPUSH
25290: CALL_OW 67
// posli_posily ( 1 ) ;
25294: LD_INT 1
25296: PPUSH
25297: CALL 25390 0 1
// wait ( posily11 [ difficulty ] ) ;
25301: LD_EXP 15
25305: PUSH
25306: LD_OWVAR 67
25310: ARRAY
25311: PPUSH
25312: CALL_OW 67
// posli_posily ( 11 ) ;
25316: LD_INT 11
25318: PPUSH
25319: CALL 25390 0 1
// wait ( posily2 [ difficulty ] ) ;
25323: LD_EXP 16
25327: PUSH
25328: LD_OWVAR 67
25332: ARRAY
25333: PPUSH
25334: CALL_OW 67
// posli_posily ( 2 ) ;
25338: LD_INT 2
25340: PPUSH
25341: CALL 25390 0 1
// wait ( posily3 [ difficulty ] ) ;
25345: LD_EXP 17
25349: PUSH
25350: LD_OWVAR 67
25354: ARRAY
25355: PPUSH
25356: CALL_OW 67
// posli_posily ( 3 ) ;
25360: LD_INT 3
25362: PPUSH
25363: CALL 25390 0 1
// wait ( posily4 [ difficulty ] ) ;
25367: LD_EXP 18
25371: PUSH
25372: LD_OWVAR 67
25376: ARRAY
25377: PPUSH
25378: CALL_OW 67
// posli_posily ( 4 ) ;
25382: LD_INT 4
25384: PPUSH
25385: CALL 25390 0 1
// end ;
25389: END
// function posli_posily ( ktere ) ; var i , pom ; var poc ; begin
25390: LD_INT 0
25392: PPUSH
25393: PPUSH
25394: PPUSH
25395: PPUSH
// case ktere of 1 :
25396: LD_VAR 0 1
25400: PUSH
25401: LD_INT 1
25403: DOUBLE
25404: EQUAL
25405: IFTRUE 25409
25407: GO 25444
25409: POP
// for i in AMERICKE_POSILY1_LIST do
25410: LD_ADDR_VAR 0 3
25414: PUSH
25415: LD_EXP 51
25419: PUSH
25420: FOR_IN
25421: IFFALSE 25440
// PlaceUnitArea ( i , posily_1 , false ) ; 2 :
25423: LD_VAR 0 3
25427: PPUSH
25428: LD_INT 4
25430: PPUSH
25431: LD_INT 0
25433: PPUSH
25434: CALL_OW 49
25438: GO 25420
25440: POP
25441: POP
25442: GO 25617
25444: LD_INT 2
25446: DOUBLE
25447: EQUAL
25448: IFTRUE 25452
25450: GO 25487
25452: POP
// for i in AMERICKE_POSILY2_LIST do
25453: LD_ADDR_VAR 0 3
25457: PUSH
25458: LD_EXP 52
25462: PUSH
25463: FOR_IN
25464: IFFALSE 25483
// PlaceUnitArea ( i , posily_3 , false ) ; 3 :
25466: LD_VAR 0 3
25470: PPUSH
25471: LD_INT 5
25473: PPUSH
25474: LD_INT 0
25476: PPUSH
25477: CALL_OW 49
25481: GO 25463
25483: POP
25484: POP
25485: GO 25617
25487: LD_INT 3
25489: DOUBLE
25490: EQUAL
25491: IFTRUE 25495
25493: GO 25530
25495: POP
// for i in AMERICKE_POSILY3_LIST do
25496: LD_ADDR_VAR 0 3
25500: PUSH
25501: LD_EXP 53
25505: PUSH
25506: FOR_IN
25507: IFFALSE 25526
// PlaceUnitArea ( i , posily_1 , false ) ; 4 :
25509: LD_VAR 0 3
25513: PPUSH
25514: LD_INT 4
25516: PPUSH
25517: LD_INT 0
25519: PPUSH
25520: CALL_OW 49
25524: GO 25506
25526: POP
25527: POP
25528: GO 25617
25530: LD_INT 4
25532: DOUBLE
25533: EQUAL
25534: IFTRUE 25538
25536: GO 25573
25538: POP
// for i in AMERICKE_POSILY4_LIST do
25539: LD_ADDR_VAR 0 3
25543: PUSH
25544: LD_EXP 54
25548: PUSH
25549: FOR_IN
25550: IFFALSE 25569
// PlaceUnitArea ( i , posily_3 , false ) ; 11 :
25552: LD_VAR 0 3
25556: PPUSH
25557: LD_INT 5
25559: PPUSH
25560: LD_INT 0
25562: PPUSH
25563: CALL_OW 49
25567: GO 25549
25569: POP
25570: POP
25571: GO 25617
25573: LD_INT 11
25575: DOUBLE
25576: EQUAL
25577: IFTRUE 25581
25579: GO 25616
25581: POP
// for i in AMERICKE_POSILY11_LIST do
25582: LD_ADDR_VAR 0 3
25586: PUSH
25587: LD_EXP 55
25591: PUSH
25592: FOR_IN
25593: IFFALSE 25612
// PlaceUnitArea ( i , posily_1 , false ) ; end ;
25595: LD_VAR 0 3
25599: PPUSH
25600: LD_INT 4
25602: PPUSH
25603: LD_INT 0
25605: PPUSH
25606: CALL_OW 49
25610: GO 25592
25612: POP
25613: POP
25614: GO 25617
25616: POP
// case ktere of 1 :
25617: LD_VAR 0 1
25621: PUSH
25622: LD_INT 1
25624: DOUBLE
25625: EQUAL
25626: IFTRUE 25630
25628: GO 25688
25630: POP
// begin Am_posily = AMERICKE_POSILY1_LIST ;
25631: LD_ADDR_EXP 72
25635: PUSH
25636: LD_EXP 51
25640: ST_TO_ADDR
// ComAgressiveMove ( Am_posily , 42 , 69 ) ;
25641: LD_EXP 72
25645: PPUSH
25646: LD_INT 42
25648: PPUSH
25649: LD_INT 69
25651: PPUSH
25652: CALL_OW 114
// AddComAgressiveMove ( Am_posily , 28 , 47 ) ;
25656: LD_EXP 72
25660: PPUSH
25661: LD_INT 28
25663: PPUSH
25664: LD_INT 47
25666: PPUSH
25667: CALL_OW 174
// AddComAgressiveMove ( Am_posily , 20 , 12 ) ;
25671: LD_EXP 72
25675: PPUSH
25676: LD_INT 20
25678: PPUSH
25679: LD_INT 12
25681: PPUSH
25682: CALL_OW 174
// end ; 2 :
25686: GO 25983
25688: LD_INT 2
25690: DOUBLE
25691: EQUAL
25692: IFTRUE 25696
25694: GO 25769
25696: POP
// begin Am_posily = AMERICKE_POSILY2_LIST ;
25697: LD_ADDR_EXP 72
25701: PUSH
25702: LD_EXP 52
25706: ST_TO_ADDR
// ComAgressiveMove ( Am_posily , 110 , 23 ) ;
25707: LD_EXP 72
25711: PPUSH
25712: LD_INT 110
25714: PPUSH
25715: LD_INT 23
25717: PPUSH
25718: CALL_OW 114
// AddComAgressiveMove ( Am_posily , 87 , 19 ) ;
25722: LD_EXP 72
25726: PPUSH
25727: LD_INT 87
25729: PPUSH
25730: LD_INT 19
25732: PPUSH
25733: CALL_OW 174
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
25737: LD_EXP 72
25741: PPUSH
25742: LD_INT 52
25744: PPUSH
25745: LD_INT 12
25747: PPUSH
25748: CALL_OW 174
// AddComAgressiveMove ( Am_posily , 27 , 13 ) ;
25752: LD_EXP 72
25756: PPUSH
25757: LD_INT 27
25759: PPUSH
25760: LD_INT 13
25762: PPUSH
25763: CALL_OW 174
// end ; 3 :
25767: GO 25983
25769: LD_INT 3
25771: DOUBLE
25772: EQUAL
25773: IFTRUE 25777
25775: GO 25835
25777: POP
// begin Am_posily = AMERICKE_POSILY3_LIST ;
25778: LD_ADDR_EXP 72
25782: PUSH
25783: LD_EXP 53
25787: ST_TO_ADDR
// ComAgressiveMove ( Am_posily , 42 , 69 ) ;
25788: LD_EXP 72
25792: PPUSH
25793: LD_INT 42
25795: PPUSH
25796: LD_INT 69
25798: PPUSH
25799: CALL_OW 114
// AddComAgressiveMove ( Am_posily , 28 , 47 ) ;
25803: LD_EXP 72
25807: PPUSH
25808: LD_INT 28
25810: PPUSH
25811: LD_INT 47
25813: PPUSH
25814: CALL_OW 174
// AddComAgressiveMove ( Am_posily , 20 , 12 ) ;
25818: LD_EXP 72
25822: PPUSH
25823: LD_INT 20
25825: PPUSH
25826: LD_INT 12
25828: PPUSH
25829: CALL_OW 174
// end ; 4 :
25833: GO 25983
25835: LD_INT 4
25837: DOUBLE
25838: EQUAL
25839: IFTRUE 25843
25841: GO 25916
25843: POP
// begin Am_posily = AMERICKE_POSILY4_LIST ;
25844: LD_ADDR_EXP 72
25848: PUSH
25849: LD_EXP 54
25853: ST_TO_ADDR
// ComAgressiveMove ( Am_posily , 110 , 23 ) ;
25854: LD_EXP 72
25858: PPUSH
25859: LD_INT 110
25861: PPUSH
25862: LD_INT 23
25864: PPUSH
25865: CALL_OW 114
// AddComAgressiveMove ( Am_posily , 87 , 19 ) ;
25869: LD_EXP 72
25873: PPUSH
25874: LD_INT 87
25876: PPUSH
25877: LD_INT 19
25879: PPUSH
25880: CALL_OW 174
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
25884: LD_EXP 72
25888: PPUSH
25889: LD_INT 52
25891: PPUSH
25892: LD_INT 12
25894: PPUSH
25895: CALL_OW 174
// AddComAgressiveMove ( Am_posily , 27 , 13 ) ;
25899: LD_EXP 72
25903: PPUSH
25904: LD_INT 27
25906: PPUSH
25907: LD_INT 13
25909: PPUSH
25910: CALL_OW 174
// end ; 11 :
25914: GO 25983
25916: LD_INT 11
25918: DOUBLE
25919: EQUAL
25920: IFTRUE 25924
25922: GO 25982
25924: POP
// begin Am_posily = AMERICKE_POSILY11_LIST ;
25925: LD_ADDR_EXP 72
25929: PUSH
25930: LD_EXP 55
25934: ST_TO_ADDR
// ComAgressiveMove ( Am_posily , 42 , 69 ) ;
25935: LD_EXP 72
25939: PPUSH
25940: LD_INT 42
25942: PPUSH
25943: LD_INT 69
25945: PPUSH
25946: CALL_OW 114
// AddComAgressiveMove ( Am_posily , 28 , 47 ) ;
25950: LD_EXP 72
25954: PPUSH
25955: LD_INT 28
25957: PPUSH
25958: LD_INT 47
25960: PPUSH
25961: CALL_OW 174
// AddComAgressiveMove ( Am_posily , 20 , 12 ) ;
25965: LD_EXP 72
25969: PPUSH
25970: LD_INT 20
25972: PPUSH
25973: LD_INT 12
25975: PPUSH
25976: CALL_OW 174
// end ; end ;
25980: GO 25983
25982: POP
// end ;
25983: LD_VAR 0 2
25987: RET
// every 1 1$7 do
25988: GO 25990
25990: DISABLE
// begin if Researched ( Amici , tech_Weap1 ) then
25991: LD_EXP 4
25995: PPUSH
25996: LD_INT 51
25998: PPUSH
25999: CALL_OW 325
26003: IFFALSE 26030
// begin SetTech ( tech_Weap1 , Amici , state_enabled ) ;
26005: LD_INT 51
26007: PPUSH
26008: LD_EXP 4
26012: PPUSH
26013: LD_INT 1
26015: PPUSH
26016: CALL_OW 322
// ComResearch ( Am_lab , tech_Weap1 ) ;
26020: LD_INT 9
26022: PPUSH
26023: LD_INT 51
26025: PPUSH
26026: CALL_OW 124
// end ; enable ;
26030: ENABLE
// end ;
26031: END
// every 0 0$19 do
26032: GO 26034
26034: DISABLE
// begin SetTech ( tech_Weap1 , Amici , state_enabled ) ;
26035: LD_INT 51
26037: PPUSH
26038: LD_EXP 4
26042: PPUSH
26043: LD_INT 1
26045: PPUSH
26046: CALL_OW 322
// ComResearch ( Am_lab , tech_Weap1 ) ;
26050: LD_INT 9
26052: PPUSH
26053: LD_INT 51
26055: PPUSH
26056: CALL_OW 124
// end ;
26060: END
// every 0 0$1 do var i , temp_list ;
26061: GO 26063
26063: DISABLE
26064: LD_INT 0
26066: PPUSH
26067: PPUSH
// begin i = 1 ;
26068: LD_ADDR_VAR 0 1
26072: PUSH
26073: LD_INT 1
26075: ST_TO_ADDR
// while i <= Am_posily do
26076: LD_VAR 0 1
26080: PUSH
26081: LD_EXP 72
26085: LESSEQUAL
26086: IFFALSE 26225
// begin if IsInArea ( Am_posily [ i ] , Am_base ) or not IsLive ( i ) then
26088: LD_EXP 72
26092: PUSH
26093: LD_VAR 0 1
26097: ARRAY
26098: PPUSH
26099: LD_INT 6
26101: PPUSH
26102: CALL_OW 308
26106: PUSH
26107: LD_VAR 0 1
26111: PPUSH
26112: CALL_OW 300
26116: NOT
26117: OR
26118: IFFALSE 26209
// begin if IsInArea ( Am_posily [ i ] , Am_base ) then
26120: LD_EXP 72
26124: PUSH
26125: LD_VAR 0 1
26129: ARRAY
26130: PPUSH
26131: LD_INT 6
26133: PPUSH
26134: CALL_OW 308
26138: IFFALSE 26187
// begin Prezite_posily = Prezite_posily + 1 ;
26140: LD_ADDR_EXP 73
26144: PUSH
26145: LD_EXP 73
26149: PUSH
26150: LD_INT 1
26152: PLUS
26153: ST_TO_ADDR
// if Prezite_posily > muze_prezit_posil [ difficulty ] then
26154: LD_EXP 73
26158: PUSH
26159: LD_EXP 23
26163: PUSH
26164: LD_OWVAR 67
26168: ARRAY
26169: GREATER
26170: IFFALSE 26187
// DestroyUnit ( Am_posily [ i ] ) ;
26172: LD_EXP 72
26176: PUSH
26177: LD_VAR 0 1
26181: ARRAY
26182: PPUSH
26183: CALL_OW 65
// end ; Am_posily = Delete ( Am_posily , i ) ;
26187: LD_ADDR_EXP 72
26191: PUSH
26192: LD_EXP 72
26196: PPUSH
26197: LD_VAR 0 1
26201: PPUSH
26202: CALL_OW 3
26206: ST_TO_ADDR
// continue ;
26207: GO 26076
// end ; i = i + 1 ;
26209: LD_ADDR_VAR 0 1
26213: PUSH
26214: LD_VAR 0 1
26218: PUSH
26219: LD_INT 1
26221: PLUS
26222: ST_TO_ADDR
// end ;
26223: GO 26076
// enable ;
26225: ENABLE
// end ;
26226: PPOPN 2
26228: END
// every 0 0$13 do var pom ;
26229: GO 26231
26231: DISABLE
26232: LD_INT 0
26234: PPUSH
// begin pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_class , class_mechanic ] ] ) ;
26235: LD_ADDR_VAR 0 1
26239: PUSH
26240: LD_INT 6
26242: PPUSH
26243: LD_INT 22
26245: PUSH
26246: LD_EXP 4
26250: PUSH
26251: EMPTY
26252: LIST
26253: LIST
26254: PUSH
26255: LD_INT 25
26257: PUSH
26258: LD_INT 3
26260: PUSH
26261: EMPTY
26262: LIST
26263: LIST
26264: PUSH
26265: EMPTY
26266: LIST
26267: LIST
26268: PPUSH
26269: CALL_OW 70
26273: ST_TO_ADDR
// if pom > 0 then
26274: LD_VAR 0 1
26278: PUSH
26279: LD_INT 0
26281: GREATER
26282: IFFALSE 26296
// ComEnterUnit ( pom , Am_fac ) ;
26284: LD_VAR 0 1
26288: PPUSH
26289: LD_INT 10
26291: PPUSH
26292: CALL_OW 120
// enable ;
26296: ENABLE
// end ;
26297: PPOPN 1
26299: END
// every 0 0$17 do var pom ;
26300: GO 26302
26302: DISABLE
26303: LD_INT 0
26305: PPUSH
// begin pom = UnitsInside ( Am_fac ) ;
26306: LD_ADDR_VAR 0 1
26310: PUSH
26311: LD_INT 10
26313: PPUSH
26314: CALL_OW 313
26318: ST_TO_ADDR
// if pom > 3 then
26319: LD_VAR 0 1
26323: PUSH
26324: LD_INT 3
26326: GREATER
26327: IFFALSE 26348
// ComConstruct ( Am_fac , us_light_wheeled , engine_solar , control_manual , us_machine_gun ) ;
26329: LD_INT 10
26331: PPUSH
26332: LD_INT 1
26334: PPUSH
26335: LD_INT 2
26337: PPUSH
26338: LD_INT 1
26340: PPUSH
26341: LD_INT 2
26343: PPUSH
26344: CALL_OW 125
// while UnitsInside ( Am_fac ) > 3 do
26348: LD_INT 10
26350: PPUSH
26351: CALL_OW 313
26355: PUSH
26356: LD_INT 3
26358: GREATER
26359: IFFALSE 26370
// wait ( 0 0$10 ) ;
26361: LD_INT 350
26363: PPUSH
26364: CALL_OW 67
26368: GO 26348
// enable ;
26370: ENABLE
// end ;
26371: PPOPN 1
26373: END
// export function am_posily_videny_rusakama ; var i ; var videli ; begin
26374: LD_INT 0
26376: PPUSH
26377: PPUSH
26378: PPUSH
// videli = false ;
26379: LD_ADDR_VAR 0 3
26383: PUSH
26384: LD_INT 0
26386: ST_TO_ADDR
// for i in Am_posily do
26387: LD_ADDR_VAR 0 2
26391: PUSH
26392: LD_EXP 72
26396: PUSH
26397: FOR_IN
26398: IFFALSE 26426
// if See ( You , i ) then
26400: LD_EXP 1
26404: PPUSH
26405: LD_VAR 0 2
26409: PPUSH
26410: CALL_OW 292
26414: IFFALSE 26424
// videli = true ;
26416: LD_ADDR_VAR 0 3
26420: PUSH
26421: LD_INT 1
26423: ST_TO_ADDR
26424: GO 26397
26426: POP
26427: POP
// result := videli ;
26428: LD_ADDR_VAR 0 1
26432: PUSH
26433: LD_VAR 0 3
26437: ST_TO_ADDR
// end ;
26438: LD_VAR 0 1
26442: RET
// export function omicron_half_destroyed ; var pom , i ; var zije ; var a ; begin
26443: LD_INT 0
26445: PPUSH
26446: PPUSH
26447: PPUSH
26448: PPUSH
26449: PPUSH
// a = false ;
26450: LD_ADDR_VAR 0 5
26454: PUSH
26455: LD_INT 0
26457: ST_TO_ADDR
// if ( ( not IsOK ( Am_bu1 ) ) or ( GetSide ( Am_bu1 ) <> Amici ) ) and ( ( not IsOK ( Am_bu2 ) ) or GetSide ( Am_bu2 ) <> Amici ) and ( ( not IsOK ( Am_bu3 ) ) or GetSide ( Am_bu3 ) <> Amici ) and ( ( not IsOK ( Am_bar1 ) ) or GetSide ( Am_bar1 ) <> Amici ) and ( ( not IsOK ( Am_bar2 ) ) or GetSide ( Am_bar2 ) <> Amici ) then
26458: LD_INT 7
26460: PPUSH
26461: CALL_OW 302
26465: NOT
26466: PUSH
26467: LD_INT 7
26469: PPUSH
26470: CALL_OW 255
26474: PUSH
26475: LD_EXP 4
26479: NONEQUAL
26480: OR
26481: PUSH
26482: LD_INT 8
26484: PPUSH
26485: CALL_OW 302
26489: NOT
26490: PUSH
26491: LD_INT 8
26493: PPUSH
26494: CALL_OW 255
26498: PUSH
26499: LD_EXP 4
26503: NONEQUAL
26504: OR
26505: AND
26506: PUSH
26507: LD_INT 19
26509: PPUSH
26510: CALL_OW 302
26514: NOT
26515: PUSH
26516: LD_INT 19
26518: PPUSH
26519: CALL_OW 255
26523: PUSH
26524: LD_EXP 4
26528: NONEQUAL
26529: OR
26530: AND
26531: PUSH
26532: LD_INT 11
26534: PPUSH
26535: CALL_OW 302
26539: NOT
26540: PUSH
26541: LD_INT 11
26543: PPUSH
26544: CALL_OW 255
26548: PUSH
26549: LD_EXP 4
26553: NONEQUAL
26554: OR
26555: AND
26556: PUSH
26557: LD_INT 25
26559: PPUSH
26560: CALL_OW 302
26564: NOT
26565: PUSH
26566: LD_INT 25
26568: PPUSH
26569: CALL_OW 255
26573: PUSH
26574: LD_EXP 4
26578: NONEQUAL
26579: OR
26580: AND
26581: IFFALSE 26591
// a = true ;
26583: LD_ADDR_VAR 0 5
26587: PUSH
26588: LD_INT 1
26590: ST_TO_ADDR
// result = a ;
26591: LD_ADDR_VAR 0 1
26595: PUSH
26596: LD_VAR 0 5
26600: ST_TO_ADDR
// end ;
26601: LD_VAR 0 1
26605: RET
// export function stahnuti_amiku ; var i ; var pom , pom1 , pom2 , pomx ; begin
26606: LD_INT 0
26608: PPUSH
26609: PPUSH
26610: PPUSH
26611: PPUSH
26612: PPUSH
26613: PPUSH
// pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
26614: LD_ADDR_VAR 0 3
26618: PUSH
26619: LD_INT 6
26621: PPUSH
26622: LD_INT 22
26624: PUSH
26625: LD_EXP 4
26629: PUSH
26630: EMPTY
26631: LIST
26632: LIST
26633: PUSH
26634: LD_INT 21
26636: PUSH
26637: LD_INT 1
26639: PUSH
26640: EMPTY
26641: LIST
26642: LIST
26643: PUSH
26644: EMPTY
26645: LIST
26646: LIST
26647: PPUSH
26648: CALL_OW 70
26652: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_type , unit_building ] ] ) ;
26653: LD_ADDR_VAR 0 5
26657: PUSH
26658: LD_INT 6
26660: PPUSH
26661: LD_INT 22
26663: PUSH
26664: LD_EXP 4
26668: PUSH
26669: EMPTY
26670: LIST
26671: LIST
26672: PUSH
26673: LD_INT 21
26675: PUSH
26676: LD_INT 3
26678: PUSH
26679: EMPTY
26680: LIST
26681: LIST
26682: PUSH
26683: EMPTY
26684: LIST
26685: LIST
26686: PPUSH
26687: CALL_OW 70
26691: ST_TO_ADDR
// for i in pom2 do
26692: LD_ADDR_VAR 0 2
26696: PUSH
26697: LD_VAR 0 5
26701: PUSH
26702: FOR_IN
26703: IFFALSE 26743
// if UnitsInside ( i ) <> 0 then
26705: LD_VAR 0 2
26709: PPUSH
26710: CALL_OW 313
26714: PUSH
26715: LD_INT 0
26717: NONEQUAL
26718: IFFALSE 26741
// pom = pom ^ UnitsInside ( i ) ;
26720: LD_ADDR_VAR 0 3
26724: PUSH
26725: LD_VAR 0 3
26729: PUSH
26730: LD_VAR 0 2
26734: PPUSH
26735: CALL_OW 313
26739: ADD
26740: ST_TO_ADDR
26741: GO 26702
26743: POP
26744: POP
// ComExitBuilding ( pom ) ;
26745: LD_VAR 0 3
26749: PPUSH
26750: CALL_OW 122
// AddComMoveXY ( pom , 6 , 2 ) ;
26754: LD_VAR 0 3
26758: PPUSH
26759: LD_INT 6
26761: PPUSH
26762: LD_INT 2
26764: PPUSH
26765: CALL_OW 171
// wait ( 0 0$1 ) ;
26769: LD_INT 35
26771: PPUSH
26772: CALL_OW 67
// while pom > 0 do
26776: LD_VAR 0 3
26780: PUSH
26781: LD_INT 0
26783: GREATER
26784: IFFALSE 27020
// begin pom1 = FilterUnitsInArea ( ODBER_AM2 , [ [ f_side , Amici ] ] ) ;
26786: LD_ADDR_VAR 0 4
26790: PUSH
26791: LD_INT 38
26793: PPUSH
26794: LD_INT 22
26796: PUSH
26797: LD_EXP 4
26801: PUSH
26802: EMPTY
26803: LIST
26804: LIST
26805: PUSH
26806: EMPTY
26807: LIST
26808: PPUSH
26809: CALL_OW 70
26813: ST_TO_ADDR
// for i in pom1 do
26814: LD_ADDR_VAR 0 2
26818: PUSH
26819: LD_VAR 0 4
26823: PUSH
26824: FOR_IN
26825: IFFALSE 26854
// begin RemoveUnit ( i ) ;
26827: LD_VAR 0 2
26831: PPUSH
26832: CALL_OW 64
// pom = pom diff i ;
26836: LD_ADDR_VAR 0 3
26840: PUSH
26841: LD_VAR 0 3
26845: PUSH
26846: LD_VAR 0 2
26850: DIFF
26851: ST_TO_ADDR
// end ;
26852: GO 26824
26854: POP
26855: POP
// wait ( 0 0$1 ) ;
26856: LD_INT 35
26858: PPUSH
26859: CALL_OW 67
// pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
26863: LD_ADDR_VAR 0 3
26867: PUSH
26868: LD_INT 6
26870: PPUSH
26871: LD_INT 22
26873: PUSH
26874: LD_EXP 4
26878: PUSH
26879: EMPTY
26880: LIST
26881: LIST
26882: PUSH
26883: LD_INT 21
26885: PUSH
26886: LD_INT 1
26888: PUSH
26889: EMPTY
26890: LIST
26891: LIST
26892: PUSH
26893: EMPTY
26894: LIST
26895: LIST
26896: PPUSH
26897: CALL_OW 70
26901: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_type , unit_building ] ] ) ;
26902: LD_ADDR_VAR 0 5
26906: PUSH
26907: LD_INT 6
26909: PPUSH
26910: LD_INT 22
26912: PUSH
26913: LD_EXP 4
26917: PUSH
26918: EMPTY
26919: LIST
26920: LIST
26921: PUSH
26922: LD_INT 21
26924: PUSH
26925: LD_INT 3
26927: PUSH
26928: EMPTY
26929: LIST
26930: LIST
26931: PUSH
26932: EMPTY
26933: LIST
26934: LIST
26935: PPUSH
26936: CALL_OW 70
26940: ST_TO_ADDR
// for i in pom2 do
26941: LD_ADDR_VAR 0 2
26945: PUSH
26946: LD_VAR 0 5
26950: PUSH
26951: FOR_IN
26952: IFFALSE 26992
// if UnitsInside ( i ) <> 0 then
26954: LD_VAR 0 2
26958: PPUSH
26959: CALL_OW 313
26963: PUSH
26964: LD_INT 0
26966: NONEQUAL
26967: IFFALSE 26990
// pom = pom ^ UnitsInside ( i ) ;
26969: LD_ADDR_VAR 0 3
26973: PUSH
26974: LD_VAR 0 3
26978: PUSH
26979: LD_VAR 0 2
26983: PPUSH
26984: CALL_OW 313
26988: ADD
26989: ST_TO_ADDR
26990: GO 26951
26992: POP
26993: POP
// ComExitBuilding ( pom ) ;
26994: LD_VAR 0 3
26998: PPUSH
26999: CALL_OW 122
// AddComMoveXY ( pom , 6 , 2 ) ;
27003: LD_VAR 0 3
27007: PPUSH
27008: LD_INT 6
27010: PPUSH
27011: LD_INT 2
27013: PPUSH
27014: CALL_OW 171
// end ;
27018: GO 26776
// pom = FilterUnitsInArea ( Am_bw_e , [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
27020: LD_ADDR_VAR 0 3
27024: PUSH
27025: LD_INT 22
27027: PPUSH
27028: LD_INT 22
27030: PUSH
27031: LD_EXP 4
27035: PUSH
27036: EMPTY
27037: LIST
27038: LIST
27039: PUSH
27040: LD_INT 21
27042: PUSH
27043: LD_INT 1
27045: PUSH
27046: EMPTY
27047: LIST
27048: LIST
27049: PUSH
27050: EMPTY
27051: LIST
27052: LIST
27053: PPUSH
27054: CALL_OW 70
27058: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Am_bw_e , [ [ f_side , Amici ] , [ f_type , unit_building ] ] ) ;
27059: LD_ADDR_VAR 0 5
27063: PUSH
27064: LD_INT 22
27066: PPUSH
27067: LD_INT 22
27069: PUSH
27070: LD_EXP 4
27074: PUSH
27075: EMPTY
27076: LIST
27077: LIST
27078: PUSH
27079: LD_INT 21
27081: PUSH
27082: LD_INT 3
27084: PUSH
27085: EMPTY
27086: LIST
27087: LIST
27088: PUSH
27089: EMPTY
27090: LIST
27091: LIST
27092: PPUSH
27093: CALL_OW 70
27097: ST_TO_ADDR
// for i in pom2 do
27098: LD_ADDR_VAR 0 2
27102: PUSH
27103: LD_VAR 0 5
27107: PUSH
27108: FOR_IN
27109: IFFALSE 27149
// if UnitsInside ( i ) <> 0 then
27111: LD_VAR 0 2
27115: PPUSH
27116: CALL_OW 313
27120: PUSH
27121: LD_INT 0
27123: NONEQUAL
27124: IFFALSE 27147
// pom = pom ^ UnitsInside ( i ) ;
27126: LD_ADDR_VAR 0 3
27130: PUSH
27131: LD_VAR 0 3
27135: PUSH
27136: LD_VAR 0 2
27140: PPUSH
27141: CALL_OW 313
27145: ADD
27146: ST_TO_ADDR
27147: GO 27108
27149: POP
27150: POP
// ComExitBuilding ( pom ) ;
27151: LD_VAR 0 3
27155: PPUSH
27156: CALL_OW 122
// AddComMoveXY ( pom , 138 , 40 ) ;
27160: LD_VAR 0 3
27164: PPUSH
27165: LD_INT 138
27167: PPUSH
27168: LD_INT 40
27170: PPUSH
27171: CALL_OW 171
// wait ( 0 0$1 ) ;
27175: LD_INT 35
27177: PPUSH
27178: CALL_OW 67
// while pom + 0 > 0 do
27182: LD_VAR 0 3
27186: PUSH
27187: LD_INT 0
27189: PLUS
27190: PUSH
27191: LD_INT 0
27193: GREATER
27194: IFFALSE 27430
// begin pom1 = FilterUnitsInArea ( ODBER_AM , [ [ f_side , Amici ] ] ) ;
27196: LD_ADDR_VAR 0 4
27200: PUSH
27201: LD_INT 35
27203: PPUSH
27204: LD_INT 22
27206: PUSH
27207: LD_EXP 4
27211: PUSH
27212: EMPTY
27213: LIST
27214: LIST
27215: PUSH
27216: EMPTY
27217: LIST
27218: PPUSH
27219: CALL_OW 70
27223: ST_TO_ADDR
// for i in pom1 do
27224: LD_ADDR_VAR 0 2
27228: PUSH
27229: LD_VAR 0 4
27233: PUSH
27234: FOR_IN
27235: IFFALSE 27264
// begin RemoveUnit ( i ) ;
27237: LD_VAR 0 2
27241: PPUSH
27242: CALL_OW 64
// pom = pom diff i ;
27246: LD_ADDR_VAR 0 3
27250: PUSH
27251: LD_VAR 0 3
27255: PUSH
27256: LD_VAR 0 2
27260: DIFF
27261: ST_TO_ADDR
// end ;
27262: GO 27234
27264: POP
27265: POP
// wait ( 0 0$1 ) ;
27266: LD_INT 35
27268: PPUSH
27269: CALL_OW 67
// pom = FilterUnitsInArea ( Am_bw_e , [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
27273: LD_ADDR_VAR 0 3
27277: PUSH
27278: LD_INT 22
27280: PPUSH
27281: LD_INT 22
27283: PUSH
27284: LD_EXP 4
27288: PUSH
27289: EMPTY
27290: LIST
27291: LIST
27292: PUSH
27293: LD_INT 21
27295: PUSH
27296: LD_INT 1
27298: PUSH
27299: EMPTY
27300: LIST
27301: LIST
27302: PUSH
27303: EMPTY
27304: LIST
27305: LIST
27306: PPUSH
27307: CALL_OW 70
27311: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Am_bw_e , [ [ f_side , Amici ] , [ f_type , unit_building ] ] ) ;
27312: LD_ADDR_VAR 0 5
27316: PUSH
27317: LD_INT 22
27319: PPUSH
27320: LD_INT 22
27322: PUSH
27323: LD_EXP 4
27327: PUSH
27328: EMPTY
27329: LIST
27330: LIST
27331: PUSH
27332: LD_INT 21
27334: PUSH
27335: LD_INT 3
27337: PUSH
27338: EMPTY
27339: LIST
27340: LIST
27341: PUSH
27342: EMPTY
27343: LIST
27344: LIST
27345: PPUSH
27346: CALL_OW 70
27350: ST_TO_ADDR
// for i in pom2 do
27351: LD_ADDR_VAR 0 2
27355: PUSH
27356: LD_VAR 0 5
27360: PUSH
27361: FOR_IN
27362: IFFALSE 27402
// if UnitsInside ( i ) <> 0 then
27364: LD_VAR 0 2
27368: PPUSH
27369: CALL_OW 313
27373: PUSH
27374: LD_INT 0
27376: NONEQUAL
27377: IFFALSE 27400
// pom = pom ^ UnitsInside ( i ) ;
27379: LD_ADDR_VAR 0 3
27383: PUSH
27384: LD_VAR 0 3
27388: PUSH
27389: LD_VAR 0 2
27393: PPUSH
27394: CALL_OW 313
27398: ADD
27399: ST_TO_ADDR
27400: GO 27361
27402: POP
27403: POP
// ComExitBuilding ( pom ) ;
27404: LD_VAR 0 3
27408: PPUSH
27409: CALL_OW 122
// AddComMoveXY ( pom , 138 , 40 ) ;
27413: LD_VAR 0 3
27417: PPUSH
27418: LD_INT 138
27420: PPUSH
27421: LD_INT 40
27423: PPUSH
27424: CALL_OW 171
// end ;
27428: GO 27182
// end ; end_of_file
27430: LD_VAR 0 1
27434: RET
// var arabsky_utok_zacal ; export posilani_arabskych_hlidek ; every 0 0$0.1 do
27435: GO 27437
27437: DISABLE
// begin posilani_arabskych_hlidek = false ;
27438: LD_ADDR_EXP 74
27442: PUSH
27443: LD_INT 0
27445: ST_TO_ADDR
// end ;
27446: END
// export function utok_arabu ; var i , pom ; begin
27447: LD_INT 0
27449: PPUSH
27450: PPUSH
27451: PPUSH
// pom = FilterAllUnits ( [ [ f_side , You ] ] ) ;
27452: LD_ADDR_VAR 0 3
27456: PUSH
27457: LD_INT 22
27459: PUSH
27460: LD_EXP 1
27464: PUSH
27465: EMPTY
27466: LIST
27467: LIST
27468: PUSH
27469: EMPTY
27470: LIST
27471: PPUSH
27472: CALL_OW 69
27476: ST_TO_ADDR
// ArDontAttackPlayer ( true ) ;
27477: LD_INT 1
27479: PPUSH
27480: CALL 28484 0 1
// InGameOn ;
27484: CALL_OW 8
// ComStop ( pom ) ;
27488: LD_VAR 0 3
27492: PPUSH
27493: CALL_OW 141
// for i in FilterAllUnits ( [ [ f_side , 3 ] , [ f_not , [ f_type , unit_building ] ] ] ) do
27497: LD_ADDR_VAR 0 2
27501: PUSH
27502: LD_INT 22
27504: PUSH
27505: LD_INT 3
27507: PUSH
27508: EMPTY
27509: LIST
27510: LIST
27511: PUSH
27512: LD_INT 3
27514: PUSH
27515: LD_INT 21
27517: PUSH
27518: LD_INT 3
27520: PUSH
27521: EMPTY
27522: LIST
27523: LIST
27524: PUSH
27525: EMPTY
27526: LIST
27527: LIST
27528: PUSH
27529: EMPTY
27530: LIST
27531: LIST
27532: PPUSH
27533: CALL_OW 69
27537: PUSH
27538: FOR_IN
27539: IFFALSE 27558
// ComMoveXY ( i , 59 , 12 ) ;
27541: LD_VAR 0 2
27545: PPUSH
27546: LD_INT 59
27548: PPUSH
27549: LD_INT 12
27551: PPUSH
27552: CALL_OW 111
27556: GO 27538
27558: POP
27559: POP
// EnableVideoExclamations ;
27560: CALL_OW 498
// CenterNowOnXY ( 142 , 80 ) ;
27564: LD_INT 142
27566: PPUSH
27567: LD_INT 80
27569: PPUSH
27570: CALL_OW 86
// arabsky_utok_zacal = true ;
27574: LD_ADDR_LOC 27
27578: PUSH
27579: LD_INT 1
27581: ST_TO_ADDR
// posli_rusy_pryc ;
27582: CALL 8116 0 0
// schovej_kurina ;
27586: CALL 9215 0 0
// PlaceUnitArea ( ARABI_KAMIKADZE_LIST [ 1 ] , Opoce1 , false ) ;
27590: LD_EXP 60
27594: PUSH
27595: LD_INT 1
27597: ARRAY
27598: PPUSH
27599: LD_INT 10
27601: PPUSH
27602: LD_INT 0
27604: PPUSH
27605: CALL_OW 49
// PlaceUnitArea ( ARABI_KAMIKADZE_LIST [ 2 ] , Opoce2 , false ) ;
27609: LD_EXP 60
27613: PUSH
27614: LD_INT 2
27616: ARRAY
27617: PPUSH
27618: LD_INT 11
27620: PPUSH
27621: LD_INT 0
27623: PPUSH
27624: CALL_OW 49
// PlaceUnitArea ( ARABI_KAMIKADZE_LIST [ 3 ] , Opoce2 , false ) ;
27628: LD_EXP 60
27632: PUSH
27633: LD_INT 3
27635: ARRAY
27636: PPUSH
27637: LD_INT 11
27639: PPUSH
27640: LD_INT 0
27642: PPUSH
27643: CALL_OW 49
// ComMoveXY ( ARABI_KAMIKADZE_LIST [ 1 ] , 134 , 62 ) ;
27647: LD_EXP 60
27651: PUSH
27652: LD_INT 1
27654: ARRAY
27655: PPUSH
27656: LD_INT 134
27658: PPUSH
27659: LD_INT 62
27661: PPUSH
27662: CALL_OW 111
// AddComMoveXY ( ARABI_KAMIKADZE_LIST [ 1 ] , 133 , 69 ) ;
27666: LD_EXP 60
27670: PUSH
27671: LD_INT 1
27673: ARRAY
27674: PPUSH
27675: LD_INT 133
27677: PPUSH
27678: LD_INT 69
27680: PPUSH
27681: CALL_OW 171
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 1 ] , RU1_bu1 ) ;
27685: LD_EXP 60
27689: PUSH
27690: LD_INT 1
27692: ARRAY
27693: PPUSH
27694: LD_INT 3
27696: PPUSH
27697: CALL_OW 175
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 1 ] , RU1_fac ) ;
27701: LD_EXP 60
27705: PUSH
27706: LD_INT 1
27708: ARRAY
27709: PPUSH
27710: LD_INT 5
27712: PPUSH
27713: CALL_OW 175
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 1 ] , RU1_dep ) ;
27717: LD_EXP 60
27721: PUSH
27722: LD_INT 1
27724: ARRAY
27725: PPUSH
27726: LD_INT 1
27728: PPUSH
27729: CALL_OW 175
// ComMoveXY ( ARABI_KAMIKADZE_LIST [ 2 ] , 142 , 94 ) ;
27733: LD_EXP 60
27737: PUSH
27738: LD_INT 2
27740: ARRAY
27741: PPUSH
27742: LD_INT 142
27744: PPUSH
27745: LD_INT 94
27747: PPUSH
27748: CALL_OW 111
// AddComMoveXY ( ARABI_KAMIKADZE_LIST [ 2 ] , 140 , 90 ) ;
27752: LD_EXP 60
27756: PUSH
27757: LD_INT 2
27759: ARRAY
27760: PPUSH
27761: LD_INT 140
27763: PPUSH
27764: LD_INT 90
27766: PPUSH
27767: CALL_OW 171
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 2 ] , RU1_el1 ) ;
27771: LD_EXP 60
27775: PUSH
27776: LD_INT 2
27778: ARRAY
27779: PPUSH
27780: LD_INT 14
27782: PPUSH
27783: CALL_OW 175
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 2 ] , RU1_fac ) ;
27787: LD_EXP 60
27791: PUSH
27792: LD_INT 2
27794: ARRAY
27795: PPUSH
27796: LD_INT 5
27798: PPUSH
27799: CALL_OW 175
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 2 ] , RU1_dep ) ;
27803: LD_EXP 60
27807: PUSH
27808: LD_INT 2
27810: ARRAY
27811: PPUSH
27812: LD_INT 1
27814: PPUSH
27815: CALL_OW 175
// ComMoveXY ( ARABI_KAMIKADZE_LIST [ 3 ] , 143 , 94 ) ;
27819: LD_EXP 60
27823: PUSH
27824: LD_INT 3
27826: ARRAY
27827: PPUSH
27828: LD_INT 143
27830: PPUSH
27831: LD_INT 94
27833: PPUSH
27834: CALL_OW 111
// AddComMoveXY ( ARABI_KAMIKADZE_LIST [ 3 ] , 141 , 90 ) ;
27838: LD_EXP 60
27842: PUSH
27843: LD_INT 3
27845: ARRAY
27846: PPUSH
27847: LD_INT 141
27849: PPUSH
27850: LD_INT 90
27852: PPUSH
27853: CALL_OW 171
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 3 ] , RU1_bar1 ) ;
27857: LD_EXP 60
27861: PUSH
27862: LD_INT 3
27864: ARRAY
27865: PPUSH
27866: LD_INT 2
27868: PPUSH
27869: CALL_OW 175
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 3 ] , RU1_fac ) ;
27873: LD_EXP 60
27877: PUSH
27878: LD_INT 3
27880: ARRAY
27881: PPUSH
27882: LD_INT 5
27884: PPUSH
27885: CALL_OW 175
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 3 ] , RU1_dep ) ;
27889: LD_EXP 60
27893: PUSH
27894: LD_INT 3
27896: ARRAY
27897: PPUSH
27898: LD_INT 1
27900: PPUSH
27901: CALL_OW 175
// music_nat = nation_arabian ;
27905: LD_ADDR_OWVAR 71
27909: PUSH
27910: LD_INT 2
27912: ST_TO_ADDR
// CenterOnXY ( 142 , 80 ) ;
27913: LD_INT 142
27915: PPUSH
27916: LD_INT 80
27918: PPUSH
27919: CALL_OW 84
// for i in ARABI_SELF_AUTA do
27923: LD_ADDR_VAR 0 2
27927: PUSH
27928: LD_EXP 63
27932: PUSH
27933: FOR_IN
27934: IFFALSE 27953
// PlaceUnitArea ( i , Arabi2 , false ) ;
27936: LD_VAR 0 2
27940: PPUSH
27941: LD_INT 13
27943: PPUSH
27944: LD_INT 0
27946: PPUSH
27947: CALL_OW 49
27951: GO 27933
27953: POP
27954: POP
// ComAttackUnit ( ARABI_SELF_AUTA [ 1 ] , RU1_bar2 ) ;
27955: LD_EXP 63
27959: PUSH
27960: LD_INT 1
27962: ARRAY
27963: PPUSH
27964: LD_INT 17
27966: PPUSH
27967: CALL_OW 115
// ComWait ( ARABI_SELF_AUTA [ 2 ] , 0 0$1 ) ;
27971: LD_EXP 63
27975: PUSH
27976: LD_INT 2
27978: ARRAY
27979: PPUSH
27980: LD_INT 35
27982: PPUSH
27983: CALL_OW 142
// AddComAttackUnit ( ARABI_SELF_AUTA [ 2 ] , RU1_dep ) ;
27987: LD_EXP 63
27991: PUSH
27992: LD_INT 2
27994: ARRAY
27995: PPUSH
27996: LD_INT 1
27998: PPUSH
27999: CALL_OW 175
// CenterOnXY ( 142 , 80 ) ;
28003: LD_INT 142
28005: PPUSH
28006: LD_INT 80
28008: PPUSH
28009: CALL_OW 84
// for i in ARABI_PRVNI_VLNA do
28013: LD_ADDR_VAR 0 2
28017: PUSH
28018: LD_EXP 61
28022: PUSH
28023: FOR_IN
28024: IFFALSE 28043
// PlaceUnitArea ( i , Arabi1 , false ) ;
28026: LD_VAR 0 2
28030: PPUSH
28031: LD_INT 12
28033: PPUSH
28034: LD_INT 0
28036: PPUSH
28037: CALL_OW 49
28041: GO 28023
28043: POP
28044: POP
// ComMoveXY ( ARABI_PRVNI_VLNA , 139 , 78 ) ;
28045: LD_EXP 61
28049: PPUSH
28050: LD_INT 139
28052: PPUSH
28053: LD_INT 78
28055: PPUSH
28056: CALL_OW 111
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_bar1 ) ;
28060: LD_EXP 61
28064: PPUSH
28065: LD_INT 2
28067: PPUSH
28068: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_bu2 ) ;
28072: LD_EXP 61
28076: PPUSH
28077: LD_INT 4
28079: PPUSH
28080: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_bu1 ) ;
28084: LD_EXP 61
28088: PPUSH
28089: LD_INT 3
28091: PPUSH
28092: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_lab2 ) ;
28096: LD_EXP 61
28100: PPUSH
28101: LD_INT 16
28103: PPUSH
28104: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_dep ) ;
28108: LD_EXP 61
28112: PPUSH
28113: LD_INT 1
28115: PPUSH
28116: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_lab1 ) ;
28120: LD_EXP 61
28124: PPUSH
28125: LD_INT 6
28127: PPUSH
28128: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_fac ) ;
28132: LD_EXP 61
28136: PPUSH
28137: LD_INT 5
28139: PPUSH
28140: CALL_OW 175
// AddComAgressiveMove ( ARABI_PRVNI_VLNA , 143 , 79 ) ;
28144: LD_EXP 61
28148: PPUSH
28149: LD_INT 143
28151: PPUSH
28152: LD_INT 79
28154: PPUSH
28155: CALL_OW 174
// CenterOnXY ( 142 , 80 ) ;
28159: LD_INT 142
28161: PPUSH
28162: LD_INT 80
28164: PPUSH
28165: CALL_OW 84
// DisableVideoExclamations ;
28169: CALL_OW 499
// InGameOff ;
28173: CALL_OW 9
// interface_hidden := true ;
28177: LD_ADDR_OWVAR 54
28181: PUSH
28182: LD_INT 1
28184: ST_TO_ADDR
// kecy_behem_utoku_arabu ;
28185: CALL 13930 0 0
// InGameOn ;
28189: CALL_OW 8
// EnableVideoExclamations ;
28193: CALL_OW 498
// CenterOnXY ( 142 , 80 ) ;
28197: LD_INT 142
28199: PPUSH
28200: LD_INT 80
28202: PPUSH
28203: CALL_OW 84
// wait ( 0 0$4 ) ;
28207: LD_INT 140
28209: PPUSH
28210: CALL_OW 67
// posli_kurina_na_smrt ;
28214: CALL 9235 0 0
// for i in ARABI_FLAME_LIST do
28218: LD_ADDR_VAR 0 2
28222: PUSH
28223: LD_EXP 62
28227: PUSH
28228: FOR_IN
28229: IFFALSE 28248
// PlaceUnitArea ( i , Arabi2 , false ) ;
28231: LD_VAR 0 2
28235: PPUSH
28236: LD_INT 13
28238: PPUSH
28239: LD_INT 0
28241: PPUSH
28242: CALL_OW 49
28246: GO 28228
28248: POP
28249: POP
// ComMoveXY ( ARABI_FLAME_LIST , 139 , 78 ) ;
28250: LD_EXP 62
28254: PPUSH
28255: LD_INT 139
28257: PPUSH
28258: LD_INT 78
28260: PPUSH
28261: CALL_OW 111
// AddComAttackUnit ( ARABI_FLAME_LIST , RU1_bar1 ) ;
28265: LD_EXP 62
28269: PPUSH
28270: LD_INT 2
28272: PPUSH
28273: CALL_OW 175
// CenterOnXY ( 142 , 80 ) ;
28277: LD_INT 142
28279: PPUSH
28280: LD_INT 80
28282: PPUSH
28283: CALL_OW 84
// for i in ARABI_VOJACI do
28287: LD_ADDR_VAR 0 2
28291: PUSH
28292: LD_EXP 64
28296: PUSH
28297: FOR_IN
28298: IFFALSE 28317
// PlaceUnitArea ( i , Arabi1 , false ) ;
28300: LD_VAR 0 2
28304: PPUSH
28305: LD_INT 12
28307: PPUSH
28308: LD_INT 0
28310: PPUSH
28311: CALL_OW 49
28315: GO 28297
28317: POP
28318: POP
// ComMoveXY ( ARABI_VOJACI , 153 , 84 ) ;
28319: LD_EXP 64
28323: PPUSH
28324: LD_INT 153
28326: PPUSH
28327: LD_INT 84
28329: PPUSH
28330: CALL_OW 111
// AddComAgressiveMove ( ARABI_VOJACI , 150 , 83 ) ;
28334: LD_EXP 64
28338: PPUSH
28339: LD_INT 150
28341: PPUSH
28342: LD_INT 83
28344: PPUSH
28345: CALL_OW 174
// AddComAgressiveMove ( ARABI_VOJACI , 141 , 78 ) ;
28349: LD_EXP 64
28353: PPUSH
28354: LD_INT 141
28356: PPUSH
28357: LD_INT 78
28359: PPUSH
28360: CALL_OW 174
// AddComAgressiveMove ( ARABI_VOJACI , 141 , 86 ) ;
28364: LD_EXP 64
28368: PPUSH
28369: LD_INT 141
28371: PPUSH
28372: LD_INT 86
28374: PPUSH
28375: CALL_OW 174
// CenterOnXY ( 142 , 80 ) ;
28379: LD_INT 142
28381: PPUSH
28382: LD_INT 80
28384: PPUSH
28385: CALL_OW 84
// wait ( 0 0$5 ) ;
28389: LD_INT 175
28391: PPUSH
28392: CALL_OW 67
// for i in ARABI_doraz do
28396: LD_ADDR_VAR 0 2
28400: PUSH
28401: LD_EXP 65
28405: PUSH
28406: FOR_IN
28407: IFFALSE 28426
// PlaceUnitArea ( i , Arabi1 , false ) ;
28409: LD_VAR 0 2
28413: PPUSH
28414: LD_INT 12
28416: PPUSH
28417: LD_INT 0
28419: PPUSH
28420: CALL_OW 49
28424: GO 28406
28426: POP
28427: POP
// ComMoveXY ( ARABI_doraz , 153 , 85 ) ;
28428: LD_EXP 65
28432: PPUSH
28433: LD_INT 153
28435: PPUSH
28436: LD_INT 85
28438: PPUSH
28439: CALL_OW 111
// AddComAttackUnit ( ARABI_doraz , RU1_dep ) ;
28443: LD_EXP 65
28447: PPUSH
28448: LD_INT 1
28450: PPUSH
28451: CALL_OW 175
// AddComAttackUnit ( ARABI_doraz , RU1_lab1 ) ;
28455: LD_EXP 65
28459: PPUSH
28460: LD_INT 6
28462: PPUSH
28463: CALL_OW 175
// AddComAttackUnit ( ARABI_doraz , RU1_lab2 ) ;
28467: LD_EXP 65
28471: PPUSH
28472: LD_INT 16
28474: PPUSH
28475: CALL_OW 175
// end ;
28479: LD_VAR 0 1
28483: RET
// export function ArDontAttackPlayer ( bol ) ; var i ; begin
28484: LD_INT 0
28486: PPUSH
28487: PPUSH
// for i in FilterAllUnits ( [ f_side , You ] ) do
28488: LD_ADDR_VAR 0 3
28492: PUSH
28493: LD_INT 22
28495: PUSH
28496: LD_EXP 1
28500: PUSH
28501: EMPTY
28502: LIST
28503: LIST
28504: PPUSH
28505: CALL_OW 69
28509: PUSH
28510: FOR_IN
28511: IFFALSE 28551
// if bol then
28513: LD_VAR 0 1
28517: IFFALSE 28535
// DoNotAttack ( Arabi , i ) else
28519: LD_EXP 5
28523: PPUSH
28524: LD_VAR 0 3
28528: PPUSH
28529: CALL_OW 471
28533: GO 28549
// NormalAttack ( Arabi , i ) ;
28535: LD_EXP 5
28539: PPUSH
28540: LD_VAR 0 3
28544: PPUSH
28545: CALL_OW 472
28549: GO 28510
28551: POP
28552: POP
// end ;
28553: LD_VAR 0 2
28557: RET
// every 0 0$5 trigger arabsky_utok_zacal do var pom , pom1 , i ; var utek ;
28558: LD_LOC 27
28562: IFFALSE 28746
28564: GO 28566
28566: DISABLE
28567: LD_INT 0
28569: PPUSH
28570: PPUSH
28571: PPUSH
28572: PPUSH
// begin utek = [ ] ;
28573: LD_ADDR_VAR 0 4
28577: PUSH
28578: EMPTY
28579: ST_TO_ADDR
// pom = FilterUnitsInArea ( RU1_base , [ [ f_side , You2 ] , [ f_ok ] ] ) ;
28580: LD_ADDR_VAR 0 1
28584: PUSH
28585: LD_INT 14
28587: PPUSH
28588: LD_INT 22
28590: PUSH
28591: LD_EXP 2
28595: PUSH
28596: EMPTY
28597: LIST
28598: LIST
28599: PUSH
28600: LD_INT 50
28602: PUSH
28603: EMPTY
28604: LIST
28605: PUSH
28606: EMPTY
28607: LIST
28608: LIST
28609: PPUSH
28610: CALL_OW 70
28614: ST_TO_ADDR
// if pom < 2 then
28615: LD_VAR 0 1
28619: PUSH
28620: LD_INT 2
28622: LESS
28623: IFFALSE 28720
// begin pom1 = FilterAllUnits ( [ [ f_side , Arabi ] , [ f_ok ] ] ) ;
28625: LD_ADDR_VAR 0 2
28629: PUSH
28630: LD_INT 22
28632: PUSH
28633: LD_EXP 5
28637: PUSH
28638: EMPTY
28639: LIST
28640: LIST
28641: PUSH
28642: LD_INT 50
28644: PUSH
28645: EMPTY
28646: LIST
28647: PUSH
28648: EMPTY
28649: LIST
28650: LIST
28651: PPUSH
28652: CALL_OW 69
28656: ST_TO_ADDR
// if pom1 > 0 then
28657: LD_VAR 0 2
28661: PUSH
28662: LD_INT 0
28664: GREATER
28665: IFFALSE 28720
// for i in pom1 do
28667: LD_ADDR_VAR 0 3
28671: PUSH
28672: LD_VAR 0 2
28676: PUSH
28677: FOR_IN
28678: IFFALSE 28718
// if utek < 3 then
28680: LD_VAR 0 4
28684: PUSH
28685: LD_INT 3
28687: LESS
28688: IFFALSE 28708
// utek = utek ^ i else
28690: LD_ADDR_VAR 0 4
28694: PUSH
28695: LD_VAR 0 4
28699: PUSH
28700: LD_VAR 0 3
28704: ADD
28705: ST_TO_ADDR
28706: GO 28716
// arabsky_utok_zacal = false ;
28708: LD_ADDR_LOC 27
28712: PUSH
28713: LD_INT 0
28715: ST_TO_ADDR
28716: GO 28677
28718: POP
28719: POP
// end ; if utek > 0 then
28720: LD_VAR 0 4
28724: PUSH
28725: LD_INT 0
28727: GREATER
28728: IFFALSE 28745
// ComMoveXY ( utek , 166 , 95 ) ;
28730: LD_VAR 0 4
28734: PPUSH
28735: LD_INT 166
28737: PPUSH
28738: LD_INT 95
28740: PPUSH
28741: CALL_OW 111
// enable ;
28745: ENABLE
// end ;
28746: PPOPN 4
28748: END
// every 0 0$3 trigger FilterUnitsInArea ( RU1_base , [ [ f_side , You2 ] , [ f_ok ] ] ) < 2 do var pom , i ;
28749: LD_INT 14
28751: PPUSH
28752: LD_INT 22
28754: PUSH
28755: LD_EXP 2
28759: PUSH
28760: EMPTY
28761: LIST
28762: LIST
28763: PUSH
28764: LD_INT 50
28766: PUSH
28767: EMPTY
28768: LIST
28769: PUSH
28770: EMPTY
28771: LIST
28772: LIST
28773: PPUSH
28774: CALL_OW 70
28778: PUSH
28779: LD_INT 2
28781: LESS
28782: IFFALSE 28846
28784: GO 28786
28786: DISABLE
28787: LD_INT 0
28789: PPUSH
28790: PPUSH
// begin pom = FilterUnitsInArea ( Arabi2 , [ [ f_side , Arabi ] ] ) ;
28791: LD_ADDR_VAR 0 1
28795: PUSH
28796: LD_INT 13
28798: PPUSH
28799: LD_INT 22
28801: PUSH
28802: LD_EXP 5
28806: PUSH
28807: EMPTY
28808: LIST
28809: LIST
28810: PUSH
28811: EMPTY
28812: LIST
28813: PPUSH
28814: CALL_OW 70
28818: ST_TO_ADDR
// for i in pom do
28819: LD_ADDR_VAR 0 2
28823: PUSH
28824: LD_VAR 0 1
28828: PUSH
28829: FOR_IN
28830: IFFALSE 28843
// RemoveUnit ( i ) ;
28832: LD_VAR 0 2
28836: PPUSH
28837: CALL_OW 64
28841: GO 28829
28843: POP
28844: POP
// enable ;
28845: ENABLE
// end ;
28846: PPOPN 2
28848: END
// every 0 0$4 trigger arabsky_utok_zacal do
28849: LD_LOC 27
28853: IFFALSE 28949
28855: GO 28857
28857: DISABLE
// begin if GetLives ( RU1_el1 ) < 1000 and GetLives ( RU1_el1 ) < 150 then
28858: LD_INT 14
28860: PPUSH
28861: CALL_OW 256
28865: PUSH
28866: LD_INT 1000
28868: LESS
28869: PUSH
28870: LD_INT 14
28872: PPUSH
28873: CALL_OW 256
28877: PUSH
28878: LD_INT 150
28880: LESS
28881: AND
28882: IFFALSE 28894
// SetLives ( RU1_el1 , 150 ) ;
28884: LD_INT 14
28886: PPUSH
28887: LD_INT 150
28889: PPUSH
28890: CALL_OW 234
// if GetLives ( RU1_el2 ) < 1000 and GetLives ( RU1_el2 ) < 150 then
28894: LD_INT 15
28896: PPUSH
28897: CALL_OW 256
28901: PUSH
28902: LD_INT 1000
28904: LESS
28905: PUSH
28906: LD_INT 15
28908: PPUSH
28909: CALL_OW 256
28913: PUSH
28914: LD_INT 150
28916: LESS
28917: AND
28918: IFFALSE 28930
// SetLives ( RU1_el2 , 150 ) ;
28920: LD_INT 15
28922: PPUSH
28923: LD_INT 150
28925: PPUSH
28926: CALL_OW 234
// if IsOK ( RU1_el1 ) or IsOK ( RU1_el2 ) then
28930: LD_INT 14
28932: PPUSH
28933: CALL_OW 302
28937: PUSH
28938: LD_INT 15
28940: PPUSH
28941: CALL_OW 302
28945: OR
28946: IFFALSE 28949
// enable ;
28948: ENABLE
// end ;
28949: END
// every 0 0$5 trigger FilterUnitsInArea ( RU1_base , [ [ f_side , You2 ] , [ f_ok ] ] ) <= 3 do var i ;
28950: LD_INT 14
28952: PPUSH
28953: LD_INT 22
28955: PUSH
28956: LD_EXP 2
28960: PUSH
28961: EMPTY
28962: LIST
28963: LIST
28964: PUSH
28965: LD_INT 50
28967: PUSH
28968: EMPTY
28969: LIST
28970: PUSH
28971: EMPTY
28972: LIST
28973: LIST
28974: PPUSH
28975: CALL_OW 70
28979: PUSH
28980: LD_INT 3
28982: LESSEQUAL
28983: IFFALSE 29030
28985: GO 28987
28987: DISABLE
28988: LD_INT 0
28990: PPUSH
// begin ArDontAttackPlayer ( false ) ;
28991: LD_INT 0
28993: PPUSH
28994: CALL 28484 0 1
// arabi_kirov_posily_posli ;
28998: CALL 29117 0 0
// DisableVideoExclamations ;
29002: CALL_OW 499
// music_nat = 0 ;
29006: LD_ADDR_OWVAR 71
29010: PUSH
29011: LD_INT 0
29013: ST_TO_ADDR
// chmo_6 ;
29014: CALL 16739 0 0
// InGameOff ;
29018: CALL_OW 9
// stav_omikron = 8 ;
29022: LD_ADDR_EXP 39
29026: PUSH
29027: LD_INT 8
29029: ST_TO_ADDR
// end ;
29030: PPOPN 1
29032: END
// every 0 0$3 trigger FilterUnitsInArea ( RU1_base , [ [ f_side , You2 ] ] ) > 2 do var pom ;
29033: LD_INT 14
29035: PPUSH
29036: LD_INT 22
29038: PUSH
29039: LD_EXP 2
29043: PUSH
29044: EMPTY
29045: LIST
29046: LIST
29047: PUSH
29048: EMPTY
29049: LIST
29050: PPUSH
29051: CALL_OW 70
29055: PUSH
29056: LD_INT 2
29058: GREATER
29059: IFFALSE 29114
29061: GO 29063
29063: DISABLE
29064: LD_INT 0
29066: PPUSH
// begin pom = FilterUnitsInArea ( RU1_base , [ [ f_side , You2 ] ] ) ;
29067: LD_ADDR_VAR 0 1
29071: PUSH
29072: LD_INT 14
29074: PPUSH
29075: LD_INT 22
29077: PUSH
29078: LD_EXP 2
29082: PUSH
29083: EMPTY
29084: LIST
29085: LIST
29086: PUSH
29087: EMPTY
29088: LIST
29089: PPUSH
29090: CALL_OW 70
29094: ST_TO_ADDR
// ComAttackUnit ( ARABI_doraz , pom [ 1 ] ) ;
29095: LD_EXP 65
29099: PPUSH
29100: LD_VAR 0 1
29104: PUSH
29105: LD_INT 1
29107: ARRAY
29108: PPUSH
29109: CALL_OW 115
// enable ;
29113: ENABLE
// end ;
29114: PPOPN 1
29116: END
// function arabi_kirov_posily_posli ; var i ; begin
29117: LD_INT 0
29119: PPUSH
29120: PPUSH
// for i in ARABI_KIROV_POSILY do
29121: LD_ADDR_VAR 0 2
29125: PUSH
29126: LD_EXP 66
29130: PUSH
29131: FOR_IN
29132: IFFALSE 29151
// PlaceUnitArea ( i , Arabi3 , false ) ;
29134: LD_VAR 0 2
29138: PPUSH
29139: LD_INT 33
29141: PPUSH
29142: LD_INT 0
29144: PPUSH
29145: CALL_OW 49
29149: GO 29131
29151: POP
29152: POP
// ComAgressiveMove ( ARABI_KIROV_POSILY , 142 , 84 ) ;
29153: LD_EXP 66
29157: PPUSH
29158: LD_INT 142
29160: PPUSH
29161: LD_INT 84
29163: PPUSH
29164: CALL_OW 114
// end ;
29168: LD_VAR 0 1
29172: RET
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , 2 ] , [ f_not , [ f_lives , 1000 ] ] ] ) > 4 do var i ;
29173: LD_INT 22
29175: PUSH
29176: LD_INT 2
29178: PUSH
29179: EMPTY
29180: LIST
29181: LIST
29182: PUSH
29183: LD_INT 3
29185: PUSH
29186: LD_INT 24
29188: PUSH
29189: LD_INT 1000
29191: PUSH
29192: EMPTY
29193: LIST
29194: LIST
29195: PUSH
29196: EMPTY
29197: LIST
29198: LIST
29199: PUSH
29200: EMPTY
29201: LIST
29202: LIST
29203: PPUSH
29204: CALL_OW 69
29208: PUSH
29209: LD_INT 4
29211: GREATER
29212: IFFALSE 29296
29214: GO 29216
29216: DISABLE
29217: LD_INT 0
29219: PPUSH
// begin enable ;
29220: ENABLE
// for i in FilterAllUnits ( [ [ f_side , 2 ] , [ f_not , [ f_lives , 1000 ] ] ] ) do
29221: LD_ADDR_VAR 0 1
29225: PUSH
29226: LD_INT 22
29228: PUSH
29229: LD_INT 2
29231: PUSH
29232: EMPTY
29233: LIST
29234: LIST
29235: PUSH
29236: LD_INT 3
29238: PUSH
29239: LD_INT 24
29241: PUSH
29242: LD_INT 1000
29244: PUSH
29245: EMPTY
29246: LIST
29247: LIST
29248: PUSH
29249: EMPTY
29250: LIST
29251: LIST
29252: PUSH
29253: EMPTY
29254: LIST
29255: LIST
29256: PPUSH
29257: CALL_OW 69
29261: PUSH
29262: FOR_IN
29263: IFFALSE 29294
// if GetLives ( i ) > 500 then
29265: LD_VAR 0 1
29269: PPUSH
29270: CALL_OW 256
29274: PUSH
29275: LD_INT 500
29277: GREATER
29278: IFFALSE 29292
// SetLives ( i , 1000 ) ;
29280: LD_VAR 0 1
29284: PPUSH
29285: LD_INT 1000
29287: PPUSH
29288: CALL_OW 234
29292: GO 29262
29294: POP
29295: POP
// end ; end_of_file
29296: PPOPN 1
29298: END
// export function SA_DontSaveScholtze ; begin
29299: LD_INT 0
29301: PPUSH
// SetAchievement ( ACH_EPR ) ;
29302: LD_STRING ACH_EPR
29304: PPUSH
29305: CALL_OW 543
// end ;
29309: LD_VAR 0 1
29313: RET
// export function SA_OneDepotWin ; begin
29314: LD_INT 0
29316: PPUSH
// SetAchievement ( ACH_PON ) ;
29317: LD_STRING ACH_PON
29319: PPUSH
29320: CALL_OW 543
// end ; end_of_file
29324: LD_VAR 0 1
29328: RET
// export function SA_EndMission ( campaignNumber , missionNumber , medal1 , medal2 , medal3 ) ; var achiv ; begin
29329: LD_INT 0
29331: PPUSH
29332: PPUSH
// if not missionNumber then
29333: LD_VAR 0 2
29337: NOT
29338: IFFALSE 29342
// exit ;
29340: GO 29472
// achiv := false ;
29342: LD_ADDR_VAR 0 7
29346: PUSH
29347: LD_INT 0
29349: ST_TO_ADDR
// case campaignNumber of 1 :
29350: LD_VAR 0 1
29354: PUSH
29355: LD_INT 1
29357: DOUBLE
29358: EQUAL
29359: IFTRUE 29363
29361: GO 29374
29363: POP
// achiv := ACH_GOTA ; 2 :
29364: LD_ADDR_VAR 0 7
29368: PUSH
29369: LD_STRING ACH_GOTA
29371: ST_TO_ADDR
29372: GO 29424
29374: LD_INT 2
29376: DOUBLE
29377: EQUAL
29378: IFTRUE 29382
29380: GO 29385
29382: POP
// ; 3 :
29383: GO 29424
29385: LD_INT 3
29387: DOUBLE
29388: EQUAL
29389: IFTRUE 29393
29391: GO 29404
29393: POP
// achiv := ACH_MOTSU ; 4 :
29394: LD_ADDR_VAR 0 7
29398: PUSH
29399: LD_STRING ACH_MOTSU
29401: ST_TO_ADDR
29402: GO 29424
29404: LD_INT 4
29406: DOUBLE
29407: EQUAL
29408: IFTRUE 29412
29410: GO 29423
29412: POP
// achiv := ACH_LOP ; end ;
29413: LD_ADDR_VAR 0 7
29417: PUSH
29418: LD_STRING ACH_LOP
29420: ST_TO_ADDR
29421: GO 29424
29423: POP
// if Difficulty = 3 and achiv and medal1 and medal2 and medal3 then
29424: LD_OWVAR 67
29428: PUSH
29429: LD_INT 3
29431: EQUAL
29432: PUSH
29433: LD_VAR 0 7
29437: AND
29438: PUSH
29439: LD_VAR 0 3
29443: AND
29444: PUSH
29445: LD_VAR 0 4
29449: AND
29450: PUSH
29451: LD_VAR 0 5
29455: AND
29456: IFFALSE 29472
// SetAchievementEX ( achiv , missionNumber ) ;
29458: LD_VAR 0 7
29462: PPUSH
29463: LD_VAR 0 2
29467: PPUSH
29468: CALL_OW 564
// end ;
29472: LD_VAR 0 6
29476: RET
// export function SA_BehemothConstructed ; begin
29477: LD_INT 0
29479: PPUSH
// SetAchievement ( ACH_SMC ) ;
29480: LD_STRING ACH_SMC
29482: PPUSH
29483: CALL_OW 543
// end ;
29487: LD_VAR 0 1
29491: RET
// on CustomCommand ( p1 , p2 , p3 , p4 , p5 , p6 ) do begin case p2 of 1 :
29492: LD_VAR 0 2
29496: PUSH
29497: LD_INT 1
29499: DOUBLE
29500: EQUAL
29501: IFTRUE 29505
29503: GO 29512
29505: POP
// HackUnlimitedResources ; 2 :
29506: CALL 29696 0 0
29510: GO 29693
29512: LD_INT 2
29514: DOUBLE
29515: EQUAL
29516: IFTRUE 29520
29518: GO 29527
29520: POP
// HackSetLevel10 ; 3 :
29521: CALL 29829 0 0
29525: GO 29693
29527: LD_INT 3
29529: DOUBLE
29530: EQUAL
29531: IFTRUE 29535
29533: GO 29542
29535: POP
// HackSetLevel10YourUnits ; 4 :
29536: CALL 29914 0 0
29540: GO 29693
29542: LD_INT 4
29544: DOUBLE
29545: EQUAL
29546: IFTRUE 29550
29548: GO 29572
29550: POP
// HackSpawnHuman ( p3 , p4 , p5 ) ; 5 :
29551: LD_VAR 0 3
29555: PPUSH
29556: LD_VAR 0 4
29560: PPUSH
29561: LD_VAR 0 5
29565: PPUSH
29566: CALL 30004 0 3
29570: GO 29693
29572: LD_INT 5
29574: DOUBLE
29575: EQUAL
29576: IFTRUE 29580
29578: GO 29587
29580: POP
// HackSpawnVehicle ; 6 :
29581: CALL 30065 0 0
29585: GO 29693
29587: LD_INT 6
29589: DOUBLE
29590: EQUAL
29591: IFTRUE 29595
29593: GO 29602
29595: POP
// HackInvincible ; 7 :
29596: CALL 30611 0 0
29600: GO 29693
29602: LD_INT 7
29604: DOUBLE
29605: EQUAL
29606: IFTRUE 29610
29608: GO 29617
29610: POP
// HackInvisible ; 8 :
29611: CALL 30722 0 0
29615: GO 29693
29617: LD_INT 8
29619: DOUBLE
29620: EQUAL
29621: IFTRUE 29625
29623: GO 29632
29625: POP
// HackChangeYourSide ; 9 :
29626: CALL 30779 0 0
29630: GO 29693
29632: LD_INT 9
29634: DOUBLE
29635: EQUAL
29636: IFTRUE 29640
29638: GO 29647
29640: POP
// HackChangeUnitSide ; 10 :
29641: CALL 30821 0 0
29645: GO 29693
29647: LD_INT 10
29649: DOUBLE
29650: EQUAL
29651: IFTRUE 29655
29653: GO 29662
29655: POP
// HackFog ; 11 :
29656: CALL 30922 0 0
29660: GO 29693
29662: LD_INT 11
29664: DOUBLE
29665: EQUAL
29666: IFTRUE 29670
29668: GO 29677
29670: POP
// HackApeman ; 12 :
29671: CALL 30937 0 0
29675: GO 29693
29677: LD_INT 12
29679: DOUBLE
29680: EQUAL
29681: IFTRUE 29685
29683: GO 29692
29685: POP
// HackBoom ; end ;
29686: CALL 31022 0 0
29690: GO 29693
29692: POP
// end ;
29693: PPOPN 6
29695: END
// export function HackUnlimitedResources ; var i , j , tmp ; begin
29696: LD_INT 0
29698: PPUSH
29699: PPUSH
29700: PPUSH
29701: PPUSH
// tmp := FilterAllUnits ( [ [ f_side , your_side ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
29702: LD_ADDR_VAR 0 4
29706: PUSH
29707: LD_INT 22
29709: PUSH
29710: LD_OWVAR 2
29714: PUSH
29715: EMPTY
29716: LIST
29717: LIST
29718: PUSH
29719: LD_INT 2
29721: PUSH
29722: LD_INT 30
29724: PUSH
29725: LD_INT 0
29727: PUSH
29728: EMPTY
29729: LIST
29730: LIST
29731: PUSH
29732: LD_INT 30
29734: PUSH
29735: LD_INT 1
29737: PUSH
29738: EMPTY
29739: LIST
29740: LIST
29741: PUSH
29742: EMPTY
29743: LIST
29744: LIST
29745: LIST
29746: PUSH
29747: EMPTY
29748: LIST
29749: LIST
29750: PPUSH
29751: CALL_OW 69
29755: ST_TO_ADDR
// if not tmp then
29756: LD_VAR 0 4
29760: NOT
29761: IFFALSE 29765
// exit ;
29763: GO 29824
// for i in tmp do
29765: LD_ADDR_VAR 0 2
29769: PUSH
29770: LD_VAR 0 4
29774: PUSH
29775: FOR_IN
29776: IFFALSE 29822
// for j = 1 to 3 do
29778: LD_ADDR_VAR 0 3
29782: PUSH
29783: DOUBLE
29784: LD_INT 1
29786: DEC
29787: ST_TO_ADDR
29788: LD_INT 3
29790: PUSH
29791: FOR_TO
29792: IFFALSE 29818
// SetResourceType ( GetBase ( i ) , j , 99999 ) ;
29794: LD_VAR 0 2
29798: PPUSH
29799: CALL_OW 274
29803: PPUSH
29804: LD_VAR 0 3
29808: PPUSH
29809: LD_INT 99999
29811: PPUSH
29812: CALL_OW 277
29816: GO 29791
29818: POP
29819: POP
29820: GO 29775
29822: POP
29823: POP
// end ;
29824: LD_VAR 0 1
29828: RET
// export function HackSetLevel10 ; var i , j ; begin
29829: LD_INT 0
29831: PPUSH
29832: PPUSH
29833: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
29834: LD_ADDR_VAR 0 2
29838: PUSH
29839: LD_INT 21
29841: PUSH
29842: LD_INT 1
29844: PUSH
29845: EMPTY
29846: LIST
29847: LIST
29848: PPUSH
29849: CALL_OW 69
29853: PUSH
29854: FOR_IN
29855: IFFALSE 29907
// if IsSelected ( i ) then
29857: LD_VAR 0 2
29861: PPUSH
29862: CALL_OW 306
29866: IFFALSE 29905
// begin for j := 1 to 4 do
29868: LD_ADDR_VAR 0 3
29872: PUSH
29873: DOUBLE
29874: LD_INT 1
29876: DEC
29877: ST_TO_ADDR
29878: LD_INT 4
29880: PUSH
29881: FOR_TO
29882: IFFALSE 29903
// SetSkill ( i , j , 10 ) ;
29884: LD_VAR 0 2
29888: PPUSH
29889: LD_VAR 0 3
29893: PPUSH
29894: LD_INT 10
29896: PPUSH
29897: CALL_OW 237
29901: GO 29881
29903: POP
29904: POP
// end ;
29905: GO 29854
29907: POP
29908: POP
// end ;
29909: LD_VAR 0 1
29913: RET
// export function HackSetLevel10YourUnits ; var i , j ; begin
29914: LD_INT 0
29916: PPUSH
29917: PPUSH
29918: PPUSH
// for i in FilterAllUnits ( [ [ f_side , your_side ] , [ f_type , unit_human ] ] ) do
29919: LD_ADDR_VAR 0 2
29923: PUSH
29924: LD_INT 22
29926: PUSH
29927: LD_OWVAR 2
29931: PUSH
29932: EMPTY
29933: LIST
29934: LIST
29935: PUSH
29936: LD_INT 21
29938: PUSH
29939: LD_INT 1
29941: PUSH
29942: EMPTY
29943: LIST
29944: LIST
29945: PUSH
29946: EMPTY
29947: LIST
29948: LIST
29949: PPUSH
29950: CALL_OW 69
29954: PUSH
29955: FOR_IN
29956: IFFALSE 29997
// begin for j := 1 to 4 do
29958: LD_ADDR_VAR 0 3
29962: PUSH
29963: DOUBLE
29964: LD_INT 1
29966: DEC
29967: ST_TO_ADDR
29968: LD_INT 4
29970: PUSH
29971: FOR_TO
29972: IFFALSE 29993
// SetSkill ( i , j , 10 ) ;
29974: LD_VAR 0 2
29978: PPUSH
29979: LD_VAR 0 3
29983: PPUSH
29984: LD_INT 10
29986: PPUSH
29987: CALL_OW 237
29991: GO 29971
29993: POP
29994: POP
// end ;
29995: GO 29955
29997: POP
29998: POP
// end ;
29999: LD_VAR 0 1
30003: RET
// export function HackSpawnHuman ( nation , class , skill ) ; begin
30004: LD_INT 0
30006: PPUSH
// uc_side := your_side ;
30007: LD_ADDR_OWVAR 20
30011: PUSH
30012: LD_OWVAR 2
30016: ST_TO_ADDR
// uc_nation := nation ;
30017: LD_ADDR_OWVAR 21
30021: PUSH
30022: LD_VAR 0 1
30026: ST_TO_ADDR
// InitHc ;
30027: CALL_OW 19
// PrepareHuman ( false , class , skill ) ;
30031: LD_INT 0
30033: PPUSH
30034: LD_VAR 0 2
30038: PPUSH
30039: LD_VAR 0 3
30043: PPUSH
30044: CALL_OW 380
// PlaceUnitAnywhere ( CreateHuman , true ) ;
30048: CALL_OW 44
30052: PPUSH
30053: LD_INT 1
30055: PPUSH
30056: CALL_OW 51
// end ;
30060: LD_VAR 0 4
30064: RET
// export function HackSpawnVehicle ; begin
30065: LD_INT 0
30067: PPUSH
// uc_side := your_side ;
30068: LD_ADDR_OWVAR 20
30072: PUSH
30073: LD_OWVAR 2
30077: ST_TO_ADDR
// uc_nation := rand ( 1 , 3 ) ;
30078: LD_ADDR_OWVAR 21
30082: PUSH
30083: LD_INT 1
30085: PPUSH
30086: LD_INT 3
30088: PPUSH
30089: CALL_OW 12
30093: ST_TO_ADDR
// InitVc ;
30094: CALL_OW 20
// case uc_nation of 1 :
30098: LD_OWVAR 21
30102: PUSH
30103: LD_INT 1
30105: DOUBLE
30106: EQUAL
30107: IFTRUE 30111
30109: GO 30255
30111: POP
// begin vc_chassis := [ us_light_wheeled , us_medium_wheeled , us_medium_tracked , us_heavy_tracked , us_morphling ] [ rand ( 1 , 5 ) ] ;
30112: LD_ADDR_OWVAR 37
30116: PUSH
30117: LD_INT 1
30119: PUSH
30120: LD_INT 2
30122: PUSH
30123: LD_INT 3
30125: PUSH
30126: LD_INT 4
30128: PUSH
30129: LD_INT 5
30131: PUSH
30132: EMPTY
30133: LIST
30134: LIST
30135: LIST
30136: LIST
30137: LIST
30138: PUSH
30139: LD_INT 1
30141: PPUSH
30142: LD_INT 5
30144: PPUSH
30145: CALL_OW 12
30149: ARRAY
30150: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
30151: LD_ADDR_OWVAR 39
30155: PUSH
30156: LD_INT 1
30158: PPUSH
30159: LD_INT 3
30161: PPUSH
30162: CALL_OW 12
30166: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_computer ] [ rand ( 1 , 3 ) ] ;
30167: LD_ADDR_OWVAR 38
30171: PUSH
30172: LD_INT 1
30174: PUSH
30175: LD_INT 2
30177: PUSH
30178: LD_INT 3
30180: PUSH
30181: EMPTY
30182: LIST
30183: LIST
30184: LIST
30185: PUSH
30186: LD_INT 1
30188: PPUSH
30189: LD_INT 3
30191: PPUSH
30192: CALL_OW 12
30196: ARRAY
30197: ST_TO_ADDR
// vc_weapon := [ us_machine_gun , us_gatling_gun , us_double_gun , us_light_gun , us_rocket_launcher , us_siberium_rocket , us_laser , us_double_laser , us_heavy_gun ] [ rand ( 1 , 9 ) ] ;
30198: LD_ADDR_OWVAR 40
30202: PUSH
30203: LD_INT 2
30205: PUSH
30206: LD_INT 4
30208: PUSH
30209: LD_INT 5
30211: PUSH
30212: LD_INT 3
30214: PUSH
30215: LD_INT 7
30217: PUSH
30218: LD_INT 8
30220: PUSH
30221: LD_INT 9
30223: PUSH
30224: LD_INT 10
30226: PUSH
30227: LD_INT 6
30229: PUSH
30230: EMPTY
30231: LIST
30232: LIST
30233: LIST
30234: LIST
30235: LIST
30236: LIST
30237: LIST
30238: LIST
30239: LIST
30240: PUSH
30241: LD_INT 1
30243: PPUSH
30244: LD_INT 9
30246: PPUSH
30247: CALL_OW 12
30251: ARRAY
30252: ST_TO_ADDR
// end ; 2 :
30253: GO 30520
30255: LD_INT 2
30257: DOUBLE
30258: EQUAL
30259: IFTRUE 30263
30261: GO 30387
30263: POP
// begin vc_chassis := [ ar_hovercraft , ar_light_trike , ar_medium_trike , ar_half_tracked ] [ rand ( 1 , 4 ) ] ;
30264: LD_ADDR_OWVAR 37
30268: PUSH
30269: LD_INT 11
30271: PUSH
30272: LD_INT 12
30274: PUSH
30275: LD_INT 13
30277: PUSH
30278: LD_INT 14
30280: PUSH
30281: EMPTY
30282: LIST
30283: LIST
30284: LIST
30285: LIST
30286: PUSH
30287: LD_INT 1
30289: PPUSH
30290: LD_INT 4
30292: PPUSH
30293: CALL_OW 12
30297: ARRAY
30298: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
30299: LD_ADDR_OWVAR 39
30303: PUSH
30304: LD_INT 1
30306: PPUSH
30307: LD_INT 3
30309: PPUSH
30310: CALL_OW 12
30314: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_apeman ] [ rand ( 1 , 3 ) ] ;
30315: LD_ADDR_OWVAR 38
30319: PUSH
30320: LD_INT 1
30322: PUSH
30323: LD_INT 2
30325: PUSH
30326: LD_INT 5
30328: PUSH
30329: EMPTY
30330: LIST
30331: LIST
30332: LIST
30333: PUSH
30334: LD_INT 1
30336: PPUSH
30337: LD_INT 3
30339: PPUSH
30340: CALL_OW 12
30344: ARRAY
30345: ST_TO_ADDR
// vc_weapon := [ ar_double_machine_gun , ar_flame_thrower , ar_gun , ar_rocket_launcher , ar_selfpropelled_bomb ] [ rand ( 1 , 5 ) ] ;
30346: LD_ADDR_OWVAR 40
30350: PUSH
30351: LD_INT 24
30353: PUSH
30354: LD_INT 26
30356: PUSH
30357: LD_INT 27
30359: PUSH
30360: LD_INT 28
30362: PUSH
30363: LD_INT 29
30365: PUSH
30366: EMPTY
30367: LIST
30368: LIST
30369: LIST
30370: LIST
30371: LIST
30372: PUSH
30373: LD_INT 1
30375: PPUSH
30376: LD_INT 5
30378: PPUSH
30379: CALL_OW 12
30383: ARRAY
30384: ST_TO_ADDR
// end ; 3 :
30385: GO 30520
30387: LD_INT 3
30389: DOUBLE
30390: EQUAL
30391: IFTRUE 30395
30393: GO 30519
30395: POP
// begin vc_chassis := [ ru_medium_wheeled , ru_heavy_wheeled , ru_medium_tracked , ru_heavy_tracked ] [ rand ( 1 , 4 ) ] ;
30396: LD_ADDR_OWVAR 37
30400: PUSH
30401: LD_INT 21
30403: PUSH
30404: LD_INT 23
30406: PUSH
30407: LD_INT 22
30409: PUSH
30410: LD_INT 24
30412: PUSH
30413: EMPTY
30414: LIST
30415: LIST
30416: LIST
30417: LIST
30418: PUSH
30419: LD_INT 1
30421: PPUSH
30422: LD_INT 4
30424: PPUSH
30425: CALL_OW 12
30429: ARRAY
30430: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
30431: LD_ADDR_OWVAR 39
30435: PUSH
30436: LD_INT 1
30438: PPUSH
30439: LD_INT 3
30441: PPUSH
30442: CALL_OW 12
30446: ST_TO_ADDR
// vc_control := [ control_manual , control_computer ] [ rand ( 1 , 2 ) ] ;
30447: LD_ADDR_OWVAR 38
30451: PUSH
30452: LD_INT 1
30454: PUSH
30455: LD_INT 3
30457: PUSH
30458: EMPTY
30459: LIST
30460: LIST
30461: PUSH
30462: LD_INT 1
30464: PPUSH
30465: LD_INT 2
30467: PPUSH
30468: CALL_OW 12
30472: ARRAY
30473: ST_TO_ADDR
// vc_weapon := [ ru_heavy_machine_gun , ru_gatling_gun , ru_gun , ru_heavy_gun , ru_siberium_rocket , ru_rocket ] [ rand ( 1 , 6 ) ] ;
30474: LD_ADDR_OWVAR 40
30478: PUSH
30479: LD_INT 42
30481: PUSH
30482: LD_INT 43
30484: PUSH
30485: LD_INT 44
30487: PUSH
30488: LD_INT 46
30490: PUSH
30491: LD_INT 48
30493: PUSH
30494: LD_INT 47
30496: PUSH
30497: EMPTY
30498: LIST
30499: LIST
30500: LIST
30501: LIST
30502: LIST
30503: LIST
30504: PUSH
30505: LD_INT 1
30507: PPUSH
30508: LD_INT 6
30510: PPUSH
30511: CALL_OW 12
30515: ARRAY
30516: ST_TO_ADDR
// end ; end ;
30517: GO 30520
30519: POP
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
30520: CALL_OW 45
30524: PPUSH
30525: LD_INT 1
30527: PPUSH
30528: CALL_OW 51
// end ;
30532: LD_VAR 0 1
30536: RET
// export invincible ; every 1 do
30537: GO 30539
30539: DISABLE
// invincible := [ ] ;
30540: LD_ADDR_EXP 75
30544: PUSH
30545: EMPTY
30546: ST_TO_ADDR
30547: END
// every 10 do var i ;
30548: GO 30550
30550: DISABLE
30551: LD_INT 0
30553: PPUSH
// begin enable ;
30554: ENABLE
// if not invincible then
30555: LD_EXP 75
30559: NOT
30560: IFFALSE 30564
// exit ;
30562: GO 30608
// for i in invincible do
30564: LD_ADDR_VAR 0 1
30568: PUSH
30569: LD_EXP 75
30573: PUSH
30574: FOR_IN
30575: IFFALSE 30606
// if GetLives ( i ) < 1000 then
30577: LD_VAR 0 1
30581: PPUSH
30582: CALL_OW 256
30586: PUSH
30587: LD_INT 1000
30589: LESS
30590: IFFALSE 30604
// SetLives ( i , 1000 ) ;
30592: LD_VAR 0 1
30596: PPUSH
30597: LD_INT 1000
30599: PPUSH
30600: CALL_OW 234
30604: GO 30574
30606: POP
30607: POP
// end ;
30608: PPOPN 1
30610: END
// export function HackInvincible ; var i ; begin
30611: LD_INT 0
30613: PPUSH
30614: PPUSH
// for i in FilterAllUnits ( [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ) do
30615: LD_ADDR_VAR 0 2
30619: PUSH
30620: LD_INT 2
30622: PUSH
30623: LD_INT 21
30625: PUSH
30626: LD_INT 1
30628: PUSH
30629: EMPTY
30630: LIST
30631: LIST
30632: PUSH
30633: LD_INT 21
30635: PUSH
30636: LD_INT 2
30638: PUSH
30639: EMPTY
30640: LIST
30641: LIST
30642: PUSH
30643: EMPTY
30644: LIST
30645: LIST
30646: LIST
30647: PPUSH
30648: CALL_OW 69
30652: PUSH
30653: FOR_IN
30654: IFFALSE 30715
// if IsSelected ( i ) then
30656: LD_VAR 0 2
30660: PPUSH
30661: CALL_OW 306
30665: IFFALSE 30713
// begin if i in invincible then
30667: LD_VAR 0 2
30671: PUSH
30672: LD_EXP 75
30676: IN
30677: IFFALSE 30697
// invincible := invincible diff i else
30679: LD_ADDR_EXP 75
30683: PUSH
30684: LD_EXP 75
30688: PUSH
30689: LD_VAR 0 2
30693: DIFF
30694: ST_TO_ADDR
30695: GO 30713
// invincible := invincible union i ;
30697: LD_ADDR_EXP 75
30701: PUSH
30702: LD_EXP 75
30706: PUSH
30707: LD_VAR 0 2
30711: UNION
30712: ST_TO_ADDR
// end ;
30713: GO 30653
30715: POP
30716: POP
// end ;
30717: LD_VAR 0 1
30721: RET
// export function HackInvisible ; var i , j ; begin
30722: LD_INT 0
30724: PPUSH
30725: PPUSH
30726: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
30727: LD_ADDR_VAR 0 2
30731: PUSH
30732: LD_INT 21
30734: PUSH
30735: LD_INT 1
30737: PUSH
30738: EMPTY
30739: LIST
30740: LIST
30741: PPUSH
30742: CALL_OW 69
30746: PUSH
30747: FOR_IN
30748: IFFALSE 30772
// if IsSelected ( i ) then
30750: LD_VAR 0 2
30754: PPUSH
30755: CALL_OW 306
30759: IFFALSE 30770
// begin ComForceInvisible ( i ) ;
30761: LD_VAR 0 2
30765: PPUSH
30766: CALL_OW 496
// end ;
30770: GO 30747
30772: POP
30773: POP
// end ;
30774: LD_VAR 0 1
30778: RET
// export function HackChangeYourSide ; begin
30779: LD_INT 0
30781: PPUSH
// if your_side = 8 then
30782: LD_OWVAR 2
30786: PUSH
30787: LD_INT 8
30789: EQUAL
30790: IFFALSE 30802
// your_side := 0 else
30792: LD_ADDR_OWVAR 2
30796: PUSH
30797: LD_INT 0
30799: ST_TO_ADDR
30800: GO 30816
// your_side := your_side + 1 ;
30802: LD_ADDR_OWVAR 2
30806: PUSH
30807: LD_OWVAR 2
30811: PUSH
30812: LD_INT 1
30814: PLUS
30815: ST_TO_ADDR
// end ;
30816: LD_VAR 0 1
30820: RET
// export function HackChangeUnitSide ; var i , j ; begin
30821: LD_INT 0
30823: PPUSH
30824: PPUSH
30825: PPUSH
// for i in all_units do
30826: LD_ADDR_VAR 0 2
30830: PUSH
30831: LD_OWVAR 3
30835: PUSH
30836: FOR_IN
30837: IFFALSE 30915
// if IsSelected ( i ) then
30839: LD_VAR 0 2
30843: PPUSH
30844: CALL_OW 306
30848: IFFALSE 30913
// begin j := GetSide ( i ) ;
30850: LD_ADDR_VAR 0 3
30854: PUSH
30855: LD_VAR 0 2
30859: PPUSH
30860: CALL_OW 255
30864: ST_TO_ADDR
// if j = 8 then
30865: LD_VAR 0 3
30869: PUSH
30870: LD_INT 8
30872: EQUAL
30873: IFFALSE 30885
// j := 0 else
30875: LD_ADDR_VAR 0 3
30879: PUSH
30880: LD_INT 0
30882: ST_TO_ADDR
30883: GO 30899
// j := j + 1 ;
30885: LD_ADDR_VAR 0 3
30889: PUSH
30890: LD_VAR 0 3
30894: PUSH
30895: LD_INT 1
30897: PLUS
30898: ST_TO_ADDR
// SetSide ( i , j ) ;
30899: LD_VAR 0 2
30903: PPUSH
30904: LD_VAR 0 3
30908: PPUSH
30909: CALL_OW 235
// end ;
30913: GO 30836
30915: POP
30916: POP
// end ;
30917: LD_VAR 0 1
30921: RET
// export function HackFog ; begin
30922: LD_INT 0
30924: PPUSH
// FogOff ( true ) ;
30925: LD_INT 1
30927: PPUSH
30928: CALL_OW 344
// end ;
30932: LD_VAR 0 1
30936: RET
// export function HackApeman ; begin
30937: LD_INT 0
30939: PPUSH
// uc_side := your_side ;
30940: LD_ADDR_OWVAR 20
30944: PUSH
30945: LD_OWVAR 2
30949: ST_TO_ADDR
// uc_nation := 0 ;
30950: LD_ADDR_OWVAR 21
30954: PUSH
30955: LD_INT 0
30957: ST_TO_ADDR
// hc_name :=  ;
30958: LD_ADDR_OWVAR 26
30962: PUSH
30963: LD_STRING 
30965: ST_TO_ADDR
// hc_gallery :=  ;
30966: LD_ADDR_OWVAR 33
30970: PUSH
30971: LD_STRING 
30973: ST_TO_ADDR
// hc_skills := [ 0 , 0 , 0 , 0 ] ;
30974: LD_ADDR_OWVAR 31
30978: PUSH
30979: LD_INT 0
30981: PUSH
30982: LD_INT 0
30984: PUSH
30985: LD_INT 0
30987: PUSH
30988: LD_INT 0
30990: PUSH
30991: EMPTY
30992: LIST
30993: LIST
30994: LIST
30995: LIST
30996: ST_TO_ADDR
// hc_class := class_apeman ;
30997: LD_ADDR_OWVAR 28
31001: PUSH
31002: LD_INT 12
31004: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateHuman , true ) ;
31005: CALL_OW 44
31009: PPUSH
31010: LD_INT 1
31012: PPUSH
31013: CALL_OW 51
// end ;
31017: LD_VAR 0 1
31021: RET
// export function HackBoom ; begin
31022: LD_INT 0
31024: PPUSH
// uc_side := your_side ;
31025: LD_ADDR_OWVAR 20
31029: PUSH
31030: LD_OWVAR 2
31034: ST_TO_ADDR
// uc_nation := 1 ;
31035: LD_ADDR_OWVAR 21
31039: PUSH
31040: LD_INT 1
31042: ST_TO_ADDR
// vc_chassis := us_morphling ;
31043: LD_ADDR_OWVAR 37
31047: PUSH
31048: LD_INT 5
31050: ST_TO_ADDR
// vc_engine := engine_siberite ;
31051: LD_ADDR_OWVAR 39
31055: PUSH
31056: LD_INT 3
31058: ST_TO_ADDR
// vc_control := control_computer ;
31059: LD_ADDR_OWVAR 38
31063: PUSH
31064: LD_INT 3
31066: ST_TO_ADDR
// vc_weapon := us_siberium_rocket ;
31067: LD_ADDR_OWVAR 40
31071: PUSH
31072: LD_INT 8
31074: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
31075: CALL_OW 45
31079: PPUSH
31080: LD_INT 1
31082: PPUSH
31083: CALL_OW 51
// end ;
31087: LD_VAR 0 1
31091: RET
