// var Burlak , Bystrov ; var Belkov , Gnyevko , Kirilenkova ; var Kovalyuk , Scholtze ; var Kuzmov ; var Karamazov , Petrovova , Gleb , Petrosyan ; var Lipshchin , Titov , Dolgov , Xavier ; var Oblukov , Kozlov , Kapitsova ; var Survivors4 ; var Bluekher ; var Vybrano ; var Inzenyr ; var Depot ; function load_char ( Ident ) ; begin
   0: LD_INT 0
   2: PPUSH
// if TestCharacters ( Ident ) then
   3: LD_VAR 0 1
   7: PPUSH
   8: CALL_OW 28
  12: IFFALSE 59
// begin Result = CreateCharacter ( Ident ) ;
  14: LD_ADDR_VAR 0 2
  18: PUSH
  19: LD_VAR 0 1
  23: PPUSH
  24: CALL_OW 34
  28: ST_TO_ADDR
// if IsDead ( Result ) then
  29: LD_VAR 0 2
  33: PPUSH
  34: CALL_OW 301
  38: IFFALSE 57
// begin DestroyUnit ( Result ) ;
  40: LD_VAR 0 2
  44: PPUSH
  45: CALL_OW 65
// Result = 0 ;
  49: LD_ADDR_VAR 0 2
  53: PUSH
  54: LD_INT 0
  56: ST_TO_ADDR
// end ; end else
  57: GO 74
// Result = NewCharacter ( Ident ) ;
  59: LD_ADDR_VAR 0 2
  63: PUSH
  64: LD_VAR 0 1
  68: PPUSH
  69: CALL_OW 25
  73: ST_TO_ADDR
// SetSide ( Result , 3 ) ;
  74: LD_VAR 0 2
  78: PPUSH
  79: LD_INT 3
  81: PPUSH
  82: CALL_OW 235
// end ;
  86: LD_VAR 0 2
  90: RET
// function load_set ( Ident ) ; begin
  91: LD_INT 0
  93: PPUSH
// if TestCharacters ( Ident ) then
  94: LD_VAR 0 1
  98: PPUSH
  99: CALL_OW 28
 103: IFFALSE 134
// begin Result = CreateCharacterSet ( Ident ) ;
 105: LD_ADDR_VAR 0 2
 109: PUSH
 110: LD_VAR 0 1
 114: PPUSH
 115: CALL_OW 31
 119: ST_TO_ADDR
// SetSide ( Result , 3 ) ;
 120: LD_VAR 0 2
 124: PPUSH
 125: LD_INT 3
 127: PPUSH
 128: CALL_OW 235
// end else
 132: GO 141
// Result = [ ] ;
 134: LD_ADDR_VAR 0 2
 138: PUSH
 139: EMPTY
 140: ST_TO_ADDR
// end ;
 141: LD_VAR 0 2
 145: RET
// function load ; begin
 146: LD_INT 0
 148: PPUSH
// InitUC ;
 149: CALL_OW 18
// InitHC ;
 153: CALL_OW 19
// UC_Side = 3 ;
 157: LD_ADDR_OWVAR 20
 161: PUSH
 162: LD_INT 3
 164: ST_TO_ADDR
// Bystrov = NewCharacter ( Bystrov ) ;
 165: LD_ADDR_LOC 2
 169: PUSH
 170: LD_STRING Bystrov
 172: PPUSH
 173: CALL_OW 25
 177: ST_TO_ADDR
// Burlak = load_char ( Burlak ) ;
 178: LD_ADDR_LOC 1
 182: PUSH
 183: LD_STRING Burlak
 185: PPUSH
 186: CALL 0 0 1
 190: ST_TO_ADDR
// Belkov = load_char ( Belkov ) ;
 191: LD_ADDR_LOC 3
 195: PUSH
 196: LD_STRING Belkov
 198: PPUSH
 199: CALL 0 0 1
 203: ST_TO_ADDR
// Gnyevko = load_char ( Gnyevko ) ;
 204: LD_ADDR_LOC 4
 208: PUSH
 209: LD_STRING Gnyevko
 211: PPUSH
 212: CALL 0 0 1
 216: ST_TO_ADDR
// Kirilenkova = load_char ( Kirilenkova ) ;
 217: LD_ADDR_LOC 5
 221: PUSH
 222: LD_STRING Kirilenkova
 224: PPUSH
 225: CALL 0 0 1
 229: ST_TO_ADDR
// Kovalyuk = load_char ( Kovalyuk ) ;
 230: LD_ADDR_LOC 6
 234: PUSH
 235: LD_STRING Kovalyuk
 237: PPUSH
 238: CALL 0 0 1
 242: ST_TO_ADDR
// Scholtze = load_char ( Scholtze ) ;
 243: LD_ADDR_LOC 7
 247: PUSH
 248: LD_STRING Scholtze
 250: PPUSH
 251: CALL 0 0 1
 255: ST_TO_ADDR
// Kuzmov = load_char ( Kuzmov ) ;
 256: LD_ADDR_LOC 8
 260: PUSH
 261: LD_STRING Kuzmov
 263: PPUSH
 264: CALL 0 0 1
 268: ST_TO_ADDR
// Karamazov = load_char ( Karamazov ) ;
 269: LD_ADDR_LOC 9
 273: PUSH
 274: LD_STRING Karamazov
 276: PPUSH
 277: CALL 0 0 1
 281: ST_TO_ADDR
// Petrovova = load_char ( Petrovova ) ;
 282: LD_ADDR_LOC 10
 286: PUSH
 287: LD_STRING Petrovova
 289: PPUSH
 290: CALL 0 0 1
 294: ST_TO_ADDR
// Gleb = load_char ( Gleb ) ;
 295: LD_ADDR_LOC 11
 299: PUSH
 300: LD_STRING Gleb
 302: PPUSH
 303: CALL 0 0 1
 307: ST_TO_ADDR
// Petrosyan = load_char ( Petrosyan ) ;
 308: LD_ADDR_LOC 12
 312: PUSH
 313: LD_STRING Petrosyan
 315: PPUSH
 316: CALL 0 0 1
 320: ST_TO_ADDR
// Lipshchin = load_char ( Lipshchin ) ;
 321: LD_ADDR_LOC 13
 325: PUSH
 326: LD_STRING Lipshchin
 328: PPUSH
 329: CALL 0 0 1
 333: ST_TO_ADDR
// Titov = load_char ( Titov ) ;
 334: LD_ADDR_LOC 14
 338: PUSH
 339: LD_STRING Titov
 341: PPUSH
 342: CALL 0 0 1
 346: ST_TO_ADDR
// Dolgov = load_char ( Dolgov ) ;
 347: LD_ADDR_LOC 15
 351: PUSH
 352: LD_STRING Dolgov
 354: PPUSH
 355: CALL 0 0 1
 359: ST_TO_ADDR
// Xavier = load_char ( Xavier ) ;
 360: LD_ADDR_LOC 16
 364: PUSH
 365: LD_STRING Xavier
 367: PPUSH
 368: CALL 0 0 1
 372: ST_TO_ADDR
// Oblukov = load_char ( Oblukov ) ;
 373: LD_ADDR_LOC 17
 377: PUSH
 378: LD_STRING Oblukov
 380: PPUSH
 381: CALL 0 0 1
 385: ST_TO_ADDR
// Kozlov = load_char ( Kozlov ) ;
 386: LD_ADDR_LOC 18
 390: PUSH
 391: LD_STRING Kozlov
 393: PPUSH
 394: CALL 0 0 1
 398: ST_TO_ADDR
// Kapitsova = load_char ( Kapitsova ) ;
 399: LD_ADDR_LOC 19
 403: PUSH
 404: LD_STRING Kapitsova
 406: PPUSH
 407: CALL 0 0 1
 411: ST_TO_ADDR
// Survivors4 = load_set ( Survivors4 ) ;
 412: LD_ADDR_LOC 20
 416: PUSH
 417: LD_STRING Survivors4
 419: PPUSH
 420: CALL 91 0 1
 424: ST_TO_ADDR
// end ;
 425: LD_VAR 0 1
 429: RET
// function vytvor_rusaka ; begin
 430: LD_INT 0
 432: PPUSH
// UC_Nation = NATION_RUSSIAN ;
 433: LD_ADDR_OWVAR 21
 437: PUSH
 438: LD_INT 3
 440: ST_TO_ADDR
// UC_side = 3 ;
 441: LD_ADDR_OWVAR 20
 445: PUSH
 446: LD_INT 3
 448: ST_TO_ADDR
// HC_name =  ;
 449: LD_ADDR_OWVAR 26
 453: PUSH
 454: LD_STRING 
 456: ST_TO_ADDR
// HC_sex = Rand ( SEX_MALE , SEX_FEMALE ) ;
 457: LD_ADDR_OWVAR 27
 461: PUSH
 462: LD_INT 1
 464: PPUSH
 465: LD_INT 2
 467: PPUSH
 468: CALL_OW 12
 472: ST_TO_ADDR
// HC_class = CLASS_SOLDIER ;
 473: LD_ADDR_OWVAR 28
 477: PUSH
 478: LD_INT 1
 480: ST_TO_ADDR
// PrepareSoldierSkills ( 2 ) ;
 481: LD_INT 2
 483: PPUSH
 484: CALL_OW 375
// Result = CreateHuman ;
 488: LD_ADDR_VAR 0 1
 492: PUSH
 493: CALL_OW 44
 497: ST_TO_ADDR
// end ;
 498: LD_VAR 0 1
 502: RET
// function vytvor_inzenyra ; begin
 503: LD_INT 0
 505: PPUSH
// UC_Nation = NATION_RUSSIAN ;
 506: LD_ADDR_OWVAR 21
 510: PUSH
 511: LD_INT 3
 513: ST_TO_ADDR
// UC_side = 3 ;
 514: LD_ADDR_OWVAR 20
 518: PUSH
 519: LD_INT 3
 521: ST_TO_ADDR
