// export gnevko , petrovova , dolgov , karamazov , titov , kozlov , kapitsova , richard , alice , kvantovy ; export vsevolod , talin , zachranenaArabka ; var you , zeleny ; var vsevolod , lesnitsky , bunkr_vojak , mvedec , mdelnik ; var zakaz_vybrani , barely , nakladak ; var vedectalk , delniktalk , vojaktalk , bareltalk , wascargo , ranotalk ; var uzsivybralmisi ; var isnextday ; starting begin IngameOn ;
   0: CALL_OW 8
// interface_hidden = true ;
   4: LD_ADDR_OWVAR 54
   8: PUSH
   9: LD_INT 1
  11: ST_TO_ADDR
// RandomizeAll ;
  12: CALL_OW 11
// ResetFog ;
  16: CALL_OW 335
// zakaz_vybrani = true ;
  20: LD_ADDR_LOC 8
  24: PUSH
  25: LD_INT 1
  27: ST_TO_ADDR
// you = 3 ;
  28: LD_ADDR_LOC 1
  32: PUSH
  33: LD_INT 3
  35: ST_TO_ADDR
// zeleny = 7 ;
  36: LD_ADDR_LOC 2
  40: PUSH
  41: LD_INT 7
  43: ST_TO_ADDR
// music_nat = 5 ;
  44: LD_ADDR_OWVAR 71
  48: PUSH
  49: LD_INT 5
  51: ST_TO_ADDR
// music_class = 1 ;
  52: LD_ADDR_OWVAR 72
  56: PUSH
  57: LD_INT 1
  59: ST_TO_ADDR
// vedectalk = false ;
  60: LD_ADDR_LOC 11
  64: PUSH
  65: LD_INT 0
  67: ST_TO_ADDR
// delniktalk = false ;
  68: LD_ADDR_LOC 12
  72: PUSH
  73: LD_INT 0
  75: ST_TO_ADDR
// vojaktalk = false ;
  76: LD_ADDR_LOC 13
  80: PUSH
  81: LD_INT 0
  83: ST_TO_ADDR
// bareltalk = false ;
  84: LD_ADDR_LOC 14
  88: PUSH
  89: LD_INT 0
  91: ST_TO_ADDR
// isnextday = false ;
  92: LD_ADDR_LOC 18
  96: PUSH
  97: LD_INT 0
  99: ST_TO_ADDR
// wascargo = false ;
 100: LD_ADDR_LOC 15
 104: PUSH
 105: LD_INT 0
 107: ST_TO_ADDR
// ranotalk = false ;
 108: LD_ADDR_LOC 16
 112: PUSH
 113: LD_INT 0
 115: ST_TO_ADDR
// uzsivybralmisi = false ;
 116: LD_ADDR_LOC 17
 120: PUSH
 121: LD_INT 0
 123: ST_TO_ADDR
// DisableExclamations ( ) ;
 124: CALL_OW 474
// LoadSave ( ) ;
 128: CALL 4641 0 0
// mvedec = FilterAllUnits ( [ [ f_class , class_scientistic ] , [ f_outside ] ] ) [ 1 ] ;
 132: LD_ADDR_LOC 6
 136: PUSH
 137: LD_INT 25
 139: PUSH
 140: LD_INT 4
 142: PUSH
 143: EMPTY
 144: LIST
 145: LIST
 146: PUSH
 147: LD_INT 56
 149: PUSH
 150: EMPTY
 151: LIST
 152: PUSH
 153: EMPTY
 154: LIST
 155: LIST
 156: PPUSH
 157: CALL_OW 69
 161: PUSH
 162: LD_INT 1
 164: ARRAY
 165: ST_TO_ADDR
// mdelnik = FilterAllUnits ( [ [ f_class , class_engineer ] , [ f_outside ] ] ) [ 1 ] ;
 166: LD_ADDR_LOC 7
 170: PUSH
 171: LD_INT 25
 173: PUSH
 174: LD_INT 2
 176: PUSH
 177: EMPTY
 178: LIST
 179: LIST
 180: PUSH
 181: LD_INT 56
 183: PUSH
 184: EMPTY
 185: LIST
 186: PUSH
 187: EMPTY
 188: LIST
 189: LIST
 190: PPUSH
 191: CALL_OW 69
 195: PUSH
 196: LD_INT 1
 198: ARRAY
 199: ST_TO_ADDR
// SetBName ( depot , lesnitsky ) ;
 200: LD_INT 7
 202: PPUSH
 203: LD_STRING lesnitsky
 205: PPUSH
 206: CALL_OW 500
// SetBLevel ( ( FilterAllUnits ( [ f_type , unit_building ] ) ) , 6 ) ;
 210: LD_INT 21
 212: PUSH
 213: LD_INT 3
 215: PUSH
 216: EMPTY
 217: LIST
 218: LIST
 219: PPUSH
 220: CALL_OW 69
 224: PPUSH
 225: LD_INT 6
 227: PPUSH
 228: CALL_OW 241
// SetWeather ( 1 , 400 , 100 ) ;
 232: LD_INT 1
 234: PPUSH
 235: LD_INT 400
 237: PPUSH
 238: LD_INT 100
 240: PPUSH
 241: CALL_OW 550
// SetFuel ( auto , 15 ) ;
 245: LD_INT 8
 247: PPUSH
 248: LD_INT 15
 250: PPUSH
 251: CALL_OW 240
// uc_side = you ;
 255: LD_ADDR_OWVAR 20
 259: PUSH
 260: LD_LOC 1
 264: ST_TO_ADDR
// SetClass ( vsevolod , 1 ) ;
 265: LD_LOC 3
 269: PPUSH
 270: LD_INT 1
 272: PPUSH
 273: CALL_OW 336
// uc_side = zeleny ;
 277: LD_ADDR_OWVAR 20
 281: PUSH
 282: LD_LOC 2
 286: ST_TO_ADDR
// lesnitsky := NewCharacter ( Lesnitsky ) ;
 287: LD_ADDR_LOC 4
 291: PUSH
 292: LD_STRING Lesnitsky
 294: PPUSH
 295: CALL_OW 25
 299: ST_TO_ADDR
// bunkr_vojak := NewCharacter ( Kiprov ) ;
 300: LD_ADDR_LOC 5
 304: PUSH
 305: LD_STRING Kiprov
 307: PPUSH
 308: CALL_OW 25
 312: ST_TO_ADDR
// PlaceUnitXY ( bunkr_vojak , 66 , 64 , false ) ;
 313: LD_LOC 5
 317: PPUSH
 318: LD_INT 66
 320: PPUSH
 321: LD_INT 64
 323: PPUSH
 324: LD_INT 0
 326: PPUSH
 327: CALL_OW 48
// ComEnterUnit ( bunkr_vojak , bunkr ) ;
 331: LD_LOC 5
 335: PPUSH
 336: LD_INT 9
 338: PPUSH
 339: CALL_OW 120
// PlaceHumanInUnit ( vsevolod , auto ) ;
 343: LD_LOC 3
 347: PPUSH
 348: LD_INT 8
 350: PPUSH
 351: CALL_OW 52
// PlaceHumanInUnit ( lesnitsky , depot ) ;
 355: LD_LOC 4
 359: PPUSH
 360: LD_INT 7
 362: PPUSH
 363: CALL_OW 52
// CenterNowOnXY ( 53 , 73 ) ;
 367: LD_INT 53
 369: PPUSH
 370: LD_INT 73
 372: PPUSH
 373: CALL_OW 86
// prepareGreens ;
 377: CALL 441 0 0
// placeApes ;
 381: CALL 3013 0 0
// AddComTurnXY ( mvedec , 74 , 58 ) ;
 385: LD_LOC 6
 389: PPUSH
 390: LD_INT 74
 392: PPUSH
 393: LD_INT 58
 395: PPUSH
 396: CALL_OW 178
// RemoveUnit ( mdelnik ) ;
 400: LD_LOC 7
 404: PPUSH
 405: CALL_OW 64
// PlaceUnitXY ( mdelnik , 59 , 29 , false ) ;
 409: LD_LOC 7
 413: PPUSH
 414: LD_INT 59
 416: PPUSH
 417: LD_INT 29
 419: PPUSH
 420: LD_INT 0
 422: PPUSH
 423: CALL_OW 48
// ComHold ( mdelnik ) ;
 427: LD_LOC 7
 431: PPUSH
 432: CALL_OW 140
// Intro ( ) ;
 436: CALL 678 0 0
// end ;
 440: END
// function prepareGreens ; var b , typ , un , i ; begin
 441: LD_INT 0
 443: PPUSH
 444: PPUSH
 445: PPUSH
 446: PPUSH
 447: PPUSH
// for b in FilterAllUnits ( [ f_btype , b_bunker ] ) do
 448: LD_ADDR_VAR 0 2
 452: PUSH
 453: LD_INT 30
 455: PUSH
 456: LD_INT 32
 458: PUSH
 459: EMPTY
 460: LIST
 461: LIST
 462: PPUSH
 463: CALL_OW 69
 467: PUSH
 468: FOR_IN
 469: IFFALSE 523
// begin un = VytvorCloveka ( 1 ) ;
 471: LD_ADDR_VAR 0 4
 475: PUSH
 476: LD_INT 1
 478: PPUSH
 479: CALL 1968 0 1
 483: ST_TO_ADDR
// SetDir ( un , GetDir ( b ) + 3 ) ;
 484: LD_VAR 0 4
 488: PPUSH
 489: LD_VAR 0 2
 493: PPUSH
 494: CALL_OW 254
 498: PUSH
 499: LD_INT 3
 501: PLUS
 502: PPUSH
 503: CALL_OW 233
// PlaceHumanInUnit ( un , b ) ;
 507: LD_VAR 0 4
 511: PPUSH
 512: LD_VAR 0 2
 516: PPUSH
 517: CALL_OW 52
// end ;
 521: GO 468
 523: POP
 524: POP
// for b in FilterAllUnits ( [ f_btype , b_armoury ] ) do
 525: LD_ADDR_VAR 0 2
 529: PUSH
 530: LD_INT 30
 532: PUSH
 533: LD_INT 4
 535: PUSH
 536: EMPTY
 537: LIST
 538: LIST
 539: PPUSH
 540: CALL_OW 69
 544: PUSH
 545: FOR_IN
 546: IFFALSE 597
// for i = 1 to 3 do
 548: LD_ADDR_VAR 0 5
 552: PUSH
 553: DOUBLE
 554: LD_INT 1
 556: DEC
 557: ST_TO_ADDR
 558: LD_INT 3
 560: PUSH
 561: FOR_TO
 562: IFFALSE 593
// begin un = VytvorCloveka ( 1 ) ;
 564: LD_ADDR_VAR 0 4
 568: PUSH
 569: LD_INT 1
 571: PPUSH
 572: CALL 1968 0 1
 576: ST_TO_ADDR
// PlaceHumanInUnit ( un , b ) ;
 577: LD_VAR 0 4
 581: PPUSH
 582: LD_VAR 0 2
 586: PPUSH
 587: CALL_OW 52
// end ;
 591: GO 561
 593: POP
 594: POP
 595: GO 545
 597: POP
 598: POP
// for b in FilterAllUnits ( [ f_btype , b_lab_full ] ) do
 599: LD_ADDR_VAR 0 2
 603: PUSH
 604: LD_INT 30
 606: PUSH
 607: LD_INT 8
 609: PUSH
 610: EMPTY
 611: LIST
 612: LIST
 613: PPUSH
 614: CALL_OW 69
 618: PUSH
 619: FOR_IN
 620: IFFALSE 671
// for i = 1 to 4 do
 622: LD_ADDR_VAR 0 5
 626: PUSH
 627: DOUBLE
 628: LD_INT 1
 630: DEC
 631: ST_TO_ADDR
 632: LD_INT 4
 634: PUSH
 635: FOR_TO
 636: IFFALSE 667
