// export editor , you , you2 , amik , amik2 , purple , gray , gnevko , petrovova , dolgov , karamazov , titov , kozlov , kapitsova , richard , alice ; export vsevolod , talin , kara , hrajeme , hrajeYou2 ; starting var podvozek , zbran ; begin Editor = 0 ;
   0: LD_ADDR_EXP 1
   4: PUSH
   5: LD_INT 0
   7: ST_TO_ADDR
// You = 3 ;
   8: LD_ADDR_EXP 2
  12: PUSH
  13: LD_INT 3
  15: ST_TO_ADDR
// You2 = 5 ;
  16: LD_ADDR_EXP 3
  20: PUSH
  21: LD_INT 5
  23: ST_TO_ADDR
// Amik = 1 ;
  24: LD_ADDR_EXP 4
  28: PUSH
  29: LD_INT 1
  31: ST_TO_ADDR
// Amik2 = 4 ;
  32: LD_ADDR_EXP 5
  36: PUSH
  37: LD_INT 4
  39: ST_TO_ADDR
// Purple = 6 ;
  40: LD_ADDR_EXP 6
  44: PUSH
  45: LD_INT 6
  47: ST_TO_ADDR
// Gray = 8 ;
  48: LD_ADDR_EXP 7
  52: PUSH
  53: LD_INT 8
  55: ST_TO_ADDR
// ResetFog ;
  56: CALL_OW 335
// enable ( 01 ) ;
  60: LD_INT 1
  62: ENABLE_MARKED
// disable ( 02 ) ;
  63: LD_INT 2
  65: DISABLE_MARKED
// disable ( 03 ) ;
  66: LD_INT 3
  68: DISABLE_MARKED
// disable ( 08 ) ;
  69: LD_INT 8
  71: DISABLE_MARKED
// disable ( 09 ) ;
  72: LD_INT 9
  74: DISABLE_MARKED
// disable ( 20 ) ;
  75: LD_INT 20
  77: DISABLE_MARKED
// LevaBazaZnicena = false ;
  78: LD_ADDR_EXP 78
  82: PUSH
  83: LD_INT 0
  85: ST_TO_ADDR
// PravaBazaZnicena = false ;
  86: LD_ADDR_EXP 79
  90: PUSH
  91: LD_INT 0
  93: ST_TO_ADDR
// LevaBaza2Znicena = false ;
  94: LD_ADDR_EXP 90
  98: PUSH
  99: LD_INT 0
 101: ST_TO_ADDR
// PravaBaza2Znicena = false ;
 102: LD_ADDR_EXP 92
 106: PUSH
 107: LD_INT 0
 109: ST_TO_ADDR
// enable_death_losts = false ;
 110: LD_ADDR_EXP 74
 114: PUSH
 115: LD_INT 0
 117: ST_TO_ADDR
// hrajeme = false ;
 118: LD_ADDR_EXP 20
 122: PUSH
 123: LD_INT 0
 125: ST_TO_ADDR
// hrajeYou2 = false ;
 126: LD_ADDR_EXP 21
 130: PUSH
 131: LD_INT 0
 133: ST_TO_ADDR
// Ru_Tanky_Max = 3 ;
 134: LD_ADDR_EXP 69
 138: PUSH
 139: LD_INT 3
 141: ST_TO_ADDR
// List_znicenych_budov = [ ] ;
 142: LD_ADDR_EXP 73
 146: PUSH
 147: EMPTY
 148: ST_TO_ADDR
// RandomizeAll ;
 149: CALL_OW 11
// if not Editor then
 153: LD_EXP 1
 157: NOT
 158: IFFALSE 164
// InGameOn ;
 160: CALL_OW 8
// DisableExclamations ;
 164: CALL_OW 474
// uc_side = 3 ;
 168: LD_ADDR_OWVAR 20
 172: PUSH
 173: LD_INT 3
 175: ST_TO_ADDR
// uc_direction = 1 ;
 176: LD_ADDR_OWVAR 24
 180: PUSH
 181: LD_INT 1
 183: ST_TO_ADDR
// if Editor then
 184: LD_EXP 1
 188: IFFALSE 205
// begin vsevolod := NewCharacter ( Vsevolod ) ;
 190: LD_ADDR_EXP 17
 194: PUSH
 195: LD_STRING Vsevolod
 197: PPUSH
 198: CALL_OW 25
 202: ST_TO_ADDR
// end else
 203: GO 218
// vsevolod := CreateCharacter ( Vsevolod ) ;
 205: LD_ADDR_EXP 17
 209: PUSH
 210: LD_STRING Vsevolod
 212: PPUSH
 213: CALL_OW 34
 217: ST_TO_ADDR
// kara = LoadVariable ( vehikl , [ ru_medium_tracked , engine_siberite , control_manual , ru_rocket_launcher ] ) ;
 218: LD_ADDR_EXP 19
 222: PUSH
 223: LD_STRING vehikl
 225: PPUSH
 226: LD_INT 22
 228: PUSH
 229: LD_INT 3
 231: PUSH
 232: LD_INT 1
 234: PUSH
 235: LD_INT 45
 237: PUSH
 238: EMPTY
 239: LIST
 240: LIST
 241: LIST
 242: LIST
 243: PPUSH
 244: CALL_OW 30
 248: ST_TO_ADDR
// LoadPlaceVsevolodVehicle ( kara [ 1 ] , kara [ 4 ] , kara [ 2 ] ) ;
 249: LD_EXP 19
 253: PUSH
 254: LD_INT 1
 256: ARRAY
 257: PPUSH
 258: LD_EXP 19
 262: PUSH
 263: LD_INT 4
 265: ARRAY
 266: PPUSH
 267: LD_EXP 19
 271: PUSH
 272: LD_INT 2
 274: ARRAY
 275: PPUSH
 276: CALL 1916 0 3
// uc_side = You2 ;
 280: LD_ADDR_OWVAR 20
 284: PUSH
 285: LD_EXP 3
 289: ST_TO_ADDR
// talin := NewCharacter ( Talin ) ;
 290: LD_ADDR_EXP 18
 294: PUSH
 295: LD_STRING Talin
 297: PPUSH
 298: CALL_OW 25
 302: ST_TO_ADDR
// uc_side = Gray ;
 303: LD_ADDR_OWVAR 20
 307: PUSH
 308: LD_EXP 7
 312: ST_TO_ADDR
// gnevko := NewCharacter ( Gnyevko ) ;
 313: LD_ADDR_EXP 8
 317: PUSH
 318: LD_STRING Gnyevko
 320: PPUSH
 321: CALL_OW 25
 325: ST_TO_ADDR
// petrovova := NewCharacter ( Petrovova ) ;
 326: LD_ADDR_EXP 9
 330: PUSH
 331: LD_STRING Petrovova
 333: PPUSH
 334: CALL_OW 25
 338: ST_TO_ADDR
// dolgov := NewCharacter ( Dolgov ) ;
 339: LD_ADDR_EXP 10
 343: PUSH
 344: LD_STRING Dolgov
 346: PPUSH
 347: CALL_OW 25
 351: ST_TO_ADDR
// karamazov := NewCharacter ( Karamazov ) ;
 352: LD_ADDR_EXP 11
 356: PUSH
 357: LD_STRING Karamazov
 359: PPUSH
 360: CALL_OW 25
 364: ST_TO_ADDR
// titov := NewCharacter ( Titov ) ;
 365: LD_ADDR_EXP 12
 369: PUSH
 370: LD_STRING Titov
 372: PPUSH
 373: CALL_OW 25
 377: ST_TO_ADDR
// kozlov := NewCharacter ( Kozlov ) ;
 378: LD_ADDR_EXP 13
 382: PUSH
 383: LD_STRING Kozlov
 385: PPUSH
 386: CALL_OW 25
 390: ST_TO_ADDR
// kapitsova := NewCharacter ( Kapitsova ) ;
 391: LD_ADDR_EXP 14
 395: PUSH
 396: LD_STRING Kapitsova
 398: PPUSH
 399: CALL_OW 25
 403: ST_TO_ADDR
// uc_side = 2 ;
 404: LD_ADDR_OWVAR 20
 408: PUSH
 409: LD_INT 2
 411: ST_TO_ADDR
// hc_class = class_soldier ;
 412: LD_ADDR_OWVAR 28
 416: PUSH
 417: LD_INT 1
 419: ST_TO_ADDR
// alice := NewCharacter ( Alice ) ;
 420: LD_ADDR_EXP 16
 424: PUSH
 425: LD_STRING Alice
 427: PPUSH
 428: CALL_OW 25
 432: ST_TO_ADDR
// richard := NewCharacter ( Richard ) ;
 433: LD_ADDR_EXP 15
 437: PUSH
 438: LD_STRING Richard
 440: PPUSH
 441: CALL_OW 25
 445: ST_TO_ADDR
// Obtiznost ;
 446: CALL 8928 0 0
// Place_apes ;
 450: CALL 9831 0 0
// UklidKomunistu ;
 454: CALL 2077 0 0
// NaplnVsechnyBudovyLidma ;
 458: CALL 3516 0 0
// ZakazatStaveni ;
 462: CALL 10970 0 0
// UzVyzkoumano ;
 466: CALL 2039 0 0
// BLevely ;
 470: CALL 2259 0 0
// Init_Amik1 ;
 474: CALL 36449 0 0
// Init_Amik2 ;
 478: CALL 41137 0 0
// Rand_Cesta ;
 482: CALL 30523 0 0
// Init_Makra ;
 486: CALL 30483 0 0
// Init_Makra_Am_Levy ;
 490: CALL 40789 0 0
// Init_Makra_Am_Pravy ;
 494: CALL 44698 0 0
// Init_Makra_Am2_Levy ;
 498: CALL 49858 0 0
// Init_Makra_Am2_Pravy ;
 502: CALL 54736 0 0
// CenterNowOnUnits ( kara ) ;
 506: LD_EXP 19
 510: PPUSH
 511: CALL_OW 87
// ComMoveXY ( Vsevolod , 112 , 166 ) ;
 515: LD_EXP 17
 519: PPUSH
 520: LD_INT 112
 522: PPUSH
 523: LD_INT 166
 525: PPUSH
 526: CALL_OW 111
// AddComMoveXY ( Vsevolod , 125 , 171 ) ;
 530: LD_EXP 17
 534: PPUSH
 535: LD_INT 125
 537: PPUSH
 538: LD_INT 171
 540: PPUSH
 541: CALL_OW 171
// end ;
 545: END
// every 0 0$1 marked 01 do
 546: GO 548
 548: DISABLE
// begin Wait ( 0 0$2.5 ) ;
 549: LD_INT 88
 551: PPUSH
 552: CALL_OW 67
// if Editor then
 556: LD_EXP 1
 560: IFFALSE 564
// exit ;
 562: GO 604
// if Hrajeme then
 564: LD_EXP 20
 568: IFFALSE 572
// exit ;
 570: GO 604
// if IsInUnit ( Vsevolod ) then
 572: LD_EXP 17
 576: PPUSH
 577: CALL_OW 310
 581: IFFALSE 594
// CenterOnUnits ( kara ) else
 583: LD_EXP 19
 587: PPUSH
 588: CALL_OW 85
 592: GO 603
// CenterOnUnits ( Vsevolod ) ;
 594: LD_EXP 17
 598: PPUSH
 599: CALL_OW 85
// enable ;
 603: ENABLE
// end ;
 604: END
// every 0 0$1 trigger GetDistUnitXY ( Vsevolod , 129 , 175 ) <= 7 do
 605: LD_EXP 17
 609: PPUSH
 610: LD_INT 129
 612: PPUSH
 613: LD_INT 175
 615: PPUSH
 616: CALL_OW 297
 620: PUSH
 621: LD_INT 7
 623: LESSEQUAL
 624: IFFALSE 710
 626: GO 628
 628: DISABLE
// begin ComExitVehicle ( Vsevolod ) ;
 629: LD_EXP 17
 633: PPUSH
 634: CALL_OW 121
// repeat Wait ( 0 0$0.5 ) ;
 638: LD_INT 18
 640: PPUSH
 641: CALL_OW 67
// until IsInUnit ( Vsevolod ) = false ;
 645: LD_EXP 17
 649: PPUSH
 650: CALL_OW 310
 654: PUSH
 655: LD_INT 0
 657: EQUAL
 658: IFFALSE 638
// AddComMoveXY ( Vsevolod , 130 , 175 ) ;
 660: LD_EXP 17
 664: PPUSH
 665: LD_INT 130
 667: PPUSH
 668: LD_INT 175
 670: PPUSH
 671: CALL_OW 171
// Wait ( 0 0$2.5 ) ;
 675: LD_INT 88
 677: PPUSH
 678: CALL_OW 67
// ComStop ( Vsevolod ) ;
 682: LD_EXP 17
 686: PPUSH
 687: CALL_OW 141
// ComTurnXY ( Vsevolod , 130 , 178 ) ;
 691: LD_EXP 17
 695: PPUSH
 696: LD_INT 130
 698: PPUSH
 699: LD_INT 178
 701: PPUSH
 702: CALL_OW 118
// StartTalk ;
 706: CALL 711 0 0
// end ;
 710: END
// function StartTalk ; var un ; begin
 711: LD_INT 0
 713: PPUSH
 714: PPUSH
// hrajeYou2 = true ;
 715: LD_ADDR_EXP 21
 719: PUSH
 720: LD_INT 1
 722: ST_TO_ADDR
// Say ( vsevolod , vse-1 ) ;
 723: LD_EXP 17
 727: PPUSH
 728: LD_STRING vse-1
 730: PPUSH
 731: CALL_OW 88
// EnableExclamations ;
 735: CALL_OW 473
// InGameOff ;
 739: CALL_OW 9
// for un in FilterAllUnits ( [ f_side , Gray ] ) do
 743: LD_ADDR_VAR 0 2
 747: PUSH
 748: LD_INT 22
 750: PUSH
 751: LD_EXP 7
 755: PUSH
 756: EMPTY
 757: LIST
 758: LIST
 759: PPUSH
 760: CALL_OW 69
 764: PUSH
 765: FOR_IN
 766: IFFALSE 782
// SetSide ( un , 3 ) ;
 768: LD_VAR 0 2
 772: PPUSH
 773: LD_INT 3
 775: PPUSH
 776: CALL_OW 235
 780: GO 765
 782: POP
 783: POP
// DialogueOn ;
 784: CALL_OW 6
// Say ( petrovova , petrov-1 ) ;
 788: LD_EXP 9
 792: PPUSH
 793: LD_STRING petrov-1
 795: PPUSH
 796: CALL_OW 88
// Say ( kozlov , kozlov-1 ) ;
 800: LD_EXP 13
 804: PPUSH
 805: LD_STRING kozlov-1
 807: PPUSH
 808: CALL_OW 88
// Say ( vsevolod , vse-2 ) ;
 812: LD_EXP 17
 816: PPUSH
 817: LD_STRING vse-2
 819: PPUSH
 820: CALL_OW 88
// Say ( gnevko , gnevko-1 ) ;
 824: LD_EXP 8
 828: PPUSH
 829: LD_STRING gnevko-1
 831: PPUSH
 832: CALL_OW 88
// Say ( karamazov , karamazov-1 ) ;
 836: LD_EXP 11
 840: PPUSH
 841: LD_STRING karamazov-1
 843: PPUSH
 844: CALL_OW 88
// ChangeSideFog ( 5 , 3 ) ;
 848: LD_INT 5
 850: PPUSH
 851: LD_INT 3
 853: PPUSH
 854: CALL_OW 343
// RevealFogArea ( 3 , RuBaza2 ) ;
 858: LD_INT 3
 860: PPUSH
 861: LD_INT 13
 863: PPUSH
 864: CALL_OW 332
// Say ( titov , titov-1 ) ;
 868: LD_EXP 12
 872: PPUSH
 873: LD_STRING titov-1
 875: PPUSH
 876: CALL_OW 88
// Say ( vsevolod , vse-3 ) ;
 880: LD_EXP 17
 884: PPUSH
 885: LD_STRING vse-3
 887: PPUSH
 888: CALL_OW 88
// DialogueOff ;
 892: CALL_OW 7
// disable ( 01 ) ;
 896: LD_INT 1
 898: DISABLE_MARKED
// hrajeme = true ;
 899: LD_ADDR_EXP 20
 903: PUSH
 904: LD_INT 1
 906: ST_TO_ADDR
// tick = 0 ;
 907: LD_ADDR_OWVAR 1
 911: PUSH
 912: LD_INT 0
 914: ST_TO_ADDR
// SaveForQuickRestart ;
 915: CALL_OW 22
// Wait ( 0 0$0.6 ) ;
 919: LD_INT 21
 921: PPUSH
 922: CALL_OW 67
// ChangeMissionObjectives ( M01 ) ;
 926: LD_STRING M01
 928: PPUSH
 929: CALL_OW 337
// end ;
 933: LD_VAR 0 1
 937: RET
// every 0 0$1 do
 938: GO 940
 940: DISABLE
// begin SetResourceType ( GetBase ( mDepot ) , mat_cans , dif_bedny_start + 10 ) ;
 941: LD_INT 96
 943: PPUSH
 944: CALL_OW 274
 948: PPUSH
 949: LD_INT 1
 951: PPUSH
 952: LD_EXP 23
 956: PUSH
 957: LD_INT 10
 959: PLUS
 960: PPUSH
 961: CALL_OW 277
// ComBuild ( karamazov , b_oil_mine , 136 , 194 , 2 ) ;
 965: LD_EXP 11
 969: PPUSH
 970: LD_INT 29
 972: PPUSH
 973: LD_INT 136
 975: PPUSH
 976: LD_INT 194
 978: PPUSH
 979: LD_INT 2
 981: PPUSH
 982: CALL_OW 145
// end ;
 986: END
// every 0 0$1 trigger LevaBazaZnicena and PravaBazaZnicena and LevaBaza2Znicena and PravaBaza2Znicena do
 987: LD_EXP 78
 991: PUSH
 992: LD_EXP 79
 996: AND
 997: PUSH
 998: LD_EXP 90
1002: AND
1003: PUSH
1004: LD_EXP 92
1008: AND
1009: IFFALSE 1018
1011: GO 1013
1013: DISABLE
// begin KonecMise ;
1014: CALL 1019 0 0
// end ;
1018: END
// export VsichniMoji ; export function KonecMise ; var i , k , lidi ; begin
1019: LD_INT 0
1021: PPUSH
1022: PPUSH
1023: PPUSH
1024: PPUSH
// ChangeMissionObjectives ( M05 ) ;
1025: LD_STRING M05
1027: PPUSH
1028: CALL_OW 337
// Say ( vsevolod , vse-19 ) ;
1032: LD_EXP 17
1036: PPUSH
1037: LD_STRING vse-19
1039: PPUSH
1040: CALL_OW 88
// Say ( talin , tal-8 ) ;
1044: LD_EXP 18
1048: PPUSH
1049: LD_STRING tal-8
1051: PPUSH
1052: CALL_OW 88
// DisableExclamations ;
1056: CALL_OW 474
// VsichniMoji = [ vsevolod , gnevko , petrovova , dolgov , karamazov , titov , kozlov , kapitsova ] ;
1060: LD_ADDR_EXP 22
1064: PUSH
1065: LD_EXP 17
1069: PUSH
1070: LD_EXP 8
1074: PUSH
1075: LD_EXP 9
1079: PUSH
1080: LD_EXP 10
1084: PUSH
1085: LD_EXP 11
1089: PUSH
1090: LD_EXP 12
1094: PUSH
1095: LD_EXP 13
1099: PUSH
1100: LD_EXP 14
1104: PUSH
1105: EMPTY
1106: LIST
1107: LIST
1108: LIST
1109: LIST
1110: LIST
1111: LIST
1112: LIST
1113: LIST
1114: ST_TO_ADDR
// for i in VsichniMoji do
1115: LD_ADDR_VAR 0 2
1119: PUSH
1120: LD_EXP 22
1124: PUSH
1125: FOR_IN
1126: IFFALSE 1169
// if IsDead ( i ) or not IsPlaced ( i ) then
1128: LD_VAR 0 2
1132: PPUSH
1133: CALL_OW 301
1137: PUSH
1138: LD_VAR 0 2
1142: PPUSH
1143: CALL_OW 305
1147: NOT
1148: OR
1149: IFFALSE 1167
// VsichniMoji = VsichniMoji diff i ;
1151: LD_ADDR_EXP 22
1155: PUSH
1156: LD_EXP 22
1160: PUSH
1161: LD_VAR 0 2
1165: DIFF
1166: ST_TO_ADDR
1167: GO 1125
1169: POP
1170: POP
// if PortacniVyuzity then
1171: LD_EXP 75
1175: IFFALSE 1189
// AddMedal ( medal , 1 ) else
1177: LD_STRING medal
1179: PPUSH
1180: LD_INT 1
1182: PPUSH
1183: CALL_OW 101
1187: GO 1265
// if GetSide ( Alice ) = You then
1189: LD_EXP 16
1193: PPUSH
1194: CALL_OW 255
1198: PUSH
1199: LD_EXP 2
1203: EQUAL
1204: IFFALSE 1218
// AddMedal ( medal , 2 ) else
1206: LD_STRING medal
1208: PPUSH
1209: LD_INT 2
1211: PPUSH
1212: CALL_OW 101
1216: GO 1265
// if ZenskaBylaZavrena and GetSide ( Alice ) <> You then
1218: LD_EXP 97
1222: PUSH
1223: LD_EXP 16
1227: PPUSH
1228: CALL_OW 255
1232: PUSH
1233: LD_EXP 2
1237: NONEQUAL
1238: AND
1239: IFFALSE 1254
// AddMedal ( medal , - 1 ) else
1241: LD_STRING medal
1243: PPUSH
1244: LD_INT 1
1246: NEG
1247: PPUSH
1248: CALL_OW 101
1252: GO 1265
// AddMedal ( medal , - 2 ) ;
1254: LD_STRING medal
1256: PPUSH
1257: LD_INT 2
1259: NEG
1260: PPUSH
1261: CALL_OW 101
// if VsichniMoji + 0 = 8 then
1265: LD_EXP 22
1269: PUSH
1270: LD_INT 0
1272: PLUS
1273: PUSH
1274: LD_INT 8
1276: EQUAL
1277: IFFALSE 1291
// AddMedal ( medal2 , 1 ) else
1279: LD_STRING medal2
1281: PPUSH
1282: LD_INT 1
1284: PPUSH
1285: CALL_OW 101
1289: GO 1329
// if VsichniMoji + 0 = 7 then
1291: LD_EXP 22
1295: PUSH
1296: LD_INT 0
1298: PLUS
1299: PUSH
1300: LD_INT 7
1302: EQUAL
1303: IFFALSE 1318
// AddMedal ( medal2 , - 1 ) else
1305: LD_STRING medal2
1307: PPUSH
1308: LD_INT 1
1310: NEG
1311: PPUSH
1312: CALL_OW 101
1316: GO 1329
// AddMedal ( medal2 , - 2 ) ;
1318: LD_STRING medal2
1320: PPUSH
1321: LD_INT 2
1323: NEG
1324: PPUSH
1325: CALL_OW 101
// AddMedal ( medal3 , 1 ) ;
1329: LD_STRING medal3
1331: PPUSH
1332: LD_INT 1
1334: PPUSH
1335: CALL_OW 101
// GiveMedals ( Main ) ;
1339: LD_STRING Main
1341: PPUSH
1342: CALL_OW 102
// RewardPeople ( FilterAllUnits ( [ [ f_side , you ] , [ f_type , unit_human ] , [ f_nation , nation_russian ] ] ) ) ;
1346: LD_INT 22
1348: PUSH
1349: LD_EXP 2
1353: PUSH
1354: EMPTY
1355: LIST
1356: LIST
1357: PUSH
1358: LD_INT 21
1360: PUSH
1361: LD_INT 1
1363: PUSH
1364: EMPTY
1365: LIST
1366: LIST
1367: PUSH
1368: LD_INT 23
1370: PUSH
1371: LD_INT 3
1373: PUSH
1374: EMPTY
1375: LIST
1376: LIST
1377: PUSH
1378: EMPTY
1379: LIST
1380: LIST
1381: LIST
1382: PPUSH
1383: CALL_OW 69
1387: PPUSH
1388: CALL_OW 43
// SaveCharacters ( vsevolod , Vsevolod ) ;
1392: LD_EXP 17
1396: PPUSH
1397: LD_STRING Vsevolod
1399: PPUSH
1400: CALL_OW 38
// SaveCharacters ( talin , Talin ) ;
1404: LD_EXP 18
1408: PPUSH
1409: LD_STRING Talin
1411: PPUSH
1412: CALL_OW 38
// SaveCharacters ( gnevko , Gnyevko ) ;
1416: LD_EXP 8
1420: PPUSH
1421: LD_STRING Gnyevko
1423: PPUSH
1424: CALL_OW 38
// SaveCharacters ( petrovova , Petrovova ) ;
1428: LD_EXP 9
1432: PPUSH
1433: LD_STRING Petrovova
1435: PPUSH
1436: CALL_OW 38
// SaveCharacters ( dolgov , Dolgov ) ;
1440: LD_EXP 10
1444: PPUSH
1445: LD_STRING Dolgov
1447: PPUSH
1448: CALL_OW 38
// SaveCharacters ( karamazov , Karamazov ) ;
1452: LD_EXP 11
1456: PPUSH
1457: LD_STRING Karamazov
1459: PPUSH
1460: CALL_OW 38
// SaveCharacters ( titov , Titov ) ;
1464: LD_EXP 12
1468: PPUSH
1469: LD_STRING Titov
1471: PPUSH
1472: CALL_OW 38
// SaveCharacters ( kozlov , Kozlov ) ;
1476: LD_EXP 13
1480: PPUSH
1481: LD_STRING Kozlov
1483: PPUSH
1484: CALL_OW 38
// SaveCharacters ( kapitsova , Kapitsova ) ;
1488: LD_EXP 14
1492: PPUSH
1493: LD_STRING Kapitsova
1495: PPUSH
1496: CALL_OW 38
// SaveCharacters ( alice , Alice ) ;
1500: LD_EXP 16
1504: PPUSH
1505: LD_STRING Alice
1507: PPUSH
1508: CALL_OW 38
// SaveCharacters ( richard , Richard ) ;
1512: LD_EXP 15
1516: PPUSH
1517: LD_STRING Richard
1519: PPUSH
1520: CALL_OW 38
// if vsevolod then
1524: LD_EXP 17
1528: IFFALSE 1542
// SaveVariable ( 1 , VsevolodZiv ) else
1530: LD_INT 1
1532: PPUSH
1533: LD_STRING VsevolodZiv
1535: PPUSH
1536: CALL_OW 39
1540: GO 1552
// SaveVariable ( 0 , VsevolodZiv ) ;
1542: LD_INT 0
1544: PPUSH
1545: LD_STRING VsevolodZiv
1547: PPUSH
1548: CALL_OW 39
// if talin then
1552: LD_EXP 18
1556: IFFALSE 1570
// SaveVariable ( 1 , TalinZiv ) else
1558: LD_INT 1
1560: PPUSH
1561: LD_STRING TalinZiv
1563: PPUSH
1564: CALL_OW 39
1568: GO 1580
// SaveVariable ( 0 , TalinZiv ) ;
1570: LD_INT 0
1572: PPUSH
1573: LD_STRING TalinZiv
1575: PPUSH
1576: CALL_OW 39
// if gnevko then
1580: LD_EXP 8
1584: IFFALSE 1598
// SaveVariable ( 1 , GnyevkoZiv ) else
1586: LD_INT 1
1588: PPUSH
1589: LD_STRING GnyevkoZiv
1591: PPUSH
1592: CALL_OW 39
1596: GO 1608
// SaveVariable ( 0 , GnyevkoZiv ) ;
1598: LD_INT 0
1600: PPUSH
1601: LD_STRING GnyevkoZiv
1603: PPUSH
1604: CALL_OW 39
// if petrovova then
1608: LD_EXP 9
1612: IFFALSE 1626
// SaveVariable ( 1 , PetrovovaZiv ) else
1614: LD_INT 1
1616: PPUSH
1617: LD_STRING PetrovovaZiv
1619: PPUSH
1620: CALL_OW 39
1624: GO 1636
// SaveVariable ( 0 , PetrovovaZiv ) ;
1626: LD_INT 0
1628: PPUSH
1629: LD_STRING PetrovovaZiv
1631: PPUSH
1632: CALL_OW 39
// if dolgov then
1636: LD_EXP 10
1640: IFFALSE 1654
// SaveVariable ( 1 , DolgovZiv ) else
1642: LD_INT 1
1644: PPUSH
1645: LD_STRING DolgovZiv
1647: PPUSH
1648: CALL_OW 39
1652: GO 1664
// SaveVariable ( 0 , DolgovZiv ) ;
1654: LD_INT 0
1656: PPUSH
1657: LD_STRING DolgovZiv
1659: PPUSH
1660: CALL_OW 39
// if karamazov then
1664: LD_EXP 11
1668: IFFALSE 1682
// SaveVariable ( 1 , KaramazovZiv ) else
1670: LD_INT 1
1672: PPUSH
1673: LD_STRING KaramazovZiv
1675: PPUSH
1676: CALL_OW 39
1680: GO 1692
// SaveVariable ( 0 , KaramazovZiv ) ;
1682: LD_INT 0
1684: PPUSH
1685: LD_STRING KaramazovZiv
1687: PPUSH
1688: CALL_OW 39
// if titov then
1692: LD_EXP 12
1696: IFFALSE 1710
// SaveVariable ( 1 , TitovZiv ) else
1698: LD_INT 1
1700: PPUSH
1701: LD_STRING TitovZiv
1703: PPUSH
1704: CALL_OW 39
1708: GO 1720
// SaveVariable ( 0 , TitovZiv ) ;
1710: LD_INT 0
1712: PPUSH
1713: LD_STRING TitovZiv
1715: PPUSH
1716: CALL_OW 39
// if kozlov then
1720: LD_EXP 13
1724: IFFALSE 1738
// SaveVariable ( 1 , KozlovZiv ) else
1726: LD_INT 1
1728: PPUSH
1729: LD_STRING KozlovZiv
1731: PPUSH
1732: CALL_OW 39
1736: GO 1748
// SaveVariable ( 0 , KozlovZiv ) ;
1738: LD_INT 0
1740: PPUSH
1741: LD_STRING KozlovZiv
1743: PPUSH
1744: CALL_OW 39
// if kapitsova then
1748: LD_EXP 14
1752: IFFALSE 1766
// SaveVariable ( 1 , KapitsovaZiv ) else
1754: LD_INT 1
1756: PPUSH
1757: LD_STRING KapitsovaZiv
1759: PPUSH
1760: CALL_OW 39
1764: GO 1776
// SaveVariable ( 0 , KapitsovaZiv ) ;
1766: LD_INT 0
1768: PPUSH
1769: LD_STRING KapitsovaZiv
1771: PPUSH
1772: CALL_OW 39
// if alice then
1776: LD_EXP 16
1780: IFFALSE 1794
// SaveVariable ( 1 , AliceZiv ) else
1782: LD_INT 1
1784: PPUSH
1785: LD_STRING AliceZiv
1787: PPUSH
1788: CALL_OW 39
1792: GO 1804
// SaveVariable ( 0 , AliceZiv ) ;
1794: LD_INT 0
1796: PPUSH
1797: LD_STRING AliceZiv
1799: PPUSH
1800: CALL_OW 39
// if richard then
1804: LD_EXP 15
1808: IFFALSE 1822
// SaveVariable ( 1 , RichardZiv ) else
1810: LD_INT 1
1812: PPUSH
1813: LD_STRING RichardZiv
1815: PPUSH
1816: CALL_OW 39
1820: GO 1832
// SaveVariable ( 0 , RichardZiv ) ;
1822: LD_INT 0
1824: PPUSH
1825: LD_STRING RichardZiv
1827: PPUSH
1828: CALL_OW 39
// if OdstranitZenskou and GetSide ( Alice ) = You and IsPlaced ( Alice ) = false and IsDead ( alice ) = false then
1832: LD_EXP 96
1836: PUSH
1837: LD_EXP 16
1841: PPUSH
1842: CALL_OW 255
1846: PUSH
1847: LD_EXP 2
1851: EQUAL
1852: AND
1853: PUSH
1854: LD_EXP 16
1858: PPUSH
1859: CALL_OW 305
1863: PUSH
1864: LD_INT 0
1866: EQUAL
1867: AND
1868: PUSH
1869: LD_EXP 16
1873: PPUSH
1874: CALL_OW 301
1878: PUSH
1879: LD_INT 0
1881: EQUAL
1882: AND
1883: IFFALSE 1897
// SaveVariable ( 1 , AliceObchodUzavrenOK ) else
1885: LD_INT 1
1887: PPUSH
1888: LD_STRING AliceObchodUzavrenOK
1890: PPUSH
1891: CALL_OW 39
1895: GO 1907
// SaveVariable ( 0 , AliceObchodUzavrenOK ) ;
1897: LD_INT 0
1899: PPUSH
1900: LD_STRING AliceObchodUzavrenOK
1902: PPUSH
1903: CALL_OW 39
// YouWin ;
1907: CALL_OW 103
// end ; end_of_file
1911: LD_VAR 0 1
1915: RET
// export function LoadPlaceVsevolodVehicle ( podvozek , zbran , motor ) ; var v ; begin
1916: LD_INT 0
1918: PPUSH
1919: PPUSH
// uc_side = 3 ;
1920: LD_ADDR_OWVAR 20
1924: PUSH
1925: LD_INT 3
1927: ST_TO_ADDR
// uc_nation = nation_russian ;
1928: LD_ADDR_OWVAR 21
1932: PUSH
1933: LD_INT 3
1935: ST_TO_ADDR
// vc_chassis = podvozek ;
1936: LD_ADDR_OWVAR 37
1940: PUSH
1941: LD_VAR 0 1
1945: ST_TO_ADDR
// vc_control = control_manual ;
1946: LD_ADDR_OWVAR 38
1950: PUSH
1951: LD_INT 1
1953: ST_TO_ADDR
// vc_engine = motor ;
1954: LD_ADDR_OWVAR 39
1958: PUSH
1959: LD_VAR 0 3
1963: ST_TO_ADDR
// vc_weapon = zbran ;
1964: LD_ADDR_OWVAR 40
1968: PUSH
1969: LD_VAR 0 2
1973: ST_TO_ADDR
// vc_fuel_battery = 100 ;
1974: LD_ADDR_OWVAR 41
1978: PUSH
1979: LD_INT 100
1981: ST_TO_ADDR
// v = CreateVehicle ;
1982: LD_ADDR_VAR 0 5
1986: PUSH
1987: CALL_OW 45
1991: ST_TO_ADDR
// PlaceUnitXY ( v , 81 , 153 , false ) ;
1992: LD_VAR 0 5
1996: PPUSH
1997: LD_INT 81
1999: PPUSH
2000: LD_INT 153
2002: PPUSH
2003: LD_INT 0
2005: PPUSH
2006: CALL_OW 48
// PlaceHumanInUnit ( vsevolod , v ) ;
2010: LD_EXP 17
2014: PPUSH
2015: LD_VAR 0 5
2019: PPUSH
2020: CALL_OW 52
// kara = v ;
2024: LD_ADDR_EXP 19
2028: PUSH
2029: LD_VAR 0 5
2033: ST_TO_ADDR
// end ;
2034: LD_VAR 0 4
2038: RET
// export function UzVyzkoumano ; begin
2039: LD_INT 0
2041: PPUSH
// SetTech ( tech_tech1 , Purple , state_researched ) ;
2042: LD_INT 48
2044: PPUSH
2045: LD_EXP 6
2049: PPUSH
2050: LD_INT 2
2052: PPUSH
2053: CALL_OW 322
// SetTech ( tech_tech2 , Purple , state_researched ) ;
2057: LD_INT 49
2059: PPUSH
2060: LD_EXP 6
2064: PPUSH
2065: LD_INT 2
2067: PPUSH
2068: CALL_OW 322
// end ;
2072: LD_VAR 0 1
2076: RET
// export function UklidKomunistu ; begin
2077: LD_INT 0
2079: PPUSH
// SetDir ( gnevko , GetDir ( mBreast ) + 3 ) ;
2080: LD_EXP 8
2084: PPUSH
2085: LD_INT 179
2087: PPUSH
2088: CALL_OW 254
2092: PUSH
2093: LD_INT 3
2095: PLUS
2096: PPUSH
2097: CALL_OW 233
// SetDir ( titov , GetDir ( mBreast2 ) + 3 ) ;
2101: LD_EXP 12
2105: PPUSH
2106: LD_INT 95
2108: PPUSH
2109: CALL_OW 254
2113: PUSH
2114: LD_INT 3
2116: PLUS
2117: PPUSH
2118: CALL_OW 233
// PlaceHumanInUnit ( gnevko , mBreast ) ;
2122: LD_EXP 8
2126: PPUSH
2127: LD_INT 179
2129: PPUSH
2130: CALL_OW 52
// PlaceUnitXY ( petrovova , 130 , 176 , false ) ;
2134: LD_EXP 9
2138: PPUSH
2139: LD_INT 130
2141: PPUSH
2142: LD_INT 176
2144: PPUSH
2145: LD_INT 0
2147: PPUSH
2148: CALL_OW 48
// PlaceUnitXY ( dolgov , 137 , 191 , false ) ;
2152: LD_EXP 10
2156: PPUSH
2157: LD_INT 137
2159: PPUSH
2160: LD_INT 191
2162: PPUSH
2163: LD_INT 0
2165: PPUSH
2166: CALL_OW 48
// PlaceUnitXY ( karamazov , 132 , 172 , false ) ;
2170: LD_EXP 11
2174: PPUSH
2175: LD_INT 132
2177: PPUSH
2178: LD_INT 172
2180: PPUSH
2181: LD_INT 0
2183: PPUSH
2184: CALL_OW 48
// PlaceHumanInUnit ( titov , mBreast2 ) ;
2188: LD_EXP 12
2192: PPUSH
2193: LD_INT 95
2195: PPUSH
2196: CALL_OW 52
// PlaceUnitXY ( kozlov , 133 , 176 , false ) ;
2200: LD_EXP 13
2204: PPUSH
2205: LD_INT 133
2207: PPUSH
2208: LD_INT 176
2210: PPUSH
2211: LD_INT 0
2213: PPUSH
2214: CALL_OW 48
// PlaceUnitXY ( kapitsova , 128 , 170 , false ) ;
2218: LD_EXP 14
2222: PPUSH
2223: LD_INT 128
2225: PPUSH
2226: LD_INT 170
2228: PPUSH
2229: LD_INT 0
2231: PPUSH
2232: CALL_OW 48
// PlaceUnitXY ( talin , 218 , 176 , false ) ;
2236: LD_EXP 18
2240: PPUSH
2241: LD_INT 218
2243: PPUSH
2244: LD_INT 176
2246: PPUSH
2247: LD_INT 0
2249: PPUSH
2250: CALL_OW 48
// end ;
2254: LD_VAR 0 1
2258: RET
// export function BLevely ; begin
2259: LD_INT 0
2261: PPUSH
// SetBLevel ( ( FilterAllUnits ( [ [ f_type , unit_building ] , [ f_side , Gray ] ] ) ) , GetSkill ( FilterAllUnits ( [ [ f_placed ] , [ f_side , Gray ] , [ f_class , class_engineer ] ] ) [ 1 ] , skill_engineering ) ) ;
2262: LD_INT 21
2264: PUSH
2265: LD_INT 3
2267: PUSH
2268: EMPTY
2269: LIST
2270: LIST
2271: PUSH
2272: LD_INT 22
2274: PUSH
2275: LD_EXP 7
2279: PUSH
2280: EMPTY
2281: LIST
2282: LIST
2283: PUSH
2284: EMPTY
2285: LIST
2286: LIST
2287: PPUSH
2288: CALL_OW 69
2292: PPUSH
2293: LD_INT 52
2295: PUSH
2296: EMPTY
2297: LIST
2298: PUSH
2299: LD_INT 22
2301: PUSH
2302: LD_EXP 7
2306: PUSH
2307: EMPTY
2308: LIST
2309: LIST
2310: PUSH
2311: LD_INT 25
2313: PUSH
2314: LD_INT 2
2316: PUSH
2317: EMPTY
2318: LIST
2319: LIST
2320: PUSH
2321: EMPTY
2322: LIST
2323: LIST
2324: LIST
2325: PPUSH
2326: CALL_OW 69
2330: PUSH
2331: LD_INT 1
2333: ARRAY
2334: PPUSH
2335: LD_INT 2
2337: PPUSH
2338: CALL_OW 259
2342: PPUSH
2343: CALL_OW 241
// SetBLevel ( ( FilterAllUnits ( [ [ f_type , unit_building ] , [ f_side , You2 ] ] ) ) , GetSkill ( FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_class , class_engineer ] ] ) [ 1 ] , skill_engineering ) ) ;
2347: LD_INT 21
2349: PUSH
2350: LD_INT 3
2352: PUSH
2353: EMPTY
2354: LIST
2355: LIST
2356: PUSH
2357: LD_INT 22
2359: PUSH
2360: LD_EXP 3
2364: PUSH
2365: EMPTY
2366: LIST
2367: LIST
2368: PUSH
2369: EMPTY
2370: LIST
2371: LIST
2372: PPUSH
2373: CALL_OW 69
2377: PPUSH
2378: LD_INT 52
2380: PUSH
2381: EMPTY
2382: LIST
2383: PUSH
2384: LD_INT 22
2386: PUSH
2387: LD_EXP 3
2391: PUSH
2392: EMPTY
2393: LIST
2394: LIST
2395: PUSH
2396: LD_INT 25
2398: PUSH
2399: LD_INT 2
2401: PUSH
2402: EMPTY
2403: LIST
2404: LIST
2405: PUSH
2406: EMPTY
2407: LIST
2408: LIST
2409: LIST
2410: PPUSH
2411: CALL_OW 69
2415: PUSH
2416: LD_INT 1
2418: ARRAY
2419: PPUSH
2420: LD_INT 2
2422: PPUSH
2423: CALL_OW 259
2427: PPUSH
2428: CALL_OW 241
// SetBLevel ( ( FilterAllUnits ( [ [ f_type , unit_building ] , [ f_side , Amik ] ] ) ) , GetSkill ( FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik ] , [ f_class , class_engineer ] ] ) [ 1 ] , skill_engineering ) ) ;
2432: LD_INT 21
2434: PUSH
2435: LD_INT 3
2437: PUSH
2438: EMPTY
2439: LIST
2440: LIST
2441: PUSH
2442: LD_INT 22
2444: PUSH
2445: LD_EXP 4
2449: PUSH
2450: EMPTY
2451: LIST
2452: LIST
2453: PUSH
2454: EMPTY
2455: LIST
2456: LIST
2457: PPUSH
2458: CALL_OW 69
2462: PPUSH
2463: LD_INT 52
2465: PUSH
2466: EMPTY
2467: LIST
2468: PUSH
2469: LD_INT 22
2471: PUSH
2472: LD_EXP 4
2476: PUSH
2477: EMPTY
2478: LIST
2479: LIST
2480: PUSH
2481: LD_INT 25
2483: PUSH
2484: LD_INT 2
2486: PUSH
2487: EMPTY
2488: LIST
2489: LIST
2490: PUSH
2491: EMPTY
2492: LIST
2493: LIST
2494: LIST
2495: PPUSH
2496: CALL_OW 69
2500: PUSH
2501: LD_INT 1
2503: ARRAY
2504: PPUSH
2505: LD_INT 2
2507: PPUSH
2508: CALL_OW 259
2512: PPUSH
2513: CALL_OW 241
// SetBLevel ( ( FilterAllUnits ( [ [ f_type , unit_building ] , [ f_side , Amik2 ] ] ) ) , GetSkill ( FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik2 ] , [ f_class , class_engineer ] ] ) [ 1 ] , skill_engineering ) ) ;
2517: LD_INT 21
2519: PUSH
2520: LD_INT 3
2522: PUSH
2523: EMPTY
2524: LIST
2525: LIST
2526: PUSH
2527: LD_INT 22
2529: PUSH
2530: LD_EXP 5
2534: PUSH
2535: EMPTY
2536: LIST
2537: LIST
2538: PUSH
2539: EMPTY
2540: LIST
2541: LIST
2542: PPUSH
2543: CALL_OW 69
2547: PPUSH
2548: LD_INT 52
2550: PUSH
2551: EMPTY
2552: LIST
2553: PUSH
2554: LD_INT 22
2556: PUSH
2557: LD_EXP 5
2561: PUSH
2562: EMPTY
2563: LIST
2564: LIST
2565: PUSH
2566: LD_INT 25
2568: PUSH
2569: LD_INT 2
2571: PUSH
2572: EMPTY
2573: LIST
2574: LIST
2575: PUSH
2576: EMPTY
2577: LIST
2578: LIST
2579: LIST
2580: PPUSH
2581: CALL_OW 69
2585: PUSH
2586: LD_INT 1
2588: ARRAY
2589: PPUSH
2590: LD_INT 2
2592: PPUSH
2593: CALL_OW 259
2597: PPUSH
2598: CALL_OW 241
// end ;
2602: LD_VAR 0 1
2606: RET
// export function IsOutside ( un ) ; begin
2607: LD_INT 0
2609: PPUSH
// if not IsInUnit ( un ) then
2610: LD_VAR 0 1
2614: PPUSH
2615: CALL_OW 310
2619: NOT
2620: IFFALSE 2632
// result = true else
2622: LD_ADDR_VAR 0 2
2626: PUSH
2627: LD_INT 1
2629: ST_TO_ADDR
2630: GO 2640
// result = false ;
2632: LD_ADDR_VAR 0 2
2636: PUSH
2637: LD_INT 0
2639: ST_TO_ADDR
// end ;
2640: LD_VAR 0 2
2644: RET
// export function VyjdiVen ( un ) ; begin
2645: LD_INT 0
2647: PPUSH
// if IsInUnit ( un ) then
2648: LD_VAR 0 1
2652: PPUSH
2653: CALL_OW 310
2657: IFFALSE 2751
// begin if GetClass ( un ) = class_bazooker then
2659: LD_VAR 0 1
2663: PPUSH
2664: CALL_OW 257
2668: PUSH
2669: LD_INT 9
2671: EQUAL
2672: IFFALSE 2686
// SetClass ( un , class_soldier ) ;
2674: LD_VAR 0 1
2678: PPUSH
2679: LD_INT 1
2681: PPUSH
2682: CALL_OW 336
// if GetType ( IsInUnit ( un ) ) = unit_building then
2686: LD_VAR 0 1
2690: PPUSH
2691: CALL_OW 310
2695: PPUSH
2696: CALL_OW 247
2700: PUSH
2701: LD_INT 3
2703: EQUAL
2704: IFFALSE 2715
// ComExitBuilding ( un ) ;
2706: LD_VAR 0 1
2710: PPUSH
2711: CALL_OW 122
// if GetType ( IsInUnit ( un ) ) = unit_vehicle then
2715: LD_VAR 0 1
2719: PPUSH
2720: CALL_OW 310
2724: PPUSH
2725: CALL_OW 247
2729: PUSH
2730: LD_INT 2
2732: EQUAL
2733: IFFALSE 2744
// ComExitVehicle ( un ) ;
2735: LD_VAR 0 1
2739: PPUSH
2740: CALL_OW 121
// Wait ( 0 0$0.2 ) ;
2744: LD_INT 7
2746: PPUSH
2747: CALL_OW 67
// end ; end ;
2751: LD_VAR 0 2
2755: RET
// export function VytvorCloveka ( narod , strana , povolani ) ; var un , x , mx ; begin
2756: LD_INT 0
2758: PPUSH
2759: PPUSH
2760: PPUSH
2761: PPUSH
// x = dif_enemy_skill ;
2762: LD_ADDR_VAR 0 6
2766: PUSH
2767: LD_EXP 24
2771: ST_TO_ADDR
// mx = dif_enemy_ostatni_skill_max ;
2772: LD_ADDR_VAR 0 7
2776: PUSH
2777: LD_EXP 25
2781: ST_TO_ADDR
// if strana = Amik then
2782: LD_VAR 0 2
2786: PUSH
2787: LD_EXP 4
2791: EQUAL
2792: IFFALSE 2822
// begin x = x - 1 ;
2794: LD_ADDR_VAR 0 6
2798: PUSH
2799: LD_VAR 0 6
2803: PUSH
2804: LD_INT 1
2806: MINUS
2807: ST_TO_ADDR
// mx = mx - 1 ;
2808: LD_ADDR_VAR 0 7
2812: PUSH
2813: LD_VAR 0 7
2817: PUSH
2818: LD_INT 1
2820: MINUS
2821: ST_TO_ADDR
// end ; if strana = You2 then
2822: LD_VAR 0 2
2826: PUSH
2827: LD_EXP 3
2831: EQUAL
2832: IFFALSE 2850
// begin x = 6 ;
2834: LD_ADDR_VAR 0 6
2838: PUSH
2839: LD_INT 6
2841: ST_TO_ADDR
// mx = 3 ;
2842: LD_ADDR_VAR 0 7
2846: PUSH
2847: LD_INT 3
2849: ST_TO_ADDR
// end ; hc_name :=  ;
2850: LD_ADDR_OWVAR 26
2854: PUSH
2855: LD_STRING 
2857: ST_TO_ADDR
// hc_attr := [ rand ( 9 , 11 ) , rand ( 9 , 11 ) ] ;
2858: LD_ADDR_OWVAR 29
2862: PUSH
2863: LD_INT 9
2865: PPUSH
2866: LD_INT 11
2868: PPUSH
2869: CALL_OW 12
2873: PUSH
2874: LD_INT 9
2876: PPUSH
2877: LD_INT 11
2879: PPUSH
2880: CALL_OW 12
2884: PUSH
2885: EMPTY
2886: LIST
2887: LIST
2888: ST_TO_ADDR
// if strana = you2 then
2889: LD_VAR 0 2
2893: PUSH
2894: LD_EXP 3
2898: EQUAL
2899: IFFALSE 2975
// begin if povolani = 2 then
2901: LD_VAR 0 3
2905: PUSH
2906: LD_INT 2
2908: EQUAL
2909: IFFALSE 2944
// hc_attr := [ rand ( 12 , 14 ) , rand ( 11 , 12 ) ] else
2911: LD_ADDR_OWVAR 29
2915: PUSH
2916: LD_INT 12
2918: PPUSH
2919: LD_INT 14
2921: PPUSH
2922: CALL_OW 12
2926: PUSH
2927: LD_INT 11
2929: PPUSH
2930: LD_INT 12
2932: PPUSH
2933: CALL_OW 12
2937: PUSH
2938: EMPTY
2939: LIST
2940: LIST
2941: ST_TO_ADDR
2942: GO 2975
// hc_attr := [ rand ( 10 , 12 ) , rand ( 10 , 13 ) ] ;
2944: LD_ADDR_OWVAR 29
2948: PUSH
2949: LD_INT 10
2951: PPUSH
2952: LD_INT 12
2954: PPUSH
2955: CALL_OW 12
2959: PUSH
2960: LD_INT 10
2962: PPUSH
2963: LD_INT 13
2965: PPUSH
2966: CALL_OW 12
2970: PUSH
2971: EMPTY
2972: LIST
2973: LIST
2974: ST_TO_ADDR
// end ; if strana = purple then
2975: LD_VAR 0 2
2979: PUSH
2980: LD_EXP 6
2984: EQUAL
2985: IFFALSE 3018
// hc_attr := [ rand ( 10 , 12 ) , rand ( 10 , 13 ) ] ;
2987: LD_ADDR_OWVAR 29
2991: PUSH
2992: LD_INT 10
2994: PPUSH
2995: LD_INT 12
2997: PPUSH
2998: CALL_OW 12
3002: PUSH
3003: LD_INT 10
3005: PPUSH
3006: LD_INT 13
3008: PPUSH
3009: CALL_OW 12
3013: PUSH
3014: EMPTY
3015: LIST
3016: LIST
3017: ST_TO_ADDR
// uc_nation := narod ;
3018: LD_ADDR_OWVAR 21
3022: PUSH
3023: LD_VAR 0 1
3027: ST_TO_ADDR
// uc_side = strana ;
3028: LD_ADDR_OWVAR 20
3032: PUSH
3033: LD_VAR 0 2
3037: ST_TO_ADDR
// if Prob ( 20 ) then
3038: LD_INT 20
3040: PPUSH
3041: CALL_OW 13
3045: IFFALSE 3057
// hc_sex := 2 else
3047: LD_ADDR_OWVAR 27
3051: PUSH
3052: LD_INT 2
3054: ST_TO_ADDR
3055: GO 3065
// hc_sex := 1 ;
3057: LD_ADDR_OWVAR 27
3061: PUSH
3062: LD_INT 1
3064: ST_TO_ADDR
// case povolani of 1 :
3065: LD_VAR 0 3
3069: PUSH
3070: LD_INT 1
3072: DOUBLE
3073: EQUAL
3074: IFTRUE 3078
3076: GO 3158
3078: POP
// begin hc_skills := [ rand ( x - 1 , x ) , rand ( 0 , mx ) , rand ( 0 , mx ) , rand ( 0 , mx ) ] ;
3079: LD_ADDR_OWVAR 31
3083: PUSH
3084: LD_VAR 0 6
3088: PUSH
3089: LD_INT 1
3091: MINUS
3092: PPUSH
3093: LD_VAR 0 6
3097: PPUSH
3098: CALL_OW 12
3102: PUSH
3103: LD_INT 0
3105: PPUSH
3106: LD_VAR 0 7
3110: PPUSH
3111: CALL_OW 12
3115: PUSH
3116: LD_INT 0
3118: PPUSH
3119: LD_VAR 0 7
3123: PPUSH
3124: CALL_OW 12
3128: PUSH
3129: LD_INT 0
3131: PPUSH
3132: LD_VAR 0 7
3136: PPUSH
3137: CALL_OW 12
3141: PUSH
3142: EMPTY
3143: LIST
3144: LIST
3145: LIST
3146: LIST
3147: ST_TO_ADDR
// hc_class = class_soldier ;
3148: LD_ADDR_OWVAR 28
3152: PUSH
3153: LD_INT 1
3155: ST_TO_ADDR
// end ; 2 :
3156: GO 3501
3158: LD_INT 2
3160: DOUBLE
3161: EQUAL
3162: IFTRUE 3166
3164: GO 3246
3166: POP
// begin hc_skills := [ rand ( 0 , mx ) , rand ( x - 1 , x ) , rand ( 0 , mx ) , rand ( 0 , mx ) ] ;
3167: LD_ADDR_OWVAR 31
3171: PUSH
3172: LD_INT 0
3174: PPUSH
3175: LD_VAR 0 7
3179: PPUSH
3180: CALL_OW 12
3184: PUSH
3185: LD_VAR 0 6
3189: PUSH
3190: LD_INT 1
3192: MINUS
3193: PPUSH
3194: LD_VAR 0 6
3198: PPUSH
3199: CALL_OW 12
3203: PUSH
3204: LD_INT 0
3206: PPUSH
3207: LD_VAR 0 7
3211: PPUSH
3212: CALL_OW 12
3216: PUSH
3217: LD_INT 0
3219: PPUSH
3220: LD_VAR 0 7
3224: PPUSH
3225: CALL_OW 12
3229: PUSH
3230: EMPTY
3231: LIST
3232: LIST
3233: LIST
3234: LIST
3235: ST_TO_ADDR
// hc_class = class_engineer ;
3236: LD_ADDR_OWVAR 28
3240: PUSH
3241: LD_INT 2
3243: ST_TO_ADDR
// end ; 3 :
3244: GO 3501
3246: LD_INT 3
3248: DOUBLE
3249: EQUAL
3250: IFTRUE 3254
3252: GO 3334
3254: POP
// begin hc_skills := [ rand ( 0 , mx ) , rand ( 0 , mx ) , rand ( x - 1 , x ) , rand ( 0 , mx ) ] ;
3255: LD_ADDR_OWVAR 31
3259: PUSH
3260: LD_INT 0
3262: PPUSH
3263: LD_VAR 0 7
3267: PPUSH
3268: CALL_OW 12
3272: PUSH
3273: LD_INT 0
3275: PPUSH
3276: LD_VAR 0 7
3280: PPUSH
3281: CALL_OW 12
3285: PUSH
3286: LD_VAR 0 6
3290: PUSH
3291: LD_INT 1
3293: MINUS
3294: PPUSH
3295: LD_VAR 0 6
3299: PPUSH
3300: CALL_OW 12
3304: PUSH
3305: LD_INT 0
3307: PPUSH
3308: LD_VAR 0 7
3312: PPUSH
3313: CALL_OW 12
3317: PUSH
3318: EMPTY
3319: LIST
3320: LIST
3321: LIST
3322: LIST
3323: ST_TO_ADDR
// hc_class = class_mechanic ;
3324: LD_ADDR_OWVAR 28
3328: PUSH
3329: LD_INT 3
3331: ST_TO_ADDR
// end ; 4 :
3332: GO 3501
3334: LD_INT 4
3336: DOUBLE
3337: EQUAL
3338: IFTRUE 3342
3340: GO 3422
3342: POP
// begin hc_skills := [ rand ( 0 , mx ) , rand ( 0 , mx ) , rand ( 0 , mx ) , rand ( x - 1 , x ) ] ;
3343: LD_ADDR_OWVAR 31
3347: PUSH
3348: LD_INT 0
3350: PPUSH
3351: LD_VAR 0 7
3355: PPUSH
3356: CALL_OW 12
3360: PUSH
3361: LD_INT 0
3363: PPUSH
3364: LD_VAR 0 7
3368: PPUSH
3369: CALL_OW 12
3373: PUSH
3374: LD_INT 0
3376: PPUSH
3377: LD_VAR 0 7
3381: PPUSH
3382: CALL_OW 12
3386: PUSH
3387: LD_VAR 0 6
3391: PUSH
3392: LD_INT 1
3394: MINUS
3395: PPUSH
3396: LD_VAR 0 6
3400: PPUSH
3401: CALL_OW 12
3405: PUSH
3406: EMPTY
3407: LIST
3408: LIST
3409: LIST
3410: LIST
3411: ST_TO_ADDR
// hc_class = class_scientistic ;
3412: LD_ADDR_OWVAR 28
3416: PUSH
3417: LD_INT 4
3419: ST_TO_ADDR
// end ; 5 :
3420: GO 3501
3422: LD_INT 5
3424: DOUBLE
3425: EQUAL
3426: IFTRUE 3430
3428: GO 3500
3430: POP
// begin hc_skills := [ x - 1 , rand ( 0 , mx ) , rand ( 0 , mx ) , rand ( 0 , mx ) ] ;
3431: LD_ADDR_OWVAR 31
3435: PUSH
3436: LD_VAR 0 6
3440: PUSH
3441: LD_INT 1
3443: MINUS
3444: PUSH
3445: LD_INT 0
3447: PPUSH
3448: LD_VAR 0 7
3452: PPUSH
3453: CALL_OW 12
3457: PUSH
3458: LD_INT 0
3460: PPUSH
3461: LD_VAR 0 7
3465: PPUSH
3466: CALL_OW 12
3470: PUSH
3471: LD_INT 0
3473: PPUSH
3474: LD_VAR 0 7
3478: PPUSH
3479: CALL_OW 12
3483: PUSH
3484: EMPTY
3485: LIST
3486: LIST
3487: LIST
3488: LIST
3489: ST_TO_ADDR
// hc_class = class_sniper ;
3490: LD_ADDR_OWVAR 28
3494: PUSH
3495: LD_INT 5
3497: ST_TO_ADDR
// end ; end ;
3498: GO 3501
3500: POP
// result := CreateHuman ( ) ;
3501: LD_ADDR_VAR 0 4
3505: PUSH
3506: CALL_OW 44
3510: ST_TO_ADDR
// end ;
3511: LD_VAR 0 4
3515: RET
// export function NaplnVsechnyBudovyLidma ; var un ; var b , i , bunkry ; begin
3516: LD_INT 0
3518: PPUSH
3519: PPUSH
3520: PPUSH
3521: PPUSH
3522: PPUSH
// for b in FilterAllUnits ( [ f_or , [ f_btype , b_bunker ] , [ f_btype , b_breastwork ] ] ) do
3523: LD_ADDR_VAR 0 3
3527: PUSH
3528: LD_INT 2
3530: PUSH
3531: LD_INT 30
3533: PUSH
3534: LD_INT 32
3536: PUSH
3537: EMPTY
3538: LIST
3539: LIST
3540: PUSH
3541: LD_INT 30
3543: PUSH
3544: LD_INT 31
3546: PUSH
3547: EMPTY
3548: LIST
3549: LIST
3550: PUSH
3551: EMPTY
3552: LIST
3553: LIST
3554: LIST
3555: PPUSH
3556: CALL_OW 69
3560: PUSH
3561: FOR_IN
3562: IFFALSE 3636
// begin un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 1 ) ;
3564: LD_ADDR_VAR 0 2
3568: PUSH
3569: LD_VAR 0 3
3573: PPUSH
3574: CALL_OW 248
3578: PPUSH
3579: LD_VAR 0 3
3583: PPUSH
3584: CALL_OW 255
3588: PPUSH
3589: LD_INT 1
3591: PPUSH
3592: CALL 2756 0 3
3596: ST_TO_ADDR
// SetDir ( un , GetDir ( b ) + 3 ) ;
3597: LD_VAR 0 2
3601: PPUSH
3602: LD_VAR 0 3
3606: PPUSH
3607: CALL_OW 254
3611: PUSH
3612: LD_INT 3
3614: PLUS
3615: PPUSH
3616: CALL_OW 233
// PlaceHumanInUnit ( un , b ) ;
3620: LD_VAR 0 2
3624: PPUSH
3625: LD_VAR 0 3
3629: PPUSH
3630: CALL_OW 52
// end ;
3634: GO 3561
3636: POP
3637: POP
// for b in FilterAllUnits ( [ f_or , [ f_btype , b_armoury ] , [ f_btype , b_barracks ] ] ) do
3638: LD_ADDR_VAR 0 3
3642: PUSH
3643: LD_INT 2
3645: PUSH
3646: LD_INT 30
3648: PUSH
3649: LD_INT 4
3651: PUSH
3652: EMPTY
3653: LIST
3654: LIST
3655: PUSH
3656: LD_INT 30
3658: PUSH
3659: LD_INT 5
3661: PUSH
3662: EMPTY
3663: LIST
3664: LIST
3665: PUSH
3666: EMPTY
3667: LIST
3668: LIST
3669: LIST
3670: PPUSH
3671: CALL_OW 69
3675: PUSH
3676: FOR_IN
3677: IFFALSE 3911
// begin if GetSide ( b ) = Amik then
3679: LD_VAR 0 3
3683: PPUSH
3684: CALL_OW 255
3688: PUSH
3689: LD_EXP 4
3693: EQUAL
3694: IFFALSE 3765
// begin for i = 1 to dif_enemy_lidi_kasa_am1 do
3696: LD_ADDR_VAR 0 4
3700: PUSH
3701: DOUBLE
3702: LD_INT 1
3704: DEC
3705: ST_TO_ADDR
3706: LD_EXP 27
3710: PUSH
3711: FOR_TO
3712: IFFALSE 3763
// begin un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 1 ) ;
3714: LD_ADDR_VAR 0 2
3718: PUSH
3719: LD_VAR 0 3
3723: PPUSH
3724: CALL_OW 248
3728: PPUSH
3729: LD_VAR 0 3
3733: PPUSH
3734: CALL_OW 255
3738: PPUSH
3739: LD_INT 1
3741: PPUSH
3742: CALL 2756 0 3
3746: ST_TO_ADDR
// PlaceHumanInUnit ( un , b ) ;
3747: LD_VAR 0 2
3751: PPUSH
3752: LD_VAR 0 3
3756: PPUSH
3757: CALL_OW 52
// end ;
3761: GO 3711
3763: POP
3764: POP
// end ; if GetSide ( b ) = Amik2 then
3765: LD_VAR 0 3
3769: PPUSH
3770: CALL_OW 255
3774: PUSH
3775: LD_EXP 5
3779: EQUAL
3780: IFFALSE 3909
// begin if Prob ( dif_enemy_sniper_prob_am2 ) then
3782: LD_EXP 29
3786: PPUSH
3787: CALL_OW 13
3791: IFFALSE 3840
// begin un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 5 ) ;
3793: LD_ADDR_VAR 0 2
3797: PUSH
3798: LD_VAR 0 3
3802: PPUSH
3803: CALL_OW 248
3807: PPUSH
3808: LD_VAR 0 3
3812: PPUSH
3813: CALL_OW 255
3817: PPUSH
3818: LD_INT 5
3820: PPUSH
3821: CALL 2756 0 3
3825: ST_TO_ADDR
// PlaceHumanInUnit ( un , b ) ;
3826: LD_VAR 0 2
3830: PPUSH
3831: LD_VAR 0 3
3835: PPUSH
3836: CALL_OW 52
// end ; for i = 1 to dif_enemy_lidi_kasa_am2 do
3840: LD_ADDR_VAR 0 4
3844: PUSH
3845: DOUBLE
3846: LD_INT 1
3848: DEC
3849: ST_TO_ADDR
3850: LD_EXP 28
3854: PUSH
3855: FOR_TO
3856: IFFALSE 3907
// begin un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 1 ) ;
3858: LD_ADDR_VAR 0 2
3862: PUSH
3863: LD_VAR 0 3
3867: PPUSH
3868: CALL_OW 248
3872: PPUSH
3873: LD_VAR 0 3
3877: PPUSH
3878: CALL_OW 255
3882: PPUSH
3883: LD_INT 1
3885: PPUSH
3886: CALL 2756 0 3
3890: ST_TO_ADDR
// PlaceHumanInUnit ( un , b ) ;
3891: LD_VAR 0 2
3895: PPUSH
3896: LD_VAR 0 3
3900: PPUSH
3901: CALL_OW 52
// end ;
3905: GO 3855
3907: POP
3908: POP
// end ; end ;
3909: GO 3676
3911: POP
3912: POP
// for b in FilterAllUnits ( [ f_or , [ f_btype , 6 ] , [ f_btype , 7 ] , [ f_btype , 8 ] , [ f_btype , 9 ] , [ f_btype , 10 ] , [ f_btype , 11 ] , [ f_btype , 12 ] , [ f_btype , 13 ] , [ f_btype , 14 ] , [ f_btype , 15 ] , [ f_btype , b_factory ] , [ f_btype , b_workshop ] , [ f_btype , b_control_tower ] ] ) do
3913: LD_ADDR_VAR 0 3
3917: PUSH
3918: LD_INT 2
3920: PUSH
3921: LD_INT 30
3923: PUSH
3924: LD_INT 6
3926: PUSH
3927: EMPTY
3928: LIST
3929: LIST
3930: PUSH
3931: LD_INT 30
3933: PUSH
3934: LD_INT 7
3936: PUSH
3937: EMPTY
3938: LIST
3939: LIST
3940: PUSH
3941: LD_INT 30
3943: PUSH
3944: LD_INT 8
3946: PUSH
3947: EMPTY
3948: LIST
3949: LIST
3950: PUSH
3951: LD_INT 30
3953: PUSH
3954: LD_INT 9
3956: PUSH
3957: EMPTY
3958: LIST
3959: LIST
3960: PUSH
3961: LD_INT 30
3963: PUSH
3964: LD_INT 10
3966: PUSH
3967: EMPTY
3968: LIST
3969: LIST
3970: PUSH
3971: LD_INT 30
3973: PUSH
3974: LD_INT 11
3976: PUSH
3977: EMPTY
3978: LIST
3979: LIST
3980: PUSH
3981: LD_INT 30
3983: PUSH
3984: LD_INT 12
3986: PUSH
3987: EMPTY
3988: LIST
3989: LIST
3990: PUSH
3991: LD_INT 30
3993: PUSH
3994: LD_INT 13
3996: PUSH
3997: EMPTY
3998: LIST
3999: LIST
4000: PUSH
4001: LD_INT 30
4003: PUSH
4004: LD_INT 14
4006: PUSH
4007: EMPTY
4008: LIST
4009: LIST
4010: PUSH
4011: LD_INT 30
4013: PUSH
4014: LD_INT 15
4016: PUSH
4017: EMPTY
4018: LIST
4019: LIST
4020: PUSH
4021: LD_INT 30
4023: PUSH
4024: LD_INT 3
4026: PUSH
4027: EMPTY
4028: LIST
4029: LIST
4030: PUSH
4031: LD_INT 30
4033: PUSH
4034: LD_INT 2
4036: PUSH
4037: EMPTY
4038: LIST
4039: LIST
4040: PUSH
4041: LD_INT 30
4043: PUSH
4044: LD_INT 36
4046: PUSH
4047: EMPTY
4048: LIST
4049: LIST
4050: PUSH
4051: EMPTY
4052: LIST
4053: LIST
4054: LIST
4055: LIST
4056: LIST
4057: LIST
4058: LIST
4059: LIST
4060: LIST
4061: LIST
4062: LIST
4063: LIST
4064: LIST
4065: LIST
4066: PPUSH
4067: CALL_OW 69
4071: PUSH
4072: FOR_IN
4073: IFFALSE 4434
// begin if not GetBType ( b ) = b_control_tower then
4075: LD_VAR 0 3
4079: PPUSH
4080: CALL_OW 266
4084: PUSH
4085: LD_INT 36
4087: EQUAL
4088: NOT
4089: IFFALSE 4365
// begin if GetSide ( b ) = Amik then
4091: LD_VAR 0 3
4095: PPUSH
4096: CALL_OW 255
4100: PUSH
4101: LD_EXP 4
4105: EQUAL
4106: IFFALSE 4227
// begin for i = 1 to dif_enemy_lidi_faclab_am1 do
4108: LD_ADDR_VAR 0 4
4112: PUSH
4113: DOUBLE
4114: LD_INT 1
4116: DEC
4117: ST_TO_ADDR
4118: LD_EXP 32
4122: PUSH
4123: FOR_TO
4124: IFFALSE 4225
// begin if GetBType ( b ) = b_factory then
4126: LD_VAR 0 3
4130: PPUSH
4131: CALL_OW 266
4135: PUSH
4136: LD_INT 3
4138: EQUAL
4139: IFFALSE 4176
// un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 3 ) else
4141: LD_ADDR_VAR 0 2
4145: PUSH
4146: LD_VAR 0 3
4150: PPUSH
4151: CALL_OW 248
4155: PPUSH
4156: LD_VAR 0 3
4160: PPUSH
4161: CALL_OW 255
4165: PPUSH
4166: LD_INT 3
4168: PPUSH
4169: CALL 2756 0 3
4173: ST_TO_ADDR
4174: GO 4209
// un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 4 ) ;
4176: LD_ADDR_VAR 0 2
4180: PUSH
4181: LD_VAR 0 3
4185: PPUSH
4186: CALL_OW 248
4190: PPUSH
4191: LD_VAR 0 3
4195: PPUSH
4196: CALL_OW 255
4200: PPUSH
4201: LD_INT 4
4203: PPUSH
4204: CALL 2756 0 3
4208: ST_TO_ADDR
// PlaceHumanInUnit ( un , b ) ;
4209: LD_VAR 0 2
4213: PPUSH
4214: LD_VAR 0 3
4218: PPUSH
4219: CALL_OW 52
// end ;
4223: GO 4123
4225: POP
4226: POP
// end ; if GetSide ( b ) = Amik2 then
4227: LD_VAR 0 3
4231: PPUSH
4232: CALL_OW 255
4236: PUSH
4237: LD_EXP 5
4241: EQUAL
4242: IFFALSE 4363
// begin for i = 1 to dif_enemy_lidi_faclab_am2 do
4244: LD_ADDR_VAR 0 4
4248: PUSH
4249: DOUBLE
4250: LD_INT 1
4252: DEC
4253: ST_TO_ADDR
4254: LD_EXP 33
4258: PUSH
4259: FOR_TO
4260: IFFALSE 4361
// begin if GetBType ( b ) = b_factory then
4262: LD_VAR 0 3
4266: PPUSH
4267: CALL_OW 266
4271: PUSH
4272: LD_INT 3
4274: EQUAL
4275: IFFALSE 4312
// un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 3 ) else
4277: LD_ADDR_VAR 0 2
4281: PUSH
4282: LD_VAR 0 3
4286: PPUSH
4287: CALL_OW 248
4291: PPUSH
4292: LD_VAR 0 3
4296: PPUSH
4297: CALL_OW 255
4301: PPUSH
4302: LD_INT 3
4304: PPUSH
4305: CALL 2756 0 3
4309: ST_TO_ADDR
4310: GO 4345
// un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 4 ) ;
4312: LD_ADDR_VAR 0 2
4316: PUSH
4317: LD_VAR 0 3
4321: PPUSH
4322: CALL_OW 248
4326: PPUSH
4327: LD_VAR 0 3
4331: PPUSH
4332: CALL_OW 255
4336: PPUSH
4337: LD_INT 4
4339: PPUSH
4340: CALL 2756 0 3
4344: ST_TO_ADDR
// PlaceHumanInUnit ( un , b ) ;
4345: LD_VAR 0 2
4349: PPUSH
4350: LD_VAR 0 3
4354: PPUSH
4355: CALL_OW 52
// end ;
4359: GO 4259
4361: POP
4362: POP
// end ; end else
4363: GO 4432
// begin for i = 1 to 3 do
4365: LD_ADDR_VAR 0 4
4369: PUSH
4370: DOUBLE
4371: LD_INT 1
4373: DEC
4374: ST_TO_ADDR
4375: LD_INT 3
4377: PUSH
4378: FOR_TO
4379: IFFALSE 4430
// begin un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 3 ) ;
4381: LD_ADDR_VAR 0 2
4385: PUSH
4386: LD_VAR 0 3
4390: PPUSH
4391: CALL_OW 248
4395: PPUSH
4396: LD_VAR 0 3
4400: PPUSH
4401: CALL_OW 255
4405: PPUSH
4406: LD_INT 3
4408: PPUSH
4409: CALL 2756 0 3
4413: ST_TO_ADDR
// PlaceHumanInUnit ( un , b ) ;
4414: LD_VAR 0 2
4418: PPUSH
4419: LD_VAR 0 3
4423: PPUSH
4424: CALL_OW 52
// end ;
4428: GO 4378
4430: POP
4431: POP
// end ; end ;
4432: GO 4072
4434: POP
4435: POP
// for b in Am_Depot_3 do
4436: LD_ADDR_VAR 0 3
4440: PUSH
4441: LD_INT 136
4443: PUSH
4444: FOR_IN
4445: IFFALSE 4518
// begin for i = 1 to difficulty do
4447: LD_ADDR_VAR 0 4
4451: PUSH
4452: DOUBLE
4453: LD_INT 1
4455: DEC
4456: ST_TO_ADDR
4457: LD_OWVAR 67
4461: PUSH
4462: FOR_TO
4463: IFFALSE 4514
// begin un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 2 ) ;
4465: LD_ADDR_VAR 0 2
4469: PUSH
4470: LD_VAR 0 3
4474: PPUSH
4475: CALL_OW 248
4479: PPUSH
4480: LD_VAR 0 3
4484: PPUSH
4485: CALL_OW 255
4489: PPUSH
4490: LD_INT 2
4492: PPUSH
4493: CALL 2756 0 3
4497: ST_TO_ADDR
// PlaceHumanInUnit ( un , b ) ;
4498: LD_VAR 0 2
4502: PPUSH
4503: LD_VAR 0 3
4507: PPUSH
4508: CALL_OW 52
// end ;
4512: GO 4462
4514: POP
4515: POP
// end ;
4516: GO 4444
4518: POP
4519: POP
// for b in FilterAllUnits ( [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ) diff Am_Depot_3 do
4520: LD_ADDR_VAR 0 3
4524: PUSH
4525: LD_INT 2
4527: PUSH
4528: LD_INT 30
4530: PUSH
4531: LD_INT 0
4533: PUSH
4534: EMPTY
4535: LIST
4536: LIST
4537: PUSH
4538: LD_INT 30
4540: PUSH
4541: LD_INT 1
4543: PUSH
4544: EMPTY
4545: LIST
4546: LIST
4547: PUSH
4548: EMPTY
4549: LIST
4550: LIST
4551: LIST
4552: PPUSH
4553: CALL_OW 69
4557: PUSH
4558: LD_INT 136
4560: DIFF
4561: PUSH
4562: FOR_IN
4563: IFFALSE 4754
// begin if GetSide ( b ) = Amik or GetSide ( b ) = Amik2 then
4565: LD_VAR 0 3
4569: PPUSH
4570: CALL_OW 255
4574: PUSH
4575: LD_EXP 4
4579: EQUAL
4580: PUSH
4581: LD_VAR 0 3
4585: PPUSH
4586: CALL_OW 255
4590: PUSH
4591: LD_EXP 5
4595: EQUAL
4596: OR
4597: IFFALSE 4668
// begin for i = 1 to dif_enemy_lidi_faclab_am1 do
4599: LD_ADDR_VAR 0 4
4603: PUSH
4604: DOUBLE
4605: LD_INT 1
4607: DEC
4608: ST_TO_ADDR
4609: LD_EXP 32
4613: PUSH
4614: FOR_TO
4615: IFFALSE 4666
// begin un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 2 ) ;
4617: LD_ADDR_VAR 0 2
4621: PUSH
4622: LD_VAR 0 3
4626: PPUSH
4627: CALL_OW 248
4631: PPUSH
4632: LD_VAR 0 3
4636: PPUSH
4637: CALL_OW 255
4641: PPUSH
4642: LD_INT 2
4644: PPUSH
4645: CALL 2756 0 3
4649: ST_TO_ADDR
// PlaceHumanInUnit ( un , b ) ;
4650: LD_VAR 0 2
4654: PPUSH
4655: LD_VAR 0 3
4659: PPUSH
4660: CALL_OW 52
// end ;
4664: GO 4614
4666: POP
4667: POP
// end ; if GetSide ( b ) = You2 then
4668: LD_VAR 0 3
4672: PPUSH
4673: CALL_OW 255
4677: PUSH
4678: LD_EXP 3
4682: EQUAL
4683: IFFALSE 4752
// begin for i = 1 to 3 do
4685: LD_ADDR_VAR 0 4
4689: PUSH
4690: DOUBLE
4691: LD_INT 1
4693: DEC
4694: ST_TO_ADDR
4695: LD_INT 3
4697: PUSH
4698: FOR_TO
4699: IFFALSE 4750
// begin un = VytvorCloveka ( GetNation ( b ) , GetSide ( b ) , 2 ) ;
4701: LD_ADDR_VAR 0 2
4705: PUSH
4706: LD_VAR 0 3
4710: PPUSH
4711: CALL_OW 248
4715: PPUSH
4716: LD_VAR 0 3
4720: PPUSH
4721: CALL_OW 255
4725: PPUSH
4726: LD_INT 2
4728: PPUSH
4729: CALL 2756 0 3
4733: ST_TO_ADDR
// PlaceHumanInUnit ( un , b ) ;
4734: LD_VAR 0 2
4738: PPUSH
4739: LD_VAR 0 3
4743: PPUSH
4744: CALL_OW 52
// end ;
4748: GO 4698
4750: POP
4751: POP
// end ; end ;
4752: GO 4562
4754: POP
4755: POP
// for i = 1 to 4 do
4756: LD_ADDR_VAR 0 4
4760: PUSH
4761: DOUBLE
4762: LD_INT 1
4764: DEC
4765: ST_TO_ADDR
4766: LD_INT 4
4768: PUSH
4769: FOR_TO
4770: IFFALSE 4846
// begin un = VytvorCloveka ( 3 , You2 , 3 ) ;
4772: LD_ADDR_VAR 0 2
4776: PUSH
4777: LD_INT 3
4779: PPUSH
4780: LD_EXP 3
4784: PPUSH
4785: LD_INT 3
4787: PPUSH
4788: CALL 2756 0 3
4792: ST_TO_ADDR
// PlaceUnitArea ( un , leceni , false ) ;
4793: LD_VAR 0 2
4797: PPUSH
4798: LD_INT 12
4800: PPUSH
4801: LD_INT 0
4803: PPUSH
4804: CALL_OW 49
// un = VytvorCloveka ( 3 , You2 , 4 ) ;
4808: LD_ADDR_VAR 0 2
4812: PUSH
4813: LD_INT 3
4815: PPUSH
4816: LD_EXP 3
4820: PPUSH
4821: LD_INT 4
4823: PPUSH
4824: CALL 2756 0 3
4828: ST_TO_ADDR
// PlaceUnitArea ( un , leceni , false ) ;
4829: LD_VAR 0 2
4833: PPUSH
4834: LD_INT 12
4836: PPUSH
4837: LD_INT 0
4839: PPUSH
4840: CALL_OW 49
// end ;
4844: GO 4769
4846: POP
4847: POP
// for i = 1 to 2 do
4848: LD_ADDR_VAR 0 4
4852: PUSH
4853: DOUBLE
4854: LD_INT 1
4856: DEC
4857: ST_TO_ADDR
4858: LD_INT 2
4860: PUSH
4861: FOR_TO
4862: IFFALSE 4902
// begin un = VytvorCloveka ( 3 , You2 , 1 ) ;
4864: LD_ADDR_VAR 0 2
4868: PUSH
4869: LD_INT 3
4871: PPUSH
4872: LD_EXP 3
4876: PPUSH
4877: LD_INT 1
4879: PPUSH
4880: CALL 2756 0 3
4884: ST_TO_ADDR
// PlaceUnitArea ( un , leceni , false ) ;
4885: LD_VAR 0 2
4889: PPUSH
4890: LD_INT 12
4892: PPUSH
4893: LD_INT 0
4895: PPUSH
4896: CALL_OW 49
// end ;
4900: GO 4861
4902: POP
4903: POP
// end ;
4904: LD_VAR 0 1
4908: RET
// export function Jakakoliv_labka ( Area ) ; var filtr ; begin
4909: LD_INT 0
4911: PPUSH
4912: PPUSH
// filtr = FilterUnitsInArea ( Area , [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , 6 ] , [ f_btype , 7 ] , [ f_btype , 8 ] , [ f_btype , 9 ] , [ f_btype , 10 ] , [ f_btype , 11 ] , [ f_btype , 12 ] , [ f_btype , 13 ] , [ f_btype , 14 ] , [ f_btype , 15 ] ] ] ) ;
4913: LD_ADDR_VAR 0 3
4917: PUSH
4918: LD_VAR 0 1
4922: PPUSH
4923: LD_INT 52
4925: PUSH
4926: EMPTY
4927: LIST
4928: PUSH
4929: LD_INT 22
4931: PUSH
4932: LD_EXP 3
4936: PUSH
4937: EMPTY
4938: LIST
4939: LIST
4940: PUSH
4941: LD_INT 2
4943: PUSH
4944: LD_INT 30
4946: PUSH
4947: LD_INT 6
4949: PUSH
4950: EMPTY
4951: LIST
4952: LIST
4953: PUSH
4954: LD_INT 30
4956: PUSH
4957: LD_INT 7
4959: PUSH
4960: EMPTY
4961: LIST
4962: LIST
4963: PUSH
4964: LD_INT 30
4966: PUSH
4967: LD_INT 8
4969: PUSH
4970: EMPTY
4971: LIST
4972: LIST
4973: PUSH
4974: LD_INT 30
4976: PUSH
4977: LD_INT 9
4979: PUSH
4980: EMPTY
4981: LIST
4982: LIST
4983: PUSH
4984: LD_INT 30
4986: PUSH
4987: LD_INT 10
4989: PUSH
4990: EMPTY
4991: LIST
4992: LIST
4993: PUSH
4994: LD_INT 30
4996: PUSH
4997: LD_INT 11
4999: PUSH
5000: EMPTY
5001: LIST
5002: LIST
5003: PUSH
5004: LD_INT 30
5006: PUSH
5007: LD_INT 12
5009: PUSH
5010: EMPTY
5011: LIST
5012: LIST
5013: PUSH
5014: LD_INT 30
5016: PUSH
5017: LD_INT 13
5019: PUSH
5020: EMPTY
5021: LIST
5022: LIST
5023: PUSH
5024: LD_INT 30
5026: PUSH
5027: LD_INT 14
5029: PUSH
5030: EMPTY
5031: LIST
5032: LIST
5033: PUSH
5034: LD_INT 30
5036: PUSH
5037: LD_INT 15
5039: PUSH
5040: EMPTY
5041: LIST
5042: LIST
5043: PUSH
5044: EMPTY
5045: LIST
5046: LIST
5047: LIST
5048: LIST
5049: LIST
5050: LIST
5051: LIST
5052: LIST
5053: LIST
5054: LIST
5055: LIST
5056: PUSH
5057: EMPTY
5058: LIST
5059: LIST
5060: LIST
5061: PPUSH
5062: CALL_OW 70
5066: ST_TO_ADDR
// if filtr then
5067: LD_VAR 0 3
5071: IFFALSE 5089
// result = filtr [ 1 ] else
5073: LD_ADDR_VAR 0 2
5077: PUSH
5078: LD_VAR 0 3
5082: PUSH
5083: LD_INT 1
5085: ARRAY
5086: ST_TO_ADDR
5087: GO 5097
// result = false ;
5089: LD_ADDR_VAR 0 2
5093: PUSH
5094: LD_INT 0
5096: ST_TO_ADDR
// end ;
5097: LD_VAR 0 2
5101: RET
// export function SurovinyDoSkladu ( sklad , bedny_min , oil_min , sib_min ) ; begin
5102: LD_INT 0
5104: PPUSH
// sklad = GetBase ( sklad ) ;
5105: LD_ADDR_VAR 0 1
5109: PUSH
5110: LD_VAR 0 1
5114: PPUSH
5115: CALL_OW 274
5119: ST_TO_ADDR
// if GetResourceType ( sklad , mat_cans ) < bedny_min then
5120: LD_VAR 0 1
5124: PPUSH
5125: LD_INT 1
5127: PPUSH
5128: CALL_OW 275
5132: PUSH
5133: LD_VAR 0 2
5137: LESS
5138: IFFALSE 5171
// AddResourceType ( sklad , mat_cans , bedny_min - GetResourceType ( sklad , mat_cans ) ) ;
5140: LD_VAR 0 1
5144: PPUSH
5145: LD_INT 1
5147: PPUSH
5148: LD_VAR 0 2
5152: PUSH
5153: LD_VAR 0 1
5157: PPUSH
5158: LD_INT 1
5160: PPUSH
5161: CALL_OW 275
5165: MINUS
5166: PPUSH
5167: CALL_OW 276
// if GetResourceType ( sklad , mat_oil ) < oil_min then
5171: LD_VAR 0 1
5175: PPUSH
5176: LD_INT 2
5178: PPUSH
5179: CALL_OW 275
5183: PUSH
5184: LD_VAR 0 3
5188: LESS
5189: IFFALSE 5222
// AddResourceType ( sklad , mat_oil , oil_min - GetResourceType ( sklad , mat_oil ) ) ;
5191: LD_VAR 0 1
5195: PPUSH
5196: LD_INT 2
5198: PPUSH
5199: LD_VAR 0 3
5203: PUSH
5204: LD_VAR 0 1
5208: PPUSH
5209: LD_INT 2
5211: PPUSH
5212: CALL_OW 275
5216: MINUS
5217: PPUSH
5218: CALL_OW 276
// if GetResourceType ( sklad , mat_siberit ) < sib_min then
5222: LD_VAR 0 1
5226: PPUSH
5227: LD_INT 3
5229: PPUSH
5230: CALL_OW 275
5234: PUSH
5235: LD_VAR 0 4
5239: LESS
5240: IFFALSE 5273
// AddResourceType ( sklad , mat_siberit , sib_min - GetResourceType ( sklad , mat_siberit ) ) ;
5242: LD_VAR 0 1
5246: PPUSH
5247: LD_INT 3
5249: PPUSH
5250: LD_VAR 0 4
5254: PUSH
5255: LD_VAR 0 1
5259: PPUSH
5260: LD_INT 3
5262: PPUSH
5263: CALL_OW 275
5267: MINUS
5268: PPUSH
5269: CALL_OW 276
// enable ;
5273: ENABLE
// end ;
5274: LD_VAR 0 5
5278: RET
// export function ComUpgradeBreastwork ( breast_filter , x1 , y1 ) ; var x , y , d , w , typ , un , HexX , HexY , budova ; var Shift_x , Shift_y ; begin
5279: LD_INT 0
5281: PPUSH
5282: PPUSH
5283: PPUSH
5284: PPUSH
5285: PPUSH
5286: PPUSH
5287: PPUSH
5288: PPUSH
5289: PPUSH
5290: PPUSH
5291: PPUSH
5292: PPUSH
// if not breast_filter then
5293: LD_VAR 0 1
5297: NOT
5298: IFFALSE 5302
// exit ;
5300: GO 5574
// if not GetBType ( breast_filter [ 1 ] ) = b_breastwork then
5302: LD_VAR 0 1
5306: PUSH
5307: LD_INT 1
5309: ARRAY
5310: PPUSH
5311: CALL_OW 266
5315: PUSH
5316: LD_INT 31
5318: EQUAL
5319: NOT
5320: IFFALSE 5324
// exit ;
5322: GO 5574
// if GetLives ( breast_filter [ 1 ] ) < 250 then
5324: LD_VAR 0 1
5328: PUSH
5329: LD_INT 1
5331: ARRAY
5332: PPUSH
5333: CALL_OW 256
5337: PUSH
5338: LD_INT 250
5340: LESS
5341: IFFALSE 5345
// exit ;
5343: GO 5574
// typ = b_bunker ;
5345: LD_ADDR_VAR 0 9
5349: PUSH
5350: LD_INT 32
5352: ST_TO_ADDR
// x = GetX ( breast_filter [ 1 ] ) ;
5353: LD_ADDR_VAR 0 5
5357: PUSH
5358: LD_VAR 0 1
5362: PUSH
5363: LD_INT 1
5365: ARRAY
5366: PPUSH
5367: CALL_OW 250
5371: ST_TO_ADDR
// y = GetY ( breast_filter [ 1 ] ) ;
5372: LD_ADDR_VAR 0 6
5376: PUSH
5377: LD_VAR 0 1
5381: PUSH
5382: LD_INT 1
5384: ARRAY
5385: PPUSH
5386: CALL_OW 251
5390: ST_TO_ADDR
// d = GetDir ( breast_filter [ 1 ] ) ;
5391: LD_ADDR_VAR 0 7
5395: PUSH
5396: LD_VAR 0 1
5400: PUSH
5401: LD_INT 1
5403: ARRAY
5404: PPUSH
5405: CALL_OW 254
5409: ST_TO_ADDR
// w = GetWeapon ( breast_filter [ 1 ] ) ;
5410: LD_ADDR_VAR 0 8
5414: PUSH
5415: LD_VAR 0 1
5419: PUSH
5420: LD_INT 1
5422: ARRAY
5423: PPUSH
5424: CALL_OW 264
5428: ST_TO_ADDR
// SetTaskList ( breast_filter [ 1 ] , [ [ 2 , 0 , 0 , 0 , 0 , 0 , 0 ] ] ) ;
5429: LD_VAR 0 1
5433: PUSH
5434: LD_INT 1
5436: ARRAY
5437: PPUSH
5438: LD_INT 2
5440: PUSH
5441: LD_INT 0
5443: PUSH
5444: LD_INT 0
5446: PUSH
5447: LD_INT 0
5449: PUSH
5450: LD_INT 0
5452: PUSH
5453: LD_INT 0
5455: PUSH
5456: LD_INT 0
5458: PUSH
5459: EMPTY
5460: LIST
5461: LIST
5462: LIST
5463: LIST
5464: LIST
5465: LIST
5466: LIST
5467: PUSH
5468: EMPTY
5469: LIST
5470: PPUSH
5471: CALL_OW 446
// typ = b_breastwork ;
5475: LD_ADDR_VAR 0 9
5479: PUSH
5480: LD_INT 31
5482: ST_TO_ADDR
// budova = [ [ typ , x , y , d ] ] ;
5483: LD_ADDR_VAR 0 13
5487: PUSH
5488: LD_VAR 0 9
5492: PUSH
5493: LD_VAR 0 5
5497: PUSH
5498: LD_VAR 0 6
5502: PUSH
5503: LD_VAR 0 7
5507: PUSH
5508: EMPTY
5509: LIST
5510: LIST
5511: LIST
5512: LIST
5513: PUSH
5514: EMPTY
5515: LIST
5516: ST_TO_ADDR
// for budova in List_znicenych_budov do
5517: LD_ADDR_VAR 0 13
5521: PUSH
5522: LD_EXP 73
5526: PUSH
5527: FOR_IN
5528: IFFALSE 5572
// List_znicenych_budov = List_znicenych_budov diff [ [ typ , x , y , d ] ] ;
5530: LD_ADDR_EXP 73
5534: PUSH
5535: LD_EXP 73
5539: PUSH
5540: LD_VAR 0 9
5544: PUSH
5545: LD_VAR 0 5
5549: PUSH
5550: LD_VAR 0 6
5554: PUSH
5555: LD_VAR 0 7
5559: PUSH
5560: EMPTY
5561: LIST
5562: LIST
5563: LIST
5564: LIST
5565: PUSH
5566: EMPTY
5567: LIST
5568: DIFF
5569: ST_TO_ADDR
5570: GO 5527
5572: POP
5573: POP
// end ;
5574: LD_VAR 0 4
5578: RET
// var American1 , American2 , American3 ; export function ZautocRusak ; var Neco_v_AmBaza13 , Neco_v_AmBaza2 , Neco_v_Velka12 ; var unit , veh ; var i ; begin
5579: LD_INT 0
5581: PPUSH
5582: PPUSH
5583: PPUSH
5584: PPUSH
5585: PPUSH
5586: PPUSH
5587: PPUSH
// American1 = FilterUnitsInArea ( Prostredni , [ [ f_or , [ f_side , Amik ] , [ f_side , Amik2 ] ] , [ f_lives , 250 ] ] ) ;
5588: LD_ADDR_LOC 1
5592: PUSH
5593: LD_INT 33
5595: PPUSH
5596: LD_INT 2
5598: PUSH
5599: LD_INT 22
5601: PUSH
5602: LD_EXP 4
5606: PUSH
5607: EMPTY
5608: LIST
5609: LIST
5610: PUSH
5611: LD_INT 22
5613: PUSH
5614: LD_EXP 5
5618: PUSH
5619: EMPTY
5620: LIST
5621: LIST
5622: PUSH
5623: EMPTY
5624: LIST
5625: LIST
5626: LIST
5627: PUSH
5628: LD_INT 24
5630: PUSH
5631: LD_INT 250
5633: PUSH
5634: EMPTY
5635: LIST
5636: LIST
5637: PUSH
5638: EMPTY
5639: LIST
5640: LIST
5641: PPUSH
5642: CALL_OW 70
5646: ST_TO_ADDR
// American2 = FilterUnitsInArea ( Prava , [ [ f_or , [ f_side , Amik ] , [ f_side , Amik2 ] ] , [ f_lives , 250 ] ] ) ;
5647: LD_ADDR_LOC 2
5651: PUSH
5652: LD_INT 32
5654: PPUSH
5655: LD_INT 2
5657: PUSH
5658: LD_INT 22
5660: PUSH
5661: LD_EXP 4
5665: PUSH
5666: EMPTY
5667: LIST
5668: LIST
5669: PUSH
5670: LD_INT 22
5672: PUSH
5673: LD_EXP 5
5677: PUSH
5678: EMPTY
5679: LIST
5680: LIST
5681: PUSH
5682: EMPTY
5683: LIST
5684: LIST
5685: LIST
5686: PUSH
5687: LD_INT 24
5689: PUSH
5690: LD_INT 250
5692: PUSH
5693: EMPTY
5694: LIST
5695: LIST
5696: PUSH
5697: EMPTY
5698: LIST
5699: LIST
5700: PPUSH
5701: CALL_OW 70
5705: ST_TO_ADDR
// American3 = FilterUnitsInArea ( Horni , [ [ f_or , [ f_side , Amik ] , [ f_side , Amik2 ] ] , [ f_lives , 250 ] ] ) ;
5706: LD_ADDR_LOC 3
5710: PUSH
5711: LD_INT 34
5713: PPUSH
5714: LD_INT 2
5716: PUSH
5717: LD_INT 22
5719: PUSH
5720: LD_EXP 4
5724: PUSH
5725: EMPTY
5726: LIST
5727: LIST
5728: PUSH
5729: LD_INT 22
5731: PUSH
5732: LD_EXP 5
5736: PUSH
5737: EMPTY
5738: LIST
5739: LIST
5740: PUSH
5741: EMPTY
5742: LIST
5743: LIST
5744: LIST
5745: PUSH
5746: LD_INT 24
5748: PUSH
5749: LD_INT 250
5751: PUSH
5752: EMPTY
5753: LIST
5754: LIST
5755: PUSH
5756: EMPTY
5757: LIST
5758: LIST
5759: PPUSH
5760: CALL_OW 70
5764: ST_TO_ADDR
// if not American1 and not American2 and not American3 then
5765: LD_LOC 1
5769: NOT
5770: PUSH
5771: LD_LOC 2
5775: NOT
5776: AND
5777: PUSH
5778: LD_LOC 3
5782: NOT
5783: AND
5784: IFFALSE 5788
// exit ;
5786: GO 7567
// if not Ru_Attack then
5788: LD_EXP 70
5792: NOT
5793: IFFALSE 5797
// exit ;
5795: GO 7567
// for unit in American1 do
5797: LD_ADDR_VAR 0 5
5801: PUSH
5802: LD_LOC 1
5806: PUSH
5807: FOR_IN
5808: IFFALSE 6128
// begin if not IsPlaced ( Am_Depot_1 ) then
5810: LD_INT 129
5812: PPUSH
5813: CALL_OW 305
5817: NOT
5818: IFFALSE 5872
// begin if IsInArea ( unit , AmBaza1 ) and GetType ( unit ) = unit_building then
5820: LD_VAR 0 5
5824: PPUSH
5825: LD_INT 29
5827: PPUSH
5828: CALL_OW 308
5832: PUSH
5833: LD_VAR 0 5
5837: PPUSH
5838: CALL_OW 247
5842: PUSH
5843: LD_INT 3
5845: EQUAL
5846: AND
5847: IFFALSE 5870
// if not UnitsInside ( unit ) then
5849: LD_VAR 0 5
5853: PPUSH
5854: CALL_OW 313
5858: NOT
5859: IFFALSE 5870
// DiffAmericans ( unit ) ;
5861: LD_VAR 0 5
5865: PPUSH
5866: CALL 7641 0 1
// end else
5870: GO 5968
// begin if IsInArea ( unit , AmBaza1 ) and ( GetEnergy ( GetBase ( Am_Depot_1 ) ) [ 3 ] = 0 or GetSide ( Am_Depot_1 ) <> Amik or IsDead ( Am_Depot_1 ) ) and GetType ( unit ) = unit_building then
5872: LD_VAR 0 5
5876: PPUSH
5877: LD_INT 29
5879: PPUSH
5880: CALL_OW 308
5884: PUSH
5885: LD_INT 129
5887: PPUSH
5888: CALL_OW 274
5892: PPUSH
5893: CALL_OW 278
5897: PUSH
5898: LD_INT 3
5900: ARRAY
5901: PUSH
5902: LD_INT 0
5904: EQUAL
5905: PUSH
5906: LD_INT 129
5908: PPUSH
5909: CALL_OW 255
5913: PUSH
5914: LD_EXP 4
5918: NONEQUAL
5919: OR
5920: PUSH
5921: LD_INT 129
5923: PPUSH
5924: CALL_OW 301
5928: OR
5929: AND
5930: PUSH
5931: LD_VAR 0 5
5935: PPUSH
5936: CALL_OW 247
5940: PUSH
5941: LD_INT 3
5943: EQUAL
5944: AND
5945: IFFALSE 5968
// if not UnitsInside ( unit ) then
5947: LD_VAR 0 5
5951: PPUSH
5952: CALL_OW 313
5956: NOT
5957: IFFALSE 5968
// DiffAmericans ( unit ) ;
5959: LD_VAR 0 5
5963: PPUSH
5964: CALL 7641 0 1
// end ; if not IsPlaced ( Am_Depot_3 ) then
5968: LD_INT 136
5970: PPUSH
5971: CALL_OW 305
5975: NOT
5976: IFFALSE 6030
// begin if IsInArea ( unit , AmBaza3 ) and GetType ( unit ) = unit_building then
5978: LD_VAR 0 5
5982: PPUSH
5983: LD_INT 31
5985: PPUSH
5986: CALL_OW 308
5990: PUSH
5991: LD_VAR 0 5
5995: PPUSH
5996: CALL_OW 247
6000: PUSH
6001: LD_INT 3
6003: EQUAL
6004: AND
6005: IFFALSE 6028
// if not UnitsInside ( unit ) then
6007: LD_VAR 0 5
6011: PPUSH
6012: CALL_OW 313
6016: NOT
6017: IFFALSE 6028
// DiffAmericans ( unit ) ;
6019: LD_VAR 0 5
6023: PPUSH
6024: CALL 7641 0 1
// end else
6028: GO 6126
// begin if IsInArea ( unit , AmBaza3 ) and ( GetEnergy ( GetBase ( Am_Depot_3 ) ) [ 3 ] = 0 or GetSide ( Am_Depot_3 ) <> Amik or IsDead ( Am_Depot_3 ) ) and GetType ( unit ) = unit_building then
6030: LD_VAR 0 5
6034: PPUSH
6035: LD_INT 31
6037: PPUSH
6038: CALL_OW 308
6042: PUSH
6043: LD_INT 136
6045: PPUSH
6046: CALL_OW 274
6050: PPUSH
6051: CALL_OW 278
6055: PUSH
6056: LD_INT 3
6058: ARRAY
6059: PUSH
6060: LD_INT 0
6062: EQUAL
6063: PUSH
6064: LD_INT 136
6066: PPUSH
6067: CALL_OW 255
6071: PUSH
6072: LD_EXP 4
6076: NONEQUAL
6077: OR
6078: PUSH
6079: LD_INT 136
6081: PPUSH
6082: CALL_OW 301
6086: OR
6087: AND
6088: PUSH
6089: LD_VAR 0 5
6093: PPUSH
6094: CALL_OW 247
6098: PUSH
6099: LD_INT 3
6101: EQUAL
6102: AND
6103: IFFALSE 6126
// if not UnitsInside ( unit ) then
6105: LD_VAR 0 5
6109: PPUSH
6110: CALL_OW 313
6114: NOT
6115: IFFALSE 6126
// DiffAmericans ( unit ) ;
6117: LD_VAR 0 5
6121: PPUSH
6122: CALL 7641 0 1
// end ; end ;
6126: GO 5807
6128: POP
6129: POP
// for unit in American2 do
6130: LD_ADDR_VAR 0 5
6134: PUSH
6135: LD_LOC 2
6139: PUSH
6140: FOR_IN
6141: IFFALSE 6303
// begin if not IsPlaced ( Am_Depot_2 ) then
6143: LD_INT 130
6145: PPUSH
6146: CALL_OW 305
6150: NOT
6151: IFFALSE 6205
// begin if IsInArea ( unit , AmBaza2 ) and GetType ( unit ) = unit_building then
6153: LD_VAR 0 5
6157: PPUSH
6158: LD_INT 30
6160: PPUSH
6161: CALL_OW 308
6165: PUSH
6166: LD_VAR 0 5
6170: PPUSH
6171: CALL_OW 247
6175: PUSH
6176: LD_INT 3
6178: EQUAL
6179: AND
6180: IFFALSE 6203
// if not UnitsInside ( unit ) then
6182: LD_VAR 0 5
6186: PPUSH
6187: CALL_OW 313
6191: NOT
6192: IFFALSE 6203
// DiffAmericans ( unit ) ;
6194: LD_VAR 0 5
6198: PPUSH
6199: CALL 7641 0 1
// end else
6203: GO 6301
// begin if IsInArea ( unit , AmBaza2 ) and ( GetEnergy ( GetBase ( Am_Depot_2 ) ) [ 3 ] = 0 or GetSide ( Am_Depot_2 ) <> Amik or IsDead ( Am_Depot_2 ) ) and GetType ( unit ) = unit_building then
6205: LD_VAR 0 5
6209: PPUSH
6210: LD_INT 30
6212: PPUSH
6213: CALL_OW 308
6217: PUSH
6218: LD_INT 130
6220: PPUSH
6221: CALL_OW 274
6225: PPUSH
6226: CALL_OW 278
6230: PUSH
6231: LD_INT 3
6233: ARRAY
6234: PUSH
6235: LD_INT 0
6237: EQUAL
6238: PUSH
6239: LD_INT 130
6241: PPUSH
6242: CALL_OW 255
6246: PUSH
6247: LD_EXP 4
6251: NONEQUAL
6252: OR
6253: PUSH
6254: LD_INT 130
6256: PPUSH
6257: CALL_OW 301
6261: OR
6262: AND
6263: PUSH
6264: LD_VAR 0 5
6268: PPUSH
6269: CALL_OW 247
6273: PUSH
6274: LD_INT 3
6276: EQUAL
6277: AND
6278: IFFALSE 6301
// if not UnitsInside ( unit ) then
6280: LD_VAR 0 5
6284: PPUSH
6285: CALL_OW 313
6289: NOT
6290: IFFALSE 6301
// DiffAmericans ( unit ) ;
6292: LD_VAR 0 5
6296: PPUSH
6297: CALL 7641 0 1
// end ; end ;
6301: GO 6140
6303: POP
6304: POP
// for unit in American3 do
6305: LD_ADDR_VAR 0 5
6309: PUSH
6310: LD_LOC 3
6314: PUSH
6315: FOR_IN
6316: IFFALSE 6636
// begin if not IsPlaced ( Am_Ware_1 ) then
6318: LD_INT 150
6320: PPUSH
6321: CALL_OW 305
6325: NOT
6326: IFFALSE 6380
// begin if IsInArea ( unit , AmVelka1 ) and GetType ( unit ) = unit_building then
6328: LD_VAR 0 5
6332: PPUSH
6333: LD_INT 35
6335: PPUSH
6336: CALL_OW 308
6340: PUSH
6341: LD_VAR 0 5
6345: PPUSH
6346: CALL_OW 247
6350: PUSH
6351: LD_INT 3
6353: EQUAL
6354: AND
6355: IFFALSE 6378
// if not UnitsInside ( unit ) then
6357: LD_VAR 0 5
6361: PPUSH
6362: CALL_OW 313
6366: NOT
6367: IFFALSE 6378
// DiffAmericans ( unit ) ;
6369: LD_VAR 0 5
6373: PPUSH
6374: CALL 7641 0 1
// end else
6378: GO 6476
// begin if IsInArea ( unit , AmVelka1 ) and ( GetEnergy ( GetBase ( Am_Ware_1 ) ) [ 3 ] = 0 or GetSide ( Am_Ware_1 ) <> Amik or IsDead ( Am_Ware_1 ) ) and GetType ( unit ) = unit_building then
6380: LD_VAR 0 5
6384: PPUSH
6385: LD_INT 35
6387: PPUSH
6388: CALL_OW 308
6392: PUSH
6393: LD_INT 150
6395: PPUSH
6396: CALL_OW 274
6400: PPUSH
6401: CALL_OW 278
6405: PUSH
6406: LD_INT 3
6408: ARRAY
6409: PUSH
6410: LD_INT 0
6412: EQUAL
6413: PUSH
6414: LD_INT 150
6416: PPUSH
6417: CALL_OW 255
6421: PUSH
6422: LD_EXP 4
6426: NONEQUAL
6427: OR
6428: PUSH
6429: LD_INT 150
6431: PPUSH
6432: CALL_OW 301
6436: OR
6437: AND
6438: PUSH
6439: LD_VAR 0 5
6443: PPUSH
6444: CALL_OW 247
6448: PUSH
6449: LD_INT 3
6451: EQUAL
6452: AND
6453: IFFALSE 6476
// if not UnitsInside ( unit ) then
6455: LD_VAR 0 5
6459: PPUSH
6460: CALL_OW 313
6464: NOT
6465: IFFALSE 6476
// DiffAmericans ( unit ) ;
6467: LD_VAR 0 5
6471: PPUSH
6472: CALL 7641 0 1
// end ; if not IsPlaced ( Am_Ware_2 ) then
6476: LD_INT 151
6478: PPUSH
6479: CALL_OW 305
6483: NOT
6484: IFFALSE 6538
// begin if IsInArea ( unit , AmVelka2 ) and GetType ( unit ) = unit_building then
6486: LD_VAR 0 5
6490: PPUSH
6491: LD_INT 36
6493: PPUSH
6494: CALL_OW 308
6498: PUSH
6499: LD_VAR 0 5
6503: PPUSH
6504: CALL_OW 247
6508: PUSH
6509: LD_INT 3
6511: EQUAL
6512: AND
6513: IFFALSE 6536
// if not UnitsInside ( unit ) then
6515: LD_VAR 0 5
6519: PPUSH
6520: CALL_OW 313
6524: NOT
6525: IFFALSE 6536
// DiffAmericans ( unit ) ;
6527: LD_VAR 0 5
6531: PPUSH
6532: CALL 7641 0 1
// end else
6536: GO 6634
// begin if IsInArea ( unit , AmVelka2 ) and ( GetEnergy ( GetBase ( Am_Ware_2 ) ) [ 3 ] = 0 or GetSide ( Am_Ware_2 ) <> Amik or IsDead ( Am_Ware_2 ) ) and GetType ( unit ) = unit_building then
6538: LD_VAR 0 5
6542: PPUSH
6543: LD_INT 36
6545: PPUSH
6546: CALL_OW 308
6550: PUSH
6551: LD_INT 151
6553: PPUSH
6554: CALL_OW 274
6558: PPUSH
6559: CALL_OW 278
6563: PUSH
6564: LD_INT 3
6566: ARRAY
6567: PUSH
6568: LD_INT 0
6570: EQUAL
6571: PUSH
6572: LD_INT 151
6574: PPUSH
6575: CALL_OW 255
6579: PUSH
6580: LD_EXP 4
6584: NONEQUAL
6585: OR
6586: PUSH
6587: LD_INT 151
6589: PPUSH
6590: CALL_OW 301
6594: OR
6595: AND
6596: PUSH
6597: LD_VAR 0 5
6601: PPUSH
6602: CALL_OW 247
6606: PUSH
6607: LD_INT 3
6609: EQUAL
6610: AND
6611: IFFALSE 6634
// if not UnitsInside ( unit ) then
6613: LD_VAR 0 5
6617: PPUSH
6618: CALL_OW 313
6622: NOT
6623: IFFALSE 6634
// DiffAmericans ( unit ) ;
6625: LD_VAR 0 5
6629: PPUSH
6630: CALL 7641 0 1
// end ; end ;
6634: GO 6315
6636: POP
6637: POP
// Neco_v_AmBaza13 = FilterUnitsInArea ( AmBaza1 , [ [ f_or , [ f_side , Amik ] , [ f_side , Amik2 ] ] , [ f_lives , 250 ] ] ) ^ FilterUnitsInArea ( AmBaza3 , [ [ f_or , [ f_side , Amik ] , [ f_side , Amik2 ] ] , [ f_lives , 250 ] ] ) ;
6638: LD_ADDR_VAR 0 2
6642: PUSH
6643: LD_INT 29
6645: PPUSH
6646: LD_INT 2
6648: PUSH
6649: LD_INT 22
6651: PUSH
6652: LD_EXP 4
6656: PUSH
6657: EMPTY
6658: LIST
6659: LIST
6660: PUSH
6661: LD_INT 22
6663: PUSH
6664: LD_EXP 5
6668: PUSH
6669: EMPTY
6670: LIST
6671: LIST
6672: PUSH
6673: EMPTY
6674: LIST
6675: LIST
6676: LIST
6677: PUSH
6678: LD_INT 24
6680: PUSH
6681: LD_INT 250
6683: PUSH
6684: EMPTY
6685: LIST
6686: LIST
6687: PUSH
6688: EMPTY
6689: LIST
6690: LIST
6691: PPUSH
6692: CALL_OW 70
6696: PUSH
6697: LD_INT 31
6699: PPUSH
6700: LD_INT 2
6702: PUSH
6703: LD_INT 22
6705: PUSH
6706: LD_EXP 4
6710: PUSH
6711: EMPTY
6712: LIST
6713: LIST
6714: PUSH
6715: LD_INT 22
6717: PUSH
6718: LD_EXP 5
6722: PUSH
6723: EMPTY
6724: LIST
6725: LIST
6726: PUSH
6727: EMPTY
6728: LIST
6729: LIST
6730: LIST
6731: PUSH
6732: LD_INT 24
6734: PUSH
6735: LD_INT 250
6737: PUSH
6738: EMPTY
6739: LIST
6740: LIST
6741: PUSH
6742: EMPTY
6743: LIST
6744: LIST
6745: PPUSH
6746: CALL_OW 70
6750: ADD
6751: ST_TO_ADDR
// ; for i in Neco_v_AmBaza13 do
6752: LD_ADDR_VAR 0 7
6756: PUSH
6757: LD_VAR 0 2
6761: PUSH
6762: FOR_IN
6763: IFFALSE 6796
// if not i in American1 then
6765: LD_VAR 0 7
6769: PUSH
6770: LD_LOC 1
6774: IN
6775: NOT
6776: IFFALSE 6794
// Neco_v_AmBaza13 = Neco_v_AmBaza13 diff i ;
6778: LD_ADDR_VAR 0 2
6782: PUSH
6783: LD_VAR 0 2
6787: PUSH
6788: LD_VAR 0 7
6792: DIFF
6793: ST_TO_ADDR
6794: GO 6762
6796: POP
6797: POP
// Neco_v_AmBaza2 = FilterUnitsInArea ( AmBaza2 , [ [ f_or , [ f_side , Amik ] , [ f_side , Amik2 ] ] , [ f_lives , 250 ] ] ) ;
6798: LD_ADDR_VAR 0 3
6802: PUSH
6803: LD_INT 30
6805: PPUSH
6806: LD_INT 2
6808: PUSH
6809: LD_INT 22
6811: PUSH
6812: LD_EXP 4
6816: PUSH
6817: EMPTY
6818: LIST
6819: LIST
6820: PUSH
6821: LD_INT 22
6823: PUSH
6824: LD_EXP 5
6828: PUSH
6829: EMPTY
6830: LIST
6831: LIST
6832: PUSH
6833: EMPTY
6834: LIST
6835: LIST
6836: LIST
6837: PUSH
6838: LD_INT 24
6840: PUSH
6841: LD_INT 250
6843: PUSH
6844: EMPTY
6845: LIST
6846: LIST
6847: PUSH
6848: EMPTY
6849: LIST
6850: LIST
6851: PPUSH
6852: CALL_OW 70
6856: ST_TO_ADDR
// for i in Neco_v_AmBaza2 do
6857: LD_ADDR_VAR 0 7
6861: PUSH
6862: LD_VAR 0 3
6866: PUSH
6867: FOR_IN
6868: IFFALSE 6901
// if not i in American2 then
6870: LD_VAR 0 7
6874: PUSH
6875: LD_LOC 2
6879: IN
6880: NOT
6881: IFFALSE 6899
// Neco_v_AmBaza2 = Neco_v_AmBaza2 diff i ;
6883: LD_ADDR_VAR 0 3
6887: PUSH
6888: LD_VAR 0 3
6892: PUSH
6893: LD_VAR 0 7
6897: DIFF
6898: ST_TO_ADDR
6899: GO 6867
6901: POP
6902: POP
// Neco_v_Velka12 = FilterUnitsInArea ( AmVelka1 , [ [ f_or , [ f_side , Amik ] , [ f_side , Amik2 ] ] , [ f_lives , 250 ] ] ) ^ FilterUnitsInArea ( AmVelka2 , [ [ f_or , [ f_side , Amik ] , [ f_side , Amik2 ] ] , [ f_lives , 250 ] ] ) ;
6903: LD_ADDR_VAR 0 4
6907: PUSH
6908: LD_INT 35
6910: PPUSH
6911: LD_INT 2
6913: PUSH
6914: LD_INT 22
6916: PUSH
6917: LD_EXP 4
6921: PUSH
6922: EMPTY
6923: LIST
6924: LIST
6925: PUSH
6926: LD_INT 22
6928: PUSH
6929: LD_EXP 5
6933: PUSH
6934: EMPTY
6935: LIST
6936: LIST
6937: PUSH
6938: EMPTY
6939: LIST
6940: LIST
6941: LIST
6942: PUSH
6943: LD_INT 24
6945: PUSH
6946: LD_INT 250
6948: PUSH
6949: EMPTY
6950: LIST
6951: LIST
6952: PUSH
6953: EMPTY
6954: LIST
6955: LIST
6956: PPUSH
6957: CALL_OW 70
6961: PUSH
6962: LD_INT 36
6964: PPUSH
6965: LD_INT 2
6967: PUSH
6968: LD_INT 22
6970: PUSH
6971: LD_EXP 4
6975: PUSH
6976: EMPTY
6977: LIST
6978: LIST
6979: PUSH
6980: LD_INT 22
6982: PUSH
6983: LD_EXP 5
6987: PUSH
6988: EMPTY
6989: LIST
6990: LIST
6991: PUSH
6992: EMPTY
6993: LIST
6994: LIST
6995: LIST
6996: PUSH
6997: LD_INT 24
6999: PUSH
7000: LD_INT 250
7002: PUSH
7003: EMPTY
7004: LIST
7005: LIST
7006: PUSH
7007: EMPTY
7008: LIST
7009: LIST
7010: PPUSH
7011: CALL_OW 70
7015: ADD
7016: ST_TO_ADDR
// ; for i in Neco_v_Velka12 do
7017: LD_ADDR_VAR 0 7
7021: PUSH
7022: LD_VAR 0 4
7026: PUSH
7027: FOR_IN
7028: IFFALSE 7061
// if not i in American3 then
7030: LD_VAR 0 7
7034: PUSH
7035: LD_LOC 3
7039: IN
7040: NOT
7041: IFFALSE 7059
// Neco_v_Velka12 = Neco_v_Velka12 diff i ;
7043: LD_ADDR_VAR 0 4
7047: PUSH
7048: LD_VAR 0 4
7052: PUSH
7053: LD_VAR 0 7
7057: DIFF
7058: ST_TO_ADDR
7059: GO 7027
7061: POP
7062: POP
// for veh in Ru_Attack do
7063: LD_ADDR_VAR 0 6
7067: PUSH
7068: LD_EXP 70
7072: PUSH
7073: FOR_IN
7074: IFFALSE 7109
// if GetLives ( veh ) < 550 then
7076: LD_VAR 0 6
7080: PPUSH
7081: CALL_OW 256
7085: PUSH
7086: LD_INT 550
7088: LESS
7089: IFFALSE 7107
// Ru_Attack = Ru_Attack diff veh ;
7091: LD_ADDR_EXP 70
7095: PUSH
7096: LD_EXP 70
7100: PUSH
7101: LD_VAR 0 6
7105: DIFF
7106: ST_TO_ADDR
7107: GO 7073
7109: POP
7110: POP
// for veh in Ru_Attack do
7111: LD_ADDR_VAR 0 6
7115: PUSH
7116: LD_EXP 70
7120: PUSH
7121: FOR_IN
7122: IFFALSE 7564
// begin if American2 and Neco_V_AmBaza2 then
7124: LD_LOC 2
7128: PUSH
7129: LD_VAR 0 3
7133: AND
7134: IFFALSE 7216
// begin if SeeUn ( veh , American2 ) then
7136: LD_VAR 0 6
7140: PPUSH
7141: LD_LOC 2
7145: PPUSH
7146: CALL 7572 0 2
7150: IFFALSE 7178
// ComAttackUnit ( veh , NearestUnitToUnit ( American2 , veh ) ) else
7152: LD_VAR 0 6
7156: PPUSH
7157: LD_LOC 2
7161: PPUSH
7162: LD_VAR 0 6
7166: PPUSH
7167: CALL_OW 74
7171: PPUSH
7172: CALL_OW 115
7176: GO 7214
// if GetDistUnitXY ( veh , 156 , 75 ) > 3 then
7178: LD_VAR 0 6
7182: PPUSH
7183: LD_INT 156
7185: PPUSH
7186: LD_INT 75
7188: PPUSH
7189: CALL_OW 297
7193: PUSH
7194: LD_INT 3
7196: GREATER
7197: IFFALSE 7214
// ComAgressiveMove ( veh , 156 , 75 ) ;
7199: LD_VAR 0 6
7203: PPUSH
7204: LD_INT 156
7206: PPUSH
7207: LD_INT 75
7209: PPUSH
7210: CALL_OW 114
// end else
7214: GO 7562
// if not Neco_V_AmBaza2 and not American2 and not ( IsInArea ( veh , AmBaza2 ) or IsInArea ( veh , Prostredni ) or IsInArea ( veh , Horni ) ) then
7216: LD_VAR 0 3
7220: NOT
7221: PUSH
7222: LD_LOC 2
7226: NOT
7227: AND
7228: PUSH
7229: LD_VAR 0 6
7233: PPUSH
7234: LD_INT 30
7236: PPUSH
7237: CALL_OW 308
7241: PUSH
7242: LD_VAR 0 6
7246: PPUSH
7247: LD_INT 33
7249: PPUSH
7250: CALL_OW 308
7254: OR
7255: PUSH
7256: LD_VAR 0 6
7260: PPUSH
7261: LD_INT 34
7263: PPUSH
7264: CALL_OW 308
7268: OR
7269: NOT
7270: AND
7271: IFFALSE 7290
// ComAgressiveMoveXY ( veh , 160 , 86 ) else
7273: LD_VAR 0 6
7277: PPUSH
7278: LD_INT 160
7280: PPUSH
7281: LD_INT 86
7283: PPUSH
7284: CALL 7733 0 3
7288: GO 7562
// if ( IsInArea ( veh , AmBaza2 ) or IsInArea ( veh , Prostredni ) ) and not Neco_V_AmBaza2 and Neco_V_AmBaza13 and American1 then
7290: LD_VAR 0 6
7294: PPUSH
7295: LD_INT 30
7297: PPUSH
7298: CALL_OW 308
7302: PUSH
7303: LD_VAR 0 6
7307: PPUSH
7308: LD_INT 33
7310: PPUSH
7311: CALL_OW 308
7315: OR
7316: PUSH
7317: LD_VAR 0 3
7321: NOT
7322: AND
7323: PUSH
7324: LD_VAR 0 2
7328: AND
7329: PUSH
7330: LD_LOC 1
7334: AND
7335: IFFALSE 7417
// begin if SeeUn ( veh , American1 ) then
7337: LD_VAR 0 6
7341: PPUSH
7342: LD_LOC 1
7346: PPUSH
7347: CALL 7572 0 2
7351: IFFALSE 7379
// ComAttackUnit ( veh , NearestUnitToUnit ( American1 , veh ) ) else
7353: LD_VAR 0 6
7357: PPUSH
7358: LD_LOC 1
7362: PPUSH
7363: LD_VAR 0 6
7367: PPUSH
7368: CALL_OW 74
7372: PPUSH
7373: CALL_OW 115
7377: GO 7415
// if GetDistUnitXY ( veh , 77 , 96 ) > 3 then
7379: LD_VAR 0 6
7383: PPUSH
7384: LD_INT 77
7386: PPUSH
7387: LD_INT 96
7389: PPUSH
7390: CALL_OW 297
7394: PUSH
7395: LD_INT 3
7397: GREATER
7398: IFFALSE 7415
// ComAgressiveMove ( veh , 77 , 96 ) ;
7400: LD_VAR 0 6
7404: PPUSH
7405: LD_INT 77
7407: PPUSH
7408: LD_INT 96
7410: PPUSH
7411: CALL_OW 114
// end else
7415: GO 7562
// if not Neco_V_AmBaza13 and not American1 and not IsInArea ( veh , Horni ) then
7417: LD_VAR 0 2
7421: NOT
7422: PUSH
7423: LD_LOC 1
7427: NOT
7428: AND
7429: PUSH
7430: LD_VAR 0 6
7434: PPUSH
7435: LD_INT 34
7437: PPUSH
7438: CALL_OW 308
7442: NOT
7443: AND
7444: IFFALSE 7463
// ComAgressiveMoveXY ( veh , 168 , 38 ) else
7446: LD_VAR 0 6
7450: PPUSH
7451: LD_INT 168
7453: PPUSH
7454: LD_INT 38
7456: PPUSH
7457: CALL 7733 0 3
7461: GO 7562
// if IsInArea ( veh , Horni ) and not Neco_V_AmBaza2 and Neco_v_Velka12 and American3 then
7463: LD_VAR 0 6
7467: PPUSH
7468: LD_INT 34
7470: PPUSH
7471: CALL_OW 308
7475: PUSH
7476: LD_VAR 0 3
7480: NOT
7481: AND
7482: PUSH
7483: LD_VAR 0 4
7487: AND
7488: PUSH
7489: LD_LOC 3
7493: AND
7494: IFFALSE 7562
// begin if SeeUn ( veh , American3 ) then
7496: LD_VAR 0 6
7500: PPUSH
7501: LD_LOC 3
7505: PPUSH
7506: CALL 7572 0 2
7510: IFFALSE 7538
// ComAttackUnit ( veh , NearestUnitToUnit ( American3 , veh ) ) else
7512: LD_VAR 0 6
7516: PPUSH
7517: LD_LOC 3
7521: PPUSH
7522: LD_VAR 0 6
7526: PPUSH
7527: CALL_OW 74
7531: PPUSH
7532: CALL_OW 115
7536: GO 7562
// ComMoveUnit ( veh , NearestUnitToUnit ( American3 , veh ) ) ;
7538: LD_VAR 0 6
7542: PPUSH
7543: LD_LOC 3
7547: PPUSH
7548: LD_VAR 0 6
7552: PPUSH
7553: CALL_OW 74
7557: PPUSH
7558: CALL_OW 112
// end ; end ;
7562: GO 7121
7564: POP
7565: POP
// enable ;
7566: ENABLE
// end ;
7567: LD_VAR 0 1
7571: RET
// function SeeUn ( veh , list ) ; begin
7572: LD_INT 0
7574: PPUSH
// if not list then
7575: LD_VAR 0 2
7579: NOT
7580: IFFALSE 7592
// result = false else
7582: LD_ADDR_VAR 0 3
7586: PUSH
7587: LD_INT 0
7589: ST_TO_ADDR
7590: GO 7636
// if See ( You2 , NearestUnitToUnit ( list , veh ) ) then
7592: LD_EXP 3
7596: PPUSH
7597: LD_VAR 0 2
7601: PPUSH
7602: LD_VAR 0 1
7606: PPUSH
7607: CALL_OW 74
7611: PPUSH
7612: CALL_OW 292
7616: IFFALSE 7628
// result = true else
7618: LD_ADDR_VAR 0 3
7622: PUSH
7623: LD_INT 1
7625: ST_TO_ADDR
7626: GO 7636
// result = false ;
7628: LD_ADDR_VAR 0 3
7632: PUSH
7633: LD_INT 0
7635: ST_TO_ADDR
// end ;
7636: LD_VAR 0 3
7640: RET
// function DiffAmericans ( unit ) ; begin
7641: LD_INT 0
7643: PPUSH
// if unit in American1 then
7644: LD_VAR 0 1
7648: PUSH
7649: LD_LOC 1
7653: IN
7654: IFFALSE 7672
// American1 = American1 diff unit ;
7656: LD_ADDR_LOC 1
7660: PUSH
7661: LD_LOC 1
7665: PUSH
7666: LD_VAR 0 1
7670: DIFF
7671: ST_TO_ADDR
// if unit in American2 then
7672: LD_VAR 0 1
7676: PUSH
7677: LD_LOC 2
7681: IN
7682: IFFALSE 7700
// American2 = American2 diff unit ;
7684: LD_ADDR_LOC 2
7688: PUSH
7689: LD_LOC 2
7693: PUSH
7694: LD_VAR 0 1
7698: DIFF
7699: ST_TO_ADDR
// if unit in American3 then
7700: LD_VAR 0 1
7704: PUSH
7705: LD_LOC 3
7709: IN
7710: IFFALSE 7728
// American3 = American3 diff unit ;
7712: LD_ADDR_LOC 3
7716: PUSH
7717: LD_LOC 3
7721: PUSH
7722: LD_VAR 0 1
7726: DIFF
7727: ST_TO_ADDR
// end ;
7728: LD_VAR 0 2
7732: RET
// export function ComAgressiveMoveXY ( veh , x , y ) ; var Shift_x , Steps ; begin
7733: LD_INT 0
7735: PPUSH
7736: PPUSH
7737: PPUSH
// Shift_x = x ;
7738: LD_ADDR_VAR 0 5
7742: PUSH
7743: LD_VAR 0 2
7747: ST_TO_ADDR
// Steps = 0 ;
7748: LD_ADDR_VAR 0 6
7752: PUSH
7753: LD_INT 0
7755: ST_TO_ADDR
// repeat ; begin if not HexInfo ( Shift_x , y ) = 0 then
7756: LD_VAR 0 5
7760: PPUSH
7761: LD_VAR 0 3
7765: PPUSH
7766: CALL_OW 428
7770: PUSH
7771: LD_INT 0
7773: EQUAL
7774: NOT
7775: IFFALSE 7805
// begin Shift_x = Shift_x + 1 ;
7777: LD_ADDR_VAR 0 5
7781: PUSH
7782: LD_VAR 0 5
7786: PUSH
7787: LD_INT 1
7789: PLUS
7790: ST_TO_ADDR
// Steps = Steps + 1 ;
7791: LD_ADDR_VAR 0 6
7795: PUSH
7796: LD_VAR 0 6
7800: PUSH
7801: LD_INT 1
7803: PLUS
7804: ST_TO_ADDR
// end ; if Steps > 7 then
7805: LD_VAR 0 6
7809: PUSH
7810: LD_INT 7
7812: GREATER
7813: IFFALSE 7817
// exit ;
7815: GO 7856
// end ; until HexInfo ( Shift_x , y ) = 0 ;
7817: LD_VAR 0 5
7821: PPUSH
7822: LD_VAR 0 3
7826: PPUSH
7827: CALL_OW 428
7831: PUSH
7832: LD_INT 0
7834: EQUAL
7835: IFFALSE 7756
// ComAgressiveMove ( veh , Shift_x , y ) ;
7837: LD_VAR 0 1
7841: PPUSH
7842: LD_VAR 0 5
7846: PPUSH
7847: LD_VAR 0 3
7851: PPUSH
7852: CALL_OW 114
// end ;
7856: LD_VAR 0 4
7860: RET
// export function NajdiVojaka ; var voj ; begin
7861: LD_INT 0
7863: PPUSH
7864: PPUSH
// if FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] , [ f_or , [ f_class , class_soldier ] , [ f_class , class_bazooker ] ] ] ) diff Vsevolod then
7865: LD_INT 24
7867: PUSH
7868: LD_INT 250
7870: PUSH
7871: EMPTY
7872: LIST
7873: LIST
7874: PUSH
7875: LD_INT 23
7877: PUSH
7878: LD_INT 3
7880: PUSH
7881: EMPTY
7882: LIST
7883: LIST
7884: PUSH
7885: LD_INT 22
7887: PUSH
7888: LD_EXP 2
7892: PUSH
7893: EMPTY
7894: LIST
7895: LIST
7896: PUSH
7897: LD_INT 2
7899: PUSH
7900: LD_INT 25
7902: PUSH
7903: LD_INT 1
7905: PUSH
7906: EMPTY
7907: LIST
7908: LIST
7909: PUSH
7910: LD_INT 25
7912: PUSH
7913: LD_INT 9
7915: PUSH
7916: EMPTY
7917: LIST
7918: LIST
7919: PUSH
7920: EMPTY
7921: LIST
7922: LIST
7923: LIST
7924: PUSH
7925: EMPTY
7926: LIST
7927: LIST
7928: LIST
7929: LIST
7930: PPUSH
7931: CALL_OW 69
7935: PUSH
7936: LD_EXP 17
7940: DIFF
7941: IFFALSE 8025
// voj = FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] , [ f_or , [ f_class , class_soldier ] , [ f_class , class_bazooker ] ] ] ) diff Vsevolod ;
7943: LD_ADDR_VAR 0 2
7947: PUSH
7948: LD_INT 24
7950: PUSH
7951: LD_INT 250
7953: PUSH
7954: EMPTY
7955: LIST
7956: LIST
7957: PUSH
7958: LD_INT 23
7960: PUSH
7961: LD_INT 3
7963: PUSH
7964: EMPTY
7965: LIST
7966: LIST
7967: PUSH
7968: LD_INT 22
7970: PUSH
7971: LD_EXP 2
7975: PUSH
7976: EMPTY
7977: LIST
7978: LIST
7979: PUSH
7980: LD_INT 2
7982: PUSH
7983: LD_INT 25
7985: PUSH
7986: LD_INT 1
7988: PUSH
7989: EMPTY
7990: LIST
7991: LIST
7992: PUSH
7993: LD_INT 25
7995: PUSH
7996: LD_INT 9
7998: PUSH
7999: EMPTY
8000: LIST
8001: LIST
8002: PUSH
8003: EMPTY
8004: LIST
8005: LIST
8006: LIST
8007: PUSH
8008: EMPTY
8009: LIST
8010: LIST
8011: LIST
8012: LIST
8013: PPUSH
8014: CALL_OW 69
8018: PUSH
8019: LD_EXP 17
8023: DIFF
8024: ST_TO_ADDR
// if voj then
8025: LD_VAR 0 2
8029: IFFALSE 8057
// result = voj [ Rand ( 1 , voj ) ] else
8031: LD_ADDR_VAR 0 1
8035: PUSH
8036: LD_VAR 0 2
8040: PUSH
8041: LD_INT 1
8043: PPUSH
8044: LD_VAR 0 2
8048: PPUSH
8049: CALL_OW 12
8053: ARRAY
8054: ST_TO_ADDR
8055: GO 8118
// result = FindMaxSkill ( FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] ] ) diff vsevolod , skill_combat ) ;
8057: LD_ADDR_VAR 0 1
8061: PUSH
8062: LD_INT 24
8064: PUSH
8065: LD_INT 250
8067: PUSH
8068: EMPTY
8069: LIST
8070: LIST
8071: PUSH
8072: LD_INT 23
8074: PUSH
8075: LD_INT 3
8077: PUSH
8078: EMPTY
8079: LIST
8080: LIST
8081: PUSH
8082: LD_INT 22
8084: PUSH
8085: LD_EXP 2
8089: PUSH
8090: EMPTY
8091: LIST
8092: LIST
8093: PUSH
8094: EMPTY
8095: LIST
8096: LIST
8097: LIST
8098: PPUSH
8099: CALL_OW 69
8103: PUSH
8104: LD_EXP 17
8108: DIFF
8109: PPUSH
8110: LD_INT 1
8112: PPUSH
8113: CALL_OW 433
8117: ST_TO_ADDR
// end ;
8118: LD_VAR 0 1
8122: RET
// export function NajdiVedce ; var ved ; begin
8123: LD_INT 0
8125: PPUSH
8126: PPUSH
// if FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] , [ f_class , class_scientistic ] ] ) diff Vsevolod then
8127: LD_INT 24
8129: PUSH
8130: LD_INT 250
8132: PUSH
8133: EMPTY
8134: LIST
8135: LIST
8136: PUSH
8137: LD_INT 23
8139: PUSH
8140: LD_INT 3
8142: PUSH
8143: EMPTY
8144: LIST
8145: LIST
8146: PUSH
8147: LD_INT 22
8149: PUSH
8150: LD_EXP 2
8154: PUSH
8155: EMPTY
8156: LIST
8157: LIST
8158: PUSH
8159: LD_INT 25
8161: PUSH
8162: LD_INT 4
8164: PUSH
8165: EMPTY
8166: LIST
8167: LIST
8168: PUSH
8169: EMPTY
8170: LIST
8171: LIST
8172: LIST
8173: LIST
8174: PPUSH
8175: CALL_OW 69
8179: PUSH
8180: LD_EXP 17
8184: DIFF
8185: IFFALSE 8251
// ved = FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] , [ f_class , class_scientistic ] ] ) diff Vsevolod ;
8187: LD_ADDR_VAR 0 2
8191: PUSH
8192: LD_INT 24
8194: PUSH
8195: LD_INT 250
8197: PUSH
8198: EMPTY
8199: LIST
8200: LIST
8201: PUSH
8202: LD_INT 23
8204: PUSH
8205: LD_INT 3
8207: PUSH
8208: EMPTY
8209: LIST
8210: LIST
8211: PUSH
8212: LD_INT 22
8214: PUSH
8215: LD_EXP 2
8219: PUSH
8220: EMPTY
8221: LIST
8222: LIST
8223: PUSH
8224: LD_INT 25
8226: PUSH
8227: LD_INT 4
8229: PUSH
8230: EMPTY
8231: LIST
8232: LIST
8233: PUSH
8234: EMPTY
8235: LIST
8236: LIST
8237: LIST
8238: LIST
8239: PPUSH
8240: CALL_OW 69
8244: PUSH
8245: LD_EXP 17
8249: DIFF
8250: ST_TO_ADDR
// if ved then
8251: LD_VAR 0 2
8255: IFFALSE 8283
// result = ved [ Rand ( 1 , ved ) ] else
8257: LD_ADDR_VAR 0 1
8261: PUSH
8262: LD_VAR 0 2
8266: PUSH
8267: LD_INT 1
8269: PPUSH
8270: LD_VAR 0 2
8274: PPUSH
8275: CALL_OW 12
8279: ARRAY
8280: ST_TO_ADDR
8281: GO 8344
// result = FindMaxSkill ( FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] ] ) diff vsevolod , skill_scientistic ) ;
8283: LD_ADDR_VAR 0 1
8287: PUSH
8288: LD_INT 24
8290: PUSH
8291: LD_INT 250
8293: PUSH
8294: EMPTY
8295: LIST
8296: LIST
8297: PUSH
8298: LD_INT 23
8300: PUSH
8301: LD_INT 3
8303: PUSH
8304: EMPTY
8305: LIST
8306: LIST
8307: PUSH
8308: LD_INT 22
8310: PUSH
8311: LD_EXP 2
8315: PUSH
8316: EMPTY
8317: LIST
8318: LIST
8319: PUSH
8320: EMPTY
8321: LIST
8322: LIST
8323: LIST
8324: PPUSH
8325: CALL_OW 69
8329: PUSH
8330: LD_EXP 17
8334: DIFF
8335: PPUSH
8336: LD_INT 4
8338: PPUSH
8339: CALL_OW 433
8343: ST_TO_ADDR
// end ;
8344: LD_VAR 0 1
8348: RET
// export function NajdiMechanika ; var mech ; begin
8349: LD_INT 0
8351: PPUSH
8352: PPUSH
// if FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] , [ f_class , class_mechanic ] ] ) diff Vsevolod then
8353: LD_INT 24
8355: PUSH
8356: LD_INT 250
8358: PUSH
8359: EMPTY
8360: LIST
8361: LIST
8362: PUSH
8363: LD_INT 23
8365: PUSH
8366: LD_INT 3
8368: PUSH
8369: EMPTY
8370: LIST
8371: LIST
8372: PUSH
8373: LD_INT 22
8375: PUSH
8376: LD_EXP 2
8380: PUSH
8381: EMPTY
8382: LIST
8383: LIST
8384: PUSH
8385: LD_INT 25
8387: PUSH
8388: LD_INT 3
8390: PUSH
8391: EMPTY
8392: LIST
8393: LIST
8394: PUSH
8395: EMPTY
8396: LIST
8397: LIST
8398: LIST
8399: LIST
8400: PPUSH
8401: CALL_OW 69
8405: PUSH
8406: LD_EXP 17
8410: DIFF
8411: IFFALSE 8477
// mech = FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] , [ f_class , class_mechanic ] ] ) diff Vsevolod ;
8413: LD_ADDR_VAR 0 2
8417: PUSH
8418: LD_INT 24
8420: PUSH
8421: LD_INT 250
8423: PUSH
8424: EMPTY
8425: LIST
8426: LIST
8427: PUSH
8428: LD_INT 23
8430: PUSH
8431: LD_INT 3
8433: PUSH
8434: EMPTY
8435: LIST
8436: LIST
8437: PUSH
8438: LD_INT 22
8440: PUSH
8441: LD_EXP 2
8445: PUSH
8446: EMPTY
8447: LIST
8448: LIST
8449: PUSH
8450: LD_INT 25
8452: PUSH
8453: LD_INT 3
8455: PUSH
8456: EMPTY
8457: LIST
8458: LIST
8459: PUSH
8460: EMPTY
8461: LIST
8462: LIST
8463: LIST
8464: LIST
8465: PPUSH
8466: CALL_OW 69
8470: PUSH
8471: LD_EXP 17
8475: DIFF
8476: ST_TO_ADDR
// if mech then
8477: LD_VAR 0 2
8481: IFFALSE 8509
// result = mech [ Rand ( 1 , mech ) ] else
8483: LD_ADDR_VAR 0 1
8487: PUSH
8488: LD_VAR 0 2
8492: PUSH
8493: LD_INT 1
8495: PPUSH
8496: LD_VAR 0 2
8500: PPUSH
8501: CALL_OW 12
8505: ARRAY
8506: ST_TO_ADDR
8507: GO 8570
// result = FindMaxSkill ( FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] ] ) diff vsevolod , skill_mechanical ) ;
8509: LD_ADDR_VAR 0 1
8513: PUSH
8514: LD_INT 24
8516: PUSH
8517: LD_INT 250
8519: PUSH
8520: EMPTY
8521: LIST
8522: LIST
8523: PUSH
8524: LD_INT 23
8526: PUSH
8527: LD_INT 3
8529: PUSH
8530: EMPTY
8531: LIST
8532: LIST
8533: PUSH
8534: LD_INT 22
8536: PUSH
8537: LD_EXP 2
8541: PUSH
8542: EMPTY
8543: LIST
8544: LIST
8545: PUSH
8546: EMPTY
8547: LIST
8548: LIST
8549: LIST
8550: PPUSH
8551: CALL_OW 69
8555: PUSH
8556: LD_EXP 17
8560: DIFF
8561: PPUSH
8562: LD_INT 3
8564: PPUSH
8565: CALL_OW 433
8569: ST_TO_ADDR
// end ;
8570: LD_VAR 0 1
8574: RET
// export function NajdiDelnika ; var del ; begin
8575: LD_INT 0
8577: PPUSH
8578: PPUSH
// if FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] , [ f_class , class_engineer ] ] ) diff Vsevolod then
8579: LD_INT 24
8581: PUSH
8582: LD_INT 250
8584: PUSH
8585: EMPTY
8586: LIST
8587: LIST
8588: PUSH
8589: LD_INT 23
8591: PUSH
8592: LD_INT 3
8594: PUSH
8595: EMPTY
8596: LIST
8597: LIST
8598: PUSH
8599: LD_INT 22
8601: PUSH
8602: LD_EXP 2
8606: PUSH
8607: EMPTY
8608: LIST
8609: LIST
8610: PUSH
8611: LD_INT 25
8613: PUSH
8614: LD_INT 2
8616: PUSH
8617: EMPTY
8618: LIST
8619: LIST
8620: PUSH
8621: EMPTY
8622: LIST
8623: LIST
8624: LIST
8625: LIST
8626: PPUSH
8627: CALL_OW 69
8631: PUSH
8632: LD_EXP 17
8636: DIFF
8637: IFFALSE 8703
// del = FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] , [ f_class , class_engineer ] ] ) diff Vsevolod ;
8639: LD_ADDR_VAR 0 2
8643: PUSH
8644: LD_INT 24
8646: PUSH
8647: LD_INT 250
8649: PUSH
8650: EMPTY
8651: LIST
8652: LIST
8653: PUSH
8654: LD_INT 23
8656: PUSH
8657: LD_INT 3
8659: PUSH
8660: EMPTY
8661: LIST
8662: LIST
8663: PUSH
8664: LD_INT 22
8666: PUSH
8667: LD_EXP 2
8671: PUSH
8672: EMPTY
8673: LIST
8674: LIST
8675: PUSH
8676: LD_INT 25
8678: PUSH
8679: LD_INT 2
8681: PUSH
8682: EMPTY
8683: LIST
8684: LIST
8685: PUSH
8686: EMPTY
8687: LIST
8688: LIST
8689: LIST
8690: LIST
8691: PPUSH
8692: CALL_OW 69
8696: PUSH
8697: LD_EXP 17
8701: DIFF
8702: ST_TO_ADDR
// if del then
8703: LD_VAR 0 2
8707: IFFALSE 8735
// result = del [ Rand ( 1 , del ) ] else
8709: LD_ADDR_VAR 0 1
8713: PUSH
8714: LD_VAR 0 2
8718: PUSH
8719: LD_INT 1
8721: PPUSH
8722: LD_VAR 0 2
8726: PPUSH
8727: CALL_OW 12
8731: ARRAY
8732: ST_TO_ADDR
8733: GO 8796
// result = FindMaxSkill ( FilterAllUnits ( [ [ f_lives , 250 ] , [ f_nation , nation_russian ] , [ f_side , You ] ] ) diff vsevolod , skill_engineering ) ;
8735: LD_ADDR_VAR 0 1
8739: PUSH
8740: LD_INT 24
8742: PUSH
8743: LD_INT 250
8745: PUSH
8746: EMPTY
8747: LIST
8748: LIST
8749: PUSH
8750: LD_INT 23
8752: PUSH
8753: LD_INT 3
8755: PUSH
8756: EMPTY
8757: LIST
8758: LIST
8759: PUSH
8760: LD_INT 22
8762: PUSH
8763: LD_EXP 2
8767: PUSH
8768: EMPTY
8769: LIST
8770: LIST
8771: PUSH
8772: EMPTY
8773: LIST
8774: LIST
8775: LIST
8776: PPUSH
8777: CALL_OW 69
8781: PUSH
8782: LD_EXP 17
8786: DIFF
8787: PPUSH
8788: LD_INT 2
8790: PPUSH
8791: CALL_OW 433
8795: ST_TO_ADDR
// end ;
8796: LD_VAR 0 1
8800: RET
// export function ZijeNekdoList ( list ) ; var un ; var odejit ; begin
8801: LD_INT 0
8803: PPUSH
8804: PPUSH
8805: PPUSH
// odejit = true ;
8806: LD_ADDR_VAR 0 4
8810: PUSH
8811: LD_INT 1
8813: ST_TO_ADDR
// for un in list do
8814: LD_ADDR_VAR 0 3
8818: PUSH
8819: LD_VAR 0 1
8823: PUSH
8824: FOR_IN
8825: IFFALSE 8848
// if IsPlaced ( un ) then
8827: LD_VAR 0 3
8831: PPUSH
8832: CALL_OW 305
8836: IFFALSE 8846
// odejit = false ;
8838: LD_ADDR_VAR 0 4
8842: PUSH
8843: LD_INT 0
8845: ST_TO_ADDR
8846: GO 8824
8848: POP
8849: POP
// if odejit then
8850: LD_VAR 0 4
8854: IFFALSE 8866
// result = false else
8856: LD_ADDR_VAR 0 2
8860: PUSH
8861: LD_INT 0
8863: ST_TO_ADDR
8864: GO 8874
// result = true ;
8866: LD_ADDR_VAR 0 2
8870: PUSH
8871: LD_INT 1
8873: ST_TO_ADDR
// end ;
8874: LD_VAR 0 2
8878: RET
// export function CreateCratesArea2 ( crates , area , mat ) ; begin
8879: LD_INT 0
8881: PPUSH
// if crates < 1 or crates > 5 then
8882: LD_VAR 0 1
8886: PUSH
8887: LD_INT 1
8889: LESS
8890: PUSH
8891: LD_VAR 0 1
8895: PUSH
8896: LD_INT 5
8898: GREATER
8899: OR
8900: IFFALSE 8904
// exit ;
8902: GO 8923
// CreateCratesArea ( crates , area , mat ) ;
8904: LD_VAR 0 1
8908: PPUSH
8909: LD_VAR 0 2
8913: PPUSH
8914: LD_VAR 0 3
8918: PPUSH
8919: CALL_OW 55
// end ; end_of_file
8923: LD_VAR 0 4
8927: RET
// export dif_bedny_start , dif_enemy_skill , dif_enemy_ostatni_skill_max , dif_ape_agress , dif_enemy_lidi_kasa_am1 , dif_enemy_lidi_kasa_am2 , dif_enemy_sniper_prob_am2 , dif_bedny_RuBedny , dif_bedny_mnozstvi , dif_enemy_lidi_faclab_am1 , dif_enemy_lidi_faclab_am2 , dif_purple_veh , dif_purple_cesta_prob , dif_amik_tanky_max , dif_purple_veh2 , dif_alice_utek , dif_alice_dist , dif_jerabu , dif_jerab_podvozek , dif_am2_chassis , dif_am2_build_wait ; export function Obtiznost ; var i ; begin
8928: LD_INT 0
8930: PPUSH
8931: PPUSH
// dif_ape_agress = [ [ - 15 , - 10 ] , [ - 5 , 5 ] , [ 5 , 25 ] ] [ difficulty ] ;
8932: LD_ADDR_EXP 26
8936: PUSH
8937: LD_INT 15
8939: NEG
8940: PUSH
8941: LD_INT 10
8943: NEG
8944: PUSH
8945: EMPTY
8946: LIST
8947: LIST
8948: PUSH
8949: LD_INT 5
8951: NEG
8952: PUSH
8953: LD_INT 5
8955: PUSH
8956: EMPTY
8957: LIST
8958: LIST
8959: PUSH
8960: LD_INT 5
8962: PUSH
8963: LD_INT 25
8965: PUSH
8966: EMPTY
8967: LIST
8968: LIST
8969: PUSH
8970: EMPTY
8971: LIST
8972: LIST
8973: LIST
8974: PUSH
8975: LD_OWVAR 67
8979: ARRAY
8980: ST_TO_ADDR
// dif_bedny_start = [ 110 , 100 , 90 ] [ difficulty ] ;
8981: LD_ADDR_EXP 23
8985: PUSH
8986: LD_INT 110
8988: PUSH
8989: LD_INT 100
8991: PUSH
8992: LD_INT 90
8994: PUSH
8995: EMPTY
8996: LIST
8997: LIST
8998: LIST
8999: PUSH
9000: LD_OWVAR 67
9004: ARRAY
9005: ST_TO_ADDR
// dif_bedny_RuBedny = [ 25 , 20 , 15 ] [ difficulty ] ;
9006: LD_ADDR_EXP 30
9010: PUSH
9011: LD_INT 25
9013: PUSH
9014: LD_INT 20
9016: PUSH
9017: LD_INT 15
9019: PUSH
9020: EMPTY
9021: LIST
9022: LIST
9023: LIST
9024: PUSH
9025: LD_OWVAR 67
9029: ARRAY
9030: ST_TO_ADDR
// dif_bedny_mnozstvi = [ [ 3 , 5 ] , [ 2 , 5 ] , [ 2 , 4 ] ] [ difficulty ] ;
9031: LD_ADDR_EXP 31
9035: PUSH
9036: LD_INT 3
9038: PUSH
9039: LD_INT 5
9041: PUSH
9042: EMPTY
9043: LIST
9044: LIST
9045: PUSH
9046: LD_INT 2
9048: PUSH
9049: LD_INT 5
9051: PUSH
9052: EMPTY
9053: LIST
9054: LIST
9055: PUSH
9056: LD_INT 2
9058: PUSH
9059: LD_INT 4
9061: PUSH
9062: EMPTY
9063: LIST
9064: LIST
9065: PUSH
9066: EMPTY
9067: LIST
9068: LIST
9069: LIST
9070: PUSH
9071: LD_OWVAR 67
9075: ARRAY
9076: ST_TO_ADDR
// dif_enemy_skill = [ 5 , 6 , 7 ] [ difficulty ] ;
9077: LD_ADDR_EXP 24
9081: PUSH
9082: LD_INT 5
9084: PUSH
9085: LD_INT 6
9087: PUSH
9088: LD_INT 7
9090: PUSH
9091: EMPTY
9092: LIST
9093: LIST
9094: LIST
9095: PUSH
9096: LD_OWVAR 67
9100: ARRAY
9101: ST_TO_ADDR
// dif_enemy_ostatni_skill_max = [ 3 , 5 , 5 ] [ difficulty ] ;
9102: LD_ADDR_EXP 25
9106: PUSH
9107: LD_INT 3
9109: PUSH
9110: LD_INT 5
9112: PUSH
9113: LD_INT 5
9115: PUSH
9116: EMPTY
9117: LIST
9118: LIST
9119: LIST
9120: PUSH
9121: LD_OWVAR 67
9125: ARRAY
9126: ST_TO_ADDR
// dif_enemy_lidi_kasa_am1 = [ 2 , 3 , 4 ] [ difficulty ] ;
9127: LD_ADDR_EXP 27
9131: PUSH
9132: LD_INT 2
9134: PUSH
9135: LD_INT 3
9137: PUSH
9138: LD_INT 4
9140: PUSH
9141: EMPTY
9142: LIST
9143: LIST
9144: LIST
9145: PUSH
9146: LD_OWVAR 67
9150: ARRAY
9151: ST_TO_ADDR
// dif_enemy_lidi_kasa_am2 = [ 3 , 4 , 5 ] [ difficulty ] ;
9152: LD_ADDR_EXP 28
9156: PUSH
9157: LD_INT 3
9159: PUSH
9160: LD_INT 4
9162: PUSH
9163: LD_INT 5
9165: PUSH
9166: EMPTY
9167: LIST
9168: LIST
9169: LIST
9170: PUSH
9171: LD_OWVAR 67
9175: ARRAY
9176: ST_TO_ADDR
// dif_enemy_sniper_prob_am2 = [ 0 , 30 , 60 ] [ difficulty ] ;
9177: LD_ADDR_EXP 29
9181: PUSH
9182: LD_INT 0
9184: PUSH
9185: LD_INT 30
9187: PUSH
9188: LD_INT 60
9190: PUSH
9191: EMPTY
9192: LIST
9193: LIST
9194: LIST
9195: PUSH
9196: LD_OWVAR 67
9200: ARRAY
9201: ST_TO_ADDR
// dif_enemy_lidi_faclab_am1 = [ 3 , 4 , 6 ] [ difficulty ] ;
9202: LD_ADDR_EXP 32
9206: PUSH
9207: LD_INT 3
9209: PUSH
9210: LD_INT 4
9212: PUSH
9213: LD_INT 6
9215: PUSH
9216: EMPTY
9217: LIST
9218: LIST
9219: LIST
9220: PUSH
9221: LD_OWVAR 67
9225: ARRAY
9226: ST_TO_ADDR
// dif_enemy_lidi_faclab_am2 = [ 4 , 5 , 6 ] [ difficulty ] ;
9227: LD_ADDR_EXP 33
9231: PUSH
9232: LD_INT 4
9234: PUSH
9235: LD_INT 5
9237: PUSH
9238: LD_INT 6
9240: PUSH
9241: EMPTY
9242: LIST
9243: LIST
9244: LIST
9245: PUSH
9246: LD_OWVAR 67
9250: ARRAY
9251: ST_TO_ADDR
// dif_amik_tanky_max = [ 2 , 3 , 4 ] [ difficulty ] ;
9252: LD_ADDR_EXP 36
9256: PUSH
9257: LD_INT 2
9259: PUSH
9260: LD_INT 3
9262: PUSH
9263: LD_INT 4
9265: PUSH
9266: EMPTY
9267: LIST
9268: LIST
9269: LIST
9270: PUSH
9271: LD_OWVAR 67
9275: ARRAY
9276: ST_TO_ADDR
// dif_purple_veh = [ [ us_medium_tracked , us_light_gun ] , [ us_medium_tracked , us_double_gun ] , [ us_heavy_tracked , us_laser ] ] [ difficulty ] ;
9277: LD_ADDR_EXP 34
9281: PUSH
9282: LD_INT 3
9284: PUSH
9285: LD_INT 3
9287: PUSH
9288: EMPTY
9289: LIST
9290: LIST
9291: PUSH
9292: LD_INT 3
9294: PUSH
9295: LD_INT 5
9297: PUSH
9298: EMPTY
9299: LIST
9300: LIST
9301: PUSH
9302: LD_INT 4
9304: PUSH
9305: LD_INT 9
9307: PUSH
9308: EMPTY
9309: LIST
9310: LIST
9311: PUSH
9312: EMPTY
9313: LIST
9314: LIST
9315: LIST
9316: PUSH
9317: LD_OWVAR 67
9321: ARRAY
9322: ST_TO_ADDR
// dif_purple_veh2 = [ [ us_medium_tracked , us_double_gun ] , [ us_medium_tracked , us_laser ] , [ us_heavy_tracked , us_heavy_gun ] ] [ difficulty ] ;
9323: LD_ADDR_EXP 37
9327: PUSH
9328: LD_INT 3
9330: PUSH
9331: LD_INT 5
9333: PUSH
9334: EMPTY
9335: LIST
9336: LIST
9337: PUSH
9338: LD_INT 3
9340: PUSH
9341: LD_INT 9
9343: PUSH
9344: EMPTY
9345: LIST
9346: LIST
9347: PUSH
9348: LD_INT 4
9350: PUSH
9351: LD_INT 6
9353: PUSH
9354: EMPTY
9355: LIST
9356: LIST
9357: PUSH
9358: EMPTY
9359: LIST
9360: LIST
9361: LIST
9362: PUSH
9363: LD_OWVAR 67
9367: ARRAY
9368: ST_TO_ADDR
// dif_purple_cesta_prob = [ [ 80 , 90 , 100 ] , [ 50 , 75 , 100 ] , [ 30 , 60 , 100 ] ] [ difficulty ] ;
9369: LD_ADDR_EXP 35
9373: PUSH
9374: LD_INT 80
9376: PUSH
9377: LD_INT 90
9379: PUSH
9380: LD_INT 100
9382: PUSH
9383: EMPTY
9384: LIST
9385: LIST
9386: LIST
9387: PUSH
9388: LD_INT 50
9390: PUSH
9391: LD_INT 75
9393: PUSH
9394: LD_INT 100
9396: PUSH
9397: EMPTY
9398: LIST
9399: LIST
9400: LIST
9401: PUSH
9402: LD_INT 30
9404: PUSH
9405: LD_INT 60
9407: PUSH
9408: LD_INT 100
9410: PUSH
9411: EMPTY
9412: LIST
9413: LIST
9414: LIST
9415: PUSH
9416: EMPTY
9417: LIST
9418: LIST
9419: LIST
9420: PUSH
9421: LD_OWVAR 67
9425: ARRAY
9426: ST_TO_ADDR
// dif_alice_utek = [ 1 1$30 , 1 1$00 , 0 0$30 ] [ difficulty ] ;
9427: LD_ADDR_EXP 38
9431: PUSH
9432: LD_INT 3150
9434: PUSH
9435: LD_INT 2100
9437: PUSH
9438: LD_INT 1050
9440: PUSH
9441: EMPTY
9442: LIST
9443: LIST
9444: LIST
9445: PUSH
9446: LD_OWVAR 67
9450: ARRAY
9451: ST_TO_ADDR
// dif_alice_dist = [ 25 , 22 , 18 ] [ difficulty ] ;
9452: LD_ADDR_EXP 39
9456: PUSH
9457: LD_INT 25
9459: PUSH
9460: LD_INT 22
9462: PUSH
9463: LD_INT 18
9465: PUSH
9466: EMPTY
9467: LIST
9468: LIST
9469: LIST
9470: PUSH
9471: LD_OWVAR 67
9475: ARRAY
9476: ST_TO_ADDR
// dif_jerabu = [ 1 , 2 , 2 ] [ difficulty ] ;
9477: LD_ADDR_EXP 40
9481: PUSH
9482: LD_INT 1
9484: PUSH
9485: LD_INT 2
9487: PUSH
9488: LD_INT 2
9490: PUSH
9491: EMPTY
9492: LIST
9493: LIST
9494: LIST
9495: PUSH
9496: LD_OWVAR 67
9500: ARRAY
9501: ST_TO_ADDR
// dif_jerab_podvozek = [ us_medium_wheeled , us_medium_wheeled , us_morphling ] [ difficulty ] ;
9502: LD_ADDR_EXP 41
9506: PUSH
9507: LD_INT 2
9509: PUSH
9510: LD_INT 2
9512: PUSH
9513: LD_INT 5
9515: PUSH
9516: EMPTY
9517: LIST
9518: LIST
9519: LIST
9520: PUSH
9521: LD_OWVAR 67
9525: ARRAY
9526: ST_TO_ADDR
// dif_am2_chassis = [ us_heavy_tracked , us_heavy_tracked , us_morphling ] [ difficulty ] ;
9527: LD_ADDR_EXP 42
9531: PUSH
9532: LD_INT 4
9534: PUSH
9535: LD_INT 4
9537: PUSH
9538: LD_INT 5
9540: PUSH
9541: EMPTY
9542: LIST
9543: LIST
9544: LIST
9545: PUSH
9546: LD_OWVAR 67
9550: ARRAY
9551: ST_TO_ADDR
// dif_am2_build_wait = [ 15 15$00 , 12 12$00 , 9 9$00 ] [ difficulty ] ;
9552: LD_ADDR_EXP 43
9556: PUSH
9557: LD_INT 31500
9559: PUSH
9560: LD_INT 25200
9562: PUSH
9563: LD_INT 18900
9565: PUSH
9566: EMPTY
9567: LIST
9568: LIST
9569: LIST
9570: PUSH
9571: LD_OWVAR 67
9575: ARRAY
9576: ST_TO_ADDR
// if difficulty = 1 then
9577: LD_OWVAR 67
9581: PUSH
9582: LD_INT 1
9584: EQUAL
9585: IFFALSE 9728
// begin ZadneHG ;
9587: CALL 9733 0 0
// for i in [ [ 101 , 181 ] , [ 102 , 181 ] , [ 101 , 182 ] , [ 102 , 182 ] , [ 103 , 182 ] , [ 102 , 183 ] , [ 103 , 183 ] ] do
9591: LD_ADDR_VAR 0 2
9595: PUSH
9596: LD_INT 101
9598: PUSH
9599: LD_INT 181
9601: PUSH
9602: EMPTY
9603: LIST
9604: LIST
9605: PUSH
9606: LD_INT 102
9608: PUSH
9609: LD_INT 181
9611: PUSH
9612: EMPTY
9613: LIST
9614: LIST
9615: PUSH
9616: LD_INT 101
9618: PUSH
9619: LD_INT 182
9621: PUSH
9622: EMPTY
9623: LIST
9624: LIST
9625: PUSH
9626: LD_INT 102
9628: PUSH
9629: LD_INT 182
9631: PUSH
9632: EMPTY
9633: LIST
9634: LIST
9635: PUSH
9636: LD_INT 103
9638: PUSH
9639: LD_INT 182
9641: PUSH
9642: EMPTY
9643: LIST
9644: LIST
9645: PUSH
9646: LD_INT 102
9648: PUSH
9649: LD_INT 183
9651: PUSH
9652: EMPTY
9653: LIST
9654: LIST
9655: PUSH
9656: LD_INT 103
9658: PUSH
9659: LD_INT 183
9661: PUSH
9662: EMPTY
9663: LIST
9664: LIST
9665: PUSH
9666: EMPTY
9667: LIST
9668: LIST
9669: LIST
9670: LIST
9671: LIST
9672: LIST
9673: LIST
9674: PUSH
9675: FOR_IN
9676: IFFALSE 9726
// if IsEnvironment ( i [ 1 ] , i [ 2 ] ) then
9678: LD_VAR 0 2
9682: PUSH
9683: LD_INT 1
9685: ARRAY
9686: PPUSH
9687: LD_VAR 0 2
9691: PUSH
9692: LD_INT 2
9694: ARRAY
9695: PPUSH
9696: CALL_OW 351
9700: IFFALSE 9724
// RemoveEnvironment ( i [ 1 ] , i [ 2 ] ) ;
9702: LD_VAR 0 2
9706: PUSH
9707: LD_INT 1
9709: ARRAY
9710: PPUSH
9711: LD_VAR 0 2
9715: PUSH
9716: LD_INT 2
9718: ARRAY
9719: PPUSH
9720: CALL_OW 347
9724: GO 9675
9726: POP
9727: POP
// end ; end ;
9728: LD_VAR 0 1
9732: RET
// function ZadneHG ; var b ; begin
9733: LD_INT 0
9735: PPUSH
9736: PPUSH
// for b in FilterAllUnits ( [ [ f_or , [ f_btype , b_bunker ] , [ f_btype , b_turret ] ] , [ f_bweapon , us_heavy_gun ] , [ f_not , [ f_side , 5 ] ] ] ) do
9737: LD_ADDR_VAR 0 2
9741: PUSH
9742: LD_INT 2
9744: PUSH
9745: LD_INT 30
9747: PUSH
9748: LD_INT 32
9750: PUSH
9751: EMPTY
9752: LIST
9753: LIST
9754: PUSH
9755: LD_INT 30
9757: PUSH
9758: LD_INT 33
9760: PUSH
9761: EMPTY
9762: LIST
9763: LIST
9764: PUSH
9765: EMPTY
9766: LIST
9767: LIST
9768: LIST
9769: PUSH
9770: LD_INT 35
9772: PUSH
9773: LD_INT 6
9775: PUSH
9776: EMPTY
9777: LIST
9778: LIST
9779: PUSH
9780: LD_INT 3
9782: PUSH
9783: LD_INT 22
9785: PUSH
9786: LD_INT 5
9788: PUSH
9789: EMPTY
9790: LIST
9791: LIST
9792: PUSH
9793: EMPTY
9794: LIST
9795: LIST
9796: PUSH
9797: EMPTY
9798: LIST
9799: LIST
9800: LIST
9801: PPUSH
9802: CALL_OW 69
9806: PUSH
9807: FOR_IN
9808: IFFALSE 9824
// PlaceWeaponTurret ( b , us_double_gun ) ;
9810: LD_VAR 0 2
9814: PPUSH
9815: LD_INT 5
9817: PPUSH
9818: CALL_OW 431
9822: GO 9807
9824: POP
9825: POP
// end ; end_of_file
9826: LD_VAR 0 1
9830: RET
// export function Place_apes ; var o1 , o2 , o3 , o4 , o5 , o6 , o7 , o8 , o9 , o10 , o11 , o12 ; begin
9831: LD_INT 0
9833: PPUSH
9834: PPUSH
9835: PPUSH
9836: PPUSH
9837: PPUSH
9838: PPUSH
9839: PPUSH
9840: PPUSH
9841: PPUSH
9842: PPUSH
9843: PPUSH
9844: PPUSH
9845: PPUSH
// InitHc ;
9846: CALL_OW 19
// InitUc ;
9850: CALL_OW 18
// uc_side := 0 ;
9854: LD_ADDR_OWVAR 20
9858: PUSH
9859: LD_INT 0
9861: ST_TO_ADDR
// uc_nation := nation_nature ;
9862: LD_ADDR_OWVAR 21
9866: PUSH
9867: LD_INT 0
9869: ST_TO_ADDR
// hc_class := class_apeman ;
9870: LD_ADDR_OWVAR 28
9874: PUSH
9875: LD_INT 12
9877: ST_TO_ADDR
// hc_agressivity := 0 ;
9878: LD_ADDR_OWVAR 35
9882: PUSH
9883: LD_INT 0
9885: ST_TO_ADDR
// o1 := CreateHuman ;
9886: LD_ADDR_VAR 0 2
9890: PUSH
9891: CALL_OW 44
9895: ST_TO_ADDR
// hc_agressivity := Rand ( dif_ape_agress [ 1 ] , dif_ape_agress [ 2 ] ) ;
9896: LD_ADDR_OWVAR 35
9900: PUSH
9901: LD_EXP 26
9905: PUSH
9906: LD_INT 1
9908: ARRAY
9909: PPUSH
9910: LD_EXP 26
9914: PUSH
9915: LD_INT 2
9917: ARRAY
9918: PPUSH
9919: CALL_OW 12
9923: ST_TO_ADDR
// o2 := CreateHuman ;
9924: LD_ADDR_VAR 0 3
9928: PUSH
9929: CALL_OW 44
9933: ST_TO_ADDR
// hc_agressivity := - 5 ;
9934: LD_ADDR_OWVAR 35
9938: PUSH
9939: LD_INT 5
9941: NEG
9942: ST_TO_ADDR
// o3 := CreateHuman ;
9943: LD_ADDR_VAR 0 4
9947: PUSH
9948: CALL_OW 44
9952: ST_TO_ADDR
// hc_agressivity := Rand ( dif_ape_agress [ 1 ] , dif_ape_agress [ 2 ] ) ;
9953: LD_ADDR_OWVAR 35
9957: PUSH
9958: LD_EXP 26
9962: PUSH
9963: LD_INT 1
9965: ARRAY
9966: PPUSH
9967: LD_EXP 26
9971: PUSH
9972: LD_INT 2
9974: ARRAY
9975: PPUSH
9976: CALL_OW 12
9980: ST_TO_ADDR
// o4 := CreateHuman ;
9981: LD_ADDR_VAR 0 5
9985: PUSH
9986: CALL_OW 44
9990: ST_TO_ADDR
// hc_agressivity := 0 ;
9991: LD_ADDR_OWVAR 35
9995: PUSH
9996: LD_INT 0
9998: ST_TO_ADDR
// o5 := CreateHuman ;
9999: LD_ADDR_VAR 0 6
10003: PUSH
10004: CALL_OW 44
10008: ST_TO_ADDR
// hc_agressivity := Rand ( dif_ape_agress [ 1 ] , dif_ape_agress [ 2 ] ) ;
10009: LD_ADDR_OWVAR 35
10013: PUSH
10014: LD_EXP 26
10018: PUSH
10019: LD_INT 1
10021: ARRAY
10022: PPUSH
10023: LD_EXP 26
10027: PUSH
10028: LD_INT 2
10030: ARRAY
10031: PPUSH
10032: CALL_OW 12
10036: ST_TO_ADDR
// o6 := CreateHuman ;
10037: LD_ADDR_VAR 0 7
10041: PUSH
10042: CALL_OW 44
10046: ST_TO_ADDR
// hc_agressivity := Rand ( dif_ape_agress [ 1 ] , dif_ape_agress [ 2 ] ) ;
10047: LD_ADDR_OWVAR 35
10051: PUSH
10052: LD_EXP 26
10056: PUSH
10057: LD_INT 1
10059: ARRAY
10060: PPUSH
10061: LD_EXP 26
10065: PUSH
10066: LD_INT 2
10068: ARRAY
10069: PPUSH
10070: CALL_OW 12
10074: ST_TO_ADDR
// o7 := CreateHuman ;
10075: LD_ADDR_VAR 0 8
10079: PUSH
10080: CALL_OW 44
10084: ST_TO_ADDR
// hc_agressivity := 0 ;
10085: LD_ADDR_OWVAR 35
10089: PUSH
10090: LD_INT 0
10092: ST_TO_ADDR
// o8 := CreateHuman ;
10093: LD_ADDR_VAR 0 9
10097: PUSH
10098: CALL_OW 44
10102: ST_TO_ADDR
// hc_agressivity := 0 ;
10103: LD_ADDR_OWVAR 35
10107: PUSH
10108: LD_INT 0
10110: ST_TO_ADDR
// o9 := CreateHuman ;
10111: LD_ADDR_VAR 0 10
10115: PUSH
10116: CALL_OW 44
10120: ST_TO_ADDR
// hc_agressivity := Rand ( dif_ape_agress [ 1 ] , dif_ape_agress [ 2 ] ) ;
10121: LD_ADDR_OWVAR 35
10125: PUSH
10126: LD_EXP 26
10130: PUSH
10131: LD_INT 1
10133: ARRAY
10134: PPUSH
10135: LD_EXP 26
10139: PUSH
10140: LD_INT 2
10142: ARRAY
10143: PPUSH
10144: CALL_OW 12
10148: ST_TO_ADDR
// o10 := CreateHuman ;
10149: LD_ADDR_VAR 0 11
10153: PUSH
10154: CALL_OW 44
10158: ST_TO_ADDR
// hc_agressivity := Rand ( dif_ape_agress [ 1 ] , dif_ape_agress [ 2 ] ) ;
10159: LD_ADDR_OWVAR 35
10163: PUSH
10164: LD_EXP 26
10168: PUSH
10169: LD_INT 1
10171: ARRAY
10172: PPUSH
10173: LD_EXP 26
10177: PUSH
10178: LD_INT 2
10180: ARRAY
10181: PPUSH
10182: CALL_OW 12
10186: ST_TO_ADDR
// o11 := CreateHuman ;
10187: LD_ADDR_VAR 0 12
10191: PUSH
10192: CALL_OW 44
10196: ST_TO_ADDR
// hc_agressivity := 10 ;
10197: LD_ADDR_OWVAR 35
10201: PUSH
10202: LD_INT 10
10204: ST_TO_ADDR
// o12 := CreateHuman ;
10205: LD_ADDR_VAR 0 13
10209: PUSH
10210: CALL_OW 44
10214: ST_TO_ADDR
// PlaceUnitXY ( o1 , 101 , 187 , false ) ;
10215: LD_VAR 0 2
10219: PPUSH
10220: LD_INT 101
10222: PPUSH
10223: LD_INT 187
10225: PPUSH
10226: LD_INT 0
10228: PPUSH
10229: CALL_OW 48
// PlaceUnitXY ( o2 , 174 , 184 , false ) ;
10233: LD_VAR 0 3
10237: PPUSH
10238: LD_INT 174
10240: PPUSH
10241: LD_INT 184
10243: PPUSH
10244: LD_INT 0
10246: PPUSH
10247: CALL_OW 48
// PlaceUnitXY ( o3 , 151 , 132 , false ) ;
10251: LD_VAR 0 4
10255: PPUSH
10256: LD_INT 151
10258: PPUSH
10259: LD_INT 132
10261: PPUSH
10262: LD_INT 0
10264: PPUSH
10265: CALL_OW 48
// PlaceUnitXY ( o4 , 63 , 116 , false ) ;
10269: LD_VAR 0 5
10273: PPUSH
10274: LD_INT 63
10276: PPUSH
10277: LD_INT 116
10279: PPUSH
10280: LD_INT 0
10282: PPUSH
10283: CALL_OW 48
// PlaceUnitXY ( o5 , 249 , 180 , false ) ;
10287: LD_VAR 0 6
10291: PPUSH
10292: LD_INT 249
10294: PPUSH
10295: LD_INT 180
10297: PPUSH
10298: LD_INT 0
10300: PPUSH
10301: CALL_OW 48
// PlaceUnitXY ( o6 , 195 , 70 , false ) ;
10305: LD_VAR 0 7
10309: PPUSH
10310: LD_INT 195
10312: PPUSH
10313: LD_INT 70
10315: PPUSH
10316: LD_INT 0
10318: PPUSH
10319: CALL_OW 48
// PlaceUnitXY ( o7 , 81 , 63 , false ) ;
10323: LD_VAR 0 8
10327: PPUSH
10328: LD_INT 81
10330: PPUSH
10331: LD_INT 63
10333: PPUSH
10334: LD_INT 0
10336: PPUSH
10337: CALL_OW 48
// PlaceUnitXY ( o8 , 158 , 144 , false ) ;
10341: LD_VAR 0 9
10345: PPUSH
10346: LD_INT 158
10348: PPUSH
10349: LD_INT 144
10351: PPUSH
10352: LD_INT 0
10354: PPUSH
10355: CALL_OW 48
// PlaceUnitXY ( o9 , 149 , 195 , false ) ;
10359: LD_VAR 0 10
10363: PPUSH
10364: LD_INT 149
10366: PPUSH
10367: LD_INT 195
10369: PPUSH
10370: LD_INT 0
10372: PPUSH
10373: CALL_OW 48
// PlaceUnitXY ( o10 , 167 , 185 , false ) ;
10377: LD_VAR 0 11
10381: PPUSH
10382: LD_INT 167
10384: PPUSH
10385: LD_INT 185
10387: PPUSH
10388: LD_INT 0
10390: PPUSH
10391: CALL_OW 48
// PlaceUnitXY ( o11 , 100 , 171 , false ) ;
10395: LD_VAR 0 12
10399: PPUSH
10400: LD_INT 100
10402: PPUSH
10403: LD_INT 171
10405: PPUSH
10406: LD_INT 0
10408: PPUSH
10409: CALL_OW 48
// PlaceUnitXY ( o12 , 91 , 181 , false ) ;
10413: LD_VAR 0 13
10417: PPUSH
10418: LD_INT 91
10420: PPUSH
10421: LD_INT 181
10423: PPUSH
10424: LD_INT 0
10426: PPUSH
10427: CALL_OW 48
// end ; end_of_file
10431: LD_VAR 0 1
10435: RET
// every 0 0$1 do
10436: GO 10438
10438: DISABLE
// begin if GetResourceArea ( RuBedny , mat_cans ) < dif_bedny_RuBedny then
10439: LD_INT 5
10441: PPUSH
10442: LD_INT 1
10444: PPUSH
10445: CALL_OW 287
10449: PUSH
10450: LD_EXP 30
10454: LESS
10455: IFFALSE 10505
// begin Wait ( Rand ( 0 0$45 , 1 1$20 ) ) ;
10457: LD_INT 1575
10459: PPUSH
10460: LD_INT 2800
10462: PPUSH
10463: CALL_OW 12
10467: PPUSH
10468: CALL_OW 67
// CreateCratesArea2 ( Rand ( dif_bedny_mnozstvi [ 1 ] , dif_bedny_mnozstvi [ 2 ] ) , RuBedny , true ) ;
10472: LD_EXP 31
10476: PUSH
10477: LD_INT 1
10479: ARRAY
10480: PPUSH
10481: LD_EXP 31
10485: PUSH
10486: LD_INT 2
10488: ARRAY
10489: PPUSH
10490: CALL_OW 12
10494: PPUSH
10495: LD_INT 5
10497: PPUSH
10498: LD_INT 1
10500: PPUSH
10501: CALL 8879 0 3
// end ; enable ;
10505: ENABLE
// end ;
10506: END
// every 0 0$1 do
10507: GO 10509
10509: DISABLE
// begin if GetResourceArea ( RuBaza , mat_cans ) < dif_bedny_RuBedny - 12 then
10510: LD_INT 6
10512: PPUSH
10513: LD_INT 1
10515: PPUSH
10516: CALL_OW 287
10520: PUSH
10521: LD_EXP 30
10525: PUSH
10526: LD_INT 12
10528: MINUS
10529: LESS
10530: IFFALSE 10607
// begin if tick < 15 15$00 then
10532: LD_OWVAR 1
10536: PUSH
10537: LD_INT 31500
10539: LESS
10540: IFFALSE 10559
// Wait ( Rand ( 1 1$50 , 2 2$20 ) ) else
10542: LD_INT 3850
10544: PPUSH
10545: LD_INT 4900
10547: PPUSH
10548: CALL_OW 12
10552: PPUSH
10553: CALL_OW 67
10557: GO 10574
// Wait ( Rand ( 2 2$40 , 3 3$20 ) ) ;
10559: LD_INT 5600
10561: PPUSH
10562: LD_INT 7000
10564: PPUSH
10565: CALL_OW 12
10569: PPUSH
10570: CALL_OW 67
// CreateCratesArea2 ( Rand ( dif_bedny_mnozstvi [ 1 ] , dif_bedny_mnozstvi [ 2 ] ) , RuBaza , true ) ;
10574: LD_EXP 31
10578: PUSH
10579: LD_INT 1
10581: ARRAY
10582: PPUSH
10583: LD_EXP 31
10587: PUSH
10588: LD_INT 2
10590: ARRAY
10591: PPUSH
10592: CALL_OW 12
10596: PPUSH
10597: LD_INT 6
10599: PPUSH
10600: LD_INT 1
10602: PPUSH
10603: CALL 8879 0 3
// end ; enable ;
10607: ENABLE
// end ;
10608: END
// every 0 0$1 trigger tick > 0 0$2 and tick < 5 5$00 do
10609: LD_OWVAR 1
10613: PUSH
10614: LD_INT 70
10616: GREATER
10617: PUSH
10618: LD_OWVAR 1
10622: PUSH
10623: LD_INT 10500
10625: LESS
10626: AND
10627: IFFALSE 10681
10629: GO 10631
10631: DISABLE
// begin Wait ( Rand ( 1 1$20 , 2 2$20 ) ) ;
10632: LD_INT 2800
10634: PPUSH
10635: LD_INT 4900
10637: PPUSH
10638: CALL_OW 12
10642: PPUSH
10643: CALL_OW 67
// CreateCratesArea2 ( Rand ( dif_bedny_mnozstvi [ 1 ] , dif_bedny_mnozstvi [ 2 ] ) , RuBaza , true ) ;
10647: LD_EXP 31
10651: PUSH
10652: LD_INT 1
10654: ARRAY
10655: PPUSH
10656: LD_EXP 31
10660: PUSH
10661: LD_INT 2
10663: ARRAY
10664: PPUSH
10665: CALL_OW 12
10669: PPUSH
10670: LD_INT 6
10672: PPUSH
10673: LD_INT 1
10675: PPUSH
10676: CALL 8879 0 3
// enable ;
10680: ENABLE
// end ;
10681: END
// every 0 0$1 do
10682: GO 10684
10684: DISABLE
// begin if GetResourceArea ( SpojBedny , mat_cans ) < dif_bedny_RuBedny - 9 then
10685: LD_INT 7
10687: PPUSH
10688: LD_INT 1
10690: PPUSH
10691: CALL_OW 287
10695: PUSH
10696: LD_EXP 30
10700: PUSH
10701: LD_INT 9
10703: MINUS
10704: LESS
10705: IFFALSE 10755
// begin Wait ( Rand ( 1 1$20 , 2 2$45 ) ) ;
10707: LD_INT 2800
10709: PPUSH
10710: LD_INT 5775
10712: PPUSH
10713: CALL_OW 12
10717: PPUSH
10718: CALL_OW 67
// CreateCratesArea2 ( Rand ( dif_bedny_mnozstvi [ 1 ] , dif_bedny_mnozstvi [ 2 ] ) , SpojBedny , true ) ;
10722: LD_EXP 31
10726: PUSH
10727: LD_INT 1
10729: ARRAY
10730: PPUSH
10731: LD_EXP 31
10735: PUSH
10736: LD_INT 2
10738: ARRAY
10739: PPUSH
10740: CALL_OW 12
10744: PPUSH
10745: LD_INT 7
10747: PPUSH
10748: LD_INT 1
10750: PPUSH
10751: CALL 8879 0 3
// end ; enable ;
10755: ENABLE
// end ;
10756: END
// every 0 0$1 do
10757: GO 10759
10759: DISABLE
// begin if GetResourceArea ( SpojBaza , mat_cans ) < dif_bedny_RuBedny - 12 then
10760: LD_INT 8
10762: PPUSH
10763: LD_INT 1
10765: PPUSH
10766: CALL_OW 287
10770: PUSH
10771: LD_EXP 30
10775: PUSH
10776: LD_INT 12
10778: MINUS
10779: LESS
10780: IFFALSE 10830
// begin Wait ( Rand ( 3 3$20 , 4 4$45 ) ) ;
10782: LD_INT 7000
10784: PPUSH
10785: LD_INT 9975
10787: PPUSH
10788: CALL_OW 12
10792: PPUSH
10793: CALL_OW 67
// CreateCratesArea2 ( Rand ( dif_bedny_mnozstvi [ 1 ] , dif_bedny_mnozstvi [ 2 ] ) , SpojBaza , true ) ;
10797: LD_EXP 31
10801: PUSH
10802: LD_INT 1
10804: ARRAY
10805: PPUSH
10806: LD_EXP 31
10810: PUSH
10811: LD_INT 2
10813: ARRAY
10814: PPUSH
10815: CALL_OW 12
10819: PPUSH
10820: LD_INT 8
10822: PPUSH
10823: LD_INT 1
10825: PPUSH
10826: CALL 8879 0 3
// end ; enable ;
10830: ENABLE
// end ;
10831: END
// every 0 0$1 do
10832: GO 10834
10834: DISABLE
// begin if GetResourceArea ( HorniLesy , mat_cans ) < 40 then
10835: LD_INT 9
10837: PPUSH
10838: LD_INT 1
10840: PPUSH
10841: CALL_OW 287
10845: PUSH
10846: LD_INT 40
10848: LESS
10849: IFFALSE 10899
// begin Wait ( Rand ( 2 2$20 , 3 3$00 ) ) ;
10851: LD_INT 4900
10853: PPUSH
10854: LD_INT 6300
10856: PPUSH
10857: CALL_OW 12
10861: PPUSH
10862: CALL_OW 67
// CreateCratesArea2 ( Rand ( dif_bedny_mnozstvi [ 1 ] , dif_bedny_mnozstvi [ 2 ] ) , HorniLesy , true ) ;
10866: LD_EXP 31
10870: PUSH
10871: LD_INT 1
10873: ARRAY
10874: PPUSH
10875: LD_EXP 31
10879: PUSH
10880: LD_INT 2
10882: ARRAY
10883: PPUSH
10884: CALL_OW 12
10888: PPUSH
10889: LD_INT 9
10891: PPUSH
10892: LD_INT 1
10894: PPUSH
10895: CALL 8879 0 3
// end ; enable ;
10899: ENABLE
// end ;
10900: END
// every 0 0$1 do
10901: GO 10903
10903: DISABLE
// begin if GetResourceArea ( ObeBazy , mat_cans ) < 5 then
10904: LD_INT 10
10906: PPUSH
10907: LD_INT 1
10909: PPUSH
10910: CALL_OW 287
10914: PUSH
10915: LD_INT 5
10917: LESS
10918: IFFALSE 10968
// begin Wait ( Rand ( 2 2$10 , 3 3$30 ) ) ;
10920: LD_INT 4550
10922: PPUSH
10923: LD_INT 7350
10925: PPUSH
10926: CALL_OW 12
10930: PPUSH
10931: CALL_OW 67
// CreateCratesArea2 ( Rand ( dif_bedny_mnozstvi [ 1 ] , dif_bedny_mnozstvi [ 2 ] ) , ObeBazy , true ) ;
10935: LD_EXP 31
10939: PUSH
10940: LD_INT 1
10942: ARRAY
10943: PPUSH
10944: LD_EXP 31
10948: PUSH
10949: LD_INT 2
10951: ARRAY
10952: PPUSH
10953: CALL_OW 12
10957: PPUSH
10958: LD_INT 10
10960: PPUSH
10961: LD_INT 1
10963: PPUSH
10964: CALL 8879 0 3
// end ; enable ;
10968: ENABLE
// end ; end_of_file
10969: END
// export Postavit_Lab1 , Postavit_El1 , Postavit_Tovarnu , Postavit_Zbrojku , Postavit_El2 , Postavit_Vez1 , Postavit_Vez2 , Postavit_Vez3 , Postavit_Vez4 , Postavit_Dul , Postavit_El3 , Postavit_Lab2 , Postavit_Sib1 , Postavit_Sib2 ; export Postavit_TrackExt , Postavit_GunExt , Postavit_RocketExt , Postavit_SibExt , Postavit_CompExt ; export Tech_list , Tech_list2 , Tech_list3 ; export Hledac_loziska , Chci_hledace ; export Tovarna_produkce ; export Ru_Tanky_Max ; export Ru_Attack ; export Bazuka_FireTime ; export SibDul_Tech ; var Last_Tech1 ; var Last_Tech2 ; export function ZakazatStaveni ; begin
10970: LD_INT 0
10972: PPUSH
// Last_Tech1 = tech_tech3 ;
10973: LD_ADDR_LOC 4
10977: PUSH
10978: LD_INT 50
10980: ST_TO_ADDR
// Last_Tech2 = tech_comp2 ;
10981: LD_ADDR_LOC 5
10985: PUSH
10986: LD_INT 58
10988: ST_TO_ADDR
// SibDul_Tech = tech_tech1 ;
10989: LD_ADDR_EXP 72
10993: PUSH
10994: LD_INT 48
10996: ST_TO_ADDR
// Hledac_loziska = 0 ;
10997: LD_ADDR_EXP 66
11001: PUSH
11002: LD_INT 0
11004: ST_TO_ADDR
// Ru_Attack = [ ] ;
11005: LD_ADDR_EXP 70
11009: PUSH
11010: EMPTY
11011: ST_TO_ADDR
// Tovarna_produkce = false ;
11012: LD_ADDR_EXP 68
11016: PUSH
11017: LD_INT 0
11019: ST_TO_ADDR
// Chci_hledace = false ;
11020: LD_ADDR_EXP 67
11024: PUSH
11025: LD_INT 0
11027: ST_TO_ADDR
// Bazuka_FireTime = false ;
11028: LD_ADDR_EXP 71
11032: PUSH
11033: LD_INT 0
11035: ST_TO_ADDR
// Postavit_Lab1 = false ;
11036: LD_ADDR_EXP 44
11040: PUSH
11041: LD_INT 0
11043: ST_TO_ADDR
// Postavit_Lab2 = false ;
11044: LD_ADDR_EXP 55
11048: PUSH
11049: LD_INT 0
11051: ST_TO_ADDR
// Postavit_El1 = false ;
11052: LD_ADDR_EXP 45
11056: PUSH
11057: LD_INT 0
11059: ST_TO_ADDR
// Postavit_Tovarnu = false ;
11060: LD_ADDR_EXP 46
11064: PUSH
11065: LD_INT 0
11067: ST_TO_ADDR
// Postavit_Zbrojku = false ;
11068: LD_ADDR_EXP 47
11072: PUSH
11073: LD_INT 0
11075: ST_TO_ADDR
// Postavit_El2 = false ;
11076: LD_ADDR_EXP 48
11080: PUSH
11081: LD_INT 0
11083: ST_TO_ADDR
// Postavit_Vez1 = false ;
11084: LD_ADDR_EXP 49
11088: PUSH
11089: LD_INT 0
11091: ST_TO_ADDR
// Postavit_Vez2 = false ;
11092: LD_ADDR_EXP 50
11096: PUSH
11097: LD_INT 0
11099: ST_TO_ADDR
// Postavit_Vez3 = false ;
11100: LD_ADDR_EXP 51
11104: PUSH
11105: LD_INT 0
11107: ST_TO_ADDR
// Postavit_Vez4 = false ;
11108: LD_ADDR_EXP 52
11112: PUSH
11113: LD_INT 0
11115: ST_TO_ADDR
// Postavit_TrackExt = false ;
11116: LD_ADDR_EXP 58
11120: PUSH
11121: LD_INT 0
11123: ST_TO_ADDR
// Postavit_GunExt = false ;
11124: LD_ADDR_EXP 59
11128: PUSH
11129: LD_INT 0
11131: ST_TO_ADDR
// Postavit_RocketExt = false ;
11132: LD_ADDR_EXP 60
11136: PUSH
11137: LD_INT 0
11139: ST_TO_ADDR
// Postavit_SibExt = false ;
11140: LD_ADDR_EXP 61
11144: PUSH
11145: LD_INT 0
11147: ST_TO_ADDR
// Postavit_CompExt = false ;
11148: LD_ADDR_EXP 62
11152: PUSH
11153: LD_INT 0
11155: ST_TO_ADDR
// Postavit_Dul = false ;
11156: LD_ADDR_EXP 53
11160: PUSH
11161: LD_INT 0
11163: ST_TO_ADDR
// Postavit_El3 = false ;
11164: LD_ADDR_EXP 54
11168: PUSH
11169: LD_INT 0
11171: ST_TO_ADDR
// Postavit_Sib1 = false ;
11172: LD_ADDR_EXP 56
11176: PUSH
11177: LD_INT 0
11179: ST_TO_ADDR
// Postavit_Sib2 = false ;
11180: LD_ADDR_EXP 57
11184: PUSH
11185: LD_INT 0
11187: ST_TO_ADDR
// Tech_list = [ tech_oilpow , tech_oileng , tech_sibdet , tech_apelang , tech_tech1 , tech_tech2 , tech_tech3 ] ;
11188: LD_ADDR_EXP 63
11192: PUSH
11193: LD_INT 46
11195: PUSH
11196: LD_INT 47
11198: PUSH
11199: LD_INT 20
11201: PUSH
11202: LD_INT 1
11204: PUSH
11205: LD_INT 48
11207: PUSH
11208: LD_INT 49
11210: PUSH
11211: LD_INT 50
11213: PUSH
11214: EMPTY
11215: LIST
11216: LIST
11217: LIST
11218: LIST
11219: LIST
11220: LIST
11221: LIST
11222: ST_TO_ADDR
// Tech_list2 = [ tech_ai , tech_gatling , tech_gun , tech_rocket , tech_advmet , tech_bazooka , tech_matpred , tech_weap1 , tech_comp1 , tech_advai , tech_weap2 , tech_comp2 ] ;
11223: LD_ADDR_EXP 64
11227: PUSH
11228: LD_INT 32
11230: PUSH
11231: LD_INT 69
11233: PUSH
11234: LD_INT 39
11236: PUSH
11237: LD_INT 40
11239: PUSH
11240: LD_INT 34
11242: PUSH
11243: LD_INT 44
11245: PUSH
11246: LD_INT 9
11248: PUSH
11249: LD_INT 51
11251: PUSH
11252: LD_INT 57
11254: PUSH
11255: LD_INT 27
11257: PUSH
11258: LD_INT 52
11260: PUSH
11261: LD_INT 58
11263: PUSH
11264: EMPTY
11265: LIST
11266: LIST
11267: LIST
11268: LIST
11269: LIST
11270: LIST
11271: LIST
11272: LIST
11273: LIST
11274: LIST
11275: LIST
11276: LIST
11277: ST_TO_ADDR
// Tech_list3 = [ tech_sibpow , tech_sibeng , tech_sibloc , tech_spacanom , tech_taufield , tech_taurad , tech_limteleport , tech_sib1 , tech_st1 , tech_sib2 , tech_st2 , tech_sib3 ] ;
11278: LD_ADDR_EXP 65
11282: PUSH
11283: LD_INT 21
11285: PUSH
11286: LD_INT 22
11288: PUSH
11289: LD_INT 19
11291: PUSH
11292: LD_INT 29
11294: PUSH
11295: LD_INT 30
11297: PUSH
11298: LD_INT 28
11300: PUSH
11301: LD_INT 37
11303: PUSH
11304: LD_INT 54
11306: PUSH
11307: LD_INT 63
11309: PUSH
11310: LD_INT 55
11312: PUSH
11313: LD_INT 64
11315: PUSH
11316: LD_INT 56
11318: PUSH
11319: EMPTY
11320: LIST
11321: LIST
11322: LIST
11323: LIST
11324: LIST
11325: LIST
11326: LIST
11327: LIST
11328: LIST
11329: LIST
11330: LIST
11331: LIST
11332: ST_TO_ADDR
// end ;
11333: LD_VAR 0 1
11337: RET
// every 0 0$0.5 trigger hrajeYou2 do var Sklad , Labak1 , Labak2 , Zbrojka , Tovarna , El1 , El2 , El3 , Sib1 , Sib2 ; var Inzenyri_volni , Zdravotnici_volni , Vojaci_volni , Mechanici_volni , Vozidla ; var un , b , v , i , veh , bedny , bedny2 , bud , volne_bunkry , target ;
11338: LD_EXP 21
11342: IFFALSE 19065
11344: GO 11346
11346: DISABLE
11347: LD_INT 0
11349: PPUSH
11350: PPUSH
11351: PPUSH
11352: PPUSH
11353: PPUSH
11354: PPUSH
11355: PPUSH
11356: PPUSH
11357: PPUSH
11358: PPUSH
11359: PPUSH
11360: PPUSH
11361: PPUSH
11362: PPUSH
11363: PPUSH
11364: PPUSH
11365: PPUSH
11366: PPUSH
11367: PPUSH
11368: PPUSH
11369: PPUSH
11370: PPUSH
11371: PPUSH
11372: PPUSH
11373: PPUSH
// begin if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) then
11374: LD_INT 52
11376: PUSH
11377: EMPTY
11378: LIST
11379: PUSH
11380: LD_INT 22
11382: PUSH
11383: LD_EXP 3
11387: PUSH
11388: EMPTY
11389: LIST
11390: LIST
11391: PUSH
11392: LD_INT 2
11394: PUSH
11395: LD_INT 30
11397: PUSH
11398: LD_INT 0
11400: PUSH
11401: EMPTY
11402: LIST
11403: LIST
11404: PUSH
11405: LD_INT 30
11407: PUSH
11408: LD_INT 1
11410: PUSH
11411: EMPTY
11412: LIST
11413: LIST
11414: PUSH
11415: EMPTY
11416: LIST
11417: LIST
11418: LIST
11419: PUSH
11420: EMPTY
11421: LIST
11422: LIST
11423: LIST
11424: PPUSH
11425: CALL_OW 69
11429: IFFALSE 11516
// begin Sklad = FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) [ 1 ] ;
11431: LD_ADDR_VAR 0 1
11435: PUSH
11436: LD_INT 52
11438: PUSH
11439: EMPTY
11440: LIST
11441: PUSH
11442: LD_INT 22
11444: PUSH
11445: LD_EXP 3
11449: PUSH
11450: EMPTY
11451: LIST
11452: LIST
11453: PUSH
11454: LD_INT 2
11456: PUSH
11457: LD_INT 30
11459: PUSH
11460: LD_INT 0
11462: PUSH
11463: EMPTY
11464: LIST
11465: LIST
11466: PUSH
11467: LD_INT 30
11469: PUSH
11470: LD_INT 1
11472: PUSH
11473: EMPTY
11474: LIST
11475: LIST
11476: PUSH
11477: EMPTY
11478: LIST
11479: LIST
11480: LIST
11481: PUSH
11482: EMPTY
11483: LIST
11484: LIST
11485: LIST
11486: PPUSH
11487: CALL_OW 69
11491: PUSH
11492: LD_INT 1
11494: ARRAY
11495: ST_TO_ADDR
// SurovinyDoSkladu ( Sklad , 200 , 500 , 50 ) ;
11496: LD_VAR 0 1
11500: PPUSH
11501: LD_INT 200
11503: PPUSH
11504: LD_INT 500
11506: PPUSH
11507: LD_INT 50
11509: PPUSH
11510: CALL 5102 0 4
// end else
11514: GO 11524
// Sklad = 0 ;
11516: LD_ADDR_VAR 0 1
11520: PUSH
11521: LD_INT 0
11523: ST_TO_ADDR
// if FilterUnitsInArea ( Labka1 , [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , 6 ] , [ f_btype , 7 ] , [ f_btype , 8 ] , [ f_btype , 9 ] , [ f_btype , 10 ] , [ f_btype , 11 ] , [ f_btype , 12 ] , [ f_btype , 13 ] , [ f_btype , 14 ] , [ f_btype , 15 ] ] ] ) then
11524: LD_INT 11
11526: PPUSH
11527: LD_INT 52
11529: PUSH
11530: EMPTY
11531: LIST
11532: PUSH
11533: LD_INT 22
11535: PUSH
11536: LD_EXP 3
11540: PUSH
11541: EMPTY
11542: LIST
11543: LIST
11544: PUSH
11545: LD_INT 2
11547: PUSH
11548: LD_INT 30
11550: PUSH
11551: LD_INT 6
11553: PUSH
11554: EMPTY
11555: LIST
11556: LIST
11557: PUSH
11558: LD_INT 30
11560: PUSH
11561: LD_INT 7
11563: PUSH
11564: EMPTY
11565: LIST
11566: LIST
11567: PUSH
11568: LD_INT 30
11570: PUSH
11571: LD_INT 8
11573: PUSH
11574: EMPTY
11575: LIST
11576: LIST
11577: PUSH
11578: LD_INT 30
11580: PUSH
11581: LD_INT 9
11583: PUSH
11584: EMPTY
11585: LIST
11586: LIST
11587: PUSH
11588: LD_INT 30
11590: PUSH
11591: LD_INT 10
11593: PUSH
11594: EMPTY
11595: LIST
11596: LIST
11597: PUSH
11598: LD_INT 30
11600: PUSH
11601: LD_INT 11
11603: PUSH
11604: EMPTY
11605: LIST
11606: LIST
11607: PUSH
11608: LD_INT 30
11610: PUSH
11611: LD_INT 12
11613: PUSH
11614: EMPTY
11615: LIST
11616: LIST
11617: PUSH
11618: LD_INT 30
11620: PUSH
11621: LD_INT 13
11623: PUSH
11624: EMPTY
11625: LIST
11626: LIST
11627: PUSH
11628: LD_INT 30
11630: PUSH
11631: LD_INT 14
11633: PUSH
11634: EMPTY
11635: LIST
11636: LIST
11637: PUSH
11638: LD_INT 30
11640: PUSH
11641: LD_INT 15
11643: PUSH
11644: EMPTY
11645: LIST
11646: LIST
11647: PUSH
11648: EMPTY
11649: LIST
11650: LIST
11651: LIST
11652: LIST
11653: LIST
11654: LIST
11655: LIST
11656: LIST
11657: LIST
11658: LIST
11659: LIST
11660: PUSH
11661: EMPTY
11662: LIST
11663: LIST
11664: LIST
11665: PPUSH
11666: CALL_OW 70
11670: IFFALSE 11875
// begin Labak1 = FilterUnitsInArea ( Labka1 , [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , 6 ] , [ f_btype , 7 ] , [ f_btype , 8 ] , [ f_btype , 9 ] , [ f_btype , 10 ] , [ f_btype , 11 ] , [ f_btype , 12 ] , [ f_btype , 13 ] , [ f_btype , 14 ] , [ f_btype , 15 ] ] ] ) [ 1 ] ;
11672: LD_ADDR_VAR 0 2
11676: PUSH
11677: LD_INT 11
11679: PPUSH
11680: LD_INT 52
11682: PUSH
11683: EMPTY
11684: LIST
11685: PUSH
11686: LD_INT 22
11688: PUSH
11689: LD_EXP 3
11693: PUSH
11694: EMPTY
11695: LIST
11696: LIST
11697: PUSH
11698: LD_INT 2
11700: PUSH
11701: LD_INT 30
11703: PUSH
11704: LD_INT 6
11706: PUSH
11707: EMPTY
11708: LIST
11709: LIST
11710: PUSH
11711: LD_INT 30
11713: PUSH
11714: LD_INT 7
11716: PUSH
11717: EMPTY
11718: LIST
11719: LIST
11720: PUSH
11721: LD_INT 30
11723: PUSH
11724: LD_INT 8
11726: PUSH
11727: EMPTY
11728: LIST
11729: LIST
11730: PUSH
11731: LD_INT 30
11733: PUSH
11734: LD_INT 9
11736: PUSH
11737: EMPTY
11738: LIST
11739: LIST
11740: PUSH
11741: LD_INT 30
11743: PUSH
11744: LD_INT 10
11746: PUSH
11747: EMPTY
11748: LIST
11749: LIST
11750: PUSH
11751: LD_INT 30
11753: PUSH
11754: LD_INT 11
11756: PUSH
11757: EMPTY
11758: LIST
11759: LIST
11760: PUSH
11761: LD_INT 30
11763: PUSH
11764: LD_INT 12
11766: PUSH
11767: EMPTY
11768: LIST
11769: LIST
11770: PUSH
11771: LD_INT 30
11773: PUSH
11774: LD_INT 13
11776: PUSH
11777: EMPTY
11778: LIST
11779: LIST
11780: PUSH
11781: LD_INT 30
11783: PUSH
11784: LD_INT 14
11786: PUSH
11787: EMPTY
11788: LIST
11789: LIST
11790: PUSH
11791: LD_INT 30
11793: PUSH
11794: LD_INT 15
11796: PUSH
11797: EMPTY
11798: LIST
11799: LIST
11800: PUSH
11801: EMPTY
11802: LIST
11803: LIST
11804: LIST
11805: LIST
11806: LIST
11807: LIST
11808: LIST
11809: LIST
11810: LIST
11811: LIST
11812: LIST
11813: PUSH
11814: EMPTY
11815: LIST
11816: LIST
11817: LIST
11818: PPUSH
11819: CALL_OW 70
11823: PUSH
11824: LD_INT 1
11826: ARRAY
11827: ST_TO_ADDR
// if not GetLabKind ( Labak1 , 2 ) = b_lab_computer then
11828: LD_VAR 0 2
11832: PPUSH
11833: LD_INT 2
11835: PPUSH
11836: CALL_OW 268
11840: PUSH
11841: LD_INT 12
11843: EQUAL
11844: NOT
11845: IFFALSE 11861
// Zkoumej ( 1 , Labak1 ) else
11847: LD_INT 1
11849: PPUSH
11850: LD_VAR 0 2
11854: PPUSH
11855: CALL 20414 0 2
11859: GO 11873
// Zkoumej ( 2 , Labak1 ) ;
11861: LD_INT 2
11863: PPUSH
11864: LD_VAR 0 2
11868: PPUSH
11869: CALL 20414 0 2
// end else
11873: GO 11883
// Labak1 = 0 ;
11875: LD_ADDR_VAR 0 2
11879: PUSH
11880: LD_INT 0
11882: ST_TO_ADDR
// if FilterUnitsInArea ( Labka2 , [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , 6 ] , [ f_btype , 7 ] , [ f_btype , 8 ] , [ f_btype , 9 ] , [ f_btype , 10 ] , [ f_btype , 11 ] , [ f_btype , 12 ] , [ f_btype , 13 ] , [ f_btype , 14 ] , [ f_btype , 15 ] ] ] ) then
11883: LD_INT 24
11885: PPUSH
11886: LD_INT 52
11888: PUSH
11889: EMPTY
11890: LIST
11891: PUSH
11892: LD_INT 22
11894: PUSH
11895: LD_EXP 3
11899: PUSH
11900: EMPTY
11901: LIST
11902: LIST
11903: PUSH
11904: LD_INT 2
11906: PUSH
11907: LD_INT 30
11909: PUSH
11910: LD_INT 6
11912: PUSH
11913: EMPTY
11914: LIST
11915: LIST
11916: PUSH
11917: LD_INT 30
11919: PUSH
11920: LD_INT 7
11922: PUSH
11923: EMPTY
11924: LIST
11925: LIST
11926: PUSH
11927: LD_INT 30
11929: PUSH
11930: LD_INT 8
11932: PUSH
11933: EMPTY
11934: LIST
11935: LIST
11936: PUSH
11937: LD_INT 30
11939: PUSH
11940: LD_INT 9
11942: PUSH
11943: EMPTY
11944: LIST
11945: LIST
11946: PUSH
11947: LD_INT 30
11949: PUSH
11950: LD_INT 10
11952: PUSH
11953: EMPTY
11954: LIST
11955: LIST
11956: PUSH
11957: LD_INT 30
11959: PUSH
11960: LD_INT 11
11962: PUSH
11963: EMPTY
11964: LIST
11965: LIST
11966: PUSH
11967: LD_INT 30
11969: PUSH
11970: LD_INT 12
11972: PUSH
11973: EMPTY
11974: LIST
11975: LIST
11976: PUSH
11977: LD_INT 30
11979: PUSH
11980: LD_INT 13
11982: PUSH
11983: EMPTY
11984: LIST
11985: LIST
11986: PUSH
11987: LD_INT 30
11989: PUSH
11990: LD_INT 14
11992: PUSH
11993: EMPTY
11994: LIST
11995: LIST
11996: PUSH
11997: LD_INT 30
11999: PUSH
12000: LD_INT 15
12002: PUSH
12003: EMPTY
12004: LIST
12005: LIST
12006: PUSH
12007: EMPTY
12008: LIST
12009: LIST
12010: LIST
12011: LIST
12012: LIST
12013: LIST
12014: LIST
12015: LIST
12016: LIST
12017: LIST
12018: LIST
12019: PUSH
12020: EMPTY
12021: LIST
12022: LIST
12023: LIST
12024: PPUSH
12025: CALL_OW 70
12029: IFFALSE 12219
// begin Labak2 = FilterUnitsInArea ( Labka2 , [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , 6 ] , [ f_btype , 7 ] , [ f_btype , 8 ] , [ f_btype , 9 ] , [ f_btype , 10 ] , [ f_btype , 11 ] , [ f_btype , 12 ] , [ f_btype , 13 ] , [ f_btype , 14 ] , [ f_btype , 15 ] ] ] ) [ 1 ] ;
12031: LD_ADDR_VAR 0 3
12035: PUSH
12036: LD_INT 24
12038: PPUSH
12039: LD_INT 52
12041: PUSH
12042: EMPTY
12043: LIST
12044: PUSH
12045: LD_INT 22
12047: PUSH
12048: LD_EXP 3
12052: PUSH
12053: EMPTY
12054: LIST
12055: LIST
12056: PUSH
12057: LD_INT 2
12059: PUSH
12060: LD_INT 30
12062: PUSH
12063: LD_INT 6
12065: PUSH
12066: EMPTY
12067: LIST
12068: LIST
12069: PUSH
12070: LD_INT 30
12072: PUSH
12073: LD_INT 7
12075: PUSH
12076: EMPTY
12077: LIST
12078: LIST
12079: PUSH
12080: LD_INT 30
12082: PUSH
12083: LD_INT 8
12085: PUSH
12086: EMPTY
12087: LIST
12088: LIST
12089: PUSH
12090: LD_INT 30
12092: PUSH
12093: LD_INT 9
12095: PUSH
12096: EMPTY
12097: LIST
12098: LIST
12099: PUSH
12100: LD_INT 30
12102: PUSH
12103: LD_INT 10
12105: PUSH
12106: EMPTY
12107: LIST
12108: LIST
12109: PUSH
12110: LD_INT 30
12112: PUSH
12113: LD_INT 11
12115: PUSH
12116: EMPTY
12117: LIST
12118: LIST
12119: PUSH
12120: LD_INT 30
12122: PUSH
12123: LD_INT 12
12125: PUSH
12126: EMPTY
12127: LIST
12128: LIST
12129: PUSH
12130: LD_INT 30
12132: PUSH
12133: LD_INT 13
12135: PUSH
12136: EMPTY
12137: LIST
12138: LIST
12139: PUSH
12140: LD_INT 30
12142: PUSH
12143: LD_INT 14
12145: PUSH
12146: EMPTY
12147: LIST
12148: LIST
12149: PUSH
12150: LD_INT 30
12152: PUSH
12153: LD_INT 15
12155: PUSH
12156: EMPTY
12157: LIST
12158: LIST
12159: PUSH
12160: EMPTY
12161: LIST
12162: LIST
12163: LIST
12164: LIST
12165: LIST
12166: LIST
12167: LIST
12168: LIST
12169: LIST
12170: LIST
12171: LIST
12172: PUSH
12173: EMPTY
12174: LIST
12175: LIST
12176: LIST
12177: PPUSH
12178: CALL_OW 70
12182: PUSH
12183: LD_INT 1
12185: ARRAY
12186: ST_TO_ADDR
// if GetLabKind ( Labak2 , 2 ) = b_lab_siberium then
12187: LD_VAR 0 3
12191: PPUSH
12192: LD_INT 2
12194: PPUSH
12195: CALL_OW 268
12199: PUSH
12200: LD_INT 11
12202: EQUAL
12203: IFFALSE 12217
// Zkoumej ( 3 , Labak2 ) ;
12205: LD_INT 3
12207: PPUSH
12208: LD_VAR 0 3
12212: PPUSH
12213: CALL 20414 0 2
// end else
12217: GO 12227
// Labak2 = 0 ;
12219: LD_ADDR_VAR 0 3
12223: PUSH
12224: LD_INT 0
12226: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , b_armoury ] , [ f_btype , b_barracks ] ] ] ) then
12227: LD_INT 52
12229: PUSH
12230: EMPTY
12231: LIST
12232: PUSH
12233: LD_INT 22
12235: PUSH
12236: LD_EXP 3
12240: PUSH
12241: EMPTY
12242: LIST
12243: LIST
12244: PUSH
12245: LD_INT 2
12247: PUSH
12248: LD_INT 30
12250: PUSH
12251: LD_INT 4
12253: PUSH
12254: EMPTY
12255: LIST
12256: LIST
12257: PUSH
12258: LD_INT 30
12260: PUSH
12261: LD_INT 5
12263: PUSH
12264: EMPTY
12265: LIST
12266: LIST
12267: PUSH
12268: EMPTY
12269: LIST
12270: LIST
12271: LIST
12272: PUSH
12273: EMPTY
12274: LIST
12275: LIST
12276: LIST
12277: PPUSH
12278: CALL_OW 69
12282: IFFALSE 12351
// begin Zbrojka = FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , b_armoury ] , [ f_btype , b_barracks ] ] ] ) [ 1 ] ;
12284: LD_ADDR_VAR 0 4
12288: PUSH
12289: LD_INT 52
12291: PUSH
12292: EMPTY
12293: LIST
12294: PUSH
12295: LD_INT 22
12297: PUSH
12298: LD_EXP 3
12302: PUSH
12303: EMPTY
12304: LIST
12305: LIST
12306: PUSH
12307: LD_INT 2
12309: PUSH
12310: LD_INT 30
12312: PUSH
12313: LD_INT 4
12315: PUSH
12316: EMPTY
12317: LIST
12318: LIST
12319: PUSH
12320: LD_INT 30
12322: PUSH
12323: LD_INT 5
12325: PUSH
12326: EMPTY
12327: LIST
12328: LIST
12329: PUSH
12330: EMPTY
12331: LIST
12332: LIST
12333: LIST
12334: PUSH
12335: EMPTY
12336: LIST
12337: LIST
12338: LIST
12339: PPUSH
12340: CALL_OW 69
12344: PUSH
12345: LD_INT 1
12347: ARRAY
12348: ST_TO_ADDR
// end else
12349: GO 12359
// Zbrojka = 0 ;
12351: LD_ADDR_VAR 0 4
12355: PUSH
12356: LD_INT 0
12358: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , b_workshop ] , [ f_btype , b_factory ] ] ] ) then
12359: LD_INT 52
12361: PUSH
12362: EMPTY
12363: LIST
12364: PUSH
12365: LD_INT 22
12367: PUSH
12368: LD_EXP 3
12372: PUSH
12373: EMPTY
12374: LIST
12375: LIST
12376: PUSH
12377: LD_INT 2
12379: PUSH
12380: LD_INT 30
12382: PUSH
12383: LD_INT 2
12385: PUSH
12386: EMPTY
12387: LIST
12388: LIST
12389: PUSH
12390: LD_INT 30
12392: PUSH
12393: LD_INT 3
12395: PUSH
12396: EMPTY
12397: LIST
12398: LIST
12399: PUSH
12400: EMPTY
12401: LIST
12402: LIST
12403: LIST
12404: PUSH
12405: EMPTY
12406: LIST
12407: LIST
12408: LIST
12409: PPUSH
12410: CALL_OW 69
12414: IFFALSE 12507
// begin Tovarna = FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , b_workshop ] , [ f_btype , b_factory ] ] ] ) [ 1 ] ;
12416: LD_ADDR_VAR 0 5
12420: PUSH
12421: LD_INT 52
12423: PUSH
12424: EMPTY
12425: LIST
12426: PUSH
12427: LD_INT 22
12429: PUSH
12430: LD_EXP 3
12434: PUSH
12435: EMPTY
12436: LIST
12437: LIST
12438: PUSH
12439: LD_INT 2
12441: PUSH
12442: LD_INT 30
12444: PUSH
12445: LD_INT 2
12447: PUSH
12448: EMPTY
12449: LIST
12450: LIST
12451: PUSH
12452: LD_INT 30
12454: PUSH
12455: LD_INT 3
12457: PUSH
12458: EMPTY
12459: LIST
12460: LIST
12461: PUSH
12462: EMPTY
12463: LIST
12464: LIST
12465: LIST
12466: PUSH
12467: EMPTY
12468: LIST
12469: LIST
12470: LIST
12471: PPUSH
12472: CALL_OW 69
12476: PUSH
12477: LD_INT 1
12479: ARRAY
12480: ST_TO_ADDR
// if GetBType ( Tovarna ) = b_factory then
12481: LD_VAR 0 5
12485: PPUSH
12486: CALL_OW 266
12490: PUSH
12491: LD_INT 3
12493: EQUAL
12494: IFFALSE 12505
// Vyrabej ( tovarna ) ;
12496: LD_VAR 0 5
12500: PPUSH
12501: CALL 21104 0 1
// end else
12505: GO 12515
// Tovarna = 0 ;
12507: LD_ADDR_VAR 0 5
12511: PUSH
12512: LD_INT 0
12514: ST_TO_ADDR
// if FilterUnitsInArea ( Elektro1 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_oil_power ] ] ) then
12515: LD_INT 16
12517: PPUSH
12518: LD_INT 52
12520: PUSH
12521: EMPTY
12522: LIST
12523: PUSH
12524: LD_INT 22
12526: PUSH
12527: LD_EXP 3
12531: PUSH
12532: EMPTY
12533: LIST
12534: LIST
12535: PUSH
12536: LD_INT 30
12538: PUSH
12539: LD_INT 26
12541: PUSH
12542: EMPTY
12543: LIST
12544: LIST
12545: PUSH
12546: EMPTY
12547: LIST
12548: LIST
12549: LIST
12550: PPUSH
12551: CALL_OW 70
12555: IFFALSE 12609
// begin El1 = FilterUnitsInArea ( Elektro1 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_oil_power ] ] ) [ 1 ] ;
12557: LD_ADDR_VAR 0 6
12561: PUSH
12562: LD_INT 16
12564: PPUSH
12565: LD_INT 52
12567: PUSH
12568: EMPTY
12569: LIST
12570: PUSH
12571: LD_INT 22
12573: PUSH
12574: LD_EXP 3
12578: PUSH
12579: EMPTY
12580: LIST
12581: LIST
12582: PUSH
12583: LD_INT 30
12585: PUSH
12586: LD_INT 26
12588: PUSH
12589: EMPTY
12590: LIST
12591: LIST
12592: PUSH
12593: EMPTY
12594: LIST
12595: LIST
12596: LIST
12597: PPUSH
12598: CALL_OW 70
12602: PUSH
12603: LD_INT 1
12605: ARRAY
12606: ST_TO_ADDR
// end else
12607: GO 12617
// El1 = 0 ;
12609: LD_ADDR_VAR 0 6
12613: PUSH
12614: LD_INT 0
12616: ST_TO_ADDR
// if FilterUnitsInArea ( Elektro2 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_oil_power ] ] ) then
12617: LD_INT 17
12619: PPUSH
12620: LD_INT 52
12622: PUSH
12623: EMPTY
12624: LIST
12625: PUSH
12626: LD_INT 22
12628: PUSH
12629: LD_EXP 3
12633: PUSH
12634: EMPTY
12635: LIST
12636: LIST
12637: PUSH
12638: LD_INT 30
12640: PUSH
12641: LD_INT 26
12643: PUSH
12644: EMPTY
12645: LIST
12646: LIST
12647: PUSH
12648: EMPTY
12649: LIST
12650: LIST
12651: LIST
12652: PPUSH
12653: CALL_OW 70
12657: IFFALSE 12711
// begin El2 = FilterUnitsInArea ( Elektro2 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_oil_power ] ] ) [ 1 ] ;
12659: LD_ADDR_VAR 0 7
12663: PUSH
12664: LD_INT 17
12666: PPUSH
12667: LD_INT 52
12669: PUSH
12670: EMPTY
12671: LIST
12672: PUSH
12673: LD_INT 22
12675: PUSH
12676: LD_EXP 3
12680: PUSH
12681: EMPTY
12682: LIST
12683: LIST
12684: PUSH
12685: LD_INT 30
12687: PUSH
12688: LD_INT 26
12690: PUSH
12691: EMPTY
12692: LIST
12693: LIST
12694: PUSH
12695: EMPTY
12696: LIST
12697: LIST
12698: LIST
12699: PPUSH
12700: CALL_OW 70
12704: PUSH
12705: LD_INT 1
12707: ARRAY
12708: ST_TO_ADDR
// end else
12709: GO 12719
// El2 = 0 ;
12711: LD_ADDR_VAR 0 7
12715: PUSH
12716: LD_INT 0
12718: ST_TO_ADDR
// if FilterUnitsInArea ( Elektro3 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_oil_power ] ] ) then
12719: LD_INT 25
12721: PPUSH
12722: LD_INT 52
12724: PUSH
12725: EMPTY
12726: LIST
12727: PUSH
12728: LD_INT 22
12730: PUSH
12731: LD_EXP 3
12735: PUSH
12736: EMPTY
12737: LIST
12738: LIST
12739: PUSH
12740: LD_INT 30
12742: PUSH
12743: LD_INT 26
12745: PUSH
12746: EMPTY
12747: LIST
12748: LIST
12749: PUSH
12750: EMPTY
12751: LIST
12752: LIST
12753: LIST
12754: PPUSH
12755: CALL_OW 70
12759: IFFALSE 12813
// begin El3 = FilterUnitsInArea ( Elektro3 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_oil_power ] ] ) [ 1 ] ;
12761: LD_ADDR_VAR 0 8
12765: PUSH
12766: LD_INT 25
12768: PPUSH
12769: LD_INT 52
12771: PUSH
12772: EMPTY
12773: LIST
12774: PUSH
12775: LD_INT 22
12777: PUSH
12778: LD_EXP 3
12782: PUSH
12783: EMPTY
12784: LIST
12785: LIST
12786: PUSH
12787: LD_INT 30
12789: PUSH
12790: LD_INT 26
12792: PUSH
12793: EMPTY
12794: LIST
12795: LIST
12796: PUSH
12797: EMPTY
12798: LIST
12799: LIST
12800: LIST
12801: PPUSH
12802: CALL_OW 70
12806: PUSH
12807: LD_INT 1
12809: ARRAY
12810: ST_TO_ADDR
// end else
12811: GO 12821
// El3 = 0 ;
12813: LD_ADDR_VAR 0 8
12817: PUSH
12818: LD_INT 0
12820: ST_TO_ADDR
// if FilterUnitsInArea ( Siberit1 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_siberite_power ] ] ) then
12821: LD_INT 26
12823: PPUSH
12824: LD_INT 52
12826: PUSH
12827: EMPTY
12828: LIST
12829: PUSH
12830: LD_INT 22
12832: PUSH
12833: LD_EXP 3
12837: PUSH
12838: EMPTY
12839: LIST
12840: LIST
12841: PUSH
12842: LD_INT 30
12844: PUSH
12845: LD_INT 28
12847: PUSH
12848: EMPTY
12849: LIST
12850: LIST
12851: PUSH
12852: EMPTY
12853: LIST
12854: LIST
12855: LIST
12856: PPUSH
12857: CALL_OW 70
12861: IFFALSE 12915
// begin Sib1 = FilterUnitsInArea ( Siberit1 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_siberite_power ] ] ) [ 1 ] ;
12863: LD_ADDR_VAR 0 9
12867: PUSH
12868: LD_INT 26
12870: PPUSH
12871: LD_INT 52
12873: PUSH
12874: EMPTY
12875: LIST
12876: PUSH
12877: LD_INT 22
12879: PUSH
12880: LD_EXP 3
12884: PUSH
12885: EMPTY
12886: LIST
12887: LIST
12888: PUSH
12889: LD_INT 30
12891: PUSH
12892: LD_INT 28
12894: PUSH
12895: EMPTY
12896: LIST
12897: LIST
12898: PUSH
12899: EMPTY
12900: LIST
12901: LIST
12902: LIST
12903: PPUSH
12904: CALL_OW 70
12908: PUSH
12909: LD_INT 1
12911: ARRAY
12912: ST_TO_ADDR
// end else
12913: GO 12923
// Sib1 = 0 ;
12915: LD_ADDR_VAR 0 9
12919: PUSH
12920: LD_INT 0
12922: ST_TO_ADDR
// if FilterUnitsInArea ( Siberit2 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_siberite_power ] ] ) then
12923: LD_INT 27
12925: PPUSH
12926: LD_INT 52
12928: PUSH
12929: EMPTY
12930: LIST
12931: PUSH
12932: LD_INT 22
12934: PUSH
12935: LD_EXP 3
12939: PUSH
12940: EMPTY
12941: LIST
12942: LIST
12943: PUSH
12944: LD_INT 30
12946: PUSH
12947: LD_INT 28
12949: PUSH
12950: EMPTY
12951: LIST
12952: LIST
12953: PUSH
12954: EMPTY
12955: LIST
12956: LIST
12957: LIST
12958: PPUSH
12959: CALL_OW 70
12963: IFFALSE 13017
// begin Sib2 = FilterUnitsInArea ( Siberit2 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_siberite_power ] ] ) [ 1 ] ;
12965: LD_ADDR_VAR 0 10
12969: PUSH
12970: LD_INT 27
12972: PPUSH
12973: LD_INT 52
12975: PUSH
12976: EMPTY
12977: LIST
12978: PUSH
12979: LD_INT 22
12981: PUSH
12982: LD_EXP 3
12986: PUSH
12987: EMPTY
12988: LIST
12989: LIST
12990: PUSH
12991: LD_INT 30
12993: PUSH
12994: LD_INT 28
12996: PUSH
12997: EMPTY
12998: LIST
12999: LIST
13000: PUSH
13001: EMPTY
13002: LIST
13003: LIST
13004: LIST
13005: PPUSH
13006: CALL_OW 70
13010: PUSH
13011: LD_INT 1
13013: ARRAY
13014: ST_TO_ADDR
// end else
13015: GO 13025
// Sib2 = 0 ;
13017: LD_ADDR_VAR 0 10
13021: PUSH
13022: LD_INT 0
13024: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_not , [ f_constructed ] ] , [ f_side , You2 ] , [ f_ok ] , [ f_empty ] , [ f_or , [ f_btype , b_breastwork ] , [ f_btype , b_bunker ] ] ] ) then
13025: LD_INT 52
13027: PUSH
13028: EMPTY
13029: LIST
13030: PUSH
13031: LD_INT 3
13033: PUSH
13034: LD_INT 57
13036: PUSH
13037: EMPTY
13038: LIST
13039: PUSH
13040: EMPTY
13041: LIST
13042: LIST
13043: PUSH
13044: LD_INT 22
13046: PUSH
13047: LD_EXP 3
13051: PUSH
13052: EMPTY
13053: LIST
13054: LIST
13055: PUSH
13056: LD_INT 50
13058: PUSH
13059: EMPTY
13060: LIST
13061: PUSH
13062: LD_INT 58
13064: PUSH
13065: EMPTY
13066: LIST
13067: PUSH
13068: LD_INT 2
13070: PUSH
13071: LD_INT 30
13073: PUSH
13074: LD_INT 31
13076: PUSH
13077: EMPTY
13078: LIST
13079: LIST
13080: PUSH
13081: LD_INT 30
13083: PUSH
13084: LD_INT 32
13086: PUSH
13087: EMPTY
13088: LIST
13089: LIST
13090: PUSH
13091: EMPTY
13092: LIST
13093: LIST
13094: LIST
13095: PUSH
13096: EMPTY
13097: LIST
13098: LIST
13099: LIST
13100: LIST
13101: LIST
13102: LIST
13103: PPUSH
13104: CALL_OW 69
13108: IFFALSE 13201
// begin volne_bunkry = FilterAllUnits ( [ [ f_placed ] , [ f_not , [ f_constructed ] ] , [ f_ok ] , [ f_side , You2 ] , [ f_empty ] , [ f_or , [ f_btype , b_breastwork ] , [ f_btype , b_bunker ] ] ] ) ;
13110: LD_ADDR_VAR 0 24
13114: PUSH
13115: LD_INT 52
13117: PUSH
13118: EMPTY
13119: LIST
13120: PUSH
13121: LD_INT 3
13123: PUSH
13124: LD_INT 57
13126: PUSH
13127: EMPTY
13128: LIST
13129: PUSH
13130: EMPTY
13131: LIST
13132: LIST
13133: PUSH
13134: LD_INT 50
13136: PUSH
13137: EMPTY
13138: LIST
13139: PUSH
13140: LD_INT 22
13142: PUSH
13143: LD_EXP 3
13147: PUSH
13148: EMPTY
13149: LIST
13150: LIST
13151: PUSH
13152: LD_INT 58
13154: PUSH
13155: EMPTY
13156: LIST
13157: PUSH
13158: LD_INT 2
13160: PUSH
13161: LD_INT 30
13163: PUSH
13164: LD_INT 31
13166: PUSH
13167: EMPTY
13168: LIST
13169: LIST
13170: PUSH
13171: LD_INT 30
13173: PUSH
13174: LD_INT 32
13176: PUSH
13177: EMPTY
13178: LIST
13179: LIST
13180: PUSH
13181: EMPTY
13182: LIST
13183: LIST
13184: LIST
13185: PUSH
13186: EMPTY
13187: LIST
13188: LIST
13189: LIST
13190: LIST
13191: LIST
13192: LIST
13193: PPUSH
13194: CALL_OW 69
13198: ST_TO_ADDR
// end else
13199: GO 13209
// volne_bunkry = 0 ;
13201: LD_ADDR_VAR 0 24
13205: PUSH
13206: LD_INT 0
13208: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_class , class_engineer ] ] ) and FilterAllUnits ( [ [ f_type , unit_building ] , [ f_side , You2 ] ] ) then
13209: LD_INT 52
13211: PUSH
13212: EMPTY
13213: LIST
13214: PUSH
13215: LD_INT 22
13217: PUSH
13218: LD_EXP 3
13222: PUSH
13223: EMPTY
13224: LIST
13225: LIST
13226: PUSH
13227: LD_INT 25
13229: PUSH
13230: LD_INT 2
13232: PUSH
13233: EMPTY
13234: LIST
13235: LIST
13236: PUSH
13237: EMPTY
13238: LIST
13239: LIST
13240: LIST
13241: PPUSH
13242: CALL_OW 69
13246: PUSH
13247: LD_INT 21
13249: PUSH
13250: LD_INT 3
13252: PUSH
13253: EMPTY
13254: LIST
13255: LIST
13256: PUSH
13257: LD_INT 22
13259: PUSH
13260: LD_EXP 3
13264: PUSH
13265: EMPTY
13266: LIST
13267: LIST
13268: PUSH
13269: EMPTY
13270: LIST
13271: LIST
13272: PPUSH
13273: CALL_OW 69
13277: AND
13278: IFFALSE 13365
// SetBLevel ( ( FilterAllUnits ( [ [ f_type , unit_building ] , [ f_side , You2 ] ] ) ) , GetSkill ( FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_class , class_engineer ] ] ) [ 1 ] , skill_engineering ) ) ;
13280: LD_INT 21
13282: PUSH
13283: LD_INT 3
13285: PUSH
13286: EMPTY
13287: LIST
13288: LIST
13289: PUSH
13290: LD_INT 22
13292: PUSH
13293: LD_EXP 3
13297: PUSH
13298: EMPTY
13299: LIST
13300: LIST
13301: PUSH
13302: EMPTY
13303: LIST
13304: LIST
13305: PPUSH
13306: CALL_OW 69
13310: PPUSH
13311: LD_INT 52
13313: PUSH
13314: EMPTY
13315: LIST
13316: PUSH
13317: LD_INT 22
13319: PUSH
13320: LD_EXP 3
13324: PUSH
13325: EMPTY
13326: LIST
13327: LIST
13328: PUSH
13329: LD_INT 25
13331: PUSH
13332: LD_INT 2
13334: PUSH
13335: EMPTY
13336: LIST
13337: LIST
13338: PUSH
13339: EMPTY
13340: LIST
13341: LIST
13342: LIST
13343: PPUSH
13344: CALL_OW 69
13348: PUSH
13349: LD_INT 1
13351: ARRAY
13352: PPUSH
13353: LD_INT 2
13355: PPUSH
13356: CALL_OW 259
13360: PPUSH
13361: CALL_OW 241
// if FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_class , class_engineer ] ] ) then
13365: LD_INT 50
13367: PUSH
13368: EMPTY
13369: LIST
13370: PUSH
13371: LD_INT 22
13373: PUSH
13374: LD_EXP 3
13378: PUSH
13379: EMPTY
13380: LIST
13381: LIST
13382: PUSH
13383: LD_INT 25
13385: PUSH
13386: LD_INT 2
13388: PUSH
13389: EMPTY
13390: LIST
13391: LIST
13392: PUSH
13393: EMPTY
13394: LIST
13395: LIST
13396: LIST
13397: PPUSH
13398: CALL_OW 69
13402: IFFALSE 15720
// begin Inzenyri_volni = FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_class , class_engineer ] ] ) ;
13404: LD_ADDR_VAR 0 11
13408: PUSH
13409: LD_INT 50
13411: PUSH
13412: EMPTY
13413: LIST
13414: PUSH
13415: LD_INT 22
13417: PUSH
13418: LD_EXP 3
13422: PUSH
13423: EMPTY
13424: LIST
13425: LIST
13426: PUSH
13427: LD_INT 25
13429: PUSH
13430: LD_INT 2
13432: PUSH
13433: EMPTY
13434: LIST
13435: LIST
13436: PUSH
13437: EMPTY
13438: LIST
13439: LIST
13440: LIST
13441: PPUSH
13442: CALL_OW 69
13446: ST_TO_ADDR
// for un in Inzenyri_volni do
13447: LD_ADDR_VAR 0 16
13451: PUSH
13452: LD_VAR 0 11
13456: PUSH
13457: FOR_IN
13458: IFFALSE 15718
// begin if GetLives ( un ) < 550 then
13460: LD_VAR 0 16
13464: PPUSH
13465: CALL_OW 256
13469: PUSH
13470: LD_INT 550
13472: LESS
13473: IFFALSE 13524
// begin VyjdiVen ( un ) ;
13475: LD_VAR 0 16
13479: PPUSH
13480: CALL 2645 0 1
// if not IsInArea ( un , leceni ) then
13484: LD_VAR 0 16
13488: PPUSH
13489: LD_INT 12
13491: PPUSH
13492: CALL_OW 308
13496: NOT
13497: IFFALSE 13513
// ComMoveToArea ( un , leceni ) else
13499: LD_VAR 0 16
13503: PPUSH
13504: LD_INT 12
13506: PPUSH
13507: CALL_OW 113
13511: GO 13522
// ComHold ( un ) ;
13513: LD_VAR 0 16
13517: PPUSH
13518: CALL_OW 140
// end else
13522: GO 15716
// if GetLives ( un ) < 1000 and IsInArea ( un , leceni ) then
13524: LD_VAR 0 16
13528: PPUSH
13529: CALL_OW 256
13533: PUSH
13534: LD_INT 1000
13536: LESS
13537: PUSH
13538: LD_VAR 0 16
13542: PPUSH
13543: LD_INT 12
13545: PPUSH
13546: CALL_OW 308
13550: AND
13551: IFFALSE 13555
// else
13553: GO 15716
// if not GetDistUnitArea ( un , RuBaza2 ) < 20 then
13555: LD_VAR 0 16
13559: PPUSH
13560: LD_INT 13
13562: PPUSH
13563: CALL_OW 299
13567: PUSH
13568: LD_INT 20
13570: LESS
13571: NOT
13572: IFFALSE 13588
// ComMoveToArea ( un , RuBaza2 ) else
13574: LD_VAR 0 16
13578: PPUSH
13579: LD_INT 13
13581: PPUSH
13582: CALL_OW 113
13586: GO 15716
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) then
13588: LD_INT 52
13590: PUSH
13591: EMPTY
13592: LIST
13593: PUSH
13594: LD_INT 22
13596: PUSH
13597: LD_EXP 3
13601: PUSH
13602: EMPTY
13603: LIST
13604: LIST
13605: PUSH
13606: LD_INT 21
13608: PUSH
13609: LD_INT 3
13611: PUSH
13612: EMPTY
13613: LIST
13614: LIST
13615: PUSH
13616: LD_INT 3
13618: PUSH
13619: LD_INT 24
13621: PUSH
13622: LD_INT 250
13624: PUSH
13625: EMPTY
13626: LIST
13627: LIST
13628: PUSH
13629: EMPTY
13630: LIST
13631: LIST
13632: PUSH
13633: EMPTY
13634: LIST
13635: LIST
13636: LIST
13637: LIST
13638: PPUSH
13639: CALL_OW 69
13643: IFFALSE 13735
// begin b = FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) ;
13645: LD_ADDR_VAR 0 17
13649: PUSH
13650: LD_INT 52
13652: PUSH
13653: EMPTY
13654: LIST
13655: PUSH
13656: LD_INT 22
13658: PUSH
13659: LD_EXP 3
13663: PUSH
13664: EMPTY
13665: LIST
13666: LIST
13667: PUSH
13668: LD_INT 21
13670: PUSH
13671: LD_INT 3
13673: PUSH
13674: EMPTY
13675: LIST
13676: LIST
13677: PUSH
13678: LD_INT 3
13680: PUSH
13681: LD_INT 24
13683: PUSH
13684: LD_INT 250
13686: PUSH
13687: EMPTY
13688: LIST
13689: LIST
13690: PUSH
13691: EMPTY
13692: LIST
13693: LIST
13694: PUSH
13695: EMPTY
13696: LIST
13697: LIST
13698: LIST
13699: LIST
13700: PPUSH
13701: CALL_OW 69
13705: ST_TO_ADDR
// VyjdiVen ( un ) ;
13706: LD_VAR 0 16
13710: PPUSH
13711: CALL 2645 0 1
// ComRepairBuilding ( un , b [ 1 ] ) ;
13715: LD_VAR 0 16
13719: PPUSH
13720: LD_VAR 0 17
13724: PUSH
13725: LD_INT 1
13727: ARRAY
13728: PPUSH
13729: CALL_OW 130
// end else
13733: GO 15716
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
13735: LD_INT 52
13737: PUSH
13738: EMPTY
13739: LIST
13740: PUSH
13741: LD_INT 22
13743: PUSH
13744: LD_EXP 3
13748: PUSH
13749: EMPTY
13750: LIST
13751: LIST
13752: PUSH
13753: LD_INT 21
13755: PUSH
13756: LD_INT 3
13758: PUSH
13759: EMPTY
13760: LIST
13761: LIST
13762: PUSH
13763: LD_INT 3
13765: PUSH
13766: LD_INT 24
13768: PUSH
13769: LD_INT 1000
13771: PUSH
13772: EMPTY
13773: LIST
13774: LIST
13775: PUSH
13776: EMPTY
13777: LIST
13778: LIST
13779: PUSH
13780: EMPTY
13781: LIST
13782: LIST
13783: LIST
13784: LIST
13785: PPUSH
13786: CALL_OW 69
13790: IFFALSE 13882
// begin b = FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
13792: LD_ADDR_VAR 0 17
13796: PUSH
13797: LD_INT 52
13799: PUSH
13800: EMPTY
13801: LIST
13802: PUSH
13803: LD_INT 22
13805: PUSH
13806: LD_EXP 3
13810: PUSH
13811: EMPTY
13812: LIST
13813: LIST
13814: PUSH
13815: LD_INT 21
13817: PUSH
13818: LD_INT 3
13820: PUSH
13821: EMPTY
13822: LIST
13823: LIST
13824: PUSH
13825: LD_INT 3
13827: PUSH
13828: LD_INT 24
13830: PUSH
13831: LD_INT 1000
13833: PUSH
13834: EMPTY
13835: LIST
13836: LIST
13837: PUSH
13838: EMPTY
13839: LIST
13840: LIST
13841: PUSH
13842: EMPTY
13843: LIST
13844: LIST
13845: LIST
13846: LIST
13847: PPUSH
13848: CALL_OW 69
13852: ST_TO_ADDR
// VyjdiVen ( un ) ;
13853: LD_VAR 0 16
13857: PPUSH
13858: CALL 2645 0 1
// ComRepairBuilding ( un , b [ 1 ] ) ;
13862: LD_VAR 0 16
13866: PPUSH
13867: LD_VAR 0 17
13871: PUSH
13872: LD_INT 1
13874: ARRAY
13875: PPUSH
13876: CALL_OW 130
// end else
13880: GO 15716
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_constructed ] ] ) then
13882: LD_INT 52
13884: PUSH
13885: EMPTY
13886: LIST
13887: PUSH
13888: LD_INT 22
13890: PUSH
13891: LD_EXP 3
13895: PUSH
13896: EMPTY
13897: LIST
13898: LIST
13899: PUSH
13900: LD_INT 21
13902: PUSH
13903: LD_INT 3
13905: PUSH
13906: EMPTY
13907: LIST
13908: LIST
13909: PUSH
13910: LD_INT 57
13912: PUSH
13913: EMPTY
13914: LIST
13915: PUSH
13916: EMPTY
13917: LIST
13918: LIST
13919: LIST
13920: LIST
13921: PPUSH
13922: CALL_OW 69
13926: IFFALSE 13998
// begin b = FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_constructed ] ] ) ;
13928: LD_ADDR_VAR 0 17
13932: PUSH
13933: LD_INT 52
13935: PUSH
13936: EMPTY
13937: LIST
13938: PUSH
13939: LD_INT 22
13941: PUSH
13942: LD_EXP 3
13946: PUSH
13947: EMPTY
13948: LIST
13949: LIST
13950: PUSH
13951: LD_INT 21
13953: PUSH
13954: LD_INT 3
13956: PUSH
13957: EMPTY
13958: LIST
13959: LIST
13960: PUSH
13961: LD_INT 57
13963: PUSH
13964: EMPTY
13965: LIST
13966: PUSH
13967: EMPTY
13968: LIST
13969: LIST
13970: LIST
13971: LIST
13972: PPUSH
13973: CALL_OW 69
13977: ST_TO_ADDR
// ComRepairBuilding ( un , b [ 1 ] ) ;
13978: LD_VAR 0 16
13982: PPUSH
13983: LD_VAR 0 17
13987: PUSH
13988: LD_INT 1
13990: ARRAY
13991: PPUSH
13992: CALL_OW 130
// end else
13996: GO 15716
// if List_znicenych_budov then
13998: LD_EXP 73
14002: IFFALSE 14110
// begin VyjdiVen ( un ) ;
14004: LD_VAR 0 16
14008: PPUSH
14009: CALL 2645 0 1
// for i = 1 to List_znicenych_budov + 0 do
14013: LD_ADDR_VAR 0 19
14017: PUSH
14018: DOUBLE
14019: LD_INT 1
14021: DEC
14022: ST_TO_ADDR
14023: LD_EXP 73
14027: PUSH
14028: LD_INT 0
14030: PLUS
14031: PUSH
14032: FOR_TO
14033: IFFALSE 14106
// ComBuild ( un , List_znicenych_budov [ i ] [ 1 ] , List_znicenych_budov [ i ] [ 2 ] , List_znicenych_budov [ i ] [ 3 ] , List_znicenych_budov [ i ] [ 4 ] ) ;
14035: LD_VAR 0 16
14039: PPUSH
14040: LD_EXP 73
14044: PUSH
14045: LD_VAR 0 19
14049: ARRAY
14050: PUSH
14051: LD_INT 1
14053: ARRAY
14054: PPUSH
14055: LD_EXP 73
14059: PUSH
14060: LD_VAR 0 19
14064: ARRAY
14065: PUSH
14066: LD_INT 2
14068: ARRAY
14069: PPUSH
14070: LD_EXP 73
14074: PUSH
14075: LD_VAR 0 19
14079: ARRAY
14080: PUSH
14081: LD_INT 3
14083: ARRAY
14084: PPUSH
14085: LD_EXP 73
14089: PUSH
14090: LD_VAR 0 19
14094: ARRAY
14095: PUSH
14096: LD_INT 4
14098: ARRAY
14099: PPUSH
14100: CALL_OW 145
14104: GO 14032
14106: POP
14107: POP
// end else
14108: GO 15716
// if Postavit_Lab1 = true and not Labak1 then
14110: LD_EXP 44
14114: PUSH
14115: LD_INT 1
14117: EQUAL
14118: PUSH
14119: LD_VAR 0 2
14123: NOT
14124: AND
14125: IFFALSE 14159
// begin VyjdiVen ( un ) ;
14127: LD_VAR 0 16
14131: PPUSH
14132: CALL 2645 0 1
// ComBuild ( un , b_lab , 207 , 174 , 1 ) ;
14136: LD_VAR 0 16
14140: PPUSH
14141: LD_INT 6
14143: PPUSH
14144: LD_INT 207
14146: PPUSH
14147: LD_INT 174
14149: PPUSH
14150: LD_INT 1
14152: PPUSH
14153: CALL_OW 145
// end else
14157: GO 15716
// if Postavit_Tovarnu = true and not Tovarna then
14159: LD_EXP 46
14163: PUSH
14164: LD_INT 1
14166: EQUAL
14167: PUSH
14168: LD_VAR 0 5
14172: NOT
14173: AND
14174: IFFALSE 14208
// begin VyjdiVen ( un ) ;
14176: LD_VAR 0 16
14180: PPUSH
14181: CALL 2645 0 1
// ComBuild ( un , b_workshop , 219 , 191 , 0 ) ;
14185: LD_VAR 0 16
14189: PPUSH
14190: LD_INT 2
14192: PPUSH
14193: LD_INT 219
14195: PPUSH
14196: LD_INT 191
14198: PPUSH
14199: LD_INT 0
14201: PPUSH
14202: CALL_OW 145
// end else
14206: GO 15716
// if Postavit_El1 = true and not El1 then
14208: LD_EXP 45
14212: PUSH
14213: LD_INT 1
14215: EQUAL
14216: PUSH
14217: LD_VAR 0 6
14221: NOT
14222: AND
14223: IFFALSE 14257
// begin VyjdiVen ( un ) ;
14225: LD_VAR 0 16
14229: PPUSH
14230: CALL 2645 0 1
// ComBuild ( un , b_oil_power , 224 , 174 , 0 ) ;
14234: LD_VAR 0 16
14238: PPUSH
14239: LD_INT 26
14241: PPUSH
14242: LD_INT 224
14244: PPUSH
14245: LD_INT 174
14247: PPUSH
14248: LD_INT 0
14250: PPUSH
14251: CALL_OW 145
// end else
14255: GO 15716
// if Postavit_Zbrojku = true and not Zbrojka then
14257: LD_EXP 47
14261: PUSH
14262: LD_INT 1
14264: EQUAL
14265: PUSH
14266: LD_VAR 0 4
14270: NOT
14271: AND
14272: IFFALSE 14306
// begin VyjdiVen ( un ) ;
14274: LD_VAR 0 16
14278: PPUSH
14279: CALL 2645 0 1
// ComBuild ( un , b_armoury , 210 , 158 , 2 ) ;
14283: LD_VAR 0 16
14287: PPUSH
14288: LD_INT 4
14290: PPUSH
14291: LD_INT 210
14293: PPUSH
14294: LD_INT 158
14296: PPUSH
14297: LD_INT 2
14299: PPUSH
14300: CALL_OW 145
// end else
14304: GO 15716
// if Postavit_El2 = true and not El2 then
14306: LD_EXP 48
14310: PUSH
14311: LD_INT 1
14313: EQUAL
14314: PUSH
14315: LD_VAR 0 7
14319: NOT
14320: AND
14321: IFFALSE 14355
// begin VyjdiVen ( un ) ;
14323: LD_VAR 0 16
14327: PPUSH
14328: CALL 2645 0 1
// ComBuild ( un , b_oil_power , 244 , 194 , 1 ) ;
14332: LD_VAR 0 16
14336: PPUSH
14337: LD_INT 26
14339: PPUSH
14340: LD_INT 244
14342: PPUSH
14343: LD_INT 194
14345: PPUSH
14346: LD_INT 1
14348: PPUSH
14349: CALL_OW 145
// end else
14353: GO 15716
// if Postavit_TrackExt = true and not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_track ] ] ) then
14355: LD_EXP 58
14359: PUSH
14360: LD_INT 1
14362: EQUAL
14363: PUSH
14364: LD_INT 52
14366: PUSH
14367: EMPTY
14368: LIST
14369: PUSH
14370: LD_INT 22
14372: PUSH
14373: LD_EXP 3
14377: PUSH
14378: EMPTY
14379: LIST
14380: LIST
14381: PUSH
14382: LD_INT 30
14384: PUSH
14385: LD_INT 16
14387: PUSH
14388: EMPTY
14389: LIST
14390: LIST
14391: PUSH
14392: EMPTY
14393: LIST
14394: LIST
14395: LIST
14396: PPUSH
14397: CALL_OW 69
14401: NOT
14402: AND
14403: IFFALSE 14437
// begin VyjdiVen ( un ) ;
14405: LD_VAR 0 16
14409: PPUSH
14410: CALL 2645 0 1
// ComBuild ( un , b_ext_track , 219 , 195 , 0 ) ;
14414: LD_VAR 0 16
14418: PPUSH
14419: LD_INT 16
14421: PPUSH
14422: LD_INT 219
14424: PPUSH
14425: LD_INT 195
14427: PPUSH
14428: LD_INT 0
14430: PPUSH
14431: CALL_OW 145
// end else
14435: GO 15716
// if Postavit_GunExt = true and not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_gun ] ] ) then
14437: LD_EXP 59
14441: PUSH
14442: LD_INT 1
14444: EQUAL
14445: PUSH
14446: LD_INT 52
14448: PUSH
14449: EMPTY
14450: LIST
14451: PUSH
14452: LD_INT 22
14454: PUSH
14455: LD_EXP 3
14459: PUSH
14460: EMPTY
14461: LIST
14462: LIST
14463: PUSH
14464: LD_INT 30
14466: PUSH
14467: LD_INT 17
14469: PUSH
14470: EMPTY
14471: LIST
14472: LIST
14473: PUSH
14474: EMPTY
14475: LIST
14476: LIST
14477: LIST
14478: PPUSH
14479: CALL_OW 69
14483: NOT
14484: AND
14485: IFFALSE 14519
// begin VyjdiVen ( un ) ;
14487: LD_VAR 0 16
14491: PPUSH
14492: CALL 2645 0 1
// ComBuild ( un , b_ext_gun , 216 , 191 , 1 ) ;
14496: LD_VAR 0 16
14500: PPUSH
14501: LD_INT 17
14503: PPUSH
14504: LD_INT 216
14506: PPUSH
14507: LD_INT 191
14509: PPUSH
14510: LD_INT 1
14512: PPUSH
14513: CALL_OW 145
// end else
14517: GO 15716
// if Postavit_RocketExt = true and not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_rocket ] ] ) then
14519: LD_EXP 60
14523: PUSH
14524: LD_INT 1
14526: EQUAL
14527: PUSH
14528: LD_INT 52
14530: PUSH
14531: EMPTY
14532: LIST
14533: PUSH
14534: LD_INT 22
14536: PUSH
14537: LD_EXP 3
14541: PUSH
14542: EMPTY
14543: LIST
14544: LIST
14545: PUSH
14546: LD_INT 30
14548: PUSH
14549: LD_INT 18
14551: PUSH
14552: EMPTY
14553: LIST
14554: LIST
14555: PUSH
14556: EMPTY
14557: LIST
14558: LIST
14559: LIST
14560: PPUSH
14561: CALL_OW 69
14565: NOT
14566: AND
14567: IFFALSE 14601
// begin VyjdiVen ( un ) ;
14569: LD_VAR 0 16
14573: PPUSH
14574: CALL 2645 0 1
// ComBuild ( un , b_ext_rocket , 222 , 194 , 5 ) ;
14578: LD_VAR 0 16
14582: PPUSH
14583: LD_INT 18
14585: PPUSH
14586: LD_INT 222
14588: PPUSH
14589: LD_INT 194
14591: PPUSH
14592: LD_INT 5
14594: PPUSH
14595: CALL_OW 145
// end else
14599: GO 15716
// if Postavit_SibExt = true and not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_siberium ] ] ) then
14601: LD_EXP 61
14605: PUSH
14606: LD_INT 1
14608: EQUAL
14609: PUSH
14610: LD_INT 52
14612: PUSH
14613: EMPTY
14614: LIST
14615: PUSH
14616: LD_INT 22
14618: PUSH
14619: LD_EXP 3
14623: PUSH
14624: EMPTY
14625: LIST
14626: LIST
14627: PUSH
14628: LD_INT 30
14630: PUSH
14631: LD_INT 21
14633: PUSH
14634: EMPTY
14635: LIST
14636: LIST
14637: PUSH
14638: EMPTY
14639: LIST
14640: LIST
14641: LIST
14642: PPUSH
14643: CALL_OW 69
14647: NOT
14648: AND
14649: IFFALSE 14683
// begin VyjdiVen ( un ) ;
14651: LD_VAR 0 16
14655: PPUSH
14656: CALL 2645 0 1
// ComBuild ( un , b_ext_siberium , 215 , 187 , 2 ) ;
14660: LD_VAR 0 16
14664: PPUSH
14665: LD_INT 21
14667: PPUSH
14668: LD_INT 215
14670: PPUSH
14671: LD_INT 187
14673: PPUSH
14674: LD_INT 2
14676: PPUSH
14677: CALL_OW 145
// end else
14681: GO 15716
// if Postavit_CompExt = true and not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_computer ] ] ) then
14683: LD_EXP 62
14687: PUSH
14688: LD_INT 1
14690: EQUAL
14691: PUSH
14692: LD_INT 52
14694: PUSH
14695: EMPTY
14696: LIST
14697: PUSH
14698: LD_INT 22
14700: PUSH
14701: LD_EXP 3
14705: PUSH
14706: EMPTY
14707: LIST
14708: LIST
14709: PUSH
14710: LD_INT 30
14712: PUSH
14713: LD_INT 24
14715: PUSH
14716: EMPTY
14717: LIST
14718: LIST
14719: PUSH
14720: EMPTY
14721: LIST
14722: LIST
14723: LIST
14724: PPUSH
14725: CALL_OW 69
14729: NOT
14730: AND
14731: IFFALSE 14765
// begin VyjdiVen ( un ) ;
14733: LD_VAR 0 16
14737: PPUSH
14738: CALL 2645 0 1
// ComBuild ( un , b_ext_computer , 223 , 191 , 4 ) ;
14742: LD_VAR 0 16
14746: PPUSH
14747: LD_INT 24
14749: PPUSH
14750: LD_INT 223
14752: PPUSH
14753: LD_INT 191
14755: PPUSH
14756: LD_INT 4
14758: PPUSH
14759: CALL_OW 145
// end else
14763: GO 15716
// if Postavit_Vez1 = true and not FilterUnitsInArea ( Vez1 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_bunker ] ] ) then
14765: LD_EXP 49
14769: PUSH
14770: LD_INT 1
14772: EQUAL
14773: PUSH
14774: LD_INT 18
14776: PPUSH
14777: LD_INT 52
14779: PUSH
14780: EMPTY
14781: LIST
14782: PUSH
14783: LD_INT 22
14785: PUSH
14786: LD_EXP 3
14790: PUSH
14791: EMPTY
14792: LIST
14793: LIST
14794: PUSH
14795: LD_INT 30
14797: PUSH
14798: LD_INT 32
14800: PUSH
14801: EMPTY
14802: LIST
14803: LIST
14804: PUSH
14805: EMPTY
14806: LIST
14807: LIST
14808: LIST
14809: PPUSH
14810: CALL_OW 70
14814: NOT
14815: AND
14816: IFFALSE 14850
// begin VyjdiVen ( un ) ;
14818: LD_VAR 0 16
14822: PPUSH
14823: CALL 2645 0 1
// ComBuild ( un , b_bunker , 223 , 160 , 3 ) ;
14827: LD_VAR 0 16
14831: PPUSH
14832: LD_INT 32
14834: PPUSH
14835: LD_INT 223
14837: PPUSH
14838: LD_INT 160
14840: PPUSH
14841: LD_INT 3
14843: PPUSH
14844: CALL_OW 145
// end else
14848: GO 15716
// if Postavit_Vez2 = true and not FilterUnitsInArea ( Vez2 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_turret ] ] ) then
14850: LD_EXP 50
14854: PUSH
14855: LD_INT 1
14857: EQUAL
14858: PUSH
14859: LD_INT 19
14861: PPUSH
14862: LD_INT 52
14864: PUSH
14865: EMPTY
14866: LIST
14867: PUSH
14868: LD_INT 22
14870: PUSH
14871: LD_EXP 3
14875: PUSH
14876: EMPTY
14877: LIST
14878: LIST
14879: PUSH
14880: LD_INT 30
14882: PUSH
14883: LD_INT 33
14885: PUSH
14886: EMPTY
14887: LIST
14888: LIST
14889: PUSH
14890: EMPTY
14891: LIST
14892: LIST
14893: LIST
14894: PPUSH
14895: CALL_OW 70
14899: NOT
14900: AND
14901: IFFALSE 14935
// begin VyjdiVen ( un ) ;
14903: LD_VAR 0 16
14907: PPUSH
14908: CALL 2645 0 1
// ComBuild ( un , b_turret , 232 , 175 , 4 ) ;
14912: LD_VAR 0 16
14916: PPUSH
14917: LD_INT 33
14919: PPUSH
14920: LD_INT 232
14922: PPUSH
14923: LD_INT 175
14925: PPUSH
14926: LD_INT 4
14928: PPUSH
14929: CALL_OW 145
// end else
14933: GO 15716
// if Postavit_Vez3 = true and FilterUnitsInArea ( Vez3 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_breastwork ] ] ) and not FilterUnitsInArea ( Vez3 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_bunker ] ] ) then
14935: LD_EXP 51
14939: PUSH
14940: LD_INT 1
14942: EQUAL
14943: PUSH
14944: LD_INT 20
14946: PPUSH
14947: LD_INT 52
14949: PUSH
14950: EMPTY
14951: LIST
14952: PUSH
14953: LD_INT 22
14955: PUSH
14956: LD_EXP 3
14960: PUSH
14961: EMPTY
14962: LIST
14963: LIST
14964: PUSH
14965: LD_INT 30
14967: PUSH
14968: LD_INT 31
14970: PUSH
14971: EMPTY
14972: LIST
14973: LIST
14974: PUSH
14975: EMPTY
14976: LIST
14977: LIST
14978: LIST
14979: PPUSH
14980: CALL_OW 70
14984: AND
14985: PUSH
14986: LD_INT 20
14988: PPUSH
14989: LD_INT 52
14991: PUSH
14992: EMPTY
14993: LIST
14994: PUSH
14995: LD_INT 22
14997: PUSH
14998: LD_EXP 3
15002: PUSH
15003: EMPTY
15004: LIST
15005: LIST
15006: PUSH
15007: LD_INT 30
15009: PUSH
15010: LD_INT 32
15012: PUSH
15013: EMPTY
15014: LIST
15015: LIST
15016: PUSH
15017: EMPTY
15018: LIST
15019: LIST
15020: LIST
15021: PPUSH
15022: CALL_OW 70
15026: NOT
15027: AND
15028: IFFALSE 15102
// begin b = FilterUnitsInArea ( Vez3 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_breastwork ] ] ) ;
15030: LD_ADDR_VAR 0 17
15034: PUSH
15035: LD_INT 20
15037: PPUSH
15038: LD_INT 52
15040: PUSH
15041: EMPTY
15042: LIST
15043: PUSH
15044: LD_INT 22
15046: PUSH
15047: LD_EXP 3
15051: PUSH
15052: EMPTY
15053: LIST
15054: LIST
15055: PUSH
15056: LD_INT 30
15058: PUSH
15059: LD_INT 31
15061: PUSH
15062: EMPTY
15063: LIST
15064: LIST
15065: PUSH
15066: EMPTY
15067: LIST
15068: LIST
15069: LIST
15070: PPUSH
15071: CALL_OW 70
15075: ST_TO_ADDR
// VyjdiVen ( un ) ;
15076: LD_VAR 0 16
15080: PPUSH
15081: CALL 2645 0 1
// ComUpgradeBreastwork ( b , 219 , 158 ) ;
15085: LD_VAR 0 17
15089: PPUSH
15090: LD_INT 219
15092: PPUSH
15093: LD_INT 158
15095: PPUSH
15096: CALL 5279 0 3
// end else
15100: GO 15716
// if Postavit_Vez4 = true and FilterUnitsInArea ( Vez4 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_breastwork ] ] ) and not FilterUnitsInArea ( Vez4 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_bunker ] ] ) then
15102: LD_EXP 52
15106: PUSH
15107: LD_INT 1
15109: EQUAL
15110: PUSH
15111: LD_INT 21
15113: PPUSH
15114: LD_INT 52
15116: PUSH
15117: EMPTY
15118: LIST
15119: PUSH
15120: LD_INT 22
15122: PUSH
15123: LD_EXP 3
15127: PUSH
15128: EMPTY
15129: LIST
15130: LIST
15131: PUSH
15132: LD_INT 30
15134: PUSH
15135: LD_INT 31
15137: PUSH
15138: EMPTY
15139: LIST
15140: LIST
15141: PUSH
15142: EMPTY
15143: LIST
15144: LIST
15145: LIST
15146: PPUSH
15147: CALL_OW 70
15151: AND
15152: PUSH
15153: LD_INT 21
15155: PPUSH
15156: LD_INT 52
15158: PUSH
15159: EMPTY
15160: LIST
15161: PUSH
15162: LD_INT 22
15164: PUSH
15165: LD_EXP 3
15169: PUSH
15170: EMPTY
15171: LIST
15172: LIST
15173: PUSH
15174: LD_INT 30
15176: PUSH
15177: LD_INT 32
15179: PUSH
15180: EMPTY
15181: LIST
15182: LIST
15183: PUSH
15184: EMPTY
15185: LIST
15186: LIST
15187: LIST
15188: PPUSH
15189: CALL_OW 70
15193: NOT
15194: AND
15195: IFFALSE 15269
// begin b = FilterUnitsInArea ( Vez4 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_breastwork ] ] ) ;
15197: LD_ADDR_VAR 0 17
15201: PUSH
15202: LD_INT 21
15204: PPUSH
15205: LD_INT 52
15207: PUSH
15208: EMPTY
15209: LIST
15210: PUSH
15211: LD_INT 22
15213: PUSH
15214: LD_EXP 3
15218: PUSH
15219: EMPTY
15220: LIST
15221: LIST
15222: PUSH
15223: LD_INT 30
15225: PUSH
15226: LD_INT 31
15228: PUSH
15229: EMPTY
15230: LIST
15231: LIST
15232: PUSH
15233: EMPTY
15234: LIST
15235: LIST
15236: LIST
15237: PPUSH
15238: CALL_OW 70
15242: ST_TO_ADDR
// VyjdiVen ( un ) ;
15243: LD_VAR 0 16
15247: PPUSH
15248: CALL 2645 0 1
// ComUpgradeBreastwork ( b , 204 , 163 ) ;
15252: LD_VAR 0 17
15256: PPUSH
15257: LD_INT 204
15259: PPUSH
15260: LD_INT 163
15262: PPUSH
15263: CALL 5279 0 3
// end else
15267: GO 15716
// if Postavit_Dul = true and not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_siberite_mine ] ] ) then
15269: LD_EXP 53
15273: PUSH
15274: LD_INT 1
15276: EQUAL
15277: PUSH
15278: LD_INT 52
15280: PUSH
15281: EMPTY
15282: LIST
15283: PUSH
15284: LD_INT 22
15286: PUSH
15287: LD_EXP 3
15291: PUSH
15292: EMPTY
15293: LIST
15294: LIST
15295: PUSH
15296: LD_INT 30
15298: PUSH
15299: LD_INT 30
15301: PUSH
15302: EMPTY
15303: LIST
15304: LIST
15305: PUSH
15306: EMPTY
15307: LIST
15308: LIST
15309: LIST
15310: PPUSH
15311: CALL_OW 69
15315: NOT
15316: AND
15317: IFFALSE 15351
// begin VyjdiVen ( un ) ;
15319: LD_VAR 0 16
15323: PPUSH
15324: CALL 2645 0 1
// ComBuild ( un , b_siberite_mine , 205 , 190 , 2 ) ;
15328: LD_VAR 0 16
15332: PPUSH
15333: LD_INT 30
15335: PPUSH
15336: LD_INT 205
15338: PPUSH
15339: LD_INT 190
15341: PPUSH
15342: LD_INT 2
15344: PPUSH
15345: CALL_OW 145
// end else
15349: GO 15716
// if Postavit_Lab2 = true and not Labak2 then
15351: LD_EXP 55
15355: PUSH
15356: LD_INT 1
15358: EQUAL
15359: PUSH
15360: LD_VAR 0 3
15364: NOT
15365: AND
15366: IFFALSE 15400
// begin VyjdiVen ( un ) ;
15368: LD_VAR 0 16
15372: PPUSH
15373: CALL 2645 0 1
// ComBuild ( un , b_lab , 231 , 180 , 4 ) ;
15377: LD_VAR 0 16
15381: PPUSH
15382: LD_INT 6
15384: PPUSH
15385: LD_INT 231
15387: PPUSH
15388: LD_INT 180
15390: PPUSH
15391: LD_INT 4
15393: PPUSH
15394: CALL_OW 145
// end else
15398: GO 15716
// if Postavit_El3 = true and not El3 then
15400: LD_EXP 54
15404: PUSH
15405: LD_INT 1
15407: EQUAL
15408: PUSH
15409: LD_VAR 0 8
15413: NOT
15414: AND
15415: IFFALSE 15449
// begin VyjdiVen ( un ) ;
15417: LD_VAR 0 16
15421: PPUSH
15422: CALL 2645 0 1
// ComBuild ( un , b_oil_power , 199 , 182 , 0 ) ;
15426: LD_VAR 0 16
15430: PPUSH
15431: LD_INT 26
15433: PPUSH
15434: LD_INT 199
15436: PPUSH
15437: LD_INT 182
15439: PPUSH
15440: LD_INT 0
15442: PPUSH
15443: CALL_OW 145
// end else
15447: GO 15716
// if Postavit_Sib1 = true and not Sib1 then
15449: LD_EXP 56
15453: PUSH
15454: LD_INT 1
15456: EQUAL
15457: PUSH
15458: LD_VAR 0 9
15462: NOT
15463: AND
15464: IFFALSE 15498
// begin VyjdiVen ( un ) ;
15466: LD_VAR 0 16
15470: PPUSH
15471: CALL 2645 0 1
// ComBuild ( un , b_siberite_power , 231 , 191 , 5 ) ;
15475: LD_VAR 0 16
15479: PPUSH
15480: LD_INT 28
15482: PPUSH
15483: LD_INT 231
15485: PPUSH
15486: LD_INT 191
15488: PPUSH
15489: LD_INT 5
15491: PPUSH
15492: CALL_OW 145
// end else
15496: GO 15716
// if Postavit_Sib2 = true and not Sib2 then
15498: LD_EXP 57
15502: PUSH
15503: LD_INT 1
15505: EQUAL
15506: PUSH
15507: LD_VAR 0 10
15511: NOT
15512: AND
15513: IFFALSE 15547
// begin VyjdiVen ( un ) ;
15515: LD_VAR 0 16
15519: PPUSH
15520: CALL 2645 0 1
// ComBuild ( un , b_siberite_power , 203 , 192 , 3 ) ;
15524: LD_VAR 0 16
15528: PPUSH
15529: LD_INT 28
15531: PPUSH
15532: LD_INT 203
15534: PPUSH
15535: LD_INT 192
15537: PPUSH
15538: LD_INT 3
15540: PPUSH
15541: CALL_OW 145
// end else
15545: GO 15716
// if GetListOfCratesInArea ( SpojBaza ) then
15547: LD_INT 8
15549: PPUSH
15550: CALL_OW 435
15554: IFFALSE 15607
// begin bedny = GetListOfCratesInArea ( SpojBaza ) ;
15556: LD_ADDR_VAR 0 21
15560: PUSH
15561: LD_INT 8
15563: PPUSH
15564: CALL_OW 435
15568: ST_TO_ADDR
// VyjdiVen ( un ) ;
15569: LD_VAR 0 16
15573: PPUSH
15574: CALL 2645 0 1
// ComCollect ( un , bedny [ 1 ] , bedny [ 2 ] ) ;
15578: LD_VAR 0 16
15582: PPUSH
15583: LD_VAR 0 21
15587: PUSH
15588: LD_INT 1
15590: ARRAY
15591: PPUSH
15592: LD_VAR 0 21
15596: PUSH
15597: LD_INT 2
15599: ARRAY
15600: PPUSH
15601: CALL_OW 117
// end else
15605: GO 15716
// if not GetLives ( un ) = 1000 then
15607: LD_VAR 0 16
15611: PPUSH
15612: CALL_OW 256
15616: PUSH
15617: LD_INT 1000
15619: EQUAL
15620: NOT
15621: IFFALSE 15672
// begin VyjdiVen ( un ) ;
15623: LD_VAR 0 16
15627: PPUSH
15628: CALL 2645 0 1
// if not IsInArea ( un , leceni ) then
15632: LD_VAR 0 16
15636: PPUSH
15637: LD_INT 12
15639: PPUSH
15640: CALL_OW 308
15644: NOT
15645: IFFALSE 15661
// ComMoveToArea ( un , leceni ) else
15647: LD_VAR 0 16
15651: PPUSH
15652: LD_INT 12
15654: PPUSH
15655: CALL_OW 113
15659: GO 15670
// ComHold ( un ) ;
15661: LD_VAR 0 16
15665: PPUSH
15666: CALL_OW 140
// end else
15670: GO 15716
// if GetLives ( un ) = 1000 then
15672: LD_VAR 0 16
15676: PPUSH
15677: CALL_OW 256
15681: PUSH
15682: LD_INT 1000
15684: EQUAL
15685: IFFALSE 15716
// begin ComFree ( un ) ;
15687: LD_VAR 0 16
15691: PPUSH
15692: CALL_OW 139
// if Sklad then
15696: LD_VAR 0 1
15700: IFFALSE 15716
// ComEnterUnit ( un , Sklad ) ;
15702: LD_VAR 0 16
15706: PPUSH
15707: LD_VAR 0 1
15711: PPUSH
15712: CALL_OW 120
// end ; end ;
15716: GO 13457
15718: POP
15719: POP
// end ; if FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_class , class_scientistic ] ] ) then
15720: LD_INT 50
15722: PUSH
15723: EMPTY
15724: LIST
15725: PUSH
15726: LD_INT 22
15728: PUSH
15729: LD_EXP 3
15733: PUSH
15734: EMPTY
15735: LIST
15736: LIST
15737: PUSH
15738: LD_INT 25
15740: PUSH
15741: LD_INT 4
15743: PUSH
15744: EMPTY
15745: LIST
15746: LIST
15747: PUSH
15748: EMPTY
15749: LIST
15750: LIST
15751: LIST
15752: PPUSH
15753: CALL_OW 69
15757: IFFALSE 16747
// begin Zdravotnici_volni = FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_class , class_scientistic ] ] ) ;
15759: LD_ADDR_VAR 0 12
15763: PUSH
15764: LD_INT 50
15766: PUSH
15767: EMPTY
15768: LIST
15769: PUSH
15770: LD_INT 22
15772: PUSH
15773: LD_EXP 3
15777: PUSH
15778: EMPTY
15779: LIST
15780: LIST
15781: PUSH
15782: LD_INT 25
15784: PUSH
15785: LD_INT 4
15787: PUSH
15788: EMPTY
15789: LIST
15790: LIST
15791: PUSH
15792: EMPTY
15793: LIST
15794: LIST
15795: LIST
15796: PPUSH
15797: CALL_OW 69
15801: ST_TO_ADDR
// for un in Zdravotnici_volni do
15802: LD_ADDR_VAR 0 16
15806: PUSH
15807: LD_VAR 0 12
15811: PUSH
15812: FOR_IN
15813: IFFALSE 16745
// begin if GetLives ( un ) < 550 then
15815: LD_VAR 0 16
15819: PPUSH
15820: CALL_OW 256
15824: PUSH
15825: LD_INT 550
15827: LESS
15828: IFFALSE 16021
// begin VyjdiVen ( un ) ;
15830: LD_VAR 0 16
15834: PPUSH
15835: CALL 2645 0 1
// if not IsInArea ( un , leceni ) then
15839: LD_VAR 0 16
15843: PPUSH
15844: LD_INT 12
15846: PPUSH
15847: CALL_OW 308
15851: NOT
15852: IFFALSE 15868
// ComMoveToArea ( un , leceni ) else
15854: LD_VAR 0 16
15858: PPUSH
15859: LD_INT 12
15861: PPUSH
15862: CALL_OW 113
15866: GO 16019
// if FilterUnitsInArea ( leceni , [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) + 0 > 1 then
15868: LD_INT 12
15870: PPUSH
15871: LD_INT 52
15873: PUSH
15874: EMPTY
15875: LIST
15876: PUSH
15877: LD_INT 22
15879: PUSH
15880: LD_EXP 3
15884: PUSH
15885: EMPTY
15886: LIST
15887: LIST
15888: PUSH
15889: LD_INT 21
15891: PUSH
15892: LD_INT 1
15894: PUSH
15895: EMPTY
15896: LIST
15897: LIST
15898: PUSH
15899: LD_INT 3
15901: PUSH
15902: LD_INT 24
15904: PUSH
15905: LD_INT 1000
15907: PUSH
15908: EMPTY
15909: LIST
15910: LIST
15911: PUSH
15912: EMPTY
15913: LIST
15914: LIST
15915: PUSH
15916: EMPTY
15917: LIST
15918: LIST
15919: LIST
15920: LIST
15921: PPUSH
15922: CALL_OW 70
15926: PUSH
15927: LD_INT 0
15929: PLUS
15930: PUSH
15931: LD_INT 1
15933: GREATER
15934: IFFALSE 16010
// ComHeal ( un , FilterUnitsInArea ( leceni , [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) [ 1 ] ) else
15936: LD_VAR 0 16
15940: PPUSH
15941: LD_INT 12
15943: PPUSH
15944: LD_INT 52
15946: PUSH
15947: EMPTY
15948: LIST
15949: PUSH
15950: LD_INT 22
15952: PUSH
15953: LD_EXP 3
15957: PUSH
15958: EMPTY
15959: LIST
15960: LIST
15961: PUSH
15962: LD_INT 21
15964: PUSH
15965: LD_INT 1
15967: PUSH
15968: EMPTY
15969: LIST
15970: LIST
15971: PUSH
15972: LD_INT 3
15974: PUSH
15975: LD_INT 24
15977: PUSH
15978: LD_INT 1000
15980: PUSH
15981: EMPTY
15982: LIST
15983: LIST
15984: PUSH
15985: EMPTY
15986: LIST
15987: LIST
15988: PUSH
15989: EMPTY
15990: LIST
15991: LIST
15992: LIST
15993: LIST
15994: PPUSH
15995: CALL_OW 70
15999: PUSH
16000: LD_INT 1
16002: ARRAY
16003: PPUSH
16004: CALL_OW 128
16008: GO 16019
// ComHold ( un ) ;
16010: LD_VAR 0 16
16014: PPUSH
16015: CALL_OW 140
// end else
16019: GO 16743
// if Hledac_loziska and un = Hledac_loziska then
16021: LD_EXP 66
16025: PUSH
16026: LD_VAR 0 16
16030: PUSH
16031: LD_EXP 66
16035: EQUAL
16036: AND
16037: IFFALSE 16041
// else
16039: GO 16743
// if FilterUnitsInArea ( Leceni_velke , [ [ f_placed ] , [ f_or , [ f_side , You2 ] , [ f_side , You ] ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 250 ] ] ] ) then
16041: LD_INT 14
16043: PPUSH
16044: LD_INT 52
16046: PUSH
16047: EMPTY
16048: LIST
16049: PUSH
16050: LD_INT 2
16052: PUSH
16053: LD_INT 22
16055: PUSH
16056: LD_EXP 3
16060: PUSH
16061: EMPTY
16062: LIST
16063: LIST
16064: PUSH
16065: LD_INT 22
16067: PUSH
16068: LD_EXP 2
16072: PUSH
16073: EMPTY
16074: LIST
16075: LIST
16076: PUSH
16077: EMPTY
16078: LIST
16079: LIST
16080: LIST
16081: PUSH
16082: LD_INT 21
16084: PUSH
16085: LD_INT 1
16087: PUSH
16088: EMPTY
16089: LIST
16090: LIST
16091: PUSH
16092: LD_INT 3
16094: PUSH
16095: LD_INT 24
16097: PUSH
16098: LD_INT 250
16100: PUSH
16101: EMPTY
16102: LIST
16103: LIST
16104: PUSH
16105: EMPTY
16106: LIST
16107: LIST
16108: PUSH
16109: EMPTY
16110: LIST
16111: LIST
16112: LIST
16113: LIST
16114: PPUSH
16115: CALL_OW 70
16119: IFFALSE 16234
// begin i = FilterUnitsInArea ( Leceni_velke , [ [ f_placed ] , [ f_or , [ f_side , You2 ] , [ f_side , You ] ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 250 ] ] ] ) [ 1 ] ;
16121: LD_ADDR_VAR 0 19
16125: PUSH
16126: LD_INT 14
16128: PPUSH
16129: LD_INT 52
16131: PUSH
16132: EMPTY
16133: LIST
16134: PUSH
16135: LD_INT 2
16137: PUSH
16138: LD_INT 22
16140: PUSH
16141: LD_EXP 3
16145: PUSH
16146: EMPTY
16147: LIST
16148: LIST
16149: PUSH
16150: LD_INT 22
16152: PUSH
16153: LD_EXP 2
16157: PUSH
16158: EMPTY
16159: LIST
16160: LIST
16161: PUSH
16162: EMPTY
16163: LIST
16164: LIST
16165: LIST
16166: PUSH
16167: LD_INT 21
16169: PUSH
16170: LD_INT 1
16172: PUSH
16173: EMPTY
16174: LIST
16175: LIST
16176: PUSH
16177: LD_INT 3
16179: PUSH
16180: LD_INT 24
16182: PUSH
16183: LD_INT 250
16185: PUSH
16186: EMPTY
16187: LIST
16188: LIST
16189: PUSH
16190: EMPTY
16191: LIST
16192: LIST
16193: PUSH
16194: EMPTY
16195: LIST
16196: LIST
16197: LIST
16198: LIST
16199: PPUSH
16200: CALL_OW 70
16204: PUSH
16205: LD_INT 1
16207: ARRAY
16208: ST_TO_ADDR
// VyjdiVen ( un ) ;
16209: LD_VAR 0 16
16213: PPUSH
16214: CALL 2645 0 1
// ComHeal ( un , i ) ;
16218: LD_VAR 0 16
16222: PPUSH
16223: LD_VAR 0 19
16227: PPUSH
16228: CALL_OW 128
// end else
16232: GO 16743
// if FilterUnitsInArea ( leceni , [ [ f_placed ] , [ f_or , [ f_side , You2 ] , [ f_side , You ] ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
16234: LD_INT 12
16236: PPUSH
16237: LD_INT 52
16239: PUSH
16240: EMPTY
16241: LIST
16242: PUSH
16243: LD_INT 2
16245: PUSH
16246: LD_INT 22
16248: PUSH
16249: LD_EXP 3
16253: PUSH
16254: EMPTY
16255: LIST
16256: LIST
16257: PUSH
16258: LD_INT 22
16260: PUSH
16261: LD_EXP 2
16265: PUSH
16266: EMPTY
16267: LIST
16268: LIST
16269: PUSH
16270: EMPTY
16271: LIST
16272: LIST
16273: LIST
16274: PUSH
16275: LD_INT 21
16277: PUSH
16278: LD_INT 1
16280: PUSH
16281: EMPTY
16282: LIST
16283: LIST
16284: PUSH
16285: LD_INT 3
16287: PUSH
16288: LD_INT 24
16290: PUSH
16291: LD_INT 1000
16293: PUSH
16294: EMPTY
16295: LIST
16296: LIST
16297: PUSH
16298: EMPTY
16299: LIST
16300: LIST
16301: PUSH
16302: EMPTY
16303: LIST
16304: LIST
16305: LIST
16306: LIST
16307: PPUSH
16308: CALL_OW 70
16312: IFFALSE 16427
// begin i = FilterUnitsInArea ( leceni2 , [ [ f_placed ] , [ f_or , [ f_side , You2 ] , [ f_side , You ] ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) [ 1 ] ;
16314: LD_ADDR_VAR 0 19
16318: PUSH
16319: LD_INT 22
16321: PPUSH
16322: LD_INT 52
16324: PUSH
16325: EMPTY
16326: LIST
16327: PUSH
16328: LD_INT 2
16330: PUSH
16331: LD_INT 22
16333: PUSH
16334: LD_EXP 3
16338: PUSH
16339: EMPTY
16340: LIST
16341: LIST
16342: PUSH
16343: LD_INT 22
16345: PUSH
16346: LD_EXP 2
16350: PUSH
16351: EMPTY
16352: LIST
16353: LIST
16354: PUSH
16355: EMPTY
16356: LIST
16357: LIST
16358: LIST
16359: PUSH
16360: LD_INT 21
16362: PUSH
16363: LD_INT 1
16365: PUSH
16366: EMPTY
16367: LIST
16368: LIST
16369: PUSH
16370: LD_INT 3
16372: PUSH
16373: LD_INT 24
16375: PUSH
16376: LD_INT 1000
16378: PUSH
16379: EMPTY
16380: LIST
16381: LIST
16382: PUSH
16383: EMPTY
16384: LIST
16385: LIST
16386: PUSH
16387: EMPTY
16388: LIST
16389: LIST
16390: LIST
16391: LIST
16392: PPUSH
16393: CALL_OW 70
16397: PUSH
16398: LD_INT 1
16400: ARRAY
16401: ST_TO_ADDR
// VyjdiVen ( un ) ;
16402: LD_VAR 0 16
16406: PPUSH
16407: CALL 2645 0 1
// ComHeal ( un , i ) ;
16411: LD_VAR 0 16
16415: PPUSH
16416: LD_VAR 0 19
16420: PPUSH
16421: CALL_OW 128
// end else
16425: GO 16743
// if not GetLives ( un ) = 1000 then
16427: LD_VAR 0 16
16431: PPUSH
16432: CALL_OW 256
16436: PUSH
16437: LD_INT 1000
16439: EQUAL
16440: NOT
16441: IFFALSE 16492
// begin VyjdiVen ( un ) ;
16443: LD_VAR 0 16
16447: PPUSH
16448: CALL 2645 0 1
// if not IsInArea ( un , leceni ) then
16452: LD_VAR 0 16
16456: PPUSH
16457: LD_INT 12
16459: PPUSH
16460: CALL_OW 308
16464: NOT
16465: IFFALSE 16481
// ComMoveToArea ( un , leceni ) else
16467: LD_VAR 0 16
16471: PPUSH
16472: LD_INT 12
16474: PPUSH
16475: CALL_OW 113
16479: GO 16490
// ComHold ( un ) ;
16481: LD_VAR 0 16
16485: PPUSH
16486: CALL_OW 140
// end else
16490: GO 16743
// if GetLives ( un ) = 1000 then
16492: LD_VAR 0 16
16496: PPUSH
16497: CALL_OW 256
16501: PUSH
16502: LD_INT 1000
16504: EQUAL
16505: IFFALSE 16743
// begin if Labak1 and GetTech ( Last_Tech2 , You2 ) = state_enabled and IsOutside ( un ) then
16507: LD_VAR 0 2
16511: PUSH
16512: LD_LOC 5
16516: PPUSH
16517: LD_EXP 3
16521: PPUSH
16522: CALL_OW 321
16526: PUSH
16527: LD_INT 1
16529: EQUAL
16530: AND
16531: PUSH
16532: LD_VAR 0 16
16536: PPUSH
16537: CALL 2607 0 1
16541: AND
16542: IFFALSE 16560
// ComEnterUnit ( un , Labak1 ) else
16544: LD_VAR 0 16
16548: PPUSH
16549: LD_VAR 0 2
16553: PPUSH
16554: CALL_OW 120
16558: GO 16743
// if Labak2 and GetTech ( Last_Tech2 , You2 ) = state_researched and not IsInUnit ( un ) = Labak2 then
16560: LD_VAR 0 3
16564: PUSH
16565: LD_LOC 5
16569: PPUSH
16570: LD_EXP 3
16574: PPUSH
16575: CALL_OW 321
16579: PUSH
16580: LD_INT 2
16582: EQUAL
16583: AND
16584: PUSH
16585: LD_VAR 0 16
16589: PPUSH
16590: CALL_OW 310
16594: PUSH
16595: LD_VAR 0 3
16599: EQUAL
16600: NOT
16601: AND
16602: IFFALSE 16629
// begin VyjdiVen ( un ) ;
16604: LD_VAR 0 16
16608: PPUSH
16609: CALL 2645 0 1
// ComEnterUnit ( un , Labak2 ) ;
16613: LD_VAR 0 16
16617: PPUSH
16618: LD_VAR 0 3
16622: PPUSH
16623: CALL_OW 120
// end else
16627: GO 16743
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_constructed ] ] ) then
16629: LD_INT 52
16631: PUSH
16632: EMPTY
16633: LIST
16634: PUSH
16635: LD_INT 22
16637: PUSH
16638: LD_EXP 3
16642: PUSH
16643: EMPTY
16644: LIST
16645: LIST
16646: PUSH
16647: LD_INT 21
16649: PUSH
16650: LD_INT 3
16652: PUSH
16653: EMPTY
16654: LIST
16655: LIST
16656: PUSH
16657: LD_INT 57
16659: PUSH
16660: EMPTY
16661: LIST
16662: PUSH
16663: EMPTY
16664: LIST
16665: LIST
16666: LIST
16667: LIST
16668: PPUSH
16669: CALL_OW 69
16673: IFFALSE 16743
// begin b = FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_constructed ] ] ) ;
16675: LD_ADDR_VAR 0 17
16679: PUSH
16680: LD_INT 52
16682: PUSH
16683: EMPTY
16684: LIST
16685: PUSH
16686: LD_INT 22
16688: PUSH
16689: LD_EXP 3
16693: PUSH
16694: EMPTY
16695: LIST
16696: LIST
16697: PUSH
16698: LD_INT 21
16700: PUSH
16701: LD_INT 3
16703: PUSH
16704: EMPTY
16705: LIST
16706: LIST
16707: PUSH
16708: LD_INT 57
16710: PUSH
16711: EMPTY
16712: LIST
16713: PUSH
16714: EMPTY
16715: LIST
16716: LIST
16717: LIST
16718: LIST
16719: PPUSH
16720: CALL_OW 69
16724: ST_TO_ADDR
// ComRepairBuilding ( un , b [ 1 ] ) ;
16725: LD_VAR 0 16
16729: PPUSH
16730: LD_VAR 0 17
16734: PUSH
16735: LD_INT 1
16737: ARRAY
16738: PPUSH
16739: CALL_OW 130
// end ; end ; end ;
16743: GO 15812
16745: POP
16746: POP
// end ; if FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_or , [ f_class , class_soldier ] , [ f_class , class_bazooker ] ] ] ) then
16747: LD_INT 50
16749: PUSH
16750: EMPTY
16751: LIST
16752: PUSH
16753: LD_INT 22
16755: PUSH
16756: LD_EXP 3
16760: PUSH
16761: EMPTY
16762: LIST
16763: LIST
16764: PUSH
16765: LD_INT 2
16767: PUSH
16768: LD_INT 25
16770: PUSH
16771: LD_INT 1
16773: PUSH
16774: EMPTY
16775: LIST
16776: LIST
16777: PUSH
16778: LD_INT 25
16780: PUSH
16781: LD_INT 9
16783: PUSH
16784: EMPTY
16785: LIST
16786: LIST
16787: PUSH
16788: EMPTY
16789: LIST
16790: LIST
16791: LIST
16792: PUSH
16793: EMPTY
16794: LIST
16795: LIST
16796: LIST
16797: PPUSH
16798: CALL_OW 69
16802: IFFALSE 17635
// begin Vojaci_volni = FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_or , [ f_class , class_soldier ] , [ f_class , class_bazooker ] ] ] ) ;
16804: LD_ADDR_VAR 0 13
16808: PUSH
16809: LD_INT 50
16811: PUSH
16812: EMPTY
16813: LIST
16814: PUSH
16815: LD_INT 22
16817: PUSH
16818: LD_EXP 3
16822: PUSH
16823: EMPTY
16824: LIST
16825: LIST
16826: PUSH
16827: LD_INT 2
16829: PUSH
16830: LD_INT 25
16832: PUSH
16833: LD_INT 1
16835: PUSH
16836: EMPTY
16837: LIST
16838: LIST
16839: PUSH
16840: LD_INT 25
16842: PUSH
16843: LD_INT 9
16845: PUSH
16846: EMPTY
16847: LIST
16848: LIST
16849: PUSH
16850: EMPTY
16851: LIST
16852: LIST
16853: LIST
16854: PUSH
16855: EMPTY
16856: LIST
16857: LIST
16858: LIST
16859: PPUSH
16860: CALL_OW 69
16864: ST_TO_ADDR
// for un in Vojaci_volni do
16865: LD_ADDR_VAR 0 16
16869: PUSH
16870: LD_VAR 0 13
16874: PUSH
16875: FOR_IN
16876: IFFALSE 17633
// begin if GetLives ( un ) < 550 then
16878: LD_VAR 0 16
16882: PPUSH
16883: CALL_OW 256
16887: PUSH
16888: LD_INT 550
16890: LESS
16891: IFFALSE 16942
// begin VyjdiVen ( un ) ;
16893: LD_VAR 0 16
16897: PPUSH
16898: CALL 2645 0 1
// if not IsInArea ( un , leceni ) then
16902: LD_VAR 0 16
16906: PPUSH
16907: LD_INT 12
16909: PPUSH
16910: CALL_OW 308
16914: NOT
16915: IFFALSE 16931
// ComMoveToArea ( un , leceni ) else
16917: LD_VAR 0 16
16921: PPUSH
16922: LD_INT 12
16924: PPUSH
16925: CALL_OW 113
16929: GO 16940
// ComHold ( un ) ;
16931: LD_VAR 0 16
16935: PPUSH
16936: CALL_OW 140
// end else
16940: GO 17631
// if GetLives ( un ) < 1000 and IsInArea ( un , leceni ) then
16942: LD_VAR 0 16
16946: PPUSH
16947: CALL_OW 256
16951: PUSH
16952: LD_INT 1000
16954: LESS
16955: PUSH
16956: LD_VAR 0 16
16960: PPUSH
16961: LD_INT 12
16963: PPUSH
16964: CALL_OW 308
16968: AND
16969: IFFALSE 16973
// else
16971: GO 17631
// if not IsInArea ( un , RuBaza2 ) then
16973: LD_VAR 0 16
16977: PPUSH
16978: LD_INT 13
16980: PPUSH
16981: CALL_OW 308
16985: NOT
16986: IFFALSE 17002
// ComMoveToArea ( un , RuBaza2 ) else
16988: LD_VAR 0 16
16992: PPUSH
16993: LD_INT 13
16995: PPUSH
16996: CALL_OW 113
17000: GO 17631
// if not GetLives ( un ) = 1000 then
17002: LD_VAR 0 16
17006: PPUSH
17007: CALL_OW 256
17011: PUSH
17012: LD_INT 1000
17014: EQUAL
17015: NOT
17016: IFFALSE 17067
// begin VyjdiVen ( un ) ;
17018: LD_VAR 0 16
17022: PPUSH
17023: CALL 2645 0 1
// if not IsInArea ( un , leceni ) then
17027: LD_VAR 0 16
17031: PPUSH
17032: LD_INT 12
17034: PPUSH
17035: CALL_OW 308
17039: NOT
17040: IFFALSE 17056
// ComMoveToArea ( un , leceni ) else
17042: LD_VAR 0 16
17046: PPUSH
17047: LD_INT 12
17049: PPUSH
17050: CALL_OW 113
17054: GO 17065
// ComHold ( un ) ;
17056: LD_VAR 0 16
17060: PPUSH
17061: CALL_OW 140
// end else
17065: GO 17631
// if GetLives ( un ) = 1000 then
17067: LD_VAR 0 16
17071: PPUSH
17072: CALL_OW 256
17076: PUSH
17077: LD_INT 1000
17079: EQUAL
17080: IFFALSE 17631
// begin if GetClass ( un ) = class_bazooker and IsInUnit ( un ) and Bazuka_FireTime and FilterUnitsInArea ( Bazuker , [ [ f_or , [ f_side , Amik ] , [ f_side , Amik2 ] ] , [ f_lives , 250 ] ] ) then
17082: LD_VAR 0 16
17086: PPUSH
17087: CALL_OW 257
17091: PUSH
17092: LD_INT 9
17094: EQUAL
17095: PUSH
17096: LD_VAR 0 16
17100: PPUSH
17101: CALL_OW 310
17105: AND
17106: PUSH
17107: LD_EXP 71
17111: AND
17112: PUSH
17113: LD_INT 37
17115: PPUSH
17116: LD_INT 2
17118: PUSH
17119: LD_INT 22
17121: PUSH
17122: LD_EXP 4
17126: PUSH
17127: EMPTY
17128: LIST
17129: LIST
17130: PUSH
17131: LD_INT 22
17133: PUSH
17134: LD_EXP 5
17138: PUSH
17139: EMPTY
17140: LIST
17141: LIST
17142: PUSH
17143: EMPTY
17144: LIST
17145: LIST
17146: LIST
17147: PUSH
17148: LD_INT 24
17150: PUSH
17151: LD_INT 250
17153: PUSH
17154: EMPTY
17155: LIST
17156: LIST
17157: PUSH
17158: EMPTY
17159: LIST
17160: LIST
17161: PPUSH
17162: CALL_OW 70
17166: AND
17167: IFFALSE 17272
// begin Target = FilterUnitsInArea ( Bazuker , [ [ f_or , [ f_side , Amik ] , [ f_side , Amik2 ] ] , [ f_lives , 250 ] ] ) [ 1 ] ;
17169: LD_ADDR_VAR 0 25
17173: PUSH
17174: LD_INT 37
17176: PPUSH
17177: LD_INT 2
17179: PUSH
17180: LD_INT 22
17182: PUSH
17183: LD_EXP 4
17187: PUSH
17188: EMPTY
17189: LIST
17190: LIST
17191: PUSH
17192: LD_INT 22
17194: PUSH
17195: LD_EXP 5
17199: PUSH
17200: EMPTY
17201: LIST
17202: LIST
17203: PUSH
17204: EMPTY
17205: LIST
17206: LIST
17207: LIST
17208: PUSH
17209: LD_INT 24
17211: PUSH
17212: LD_INT 250
17214: PUSH
17215: EMPTY
17216: LIST
17217: LIST
17218: PUSH
17219: EMPTY
17220: LIST
17221: LIST
17222: PPUSH
17223: CALL_OW 70
17227: PUSH
17228: LD_INT 1
17230: ARRAY
17231: ST_TO_ADDR
// if Prob ( 5 ) then
17232: LD_INT 5
17234: PPUSH
17235: CALL_OW 13
17239: IFFALSE 17270
// ComTimeShift ( un , GetX ( Target ) , GetY ( Target ) ) ;
17241: LD_VAR 0 16
17245: PPUSH
17246: LD_VAR 0 25
17250: PPUSH
17251: CALL_OW 250
17255: PPUSH
17256: LD_VAR 0 25
17260: PPUSH
17261: CALL_OW 251
17265: PPUSH
17266: CALL_OW 154
// end else
17270: GO 17631
// if volne_bunkry and IsOutside ( un ) and GetClass ( un ) = 1 then
17272: LD_VAR 0 24
17276: PUSH
17277: LD_VAR 0 16
17281: PPUSH
17282: CALL 2607 0 1
17286: AND
17287: PUSH
17288: LD_VAR 0 16
17292: PPUSH
17293: CALL_OW 257
17297: PUSH
17298: LD_INT 1
17300: EQUAL
17301: AND
17302: IFFALSE 17324
// ComEnterUnit ( un , volne_bunkry [ 1 ] ) else
17304: LD_VAR 0 16
17308: PPUSH
17309: LD_VAR 0 24
17313: PUSH
17314: LD_INT 1
17316: ARRAY
17317: PPUSH
17318: CALL_OW 120
17322: GO 17631
// if volne_bunkry and Zbrojka and UnitsInside ( Zbrojka ) and not FilterAllUnits ( [ [ f_lives , 1000 ] , [ f_side , You2 ] , [ f_class , class_soldier ] , [ f_outside ] ] ) then
17324: LD_VAR 0 24
17328: PUSH
17329: LD_VAR 0 4
17333: AND
17334: PUSH
17335: LD_VAR 0 4
17339: PPUSH
17340: CALL_OW 313
17344: AND
17345: PUSH
17346: LD_INT 24
17348: PUSH
17349: LD_INT 1000
17351: PUSH
17352: EMPTY
17353: LIST
17354: LIST
17355: PUSH
17356: LD_INT 22
17358: PUSH
17359: LD_EXP 3
17363: PUSH
17364: EMPTY
17365: LIST
17366: LIST
17367: PUSH
17368: LD_INT 25
17370: PUSH
17371: LD_INT 1
17373: PUSH
17374: EMPTY
17375: LIST
17376: LIST
17377: PUSH
17378: LD_INT 56
17380: PUSH
17381: EMPTY
17382: LIST
17383: PUSH
17384: EMPTY
17385: LIST
17386: LIST
17387: LIST
17388: LIST
17389: PPUSH
17390: CALL_OW 69
17394: NOT
17395: AND
17396: IFFALSE 17469
// begin if un in UnitsInside ( Zbrojka ) and GetClass ( un ) = 1 then
17398: LD_VAR 0 16
17402: PUSH
17403: LD_VAR 0 4
17407: PPUSH
17408: CALL_OW 313
17412: IN
17413: PUSH
17414: LD_VAR 0 16
17418: PPUSH
17419: CALL_OW 257
17423: PUSH
17424: LD_INT 1
17426: EQUAL
17427: AND
17428: IFFALSE 17467
// begin b = volne_bunkry [ 1 ] ;
17430: LD_ADDR_VAR 0 17
17434: PUSH
17435: LD_VAR 0 24
17439: PUSH
17440: LD_INT 1
17442: ARRAY
17443: ST_TO_ADDR
// VyjdiVen ( un ) ;
17444: LD_VAR 0 16
17448: PPUSH
17449: CALL 2645 0 1
// ComEnterUnit ( un , b ) ;
17453: LD_VAR 0 16
17457: PPUSH
17458: LD_VAR 0 17
17462: PPUSH
17463: CALL_OW 120
// end ; end else
17467: GO 17631
// if Zbrojka and IsOutside ( un ) and UnitsInside ( Zbrojka ) < 6 then
17469: LD_VAR 0 4
17473: PUSH
17474: LD_VAR 0 16
17478: PPUSH
17479: CALL 2607 0 1
17483: AND
17484: PUSH
17485: LD_VAR 0 4
17489: PPUSH
17490: CALL_OW 313
17494: PUSH
17495: LD_INT 6
17497: LESS
17498: AND
17499: IFFALSE 17517
// ComEnterUnit ( un , Zbrojka ) else
17501: LD_VAR 0 16
17505: PPUSH
17506: LD_VAR 0 4
17510: PPUSH
17511: CALL_OW 120
17515: GO 17631
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_constructed ] ] ) then
17517: LD_INT 52
17519: PUSH
17520: EMPTY
17521: LIST
17522: PUSH
17523: LD_INT 22
17525: PUSH
17526: LD_EXP 3
17530: PUSH
17531: EMPTY
17532: LIST
17533: LIST
17534: PUSH
17535: LD_INT 21
17537: PUSH
17538: LD_INT 3
17540: PUSH
17541: EMPTY
17542: LIST
17543: LIST
17544: PUSH
17545: LD_INT 57
17547: PUSH
17548: EMPTY
17549: LIST
17550: PUSH
17551: EMPTY
17552: LIST
17553: LIST
17554: LIST
17555: LIST
17556: PPUSH
17557: CALL_OW 69
17561: IFFALSE 17631
// begin b = FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_constructed ] ] ) ;
17563: LD_ADDR_VAR 0 17
17567: PUSH
17568: LD_INT 52
17570: PUSH
17571: EMPTY
17572: LIST
17573: PUSH
17574: LD_INT 22
17576: PUSH
17577: LD_EXP 3
17581: PUSH
17582: EMPTY
17583: LIST
17584: LIST
17585: PUSH
17586: LD_INT 21
17588: PUSH
17589: LD_INT 3
17591: PUSH
17592: EMPTY
17593: LIST
17594: LIST
17595: PUSH
17596: LD_INT 57
17598: PUSH
17599: EMPTY
17600: LIST
17601: PUSH
17602: EMPTY
17603: LIST
17604: LIST
17605: LIST
17606: LIST
17607: PPUSH
17608: CALL_OW 69
17612: ST_TO_ADDR
// ComRepairBuilding ( un , b [ 1 ] ) ;
17613: LD_VAR 0 16
17617: PPUSH
17618: LD_VAR 0 17
17622: PUSH
17623: LD_INT 1
17625: ARRAY
17626: PPUSH
17627: CALL_OW 130
// end ; end ; end ;
17631: GO 16875
17633: POP
17634: POP
// end ; if GetTech ( tech_bazooka , You2 ) = state_researched and UnitsInside ( Zbrojka ) and not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_class , class_bazooker ] ] ) then
17635: LD_INT 44
17637: PPUSH
17638: LD_EXP 3
17642: PPUSH
17643: CALL_OW 321
17647: PUSH
17648: LD_INT 2
17650: EQUAL
17651: PUSH
17652: LD_VAR 0 4
17656: PPUSH
17657: CALL_OW 313
17661: AND
17662: PUSH
17663: LD_INT 52
17665: PUSH
17666: EMPTY
17667: LIST
17668: PUSH
17669: LD_INT 22
17671: PUSH
17672: LD_EXP 3
17676: PUSH
17677: EMPTY
17678: LIST
17679: LIST
17680: PUSH
17681: LD_INT 25
17683: PUSH
17684: LD_INT 9
17686: PUSH
17687: EMPTY
17688: LIST
17689: LIST
17690: PUSH
17691: EMPTY
17692: LIST
17693: LIST
17694: LIST
17695: PPUSH
17696: CALL_OW 69
17700: NOT
17701: AND
17702: IFFALSE 17725
// SetClass ( UnitsInside ( Zbrojka ) [ 1 ] , class_bazooker ) ;
17704: LD_VAR 0 4
17708: PPUSH
17709: CALL_OW 313
17713: PUSH
17714: LD_INT 1
17716: ARRAY
17717: PPUSH
17718: LD_INT 9
17720: PPUSH
17721: CALL_OW 336
// if FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_class , class_mechanic ] ] ) then
17725: LD_INT 50
17727: PUSH
17728: EMPTY
17729: LIST
17730: PUSH
17731: LD_INT 22
17733: PUSH
17734: LD_EXP 3
17738: PUSH
17739: EMPTY
17740: LIST
17741: LIST
17742: PUSH
17743: LD_INT 25
17745: PUSH
17746: LD_INT 3
17748: PUSH
17749: EMPTY
17750: LIST
17751: LIST
17752: PUSH
17753: EMPTY
17754: LIST
17755: LIST
17756: LIST
17757: PPUSH
17758: CALL_OW 69
17762: IFFALSE 18667
// begin Mechanici_volni = FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_class , class_mechanic ] ] ) ;
17764: LD_ADDR_VAR 0 14
17768: PUSH
17769: LD_INT 50
17771: PUSH
17772: EMPTY
17773: LIST
17774: PUSH
17775: LD_INT 22
17777: PUSH
17778: LD_EXP 3
17782: PUSH
17783: EMPTY
17784: LIST
17785: LIST
17786: PUSH
17787: LD_INT 25
17789: PUSH
17790: LD_INT 3
17792: PUSH
17793: EMPTY
17794: LIST
17795: LIST
17796: PUSH
17797: EMPTY
17798: LIST
17799: LIST
17800: LIST
17801: PPUSH
17802: CALL_OW 69
17806: ST_TO_ADDR
// for un in Mechanici_volni do
17807: LD_ADDR_VAR 0 16
17811: PUSH
17812: LD_VAR 0 14
17816: PUSH
17817: FOR_IN
17818: IFFALSE 18665
// begin if GetLives ( un ) < 550 then
17820: LD_VAR 0 16
17824: PPUSH
17825: CALL_OW 256
17829: PUSH
17830: LD_INT 550
17832: LESS
17833: IFFALSE 17884
// begin VyjdiVen ( un ) ;
17835: LD_VAR 0 16
17839: PPUSH
17840: CALL 2645 0 1
// if not IsInArea ( un , leceni ) then
17844: LD_VAR 0 16
17848: PPUSH
17849: LD_INT 12
17851: PPUSH
17852: CALL_OW 308
17856: NOT
17857: IFFALSE 17873
// ComMoveToArea ( un , leceni ) else
17859: LD_VAR 0 16
17863: PPUSH
17864: LD_INT 12
17866: PPUSH
17867: CALL_OW 113
17871: GO 17882
// ComHold ( un ) ;
17873: LD_VAR 0 16
17877: PPUSH
17878: CALL_OW 140
// end else
17882: GO 18663
// if GetLives ( un ) < 1000 and IsInArea ( un , leceni ) then
17884: LD_VAR 0 16
17888: PPUSH
17889: CALL_OW 256
17893: PUSH
17894: LD_INT 1000
17896: LESS
17897: PUSH
17898: LD_VAR 0 16
17902: PPUSH
17903: LD_INT 12
17905: PPUSH
17906: CALL_OW 308
17910: AND
17911: IFFALSE 17915
// else
17913: GO 18663
// if not IsInArea ( un , RuBaza2 ) then
17915: LD_VAR 0 16
17919: PPUSH
17920: LD_INT 13
17922: PPUSH
17923: CALL_OW 308
17927: NOT
17928: IFFALSE 17944
// ComMoveToArea ( un , RuBaza2 ) else
17930: LD_VAR 0 16
17934: PPUSH
17935: LD_INT 13
17937: PPUSH
17938: CALL_OW 113
17942: GO 18663
// if FilterUnitsInArea ( RuBaza2 , [ [ f_placed ] , [ f_or , [ f_side , You2 ] , [ f_side , You ] ] , [ f_type , unit_vehicle ] , [ f_not , [ f_lives , 250 ] ] ] ) then
17944: LD_INT 13
17946: PPUSH
17947: LD_INT 52
17949: PUSH
17950: EMPTY
17951: LIST
17952: PUSH
17953: LD_INT 2
17955: PUSH
17956: LD_INT 22
17958: PUSH
17959: LD_EXP 3
17963: PUSH
17964: EMPTY
17965: LIST
17966: LIST
17967: PUSH
17968: LD_INT 22
17970: PUSH
17971: LD_EXP 2
17975: PUSH
17976: EMPTY
17977: LIST
17978: LIST
17979: PUSH
17980: EMPTY
17981: LIST
17982: LIST
17983: LIST
17984: PUSH
17985: LD_INT 21
17987: PUSH
17988: LD_INT 2
17990: PUSH
17991: EMPTY
17992: LIST
17993: LIST
17994: PUSH
17995: LD_INT 3
17997: PUSH
17998: LD_INT 24
18000: PUSH
18001: LD_INT 250
18003: PUSH
18004: EMPTY
18005: LIST
18006: LIST
18007: PUSH
18008: EMPTY
18009: LIST
18010: LIST
18011: PUSH
18012: EMPTY
18013: LIST
18014: LIST
18015: LIST
18016: LIST
18017: PPUSH
18018: CALL_OW 70
18022: IFFALSE 18137
// begin v = FilterUnitsInArea ( RuBaza2 , [ [ f_placed ] , [ f_or , [ f_side , You2 ] , [ f_side , You ] ] , [ f_type , unit_vehicle ] , [ f_not , [ f_lives , 250 ] ] ] ) ;
18024: LD_ADDR_VAR 0 18
18028: PUSH
18029: LD_INT 13
18031: PPUSH
18032: LD_INT 52
18034: PUSH
18035: EMPTY
18036: LIST
18037: PUSH
18038: LD_INT 2
18040: PUSH
18041: LD_INT 22
18043: PUSH
18044: LD_EXP 3
18048: PUSH
18049: EMPTY
18050: LIST
18051: LIST
18052: PUSH
18053: LD_INT 22
18055: PUSH
18056: LD_EXP 2
18060: PUSH
18061: EMPTY
18062: LIST
18063: LIST
18064: PUSH
18065: EMPTY
18066: LIST
18067: LIST
18068: LIST
18069: PUSH
18070: LD_INT 21
18072: PUSH
18073: LD_INT 2
18075: PUSH
18076: EMPTY
18077: LIST
18078: LIST
18079: PUSH
18080: LD_INT 3
18082: PUSH
18083: LD_INT 24
18085: PUSH
18086: LD_INT 250
18088: PUSH
18089: EMPTY
18090: LIST
18091: LIST
18092: PUSH
18093: EMPTY
18094: LIST
18095: LIST
18096: PUSH
18097: EMPTY
18098: LIST
18099: LIST
18100: LIST
18101: LIST
18102: PPUSH
18103: CALL_OW 70
18107: ST_TO_ADDR
// VyjdiVen ( un ) ;
18108: LD_VAR 0 16
18112: PPUSH
18113: CALL 2645 0 1
// ComRepairVehicle ( un , v [ 1 ] ) ;
18117: LD_VAR 0 16
18121: PPUSH
18122: LD_VAR 0 18
18126: PUSH
18127: LD_INT 1
18129: ARRAY
18130: PPUSH
18131: CALL_OW 129
// end else
18135: GO 18663
// if FilterUnitsInArea ( SpojBaza , [ [ f_placed ] , [ f_side , You ] , [ f_type , unit_vehicle ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
18137: LD_INT 8
18139: PPUSH
18140: LD_INT 52
18142: PUSH
18143: EMPTY
18144: LIST
18145: PUSH
18146: LD_INT 22
18148: PUSH
18149: LD_EXP 2
18153: PUSH
18154: EMPTY
18155: LIST
18156: LIST
18157: PUSH
18158: LD_INT 21
18160: PUSH
18161: LD_INT 2
18163: PUSH
18164: EMPTY
18165: LIST
18166: LIST
18167: PUSH
18168: LD_INT 3
18170: PUSH
18171: LD_INT 24
18173: PUSH
18174: LD_INT 1000
18176: PUSH
18177: EMPTY
18178: LIST
18179: LIST
18180: PUSH
18181: EMPTY
18182: LIST
18183: LIST
18184: PUSH
18185: EMPTY
18186: LIST
18187: LIST
18188: LIST
18189: LIST
18190: PPUSH
18191: CALL_OW 70
18195: IFFALSE 18290
// begin v = FilterUnitsInArea ( SpojBaza , [ [ f_placed ] , [ f_side , You ] , [ f_type , unit_vehicle ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
18197: LD_ADDR_VAR 0 18
18201: PUSH
18202: LD_INT 8
18204: PPUSH
18205: LD_INT 52
18207: PUSH
18208: EMPTY
18209: LIST
18210: PUSH
18211: LD_INT 22
18213: PUSH
18214: LD_EXP 2
18218: PUSH
18219: EMPTY
18220: LIST
18221: LIST
18222: PUSH
18223: LD_INT 21
18225: PUSH
18226: LD_INT 2
18228: PUSH
18229: EMPTY
18230: LIST
18231: LIST
18232: PUSH
18233: LD_INT 3
18235: PUSH
18236: LD_INT 24
18238: PUSH
18239: LD_INT 1000
18241: PUSH
18242: EMPTY
18243: LIST
18244: LIST
18245: PUSH
18246: EMPTY
18247: LIST
18248: LIST
18249: PUSH
18250: EMPTY
18251: LIST
18252: LIST
18253: LIST
18254: LIST
18255: PPUSH
18256: CALL_OW 70
18260: ST_TO_ADDR
// VyjdiVen ( un ) ;
18261: LD_VAR 0 16
18265: PPUSH
18266: CALL 2645 0 1
// ComRepairVehicle ( un , v [ 1 ] ) ;
18270: LD_VAR 0 16
18274: PPUSH
18275: LD_VAR 0 18
18279: PUSH
18280: LD_INT 1
18282: ARRAY
18283: PPUSH
18284: CALL_OW 129
// end else
18288: GO 18663
// if FilterUnitsInArea ( Repair , [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
18290: LD_INT 15
18292: PPUSH
18293: LD_INT 52
18295: PUSH
18296: EMPTY
18297: LIST
18298: PUSH
18299: LD_INT 22
18301: PUSH
18302: LD_EXP 3
18306: PUSH
18307: EMPTY
18308: LIST
18309: LIST
18310: PUSH
18311: LD_INT 21
18313: PUSH
18314: LD_INT 2
18316: PUSH
18317: EMPTY
18318: LIST
18319: LIST
18320: PUSH
18321: LD_INT 3
18323: PUSH
18324: LD_INT 24
18326: PUSH
18327: LD_INT 1000
18329: PUSH
18330: EMPTY
18331: LIST
18332: LIST
18333: PUSH
18334: EMPTY
18335: LIST
18336: LIST
18337: PUSH
18338: EMPTY
18339: LIST
18340: LIST
18341: LIST
18342: LIST
18343: PPUSH
18344: CALL_OW 70
18348: IFFALSE 18443
// begin v = FilterUnitsInArea ( Repair2 , [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
18350: LD_ADDR_VAR 0 18
18354: PUSH
18355: LD_INT 28
18357: PPUSH
18358: LD_INT 52
18360: PUSH
18361: EMPTY
18362: LIST
18363: PUSH
18364: LD_INT 22
18366: PUSH
18367: LD_EXP 3
18371: PUSH
18372: EMPTY
18373: LIST
18374: LIST
18375: PUSH
18376: LD_INT 21
18378: PUSH
18379: LD_INT 2
18381: PUSH
18382: EMPTY
18383: LIST
18384: LIST
18385: PUSH
18386: LD_INT 3
18388: PUSH
18389: LD_INT 24
18391: PUSH
18392: LD_INT 1000
18394: PUSH
18395: EMPTY
18396: LIST
18397: LIST
18398: PUSH
18399: EMPTY
18400: LIST
18401: LIST
18402: PUSH
18403: EMPTY
18404: LIST
18405: LIST
18406: LIST
18407: LIST
18408: PPUSH
18409: CALL_OW 70
18413: ST_TO_ADDR
// VyjdiVen ( un ) ;
18414: LD_VAR 0 16
18418: PPUSH
18419: CALL 2645 0 1
// ComRepairVehicle ( un , v [ 1 ] ) ;
18423: LD_VAR 0 16
18427: PPUSH
18428: LD_VAR 0 18
18432: PUSH
18433: LD_INT 1
18435: ARRAY
18436: PPUSH
18437: CALL_OW 129
// end else
18441: GO 18663
// if not GetLives ( un ) = 1000 then
18443: LD_VAR 0 16
18447: PPUSH
18448: CALL_OW 256
18452: PUSH
18453: LD_INT 1000
18455: EQUAL
18456: NOT
18457: IFFALSE 18508
// begin VyjdiVen ( un ) ;
18459: LD_VAR 0 16
18463: PPUSH
18464: CALL 2645 0 1
// if not IsInArea ( un , leceni ) then
18468: LD_VAR 0 16
18472: PPUSH
18473: LD_INT 12
18475: PPUSH
18476: CALL_OW 308
18480: NOT
18481: IFFALSE 18497
// ComMoveToArea ( un , leceni ) else
18483: LD_VAR 0 16
18487: PPUSH
18488: LD_INT 12
18490: PPUSH
18491: CALL_OW 113
18495: GO 18506
// ComHold ( un ) ;
18497: LD_VAR 0 16
18501: PPUSH
18502: CALL_OW 140
// end else
18506: GO 18663
// if GetLives ( un ) = 1000 then
18508: LD_VAR 0 16
18512: PPUSH
18513: CALL_OW 256
18517: PUSH
18518: LD_INT 1000
18520: EQUAL
18521: IFFALSE 18663
// begin if Tovarna then
18523: LD_VAR 0 5
18527: IFFALSE 18545
// ComEnterUnit ( un , Tovarna ) else
18529: LD_VAR 0 16
18533: PPUSH
18534: LD_VAR 0 5
18538: PPUSH
18539: CALL_OW 120
18543: GO 18663
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_constructed ] ] ) then
18545: LD_INT 52
18547: PUSH
18548: EMPTY
18549: LIST
18550: PUSH
18551: LD_INT 22
18553: PUSH
18554: LD_EXP 3
18558: PUSH
18559: EMPTY
18560: LIST
18561: LIST
18562: PUSH
18563: LD_INT 21
18565: PUSH
18566: LD_INT 3
18568: PUSH
18569: EMPTY
18570: LIST
18571: LIST
18572: PUSH
18573: LD_INT 57
18575: PUSH
18576: EMPTY
18577: LIST
18578: PUSH
18579: EMPTY
18580: LIST
18581: LIST
18582: LIST
18583: LIST
18584: PPUSH
18585: CALL_OW 69
18589: IFFALSE 18663
// begin b = FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_type , unit_building ] , [ f_constructed ] ] ) [ 1 ] ;
18591: LD_ADDR_VAR 0 17
18595: PUSH
18596: LD_INT 52
18598: PUSH
18599: EMPTY
18600: LIST
18601: PUSH
18602: LD_INT 22
18604: PUSH
18605: LD_EXP 3
18609: PUSH
18610: EMPTY
18611: LIST
18612: LIST
18613: PUSH
18614: LD_INT 21
18616: PUSH
18617: LD_INT 3
18619: PUSH
18620: EMPTY
18621: LIST
18622: LIST
18623: PUSH
18624: LD_INT 57
18626: PUSH
18627: EMPTY
18628: LIST
18629: PUSH
18630: EMPTY
18631: LIST
18632: LIST
18633: LIST
18634: LIST
18635: PPUSH
18636: CALL_OW 69
18640: PUSH
18641: LD_INT 1
18643: ARRAY
18644: ST_TO_ADDR
// ComRepairBuilding ( un , b [ 1 ] ) ;
18645: LD_VAR 0 16
18649: PPUSH
18650: LD_VAR 0 17
18654: PUSH
18655: LD_INT 1
18657: ARRAY
18658: PPUSH
18659: CALL_OW 130
// end ; end ; end ;
18663: GO 17817
18665: POP
18666: POP
// end ; if FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_type , unit_vehicle ] ] ) then
18667: LD_INT 50
18669: PUSH
18670: EMPTY
18671: LIST
18672: PUSH
18673: LD_INT 22
18675: PUSH
18676: LD_EXP 3
18680: PUSH
18681: EMPTY
18682: LIST
18683: LIST
18684: PUSH
18685: LD_INT 21
18687: PUSH
18688: LD_INT 2
18690: PUSH
18691: EMPTY
18692: LIST
18693: LIST
18694: PUSH
18695: EMPTY
18696: LIST
18697: LIST
18698: LIST
18699: PPUSH
18700: CALL_OW 69
18704: IFFALSE 19064
// begin Vozidla = FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_type , unit_vehicle ] ] ) ;
18706: LD_ADDR_VAR 0 15
18710: PUSH
18711: LD_INT 50
18713: PUSH
18714: EMPTY
18715: LIST
18716: PUSH
18717: LD_INT 22
18719: PUSH
18720: LD_EXP 3
18724: PUSH
18725: EMPTY
18726: LIST
18727: LIST
18728: PUSH
18729: LD_INT 21
18731: PUSH
18732: LD_INT 2
18734: PUSH
18735: EMPTY
18736: LIST
18737: LIST
18738: PUSH
18739: EMPTY
18740: LIST
18741: LIST
18742: LIST
18743: PPUSH
18744: CALL_OW 69
18748: ST_TO_ADDR
// for veh in Vozidla do
18749: LD_ADDR_VAR 0 20
18753: PUSH
18754: LD_VAR 0 15
18758: PUSH
18759: FOR_IN
18760: IFFALSE 19062
// begin if FilterAllUnits ( [ [ f_lives , 1000 ] , [ f_side , You2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , ru_cargo_bay ] ] ] ) + 0 >= Ru_Tanky_Max then
18762: LD_INT 24
18764: PUSH
18765: LD_INT 1000
18767: PUSH
18768: EMPTY
18769: LIST
18770: LIST
18771: PUSH
18772: LD_INT 22
18774: PUSH
18775: LD_EXP 3
18779: PUSH
18780: EMPTY
18781: LIST
18782: LIST
18783: PUSH
18784: LD_INT 21
18786: PUSH
18787: LD_INT 2
18789: PUSH
18790: EMPTY
18791: LIST
18792: LIST
18793: PUSH
18794: LD_INT 3
18796: PUSH
18797: LD_INT 34
18799: PUSH
18800: LD_INT 51
18802: PUSH
18803: EMPTY
18804: LIST
18805: LIST
18806: PUSH
18807: EMPTY
18808: LIST
18809: LIST
18810: PUSH
18811: EMPTY
18812: LIST
18813: LIST
18814: LIST
18815: LIST
18816: PPUSH
18817: CALL_OW 69
18821: PUSH
18822: LD_INT 0
18824: PLUS
18825: PUSH
18826: LD_EXP 69
18830: GREATEREQUAL
18831: IFFALSE 18906
// if not veh in Ru_Attack and ( GetLives ( veh ) >= 550 or ( IsInArea ( veh , Repair ) and GetLives ( veh ) = 1000 ) ) then
18833: LD_VAR 0 20
18837: PUSH
18838: LD_EXP 70
18842: IN
18843: NOT
18844: PUSH
18845: LD_VAR 0 20
18849: PPUSH
18850: CALL_OW 256
18854: PUSH
18855: LD_INT 550
18857: GREATEREQUAL
18858: PUSH
18859: LD_VAR 0 20
18863: PPUSH
18864: LD_INT 15
18866: PPUSH
18867: CALL_OW 308
18871: PUSH
18872: LD_VAR 0 20
18876: PPUSH
18877: CALL_OW 256
18881: PUSH
18882: LD_INT 1000
18884: EQUAL
18885: AND
18886: OR
18887: AND
18888: IFFALSE 18906
// Ru_Attack = Ru_Attack ^ veh ;
18890: LD_ADDR_EXP 70
18894: PUSH
18895: LD_EXP 70
18899: PUSH
18900: LD_VAR 0 20
18904: ADD
18905: ST_TO_ADDR
// if veh in Ru_Attack then
18906: LD_VAR 0 20
18910: PUSH
18911: LD_EXP 70
18915: IN
18916: IFFALSE 18951
// begin if GetLives ( Veh ) < 550 then
18918: LD_VAR 0 20
18922: PPUSH
18923: CALL_OW 256
18927: PUSH
18928: LD_INT 550
18930: LESS
18931: IFFALSE 18949
// Ru_Attack = Ru_Attack diff veh ;
18933: LD_ADDR_EXP 70
18937: PUSH
18938: LD_EXP 70
18942: PUSH
18943: LD_VAR 0 20
18947: DIFF
18948: ST_TO_ADDR
// end else
18949: GO 19060
// if GetLives ( veh ) < 550 and not IsInArea ( veh , Repair ) then
18951: LD_VAR 0 20
18955: PPUSH
18956: CALL_OW 256
18960: PUSH
18961: LD_INT 550
18963: LESS
18964: PUSH
18965: LD_VAR 0 20
18969: PPUSH
18970: LD_INT 15
18972: PPUSH
18973: CALL_OW 308
18977: NOT
18978: AND
18979: IFFALSE 18995
// ComMoveToArea ( veh , Repair ) else
18981: LD_VAR 0 20
18985: PPUSH
18986: LD_INT 15
18988: PPUSH
18989: CALL_OW 113
18993: GO 19060
// if GetLives ( veh ) < 1000 and IsInArea ( veh , Repair ) then
18995: LD_VAR 0 20
18999: PPUSH
19000: CALL_OW 256
19004: PUSH
19005: LD_INT 1000
19007: LESS
19008: PUSH
19009: LD_VAR 0 20
19013: PPUSH
19014: LD_INT 15
19016: PPUSH
19017: CALL_OW 308
19021: AND
19022: IFFALSE 19026
// else
19024: GO 19060
// if not IsInArea ( veh , Repair ) then
19026: LD_VAR 0 20
19030: PPUSH
19031: LD_INT 15
19033: PPUSH
19034: CALL_OW 308
19038: NOT
19039: IFFALSE 19060
// begin Wait ( 0 0$3 ) ;
19041: LD_INT 105
19043: PPUSH
19044: CALL_OW 67
// ComMoveToArea ( veh , Repair ) ;
19048: LD_VAR 0 20
19052: PPUSH
19053: LD_INT 15
19055: PPUSH
19056: CALL_OW 113
// end ; end ;
19060: GO 18759
19062: POP
19063: POP
// end ; enable ;
19064: ENABLE
// end ;
19065: PPOPN 25
19067: END
// every 0 0$2 trigger Ru_Attack do
19068: LD_EXP 70
19072: IFFALSE 19082
19074: GO 19076
19076: DISABLE
// begin ZautocRusak ;
19077: CALL 5579 0 0
// enable ;
19081: ENABLE
// end ;
19082: END
// every 0 0$2 do var zakl_labka ;
19083: GO 19085
19085: DISABLE
19086: LD_INT 0
19088: PPUSH
// begin if not Postavit_Lab1 then
19089: LD_EXP 44
19093: NOT
19094: IFFALSE 19104
// Postavit_Lab1 = true ;
19096: LD_ADDR_EXP 44
19100: PUSH
19101: LD_INT 1
19103: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_lab ] ] ) and not Postavit_Tovarnu then
19104: LD_INT 52
19106: PUSH
19107: EMPTY
19108: LIST
19109: PUSH
19110: LD_INT 22
19112: PUSH
19113: LD_EXP 3
19117: PUSH
19118: EMPTY
19119: LIST
19120: LIST
19121: PUSH
19122: LD_INT 30
19124: PUSH
19125: LD_INT 6
19127: PUSH
19128: EMPTY
19129: LIST
19130: LIST
19131: PUSH
19132: EMPTY
19133: LIST
19134: LIST
19135: LIST
19136: PPUSH
19137: CALL_OW 69
19141: PUSH
19142: LD_EXP 46
19146: NOT
19147: AND
19148: IFFALSE 19158
// Postavit_Tovarnu = true ;
19150: LD_ADDR_EXP 46
19154: PUSH
19155: LD_INT 1
19157: ST_TO_ADDR
// if GetTech ( tech_oilpow , You2 ) = state_researched and not Postavit_El1 then
19158: LD_INT 46
19160: PPUSH
19161: LD_EXP 3
19165: PPUSH
19166: CALL_OW 321
19170: PUSH
19171: LD_INT 2
19173: EQUAL
19174: PUSH
19175: LD_EXP 45
19179: NOT
19180: AND
19181: IFFALSE 19191
// Postavit_El1 = true ;
19183: LD_ADDR_EXP 45
19187: PUSH
19188: LD_INT 1
19190: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_factory ] ] ) and not Postavit_Zbrojku then
19191: LD_INT 52
19193: PUSH
19194: EMPTY
19195: LIST
19196: PUSH
19197: LD_INT 22
19199: PUSH
19200: LD_EXP 3
19204: PUSH
19205: EMPTY
19206: LIST
19207: LIST
19208: PUSH
19209: LD_INT 30
19211: PUSH
19212: LD_INT 3
19214: PUSH
19215: EMPTY
19216: LIST
19217: LIST
19218: PUSH
19219: EMPTY
19220: LIST
19221: LIST
19222: LIST
19223: PPUSH
19224: CALL_OW 69
19228: PUSH
19229: LD_EXP 47
19233: NOT
19234: AND
19235: IFFALSE 19284
// begin if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_warehouse ] ] ) then
19237: LD_INT 52
19239: PUSH
19240: EMPTY
19241: LIST
19242: PUSH
19243: LD_INT 22
19245: PUSH
19246: LD_EXP 3
19250: PUSH
19251: EMPTY
19252: LIST
19253: LIST
19254: PUSH
19255: LD_INT 30
19257: PUSH
19258: LD_INT 1
19260: PUSH
19261: EMPTY
19262: LIST
19263: LIST
19264: PUSH
19265: EMPTY
19266: LIST
19267: LIST
19268: LIST
19269: PPUSH
19270: CALL_OW 69
19274: IFFALSE 19284
// Postavit_Zbrojku = true ;
19276: LD_ADDR_EXP 47
19280: PUSH
19281: LD_INT 1
19283: ST_TO_ADDR
// end ; if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_barracks ] ] ) and not Postavit_El2 then
19284: LD_INT 52
19286: PUSH
19287: EMPTY
19288: LIST
19289: PUSH
19290: LD_INT 22
19292: PUSH
19293: LD_EXP 3
19297: PUSH
19298: EMPTY
19299: LIST
19300: LIST
19301: PUSH
19302: LD_INT 30
19304: PUSH
19305: LD_INT 5
19307: PUSH
19308: EMPTY
19309: LIST
19310: LIST
19311: PUSH
19312: EMPTY
19313: LIST
19314: LIST
19315: LIST
19316: PPUSH
19317: CALL_OW 69
19321: PUSH
19322: LD_EXP 48
19326: NOT
19327: AND
19328: IFFALSE 19338
// Postavit_El2 = true ;
19330: LD_ADDR_EXP 48
19334: PUSH
19335: LD_INT 1
19337: ST_TO_ADDR
// if GetTech ( Last_Tech1 , You2 ) = state_researched and FilterUnitsInArea ( Labka1 , [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , b_lab ] , [ f_btype , b_lab_basic ] ] ] ) then
19338: LD_LOC 4
19342: PPUSH
19343: LD_EXP 3
19347: PPUSH
19348: CALL_OW 321
19352: PUSH
19353: LD_INT 2
19355: EQUAL
19356: PUSH
19357: LD_INT 11
19359: PPUSH
19360: LD_INT 52
19362: PUSH
19363: EMPTY
19364: LIST
19365: PUSH
19366: LD_INT 22
19368: PUSH
19369: LD_EXP 3
19373: PUSH
19374: EMPTY
19375: LIST
19376: LIST
19377: PUSH
19378: LD_INT 2
19380: PUSH
19381: LD_INT 30
19383: PUSH
19384: LD_INT 6
19386: PUSH
19387: EMPTY
19388: LIST
19389: LIST
19390: PUSH
19391: LD_INT 30
19393: PUSH
19394: LD_INT 9
19396: PUSH
19397: EMPTY
19398: LIST
19399: LIST
19400: PUSH
19401: EMPTY
19402: LIST
19403: LIST
19404: LIST
19405: PUSH
19406: EMPTY
19407: LIST
19408: LIST
19409: LIST
19410: PPUSH
19411: CALL_OW 70
19415: AND
19416: IFFALSE 19510
// begin zakl_labka = FilterUnitsInArea ( Labka1 , [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , b_lab ] , [ f_btype , b_lab_basic ] ] ] ) [ 1 ] ;
19418: LD_ADDR_VAR 0 1
19422: PUSH
19423: LD_INT 11
19425: PPUSH
19426: LD_INT 52
19428: PUSH
19429: EMPTY
19430: LIST
19431: PUSH
19432: LD_INT 22
19434: PUSH
19435: LD_EXP 3
19439: PUSH
19440: EMPTY
19441: LIST
19442: LIST
19443: PUSH
19444: LD_INT 2
19446: PUSH
19447: LD_INT 30
19449: PUSH
19450: LD_INT 6
19452: PUSH
19453: EMPTY
19454: LIST
19455: LIST
19456: PUSH
19457: LD_INT 30
19459: PUSH
19460: LD_INT 9
19462: PUSH
19463: EMPTY
19464: LIST
19465: LIST
19466: PUSH
19467: EMPTY
19468: LIST
19469: LIST
19470: LIST
19471: PUSH
19472: EMPTY
19473: LIST
19474: LIST
19475: LIST
19476: PPUSH
19477: CALL_OW 70
19481: PUSH
19482: LD_INT 1
19484: ARRAY
19485: ST_TO_ADDR
// ComUpgradeLab ( zakl_labka , b_lab_weapon ) ;
19486: LD_VAR 0 1
19490: PPUSH
19491: LD_INT 10
19493: PPUSH
19494: CALL_OW 147
// AddComUpgradeLab ( zakl_labka , b_lab_computer ) ;
19498: LD_VAR 0 1
19502: PPUSH
19503: LD_INT 12
19505: PPUSH
19506: CALL_OW 207
// end ; if GetTech ( Last_Tech2 , You2 ) = state_researched and not Postavit_Lab2 then
19510: LD_LOC 5
19514: PPUSH
19515: LD_EXP 3
19519: PPUSH
19520: CALL_OW 321
19524: PUSH
19525: LD_INT 2
19527: EQUAL
19528: PUSH
19529: LD_EXP 55
19533: NOT
19534: AND
19535: IFFALSE 19545
// Postavit_Lab2 = true ;
19537: LD_ADDR_EXP 55
19541: PUSH
19542: LD_INT 1
19544: ST_TO_ADDR
// if FilterUnitsInArea ( Labka2 , [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , b_lab ] , [ f_btype , b_lab_basic ] ] ] ) then
19545: LD_INT 24
19547: PPUSH
19548: LD_INT 52
19550: PUSH
19551: EMPTY
19552: LIST
19553: PUSH
19554: LD_INT 22
19556: PUSH
19557: LD_EXP 3
19561: PUSH
19562: EMPTY
19563: LIST
19564: LIST
19565: PUSH
19566: LD_INT 2
19568: PUSH
19569: LD_INT 30
19571: PUSH
19572: LD_INT 6
19574: PUSH
19575: EMPTY
19576: LIST
19577: LIST
19578: PUSH
19579: LD_INT 30
19581: PUSH
19582: LD_INT 9
19584: PUSH
19585: EMPTY
19586: LIST
19587: LIST
19588: PUSH
19589: EMPTY
19590: LIST
19591: LIST
19592: LIST
19593: PUSH
19594: EMPTY
19595: LIST
19596: LIST
19597: LIST
19598: PPUSH
19599: CALL_OW 70
19603: IFFALSE 19697
// begin zakl_labka = FilterUnitsInArea ( Labka2 , [ [ f_placed ] , [ f_side , You2 ] , [ f_or , [ f_btype , b_lab ] , [ f_btype , b_lab_basic ] ] ] ) [ 1 ] ;
19605: LD_ADDR_VAR 0 1
19609: PUSH
19610: LD_INT 24
19612: PPUSH
19613: LD_INT 52
19615: PUSH
19616: EMPTY
19617: LIST
19618: PUSH
19619: LD_INT 22
19621: PUSH
19622: LD_EXP 3
19626: PUSH
19627: EMPTY
19628: LIST
19629: LIST
19630: PUSH
19631: LD_INT 2
19633: PUSH
19634: LD_INT 30
19636: PUSH
19637: LD_INT 6
19639: PUSH
19640: EMPTY
19641: LIST
19642: LIST
19643: PUSH
19644: LD_INT 30
19646: PUSH
19647: LD_INT 9
19649: PUSH
19650: EMPTY
19651: LIST
19652: LIST
19653: PUSH
19654: EMPTY
19655: LIST
19656: LIST
19657: LIST
19658: PUSH
19659: EMPTY
19660: LIST
19661: LIST
19662: LIST
19663: PPUSH
19664: CALL_OW 70
19668: PUSH
19669: LD_INT 1
19671: ARRAY
19672: ST_TO_ADDR
// ComUpgradeLab ( zakl_labka , b_lab_spacetime ) ;
19673: LD_VAR 0 1
19677: PPUSH
19678: LD_INT 14
19680: PPUSH
19681: CALL_OW 147
// AddComUpgradeLab ( zakl_labka , b_lab_siberium ) ;
19685: LD_VAR 0 1
19689: PPUSH
19690: LD_INT 11
19692: PPUSH
19693: CALL_OW 207
// end ; if GetResourceVisibility ( 205 , 190 , You2 ) and not Postavit_Dul then
19697: LD_INT 205
19699: PPUSH
19700: LD_INT 190
19702: PPUSH
19703: LD_EXP 3
19707: PPUSH
19708: CALL_OW 440
19712: PUSH
19713: LD_EXP 53
19717: NOT
19718: AND
19719: IFFALSE 19736
// begin Wait ( 0 0$5 ) ;
19721: LD_INT 175
19723: PPUSH
19724: CALL_OW 67
// Postavit_Dul = true ;
19728: LD_ADDR_EXP 53
19732: PUSH
19733: LD_INT 1
19735: ST_TO_ADDR
// end ; if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_siberite_mine ] ] ) and not Postavit_El3 then
19736: LD_INT 52
19738: PUSH
19739: EMPTY
19740: LIST
19741: PUSH
19742: LD_INT 22
19744: PUSH
19745: LD_EXP 3
19749: PUSH
19750: EMPTY
19751: LIST
19752: LIST
19753: PUSH
19754: LD_INT 30
19756: PUSH
19757: LD_INT 30
19759: PUSH
19760: EMPTY
19761: LIST
19762: LIST
19763: PUSH
19764: EMPTY
19765: LIST
19766: LIST
19767: LIST
19768: PPUSH
19769: CALL_OW 69
19773: PUSH
19774: LD_EXP 54
19778: NOT
19779: AND
19780: IFFALSE 19790
// Postavit_El3 = true ;
19782: LD_ADDR_EXP 54
19786: PUSH
19787: LD_INT 1
19789: ST_TO_ADDR
// if GetTech ( tech_sibpow , You2 ) = state_researched and not Postavit_Sib1 then
19790: LD_INT 21
19792: PPUSH
19793: LD_EXP 3
19797: PPUSH
19798: CALL_OW 321
19802: PUSH
19803: LD_INT 2
19805: EQUAL
19806: PUSH
19807: LD_EXP 56
19811: NOT
19812: AND
19813: IFFALSE 19823
// Postavit_Sib1 = true ;
19815: LD_ADDR_EXP 56
19819: PUSH
19820: LD_INT 1
19822: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_siberite_power ] ] ) and not Postavit_Sib2 then
19823: LD_INT 52
19825: PUSH
19826: EMPTY
19827: LIST
19828: PUSH
19829: LD_INT 22
19831: PUSH
19832: LD_EXP 3
19836: PUSH
19837: EMPTY
19838: LIST
19839: LIST
19840: PUSH
19841: LD_INT 30
19843: PUSH
19844: LD_INT 28
19846: PUSH
19847: EMPTY
19848: LIST
19849: LIST
19850: PUSH
19851: EMPTY
19852: LIST
19853: LIST
19854: LIST
19855: PPUSH
19856: CALL_OW 69
19860: PUSH
19861: LD_EXP 57
19865: NOT
19866: AND
19867: IFFALSE 19877
// Postavit_Sib2 = true ;
19869: LD_ADDR_EXP 57
19873: PUSH
19874: LD_INT 1
19876: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_siberite_power ] , [ f_not , [ f_constructed ] ] ] ) and not Tovarna_produkce then
19877: LD_INT 52
19879: PUSH
19880: EMPTY
19881: LIST
19882: PUSH
19883: LD_INT 22
19885: PUSH
19886: LD_EXP 3
19890: PUSH
19891: EMPTY
19892: LIST
19893: LIST
19894: PUSH
19895: LD_INT 30
19897: PUSH
19898: LD_INT 28
19900: PUSH
19901: EMPTY
19902: LIST
19903: LIST
19904: PUSH
19905: LD_INT 3
19907: PUSH
19908: LD_INT 57
19910: PUSH
19911: EMPTY
19912: LIST
19913: PUSH
19914: EMPTY
19915: LIST
19916: LIST
19917: PUSH
19918: EMPTY
19919: LIST
19920: LIST
19921: LIST
19922: LIST
19923: PPUSH
19924: CALL_OW 69
19928: PUSH
19929: LD_EXP 68
19933: NOT
19934: AND
19935: IFFALSE 19945
// Tovarna_produkce = true ;
19937: LD_ADDR_EXP 68
19941: PUSH
19942: LD_INT 1
19944: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_oil_power ] ] ) + 0 >= 2 and not Postavit_TrackExt then
19945: LD_INT 52
19947: PUSH
19948: EMPTY
19949: LIST
19950: PUSH
19951: LD_INT 22
19953: PUSH
19954: LD_EXP 3
19958: PUSH
19959: EMPTY
19960: LIST
19961: LIST
19962: PUSH
19963: LD_INT 30
19965: PUSH
19966: LD_INT 26
19968: PUSH
19969: EMPTY
19970: LIST
19971: LIST
19972: PUSH
19973: EMPTY
19974: LIST
19975: LIST
19976: LIST
19977: PPUSH
19978: CALL_OW 69
19982: PUSH
19983: LD_INT 0
19985: PLUS
19986: PUSH
19987: LD_INT 2
19989: GREATEREQUAL
19990: PUSH
19991: LD_EXP 58
19995: NOT
19996: AND
19997: IFFALSE 20007
// Postavit_TrackExt = true ;
19999: LD_ADDR_EXP 58
20003: PUSH
20004: LD_INT 1
20006: ST_TO_ADDR
// if Researched ( You2 , tech_advmet ) then
20007: LD_EXP 3
20011: PPUSH
20012: LD_INT 34
20014: PPUSH
20015: CALL_OW 325
20019: IFFALSE 20180
// begin if Researched ( You2 , tech_gun ) and not Postavit_GunExt then
20021: LD_EXP 3
20025: PPUSH
20026: LD_INT 39
20028: PPUSH
20029: CALL_OW 325
20033: PUSH
20034: LD_EXP 59
20038: NOT
20039: AND
20040: IFFALSE 20050
// Postavit_GunExt = true ;
20042: LD_ADDR_EXP 59
20046: PUSH
20047: LD_INT 1
20049: ST_TO_ADDR
// if Researched ( You2 , tech_rocket ) and not Postavit_RocketExt then
20050: LD_EXP 3
20054: PPUSH
20055: LD_INT 40
20057: PPUSH
20058: CALL_OW 325
20062: PUSH
20063: LD_EXP 60
20067: NOT
20068: AND
20069: IFFALSE 20079
// Postavit_RocketExt = true ;
20071: LD_ADDR_EXP 60
20075: PUSH
20076: LD_INT 1
20078: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_rocket ] ] ) and GetTech ( tech_sibpow , You2 ) = state_researched and not Postavit_SibExt then
20079: LD_INT 52
20081: PUSH
20082: EMPTY
20083: LIST
20084: PUSH
20085: LD_INT 22
20087: PUSH
20088: LD_EXP 3
20092: PUSH
20093: EMPTY
20094: LIST
20095: LIST
20096: PUSH
20097: LD_INT 30
20099: PUSH
20100: LD_INT 18
20102: PUSH
20103: EMPTY
20104: LIST
20105: LIST
20106: PUSH
20107: EMPTY
20108: LIST
20109: LIST
20110: LIST
20111: PPUSH
20112: CALL_OW 69
20116: PUSH
20117: LD_INT 21
20119: PPUSH
20120: LD_EXP 3
20124: PPUSH
20125: CALL_OW 321
20129: PUSH
20130: LD_INT 2
20132: EQUAL
20133: AND
20134: PUSH
20135: LD_EXP 61
20139: NOT
20140: AND
20141: IFFALSE 20151
// Postavit_SibExt = true ;
20143: LD_ADDR_EXP 61
20147: PUSH
20148: LD_INT 1
20150: ST_TO_ADDR
// if Researched ( You2 , tech_advai ) and not Postavit_CompExt then
20151: LD_EXP 3
20155: PPUSH
20156: LD_INT 27
20158: PPUSH
20159: CALL_OW 325
20163: PUSH
20164: LD_EXP 62
20168: NOT
20169: AND
20170: IFFALSE 20180
// Postavit_CompExt = true ;
20172: LD_ADDR_EXP 62
20176: PUSH
20177: LD_INT 1
20179: ST_TO_ADDR
// end ; if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_gun ] ] ) and not Postavit_Vez1 then
20180: LD_INT 52
20182: PUSH
20183: EMPTY
20184: LIST
20185: PUSH
20186: LD_INT 22
20188: PUSH
20189: LD_EXP 3
20193: PUSH
20194: EMPTY
20195: LIST
20196: LIST
20197: PUSH
20198: LD_INT 30
20200: PUSH
20201: LD_INT 17
20203: PUSH
20204: EMPTY
20205: LIST
20206: LIST
20207: PUSH
20208: EMPTY
20209: LIST
20210: LIST
20211: LIST
20212: PPUSH
20213: CALL_OW 69
20217: PUSH
20218: LD_EXP 49
20222: NOT
20223: AND
20224: IFFALSE 20234
// Postavit_Vez1 = true ;
20226: LD_ADDR_EXP 49
20230: PUSH
20231: LD_INT 1
20233: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_rocket ] ] ) and not Postavit_Vez2 then
20234: LD_INT 52
20236: PUSH
20237: EMPTY
20238: LIST
20239: PUSH
20240: LD_INT 22
20242: PUSH
20243: LD_EXP 3
20247: PUSH
20248: EMPTY
20249: LIST
20250: LIST
20251: PUSH
20252: LD_INT 30
20254: PUSH
20255: LD_INT 18
20257: PUSH
20258: EMPTY
20259: LIST
20260: LIST
20261: PUSH
20262: EMPTY
20263: LIST
20264: LIST
20265: LIST
20266: PPUSH
20267: CALL_OW 69
20271: PUSH
20272: LD_EXP 50
20276: NOT
20277: AND
20278: IFFALSE 20288
// Postavit_Vez2 = true ;
20280: LD_ADDR_EXP 50
20284: PUSH
20285: LD_INT 1
20287: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_factory ] ] ) and Researched ( You2 , tech_gatling ) and not Postavit_Vez3 then
20288: LD_INT 52
20290: PUSH
20291: EMPTY
20292: LIST
20293: PUSH
20294: LD_INT 22
20296: PUSH
20297: LD_EXP 3
20301: PUSH
20302: EMPTY
20303: LIST
20304: LIST
20305: PUSH
20306: LD_INT 30
20308: PUSH
20309: LD_INT 3
20311: PUSH
20312: EMPTY
20313: LIST
20314: LIST
20315: PUSH
20316: EMPTY
20317: LIST
20318: LIST
20319: LIST
20320: PPUSH
20321: CALL_OW 69
20325: PUSH
20326: LD_EXP 3
20330: PPUSH
20331: LD_INT 69
20333: PPUSH
20334: CALL_OW 325
20338: AND
20339: PUSH
20340: LD_EXP 51
20344: NOT
20345: AND
20346: IFFALSE 20356
// Postavit_Vez3 = true ;
20348: LD_ADDR_EXP 51
20352: PUSH
20353: LD_INT 1
20355: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_gun ] ] ) and not Postavit_Vez4 then
20356: LD_INT 52
20358: PUSH
20359: EMPTY
20360: LIST
20361: PUSH
20362: LD_INT 22
20364: PUSH
20365: LD_EXP 3
20369: PUSH
20370: EMPTY
20371: LIST
20372: LIST
20373: PUSH
20374: LD_INT 30
20376: PUSH
20377: LD_INT 17
20379: PUSH
20380: EMPTY
20381: LIST
20382: LIST
20383: PUSH
20384: EMPTY
20385: LIST
20386: LIST
20387: LIST
20388: PPUSH
20389: CALL_OW 69
20393: PUSH
20394: LD_EXP 52
20398: NOT
20399: AND
20400: IFFALSE 20410
// Postavit_Vez4 = true ;
20402: LD_ADDR_EXP 52
20406: PUSH
20407: LD_INT 1
20409: ST_TO_ADDR
// enable ;
20410: ENABLE
// end ;
20411: PPOPN 1
20413: END
// export function Zkoumej ( cislo_vyzkumu , laborator ) ; begin
20414: LD_INT 0
20416: PPUSH
// if cislo_vyzkumu = 1 and Tech_list and not GetActResearch ( laborator ) then
20417: LD_VAR 0 1
20421: PUSH
20422: LD_INT 1
20424: EQUAL
20425: PUSH
20426: LD_EXP 63
20430: AND
20431: PUSH
20432: LD_VAR 0 2
20436: PPUSH
20437: CALL_OW 485
20441: NOT
20442: AND
20443: IFFALSE 20463
// ComResearch ( laborator , Tech_list [ 1 ] ) ;
20445: LD_VAR 0 2
20449: PPUSH
20450: LD_EXP 63
20454: PUSH
20455: LD_INT 1
20457: ARRAY
20458: PPUSH
20459: CALL_OW 124
// if cislo_vyzkumu = 2 and Tech_list2 and not GetActResearch ( laborator ) then
20463: LD_VAR 0 1
20467: PUSH
20468: LD_INT 2
20470: EQUAL
20471: PUSH
20472: LD_EXP 64
20476: AND
20477: PUSH
20478: LD_VAR 0 2
20482: PPUSH
20483: CALL_OW 485
20487: NOT
20488: AND
20489: IFFALSE 20509
// ComResearch ( laborator , Tech_list2 [ 1 ] ) ;
20491: LD_VAR 0 2
20495: PPUSH
20496: LD_EXP 64
20500: PUSH
20501: LD_INT 1
20503: ARRAY
20504: PPUSH
20505: CALL_OW 124
// if cislo_vyzkumu = 3 and Tech_list3 and not GetActResearch ( laborator ) then
20509: LD_VAR 0 1
20513: PUSH
20514: LD_INT 3
20516: EQUAL
20517: PUSH
20518: LD_EXP 65
20522: AND
20523: PUSH
20524: LD_VAR 0 2
20528: PPUSH
20529: CALL_OW 485
20533: NOT
20534: AND
20535: IFFALSE 20555
// ComResearch ( laborator , Tech_list3 [ 1 ] ) ;
20537: LD_VAR 0 2
20541: PPUSH
20542: LD_EXP 65
20546: PUSH
20547: LD_INT 1
20549: ARRAY
20550: PPUSH
20551: CALL_OW 124
// end ;
20555: LD_VAR 0 3
20559: RET
// export function EventUpgrade ( b ) ; begin
20560: LD_INT 0
20562: PPUSH
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_oil_power ] ] ) and FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_depot ] ] ) then
20563: LD_INT 52
20565: PUSH
20566: EMPTY
20567: LIST
20568: PUSH
20569: LD_INT 22
20571: PUSH
20572: LD_EXP 3
20576: PUSH
20577: EMPTY
20578: LIST
20579: LIST
20580: PUSH
20581: LD_INT 30
20583: PUSH
20584: LD_INT 26
20586: PUSH
20587: EMPTY
20588: LIST
20589: LIST
20590: PUSH
20591: EMPTY
20592: LIST
20593: LIST
20594: LIST
20595: PPUSH
20596: CALL_OW 69
20600: PUSH
20601: LD_INT 52
20603: PUSH
20604: EMPTY
20605: LIST
20606: PUSH
20607: LD_INT 22
20609: PUSH
20610: LD_EXP 3
20614: PUSH
20615: EMPTY
20616: LIST
20617: LIST
20618: PUSH
20619: LD_INT 30
20621: PUSH
20622: LD_INT 0
20624: PUSH
20625: EMPTY
20626: LIST
20627: LIST
20628: PUSH
20629: EMPTY
20630: LIST
20631: LIST
20632: LIST
20633: PPUSH
20634: CALL_OW 69
20638: AND
20639: IFFALSE 20687
// ComUpgrade ( FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_depot ] ] ) [ 1 ] ) ;
20641: LD_INT 52
20643: PUSH
20644: EMPTY
20645: LIST
20646: PUSH
20647: LD_INT 22
20649: PUSH
20650: LD_EXP 3
20654: PUSH
20655: EMPTY
20656: LIST
20657: LIST
20658: PUSH
20659: LD_INT 30
20661: PUSH
20662: LD_INT 0
20664: PUSH
20665: EMPTY
20666: LIST
20667: LIST
20668: PUSH
20669: EMPTY
20670: LIST
20671: LIST
20672: LIST
20673: PPUSH
20674: CALL_OW 69
20678: PUSH
20679: LD_INT 1
20681: ARRAY
20682: PPUSH
20683: CALL_OW 146
// if GetBType ( b ) = b_workshop then
20687: LD_VAR 0 1
20691: PPUSH
20692: CALL_OW 266
20696: PUSH
20697: LD_INT 2
20699: EQUAL
20700: IFFALSE 20711
// ComUpgrade ( b ) ;
20702: LD_VAR 0 1
20706: PPUSH
20707: CALL_OW 146
// if GetBType ( b ) = b_depot then
20711: LD_VAR 0 1
20715: PPUSH
20716: CALL_OW 266
20720: PUSH
20721: LD_INT 0
20723: EQUAL
20724: IFFALSE 20735
// ComUpgrade ( b ) ;
20726: LD_VAR 0 1
20730: PPUSH
20731: CALL_OW 146
// if GetBType ( b ) = b_armoury then
20735: LD_VAR 0 1
20739: PPUSH
20740: CALL_OW 266
20744: PUSH
20745: LD_INT 4
20747: EQUAL
20748: IFFALSE 20759
// ComUpgrade ( b ) ;
20750: LD_VAR 0 1
20754: PPUSH
20755: CALL_OW 146
// end ;
20759: LD_VAR 0 2
20763: RET
// every 0 0$2 trigger Chci_Hledace = true do
20764: LD_EXP 67
20768: PUSH
20769: LD_INT 1
20771: EQUAL
20772: IFFALSE 20879
20774: GO 20776
20776: DISABLE
// begin if FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_class , class_scientistic ] ] ) then
20777: LD_INT 50
20779: PUSH
20780: EMPTY
20781: LIST
20782: PUSH
20783: LD_INT 22
20785: PUSH
20786: LD_EXP 3
20790: PUSH
20791: EMPTY
20792: LIST
20793: LIST
20794: PUSH
20795: LD_INT 25
20797: PUSH
20798: LD_INT 4
20800: PUSH
20801: EMPTY
20802: LIST
20803: LIST
20804: PUSH
20805: EMPTY
20806: LIST
20807: LIST
20808: LIST
20809: PPUSH
20810: CALL_OW 69
20814: IFFALSE 20878
// begin if not Hledac_loziska and Chci_hledace then
20816: LD_EXP 66
20820: NOT
20821: PUSH
20822: LD_EXP 67
20826: AND
20827: IFFALSE 20876
// Hledac_loziska = FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_class , class_scientistic ] ] ) [ 1 ] ;
20829: LD_ADDR_EXP 66
20833: PUSH
20834: LD_INT 50
20836: PUSH
20837: EMPTY
20838: LIST
20839: PUSH
20840: LD_INT 22
20842: PUSH
20843: LD_EXP 3
20847: PUSH
20848: EMPTY
20849: LIST
20850: LIST
20851: PUSH
20852: LD_INT 25
20854: PUSH
20855: LD_INT 4
20857: PUSH
20858: EMPTY
20859: LIST
20860: LIST
20861: PUSH
20862: EMPTY
20863: LIST
20864: LIST
20865: LIST
20866: PPUSH
20867: CALL_OW 69
20871: PUSH
20872: LD_INT 1
20874: ARRAY
20875: ST_TO_ADDR
// end else
20876: GO 20879
// enable ;
20878: ENABLE
// end ;
20879: END
// every 0 0$1 trigger Hledac_loziska do
20880: LD_EXP 66
20884: IFFALSE 21103
20886: GO 20888
20888: DISABLE
// begin if not Hledac_loziska then
20889: LD_EXP 66
20893: NOT
20894: IFFALSE 20898
// exit ;
20896: GO 21103
// if Chci_hledace then
20898: LD_EXP 67
20902: IFFALSE 20912
// Chci_hledace = 0 ;
20904: LD_ADDR_EXP 67
20908: PUSH
20909: LD_INT 0
20911: ST_TO_ADDR
// VyjdiVen ( Hledac_loziska ) ;
20912: LD_EXP 66
20916: PPUSH
20917: CALL 2645 0 1
// if not HasTask ( Hledac_loziska ) and IsInArea ( Hledac_loziska , Alaskit ) then
20921: LD_EXP 66
20925: PPUSH
20926: CALL_OW 314
20930: NOT
20931: PUSH
20932: LD_EXP 66
20936: PPUSH
20937: LD_INT 23
20939: PPUSH
20940: CALL_OW 308
20944: AND
20945: IFFALSE 20955
// begin Hledac_loziska = 0 ;
20947: LD_ADDR_EXP 66
20951: PUSH
20952: LD_INT 0
20954: ST_TO_ADDR
// end ; if GetLives ( Hledac_loziska ) > 550 and not HasTask ( Hledac_loziska ) then
20955: LD_EXP 66
20959: PPUSH
20960: CALL_OW 256
20964: PUSH
20965: LD_INT 550
20967: GREATER
20968: PUSH
20969: LD_EXP 66
20973: PPUSH
20974: CALL_OW 314
20978: NOT
20979: AND
20980: IFFALSE 21102
// begin ComMoveXY ( Hledac_loziska , 234 , 186 ) ;
20982: LD_EXP 66
20986: PPUSH
20987: LD_INT 234
20989: PPUSH
20990: LD_INT 186
20992: PPUSH
20993: CALL_OW 111
// AddComMoveXY ( Hledac_loziska , 246 , 184 ) ;
20997: LD_EXP 66
21001: PPUSH
21002: LD_INT 246
21004: PPUSH
21005: LD_INT 184
21007: PPUSH
21008: CALL_OW 171
// AddComMoveXY ( Hledac_loziska , 256 , 192 ) ;
21012: LD_EXP 66
21016: PPUSH
21017: LD_INT 256
21019: PPUSH
21020: LD_INT 192
21022: PPUSH
21023: CALL_OW 171
// AddComMoveXY ( Hledac_loziska , 248 , 176 ) ;
21027: LD_EXP 66
21031: PPUSH
21032: LD_INT 248
21034: PPUSH
21035: LD_INT 176
21037: PPUSH
21038: CALL_OW 171
// AddComMoveXY ( Hledac_loziska , 236 , 173 ) ;
21042: LD_EXP 66
21046: PPUSH
21047: LD_INT 236
21049: PPUSH
21050: LD_INT 173
21052: PPUSH
21053: CALL_OW 171
// AddComMoveXY ( Hledac_loziska , 209 , 183 ) ;
21057: LD_EXP 66
21061: PPUSH
21062: LD_INT 209
21064: PPUSH
21065: LD_INT 183
21067: PPUSH
21068: CALL_OW 171
// AddComMoveXY ( Hledac_loziska , 199 , 182 ) ;
21072: LD_EXP 66
21076: PPUSH
21077: LD_INT 199
21079: PPUSH
21080: LD_INT 182
21082: PPUSH
21083: CALL_OW 171
// AddComMoveXY ( Hledac_loziska , 202 , 191 ) ;
21087: LD_EXP 66
21091: PPUSH
21092: LD_INT 202
21094: PPUSH
21095: LD_INT 191
21097: PPUSH
21098: CALL_OW 171
// end ; enable ;
21102: ENABLE
// end ;
21103: END
// function Vyrabej ( Tovarna ) ; var tanky ; begin
21104: LD_INT 0
21106: PPUSH
21107: PPUSH
// if not IsOk ( Tovarna ) then
21108: LD_VAR 0 1
21112: PPUSH
21113: CALL_OW 302
21117: NOT
21118: IFFALSE 21122
// exit ;
21120: GO 21567
// if GetWorkingProgress ( Tovarna ) then
21122: LD_VAR 0 1
21126: PPUSH
21127: CALL_OW 328
21131: IFFALSE 21135
// exit ;
21133: GO 21567
// if not UnitsInside ( Tovarna ) then
21135: LD_VAR 0 1
21139: PPUSH
21140: CALL_OW 313
21144: NOT
21145: IFFALSE 21149
// exit ;
21147: GO 21567
// if not FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_btype , b_factory ] , [ f_not , [ f_constructed ] ] ] ) then
21149: LD_INT 50
21151: PUSH
21152: EMPTY
21153: LIST
21154: PUSH
21155: LD_INT 22
21157: PUSH
21158: LD_EXP 3
21162: PUSH
21163: EMPTY
21164: LIST
21165: LIST
21166: PUSH
21167: LD_INT 30
21169: PUSH
21170: LD_INT 3
21172: PUSH
21173: EMPTY
21174: LIST
21175: LIST
21176: PUSH
21177: LD_INT 3
21179: PUSH
21180: LD_INT 57
21182: PUSH
21183: EMPTY
21184: LIST
21185: PUSH
21186: EMPTY
21187: LIST
21188: LIST
21189: PUSH
21190: EMPTY
21191: LIST
21192: LIST
21193: LIST
21194: LIST
21195: PPUSH
21196: CALL_OW 69
21200: NOT
21201: IFFALSE 21205
// exit ;
21203: GO 21567
// if not FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_btype , b_ext_computer ] , [ f_not , [ f_constructed ] ] ] ) then
21205: LD_INT 50
21207: PUSH
21208: EMPTY
21209: LIST
21210: PUSH
21211: LD_INT 22
21213: PUSH
21214: LD_EXP 3
21218: PUSH
21219: EMPTY
21220: LIST
21221: LIST
21222: PUSH
21223: LD_INT 30
21225: PUSH
21226: LD_INT 24
21228: PUSH
21229: EMPTY
21230: LIST
21231: LIST
21232: PUSH
21233: LD_INT 3
21235: PUSH
21236: LD_INT 57
21238: PUSH
21239: EMPTY
21240: LIST
21241: PUSH
21242: EMPTY
21243: LIST
21244: LIST
21245: PUSH
21246: EMPTY
21247: LIST
21248: LIST
21249: LIST
21250: LIST
21251: PPUSH
21252: CALL_OW 69
21256: NOT
21257: IFFALSE 21261
// exit ;
21259: GO 21567
// if not FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_btype , b_ext_siberium ] , [ f_not , [ f_constructed ] ] ] ) then
21261: LD_INT 50
21263: PUSH
21264: EMPTY
21265: LIST
21266: PUSH
21267: LD_INT 22
21269: PUSH
21270: LD_EXP 3
21274: PUSH
21275: EMPTY
21276: LIST
21277: LIST
21278: PUSH
21279: LD_INT 30
21281: PUSH
21282: LD_INT 21
21284: PUSH
21285: EMPTY
21286: LIST
21287: LIST
21288: PUSH
21289: LD_INT 3
21291: PUSH
21292: LD_INT 57
21294: PUSH
21295: EMPTY
21296: LIST
21297: PUSH
21298: EMPTY
21299: LIST
21300: LIST
21301: PUSH
21302: EMPTY
21303: LIST
21304: LIST
21305: LIST
21306: LIST
21307: PPUSH
21308: CALL_OW 69
21312: NOT
21313: IFFALSE 21317
// exit ;
21315: GO 21567
// if not FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_btype , b_ext_rocket ] , [ f_not , [ f_constructed ] ] ] ) then
21317: LD_INT 50
21319: PUSH
21320: EMPTY
21321: LIST
21322: PUSH
21323: LD_INT 22
21325: PUSH
21326: LD_EXP 3
21330: PUSH
21331: EMPTY
21332: LIST
21333: LIST
21334: PUSH
21335: LD_INT 30
21337: PUSH
21338: LD_INT 18
21340: PUSH
21341: EMPTY
21342: LIST
21343: LIST
21344: PUSH
21345: LD_INT 3
21347: PUSH
21348: LD_INT 57
21350: PUSH
21351: EMPTY
21352: LIST
21353: PUSH
21354: EMPTY
21355: LIST
21356: LIST
21357: PUSH
21358: EMPTY
21359: LIST
21360: LIST
21361: LIST
21362: LIST
21363: PPUSH
21364: CALL_OW 69
21368: NOT
21369: IFFALSE 21373
// exit ;
21371: GO 21567
// if not FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_btype , b_ext_gun ] , [ f_not , [ f_constructed ] ] ] ) then
21373: LD_INT 50
21375: PUSH
21376: EMPTY
21377: LIST
21378: PUSH
21379: LD_INT 22
21381: PUSH
21382: LD_EXP 3
21386: PUSH
21387: EMPTY
21388: LIST
21389: LIST
21390: PUSH
21391: LD_INT 30
21393: PUSH
21394: LD_INT 17
21396: PUSH
21397: EMPTY
21398: LIST
21399: LIST
21400: PUSH
21401: LD_INT 3
21403: PUSH
21404: LD_INT 57
21406: PUSH
21407: EMPTY
21408: LIST
21409: PUSH
21410: EMPTY
21411: LIST
21412: LIST
21413: PUSH
21414: EMPTY
21415: LIST
21416: LIST
21417: LIST
21418: LIST
21419: PPUSH
21420: CALL_OW 69
21424: NOT
21425: IFFALSE 21429
// exit ;
21427: GO 21567
// if not FilterAllUnits ( [ [ f_ok ] , [ f_side , You2 ] , [ f_btype , b_ext_track ] , [ f_not , [ f_constructed ] ] ] ) then
21429: LD_INT 50
21431: PUSH
21432: EMPTY
21433: LIST
21434: PUSH
21435: LD_INT 22
21437: PUSH
21438: LD_EXP 3
21442: PUSH
21443: EMPTY
21444: LIST
21445: LIST
21446: PUSH
21447: LD_INT 30
21449: PUSH
21450: LD_INT 16
21452: PUSH
21453: EMPTY
21454: LIST
21455: LIST
21456: PUSH
21457: LD_INT 3
21459: PUSH
21460: LD_INT 57
21462: PUSH
21463: EMPTY
21464: LIST
21465: PUSH
21466: EMPTY
21467: LIST
21468: LIST
21469: PUSH
21470: EMPTY
21471: LIST
21472: LIST
21473: LIST
21474: LIST
21475: PPUSH
21476: CALL_OW 69
21480: NOT
21481: IFFALSE 21485
// exit ;
21483: GO 21567
// if not GetTech ( tech_sibeng , You2 ) = state_researched then
21485: LD_INT 22
21487: PPUSH
21488: LD_EXP 3
21492: PPUSH
21493: CALL_OW 321
21497: PUSH
21498: LD_INT 2
21500: EQUAL
21501: NOT
21502: IFFALSE 21506
// exit ;
21504: GO 21567
// tanky = FilterAllUnits ( [ [ f_side , You2 ] , [ f_type , unit_vehicle ] ] ) ;
21506: LD_ADDR_VAR 0 3
21510: PUSH
21511: LD_INT 22
21513: PUSH
21514: LD_EXP 3
21518: PUSH
21519: EMPTY
21520: LIST
21521: LIST
21522: PUSH
21523: LD_INT 21
21525: PUSH
21526: LD_INT 2
21528: PUSH
21529: EMPTY
21530: LIST
21531: LIST
21532: PUSH
21533: EMPTY
21534: LIST
21535: LIST
21536: PPUSH
21537: CALL_OW 69
21541: ST_TO_ADDR
// if tanky + 0 < Ru_Tanky_Max then
21542: LD_VAR 0 3
21546: PUSH
21547: LD_INT 0
21549: PLUS
21550: PUSH
21551: LD_EXP 69
21555: LESS
21556: IFFALSE 21567
// Vyroba_auta ( Tovarna ) ;
21558: LD_VAR 0 1
21562: PPUSH
21563: CALL 21572 0 1
// end ;
21567: LD_VAR 0 2
21571: RET
// function Vyroba_auta ( Tovarna ) ; var Chassis , Weapon , P ; begin
21572: LD_INT 0
21574: PPUSH
21575: PPUSH
21576: PPUSH
21577: PPUSH
// P = Rand ( 1 , 100 ) ;
21578: LD_ADDR_VAR 0 5
21582: PUSH
21583: LD_INT 1
21585: PPUSH
21586: LD_INT 100
21588: PPUSH
21589: CALL_OW 12
21593: ST_TO_ADDR
// if Tick < 30 30$00 then
21594: LD_OWVAR 1
21598: PUSH
21599: LD_INT 63000
21601: LESS
21602: IFFALSE 21706
// begin if P < 25 then
21604: LD_VAR 0 5
21608: PUSH
21609: LD_INT 25
21611: LESS
21612: IFFALSE 21632
// begin Weapon = RU_GATLING_GUN ;
21614: LD_ADDR_VAR 0 4
21618: PUSH
21619: LD_INT 43
21621: ST_TO_ADDR
// Chassis = RU_MEDIUM_TRACKED ;
21622: LD_ADDR_VAR 0 3
21626: PUSH
21627: LD_INT 22
21629: ST_TO_ADDR
// end else
21630: GO 21704
// if P < 50 then
21632: LD_VAR 0 5
21636: PUSH
21637: LD_INT 50
21639: LESS
21640: IFFALSE 21660
// begin Weapon = RU_GUN ;
21642: LD_ADDR_VAR 0 4
21646: PUSH
21647: LD_INT 44
21649: ST_TO_ADDR
// Chassis = RU_MEDIUM_TRACKED ;
21650: LD_ADDR_VAR 0 3
21654: PUSH
21655: LD_INT 22
21657: ST_TO_ADDR
// end else
21658: GO 21704
// if P < 85 then
21660: LD_VAR 0 5
21664: PUSH
21665: LD_INT 85
21667: LESS
21668: IFFALSE 21688
// begin Weapon = RU_GUN ;
21670: LD_ADDR_VAR 0 4
21674: PUSH
21675: LD_INT 44
21677: ST_TO_ADDR
// Chassis = RU_MEDIUM_TRACKED ;
21678: LD_ADDR_VAR 0 3
21682: PUSH
21683: LD_INT 22
21685: ST_TO_ADDR
// end else
21686: GO 21704
// begin Weapon = RU_GATLING_GUN ;
21688: LD_ADDR_VAR 0 4
21692: PUSH
21693: LD_INT 43
21695: ST_TO_ADDR
// Chassis = RU_HEAVY_TRACKED ;
21696: LD_ADDR_VAR 0 3
21700: PUSH
21701: LD_INT 24
21703: ST_TO_ADDR
// end ; end else
21704: GO 21928
// if Tick >= 30 30$00 and Tick < 55 55$00 then
21706: LD_OWVAR 1
21710: PUSH
21711: LD_INT 63000
21713: GREATEREQUAL
21714: PUSH
21715: LD_OWVAR 1
21719: PUSH
21720: LD_INT 115500
21722: LESS
21723: AND
21724: IFFALSE 21828
// begin if P < 25 then
21726: LD_VAR 0 5
21730: PUSH
21731: LD_INT 25
21733: LESS
21734: IFFALSE 21754
// begin Weapon = RU_GATLING_GUN ;
21736: LD_ADDR_VAR 0 4
21740: PUSH
21741: LD_INT 43
21743: ST_TO_ADDR
// Chassis = RU_MEDIUM_TRACKED ;
21744: LD_ADDR_VAR 0 3
21748: PUSH
21749: LD_INT 22
21751: ST_TO_ADDR
// end else
21752: GO 21826
// if P < 50 then
21754: LD_VAR 0 5
21758: PUSH
21759: LD_INT 50
21761: LESS
21762: IFFALSE 21782
// begin Weapon = RU_GUN ;
21764: LD_ADDR_VAR 0 4
21768: PUSH
21769: LD_INT 44
21771: ST_TO_ADDR
// Chassis = RU_MEDIUM_TRACKED ;
21772: LD_ADDR_VAR 0 3
21776: PUSH
21777: LD_INT 22
21779: ST_TO_ADDR
// end else
21780: GO 21826
// if P < 80 then
21782: LD_VAR 0 5
21786: PUSH
21787: LD_INT 80
21789: LESS
21790: IFFALSE 21810
// begin Weapon = RU_HEAVY_GUN ;
21792: LD_ADDR_VAR 0 4
21796: PUSH
21797: LD_INT 46
21799: ST_TO_ADDR
// Chassis = RU_HEAVY_TRACKED ;
21800: LD_ADDR_VAR 0 3
21804: PUSH
21805: LD_INT 24
21807: ST_TO_ADDR
// end else
21808: GO 21826
// begin Weapon = RU_ROCKET_LAUNCHER ;
21810: LD_ADDR_VAR 0 4
21814: PUSH
21815: LD_INT 45
21817: ST_TO_ADDR
// Chassis = RU_HEAVY_TRACKED ;
21818: LD_ADDR_VAR 0 3
21822: PUSH
21823: LD_INT 24
21825: ST_TO_ADDR
// end ; end else
21826: GO 21928
// begin if P < 25 then
21828: LD_VAR 0 5
21832: PUSH
21833: LD_INT 25
21835: LESS
21836: IFFALSE 21856
// begin Weapon = RU_ROCKET_LAUNCHER ;
21838: LD_ADDR_VAR 0 4
21842: PUSH
21843: LD_INT 45
21845: ST_TO_ADDR
// Chassis = RU_HEAVY_TRACKED ;
21846: LD_ADDR_VAR 0 3
21850: PUSH
21851: LD_INT 24
21853: ST_TO_ADDR
// end else
21854: GO 21928
// if P < 50 then
21856: LD_VAR 0 5
21860: PUSH
21861: LD_INT 50
21863: LESS
21864: IFFALSE 21884
// begin Weapon = RU_HEAVY_GUN ;
21866: LD_ADDR_VAR 0 4
21870: PUSH
21871: LD_INT 46
21873: ST_TO_ADDR
// Chassis = RU_HEAVY_TRACKED ;
21874: LD_ADDR_VAR 0 3
21878: PUSH
21879: LD_INT 24
21881: ST_TO_ADDR
// end else
21882: GO 21928
// if P < 85 then
21884: LD_VAR 0 5
21888: PUSH
21889: LD_INT 85
21891: LESS
21892: IFFALSE 21912
// begin Weapon = RU_HEAVY_GUN ;
21894: LD_ADDR_VAR 0 4
21898: PUSH
21899: LD_INT 46
21901: ST_TO_ADDR
// Chassis = RU_HEAVY_TRACKED ;
21902: LD_ADDR_VAR 0 3
21906: PUSH
21907: LD_INT 24
21909: ST_TO_ADDR
// end else
21910: GO 21928
// begin Weapon = RU_ROCKET_LAUNCHER ;
21912: LD_ADDR_VAR 0 4
21916: PUSH
21917: LD_INT 45
21919: ST_TO_ADDR
// Chassis = RU_HEAVY_TRACKED ;
21920: LD_ADDR_VAR 0 3
21924: PUSH
21925: LD_INT 24
21927: ST_TO_ADDR
// end ; end ; if Prob ( 30 ) then
21928: LD_INT 30
21930: PPUSH
21931: CALL_OW 13
21935: IFFALSE 21955
// Chassis = Rand ( Chassis , RU_HEAVY_TRACKED ) ;
21937: LD_ADDR_VAR 0 3
21941: PUSH
21942: LD_VAR 0 3
21946: PPUSH
21947: LD_INT 24
21949: PPUSH
21950: CALL_OW 12
21954: ST_TO_ADDR
// ComConstruct ( Tovarna , Chassis , ENGINE_SIBERITE , CONTROL_COMPUTER , Weapon ) ;
21955: LD_VAR 0 1
21959: PPUSH
21960: LD_VAR 0 3
21964: PPUSH
21965: LD_INT 3
21967: PPUSH
21968: LD_INT 3
21970: PPUSH
21971: LD_VAR 0 4
21975: PPUSH
21976: CALL_OW 125
// end ;
21980: LD_VAR 0 2
21984: RET
// every 0 0$3 do var i ;
21985: GO 21987
21987: DISABLE
21988: LD_INT 0
21990: PPUSH
// begin if FilterUnitsInArea ( Prava , [ [ f_ok ] , [ f_side , Purple ] , [ f_type , unit_vehicle ] , [ f_empty ] ] ) and not FilterAllUnits ( [ [ f_inarea , Prava ] , [ f_ok ] , [ f_side , Purple ] , [ f_type , unit_human ] ] ) then
21991: LD_INT 32
21993: PPUSH
21994: LD_INT 50
21996: PUSH
21997: EMPTY
21998: LIST
21999: PUSH
22000: LD_INT 22
22002: PUSH
22003: LD_EXP 6
22007: PUSH
22008: EMPTY
22009: LIST
22010: LIST
22011: PUSH
22012: LD_INT 21
22014: PUSH
22015: LD_INT 2
22017: PUSH
22018: EMPTY
22019: LIST
22020: LIST
22021: PUSH
22022: LD_INT 58
22024: PUSH
22025: EMPTY
22026: LIST
22027: PUSH
22028: EMPTY
22029: LIST
22030: LIST
22031: LIST
22032: LIST
22033: PPUSH
22034: CALL_OW 70
22038: PUSH
22039: LD_INT 95
22041: PUSH
22042: LD_INT 32
22044: PUSH
22045: EMPTY
22046: LIST
22047: LIST
22048: PUSH
22049: LD_INT 50
22051: PUSH
22052: EMPTY
22053: LIST
22054: PUSH
22055: LD_INT 22
22057: PUSH
22058: LD_EXP 6
22062: PUSH
22063: EMPTY
22064: LIST
22065: LIST
22066: PUSH
22067: LD_INT 21
22069: PUSH
22070: LD_INT 1
22072: PUSH
22073: EMPTY
22074: LIST
22075: LIST
22076: PUSH
22077: EMPTY
22078: LIST
22079: LIST
22080: LIST
22081: LIST
22082: PPUSH
22083: CALL_OW 69
22087: NOT
22088: AND
22089: IFFALSE 22165
// for i in FilterUnitsInArea ( Prava , [ [ f_ok ] , [ f_side , Purple ] , [ f_type , unit_vehicle ] , [ f_empty ] ] ) do
22091: LD_ADDR_VAR 0 1
22095: PUSH
22096: LD_INT 32
22098: PPUSH
22099: LD_INT 50
22101: PUSH
22102: EMPTY
22103: LIST
22104: PUSH
22105: LD_INT 22
22107: PUSH
22108: LD_EXP 6
22112: PUSH
22113: EMPTY
22114: LIST
22115: LIST
22116: PUSH
22117: LD_INT 21
22119: PUSH
22120: LD_INT 2
22122: PUSH
22123: EMPTY
22124: LIST
22125: LIST
22126: PUSH
22127: LD_INT 58
22129: PUSH
22130: EMPTY
22131: LIST
22132: PUSH
22133: EMPTY
22134: LIST
22135: LIST
22136: LIST
22137: LIST
22138: PPUSH
22139: CALL_OW 70
22143: PUSH
22144: FOR_IN
22145: IFFALSE 22163
// PriorityAttack ( You2 , i ) ;
22147: LD_EXP 3
22151: PPUSH
22152: LD_VAR 0 1
22156: PPUSH
22157: CALL_OW 470
22161: GO 22144
22163: POP
22164: POP
// enable ;
22165: ENABLE
// end ; end_of_file
22166: PPOPN 1
22168: END
// export List_znicenych_budov ; on UnitDestroyed ( unit ) do var type , x , y , d , free_vojini , mecha , un , mecha2 , mecha3 ;
22169: LD_INT 0
22171: PPUSH
22172: PPUSH
22173: PPUSH
22174: PPUSH
22175: PPUSH
22176: PPUSH
22177: PPUSH
22178: PPUSH
22179: PPUSH
// begin if unit in FilterAllUnits ( [ [ f_side , You2 ] , [ f_type , unit_building ] ] ) then
22180: LD_VAR 0 1
22184: PUSH
22185: LD_INT 22
22187: PUSH
22188: LD_EXP 3
22192: PUSH
22193: EMPTY
22194: LIST
22195: LIST
22196: PUSH
22197: LD_INT 21
22199: PUSH
22200: LD_INT 3
22202: PUSH
22203: EMPTY
22204: LIST
22205: LIST
22206: PUSH
22207: EMPTY
22208: LIST
22209: LIST
22210: PPUSH
22211: CALL_OW 69
22215: IN
22216: IFFALSE 22545
// begin type = GetBType ( unit ) ;
22218: LD_ADDR_VAR 0 2
22222: PUSH
22223: LD_VAR 0 1
22227: PPUSH
22228: CALL_OW 266
22232: ST_TO_ADDR
// x = GetX ( unit ) ;
22233: LD_ADDR_VAR 0 3
22237: PUSH
22238: LD_VAR 0 1
22242: PPUSH
22243: CALL_OW 250
22247: ST_TO_ADDR
// y = GetY ( unit ) ;
22248: LD_ADDR_VAR 0 4
22252: PUSH
22253: LD_VAR 0 1
22257: PPUSH
22258: CALL_OW 251
22262: ST_TO_ADDR
// d = GetDir ( unit ) ;
22263: LD_ADDR_VAR 0 5
22267: PUSH
22268: LD_VAR 0 1
22272: PPUSH
22273: CALL_OW 254
22277: ST_TO_ADDR
// if GetBType ( unit ) = b_barracks then
22278: LD_VAR 0 1
22282: PPUSH
22283: CALL_OW 266
22287: PUSH
22288: LD_INT 5
22290: EQUAL
22291: IFFALSE 22301
// type = b_armoury ;
22293: LD_ADDR_VAR 0 2
22297: PUSH
22298: LD_INT 4
22300: ST_TO_ADDR
// if GetBType ( unit ) = 6 or GetBType ( unit ) = 7 or GetBType ( unit ) = 8 or GetBType ( unit ) = 9 or GetBType ( unit ) = 10 or GetBType ( unit ) = 11 or GetBType ( unit ) = 12 or GetBType ( unit ) = 13 or GetBType ( unit ) = 14 or GetBType ( unit ) = 15 then
22301: LD_VAR 0 1
22305: PPUSH
22306: CALL_OW 266
22310: PUSH
22311: LD_INT 6
22313: EQUAL
22314: PUSH
22315: LD_VAR 0 1
22319: PPUSH
22320: CALL_OW 266
22324: PUSH
22325: LD_INT 7
22327: EQUAL
22328: OR
22329: PUSH
22330: LD_VAR 0 1
22334: PPUSH
22335: CALL_OW 266
22339: PUSH
22340: LD_INT 8
22342: EQUAL
22343: OR
22344: PUSH
22345: LD_VAR 0 1
22349: PPUSH
22350: CALL_OW 266
22354: PUSH
22355: LD_INT 9
22357: EQUAL
22358: OR
22359: PUSH
22360: LD_VAR 0 1
22364: PPUSH
22365: CALL_OW 266
22369: PUSH
22370: LD_INT 10
22372: EQUAL
22373: OR
22374: PUSH
22375: LD_VAR 0 1
22379: PPUSH
22380: CALL_OW 266
22384: PUSH
22385: LD_INT 11
22387: EQUAL
22388: OR
22389: PUSH
22390: LD_VAR 0 1
22394: PPUSH
22395: CALL_OW 266
22399: PUSH
22400: LD_INT 12
22402: EQUAL
22403: OR
22404: PUSH
22405: LD_VAR 0 1
22409: PPUSH
22410: CALL_OW 266
22414: PUSH
22415: LD_INT 13
22417: EQUAL
22418: OR
22419: PUSH
22420: LD_VAR 0 1
22424: PPUSH
22425: CALL_OW 266
22429: PUSH
22430: LD_INT 14
22432: EQUAL
22433: OR
22434: PUSH
22435: LD_VAR 0 1
22439: PPUSH
22440: CALL_OW 266
22444: PUSH
22445: LD_INT 15
22447: EQUAL
22448: OR
22449: IFFALSE 22459
// type = b_lab ;
22451: LD_ADDR_VAR 0 2
22455: PUSH
22456: LD_INT 6
22458: ST_TO_ADDR
// if GetBType ( unit ) = b_warehouse then
22459: LD_VAR 0 1
22463: PPUSH
22464: CALL_OW 266
22468: PUSH
22469: LD_INT 1
22471: EQUAL
22472: IFFALSE 22482
// type = b_depot ;
22474: LD_ADDR_VAR 0 2
22478: PUSH
22479: LD_INT 0
22481: ST_TO_ADDR
// if GetBType ( unit ) = b_factory then
22482: LD_VAR 0 1
22486: PPUSH
22487: CALL_OW 266
22491: PUSH
22492: LD_INT 3
22494: EQUAL
22495: IFFALSE 22505
// type = b_workshop ;
22497: LD_ADDR_VAR 0 2
22501: PUSH
22502: LD_INT 2
22504: ST_TO_ADDR
// List_znicenych_budov = List_znicenych_budov ^ [ [ type , x , y , d ] ] ;
22505: LD_ADDR_EXP 73
22509: PUSH
22510: LD_EXP 73
22514: PUSH
22515: LD_VAR 0 2
22519: PUSH
22520: LD_VAR 0 3
22524: PUSH
22525: LD_VAR 0 4
22529: PUSH
22530: LD_VAR 0 5
22534: PUSH
22535: EMPTY
22536: LIST
22537: LIST
22538: LIST
22539: LIST
22540: PUSH
22541: EMPTY
22542: LIST
22543: ADD
22544: ST_TO_ADDR
// end ; if unit in Ru_Attack then
22545: LD_VAR 0 1
22549: PUSH
22550: LD_EXP 70
22554: IN
22555: IFFALSE 22573
// Ru_Attack = Ru_Attack diff unit ;
22557: LD_ADDR_EXP 70
22561: PUSH
22562: LD_EXP 70
22566: PUSH
22567: LD_VAR 0 1
22571: DIFF
22572: ST_TO_ADDR
// if unit in Am_Levy_Attack then
22573: LD_VAR 0 1
22577: PUSH
22578: LD_EXP 87
22582: IN
22583: IFFALSE 22601
// Am_Levy_Attack = Am_Levy_Attack diff unit ;
22585: LD_ADDR_EXP 87
22589: PUSH
22590: LD_EXP 87
22594: PUSH
22595: LD_VAR 0 1
22599: DIFF
22600: ST_TO_ADDR
// if unit in Am_Pravy_Attack then
22601: LD_VAR 0 1
22605: PUSH
22606: LD_EXP 89
22610: IN
22611: IFFALSE 22629
// Am_Pravy_Attack = Am_Pravy_Attack diff unit ;
22613: LD_ADDR_EXP 89
22617: PUSH
22618: LD_EXP 89
22622: PUSH
22623: LD_VAR 0 1
22627: DIFF
22628: ST_TO_ADDR
// if unit in Am2_Levy_Attack then
22629: LD_VAR 0 1
22633: PUSH
22634: LD_EXP 91
22638: IN
22639: IFFALSE 22657
// Am2_Levy_Attack = Am2_Levy_Attack diff unit ;
22641: LD_ADDR_EXP 91
22645: PUSH
22646: LD_EXP 91
22650: PUSH
22651: LD_VAR 0 1
22655: DIFF
22656: ST_TO_ADDR
// if unit in Am2_Pravy_Attack then
22657: LD_VAR 0 1
22661: PUSH
22662: LD_EXP 93
22666: IN
22667: IFFALSE 22685
// Am2_Pravy_Attack = Am2_Pravy_Attack diff unit ;
22669: LD_ADDR_EXP 93
22673: PUSH
22674: LD_EXP 93
22678: PUSH
22679: LD_VAR 0 1
22683: DIFF
22684: ST_TO_ADDR
// if unit = OtravnyRadar then
22685: LD_VAR 0 1
22689: PUSH
22690: LD_EXP 85
22694: EQUAL
22695: IFFALSE 22705
// OtravnyRadar = 0 ;
22697: LD_ADDR_EXP 85
22701: PUSH
22702: LD_INT 0
22704: ST_TO_ADDR
// if unit = Alice and GetSide ( Alice ) = You and TaskObdrzen then
22705: LD_VAR 0 1
22709: PUSH
22710: LD_EXP 16
22714: EQUAL
22715: PUSH
22716: LD_EXP 16
22720: PPUSH
22721: CALL_OW 255
22725: PUSH
22726: LD_EXP 2
22730: EQUAL
22731: AND
22732: PUSH
22733: LD_EXP 98
22737: AND
22738: IFFALSE 22755
// begin ChangeMissionObjectives ( M04 ) ;
22740: LD_STRING M04
22742: PPUSH
22743: CALL_OW 337
// TaskObdrzen = false ;
22747: LD_ADDR_EXP 98
22751: PUSH
22752: LD_INT 0
22754: ST_TO_ADDR
// end ; end ;
22755: PPOPN 10
22757: END
// on UnitGoesToRed ( un ) do begin if GetSide ( un ) = Amik2 and GetType ( un ) = unit_vehicle then
22758: LD_VAR 0 1
22762: PPUSH
22763: CALL_OW 255
22767: PUSH
22768: LD_EXP 5
22772: EQUAL
22773: PUSH
22774: LD_VAR 0 1
22778: PPUSH
22779: CALL_OW 247
22783: PUSH
22784: LD_INT 2
22786: EQUAL
22787: AND
22788: IFFALSE 22799
// ComUnlink ( un ) ;
22790: LD_VAR 0 1
22794: PPUSH
22795: CALL_OW 136
// end ;
22799: PPOPN 1
22801: END
// on BuildingComplete ( b ) do var type , x , y , d , budova ;
22802: LD_INT 0
22804: PPUSH
22805: PPUSH
22806: PPUSH
22807: PPUSH
22808: PPUSH
// begin if not GetSide ( b ) = You2 then
22809: LD_VAR 0 1
22813: PPUSH
22814: CALL_OW 255
22818: PUSH
22819: LD_EXP 3
22823: EQUAL
22824: NOT
22825: IFFALSE 22829
// exit ;
22827: GO 23929
// if GetSide ( b ) = You2 then
22829: LD_VAR 0 1
22833: PPUSH
22834: CALL_OW 255
22838: PUSH
22839: LD_EXP 3
22843: EQUAL
22844: IFFALSE 22855
// EventUpgrade ( b ) ;
22846: LD_VAR 0 1
22850: PPUSH
22851: CALL 20560 0 1
// if b in FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_bunker ] ] ) and GetTaskList ( b ) then
22855: LD_VAR 0 1
22859: PUSH
22860: LD_INT 52
22862: PUSH
22863: EMPTY
22864: LIST
22865: PUSH
22866: LD_INT 22
22868: PUSH
22869: LD_EXP 3
22873: PUSH
22874: EMPTY
22875: LIST
22876: LIST
22877: PUSH
22878: LD_INT 30
22880: PUSH
22881: LD_INT 32
22883: PUSH
22884: EMPTY
22885: LIST
22886: LIST
22887: PUSH
22888: EMPTY
22889: LIST
22890: LIST
22891: LIST
22892: PPUSH
22893: CALL_OW 69
22897: IN
22898: PUSH
22899: LD_VAR 0 1
22903: PPUSH
22904: CALL_OW 437
22908: AND
22909: IFFALSE 22920
// RemoveTasks ( b ) ;
22911: LD_VAR 0 1
22915: PPUSH
22916: CALL_OW 493
// type = GetBType ( b ) ;
22920: LD_ADDR_VAR 0 2
22924: PUSH
22925: LD_VAR 0 1
22929: PPUSH
22930: CALL_OW 266
22934: ST_TO_ADDR
// x = GetX ( b ) ;
22935: LD_ADDR_VAR 0 3
22939: PUSH
22940: LD_VAR 0 1
22944: PPUSH
22945: CALL_OW 250
22949: ST_TO_ADDR
// y = GetY ( b ) ;
22950: LD_ADDR_VAR 0 4
22954: PUSH
22955: LD_VAR 0 1
22959: PPUSH
22960: CALL_OW 251
22964: ST_TO_ADDR
// d = GetDir ( b ) ;
22965: LD_ADDR_VAR 0 5
22969: PUSH
22970: LD_VAR 0 1
22974: PPUSH
22975: CALL_OW 254
22979: ST_TO_ADDR
// budova = [ [ type , x , y , d ] ] ;
22980: LD_ADDR_VAR 0 6
22984: PUSH
22985: LD_VAR 0 2
22989: PUSH
22990: LD_VAR 0 3
22994: PUSH
22995: LD_VAR 0 4
22999: PUSH
23000: LD_VAR 0 5
23004: PUSH
23005: EMPTY
23006: LIST
23007: LIST
23008: LIST
23009: LIST
23010: PUSH
23011: EMPTY
23012: LIST
23013: ST_TO_ADDR
// for budova in List_znicenych_budov do
23014: LD_ADDR_VAR 0 6
23018: PUSH
23019: LD_EXP 73
23023: PUSH
23024: FOR_IN
23025: IFFALSE 23069
// List_znicenych_budov = List_znicenych_budov diff [ [ type , x , y , d ] ] ;
23027: LD_ADDR_EXP 73
23031: PUSH
23032: LD_EXP 73
23036: PUSH
23037: LD_VAR 0 2
23041: PUSH
23042: LD_VAR 0 3
23046: PUSH
23047: LD_VAR 0 4
23051: PUSH
23052: LD_VAR 0 5
23056: PUSH
23057: EMPTY
23058: LIST
23059: LIST
23060: LIST
23061: LIST
23062: PUSH
23063: EMPTY
23064: LIST
23065: DIFF
23066: ST_TO_ADDR
23067: GO 23024
23069: POP
23070: POP
// if b in FilterUnitsInArea ( Vez1 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_bunker ] ] ) then
23071: LD_VAR 0 1
23075: PUSH
23076: LD_INT 18
23078: PPUSH
23079: LD_INT 52
23081: PUSH
23082: EMPTY
23083: LIST
23084: PUSH
23085: LD_INT 22
23087: PUSH
23088: LD_EXP 3
23092: PUSH
23093: EMPTY
23094: LIST
23095: LIST
23096: PUSH
23097: LD_INT 30
23099: PUSH
23100: LD_INT 32
23102: PUSH
23103: EMPTY
23104: LIST
23105: LIST
23106: PUSH
23107: EMPTY
23108: LIST
23109: LIST
23110: LIST
23111: PPUSH
23112: CALL_OW 70
23116: IN
23117: IFFALSE 23296
// begin if ( not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_gun ] ] ) ) or ( not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_factory ] ] ) ) then
23119: LD_INT 52
23121: PUSH
23122: EMPTY
23123: LIST
23124: PUSH
23125: LD_INT 22
23127: PUSH
23128: LD_EXP 3
23132: PUSH
23133: EMPTY
23134: LIST
23135: LIST
23136: PUSH
23137: LD_INT 30
23139: PUSH
23140: LD_INT 17
23142: PUSH
23143: EMPTY
23144: LIST
23145: LIST
23146: PUSH
23147: EMPTY
23148: LIST
23149: LIST
23150: LIST
23151: PPUSH
23152: CALL_OW 69
23156: NOT
23157: PUSH
23158: LD_INT 52
23160: PUSH
23161: EMPTY
23162: LIST
23163: PUSH
23164: LD_INT 22
23166: PUSH
23167: LD_EXP 3
23171: PUSH
23172: EMPTY
23173: LIST
23174: LIST
23175: PUSH
23176: LD_INT 30
23178: PUSH
23179: LD_INT 3
23181: PUSH
23182: EMPTY
23183: LIST
23184: LIST
23185: PUSH
23186: EMPTY
23187: LIST
23188: LIST
23189: LIST
23190: PPUSH
23191: CALL_OW 69
23195: NOT
23196: OR
23197: IFFALSE 23284
// begin repeat Wait ( 0 0$3 ) ;
23199: LD_INT 105
23201: PPUSH
23202: CALL_OW 67
// until FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_gun ] ] ) and FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_factory ] ] ) ;
23206: LD_INT 52
23208: PUSH
23209: EMPTY
23210: LIST
23211: PUSH
23212: LD_INT 22
23214: PUSH
23215: LD_EXP 3
23219: PUSH
23220: EMPTY
23221: LIST
23222: LIST
23223: PUSH
23224: LD_INT 30
23226: PUSH
23227: LD_INT 17
23229: PUSH
23230: EMPTY
23231: LIST
23232: LIST
23233: PUSH
23234: EMPTY
23235: LIST
23236: LIST
23237: LIST
23238: PPUSH
23239: CALL_OW 69
23243: PUSH
23244: LD_INT 52
23246: PUSH
23247: EMPTY
23248: LIST
23249: PUSH
23250: LD_INT 22
23252: PUSH
23253: LD_EXP 3
23257: PUSH
23258: EMPTY
23259: LIST
23260: LIST
23261: PUSH
23262: LD_INT 30
23264: PUSH
23265: LD_INT 3
23267: PUSH
23268: EMPTY
23269: LIST
23270: LIST
23271: PUSH
23272: EMPTY
23273: LIST
23274: LIST
23275: LIST
23276: PPUSH
23277: CALL_OW 69
23281: AND
23282: IFFALSE 23199
// end ; AddComPlaceWeapon ( b , ru_heavy_gun ) ;
23284: LD_VAR 0 1
23288: PPUSH
23289: LD_INT 46
23291: PPUSH
23292: CALL_OW 208
// end ; if b in FilterUnitsInArea ( Vez2 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_turret ] ] ) then
23296: LD_VAR 0 1
23300: PUSH
23301: LD_INT 19
23303: PPUSH
23304: LD_INT 52
23306: PUSH
23307: EMPTY
23308: LIST
23309: PUSH
23310: LD_INT 22
23312: PUSH
23313: LD_EXP 3
23317: PUSH
23318: EMPTY
23319: LIST
23320: LIST
23321: PUSH
23322: LD_INT 30
23324: PUSH
23325: LD_INT 33
23327: PUSH
23328: EMPTY
23329: LIST
23330: LIST
23331: PUSH
23332: EMPTY
23333: LIST
23334: LIST
23335: LIST
23336: PPUSH
23337: CALL_OW 70
23341: IN
23342: IFFALSE 23521
// begin if ( not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_rocket ] ] ) ) or ( not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_factory ] ] ) ) then
23344: LD_INT 52
23346: PUSH
23347: EMPTY
23348: LIST
23349: PUSH
23350: LD_INT 22
23352: PUSH
23353: LD_EXP 3
23357: PUSH
23358: EMPTY
23359: LIST
23360: LIST
23361: PUSH
23362: LD_INT 30
23364: PUSH
23365: LD_INT 18
23367: PUSH
23368: EMPTY
23369: LIST
23370: LIST
23371: PUSH
23372: EMPTY
23373: LIST
23374: LIST
23375: LIST
23376: PPUSH
23377: CALL_OW 69
23381: NOT
23382: PUSH
23383: LD_INT 52
23385: PUSH
23386: EMPTY
23387: LIST
23388: PUSH
23389: LD_INT 22
23391: PUSH
23392: LD_EXP 3
23396: PUSH
23397: EMPTY
23398: LIST
23399: LIST
23400: PUSH
23401: LD_INT 30
23403: PUSH
23404: LD_INT 3
23406: PUSH
23407: EMPTY
23408: LIST
23409: LIST
23410: PUSH
23411: EMPTY
23412: LIST
23413: LIST
23414: LIST
23415: PPUSH
23416: CALL_OW 69
23420: NOT
23421: OR
23422: IFFALSE 23509
// begin repeat Wait ( 0 0$3 ) ;
23424: LD_INT 105
23426: PPUSH
23427: CALL_OW 67
// until FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_rocket ] ] ) and FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_factory ] ] ) ;
23431: LD_INT 52
23433: PUSH
23434: EMPTY
23435: LIST
23436: PUSH
23437: LD_INT 22
23439: PUSH
23440: LD_EXP 3
23444: PUSH
23445: EMPTY
23446: LIST
23447: LIST
23448: PUSH
23449: LD_INT 30
23451: PUSH
23452: LD_INT 18
23454: PUSH
23455: EMPTY
23456: LIST
23457: LIST
23458: PUSH
23459: EMPTY
23460: LIST
23461: LIST
23462: LIST
23463: PPUSH
23464: CALL_OW 69
23468: PUSH
23469: LD_INT 52
23471: PUSH
23472: EMPTY
23473: LIST
23474: PUSH
23475: LD_INT 22
23477: PUSH
23478: LD_EXP 3
23482: PUSH
23483: EMPTY
23484: LIST
23485: LIST
23486: PUSH
23487: LD_INT 30
23489: PUSH
23490: LD_INT 3
23492: PUSH
23493: EMPTY
23494: LIST
23495: LIST
23496: PUSH
23497: EMPTY
23498: LIST
23499: LIST
23500: LIST
23501: PPUSH
23502: CALL_OW 69
23506: AND
23507: IFFALSE 23424
// end ; AddComPlaceWeapon ( b , ru_rocket_launcher ) ;
23509: LD_VAR 0 1
23513: PPUSH
23514: LD_INT 45
23516: PPUSH
23517: CALL_OW 208
// end ; if b in FilterUnitsInArea ( Vez3 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_bunker ] ] ) then
23521: LD_VAR 0 1
23525: PUSH
23526: LD_INT 20
23528: PPUSH
23529: LD_INT 52
23531: PUSH
23532: EMPTY
23533: LIST
23534: PUSH
23535: LD_INT 22
23537: PUSH
23538: LD_EXP 3
23542: PUSH
23543: EMPTY
23544: LIST
23545: LIST
23546: PUSH
23547: LD_INT 30
23549: PUSH
23550: LD_INT 32
23552: PUSH
23553: EMPTY
23554: LIST
23555: LIST
23556: PUSH
23557: EMPTY
23558: LIST
23559: LIST
23560: LIST
23561: PPUSH
23562: CALL_OW 70
23566: IN
23567: IFFALSE 23704
// begin if ( not GetTech ( tech_gatling , You2 ) = state_researched ) or ( not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_factory ] ] ) ) then
23569: LD_INT 69
23571: PPUSH
23572: LD_EXP 3
23576: PPUSH
23577: CALL_OW 321
23581: PUSH
23582: LD_INT 2
23584: EQUAL
23585: NOT
23586: PUSH
23587: LD_INT 52
23589: PUSH
23590: EMPTY
23591: LIST
23592: PUSH
23593: LD_INT 22
23595: PUSH
23596: LD_EXP 3
23600: PUSH
23601: EMPTY
23602: LIST
23603: LIST
23604: PUSH
23605: LD_INT 30
23607: PUSH
23608: LD_INT 3
23610: PUSH
23611: EMPTY
23612: LIST
23613: LIST
23614: PUSH
23615: EMPTY
23616: LIST
23617: LIST
23618: LIST
23619: PPUSH
23620: CALL_OW 69
23624: NOT
23625: OR
23626: IFFALSE 23692
// begin repeat Wait ( 0 0$3 ) ;
23628: LD_INT 105
23630: PPUSH
23631: CALL_OW 67
// until GetTech ( tech_gatling , You2 ) = state_researched and FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_factory ] ] ) ;
23635: LD_INT 69
23637: PPUSH
23638: LD_EXP 3
23642: PPUSH
23643: CALL_OW 321
23647: PUSH
23648: LD_INT 2
23650: EQUAL
23651: PUSH
23652: LD_INT 52
23654: PUSH
23655: EMPTY
23656: LIST
23657: PUSH
23658: LD_INT 22
23660: PUSH
23661: LD_EXP 3
23665: PUSH
23666: EMPTY
23667: LIST
23668: LIST
23669: PUSH
23670: LD_INT 30
23672: PUSH
23673: LD_INT 3
23675: PUSH
23676: EMPTY
23677: LIST
23678: LIST
23679: PUSH
23680: EMPTY
23681: LIST
23682: LIST
23683: LIST
23684: PPUSH
23685: CALL_OW 69
23689: AND
23690: IFFALSE 23628
// end ; AddComPlaceWeapon ( b , ru_gatling_gun ) ;
23692: LD_VAR 0 1
23696: PPUSH
23697: LD_INT 43
23699: PPUSH
23700: CALL_OW 208
// end ; if b in FilterUnitsInArea ( Vez4 , [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_bunker ] ] ) then
23704: LD_VAR 0 1
23708: PUSH
23709: LD_INT 21
23711: PPUSH
23712: LD_INT 52
23714: PUSH
23715: EMPTY
23716: LIST
23717: PUSH
23718: LD_INT 22
23720: PUSH
23721: LD_EXP 3
23725: PUSH
23726: EMPTY
23727: LIST
23728: LIST
23729: PUSH
23730: LD_INT 30
23732: PUSH
23733: LD_INT 32
23735: PUSH
23736: EMPTY
23737: LIST
23738: LIST
23739: PUSH
23740: EMPTY
23741: LIST
23742: LIST
23743: LIST
23744: PPUSH
23745: CALL_OW 70
23749: IN
23750: IFFALSE 23929
// begin if ( not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_gun ] ] ) ) or ( not FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_factory ] ] ) ) then
23752: LD_INT 52
23754: PUSH
23755: EMPTY
23756: LIST
23757: PUSH
23758: LD_INT 22
23760: PUSH
23761: LD_EXP 3
23765: PUSH
23766: EMPTY
23767: LIST
23768: LIST
23769: PUSH
23770: LD_INT 30
23772: PUSH
23773: LD_INT 17
23775: PUSH
23776: EMPTY
23777: LIST
23778: LIST
23779: PUSH
23780: EMPTY
23781: LIST
23782: LIST
23783: LIST
23784: PPUSH
23785: CALL_OW 69
23789: NOT
23790: PUSH
23791: LD_INT 52
23793: PUSH
23794: EMPTY
23795: LIST
23796: PUSH
23797: LD_INT 22
23799: PUSH
23800: LD_EXP 3
23804: PUSH
23805: EMPTY
23806: LIST
23807: LIST
23808: PUSH
23809: LD_INT 30
23811: PUSH
23812: LD_INT 3
23814: PUSH
23815: EMPTY
23816: LIST
23817: LIST
23818: PUSH
23819: EMPTY
23820: LIST
23821: LIST
23822: LIST
23823: PPUSH
23824: CALL_OW 69
23828: NOT
23829: OR
23830: IFFALSE 23917
// begin repeat Wait ( 0 0$3 ) ;
23832: LD_INT 105
23834: PPUSH
23835: CALL_OW 67
// until FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_ext_gun ] ] ) and FilterAllUnits ( [ [ f_placed ] , [ f_side , You2 ] , [ f_btype , b_factory ] ] ) ;
23839: LD_INT 52
23841: PUSH
23842: EMPTY
23843: LIST
23844: PUSH
23845: LD_INT 22
23847: PUSH
23848: LD_EXP 3
23852: PUSH
23853: EMPTY
23854: LIST
23855: LIST
23856: PUSH
23857: LD_INT 30
23859: PUSH
23860: LD_INT 17
23862: PUSH
23863: EMPTY
23864: LIST
23865: LIST
23866: PUSH
23867: EMPTY
23868: LIST
23869: LIST
23870: LIST
23871: PPUSH
23872: CALL_OW 69
23876: PUSH
23877: LD_INT 52
23879: PUSH
23880: EMPTY
23881: LIST
23882: PUSH
23883: LD_INT 22
23885: PUSH
23886: LD_EXP 3
23890: PUSH
23891: EMPTY
23892: LIST
23893: LIST
23894: PUSH
23895: LD_INT 30
23897: PUSH
23898: LD_INT 3
23900: PUSH
23901: EMPTY
23902: LIST
23903: LIST
23904: PUSH
23905: EMPTY
23906: LIST
23907: LIST
23908: LIST
23909: PPUSH
23910: CALL_OW 69
23914: AND
23915: IFFALSE 23832
// end ; AddComPlaceWeapon ( b , ru_gun ) ;
23917: LD_VAR 0 1
23921: PPUSH
23922: LD_INT 44
23924: PPUSH
23925: CALL_OW 208
// end ; end ;
23929: PPOPN 6
23931: END
// on BuildingCaptured ( build , origside , eng ) do begin if GetSide ( eng ) = You and GetNation ( build ) = nation_american and ( GetBType ( build ) = 6 or GetBType ( build ) = 7 or GetBType ( build ) = 8 or GetBType ( build ) = 9 or GetBType ( build ) = 10 or GetBType ( build ) = 11 or GetBType ( build ) = 12 or GetBType ( build ) = 13 or GetBType ( build ) = 14 or GetBType ( build ) = 15 ) then
23932: LD_VAR 0 3
23936: PPUSH
23937: CALL_OW 255
23941: PUSH
23942: LD_EXP 2
23946: EQUAL
23947: PUSH
23948: LD_VAR 0 1
23952: PPUSH
23953: CALL_OW 248
23957: PUSH
23958: LD_INT 1
23960: EQUAL
23961: AND
23962: PUSH
23963: LD_VAR 0 1
23967: PPUSH
23968: CALL_OW 266
23972: PUSH
23973: LD_INT 6
23975: EQUAL
23976: PUSH
23977: LD_VAR 0 1
23981: PPUSH
23982: CALL_OW 266
23986: PUSH
23987: LD_INT 7
23989: EQUAL
23990: OR
23991: PUSH
23992: LD_VAR 0 1
23996: PPUSH
23997: CALL_OW 266
24001: PUSH
24002: LD_INT 8
24004: EQUAL
24005: OR
24006: PUSH
24007: LD_VAR 0 1
24011: PPUSH
24012: CALL_OW 266
24016: PUSH
24017: LD_INT 9
24019: EQUAL
24020: OR
24021: PUSH
24022: LD_VAR 0 1
24026: PPUSH
24027: CALL_OW 266
24031: PUSH
24032: LD_INT 10
24034: EQUAL
24035: OR
24036: PUSH
24037: LD_VAR 0 1
24041: PPUSH
24042: CALL_OW 266
24046: PUSH
24047: LD_INT 11
24049: EQUAL
24050: OR
24051: PUSH
24052: LD_VAR 0 1
24056: PPUSH
24057: CALL_OW 266
24061: PUSH
24062: LD_INT 12
24064: EQUAL
24065: OR
24066: PUSH
24067: LD_VAR 0 1
24071: PPUSH
24072: CALL_OW 266
24076: PUSH
24077: LD_INT 13
24079: EQUAL
24080: OR
24081: PUSH
24082: LD_VAR 0 1
24086: PPUSH
24087: CALL_OW 266
24091: PUSH
24092: LD_INT 14
24094: EQUAL
24095: OR
24096: PUSH
24097: LD_VAR 0 1
24101: PPUSH
24102: CALL_OW 266
24106: PUSH
24107: LD_INT 15
24109: EQUAL
24110: OR
24111: AND
24112: IFFALSE 24154
// begin repeat Wait ( 0 0$1 ) ;
24114: LD_INT 35
24116: PPUSH
24117: CALL_OW 67
// until GetLives ( build ) > 250 ;
24121: LD_VAR 0 1
24125: PPUSH
24126: CALL_OW 256
24130: PUSH
24131: LD_INT 250
24133: GREATER
24134: IFFALSE 24114
// if not IsPlaced ( build ) then
24136: LD_VAR 0 1
24140: PPUSH
24141: CALL_OW 305
24145: NOT
24146: IFFALSE 24150
// exit ;
24148: GO 24154
// DialogLabkaZabrana ;
24150: CALL 27330 0 0
// end ; end ;
24154: PPOPN 3
24156: END
// on ResearchComplete ( t , lab ) do var i ;
24157: LD_INT 0
24159: PPUSH
// begin if not GetSide ( lab ) = You2 then
24160: LD_VAR 0 2
24164: PPUSH
24165: CALL_OW 255
24169: PUSH
24170: LD_EXP 3
24174: EQUAL
24175: NOT
24176: IFFALSE 24180
// exit ;
24178: GO 24372
// if t in Tech_list then
24180: LD_VAR 0 1
24184: PUSH
24185: LD_EXP 63
24189: IN
24190: IFFALSE 24208
// Tech_list = Tech_list diff t ;
24192: LD_ADDR_EXP 63
24196: PUSH
24197: LD_EXP 63
24201: PUSH
24202: LD_VAR 0 1
24206: DIFF
24207: ST_TO_ADDR
// if t in Tech_list2 then
24208: LD_VAR 0 1
24212: PUSH
24213: LD_EXP 64
24217: IN
24218: IFFALSE 24236
// Tech_list2 = Tech_list2 diff t ;
24220: LD_ADDR_EXP 64
24224: PUSH
24225: LD_EXP 64
24229: PUSH
24230: LD_VAR 0 1
24234: DIFF
24235: ST_TO_ADDR
// if t in Tech_list3 then
24236: LD_VAR 0 1
24240: PUSH
24241: LD_EXP 65
24245: IN
24246: IFFALSE 24264
// Tech_list3 = Tech_list3 diff t ;
24248: LD_ADDR_EXP 65
24252: PUSH
24253: LD_EXP 65
24257: PUSH
24258: LD_VAR 0 1
24262: DIFF
24263: ST_TO_ADDR
// if t in Am_Tech_list then
24264: LD_VAR 0 1
24268: PUSH
24269: LD_EXP 86
24273: IN
24274: IFFALSE 24292
// Am_Tech_list = Am_Tech_list diff t ;
24276: LD_ADDR_EXP 86
24280: PUSH
24281: LD_EXP 86
24285: PUSH
24286: LD_VAR 0 1
24290: DIFF
24291: ST_TO_ADDR
// if t in Am_Tech_list2 then
24292: LD_VAR 0 1
24296: PUSH
24297: LD_EXP 88
24301: IN
24302: IFFALSE 24320
// Am_Tech_list2 = Am_Tech_list2 diff t ;
24304: LD_ADDR_EXP 88
24308: PUSH
24309: LD_EXP 88
24313: PUSH
24314: LD_VAR 0 1
24318: DIFF
24319: ST_TO_ADDR
// if t = SibDul_Tech then
24320: LD_VAR 0 1
24324: PUSH
24325: LD_EXP 72
24329: EQUAL
24330: IFFALSE 24340
// Chci_hledace = true ;
24332: LD_ADDR_EXP 67
24336: PUSH
24337: LD_INT 1
24339: ST_TO_ADDR
// if t = Tech_TauRad then
24340: LD_VAR 0 1
24344: PUSH
24345: LD_INT 28
24347: EQUAL
24348: IFFALSE 24358
// Bazuka_FireTime = true ;
24350: LD_ADDR_EXP 71
24354: PUSH
24355: LD_INT 1
24357: ST_TO_ADDR
// if t = Tech_SibLoc then
24358: LD_VAR 0 1
24362: PUSH
24363: LD_INT 19
24365: EQUAL
24366: IFFALSE 24372
// DialogSiberitLokalizovan ;
24368: CALL 27102 0 0
// end ;
24372: PPOPN 3
24374: END
// on VehicleDestroyed ( veh , side , nation , x , y , direction , chassis , control , engine , weapon ) do begin if veh in Ru_Attack then
24375: LD_VAR 0 1
24379: PUSH
24380: LD_EXP 70
24384: IN
24385: IFFALSE 24403
// Ru_Attack = Ru_Attack diff veh ;
24387: LD_ADDR_EXP 70
24391: PUSH
24392: LD_EXP 70
24396: PUSH
24397: LD_VAR 0 1
24401: DIFF
24402: ST_TO_ADDR
// if veh = OtravnyRadar then
24403: LD_VAR 0 1
24407: PUSH
24408: LD_EXP 85
24412: EQUAL
24413: IFFALSE 24423
// OtravnyRadar = 0 ;
24415: LD_ADDR_EXP 85
24419: PUSH
24420: LD_INT 0
24422: ST_TO_ADDR
// if veh in Am_Levy_Attack then
24423: LD_VAR 0 1
24427: PUSH
24428: LD_EXP 87
24432: IN
24433: IFFALSE 24451
// Am_Levy_Attack = Am_Levy_Attack diff veh ;
24435: LD_ADDR_EXP 87
24439: PUSH
24440: LD_EXP 87
24444: PUSH
24445: LD_VAR 0 1
24449: DIFF
24450: ST_TO_ADDR
// if veh in Am_Pravy_Attack then
24451: LD_VAR 0 1
24455: PUSH
24456: LD_EXP 89
24460: IN
24461: IFFALSE 24479
// Am_Pravy_Attack = Am_Pravy_Attack diff veh ;
24463: LD_ADDR_EXP 89
24467: PUSH
24468: LD_EXP 89
24472: PUSH
24473: LD_VAR 0 1
24477: DIFF
24478: ST_TO_ADDR
// if veh in Am2_Levy_Attack then
24479: LD_VAR 0 1
24483: PUSH
24484: LD_EXP 91
24488: IN
24489: IFFALSE 24507
// Am2_Levy_Attack = Am2_Levy_Attack diff veh ;
24491: LD_ADDR_EXP 91
24495: PUSH
24496: LD_EXP 91
24500: PUSH
24501: LD_VAR 0 1
24505: DIFF
24506: ST_TO_ADDR
// if veh in Am2_Pravy_Attack then
24507: LD_VAR 0 1
24511: PUSH
24512: LD_EXP 93
24516: IN
24517: IFFALSE 24535
// Am2_Pravy_Attack = Am2_Pravy_Attack diff veh ;
24519: LD_ADDR_EXP 93
24523: PUSH
24524: LD_EXP 93
24528: PUSH
24529: LD_VAR 0 1
24533: DIFF
24534: ST_TO_ADDR
// end ;
24535: PPOPN 10
24537: END
// on VehicleConstructed ( veh , fac ) do begin if GetSide ( veh ) = You2 then
24538: LD_VAR 0 1
24542: PPUSH
24543: CALL_OW 255
24547: PUSH
24548: LD_EXP 3
24552: EQUAL
24553: IFFALSE 24564
// ComCancel ( fac ) ;
24555: LD_VAR 0 2
24559: PPUSH
24560: CALL_OW 127
// if GetSide ( veh ) = Amik and GetWeapon ( veh ) = us_radar then
24564: LD_VAR 0 1
24568: PPUSH
24569: CALL_OW 255
24573: PUSH
24574: LD_EXP 4
24578: EQUAL
24579: PUSH
24580: LD_VAR 0 1
24584: PPUSH
24585: CALL_OW 264
24589: PUSH
24590: LD_INT 11
24592: EQUAL
24593: AND
24594: IFFALSE 24606
// OtravnyRadar = veh ;
24596: LD_ADDR_EXP 85
24600: PUSH
24601: LD_VAR 0 1
24605: ST_TO_ADDR
// if GetSide ( veh ) = Amik2 then
24606: LD_VAR 0 1
24610: PPUSH
24611: CALL_OW 255
24615: PUSH
24616: LD_EXP 5
24620: EQUAL
24621: IFFALSE 24757
// begin if fac = Am2_Fac_1 then
24623: LD_VAR 0 2
24627: PUSH
24628: LD_INT 156
24630: EQUAL
24631: IFFALSE 24657
// begin Wait ( 0 0$5 ) ;
24633: LD_INT 175
24635: PPUSH
24636: CALL_OW 67
// ComMoveXY ( veh , 38 , 12 ) end else
24640: LD_VAR 0 1
24644: PPUSH
24645: LD_INT 38
24647: PPUSH
24648: LD_INT 12
24650: PPUSH
24651: CALL_OW 111
24655: GO 24757
// if fac = Am2_Fac_2 then
24657: LD_VAR 0 2
24661: PUSH
24662: LD_INT 157
24664: EQUAL
24665: IFFALSE 24691
// begin Wait ( 0 0$5 ) ;
24667: LD_INT 175
24669: PPUSH
24670: CALL_OW 67
// ComMoveXY ( veh , 55 , 17 ) ;
24674: LD_VAR 0 1
24678: PPUSH
24679: LD_INT 55
24681: PPUSH
24682: LD_INT 17
24684: PPUSH
24685: CALL_OW 111
// end else
24689: GO 24757
// if fac = Am2_Fac_3 then
24691: LD_VAR 0 2
24695: PUSH
24696: LD_INT 158
24698: EQUAL
24699: IFFALSE 24725
// begin Wait ( 0 0$5 ) ;
24701: LD_INT 175
24703: PPUSH
24704: CALL_OW 67
// ComMoveXY ( veh , 101 , 20 ) ;
24708: LD_VAR 0 1
24712: PPUSH
24713: LD_INT 101
24715: PPUSH
24716: LD_INT 20
24718: PPUSH
24719: CALL_OW 111
// end else
24723: GO 24757
// if fac = Am2_Fac_4 then
24725: LD_VAR 0 2
24729: PUSH
24730: LD_INT 159
24732: EQUAL
24733: IFFALSE 24757
// begin Wait ( 0 0$5 ) ;
24735: LD_INT 175
24737: PPUSH
24738: CALL_OW 67
// ComMoveXY ( veh , 122 , 22 ) ;
24742: LD_VAR 0 1
24746: PPUSH
24747: LD_INT 122
24749: PPUSH
24750: LD_INT 22
24752: PPUSH
24753: CALL_OW 111
// end ; end ; end ;
24757: PPOPN 2
24759: END
// on VehicleCaptured ( new_identifier , old_identifier , old_side , capturing_unit ) do var nova_cesta , i , x ;
24760: LD_INT 0
24762: PPUSH
24763: PPUSH
24764: PPUSH
// begin if old_side = You then
24765: LD_VAR 0 3
24769: PUSH
24770: LD_EXP 2
24774: EQUAL
24775: IFFALSE 26087
// begin if capturing_unit in Am_Utok_1_List then
24777: LD_VAR 0 4
24781: PUSH
24782: LD_EXP 80
24786: IN
24787: IFFALSE 25713
// begin Am_Utok_1_List = Am_Utok_1_List ^ new_identifier ;
24789: LD_ADDR_EXP 80
24793: PUSH
24794: LD_EXP 80
24798: PUSH
24799: LD_VAR 0 1
24803: ADD
24804: ST_TO_ADDR
// nova_cesta = [ ] ;
24805: LD_ADDR_VAR 0 5
24809: PUSH
24810: EMPTY
24811: ST_TO_ADDR
// if CestaInfo = 1 then
24812: LD_EXP 83
24816: PUSH
24817: LD_INT 1
24819: EQUAL
24820: IFFALSE 25054
// begin case FindNearestPoint ( [ 48 , 56 , 68 , 71 , 90 , 103 , 104 , 128 , 126 , 168 , 131 , 187 ] , GetX ( new_identifier ) , GetY ( new_identifier ) ) of [ 48 , 56 ] :
24822: LD_INT 48
24824: PUSH
24825: LD_INT 56
24827: PUSH
24828: LD_INT 68
24830: PUSH
24831: LD_INT 71
24833: PUSH
24834: LD_INT 90
24836: PUSH
24837: LD_INT 103
24839: PUSH
24840: LD_INT 104
24842: PUSH
24843: LD_INT 128
24845: PUSH
24846: LD_INT 126
24848: PUSH
24849: LD_INT 168
24851: PUSH
24852: LD_INT 131
24854: PUSH
24855: LD_INT 187
24857: PUSH
24858: EMPTY
24859: LIST
24860: LIST
24861: LIST
24862: LIST
24863: LIST
24864: LIST
24865: LIST
24866: LIST
24867: LIST
24868: LIST
24869: LIST
24870: LIST
24871: PPUSH
24872: LD_VAR 0 1
24876: PPUSH
24877: CALL_OW 250
24881: PPUSH
24882: LD_VAR 0 1
24886: PPUSH
24887: CALL_OW 251
24891: PPUSH
24892: CALL_OW 439
24896: PUSH
24897: LD_INT 48
24899: PUSH
24900: LD_INT 56
24902: PUSH
24903: EMPTY
24904: LIST
24905: LIST
24906: DOUBLE
24907: EQUAL
24908: IFTRUE 24912
24910: GO 24923
24912: POP
// x = 1 ; [ 68 , 71 ] :
24913: LD_ADDR_VAR 0 7
24917: PUSH
24918: LD_INT 1
24920: ST_TO_ADDR
24921: GO 25054
24923: LD_INT 68
24925: PUSH
24926: LD_INT 71
24928: PUSH
24929: EMPTY
24930: LIST
24931: LIST
24932: DOUBLE
24933: EQUAL
24934: IFTRUE 24938
24936: GO 24949
24938: POP
// x = 2 ; [ 90 , 103 ] :
24939: LD_ADDR_VAR 0 7
24943: PUSH
24944: LD_INT 2
24946: ST_TO_ADDR
24947: GO 25054
24949: LD_INT 90
24951: PUSH
24952: LD_INT 103
24954: PUSH
24955: EMPTY
24956: LIST
24957: LIST
24958: DOUBLE
24959: EQUAL
24960: IFTRUE 24964
24962: GO 24975
24964: POP
// x = 3 ; [ 104 , 128 ] :
24965: LD_ADDR_VAR 0 7
24969: PUSH
24970: LD_INT 3
24972: ST_TO_ADDR
24973: GO 25054
24975: LD_INT 104
24977: PUSH
24978: LD_INT 128
24980: PUSH
24981: EMPTY
24982: LIST
24983: LIST
24984: DOUBLE
24985: EQUAL
24986: IFTRUE 24990
24988: GO 25001
24990: POP
// x = 4 ; [ 126 , 168 ] :
24991: LD_ADDR_VAR 0 7
24995: PUSH
24996: LD_INT 4
24998: ST_TO_ADDR
24999: GO 25054
25001: LD_INT 126
25003: PUSH
25004: LD_INT 168
25006: PUSH
25007: EMPTY
25008: LIST
25009: LIST
25010: DOUBLE
25011: EQUAL
25012: IFTRUE 25016
25014: GO 25027
25016: POP
// x = 5 ; [ 131 , 187 ] :
25017: LD_ADDR_VAR 0 7
25021: PUSH
25022: LD_INT 5
25024: ST_TO_ADDR
25025: GO 25054
25027: LD_INT 131
25029: PUSH
25030: LD_INT 187
25032: PUSH
25033: EMPTY
25034: LIST
25035: LIST
25036: DOUBLE
25037: EQUAL
25038: IFTRUE 25042
25040: GO 25053
25042: POP
// x = 6 ; end ;
25043: LD_ADDR_VAR 0 7
25047: PUSH
25048: LD_INT 6
25050: ST_TO_ADDR
25051: GO 25054
25053: POP
// end ; if CestaInfo = 2 then
25054: LD_EXP 83
25058: PUSH
25059: LD_INT 2
25061: EQUAL
25062: IFFALSE 25330
// begin case FindNearestPoint ( [ 48 , 56 , 60 , 93 , 86 , 128 , 88 , 156 , 111 , 170 , 128 , 173 , 131 , 187 ] , GetX ( new_identifier ) , GetY ( new_identifier ) ) of [ 48 , 56 ] :
25064: LD_INT 48
25066: PUSH
25067: LD_INT 56
25069: PUSH
25070: LD_INT 60
25072: PUSH
25073: LD_INT 93
25075: PUSH
25076: LD_INT 86
25078: PUSH
25079: LD_INT 128
25081: PUSH
25082: LD_INT 88
25084: PUSH
25085: LD_INT 156
25087: PUSH
25088: LD_INT 111
25090: PUSH
25091: LD_INT 170
25093: PUSH
25094: LD_INT 128
25096: PUSH
25097: LD_INT 173
25099: PUSH
25100: LD_INT 131
25102: PUSH
25103: LD_INT 187
25105: PUSH
25106: EMPTY
25107: LIST
25108: LIST
25109: LIST
25110: LIST
25111: LIST
25112: LIST
25113: LIST
25114: LIST
25115: LIST
25116: LIST
25117: LIST
25118: LIST
25119: LIST
25120: LIST
25121: PPUSH
25122: LD_VAR 0 1
25126: PPUSH
25127: CALL_OW 250
25131: PPUSH
25132: LD_VAR 0 1
25136: PPUSH
25137: CALL_OW 251
25141: PPUSH
25142: CALL_OW 439
25146: PUSH
25147: LD_INT 48
25149: PUSH
25150: LD_INT 56
25152: PUSH
25153: EMPTY
25154: LIST
25155: LIST
25156: DOUBLE
25157: EQUAL
25158: IFTRUE 25162
25160: GO 25173
25162: POP
// x = 1 ; [ 60 , 93 ] :
25163: LD_ADDR_VAR 0 7
25167: PUSH
25168: LD_INT 1
25170: ST_TO_ADDR
25171: GO 25330
25173: LD_INT 60
25175: PUSH
25176: LD_INT 93
25178: PUSH
25179: EMPTY
25180: LIST
25181: LIST
25182: DOUBLE
25183: EQUAL
25184: IFTRUE 25188
25186: GO 25199
25188: POP
// x = 2 ; [ 86 , 128 ] :
25189: LD_ADDR_VAR 0 7
25193: PUSH
25194: LD_INT 2
25196: ST_TO_ADDR
25197: GO 25330
25199: LD_INT 86
25201: PUSH
25202: LD_INT 128
25204: PUSH
25205: EMPTY
25206: LIST
25207: LIST
25208: DOUBLE
25209: EQUAL
25210: IFTRUE 25214
25212: GO 25225
25214: POP
// x = 3 ; [ 88 , 156 ] :
25215: LD_ADDR_VAR 0 7
25219: PUSH
25220: LD_INT 3
25222: ST_TO_ADDR
25223: GO 25330
25225: LD_INT 88
25227: PUSH
25228: LD_INT 156
25230: PUSH
25231: EMPTY
25232: LIST
25233: LIST
25234: DOUBLE
25235: EQUAL
25236: IFTRUE 25240
25238: GO 25251
25240: POP
// x = 4 ; [ 111 , 170 ] :
25241: LD_ADDR_VAR 0 7
25245: PUSH
25246: LD_INT 4
25248: ST_TO_ADDR
25249: GO 25330
25251: LD_INT 111
25253: PUSH
25254: LD_INT 170
25256: PUSH
25257: EMPTY
25258: LIST
25259: LIST
25260: DOUBLE
25261: EQUAL
25262: IFTRUE 25266
25264: GO 25277
25266: POP
// x = 5 ; [ 128 , 173 ] :
25267: LD_ADDR_VAR 0 7
25271: PUSH
25272: LD_INT 5
25274: ST_TO_ADDR
25275: GO 25330
25277: LD_INT 128
25279: PUSH
25280: LD_INT 173
25282: PUSH
25283: EMPTY
25284: LIST
25285: LIST
25286: DOUBLE
25287: EQUAL
25288: IFTRUE 25292
25290: GO 25303
25292: POP
// x = 6 ; [ 131 , 187 ] :
25293: LD_ADDR_VAR 0 7
25297: PUSH
25298: LD_INT 6
25300: ST_TO_ADDR
25301: GO 25330
25303: LD_INT 131
25305: PUSH
25306: LD_INT 187
25308: PUSH
25309: EMPTY
25310: LIST
25311: LIST
25312: DOUBLE
25313: EQUAL
25314: IFTRUE 25318
25316: GO 25329
25318: POP
// x = 7 ; end ;
25319: LD_ADDR_VAR 0 7
25323: PUSH
25324: LD_INT 7
25326: ST_TO_ADDR
25327: GO 25330
25329: POP
// end ; if CestaInfo = 3 then
25330: LD_EXP 83
25334: PUSH
25335: LD_INT 3
25337: EQUAL
25338: IFFALSE 25606
// begin case FindNearestPoint ( [ 48 , 56 , 71 , 72 , 106 , 95 , 127 , 126 , 149 , 150 , 136 , 174 , 131 , 187 ] , GetX ( new_identifier ) , GetY ( new_identifier ) ) of [ 48 , 56 ] :
25340: LD_INT 48
25342: PUSH
25343: LD_INT 56
25345: PUSH
25346: LD_INT 71
25348: PUSH
25349: LD_INT 72
25351: PUSH
25352: LD_INT 106
25354: PUSH
25355: LD_INT 95
25357: PUSH
25358: LD_INT 127
25360: PUSH
25361: LD_INT 126
25363: PUSH
25364: LD_INT 149
25366: PUSH
25367: LD_INT 150
25369: PUSH
25370: LD_INT 136
25372: PUSH
25373: LD_INT 174
25375: PUSH
25376: LD_INT 131
25378: PUSH
25379: LD_INT 187
25381: PUSH
25382: EMPTY
25383: LIST
25384: LIST
25385: LIST
25386: LIST
25387: LIST
25388: LIST
25389: LIST
25390: LIST
25391: LIST
25392: LIST
25393: LIST
25394: LIST
25395: LIST
25396: LIST
25397: PPUSH
25398: LD_VAR 0 1
25402: PPUSH
25403: CALL_OW 250
25407: PPUSH
25408: LD_VAR 0 1
25412: PPUSH
25413: CALL_OW 251
25417: PPUSH
25418: CALL_OW 439
25422: PUSH
25423: LD_INT 48
25425: PUSH
25426: LD_INT 56
25428: PUSH
25429: EMPTY
25430: LIST
25431: LIST
25432: DOUBLE
25433: EQUAL
25434: IFTRUE 25438
25436: GO 25449
25438: POP
// x = 1 ; [ 71 , 72 ] :
25439: LD_ADDR_VAR 0 7
25443: PUSH
25444: LD_INT 1
25446: ST_TO_ADDR
25447: GO 25606
25449: LD_INT 71
25451: PUSH
25452: LD_INT 72
25454: PUSH
25455: EMPTY
25456: LIST
25457: LIST
25458: DOUBLE
25459: EQUAL
25460: IFTRUE 25464
25462: GO 25475
25464: POP
// x = 2 ; [ 106 , 95 ] :
25465: LD_ADDR_VAR 0 7
25469: PUSH
25470: LD_INT 2
25472: ST_TO_ADDR
25473: GO 25606
25475: LD_INT 106
25477: PUSH
25478: LD_INT 95
25480: PUSH
25481: EMPTY
25482: LIST
25483: LIST
25484: DOUBLE
25485: EQUAL
25486: IFTRUE 25490
25488: GO 25501
25490: POP
// x = 3 ; [ 127 , 126 ] :
25491: LD_ADDR_VAR 0 7
25495: PUSH
25496: LD_INT 3
25498: ST_TO_ADDR
25499: GO 25606
25501: LD_INT 127
25503: PUSH
25504: LD_INT 126
25506: PUSH
25507: EMPTY
25508: LIST
25509: LIST
25510: DOUBLE
25511: EQUAL
25512: IFTRUE 25516
25514: GO 25527
25516: POP
// x = 4 ; [ 149 , 150 ] :
25517: LD_ADDR_VAR 0 7
25521: PUSH
25522: LD_INT 4
25524: ST_TO_ADDR
25525: GO 25606
25527: LD_INT 149
25529: PUSH
25530: LD_INT 150
25532: PUSH
25533: EMPTY
25534: LIST
25535: LIST
25536: DOUBLE
25537: EQUAL
25538: IFTRUE 25542
25540: GO 25553
25542: POP
// x = 5 ; [ 136 , 174 ] :
25543: LD_ADDR_VAR 0 7
25547: PUSH
25548: LD_INT 5
25550: ST_TO_ADDR
25551: GO 25606
25553: LD_INT 136
25555: PUSH
25556: LD_INT 174
25558: PUSH
25559: EMPTY
25560: LIST
25561: LIST
25562: DOUBLE
25563: EQUAL
25564: IFTRUE 25568
25566: GO 25579
25568: POP
// x = 6 ; [ 131 , 187 ] :
25569: LD_ADDR_VAR 0 7
25573: PUSH
25574: LD_INT 6
25576: ST_TO_ADDR
25577: GO 25606
25579: LD_INT 131
25581: PUSH
25582: LD_INT 187
25584: PUSH
25585: EMPTY
25586: LIST
25587: LIST
25588: DOUBLE
25589: EQUAL
25590: IFTRUE 25594
25592: GO 25605
25594: POP
// x = 7 ; end ;
25595: LD_ADDR_VAR 0 7
25599: PUSH
25600: LD_INT 7
25602: ST_TO_ADDR
25603: GO 25606
25605: POP
// end ; for i = x to cesta + 0 do
25606: LD_ADDR_VAR 0 6
25610: PUSH
25611: DOUBLE
25612: LD_VAR 0 7
25616: DEC
25617: ST_TO_ADDR
25618: LD_EXP 82
25622: PUSH
25623: LD_INT 0
25625: PLUS
25626: PUSH
25627: FOR_TO
25628: IFFALSE 25680
// nova_cesta = nova_cesta ^ [ [ cesta [ i ] [ 1 ] , cesta [ i ] [ 2 ] ] ] ;
25630: LD_ADDR_VAR 0 5
25634: PUSH
25635: LD_VAR 0 5
25639: PUSH
25640: LD_EXP 82
25644: PUSH
25645: LD_VAR 0 6
25649: ARRAY
25650: PUSH
25651: LD_INT 1
25653: ARRAY
25654: PUSH
25655: LD_EXP 82
25659: PUSH
25660: LD_VAR 0 6
25664: ARRAY
25665: PUSH
25666: LD_INT 2
25668: ARRAY
25669: PUSH
25670: EMPTY
25671: LIST
25672: LIST
25673: PUSH
25674: EMPTY
25675: LIST
25676: ADD
25677: ST_TO_ADDR
25678: GO 25627
25680: POP
25681: POP
// McMove ( 1 , new_identifier , nova_cesta , [ mc_move_dontcapture , mc_move_agressive , mc_move_waitwp ] ) ;
25682: LD_INT 1
25684: PPUSH
25685: LD_VAR 0 1
25689: PPUSH
25690: LD_VAR 0 5
25694: PPUSH
25695: LD_INT 5
25697: PUSH
25698: LD_INT 6
25700: PUSH
25701: LD_INT 3
25703: PUSH
25704: EMPTY
25705: LIST
25706: LIST
25707: LIST
25708: PPUSH
25709: CALL_OW 398
// end ; if capturing_unit in Am_Utok_2_List then
25713: LD_VAR 0 4
25717: PUSH
25718: LD_EXP 81
25722: IN
25723: IFFALSE 26087
// begin Am_Utok_2_List = Am_Utok_2_List ^ new_identifier ;
25725: LD_ADDR_EXP 81
25729: PUSH
25730: LD_EXP 81
25734: PUSH
25735: LD_VAR 0 1
25739: ADD
25740: ST_TO_ADDR
// nova_cesta = [ ] ;
25741: LD_ADDR_VAR 0 5
25745: PUSH
25746: EMPTY
25747: ST_TO_ADDR
// case FindNearestPoint ( [ 167 , 43 , 168 , 58 , 161 , 84 , 196 , 122 , 213 , 164 , 219 , 181 ] , GetX ( new_identifier ) , GetY ( new_identifier ) ) of [ 167 , 43 ] :
25748: LD_INT 167
25750: PUSH
25751: LD_INT 43
25753: PUSH
25754: LD_INT 168
25756: PUSH
25757: LD_INT 58
25759: PUSH
25760: LD_INT 161
25762: PUSH
25763: LD_INT 84
25765: PUSH
25766: LD_INT 196
25768: PUSH
25769: LD_INT 122
25771: PUSH
25772: LD_INT 213
25774: PUSH
25775: LD_INT 164
25777: PUSH
25778: LD_INT 219
25780: PUSH
25781: LD_INT 181
25783: PUSH
25784: EMPTY
25785: LIST
25786: LIST
25787: LIST
25788: LIST
25789: LIST
25790: LIST
25791: LIST
25792: LIST
25793: LIST
25794: LIST
25795: LIST
25796: LIST
25797: PPUSH
25798: LD_VAR 0 1
25802: PPUSH
25803: CALL_OW 250
25807: PPUSH
25808: LD_VAR 0 1
25812: PPUSH
25813: CALL_OW 251
25817: PPUSH
25818: CALL_OW 439
25822: PUSH
25823: LD_INT 167
25825: PUSH
25826: LD_INT 43
25828: PUSH
25829: EMPTY
25830: LIST
25831: LIST
25832: DOUBLE
25833: EQUAL
25834: IFTRUE 25838
25836: GO 25849
25838: POP
// x = 1 ; [ 168 , 58 ] :
25839: LD_ADDR_VAR 0 7
25843: PUSH
25844: LD_INT 1
25846: ST_TO_ADDR
25847: GO 25980
25849: LD_INT 168
25851: PUSH
25852: LD_INT 58
25854: PUSH
25855: EMPTY
25856: LIST
25857: LIST
25858: DOUBLE
25859: EQUAL
25860: IFTRUE 25864
25862: GO 25875
25864: POP
// x = 2 ; [ 161 , 84 ] :
25865: LD_ADDR_VAR 0 7
25869: PUSH
25870: LD_INT 2
25872: ST_TO_ADDR
25873: GO 25980
25875: LD_INT 161
25877: PUSH
25878: LD_INT 84
25880: PUSH
25881: EMPTY
25882: LIST
25883: LIST
25884: DOUBLE
25885: EQUAL
25886: IFTRUE 25890
25888: GO 25901
25890: POP
// x = 3 ; [ 196 , 122 ] :
25891: LD_ADDR_VAR 0 7
25895: PUSH
25896: LD_INT 3
25898: ST_TO_ADDR
25899: GO 25980
25901: LD_INT 196
25903: PUSH
25904: LD_INT 122
25906: PUSH
25907: EMPTY
25908: LIST
25909: LIST
25910: DOUBLE
25911: EQUAL
25912: IFTRUE 25916
25914: GO 25927
25916: POP
// x = 4 ; [ 213 , 164 ] :
25917: LD_ADDR_VAR 0 7
25921: PUSH
25922: LD_INT 4
25924: ST_TO_ADDR
25925: GO 25980
25927: LD_INT 213
25929: PUSH
25930: LD_INT 164
25932: PUSH
25933: EMPTY
25934: LIST
25935: LIST
25936: DOUBLE
25937: EQUAL
25938: IFTRUE 25942
25940: GO 25953
25942: POP
// x = 5 ; [ 219 , 181 ] :
25943: LD_ADDR_VAR 0 7
25947: PUSH
25948: LD_INT 5
25950: ST_TO_ADDR
25951: GO 25980
25953: LD_INT 219
25955: PUSH
25956: LD_INT 181
25958: PUSH
25959: EMPTY
25960: LIST
25961: LIST
25962: DOUBLE
25963: EQUAL
25964: IFTRUE 25968
25966: GO 25979
25968: POP
// x = 6 ; end ;
25969: LD_ADDR_VAR 0 7
25973: PUSH
25974: LD_INT 6
25976: ST_TO_ADDR
25977: GO 25980
25979: POP
// for i = x to PravaCesta + 0 do
25980: LD_ADDR_VAR 0 6
25984: PUSH
25985: DOUBLE
25986: LD_VAR 0 7
25990: DEC
25991: ST_TO_ADDR
25992: LD_EXP 84
25996: PUSH
25997: LD_INT 0
25999: PLUS
26000: PUSH
26001: FOR_TO
26002: IFFALSE 26054
// nova_cesta = nova_cesta ^ [ [ PravaCesta [ i ] [ 1 ] , PravaCesta [ i ] [ 2 ] ] ] ;
26004: LD_ADDR_VAR 0 5
26008: PUSH
26009: LD_VAR 0 5
26013: PUSH
26014: LD_EXP 84
26018: PUSH
26019: LD_VAR 0 6
26023: ARRAY
26024: PUSH
26025: LD_INT 1
26027: ARRAY
26028: PUSH
26029: LD_EXP 84
26033: PUSH
26034: LD_VAR 0 6
26038: ARRAY
26039: PUSH
26040: LD_INT 2
26042: ARRAY
26043: PUSH
26044: EMPTY
26045: LIST
26046: LIST
26047: PUSH
26048: EMPTY
26049: LIST
26050: ADD
26051: ST_TO_ADDR
26052: GO 26001
26054: POP
26055: POP
// McMove ( 1 , new_identifier , nova_cesta , [ mc_move_dontcapture , mc_move_agressive , mc_move_waitwp ] ) ;
26056: LD_INT 1
26058: PPUSH
26059: LD_VAR 0 1
26063: PPUSH
26064: LD_VAR 0 5
26068: PPUSH
26069: LD_INT 5
26071: PUSH
26072: LD_INT 6
26074: PUSH
26075: LD_INT 3
26077: PUSH
26078: EMPTY
26079: LIST
26080: LIST
26081: LIST
26082: PPUSH
26083: CALL_OW 398
// end ; end ; end ;
26087: PPOPN 7
26089: END
// on Contact ( side1 , side2 ) do begin if side1 = You and side2 = You2 then
26090: LD_VAR 0 1
26094: PUSH
26095: LD_EXP 2
26099: EQUAL
26100: PUSH
26101: LD_VAR 0 2
26105: PUSH
26106: LD_EXP 3
26110: EQUAL
26111: AND
26112: IFFALSE 26118
// DialogAttackAlly ;
26114: CALL 26921 0 0
// if side1 = 2 and side2 = You then
26118: LD_VAR 0 1
26122: PUSH
26123: LD_INT 2
26125: EQUAL
26126: PUSH
26127: LD_VAR 0 2
26131: PUSH
26132: LD_EXP 2
26136: EQUAL
26137: AND
26138: IFFALSE 26153
// if TaskObdrzen then
26140: LD_EXP 98
26144: IFFALSE 26153
// ChangeMissionObjectives ( M04 ) ;
26146: LD_STRING M04
26148: PPUSH
26149: CALL_OW 337
// end ;
26153: PPOPN 2
26155: END
// on Command ( com ) do var list ; var kradenici ; var un , i ;
26156: LD_INT 0
26158: PPUSH
26159: PPUSH
26160: PPUSH
26161: PPUSH
// begin kradenici = FilterUnitsInArea ( RuBaza2 , [ [ f_type , unit_human ] , [ f_class , class_engineer ] , [ f_side , You ] ] ) ^ FilterUnitsInArea ( RuBaza2 , [ [ f_type , unit_vehicle ] , [ f_or , [ f_weapon , ru_cargo_bay ] , [ f_weapon , us_cargo_bay ] ] , [ f_side , You ] ] ) ;
26162: LD_ADDR_VAR 0 3
26166: PUSH
26167: LD_INT 13
26169: PPUSH
26170: LD_INT 21
26172: PUSH
26173: LD_INT 1
26175: PUSH
26176: EMPTY
26177: LIST
26178: LIST
26179: PUSH
26180: LD_INT 25
26182: PUSH
26183: LD_INT 2
26185: PUSH
26186: EMPTY
26187: LIST
26188: LIST
26189: PUSH
26190: LD_INT 22
26192: PUSH
26193: LD_EXP 2
26197: PUSH
26198: EMPTY
26199: LIST
26200: LIST
26201: PUSH
26202: EMPTY
26203: LIST
26204: LIST
26205: LIST
26206: PPUSH
26207: CALL_OW 70
26211: PUSH
26212: LD_INT 13
26214: PPUSH
26215: LD_INT 21
26217: PUSH
26218: LD_INT 2
26220: PUSH
26221: EMPTY
26222: LIST
26223: LIST
26224: PUSH
26225: LD_INT 2
26227: PUSH
26228: LD_INT 34
26230: PUSH
26231: LD_INT 51
26233: PUSH
26234: EMPTY
26235: LIST
26236: LIST
26237: PUSH
26238: LD_INT 34
26240: PUSH
26241: LD_INT 12
26243: PUSH
26244: EMPTY
26245: LIST
26246: LIST
26247: PUSH
26248: EMPTY
26249: LIST
26250: LIST
26251: LIST
26252: PUSH
26253: LD_INT 22
26255: PUSH
26256: LD_EXP 2
26260: PUSH
26261: EMPTY
26262: LIST
26263: LIST
26264: PUSH
26265: EMPTY
26266: LIST
26267: LIST
26268: LIST
26269: PPUSH
26270: CALL_OW 70
26274: ADD
26275: ST_TO_ADDR
// for un in kradenici do
26276: LD_ADDR_VAR 0 4
26280: PUSH
26281: LD_VAR 0 3
26285: PUSH
26286: FOR_IN
26287: IFFALSE 26426
// begin if GetTaskList ( un ) <> [ ] then
26289: LD_VAR 0 4
26293: PPUSH
26294: CALL_OW 437
26298: PUSH
26299: EMPTY
26300: NONEQUAL
26301: IFFALSE 26424
// begin list = GetTaskList ( un ) ;
26303: LD_ADDR_VAR 0 2
26307: PUSH
26308: LD_VAR 0 4
26312: PPUSH
26313: CALL_OW 437
26317: ST_TO_ADDR
// for i := 1 to ( 0 + GetTaskList ( un ) ) do
26318: LD_ADDR_VAR 0 5
26322: PUSH
26323: DOUBLE
26324: LD_INT 1
26326: DEC
26327: ST_TO_ADDR
26328: LD_INT 0
26330: PUSH
26331: LD_VAR 0 4
26335: PPUSH
26336: CALL_OW 437
26340: PLUS
26341: PUSH
26342: FOR_TO
26343: IFFALSE 26422
// begin if GetTaskList ( un ) [ i ] [ 1 ] = < then
26345: LD_VAR 0 4
26349: PPUSH
26350: CALL_OW 437
26354: PUSH
26355: LD_VAR 0 5
26359: ARRAY
26360: PUSH
26361: LD_INT 1
26363: ARRAY
26364: PUSH
26365: LD_STRING <
26367: EQUAL
26368: IFFALSE 26420
// begin if GetWeapon ( un ) = ru_crane or GetWeapon ( un ) = us_crane then
26370: LD_VAR 0 4
26374: PPUSH
26375: CALL_OW 264
26379: PUSH
26380: LD_INT 52
26382: EQUAL
26383: PUSH
26384: LD_VAR 0 4
26388: PPUSH
26389: CALL_OW 264
26393: PUSH
26394: LD_INT 13
26396: EQUAL
26397: OR
26398: IFFALSE 26402
// else
26400: GO 26420
// begin ComStop ( un ) ;
26402: LD_VAR 0 4
26406: PPUSH
26407: CALL_OW 141
// DialogKradenik ( un ) ;
26411: LD_VAR 0 4
26415: PPUSH
26416: CALL 26966 0 1
// end ; end ; end ;
26420: GO 26342
26422: POP
26423: POP
// end ; end ;
26424: GO 26286
26426: POP
26427: POP
// if GetTaskList ( Alice ) <> [ ] then
26428: LD_EXP 16
26432: PPUSH
26433: CALL_OW 437
26437: PUSH
26438: EMPTY
26439: NONEQUAL
26440: IFFALSE 26522
// begin list = GetTaskList ( Alice ) ;
26442: LD_ADDR_VAR 0 2
26446: PUSH
26447: LD_EXP 16
26451: PPUSH
26452: CALL_OW 437
26456: ST_TO_ADDR
// for i := 1 to ( 0 + GetTaskList ( Alice ) ) do
26457: LD_ADDR_VAR 0 5
26461: PUSH
26462: DOUBLE
26463: LD_INT 1
26465: DEC
26466: ST_TO_ADDR
26467: LD_INT 0
26469: PUSH
26470: LD_EXP 16
26474: PPUSH
26475: CALL_OW 437
26479: PLUS
26480: PUSH
26481: FOR_TO
26482: IFFALSE 26520
// begin if GetTaskList ( Alice ) [ i ] [ 1 ] = B then
26484: LD_EXP 16
26488: PPUSH
26489: CALL_OW 437
26493: PUSH
26494: LD_VAR 0 5
26498: ARRAY
26499: PUSH
26500: LD_INT 1
26502: ARRAY
26503: PUSH
26504: LD_STRING B
26506: EQUAL
26507: IFFALSE 26518
// begin RemoveTasks ( Alice ) ;
26509: LD_EXP 16
26513: PPUSH
26514: CALL_OW 493
// end ; end ;
26518: GO 26481
26520: POP
26521: POP
// end ; end ;
26522: PPOPN 5
26524: END
// on UnitGoesFromRed ( unit ) do begin if GetSide ( unit ) = Amik2 and GetType ( unit ) = unit_vehicle then
26525: LD_VAR 0 1
26529: PPUSH
26530: CALL_OW 255
26534: PUSH
26535: LD_EXP 5
26539: EQUAL
26540: PUSH
26541: LD_VAR 0 1
26545: PPUSH
26546: CALL_OW 247
26550: PUSH
26551: LD_INT 2
26553: EQUAL
26554: AND
26555: IFFALSE 26667
// begin if IsOk ( Am2_Vez_1 ) and GetSide ( Am2_Vez_1 ) = Amik2 and IsOk ( Am_Ware_1 ) and UnitsInside ( Am2_Vez_1 ) then
26557: LD_INT 166
26559: PPUSH
26560: CALL_OW 302
26564: PUSH
26565: LD_INT 166
26567: PPUSH
26568: CALL_OW 255
26572: PUSH
26573: LD_EXP 5
26577: EQUAL
26578: AND
26579: PUSH
26580: LD_INT 150
26582: PPUSH
26583: CALL_OW 302
26587: AND
26588: PUSH
26589: LD_INT 166
26591: PPUSH
26592: CALL_OW 313
26596: AND
26597: IFFALSE 26613
// LinkVehicle ( unit , AmVelka1 ) else
26599: LD_VAR 0 1
26603: PPUSH
26604: LD_INT 35
26606: PPUSH
26607: CALL 50379 0 2
26611: GO 26667
// if IsOk ( Am2_Vez_2 ) and GetSide ( Am2_Vez_2 ) = Amik2 and IsOk ( Am_Ware_2 ) and UnitsInside ( Am2_Vez_2 ) then
26613: LD_INT 167
26615: PPUSH
26616: CALL_OW 302
26620: PUSH
26621: LD_INT 167
26623: PPUSH
26624: CALL_OW 255
26628: PUSH
26629: LD_EXP 5
26633: EQUAL
26634: AND
26635: PUSH
26636: LD_INT 151
26638: PPUSH
26639: CALL_OW 302
26643: AND
26644: PUSH
26645: LD_INT 167
26647: PPUSH
26648: CALL_OW 313
26652: AND
26653: IFFALSE 26667
// LinkVehicle ( unit , AmVelka2 ) end ;
26655: LD_VAR 0 1
26659: PPUSH
26660: LD_INT 36
26662: PPUSH
26663: CALL 50379 0 2
// end ; end_of_file
26667: PPOPN 1
26669: END
// every 0 0$1 + 0 0$0.1 trigger Hrajeme do
26670: LD_EXP 20
26674: IFFALSE 26697
26676: GO 26678
26678: DISABLE
// begin display_strings = [ #Ru01-Time , tick ] ;
26679: LD_ADDR_OWVAR 47
26683: PUSH
26684: LD_STRING #Ru01-Time
26686: PUSH
26687: LD_OWVAR 1
26691: PUSH
26692: EMPTY
26693: LIST
26694: LIST
26695: ST_TO_ADDR
// enable ;
26696: ENABLE
// end ;
26697: END
// every 0 0$1 trigger Hrajeme = false do
26698: LD_EXP 20
26702: PUSH
26703: LD_INT 0
26705: EQUAL
26706: IFFALSE 26730
26708: GO 26710
26710: DISABLE
// begin if tick > 0 0$1 then
26711: LD_OWVAR 1
26715: PUSH
26716: LD_INT 35
26718: GREATER
26719: IFFALSE 26729
// tick = 0 ;
26721: LD_ADDR_OWVAR 1
26725: PUSH
26726: LD_INT 0
26728: ST_TO_ADDR
// enable ;
26729: ENABLE
// end ; end_of_file
26730: END
// var BylDialog ; every 0 0$2 trigger FilterUnitsInArea ( alaskit , [ [ f_placed ] , [ f_side , You ] , [ f_btype , b_siberite_mine ] ] ) do
26731: LD_INT 23
26733: PPUSH
26734: LD_INT 52
26736: PUSH
26737: EMPTY
26738: LIST
26739: PUSH
26740: LD_INT 22
26742: PUSH
26743: LD_EXP 2
26747: PUSH
26748: EMPTY
26749: LIST
26750: LIST
26751: PUSH
26752: LD_INT 30
26754: PUSH
26755: LD_INT 30
26757: PUSH
26758: EMPTY
26759: LIST
26760: LIST
26761: PUSH
26762: EMPTY
26763: LIST
26764: LIST
26765: LIST
26766: PPUSH
26767: CALL_OW 70
26771: IFFALSE 26861
26773: GO 26775
26775: DISABLE
// begin if not BylDialog then
26776: LD_LOC 6
26780: NOT
26781: IFFALSE 26811
// begin DialogueOn ;
26783: CALL_OW 6
// Say ( talin , tal-1 ) ;
26787: LD_EXP 18
26791: PPUSH
26792: LD_STRING tal-1
26794: PPUSH
26795: CALL_OW 88
// DialogueOff ;
26799: CALL_OW 7
// BylDialog = 1 ;
26803: LD_ADDR_LOC 6
26807: PUSH
26808: LD_INT 1
26810: ST_TO_ADDR
// end ; DestroyUnit ( FilterUnitsInArea ( alaskit , [ [ f_placed ] , [ f_side , You ] , [ f_btype , b_siberite_mine ] ] ) [ 1 ] ) ;
26811: LD_INT 23
26813: PPUSH
26814: LD_INT 52
26816: PUSH
26817: EMPTY
26818: LIST
26819: PUSH
26820: LD_INT 22
26822: PUSH
26823: LD_EXP 2
26827: PUSH
26828: EMPTY
26829: LIST
26830: LIST
26831: PUSH
26832: LD_INT 30
26834: PUSH
26835: LD_INT 30
26837: PUSH
26838: EMPTY
26839: LIST
26840: LIST
26841: PUSH
26842: EMPTY
26843: LIST
26844: LIST
26845: LIST
26846: PPUSH
26847: CALL_OW 70
26851: PUSH
26852: LD_INT 1
26854: ARRAY
26855: PPUSH
26856: CALL_OW 65
// enable ;
26860: ENABLE
// end ;
26861: END
// export enable_death_losts ; every 0 0$5 do
26862: GO 26864
26864: DISABLE
// enable_death_losts = true ;
26865: LD_ADDR_EXP 74
26869: PUSH
26870: LD_INT 1
26872: ST_TO_ADDR
26873: END
// every 0 0$1.4 trigger enable_death_losts do
26874: LD_EXP 74
26878: IFFALSE 26920
26880: GO 26882
26882: DISABLE
// begin if IsDead ( vsevolod ) then
26883: LD_EXP 17
26887: PPUSH
26888: CALL_OW 301
26892: IFFALSE 26901
// YouLost ( sevidead ) ;
26894: LD_STRING sevidead
26896: PPUSH
26897: CALL_OW 104
// if IsDead ( talin ) then
26901: LD_EXP 18
26905: PPUSH
26906: CALL_OW 301
26910: IFFALSE 26919
// YouLost ( talindead ) ;
26912: LD_STRING talindead
26914: PPUSH
26915: CALL_OW 104
// enable ;
26919: ENABLE
// end ;
26920: END
// export function DialogAttackAlly ; begin
26921: LD_INT 0
26923: PPUSH
// Wait ( 0 0$1 ) ;
26924: LD_INT 35
26926: PPUSH
26927: CALL_OW 67
// DialogueOn ;
26931: CALL_OW 6
// Say ( talin , tal-2 ) ;
26935: LD_EXP 18
26939: PPUSH
26940: LD_STRING tal-2
26942: PPUSH
26943: CALL_OW 88
// DWait ( 0 0$1 ) ;
26947: LD_INT 35
26949: PPUSH
26950: CALL_OW 68
// YouLost ( soud2 ) ;
26954: LD_STRING soud2
26956: PPUSH
26957: CALL_OW 104
// end ;
26961: LD_VAR 0 1
26965: RET
// export function DialogKradenik ( u ) ; begin
26966: LD_INT 0
26968: PPUSH
// Say ( vsevolod , vse-4 ) ;
26969: LD_EXP 17
26973: PPUSH
26974: LD_STRING vse-4
26976: PPUSH
26977: CALL_OW 88
// end ;
26981: LD_VAR 0 2
26985: RET
// every 0 0$2 trigger FilterUnitsInArea ( Nestavit , [ [ f_placed ] , [ f_side , You ] , [ f_type , unit_building ] ] ) do
26986: LD_INT 42
26988: PPUSH
26989: LD_INT 52
26991: PUSH
26992: EMPTY
26993: LIST
26994: PUSH
26995: LD_INT 22
26997: PUSH
26998: LD_EXP 2
27002: PUSH
27003: EMPTY
27004: LIST
27005: LIST
27006: PUSH
27007: LD_INT 21
27009: PUSH
27010: LD_INT 3
27012: PUSH
27013: EMPTY
27014: LIST
27015: LIST
27016: PUSH
27017: EMPTY
27018: LIST
27019: LIST
27020: LIST
27021: PPUSH
27022: CALL_OW 70
27026: IFFALSE 27101
27028: GO 27030
27030: DISABLE
// begin DialogueOn ;
27031: CALL_OW 6
// Say ( vsevolod , vse-7 ) ;
27035: LD_EXP 17
27039: PPUSH
27040: LD_STRING vse-7
27042: PPUSH
27043: CALL_OW 88
// DialogueOff ;
27047: CALL_OW 7
// DestroyUnit ( FilterUnitsInArea ( Nestavit , [ [ f_placed ] , [ f_side , You ] , [ f_type , unit_building ] ] ) [ 1 ] ) ;
27051: LD_INT 42
27053: PPUSH
27054: LD_INT 52
27056: PUSH
27057: EMPTY
27058: LIST
27059: PUSH
27060: LD_INT 22
27062: PUSH
27063: LD_EXP 2
27067: PUSH
27068: EMPTY
27069: LIST
27070: LIST
27071: PUSH
27072: LD_INT 21
27074: PUSH
27075: LD_INT 3
27077: PUSH
27078: EMPTY
27079: LIST
27080: LIST
27081: PUSH
27082: EMPTY
27083: LIST
27084: LIST
27085: LIST
27086: PPUSH
27087: CALL_OW 70
27091: PUSH
27092: LD_INT 1
27094: ARRAY
27095: PPUSH
27096: CALL_OW 65
// enable ;
27100: ENABLE
// end ;
27101: END
// export function DialogSiberitLokalizovan ; begin
27102: LD_INT 0
27104: PPUSH
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , You ] , [ f_btype , b_siberite_mine ] ] ) then
27105: LD_INT 52
27107: PUSH
27108: EMPTY
27109: LIST
27110: PUSH
27111: LD_INT 22
27113: PUSH
27114: LD_EXP 2
27118: PUSH
27119: EMPTY
27120: LIST
27121: LIST
27122: PUSH
27123: LD_INT 30
27125: PUSH
27126: LD_INT 30
27128: PUSH
27129: EMPTY
27130: LIST
27131: LIST
27132: PUSH
27133: EMPTY
27134: LIST
27135: LIST
27136: LIST
27137: PPUSH
27138: CALL_OW 69
27142: IFFALSE 27146
// exit ;
27144: GO 27224
// if GetTech ( tech_SibLoc , You ) = state_researched then
27146: LD_INT 19
27148: PPUSH
27149: LD_EXP 2
27153: PPUSH
27154: CALL_OW 321
27158: PUSH
27159: LD_INT 2
27161: EQUAL
27162: IFFALSE 27166
// exit ;
27164: GO 27224
// if GetResourceVisibility ( 102 , 182 , You ) then
27166: LD_INT 102
27168: PPUSH
27169: LD_INT 182
27171: PPUSH
27172: LD_EXP 2
27176: PPUSH
27177: CALL_OW 440
27181: IFFALSE 27185
// exit ;
27183: GO 27224
// SetResourceVisibility ( 102 , 182 , You ) ;
27185: LD_INT 102
27187: PPUSH
27188: LD_INT 182
27190: PPUSH
27191: LD_EXP 2
27195: PPUSH
27196: CALL_OW 441
// Say ( talin , tal-3 ) ;
27200: LD_EXP 18
27204: PPUSH
27205: LD_STRING tal-3
27207: PPUSH
27208: CALL_OW 88
// Say ( vsevolod , vse-5 ) ;
27212: LD_EXP 17
27216: PPUSH
27217: LD_STRING vse-5
27219: PPUSH
27220: CALL_OW 88
// end ;
27224: LD_VAR 0 1
27228: RET
// every 0 0$0.3 trigger FilterAllUnits ( [ [ f_lives , 1000 ] , [ f_side , You2 ] , [ f_type , unit_vehicle ] ] ) + 0 >= 3 do
27229: LD_INT 24
27231: PUSH
27232: LD_INT 1000
27234: PUSH
27235: EMPTY
27236: LIST
27237: LIST
27238: PUSH
27239: LD_INT 22
27241: PUSH
27242: LD_EXP 3
27246: PUSH
27247: EMPTY
27248: LIST
27249: LIST
27250: PUSH
27251: LD_INT 21
27253: PUSH
27254: LD_INT 2
27256: PUSH
27257: EMPTY
27258: LIST
27259: LIST
27260: PUSH
27261: EMPTY
27262: LIST
27263: LIST
27264: LIST
27265: PPUSH
27266: CALL_OW 69
27270: PUSH
27271: LD_INT 0
27273: PLUS
27274: PUSH
27275: LD_INT 3
27277: GREATEREQUAL
27278: IFFALSE 27329
27280: GO 27282
27282: DISABLE
// begin DialogueOn ;
27283: CALL_OW 6
// Say ( talin , tal-4 ) ;
27287: LD_EXP 18
27291: PPUSH
27292: LD_STRING tal-4
27294: PPUSH
27295: CALL_OW 88
// Say ( vsevolod , vse-6 ) ;
27299: LD_EXP 17
27303: PPUSH
27304: LD_STRING vse-6
27306: PPUSH
27307: CALL_OW 88
// Wait ( 0 0$0.6 ) ;
27311: LD_INT 21
27313: PPUSH
27314: CALL_OW 67
// DialogueOff ;
27318: CALL_OW 7
// ChangeMissionObjectives ( M02 ) ;
27322: LD_STRING M02
27324: PPUSH
27325: CALL_OW 337
// end ;
27329: END
// var BylDialog2 ; export function DialogLabkaZabrana ; begin
27330: LD_INT 0
27332: PPUSH
// if not BylDialog2 then
27333: LD_LOC 7
27337: NOT
27338: IFFALSE 27379
// begin Wait ( 0 0$1.1 ) ;
27340: LD_INT 39
27342: PPUSH
27343: CALL_OW 67
// Say ( NajdiVedce , ved-1 ) ;
27347: CALL 8123 0 0
27351: PPUSH
27352: LD_STRING ved-1
27354: PPUSH
27355: CALL_OW 88
// Say ( NajdiVojaka , voj-1 ) ;
27359: CALL 7861 0 0
27363: PPUSH
27364: LD_STRING voj-1
27366: PPUSH
27367: CALL_OW 88
// BylDialog2 = 1 ;
27371: LD_ADDR_LOC 7
27375: PUSH
27376: LD_INT 1
27378: ST_TO_ADDR
// end ; end ;
27379: LD_VAR 0 1
27383: RET
// var znicene ; export function DialogBazaZnicena ( area ) ; var mluvci , mluvci2 ; begin
27384: LD_INT 0
27386: PPUSH
27387: PPUSH
27388: PPUSH
// if FilterAllUnits ( [ [ f_inarea , area ] , [ f_ok ] , [ f_side , You2 ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) + 0 >= FilterAllUnits ( [ [ f_inarea , area ] , [ f_ok ] , [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) + 0 then
27389: LD_INT 95
27391: PUSH
27392: LD_VAR 0 1
27396: PUSH
27397: EMPTY
27398: LIST
27399: LIST
27400: PUSH
27401: LD_INT 50
27403: PUSH
27404: EMPTY
27405: LIST
27406: PUSH
27407: LD_INT 22
27409: PUSH
27410: LD_EXP 3
27414: PUSH
27415: EMPTY
27416: LIST
27417: LIST
27418: PUSH
27419: LD_INT 2
27421: PUSH
27422: LD_INT 21
27424: PUSH
27425: LD_INT 1
27427: PUSH
27428: EMPTY
27429: LIST
27430: LIST
27431: PUSH
27432: LD_INT 21
27434: PUSH
27435: LD_INT 2
27437: PUSH
27438: EMPTY
27439: LIST
27440: LIST
27441: PUSH
27442: EMPTY
27443: LIST
27444: LIST
27445: LIST
27446: PUSH
27447: EMPTY
27448: LIST
27449: LIST
27450: LIST
27451: LIST
27452: PPUSH
27453: CALL_OW 69
27457: PUSH
27458: LD_INT 0
27460: PLUS
27461: PUSH
27462: LD_INT 95
27464: PUSH
27465: LD_VAR 0 1
27469: PUSH
27470: EMPTY
27471: LIST
27472: LIST
27473: PUSH
27474: LD_INT 50
27476: PUSH
27477: EMPTY
27478: LIST
27479: PUSH
27480: LD_INT 22
27482: PUSH
27483: LD_EXP 2
27487: PUSH
27488: EMPTY
27489: LIST
27490: LIST
27491: PUSH
27492: LD_INT 2
27494: PUSH
27495: LD_INT 21
27497: PUSH
27498: LD_INT 1
27500: PUSH
27501: EMPTY
27502: LIST
27503: LIST
27504: PUSH
27505: LD_INT 21
27507: PUSH
27508: LD_INT 2
27510: PUSH
27511: EMPTY
27512: LIST
27513: LIST
27514: PUSH
27515: EMPTY
27516: LIST
27517: LIST
27518: LIST
27519: PUSH
27520: EMPTY
27521: LIST
27522: LIST
27523: LIST
27524: LIST
27525: PPUSH
27526: CALL_OW 69
27530: PUSH
27531: LD_INT 0
27533: PLUS
27534: GREATEREQUAL
27535: IFFALSE 27559
// begin mluvci = talin ;
27537: LD_ADDR_VAR 0 3
27541: PUSH
27542: LD_EXP 18
27546: ST_TO_ADDR
// mluvci2 = vsevolod ;
27547: LD_ADDR_VAR 0 4
27551: PUSH
27552: LD_EXP 17
27556: ST_TO_ADDR
// end else
27557: GO 27579
// begin mluvci = vsevolod ;
27559: LD_ADDR_VAR 0 3
27563: PUSH
27564: LD_EXP 17
27568: ST_TO_ADDR
// mluvci2 = talin ;
27569: LD_ADDR_VAR 0 4
27573: PUSH
27574: LD_EXP 18
27578: ST_TO_ADDR
// end ; if not znicene then
27579: LD_LOC 8
27583: NOT
27584: IFFALSE 27658
// begin if mluvci = vsevolod then
27586: LD_VAR 0 3
27590: PUSH
27591: LD_EXP 17
27595: EQUAL
27596: IFFALSE 27624
// begin Say ( mluvci , vse-8 ) ;
27598: LD_VAR 0 3
27602: PPUSH
27603: LD_STRING vse-8
27605: PPUSH
27606: CALL_OW 88
// Say ( mluvci2 , tal-5 ) ;
27610: LD_VAR 0 4
27614: PPUSH
27615: LD_STRING tal-5
27617: PPUSH
27618: CALL_OW 88
// end else
27622: GO 27648
// begin Say ( mluvci , tal-7 ) ;
27624: LD_VAR 0 3
27628: PPUSH
27629: LD_STRING tal-7
27631: PPUSH
27632: CALL_OW 88
// Say ( mluvci2 , vse-9 ) ;
27636: LD_VAR 0 4
27640: PPUSH
27641: LD_STRING vse-9
27643: PPUSH
27644: CALL_OW 88
// end ; znicene = 1 ;
27648: LD_ADDR_LOC 8
27652: PUSH
27653: LD_INT 1
27655: ST_TO_ADDR
// end else
27656: GO 27682
// begin Say ( mluvci , sef-1 ) ;
27658: LD_VAR 0 3
27662: PPUSH
27663: LD_STRING sef-1
27665: PPUSH
27666: CALL_OW 88
// Say ( mluvci2 , sef-2 ) ;
27670: LD_VAR 0 4
27674: PPUSH
27675: LD_STRING sef-2
27677: PPUSH
27678: CALL_OW 88
// end ; end ;
27682: LD_VAR 0 2
27686: RET
// export function DialogArabZenska ( kdo ) ; begin
27687: LD_INT 0
27689: PPUSH
// IngameOn ;
27690: CALL_OW 8
// CenterNowOnUnits ( [ kdo , alice ] ) ;
27694: LD_VAR 0 1
27698: PUSH
27699: LD_EXP 16
27703: PUSH
27704: EMPTY
27705: LIST
27706: LIST
27707: PPUSH
27708: CALL_OW 87
// Wait ( 0 0$2.2 ) ;
27712: LD_INT 77
27714: PPUSH
27715: CALL_OW 67
// ComTurnUnit ( kdo , alice ) ;
27719: LD_VAR 0 1
27723: PPUSH
27724: LD_EXP 16
27728: PPUSH
27729: CALL_OW 119
// Wait ( 0 0$3 ) ;
27733: LD_INT 105
27735: PPUSH
27736: CALL_OW 67
// ComTurnUnit ( alice , kdo ) ;
27740: LD_EXP 16
27744: PPUSH
27745: LD_VAR 0 1
27749: PPUSH
27750: CALL_OW 119
// Wait ( 0 0$0.4 ) ;
27754: LD_INT 14
27756: PPUSH
27757: CALL_OW 67
// IngameOff ;
27761: CALL_OW 9
// DialogueOn ;
27765: CALL_OW 6
// Say ( alice , alice-1 ) ;
27769: LD_EXP 16
27773: PPUSH
27774: LD_STRING alice-1
27776: PPUSH
27777: CALL_OW 88
// Say ( kdo , nearest ) ;
27781: LD_VAR 0 1
27785: PPUSH
27786: LD_STRING nearest
27788: PPUSH
27789: CALL_OW 88
// Say ( alice , alice-2 ) ;
27793: LD_EXP 16
27797: PPUSH
27798: LD_STRING alice-2
27800: PPUSH
27801: CALL_OW 88
// if GetSex ( kdo ) = 1 then
27805: LD_VAR 0 1
27809: PPUSH
27810: CALL_OW 258
27814: PUSH
27815: LD_INT 1
27817: EQUAL
27818: IFFALSE 27834
// Say ( kdo , nearest-2 ) else
27820: LD_VAR 0 1
27824: PPUSH
27825: LD_STRING nearest-2
27827: PPUSH
27828: CALL_OW 88
27832: GO 27846
// Say ( kdo , nearest-2b ) ;
27834: LD_VAR 0 1
27838: PPUSH
27839: LD_STRING nearest-2b
27841: PPUSH
27842: CALL_OW 88
// Say ( kdo , nearest-3 ) ;
27846: LD_VAR 0 1
27850: PPUSH
27851: LD_STRING nearest-3
27853: PPUSH
27854: CALL_OW 88
// Wait ( 0 0$0.3 ) ;
27858: LD_INT 10
27860: PPUSH
27861: CALL_OW 67
// case Query ( zenska ) of 1 :
27865: LD_STRING zenska
27867: PPUSH
27868: CALL_OW 97
27872: PUSH
27873: LD_INT 1
27875: DOUBLE
27876: EQUAL
27877: IFTRUE 27881
27879: GO 27904
27881: POP
// begin Say ( kdo , nearest-4 ) ;
27882: LD_VAR 0 1
27886: PPUSH
27887: LD_STRING nearest-4
27889: PPUSH
27890: CALL_OW 88
// ZenskaOdejdi = 1 ;
27894: LD_ADDR_EXP 94
27898: PUSH
27899: LD_INT 1
27901: ST_TO_ADDR
// end ; 2 :
27902: GO 28142
27904: LD_INT 2
27906: DOUBLE
27907: EQUAL
27908: IFTRUE 27912
27910: GO 28102
27912: POP
// begin Say ( vsevolod , vse-10 ) ;
27913: LD_EXP 17
27917: PPUSH
27918: LD_STRING vse-10
27920: PPUSH
27921: CALL_OW 88
// Say ( alice , alice-4 ) ;
27925: LD_EXP 16
27929: PPUSH
27930: LD_STRING alice-4
27932: PPUSH
27933: CALL_OW 88
// Say ( vsevolod , vse-11 ) ;
27937: LD_EXP 17
27941: PPUSH
27942: LD_STRING vse-11
27944: PPUSH
27945: CALL_OW 88
// Say ( alice , alice-5 ) ;
27949: LD_EXP 16
27953: PPUSH
27954: LD_STRING alice-5
27956: PPUSH
27957: CALL_OW 88
// Wait ( 0 0$0.3 ) ;
27961: LD_INT 10
27963: PPUSH
27964: CALL_OW 67
// case Query ( zenska2 ) of 1 :
27968: LD_STRING zenska2
27970: PPUSH
27971: CALL_OW 97
27975: PUSH
27976: LD_INT 1
27978: DOUBLE
27979: EQUAL
27980: IFTRUE 27984
27982: GO 28007
27984: POP
// begin Say ( kdo , nearest-4 ) ;
27985: LD_VAR 0 1
27989: PPUSH
27990: LD_STRING nearest-4
27992: PPUSH
27993: CALL_OW 88
// ZenskaOdejdi = 1 ;
27997: LD_ADDR_EXP 94
28001: PUSH
28002: LD_INT 1
28004: ST_TO_ADDR
// end ; 2 :
28005: GO 28100
28007: LD_INT 2
28009: DOUBLE
28010: EQUAL
28011: IFTRUE 28015
28013: GO 28060
28015: POP
// begin Say ( vsevolod , vse-12 ) ;
28016: LD_EXP 17
28020: PPUSH
28021: LD_STRING vse-12
28023: PPUSH
28024: CALL_OW 88
// Wait ( 0 0$0.3 ) ;
28028: LD_INT 10
28030: PPUSH
28031: CALL_OW 67
// ChangeMissionObjectives ( M03 ) ;
28035: LD_STRING M03
28037: PPUSH
28038: CALL_OW 337
// ZenskaDoDepotu = 1 ;
28042: LD_ADDR_EXP 95
28046: PUSH
28047: LD_INT 1
28049: ST_TO_ADDR
// ZenskaBylaZavrena = 1 ;
28050: LD_ADDR_EXP 97
28054: PUSH
28055: LD_INT 1
28057: ST_TO_ADDR
// end ; 3 :
28058: GO 28100
28060: LD_INT 3
28062: DOUBLE
28063: EQUAL
28064: IFTRUE 28068
28066: GO 28099
28068: POP
// begin Say ( alice , alice-3 ) ;
28069: LD_EXP 16
28073: PPUSH
28074: LD_STRING alice-3
28076: PPUSH
28077: CALL_OW 88
// SetAttitude ( 3 , 2 , att_enemy , true ) ;
28081: LD_INT 3
28083: PPUSH
28084: LD_INT 2
28086: PPUSH
28087: LD_INT 2
28089: PPUSH
28090: LD_INT 1
28092: PPUSH
28093: CALL_OW 80
// end ; end ;
28097: GO 28100
28099: POP
// end ; 3 :
28100: GO 28142
28102: LD_INT 3
28104: DOUBLE
28105: EQUAL
28106: IFTRUE 28110
28108: GO 28141
28110: POP
// begin Say ( alice , alice-3 ) ;
28111: LD_EXP 16
28115: PPUSH
28116: LD_STRING alice-3
28118: PPUSH
28119: CALL_OW 88
// SetAttitude ( 3 , 2 , att_enemy , true ) ;
28123: LD_INT 3
28125: PPUSH
28126: LD_INT 2
28128: PPUSH
28129: LD_INT 2
28131: PPUSH
28132: LD_INT 1
28134: PPUSH
28135: CALL_OW 80
// end ; end ;
28139: GO 28142
28141: POP
// DialogueOff ;
28142: CALL_OW 7
// ComFree ( kdo ) ;
28146: LD_VAR 0 1
28150: PPUSH
28151: CALL_OW 139
// ComFree ( alice ) ;
28155: LD_EXP 16
28159: PPUSH
28160: CALL_OW 139
// end ;
28164: LD_VAR 0 2
28168: RET
// export function DialogArabRichard ; begin
28169: LD_INT 0
28171: PPUSH
// IngameOn ;
28172: CALL_OW 8
// DialogueOn ;
28176: CALL_OW 6
// Say ( NajdiVedce , nekdo-1 ) ;
28180: CALL 8123 0 0
28184: PPUSH
28185: LD_STRING nekdo-1
28187: PPUSH
28188: CALL_OW 88
// Say ( vsevolod , vse-14 ) ;
28192: LD_EXP 17
28196: PPUSH
28197: LD_STRING vse-14
28199: PPUSH
28200: CALL_OW 88
// SayRadio ( richard , richard-1 ) ;
28204: LD_EXP 15
28208: PPUSH
28209: LD_STRING richard-1
28211: PPUSH
28212: CALL_OW 94
// Say ( vsevolod , vse-15 ) ;
28216: LD_EXP 17
28220: PPUSH
28221: LD_STRING vse-15
28223: PPUSH
28224: CALL_OW 88
// SayRadio ( richard , richard-2 ) ;
28228: LD_EXP 15
28232: PPUSH
28233: LD_STRING richard-2
28235: PPUSH
28236: CALL_OW 94
// Say ( vsevolod , vse-16 ) ;
28240: LD_EXP 17
28244: PPUSH
28245: LD_STRING vse-16
28247: PPUSH
28248: CALL_OW 88
// SayRadio ( richard , richard-3 ) ;
28252: LD_EXP 15
28256: PPUSH
28257: LD_STRING richard-3
28259: PPUSH
28260: CALL_OW 94
// Wait ( 0 0$0.3 ) ;
28264: LD_INT 10
28266: PPUSH
28267: CALL_OW 67
// case Query ( chlapek ) of 1 :
28271: LD_STRING chlapek
28273: PPUSH
28274: CALL_OW 97
28278: PUSH
28279: LD_INT 1
28281: DOUBLE
28282: EQUAL
28283: IFTRUE 28287
28285: GO 28330
28287: POP
// begin Say ( vsevolod , vse-17 ) ;
28288: LD_EXP 17
28292: PPUSH
28293: LD_STRING vse-17
28295: PPUSH
28296: CALL_OW 88
// SayRadio ( richard , richard-4 ) ;
28300: LD_EXP 15
28304: PPUSH
28305: LD_STRING richard-4
28307: PPUSH
28308: CALL_OW 94
// ZenskaDoDepotu = 0 ;
28312: LD_ADDR_EXP 95
28316: PUSH
28317: LD_INT 0
28319: ST_TO_ADDR
// OdstranitZenskou = 1 ;
28320: LD_ADDR_EXP 96
28324: PUSH
28325: LD_INT 1
28327: ST_TO_ADDR
// end ; 2 :
28328: GO 28374
28330: LD_INT 2
28332: DOUBLE
28333: EQUAL
28334: IFTRUE 28338
28336: GO 28373
28338: POP
// begin Say ( vsevolod , vse-18 ) ;
28339: LD_EXP 17
28343: PPUSH
28344: LD_STRING vse-18
28346: PPUSH
28347: CALL_OW 88
// SayRadio ( richard , richard-5 ) ;
28351: LD_EXP 15
28355: PPUSH
28356: LD_STRING richard-5
28358: PPUSH
28359: CALL_OW 94
// PrestanUtikat = 0 ;
28363: LD_ADDR_EXP 99
28367: PUSH
28368: LD_INT 0
28370: ST_TO_ADDR
// end ; end ;
28371: GO 28374
28373: POP
// Wait ( 0 0$0.3 ) ;
28374: LD_INT 10
28376: PPUSH
28377: CALL_OW 67
// DialogueOff ;
28381: CALL_OW 7
// InGameOff ;
28385: CALL_OW 9
// end ;
28389: LD_VAR 0 1
28393: RET
// export function DialogArabRichardAccept ; var say1 , say2 ; var tree ; begin
28394: LD_INT 0
28396: PPUSH
28397: PPUSH
28398: PPUSH
28399: PPUSH
// DialogueOn ;
28400: CALL_OW 6
// SayRadio ( richard , richard-6 ) ;
28404: LD_EXP 15
28408: PPUSH
28409: LD_STRING richard-6
28411: PPUSH
28412: CALL_OW 94
// for tree in [ [ 17 , 23 ] , [ 18 , 23 ] , [ 19 , 24 ] , [ 18 , 24 ] , [ 17 , 24 ] , [ 18 , 25 ] , [ 19 , 25 ] , [ 37 , 37 ] , [ 38 , 37 ] , [ 39 , 38 ] , [ 38 , 38 ] , [ 37 , 38 ] , [ 38 , 39 ] , [ 39 , 39 ] , [ 38 , 38 ] , [ 39 , 40 ] , [ 40 , 40 ] , [ 60 , 45 ] , [ 61 , 45 ] , [ 62 , 46 ] , [ 61 , 46 ] , [ 60 , 46 ] , [ 61 , 47 ] , [ 62 , 47 ] , [ 75 , 44 ] , [ 76 , 44 ] , [ 77 , 45 ] , [ 76 , 45 ] , [ 75 , 45 ] , [ 76 , 46 ] , [ 77 , 46 ] , [ 77 , 47 ] , [ 76 , 47 ] , [ 75 , 46 ] , [ 85 , 43 ] , [ 86 , 43 ] , [ 87 , 44 ] , [ 86 , 44 ] , [ 85 , 44 ] , [ 86 , 45 ] , [ 87 , 45 ] , [ 85 , 44 ] , [ 110 , 45 ] , [ 111 , 45 ] , [ 112 , 46 ] , [ 111 , 46 ] , [ 110 , 46 ] , [ 111 , 47 ] , [ 112 , 47 ] , [ 116 , 41 ] , [ 116 , 40 ] , [ 115 , 40 ] , [ 115 , 41 ] , [ 116 , 42 ] , [ 117 , 42 ] , [ 136 , 45 ] , [ 137 , 45 ] , [ 138 , 46 ] , [ 137 , 46 ] , [ 136 , 46 ] , [ 137 , 47 ] , [ 138 , 47 ] , [ 136 , 46 ] , [ 149 , 44 ] , [ 150 , 44 ] , [ 151 , 45 ] , [ 150 , 45 ] , [ 149 , 45 ] , [ 150 , 46 ] , [ 151 , 46 ] , [ 145 , 14 ] , [ 145 , 13 ] , [ 146 , 14 ] , [ 144 , 13 ] , [ 144 , 14 ] , [ 145 , 15 ] , [ 146 , 15 ] , [ 137 , 1 ] , [ 138 , 2 ] , [ 138 , 1 ] , [ 137 , 0 ] , [ 139 , 3 ] , [ 139 , 2 ] , [ 140 , 3 ] , [ 140 , 2 ] , [ 139 , 1 ] , [ 84 , 34 ] , [ 85 , 34 ] , [ 86 , 35 ] , [ 85 , 35 ] , [ 85 , 36 ] , [ 85 , 36 ] , [ 86 , 36 ] , [ 95 , 33 ] , [ 96 , 33 ] , [ 96 , 33 ] , [ 96 , 32 ] , [ 95 , 32 ] , [ 95 , 32 ] , [ 94 , 32 ] , [ 94 , 31 ] , [ 95 , 31 ] , [ 95 , 31 ] , [ 96 , 31 ] ] do
28416: LD_ADDR_VAR 0 4
28420: PUSH
28421: LD_INT 17
28423: PUSH
28424: LD_INT 23
28426: PUSH
28427: EMPTY
28428: LIST
28429: LIST
28430: PUSH
28431: LD_INT 18
28433: PUSH
28434: LD_INT 23
28436: PUSH
28437: EMPTY
28438: LIST
28439: LIST
28440: PUSH
28441: LD_INT 19
28443: PUSH
28444: LD_INT 24
28446: PUSH
28447: EMPTY
28448: LIST
28449: LIST
28450: PUSH
28451: LD_INT 18
28453: PUSH
28454: LD_INT 24
28456: PUSH
28457: EMPTY
28458: LIST
28459: LIST
28460: PUSH
28461: LD_INT 17
28463: PUSH
28464: LD_INT 24
28466: PUSH
28467: EMPTY
28468: LIST
28469: LIST
28470: PUSH
28471: LD_INT 18
28473: PUSH
28474: LD_INT 25
28476: PUSH
28477: EMPTY
28478: LIST
28479: LIST
28480: PUSH
28481: LD_INT 19
28483: PUSH
28484: LD_INT 25
28486: PUSH
28487: EMPTY
28488: LIST
28489: LIST
28490: PUSH
28491: LD_INT 37
28493: PUSH
28494: LD_INT 37
28496: PUSH
28497: EMPTY
28498: LIST
28499: LIST
28500: PUSH
28501: LD_INT 38
28503: PUSH
28504: LD_INT 37
28506: PUSH
28507: EMPTY
28508: LIST
28509: LIST
28510: PUSH
28511: LD_INT 39
28513: PUSH
28514: LD_INT 38
28516: PUSH
28517: EMPTY
28518: LIST
28519: LIST
28520: PUSH
28521: LD_INT 38
28523: PUSH
28524: LD_INT 38
28526: PUSH
28527: EMPTY
28528: LIST
28529: LIST
28530: PUSH
28531: LD_INT 37
28533: PUSH
28534: LD_INT 38
28536: PUSH
28537: EMPTY
28538: LIST
28539: LIST
28540: PUSH
28541: LD_INT 38
28543: PUSH
28544: LD_INT 39
28546: PUSH
28547: EMPTY
28548: LIST
28549: LIST
28550: PUSH
28551: LD_INT 39
28553: PUSH
28554: LD_INT 39
28556: PUSH
28557: EMPTY
28558: LIST
28559: LIST
28560: PUSH
28561: LD_INT 38
28563: PUSH
28564: LD_INT 38
28566: PUSH
28567: EMPTY
28568: LIST
28569: LIST
28570: PUSH
28571: LD_INT 39
28573: PUSH
28574: LD_INT 40
28576: PUSH
28577: EMPTY
28578: LIST
28579: LIST
28580: PUSH
28581: LD_INT 40
28583: PUSH
28584: LD_INT 40
28586: PUSH
28587: EMPTY
28588: LIST
28589: LIST
28590: PUSH
28591: LD_INT 60
28593: PUSH
28594: LD_INT 45
28596: PUSH
28597: EMPTY
28598: LIST
28599: LIST
28600: PUSH
28601: LD_INT 61
28603: PUSH
28604: LD_INT 45
28606: PUSH
28607: EMPTY
28608: LIST
28609: LIST
28610: PUSH
28611: LD_INT 62
28613: PUSH
28614: LD_INT 46
28616: PUSH
28617: EMPTY
28618: LIST
28619: LIST
28620: PUSH
28621: LD_INT 61
28623: PUSH
28624: LD_INT 46
28626: PUSH
28627: EMPTY
28628: LIST
28629: LIST
28630: PUSH
28631: LD_INT 60
28633: PUSH
28634: LD_INT 46
28636: PUSH
28637: EMPTY
28638: LIST
28639: LIST
28640: PUSH
28641: LD_INT 61
28643: PUSH
28644: LD_INT 47
28646: PUSH
28647: EMPTY
28648: LIST
28649: LIST
28650: PUSH
28651: LD_INT 62
28653: PUSH
28654: LD_INT 47
28656: PUSH
28657: EMPTY
28658: LIST
28659: LIST
28660: PUSH
28661: LD_INT 75
28663: PUSH
28664: LD_INT 44
28666: PUSH
28667: EMPTY
28668: LIST
28669: LIST
28670: PUSH
28671: LD_INT 76
28673: PUSH
28674: LD_INT 44
28676: PUSH
28677: EMPTY
28678: LIST
28679: LIST
28680: PUSH
28681: LD_INT 77
28683: PUSH
28684: LD_INT 45
28686: PUSH
28687: EMPTY
28688: LIST
28689: LIST
28690: PUSH
28691: LD_INT 76
28693: PUSH
28694: LD_INT 45
28696: PUSH
28697: EMPTY
28698: LIST
28699: LIST
28700: PUSH
28701: LD_INT 75
28703: PUSH
28704: LD_INT 45
28706: PUSH
28707: EMPTY
28708: LIST
28709: LIST
28710: PUSH
28711: LD_INT 76
28713: PUSH
28714: LD_INT 46
28716: PUSH
28717: EMPTY
28718: LIST
28719: LIST
28720: PUSH
28721: LD_INT 77
28723: PUSH
28724: LD_INT 46
28726: PUSH
28727: EMPTY
28728: LIST
28729: LIST
28730: PUSH
28731: LD_INT 77
28733: PUSH
28734: LD_INT 47
28736: PUSH
28737: EMPTY
28738: LIST
28739: LIST
28740: PUSH
28741: LD_INT 76
28743: PUSH
28744: LD_INT 47
28746: PUSH
28747: EMPTY
28748: LIST
28749: LIST
28750: PUSH
28751: LD_INT 75
28753: PUSH
28754: LD_INT 46
28756: PUSH
28757: EMPTY
28758: LIST
28759: LIST
28760: PUSH
28761: LD_INT 85
28763: PUSH
28764: LD_INT 43
28766: PUSH
28767: EMPTY
28768: LIST
28769: LIST
28770: PUSH
28771: LD_INT 86
28773: PUSH
28774: LD_INT 43
28776: PUSH
28777: EMPTY
28778: LIST
28779: LIST
28780: PUSH
28781: LD_INT 87
28783: PUSH
28784: LD_INT 44
28786: PUSH
28787: EMPTY
28788: LIST
28789: LIST
28790: PUSH
28791: LD_INT 86
28793: PUSH
28794: LD_INT 44
28796: PUSH
28797: EMPTY
28798: LIST
28799: LIST
28800: PUSH
28801: LD_INT 85
28803: PUSH
28804: LD_INT 44
28806: PUSH
28807: EMPTY
28808: LIST
28809: LIST
28810: PUSH
28811: LD_INT 86
28813: PUSH
28814: LD_INT 45
28816: PUSH
28817: EMPTY
28818: LIST
28819: LIST
28820: PUSH
28821: LD_INT 87
28823: PUSH
28824: LD_INT 45
28826: PUSH
28827: EMPTY
28828: LIST
28829: LIST
28830: PUSH
28831: LD_INT 85
28833: PUSH
28834: LD_INT 44
28836: PUSH
28837: EMPTY
28838: LIST
28839: LIST
28840: PUSH
28841: LD_INT 110
28843: PUSH
28844: LD_INT 45
28846: PUSH
28847: EMPTY
28848: LIST
28849: LIST
28850: PUSH
28851: LD_INT 111
28853: PUSH
28854: LD_INT 45
28856: PUSH
28857: EMPTY
28858: LIST
28859: LIST
28860: PUSH
28861: LD_INT 112
28863: PUSH
28864: LD_INT 46
28866: PUSH
28867: EMPTY
28868: LIST
28869: LIST
28870: PUSH
28871: LD_INT 111
28873: PUSH
28874: LD_INT 46
28876: PUSH
28877: EMPTY
28878: LIST
28879: LIST
28880: PUSH
28881: LD_INT 110
28883: PUSH
28884: LD_INT 46
28886: PUSH
28887: EMPTY
28888: LIST
28889: LIST
28890: PUSH
28891: LD_INT 111
28893: PUSH
28894: LD_INT 47
28896: PUSH
28897: EMPTY
28898: LIST
28899: LIST
28900: PUSH
28901: LD_INT 112
28903: PUSH
28904: LD_INT 47
28906: PUSH
28907: EMPTY
28908: LIST
28909: LIST
28910: PUSH
28911: LD_INT 116
28913: PUSH
28914: LD_INT 41
28916: PUSH
28917: EMPTY
28918: LIST
28919: LIST
28920: PUSH
28921: LD_INT 116
28923: PUSH
28924: LD_INT 40
28926: PUSH
28927: EMPTY
28928: LIST
28929: LIST
28930: PUSH
28931: LD_INT 115
28933: PUSH
28934: LD_INT 40
28936: PUSH
28937: EMPTY
28938: LIST
28939: LIST
28940: PUSH
28941: LD_INT 115
28943: PUSH
28944: LD_INT 41
28946: PUSH
28947: EMPTY
28948: LIST
28949: LIST
28950: PUSH
28951: LD_INT 116
28953: PUSH
28954: LD_INT 42
28956: PUSH
28957: EMPTY
28958: LIST
28959: LIST
28960: PUSH
28961: LD_INT 117
28963: PUSH
28964: LD_INT 42
28966: PUSH
28967: EMPTY
28968: LIST
28969: LIST
28970: PUSH
28971: LD_INT 136
28973: PUSH
28974: LD_INT 45
28976: PUSH
28977: EMPTY
28978: LIST
28979: LIST
28980: PUSH
28981: LD_INT 137
28983: PUSH
28984: LD_INT 45
28986: PUSH
28987: EMPTY
28988: LIST
28989: LIST
28990: PUSH
28991: LD_INT 138
28993: PUSH
28994: LD_INT 46
28996: PUSH
28997: EMPTY
28998: LIST
28999: LIST
29000: PUSH
29001: LD_INT 137
29003: PUSH
29004: LD_INT 46
29006: PUSH
29007: EMPTY
29008: LIST
29009: LIST
29010: PUSH
29011: LD_INT 136
29013: PUSH
29014: LD_INT 46
29016: PUSH
29017: EMPTY
29018: LIST
29019: LIST
29020: PUSH
29021: LD_INT 137
29023: PUSH
29024: LD_INT 47
29026: PUSH
29027: EMPTY
29028: LIST
29029: LIST
29030: PUSH
29031: LD_INT 138
29033: PUSH
29034: LD_INT 47
29036: PUSH
29037: EMPTY
29038: LIST
29039: LIST
29040: PUSH
29041: LD_INT 136
29043: PUSH
29044: LD_INT 46
29046: PUSH
29047: EMPTY
29048: LIST
29049: LIST
29050: PUSH
29051: LD_INT 149
29053: PUSH
29054: LD_INT 44
29056: PUSH
29057: EMPTY
29058: LIST
29059: LIST
29060: PUSH
29061: LD_INT 150
29063: PUSH
29064: LD_INT 44
29066: PUSH
29067: EMPTY
29068: LIST
29069: LIST
29070: PUSH
29071: LD_INT 151
29073: PUSH
29074: LD_INT 45
29076: PUSH
29077: EMPTY
29078: LIST
29079: LIST
29080: PUSH
29081: LD_INT 150
29083: PUSH
29084: LD_INT 45
29086: PUSH
29087: EMPTY
29088: LIST
29089: LIST
29090: PUSH
29091: LD_INT 149
29093: PUSH
29094: LD_INT 45
29096: PUSH
29097: EMPTY
29098: LIST
29099: LIST
29100: PUSH
29101: LD_INT 150
29103: PUSH
29104: LD_INT 46
29106: PUSH
29107: EMPTY
29108: LIST
29109: LIST
29110: PUSH
29111: LD_INT 151
29113: PUSH
29114: LD_INT 46
29116: PUSH
29117: EMPTY
29118: LIST
29119: LIST
29120: PUSH
29121: LD_INT 145
29123: PUSH
29124: LD_INT 14
29126: PUSH
29127: EMPTY
29128: LIST
29129: LIST
29130: PUSH
29131: LD_INT 145
29133: PUSH
29134: LD_INT 13
29136: PUSH
29137: EMPTY
29138: LIST
29139: LIST
29140: PUSH
29141: LD_INT 146
29143: PUSH
29144: LD_INT 14
29146: PUSH
29147: EMPTY
29148: LIST
29149: LIST
29150: PUSH
29151: LD_INT 144
29153: PUSH
29154: LD_INT 13
29156: PUSH
29157: EMPTY
29158: LIST
29159: LIST
29160: PUSH
29161: LD_INT 144
29163: PUSH
29164: LD_INT 14
29166: PUSH
29167: EMPTY
29168: LIST
29169: LIST
29170: PUSH
29171: LD_INT 145
29173: PUSH
29174: LD_INT 15
29176: PUSH
29177: EMPTY
29178: LIST
29179: LIST
29180: PUSH
29181: LD_INT 146
29183: PUSH
29184: LD_INT 15
29186: PUSH
29187: EMPTY
29188: LIST
29189: LIST
29190: PUSH
29191: LD_INT 137
29193: PUSH
29194: LD_INT 1
29196: PUSH
29197: EMPTY
29198: LIST
29199: LIST
29200: PUSH
29201: LD_INT 138
29203: PUSH
29204: LD_INT 2
29206: PUSH
29207: EMPTY
29208: LIST
29209: LIST
29210: PUSH
29211: LD_INT 138
29213: PUSH
29214: LD_INT 1
29216: PUSH
29217: EMPTY
29218: LIST
29219: LIST
29220: PUSH
29221: LD_INT 137
29223: PUSH
29224: LD_INT 0
29226: PUSH
29227: EMPTY
29228: LIST
29229: LIST
29230: PUSH
29231: LD_INT 139
29233: PUSH
29234: LD_INT 3
29236: PUSH
29237: EMPTY
29238: LIST
29239: LIST
29240: PUSH
29241: LD_INT 139
29243: PUSH
29244: LD_INT 2
29246: PUSH
29247: EMPTY
29248: LIST
29249: LIST
29250: PUSH
29251: LD_INT 140
29253: PUSH
29254: LD_INT 3
29256: PUSH
29257: EMPTY
29258: LIST
29259: LIST
29260: PUSH
29261: LD_INT 140
29263: PUSH
29264: LD_INT 2
29266: PUSH
29267: EMPTY
29268: LIST
29269: LIST
29270: PUSH
29271: LD_INT 139
29273: PUSH
29274: LD_INT 1
29276: PUSH
29277: EMPTY
29278: LIST
29279: LIST
29280: PUSH
29281: LD_INT 84
29283: PUSH
29284: LD_INT 34
29286: PUSH
29287: EMPTY
29288: LIST
29289: LIST
29290: PUSH
29291: LD_INT 85
29293: PUSH
29294: LD_INT 34
29296: PUSH
29297: EMPTY
29298: LIST
29299: LIST
29300: PUSH
29301: LD_INT 86
29303: PUSH
29304: LD_INT 35
29306: PUSH
29307: EMPTY
29308: LIST
29309: LIST
29310: PUSH
29311: LD_INT 85
29313: PUSH
29314: LD_INT 35
29316: PUSH
29317: EMPTY
29318: LIST
29319: LIST
29320: PUSH
29321: LD_INT 85
29323: PUSH
29324: LD_INT 36
29326: PUSH
29327: EMPTY
29328: LIST
29329: LIST
29330: PUSH
29331: LD_INT 85
29333: PUSH
29334: LD_INT 36
29336: PUSH
29337: EMPTY
29338: LIST
29339: LIST
29340: PUSH
29341: LD_INT 86
29343: PUSH
29344: LD_INT 36
29346: PUSH
29347: EMPTY
29348: LIST
29349: LIST
29350: PUSH
29351: LD_INT 95
29353: PUSH
29354: LD_INT 33
29356: PUSH
29357: EMPTY
29358: LIST
29359: LIST
29360: PUSH
29361: LD_INT 96
29363: PUSH
29364: LD_INT 33
29366: PUSH
29367: EMPTY
29368: LIST
29369: LIST
29370: PUSH
29371: LD_INT 96
29373: PUSH
29374: LD_INT 33
29376: PUSH
29377: EMPTY
29378: LIST
29379: LIST
29380: PUSH
29381: LD_INT 96
29383: PUSH
29384: LD_INT 32
29386: PUSH
29387: EMPTY
29388: LIST
29389: LIST
29390: PUSH
29391: LD_INT 95
29393: PUSH
29394: LD_INT 32
29396: PUSH
29397: EMPTY
29398: LIST
29399: LIST
29400: PUSH
29401: LD_INT 95
29403: PUSH
29404: LD_INT 32
29406: PUSH
29407: EMPTY
29408: LIST
29409: LIST
29410: PUSH
29411: LD_INT 94
29413: PUSH
29414: LD_INT 32
29416: PUSH
29417: EMPTY
29418: LIST
29419: LIST
29420: PUSH
29421: LD_INT 94
29423: PUSH
29424: LD_INT 31
29426: PUSH
29427: EMPTY
29428: LIST
29429: LIST
29430: PUSH
29431: LD_INT 95
29433: PUSH
29434: LD_INT 31
29436: PUSH
29437: EMPTY
29438: LIST
29439: LIST
29440: PUSH
29441: LD_INT 95
29443: PUSH
29444: LD_INT 31
29446: PUSH
29447: EMPTY
29448: LIST
29449: LIST
29450: PUSH
29451: LD_INT 96
29453: PUSH
29454: LD_INT 31
29456: PUSH
29457: EMPTY
29458: LIST
29459: LIST
29460: PUSH
29461: EMPTY
29462: LIST
29463: LIST
29464: LIST
29465: LIST
29466: LIST
29467: LIST
29468: LIST
29469: LIST
29470: LIST
29471: LIST
29472: LIST
29473: LIST
29474: LIST
29475: LIST
29476: LIST
29477: LIST
29478: LIST
29479: LIST
29480: LIST
29481: LIST
29482: LIST
29483: LIST
29484: LIST
29485: LIST
29486: LIST
29487: LIST
29488: LIST
29489: LIST
29490: LIST
29491: LIST
29492: LIST
29493: LIST
29494: LIST
29495: LIST
29496: LIST
29497: LIST
29498: LIST
29499: LIST
29500: LIST
29501: LIST
29502: LIST
29503: LIST
29504: LIST
29505: LIST
29506: LIST
29507: LIST
29508: LIST
29509: LIST
29510: LIST
29511: LIST
29512: LIST
29513: LIST
29514: LIST
29515: LIST
29516: LIST
29517: LIST
29518: LIST
29519: LIST
29520: LIST
29521: LIST
29522: LIST
29523: LIST
29524: LIST
29525: LIST
29526: LIST
29527: LIST
29528: LIST
29529: LIST
29530: LIST
29531: LIST
29532: LIST
29533: LIST
29534: LIST
29535: LIST
29536: LIST
29537: LIST
29538: LIST
29539: LIST
29540: LIST
29541: LIST
29542: LIST
29543: LIST
29544: LIST
29545: LIST
29546: LIST
29547: LIST
29548: LIST
29549: LIST
29550: LIST
29551: LIST
29552: LIST
29553: LIST
29554: LIST
29555: LIST
29556: LIST
29557: LIST
29558: LIST
29559: LIST
29560: LIST
29561: LIST
29562: LIST
29563: LIST
29564: LIST
29565: LIST
29566: PUSH
29567: FOR_IN
29568: IFFALSE 29625
// if HexInfo ( tree [ 1 ] , tree [ 2 ] ) < 0 then
29570: LD_VAR 0 4
29574: PUSH
29575: LD_INT 1
29577: ARRAY
29578: PPUSH
29579: LD_VAR 0 4
29583: PUSH
29584: LD_INT 2
29586: ARRAY
29587: PPUSH
29588: CALL_OW 428
29592: PUSH
29593: LD_INT 0
29595: LESS
29596: IFFALSE 29623
// HiddenCamera ( tree [ 1 ] , tree [ 2 ] , 7 ) ;
29598: LD_VAR 0 4
29602: PUSH
29603: LD_INT 1
29605: ARRAY
29606: PPUSH
29607: LD_VAR 0 4
29611: PUSH
29612: LD_INT 2
29614: ARRAY
29615: PPUSH
29616: LD_INT 7
29618: PPUSH
29619: CALL_OW 244
29623: GO 29567
29625: POP
29626: POP
// ChangeSideFog ( 7 , 3 ) ;
29627: LD_INT 7
29629: PPUSH
29630: LD_INT 3
29632: PPUSH
29633: CALL_OW 343
// if IsOk ( karamazov ) then
29637: LD_EXP 11
29641: PPUSH
29642: CALL_OW 302
29646: IFFALSE 29660
// say1 = karamazov else
29648: LD_ADDR_VAR 0 2
29652: PUSH
29653: LD_EXP 11
29657: ST_TO_ADDR
29658: GO 29670
// say1 = NajdiVojaka ;
29660: LD_ADDR_VAR 0 2
29664: PUSH
29665: CALL 7861 0 0
29669: ST_TO_ADDR
// Say ( say1 , nekdo-2 ) ;
29670: LD_VAR 0 2
29674: PPUSH
29675: LD_STRING nekdo-2
29677: PPUSH
29678: CALL_OW 88
// if IsOk ( gnevko ) and say1 <> gnevko then
29682: LD_EXP 8
29686: PPUSH
29687: CALL_OW 302
29691: PUSH
29692: LD_VAR 0 2
29696: PUSH
29697: LD_EXP 8
29701: NONEQUAL
29702: AND
29703: IFFALSE 29717
// say2 = gnevko else
29705: LD_ADDR_VAR 0 3
29709: PUSH
29710: LD_EXP 8
29714: ST_TO_ADDR
29715: GO 29786
// if IsOk ( titov ) and say1 <> titov then
29717: LD_EXP 12
29721: PPUSH
29722: CALL_OW 302
29726: PUSH
29727: LD_VAR 0 2
29731: PUSH
29732: LD_EXP 12
29736: NONEQUAL
29737: AND
29738: IFFALSE 29752
// say2 = titov else
29740: LD_ADDR_VAR 0 3
29744: PUSH
29745: LD_EXP 12
29749: ST_TO_ADDR
29750: GO 29786
// if say2 <> NajdiMechanika then
29752: LD_VAR 0 3
29756: PUSH
29757: CALL 8349 0 0
29761: NONEQUAL
29762: IFFALSE 29776
// say2 = NajdiMechanika else
29764: LD_ADDR_VAR 0 3
29768: PUSH
29769: CALL 8349 0 0
29773: ST_TO_ADDR
29774: GO 29786
// say2 = NajdiVedce ;
29776: LD_ADDR_VAR 0 3
29780: PUSH
29781: CALL 8123 0 0
29785: ST_TO_ADDR
// Say ( say2 , nekdo-3 ) ;
29786: LD_VAR 0 3
29790: PPUSH
29791: LD_STRING nekdo-3
29793: PPUSH
29794: CALL_OW 88
// Wait ( 0 0$0.3 ) ;
29798: LD_INT 10
29800: PPUSH
29801: CALL_OW 67
// DialogueOff ;
29805: CALL_OW 7
// end ;
29809: LD_VAR 0 1
29813: RET
// export PortacniVyuzity ; every 0 0$1 trigger SeeXY ( You , 209 , 85 ) do
29814: LD_EXP 2
29818: PPUSH
29819: LD_INT 209
29821: PPUSH
29822: LD_INT 85
29824: PPUSH
29825: CALL_OW 293
29829: IFFALSE 29842
29831: GO 29833
29833: DISABLE
// begin PortacniVyuzity = 1 ;
29834: LD_ADDR_EXP 75
29838: PUSH
29839: LD_INT 1
29841: ST_TO_ADDR
// end ;
29842: END
// export OstruvekByl ; every 0 0$1 trigger GetDistUnitXY ( NearestUnitToXY ( FilterAllUnits ( [ [ f_ok ] , [ f_side , You ] , [ f_type , unit_human ] ] ) , 150 , 109 ) , 150 , 109 ) <= 3 do var voj ;
29843: LD_INT 50
29845: PUSH
29846: EMPTY
29847: LIST
29848: PUSH
29849: LD_INT 22
29851: PUSH
29852: LD_EXP 2
29856: PUSH
29857: EMPTY
29858: LIST
29859: LIST
29860: PUSH
29861: LD_INT 21
29863: PUSH
29864: LD_INT 1
29866: PUSH
29867: EMPTY
29868: LIST
29869: LIST
29870: PUSH
29871: EMPTY
29872: LIST
29873: LIST
29874: LIST
29875: PPUSH
29876: CALL_OW 69
29880: PPUSH
29881: LD_INT 150
29883: PPUSH
29884: LD_INT 109
29886: PPUSH
29887: CALL_OW 73
29891: PPUSH
29892: LD_INT 150
29894: PPUSH
29895: LD_INT 109
29897: PPUSH
29898: CALL_OW 297
29902: PUSH
29903: LD_INT 3
29905: LESSEQUAL
29906: IFFALSE 29930
29908: GO 29910
29910: DISABLE
29911: LD_INT 0
29913: PPUSH
// begin PortacniVyuzity = 1 ;
29914: LD_ADDR_EXP 75
29918: PUSH
29919: LD_INT 1
29921: ST_TO_ADDR
// OstruvekByl = 1 ;
29922: LD_ADDR_EXP 76
29926: PUSH
29927: LD_INT 1
29929: ST_TO_ADDR
// end ;
29930: PPOPN 1
29932: END
// export RusBylVBaze ; every 0 0$1 trigger FilterAllUnits ( [ [ f_inarea , NoHumanRed ] , [ f_ok ] , [ f_side , You ] ] ) + 0 >= 2 do
29933: LD_INT 95
29935: PUSH
29936: LD_INT 49
29938: PUSH
29939: EMPTY
29940: LIST
29941: LIST
29942: PUSH
29943: LD_INT 50
29945: PUSH
29946: EMPTY
29947: LIST
29948: PUSH
29949: LD_INT 22
29951: PUSH
29952: LD_EXP 2
29956: PUSH
29957: EMPTY
29958: LIST
29959: LIST
29960: PUSH
29961: EMPTY
29962: LIST
29963: LIST
29964: LIST
29965: PPUSH
29966: CALL_OW 69
29970: PUSH
29971: LD_INT 0
29973: PLUS
29974: PUSH
29975: LD_INT 2
29977: GREATEREQUAL
29978: IFFALSE 29991
29980: GO 29982
29982: DISABLE
// begin RusBylVBaze = 1 ;
29983: LD_ADDR_EXP 77
29987: PUSH
29988: LD_INT 1
29990: ST_TO_ADDR
// end ;
29991: END
// every 0 0$1 trigger GetDistUnitXY ( NearestUnitToXY ( FilterAllUnits ( [ [ f_ok ] , [ f_side , You ] , [ f_type , unit_human ] ] ) , 158 , 104 ) , 158 , 104 ) <= 4 do var voj ;
29992: LD_INT 50
29994: PUSH
29995: EMPTY
29996: LIST
29997: PUSH
29998: LD_INT 22
30000: PUSH
30001: LD_EXP 2
30005: PUSH
30006: EMPTY
30007: LIST
30008: LIST
30009: PUSH
30010: LD_INT 21
30012: PUSH
30013: LD_INT 1
30015: PUSH
30016: EMPTY
30017: LIST
30018: LIST
30019: PUSH
30020: EMPTY
30021: LIST
30022: LIST
30023: LIST
30024: PPUSH
30025: CALL_OW 69
30029: PPUSH
30030: LD_INT 158
30032: PPUSH
30033: LD_INT 104
30035: PPUSH
30036: CALL_OW 73
30040: PPUSH
30041: LD_INT 158
30043: PPUSH
30044: LD_INT 104
30046: PPUSH
30047: CALL_OW 297
30051: PUSH
30052: LD_INT 4
30054: LESSEQUAL
30055: IFFALSE 30163
30057: GO 30059
30059: DISABLE
30060: LD_INT 0
30062: PPUSH
// begin if OstruvekByl = 1 and not RusBylVBaze then
30063: LD_EXP 76
30067: PUSH
30068: LD_INT 1
30070: EQUAL
30071: PUSH
30072: LD_EXP 77
30076: NOT
30077: AND
30078: IFFALSE 30163
// begin Wait ( 0 0$2.4 ) ;
30080: LD_INT 84
30082: PPUSH
30083: CALL_OW 67
// voj = FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_soldier ] ] ) ;
30087: LD_ADDR_VAR 0 1
30091: PUSH
30092: LD_INT 95
30094: PUSH
30095: LD_INT 30
30097: PUSH
30098: EMPTY
30099: LIST
30100: LIST
30101: PUSH
30102: LD_INT 50
30104: PUSH
30105: EMPTY
30106: LIST
30107: PUSH
30108: LD_INT 22
30110: PUSH
30111: LD_EXP 4
30115: PUSH
30116: EMPTY
30117: LIST
30118: LIST
30119: PUSH
30120: LD_INT 25
30122: PUSH
30123: LD_INT 1
30125: PUSH
30126: EMPTY
30127: LIST
30128: LIST
30129: PUSH
30130: EMPTY
30131: LIST
30132: LIST
30133: LIST
30134: LIST
30135: PPUSH
30136: CALL_OW 69
30140: ST_TO_ADDR
// if voj then
30141: LD_VAR 0 1
30145: IFFALSE 30163
// Say ( voj [ 1 ] , amvoj-1 ) ;
30147: LD_VAR 0 1
30151: PUSH
30152: LD_INT 1
30154: ARRAY
30155: PPUSH
30156: LD_STRING amvoj-1
30158: PPUSH
30159: CALL_OW 88
// end ; end ;
30163: PPOPN 1
30165: END
// every 0 0$1 trigger FilterUnitsExceptArea ( AmBaza1 , [ [ f_not , [ f_inarea , AmBaza3 ] ] , [ f_type , unit_human ] , [ f_side , Amik ] , [ f_not , [ f_class , class_soldier ] ] ] ) or FilterUnitsExceptArea ( AmBaza2 , [ [ f_not , [ f_inarea , AmBaza3 ] ] , [ f_type , unit_human ] , [ f_side , Amik ] , [ f_not , [ f_class , class_soldier ] ] ] ) do var lidi , i ;
30166: LD_INT 29
30168: PPUSH
30169: LD_INT 3
30171: PUSH
30172: LD_INT 95
30174: PUSH
30175: LD_INT 31
30177: PUSH
30178: EMPTY
30179: LIST
30180: LIST
30181: PUSH
30182: EMPTY
30183: LIST
30184: LIST
30185: PUSH
30186: LD_INT 21
30188: PUSH
30189: LD_INT 1
30191: PUSH
30192: EMPTY
30193: LIST
30194: LIST
30195: PUSH
30196: LD_INT 22
30198: PUSH
30199: LD_EXP 4
30203: PUSH
30204: EMPTY
30205: LIST
30206: LIST
30207: PUSH
30208: LD_INT 3
30210: PUSH
30211: LD_INT 25
30213: PUSH
30214: LD_INT 1
30216: PUSH
30217: EMPTY
30218: LIST
30219: LIST
30220: PUSH
30221: EMPTY
30222: LIST
30223: LIST
30224: PUSH
30225: EMPTY
30226: LIST
30227: LIST
30228: LIST
30229: LIST
30230: PPUSH
30231: CALL_OW 71
30235: PUSH
30236: LD_INT 30
30238: PPUSH
30239: LD_INT 3
30241: PUSH
30242: LD_INT 95
30244: PUSH
30245: LD_INT 31
30247: PUSH
30248: EMPTY
30249: LIST
30250: LIST
30251: PUSH
30252: EMPTY
30253: LIST
30254: LIST
30255: PUSH
30256: LD_INT 21
30258: PUSH
30259: LD_INT 1
30261: PUSH
30262: EMPTY
30263: LIST
30264: LIST
30265: PUSH
30266: LD_INT 22
30268: PUSH
30269: LD_EXP 4
30273: PUSH
30274: EMPTY
30275: LIST
30276: LIST
30277: PUSH
30278: LD_INT 3
30280: PUSH
30281: LD_INT 25
30283: PUSH
30284: LD_INT 1
30286: PUSH
30287: EMPTY
30288: LIST
30289: LIST
30290: PUSH
30291: EMPTY
30292: LIST
30293: LIST
30294: PUSH
30295: EMPTY
30296: LIST
30297: LIST
30298: LIST
30299: LIST
30300: PPUSH
30301: CALL_OW 71
30305: OR
30306: IFFALSE 30480
30308: GO 30310
30310: DISABLE
30311: LD_INT 0
30313: PPUSH
30314: PPUSH
// begin lidi = FilterUnitsExceptArea ( AmBaza3 , [ [ f_type , unit_human ] , [ f_side , Amik ] , [ f_not , [ f_class , class_soldier ] ] ] ) ;
30315: LD_ADDR_VAR 0 1
30319: PUSH
30320: LD_INT 31
30322: PPUSH
30323: LD_INT 21
30325: PUSH
30326: LD_INT 1
30328: PUSH
30329: EMPTY
30330: LIST
30331: LIST
30332: PUSH
30333: LD_INT 22
30335: PUSH
30336: LD_EXP 4
30340: PUSH
30341: EMPTY
30342: LIST
30343: LIST
30344: PUSH
30345: LD_INT 3
30347: PUSH
30348: LD_INT 25
30350: PUSH
30351: LD_INT 1
30353: PUSH
30354: EMPTY
30355: LIST
30356: LIST
30357: PUSH
30358: EMPTY
30359: LIST
30360: LIST
30361: PUSH
30362: EMPTY
30363: LIST
30364: LIST
30365: LIST
30366: PPUSH
30367: CALL_OW 71
30371: ST_TO_ADDR
// if not lidi then
30372: LD_VAR 0 1
30376: NOT
30377: IFFALSE 30381
// exit ;
30379: GO 30480
// for i in lidi do
30381: LD_ADDR_VAR 0 2
30385: PUSH
30386: LD_VAR 0 1
30390: PUSH
30391: FOR_IN
30392: IFFALSE 30470
// begin if ( not IsInArea ( i , AmBaza1 ) and GetDistUnitArea ( i , AmBaza1 ) < 9 ) or ( not IsInArea ( i , AmBaza2 ) and GetDistUnitArea ( i , AmBaza2 ) < 9 ) then
30394: LD_VAR 0 2
30398: PPUSH
30399: LD_INT 29
30401: PPUSH
30402: CALL_OW 308
30406: NOT
30407: PUSH
30408: LD_VAR 0 2
30412: PPUSH
30413: LD_INT 29
30415: PPUSH
30416: CALL_OW 299
30420: PUSH
30421: LD_INT 9
30423: LESS
30424: AND
30425: PUSH
30426: LD_VAR 0 2
30430: PPUSH
30431: LD_INT 30
30433: PPUSH
30434: CALL_OW 308
30438: NOT
30439: PUSH
30440: LD_VAR 0 2
30444: PPUSH
30445: LD_INT 30
30447: PPUSH
30448: CALL_OW 299
30452: PUSH
30453: LD_INT 9
30455: LESS
30456: AND
30457: OR
30458: IFFALSE 30468
// PortacniVyuzity = 1 ;
30460: LD_ADDR_EXP 75
30464: PUSH
30465: LD_INT 1
30467: ST_TO_ADDR
// end ;
30468: GO 30391
30470: POP
30471: POP
// if not PortacniVyuzity then
30472: LD_EXP 75
30476: NOT
30477: IFFALSE 30480
// enable ;
30479: ENABLE
// end ; end_of_file
30480: PPOPN 2
30482: END
// export LevaBazaZnicena ; export PravaBazaZnicena ; export Am_Utok_1_List ; export Am_Utok_2_List ; export Cesta , CestaInfo ; var MakroUtok ; var RegUtok ; export function Init_Makra ; begin
30483: LD_INT 0
30485: PPUSH
// RegUtok = McRegistry ( Purple , [ [ MC_REG_AREA_TO_GUARD , Registry ] , MC_REG_IGNORE_FOG ] ) ;
30486: LD_ADDR_LOC 10
30490: PUSH
30491: LD_EXP 6
30495: PPUSH
30496: LD_INT 2
30498: PUSH
30499: LD_INT 39
30501: PUSH
30502: EMPTY
30503: LIST
30504: LIST
30505: PUSH
30506: LD_INT 7
30508: PUSH
30509: EMPTY
30510: LIST
30511: LIST
30512: PPUSH
30513: CALL_OW 399
30517: ST_TO_ADDR
// end ;
30518: LD_VAR 0 1
30522: RET
// export function Rand_Cesta ; var cesta1 , cesta2 , cesta3 ; var P , tmp ; begin
30523: LD_INT 0
30525: PPUSH
30526: PPUSH
30527: PPUSH
30528: PPUSH
30529: PPUSH
30530: PPUSH
// P = Rand ( 1 , 100 ) ;
30531: LD_ADDR_VAR 0 5
30535: PUSH
30536: LD_INT 1
30538: PPUSH
30539: LD_INT 100
30541: PPUSH
30542: CALL_OW 12
30546: ST_TO_ADDR
// cesta1 = [ [ 48 , 56 ] , [ 68 , 71 ] , [ 90 , 103 ] , [ 104 , 128 ] , [ 126 , 168 ] , [ 131 , 187 ] ] ;
30547: LD_ADDR_VAR 0 2
30551: PUSH
30552: LD_INT 48
30554: PUSH
30555: LD_INT 56
30557: PUSH
30558: EMPTY
30559: LIST
30560: LIST
30561: PUSH
30562: LD_INT 68
30564: PUSH
30565: LD_INT 71
30567: PUSH
30568: EMPTY
30569: LIST
30570: LIST
30571: PUSH
30572: LD_INT 90
30574: PUSH
30575: LD_INT 103
30577: PUSH
30578: EMPTY
30579: LIST
30580: LIST
30581: PUSH
30582: LD_INT 104
30584: PUSH
30585: LD_INT 128
30587: PUSH
30588: EMPTY
30589: LIST
30590: LIST
30591: PUSH
30592: LD_INT 126
30594: PUSH
30595: LD_INT 168
30597: PUSH
30598: EMPTY
30599: LIST
30600: LIST
30601: PUSH
30602: LD_INT 131
30604: PUSH
30605: LD_INT 187
30607: PUSH
30608: EMPTY
30609: LIST
30610: LIST
30611: PUSH
30612: EMPTY
30613: LIST
30614: LIST
30615: LIST
30616: LIST
30617: LIST
30618: LIST
30619: ST_TO_ADDR
// cesta2 = [ [ 48 , 56 ] , [ 60 , 93 ] , [ 86 , 128 ] , [ 88 , 156 ] , [ 111 , 170 ] , [ 128 , 173 ] , [ 131 , 187 ] ] ;
30620: LD_ADDR_VAR 0 3
30624: PUSH
30625: LD_INT 48
30627: PUSH
30628: LD_INT 56
30630: PUSH
30631: EMPTY
30632: LIST
30633: LIST
30634: PUSH
30635: LD_INT 60
30637: PUSH
30638: LD_INT 93
30640: PUSH
30641: EMPTY
30642: LIST
30643: LIST
30644: PUSH
30645: LD_INT 86
30647: PUSH
30648: LD_INT 128
30650: PUSH
30651: EMPTY
30652: LIST
30653: LIST
30654: PUSH
30655: LD_INT 88
30657: PUSH
30658: LD_INT 156
30660: PUSH
30661: EMPTY
30662: LIST
30663: LIST
30664: PUSH
30665: LD_INT 111
30667: PUSH
30668: LD_INT 170
30670: PUSH
30671: EMPTY
30672: LIST
30673: LIST
30674: PUSH
30675: LD_INT 128
30677: PUSH
30678: LD_INT 173
30680: PUSH
30681: EMPTY
30682: LIST
30683: LIST
30684: PUSH
30685: LD_INT 131
30687: PUSH
30688: LD_INT 187
30690: PUSH
30691: EMPTY
30692: LIST
30693: LIST
30694: PUSH
30695: EMPTY
30696: LIST
30697: LIST
30698: LIST
30699: LIST
30700: LIST
30701: LIST
30702: LIST
30703: ST_TO_ADDR
// cesta3 = [ [ 48 , 56 ] , [ 71 , 72 ] , [ 106 , 95 ] , [ 127 , 126 ] , [ 149 , 150 ] , [ 136 , 174 ] , [ 131 , 187 ] ] ;
30704: LD_ADDR_VAR 0 4
30708: PUSH
30709: LD_INT 48
30711: PUSH
30712: LD_INT 56
30714: PUSH
30715: EMPTY
30716: LIST
30717: LIST
30718: PUSH
30719: LD_INT 71
30721: PUSH
30722: LD_INT 72
30724: PUSH
30725: EMPTY
30726: LIST
30727: LIST
30728: PUSH
30729: LD_INT 106
30731: PUSH
30732: LD_INT 95
30734: PUSH
30735: EMPTY
30736: LIST
30737: LIST
30738: PUSH
30739: LD_INT 127
30741: PUSH
30742: LD_INT 126
30744: PUSH
30745: EMPTY
30746: LIST
30747: LIST
30748: PUSH
30749: LD_INT 149
30751: PUSH
30752: LD_INT 150
30754: PUSH
30755: EMPTY
30756: LIST
30757: LIST
30758: PUSH
30759: LD_INT 136
30761: PUSH
30762: LD_INT 174
30764: PUSH
30765: EMPTY
30766: LIST
30767: LIST
30768: PUSH
30769: LD_INT 131
30771: PUSH
30772: LD_INT 187
30774: PUSH
30775: EMPTY
30776: LIST
30777: LIST
30778: PUSH
30779: EMPTY
30780: LIST
30781: LIST
30782: LIST
30783: LIST
30784: LIST
30785: LIST
30786: LIST
30787: ST_TO_ADDR
// if P < dif_purple_cesta_prob [ 1 ] then
30788: LD_VAR 0 5
30792: PUSH
30793: LD_EXP 35
30797: PUSH
30798: LD_INT 1
30800: ARRAY
30801: LESS
30802: IFFALSE 30824
// begin tmp = cesta1 ;
30804: LD_ADDR_VAR 0 6
30808: PUSH
30809: LD_VAR 0 2
30813: ST_TO_ADDR
// CestaInfo = 1 ;
30814: LD_ADDR_EXP 83
30818: PUSH
30819: LD_INT 1
30821: ST_TO_ADDR
// end else
30822: GO 30878
// if P < dif_purple_cesta_prob [ 2 ] then
30824: LD_VAR 0 5
30828: PUSH
30829: LD_EXP 35
30833: PUSH
30834: LD_INT 2
30836: ARRAY
30837: LESS
30838: IFFALSE 30860
// begin tmp = cesta2 ;
30840: LD_ADDR_VAR 0 6
30844: PUSH
30845: LD_VAR 0 3
30849: ST_TO_ADDR
// CestaInfo = 2 ;
30850: LD_ADDR_EXP 83
30854: PUSH
30855: LD_INT 2
30857: ST_TO_ADDR
// end else
30858: GO 30878
// begin tmp = cesta3 ;
30860: LD_ADDR_VAR 0 6
30864: PUSH
30865: LD_VAR 0 4
30869: ST_TO_ADDR
// CestaInfo = 3 ;
30870: LD_ADDR_EXP 83
30874: PUSH
30875: LD_INT 3
30877: ST_TO_ADDR
// end ; Cesta = tmp ;
30878: LD_ADDR_EXP 82
30882: PUSH
30883: LD_VAR 0 6
30887: ST_TO_ADDR
// end ;
30888: LD_VAR 0 1
30892: RET
// every 0 0$3 do
30893: GO 30895
30895: DISABLE
// PravaCesta = [ [ 167 , 43 ] , [ 168 , 58 ] , [ 161 , 84 ] , [ 196 , 122 ] , [ 213 , 164 ] , [ 219 , 181 ] ] ;
30896: LD_ADDR_EXP 84
30900: PUSH
30901: LD_INT 167
30903: PUSH
30904: LD_INT 43
30906: PUSH
30907: EMPTY
30908: LIST
30909: LIST
30910: PUSH
30911: LD_INT 168
30913: PUSH
30914: LD_INT 58
30916: PUSH
30917: EMPTY
30918: LIST
30919: LIST
30920: PUSH
30921: LD_INT 161
30923: PUSH
30924: LD_INT 84
30926: PUSH
30927: EMPTY
30928: LIST
30929: LIST
30930: PUSH
30931: LD_INT 196
30933: PUSH
30934: LD_INT 122
30936: PUSH
30937: EMPTY
30938: LIST
30939: LIST
30940: PUSH
30941: LD_INT 213
30943: PUSH
30944: LD_INT 164
30946: PUSH
30947: EMPTY
30948: LIST
30949: LIST
30950: PUSH
30951: LD_INT 219
30953: PUSH
30954: LD_INT 181
30956: PUSH
30957: EMPTY
30958: LIST
30959: LIST
30960: PUSH
30961: EMPTY
30962: LIST
30963: LIST
30964: LIST
30965: LIST
30966: LIST
30967: LIST
30968: ST_TO_ADDR
30969: END
// var Probiha_McMove ; var Probiha_McAttack ; function ATTACK_PLAYER ; var i ; begin
30970: LD_INT 0
30972: PPUSH
30973: PPUSH
// if FilterUnitsExceptArea ( RuDepot , [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) = 0 and FilterAllUnits ( [ [ f_inarea , RuBaza ] , [ f_side , You ] , [ f_type , unit_human ] ] ) then
30974: LD_INT 38
30976: PPUSH
30977: LD_INT 22
30979: PUSH
30980: LD_EXP 2
30984: PUSH
30985: EMPTY
30986: LIST
30987: LIST
30988: PUSH
30989: LD_INT 2
30991: PUSH
30992: LD_INT 30
30994: PUSH
30995: LD_INT 0
30997: PUSH
30998: EMPTY
30999: LIST
31000: LIST
31001: PUSH
31002: LD_INT 30
31004: PUSH
31005: LD_INT 1
31007: PUSH
31008: EMPTY
31009: LIST
31010: LIST
31011: PUSH
31012: EMPTY
31013: LIST
31014: LIST
31015: LIST
31016: PUSH
31017: EMPTY
31018: LIST
31019: LIST
31020: PPUSH
31021: CALL_OW 71
31025: PUSH
31026: LD_INT 0
31028: EQUAL
31029: PUSH
31030: LD_INT 95
31032: PUSH
31033: LD_INT 6
31035: PUSH
31036: EMPTY
31037: LIST
31038: LIST
31039: PUSH
31040: LD_INT 22
31042: PUSH
31043: LD_EXP 2
31047: PUSH
31048: EMPTY
31049: LIST
31050: LIST
31051: PUSH
31052: LD_INT 21
31054: PUSH
31055: LD_INT 1
31057: PUSH
31058: EMPTY
31059: LIST
31060: LIST
31061: PUSH
31062: EMPTY
31063: LIST
31064: LIST
31065: LIST
31066: PPUSH
31067: CALL_OW 69
31071: AND
31072: IFFALSE 31130
// begin if not Probiha_McMove then
31074: LD_LOC 11
31078: NOT
31079: IFFALSE 31128
// begin McMove ( 1 , AM_UTOK_1_LIST , cesta , [ mc_move_dontcapture , mc_move_agressive , mc_move_waitwp ] ) ;
31081: LD_INT 1
31083: PPUSH
31084: LD_EXP 80
31088: PPUSH
31089: LD_EXP 82
31093: PPUSH
31094: LD_INT 5
31096: PUSH
31097: LD_INT 6
31099: PUSH
31100: LD_INT 3
31102: PUSH
31103: EMPTY
31104: LIST
31105: LIST
31106: LIST
31107: PPUSH
31108: CALL_OW 398
// Probiha_McMove = true ;
31112: LD_ADDR_LOC 11
31116: PUSH
31117: LD_INT 1
31119: ST_TO_ADDR
// Probiha_McAttack = false ;
31120: LD_ADDR_LOC 12
31124: PUSH
31125: LD_INT 0
31127: ST_TO_ADDR
// end ; end else
31128: GO 31182
// begin if not Probiha_McAttack then
31130: LD_LOC 12
31134: NOT
31135: IFFALSE 31182
// begin MakroUtok = McAttack ( 10 , RegUtok , AM_UTOK_1_LIST , [ mc_murder ] ) ;
31137: LD_ADDR_LOC 9
31141: PUSH
31142: LD_INT 10
31144: PPUSH
31145: LD_LOC 10
31149: PPUSH
31150: LD_EXP 80
31154: PPUSH
31155: LD_INT 12
31157: PUSH
31158: EMPTY
31159: LIST
31160: PPUSH
31161: CALL_OW 402
31165: ST_TO_ADDR
// Probiha_McAttack = true ;
31166: LD_ADDR_LOC 12
31170: PUSH
31171: LD_INT 1
31173: ST_TO_ADDR
// Probiha_McMove = false ;
31174: LD_ADDR_LOC 11
31178: PUSH
31179: LD_INT 0
31181: ST_TO_ADDR
// end ; end ; enable ;
31182: ENABLE
// end ;
31183: LD_VAR 0 1
31187: RET
// export PRAVACESTA ; var Probiha_McMove2 ; function ATTACK_PLAYER2 ; var i ; begin
31188: LD_INT 0
31190: PPUSH
31191: PPUSH
// if not Probiha_McMove2 then
31192: LD_LOC 13
31196: NOT
31197: IFFALSE 31238
// begin McMove ( 1 , AM_UTOK_2_LIST , PravaCesta , [ mc_move_dontcapture , mc_move_agressive , mc_move_waitwp ] ) ;
31199: LD_INT 1
31201: PPUSH
31202: LD_EXP 81
31206: PPUSH
31207: LD_EXP 84
31211: PPUSH
31212: LD_INT 5
31214: PUSH
31215: LD_INT 6
31217: PUSH
31218: LD_INT 3
31220: PUSH
31221: EMPTY
31222: LIST
31223: LIST
31224: LIST
31225: PPUSH
31226: CALL_OW 398
// Probiha_McMove2 = true ;
31230: LD_ADDR_LOC 13
31234: PUSH
31235: LD_INT 1
31237: ST_TO_ADDR
// end ; enable ;
31238: ENABLE
// end ;
31239: LD_VAR 0 1
31243: RET
// every 0 0$1 trigger Hrajeme do
31244: LD_EXP 20
31248: IFFALSE 31284
31250: GO 31252
31252: DISABLE
// begin if ZijeNekdoList ( Am_Utok_1_List ) then
31253: LD_EXP 80
31257: PPUSH
31258: CALL 8801 0 1
31262: IFFALSE 31268
// ATTACK_PLAYER ;
31264: CALL 30970 0 0
// if ZijeNekdoList ( Am_Utok_2_List ) then
31268: LD_EXP 81
31272: PPUSH
31273: CALL 8801 0 1
31277: IFFALSE 31283
// ATTACK_PLAYER2 ;
31279: CALL 31188 0 0
// enable ;
31283: ENABLE
// end ;
31284: END
// every 0 0$1 trigger Hrajeme do var unit , i , un ; var RuEmptyCar , RuEmptyCarNearest ; var MakroLidi , AmHumanNearest ;
31285: LD_EXP 20
31289: IFFALSE 31901
31291: GO 31293
31293: DISABLE
31294: LD_INT 0
31296: PPUSH
31297: PPUSH
31298: PPUSH
31299: PPUSH
31300: PPUSH
31301: PPUSH
31302: PPUSH
// begin if ZijeNekdoList ( Am_Utok_1_List ) then
31303: LD_EXP 80
31307: PPUSH
31308: CALL 8801 0 1
31312: IFFALSE 31900
// begin if Am_Utok_1_List then
31314: LD_EXP 80
31318: IFFALSE 31900
// for unit in Am_Utok_1_List do
31320: LD_ADDR_VAR 0 1
31324: PUSH
31325: LD_EXP 80
31329: PUSH
31330: FOR_IN
31331: IFFALSE 31898
// begin if FilterAllUnits ( [ [ f_ok ] , [ F_OR , [ f_side , You ] , [ f_side , Purple ] ] , [ f_type , unit_vehicle ] , [ f_empty ] , [ f_control , control_manual ] , [ f_not , [ f_or , [ f_weapon , ru_cargo_bay ] , [ f_weapon , ru_crane ] , [ f_weapon , us_cargo_bay ] , [ f_weapon , us_crane ] ] ] ] ) then
31333: LD_INT 50
31335: PUSH
31336: EMPTY
31337: LIST
31338: PUSH
31339: LD_INT 2
31341: PUSH
31342: LD_INT 22
31344: PUSH
31345: LD_EXP 2
31349: PUSH
31350: EMPTY
31351: LIST
31352: LIST
31353: PUSH
31354: LD_INT 22
31356: PUSH
31357: LD_EXP 6
31361: PUSH
31362: EMPTY
31363: LIST
31364: LIST
31365: PUSH
31366: EMPTY
31367: LIST
31368: LIST
31369: LIST
31370: PUSH
31371: LD_INT 21
31373: PUSH
31374: LD_INT 2
31376: PUSH
31377: EMPTY
31378: LIST
31379: LIST
31380: PUSH
31381: LD_INT 58
31383: PUSH
31384: EMPTY
31385: LIST
31386: PUSH
31387: LD_INT 33
31389: PUSH
31390: LD_INT 1
31392: PUSH
31393: EMPTY
31394: LIST
31395: LIST
31396: PUSH
31397: LD_INT 3
31399: PUSH
31400: LD_INT 2
31402: PUSH
31403: LD_INT 34
31405: PUSH
31406: LD_INT 51
31408: PUSH
31409: EMPTY
31410: LIST
31411: LIST
31412: PUSH
31413: LD_INT 34
31415: PUSH
31416: LD_INT 52
31418: PUSH
31419: EMPTY
31420: LIST
31421: LIST
31422: PUSH
31423: LD_INT 34
31425: PUSH
31426: LD_INT 12
31428: PUSH
31429: EMPTY
31430: LIST
31431: LIST
31432: PUSH
31433: LD_INT 34
31435: PUSH
31436: LD_INT 13
31438: PUSH
31439: EMPTY
31440: LIST
31441: LIST
31442: PUSH
31443: EMPTY
31444: LIST
31445: LIST
31446: LIST
31447: LIST
31448: LIST
31449: PUSH
31450: EMPTY
31451: LIST
31452: LIST
31453: PUSH
31454: EMPTY
31455: LIST
31456: LIST
31457: LIST
31458: LIST
31459: LIST
31460: LIST
31461: PPUSH
31462: CALL_OW 69
31466: IFFALSE 31687
// begin RuEmptyCar = FilterAllUnits ( [ [ f_ok ] , [ F_OR , [ f_side , You ] , [ f_side , Purple ] ] , [ f_type , unit_vehicle ] , [ f_empty ] , [ f_control , control_manual ] , [ f_not , [ f_or , [ f_weapon , ru_cargo_bay ] , [ f_weapon , ru_crane ] , [ f_weapon , us_cargo_bay ] , [ f_weapon , us_crane ] ] ] ] ) ;
31468: LD_ADDR_VAR 0 4
31472: PUSH
31473: LD_INT 50
31475: PUSH
31476: EMPTY
31477: LIST
31478: PUSH
31479: LD_INT 2
31481: PUSH
31482: LD_INT 22
31484: PUSH
31485: LD_EXP 2
31489: PUSH
31490: EMPTY
31491: LIST
31492: LIST
31493: PUSH
31494: LD_INT 22
31496: PUSH
31497: LD_EXP 6
31501: PUSH
31502: EMPTY
31503: LIST
31504: LIST
31505: PUSH
31506: EMPTY
31507: LIST
31508: LIST
31509: LIST
31510: PUSH
31511: LD_INT 21
31513: PUSH
31514: LD_INT 2
31516: PUSH
31517: EMPTY
31518: LIST
31519: LIST
31520: PUSH
31521: LD_INT 58
31523: PUSH
31524: EMPTY
31525: LIST
31526: PUSH
31527: LD_INT 33
31529: PUSH
31530: LD_INT 1
31532: PUSH
31533: EMPTY
31534: LIST
31535: LIST
31536: PUSH
31537: LD_INT 3
31539: PUSH
31540: LD_INT 2
31542: PUSH
31543: LD_INT 34
31545: PUSH
31546: LD_INT 51
31548: PUSH
31549: EMPTY
31550: LIST
31551: LIST
31552: PUSH
31553: LD_INT 34
31555: PUSH
31556: LD_INT 52
31558: PUSH
31559: EMPTY
31560: LIST
31561: LIST
31562: PUSH
31563: LD_INT 34
31565: PUSH
31566: LD_INT 12
31568: PUSH
31569: EMPTY
31570: LIST
31571: LIST
31572: PUSH
31573: LD_INT 34
31575: PUSH
31576: LD_INT 13
31578: PUSH
31579: EMPTY
31580: LIST
31581: LIST
31582: PUSH
31583: EMPTY
31584: LIST
31585: LIST
31586: LIST
31587: LIST
31588: LIST
31589: PUSH
31590: EMPTY
31591: LIST
31592: LIST
31593: PUSH
31594: EMPTY
31595: LIST
31596: LIST
31597: LIST
31598: LIST
31599: LIST
31600: LIST
31601: PPUSH
31602: CALL_OW 69
31606: ST_TO_ADDR
// for i in RuEmptyCar do
31607: LD_ADDR_VAR 0 2
31611: PUSH
31612: LD_VAR 0 4
31616: PUSH
31617: FOR_IN
31618: IFFALSE 31668
// if GetEngine ( i ) = engine_combustion then
31620: LD_VAR 0 2
31624: PPUSH
31625: CALL_OW 262
31629: PUSH
31630: LD_INT 1
31632: EQUAL
31633: IFFALSE 31666
// if GetFuel ( i ) < 11 then
31635: LD_VAR 0 2
31639: PPUSH
31640: CALL_OW 261
31644: PUSH
31645: LD_INT 11
31647: LESS
31648: IFFALSE 31666
// RuEmptyCar = RuEmptyCar diff i ;
31650: LD_ADDR_VAR 0 4
31654: PUSH
31655: LD_VAR 0 4
31659: PUSH
31660: LD_VAR 0 2
31664: DIFF
31665: ST_TO_ADDR
31666: GO 31617
31668: POP
31669: POP
// if not RuEmptyCar then
31670: LD_VAR 0 4
31674: NOT
31675: IFFALSE 31685
// RuEmptyCar = 0 ;
31677: LD_ADDR_VAR 0 4
31681: PUSH
31682: LD_INT 0
31684: ST_TO_ADDR
// end else
31685: GO 31695
// RuEmptyCar = 0 ;
31687: LD_ADDR_VAR 0 4
31691: PUSH
31692: LD_INT 0
31694: ST_TO_ADDR
// if GetType ( unit ) = unit_human and RuEmptyCar <> 0 and GetLives ( unit ) > 250 and IsOutside ( unit ) then
31695: LD_VAR 0 1
31699: PPUSH
31700: CALL_OW 247
31704: PUSH
31705: LD_INT 1
31707: EQUAL
31708: PUSH
31709: LD_VAR 0 4
31713: PUSH
31714: LD_INT 0
31716: NONEQUAL
31717: AND
31718: PUSH
31719: LD_VAR 0 1
31723: PPUSH
31724: CALL_OW 256
31728: PUSH
31729: LD_INT 250
31731: GREATER
31732: AND
31733: PUSH
31734: LD_VAR 0 1
31738: PPUSH
31739: CALL 2607 0 1
31743: AND
31744: IFFALSE 31896
// begin MakroLidi = FilterAllUnits ( [ [ f_ok ] , [ f_side , Purple ] , [ f_type , unit_human ] , [ f_outside ] ] ) diff Am_Utok_2_List ;
31746: LD_ADDR_VAR 0 6
31750: PUSH
31751: LD_INT 50
31753: PUSH
31754: EMPTY
31755: LIST
31756: PUSH
31757: LD_INT 22
31759: PUSH
31760: LD_EXP 6
31764: PUSH
31765: EMPTY
31766: LIST
31767: LIST
31768: PUSH
31769: LD_INT 21
31771: PUSH
31772: LD_INT 1
31774: PUSH
31775: EMPTY
31776: LIST
31777: LIST
31778: PUSH
31779: LD_INT 56
31781: PUSH
31782: EMPTY
31783: LIST
31784: PUSH
31785: EMPTY
31786: LIST
31787: LIST
31788: LIST
31789: LIST
31790: PPUSH
31791: CALL_OW 69
31795: PUSH
31796: LD_EXP 81
31800: DIFF
31801: ST_TO_ADDR
// RuEmptyCarNearest = NearestUnitToUnit ( RuEmptyCar , MakroLidi [ 1 ] ) ;
31802: LD_ADDR_VAR 0 5
31806: PUSH
31807: LD_VAR 0 4
31811: PPUSH
31812: LD_VAR 0 6
31816: PUSH
31817: LD_INT 1
31819: ARRAY
31820: PPUSH
31821: CALL_OW 74
31825: ST_TO_ADDR
// AmHumanNearest = NearestUnitToUnit ( MakroLidi , RuEmptyCarNearest ) ;
31826: LD_ADDR_VAR 0 7
31830: PUSH
31831: LD_VAR 0 6
31835: PPUSH
31836: LD_VAR 0 5
31840: PPUSH
31841: CALL_OW 74
31845: ST_TO_ADDR
// if See ( Purple , RuEmptyCarNearest ) and GetDistUnits ( AmHumanNearest , RuEmptyCarNearest ) < 11 then
31846: LD_EXP 6
31850: PPUSH
31851: LD_VAR 0 5
31855: PPUSH
31856: CALL_OW 292
31860: PUSH
31861: LD_VAR 0 7
31865: PPUSH
31866: LD_VAR 0 5
31870: PPUSH
31871: CALL_OW 296
31875: PUSH
31876: LD_INT 11
31878: LESS
31879: AND
31880: IFFALSE 31896
// ComEnterUnit ( AmHumanNearest , RuEmptyCarNearest ) ;
31882: LD_VAR 0 7
31886: PPUSH
31887: LD_VAR 0 5
31891: PPUSH
31892: CALL_OW 120
// end ; end ;
31896: GO 31330
31898: POP
31899: POP
// end ; enable ;
31900: ENABLE
// end ;
31901: PPOPN 7
31903: END
// every 0 0$1 trigger Hrajeme do var unit , i , un ; var RuEmptyCar , RuEmptyCarNearest ; var MakroLidi , AmHumanNearest ;
31904: LD_EXP 20
31908: IFFALSE 32520
31910: GO 31912
31912: DISABLE
31913: LD_INT 0
31915: PPUSH
31916: PPUSH
31917: PPUSH
31918: PPUSH
31919: PPUSH
31920: PPUSH
31921: PPUSH
// begin if ZijeNekdoList ( Am_Utok_2_List ) then
31922: LD_EXP 81
31926: PPUSH
31927: CALL 8801 0 1
31931: IFFALSE 32519
// begin if Am_Utok_2_List then
31933: LD_EXP 81
31937: IFFALSE 32519
// for unit in Am_Utok_2_List do
31939: LD_ADDR_VAR 0 1
31943: PUSH
31944: LD_EXP 81
31948: PUSH
31949: FOR_IN
31950: IFFALSE 32517
// begin if FilterAllUnits ( [ [ f_ok ] , [ F_OR , [ f_side , You ] , [ f_side , Purple ] ] , [ f_type , unit_vehicle ] , [ f_empty ] , [ f_control , control_manual ] , [ f_not , [ f_or , [ f_weapon , ru_cargo_bay ] , [ f_weapon , ru_crane ] , [ f_weapon , us_cargo_bay ] , [ f_weapon , us_crane ] ] ] ] ) then
31952: LD_INT 50
31954: PUSH
31955: EMPTY
31956: LIST
31957: PUSH
31958: LD_INT 2
31960: PUSH
31961: LD_INT 22
31963: PUSH
31964: LD_EXP 2
31968: PUSH
31969: EMPTY
31970: LIST
31971: LIST
31972: PUSH
31973: LD_INT 22
31975: PUSH
31976: LD_EXP 6
31980: PUSH
31981: EMPTY
31982: LIST
31983: LIST
31984: PUSH
31985: EMPTY
31986: LIST
31987: LIST
31988: LIST
31989: PUSH
31990: LD_INT 21
31992: PUSH
31993: LD_INT 2
31995: PUSH
31996: EMPTY
31997: LIST
31998: LIST
31999: PUSH
32000: LD_INT 58
32002: PUSH
32003: EMPTY
32004: LIST
32005: PUSH
32006: LD_INT 33
32008: PUSH
32009: LD_INT 1
32011: PUSH
32012: EMPTY
32013: LIST
32014: LIST
32015: PUSH
32016: LD_INT 3
32018: PUSH
32019: LD_INT 2
32021: PUSH
32022: LD_INT 34
32024: PUSH
32025: LD_INT 51
32027: PUSH
32028: EMPTY
32029: LIST
32030: LIST
32031: PUSH
32032: LD_INT 34
32034: PUSH
32035: LD_INT 52
32037: PUSH
32038: EMPTY
32039: LIST
32040: LIST
32041: PUSH
32042: LD_INT 34
32044: PUSH
32045: LD_INT 12
32047: PUSH
32048: EMPTY
32049: LIST
32050: LIST
32051: PUSH
32052: LD_INT 34
32054: PUSH
32055: LD_INT 13
32057: PUSH
32058: EMPTY
32059: LIST
32060: LIST
32061: PUSH
32062: EMPTY
32063: LIST
32064: LIST
32065: LIST
32066: LIST
32067: LIST
32068: PUSH
32069: EMPTY
32070: LIST
32071: LIST
32072: PUSH
32073: EMPTY
32074: LIST
32075: LIST
32076: LIST
32077: LIST
32078: LIST
32079: LIST
32080: PPUSH
32081: CALL_OW 69
32085: IFFALSE 32306
// begin RuEmptyCar = FilterAllUnits ( [ [ f_ok ] , [ F_OR , [ f_side , You ] , [ f_side , Purple ] ] , [ f_type , unit_vehicle ] , [ f_empty ] , [ f_control , control_manual ] , [ f_not , [ f_or , [ f_weapon , ru_cargo_bay ] , [ f_weapon , ru_crane ] , [ f_weapon , us_cargo_bay ] , [ f_weapon , us_crane ] ] ] ] ) ;
32087: LD_ADDR_VAR 0 4
32091: PUSH
32092: LD_INT 50
32094: PUSH
32095: EMPTY
32096: LIST
32097: PUSH
32098: LD_INT 2
32100: PUSH
32101: LD_INT 22
32103: PUSH
32104: LD_EXP 2
32108: PUSH
32109: EMPTY
32110: LIST
32111: LIST
32112: PUSH
32113: LD_INT 22
32115: PUSH
32116: LD_EXP 6
32120: PUSH
32121: EMPTY
32122: LIST
32123: LIST
32124: PUSH
32125: EMPTY
32126: LIST
32127: LIST
32128: LIST
32129: PUSH
32130: LD_INT 21
32132: PUSH
32133: LD_INT 2
32135: PUSH
32136: EMPTY
32137: LIST
32138: LIST
32139: PUSH
32140: LD_INT 58
32142: PUSH
32143: EMPTY
32144: LIST
32145: PUSH
32146: LD_INT 33
32148: PUSH
32149: LD_INT 1
32151: PUSH
32152: EMPTY
32153: LIST
32154: LIST
32155: PUSH
32156: LD_INT 3
32158: PUSH
32159: LD_INT 2
32161: PUSH
32162: LD_INT 34
32164: PUSH
32165: LD_INT 51
32167: PUSH
32168: EMPTY
32169: LIST
32170: LIST
32171: PUSH
32172: LD_INT 34
32174: PUSH
32175: LD_INT 52
32177: PUSH
32178: EMPTY
32179: LIST
32180: LIST
32181: PUSH
32182: LD_INT 34
32184: PUSH
32185: LD_INT 12
32187: PUSH
32188: EMPTY
32189: LIST
32190: LIST
32191: PUSH
32192: LD_INT 34
32194: PUSH
32195: LD_INT 13
32197: PUSH
32198: EMPTY
32199: LIST
32200: LIST
32201: PUSH
32202: EMPTY
32203: LIST
32204: LIST
32205: LIST
32206: LIST
32207: LIST
32208: PUSH
32209: EMPTY
32210: LIST
32211: LIST
32212: PUSH
32213: EMPTY
32214: LIST
32215: LIST
32216: LIST
32217: LIST
32218: LIST
32219: LIST
32220: PPUSH
32221: CALL_OW 69
32225: ST_TO_ADDR
// for i in RuEmptyCar do
32226: LD_ADDR_VAR 0 2
32230: PUSH
32231: LD_VAR 0 4
32235: PUSH
32236: FOR_IN
32237: IFFALSE 32287
// if GetEngine ( i ) = engine_combustion then
32239: LD_VAR 0 2
32243: PPUSH
32244: CALL_OW 262
32248: PUSH
32249: LD_INT 1
32251: EQUAL
32252: IFFALSE 32285
// if GetFuel ( i ) < 11 then
32254: LD_VAR 0 2
32258: PPUSH
32259: CALL_OW 261
32263: PUSH
32264: LD_INT 11
32266: LESS
32267: IFFALSE 32285
// RuEmptyCar = RuEmptyCar diff i ;
32269: LD_ADDR_VAR 0 4
32273: PUSH
32274: LD_VAR 0 4
32278: PUSH
32279: LD_VAR 0 2
32283: DIFF
32284: ST_TO_ADDR
32285: GO 32236
32287: POP
32288: POP
// if not RuEmptyCar then
32289: LD_VAR 0 4
32293: NOT
32294: IFFALSE 32304
// RuEmptyCar = 0 ;
32296: LD_ADDR_VAR 0 4
32300: PUSH
32301: LD_INT 0
32303: ST_TO_ADDR
// end else
32304: GO 32314
// RuEmptyCar = 0 ;
32306: LD_ADDR_VAR 0 4
32310: PUSH
32311: LD_INT 0
32313: ST_TO_ADDR
// if GetType ( unit ) = unit_human and RuEmptyCar <> 0 and GetLives ( unit ) > 250 and IsOutside ( unit ) then
32314: LD_VAR 0 1
32318: PPUSH
32319: CALL_OW 247
32323: PUSH
32324: LD_INT 1
32326: EQUAL
32327: PUSH
32328: LD_VAR 0 4
32332: PUSH
32333: LD_INT 0
32335: NONEQUAL
32336: AND
32337: PUSH
32338: LD_VAR 0 1
32342: PPUSH
32343: CALL_OW 256
32347: PUSH
32348: LD_INT 250
32350: GREATER
32351: AND
32352: PUSH
32353: LD_VAR 0 1
32357: PPUSH
32358: CALL 2607 0 1
32362: AND
32363: IFFALSE 32515
// begin MakroLidi = FilterAllUnits ( [ [ f_ok ] , [ f_side , Purple ] , [ f_type , unit_human ] , [ f_outside ] ] ) diff Am_Utok_1_List ;
32365: LD_ADDR_VAR 0 6
32369: PUSH
32370: LD_INT 50
32372: PUSH
32373: EMPTY
32374: LIST
32375: PUSH
32376: LD_INT 22
32378: PUSH
32379: LD_EXP 6
32383: PUSH
32384: EMPTY
32385: LIST
32386: LIST
32387: PUSH
32388: LD_INT 21
32390: PUSH
32391: LD_INT 1
32393: PUSH
32394: EMPTY
32395: LIST
32396: LIST
32397: PUSH
32398: LD_INT 56
32400: PUSH
32401: EMPTY
32402: LIST
32403: PUSH
32404: EMPTY
32405: LIST
32406: LIST
32407: LIST
32408: LIST
32409: PPUSH
32410: CALL_OW 69
32414: PUSH
32415: LD_EXP 80
32419: DIFF
32420: ST_TO_ADDR
// RuEmptyCarNearest = NearestUnitToUnit ( RuEmptyCar , MakroLidi [ 1 ] ) ;
32421: LD_ADDR_VAR 0 5
32425: PUSH
32426: LD_VAR 0 4
32430: PPUSH
32431: LD_VAR 0 6
32435: PUSH
32436: LD_INT 1
32438: ARRAY
32439: PPUSH
32440: CALL_OW 74
32444: ST_TO_ADDR
// AmHumanNearest = NearestUnitToUnit ( MakroLidi , RuEmptyCarNearest ) ;
32445: LD_ADDR_VAR 0 7
32449: PUSH
32450: LD_VAR 0 6
32454: PPUSH
32455: LD_VAR 0 5
32459: PPUSH
32460: CALL_OW 74
32464: ST_TO_ADDR
// if See ( Purple , RuEmptyCarNearest ) and GetDistUnits ( AmHumanNearest , RuEmptyCarNearest ) < 11 then
32465: LD_EXP 6
32469: PPUSH
32470: LD_VAR 0 5
32474: PPUSH
32475: CALL_OW 292
32479: PUSH
32480: LD_VAR 0 7
32484: PPUSH
32485: LD_VAR 0 5
32489: PPUSH
32490: CALL_OW 296
32494: PUSH
32495: LD_INT 11
32497: LESS
32498: AND
32499: IFFALSE 32515
// ComEnterUnit ( AmHumanNearest , RuEmptyCarNearest ) ;
32501: LD_VAR 0 7
32505: PPUSH
32506: LD_VAR 0 5
32510: PPUSH
32511: CALL_OW 120
// end ; end ;
32515: GO 31949
32517: POP
32518: POP
// end ; enable ;
32519: ENABLE
// end ;
32520: PPOPN 7
32522: END
// export function create_prvni_utok ; var tmp , un , veh , i ; begin
32523: LD_INT 0
32525: PPUSH
32526: PPUSH
32527: PPUSH
32528: PPUSH
32529: PPUSH
// Rand_Cesta ;
32530: CALL 30523 0 0
// tmp = [ ] ;
32534: LD_ADDR_VAR 0 2
32538: PUSH
32539: EMPTY
32540: ST_TO_ADDR
// uc_direction = 1 ;
32541: LD_ADDR_OWVAR 24
32545: PUSH
32546: LD_INT 1
32548: ST_TO_ADDR
// for i = 1 to difficulty + 1 do
32549: LD_ADDR_VAR 0 5
32553: PUSH
32554: DOUBLE
32555: LD_INT 1
32557: DEC
32558: ST_TO_ADDR
32559: LD_OWVAR 67
32563: PUSH
32564: LD_INT 1
32566: PLUS
32567: PUSH
32568: FOR_TO
32569: IFFALSE 32610
// begin un = VytvorCloveka ( nation_american , Purple , 1 ) ;
32571: LD_ADDR_VAR 0 3
32575: PUSH
32576: LD_INT 1
32578: PPUSH
32579: LD_EXP 6
32583: PPUSH
32584: LD_INT 1
32586: PPUSH
32587: CALL 2756 0 3
32591: ST_TO_ADDR
// tmp = tmp ^ un ;
32592: LD_ADDR_VAR 0 2
32596: PUSH
32597: LD_VAR 0 2
32601: PUSH
32602: LD_VAR 0 3
32606: ADD
32607: ST_TO_ADDR
// end ;
32608: GO 32568
32610: POP
32611: POP
// uc_nation = nation_american ;
32612: LD_ADDR_OWVAR 21
32616: PUSH
32617: LD_INT 1
32619: ST_TO_ADDR
// uc_side = Purple ;
32620: LD_ADDR_OWVAR 20
32624: PUSH
32625: LD_EXP 6
32629: ST_TO_ADDR
// un = VytvorCloveka ( nation_american , Purple , 3 ) ;
32630: LD_ADDR_VAR 0 3
32634: PUSH
32635: LD_INT 1
32637: PPUSH
32638: LD_EXP 6
32642: PPUSH
32643: LD_INT 3
32645: PPUSH
32646: CALL 2756 0 3
32650: ST_TO_ADDR
// tmp = tmp ^ un ;
32651: LD_ADDR_VAR 0 2
32655: PUSH
32656: LD_VAR 0 2
32660: PUSH
32661: LD_VAR 0 3
32665: ADD
32666: ST_TO_ADDR
// uc_direction = 1 ;
32667: LD_ADDR_OWVAR 24
32671: PUSH
32672: LD_INT 1
32674: ST_TO_ADDR
// vc_chassis = dif_purple_veh [ 1 ] ;
32675: LD_ADDR_OWVAR 37
32679: PUSH
32680: LD_EXP 34
32684: PUSH
32685: LD_INT 1
32687: ARRAY
32688: ST_TO_ADDR
// vc_control = control_manual ;
32689: LD_ADDR_OWVAR 38
32693: PUSH
32694: LD_INT 1
32696: ST_TO_ADDR
// vc_engine = engine_combustion ;
32697: LD_ADDR_OWVAR 39
32701: PUSH
32702: LD_INT 1
32704: ST_TO_ADDR
// vc_weapon = dif_purple_veh [ 2 ] ;
32705: LD_ADDR_OWVAR 40
32709: PUSH
32710: LD_EXP 34
32714: PUSH
32715: LD_INT 2
32717: ARRAY
32718: ST_TO_ADDR
// veh = CreateVehicle ;
32719: LD_ADDR_VAR 0 4
32723: PUSH
32724: CALL_OW 45
32728: ST_TO_ADDR
// PlaceHumanInUnit ( un , veh ) ;
32729: LD_VAR 0 3
32733: PPUSH
32734: LD_VAR 0 4
32738: PPUSH
32739: CALL_OW 52
// tmp = tmp ^ veh ;
32743: LD_ADDR_VAR 0 2
32747: PUSH
32748: LD_VAR 0 2
32752: PUSH
32753: LD_VAR 0 4
32757: ADD
32758: ST_TO_ADDR
// AM_UTOK_1_LIST = tmp ;
32759: LD_ADDR_EXP 80
32763: PUSH
32764: LD_VAR 0 2
32768: ST_TO_ADDR
// end ;
32769: LD_VAR 0 1
32773: RET
// export function create_prvni_utok_R ; var tmp , un , veh , i ; begin
32774: LD_INT 0
32776: PPUSH
32777: PPUSH
32778: PPUSH
32779: PPUSH
32780: PPUSH
// tmp = [ ] ;
32781: LD_ADDR_VAR 0 2
32785: PUSH
32786: EMPTY
32787: ST_TO_ADDR
// uc_direction = 4 ;
32788: LD_ADDR_OWVAR 24
32792: PUSH
32793: LD_INT 4
32795: ST_TO_ADDR
// for i = 1 to difficulty + 1 do
32796: LD_ADDR_VAR 0 5
32800: PUSH
32801: DOUBLE
32802: LD_INT 1
32804: DEC
32805: ST_TO_ADDR
32806: LD_OWVAR 67
32810: PUSH
32811: LD_INT 1
32813: PLUS
32814: PUSH
32815: FOR_TO
32816: IFFALSE 32857
// begin un = VytvorCloveka ( nation_american , Purple , 1 ) ;
32818: LD_ADDR_VAR 0 3
32822: PUSH
32823: LD_INT 1
32825: PPUSH
32826: LD_EXP 6
32830: PPUSH
32831: LD_INT 1
32833: PPUSH
32834: CALL 2756 0 3
32838: ST_TO_ADDR
// tmp = tmp ^ un ;
32839: LD_ADDR_VAR 0 2
32843: PUSH
32844: LD_VAR 0 2
32848: PUSH
32849: LD_VAR 0 3
32853: ADD
32854: ST_TO_ADDR
// end ;
32855: GO 32815
32857: POP
32858: POP
// uc_nation = nation_american ;
32859: LD_ADDR_OWVAR 21
32863: PUSH
32864: LD_INT 1
32866: ST_TO_ADDR
// uc_side = Purple ;
32867: LD_ADDR_OWVAR 20
32871: PUSH
32872: LD_EXP 6
32876: ST_TO_ADDR
// un = VytvorCloveka ( nation_american , Purple , 3 ) ;
32877: LD_ADDR_VAR 0 3
32881: PUSH
32882: LD_INT 1
32884: PPUSH
32885: LD_EXP 6
32889: PPUSH
32890: LD_INT 3
32892: PPUSH
32893: CALL 2756 0 3
32897: ST_TO_ADDR
// tmp = tmp ^ un ;
32898: LD_ADDR_VAR 0 2
32902: PUSH
32903: LD_VAR 0 2
32907: PUSH
32908: LD_VAR 0 3
32912: ADD
32913: ST_TO_ADDR
// uc_direction = 4 ;
32914: LD_ADDR_OWVAR 24
32918: PUSH
32919: LD_INT 4
32921: ST_TO_ADDR
// vc_chassis = dif_purple_veh [ 1 ] ;
32922: LD_ADDR_OWVAR 37
32926: PUSH
32927: LD_EXP 34
32931: PUSH
32932: LD_INT 1
32934: ARRAY
32935: ST_TO_ADDR
// vc_control = control_manual ;
32936: LD_ADDR_OWVAR 38
32940: PUSH
32941: LD_INT 1
32943: ST_TO_ADDR
// vc_engine = engine_combustion ;
32944: LD_ADDR_OWVAR 39
32948: PUSH
32949: LD_INT 1
32951: ST_TO_ADDR
// vc_weapon = us_light_gun ;
32952: LD_ADDR_OWVAR 40
32956: PUSH
32957: LD_INT 3
32959: ST_TO_ADDR
// veh = CreateVehicle ;
32960: LD_ADDR_VAR 0 4
32964: PUSH
32965: CALL_OW 45
32969: ST_TO_ADDR
// PlaceHumanInUnit ( un , veh ) ;
32970: LD_VAR 0 3
32974: PPUSH
32975: LD_VAR 0 4
32979: PPUSH
32980: CALL_OW 52
// tmp = tmp ^ veh ;
32984: LD_ADDR_VAR 0 2
32988: PUSH
32989: LD_VAR 0 2
32993: PUSH
32994: LD_VAR 0 4
32998: ADD
32999: ST_TO_ADDR
// AM_UTOK_2_LIST = tmp ;
33000: LD_ADDR_EXP 81
33004: PUSH
33005: LD_VAR 0 2
33009: ST_TO_ADDR
// end ;
33010: LD_VAR 0 1
33014: RET
// function create_druhy_utok ; var tmp , un , veh , i ; begin
33015: LD_INT 0
33017: PPUSH
33018: PPUSH
33019: PPUSH
33020: PPUSH
33021: PPUSH
// Rand_Cesta ;
33022: CALL 30523 0 0
// tmp = [ ] ;
33026: LD_ADDR_VAR 0 2
33030: PUSH
33031: EMPTY
33032: ST_TO_ADDR
// uc_direction = 1 ;
33033: LD_ADDR_OWVAR 24
33037: PUSH
33038: LD_INT 1
33040: ST_TO_ADDR
// for i = 1 to 5 do
33041: LD_ADDR_VAR 0 5
33045: PUSH
33046: DOUBLE
33047: LD_INT 1
33049: DEC
33050: ST_TO_ADDR
33051: LD_INT 5
33053: PUSH
33054: FOR_TO
33055: IFFALSE 33096
// begin un = VytvorCloveka ( nation_american , Purple , 1 ) ;
33057: LD_ADDR_VAR 0 3
33061: PUSH
33062: LD_INT 1
33064: PPUSH
33065: LD_EXP 6
33069: PPUSH
33070: LD_INT 1
33072: PPUSH
33073: CALL 2756 0 3
33077: ST_TO_ADDR
// tmp = tmp ^ un ;
33078: LD_ADDR_VAR 0 2
33082: PUSH
33083: LD_VAR 0 2
33087: PUSH
33088: LD_VAR 0 3
33092: ADD
33093: ST_TO_ADDR
// end ;
33094: GO 33054
33096: POP
33097: POP
// uc_nation = nation_american ;
33098: LD_ADDR_OWVAR 21
33102: PUSH
33103: LD_INT 1
33105: ST_TO_ADDR
// uc_side = Purple ;
33106: LD_ADDR_OWVAR 20
33110: PUSH
33111: LD_EXP 6
33115: ST_TO_ADDR
// uc_direction = 1 ;
33116: LD_ADDR_OWVAR 24
33120: PUSH
33121: LD_INT 1
33123: ST_TO_ADDR
// vc_chassis = dif_purple_veh2 [ 1 ] ;
33124: LD_ADDR_OWVAR 37
33128: PUSH
33129: LD_EXP 37
33133: PUSH
33134: LD_INT 1
33136: ARRAY
33137: ST_TO_ADDR
// vc_control = control_computer ;
33138: LD_ADDR_OWVAR 38
33142: PUSH
33143: LD_INT 3
33145: ST_TO_ADDR
// vc_engine = engine_combustion ;
33146: LD_ADDR_OWVAR 39
33150: PUSH
33151: LD_INT 1
33153: ST_TO_ADDR
// vc_weapon = dif_purple_veh2 [ 2 ] ;
33154: LD_ADDR_OWVAR 40
33158: PUSH
33159: LD_EXP 37
33163: PUSH
33164: LD_INT 2
33166: ARRAY
33167: ST_TO_ADDR
// veh = CreateVehicle ;
33168: LD_ADDR_VAR 0 4
33172: PUSH
33173: CALL_OW 45
33177: ST_TO_ADDR
// tmp = tmp ^ veh ;
33178: LD_ADDR_VAR 0 2
33182: PUSH
33183: LD_VAR 0 2
33187: PUSH
33188: LD_VAR 0 4
33192: ADD
33193: ST_TO_ADDR
// AM_UTOK_1_LIST = tmp ;
33194: LD_ADDR_EXP 80
33198: PUSH
33199: LD_VAR 0 2
33203: ST_TO_ADDR
// end ;
33204: LD_VAR 0 1
33208: RET
// function create_druhy_utok_R ; var tmp , un , veh , i ; begin
33209: LD_INT 0
33211: PPUSH
33212: PPUSH
33213: PPUSH
33214: PPUSH
33215: PPUSH
// tmp = [ ] ;
33216: LD_ADDR_VAR 0 2
33220: PUSH
33221: EMPTY
33222: ST_TO_ADDR
// uc_direction = 4 ;
33223: LD_ADDR_OWVAR 24
33227: PUSH
33228: LD_INT 4
33230: ST_TO_ADDR
// for i = 1 to 5 do
33231: LD_ADDR_VAR 0 5
33235: PUSH
33236: DOUBLE
33237: LD_INT 1
33239: DEC
33240: ST_TO_ADDR
33241: LD_INT 5
33243: PUSH
33244: FOR_TO
33245: IFFALSE 33286
// begin un = VytvorCloveka ( nation_american , Purple , 1 ) ;
33247: LD_ADDR_VAR 0 3
33251: PUSH
33252: LD_INT 1
33254: PPUSH
33255: LD_EXP 6
33259: PPUSH
33260: LD_INT 1
33262: PPUSH
33263: CALL 2756 0 3
33267: ST_TO_ADDR
// tmp = tmp ^ un ;
33268: LD_ADDR_VAR 0 2
33272: PUSH
33273: LD_VAR 0 2
33277: PUSH
33278: LD_VAR 0 3
33282: ADD
33283: ST_TO_ADDR
// end ;
33284: GO 33244
33286: POP
33287: POP
// uc_nation = nation_american ;
33288: LD_ADDR_OWVAR 21
33292: PUSH
33293: LD_INT 1
33295: ST_TO_ADDR
// uc_side = Purple ;
33296: LD_ADDR_OWVAR 20
33300: PUSH
33301: LD_EXP 6
33305: ST_TO_ADDR
// un = VytvorCloveka ( nation_american , Purple , 3 ) ;
33306: LD_ADDR_VAR 0 3
33310: PUSH
33311: LD_INT 1
33313: PPUSH
33314: LD_EXP 6
33318: PPUSH
33319: LD_INT 3
33321: PPUSH
33322: CALL 2756 0 3
33326: ST_TO_ADDR
// tmp = tmp ^ un ;
33327: LD_ADDR_VAR 0 2
33331: PUSH
33332: LD_VAR 0 2
33336: PUSH
33337: LD_VAR 0 3
33341: ADD
33342: ST_TO_ADDR
// uc_direction = 4 ;
33343: LD_ADDR_OWVAR 24
33347: PUSH
33348: LD_INT 4
33350: ST_TO_ADDR
// vc_chassis = dif_purple_veh2 [ 1 ] ;
33351: LD_ADDR_OWVAR 37
33355: PUSH
33356: LD_EXP 37
33360: PUSH
33361: LD_INT 1
33363: ARRAY
33364: ST_TO_ADDR
// vc_control = control_manual ;
33365: LD_ADDR_OWVAR 38
33369: PUSH
33370: LD_INT 1
33372: ST_TO_ADDR
// vc_engine = engine_combustion ;
33373: LD_ADDR_OWVAR 39
33377: PUSH
33378: LD_INT 1
33380: ST_TO_ADDR
// vc_weapon = us_double_gun ;
33381: LD_ADDR_OWVAR 40
33385: PUSH
33386: LD_INT 5
33388: ST_TO_ADDR
// veh = CreateVehicle ;
33389: LD_ADDR_VAR 0 4
33393: PUSH
33394: CALL_OW 45
33398: ST_TO_ADDR
// PlaceHumanInUnit ( un , veh ) ;
33399: LD_VAR 0 3
33403: PPUSH
33404: LD_VAR 0 4
33408: PPUSH
33409: CALL_OW 52
// tmp = tmp ^ veh ;
33413: LD_ADDR_VAR 0 2
33417: PUSH
33418: LD_VAR 0 2
33422: PUSH
33423: LD_VAR 0 4
33427: ADD
33428: ST_TO_ADDR
// AM_UTOK_2_LIST = tmp ;
33429: LD_ADDR_EXP 81
33433: PUSH
33434: LD_VAR 0 2
33438: ST_TO_ADDR
// end ;
33439: LD_VAR 0 1
33443: RET
// function create_randovy_utok ; var tmp , un , veh , i ; begin
33444: LD_INT 0
33446: PPUSH
33447: PPUSH
33448: PPUSH
33449: PPUSH
33450: PPUSH
// Rand_Cesta ;
33451: CALL 30523 0 0
// tmp = [ ] ;
33455: LD_ADDR_VAR 0 2
33459: PUSH
33460: EMPTY
33461: ST_TO_ADDR
// uc_direction = 1 ;
33462: LD_ADDR_OWVAR 24
33466: PUSH
33467: LD_INT 1
33469: ST_TO_ADDR
// for i = 1 to Rand ( difficulty , difficulty * 2 ) do
33470: LD_ADDR_VAR 0 5
33474: PUSH
33475: DOUBLE
33476: LD_INT 1
33478: DEC
33479: ST_TO_ADDR
33480: LD_OWVAR 67
33484: PPUSH
33485: LD_OWVAR 67
33489: PUSH
33490: LD_INT 2
33492: MUL
33493: PPUSH
33494: CALL_OW 12
33498: PUSH
33499: FOR_TO
33500: IFFALSE 33541
// begin un = VytvorCloveka ( nation_american , Purple , 1 ) ;
33502: LD_ADDR_VAR 0 3
33506: PUSH
33507: LD_INT 1
33509: PPUSH
33510: LD_EXP 6
33514: PPUSH
33515: LD_INT 1
33517: PPUSH
33518: CALL 2756 0 3
33522: ST_TO_ADDR
// tmp = tmp ^ un ;
33523: LD_ADDR_VAR 0 2
33527: PUSH
33528: LD_VAR 0 2
33532: PUSH
33533: LD_VAR 0 3
33537: ADD
33538: ST_TO_ADDR
// end ;
33539: GO 33499
33541: POP
33542: POP
// uc_nation = nation_american ;
33543: LD_ADDR_OWVAR 21
33547: PUSH
33548: LD_INT 1
33550: ST_TO_ADDR
// uc_side = Purple ;
33551: LD_ADDR_OWVAR 20
33555: PUSH
33556: LD_EXP 6
33560: ST_TO_ADDR
// if Prob ( 60 ) then
33561: LD_INT 60
33563: PPUSH
33564: CALL_OW 13
33568: IFFALSE 33695
// begin un = VytvorCloveka ( nation_american , Purple , 3 ) ;
33570: LD_ADDR_VAR 0 3
33574: PUSH
33575: LD_INT 1
33577: PPUSH
33578: LD_EXP 6
33582: PPUSH
33583: LD_INT 3
33585: PPUSH
33586: CALL 2756 0 3
33590: ST_TO_ADDR
// tmp = tmp ^ un ;
33591: LD_ADDR_VAR 0 2
33595: PUSH
33596: LD_VAR 0 2
33600: PUSH
33601: LD_VAR 0 3
33605: ADD
33606: ST_TO_ADDR
// uc_direction = 1 ;
33607: LD_ADDR_OWVAR 24
33611: PUSH
33612: LD_INT 1
33614: ST_TO_ADDR
// vc_chassis = dif_purple_veh2 [ 1 ] ;
33615: LD_ADDR_OWVAR 37
33619: PUSH
33620: LD_EXP 37
33624: PUSH
33625: LD_INT 1
33627: ARRAY
33628: ST_TO_ADDR
// vc_control = control_manual ;
33629: LD_ADDR_OWVAR 38
33633: PUSH
33634: LD_INT 1
33636: ST_TO_ADDR
// vc_engine = engine_combustion ;
33637: LD_ADDR_OWVAR 39
33641: PUSH
33642: LD_INT 1
33644: ST_TO_ADDR
// vc_weapon = us_laser ;
33645: LD_ADDR_OWVAR 40
33649: PUSH
33650: LD_INT 9
33652: ST_TO_ADDR
// veh = CreateVehicle ;
33653: LD_ADDR_VAR 0 4
33657: PUSH
33658: CALL_OW 45
33662: ST_TO_ADDR
// PlaceHumanInUnit ( un , veh ) ;
33663: LD_VAR 0 3
33667: PPUSH
33668: LD_VAR 0 4
33672: PPUSH
33673: CALL_OW 52
// tmp = tmp ^ veh ;
33677: LD_ADDR_VAR 0 2
33681: PUSH
33682: LD_VAR 0 2
33686: PUSH
33687: LD_VAR 0 4
33691: ADD
33692: ST_TO_ADDR
// end else
33693: GO 33767
// begin uc_direction = 1 ;
33695: LD_ADDR_OWVAR 24
33699: PUSH
33700: LD_INT 1
33702: ST_TO_ADDR
// vc_chassis = dif_purple_veh2 [ 1 ] ;
33703: LD_ADDR_OWVAR 37
33707: PUSH
33708: LD_EXP 37
33712: PUSH
33713: LD_INT 1
33715: ARRAY
33716: ST_TO_ADDR
// vc_control = control_computer ;
33717: LD_ADDR_OWVAR 38
33721: PUSH
33722: LD_INT 3
33724: ST_TO_ADDR
// vc_engine = engine_combustion ;
33725: LD_ADDR_OWVAR 39
33729: PUSH
33730: LD_INT 1
33732: ST_TO_ADDR
// vc_weapon = us_laser ;
33733: LD_ADDR_OWVAR 40
33737: PUSH
33738: LD_INT 9
33740: ST_TO_ADDR
// veh = CreateVehicle ;
33741: LD_ADDR_VAR 0 4
33745: PUSH
33746: CALL_OW 45
33750: ST_TO_ADDR
// tmp = tmp ^ veh ;
33751: LD_ADDR_VAR 0 2
33755: PUSH
33756: LD_VAR 0 2
33760: PUSH
33761: LD_VAR 0 4
33765: ADD
33766: ST_TO_ADDR
// end ; if difficulty <> 1 then
33767: LD_OWVAR 67
33771: PUSH
33772: LD_INT 1
33774: NONEQUAL
33775: IFFALSE 33870
// begin uc_direction = 1 ;
33777: LD_ADDR_OWVAR 24
33781: PUSH
33782: LD_INT 1
33784: ST_TO_ADDR
// vc_chassis = Rand ( us_medium_tracked , us_heavy_tracked ) ;
33785: LD_ADDR_OWVAR 37
33789: PUSH
33790: LD_INT 3
33792: PPUSH
33793: LD_INT 4
33795: PPUSH
33796: CALL_OW 12
33800: ST_TO_ADDR
// vc_control = control_computer ;
33801: LD_ADDR_OWVAR 38
33805: PUSH
33806: LD_INT 3
33808: ST_TO_ADDR
// vc_engine = engine_combustion ;
33809: LD_ADDR_OWVAR 39
33813: PUSH
33814: LD_INT 1
33816: ST_TO_ADDR
// if Prob ( 75 ) then
33817: LD_INT 75
33819: PPUSH
33820: CALL_OW 13
33824: IFFALSE 33836
// vc_weapon = us_rocket_launcher else
33826: LD_ADDR_OWVAR 40
33830: PUSH
33831: LD_INT 7
33833: ST_TO_ADDR
33834: GO 33844
// vc_weapon = us_double_gun ;
33836: LD_ADDR_OWVAR 40
33840: PUSH
33841: LD_INT 5
33843: ST_TO_ADDR
// veh = CreateVehicle ;
33844: LD_ADDR_VAR 0 4
33848: PUSH
33849: CALL_OW 45
33853: ST_TO_ADDR
// tmp = tmp ^ veh ;
33854: LD_ADDR_VAR 0 2
33858: PUSH
33859: LD_VAR 0 2
33863: PUSH
33864: LD_VAR 0 4
33868: ADD
33869: ST_TO_ADDR
// end ; if difficulty = 3 then
33870: LD_OWVAR 67
33874: PUSH
33875: LD_INT 3
33877: EQUAL
33878: IFFALSE 33965
// begin uc_direction = 4 ;
33880: LD_ADDR_OWVAR 24
33884: PUSH
33885: LD_INT 4
33887: ST_TO_ADDR
// vc_chassis = us_heavy_tracked ;
33888: LD_ADDR_OWVAR 37
33892: PUSH
33893: LD_INT 4
33895: ST_TO_ADDR
// vc_control = control_computer ;
33896: LD_ADDR_OWVAR 38
33900: PUSH
33901: LD_INT 3
33903: ST_TO_ADDR
// vc_engine = engine_combustion ;
33904: LD_ADDR_OWVAR 39
33908: PUSH
33909: LD_INT 1
33911: ST_TO_ADDR
// if Prob ( 50 ) then
33912: LD_INT 50
33914: PPUSH
33915: CALL_OW 13
33919: IFFALSE 33931
// vc_weapon = us_heavy_gun else
33921: LD_ADDR_OWVAR 40
33925: PUSH
33926: LD_INT 6
33928: ST_TO_ADDR
33929: GO 33939
// vc_weapon = us_rocket_launcher ;
33931: LD_ADDR_OWVAR 40
33935: PUSH
33936: LD_INT 7
33938: ST_TO_ADDR
// veh = CreateVehicle ;
33939: LD_ADDR_VAR 0 4
33943: PUSH
33944: CALL_OW 45
33948: ST_TO_ADDR
// tmp = tmp ^ veh ;
33949: LD_ADDR_VAR 0 2
33953: PUSH
33954: LD_VAR 0 2
33958: PUSH
33959: LD_VAR 0 4
33963: ADD
33964: ST_TO_ADDR
// end ; AM_UTOK_1_LIST = tmp ;
33965: LD_ADDR_EXP 80
33969: PUSH
33970: LD_VAR 0 2
33974: ST_TO_ADDR
// end ;
33975: LD_VAR 0 1
33979: RET
// function create_randovy_utok_R ; var tmp , un , veh , i ; begin
33980: LD_INT 0
33982: PPUSH
33983: PPUSH
33984: PPUSH
33985: PPUSH
33986: PPUSH
// Rand_Cesta ;
33987: CALL 30523 0 0
// tmp = [ ] ;
33991: LD_ADDR_VAR 0 2
33995: PUSH
33996: EMPTY
33997: ST_TO_ADDR
// uc_direction = 4 ;
33998: LD_ADDR_OWVAR 24
34002: PUSH
34003: LD_INT 4
34005: ST_TO_ADDR
// for i = 1 to Rand ( difficulty , difficulty * 2 ) do
34006: LD_ADDR_VAR 0 5
34010: PUSH
34011: DOUBLE
34012: LD_INT 1
34014: DEC
34015: ST_TO_ADDR
34016: LD_OWVAR 67
34020: PPUSH
34021: LD_OWVAR 67
34025: PUSH
34026: LD_INT 2
34028: MUL
34029: PPUSH
34030: CALL_OW 12
34034: PUSH
34035: FOR_TO
34036: IFFALSE 34077
// begin un = VytvorCloveka ( nation_american , Purple , 1 ) ;
34038: LD_ADDR_VAR 0 3
34042: PUSH
34043: LD_INT 1
34045: PPUSH
34046: LD_EXP 6
34050: PPUSH
34051: LD_INT 1
34053: PPUSH
34054: CALL 2756 0 3
34058: ST_TO_ADDR
// tmp = tmp ^ un ;
34059: LD_ADDR_VAR 0 2
34063: PUSH
34064: LD_VAR 0 2
34068: PUSH
34069: LD_VAR 0 3
34073: ADD
34074: ST_TO_ADDR
// end ;
34075: GO 34035
34077: POP
34078: POP
// uc_nation = nation_american ;
34079: LD_ADDR_OWVAR 21
34083: PUSH
34084: LD_INT 1
34086: ST_TO_ADDR
// uc_side = Purple ;
34087: LD_ADDR_OWVAR 20
34091: PUSH
34092: LD_EXP 6
34096: ST_TO_ADDR
// un = VytvorCloveka ( nation_american , Purple , 3 ) ;
34097: LD_ADDR_VAR 0 3
34101: PUSH
34102: LD_INT 1
34104: PPUSH
34105: LD_EXP 6
34109: PPUSH
34110: LD_INT 3
34112: PPUSH
34113: CALL 2756 0 3
34117: ST_TO_ADDR
// tmp = tmp ^ un ;
34118: LD_ADDR_VAR 0 2
34122: PUSH
34123: LD_VAR 0 2
34127: PUSH
34128: LD_VAR 0 3
34132: ADD
34133: ST_TO_ADDR
// uc_direction = 4 ;
34134: LD_ADDR_OWVAR 24
34138: PUSH
34139: LD_INT 4
34141: ST_TO_ADDR
// vc_chassis = us_heavy_tracked ;
34142: LD_ADDR_OWVAR 37
34146: PUSH
34147: LD_INT 4
34149: ST_TO_ADDR
// vc_control = control_manual ;
34150: LD_ADDR_OWVAR 38
34154: PUSH
34155: LD_INT 1
34157: ST_TO_ADDR
// vc_engine = engine_combustion ;
34158: LD_ADDR_OWVAR 39
34162: PUSH
34163: LD_INT 1
34165: ST_TO_ADDR
// vc_weapon = us_laser ;
34166: LD_ADDR_OWVAR 40
34170: PUSH
34171: LD_INT 9
34173: ST_TO_ADDR
// veh = CreateVehicle ;
34174: LD_ADDR_VAR 0 4
34178: PUSH
34179: CALL_OW 45
34183: ST_TO_ADDR
// PlaceHumanInUnit ( un , veh ) ;
34184: LD_VAR 0 3
34188: PPUSH
34189: LD_VAR 0 4
34193: PPUSH
34194: CALL_OW 52
// tmp = tmp ^ veh ;
34198: LD_ADDR_VAR 0 2
34202: PUSH
34203: LD_VAR 0 2
34207: PUSH
34208: LD_VAR 0 4
34212: ADD
34213: ST_TO_ADDR
// if difficulty <> 1 then
34214: LD_OWVAR 67
34218: PUSH
34219: LD_INT 1
34221: NONEQUAL
34222: IFFALSE 34317
// begin uc_direction = 4 ;
34224: LD_ADDR_OWVAR 24
34228: PUSH
34229: LD_INT 4
34231: ST_TO_ADDR
// vc_chassis = Rand ( us_medium_tracked , us_heavy_tracked ) ;
34232: LD_ADDR_OWVAR 37
34236: PUSH
34237: LD_INT 3
34239: PPUSH
34240: LD_INT 4
34242: PPUSH
34243: CALL_OW 12
34247: ST_TO_ADDR
// vc_control = control_computer ;
34248: LD_ADDR_OWVAR 38
34252: PUSH
34253: LD_INT 3
34255: ST_TO_ADDR
// vc_engine = engine_combustion ;
34256: LD_ADDR_OWVAR 39
34260: PUSH
34261: LD_INT 1
34263: ST_TO_ADDR
// if Prob ( 50 ) then
34264: LD_INT 50
34266: PPUSH
34267: CALL_OW 13
34271: IFFALSE 34283
// vc_weapon = us_gatling_gun else
34273: LD_ADDR_OWVAR 40
34277: PUSH
34278: LD_INT 4
34280: ST_TO_ADDR
34281: GO 34291
// vc_weapon = us_double_gun ;
34283: LD_ADDR_OWVAR 40
34287: PUSH
34288: LD_INT 5
34290: ST_TO_ADDR
// veh = CreateVehicle ;
34291: LD_ADDR_VAR 0 4
34295: PUSH
34296: CALL_OW 45
34300: ST_TO_ADDR
// tmp = tmp ^ veh ;
34301: LD_ADDR_VAR 0 2
34305: PUSH
34306: LD_VAR 0 2
34310: PUSH
34311: LD_VAR 0 4
34315: ADD
34316: ST_TO_ADDR
// end ; if difficulty = 3 then
34317: LD_OWVAR 67
34321: PUSH
34322: LD_INT 3
34324: EQUAL
34325: IFFALSE 34412
// begin uc_direction = 4 ;
34327: LD_ADDR_OWVAR 24
34331: PUSH
34332: LD_INT 4
34334: ST_TO_ADDR
// vc_chassis = us_heavy_tracked ;
34335: LD_ADDR_OWVAR 37
34339: PUSH
34340: LD_INT 4
34342: ST_TO_ADDR
// vc_control = control_computer ;
34343: LD_ADDR_OWVAR 38
34347: PUSH
34348: LD_INT 3
34350: ST_TO_ADDR
// vc_engine = engine_combustion ;
34351: LD_ADDR_OWVAR 39
34355: PUSH
34356: LD_INT 1
34358: ST_TO_ADDR
// if Prob ( 50 ) then
34359: LD_INT 50
34361: PPUSH
34362: CALL_OW 13
34366: IFFALSE 34378
// vc_weapon = us_heavy_gun else
34368: LD_ADDR_OWVAR 40
34372: PUSH
34373: LD_INT 6
34375: ST_TO_ADDR
34376: GO 34386
// vc_weapon = us_rocket_launcher ;
34378: LD_ADDR_OWVAR 40
34382: PUSH
34383: LD_INT 7
34385: ST_TO_ADDR
// veh = CreateVehicle ;
34386: LD_ADDR_VAR 0 4
34390: PUSH
34391: CALL_OW 45
34395: ST_TO_ADDR
// tmp = tmp ^ veh ;
34396: LD_ADDR_VAR 0 2
34400: PUSH
34401: LD_VAR 0 2
34405: PUSH
34406: LD_VAR 0 4
34410: ADD
34411: ST_TO_ADDR
// end ; AM_UTOK_2_LIST = tmp ;
34412: LD_ADDR_EXP 81
34416: PUSH
34417: LD_VAR 0 2
34421: ST_TO_ADDR
// end ;
34422: LD_VAR 0 1
34426: RET
// every 3 3$45 trigger Hrajeme do var u ;
34427: LD_EXP 20
34431: IFFALSE 34525
34433: GO 34435
34435: DISABLE
34436: LD_INT 0
34438: PPUSH
// begin if not LevaBazaZnicena then
34439: LD_EXP 78
34443: NOT
34444: IFFALSE 34450
// create_prvni_utok ;
34446: CALL 32523 0 0
// if not PravaBazaZnicena then
34450: LD_EXP 79
34454: NOT
34455: IFFALSE 34461
// create_prvni_utok_R ;
34457: CALL 32774 0 0
// for u in Am_Utok_1_list do
34461: LD_ADDR_VAR 0 1
34465: PUSH
34466: LD_EXP 80
34470: PUSH
34471: FOR_IN
34472: IFFALSE 34491
// PlaceUnitArea ( u , PurpleArrival , false ) ;
34474: LD_VAR 0 1
34478: PPUSH
34479: LD_INT 40
34481: PPUSH
34482: LD_INT 0
34484: PPUSH
34485: CALL_OW 49
34489: GO 34471
34491: POP
34492: POP
// for u in Am_Utok_2_list do
34493: LD_ADDR_VAR 0 1
34497: PUSH
34498: LD_EXP 81
34502: PUSH
34503: FOR_IN
34504: IFFALSE 34523
// PlaceUnitArea ( u , PurpleArrival2 , false ) ;
34506: LD_VAR 0 1
34510: PPUSH
34511: LD_INT 41
34513: PPUSH
34514: LD_INT 0
34516: PPUSH
34517: CALL_OW 49
34521: GO 34503
34523: POP
34524: POP
// end ;
34525: PPOPN 1
34527: END
// every 8 8$20 do
34528: GO 34530
34530: DISABLE
// begin enable ( 02 ) ;
34531: LD_INT 2
34533: ENABLE_MARKED
// end ;
34534: END
// every 0 0$30 trigger FilterAllUnits ( [ [ f_placed ] , [ f_side , Purple ] , [ f_not , [ f_empty ] ] ] ) = 0 and Hrajeme marked 02 do var u ;
34535: LD_INT 52
34537: PUSH
34538: EMPTY
34539: LIST
34540: PUSH
34541: LD_INT 22
34543: PUSH
34544: LD_EXP 6
34548: PUSH
34549: EMPTY
34550: LIST
34551: LIST
34552: PUSH
34553: LD_INT 3
34555: PUSH
34556: LD_INT 58
34558: PUSH
34559: EMPTY
34560: LIST
34561: PUSH
34562: EMPTY
34563: LIST
34564: LIST
34565: PUSH
34566: EMPTY
34567: LIST
34568: LIST
34569: LIST
34570: PPUSH
34571: CALL_OW 69
34575: PUSH
34576: LD_INT 0
34578: EQUAL
34579: PUSH
34580: LD_EXP 20
34584: AND
34585: IFFALSE 34909
34587: GO 34589
34589: DISABLE
34590: LD_INT 0
34592: PPUSH
// begin if FilterAllUnits ( [ [ f_placed ] , [ f_side , Purple ] , [ f_not , [ f_empty ] ] ] ) then
34593: LD_INT 52
34595: PUSH
34596: EMPTY
34597: LIST
34598: PUSH
34599: LD_INT 22
34601: PUSH
34602: LD_EXP 6
34606: PUSH
34607: EMPTY
34608: LIST
34609: LIST
34610: PUSH
34611: LD_INT 3
34613: PUSH
34614: LD_INT 58
34616: PUSH
34617: EMPTY
34618: LIST
34619: PUSH
34620: EMPTY
34621: LIST
34622: LIST
34623: PUSH
34624: EMPTY
34625: LIST
34626: LIST
34627: LIST
34628: PPUSH
34629: CALL_OW 69
34633: IFFALSE 34744
// begin for u in FilterAllUnits ( [ [ f_placed ] , [ f_side , Purple ] , [ f_not , [ f_empty ] ] ] ) do
34635: LD_ADDR_VAR 0 1
34639: PUSH
34640: LD_INT 52
34642: PUSH
34643: EMPTY
34644: LIST
34645: PUSH
34646: LD_INT 22
34648: PUSH
34649: LD_EXP 6
34653: PUSH
34654: EMPTY
34655: LIST
34656: LIST
34657: PUSH
34658: LD_INT 3
34660: PUSH
34661: LD_INT 58
34663: PUSH
34664: EMPTY
34665: LIST
34666: PUSH
34667: EMPTY
34668: LIST
34669: LIST
34670: PUSH
34671: EMPTY
34672: LIST
34673: LIST
34674: LIST
34675: PPUSH
34676: CALL_OW 69
34680: PUSH
34681: FOR_IN
34682: IFFALSE 34742
// begin if u in Am_Utok_1_list then
34684: LD_VAR 0 1
34688: PUSH
34689: LD_EXP 80
34693: IN
34694: IFFALSE 34712
// Am_Utok_1_list = Am_Utok_1_list diff u ;
34696: LD_ADDR_EXP 80
34700: PUSH
34701: LD_EXP 80
34705: PUSH
34706: LD_VAR 0 1
34710: DIFF
34711: ST_TO_ADDR
// if u in Am_Utok_2_list then
34712: LD_VAR 0 1
34716: PUSH
34717: LD_EXP 81
34721: IN
34722: IFFALSE 34740
// Am_Utok_2_list = Am_Utok_2_list diff u ;
34724: LD_ADDR_EXP 81
34728: PUSH
34729: LD_EXP 81
34733: PUSH
34734: LD_VAR 0 1
34738: DIFF
34739: ST_TO_ADDR
// end ;
34740: GO 34681
34742: POP
34743: POP
// end ; if difficulty <> 1 then
34744: LD_OWVAR 67
34748: PUSH
34749: LD_INT 1
34751: NONEQUAL
34752: IFFALSE 34799
// begin SetTech ( tech_weap1 , Purple , state_researched ) ;
34754: LD_INT 51
34756: PPUSH
34757: LD_EXP 6
34761: PPUSH
34762: LD_INT 2
34764: PPUSH
34765: CALL_OW 322
// SetTech ( tech_comp1 , Purple , state_researched ) ;
34769: LD_INT 57
34771: PPUSH
34772: LD_EXP 6
34776: PPUSH
34777: LD_INT 2
34779: PPUSH
34780: CALL_OW 322
// SetTech ( tech_tech1 , Purple , state_researched ) ;
34784: LD_INT 48
34786: PPUSH
34787: LD_EXP 6
34791: PPUSH
34792: LD_INT 2
34794: PPUSH
34795: CALL_OW 322
// end ; if not LevaBazaZnicena then
34799: LD_EXP 78
34803: NOT
34804: IFFALSE 34810
// create_druhy_utok ;
34806: CALL 33015 0 0
// if not PravaBazaZnicena then
34810: LD_EXP 79
34814: NOT
34815: IFFALSE 34821
// create_druhy_utok_R ;
34817: CALL 33209 0 0
// Probiha_McMove = false ;
34821: LD_ADDR_LOC 11
34825: PUSH
34826: LD_INT 0
34828: ST_TO_ADDR
// Probiha_McAttack = false ;
34829: LD_ADDR_LOC 12
34833: PUSH
34834: LD_INT 0
34836: ST_TO_ADDR
// Probiha_McMove2 = false ;
34837: LD_ADDR_LOC 13
34841: PUSH
34842: LD_INT 0
34844: ST_TO_ADDR
// for u in Am_Utok_1_list do
34845: LD_ADDR_VAR 0 1
34849: PUSH
34850: LD_EXP 80
34854: PUSH
34855: FOR_IN
34856: IFFALSE 34875
// PlaceUnitArea ( u , PurpleArrival , false ) ;
34858: LD_VAR 0 1
34862: PPUSH
34863: LD_INT 40
34865: PPUSH
34866: LD_INT 0
34868: PPUSH
34869: CALL_OW 49
34873: GO 34855
34875: POP
34876: POP
// for u in Am_Utok_2_list do
34877: LD_ADDR_VAR 0 1
34881: PUSH
34882: LD_EXP 81
34886: PUSH
34887: FOR_IN
34888: IFFALSE 34907
// PlaceUnitArea ( u , PurpleArrival2 , false ) ;
34890: LD_VAR 0 1
34894: PPUSH
34895: LD_INT 41
34897: PPUSH
34898: LD_INT 0
34900: PPUSH
34901: CALL_OW 49
34905: GO 34887
34907: POP
34908: POP
// end ;
34909: PPOPN 1
34911: END
// every 12 12$30 do
34912: GO 34914
34914: DISABLE
// begin enable ( 03 ) ;
34915: LD_INT 3
34917: ENABLE_MARKED
// end ;
34918: END
// every 0 0$30 trigger FilterAllUnits ( [ [ f_placed ] , [ f_side , Purple ] , [ f_not , [ f_empty ] ] ] ) = 0 and Hrajeme marked 03 do var u ;
34919: LD_INT 52
34921: PUSH
34922: EMPTY
34923: LIST
34924: PUSH
34925: LD_INT 22
34927: PUSH
34928: LD_EXP 6
34932: PUSH
34933: EMPTY
34934: LIST
34935: LIST
34936: PUSH
34937: LD_INT 3
34939: PUSH
34940: LD_INT 58
34942: PUSH
34943: EMPTY
34944: LIST
34945: PUSH
34946: EMPTY
34947: LIST
34948: LIST
34949: PUSH
34950: EMPTY
34951: LIST
34952: LIST
34953: LIST
34954: PPUSH
34955: CALL_OW 69
34959: PUSH
34960: LD_INT 0
34962: EQUAL
34963: PUSH
34964: LD_EXP 20
34968: AND
34969: IFFALSE 35409
34971: GO 34973
34973: DISABLE
34974: LD_INT 0
34976: PPUSH
// begin if FilterAllUnits ( [ [ f_placed ] , [ f_side , Purple ] , [ f_not , [ f_empty ] ] ] ) then
34977: LD_INT 52
34979: PUSH
34980: EMPTY
34981: LIST
34982: PUSH
34983: LD_INT 22
34985: PUSH
34986: LD_EXP 6
34990: PUSH
34991: EMPTY
34992: LIST
34993: LIST
34994: PUSH
34995: LD_INT 3
34997: PUSH
34998: LD_INT 58
35000: PUSH
35001: EMPTY
35002: LIST
35003: PUSH
35004: EMPTY
35005: LIST
35006: LIST
35007: PUSH
35008: EMPTY
35009: LIST
35010: LIST
35011: LIST
35012: PPUSH
35013: CALL_OW 69
35017: IFFALSE 35128
// begin for u in FilterAllUnits ( [ [ f_placed ] , [ f_side , Purple ] , [ f_not , [ f_empty ] ] ] ) do
35019: LD_ADDR_VAR 0 1
35023: PUSH
35024: LD_INT 52
35026: PUSH
35027: EMPTY
35028: LIST
35029: PUSH
35030: LD_INT 22
35032: PUSH
35033: LD_EXP 6
35037: PUSH
35038: EMPTY
35039: LIST
35040: LIST
35041: PUSH
35042: LD_INT 3
35044: PUSH
35045: LD_INT 58
35047: PUSH
35048: EMPTY
35049: LIST
35050: PUSH
35051: EMPTY
35052: LIST
35053: LIST
35054: PUSH
35055: EMPTY
35056: LIST
35057: LIST
35058: LIST
35059: PPUSH
35060: CALL_OW 69
35064: PUSH
35065: FOR_IN
35066: IFFALSE 35126
// begin if u in Am_Utok_1_list then
35068: LD_VAR 0 1
35072: PUSH
35073: LD_EXP 80
35077: IN
35078: IFFALSE 35096
// Am_Utok_1_list = Am_Utok_1_list diff u ;
35080: LD_ADDR_EXP 80
35084: PUSH
35085: LD_EXP 80
35089: PUSH
35090: LD_VAR 0 1
35094: DIFF
35095: ST_TO_ADDR
// if u in Am_Utok_2_list then
35096: LD_VAR 0 1
35100: PUSH
35101: LD_EXP 81
35105: IN
35106: IFFALSE 35124
// Am_Utok_2_list = Am_Utok_2_list diff u ;
35108: LD_ADDR_EXP 81
35112: PUSH
35113: LD_EXP 81
35117: PUSH
35118: LD_VAR 0 1
35122: DIFF
35123: ST_TO_ADDR
// end ;
35124: GO 35065
35126: POP
35127: POP
// end ; if difficulty <> 1 then
35128: LD_OWVAR 67
35132: PUSH
35133: LD_INT 1
35135: NONEQUAL
35136: IFFALSE 35208
// begin SetTech ( tech_weap2 , Purple , state_researched ) ;
35138: LD_INT 52
35140: PPUSH
35141: LD_EXP 6
35145: PPUSH
35146: LD_INT 2
35148: PPUSH
35149: CALL_OW 322
// if difficulty = 3 then
35153: LD_OWVAR 67
35157: PUSH
35158: LD_INT 3
35160: EQUAL
35161: IFFALSE 35208
// begin SetTech ( tech_comp2 , Purple , state_researched ) ;
35163: LD_INT 58
35165: PPUSH
35166: LD_EXP 6
35170: PPUSH
35171: LD_INT 2
35173: PPUSH
35174: CALL_OW 322
// SetTech ( tech_tech2 , Purple , state_researched ) ;
35178: LD_INT 49
35180: PPUSH
35181: LD_EXP 6
35185: PPUSH
35186: LD_INT 2
35188: PPUSH
35189: CALL_OW 322
// SetTech ( tech_tech3 , Purple , state_researched ) ;
35193: LD_INT 50
35195: PPUSH
35196: LD_EXP 6
35200: PPUSH
35201: LD_INT 2
35203: PPUSH
35204: CALL_OW 322
// end ; end ; SetTech ( tech_tech1 , Purple , state_researched ) ;
35208: LD_INT 48
35210: PPUSH
35211: LD_EXP 6
35215: PPUSH
35216: LD_INT 2
35218: PPUSH
35219: CALL_OW 322
// SetTech ( tech_tech2 , Purple , state_researched ) ;
35223: LD_INT 49
35225: PPUSH
35226: LD_EXP 6
35230: PPUSH
35231: LD_INT 2
35233: PPUSH
35234: CALL_OW 322
// SetTech ( tech_tech3 , Purple , state_researched ) ;
35238: LD_INT 50
35240: PPUSH
35241: LD_EXP 6
35245: PPUSH
35246: LD_INT 2
35248: PPUSH
35249: CALL_OW 322
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , Purple ] ] ) then
35253: LD_INT 52
35255: PUSH
35256: EMPTY
35257: LIST
35258: PUSH
35259: LD_INT 22
35261: PUSH
35262: LD_EXP 6
35266: PUSH
35267: EMPTY
35268: LIST
35269: LIST
35270: PUSH
35271: EMPTY
35272: LIST
35273: LIST
35274: PPUSH
35275: CALL_OW 69
35279: IFFALSE 35283
// else
35281: GO 35408
// begin Wait ( Rand ( 7 7$00 , 10 10$00 ) ) ;
35283: LD_INT 14700
35285: PPUSH
35286: LD_INT 21000
35288: PPUSH
35289: CALL_OW 12
35293: PPUSH
35294: CALL_OW 67
// if not LevaBazaZnicena then
35298: LD_EXP 78
35302: NOT
35303: IFFALSE 35309
// create_randovy_utok ;
35305: CALL 33444 0 0
// if not PravaBazaZnicena then
35309: LD_EXP 79
35313: NOT
35314: IFFALSE 35320
// create_randovy_utok_R ;
35316: CALL 33980 0 0
// Probiha_McMove = false ;
35320: LD_ADDR_LOC 11
35324: PUSH
35325: LD_INT 0
35327: ST_TO_ADDR
// Probiha_McAttack = false ;
35328: LD_ADDR_LOC 12
35332: PUSH
35333: LD_INT 0
35335: ST_TO_ADDR
// Probiha_McMove2 = false ;
35336: LD_ADDR_LOC 13
35340: PUSH
35341: LD_INT 0
35343: ST_TO_ADDR
// for u in Am_Utok_1_list do
35344: LD_ADDR_VAR 0 1
35348: PUSH
35349: LD_EXP 80
35353: PUSH
35354: FOR_IN
35355: IFFALSE 35374
// PlaceUnitArea ( u , PurpleArrival , false ) ;
35357: LD_VAR 0 1
35361: PPUSH
35362: LD_INT 40
35364: PPUSH
35365: LD_INT 0
35367: PPUSH
35368: CALL_OW 49
35372: GO 35354
35374: POP
35375: POP
// for u in Am_Utok_2_list do
35376: LD_ADDR_VAR 0 1
35380: PUSH
35381: LD_EXP 81
35385: PUSH
35386: FOR_IN
35387: IFFALSE 35406
// PlaceUnitArea ( u , PurpleArrival2 , false ) ;
35389: LD_VAR 0 1
35393: PPUSH
35394: LD_INT 41
35396: PPUSH
35397: LD_INT 0
35399: PPUSH
35400: CALL_OW 49
35404: GO 35386
35406: POP
35407: POP
// end ; enable ;
35408: ENABLE
// end ;
35409: PPOPN 1
35411: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_placed ] , [ f_side , Purple ] , [ f_type , unit_vehicle ] , [ f_not , [ f_empty ] ] ] ) do var bugged ;
35412: LD_INT 52
35414: PUSH
35415: EMPTY
35416: LIST
35417: PUSH
35418: LD_INT 22
35420: PUSH
35421: LD_EXP 6
35425: PUSH
35426: EMPTY
35427: LIST
35428: LIST
35429: PUSH
35430: LD_INT 21
35432: PUSH
35433: LD_INT 2
35435: PUSH
35436: EMPTY
35437: LIST
35438: LIST
35439: PUSH
35440: LD_INT 3
35442: PUSH
35443: LD_INT 58
35445: PUSH
35446: EMPTY
35447: LIST
35448: PUSH
35449: EMPTY
35450: LIST
35451: LIST
35452: PUSH
35453: EMPTY
35454: LIST
35455: LIST
35456: LIST
35457: LIST
35458: PPUSH
35459: CALL_OW 69
35463: IFFALSE 35680
35465: GO 35467
35467: DISABLE
35468: LD_INT 0
35470: PPUSH
// begin bugged = FilterAllUnits ( [ [ f_placed ] , [ f_side , Purple ] , [ f_type , unit_vehicle ] , [ f_not , [ f_empty ] ] ] ) [ 1 ] ;
35471: LD_ADDR_VAR 0 1
35475: PUSH
35476: LD_INT 52
35478: PUSH
35479: EMPTY
35480: LIST
35481: PUSH
35482: LD_INT 22
35484: PUSH
35485: LD_EXP 6
35489: PUSH
35490: EMPTY
35491: LIST
35492: LIST
35493: PUSH
35494: LD_INT 21
35496: PUSH
35497: LD_INT 2
35499: PUSH
35500: EMPTY
35501: LIST
35502: LIST
35503: PUSH
35504: LD_INT 3
35506: PUSH
35507: LD_INT 58
35509: PUSH
35510: EMPTY
35511: LIST
35512: PUSH
35513: EMPTY
35514: LIST
35515: LIST
35516: PUSH
35517: EMPTY
35518: LIST
35519: LIST
35520: LIST
35521: LIST
35522: PPUSH
35523: CALL_OW 69
35527: PUSH
35528: LD_INT 1
35530: ARRAY
35531: ST_TO_ADDR
// if not bugged in Am_Utok_1_list and not bugged in Am_Utok_2_list and not HasTask ( bugged ) then
35532: LD_VAR 0 1
35536: PUSH
35537: LD_EXP 80
35541: IN
35542: NOT
35543: PUSH
35544: LD_VAR 0 1
35548: PUSH
35549: LD_EXP 81
35553: IN
35554: NOT
35555: AND
35556: PUSH
35557: LD_VAR 0 1
35561: PPUSH
35562: CALL_OW 314
35566: NOT
35567: AND
35568: IFFALSE 35679
// ComAttackUnit ( bugged , NearestUnitToUnit ( FilterAllUnits ( [ [ f_placed ] , [ f_or , [ f_side , You ] , [ f_side , You2 ] ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] , [ f_not , [ f_empty ] ] ] ) , bugged ) ) ;
35570: LD_VAR 0 1
35574: PPUSH
35575: LD_INT 52
35577: PUSH
35578: EMPTY
35579: LIST
35580: PUSH
35581: LD_INT 2
35583: PUSH
35584: LD_INT 22
35586: PUSH
35587: LD_EXP 2
35591: PUSH
35592: EMPTY
35593: LIST
35594: LIST
35595: PUSH
35596: LD_INT 22
35598: PUSH
35599: LD_EXP 3
35603: PUSH
35604: EMPTY
35605: LIST
35606: LIST
35607: PUSH
35608: EMPTY
35609: LIST
35610: LIST
35611: LIST
35612: PUSH
35613: LD_INT 2
35615: PUSH
35616: LD_INT 21
35618: PUSH
35619: LD_INT 1
35621: PUSH
35622: EMPTY
35623: LIST
35624: LIST
35625: PUSH
35626: LD_INT 21
35628: PUSH
35629: LD_INT 2
35631: PUSH
35632: EMPTY
35633: LIST
35634: LIST
35635: PUSH
35636: EMPTY
35637: LIST
35638: LIST
35639: LIST
35640: PUSH
35641: LD_INT 3
35643: PUSH
35644: LD_INT 58
35646: PUSH
35647: EMPTY
35648: LIST
35649: PUSH
35650: EMPTY
35651: LIST
35652: LIST
35653: PUSH
35654: EMPTY
35655: LIST
35656: LIST
35657: LIST
35658: LIST
35659: PPUSH
35660: CALL_OW 69
35664: PPUSH
35665: LD_VAR 0 1
35669: PPUSH
35670: CALL_OW 74
35674: PPUSH
35675: CALL_OW 115
// enable ;
35679: ENABLE
// end ; end_of_file
35680: PPOPN 1
35682: END
// every 0 0$2 trigger FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_type , unit_human ] ] ) + 0 < 5 and DepotNefungujeAmik ( Am_Depot_1 ) do
35683: LD_INT 95
35685: PUSH
35686: LD_INT 29
35688: PUSH
35689: EMPTY
35690: LIST
35691: LIST
35692: PUSH
35693: LD_INT 50
35695: PUSH
35696: EMPTY
35697: LIST
35698: PUSH
35699: LD_INT 22
35701: PUSH
35702: LD_EXP 4
35706: PUSH
35707: EMPTY
35708: LIST
35709: LIST
35710: PUSH
35711: LD_INT 21
35713: PUSH
35714: LD_INT 1
35716: PUSH
35717: EMPTY
35718: LIST
35719: LIST
35720: PUSH
35721: EMPTY
35722: LIST
35723: LIST
35724: LIST
35725: LIST
35726: PPUSH
35727: CALL_OW 69
35731: PUSH
35732: LD_INT 0
35734: PLUS
35735: PUSH
35736: LD_INT 5
35738: LESS
35739: PUSH
35740: LD_INT 129
35742: PPUSH
35743: CALL 40990 0 1
35747: AND
35748: IFFALSE 35778
35750: GO 35752
35752: DISABLE
// begin Wait ( 0 0$1.5 ) ;
35753: LD_INT 52
35755: PPUSH
35756: CALL_OW 67
// DialogBazaZnicena ( AmBaza1 ) ;
35760: LD_INT 29
35762: PPUSH
35763: CALL 27384 0 1
// enable ( 08 ) ;
35767: LD_INT 8
35769: ENABLE_MARKED
// LevaBazaZnicena = true ;
35770: LD_ADDR_EXP 78
35774: PUSH
35775: LD_INT 1
35777: ST_TO_ADDR
// end ;
35778: END
// export OtravnyRadar ; every 0 0$0.5 trigger OtravnyRadar do var radar_cesta , rusove , nejblizsi_rus ; var i ;
35779: LD_EXP 85
35783: IFFALSE 36287
35785: GO 35787
35787: DISABLE
35788: LD_INT 0
35790: PPUSH
35791: PPUSH
35792: PPUSH
35793: PPUSH
// begin radar_cesta = [ [ 88 , 99 ] , [ 69 , 106 ] , [ 81 , 118 ] , [ 90 , 123 ] , [ 97 , 130 ] , [ 101 , 138 ] ] ;
35794: LD_ADDR_VAR 0 1
35798: PUSH
35799: LD_INT 88
35801: PUSH
35802: LD_INT 99
35804: PUSH
35805: EMPTY
35806: LIST
35807: LIST
35808: PUSH
35809: LD_INT 69
35811: PUSH
35812: LD_INT 106
35814: PUSH
35815: EMPTY
35816: LIST
35817: LIST
35818: PUSH
35819: LD_INT 81
35821: PUSH
35822: LD_INT 118
35824: PUSH
35825: EMPTY
35826: LIST
35827: LIST
35828: PUSH
35829: LD_INT 90
35831: PUSH
35832: LD_INT 123
35834: PUSH
35835: EMPTY
35836: LIST
35837: LIST
35838: PUSH
35839: LD_INT 97
35841: PUSH
35842: LD_INT 130
35844: PUSH
35845: EMPTY
35846: LIST
35847: LIST
35848: PUSH
35849: LD_INT 101
35851: PUSH
35852: LD_INT 138
35854: PUSH
35855: EMPTY
35856: LIST
35857: LIST
35858: PUSH
35859: EMPTY
35860: LIST
35861: LIST
35862: LIST
35863: LIST
35864: LIST
35865: LIST
35866: ST_TO_ADDR
// rusove = FilterAllUnits ( [ [ f_placed ] , [ f_or , [ f_side , You ] , [ f_side , You2 ] ] ] ) ;
35867: LD_ADDR_VAR 0 2
35871: PUSH
35872: LD_INT 52
35874: PUSH
35875: EMPTY
35876: LIST
35877: PUSH
35878: LD_INT 2
35880: PUSH
35881: LD_INT 22
35883: PUSH
35884: LD_EXP 2
35888: PUSH
35889: EMPTY
35890: LIST
35891: LIST
35892: PUSH
35893: LD_INT 22
35895: PUSH
35896: LD_EXP 3
35900: PUSH
35901: EMPTY
35902: LIST
35903: LIST
35904: PUSH
35905: EMPTY
35906: LIST
35907: LIST
35908: LIST
35909: PUSH
35910: EMPTY
35911: LIST
35912: LIST
35913: PPUSH
35914: CALL_OW 69
35918: ST_TO_ADDR
// nejblizsi_rus = NearestUnitToUnit ( rusove , OtravnyRadar ) ;
35919: LD_ADDR_VAR 0 3
35923: PUSH
35924: LD_VAR 0 2
35928: PPUSH
35929: LD_EXP 85
35933: PPUSH
35934: CALL_OW 74
35938: ST_TO_ADDR
// if GetLives ( OtravnyRadar ) < 550 and not IsInArea ( OtravnyRadar , LevaRepair ) then
35939: LD_EXP 85
35943: PPUSH
35944: CALL_OW 256
35948: PUSH
35949: LD_INT 550
35951: LESS
35952: PUSH
35953: LD_EXP 85
35957: PPUSH
35958: LD_INT 45
35960: PPUSH
35961: CALL_OW 308
35965: NOT
35966: AND
35967: IFFALSE 35983
// ComMoveToArea ( OtravnyRadar , LevaRepair ) else
35969: LD_EXP 85
35973: PPUSH
35974: LD_INT 45
35976: PPUSH
35977: CALL_OW 113
35981: GO 36286
// if GetLives ( OtravnyRadar ) < 1000 and IsInArea ( OtravnyRadar , LevaRepair ) then
35983: LD_EXP 85
35987: PPUSH
35988: CALL_OW 256
35992: PUSH
35993: LD_INT 1000
35995: LESS
35996: PUSH
35997: LD_EXP 85
36001: PPUSH
36002: LD_INT 45
36004: PPUSH
36005: CALL_OW 308
36009: AND
36010: IFFALSE 36014
// else
36012: GO 36286
// if not IsInArea ( OtravnyRadar , LevaLeceni2 ) and ( DepotNefungujeAmik ( Am_Depot_1 ) or not IsOk ( Am_Depot_1 ) ) then
36014: LD_EXP 85
36018: PPUSH
36019: LD_INT 44
36021: PPUSH
36022: CALL_OW 308
36026: NOT
36027: PUSH
36028: LD_INT 129
36030: PPUSH
36031: CALL 40990 0 1
36035: PUSH
36036: LD_INT 129
36038: PPUSH
36039: CALL_OW 302
36043: NOT
36044: OR
36045: AND
36046: IFFALSE 36062
// ComMoveToArea ( OtravnyRadar , LevaLeceni2 ) else
36048: LD_EXP 85
36052: PPUSH
36053: LD_INT 44
36055: PPUSH
36056: CALL_OW 113
36060: GO 36286
// if GetY ( nejblizsi_rus ) < ( GetY ( OtravnyRadar ) + 20 ) then
36062: LD_VAR 0 3
36066: PPUSH
36067: CALL_OW 251
36071: PUSH
36072: LD_EXP 85
36076: PPUSH
36077: CALL_OW 251
36081: PUSH
36082: LD_INT 20
36084: PLUS
36085: LESS
36086: IFFALSE 36188
// begin for i = radar_cesta + 0 downto 1 do
36088: LD_ADDR_VAR 0 4
36092: PUSH
36093: DOUBLE
36094: LD_VAR 0 1
36098: PUSH
36099: LD_INT 0
36101: PLUS
36102: INC
36103: ST_TO_ADDR
36104: LD_INT 1
36106: PUSH
36107: FOR_DOWNTO
36108: IFFALSE 36184
// begin if radar_cesta [ i ] [ 2 ] < GetY ( nejblizsi_rus ) - 20 then
36110: LD_VAR 0 1
36114: PUSH
36115: LD_VAR 0 4
36119: ARRAY
36120: PUSH
36121: LD_INT 2
36123: ARRAY
36124: PUSH
36125: LD_VAR 0 3
36129: PPUSH
36130: CALL_OW 251
36134: PUSH
36135: LD_INT 20
36137: MINUS
36138: LESS
36139: IFFALSE 36182
// begin ComMoveXY ( OtravnyRadar , radar_cesta [ i ] [ 1 ] , radar_cesta [ i ] [ 2 ] ) ;
36141: LD_EXP 85
36145: PPUSH
36146: LD_VAR 0 1
36150: PUSH
36151: LD_VAR 0 4
36155: ARRAY
36156: PUSH
36157: LD_INT 1
36159: ARRAY
36160: PPUSH
36161: LD_VAR 0 1
36165: PUSH
36166: LD_VAR 0 4
36170: ARRAY
36171: PUSH
36172: LD_INT 2
36174: ARRAY
36175: PPUSH
36176: CALL_OW 111
// break ;
36180: GO 36184
// end ; end ;
36182: GO 36107
36184: POP
36185: POP
// end else
36186: GO 36286
// begin for i = radar_cesta + 0 downto 1 do
36188: LD_ADDR_VAR 0 4
36192: PUSH
36193: DOUBLE
36194: LD_VAR 0 1
36198: PUSH
36199: LD_INT 0
36201: PLUS
36202: INC
36203: ST_TO_ADDR
36204: LD_INT 1
36206: PUSH
36207: FOR_DOWNTO
36208: IFFALSE 36284
// begin if radar_cesta [ i ] [ 2 ] + 20 < GetY ( nejblizsi_rus ) then
36210: LD_VAR 0 1
36214: PUSH
36215: LD_VAR 0 4
36219: ARRAY
36220: PUSH
36221: LD_INT 2
36223: ARRAY
36224: PUSH
36225: LD_INT 20
36227: PLUS
36228: PUSH
36229: LD_VAR 0 3
36233: PPUSH
36234: CALL_OW 251
36238: LESS
36239: IFFALSE 36282
// begin ComMoveXY ( OtravnyRadar , radar_cesta [ i ] [ 1 ] , radar_cesta [ i ] [ 2 ] ) ;
36241: LD_EXP 85
36245: PPUSH
36246: LD_VAR 0 1
36250: PUSH
36251: LD_VAR 0 4
36255: ARRAY
36256: PUSH
36257: LD_INT 1
36259: ARRAY
36260: PPUSH
36261: LD_VAR 0 1
36265: PUSH
36266: LD_VAR 0 4
36270: ARRAY
36271: PUSH
36272: LD_INT 2
36274: ARRAY
36275: PPUSH
36276: CALL_OW 111
// break ;
36280: GO 36284
// end ; end ;
36282: GO 36207
36284: POP
36285: POP
// end ; enable ;
36286: ENABLE
// end ;
36287: PPOPN 4
36289: END
// var RadarWaiter ; every 0 0$5 do
36290: GO 36292
36292: DISABLE
// begin Wait ( RadarWaiter ) ;
36293: LD_LOC 14
36297: PPUSH
36298: CALL_OW 67
// if not OtravnyRadar and AmiciFungujou and not GetWorkingProgress ( Am_Fac_1 ) then
36302: LD_EXP 85
36306: NOT
36307: PUSH
36308: CALL 36668 0 0
36312: AND
36313: PUSH
36314: LD_INT 132
36316: PPUSH
36317: CALL_OW 328
36321: NOT
36322: AND
36323: IFFALSE 36358
// begin ComConstruct ( Am_Fac_1 , us_medium_wheeled , engine_siberite , control_computer , us_radar ) ;
36325: LD_INT 132
36327: PPUSH
36328: LD_INT 2
36330: PPUSH
36331: LD_INT 3
36333: PPUSH
36334: LD_INT 3
36336: PPUSH
36337: LD_INT 11
36339: PPUSH
36340: CALL_OW 125
// RadarWaiter = RadarWaiter + 1 1$30 ;
36344: LD_ADDR_LOC 14
36348: PUSH
36349: LD_LOC 14
36353: PUSH
36354: LD_INT 3150
36356: PLUS
36357: ST_TO_ADDR
// end ; enable ;
36358: ENABLE
// end ;
36359: END
// every 0 0$1 do
36360: GO 36362
36362: DISABLE
// begin if IsOk ( Am_Depot_1 ) and GetSide ( Am_Depot_1 ) = Amik then
36363: LD_INT 129
36365: PPUSH
36366: CALL_OW 302
36370: PUSH
36371: LD_INT 129
36373: PPUSH
36374: CALL_OW 255
36378: PUSH
36379: LD_EXP 4
36383: EQUAL
36384: AND
36385: IFFALSE 36403
// SurovinyDoSkladu ( Am_Depot_1 , 200 , 500 , 15 ) ;
36387: LD_INT 129
36389: PPUSH
36390: LD_INT 200
36392: PPUSH
36393: LD_INT 500
36395: PPUSH
36396: LD_INT 15
36398: PPUSH
36399: CALL 5102 0 4
// if IsOk ( Am_Lab_1 ) and GetSide ( Am_Lab_1 ) = Amik and tick > 4 4$00 then
36403: LD_INT 137
36405: PPUSH
36406: CALL_OW 302
36410: PUSH
36411: LD_INT 137
36413: PPUSH
36414: CALL_OW 255
36418: PUSH
36419: LD_EXP 4
36423: EQUAL
36424: AND
36425: PUSH
36426: LD_OWVAR 1
36430: PUSH
36431: LD_INT 8400
36433: GREATER
36434: AND
36435: IFFALSE 36447
// Zkoumej ( 1 , Am_Lab_1 ) ;
36437: LD_INT 1
36439: PPUSH
36440: LD_INT 137
36442: PPUSH
36443: CALL 36614 0 2
// enable ;
36447: ENABLE
// end ;
36448: END
// export Am_Tech_list ; export function Init_Amik1 ; begin
36449: LD_INT 0
36451: PPUSH
// RadarWaiter = 5 5$00 ;
36452: LD_ADDR_LOC 14
36456: PUSH
36457: LD_INT 10500
36459: ST_TO_ADDR
// RemoveUnit ( Am_Ape_1 ) ;
36460: LD_INT 142
36462: PPUSH
36463: CALL_OW 64
// PlaceHumanInUnit ( Am_Ape_1 , Am_Depot_1 ) ;
36467: LD_INT 142
36469: PPUSH
36470: LD_INT 129
36472: PPUSH
36473: CALL_OW 52
// case difficulty of 1 :
36477: LD_OWVAR 67
36481: PUSH
36482: LD_INT 1
36484: DOUBLE
36485: EQUAL
36486: IFTRUE 36490
36488: GO 36512
36490: POP
// Am_Tech_list = [ tech_tech1 , tech_opto1 , tech_weap1 ] ; 2 :
36491: LD_ADDR_EXP 86
36495: PUSH
36496: LD_INT 48
36498: PUSH
36499: LD_INT 60
36501: PUSH
36502: LD_INT 51
36504: PUSH
36505: EMPTY
36506: LIST
36507: LIST
36508: LIST
36509: ST_TO_ADDR
36510: GO 36609
36512: LD_INT 2
36514: DOUBLE
36515: EQUAL
36516: IFTRUE 36520
36518: GO 36558
36520: POP
// Am_Tech_list = [ tech_tech1 , tech_opto1 , tech_weap1 , tech_tech2 , tech_tech3 , tech_opto2 , tech_weap2 ] ; 3 :
36521: LD_ADDR_EXP 86
36525: PUSH
36526: LD_INT 48
36528: PUSH
36529: LD_INT 60
36531: PUSH
36532: LD_INT 51
36534: PUSH
36535: LD_INT 49
36537: PUSH
36538: LD_INT 50
36540: PUSH
36541: LD_INT 61
36543: PUSH
36544: LD_INT 52
36546: PUSH
36547: EMPTY
36548: LIST
36549: LIST
36550: LIST
36551: LIST
36552: LIST
36553: LIST
36554: LIST
36555: ST_TO_ADDR
36556: GO 36609
36558: LD_INT 3
36560: DOUBLE
36561: EQUAL
36562: IFTRUE 36566
36564: GO 36608
36566: POP
// Am_Tech_list = [ tech_tech1 , tech_opto1 , tech_weap1 , tech_tech2 , tech_tech3 , tech_opto2 , tech_weap2 , tech_opto3 ] ; end ;
36567: LD_ADDR_EXP 86
36571: PUSH
36572: LD_INT 48
36574: PUSH
36575: LD_INT 60
36577: PUSH
36578: LD_INT 51
36580: PUSH
36581: LD_INT 49
36583: PUSH
36584: LD_INT 50
36586: PUSH
36587: LD_INT 61
36589: PUSH
36590: LD_INT 52
36592: PUSH
36593: LD_INT 62
36595: PUSH
36596: EMPTY
36597: LIST
36598: LIST
36599: LIST
36600: LIST
36601: LIST
36602: LIST
36603: LIST
36604: LIST
36605: ST_TO_ADDR
36606: GO 36609
36608: POP
// end ;
36609: LD_VAR 0 1
36613: RET
// function Zkoumej ( cislo_vyzkumu , laborator ) ; begin
36614: LD_INT 0
36616: PPUSH
// if cislo_vyzkumu = 1 and Am_Tech_list and not GetActResearch ( laborator ) then
36617: LD_VAR 0 1
36621: PUSH
36622: LD_INT 1
36624: EQUAL
36625: PUSH
36626: LD_EXP 86
36630: AND
36631: PUSH
36632: LD_VAR 0 2
36636: PPUSH
36637: CALL_OW 485
36641: NOT
36642: AND
36643: IFFALSE 36663
// ComResearch ( laborator , Am_Tech_list [ 1 ] ) ;
36645: LD_VAR 0 2
36649: PPUSH
36650: LD_EXP 86
36654: PUSH
36655: LD_INT 1
36657: ARRAY
36658: PPUSH
36659: CALL_OW 124
// end ;
36663: LD_VAR 0 3
36667: RET
// function AmiciFungujou ; begin
36668: LD_INT 0
36670: PPUSH
// if GetSide ( Am_Depot_1 ) <> Amik or GetSide ( Am_Fac_1 ) <> Amik or IsPlaced ( Am_Depot_1 ) = false or IsPlaced ( Am_Fac_1 ) = false or IsOk ( Am_Fac_1 ) = false or IsOk ( Am_Depot_1 ) = false then
36671: LD_INT 129
36673: PPUSH
36674: CALL_OW 255
36678: PUSH
36679: LD_EXP 4
36683: NONEQUAL
36684: PUSH
36685: LD_INT 132
36687: PPUSH
36688: CALL_OW 255
36692: PUSH
36693: LD_EXP 4
36697: NONEQUAL
36698: OR
36699: PUSH
36700: LD_INT 129
36702: PPUSH
36703: CALL_OW 305
36707: PUSH
36708: LD_INT 0
36710: EQUAL
36711: OR
36712: PUSH
36713: LD_INT 132
36715: PPUSH
36716: CALL_OW 305
36720: PUSH
36721: LD_INT 0
36723: EQUAL
36724: OR
36725: PUSH
36726: LD_INT 132
36728: PPUSH
36729: CALL_OW 302
36733: PUSH
36734: LD_INT 0
36736: EQUAL
36737: OR
36738: PUSH
36739: LD_INT 129
36741: PPUSH
36742: CALL_OW 302
36746: PUSH
36747: LD_INT 0
36749: EQUAL
36750: OR
36751: IFFALSE 36763
// result = false else
36753: LD_ADDR_VAR 0 1
36757: PUSH
36758: LD_INT 0
36760: ST_TO_ADDR
36761: GO 36771
// result = true ;
36763: LD_ADDR_VAR 0 1
36767: PUSH
36768: LD_INT 1
36770: ST_TO_ADDR
// end ;
36771: LD_VAR 0 1
36775: RET
// every 0 0$1 trigger Hrajeme do var Inzenyri_volni , Zdravotnici_volni , Vojaci_volni , Mechanici_volni , Vozidla ; var un , b , v , i , veh , bedny , bedny2 , bud , volne_bunkry , target ;
36776: LD_EXP 20
36780: IFFALSE 39756
36782: GO 36784
36784: DISABLE
36785: LD_INT 0
36787: PPUSH
36788: PPUSH
36789: PPUSH
36790: PPUSH
36791: PPUSH
36792: PPUSH
36793: PPUSH
36794: PPUSH
36795: PPUSH
36796: PPUSH
36797: PPUSH
36798: PPUSH
36799: PPUSH
36800: PPUSH
36801: PPUSH
// begin if FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_placed ] , [ f_not , [ f_constructed ] ] , [ f_side , Amik ] , [ f_ok ] , [ f_empty ] , [ f_or , [ f_btype , b_breastwork ] , [ f_btype , b_bunker ] ] ] ) then
36802: LD_INT 95
36804: PUSH
36805: LD_INT 29
36807: PUSH
36808: EMPTY
36809: LIST
36810: LIST
36811: PUSH
36812: LD_INT 52
36814: PUSH
36815: EMPTY
36816: LIST
36817: PUSH
36818: LD_INT 3
36820: PUSH
36821: LD_INT 57
36823: PUSH
36824: EMPTY
36825: LIST
36826: PUSH
36827: EMPTY
36828: LIST
36829: LIST
36830: PUSH
36831: LD_INT 22
36833: PUSH
36834: LD_EXP 4
36838: PUSH
36839: EMPTY
36840: LIST
36841: LIST
36842: PUSH
36843: LD_INT 50
36845: PUSH
36846: EMPTY
36847: LIST
36848: PUSH
36849: LD_INT 58
36851: PUSH
36852: EMPTY
36853: LIST
36854: PUSH
36855: LD_INT 2
36857: PUSH
36858: LD_INT 30
36860: PUSH
36861: LD_INT 31
36863: PUSH
36864: EMPTY
36865: LIST
36866: LIST
36867: PUSH
36868: LD_INT 30
36870: PUSH
36871: LD_INT 32
36873: PUSH
36874: EMPTY
36875: LIST
36876: LIST
36877: PUSH
36878: EMPTY
36879: LIST
36880: LIST
36881: LIST
36882: PUSH
36883: EMPTY
36884: LIST
36885: LIST
36886: LIST
36887: LIST
36888: LIST
36889: LIST
36890: LIST
36891: PPUSH
36892: CALL_OW 69
36896: IFFALSE 37000
// begin volne_bunkry = FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_placed ] , [ f_not , [ f_constructed ] ] , [ f_ok ] , [ f_side , Amik ] , [ f_empty ] , [ f_or , [ f_btype , b_breastwork ] , [ f_btype , b_bunker ] ] ] ) ;
36898: LD_ADDR_VAR 0 14
36902: PUSH
36903: LD_INT 95
36905: PUSH
36906: LD_INT 29
36908: PUSH
36909: EMPTY
36910: LIST
36911: LIST
36912: PUSH
36913: LD_INT 52
36915: PUSH
36916: EMPTY
36917: LIST
36918: PUSH
36919: LD_INT 3
36921: PUSH
36922: LD_INT 57
36924: PUSH
36925: EMPTY
36926: LIST
36927: PUSH
36928: EMPTY
36929: LIST
36930: LIST
36931: PUSH
36932: LD_INT 50
36934: PUSH
36935: EMPTY
36936: LIST
36937: PUSH
36938: LD_INT 22
36940: PUSH
36941: LD_EXP 4
36945: PUSH
36946: EMPTY
36947: LIST
36948: LIST
36949: PUSH
36950: LD_INT 58
36952: PUSH
36953: EMPTY
36954: LIST
36955: PUSH
36956: LD_INT 2
36958: PUSH
36959: LD_INT 30
36961: PUSH
36962: LD_INT 31
36964: PUSH
36965: EMPTY
36966: LIST
36967: LIST
36968: PUSH
36969: LD_INT 30
36971: PUSH
36972: LD_INT 32
36974: PUSH
36975: EMPTY
36976: LIST
36977: LIST
36978: PUSH
36979: EMPTY
36980: LIST
36981: LIST
36982: LIST
36983: PUSH
36984: EMPTY
36985: LIST
36986: LIST
36987: LIST
36988: LIST
36989: LIST
36990: LIST
36991: LIST
36992: PPUSH
36993: CALL_OW 69
36997: ST_TO_ADDR
// end else
36998: GO 37008
// volne_bunkry = 0 ;
37000: LD_ADDR_VAR 0 14
37004: PUSH
37005: LD_INT 0
37007: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik ] , [ f_class , class_engineer ] ] ) and FilterAllUnits ( [ [ f_type , unit_building ] , [ f_side , Amik ] ] ) then
37008: LD_INT 52
37010: PUSH
37011: EMPTY
37012: LIST
37013: PUSH
37014: LD_INT 22
37016: PUSH
37017: LD_EXP 4
37021: PUSH
37022: EMPTY
37023: LIST
37024: LIST
37025: PUSH
37026: LD_INT 25
37028: PUSH
37029: LD_INT 2
37031: PUSH
37032: EMPTY
37033: LIST
37034: LIST
37035: PUSH
37036: EMPTY
37037: LIST
37038: LIST
37039: LIST
37040: PPUSH
37041: CALL_OW 69
37045: PUSH
37046: LD_INT 21
37048: PUSH
37049: LD_INT 3
37051: PUSH
37052: EMPTY
37053: LIST
37054: LIST
37055: PUSH
37056: LD_INT 22
37058: PUSH
37059: LD_EXP 4
37063: PUSH
37064: EMPTY
37065: LIST
37066: LIST
37067: PUSH
37068: EMPTY
37069: LIST
37070: LIST
37071: PPUSH
37072: CALL_OW 69
37076: AND
37077: IFFALSE 37164
// SetBLevel ( ( FilterAllUnits ( [ [ f_type , unit_building ] , [ f_side , Amik ] ] ) ) , GetSkill ( FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik ] , [ f_class , class_engineer ] ] ) [ 1 ] , skill_engineering ) ) ;
37079: LD_INT 21
37081: PUSH
37082: LD_INT 3
37084: PUSH
37085: EMPTY
37086: LIST
37087: LIST
37088: PUSH
37089: LD_INT 22
37091: PUSH
37092: LD_EXP 4
37096: PUSH
37097: EMPTY
37098: LIST
37099: LIST
37100: PUSH
37101: EMPTY
37102: LIST
37103: LIST
37104: PPUSH
37105: CALL_OW 69
37109: PPUSH
37110: LD_INT 52
37112: PUSH
37113: EMPTY
37114: LIST
37115: PUSH
37116: LD_INT 22
37118: PUSH
37119: LD_EXP 4
37123: PUSH
37124: EMPTY
37125: LIST
37126: LIST
37127: PUSH
37128: LD_INT 25
37130: PUSH
37131: LD_INT 2
37133: PUSH
37134: EMPTY
37135: LIST
37136: LIST
37137: PUSH
37138: EMPTY
37139: LIST
37140: LIST
37141: LIST
37142: PPUSH
37143: CALL_OW 69
37147: PUSH
37148: LD_INT 1
37150: ARRAY
37151: PPUSH
37152: LD_INT 2
37154: PPUSH
37155: CALL_OW 259
37159: PPUSH
37160: CALL_OW 241
// if FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_engineer ] ] ) then
37164: LD_INT 95
37166: PUSH
37167: LD_INT 29
37169: PUSH
37170: EMPTY
37171: LIST
37172: LIST
37173: PUSH
37174: LD_INT 50
37176: PUSH
37177: EMPTY
37178: LIST
37179: PUSH
37180: LD_INT 22
37182: PUSH
37183: LD_EXP 4
37187: PUSH
37188: EMPTY
37189: LIST
37190: LIST
37191: PUSH
37192: LD_INT 25
37194: PUSH
37195: LD_INT 2
37197: PUSH
37198: EMPTY
37199: LIST
37200: LIST
37201: PUSH
37202: EMPTY
37203: LIST
37204: LIST
37205: LIST
37206: LIST
37207: PPUSH
37208: CALL_OW 69
37212: IFFALSE 37903
// begin Inzenyri_volni = FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_engineer ] ] ) ;
37214: LD_ADDR_VAR 0 1
37218: PUSH
37219: LD_INT 95
37221: PUSH
37222: LD_INT 29
37224: PUSH
37225: EMPTY
37226: LIST
37227: LIST
37228: PUSH
37229: LD_INT 50
37231: PUSH
37232: EMPTY
37233: LIST
37234: PUSH
37235: LD_INT 22
37237: PUSH
37238: LD_EXP 4
37242: PUSH
37243: EMPTY
37244: LIST
37245: LIST
37246: PUSH
37247: LD_INT 25
37249: PUSH
37250: LD_INT 2
37252: PUSH
37253: EMPTY
37254: LIST
37255: LIST
37256: PUSH
37257: EMPTY
37258: LIST
37259: LIST
37260: LIST
37261: LIST
37262: PPUSH
37263: CALL_OW 69
37267: ST_TO_ADDR
// for un in Inzenyri_volni do
37268: LD_ADDR_VAR 0 6
37272: PUSH
37273: LD_VAR 0 1
37277: PUSH
37278: FOR_IN
37279: IFFALSE 37901
// begin if GetLives ( un ) < 550 then
37281: LD_VAR 0 6
37285: PPUSH
37286: CALL_OW 256
37290: PUSH
37291: LD_INT 550
37293: LESS
37294: IFFALSE 37345
// begin VyjdiVen ( un ) ;
37296: LD_VAR 0 6
37300: PPUSH
37301: CALL 2645 0 1
// if not IsInArea ( un , LevaLeceni ) then
37305: LD_VAR 0 6
37309: PPUSH
37310: LD_INT 43
37312: PPUSH
37313: CALL_OW 308
37317: NOT
37318: IFFALSE 37334
// ComMoveToArea ( un , LevaLeceni ) else
37320: LD_VAR 0 6
37324: PPUSH
37325: LD_INT 43
37327: PPUSH
37328: CALL_OW 113
37332: GO 37343
// ComHold ( un ) ;
37334: LD_VAR 0 6
37338: PPUSH
37339: CALL_OW 140
// end else
37343: GO 37899
// if GetLives ( un ) < 1000 and IsInArea ( un , LevaLeceni ) then
37345: LD_VAR 0 6
37349: PPUSH
37350: CALL_OW 256
37354: PUSH
37355: LD_INT 1000
37357: LESS
37358: PUSH
37359: LD_VAR 0 6
37363: PPUSH
37364: LD_INT 43
37366: PPUSH
37367: CALL_OW 308
37371: AND
37372: IFFALSE 37376
// else
37374: GO 37899
// if FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) then
37376: LD_INT 95
37378: PUSH
37379: LD_INT 29
37381: PUSH
37382: EMPTY
37383: LIST
37384: LIST
37385: PUSH
37386: LD_INT 52
37388: PUSH
37389: EMPTY
37390: LIST
37391: PUSH
37392: LD_INT 22
37394: PUSH
37395: LD_EXP 4
37399: PUSH
37400: EMPTY
37401: LIST
37402: LIST
37403: PUSH
37404: LD_INT 21
37406: PUSH
37407: LD_INT 3
37409: PUSH
37410: EMPTY
37411: LIST
37412: LIST
37413: PUSH
37414: LD_INT 3
37416: PUSH
37417: LD_INT 24
37419: PUSH
37420: LD_INT 250
37422: PUSH
37423: EMPTY
37424: LIST
37425: LIST
37426: PUSH
37427: EMPTY
37428: LIST
37429: LIST
37430: PUSH
37431: EMPTY
37432: LIST
37433: LIST
37434: LIST
37435: LIST
37436: LIST
37437: PPUSH
37438: CALL_OW 69
37442: IFFALSE 37545
// begin b = FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) ;
37444: LD_ADDR_VAR 0 7
37448: PUSH
37449: LD_INT 95
37451: PUSH
37452: LD_INT 29
37454: PUSH
37455: EMPTY
37456: LIST
37457: LIST
37458: PUSH
37459: LD_INT 52
37461: PUSH
37462: EMPTY
37463: LIST
37464: PUSH
37465: LD_INT 22
37467: PUSH
37468: LD_EXP 4
37472: PUSH
37473: EMPTY
37474: LIST
37475: LIST
37476: PUSH
37477: LD_INT 21
37479: PUSH
37480: LD_INT 3
37482: PUSH
37483: EMPTY
37484: LIST
37485: LIST
37486: PUSH
37487: LD_INT 3
37489: PUSH
37490: LD_INT 24
37492: PUSH
37493: LD_INT 250
37495: PUSH
37496: EMPTY
37497: LIST
37498: LIST
37499: PUSH
37500: EMPTY
37501: LIST
37502: LIST
37503: PUSH
37504: EMPTY
37505: LIST
37506: LIST
37507: LIST
37508: LIST
37509: LIST
37510: PPUSH
37511: CALL_OW 69
37515: ST_TO_ADDR
// VyjdiVen ( un ) ;
37516: LD_VAR 0 6
37520: PPUSH
37521: CALL 2645 0 1
// ComRepairBuilding ( un , b [ 1 ] ) ;
37525: LD_VAR 0 6
37529: PPUSH
37530: LD_VAR 0 7
37534: PUSH
37535: LD_INT 1
37537: ARRAY
37538: PPUSH
37539: CALL_OW 130
// end else
37543: GO 37899
// if FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
37545: LD_INT 95
37547: PUSH
37548: LD_INT 29
37550: PUSH
37551: EMPTY
37552: LIST
37553: LIST
37554: PUSH
37555: LD_INT 52
37557: PUSH
37558: EMPTY
37559: LIST
37560: PUSH
37561: LD_INT 22
37563: PUSH
37564: LD_EXP 4
37568: PUSH
37569: EMPTY
37570: LIST
37571: LIST
37572: PUSH
37573: LD_INT 21
37575: PUSH
37576: LD_INT 3
37578: PUSH
37579: EMPTY
37580: LIST
37581: LIST
37582: PUSH
37583: LD_INT 3
37585: PUSH
37586: LD_INT 24
37588: PUSH
37589: LD_INT 1000
37591: PUSH
37592: EMPTY
37593: LIST
37594: LIST
37595: PUSH
37596: EMPTY
37597: LIST
37598: LIST
37599: PUSH
37600: EMPTY
37601: LIST
37602: LIST
37603: LIST
37604: LIST
37605: LIST
37606: PPUSH
37607: CALL_OW 69
37611: IFFALSE 37714
// begin b = FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
37613: LD_ADDR_VAR 0 7
37617: PUSH
37618: LD_INT 95
37620: PUSH
37621: LD_INT 29
37623: PUSH
37624: EMPTY
37625: LIST
37626: LIST
37627: PUSH
37628: LD_INT 52
37630: PUSH
37631: EMPTY
37632: LIST
37633: PUSH
37634: LD_INT 22
37636: PUSH
37637: LD_EXP 4
37641: PUSH
37642: EMPTY
37643: LIST
37644: LIST
37645: PUSH
37646: LD_INT 21
37648: PUSH
37649: LD_INT 3
37651: PUSH
37652: EMPTY
37653: LIST
37654: LIST
37655: PUSH
37656: LD_INT 3
37658: PUSH
37659: LD_INT 24
37661: PUSH
37662: LD_INT 1000
37664: PUSH
37665: EMPTY
37666: LIST
37667: LIST
37668: PUSH
37669: EMPTY
37670: LIST
37671: LIST
37672: PUSH
37673: EMPTY
37674: LIST
37675: LIST
37676: LIST
37677: LIST
37678: LIST
37679: PPUSH
37680: CALL_OW 69
37684: ST_TO_ADDR
// VyjdiVen ( un ) ;
37685: LD_VAR 0 6
37689: PPUSH
37690: CALL 2645 0 1
// ComRepairBuilding ( un , b [ 1 ] ) ;
37694: LD_VAR 0 6
37698: PPUSH
37699: LD_VAR 0 7
37703: PUSH
37704: LD_INT 1
37706: ARRAY
37707: PPUSH
37708: CALL_OW 130
// end else
37712: GO 37899
// if GetListOfCratesInArea ( AmBaza1 ) then
37714: LD_INT 29
37716: PPUSH
37717: CALL_OW 435
37721: IFFALSE 37774
// begin bedny = GetListOfCratesInArea ( AmBaza1 ) ;
37723: LD_ADDR_VAR 0 11
37727: PUSH
37728: LD_INT 29
37730: PPUSH
37731: CALL_OW 435
37735: ST_TO_ADDR
// VyjdiVen ( un ) ;
37736: LD_VAR 0 6
37740: PPUSH
37741: CALL 2645 0 1
// ComCollect ( un , bedny [ 1 ] , bedny [ 2 ] ) ;
37745: LD_VAR 0 6
37749: PPUSH
37750: LD_VAR 0 11
37754: PUSH
37755: LD_INT 1
37757: ARRAY
37758: PPUSH
37759: LD_VAR 0 11
37763: PUSH
37764: LD_INT 2
37766: ARRAY
37767: PPUSH
37768: CALL_OW 117
// end else
37772: GO 37899
// if not GetLives ( un ) = 1000 then
37774: LD_VAR 0 6
37778: PPUSH
37779: CALL_OW 256
37783: PUSH
37784: LD_INT 1000
37786: EQUAL
37787: NOT
37788: IFFALSE 37839
// begin VyjdiVen ( un ) ;
37790: LD_VAR 0 6
37794: PPUSH
37795: CALL 2645 0 1
// if not IsInArea ( un , LevaLeceni ) then
37799: LD_VAR 0 6
37803: PPUSH
37804: LD_INT 43
37806: PPUSH
37807: CALL_OW 308
37811: NOT
37812: IFFALSE 37828
// ComMoveToArea ( un , LevaLeceni ) else
37814: LD_VAR 0 6
37818: PPUSH
37819: LD_INT 43
37821: PPUSH
37822: CALL_OW 113
37826: GO 37837
// ComHold ( un ) ;
37828: LD_VAR 0 6
37832: PPUSH
37833: CALL_OW 140
// end else
37837: GO 37899
// if GetLives ( un ) = 1000 then
37839: LD_VAR 0 6
37843: PPUSH
37844: CALL_OW 256
37848: PUSH
37849: LD_INT 1000
37851: EQUAL
37852: IFFALSE 37899
// begin ComFree ( un ) ;
37854: LD_VAR 0 6
37858: PPUSH
37859: CALL_OW 139
// if IsOk ( Am_Depot_1 ) and GetSide ( Am_Depot_1 ) = Amik then
37863: LD_INT 129
37865: PPUSH
37866: CALL_OW 302
37870: PUSH
37871: LD_INT 129
37873: PPUSH
37874: CALL_OW 255
37878: PUSH
37879: LD_EXP 4
37883: EQUAL
37884: AND
37885: IFFALSE 37899
// ComEnterUnit ( un , Am_Depot_1 ) ;
37887: LD_VAR 0 6
37891: PPUSH
37892: LD_INT 129
37894: PPUSH
37895: CALL_OW 120
// end ; end ;
37899: GO 37278
37901: POP
37902: POP
// end ; if FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_scientistic ] ] ) then
37903: LD_INT 95
37905: PUSH
37906: LD_INT 29
37908: PUSH
37909: EMPTY
37910: LIST
37911: LIST
37912: PUSH
37913: LD_INT 50
37915: PUSH
37916: EMPTY
37917: LIST
37918: PUSH
37919: LD_INT 22
37921: PUSH
37922: LD_EXP 4
37926: PUSH
37927: EMPTY
37928: LIST
37929: LIST
37930: PUSH
37931: LD_INT 25
37933: PUSH
37934: LD_INT 4
37936: PUSH
37937: EMPTY
37938: LIST
37939: LIST
37940: PUSH
37941: EMPTY
37942: LIST
37943: LIST
37944: LIST
37945: LIST
37946: PPUSH
37947: CALL_OW 69
37951: IFFALSE 38668
// begin Zdravotnici_volni = FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_scientistic ] ] ) ;
37953: LD_ADDR_VAR 0 2
37957: PUSH
37958: LD_INT 95
37960: PUSH
37961: LD_INT 29
37963: PUSH
37964: EMPTY
37965: LIST
37966: LIST
37967: PUSH
37968: LD_INT 50
37970: PUSH
37971: EMPTY
37972: LIST
37973: PUSH
37974: LD_INT 22
37976: PUSH
37977: LD_EXP 4
37981: PUSH
37982: EMPTY
37983: LIST
37984: LIST
37985: PUSH
37986: LD_INT 25
37988: PUSH
37989: LD_INT 4
37991: PUSH
37992: EMPTY
37993: LIST
37994: LIST
37995: PUSH
37996: EMPTY
37997: LIST
37998: LIST
37999: LIST
38000: LIST
38001: PPUSH
38002: CALL_OW 69
38006: ST_TO_ADDR
// for un in Zdravotnici_volni do
38007: LD_ADDR_VAR 0 6
38011: PUSH
38012: LD_VAR 0 2
38016: PUSH
38017: FOR_IN
38018: IFFALSE 38666
// begin if GetLives ( un ) < 550 then
38020: LD_VAR 0 6
38024: PPUSH
38025: CALL_OW 256
38029: PUSH
38030: LD_INT 550
38032: LESS
38033: IFFALSE 38226
// begin VyjdiVen ( un ) ;
38035: LD_VAR 0 6
38039: PPUSH
38040: CALL 2645 0 1
// if not IsInArea ( un , LevaLeceni ) then
38044: LD_VAR 0 6
38048: PPUSH
38049: LD_INT 43
38051: PPUSH
38052: CALL_OW 308
38056: NOT
38057: IFFALSE 38073
// ComMoveToArea ( un , LevaLeceni ) else
38059: LD_VAR 0 6
38063: PPUSH
38064: LD_INT 43
38066: PPUSH
38067: CALL_OW 113
38071: GO 38224
// if FilterUnitsInArea ( LevaLeceni , [ [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) + 0 > 1 then
38073: LD_INT 43
38075: PPUSH
38076: LD_INT 52
38078: PUSH
38079: EMPTY
38080: LIST
38081: PUSH
38082: LD_INT 22
38084: PUSH
38085: LD_EXP 4
38089: PUSH
38090: EMPTY
38091: LIST
38092: LIST
38093: PUSH
38094: LD_INT 21
38096: PUSH
38097: LD_INT 1
38099: PUSH
38100: EMPTY
38101: LIST
38102: LIST
38103: PUSH
38104: LD_INT 3
38106: PUSH
38107: LD_INT 24
38109: PUSH
38110: LD_INT 1000
38112: PUSH
38113: EMPTY
38114: LIST
38115: LIST
38116: PUSH
38117: EMPTY
38118: LIST
38119: LIST
38120: PUSH
38121: EMPTY
38122: LIST
38123: LIST
38124: LIST
38125: LIST
38126: PPUSH
38127: CALL_OW 70
38131: PUSH
38132: LD_INT 0
38134: PLUS
38135: PUSH
38136: LD_INT 1
38138: GREATER
38139: IFFALSE 38215
// ComHeal ( un , FilterUnitsInArea ( LevaLeceni , [ [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) [ 1 ] ) else
38141: LD_VAR 0 6
38145: PPUSH
38146: LD_INT 43
38148: PPUSH
38149: LD_INT 52
38151: PUSH
38152: EMPTY
38153: LIST
38154: PUSH
38155: LD_INT 22
38157: PUSH
38158: LD_EXP 4
38162: PUSH
38163: EMPTY
38164: LIST
38165: LIST
38166: PUSH
38167: LD_INT 21
38169: PUSH
38170: LD_INT 1
38172: PUSH
38173: EMPTY
38174: LIST
38175: LIST
38176: PUSH
38177: LD_INT 3
38179: PUSH
38180: LD_INT 24
38182: PUSH
38183: LD_INT 1000
38185: PUSH
38186: EMPTY
38187: LIST
38188: LIST
38189: PUSH
38190: EMPTY
38191: LIST
38192: LIST
38193: PUSH
38194: EMPTY
38195: LIST
38196: LIST
38197: LIST
38198: LIST
38199: PPUSH
38200: CALL_OW 70
38204: PUSH
38205: LD_INT 1
38207: ARRAY
38208: PPUSH
38209: CALL_OW 128
38213: GO 38224
// ComHold ( un ) ;
38215: LD_VAR 0 6
38219: PPUSH
38220: CALL_OW 140
// end else
38224: GO 38664
// if FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 250 ] ] ] ) then
38226: LD_INT 95
38228: PUSH
38229: LD_INT 29
38231: PUSH
38232: EMPTY
38233: LIST
38234: LIST
38235: PUSH
38236: LD_INT 52
38238: PUSH
38239: EMPTY
38240: LIST
38241: PUSH
38242: LD_INT 22
38244: PUSH
38245: LD_EXP 4
38249: PUSH
38250: EMPTY
38251: LIST
38252: LIST
38253: PUSH
38254: LD_INT 21
38256: PUSH
38257: LD_INT 1
38259: PUSH
38260: EMPTY
38261: LIST
38262: LIST
38263: PUSH
38264: LD_INT 3
38266: PUSH
38267: LD_INT 24
38269: PUSH
38270: LD_INT 250
38272: PUSH
38273: EMPTY
38274: LIST
38275: LIST
38276: PUSH
38277: EMPTY
38278: LIST
38279: LIST
38280: PUSH
38281: EMPTY
38282: LIST
38283: LIST
38284: LIST
38285: LIST
38286: LIST
38287: PPUSH
38288: CALL_OW 69
38292: IFFALSE 38395
// begin i = FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 250 ] ] ] ) [ 1 ] ;
38294: LD_ADDR_VAR 0 9
38298: PUSH
38299: LD_INT 95
38301: PUSH
38302: LD_INT 29
38304: PUSH
38305: EMPTY
38306: LIST
38307: LIST
38308: PUSH
38309: LD_INT 52
38311: PUSH
38312: EMPTY
38313: LIST
38314: PUSH
38315: LD_INT 22
38317: PUSH
38318: LD_EXP 4
38322: PUSH
38323: EMPTY
38324: LIST
38325: LIST
38326: PUSH
38327: LD_INT 21
38329: PUSH
38330: LD_INT 1
38332: PUSH
38333: EMPTY
38334: LIST
38335: LIST
38336: PUSH
38337: LD_INT 3
38339: PUSH
38340: LD_INT 24
38342: PUSH
38343: LD_INT 250
38345: PUSH
38346: EMPTY
38347: LIST
38348: LIST
38349: PUSH
38350: EMPTY
38351: LIST
38352: LIST
38353: PUSH
38354: EMPTY
38355: LIST
38356: LIST
38357: LIST
38358: LIST
38359: LIST
38360: PPUSH
38361: CALL_OW 69
38365: PUSH
38366: LD_INT 1
38368: ARRAY
38369: ST_TO_ADDR
// VyjdiVen ( un ) ;
38370: LD_VAR 0 6
38374: PPUSH
38375: CALL 2645 0 1
// ComHeal ( un , i ) ;
38379: LD_VAR 0 6
38383: PPUSH
38384: LD_VAR 0 9
38388: PPUSH
38389: CALL_OW 128
// end else
38393: GO 38664
// if FilterUnitsInArea ( LevaLeceni , [ [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
38395: LD_INT 43
38397: PPUSH
38398: LD_INT 52
38400: PUSH
38401: EMPTY
38402: LIST
38403: PUSH
38404: LD_INT 22
38406: PUSH
38407: LD_EXP 4
38411: PUSH
38412: EMPTY
38413: LIST
38414: LIST
38415: PUSH
38416: LD_INT 21
38418: PUSH
38419: LD_INT 1
38421: PUSH
38422: EMPTY
38423: LIST
38424: LIST
38425: PUSH
38426: LD_INT 3
38428: PUSH
38429: LD_INT 24
38431: PUSH
38432: LD_INT 1000
38434: PUSH
38435: EMPTY
38436: LIST
38437: LIST
38438: PUSH
38439: EMPTY
38440: LIST
38441: LIST
38442: PUSH
38443: EMPTY
38444: LIST
38445: LIST
38446: LIST
38447: LIST
38448: PPUSH
38449: CALL_OW 70
38453: IFFALSE 38548
// begin i = FilterUnitsInArea ( LevaLeceni2 , [ [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) [ 1 ] ;
38455: LD_ADDR_VAR 0 9
38459: PUSH
38460: LD_INT 44
38462: PPUSH
38463: LD_INT 52
38465: PUSH
38466: EMPTY
38467: LIST
38468: PUSH
38469: LD_INT 22
38471: PUSH
38472: LD_EXP 4
38476: PUSH
38477: EMPTY
38478: LIST
38479: LIST
38480: PUSH
38481: LD_INT 21
38483: PUSH
38484: LD_INT 1
38486: PUSH
38487: EMPTY
38488: LIST
38489: LIST
38490: PUSH
38491: LD_INT 3
38493: PUSH
38494: LD_INT 24
38496: PUSH
38497: LD_INT 1000
38499: PUSH
38500: EMPTY
38501: LIST
38502: LIST
38503: PUSH
38504: EMPTY
38505: LIST
38506: LIST
38507: PUSH
38508: EMPTY
38509: LIST
38510: LIST
38511: LIST
38512: LIST
38513: PPUSH
38514: CALL_OW 70
38518: PUSH
38519: LD_INT 1
38521: ARRAY
38522: ST_TO_ADDR
// VyjdiVen ( un ) ;
38523: LD_VAR 0 6
38527: PPUSH
38528: CALL 2645 0 1
// ComHeal ( un , i ) ;
38532: LD_VAR 0 6
38536: PPUSH
38537: LD_VAR 0 9
38541: PPUSH
38542: CALL_OW 128
// end else
38546: GO 38664
// if not GetLives ( un ) = 1000 then
38548: LD_VAR 0 6
38552: PPUSH
38553: CALL_OW 256
38557: PUSH
38558: LD_INT 1000
38560: EQUAL
38561: NOT
38562: IFFALSE 38613
// begin VyjdiVen ( un ) ;
38564: LD_VAR 0 6
38568: PPUSH
38569: CALL 2645 0 1
// if not IsInArea ( un , LevaLeceni ) then
38573: LD_VAR 0 6
38577: PPUSH
38578: LD_INT 43
38580: PPUSH
38581: CALL_OW 308
38585: NOT
38586: IFFALSE 38602
// ComMoveToArea ( un , LevaLeceni ) else
38588: LD_VAR 0 6
38592: PPUSH
38593: LD_INT 43
38595: PPUSH
38596: CALL_OW 113
38600: GO 38611
// ComHold ( un ) ;
38602: LD_VAR 0 6
38606: PPUSH
38607: CALL_OW 140
// end else
38611: GO 38664
// if GetLives ( un ) = 1000 then
38613: LD_VAR 0 6
38617: PPUSH
38618: CALL_OW 256
38622: PUSH
38623: LD_INT 1000
38625: EQUAL
38626: IFFALSE 38664
// begin if IsOk ( Am_Lab_1 ) and GetSide ( Am_Lab_1 ) = Amik then
38628: LD_INT 137
38630: PPUSH
38631: CALL_OW 302
38635: PUSH
38636: LD_INT 137
38638: PPUSH
38639: CALL_OW 255
38643: PUSH
38644: LD_EXP 4
38648: EQUAL
38649: AND
38650: IFFALSE 38664
// ComEnterUnit ( un , Am_Lab_1 ) ;
38652: LD_VAR 0 6
38656: PPUSH
38657: LD_INT 137
38659: PPUSH
38660: CALL_OW 120
// end ; end ;
38664: GO 38017
38666: POP
38667: POP
// end ; if FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_or , [ f_class , class_soldier ] ] ] ) then
38668: LD_INT 95
38670: PUSH
38671: LD_INT 29
38673: PUSH
38674: EMPTY
38675: LIST
38676: LIST
38677: PUSH
38678: LD_INT 50
38680: PUSH
38681: EMPTY
38682: LIST
38683: PUSH
38684: LD_INT 22
38686: PUSH
38687: LD_EXP 4
38691: PUSH
38692: EMPTY
38693: LIST
38694: LIST
38695: PUSH
38696: LD_INT 2
38698: PUSH
38699: LD_INT 25
38701: PUSH
38702: LD_INT 1
38704: PUSH
38705: EMPTY
38706: LIST
38707: LIST
38708: PUSH
38709: EMPTY
38710: LIST
38711: LIST
38712: PUSH
38713: EMPTY
38714: LIST
38715: LIST
38716: LIST
38717: LIST
38718: PPUSH
38719: CALL_OW 69
38723: IFFALSE 39182
// begin Vojaci_volni = FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_or , [ f_class , class_soldier ] ] ] ) ;
38725: LD_ADDR_VAR 0 3
38729: PUSH
38730: LD_INT 95
38732: PUSH
38733: LD_INT 29
38735: PUSH
38736: EMPTY
38737: LIST
38738: LIST
38739: PUSH
38740: LD_INT 50
38742: PUSH
38743: EMPTY
38744: LIST
38745: PUSH
38746: LD_INT 22
38748: PUSH
38749: LD_EXP 4
38753: PUSH
38754: EMPTY
38755: LIST
38756: LIST
38757: PUSH
38758: LD_INT 2
38760: PUSH
38761: LD_INT 25
38763: PUSH
38764: LD_INT 1
38766: PUSH
38767: EMPTY
38768: LIST
38769: LIST
38770: PUSH
38771: EMPTY
38772: LIST
38773: LIST
38774: PUSH
38775: EMPTY
38776: LIST
38777: LIST
38778: LIST
38779: LIST
38780: PPUSH
38781: CALL_OW 69
38785: ST_TO_ADDR
// for un in Vojaci_volni do
38786: LD_ADDR_VAR 0 6
38790: PUSH
38791: LD_VAR 0 3
38795: PUSH
38796: FOR_IN
38797: IFFALSE 39180
// begin begin if volne_bunkry and IsOutside ( un ) then
38799: LD_VAR 0 14
38803: PUSH
38804: LD_VAR 0 6
38808: PPUSH
38809: CALL 2607 0 1
38813: AND
38814: IFFALSE 38836
// ComEnterUnit ( un , volne_bunkry [ 1 ] ) else
38816: LD_VAR 0 6
38820: PPUSH
38821: LD_VAR 0 14
38825: PUSH
38826: LD_INT 1
38828: ARRAY
38829: PPUSH
38830: CALL_OW 120
38834: GO 39178
// if volne_bunkry and ( ( IsPlaced ( Am_Zbroj_1 ) and UnitsInside ( Am_Zbroj_1 ) ) or ( IsPlaced ( Am_Zbroj_2 ) and UnitsInside ( Am_Zbroj_2 ) ) ) and not FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_lives , 1000 ] , [ f_side , Amik ] , [ f_class , class_soldier ] , [ f_outside ] ] ) then
38836: LD_VAR 0 14
38840: PUSH
38841: LD_INT 138
38843: PPUSH
38844: CALL_OW 305
38848: PUSH
38849: LD_INT 138
38851: PPUSH
38852: CALL_OW 313
38856: AND
38857: PUSH
38858: LD_INT 139
38860: PPUSH
38861: CALL_OW 305
38865: PUSH
38866: LD_INT 139
38868: PPUSH
38869: CALL_OW 313
38873: AND
38874: OR
38875: AND
38876: PUSH
38877: LD_INT 95
38879: PUSH
38880: LD_INT 29
38882: PUSH
38883: EMPTY
38884: LIST
38885: LIST
38886: PUSH
38887: LD_INT 24
38889: PUSH
38890: LD_INT 1000
38892: PUSH
38893: EMPTY
38894: LIST
38895: LIST
38896: PUSH
38897: LD_INT 22
38899: PUSH
38900: LD_EXP 4
38904: PUSH
38905: EMPTY
38906: LIST
38907: LIST
38908: PUSH
38909: LD_INT 25
38911: PUSH
38912: LD_INT 1
38914: PUSH
38915: EMPTY
38916: LIST
38917: LIST
38918: PUSH
38919: LD_INT 56
38921: PUSH
38922: EMPTY
38923: LIST
38924: PUSH
38925: EMPTY
38926: LIST
38927: LIST
38928: LIST
38929: LIST
38930: LIST
38931: PPUSH
38932: CALL_OW 69
38936: NOT
38937: AND
38938: IFFALSE 39038
// begin if un in UnitsInside ( Am_Zbroj_1 ) then
38940: LD_VAR 0 6
38944: PUSH
38945: LD_INT 138
38947: PPUSH
38948: CALL_OW 313
38952: IN
38953: IFFALSE 38984
// begin VyjdiVen ( un ) ;
38955: LD_VAR 0 6
38959: PPUSH
38960: CALL 2645 0 1
// ComEnterUnit ( un , volne_bunkry [ 1 ] ) ;
38964: LD_VAR 0 6
38968: PPUSH
38969: LD_VAR 0 14
38973: PUSH
38974: LD_INT 1
38976: ARRAY
38977: PPUSH
38978: CALL_OW 120
// end else
38982: GO 39036
// if un in UnitsInside ( Am_Zbroj_2 ) then
38984: LD_VAR 0 6
38988: PUSH
38989: LD_INT 139
38991: PPUSH
38992: CALL_OW 313
38996: IN
38997: IFFALSE 39036
// begin b = volne_bunkry [ 1 ] ;
38999: LD_ADDR_VAR 0 7
39003: PUSH
39004: LD_VAR 0 14
39008: PUSH
39009: LD_INT 1
39011: ARRAY
39012: ST_TO_ADDR
// VyjdiVen ( un ) ;
39013: LD_VAR 0 6
39017: PPUSH
39018: CALL 2645 0 1
// ComEnterUnit ( un , b ) ;
39022: LD_VAR 0 6
39026: PPUSH
39027: LD_VAR 0 7
39031: PPUSH
39032: CALL_OW 120
// end end else
39036: GO 39178
// if IsPlaced ( Am_Zbroj_1 ) and IsOk ( Am_Zbroj_1 ) and GetSide ( Am_Zbroj_1 ) = Amik and IsOutside ( un ) and UnitsInside ( Am_Zbroj_1 ) < 6 then
39038: LD_INT 138
39040: PPUSH
39041: CALL_OW 305
39045: PUSH
39046: LD_INT 138
39048: PPUSH
39049: CALL_OW 302
39053: AND
39054: PUSH
39055: LD_INT 138
39057: PPUSH
39058: CALL_OW 255
39062: PUSH
39063: LD_EXP 4
39067: EQUAL
39068: AND
39069: PUSH
39070: LD_VAR 0 6
39074: PPUSH
39075: CALL 2607 0 1
39079: AND
39080: PUSH
39081: LD_INT 138
39083: PPUSH
39084: CALL_OW 313
39088: PUSH
39089: LD_INT 6
39091: LESS
39092: AND
39093: IFFALSE 39109
// ComEnterUnit ( un , Am_Zbroj_1 ) else
39095: LD_VAR 0 6
39099: PPUSH
39100: LD_INT 138
39102: PPUSH
39103: CALL_OW 120
39107: GO 39178
// if IsPlaced ( Am_Zbroj_2 ) and IsOk ( Am_Zbroj_2 ) and GetSide ( Am_Zbroj_2 ) = Amik and IsOutside ( un ) and UnitsInside ( Am_Zbroj_2 ) < 6 then
39109: LD_INT 139
39111: PPUSH
39112: CALL_OW 305
39116: PUSH
39117: LD_INT 139
39119: PPUSH
39120: CALL_OW 302
39124: AND
39125: PUSH
39126: LD_INT 139
39128: PPUSH
39129: CALL_OW 255
39133: PUSH
39134: LD_EXP 4
39138: EQUAL
39139: AND
39140: PUSH
39141: LD_VAR 0 6
39145: PPUSH
39146: CALL 2607 0 1
39150: AND
39151: PUSH
39152: LD_INT 139
39154: PPUSH
39155: CALL_OW 313
39159: PUSH
39160: LD_INT 6
39162: LESS
39163: AND
39164: IFFALSE 39178
// ComEnterUnit ( un , Am_Zbroj_2 ) ;
39166: LD_VAR 0 6
39170: PPUSH
39171: LD_INT 139
39173: PPUSH
39174: CALL_OW 120
// end ; end ;
39178: GO 38796
39180: POP
39181: POP
// end ; if FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_mechanic ] ] ) then
39182: LD_INT 95
39184: PUSH
39185: LD_INT 29
39187: PUSH
39188: EMPTY
39189: LIST
39190: LIST
39191: PUSH
39192: LD_INT 50
39194: PUSH
39195: EMPTY
39196: LIST
39197: PUSH
39198: LD_INT 22
39200: PUSH
39201: LD_EXP 4
39205: PUSH
39206: EMPTY
39207: LIST
39208: LIST
39209: PUSH
39210: LD_INT 25
39212: PUSH
39213: LD_INT 3
39215: PUSH
39216: EMPTY
39217: LIST
39218: LIST
39219: PUSH
39220: EMPTY
39221: LIST
39222: LIST
39223: LIST
39224: LIST
39225: PPUSH
39226: CALL_OW 69
39230: IFFALSE 39492
// begin Mechanici_volni = FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_mechanic ] ] ) ;
39232: LD_ADDR_VAR 0 4
39236: PUSH
39237: LD_INT 95
39239: PUSH
39240: LD_INT 29
39242: PUSH
39243: EMPTY
39244: LIST
39245: LIST
39246: PUSH
39247: LD_INT 50
39249: PUSH
39250: EMPTY
39251: LIST
39252: PUSH
39253: LD_INT 22
39255: PUSH
39256: LD_EXP 4
39260: PUSH
39261: EMPTY
39262: LIST
39263: LIST
39264: PUSH
39265: LD_INT 25
39267: PUSH
39268: LD_INT 3
39270: PUSH
39271: EMPTY
39272: LIST
39273: LIST
39274: PUSH
39275: EMPTY
39276: LIST
39277: LIST
39278: LIST
39279: LIST
39280: PPUSH
39281: CALL_OW 69
39285: ST_TO_ADDR
// for un in Mechanici_volni do
39286: LD_ADDR_VAR 0 6
39290: PUSH
39291: LD_VAR 0 4
39295: PUSH
39296: FOR_IN
39297: IFFALSE 39490
// begin if FilterUnitsInArea ( LevaRepair , [ [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
39299: LD_INT 45
39301: PPUSH
39302: LD_INT 52
39304: PUSH
39305: EMPTY
39306: LIST
39307: PUSH
39308: LD_INT 22
39310: PUSH
39311: LD_EXP 4
39315: PUSH
39316: EMPTY
39317: LIST
39318: LIST
39319: PUSH
39320: LD_INT 21
39322: PUSH
39323: LD_INT 2
39325: PUSH
39326: EMPTY
39327: LIST
39328: LIST
39329: PUSH
39330: LD_INT 3
39332: PUSH
39333: LD_INT 24
39335: PUSH
39336: LD_INT 1000
39338: PUSH
39339: EMPTY
39340: LIST
39341: LIST
39342: PUSH
39343: EMPTY
39344: LIST
39345: LIST
39346: PUSH
39347: EMPTY
39348: LIST
39349: LIST
39350: LIST
39351: LIST
39352: PPUSH
39353: CALL_OW 70
39357: IFFALSE 39452
// begin v = FilterUnitsInArea ( LevaRepair2 , [ [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
39359: LD_ADDR_VAR 0 8
39363: PUSH
39364: LD_INT 46
39366: PPUSH
39367: LD_INT 52
39369: PUSH
39370: EMPTY
39371: LIST
39372: PUSH
39373: LD_INT 22
39375: PUSH
39376: LD_EXP 4
39380: PUSH
39381: EMPTY
39382: LIST
39383: LIST
39384: PUSH
39385: LD_INT 21
39387: PUSH
39388: LD_INT 2
39390: PUSH
39391: EMPTY
39392: LIST
39393: LIST
39394: PUSH
39395: LD_INT 3
39397: PUSH
39398: LD_INT 24
39400: PUSH
39401: LD_INT 1000
39403: PUSH
39404: EMPTY
39405: LIST
39406: LIST
39407: PUSH
39408: EMPTY
39409: LIST
39410: LIST
39411: PUSH
39412: EMPTY
39413: LIST
39414: LIST
39415: LIST
39416: LIST
39417: PPUSH
39418: CALL_OW 70
39422: ST_TO_ADDR
// VyjdiVen ( un ) ;
39423: LD_VAR 0 6
39427: PPUSH
39428: CALL 2645 0 1
// ComRepairVehicle ( un , v [ 1 ] ) ;
39432: LD_VAR 0 6
39436: PPUSH
39437: LD_VAR 0 8
39441: PUSH
39442: LD_INT 1
39444: ARRAY
39445: PPUSH
39446: CALL_OW 129
// end else
39450: GO 39488
// if IsOk ( Am_Fac_1 ) and GetSide ( Am_Fac_1 ) = Amik then
39452: LD_INT 132
39454: PPUSH
39455: CALL_OW 302
39459: PUSH
39460: LD_INT 132
39462: PPUSH
39463: CALL_OW 255
39467: PUSH
39468: LD_EXP 4
39472: EQUAL
39473: AND
39474: IFFALSE 39488
// ComEnterUnit ( un , Am_Fac_1 ) ;
39476: LD_VAR 0 6
39480: PPUSH
39481: LD_INT 132
39483: PPUSH
39484: CALL_OW 120
// end ;
39488: GO 39296
39490: POP
39491: POP
// end ; if FilterUnitsInArea ( Prostredni , [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_radar ] ] ] ) then
39492: LD_INT 33
39494: PPUSH
39495: LD_INT 95
39497: PUSH
39498: LD_INT 29
39500: PUSH
39501: EMPTY
39502: LIST
39503: LIST
39504: PUSH
39505: LD_INT 50
39507: PUSH
39508: EMPTY
39509: LIST
39510: PUSH
39511: LD_INT 22
39513: PUSH
39514: LD_EXP 4
39518: PUSH
39519: EMPTY
39520: LIST
39521: LIST
39522: PUSH
39523: LD_INT 21
39525: PUSH
39526: LD_INT 2
39528: PUSH
39529: EMPTY
39530: LIST
39531: LIST
39532: PUSH
39533: LD_INT 3
39535: PUSH
39536: LD_INT 34
39538: PUSH
39539: LD_INT 11
39541: PUSH
39542: EMPTY
39543: LIST
39544: LIST
39545: PUSH
39546: EMPTY
39547: LIST
39548: LIST
39549: PUSH
39550: EMPTY
39551: LIST
39552: LIST
39553: LIST
39554: LIST
39555: LIST
39556: PPUSH
39557: CALL_OW 70
39561: IFFALSE 39755
// begin Vozidla = FilterUnitsInArea ( Prostredni , [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_radar ] ] ] ) ;
39563: LD_ADDR_VAR 0 5
39567: PUSH
39568: LD_INT 33
39570: PPUSH
39571: LD_INT 95
39573: PUSH
39574: LD_INT 29
39576: PUSH
39577: EMPTY
39578: LIST
39579: LIST
39580: PUSH
39581: LD_INT 50
39583: PUSH
39584: EMPTY
39585: LIST
39586: PUSH
39587: LD_INT 22
39589: PUSH
39590: LD_EXP 4
39594: PUSH
39595: EMPTY
39596: LIST
39597: LIST
39598: PUSH
39599: LD_INT 21
39601: PUSH
39602: LD_INT 2
39604: PUSH
39605: EMPTY
39606: LIST
39607: LIST
39608: PUSH
39609: LD_INT 3
39611: PUSH
39612: LD_INT 34
39614: PUSH
39615: LD_INT 11
39617: PUSH
39618: EMPTY
39619: LIST
39620: LIST
39621: PUSH
39622: EMPTY
39623: LIST
39624: LIST
39625: PUSH
39626: EMPTY
39627: LIST
39628: LIST
39629: LIST
39630: LIST
39631: LIST
39632: PPUSH
39633: CALL_OW 70
39637: ST_TO_ADDR
// for veh in Vozidla do
39638: LD_ADDR_VAR 0 10
39642: PUSH
39643: LD_VAR 0 5
39647: PUSH
39648: FOR_IN
39649: IFFALSE 39753
// begin if FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_radar ] ] ] ) + 0 >= dif_amik_tanky_max then
39651: LD_INT 95
39653: PUSH
39654: LD_INT 29
39656: PUSH
39657: EMPTY
39658: LIST
39659: LIST
39660: PUSH
39661: LD_INT 22
39663: PUSH
39664: LD_EXP 4
39668: PUSH
39669: EMPTY
39670: LIST
39671: LIST
39672: PUSH
39673: LD_INT 21
39675: PUSH
39676: LD_INT 2
39678: PUSH
39679: EMPTY
39680: LIST
39681: LIST
39682: PUSH
39683: LD_INT 3
39685: PUSH
39686: LD_INT 34
39688: PUSH
39689: LD_INT 11
39691: PUSH
39692: EMPTY
39693: LIST
39694: LIST
39695: PUSH
39696: EMPTY
39697: LIST
39698: LIST
39699: PUSH
39700: EMPTY
39701: LIST
39702: LIST
39703: LIST
39704: LIST
39705: PPUSH
39706: CALL_OW 69
39710: PUSH
39711: LD_INT 0
39713: PLUS
39714: PUSH
39715: LD_EXP 36
39719: GREATEREQUAL
39720: IFFALSE 39751
// if not veh in Am_Levy_Attack then
39722: LD_VAR 0 10
39726: PUSH
39727: LD_EXP 87
39731: IN
39732: NOT
39733: IFFALSE 39751
// Am_Levy_Attack = Am_Levy_Attack ^ veh ;
39735: LD_ADDR_EXP 87
39739: PUSH
39740: LD_EXP 87
39744: PUSH
39745: LD_VAR 0 10
39749: ADD
39750: ST_TO_ADDR
// end ;
39751: GO 39648
39753: POP
39754: POP
// end ; enable ;
39755: ENABLE
// end ;
39756: PPOPN 15
39758: END
// export Am_Levy_Attack ; every 0 0$1 do
39759: GO 39761
39761: DISABLE
// begin if not ZijeNekdoList ( Am_Levy_Attack ) then
39762: LD_EXP 87
39766: PPUSH
39767: CALL 8801 0 1
39771: NOT
39772: IFFALSE 39782
// Probiha_McAttack = false ;
39774: LD_ADDR_LOC 17
39778: PUSH
39779: LD_INT 0
39781: ST_TO_ADDR
// enable ;
39782: ENABLE
// end ;
39783: END
// every 0 0$3 trigger IsOk ( Am_Fac_1 ) and GetSide ( Am_Fac_1 ) = Amik and not ZijeNekdoList ( Am_Levy_Attack ) do
39784: LD_INT 132
39786: PPUSH
39787: CALL_OW 302
39791: PUSH
39792: LD_INT 132
39794: PPUSH
39795: CALL_OW 255
39799: PUSH
39800: LD_EXP 4
39804: EQUAL
39805: AND
39806: PUSH
39807: LD_EXP 87
39811: PPUSH
39812: CALL 8801 0 1
39816: NOT
39817: AND
39818: IFFALSE 39924
39820: GO 39822
39822: DISABLE
// begin Wait ( Rand ( 17 17$00 , 19 19$00 ) ) ;
39823: LD_INT 35700
39825: PPUSH
39826: LD_INT 39900
39828: PPUSH
39829: CALL_OW 12
39833: PPUSH
39834: CALL_OW 67
// repeat begin Vyrabej ( Am_Fac_1 ) ;
39838: LD_INT 132
39840: PPUSH
39841: CALL 39925 0 1
// Wait ( 0 0$5 ) ;
39845: LD_INT 175
39847: PPUSH
39848: CALL_OW 67
// end until FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_radar ] ] ] ) + 0 >= dif_amik_tanky_max ;
39852: LD_INT 95
39854: PUSH
39855: LD_INT 29
39857: PUSH
39858: EMPTY
39859: LIST
39860: LIST
39861: PUSH
39862: LD_INT 22
39864: PUSH
39865: LD_EXP 4
39869: PUSH
39870: EMPTY
39871: LIST
39872: LIST
39873: PUSH
39874: LD_INT 21
39876: PUSH
39877: LD_INT 2
39879: PUSH
39880: EMPTY
39881: LIST
39882: LIST
39883: PUSH
39884: LD_INT 3
39886: PUSH
39887: LD_INT 34
39889: PUSH
39890: LD_INT 11
39892: PUSH
39893: EMPTY
39894: LIST
39895: LIST
39896: PUSH
39897: EMPTY
39898: LIST
39899: LIST
39900: PUSH
39901: EMPTY
39902: LIST
39903: LIST
39904: LIST
39905: LIST
39906: PPUSH
39907: CALL_OW 69
39911: PUSH
39912: LD_INT 0
39914: PLUS
39915: PUSH
39916: LD_EXP 36
39920: GREATEREQUAL
39921: IFFALSE 39838
// enable ;
39923: ENABLE
// end ;
39924: END
// function Vyrabej ( Tovarna ) ; var tanky ; begin
39925: LD_INT 0
39927: PPUSH
39928: PPUSH
// if not IsOk ( Tovarna ) then
39929: LD_VAR 0 1
39933: PPUSH
39934: CALL_OW 302
39938: NOT
39939: IFFALSE 39943
// exit ;
39941: GO 40482
// if GetWorkingProgress ( Tovarna ) then
39943: LD_VAR 0 1
39947: PPUSH
39948: CALL_OW 328
39952: IFFALSE 39956
// exit ;
39954: GO 40482
// if not UnitsInside ( Tovarna ) then
39956: LD_VAR 0 1
39960: PPUSH
39961: CALL_OW 313
39965: NOT
39966: IFFALSE 39970
// exit ;
39968: GO 40482
// if not GetSide ( Tovarna ) = Amik then
39970: LD_VAR 0 1
39974: PPUSH
39975: CALL_OW 255
39979: PUSH
39980: LD_EXP 4
39984: EQUAL
39985: NOT
39986: IFFALSE 39990
// exit ;
39988: GO 40482
// if not FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_factory ] , [ f_not , [ f_constructed ] ] ] ) then
39990: LD_INT 95
39992: PUSH
39993: LD_INT 29
39995: PUSH
39996: EMPTY
39997: LIST
39998: LIST
39999: PUSH
40000: LD_INT 50
40002: PUSH
40003: EMPTY
40004: LIST
40005: PUSH
40006: LD_INT 22
40008: PUSH
40009: LD_EXP 4
40013: PUSH
40014: EMPTY
40015: LIST
40016: LIST
40017: PUSH
40018: LD_INT 30
40020: PUSH
40021: LD_INT 3
40023: PUSH
40024: EMPTY
40025: LIST
40026: LIST
40027: PUSH
40028: LD_INT 3
40030: PUSH
40031: LD_INT 57
40033: PUSH
40034: EMPTY
40035: LIST
40036: PUSH
40037: EMPTY
40038: LIST
40039: LIST
40040: PUSH
40041: EMPTY
40042: LIST
40043: LIST
40044: LIST
40045: LIST
40046: LIST
40047: PPUSH
40048: CALL_OW 69
40052: NOT
40053: IFFALSE 40057
// exit ;
40055: GO 40482
// if not FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_ext_computer ] , [ f_not , [ f_constructed ] ] ] ) then
40057: LD_INT 95
40059: PUSH
40060: LD_INT 29
40062: PUSH
40063: EMPTY
40064: LIST
40065: LIST
40066: PUSH
40067: LD_INT 50
40069: PUSH
40070: EMPTY
40071: LIST
40072: PUSH
40073: LD_INT 22
40075: PUSH
40076: LD_EXP 4
40080: PUSH
40081: EMPTY
40082: LIST
40083: LIST
40084: PUSH
40085: LD_INT 30
40087: PUSH
40088: LD_INT 24
40090: PUSH
40091: EMPTY
40092: LIST
40093: LIST
40094: PUSH
40095: LD_INT 3
40097: PUSH
40098: LD_INT 57
40100: PUSH
40101: EMPTY
40102: LIST
40103: PUSH
40104: EMPTY
40105: LIST
40106: LIST
40107: PUSH
40108: EMPTY
40109: LIST
40110: LIST
40111: LIST
40112: LIST
40113: LIST
40114: PPUSH
40115: CALL_OW 69
40119: NOT
40120: IFFALSE 40124
// exit ;
40122: GO 40482
// if not FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_ext_siberium ] , [ f_not , [ f_constructed ] ] ] ) then
40124: LD_INT 95
40126: PUSH
40127: LD_INT 29
40129: PUSH
40130: EMPTY
40131: LIST
40132: LIST
40133: PUSH
40134: LD_INT 50
40136: PUSH
40137: EMPTY
40138: LIST
40139: PUSH
40140: LD_INT 22
40142: PUSH
40143: LD_EXP 4
40147: PUSH
40148: EMPTY
40149: LIST
40150: LIST
40151: PUSH
40152: LD_INT 30
40154: PUSH
40155: LD_INT 21
40157: PUSH
40158: EMPTY
40159: LIST
40160: LIST
40161: PUSH
40162: LD_INT 3
40164: PUSH
40165: LD_INT 57
40167: PUSH
40168: EMPTY
40169: LIST
40170: PUSH
40171: EMPTY
40172: LIST
40173: LIST
40174: PUSH
40175: EMPTY
40176: LIST
40177: LIST
40178: LIST
40179: LIST
40180: LIST
40181: PPUSH
40182: CALL_OW 69
40186: NOT
40187: IFFALSE 40191
// exit ;
40189: GO 40482
// if not FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_ext_radar ] , [ f_not , [ f_constructed ] ] ] ) then
40191: LD_INT 95
40193: PUSH
40194: LD_INT 29
40196: PUSH
40197: EMPTY
40198: LIST
40199: LIST
40200: PUSH
40201: LD_INT 50
40203: PUSH
40204: EMPTY
40205: LIST
40206: PUSH
40207: LD_INT 22
40209: PUSH
40210: LD_EXP 4
40214: PUSH
40215: EMPTY
40216: LIST
40217: LIST
40218: PUSH
40219: LD_INT 30
40221: PUSH
40222: LD_INT 20
40224: PUSH
40225: EMPTY
40226: LIST
40227: LIST
40228: PUSH
40229: LD_INT 3
40231: PUSH
40232: LD_INT 57
40234: PUSH
40235: EMPTY
40236: LIST
40237: PUSH
40238: EMPTY
40239: LIST
40240: LIST
40241: PUSH
40242: EMPTY
40243: LIST
40244: LIST
40245: LIST
40246: LIST
40247: LIST
40248: PPUSH
40249: CALL_OW 69
40253: NOT
40254: IFFALSE 40258
// exit ;
40256: GO 40482
// if not FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_ext_gun ] , [ f_not , [ f_constructed ] ] ] ) then
40258: LD_INT 95
40260: PUSH
40261: LD_INT 29
40263: PUSH
40264: EMPTY
40265: LIST
40266: LIST
40267: PUSH
40268: LD_INT 50
40270: PUSH
40271: EMPTY
40272: LIST
40273: PUSH
40274: LD_INT 22
40276: PUSH
40277: LD_EXP 4
40281: PUSH
40282: EMPTY
40283: LIST
40284: LIST
40285: PUSH
40286: LD_INT 30
40288: PUSH
40289: LD_INT 17
40291: PUSH
40292: EMPTY
40293: LIST
40294: LIST
40295: PUSH
40296: LD_INT 3
40298: PUSH
40299: LD_INT 57
40301: PUSH
40302: EMPTY
40303: LIST
40304: PUSH
40305: EMPTY
40306: LIST
40307: LIST
40308: PUSH
40309: EMPTY
40310: LIST
40311: LIST
40312: LIST
40313: LIST
40314: LIST
40315: PPUSH
40316: CALL_OW 69
40320: NOT
40321: IFFALSE 40325
// exit ;
40323: GO 40482
// if not FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_ext_track ] , [ f_not , [ f_constructed ] ] ] ) then
40325: LD_INT 95
40327: PUSH
40328: LD_INT 29
40330: PUSH
40331: EMPTY
40332: LIST
40333: LIST
40334: PUSH
40335: LD_INT 50
40337: PUSH
40338: EMPTY
40339: LIST
40340: PUSH
40341: LD_INT 22
40343: PUSH
40344: LD_EXP 4
40348: PUSH
40349: EMPTY
40350: LIST
40351: LIST
40352: PUSH
40353: LD_INT 30
40355: PUSH
40356: LD_INT 16
40358: PUSH
40359: EMPTY
40360: LIST
40361: LIST
40362: PUSH
40363: LD_INT 3
40365: PUSH
40366: LD_INT 57
40368: PUSH
40369: EMPTY
40370: LIST
40371: PUSH
40372: EMPTY
40373: LIST
40374: LIST
40375: PUSH
40376: EMPTY
40377: LIST
40378: LIST
40379: LIST
40380: LIST
40381: LIST
40382: PPUSH
40383: CALL_OW 69
40387: NOT
40388: IFFALSE 40392
// exit ;
40390: GO 40482
// tanky = FilterAllUnits ( [ [ f_inarea , AmBaza1 ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_radar ] ] ] ) ;
40392: LD_ADDR_VAR 0 3
40396: PUSH
40397: LD_INT 95
40399: PUSH
40400: LD_INT 29
40402: PUSH
40403: EMPTY
40404: LIST
40405: LIST
40406: PUSH
40407: LD_INT 22
40409: PUSH
40410: LD_EXP 4
40414: PUSH
40415: EMPTY
40416: LIST
40417: LIST
40418: PUSH
40419: LD_INT 21
40421: PUSH
40422: LD_INT 2
40424: PUSH
40425: EMPTY
40426: LIST
40427: LIST
40428: PUSH
40429: LD_INT 3
40431: PUSH
40432: LD_INT 34
40434: PUSH
40435: LD_INT 11
40437: PUSH
40438: EMPTY
40439: LIST
40440: LIST
40441: PUSH
40442: EMPTY
40443: LIST
40444: LIST
40445: PUSH
40446: EMPTY
40447: LIST
40448: LIST
40449: LIST
40450: LIST
40451: PPUSH
40452: CALL_OW 69
40456: ST_TO_ADDR
// if tanky + 0 < dif_amik_tanky_max then
40457: LD_VAR 0 3
40461: PUSH
40462: LD_INT 0
40464: PLUS
40465: PUSH
40466: LD_EXP 36
40470: LESS
40471: IFFALSE 40482
// Vyroba_auta_Amik ( Tovarna ) ;
40473: LD_VAR 0 1
40477: PPUSH
40478: CALL 40487 0 1
// end ;
40482: LD_VAR 0 2
40486: RET
// export function Vyroba_auta_Amik ( Tovarna ) ; var Chassis , Weapon , P ; begin
40487: LD_INT 0
40489: PPUSH
40490: PPUSH
40491: PPUSH
40492: PPUSH
// P = Rand ( 1 , 100 ) ;
40493: LD_ADDR_VAR 0 5
40497: PUSH
40498: LD_INT 1
40500: PPUSH
40501: LD_INT 100
40503: PPUSH
40504: CALL_OW 12
40508: ST_TO_ADDR
// if Tick < 30 30$00 then
40509: LD_OWVAR 1
40513: PUSH
40514: LD_INT 63000
40516: LESS
40517: IFFALSE 40621
// begin if P < 25 then
40519: LD_VAR 0 5
40523: PUSH
40524: LD_INT 25
40526: LESS
40527: IFFALSE 40547
// begin Weapon = US_GATLING_GUN ;
40529: LD_ADDR_VAR 0 4
40533: PUSH
40534: LD_INT 4
40536: ST_TO_ADDR
// Chassis = US_MEDIUM_TRACKED ;
40537: LD_ADDR_VAR 0 3
40541: PUSH
40542: LD_INT 3
40544: ST_TO_ADDR
// end else
40545: GO 40619
// if P < 50 then
40547: LD_VAR 0 5
40551: PUSH
40552: LD_INT 50
40554: LESS
40555: IFFALSE 40575
// begin Weapon = US_DOUBLE_GUN ;
40557: LD_ADDR_VAR 0 4
40561: PUSH
40562: LD_INT 5
40564: ST_TO_ADDR
// Chassis = US_MEDIUM_TRACKED ;
40565: LD_ADDR_VAR 0 3
40569: PUSH
40570: LD_INT 3
40572: ST_TO_ADDR
// end else
40573: GO 40619
// if P < 75 then
40575: LD_VAR 0 5
40579: PUSH
40580: LD_INT 75
40582: LESS
40583: IFFALSE 40603
// begin Weapon = US_GATLING_GUN ;
40585: LD_ADDR_VAR 0 4
40589: PUSH
40590: LD_INT 4
40592: ST_TO_ADDR
// Chassis = US_MEDIUM_TRACKED ;
40593: LD_ADDR_VAR 0 3
40597: PUSH
40598: LD_INT 3
40600: ST_TO_ADDR
// end else
40601: GO 40619
// begin Weapon = US_DOUBLE_GUN ;
40603: LD_ADDR_VAR 0 4
40607: PUSH
40608: LD_INT 5
40610: ST_TO_ADDR
// Chassis = US_HEAVY_TRACKED ;
40611: LD_ADDR_VAR 0 3
40615: PUSH
40616: LD_INT 4
40618: ST_TO_ADDR
// end ; end else
40619: GO 40721
// begin if P < 25 then
40621: LD_VAR 0 5
40625: PUSH
40626: LD_INT 25
40628: LESS
40629: IFFALSE 40649
// begin Weapon = US_DOUBLE_GUN ;
40631: LD_ADDR_VAR 0 4
40635: PUSH
40636: LD_INT 5
40638: ST_TO_ADDR
// Chassis = US_HEAVY_TRACKED ;
40639: LD_ADDR_VAR 0 3
40643: PUSH
40644: LD_INT 4
40646: ST_TO_ADDR
// end else
40647: GO 40721
// if P < 50 then
40649: LD_VAR 0 5
40653: PUSH
40654: LD_INT 50
40656: LESS
40657: IFFALSE 40677
// begin Weapon = US_HEAVY_GUN ;
40659: LD_ADDR_VAR 0 4
40663: PUSH
40664: LD_INT 6
40666: ST_TO_ADDR
// Chassis = US_HEAVY_TRACKED ;
40667: LD_ADDR_VAR 0 3
40671: PUSH
40672: LD_INT 4
40674: ST_TO_ADDR
// end else
40675: GO 40721
// if P < 75 then
40677: LD_VAR 0 5
40681: PUSH
40682: LD_INT 75
40684: LESS
40685: IFFALSE 40705
// begin Weapon = US_HEAVY_GUN ;
40687: LD_ADDR_VAR 0 4
40691: PUSH
40692: LD_INT 6
40694: ST_TO_ADDR
// Chassis = US_HEAVY_TRACKED ;
40695: LD_ADDR_VAR 0 3
40699: PUSH
40700: LD_INT 4
40702: ST_TO_ADDR
// end else
40703: GO 40721
// begin Weapon = US_GATLING_GUN ;
40705: LD_ADDR_VAR 0 4
40709: PUSH
40710: LD_INT 4
40712: ST_TO_ADDR
// Chassis = US_HEAVY_TRACKED ;
40713: LD_ADDR_VAR 0 3
40717: PUSH
40718: LD_INT 4
40720: ST_TO_ADDR
// end ; end ; if difficulty <> 1 and tick > 25 25$00 then
40721: LD_OWVAR 67
40725: PUSH
40726: LD_INT 1
40728: NONEQUAL
40729: PUSH
40730: LD_OWVAR 1
40734: PUSH
40735: LD_INT 52500
40737: GREATER
40738: AND
40739: IFFALSE 40759
// Chassis = Rand ( Chassis , US_HEAVY_TRACKED ) ;
40741: LD_ADDR_VAR 0 3
40745: PUSH
40746: LD_VAR 0 3
40750: PPUSH
40751: LD_INT 4
40753: PPUSH
40754: CALL_OW 12
40758: ST_TO_ADDR
// ComConstruct ( Tovarna , Chassis , ENGINE_COMBUSTION , CONTROL_COMPUTER , Weapon ) ;
40759: LD_VAR 0 1
40763: PPUSH
40764: LD_VAR 0 3
40768: PPUSH
40769: LD_INT 1
40771: PPUSH
40772: LD_INT 3
40774: PPUSH
40775: LD_VAR 0 4
40779: PPUSH
40780: CALL_OW 125
// end ;
40784: LD_VAR 0 2
40788: RET
// var MakroUtok ; var RegUtok ; export function Init_Makra_Am_Levy ; begin
40789: LD_INT 0
40791: PPUSH
// RegUtok = McRegistry ( Amik , [ [ MC_REG_AREA_TO_GUARD , Registry ] , MC_REG_IGNORE_FOG ] ) ;
40792: LD_ADDR_LOC 16
40796: PUSH
40797: LD_EXP 4
40801: PPUSH
40802: LD_INT 2
40804: PUSH
40805: LD_INT 39
40807: PUSH
40808: EMPTY
40809: LIST
40810: LIST
40811: PUSH
40812: LD_INT 7
40814: PUSH
40815: EMPTY
40816: LIST
40817: LIST
40818: PPUSH
40819: CALL_OW 399
40823: ST_TO_ADDR
// end ;
40824: LD_VAR 0 1
40828: RET
// var Probiha_McAttack ; every 0 0$3 trigger Am_Levy_Attack + 0 >= dif_amik_tanky_max and not Probiha_McAttack do
40829: LD_EXP 87
40833: PUSH
40834: LD_INT 0
40836: PLUS
40837: PUSH
40838: LD_EXP 36
40842: GREATEREQUAL
40843: PUSH
40844: LD_LOC 17
40848: NOT
40849: AND
40850: IFFALSE 40893
40852: GO 40854
40854: DISABLE
// begin MakroUtok = McAttack ( 10 , RegUtok , AM_LEVY_ATTACK , [ mc_murder ] ) ;
40855: LD_ADDR_LOC 15
40859: PUSH
40860: LD_INT 10
40862: PPUSH
40863: LD_LOC 16
40867: PPUSH
40868: LD_EXP 87
40872: PPUSH
40873: LD_INT 12
40875: PUSH
40876: EMPTY
40877: LIST
40878: PPUSH
40879: CALL_OW 402
40883: ST_TO_ADDR
// Probiha_McAttack = true ;
40884: LD_ADDR_LOC 17
40888: PUSH
40889: LD_INT 1
40891: ST_TO_ADDR
// enable ;
40892: ENABLE
// end ; end_of_file
40893: END
// every 0 0$2 trigger FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_type , unit_human ] ] ) + 0 < 5 and DepotNefungujeAmik ( Am_Depot_2 ) do
40894: LD_INT 95
40896: PUSH
40897: LD_INT 30
40899: PUSH
40900: EMPTY
40901: LIST
40902: LIST
40903: PUSH
40904: LD_INT 50
40906: PUSH
40907: EMPTY
40908: LIST
40909: PUSH
40910: LD_INT 22
40912: PUSH
40913: LD_EXP 4
40917: PUSH
40918: EMPTY
40919: LIST
40920: LIST
40921: PUSH
40922: LD_INT 21
40924: PUSH
40925: LD_INT 1
40927: PUSH
40928: EMPTY
40929: LIST
40930: LIST
40931: PUSH
40932: EMPTY
40933: LIST
40934: LIST
40935: LIST
40936: LIST
40937: PPUSH
40938: CALL_OW 69
40942: PUSH
40943: LD_INT 0
40945: PLUS
40946: PUSH
40947: LD_INT 5
40949: LESS
40950: PUSH
40951: LD_INT 130
40953: PPUSH
40954: CALL 40990 0 1
40958: AND
40959: IFFALSE 40989
40961: GO 40963
40963: DISABLE
// begin Wait ( 0 0$1.5 ) ;
40964: LD_INT 52
40966: PPUSH
40967: CALL_OW 67
// DialogBazaZnicena ( AmBaza2 ) ;
40971: LD_INT 30
40973: PPUSH
40974: CALL 27384 0 1
// enable ( 09 ) ;
40978: LD_INT 9
40980: ENABLE_MARKED
// PravaBazaZnicena = true ;
40981: LD_ADDR_EXP 79
40985: PUSH
40986: LD_INT 1
40988: ST_TO_ADDR
// end ;
40989: END
// export function DepotNefungujeAmik ( dep ) ; begin
40990: LD_INT 0
40992: PPUSH
// if GetSide ( dep ) <> Amik or IsPlaced ( dep ) = false then
40993: LD_VAR 0 1
40997: PPUSH
40998: CALL_OW 255
41002: PUSH
41003: LD_EXP 4
41007: NONEQUAL
41008: PUSH
41009: LD_VAR 0 1
41013: PPUSH
41014: CALL_OW 305
41018: PUSH
41019: LD_INT 0
41021: EQUAL
41022: OR
41023: IFFALSE 41035
// result = true else
41025: LD_ADDR_VAR 0 2
41029: PUSH
41030: LD_INT 1
41032: ST_TO_ADDR
41033: GO 41043
// result = false ;
41035: LD_ADDR_VAR 0 2
41039: PUSH
41040: LD_INT 0
41042: ST_TO_ADDR
// end ;
41043: LD_VAR 0 2
41047: RET
// every 0 0$1 do
41048: GO 41050
41050: DISABLE
// begin if IsOk ( Am_Depot_2 ) and GetSide ( Am_Depot_2 ) = Amik then
41051: LD_INT 130
41053: PPUSH
41054: CALL_OW 302
41058: PUSH
41059: LD_INT 130
41061: PPUSH
41062: CALL_OW 255
41066: PUSH
41067: LD_EXP 4
41071: EQUAL
41072: AND
41073: IFFALSE 41091
// SurovinyDoSkladu ( Am_Depot_2 , 200 , 500 , 10 ) ;
41075: LD_INT 130
41077: PPUSH
41078: LD_INT 200
41080: PPUSH
41081: LD_INT 500
41083: PPUSH
41084: LD_INT 10
41086: PPUSH
41087: CALL 5102 0 4
// if IsOk ( Am_Lab_2 ) and GetSide ( Am_Lab_2 ) = Amik and tick > 4 4$00 then
41091: LD_INT 144
41093: PPUSH
41094: CALL_OW 302
41098: PUSH
41099: LD_INT 144
41101: PPUSH
41102: CALL_OW 255
41106: PUSH
41107: LD_EXP 4
41111: EQUAL
41112: AND
41113: PUSH
41114: LD_OWVAR 1
41118: PUSH
41119: LD_INT 8400
41121: GREATER
41122: AND
41123: IFFALSE 41135
// Zkoumej ( 1 , Am_Lab_2 ) ;
41125: LD_INT 1
41127: PPUSH
41128: LD_INT 144
41130: PPUSH
41131: CALL 41270 0 2
// enable ;
41135: ENABLE
// end ;
41136: END
// export Am_Tech_list2 ; export function Init_Amik2 ; begin
41137: LD_INT 0
41139: PPUSH
// RemoveUnit ( Am_Ape_2 ) ;
41140: LD_INT 143
41142: PPUSH
41143: CALL_OW 64
// PlaceHumanInUnit ( Am_Ape_2 , Am_Depot_2 ) ;
41147: LD_INT 143
41149: PPUSH
41150: LD_INT 130
41152: PPUSH
41153: CALL_OW 52
// case difficulty of 1 :
41157: LD_OWVAR 67
41161: PUSH
41162: LD_INT 1
41164: DOUBLE
41165: EQUAL
41166: IFTRUE 41170
41168: GO 41188
41170: POP
// Am_Tech_list2 = [ tech_tech1 , tech_comp1 ] ; 2 :
41171: LD_ADDR_EXP 88
41175: PUSH
41176: LD_INT 48
41178: PUSH
41179: LD_INT 57
41181: PUSH
41182: EMPTY
41183: LIST
41184: LIST
41185: ST_TO_ADDR
41186: GO 41265
41188: LD_INT 2
41190: DOUBLE
41191: EQUAL
41192: IFTRUE 41196
41194: GO 41226
41196: POP
// Am_Tech_list2 = [ tech_tech1 , tech_comp1 , tech_tech2 , tech_tech3 , tech_comp2 ] ; 3 :
41197: LD_ADDR_EXP 88
41201: PUSH
41202: LD_INT 48
41204: PUSH
41205: LD_INT 57
41207: PUSH
41208: LD_INT 49
41210: PUSH
41211: LD_INT 50
41213: PUSH
41214: LD_INT 58
41216: PUSH
41217: EMPTY
41218: LIST
41219: LIST
41220: LIST
41221: LIST
41222: LIST
41223: ST_TO_ADDR
41224: GO 41265
41226: LD_INT 3
41228: DOUBLE
41229: EQUAL
41230: IFTRUE 41234
41232: GO 41264
41234: POP
// Am_Tech_list2 = [ tech_tech1 , tech_comp1 , tech_tech2 , tech_tech3 , tech_comp2 ] ; end ;
41235: LD_ADDR_EXP 88
41239: PUSH
41240: LD_INT 48
41242: PUSH
41243: LD_INT 57
41245: PUSH
41246: LD_INT 49
41248: PUSH
41249: LD_INT 50
41251: PUSH
41252: LD_INT 58
41254: PUSH
41255: EMPTY
41256: LIST
41257: LIST
41258: LIST
41259: LIST
41260: LIST
41261: ST_TO_ADDR
41262: GO 41265
41264: POP
// end ;
41265: LD_VAR 0 1
41269: RET
// function Zkoumej ( cislo_vyzkumu , laborator ) ; begin
41270: LD_INT 0
41272: PPUSH
// if cislo_vyzkumu = 1 and Am_Tech_list2 and not GetActResearch ( laborator ) then
41273: LD_VAR 0 1
41277: PUSH
41278: LD_INT 1
41280: EQUAL
41281: PUSH
41282: LD_EXP 88
41286: AND
41287: PUSH
41288: LD_VAR 0 2
41292: PPUSH
41293: CALL_OW 485
41297: NOT
41298: AND
41299: IFFALSE 41319
// ComResearch ( laborator , Am_Tech_list2 [ 1 ] ) ;
41301: LD_VAR 0 2
41305: PPUSH
41306: LD_EXP 88
41310: PUSH
41311: LD_INT 1
41313: ARRAY
41314: PPUSH
41315: CALL_OW 124
// end ;
41319: LD_VAR 0 3
41323: RET
// function AmiciFungujou ; begin
41324: LD_INT 0
41326: PPUSH
// if GetSide ( Am_Depot_2 ) <> Amik or GetSide ( Am_Fac_2 ) <> Amik or IsPlaced ( Am_Depot_2 ) = false or IsPlaced ( Am_Fac_2 ) = false or IsOk ( Am_Fac_2 ) = false or IsOk ( Am_Depot_2 ) = false then
41327: LD_INT 130
41329: PPUSH
41330: CALL_OW 255
41334: PUSH
41335: LD_EXP 4
41339: NONEQUAL
41340: PUSH
41341: LD_INT 145
41343: PPUSH
41344: CALL_OW 255
41348: PUSH
41349: LD_EXP 4
41353: NONEQUAL
41354: OR
41355: PUSH
41356: LD_INT 130
41358: PPUSH
41359: CALL_OW 305
41363: PUSH
41364: LD_INT 0
41366: EQUAL
41367: OR
41368: PUSH
41369: LD_INT 145
41371: PPUSH
41372: CALL_OW 305
41376: PUSH
41377: LD_INT 0
41379: EQUAL
41380: OR
41381: PUSH
41382: LD_INT 145
41384: PPUSH
41385: CALL_OW 302
41389: PUSH
41390: LD_INT 0
41392: EQUAL
41393: OR
41394: PUSH
41395: LD_INT 130
41397: PPUSH
41398: CALL_OW 302
41402: PUSH
41403: LD_INT 0
41405: EQUAL
41406: OR
41407: IFFALSE 41419
// result = false else
41409: LD_ADDR_VAR 0 1
41413: PUSH
41414: LD_INT 0
41416: ST_TO_ADDR
41417: GO 41427
// result = true ;
41419: LD_ADDR_VAR 0 1
41423: PUSH
41424: LD_INT 1
41426: ST_TO_ADDR
// end ;
41427: LD_VAR 0 1
41431: RET
// every 0 0$1 trigger Hrajeme do var Inzenyri_volni , Zdravotnici_volni , Vojaci_volni , Mechanici_volni , Vozidla ; var un , b , v , i , veh , bedny , bedny2 , bud , volne_bunkry , target ;
41432: LD_EXP 20
41436: IFFALSE 43967
41438: GO 41440
41440: DISABLE
41441: LD_INT 0
41443: PPUSH
41444: PPUSH
41445: PPUSH
41446: PPUSH
41447: PPUSH
41448: PPUSH
41449: PPUSH
41450: PPUSH
41451: PPUSH
41452: PPUSH
41453: PPUSH
41454: PPUSH
41455: PPUSH
41456: PPUSH
41457: PPUSH
// begin if FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_placed ] , [ f_not , [ f_constructed ] ] , [ f_side , Amik ] , [ f_ok ] , [ f_empty ] , [ f_or , [ f_btype , b_breastwork ] , [ f_btype , b_bunker ] ] ] ) then
41458: LD_INT 95
41460: PUSH
41461: LD_INT 30
41463: PUSH
41464: EMPTY
41465: LIST
41466: LIST
41467: PUSH
41468: LD_INT 52
41470: PUSH
41471: EMPTY
41472: LIST
41473: PUSH
41474: LD_INT 3
41476: PUSH
41477: LD_INT 57
41479: PUSH
41480: EMPTY
41481: LIST
41482: PUSH
41483: EMPTY
41484: LIST
41485: LIST
41486: PUSH
41487: LD_INT 22
41489: PUSH
41490: LD_EXP 4
41494: PUSH
41495: EMPTY
41496: LIST
41497: LIST
41498: PUSH
41499: LD_INT 50
41501: PUSH
41502: EMPTY
41503: LIST
41504: PUSH
41505: LD_INT 58
41507: PUSH
41508: EMPTY
41509: LIST
41510: PUSH
41511: LD_INT 2
41513: PUSH
41514: LD_INT 30
41516: PUSH
41517: LD_INT 31
41519: PUSH
41520: EMPTY
41521: LIST
41522: LIST
41523: PUSH
41524: LD_INT 30
41526: PUSH
41527: LD_INT 32
41529: PUSH
41530: EMPTY
41531: LIST
41532: LIST
41533: PUSH
41534: EMPTY
41535: LIST
41536: LIST
41537: LIST
41538: PUSH
41539: EMPTY
41540: LIST
41541: LIST
41542: LIST
41543: LIST
41544: LIST
41545: LIST
41546: LIST
41547: PPUSH
41548: CALL_OW 69
41552: IFFALSE 41656
// begin volne_bunkry = FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_placed ] , [ f_not , [ f_constructed ] ] , [ f_ok ] , [ f_side , Amik ] , [ f_empty ] , [ f_or , [ f_btype , b_breastwork ] , [ f_btype , b_bunker ] ] ] ) ;
41554: LD_ADDR_VAR 0 14
41558: PUSH
41559: LD_INT 95
41561: PUSH
41562: LD_INT 30
41564: PUSH
41565: EMPTY
41566: LIST
41567: LIST
41568: PUSH
41569: LD_INT 52
41571: PUSH
41572: EMPTY
41573: LIST
41574: PUSH
41575: LD_INT 3
41577: PUSH
41578: LD_INT 57
41580: PUSH
41581: EMPTY
41582: LIST
41583: PUSH
41584: EMPTY
41585: LIST
41586: LIST
41587: PUSH
41588: LD_INT 50
41590: PUSH
41591: EMPTY
41592: LIST
41593: PUSH
41594: LD_INT 22
41596: PUSH
41597: LD_EXP 4
41601: PUSH
41602: EMPTY
41603: LIST
41604: LIST
41605: PUSH
41606: LD_INT 58
41608: PUSH
41609: EMPTY
41610: LIST
41611: PUSH
41612: LD_INT 2
41614: PUSH
41615: LD_INT 30
41617: PUSH
41618: LD_INT 31
41620: PUSH
41621: EMPTY
41622: LIST
41623: LIST
41624: PUSH
41625: LD_INT 30
41627: PUSH
41628: LD_INT 32
41630: PUSH
41631: EMPTY
41632: LIST
41633: LIST
41634: PUSH
41635: EMPTY
41636: LIST
41637: LIST
41638: LIST
41639: PUSH
41640: EMPTY
41641: LIST
41642: LIST
41643: LIST
41644: LIST
41645: LIST
41646: LIST
41647: LIST
41648: PPUSH
41649: CALL_OW 69
41653: ST_TO_ADDR
// end else
41654: GO 41664
// volne_bunkry = 0 ;
41656: LD_ADDR_VAR 0 14
41660: PUSH
41661: LD_INT 0
41663: ST_TO_ADDR
// if FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_engineer ] ] ) then
41664: LD_INT 95
41666: PUSH
41667: LD_INT 30
41669: PUSH
41670: EMPTY
41671: LIST
41672: LIST
41673: PUSH
41674: LD_INT 50
41676: PUSH
41677: EMPTY
41678: LIST
41679: PUSH
41680: LD_INT 22
41682: PUSH
41683: LD_EXP 4
41687: PUSH
41688: EMPTY
41689: LIST
41690: LIST
41691: PUSH
41692: LD_INT 25
41694: PUSH
41695: LD_INT 2
41697: PUSH
41698: EMPTY
41699: LIST
41700: LIST
41701: PUSH
41702: EMPTY
41703: LIST
41704: LIST
41705: LIST
41706: LIST
41707: PPUSH
41708: CALL_OW 69
41712: IFFALSE 42403
// begin Inzenyri_volni = FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_engineer ] ] ) ;
41714: LD_ADDR_VAR 0 1
41718: PUSH
41719: LD_INT 95
41721: PUSH
41722: LD_INT 30
41724: PUSH
41725: EMPTY
41726: LIST
41727: LIST
41728: PUSH
41729: LD_INT 50
41731: PUSH
41732: EMPTY
41733: LIST
41734: PUSH
41735: LD_INT 22
41737: PUSH
41738: LD_EXP 4
41742: PUSH
41743: EMPTY
41744: LIST
41745: LIST
41746: PUSH
41747: LD_INT 25
41749: PUSH
41750: LD_INT 2
41752: PUSH
41753: EMPTY
41754: LIST
41755: LIST
41756: PUSH
41757: EMPTY
41758: LIST
41759: LIST
41760: LIST
41761: LIST
41762: PPUSH
41763: CALL_OW 69
41767: ST_TO_ADDR
// for un in Inzenyri_volni do
41768: LD_ADDR_VAR 0 6
41772: PUSH
41773: LD_VAR 0 1
41777: PUSH
41778: FOR_IN
41779: IFFALSE 42401
// begin if GetLives ( un ) < 670 then
41781: LD_VAR 0 6
41785: PPUSH
41786: CALL_OW 256
41790: PUSH
41791: LD_INT 670
41793: LESS
41794: IFFALSE 41845
// begin VyjdiVen ( un ) ;
41796: LD_VAR 0 6
41800: PPUSH
41801: CALL 2645 0 1
// if not IsInArea ( un , PravaLeceni ) then
41805: LD_VAR 0 6
41809: PPUSH
41810: LD_INT 47
41812: PPUSH
41813: CALL_OW 308
41817: NOT
41818: IFFALSE 41834
// ComMoveToArea ( un , PravaLeceni ) else
41820: LD_VAR 0 6
41824: PPUSH
41825: LD_INT 47
41827: PPUSH
41828: CALL_OW 113
41832: GO 41843
// ComHold ( un ) ;
41834: LD_VAR 0 6
41838: PPUSH
41839: CALL_OW 140
// end else
41843: GO 42399
// if GetLives ( un ) < 1000 and IsInArea ( un , PravaLeceni ) then
41845: LD_VAR 0 6
41849: PPUSH
41850: CALL_OW 256
41854: PUSH
41855: LD_INT 1000
41857: LESS
41858: PUSH
41859: LD_VAR 0 6
41863: PPUSH
41864: LD_INT 47
41866: PPUSH
41867: CALL_OW 308
41871: AND
41872: IFFALSE 41876
// else
41874: GO 42399
// if FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) then
41876: LD_INT 95
41878: PUSH
41879: LD_INT 30
41881: PUSH
41882: EMPTY
41883: LIST
41884: LIST
41885: PUSH
41886: LD_INT 52
41888: PUSH
41889: EMPTY
41890: LIST
41891: PUSH
41892: LD_INT 22
41894: PUSH
41895: LD_EXP 4
41899: PUSH
41900: EMPTY
41901: LIST
41902: LIST
41903: PUSH
41904: LD_INT 21
41906: PUSH
41907: LD_INT 3
41909: PUSH
41910: EMPTY
41911: LIST
41912: LIST
41913: PUSH
41914: LD_INT 3
41916: PUSH
41917: LD_INT 24
41919: PUSH
41920: LD_INT 250
41922: PUSH
41923: EMPTY
41924: LIST
41925: LIST
41926: PUSH
41927: EMPTY
41928: LIST
41929: LIST
41930: PUSH
41931: EMPTY
41932: LIST
41933: LIST
41934: LIST
41935: LIST
41936: LIST
41937: PPUSH
41938: CALL_OW 69
41942: IFFALSE 42045
// begin b = FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) ;
41944: LD_ADDR_VAR 0 7
41948: PUSH
41949: LD_INT 95
41951: PUSH
41952: LD_INT 30
41954: PUSH
41955: EMPTY
41956: LIST
41957: LIST
41958: PUSH
41959: LD_INT 52
41961: PUSH
41962: EMPTY
41963: LIST
41964: PUSH
41965: LD_INT 22
41967: PUSH
41968: LD_EXP 4
41972: PUSH
41973: EMPTY
41974: LIST
41975: LIST
41976: PUSH
41977: LD_INT 21
41979: PUSH
41980: LD_INT 3
41982: PUSH
41983: EMPTY
41984: LIST
41985: LIST
41986: PUSH
41987: LD_INT 3
41989: PUSH
41990: LD_INT 24
41992: PUSH
41993: LD_INT 250
41995: PUSH
41996: EMPTY
41997: LIST
41998: LIST
41999: PUSH
42000: EMPTY
42001: LIST
42002: LIST
42003: PUSH
42004: EMPTY
42005: LIST
42006: LIST
42007: LIST
42008: LIST
42009: LIST
42010: PPUSH
42011: CALL_OW 69
42015: ST_TO_ADDR
// VyjdiVen ( un ) ;
42016: LD_VAR 0 6
42020: PPUSH
42021: CALL 2645 0 1
// ComRepairBuilding ( un , b [ 1 ] ) ;
42025: LD_VAR 0 6
42029: PPUSH
42030: LD_VAR 0 7
42034: PUSH
42035: LD_INT 1
42037: ARRAY
42038: PPUSH
42039: CALL_OW 130
// end else
42043: GO 42399
// if FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
42045: LD_INT 95
42047: PUSH
42048: LD_INT 30
42050: PUSH
42051: EMPTY
42052: LIST
42053: LIST
42054: PUSH
42055: LD_INT 52
42057: PUSH
42058: EMPTY
42059: LIST
42060: PUSH
42061: LD_INT 22
42063: PUSH
42064: LD_EXP 4
42068: PUSH
42069: EMPTY
42070: LIST
42071: LIST
42072: PUSH
42073: LD_INT 21
42075: PUSH
42076: LD_INT 3
42078: PUSH
42079: EMPTY
42080: LIST
42081: LIST
42082: PUSH
42083: LD_INT 3
42085: PUSH
42086: LD_INT 24
42088: PUSH
42089: LD_INT 1000
42091: PUSH
42092: EMPTY
42093: LIST
42094: LIST
42095: PUSH
42096: EMPTY
42097: LIST
42098: LIST
42099: PUSH
42100: EMPTY
42101: LIST
42102: LIST
42103: LIST
42104: LIST
42105: LIST
42106: PPUSH
42107: CALL_OW 69
42111: IFFALSE 42214
// begin b = FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
42113: LD_ADDR_VAR 0 7
42117: PUSH
42118: LD_INT 95
42120: PUSH
42121: LD_INT 30
42123: PUSH
42124: EMPTY
42125: LIST
42126: LIST
42127: PUSH
42128: LD_INT 52
42130: PUSH
42131: EMPTY
42132: LIST
42133: PUSH
42134: LD_INT 22
42136: PUSH
42137: LD_EXP 4
42141: PUSH
42142: EMPTY
42143: LIST
42144: LIST
42145: PUSH
42146: LD_INT 21
42148: PUSH
42149: LD_INT 3
42151: PUSH
42152: EMPTY
42153: LIST
42154: LIST
42155: PUSH
42156: LD_INT 3
42158: PUSH
42159: LD_INT 24
42161: PUSH
42162: LD_INT 1000
42164: PUSH
42165: EMPTY
42166: LIST
42167: LIST
42168: PUSH
42169: EMPTY
42170: LIST
42171: LIST
42172: PUSH
42173: EMPTY
42174: LIST
42175: LIST
42176: LIST
42177: LIST
42178: LIST
42179: PPUSH
42180: CALL_OW 69
42184: ST_TO_ADDR
// VyjdiVen ( un ) ;
42185: LD_VAR 0 6
42189: PPUSH
42190: CALL 2645 0 1
// ComRepairBuilding ( un , b [ 1 ] ) ;
42194: LD_VAR 0 6
42198: PPUSH
42199: LD_VAR 0 7
42203: PUSH
42204: LD_INT 1
42206: ARRAY
42207: PPUSH
42208: CALL_OW 130
// end else
42212: GO 42399
// if GetListOfCratesInArea ( AmBaza2 ) then
42214: LD_INT 30
42216: PPUSH
42217: CALL_OW 435
42221: IFFALSE 42274
// begin bedny = GetListOfCratesInArea ( AmBaza2 ) ;
42223: LD_ADDR_VAR 0 11
42227: PUSH
42228: LD_INT 30
42230: PPUSH
42231: CALL_OW 435
42235: ST_TO_ADDR
// VyjdiVen ( un ) ;
42236: LD_VAR 0 6
42240: PPUSH
42241: CALL 2645 0 1
// ComCollect ( un , bedny [ 1 ] , bedny [ 2 ] ) ;
42245: LD_VAR 0 6
42249: PPUSH
42250: LD_VAR 0 11
42254: PUSH
42255: LD_INT 1
42257: ARRAY
42258: PPUSH
42259: LD_VAR 0 11
42263: PUSH
42264: LD_INT 2
42266: ARRAY
42267: PPUSH
42268: CALL_OW 117
// end else
42272: GO 42399
// if not GetLives ( un ) = 1000 then
42274: LD_VAR 0 6
42278: PPUSH
42279: CALL_OW 256
42283: PUSH
42284: LD_INT 1000
42286: EQUAL
42287: NOT
42288: IFFALSE 42339
// begin VyjdiVen ( un ) ;
42290: LD_VAR 0 6
42294: PPUSH
42295: CALL 2645 0 1
// if not IsInArea ( un , PravaLeceni ) then
42299: LD_VAR 0 6
42303: PPUSH
42304: LD_INT 47
42306: PPUSH
42307: CALL_OW 308
42311: NOT
42312: IFFALSE 42328
// ComMoveToArea ( un , PravaLeceni ) else
42314: LD_VAR 0 6
42318: PPUSH
42319: LD_INT 47
42321: PPUSH
42322: CALL_OW 113
42326: GO 42337
// ComHold ( un ) ;
42328: LD_VAR 0 6
42332: PPUSH
42333: CALL_OW 140
// end else
42337: GO 42399
// if GetLives ( un ) = 1000 then
42339: LD_VAR 0 6
42343: PPUSH
42344: CALL_OW 256
42348: PUSH
42349: LD_INT 1000
42351: EQUAL
42352: IFFALSE 42399
// begin ComFree ( un ) ;
42354: LD_VAR 0 6
42358: PPUSH
42359: CALL_OW 139
// if IsOk ( Am_Depot_2 ) and GetSide ( Am_Depot_2 ) = Amik then
42363: LD_INT 130
42365: PPUSH
42366: CALL_OW 302
42370: PUSH
42371: LD_INT 130
42373: PPUSH
42374: CALL_OW 255
42378: PUSH
42379: LD_EXP 4
42383: EQUAL
42384: AND
42385: IFFALSE 42399
// ComEnterUnit ( un , Am_Depot_2 ) ;
42387: LD_VAR 0 6
42391: PPUSH
42392: LD_INT 130
42394: PPUSH
42395: CALL_OW 120
// end ; end ;
42399: GO 41778
42401: POP
42402: POP
// end ; if FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_scientistic ] ] ) then
42403: LD_INT 95
42405: PUSH
42406: LD_INT 30
42408: PUSH
42409: EMPTY
42410: LIST
42411: LIST
42412: PUSH
42413: LD_INT 50
42415: PUSH
42416: EMPTY
42417: LIST
42418: PUSH
42419: LD_INT 22
42421: PUSH
42422: LD_EXP 4
42426: PUSH
42427: EMPTY
42428: LIST
42429: LIST
42430: PUSH
42431: LD_INT 25
42433: PUSH
42434: LD_INT 4
42436: PUSH
42437: EMPTY
42438: LIST
42439: LIST
42440: PUSH
42441: EMPTY
42442: LIST
42443: LIST
42444: LIST
42445: LIST
42446: PPUSH
42447: CALL_OW 69
42451: IFFALSE 43168
// begin Zdravotnici_volni = FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_scientistic ] ] ) ;
42453: LD_ADDR_VAR 0 2
42457: PUSH
42458: LD_INT 95
42460: PUSH
42461: LD_INT 30
42463: PUSH
42464: EMPTY
42465: LIST
42466: LIST
42467: PUSH
42468: LD_INT 50
42470: PUSH
42471: EMPTY
42472: LIST
42473: PUSH
42474: LD_INT 22
42476: PUSH
42477: LD_EXP 4
42481: PUSH
42482: EMPTY
42483: LIST
42484: LIST
42485: PUSH
42486: LD_INT 25
42488: PUSH
42489: LD_INT 4
42491: PUSH
42492: EMPTY
42493: LIST
42494: LIST
42495: PUSH
42496: EMPTY
42497: LIST
42498: LIST
42499: LIST
42500: LIST
42501: PPUSH
42502: CALL_OW 69
42506: ST_TO_ADDR
// for un in Zdravotnici_volni do
42507: LD_ADDR_VAR 0 6
42511: PUSH
42512: LD_VAR 0 2
42516: PUSH
42517: FOR_IN
42518: IFFALSE 43166
// begin if GetLives ( un ) < 670 then
42520: LD_VAR 0 6
42524: PPUSH
42525: CALL_OW 256
42529: PUSH
42530: LD_INT 670
42532: LESS
42533: IFFALSE 42726
// begin VyjdiVen ( un ) ;
42535: LD_VAR 0 6
42539: PPUSH
42540: CALL 2645 0 1
// if not IsInArea ( un , PravaLeceni ) then
42544: LD_VAR 0 6
42548: PPUSH
42549: LD_INT 47
42551: PPUSH
42552: CALL_OW 308
42556: NOT
42557: IFFALSE 42573
// ComMoveToArea ( un , PravaLeceni ) else
42559: LD_VAR 0 6
42563: PPUSH
42564: LD_INT 47
42566: PPUSH
42567: CALL_OW 113
42571: GO 42724
// if FilterUnitsInArea ( PravaLeceni , [ [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) + 0 > 1 then
42573: LD_INT 47
42575: PPUSH
42576: LD_INT 52
42578: PUSH
42579: EMPTY
42580: LIST
42581: PUSH
42582: LD_INT 22
42584: PUSH
42585: LD_EXP 4
42589: PUSH
42590: EMPTY
42591: LIST
42592: LIST
42593: PUSH
42594: LD_INT 21
42596: PUSH
42597: LD_INT 1
42599: PUSH
42600: EMPTY
42601: LIST
42602: LIST
42603: PUSH
42604: LD_INT 3
42606: PUSH
42607: LD_INT 24
42609: PUSH
42610: LD_INT 1000
42612: PUSH
42613: EMPTY
42614: LIST
42615: LIST
42616: PUSH
42617: EMPTY
42618: LIST
42619: LIST
42620: PUSH
42621: EMPTY
42622: LIST
42623: LIST
42624: LIST
42625: LIST
42626: PPUSH
42627: CALL_OW 70
42631: PUSH
42632: LD_INT 0
42634: PLUS
42635: PUSH
42636: LD_INT 1
42638: GREATER
42639: IFFALSE 42715
// ComHeal ( un , FilterUnitsInArea ( PravaLeceni , [ [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) [ 1 ] ) else
42641: LD_VAR 0 6
42645: PPUSH
42646: LD_INT 47
42648: PPUSH
42649: LD_INT 52
42651: PUSH
42652: EMPTY
42653: LIST
42654: PUSH
42655: LD_INT 22
42657: PUSH
42658: LD_EXP 4
42662: PUSH
42663: EMPTY
42664: LIST
42665: LIST
42666: PUSH
42667: LD_INT 21
42669: PUSH
42670: LD_INT 1
42672: PUSH
42673: EMPTY
42674: LIST
42675: LIST
42676: PUSH
42677: LD_INT 3
42679: PUSH
42680: LD_INT 24
42682: PUSH
42683: LD_INT 1000
42685: PUSH
42686: EMPTY
42687: LIST
42688: LIST
42689: PUSH
42690: EMPTY
42691: LIST
42692: LIST
42693: PUSH
42694: EMPTY
42695: LIST
42696: LIST
42697: LIST
42698: LIST
42699: PPUSH
42700: CALL_OW 70
42704: PUSH
42705: LD_INT 1
42707: ARRAY
42708: PPUSH
42709: CALL_OW 128
42713: GO 42724
// ComHold ( un ) ;
42715: LD_VAR 0 6
42719: PPUSH
42720: CALL_OW 140
// end else
42724: GO 43164
// if FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 250 ] ] ] ) then
42726: LD_INT 95
42728: PUSH
42729: LD_INT 30
42731: PUSH
42732: EMPTY
42733: LIST
42734: LIST
42735: PUSH
42736: LD_INT 52
42738: PUSH
42739: EMPTY
42740: LIST
42741: PUSH
42742: LD_INT 22
42744: PUSH
42745: LD_EXP 4
42749: PUSH
42750: EMPTY
42751: LIST
42752: LIST
42753: PUSH
42754: LD_INT 21
42756: PUSH
42757: LD_INT 1
42759: PUSH
42760: EMPTY
42761: LIST
42762: LIST
42763: PUSH
42764: LD_INT 3
42766: PUSH
42767: LD_INT 24
42769: PUSH
42770: LD_INT 250
42772: PUSH
42773: EMPTY
42774: LIST
42775: LIST
42776: PUSH
42777: EMPTY
42778: LIST
42779: LIST
42780: PUSH
42781: EMPTY
42782: LIST
42783: LIST
42784: LIST
42785: LIST
42786: LIST
42787: PPUSH
42788: CALL_OW 69
42792: IFFALSE 42895
// begin i = FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 250 ] ] ] ) [ 1 ] ;
42794: LD_ADDR_VAR 0 9
42798: PUSH
42799: LD_INT 95
42801: PUSH
42802: LD_INT 30
42804: PUSH
42805: EMPTY
42806: LIST
42807: LIST
42808: PUSH
42809: LD_INT 52
42811: PUSH
42812: EMPTY
42813: LIST
42814: PUSH
42815: LD_INT 22
42817: PUSH
42818: LD_EXP 4
42822: PUSH
42823: EMPTY
42824: LIST
42825: LIST
42826: PUSH
42827: LD_INT 21
42829: PUSH
42830: LD_INT 1
42832: PUSH
42833: EMPTY
42834: LIST
42835: LIST
42836: PUSH
42837: LD_INT 3
42839: PUSH
42840: LD_INT 24
42842: PUSH
42843: LD_INT 250
42845: PUSH
42846: EMPTY
42847: LIST
42848: LIST
42849: PUSH
42850: EMPTY
42851: LIST
42852: LIST
42853: PUSH
42854: EMPTY
42855: LIST
42856: LIST
42857: LIST
42858: LIST
42859: LIST
42860: PPUSH
42861: CALL_OW 69
42865: PUSH
42866: LD_INT 1
42868: ARRAY
42869: ST_TO_ADDR
// VyjdiVen ( un ) ;
42870: LD_VAR 0 6
42874: PPUSH
42875: CALL 2645 0 1
// ComHeal ( un , i ) ;
42879: LD_VAR 0 6
42883: PPUSH
42884: LD_VAR 0 9
42888: PPUSH
42889: CALL_OW 128
// end else
42893: GO 43164
// if FilterUnitsInArea ( PravaLeceni , [ [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
42895: LD_INT 47
42897: PPUSH
42898: LD_INT 52
42900: PUSH
42901: EMPTY
42902: LIST
42903: PUSH
42904: LD_INT 22
42906: PUSH
42907: LD_EXP 4
42911: PUSH
42912: EMPTY
42913: LIST
42914: LIST
42915: PUSH
42916: LD_INT 21
42918: PUSH
42919: LD_INT 1
42921: PUSH
42922: EMPTY
42923: LIST
42924: LIST
42925: PUSH
42926: LD_INT 3
42928: PUSH
42929: LD_INT 24
42931: PUSH
42932: LD_INT 1000
42934: PUSH
42935: EMPTY
42936: LIST
42937: LIST
42938: PUSH
42939: EMPTY
42940: LIST
42941: LIST
42942: PUSH
42943: EMPTY
42944: LIST
42945: LIST
42946: LIST
42947: LIST
42948: PPUSH
42949: CALL_OW 70
42953: IFFALSE 43048
// begin i = FilterUnitsInArea ( PravaLeceni2 , [ [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_human ] , [ f_not , [ f_lives , 1000 ] ] ] ) [ 1 ] ;
42955: LD_ADDR_VAR 0 9
42959: PUSH
42960: LD_INT 48
42962: PPUSH
42963: LD_INT 52
42965: PUSH
42966: EMPTY
42967: LIST
42968: PUSH
42969: LD_INT 22
42971: PUSH
42972: LD_EXP 4
42976: PUSH
42977: EMPTY
42978: LIST
42979: LIST
42980: PUSH
42981: LD_INT 21
42983: PUSH
42984: LD_INT 1
42986: PUSH
42987: EMPTY
42988: LIST
42989: LIST
42990: PUSH
42991: LD_INT 3
42993: PUSH
42994: LD_INT 24
42996: PUSH
42997: LD_INT 1000
42999: PUSH
43000: EMPTY
43001: LIST
43002: LIST
43003: PUSH
43004: EMPTY
43005: LIST
43006: LIST
43007: PUSH
43008: EMPTY
43009: LIST
43010: LIST
43011: LIST
43012: LIST
43013: PPUSH
43014: CALL_OW 70
43018: PUSH
43019: LD_INT 1
43021: ARRAY
43022: ST_TO_ADDR
// VyjdiVen ( un ) ;
43023: LD_VAR 0 6
43027: PPUSH
43028: CALL 2645 0 1
// ComHeal ( un , i ) ;
43032: LD_VAR 0 6
43036: PPUSH
43037: LD_VAR 0 9
43041: PPUSH
43042: CALL_OW 128
// end else
43046: GO 43164
// if not GetLives ( un ) = 1000 then
43048: LD_VAR 0 6
43052: PPUSH
43053: CALL_OW 256
43057: PUSH
43058: LD_INT 1000
43060: EQUAL
43061: NOT
43062: IFFALSE 43113
// begin VyjdiVen ( un ) ;
43064: LD_VAR 0 6
43068: PPUSH
43069: CALL 2645 0 1
// if not IsInArea ( un , PravaLeceni ) then
43073: LD_VAR 0 6
43077: PPUSH
43078: LD_INT 47
43080: PPUSH
43081: CALL_OW 308
43085: NOT
43086: IFFALSE 43102
// ComMoveToArea ( un , PravaLeceni ) else
43088: LD_VAR 0 6
43092: PPUSH
43093: LD_INT 47
43095: PPUSH
43096: CALL_OW 113
43100: GO 43111
// ComHold ( un ) ;
43102: LD_VAR 0 6
43106: PPUSH
43107: CALL_OW 140
// end else
43111: GO 43164
// if GetLives ( un ) = 1000 then
43113: LD_VAR 0 6
43117: PPUSH
43118: CALL_OW 256
43122: PUSH
43123: LD_INT 1000
43125: EQUAL
43126: IFFALSE 43164
// begin if IsOk ( Am_Lab_2 ) and GetSide ( Am_Lab_2 ) = Amik then
43128: LD_INT 144
43130: PPUSH
43131: CALL_OW 302
43135: PUSH
43136: LD_INT 144
43138: PPUSH
43139: CALL_OW 255
43143: PUSH
43144: LD_EXP 4
43148: EQUAL
43149: AND
43150: IFFALSE 43164
// ComEnterUnit ( un , Am_Lab_2 ) ;
43152: LD_VAR 0 6
43156: PPUSH
43157: LD_INT 144
43159: PPUSH
43160: CALL_OW 120
// end ; end ;
43164: GO 42517
43166: POP
43167: POP
// end ; if FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_or , [ f_class , class_soldier ] ] ] ) then
43168: LD_INT 95
43170: PUSH
43171: LD_INT 30
43173: PUSH
43174: EMPTY
43175: LIST
43176: LIST
43177: PUSH
43178: LD_INT 50
43180: PUSH
43181: EMPTY
43182: LIST
43183: PUSH
43184: LD_INT 22
43186: PUSH
43187: LD_EXP 4
43191: PUSH
43192: EMPTY
43193: LIST
43194: LIST
43195: PUSH
43196: LD_INT 2
43198: PUSH
43199: LD_INT 25
43201: PUSH
43202: LD_INT 1
43204: PUSH
43205: EMPTY
43206: LIST
43207: LIST
43208: PUSH
43209: EMPTY
43210: LIST
43211: LIST
43212: PUSH
43213: EMPTY
43214: LIST
43215: LIST
43216: LIST
43217: LIST
43218: PPUSH
43219: CALL_OW 69
43223: IFFALSE 43549
// begin Vojaci_volni = FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_or , [ f_class , class_soldier ] ] ] ) ;
43225: LD_ADDR_VAR 0 3
43229: PUSH
43230: LD_INT 95
43232: PUSH
43233: LD_INT 30
43235: PUSH
43236: EMPTY
43237: LIST
43238: LIST
43239: PUSH
43240: LD_INT 50
43242: PUSH
43243: EMPTY
43244: LIST
43245: PUSH
43246: LD_INT 22
43248: PUSH
43249: LD_EXP 4
43253: PUSH
43254: EMPTY
43255: LIST
43256: LIST
43257: PUSH
43258: LD_INT 2
43260: PUSH
43261: LD_INT 25
43263: PUSH
43264: LD_INT 1
43266: PUSH
43267: EMPTY
43268: LIST
43269: LIST
43270: PUSH
43271: EMPTY
43272: LIST
43273: LIST
43274: PUSH
43275: EMPTY
43276: LIST
43277: LIST
43278: LIST
43279: LIST
43280: PPUSH
43281: CALL_OW 69
43285: ST_TO_ADDR
// for un in Vojaci_volni do
43286: LD_ADDR_VAR 0 6
43290: PUSH
43291: LD_VAR 0 3
43295: PUSH
43296: FOR_IN
43297: IFFALSE 43547
// begin begin if volne_bunkry and IsOutside ( un ) then
43299: LD_VAR 0 14
43303: PUSH
43304: LD_VAR 0 6
43308: PPUSH
43309: CALL 2607 0 1
43313: AND
43314: IFFALSE 43336
// ComEnterUnit ( un , volne_bunkry [ 1 ] ) else
43316: LD_VAR 0 6
43320: PPUSH
43321: LD_VAR 0 14
43325: PUSH
43326: LD_INT 1
43328: ARRAY
43329: PPUSH
43330: CALL_OW 120
43334: GO 43545
// if volne_bunkry and IsPlaced ( Am_Zbroj_3 ) and UnitsInside ( Am_Zbroj_3 ) and not FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_lives , 1000 ] , [ f_side , Amik ] , [ f_class , class_soldier ] , [ f_outside ] ] ) then
43336: LD_VAR 0 14
43340: PUSH
43341: LD_INT 146
43343: PPUSH
43344: CALL_OW 305
43348: AND
43349: PUSH
43350: LD_INT 146
43352: PPUSH
43353: CALL_OW 313
43357: AND
43358: PUSH
43359: LD_INT 95
43361: PUSH
43362: LD_INT 30
43364: PUSH
43365: EMPTY
43366: LIST
43367: LIST
43368: PUSH
43369: LD_INT 24
43371: PUSH
43372: LD_INT 1000
43374: PUSH
43375: EMPTY
43376: LIST
43377: LIST
43378: PUSH
43379: LD_INT 22
43381: PUSH
43382: LD_EXP 4
43386: PUSH
43387: EMPTY
43388: LIST
43389: LIST
43390: PUSH
43391: LD_INT 25
43393: PUSH
43394: LD_INT 1
43396: PUSH
43397: EMPTY
43398: LIST
43399: LIST
43400: PUSH
43401: LD_INT 56
43403: PUSH
43404: EMPTY
43405: LIST
43406: PUSH
43407: EMPTY
43408: LIST
43409: LIST
43410: LIST
43411: LIST
43412: LIST
43413: PPUSH
43414: CALL_OW 69
43418: NOT
43419: AND
43420: IFFALSE 43476
// begin if un in UnitsInside ( Am_Zbroj_3 ) then
43422: LD_VAR 0 6
43426: PUSH
43427: LD_INT 146
43429: PPUSH
43430: CALL_OW 313
43434: IN
43435: IFFALSE 43474
// begin b = volne_bunkry [ 1 ] ;
43437: LD_ADDR_VAR 0 7
43441: PUSH
43442: LD_VAR 0 14
43446: PUSH
43447: LD_INT 1
43449: ARRAY
43450: ST_TO_ADDR
// VyjdiVen ( un ) ;
43451: LD_VAR 0 6
43455: PPUSH
43456: CALL 2645 0 1
// ComEnterUnit ( un , b ) ;
43460: LD_VAR 0 6
43464: PPUSH
43465: LD_VAR 0 7
43469: PPUSH
43470: CALL_OW 120
// end ; end else
43474: GO 43545
// if IsPlaced ( Am_Zbroj_3 ) and IsOk ( Am_Zbroj_3 ) and GetSide ( Am_Zbroj_3 ) = Amik and IsOutside ( un ) and UnitsInside ( Am_Zbroj_3 ) < 6 then
43476: LD_INT 146
43478: PPUSH
43479: CALL_OW 305
43483: PUSH
43484: LD_INT 146
43486: PPUSH
43487: CALL_OW 302
43491: AND
43492: PUSH
43493: LD_INT 146
43495: PPUSH
43496: CALL_OW 255
43500: PUSH
43501: LD_EXP 4
43505: EQUAL
43506: AND
43507: PUSH
43508: LD_VAR 0 6
43512: PPUSH
43513: CALL 2607 0 1
43517: AND
43518: PUSH
43519: LD_INT 146
43521: PPUSH
43522: CALL_OW 313
43526: PUSH
43527: LD_INT 6
43529: LESS
43530: AND
43531: IFFALSE 43545
// ComEnterUnit ( un , Am_Zbroj_3 ) ;
43533: LD_VAR 0 6
43537: PPUSH
43538: LD_INT 146
43540: PPUSH
43541: CALL_OW 120
// end ; end ;
43545: GO 43296
43547: POP
43548: POP
// end ; if FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_mechanic ] ] ) then
43549: LD_INT 95
43551: PUSH
43552: LD_INT 30
43554: PUSH
43555: EMPTY
43556: LIST
43557: LIST
43558: PUSH
43559: LD_INT 50
43561: PUSH
43562: EMPTY
43563: LIST
43564: PUSH
43565: LD_INT 22
43567: PUSH
43568: LD_EXP 4
43572: PUSH
43573: EMPTY
43574: LIST
43575: LIST
43576: PUSH
43577: LD_INT 25
43579: PUSH
43580: LD_INT 3
43582: PUSH
43583: EMPTY
43584: LIST
43585: LIST
43586: PUSH
43587: EMPTY
43588: LIST
43589: LIST
43590: LIST
43591: LIST
43592: PPUSH
43593: CALL_OW 69
43597: IFFALSE 43706
// begin Mechanici_volni = FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_mechanic ] ] ) ;
43599: LD_ADDR_VAR 0 4
43603: PUSH
43604: LD_INT 95
43606: PUSH
43607: LD_INT 30
43609: PUSH
43610: EMPTY
43611: LIST
43612: LIST
43613: PUSH
43614: LD_INT 50
43616: PUSH
43617: EMPTY
43618: LIST
43619: PUSH
43620: LD_INT 22
43622: PUSH
43623: LD_EXP 4
43627: PUSH
43628: EMPTY
43629: LIST
43630: LIST
43631: PUSH
43632: LD_INT 25
43634: PUSH
43635: LD_INT 3
43637: PUSH
43638: EMPTY
43639: LIST
43640: LIST
43641: PUSH
43642: EMPTY
43643: LIST
43644: LIST
43645: LIST
43646: LIST
43647: PPUSH
43648: CALL_OW 69
43652: ST_TO_ADDR
// for un in Mechanici_volni do
43653: LD_ADDR_VAR 0 6
43657: PUSH
43658: LD_VAR 0 4
43662: PUSH
43663: FOR_IN
43664: IFFALSE 43704
// begin if IsOk ( Am_Fac_2 ) and GetSide ( Am_Fac_2 ) = Amik then
43666: LD_INT 145
43668: PPUSH
43669: CALL_OW 302
43673: PUSH
43674: LD_INT 145
43676: PPUSH
43677: CALL_OW 255
43681: PUSH
43682: LD_EXP 4
43686: EQUAL
43687: AND
43688: IFFALSE 43702
// ComEnterUnit ( un , Am_Fac_2 ) ;
43690: LD_VAR 0 6
43694: PPUSH
43695: LD_INT 145
43697: PPUSH
43698: CALL_OW 120
// end ;
43702: GO 43663
43704: POP
43705: POP
// end ; if FilterUnitsExceptArea ( Prostredni , [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_radar ] ] ] ) then
43706: LD_INT 33
43708: PPUSH
43709: LD_INT 95
43711: PUSH
43712: LD_INT 30
43714: PUSH
43715: EMPTY
43716: LIST
43717: LIST
43718: PUSH
43719: LD_INT 50
43721: PUSH
43722: EMPTY
43723: LIST
43724: PUSH
43725: LD_INT 22
43727: PUSH
43728: LD_EXP 4
43732: PUSH
43733: EMPTY
43734: LIST
43735: LIST
43736: PUSH
43737: LD_INT 21
43739: PUSH
43740: LD_INT 2
43742: PUSH
43743: EMPTY
43744: LIST
43745: LIST
43746: PUSH
43747: LD_INT 3
43749: PUSH
43750: LD_INT 34
43752: PUSH
43753: LD_INT 11
43755: PUSH
43756: EMPTY
43757: LIST
43758: LIST
43759: PUSH
43760: EMPTY
43761: LIST
43762: LIST
43763: PUSH
43764: EMPTY
43765: LIST
43766: LIST
43767: LIST
43768: LIST
43769: LIST
43770: PPUSH
43771: CALL_OW 71
43775: IFFALSE 43966
// begin Vozidla = FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_radar ] ] ] ) ;
43777: LD_ADDR_VAR 0 5
43781: PUSH
43782: LD_INT 95
43784: PUSH
43785: LD_INT 30
43787: PUSH
43788: EMPTY
43789: LIST
43790: LIST
43791: PUSH
43792: LD_INT 50
43794: PUSH
43795: EMPTY
43796: LIST
43797: PUSH
43798: LD_INT 22
43800: PUSH
43801: LD_EXP 4
43805: PUSH
43806: EMPTY
43807: LIST
43808: LIST
43809: PUSH
43810: LD_INT 21
43812: PUSH
43813: LD_INT 2
43815: PUSH
43816: EMPTY
43817: LIST
43818: LIST
43819: PUSH
43820: LD_INT 3
43822: PUSH
43823: LD_INT 34
43825: PUSH
43826: LD_INT 11
43828: PUSH
43829: EMPTY
43830: LIST
43831: LIST
43832: PUSH
43833: EMPTY
43834: LIST
43835: LIST
43836: PUSH
43837: EMPTY
43838: LIST
43839: LIST
43840: LIST
43841: LIST
43842: LIST
43843: PPUSH
43844: CALL_OW 69
43848: ST_TO_ADDR
// for veh in Vozidla do
43849: LD_ADDR_VAR 0 10
43853: PUSH
43854: LD_VAR 0 5
43858: PUSH
43859: FOR_IN
43860: IFFALSE 43964
// begin if FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_radar ] ] ] ) + 0 >= dif_amik_tanky_max then
43862: LD_INT 95
43864: PUSH
43865: LD_INT 30
43867: PUSH
43868: EMPTY
43869: LIST
43870: LIST
43871: PUSH
43872: LD_INT 22
43874: PUSH
43875: LD_EXP 4
43879: PUSH
43880: EMPTY
43881: LIST
43882: LIST
43883: PUSH
43884: LD_INT 21
43886: PUSH
43887: LD_INT 2
43889: PUSH
43890: EMPTY
43891: LIST
43892: LIST
43893: PUSH
43894: LD_INT 3
43896: PUSH
43897: LD_INT 34
43899: PUSH
43900: LD_INT 11
43902: PUSH
43903: EMPTY
43904: LIST
43905: LIST
43906: PUSH
43907: EMPTY
43908: LIST
43909: LIST
43910: PUSH
43911: EMPTY
43912: LIST
43913: LIST
43914: LIST
43915: LIST
43916: PPUSH
43917: CALL_OW 69
43921: PUSH
43922: LD_INT 0
43924: PLUS
43925: PUSH
43926: LD_EXP 36
43930: GREATEREQUAL
43931: IFFALSE 43962
// if not veh in Am_Pravy_Attack then
43933: LD_VAR 0 10
43937: PUSH
43938: LD_EXP 89
43942: IN
43943: NOT
43944: IFFALSE 43962
// Am_Pravy_Attack = Am_Pravy_Attack ^ veh ;
43946: LD_ADDR_EXP 89
43950: PUSH
43951: LD_EXP 89
43955: PUSH
43956: LD_VAR 0 10
43960: ADD
43961: ST_TO_ADDR
// end ;
43962: GO 43859
43964: POP
43965: POP
// end ; enable ;
43966: ENABLE
// end ;
43967: PPOPN 15
43969: END
// export Am_Pravy_Attack ; every 0 0$1 do
43970: GO 43972
43972: DISABLE
// begin if not ZijeNekdoList ( Am_Pravy_Attack ) then
43973: LD_EXP 89
43977: PPUSH
43978: CALL 8801 0 1
43982: NOT
43983: IFFALSE 43993
// Probiha_McAttack = false ;
43985: LD_ADDR_LOC 20
43989: PUSH
43990: LD_INT 0
43992: ST_TO_ADDR
// enable ;
43993: ENABLE
// end ;
43994: END
// every 0 0$3 trigger IsOk ( Am_Fac_2 ) and GetSide ( Am_Fac_2 ) = Amik and not ZijeNekdoList ( Am_Pravy_Attack ) do
43995: LD_INT 145
43997: PPUSH
43998: CALL_OW 302
44002: PUSH
44003: LD_INT 145
44005: PPUSH
44006: CALL_OW 255
44010: PUSH
44011: LD_EXP 4
44015: EQUAL
44016: AND
44017: PUSH
44018: LD_EXP 89
44022: PPUSH
44023: CALL 8801 0 1
44027: NOT
44028: AND
44029: IFFALSE 44135
44031: GO 44033
44033: DISABLE
// begin Wait ( Rand ( 17 17$00 , 19 19$00 ) ) ;
44034: LD_INT 35700
44036: PPUSH
44037: LD_INT 39900
44039: PPUSH
44040: CALL_OW 12
44044: PPUSH
44045: CALL_OW 67
// repeat begin Vyrabej ( Am_Fac_2 ) ;
44049: LD_INT 145
44051: PPUSH
44052: CALL 44136 0 1
// Wait ( 0 0$5 ) ;
44056: LD_INT 175
44058: PPUSH
44059: CALL_OW 67
// end until FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_radar ] ] ] ) + 0 >= dif_amik_tanky_max ;
44063: LD_INT 95
44065: PUSH
44066: LD_INT 30
44068: PUSH
44069: EMPTY
44070: LIST
44071: LIST
44072: PUSH
44073: LD_INT 22
44075: PUSH
44076: LD_EXP 4
44080: PUSH
44081: EMPTY
44082: LIST
44083: LIST
44084: PUSH
44085: LD_INT 21
44087: PUSH
44088: LD_INT 2
44090: PUSH
44091: EMPTY
44092: LIST
44093: LIST
44094: PUSH
44095: LD_INT 3
44097: PUSH
44098: LD_INT 34
44100: PUSH
44101: LD_INT 11
44103: PUSH
44104: EMPTY
44105: LIST
44106: LIST
44107: PUSH
44108: EMPTY
44109: LIST
44110: LIST
44111: PUSH
44112: EMPTY
44113: LIST
44114: LIST
44115: LIST
44116: LIST
44117: PPUSH
44118: CALL_OW 69
44122: PUSH
44123: LD_INT 0
44125: PLUS
44126: PUSH
44127: LD_EXP 36
44131: GREATEREQUAL
44132: IFFALSE 44049
// enable ;
44134: ENABLE
// end ;
44135: END
// function Vyrabej ( Tovarna ) ; var tanky ; begin
44136: LD_INT 0
44138: PPUSH
44139: PPUSH
// if not IsOk ( Tovarna ) then
44140: LD_VAR 0 1
44144: PPUSH
44145: CALL_OW 302
44149: NOT
44150: IFFALSE 44154
// exit ;
44152: GO 44693
// if GetWorkingProgress ( Tovarna ) then
44154: LD_VAR 0 1
44158: PPUSH
44159: CALL_OW 328
44163: IFFALSE 44167
// exit ;
44165: GO 44693
// if not UnitsInside ( Tovarna ) then
44167: LD_VAR 0 1
44171: PPUSH
44172: CALL_OW 313
44176: NOT
44177: IFFALSE 44181
// exit ;
44179: GO 44693
// if not GetSide ( Tovarna ) = Amik then
44181: LD_VAR 0 1
44185: PPUSH
44186: CALL_OW 255
44190: PUSH
44191: LD_EXP 4
44195: EQUAL
44196: NOT
44197: IFFALSE 44201
// exit ;
44199: GO 44693
// if not FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_factory ] , [ f_not , [ f_constructed ] ] ] ) then
44201: LD_INT 95
44203: PUSH
44204: LD_INT 30
44206: PUSH
44207: EMPTY
44208: LIST
44209: LIST
44210: PUSH
44211: LD_INT 50
44213: PUSH
44214: EMPTY
44215: LIST
44216: PUSH
44217: LD_INT 22
44219: PUSH
44220: LD_EXP 4
44224: PUSH
44225: EMPTY
44226: LIST
44227: LIST
44228: PUSH
44229: LD_INT 30
44231: PUSH
44232: LD_INT 3
44234: PUSH
44235: EMPTY
44236: LIST
44237: LIST
44238: PUSH
44239: LD_INT 3
44241: PUSH
44242: LD_INT 57
44244: PUSH
44245: EMPTY
44246: LIST
44247: PUSH
44248: EMPTY
44249: LIST
44250: LIST
44251: PUSH
44252: EMPTY
44253: LIST
44254: LIST
44255: LIST
44256: LIST
44257: LIST
44258: PPUSH
44259: CALL_OW 69
44263: NOT
44264: IFFALSE 44268
// exit ;
44266: GO 44693
// if not FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_ext_computer ] , [ f_not , [ f_constructed ] ] ] ) then
44268: LD_INT 95
44270: PUSH
44271: LD_INT 30
44273: PUSH
44274: EMPTY
44275: LIST
44276: LIST
44277: PUSH
44278: LD_INT 50
44280: PUSH
44281: EMPTY
44282: LIST
44283: PUSH
44284: LD_INT 22
44286: PUSH
44287: LD_EXP 4
44291: PUSH
44292: EMPTY
44293: LIST
44294: LIST
44295: PUSH
44296: LD_INT 30
44298: PUSH
44299: LD_INT 24
44301: PUSH
44302: EMPTY
44303: LIST
44304: LIST
44305: PUSH
44306: LD_INT 3
44308: PUSH
44309: LD_INT 57
44311: PUSH
44312: EMPTY
44313: LIST
44314: PUSH
44315: EMPTY
44316: LIST
44317: LIST
44318: PUSH
44319: EMPTY
44320: LIST
44321: LIST
44322: LIST
44323: LIST
44324: LIST
44325: PPUSH
44326: CALL_OW 69
44330: NOT
44331: IFFALSE 44335
// exit ;
44333: GO 44693
// if not FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_ext_laser ] , [ f_not , [ f_constructed ] ] ] ) then
44335: LD_INT 95
44337: PUSH
44338: LD_INT 30
44340: PUSH
44341: EMPTY
44342: LIST
44343: LIST
44344: PUSH
44345: LD_INT 50
44347: PUSH
44348: EMPTY
44349: LIST
44350: PUSH
44351: LD_INT 22
44353: PUSH
44354: LD_EXP 4
44358: PUSH
44359: EMPTY
44360: LIST
44361: LIST
44362: PUSH
44363: LD_INT 30
44365: PUSH
44366: LD_INT 25
44368: PUSH
44369: EMPTY
44370: LIST
44371: LIST
44372: PUSH
44373: LD_INT 3
44375: PUSH
44376: LD_INT 57
44378: PUSH
44379: EMPTY
44380: LIST
44381: PUSH
44382: EMPTY
44383: LIST
44384: LIST
44385: PUSH
44386: EMPTY
44387: LIST
44388: LIST
44389: LIST
44390: LIST
44391: LIST
44392: PPUSH
44393: CALL_OW 69
44397: NOT
44398: IFFALSE 44402
// exit ;
44400: GO 44693
// if not FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_ext_radar ] , [ f_not , [ f_constructed ] ] ] ) then
44402: LD_INT 95
44404: PUSH
44405: LD_INT 30
44407: PUSH
44408: EMPTY
44409: LIST
44410: LIST
44411: PUSH
44412: LD_INT 50
44414: PUSH
44415: EMPTY
44416: LIST
44417: PUSH
44418: LD_INT 22
44420: PUSH
44421: LD_EXP 4
44425: PUSH
44426: EMPTY
44427: LIST
44428: LIST
44429: PUSH
44430: LD_INT 30
44432: PUSH
44433: LD_INT 20
44435: PUSH
44436: EMPTY
44437: LIST
44438: LIST
44439: PUSH
44440: LD_INT 3
44442: PUSH
44443: LD_INT 57
44445: PUSH
44446: EMPTY
44447: LIST
44448: PUSH
44449: EMPTY
44450: LIST
44451: LIST
44452: PUSH
44453: EMPTY
44454: LIST
44455: LIST
44456: LIST
44457: LIST
44458: LIST
44459: PPUSH
44460: CALL_OW 69
44464: NOT
44465: IFFALSE 44469
// exit ;
44467: GO 44693
// if not FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_ext_gun ] , [ f_not , [ f_constructed ] ] ] ) then
44469: LD_INT 95
44471: PUSH
44472: LD_INT 30
44474: PUSH
44475: EMPTY
44476: LIST
44477: LIST
44478: PUSH
44479: LD_INT 50
44481: PUSH
44482: EMPTY
44483: LIST
44484: PUSH
44485: LD_INT 22
44487: PUSH
44488: LD_EXP 4
44492: PUSH
44493: EMPTY
44494: LIST
44495: LIST
44496: PUSH
44497: LD_INT 30
44499: PUSH
44500: LD_INT 17
44502: PUSH
44503: EMPTY
44504: LIST
44505: LIST
44506: PUSH
44507: LD_INT 3
44509: PUSH
44510: LD_INT 57
44512: PUSH
44513: EMPTY
44514: LIST
44515: PUSH
44516: EMPTY
44517: LIST
44518: LIST
44519: PUSH
44520: EMPTY
44521: LIST
44522: LIST
44523: LIST
44524: LIST
44525: LIST
44526: PPUSH
44527: CALL_OW 69
44531: NOT
44532: IFFALSE 44536
// exit ;
44534: GO 44693
// if not FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_ok ] , [ f_side , Amik ] , [ f_btype , b_ext_track ] , [ f_not , [ f_constructed ] ] ] ) then
44536: LD_INT 95
44538: PUSH
44539: LD_INT 30
44541: PUSH
44542: EMPTY
44543: LIST
44544: LIST
44545: PUSH
44546: LD_INT 50
44548: PUSH
44549: EMPTY
44550: LIST
44551: PUSH
44552: LD_INT 22
44554: PUSH
44555: LD_EXP 4
44559: PUSH
44560: EMPTY
44561: LIST
44562: LIST
44563: PUSH
44564: LD_INT 30
44566: PUSH
44567: LD_INT 16
44569: PUSH
44570: EMPTY
44571: LIST
44572: LIST
44573: PUSH
44574: LD_INT 3
44576: PUSH
44577: LD_INT 57
44579: PUSH
44580: EMPTY
44581: LIST
44582: PUSH
44583: EMPTY
44584: LIST
44585: LIST
44586: PUSH
44587: EMPTY
44588: LIST
44589: LIST
44590: LIST
44591: LIST
44592: LIST
44593: PPUSH
44594: CALL_OW 69
44598: NOT
44599: IFFALSE 44603
// exit ;
44601: GO 44693
// tanky = FilterAllUnits ( [ [ f_inarea , AmBaza2 ] , [ f_side , Amik ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_radar ] ] ] ) ;
44603: LD_ADDR_VAR 0 3
44607: PUSH
44608: LD_INT 95
44610: PUSH
44611: LD_INT 30
44613: PUSH
44614: EMPTY
44615: LIST
44616: LIST
44617: PUSH
44618: LD_INT 22
44620: PUSH
44621: LD_EXP 4
44625: PUSH
44626: EMPTY
44627: LIST
44628: LIST
44629: PUSH
44630: LD_INT 21
44632: PUSH
44633: LD_INT 2
44635: PUSH
44636: EMPTY
44637: LIST
44638: LIST
44639: PUSH
44640: LD_INT 3
44642: PUSH
44643: LD_INT 34
44645: PUSH
44646: LD_INT 11
44648: PUSH
44649: EMPTY
44650: LIST
44651: LIST
44652: PUSH
44653: EMPTY
44654: LIST
44655: LIST
44656: PUSH
44657: EMPTY
44658: LIST
44659: LIST
44660: LIST
44661: LIST
44662: PPUSH
44663: CALL_OW 69
44667: ST_TO_ADDR
// if tanky + 0 < dif_amik_tanky_max then
44668: LD_VAR 0 3
44672: PUSH
44673: LD_INT 0
44675: PLUS
44676: PUSH
44677: LD_EXP 36
44681: LESS
44682: IFFALSE 44693
// Vyroba_auta_Amik ( Tovarna ) ;
44684: LD_VAR 0 1
44688: PPUSH
44689: CALL 40487 0 1
// end ;
44693: LD_VAR 0 2
44697: RET
// var MakroUtok ; var RegUtok ; export function Init_Makra_Am_Pravy ; begin
44698: LD_INT 0
44700: PPUSH
// RegUtok = McRegistry ( Amik , [ [ MC_REG_AREA_TO_GUARD , RuBaza2 ] , MC_REG_IGNORE_FOG ] ) ;
44701: LD_ADDR_LOC 19
44705: PUSH
44706: LD_EXP 4
44710: PPUSH
44711: LD_INT 2
44713: PUSH
44714: LD_INT 13
44716: PUSH
44717: EMPTY
44718: LIST
44719: LIST
44720: PUSH
44721: LD_INT 7
44723: PUSH
44724: EMPTY
44725: LIST
44726: LIST
44727: PPUSH
44728: CALL_OW 399
44732: ST_TO_ADDR
// end ;
44733: LD_VAR 0 1
44737: RET
// var Probiha_McAttack ; every 0 0$3 trigger Am_Pravy_Attack + 0 >= dif_amik_tanky_max and not Probiha_McAttack do
44738: LD_EXP 89
44742: PUSH
44743: LD_INT 0
44745: PLUS
44746: PUSH
44747: LD_EXP 36
44751: GREATEREQUAL
44752: PUSH
44753: LD_LOC 20
44757: NOT
44758: AND
44759: IFFALSE 44798
44761: GO 44763
44763: DISABLE
// begin MakroUtok = McAttack ( 10 , RegUtok , AM_PRAVY_ATTACK , [ ] ) ;
44764: LD_ADDR_LOC 18
44768: PUSH
44769: LD_INT 10
44771: PPUSH
44772: LD_LOC 19
44776: PPUSH
44777: LD_EXP 89
44781: PPUSH
44782: EMPTY
44783: PPUSH
44784: CALL_OW 402
44788: ST_TO_ADDR
// Probiha_McAttack = true ;
44789: LD_ADDR_LOC 20
44793: PUSH
44794: LD_INT 1
44796: ST_TO_ADDR
// enable ;
44797: ENABLE
// end ; end_of_file
44798: END
// every 0 0$1 trigger not GetDistUnitXY ( radarys , 125 , 82 ) < 3 do
44799: LD_INT 178
44801: PPUSH
44802: LD_INT 125
44804: PPUSH
44805: LD_INT 82
44807: PPUSH
44808: CALL_OW 297
44812: PUSH
44813: LD_INT 3
44815: LESS
44816: NOT
44817: IFFALSE 44836
44819: GO 44821
44821: DISABLE
// begin ComAgressiveMoveXY ( radarys , 125 , 82 ) ;
44822: LD_INT 178
44824: PPUSH
44825: LD_INT 125
44827: PPUSH
44828: LD_INT 82
44830: PPUSH
44831: CALL 7733 0 3
// enable ;
44835: ENABLE
// end ;
44836: END
// every 0 0$1 do var l , budky , un ;
44837: GO 44839
44839: DISABLE
44840: LD_INT 0
44842: PPUSH
44843: PPUSH
44844: PPUSH
// begin l = FilterAllUnits ( [ [ f_side , Amik ] , [ f_ok ] , [ f_class , class_soldier ] , [ f_outside ] ] ) ;
44845: LD_ADDR_VAR 0 1
44849: PUSH
44850: LD_INT 22
44852: PUSH
44853: LD_EXP 4
44857: PUSH
44858: EMPTY
44859: LIST
44860: LIST
44861: PUSH
44862: LD_INT 50
44864: PUSH
44865: EMPTY
44866: LIST
44867: PUSH
44868: LD_INT 25
44870: PUSH
44871: LD_INT 1
44873: PUSH
44874: EMPTY
44875: LIST
44876: LIST
44877: PUSH
44878: LD_INT 56
44880: PUSH
44881: EMPTY
44882: LIST
44883: PUSH
44884: EMPTY
44885: LIST
44886: LIST
44887: LIST
44888: LIST
44889: PPUSH
44890: CALL_OW 69
44894: ST_TO_ADDR
// budky = FilterAllUnits ( [ [ f_inarea , AmBaza3 ] , [ f_side , Amik ] , [ f_ok ] , [ f_empty ] , [ f_or , [ f_btype , b_barracks ] , [ f_btype , b_bunker ] ] ] ) ;
44895: LD_ADDR_VAR 0 2
44899: PUSH
44900: LD_INT 95
44902: PUSH
44903: LD_INT 31
44905: PUSH
44906: EMPTY
44907: LIST
44908: LIST
44909: PUSH
44910: LD_INT 22
44912: PUSH
44913: LD_EXP 4
44917: PUSH
44918: EMPTY
44919: LIST
44920: LIST
44921: PUSH
44922: LD_INT 50
44924: PUSH
44925: EMPTY
44926: LIST
44927: PUSH
44928: LD_INT 58
44930: PUSH
44931: EMPTY
44932: LIST
44933: PUSH
44934: LD_INT 2
44936: PUSH
44937: LD_INT 30
44939: PUSH
44940: LD_INT 5
44942: PUSH
44943: EMPTY
44944: LIST
44945: LIST
44946: PUSH
44947: LD_INT 30
44949: PUSH
44950: LD_INT 32
44952: PUSH
44953: EMPTY
44954: LIST
44955: LIST
44956: PUSH
44957: EMPTY
44958: LIST
44959: LIST
44960: LIST
44961: PUSH
44962: EMPTY
44963: LIST
44964: LIST
44965: LIST
44966: LIST
44967: LIST
44968: PPUSH
44969: CALL_OW 69
44973: ST_TO_ADDR
// if l and budky then
44974: LD_VAR 0 1
44978: PUSH
44979: LD_VAR 0 2
44983: AND
44984: IFFALSE 45082
// for un in l do
44986: LD_ADDR_VAR 0 3
44990: PUSH
44991: LD_VAR 0 1
44995: PUSH
44996: FOR_IN
44997: IFFALSE 45080
// begin if GetDistUnits ( NearestUnitToUnit ( budky , un ) , un ) <= 6 and UnitsInside ( NearestUnitToUnit ( budky , un ) ) < 6 then
44999: LD_VAR 0 2
45003: PPUSH
45004: LD_VAR 0 3
45008: PPUSH
45009: CALL_OW 74
45013: PPUSH
45014: LD_VAR 0 3
45018: PPUSH
45019: CALL_OW 296
45023: PUSH
45024: LD_INT 6
45026: LESSEQUAL
45027: PUSH
45028: LD_VAR 0 2
45032: PPUSH
45033: LD_VAR 0 3
45037: PPUSH
45038: CALL_OW 74
45042: PPUSH
45043: CALL_OW 313
45047: PUSH
45048: LD_INT 6
45050: LESS
45051: AND
45052: IFFALSE 45078
// ComEnterUnit ( un , NearestUnitToUnit ( budky , un ) ) ;
45054: LD_VAR 0 3
45058: PPUSH
45059: LD_VAR 0 2
45063: PPUSH
45064: LD_VAR 0 3
45068: PPUSH
45069: CALL_OW 74
45073: PPUSH
45074: CALL_OW 120
// end ;
45078: GO 44996
45080: POP
45081: POP
// enable ;
45082: ENABLE
// end ;
45083: PPOPN 3
45085: END
// every 0 0$1 do var Inzenyri_volni , un , b ;
45086: GO 45088
45088: DISABLE
45089: LD_INT 0
45091: PPUSH
45092: PPUSH
45093: PPUSH
// begin if FilterAllUnits ( [ [ f_inarea , AmBaza3 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_engineer ] ] ) then
45094: LD_INT 95
45096: PUSH
45097: LD_INT 31
45099: PUSH
45100: EMPTY
45101: LIST
45102: LIST
45103: PUSH
45104: LD_INT 50
45106: PUSH
45107: EMPTY
45108: LIST
45109: PUSH
45110: LD_INT 22
45112: PUSH
45113: LD_EXP 4
45117: PUSH
45118: EMPTY
45119: LIST
45120: LIST
45121: PUSH
45122: LD_INT 25
45124: PUSH
45125: LD_INT 2
45127: PUSH
45128: EMPTY
45129: LIST
45130: LIST
45131: PUSH
45132: EMPTY
45133: LIST
45134: LIST
45135: LIST
45136: LIST
45137: PPUSH
45138: CALL_OW 69
45142: IFFALSE 45613
// begin Inzenyri_volni = FilterAllUnits ( [ [ f_inarea , AmBaza3 ] , [ f_ok ] , [ f_side , Amik ] , [ f_class , class_engineer ] ] ) ;
45144: LD_ADDR_VAR 0 1
45148: PUSH
45149: LD_INT 95
45151: PUSH
45152: LD_INT 31
45154: PUSH
45155: EMPTY
45156: LIST
45157: LIST
45158: PUSH
45159: LD_INT 50
45161: PUSH
45162: EMPTY
45163: LIST
45164: PUSH
45165: LD_INT 22
45167: PUSH
45168: LD_EXP 4
45172: PUSH
45173: EMPTY
45174: LIST
45175: LIST
45176: PUSH
45177: LD_INT 25
45179: PUSH
45180: LD_INT 2
45182: PUSH
45183: EMPTY
45184: LIST
45185: LIST
45186: PUSH
45187: EMPTY
45188: LIST
45189: LIST
45190: LIST
45191: LIST
45192: PPUSH
45193: CALL_OW 69
45197: ST_TO_ADDR
// for un in Inzenyri_volni do
45198: LD_ADDR_VAR 0 2
45202: PUSH
45203: LD_VAR 0 1
45207: PUSH
45208: FOR_IN
45209: IFFALSE 45611
// begin if FilterAllUnits ( [ [ f_inarea , AmBaza3 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) then
45211: LD_INT 95
45213: PUSH
45214: LD_INT 31
45216: PUSH
45217: EMPTY
45218: LIST
45219: LIST
45220: PUSH
45221: LD_INT 52
45223: PUSH
45224: EMPTY
45225: LIST
45226: PUSH
45227: LD_INT 22
45229: PUSH
45230: LD_EXP 4
45234: PUSH
45235: EMPTY
45236: LIST
45237: LIST
45238: PUSH
45239: LD_INT 21
45241: PUSH
45242: LD_INT 3
45244: PUSH
45245: EMPTY
45246: LIST
45247: LIST
45248: PUSH
45249: LD_INT 3
45251: PUSH
45252: LD_INT 24
45254: PUSH
45255: LD_INT 250
45257: PUSH
45258: EMPTY
45259: LIST
45260: LIST
45261: PUSH
45262: EMPTY
45263: LIST
45264: LIST
45265: PUSH
45266: EMPTY
45267: LIST
45268: LIST
45269: LIST
45270: LIST
45271: LIST
45272: PPUSH
45273: CALL_OW 69
45277: IFFALSE 45380
// begin b = FilterAllUnits ( [ [ f_inarea , AmBaza3 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) ;
45279: LD_ADDR_VAR 0 3
45283: PUSH
45284: LD_INT 95
45286: PUSH
45287: LD_INT 31
45289: PUSH
45290: EMPTY
45291: LIST
45292: LIST
45293: PUSH
45294: LD_INT 52
45296: PUSH
45297: EMPTY
45298: LIST
45299: PUSH
45300: LD_INT 22
45302: PUSH
45303: LD_EXP 4
45307: PUSH
45308: EMPTY
45309: LIST
45310: LIST
45311: PUSH
45312: LD_INT 21
45314: PUSH
45315: LD_INT 3
45317: PUSH
45318: EMPTY
45319: LIST
45320: LIST
45321: PUSH
45322: LD_INT 3
45324: PUSH
45325: LD_INT 24
45327: PUSH
45328: LD_INT 250
45330: PUSH
45331: EMPTY
45332: LIST
45333: LIST
45334: PUSH
45335: EMPTY
45336: LIST
45337: LIST
45338: PUSH
45339: EMPTY
45340: LIST
45341: LIST
45342: LIST
45343: LIST
45344: LIST
45345: PPUSH
45346: CALL_OW 69
45350: ST_TO_ADDR
// VyjdiVen ( un ) ;
45351: LD_VAR 0 2
45355: PPUSH
45356: CALL 2645 0 1
// ComRepairBuilding ( un , b [ 1 ] ) ;
45360: LD_VAR 0 2
45364: PPUSH
45365: LD_VAR 0 3
45369: PUSH
45370: LD_INT 1
45372: ARRAY
45373: PPUSH
45374: CALL_OW 130
// end else
45378: GO 45609
// if FilterAllUnits ( [ [ f_inarea , AmBaza3 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
45380: LD_INT 95
45382: PUSH
45383: LD_INT 31
45385: PUSH
45386: EMPTY
45387: LIST
45388: LIST
45389: PUSH
45390: LD_INT 52
45392: PUSH
45393: EMPTY
45394: LIST
45395: PUSH
45396: LD_INT 22
45398: PUSH
45399: LD_EXP 4
45403: PUSH
45404: EMPTY
45405: LIST
45406: LIST
45407: PUSH
45408: LD_INT 21
45410: PUSH
45411: LD_INT 3
45413: PUSH
45414: EMPTY
45415: LIST
45416: LIST
45417: PUSH
45418: LD_INT 3
45420: PUSH
45421: LD_INT 24
45423: PUSH
45424: LD_INT 1000
45426: PUSH
45427: EMPTY
45428: LIST
45429: LIST
45430: PUSH
45431: EMPTY
45432: LIST
45433: LIST
45434: PUSH
45435: EMPTY
45436: LIST
45437: LIST
45438: LIST
45439: LIST
45440: LIST
45441: PPUSH
45442: CALL_OW 69
45446: IFFALSE 45549
// begin b = FilterAllUnits ( [ [ f_inarea , AmBaza3 ] , [ f_placed ] , [ f_side , Amik ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
45448: LD_ADDR_VAR 0 3
45452: PUSH
45453: LD_INT 95
45455: PUSH
45456: LD_INT 31
45458: PUSH
45459: EMPTY
45460: LIST
45461: LIST
45462: PUSH
45463: LD_INT 52
45465: PUSH
45466: EMPTY
45467: LIST
45468: PUSH
45469: LD_INT 22
45471: PUSH
45472: LD_EXP 4
45476: PUSH
45477: EMPTY
45478: LIST
45479: LIST
45480: PUSH
45481: LD_INT 21
45483: PUSH
45484: LD_INT 3
45486: PUSH
45487: EMPTY
45488: LIST
45489: LIST
45490: PUSH
45491: LD_INT 3
45493: PUSH
45494: LD_INT 24
45496: PUSH
45497: LD_INT 1000
45499: PUSH
45500: EMPTY
45501: LIST
45502: LIST
45503: PUSH
45504: EMPTY
45505: LIST
45506: LIST
45507: PUSH
45508: EMPTY
45509: LIST
45510: LIST
45511: LIST
45512: LIST
45513: LIST
45514: PPUSH
45515: CALL_OW 69
45519: ST_TO_ADDR
// VyjdiVen ( un ) ;
45520: LD_VAR 0 2
45524: PPUSH
45525: CALL 2645 0 1
// ComRepairBuilding ( un , b [ 1 ] ) ;
45529: LD_VAR 0 2
45533: PPUSH
45534: LD_VAR 0 3
45538: PUSH
45539: LD_INT 1
45541: ARRAY
45542: PPUSH
45543: CALL_OW 130
// end else
45547: GO 45609
// if GetLives ( un ) = 1000 then
45549: LD_VAR 0 2
45553: PPUSH
45554: CALL_OW 256
45558: PUSH
45559: LD_INT 1000
45561: EQUAL
45562: IFFALSE 45609
// begin ComFree ( un ) ;
45564: LD_VAR 0 2
45568: PPUSH
45569: CALL_OW 139
// if IsOk ( Am_Depot_3 ) and GetSide ( Am_Depot_3 ) = Amik then
45573: LD_INT 136
45575: PPUSH
45576: CALL_OW 302
45580: PUSH
45581: LD_INT 136
45583: PPUSH
45584: CALL_OW 255
45588: PUSH
45589: LD_EXP 4
45593: EQUAL
45594: AND
45595: IFFALSE 45609
// ComEnterUnit ( un , Am_Depot_3 ) ;
45597: LD_VAR 0 2
45601: PPUSH
45602: LD_INT 136
45604: PPUSH
45605: CALL_OW 120
// end ; end ;
45609: GO 45208
45611: POP
45612: POP
// end ; enable ;
45613: ENABLE
// end ; end_of_file
45614: PPOPN 3
45616: END
// export LevaBaza2Znicena ; every 0 0$2 trigger FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_type , unit_human ] ] ) + 0 < 2 and DepotNefungujeAmik ( Am_Ware_1 ) do
45617: LD_INT 95
45619: PUSH
45620: LD_INT 35
45622: PUSH
45623: EMPTY
45624: LIST
45625: LIST
45626: PUSH
45627: LD_INT 50
45629: PUSH
45630: EMPTY
45631: LIST
45632: PUSH
45633: LD_INT 22
45635: PUSH
45636: LD_EXP 5
45640: PUSH
45641: EMPTY
45642: LIST
45643: LIST
45644: PUSH
45645: LD_INT 21
45647: PUSH
45648: LD_INT 1
45650: PUSH
45651: EMPTY
45652: LIST
45653: LIST
45654: PUSH
45655: EMPTY
45656: LIST
45657: LIST
45658: LIST
45659: LIST
45660: PPUSH
45661: CALL_OW 69
45665: PUSH
45666: LD_INT 0
45668: PLUS
45669: PUSH
45670: LD_INT 2
45672: LESS
45673: PUSH
45674: LD_INT 150
45676: PPUSH
45677: CALL 40990 0 1
45681: AND
45682: IFFALSE 45695
45684: GO 45686
45686: DISABLE
// begin LevaBaza2Znicena = true ;
45687: LD_ADDR_EXP 90
45691: PUSH
45692: LD_INT 1
45694: ST_TO_ADDR
// end ;
45695: END
// export function DepotNefungujeAmik2 ( dep ) ; begin
45696: LD_INT 0
45698: PPUSH
// if GetSide ( dep ) <> Amik2 or IsPlaced ( dep ) = false then
45699: LD_VAR 0 1
45703: PPUSH
45704: CALL_OW 255
45708: PUSH
45709: LD_EXP 5
45713: NONEQUAL
45714: PUSH
45715: LD_VAR 0 1
45719: PPUSH
45720: CALL_OW 305
45724: PUSH
45725: LD_INT 0
45727: EQUAL
45728: OR
45729: IFFALSE 45741
// result = true else
45731: LD_ADDR_VAR 0 2
45735: PUSH
45736: LD_INT 1
45738: ST_TO_ADDR
45739: GO 45749
// result = false ;
45741: LD_ADDR_VAR 0 2
45745: PUSH
45746: LD_INT 0
45748: ST_TO_ADDR
// end ;
45749: LD_VAR 0 2
45753: RET
// every 0 0$1 do
45754: GO 45756
45756: DISABLE
// begin if IsOk ( Am_Ware_1 ) and GetSide ( Am_Ware_1 ) = Amik2 then
45757: LD_INT 150
45759: PPUSH
45760: CALL_OW 302
45764: PUSH
45765: LD_INT 150
45767: PPUSH
45768: CALL_OW 255
45772: PUSH
45773: LD_EXP 5
45777: EQUAL
45778: AND
45779: IFFALSE 45797
// SurovinyDoSkladu ( Am_Ware_1 , 400 , 1000 , 150 ) ;
45781: LD_INT 150
45783: PPUSH
45784: LD_INT 400
45786: PPUSH
45787: LD_INT 1000
45789: PPUSH
45790: LD_INT 150
45792: PPUSH
45793: CALL 5102 0 4
// enable ;
45797: ENABLE
// end ;
45798: END
// every 0 0$5 do var list ;
45799: GO 45801
45801: DISABLE
45802: LD_INT 0
45804: PPUSH
// begin JerabWaiter = 3 3$00 ;
45805: LD_ADDR_LOC 21
45809: PUSH
45810: LD_INT 6300
45812: ST_TO_ADDR
// case difficulty of 1 :
45813: LD_OWVAR 67
45817: PUSH
45818: LD_INT 1
45820: DOUBLE
45821: EQUAL
45822: IFTRUE 45826
45824: GO 45856
45826: POP
// list = [ tech_tech1 , tech_comp1 , tech_weap1 , tech_opto1 , tech_sib1 ] ; 2 :
45827: LD_ADDR_VAR 0 1
45831: PUSH
45832: LD_INT 48
45834: PUSH
45835: LD_INT 57
45837: PUSH
45838: LD_INT 51
45840: PUSH
45841: LD_INT 60
45843: PUSH
45844: LD_INT 54
45846: PUSH
45847: EMPTY
45848: LIST
45849: LIST
45850: LIST
45851: LIST
45852: LIST
45853: ST_TO_ADDR
45854: GO 45989
45856: LD_INT 2
45858: DOUBLE
45859: EQUAL
45860: IFTRUE 45864
45862: GO 45914
45864: POP
// list = [ tech_tech1 , tech_comp1 , tech_weap1 , tech_opto1 , tech_sib1 , tech_tech2 , tech_comp2 , tech_weap2 , tech_opto2 , tech_sib2 ] ; 3 :
45865: LD_ADDR_VAR 0 1
45869: PUSH
45870: LD_INT 48
45872: PUSH
45873: LD_INT 57
45875: PUSH
45876: LD_INT 51
45878: PUSH
45879: LD_INT 60
45881: PUSH
45882: LD_INT 54
45884: PUSH
45885: LD_INT 49
45887: PUSH
45888: LD_INT 58
45890: PUSH
45891: LD_INT 52
45893: PUSH
45894: LD_INT 61
45896: PUSH
45897: LD_INT 55
45899: PUSH
45900: EMPTY
45901: LIST
45902: LIST
45903: LIST
45904: LIST
45905: LIST
45906: LIST
45907: LIST
45908: LIST
45909: LIST
45910: LIST
45911: ST_TO_ADDR
45912: GO 45989
45914: LD_INT 3
45916: DOUBLE
45917: EQUAL
45918: IFTRUE 45922
45920: GO 45988
45922: POP
// list = [ tech_tech1 , tech_comp1 , tech_weap1 , tech_opto1 , tech_sib1 , tech_tech2 , tech_comp2 , tech_weap2 , tech_opto2 , tech_sib2 , tech_tech3 , tech_comp3 , tech_opto3 , tech_sib3 ] ; end ;
45923: LD_ADDR_VAR 0 1
45927: PUSH
45928: LD_INT 48
45930: PUSH
45931: LD_INT 57
45933: PUSH
45934: LD_INT 51
45936: PUSH
45937: LD_INT 60
45939: PUSH
45940: LD_INT 54
45942: PUSH
45943: LD_INT 49
45945: PUSH
45946: LD_INT 58
45948: PUSH
45949: LD_INT 52
45951: PUSH
45952: LD_INT 61
45954: PUSH
45955: LD_INT 55
45957: PUSH
45958: LD_INT 50
45960: PUSH
45961: LD_INT 59
45963: PUSH
45964: LD_INT 62
45966: PUSH
45967: LD_INT 56
45969: PUSH
45970: EMPTY
45971: LIST
45972: LIST
45973: LIST
45974: LIST
45975: LIST
45976: LIST
45977: LIST
45978: LIST
45979: LIST
45980: LIST
45981: LIST
45982: LIST
45983: LIST
45984: LIST
45985: ST_TO_ADDR
45986: GO 45989
45988: POP
// end ;
45989: PPOPN 1
45991: END
// every 0 0$2 trigger IsOk ( Am_Ware_1 ) and GetSide ( Am_Ware_1 ) = Amik2 do var l , un ;
45992: LD_INT 150
45994: PPUSH
45995: CALL_OW 302
45999: PUSH
46000: LD_INT 150
46002: PPUSH
46003: CALL_OW 255
46007: PUSH
46008: LD_EXP 5
46012: EQUAL
46013: AND
46014: IFFALSE 46128
46016: GO 46018
46018: DISABLE
46019: LD_INT 0
46021: PPUSH
46022: PPUSH
// begin l = FilterAllUnits ( [ [ f_side , Amik2 ] , [ f_ok ] , [ f_class , class_engineer ] , [ f_distxy , 47 , 18 , 10 ] , [ f_outside ] ] ) ;
46023: LD_ADDR_VAR 0 1
46027: PUSH
46028: LD_INT 22
46030: PUSH
46031: LD_EXP 5
46035: PUSH
46036: EMPTY
46037: LIST
46038: LIST
46039: PUSH
46040: LD_INT 50
46042: PUSH
46043: EMPTY
46044: LIST
46045: PUSH
46046: LD_INT 25
46048: PUSH
46049: LD_INT 2
46051: PUSH
46052: EMPTY
46053: LIST
46054: LIST
46055: PUSH
46056: LD_INT 92
46058: PUSH
46059: LD_INT 47
46061: PUSH
46062: LD_INT 18
46064: PUSH
46065: LD_INT 10
46067: PUSH
46068: EMPTY
46069: LIST
46070: LIST
46071: LIST
46072: LIST
46073: PUSH
46074: LD_INT 56
46076: PUSH
46077: EMPTY
46078: LIST
46079: PUSH
46080: EMPTY
46081: LIST
46082: LIST
46083: LIST
46084: LIST
46085: LIST
46086: PPUSH
46087: CALL_OW 69
46091: ST_TO_ADDR
// if l then
46092: LD_VAR 0 1
46096: IFFALSE 46127
// for un in l do
46098: LD_ADDR_VAR 0 2
46102: PUSH
46103: LD_VAR 0 1
46107: PUSH
46108: FOR_IN
46109: IFFALSE 46125
// ComEnterUnit ( un , Am_Ware_1 ) ;
46111: LD_VAR 0 2
46115: PPUSH
46116: LD_INT 150
46118: PPUSH
46119: CALL_OW 120
46123: GO 46108
46125: POP
46126: POP
// enable ;
46127: ENABLE
// end ;
46128: PPOPN 2
46130: END
// every 0 0$2 trigger IsOk ( Am2_Lab_1 ) and GetSide ( Am2_Lab_1 ) = Amik2 do var l , un ;
46131: LD_INT 152
46133: PPUSH
46134: CALL_OW 302
46138: PUSH
46139: LD_INT 152
46141: PPUSH
46142: CALL_OW 255
46146: PUSH
46147: LD_EXP 5
46151: EQUAL
46152: AND
46153: IFFALSE 46267
46155: GO 46157
46157: DISABLE
46158: LD_INT 0
46160: PPUSH
46161: PPUSH
// begin l = FilterAllUnits ( [ [ f_side , Amik2 ] , [ f_ok ] , [ f_class , class_scientistic ] , [ f_distxy , 18 , 13 , 9 ] , [ f_outside ] ] ) ;
46162: LD_ADDR_VAR 0 1
46166: PUSH
46167: LD_INT 22
46169: PUSH
46170: LD_EXP 5
46174: PUSH
46175: EMPTY
46176: LIST
46177: LIST
46178: PUSH
46179: LD_INT 50
46181: PUSH
46182: EMPTY
46183: LIST
46184: PUSH
46185: LD_INT 25
46187: PUSH
46188: LD_INT 4
46190: PUSH
46191: EMPTY
46192: LIST
46193: LIST
46194: PUSH
46195: LD_INT 92
46197: PUSH
46198: LD_INT 18
46200: PUSH
46201: LD_INT 13
46203: PUSH
46204: LD_INT 9
46206: PUSH
46207: EMPTY
46208: LIST
46209: LIST
46210: LIST
46211: LIST
46212: PUSH
46213: LD_INT 56
46215: PUSH
46216: EMPTY
46217: LIST
46218: PUSH
46219: EMPTY
46220: LIST
46221: LIST
46222: LIST
46223: LIST
46224: LIST
46225: PPUSH
46226: CALL_OW 69
46230: ST_TO_ADDR
// if l then
46231: LD_VAR 0 1
46235: IFFALSE 46266
// for un in l do
46237: LD_ADDR_VAR 0 2
46241: PUSH
46242: LD_VAR 0 1
46246: PUSH
46247: FOR_IN
46248: IFFALSE 46264
// ComEnterUnit ( un , Am2_Lab_1 ) ;
46250: LD_VAR 0 2
46254: PPUSH
46255: LD_INT 152
46257: PPUSH
46258: CALL_OW 120
46262: GO 46247
46264: POP
46265: POP
// enable ;
46266: ENABLE
// end ;
46267: PPOPN 2
46269: END
// every 0 0$2 trigger IsOk ( Am2_Lab_2 ) and GetSide ( Am2_Lab_2 ) = Amik2 do var l , un ;
46270: LD_INT 153
46272: PPUSH
46273: CALL_OW 302
46277: PUSH
46278: LD_INT 153
46280: PPUSH
46281: CALL_OW 255
46285: PUSH
46286: LD_EXP 5
46290: EQUAL
46291: AND
46292: IFFALSE 46406
46294: GO 46296
46296: DISABLE
46297: LD_INT 0
46299: PPUSH
46300: PPUSH
// begin l = FilterAllUnits ( [ [ f_side , Amik2 ] , [ f_ok ] , [ f_class , class_scientistic ] , [ f_distxy , 38 , 5 , 9 ] , [ f_outside ] ] ) ;
46301: LD_ADDR_VAR 0 1
46305: PUSH
46306: LD_INT 22
46308: PUSH
46309: LD_EXP 5
46313: PUSH
46314: EMPTY
46315: LIST
46316: LIST
46317: PUSH
46318: LD_INT 50
46320: PUSH
46321: EMPTY
46322: LIST
46323: PUSH
46324: LD_INT 25
46326: PUSH
46327: LD_INT 4
46329: PUSH
46330: EMPTY
46331: LIST
46332: LIST
46333: PUSH
46334: LD_INT 92
46336: PUSH
46337: LD_INT 38
46339: PUSH
46340: LD_INT 5
46342: PUSH
46343: LD_INT 9
46345: PUSH
46346: EMPTY
46347: LIST
46348: LIST
46349: LIST
46350: LIST
46351: PUSH
46352: LD_INT 56
46354: PUSH
46355: EMPTY
46356: LIST
46357: PUSH
46358: EMPTY
46359: LIST
46360: LIST
46361: LIST
46362: LIST
46363: LIST
46364: PPUSH
46365: CALL_OW 69
46369: ST_TO_ADDR
// if l then
46370: LD_VAR 0 1
46374: IFFALSE 46405
// for un in l do
46376: LD_ADDR_VAR 0 2
46380: PUSH
46381: LD_VAR 0 1
46385: PUSH
46386: FOR_IN
46387: IFFALSE 46403
// ComEnterUnit ( un , Am2_Lab_2 ) ;
46389: LD_VAR 0 2
46393: PPUSH
46394: LD_INT 153
46396: PPUSH
46397: CALL_OW 120
46401: GO 46386
46403: POP
46404: POP
// enable ;
46405: ENABLE
// end ;
46406: PPOPN 2
46408: END
// every 0 0$1 do var l , budky , un ;
46409: GO 46411
46411: DISABLE
46412: LD_INT 0
46414: PPUSH
46415: PPUSH
46416: PPUSH
// begin l = FilterAllUnits ( [ [ f_side , Amik2 ] , [ f_ok ] , [ f_class , class_soldier ] , [ f_outside ] ] ) ;
46417: LD_ADDR_VAR 0 1
46421: PUSH
46422: LD_INT 22
46424: PUSH
46425: LD_EXP 5
46429: PUSH
46430: EMPTY
46431: LIST
46432: LIST
46433: PUSH
46434: LD_INT 50
46436: PUSH
46437: EMPTY
46438: LIST
46439: PUSH
46440: LD_INT 25
46442: PUSH
46443: LD_INT 1
46445: PUSH
46446: EMPTY
46447: LIST
46448: LIST
46449: PUSH
46450: LD_INT 56
46452: PUSH
46453: EMPTY
46454: LIST
46455: PUSH
46456: EMPTY
46457: LIST
46458: LIST
46459: LIST
46460: LIST
46461: PPUSH
46462: CALL_OW 69
46466: ST_TO_ADDR
// budky = FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_side , Amik2 ] , [ f_ok ] , [ f_empty ] , [ f_or , [ f_btype , b_barracks ] , [ f_btype , b_bunker ] ] ] ) ;
46467: LD_ADDR_VAR 0 2
46471: PUSH
46472: LD_INT 95
46474: PUSH
46475: LD_INT 35
46477: PUSH
46478: EMPTY
46479: LIST
46480: LIST
46481: PUSH
46482: LD_INT 22
46484: PUSH
46485: LD_EXP 5
46489: PUSH
46490: EMPTY
46491: LIST
46492: LIST
46493: PUSH
46494: LD_INT 50
46496: PUSH
46497: EMPTY
46498: LIST
46499: PUSH
46500: LD_INT 58
46502: PUSH
46503: EMPTY
46504: LIST
46505: PUSH
46506: LD_INT 2
46508: PUSH
46509: LD_INT 30
46511: PUSH
46512: LD_INT 5
46514: PUSH
46515: EMPTY
46516: LIST
46517: LIST
46518: PUSH
46519: LD_INT 30
46521: PUSH
46522: LD_INT 32
46524: PUSH
46525: EMPTY
46526: LIST
46527: LIST
46528: PUSH
46529: EMPTY
46530: LIST
46531: LIST
46532: LIST
46533: PUSH
46534: EMPTY
46535: LIST
46536: LIST
46537: LIST
46538: LIST
46539: LIST
46540: PPUSH
46541: CALL_OW 69
46545: ST_TO_ADDR
// if l and budky then
46546: LD_VAR 0 1
46550: PUSH
46551: LD_VAR 0 2
46555: AND
46556: IFFALSE 46654
// for un in l do
46558: LD_ADDR_VAR 0 3
46562: PUSH
46563: LD_VAR 0 1
46567: PUSH
46568: FOR_IN
46569: IFFALSE 46652
// begin if GetDistUnits ( NearestUnitToUnit ( budky , un ) , un ) <= 6 and UnitsInside ( NearestUnitToUnit ( budky , un ) ) < 6 then
46571: LD_VAR 0 2
46575: PPUSH
46576: LD_VAR 0 3
46580: PPUSH
46581: CALL_OW 74
46585: PPUSH
46586: LD_VAR 0 3
46590: PPUSH
46591: CALL_OW 296
46595: PUSH
46596: LD_INT 6
46598: LESSEQUAL
46599: PUSH
46600: LD_VAR 0 2
46604: PPUSH
46605: LD_VAR 0 3
46609: PPUSH
46610: CALL_OW 74
46614: PPUSH
46615: CALL_OW 313
46619: PUSH
46620: LD_INT 6
46622: LESS
46623: AND
46624: IFFALSE 46650
// ComEnterUnit ( un , NearestUnitToUnit ( budky , un ) ) ;
46626: LD_VAR 0 3
46630: PPUSH
46631: LD_VAR 0 2
46635: PPUSH
46636: LD_VAR 0 3
46640: PPUSH
46641: CALL_OW 74
46645: PPUSH
46646: CALL_OW 120
// end ;
46650: GO 46568
46652: POP
46653: POP
// enable ;
46654: ENABLE
// end ;
46655: PPOPN 3
46657: END
// function AmiciFungujou ; begin
46658: LD_INT 0
46660: PPUSH
// if GetSide ( Am_Ware_1 ) <> Amik2 or GetSide ( Am2_Fac_1 ) <> Amik2 or IsPlaced ( Am_Ware_1 ) = false or IsPlaced ( Am2_Fac_1 ) = false or IsOk ( Am2_Fac_1 ) = false or IsOk ( Am_Ware_1 ) = false then
46661: LD_INT 150
46663: PPUSH
46664: CALL_OW 255
46668: PUSH
46669: LD_EXP 5
46673: NONEQUAL
46674: PUSH
46675: LD_INT 156
46677: PPUSH
46678: CALL_OW 255
46682: PUSH
46683: LD_EXP 5
46687: NONEQUAL
46688: OR
46689: PUSH
46690: LD_INT 150
46692: PPUSH
46693: CALL_OW 305
46697: PUSH
46698: LD_INT 0
46700: EQUAL
46701: OR
46702: PUSH
46703: LD_INT 156
46705: PPUSH
46706: CALL_OW 305
46710: PUSH
46711: LD_INT 0
46713: EQUAL
46714: OR
46715: PUSH
46716: LD_INT 156
46718: PPUSH
46719: CALL_OW 302
46723: PUSH
46724: LD_INT 0
46726: EQUAL
46727: OR
46728: PUSH
46729: LD_INT 150
46731: PPUSH
46732: CALL_OW 302
46736: PUSH
46737: LD_INT 0
46739: EQUAL
46740: OR
46741: IFFALSE 46753
// result = false else
46743: LD_ADDR_VAR 0 1
46747: PUSH
46748: LD_INT 0
46750: ST_TO_ADDR
46751: GO 46761
// result = true ;
46753: LD_ADDR_VAR 0 1
46757: PUSH
46758: LD_INT 1
46760: ST_TO_ADDR
// end ;
46761: LD_VAR 0 1
46765: RET
// every 0 0$1 trigger Hrajeme do var Mechanici_volni , Vozidla ; var un , b , v , v2 , i , veh , bedny , bedny2 , bud , volne_bunkry , target , hex ;
46766: LD_EXP 20
46770: IFFALSE 48669
46772: GO 46774
46774: DISABLE
46775: LD_INT 0
46777: PPUSH
46778: PPUSH
46779: PPUSH
46780: PPUSH
46781: PPUSH
46782: PPUSH
46783: PPUSH
46784: PPUSH
46785: PPUSH
46786: PPUSH
46787: PPUSH
46788: PPUSH
46789: PPUSH
46790: PPUSH
// begin if FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik2 ] , [ f_class , class_engineer ] ] ) and FilterAllUnits ( [ [ f_type , unit_building ] , [ f_side , Amik2 ] ] ) then
46791: LD_INT 52
46793: PUSH
46794: EMPTY
46795: LIST
46796: PUSH
46797: LD_INT 22
46799: PUSH
46800: LD_EXP 5
46804: PUSH
46805: EMPTY
46806: LIST
46807: LIST
46808: PUSH
46809: LD_INT 25
46811: PUSH
46812: LD_INT 2
46814: PUSH
46815: EMPTY
46816: LIST
46817: LIST
46818: PUSH
46819: EMPTY
46820: LIST
46821: LIST
46822: LIST
46823: PPUSH
46824: CALL_OW 69
46828: PUSH
46829: LD_INT 21
46831: PUSH
46832: LD_INT 3
46834: PUSH
46835: EMPTY
46836: LIST
46837: LIST
46838: PUSH
46839: LD_INT 22
46841: PUSH
46842: LD_EXP 5
46846: PUSH
46847: EMPTY
46848: LIST
46849: LIST
46850: PUSH
46851: EMPTY
46852: LIST
46853: LIST
46854: PPUSH
46855: CALL_OW 69
46859: AND
46860: IFFALSE 46947
// SetBLevel ( ( FilterAllUnits ( [ [ f_type , unit_building ] , [ f_side , Amik2 ] ] ) ) , GetSkill ( FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik2 ] , [ f_class , class_engineer ] ] ) [ 1 ] , skill_engineering ) ) ;
46862: LD_INT 21
46864: PUSH
46865: LD_INT 3
46867: PUSH
46868: EMPTY
46869: LIST
46870: LIST
46871: PUSH
46872: LD_INT 22
46874: PUSH
46875: LD_EXP 5
46879: PUSH
46880: EMPTY
46881: LIST
46882: LIST
46883: PUSH
46884: EMPTY
46885: LIST
46886: LIST
46887: PPUSH
46888: CALL_OW 69
46892: PPUSH
46893: LD_INT 52
46895: PUSH
46896: EMPTY
46897: LIST
46898: PUSH
46899: LD_INT 22
46901: PUSH
46902: LD_EXP 5
46906: PUSH
46907: EMPTY
46908: LIST
46909: LIST
46910: PUSH
46911: LD_INT 25
46913: PUSH
46914: LD_INT 2
46916: PUSH
46917: EMPTY
46918: LIST
46919: LIST
46920: PUSH
46921: EMPTY
46922: LIST
46923: LIST
46924: LIST
46925: PPUSH
46926: CALL_OW 69
46930: PUSH
46931: LD_INT 1
46933: ARRAY
46934: PPUSH
46935: LD_INT 2
46937: PPUSH
46938: CALL_OW 259
46942: PPUSH
46943: CALL_OW 241
// if FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_class , class_mechanic ] ] ) then
46947: LD_INT 95
46949: PUSH
46950: LD_INT 35
46952: PUSH
46953: EMPTY
46954: LIST
46955: LIST
46956: PUSH
46957: LD_INT 50
46959: PUSH
46960: EMPTY
46961: LIST
46962: PUSH
46963: LD_INT 22
46965: PUSH
46966: LD_EXP 5
46970: PUSH
46971: EMPTY
46972: LIST
46973: LIST
46974: PUSH
46975: LD_INT 25
46977: PUSH
46978: LD_INT 3
46980: PUSH
46981: EMPTY
46982: LIST
46983: LIST
46984: PUSH
46985: EMPTY
46986: LIST
46987: LIST
46988: LIST
46989: LIST
46990: PPUSH
46991: CALL_OW 69
46995: IFFALSE 47918
// begin Mechanici_volni = FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_class , class_mechanic ] ] ) ;
46997: LD_ADDR_VAR 0 1
47001: PUSH
47002: LD_INT 95
47004: PUSH
47005: LD_INT 35
47007: PUSH
47008: EMPTY
47009: LIST
47010: LIST
47011: PUSH
47012: LD_INT 50
47014: PUSH
47015: EMPTY
47016: LIST
47017: PUSH
47018: LD_INT 22
47020: PUSH
47021: LD_EXP 5
47025: PUSH
47026: EMPTY
47027: LIST
47028: LIST
47029: PUSH
47030: LD_INT 25
47032: PUSH
47033: LD_INT 3
47035: PUSH
47036: EMPTY
47037: LIST
47038: LIST
47039: PUSH
47040: EMPTY
47041: LIST
47042: LIST
47043: LIST
47044: LIST
47045: PPUSH
47046: CALL_OW 69
47050: ST_TO_ADDR
// for un in Mechanici_volni do
47051: LD_ADDR_VAR 0 3
47055: PUSH
47056: LD_VAR 0 1
47060: PUSH
47061: FOR_IN
47062: IFFALSE 47916
// begin if IsPlaced ( Am2_Fac_1 ) and IsOutside ( un ) and UnitsInside ( Am2_Fac_1 ) < 6 and GetDistUnitXY ( un , 32 , 14 ) > 5 and GetDistUnitXY ( un , 32 , 14 ) < 11 then
47064: LD_INT 156
47066: PPUSH
47067: CALL_OW 305
47071: PUSH
47072: LD_VAR 0 3
47076: PPUSH
47077: CALL 2607 0 1
47081: AND
47082: PUSH
47083: LD_INT 156
47085: PPUSH
47086: CALL_OW 313
47090: PUSH
47091: LD_INT 6
47093: LESS
47094: AND
47095: PUSH
47096: LD_VAR 0 3
47100: PPUSH
47101: LD_INT 32
47103: PPUSH
47104: LD_INT 14
47106: PPUSH
47107: CALL_OW 297
47111: PUSH
47112: LD_INT 5
47114: GREATER
47115: AND
47116: PUSH
47117: LD_VAR 0 3
47121: PPUSH
47122: LD_INT 32
47124: PPUSH
47125: LD_INT 14
47127: PPUSH
47128: CALL_OW 297
47132: PUSH
47133: LD_INT 11
47135: LESS
47136: AND
47137: IFFALSE 47156
// ComMoveXY ( un , 32 , 14 ) else
47139: LD_VAR 0 3
47143: PPUSH
47144: LD_INT 32
47146: PPUSH
47147: LD_INT 14
47149: PPUSH
47150: CALL_OW 111
47154: GO 47246
// if IsPlaced ( Am2_Fac_2 ) and IsOutside ( un ) and UnitsInside ( Am2_Fac_2 ) < 6 and GetDistUnitXY ( un , 58 , 7 ) > 5 and GetDistUnitXY ( un , 58 , 7 ) < 11 then
47156: LD_INT 157
47158: PPUSH
47159: CALL_OW 305
47163: PUSH
47164: LD_VAR 0 3
47168: PPUSH
47169: CALL 2607 0 1
47173: AND
47174: PUSH
47175: LD_INT 157
47177: PPUSH
47178: CALL_OW 313
47182: PUSH
47183: LD_INT 6
47185: LESS
47186: AND
47187: PUSH
47188: LD_VAR 0 3
47192: PPUSH
47193: LD_INT 58
47195: PPUSH
47196: LD_INT 7
47198: PPUSH
47199: CALL_OW 297
47203: PUSH
47204: LD_INT 5
47206: GREATER
47207: AND
47208: PUSH
47209: LD_VAR 0 3
47213: PPUSH
47214: LD_INT 58
47216: PPUSH
47217: LD_INT 7
47219: PPUSH
47220: CALL_OW 297
47224: PUSH
47225: LD_INT 11
47227: LESS
47228: AND
47229: IFFALSE 47246
// ComMoveXY ( un , 58 , 7 ) ;
47231: LD_VAR 0 3
47235: PPUSH
47236: LD_INT 58
47238: PPUSH
47239: LD_INT 7
47241: PPUSH
47242: CALL_OW 111
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_distxy , 32 , 14 , 5 ] , [ f_not , [ f_lives , 1000 ] ] ] ) or FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_distxy , 58 , 7 , 5 ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
47246: LD_INT 52
47248: PUSH
47249: EMPTY
47250: LIST
47251: PUSH
47252: LD_INT 22
47254: PUSH
47255: LD_EXP 5
47259: PUSH
47260: EMPTY
47261: LIST
47262: LIST
47263: PUSH
47264: LD_INT 21
47266: PUSH
47267: LD_INT 2
47269: PUSH
47270: EMPTY
47271: LIST
47272: LIST
47273: PUSH
47274: LD_INT 92
47276: PUSH
47277: LD_INT 32
47279: PUSH
47280: LD_INT 14
47282: PUSH
47283: LD_INT 5
47285: PUSH
47286: EMPTY
47287: LIST
47288: LIST
47289: LIST
47290: LIST
47291: PUSH
47292: LD_INT 3
47294: PUSH
47295: LD_INT 24
47297: PUSH
47298: LD_INT 1000
47300: PUSH
47301: EMPTY
47302: LIST
47303: LIST
47304: PUSH
47305: EMPTY
47306: LIST
47307: LIST
47308: PUSH
47309: EMPTY
47310: LIST
47311: LIST
47312: LIST
47313: LIST
47314: LIST
47315: PPUSH
47316: CALL_OW 69
47320: PUSH
47321: LD_INT 52
47323: PUSH
47324: EMPTY
47325: LIST
47326: PUSH
47327: LD_INT 22
47329: PUSH
47330: LD_EXP 5
47334: PUSH
47335: EMPTY
47336: LIST
47337: LIST
47338: PUSH
47339: LD_INT 21
47341: PUSH
47342: LD_INT 2
47344: PUSH
47345: EMPTY
47346: LIST
47347: LIST
47348: PUSH
47349: LD_INT 92
47351: PUSH
47352: LD_INT 58
47354: PUSH
47355: LD_INT 7
47357: PUSH
47358: LD_INT 5
47360: PUSH
47361: EMPTY
47362: LIST
47363: LIST
47364: LIST
47365: LIST
47366: PUSH
47367: LD_INT 3
47369: PUSH
47370: LD_INT 24
47372: PUSH
47373: LD_INT 1000
47375: PUSH
47376: EMPTY
47377: LIST
47378: LIST
47379: PUSH
47380: EMPTY
47381: LIST
47382: LIST
47383: PUSH
47384: EMPTY
47385: LIST
47386: LIST
47387: LIST
47388: LIST
47389: LIST
47390: PPUSH
47391: CALL_OW 69
47395: OR
47396: IFFALSE 47676
// begin v = FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_distxy , 32 , 14 , 7 ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
47398: LD_ADDR_VAR 0 5
47402: PUSH
47403: LD_INT 52
47405: PUSH
47406: EMPTY
47407: LIST
47408: PUSH
47409: LD_INT 22
47411: PUSH
47412: LD_EXP 5
47416: PUSH
47417: EMPTY
47418: LIST
47419: LIST
47420: PUSH
47421: LD_INT 21
47423: PUSH
47424: LD_INT 2
47426: PUSH
47427: EMPTY
47428: LIST
47429: LIST
47430: PUSH
47431: LD_INT 92
47433: PUSH
47434: LD_INT 32
47436: PUSH
47437: LD_INT 14
47439: PUSH
47440: LD_INT 7
47442: PUSH
47443: EMPTY
47444: LIST
47445: LIST
47446: LIST
47447: LIST
47448: PUSH
47449: LD_INT 3
47451: PUSH
47452: LD_INT 24
47454: PUSH
47455: LD_INT 1000
47457: PUSH
47458: EMPTY
47459: LIST
47460: LIST
47461: PUSH
47462: EMPTY
47463: LIST
47464: LIST
47465: PUSH
47466: EMPTY
47467: LIST
47468: LIST
47469: LIST
47470: LIST
47471: LIST
47472: PPUSH
47473: CALL_OW 69
47477: ST_TO_ADDR
// v2 = FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_distxy , 58 , 7 , 7 ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
47478: LD_ADDR_VAR 0 6
47482: PUSH
47483: LD_INT 52
47485: PUSH
47486: EMPTY
47487: LIST
47488: PUSH
47489: LD_INT 22
47491: PUSH
47492: LD_EXP 5
47496: PUSH
47497: EMPTY
47498: LIST
47499: LIST
47500: PUSH
47501: LD_INT 21
47503: PUSH
47504: LD_INT 2
47506: PUSH
47507: EMPTY
47508: LIST
47509: LIST
47510: PUSH
47511: LD_INT 92
47513: PUSH
47514: LD_INT 58
47516: PUSH
47517: LD_INT 7
47519: PUSH
47520: LD_INT 7
47522: PUSH
47523: EMPTY
47524: LIST
47525: LIST
47526: LIST
47527: LIST
47528: PUSH
47529: LD_INT 3
47531: PUSH
47532: LD_INT 24
47534: PUSH
47535: LD_INT 1000
47537: PUSH
47538: EMPTY
47539: LIST
47540: LIST
47541: PUSH
47542: EMPTY
47543: LIST
47544: LIST
47545: PUSH
47546: EMPTY
47547: LIST
47548: LIST
47549: LIST
47550: LIST
47551: LIST
47552: PPUSH
47553: CALL_OW 69
47557: ST_TO_ADDR
// if v then
47558: LD_VAR 0 5
47562: IFFALSE 47616
// if v [ 1 ] and Am2_Fac_1 = IsInUnit ( un ) then
47564: LD_VAR 0 5
47568: PUSH
47569: LD_INT 1
47571: ARRAY
47572: PUSH
47573: LD_INT 156
47575: PUSH
47576: LD_VAR 0 3
47580: PPUSH
47581: CALL_OW 310
47585: EQUAL
47586: AND
47587: IFFALSE 47616
// begin VyjdiVen ( un ) ;
47589: LD_VAR 0 3
47593: PPUSH
47594: CALL 2645 0 1
// ComRepairVehicle ( un , v [ 1 ] ) ;
47598: LD_VAR 0 3
47602: PPUSH
47603: LD_VAR 0 5
47607: PUSH
47608: LD_INT 1
47610: ARRAY
47611: PPUSH
47612: CALL_OW 129
// end ; if v2 then
47616: LD_VAR 0 6
47620: IFFALSE 47674
// if v2 [ 1 ] and Am2_Fac_2 = IsInUnit ( un ) then
47622: LD_VAR 0 6
47626: PUSH
47627: LD_INT 1
47629: ARRAY
47630: PUSH
47631: LD_INT 157
47633: PUSH
47634: LD_VAR 0 3
47638: PPUSH
47639: CALL_OW 310
47643: EQUAL
47644: AND
47645: IFFALSE 47674
// begin VyjdiVen ( un ) ;
47647: LD_VAR 0 3
47651: PPUSH
47652: CALL 2645 0 1
// ComRepairVehicle ( un , v2 [ 1 ] ) ;
47656: LD_VAR 0 3
47660: PPUSH
47661: LD_VAR 0 6
47665: PUSH
47666: LD_INT 1
47668: ARRAY
47669: PPUSH
47670: CALL_OW 129
// end ; end else
47674: GO 47914
// if IsOk ( Am2_Vez_1 ) and IsOutside ( un ) and GetSide ( Am2_Vez_1 ) = Amik2 and GetDistUnits ( un , Am2_Vez_1 ) < 12 and UnitsInside ( Am2_Vez_1 ) < 3 then
47676: LD_INT 166
47678: PPUSH
47679: CALL_OW 302
47683: PUSH
47684: LD_VAR 0 3
47688: PPUSH
47689: CALL 2607 0 1
47693: AND
47694: PUSH
47695: LD_INT 166
47697: PPUSH
47698: CALL_OW 255
47702: PUSH
47703: LD_EXP 5
47707: EQUAL
47708: AND
47709: PUSH
47710: LD_VAR 0 3
47714: PPUSH
47715: LD_INT 166
47717: PPUSH
47718: CALL_OW 296
47722: PUSH
47723: LD_INT 12
47725: LESS
47726: AND
47727: PUSH
47728: LD_INT 166
47730: PPUSH
47731: CALL_OW 313
47735: PUSH
47736: LD_INT 3
47738: LESS
47739: AND
47740: IFFALSE 47756
// ComEnterUnit ( un , Am2_Vez_1 ) else
47742: LD_VAR 0 3
47746: PPUSH
47747: LD_INT 166
47749: PPUSH
47750: CALL_OW 120
47754: GO 47914
// if IsOk ( Am2_Fac_1 ) and IsOutside ( un ) and GetSide ( Am2_Fac_1 ) = Amik2 and GetDistUnits ( un , Am2_Fac_1 ) < 12 and UnitsInside ( Am2_Fac_1 ) < 6 then
47756: LD_INT 156
47758: PPUSH
47759: CALL_OW 302
47763: PUSH
47764: LD_VAR 0 3
47768: PPUSH
47769: CALL 2607 0 1
47773: AND
47774: PUSH
47775: LD_INT 156
47777: PPUSH
47778: CALL_OW 255
47782: PUSH
47783: LD_EXP 5
47787: EQUAL
47788: AND
47789: PUSH
47790: LD_VAR 0 3
47794: PPUSH
47795: LD_INT 156
47797: PPUSH
47798: CALL_OW 296
47802: PUSH
47803: LD_INT 12
47805: LESS
47806: AND
47807: PUSH
47808: LD_INT 156
47810: PPUSH
47811: CALL_OW 313
47815: PUSH
47816: LD_INT 6
47818: LESS
47819: AND
47820: IFFALSE 47836
// ComEnterUnit ( un , Am2_Fac_1 ) else
47822: LD_VAR 0 3
47826: PPUSH
47827: LD_INT 156
47829: PPUSH
47830: CALL_OW 120
47834: GO 47914
// if IsOk ( Am2_Fac_2 ) and IsOutside ( un ) and GetSide ( Am2_Fac_2 ) = Amik2 and GetDistUnits ( un , Am2_Fac_2 ) < 12 and UnitsInside ( Am2_Fac_2 ) < 6 then
47836: LD_INT 157
47838: PPUSH
47839: CALL_OW 302
47843: PUSH
47844: LD_VAR 0 3
47848: PPUSH
47849: CALL 2607 0 1
47853: AND
47854: PUSH
47855: LD_INT 157
47857: PPUSH
47858: CALL_OW 255
47862: PUSH
47863: LD_EXP 5
47867: EQUAL
47868: AND
47869: PUSH
47870: LD_VAR 0 3
47874: PPUSH
47875: LD_INT 157
47877: PPUSH
47878: CALL_OW 296
47882: PUSH
47883: LD_INT 12
47885: LESS
47886: AND
47887: PUSH
47888: LD_INT 157
47890: PPUSH
47891: CALL_OW 313
47895: PUSH
47896: LD_INT 6
47898: LESS
47899: AND
47900: IFFALSE 47914
// ComEnterUnit ( un , Am2_Fac_2 ) ;
47902: LD_VAR 0 3
47906: PPUSH
47907: LD_INT 157
47909: PPUSH
47910: CALL_OW 120
// end ;
47914: GO 47061
47916: POP
47917: POP
// end ; if FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] ] ) then
47918: LD_INT 95
47920: PUSH
47921: LD_INT 35
47923: PUSH
47924: EMPTY
47925: LIST
47926: LIST
47927: PUSH
47928: LD_INT 50
47930: PUSH
47931: EMPTY
47932: LIST
47933: PUSH
47934: LD_INT 22
47936: PUSH
47937: LD_EXP 5
47941: PUSH
47942: EMPTY
47943: LIST
47944: LIST
47945: PUSH
47946: LD_INT 21
47948: PUSH
47949: LD_INT 2
47951: PUSH
47952: EMPTY
47953: LIST
47954: LIST
47955: PUSH
47956: EMPTY
47957: LIST
47958: LIST
47959: LIST
47960: LIST
47961: PPUSH
47962: CALL_OW 69
47966: IFFALSE 48668
// begin Vozidla = FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] ] ) ;
47968: LD_ADDR_VAR 0 2
47972: PUSH
47973: LD_INT 95
47975: PUSH
47976: LD_INT 35
47978: PUSH
47979: EMPTY
47980: LIST
47981: LIST
47982: PUSH
47983: LD_INT 50
47985: PUSH
47986: EMPTY
47987: LIST
47988: PUSH
47989: LD_INT 22
47991: PUSH
47992: LD_EXP 5
47996: PUSH
47997: EMPTY
47998: LIST
47999: LIST
48000: PUSH
48001: LD_INT 21
48003: PUSH
48004: LD_INT 2
48006: PUSH
48007: EMPTY
48008: LIST
48009: LIST
48010: PUSH
48011: EMPTY
48012: LIST
48013: LIST
48014: LIST
48015: LIST
48016: PPUSH
48017: CALL_OW 69
48021: ST_TO_ADDR
// for veh in Vozidla do
48022: LD_ADDR_VAR 0 8
48026: PUSH
48027: LD_VAR 0 2
48031: PUSH
48032: FOR_IN
48033: IFFALSE 48666
// begin if FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_crane ] ] ] ) + 0 >= dif_amik_tanky_max then
48035: LD_INT 95
48037: PUSH
48038: LD_INT 35
48040: PUSH
48041: EMPTY
48042: LIST
48043: LIST
48044: PUSH
48045: LD_INT 22
48047: PUSH
48048: LD_EXP 5
48052: PUSH
48053: EMPTY
48054: LIST
48055: LIST
48056: PUSH
48057: LD_INT 21
48059: PUSH
48060: LD_INT 2
48062: PUSH
48063: EMPTY
48064: LIST
48065: LIST
48066: PUSH
48067: LD_INT 3
48069: PUSH
48070: LD_INT 34
48072: PUSH
48073: LD_INT 13
48075: PUSH
48076: EMPTY
48077: LIST
48078: LIST
48079: PUSH
48080: EMPTY
48081: LIST
48082: LIST
48083: PUSH
48084: EMPTY
48085: LIST
48086: LIST
48087: LIST
48088: LIST
48089: PPUSH
48090: CALL_OW 69
48094: PUSH
48095: LD_INT 0
48097: PLUS
48098: PUSH
48099: LD_EXP 36
48103: GREATEREQUAL
48104: IFFALSE 48151
// if not veh in Am2_Levy_Attack and not GetWeapon ( veh ) = us_crane then
48106: LD_VAR 0 8
48110: PUSH
48111: LD_EXP 91
48115: IN
48116: NOT
48117: PUSH
48118: LD_VAR 0 8
48122: PPUSH
48123: CALL_OW 264
48127: PUSH
48128: LD_INT 13
48130: EQUAL
48131: NOT
48132: AND
48133: IFFALSE 48151
// Am2_Levy_Attack = Am2_Levy_Attack ^ veh ;
48135: LD_ADDR_EXP 91
48139: PUSH
48140: LD_EXP 91
48144: PUSH
48145: LD_VAR 0 8
48149: ADD
48150: ST_TO_ADDR
// if GetLives ( veh ) < 550 and ( not GetDistUnitXY ( veh , 32 , 14 ) <= 5 or not GetDistUnitXY ( veh , 58 , 7 ) <= 5 ) then
48151: LD_VAR 0 8
48155: PPUSH
48156: CALL_OW 256
48160: PUSH
48161: LD_INT 550
48163: LESS
48164: PUSH
48165: LD_VAR 0 8
48169: PPUSH
48170: LD_INT 32
48172: PPUSH
48173: LD_INT 14
48175: PPUSH
48176: CALL_OW 297
48180: PUSH
48181: LD_INT 5
48183: LESSEQUAL
48184: NOT
48185: PUSH
48186: LD_VAR 0 8
48190: PPUSH
48191: LD_INT 58
48193: PPUSH
48194: LD_INT 7
48196: PPUSH
48197: CALL_OW 297
48201: PUSH
48202: LD_INT 5
48204: LESSEQUAL
48205: NOT
48206: OR
48207: AND
48208: IFFALSE 48287
// begin hex = FindNearestPoint ( [ 32 , 14 , 58 , 7 ] , GetX ( veh ) , GetY ( veh ) ) ;
48210: LD_ADDR_VAR 0 14
48214: PUSH
48215: LD_INT 32
48217: PUSH
48218: LD_INT 14
48220: PUSH
48221: LD_INT 58
48223: PUSH
48224: LD_INT 7
48226: PUSH
48227: EMPTY
48228: LIST
48229: LIST
48230: LIST
48231: LIST
48232: PPUSH
48233: LD_VAR 0 8
48237: PPUSH
48238: CALL_OW 250
48242: PPUSH
48243: LD_VAR 0 8
48247: PPUSH
48248: CALL_OW 251
48252: PPUSH
48253: CALL_OW 439
48257: ST_TO_ADDR
// ComMoveXY ( veh , hex [ 1 ] , hex [ 2 ] ) ;
48258: LD_VAR 0 8
48262: PPUSH
48263: LD_VAR 0 14
48267: PUSH
48268: LD_INT 1
48270: ARRAY
48271: PPUSH
48272: LD_VAR 0 14
48276: PUSH
48277: LD_INT 2
48279: ARRAY
48280: PPUSH
48281: CALL_OW 111
// end else
48285: GO 48664
// if GetLives ( veh ) < 1000 and ( GetDistUnitXY ( veh , 32 , 14 ) <= 5 or GetDistUnitXY ( veh , 58 , 7 ) <= 5 ) then
48287: LD_VAR 0 8
48291: PPUSH
48292: CALL_OW 256
48296: PUSH
48297: LD_INT 1000
48299: LESS
48300: PUSH
48301: LD_VAR 0 8
48305: PPUSH
48306: LD_INT 32
48308: PPUSH
48309: LD_INT 14
48311: PPUSH
48312: CALL_OW 297
48316: PUSH
48317: LD_INT 5
48319: LESSEQUAL
48320: PUSH
48321: LD_VAR 0 8
48325: PPUSH
48326: LD_INT 58
48328: PPUSH
48329: LD_INT 7
48331: PPUSH
48332: CALL_OW 297
48336: PUSH
48337: LD_INT 5
48339: LESSEQUAL
48340: OR
48341: AND
48342: IFFALSE 48346
// else
48344: GO 48664
// if FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) then
48346: LD_INT 95
48348: PUSH
48349: LD_INT 35
48351: PUSH
48352: EMPTY
48353: LIST
48354: LIST
48355: PUSH
48356: LD_INT 52
48358: PUSH
48359: EMPTY
48360: LIST
48361: PUSH
48362: LD_INT 22
48364: PUSH
48365: LD_EXP 5
48369: PUSH
48370: EMPTY
48371: LIST
48372: LIST
48373: PUSH
48374: LD_INT 21
48376: PUSH
48377: LD_INT 3
48379: PUSH
48380: EMPTY
48381: LIST
48382: LIST
48383: PUSH
48384: LD_INT 3
48386: PUSH
48387: LD_INT 24
48389: PUSH
48390: LD_INT 250
48392: PUSH
48393: EMPTY
48394: LIST
48395: LIST
48396: PUSH
48397: EMPTY
48398: LIST
48399: LIST
48400: PUSH
48401: EMPTY
48402: LIST
48403: LIST
48404: LIST
48405: LIST
48406: LIST
48407: PPUSH
48408: CALL_OW 69
48412: IFFALSE 48506
// begin b = FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) ;
48414: LD_ADDR_VAR 0 4
48418: PUSH
48419: LD_INT 95
48421: PUSH
48422: LD_INT 35
48424: PUSH
48425: EMPTY
48426: LIST
48427: LIST
48428: PUSH
48429: LD_INT 52
48431: PUSH
48432: EMPTY
48433: LIST
48434: PUSH
48435: LD_INT 22
48437: PUSH
48438: LD_EXP 5
48442: PUSH
48443: EMPTY
48444: LIST
48445: LIST
48446: PUSH
48447: LD_INT 21
48449: PUSH
48450: LD_INT 3
48452: PUSH
48453: EMPTY
48454: LIST
48455: LIST
48456: PUSH
48457: LD_INT 3
48459: PUSH
48460: LD_INT 24
48462: PUSH
48463: LD_INT 250
48465: PUSH
48466: EMPTY
48467: LIST
48468: LIST
48469: PUSH
48470: EMPTY
48471: LIST
48472: LIST
48473: PUSH
48474: EMPTY
48475: LIST
48476: LIST
48477: LIST
48478: LIST
48479: LIST
48480: PPUSH
48481: CALL_OW 69
48485: ST_TO_ADDR
// ComRepairBuilding ( veh , b [ 1 ] ) ;
48486: LD_VAR 0 8
48490: PPUSH
48491: LD_VAR 0 4
48495: PUSH
48496: LD_INT 1
48498: ARRAY
48499: PPUSH
48500: CALL_OW 130
// end else
48504: GO 48664
// if FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
48506: LD_INT 95
48508: PUSH
48509: LD_INT 35
48511: PUSH
48512: EMPTY
48513: LIST
48514: LIST
48515: PUSH
48516: LD_INT 52
48518: PUSH
48519: EMPTY
48520: LIST
48521: PUSH
48522: LD_INT 22
48524: PUSH
48525: LD_EXP 5
48529: PUSH
48530: EMPTY
48531: LIST
48532: LIST
48533: PUSH
48534: LD_INT 21
48536: PUSH
48537: LD_INT 3
48539: PUSH
48540: EMPTY
48541: LIST
48542: LIST
48543: PUSH
48544: LD_INT 3
48546: PUSH
48547: LD_INT 24
48549: PUSH
48550: LD_INT 1000
48552: PUSH
48553: EMPTY
48554: LIST
48555: LIST
48556: PUSH
48557: EMPTY
48558: LIST
48559: LIST
48560: PUSH
48561: EMPTY
48562: LIST
48563: LIST
48564: LIST
48565: LIST
48566: LIST
48567: PPUSH
48568: CALL_OW 69
48572: IFFALSE 48664
// begin b = FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
48574: LD_ADDR_VAR 0 4
48578: PUSH
48579: LD_INT 95
48581: PUSH
48582: LD_INT 35
48584: PUSH
48585: EMPTY
48586: LIST
48587: LIST
48588: PUSH
48589: LD_INT 52
48591: PUSH
48592: EMPTY
48593: LIST
48594: PUSH
48595: LD_INT 22
48597: PUSH
48598: LD_EXP 5
48602: PUSH
48603: EMPTY
48604: LIST
48605: LIST
48606: PUSH
48607: LD_INT 21
48609: PUSH
48610: LD_INT 3
48612: PUSH
48613: EMPTY
48614: LIST
48615: LIST
48616: PUSH
48617: LD_INT 3
48619: PUSH
48620: LD_INT 24
48622: PUSH
48623: LD_INT 1000
48625: PUSH
48626: EMPTY
48627: LIST
48628: LIST
48629: PUSH
48630: EMPTY
48631: LIST
48632: LIST
48633: PUSH
48634: EMPTY
48635: LIST
48636: LIST
48637: LIST
48638: LIST
48639: LIST
48640: PPUSH
48641: CALL_OW 69
48645: ST_TO_ADDR
// ComRepairBuilding ( veh , b [ 1 ] ) ;
48646: LD_VAR 0 8
48650: PPUSH
48651: LD_VAR 0 4
48655: PUSH
48656: LD_INT 1
48658: ARRAY
48659: PPUSH
48660: CALL_OW 130
// end ; end ;
48664: GO 48032
48666: POP
48667: POP
// end ; enable ;
48668: ENABLE
// end ;
48669: PPOPN 14
48671: END
// var JerabWaiter ; every 0 0$5 do var jerabek ;
48672: GO 48674
48674: DISABLE
48675: LD_INT 0
48677: PPUSH
// begin if Editor then
48678: LD_EXP 1
48682: IFFALSE 48693
// Wait ( 0 0$35 ) else
48684: LD_INT 1225
48686: PPUSH
48687: CALL_OW 67
48691: GO 48702
// Wait ( JerabWaiter ) ;
48693: LD_LOC 21
48697: PPUSH
48698: CALL_OW 67
// if GetWorkingProgress ( Am2_Fac_1 ) then
48702: LD_INT 156
48704: PPUSH
48705: CALL_OW 328
48709: IFFALSE 48728
// repeat begin Wait ( 0 0$30 ) ;
48711: LD_INT 1050
48713: PPUSH
48714: CALL_OW 67
// end until not GetWorkingProgress ( Am2_Fac_1 ) ;
48718: LD_INT 156
48720: PPUSH
48721: CALL_OW 328
48725: NOT
48726: IFFALSE 48711
// jerabek = FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_weapon , us_crane ] ] ) ;
48728: LD_ADDR_VAR 0 1
48732: PUSH
48733: LD_INT 95
48735: PUSH
48736: LD_INT 35
48738: PUSH
48739: EMPTY
48740: LIST
48741: LIST
48742: PUSH
48743: LD_INT 52
48745: PUSH
48746: EMPTY
48747: LIST
48748: PUSH
48749: LD_INT 22
48751: PUSH
48752: LD_EXP 5
48756: PUSH
48757: EMPTY
48758: LIST
48759: LIST
48760: PUSH
48761: LD_INT 21
48763: PUSH
48764: LD_INT 2
48766: PUSH
48767: EMPTY
48768: LIST
48769: LIST
48770: PUSH
48771: LD_INT 34
48773: PUSH
48774: LD_INT 13
48776: PUSH
48777: EMPTY
48778: LIST
48779: LIST
48780: PUSH
48781: EMPTY
48782: LIST
48783: LIST
48784: LIST
48785: LIST
48786: LIST
48787: PPUSH
48788: CALL_OW 69
48792: ST_TO_ADDR
// if not jerabek + 0 >= dif_jerabu and AmiciFungujou then
48793: LD_VAR 0 1
48797: PUSH
48798: LD_INT 0
48800: PLUS
48801: PUSH
48802: LD_EXP 40
48806: GREATEREQUAL
48807: NOT
48808: PUSH
48809: CALL 46658 0 0
48813: AND
48814: IFFALSE 48904
// begin if not FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_btype , b_ext_noncombat ] ] ) then
48816: LD_INT 95
48818: PUSH
48819: LD_INT 35
48821: PUSH
48822: EMPTY
48823: LIST
48824: LIST
48825: PUSH
48826: LD_INT 50
48828: PUSH
48829: EMPTY
48830: LIST
48831: PUSH
48832: LD_INT 22
48834: PUSH
48835: LD_EXP 5
48839: PUSH
48840: EMPTY
48841: LIST
48842: LIST
48843: PUSH
48844: LD_INT 30
48846: PUSH
48847: LD_INT 19
48849: PUSH
48850: EMPTY
48851: LIST
48852: LIST
48853: PUSH
48854: EMPTY
48855: LIST
48856: LIST
48857: LIST
48858: LIST
48859: PPUSH
48860: CALL_OW 69
48864: NOT
48865: IFFALSE 48869
// exit ;
48867: GO 48905
// ComConstruct ( Am2_Fac_1 , dif_jerab_podvozek , engine_siberite , control_remote , us_crane ) ;
48869: LD_INT 156
48871: PPUSH
48872: LD_EXP 41
48876: PPUSH
48877: LD_INT 3
48879: PPUSH
48880: LD_INT 2
48882: PPUSH
48883: LD_INT 13
48885: PPUSH
48886: CALL_OW 125
// JerabWaiter = JerabWaiter + 1 1$30 ;
48890: LD_ADDR_LOC 21
48894: PUSH
48895: LD_LOC 21
48899: PUSH
48900: LD_INT 3150
48902: PLUS
48903: ST_TO_ADDR
// end ; enable ;
48904: ENABLE
// end ;
48905: PPOPN 1
48907: END
// export Am2_Levy_Attack ; every 0 0$1 do
48908: GO 48910
48910: DISABLE
// begin if not ZijeNekdoList ( Am2_Levy_Attack ) then
48911: LD_EXP 91
48915: PPUSH
48916: CALL 8801 0 1
48920: NOT
48921: IFFALSE 48939
// begin Probiha_McAttack = false ;
48923: LD_ADDR_LOC 25
48927: PUSH
48928: LD_INT 0
48930: ST_TO_ADDR
// Probiha_Mc2 = false ;
48931: LD_ADDR_LOC 26
48935: PUSH
48936: LD_INT 0
48938: ST_TO_ADDR
// end ; enable ;
48939: ENABLE
// end ;
48940: END
// every 0 0$3 trigger ( IsOk ( Am2_Fac_1 ) or IsOk ( Am2_Fac_2 ) ) and ( GetSide ( Am2_Fac_1 ) = Amik2 and GetSide ( Am2_Fac_2 ) = Amik2 ) and not ZijeNekdoList ( Am2_Levy_Attack ) marked 08 do
48941: LD_INT 156
48943: PPUSH
48944: CALL_OW 302
48948: PUSH
48949: LD_INT 157
48951: PPUSH
48952: CALL_OW 302
48956: OR
48957: PUSH
48958: LD_INT 156
48960: PPUSH
48961: CALL_OW 255
48965: PUSH
48966: LD_EXP 5
48970: EQUAL
48971: PUSH
48972: LD_INT 157
48974: PPUSH
48975: CALL_OW 255
48979: PUSH
48980: LD_EXP 5
48984: EQUAL
48985: AND
48986: AND
48987: PUSH
48988: LD_EXP 91
48992: PPUSH
48993: CALL 8801 0 1
48997: NOT
48998: AND
48999: IFFALSE 49129
49001: GO 49003
49003: DISABLE
// begin if Editor then
49004: LD_EXP 1
49008: IFFALSE 49019
// Wait ( 0 0$30 ) else
49010: LD_INT 1050
49012: PPUSH
49013: CALL_OW 67
49017: GO 49036
// Wait ( Rand ( 7 7$00 , dif_am2_build_wait ) ) ;
49019: LD_INT 14700
49021: PPUSH
49022: LD_EXP 43
49026: PPUSH
49027: CALL_OW 12
49031: PPUSH
49032: CALL_OW 67
// repeat begin Vyrabej ( [ Am2_Fac_1 , Am2_Fac_2 ] ) ;
49036: LD_INT 156
49038: PUSH
49039: LD_INT 157
49041: PUSH
49042: EMPTY
49043: LIST
49044: LIST
49045: PPUSH
49046: CALL 49130 0 1
// Wait ( 0 0$5 ) ;
49050: LD_INT 175
49052: PPUSH
49053: CALL_OW 67
// end until FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_crane ] ] ] ) + 0 >= dif_amik_tanky_max ;
49057: LD_INT 95
49059: PUSH
49060: LD_INT 35
49062: PUSH
49063: EMPTY
49064: LIST
49065: LIST
49066: PUSH
49067: LD_INT 22
49069: PUSH
49070: LD_EXP 5
49074: PUSH
49075: EMPTY
49076: LIST
49077: LIST
49078: PUSH
49079: LD_INT 21
49081: PUSH
49082: LD_INT 2
49084: PUSH
49085: EMPTY
49086: LIST
49087: LIST
49088: PUSH
49089: LD_INT 3
49091: PUSH
49092: LD_INT 34
49094: PUSH
49095: LD_INT 13
49097: PUSH
49098: EMPTY
49099: LIST
49100: LIST
49101: PUSH
49102: EMPTY
49103: LIST
49104: LIST
49105: PUSH
49106: EMPTY
49107: LIST
49108: LIST
49109: LIST
49110: LIST
49111: PPUSH
49112: CALL_OW 69
49116: PUSH
49117: LD_INT 0
49119: PLUS
49120: PUSH
49121: LD_EXP 36
49125: GREATEREQUAL
49126: IFFALSE 49036
// enable ;
49128: ENABLE
// end ;
49129: END
// function Vyrabej ( Tovarny ) ; var tanky ; var Tovarna ; var list , i ; begin
49130: LD_INT 0
49132: PPUSH
49133: PPUSH
49134: PPUSH
49135: PPUSH
49136: PPUSH
// list = Tovarny ;
49137: LD_ADDR_VAR 0 5
49141: PUSH
49142: LD_VAR 0 1
49146: ST_TO_ADDR
// for Tovarna in Tovarny do
49147: LD_ADDR_VAR 0 4
49151: PUSH
49152: LD_VAR 0 1
49156: PUSH
49157: FOR_IN
49158: IFFALSE 49541
// begin if not IsOk ( Tovarna ) then
49160: LD_VAR 0 4
49164: PPUSH
49165: CALL_OW 302
49169: NOT
49170: IFFALSE 49188
// list = list diff Tovarna ;
49172: LD_ADDR_VAR 0 5
49176: PUSH
49177: LD_VAR 0 5
49181: PUSH
49182: LD_VAR 0 4
49186: DIFF
49187: ST_TO_ADDR
// if GetWorkingProgress ( Tovarna ) then
49188: LD_VAR 0 4
49192: PPUSH
49193: CALL_OW 328
49197: IFFALSE 49215
// list = list diff Tovarna ;
49199: LD_ADDR_VAR 0 5
49203: PUSH
49204: LD_VAR 0 5
49208: PUSH
49209: LD_VAR 0 4
49213: DIFF
49214: ST_TO_ADDR
// if not UnitsInside ( Tovarna ) then
49215: LD_VAR 0 4
49219: PPUSH
49220: CALL_OW 313
49224: NOT
49225: IFFALSE 49243
// list = list diff Tovarna ;
49227: LD_ADDR_VAR 0 5
49231: PUSH
49232: LD_VAR 0 5
49236: PUSH
49237: LD_VAR 0 4
49241: DIFF
49242: ST_TO_ADDR
// if not GetSide ( Tovarna ) = Amik2 then
49243: LD_VAR 0 4
49247: PPUSH
49248: CALL_OW 255
49252: PUSH
49253: LD_EXP 5
49257: EQUAL
49258: NOT
49259: IFFALSE 49277
// list = list diff Tovarna ;
49261: LD_ADDR_VAR 0 5
49265: PUSH
49266: LD_VAR 0 5
49270: PUSH
49271: LD_VAR 0 4
49275: DIFF
49276: ST_TO_ADDR
// if not FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_btype , b_factory ] ] ) then
49277: LD_INT 95
49279: PUSH
49280: LD_INT 35
49282: PUSH
49283: EMPTY
49284: LIST
49285: LIST
49286: PUSH
49287: LD_INT 50
49289: PUSH
49290: EMPTY
49291: LIST
49292: PUSH
49293: LD_INT 22
49295: PUSH
49296: LD_EXP 5
49300: PUSH
49301: EMPTY
49302: LIST
49303: LIST
49304: PUSH
49305: LD_INT 30
49307: PUSH
49308: LD_INT 3
49310: PUSH
49311: EMPTY
49312: LIST
49313: LIST
49314: PUSH
49315: EMPTY
49316: LIST
49317: LIST
49318: LIST
49319: LIST
49320: PPUSH
49321: CALL_OW 69
49325: NOT
49326: IFFALSE 49332
// exit ;
49328: POP
49329: POP
49330: GO 49661
// if not FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_btype , b_ext_siberium ] , [ f_not , [ f_constructed ] ] ] ) then
49332: LD_INT 95
49334: PUSH
49335: LD_INT 35
49337: PUSH
49338: EMPTY
49339: LIST
49340: LIST
49341: PUSH
49342: LD_INT 50
49344: PUSH
49345: EMPTY
49346: LIST
49347: PUSH
49348: LD_INT 22
49350: PUSH
49351: LD_EXP 5
49355: PUSH
49356: EMPTY
49357: LIST
49358: LIST
49359: PUSH
49360: LD_INT 30
49362: PUSH
49363: LD_INT 21
49365: PUSH
49366: EMPTY
49367: LIST
49368: LIST
49369: PUSH
49370: LD_INT 3
49372: PUSH
49373: LD_INT 57
49375: PUSH
49376: EMPTY
49377: LIST
49378: PUSH
49379: EMPTY
49380: LIST
49381: LIST
49382: PUSH
49383: EMPTY
49384: LIST
49385: LIST
49386: LIST
49387: LIST
49388: LIST
49389: PPUSH
49390: CALL_OW 69
49394: NOT
49395: IFFALSE 49401
// exit ;
49397: POP
49398: POP
49399: GO 49661
// if not FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_btype , b_ext_radar ] , [ f_not , [ f_constructed ] ] ] ) then
49401: LD_INT 95
49403: PUSH
49404: LD_INT 35
49406: PUSH
49407: EMPTY
49408: LIST
49409: LIST
49410: PUSH
49411: LD_INT 50
49413: PUSH
49414: EMPTY
49415: LIST
49416: PUSH
49417: LD_INT 22
49419: PUSH
49420: LD_EXP 5
49424: PUSH
49425: EMPTY
49426: LIST
49427: LIST
49428: PUSH
49429: LD_INT 30
49431: PUSH
49432: LD_INT 20
49434: PUSH
49435: EMPTY
49436: LIST
49437: LIST
49438: PUSH
49439: LD_INT 3
49441: PUSH
49442: LD_INT 57
49444: PUSH
49445: EMPTY
49446: LIST
49447: PUSH
49448: EMPTY
49449: LIST
49450: LIST
49451: PUSH
49452: EMPTY
49453: LIST
49454: LIST
49455: LIST
49456: LIST
49457: LIST
49458: PPUSH
49459: CALL_OW 69
49463: NOT
49464: IFFALSE 49470
// exit ;
49466: POP
49467: POP
49468: GO 49661
// if not FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_btype , b_ext_track ] , [ f_not , [ f_constructed ] ] ] ) then
49470: LD_INT 95
49472: PUSH
49473: LD_INT 35
49475: PUSH
49476: EMPTY
49477: LIST
49478: LIST
49479: PUSH
49480: LD_INT 50
49482: PUSH
49483: EMPTY
49484: LIST
49485: PUSH
49486: LD_INT 22
49488: PUSH
49489: LD_EXP 5
49493: PUSH
49494: EMPTY
49495: LIST
49496: LIST
49497: PUSH
49498: LD_INT 30
49500: PUSH
49501: LD_INT 16
49503: PUSH
49504: EMPTY
49505: LIST
49506: LIST
49507: PUSH
49508: LD_INT 3
49510: PUSH
49511: LD_INT 57
49513: PUSH
49514: EMPTY
49515: LIST
49516: PUSH
49517: EMPTY
49518: LIST
49519: LIST
49520: PUSH
49521: EMPTY
49522: LIST
49523: LIST
49524: LIST
49525: LIST
49526: LIST
49527: PPUSH
49528: CALL_OW 69
49532: NOT
49533: IFFALSE 49539
// exit ;
49535: POP
49536: POP
49537: GO 49661
// end ;
49539: GO 49157
49541: POP
49542: POP
// tanky = FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_crane ] ] ] ) ;
49543: LD_ADDR_VAR 0 3
49547: PUSH
49548: LD_INT 95
49550: PUSH
49551: LD_INT 35
49553: PUSH
49554: EMPTY
49555: LIST
49556: LIST
49557: PUSH
49558: LD_INT 22
49560: PUSH
49561: LD_EXP 5
49565: PUSH
49566: EMPTY
49567: LIST
49568: LIST
49569: PUSH
49570: LD_INT 21
49572: PUSH
49573: LD_INT 2
49575: PUSH
49576: EMPTY
49577: LIST
49578: LIST
49579: PUSH
49580: LD_INT 3
49582: PUSH
49583: LD_INT 34
49585: PUSH
49586: LD_INT 13
49588: PUSH
49589: EMPTY
49590: LIST
49591: LIST
49592: PUSH
49593: EMPTY
49594: LIST
49595: LIST
49596: PUSH
49597: EMPTY
49598: LIST
49599: LIST
49600: LIST
49601: LIST
49602: PPUSH
49603: CALL_OW 69
49607: ST_TO_ADDR
// if tanky + 0 < dif_amik_tanky_max then
49608: LD_VAR 0 3
49612: PUSH
49613: LD_INT 0
49615: PLUS
49616: PUSH
49617: LD_EXP 36
49621: LESS
49622: IFFALSE 49661
// begin for i = 1 to list do
49624: LD_ADDR_VAR 0 6
49628: PUSH
49629: DOUBLE
49630: LD_INT 1
49632: DEC
49633: ST_TO_ADDR
49634: LD_VAR 0 5
49638: PUSH
49639: FOR_TO
49640: IFFALSE 49659
// Vyroba_auta_Amik2 ( list [ i ] ) ;
49642: LD_VAR 0 5
49646: PUSH
49647: LD_VAR 0 6
49651: ARRAY
49652: PPUSH
49653: CALL 49666 0 1
49657: GO 49639
49659: POP
49660: POP
// end ; end ;
49661: LD_VAR 0 2
49665: RET
// export function Vyroba_auta_Amik2 ( Tovarna ) ; var Chassis , Weapon , P ; var Steps ; begin
49666: LD_INT 0
49668: PPUSH
49669: PPUSH
49670: PPUSH
49671: PPUSH
49672: PPUSH
// Steps = 0 ;
49673: LD_ADDR_VAR 0 6
49677: PUSH
49678: LD_INT 0
49680: ST_TO_ADDR
// repeat begin if Steps > 4 then
49681: LD_VAR 0 6
49685: PUSH
49686: LD_INT 4
49688: GREATER
49689: IFFALSE 49693
// exit ;
49691: GO 49853
// P = Rand ( 1 , 100 ) ;
49693: LD_ADDR_VAR 0 5
49697: PUSH
49698: LD_INT 1
49700: PPUSH
49701: LD_INT 100
49703: PPUSH
49704: CALL_OW 12
49708: ST_TO_ADDR
// begin if P < 25 then
49709: LD_VAR 0 5
49713: PUSH
49714: LD_INT 25
49716: LESS
49717: IFFALSE 49729
// begin Weapon = US_DOUBLE_LASER ;
49719: LD_ADDR_VAR 0 4
49723: PUSH
49724: LD_INT 10
49726: ST_TO_ADDR
// end else
49727: GO 49777
// if P < 50 then
49729: LD_VAR 0 5
49733: PUSH
49734: LD_INT 50
49736: LESS
49737: IFFALSE 49749
// begin Weapon = US_HEAVY_GUN ;
49739: LD_ADDR_VAR 0 4
49743: PUSH
49744: LD_INT 6
49746: ST_TO_ADDR
// end else
49747: GO 49777
// if P < 75 then
49749: LD_VAR 0 5
49753: PUSH
49754: LD_INT 75
49756: LESS
49757: IFFALSE 49769
// begin Weapon = US_ROCKET_LAUNCHER ;
49759: LD_ADDR_VAR 0 4
49763: PUSH
49764: LD_INT 7
49766: ST_TO_ADDR
// end else
49767: GO 49777
// begin Weapon = US_HEAVY_GUN ;
49769: LD_ADDR_VAR 0 4
49773: PUSH
49774: LD_INT 6
49776: ST_TO_ADDR
// end ; end ; Chassis = dif_am2_chassis ;
49777: LD_ADDR_VAR 0 3
49781: PUSH
49782: LD_EXP 42
49786: ST_TO_ADDR
// Steps = Steps + 1 ;
49787: LD_ADDR_VAR 0 6
49791: PUSH
49792: LD_VAR 0 6
49796: PUSH
49797: LD_INT 1
49799: PLUS
49800: ST_TO_ADDR
// end until CanBeConstructed ( Tovarna , Chassis , Engine_siberite , Control_remote , Weapon ) ;
49801: LD_VAR 0 1
49805: PPUSH
49806: LD_VAR 0 3
49810: PPUSH
49811: LD_INT 3
49813: PPUSH
49814: LD_INT 2
49816: PPUSH
49817: LD_VAR 0 4
49821: PPUSH
49822: CALL_OW 448
49826: IFFALSE 49681
// ComConstruct ( Tovarna , Chassis , Engine_siberite , Control_remote , Weapon ) ;
49828: LD_VAR 0 1
49832: PPUSH
49833: LD_VAR 0 3
49837: PPUSH
49838: LD_INT 3
49840: PPUSH
49841: LD_INT 2
49843: PPUSH
49844: LD_VAR 0 4
49848: PPUSH
49849: CALL_OW 125
// end ;
49853: LD_VAR 0 2
49857: RET
// var MakroUtok ; var RegUtok , Reg2 ; export function Init_Makra_Am2_Levy ; begin
49858: LD_INT 0
49860: PPUSH
// RegUtok = McRegistry ( Amik2 , [ [ MC_REG_AREA_TO_GUARD , BigRegistry ] , MC_REG_IGNORE_FOG ] ) ;
49861: LD_ADDR_LOC 23
49865: PUSH
49866: LD_EXP 5
49870: PPUSH
49871: LD_INT 2
49873: PUSH
49874: LD_INT 50
49876: PUSH
49877: EMPTY
49878: LIST
49879: LIST
49880: PUSH
49881: LD_INT 7
49883: PUSH
49884: EMPTY
49885: LIST
49886: LIST
49887: PPUSH
49888: CALL_OW 399
49892: ST_TO_ADDR
// Reg2 = McRegistry ( Amik2 , [ [ MC_REG_AREA_TO_GUARD , AmVelka2 ] , MC_REG_IGNORE_FOG ] ) ;
49893: LD_ADDR_LOC 24
49897: PUSH
49898: LD_EXP 5
49902: PPUSH
49903: LD_INT 2
49905: PUSH
49906: LD_INT 36
49908: PUSH
49909: EMPTY
49910: LIST
49911: LIST
49912: PUSH
49913: LD_INT 7
49915: PUSH
49916: EMPTY
49917: LIST
49918: LIST
49919: PPUSH
49920: CALL_OW 399
49924: ST_TO_ADDR
// end ;
49925: LD_VAR 0 1
49929: RET
// var Probiha_McAttack ; var Probiha_Mc2 ; every 0 0$3 trigger Am2_Levy_Attack + 0 >= dif_amik_tanky_max and not Probiha_McAttack and not Probiha_Mc2 do
49930: LD_EXP 91
49934: PUSH
49935: LD_INT 0
49937: PLUS
49938: PUSH
49939: LD_EXP 36
49943: GREATEREQUAL
49944: PUSH
49945: LD_LOC 25
49949: NOT
49950: AND
49951: PUSH
49952: LD_LOC 26
49956: NOT
49957: AND
49958: IFFALSE 50187
49960: GO 49962
49962: DISABLE
// begin if not PROBIHA_MC2 and FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_or , [ f_side , You ] , [ f_side , You2 ] ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] , [ f_not , [ f_empty ] ] ] ) then
49963: LD_LOC 26
49967: NOT
49968: PUSH
49969: LD_INT 95
49971: PUSH
49972: LD_INT 36
49974: PUSH
49975: EMPTY
49976: LIST
49977: LIST
49978: PUSH
49979: LD_INT 50
49981: PUSH
49982: EMPTY
49983: LIST
49984: PUSH
49985: LD_INT 2
49987: PUSH
49988: LD_INT 22
49990: PUSH
49991: LD_EXP 2
49995: PUSH
49996: EMPTY
49997: LIST
49998: LIST
49999: PUSH
50000: LD_INT 22
50002: PUSH
50003: LD_EXP 3
50007: PUSH
50008: EMPTY
50009: LIST
50010: LIST
50011: PUSH
50012: EMPTY
50013: LIST
50014: LIST
50015: LIST
50016: PUSH
50017: LD_INT 2
50019: PUSH
50020: LD_INT 21
50022: PUSH
50023: LD_INT 1
50025: PUSH
50026: EMPTY
50027: LIST
50028: LIST
50029: PUSH
50030: LD_INT 21
50032: PUSH
50033: LD_INT 2
50035: PUSH
50036: EMPTY
50037: LIST
50038: LIST
50039: PUSH
50040: EMPTY
50041: LIST
50042: LIST
50043: LIST
50044: PUSH
50045: LD_INT 3
50047: PUSH
50048: LD_INT 58
50050: PUSH
50051: EMPTY
50052: LIST
50053: PUSH
50054: EMPTY
50055: LIST
50056: LIST
50057: PUSH
50058: EMPTY
50059: LIST
50060: LIST
50061: LIST
50062: LIST
50063: LIST
50064: PPUSH
50065: CALL_OW 69
50069: AND
50070: IFFALSE 50123
// begin RemoveMcUnits ( 10 , AM2_LEVY_ATTACK ) ;
50072: LD_INT 10
50074: PPUSH
50075: LD_EXP 91
50079: PPUSH
50080: CALL_OW 391
// MakroUtok = McAttack ( 10 , Reg2 , AM2_LEVY_ATTACK , [ mc_murder ] ) ;
50084: LD_ADDR_LOC 22
50088: PUSH
50089: LD_INT 10
50091: PPUSH
50092: LD_LOC 24
50096: PPUSH
50097: LD_EXP 91
50101: PPUSH
50102: LD_INT 12
50104: PUSH
50105: EMPTY
50106: LIST
50107: PPUSH
50108: CALL_OW 402
50112: ST_TO_ADDR
// Probiha_Mc2 = true ;
50113: LD_ADDR_LOC 26
50117: PUSH
50118: LD_INT 1
50120: ST_TO_ADDR
// end else
50121: GO 50186
// if not PROBIHA_MCATTACK and not PROBIHA_MC2 then
50123: LD_LOC 25
50127: NOT
50128: PUSH
50129: LD_LOC 26
50133: NOT
50134: AND
50135: IFFALSE 50186
// begin RemoveMcUnits ( 10 , AM2_LEVY_ATTACK ) ;
50137: LD_INT 10
50139: PPUSH
50140: LD_EXP 91
50144: PPUSH
50145: CALL_OW 391
// MakroUtok = McAttack ( 10 , RegUtok , AM2_LEVY_ATTACK , [ mc_murder ] ) ;
50149: LD_ADDR_LOC 22
50153: PUSH
50154: LD_INT 10
50156: PPUSH
50157: LD_LOC 23
50161: PPUSH
50162: LD_EXP 91
50166: PPUSH
50167: LD_INT 12
50169: PUSH
50170: EMPTY
50171: LIST
50172: PPUSH
50173: CALL_OW 402
50177: ST_TO_ADDR
// Probiha_MCATTACK = true ;
50178: LD_ADDR_LOC 25
50182: PUSH
50183: LD_INT 1
50185: ST_TO_ADDR
// end ; enable ;
50186: ENABLE
// end ;
50187: END
// every 0 0$3 trigger Am2_Levy_Attack and Probiha_Mc2 do
50188: LD_EXP 91
50192: PUSH
50193: LD_LOC 26
50197: AND
50198: IFFALSE 50378
50200: GO 50202
50202: DISABLE
// begin if not FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_or , [ f_side , You ] , [ f_side , You2 ] ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] , [ f_not , [ f_empty ] ] ] ) then
50203: LD_INT 95
50205: PUSH
50206: LD_INT 36
50208: PUSH
50209: EMPTY
50210: LIST
50211: LIST
50212: PUSH
50213: LD_INT 50
50215: PUSH
50216: EMPTY
50217: LIST
50218: PUSH
50219: LD_INT 2
50221: PUSH
50222: LD_INT 22
50224: PUSH
50225: LD_EXP 2
50229: PUSH
50230: EMPTY
50231: LIST
50232: LIST
50233: PUSH
50234: LD_INT 22
50236: PUSH
50237: LD_EXP 3
50241: PUSH
50242: EMPTY
50243: LIST
50244: LIST
50245: PUSH
50246: EMPTY
50247: LIST
50248: LIST
50249: LIST
50250: PUSH
50251: LD_INT 2
50253: PUSH
50254: LD_INT 21
50256: PUSH
50257: LD_INT 1
50259: PUSH
50260: EMPTY
50261: LIST
50262: LIST
50263: PUSH
50264: LD_INT 21
50266: PUSH
50267: LD_INT 2
50269: PUSH
50270: EMPTY
50271: LIST
50272: LIST
50273: PUSH
50274: EMPTY
50275: LIST
50276: LIST
50277: LIST
50278: PUSH
50279: LD_INT 3
50281: PUSH
50282: LD_INT 58
50284: PUSH
50285: EMPTY
50286: LIST
50287: PUSH
50288: EMPTY
50289: LIST
50290: LIST
50291: PUSH
50292: EMPTY
50293: LIST
50294: LIST
50295: LIST
50296: LIST
50297: LIST
50298: PPUSH
50299: CALL_OW 69
50303: NOT
50304: IFFALSE 50377
// begin Probiha_Mc2 = false ;
50306: LD_ADDR_LOC 26
50310: PUSH
50311: LD_INT 0
50313: ST_TO_ADDR
// if not PROBIHA_MCATTACK and not PROBIHA_MC2 then
50314: LD_LOC 25
50318: NOT
50319: PUSH
50320: LD_LOC 26
50324: NOT
50325: AND
50326: IFFALSE 50377
// begin RemoveMcUnits ( 10 , AM2_LEVY_ATTACK ) ;
50328: LD_INT 10
50330: PPUSH
50331: LD_EXP 91
50335: PPUSH
50336: CALL_OW 391
// MakroUtok = McAttack ( 10 , RegUtok , AM2_LEVY_ATTACK , [ mc_murder ] ) ;
50340: LD_ADDR_LOC 22
50344: PUSH
50345: LD_INT 10
50347: PPUSH
50348: LD_LOC 23
50352: PPUSH
50353: LD_EXP 91
50357: PPUSH
50358: LD_INT 12
50360: PUSH
50361: EMPTY
50362: LIST
50363: PPUSH
50364: CALL_OW 402
50368: ST_TO_ADDR
// Probiha_MCATTACK = true ;
50369: LD_ADDR_LOC 25
50373: PUSH
50374: LD_INT 1
50376: ST_TO_ADDR
// end ; end ; enable ;
50377: ENABLE
// end ;
50378: END
// export function LinkVehicle ( Veh , Base ) ; var mechs , un ; begin
50379: LD_INT 0
50381: PPUSH
50382: PPUSH
50383: PPUSH
// if base = AmVelka1 and IsOk ( Am2_Vez_1 ) and GetSide ( Am2_Vez_1 ) = Amik2 and IsOk ( Am_Ware_1 ) and UnitsInside ( Am2_Vez_1 ) then
50384: LD_VAR 0 2
50388: PUSH
50389: LD_INT 35
50391: EQUAL
50392: PUSH
50393: LD_INT 166
50395: PPUSH
50396: CALL_OW 302
50400: AND
50401: PUSH
50402: LD_INT 166
50404: PPUSH
50405: CALL_OW 255
50409: PUSH
50410: LD_EXP 5
50414: EQUAL
50415: AND
50416: PUSH
50417: LD_INT 150
50419: PPUSH
50420: CALL_OW 302
50424: AND
50425: PUSH
50426: LD_INT 166
50428: PPUSH
50429: CALL_OW 313
50433: AND
50434: IFFALSE 50463
// begin mechs = UnitsInside ( Am2_Vez_1 ) ;
50436: LD_ADDR_VAR 0 4
50440: PUSH
50441: LD_INT 166
50443: PPUSH
50444: CALL_OW 313
50448: ST_TO_ADDR
// MechLink ( Veh , mechs ) ;
50449: LD_VAR 0 1
50453: PPUSH
50454: LD_VAR 0 4
50458: PPUSH
50459: CALL 50547 0 2
// end ; if base = AmVelka2 and IsOk ( Am2_Vez_2 ) and GetSide ( Am2_Vez_2 ) = Amik2 and IsOk ( Am_Ware_2 ) and UnitsInside ( Am2_Vez_2 ) then
50463: LD_VAR 0 2
50467: PUSH
50468: LD_INT 36
50470: EQUAL
50471: PUSH
50472: LD_INT 167
50474: PPUSH
50475: CALL_OW 302
50479: AND
50480: PUSH
50481: LD_INT 167
50483: PPUSH
50484: CALL_OW 255
50488: PUSH
50489: LD_EXP 5
50493: EQUAL
50494: AND
50495: PUSH
50496: LD_INT 151
50498: PPUSH
50499: CALL_OW 302
50503: AND
50504: PUSH
50505: LD_INT 167
50507: PPUSH
50508: CALL_OW 313
50512: AND
50513: IFFALSE 50542
// begin mechs = UnitsInside ( Am2_Vez_2 ) ;
50515: LD_ADDR_VAR 0 4
50519: PUSH
50520: LD_INT 167
50522: PPUSH
50523: CALL_OW 313
50527: ST_TO_ADDR
// MechLink ( Veh , mechs ) ;
50528: LD_VAR 0 1
50532: PPUSH
50533: LD_VAR 0 4
50537: PPUSH
50538: CALL 50547 0 2
// end ; end ;
50542: LD_VAR 0 3
50546: RET
// export function MechLink ( Veh , Mechs ) ; begin
50547: LD_INT 0
50549: PPUSH
// case mechs + 0 of 1 :
50550: LD_VAR 0 2
50554: PUSH
50555: LD_INT 0
50557: PLUS
50558: PUSH
50559: LD_INT 1
50561: DOUBLE
50562: EQUAL
50563: IFTRUE 50567
50565: GO 50588
50567: POP
// ComLinkTo ( Veh , Mechs [ 1 ] ) ; 2 :
50568: LD_VAR 0 1
50572: PPUSH
50573: LD_VAR 0 2
50577: PUSH
50578: LD_INT 1
50580: ARRAY
50581: PPUSH
50582: CALL_OW 135
50586: GO 50937
50588: LD_INT 2
50590: DOUBLE
50591: EQUAL
50592: IFTRUE 50596
50594: GO 50667
50596: POP
// begin if UnitsLinked ( mechs [ 1 ] ) < UnitsLinked ( mechs [ 2 ] ) then
50597: LD_VAR 0 2
50601: PUSH
50602: LD_INT 1
50604: ARRAY
50605: PPUSH
50606: CALL_OW 432
50610: PUSH
50611: LD_VAR 0 2
50615: PUSH
50616: LD_INT 2
50618: ARRAY
50619: PPUSH
50620: CALL_OW 432
50624: LESS
50625: IFFALSE 50647
// ComLinkTo ( Veh , Mechs [ 1 ] ) else
50627: LD_VAR 0 1
50631: PPUSH
50632: LD_VAR 0 2
50636: PUSH
50637: LD_INT 1
50639: ARRAY
50640: PPUSH
50641: CALL_OW 135
50645: GO 50665
// ComLinkTo ( Veh , Mechs [ 2 ] ) ;
50647: LD_VAR 0 1
50651: PPUSH
50652: LD_VAR 0 2
50656: PUSH
50657: LD_INT 2
50659: ARRAY
50660: PPUSH
50661: CALL_OW 135
// end ; 3 :
50665: GO 50937
50667: LD_INT 3
50669: DOUBLE
50670: EQUAL
50671: IFTRUE 50675
50673: GO 50936
50675: POP
// begin if UnitsLinked ( mechs [ 1 ] ) < UnitsLinked ( mechs [ 2 ] ) or UnitsLinked ( mechs [ 1 ] ) < UnitsLinked ( mechs [ 3 ] ) then
50676: LD_VAR 0 2
50680: PUSH
50681: LD_INT 1
50683: ARRAY
50684: PPUSH
50685: CALL_OW 432
50689: PUSH
50690: LD_VAR 0 2
50694: PUSH
50695: LD_INT 2
50697: ARRAY
50698: PPUSH
50699: CALL_OW 432
50703: LESS
50704: PUSH
50705: LD_VAR 0 2
50709: PUSH
50710: LD_INT 1
50712: ARRAY
50713: PPUSH
50714: CALL_OW 432
50718: PUSH
50719: LD_VAR 0 2
50723: PUSH
50724: LD_INT 3
50726: ARRAY
50727: PPUSH
50728: CALL_OW 432
50732: LESS
50733: OR
50734: IFFALSE 50756
// ComLinkTo ( Veh , Mechs [ 1 ] ) else
50736: LD_VAR 0 1
50740: PPUSH
50741: LD_VAR 0 2
50745: PUSH
50746: LD_INT 1
50748: ARRAY
50749: PPUSH
50750: CALL_OW 135
50754: GO 50934
// if UnitsLinked ( mechs [ 2 ] ) < UnitsLinked ( mechs [ 1 ] ) or UnitsLinked ( mechs [ 2 ] ) < UnitsLinked ( mechs [ 3 ] ) then
50756: LD_VAR 0 2
50760: PUSH
50761: LD_INT 2
50763: ARRAY
50764: PPUSH
50765: CALL_OW 432
50769: PUSH
50770: LD_VAR 0 2
50774: PUSH
50775: LD_INT 1
50777: ARRAY
50778: PPUSH
50779: CALL_OW 432
50783: LESS
50784: PUSH
50785: LD_VAR 0 2
50789: PUSH
50790: LD_INT 2
50792: ARRAY
50793: PPUSH
50794: CALL_OW 432
50798: PUSH
50799: LD_VAR 0 2
50803: PUSH
50804: LD_INT 3
50806: ARRAY
50807: PPUSH
50808: CALL_OW 432
50812: LESS
50813: OR
50814: IFFALSE 50836
// ComLinkTo ( Veh , Mechs [ 2 ] ) else
50816: LD_VAR 0 1
50820: PPUSH
50821: LD_VAR 0 2
50825: PUSH
50826: LD_INT 2
50828: ARRAY
50829: PPUSH
50830: CALL_OW 135
50834: GO 50934
// if UnitsLinked ( mechs [ 3 ] ) < UnitsLinked ( mechs [ 1 ] ) or UnitsLinked ( mechs [ 3 ] ) < UnitsLinked ( mechs [ 2 ] ) then
50836: LD_VAR 0 2
50840: PUSH
50841: LD_INT 3
50843: ARRAY
50844: PPUSH
50845: CALL_OW 432
50849: PUSH
50850: LD_VAR 0 2
50854: PUSH
50855: LD_INT 1
50857: ARRAY
50858: PPUSH
50859: CALL_OW 432
50863: LESS
50864: PUSH
50865: LD_VAR 0 2
50869: PUSH
50870: LD_INT 3
50872: ARRAY
50873: PPUSH
50874: CALL_OW 432
50878: PUSH
50879: LD_VAR 0 2
50883: PUSH
50884: LD_INT 2
50886: ARRAY
50887: PPUSH
50888: CALL_OW 432
50892: LESS
50893: OR
50894: IFFALSE 50916
// ComLinkTo ( Veh , Mechs [ 3 ] ) else
50896: LD_VAR 0 1
50900: PPUSH
50901: LD_VAR 0 2
50905: PUSH
50906: LD_INT 3
50908: ARRAY
50909: PPUSH
50910: CALL_OW 135
50914: GO 50934
// ComLinkTo ( Veh , Mechs [ 1 ] ) ;
50916: LD_VAR 0 1
50920: PPUSH
50921: LD_VAR 0 2
50925: PUSH
50926: LD_INT 1
50928: ARRAY
50929: PPUSH
50930: CALL_OW 135
// end ; end ;
50934: GO 50937
50936: POP
// end ;
50937: LD_VAR 0 3
50941: RET
// every 0 0$0.5 trigger FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_linked ] ] , [ f_ok ] ] ) do
50942: LD_INT 95
50944: PUSH
50945: LD_INT 35
50947: PUSH
50948: EMPTY
50949: LIST
50950: LIST
50951: PUSH
50952: LD_INT 22
50954: PUSH
50955: LD_EXP 5
50959: PUSH
50960: EMPTY
50961: LIST
50962: LIST
50963: PUSH
50964: LD_INT 21
50966: PUSH
50967: LD_INT 2
50969: PUSH
50970: EMPTY
50971: LIST
50972: LIST
50973: PUSH
50974: LD_INT 3
50976: PUSH
50977: LD_INT 61
50979: PUSH
50980: EMPTY
50981: LIST
50982: PUSH
50983: EMPTY
50984: LIST
50985: LIST
50986: PUSH
50987: LD_INT 50
50989: PUSH
50990: EMPTY
50991: LIST
50992: PUSH
50993: EMPTY
50994: LIST
50995: LIST
50996: LIST
50997: LIST
50998: LIST
50999: PPUSH
51000: CALL_OW 69
51004: IFFALSE 51084
51006: GO 51008
51008: DISABLE
// begin LinkVehicle ( FilterAllUnits ( [ [ f_inarea , AmVelka1 ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_linked ] ] , [ f_ok ] ] ) [ 1 ] , AmVelka1 ) ;
51009: LD_INT 95
51011: PUSH
51012: LD_INT 35
51014: PUSH
51015: EMPTY
51016: LIST
51017: LIST
51018: PUSH
51019: LD_INT 22
51021: PUSH
51022: LD_EXP 5
51026: PUSH
51027: EMPTY
51028: LIST
51029: LIST
51030: PUSH
51031: LD_INT 21
51033: PUSH
51034: LD_INT 2
51036: PUSH
51037: EMPTY
51038: LIST
51039: LIST
51040: PUSH
51041: LD_INT 3
51043: PUSH
51044: LD_INT 61
51046: PUSH
51047: EMPTY
51048: LIST
51049: PUSH
51050: EMPTY
51051: LIST
51052: LIST
51053: PUSH
51054: LD_INT 50
51056: PUSH
51057: EMPTY
51058: LIST
51059: PUSH
51060: EMPTY
51061: LIST
51062: LIST
51063: LIST
51064: LIST
51065: LIST
51066: PPUSH
51067: CALL_OW 69
51071: PUSH
51072: LD_INT 1
51074: ARRAY
51075: PPUSH
51076: LD_INT 35
51078: PPUSH
51079: CALL 50379 0 2
// enable ;
51083: ENABLE
// end ; end_of_file
51084: END
// export PravaBaza2Znicena ; every 0 0$2 trigger FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_type , unit_human ] ] ) + 0 < 2 and DepotNefungujeAmik ( Am_Ware_2 ) do
51085: LD_INT 95
51087: PUSH
51088: LD_INT 36
51090: PUSH
51091: EMPTY
51092: LIST
51093: LIST
51094: PUSH
51095: LD_INT 50
51097: PUSH
51098: EMPTY
51099: LIST
51100: PUSH
51101: LD_INT 22
51103: PUSH
51104: LD_EXP 5
51108: PUSH
51109: EMPTY
51110: LIST
51111: LIST
51112: PUSH
51113: LD_INT 21
51115: PUSH
51116: LD_INT 1
51118: PUSH
51119: EMPTY
51120: LIST
51121: LIST
51122: PUSH
51123: EMPTY
51124: LIST
51125: LIST
51126: LIST
51127: LIST
51128: PPUSH
51129: CALL_OW 69
51133: PUSH
51134: LD_INT 0
51136: PLUS
51137: PUSH
51138: LD_INT 2
51140: LESS
51141: PUSH
51142: LD_INT 151
51144: PPUSH
51145: CALL 40990 0 1
51149: AND
51150: IFFALSE 51163
51152: GO 51154
51154: DISABLE
// begin PravaBaza2Znicena = true ;
51155: LD_ADDR_EXP 92
51159: PUSH
51160: LD_INT 1
51162: ST_TO_ADDR
// end ;
51163: END
// every 0 0$1 do
51164: GO 51166
51166: DISABLE
// begin if IsOk ( Am_Ware_2 ) and GetSide ( Am_Ware_2 ) = Amik2 then
51167: LD_INT 151
51169: PPUSH
51170: CALL_OW 302
51174: PUSH
51175: LD_INT 151
51177: PPUSH
51178: CALL_OW 255
51182: PUSH
51183: LD_EXP 5
51187: EQUAL
51188: AND
51189: IFFALSE 51207
// SurovinyDoSkladu ( Am_Ware_2 , 400 , 1000 , 150 ) ;
51191: LD_INT 151
51193: PPUSH
51194: LD_INT 400
51196: PPUSH
51197: LD_INT 1000
51199: PPUSH
51200: LD_INT 150
51202: PPUSH
51203: CALL 5102 0 4
// enable ;
51207: ENABLE
// end ;
51208: END
// every 0 0$5 do var list ;
51209: GO 51211
51211: DISABLE
51212: LD_INT 0
51214: PPUSH
// begin JerabWaiter = 3 3$00 ;
51215: LD_ADDR_LOC 27
51219: PUSH
51220: LD_INT 6300
51222: ST_TO_ADDR
// end ;
51223: PPOPN 1
51225: END
// every 0 0$2 trigger IsOk ( Am_Ware_2 ) and GetSide ( Am_Ware_2 ) = Amik2 do var l , un ;
51226: LD_INT 151
51228: PPUSH
51229: CALL_OW 302
51233: PUSH
51234: LD_INT 151
51236: PPUSH
51237: CALL_OW 255
51241: PUSH
51242: LD_EXP 5
51246: EQUAL
51247: AND
51248: IFFALSE 51362
51250: GO 51252
51252: DISABLE
51253: LD_INT 0
51255: PPUSH
51256: PPUSH
// begin l = FilterAllUnits ( [ [ f_side , Amik2 ] , [ f_ok ] , [ f_class , class_engineer ] , [ f_distxy , 113 , 18 , 10 ] , [ f_outside ] ] ) ;
51257: LD_ADDR_VAR 0 1
51261: PUSH
51262: LD_INT 22
51264: PUSH
51265: LD_EXP 5
51269: PUSH
51270: EMPTY
51271: LIST
51272: LIST
51273: PUSH
51274: LD_INT 50
51276: PUSH
51277: EMPTY
51278: LIST
51279: PUSH
51280: LD_INT 25
51282: PUSH
51283: LD_INT 2
51285: PUSH
51286: EMPTY
51287: LIST
51288: LIST
51289: PUSH
51290: LD_INT 92
51292: PUSH
51293: LD_INT 113
51295: PUSH
51296: LD_INT 18
51298: PUSH
51299: LD_INT 10
51301: PUSH
51302: EMPTY
51303: LIST
51304: LIST
51305: LIST
51306: LIST
51307: PUSH
51308: LD_INT 56
51310: PUSH
51311: EMPTY
51312: LIST
51313: PUSH
51314: EMPTY
51315: LIST
51316: LIST
51317: LIST
51318: LIST
51319: LIST
51320: PPUSH
51321: CALL_OW 69
51325: ST_TO_ADDR
// if l then
51326: LD_VAR 0 1
51330: IFFALSE 51361
// for un in l do
51332: LD_ADDR_VAR 0 2
51336: PUSH
51337: LD_VAR 0 1
51341: PUSH
51342: FOR_IN
51343: IFFALSE 51359
// ComEnterUnit ( un , Am_Ware_2 ) ;
51345: LD_VAR 0 2
51349: PPUSH
51350: LD_INT 151
51352: PPUSH
51353: CALL_OW 120
51357: GO 51342
51359: POP
51360: POP
// enable ;
51361: ENABLE
// end ;
51362: PPOPN 2
51364: END
// every 0 0$2 trigger IsOk ( Am2_Lab_3 ) and GetSide ( Am2_Lab_3 ) = Amik2 do var l , un ;
51365: LD_INT 155
51367: PPUSH
51368: CALL_OW 302
51372: PUSH
51373: LD_INT 155
51375: PPUSH
51376: CALL_OW 255
51380: PUSH
51381: LD_EXP 5
51385: EQUAL
51386: AND
51387: IFFALSE 51501
51389: GO 51391
51391: DISABLE
51392: LD_INT 0
51394: PPUSH
51395: PPUSH
// begin l = FilterAllUnits ( [ [ f_side , Amik2 ] , [ f_ok ] , [ f_class , class_scientistic ] , [ f_distxy , 105 , 5 , 9 ] , [ f_outside ] ] ) ;
51396: LD_ADDR_VAR 0 1
51400: PUSH
51401: LD_INT 22
51403: PUSH
51404: LD_EXP 5
51408: PUSH
51409: EMPTY
51410: LIST
51411: LIST
51412: PUSH
51413: LD_INT 50
51415: PUSH
51416: EMPTY
51417: LIST
51418: PUSH
51419: LD_INT 25
51421: PUSH
51422: LD_INT 4
51424: PUSH
51425: EMPTY
51426: LIST
51427: LIST
51428: PUSH
51429: LD_INT 92
51431: PUSH
51432: LD_INT 105
51434: PUSH
51435: LD_INT 5
51437: PUSH
51438: LD_INT 9
51440: PUSH
51441: EMPTY
51442: LIST
51443: LIST
51444: LIST
51445: LIST
51446: PUSH
51447: LD_INT 56
51449: PUSH
51450: EMPTY
51451: LIST
51452: PUSH
51453: EMPTY
51454: LIST
51455: LIST
51456: LIST
51457: LIST
51458: LIST
51459: PPUSH
51460: CALL_OW 69
51464: ST_TO_ADDR
// if l then
51465: LD_VAR 0 1
51469: IFFALSE 51500
// for un in l do
51471: LD_ADDR_VAR 0 2
51475: PUSH
51476: LD_VAR 0 1
51480: PUSH
51481: FOR_IN
51482: IFFALSE 51498
// ComEnterUnit ( un , Am2_Lab_3 ) ;
51484: LD_VAR 0 2
51488: PPUSH
51489: LD_INT 155
51491: PPUSH
51492: CALL_OW 120
51496: GO 51481
51498: POP
51499: POP
// enable ;
51500: ENABLE
// end ;
51501: PPOPN 2
51503: END
// every 0 0$2 trigger IsOk ( Am2_Lab_4 ) and GetSide ( Am2_Lab_4 ) = Amik2 do var l , un ;
51504: LD_INT 154
51506: PPUSH
51507: CALL_OW 302
51511: PUSH
51512: LD_INT 154
51514: PPUSH
51515: CALL_OW 255
51519: PUSH
51520: LD_EXP 5
51524: EQUAL
51525: AND
51526: IFFALSE 51640
51528: GO 51530
51530: DISABLE
51531: LD_INT 0
51533: PPUSH
51534: PPUSH
// begin l = FilterAllUnits ( [ [ f_side , Amik2 ] , [ f_ok ] , [ f_class , class_scientistic ] , [ f_distxy , 124 , 5 , 9 ] , [ f_outside ] ] ) ;
51535: LD_ADDR_VAR 0 1
51539: PUSH
51540: LD_INT 22
51542: PUSH
51543: LD_EXP 5
51547: PUSH
51548: EMPTY
51549: LIST
51550: LIST
51551: PUSH
51552: LD_INT 50
51554: PUSH
51555: EMPTY
51556: LIST
51557: PUSH
51558: LD_INT 25
51560: PUSH
51561: LD_INT 4
51563: PUSH
51564: EMPTY
51565: LIST
51566: LIST
51567: PUSH
51568: LD_INT 92
51570: PUSH
51571: LD_INT 124
51573: PUSH
51574: LD_INT 5
51576: PUSH
51577: LD_INT 9
51579: PUSH
51580: EMPTY
51581: LIST
51582: LIST
51583: LIST
51584: LIST
51585: PUSH
51586: LD_INT 56
51588: PUSH
51589: EMPTY
51590: LIST
51591: PUSH
51592: EMPTY
51593: LIST
51594: LIST
51595: LIST
51596: LIST
51597: LIST
51598: PPUSH
51599: CALL_OW 69
51603: ST_TO_ADDR
// if l then
51604: LD_VAR 0 1
51608: IFFALSE 51639
// for un in l do
51610: LD_ADDR_VAR 0 2
51614: PUSH
51615: LD_VAR 0 1
51619: PUSH
51620: FOR_IN
51621: IFFALSE 51637
// ComEnterUnit ( un , Am2_Lab_4 ) ;
51623: LD_VAR 0 2
51627: PPUSH
51628: LD_INT 154
51630: PPUSH
51631: CALL_OW 120
51635: GO 51620
51637: POP
51638: POP
// enable ;
51639: ENABLE
// end ;
51640: PPOPN 2
51642: END
// every 0 0$1 do var l , budky , un ;
51643: GO 51645
51645: DISABLE
51646: LD_INT 0
51648: PPUSH
51649: PPUSH
51650: PPUSH
// begin l = FilterAllUnits ( [ [ f_side , Amik2 ] , [ f_ok ] , [ f_class , class_soldier ] , [ f_outside ] ] ) ;
51651: LD_ADDR_VAR 0 1
51655: PUSH
51656: LD_INT 22
51658: PUSH
51659: LD_EXP 5
51663: PUSH
51664: EMPTY
51665: LIST
51666: LIST
51667: PUSH
51668: LD_INT 50
51670: PUSH
51671: EMPTY
51672: LIST
51673: PUSH
51674: LD_INT 25
51676: PUSH
51677: LD_INT 1
51679: PUSH
51680: EMPTY
51681: LIST
51682: LIST
51683: PUSH
51684: LD_INT 56
51686: PUSH
51687: EMPTY
51688: LIST
51689: PUSH
51690: EMPTY
51691: LIST
51692: LIST
51693: LIST
51694: LIST
51695: PPUSH
51696: CALL_OW 69
51700: ST_TO_ADDR
// budky = FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_side , Amik2 ] , [ f_ok ] , [ f_empty ] , [ f_or , [ f_btype , b_barracks ] , [ f_btype , b_bunker ] ] ] ) ;
51701: LD_ADDR_VAR 0 2
51705: PUSH
51706: LD_INT 95
51708: PUSH
51709: LD_INT 36
51711: PUSH
51712: EMPTY
51713: LIST
51714: LIST
51715: PUSH
51716: LD_INT 22
51718: PUSH
51719: LD_EXP 5
51723: PUSH
51724: EMPTY
51725: LIST
51726: LIST
51727: PUSH
51728: LD_INT 50
51730: PUSH
51731: EMPTY
51732: LIST
51733: PUSH
51734: LD_INT 58
51736: PUSH
51737: EMPTY
51738: LIST
51739: PUSH
51740: LD_INT 2
51742: PUSH
51743: LD_INT 30
51745: PUSH
51746: LD_INT 5
51748: PUSH
51749: EMPTY
51750: LIST
51751: LIST
51752: PUSH
51753: LD_INT 30
51755: PUSH
51756: LD_INT 32
51758: PUSH
51759: EMPTY
51760: LIST
51761: LIST
51762: PUSH
51763: EMPTY
51764: LIST
51765: LIST
51766: LIST
51767: PUSH
51768: EMPTY
51769: LIST
51770: LIST
51771: LIST
51772: LIST
51773: LIST
51774: PPUSH
51775: CALL_OW 69
51779: ST_TO_ADDR
// if l and budky then
51780: LD_VAR 0 1
51784: PUSH
51785: LD_VAR 0 2
51789: AND
51790: IFFALSE 51888
// for un in l do
51792: LD_ADDR_VAR 0 3
51796: PUSH
51797: LD_VAR 0 1
51801: PUSH
51802: FOR_IN
51803: IFFALSE 51886
// begin if GetDistUnits ( NearestUnitToUnit ( budky , un ) , un ) <= 6 and UnitsInside ( NearestUnitToUnit ( budky , un ) ) < 6 then
51805: LD_VAR 0 2
51809: PPUSH
51810: LD_VAR 0 3
51814: PPUSH
51815: CALL_OW 74
51819: PPUSH
51820: LD_VAR 0 3
51824: PPUSH
51825: CALL_OW 296
51829: PUSH
51830: LD_INT 6
51832: LESSEQUAL
51833: PUSH
51834: LD_VAR 0 2
51838: PPUSH
51839: LD_VAR 0 3
51843: PPUSH
51844: CALL_OW 74
51848: PPUSH
51849: CALL_OW 313
51853: PUSH
51854: LD_INT 6
51856: LESS
51857: AND
51858: IFFALSE 51884
// ComEnterUnit ( un , NearestUnitToUnit ( budky , un ) ) ;
51860: LD_VAR 0 3
51864: PPUSH
51865: LD_VAR 0 2
51869: PPUSH
51870: LD_VAR 0 3
51874: PPUSH
51875: CALL_OW 74
51879: PPUSH
51880: CALL_OW 120
// end ;
51884: GO 51802
51886: POP
51887: POP
// enable ;
51888: ENABLE
// end ;
51889: PPOPN 3
51891: END
// function AmiciFungujou ; begin
51892: LD_INT 0
51894: PPUSH
// if GetSide ( Am_Ware_2 ) <> Amik2 or GetSide ( Am2_Fac_3 ) <> Amik2 or IsPlaced ( Am_Ware_2 ) = false or IsPlaced ( Am2_Fac_3 ) = false or IsOk ( Am2_Fac_3 ) = false or IsOk ( Am_Ware_2 ) = false then
51895: LD_INT 151
51897: PPUSH
51898: CALL_OW 255
51902: PUSH
51903: LD_EXP 5
51907: NONEQUAL
51908: PUSH
51909: LD_INT 158
51911: PPUSH
51912: CALL_OW 255
51916: PUSH
51917: LD_EXP 5
51921: NONEQUAL
51922: OR
51923: PUSH
51924: LD_INT 151
51926: PPUSH
51927: CALL_OW 305
51931: PUSH
51932: LD_INT 0
51934: EQUAL
51935: OR
51936: PUSH
51937: LD_INT 158
51939: PPUSH
51940: CALL_OW 305
51944: PUSH
51945: LD_INT 0
51947: EQUAL
51948: OR
51949: PUSH
51950: LD_INT 158
51952: PPUSH
51953: CALL_OW 302
51957: PUSH
51958: LD_INT 0
51960: EQUAL
51961: OR
51962: PUSH
51963: LD_INT 151
51965: PPUSH
51966: CALL_OW 302
51970: PUSH
51971: LD_INT 0
51973: EQUAL
51974: OR
51975: IFFALSE 51987
// result = false else
51977: LD_ADDR_VAR 0 1
51981: PUSH
51982: LD_INT 0
51984: ST_TO_ADDR
51985: GO 51995
// result = true ;
51987: LD_ADDR_VAR 0 1
51991: PUSH
51992: LD_INT 1
51994: ST_TO_ADDR
// end ;
51995: LD_VAR 0 1
51999: RET
// every 0 0$1 trigger Hrajeme do var Mechanici_volni , Vozidla ; var un , b , v , v2 , i , veh , bedny , bedny2 , bud , volne_bunkry , target , hex ;
52000: LD_EXP 20
52004: IFFALSE 53747
52006: GO 52008
52008: DISABLE
52009: LD_INT 0
52011: PPUSH
52012: PPUSH
52013: PPUSH
52014: PPUSH
52015: PPUSH
52016: PPUSH
52017: PPUSH
52018: PPUSH
52019: PPUSH
52020: PPUSH
52021: PPUSH
52022: PPUSH
52023: PPUSH
52024: PPUSH
// begin if FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_class , class_mechanic ] ] ) then
52025: LD_INT 95
52027: PUSH
52028: LD_INT 36
52030: PUSH
52031: EMPTY
52032: LIST
52033: LIST
52034: PUSH
52035: LD_INT 50
52037: PUSH
52038: EMPTY
52039: LIST
52040: PUSH
52041: LD_INT 22
52043: PUSH
52044: LD_EXP 5
52048: PUSH
52049: EMPTY
52050: LIST
52051: LIST
52052: PUSH
52053: LD_INT 25
52055: PUSH
52056: LD_INT 3
52058: PUSH
52059: EMPTY
52060: LIST
52061: LIST
52062: PUSH
52063: EMPTY
52064: LIST
52065: LIST
52066: LIST
52067: LIST
52068: PPUSH
52069: CALL_OW 69
52073: IFFALSE 52996
// begin Mechanici_volni = FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_class , class_mechanic ] ] ) ;
52075: LD_ADDR_VAR 0 1
52079: PUSH
52080: LD_INT 95
52082: PUSH
52083: LD_INT 36
52085: PUSH
52086: EMPTY
52087: LIST
52088: LIST
52089: PUSH
52090: LD_INT 50
52092: PUSH
52093: EMPTY
52094: LIST
52095: PUSH
52096: LD_INT 22
52098: PUSH
52099: LD_EXP 5
52103: PUSH
52104: EMPTY
52105: LIST
52106: LIST
52107: PUSH
52108: LD_INT 25
52110: PUSH
52111: LD_INT 3
52113: PUSH
52114: EMPTY
52115: LIST
52116: LIST
52117: PUSH
52118: EMPTY
52119: LIST
52120: LIST
52121: LIST
52122: LIST
52123: PPUSH
52124: CALL_OW 69
52128: ST_TO_ADDR
// for un in Mechanici_volni do
52129: LD_ADDR_VAR 0 3
52133: PUSH
52134: LD_VAR 0 1
52138: PUSH
52139: FOR_IN
52140: IFFALSE 52994
// begin if IsPlaced ( Am2_Fac_3 ) and IsOutside ( un ) and UnitsInside ( Am2_Fac_3 ) < 6 and GetDistUnitXY ( un , 103 , 15 ) > 5 and GetDistUnitXY ( un , 103 , 15 ) < 9 then
52142: LD_INT 158
52144: PPUSH
52145: CALL_OW 305
52149: PUSH
52150: LD_VAR 0 3
52154: PPUSH
52155: CALL 2607 0 1
52159: AND
52160: PUSH
52161: LD_INT 158
52163: PPUSH
52164: CALL_OW 313
52168: PUSH
52169: LD_INT 6
52171: LESS
52172: AND
52173: PUSH
52174: LD_VAR 0 3
52178: PPUSH
52179: LD_INT 103
52181: PPUSH
52182: LD_INT 15
52184: PPUSH
52185: CALL_OW 297
52189: PUSH
52190: LD_INT 5
52192: GREATER
52193: AND
52194: PUSH
52195: LD_VAR 0 3
52199: PPUSH
52200: LD_INT 103
52202: PPUSH
52203: LD_INT 15
52205: PPUSH
52206: CALL_OW 297
52210: PUSH
52211: LD_INT 9
52213: LESS
52214: AND
52215: IFFALSE 52234
// ComMoveXY ( un , 103 , 15 ) else
52217: LD_VAR 0 3
52221: PPUSH
52222: LD_INT 103
52224: PPUSH
52225: LD_INT 15
52227: PPUSH
52228: CALL_OW 111
52232: GO 52324
// if IsPlaced ( Am2_Fac_4 ) and IsOutside ( un ) and UnitsInside ( Am2_Fac_4 ) < 6 and GetDistUnitXY ( un , 121 , 16 ) > 5 and GetDistUnitXY ( un , 121 , 16 ) < 9 then
52234: LD_INT 159
52236: PPUSH
52237: CALL_OW 305
52241: PUSH
52242: LD_VAR 0 3
52246: PPUSH
52247: CALL 2607 0 1
52251: AND
52252: PUSH
52253: LD_INT 159
52255: PPUSH
52256: CALL_OW 313
52260: PUSH
52261: LD_INT 6
52263: LESS
52264: AND
52265: PUSH
52266: LD_VAR 0 3
52270: PPUSH
52271: LD_INT 121
52273: PPUSH
52274: LD_INT 16
52276: PPUSH
52277: CALL_OW 297
52281: PUSH
52282: LD_INT 5
52284: GREATER
52285: AND
52286: PUSH
52287: LD_VAR 0 3
52291: PPUSH
52292: LD_INT 121
52294: PPUSH
52295: LD_INT 16
52297: PPUSH
52298: CALL_OW 297
52302: PUSH
52303: LD_INT 9
52305: LESS
52306: AND
52307: IFFALSE 52324
// ComMoveXY ( un , 121 , 16 ) ;
52309: LD_VAR 0 3
52313: PPUSH
52314: LD_INT 121
52316: PPUSH
52317: LD_INT 16
52319: PPUSH
52320: CALL_OW 111
// if FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_distxy , 103 , 15 , 5 ] , [ f_not , [ f_lives , 1000 ] ] ] ) or FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_distxy , 121 , 16 , 5 ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
52324: LD_INT 52
52326: PUSH
52327: EMPTY
52328: LIST
52329: PUSH
52330: LD_INT 22
52332: PUSH
52333: LD_EXP 5
52337: PUSH
52338: EMPTY
52339: LIST
52340: LIST
52341: PUSH
52342: LD_INT 21
52344: PUSH
52345: LD_INT 2
52347: PUSH
52348: EMPTY
52349: LIST
52350: LIST
52351: PUSH
52352: LD_INT 92
52354: PUSH
52355: LD_INT 103
52357: PUSH
52358: LD_INT 15
52360: PUSH
52361: LD_INT 5
52363: PUSH
52364: EMPTY
52365: LIST
52366: LIST
52367: LIST
52368: LIST
52369: PUSH
52370: LD_INT 3
52372: PUSH
52373: LD_INT 24
52375: PUSH
52376: LD_INT 1000
52378: PUSH
52379: EMPTY
52380: LIST
52381: LIST
52382: PUSH
52383: EMPTY
52384: LIST
52385: LIST
52386: PUSH
52387: EMPTY
52388: LIST
52389: LIST
52390: LIST
52391: LIST
52392: LIST
52393: PPUSH
52394: CALL_OW 69
52398: PUSH
52399: LD_INT 52
52401: PUSH
52402: EMPTY
52403: LIST
52404: PUSH
52405: LD_INT 22
52407: PUSH
52408: LD_EXP 5
52412: PUSH
52413: EMPTY
52414: LIST
52415: LIST
52416: PUSH
52417: LD_INT 21
52419: PUSH
52420: LD_INT 2
52422: PUSH
52423: EMPTY
52424: LIST
52425: LIST
52426: PUSH
52427: LD_INT 92
52429: PUSH
52430: LD_INT 121
52432: PUSH
52433: LD_INT 16
52435: PUSH
52436: LD_INT 5
52438: PUSH
52439: EMPTY
52440: LIST
52441: LIST
52442: LIST
52443: LIST
52444: PUSH
52445: LD_INT 3
52447: PUSH
52448: LD_INT 24
52450: PUSH
52451: LD_INT 1000
52453: PUSH
52454: EMPTY
52455: LIST
52456: LIST
52457: PUSH
52458: EMPTY
52459: LIST
52460: LIST
52461: PUSH
52462: EMPTY
52463: LIST
52464: LIST
52465: LIST
52466: LIST
52467: LIST
52468: PPUSH
52469: CALL_OW 69
52473: OR
52474: IFFALSE 52754
// begin v = FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_distxy , 103 , 15 , 7 ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
52476: LD_ADDR_VAR 0 5
52480: PUSH
52481: LD_INT 52
52483: PUSH
52484: EMPTY
52485: LIST
52486: PUSH
52487: LD_INT 22
52489: PUSH
52490: LD_EXP 5
52494: PUSH
52495: EMPTY
52496: LIST
52497: LIST
52498: PUSH
52499: LD_INT 21
52501: PUSH
52502: LD_INT 2
52504: PUSH
52505: EMPTY
52506: LIST
52507: LIST
52508: PUSH
52509: LD_INT 92
52511: PUSH
52512: LD_INT 103
52514: PUSH
52515: LD_INT 15
52517: PUSH
52518: LD_INT 7
52520: PUSH
52521: EMPTY
52522: LIST
52523: LIST
52524: LIST
52525: LIST
52526: PUSH
52527: LD_INT 3
52529: PUSH
52530: LD_INT 24
52532: PUSH
52533: LD_INT 1000
52535: PUSH
52536: EMPTY
52537: LIST
52538: LIST
52539: PUSH
52540: EMPTY
52541: LIST
52542: LIST
52543: PUSH
52544: EMPTY
52545: LIST
52546: LIST
52547: LIST
52548: LIST
52549: LIST
52550: PPUSH
52551: CALL_OW 69
52555: ST_TO_ADDR
// v2 = FilterAllUnits ( [ [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_distxy , 121 , 16 , 7 ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
52556: LD_ADDR_VAR 0 6
52560: PUSH
52561: LD_INT 52
52563: PUSH
52564: EMPTY
52565: LIST
52566: PUSH
52567: LD_INT 22
52569: PUSH
52570: LD_EXP 5
52574: PUSH
52575: EMPTY
52576: LIST
52577: LIST
52578: PUSH
52579: LD_INT 21
52581: PUSH
52582: LD_INT 2
52584: PUSH
52585: EMPTY
52586: LIST
52587: LIST
52588: PUSH
52589: LD_INT 92
52591: PUSH
52592: LD_INT 121
52594: PUSH
52595: LD_INT 16
52597: PUSH
52598: LD_INT 7
52600: PUSH
52601: EMPTY
52602: LIST
52603: LIST
52604: LIST
52605: LIST
52606: PUSH
52607: LD_INT 3
52609: PUSH
52610: LD_INT 24
52612: PUSH
52613: LD_INT 1000
52615: PUSH
52616: EMPTY
52617: LIST
52618: LIST
52619: PUSH
52620: EMPTY
52621: LIST
52622: LIST
52623: PUSH
52624: EMPTY
52625: LIST
52626: LIST
52627: LIST
52628: LIST
52629: LIST
52630: PPUSH
52631: CALL_OW 69
52635: ST_TO_ADDR
// if v then
52636: LD_VAR 0 5
52640: IFFALSE 52694
// if v [ 1 ] and Am2_Fac_3 = IsInUnit ( un ) then
52642: LD_VAR 0 5
52646: PUSH
52647: LD_INT 1
52649: ARRAY
52650: PUSH
52651: LD_INT 158
52653: PUSH
52654: LD_VAR 0 3
52658: PPUSH
52659: CALL_OW 310
52663: EQUAL
52664: AND
52665: IFFALSE 52694
// begin VyjdiVen ( un ) ;
52667: LD_VAR 0 3
52671: PPUSH
52672: CALL 2645 0 1
// ComRepairVehicle ( un , v [ 1 ] ) ;
52676: LD_VAR 0 3
52680: PPUSH
52681: LD_VAR 0 5
52685: PUSH
52686: LD_INT 1
52688: ARRAY
52689: PPUSH
52690: CALL_OW 129
// end ; if v2 then
52694: LD_VAR 0 6
52698: IFFALSE 52752
// if v2 [ 1 ] and Am2_Fac_4 = IsInUnit ( un ) then
52700: LD_VAR 0 6
52704: PUSH
52705: LD_INT 1
52707: ARRAY
52708: PUSH
52709: LD_INT 159
52711: PUSH
52712: LD_VAR 0 3
52716: PPUSH
52717: CALL_OW 310
52721: EQUAL
52722: AND
52723: IFFALSE 52752
// begin VyjdiVen ( un ) ;
52725: LD_VAR 0 3
52729: PPUSH
52730: CALL 2645 0 1
// ComRepairVehicle ( un , v2 [ 1 ] ) ;
52734: LD_VAR 0 3
52738: PPUSH
52739: LD_VAR 0 6
52743: PUSH
52744: LD_INT 1
52746: ARRAY
52747: PPUSH
52748: CALL_OW 129
// end ; end else
52752: GO 52992
// if IsOk ( Am2_Vez_2 ) and IsOutside ( un ) and GetSide ( Am2_Vez_2 ) = Amik2 and GetDistUnits ( un , Am2_Vez_2 ) < 12 and UnitsInside ( Am2_Vez_2 ) < 3 then
52754: LD_INT 167
52756: PPUSH
52757: CALL_OW 302
52761: PUSH
52762: LD_VAR 0 3
52766: PPUSH
52767: CALL 2607 0 1
52771: AND
52772: PUSH
52773: LD_INT 167
52775: PPUSH
52776: CALL_OW 255
52780: PUSH
52781: LD_EXP 5
52785: EQUAL
52786: AND
52787: PUSH
52788: LD_VAR 0 3
52792: PPUSH
52793: LD_INT 167
52795: PPUSH
52796: CALL_OW 296
52800: PUSH
52801: LD_INT 12
52803: LESS
52804: AND
52805: PUSH
52806: LD_INT 167
52808: PPUSH
52809: CALL_OW 313
52813: PUSH
52814: LD_INT 3
52816: LESS
52817: AND
52818: IFFALSE 52834
// ComEnterUnit ( un , Am2_Vez_2 ) else
52820: LD_VAR 0 3
52824: PPUSH
52825: LD_INT 167
52827: PPUSH
52828: CALL_OW 120
52832: GO 52992
// if IsOk ( Am2_Fac_3 ) and IsOutside ( un ) and GetSide ( Am2_Fac_3 ) = Amik2 and GetDistUnits ( un , Am2_Fac_3 ) < 12 and UnitsInside ( Am2_Fac_3 ) < 6 then
52834: LD_INT 158
52836: PPUSH
52837: CALL_OW 302
52841: PUSH
52842: LD_VAR 0 3
52846: PPUSH
52847: CALL 2607 0 1
52851: AND
52852: PUSH
52853: LD_INT 158
52855: PPUSH
52856: CALL_OW 255
52860: PUSH
52861: LD_EXP 5
52865: EQUAL
52866: AND
52867: PUSH
52868: LD_VAR 0 3
52872: PPUSH
52873: LD_INT 158
52875: PPUSH
52876: CALL_OW 296
52880: PUSH
52881: LD_INT 12
52883: LESS
52884: AND
52885: PUSH
52886: LD_INT 158
52888: PPUSH
52889: CALL_OW 313
52893: PUSH
52894: LD_INT 6
52896: LESS
52897: AND
52898: IFFALSE 52914
// ComEnterUnit ( un , Am2_Fac_3 ) else
52900: LD_VAR 0 3
52904: PPUSH
52905: LD_INT 158
52907: PPUSH
52908: CALL_OW 120
52912: GO 52992
// if IsOk ( Am2_Fac_4 ) and IsOutside ( un ) and GetSide ( Am2_Fac_4 ) = Amik2 and GetDistUnits ( un , Am2_Fac_4 ) < 12 and UnitsInside ( Am2_Fac_4 ) < 6 then
52914: LD_INT 159
52916: PPUSH
52917: CALL_OW 302
52921: PUSH
52922: LD_VAR 0 3
52926: PPUSH
52927: CALL 2607 0 1
52931: AND
52932: PUSH
52933: LD_INT 159
52935: PPUSH
52936: CALL_OW 255
52940: PUSH
52941: LD_EXP 5
52945: EQUAL
52946: AND
52947: PUSH
52948: LD_VAR 0 3
52952: PPUSH
52953: LD_INT 159
52955: PPUSH
52956: CALL_OW 296
52960: PUSH
52961: LD_INT 12
52963: LESS
52964: AND
52965: PUSH
52966: LD_INT 159
52968: PPUSH
52969: CALL_OW 313
52973: PUSH
52974: LD_INT 6
52976: LESS
52977: AND
52978: IFFALSE 52992
// ComEnterUnit ( un , Am2_Fac_4 ) ;
52980: LD_VAR 0 3
52984: PPUSH
52985: LD_INT 159
52987: PPUSH
52988: CALL_OW 120
// end ;
52992: GO 52139
52994: POP
52995: POP
// end ; if FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] ] ) then
52996: LD_INT 95
52998: PUSH
52999: LD_INT 36
53001: PUSH
53002: EMPTY
53003: LIST
53004: LIST
53005: PUSH
53006: LD_INT 50
53008: PUSH
53009: EMPTY
53010: LIST
53011: PUSH
53012: LD_INT 22
53014: PUSH
53015: LD_EXP 5
53019: PUSH
53020: EMPTY
53021: LIST
53022: LIST
53023: PUSH
53024: LD_INT 21
53026: PUSH
53027: LD_INT 2
53029: PUSH
53030: EMPTY
53031: LIST
53032: LIST
53033: PUSH
53034: EMPTY
53035: LIST
53036: LIST
53037: LIST
53038: LIST
53039: PPUSH
53040: CALL_OW 69
53044: IFFALSE 53746
// begin Vozidla = FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] ] ) ;
53046: LD_ADDR_VAR 0 2
53050: PUSH
53051: LD_INT 95
53053: PUSH
53054: LD_INT 36
53056: PUSH
53057: EMPTY
53058: LIST
53059: LIST
53060: PUSH
53061: LD_INT 50
53063: PUSH
53064: EMPTY
53065: LIST
53066: PUSH
53067: LD_INT 22
53069: PUSH
53070: LD_EXP 5
53074: PUSH
53075: EMPTY
53076: LIST
53077: LIST
53078: PUSH
53079: LD_INT 21
53081: PUSH
53082: LD_INT 2
53084: PUSH
53085: EMPTY
53086: LIST
53087: LIST
53088: PUSH
53089: EMPTY
53090: LIST
53091: LIST
53092: LIST
53093: LIST
53094: PPUSH
53095: CALL_OW 69
53099: ST_TO_ADDR
// for veh in Vozidla do
53100: LD_ADDR_VAR 0 8
53104: PUSH
53105: LD_VAR 0 2
53109: PUSH
53110: FOR_IN
53111: IFFALSE 53744
// begin if FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_crane ] ] ] ) + 0 >= dif_amik_tanky_max then
53113: LD_INT 95
53115: PUSH
53116: LD_INT 36
53118: PUSH
53119: EMPTY
53120: LIST
53121: LIST
53122: PUSH
53123: LD_INT 22
53125: PUSH
53126: LD_EXP 5
53130: PUSH
53131: EMPTY
53132: LIST
53133: LIST
53134: PUSH
53135: LD_INT 21
53137: PUSH
53138: LD_INT 2
53140: PUSH
53141: EMPTY
53142: LIST
53143: LIST
53144: PUSH
53145: LD_INT 3
53147: PUSH
53148: LD_INT 34
53150: PUSH
53151: LD_INT 13
53153: PUSH
53154: EMPTY
53155: LIST
53156: LIST
53157: PUSH
53158: EMPTY
53159: LIST
53160: LIST
53161: PUSH
53162: EMPTY
53163: LIST
53164: LIST
53165: LIST
53166: LIST
53167: PPUSH
53168: CALL_OW 69
53172: PUSH
53173: LD_INT 0
53175: PLUS
53176: PUSH
53177: LD_EXP 36
53181: GREATEREQUAL
53182: IFFALSE 53229
// if not veh in Am2_Pravy_Attack and not GetWeapon ( veh ) = us_crane then
53184: LD_VAR 0 8
53188: PUSH
53189: LD_EXP 93
53193: IN
53194: NOT
53195: PUSH
53196: LD_VAR 0 8
53200: PPUSH
53201: CALL_OW 264
53205: PUSH
53206: LD_INT 13
53208: EQUAL
53209: NOT
53210: AND
53211: IFFALSE 53229
// Am2_Pravy_Attack = Am2_Pravy_Attack ^ veh ;
53213: LD_ADDR_EXP 93
53217: PUSH
53218: LD_EXP 93
53222: PUSH
53223: LD_VAR 0 8
53227: ADD
53228: ST_TO_ADDR
// if GetLives ( veh ) < 550 and ( not GetDistUnitXY ( veh , 103 , 15 ) <= 5 or not GetDistUnitXY ( veh , 121 , 16 ) <= 5 ) then
53229: LD_VAR 0 8
53233: PPUSH
53234: CALL_OW 256
53238: PUSH
53239: LD_INT 550
53241: LESS
53242: PUSH
53243: LD_VAR 0 8
53247: PPUSH
53248: LD_INT 103
53250: PPUSH
53251: LD_INT 15
53253: PPUSH
53254: CALL_OW 297
53258: PUSH
53259: LD_INT 5
53261: LESSEQUAL
53262: NOT
53263: PUSH
53264: LD_VAR 0 8
53268: PPUSH
53269: LD_INT 121
53271: PPUSH
53272: LD_INT 16
53274: PPUSH
53275: CALL_OW 297
53279: PUSH
53280: LD_INT 5
53282: LESSEQUAL
53283: NOT
53284: OR
53285: AND
53286: IFFALSE 53365
// begin hex = FindNearestPoint ( [ 103 , 15 , 121 , 16 ] , GetX ( veh ) , GetY ( veh ) ) ;
53288: LD_ADDR_VAR 0 14
53292: PUSH
53293: LD_INT 103
53295: PUSH
53296: LD_INT 15
53298: PUSH
53299: LD_INT 121
53301: PUSH
53302: LD_INT 16
53304: PUSH
53305: EMPTY
53306: LIST
53307: LIST
53308: LIST
53309: LIST
53310: PPUSH
53311: LD_VAR 0 8
53315: PPUSH
53316: CALL_OW 250
53320: PPUSH
53321: LD_VAR 0 8
53325: PPUSH
53326: CALL_OW 251
53330: PPUSH
53331: CALL_OW 439
53335: ST_TO_ADDR
// ComMoveXY ( veh , hex [ 1 ] , hex [ 2 ] ) ;
53336: LD_VAR 0 8
53340: PPUSH
53341: LD_VAR 0 14
53345: PUSH
53346: LD_INT 1
53348: ARRAY
53349: PPUSH
53350: LD_VAR 0 14
53354: PUSH
53355: LD_INT 2
53357: ARRAY
53358: PPUSH
53359: CALL_OW 111
// end else
53363: GO 53742
// if GetLives ( veh ) < 1000 and ( GetDistUnitXY ( veh , 103 , 15 ) <= 5 or GetDistUnitXY ( veh , 121 , 16 ) <= 5 ) then
53365: LD_VAR 0 8
53369: PPUSH
53370: CALL_OW 256
53374: PUSH
53375: LD_INT 1000
53377: LESS
53378: PUSH
53379: LD_VAR 0 8
53383: PPUSH
53384: LD_INT 103
53386: PPUSH
53387: LD_INT 15
53389: PPUSH
53390: CALL_OW 297
53394: PUSH
53395: LD_INT 5
53397: LESSEQUAL
53398: PUSH
53399: LD_VAR 0 8
53403: PPUSH
53404: LD_INT 121
53406: PPUSH
53407: LD_INT 16
53409: PPUSH
53410: CALL_OW 297
53414: PUSH
53415: LD_INT 5
53417: LESSEQUAL
53418: OR
53419: AND
53420: IFFALSE 53424
// else
53422: GO 53742
// if FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) then
53424: LD_INT 95
53426: PUSH
53427: LD_INT 36
53429: PUSH
53430: EMPTY
53431: LIST
53432: LIST
53433: PUSH
53434: LD_INT 52
53436: PUSH
53437: EMPTY
53438: LIST
53439: PUSH
53440: LD_INT 22
53442: PUSH
53443: LD_EXP 5
53447: PUSH
53448: EMPTY
53449: LIST
53450: LIST
53451: PUSH
53452: LD_INT 21
53454: PUSH
53455: LD_INT 3
53457: PUSH
53458: EMPTY
53459: LIST
53460: LIST
53461: PUSH
53462: LD_INT 3
53464: PUSH
53465: LD_INT 24
53467: PUSH
53468: LD_INT 250
53470: PUSH
53471: EMPTY
53472: LIST
53473: LIST
53474: PUSH
53475: EMPTY
53476: LIST
53477: LIST
53478: PUSH
53479: EMPTY
53480: LIST
53481: LIST
53482: LIST
53483: LIST
53484: LIST
53485: PPUSH
53486: CALL_OW 69
53490: IFFALSE 53584
// begin b = FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 250 ] ] ] ) ;
53492: LD_ADDR_VAR 0 4
53496: PUSH
53497: LD_INT 95
53499: PUSH
53500: LD_INT 36
53502: PUSH
53503: EMPTY
53504: LIST
53505: LIST
53506: PUSH
53507: LD_INT 52
53509: PUSH
53510: EMPTY
53511: LIST
53512: PUSH
53513: LD_INT 22
53515: PUSH
53516: LD_EXP 5
53520: PUSH
53521: EMPTY
53522: LIST
53523: LIST
53524: PUSH
53525: LD_INT 21
53527: PUSH
53528: LD_INT 3
53530: PUSH
53531: EMPTY
53532: LIST
53533: LIST
53534: PUSH
53535: LD_INT 3
53537: PUSH
53538: LD_INT 24
53540: PUSH
53541: LD_INT 250
53543: PUSH
53544: EMPTY
53545: LIST
53546: LIST
53547: PUSH
53548: EMPTY
53549: LIST
53550: LIST
53551: PUSH
53552: EMPTY
53553: LIST
53554: LIST
53555: LIST
53556: LIST
53557: LIST
53558: PPUSH
53559: CALL_OW 69
53563: ST_TO_ADDR
// ComRepairBuilding ( veh , b [ 1 ] ) ;
53564: LD_VAR 0 8
53568: PPUSH
53569: LD_VAR 0 4
53573: PUSH
53574: LD_INT 1
53576: ARRAY
53577: PPUSH
53578: CALL_OW 130
// end else
53582: GO 53742
// if FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) then
53584: LD_INT 95
53586: PUSH
53587: LD_INT 36
53589: PUSH
53590: EMPTY
53591: LIST
53592: LIST
53593: PUSH
53594: LD_INT 52
53596: PUSH
53597: EMPTY
53598: LIST
53599: PUSH
53600: LD_INT 22
53602: PUSH
53603: LD_EXP 5
53607: PUSH
53608: EMPTY
53609: LIST
53610: LIST
53611: PUSH
53612: LD_INT 21
53614: PUSH
53615: LD_INT 3
53617: PUSH
53618: EMPTY
53619: LIST
53620: LIST
53621: PUSH
53622: LD_INT 3
53624: PUSH
53625: LD_INT 24
53627: PUSH
53628: LD_INT 1000
53630: PUSH
53631: EMPTY
53632: LIST
53633: LIST
53634: PUSH
53635: EMPTY
53636: LIST
53637: LIST
53638: PUSH
53639: EMPTY
53640: LIST
53641: LIST
53642: LIST
53643: LIST
53644: LIST
53645: PPUSH
53646: CALL_OW 69
53650: IFFALSE 53742
// begin b = FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_building ] , [ f_not , [ f_lives , 1000 ] ] ] ) ;
53652: LD_ADDR_VAR 0 4
53656: PUSH
53657: LD_INT 95
53659: PUSH
53660: LD_INT 36
53662: PUSH
53663: EMPTY
53664: LIST
53665: LIST
53666: PUSH
53667: LD_INT 52
53669: PUSH
53670: EMPTY
53671: LIST
53672: PUSH
53673: LD_INT 22
53675: PUSH
53676: LD_EXP 5
53680: PUSH
53681: EMPTY
53682: LIST
53683: LIST
53684: PUSH
53685: LD_INT 21
53687: PUSH
53688: LD_INT 3
53690: PUSH
53691: EMPTY
53692: LIST
53693: LIST
53694: PUSH
53695: LD_INT 3
53697: PUSH
53698: LD_INT 24
53700: PUSH
53701: LD_INT 1000
53703: PUSH
53704: EMPTY
53705: LIST
53706: LIST
53707: PUSH
53708: EMPTY
53709: LIST
53710: LIST
53711: PUSH
53712: EMPTY
53713: LIST
53714: LIST
53715: LIST
53716: LIST
53717: LIST
53718: PPUSH
53719: CALL_OW 69
53723: ST_TO_ADDR
// ComRepairBuilding ( veh , b [ 1 ] ) ;
53724: LD_VAR 0 8
53728: PPUSH
53729: LD_VAR 0 4
53733: PUSH
53734: LD_INT 1
53736: ARRAY
53737: PPUSH
53738: CALL_OW 130
// end ; end ;
53742: GO 53110
53744: POP
53745: POP
// end ; enable ;
53746: ENABLE
// end ;
53747: PPOPN 14
53749: END
// var JerabWaiter ; every 0 0$5 do var jerabek ;
53750: GO 53752
53752: DISABLE
53753: LD_INT 0
53755: PPUSH
// begin if Editor then
53756: LD_EXP 1
53760: IFFALSE 53771
// Wait ( 0 0$30 ) else
53762: LD_INT 1050
53764: PPUSH
53765: CALL_OW 67
53769: GO 53780
// Wait ( JerabWaiter ) ;
53771: LD_LOC 27
53775: PPUSH
53776: CALL_OW 67
// if GetWorkingProgress ( Am2_Fac_3 ) then
53780: LD_INT 158
53782: PPUSH
53783: CALL_OW 328
53787: IFFALSE 53806
// repeat begin Wait ( 0 0$30 ) ;
53789: LD_INT 1050
53791: PPUSH
53792: CALL_OW 67
// end until not GetWorkingProgress ( Am2_Fac_3 ) ;
53796: LD_INT 158
53798: PPUSH
53799: CALL_OW 328
53803: NOT
53804: IFFALSE 53789
// jerabek = FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_placed ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_weapon , us_crane ] ] ) ;
53806: LD_ADDR_VAR 0 1
53810: PUSH
53811: LD_INT 95
53813: PUSH
53814: LD_INT 36
53816: PUSH
53817: EMPTY
53818: LIST
53819: LIST
53820: PUSH
53821: LD_INT 52
53823: PUSH
53824: EMPTY
53825: LIST
53826: PUSH
53827: LD_INT 22
53829: PUSH
53830: LD_EXP 5
53834: PUSH
53835: EMPTY
53836: LIST
53837: LIST
53838: PUSH
53839: LD_INT 21
53841: PUSH
53842: LD_INT 2
53844: PUSH
53845: EMPTY
53846: LIST
53847: LIST
53848: PUSH
53849: LD_INT 34
53851: PUSH
53852: LD_INT 13
53854: PUSH
53855: EMPTY
53856: LIST
53857: LIST
53858: PUSH
53859: EMPTY
53860: LIST
53861: LIST
53862: LIST
53863: LIST
53864: LIST
53865: PPUSH
53866: CALL_OW 69
53870: ST_TO_ADDR
// if not jerabek + 0 >= dif_jerabu and AmiciFungujou then
53871: LD_VAR 0 1
53875: PUSH
53876: LD_INT 0
53878: PLUS
53879: PUSH
53880: LD_EXP 40
53884: GREATEREQUAL
53885: NOT
53886: PUSH
53887: CALL 51892 0 0
53891: AND
53892: IFFALSE 53982
// begin if not FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_btype , b_ext_noncombat ] ] ) then
53894: LD_INT 95
53896: PUSH
53897: LD_INT 36
53899: PUSH
53900: EMPTY
53901: LIST
53902: LIST
53903: PUSH
53904: LD_INT 50
53906: PUSH
53907: EMPTY
53908: LIST
53909: PUSH
53910: LD_INT 22
53912: PUSH
53913: LD_EXP 5
53917: PUSH
53918: EMPTY
53919: LIST
53920: LIST
53921: PUSH
53922: LD_INT 30
53924: PUSH
53925: LD_INT 19
53927: PUSH
53928: EMPTY
53929: LIST
53930: LIST
53931: PUSH
53932: EMPTY
53933: LIST
53934: LIST
53935: LIST
53936: LIST
53937: PPUSH
53938: CALL_OW 69
53942: NOT
53943: IFFALSE 53947
// exit ;
53945: GO 53983
// ComConstruct ( Am2_Fac_3 , dif_jerab_podvozek , engine_siberite , control_remote , us_crane ) ;
53947: LD_INT 158
53949: PPUSH
53950: LD_EXP 41
53954: PPUSH
53955: LD_INT 3
53957: PPUSH
53958: LD_INT 2
53960: PPUSH
53961: LD_INT 13
53963: PPUSH
53964: CALL_OW 125
// JerabWaiter = JerabWaiter + 1 1$30 ;
53968: LD_ADDR_LOC 27
53972: PUSH
53973: LD_LOC 27
53977: PUSH
53978: LD_INT 3150
53980: PLUS
53981: ST_TO_ADDR
// end ; enable ;
53982: ENABLE
// end ;
53983: PPOPN 1
53985: END
// export Am2_Pravy_Attack ; every 0 0$1 do
53986: GO 53988
53988: DISABLE
// begin if not ZijeNekdoList ( Am2_Pravy_Attack ) then
53989: LD_EXP 93
53993: PPUSH
53994: CALL 8801 0 1
53998: NOT
53999: IFFALSE 54009
// Probiha_McAttack = false ;
54001: LD_ADDR_LOC 30
54005: PUSH
54006: LD_INT 0
54008: ST_TO_ADDR
// enable ;
54009: ENABLE
// end ;
54010: END
// every 0 0$3 trigger ( IsOk ( Am2_Fac_3 ) or IsOk ( Am2_Fac_4 ) ) and ( GetSide ( Am2_Fac_3 ) = Amik2 and GetSide ( Am2_Fac_4 ) = Amik2 ) and not ZijeNekdoList ( Am2_Pravy_Attack ) marked 09 do
54011: LD_INT 158
54013: PPUSH
54014: CALL_OW 302
54018: PUSH
54019: LD_INT 159
54021: PPUSH
54022: CALL_OW 302
54026: OR
54027: PUSH
54028: LD_INT 158
54030: PPUSH
54031: CALL_OW 255
54035: PUSH
54036: LD_EXP 5
54040: EQUAL
54041: PUSH
54042: LD_INT 159
54044: PPUSH
54045: CALL_OW 255
54049: PUSH
54050: LD_EXP 5
54054: EQUAL
54055: AND
54056: AND
54057: PUSH
54058: LD_EXP 93
54062: PPUSH
54063: CALL 8801 0 1
54067: NOT
54068: AND
54069: IFFALSE 54199
54071: GO 54073
54073: DISABLE
// begin if Editor then
54074: LD_EXP 1
54078: IFFALSE 54089
// Wait ( 0 0$30 ) else
54080: LD_INT 1050
54082: PPUSH
54083: CALL_OW 67
54087: GO 54106
// Wait ( Rand ( 7 7$00 , dif_am2_build_wait ) ) ;
54089: LD_INT 14700
54091: PPUSH
54092: LD_EXP 43
54096: PPUSH
54097: CALL_OW 12
54101: PPUSH
54102: CALL_OW 67
// repeat begin Vyrabej ( [ Am2_Fac_3 , Am2_Fac_4 ] ) ;
54106: LD_INT 158
54108: PUSH
54109: LD_INT 159
54111: PUSH
54112: EMPTY
54113: LIST
54114: LIST
54115: PPUSH
54116: CALL 54200 0 1
// Wait ( 0 0$5 ) ;
54120: LD_INT 175
54122: PPUSH
54123: CALL_OW 67
// end until FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_crane ] ] ] ) + 0 >= dif_amik_tanky_max ;
54127: LD_INT 95
54129: PUSH
54130: LD_INT 36
54132: PUSH
54133: EMPTY
54134: LIST
54135: LIST
54136: PUSH
54137: LD_INT 22
54139: PUSH
54140: LD_EXP 5
54144: PUSH
54145: EMPTY
54146: LIST
54147: LIST
54148: PUSH
54149: LD_INT 21
54151: PUSH
54152: LD_INT 2
54154: PUSH
54155: EMPTY
54156: LIST
54157: LIST
54158: PUSH
54159: LD_INT 3
54161: PUSH
54162: LD_INT 34
54164: PUSH
54165: LD_INT 13
54167: PUSH
54168: EMPTY
54169: LIST
54170: LIST
54171: PUSH
54172: EMPTY
54173: LIST
54174: LIST
54175: PUSH
54176: EMPTY
54177: LIST
54178: LIST
54179: LIST
54180: LIST
54181: PPUSH
54182: CALL_OW 69
54186: PUSH
54187: LD_INT 0
54189: PLUS
54190: PUSH
54191: LD_EXP 36
54195: GREATEREQUAL
54196: IFFALSE 54106
// enable ;
54198: ENABLE
// end ;
54199: END
// function Vyrabej ( Tovarny ) ; var tanky ; var Tovarna ; var list , i ; begin
54200: LD_INT 0
54202: PPUSH
54203: PPUSH
54204: PPUSH
54205: PPUSH
54206: PPUSH
// list = Tovarny ;
54207: LD_ADDR_VAR 0 5
54211: PUSH
54212: LD_VAR 0 1
54216: ST_TO_ADDR
// for Tovarna in Tovarny do
54217: LD_ADDR_VAR 0 4
54221: PUSH
54222: LD_VAR 0 1
54226: PUSH
54227: FOR_IN
54228: IFFALSE 54611
// begin if not IsOk ( Tovarna ) then
54230: LD_VAR 0 4
54234: PPUSH
54235: CALL_OW 302
54239: NOT
54240: IFFALSE 54258
// list = list diff Tovarna ;
54242: LD_ADDR_VAR 0 5
54246: PUSH
54247: LD_VAR 0 5
54251: PUSH
54252: LD_VAR 0 4
54256: DIFF
54257: ST_TO_ADDR
// if GetWorkingProgress ( Tovarna ) then
54258: LD_VAR 0 4
54262: PPUSH
54263: CALL_OW 328
54267: IFFALSE 54285
// list = list diff Tovarna ;
54269: LD_ADDR_VAR 0 5
54273: PUSH
54274: LD_VAR 0 5
54278: PUSH
54279: LD_VAR 0 4
54283: DIFF
54284: ST_TO_ADDR
// if not UnitsInside ( Tovarna ) then
54285: LD_VAR 0 4
54289: PPUSH
54290: CALL_OW 313
54294: NOT
54295: IFFALSE 54313
// list = list diff Tovarna ;
54297: LD_ADDR_VAR 0 5
54301: PUSH
54302: LD_VAR 0 5
54306: PUSH
54307: LD_VAR 0 4
54311: DIFF
54312: ST_TO_ADDR
// if not GetSide ( Tovarna ) = Amik2 then
54313: LD_VAR 0 4
54317: PPUSH
54318: CALL_OW 255
54322: PUSH
54323: LD_EXP 5
54327: EQUAL
54328: NOT
54329: IFFALSE 54347
// list = list diff Tovarna ;
54331: LD_ADDR_VAR 0 5
54335: PUSH
54336: LD_VAR 0 5
54340: PUSH
54341: LD_VAR 0 4
54345: DIFF
54346: ST_TO_ADDR
// if not FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_btype , b_factory ] ] ) then
54347: LD_INT 95
54349: PUSH
54350: LD_INT 36
54352: PUSH
54353: EMPTY
54354: LIST
54355: LIST
54356: PUSH
54357: LD_INT 50
54359: PUSH
54360: EMPTY
54361: LIST
54362: PUSH
54363: LD_INT 22
54365: PUSH
54366: LD_EXP 5
54370: PUSH
54371: EMPTY
54372: LIST
54373: LIST
54374: PUSH
54375: LD_INT 30
54377: PUSH
54378: LD_INT 3
54380: PUSH
54381: EMPTY
54382: LIST
54383: LIST
54384: PUSH
54385: EMPTY
54386: LIST
54387: LIST
54388: LIST
54389: LIST
54390: PPUSH
54391: CALL_OW 69
54395: NOT
54396: IFFALSE 54402
// exit ;
54398: POP
54399: POP
54400: GO 54731
// if not FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_btype , b_ext_siberium ] , [ f_not , [ f_constructed ] ] ] ) then
54402: LD_INT 95
54404: PUSH
54405: LD_INT 36
54407: PUSH
54408: EMPTY
54409: LIST
54410: LIST
54411: PUSH
54412: LD_INT 50
54414: PUSH
54415: EMPTY
54416: LIST
54417: PUSH
54418: LD_INT 22
54420: PUSH
54421: LD_EXP 5
54425: PUSH
54426: EMPTY
54427: LIST
54428: LIST
54429: PUSH
54430: LD_INT 30
54432: PUSH
54433: LD_INT 21
54435: PUSH
54436: EMPTY
54437: LIST
54438: LIST
54439: PUSH
54440: LD_INT 3
54442: PUSH
54443: LD_INT 57
54445: PUSH
54446: EMPTY
54447: LIST
54448: PUSH
54449: EMPTY
54450: LIST
54451: LIST
54452: PUSH
54453: EMPTY
54454: LIST
54455: LIST
54456: LIST
54457: LIST
54458: LIST
54459: PPUSH
54460: CALL_OW 69
54464: NOT
54465: IFFALSE 54471
// exit ;
54467: POP
54468: POP
54469: GO 54731
// if not FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_btype , b_ext_radar ] , [ f_not , [ f_constructed ] ] ] ) then
54471: LD_INT 95
54473: PUSH
54474: LD_INT 36
54476: PUSH
54477: EMPTY
54478: LIST
54479: LIST
54480: PUSH
54481: LD_INT 50
54483: PUSH
54484: EMPTY
54485: LIST
54486: PUSH
54487: LD_INT 22
54489: PUSH
54490: LD_EXP 5
54494: PUSH
54495: EMPTY
54496: LIST
54497: LIST
54498: PUSH
54499: LD_INT 30
54501: PUSH
54502: LD_INT 20
54504: PUSH
54505: EMPTY
54506: LIST
54507: LIST
54508: PUSH
54509: LD_INT 3
54511: PUSH
54512: LD_INT 57
54514: PUSH
54515: EMPTY
54516: LIST
54517: PUSH
54518: EMPTY
54519: LIST
54520: LIST
54521: PUSH
54522: EMPTY
54523: LIST
54524: LIST
54525: LIST
54526: LIST
54527: LIST
54528: PPUSH
54529: CALL_OW 69
54533: NOT
54534: IFFALSE 54540
// exit ;
54536: POP
54537: POP
54538: GO 54731
// if not FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_ok ] , [ f_side , Amik2 ] , [ f_btype , b_ext_track ] , [ f_not , [ f_constructed ] ] ] ) then
54540: LD_INT 95
54542: PUSH
54543: LD_INT 36
54545: PUSH
54546: EMPTY
54547: LIST
54548: LIST
54549: PUSH
54550: LD_INT 50
54552: PUSH
54553: EMPTY
54554: LIST
54555: PUSH
54556: LD_INT 22
54558: PUSH
54559: LD_EXP 5
54563: PUSH
54564: EMPTY
54565: LIST
54566: LIST
54567: PUSH
54568: LD_INT 30
54570: PUSH
54571: LD_INT 16
54573: PUSH
54574: EMPTY
54575: LIST
54576: LIST
54577: PUSH
54578: LD_INT 3
54580: PUSH
54581: LD_INT 57
54583: PUSH
54584: EMPTY
54585: LIST
54586: PUSH
54587: EMPTY
54588: LIST
54589: LIST
54590: PUSH
54591: EMPTY
54592: LIST
54593: LIST
54594: LIST
54595: LIST
54596: LIST
54597: PPUSH
54598: CALL_OW 69
54602: NOT
54603: IFFALSE 54609
// exit ;
54605: POP
54606: POP
54607: GO 54731
// end ;
54609: GO 54227
54611: POP
54612: POP
// tanky = FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_weapon , us_crane ] ] ] ) ;
54613: LD_ADDR_VAR 0 3
54617: PUSH
54618: LD_INT 95
54620: PUSH
54621: LD_INT 36
54623: PUSH
54624: EMPTY
54625: LIST
54626: LIST
54627: PUSH
54628: LD_INT 22
54630: PUSH
54631: LD_EXP 5
54635: PUSH
54636: EMPTY
54637: LIST
54638: LIST
54639: PUSH
54640: LD_INT 21
54642: PUSH
54643: LD_INT 2
54645: PUSH
54646: EMPTY
54647: LIST
54648: LIST
54649: PUSH
54650: LD_INT 3
54652: PUSH
54653: LD_INT 34
54655: PUSH
54656: LD_INT 13
54658: PUSH
54659: EMPTY
54660: LIST
54661: LIST
54662: PUSH
54663: EMPTY
54664: LIST
54665: LIST
54666: PUSH
54667: EMPTY
54668: LIST
54669: LIST
54670: LIST
54671: LIST
54672: PPUSH
54673: CALL_OW 69
54677: ST_TO_ADDR
// if tanky + 0 < dif_amik_tanky_max then
54678: LD_VAR 0 3
54682: PUSH
54683: LD_INT 0
54685: PLUS
54686: PUSH
54687: LD_EXP 36
54691: LESS
54692: IFFALSE 54731
// begin for i = 1 to list do
54694: LD_ADDR_VAR 0 6
54698: PUSH
54699: DOUBLE
54700: LD_INT 1
54702: DEC
54703: ST_TO_ADDR
54704: LD_VAR 0 5
54708: PUSH
54709: FOR_TO
54710: IFFALSE 54729
// Vyroba_auta_Amik2 ( list [ i ] ) ;
54712: LD_VAR 0 5
54716: PUSH
54717: LD_VAR 0 6
54721: ARRAY
54722: PPUSH
54723: CALL 49666 0 1
54727: GO 54709
54729: POP
54730: POP
// end ; end ;
54731: LD_VAR 0 2
54735: RET
// var MakroUtok ; var RegUtok ; export function Init_Makra_Am2_Pravy ; begin
54736: LD_INT 0
54738: PPUSH
// RegUtok = McRegistry ( Amik2 , [ [ MC_REG_AREA_TO_GUARD , Prava ] , MC_REG_IGNORE_FOG ] ) ;
54739: LD_ADDR_LOC 29
54743: PUSH
54744: LD_EXP 5
54748: PPUSH
54749: LD_INT 2
54751: PUSH
54752: LD_INT 32
54754: PUSH
54755: EMPTY
54756: LIST
54757: LIST
54758: PUSH
54759: LD_INT 7
54761: PUSH
54762: EMPTY
54763: LIST
54764: LIST
54765: PPUSH
54766: CALL_OW 399
54770: ST_TO_ADDR
// end ;
54771: LD_VAR 0 1
54775: RET
// var Probiha_McAttack ; every 0 0$3 trigger Am2_Pravy_Attack + 0 >= dif_amik_tanky_max and not Probiha_McAttack do
54776: LD_EXP 93
54780: PUSH
54781: LD_INT 0
54783: PLUS
54784: PUSH
54785: LD_EXP 36
54789: GREATEREQUAL
54790: PUSH
54791: LD_LOC 30
54795: NOT
54796: AND
54797: IFFALSE 54836
54799: GO 54801
54801: DISABLE
// begin MakroUtok = McAttack ( 10 , RegUtok , AM2_PRAVY_ATTACK , [ ] ) ;
54802: LD_ADDR_LOC 28
54806: PUSH
54807: LD_INT 10
54809: PPUSH
54810: LD_LOC 29
54814: PPUSH
54815: LD_EXP 93
54819: PPUSH
54820: EMPTY
54821: PPUSH
54822: CALL_OW 402
54826: ST_TO_ADDR
// Probiha_McAttack = true ;
54827: LD_ADDR_LOC 30
54831: PUSH
54832: LD_INT 1
54834: ST_TO_ADDR
// enable ;
54835: ENABLE
// end ;
54836: END
// every 0 0$0.5 trigger FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_linked ] ] , [ f_ok ] ] ) do
54837: LD_INT 95
54839: PUSH
54840: LD_INT 36
54842: PUSH
54843: EMPTY
54844: LIST
54845: LIST
54846: PUSH
54847: LD_INT 22
54849: PUSH
54850: LD_EXP 5
54854: PUSH
54855: EMPTY
54856: LIST
54857: LIST
54858: PUSH
54859: LD_INT 21
54861: PUSH
54862: LD_INT 2
54864: PUSH
54865: EMPTY
54866: LIST
54867: LIST
54868: PUSH
54869: LD_INT 3
54871: PUSH
54872: LD_INT 61
54874: PUSH
54875: EMPTY
54876: LIST
54877: PUSH
54878: EMPTY
54879: LIST
54880: LIST
54881: PUSH
54882: LD_INT 50
54884: PUSH
54885: EMPTY
54886: LIST
54887: PUSH
54888: EMPTY
54889: LIST
54890: LIST
54891: LIST
54892: LIST
54893: LIST
54894: PPUSH
54895: CALL_OW 69
54899: IFFALSE 54979
54901: GO 54903
54903: DISABLE
// begin LinkVehicle ( FilterAllUnits ( [ [ f_inarea , AmVelka2 ] , [ f_side , Amik2 ] , [ f_type , unit_vehicle ] , [ f_not , [ f_linked ] ] , [ f_ok ] ] ) [ 1 ] , AmVelka2 ) ;
54904: LD_INT 95
54906: PUSH
54907: LD_INT 36
54909: PUSH
54910: EMPTY
54911: LIST
54912: LIST
54913: PUSH
54914: LD_INT 22
54916: PUSH
54917: LD_EXP 5
54921: PUSH
54922: EMPTY
54923: LIST
54924: LIST
54925: PUSH
54926: LD_INT 21
54928: PUSH
54929: LD_INT 2
54931: PUSH
54932: EMPTY
54933: LIST
54934: LIST
54935: PUSH
54936: LD_INT 3
54938: PUSH
54939: LD_INT 61
54941: PUSH
54942: EMPTY
54943: LIST
54944: PUSH
54945: EMPTY
54946: LIST
54947: LIST
54948: PUSH
54949: LD_INT 50
54951: PUSH
54952: EMPTY
54953: LIST
54954: PUSH
54955: EMPTY
54956: LIST
54957: LIST
54958: LIST
54959: LIST
54960: LIST
54961: PPUSH
54962: CALL_OW 69
54966: PUSH
54967: LD_INT 1
54969: ARRAY
54970: PPUSH
54971: LD_INT 36
54973: PPUSH
54974: CALL 50379 0 2
// enable ;
54978: ENABLE
// end ; end_of_file
54979: END
// export ZenskaOdejdi ; export ZenskaDoDepotu ; export OdstranitZenskou ; export ZenskaBylaZavrena ; every 5 5$33 do
54980: GO 54982
54982: DISABLE
// begin repeat ; begin Wait ( 0 0$2 ) ;
54983: LD_INT 70
54985: PPUSH
54986: CALL_OW 67
// end until not ZijeNekdoList ( Am_Utok_1_List ) ;
54990: LD_EXP 80
54994: PPUSH
54995: CALL 8801 0 1
54999: NOT
55000: IFFALSE 54983
// enable ( 20 ) ;
55002: LD_INT 20
55004: ENABLE_MARKED
// end ;
55005: END
// every 0 0$5 trigger Hrajeme and not IsPlaced ( Alice ) and not FilterAllUnits ( [ [ f_ok ] , [ f_side , Purple ] , [ f_placed ] ] ) marked 20 do var Shift_x , Shift_y , Steps ; var kdo , rus ;
55006: LD_EXP 20
55010: PUSH
55011: LD_EXP 16
55015: PPUSH
55016: CALL_OW 305
55020: NOT
55021: AND
55022: PUSH
55023: LD_INT 50
55025: PUSH
55026: EMPTY
55027: LIST
55028: PUSH
55029: LD_INT 22
55031: PUSH
55032: LD_EXP 6
55036: PUSH
55037: EMPTY
55038: LIST
55039: LIST
55040: PUSH
55041: LD_INT 52
55043: PUSH
55044: EMPTY
55045: LIST
55046: PUSH
55047: EMPTY
55048: LIST
55049: LIST
55050: LIST
55051: PPUSH
55052: CALL_OW 69
55056: NOT
55057: AND
55058: IFFALSE 55532
55060: GO 55062
55062: DISABLE
55063: LD_INT 0
55065: PPUSH
55066: PPUSH
55067: PPUSH
55068: PPUSH
55069: PPUSH
// begin repeat begin Wait ( 0 0$1 ) ;
55070: LD_INT 35
55072: PPUSH
55073: CALL_OW 67
// rus = FilterAllUnits ( [ [ f_ok ] , [ f_side , You ] , [ f_type , unit_human ] , [ f_outside ] , [ f_not , [ f_class , class_scientistic ] ] , [ f_not , [ f_class , class_apeman ] ] , [ f_not , [ f_class , class_apeman_soldier ] ] , [ f_not , [ f_class , class_apeman_engineer ] ] ] ) diff Vsevolod ;
55077: LD_ADDR_VAR 0 5
55081: PUSH
55082: LD_INT 50
55084: PUSH
55085: EMPTY
55086: LIST
55087: PUSH
55088: LD_INT 22
55090: PUSH
55091: LD_EXP 2
55095: PUSH
55096: EMPTY
55097: LIST
55098: LIST
55099: PUSH
55100: LD_INT 21
55102: PUSH
55103: LD_INT 1
55105: PUSH
55106: EMPTY
55107: LIST
55108: LIST
55109: PUSH
55110: LD_INT 56
55112: PUSH
55113: EMPTY
55114: LIST
55115: PUSH
55116: LD_INT 3
55118: PUSH
55119: LD_INT 25
55121: PUSH
55122: LD_INT 4
55124: PUSH
55125: EMPTY
55126: LIST
55127: LIST
55128: PUSH
55129: EMPTY
55130: LIST
55131: LIST
55132: PUSH
55133: LD_INT 3
55135: PUSH
55136: LD_INT 25
55138: PUSH
55139: LD_INT 12
55141: PUSH
55142: EMPTY
55143: LIST
55144: LIST
55145: PUSH
55146: EMPTY
55147: LIST
55148: LIST
55149: PUSH
55150: LD_INT 3
55152: PUSH
55153: LD_INT 25
55155: PUSH
55156: LD_INT 15
55158: PUSH
55159: EMPTY
55160: LIST
55161: LIST
55162: PUSH
55163: EMPTY
55164: LIST
55165: LIST
55166: PUSH
55167: LD_INT 3
55169: PUSH
55170: LD_INT 25
55172: PUSH
55173: LD_INT 16
55175: PUSH
55176: EMPTY
55177: LIST
55178: LIST
55179: PUSH
55180: EMPTY
55181: LIST
55182: LIST
55183: PUSH
55184: EMPTY
55185: LIST
55186: LIST
55187: LIST
55188: LIST
55189: LIST
55190: LIST
55191: LIST
55192: LIST
55193: PPUSH
55194: CALL_OW 69
55198: PUSH
55199: LD_EXP 17
55203: DIFF
55204: ST_TO_ADDR
// if IsOk ( karamazov ) and not IsInUnit ( karamazov ) and GetDistUnitXY ( karamazov , 131 , 179 ) < 9 then
55205: LD_EXP 11
55209: PPUSH
55210: CALL_OW 302
55214: PUSH
55215: LD_EXP 11
55219: PPUSH
55220: CALL_OW 310
55224: NOT
55225: AND
55226: PUSH
55227: LD_EXP 11
55231: PPUSH
55232: LD_INT 131
55234: PPUSH
55235: LD_INT 179
55237: PPUSH
55238: CALL_OW 297
55242: PUSH
55243: LD_INT 9
55245: LESS
55246: AND
55247: IFFALSE 55261
// kdo = karamazov else
55249: LD_ADDR_VAR 0 4
55253: PUSH
55254: LD_EXP 11
55258: ST_TO_ADDR
55259: GO 55288
// if rus then
55261: LD_VAR 0 5
55265: IFFALSE 55288
// kdo = NearestUnitToXY ( rus , 131 , 179 ) ;
55267: LD_ADDR_VAR 0 4
55271: PUSH
55272: LD_VAR 0 5
55276: PPUSH
55277: LD_INT 131
55279: PPUSH
55280: LD_INT 179
55282: PPUSH
55283: CALL_OW 73
55287: ST_TO_ADDR
// end until GetDistUnitXY ( kdo , 131 , 179 ) < 9 ;
55288: LD_VAR 0 4
55292: PPUSH
55293: LD_INT 131
55295: PPUSH
55296: LD_INT 179
55298: PPUSH
55299: CALL_OW 297
55303: PUSH
55304: LD_INT 9
55306: LESS
55307: IFFALSE 55070
// Steps = 0 ;
55309: LD_ADDR_VAR 0 3
55313: PUSH
55314: LD_INT 0
55316: ST_TO_ADDR
// Shift_x = GetX ( kdo ) - 2 ;
55317: LD_ADDR_VAR 0 1
55321: PUSH
55322: LD_VAR 0 4
55326: PPUSH
55327: CALL_OW 250
55331: PUSH
55332: LD_INT 2
55334: MINUS
55335: ST_TO_ADDR
// Shift_y = GetY ( kdo ) - 2 ;
55336: LD_ADDR_VAR 0 2
55340: PUSH
55341: LD_VAR 0 4
55345: PPUSH
55346: CALL_OW 251
55350: PUSH
55351: LD_INT 2
55353: MINUS
55354: ST_TO_ADDR
// repeat ; begin if not HexInfo ( Shift_x , Shift_y ) = 0 then
55355: LD_VAR 0 1
55359: PPUSH
55360: LD_VAR 0 2
55364: PPUSH
55365: CALL_OW 428
55369: PUSH
55370: LD_INT 0
55372: EQUAL
55373: NOT
55374: IFFALSE 55418
// begin Shift_x = Shift_x - 1 ;
55376: LD_ADDR_VAR 0 1
55380: PUSH
55381: LD_VAR 0 1
55385: PUSH
55386: LD_INT 1
55388: MINUS
55389: ST_TO_ADDR
// Shift_y = Shift_y - 1 ;
55390: LD_ADDR_VAR 0 2
55394: PUSH
55395: LD_VAR 0 2
55399: PUSH
55400: LD_INT 1
55402: MINUS
55403: ST_TO_ADDR
// Steps = Steps + 1 ;
55404: LD_ADDR_VAR 0 3
55408: PUSH
55409: LD_VAR 0 3
55413: PUSH
55414: LD_INT 1
55416: PLUS
55417: ST_TO_ADDR
// end ; if Steps > 4 then
55418: LD_VAR 0 3
55422: PUSH
55423: LD_INT 4
55425: GREATER
55426: IFFALSE 55481
// begin Wait ( 0 0$3 ) ;
55428: LD_INT 105
55430: PPUSH
55431: CALL_OW 67
// Steps = 0 ;
55435: LD_ADDR_VAR 0 3
55439: PUSH
55440: LD_INT 0
55442: ST_TO_ADDR
// Shift_x = GetX ( kdo ) - 2 ;
55443: LD_ADDR_VAR 0 1
55447: PUSH
55448: LD_VAR 0 4
55452: PPUSH
55453: CALL_OW 250
55457: PUSH
55458: LD_INT 2
55460: MINUS
55461: ST_TO_ADDR
// Shift_y = GetY ( kdo ) - 2 ;
55462: LD_ADDR_VAR 0 2
55466: PUSH
55467: LD_VAR 0 4
55471: PPUSH
55472: CALL_OW 251
55476: PUSH
55477: LD_INT 2
55479: MINUS
55480: ST_TO_ADDR
// end ; end ; until HexInfo ( Shift_x , Shift_y ) = 0 ;
55481: LD_VAR 0 1
55485: PPUSH
55486: LD_VAR 0 2
55490: PPUSH
55491: CALL_OW 428
55495: PUSH
55496: LD_INT 0
55498: EQUAL
55499: IFFALSE 55355
// PlaceUnitXY ( Alice , Shift_x , Shift_y , true ) ;
55501: LD_EXP 16
55505: PPUSH
55506: LD_VAR 0 1
55510: PPUSH
55511: LD_VAR 0 2
55515: PPUSH
55516: LD_INT 1
55518: PPUSH
55519: CALL_OW 48
// DialogArabZenska ( kdo ) ;
55523: LD_VAR 0 4
55527: PPUSH
55528: CALL 27687 0 1
// end ;
55532: PPOPN 5
55534: END
// every 0 0$0.5 trigger ZenskaOdejdi do var okraj ;
55535: LD_EXP 94
55539: IFFALSE 55881
55541: GO 55543
55543: DISABLE
55544: LD_INT 0
55546: PPUSH
// begin if IsOk ( Alice ) and GetSide ( Alice ) = 2 then
55547: LD_EXP 16
55551: PPUSH
55552: CALL_OW 302
55556: PUSH
55557: LD_EXP 16
55561: PPUSH
55562: CALL_OW 255
55566: PUSH
55567: LD_INT 2
55569: EQUAL
55570: AND
55571: IFFALSE 55880
// begin okraj = FindNearestPoint ( [ 128 , 197 , 129 , 197 , 130 , 197 , 131 , 197 , 132 , 197 , 133 , 197 , 134 , 197 , 135 , 197 , 136 , 197 , 137 , 197 , 138 , 197 , 139 , 197 , 140 , 197 , 141 , 197 , 142 , 197 , 143 , 197 , 144 , 197 , 145 , 197 , 146 , 197 , 147 , 197 , 148 , 197 , 149 , 197 , 150 , 197 ] , GetX ( Alice ) , GetY ( Alice ) ) ;
55573: LD_ADDR_VAR 0 1
55577: PUSH
55578: LD_INT 128
55580: PUSH
55581: LD_INT 197
55583: PUSH
55584: LD_INT 129
55586: PUSH
55587: LD_INT 197
55589: PUSH
55590: LD_INT 130
55592: PUSH
55593: LD_INT 197
55595: PUSH
55596: LD_INT 131
55598: PUSH
55599: LD_INT 197
55601: PUSH
55602: LD_INT 132
55604: PUSH
55605: LD_INT 197
55607: PUSH
55608: LD_INT 133
55610: PUSH
55611: LD_INT 197
55613: PUSH
55614: LD_INT 134
55616: PUSH
55617: LD_INT 197
55619: PUSH
55620: LD_INT 135
55622: PUSH
55623: LD_INT 197
55625: PUSH
55626: LD_INT 136
55628: PUSH
55629: LD_INT 197
55631: PUSH
55632: LD_INT 137
55634: PUSH
55635: LD_INT 197
55637: PUSH
55638: LD_INT 138
55640: PUSH
55641: LD_INT 197
55643: PUSH
55644: LD_INT 139
55646: PUSH
55647: LD_INT 197
55649: PUSH
55650: LD_INT 140
55652: PUSH
55653: LD_INT 197
55655: PUSH
55656: LD_INT 141
55658: PUSH
55659: LD_INT 197
55661: PUSH
55662: LD_INT 142
55664: PUSH
55665: LD_INT 197
55667: PUSH
55668: LD_INT 143
55670: PUSH
55671: LD_INT 197
55673: PUSH
55674: LD_INT 144
55676: PUSH
55677: LD_INT 197
55679: PUSH
55680: LD_INT 145
55682: PUSH
55683: LD_INT 197
55685: PUSH
55686: LD_INT 146
55688: PUSH
55689: LD_INT 197
55691: PUSH
55692: LD_INT 147
55694: PUSH
55695: LD_INT 197
55697: PUSH
55698: LD_INT 148
55700: PUSH
55701: LD_INT 197
55703: PUSH
55704: LD_INT 149
55706: PUSH
55707: LD_INT 197
55709: PUSH
55710: LD_INT 150
55712: PUSH
55713: LD_INT 197
55715: PUSH
55716: EMPTY
55717: LIST
55718: LIST
55719: LIST
55720: LIST
55721: LIST
55722: LIST
55723: LIST
55724: LIST
55725: LIST
55726: LIST
55727: LIST
55728: LIST
55729: LIST
55730: LIST
55731: LIST
55732: LIST
55733: LIST
55734: LIST
55735: LIST
55736: LIST
55737: LIST
55738: LIST
55739: LIST
55740: LIST
55741: LIST
55742: LIST
55743: LIST
55744: LIST
55745: LIST
55746: LIST
55747: LIST
55748: LIST
55749: LIST
55750: LIST
55751: LIST
55752: LIST
55753: LIST
55754: LIST
55755: LIST
55756: LIST
55757: LIST
55758: LIST
55759: LIST
55760: LIST
55761: LIST
55762: LIST
55763: PPUSH
55764: LD_EXP 16
55768: PPUSH
55769: CALL_OW 250
55773: PPUSH
55774: LD_EXP 16
55778: PPUSH
55779: CALL_OW 251
55783: PPUSH
55784: CALL_OW 439
55788: ST_TO_ADDR
// ComMoveXY ( Alice , okraj [ 1 ] , okraj [ 2 ] ) ;
55789: LD_EXP 16
55793: PPUSH
55794: LD_VAR 0 1
55798: PUSH
55799: LD_INT 1
55801: ARRAY
55802: PPUSH
55803: LD_VAR 0 1
55807: PUSH
55808: LD_INT 2
55810: ARRAY
55811: PPUSH
55812: CALL_OW 111
// if GetDistUnitXY ( Alice , okraj [ 1 ] , okraj [ 2 ] ) < 3 then
55816: LD_EXP 16
55820: PPUSH
55821: LD_VAR 0 1
55825: PUSH
55826: LD_INT 1
55828: ARRAY
55829: PPUSH
55830: LD_VAR 0 1
55834: PUSH
55835: LD_INT 2
55837: ARRAY
55838: PPUSH
55839: CALL_OW 297
55843: PUSH
55844: LD_INT 3
55846: LESS
55847: IFFALSE 55880
// begin RemoveUnit ( Alice ) ;
55849: LD_EXP 16
55853: PPUSH
55854: CALL_OW 64
// if TaskObdrzen then
55858: LD_EXP 98
55862: IFFALSE 55879
// begin ChangeMissionObjectives ( M04 ) ;
55864: LD_STRING M04
55866: PPUSH
55867: CALL_OW 337
// TaskObdrzen = false ;
55871: LD_ADDR_EXP 98
55875: PUSH
55876: LD_INT 0
55878: ST_TO_ADDR
// end ; disable ;
55879: DISABLE
// end ; end ; enable ;
55880: ENABLE
// end ;
55881: PPOPN 1
55883: END
// export TaskObdrzen ; every 0 0$0.5 trigger ZenskaDoDepotu do var depoty , tmp ;
55884: LD_EXP 95
55888: IFFALSE 56141
55890: GO 55892
55892: DISABLE
55893: LD_INT 0
55895: PPUSH
55896: PPUSH
// begin if not TaskObdrzen then
55897: LD_EXP 98
55901: NOT
55902: IFFALSE 55912
// TaskObdrzen = 1 ;
55904: LD_ADDR_EXP 98
55908: PUSH
55909: LD_INT 1
55911: ST_TO_ADDR
// depoty = FilterAllUnits ( [ [ f_ok ] , [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
55912: LD_ADDR_VAR 0 1
55916: PUSH
55917: LD_INT 50
55919: PUSH
55920: EMPTY
55921: LIST
55922: PUSH
55923: LD_INT 22
55925: PUSH
55926: LD_EXP 2
55930: PUSH
55931: EMPTY
55932: LIST
55933: LIST
55934: PUSH
55935: LD_INT 2
55937: PUSH
55938: LD_INT 30
55940: PUSH
55941: LD_INT 0
55943: PUSH
55944: EMPTY
55945: LIST
55946: LIST
55947: PUSH
55948: LD_INT 30
55950: PUSH
55951: LD_INT 1
55953: PUSH
55954: EMPTY
55955: LIST
55956: LIST
55957: PUSH
55958: EMPTY
55959: LIST
55960: LIST
55961: LIST
55962: PUSH
55963: EMPTY
55964: LIST
55965: LIST
55966: LIST
55967: PPUSH
55968: CALL_OW 69
55972: ST_TO_ADDR
// if GetClass ( Alice ) <> 1 then
55973: LD_EXP 16
55977: PPUSH
55978: CALL_OW 257
55982: PUSH
55983: LD_INT 1
55985: NONEQUAL
55986: IFFALSE 56000
// SetClass ( Alice , 1 ) ;
55988: LD_EXP 16
55992: PPUSH
55993: LD_INT 1
55995: PPUSH
55996: CALL_OW 336
// ComWalk ( Alice ) ;
56000: LD_EXP 16
56004: PPUSH
56005: CALL_OW 138
// if depoty then
56009: LD_VAR 0 1
56013: IFFALSE 56140
// begin tmp = NearestUnitToXY ( depoty , GetX ( Alice ) , GetY ( Alice ) ) ;
56015: LD_ADDR_VAR 0 2
56019: PUSH
56020: LD_VAR 0 1
56024: PPUSH
56025: LD_EXP 16
56029: PPUSH
56030: CALL_OW 250
56034: PPUSH
56035: LD_EXP 16
56039: PPUSH
56040: CALL_OW 251
56044: PPUSH
56045: CALL_OW 73
56049: ST_TO_ADDR
// if GetDistUnits ( Alice , tmp ) < 6 and GetSide ( Alice ) = 2 then
56050: LD_EXP 16
56054: PPUSH
56055: LD_VAR 0 2
56059: PPUSH
56060: CALL_OW 296
56064: PUSH
56065: LD_INT 6
56067: LESS
56068: PUSH
56069: LD_EXP 16
56073: PPUSH
56074: CALL_OW 255
56078: PUSH
56079: LD_INT 2
56081: EQUAL
56082: AND
56083: IFFALSE 56099
// SetSide ( Alice , You ) ;
56085: LD_EXP 16
56089: PPUSH
56090: LD_EXP 2
56094: PPUSH
56095: CALL_OW 235
// if not tmp = IsInUnit ( Alice ) then
56099: LD_VAR 0 2
56103: PUSH
56104: LD_EXP 16
56108: PPUSH
56109: CALL_OW 310
56113: EQUAL
56114: NOT
56115: IFFALSE 56140
// begin VyjdiVen ( Alice ) ;
56117: LD_EXP 16
56121: PPUSH
56122: CALL 2645 0 1
// ComEnterUnit ( Alice , tmp ) ;
56126: LD_EXP 16
56130: PPUSH
56131: LD_VAR 0 2
56135: PPUSH
56136: CALL_OW 120
// end ; end ; enable ;
56140: ENABLE
// end ;
56141: PPOPN 2
56143: END
// every 0 0$2 trigger ZenskaDoDepotu do var ValidRus , Depot , Nejblizsi , tmp , tmp2 , sklad ;
56144: LD_EXP 95
56148: IFFALSE 56471
56150: GO 56152
56152: DISABLE
56153: LD_INT 0
56155: PPUSH
56156: PPUSH
56157: PPUSH
56158: PPUSH
56159: PPUSH
56160: PPUSH
// begin if PrestanUtikat then
56161: LD_EXP 99
56165: IFFALSE 56169
// exit ;
56167: GO 56471
// Wait ( dif_alice_utek ) ;
56169: LD_EXP 38
56173: PPUSH
56174: CALL_OW 67
// if IsInUnit ( Alice ) then
56178: LD_EXP 16
56182: PPUSH
56183: CALL_OW 310
56187: IFFALSE 56470
// begin Sklad = IsInUnit ( Alice ) ;
56189: LD_ADDR_VAR 0 6
56193: PUSH
56194: LD_EXP 16
56198: PPUSH
56199: CALL_OW 310
56203: ST_TO_ADDR
// ValidRus = ( FilterAllUnits ( [ [ f_ok ] , [ f_side , You ] , [ f_type , unit_human ] ] ) diff Alice ) ^ ( FilterAllUnits ( [ [ f_ok ] , [ f_side , You ] , [ f_type , unit_building ] , [ f_occupied ] ] ) diff Sklad ) ^ ( FilterAllUnits ( [ [ f_ok ] , [ f_side , You ] , [ f_type , unit_vehicle ] , [ f_occupied ] ] ) ) ;
56204: LD_ADDR_VAR 0 1
56208: PUSH
56209: LD_INT 50
56211: PUSH
56212: EMPTY
56213: LIST
56214: PUSH
56215: LD_INT 22
56217: PUSH
56218: LD_EXP 2
56222: PUSH
56223: EMPTY
56224: LIST
56225: LIST
56226: PUSH
56227: LD_INT 21
56229: PUSH
56230: LD_INT 1
56232: PUSH
56233: EMPTY
56234: LIST
56235: LIST
56236: PUSH
56237: EMPTY
56238: LIST
56239: LIST
56240: LIST
56241: PPUSH
56242: CALL_OW 69
56246: PUSH
56247: LD_EXP 16
56251: DIFF
56252: PUSH
56253: LD_INT 50
56255: PUSH
56256: EMPTY
56257: LIST
56258: PUSH
56259: LD_INT 22
56261: PUSH
56262: LD_EXP 2
56266: PUSH
56267: EMPTY
56268: LIST
56269: LIST
56270: PUSH
56271: LD_INT 21
56273: PUSH
56274: LD_INT 3
56276: PUSH
56277: EMPTY
56278: LIST
56279: LIST
56280: PUSH
56281: LD_INT 59
56283: PUSH
56284: EMPTY
56285: LIST
56286: PUSH
56287: EMPTY
56288: LIST
56289: LIST
56290: LIST
56291: LIST
56292: PPUSH
56293: CALL_OW 69
56297: PUSH
56298: LD_VAR 0 6
56302: DIFF
56303: ADD
56304: PUSH
56305: LD_INT 50
56307: PUSH
56308: EMPTY
56309: LIST
56310: PUSH
56311: LD_INT 22
56313: PUSH
56314: LD_EXP 2
56318: PUSH
56319: EMPTY
56320: LIST
56321: LIST
56322: PUSH
56323: LD_INT 21
56325: PUSH
56326: LD_INT 2
56328: PUSH
56329: EMPTY
56330: LIST
56331: LIST
56332: PUSH
56333: LD_INT 59
56335: PUSH
56336: EMPTY
56337: LIST
56338: PUSH
56339: EMPTY
56340: LIST
56341: LIST
56342: LIST
56343: LIST
56344: PPUSH
56345: CALL_OW 69
56349: ADD
56350: ST_TO_ADDR
// tmp = NearestUnitToXY ( ValidRus , GetX ( Sklad ) , GetY ( Sklad ) ) ;
56351: LD_ADDR_VAR 0 4
56355: PUSH
56356: LD_VAR 0 1
56360: PPUSH
56361: LD_VAR 0 6
56365: PPUSH
56366: CALL_OW 250
56370: PPUSH
56371: LD_VAR 0 6
56375: PPUSH
56376: CALL_OW 251
56380: PPUSH
56381: CALL_OW 73
56385: ST_TO_ADDR
// if GetDistUnits ( Alice , tmp ) > dif_alice_dist and UnitsInside ( Sklad ) <= 1 then
56386: LD_EXP 16
56390: PPUSH
56391: LD_VAR 0 4
56395: PPUSH
56396: CALL_OW 296
56400: PUSH
56401: LD_EXP 39
56405: GREATER
56406: PUSH
56407: LD_VAR 0 6
56411: PPUSH
56412: CALL_OW 313
56416: PUSH
56417: LD_INT 1
56419: LESSEQUAL
56420: AND
56421: IFFALSE 56470
// begin RemoveTasks ( Alice ) ;
56423: LD_EXP 16
56427: PPUSH
56428: CALL_OW 493
// ZenskaDoDepotu = 0 ;
56432: LD_ADDR_EXP 95
56436: PUSH
56437: LD_INT 0
56439: ST_TO_ADDR
// VyjdiVen ( Alice ) ;
56440: LD_EXP 16
56444: PPUSH
56445: CALL 2645 0 1
// SetSide ( Alice , 2 ) ;
56449: LD_EXP 16
56453: PPUSH
56454: LD_INT 2
56456: PPUSH
56457: CALL_OW 235
// ZenskaOdejdi = 1 ;
56461: LD_ADDR_EXP 94
56465: PUSH
56466: LD_INT 1
56468: ST_TO_ADDR
// disable ;
56469: DISABLE
// end ; end ; enable ;
56470: ENABLE
// end ;
56471: PPOPN 6
56473: END
// export PrestanUtikat ; every 0 0$1 trigger LevaBazaZnicena and IsOk ( Alice ) and GetSide ( Alice ) = You do
56474: LD_EXP 78
56478: PUSH
56479: LD_EXP 16
56483: PPUSH
56484: CALL_OW 302
56488: AND
56489: PUSH
56490: LD_EXP 16
56494: PPUSH
56495: CALL_OW 255
56499: PUSH
56500: LD_EXP 2
56504: EQUAL
56505: AND
56506: IFFALSE 56538
56508: GO 56510
56510: DISABLE
// begin PrestanUtikat = 1 ;
56511: LD_ADDR_EXP 99
56515: PUSH
56516: LD_INT 1
56518: ST_TO_ADDR
// Wait ( Rand ( 0 0$30 , 0 0$45 ) ) ;
56519: LD_INT 1050
56521: PPUSH
56522: LD_INT 1575
56524: PPUSH
56525: CALL_OW 12
56529: PPUSH
56530: CALL_OW 67
// DialogArabRichard ;
56534: CALL 28169 0 0
// end ;
56538: END
// every 0 0$0.5 trigger OdstranitZenskou and IsOk ( Alice ) do
56539: LD_EXP 96
56543: PUSH
56544: LD_EXP 16
56548: PPUSH
56549: CALL_OW 302
56553: AND
56554: IFFALSE 56681
56556: GO 56558
56558: DISABLE
// begin if GetClass ( Alice ) <> 1 then
56559: LD_EXP 16
56563: PPUSH
56564: CALL_OW 257
56568: PUSH
56569: LD_INT 1
56571: NONEQUAL
56572: IFFALSE 56586
// SetClass ( Alice , 1 ) ;
56574: LD_EXP 16
56578: PPUSH
56579: LD_INT 1
56581: PPUSH
56582: CALL_OW 336
// if GetDistUnitXY ( Alice , 76 , 152 ) < 4 or GetDistUnitXY ( Alice , 78 , 156 ) < 4 then
56586: LD_EXP 16
56590: PPUSH
56591: LD_INT 76
56593: PPUSH
56594: LD_INT 152
56596: PPUSH
56597: CALL_OW 297
56601: PUSH
56602: LD_INT 4
56604: LESS
56605: PUSH
56606: LD_EXP 16
56610: PPUSH
56611: LD_INT 78
56613: PPUSH
56614: LD_INT 156
56616: PPUSH
56617: CALL_OW 297
56621: PUSH
56622: LD_INT 4
56624: LESS
56625: OR
56626: IFFALSE 56680
// begin if IsOk ( Alice ) then
56628: LD_EXP 16
56632: PPUSH
56633: CALL_OW 302
56637: IFFALSE 56680
// begin RemoveUnit ( Alice ) ;
56639: LD_EXP 16
56643: PPUSH
56644: CALL_OW 64
// if TaskObdrzen then
56648: LD_EXP 98
56652: IFFALSE 56669
// begin ChangeMissionObjectives ( M04 ) ;
56654: LD_STRING M04
56656: PPUSH
56657: CALL_OW 337
// TaskObdrzen = false ;
56661: LD_ADDR_EXP 98
56665: PUSH
56666: LD_INT 0
56668: ST_TO_ADDR
// end ; Wait ( 0 0$4 ) ;
56669: LD_INT 140
56671: PPUSH
56672: CALL_OW 67
// DialogArabRichardAccept ;
56676: CALL 28394 0 0
// end ; end ; enable ;
56680: ENABLE
// end ;
56681: END