// HC_name =  ;
 522: LD_ADDR_OWVAR 26
 526: PUSH
 527: LD_STRING 
 529: ST_TO_ADDR
// HC_sex = Rand ( SEX_MALE , SEX_FEMALE ) ;
 530: LD_ADDR_OWVAR 27
 534: PUSH
 535: LD_INT 1
 537: PPUSH
 538: LD_INT 2
 540: PPUSH
 541: CALL_OW 12
 545: ST_TO_ADDR
// HC_class = CLASS_ENGINEER ;
 546: LD_ADDR_OWVAR 28
 550: PUSH
 551: LD_INT 2
 553: ST_TO_ADDR
// PrepareEngineerSkills ( 4 ) ;
 554: LD_INT 4
 556: PPUSH
 557: CALL_OW 376
// Result = CreateHuman ;
 561: LD_ADDR_VAR 0 1
 565: PUSH
 566: CALL_OW 44
 570: ST_TO_ADDR
// end ;
 571: LD_VAR 0 1
 575: RET
// function Intro ; var Hlavni , I , Vedlejsi , X , Y , Dum , Count ; begin
 576: LD_INT 0
 578: PPUSH
 579: PPUSH
 580: PPUSH
 581: PPUSH
 582: PPUSH
 583: PPUSH
 584: PPUSH
 585: PPUSH
// FogOff ( true ) ;
 586: LD_INT 1
 588: PPUSH
 589: CALL_OW 344
// InGameOn ;
 593: CALL_OW 8
// Dum = najdi_budovu ;
 597: LD_ADDR_VAR 0 7
 601: PUSH
 602: CALL 4094 0 0
 606: ST_TO_ADDR
// if Dum then
 607: LD_VAR 0 7
 611: IFFALSE 645
// begin X = GetX ( Dum ) ;
 613: LD_ADDR_VAR 0 5
 617: PUSH
 618: LD_VAR 0 7
 622: PPUSH
 623: CALL_OW 250
 627: ST_TO_ADDR
// Y = GetY ( Dum ) ;
 628: LD_ADDR_VAR 0 6
 632: PUSH
 633: LD_VAR 0 7
 637: PPUSH
 638: CALL_OW 251
 642: ST_TO_ADDR
// end else
 643: GO 661
// begin X = 41 ;
 645: LD_ADDR_VAR 0 5
 649: PUSH
 650: LD_INT 41
 652: ST_TO_ADDR
// Y = 33 ;
 653: LD_ADDR_VAR 0 6
 657: PUSH
 658: LD_INT 33
 660: ST_TO_ADDR
// end ; PlaceUnitXYR ( Bystrov , X , Y , 7 , false ) ;
 661: LD_LOC 2
 665: PPUSH
 666: LD_VAR 0 5
 670: PPUSH
 671: LD_VAR 0 6
 675: PPUSH
 676: LD_INT 7
 678: PPUSH
 679: LD_INT 0
 681: PPUSH
 682: CALL_OW 50
// PlaceUnitXYR ( Burlak , GetX ( Bystrov ) , GetY ( Bystrov ) + 10 , 6 , false ) ;
 686: LD_LOC 1
 690: PPUSH
 691: LD_LOC 2
 695: PPUSH
 696: CALL_OW 250
 700: PPUSH
 701: LD_LOC 2
 705: PPUSH
 706: CALL_OW 251
 710: PUSH
 711: LD_INT 10
 713: PLUS
 714: PPUSH
 715: LD_INT 6
 717: PPUSH
 718: LD_INT 0
 720: PPUSH
 721: CALL_OW 50
// CenterNowOnUnits ( [ Burlak ] ) ;
 725: LD_LOC 1
 729: PUSH
 730: EMPTY
 731: LIST
 732: PPUSH
 733: CALL_OW 87
// ComMoveUnit ( Burlak , Bystrov ) ;
 737: LD_LOC 1
 741: PPUSH
 742: LD_LOC 2
 746: PPUSH
 747: CALL_OW 112
// Count = 0 ;
 751: LD_ADDR_VAR 0 8
 755: PUSH
 756: LD_INT 0
 758: ST_TO_ADDR
// while ( GetDistUnits ( Bystrov , Burlak ) > 2 ) and ( Count < 10 ) do
 759: LD_LOC 2
 763: PPUSH
 764: LD_LOC 1
 768: PPUSH
 769: CALL_OW 296
 773: PUSH
 774: LD_INT 2
 776: GREATER
 777: PUSH
 778: LD_VAR 0 8
 782: PUSH
 783: LD_INT 10
 785: LESS
 786: AND
 787: IFFALSE 845
// begin Wait ( 0 0$1 ) ;
 789: LD_INT 35
 791: PPUSH
 792: CALL_OW 67
// CenterOnUnits ( [ Burlak ] ) ;
 796: LD_LOC 1
 800: PUSH
 801: EMPTY
 802: LIST
 803: PPUSH
 804: CALL_OW 85
// ComMoveUnit ( Burlak , Bystrov ) ;
 808: LD_LOC 1
 812: PPUSH
 813: LD_LOC 2
 817: PPUSH
 818: CALL_OW 112
// Wait ( 0 0$1 ) ;
 822: LD_INT 35
 824: PPUSH
 825: CALL_OW 67
// Count = Count + 1 ;
 829: LD_ADDR_VAR 0 8
 833: PUSH
 834: LD_VAR 0 8
 838: PUSH
 839: LD_INT 1
 841: PLUS
 842: ST_TO_ADDR
// end ;
 843: GO 759
// ComTurnUnit ( Burlak , Bystrov ) ;
 845: LD_LOC 1
 849: PPUSH
 850: LD_LOC 2
 854: PPUSH
 855: CALL_OW 119
// ComTurnUnit ( Bystrov , Burlak ) ;
 859: LD_LOC 2
 863: PPUSH
 864: LD_LOC 1
 868: PPUSH
 869: CALL_OW 119
// Wait ( 0 0$0.5 ) ;
 873: LD_INT 18
 875: PPUSH
 876: CALL_OW 67
// ComHold ( [ Burlak , Bystrov ] ) ;
 880: LD_LOC 1
 884: PUSH
 885: LD_LOC 2
 889: PUSH
 890: EMPTY
 891: LIST
 892: LIST
 893: PPUSH
 894: CALL_OW 140
// CenterOnUnits ( [ Burlak , Bystrov ] ) ;
 898: LD_LOC 1
 902: PUSH
 903: LD_LOC 2
 907: PUSH
 908: EMPTY
 909: LIST
 910: LIST
 911: PPUSH
 912: CALL_OW 85
// Wait ( 0 0$1 ) ;
 916: LD_INT 35
 918: PPUSH
 919: CALL_OW 67
// create_crates ;
 923: CALL 4267 0 0
// Say ( Burlak , DStart-Bur-1 ) ;
 927: LD_LOC 1
 931: PPUSH
 932: LD_STRING DStart-Bur-1
 934: PPUSH
 935: CALL_OW 88
// ComTurnUnit ( Burlak , Bystrov ) ;
 939: LD_LOC 1
 943: PPUSH
 944: LD_LOC 2
 948: PPUSH
 949: CALL_OW 119
// ComTurnUnit ( Bystrov , Burlak ) ;
 953: LD_LOC 2
 957: PPUSH
 958: LD_LOC 1
 962: PPUSH
 963: CALL_OW 119
// Say ( Bystrov , DStart-Bys-1 ) ;
 967: LD_LOC 2
 971: PPUSH
 972: LD_STRING DStart-Bys-1
 974: PPUSH
 975: CALL_OW 88
// ComTurnUnit ( Burlak , Bystrov ) ;
 979: LD_LOC 1
 983: PPUSH
 984: LD_LOC 2
 988: PPUSH
 989: CALL_OW 119
// ComTurnUnit ( Bystrov , Burlak ) ;
 993: LD_LOC 2
 997: PPUSH
 998: LD_LOC 1