// begin un = VytvorCloveka ( 4 ) ;
 638: LD_ADDR_VAR 0 4
 642: PUSH
 643: LD_INT 4
 645: PPUSH
 646: CALL 1968 0 1
 650: ST_TO_ADDR
// PlaceHumanInUnit ( un , b ) ;
 651: LD_VAR 0 4
 655: PPUSH
 656: LD_VAR 0 2
 660: PPUSH
 661: CALL_OW 52
// end ;
 665: GO 635
 667: POP
 668: POP
 669: GO 619
 671: POP
 672: POP
// end ;
 673: LD_VAR 0 1
 677: RET
// function Intro ( ) ; var i ; begin
 678: LD_INT 0
 680: PPUSH
 681: PPUSH
// ComMoveXY ( pho , 50 , 57 ) ;
 682: LD_INT 10
 684: PPUSH
 685: LD_INT 50
 687: PPUSH
 688: LD_INT 57
 690: PPUSH
 691: CALL_OW 111
// for i in [ [ 53 , 68 ] , [ 53 , 58 ] , [ 55 , 51 ] , [ 59 , 47 ] , [ 63 , 42 ] ] do
 695: LD_ADDR_VAR 0 2
 699: PUSH
 700: LD_INT 53
 702: PUSH
 703: LD_INT 68
 705: PUSH
 706: EMPTY
 707: LIST
 708: LIST
 709: PUSH
 710: LD_INT 53
 712: PUSH
 713: LD_INT 58
 715: PUSH
 716: EMPTY
 717: LIST
 718: LIST
 719: PUSH
 720: LD_INT 55
 722: PUSH
 723: LD_INT 51
 725: PUSH
 726: EMPTY
 727: LIST
 728: LIST
 729: PUSH
 730: LD_INT 59
 732: PUSH
 733: LD_INT 47
 735: PUSH
 736: EMPTY
 737: LIST
 738: LIST
 739: PUSH
 740: LD_INT 63
 742: PUSH
 743: LD_INT 42
 745: PUSH
 746: EMPTY
 747: LIST
 748: LIST
 749: PUSH
 750: EMPTY
 751: LIST
 752: LIST
 753: LIST
 754: LIST
 755: LIST
 756: PUSH
 757: FOR_IN
 758: IFFALSE 789
// AddComMoveXY ( vsevolod , i [ 1 ] , i [ 2 ] ) ;
 760: LD_LOC 3
 764: PPUSH
 765: LD_VAR 0 2
 769: PUSH
 770: LD_INT 1
 772: ARRAY
 773: PPUSH
 774: LD_VAR 0 2
 778: PUSH
 779: LD_INT 2
 781: ARRAY
 782: PPUSH
 783: CALL_OW 171
 787: GO 757
 789: POP
 790: POP
// end ;
 791: LD_VAR 0 1
 795: RET
// every 0 0$0.2 trigger GetDistUnitArea ( auto , spot ) <= 3 do
 796: LD_INT 8
 798: PPUSH
 799: LD_INT 3
 801: PPUSH
 802: CALL_OW 299
 806: PUSH
 807: LD_INT 3
 809: LESSEQUAL
 810: IFFALSE 841
 812: GO 814
 814: DISABLE
// begin ComMoveXY ( pho , 47 , 50 ) ;
 815: LD_INT 10
 817: PPUSH
 818: LD_INT 47
 820: PPUSH
 821: LD_INT 50
 823: PPUSH
 824: CALL_OW 111
// AddComMoveXY ( pho , 40 , 43 ) ;
 828: LD_INT 10
 830: PPUSH
 831: LD_INT 40
 833: PPUSH
 834: LD_INT 43
 836: PPUSH
 837: CALL_OW 171
// end ;
 841: END
// every 0 0$0.4 trigger IsInArea ( auto , spot ) do
 842: LD_INT 8
 844: PPUSH
 845: LD_INT 3
 847: PPUSH
 848: CALL_OW 308
 852: IFFALSE 896
 854: GO 856
 856: DISABLE
// begin DialogueOn ;
 857: CALL_OW 6
// Say ( bunkr_vojak , bun-1 ) ;
 861: LD_LOC 5
 865: PPUSH
 866: LD_STRING bun-1
 868: PPUSH
 869: CALL_OW 88
// DWait ( 0 0$0.2 ) ;
 873: LD_INT 7
 875: PPUSH
 876: CALL_OW 68
// Say ( bunkr_vojak , bun-2 ) ;
 880: LD_LOC 5
 884: PPUSH
 885: LD_STRING bun-2
 887: PPUSH
 888: CALL_OW 88
// DialogueOff ;
 892: CALL_OW 7
// end ;
 896: END
// every 0 0$0.2 trigger IsInArea ( auto , karapark ) do
 897: LD_INT 8
 899: PPUSH
 900: LD_INT 4
 902: PPUSH
 903: CALL_OW 308
 907: IFFALSE 1052
 909: GO 911
 911: DISABLE
// begin Wait ( 0 0$1.3 ) ;
 912: LD_INT 46
 914: PPUSH
 915: CALL_OW 67
// ComExitVehicle ( vsevolod ) ;
 919: LD_LOC 3
 923: PPUSH
 924: CALL_OW 121
// Wait ( 0 0$0.1 ) ;
 928: LD_INT 4
 930: PPUSH
 931: CALL_OW 67
// AddComHold ( vsevolod ) ;
 935: LD_LOC 3
 939: PPUSH
 940: CALL_OW 200
// Wait ( 0 0$0.5 ) ;
 944: LD_INT 18
 946: PPUSH
 947: CALL_OW 67
// Wait ( 0 0$0.7 ) ;
 951: LD_INT 24
 953: PPUSH
 954: CALL_OW 67
// ComExitBuilding ( lesnitsky ) ;
 958: LD_LOC 4
 962: PPUSH
 963: CALL_OW 122
// ComMoveXY ( lesnitsky , 66 , 40 ) ;
 967: LD_LOC 4
 971: PPUSH
 972: LD_INT 66
 974: PPUSH
 975: LD_INT 40
 977: PPUSH
 978: CALL_OW 111
// AddComTurnUnit ( lesnitsky , vsevolod ) ;
 982: LD_LOC 4
 986: PPUSH
 987: LD_LOC 3
 991: PPUSH
 992: CALL_OW 179
// Wait ( 0 0$0.4 ) ;
 996: LD_INT 14
 998: PPUSH
 999: CALL_OW 67
// AddComMoveXY ( vsevolod , 64 , 40 ) ;
1003: LD_LOC 3
1007: PPUSH
1008: LD_INT 64
1010: PPUSH
1011: LD_INT 40
1013: PPUSH
1014: CALL_OW 171
// AddComHold ( vsevolod ) ;
1018: LD_LOC 3
1022: PPUSH
1023: CALL_OW 200
// AddComTurnUnit ( vsevolod , lesnitsky ) ;
1027: LD_LOC 3
1031: PPUSH
1032: LD_LOC 4
1036: PPUSH
1037: CALL_OW 179
// Wait ( 0 0$0.6 ) ;
1041: LD_INT 21
1043: PPUSH
1044: CALL_OW 67
// DialogSLesnitskym ( ) ;
1048: CALL 1053 0 0
// end ;
1052: END
// function DialogSLesnitskym ( ) ; begin
1053: LD_INT 0
1055: PPUSH
// Say ( lesnitsky , les-1 ) ;
1056: LD_LOC 4
1060: PPUSH
1061: LD_STRING les-1
1063: PPUSH
1064: CALL_OW 88
// Say ( vsevolod , vse-1 ) ;
1068: LD_LOC 3
1072: PPUSH
1073: LD_STRING vse-1
1075: PPUSH
1076: CALL_OW 88
// Say ( lesnitsky , les-2 ) ;
1080: LD_LOC 4
1084: PPUSH
1085: LD_STRING les-2
1087: PPUSH
1088: CALL_OW 88
// Say ( lesnitsky , les-3 ) ;
1092: LD_LOC 4
1096: PPUSH
1097: LD_STRING les-3
1099: PPUSH
1100: CALL_OW 88
// Say ( vsevolod , vse-2 ) ;
1104: LD_LOC 3
1108: PPUSH
1109: LD_STRING vse-2
1111: PPUSH
1112: CALL_OW 88
// Say ( lesnitsky , les-4 ) ;
1116: LD_LOC 4
1120: PPUSH
1121: LD_STRING les-4
1123: PPUSH
1124: CALL_OW 88
// Say ( vsevolod , vse-3 ) ;
1128: LD_LOC 3
1132: PPUSH
1133: LD_STRING vse-3
1135: PPUSH
1136: CALL_OW 88
// Say ( vsevolod , vse-4 ) ;
1140: LD_LOC 3
1144: PPUSH
1145: LD_STRING vse-4
1147: PPUSH
1148: CALL_OW 88
// Say ( lesnitsky , les-5 ) ;
1152: LD_LOC 4
1156: PPUSH
1157: LD_STRING les-5
1159: PPUSH
1160: CALL_OW 88
// CallQuery ( ) ;
1164: CALL 1614 0 0
// end ;
1168: LD_VAR 0 1
1172: RET
// function ConfirmQuery ( cislo ) ; begin
1173: LD_INT 0
1175: PPUSH
// Wait ( 0 0$0.2 ) ;
1176: LD_INT 7
1178: PPUSH
1179: CALL_OW 67
// case Query ( vzitmisi ) of 1 :
1183: LD_STRING vzitmisi
1185: PPUSH
1186: CALL_OW 97
1190: PUSH
1191: LD_INT 1
1193: DOUBLE
1194: EQUAL
1195: IFTRUE 1199
1197: GO 1593
1199: POP
// begin if cislo = 1 then
1200: LD_VAR 0 1
1204: PUSH
1205: LD_INT 1
1207: EQUAL
1208: IFFALSE 1404
// begin uzsivybralmisi = true ;
1210: LD_ADDR_LOC 17
1214: PUSH
1215: LD_INT 1
1217: ST_TO_ADDR
// zakaz_vybrani = true ;
1218: LD_ADDR_LOC 8
1222: PUSH
1223: LD_INT 1
1225: ST_TO_ADDR
// DeselectUnits ( vsevolod ) ;
1226: LD_LOC 3
1230: PPUSH
1231: CALL_OW 491
// if IsOk ( auto ) then
1235: LD_INT 8
1237: PPUSH
1238: CALL_OW 302
1242: IFFALSE 1254
// SetFuel ( auto , 100 ) ;
1244: LD_INT 8
1246: PPUSH
1247: LD_INT 100
1249: PPUSH
1250: CALL_OW 240
// Say ( vsevolod , vse-6 ) ;
1254: LD_LOC 3
1258: PPUSH
1259: LD_STRING vse-6
1261: PPUSH
1262: CALL_OW 88
// Say ( lesnitsky , les-10 ) ;
1266: LD_LOC 4
1270: PPUSH
1271: LD_STRING les-10
1273: PPUSH
1274: CALL_OW 88
// InGameOn ;
1278: CALL_OW 8
// interface_hidden = true ;
1282: LD_ADDR_OWVAR 54
1286: PUSH
1287: LD_INT 1
1289: ST_TO_ADDR
// ComStop ( vsevolod ) ;
1290: LD_LOC 3
1294: PPUSH
1295: CALL_OW 141
// ComStop ( auto ) ;
1299: LD_INT 8
1301: PPUSH
1302: CALL_OW 141
// Wait ( 0 0$0.3 ) ;
1306: LD_INT 10
1308: PPUSH
1309: CALL_OW 67
// if IsOk ( auto ) and not IsInUnit ( vsevolod ) then
1313: LD_INT 8
1315: PPUSH
1316: CALL_OW 302
1320: PUSH
1321: LD_LOC 3
1325: PPUSH
1326: CALL_OW 310
1330: NOT
1331: AND
1332: IFFALSE 1346
// ComEnterUnit ( vsevolod , auto ) ;
1334: LD_LOC 3
1338: PPUSH
1339: LD_INT 8
1341: PPUSH
1342: CALL_OW 120
// AddComMoveXY ( vsevolod , 50 , 28 ) ;
1346: LD_LOC 3
1350: PPUSH
1351: LD_INT 50
1353: PPUSH
1354: LD_INT 28
1356: PPUSH
1357: CALL_OW 171
// AddComMoveXY ( vsevolod , 42 , 17 ) ;
1361: LD_LOC 3
1365: PPUSH
1366: LD_INT 42
1368: PPUSH
1369: LD_INT 17
1371: PPUSH
1372: CALL_OW 171
// AddComMoveXY ( vsevolod , 31 , 2 ) ;
1376: LD_LOC 3
1380: PPUSH
1381: LD_INT 31
1383: PPUSH
1384: LD_INT 2
1386: PPUSH
1387: CALL_OW 171
// DialogueOff ;
1391: CALL_OW 7
// KonecMise ( 1 ) ;
1395: LD_INT 1
1397: PPUSH
1398: CALL 5117 0 1
// end else
1402: GO 1591
// if cislo = 2 then
1404: LD_VAR 0 1
1408: PUSH
1409: LD_INT 2
1411: EQUAL
1412: IFFALSE 1591
// begin uzsivybralmisi = true ;
1414: LD_ADDR_LOC 17
1418: PUSH
1419: LD_INT 1
1421: ST_TO_ADDR
// zakaz_vybrani = true ;
1422: LD_ADDR_LOC 8
1426: PUSH
1427: LD_INT 1
1429: ST_TO_ADDR
// DeselectUnits ( vsevolod ) ;
1430: LD_LOC 3
1434: PPUSH
1435: CALL_OW 491
// if IsOk ( auto ) then
1439: LD_INT 8
1441: PPUSH
1442: CALL_OW 302
1446: IFFALSE 1458
// SetFuel ( auto , 100 ) ;
1448: LD_INT 8
1450: PPUSH
1451: LD_INT 100
1453: PPUSH
1454: CALL_OW 240
// Say ( vsevolod , vse-6 ) ;
1458: LD_LOC 3
1462: PPUSH
1463: LD_STRING vse-6
1465: PPUSH
1466: CALL_OW 88
// Say ( lesnitsky , les-11 ) ;
1470: LD_LOC 4
1474: PPUSH
1475: LD_STRING les-11
1477: PPUSH
1478: CALL_OW 88
// InGameOn ;
1482: CALL_OW 8
// interface_hidden = true ;
1486: LD_ADDR_OWVAR 54
1490: PUSH
1491: LD_INT 1
1493: ST_TO_ADDR
// ComStop ( vsevolod ) ;
1494: LD_LOC 3
1498: PPUSH
1499: CALL_OW 141
// ComStop ( auto ) ;
1503: LD_INT 8
1505: PPUSH
1506: CALL_OW 141
// Wait ( 0 0$0.3 ) ;
1510: LD_INT 10
1512: PPUSH
1513: CALL_OW 67
// if IsOk ( auto ) and not IsInUnit ( vsevolod ) then
1517: LD_INT 8
1519: PPUSH
1520: CALL_OW 302
1524: PUSH
1525: LD_LOC 3
1529: PPUSH
1530: CALL_OW 310
1534: NOT
1535: AND
1536: IFFALSE 1550
// ComEnterUnit ( vsevolod , auto ) ;
1538: LD_LOC 3
1542: PPUSH
1543: LD_INT 8
1545: PPUSH
1546: CALL_OW 120
// AddComMoveXY ( vsevolod , 79 , 41 ) ;
1550: LD_LOC 3
1554: PPUSH
1555: LD_INT 79
1557: PPUSH
1558: LD_INT 41
1560: PPUSH
1561: CALL_OW 171
// AddComMoveXY ( vsevolod , 105 , 43 ) ;
1565: LD_LOC 3
1569: PPUSH
1570: LD_INT 105
1572: PPUSH
1573: LD_INT 43
1575: PPUSH
1576: CALL_OW 171
// DialogueOff ;
1580: CALL_OW 7
// KonecMise ( 2 ) ;
1584: LD_INT 2
1586: PPUSH
1587: CALL 5117 0 1
// end end ; 2 :
1591: GO 1609
1593: LD_INT 2
1595: DOUBLE
1596: EQUAL
1597: IFTRUE 1601
1599: GO 1608
1601: POP
// begin CallQuery ( ) ;
1602: CALL 1614 0 0
// end ; end ;
1606: GO 1609
1608: POP
// end ;
1609: LD_VAR 0 2
1613: RET
// function CallQuery ( ) ; begin
1614: LD_INT 0
1616: PPUSH
// Wait ( 0 0$0.5 ) ;
1617: LD_INT 18
1619: PPUSH
1620: CALL_OW 67
// if uzsivybralmisi then
1624: LD_LOC 17
1628: IFFALSE 1632
// exit ;
1630: GO 1823
// case Query ( vyberakce ) of 1 :
1632: LD_STRING vyberakce
1634: PPUSH
1635: CALL_OW 97
1639: PUSH
1640: LD_INT 1
1642: DOUBLE
1643: EQUAL
1644: IFTRUE 1648
1646: GO 1670
1648: POP
// begin Say ( lesnitsky , les-6 ) ;
1649: LD_LOC 4
1653: PPUSH
1654: LD_STRING les-6
1656: PPUSH
1657: CALL_OW 88
// ConfirmQuery ( 1 ) ;
1661: LD_INT 1
1663: PPUSH
1664: CALL 1173 0 1
// end ; 2 :
1668: GO 1823
1670: LD_INT 2
1672: DOUBLE
1673: EQUAL
1674: IFTRUE 1678
1676: GO 1700
1678: POP
// begin Say ( lesnitsky , les-7 ) ;
1679: LD_LOC 4
1683: PPUSH
1684: LD_STRING les-7
1686: PPUSH
1687: CALL_OW 88
// ConfirmQuery ( 2 ) ;
1691: LD_INT 2
1693: PPUSH
1694: CALL 1173 0 1
// end ; 3 :
1698: GO 1823
1700: LD_INT 3
1702: DOUBLE
1703: EQUAL
1704: IFTRUE 1708
1706: GO 1822
1708: POP
// begin if not isnextday then
1709: LD_LOC 18
1713: NOT
1714: IFFALSE 1809
// begin SetFuel ( auto , 1 ) ;
1716: LD_INT 8
1718: PPUSH
1719: LD_INT 1
1721: PPUSH
1722: CALL_OW 240
// Say ( lesnitsky , les-8 ) ;
1726: LD_LOC 4
1730: PPUSH
1731: LD_STRING les-8
1733: PPUSH
1734: CALL_OW 88
// Say ( vsevolod , vse-5 ) ;
1738: LD_LOC 3
1742: PPUSH
1743: LD_STRING vse-5
1745: PPUSH
1746: CALL_OW 88
// ComHold ( lesnitsky ) ;
1750: LD_LOC 4
1754: PPUSH
1755: CALL_OW 140
// ComFree ( vsevolod ) ;
1759: LD_LOC 3
1763: PPUSH
1764: CALL_OW 139
// zakaz_vybrani = false ;
1768: LD_ADDR_LOC 8
1772: PUSH
1773: LD_INT 0
1775: ST_TO_ADDR
// IngameOff ;
1776: CALL_OW 9
// interface_hidden = false ;
1780: LD_ADDR_OWVAR 54
1784: PUSH
1785: LD_INT 0
1787: ST_TO_ADDR
// Wait ( 0 0$2.8 ) ;
1788: LD_INT 98
1790: PPUSH
1791: CALL_OW 67
// ComEnterUnit ( lesnitsky , depot ) ;
1795: LD_LOC 4
1799: PPUSH
1800: LD_INT 7
1802: PPUSH
1803: CALL_OW 120
// end else
1807: GO 1820
// begin DialogueOff ;
1809: CALL_OW 7
// Wait ( 0 0$4 ) ;
1813: LD_INT 140
1815: PPUSH
1816: CALL_OW 67
// end ; end ; end ;
1820: GO 1823
1822: POP
// end ;
1823: LD_VAR 0 1
1827: RET
// every 0 0$1 trigger zakaz_vybrani do
1828: LD_LOC 8
1832: IFFALSE 1874
1834: GO 1836
1836: DISABLE
// begin Wait ( 0 0$1.4 ) ;
1837: LD_INT 49
1839: PPUSH
1840: CALL_OW 67
// if IsInUnit ( Vsevolod ) then
1844: LD_LOC 3
1848: PPUSH
1849: CALL_OW 310
1853: IFFALSE 1864
// CenterOnUnits ( auto ) else
1855: LD_INT 8
1857: PPUSH
1858: CALL_OW 85
1862: GO 1873
// CenterOnUnits ( Vsevolod ) ;
1864: LD_LOC 3
1868: PPUSH
1869: CALL_OW 85
// enable ;
1873: ENABLE
// end ;
1874: END
// on UnitGoesToRed ( un ) do begin if un = Vsevolod then
1875: LD_VAR 0 1
1879: PUSH
1880: LD_LOC 3
1884: EQUAL
1885: IFFALSE 1901
// begin Wait ( 0 0$1.5 ) ;
1887: LD_INT 52
1889: PPUSH
1890: CALL_OW 67
// YouLost ( sevidead ) ;
1894: LD_STRING sevidead
1896: PPUSH
1897: CALL_OW 104
// end ; end ;
1901: PPOPN 1
1903: END
// on Contact ( side , side2 ) do begin if side = you and side2 = zeleny then
1904: LD_VAR 0 1
1908: PUSH
1909: LD_LOC 1
1913: EQUAL
1914: PUSH
1915: LD_VAR 0 2
1919: PUSH
1920: LD_LOC 2
1924: EQUAL
1925: AND
1926: IFFALSE 1965
// begin Wait ( 0 0$1.5 ) ;
1928: LD_INT 52
1930: PPUSH
1931: CALL_OW 67
// DialogueOn ( ) ;
1935: CALL_OW 6
// Say ( lesnitsky , les-utok ) ;
1939: LD_LOC 4
1943: PPUSH
1944: LD_STRING les-utok
1946: PPUSH
1947: CALL_OW 88
// Wait ( 0 0$0.5 ) ;
1951: LD_INT 18
1953: PPUSH
1954: CALL_OW 67
// YouLost ( soud2 ) ;
1958: LD_STRING soud2
1960: PPUSH
1961: CALL_OW 104
// end ; end ;
1965: PPOPN 2
1967: END
// function VytvorCloveka ( povolani ) ; var x , mx ; begin
1968: LD_INT 0
1970: PPUSH
1971: PPUSH
1972: PPUSH
// x = 6 ;
1973: LD_ADDR_VAR 0 3
1977: PUSH
1978: LD_INT 6
1980: ST_TO_ADDR
// mx = 4 ;
1981: LD_ADDR_VAR 0 4
1985: PUSH
1986: LD_INT 4
1988: ST_TO_ADDR
// hc_name :=  ;
1989: LD_ADDR_OWVAR 26
1993: PUSH
1994: LD_STRING 
1996: ST_TO_ADDR
// hc_attr := [ rand ( 9 , 11 ) , rand ( 9 , 11 ) ] ;
1997: LD_ADDR_OWVAR 29
2001: PUSH
2002: LD_INT 9
2004: PPUSH
2005: LD_INT 11
2007: PPUSH
2008: CALL_OW 12
2012: PUSH
2013: LD_INT 9
2015: PPUSH
2016: LD_INT 11
2018: PPUSH
2019: CALL_OW 12
2023: PUSH
2024: EMPTY
2025: LIST
2026: LIST
2027: ST_TO_ADDR
// uc_nation := 3 ;
2028: LD_ADDR_OWVAR 21
2032: PUSH
2033: LD_INT 3
2035: ST_TO_ADDR
// uc_side = zeleny ;
2036: LD_ADDR_OWVAR 20
2040: PUSH
2041: LD_LOC 2
2045: ST_TO_ADDR
// if Prob ( 20 ) then
2046: LD_INT 20
2048: PPUSH
2049: CALL_OW 13
2053: IFFALSE 2065
// hc_sex := 2 else
2055: LD_ADDR_OWVAR 27
2059: PUSH
2060: LD_INT 2
2062: ST_TO_ADDR
2063: GO 2073
// hc_sex := 1 ;
2065: LD_ADDR_OWVAR 27
2069: PUSH
2070: LD_INT 1
2072: ST_TO_ADDR
// if povolani = 3 then
2073: LD_VAR 0 1
2077: PUSH
2078: LD_INT 3
2080: EQUAL
2081: IFFALSE 2091
// hc_sex = 2 ;
2083: LD_ADDR_OWVAR 27
2087: PUSH
2088: LD_INT 2
2090: ST_TO_ADDR
// if povolani = 4 then
2091: LD_VAR 0 1
2095: PUSH
2096: LD_INT 4
2098: EQUAL
2099: IFFALSE 2109
// hc_sex = 2 ;
2101: LD_ADDR_OWVAR 27
2105: PUSH
2106: LD_INT 2
2108: ST_TO_ADDR
// case povolani of 1 :
2109: LD_VAR 0 1
2113: PUSH
2114: LD_INT 1
2116: DOUBLE
2117: EQUAL
2118: IFTRUE 2122
2120: GO 2202
2122: POP
// begin hc_skills := [ rand ( x - 1 , x ) , rand ( 0 , mx ) , rand ( 0 , mx ) , rand ( 0 , mx ) ] ;
2123: LD_ADDR_OWVAR 31
2127: PUSH
2128: LD_VAR 0 3
2132: PUSH
2133: LD_INT 1
2135: MINUS
2136: PPUSH
2137: LD_VAR 0 3
2141: PPUSH
2142: CALL_OW 12
2146: PUSH
2147: LD_INT 0
2149: PPUSH
2150: LD_VAR 0 4
2154: PPUSH
2155: CALL_OW 12
2159: PUSH
2160: LD_INT 0
2162: PPUSH
2163: LD_VAR 0 4
2167: PPUSH
2168: CALL_OW 12
2172: PUSH
2173: LD_INT 0
2175: PPUSH
2176: LD_VAR 0 4
2180: PPUSH
2181: CALL_OW 12
2185: PUSH
2186: EMPTY
2187: LIST
2188: LIST
2189: LIST
2190: LIST
2191: ST_TO_ADDR
// hc_class = class_soldier ;
2192: LD_ADDR_OWVAR 28
2196: PUSH
2197: LD_INT 1
2199: ST_TO_ADDR
// end ; 2 :
2200: GO 2467
2202: LD_INT 2
2204: DOUBLE
2205: EQUAL
2206: IFTRUE 2210
2208: GO 2290
2210: POP
// begin hc_skills := [ rand ( 0 , mx ) , rand ( x - 1 , x ) , rand ( 0 , mx ) , rand ( 0 , mx ) ] ;
2211: LD_ADDR_OWVAR 31
2215: PUSH
2216: LD_INT 0
2218: PPUSH
2219: LD_VAR 0 4
2223: PPUSH
2224: CALL_OW 12
2228: PUSH
2229: LD_VAR 0 3
2233: PUSH
2234: LD_INT 1
2236: MINUS
2237: PPUSH
2238: LD_VAR 0 3
2242: PPUSH
2243: CALL_OW 12
2247: PUSH
2248: LD_INT 0
2250: PPUSH
2251: LD_VAR 0 4
2255: PPUSH
2256: CALL_OW 12
2260: PUSH
2261: LD_INT 0
2263: PPUSH
2264: LD_VAR 0 4
2268: PPUSH
2269: CALL_OW 12
2273: PUSH
2274: EMPTY
2275: LIST
2276: LIST
2277: LIST
2278: LIST
2279: ST_TO_ADDR
// hc_class = class_engineer ;
2280: LD_ADDR_OWVAR 28
2284: PUSH
2285: LD_INT 2
2287: ST_TO_ADDR
// end ; 3 :
2288: GO 2467
2290: LD_INT 3
2292: DOUBLE
2293: EQUAL
2294: IFTRUE 2298
2296: GO 2378
2298: POP
// begin hc_skills := [ rand ( 0 , mx ) , rand ( 0 , mx ) , rand ( x - 1 , x ) , rand ( 0 , mx ) ] ;
2299: LD_ADDR_OWVAR 31
2303: PUSH
2304: LD_INT 0
2306: PPUSH
2307: LD_VAR 0 4
2311: PPUSH
2312: CALL_OW 12
2316: PUSH
2317: LD_INT 0
2319: PPUSH
2320: LD_VAR 0 4
2324: PPUSH
2325: CALL_OW 12
2329: PUSH
2330: LD_VAR 0 3
2334: PUSH
2335: LD_INT 1
2337: MINUS
2338: PPUSH
2339: LD_VAR 0 3
2343: PPUSH
2344: CALL_OW 12
2348: PUSH
2349: LD_INT 0
2351: PPUSH
2352: LD_VAR 0 4
2356: PPUSH
2357: CALL_OW 12
2361: PUSH
2362: EMPTY
2363: LIST
2364: LIST
2365: LIST
2366: LIST
2367: ST_TO_ADDR
// hc_class = class_mechanic ;
2368: LD_ADDR_OWVAR 28
2372: PUSH
2373: LD_INT 3
2375: ST_TO_ADDR
// end ; 4 :
2376: GO 2467
2378: LD_INT 4
2380: DOUBLE
2381: EQUAL
2382: IFTRUE 2386
2384: GO 2466
2386: POP
// begin hc_skills := [ rand ( 0 , mx ) , rand ( 0 , mx ) , rand ( 0 , mx ) , rand ( x - 1 , x ) ] ;
2387: LD_ADDR_OWVAR 31
2391: PUSH
2392: LD_INT 0
2394: PPUSH
2395: LD_VAR 0 4
2399: PPUSH
2400: CALL_OW 12
2404: PUSH
2405: LD_INT 0
2407: PPUSH
2408: LD_VAR 0 4
2412: PPUSH
2413: CALL_OW 12
2417: PUSH
2418: LD_INT 0
2420: PPUSH
2421: LD_VAR 0 4
2425: PPUSH
2426: CALL_OW 12
2430: PUSH
2431: LD_VAR 0 3
2435: PUSH
2436: LD_INT 1
2438: MINUS
2439: PPUSH
2440: LD_VAR 0 3
2444: PPUSH
2445: CALL_OW 12
2449: PUSH
2450: EMPTY
2451: LIST
2452: LIST
2453: LIST
2454: LIST
2455: ST_TO_ADDR
// hc_class = class_scientistic ;
2456: LD_ADDR_OWVAR 28
2460: PUSH
2461: LD_INT 4
2463: ST_TO_ADDR
// end ; end ;
2464: GO 2467
2466: POP
// result := CreateHuman ( ) ;
2467: LD_ADDR_VAR 0 2
2471: PUSH
2472: CALL_OW 44
2476: ST_TO_ADDR
// end ;
2477: LD_VAR 0 2
2481: RET
// every 0 0$0.4 trigger zakaz_vybrani do
2482: LD_LOC 8
2486: IFFALSE 2515
2488: GO 2490
2490: DISABLE
// begin DeselectUnits ( [ vsevolod , IsInUnit ( vsevolod ) ] ) ;
2491: LD_LOC 3
2495: PUSH
2496: LD_LOC 3
2500: PPUSH
2501: CALL_OW 310
2505: PUSH
2506: EMPTY
2507: LIST
2508: LIST
2509: PPUSH
2510: CALL_OW 491
// enable ;
2514: ENABLE
// end ;
2515: END
// on EnterVehicle ( vehicle , human ) do begin if vehicle = auto and human = vsevolod and not isnextday and not uzsivybralmisi then
2516: LD_VAR 0 1
2520: PUSH
2521: LD_INT 8
2523: EQUAL
2524: PUSH
2525: LD_VAR 0 2
2529: PUSH
2530: LD_LOC 3
2534: EQUAL
2535: AND
2536: PUSH
2537: LD_LOC 18
2541: NOT
2542: AND
2543: PUSH
2544: LD_LOC 17
2548: NOT
2549: AND
2550: IFFALSE 2562
// SetFuel ( auto , 0 ) ;
2552: LD_INT 8
2554: PPUSH
2555: LD_INT 0
2557: PPUSH
2558: CALL_OW 240
// end ;
2562: PPOPN 2
2564: END
// on LeaveVehicle ( vehicle , human ) do begin if vehicle = auto and human = vsevolod and not isnextday and not uzsivybralmisi then
2565: LD_VAR 0 1
2569: PUSH
2570: LD_INT 8
2572: EQUAL
2573: PUSH
2574: LD_VAR 0 2
2578: PUSH
2579: LD_LOC 3
2583: EQUAL
2584: AND
2585: PUSH
2586: LD_LOC 18
2590: NOT
2591: AND
2592: PUSH
2593: LD_LOC 17
2597: NOT
2598: AND
2599: IFFALSE 2611
// SetFuel ( auto , 1 ) ;
2601: LD_INT 8
2603: PPUSH
2604: LD_INT 1
2606: PPUSH
2607: CALL_OW 240
// end ;
2611: PPOPN 2
2613: END
// every 0 0$0.80 trigger not bareltalk do
2614: LD_LOC 14
2618: NOT
2619: IFFALSE 2641
2621: GO 2623
2623: DISABLE
// begin barely = GetResourceAmountXY ( 56 , 59 ) ;
2624: LD_ADDR_LOC 9
2628: PUSH
2629: LD_INT 56
2631: PPUSH
2632: LD_INT 59
2634: PPUSH
2635: CALL_OW 284
2639: ST_TO_ADDR
// enable ;
2640: ENABLE
// end ;
2641: END
// every 0 0$1 do
2642: GO 2644
2644: DISABLE
// begin if GetDistUnits ( vsevolod , mvedec ) < 4 and not vedectalk then
2645: LD_LOC 3
2649: PPUSH
2650: LD_LOC 6
2654: PPUSH
2655: CALL_OW 296
2659: PUSH
2660: LD_INT 4
2662: LESS
2663: PUSH
2664: LD_LOC 11
2668: NOT
2669: AND
2670: IFFALSE 2721
// begin vedectalk = true ;
2672: LD_ADDR_LOC 11
2676: PUSH
2677: LD_INT 1
2679: ST_TO_ADDR
// ComTurnUnit ( mvedec , vsevolod ) ;
2680: LD_LOC 6
2684: PPUSH
2685: LD_LOC 3
2689: PPUSH
2690: CALL_OW 119
// Say ( mvedec , ved-1 ) ;
2694: LD_LOC 6
2698: PPUSH
2699: LD_STRING ved-1
2701: PPUSH
2702: CALL_OW 88
// AddComTurnXY ( mvedec , 74 , 58 ) ;
2706: LD_LOC 6
2710: PPUSH
2711: LD_INT 74
2713: PPUSH
2714: LD_INT 58
2716: PPUSH
2717: CALL_OW 178
// end ; if GetDistUnits ( vsevolod , mdelnik ) < 4 and not delniktalk then
2721: LD_LOC 3
2725: PPUSH
2726: LD_LOC 7
2730: PPUSH
2731: CALL_OW 296
2735: PUSH
2736: LD_INT 4
2738: LESS
2739: PUSH
2740: LD_LOC 12
2744: NOT
2745: AND
2746: IFFALSE 2791
// begin delniktalk = true ;
2748: LD_ADDR_LOC 12
2752: PUSH
2753: LD_INT 1
2755: ST_TO_ADDR
// ComTurnUnit ( mdelnik , vsevolod ) ;
2756: LD_LOC 7
2760: PPUSH
2761: LD_LOC 3
2765: PPUSH
2766: CALL_OW 119
// Say ( mdelnik , del-1 ) ;
2770: LD_LOC 7
2774: PPUSH
2775: LD_STRING del-1
2777: PPUSH
2778: CALL_OW 88
// AddComHold ( mdelnik ) ;
2782: LD_LOC 7
2786: PPUSH
2787: CALL_OW 200
// end ; if GetDistUnits ( vsevolod , IsInUnit ( bunkr_vojak ) ) < 4 and not vojaktalk and not bareltalk and not isnextday then
2791: LD_LOC 3
2795: PPUSH
2796: LD_LOC 5
2800: PPUSH
2801: CALL_OW 310
2805: PPUSH
2806: CALL_OW 296
2810: PUSH
2811: LD_INT 4
2813: LESS
2814: PUSH
2815: LD_LOC 13
2819: NOT
2820: AND
2821: PUSH
2822: LD_LOC 14
2826: NOT
2827: AND
2828: PUSH
2829: LD_LOC 18
2833: NOT
2834: AND
2835: IFFALSE 2857
// begin vojaktalk = true ;
2837: LD_ADDR_LOC 13
2841: PUSH
2842: LD_INT 1
2844: ST_TO_ADDR
// Say ( bunkr_vojak , bun-3 ) ;
2845: LD_LOC 5
2849: PPUSH
2850: LD_STRING bun-3
2852: PPUSH
2853: CALL_OW 88
// end ; if not barely and not bareltalk and not isnextday then
2857: LD_LOC 9
2861: NOT
2862: PUSH
2863: LD_LOC 14
2867: NOT
2868: AND
2869: PUSH
2870: LD_LOC 18
2874: NOT
2875: AND
2876: IFFALSE 3011
// begin bareltalk = true ;
2878: LD_ADDR_LOC 14
2882: PUSH
2883: LD_INT 1
2885: ST_TO_ADDR
// Wait ( 0 0$1 ) ;
2886: LD_INT 35
2888: PPUSH
2889: CALL_OW 67
// ComExitBuilding ( bunkr_vojak ) ;
2893: LD_LOC 5
2897: PPUSH
2898: CALL_OW 122
// Wait ( 0 0$0.2 ) ;
2902: LD_INT 7
2904: PPUSH
2905: CALL_OW 67
// AddComMoveXY ( bunkr_vojak , GetX ( vsevolod ) , GetY ( vsevolod ) ) ;
2909: LD_LOC 5
2913: PPUSH
2914: LD_LOC 3
2918: PPUSH
2919: CALL_OW 250
2923: PPUSH
2924: LD_LOC 3
2928: PPUSH
2929: CALL_OW 251
2933: PPUSH
2934: CALL_OW 171
// Say ( bunkr_vojak , bun-4 ) ;
2938: LD_LOC 5
2942: PPUSH
2943: LD_STRING bun-4
2945: PPUSH
2946: CALL_OW 88
// Wait ( 0 0$1 ) ;
2950: LD_INT 35
2952: PPUSH
2953: CALL_OW 67
// ComTurnUnit ( bunkr_vojak , vsevolod ) ;
2957: LD_LOC 5
2961: PPUSH
2962: LD_LOC 3
2966: PPUSH
2967: CALL_OW 119
// Say ( bunkr_vojak , bun-5 ) ;
2971: LD_LOC 5
2975: PPUSH
2976: LD_STRING bun-5
2978: PPUSH
2979: CALL_OW 88
// ComEnterUnit ( bunkr_vojak , FilterAllUnits ( [ f_btype , b_armoury ] ) [ 1 ] ) ;
2983: LD_LOC 5
2987: PPUSH
2988: LD_INT 30
2990: PUSH
2991: LD_INT 4
2993: PUSH
2994: EMPTY
2995: LIST
2996: LIST
2997: PPUSH
2998: CALL_OW 69
3002: PUSH
3003: LD_INT 1
3005: ARRAY
3006: PPUSH
3007: CALL_OW 120
// end ; enable ;
3011: ENABLE
// end ;
3012: END
// export function placeApes ; var i , o ; begin
3013: LD_INT 0
3015: PPUSH
3016: PPUSH
3017: PPUSH
// ; for i in [ [ 31 , 35 ] , [ 20 , 8 ] , [ 51 , 11 ] , [ 94 , 28 ] , [ 112 , 66 ] , [ 23 , 21 ] ] do
3018: LD_ADDR_VAR 0 2
3022: PUSH
3023: LD_INT 31
3025: PUSH
3026: LD_INT 35
3028: PUSH
3029: EMPTY
3030: LIST
3031: LIST
3032: PUSH
3033: LD_INT 20
3035: PUSH
3036: LD_INT 8
3038: PUSH
3039: EMPTY
3040: LIST
3041: LIST
3042: PUSH
3043: LD_INT 51
3045: PUSH
3046: LD_INT 11
3048: PUSH
3049: EMPTY
3050: LIST
3051: LIST
3052: PUSH
3053: LD_INT 94
3055: PUSH
3056: LD_INT 28
3058: PUSH
3059: EMPTY
3060: LIST
3061: LIST
3062: PUSH
3063: LD_INT 112
3065: PUSH
3066: LD_INT 66
3068: PUSH
3069: EMPTY
3070: LIST
3071: LIST
3072: PUSH
3073: LD_INT 23
3075: PUSH
3076: LD_INT 21
3078: PUSH
3079: EMPTY
3080: LIST
3081: LIST
3082: PUSH
3083: EMPTY
3084: LIST
3085: LIST
3086: LIST
3087: LIST
3088: LIST
3089: LIST
3090: PUSH
3091: FOR_IN
3092: IFFALSE 3200
// begin InitHc ;
3094: CALL_OW 19
// InitUc ;
3098: CALL_OW 18
// uc_side := 0 ;
3102: LD_ADDR_OWVAR 20
3106: PUSH
3107: LD_INT 0
3109: ST_TO_ADDR
// uc_direction := Rand ( 0 , 5 ) ;
3110: LD_ADDR_OWVAR 24
3114: PUSH
3115: LD_INT 0
3117: PPUSH
3118: LD_INT 5
3120: PPUSH
3121: CALL_OW 12
3125: ST_TO_ADDR
// uc_nation := nation_nature ;
3126: LD_ADDR_OWVAR 21
3130: PUSH
3131: LD_INT 0
3133: ST_TO_ADDR
// hc_class := class_apeman ;
3134: LD_ADDR_OWVAR 28
3138: PUSH
3139: LD_INT 12
3141: ST_TO_ADDR
// hc_agressivity := Rand ( 10 , 50 ) ;
3142: LD_ADDR_OWVAR 35
3146: PUSH
3147: LD_INT 10
3149: PPUSH
3150: LD_INT 50
3152: PPUSH
3153: CALL_OW 12
3157: ST_TO_ADDR
// o := CreateHuman ;
3158: LD_ADDR_VAR 0 3
3162: PUSH
3163: CALL_OW 44
3167: ST_TO_ADDR
// PlaceUnitXY ( o , i [ 1 ] , i [ 2 ] , false ) ;
3168: LD_VAR 0 3
3172: PPUSH
3173: LD_VAR 0 2
3177: PUSH
3178: LD_INT 1
3180: ARRAY
3181: PPUSH
3182: LD_VAR 0 2
3186: PUSH
3187: LD_INT 2
3189: ARRAY
3190: PPUSH
3191: LD_INT 0
3193: PPUSH
3194: CALL_OW 48
// end ;
3198: GO 3091
3200: POP
3201: POP
// end ;
3202: LD_VAR 0 1
3206: RET
// every 0 0$1 do var i , mil ;
3207: GO 3209
3209: DISABLE
3210: LD_INT 0
3212: PPUSH
3213: PPUSH
// begin for i in FilterAllUnits ( [ f_class , class_apeman ] ) do
3214: LD_ADDR_VAR 0 1
3218: PUSH
3219: LD_INT 25
3221: PUSH
3222: LD_INT 12
3224: PUSH
3225: EMPTY
3226: LIST
3227: LIST
3228: PPUSH
3229: CALL_OW 69
3233: PUSH
3234: FOR_IN
3235: IFFALSE 3394
// begin if IsInArea ( i , esc ) then
3237: LD_VAR 0 1
3241: PPUSH
3242: LD_INT 6
3244: PPUSH
3245: CALL_OW 308
3249: IFFALSE 3266
// ComMoveXY ( i , 87 , 63 ) ;
3251: LD_VAR 0 1
3255: PPUSH
3256: LD_INT 87
3258: PPUSH
3259: LD_INT 63
3261: PPUSH
3262: CALL_OW 111
// if WantsToAttack ( i ) and GetDistUnits ( i , vsevolod ) <= 3 then
3266: LD_VAR 0 1
3270: PPUSH
3271: CALL_OW 319
3275: PUSH
3276: LD_VAR 0 1
3280: PPUSH
3281: LD_LOC 3
3285: PPUSH
3286: CALL_OW 296
3290: PUSH
3291: LD_INT 3
3293: LESSEQUAL
3294: AND
3295: IFFALSE 3392
// begin for mil in FilterAllUnits ( [ [ f_side , zeleny ] , [ f_class , class_soldier ] , [ f_inside ] ] ) diff lesnitsky do
3297: LD_ADDR_VAR 0 2
3301: PUSH
3302: LD_INT 22
3304: PUSH
3305: LD_LOC 2
3309: PUSH
3310: EMPTY
3311: LIST
3312: LIST
3313: PUSH
3314: LD_INT 25
3316: PUSH
3317: LD_INT 1
3319: PUSH
3320: EMPTY
3321: LIST
3322: LIST
3323: PUSH
3324: LD_INT 54
3326: PUSH
3327: EMPTY
3328: LIST
3329: PUSH
3330: EMPTY
3331: LIST
3332: LIST
3333: LIST
3334: PPUSH
3335: CALL_OW 69
3339: PUSH
3340: LD_LOC 4
3344: DIFF
3345: PUSH
3346: FOR_IN
3347: IFFALSE 3390
// if GetDistUnits ( i , mil ) < 11 then
3349: LD_VAR 0 1
3353: PPUSH
3354: LD_VAR 0 2
3358: PPUSH
3359: CALL_OW 296
3363: PUSH
3364: LD_INT 11
3366: LESS
3367: IFFALSE 3388
// ComAttackUnit ( IsInUnit ( mil ) , i ) ;
3369: LD_VAR 0 2
3373: PPUSH
3374: CALL_OW 310
3378: PPUSH
3379: LD_VAR 0 1
3383: PPUSH
3384: CALL_OW 115
3388: GO 3346
3390: POP
3391: POP
// end ; end ;
3392: GO 3234
3394: POP
3395: POP
// enable ;
3396: ENABLE
// end ;
3397: PPOPN 2
3399: END
// every 0 0$1 trigger IsInArea ( vsevolod , zbrvstup ) and not isnextday do
3400: LD_LOC 3
3404: PPUSH
3405: LD_INT 7
3407: PPUSH
3408: CALL_OW 308
3412: PUSH
3413: LD_LOC 18
3417: NOT
3418: AND
3419: IFFALSE 3520
3421: GO 3423
3423: DISABLE
// begin case Query ( vstoupit ) of 1 :
3424: LD_STRING vstoupit
3426: PPUSH
3427: CALL_OW 97
3431: PUSH
3432: LD_INT 1
3434: DOUBLE
3435: EQUAL
3436: IFTRUE 3440
3438: GO 3500
3440: POP
// begin game_speed = 4 ;
3441: LD_ADDR_OWVAR 65
3445: PUSH
3446: LD_INT 4
3448: ST_TO_ADDR
// isnextday = true ;
3449: LD_ADDR_LOC 18
3453: PUSH
3454: LD_INT 1
3456: ST_TO_ADDR
// ChangeSideFog ( 3 , 8 ) ;
3457: LD_INT 3
3459: PPUSH
3460: LD_INT 8
3462: PPUSH
3463: CALL_OW 343
// RemoveUnit ( vsevolod ) ;
3467: LD_LOC 3
3471: PPUSH
3472: CALL_OW 64
// ComRemember ( auto ) ;
3476: LD_INT 8
3478: PPUSH
3479: CALL_OW 143
// RemoveUnit ( auto ) ;
3483: LD_INT 8
3485: PPUSH
3486: CALL_OW 64
// ResetFog ( ) ;
3490: CALL_OW 335
// NextDay ( ) ;
3494: CALL 3521 0 0
// end ; 2 :
3498: GO 3519
3500: LD_INT 2
3502: DOUBLE
3503: EQUAL
3504: IFTRUE 3508
3506: GO 3518
3508: POP
// begin Wait ( 0 0$4 ) ;
3509: LD_INT 140
3511: PPUSH
3512: CALL_OW 67
// end ; end ;
3516: GO 3519
3518: POP
// enable ;
3519: ENABLE
// end ;
3520: END
// function NextDay ( ) ; var i ; begin
3521: LD_INT 0
3523: PPUSH
3524: PPUSH
// interface_hidden = true ;
3525: LD_ADDR_OWVAR 54
3529: PUSH
3530: LD_INT 1
3532: ST_TO_ADDR
// SetWeather ( 0 , 0 , 0 ) ;
3533: LD_INT 0
3535: PPUSH
3536: LD_INT 0
3538: PPUSH
3539: LD_INT 0
3541: PPUSH
3542: CALL_OW 550
// Wait ( 0 0$1 ) ;
3546: LD_INT 35
3548: PPUSH
3549: CALL_OW 67
// LoadColorsTXT ( colorsday.txt ) ;
3553: LD_STRING colorsday.txt
3555: PPUSH
3556: CALL_OW 544
// RemoveUnit ( mdelnik ) ;
3560: LD_LOC 7
3564: PPUSH
3565: CALL_OW 64
// RemoveUnit ( lesnitsky ) ;
3569: LD_LOC 4
3573: PPUSH
3574: CALL_OW 64
// PlaceUnitXY ( lesnitsky , 66 , 40 , false ) ;
3578: LD_LOC 4
3582: PPUSH
3583: LD_INT 66
3585: PPUSH
3586: LD_INT 40
3588: PPUSH
3589: LD_INT 0
3591: PPUSH
3592: CALL_OW 48
// ComTurnXY ( lesnitsky , 65 , 44 ) ;
3596: LD_LOC 4
3600: PPUSH
3601: LD_INT 65
3603: PPUSH
3604: LD_INT 44
3606: PPUSH
3607: CALL_OW 118
// RemoveUnit ( mvedec ) ;
3611: LD_LOC 6
3615: PPUSH
3616: CALL_OW 64
// RemoveUnit ( bunkr_vojak ) ;
3620: LD_LOC 5
3624: PPUSH
3625: CALL_OW 64
// uc_direction = 4 ;
3629: LD_ADDR_OWVAR 24
3633: PUSH
3634: LD_INT 4
3636: ST_TO_ADDR
// PlaceHumanInUnit ( VytvorCloveka ( 1 ) , bunkr ) ;
3637: LD_INT 1
3639: PPUSH
3640: CALL 1968 0 1
3644: PPUSH
3645: LD_INT 9
3647: PPUSH
3648: CALL_OW 52
// if not IsInUnit ( mdelnik ) then
3652: LD_LOC 7
3656: PPUSH
3657: CALL_OW 310
3661: NOT
3662: IFFALSE 3673
// ComUnload ( mdelnik ) ;
3664: LD_LOC 7
3668: PPUSH
3669: CALL_OW 159
// PlaceUnitXY ( VytvorCloveka ( 1 ) , 64 , 61 , false ) ;
3673: LD_INT 1
3675: PPUSH
3676: CALL 1968 0 1
3680: PPUSH
3681: LD_INT 64
3683: PPUSH
3684: LD_INT 61
3686: PPUSH
3687: LD_INT 0
3689: PPUSH
3690: CALL_OW 48
// PlaceUnitXY ( VytvorCloveka ( 1 ) , 79 , 35 , false ) ;
3694: LD_INT 1
3696: PPUSH
3697: CALL 1968 0 1
3701: PPUSH
3702: LD_INT 79
3704: PPUSH
3705: LD_INT 35
3707: PPUSH
3708: LD_INT 0
3710: PPUSH
3711: CALL_OW 48
// PlaceUnitXY ( VytvorCloveka ( 4 ) , 81 , 33 , false ) ;
3715: LD_INT 4
3717: PPUSH
3718: CALL 1968 0 1
3722: PPUSH
3723: LD_INT 81
3725: PPUSH
3726: LD_INT 33
3728: PPUSH
3729: LD_INT 0
3731: PPUSH
3732: CALL_OW 48
// for i in UnitsInside ( zbrojka ) do
3736: LD_ADDR_VAR 0 2
3740: PUSH
3741: LD_INT 24
3743: PPUSH
3744: CALL_OW 313
3748: PUSH
3749: FOR_IN
3750: IFFALSE 3763
// RemoveUnit ( i ) ;
3752: LD_VAR 0 2
3756: PPUSH
3757: CALL_OW 64
3761: GO 3749
3763: POP
3764: POP
// PlaceHumanInUnit ( VytvorCloveka ( 1 ) , zbrojka ) ;
3765: LD_INT 1
3767: PPUSH
3768: CALL 1968 0 1
3772: PPUSH
3773: LD_INT 24
3775: PPUSH
3776: CALL_OW 52
// ComStop ( nakladak ) ;
3780: LD_LOC 10
3784: PPUSH
3785: CALL_OW 141
// RemoveUnit ( IsInUnit ( nakladak ) ) ;
3789: LD_LOC 10
3793: PPUSH
3794: CALL_OW 310
3798: PPUSH
3799: CALL_OW 64
// RemoveUnit ( nakladak ) ;
3803: LD_LOC 10
3807: PPUSH
3808: CALL_OW 64
// PlaceUnitXY ( VytvorCloveka ( 4 ) , 58 , 45 , false ) ;
3812: LD_INT 4
3814: PPUSH
3815: CALL 1968 0 1
3819: PPUSH
3820: LD_INT 58
3822: PPUSH
3823: LD_INT 45
3825: PPUSH
3826: LD_INT 0
3828: PPUSH
3829: CALL_OW 48
// PlaceUnitXY ( mdelnik , 49 , 31 , false ) ;
3833: LD_LOC 7
3837: PPUSH
3838: LD_INT 49
3840: PPUSH
3841: LD_INT 31
3843: PPUSH
3844: LD_INT 0
3846: PPUSH
3847: CALL_OW 48
// Wait ( 0 0$4 ) ;
3851: LD_INT 140
3853: PPUSH
3854: CALL_OW 67
// EraseResourceArea ( surky , 1 ) ;
3858: LD_INT 9
3860: PPUSH
3861: LD_INT 1
3863: PPUSH
3864: CALL_OW 286
// EraseResourceArea ( surky , 2 ) ;
3868: LD_INT 9
3870: PPUSH
3871: LD_INT 2
3873: PPUSH
3874: CALL_OW 286
// EraseResourceArea ( surky , 3 ) ;
3878: LD_INT 9
3880: PPUSH
3881: LD_INT 3
3883: PPUSH
3884: CALL_OW 286
// EraseResourceArea ( er , 1 ) ;
3888: LD_INT 10
3890: PPUSH
3891: LD_INT 1
3893: PPUSH
3894: CALL_OW 286
// EraseResourceArea ( er , 2 ) ;
3898: LD_INT 10
3900: PPUSH
3901: LD_INT 2
3903: PPUSH
3904: CALL_OW 286
// EraseResourceArea ( er , 3 ) ;
3908: LD_INT 10
3910: PPUSH
3911: LD_INT 3
3913: PPUSH
3914: CALL_OW 286
// SetResourceType ( GetBase ( depot ) , mat_oil , 110 ) ;
3918: LD_INT 7
3920: PPUSH
3921: CALL_OW 274
3925: PPUSH
3926: LD_INT 2
3928: PPUSH
3929: LD_INT 110
3931: PPUSH
3932: CALL_OW 277
// PlaceUnitXY ( vsevolod , 79 , 45 , false ) ;
3936: LD_LOC 3
3940: PPUSH
3941: LD_INT 79
3943: PPUSH
3944: LD_INT 45
3946: PPUSH
3947: LD_INT 0
3949: PPUSH
3950: CALL_OW 48
// ComTurnUnit ( vsevolod , depot ) ;
3954: LD_LOC 3
3958: PPUSH
3959: LD_INT 7
3961: PPUSH
3962: CALL_OW 119
// if not IsDead ( auto ) then
3966: LD_INT 8
3968: PPUSH
3969: CALL_OW 301
3973: NOT
3974: IFFALSE 4012
// begin PlaceUnitXY ( auto , GetRememberedX ( auto ) , GetRememberedY ( auto ) , false ) ;
3976: LD_INT 8
3978: PPUSH
3979: LD_INT 8
3981: PPUSH
3982: CALL_OW 252
3986: PPUSH
3987: LD_INT 8
3989: PPUSH
3990: CALL_OW 253
3994: PPUSH
3995: LD_INT 0
3997: PPUSH
3998: CALL_OW 48
// SetFuel ( auto , 100 ) ;
4002: LD_INT 8
4004: PPUSH
4005: LD_INT 100
4007: PPUSH
4008: CALL_OW 240
// end ; music_nat = 5 ;
4012: LD_ADDR_OWVAR 71
4016: PUSH
4017: LD_INT 5
4019: ST_TO_ADDR
// music_class = 2 ;
4020: LD_ADDR_OWVAR 72
4024: PUSH
4025: LD_INT 2
4027: ST_TO_ADDR
// ChangeSideFog ( 3 , 7 ) ;
4028: LD_INT 3
4030: PPUSH
4031: LD_INT 7
4033: PPUSH
4034: CALL_OW 343
// interface_hidden = false ;
4038: LD_ADDR_OWVAR 54
4042: PUSH
4043: LD_INT 0
4045: ST_TO_ADDR
// end ;
4046: LD_VAR 0 1
4050: RET
// every 0 0$3 trigger delniktalk do
4051: LD_LOC 12
4055: IFFALSE 4071
4057: GO 4059
4059: DISABLE
// begin Wait ( 0 0$40 ) ;
4060: LD_INT 1400
4062: PPUSH
4063: CALL_OW 67
// PrijezdNakladu ( ) ;
4067: CALL 4072 0 0
// end ;
4071: END
// function PrijezdNakladu ( ) ; begin
4072: LD_INT 0
4074: PPUSH
// if isnextday then
4075: LD_LOC 18
4079: IFFALSE 4083
// exit ;
4081: GO 4308
// InitVc ( ) ;
4083: CALL_OW 20
// uc_side = zeleny ;
4087: LD_ADDR_OWVAR 20
4091: PUSH
4092: LD_LOC 2
4096: ST_TO_ADDR
// uc_direction = 4 ;
4097: LD_ADDR_OWVAR 24
4101: PUSH
4102: LD_INT 4
4104: ST_TO_ADDR
// uc_nation = 3 ;
4105: LD_ADDR_OWVAR 21
4109: PUSH
4110: LD_INT 3
4112: ST_TO_ADDR
// vc_control = control_manual ;
4113: LD_ADDR_OWVAR 38
4117: PUSH
4118: LD_INT 1
4120: ST_TO_ADDR
// vc_engine = engine_siberite ;
4121: LD_ADDR_OWVAR 39
4125: PUSH
4126: LD_INT 3
4128: ST_TO_ADDR
// vc_weapon = ru_cargo_bay ;
4129: LD_ADDR_OWVAR 40
4133: PUSH
4134: LD_INT 51
4136: ST_TO_ADDR
// vc_chassis = ru_medium_wheeled ;
4137: LD_ADDR_OWVAR 37
4141: PUSH
4142: LD_INT 21
4144: ST_TO_ADDR
// nakladak = CreateVehicle ( ) ;
4145: LD_ADDR_LOC 10
4149: PUSH
4150: CALL_OW 45
4154: ST_TO_ADDR
// PlaceUnitArea ( nakladak , naklad , false ) ;
4155: LD_LOC 10
4159: PPUSH
4160: LD_INT 8
4162: PPUSH
4163: LD_INT 0
4165: PPUSH
4166: CALL_OW 49
// AddCargo ( nakladak , mat_cans , 50 ) ;
4170: LD_LOC 10
4174: PPUSH
4175: LD_INT 1
4177: PPUSH
4178: LD_INT 50
4180: PPUSH
4181: CALL_OW 291
// AddCargo ( nakladak , mat_oil , 30 ) ;
4185: LD_LOC 10
4189: PPUSH
4190: LD_INT 2
4192: PPUSH
4193: LD_INT 30
4195: PPUSH
4196: CALL_OW 291
// AddCargo ( nakladak , mat_siberit , 20 ) ;
4200: LD_LOC 10
4204: PPUSH
4205: LD_INT 3
4207: PPUSH
4208: LD_INT 20
4210: PPUSH
4211: CALL_OW 291
// PlaceHumanInUnit ( VytvorCloveka ( 3 ) , nakladak ) ;
4215: LD_INT 3
4217: PPUSH
4218: CALL 1968 0 1
4222: PPUSH
4223: LD_LOC 10
4227: PPUSH
4228: CALL_OW 52
// Wait ( 0 0$0.4 ) ;
4232: LD_INT 14
4234: PPUSH
4235: CALL_OW 67
// ComMoveXY ( nakladak , 70 , 42 ) ;
4239: LD_LOC 10
4243: PPUSH
4244: LD_INT 70
4246: PPUSH
4247: LD_INT 42
4249: PPUSH
4250: CALL_OW 111
// AddComMoveXY ( nakladak , 70 , 46 ) ;
4254: LD_LOC 10
4258: PPUSH
4259: LD_INT 70
4261: PPUSH
4262: LD_INT 46
4264: PPUSH
4265: CALL_OW 171
// AddComUnload ( nakladak ) ;
4269: LD_LOC 10
4273: PPUSH
4274: CALL_OW 219
// Wait ( 0 0$30 ) ;
4278: LD_INT 1050
4280: PPUSH
4281: CALL_OW 67
// wascargo = true ;
4285: LD_ADDR_LOC 15
4289: PUSH
4290: LD_INT 1
4292: ST_TO_ADDR
// ComMoveXY ( nakladak , 105 , 42 ) ;
4293: LD_LOC 10
4297: PPUSH
4298: LD_INT 105
4300: PPUSH
4301: LD_INT 42
4303: PPUSH
4304: CALL_OW 111
// end ;
4308: LD_VAR 0 1
4312: RET
// every 0 0$0.5 trigger wascargo do
4313: LD_LOC 15
4317: IFFALSE 4363
4319: GO 4321
4321: DISABLE
// begin if IsInArea ( nakladak , naklad ) then
4322: LD_LOC 10
4326: PPUSH
4327: LD_INT 8
4329: PPUSH
4330: CALL_OW 308
4334: IFFALSE 4362
// begin RemoveUnit ( IsInUnit ( nakladak ) ) ;
4336: LD_LOC 10
4340: PPUSH
4341: CALL_OW 310
4345: PPUSH
4346: CALL_OW 64
// RemoveUnit ( nakladak ) ;
4350: LD_LOC 10
4354: PPUSH
4355: CALL_OW 64
// disable ;
4359: DISABLE
// end else
4360: GO 4363
// enable ;
4362: ENABLE
// end ;
4363: END
// var surkyarealist ; every 0 0$2 trigger not isnextday do var crate_list , i ;
4364: LD_LOC 18
4368: NOT
4369: IFFALSE 4572
4371: GO 4373
4373: DISABLE
4374: LD_INT 0
4376: PPUSH
4377: PPUSH
// begin if GetResourceArea ( surky , mat_cans ) <> 0 or GetResourceArea ( surky , mat_oil ) <> 0 or GetResourceArea ( surky , mat_siberit ) <> 0 then
4378: LD_INT 9
4380: PPUSH
4381: LD_INT 1
4383: PPUSH
4384: CALL_OW 287
4388: PUSH
4389: LD_INT 0
4391: NONEQUAL
4392: PUSH
4393: LD_INT 9
4395: PPUSH
4396: LD_INT 2
4398: PPUSH
4399: CALL_OW 287
4403: PUSH
4404: LD_INT 0
4406: NONEQUAL
4407: OR
4408: PUSH
4409: LD_INT 9
4411: PPUSH
4412: LD_INT 3
4414: PPUSH
4415: CALL_OW 287
4419: PUSH
4420: LD_INT 0
4422: NONEQUAL
4423: OR
4424: IFFALSE 4541
// begin surkyarealist = AreaToList ( surky , 0 ) ;
4426: LD_ADDR_LOC 19
4430: PUSH
4431: LD_INT 9
4433: PPUSH
4434: LD_INT 0
4436: PPUSH
4437: CALL_OW 517
4441: ST_TO_ADDR
// for i = 1 to 78 do
4442: LD_ADDR_VAR 0 2
4446: PUSH
4447: DOUBLE
4448: LD_INT 1
4450: DEC
4451: ST_TO_ADDR
4452: LD_INT 78
4454: PUSH
4455: FOR_TO
4456: IFFALSE 4537
// begin if GetResourceAmountXY ( surkyarealist [ 1 ] [ i ] , surkyarealist [ 2 ] [ i ] ) then
4458: LD_LOC 19
4462: PUSH
4463: LD_INT 1
4465: ARRAY
4466: PUSH
4467: LD_VAR 0 2
4471: ARRAY
4472: PPUSH
4473: LD_LOC 19
4477: PUSH
4478: LD_INT 2
4480: ARRAY
4481: PUSH
4482: LD_VAR 0 2
4486: ARRAY
4487: PPUSH
4488: CALL_OW 284
4492: IFFALSE 4535
// begin ComCollect ( mdelnik , surkyarealist [ 1 ] [ i ] , surkyarealist [ 2 ] [ i ] ) ;
4494: LD_LOC 7
4498: PPUSH
4499: LD_LOC 19
4503: PUSH
4504: LD_INT 1
4506: ARRAY
4507: PUSH
4508: LD_VAR 0 2
4512: ARRAY
4513: PPUSH
4514: LD_LOC 19
4518: PUSH
4519: LD_INT 2
4521: ARRAY
4522: PUSH
4523: LD_VAR 0 2
4527: ARRAY
4528: PPUSH
4529: CALL_OW 117
// break ;
4533: GO 4537
// end ; end ;
4535: GO 4455
4537: POP
4538: POP
// end else
4539: GO 4571
// if wascargo and not IsInUnit ( mdelnik ) then
4541: LD_LOC 15
4545: PUSH
4546: LD_LOC 7
4550: PPUSH
4551: CALL_OW 310
4555: NOT
4556: AND
4557: IFFALSE 4571
// begin ComEnterUnit ( mdelnik , depot ) ;
4559: LD_LOC 7
4563: PPUSH
4564: LD_INT 7
4566: PPUSH
4567: CALL_OW 120
// end ; enable ;
4571: ENABLE
// end ;
4572: PPOPN 2
4574: END
// every 0 0$1 trigger isnextday do
4575: LD_LOC 18
4579: IFFALSE 4640
4581: GO 4583
4583: DISABLE
// begin if GetDistUnits ( vsevolod , lesnitsky ) < 3 then
4584: LD_LOC 3
4588: PPUSH
4589: LD_LOC 4
4593: PPUSH
4594: CALL_OW 296
4598: PUSH
4599: LD_INT 3
4601: LESS
4602: IFFALSE 4639
// begin DialogueOn ;
4604: CALL_OW 6
// if not ranotalk then
4608: LD_LOC 16
4612: NOT
4613: IFFALSE 4635
// begin ranotalk = true ;
4615: LD_ADDR_LOC 16
4619: PUSH
4620: LD_INT 1
4622: ST_TO_ADDR
// Say ( lesnitsky , les-9 ) ;
4623: LD_LOC 4
4627: PPUSH
4628: LD_STRING les-9
4630: PPUSH
4631: CALL_OW 88
// end ; CallQuery ( ) ;
4635: CALL 1614 0 0
// end ; enable ;
4639: ENABLE
// end ;
4640: END
// function LoadSave ( ) ; begin
4641: LD_INT 0
4643: PPUSH
// uc_nation = nation_russian ;
4644: LD_ADDR_OWVAR 21
4648: PUSH
4649: LD_INT 3
4651: ST_TO_ADDR
// uc_side = You ;
4652: LD_ADDR_OWVAR 20
4656: PUSH
4657: LD_LOC 1
4661: ST_TO_ADDR
// zachranenaArabka = LoadVariable ( AliceObchodUzavrenOK , 1 ) ;
4662: LD_ADDR_EXP 13
4666: PUSH
4667: LD_STRING AliceObchodUzavrenOK
4669: PPUSH
4670: LD_INT 1
4672: PPUSH
4673: CALL_OW 30
4677: ST_TO_ADDR
// kvantovy = CreateCharacter ( Kvantovy ) ;
4678: LD_ADDR_EXP 10
4682: PUSH
4683: LD_STRING Kvantovy
4685: PPUSH
4686: CALL_OW 34
4690: ST_TO_ADDR
// if not TestCharacters ( Vsevolod ) then
4691: LD_STRING Vsevolod
4693: PPUSH
4694: CALL_OW 28
4698: NOT
4699: IFFALSE 4846
// begin vsevolod = NewCharacter ( Vsevolod ) ;
4701: LD_ADDR_LOC 3
4705: PUSH
4706: LD_STRING Vsevolod
4708: PPUSH
4709: CALL_OW 25
4713: ST_TO_ADDR
// talin = NewCharacter ( Talin ) ;
4714: LD_ADDR_EXP 12
4718: PUSH
4719: LD_STRING Talin
4721: PPUSH
4722: CALL_OW 25
4726: ST_TO_ADDR
// gnevko = NewCharacter ( Gnyevko ) ;
4727: LD_ADDR_EXP 1
4731: PUSH
4732: LD_STRING Gnyevko
4734: PPUSH
4735: CALL_OW 25
4739: ST_TO_ADDR
// petrovova = NewCharacter ( Petrovova ) ;
4740: LD_ADDR_EXP 2
4744: PUSH
4745: LD_STRING Petrovova
4747: PPUSH
4748: CALL_OW 25
4752: ST_TO_ADDR
// dolgov = NewCharacter ( Dolgov ) ;
4753: LD_ADDR_EXP 3
4757: PUSH
4758: LD_STRING Dolgov
4760: PPUSH
4761: CALL_OW 25
4765: ST_TO_ADDR
// karamazov = NewCharacter ( Karamazov ) ;
4766: LD_ADDR_EXP 4
4770: PUSH
4771: LD_STRING Karamazov
4773: PPUSH
4774: CALL_OW 25
4778: ST_TO_ADDR
// titov = NewCharacter ( Titov ) ;
4779: LD_ADDR_EXP 5
4783: PUSH
4784: LD_STRING Titov
4786: PPUSH
4787: CALL_OW 25
4791: ST_TO_ADDR
// kozlov = NewCharacter ( Kozlov ) ;
4792: LD_ADDR_EXP 6
4796: PUSH
4797: LD_STRING Kozlov
4799: PPUSH
4800: CALL_OW 25
4804: ST_TO_ADDR
// kapitsova = NewCharacter ( Kapitsova ) ;
4805: LD_ADDR_EXP 7
4809: PUSH
4810: LD_STRING Kapitsova
4812: PPUSH
4813: CALL_OW 25
4817: ST_TO_ADDR
// alice = NewCharacter ( Alice ) ;
4818: LD_ADDR_EXP 9
4822: PUSH
4823: LD_STRING Alice
4825: PPUSH
4826: CALL_OW 25
4830: ST_TO_ADDR
// richard = NewCharacter ( Richard ) ;
4831: LD_ADDR_EXP 8
4835: PUSH
4836: LD_STRING Richard
4838: PPUSH
4839: CALL_OW 25
4843: ST_TO_ADDR
// end else
4844: GO 5070
// begin vsevolod = CreateCharacter ( Vsevolod ) ;
4846: LD_ADDR_LOC 3
4850: PUSH
4851: LD_STRING Vsevolod
4853: PPUSH
4854: CALL_OW 34
4858: ST_TO_ADDR
// talin = CreateCharacter ( Talin ) ;
4859: LD_ADDR_EXP 12
4863: PUSH
4864: LD_STRING Talin
4866: PPUSH
4867: CALL_OW 34
4871: ST_TO_ADDR
// if TestVariable ( GnyevkoZiv ) then
4872: LD_STRING GnyevkoZiv
4874: PPUSH
4875: CALL_OW 27
4879: IFFALSE 4894
// gnevko = CreateCharacter ( Gnyevko ) ;
4881: LD_ADDR_EXP 1
4885: PUSH
4886: LD_STRING Gnyevko
4888: PPUSH
4889: CALL_OW 34
4893: ST_TO_ADDR
// if TestVariable ( PetrovovaZiv ) then
4894: LD_STRING PetrovovaZiv
4896: PPUSH
4897: CALL_OW 27
4901: IFFALSE 4916
// petrovova = CreateCharacter ( Petrovova ) ;
4903: LD_ADDR_EXP 2
4907: PUSH
4908: LD_STRING Petrovova
4910: PPUSH
4911: CALL_OW 34
4915: ST_TO_ADDR
// if TestVariable ( DolgovZiv ) then
4916: LD_STRING DolgovZiv
4918: PPUSH
4919: CALL_OW 27
4923: IFFALSE 4938
// dolgov = CreateCharacter ( Dolgov ) ;
4925: LD_ADDR_EXP 3
4929: PUSH
4930: LD_STRING Dolgov
4932: PPUSH
4933: CALL_OW 34
4937: ST_TO_ADDR
// if TestVariable ( KaramazovZiv ) then
4938: LD_STRING KaramazovZiv
4940: PPUSH
4941: CALL_OW 27
4945: IFFALSE 4960
// karamazov = CreateCharacter ( Karamazov ) ;
4947: LD_ADDR_EXP 4
4951: PUSH
4952: LD_STRING Karamazov
4954: PPUSH
4955: CALL_OW 34
4959: ST_TO_ADDR
// if TestVariable ( TitovZiv ) then
4960: LD_STRING TitovZiv
4962: PPUSH
4963: CALL_OW 27
4967: IFFALSE 4982
// titov = CreateCharacter ( Titov ) ;
4969: LD_ADDR_EXP 5
4973: PUSH
4974: LD_STRING Titov
4976: PPUSH
4977: CALL_OW 34
4981: ST_TO_ADDR
// if TestVariable ( KozlovZiv ) then
4982: LD_STRING KozlovZiv
4984: PPUSH
4985: CALL_OW 27
4989: IFFALSE 5004
// kozlov = CreateCharacter ( Kozlov ) ;
4991: LD_ADDR_EXP 6
4995: PUSH
4996: LD_STRING Kozlov
4998: PPUSH
4999: CALL_OW 34
5003: ST_TO_ADDR
// if TestVariable ( KapitsovaZiv ) then
5004: LD_STRING KapitsovaZiv
5006: PPUSH
5007: CALL_OW 27
5011: IFFALSE 5026
// kapitsova = CreateCharacter ( Kapitsova ) ;
5013: LD_ADDR_EXP 7
5017: PUSH
5018: LD_STRING Kapitsova
5020: PPUSH
5021: CALL_OW 34
5025: ST_TO_ADDR
// if TestVariable ( AliceZiv ) then
5026: LD_STRING AliceZiv
5028: PPUSH
5029: CALL_OW 27
5033: IFFALSE 5048
// alice = CreateCharacter ( Alice ) ;
5035: LD_ADDR_EXP 9
5039: PUSH
5040: LD_STRING Alice
5042: PPUSH
5043: CALL_OW 34
5047: ST_TO_ADDR
// if TestVariable ( RichardZiv ) then
5048: LD_STRING RichardZiv
5050: PPUSH
5051: CALL_OW 27
5055: IFFALSE 5070
// richard = CreateCharacter ( Richard ) ;
5057: LD_ADDR_EXP 8
5061: PUSH
5062: LD_STRING Richard
5064: PPUSH
5065: CALL_OW 34
5069: ST_TO_ADDR
// end ; SetClass ( vsevolod , 1 ) ;
5070: LD_LOC 3
5074: PPUSH
5075: LD_INT 1
5077: PPUSH
5078: CALL_OW 336
// GiveSkillBonus ( vsevolod , skill_combat , 1 ) ;
5082: LD_LOC 3
5086: PPUSH
5087: LD_INT 1
5089: PPUSH
5090: LD_INT 1
5092: PPUSH
5093: CALL_OW 238
// GiveSkillBonus ( vsevolod , skill_mechanical , 1 ) ;
5097: LD_LOC 3
5101: PPUSH
5102: LD_INT 3
5104: PPUSH
5105: LD_INT 1
5107: PPUSH
5108: CALL_OW 238
// end ;
5112: LD_VAR 0 1
5116: RET
// function KonecMise ( dalsimise ) ; var a ; begin
5117: LD_INT 0
5119: PPUSH
5120: PPUSH
// Wait ( 0 0$10 ) ;
5121: LD_INT 350
5123: PPUSH
5124: CALL_OW 67
// Save ( dalsimise ) ;
5128: LD_VAR 0 1
5132: PPUSH
5133: CALL 5266 0 1
// Wait ( 0 0$0.5 ) ;
5137: LD_INT 18
5139: PPUSH
5140: CALL_OW 67
// ChangeSideFog ( 3 , 8 ) ;
5144: LD_INT 3
5146: PPUSH
5147: LD_INT 8
5149: PPUSH
5150: CALL_OW 343
// your_side = 8 ;
5154: LD_ADDR_OWVAR 2
5158: PUSH
5159: LD_INT 8
5161: ST_TO_ADDR
// if IsInUnit ( vsevolod ) then
5162: LD_LOC 3
5166: PPUSH
5167: CALL_OW 310
5171: IFFALSE 5199
// begin a = IsInUnit ( vsevolod ) ;
5173: LD_ADDR_VAR 0 3
5177: PUSH
5178: LD_LOC 3
5182: PPUSH
5183: CALL_OW 310
5187: ST_TO_ADDR
// RemoveUnit ( a ) ;
5188: LD_VAR 0 3
5192: PPUSH
5193: CALL_OW 64
// end else
5197: GO 5208
// RemoveUnit ( vsevolod ) ;
5199: LD_LOC 3
5203: PPUSH
5204: CALL_OW 64
// ResetFog ;
5208: CALL_OW 335
// HideArea ( 3 , mapa ) ;
5212: LD_INT 3
5214: PPUSH
5215: LD_INT 11
5217: PPUSH
5218: CALL_OW 333
// Wait ( 0 0$0.2 ) ;
5222: LD_INT 7
5224: PPUSH
5225: CALL_OW 67
// if dalsimise = 1 then
5229: LD_VAR 0 1
5233: PUSH
5234: LD_INT 1
5236: EQUAL
5237: IFFALSE 5251
// ChangeMap ( 2 , %_cont ) else
5239: LD_STRING 2
5241: PPUSH
5242: LD_STRING %_cont
5244: PPUSH
5245: CALL_OW 340
5249: GO 5261
// ChangeMap ( 2 , %_cont_cont ) ;
5251: LD_STRING 2
5253: PPUSH
5254: LD_STRING %_cont_cont
5256: PPUSH
5257: CALL_OW 340
// end ;
5261: LD_VAR 0 2
5265: RET
// function Save ( dalsimise ) ; begin
5266: LD_INT 0
5268: PPUSH
// SaveCharacters ( vsevolod , Vsevolod ) ;
5269: LD_LOC 3
5273: PPUSH
5274: LD_STRING Vsevolod
5276: PPUSH
5277: CALL_OW 38
// SaveCharacters ( talin , Talin ) ;
5281: LD_EXP 12
5285: PPUSH
5286: LD_STRING Talin
5288: PPUSH
5289: CALL_OW 38
// SaveCharacters ( gnevko , Gnyevko ) ;
5293: LD_EXP 1
5297: PPUSH
5298: LD_STRING Gnyevko
5300: PPUSH
5301: CALL_OW 38
// SaveCharacters ( petrovova , Petrovova ) ;
5305: LD_EXP 2
5309: PPUSH
5310: LD_STRING Petrovova
5312: PPUSH
5313: CALL_OW 38
// SaveCharacters ( dolgov , Dolgov ) ;
5317: LD_EXP 3
5321: PPUSH
5322: LD_STRING Dolgov
5324: PPUSH
5325: CALL_OW 38
// SaveCharacters ( karamazov , Karamazov ) ;
5329: LD_EXP 4
5333: PPUSH
5334: LD_STRING Karamazov
5336: PPUSH
5337: CALL_OW 38
// SaveCharacters ( titov , Titov ) ;
5341: LD_EXP 5
5345: PPUSH
5346: LD_STRING Titov
5348: PPUSH
5349: CALL_OW 38
// SaveCharacters ( kozlov , Kozlov ) ;
5353: LD_EXP 6
5357: PPUSH
5358: LD_STRING Kozlov
5360: PPUSH
5361: CALL_OW 38
// SaveCharacters ( kapitsova , Kapitsova ) ;
5365: LD_EXP 7
5369: PPUSH
5370: LD_STRING Kapitsova
5372: PPUSH
5373: CALL_OW 38
// SaveCharacters ( alice , Alice ) ;
5377: LD_EXP 9
5381: PPUSH
5382: LD_STRING Alice
5384: PPUSH
5385: CALL_OW 38
// SaveCharacters ( richard , Richard ) ;
5389: LD_EXP 8
5393: PPUSH
5394: LD_STRING Richard
5396: PPUSH
5397: CALL_OW 38
// SaveCharacters ( kvantovy , Kvantovy ) ;
5401: LD_EXP 10
5405: PPUSH
5406: LD_STRING Kvantovy
5408: PPUSH
5409: CALL_OW 38
// if zachranenaArabka then
5413: LD_EXP 13
5417: IFFALSE 5431
// SaveVariable ( 1 , AliceObchodUzavrenOK ) else
5419: LD_INT 1
5421: PPUSH
5422: LD_STRING AliceObchodUzavrenOK
5424: PPUSH
5425: CALL_OW 39
5429: GO 5441
// SaveVariable ( 0 , AliceObchodUzavrenOK ) ;
5431: LD_INT 0
5433: PPUSH
5434: LD_STRING AliceObchodUzavrenOK
5436: PPUSH
5437: CALL_OW 39
// if IsInUnit ( vsevolod ) then
5441: LD_LOC 3
5445: PPUSH
5446: CALL_OW 310
5450: IFFALSE 5462
// SaveVariable ( 1 , jeVAute ) ;
5452: LD_INT 1
5454: PPUSH
5455: LD_STRING jeVAute
5457: PPUSH
5458: CALL_OW 39
// SaveVariable ( dalsimise , DalsiMiseCislo ) ;
5462: LD_VAR 0 1
5466: PPUSH
5467: LD_STRING DalsiMiseCislo
5469: PPUSH
5470: CALL_OW 39
// if dalsimise = 1 then
5474: LD_VAR 0 1
5478: PUSH
5479: LD_INT 1
5481: EQUAL
5482: IFFALSE 5496
// SaveVariable ( 1 , AlaskiteMissionFirst ) else
5484: LD_INT 1
5486: PPUSH
5487: LD_STRING AlaskiteMissionFirst
5489: PPUSH
5490: CALL_OW 39
5494: GO 5506
// SaveVariable ( 0 , AlaskiteMissionFirst ) ;
5496: LD_INT 0
5498: PPUSH
5499: LD_STRING AlaskiteMissionFirst
5501: PPUSH
5502: CALL_OW 39
// end ;
5506: LD_VAR 0 2
5510: RET