1002: PPUSH
1003: CALL_OW 119
// Say ( Burlak , DStart-Bur-2 ) ;
1007: LD_LOC 1
1011: PPUSH
1012: LD_STRING DStart-Bur-2
1014: PPUSH
1015: CALL_OW 88
// ComTurnUnit ( Burlak , Bystrov ) ;
1019: LD_LOC 1
1023: PPUSH
1024: LD_LOC 2
1028: PPUSH
1029: CALL_OW 119
// ComTurnUnit ( Bystrov , Burlak ) ;
1033: LD_LOC 2
1037: PPUSH
1038: LD_LOC 1
1042: PPUSH
1043: CALL_OW 119
// Say ( Bystrov , DStart-Bys-2 ) ;
1047: LD_LOC 2
1051: PPUSH
1052: LD_STRING DStart-Bys-2
1054: PPUSH
1055: CALL_OW 88
// ComTurnUnit ( Burlak , Bystrov ) ;
1059: LD_LOC 1
1063: PPUSH
1064: LD_LOC 2
1068: PPUSH
1069: CALL_OW 119
// ComTurnUnit ( Bystrov , Burlak ) ;
1073: LD_LOC 2
1077: PPUSH
1078: LD_LOC 1
1082: PPUSH
1083: CALL_OW 119
// Say ( Burlak , DStart-Bur-3 ) ;
1087: LD_LOC 1
1091: PPUSH
1092: LD_STRING DStart-Bur-3
1094: PPUSH
1095: CALL_OW 88
// collect_crates ;
1099: CALL 4325 0 0
// Wait ( 0 0$1 ) ;
1103: LD_INT 35
1105: PPUSH
1106: CALL_OW 67
// ComMoveXY ( Bystrov , GetX ( Bystrov ) + Rand ( 2 , 6 ) , GetY ( Bystrov ) + Rand ( - 2 , 2 ) ) ;
1110: LD_LOC 2
1114: PPUSH
1115: LD_LOC 2
1119: PPUSH
1120: CALL_OW 250
1124: PUSH
1125: LD_INT 2
1127: PPUSH
1128: LD_INT 6
1130: PPUSH
1131: CALL_OW 12
1135: PLUS
1136: PPUSH
1137: LD_LOC 2
1141: PPUSH
1142: CALL_OW 251
1146: PUSH
1147: LD_INT 2
1149: NEG
1150: PPUSH
1151: LD_INT 2
1153: PPUSH
1154: CALL_OW 12
1158: PLUS
1159: PPUSH
1160: CALL_OW 111
// Wait ( 0 0$3 ) ;
1164: LD_INT 105
1166: PPUSH
1167: CALL_OW 67
// ComMoveUnit ( Burlak , Bystrov ) ;
1171: LD_LOC 1
1175: PPUSH
1176: LD_LOC 2
1180: PPUSH
1181: CALL_OW 112
// Count = 0 ;
1185: LD_ADDR_VAR 0 8
1189: PUSH
1190: LD_INT 0
1192: ST_TO_ADDR
// while ( GetDistUnits ( Bystrov , Burlak ) > 2 ) and ( Count < 10 ) do
1193: LD_LOC 2
1197: PPUSH
1198: LD_LOC 1
1202: PPUSH
1203: CALL_OW 296
1207: PUSH
1208: LD_INT 2
1210: GREATER
1211: PUSH
1212: LD_VAR 0 8
1216: PUSH
1217: LD_INT 10
1219: LESS
1220: AND
1221: IFFALSE 1267
// begin Wait ( 0 0$1 ) ;
1223: LD_INT 35
1225: PPUSH
1226: CALL_OW 67
// ComMoveUnit ( Burlak , Bystrov ) ;
1230: LD_LOC 1
1234: PPUSH
1235: LD_LOC 2
1239: PPUSH
1240: CALL_OW 112
// Wait ( 0 0$1 ) ;
1244: LD_INT 35
1246: PPUSH
1247: CALL_OW 67
// Count = Count + 1 ;
1251: LD_ADDR_VAR 0 8
1255: PUSH
1256: LD_VAR 0 8
1260: PUSH
1261: LD_INT 1
1263: PLUS
1264: ST_TO_ADDR
// end ;
1265: GO 1193
// ComTurnUnit ( Burlak , Bystrov ) ;
1267: LD_LOC 1
1271: PPUSH
1272: LD_LOC 2
1276: PPUSH
1277: CALL_OW 119
// ComTurnUnit ( Bystrov , Burlak ) ;
1281: LD_LOC 2
1285: PPUSH
1286: LD_LOC 1
1290: PPUSH
1291: CALL_OW 119
// Wait ( 0 0$0.5 ) ;
1295: LD_INT 18
1297: PPUSH
1298: CALL_OW 67
// ComHold ( [ Burlak , Bystrov ] ) ;
1302: LD_LOC 1
1306: PUSH
1307: LD_LOC 2
1311: PUSH
1312: EMPTY
1313: LIST
1314: LIST
1315: PPUSH
1316: CALL_OW 140
// Wait ( 0 0$1 ) ;
1320: LD_INT 35
1322: PPUSH
1323: CALL_OW 67
// Say ( Bystrov , DStart-Bys-3 ) ;
1327: LD_LOC 2
1331: PPUSH
1332: LD_STRING DStart-Bys-3
1334: PPUSH
1335: CALL_OW 88
// ComTurnUnit ( Burlak , Bystrov ) ;
1339: LD_LOC 1
1343: PPUSH
1344: LD_LOC 2
1348: PPUSH
1349: CALL_OW 119
// ComTurnUnit ( Bystrov , Burlak ) ;
1353: LD_LOC 2
1357: PPUSH
1358: LD_LOC 1
1362: PPUSH
1363: CALL_OW 119
// Say ( Burlak , DStart-Bur-4 ) ;
1367: LD_LOC 1
1371: PPUSH
1372: LD_STRING DStart-Bur-4
1374: PPUSH
1375: CALL_OW 88
// ComTurnUnit ( Burlak , Bystrov ) ;
1379: LD_LOC 1
1383: PPUSH
1384: LD_LOC 2
1388: PPUSH
1389: CALL_OW 119
// ComTurnUnit ( Bystrov , Burlak ) ;
1393: LD_LOC 2
1397: PPUSH
1398: LD_LOC 1
1402: PPUSH
1403: CALL_OW 119
// Say ( Bystrov , DStart-Bys-4 ) ;
1407: LD_LOC 2
1411: PPUSH
1412: LD_STRING DStart-Bys-4
1414: PPUSH
1415: CALL_OW 88
// ComTurnUnit ( Burlak , Bystrov ) ;
1419: LD_LOC 1
1423: PPUSH
1424: LD_LOC 2
1428: PPUSH
1429: CALL_OW 119
// ComTurnUnit ( Bystrov , Burlak ) ;
1433: LD_LOC 2
1437: PPUSH
1438: LD_LOC 1
1442: PPUSH
1443: CALL_OW 119
// Say ( Burlak , DStart-Bur-5 ) ;
1447: LD_LOC 1
1451: PPUSH
1452: LD_STRING DStart-Bur-5
1454: PPUSH
1455: CALL_OW 88
// Wait ( 0 0$1 ) ;
1459: LD_INT 35
1461: PPUSH
1462: CALL_OW 67
// ComTurnUnit ( Burlak , Bystrov ) ;
1466: LD_LOC 1
1470: PPUSH
1471: LD_LOC 2
1475: PPUSH
1476: CALL_OW 119
// ComTurnUnit ( Bystrov , Burlak ) ;
1480: LD_LOC 2
1484: PPUSH
1485: LD_LOC 1
1489: PPUSH
1490: CALL_OW 119
// Say ( Bystrov , DStart-Bys-5 ) ;
1494: LD_LOC 2
1498: PPUSH
1499: LD_STRING DStart-Bys-5
1501: PPUSH
1502: CALL_OW 88
// ComTurnUnit ( Burlak , Bystrov ) ;
1506: LD_LOC 1
1510: PPUSH
1511: LD_LOC 2
1515: PPUSH
1516: CALL_OW 119
// ComTurnUnit ( Bystrov , Burlak ) ;
1520: LD_LOC 2
1524: PPUSH
1525: LD_LOC 1
1529: PPUSH
1530: CALL_OW 119
// Say ( Burlak , DStart-Bur-6 ) ;
1534: LD_LOC 1
1538: PPUSH
1539: LD_STRING DStart-Bur-6
1541: PPUSH
1542: CALL_OW 88
// AddComWait ( Burlak , 0 0$2 ) ;
1546: LD_LOC 1
1550: PPUSH
1551: LD_INT 70
1553: PPUSH
1554: CALL_OW 202
// if Dum then
1558: LD_VAR 0 7
1562: IFFALSE 1589
// AddComEnterUnit ( [ Bystrov , Burlak ] , Dum ) else
1564: LD_LOC 2
1568: PUSH
1569: LD_LOC 1
1573: PUSH
1574: EMPTY
1575: LIST
1576: LIST
1577: PPUSH
1578: LD_VAR 0 7
1582: PPUSH
1583: CALL_OW 180
1587: GO 1613
// AddComMoveXY ( [ Bystrov , Burlak ] , 60 , 47 ) ;
1589: LD_LOC 2
1593: PUSH
1594: LD_LOC 1
1598: PUSH
1599: EMPTY
1600: LIST
1601: LIST
1602: PPUSH
1603: LD_INT 60
1605: PPUSH
1606: LD_INT 47
1608: PPUSH
1609: CALL_OW 171
// Wait ( 0 0$5 ) ;
1613: LD_INT 175
1615: PPUSH
1616: CALL_OW 67
// Hlavni = [ Belkov , Gnyevko , Kirilenkova , Kovalyuk , Scholtze , Kuzmov , Karamazov , Petrovova , Gleb , Petrosyan , Lipshchin , Titov , Dolgov , Xavier , Oblukov , Kozlov , Kapitsova ] union Survivors4 diff [ 0 ] ;
1620: LD_ADDR_VAR 0 2
1624: PUSH
1625: LD_LOC 3
1629: PUSH
1630: LD_LOC 4
1634: PUSH
1635: LD_LOC 5
1639: PUSH
1640: LD_LOC 6
1644: PUSH
1645: LD_LOC 7
1649: PUSH
1650: LD_LOC 8
1654: PUSH
1655: LD_LOC 9
1659: PUSH
1660: LD_LOC 10
1664: PUSH
1665: LD_LOC 11
1669: PUSH
1670: LD_LOC 12
1674: PUSH
1675: LD_LOC 13
1679: PUSH
1680: LD_LOC 14
1684: PUSH
1685: LD_LOC 15
1689: PUSH
1690: LD_LOC 16
1694: PUSH
1695: LD_LOC 17
1699: PUSH
1700: LD_LOC 18
1704: PUSH
1705: LD_LOC 19
1709: PUSH
1710: EMPTY
1711: LIST
1712: LIST
1713: LIST
1714: LIST
1715: LIST
1716: LIST
1717: LIST
1718: LIST
1719: LIST
1720: LIST
1721: LIST
1722: LIST
1723: LIST
1724: LIST
1725: LIST
1726: LIST
1727: LIST
1728: PUSH
1729: LD_LOC 20
1733: UNION
1734: PUSH
1735: LD_INT 0
1737: PUSH
1738: EMPTY
1739: LIST
1740: DIFF
1741: ST_TO_ADDR
// Vedlejsi = [ ] ;
1742: LD_ADDR_VAR 0 4
1746: PUSH
1747: EMPTY
1748: ST_TO_ADDR
// for I = Hlavni to 6 do
1749: LD_ADDR_VAR 0 3
1753: PUSH
1754: DOUBLE
1755: LD_VAR 0 2
1759: DEC
1760: ST_TO_ADDR
1761: LD_INT 6
1763: PUSH
1764: FOR_TO
1765: IFFALSE 1788
// Vedlejsi = Vedlejsi union [ vytvor_rusaka ] ;
1767: LD_ADDR_VAR 0 4
1771: PUSH
1772: LD_VAR 0 4
1776: PUSH
1777: CALL 430 0 0
1781: PUSH
1782: EMPTY
1783: LIST
1784: UNION
1785: ST_TO_ADDR
1786: GO 1764
1788: POP
1789: POP
// Vybrano = CharacterSelection ( 1 , 3 , 6 , [ SEL_CHANGE_CLASS , Burlak , SEL_DONT_CHANGE_CLASS , Bystrov , SEL_CHANGE_CLASS , SEL_NOT_HIRED , SEL_CHANGEABLE ] ^ Hlavni ^ Vedlejsi , [ CLASS_SOLDIER , [ CLASS_ENGINEER , 1 ] , CLASS_MECHANIC , CLASS_SCIENTISTIC , [ CLASS_BAZOOKER , 0 , 2 ] ] ) ;
1790: LD_ADDR_LOC 22
1794: PUSH
1795: LD_STRING 1
1797: PPUSH
1798: LD_INT 3
1800: PPUSH
1801: LD_INT 6
1803: PPUSH
1804: LD_INT -5
1806: PUSH
1807: LD_LOC 1
1811: PUSH
1812: LD_INT -6
1814: PUSH
1815: LD_LOC 2
1819: PUSH
1820: LD_INT -5
1822: PUSH
1823: LD_INT -2
1825: PUSH
1826: LD_INT -3
1828: PUSH
1829: EMPTY
1830: LIST
1831: LIST
1832: LIST
1833: LIST
1834: LIST
1835: LIST
1836: LIST
1837: PUSH
1838: LD_VAR 0 2
1842: ADD
1843: PUSH
1844: LD_VAR 0 4
1848: ADD
1849: PPUSH
1850: LD_INT 1
1852: PUSH
1853: LD_INT 2
1855: PUSH
1856: LD_INT 1
1858: PUSH
1859: EMPTY
1860: LIST
1861: LIST
1862: PUSH
1863: LD_INT 3
1865: PUSH
1866: LD_INT 4
1868: PUSH
1869: LD_INT 9
1871: PUSH
1872: LD_INT 0
1874: PUSH
1875: LD_INT 2
1877: PUSH
1878: EMPTY
1879: LIST
1880: LIST
1881: LIST
1882: PUSH
1883: EMPTY
1884: LIST
1885: LIST
1886: LIST
1887: LIST
1888: LIST
1889: PPUSH
1890: CALL_OW 42
1894: ST_TO_ADDR
// SaveCharacters ( [ Burlak ] , Burlak ) ;
1895: LD_LOC 1
1899: PUSH
1900: EMPTY
1901: LIST
1902: PPUSH
1903: LD_STRING Burlak
1905: PPUSH
1906: CALL_OW 38
// SaveCharacters ( [ Bystrov ] , Bystrov ) ;
1910: LD_LOC 2
1914: PUSH
1915: EMPTY
1916: LIST
1917: PPUSH
1918: LD_STRING Bystrov
1920: PPUSH
1921: CALL_OW 38
// if Belkov in Vybrano then
1925: LD_LOC 3
1929: PUSH
1930: LD_LOC 22
1934: IN
1935: IFFALSE 1947
// SaveVariable ( 13 , BelkovLoc ) ;
1937: LD_INT 13
1939: PPUSH
1940: LD_STRING BelkovLoc
1942: PPUSH
1943: CALL_OW 39
// if Belkov then
1947: LD_LOC 3
1951: IFFALSE 1968
// SaveCharacters ( [ Belkov ] , Belkov ) ;
1953: LD_LOC 3
1957: PUSH
1958: EMPTY
1959: LIST
1960: PPUSH
1961: LD_STRING Belkov
1963: PPUSH
1964: CALL_OW 38
// if Gnyevko in Vybrano then
1968: LD_LOC 4
1972: PUSH
1973: LD_LOC 22
1977: IN
1978: IFFALSE 1990
// SaveVariable ( 13 , GnyevkoLoc ) ;
1980: LD_INT 13
1982: PPUSH
1983: LD_STRING GnyevkoLoc
1985: PPUSH
1986: CALL_OW 39
// if Gnyevko then
1990: LD_LOC 4
1994: IFFALSE 2011
// SaveCharacters ( [ Gnyevko ] , Gnyevko ) ;
1996: LD_LOC 4
2000: PUSH
2001: EMPTY
2002: LIST
2003: PPUSH
2004: LD_STRING Gnyevko
2006: PPUSH
2007: CALL_OW 38
// if Kirilenkova in Vybrano then
2011: LD_LOC 5
2015: PUSH
2016: LD_LOC 22
2020: IN
2021: IFFALSE 2033
// SaveVariable ( 13 , KirilenkovaLoc ) ;
2023: LD_INT 13
2025: PPUSH
2026: LD_STRING KirilenkovaLoc
2028: PPUSH
2029: CALL_OW 39
// if Kirilenkova then
2033: LD_LOC 5
2037: IFFALSE 2054
// SaveCharacters ( [ Kirilenkova ] , Kirilenkova ) ;
2039: LD_LOC 5
2043: PUSH
2044: EMPTY
2045: LIST
2046: PPUSH
2047: LD_STRING Kirilenkova
2049: PPUSH
2050: CALL_OW 38
// if Kovalyuk in Vybrano then
2054: LD_LOC 6
2058: PUSH
2059: LD_LOC 22
2063: IN
2064: IFFALSE 2076
// SaveVariable ( 13 , KovalyukLoc ) ;
2066: LD_INT 13
2068: PPUSH
2069: LD_STRING KovalyukLoc
2071: PPUSH
2072: CALL_OW 39
// if Kovalyuk then
2076: LD_LOC 6
2080: IFFALSE 2097
// SaveCharacters ( [ Kovalyuk ] , Kovalyuk ) ;
2082: LD_LOC 6
2086: PUSH
2087: EMPTY
2088: LIST
2089: PPUSH
2090: LD_STRING Kovalyuk
2092: PPUSH
2093: CALL_OW 38
// if Scholtze in Vybrano then
2097: LD_LOC 7
2101: PUSH
2102: LD_LOC 22
2106: IN
2107: IFFALSE 2119
// SaveVariable ( 13 , ScholtzeLoc ) ;
2109: LD_INT 13
2111: PPUSH
2112: LD_STRING ScholtzeLoc
2114: PPUSH
2115: CALL_OW 39
// if Scholtze then
2119: LD_LOC 7
2123: IFFALSE 2140
// SaveCharacters ( [ Scholtze ] , Scholtze ) ;
2125: LD_LOC 7
2129: PUSH
2130: EMPTY
2131: LIST
2132: PPUSH
2133: LD_STRING Scholtze
2135: PPUSH
2136: CALL_OW 38
// if Kuzmov in Vybrano then
2140: LD_LOC 8
2144: PUSH
2145: LD_LOC 22
2149: IN
2150: IFFALSE 2162
// SaveVariable ( 13 , KuzmovLoc ) ;
2152: LD_INT 13
2154: PPUSH
2155: LD_STRING KuzmovLoc
2157: PPUSH
2158: CALL_OW 39
// if Kuzmov then
2162: LD_LOC 8
2166: IFFALSE 2183
// SaveCharacters ( [ Kuzmov ] , Kuzmov ) ;
2168: LD_LOC 8
2172: PUSH
2173: EMPTY
2174: LIST
2175: PPUSH
2176: LD_STRING Kuzmov
2178: PPUSH
2179: CALL_OW 38
// if Karamazov in Vybrano then
2183: LD_LOC 9
2187: PUSH
2188: LD_LOC 22
2192: IN
2193: IFFALSE 2205
// SaveVariable ( 13 , KaramazovLoc ) ;
2195: LD_INT 13
2197: PPUSH
2198: LD_STRING KaramazovLoc
2200: PPUSH
2201: CALL_OW 39
// if Karamazov then
2205: LD_LOC 9
2209: IFFALSE 2226
// SaveCharacters ( [ Karamazov ] , Karamazov ) ;
2211: LD_LOC 9
2215: PUSH
2216: EMPTY
2217: LIST
2218: PPUSH
2219: LD_STRING Karamazov
2221: PPUSH
2222: CALL_OW 38
// if Petrovova in Vybrano then
2226: LD_LOC 10
2230: PUSH
2231: LD_LOC 22
2235: IN
2236: IFFALSE 2248
// SaveVariable ( 13 , PetrovovaLoc ) ;
2238: LD_INT 13
2240: PPUSH
2241: LD_STRING PetrovovaLoc
2243: PPUSH
2244: CALL_OW 39
// if Petrovova then
2248: LD_LOC 10
2252: IFFALSE 2269
// SaveCharacters ( [ Petrovova ] , Petrovova ) ;
2254: LD_LOC 10
2258: PUSH
2259: EMPTY
2260: LIST
2261: PPUSH
2262: LD_STRING Petrovova
2264: PPUSH
2265: CALL_OW 38
// if Gleb in Vybrano then
2269: LD_LOC 11
2273: PUSH
2274: LD_LOC 22
2278: IN
2279: IFFALSE 2291
// SaveVariable ( 13 , GlebLoc ) ;
2281: LD_INT 13
2283: PPUSH
2284: LD_STRING GlebLoc
2286: PPUSH
2287: CALL_OW 39
// if Gleb then
2291: LD_LOC 11
2295: IFFALSE 2312
// SaveCharacters ( [ Gleb ] , Gleb ) ;
2297: LD_LOC 11
2301: PUSH
2302: EMPTY
2303: LIST
2304: PPUSH
2305: LD_STRING Gleb
2307: PPUSH
2308: CALL_OW 38
// if Petrosyan in Vybrano then
2312: LD_LOC 12
2316: PUSH
2317: LD_LOC 22
2321: IN
2322: IFFALSE 2334
// SaveVariable ( 13 , PetrosyanLoc ) ;
2324: LD_INT 13
2326: PPUSH
2327: LD_STRING PetrosyanLoc
2329: PPUSH
2330: CALL_OW 39
// if Petrosyan then
2334: LD_LOC 12
2338: IFFALSE 2355
// SaveCharacters ( [ Petrosyan ] , Petrosyan ) ;
2340: LD_LOC 12
2344: PUSH
2345: EMPTY
2346: LIST
2347: PPUSH
2348: LD_STRING Petrosyan
2350: PPUSH
2351: CALL_OW 38
// if Lipshchin in Vybrano then
2355: LD_LOC 13
2359: PUSH
2360: LD_LOC 22
2364: IN
2365: IFFALSE 2377
// SaveVariable ( 13 , LipshchinLoc ) ;
2367: LD_INT 13
2369: PPUSH
2370: LD_STRING LipshchinLoc
2372: PPUSH
2373: CALL_OW 39
// if Lipshchin then
2377: LD_LOC 13
2381: IFFALSE 2398
// SaveCharacters ( [ Lipshchin ] , Lipshchin ) ;
2383: LD_LOC 13
2387: PUSH
2388: EMPTY
2389: LIST
2390: PPUSH
2391: LD_STRING Lipshchin
2393: PPUSH
2394: CALL_OW 38
// if Titov in Vybrano then
2398: LD_LOC 14
2402: PUSH
2403: LD_LOC 22
2407: IN
2408: IFFALSE 2420
// SaveVariable ( 13 , TitovLoc ) ;
2410: LD_INT 13
2412: PPUSH
2413: LD_STRING TitovLoc
2415: PPUSH
2416: CALL_OW 39
// if Titov then
2420: LD_LOC 14
2424: IFFALSE 2441
// SaveCharacters ( [ Titov ] , Titov ) ;
2426: LD_LOC 14
2430: PUSH
2431: EMPTY
2432: LIST
2433: PPUSH
2434: LD_STRING Titov
2436: PPUSH
2437: CALL_OW 38
// if Dolgov in Vybrano then
2441: LD_LOC 15
2445: PUSH
2446: LD_LOC 22
2450: IN
2451: IFFALSE 2463
// SaveVariable ( 13 , DolgovLoc ) ;
2453: LD_INT 13
2455: PPUSH
2456: LD_STRING DolgovLoc
2458: PPUSH
2459: CALL_OW 39
// if Dolgov then
2463: LD_LOC 15
2467: IFFALSE 2484
// SaveCharacters ( [ Dolgov ] , Dolgov ) ;
2469: LD_LOC 15
2473: PUSH
2474: EMPTY
2475: LIST
2476: PPUSH
2477: LD_STRING Dolgov
2479: PPUSH
2480: CALL_OW 38
// if Xavier in Vybrano then
2484: LD_LOC 16
2488: PUSH
2489: LD_LOC 22
2493: IN
2494: IFFALSE 2506
// SaveVariable ( 13 , XavierLoc ) ;
2496: LD_INT 13
2498: PPUSH
2499: LD_STRING XavierLoc
2501: PPUSH
2502: CALL_OW 39
// if Xavier then
2506: LD_LOC 16
2510: IFFALSE 2527
// SaveCharacters ( [ Xavier ] , Xavier ) ;
2512: LD_LOC 16
2516: PUSH
2517: EMPTY
2518: LIST
2519: PPUSH
2520: LD_STRING Xavier
2522: PPUSH
2523: CALL_OW 38
// if Oblukov in Vybrano then
2527: LD_LOC 17
2531: PUSH
2532: LD_LOC 22
2536: IN
2537: IFFALSE 2549
// SaveVariable ( 13 , OblukovLoc ) ;
2539: LD_INT 13
2541: PPUSH
2542: LD_STRING OblukovLoc
2544: PPUSH
2545: CALL_OW 39
// if Oblukov then
2549: LD_LOC 17
2553: IFFALSE 2570
// SaveCharacters ( [ Oblukov ] , Oblukov ) ;
2555: LD_LOC 17
2559: PUSH
2560: EMPTY
2561: LIST
2562: PPUSH
2563: LD_STRING Oblukov
2565: PPUSH
2566: CALL_OW 38
// if Kozlov in Vybrano then
2570: LD_LOC 18
2574: PUSH
2575: LD_LOC 22
2579: IN
2580: IFFALSE 2592
// SaveVariable ( 13 , KozlovLoc ) ;
2582: LD_INT 13
2584: PPUSH
2585: LD_STRING KozlovLoc
2587: PPUSH
2588: CALL_OW 39
// if Kozlov then
2592: LD_LOC 18
2596: IFFALSE 2613
// SaveCharacters ( [ Kozlov ] , Kozlov ) ;
2598: LD_LOC 18
2602: PUSH
2603: EMPTY
2604: LIST
2605: PPUSH
2606: LD_STRING Kozlov
2608: PPUSH
2609: CALL_OW 38
// if Kapitsova in Vybrano then
2613: LD_LOC 19
2617: PUSH
2618: LD_LOC 22
2622: IN
2623: IFFALSE 2635
// SaveVariable ( 13 , KapitsovaLoc ) ;
2625: LD_INT 13
2627: PPUSH
2628: LD_STRING KapitsovaLoc
2630: PPUSH
2631: CALL_OW 39
// if Kapitsova then
2635: LD_LOC 19
2639: IFFALSE 2656
// SaveCharacters ( [ Kapitsova ] , Kapitsova ) ;
2641: LD_LOC 19
2645: PUSH
2646: EMPTY
2647: LIST
2648: PPUSH
2649: LD_STRING Kapitsova
2651: PPUSH
2652: CALL_OW 38
// Vedlejsi = Vybrano diff [ Burlak , Bystrov , Belkov , Gnyevko , Kirilenkova , Kovalyuk , Scholtze , Kuzmov , Karamazov , Petrovova , Gleb , Petrosyan , Lipshchin , Titov , Dolgov , Xavier , Oblukov , Kozlov , Kapitsova ] ;
2656: LD_ADDR_VAR 0 4
2660: PUSH
2661: LD_LOC 22
2665: PUSH
2666: LD_LOC 1
2670: PUSH
2671: LD_LOC 2
2675: PUSH
2676: LD_LOC 3
2680: PUSH
2681: LD_LOC 4
2685: PUSH
2686: LD_LOC 5
2690: PUSH
2691: LD_LOC 6
2695: PUSH
2696: LD_LOC 7
2700: PUSH
2701: LD_LOC 8
2705: PUSH
2706: LD_LOC 9
2710: PUSH
2711: LD_LOC 10
2715: PUSH
2716: LD_LOC 11
2720: PUSH
2721: LD_LOC 12
2725: PUSH
2726: LD_LOC 13
2730: PUSH
2731: LD_LOC 14
2735: PUSH
2736: LD_LOC 15
2740: PUSH
2741: LD_LOC 16
2745: PUSH
2746: LD_LOC 17
2750: PUSH
2751: LD_LOC 18
2755: PUSH
2756: LD_LOC 19
2760: PUSH
2761: EMPTY
2762: LIST
2763: LIST
2764: LIST
2765: LIST
2766: LIST
2767: LIST
2768: LIST
2769: LIST
2770: LIST
2771: LIST
2772: LIST
2773: LIST
2774: LIST
2775: LIST
2776: LIST
2777: LIST
2778: LIST
2779: LIST
2780: LIST
2781: DIFF
2782: ST_TO_ADDR
// if Vedlejsi then
2783: LD_VAR 0 4
2787: IFFALSE 2801
// SaveCharacters ( Vedlejsi , Others_Ru13 ) ;
2789: LD_VAR 0 4
2793: PPUSH
2794: LD_STRING Others_Ru13
2796: PPUSH
2797: CALL_OW 38
// Survivors4 = Survivors4 diff Vybrano ;
2801: LD_ADDR_LOC 20
2805: PUSH
2806: LD_LOC 20
2810: PUSH
2811: LD_LOC 22
2815: DIFF
2816: ST_TO_ADDR
// SaveCharacters ( Survivors4 , Survivors4 ) ;
2817: LD_LOC 20
2821: PPUSH
2822: LD_STRING Survivors4
2824: PPUSH
2825: CALL_OW 38
// Wait ( 0 0$2 ) ;
2829: LD_INT 70
2831: PPUSH
2832: CALL_OW 67
// InGameOff ;
2836: CALL_OW 9
// end ;
2840: LD_VAR 0 1
2844: RET
// function zakladna ; var Bluekher , Spec , Tmp , Base ; begin
2845: LD_INT 0
2847: PPUSH
2848: PPUSH
2849: PPUSH
2850: PPUSH
2851: PPUSH
// Bluekher = LoadVariable ( Bluekher , [ ] ) ;
2852: LD_ADDR_VAR 0 2
2856: PUSH
2857: LD_STRING Bluekher
2859: PPUSH
2860: EMPTY
2861: PPUSH
2862: CALL_OW 30
2866: ST_TO_ADDR
// SetResourceVisibility ( 20 , 34 , 3 ) ;
2867: LD_INT 20
2869: PPUSH
2870: LD_INT 34
2872: PPUSH
2873: LD_INT 3
2875: PPUSH
2876: CALL_OW 441
// SetResourceVisibility ( 14 , 23 , 3 ) ;
2880: LD_INT 14
2882: PPUSH
2883: LD_INT 23
2885: PPUSH
2886: LD_INT 3
2888: PPUSH
2889: CALL_OW 441
// if not Bluekher then
2893: LD_VAR 0 2
2897: NOT
2898: IFFALSE 3082
// Bluekher = [ [ 20 , 34 , 5 , B_SIBERITE_MINE , 5 , NATION_RUSSIAN , 0 , 0 ] , [ 23 , 27 , 1 , B_DEPOT , 5 , NATION_RUSSIAN , 0 , 0 ] , [ 14 , 23 , 0 , B_OIL_MINE , 5 , NATION_RUSSIAN , 0 , 0 ] , [ 36 , 28 , 2 , B_LAB_FULL , 5 , NATION_RUSSIAN , B_LAB_SPACETIME , B_LAB_SIBERIUM ] , [ 49 , 37 , 4 , B_WORKSHOP , 5 , NATION_RUSSIAN , 0 , 0 ] ] ;
2900: LD_ADDR_VAR 0 2
2904: PUSH
2905: LD_INT 20
2907: PUSH
2908: LD_INT 34
2910: PUSH
2911: LD_INT 5
2913: PUSH
2914: LD_INT 30
2916: PUSH
2917: LD_INT 5
2919: PUSH
2920: LD_INT 3
2922: PUSH
2923: LD_INT 0
2925: PUSH
2926: LD_INT 0
2928: PUSH
2929: EMPTY
2930: LIST
2931: LIST
2932: LIST
2933: LIST
2934: LIST
2935: LIST
2936: LIST
2937: LIST
2938: PUSH
2939: LD_INT 23
2941: PUSH
2942: LD_INT 27
2944: PUSH
2945: LD_INT 1
2947: PUSH
2948: LD_INT 0
2950: PUSH
2951: LD_INT 5
2953: PUSH
2954: LD_INT 3
2956: PUSH
2957: LD_INT 0
2959: PUSH
2960: LD_INT 0
2962: PUSH
2963: EMPTY
2964: LIST
2965: LIST
2966: LIST
2967: LIST
2968: LIST
2969: LIST
2970: LIST
2971: LIST
2972: PUSH
2973: LD_INT 14
2975: PUSH
2976: LD_INT 23
2978: PUSH
2979: LD_INT 0
2981: PUSH
2982: LD_INT 29
2984: PUSH
2985: LD_INT 5
2987: PUSH
2988: LD_INT 3
2990: PUSH
2991: LD_INT 0
2993: PUSH
2994: LD_INT 0
2996: PUSH
2997: EMPTY
2998: LIST
2999: LIST
3000: LIST
3001: LIST
3002: LIST
3003: LIST
3004: LIST
3005: LIST
3006: PUSH
3007: LD_INT 36
3009: PUSH
3010: LD_INT 28
3012: PUSH
3013: LD_INT 2
3015: PUSH
3016: LD_INT 8
3018: PUSH
3019: LD_INT 5
3021: PUSH
3022: LD_INT 3
3024: PUSH
3025: LD_INT 14
3027: PUSH
3028: LD_INT 11
3030: PUSH
3031: EMPTY
3032: LIST
3033: LIST
3034: LIST
3035: LIST
3036: LIST
3037: LIST
3038: LIST
3039: LIST
3040: PUSH
3041: LD_INT 49
3043: PUSH
3044: LD_INT 37
3046: PUSH
3047: LD_INT 4
3049: PUSH
3050: LD_INT 2
3052: PUSH
3053: LD_INT 5
3055: PUSH
3056: LD_INT 3
3058: PUSH
3059: LD_INT 0
3061: PUSH
3062: LD_INT 0
3064: PUSH
3065: EMPTY
3066: LIST
3067: LIST
3068: LIST
3069: LIST
3070: LIST
3071: LIST
3072: LIST
3073: LIST
3074: PUSH
3075: EMPTY
3076: LIST
3077: LIST
3078: LIST
3079: LIST
3080: LIST
3081: ST_TO_ADDR
// UC_Side = 3 ;
3082: LD_ADDR_OWVAR 20
3086: PUSH
3087: LD_INT 3
3089: ST_TO_ADDR
// Result = [ ] ;
3090: LD_ADDR_VAR 0 1
3094: PUSH
3095: EMPTY
3096: ST_TO_ADDR
// for Spec in Bluekher do
3097: LD_ADDR_VAR 0 3
3101: PUSH
3102: LD_VAR 0 2
3106: PUSH
3107: FOR_IN
3108: IFFALSE 3318
// begin BC_Type = Spec [ 4 ] ;
3110: LD_ADDR_OWVAR 42
3114: PUSH
3115: LD_VAR 0 3
3119: PUSH
3120: LD_INT 4
3122: ARRAY
3123: ST_TO_ADDR
// BC_Level = Spec [ 5 ] ;
3124: LD_ADDR_OWVAR 43
3128: PUSH
3129: LD_VAR 0 3
3133: PUSH
3134: LD_INT 5
3136: ARRAY
3137: ST_TO_ADDR
// UC_Nation = Spec [ 6 ] ;
3138: LD_ADDR_OWVAR 21
3142: PUSH
3143: LD_VAR 0 3
3147: PUSH
3148: LD_INT 6
3150: ARRAY
3151: ST_TO_ADDR
// if BC_Type in [ B_LAB , B_LAB_HALF , B_LAB_FULL ] then
3152: LD_OWVAR 42
3156: PUSH
3157: LD_INT 6
3159: PUSH
3160: LD_INT 7
3162: PUSH
3163: LD_INT 8
3165: PUSH
3166: EMPTY
3167: LIST
3168: LIST
3169: LIST
3170: IN
3171: IFFALSE 3203
// begin BC_Kind1 = Spec [ 7 ] ;
3173: LD_ADDR_OWVAR 44
3177: PUSH
3178: LD_VAR 0 3
3182: PUSH
3183: LD_INT 7
3185: ARRAY
3186: ST_TO_ADDR
// BC_Kind2 = Spec [ 8 ] ;
3187: LD_ADDR_OWVAR 45
3191: PUSH
3192: LD_VAR 0 3
3196: PUSH
3197: LD_INT 8
3199: ARRAY
3200: ST_TO_ADDR
// end else
3201: GO 3219
// begin BC_Kind1 = 0 ;
3203: LD_ADDR_OWVAR 44
3207: PUSH
3208: LD_INT 0
3210: ST_TO_ADDR
// BC_Kind2 = 0 ;
3211: LD_ADDR_OWVAR 45
3215: PUSH
3216: LD_INT 0
3218: ST_TO_ADDR
// end ; Tmp = CreateAndPlaceBuildingXYD ( Spec [ 1 ] , Spec [ 2 ] , Spec [ 3 ] ) ;
3219: LD_ADDR_VAR 0 4
3223: PUSH
3224: LD_VAR 0 3
3228: PUSH
3229: LD_INT 1
3231: ARRAY
3232: PPUSH
3233: LD_VAR 0 3
3237: PUSH
3238: LD_INT 2
3240: ARRAY
3241: PPUSH
3242: LD_VAR 0 3
3246: PUSH
3247: LD_INT 3
3249: ARRAY
3250: PPUSH
3251: CALL_OW 47
3255: ST_TO_ADDR
// if not Tmp then
3256: LD_VAR 0 4
3260: NOT
3261: IFFALSE 3265
// continue ;
3263: GO 3107
// if BC_Type in [ B_TURRET , B_BUNKER ] then
3265: LD_OWVAR 42
3269: PUSH
3270: LD_INT 33
3272: PUSH
3273: LD_INT 32
3275: PUSH
3276: EMPTY
3277: LIST
3278: LIST
3279: IN
3280: IFFALSE 3300
// PlaceWeaponTurret ( Tmp , Spec [ 7 ] ) ;
3282: LD_VAR 0 4
3286: PPUSH
3287: LD_VAR 0 3
3291: PUSH
3292: LD_INT 7
3294: ARRAY
3295: PPUSH
3296: CALL_OW 431
// Result = Result ^ Tmp ;
3300: LD_ADDR_VAR 0 1
3304: PUSH
3305: LD_VAR 0 1
3309: PUSH
3310: LD_VAR 0 4
3314: ADD
3315: ST_TO_ADDR
// end ;
3316: GO 3107
3318: POP
3319: POP
// Tmp = UnitFilter ( Result , [ [ F_BTYPE , B_DEPOT ] ] ) union UnitFilter ( Result , [ [ F_BTYPE , B_WAREHOUSE ] ] ) ;
3320: LD_ADDR_VAR 0 4
3324: PUSH
3325: LD_VAR 0 1
3329: PPUSH
3330: LD_INT 30
3332: PUSH
3333: LD_INT 0
3335: PUSH
3336: EMPTY
3337: LIST
3338: LIST
3339: PUSH
3340: EMPTY
3341: LIST
3342: PPUSH
3343: CALL_OW 72
3347: PUSH
3348: LD_VAR 0 1
3352: PPUSH
3353: LD_INT 30
3355: PUSH
3356: LD_INT 1
3358: PUSH
3359: EMPTY
3360: LIST
3361: LIST
3362: PUSH
3363: EMPTY
3364: LIST
3365: PPUSH
3366: CALL_OW 72
3370: UNION
3371: ST_TO_ADDR
// SetBName ( Tmp , bluekher ) ;
3372: LD_VAR 0 4
3376: PPUSH
3377: LD_STRING bluekher
3379: PPUSH
3380: CALL_OW 500
// for Spec in Tmp do
3384: LD_ADDR_VAR 0 3
3388: PUSH
3389: LD_VAR 0 4
3393: PUSH
3394: FOR_IN
3395: IFFALSE 3444
// begin Base = GetBase ( Spec ) ;
3397: LD_ADDR_VAR 0 5
3401: PUSH
3402: LD_VAR 0 3
3406: PPUSH
3407: CALL_OW 274
3411: ST_TO_ADDR
// AddResourceType ( Base , MAT_CANS , 250 ) ;
3412: LD_VAR 0 5
3416: PPUSH
3417: LD_INT 1
3419: PPUSH
3420: LD_INT 250
3422: PPUSH
3423: CALL_OW 276
// AddResourceType ( Base , MAT_OIL , 150 ) ;
3427: LD_VAR 0 5
3431: PPUSH
3432: LD_INT 2
3434: PPUSH
3435: LD_INT 150
3437: PPUSH
3438: CALL_OW 276
// end ;
3442: GO 3394
3444: POP
3445: POP
// end ;
3446: LD_VAR 0 1
3450: RET
// function krovi ; var Postava , Budova ; begin
3451: LD_INT 0
3453: PPUSH
3454: PPUSH
3455: PPUSH
// Budova = najdi_lab ;
3456: LD_ADDR_VAR 0 3
3460: PUSH
3461: CALL 3792 0 0
3465: ST_TO_ADDR
// if Budova then
3466: LD_VAR 0 3
3470: IFFALSE 3535
// begin Postava = vytvor_postavu ( CLASS_SCIENTISTIC ) ;
3472: LD_ADDR_VAR 0 2
3476: PUSH
3477: LD_INT 4
3479: PPUSH
3480: CALL 3647 0 1
3484: ST_TO_ADDR
// PlaceHumanInUnit ( Postava , Budova ) ;
3485: LD_VAR 0 2
3489: PPUSH
3490: LD_VAR 0 3
3494: PPUSH
3495: CALL_OW 52
// AddComResearch ( Budova , TECH_TECH1 ) ;
3499: LD_VAR 0 3
3503: PPUSH
3504: LD_INT 48
3506: PPUSH
3507: CALL_OW 184
// AddComResearch ( Budova , TECH_TECH2 ) ;
3511: LD_VAR 0 3
3515: PPUSH
3516: LD_INT 49
3518: PPUSH
3519: CALL_OW 184
// AddComResearch ( Budova , TECH_TECH3 ) ;
3523: LD_VAR 0 3
3527: PPUSH
3528: LD_INT 50
3530: PPUSH
3531: CALL_OW 184
// end ; Depot = najdi_depot ;
3535: LD_ADDR_LOC 24
3539: PUSH
3540: CALL 3900 0 0
3544: ST_TO_ADDR
// if Depot then
3545: LD_LOC 24
3549: IFFALSE 3578
// begin Inzenyr = vytvor_postavu ( CLASS_ENGINEER ) ;
3551: LD_ADDR_LOC 23
3555: PUSH
3556: LD_INT 2
3558: PPUSH
3559: CALL 3647 0 1
3563: ST_TO_ADDR
// PlaceHumanInUnit ( Inzenyr , Depot ) ;
3564: LD_LOC 23
3568: PPUSH
3569: LD_LOC 24
3573: PPUSH
3574: CALL_OW 52
// end ; Budova = najdi_tovarnu ;
3578: LD_ADDR_VAR 0 3
3582: PUSH
3583: CALL 3997 0 0
3587: ST_TO_ADDR
// if Budova then
3588: LD_VAR 0 3
3592: IFFALSE 3642
// begin Postava = vytvor_postavu ( CLASS_MECHANIC ) ;
3594: LD_ADDR_VAR 0 2
3598: PUSH
3599: LD_INT 3
3601: PPUSH
3602: CALL 3647 0 1
3606: ST_TO_ADDR
// PlaceHumanInUnit ( Postava , Budova ) ;
3607: LD_VAR 0 2
3611: PPUSH
3612: LD_VAR 0 3
3616: PPUSH
3617: CALL_OW 52
// AddComConstruct ( Budova , RU_MEDIUM_WHEELED , ENGINE_COMBUSTION , CONTROL_MANUAL , RU_HEAVY_MACHINE_GUN ) ;
3621: LD_VAR 0 3
3625: PPUSH
3626: LD_INT 21
3628: PPUSH
3629: LD_INT 1
3631: PPUSH
3632: LD_INT 1
3634: PPUSH
3635: LD_INT 42
3637: PPUSH
3638: CALL_OW 185
// end ; end ;
3642: LD_VAR 0 1
3646: RET
// function vytvor_postavu ( Cls ) ; begin
3647: LD_INT 0
3649: PPUSH
// HC_Name =  ;
3650: LD_ADDR_OWVAR 26
3654: PUSH
3655: LD_STRING 
3657: ST_TO_ADDR
// HC_Sex = Rand ( 1 , 2 ) ;
3658: LD_ADDR_OWVAR 27
3662: PUSH
3663: LD_INT 1
3665: PPUSH
3666: LD_INT 2
3668: PPUSH
3669: CALL_OW 12
3673: ST_TO_ADDR
// HC_Class = Cls ;
3674: LD_ADDR_OWVAR 28
3678: PUSH
3679: LD_VAR 0 1
3683: ST_TO_ADDR
// PrepareClassSkills ( Cls , 6 ) ;
3684: LD_VAR 0 1
3688: PPUSH
3689: LD_INT 6
3691: PPUSH
3692: CALL_OW 374
// Result = CreateHuman ;
3696: LD_ADDR_VAR 0 2
3700: PUSH
3701: CALL_OW 44
3705: ST_TO_ADDR
// end ;
3706: LD_VAR 0 2
3710: RET
// function najdi_dum ( Typ ) ; begin
3711: LD_INT 0
3713: PPUSH
// Result = FilterAllUnits ( [ [ F_PLACED ] , [ F_TYPE , UNIT_BUILDING ] , [ F_BTYPE , Typ ] ] ) ;
3714: LD_ADDR_VAR 0 2
3718: PUSH
3719: LD_INT 52
3721: PUSH
3722: EMPTY
3723: LIST
3724: PUSH
3725: LD_INT 21
3727: PUSH
3728: LD_INT 3
3730: PUSH
3731: EMPTY
3732: LIST
3733: LIST
3734: PUSH
3735: LD_INT 30
3737: PUSH
3738: LD_VAR 0 1
3742: PUSH
3743: EMPTY
3744: LIST
3745: LIST
3746: PUSH
3747: EMPTY
3748: LIST
3749: LIST
3750: LIST
3751: PPUSH
3752: CALL_OW 69
3756: ST_TO_ADDR
// if Result then
3757: LD_VAR 0 2
3761: IFFALSE 3779
// Result = Result [ 1 ] else
3763: LD_ADDR_VAR 0 2
3767: PUSH
3768: LD_VAR 0 2
3772: PUSH
3773: LD_INT 1
3775: ARRAY
3776: ST_TO_ADDR
3777: GO 3787
// Result = 0 ;
3779: LD_ADDR_VAR 0 2
3783: PUSH
3784: LD_INT 0
3786: ST_TO_ADDR
// end ;
3787: LD_VAR 0 2
3791: RET
// function najdi_lab ; begin
3792: LD_INT 0
3794: PPUSH
// Result = FilterAllUnits ( [ [ F_PLACED ] , [ F_TYPE , UNIT_BUILDING ] , [ F_OR , [ F_BTYPE , B_LAB ] , [ F_BTYPE , B_LAB_HALF ] , [ F_BTYPE , B_LAB_FULL ] ] ] ) ;
3795: LD_ADDR_VAR 0 1
3799: PUSH
3800: LD_INT 52
3802: PUSH
3803: EMPTY
3804: LIST
3805: PUSH
3806: LD_INT 21
3808: PUSH
3809: LD_INT 3
3811: PUSH
3812: EMPTY
3813: LIST
3814: LIST
3815: PUSH
3816: LD_INT 2
3818: PUSH
3819: LD_INT 30
3821: PUSH
3822: LD_INT 6
3824: PUSH
3825: EMPTY
3826: LIST
3827: LIST
3828: PUSH
3829: LD_INT 30
3831: PUSH
3832: LD_INT 7
3834: PUSH
3835: EMPTY
3836: LIST
3837: LIST
3838: PUSH
3839: LD_INT 30
3841: PUSH
3842: LD_INT 8
3844: PUSH
3845: EMPTY
3846: LIST
3847: LIST
3848: PUSH
3849: EMPTY
3850: LIST
3851: LIST
3852: LIST
3853: LIST
3854: PUSH
3855: EMPTY
3856: LIST
3857: LIST
3858: LIST
3859: PPUSH
3860: CALL_OW 69
3864: ST_TO_ADDR
// if Result then
3865: LD_VAR 0 1
3869: IFFALSE 3887
// Result = Result [ 1 ] else
3871: LD_ADDR_VAR 0 1
3875: PUSH
3876: LD_VAR 0 1
3880: PUSH
3881: LD_INT 1
3883: ARRAY
3884: ST_TO_ADDR
3885: GO 3895
// Result = 0 ;
3887: LD_ADDR_VAR 0 1
3891: PUSH
3892: LD_INT 0
3894: ST_TO_ADDR
// end ;
3895: LD_VAR 0 1
3899: RET
// function najdi_depot ; begin
3900: LD_INT 0
3902: PPUSH
// Result = FilterAllUnits ( [ [ F_PLACED ] , [ F_TYPE , UNIT_BUILDING ] , [ F_OR , [ F_BTYPE , B_WAREHOUSE ] , [ F_BTYPE , B_DEPOT ] ] ] ) ;
3903: LD_ADDR_VAR 0 1
3907: PUSH
3908: LD_INT 52
3910: PUSH
3911: EMPTY
3912: LIST
3913: PUSH
3914: LD_INT 21
3916: PUSH
3917: LD_INT 3
3919: PUSH
3920: EMPTY
3921: LIST
3922: LIST
3923: PUSH
3924: LD_INT 2
3926: PUSH
3927: LD_INT 30
3929: PUSH
3930: LD_INT 1
3932: PUSH
3933: EMPTY
3934: LIST
3935: LIST
3936: PUSH
3937: LD_INT 30
3939: PUSH
3940: LD_INT 0
3942: PUSH
3943: EMPTY
3944: LIST
3945: LIST
3946: PUSH
3947: EMPTY
3948: LIST
3949: LIST
3950: LIST
3951: PUSH
3952: EMPTY
3953: LIST
3954: LIST
3955: LIST
3956: PPUSH
3957: CALL_OW 69
3961: ST_TO_ADDR
// if Result then
3962: LD_VAR 0 1
3966: IFFALSE 3984
// Result = Result [ 1 ] else
3968: LD_ADDR_VAR 0 1
3972: PUSH
3973: LD_VAR 0 1
3977: PUSH
3978: LD_INT 1
3980: ARRAY
3981: ST_TO_ADDR
3982: GO 3992
// Result = 0 ;
3984: LD_ADDR_VAR 0 1
3988: PUSH
3989: LD_INT 0
3991: ST_TO_ADDR
// end ;
3992: LD_VAR 0 1
3996: RET
// function najdi_tovarnu ; begin
3997: LD_INT 0
3999: PPUSH
// Result = FilterAllUnits ( [ [ F_PLACED ] , [ F_TYPE , UNIT_BUILDING ] , [ F_OR , [ F_BTYPE , B_WORKSHOP ] , [ F_BTYPE , B_FACTORY ] ] ] ) ;
4000: LD_ADDR_VAR 0 1
4004: PUSH
4005: LD_INT 52
4007: PUSH
4008: EMPTY
4009: LIST
4010: PUSH
4011: LD_INT 21
4013: PUSH
4014: LD_INT 3
4016: PUSH
4017: EMPTY
4018: LIST
4019: LIST
4020: PUSH
4021: LD_INT 2
4023: PUSH
4024: LD_INT 30
4026: PUSH
4027: LD_INT 2
4029: PUSH
4030: EMPTY
4031: LIST
4032: LIST
4033: PUSH
4034: LD_INT 30
4036: PUSH
4037: LD_INT 3
4039: PUSH
4040: EMPTY
4041: LIST
4042: LIST
4043: PUSH
4044: EMPTY
4045: LIST
4046: LIST
4047: LIST
4048: PUSH
4049: EMPTY
4050: LIST
4051: LIST
4052: LIST
4053: PPUSH
4054: CALL_OW 69
4058: ST_TO_ADDR
// if Result then
4059: LD_VAR 0 1
4063: IFFALSE 4081
// Result = Result [ 1 ] else
4065: LD_ADDR_VAR 0 1
4069: PUSH
4070: LD_VAR 0 1
4074: PUSH
4075: LD_INT 1
4077: ARRAY
4078: ST_TO_ADDR
4079: GO 4089
// Result = 0 ;
4081: LD_ADDR_VAR 0 1
4085: PUSH
4086: LD_INT 0
4088: ST_TO_ADDR
// end ;
4089: LD_VAR 0 1
4093: RET
// function najdi_budovu ; begin
4094: LD_INT 0
4096: PPUSH
// Result = najdi_dum ( B_LAB_FULL ) ;
4097: LD_ADDR_VAR 0 1
4101: PUSH
4102: LD_INT 8
4104: PPUSH
4105: CALL 3711 0 1
4109: ST_TO_ADDR
// if Result then
4110: LD_VAR 0 1
4114: IFFALSE 4118
// exit ;
4116: GO 4262
// Result = najdi_dum ( B_LAB_HALF ) ;
4118: LD_ADDR_VAR 0 1
4122: PUSH
4123: LD_INT 7
4125: PPUSH
4126: CALL 3711 0 1
4130: ST_TO_ADDR
// if Result then
4131: LD_VAR 0 1
4135: IFFALSE 4139
// exit ;
4137: GO 4262
// Result = najdi_dum ( B_LAB ) ;
4139: LD_ADDR_VAR 0 1
4143: PUSH
4144: LD_INT 6
4146: PPUSH
4147: CALL 3711 0 1
4151: ST_TO_ADDR
// if Result then
4152: LD_VAR 0 1
4156: IFFALSE 4160
// exit ;
4158: GO 4262
// Result = najdi_dum ( B_DEPOT ) ;
4160: LD_ADDR_VAR 0 1
4164: PUSH
4165: LD_INT 0
4167: PPUSH
4168: CALL 3711 0 1
4172: ST_TO_ADDR
// if Result then
4173: LD_VAR 0 1
4177: IFFALSE 4181
// exit ;
4179: GO 4262
// Result = najdi_dum ( B_WAREHOUSE ) ;
4181: LD_ADDR_VAR 0 1
4185: PUSH
4186: LD_INT 1
4188: PPUSH
4189: CALL 3711 0 1
4193: ST_TO_ADDR
// if Result then
4194: LD_VAR 0 1
4198: IFFALSE 4202
// exit ;
4200: GO 4262
// Result = FilterAllUnits ( [ [ F_PLACED ] , [ F_TYPE , UNIT_BUILDING ] ] ) ;
4202: LD_ADDR_VAR 0 1
4206: PUSH
4207: LD_INT 52
4209: PUSH
4210: EMPTY
4211: LIST
4212: PUSH
4213: LD_INT 21
4215: PUSH
4216: LD_INT 3
4218: PUSH
4219: EMPTY
4220: LIST
4221: LIST
4222: PUSH
4223: EMPTY
4224: LIST
4225: LIST
4226: PPUSH
4227: CALL_OW 69
4231: ST_TO_ADDR
// if Result then
4232: LD_VAR 0 1
4236: IFFALSE 4254
// Result = Result [ 1 ] else
4238: LD_ADDR_VAR 0 1
4242: PUSH
4243: LD_VAR 0 1
4247: PUSH
4248: LD_INT 1
4250: ARRAY
4251: ST_TO_ADDR
4252: GO 4262
// Result = 0 ;
4254: LD_ADDR_VAR 0 1
4258: PUSH
4259: LD_INT 0
4261: ST_TO_ADDR
// end ;
4262: LD_VAR 0 1
4266: RET
// function create_crates ; begin
4267: LD_INT 0
4269: PPUSH
// if not Depot then
4270: LD_LOC 24
4274: NOT
4275: IFFALSE 4279
// exit ;
4277: GO 4320
// CreateCratesXYR ( 5 , GetX ( Depot ) + 3 , GetY ( Depot ) - 3 , 20 , true ) ;
4279: LD_INT 5
4281: PPUSH
4282: LD_LOC 24
4286: PPUSH
4287: CALL_OW 250
4291: PUSH
4292: LD_INT 3
4294: PLUS
4295: PPUSH
4296: LD_LOC 24
4300: PPUSH
4301: CALL_OW 251
4305: PUSH
4306: LD_INT 3
4308: MINUS
4309: PPUSH
4310: LD_INT 20
4312: PPUSH
4313: LD_INT 1
4315: PPUSH
4316: CALL_OW 56
// end ;
4320: LD_VAR 0 1
4324: RET
// function collect_crates ; var Bedny , Delka , I , X , Y ; begin
4325: LD_INT 0
4327: PPUSH
4328: PPUSH
4329: PPUSH
4330: PPUSH
4331: PPUSH
4332: PPUSH
// Bedny = GetListOfCratesInArea ( Celek ) ;
4333: LD_ADDR_VAR 0 2
4337: PUSH
4338: LD_INT 1
4340: PPUSH
4341: CALL_OW 435
4345: ST_TO_ADDR
// if not Bedny then
4346: LD_VAR 0 2
4350: NOT
4351: IFFALSE 4355
// exit ;
4353: GO 4477
// ComExitBuilding ( Inzenyr ) ;
4355: LD_LOC 23
4359: PPUSH
4360: CALL_OW 122
// Delka = Bedny div 2 ;
4364: LD_ADDR_VAR 0 3
4368: PUSH
4369: LD_VAR 0 2
4373: PUSH
4374: LD_INT 2
4376: DIV
4377: ST_TO_ADDR
// for I = 1 to Delka do
4378: LD_ADDR_VAR 0 4
4382: PUSH
4383: DOUBLE
4384: LD_INT 1
4386: DEC
4387: ST_TO_ADDR
4388: LD_VAR 0 3
4392: PUSH
4393: FOR_TO
4394: IFFALSE 4461
// begin X = Bedny [ 2 * I - 1 ] ;
4396: LD_ADDR_VAR 0 5
4400: PUSH
4401: LD_VAR 0 2
4405: PUSH
4406: LD_INT 2
4408: PUSH
4409: LD_VAR 0 4
4413: MUL
4414: PUSH
4415: LD_INT 1
4417: MINUS
4418: ARRAY
4419: ST_TO_ADDR
// Y = Bedny [ 2 * I ] ;
4420: LD_ADDR_VAR 0 6
4424: PUSH
4425: LD_VAR 0 2
4429: PUSH
4430: LD_INT 2
4432: PUSH
4433: LD_VAR 0 4
4437: MUL
4438: ARRAY
4439: ST_TO_ADDR
// AddComCollect ( Inzenyr , X , Y ) ;
4440: LD_LOC 23
4444: PPUSH
4445: LD_VAR 0 5
4449: PPUSH
4450: LD_VAR 0 6
4454: PPUSH
4455: CALL_OW 177
// end ;
4459: GO 4393
4461: POP
4462: POP
// AddComEnterUnit ( Inzenyr , Depot ) ;
4463: LD_LOC 23
4467: PPUSH
4468: LD_LOC 24
4472: PPUSH
4473: CALL_OW 180
// end ;
4477: LD_VAR 0 1
4481: RET
// on VehicleConstructed ( Veh , Fact ) do begin Wait ( 0 0$1 ) ;
4482: LD_INT 35
4484: PPUSH
4485: CALL_OW 67
// ComMoveXY ( Veh , 32 , 6 ) ;
4489: LD_VAR 0 1
4493: PPUSH
4494: LD_INT 32
4496: PPUSH
4497: LD_INT 6
4499: PPUSH
4500: CALL_OW 111
// AddComMoveXY ( Veh , 3 , 3 ) ;
4504: LD_VAR 0 1
4508: PPUSH
4509: LD_INT 3
4511: PPUSH
4512: LD_INT 3
4514: PPUSH
4515: CALL_OW 171
// AddComMoveUnit ( Veh , Fact ) ;
4519: LD_VAR 0 1
4523: PPUSH
4524: LD_VAR 0 2
4528: PPUSH
4529: CALL_OW 172
// AddComMoveXY ( Veh , 32 , 6 ) ;
4533: LD_VAR 0 1
4537: PPUSH
4538: LD_INT 32
4540: PPUSH
4541: LD_INT 6
4543: PPUSH
4544: CALL_OW 171
// end ;
4548: PPOPN 2
4550: END
// starting begin load ;
4551: CALL 146 0 0
// zakladna ;
4555: CALL 2845 0 0
// krovi ;
4559: CALL 3451 0 0
// Intro ;
4563: CALL 576 0 0
// ChangeMap ( %_Cont , %_Cont ) ;
4567: LD_STRING %_Cont
4569: PPUSH
4570: LD_STRING %_Cont
4572: PPUSH
4573: CALL_OW 340
// end ;
4577: END
