// export Arabi , Rusi , You ; export Arabi2 , Rusi2 , You2 ; export Arabi3 ; export SideKhat ; export radzio ; var pom , pom1 ; var VIPka ; var i ; export lidi_other_surv ; export lidi_with_JMM ; export bazookaDialog ; starting begin Amici_na_zacatku = [ ] ;
   0: LD_ADDR_EXP 25
   4: PUSH
   5: EMPTY
   6: ST_TO_ADDR
// RandomizeAll ;
   7: CALL_OW 11
// Randomize ;
  11: CALL_OW 10
// Arabi := 2 ;
  15: LD_ADDR_EXP 1
  19: PUSH
  20: LD_INT 2
  22: ST_TO_ADDR
// Arabi2 = 5 ;
  23: LD_ADDR_EXP 4
  27: PUSH
  28: LD_INT 5
  30: ST_TO_ADDR
// Arabi3 = 7 ;
  31: LD_ADDR_EXP 7
  35: PUSH
  36: LD_INT 7
  38: ST_TO_ADDR
// You := 1 ;
  39: LD_ADDR_EXP 3
  43: PUSH
  44: LD_INT 1
  46: ST_TO_ADDR
// You2 = 4 ;
  47: LD_ADDR_EXP 6
  51: PUSH
  52: LD_INT 4
  54: ST_TO_ADDR
// Rusi := 3 ;
  55: LD_ADDR_EXP 2
  59: PUSH
  60: LD_INT 3
  62: ST_TO_ADDR
// SideKhat = 8 ;
  63: LD_ADDR_EXP 8
  67: PUSH
  68: LD_INT 8
  70: ST_TO_ADDR
// Rusi2 = 6 ;
  71: LD_ADDR_EXP 5
  75: PUSH
  76: LD_INT 6
  78: ST_TO_ADDR
// bazookaDialog = 0 ;
  79: LD_ADDR_EXP 12
  83: PUSH
  84: LD_INT 0
  86: ST_TO_ADDR
// cas = [ 0 , : , 0 ] ;
  87: LD_ADDR_EXP 87
  91: PUSH
  92: LD_INT 0
  94: PUSH
  95: LD_STRING :
  97: PUSH
  98: LD_INT 0
 100: PUSH
 101: EMPTY
 102: LIST
 103: LIST
 104: LIST
 105: ST_TO_ADDR
// SetDificultyLevels ;
 106: CALL 33839 0 0
// GetConstants ;
 110: CALL 1889 0 0
// load_postav ;
 114: CALL 1686 0 0
// Res := 0 ;
 118: LD_ADDR_EXP 59
 122: PUSH
 123: LD_INT 0
 125: ST_TO_ADDR
// Dial = 0 ;
 126: LD_ADDR_EXP 40
 130: PUSH
 131: LD_INT 0
 133: ST_TO_ADDR
// COR_GO = 0 ;
 134: LD_ADDR_EXP 55
 138: PUSH
 139: LD_INT 0
 141: ST_TO_ADDR
// RUSI_AUTA = 0 ;
 142: LD_ADDR_EXP 36
 146: PUSH
 147: LD_INT 0
 149: ST_TO_ADDR
// END_ATTACK = false ;
 150: LD_ADDR_EXP 57
 154: PUSH
 155: LD_INT 0
 157: ST_TO_ADDR
// Arabi_utoci = false ;
 158: LD_ADDR_EXP 30
 162: PUSH
 163: LD_INT 0
 165: ST_TO_ADDR
// PRU_ATTACK = 0 ;
 166: LD_ADDR_EXP 37
 170: PUSH
 171: LD_INT 0
 173: ST_TO_ADDR
// KHATTAM_PADA = false ;
 174: LD_ADDR_EXP 58
 178: PUSH
 179: LD_INT 0
 181: ST_TO_ADDR
// UTEKLI_ARABI := 0 ;
 182: LD_ADDR_EXP 31
 186: PUSH
 187: LD_INT 0
 189: ST_TO_ADDR
// ingame_video = true ;
 190: LD_ADDR_OWVAR 52
 194: PUSH
 195: LD_INT 1
 197: ST_TO_ADDR
// uprav_mastodonty ;
 198: CALL 7252 0 0
// create_arabi ;
 202: CALL 2199 0 0
// create_am_vedci ;
 206: CALL 2596 0 0
// create_amici1 ;
 210: CALL 3669 0 0
// nah = Rand ( 1 , 4 ) ;
 214: LD_ADDR_EXP 35
 218: PUSH
 219: LD_INT 1
 221: PPUSH
 222: LD_INT 4
 224: PPUSH
 225: CALL_OW 12
 229: ST_TO_ADDR
// create_konvoj_ru ( nah ) ;
 230: LD_EXP 35
 234: PPUSH
 235: CALL 4835 0 1
// create_mechaniky_navic ;
 239: CALL 10208 0 0
// create_rusky_utok_0 ;
 243: CALL 8490 0 0
// create_rusky_attack1 ;
 247: CALL 6211 0 0
// create_vojaci ;
 251: CALL 6494 0 0
// create_attack_after_end ;
 255: CALL 8652 0 0
// create_2_new_attack ;
 259: CALL 7349 0 0
// create_3_new_attack ;
 263: CALL 7754 0 0
// create_bazooka_attack ;
 267: CALL 8241 0 0
// CenterNowOnXY ( 30 , 35 ) ;
 271: LD_INT 30
 273: PPUSH
 274: LD_INT 35
 276: PPUSH
 277: CALL_OW 86
// RevealFogArea ( Arabi , ASE ) ;
 281: LD_EXP 1
 285: PPUSH
 286: LD_INT 42
 288: PPUSH
 289: CALL_OW 332
// ChangeSideFog ( You , Arabi ) ;
 293: LD_EXP 3
 297: PPUSH
 298: LD_EXP 1
 302: PPUSH
 303: CALL_OW 343
// ChangeSideFog ( You2 , Arabi ) ;
 307: LD_EXP 6
 311: PPUSH
 312: LD_EXP 1
 316: PPUSH
 317: CALL_OW 343
// end ;
 321: END
// on UnitDestroyed ( un ) do begin if un = JMM then
 322: LD_VAR 0 1
 326: PUSH
 327: LD_EXP 42
 331: EQUAL
 332: IFFALSE 341
// YouLost ( JMM ) ;
 334: LD_STRING JMM
 336: PPUSH
 337: CALL_OW 104
// if un = Khattam and GetSide ( Khattam ) = 1 then
 341: LD_VAR 0 1
 345: PUSH
 346: LD_EXP 45
 350: EQUAL
 351: PUSH
 352: LD_EXP 45
 356: PPUSH
 357: CALL_OW 255
 361: PUSH
 362: LD_INT 1
 364: EQUAL
 365: AND
 366: IFFALSE 372
// SA_KhattamKilledBeforeBetray ;
 368: CALL 34589 0 0
// end ;
 372: PPOPN 1
 374: END
// every 0 0$1 trigger END_ATTACK do
 375: LD_EXP 57
 379: IFFALSE 402
 381: GO 383
 383: DISABLE
// begin if not Arabi_Utoci then
 384: LD_EXP 30
 388: NOT
 389: IFFALSE 402
// begin powell_kecy ;
 391: CALL 31275 0 0
// YouLost ( Powell ) ;
 395: LD_STRING Powell
 397: PPUSH
 398: CALL_OW 104
// end ; end ;
 402: END
// on Contact ( side1 , side2 ) do begin if side1 = 1 and side2 = 4 then
 403: LD_VAR 0 1
 407: PUSH
 408: LD_INT 1
 410: EQUAL
 411: PUSH
 412: LD_VAR 0 2
 416: PUSH
 417: LD_INT 4
 419: EQUAL
 420: AND
 421: IFFALSE 430
// Youlost ( Powell ) ;
 423: LD_STRING Powell
 425: PPUSH
 426: CALL_OW 104
// end ;
 430: PPOPN 2
 432: END
// on EndTheMissionRaised ( void ) do begin end_the_mission_allowed := false ;
 433: LD_ADDR_OWVAR 57
 437: PUSH
 438: LD_INT 0
 440: ST_TO_ADDR
// Mission_end ( EndTheMissionRaised - Main 132 ) ;
 441: LD_STRING EndTheMissionRaised - Main 132
 443: PPUSH
 444: CALL 451 0 1
// end ;
 448: PPOPN 1
 450: END
// export function Mission_end ( tst ) ; var all_people ; var pom1 , pom2 , i , medal1 , medal2 , medal3 ; begin
 451: LD_INT 0
 453: PPUSH
 454: PPUSH
 455: PPUSH
 456: PPUSH
 457: PPUSH
 458: PPUSH
 459: PPUSH
 460: PPUSH
// medal1 := false ;
 461: LD_ADDR_VAR 0 7
 465: PUSH
 466: LD_INT 0
 468: ST_TO_ADDR
// medal2 := false ;
 469: LD_ADDR_VAR 0 8
 473: PUSH
 474: LD_INT 0
 476: ST_TO_ADDR
// medal3 := false ;
 477: LD_ADDR_VAR 0 9
 481: PUSH
 482: LD_INT 0
 484: ST_TO_ADDR
// msg ( tst ) ;
 485: LD_VAR 0 1
 489: PPUSH
 490: CALL_OW 100
// DisableExclamations ;
 494: CALL_OW 474
// gained_medals := [ ] ;
 498: LD_ADDR_OWVAR 61
 502: PUSH
 503: EMPTY
 504: ST_TO_ADDR
// missing_medals := [ ] ;
 505: LD_ADDR_OWVAR 62
 509: PUSH
 510: EMPTY
 511: ST_TO_ADDR
// if GetTech ( tech_LasSight , You ) = state_researched then
 512: LD_INT 12
 514: PPUSH
 515: LD_EXP 3
 519: PPUSH
 520: CALL_OW 321
 524: PUSH
 525: LD_INT 2
 527: EQUAL
 528: IFFALSE 550
// begin AddMedal ( sights , 1 ) ;
 530: LD_STRING sights
 532: PPUSH
 533: LD_INT 1
 535: PPUSH
 536: CALL_OW 101
// medal1 := true ;
 540: LD_ADDR_VAR 0 7
 544: PUSH
 545: LD_INT 1
 547: ST_TO_ADDR
// end else
 548: GO 561
// AddMedal ( sights , - 1 ) ;
 550: LD_STRING sights
 552: PPUSH
 553: LD_INT 1
 555: NEG
 556: PPUSH
 557: CALL_OW 101
// if GetTech ( tech_AI , You ) = state_researched then
 561: LD_INT 32
 563: PPUSH
 564: LD_EXP 3
 568: PPUSH
 569: CALL_OW 321
 573: PUSH
 574: LD_INT 2
 576: EQUAL
 577: IFFALSE 599
// begin AddMedal ( computers , 1 ) ;
 579: LD_STRING computers
 581: PPUSH
 582: LD_INT 1
 584: PPUSH
 585: CALL_OW 101
// medal2 := true ;
 589: LD_ADDR_VAR 0 8
 593: PUSH
 594: LD_INT 1
 596: ST_TO_ADDR
// end else
 597: GO 610
// AddMedal ( computers , - 1 ) ;
 599: LD_STRING computers
 601: PPUSH
 602: LD_INT 1
 604: NEG
 605: PPUSH
 606: CALL_OW 101
// if UTEKLI_ARABI = 0 then
 610: LD_EXP 31
 614: PUSH
 615: LD_INT 0
 617: EQUAL
 618: IFFALSE 658
// begin medal3 := true ;
 620: LD_ADDR_VAR 0 9
 624: PUSH
 625: LD_INT 1
 627: ST_TO_ADDR
// if Arabi_Utoci then
 628: LD_EXP 30
 632: IFFALSE 646
// AddMedal ( renegades , 2 ) else
 634: LD_STRING renegades
 636: PPUSH
 637: LD_INT 2
 639: PPUSH
 640: CALL_OW 101
 644: GO 656
// AddMedal ( renegades , 1 ) ;
 646: LD_STRING renegades
 648: PPUSH
 649: LD_INT 1
 651: PPUSH
 652: CALL_OW 101
// end else
 656: GO 692
// if UTEKLI_ARABI <= 2 then
 658: LD_EXP 31
 662: PUSH
 663: LD_INT 2
 665: LESSEQUAL
 666: IFFALSE 681
// AddMedal ( renegades , - 1 ) else
 668: LD_STRING renegades
 670: PPUSH
 671: LD_INT 1
 673: NEG
 674: PPUSH
 675: CALL_OW 101
 679: GO 692
// AddMedal ( renegades , - 2 ) ;
 681: LD_STRING renegades
 683: PPUSH
 684: LD_INT 2
 686: NEG
 687: PPUSH
 688: CALL_OW 101
// SA_EndMission ( 1 , 10 , medal1 , medal2 , medal3 ) ;
 692: LD_INT 1
 694: PPUSH
 695: LD_INT 10
 697: PPUSH
 698: LD_VAR 0 7
 702: PPUSH
 703: LD_VAR 0 8
 707: PPUSH
 708: LD_VAR 0 9
 712: PPUSH
 713: CALL 34604 0 5
// GiveMedals ( Main ) ;
 717: LD_STRING Main
 719: PPUSH
 720: CALL_OW 102
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_human ] ] ) ;
 724: LD_ADDR_LOC 1
 728: PUSH
 729: LD_INT 22
 731: PUSH
 732: LD_EXP 3
 736: PUSH
 737: EMPTY
 738: LIST
 739: LIST
 740: PUSH
 741: LD_INT 1
 743: PUSH
 744: EMPTY
 745: LIST
 746: PUSH
 747: LD_INT 21
 749: PUSH
 750: LD_INT 1
 752: PUSH
 753: EMPTY
 754: LIST
 755: LIST
 756: PUSH
 757: EMPTY
 758: LIST
 759: LIST
 760: LIST
 761: PPUSH
 762: CALL_OW 69
 766: ST_TO_ADDR
// for i in FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_vehicle ] ] ) do
 767: LD_ADDR_VAR 0 6
 771: PUSH
 772: LD_INT 22
 774: PUSH
 775: LD_EXP 3
 779: PUSH
 780: EMPTY
 781: LIST
 782: LIST
 783: PUSH
 784: LD_INT 1
 786: PUSH
 787: EMPTY
 788: LIST
 789: PUSH
 790: LD_INT 21
 792: PUSH
 793: LD_INT 2
 795: PUSH
 796: EMPTY
 797: LIST
 798: LIST
 799: PUSH
 800: EMPTY
 801: LIST
 802: LIST
 803: LIST
 804: PPUSH
 805: CALL_OW 69
 809: PUSH
 810: FOR_IN
 811: IFFALSE 859
// begin pom1 = IsDrivenBy ( i ) ;
 813: LD_ADDR_VAR 0 4
 817: PUSH
 818: LD_VAR 0 6
 822: PPUSH
 823: CALL_OW 311
 827: ST_TO_ADDR
// if not ( pom1 in pom ) then
 828: LD_VAR 0 4
 832: PUSH
 833: LD_LOC 1
 837: IN
 838: NOT
 839: IFFALSE 857
// pom = pom ^ pom1 ;
 841: LD_ADDR_LOC 1
 845: PUSH
 846: LD_LOC 1
 850: PUSH
 851: LD_VAR 0 4
 855: ADD
 856: ST_TO_ADDR
// end ;
 857: GO 810
 859: POP
 860: POP
// all_people = pom ;
 861: LD_ADDR_VAR 0 3
 865: PUSH
 866: LD_LOC 1
 870: ST_TO_ADDR
// all_people = all_people diff UnitFilter ( all_people , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] ] ) ;
 871: LD_ADDR_VAR 0 3
 875: PUSH
 876: LD_VAR 0 3
 880: PUSH
 881: LD_VAR 0 3
 885: PPUSH
 886: LD_INT 2
 888: PUSH
 889: LD_INT 25
 891: PUSH
 892: LD_INT 12
 894: PUSH
 895: EMPTY
 896: LIST
 897: LIST
 898: PUSH
 899: LD_INT 25
 901: PUSH
 902: LD_INT 16
 904: PUSH
 905: EMPTY
 906: LIST
 907: LIST
 908: PUSH
 909: EMPTY
 910: LIST
 911: LIST
 912: LIST
 913: PPUSH
 914: CALL_OW 72
 918: DIFF
 919: ST_TO_ADDR
// RewardPeople ( all_people ) ;
 920: LD_VAR 0 3
 924: PPUSH
 925: CALL_OW 43
// VIPka = [ JMM , Cyrus , Khattam , Simms , Joan_F , Gary , Powell , Denis , Cornel ] ;
 929: LD_ADDR_LOC 3
 933: PUSH
 934: LD_EXP 42
 938: PUSH
 939: LD_EXP 47
 943: PUSH
 944: LD_EXP 45
 948: PUSH
 949: LD_EXP 46
 953: PUSH
 954: LD_EXP 43
 958: PUSH
 959: LD_EXP 44
 963: PUSH
 964: LD_EXP 49
 968: PUSH
 969: LD_EXP 48
 973: PUSH
 974: LD_EXP 50
 978: PUSH
 979: EMPTY
 980: LIST
 981: LIST
 982: LIST
 983: LIST
 984: LIST
 985: LIST
 986: LIST
 987: LIST
 988: LIST
 989: ST_TO_ADDR
// SaveCharacters ( JMM , JMM ) ;
 990: LD_EXP 42
 994: PPUSH
 995: LD_STRING JMM
 997: PPUSH
 998: CALL_OW 38
// SaveCharacters ( Cyrus , Cyrus ) ;
1002: LD_EXP 47
1006: PPUSH
1007: LD_STRING Cyrus
1009: PPUSH
1010: CALL_OW 38
// SaveCharacters ( Khattam , Khatam ) ;
1014: LD_EXP 45
1018: PPUSH
1019: LD_STRING Khatam
1021: PPUSH
1022: CALL_OW 38
// SaveCharacters ( Simms , Simms ) ;
1026: LD_EXP 46
1030: PPUSH
1031: LD_STRING Simms
1033: PPUSH
1034: CALL_OW 38
// SaveVariable ( 6 , SimmsLoc ) ;
1038: LD_INT 6
1040: PPUSH
1041: LD_STRING SimmsLoc
1043: PPUSH
1044: CALL_OW 39
// SaveCharacters ( Joan_F , Joan ) ;
1048: LD_EXP 43
1052: PPUSH
1053: LD_STRING Joan
1055: PPUSH
1056: CALL_OW 38
// SaveVariable ( 6 , JoanLoc ) ;
1060: LD_INT 6
1062: PPUSH
1063: LD_STRING JoanLoc
1065: PPUSH
1066: CALL_OW 39
// SaveCharacters ( Gary , Gary ) ;
1070: LD_EXP 44
1074: PPUSH
1075: LD_STRING Gary
1077: PPUSH
1078: CALL_OW 38
// SaveVariable ( 6 , GaryLoc ) ;
1082: LD_INT 6
1084: PPUSH
1085: LD_STRING GaryLoc
1087: PPUSH
1088: CALL_OW 39
// SaveCharacters ( Powell , Powell ) ;
1092: LD_EXP 49
1096: PPUSH
1097: LD_STRING Powell
1099: PPUSH
1100: CALL_OW 38
// SaveCharacters ( Denis , Denis ) ;
1104: LD_EXP 48
1108: PPUSH
1109: LD_STRING Denis
1111: PPUSH
1112: CALL_OW 38
// SaveVariable ( 6 , DenisLoc ) ;
1116: LD_INT 6
1118: PPUSH
1119: LD_STRING DenisLoc
1121: PPUSH
1122: CALL_OW 39
// SaveCharacters ( Cornel , Cornell ) ;
1126: LD_EXP 50
1130: PPUSH
1131: LD_STRING Cornell
1133: PPUSH
1134: CALL_OW 38
// SaveVariable ( 6 , CornellLoc ) ;
1138: LD_INT 6
1140: PPUSH
1141: LD_STRING CornellLoc
1143: PPUSH
1144: CALL_OW 39
// DeleteVariable ( Stoupa9_siberit ) ;
1148: LD_STRING Stoupa9_siberit
1150: PPUSH
1151: CALL_OW 41
// DeleteVariable ( Stoupa9_informace ) ;
1155: LD_STRING Stoupa9_informace
1157: PPUSH
1158: CALL_OW 41
// DeleteVariable ( us2mikhail_state ) ;
1162: LD_STRING us2mikhail_state
1164: PPUSH
1165: CALL_OW 41
// pom1 = lidi_other_surv diff Amici_na_zacatku ;
1169: LD_ADDR_VAR 0 4
1173: PUSH
1174: LD_EXP 10
1178: PUSH
1179: LD_EXP 25
1183: DIFF
1184: ST_TO_ADDR
// pom2 = lidi_with_JMM diff Amici_na_zacatku ;
1185: LD_ADDR_VAR 0 5
1189: PUSH
1190: LD_EXP 11
1194: PUSH
1195: LD_EXP 25
1199: DIFF
1200: ST_TO_ADDR
// SaveCharacters ( pom1 , other_survivors ) ;
1201: LD_VAR 0 4
1205: PPUSH
1206: LD_STRING other_survivors
1208: PPUSH
1209: CALL_OW 38
// SaveCharacters ( pom2 , otherNotJMM ) ;
1213: LD_VAR 0 5
1217: PPUSH
1218: LD_STRING otherNotJMM
1220: PPUSH
1221: CALL_OW 38
// pom2 = all_people diff VIPka ;
1225: LD_ADDR_VAR 0 5
1229: PUSH
1230: LD_VAR 0 3
1234: PUSH
1235: LD_LOC 3
1239: DIFF
1240: ST_TO_ADDR
// SaveCharacters ( pom2 , otherWithJMM ) ;
1241: LD_VAR 0 5
1245: PPUSH
1246: LD_STRING otherWithJMM
1248: PPUSH
1249: CALL_OW 38
// pom = FilterUnitsInArea ( Eps_save , [ [ f_side , You ] , [ f_type , unit_building ] , [ f_ok ] ] ) ;
1253: LD_ADDR_LOC 1
1257: PUSH
1258: LD_INT 31
1260: PPUSH
1261: LD_INT 22
1263: PUSH
1264: LD_EXP 3
1268: PUSH
1269: EMPTY
1270: LIST
1271: LIST
1272: PUSH
1273: LD_INT 21
1275: PUSH
1276: LD_INT 3
1278: PUSH
1279: EMPTY
1280: LIST
1281: LIST
1282: PUSH
1283: LD_INT 50
1285: PUSH
1286: EMPTY
1287: LIST
1288: PUSH
1289: EMPTY
1290: LIST
1291: LIST
1292: LIST
1293: PPUSH
1294: CALL_OW 70
1298: ST_TO_ADDR
// pom1 = [ ] ;
1299: LD_ADDR_VAR 0 4
1303: PUSH
1304: EMPTY
1305: ST_TO_ADDR
// for i in pom do
1306: LD_ADDR_VAR 0 6
1310: PUSH
1311: LD_LOC 1
1315: PUSH
1316: FOR_IN
1317: IFFALSE 1657
// case GetBType ( i ) of b_lab , b_lab_half , b_lab_full :
1319: LD_VAR 0 6
1323: PPUSH
1324: CALL_OW 266
1328: PUSH
1329: LD_INT 6
1331: DOUBLE
1332: EQUAL
1333: IFTRUE 1349
1335: LD_INT 7
1337: DOUBLE
1338: EQUAL
1339: IFTRUE 1349
1341: LD_INT 8
1343: DOUBLE
1344: EQUAL
1345: IFTRUE 1349
1347: GO 1462
1349: POP
// pom1 = pom1 ^ [ [ GetBType ( i ) , GetX ( i ) , GetY ( i ) , GetDir ( i ) , GetBLevel ( i ) , GetNation ( i ) , GetLabKind ( i , 1 ) , GetLabKind ( i , 2 ) ] ] ; b_bunker , b_turret :
1350: LD_ADDR_VAR 0 4
1354: PUSH
1355: LD_VAR 0 4
1359: PUSH
1360: LD_VAR 0 6
1364: PPUSH
1365: CALL_OW 266
1369: PUSH
1370: LD_VAR 0 6
1374: PPUSH
1375: CALL_OW 250
1379: PUSH
1380: LD_VAR 0 6
1384: PPUSH
1385: CALL_OW 251
1389: PUSH
1390: LD_VAR 0 6
1394: PPUSH
1395: CALL_OW 254
1399: PUSH
1400: LD_VAR 0 6
1404: PPUSH
1405: CALL_OW 267
1409: PUSH
1410: LD_VAR 0 6
1414: PPUSH
1415: CALL_OW 248
1419: PUSH
1420: LD_VAR 0 6
1424: PPUSH
1425: LD_INT 1
1427: PPUSH
1428: CALL_OW 268
1432: PUSH
1433: LD_VAR 0 6
1437: PPUSH
1438: LD_INT 2
1440: PPUSH
1441: CALL_OW 268
1445: PUSH
1446: EMPTY
1447: LIST
1448: LIST
1449: LIST
1450: LIST
1451: LIST
1452: LIST
1453: LIST
1454: LIST
1455: PUSH
1456: EMPTY
1457: LIST
1458: ADD
1459: ST_TO_ADDR
1460: GO 1655
1462: LD_INT 32
1464: DOUBLE
1465: EQUAL
1466: IFTRUE 1476
1468: LD_INT 33
1470: DOUBLE
1471: EQUAL
1472: IFTRUE 1476
1474: GO 1572
1476: POP
// pom1 = pom1 ^ [ [ GetBType ( i ) , GetX ( i ) , GetY ( i ) , GetDir ( i ) , GetBLevel ( i ) , GetNation ( i ) , GetBWeapon ( i ) ] ] ; else
1477: LD_ADDR_VAR 0 4
1481: PUSH
1482: LD_VAR 0 4
1486: PUSH
1487: LD_VAR 0 6
1491: PPUSH
1492: CALL_OW 266
1496: PUSH
1497: LD_VAR 0 6
1501: PPUSH
1502: CALL_OW 250
1506: PUSH
1507: LD_VAR 0 6
1511: PPUSH
1512: CALL_OW 251
1516: PUSH
1517: LD_VAR 0 6
1521: PPUSH
1522: CALL_OW 254
1526: PUSH
1527: LD_VAR 0 6
1531: PPUSH
1532: CALL_OW 267
1536: PUSH
1537: LD_VAR 0 6
1541: PPUSH
1542: CALL_OW 248
1546: PUSH
1547: LD_VAR 0 6
1551: PPUSH
1552: CALL_OW 269
1556: PUSH
1557: EMPTY
1558: LIST
1559: LIST
1560: LIST
1561: LIST
1562: LIST
1563: LIST
1564: LIST
1565: PUSH
1566: EMPTY
1567: LIST
1568: ADD
1569: ST_TO_ADDR
1570: GO 1655
1572: POP
// pom1 = pom1 ^ [ [ GetBType ( i ) , GetX ( i ) , GetY ( i ) , GetDir ( i ) , GetBLevel ( i ) , GetNation ( i ) ] ] ; end ;
1573: LD_ADDR_VAR 0 4
1577: PUSH
1578: LD_VAR 0 4
1582: PUSH
1583: LD_VAR 0 6
1587: PPUSH
1588: CALL_OW 266
1592: PUSH
1593: LD_VAR 0 6
1597: PPUSH
1598: CALL_OW 250
1602: PUSH
1603: LD_VAR 0 6
1607: PPUSH
1608: CALL_OW 251
1612: PUSH
1613: LD_VAR 0 6
1617: PPUSH
1618: CALL_OW 254
1622: PUSH
1623: LD_VAR 0 6
1627: PPUSH
1628: CALL_OW 267
1632: PUSH
1633: LD_VAR 0 6
1637: PPUSH
1638: CALL_OW 248
1642: PUSH
1643: EMPTY
1644: LIST
1645: LIST
1646: LIST
1647: LIST
1648: LIST
1649: LIST
1650: PUSH
1651: EMPTY
1652: LIST
1653: ADD
1654: ST_TO_ADDR
1655: GO 1316
1657: POP
1658: POP
// SaveVariable ( pom1 , Epsilon ) ;
1659: LD_VAR 0 4
1663: PPUSH
1664: LD_STRING Epsilon
1666: PPUSH
1667: CALL_OW 39
// YouWin ;
1671: CALL_OW 103
// EnableExclamations ;
1675: CALL_OW 473
// exit ;
1679: GO 1681
// end ;
1681: LD_VAR 0 2
1685: RET
// function load_postav ; var ah ; begin
1686: LD_INT 0
1688: PPUSH
1689: PPUSH
// Cyrus = nacti_osobu ( Cyrus ) ;
1690: LD_ADDR_EXP 47
1694: PUSH
1695: LD_STRING Cyrus
1697: PPUSH
1698: CALL 2155 0 1
1702: ST_TO_ADDR
// Khattam = nacti_osobu ( Khatam ) ;
1703: LD_ADDR_EXP 45
1707: PUSH
1708: LD_STRING Khatam
1710: PPUSH
1711: CALL 2155 0 1
1715: ST_TO_ADDR
// Simms = NewCharacter ( Simms ) ;
1716: LD_ADDR_EXP 46
1720: PUSH
1721: LD_STRING Simms
1723: PPUSH
1724: CALL_OW 25
1728: ST_TO_ADDR
// Joan_F = nacti_osobu ( Joan ) ;
1729: LD_ADDR_EXP 43
1733: PUSH
1734: LD_STRING Joan
1736: PPUSH
1737: CALL 2155 0 1
1741: ST_TO_ADDR
// JMM := CreateCharacter ( JMM ) ;
1742: LD_ADDR_EXP 42
1746: PUSH
1747: LD_STRING JMM
1749: PPUSH
1750: CALL_OW 34
1754: ST_TO_ADDR
// Gary = nacti_osobu ( Gary ) ;
1755: LD_ADDR_EXP 44
1759: PUSH
1760: LD_STRING Gary
1762: PPUSH
1763: CALL 2155 0 1
1767: ST_TO_ADDR
// if Gary = 0 then
1768: LD_EXP 44
1772: PUSH
1773: LD_INT 0
1775: EQUAL
1776: IFFALSE 1814
// begin prepare_human ( sex_male , class_soldier , 5 , David Love ) ;
1778: LD_INT 1
1780: PPUSH
1781: LD_INT 1
1783: PPUSH
1784: LD_INT 5
1786: PPUSH
1787: LD_STRING David Love
1789: PPUSH
1790: CALL 2120 0 4
// ah = CreateHuman ;
1794: LD_ADDR_VAR 0 2
1798: PUSH
1799: CALL_OW 44
1803: ST_TO_ADDR
// Gary = ah ;
1804: LD_ADDR_EXP 44
1808: PUSH
1809: LD_VAR 0 2
1813: ST_TO_ADDR
// end ; Denis = nacti_osobu ( Denis ) ;
1814: LD_ADDR_EXP 48
1818: PUSH
1819: LD_STRING Denis
1821: PPUSH
1822: CALL 2155 0 1
1826: ST_TO_ADDR
// Cornel = nacti_osobu ( Cornell ) ;
1827: LD_ADDR_EXP 50
1831: PUSH
1832: LD_STRING Cornell
1834: PPUSH
1835: CALL 2155 0 1
1839: ST_TO_ADDR
// Powell = NewCharacter ( Powell ) ;
1840: LD_ADDR_EXP 49
1844: PUSH
1845: LD_STRING Powell
1847: PPUSH
1848: CALL_OW 25
1852: ST_TO_ADDR
// uc_side = Arabi ;
1853: LD_ADDR_OWVAR 20
1857: PUSH
1858: LD_EXP 1
1862: ST_TO_ADDR
// uc_nation = nation_arabian ;
1863: LD_ADDR_OWVAR 21
1867: PUSH
1868: LD_INT 2
1870: ST_TO_ADDR
// Dietrich = NewCharacter ( Dietrich ) ;
1871: LD_ADDR_EXP 27
1875: PUSH
1876: LD_STRING Dietrich
1878: PPUSH
1879: CALL_OW 25
1883: ST_TO_ADDR
// end ;
1884: LD_VAR 0 1
1888: RET
// export function GetConstants ; begin
1889: LD_INT 0
1891: PPUSH
// VIDEL_MIKHAILA := LoadVariable ( us2mikhail_state , 5 ) = 5 ;
1892: LD_ADDR_EXP 83
1896: PUSH
1897: LD_STRING us2mikhail_state
1899: PPUSH
1900: LD_INT 5
1902: PPUSH
1903: CALL_OW 30
1907: PUSH
1908: LD_INT 5
1910: EQUAL
1911: ST_TO_ADDR
// VI_O_GRANATECH := LoadVariable ( Stoupa9_informace , false ) ;
1912: LD_ADDR_EXP 84
1916: PUSH
1917: LD_STRING Stoupa9_informace
1919: PPUSH
1920: LD_INT 0
1922: PPUSH
1923: CALL_OW 30
1927: ST_TO_ADDR
// ZIJE_MIKHAIL := LoadVariable ( us2mikhail_state , 1 ) ;
1928: LD_ADDR_EXP 85
1932: PUSH
1933: LD_STRING us2mikhail_state
1935: PPUSH
1936: LD_INT 1
1938: PPUSH
1939: CALL_OW 30
1943: ST_TO_ADDR
// if ( ZIJE_MIKHAIL = 5 ) or ( ZIJE_MIKHAIL = 4 ) then
1944: LD_EXP 85
1948: PUSH
1949: LD_INT 5
1951: EQUAL
1952: PUSH
1953: LD_EXP 85
1957: PUSH
1958: LD_INT 4
1960: EQUAL
1961: OR
1962: IFFALSE 1974
// ZIJE_MIKHAIL = true else
1964: LD_ADDR_EXP 85
1968: PUSH
1969: LD_INT 1
1971: ST_TO_ADDR
1972: GO 2002
// begin ZIJE_MIKHAIL = false ;
1974: LD_ADDR_EXP 85
1978: PUSH
1979: LD_INT 0
1981: ST_TO_ADDR
// if IsLive ( Cornel ) then
1982: LD_EXP 50
1986: PPUSH
1987: CALL_OW 300
1991: IFFALSE 2002
// KillUnit ( Cornel ) ;
1993: LD_EXP 50
1997: PPUSH
1998: CALL_OW 66
// end ; if CheckCharacterSet ( other_survivors ) then
2002: LD_STRING other_survivors
2004: PPUSH
2005: CALL_OW 29
2009: IFFALSE 2026
// lidi_other_surv = CreateCharacterSet ( other_survivors ) else
2011: LD_ADDR_EXP 10
2015: PUSH
2016: LD_STRING other_survivors
2018: PPUSH
2019: CALL_OW 31
2023: ST_TO_ADDR
2024: GO 2033
// lidi_other_surv = [ ] ;
2026: LD_ADDR_EXP 10
2030: PUSH
2031: EMPTY
2032: ST_TO_ADDR
// if CheckCharacterSet ( otherWithJMM ) then
2033: LD_STRING otherWithJMM
2035: PPUSH
2036: CALL_OW 29
2040: IFFALSE 2057
// lidi_with_JMM = CreateCharacterSet ( otherWithJMM ) else
2042: LD_ADDR_EXP 11
2046: PUSH
2047: LD_STRING otherWithJMM
2049: PPUSH
2050: CALL_OW 31
2054: ST_TO_ADDR
2055: GO 2064
// lidi_with_JMM = [ ] ;
2057: LD_ADDR_EXP 11
2061: PUSH
2062: EMPTY
2063: ST_TO_ADDR
// if TestVariable ( Stoupa9_siberit ) then
2064: LD_STRING Stoupa9_siberit
2066: PPUSH
2067: CALL_OW 27
2071: IFFALSE 2091
// MNOZSTVI_SIBERITU = LoadVariable ( Stoupa9_siberit , 200 ) else
2073: LD_ADDR_EXP 86
2077: PUSH
2078: LD_STRING Stoupa9_siberit
2080: PPUSH
2081: LD_INT 200
2083: PPUSH
2084: CALL_OW 30
2088: ST_TO_ADDR
2089: GO 2099
// MNOZSTVI_SIBERITU = 200 ;
2091: LD_ADDR_EXP 86
2095: PUSH
2096: LD_INT 200
2098: ST_TO_ADDR
// CYRL := LoadVariable ( CyrusLoc , 6 ) ;
2099: LD_ADDR_EXP 24
2103: PUSH
2104: LD_STRING CyrusLoc
2106: PPUSH
2107: LD_INT 6
2109: PPUSH
2110: CALL_OW 30
2114: ST_TO_ADDR
// end ; end_of_file
2115: LD_VAR 0 1
2119: RET
// export CREATOVANI_RUSKEHO_KONVOJE_LIST ; export CREATE_RUSKY_ATTACK1_LIST ; export CREATE_VOJACI_LIST ; export CREATE_2_NEW_ATTACK_LIST ; export CREATE_3_NEW_ATTACK_LIST ; export CREATE_BAZOOKA_ATTACK_LIST ; export RUSKY_UTOK_0_LIST ; export RUSSIAN_AFTER_END_ATTACK_LIST1 ; export RUSSIAN_AFTER_END_ATTACK_LIST2 ; export RUSSIAN_AFTER_END_ATTACK_LIST_FINAL ; export MECHANICI_NAVIC ; export CYRL ; export Amici_na_zacatku ; var ah , av ; var zo ; var pom ; var Missing ; var odebrano ; var osur ; export lidi_other ; export function prepare_human ( sex , clas , level , name ) ; begin
2120: LD_INT 0
2122: PPUSH
// PrepareHuman ( sex , clas , level ) ;
2123: LD_VAR 0 1
2127: PPUSH
2128: LD_VAR 0 2
2132: PPUSH
2133: LD_VAR 0 3
2137: PPUSH
2138: CALL_OW 380
// hc_name :=  ;
2142: LD_ADDR_OWVAR 26
2146: PUSH
2147: LD_STRING 
2149: ST_TO_ADDR
// end ;
2150: LD_VAR 0 5
2154: RET
// export function nacti_osobu ( ident ) ; begin
2155: LD_INT 0
2157: PPUSH
// if CheckCharacterSet ( ident ) then
2158: LD_VAR 0 1
2162: PPUSH
2163: CALL_OW 29
2167: IFFALSE 2186
// result := CreateCharacter ( ident ) else
2169: LD_ADDR_VAR 0 2
2173: PUSH
2174: LD_VAR 0 1
2178: PPUSH
2179: CALL_OW 34
2183: ST_TO_ADDR
2184: GO 2194
// result := 0 ;
2186: LD_ADDR_VAR 0 2
2190: PUSH
2191: LD_INT 0
2193: ST_TO_ADDR
// end ;
2194: LD_VAR 0 2
2198: RET
// export function create_arabi ; begin
2199: LD_INT 0
2201: PPUSH
// InitUc ;
2202: CALL_OW 18
// InitHc ;
2206: CALL_OW 19
// InitVc ;
2210: CALL_OW 20
// uc_side := Arabi ;
2214: LD_ADDR_OWVAR 20
2218: PUSH
2219: LD_EXP 1
2223: ST_TO_ADDR
// uc_nation := nation_arabian ;
2224: LD_ADDR_OWVAR 21
2228: PUSH
2229: LD_INT 2
2231: ST_TO_ADDR
// uc_direction := 4 ;
2232: LD_ADDR_OWVAR 24
2236: PUSH
2237: LD_INT 4
2239: ST_TO_ADDR
// PlaceUnitXY ( Dietrich , 78 , 23 , false ) ;
2240: LD_EXP 27
2244: PPUSH
2245: LD_INT 78
2247: PPUSH
2248: LD_INT 23
2250: PPUSH
2251: LD_INT 0
2253: PPUSH
2254: CALL_OW 48
// prepare_human ( sex_female , class_scientistic , 6 , Lucie Sebel ) ;
2258: LD_INT 2
2260: PPUSH
2261: LD_INT 4
2263: PPUSH
2264: LD_INT 6
2266: PPUSH
2267: LD_STRING Lucie Sebel
2269: PPUSH
2270: CALL 2120 0 4
// hc_skills = [ 2 , 3 , 1 , 5 ] ;
2274: LD_ADDR_OWVAR 31
2278: PUSH
2279: LD_INT 2
2281: PUSH
2282: LD_INT 3
2284: PUSH
2285: LD_INT 1
2287: PUSH
2288: LD_INT 5
2290: PUSH
2291: EMPTY
2292: LIST
2293: LIST
2294: LIST
2295: LIST
2296: ST_TO_ADDR
// ah = CreateHuman ;
2297: LD_ADDR_LOC 5
2301: PUSH
2302: CALL_OW 44
2306: ST_TO_ADDR
// LS = ah ;
2307: LD_ADDR_EXP 28
2311: PUSH
2312: LD_LOC 5
2316: ST_TO_ADDR
// PlaceUnitXY ( LS , 76 , 20 , false ) ;
2317: LD_EXP 28
2321: PPUSH
2322: LD_INT 76
2324: PPUSH
2325: LD_INT 20
2327: PPUSH
2328: LD_INT 0
2330: PPUSH
2331: CALL_OW 48
// prepare_human ( sex_male , class_engineer , 5 , Majdat Halabi ) ;
2335: LD_INT 1
2337: PPUSH
2338: LD_INT 2
2340: PPUSH
2341: LD_INT 5
2343: PPUSH
2344: LD_STRING Majdat Halabi
2346: PPUSH
2347: CALL 2120 0 4
// hc_skills = [ 4 , 3 , 1 , 4 ] ;
2351: LD_ADDR_OWVAR 31
2355: PUSH
2356: LD_INT 4
2358: PUSH
2359: LD_INT 3
2361: PUSH
2362: LD_INT 1
2364: PUSH
2365: LD_INT 4
2367: PUSH
2368: EMPTY
2369: LIST
2370: LIST
2371: LIST
2372: LIST
2373: ST_TO_ADDR
// ah = CreateHuman ;
2374: LD_ADDR_LOC 5
2378: PUSH
2379: CALL_OW 44
2383: ST_TO_ADDR
// PlaceUnitXY ( ah , 77 , 20 , false ) ;
2384: LD_LOC 5
2388: PPUSH
2389: LD_INT 77
2391: PPUSH
2392: LD_INT 20
2394: PPUSH
2395: LD_INT 0
2397: PPUSH
2398: CALL_OW 48
// prepare_human ( sex_male , class_engineer , 5 , Bassam Hamshu ) ;
2402: LD_INT 1
2404: PPUSH
2405: LD_INT 2
2407: PPUSH
2408: LD_INT 5
2410: PPUSH
2411: LD_STRING Bassam Hamshu
2413: PPUSH
2414: CALL 2120 0 4
// hc_skills = [ 4 , 3 , 0 , 4 ] ;
2418: LD_ADDR_OWVAR 31
2422: PUSH
2423: LD_INT 4
2425: PUSH
2426: LD_INT 3
2428: PUSH
2429: LD_INT 0
2431: PUSH
2432: LD_INT 4
2434: PUSH
2435: EMPTY
2436: LIST
2437: LIST
2438: LIST
2439: LIST
2440: ST_TO_ADDR
// ah = CreateHuman ;
2441: LD_ADDR_LOC 5
2445: PUSH
2446: CALL_OW 44
2450: ST_TO_ADDR
// PlaceUnitXY ( ah , 75 , 21 , false ) ;
2451: LD_LOC 5
2455: PPUSH
2456: LD_INT 75
2458: PPUSH
2459: LD_INT 21
2461: PPUSH
2462: LD_INT 0
2464: PPUSH
2465: CALL_OW 48
// prepare_human ( sex_male , class_engineer , 4 ,  ) ;
2469: LD_INT 1
2471: PPUSH
2472: LD_INT 2
2474: PPUSH
2475: LD_INT 4
2477: PPUSH
2478: LD_STRING 
2480: PPUSH
2481: CALL 2120 0 4
// hc_skills = [ 3 , 2 , 2 , 1 ] ;
2485: LD_ADDR_OWVAR 31
2489: PUSH
2490: LD_INT 3
2492: PUSH
2493: LD_INT 2
2495: PUSH
2496: LD_INT 2
2498: PUSH
2499: LD_INT 1
2501: PUSH
2502: EMPTY
2503: LIST
2504: LIST
2505: LIST
2506: LIST
2507: ST_TO_ADDR
// ah = CreateHuman ;
2508: LD_ADDR_LOC 5
2512: PUSH
2513: CALL_OW 44
2517: ST_TO_ADDR
// PlaceUnitXY ( ah , 67 , 19 , false ) ;
2518: LD_LOC 5
2522: PPUSH
2523: LD_INT 67
2525: PPUSH
2526: LD_INT 19
2528: PPUSH
2529: LD_INT 0
2531: PPUSH
2532: CALL_OW 48
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] ,  ) ;
2536: LD_INT 1
2538: PPUSH
2539: LD_INT 1
2541: PPUSH
2542: LD_EXP 61
2546: PUSH
2547: LD_OWVAR 67
2551: ARRAY
2552: PPUSH
2553: LD_STRING 
2555: PPUSH
2556: CALL 2120 0 4
// tapkal = CreateHuman ;
2560: LD_ADDR_EXP 29
2564: PUSH
2565: CALL_OW 44
2569: ST_TO_ADDR
// PlaceUnitXYR ( tapkal , 73 , 20 , 5 , false ) ;
2570: LD_EXP 29
2574: PPUSH
2575: LD_INT 73
2577: PPUSH
2578: LD_INT 20
2580: PPUSH
2581: LD_INT 5
2583: PPUSH
2584: LD_INT 0
2586: PPUSH
2587: CALL_OW 50
// end ;
2591: LD_VAR 0 1
2595: RET
// export function create_am_vedci ; var vojaci ; var i ; var lidi_na_vyber_1 ; var lidi_na_vyber_2 ; begin
2596: LD_INT 0
2598: PPUSH
2599: PPUSH
2600: PPUSH
2601: PPUSH
2602: PPUSH
// Missing := 0 ;
2603: LD_ADDR_LOC 9
2607: PUSH
2608: LD_INT 0
2610: ST_TO_ADDR
// uc_side := You2 ;
2611: LD_ADDR_OWVAR 20
2615: PUSH
2616: LD_EXP 6
2620: ST_TO_ADDR
// uc_nation := nation_american ;
2621: LD_ADDR_OWVAR 21
2625: PUSH
2626: LD_INT 1
2628: ST_TO_ADDR
// uc_direction := 4 ;
2629: LD_ADDR_OWVAR 24
2633: PUSH
2634: LD_INT 4
2636: ST_TO_ADDR
// Amici_na_zacatku = [ ] ;
2637: LD_ADDR_EXP 25
2641: PUSH
2642: EMPTY
2643: ST_TO_ADDR
// if Cyrus = 0 or CYRL <> 6 then
2644: LD_EXP 47
2648: PUSH
2649: LD_INT 0
2651: EQUAL
2652: PUSH
2653: LD_EXP 24
2657: PUSH
2658: LD_INT 6
2660: NONEQUAL
2661: OR
2662: IFFALSE 2680
// Missing := Missing + 10 else
2664: LD_ADDR_LOC 9
2668: PUSH
2669: LD_LOC 9
2673: PUSH
2674: LD_INT 10
2676: PLUS
2677: ST_TO_ADDR
2678: GO 2737
// begin PlaceUnitArea ( Cyrus , EAmici , false ) ;
2680: LD_EXP 47
2684: PPUSH
2685: LD_INT 43
2687: PPUSH
2688: LD_INT 0
2690: PPUSH
2691: CALL_OW 49
// SetClass ( Cyrus , class_soldier ) ;
2695: LD_EXP 47
2699: PPUSH
2700: LD_INT 1
2702: PPUSH
2703: CALL_OW 336
// SetSide ( Cyrus , You2 ) ;
2707: LD_EXP 47
2711: PPUSH
2712: LD_EXP 6
2716: PPUSH
2717: CALL_OW 235
// Amici_na_zacatku = Amici_na_zacatku ^ Cyrus ;
2721: LD_ADDR_EXP 25
2725: PUSH
2726: LD_EXP 25
2730: PUSH
2731: LD_EXP 47
2735: ADD
2736: ST_TO_ADDR
// end ; if Khattam = 0 then
2737: LD_EXP 45
2741: PUSH
2742: LD_INT 0
2744: EQUAL
2745: IFFALSE 2763
// Missing := Missing + 10 else
2747: LD_ADDR_LOC 9
2751: PUSH
2752: LD_LOC 9
2756: PUSH
2757: LD_INT 10
2759: PLUS
2760: ST_TO_ADDR
2761: GO 2820
// begin PlaceUnitArea ( Khattam , EAmici , false ) ;
2763: LD_EXP 45
2767: PPUSH
2768: LD_INT 43
2770: PPUSH
2771: LD_INT 0
2773: PPUSH
2774: CALL_OW 49
// SetClass ( Khattam , class_soldier ) ;
2778: LD_EXP 45
2782: PPUSH
2783: LD_INT 1
2785: PPUSH
2786: CALL_OW 336
// SetSide ( Khattam , You2 ) ;
2790: LD_EXP 45
2794: PPUSH
2795: LD_EXP 6
2799: PPUSH
2800: CALL_OW 235
// Amici_na_zacatku = Amici_na_zacatku ^ Khattam ;
2804: LD_ADDR_EXP 25
2808: PUSH
2809: LD_EXP 25
2813: PUSH
2814: LD_EXP 45
2818: ADD
2819: ST_TO_ADDR
// end ; PlaceUnitArea ( Simms , EAmici , false ) ;
2820: LD_EXP 46
2824: PPUSH
2825: LD_INT 43
2827: PPUSH
2828: LD_INT 0
2830: PPUSH
2831: CALL_OW 49
// SetSide ( Simms , You2 ) ;
2835: LD_EXP 46
2839: PPUSH
2840: LD_EXP 6
2844: PPUSH
2845: CALL_OW 235
// Amici_na_zacatku = Amici_na_zacatku ^ Simms ;
2849: LD_ADDR_EXP 25
2853: PUSH
2854: LD_EXP 25
2858: PUSH
2859: LD_EXP 46
2863: ADD
2864: ST_TO_ADDR
// if Joan_F = 0 then
2865: LD_EXP 43
2869: PUSH
2870: LD_INT 0
2872: EQUAL
2873: IFFALSE 2891
// Missing := Missing + 1 else
2875: LD_ADDR_LOC 9
2879: PUSH
2880: LD_LOC 9
2884: PUSH
2885: LD_INT 1
2887: PLUS
2888: ST_TO_ADDR
2889: GO 2948
// begin PlaceUnitArea ( Joan_F , EAmici , false ) ;
2891: LD_EXP 43
2895: PPUSH
2896: LD_INT 43
2898: PPUSH
2899: LD_INT 0
2901: PPUSH
2902: CALL_OW 49
// SetClass ( Joan_F , class_scientistic ) ;
2906: LD_EXP 43
2910: PPUSH
2911: LD_INT 4
2913: PPUSH
2914: CALL_OW 336
// SetSide ( Joan_F , You2 ) ;
2918: LD_EXP 43
2922: PPUSH
2923: LD_EXP 6
2927: PPUSH
2928: CALL_OW 235
// Amici_na_zacatku = Amici_na_zacatku ^ Joan_F ;
2932: LD_ADDR_EXP 25
2936: PUSH
2937: LD_EXP 25
2941: PUSH
2942: LD_EXP 43
2946: ADD
2947: ST_TO_ADDR
// end ; if Denis = 0 then
2948: LD_EXP 48
2952: PUSH
2953: LD_INT 0
2955: EQUAL
2956: IFFALSE 2974
// Missing = Missing + 1 else
2958: LD_ADDR_LOC 9
2962: PUSH
2963: LD_LOC 9
2967: PUSH
2968: LD_INT 1
2970: PLUS
2971: ST_TO_ADDR
2972: GO 3031
// begin SetClass ( Denis , class_scientistic ) ;
2974: LD_EXP 48
2978: PPUSH
2979: LD_INT 4
2981: PPUSH
2982: CALL_OW 336
// SetSide ( Denis , You2 ) ;
2986: LD_EXP 48
2990: PPUSH
2991: LD_EXP 6
2995: PPUSH
2996: CALL_OW 235
// PlaceUnitArea ( Denis , EAmici , false ) ;
3000: LD_EXP 48
3004: PPUSH
3005: LD_INT 43
3007: PPUSH
3008: LD_INT 0
3010: PPUSH
3011: CALL_OW 49
// Amici_na_zacatku = Amici_na_zacatku ^ Denis ;
3015: LD_ADDR_EXP 25
3019: PUSH
3020: LD_EXP 25
3024: PUSH
3025: LD_EXP 48
3029: ADD
3030: ST_TO_ADDR
// end ; vojaci = [ ] ;
3031: LD_ADDR_VAR 0 2
3035: PUSH
3036: EMPTY
3037: ST_TO_ADDR
// for i in lidi_with_JMM do
3038: LD_ADDR_VAR 0 3
3042: PUSH
3043: LD_EXP 11
3047: PUSH
3048: FOR_IN
3049: IFFALSE 3087
// if GetSkill ( i , skill_combat ) >= 4 then
3051: LD_VAR 0 3
3055: PPUSH
3056: LD_INT 1
3058: PPUSH
3059: CALL_OW 259
3063: PUSH
3064: LD_INT 4
3066: GREATEREQUAL
3067: IFFALSE 3085
// vojaci = vojaci ^ i ;
3069: LD_ADDR_VAR 0 2
3073: PUSH
3074: LD_VAR 0 2
3078: PUSH
3079: LD_VAR 0 3
3083: ADD
3084: ST_TO_ADDR
3085: GO 3048
3087: POP
3088: POP
// if vojaci < 2 then
3089: LD_VAR 0 2
3093: PUSH
3094: LD_INT 2
3096: LESS
3097: IFFALSE 3150
// for i in lidi_other_surv do
3099: LD_ADDR_VAR 0 3
3103: PUSH
3104: LD_EXP 10
3108: PUSH
3109: FOR_IN
3110: IFFALSE 3148
// if GetSkill ( i , skill_combat ) >= 4 then
3112: LD_VAR 0 3
3116: PPUSH
3117: LD_INT 1
3119: PPUSH
3120: CALL_OW 259
3124: PUSH
3125: LD_INT 4
3127: GREATEREQUAL
3128: IFFALSE 3146
// vojaci = vojaci ^ i ;
3130: LD_ADDR_VAR 0 2
3134: PUSH
3135: LD_VAR 0 2
3139: PUSH
3140: LD_VAR 0 3
3144: ADD
3145: ST_TO_ADDR
3146: GO 3109
3148: POP
3149: POP
// odebrano = [ ] ;
3150: LD_ADDR_LOC 10
3154: PUSH
3155: EMPTY
3156: ST_TO_ADDR
// while Missing >= 10 do
3157: LD_LOC 9
3161: PUSH
3162: LD_INT 10
3164: GREATEREQUAL
3165: IFFALSE 3308
// begin if vojaci = 0 then
3167: LD_VAR 0 2
3171: PUSH
3172: LD_INT 0
3174: EQUAL
3175: IFFALSE 3205
// begin prepare_human ( sex_male , class_soldier , 5 ,  ) ;
3177: LD_INT 1
3179: PPUSH
3180: LD_INT 1
3182: PPUSH
3183: LD_INT 5
3185: PPUSH
3186: LD_STRING 
3188: PPUSH
3189: CALL 2120 0 4
// ah = CreateHuman ;
3193: LD_ADDR_LOC 5
3197: PUSH
3198: CALL_OW 44
3202: ST_TO_ADDR
// end else
3203: GO 3277
// begin ah = vojaci [ 1 ] ;
3205: LD_ADDR_LOC 5
3209: PUSH
3210: LD_VAR 0 2
3214: PUSH
3215: LD_INT 1
3217: ARRAY
3218: ST_TO_ADDR
// vojaci = vojaci diff ah ;
3219: LD_ADDR_VAR 0 2
3223: PUSH
3224: LD_VAR 0 2
3228: PUSH
3229: LD_LOC 5
3233: DIFF
3234: ST_TO_ADDR
// odebrano = odebrano ^ ah ;
3235: LD_ADDR_LOC 10
3239: PUSH
3240: LD_LOC 10
3244: PUSH
3245: LD_LOC 5
3249: ADD
3250: ST_TO_ADDR
// SetClass ( ah , class_soldier ) ;
3251: LD_LOC 5
3255: PPUSH
3256: LD_INT 1
3258: PPUSH
3259: CALL_OW 336
// SetSide ( ah , You2 ) ;
3263: LD_LOC 5
3267: PPUSH
3268: LD_EXP 6
3272: PPUSH
3273: CALL_OW 235
// end ; PlaceUnitArea ( ah , EAmici , false ) ;
3277: LD_LOC 5
3281: PPUSH
3282: LD_INT 43
3284: PPUSH
3285: LD_INT 0
3287: PPUSH
3288: CALL_OW 49
// Missing := Missing - 10 ;
3292: LD_ADDR_LOC 9
3296: PUSH
3297: LD_LOC 9
3301: PUSH
3302: LD_INT 10
3304: MINUS
3305: ST_TO_ADDR
// end ;
3306: GO 3157
// Amici_na_zacatku = Amici_na_zacatku ^ odebrano ;
3308: LD_ADDR_EXP 25
3312: PUSH
3313: LD_EXP 25
3317: PUSH
3318: LD_LOC 10
3322: ADD
3323: ST_TO_ADDR
// lidi_na_vyber_1 = lidi_with_JMM diff odebrano ;
3324: LD_ADDR_VAR 0 4
3328: PUSH
3329: LD_EXP 11
3333: PUSH
3334: LD_LOC 10
3338: DIFF
3339: ST_TO_ADDR
// lidi_na_vyber_2 = lidi_other_surv diff odebrano ;
3340: LD_ADDR_VAR 0 5
3344: PUSH
3345: LD_EXP 10
3349: PUSH
3350: LD_LOC 10
3354: DIFF
3355: ST_TO_ADDR
// vojaci = [ ] ;
3356: LD_ADDR_VAR 0 2
3360: PUSH
3361: EMPTY
3362: ST_TO_ADDR
// for i in lidi_na_vyber_1 do
3363: LD_ADDR_VAR 0 3
3367: PUSH
3368: LD_VAR 0 4
3372: PUSH
3373: FOR_IN
3374: IFFALSE 3412
// if GetSkill ( i , skill_scientistic ) >= 4 then
3376: LD_VAR 0 3
3380: PPUSH
3381: LD_INT 4
3383: PPUSH
3384: CALL_OW 259
3388: PUSH
3389: LD_INT 4
3391: GREATEREQUAL
3392: IFFALSE 3410
// vojaci = vojaci ^ i ;
3394: LD_ADDR_VAR 0 2
3398: PUSH
3399: LD_VAR 0 2
3403: PUSH
3404: LD_VAR 0 3
3408: ADD
3409: ST_TO_ADDR
3410: GO 3373
3412: POP
3413: POP
// if vojaci = 0 then
3414: LD_VAR 0 2
3418: PUSH
3419: LD_INT 0
3421: EQUAL
3422: IFFALSE 3475
// for i in lidi_na_vyber_2 do
3424: LD_ADDR_VAR 0 3
3428: PUSH
3429: LD_VAR 0 5
3433: PUSH
3434: FOR_IN
3435: IFFALSE 3473
// if GetSkill ( i , skill_scientistic ) >= 4 then
3437: LD_VAR 0 3
3441: PPUSH
3442: LD_INT 4
3444: PPUSH
3445: CALL_OW 259
3449: PUSH
3450: LD_INT 4
3452: GREATEREQUAL
3453: IFFALSE 3471
// vojaci = vojaci ^ i ;
3455: LD_ADDR_VAR 0 2
3459: PUSH
3460: LD_VAR 0 2
3464: PUSH
3465: LD_VAR 0 3
3469: ADD
3470: ST_TO_ADDR
3471: GO 3434
3473: POP
3474: POP
// while Missing >= 1 do
3475: LD_LOC 9
3479: PUSH
3480: LD_INT 1
3482: GREATEREQUAL
3483: IFFALSE 3626
// begin if vojaci = 0 then
3485: LD_VAR 0 2
3489: PUSH
3490: LD_INT 0
3492: EQUAL
3493: IFFALSE 3523
// begin prepare_human ( sex_male , class_scientistic , 5 ,  ) ;
3495: LD_INT 1
3497: PPUSH
3498: LD_INT 4
3500: PPUSH
3501: LD_INT 5
3503: PPUSH
3504: LD_STRING 
3506: PPUSH
3507: CALL 2120 0 4
// ah = CreateHuman ;
3511: LD_ADDR_LOC 5
3515: PUSH
3516: CALL_OW 44
3520: ST_TO_ADDR
// end else
3521: GO 3595
// begin ah = vojaci [ 1 ] ;
3523: LD_ADDR_LOC 5
3527: PUSH
3528: LD_VAR 0 2
3532: PUSH
3533: LD_INT 1
3535: ARRAY
3536: ST_TO_ADDR
// vojaci = vojaci diff ah ;
3537: LD_ADDR_VAR 0 2
3541: PUSH
3542: LD_VAR 0 2
3546: PUSH
3547: LD_LOC 5
3551: DIFF
3552: ST_TO_ADDR
// odebrano = odebrano ^ ah ;
3553: LD_ADDR_LOC 10
3557: PUSH
3558: LD_LOC 10
3562: PUSH
3563: LD_LOC 5
3567: ADD
3568: ST_TO_ADDR
// SetClass ( ah , class_scientistic ) ;
3569: LD_LOC 5
3573: PPUSH
3574: LD_INT 4
3576: PPUSH
3577: CALL_OW 336
// SetSide ( ah , You2 ) ;
3581: LD_LOC 5
3585: PPUSH
3586: LD_EXP 6
3590: PPUSH
3591: CALL_OW 235
// end ; PlaceUnitArea ( ah , EAmici , false ) ;
3595: LD_LOC 5
3599: PPUSH
3600: LD_INT 43
3602: PPUSH
3603: LD_INT 0
3605: PPUSH
3606: CALL_OW 49
// Missing := Missing - 1 ;
3610: LD_ADDR_LOC 9
3614: PUSH
3615: LD_LOC 9
3619: PUSH
3620: LD_INT 1
3622: MINUS
3623: ST_TO_ADDR
// end ;
3624: GO 3475
// Amici_na_zacatku = Amici_na_zacatku ^ odebrano ;
3626: LD_ADDR_EXP 25
3630: PUSH
3631: LD_EXP 25
3635: PUSH
3636: LD_LOC 10
3640: ADD
3641: ST_TO_ADDR
// Amici_ar = Amici_na_zacatku ;
3642: LD_ADDR_EXP 34
3646: PUSH
3647: LD_EXP 25
3651: ST_TO_ADDR
// RevealFogArea ( Arabi , RFA1 ) ;
3652: LD_EXP 1
3656: PPUSH
3657: LD_INT 25
3659: PPUSH
3660: CALL_OW 332
// end ;
3664: LD_VAR 0 1
3668: RET
// export function create_amici1 ; var lidi_vyber ; var i ; begin
3669: LD_INT 0
3671: PPUSH
3672: PPUSH
3673: PPUSH
// uc_side := You ;
3674: LD_ADDR_OWVAR 20
3678: PUSH
3679: LD_EXP 3
3683: ST_TO_ADDR
// uc_nation := nation_american ;
3684: LD_ADDR_OWVAR 21
3688: PUSH
3689: LD_INT 1
3691: ST_TO_ADDR
// uc_direction := 1 ;
3692: LD_ADDR_OWVAR 24
3696: PUSH
3697: LD_INT 1
3699: ST_TO_ADDR
// vc_chassis := us_medium_tracked ;
3700: LD_ADDR_OWVAR 37
3704: PUSH
3705: LD_INT 3
3707: ST_TO_ADDR
// vc_control := control_manual ;
3708: LD_ADDR_OWVAR 38
3712: PUSH
3713: LD_INT 1
3715: ST_TO_ADDR
// vc_engine := engine_combustion ;
3716: LD_ADDR_OWVAR 39
3720: PUSH
3721: LD_INT 1
3723: ST_TO_ADDR
// vc_weapon := us_cargo_bay ;
3724: LD_ADDR_OWVAR 40
3728: PUSH
3729: LD_INT 12
3731: ST_TO_ADDR
// av = CreateVehicle ;
3732: LD_ADDR_LOC 6
3736: PUSH
3737: CALL_OW 45
3741: ST_TO_ADDR
// SetClass ( JMM , class_soldier ) ;
3742: LD_EXP 42
3746: PPUSH
3747: LD_INT 1
3749: PPUSH
3750: CALL_OW 336
// SetSide ( JMM , You ) ;
3754: LD_EXP 42
3758: PPUSH
3759: LD_EXP 3
3763: PPUSH
3764: CALL_OW 235
// PlaceHumanInUnit ( JMM , av ) ;
3768: LD_EXP 42
3772: PPUSH
3773: LD_LOC 6
3777: PPUSH
3778: CALL_OW 52
// PlaceUnitArea ( av , EnterAM , false ) ;
3782: LD_LOC 6
3786: PPUSH
3787: LD_INT 3
3789: PPUSH
3790: LD_INT 0
3792: PPUSH
3793: CALL_OW 49
// AddCargo ( av , mat_oil , 20 ) ;
3797: LD_LOC 6
3801: PPUSH
3802: LD_INT 2
3804: PPUSH
3805: LD_INT 20
3807: PPUSH
3808: CALL_OW 291
// AddCargo ( av , mat_cans , 80 ) ;
3812: LD_LOC 6
3816: PPUSH
3817: LD_INT 1
3819: PPUSH
3820: LD_INT 80
3822: PPUSH
3823: CALL_OW 291
// Amici_na_zacatku = Amici_na_zacatku ^ JMM ;
3827: LD_ADDR_EXP 25
3831: PUSH
3832: LD_EXP 25
3836: PUSH
3837: LD_EXP 42
3841: ADD
3842: ST_TO_ADDR
// av = CreateVehicle ;
3843: LD_ADDR_LOC 6
3847: PUSH
3848: CALL_OW 45
3852: ST_TO_ADDR
// SetClass ( Gary , class_soldier ) ;
3853: LD_EXP 44
3857: PPUSH
3858: LD_INT 1
3860: PPUSH
3861: CALL_OW 336
// SetSide ( Gary , You ) ;
3865: LD_EXP 44
3869: PPUSH
3870: LD_EXP 3
3874: PPUSH
3875: CALL_OW 235
// PlaceHumanInUnit ( Gary , av ) ;
3879: LD_EXP 44
3883: PPUSH
3884: LD_LOC 6
3888: PPUSH
3889: CALL_OW 52
// PlaceUnitArea ( av , EnterAM , false ) ;
3893: LD_LOC 6
3897: PPUSH
3898: LD_INT 3
3900: PPUSH
3901: LD_INT 0
3903: PPUSH
3904: CALL_OW 49
// AddCargo ( av , mat_oil , 10 ) ;
3908: LD_LOC 6
3912: PPUSH
3913: LD_INT 2
3915: PPUSH
3916: LD_INT 10
3918: PPUSH
3919: CALL_OW 291
// AddCargo ( av , mat_cans , 90 ) ;
3923: LD_LOC 6
3927: PPUSH
3928: LD_INT 1
3930: PPUSH
3931: LD_INT 90
3933: PPUSH
3934: CALL_OW 291
// lidi_vyber = [ ] ;
3938: LD_ADDR_VAR 0 2
3942: PUSH
3943: EMPTY
3944: ST_TO_ADDR
// for i in lidi_with_JMM diff Amici_na_zacatku do
3945: LD_ADDR_VAR 0 3
3949: PUSH
3950: LD_EXP 11
3954: PUSH
3955: LD_EXP 25
3959: DIFF
3960: PUSH
3961: FOR_IN
3962: IFFALSE 4000
// if GetSkill ( i , skill_engineering ) > 3 then
3964: LD_VAR 0 3
3968: PPUSH
3969: LD_INT 2
3971: PPUSH
3972: CALL_OW 259
3976: PUSH
3977: LD_INT 3
3979: GREATER
3980: IFFALSE 3998
// lidi_vyber = lidi_vyber ^ i ;
3982: LD_ADDR_VAR 0 2
3986: PUSH
3987: LD_VAR 0 2
3991: PUSH
3992: LD_VAR 0 3
3996: ADD
3997: ST_TO_ADDR
3998: GO 3961
4000: POP
4001: POP
// if lidi_vyber = 0 then
4002: LD_VAR 0 2
4006: PUSH
4007: LD_INT 0
4009: EQUAL
4010: IFFALSE 4069
// for i in lidi_other_surv diff Amici_na_zacatku do
4012: LD_ADDR_VAR 0 3
4016: PUSH
4017: LD_EXP 10
4021: PUSH
4022: LD_EXP 25
4026: DIFF
4027: PUSH
4028: FOR_IN
4029: IFFALSE 4067
// if GetSkill ( i , skill_engineering ) > 3 then
4031: LD_VAR 0 3
4035: PPUSH
4036: LD_INT 2
4038: PPUSH
4039: CALL_OW 259
4043: PUSH
4044: LD_INT 3
4046: GREATER
4047: IFFALSE 4065
// lidi_vyber = lidi_vyber ^ i ;
4049: LD_ADDR_VAR 0 2
4053: PUSH
4054: LD_VAR 0 2
4058: PUSH
4059: LD_VAR 0 3
4063: ADD
4064: ST_TO_ADDR
4065: GO 4028
4067: POP
4068: POP
// if lidi_vyber = 0 then
4069: LD_VAR 0 2
4073: PUSH
4074: LD_INT 0
4076: EQUAL
4077: IFFALSE 4107
// begin prepare_human ( sex_male , class_engineer , 5 , Johny Muscle ) ;
4079: LD_INT 1
4081: PPUSH
4082: LD_INT 2
4084: PPUSH
4085: LD_INT 5
4087: PPUSH
4088: LD_STRING Johny Muscle
4090: PPUSH
4091: CALL 2120 0 4
// pom = CreateHuman ;
4095: LD_ADDR_LOC 8
4099: PUSH
4100: CALL_OW 44
4104: ST_TO_ADDR
// end else
4105: GO 4175
// begin ah = lidi_vyber [ 1 ] ;
4107: LD_ADDR_LOC 5
4111: PUSH
4112: LD_VAR 0 2
4116: PUSH
4117: LD_INT 1
4119: ARRAY
4120: ST_TO_ADDR
// lidi_vyber = lidi_vyber diff ah ;
4121: LD_ADDR_VAR 0 2
4125: PUSH
4126: LD_VAR 0 2
4130: PUSH
4131: LD_LOC 5
4135: DIFF
4136: ST_TO_ADDR
// odebrano = odebrano ^ ah ;
4137: LD_ADDR_LOC 10
4141: PUSH
4142: LD_LOC 10
4146: PUSH
4147: LD_LOC 5
4151: ADD
4152: ST_TO_ADDR
// SetClass ( ah , class_engineer ) ;
4153: LD_LOC 5
4157: PPUSH
4158: LD_INT 2
4160: PPUSH
4161: CALL_OW 336
// pom = ah ;
4165: LD_ADDR_LOC 8
4169: PUSH
4170: LD_LOC 5
4174: ST_TO_ADDR
// end ; av = CreateVehicle ;
4175: LD_ADDR_LOC 6
4179: PUSH
4180: CALL_OW 45
4184: ST_TO_ADDR
// PlaceHumanInUnit ( pom , av ) ;
4185: LD_LOC 8
4189: PPUSH
4190: LD_LOC 6
4194: PPUSH
4195: CALL_OW 52
// Amici_na_zacatku = Amici_na_zacatku ^ pom ;
4199: LD_ADDR_EXP 25
4203: PUSH
4204: LD_EXP 25
4208: PUSH
4209: LD_LOC 8
4213: ADD
4214: ST_TO_ADDR
// PlaceUnitArea ( av , EnterAM , false ) ;
4215: LD_LOC 6
4219: PPUSH
4220: LD_INT 3
4222: PPUSH
4223: LD_INT 0
4225: PPUSH
4226: CALL_OW 49
// if MNOZSTVI_SIBERITU >= 200 then
4230: LD_EXP 86
4234: PUSH
4235: LD_INT 200
4237: GREATEREQUAL
4238: IFFALSE 4257
// AddCargo ( av , mat_siberit , 100 ) else
4240: LD_LOC 6
4244: PPUSH
4245: LD_INT 3
4247: PPUSH
4248: LD_INT 100
4250: PPUSH
4251: CALL_OW 291
4255: GO 4305
// if MNOZSTVI_SIBERITU <= 100 then
4257: LD_EXP 86
4261: PUSH
4262: LD_INT 100
4264: LESSEQUAL
4265: IFFALSE 4284
// AddCargo ( av , mat_cans , 30 ) else
4267: LD_LOC 6
4271: PPUSH
4272: LD_INT 1
4274: PPUSH
4275: LD_INT 30
4277: PPUSH
4278: CALL_OW 291
4282: GO 4305
// AddCargo ( av , mat_siberit , MNOZSTVI_SIBERITU - 100 ) ;
4284: LD_LOC 6
4288: PPUSH
4289: LD_INT 3
4291: PPUSH
4292: LD_EXP 86
4296: PUSH
4297: LD_INT 100
4299: MINUS
4300: PPUSH
4301: CALL_OW 291
// lidi_vyber = [ ] ;
4305: LD_ADDR_VAR 0 2
4309: PUSH
4310: EMPTY
4311: ST_TO_ADDR
// for i in lidi_with_JMM diff odebrano do
4312: LD_ADDR_VAR 0 3
4316: PUSH
4317: LD_EXP 11
4321: PUSH
4322: LD_LOC 10
4326: DIFF
4327: PUSH
4328: FOR_IN
4329: IFFALSE 4367
// if GetSkill ( i , skill_mechanical ) > 3 then
4331: LD_VAR 0 3
4335: PPUSH
4336: LD_INT 3
4338: PPUSH
4339: CALL_OW 259
4343: PUSH
4344: LD_INT 3
4346: GREATER
4347: IFFALSE 4365
// lidi_vyber = lidi_vyber ^ i ;
4349: LD_ADDR_VAR 0 2
4353: PUSH
4354: LD_VAR 0 2
4358: PUSH
4359: LD_VAR 0 3
4363: ADD
4364: ST_TO_ADDR
4365: GO 4328
4367: POP
4368: POP
// if lidi_vyber < 2 then
4369: LD_VAR 0 2
4373: PUSH
4374: LD_INT 2
4376: LESS
4377: IFFALSE 4436
// for i in lidi_other_surv diff odebrano do
4379: LD_ADDR_VAR 0 3
4383: PUSH
4384: LD_EXP 10
4388: PUSH
4389: LD_LOC 10
4393: DIFF
4394: PUSH
4395: FOR_IN
4396: IFFALSE 4434
// if GetSkill ( i , skill_mechanical ) > 3 then
4398: LD_VAR 0 3
4402: PPUSH
4403: LD_INT 3
4405: PPUSH
4406: CALL_OW 259
4410: PUSH
4411: LD_INT 3
4413: GREATER
4414: IFFALSE 4432
// lidi_vyber = lidi_vyber ^ i ;
4416: LD_ADDR_VAR 0 2
4420: PUSH
4421: LD_VAR 0 2
4425: PUSH
4426: LD_VAR 0 3
4430: ADD
4431: ST_TO_ADDR
4432: GO 4395
4434: POP
4435: POP
// if lidi_vyber = 0 then
4436: LD_VAR 0 2
4440: PUSH
4441: LD_INT 0
4443: EQUAL
4444: IFFALSE 4474
// begin prepare_human ( sex_male , class_mechanic , 5 , Thomas Ezendam ) ;
4446: LD_INT 1
4448: PPUSH
4449: LD_INT 3
4451: PPUSH
4452: LD_INT 5
4454: PPUSH
4455: LD_STRING Thomas Ezendam
4457: PPUSH
4458: CALL 2120 0 4
// ah = CreateHuman ;
4462: LD_ADDR_LOC 5
4466: PUSH
4467: CALL_OW 44
4471: ST_TO_ADDR
// end else
4472: GO 4532
// begin ah = lidi_vyber [ 1 ] ;
4474: LD_ADDR_LOC 5
4478: PUSH
4479: LD_VAR 0 2
4483: PUSH
4484: LD_INT 1
4486: ARRAY
4487: ST_TO_ADDR
// lidi_vyber = lidi_vyber diff ah ;
4488: LD_ADDR_VAR 0 2
4492: PUSH
4493: LD_VAR 0 2
4497: PUSH
4498: LD_LOC 5
4502: DIFF
4503: ST_TO_ADDR
// odebrano = odebrano ^ ah ;
4504: LD_ADDR_LOC 10
4508: PUSH
4509: LD_LOC 10
4513: PUSH
4514: LD_LOC 5
4518: ADD
4519: ST_TO_ADDR
// SetClass ( ah , class_mechanic ) ;
4520: LD_LOC 5
4524: PPUSH
4525: LD_INT 3
4527: PPUSH
4528: CALL_OW 336
// end ; Amici_na_zacatku = Amici_na_zacatku ^ ah ;
4532: LD_ADDR_EXP 25
4536: PUSH
4537: LD_EXP 25
4541: PUSH
4542: LD_LOC 5
4546: ADD
4547: ST_TO_ADDR
// av = CreateVehicle ;
4548: LD_ADDR_LOC 6
4552: PUSH
4553: CALL_OW 45
4557: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
4558: LD_LOC 5
4562: PPUSH
4563: LD_LOC 6
4567: PPUSH
4568: CALL_OW 52
// PlaceUnitArea ( av , EnterAM , false ) ;
4572: LD_LOC 6
4576: PPUSH
4577: LD_INT 3
4579: PPUSH
4580: LD_INT 0
4582: PPUSH
4583: CALL_OW 49
// if MNOZSTVI_SIBERITU >= 100 then
4587: LD_EXP 86
4591: PUSH
4592: LD_INT 100
4594: GREATEREQUAL
4595: IFFALSE 4614
// AddCargo ( av , mat_siberit , 100 ) else
4597: LD_LOC 6
4601: PPUSH
4602: LD_INT 3
4604: PPUSH
4605: LD_INT 100
4607: PPUSH
4608: CALL_OW 291
4612: GO 4631
// AddCargo ( av , mat_siberit , MNOZSTVI_SIBERITU ) ;
4614: LD_LOC 6
4618: PPUSH
4619: LD_INT 3
4621: PPUSH
4622: LD_EXP 86
4626: PPUSH
4627: CALL_OW 291
// if MNOZSTVI_SIBERITU > 200 then
4631: LD_EXP 86
4635: PUSH
4636: LD_INT 200
4638: GREATER
4639: IFFALSE 4797
// begin if lidi_vyber = 0 then
4641: LD_VAR 0 2
4645: PUSH
4646: LD_INT 0
4648: EQUAL
4649: IFFALSE 4679
// begin prepare_human ( sex_male , class_mechanic , 5 ,  ) ;
4651: LD_INT 1
4653: PPUSH
4654: LD_INT 3
4656: PPUSH
4657: LD_INT 5
4659: PPUSH
4660: LD_STRING 
4662: PPUSH
4663: CALL 2120 0 4
// ah = CreateHuman ;
4667: LD_ADDR_LOC 5
4671: PUSH
4672: CALL_OW 44
4676: ST_TO_ADDR
// end else
4677: GO 4737
// begin ah = lidi_vyber [ 1 ] ;
4679: LD_ADDR_LOC 5
4683: PUSH
4684: LD_VAR 0 2
4688: PUSH
4689: LD_INT 1
4691: ARRAY
4692: ST_TO_ADDR
// lidi_vyber = lidi_vyber diff ah ;
4693: LD_ADDR_VAR 0 2
4697: PUSH
4698: LD_VAR 0 2
4702: PUSH
4703: LD_LOC 5
4707: DIFF
4708: ST_TO_ADDR
// odebrano = odebrano ^ ah ;
4709: LD_ADDR_LOC 10
4713: PUSH
4714: LD_LOC 10
4718: PUSH
4719: LD_LOC 5
4723: ADD
4724: ST_TO_ADDR
// SetClass ( ah , class_mechanic ) ;
4725: LD_LOC 5
4729: PPUSH
4730: LD_INT 3
4732: PPUSH
4733: CALL_OW 336
// end ; av = CreateVehicle ;
4737: LD_ADDR_LOC 6
4741: PUSH
4742: CALL_OW 45
4746: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
4747: LD_LOC 5
4751: PPUSH
4752: LD_LOC 6
4756: PPUSH
4757: CALL_OW 52
// PlaceUnitArea ( av , EnterAM , false ) ;
4761: LD_LOC 6
4765: PPUSH
4766: LD_INT 3
4768: PPUSH
4769: LD_INT 0
4771: PPUSH
4772: CALL_OW 49
// AddCargo ( av , mat_siberit , MNOZSTVI_SIBERITU - 200 ) ;
4776: LD_LOC 6
4780: PPUSH
4781: LD_INT 3
4783: PPUSH
4784: LD_EXP 86
4788: PUSH
4789: LD_INT 200
4791: MINUS
4792: PPUSH
4793: CALL_OW 291
// end ; Amici_na_zacatku = Amici_na_zacatku ^ ah ;
4797: LD_ADDR_EXP 25
4801: PUSH
4802: LD_EXP 25
4806: PUSH
4807: LD_LOC 5
4811: ADD
4812: ST_TO_ADDR
// if MNOZSTVI_SIBERITU > 350 then
4813: LD_EXP 86
4817: PUSH
4818: LD_INT 350
4820: GREATER
4821: IFFALSE 4830
// Msg ( ERROR: STOUPA JE IDIOT ) ;
4823: LD_STRING ERROR: STOUPA JE IDIOT
4825: PPUSH
4826: CALL_OW 100
// end ;
4830: LD_VAR 0 1
4834: RET
// export function create_konvoj_ru ( nah ) ; begin
4835: LD_INT 0
4837: PPUSH
// uc_side := Rusi ;
4838: LD_ADDR_OWVAR 20
4842: PUSH
4843: LD_EXP 2
4847: ST_TO_ADDR
// uc_nation := nation_russian ;
4848: LD_ADDR_OWVAR 21
4852: PUSH
4853: LD_INT 3
4855: ST_TO_ADDR
// uc_direction := 4 ;
4856: LD_ADDR_OWVAR 24
4860: PUSH
4861: LD_INT 4
4863: ST_TO_ADDR
// prepare_human ( sex_male , class_engineer , levelrusi [ difficulty ] , Boris Gavrilov ) ;
4864: LD_INT 1
4866: PPUSH
4867: LD_INT 2
4869: PPUSH
4870: LD_EXP 61
4874: PUSH
4875: LD_OWVAR 67
4879: ARRAY
4880: PPUSH
4881: LD_STRING Boris Gavrilov
4883: PPUSH
4884: CALL 2120 0 4
// ah = CreateHuman ;
4888: LD_ADDR_LOC 5
4892: PUSH
4893: CALL_OW 44
4897: ST_TO_ADDR
// pom = [ ah ] ;
4898: LD_ADDR_LOC 8
4902: PUSH
4903: LD_LOC 5
4907: PUSH
4908: EMPTY
4909: LIST
4910: ST_TO_ADDR
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] , Boris Glavacenko ) ;
4911: LD_INT 1
4913: PPUSH
4914: LD_INT 3
4916: PPUSH
4917: LD_EXP 61
4921: PUSH
4922: LD_OWVAR 67
4926: ARRAY
4927: PPUSH
4928: LD_STRING Boris Glavacenko
4930: PPUSH
4931: CALL 2120 0 4
// ah = CreateHuman ;
4935: LD_ADDR_LOC 5
4939: PUSH
4940: CALL_OW 44
4944: ST_TO_ADDR
// pom = pom ^ ah ;
4945: LD_ADDR_LOC 8
4949: PUSH
4950: LD_LOC 8
4954: PUSH
4955: LD_LOC 5
4959: ADD
4960: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] , Vladimir P. Scbakov ) ;
4961: LD_INT 1
4963: PPUSH
4964: LD_INT 1
4966: PPUSH
4967: LD_EXP 61
4971: PUSH
4972: LD_OWVAR 67
4976: ARRAY
4977: PPUSH
4978: LD_STRING Vladimir P. Scbakov
4980: PPUSH
4981: CALL 2120 0 4
// ah = CreateHuman ;
4985: LD_ADDR_LOC 5
4989: PUSH
4990: CALL_OW 44
4994: ST_TO_ADDR
// pom = pom ^ ah ;
4995: LD_ADDR_LOC 8
4999: PUSH
5000: LD_LOC 8
5004: PUSH
5005: LD_LOC 5
5009: ADD
5010: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] , Nikolaj Sutjagin ) ;
5011: LD_INT 1
5013: PPUSH
5014: LD_INT 1
5016: PPUSH
5017: LD_EXP 61
5021: PUSH
5022: LD_OWVAR 67
5026: ARRAY
5027: PPUSH
5028: LD_STRING Nikolaj Sutjagin
5030: PPUSH
5031: CALL 2120 0 4
// ah = CreateHuman ;
5035: LD_ADDR_LOC 5
5039: PUSH
5040: CALL_OW 44
5044: ST_TO_ADDR
// pom = pom ^ ah ;
5045: LD_ADDR_LOC 8
5049: PUSH
5050: LD_LOC 8
5054: PUSH
5055: LD_LOC 5
5059: ADD
5060: ST_TO_ADDR
// prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] - 1 , Jevgenij Pepeljajev ) ;
5061: LD_INT 1
5063: PPUSH
5064: LD_INT 9
5066: PPUSH
5067: LD_EXP 61
5071: PUSH
5072: LD_OWVAR 67
5076: ARRAY
5077: PUSH
5078: LD_INT 1
5080: MINUS
5081: PPUSH
5082: LD_STRING Jevgenij Pepeljajev
5084: PPUSH
5085: CALL 2120 0 4
// ah = CreateHuman ;
5089: LD_ADDR_LOC 5
5093: PUSH
5094: CALL_OW 44
5098: ST_TO_ADDR
// pom = pom ^ ah ;
5099: LD_ADDR_LOC 8
5103: PUSH
5104: LD_LOC 8
5108: PUSH
5109: LD_LOC 5
5113: ADD
5114: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] , Dimitrij Oskin ) ;
5115: LD_INT 1
5117: PPUSH
5118: LD_INT 1
5120: PPUSH
5121: LD_EXP 61
5125: PUSH
5126: LD_OWVAR 67
5130: ARRAY
5131: PPUSH
5132: LD_STRING Dimitrij Oskin
5134: PPUSH
5135: CALL 2120 0 4
// ah = CreateHuman ;
5139: LD_ADDR_LOC 5
5143: PUSH
5144: CALL_OW 44
5148: ST_TO_ADDR
// pom = pom ^ ah ;
5149: LD_ADDR_LOC 8
5153: PUSH
5154: LD_LOC 8
5158: PUSH
5159: LD_LOC 5
5163: ADD
5164: ST_TO_ADDR
// prepare_human ( sex_male , class_scientistic , levelrusi [ difficulty ] , Sergej Kramarenko ) ;
5165: LD_INT 1
5167: PPUSH
5168: LD_INT 4
5170: PPUSH
5171: LD_EXP 61
5175: PUSH
5176: LD_OWVAR 67
5180: ARRAY
5181: PPUSH
5182: LD_STRING Sergej Kramarenko
5184: PPUSH
5185: CALL 2120 0 4
// ah = CreateHuman ;
5189: LD_ADDR_LOC 5
5193: PUSH
5194: CALL_OW 44
5198: ST_TO_ADDR
// pom = pom ^ ah ;
5199: LD_ADDR_LOC 8
5203: PUSH
5204: LD_LOC 8
5208: PUSH
5209: LD_LOC 5
5213: ADD
5214: ST_TO_ADDR
// prepare_human ( sex_male , class_engineer , levelrusi [ difficulty ] , Alexandr Smorchov ) ;
5215: LD_INT 1
5217: PPUSH
5218: LD_INT 2
5220: PPUSH
5221: LD_EXP 61
5225: PUSH
5226: LD_OWVAR 67
5230: ARRAY
5231: PPUSH
5232: LD_STRING Alexandr Smorchov
5234: PPUSH
5235: CALL 2120 0 4
// ah = CreateHuman ;
5239: LD_ADDR_LOC 5
5243: PUSH
5244: CALL_OW 44
5248: ST_TO_ADDR
// vc_chassis := ru_medium_tracked ;
5249: LD_ADDR_OWVAR 37
5253: PUSH
5254: LD_INT 22
5256: ST_TO_ADDR
// vc_control := control_manual ;
5257: LD_ADDR_OWVAR 38
5261: PUSH
5262: LD_INT 1
5264: ST_TO_ADDR
// vc_engine := engine_combustion ;
5265: LD_ADDR_OWVAR 39
5269: PUSH
5270: LD_INT 1
5272: ST_TO_ADDR
// vc_weapon := ru_cargo_bay ;
5273: LD_ADDR_OWVAR 40
5277: PUSH
5278: LD_INT 51
5280: ST_TO_ADDR
// av = CreateVehicle ;
5281: LD_ADDR_LOC 6
5285: PUSH
5286: CALL_OW 45
5290: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
5291: LD_LOC 5
5295: PPUSH
5296: LD_LOC 6
5300: PPUSH
5301: CALL_OW 52
// pom = pom ^ av ;
5305: LD_ADDR_LOC 8
5309: PUSH
5310: LD_LOC 8
5314: PUSH
5315: LD_LOC 6
5319: ADD
5320: ST_TO_ADDR
// AddCargo ( av , mat_cans , 70 ) ;
5321: LD_LOC 6
5325: PPUSH
5326: LD_INT 1
5328: PPUSH
5329: LD_INT 70
5331: PPUSH
5332: CALL_OW 291
// AddCargo ( av , mat_oil , 30 ) ;
5336: LD_LOC 6
5340: PPUSH
5341: LD_INT 2
5343: PPUSH
5344: LD_INT 30
5346: PPUSH
5347: CALL_OW 291
// prepare_human ( sex_male , class_engineer , levelrusi [ difficulty ] , Jan Safarik ) ;
5351: LD_INT 1
5353: PPUSH
5354: LD_INT 2
5356: PPUSH
5357: LD_EXP 61
5361: PUSH
5362: LD_OWVAR 67
5366: ARRAY
5367: PPUSH
5368: LD_STRING Jan Safarik
5370: PPUSH
5371: CALL 2120 0 4
// ah = CreateHuman ;
5375: LD_ADDR_LOC 5
5379: PUSH
5380: CALL_OW 44
5384: ST_TO_ADDR
// av = CreateVehicle ;
5385: LD_ADDR_LOC 6
5389: PUSH
5390: CALL_OW 45
5394: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
5395: LD_LOC 5
5399: PPUSH
5400: LD_LOC 6
5404: PPUSH
5405: CALL_OW 52
// pom = pom ^ av ;
5409: LD_ADDR_LOC 8
5413: PUSH
5414: LD_LOC 8
5418: PUSH
5419: LD_LOC 6
5423: ADD
5424: ST_TO_ADDR
// AddCargo ( av , mat_cans , 70 ) ;
5425: LD_LOC 6
5429: PPUSH
5430: LD_INT 1
5432: PPUSH
5433: LD_INT 70
5435: PPUSH
5436: CALL_OW 291
// AddCargo ( av , mat_oil , 30 ) ;
5440: LD_LOC 6
5444: PPUSH
5445: LD_INT 2
5447: PPUSH
5448: LD_INT 30
5450: PPUSH
5451: CALL_OW 291
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] + 1 , Michail Ponomarev ) ;
5455: LD_INT 1
5457: PPUSH
5458: LD_INT 3
5460: PPUSH
5461: LD_EXP 61
5465: PUSH
5466: LD_OWVAR 67
5470: ARRAY
5471: PUSH
5472: LD_INT 1
5474: PLUS
5475: PPUSH
5476: LD_STRING Michail Ponomarev
5478: PPUSH
5479: CALL 2120 0 4
// ah = CreateHuman ;
5483: LD_ADDR_LOC 5
5487: PUSH
5488: CALL_OW 44
5492: ST_TO_ADDR
// vc_chassis := ru_medium_tracked ;
5493: LD_ADDR_OWVAR 37
5497: PUSH
5498: LD_INT 22
5500: ST_TO_ADDR
// vc_control := control_manual ;
5501: LD_ADDR_OWVAR 38
5505: PUSH
5506: LD_INT 1
5508: ST_TO_ADDR
// vc_engine := engine_combustion ;
5509: LD_ADDR_OWVAR 39
5513: PUSH
5514: LD_INT 1
5516: ST_TO_ADDR
// vc_weapon := ru_rocket_launcher ;
5517: LD_ADDR_OWVAR 40
5521: PUSH
5522: LD_INT 45
5524: ST_TO_ADDR
// av = CreateVehicle ;
5525: LD_ADDR_LOC 6
5529: PUSH
5530: CALL_OW 45
5534: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
5535: LD_LOC 5
5539: PPUSH
5540: LD_LOC 6
5544: PPUSH
5545: CALL_OW 52
// pom = pom ^ av ;
5549: LD_ADDR_LOC 8
5553: PUSH
5554: LD_LOC 8
5558: PUSH
5559: LD_LOC 6
5563: ADD
5564: ST_TO_ADDR
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] - 1 , Voloda Kromin ) ;
5565: LD_INT 1
5567: PPUSH
5568: LD_INT 3
5570: PPUSH
5571: LD_EXP 61
5575: PUSH
5576: LD_OWVAR 67
5580: ARRAY
5581: PUSH
5582: LD_INT 1
5584: MINUS
5585: PPUSH
5586: LD_STRING Voloda Kromin
5588: PPUSH
5589: CALL 2120 0 4
// ah = CreateHuman ;
5593: LD_ADDR_LOC 5
5597: PUSH
5598: CALL_OW 44
5602: ST_TO_ADDR
// vc_chassis := chassisrusi [ difficulty ] ;
5603: LD_ADDR_OWVAR 37
5607: PUSH
5608: LD_EXP 62
5612: PUSH
5613: LD_OWVAR 67
5617: ARRAY
5618: ST_TO_ADDR
// vc_control := control_manual ;
5619: LD_ADDR_OWVAR 38
5623: PUSH
5624: LD_INT 1
5626: ST_TO_ADDR
// vc_engine := engine_combustion ;
5627: LD_ADDR_OWVAR 39
5631: PUSH
5632: LD_INT 1
5634: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
5635: LD_ADDR_OWVAR 40
5639: PUSH
5640: LD_EXP 63
5644: PUSH
5645: LD_OWVAR 67
5649: ARRAY
5650: ST_TO_ADDR
// av = CreateVehicle ;
5651: LD_ADDR_LOC 6
5655: PUSH
5656: CALL_OW 45
5660: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
5661: LD_LOC 5
5665: PPUSH
5666: LD_LOC 6
5670: PPUSH
5671: CALL_OW 52
// pom = pom ^ av ;
5675: LD_ADDR_LOC 8
5679: PUSH
5680: LD_LOC 8
5684: PUSH
5685: LD_LOC 6
5689: ADD
5690: ST_TO_ADDR
// if difficulty > 1 then
5691: LD_OWVAR 67
5695: PUSH
5696: LD_INT 1
5698: GREATER
5699: IFFALSE 5927
// begin prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] , Jan Kuklajs ) ;
5701: LD_INT 1
5703: PPUSH
5704: LD_INT 9
5706: PPUSH
5707: LD_EXP 61
5711: PUSH
5712: LD_OWVAR 67
5716: ARRAY
5717: PPUSH
5718: LD_STRING Jan Kuklajs
5720: PPUSH
5721: CALL 2120 0 4
// ah = CreateHuman ;
5725: LD_ADDR_LOC 5
5729: PUSH
5730: CALL_OW 44
5734: ST_TO_ADDR
// pom = pom ^ ah ;
5735: LD_ADDR_LOC 8
5739: PUSH
5740: LD_LOC 8
5744: PUSH
5745: LD_LOC 5
5749: ADD
5750: ST_TO_ADDR
// prepare_human ( sex_female , class_engineer , levelrusi [ difficulty ] , Tatiana Petrova ) ;
5751: LD_INT 2
5753: PPUSH
5754: LD_INT 2
5756: PPUSH
5757: LD_EXP 61
5761: PUSH
5762: LD_OWVAR 67
5766: ARRAY
5767: PPUSH
5768: LD_STRING Tatiana Petrova
5770: PPUSH
5771: CALL 2120 0 4
// ah = CreateHuman ;
5775: LD_ADDR_LOC 5
5779: PUSH
5780: CALL_OW 44
5784: ST_TO_ADDR
// pom = pom ^ ah ;
5785: LD_ADDR_LOC 8
5789: PUSH
5790: LD_LOC 8
5794: PUSH
5795: LD_LOC 5
5799: ADD
5800: ST_TO_ADDR
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] + 2 , Ivan Kasatonov ) ;
5801: LD_INT 1
5803: PPUSH
5804: LD_INT 3
5806: PPUSH
5807: LD_EXP 61
5811: PUSH
5812: LD_OWVAR 67
5816: ARRAY
5817: PUSH
5818: LD_INT 2
5820: PLUS
5821: PPUSH
5822: LD_STRING Ivan Kasatonov
5824: PPUSH
5825: CALL 2120 0 4
// ah = CreateHuman ;
5829: LD_ADDR_LOC 5
5833: PUSH
5834: CALL_OW 44
5838: ST_TO_ADDR
// vc_chassis := chassisrusi [ difficulty ] ;
5839: LD_ADDR_OWVAR 37
5843: PUSH
5844: LD_EXP 62
5848: PUSH
5849: LD_OWVAR 67
5853: ARRAY
5854: ST_TO_ADDR
// vc_control := control_manual ;
5855: LD_ADDR_OWVAR 38
5859: PUSH
5860: LD_INT 1
5862: ST_TO_ADDR
// vc_engine := engine_combustion ;
5863: LD_ADDR_OWVAR 39
5867: PUSH
5868: LD_INT 1
5870: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
5871: LD_ADDR_OWVAR 40
5875: PUSH
5876: LD_EXP 63
5880: PUSH
5881: LD_OWVAR 67
5885: ARRAY
5886: ST_TO_ADDR
// av = CreateVehicle ;
5887: LD_ADDR_LOC 6
5891: PUSH
5892: CALL_OW 45
5896: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
5897: LD_LOC 5
5901: PPUSH
5902: LD_LOC 6
5906: PPUSH
5907: CALL_OW 52
// pom = pom ^ av ;
5911: LD_ADDR_LOC 8
5915: PUSH
5916: LD_LOC 8
5920: PUSH
5921: LD_LOC 6
5925: ADD
5926: ST_TO_ADDR
// end ; if difficulty > 2 then
5927: LD_OWVAR 67
5931: PUSH
5932: LD_INT 2
5934: GREATER
5935: IFFALSE 6147
// begin prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] + 1 , Sergej Pakonin ) ;
5937: LD_INT 1
5939: PPUSH
5940: LD_INT 9
5942: PPUSH
5943: LD_EXP 61
5947: PUSH
5948: LD_OWVAR 67
5952: ARRAY
5953: PUSH
5954: LD_INT 1
5956: PLUS
5957: PPUSH
5958: LD_STRING Sergej Pakonin
5960: PPUSH
5961: CALL 2120 0 4
// ah = CreateHuman ;
5965: LD_ADDR_LOC 5
5969: PUSH
5970: CALL_OW 44
5974: ST_TO_ADDR
// pom = pom ^ ah ;
5975: LD_ADDR_LOC 8
5979: PUSH
5980: LD_LOC 8
5984: PUSH
5985: LD_LOC 5
5989: ADD
5990: ST_TO_ADDR
// prepare_human ( sex_female , class_engineer , levelrusi [ difficulty ] , Natasa Gryznova ) ;
5991: LD_INT 2
5993: PPUSH
5994: LD_INT 2
5996: PPUSH
5997: LD_EXP 61
6001: PUSH
6002: LD_OWVAR 67
6006: ARRAY
6007: PPUSH
6008: LD_STRING Natasa Gryznova
6010: PPUSH
6011: CALL 2120 0 4
// ah = CreateHuman ;
6015: LD_ADDR_LOC 5
6019: PUSH
6020: CALL_OW 44
6024: ST_TO_ADDR
// pom = pom ^ ah ;
6025: LD_ADDR_LOC 8
6029: PUSH
6030: LD_LOC 8
6034: PUSH
6035: LD_LOC 5
6039: ADD
6040: ST_TO_ADDR
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] , Sergej Supin ) ;
6041: LD_INT 1
6043: PPUSH
6044: LD_INT 3
6046: PPUSH
6047: LD_EXP 61
6051: PUSH
6052: LD_OWVAR 67
6056: ARRAY
6057: PPUSH
6058: LD_STRING Sergej Supin
6060: PPUSH
6061: CALL 2120 0 4
// ah = CreateHuman ;
6065: LD_ADDR_LOC 5
6069: PUSH
6070: CALL_OW 44
6074: ST_TO_ADDR
// vc_chassis := ru_heavy_tracked ;
6075: LD_ADDR_OWVAR 37
6079: PUSH
6080: LD_INT 24
6082: ST_TO_ADDR
// vc_control := control_manual ;
6083: LD_ADDR_OWVAR 38
6087: PUSH
6088: LD_INT 1
6090: ST_TO_ADDR
// vc_engine := engine_siberite ;
6091: LD_ADDR_OWVAR 39
6095: PUSH
6096: LD_INT 3
6098: ST_TO_ADDR
// vc_weapon := ru_gun ;
6099: LD_ADDR_OWVAR 40
6103: PUSH
6104: LD_INT 44
6106: ST_TO_ADDR
// av = CreateVehicle ;
6107: LD_ADDR_LOC 6
6111: PUSH
6112: CALL_OW 45
6116: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
6117: LD_LOC 5
6121: PPUSH
6122: LD_LOC 6
6126: PPUSH
6127: CALL_OW 52
// pom = pom ^ ah ;
6131: LD_ADDR_LOC 8
6135: PUSH
6136: LD_LOC 8
6140: PUSH
6141: LD_LOC 5
6145: ADD
6146: ST_TO_ADDR
// end ; CREATOVANI_RUSKEHO_KONVOJE_LIST := pom ;
6147: LD_ADDR_EXP 13
6151: PUSH
6152: LD_LOC 8
6156: ST_TO_ADDR
// end ;
6157: LD_VAR 0 2
6161: RET
// export function create_Cornel ; begin
6162: LD_INT 0
6164: PPUSH
// uc_side := You2 ;
6165: LD_ADDR_OWVAR 20
6169: PUSH
6170: LD_EXP 6
6174: ST_TO_ADDR
// uc_nation := nation_american ;
6175: LD_ADDR_OWVAR 21
6179: PUSH
6180: LD_INT 1
6182: ST_TO_ADDR
// uc_direction := 4 ;
6183: LD_ADDR_OWVAR 24
6187: PUSH
6188: LD_INT 4
6190: ST_TO_ADDR
// PlaceUnitArea ( Cornel , Corenter , false ) ;
6191: LD_EXP 50
6195: PPUSH
6196: LD_INT 17
6198: PPUSH
6199: LD_INT 0
6201: PPUSH
6202: CALL_OW 49
// end ;
6206: LD_VAR 0 1
6210: RET
// export function create_rusky_attack1 ; var i ; begin
6211: LD_INT 0
6213: PPUSH
6214: PPUSH
// uc_side := Rusi ;
6215: LD_ADDR_OWVAR 20
6219: PUSH
6220: LD_EXP 2
6224: ST_TO_ADDR
// uc_nation := nation_russian ;
6225: LD_ADDR_OWVAR 21
6229: PUSH
6230: LD_INT 3
6232: ST_TO_ADDR
// uc_direction := 4 ;
6233: LD_ADDR_OWVAR 24
6237: PUSH
6238: LD_INT 4
6240: ST_TO_ADDR
// vc_chassis := chassisrusi [ difficulty ] ;
6241: LD_ADDR_OWVAR 37
6245: PUSH
6246: LD_EXP 62
6250: PUSH
6251: LD_OWVAR 67
6255: ARRAY
6256: ST_TO_ADDR
// vc_control := control_computer ;
6257: LD_ADDR_OWVAR 38
6261: PUSH
6262: LD_INT 3
6264: ST_TO_ADDR
// vc_engine := engine_siberite ;
6265: LD_ADDR_OWVAR 39
6269: PUSH
6270: LD_INT 3
6272: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
6273: LD_ADDR_OWVAR 40
6277: PUSH
6278: LD_EXP 63
6282: PUSH
6283: LD_OWVAR 67
6287: ARRAY
6288: ST_TO_ADDR
// av = CreateVehicle ;
6289: LD_ADDR_LOC 6
6293: PUSH
6294: CALL_OW 45
6298: ST_TO_ADDR
// pom = [ av ] ;
6299: LD_ADDR_LOC 8
6303: PUSH
6304: LD_LOC 6
6308: PUSH
6309: EMPTY
6310: LIST
6311: ST_TO_ADDR
// if difficulty > 1 then
6312: LD_OWVAR 67
6316: PUSH
6317: LD_INT 1
6319: GREATER
6320: IFFALSE 6348
// begin av = CreateVehicle ;
6322: LD_ADDR_LOC 6
6326: PUSH
6327: CALL_OW 45
6331: ST_TO_ADDR
// pom = pom ^ av ;
6332: LD_ADDR_LOC 8
6336: PUSH
6337: LD_LOC 8
6341: PUSH
6342: LD_LOC 6
6346: ADD
6347: ST_TO_ADDR
// end ; if difficulty > 2 then
6348: LD_OWVAR 67
6352: PUSH
6353: LD_INT 2
6355: GREATER
6356: IFFALSE 6442
// begin vc_chassis := ru_medium_tracked ;
6358: LD_ADDR_OWVAR 37
6362: PUSH
6363: LD_INT 22
6365: ST_TO_ADDR
// vc_control := control_computer ;
6366: LD_ADDR_OWVAR 38
6370: PUSH
6371: LD_INT 3
6373: ST_TO_ADDR
// vc_engine := engine_siberite ;
6374: LD_ADDR_OWVAR 39
6378: PUSH
6379: LD_INT 3
6381: ST_TO_ADDR
// vc_weapon := ru_gun ;
6382: LD_ADDR_OWVAR 40
6386: PUSH
6387: LD_INT 44
6389: ST_TO_ADDR
// av = CreateVehicle ;
6390: LD_ADDR_LOC 6
6394: PUSH
6395: CALL_OW 45
6399: ST_TO_ADDR
// pom = pom ^ av ;
6400: LD_ADDR_LOC 8
6404: PUSH
6405: LD_LOC 8
6409: PUSH
6410: LD_LOC 6
6414: ADD
6415: ST_TO_ADDR
// av = CreateVehicle ;
6416: LD_ADDR_LOC 6
6420: PUSH
6421: CALL_OW 45
6425: ST_TO_ADDR
// pom = pom ^ av ;
6426: LD_ADDR_LOC 8
6430: PUSH
6431: LD_LOC 8
6435: PUSH
6436: LD_LOC 6
6440: ADD
6441: ST_TO_ADDR
// end ; for i in pom do
6442: LD_ADDR_VAR 0 2
6446: PUSH
6447: LD_LOC 8
6451: PUSH
6452: FOR_IN
6453: IFFALSE 6477
// SetLives ( i , rusi_zivoty [ difficulty ] ) ;
6455: LD_VAR 0 2
6459: PPUSH
6460: LD_EXP 70
6464: PUSH
6465: LD_OWVAR 67
6469: ARRAY
6470: PPUSH
6471: CALL_OW 234
6475: GO 6452
6477: POP
6478: POP
// CREATE_RUSKY_ATTACK1_LIST = pom ;
6479: LD_ADDR_EXP 14
6483: PUSH
6484: LD_LOC 8
6488: ST_TO_ADDR
// end ;
6489: LD_VAR 0 1
6493: RET
// export function create_vojaci ; begin
6494: LD_INT 0
6496: PPUSH
// uc_side := Rusi ;
6497: LD_ADDR_OWVAR 20
6501: PUSH
6502: LD_EXP 2
6506: ST_TO_ADDR
// uc_nation := nation_russian ;
6507: LD_ADDR_OWVAR 21
6511: PUSH
6512: LD_INT 3
6514: ST_TO_ADDR
// uc_direction := 4 ;
6515: LD_ADDR_OWVAR 24
6519: PUSH
6520: LD_INT 4
6522: ST_TO_ADDR
// prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] + 1 ,  ) ;
6523: LD_INT 1
6525: PPUSH
6526: LD_INT 9
6528: PPUSH
6529: LD_EXP 61
6533: PUSH
6534: LD_OWVAR 67
6538: ARRAY
6539: PUSH
6540: LD_INT 1
6542: PLUS
6543: PPUSH
6544: LD_STRING 
6546: PPUSH
6547: CALL 2120 0 4
// ah = CreateHuman ;
6551: LD_ADDR_LOC 5
6555: PUSH
6556: CALL_OW 44
6560: ST_TO_ADDR
// pom = [ ah ] ;
6561: LD_ADDR_LOC 8
6565: PUSH
6566: LD_LOC 5
6570: PUSH
6571: EMPTY
6572: LIST
6573: ST_TO_ADDR
// prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] ,  ) ;
6574: LD_INT 1
6576: PPUSH
6577: LD_INT 9
6579: PPUSH
6580: LD_EXP 61
6584: PUSH
6585: LD_OWVAR 67
6589: ARRAY
6590: PPUSH
6591: LD_STRING 
6593: PPUSH
6594: CALL 2120 0 4
// ah = CreateHuman ;
6598: LD_ADDR_LOC 5
6602: PUSH
6603: CALL_OW 44
6607: ST_TO_ADDR
// pom = pom ^ ah ;
6608: LD_ADDR_LOC 8
6612: PUSH
6613: LD_LOC 8
6617: PUSH
6618: LD_LOC 5
6622: ADD
6623: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , 2 ,  ) ;
6624: LD_INT 1
6626: PPUSH
6627: LD_INT 1
6629: PPUSH
6630: LD_INT 2
6632: PPUSH
6633: LD_STRING 
6635: PPUSH
6636: CALL 2120 0 4
// ah = CreateHuman ;
6640: LD_ADDR_LOC 5
6644: PUSH
6645: CALL_OW 44
6649: ST_TO_ADDR
// pom = pom ^ ah ;
6650: LD_ADDR_LOC 8
6654: PUSH
6655: LD_LOC 8
6659: PUSH
6660: LD_LOC 5
6664: ADD
6665: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , 2 ,  ) ;
6666: LD_INT 1
6668: PPUSH
6669: LD_INT 1
6671: PPUSH
6672: LD_INT 2
6674: PPUSH
6675: LD_STRING 
6677: PPUSH
6678: CALL 2120 0 4
// ah = CreateHuman ;
6682: LD_ADDR_LOC 5
6686: PUSH
6687: CALL_OW 44
6691: ST_TO_ADDR
// pom = pom ^ ah ;
6692: LD_ADDR_LOC 8
6696: PUSH
6697: LD_LOC 8
6701: PUSH
6702: LD_LOC 5
6706: ADD
6707: ST_TO_ADDR
// if difficulty > 1 then
6708: LD_OWVAR 67
6712: PUSH
6713: LD_INT 1
6715: GREATER
6716: IFFALSE 6822
// begin prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] + 1 ,  ) ;
6718: LD_INT 1
6720: PPUSH
6721: LD_INT 9
6723: PPUSH
6724: LD_EXP 61
6728: PUSH
6729: LD_OWVAR 67
6733: ARRAY
6734: PUSH
6735: LD_INT 1
6737: PLUS
6738: PPUSH
6739: LD_STRING 
6741: PPUSH
6742: CALL 2120 0 4
// ah = CreateHuman ;
6746: LD_ADDR_LOC 5
6750: PUSH
6751: CALL_OW 44
6755: ST_TO_ADDR
// pom = pom ^ ah ;
6756: LD_ADDR_LOC 8
6760: PUSH
6761: LD_LOC 8
6765: PUSH
6766: LD_LOC 5
6770: ADD
6771: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] ,  ) ;
6772: LD_INT 1
6774: PPUSH
6775: LD_INT 1
6777: PPUSH
6778: LD_EXP 61
6782: PUSH
6783: LD_OWVAR 67
6787: ARRAY
6788: PPUSH
6789: LD_STRING 
6791: PPUSH
6792: CALL 2120 0 4
// ah = CreateHuman ;
6796: LD_ADDR_LOC 5
6800: PUSH
6801: CALL_OW 44
6805: ST_TO_ADDR
// pom = pom ^ ah ;
6806: LD_ADDR_LOC 8
6810: PUSH
6811: LD_LOC 8
6815: PUSH
6816: LD_LOC 5
6820: ADD
6821: ST_TO_ADDR
// end ; if difficulty > 2 then
6822: LD_OWVAR 67
6826: PUSH
6827: LD_INT 2
6829: GREATER
6830: IFFALSE 6936
// begin prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] + 1 ,  ) ;
6832: LD_INT 1
6834: PPUSH
6835: LD_INT 9
6837: PPUSH
6838: LD_EXP 61
6842: PUSH
6843: LD_OWVAR 67
6847: ARRAY
6848: PUSH
6849: LD_INT 1
6851: PLUS
6852: PPUSH
6853: LD_STRING 
6855: PPUSH
6856: CALL 2120 0 4
// ah = CreateHuman ;
6860: LD_ADDR_LOC 5
6864: PUSH
6865: CALL_OW 44
6869: ST_TO_ADDR
// pom = pom ^ ah ;
6870: LD_ADDR_LOC 8
6874: PUSH
6875: LD_LOC 8
6879: PUSH
6880: LD_LOC 5
6884: ADD
6885: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] ,  ) ;
6886: LD_INT 1
6888: PPUSH
6889: LD_INT 1
6891: PPUSH
6892: LD_EXP 61
6896: PUSH
6897: LD_OWVAR 67
6901: ARRAY
6902: PPUSH
6903: LD_STRING 
6905: PPUSH
6906: CALL 2120 0 4
// ah = CreateHuman ;
6910: LD_ADDR_LOC 5
6914: PUSH
6915: CALL_OW 44
6919: ST_TO_ADDR
// pom = pom ^ ah ;
6920: LD_ADDR_LOC 8
6924: PUSH
6925: LD_LOC 8
6929: PUSH
6930: LD_LOC 5
6934: ADD
6935: ST_TO_ADDR
// end ; CREATE_VOJACI_LIST = pom ;
6936: LD_ADDR_EXP 15
6940: PUSH
6941: LD_LOC 8
6945: ST_TO_ADDR
// end ;
6946: LD_VAR 0 1
6950: RET
// export function create_ar_zradu ; begin
6951: LD_INT 0
6953: PPUSH
// uc_side := Arabi2 ;
6954: LD_ADDR_OWVAR 20
6958: PUSH
6959: LD_EXP 4
6963: ST_TO_ADDR
// uc_nation := nation_arabian ;
6964: LD_ADDR_OWVAR 21
6968: PUSH
6969: LD_INT 2
6971: ST_TO_ADDR
// uc_direction := 4 ;
6972: LD_ADDR_OWVAR 24
6976: PUSH
6977: LD_INT 4
6979: ST_TO_ADDR
// prepare_human ( sex_male , class_desert_warior , 5 , Azib Alim ) ;
6980: LD_INT 1
6982: PPUSH
6983: LD_INT 11
6985: PPUSH
6986: LD_INT 5
6988: PPUSH
6989: LD_STRING Azib Alim
6991: PPUSH
6992: CALL 2120 0 4
// ah = CreateHuman ;
6996: LD_ADDR_LOC 5
7000: PUSH
7001: CALL_OW 44
7005: ST_TO_ADDR
// SetSide ( mas1 , Arabi2 ) ;
7006: LD_INT 14
7008: PPUSH
7009: LD_EXP 4
7013: PPUSH
7014: CALL_OW 235
// PlaceHumanInUnit ( ah , mas1 ) ;
7018: LD_LOC 5
7022: PPUSH
7023: LD_INT 14
7025: PPUSH
7026: CALL_OW 52
// PlaceUnitArea ( mas1 , AUenter , false ) ;
7030: LD_INT 14
7032: PPUSH
7033: LD_INT 23
7035: PPUSH
7036: LD_INT 0
7038: PPUSH
7039: CALL_OW 49
// ComCarabine ( ah ) ;
7043: LD_LOC 5
7047: PPUSH
7048: CALL_OW 162
// prepare_human ( sex_male , class_desert_warior , 5 , Gmamal El Aziz ) ;
7052: LD_INT 1
7054: PPUSH
7055: LD_INT 11
7057: PPUSH
7058: LD_INT 5
7060: PPUSH
7061: LD_STRING Gmamal El Aziz
7063: PPUSH
7064: CALL 2120 0 4
// ah = CreateHuman ;
7068: LD_ADDR_LOC 5
7072: PUSH
7073: CALL_OW 44
7077: ST_TO_ADDR
// SetSide ( mas2 , Arabi2 ) ;
7078: LD_INT 13
7080: PPUSH
7081: LD_EXP 4
7085: PPUSH
7086: CALL_OW 235
// PlaceHumanInUnit ( ah , mas2 ) ;
7090: LD_LOC 5
7094: PPUSH
7095: LD_INT 13
7097: PPUSH
7098: CALL_OW 52
// PlaceUnitArea ( mas2 , AUenter , false ) ;
7102: LD_INT 13
7104: PPUSH
7105: LD_INT 23
7107: PPUSH
7108: LD_INT 0
7110: PPUSH
7111: CALL_OW 49
// ComCarabine ( ah ) ;
7115: LD_LOC 5
7119: PPUSH
7120: CALL_OW 162
// prepare_human ( sex_male , class_soldier , 5 , Suman Oles ) ;
7124: LD_INT 1
7126: PPUSH
7127: LD_INT 1
7129: PPUSH
7130: LD_INT 5
7132: PPUSH
7133: LD_STRING Suman Oles
7135: PPUSH
7136: CALL 2120 0 4
// ah = CreateHuman ;
7140: LD_ADDR_LOC 5
7144: PUSH
7145: CALL_OW 44
7149: ST_TO_ADDR
// PlaceUnitArea ( ah , AUenter , false ) ;
7150: LD_LOC 5
7154: PPUSH
7155: LD_INT 23
7157: PPUSH
7158: LD_INT 0
7160: PPUSH
7161: CALL_OW 49
// prepare_human ( sex_male , class_soldier , 3 , Oman Hajalib ) ;
7165: LD_INT 1
7167: PPUSH
7168: LD_INT 1
7170: PPUSH
7171: LD_INT 3
7173: PPUSH
7174: LD_STRING Oman Hajalib
7176: PPUSH
7177: CALL 2120 0 4
// ah = CreateHuman ;
7181: LD_ADDR_LOC 5
7185: PUSH
7186: CALL_OW 44
7190: ST_TO_ADDR
// PlaceUnitArea ( ah , AUenter , false ) ;
7191: LD_LOC 5
7195: PPUSH
7196: LD_INT 23
7198: PPUSH
7199: LD_INT 0
7201: PPUSH
7202: CALL_OW 49
// prepare_human ( sex_male , class_soldier , 5 , Ed Sobaletzki ) ;
7206: LD_INT 1
7208: PPUSH
7209: LD_INT 1
7211: PPUSH
7212: LD_INT 5
7214: PPUSH
7215: LD_STRING Ed Sobaletzki
7217: PPUSH
7218: CALL 2120 0 4
// ah = CreateHuman ;
7222: LD_ADDR_LOC 5
7226: PUSH
7227: CALL_OW 44
7231: ST_TO_ADDR
// PlaceUnitArea ( ah , AUenter , false ) ;
7232: LD_LOC 5
7236: PPUSH
7237: LD_INT 23
7239: PPUSH
7240: LD_INT 0
7242: PPUSH
7243: CALL_OW 49
// end ;
7247: LD_VAR 0 1
7251: RET
// export function uprav_mastodonty ; begin
7252: LD_INT 0
7254: PPUSH
// RemoveUnit ( mas1 ) ;
7255: LD_INT 14
7257: PPUSH
7258: CALL_OW 64
// RemoveUnit ( mas2 ) ;
7262: LD_INT 13
7264: PPUSH
7265: CALL_OW 64
// end ;
7269: LD_VAR 0 1
7273: RET
// export function create_engineer ; begin
7274: LD_INT 0
7276: PPUSH
// uc_side := Rusi ;
7277: LD_ADDR_OWVAR 20
7281: PUSH
7282: LD_EXP 2
7286: ST_TO_ADDR
// uc_nation := nation_Russian ;
7287: LD_ADDR_OWVAR 21
7291: PUSH
7292: LD_INT 3
7294: ST_TO_ADDR
// prepare_human ( sex_male , class_engineer , levelrusi [ difficulty ] ,  ) ;
7295: LD_INT 1
7297: PPUSH
7298: LD_INT 2
7300: PPUSH
7301: LD_EXP 61
7305: PUSH
7306: LD_OWVAR 67
7310: ARRAY
7311: PPUSH
7312: LD_STRING 
7314: PPUSH
7315: CALL 2120 0 4
// ah = CreateHuman ;
7319: LD_ADDR_LOC 5
7323: PUSH
7324: CALL_OW 44
7328: ST_TO_ADDR
// PlaceUnitArea ( ah , RE3 , false ) ;
7329: LD_LOC 5
7333: PPUSH
7334: LD_INT 6
7336: PPUSH
7337: LD_INT 0
7339: PPUSH
7340: CALL_OW 49
// end ;
7344: LD_VAR 0 1
7348: RET
// export function create_2_new_attack ; var i ; begin
7349: LD_INT 0
7351: PPUSH
7352: PPUSH
// uc_side := Rusi ;
7353: LD_ADDR_OWVAR 20
7357: PUSH
7358: LD_EXP 2
7362: ST_TO_ADDR
// uc_nation := nation_russian ;
7363: LD_ADDR_OWVAR 21
7367: PUSH
7368: LD_INT 3
7370: ST_TO_ADDR
// uc_direction := 4 ;
7371: LD_ADDR_OWVAR 24
7375: PUSH
7376: LD_INT 4
7378: ST_TO_ADDR
// prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] ,  ) ;
7379: LD_INT 1
7381: PPUSH
7382: LD_INT 9
7384: PPUSH
7385: LD_EXP 61
7389: PUSH
7390: LD_OWVAR 67
7394: ARRAY
7395: PPUSH
7396: LD_STRING 
7398: PPUSH
7399: CALL 2120 0 4
// ah = CreateHuman ;
7403: LD_ADDR_LOC 5
7407: PUSH
7408: CALL_OW 44
7412: ST_TO_ADDR
// pom = [ ah ] ;
7413: LD_ADDR_LOC 8
7417: PUSH
7418: LD_LOC 5
7422: PUSH
7423: EMPTY
7424: LIST
7425: ST_TO_ADDR
// prepare_human ( sex_male , class_mechanic , levelrusi [ difficulty ] - 2 ,  ) ;
7426: LD_INT 1
7428: PPUSH
7429: LD_INT 3
7431: PPUSH
7432: LD_EXP 61
7436: PUSH
7437: LD_OWVAR 67
7441: ARRAY
7442: PUSH
7443: LD_INT 2
7445: MINUS
7446: PPUSH
7447: LD_STRING 
7449: PPUSH
7450: CALL 2120 0 4
// ah = CreateHuman ;
7454: LD_ADDR_LOC 5
7458: PUSH
7459: CALL_OW 44
7463: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , 2 ,  ) ;
7464: LD_INT 1
7466: PPUSH
7467: LD_INT 1
7469: PPUSH
7470: LD_INT 2
7472: PPUSH
7473: LD_STRING 
7475: PPUSH
7476: CALL 2120 0 4
// ah = CreateHuman ;
7480: LD_ADDR_LOC 5
7484: PUSH
7485: CALL_OW 44
7489: ST_TO_ADDR
// pom = pom ^ ah ;
7490: LD_ADDR_LOC 8
7494: PUSH
7495: LD_LOC 8
7499: PUSH
7500: LD_LOC 5
7504: ADD
7505: ST_TO_ADDR
// vc_chassis := ru_medium_tracked ;
7506: LD_ADDR_OWVAR 37
7510: PUSH
7511: LD_INT 22
7513: ST_TO_ADDR
// vc_control := control_manual ;
7514: LD_ADDR_OWVAR 38
7518: PUSH
7519: LD_INT 1
7521: ST_TO_ADDR
// vc_engine := engine_siberite ;
7522: LD_ADDR_OWVAR 39
7526: PUSH
7527: LD_INT 3
7529: ST_TO_ADDR
// vc_weapon := ru_heavy_machine_gun ;
7530: LD_ADDR_OWVAR 40
7534: PUSH
7535: LD_INT 42
7537: ST_TO_ADDR
// av = CreateVehicle ;
7538: LD_ADDR_LOC 6
7542: PUSH
7543: CALL_OW 45
7547: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
7548: LD_LOC 5
7552: PPUSH
7553: LD_LOC 6
7557: PPUSH
7558: CALL_OW 52
// pom = pom ^ av ;
7562: LD_ADDR_LOC 8
7566: PUSH
7567: LD_LOC 8
7571: PUSH
7572: LD_LOC 6
7576: ADD
7577: ST_TO_ADDR
// if difficulty > 1 then
7578: LD_OWVAR 67
7582: PUSH
7583: LD_INT 1
7585: GREATER
7586: IFFALSE 7654
// begin vc_chassis := ru_heavy_wheeled ;
7588: LD_ADDR_OWVAR 37
7592: PUSH
7593: LD_INT 23
7595: ST_TO_ADDR
// vc_control = control_computer ;
7596: LD_ADDR_OWVAR 38
7600: PUSH
7601: LD_INT 3
7603: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
7604: LD_ADDR_OWVAR 40
7608: PUSH
7609: LD_EXP 63
7613: PUSH
7614: LD_OWVAR 67
7618: ARRAY
7619: ST_TO_ADDR
// vc_engine := engine_combustion ;
7620: LD_ADDR_OWVAR 39
7624: PUSH
7625: LD_INT 1
7627: ST_TO_ADDR
// av = CreateVehicle ;
7628: LD_ADDR_LOC 6
7632: PUSH
7633: CALL_OW 45
7637: ST_TO_ADDR
// pom = pom ^ av ;
7638: LD_ADDR_LOC 8
7642: PUSH
7643: LD_LOC 8
7647: PUSH
7648: LD_LOC 6
7652: ADD
7653: ST_TO_ADDR
// end ; if difficulty > 2 then
7654: LD_OWVAR 67
7658: PUSH
7659: LD_INT 2
7661: GREATER
7662: IFFALSE 7702
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
7664: LD_ADDR_LOC 8
7668: PUSH
7669: LD_LOC 8
7673: PUSH
7674: CALL 8455 0 0
7678: PPUSH
7679: LD_INT 1
7681: PPUSH
7682: LD_EXP 61
7686: PUSH
7687: LD_OWVAR 67
7691: ARRAY
7692: PPUSH
7693: LD_STRING 
7695: PPUSH
7696: CALL 8397 0 4
7700: ADD
7701: ST_TO_ADDR
// for i in pom do
7702: LD_ADDR_VAR 0 2
7706: PUSH
7707: LD_LOC 8
7711: PUSH
7712: FOR_IN
7713: IFFALSE 7737
// SetLives ( i , rusi_zivoty [ difficulty ] ) ;
7715: LD_VAR 0 2
7719: PPUSH
7720: LD_EXP 70
7724: PUSH
7725: LD_OWVAR 67
7729: ARRAY
7730: PPUSH
7731: CALL_OW 234
7735: GO 7712
7737: POP
7738: POP
// CREATE_2_NEW_ATTACK_LIST = pom ;
7739: LD_ADDR_EXP 16
7743: PUSH
7744: LD_LOC 8
7748: ST_TO_ADDR
// end ;
7749: LD_VAR 0 1
7753: RET
// export function create_3_new_attack ; var i ; begin
7754: LD_INT 0
7756: PPUSH
7757: PPUSH
// uc_side := Rusi ;
7758: LD_ADDR_OWVAR 20
7762: PUSH
7763: LD_EXP 2
7767: ST_TO_ADDR
// uc_nation := nation_russian ;
7768: LD_ADDR_OWVAR 21
7772: PUSH
7773: LD_INT 3
7775: ST_TO_ADDR
// prepare_human ( sex_male , class_bazooker , levelrusi [ difficulty ] - 1 ,  ) ;
7776: LD_INT 1
7778: PPUSH
7779: LD_INT 9
7781: PPUSH
7782: LD_EXP 61
7786: PUSH
7787: LD_OWVAR 67
7791: ARRAY
7792: PUSH
7793: LD_INT 1
7795: MINUS
7796: PPUSH
7797: LD_STRING 
7799: PPUSH
7800: CALL 2120 0 4
// ah = CreateHuman ;
7804: LD_ADDR_LOC 5
7808: PUSH
7809: CALL_OW 44
7813: ST_TO_ADDR
// pom = [ ah ] ;
7814: LD_ADDR_LOC 8
7818: PUSH
7819: LD_LOC 5
7823: PUSH
7824: EMPTY
7825: LIST
7826: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levelrusi [ difficulty ] ,  ) ;
7827: LD_INT 1
7829: PPUSH
7830: LD_INT 1
7832: PPUSH
7833: LD_EXP 61
7837: PUSH
7838: LD_OWVAR 67
7842: ARRAY
7843: PPUSH
7844: LD_STRING 
7846: PPUSH
7847: CALL 2120 0 4
// ah = CreateHuman ;
7851: LD_ADDR_LOC 5
7855: PUSH
7856: CALL_OW 44
7860: ST_TO_ADDR
// pom = pom ^ ah ;
7861: LD_ADDR_LOC 8
7865: PUSH
7866: LD_LOC 8
7870: PUSH
7871: LD_LOC 5
7875: ADD
7876: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , 2 ,  ) ;
7877: LD_INT 1
7879: PPUSH
7880: LD_INT 1
7882: PPUSH
7883: LD_INT 2
7885: PPUSH
7886: LD_STRING 
7888: PPUSH
7889: CALL 2120 0 4
// ah = CreateHuman ;
7893: LD_ADDR_LOC 5
7897: PUSH
7898: CALL_OW 44
7902: ST_TO_ADDR
// pom = pom ^ ah ;
7903: LD_ADDR_LOC 8
7907: PUSH
7908: LD_LOC 8
7912: PUSH
7913: LD_LOC 5
7917: ADD
7918: ST_TO_ADDR
// vc_chassis := ru_medium_tracked ;
7919: LD_ADDR_OWVAR 37
7923: PUSH
7924: LD_INT 22
7926: ST_TO_ADDR
// vc_control := control_computer ;
7927: LD_ADDR_OWVAR 38
7931: PUSH
7932: LD_INT 3
7934: ST_TO_ADDR
// vc_engine := engine_siberite ;
7935: LD_ADDR_OWVAR 39
7939: PUSH
7940: LD_INT 3
7942: ST_TO_ADDR
// vc_weapon := ru_gun ;
7943: LD_ADDR_OWVAR 40
7947: PUSH
7948: LD_INT 44
7950: ST_TO_ADDR
// av = CreateVehicle ;
7951: LD_ADDR_LOC 6
7955: PUSH
7956: CALL_OW 45
7960: ST_TO_ADDR
// pom = pom ^ av ;
7961: LD_ADDR_LOC 8
7965: PUSH
7966: LD_LOC 8
7970: PUSH
7971: LD_LOC 6
7975: ADD
7976: ST_TO_ADDR
// vc_weapon = zbranrusi [ difficulty ] ;
7977: LD_ADDR_OWVAR 40
7981: PUSH
7982: LD_EXP 63
7986: PUSH
7987: LD_OWVAR 67
7991: ARRAY
7992: ST_TO_ADDR
// av = CreateVehicle ;
7993: LD_ADDR_LOC 6
7997: PUSH
7998: CALL_OW 45
8002: ST_TO_ADDR
// pom = pom ^ av ;
8003: LD_ADDR_LOC 8
8007: PUSH
8008: LD_LOC 8
8012: PUSH
8013: LD_LOC 6
8017: ADD
8018: ST_TO_ADDR
// if difficulty > 1 then
8019: LD_OWVAR 67
8023: PUSH
8024: LD_INT 1
8026: GREATER
8027: IFFALSE 8137
// begin ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] - 1 ,  ) ;
8029: LD_ADDR_LOC 5
8033: PUSH
8034: CALL 8455 0 0
8038: PPUSH
8039: LD_INT 3
8041: PPUSH
8042: LD_EXP 61
8046: PUSH
8047: LD_OWVAR 67
8051: ARRAY
8052: PUSH
8053: LD_INT 1
8055: MINUS
8056: PPUSH
8057: LD_STRING 
8059: PPUSH
8060: CALL 8397 0 4
8064: ST_TO_ADDR
// vc_chassis = ru_heavy_tracked ;
8065: LD_ADDR_OWVAR 37
8069: PUSH
8070: LD_INT 24
8072: ST_TO_ADDR
// vc_control = control_manual ;
8073: LD_ADDR_OWVAR 38
8077: PUSH
8078: LD_INT 1
8080: ST_TO_ADDR
// vc_weapon := ru_gatling_gun ;
8081: LD_ADDR_OWVAR 40
8085: PUSH
8086: LD_INT 43
8088: ST_TO_ADDR
// vc_engine := engine_combustion ;
8089: LD_ADDR_OWVAR 39
8093: PUSH
8094: LD_INT 1
8096: ST_TO_ADDR
// av = CreateVehicle ;
8097: LD_ADDR_LOC 6
8101: PUSH
8102: CALL_OW 45
8106: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
8107: LD_LOC 5
8111: PPUSH
8112: LD_LOC 6
8116: PPUSH
8117: CALL_OW 52
// pom = pom ^ av ;
8121: LD_ADDR_LOC 8
8125: PUSH
8126: LD_LOC 8
8130: PUSH
8131: LD_LOC 6
8135: ADD
8136: ST_TO_ADDR
// end ; if difficulty > 2 then
8137: LD_OWVAR 67
8141: PUSH
8142: LD_INT 2
8144: GREATER
8145: IFFALSE 8189
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] - 3 ,  ) ;
8147: LD_ADDR_LOC 8
8151: PUSH
8152: LD_LOC 8
8156: PUSH
8157: CALL 8455 0 0
8161: PPUSH
8162: LD_INT 9
8164: PPUSH
8165: LD_EXP 61
8169: PUSH
8170: LD_OWVAR 67
8174: ARRAY
8175: PUSH
8176: LD_INT 3
8178: MINUS
8179: PPUSH
8180: LD_STRING 
8182: PPUSH
8183: CALL 8397 0 4
8187: ADD
8188: ST_TO_ADDR
// for i in pom do
8189: LD_ADDR_VAR 0 2
8193: PUSH
8194: LD_LOC 8
8198: PUSH
8199: FOR_IN
8200: IFFALSE 8224
// SetLives ( i , rusi_zivoty [ difficulty ] ) ;
8202: LD_VAR 0 2
8206: PPUSH
8207: LD_EXP 70
8211: PUSH
8212: LD_OWVAR 67
8216: ARRAY
8217: PPUSH
8218: CALL_OW 234
8222: GO 8199
8224: POP
8225: POP
// CREATE_3_NEW_ATTACK_LIST = pom ;
8226: LD_ADDR_EXP 17
8230: PUSH
8231: LD_LOC 8
8235: ST_TO_ADDR
// end ;
8236: LD_VAR 0 1
8240: RET
// export function create_bazooka_attack ; var i ; begin
8241: LD_INT 0
8243: PPUSH
8244: PPUSH
// uc_side := Rusi ;
8245: LD_ADDR_OWVAR 20
8249: PUSH
8250: LD_EXP 2
8254: ST_TO_ADDR
// uc_nation := nation_russian ;
8255: LD_ADDR_OWVAR 21
8259: PUSH
8260: LD_INT 3
8262: ST_TO_ADDR
// pom = [ ] ;
8263: LD_ADDR_LOC 8
8267: PUSH
8268: EMPTY
8269: ST_TO_ADDR
// for i := 1 to difficulty + 1 do
8270: LD_ADDR_VAR 0 2
8274: PUSH
8275: DOUBLE
8276: LD_INT 1
8278: DEC
8279: ST_TO_ADDR
8280: LD_OWVAR 67
8284: PUSH
8285: LD_INT 1
8287: PLUS
8288: PUSH
8289: FOR_TO
8290: IFFALSE 8330
// pom = pom + get_human ( sex_male , class_bazooker , levelrusi [ difficulty ] ,  ) ;
8292: LD_ADDR_LOC 8
8296: PUSH
8297: LD_LOC 8
8301: PUSH
8302: LD_INT 1
8304: PPUSH
8305: LD_INT 9
8307: PPUSH
8308: LD_EXP 61
8312: PUSH
8313: LD_OWVAR 67
8317: ARRAY
8318: PPUSH
8319: LD_STRING 
8321: PPUSH
8322: CALL 8397 0 4
8326: PLUS
8327: ST_TO_ADDR
8328: GO 8289
8330: POP
8331: POP
// for i := 1 to difficulty do
8332: LD_ADDR_VAR 0 2
8336: PUSH
8337: DOUBLE
8338: LD_INT 1
8340: DEC
8341: ST_TO_ADDR
8342: LD_OWVAR 67
8346: PUSH
8347: FOR_TO
8348: IFFALSE 8380
// pom = pom + get_human ( sex_male , class_soldier , 3 ,  ) ;
8350: LD_ADDR_LOC 8
8354: PUSH
8355: LD_LOC 8
8359: PUSH
8360: LD_INT 1
8362: PPUSH
8363: LD_INT 1
8365: PPUSH
8366: LD_INT 3
8368: PPUSH
8369: LD_STRING 
8371: PPUSH
8372: CALL 8397 0 4
8376: PLUS
8377: ST_TO_ADDR
8378: GO 8347
8380: POP
8381: POP
// CREATE_BAZOOKA_ATTACK_LIST = pom ;
8382: LD_ADDR_EXP 18
8386: PUSH
8387: LD_LOC 8
8391: ST_TO_ADDR
// end ;
8392: LD_VAR 0 1
8396: RET
// function get_human ( sex , clas , level , name ) ; var pom ; begin
8397: LD_INT 0
8399: PPUSH
8400: PPUSH
// PrepareHuman ( sex , clas , level ) ;
8401: LD_VAR 0 1
8405: PPUSH
8406: LD_VAR 0 2
8410: PPUSH
8411: LD_VAR 0 3
8415: PPUSH
8416: CALL_OW 380
// hc_name := name ;
8420: LD_ADDR_OWVAR 26
8424: PUSH
8425: LD_VAR 0 4
8429: ST_TO_ADDR
// pom = CreateHuman ;
8430: LD_ADDR_VAR 0 6
8434: PUSH
8435: CALL_OW 44
8439: ST_TO_ADDR
// result := pom ;
8440: LD_ADDR_VAR 0 5
8444: PUSH
8445: LD_VAR 0 6
8449: ST_TO_ADDR
// end ;
8450: LD_VAR 0 5
8454: RET
// function get_sex ; begin
8455: LD_INT 0
8457: PPUSH
// if Prob ( 20 ) then
8458: LD_INT 20
8460: PPUSH
8461: CALL_OW 13
8465: IFFALSE 8477
// result = sex_female else
8467: LD_ADDR_VAR 0 1
8471: PUSH
8472: LD_INT 2
8474: ST_TO_ADDR
8475: GO 8485
// result = sex_male ;
8477: LD_ADDR_VAR 0 1
8481: PUSH
8482: LD_INT 1
8484: ST_TO_ADDR
// end ;
8485: LD_VAR 0 1
8489: RET
// export function create_rusky_utok_0 ; var pom ; begin
8490: LD_INT 0
8492: PPUSH
8493: PPUSH
// pom = [ ] ;
8494: LD_ADDR_VAR 0 2
8498: PUSH
8499: EMPTY
8500: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
8501: LD_ADDR_VAR 0 2
8505: PUSH
8506: CALL 8455 0 0
8510: PPUSH
8511: LD_INT 1
8513: PPUSH
8514: LD_EXP 61
8518: PUSH
8519: LD_OWVAR 67
8523: ARRAY
8524: PPUSH
8525: LD_STRING 
8527: PPUSH
8528: CALL 8397 0 4
8532: ST_TO_ADDR
// if pom > 1 then
8533: LD_VAR 0 2
8537: PUSH
8538: LD_INT 1
8540: GREATER
8541: IFFALSE 8585
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] - 2 ,  ) ;
8543: LD_ADDR_VAR 0 2
8547: PUSH
8548: LD_VAR 0 2
8552: PUSH
8553: CALL 8455 0 0
8557: PPUSH
8558: LD_INT 1
8560: PPUSH
8561: LD_EXP 61
8565: PUSH
8566: LD_OWVAR 67
8570: ARRAY
8571: PUSH
8572: LD_INT 2
8574: MINUS
8575: PPUSH
8576: LD_STRING 
8578: PPUSH
8579: CALL 8397 0 4
8583: ADD
8584: ST_TO_ADDR
// if pom > 2 then
8585: LD_VAR 0 2
8589: PUSH
8590: LD_INT 2
8592: GREATER
8593: IFFALSE 8637
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] - 1 ,  ) ;
8595: LD_ADDR_VAR 0 2
8599: PUSH
8600: LD_VAR 0 2
8604: PUSH
8605: CALL 8455 0 0
8609: PPUSH
8610: LD_INT 1
8612: PPUSH
8613: LD_EXP 61
8617: PUSH
8618: LD_OWVAR 67
8622: ARRAY
8623: PUSH
8624: LD_INT 1
8626: MINUS
8627: PPUSH
8628: LD_STRING 
8630: PPUSH
8631: CALL 8397 0 4
8635: ADD
8636: ST_TO_ADDR
// RUSKY_UTOK_0_LIST = pom ;
8637: LD_ADDR_EXP 19
8641: PUSH
8642: LD_VAR 0 2
8646: ST_TO_ADDR
// end ;
8647: LD_VAR 0 1
8651: RET
// export function create_attack_after_end ; begin
8652: LD_INT 0
8654: PPUSH
// uc_side := Rusi ;
8655: LD_ADDR_OWVAR 20
8659: PUSH
8660: LD_EXP 2
8664: ST_TO_ADDR
// uc_nation := nation_russian ;
8665: LD_ADDR_OWVAR 21
8669: PUSH
8670: LD_INT 3
8672: ST_TO_ADDR
// pom = [ ] ;
8673: LD_ADDR_LOC 8
8677: PUSH
8678: EMPTY
8679: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
8680: LD_ADDR_LOC 8
8684: PUSH
8685: LD_LOC 8
8689: PUSH
8690: CALL 8455 0 0
8694: PPUSH
8695: LD_INT 9
8697: PPUSH
8698: LD_EXP 61
8702: PUSH
8703: LD_OWVAR 67
8707: ARRAY
8708: PPUSH
8709: LD_STRING 
8711: PPUSH
8712: CALL 8397 0 4
8716: ADD
8717: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
8718: LD_ADDR_LOC 8
8722: PUSH
8723: LD_LOC 8
8727: PUSH
8728: CALL 8455 0 0
8732: PPUSH
8733: LD_INT 9
8735: PPUSH
8736: LD_EXP 61
8740: PUSH
8741: LD_OWVAR 67
8745: ARRAY
8746: PPUSH
8747: LD_STRING 
8749: PPUSH
8750: CALL 8397 0 4
8754: ADD
8755: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
8756: LD_ADDR_LOC 8
8760: PUSH
8761: LD_LOC 8
8765: PUSH
8766: CALL 8455 0 0
8770: PPUSH
8771: LD_INT 1
8773: PPUSH
8774: LD_EXP 61
8778: PUSH
8779: LD_OWVAR 67
8783: ARRAY
8784: PPUSH
8785: LD_STRING 
8787: PPUSH
8788: CALL 8397 0 4
8792: ADD
8793: ST_TO_ADDR
// vc_control = control_computer ;
8794: LD_ADDR_OWVAR 38
8798: PUSH
8799: LD_INT 3
8801: ST_TO_ADDR
// vc_chassis := chassisrusi [ difficulty ] ;
8802: LD_ADDR_OWVAR 37
8806: PUSH
8807: LD_EXP 62
8811: PUSH
8812: LD_OWVAR 67
8816: ARRAY
8817: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
8818: LD_ADDR_OWVAR 40
8822: PUSH
8823: LD_EXP 63
8827: PUSH
8828: LD_OWVAR 67
8832: ARRAY
8833: ST_TO_ADDR
// av = CreateVehicle ;
8834: LD_ADDR_LOC 6
8838: PUSH
8839: CALL_OW 45
8843: ST_TO_ADDR
// SetLives ( av , pocet_zivotu_utok_po_utoku [ difficulty ] ) ;
8844: LD_LOC 6
8848: PPUSH
8849: LD_EXP 80
8853: PUSH
8854: LD_OWVAR 67
8858: ARRAY
8859: PPUSH
8860: CALL_OW 234
// pom = pom ^ av ;
8864: LD_ADDR_LOC 8
8868: PUSH
8869: LD_LOC 8
8873: PUSH
8874: LD_LOC 6
8878: ADD
8879: ST_TO_ADDR
// av = CreateVehicle ;
8880: LD_ADDR_LOC 6
8884: PUSH
8885: CALL_OW 45
8889: ST_TO_ADDR
// SetLives ( av , pocet_zivotu_utok_po_utoku [ difficulty ] ) ;
8890: LD_LOC 6
8894: PPUSH
8895: LD_EXP 80
8899: PUSH
8900: LD_OWVAR 67
8904: ARRAY
8905: PPUSH
8906: CALL_OW 234
// pom = pom ^ av ;
8910: LD_ADDR_LOC 8
8914: PUSH
8915: LD_LOC 8
8919: PUSH
8920: LD_LOC 6
8924: ADD
8925: ST_TO_ADDR
// av = CreateVehicle ;
8926: LD_ADDR_LOC 6
8930: PUSH
8931: CALL_OW 45
8935: ST_TO_ADDR
// SetLives ( av , pocet_zivotu_utok_po_utoku [ difficulty ] ) ;
8936: LD_LOC 6
8940: PPUSH
8941: LD_EXP 80
8945: PUSH
8946: LD_OWVAR 67
8950: ARRAY
8951: PPUSH
8952: CALL_OW 234
// pom = pom ^ av ;
8956: LD_ADDR_LOC 8
8960: PUSH
8961: LD_LOC 8
8965: PUSH
8966: LD_LOC 6
8970: ADD
8971: ST_TO_ADDR
// RUSSIAN_AFTER_END_ATTACK_LIST1 = pom ;
8972: LD_ADDR_EXP 20
8976: PUSH
8977: LD_LOC 8
8981: ST_TO_ADDR
// pom = [ ] ;
8982: LD_ADDR_LOC 8
8986: PUSH
8987: EMPTY
8988: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
8989: LD_ADDR_LOC 8
8993: PUSH
8994: LD_LOC 8
8998: PUSH
8999: CALL 8455 0 0
9003: PPUSH
9004: LD_INT 9
9006: PPUSH
9007: LD_EXP 61
9011: PUSH
9012: LD_OWVAR 67
9016: ARRAY
9017: PPUSH
9018: LD_STRING 
9020: PPUSH
9021: CALL 8397 0 4
9025: ADD
9026: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
9027: LD_ADDR_LOC 8
9031: PUSH
9032: LD_LOC 8
9036: PUSH
9037: CALL 8455 0 0
9041: PPUSH
9042: LD_INT 1
9044: PPUSH
9045: LD_EXP 61
9049: PUSH
9050: LD_OWVAR 67
9054: ARRAY
9055: PPUSH
9056: LD_STRING 
9058: PPUSH
9059: CALL 8397 0 4
9063: ADD
9064: ST_TO_ADDR
// vc_control = control_computer ;
9065: LD_ADDR_OWVAR 38
9069: PUSH
9070: LD_INT 3
9072: ST_TO_ADDR
// vc_chassis := ru_heavy_tracked ;
9073: LD_ADDR_OWVAR 37
9077: PUSH
9078: LD_INT 24
9080: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
9081: LD_ADDR_OWVAR 40
9085: PUSH
9086: LD_INT 42
9088: ST_TO_ADDR
// av = CreateVehicle ;
9089: LD_ADDR_LOC 6
9093: PUSH
9094: CALL_OW 45
9098: ST_TO_ADDR
// pom = pom ^ av ;
9099: LD_ADDR_LOC 8
9103: PUSH
9104: LD_LOC 8
9108: PUSH
9109: LD_LOC 6
9113: ADD
9114: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] - 3 ,  ) ;
9115: LD_ADDR_LOC 5
9119: PUSH
9120: CALL 8455 0 0
9124: PPUSH
9125: LD_INT 3
9127: PPUSH
9128: LD_EXP 61
9132: PUSH
9133: LD_OWVAR 67
9137: ARRAY
9138: PUSH
9139: LD_INT 3
9141: MINUS
9142: PPUSH
9143: LD_STRING 
9145: PPUSH
9146: CALL 8397 0 4
9150: ST_TO_ADDR
// vc_control = control_manual ;
9151: LD_ADDR_OWVAR 38
9155: PUSH
9156: LD_INT 1
9158: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
9159: LD_ADDR_OWVAR 40
9163: PUSH
9164: LD_EXP 63
9168: PUSH
9169: LD_OWVAR 67
9173: ARRAY
9174: ST_TO_ADDR
// av = CreateVehicle ;
9175: LD_ADDR_LOC 6
9179: PUSH
9180: CALL_OW 45
9184: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9185: LD_LOC 5
9189: PPUSH
9190: LD_LOC 6
9194: PPUSH
9195: CALL_OW 52
// pom = pom ^ av ;
9199: LD_ADDR_LOC 8
9203: PUSH
9204: LD_LOC 8
9208: PUSH
9209: LD_LOC 6
9213: ADD
9214: ST_TO_ADDR
// if difficulty > 2 then
9215: LD_OWVAR 67
9219: PUSH
9220: LD_INT 2
9222: GREATER
9223: IFFALSE 9309
// begin ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] - 2 ,  ) ;
9225: LD_ADDR_LOC 5
9229: PUSH
9230: CALL 8455 0 0
9234: PPUSH
9235: LD_INT 3
9237: PPUSH
9238: LD_EXP 61
9242: PUSH
9243: LD_OWVAR 67
9247: ARRAY
9248: PUSH
9249: LD_INT 2
9251: MINUS
9252: PPUSH
9253: LD_STRING 
9255: PPUSH
9256: CALL 8397 0 4
9260: ST_TO_ADDR
// vc_control = control_manual ;
9261: LD_ADDR_OWVAR 38
9265: PUSH
9266: LD_INT 1
9268: ST_TO_ADDR
// av = CreateVehicle ;
9269: LD_ADDR_LOC 6
9273: PUSH
9274: CALL_OW 45
9278: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9279: LD_LOC 5
9283: PPUSH
9284: LD_LOC 6
9288: PPUSH
9289: CALL_OW 52
// pom = pom ^ av ;
9293: LD_ADDR_LOC 8
9297: PUSH
9298: LD_LOC 8
9302: PUSH
9303: LD_LOC 6
9307: ADD
9308: ST_TO_ADDR
// end ; RUSSIAN_AFTER_END_ATTACK_LIST2 = pom ;
9309: LD_ADDR_EXP 21
9313: PUSH
9314: LD_LOC 8
9318: ST_TO_ADDR
// pom = [ ] ;
9319: LD_ADDR_LOC 8
9323: PUSH
9324: EMPTY
9325: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
9326: LD_ADDR_LOC 8
9330: PUSH
9331: LD_LOC 8
9335: PUSH
9336: CALL 8455 0 0
9340: PPUSH
9341: LD_INT 9
9343: PPUSH
9344: LD_EXP 61
9348: PUSH
9349: LD_OWVAR 67
9353: ARRAY
9354: PPUSH
9355: LD_STRING 
9357: PPUSH
9358: CALL 8397 0 4
9362: ADD
9363: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
9364: LD_ADDR_LOC 8
9368: PUSH
9369: LD_LOC 8
9373: PUSH
9374: CALL 8455 0 0
9378: PPUSH
9379: LD_INT 9
9381: PPUSH
9382: LD_EXP 61
9386: PUSH
9387: LD_OWVAR 67
9391: ARRAY
9392: PPUSH
9393: LD_STRING 
9395: PPUSH
9396: CALL 8397 0 4
9400: ADD
9401: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
9402: LD_ADDR_LOC 8
9406: PUSH
9407: LD_LOC 8
9411: PUSH
9412: CALL 8455 0 0
9416: PPUSH
9417: LD_INT 9
9419: PPUSH
9420: LD_EXP 61
9424: PUSH
9425: LD_OWVAR 67
9429: ARRAY
9430: PPUSH
9431: LD_STRING 
9433: PPUSH
9434: CALL 8397 0 4
9438: ADD
9439: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
9440: LD_ADDR_LOC 8
9444: PUSH
9445: LD_LOC 8
9449: PUSH
9450: CALL 8455 0 0
9454: PPUSH
9455: LD_INT 1
9457: PPUSH
9458: LD_EXP 61
9462: PUSH
9463: LD_OWVAR 67
9467: ARRAY
9468: PPUSH
9469: LD_STRING 
9471: PPUSH
9472: CALL 8397 0 4
9476: ADD
9477: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
9478: LD_ADDR_LOC 5
9482: PUSH
9483: CALL 8455 0 0
9487: PPUSH
9488: LD_INT 3
9490: PPUSH
9491: LD_EXP 61
9495: PUSH
9496: LD_OWVAR 67
9500: ARRAY
9501: PPUSH
9502: LD_STRING 
9504: PPUSH
9505: CALL 8397 0 4
9509: ST_TO_ADDR
// vc_control = control_manual ;
9510: LD_ADDR_OWVAR 38
9514: PUSH
9515: LD_INT 1
9517: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
9518: LD_ADDR_OWVAR 40
9522: PUSH
9523: LD_EXP 63
9527: PUSH
9528: LD_OWVAR 67
9532: ARRAY
9533: ST_TO_ADDR
// vc_chassis = ru_heavy_tracked ;
9534: LD_ADDR_OWVAR 37
9538: PUSH
9539: LD_INT 24
9541: ST_TO_ADDR
// vc_engine = engine_siberite ;
9542: LD_ADDR_OWVAR 39
9546: PUSH
9547: LD_INT 3
9549: ST_TO_ADDR
// av = CreateVehicle ;
9550: LD_ADDR_LOC 6
9554: PUSH
9555: CALL_OW 45
9559: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9560: LD_LOC 5
9564: PPUSH
9565: LD_LOC 6
9569: PPUSH
9570: CALL_OW 52
// pom = pom ^ av ;
9574: LD_ADDR_LOC 8
9578: PUSH
9579: LD_LOC 8
9583: PUSH
9584: LD_LOC 6
9588: ADD
9589: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
9590: LD_ADDR_LOC 5
9594: PUSH
9595: CALL 8455 0 0
9599: PPUSH
9600: LD_INT 3
9602: PPUSH
9603: LD_EXP 61
9607: PUSH
9608: LD_OWVAR 67
9612: ARRAY
9613: PPUSH
9614: LD_STRING 
9616: PPUSH
9617: CALL 8397 0 4
9621: ST_TO_ADDR
// av = CreateVehicle ;
9622: LD_ADDR_LOC 6
9626: PUSH
9627: CALL_OW 45
9631: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9632: LD_LOC 5
9636: PPUSH
9637: LD_LOC 6
9641: PPUSH
9642: CALL_OW 52
// pom = pom ^ av ;
9646: LD_ADDR_LOC 8
9650: PUSH
9651: LD_LOC 8
9655: PUSH
9656: LD_LOC 6
9660: ADD
9661: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
9662: LD_ADDR_LOC 5
9666: PUSH
9667: CALL 8455 0 0
9671: PPUSH
9672: LD_INT 3
9674: PPUSH
9675: LD_EXP 61
9679: PUSH
9680: LD_OWVAR 67
9684: ARRAY
9685: PPUSH
9686: LD_STRING 
9688: PPUSH
9689: CALL 8397 0 4
9693: ST_TO_ADDR
// av = CreateVehicle ;
9694: LD_ADDR_LOC 6
9698: PUSH
9699: CALL_OW 45
9703: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9704: LD_LOC 5
9708: PPUSH
9709: LD_LOC 6
9713: PPUSH
9714: CALL_OW 52
// pom = pom ^ av ;
9718: LD_ADDR_LOC 8
9722: PUSH
9723: LD_LOC 8
9727: PUSH
9728: LD_LOC 6
9732: ADD
9733: ST_TO_ADDR
// if pom > 1 then
9734: LD_LOC 8
9738: PUSH
9739: LD_INT 1
9741: GREATER
9742: IFFALSE 9816
// begin ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
9744: LD_ADDR_LOC 5
9748: PUSH
9749: CALL 8455 0 0
9753: PPUSH
9754: LD_INT 3
9756: PPUSH
9757: LD_EXP 61
9761: PUSH
9762: LD_OWVAR 67
9766: ARRAY
9767: PPUSH
9768: LD_STRING 
9770: PPUSH
9771: CALL 8397 0 4
9775: ST_TO_ADDR
// av = CreateVehicle ;
9776: LD_ADDR_LOC 6
9780: PUSH
9781: CALL_OW 45
9785: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
9786: LD_LOC 5
9790: PPUSH
9791: LD_LOC 6
9795: PPUSH
9796: CALL_OW 52
// pom = pom ^ av ;
9800: LD_ADDR_LOC 8
9804: PUSH
9805: LD_LOC 8
9809: PUSH
9810: LD_LOC 6
9814: ADD
9815: ST_TO_ADDR
// end ; vc_weapon = ru_rocket ;
9816: LD_ADDR_OWVAR 40
9820: PUSH
9821: LD_INT 47
9823: ST_TO_ADDR
// vc_control = control_computer ;
9824: LD_ADDR_OWVAR 38
9828: PUSH
9829: LD_INT 3
9831: ST_TO_ADDR
// av = CreateVehicle ;
9832: LD_ADDR_LOC 6
9836: PUSH
9837: CALL_OW 45
9841: ST_TO_ADDR
// pom = pom ^ av ;
9842: LD_ADDR_LOC 8
9846: PUSH
9847: LD_LOC 8
9851: PUSH
9852: LD_LOC 6
9856: ADD
9857: ST_TO_ADDR
// if pom > 1 then
9858: LD_LOC 8
9862: PUSH
9863: LD_INT 1
9865: GREATER
9866: IFFALSE 9894
// begin av = CreateVehicle ;
9868: LD_ADDR_LOC 6
9872: PUSH
9873: CALL_OW 45
9877: ST_TO_ADDR
// pom = pom ^ av ;
9878: LD_ADDR_LOC 8
9882: PUSH
9883: LD_LOC 8
9887: PUSH
9888: LD_LOC 6
9892: ADD
9893: ST_TO_ADDR
// end ; RUSSIAN_AFTER_END_ATTACK_LIST_FINAL = pom ;
9894: LD_ADDR_EXP 22
9898: PUSH
9899: LD_LOC 8
9903: ST_TO_ADDR
// end ;
9904: LD_VAR 0 1
9908: RET
// export function create_kecal ; begin
9909: LD_INT 0
9911: PPUSH
// uc_side := You ;
9912: LD_ADDR_OWVAR 20
9916: PUSH
9917: LD_EXP 3
9921: ST_TO_ADDR
// uc_nation := nation_american ;
9922: LD_ADDR_OWVAR 21
9926: PUSH
9927: LD_INT 1
9929: ST_TO_ADDR
// ah = get_human ( sex_female , class_soldier , 5 , Linda Violet ) ;
9930: LD_ADDR_LOC 5
9934: PUSH
9935: LD_INT 2
9937: PPUSH
9938: LD_INT 1
9940: PPUSH
9941: LD_INT 5
9943: PPUSH
9944: LD_STRING Linda Violet
9946: PPUSH
9947: CALL 8397 0 4
9951: ST_TO_ADDR
// result := ah ;
9952: LD_ADDR_VAR 0 1
9956: PUSH
9957: LD_LOC 5
9961: ST_TO_ADDR
// end ;
9962: LD_VAR 0 1
9966: RET
// export function create_ruske_bazukery ; var pomp ; begin
9967: LD_INT 0
9969: PPUSH
9970: PPUSH
// uc_side := Rusi ;
9971: LD_ADDR_OWVAR 20
9975: PUSH
9976: LD_EXP 2
9980: ST_TO_ADDR
// uc_nation := nation_russian ;
9981: LD_ADDR_OWVAR 21
9985: PUSH
9986: LD_INT 3
9988: ST_TO_ADDR
// pomp = get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
9989: LD_ADDR_VAR 0 2
9993: PUSH
9994: CALL 8455 0 0
9998: PPUSH
9999: LD_INT 9
10001: PPUSH
10002: LD_EXP 61
10006: PUSH
10007: LD_OWVAR 67
10011: ARRAY
10012: PPUSH
10013: LD_STRING 
10015: PPUSH
10016: CALL 8397 0 4
10020: ST_TO_ADDR
// pomp = pomp ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
10021: LD_ADDR_VAR 0 2
10025: PUSH
10026: LD_VAR 0 2
10030: PUSH
10031: CALL 8455 0 0
10035: PPUSH
10036: LD_INT 9
10038: PPUSH
10039: LD_EXP 61
10043: PUSH
10044: LD_OWVAR 67
10048: ARRAY
10049: PPUSH
10050: LD_STRING 
10052: PPUSH
10053: CALL 8397 0 4
10057: ADD
10058: ST_TO_ADDR
// if difficulty > 1 then
10059: LD_OWVAR 67
10063: PUSH
10064: LD_INT 1
10066: GREATER
10067: IFFALSE 10107
// pomp = pomp ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
10069: LD_ADDR_VAR 0 2
10073: PUSH
10074: LD_VAR 0 2
10078: PUSH
10079: CALL 8455 0 0
10083: PPUSH
10084: LD_INT 9
10086: PPUSH
10087: LD_EXP 61
10091: PUSH
10092: LD_OWVAR 67
10096: ARRAY
10097: PPUSH
10098: LD_STRING 
10100: PPUSH
10101: CALL 8397 0 4
10105: ADD
10106: ST_TO_ADDR
// if difficulty > 2 then
10107: LD_OWVAR 67
10111: PUSH
10112: LD_INT 2
10114: GREATER
10115: IFFALSE 10155
// pomp = pomp ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
10117: LD_ADDR_VAR 0 2
10121: PUSH
10122: LD_VAR 0 2
10126: PUSH
10127: CALL 8455 0 0
10131: PPUSH
10132: LD_INT 9
10134: PPUSH
10135: LD_EXP 61
10139: PUSH
10140: LD_OWVAR 67
10144: ARRAY
10145: PPUSH
10146: LD_STRING 
10148: PPUSH
10149: CALL 8397 0 4
10153: ADD
10154: ST_TO_ADDR
// pomp = get_human ( get_sex , class_soldier , Rand ( 1 , 1 + difficulty ) ,  ) ;
10155: LD_ADDR_VAR 0 2
10159: PUSH
10160: CALL 8455 0 0
10164: PPUSH
10165: LD_INT 1
10167: PPUSH
10168: LD_INT 1
10170: PPUSH
10171: LD_INT 1
10173: PUSH
10174: LD_OWVAR 67
10178: PLUS
10179: PPUSH
10180: CALL_OW 12
10184: PPUSH
10185: LD_STRING 
10187: PPUSH
10188: CALL 8397 0 4
10192: ST_TO_ADDR
// result := pomp ;
10193: LD_ADDR_VAR 0 1
10197: PUSH
10198: LD_VAR 0 2
10202: ST_TO_ADDR
// end ;
10203: LD_VAR 0 1
10207: RET
// export function create_mechaniky_navic ; var pom ; begin
10208: LD_INT 0
10210: PPUSH
10211: PPUSH
// uc_side := Rusi ;
10212: LD_ADDR_OWVAR 20
10216: PUSH
10217: LD_EXP 2
10221: ST_TO_ADDR
// uc_nation = nation_russian ;
10222: LD_ADDR_OWVAR 21
10226: PUSH
10227: LD_INT 3
10229: ST_TO_ADDR
// pom = [ ] ;
10230: LD_ADDR_VAR 0 2
10234: PUSH
10235: EMPTY
10236: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10237: LD_ADDR_VAR 0 2
10241: PUSH
10242: LD_VAR 0 2
10246: PUSH
10247: CALL 8455 0 0
10251: PPUSH
10252: LD_INT 3
10254: PPUSH
10255: LD_EXP 61
10259: PUSH
10260: LD_OWVAR 67
10264: ARRAY
10265: PPUSH
10266: LD_STRING 
10268: PPUSH
10269: CALL 8397 0 4
10273: ADD
10274: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10275: LD_ADDR_VAR 0 2
10279: PUSH
10280: LD_VAR 0 2
10284: PUSH
10285: CALL 8455 0 0
10289: PPUSH
10290: LD_INT 3
10292: PPUSH
10293: LD_EXP 61
10297: PUSH
10298: LD_OWVAR 67
10302: ARRAY
10303: PPUSH
10304: LD_STRING 
10306: PPUSH
10307: CALL 8397 0 4
10311: ADD
10312: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10313: LD_ADDR_VAR 0 2
10317: PUSH
10318: LD_VAR 0 2
10322: PUSH
10323: CALL 8455 0 0
10327: PPUSH
10328: LD_INT 3
10330: PPUSH
10331: LD_EXP 61
10335: PUSH
10336: LD_OWVAR 67
10340: ARRAY
10341: PPUSH
10342: LD_STRING 
10344: PPUSH
10345: CALL 8397 0 4
10349: ADD
10350: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10351: LD_ADDR_VAR 0 2
10355: PUSH
10356: LD_VAR 0 2
10360: PUSH
10361: CALL 8455 0 0
10365: PPUSH
10366: LD_INT 3
10368: PPUSH
10369: LD_EXP 61
10373: PUSH
10374: LD_OWVAR 67
10378: ARRAY
10379: PPUSH
10380: LD_STRING 
10382: PPUSH
10383: CALL 8397 0 4
10387: ADD
10388: ST_TO_ADDR
// MECHANICI_NAVIC = pom ;
10389: LD_ADDR_EXP 23
10393: PUSH
10394: LD_VAR 0 2
10398: ST_TO_ADDR
// end ;
10399: LD_VAR 0 1
10403: RET
// export function C_N_A ; var pom ; begin
10404: LD_INT 0
10406: PPUSH
10407: PPUSH
// uc_nation := nation_russian ;
10408: LD_ADDR_OWVAR 21
10412: PUSH
10413: LD_INT 3
10415: ST_TO_ADDR
// uc_side := Rusi ;
10416: LD_ADDR_OWVAR 20
10420: PUSH
10421: LD_EXP 2
10425: ST_TO_ADDR
// pom = [ ] ;
10426: LD_ADDR_VAR 0 2
10430: PUSH
10431: EMPTY
10432: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
10433: LD_ADDR_VAR 0 2
10437: PUSH
10438: LD_VAR 0 2
10442: PUSH
10443: CALL 8455 0 0
10447: PPUSH
10448: LD_INT 9
10450: PPUSH
10451: LD_EXP 61
10455: PUSH
10456: LD_OWVAR 67
10460: ARRAY
10461: PPUSH
10462: LD_STRING 
10464: PPUSH
10465: CALL 8397 0 4
10469: ADD
10470: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
10471: LD_ADDR_VAR 0 2
10475: PUSH
10476: LD_VAR 0 2
10480: PUSH
10481: CALL 8455 0 0
10485: PPUSH
10486: LD_INT 9
10488: PPUSH
10489: LD_EXP 61
10493: PUSH
10494: LD_OWVAR 67
10498: ARRAY
10499: PPUSH
10500: LD_STRING 
10502: PPUSH
10503: CALL 8397 0 4
10507: ADD
10508: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_bazooker , levelrusi [ difficulty ] ,  ) ;
10509: LD_ADDR_VAR 0 2
10513: PUSH
10514: LD_VAR 0 2
10518: PUSH
10519: CALL 8455 0 0
10523: PPUSH
10524: LD_INT 9
10526: PPUSH
10527: LD_EXP 61
10531: PUSH
10532: LD_OWVAR 67
10536: ARRAY
10537: PPUSH
10538: LD_STRING 
10540: PPUSH
10541: CALL 8397 0 4
10545: ADD
10546: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levelrusi [ difficulty ] ,  ) ;
10547: LD_ADDR_VAR 0 2
10551: PUSH
10552: LD_VAR 0 2
10556: PUSH
10557: CALL 8455 0 0
10561: PPUSH
10562: LD_INT 1
10564: PPUSH
10565: LD_EXP 61
10569: PUSH
10570: LD_OWVAR 67
10574: ARRAY
10575: PPUSH
10576: LD_STRING 
10578: PPUSH
10579: CALL 8397 0 4
10583: ADD
10584: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10585: LD_ADDR_LOC 5
10589: PUSH
10590: CALL 8455 0 0
10594: PPUSH
10595: LD_INT 3
10597: PPUSH
10598: LD_EXP 61
10602: PUSH
10603: LD_OWVAR 67
10607: ARRAY
10608: PPUSH
10609: LD_STRING 
10611: PPUSH
10612: CALL 8397 0 4
10616: ST_TO_ADDR
// vc_control = control_manual ;
10617: LD_ADDR_OWVAR 38
10621: PUSH
10622: LD_INT 1
10624: ST_TO_ADDR
// vc_weapon := zbranrusi [ difficulty ] ;
10625: LD_ADDR_OWVAR 40
10629: PUSH
10630: LD_EXP 63
10634: PUSH
10635: LD_OWVAR 67
10639: ARRAY
10640: ST_TO_ADDR
// vc_chassis = ru_heavy_tracked ;
10641: LD_ADDR_OWVAR 37
10645: PUSH
10646: LD_INT 24
10648: ST_TO_ADDR
// vc_engine = engine_siberite ;
10649: LD_ADDR_OWVAR 39
10653: PUSH
10654: LD_INT 3
10656: ST_TO_ADDR
// av = CreateVehicle ;
10657: LD_ADDR_LOC 6
10661: PUSH
10662: CALL_OW 45
10666: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
10667: LD_LOC 5
10671: PPUSH
10672: LD_LOC 6
10676: PPUSH
10677: CALL_OW 52
// pom = pom ^ av ;
10681: LD_ADDR_VAR 0 2
10685: PUSH
10686: LD_VAR 0 2
10690: PUSH
10691: LD_LOC 6
10695: ADD
10696: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10697: LD_ADDR_LOC 5
10701: PUSH
10702: CALL 8455 0 0
10706: PPUSH
10707: LD_INT 3
10709: PPUSH
10710: LD_EXP 61
10714: PUSH
10715: LD_OWVAR 67
10719: ARRAY
10720: PPUSH
10721: LD_STRING 
10723: PPUSH
10724: CALL 8397 0 4
10728: ST_TO_ADDR
// av = CreateVehicle ;
10729: LD_ADDR_LOC 6
10733: PUSH
10734: CALL_OW 45
10738: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
10739: LD_LOC 5
10743: PPUSH
10744: LD_LOC 6
10748: PPUSH
10749: CALL_OW 52
// pom = pom ^ av ;
10753: LD_ADDR_VAR 0 2
10757: PUSH
10758: LD_VAR 0 2
10762: PUSH
10763: LD_LOC 6
10767: ADD
10768: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10769: LD_ADDR_LOC 5
10773: PUSH
10774: CALL 8455 0 0
10778: PPUSH
10779: LD_INT 3
10781: PPUSH
10782: LD_EXP 61
10786: PUSH
10787: LD_OWVAR 67
10791: ARRAY
10792: PPUSH
10793: LD_STRING 
10795: PPUSH
10796: CALL 8397 0 4
10800: ST_TO_ADDR
// av = CreateVehicle ;
10801: LD_ADDR_LOC 6
10805: PUSH
10806: CALL_OW 45
10810: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
10811: LD_LOC 5
10815: PPUSH
10816: LD_LOC 6
10820: PPUSH
10821: CALL_OW 52
// pom = pom ^ av ;
10825: LD_ADDR_VAR 0 2
10829: PUSH
10830: LD_VAR 0 2
10834: PUSH
10835: LD_LOC 6
10839: ADD
10840: ST_TO_ADDR
// if pom > 1 then
10841: LD_VAR 0 2
10845: PUSH
10846: LD_INT 1
10848: GREATER
10849: IFFALSE 10923
// begin ah = get_human ( get_sex , class_mechanic , levelrusi [ difficulty ] ,  ) ;
10851: LD_ADDR_LOC 5
10855: PUSH
10856: CALL 8455 0 0
10860: PPUSH
10861: LD_INT 3
10863: PPUSH
10864: LD_EXP 61
10868: PUSH
10869: LD_OWVAR 67
10873: ARRAY
10874: PPUSH
10875: LD_STRING 
10877: PPUSH
10878: CALL 8397 0 4
10882: ST_TO_ADDR
// av = CreateVehicle ;
10883: LD_ADDR_LOC 6
10887: PUSH
10888: CALL_OW 45
10892: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
10893: LD_LOC 5
10897: PPUSH
10898: LD_LOC 6
10902: PPUSH
10903: CALL_OW 52
// pom = pom ^ av ;
10907: LD_ADDR_VAR 0 2
10911: PUSH
10912: LD_VAR 0 2
10916: PUSH
10917: LD_LOC 6
10921: ADD
10922: ST_TO_ADDR
// end ; vc_weapon = ru_rocket ;
10923: LD_ADDR_OWVAR 40
10927: PUSH
10928: LD_INT 47
10930: ST_TO_ADDR
// vc_control = control_computer ;
10931: LD_ADDR_OWVAR 38
10935: PUSH
10936: LD_INT 3
10938: ST_TO_ADDR
// av = CreateVehicle ;
10939: LD_ADDR_LOC 6
10943: PUSH
10944: CALL_OW 45
10948: ST_TO_ADDR
// pom = pom ^ av ;
10949: LD_ADDR_VAR 0 2
10953: PUSH
10954: LD_VAR 0 2
10958: PUSH
10959: LD_LOC 6
10963: ADD
10964: ST_TO_ADDR
// if pom > 1 then
10965: LD_VAR 0 2
10969: PUSH
10970: LD_INT 1
10972: GREATER
10973: IFFALSE 11027
// begin av = CreateVehicle ;
10975: LD_ADDR_LOC 6
10979: PUSH
10980: CALL_OW 45
10984: ST_TO_ADDR
// pom = pom ^ av ;
10985: LD_ADDR_VAR 0 2
10989: PUSH
10990: LD_VAR 0 2
10994: PUSH
10995: LD_LOC 6
10999: ADD
11000: ST_TO_ADDR
// av = CreateVehicle ;
11001: LD_ADDR_LOC 6
11005: PUSH
11006: CALL_OW 45
11010: ST_TO_ADDR
// pom = pom ^ av ;
11011: LD_ADDR_VAR 0 2
11015: PUSH
11016: LD_VAR 0 2
11020: PUSH
11021: LD_LOC 6
11025: ADD
11026: ST_TO_ADDR
// end ; result := pom ;
11027: LD_ADDR_VAR 0 1
11031: PUSH
11032: LD_VAR 0 2
11036: ST_TO_ADDR
// end ; end_of_file
11037: LD_VAR 0 1
11041: RET
// var pom ; var i ; export Dietrich ; export LS ; export tapkal ; export Arabi_Utoci ; var polozil ; var Autok ; var auta ; export UTEKLI_ARABI ; export arabsti_zradci_LIST ; every 0 0$0.5 do
11042: GO 11044
11044: DISABLE
// begin for i := 1 to 22 do
11045: LD_ADDR_LOC 13
11049: PUSH
11050: DOUBLE
11051: LD_INT 1
11053: DEC
11054: ST_TO_ADDR
11055: LD_INT 22
11057: PUSH
11058: FOR_TO
11059: IFFALSE 11068
// disable ( i ) ;
11061: LD_LOC 13
11065: DISABLE_MARKED
11066: GO 11058
11068: POP
11069: POP
// Arabi_utoci = false ;
11070: LD_ADDR_EXP 30
11074: PUSH
11075: LD_INT 0
11077: ST_TO_ADDR
// arabsti_zradci_LIST = [ ] ;
11078: LD_ADDR_EXP 32
11082: PUSH
11083: EMPTY
11084: ST_TO_ADDR
// end ;
11085: END
// every 0 0$1 do
11086: GO 11088
11088: DISABLE
// begin ComEnterUnit ( LS , Ar_lab ) ;
11089: LD_EXP 28
11093: PPUSH
11094: LD_INT 16
11096: PPUSH
11097: CALL_OW 120
// AddComChangeProfession ( LS , class_scientistic ) ;
11101: LD_EXP 28
11105: PPUSH
11106: LD_INT 4
11108: PPUSH
11109: CALL_OW 183
// ComEnterUnit ( tapkal , Ar_bar ) ;
11113: LD_EXP 29
11117: PPUSH
11118: LD_INT 18
11120: PPUSH
11121: CALL_OW 120
// ComEnterUnit ( Dietrich , Ar_bar ) ;
11125: LD_EXP 27
11129: PPUSH
11130: LD_INT 18
11132: PPUSH
11133: CALL_OW 120
// AddComChangeProfession ( Dietrich , class_soldier ) ;
11137: LD_EXP 27
11141: PPUSH
11142: LD_INT 1
11144: PPUSH
11145: CALL_OW 183
// pom = FilterAllUnits ( [ [ f_side , Arabi ] , [ f_type , unit_human ] ] ) diff [ LS , Dietrich ] ;
11149: LD_ADDR_LOC 12
11153: PUSH
11154: LD_INT 22
11156: PUSH
11157: LD_EXP 1
11161: PUSH
11162: EMPTY
11163: LIST
11164: LIST
11165: PUSH
11166: LD_INT 21
11168: PUSH
11169: LD_INT 1
11171: PUSH
11172: EMPTY
11173: LIST
11174: LIST
11175: PUSH
11176: EMPTY
11177: LIST
11178: LIST
11179: PPUSH
11180: CALL_OW 69
11184: PUSH
11185: LD_EXP 28
11189: PUSH
11190: LD_EXP 27
11194: PUSH
11195: EMPTY
11196: LIST
11197: LIST
11198: DIFF
11199: ST_TO_ADDR
// if pom > 0 then
11200: LD_LOC 12
11204: PUSH
11205: LD_INT 0
11207: GREATER
11208: IFFALSE 11262
// begin ComEnterUnit ( pom [ 1 ] , Ar_lab ) ;
11210: LD_LOC 12
11214: PUSH
11215: LD_INT 1
11217: ARRAY
11218: PPUSH
11219: LD_INT 16
11221: PPUSH
11222: CALL_OW 120
// AddComChangeProfession ( pom [ 1 ] , class_scientistic ) ;
11226: LD_LOC 12
11230: PUSH
11231: LD_INT 1
11233: ARRAY
11234: PPUSH
11235: LD_INT 4
11237: PPUSH
11238: CALL_OW 183
// pom = pom diff pom [ 1 ] ;
11242: LD_ADDR_LOC 12
11246: PUSH
11247: LD_LOC 12
11251: PUSH
11252: LD_LOC 12
11256: PUSH
11257: LD_INT 1
11259: ARRAY
11260: DIFF
11261: ST_TO_ADDR
// end ; if pom > 0 then
11262: LD_LOC 12
11266: PUSH
11267: LD_INT 0
11269: GREATER
11270: IFFALSE 11324
// begin ComEnterUnit ( pom [ 1 ] , Ar_bar ) ;
11272: LD_LOC 12
11276: PUSH
11277: LD_INT 1
11279: ARRAY
11280: PPUSH
11281: LD_INT 18
11283: PPUSH
11284: CALL_OW 120
// AddComChangeProfession ( pom [ 1 ] , class_soldier ) ;
11288: LD_LOC 12
11292: PUSH
11293: LD_INT 1
11295: ARRAY
11296: PPUSH
11297: LD_INT 1
11299: PPUSH
11300: CALL_OW 183
// pom = pom diff pom [ 1 ] ;
11304: LD_ADDR_LOC 12
11308: PUSH
11309: LD_LOC 12
11313: PUSH
11314: LD_LOC 12
11318: PUSH
11319: LD_INT 1
11321: ARRAY
11322: DIFF
11323: ST_TO_ADDR
// end ; if pom > 0 then
11324: LD_LOC 12
11328: PUSH
11329: LD_INT 0
11331: GREATER
11332: IFFALSE 11358
// begin ComEnterUnit ( pom , Ar_dep ) ;
11334: LD_LOC 12
11338: PPUSH
11339: LD_INT 15
11341: PPUSH
11342: CALL_OW 120
// AddComChangeProfession ( pom , class_engineer ) ;
11346: LD_LOC 12
11350: PPUSH
11351: LD_INT 2
11353: PPUSH
11354: CALL_OW 183
// end ; AddCargo ( auto1 , mat_siberit , 20 ) ;
11358: LD_INT 20
11360: PPUSH
11361: LD_INT 3
11363: PPUSH
11364: LD_INT 20
11366: PPUSH
11367: CALL_OW 291
// AddCargo ( auto1 , mat_oil , 30 ) ;
11371: LD_INT 20
11373: PPUSH
11374: LD_INT 2
11376: PPUSH
11377: LD_INT 30
11379: PPUSH
11380: CALL_OW 291
// AddCargo ( auto2 , mat_cans , 40 ) ;
11384: LD_INT 21
11386: PPUSH
11387: LD_INT 1
11389: PPUSH
11390: LD_INT 40
11392: PPUSH
11393: CALL_OW 291
// AddCargo ( auto2 , mat_oil , 40 ) ;
11397: LD_INT 21
11399: PPUSH
11400: LD_INT 2
11402: PPUSH
11403: LD_INT 40
11405: PPUSH
11406: CALL_OW 291
// end ;
11410: END
// every 0 0$1 trigger Arabi_utoci = true do var arabi_v_zakladne ; var pp ; var un ;
11411: LD_EXP 30
11415: PUSH
11416: LD_INT 1
11418: EQUAL
11419: IFFALSE 11932
11421: GO 11423
11423: DISABLE
11424: LD_INT 0
11426: PPUSH
11427: PPUSH
11428: PPUSH
// begin Dial = 5 ;
11429: LD_ADDR_EXP 40
11433: PUSH
11434: LD_INT 5
11436: ST_TO_ADDR
// arabi_v_zakladne = FilterAllUnits ( [ [ f_side , Arabi ] , [ f_type , unit_human ] ] ) ;
11437: LD_ADDR_VAR 0 1
11441: PUSH
11442: LD_INT 22
11444: PUSH
11445: LD_EXP 1
11449: PUSH
11450: EMPTY
11451: LIST
11452: LIST
11453: PUSH
11454: LD_INT 21
11456: PUSH
11457: LD_INT 1
11459: PUSH
11460: EMPTY
11461: LIST
11462: LIST
11463: PUSH
11464: EMPTY
11465: LIST
11466: LIST
11467: PPUSH
11468: CALL_OW 69
11472: ST_TO_ADDR
// arabsti_zradci_LIST = arabi_v_zakladne ;
11473: LD_ADDR_EXP 32
11477: PUSH
11478: LD_VAR 0 1
11482: ST_TO_ADDR
// ComExitBuilding ( arabi_v_zakladne ) ;
11483: LD_VAR 0 1
11487: PPUSH
11488: CALL_OW 122
// AddComEnterUnit ( arabi_v_zakladne , Ar_bar ) ;
11492: LD_VAR 0 1
11496: PPUSH
11497: LD_INT 18
11499: PPUSH
11500: CALL_OW 180
// AddComChangeProfession ( arabi_v_zakladne diff LS , class_mortar ) ;
11504: LD_VAR 0 1
11508: PUSH
11509: LD_EXP 28
11513: DIFF
11514: PPUSH
11515: LD_INT 8
11517: PPUSH
11518: CALL_OW 183
// AddComExitBuilding ( arabi_v_zakladne ) ;
11522: LD_VAR 0 1
11526: PPUSH
11527: CALL_OW 182
// AddComMoveXY ( arabi_v_zakladne , 76 , 20 ) ;
11531: LD_VAR 0 1
11535: PPUSH
11536: LD_INT 76
11538: PPUSH
11539: LD_INT 20
11541: PPUSH
11542: CALL_OW 171
// wait ( 0 0$3 ) ;
11546: LD_INT 105
11548: PPUSH
11549: CALL_OW 67
// prebarvi_araby ( arabi_v_zakladne ) ;
11553: LD_VAR 0 1
11557: PPUSH
11558: CALL 12336 0 1
// AddComMoveXY ( arabi_v_zakladne , 86 , 12 ) ;
11562: LD_VAR 0 1
11566: PPUSH
11567: LD_INT 86
11569: PPUSH
11570: LD_INT 12
11572: PPUSH
11573: CALL_OW 171
// wait ( cekani_zradnych_arabu_pred_utokem ) ;
11577: LD_EXP 71
11581: PPUSH
11582: CALL_OW 67
// enable ( 20 ) ;
11586: LD_INT 20
11588: ENABLE_MARKED
// wait ( cas_druzi_arabaci ) ;
11589: LD_EXP 72
11593: PPUSH
11594: CALL_OW 67
// create_ar_zradu ;
11598: CALL 6951 0 0
// Autok = FilterAllUnits ( [ [ f_side , Arabi2 ] ] ) ;
11602: LD_ADDR_LOC 15
11606: PUSH
11607: LD_INT 22
11609: PUSH
11610: LD_EXP 4
11614: PUSH
11615: EMPTY
11616: LIST
11617: LIST
11618: PUSH
11619: EMPTY
11620: LIST
11621: PPUSH
11622: CALL_OW 69
11626: ST_TO_ADDR
// ComAgressiveMove ( Autok , 104 , 25 ) ;
11627: LD_LOC 15
11631: PPUSH
11632: LD_INT 104
11634: PPUSH
11635: LD_INT 25
11637: PPUSH
11638: CALL_OW 114
// AddComAgressiveMove ( Autok , 99 , 36 ) ;
11642: LD_LOC 15
11646: PPUSH
11647: LD_INT 99
11649: PPUSH
11650: LD_INT 36
11652: PPUSH
11653: CALL_OW 174
// pp = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
11657: LD_ADDR_VAR 0 2
11661: PUSH
11662: LD_INT 22
11664: PUSH
11665: LD_EXP 3
11669: PUSH
11670: EMPTY
11671: LIST
11672: LIST
11673: PUSH
11674: LD_INT 2
11676: PUSH
11677: LD_INT 30
11679: PUSH
11680: LD_INT 0
11682: PUSH
11683: EMPTY
11684: LIST
11685: LIST
11686: PUSH
11687: LD_INT 30
11689: PUSH
11690: LD_INT 1
11692: PUSH
11693: EMPTY
11694: LIST
11695: LIST
11696: PUSH
11697: EMPTY
11698: LIST
11699: LIST
11700: LIST
11701: PUSH
11702: EMPTY
11703: LIST
11704: LIST
11705: PPUSH
11706: CALL_OW 69
11710: ST_TO_ADDR
// if pp > 0 then
11711: LD_VAR 0 2
11715: PUSH
11716: LD_INT 0
11718: GREATER
11719: IFFALSE 11758
// AddComAgressiveMove ( Autok , GetX ( pp [ 1 ] ) , GetY ( pp [ 1 ] ) ) ;
11721: LD_LOC 15
11725: PPUSH
11726: LD_VAR 0 2
11730: PUSH
11731: LD_INT 1
11733: ARRAY
11734: PPUSH
11735: CALL_OW 250
11739: PPUSH
11740: LD_VAR 0 2
11744: PUSH
11745: LD_INT 1
11747: ARRAY
11748: PPUSH
11749: CALL_OW 251
11753: PPUSH
11754: CALL_OW 174
// pp = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_building ] ] ) ;
11758: LD_ADDR_VAR 0 2
11762: PUSH
11763: LD_INT 22
11765: PUSH
11766: LD_EXP 3
11770: PUSH
11771: EMPTY
11772: LIST
11773: LIST
11774: PUSH
11775: LD_INT 21
11777: PUSH
11778: LD_INT 3
11780: PUSH
11781: EMPTY
11782: LIST
11783: LIST
11784: PUSH
11785: EMPTY
11786: LIST
11787: LIST
11788: PPUSH
11789: CALL_OW 69
11793: ST_TO_ADDR
// if pp > 0 then
11794: LD_VAR 0 2
11798: PUSH
11799: LD_INT 0
11801: GREATER
11802: IFFALSE 11932
// begin un = NearestUnitToUnit ( tapkal , pp ) ;
11804: LD_ADDR_VAR 0 3
11808: PUSH
11809: LD_EXP 29
11813: PPUSH
11814: LD_VAR 0 2
11818: PPUSH
11819: CALL_OW 74
11823: ST_TO_ADDR
// ComExitBuilding ( tapkal ) ;
11824: LD_EXP 29
11828: PPUSH
11829: CALL_OW 122
// AddComPlaceRemoteCharge ( tapkal , 0 , 0 , un ) ;
11833: LD_EXP 29
11837: PPUSH
11838: LD_INT 0
11840: PPUSH
11841: LD_INT 0
11843: PPUSH
11844: LD_VAR 0 3
11848: PPUSH
11849: CALL_OW 193
// AddComPlaceDelayedCharge ( tapkal , GetX ( un ) + 1 , GetY ( un ) + 1 , 0 ) ;
11853: LD_EXP 29
11857: PPUSH
11858: LD_VAR 0 3
11862: PPUSH
11863: CALL_OW 250
11867: PUSH
11868: LD_INT 1
11870: PLUS
11871: PPUSH
11872: LD_VAR 0 3
11876: PPUSH
11877: CALL_OW 251
11881: PUSH
11882: LD_INT 1
11884: PLUS
11885: PPUSH
11886: LD_INT 0
11888: PPUSH
11889: CALL_OW 192
// AddComMoveXY ( tapkal , 78 , 10 ) ;
11893: LD_EXP 29
11897: PPUSH
11898: LD_INT 78
11900: PPUSH
11901: LD_INT 10
11903: PPUSH
11904: CALL_OW 171
// AddComFireExplosives ( tapkal ) ;
11908: LD_EXP 29
11912: PPUSH
11913: CALL_OW 194
// AddComAgressiveMove ( tapkal , 128 , 19 ) ;
11917: LD_EXP 29
11921: PPUSH
11922: LD_INT 128
11924: PPUSH
11925: LD_INT 19
11927: PPUSH
11928: CALL_OW 174
// end ; end ;
11932: PPOPN 3
11934: END
// every 0 0$4 marked 20 do var pomarabi ;
11935: GO 11937
11937: DISABLE
11938: LD_INT 0
11940: PPUSH
// begin if FilterUnitsInArea ( Mortari , [ [ f_side , Arabi3 ] ] ) > 0 then
11941: LD_INT 27
11943: PPUSH
11944: LD_INT 22
11946: PUSH
11947: LD_EXP 7
11951: PUSH
11952: EMPTY
11953: LIST
11954: LIST
11955: PUSH
11956: EMPTY
11957: LIST
11958: PPUSH
11959: CALL_OW 70
11963: PUSH
11964: LD_INT 0
11966: GREATER
11967: IFFALSE 12021
// begin wait ( 0 0$25 ) ;
11969: LD_INT 875
11971: PPUSH
11972: CALL_OW 67
// enable ( 21 ) ;
11976: LD_INT 21
11978: ENABLE_MARKED
// pomarabi = FilterAllUnits ( [ [ f_side , Arabi3 ] ] ) ;
11979: LD_ADDR_VAR 0 1
11983: PUSH
11984: LD_INT 22
11986: PUSH
11987: LD_EXP 7
11991: PUSH
11992: EMPTY
11993: LIST
11994: LIST
11995: PUSH
11996: EMPTY
11997: LIST
11998: PPUSH
11999: CALL_OW 69
12003: ST_TO_ADDR
// AddComMoveXY ( pomarabi , 129 , 20 ) ;
12004: LD_VAR 0 1
12008: PPUSH
12009: LD_INT 129
12011: PPUSH
12012: LD_INT 20
12014: PPUSH
12015: CALL_OW 171
// end else
12019: GO 12022
// enable ;
12021: ENABLE
// end ;
12022: PPOPN 1
12024: END
// every 0 0$1 marked 21 do
12025: GO 12027
12027: DISABLE
// begin pom = FilterUnitsInArea ( REUTEK , [ [ f_side , Arabi3 ] ] ) ;
12028: LD_ADDR_LOC 12
12032: PUSH
12033: LD_INT 28
12035: PPUSH
12036: LD_INT 22
12038: PUSH
12039: LD_EXP 7
12043: PUSH
12044: EMPTY
12045: LIST
12046: LIST
12047: PUSH
12048: EMPTY
12049: LIST
12050: PPUSH
12051: CALL_OW 70
12055: ST_TO_ADDR
// if pom > 0 then
12056: LD_LOC 12
12060: PUSH
12061: LD_INT 0
12063: GREATER
12064: IFFALSE 12093
// begin RemoveUnit ( pom [ 1 ] ) ;
12066: LD_LOC 12
12070: PUSH
12071: LD_INT 1
12073: ARRAY
12074: PPUSH
12075: CALL_OW 64
// UTEKLI_ARABI := UTEKLI_ARABI + 1 ;
12079: LD_ADDR_EXP 31
12083: PUSH
12084: LD_EXP 31
12088: PUSH
12089: LD_INT 1
12091: PLUS
12092: ST_TO_ADDR
// end ; enable ;
12093: ENABLE
// end ;
12094: END
// every 0 0$20 do
12095: GO 12097
12097: DISABLE
// begin if GetSide ( Ar_lab ) <> Arabi then
12098: LD_INT 16
12100: PPUSH
12101: CALL_OW 255
12105: PUSH
12106: LD_EXP 1
12110: NONEQUAL
12111: IFFALSE 12115
// exit ;
12113: GO 12151
// pom = UnitsInside ( Ar_lab ) ;
12115: LD_ADDR_LOC 12
12119: PUSH
12120: LD_INT 16
12122: PPUSH
12123: CALL_OW 313
12127: ST_TO_ADDR
// if pom > 0 then
12128: LD_LOC 12
12132: PUSH
12133: LD_INT 0
12135: GREATER
12136: IFFALSE 12150
// ComResearch ( Ar_lab , tech_Sib1 ) else
12138: LD_INT 16
12140: PPUSH
12141: LD_INT 54
12143: PPUSH
12144: CALL_OW 124
12148: GO 12151
// enable ;
12150: ENABLE
// end ;
12151: END
// every 0 0$45 trigger GetTech ( tech_Sib1 , Arabi ) = state_researched do
12152: LD_INT 54
12154: PPUSH
12155: LD_EXP 1
12159: PPUSH
12160: CALL_OW 321
12164: PUSH
12165: LD_INT 2
12167: EQUAL
12168: IFFALSE 12207
12170: GO 12172
12172: DISABLE
// begin wait ( 1 1$0 ) ;
12173: LD_INT 2100
12175: PPUSH
12176: CALL_OW 67
// if GetSide ( Ar_lab ) <> Arabi then
12180: LD_INT 16
12182: PPUSH
12183: CALL_OW 255
12187: PUSH
12188: LD_EXP 1
12192: NONEQUAL
12193: IFFALSE 12197
// exit ;
12195: GO 12207
// ComResearch ( Ar_lab , tech_Sib2 ) ;
12197: LD_INT 16
12199: PPUSH
12200: LD_INT 55
12202: PPUSH
12203: CALL_OW 124
// end ;
12207: END
// every 0 0$43 trigger GetTech ( tech_Sib2 , Arabi ) = state_researched do
12208: LD_INT 55
12210: PPUSH
12211: LD_EXP 1
12215: PPUSH
12216: CALL_OW 321
12220: PUSH
12221: LD_INT 2
12223: EQUAL
12224: IFFALSE 12278
12226: GO 12228
12228: DISABLE
// begin wait ( 1 1$0 ) ;
12229: LD_INT 2100
12231: PPUSH
12232: CALL_OW 67
// if GetSide ( Ar_lab ) <> Arabi then
12236: LD_INT 16
12238: PPUSH
12239: CALL_OW 255
12243: PUSH
12244: LD_EXP 1
12248: NONEQUAL
12249: IFFALSE 12253
// exit ;
12251: GO 12278
// SetTech ( tech_Sib3 , Arabi , state_enabled ) ;
12253: LD_INT 56
12255: PPUSH
12256: LD_EXP 1
12260: PPUSH
12261: LD_INT 1
12263: PPUSH
12264: CALL_OW 322
// ComResearch ( Ar_lab , tech_Sib3 ) ;
12268: LD_INT 16
12270: PPUSH
12271: LD_INT 56
12273: PPUSH
12274: CALL_OW 124
// end ;
12278: END
// every 0 0$13 trigger GetTech ( tech_Sib1 , You ) = state_researched do
12279: LD_INT 54
12281: PPUSH
12282: LD_EXP 3
12286: PPUSH
12287: CALL_OW 321
12291: PUSH
12292: LD_INT 2
12294: EQUAL
12295: IFFALSE 12308
12297: GO 12299
12299: DISABLE
// begin arabi_utoci = true ;
12300: LD_ADDR_EXP 30
12304: PUSH
12305: LD_INT 1
12307: ST_TO_ADDR
// end ;
12308: END
// every 0 0$1 do
12309: GO 12311
12311: DISABLE
// begin wait ( arabsky_utok_prichod [ difficulty ] ) ;
12312: LD_EXP 81
12316: PUSH
12317: LD_OWVAR 67
12321: ARRAY
12322: PPUSH
12323: CALL_OW 67
// Arabi_utoci = true ;
12327: LD_ADDR_EXP 30
12331: PUSH
12332: LD_INT 1
12334: ST_TO_ADDR
// end ;
12335: END
// function prebarvi_Araby ( people ) ; var i ; var poc ; begin
12336: LD_INT 0
12338: PPUSH
12339: PPUSH
12340: PPUSH
// poc = 0 ;
12341: LD_ADDR_VAR 0 4
12345: PUSH
12346: LD_INT 0
12348: ST_TO_ADDR
// while FilterUnitsExceptArea ( APU , [ [ f_side , Arabi ] , [ f_type , unit_human ] ] ) > 0 and poc < 8 do
12349: LD_INT 32
12351: PPUSH
12352: LD_INT 22
12354: PUSH
12355: LD_EXP 1
12359: PUSH
12360: EMPTY
12361: LIST
12362: LIST
12363: PUSH
12364: LD_INT 21
12366: PUSH
12367: LD_INT 1
12369: PUSH
12370: EMPTY
12371: LIST
12372: LIST
12373: PUSH
12374: EMPTY
12375: LIST
12376: LIST
12377: PPUSH
12378: CALL_OW 71
12382: PUSH
12383: LD_INT 0
12385: GREATER
12386: PUSH
12387: LD_VAR 0 4
12391: PUSH
12392: LD_INT 8
12394: LESS
12395: AND
12396: IFFALSE 12421
// begin wait ( 0 0$1 ) ;
12398: LD_INT 35
12400: PPUSH
12401: CALL_OW 67
// poc = poc + 1 ;
12405: LD_ADDR_VAR 0 4
12409: PUSH
12410: LD_VAR 0 4
12414: PUSH
12415: LD_INT 1
12417: PLUS
12418: ST_TO_ADDR
// end ;
12419: GO 12349
// for i in people do
12421: LD_ADDR_VAR 0 3
12425: PUSH
12426: LD_VAR 0 1
12430: PUSH
12431: FOR_IN
12432: IFFALSE 12552
// begin while not ( GetClass ( i ) = class_mortar or i = LS or i = tapkal ) do
12434: LD_VAR 0 3
12438: PPUSH
12439: CALL_OW 257
12443: PUSH
12444: LD_INT 8
12446: EQUAL
12447: PUSH
12448: LD_VAR 0 3
12452: PUSH
12453: LD_EXP 28
12457: EQUAL
12458: OR
12459: PUSH
12460: LD_VAR 0 3
12464: PUSH
12465: LD_EXP 29
12469: EQUAL
12470: OR
12471: NOT
12472: IFFALSE 12507
// begin ComEnterUnit ( i , Ar_bar ) ;
12474: LD_VAR 0 3
12478: PPUSH
12479: LD_INT 18
12481: PPUSH
12482: CALL_OW 120
// AddComChangeProfession ( i , class_mortar ) ;
12486: LD_VAR 0 3
12490: PPUSH
12491: LD_INT 8
12493: PPUSH
12494: CALL_OW 183
// wait ( 0 0$1 ) ;
12498: LD_INT 35
12500: PPUSH
12501: CALL_OW 67
// end ;
12505: GO 12434
// while IsInUnit ( i ) do
12507: LD_VAR 0 3
12511: PPUSH
12512: CALL_OW 310
12516: IFFALSE 12536
// begin wait ( 0 0$1 ) ;
12518: LD_INT 35
12520: PPUSH
12521: CALL_OW 67
// ComExitBuilding ( i ) ;
12525: LD_VAR 0 3
12529: PPUSH
12530: CALL_OW 122
// end ;
12534: GO 12507
// SetSide ( i , Arabi3 ) ;
12536: LD_VAR 0 3
12540: PPUSH
12541: LD_EXP 7
12545: PPUSH
12546: CALL_OW 235
// end ;
12550: GO 12431
12552: POP
12553: POP
// end ;
12554: LD_VAR 0 2
12558: RET
// on VehicleCaptured ( vnew , vold , origside , hum ) do begin if origside = Arabi and Getside ( hum ) = You then
12559: LD_VAR 0 3
12563: PUSH
12564: LD_EXP 1
12568: EQUAL
12569: PUSH
12570: LD_VAR 0 4
12574: PPUSH
12575: CALL_OW 255
12579: PUSH
12580: LD_EXP 3
12584: EQUAL
12585: AND
12586: IFFALSE 12596
// END_ATTACK = true ;
12588: LD_ADDR_EXP 57
12592: PUSH
12593: LD_INT 1
12595: ST_TO_ADDR
// enable ;
12596: ENABLE
// end ;
12597: PPOPN 4
12599: END
// every 4 4$0 trigger not Arabi_utoci do
12600: LD_EXP 30
12604: NOT
12605: IFFALSE 12692
12607: GO 12609
12609: DISABLE
// begin ComExitBuilding ( tapkal ) ;
12610: LD_EXP 29
12614: PPUSH
12615: CALL_OW 122
// AddComMoveXY ( tapkal , 84 , 20 ) ;
12619: LD_EXP 29
12623: PPUSH
12624: LD_INT 84
12626: PPUSH
12627: LD_INT 20
12629: PPUSH
12630: CALL_OW 171
// AddComMoveXY ( tapkal , 108 , 40 ) ;
12634: LD_EXP 29
12638: PPUSH
12639: LD_INT 108
12641: PPUSH
12642: LD_INT 40
12644: PPUSH
12645: CALL_OW 171
// AddComMoveXY ( tapkal , 82 , 36 ) ;
12649: LD_EXP 29
12653: PPUSH
12654: LD_INT 82
12656: PPUSH
12657: LD_INT 36
12659: PPUSH
12660: CALL_OW 171
// AddComMoveXY ( tapkal , 77 , 22 ) ;
12664: LD_EXP 29
12668: PPUSH
12669: LD_INT 77
12671: PPUSH
12672: LD_INT 22
12674: PPUSH
12675: CALL_OW 171
// AddComEnterUnit ( tapkal , Ar_bar ) ;
12679: LD_EXP 29
12683: PPUSH
12684: LD_INT 18
12686: PPUSH
12687: CALL_OW 180
// enable ;
12691: ENABLE
// end ;
12692: END
// every 3 3$50 trigger not Arabi_utoci do
12693: LD_EXP 30
12697: NOT
12698: IFFALSE 12875
12700: GO 12702
12702: DISABLE
// begin ComExitBuilding ( LS ) ;
12703: LD_EXP 28
12707: PPUSH
12708: CALL_OW 122
// AddComMoveXY ( LS , 72 , 23 ) ;
12712: LD_EXP 28
12716: PPUSH
12717: LD_INT 72
12719: PPUSH
12720: LD_INT 23
12722: PPUSH
12723: CALL_OW 171
// AddComWait ( LS , 0 0$3 ) ;
12727: LD_EXP 28
12731: PPUSH
12732: LD_INT 105
12734: PPUSH
12735: CALL_OW 202
// AddComEnterUnit ( LS , Ar_dep ) ;
12739: LD_EXP 28
12743: PPUSH
12744: LD_INT 15
12746: PPUSH
12747: CALL_OW 180
// AddComChangeProfession ( LS , class_engineer ) ;
12751: LD_EXP 28
12755: PPUSH
12756: LD_INT 2
12758: PPUSH
12759: CALL_OW 183
// if Arabi_utoci then
12763: LD_EXP 30
12767: IFFALSE 12771
// exit ;
12769: GO 12875
// Wait ( 0 0$15 ) ;
12771: LD_INT 525
12773: PPUSH
12774: CALL_OW 67
// if Arabi_utoci then
12778: LD_EXP 30
12782: IFFALSE 12786
// exit ;
12784: GO 12875
// ComExitBuilding ( LS ) ;
12786: LD_EXP 28
12790: PPUSH
12791: CALL_OW 122
// AddComEnterUnit ( LS , Ar_bar ) ;
12795: LD_EXP 28
12799: PPUSH
12800: LD_INT 18
12802: PPUSH
12803: CALL_OW 180
// AddComChangeProfession ( LS , class_soldier ) ;
12807: LD_EXP 28
12811: PPUSH
12812: LD_INT 1
12814: PPUSH
12815: CALL_OW 183
// if Arabi_utoci then
12819: LD_EXP 30
12823: IFFALSE 12827
// exit ;
12825: GO 12875
// Wait ( 0 0$20 ) ;
12827: LD_INT 700
12829: PPUSH
12830: CALL_OW 67
// if Arabi_utoci then
12834: LD_EXP 30
12838: IFFALSE 12842
// exit ;
12840: GO 12875
// ComExitBuilding ( LS ) ;
12842: LD_EXP 28
12846: PPUSH
12847: CALL_OW 122
// AddComEnterUnit ( LS , Ar_lab ) ;
12851: LD_EXP 28
12855: PPUSH
12856: LD_INT 16
12858: PPUSH
12859: CALL_OW 180
// AddComChangeProfession ( LS , class_scientistic ) ;
12863: LD_EXP 28
12867: PPUSH
12868: LD_INT 4
12870: PPUSH
12871: CALL_OW 183
// end ; end_of_file
12875: END
// var konvoj ; export Amici_enter ; export Amici_ar ; every 1 1$0 trigger Dial > 0 do
12876: LD_EXP 40
12880: PUSH
12881: LD_INT 0
12883: GREATER
12884: IFFALSE 12926
12886: GO 12888
12888: DISABLE
// begin wait ( Rand ( 1 , 7200 ) ) ;
12889: LD_INT 1
12891: PPUSH
12892: LD_INT 7200
12894: PPUSH
12895: CALL_OW 12
12899: PPUSH
12900: CALL_OW 67
// CreateCratesArea ( Rand ( 3 , 5 ) , Base2 , true ) ;
12904: LD_INT 3
12906: PPUSH
12907: LD_INT 5
12909: PPUSH
12910: CALL_OW 12
12914: PPUSH
12915: LD_INT 13
12917: PPUSH
12918: LD_INT 1
12920: PPUSH
12921: CALL_OW 55
// enable ;
12925: ENABLE
// end ;
12926: END
// every 2 2$0 do
12927: GO 12929
12929: DISABLE
// begin wait ( Rand ( 1 , 7200 ) ) ;
12930: LD_INT 1
12932: PPUSH
12933: LD_INT 7200
12935: PPUSH
12936: CALL_OW 12
12940: PPUSH
12941: CALL_OW 67
// CreateCratesArea ( Rand ( 3 , 5 ) , bedny_ar , true ) ;
12945: LD_INT 3
12947: PPUSH
12948: LD_INT 5
12950: PPUSH
12951: CALL_OW 12
12955: PPUSH
12956: LD_INT 40
12958: PPUSH
12959: LD_INT 1
12961: PPUSH
12962: CALL_OW 55
// enable ;
12966: ENABLE
// end ; end_of_file
12967: END
// export nah ; export RUSI_AUTA ; export PRU_ATTACK ; export EMR ; export stavec ; var Rusi_k ; var VOJUTOK ; var vehicle ; var zo ; var i , pom , pom1 ; var Dbase ; var staveci ; var RA1 ; var R_depot ; var R_mine ; var R_sel ; var R_factory ; var R_turret1 ; var R_lab ; var R_bunkr ; var R_turret2 ; var R_turret3 ; var R_egun ; var R_arm ; var R_ecomp ; var R_etra ; var R_esib ; var R_oel ; var XYS ; var UTOK ; var atway ; var pomnah ; var nahodne_tanku ; var vojaci ; var bazmakro ; every 0 0$0.1 do
12968: GO 12970
12970: DISABLE
// begin for i := 1 to 51 do
12971: LD_ADDR_LOC 22
12975: PUSH
12976: DOUBLE
12977: LD_INT 1
12979: DEC
12980: ST_TO_ADDR
12981: LD_INT 51
12983: PUSH
12984: FOR_TO
12985: IFFALSE 12998
// disable ( 200 + i ) ;
12987: LD_INT 200
12989: PUSH
12990: LD_LOC 22
12994: PLUS
12995: DISABLE_MARKED
12996: GO 12984
12998: POP
12999: POP
// for i in [ 299 , 298 , 297 , 296 , 295 , 289 , 288 , 255 ] do
13000: LD_ADDR_LOC 22
13004: PUSH
13005: LD_INT 299
13007: PUSH
13008: LD_INT 298
13010: PUSH
13011: LD_INT 297
13013: PUSH
13014: LD_INT 296
13016: PUSH
13017: LD_INT 295
13019: PUSH
13020: LD_INT 289
13022: PUSH
13023: LD_INT 288
13025: PUSH
13026: LD_INT 255
13028: PUSH
13029: EMPTY
13030: LIST
13031: LIST
13032: LIST
13033: LIST
13034: LIST
13035: LIST
13036: LIST
13037: LIST
13038: PUSH
13039: FOR_IN
13040: IFFALSE 13049
// disable ( i ) ;
13042: LD_LOC 22
13046: DISABLE_MARKED
13047: GO 13039
13049: POP
13050: POP
// EMR = false ;
13051: LD_ADDR_EXP 38
13055: PUSH
13056: LD_INT 0
13058: ST_TO_ADDR
// end ;
13059: END
// on BuildingComplete ( building ) do begin if building = R_depot then
13060: LD_VAR 0 1
13064: PUSH
13065: LD_LOC 28
13069: EQUAL
13070: IFFALSE 13078
// begin enable ( 203 ) ;
13072: LD_INT 203
13074: ENABLE_MARKED
// enable ( 299 ) ;
13075: LD_INT 299
13077: ENABLE_MARKED
// end ; if building = R_mine then
13078: LD_VAR 0 1
13082: PUSH
13083: LD_LOC 29
13087: EQUAL
13088: IFFALSE 13093
// enable ( 205 ) ;
13090: LD_INT 205
13092: ENABLE_MARKED
// if building = R_sel then
13093: LD_VAR 0 1
13097: PUSH
13098: LD_LOC 30
13102: EQUAL
13103: IFFALSE 13108
// enable ( 207 ) ;
13105: LD_INT 207
13107: ENABLE_MARKED
// if building = R_factory then
13108: LD_VAR 0 1
13112: PUSH
13113: LD_LOC 31
13117: EQUAL
13118: IFFALSE 13123
// enable ( 209 ) ;
13120: LD_INT 209
13122: ENABLE_MARKED
// if building = R_turret1 then
13123: LD_VAR 0 1
13127: PUSH
13128: LD_LOC 32
13132: EQUAL
13133: IFFALSE 13138
// enable ( 214 ) ;
13135: LD_INT 214
13137: ENABLE_MARKED
// if building = R_lab then
13138: LD_VAR 0 1
13142: PUSH
13143: LD_LOC 33
13147: EQUAL
13148: IFFALSE 13153
// enable ( 217 ) ;
13150: LD_INT 217
13152: ENABLE_MARKED
// if building = R_lab then
13153: LD_VAR 0 1
13157: PUSH
13158: LD_LOC 33
13162: EQUAL
13163: IFFALSE 13168
// enable ( 220 ) ;
13165: LD_INT 220
13167: ENABLE_MARKED
// if building = R_egun then
13168: LD_VAR 0 1
13172: PUSH
13173: LD_LOC 37
13177: EQUAL
13178: IFFALSE 13183
// enable ( 224 ) ;
13180: LD_INT 224
13182: ENABLE_MARKED
// if building = R_turret2 then
13183: LD_VAR 0 1
13187: PUSH
13188: LD_LOC 35
13192: EQUAL
13193: IFFALSE 13198
// enable ( 226 ) ;
13195: LD_INT 226
13197: ENABLE_MARKED
// if building = R_turret3 then
13198: LD_VAR 0 1
13202: PUSH
13203: LD_LOC 36
13207: EQUAL
13208: IFFALSE 13213
// enable ( 229 ) ;
13210: LD_INT 229
13212: ENABLE_MARKED
// if building = R_arm then
13213: LD_VAR 0 1
13217: PUSH
13218: LD_LOC 38
13222: EQUAL
13223: IFFALSE 13231
// begin enable ( 232 ) ;
13225: LD_INT 232
13227: ENABLE_MARKED
// enable ( 297 ) ;
13228: LD_INT 297
13230: ENABLE_MARKED
// end ; if building = R_etra then
13231: LD_VAR 0 1
13235: PUSH
13236: LD_LOC 40
13240: EQUAL
13241: IFFALSE 13246
// enable ( 235 ) ;
13243: LD_INT 235
13245: ENABLE_MARKED
// if building = R_ecomp then
13246: LD_VAR 0 1
13250: PUSH
13251: LD_LOC 39
13255: EQUAL
13256: IFFALSE 13261
// enable ( 249 ) ;
13258: LD_INT 249
13260: ENABLE_MARKED
// if building = R_esib then
13261: LD_VAR 0 1
13265: PUSH
13266: LD_LOC 41
13270: EQUAL
13271: IFFALSE 13279
// begin enable ( 237 ) ;
13273: LD_INT 237
13275: ENABLE_MARKED
// enable ( 241 ) ;
13276: LD_INT 241
13278: ENABLE_MARKED
// end ; if building = R_oel then
13279: LD_VAR 0 1
13283: PUSH
13284: LD_LOC 42
13288: EQUAL
13289: IFFALSE 13294
// enable ( 239 ) ;
13291: LD_INT 239
13293: ENABLE_MARKED
// if building = Ambase then
13294: LD_VAR 0 1
13298: PUSH
13299: LD_EXP 51
13303: EQUAL
13304: IFFALSE 13323
// begin Dial := 1 ;
13306: LD_ADDR_EXP 40
13310: PUSH
13311: LD_INT 1
13313: ST_TO_ADDR
// pojmenuj_epsilon ( Ambase ) ;
13314: LD_EXP 51
13318: PPUSH
13319: CALL 34397 0 1
// end ; enable ;
13323: ENABLE
// end ;
13324: PPOPN 1
13326: END
// on UpgradeComplete ( building ) do begin if building = R_depot then
13327: LD_VAR 0 1
13331: PUSH
13332: LD_LOC 28
13336: EQUAL
13337: IFFALSE 13342
// enable ( 210 ) ;
13339: LD_INT 210
13341: ENABLE_MARKED
// if building = R_factory then
13342: LD_VAR 0 1
13346: PUSH
13347: LD_LOC 31
13351: EQUAL
13352: IFFALSE 13357
// enable ( 211 ) ;
13354: LD_INT 211
13356: ENABLE_MARKED
// if building = R_lab then
13357: LD_VAR 0 1
13361: PUSH
13362: LD_LOC 33
13366: EQUAL
13367: IFFALSE 13375
// begin enable ( 222 ) ;
13369: LD_INT 222
13371: ENABLE_MARKED
// enable ( 298 ) ;
13372: LD_INT 298
13374: ENABLE_MARKED
// end ; if building = Amsiblab then
13375: LD_VAR 0 1
13379: PUSH
13380: LD_EXP 53
13384: EQUAL
13385: IFFALSE 13395
// Dial = 3 ;
13387: LD_ADDR_EXP 40
13391: PUSH
13392: LD_INT 3
13394: ST_TO_ADDR
// enable ;
13395: ENABLE
// end ;
13396: PPOPN 1
13398: END
// every 4 4$0 do
13399: GO 13401
13401: DISABLE
// begin case nah of 1 , 2 :
13402: LD_EXP 35
13406: PUSH
13407: LD_INT 1
13409: DOUBLE
13410: EQUAL
13411: IFTRUE 13421
13413: LD_INT 2
13415: DOUBLE
13416: EQUAL
13417: IFTRUE 13421
13419: GO 13437
13421: POP
// CreateDepositXY ( 150 , 80 , mat_oil ) ; 4 :
13422: LD_INT 150
13424: PPUSH
13425: LD_INT 80
13427: PPUSH
13428: LD_INT 2
13430: PPUSH
13431: CALL_OW 62
13435: GO 13486
13437: LD_INT 4
13439: DOUBLE
13440: EQUAL
13441: IFTRUE 13445
13443: GO 13461
13445: POP
// CreateDepositXY ( 91 , 109 , mat_oil ) ; 3 :
13446: LD_INT 91
13448: PPUSH
13449: LD_INT 109
13451: PPUSH
13452: LD_INT 2
13454: PPUSH
13455: CALL_OW 62
13459: GO 13486
13461: LD_INT 3
13463: DOUBLE
13464: EQUAL
13465: IFTRUE 13469
13467: GO 13485
13469: POP
// CreateDepositXY ( 43 , 71 , mat_oil ) ; end ;
13470: LD_INT 43
13472: PPUSH
13473: LD_INT 71
13475: PPUSH
13476: LD_INT 2
13478: PPUSH
13479: CALL_OW 62
13483: GO 13486
13485: POP
// wait ( timerusi [ difficulty ] ) ;
13486: LD_EXP 60
13490: PUSH
13491: LD_OWVAR 67
13495: ARRAY
13496: PPUSH
13497: CALL_OW 67
// case nah of 1 :
13501: LD_EXP 35
13505: PUSH
13506: LD_INT 1
13508: DOUBLE
13509: EQUAL
13510: IFTRUE 13514
13512: GO 13525
13514: POP
// zo = RE1 ; 2 :
13515: LD_ADDR_LOC 21
13519: PUSH
13520: LD_INT 4
13522: ST_TO_ADDR
13523: GO 13583
13525: LD_INT 2
13527: DOUBLE
13528: EQUAL
13529: IFTRUE 13533
13531: GO 13544
13533: POP
// zo = RE2 ; 3 :
13534: LD_ADDR_LOC 21
13538: PUSH
13539: LD_INT 5
13541: ST_TO_ADDR
13542: GO 13583
13544: LD_INT 3
13546: DOUBLE
13547: EQUAL
13548: IFTRUE 13552
13550: GO 13563
13552: POP
// zo = RE3 ; 4 :
13553: LD_ADDR_LOC 21
13557: PUSH
13558: LD_INT 6
13560: ST_TO_ADDR
13561: GO 13583
13563: LD_INT 4
13565: DOUBLE
13566: EQUAL
13567: IFTRUE 13571
13569: GO 13582
13571: POP
// zo = RE4 ; end ;
13572: LD_ADDR_LOC 21
13576: PUSH
13577: LD_INT 7
13579: ST_TO_ADDR
13580: GO 13583
13582: POP
// for i in CREATOVANI_RUSKEHO_KONVOJE_LIST do
13583: LD_ADDR_LOC 22
13587: PUSH
13588: LD_EXP 13
13592: PUSH
13593: FOR_IN
13594: IFFALSE 13615
// PlaceUnitArea ( i , zo , false ) ;
13596: LD_LOC 22
13600: PPUSH
13601: LD_LOC 21
13605: PPUSH
13606: LD_INT 0
13608: PPUSH
13609: CALL_OW 49
13613: GO 13593
13615: POP
13616: POP
// Rusi_k := FilterUnitsInArea ( zo , [ [ f_side , Rusi ] ] ) ;
13617: LD_ADDR_LOC 18
13621: PUSH
13622: LD_LOC 21
13626: PPUSH
13627: LD_INT 22
13629: PUSH
13630: LD_EXP 2
13634: PUSH
13635: EMPTY
13636: LIST
13637: LIST
13638: PUSH
13639: EMPTY
13640: LIST
13641: PPUSH
13642: CALL_OW 70
13646: ST_TO_ADDR
// if nah < 3 then
13647: LD_EXP 35
13651: PUSH
13652: LD_INT 3
13654: LESS
13655: IFFALSE 13672
// ComAgressiveMove ( Rusi_k , 145 , 69 ) ;
13657: LD_LOC 18
13661: PPUSH
13662: LD_INT 145
13664: PPUSH
13665: LD_INT 69
13667: PPUSH
13668: CALL_OW 114
// if nah = 3 then
13672: LD_EXP 35
13676: PUSH
13677: LD_INT 3
13679: EQUAL
13680: IFFALSE 13697
// ComAgressiveMove ( Rusi_k , 52 , 81 ) ;
13682: LD_LOC 18
13686: PPUSH
13687: LD_INT 52
13689: PPUSH
13690: LD_INT 81
13692: PPUSH
13693: CALL_OW 114
// if nah = 4 then
13697: LD_EXP 35
13701: PUSH
13702: LD_INT 4
13704: EQUAL
13705: IFFALSE 13722
// ComAgressiveMove ( Rusi_k , 93 , 99 ) ;
13707: LD_LOC 18
13711: PPUSH
13712: LD_INT 93
13714: PPUSH
13715: LD_INT 99
13717: PPUSH
13718: CALL_OW 114
// if nah = 1 then
13722: LD_EXP 35
13726: PUSH
13727: LD_INT 1
13729: EQUAL
13730: IFFALSE 13740
// zo = RZ1 ;
13732: LD_ADDR_LOC 21
13736: PUSH
13737: LD_INT 8
13739: ST_TO_ADDR
// if nah = 2 then
13740: LD_EXP 35
13744: PUSH
13745: LD_INT 2
13747: EQUAL
13748: IFFALSE 13758
// zo = RZ1 ;
13750: LD_ADDR_LOC 21
13754: PUSH
13755: LD_INT 8
13757: ST_TO_ADDR
// if nah = 3 then
13758: LD_EXP 35
13762: PUSH
13763: LD_INT 3
13765: EQUAL
13766: IFFALSE 13776
// zo = RZ3 ;
13768: LD_ADDR_LOC 21
13772: PUSH
13773: LD_INT 10
13775: ST_TO_ADDR
// if nah = 4 then
13776: LD_EXP 35
13780: PUSH
13781: LD_INT 4
13783: EQUAL
13784: IFFALSE 13794
// zo = RZ2 ;
13786: LD_ADDR_LOC 21
13790: PUSH
13791: LD_INT 9
13793: ST_TO_ADDR
// enable ( 201 ) ;
13794: LD_INT 201
13796: ENABLE_MARKED
// enable ( 248 ) ;
13797: LD_INT 248
13799: ENABLE_MARKED
// RUSI_AUTA := 1 ;
13800: LD_ADDR_EXP 36
13804: PUSH
13805: LD_INT 1
13807: ST_TO_ADDR
// end ;
13808: END
// every 0 0$4 trigger FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_class , class_engineer ] ] ) > 0 marked 201 do
13809: LD_LOC 21
13813: PPUSH
13814: LD_INT 22
13816: PUSH
13817: LD_EXP 2
13821: PUSH
13822: EMPTY
13823: LIST
13824: LIST
13825: PUSH
13826: LD_INT 1
13828: PUSH
13829: EMPTY
13830: LIST
13831: PUSH
13832: LD_INT 25
13834: PUSH
13835: LD_INT 2
13837: PUSH
13838: EMPTY
13839: LIST
13840: LIST
13841: PUSH
13842: EMPTY
13843: LIST
13844: LIST
13845: LIST
13846: PPUSH
13847: CALL_OW 70
13851: PUSH
13852: LD_INT 0
13854: GREATER
13855: IFFALSE 13950
13857: GO 13859
13859: DISABLE
// begin staveci := FilterAllUnits ( [ [ f_side , Rusi ] , [ f_class , class_engineer ] ] ) ;
13860: LD_ADDR_LOC 26
13864: PUSH
13865: LD_INT 22
13867: PUSH
13868: LD_EXP 2
13872: PUSH
13873: EMPTY
13874: LIST
13875: LIST
13876: PUSH
13877: LD_INT 25
13879: PUSH
13880: LD_INT 2
13882: PUSH
13883: EMPTY
13884: LIST
13885: LIST
13886: PUSH
13887: EMPTY
13888: LIST
13889: LIST
13890: PPUSH
13891: CALL_OW 69
13895: ST_TO_ADDR
// SetXYS ( nah , 1 ) ;
13896: LD_EXP 35
13900: PPUSH
13901: LD_INT 1
13903: PPUSH
13904: CALL 18399 0 2
// AddComBuild ( staveci , b_depot , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
13908: LD_LOC 26
13912: PPUSH
13913: LD_INT 0
13915: PPUSH
13916: LD_LOC 43
13920: PUSH
13921: LD_INT 1
13923: ARRAY
13924: PPUSH
13925: LD_LOC 43
13929: PUSH
13930: LD_INT 2
13932: ARRAY
13933: PPUSH
13934: LD_LOC 43
13938: PUSH
13939: LD_INT 3
13941: ARRAY
13942: PPUSH
13943: CALL_OW 205
// enable ( 202 ) ;
13947: LD_INT 202
13949: ENABLE_MARKED
// end ;
13950: END
// every 0 0$5 marked 202 do
13951: GO 13953
13953: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_depot ] ] ) ;
13954: LD_ADDR_LOC 23
13958: PUSH
13959: LD_LOC 21
13963: PPUSH
13964: LD_INT 22
13966: PUSH
13967: LD_EXP 2
13971: PUSH
13972: EMPTY
13973: LIST
13974: LIST
13975: PUSH
13976: LD_INT 1
13978: PUSH
13979: EMPTY
13980: LIST
13981: PUSH
13982: LD_INT 30
13984: PUSH
13985: LD_INT 0
13987: PUSH
13988: EMPTY
13989: LIST
13990: LIST
13991: PUSH
13992: EMPTY
13993: LIST
13994: LIST
13995: LIST
13996: PPUSH
13997: CALL_OW 70
14001: ST_TO_ADDR
// if pom = 0 then
14002: LD_LOC 23
14006: PUSH
14007: LD_INT 0
14009: EQUAL
14010: IFFALSE 14066
// begin SetXYS ( nah , 1 ) ;
14012: LD_EXP 35
14016: PPUSH
14017: LD_INT 1
14019: PPUSH
14020: CALL 18399 0 2
// AddComBuild ( staveci , b_depot , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14024: LD_LOC 26
14028: PPUSH
14029: LD_INT 0
14031: PPUSH
14032: LD_LOC 43
14036: PUSH
14037: LD_INT 1
14039: ARRAY
14040: PPUSH
14041: LD_LOC 43
14045: PUSH
14046: LD_INT 2
14048: ARRAY
14049: PPUSH
14050: LD_LOC 43
14054: PUSH
14055: LD_INT 3
14057: ARRAY
14058: PPUSH
14059: CALL_OW 205
// enable ;
14063: ENABLE
// end else
14064: GO 14096
// begin R_depot = pom [ 1 ] ;
14066: LD_ADDR_LOC 28
14070: PUSH
14071: LD_LOC 23
14075: PUSH
14076: LD_INT 1
14078: ARRAY
14079: ST_TO_ADDR
// rus_cheat_source ( 300 , 50 , 0 ) ;
14080: LD_INT 300
14082: PPUSH
14083: LD_INT 50
14085: PPUSH
14086: LD_INT 0
14088: PPUSH
14089: CALL 14097 0 3
// enable ( 107 ) ;
14093: LD_INT 107
14095: ENABLE_MARKED
// end ; end ;
14096: END
// function rus_cheat_source ( cans , oil , siberite ) ; begin
14097: LD_INT 0
14099: PPUSH
// if GetSide ( R_depot ) <> Rusi then
14100: LD_LOC 28
14104: PPUSH
14105: CALL_OW 255
14109: PUSH
14110: LD_EXP 2
14114: NONEQUAL
14115: IFFALSE 14119
// exit ;
14117: GO 14185
// Dbase = GetBase ( R_depot ) ;
14119: LD_ADDR_LOC 25
14123: PUSH
14124: LD_LOC 28
14128: PPUSH
14129: CALL_OW 274
14133: ST_TO_ADDR
// AddResourceType ( Dbase , mat_cans , cans ) ;
14134: LD_LOC 25
14138: PPUSH
14139: LD_INT 1
14141: PPUSH
14142: LD_VAR 0 1
14146: PPUSH
14147: CALL_OW 276
// AddResourceType ( Dbase , mat_oil , oil ) ;
14151: LD_LOC 25
14155: PPUSH
14156: LD_INT 2
14158: PPUSH
14159: LD_VAR 0 2
14163: PPUSH
14164: CALL_OW 276
// AddResourceType ( Dbase , mat_siberit , siberite ) ;
14168: LD_LOC 25
14172: PPUSH
14173: LD_INT 3
14175: PPUSH
14176: LD_VAR 0 3
14180: PPUSH
14181: CALL_OW 276
// end ;
14185: LD_VAR 0 4
14189: RET
// every 0 0$2 marked 203 do
14190: GO 14192
14192: DISABLE
// begin SetXYS ( nah , 2 ) ;
14193: LD_EXP 35
14197: PPUSH
14198: LD_INT 2
14200: PPUSH
14201: CALL 18399 0 2
// AddComBuild ( staveci , b_oil_mine , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14205: LD_LOC 26
14209: PPUSH
14210: LD_INT 29
14212: PPUSH
14213: LD_LOC 43
14217: PUSH
14218: LD_INT 1
14220: ARRAY
14221: PPUSH
14222: LD_LOC 43
14226: PUSH
14227: LD_INT 2
14229: ARRAY
14230: PPUSH
14231: LD_LOC 43
14235: PUSH
14236: LD_INT 3
14238: ARRAY
14239: PPUSH
14240: CALL_OW 205
// wait ( 0 0$5 ) ;
14244: LD_INT 175
14246: PPUSH
14247: CALL_OW 67
// enable ( 204 ) ;
14251: LD_INT 204
14253: ENABLE_MARKED
// end ;
14254: END
// every 0 0$5 marked 204 do
14255: GO 14257
14257: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_oil_mine ] ] ) ;
14258: LD_ADDR_LOC 23
14262: PUSH
14263: LD_LOC 21
14267: PPUSH
14268: LD_INT 22
14270: PUSH
14271: LD_EXP 2
14275: PUSH
14276: EMPTY
14277: LIST
14278: LIST
14279: PUSH
14280: LD_INT 1
14282: PUSH
14283: EMPTY
14284: LIST
14285: PUSH
14286: LD_INT 30
14288: PUSH
14289: LD_INT 29
14291: PUSH
14292: EMPTY
14293: LIST
14294: LIST
14295: PUSH
14296: EMPTY
14297: LIST
14298: LIST
14299: LIST
14300: PPUSH
14301: CALL_OW 70
14305: ST_TO_ADDR
// if pom = 0 then
14306: LD_LOC 23
14310: PUSH
14311: LD_INT 0
14313: EQUAL
14314: IFFALSE 14370
// begin SetXYS ( nah , 2 ) ;
14316: LD_EXP 35
14320: PPUSH
14321: LD_INT 2
14323: PPUSH
14324: CALL 18399 0 2
// AddComBuild ( staveci , b_oil_mine , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14328: LD_LOC 26
14332: PPUSH
14333: LD_INT 29
14335: PPUSH
14336: LD_LOC 43
14340: PUSH
14341: LD_INT 1
14343: ARRAY
14344: PPUSH
14345: LD_LOC 43
14349: PUSH
14350: LD_INT 2
14352: ARRAY
14353: PPUSH
14354: LD_LOC 43
14358: PUSH
14359: LD_INT 3
14361: ARRAY
14362: PPUSH
14363: CALL_OW 205
// enable ;
14367: ENABLE
// end else
14368: GO 14384
// begin R_mine = pom [ 1 ] ;
14370: LD_ADDR_LOC 29
14374: PUSH
14375: LD_LOC 23
14379: PUSH
14380: LD_INT 1
14382: ARRAY
14383: ST_TO_ADDR
// end ; end ;
14384: END
// every 0 0$2 marked 205 do
14385: GO 14387
14387: DISABLE
// begin rus_cheat_source ( 50 , 0 , 50 ) ;
14388: LD_INT 50
14390: PPUSH
14391: LD_INT 0
14393: PPUSH
14394: LD_INT 50
14396: PPUSH
14397: CALL 14097 0 3
// SetXYS ( nah , 3 ) ;
14401: LD_EXP 35
14405: PPUSH
14406: LD_INT 3
14408: PPUSH
14409: CALL 18399 0 2
// AddComBuild ( staveci , b_siberite_power , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14413: LD_LOC 26
14417: PPUSH
14418: LD_INT 28
14420: PPUSH
14421: LD_LOC 43
14425: PUSH
14426: LD_INT 1
14428: ARRAY
14429: PPUSH
14430: LD_LOC 43
14434: PUSH
14435: LD_INT 2
14437: ARRAY
14438: PPUSH
14439: LD_LOC 43
14443: PUSH
14444: LD_INT 3
14446: ARRAY
14447: PPUSH
14448: CALL_OW 205
// wait ( 0 0$5 ) ;
14452: LD_INT 175
14454: PPUSH
14455: CALL_OW 67
// enable ( 206 ) ;
14459: LD_INT 206
14461: ENABLE_MARKED
// end ;
14462: END
// every 0 0$5 marked 206 do
14463: GO 14465
14465: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_siberite_power ] ] ) ;
14466: LD_ADDR_LOC 23
14470: PUSH
14471: LD_LOC 21
14475: PPUSH
14476: LD_INT 22
14478: PUSH
14479: LD_EXP 2
14483: PUSH
14484: EMPTY
14485: LIST
14486: LIST
14487: PUSH
14488: LD_INT 1
14490: PUSH
14491: EMPTY
14492: LIST
14493: PUSH
14494: LD_INT 30
14496: PUSH
14497: LD_INT 28
14499: PUSH
14500: EMPTY
14501: LIST
14502: LIST
14503: PUSH
14504: EMPTY
14505: LIST
14506: LIST
14507: LIST
14508: PPUSH
14509: CALL_OW 70
14513: ST_TO_ADDR
// if pom = 0 then
14514: LD_LOC 23
14518: PUSH
14519: LD_INT 0
14521: EQUAL
14522: IFFALSE 14578
// begin SetXYS ( nah , 3 ) ;
14524: LD_EXP 35
14528: PPUSH
14529: LD_INT 3
14531: PPUSH
14532: CALL 18399 0 2
// ComBuild ( staveci , b_siberite_power , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14536: LD_LOC 26
14540: PPUSH
14541: LD_INT 28
14543: PPUSH
14544: LD_LOC 43
14548: PUSH
14549: LD_INT 1
14551: ARRAY
14552: PPUSH
14553: LD_LOC 43
14557: PUSH
14558: LD_INT 2
14560: ARRAY
14561: PPUSH
14562: LD_LOC 43
14566: PUSH
14567: LD_INT 3
14569: ARRAY
14570: PPUSH
14571: CALL_OW 145
// enable ;
14575: ENABLE
// end else
14576: GO 14592
// begin R_sel = pom [ 1 ] ;
14578: LD_ADDR_LOC 30
14582: PUSH
14583: LD_LOC 23
14587: PUSH
14588: LD_INT 1
14590: ARRAY
14591: ST_TO_ADDR
// end ; end ;
14592: END
// every 0 0$2 marked 207 do
14593: GO 14595
14595: DISABLE
// begin rus_cheat_source ( 50 , 0 , 0 ) ;
14596: LD_INT 50
14598: PPUSH
14599: LD_INT 0
14601: PPUSH
14602: LD_INT 0
14604: PPUSH
14605: CALL 14097 0 3
// SetXYS ( nah , 4 ) ;
14609: LD_EXP 35
14613: PPUSH
14614: LD_INT 4
14616: PPUSH
14617: CALL 18399 0 2
// AddComBuild ( staveci , b_workshop , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14621: LD_LOC 26
14625: PPUSH
14626: LD_INT 2
14628: PPUSH
14629: LD_LOC 43
14633: PUSH
14634: LD_INT 1
14636: ARRAY
14637: PPUSH
14638: LD_LOC 43
14642: PUSH
14643: LD_INT 2
14645: ARRAY
14646: PPUSH
14647: LD_LOC 43
14651: PUSH
14652: LD_INT 3
14654: ARRAY
14655: PPUSH
14656: CALL_OW 205
// wait ( 0 0$5 ) ;
14660: LD_INT 175
14662: PPUSH
14663: CALL_OW 67
// enable ( 208 ) ;
14667: LD_INT 208
14669: ENABLE_MARKED
// end ;
14670: END
// every 0 0$5 marked 208 do
14671: GO 14673
14673: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_workshop ] ] ) ;
14674: LD_ADDR_LOC 23
14678: PUSH
14679: LD_LOC 21
14683: PPUSH
14684: LD_INT 22
14686: PUSH
14687: LD_EXP 2
14691: PUSH
14692: EMPTY
14693: LIST
14694: LIST
14695: PUSH
14696: LD_INT 1
14698: PUSH
14699: EMPTY
14700: LIST
14701: PUSH
14702: LD_INT 30
14704: PUSH
14705: LD_INT 2
14707: PUSH
14708: EMPTY
14709: LIST
14710: LIST
14711: PUSH
14712: EMPTY
14713: LIST
14714: LIST
14715: LIST
14716: PPUSH
14717: CALL_OW 70
14721: ST_TO_ADDR
// if pom = 0 then
14722: LD_LOC 23
14726: PUSH
14727: LD_INT 0
14729: EQUAL
14730: IFFALSE 14786
// begin SetXYS ( nah , 4 ) ;
14732: LD_EXP 35
14736: PPUSH
14737: LD_INT 4
14739: PPUSH
14740: CALL 18399 0 2
// ComBuild ( staveci , b_workshop , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
14744: LD_LOC 26
14748: PPUSH
14749: LD_INT 2
14751: PPUSH
14752: LD_LOC 43
14756: PUSH
14757: LD_INT 1
14759: ARRAY
14760: PPUSH
14761: LD_LOC 43
14765: PUSH
14766: LD_INT 2
14768: ARRAY
14769: PPUSH
14770: LD_LOC 43
14774: PUSH
14775: LD_INT 3
14777: ARRAY
14778: PPUSH
14779: CALL_OW 145
// enable ;
14783: ENABLE
// end else
14784: GO 14800
// begin R_factory = pom [ 1 ] ;
14786: LD_ADDR_LOC 31
14790: PUSH
14791: LD_LOC 23
14795: PUSH
14796: LD_INT 1
14798: ARRAY
14799: ST_TO_ADDR
// end ; end ;
14800: END
// every 0 0$1 marked 209 do
14801: GO 14803
14803: DISABLE
// begin rus_cheat_source ( 100 , 20 , 50 ) ;
14804: LD_INT 100
14806: PPUSH
14807: LD_INT 20
14809: PPUSH
14810: LD_INT 50
14812: PPUSH
14813: CALL 14097 0 3
// AddComUpgrade ( R_depot ) ;
14817: LD_LOC 28
14821: PPUSH
14822: CALL_OW 206
// case nah of 1 :
14826: LD_EXP 35
14830: PUSH
14831: LD_INT 1
14833: DOUBLE
14834: EQUAL
14835: IFTRUE 14839
14837: GO 14857
14839: POP
// AddComMoveXY ( staveci , 142 , 68 ) ; 2 :
14840: LD_LOC 26
14844: PPUSH
14845: LD_INT 142
14847: PPUSH
14848: LD_INT 68
14850: PPUSH
14851: CALL_OW 171
14855: GO 14936
14857: LD_INT 2
14859: DOUBLE
14860: EQUAL
14861: IFTRUE 14865
14863: GO 14883
14865: POP
// AddComMoveXY ( staveci , 142 , 68 ) ; 3 :
14866: LD_LOC 26
14870: PPUSH
14871: LD_INT 142
14873: PPUSH
14874: LD_INT 68
14876: PPUSH
14877: CALL_OW 171
14881: GO 14936
14883: LD_INT 3
14885: DOUBLE
14886: EQUAL
14887: IFTRUE 14891
14889: GO 14909
14891: POP
// AddComMoveXY ( staveci , 48 , 73 ) ; 4 :
14892: LD_LOC 26
14896: PPUSH
14897: LD_INT 48
14899: PPUSH
14900: LD_INT 73
14902: PPUSH
14903: CALL_OW 171
14907: GO 14936
14909: LD_INT 4
14911: DOUBLE
14912: EQUAL
14913: IFTRUE 14917
14915: GO 14935
14917: POP
// AddComMoveXY ( staveci , 94 , 105 ) ; end ;
14918: LD_LOC 26
14922: PPUSH
14923: LD_INT 94
14925: PPUSH
14926: LD_INT 105
14928: PPUSH
14929: CALL_OW 171
14933: GO 14936
14935: POP
// end ;
14936: END
// every 0 0$1 marked 210 do
14937: GO 14939
14939: DISABLE
// begin rus_cheat_source ( 100 , 20 , 50 ) ;
14940: LD_INT 100
14942: PPUSH
14943: LD_INT 20
14945: PPUSH
14946: LD_INT 50
14948: PPUSH
14949: CALL 14097 0 3
// AddComUpgrade ( R_factory ) ;
14953: LD_LOC 31
14957: PPUSH
14958: CALL_OW 206
// case nah of 1 :
14962: LD_EXP 35
14966: PUSH
14967: LD_INT 1
14969: DOUBLE
14970: EQUAL
14971: IFTRUE 14975
14973: GO 14993
14975: POP
// AddComMoveXY ( staveci , 158 , 85 ) ; 2 :
14976: LD_LOC 26
14980: PPUSH
14981: LD_INT 158
14983: PPUSH
14984: LD_INT 85
14986: PPUSH
14987: CALL_OW 171
14991: GO 15072
14993: LD_INT 2
14995: DOUBLE
14996: EQUAL
14997: IFTRUE 15001
14999: GO 15019
15001: POP
// AddComMoveXY ( staveci , 158 , 85 ) ; 3 :
15002: LD_LOC 26
15006: PPUSH
15007: LD_INT 158
15009: PPUSH
15010: LD_INT 85
15012: PPUSH
15013: CALL_OW 171
15017: GO 15072
15019: LD_INT 3
15021: DOUBLE
15022: EQUAL
15023: IFTRUE 15027
15025: GO 15045
15027: POP
// AddComMoveXY ( staveci , 44 , 79 ) ; 4 :
15028: LD_LOC 26
15032: PPUSH
15033: LD_INT 44
15035: PPUSH
15036: LD_INT 79
15038: PPUSH
15039: CALL_OW 171
15043: GO 15072
15045: LD_INT 4
15047: DOUBLE
15048: EQUAL
15049: IFTRUE 15053
15051: GO 15071
15053: POP
// AddComMoveXY ( staveci , 99 , 98 ) ; end ;
15054: LD_LOC 26
15058: PPUSH
15059: LD_INT 99
15061: PPUSH
15062: LD_INT 98
15064: PPUSH
15065: CALL_OW 171
15069: GO 15072
15071: POP
// end ;
15072: END
// every 0 0$2 marked 211 do
15073: GO 15075
15075: DISABLE
// begin rus_cheat_source ( 50 , 0 , 0 ) ;
15076: LD_INT 50
15078: PPUSH
15079: LD_INT 0
15081: PPUSH
15082: LD_INT 0
15084: PPUSH
15085: CALL 14097 0 3
// SetXYS ( nah , 5 ) ;
15089: LD_EXP 35
15093: PPUSH
15094: LD_INT 5
15096: PPUSH
15097: CALL 18399 0 2
// AddComBuild ( staveci , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
15101: LD_LOC 26
15105: PPUSH
15106: LD_INT 33
15108: PPUSH
15109: LD_LOC 43
15113: PUSH
15114: LD_INT 1
15116: ARRAY
15117: PPUSH
15118: LD_LOC 43
15122: PUSH
15123: LD_INT 2
15125: ARRAY
15126: PPUSH
15127: LD_LOC 43
15131: PUSH
15132: LD_INT 3
15134: ARRAY
15135: PPUSH
15136: CALL_OW 205
// wait ( 0 0$5 ) ;
15140: LD_INT 175
15142: PPUSH
15143: CALL_OW 67
// enable ( 212 ) ;
15147: LD_INT 212
15149: ENABLE_MARKED
// enable ( 213 ) ;
15150: LD_INT 213
15152: ENABLE_MARKED
// end ;
15153: END
// every 0 0$5 marked 212 do
15154: GO 15156
15156: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_turret ] ] ) ;
15157: LD_ADDR_LOC 23
15161: PUSH
15162: LD_LOC 21
15166: PPUSH
15167: LD_INT 22
15169: PUSH
15170: LD_EXP 2
15174: PUSH
15175: EMPTY
15176: LIST
15177: LIST
15178: PUSH
15179: LD_INT 1
15181: PUSH
15182: EMPTY
15183: LIST
15184: PUSH
15185: LD_INT 30
15187: PUSH
15188: LD_INT 33
15190: PUSH
15191: EMPTY
15192: LIST
15193: LIST
15194: PUSH
15195: EMPTY
15196: LIST
15197: LIST
15198: LIST
15199: PPUSH
15200: CALL_OW 70
15204: ST_TO_ADDR
// if pom = 0 then
15205: LD_LOC 23
15209: PUSH
15210: LD_INT 0
15212: EQUAL
15213: IFFALSE 15269
// begin SetXYS ( nah , 5 ) ;
15215: LD_EXP 35
15219: PPUSH
15220: LD_INT 5
15222: PPUSH
15223: CALL 18399 0 2
// ComBuild ( staveci , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
15227: LD_LOC 26
15231: PPUSH
15232: LD_INT 33
15234: PPUSH
15235: LD_LOC 43
15239: PUSH
15240: LD_INT 1
15242: ARRAY
15243: PPUSH
15244: LD_LOC 43
15248: PUSH
15249: LD_INT 2
15251: ARRAY
15252: PPUSH
15253: LD_LOC 43
15257: PUSH
15258: LD_INT 3
15260: ARRAY
15261: PPUSH
15262: CALL_OW 145
// enable ;
15266: ENABLE
// end else
15267: GO 15283
// begin R_turret1 = pom [ 1 ] ;
15269: LD_ADDR_LOC 32
15273: PUSH
15274: LD_LOC 23
15278: PUSH
15279: LD_INT 1
15281: ARRAY
15282: ST_TO_ADDR
// end ; end ;
15283: END
// every 0 0$1 marked 213 do var i ; var zone ;
15284: GO 15286
15286: DISABLE
15287: LD_INT 0
15289: PPUSH
15290: PPUSH
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_class , class_mechanic ] ] ) ;
15291: LD_ADDR_LOC 23
15295: PUSH
15296: LD_LOC 21
15300: PPUSH
15301: LD_INT 22
15303: PUSH
15304: LD_EXP 2
15308: PUSH
15309: EMPTY
15310: LIST
15311: LIST
15312: PUSH
15313: LD_INT 1
15315: PUSH
15316: EMPTY
15317: LIST
15318: PUSH
15319: LD_INT 25
15321: PUSH
15322: LD_INT 3
15324: PUSH
15325: EMPTY
15326: LIST
15327: LIST
15328: PUSH
15329: EMPTY
15330: LIST
15331: LIST
15332: LIST
15333: PPUSH
15334: CALL_OW 70
15338: ST_TO_ADDR
// AddComEnterUnit ( pom , R_factory ) ;
15339: LD_LOC 23
15343: PPUSH
15344: LD_LOC 31
15348: PPUSH
15349: CALL_OW 180
// case nah of 1 , 2 :
15353: LD_EXP 35
15357: PUSH
15358: LD_INT 1
15360: DOUBLE
15361: EQUAL
15362: IFTRUE 15372
15364: LD_INT 2
15366: DOUBLE
15367: EQUAL
15368: IFTRUE 15372
15370: GO 15383
15372: POP
// zone = mecharea1 ; 3 :
15373: LD_ADDR_VAR 0 2
15377: PUSH
15378: LD_INT 37
15380: ST_TO_ADDR
15381: GO 15422
15383: LD_INT 3
15385: DOUBLE
15386: EQUAL
15387: IFTRUE 15391
15389: GO 15402
15391: POP
// zone = mecharea2 ; 4 :
15392: LD_ADDR_VAR 0 2
15396: PUSH
15397: LD_INT 38
15399: ST_TO_ADDR
15400: GO 15422
15402: LD_INT 4
15404: DOUBLE
15405: EQUAL
15406: IFTRUE 15410
15408: GO 15421
15410: POP
// zone = mecharea3 ; end ;
15411: LD_ADDR_VAR 0 2
15415: PUSH
15416: LD_INT 39
15418: ST_TO_ADDR
15419: GO 15422
15421: POP
// for i in MECHANICI_NAVIC do
15422: LD_ADDR_VAR 0 1
15426: PUSH
15427: LD_EXP 23
15431: PUSH
15432: FOR_IN
15433: IFFALSE 15454
// PlaceUnitArea ( i , zone , false ) ;
15435: LD_VAR 0 1
15439: PPUSH
15440: LD_VAR 0 2
15444: PPUSH
15445: LD_INT 0
15447: PPUSH
15448: CALL_OW 49
15452: GO 15432
15454: POP
15455: POP
// ComEnterUnit ( MECHANICI_NAVIC , R_factory ) ;
15456: LD_EXP 23
15460: PPUSH
15461: LD_LOC 31
15465: PPUSH
15466: CALL_OW 120
// end ;
15470: PPOPN 2
15472: END
// every 0 0$2 marked 214 do
15473: GO 15475
15475: DISABLE
// begin rus_cheat_source ( 50 , 0 , 10 ) ;
15476: LD_INT 50
15478: PPUSH
15479: LD_INT 0
15481: PPUSH
15482: LD_INT 10
15484: PPUSH
15485: CALL 14097 0 3
// SetXYS ( nah , 6 ) ;
15489: LD_EXP 35
15493: PPUSH
15494: LD_INT 6
15496: PPUSH
15497: CALL 18399 0 2
// AddComBuild ( staveci , b_lab , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
15501: LD_LOC 26
15505: PPUSH
15506: LD_INT 6
15508: PPUSH
15509: LD_LOC 43
15513: PUSH
15514: LD_INT 1
15516: ARRAY
15517: PPUSH
15518: LD_LOC 43
15522: PUSH
15523: LD_INT 2
15525: ARRAY
15526: PPUSH
15527: LD_LOC 43
15531: PUSH
15532: LD_INT 3
15534: ARRAY
15535: PPUSH
15536: CALL_OW 205
// wait ( 0 0$5 ) ;
15540: LD_INT 175
15542: PPUSH
15543: CALL_OW 67
// enable ( 215 ) ;
15547: LD_INT 215
15549: ENABLE_MARKED
// enable ( 216 ) ;
15550: LD_INT 216
15552: ENABLE_MARKED
// end ;
15553: END
// every 0 0$5 marked 215 do
15554: GO 15556
15556: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_lab ] ] ) ;
15557: LD_ADDR_LOC 23
15561: PUSH
15562: LD_LOC 21
15566: PPUSH
15567: LD_INT 22
15569: PUSH
15570: LD_EXP 2
15574: PUSH
15575: EMPTY
15576: LIST
15577: LIST
15578: PUSH
15579: LD_INT 1
15581: PUSH
15582: EMPTY
15583: LIST
15584: PUSH
15585: LD_INT 30
15587: PUSH
15588: LD_INT 6
15590: PUSH
15591: EMPTY
15592: LIST
15593: LIST
15594: PUSH
15595: EMPTY
15596: LIST
15597: LIST
15598: LIST
15599: PPUSH
15600: CALL_OW 70
15604: ST_TO_ADDR
// if pom = 0 then
15605: LD_LOC 23
15609: PUSH
15610: LD_INT 0
15612: EQUAL
15613: IFFALSE 15669
// begin SetXYS ( nah , 6 ) ;
15615: LD_EXP 35
15619: PPUSH
15620: LD_INT 6
15622: PPUSH
15623: CALL 18399 0 2
// ComBuild ( staveci , b_lab , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
15627: LD_LOC 26
15631: PPUSH
15632: LD_INT 6
15634: PPUSH
15635: LD_LOC 43
15639: PUSH
15640: LD_INT 1
15642: ARRAY
15643: PPUSH
15644: LD_LOC 43
15648: PUSH
15649: LD_INT 2
15651: ARRAY
15652: PPUSH
15653: LD_LOC 43
15657: PUSH
15658: LD_INT 3
15660: ARRAY
15661: PPUSH
15662: CALL_OW 145
// enable ;
15666: ENABLE
// end else
15667: GO 15683
// begin R_lab = pom [ 1 ] ;
15669: LD_ADDR_LOC 33
15673: PUSH
15674: LD_LOC 23
15678: PUSH
15679: LD_INT 1
15681: ARRAY
15682: ST_TO_ADDR
// end ; end ;
15683: END
// every 0 0$1 marked 216 do
15684: GO 15686
15686: DISABLE
// begin AddComPlaceWeapon ( R_turret1 , zbrane_na_turrety1 [ difficulty ] ) ;
15687: LD_LOC 32
15691: PPUSH
15692: LD_EXP 73
15696: PUSH
15697: LD_OWVAR 67
15701: ARRAY
15702: PPUSH
15703: CALL_OW 208
// end ;
15707: END
// every 0 0$2 marked 217 do
15708: GO 15710
15710: DISABLE
// begin rus_cheat_source ( 50 , 0 , 10 ) ;
15711: LD_INT 50
15713: PPUSH
15714: LD_INT 0
15716: PPUSH
15717: LD_INT 10
15719: PPUSH
15720: CALL 14097 0 3
// SetXYS ( nah , 7 ) ;
15724: LD_EXP 35
15728: PPUSH
15729: LD_INT 7
15731: PPUSH
15732: CALL 18399 0 2
// AddComBuild ( staveci , b_bunker , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
15736: LD_LOC 26
15740: PPUSH
15741: LD_INT 32
15743: PPUSH
15744: LD_LOC 43
15748: PUSH
15749: LD_INT 1
15751: ARRAY
15752: PPUSH
15753: LD_LOC 43
15757: PUSH
15758: LD_INT 2
15760: ARRAY
15761: PPUSH
15762: LD_LOC 43
15766: PUSH
15767: LD_INT 3
15769: ARRAY
15770: PPUSH
15771: CALL_OW 205
// wait ( 0 0$5 ) ;
15775: LD_INT 175
15777: PPUSH
15778: CALL_OW 67
// enable ( 218 ) ;
15782: LD_INT 218
15784: ENABLE_MARKED
// end ;
15785: END
// every 0 0$5 marked 218 do
15786: GO 15788
15788: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_bunker ] ] ) ;
15789: LD_ADDR_LOC 23
15793: PUSH
15794: LD_LOC 21
15798: PPUSH
15799: LD_INT 22
15801: PUSH
15802: LD_EXP 2
15806: PUSH
15807: EMPTY
15808: LIST
15809: LIST
15810: PUSH
15811: LD_INT 1
15813: PUSH
15814: EMPTY
15815: LIST
15816: PUSH
15817: LD_INT 30
15819: PUSH
15820: LD_INT 32
15822: PUSH
15823: EMPTY
15824: LIST
15825: LIST
15826: PUSH
15827: EMPTY
15828: LIST
15829: LIST
15830: LIST
15831: PPUSH
15832: CALL_OW 70
15836: ST_TO_ADDR
// if pom = 0 then
15837: LD_LOC 23
15841: PUSH
15842: LD_INT 0
15844: EQUAL
15845: IFFALSE 15901
// begin SetXYS ( nah , 7 ) ;
15847: LD_EXP 35
15851: PPUSH
15852: LD_INT 7
15854: PPUSH
15855: CALL 18399 0 2
// ComBuild ( staveci , b_bunker , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
15859: LD_LOC 26
15863: PPUSH
15864: LD_INT 32
15866: PPUSH
15867: LD_LOC 43
15871: PUSH
15872: LD_INT 1
15874: ARRAY
15875: PPUSH
15876: LD_LOC 43
15880: PUSH
15881: LD_INT 2
15883: ARRAY
15884: PPUSH
15885: LD_LOC 43
15889: PUSH
15890: LD_INT 3
15892: ARRAY
15893: PPUSH
15894: CALL_OW 145
// enable ;
15898: ENABLE
// end else
15899: GO 15918
// begin R_bunkr = pom [ 1 ] ;
15901: LD_ADDR_LOC 34
15905: PUSH
15906: LD_LOC 23
15910: PUSH
15911: LD_INT 1
15913: ARRAY
15914: ST_TO_ADDR
// enable ( 219 ) ;
15915: LD_INT 219
15917: ENABLE_MARKED
// end ; end ;
15918: END
// every 0 0$3 marked 219 do
15919: GO 15921
15921: DISABLE
// begin rus_cheat_source ( 20 , 0 , 10 ) ;
15922: LD_INT 20
15924: PPUSH
15925: LD_INT 0
15927: PPUSH
15928: LD_INT 10
15930: PPUSH
15931: CALL 14097 0 3
// AddComPlaceWeapon ( R_bunkr , zbrane_na_turrety2 [ difficulty ] ) ;
15935: LD_LOC 34
15939: PPUSH
15940: LD_EXP 74
15944: PUSH
15945: LD_OWVAR 67
15949: ARRAY
15950: PPUSH
15951: CALL_OW 208
// end ;
15955: END
// every 0 0$3 marked 220 do
15956: GO 15958
15958: DISABLE
// begin AddComUpgradeLab ( R_lab , b_lab_spacetime ) ;
15959: LD_LOC 33
15963: PPUSH
15964: LD_INT 14
15966: PPUSH
15967: CALL_OW 207
// AddComUpgradeLab ( R_lab , b_lab_weapon ) ;
15971: LD_LOC 33
15975: PPUSH
15976: LD_INT 10
15978: PPUSH
15979: CALL_OW 207
// pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_type , unit_human ] ] ) ;
15983: LD_ADDR_LOC 23
15987: PUSH
15988: LD_LOC 21
15992: PPUSH
15993: LD_INT 22
15995: PUSH
15996: LD_EXP 2
16000: PUSH
16001: EMPTY
16002: LIST
16003: LIST
16004: PUSH
16005: LD_INT 1
16007: PUSH
16008: EMPTY
16009: LIST
16010: PUSH
16011: LD_INT 21
16013: PUSH
16014: LD_INT 1
16016: PUSH
16017: EMPTY
16018: LIST
16019: LIST
16020: PUSH
16021: EMPTY
16022: LIST
16023: LIST
16024: LIST
16025: PPUSH
16026: CALL_OW 70
16030: ST_TO_ADDR
// if pom [ 1 ] <> staveci [ 1 ] then
16031: LD_LOC 23
16035: PUSH
16036: LD_INT 1
16038: ARRAY
16039: PUSH
16040: LD_LOC 26
16044: PUSH
16045: LD_INT 1
16047: ARRAY
16048: NONEQUAL
16049: IFFALSE 16179
// case nah of 1 :
16051: LD_EXP 35
16055: PUSH
16056: LD_INT 1
16058: DOUBLE
16059: EQUAL
16060: IFTRUE 16064
16062: GO 16086
16064: POP
// AddComMoveXY ( pom [ 1 ] , 150 , 65 ) ; 2 :
16065: LD_LOC 23
16069: PUSH
16070: LD_INT 1
16072: ARRAY
16073: PPUSH
16074: LD_INT 150
16076: PPUSH
16077: LD_INT 65
16079: PPUSH
16080: CALL_OW 171
16084: GO 16177
16086: LD_INT 2
16088: DOUBLE
16089: EQUAL
16090: IFTRUE 16094
16092: GO 16116
16094: POP
// AddComMoveXY ( pom [ 1 ] , 150 , 65 ) ; 3 :
16095: LD_LOC 23
16099: PUSH
16100: LD_INT 1
16102: ARRAY
16103: PPUSH
16104: LD_INT 150
16106: PPUSH
16107: LD_INT 65
16109: PPUSH
16110: CALL_OW 171
16114: GO 16177
16116: LD_INT 3
16118: DOUBLE
16119: EQUAL
16120: IFTRUE 16124
16122: GO 16146
16124: POP
// AddComMoveXY ( pom [ 1 ] , 59 , 67 ) ; 4 :
16125: LD_LOC 23
16129: PUSH
16130: LD_INT 1
16132: ARRAY
16133: PPUSH
16134: LD_INT 59
16136: PPUSH
16137: LD_INT 67
16139: PPUSH
16140: CALL_OW 171
16144: GO 16177
16146: LD_INT 4
16148: DOUBLE
16149: EQUAL
16150: IFTRUE 16154
16152: GO 16176
16154: POP
// AddComMoveXY ( pom [ 1 ] , 105 , 93 ) ; end else
16155: LD_LOC 23
16159: PUSH
16160: LD_INT 1
16162: ARRAY
16163: PPUSH
16164: LD_INT 105
16166: PPUSH
16167: LD_INT 93
16169: PPUSH
16170: CALL_OW 171
16174: GO 16177
16176: POP
16177: GO 16305
// case nah of 1 :
16179: LD_EXP 35
16183: PUSH
16184: LD_INT 1
16186: DOUBLE
16187: EQUAL
16188: IFTRUE 16192
16190: GO 16214
16192: POP
// AddComMoveXY ( pom [ 2 ] , 150 , 65 ) ; 2 :
16193: LD_LOC 23
16197: PUSH
16198: LD_INT 2
16200: ARRAY
16201: PPUSH
16202: LD_INT 150
16204: PPUSH
16205: LD_INT 65
16207: PPUSH
16208: CALL_OW 171
16212: GO 16305
16214: LD_INT 2
16216: DOUBLE
16217: EQUAL
16218: IFTRUE 16222
16220: GO 16244
16222: POP
// AddComMoveXY ( pom [ 2 ] , 150 , 65 ) ; 3 :
16223: LD_LOC 23
16227: PUSH
16228: LD_INT 2
16230: ARRAY
16231: PPUSH
16232: LD_INT 150
16234: PPUSH
16235: LD_INT 65
16237: PPUSH
16238: CALL_OW 171
16242: GO 16305
16244: LD_INT 3
16246: DOUBLE
16247: EQUAL
16248: IFTRUE 16252
16250: GO 16274
16252: POP
// AddComMoveXY ( pom [ 2 ] , 59 , 67 ) ; 4 :
16253: LD_LOC 23
16257: PUSH
16258: LD_INT 2
16260: ARRAY
16261: PPUSH
16262: LD_INT 59
16264: PPUSH
16265: LD_INT 67
16267: PPUSH
16268: CALL_OW 171
16272: GO 16305
16274: LD_INT 4
16276: DOUBLE
16277: EQUAL
16278: IFTRUE 16282
16280: GO 16304
16282: POP
// AddComMoveXY ( pom [ 2 ] , 105 , 93 ) ; end ;
16283: LD_LOC 23
16287: PUSH
16288: LD_INT 2
16290: ARRAY
16291: PPUSH
16292: LD_INT 105
16294: PPUSH
16295: LD_INT 93
16297: PPUSH
16298: CALL_OW 171
16302: GO 16305
16304: POP
// end ;
16305: END
// every 0 0$1 marked 221 do
16306: GO 16308
16308: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_class , class_soldier ] ] ) ;
16309: LD_ADDR_LOC 23
16313: PUSH
16314: LD_LOC 21
16318: PPUSH
16319: LD_INT 22
16321: PUSH
16322: LD_EXP 2
16326: PUSH
16327: EMPTY
16328: LIST
16329: LIST
16330: PUSH
16331: LD_INT 1
16333: PUSH
16334: EMPTY
16335: LIST
16336: PUSH
16337: LD_INT 25
16339: PUSH
16340: LD_INT 1
16342: PUSH
16343: EMPTY
16344: LIST
16345: LIST
16346: PUSH
16347: EMPTY
16348: LIST
16349: LIST
16350: LIST
16351: PPUSH
16352: CALL_OW 70
16356: ST_TO_ADDR
// AddComEnterUnit ( pom [ 1 ] , R_bunkr ) ;
16357: LD_LOC 23
16361: PUSH
16362: LD_INT 1
16364: ARRAY
16365: PPUSH
16366: LD_LOC 34
16370: PPUSH
16371: CALL_OW 180
// enable ( 222 ) ;
16375: LD_INT 222
16377: ENABLE_MARKED
// end ;
16378: END
// every 0 0$2 marked 222 do
16379: GO 16381
16381: DISABLE
// begin SetXYS ( nah , 8 ) ;
16382: LD_EXP 35
16386: PPUSH
16387: LD_INT 8
16389: PPUSH
16390: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_gun , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
16394: LD_LOC 26
16398: PUSH
16399: LD_INT 1
16401: ARRAY
16402: PPUSH
16403: LD_INT 17
16405: PPUSH
16406: LD_LOC 43
16410: PUSH
16411: LD_INT 1
16413: ARRAY
16414: PPUSH
16415: LD_LOC 43
16419: PUSH
16420: LD_INT 2
16422: ARRAY
16423: PPUSH
16424: LD_LOC 43
16428: PUSH
16429: LD_INT 3
16431: ARRAY
16432: PPUSH
16433: CALL_OW 205
// wait ( 0 0$5 ) ;
16437: LD_INT 175
16439: PPUSH
16440: CALL_OW 67
// enable ( 223 ) ;
16444: LD_INT 223
16446: ENABLE_MARKED
// end ;
16447: END
// every 0 0$5 marked 223 do
16448: GO 16450
16450: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_ext_gun ] ] ) ;
16451: LD_ADDR_LOC 23
16455: PUSH
16456: LD_LOC 21
16460: PPUSH
16461: LD_INT 22
16463: PUSH
16464: LD_EXP 2
16468: PUSH
16469: EMPTY
16470: LIST
16471: LIST
16472: PUSH
16473: LD_INT 1
16475: PUSH
16476: EMPTY
16477: LIST
16478: PUSH
16479: LD_INT 30
16481: PUSH
16482: LD_INT 17
16484: PUSH
16485: EMPTY
16486: LIST
16487: LIST
16488: PUSH
16489: EMPTY
16490: LIST
16491: LIST
16492: LIST
16493: PPUSH
16494: CALL_OW 70
16498: ST_TO_ADDR
// if pom = 0 then
16499: LD_LOC 23
16503: PUSH
16504: LD_INT 0
16506: EQUAL
16507: IFFALSE 16567
// begin SetXYS ( nah , 8 ) ;
16509: LD_EXP 35
16513: PPUSH
16514: LD_INT 8
16516: PPUSH
16517: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_gun , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
16521: LD_LOC 26
16525: PUSH
16526: LD_INT 1
16528: ARRAY
16529: PPUSH
16530: LD_INT 17
16532: PPUSH
16533: LD_LOC 43
16537: PUSH
16538: LD_INT 1
16540: ARRAY
16541: PPUSH
16542: LD_LOC 43
16546: PUSH
16547: LD_INT 2
16549: ARRAY
16550: PPUSH
16551: LD_LOC 43
16555: PUSH
16556: LD_INT 3
16558: ARRAY
16559: PPUSH
16560: CALL_OW 205
// enable ;
16564: ENABLE
// end else
16565: GO 16581
// begin R_egun = pom [ 1 ] ;
16567: LD_ADDR_LOC 37
16571: PUSH
16572: LD_LOC 23
16576: PUSH
16577: LD_INT 1
16579: ARRAY
16580: ST_TO_ADDR
// end ; end ;
16581: END
// every 0 0$2 marked 224 do
16582: GO 16584
16584: DISABLE
// begin SetXYS ( nah , 9 ) ;
16585: LD_EXP 35
16589: PPUSH
16590: LD_INT 9
16592: PPUSH
16593: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
16597: LD_LOC 26
16601: PUSH
16602: LD_INT 1
16604: ARRAY
16605: PPUSH
16606: LD_INT 33
16608: PPUSH
16609: LD_LOC 43
16613: PUSH
16614: LD_INT 1
16616: ARRAY
16617: PPUSH
16618: LD_LOC 43
16622: PUSH
16623: LD_INT 2
16625: ARRAY
16626: PPUSH
16627: LD_LOC 43
16631: PUSH
16632: LD_INT 3
16634: ARRAY
16635: PPUSH
16636: CALL_OW 205
// wait ( 0 0$5 ) ;
16640: LD_INT 175
16642: PPUSH
16643: CALL_OW 67
// enable ( 225 ) ;
16647: LD_INT 225
16649: ENABLE_MARKED
// end ;
16650: END
// every 0 0$5 marked 225 do
16651: GO 16653
16653: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_turret ] ] ) ;
16654: LD_ADDR_LOC 23
16658: PUSH
16659: LD_LOC 21
16663: PPUSH
16664: LD_INT 22
16666: PUSH
16667: LD_EXP 2
16671: PUSH
16672: EMPTY
16673: LIST
16674: LIST
16675: PUSH
16676: LD_INT 1
16678: PUSH
16679: EMPTY
16680: LIST
16681: PUSH
16682: LD_INT 30
16684: PUSH
16685: LD_INT 33
16687: PUSH
16688: EMPTY
16689: LIST
16690: LIST
16691: PUSH
16692: EMPTY
16693: LIST
16694: LIST
16695: LIST
16696: PPUSH
16697: CALL_OW 70
16701: ST_TO_ADDR
// if ( pom = 0 ) or ( pom = 1 and pom [ 1 ] = R_turret1 ) then
16702: LD_LOC 23
16706: PUSH
16707: LD_INT 0
16709: EQUAL
16710: PUSH
16711: LD_LOC 23
16715: PUSH
16716: LD_INT 1
16718: EQUAL
16719: PUSH
16720: LD_LOC 23
16724: PUSH
16725: LD_INT 1
16727: ARRAY
16728: PUSH
16729: LD_LOC 32
16733: EQUAL
16734: AND
16735: OR
16736: IFFALSE 16796
// begin SetXYS ( nah , 9 ) ;
16738: LD_EXP 35
16742: PPUSH
16743: LD_INT 9
16745: PPUSH
16746: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
16750: LD_LOC 26
16754: PUSH
16755: LD_INT 1
16757: ARRAY
16758: PPUSH
16759: LD_INT 33
16761: PPUSH
16762: LD_LOC 43
16766: PUSH
16767: LD_INT 1
16769: ARRAY
16770: PPUSH
16771: LD_LOC 43
16775: PUSH
16776: LD_INT 2
16778: ARRAY
16779: PPUSH
16780: LD_LOC 43
16784: PUSH
16785: LD_INT 3
16787: ARRAY
16788: PPUSH
16789: CALL_OW 205
// enable ;
16793: ENABLE
// end else
16794: GO 16868
// begin if pom = 1 then
16796: LD_LOC 23
16800: PUSH
16801: LD_INT 1
16803: EQUAL
16804: IFFALSE 16822
// R_turret2 = pom [ 1 ] else
16806: LD_ADDR_LOC 35
16810: PUSH
16811: LD_LOC 23
16815: PUSH
16816: LD_INT 1
16818: ARRAY
16819: ST_TO_ADDR
16820: GO 16868
// if pom [ 1 ] = R_turret1 then
16822: LD_LOC 23
16826: PUSH
16827: LD_INT 1
16829: ARRAY
16830: PUSH
16831: LD_LOC 32
16835: EQUAL
16836: IFFALSE 16854
// R_turret2 = pom [ 2 ] else
16838: LD_ADDR_LOC 35
16842: PUSH
16843: LD_LOC 23
16847: PUSH
16848: LD_INT 2
16850: ARRAY
16851: ST_TO_ADDR
16852: GO 16868
// R_turret2 = pom [ 1 ] ;
16854: LD_ADDR_LOC 35
16858: PUSH
16859: LD_LOC 23
16863: PUSH
16864: LD_INT 1
16866: ARRAY
16867: ST_TO_ADDR
// end ; end ;
16868: END
// every 0 0$1 marked 226 do
16869: GO 16871
16871: DISABLE
// begin AddComPlaceWeapon ( R_turret2 , zbrane_na_turrety3 [ difficulty ] ) ;
16872: LD_LOC 35
16876: PPUSH
16877: LD_EXP 75
16881: PUSH
16882: LD_OWVAR 67
16886: ARRAY
16887: PPUSH
16888: CALL_OW 208
// enable ( 227 ) ;
16892: LD_INT 227
16894: ENABLE_MARKED
// enable ( 221 ) ;
16895: LD_INT 221
16897: ENABLE_MARKED
// end ;
16898: END
// every 0 0$2 marked 227 do
16899: GO 16901
16901: DISABLE
// begin SetXYS ( nah , 10 ) ;
16902: LD_EXP 35
16906: PPUSH
16907: LD_INT 10
16909: PPUSH
16910: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
16914: LD_LOC 26
16918: PUSH
16919: LD_INT 1
16921: ARRAY
16922: PPUSH
16923: LD_INT 33
16925: PPUSH
16926: LD_LOC 43
16930: PUSH
16931: LD_INT 1
16933: ARRAY
16934: PPUSH
16935: LD_LOC 43
16939: PUSH
16940: LD_INT 2
16942: ARRAY
16943: PPUSH
16944: LD_LOC 43
16948: PUSH
16949: LD_INT 3
16951: ARRAY
16952: PPUSH
16953: CALL_OW 205
// wait ( 0 0$5 ) ;
16957: LD_INT 175
16959: PPUSH
16960: CALL_OW 67
// enable ( 228 ) ;
16964: LD_INT 228
16966: ENABLE_MARKED
// end ;
16967: END
// every 0 0$5 marked 228 do
16968: GO 16970
16970: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_turret ] ] ) ;
16971: LD_ADDR_LOC 23
16975: PUSH
16976: LD_LOC 21
16980: PPUSH
16981: LD_INT 22
16983: PUSH
16984: LD_EXP 2
16988: PUSH
16989: EMPTY
16990: LIST
16991: LIST
16992: PUSH
16993: LD_INT 1
16995: PUSH
16996: EMPTY
16997: LIST
16998: PUSH
16999: LD_INT 30
17001: PUSH
17002: LD_INT 33
17004: PUSH
17005: EMPTY
17006: LIST
17007: LIST
17008: PUSH
17009: EMPTY
17010: LIST
17011: LIST
17012: LIST
17013: PPUSH
17014: CALL_OW 70
17018: ST_TO_ADDR
// if ( pom = 0 ) or ( pom = 1 and pom [ 1 ] = R_turret1 ) or ( pom = 1 and pom [ 1 ] = R_turret2 ) or ( pom = 2 and ( ( pom [ 1 ] = R_turret1 and pom [ 2 ] = R_turret2 ) or ( pom [ 1 ] = R_turret2 and pom [ 2 ] = R_turret1 ) ) ) then
17019: LD_LOC 23
17023: PUSH
17024: LD_INT 0
17026: EQUAL
17027: PUSH
17028: LD_LOC 23
17032: PUSH
17033: LD_INT 1
17035: EQUAL
17036: PUSH
17037: LD_LOC 23
17041: PUSH
17042: LD_INT 1
17044: ARRAY
17045: PUSH
17046: LD_LOC 32
17050: EQUAL
17051: AND
17052: OR
17053: PUSH
17054: LD_LOC 23
17058: PUSH
17059: LD_INT 1
17061: EQUAL
17062: PUSH
17063: LD_LOC 23
17067: PUSH
17068: LD_INT 1
17070: ARRAY
17071: PUSH
17072: LD_LOC 35
17076: EQUAL
17077: AND
17078: OR
17079: PUSH
17080: LD_LOC 23
17084: PUSH
17085: LD_INT 2
17087: EQUAL
17088: PUSH
17089: LD_LOC 23
17093: PUSH
17094: LD_INT 1
17096: ARRAY
17097: PUSH
17098: LD_LOC 32
17102: EQUAL
17103: PUSH
17104: LD_LOC 23
17108: PUSH
17109: LD_INT 2
17111: ARRAY
17112: PUSH
17113: LD_LOC 35
17117: EQUAL
17118: AND
17119: PUSH
17120: LD_LOC 23
17124: PUSH
17125: LD_INT 1
17127: ARRAY
17128: PUSH
17129: LD_LOC 35
17133: EQUAL
17134: PUSH
17135: LD_LOC 23
17139: PUSH
17140: LD_INT 2
17142: ARRAY
17143: PUSH
17144: LD_LOC 32
17148: EQUAL
17149: AND
17150: OR
17151: AND
17152: OR
17153: IFFALSE 17213
// begin SetXYS ( nah , 10 ) ;
17155: LD_EXP 35
17159: PPUSH
17160: LD_INT 10
17162: PPUSH
17163: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_turret , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17167: LD_LOC 26
17171: PUSH
17172: LD_INT 1
17174: ARRAY
17175: PPUSH
17176: LD_INT 33
17178: PPUSH
17179: LD_LOC 43
17183: PUSH
17184: LD_INT 1
17186: ARRAY
17187: PPUSH
17188: LD_LOC 43
17192: PUSH
17193: LD_INT 2
17195: ARRAY
17196: PPUSH
17197: LD_LOC 43
17201: PUSH
17202: LD_INT 3
17204: ARRAY
17205: PPUSH
17206: CALL_OW 205
// enable ;
17210: ENABLE
// end else
17211: GO 17429
// begin if pom = 1 then
17213: LD_LOC 23
17217: PUSH
17218: LD_INT 1
17220: EQUAL
17221: IFFALSE 17237
// R_turret3 = pom [ 1 ] ;
17223: LD_ADDR_LOC 36
17227: PUSH
17228: LD_LOC 23
17232: PUSH
17233: LD_INT 1
17235: ARRAY
17236: ST_TO_ADDR
// if pom = 2 then
17237: LD_LOC 23
17241: PUSH
17242: LD_INT 2
17244: EQUAL
17245: IFFALSE 17309
// if pom [ 1 ] = R_turret1 or pom [ 1 ] = R_turret2 then
17247: LD_LOC 23
17251: PUSH
17252: LD_INT 1
17254: ARRAY
17255: PUSH
17256: LD_LOC 32
17260: EQUAL
17261: PUSH
17262: LD_LOC 23
17266: PUSH
17267: LD_INT 1
17269: ARRAY
17270: PUSH
17271: LD_LOC 35
17275: EQUAL
17276: OR
17277: IFFALSE 17295
// R_turret3 = pom [ 2 ] else
17279: LD_ADDR_LOC 36
17283: PUSH
17284: LD_LOC 23
17288: PUSH
17289: LD_INT 2
17291: ARRAY
17292: ST_TO_ADDR
17293: GO 17309
// R_turret3 = pom [ 1 ] ;
17295: LD_ADDR_LOC 36
17299: PUSH
17300: LD_LOC 23
17304: PUSH
17305: LD_INT 1
17307: ARRAY
17308: ST_TO_ADDR
// if pom = 3 then
17309: LD_LOC 23
17313: PUSH
17314: LD_INT 3
17316: EQUAL
17317: IFFALSE 17429
// begin if pom [ 1 ] <> R_turret1 and pom [ 1 ] <> R_turret2 then
17319: LD_LOC 23
17323: PUSH
17324: LD_INT 1
17326: ARRAY
17327: PUSH
17328: LD_LOC 32
17332: NONEQUAL
17333: PUSH
17334: LD_LOC 23
17338: PUSH
17339: LD_INT 1
17341: ARRAY
17342: PUSH
17343: LD_LOC 35
17347: NONEQUAL
17348: AND
17349: IFFALSE 17367
// R_turret3 = pom [ 1 ] else
17351: LD_ADDR_LOC 36
17355: PUSH
17356: LD_LOC 23
17360: PUSH
17361: LD_INT 1
17363: ARRAY
17364: ST_TO_ADDR
17365: GO 17429
// if pom [ 2 ] <> R_turret1 and pom [ 2 ] <> R_turret2 then
17367: LD_LOC 23
17371: PUSH
17372: LD_INT 2
17374: ARRAY
17375: PUSH
17376: LD_LOC 32
17380: NONEQUAL
17381: PUSH
17382: LD_LOC 23
17386: PUSH
17387: LD_INT 2
17389: ARRAY
17390: PUSH
17391: LD_LOC 35
17395: NONEQUAL
17396: AND
17397: IFFALSE 17415
// R_turret3 = pom [ 2 ] else
17399: LD_ADDR_LOC 36
17403: PUSH
17404: LD_LOC 23
17408: PUSH
17409: LD_INT 2
17411: ARRAY
17412: ST_TO_ADDR
17413: GO 17429
// R_turret3 = pom [ 3 ] ;
17415: LD_ADDR_LOC 36
17419: PUSH
17420: LD_LOC 23
17424: PUSH
17425: LD_INT 3
17427: ARRAY
17428: ST_TO_ADDR
// end ; end ; end ;
17429: END
// every 0 0$1 marked 229 do
17430: GO 17432
17432: DISABLE
// begin AddComPlaceWeapon ( R_turret3 , zbrane_na_turrety3 [ difficulty ] ) ;
17433: LD_LOC 36
17437: PPUSH
17438: LD_EXP 75
17442: PUSH
17443: LD_OWVAR 67
17447: ARRAY
17448: PPUSH
17449: CALL_OW 208
// enable ( 230 ) ;
17453: LD_INT 230
17455: ENABLE_MARKED
// end ;
17456: END
// every 0 0$1 marked 230 do
17457: GO 17459
17459: DISABLE
// begin SetXYS ( nah , 11 ) ;
17460: LD_EXP 35
17464: PPUSH
17465: LD_INT 11
17467: PPUSH
17468: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_armoury , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17472: LD_LOC 26
17476: PUSH
17477: LD_INT 1
17479: ARRAY
17480: PPUSH
17481: LD_INT 4
17483: PPUSH
17484: LD_LOC 43
17488: PUSH
17489: LD_INT 1
17491: ARRAY
17492: PPUSH
17493: LD_LOC 43
17497: PUSH
17498: LD_INT 2
17500: ARRAY
17501: PPUSH
17502: LD_LOC 43
17506: PUSH
17507: LD_INT 3
17509: ARRAY
17510: PPUSH
17511: CALL_OW 205
// wait ( 0 0$5 ) ;
17515: LD_INT 175
17517: PPUSH
17518: CALL_OW 67
// enable ( 231 ) ;
17522: LD_INT 231
17524: ENABLE_MARKED
// end ;
17525: END
// every 0 0$5 marked 231 do
17526: GO 17528
17528: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_armoury ] ] ) ;
17529: LD_ADDR_LOC 23
17533: PUSH
17534: LD_LOC 21
17538: PPUSH
17539: LD_INT 22
17541: PUSH
17542: LD_EXP 2
17546: PUSH
17547: EMPTY
17548: LIST
17549: LIST
17550: PUSH
17551: LD_INT 1
17553: PUSH
17554: EMPTY
17555: LIST
17556: PUSH
17557: LD_INT 30
17559: PUSH
17560: LD_INT 4
17562: PUSH
17563: EMPTY
17564: LIST
17565: LIST
17566: PUSH
17567: EMPTY
17568: LIST
17569: LIST
17570: LIST
17571: PPUSH
17572: CALL_OW 70
17576: ST_TO_ADDR
// if pom = 0 then
17577: LD_LOC 23
17581: PUSH
17582: LD_INT 0
17584: EQUAL
17585: IFFALSE 17645
// begin SetXYS ( nah , 11 ) ;
17587: LD_EXP 35
17591: PPUSH
17592: LD_INT 11
17594: PPUSH
17595: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_armoury , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17599: LD_LOC 26
17603: PUSH
17604: LD_INT 1
17606: ARRAY
17607: PPUSH
17608: LD_INT 4
17610: PPUSH
17611: LD_LOC 43
17615: PUSH
17616: LD_INT 1
17618: ARRAY
17619: PPUSH
17620: LD_LOC 43
17624: PUSH
17625: LD_INT 2
17627: ARRAY
17628: PPUSH
17629: LD_LOC 43
17633: PUSH
17634: LD_INT 3
17636: ARRAY
17637: PPUSH
17638: CALL_OW 205
// enable ;
17642: ENABLE
// end else
17643: GO 17659
// R_arm = pom [ 1 ] end ;
17645: LD_ADDR_LOC 38
17649: PUSH
17650: LD_LOC 23
17654: PUSH
17655: LD_INT 1
17657: ARRAY
17658: ST_TO_ADDR
17659: END
// every 0 0$1 marked 232 do
17660: GO 17662
17662: DISABLE
// begin enable ( 233 ) ;
17663: LD_INT 233
17665: ENABLE_MARKED
// end ;
17666: END
// every 0 0$1 marked 233 do
17667: GO 17669
17669: DISABLE
// begin SetXYS ( nah , 12 ) ;
17670: LD_EXP 35
17674: PPUSH
17675: LD_INT 12
17677: PPUSH
17678: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_track , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17682: LD_LOC 26
17686: PUSH
17687: LD_INT 1
17689: ARRAY
17690: PPUSH
17691: LD_INT 16
17693: PPUSH
17694: LD_LOC 43
17698: PUSH
17699: LD_INT 1
17701: ARRAY
17702: PPUSH
17703: LD_LOC 43
17707: PUSH
17708: LD_INT 2
17710: ARRAY
17711: PPUSH
17712: LD_LOC 43
17716: PUSH
17717: LD_INT 3
17719: ARRAY
17720: PPUSH
17721: CALL_OW 205
// wait ( 0 0$5 ) ;
17725: LD_INT 175
17727: PPUSH
17728: CALL_OW 67
// enable ( 234 ) ;
17732: LD_INT 234
17734: ENABLE_MARKED
// end ;
17735: END
// every 0 0$5 marked 234 do
17736: GO 17738
17738: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_ext_track ] ] ) ;
17739: LD_ADDR_LOC 23
17743: PUSH
17744: LD_LOC 21
17748: PPUSH
17749: LD_INT 22
17751: PUSH
17752: LD_EXP 2
17756: PUSH
17757: EMPTY
17758: LIST
17759: LIST
17760: PUSH
17761: LD_INT 1
17763: PUSH
17764: EMPTY
17765: LIST
17766: PUSH
17767: LD_INT 30
17769: PUSH
17770: LD_INT 16
17772: PUSH
17773: EMPTY
17774: LIST
17775: LIST
17776: PUSH
17777: EMPTY
17778: LIST
17779: LIST
17780: LIST
17781: PPUSH
17782: CALL_OW 70
17786: ST_TO_ADDR
// if pom = 0 then
17787: LD_LOC 23
17791: PUSH
17792: LD_INT 0
17794: EQUAL
17795: IFFALSE 17855
// begin SetXYS ( nah , 12 ) ;
17797: LD_EXP 35
17801: PPUSH
17802: LD_INT 12
17804: PPUSH
17805: CALL 18399 0 2
// ComBuild ( staveci [ 1 ] , b_ext_track , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17809: LD_LOC 26
17813: PUSH
17814: LD_INT 1
17816: ARRAY
17817: PPUSH
17818: LD_INT 16
17820: PPUSH
17821: LD_LOC 43
17825: PUSH
17826: LD_INT 1
17828: ARRAY
17829: PPUSH
17830: LD_LOC 43
17834: PUSH
17835: LD_INT 2
17837: ARRAY
17838: PPUSH
17839: LD_LOC 43
17843: PUSH
17844: LD_INT 3
17846: ARRAY
17847: PPUSH
17848: CALL_OW 145
// enable ;
17852: ENABLE
// end else
17853: GO 17869
// R_etra = pom [ 1 ] ;
17855: LD_ADDR_LOC 40
17859: PUSH
17860: LD_LOC 23
17864: PUSH
17865: LD_INT 1
17867: ARRAY
17868: ST_TO_ADDR
// end ;
17869: END
// every 0 0$1 marked 235 do
17870: GO 17872
17872: DISABLE
// begin SetXYS ( nah , 13 ) ;
17873: LD_EXP 35
17877: PPUSH
17878: LD_INT 13
17880: PPUSH
17881: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_computer , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
17885: LD_LOC 26
17889: PUSH
17890: LD_INT 1
17892: ARRAY
17893: PPUSH
17894: LD_INT 24
17896: PPUSH
17897: LD_LOC 43
17901: PUSH
17902: LD_INT 1
17904: ARRAY
17905: PPUSH
17906: LD_LOC 43
17910: PUSH
17911: LD_INT 2
17913: ARRAY
17914: PPUSH
17915: LD_LOC 43
17919: PUSH
17920: LD_INT 3
17922: ARRAY
17923: PPUSH
17924: CALL_OW 205
// wait ( 0 0$5 ) ;
17928: LD_INT 175
17930: PPUSH
17931: CALL_OW 67
// enable ( 236 ) ;
17935: LD_INT 236
17937: ENABLE_MARKED
// end ;
17938: END
// every 0 0$5 marked 236 do
17939: GO 17941
17941: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_ext_computer ] ] ) ;
17942: LD_ADDR_LOC 23
17946: PUSH
17947: LD_LOC 21
17951: PPUSH
17952: LD_INT 22
17954: PUSH
17955: LD_EXP 2
17959: PUSH
17960: EMPTY
17961: LIST
17962: LIST
17963: PUSH
17964: LD_INT 1
17966: PUSH
17967: EMPTY
17968: LIST
17969: PUSH
17970: LD_INT 30
17972: PUSH
17973: LD_INT 24
17975: PUSH
17976: EMPTY
17977: LIST
17978: LIST
17979: PUSH
17980: EMPTY
17981: LIST
17982: LIST
17983: LIST
17984: PPUSH
17985: CALL_OW 70
17989: ST_TO_ADDR
// if pom = 0 then
17990: LD_LOC 23
17994: PUSH
17995: LD_INT 0
17997: EQUAL
17998: IFFALSE 18058
// begin SetXYS ( nah , 13 ) ;
18000: LD_EXP 35
18004: PPUSH
18005: LD_INT 13
18007: PPUSH
18008: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_computer , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
18012: LD_LOC 26
18016: PUSH
18017: LD_INT 1
18019: ARRAY
18020: PPUSH
18021: LD_INT 24
18023: PPUSH
18024: LD_LOC 43
18028: PUSH
18029: LD_INT 1
18031: ARRAY
18032: PPUSH
18033: LD_LOC 43
18037: PUSH
18038: LD_INT 2
18040: ARRAY
18041: PPUSH
18042: LD_LOC 43
18046: PUSH
18047: LD_INT 3
18049: ARRAY
18050: PPUSH
18051: CALL_OW 205
// enable ;
18055: ENABLE
// end else
18056: GO 18072
// R_ecomp = pom [ 1 ] ;
18058: LD_ADDR_LOC 39
18062: PUSH
18063: LD_LOC 23
18067: PUSH
18068: LD_INT 1
18070: ARRAY
18071: ST_TO_ADDR
// end ;
18072: END
// every 0 0$1 marked 237 do
18073: GO 18075
18075: DISABLE
// begin SetXYS ( nah , 14 ) ;
18076: LD_EXP 35
18080: PPUSH
18081: LD_INT 14
18083: PPUSH
18084: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_siberite_power , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
18088: LD_LOC 26
18092: PUSH
18093: LD_INT 1
18095: ARRAY
18096: PPUSH
18097: LD_INT 28
18099: PPUSH
18100: LD_LOC 43
18104: PUSH
18105: LD_INT 1
18107: ARRAY
18108: PPUSH
18109: LD_LOC 43
18113: PUSH
18114: LD_INT 2
18116: ARRAY
18117: PPUSH
18118: LD_LOC 43
18122: PUSH
18123: LD_INT 3
18125: ARRAY
18126: PPUSH
18127: CALL_OW 205
// wait ( 0 0$5 ) ;
18131: LD_INT 175
18133: PPUSH
18134: CALL_OW 67
// enable ( 238 ) ;
18138: LD_INT 238
18140: ENABLE_MARKED
// end ;
18141: END
// every 0 0$5 marked 238 do
18142: GO 18144
18144: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_siberite_power ] ] ) ;
18145: LD_ADDR_LOC 23
18149: PUSH
18150: LD_LOC 21
18154: PPUSH
18155: LD_INT 22
18157: PUSH
18158: LD_EXP 2
18162: PUSH
18163: EMPTY
18164: LIST
18165: LIST
18166: PUSH
18167: LD_INT 1
18169: PUSH
18170: EMPTY
18171: LIST
18172: PUSH
18173: LD_INT 30
18175: PUSH
18176: LD_INT 28
18178: PUSH
18179: EMPTY
18180: LIST
18181: LIST
18182: PUSH
18183: EMPTY
18184: LIST
18185: LIST
18186: LIST
18187: PPUSH
18188: CALL_OW 70
18192: ST_TO_ADDR
// if pom = 0 then
18193: LD_LOC 23
18197: PUSH
18198: LD_INT 0
18200: EQUAL
18201: IFFALSE 18261
// begin SetXYS ( nah , 14 ) ;
18203: LD_EXP 35
18207: PPUSH
18208: LD_INT 14
18210: PPUSH
18211: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_siberite_power , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
18215: LD_LOC 26
18219: PUSH
18220: LD_INT 1
18222: ARRAY
18223: PPUSH
18224: LD_INT 28
18226: PPUSH
18227: LD_LOC 43
18231: PUSH
18232: LD_INT 1
18234: ARRAY
18235: PPUSH
18236: LD_LOC 43
18240: PUSH
18241: LD_INT 2
18243: ARRAY
18244: PPUSH
18245: LD_LOC 43
18249: PUSH
18250: LD_INT 3
18252: ARRAY
18253: PPUSH
18254: CALL_OW 205
// enable ;
18258: ENABLE
// end else
18259: GO 18391
// if pom = 1 and pom [ 1 ] = R_sel then
18261: LD_LOC 23
18265: PUSH
18266: LD_INT 1
18268: EQUAL
18269: PUSH
18270: LD_LOC 23
18274: PUSH
18275: LD_INT 1
18277: ARRAY
18278: PUSH
18279: LD_LOC 30
18283: EQUAL
18284: AND
18285: IFFALSE 18345
// begin SetXYS ( nah , 14 ) ;
18287: LD_EXP 35
18291: PPUSH
18292: LD_INT 14
18294: PPUSH
18295: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_siberite_power , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
18299: LD_LOC 26
18303: PUSH
18304: LD_INT 1
18306: ARRAY
18307: PPUSH
18308: LD_INT 28
18310: PPUSH
18311: LD_LOC 43
18315: PUSH
18316: LD_INT 1
18318: ARRAY
18319: PPUSH
18320: LD_LOC 43
18324: PUSH
18325: LD_INT 2
18327: ARRAY
18328: PPUSH
18329: LD_LOC 43
18333: PUSH
18334: LD_INT 3
18336: ARRAY
18337: PPUSH
18338: CALL_OW 205
// enable ;
18342: ENABLE
// end else
18343: GO 18391
// if pom [ 1 ] = R_sel then
18345: LD_LOC 23
18349: PUSH
18350: LD_INT 1
18352: ARRAY
18353: PUSH
18354: LD_LOC 30
18358: EQUAL
18359: IFFALSE 18377
// R_oel = pom [ 1 ] else
18361: LD_ADDR_LOC 42
18365: PUSH
18366: LD_LOC 23
18370: PUSH
18371: LD_INT 1
18373: ARRAY
18374: ST_TO_ADDR
18375: GO 18391
// R_oel = pom [ 2 ] ;
18377: LD_ADDR_LOC 42
18381: PUSH
18382: LD_LOC 23
18386: PUSH
18387: LD_INT 2
18389: ARRAY
18390: ST_TO_ADDR
// end ;
18391: END
// every 0 0$1 marked 239 do
18392: GO 18394
18394: DISABLE
// begin disable ( 248 ) ;
18395: LD_INT 248
18397: DISABLE_MARKED
// end ;
18398: END
// function SetXYS ( um , b ) ; begin
18399: LD_INT 0
18401: PPUSH
// if um = 2 then
18402: LD_VAR 0 1
18406: PUSH
18407: LD_INT 2
18409: EQUAL
18410: IFFALSE 18420
// um = 1 ;
18412: LD_ADDR_VAR 0 1
18416: PUSH
18417: LD_INT 1
18419: ST_TO_ADDR
// case b of 1 :
18420: LD_VAR 0 2
18424: PUSH
18425: LD_INT 1
18427: DOUBLE
18428: EQUAL
18429: IFTRUE 18433
18431: GO 18532
18433: POP
// case um of 1 :
18434: LD_VAR 0 1
18438: PUSH
18439: LD_INT 1
18441: DOUBLE
18442: EQUAL
18443: IFTRUE 18447
18445: GO 18469
18447: POP
// XYS = [ 137 , 65 , 2 ] ; 4 :
18448: LD_ADDR_LOC 43
18452: PUSH
18453: LD_INT 137
18455: PUSH
18456: LD_INT 65
18458: PUSH
18459: LD_INT 2
18461: PUSH
18462: EMPTY
18463: LIST
18464: LIST
18465: LIST
18466: ST_TO_ADDR
18467: GO 18530
18469: LD_INT 4
18471: DOUBLE
18472: EQUAL
18473: IFTRUE 18477
18475: GO 18499
18477: POP
// XYS = [ 97 , 112 , 0 ] ; 3 :
18478: LD_ADDR_LOC 43
18482: PUSH
18483: LD_INT 97
18485: PUSH
18486: LD_INT 112
18488: PUSH
18489: LD_INT 0
18491: PUSH
18492: EMPTY
18493: LIST
18494: LIST
18495: LIST
18496: ST_TO_ADDR
18497: GO 18530
18499: LD_INT 3
18501: DOUBLE
18502: EQUAL
18503: IFTRUE 18507
18505: GO 18529
18507: POP
// XYS = [ 48 , 73 , 3 ] ; end ; 2 :
18508: LD_ADDR_LOC 43
18512: PUSH
18513: LD_INT 48
18515: PUSH
18516: LD_INT 73
18518: PUSH
18519: LD_INT 3
18521: PUSH
18522: EMPTY
18523: LIST
18524: LIST
18525: LIST
18526: ST_TO_ADDR
18527: GO 18530
18529: POP
18530: GO 20031
18532: LD_INT 2
18534: DOUBLE
18535: EQUAL
18536: IFTRUE 18540
18538: GO 18639
18540: POP
// case um of 1 :
18541: LD_VAR 0 1
18545: PUSH
18546: LD_INT 1
18548: DOUBLE
18549: EQUAL
18550: IFTRUE 18554
18552: GO 18576
18554: POP
// XYS = [ 150 , 80 , 3 ] ; 4 :
18555: LD_ADDR_LOC 43
18559: PUSH
18560: LD_INT 150
18562: PUSH
18563: LD_INT 80
18565: PUSH
18566: LD_INT 3
18568: PUSH
18569: EMPTY
18570: LIST
18571: LIST
18572: LIST
18573: ST_TO_ADDR
18574: GO 18637
18576: LD_INT 4
18578: DOUBLE
18579: EQUAL
18580: IFTRUE 18584
18582: GO 18606
18584: POP
// XYS = [ 91 , 109 , 3 ] ; 3 :
18585: LD_ADDR_LOC 43
18589: PUSH
18590: LD_INT 91
18592: PUSH
18593: LD_INT 109
18595: PUSH
18596: LD_INT 3
18598: PUSH
18599: EMPTY
18600: LIST
18601: LIST
18602: LIST
18603: ST_TO_ADDR
18604: GO 18637
18606: LD_INT 3
18608: DOUBLE
18609: EQUAL
18610: IFTRUE 18614
18612: GO 18636
18614: POP
// XYS = [ 43 , 71 , 2 ] ; end ; 3 :
18615: LD_ADDR_LOC 43
18619: PUSH
18620: LD_INT 43
18622: PUSH
18623: LD_INT 71
18625: PUSH
18626: LD_INT 2
18628: PUSH
18629: EMPTY
18630: LIST
18631: LIST
18632: LIST
18633: ST_TO_ADDR
18634: GO 18637
18636: POP
18637: GO 20031
18639: LD_INT 3
18641: DOUBLE
18642: EQUAL
18643: IFTRUE 18647
18645: GO 18746
18647: POP
// case um of 1 :
18648: LD_VAR 0 1
18652: PUSH
18653: LD_INT 1
18655: DOUBLE
18656: EQUAL
18657: IFTRUE 18661
18659: GO 18683
18661: POP
// XYS = [ 140 , 63 , 3 ] ; 4 :
18662: LD_ADDR_LOC 43
18666: PUSH
18667: LD_INT 140
18669: PUSH
18670: LD_INT 63
18672: PUSH
18673: LD_INT 3
18675: PUSH
18676: EMPTY
18677: LIST
18678: LIST
18679: LIST
18680: ST_TO_ADDR
18681: GO 18744
18683: LD_INT 4
18685: DOUBLE
18686: EQUAL
18687: IFTRUE 18691
18689: GO 18713
18691: POP
// XYS = [ 105 , 112 , 4 ] ; 3 :
18692: LD_ADDR_LOC 43
18696: PUSH
18697: LD_INT 105
18699: PUSH
18700: LD_INT 112
18702: PUSH
18703: LD_INT 4
18705: PUSH
18706: EMPTY
18707: LIST
18708: LIST
18709: LIST
18710: ST_TO_ADDR
18711: GO 18744
18713: LD_INT 3
18715: DOUBLE
18716: EQUAL
18717: IFTRUE 18721
18719: GO 18743
18721: POP
// XYS = [ 37 , 70 , 2 ] ; end ; 4 :
18722: LD_ADDR_LOC 43
18726: PUSH
18727: LD_INT 37
18729: PUSH
18730: LD_INT 70
18732: PUSH
18733: LD_INT 2
18735: PUSH
18736: EMPTY
18737: LIST
18738: LIST
18739: LIST
18740: ST_TO_ADDR
18741: GO 18744
18743: POP
18744: GO 20031
18746: LD_INT 4
18748: DOUBLE
18749: EQUAL
18750: IFTRUE 18754
18752: GO 18853
18754: POP
// case um of 1 :
18755: LD_VAR 0 1
18759: PUSH
18760: LD_INT 1
18762: DOUBLE
18763: EQUAL
18764: IFTRUE 18768
18766: GO 18790
18768: POP
// XYS = [ 160 , 90 , 5 ] ; 4 :
18769: LD_ADDR_LOC 43
18773: PUSH
18774: LD_INT 160
18776: PUSH
18777: LD_INT 90
18779: PUSH
18780: LD_INT 5
18782: PUSH
18783: EMPTY
18784: LIST
18785: LIST
18786: LIST
18787: ST_TO_ADDR
18788: GO 18851
18790: LD_INT 4
18792: DOUBLE
18793: EQUAL
18794: IFTRUE 18798
18796: GO 18820
18798: POP
// XYS = [ 99 , 94 , 3 ] ; 3 :
18799: LD_ADDR_LOC 43
18803: PUSH
18804: LD_INT 99
18806: PUSH
18807: LD_INT 94
18809: PUSH
18810: LD_INT 3
18812: PUSH
18813: EMPTY
18814: LIST
18815: LIST
18816: LIST
18817: ST_TO_ADDR
18818: GO 18851
18820: LD_INT 3
18822: DOUBLE
18823: EQUAL
18824: IFTRUE 18828
18826: GO 18850
18828: POP
// XYS = [ 44 , 79 , 1 ] ; end ; 5 :
18829: LD_ADDR_LOC 43
18833: PUSH
18834: LD_INT 44
18836: PUSH
18837: LD_INT 79
18839: PUSH
18840: LD_INT 1
18842: PUSH
18843: EMPTY
18844: LIST
18845: LIST
18846: LIST
18847: ST_TO_ADDR
18848: GO 18851
18850: POP
18851: GO 20031
18853: LD_INT 5
18855: DOUBLE
18856: EQUAL
18857: IFTRUE 18861
18859: GO 18960
18861: POP
// case um of 1 :
18862: LD_VAR 0 1
18866: PUSH
18867: LD_INT 1
18869: DOUBLE
18870: EQUAL
18871: IFTRUE 18875
18873: GO 18897
18875: POP
// XYS = [ 133 , 72 , 4 ] ; 4 :
18876: LD_ADDR_LOC 43
18880: PUSH
18881: LD_INT 133
18883: PUSH
18884: LD_INT 72
18886: PUSH
18887: LD_INT 4
18889: PUSH
18890: EMPTY
18891: LIST
18892: LIST
18893: LIST
18894: ST_TO_ADDR
18895: GO 18958
18897: LD_INT 4
18899: DOUBLE
18900: EQUAL
18901: IFTRUE 18905
18903: GO 18927
18905: POP
// XYS = [ 86 , 84 , 2 ] ; 3 :
18906: LD_ADDR_LOC 43
18910: PUSH
18911: LD_INT 86
18913: PUSH
18914: LD_INT 84
18916: PUSH
18917: LD_INT 2
18919: PUSH
18920: EMPTY
18921: LIST
18922: LIST
18923: LIST
18924: ST_TO_ADDR
18925: GO 18958
18927: LD_INT 3
18929: DOUBLE
18930: EQUAL
18931: IFTRUE 18935
18933: GO 18957
18935: POP
// XYS = [ 75 , 90 , 2 ] ; end ; 6 :
18936: LD_ADDR_LOC 43
18940: PUSH
18941: LD_INT 75
18943: PUSH
18944: LD_INT 90
18946: PUSH
18947: LD_INT 2
18949: PUSH
18950: EMPTY
18951: LIST
18952: LIST
18953: LIST
18954: ST_TO_ADDR
18955: GO 18958
18957: POP
18958: GO 20031
18960: LD_INT 6
18962: DOUBLE
18963: EQUAL
18964: IFTRUE 18968
18966: GO 19067
18968: POP
// case um of 1 :
18969: LD_VAR 0 1
18973: PUSH
18974: LD_INT 1
18976: DOUBLE
18977: EQUAL
18978: IFTRUE 18982
18980: GO 19004
18982: POP
// XYS = [ 152 , 71 , 4 ] ; 4 :
18983: LD_ADDR_LOC 43
18987: PUSH
18988: LD_INT 152
18990: PUSH
18991: LD_INT 71
18993: PUSH
18994: LD_INT 4
18996: PUSH
18997: EMPTY
18998: LIST
18999: LIST
19000: LIST
19001: ST_TO_ADDR
19002: GO 19065
19004: LD_INT 4
19006: DOUBLE
19007: EQUAL
19008: IFTRUE 19012
19010: GO 19034
19012: POP
// XYS = [ 103 , 106 , 5 ] ; 3 :
19013: LD_ADDR_LOC 43
19017: PUSH
19018: LD_INT 103
19020: PUSH
19021: LD_INT 106
19023: PUSH
19024: LD_INT 5
19026: PUSH
19027: EMPTY
19028: LIST
19029: LIST
19030: LIST
19031: ST_TO_ADDR
19032: GO 19065
19034: LD_INT 3
19036: DOUBLE
19037: EQUAL
19038: IFTRUE 19042
19040: GO 19064
19042: POP
// XYS = [ 50 , 90 , 3 ] ; end ; 7 :
19043: LD_ADDR_LOC 43
19047: PUSH
19048: LD_INT 50
19050: PUSH
19051: LD_INT 90
19053: PUSH
19054: LD_INT 3
19056: PUSH
19057: EMPTY
19058: LIST
19059: LIST
19060: LIST
19061: ST_TO_ADDR
19062: GO 19065
19064: POP
19065: GO 20031
19067: LD_INT 7
19069: DOUBLE
19070: EQUAL
19071: IFTRUE 19075
19073: GO 19174
19075: POP
// case um of 1 :
19076: LD_VAR 0 1
19080: PUSH
19081: LD_INT 1
19083: DOUBLE
19084: EQUAL
19085: IFTRUE 19089
19087: GO 19111
19089: POP
// XYS = [ 143 , 56 , 2 ] ; 4 :
19090: LD_ADDR_LOC 43
19094: PUSH
19095: LD_INT 143
19097: PUSH
19098: LD_INT 56
19100: PUSH
19101: LD_INT 2
19103: PUSH
19104: EMPTY
19105: LIST
19106: LIST
19107: LIST
19108: ST_TO_ADDR
19109: GO 19172
19111: LD_INT 4
19113: DOUBLE
19114: EQUAL
19115: IFTRUE 19119
19117: GO 19141
19119: POP
// XYS = [ 105 , 93 , 2 ] ; 3 :
19120: LD_ADDR_LOC 43
19124: PUSH
19125: LD_INT 105
19127: PUSH
19128: LD_INT 93
19130: PUSH
19131: LD_INT 2
19133: PUSH
19134: EMPTY
19135: LIST
19136: LIST
19137: LIST
19138: ST_TO_ADDR
19139: GO 19172
19141: LD_INT 3
19143: DOUBLE
19144: EQUAL
19145: IFTRUE 19149
19147: GO 19171
19149: POP
// XYS = [ 59 , 67 , 2 ] ; end ; 8 :
19150: LD_ADDR_LOC 43
19154: PUSH
19155: LD_INT 59
19157: PUSH
19158: LD_INT 67
19160: PUSH
19161: LD_INT 2
19163: PUSH
19164: EMPTY
19165: LIST
19166: LIST
19167: LIST
19168: ST_TO_ADDR
19169: GO 19172
19171: POP
19172: GO 20031
19174: LD_INT 8
19176: DOUBLE
19177: EQUAL
19178: IFTRUE 19182
19180: GO 19281
19182: POP
// case um of 1 :
19183: LD_VAR 0 1
19187: PUSH
19188: LD_INT 1
19190: DOUBLE
19191: EQUAL
19192: IFTRUE 19196
19194: GO 19218
19196: POP
// XYS = [ 160 , 93 , 0 ] ; 4 :
19197: LD_ADDR_LOC 43
19201: PUSH
19202: LD_INT 160
19204: PUSH
19205: LD_INT 93
19207: PUSH
19208: LD_INT 0
19210: PUSH
19211: EMPTY
19212: LIST
19213: LIST
19214: LIST
19215: ST_TO_ADDR
19216: GO 19279
19218: LD_INT 4
19220: DOUBLE
19221: EQUAL
19222: IFTRUE 19226
19224: GO 19248
19226: POP
// XYS = [ 102 , 94 , 4 ] ; 3 :
19227: LD_ADDR_LOC 43
19231: PUSH
19232: LD_INT 102
19234: PUSH
19235: LD_INT 94
19237: PUSH
19238: LD_INT 4
19240: PUSH
19241: EMPTY
19242: LIST
19243: LIST
19244: LIST
19245: ST_TO_ADDR
19246: GO 19279
19248: LD_INT 3
19250: DOUBLE
19251: EQUAL
19252: IFTRUE 19256
19254: GO 19278
19256: POP
// XYS = [ 41 , 76 , 2 ] ; end ; 9 :
19257: LD_ADDR_LOC 43
19261: PUSH
19262: LD_INT 41
19264: PUSH
19265: LD_INT 76
19267: PUSH
19268: LD_INT 2
19270: PUSH
19271: EMPTY
19272: LIST
19273: LIST
19274: LIST
19275: ST_TO_ADDR
19276: GO 19279
19278: POP
19279: GO 20031
19281: LD_INT 9
19283: DOUBLE
19284: EQUAL
19285: IFTRUE 19289
19287: GO 19388
19289: POP
// case um of 1 :
19290: LD_VAR 0 1
19294: PUSH
19295: LD_INT 1
19297: DOUBLE
19298: EQUAL
19299: IFTRUE 19303
19301: GO 19325
19303: POP
// XYS = [ 140 , 74 , 3 ] ; 4 :
19304: LD_ADDR_LOC 43
19308: PUSH
19309: LD_INT 140
19311: PUSH
19312: LD_INT 74
19314: PUSH
19315: LD_INT 3
19317: PUSH
19318: EMPTY
19319: LIST
19320: LIST
19321: LIST
19322: ST_TO_ADDR
19323: GO 19386
19325: LD_INT 4
19327: DOUBLE
19328: EQUAL
19329: IFTRUE 19333
19331: GO 19355
19333: POP
// XYS = [ 93 , 85 , 2 ] ; 3 :
19334: LD_ADDR_LOC 43
19338: PUSH
19339: LD_INT 93
19341: PUSH
19342: LD_INT 85
19344: PUSH
19345: LD_INT 2
19347: PUSH
19348: EMPTY
19349: LIST
19350: LIST
19351: LIST
19352: ST_TO_ADDR
19353: GO 19386
19355: LD_INT 3
19357: DOUBLE
19358: EQUAL
19359: IFTRUE 19363
19361: GO 19385
19363: POP
// XYS = [ 60 , 93 , 2 ] ; end ; 10 :
19364: LD_ADDR_LOC 43
19368: PUSH
19369: LD_INT 60
19371: PUSH
19372: LD_INT 93
19374: PUSH
19375: LD_INT 2
19377: PUSH
19378: EMPTY
19379: LIST
19380: LIST
19381: LIST
19382: ST_TO_ADDR
19383: GO 19386
19385: POP
19386: GO 20031
19388: LD_INT 10
19390: DOUBLE
19391: EQUAL
19392: IFTRUE 19396
19394: GO 19495
19396: POP
// case um of 1 :
19397: LD_VAR 0 1
19401: PUSH
19402: LD_INT 1
19404: DOUBLE
19405: EQUAL
19406: IFTRUE 19410
19408: GO 19432
19410: POP
// XYS = [ 157 , 98 , 5 ] ; 4 :
19411: LD_ADDR_LOC 43
19415: PUSH
19416: LD_INT 157
19418: PUSH
19419: LD_INT 98
19421: PUSH
19422: LD_INT 5
19424: PUSH
19425: EMPTY
19426: LIST
19427: LIST
19428: LIST
19429: ST_TO_ADDR
19430: GO 19493
19432: LD_INT 4
19434: DOUBLE
19435: EQUAL
19436: IFTRUE 19440
19438: GO 19462
19440: POP
// XYS = [ 85 , 96 , 2 ] ; 3 :
19441: LD_ADDR_LOC 43
19445: PUSH
19446: LD_INT 85
19448: PUSH
19449: LD_INT 96
19451: PUSH
19452: LD_INT 2
19454: PUSH
19455: EMPTY
19456: LIST
19457: LIST
19458: LIST
19459: ST_TO_ADDR
19460: GO 19493
19462: LD_INT 3
19464: DOUBLE
19465: EQUAL
19466: IFTRUE 19470
19468: GO 19492
19470: POP
// XYS = [ 63 , 87 , 2 ] ; end ; 11 :
19471: LD_ADDR_LOC 43
19475: PUSH
19476: LD_INT 63
19478: PUSH
19479: LD_INT 87
19481: PUSH
19482: LD_INT 2
19484: PUSH
19485: EMPTY
19486: LIST
19487: LIST
19488: LIST
19489: ST_TO_ADDR
19490: GO 19493
19492: POP
19493: GO 20031
19495: LD_INT 11
19497: DOUBLE
19498: EQUAL
19499: IFTRUE 19503
19501: GO 19602
19503: POP
// case um of 1 :
19504: LD_VAR 0 1
19508: PUSH
19509: LD_INT 1
19511: DOUBLE
19512: EQUAL
19513: IFTRUE 19517
19515: GO 19539
19517: POP
// XYS = [ 144 , 61 , 2 ] ; 4 :
19518: LD_ADDR_LOC 43
19522: PUSH
19523: LD_INT 144
19525: PUSH
19526: LD_INT 61
19528: PUSH
19529: LD_INT 2
19531: PUSH
19532: EMPTY
19533: LIST
19534: LIST
19535: LIST
19536: ST_TO_ADDR
19537: GO 19600
19539: LD_INT 4
19541: DOUBLE
19542: EQUAL
19543: IFTRUE 19547
19545: GO 19569
19547: POP
// XYS = [ 102 , 113 , 0 ] ; 3 :
19548: LD_ADDR_LOC 43
19552: PUSH
19553: LD_INT 102
19555: PUSH
19556: LD_INT 113
19558: PUSH
19559: LD_INT 0
19561: PUSH
19562: EMPTY
19563: LIST
19564: LIST
19565: LIST
19566: ST_TO_ADDR
19567: GO 19600
19569: LD_INT 3
19571: DOUBLE
19572: EQUAL
19573: IFTRUE 19577
19575: GO 19599
19577: POP
// XYS = [ 55 , 88 , 0 ] ; end ; 12 :
19578: LD_ADDR_LOC 43
19582: PUSH
19583: LD_INT 55
19585: PUSH
19586: LD_INT 88
19588: PUSH
19589: LD_INT 0
19591: PUSH
19592: EMPTY
19593: LIST
19594: LIST
19595: LIST
19596: ST_TO_ADDR
19597: GO 19600
19599: POP
19600: GO 20031
19602: LD_INT 12
19604: DOUBLE
19605: EQUAL
19606: IFTRUE 19610
19608: GO 19709
19610: POP
// case um of 1 :
19611: LD_VAR 0 1
19615: PUSH
19616: LD_INT 1
19618: DOUBLE
19619: EQUAL
19620: IFTRUE 19624
19622: GO 19646
19624: POP
// XYS = [ 164 , 94 , 5 ] ; 4 :
19625: LD_ADDR_LOC 43
19629: PUSH
19630: LD_INT 164
19632: PUSH
19633: LD_INT 94
19635: PUSH
19636: LD_INT 5
19638: PUSH
19639: EMPTY
19640: LIST
19641: LIST
19642: LIST
19643: ST_TO_ADDR
19644: GO 19707
19646: LD_INT 4
19648: DOUBLE
19649: EQUAL
19650: IFTRUE 19654
19652: GO 19676
19654: POP
// XYS = [ 96 , 91 , 2 ] ; 3 :
19655: LD_ADDR_LOC 43
19659: PUSH
19660: LD_INT 96
19662: PUSH
19663: LD_INT 91
19665: PUSH
19666: LD_INT 2
19668: PUSH
19669: EMPTY
19670: LIST
19671: LIST
19672: LIST
19673: ST_TO_ADDR
19674: GO 19707
19676: LD_INT 3
19678: DOUBLE
19679: EQUAL
19680: IFTRUE 19684
19682: GO 19706
19684: POP
// XYS = [ 44 , 82 , 0 ] ; end ; 13 :
19685: LD_ADDR_LOC 43
19689: PUSH
19690: LD_INT 44
19692: PUSH
19693: LD_INT 82
19695: PUSH
19696: LD_INT 0
19698: PUSH
19699: EMPTY
19700: LIST
19701: LIST
19702: LIST
19703: ST_TO_ADDR
19704: GO 19707
19706: POP
19707: GO 20031
19709: LD_INT 13
19711: DOUBLE
19712: EQUAL
19713: IFTRUE 19717
19715: GO 19816
19717: POP
// case um of 1 :
19718: LD_VAR 0 1
19722: PUSH
19723: LD_INT 1
19725: DOUBLE
19726: EQUAL
19727: IFTRUE 19731
19729: GO 19753
19731: POP
// XYS = [ 156 , 90 , 1 ] ; 4 :
19732: LD_ADDR_LOC 43
19736: PUSH
19737: LD_INT 156
19739: PUSH
19740: LD_INT 90
19742: PUSH
19743: LD_INT 1
19745: PUSH
19746: EMPTY
19747: LIST
19748: LIST
19749: LIST
19750: ST_TO_ADDR
19751: GO 19814
19753: LD_INT 4
19755: DOUBLE
19756: EQUAL
19757: IFTRUE 19761
19759: GO 19783
19761: POP
// XYS = [ 95 , 94 , 1 ] ; 3 :
19762: LD_ADDR_LOC 43
19766: PUSH
19767: LD_INT 95
19769: PUSH
19770: LD_INT 94
19772: PUSH
19773: LD_INT 1
19775: PUSH
19776: EMPTY
19777: LIST
19778: LIST
19779: LIST
19780: ST_TO_ADDR
19781: GO 19814
19783: LD_INT 3
19785: DOUBLE
19786: EQUAL
19787: IFTRUE 19791
19789: GO 19813
19791: POP
// XYS = [ 44 , 75 , 3 ] ; end ; 14 :
19792: LD_ADDR_LOC 43
19796: PUSH
19797: LD_INT 44
19799: PUSH
19800: LD_INT 75
19802: PUSH
19803: LD_INT 3
19805: PUSH
19806: EMPTY
19807: LIST
19808: LIST
19809: LIST
19810: ST_TO_ADDR
19811: GO 19814
19813: POP
19814: GO 20031
19816: LD_INT 14
19818: DOUBLE
19819: EQUAL
19820: IFTRUE 19824
19822: GO 19923
19824: POP
// case um of 1 :
19825: LD_VAR 0 1
19829: PUSH
19830: LD_INT 1
19832: DOUBLE
19833: EQUAL
19834: IFTRUE 19838
19836: GO 19860
19838: POP
// XYS = [ 152 , 84 , 0 ] ; 4 :
19839: LD_ADDR_LOC 43
19843: PUSH
19844: LD_INT 152
19846: PUSH
19847: LD_INT 84
19849: PUSH
19850: LD_INT 0
19852: PUSH
19853: EMPTY
19854: LIST
19855: LIST
19856: LIST
19857: ST_TO_ADDR
19858: GO 19921
19860: LD_INT 4
19862: DOUBLE
19863: EQUAL
19864: IFTRUE 19868
19866: GO 19890
19868: POP
// XYS = [ 106 , 116 , 2 ] ; 3 :
19869: LD_ADDR_LOC 43
19873: PUSH
19874: LD_INT 106
19876: PUSH
19877: LD_INT 116
19879: PUSH
19880: LD_INT 2
19882: PUSH
19883: EMPTY
19884: LIST
19885: LIST
19886: LIST
19887: ST_TO_ADDR
19888: GO 19921
19890: LD_INT 3
19892: DOUBLE
19893: EQUAL
19894: IFTRUE 19898
19896: GO 19920
19898: POP
// XYS = [ 52 , 75 , 1 ] ; end ; 15 :
19899: LD_ADDR_LOC 43
19903: PUSH
19904: LD_INT 52
19906: PUSH
19907: LD_INT 75
19909: PUSH
19910: LD_INT 1
19912: PUSH
19913: EMPTY
19914: LIST
19915: LIST
19916: LIST
19917: ST_TO_ADDR
19918: GO 19921
19920: POP
19921: GO 20031
19923: LD_INT 15
19925: DOUBLE
19926: EQUAL
19927: IFTRUE 19931
19929: GO 20030
19931: POP
// case um of 1 :
19932: LD_VAR 0 1
19936: PUSH
19937: LD_INT 1
19939: DOUBLE
19940: EQUAL
19941: IFTRUE 19945
19943: GO 19967
19945: POP
// XYS = [ 160 , 86 , 3 ] ; 4 :
19946: LD_ADDR_LOC 43
19950: PUSH
19951: LD_INT 160
19953: PUSH
19954: LD_INT 86
19956: PUSH
19957: LD_INT 3
19959: PUSH
19960: EMPTY
19961: LIST
19962: LIST
19963: LIST
19964: ST_TO_ADDR
19965: GO 20028
19967: LD_INT 4
19969: DOUBLE
19970: EQUAL
19971: IFTRUE 19975
19973: GO 19997
19975: POP
// XYS = [ 99 , 90 , 3 ] ; 3 :
19976: LD_ADDR_LOC 43
19980: PUSH
19981: LD_INT 99
19983: PUSH
19984: LD_INT 90
19986: PUSH
19987: LD_INT 3
19989: PUSH
19990: EMPTY
19991: LIST
19992: LIST
19993: LIST
19994: ST_TO_ADDR
19995: GO 20028
19997: LD_INT 3
19999: DOUBLE
20000: EQUAL
20001: IFTRUE 20005
20003: GO 20027
20005: POP
// XYS = [ 48 , 83 , 5 ] ; end ; end ;
20006: LD_ADDR_LOC 43
20010: PUSH
20011: LD_INT 48
20013: PUSH
20014: LD_INT 83
20016: PUSH
20017: LD_INT 5
20019: PUSH
20020: EMPTY
20021: LIST
20022: LIST
20023: LIST
20024: ST_TO_ADDR
20025: GO 20028
20027: POP
20028: GO 20031
20030: POP
// end ;
20031: LD_VAR 0 3
20035: RET
// every 0 0$3 trigger RUSI_AUTA = 1 marked 299 do var pom1 ;
20036: LD_EXP 36
20040: PUSH
20041: LD_INT 1
20043: EQUAL
20044: IFFALSE 20381
20046: GO 20048
20048: DISABLE
20049: LD_INT 0
20051: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_weapon , ru_cargo_bay ] ] ) ;
20052: LD_ADDR_LOC 23
20056: PUSH
20057: LD_INT 22
20059: PUSH
20060: LD_EXP 2
20064: PUSH
20065: EMPTY
20066: LIST
20067: LIST
20068: PUSH
20069: LD_INT 1
20071: PUSH
20072: EMPTY
20073: LIST
20074: PUSH
20075: LD_INT 34
20077: PUSH
20078: LD_INT 51
20080: PUSH
20081: EMPTY
20082: LIST
20083: LIST
20084: PUSH
20085: EMPTY
20086: LIST
20087: LIST
20088: LIST
20089: PPUSH
20090: CALL_OW 69
20094: ST_TO_ADDR
// if pom = 0 then
20095: LD_LOC 23
20099: PUSH
20100: LD_INT 0
20102: EQUAL
20103: IFFALSE 20115
// RUSI_AUTA = 0 else
20105: LD_ADDR_EXP 36
20109: PUSH
20110: LD_INT 0
20112: ST_TO_ADDR
20113: GO 20381
// begin for i in pom do
20115: LD_ADDR_LOC 22
20119: PUSH
20120: LD_LOC 23
20124: PUSH
20125: FOR_IN
20126: IFFALSE 20378
// if not Carry ( i ) then
20128: LD_LOC 22
20132: PPUSH
20133: CALL_OW 281
20137: NOT
20138: IFFALSE 20172
// begin ComMoveXY ( i , 144 , 118 ) ;
20140: LD_LOC 22
20144: PPUSH
20145: LD_INT 144
20147: PPUSH
20148: LD_INT 118
20150: PPUSH
20151: CALL_OW 111
// AddComMoveXY ( i , 143 , 116 ) ;
20155: LD_LOC 22
20159: PPUSH
20160: LD_INT 143
20162: PPUSH
20163: LD_INT 116
20165: PPUSH
20166: CALL_OW 171
// end else
20170: GO 20376
// begin ComMoveXY ( i , GetX ( R_depot ) , GetY ( R_depot ) ) ;
20172: LD_LOC 22
20176: PPUSH
20177: LD_LOC 28
20181: PPUSH
20182: CALL_OW 250
20186: PPUSH
20187: LD_LOC 28
20191: PPUSH
20192: CALL_OW 251
20196: PPUSH
20197: CALL_OW 111
// wait ( 0 0$2 ) ;
20201: LD_INT 70
20203: PPUSH
20204: CALL_OW 67
// pom1 = FilterAllUnits ( [ [ f_side , Rusi ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
20208: LD_ADDR_VAR 0 1
20212: PUSH
20213: LD_INT 22
20215: PUSH
20216: LD_EXP 2
20220: PUSH
20221: EMPTY
20222: LIST
20223: LIST
20224: PUSH
20225: LD_INT 2
20227: PUSH
20228: LD_INT 30
20230: PUSH
20231: LD_INT 0
20233: PUSH
20234: EMPTY
20235: LIST
20236: LIST
20237: PUSH
20238: LD_INT 30
20240: PUSH
20241: LD_INT 1
20243: PUSH
20244: EMPTY
20245: LIST
20246: LIST
20247: PUSH
20248: EMPTY
20249: LIST
20250: LIST
20251: LIST
20252: PUSH
20253: EMPTY
20254: LIST
20255: LIST
20256: PPUSH
20257: CALL_OW 69
20261: ST_TO_ADDR
// if pom1 > 0 then
20262: LD_VAR 0 1
20266: PUSH
20267: LD_INT 0
20269: GREATER
20270: IFFALSE 20376
// begin pom1 = pom1 [ 1 ] ;
20272: LD_ADDR_VAR 0 1
20276: PUSH
20277: LD_VAR 0 1
20281: PUSH
20282: LD_INT 1
20284: ARRAY
20285: ST_TO_ADDR
// AddResourceType ( GetBase ( pom1 ) , mat_siberit , GetCargo ( i , mat_siberit ) ) ;
20286: LD_VAR 0 1
20290: PPUSH
20291: CALL_OW 274
20295: PPUSH
20296: LD_INT 3
20298: PPUSH
20299: LD_LOC 22
20303: PPUSH
20304: LD_INT 3
20306: PPUSH
20307: CALL_OW 289
20311: PPUSH
20312: CALL_OW 276
// AddResourceType ( GetBase ( pom1 ) , mat_oil , GetCargo ( i , mat_oil ) ) ;
20316: LD_VAR 0 1
20320: PPUSH
20321: CALL_OW 274
20325: PPUSH
20326: LD_INT 2
20328: PPUSH
20329: LD_LOC 22
20333: PPUSH
20334: LD_INT 2
20336: PPUSH
20337: CALL_OW 289
20341: PPUSH
20342: CALL_OW 276
// SetCargo ( i , mat_siberit , 0 ) ;
20346: LD_LOC 22
20350: PPUSH
20351: LD_INT 3
20353: PPUSH
20354: LD_INT 0
20356: PPUSH
20357: CALL_OW 290
// SetCargo ( i , mat_oil , 0 ) ;
20361: LD_LOC 22
20365: PPUSH
20366: LD_INT 2
20368: PPUSH
20369: LD_INT 0
20371: PPUSH
20372: CALL_OW 290
// end ; end ;
20376: GO 20125
20378: POP
20379: POP
// enable ;
20380: ENABLE
// end ; end ;
20381: PPOPN 1
20383: END
// every 0 0$5 trigger RUSI_AUTA = 1 do
20384: LD_EXP 36
20388: PUSH
20389: LD_INT 1
20391: EQUAL
20392: IFFALSE 20492
20394: GO 20396
20396: DISABLE
// begin pom = FilterUnitsInArea ( Seber , [ [ f_side , Rusi ] , [ f_and ] , [ f_weapon , ru_cargo_bay ] ] ) ;
20397: LD_ADDR_LOC 23
20401: PUSH
20402: LD_INT 16
20404: PPUSH
20405: LD_INT 22
20407: PUSH
20408: LD_EXP 2
20412: PUSH
20413: EMPTY
20414: LIST
20415: LIST
20416: PUSH
20417: LD_INT 1
20419: PUSH
20420: EMPTY
20421: LIST
20422: PUSH
20423: LD_INT 34
20425: PUSH
20426: LD_INT 51
20428: PUSH
20429: EMPTY
20430: LIST
20431: LIST
20432: PUSH
20433: EMPTY
20434: LIST
20435: LIST
20436: LIST
20437: PPUSH
20438: CALL_OW 70
20442: ST_TO_ADDR
// if pom > 0 then
20443: LD_LOC 23
20447: PUSH
20448: LD_INT 0
20450: GREATER
20451: IFFALSE 20491
// begin for i in pom do
20453: LD_ADDR_LOC 22
20457: PUSH
20458: LD_LOC 23
20462: PUSH
20463: FOR_IN
20464: IFFALSE 20489
// if not Carry ( i ) then
20466: LD_LOC 22
20470: PPUSH
20471: CALL_OW 281
20475: NOT
20476: IFFALSE 20487
// RemoveUnit ( i ) ;
20478: LD_LOC 22
20482: PPUSH
20483: CALL_OW 64
20487: GO 20463
20489: POP
20490: POP
// end ; enable ;
20491: ENABLE
// end ;
20492: END
// every 0 0$17 marked 241 do
20493: GO 20495
20495: DISABLE
// begin wait ( wait2 [ difficulty ] ) ;
20496: LD_EXP 66
20500: PUSH
20501: LD_OWVAR 67
20505: ARRAY
20506: PPUSH
20507: CALL_OW 67
// if GetSide ( R_factory ) <> Rusi then
20511: LD_LOC 31
20515: PPUSH
20516: CALL_OW 255
20520: PUSH
20521: LD_EXP 2
20525: NONEQUAL
20526: IFFALSE 20530
// exit ;
20528: GO 20624
// rus_cheat_source ( 200 , 50 , 50 ) ;
20530: LD_INT 200
20532: PPUSH
20533: LD_INT 50
20535: PPUSH
20536: LD_INT 50
20538: PPUSH
20539: CALL 14097 0 3
// for i := 1 to pocaut [ difficulty ] do
20543: LD_ADDR_LOC 22
20547: PUSH
20548: DOUBLE
20549: LD_INT 1
20551: DEC
20552: ST_TO_ADDR
20553: LD_EXP 65
20557: PUSH
20558: LD_OWVAR 67
20562: ARRAY
20563: PUSH
20564: FOR_TO
20565: IFFALSE 20598
// begin AddComConstruct ( R_factory , ru_heavy_tracked , engine_siberite , control_computer , zbranrusi [ difficulty ] ) ;
20567: LD_LOC 31
20571: PPUSH
20572: LD_INT 24
20574: PPUSH
20575: LD_INT 3
20577: PPUSH
20578: LD_INT 3
20580: PPUSH
20581: LD_EXP 63
20585: PUSH
20586: LD_OWVAR 67
20590: ARRAY
20591: PPUSH
20592: CALL_OW 185
// end ;
20596: GO 20564
20598: POP
20599: POP
// AddComConstruct ( R_factory , ru_heavy_tracked , engine_combustion , control_computer , ru_heavy_gun ) ;
20600: LD_LOC 31
20604: PPUSH
20605: LD_INT 24
20607: PPUSH
20608: LD_INT 1
20610: PPUSH
20611: LD_INT 3
20613: PPUSH
20614: LD_INT 46
20616: PPUSH
20617: CALL_OW 185
// enable ( 242 ) ;
20621: LD_INT 242
20623: ENABLE_MARKED
// end ;
20624: END
// every 0 0$5 trigger FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) = pocaut [ difficulty ] + 1 marked 242 do
20625: LD_INT 22
20627: PUSH
20628: LD_EXP 2
20632: PUSH
20633: EMPTY
20634: LIST
20635: LIST
20636: PUSH
20637: LD_INT 1
20639: PUSH
20640: EMPTY
20641: LIST
20642: PUSH
20643: LD_INT 33
20645: PUSH
20646: LD_INT 3
20648: PUSH
20649: EMPTY
20650: LIST
20651: LIST
20652: PUSH
20653: EMPTY
20654: LIST
20655: LIST
20656: LIST
20657: PPUSH
20658: CALL_OW 69
20662: PUSH
20663: LD_EXP 65
20667: PUSH
20668: LD_OWVAR 67
20672: ARRAY
20673: PUSH
20674: LD_INT 1
20676: PLUS
20677: EQUAL
20678: IFFALSE 21011
20680: GO 20682
20682: DISABLE
// begin UTOK := FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) ;
20683: LD_ADDR_LOC 44
20687: PUSH
20688: LD_INT 22
20690: PUSH
20691: LD_EXP 2
20695: PUSH
20696: EMPTY
20697: LIST
20698: LIST
20699: PUSH
20700: LD_INT 1
20702: PUSH
20703: EMPTY
20704: LIST
20705: PUSH
20706: LD_INT 33
20708: PUSH
20709: LD_INT 3
20711: PUSH
20712: EMPTY
20713: LIST
20714: LIST
20715: PUSH
20716: EMPTY
20717: LIST
20718: LIST
20719: LIST
20720: PPUSH
20721: CALL_OW 69
20725: ST_TO_ADDR
// atway := GetAttackWay ;
20726: LD_ADDR_LOC 45
20730: PUSH
20731: CALL 21012 0 0
20735: ST_TO_ADDR
// for i in atway do
20736: LD_ADDR_LOC 22
20740: PUSH
20741: LD_LOC 45
20745: PUSH
20746: FOR_IN
20747: IFFALSE 20778
// AddComAgressiveMove ( UTOK , i [ 1 ] , i [ 2 ] ) ;
20749: LD_LOC 44
20753: PPUSH
20754: LD_LOC 22
20758: PUSH
20759: LD_INT 1
20761: ARRAY
20762: PPUSH
20763: LD_LOC 22
20767: PUSH
20768: LD_INT 2
20770: ARRAY
20771: PPUSH
20772: CALL_OW 174
20776: GO 20746
20778: POP
20779: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_building ] ] ) ;
20780: LD_ADDR_LOC 23
20784: PUSH
20785: LD_INT 22
20787: PUSH
20788: LD_EXP 3
20792: PUSH
20793: EMPTY
20794: LIST
20795: LIST
20796: PUSH
20797: LD_INT 1
20799: PUSH
20800: EMPTY
20801: LIST
20802: PUSH
20803: LD_INT 21
20805: PUSH
20806: LD_INT 3
20808: PUSH
20809: EMPTY
20810: LIST
20811: LIST
20812: PUSH
20813: EMPTY
20814: LIST
20815: LIST
20816: LIST
20817: PPUSH
20818: CALL_OW 69
20822: ST_TO_ADDR
// if pom > 0 then
20823: LD_LOC 23
20827: PUSH
20828: LD_INT 0
20830: GREATER
20831: IFFALSE 20870
// AddComAgressiveMove ( UTOK , GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ) ;
20833: LD_LOC 44
20837: PPUSH
20838: LD_LOC 23
20842: PUSH
20843: LD_INT 1
20845: ARRAY
20846: PPUSH
20847: CALL_OW 250
20851: PPUSH
20852: LD_LOC 23
20856: PUSH
20857: LD_INT 1
20859: ARRAY
20860: PPUSH
20861: CALL_OW 251
20865: PPUSH
20866: CALL_OW 174
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
20870: LD_ADDR_LOC 23
20874: PUSH
20875: LD_INT 22
20877: PUSH
20878: LD_EXP 3
20882: PUSH
20883: EMPTY
20884: LIST
20885: LIST
20886: PUSH
20887: LD_INT 2
20889: PUSH
20890: LD_INT 21
20892: PUSH
20893: LD_INT 1
20895: PUSH
20896: EMPTY
20897: LIST
20898: LIST
20899: PUSH
20900: LD_INT 21
20902: PUSH
20903: LD_INT 2
20905: PUSH
20906: EMPTY
20907: LIST
20908: LIST
20909: PUSH
20910: EMPTY
20911: LIST
20912: LIST
20913: LIST
20914: PUSH
20915: EMPTY
20916: LIST
20917: LIST
20918: PPUSH
20919: CALL_OW 69
20923: ST_TO_ADDR
// if pom > 0 then
20924: LD_LOC 23
20928: PUSH
20929: LD_INT 0
20931: GREATER
20932: IFFALSE 20995
// begin AddComAttackUnit ( UTOK , pom [ 1 ] ) ;
20934: LD_LOC 44
20938: PPUSH
20939: LD_LOC 23
20943: PUSH
20944: LD_INT 1
20946: ARRAY
20947: PPUSH
20948: CALL_OW 175
// AddComAgressiveMove ( UTOK , GetX ( JMM ) , GetY ( JMM ) ) ;
20952: LD_LOC 44
20956: PPUSH
20957: LD_EXP 42
20961: PPUSH
20962: CALL_OW 250
20966: PPUSH
20967: LD_EXP 42
20971: PPUSH
20972: CALL_OW 251
20976: PPUSH
20977: CALL_OW 174
// AddComAttackUnit ( UTOK , JMM ) ;
20981: LD_LOC 44
20985: PPUSH
20986: LD_EXP 42
20990: PPUSH
20991: CALL_OW 175
// end ; Dial := 4 ;
20995: LD_ADDR_EXP 40
20999: PUSH
21000: LD_INT 4
21002: ST_TO_ADDR
// PRU_ATTACK = 3 ;
21003: LD_ADDR_EXP 37
21007: PUSH
21008: LD_INT 3
21010: ST_TO_ADDR
// end ;
21011: END
// function GetAttackWay ; begin
21012: LD_INT 0
21014: PPUSH
// pomnah := Rand ( 1 , 4 ) ;
21015: LD_ADDR_LOC 46
21019: PUSH
21020: LD_INT 1
21022: PPUSH
21023: LD_INT 4
21025: PPUSH
21026: CALL_OW 12
21030: ST_TO_ADDR
// case nah of 1 , 2 :
21031: LD_EXP 35
21035: PUSH
21036: LD_INT 1
21038: DOUBLE
21039: EQUAL
21040: IFTRUE 21050
21042: LD_INT 2
21044: DOUBLE
21045: EQUAL
21046: IFTRUE 21050
21048: GO 21350
21050: POP
// case pomnah of 1 :
21051: LD_LOC 46
21055: PUSH
21056: LD_INT 1
21058: DOUBLE
21059: EQUAL
21060: IFTRUE 21064
21062: GO 21173
21064: POP
// pom = [ [ 123 , 83 ] , [ 95 , 102 ] , [ 72 , 99 ] , [ 56 , 78 ] , [ 66 , 55 ] , [ 81 , 49 ] , [ 92 , 47 ] , [ 101 , 47 ] , [ 106 , 37 ] ] ; 2 :
21065: LD_ADDR_LOC 23
21069: PUSH
21070: LD_INT 123
21072: PUSH
21073: LD_INT 83
21075: PUSH
21076: EMPTY
21077: LIST
21078: LIST
21079: PUSH
21080: LD_INT 95
21082: PUSH
21083: LD_INT 102
21085: PUSH
21086: EMPTY
21087: LIST
21088: LIST
21089: PUSH
21090: LD_INT 72
21092: PUSH
21093: LD_INT 99
21095: PUSH
21096: EMPTY
21097: LIST
21098: LIST
21099: PUSH
21100: LD_INT 56
21102: PUSH
21103: LD_INT 78
21105: PUSH
21106: EMPTY
21107: LIST
21108: LIST
21109: PUSH
21110: LD_INT 66
21112: PUSH
21113: LD_INT 55
21115: PUSH
21116: EMPTY
21117: LIST
21118: LIST
21119: PUSH
21120: LD_INT 81
21122: PUSH
21123: LD_INT 49
21125: PUSH
21126: EMPTY
21127: LIST
21128: LIST
21129: PUSH
21130: LD_INT 92
21132: PUSH
21133: LD_INT 47
21135: PUSH
21136: EMPTY
21137: LIST
21138: LIST
21139: PUSH
21140: LD_INT 101
21142: PUSH
21143: LD_INT 47
21145: PUSH
21146: EMPTY
21147: LIST
21148: LIST
21149: PUSH
21150: LD_INT 106
21152: PUSH
21153: LD_INT 37
21155: PUSH
21156: EMPTY
21157: LIST
21158: LIST
21159: PUSH
21160: EMPTY
21161: LIST
21162: LIST
21163: LIST
21164: LIST
21165: LIST
21166: LIST
21167: LIST
21168: LIST
21169: LIST
21170: ST_TO_ADDR
21171: GO 21348
21173: LD_INT 2
21175: DOUBLE
21176: EQUAL
21177: IFTRUE 21181
21179: GO 21268
21181: POP
// pom = [ [ 123 , 83 ] , [ 95 , 102 ] , [ 78 , 61 ] , [ 78 , 49 ] , [ 90 , 46 ] , [ 103 , 45 ] , [ 108 , 35 ] ] ; 3 , 4 :
21182: LD_ADDR_LOC 23
21186: PUSH
21187: LD_INT 123
21189: PUSH
21190: LD_INT 83
21192: PUSH
21193: EMPTY
21194: LIST
21195: LIST
21196: PUSH
21197: LD_INT 95
21199: PUSH
21200: LD_INT 102
21202: PUSH
21203: EMPTY
21204: LIST
21205: LIST
21206: PUSH
21207: LD_INT 78
21209: PUSH
21210: LD_INT 61
21212: PUSH
21213: EMPTY
21214: LIST
21215: LIST
21216: PUSH
21217: LD_INT 78
21219: PUSH
21220: LD_INT 49
21222: PUSH
21223: EMPTY
21224: LIST
21225: LIST
21226: PUSH
21227: LD_INT 90
21229: PUSH
21230: LD_INT 46
21232: PUSH
21233: EMPTY
21234: LIST
21235: LIST
21236: PUSH
21237: LD_INT 103
21239: PUSH
21240: LD_INT 45
21242: PUSH
21243: EMPTY
21244: LIST
21245: LIST
21246: PUSH
21247: LD_INT 108
21249: PUSH
21250: LD_INT 35
21252: PUSH
21253: EMPTY
21254: LIST
21255: LIST
21256: PUSH
21257: EMPTY
21258: LIST
21259: LIST
21260: LIST
21261: LIST
21262: LIST
21263: LIST
21264: LIST
21265: ST_TO_ADDR
21266: GO 21348
21268: LD_INT 3
21270: DOUBLE
21271: EQUAL
21272: IFTRUE 21282
21274: LD_INT 4
21276: DOUBLE
21277: EQUAL
21278: IFTRUE 21282
21280: GO 21347
21282: POP
// pom = [ [ 146 , 65 ] , [ 137 , 42 ] , [ 127 , 21 ] , [ 112 , 16 ] , [ 106 , 25 ] ] ; end ; 3 :
21283: LD_ADDR_LOC 23
21287: PUSH
21288: LD_INT 146
21290: PUSH
21291: LD_INT 65
21293: PUSH
21294: EMPTY
21295: LIST
21296: LIST
21297: PUSH
21298: LD_INT 137
21300: PUSH
21301: LD_INT 42
21303: PUSH
21304: EMPTY
21305: LIST
21306: LIST
21307: PUSH
21308: LD_INT 127
21310: PUSH
21311: LD_INT 21
21313: PUSH
21314: EMPTY
21315: LIST
21316: LIST
21317: PUSH
21318: LD_INT 112
21320: PUSH
21321: LD_INT 16
21323: PUSH
21324: EMPTY
21325: LIST
21326: LIST
21327: PUSH
21328: LD_INT 106
21330: PUSH
21331: LD_INT 25
21333: PUSH
21334: EMPTY
21335: LIST
21336: LIST
21337: PUSH
21338: EMPTY
21339: LIST
21340: LIST
21341: LIST
21342: LIST
21343: LIST
21344: ST_TO_ADDR
21345: GO 21348
21347: POP
21348: GO 22145
21350: LD_INT 3
21352: DOUBLE
21353: EQUAL
21354: IFTRUE 21358
21356: GO 21725
21358: POP
// case pomnah of 1 :
21359: LD_LOC 46
21363: PUSH
21364: LD_INT 1
21366: DOUBLE
21367: EQUAL
21368: IFTRUE 21372
21370: GO 21470
21372: POP
// pom = [ [ 71 , 102 ] , [ 57 , 81 ] , [ 66 , 67 ] , [ 66 , 55 ] , [ 81 , 49 ] , [ 92 , 47 ] , [ 101 , 47 ] , [ 106 , 37 ] ] ; 2 :
21373: LD_ADDR_LOC 23
21377: PUSH
21378: LD_INT 71
21380: PUSH
21381: LD_INT 102
21383: PUSH
21384: EMPTY
21385: LIST
21386: LIST
21387: PUSH
21388: LD_INT 57
21390: PUSH
21391: LD_INT 81
21393: PUSH
21394: EMPTY
21395: LIST
21396: LIST
21397: PUSH
21398: LD_INT 66
21400: PUSH
21401: LD_INT 67
21403: PUSH
21404: EMPTY
21405: LIST
21406: LIST
21407: PUSH
21408: LD_INT 66
21410: PUSH
21411: LD_INT 55
21413: PUSH
21414: EMPTY
21415: LIST
21416: LIST
21417: PUSH
21418: LD_INT 81
21420: PUSH
21421: LD_INT 49
21423: PUSH
21424: EMPTY
21425: LIST
21426: LIST
21427: PUSH
21428: LD_INT 92
21430: PUSH
21431: LD_INT 47
21433: PUSH
21434: EMPTY
21435: LIST
21436: LIST
21437: PUSH
21438: LD_INT 101
21440: PUSH
21441: LD_INT 47
21443: PUSH
21444: EMPTY
21445: LIST
21446: LIST
21447: PUSH
21448: LD_INT 106
21450: PUSH
21451: LD_INT 37
21453: PUSH
21454: EMPTY
21455: LIST
21456: LIST
21457: PUSH
21458: EMPTY
21459: LIST
21460: LIST
21461: LIST
21462: LIST
21463: LIST
21464: LIST
21465: LIST
21466: LIST
21467: ST_TO_ADDR
21468: GO 21723
21470: LD_INT 2
21472: DOUBLE
21473: EQUAL
21474: IFTRUE 21478
21476: GO 21543
21478: POP
// pom = [ [ 78 , 61 ] , [ 78 , 49 ] , [ 90 , 46 ] , [ 103 , 45 ] , [ 108 , 35 ] ] ; 3 :
21479: LD_ADDR_LOC 23
21483: PUSH
21484: LD_INT 78
21486: PUSH
21487: LD_INT 61
21489: PUSH
21490: EMPTY
21491: LIST
21492: LIST
21493: PUSH
21494: LD_INT 78
21496: PUSH
21497: LD_INT 49
21499: PUSH
21500: EMPTY
21501: LIST
21502: LIST
21503: PUSH
21504: LD_INT 90
21506: PUSH
21507: LD_INT 46
21509: PUSH
21510: EMPTY
21511: LIST
21512: LIST
21513: PUSH
21514: LD_INT 103
21516: PUSH
21517: LD_INT 45
21519: PUSH
21520: EMPTY
21521: LIST
21522: LIST
21523: PUSH
21524: LD_INT 108
21526: PUSH
21527: LD_INT 35
21529: PUSH
21530: EMPTY
21531: LIST
21532: LIST
21533: PUSH
21534: EMPTY
21535: LIST
21536: LIST
21537: LIST
21538: LIST
21539: LIST
21540: ST_TO_ADDR
21541: GO 21723
21543: LD_INT 3
21545: DOUBLE
21546: EQUAL
21547: IFTRUE 21551
21549: GO 21627
21551: POP
// pom = [ [ 121 , 82 ] , [ 143 , 67 ] , [ 143 , 69 ] , [ 122 , 66 ] , [ 116 , 52 ] , [ 107 , 35 ] ] ; 4 :
21552: LD_ADDR_LOC 23
21556: PUSH
21557: LD_INT 121
21559: PUSH
21560: LD_INT 82
21562: PUSH
21563: EMPTY
21564: LIST
21565: LIST
21566: PUSH
21567: LD_INT 143
21569: PUSH
21570: LD_INT 67
21572: PUSH
21573: EMPTY
21574: LIST
21575: LIST
21576: PUSH
21577: LD_INT 143
21579: PUSH
21580: LD_INT 69
21582: PUSH
21583: EMPTY
21584: LIST
21585: LIST
21586: PUSH
21587: LD_INT 122
21589: PUSH
21590: LD_INT 66
21592: PUSH
21593: EMPTY
21594: LIST
21595: LIST
21596: PUSH
21597: LD_INT 116
21599: PUSH
21600: LD_INT 52
21602: PUSH
21603: EMPTY
21604: LIST
21605: LIST
21606: PUSH
21607: LD_INT 107
21609: PUSH
21610: LD_INT 35
21612: PUSH
21613: EMPTY
21614: LIST
21615: LIST
21616: PUSH
21617: EMPTY
21618: LIST
21619: LIST
21620: LIST
21621: LIST
21622: LIST
21623: LIST
21624: ST_TO_ADDR
21625: GO 21723
21627: LD_INT 4
21629: DOUBLE
21630: EQUAL
21631: IFTRUE 21635
21633: GO 21722
21635: POP
// pom = [ [ 121 , 82 ] , [ 143 , 67 ] , [ 146 , 65 ] , [ 137 , 42 ] , [ 127 , 21 ] , [ 112 , 16 ] , [ 106 , 25 ] ] ; end ; 4 :
21636: LD_ADDR_LOC 23
21640: PUSH
21641: LD_INT 121
21643: PUSH
21644: LD_INT 82
21646: PUSH
21647: EMPTY
21648: LIST
21649: LIST
21650: PUSH
21651: LD_INT 143
21653: PUSH
21654: LD_INT 67
21656: PUSH
21657: EMPTY
21658: LIST
21659: LIST
21660: PUSH
21661: LD_INT 146
21663: PUSH
21664: LD_INT 65
21666: PUSH
21667: EMPTY
21668: LIST
21669: LIST
21670: PUSH
21671: LD_INT 137
21673: PUSH
21674: LD_INT 42
21676: PUSH
21677: EMPTY
21678: LIST
21679: LIST
21680: PUSH
21681: LD_INT 127
21683: PUSH
21684: LD_INT 21
21686: PUSH
21687: EMPTY
21688: LIST
21689: LIST
21690: PUSH
21691: LD_INT 112
21693: PUSH
21694: LD_INT 16
21696: PUSH
21697: EMPTY
21698: LIST
21699: LIST
21700: PUSH
21701: LD_INT 106
21703: PUSH
21704: LD_INT 25
21706: PUSH
21707: EMPTY
21708: LIST
21709: LIST
21710: PUSH
21711: EMPTY
21712: LIST
21713: LIST
21714: LIST
21715: LIST
21716: LIST
21717: LIST
21718: LIST
21719: ST_TO_ADDR
21720: GO 21723
21722: POP
21723: GO 22145
21725: LD_INT 4
21727: DOUBLE
21728: EQUAL
21729: IFTRUE 21733
21731: GO 22144
21733: POP
// case pomnah of 1 :
21734: LD_LOC 46
21738: PUSH
21739: LD_INT 1
21741: DOUBLE
21742: EQUAL
21743: IFTRUE 21747
21745: GO 21812
21747: POP
// pom = [ [ 66 , 55 ] , [ 81 , 49 ] , [ 92 , 47 ] , [ 101 , 47 ] , [ 106 , 37 ] ] ; 2 :
21748: LD_ADDR_LOC 23
21752: PUSH
21753: LD_INT 66
21755: PUSH
21756: LD_INT 55
21758: PUSH
21759: EMPTY
21760: LIST
21761: LIST
21762: PUSH
21763: LD_INT 81
21765: PUSH
21766: LD_INT 49
21768: PUSH
21769: EMPTY
21770: LIST
21771: LIST
21772: PUSH
21773: LD_INT 92
21775: PUSH
21776: LD_INT 47
21778: PUSH
21779: EMPTY
21780: LIST
21781: LIST
21782: PUSH
21783: LD_INT 101
21785: PUSH
21786: LD_INT 47
21788: PUSH
21789: EMPTY
21790: LIST
21791: LIST
21792: PUSH
21793: LD_INT 106
21795: PUSH
21796: LD_INT 37
21798: PUSH
21799: EMPTY
21800: LIST
21801: LIST
21802: PUSH
21803: EMPTY
21804: LIST
21805: LIST
21806: LIST
21807: LIST
21808: LIST
21809: ST_TO_ADDR
21810: GO 22142
21812: LD_INT 2
21814: DOUBLE
21815: EQUAL
21816: IFTRUE 21820
21818: GO 21907
21820: POP
// pom = [ [ 70 , 99 ] , [ 97 , 94 ] , [ 78 , 61 ] , [ 78 , 49 ] , [ 90 , 46 ] , [ 103 , 45 ] , [ 108 , 35 ] ] ; 3 :
21821: LD_ADDR_LOC 23
21825: PUSH
21826: LD_INT 70
21828: PUSH
21829: LD_INT 99
21831: PUSH
21832: EMPTY
21833: LIST
21834: LIST
21835: PUSH
21836: LD_INT 97
21838: PUSH
21839: LD_INT 94
21841: PUSH
21842: EMPTY
21843: LIST
21844: LIST
21845: PUSH
21846: LD_INT 78
21848: PUSH
21849: LD_INT 61
21851: PUSH
21852: EMPTY
21853: LIST
21854: LIST
21855: PUSH
21856: LD_INT 78
21858: PUSH
21859: LD_INT 49
21861: PUSH
21862: EMPTY
21863: LIST
21864: LIST
21865: PUSH
21866: LD_INT 90
21868: PUSH
21869: LD_INT 46
21871: PUSH
21872: EMPTY
21873: LIST
21874: LIST
21875: PUSH
21876: LD_INT 103
21878: PUSH
21879: LD_INT 45
21881: PUSH
21882: EMPTY
21883: LIST
21884: LIST
21885: PUSH
21886: LD_INT 108
21888: PUSH
21889: LD_INT 35
21891: PUSH
21892: EMPTY
21893: LIST
21894: LIST
21895: PUSH
21896: EMPTY
21897: LIST
21898: LIST
21899: LIST
21900: LIST
21901: LIST
21902: LIST
21903: LIST
21904: ST_TO_ADDR
21905: GO 22142
21907: LD_INT 3
21909: DOUBLE
21910: EQUAL
21911: IFTRUE 21915
21913: GO 22013
21915: POP
// pom = [ [ 74 , 99 ] , [ 107 , 95 ] , [ 126 , 79 ] , [ 142 , 73 ] , [ 144 , 68 ] , [ 122 , 66 ] , [ 116 , 52 ] , [ 107 , 35 ] ] ; 4 :
21916: LD_ADDR_LOC 23
21920: PUSH
21921: LD_INT 74
21923: PUSH
21924: LD_INT 99
21926: PUSH
21927: EMPTY
21928: LIST
21929: LIST
21930: PUSH
21931: LD_INT 107
21933: PUSH
21934: LD_INT 95
21936: PUSH
21937: EMPTY
21938: LIST
21939: LIST
21940: PUSH
21941: LD_INT 126
21943: PUSH
21944: LD_INT 79
21946: PUSH
21947: EMPTY
21948: LIST
21949: LIST
21950: PUSH
21951: LD_INT 142
21953: PUSH
21954: LD_INT 73
21956: PUSH
21957: EMPTY
21958: LIST
21959: LIST
21960: PUSH
21961: LD_INT 144
21963: PUSH
21964: LD_INT 68
21966: PUSH
21967: EMPTY
21968: LIST
21969: LIST
21970: PUSH
21971: LD_INT 122
21973: PUSH
21974: LD_INT 66
21976: PUSH
21977: EMPTY
21978: LIST
21979: LIST
21980: PUSH
21981: LD_INT 116
21983: PUSH
21984: LD_INT 52
21986: PUSH
21987: EMPTY
21988: LIST
21989: LIST
21990: PUSH
21991: LD_INT 107
21993: PUSH
21994: LD_INT 35
21996: PUSH
21997: EMPTY
21998: LIST
21999: LIST
22000: PUSH
22001: EMPTY
22002: LIST
22003: LIST
22004: LIST
22005: LIST
22006: LIST
22007: LIST
22008: LIST
22009: LIST
22010: ST_TO_ADDR
22011: GO 22142
22013: LD_INT 4
22015: DOUBLE
22016: EQUAL
22017: IFTRUE 22021
22019: GO 22141
22021: POP
// pom = [ [ 74 , 99 ] , [ 107 , 95 ] , [ 126 , 79 ] , [ 142 , 73 ] , [ 144 , 68 ] , [ 146 , 65 ] , [ 137 , 42 ] , [ 127 , 21 ] , [ 112 , 16 ] , [ 106 , 25 ] ] ; end ; end ;
22022: LD_ADDR_LOC 23
22026: PUSH
22027: LD_INT 74
22029: PUSH
22030: LD_INT 99
22032: PUSH
22033: EMPTY
22034: LIST
22035: LIST
22036: PUSH
22037: LD_INT 107
22039: PUSH
22040: LD_INT 95
22042: PUSH
22043: EMPTY
22044: LIST
22045: LIST
22046: PUSH
22047: LD_INT 126
22049: PUSH
22050: LD_INT 79
22052: PUSH
22053: EMPTY
22054: LIST
22055: LIST
22056: PUSH
22057: LD_INT 142
22059: PUSH
22060: LD_INT 73
22062: PUSH
22063: EMPTY
22064: LIST
22065: LIST
22066: PUSH
22067: LD_INT 144
22069: PUSH
22070: LD_INT 68
22072: PUSH
22073: EMPTY
22074: LIST
22075: LIST
22076: PUSH
22077: LD_INT 146
22079: PUSH
22080: LD_INT 65
22082: PUSH
22083: EMPTY
22084: LIST
22085: LIST
22086: PUSH
22087: LD_INT 137
22089: PUSH
22090: LD_INT 42
22092: PUSH
22093: EMPTY
22094: LIST
22095: LIST
22096: PUSH
22097: LD_INT 127
22099: PUSH
22100: LD_INT 21
22102: PUSH
22103: EMPTY
22104: LIST
22105: LIST
22106: PUSH
22107: LD_INT 112
22109: PUSH
22110: LD_INT 16
22112: PUSH
22113: EMPTY
22114: LIST
22115: LIST
22116: PUSH
22117: LD_INT 106
22119: PUSH
22120: LD_INT 25
22122: PUSH
22123: EMPTY
22124: LIST
22125: LIST
22126: PUSH
22127: EMPTY
22128: LIST
22129: LIST
22130: LIST
22131: LIST
22132: LIST
22133: LIST
22134: LIST
22135: LIST
22136: LIST
22137: LIST
22138: ST_TO_ADDR
22139: GO 22142
22141: POP
22142: GO 22145
22144: POP
// result := pom ;
22145: LD_ADDR_VAR 0 1
22149: PUSH
22150: LD_LOC 23
22154: ST_TO_ADDR
// end ;
22155: LD_VAR 0 1
22159: RET
// every 0 0$1 do var zona ;
22160: GO 22162
22162: DISABLE
22163: LD_INT 0
22165: PPUSH
// begin case nah of 1 , 2 :
22166: LD_EXP 35
22170: PUSH
22171: LD_INT 1
22173: DOUBLE
22174: EQUAL
22175: IFTRUE 22185
22177: LD_INT 2
22179: DOUBLE
22180: EQUAL
22181: IFTRUE 22185
22183: GO 22196
22185: POP
// zona = RZ1 ; 3 :
22186: LD_ADDR_VAR 0 1
22190: PUSH
22191: LD_INT 8
22193: ST_TO_ADDR
22194: GO 22235
22196: LD_INT 3
22198: DOUBLE
22199: EQUAL
22200: IFTRUE 22204
22202: GO 22215
22204: POP
// zona = RZ2 ; 4 :
22205: LD_ADDR_VAR 0 1
22209: PUSH
22210: LD_INT 9
22212: ST_TO_ADDR
22213: GO 22235
22215: LD_INT 4
22217: DOUBLE
22218: EQUAL
22219: IFTRUE 22223
22221: GO 22234
22223: POP
// zona = RZ3 ; end ;
22224: LD_ADDR_VAR 0 1
22228: PUSH
22229: LD_INT 10
22231: ST_TO_ADDR
22232: GO 22235
22234: POP
// if FilterUnitsInArea ( zona , [ [ f_side , Rusi ] , [ f_control , control_computer ] ] ) > 1 then
22235: LD_VAR 0 1
22239: PPUSH
22240: LD_INT 22
22242: PUSH
22243: LD_EXP 2
22247: PUSH
22248: EMPTY
22249: LIST
22250: LIST
22251: PUSH
22252: LD_INT 33
22254: PUSH
22255: LD_INT 3
22257: PUSH
22258: EMPTY
22259: LIST
22260: LIST
22261: PUSH
22262: EMPTY
22263: LIST
22264: LIST
22265: PPUSH
22266: CALL_OW 70
22270: PUSH
22271: LD_INT 1
22273: GREATER
22274: IFFALSE 22288
// begin wait ( 0 0$45 ) ;
22276: LD_INT 1575
22278: PPUSH
22279: CALL_OW 67
// enable ( 244 ) ;
22283: LD_INT 244
22285: ENABLE_MARKED
// end else
22286: GO 22289
// enable ;
22288: ENABLE
// end ;
22289: PPOPN 1
22291: END
// every 1 1$0 marked 244 do
22292: GO 22294
22294: DISABLE
// begin wait ( Rand ( 1 , kutoku [ difficulty ] ) ) ;
22295: LD_INT 1
22297: PPUSH
22298: LD_EXP 67
22302: PUSH
22303: LD_OWVAR 67
22307: ARRAY
22308: PPUSH
22309: CALL_OW 12
22313: PPUSH
22314: CALL_OW 67
// if GetSide ( R_factory ) <> Rusi then
22318: LD_LOC 31
22322: PPUSH
22323: CALL_OW 255
22327: PUSH
22328: LD_EXP 2
22332: NONEQUAL
22333: IFFALSE 22337
// exit ;
22335: GO 22494
// rus_cheat_source ( 300 , 150 , 70 ) ;
22337: LD_INT 300
22339: PPUSH
22340: LD_INT 150
22342: PPUSH
22343: LD_INT 70
22345: PPUSH
22346: CALL 14097 0 3
// if Prob ( 50 ) then
22350: LD_INT 50
22352: PPUSH
22353: CALL_OW 13
22357: IFFALSE 22385
// nahodne_tanku := Rand ( 0 , ntanku [ difficulty ] ) else
22359: LD_ADDR_LOC 47
22363: PUSH
22364: LD_INT 0
22366: PPUSH
22367: LD_EXP 68
22371: PUSH
22372: LD_OWVAR 67
22376: ARRAY
22377: PPUSH
22378: CALL_OW 12
22382: ST_TO_ADDR
22383: GO 22393
// nahodne_tanku := 0 ;
22385: LD_ADDR_LOC 47
22389: PUSH
22390: LD_INT 0
22392: ST_TO_ADDR
// if Prob ( 33 ) then
22393: LD_INT 33
22395: PPUSH
22396: CALL_OW 13
22400: IFFALSE 22412
// vojaci := true else
22402: LD_ADDR_LOC 48
22406: PUSH
22407: LD_INT 1
22409: ST_TO_ADDR
22410: GO 22420
// vojaci = false ;
22412: LD_ADDR_LOC 48
22416: PUSH
22417: LD_INT 0
22419: ST_TO_ADDR
// for i := 1 to pocaut [ difficulty ] + nahodne_tanku do
22420: LD_ADDR_LOC 22
22424: PUSH
22425: DOUBLE
22426: LD_INT 1
22428: DEC
22429: ST_TO_ADDR
22430: LD_EXP 65
22434: PUSH
22435: LD_OWVAR 67
22439: ARRAY
22440: PUSH
22441: LD_LOC 47
22445: PLUS
22446: PUSH
22447: FOR_TO
22448: IFFALSE 22481
// begin AddComConstruct ( R_factory , ru_heavy_tracked , engine_siberite , control_computer , zbranrusi [ difficulty ] ) ;
22450: LD_LOC 31
22454: PPUSH
22455: LD_INT 24
22457: PPUSH
22458: LD_INT 3
22460: PPUSH
22461: LD_INT 3
22463: PPUSH
22464: LD_EXP 63
22468: PUSH
22469: LD_OWVAR 67
22473: ARRAY
22474: PPUSH
22475: CALL_OW 185
// end ;
22479: GO 22447
22481: POP
22482: POP
// enable ( 245 ) ;
22483: LD_INT 245
22485: ENABLE_MARKED
// disable_me ( 244 ) ;
22486: LD_INT 244
22488: PPUSH
22489: CALL 22954 0 1
// enable ;
22493: ENABLE
// end ;
22494: END
// every 0 0$5 trigger FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) = pocaut [ difficulty ] + nahodne_tanku marked 245 do
22495: LD_INT 22
22497: PUSH
22498: LD_EXP 2
22502: PUSH
22503: EMPTY
22504: LIST
22505: LIST
22506: PUSH
22507: LD_INT 1
22509: PUSH
22510: EMPTY
22511: LIST
22512: PUSH
22513: LD_INT 33
22515: PUSH
22516: LD_INT 3
22518: PUSH
22519: EMPTY
22520: LIST
22521: LIST
22522: PUSH
22523: EMPTY
22524: LIST
22525: LIST
22526: LIST
22527: PPUSH
22528: CALL_OW 69
22532: PUSH
22533: LD_EXP 65
22537: PUSH
22538: LD_OWVAR 67
22542: ARRAY
22543: PUSH
22544: LD_LOC 47
22548: PLUS
22549: EQUAL
22550: IFFALSE 22895
22552: GO 22554
22554: DISABLE
// begin UTOK := FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) ;
22555: LD_ADDR_LOC 44
22559: PUSH
22560: LD_INT 22
22562: PUSH
22563: LD_EXP 2
22567: PUSH
22568: EMPTY
22569: LIST
22570: LIST
22571: PUSH
22572: LD_INT 1
22574: PUSH
22575: EMPTY
22576: LIST
22577: PUSH
22578: LD_INT 33
22580: PUSH
22581: LD_INT 3
22583: PUSH
22584: EMPTY
22585: LIST
22586: LIST
22587: PUSH
22588: EMPTY
22589: LIST
22590: LIST
22591: LIST
22592: PPUSH
22593: CALL_OW 69
22597: ST_TO_ADDR
// atway := GetAttackWay ;
22598: LD_ADDR_LOC 45
22602: PUSH
22603: CALL 21012 0 0
22607: ST_TO_ADDR
// for i in atway do
22608: LD_ADDR_LOC 22
22612: PUSH
22613: LD_LOC 45
22617: PUSH
22618: FOR_IN
22619: IFFALSE 22650
// AddComAgressiveMove ( UTOK , i [ 1 ] , i [ 2 ] ) ;
22621: LD_LOC 44
22625: PPUSH
22626: LD_LOC 22
22630: PUSH
22631: LD_INT 1
22633: ARRAY
22634: PPUSH
22635: LD_LOC 22
22639: PUSH
22640: LD_INT 2
22642: ARRAY
22643: PPUSH
22644: CALL_OW 174
22648: GO 22618
22650: POP
22651: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_building ] ] ) ;
22652: LD_ADDR_LOC 23
22656: PUSH
22657: LD_INT 22
22659: PUSH
22660: LD_EXP 3
22664: PUSH
22665: EMPTY
22666: LIST
22667: LIST
22668: PUSH
22669: LD_INT 1
22671: PUSH
22672: EMPTY
22673: LIST
22674: PUSH
22675: LD_INT 21
22677: PUSH
22678: LD_INT 3
22680: PUSH
22681: EMPTY
22682: LIST
22683: LIST
22684: PUSH
22685: EMPTY
22686: LIST
22687: LIST
22688: LIST
22689: PPUSH
22690: CALL_OW 69
22694: ST_TO_ADDR
// if pom > 0 then
22695: LD_LOC 23
22699: PUSH
22700: LD_INT 0
22702: GREATER
22703: IFFALSE 22742
// AddComAgressiveMove ( UTOK , GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ) ;
22705: LD_LOC 44
22709: PPUSH
22710: LD_LOC 23
22714: PUSH
22715: LD_INT 1
22717: ARRAY
22718: PPUSH
22719: CALL_OW 250
22723: PPUSH
22724: LD_LOC 23
22728: PUSH
22729: LD_INT 1
22731: ARRAY
22732: PPUSH
22733: CALL_OW 251
22737: PPUSH
22738: CALL_OW 174
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
22742: LD_ADDR_LOC 23
22746: PUSH
22747: LD_INT 22
22749: PUSH
22750: LD_EXP 3
22754: PUSH
22755: EMPTY
22756: LIST
22757: LIST
22758: PUSH
22759: LD_INT 2
22761: PUSH
22762: LD_INT 21
22764: PUSH
22765: LD_INT 1
22767: PUSH
22768: EMPTY
22769: LIST
22770: LIST
22771: PUSH
22772: LD_INT 21
22774: PUSH
22775: LD_INT 2
22777: PUSH
22778: EMPTY
22779: LIST
22780: LIST
22781: PUSH
22782: EMPTY
22783: LIST
22784: LIST
22785: LIST
22786: PUSH
22787: EMPTY
22788: LIST
22789: LIST
22790: PPUSH
22791: CALL_OW 69
22795: ST_TO_ADDR
// if pom > 0 then
22796: LD_LOC 23
22800: PUSH
22801: LD_INT 0
22803: GREATER
22804: IFFALSE 22867
// begin AddComAttackUnit ( UTOK , pom [ 1 ] ) ;
22806: LD_LOC 44
22810: PPUSH
22811: LD_LOC 23
22815: PUSH
22816: LD_INT 1
22818: ARRAY
22819: PPUSH
22820: CALL_OW 175
// AddComAgressiveMove ( UTOK , GetX ( JMM ) , GetY ( JMM ) ) ;
22824: LD_LOC 44
22828: PPUSH
22829: LD_EXP 42
22833: PPUSH
22834: CALL_OW 250
22838: PPUSH
22839: LD_EXP 42
22843: PPUSH
22844: CALL_OW 251
22848: PPUSH
22849: CALL_OW 174
// AddComAttackUnit ( UTOK , JMM ) ;
22853: LD_LOC 44
22857: PPUSH
22858: LD_EXP 42
22862: PPUSH
22863: CALL_OW 175
// end ; disable_me ( 245 ) ;
22867: LD_INT 245
22869: PPUSH
22870: CALL 22954 0 1
// enable ( 246 ) ;
22874: LD_INT 246
22876: ENABLE_MARKED
// enable ( 247 ) ;
22877: LD_INT 247
22879: ENABLE_MARKED
// PRU_ATTACK := PRU_ATTACK + 1 ;
22880: LD_ADDR_EXP 37
22884: PUSH
22885: LD_EXP 37
22889: PUSH
22890: LD_INT 1
22892: PLUS
22893: ST_TO_ADDR
// enable ;
22894: ENABLE
// end ;
22895: END
// every 0 0$6 marked 246 do
22896: GO 22898
22898: DISABLE
// begin if FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) = 0 then
22899: LD_INT 22
22901: PUSH
22902: LD_EXP 2
22906: PUSH
22907: EMPTY
22908: LIST
22909: LIST
22910: PUSH
22911: LD_INT 1
22913: PUSH
22914: EMPTY
22915: LIST
22916: PUSH
22917: LD_INT 33
22919: PUSH
22920: LD_INT 3
22922: PUSH
22923: EMPTY
22924: LIST
22925: LIST
22926: PUSH
22927: EMPTY
22928: LIST
22929: LIST
22930: LIST
22931: PPUSH
22932: CALL_OW 69
22936: PUSH
22937: LD_INT 0
22939: EQUAL
22940: IFFALSE 22952
// begin enable ( 244 ) ;
22942: LD_INT 244
22944: ENABLE_MARKED
// disable_me ( 246 ) ;
22945: LD_INT 246
22947: PPUSH
22948: CALL 22954 0 1
// end ; enable ;
22952: ENABLE
// end ;
22953: END
// function disable_me ( ct ) ; begin
22954: LD_INT 0
22956: PPUSH
// wait ( 0 0$1 ) ;
22957: LD_INT 35
22959: PPUSH
22960: CALL_OW 67
// disable ( ct ) ;
22964: LD_VAR 0 1
22968: DISABLE_MARKED
// end ;
22969: LD_VAR 0 2
22973: RET
// every 0 0$3 marked 247 do var i ;
22974: GO 22976
22976: DISABLE
22977: LD_INT 0
22979: PPUSH
// begin if vojaci then
22980: LD_LOC 48
22984: IFFALSE 23418
// begin for i in CREATE_VOJACI_LIST do
22986: LD_ADDR_VAR 0 1
22990: PUSH
22991: LD_EXP 15
22995: PUSH
22996: FOR_IN
22997: IFFALSE 23016
// PlaceUnitArea ( i , RUEV , false ) ;
22999: LD_VAR 0 1
23003: PPUSH
23004: LD_INT 19
23006: PPUSH
23007: LD_INT 0
23009: PPUSH
23010: CALL_OW 49
23014: GO 22996
23016: POP
23017: POP
// VOJUTOK = FilterUnitsInArea ( RUEV , [ [ f_side , Rusi ] ] ) ;
23018: LD_ADDR_LOC 19
23022: PUSH
23023: LD_INT 19
23025: PPUSH
23026: LD_INT 22
23028: PUSH
23029: LD_EXP 2
23033: PUSH
23034: EMPTY
23035: LIST
23036: LIST
23037: PUSH
23038: EMPTY
23039: LIST
23040: PPUSH
23041: CALL_OW 70
23045: ST_TO_ADDR
// AddComAgressiveMove ( VOJUTOK , 122 , 40 ) ;
23046: LD_LOC 19
23050: PPUSH
23051: LD_INT 122
23053: PPUSH
23054: LD_INT 40
23056: PPUSH
23057: CALL_OW 174
// for i in VOJUTOK do
23061: LD_ADDR_VAR 0 1
23065: PUSH
23066: LD_LOC 19
23070: PUSH
23071: FOR_IN
23072: IFFALSE 23172
// begin AddComSpaceShift ( i , 109 , 40 ) ;
23074: LD_VAR 0 1
23078: PPUSH
23079: LD_INT 109
23081: PPUSH
23082: LD_INT 40
23084: PPUSH
23085: CALL_OW 213
// AddComSailEvent ( i , 666 ) ;
23089: LD_VAR 0 1
23093: PPUSH
23094: LD_INT 666
23096: PPUSH
23097: CALL_OW 224
// AddComTimeShift ( i , 107 , 41 ) ;
23101: LD_VAR 0 1
23105: PPUSH
23106: LD_INT 107
23108: PPUSH
23109: LD_INT 41
23111: PPUSH
23112: CALL_OW 214
// AddComSailEvent ( i , 666 ) ;
23116: LD_VAR 0 1
23120: PPUSH
23121: LD_INT 666
23123: PPUSH
23124: CALL_OW 224
// AddComSpaceShift ( i , 110 , 30 ) ;
23128: LD_VAR 0 1
23132: PPUSH
23133: LD_INT 110
23135: PPUSH
23136: LD_INT 30
23138: PPUSH
23139: CALL_OW 213
// AddComSailEvent ( i , 666 ) ;
23143: LD_VAR 0 1
23147: PPUSH
23148: LD_INT 666
23150: PPUSH
23151: CALL_OW 224
// wait ( 0 0$2 ) ;
23155: LD_INT 70
23157: PPUSH
23158: CALL_OW 67
// bazookaDialog = 1 ;
23162: LD_ADDR_EXP 12
23166: PUSH
23167: LD_INT 1
23169: ST_TO_ADDR
// end ;
23170: GO 23071
23172: POP
23173: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_building ] ] ) ;
23174: LD_ADDR_LOC 23
23178: PUSH
23179: LD_INT 22
23181: PUSH
23182: LD_EXP 3
23186: PUSH
23187: EMPTY
23188: LIST
23189: LIST
23190: PUSH
23191: LD_INT 1
23193: PUSH
23194: EMPTY
23195: LIST
23196: PUSH
23197: LD_INT 21
23199: PUSH
23200: LD_INT 3
23202: PUSH
23203: EMPTY
23204: LIST
23205: LIST
23206: PUSH
23207: EMPTY
23208: LIST
23209: LIST
23210: LIST
23211: PPUSH
23212: CALL_OW 69
23216: ST_TO_ADDR
// if pom > 0 then
23217: LD_LOC 23
23221: PUSH
23222: LD_INT 0
23224: GREATER
23225: IFFALSE 23293
// for i in VOJUTOK do
23227: LD_ADDR_VAR 0 1
23231: PUSH
23232: LD_LOC 19
23236: PUSH
23237: FOR_IN
23238: IFFALSE 23291
// begin AddComSpaceShift ( i , GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ) ;
23240: LD_VAR 0 1
23244: PPUSH
23245: LD_LOC 23
23249: PUSH
23250: LD_INT 1
23252: ARRAY
23253: PPUSH
23254: CALL_OW 250
23258: PPUSH
23259: LD_LOC 23
23263: PUSH
23264: LD_INT 1
23266: ARRAY
23267: PPUSH
23268: CALL_OW 251
23272: PPUSH
23273: CALL_OW 213
// AddComSailEvent ( i , 666 ) ;
23277: LD_VAR 0 1
23281: PPUSH
23282: LD_INT 666
23284: PPUSH
23285: CALL_OW 224
// end ;
23289: GO 23237
23291: POP
23292: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
23293: LD_ADDR_LOC 23
23297: PUSH
23298: LD_INT 22
23300: PUSH
23301: LD_EXP 3
23305: PUSH
23306: EMPTY
23307: LIST
23308: LIST
23309: PUSH
23310: LD_INT 2
23312: PUSH
23313: LD_INT 21
23315: PUSH
23316: LD_INT 1
23318: PUSH
23319: EMPTY
23320: LIST
23321: LIST
23322: PUSH
23323: LD_INT 21
23325: PUSH
23326: LD_INT 2
23328: PUSH
23329: EMPTY
23330: LIST
23331: LIST
23332: PUSH
23333: EMPTY
23334: LIST
23335: LIST
23336: LIST
23337: PUSH
23338: EMPTY
23339: LIST
23340: LIST
23341: PPUSH
23342: CALL_OW 69
23346: ST_TO_ADDR
// if pom > 0 then
23347: LD_LOC 23
23351: PUSH
23352: LD_INT 0
23354: GREATER
23355: IFFALSE 23418
// begin AddComAttackUnit ( UTOK , pom [ 1 ] ) ;
23357: LD_LOC 44
23361: PPUSH
23362: LD_LOC 23
23366: PUSH
23367: LD_INT 1
23369: ARRAY
23370: PPUSH
23371: CALL_OW 175
// AddComAgressiveMove ( UTOK , GetX ( JMM ) , GetY ( JMM ) ) ;
23375: LD_LOC 44
23379: PPUSH
23380: LD_EXP 42
23384: PPUSH
23385: CALL_OW 250
23389: PPUSH
23390: LD_EXP 42
23394: PPUSH
23395: CALL_OW 251
23399: PPUSH
23400: CALL_OW 174
// AddComAttackUnit ( UTOK , JMM ) ;
23404: LD_LOC 44
23408: PPUSH
23409: LD_EXP 42
23413: PPUSH
23414: CALL_OW 175
// end ; end ; disable_me ( 247 ) ;
23418: LD_INT 247
23420: PPUSH
23421: CALL 22954 0 1
// enable ;
23425: ENABLE
// end ;
23426: PPOPN 1
23428: END
// every 0 0$10 marked 248 do
23429: GO 23431
23431: DISABLE
// begin if R_depot > 0 then
23432: LD_LOC 28
23436: PUSH
23437: LD_INT 0
23439: GREATER
23440: IFFALSE 23461
// if GetSide ( R_depot ) <> Rusi then
23442: LD_LOC 28
23446: PPUSH
23447: CALL_OW 255
23451: PUSH
23452: LD_EXP 2
23456: NONEQUAL
23457: IFFALSE 23461
// exit ;
23459: GO 23666
// pom = FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_class , class_engineer ] ] ) ;
23461: LD_ADDR_LOC 23
23465: PUSH
23466: LD_INT 22
23468: PUSH
23469: LD_EXP 2
23473: PUSH
23474: EMPTY
23475: LIST
23476: LIST
23477: PUSH
23478: LD_INT 1
23480: PUSH
23481: EMPTY
23482: LIST
23483: PUSH
23484: LD_INT 25
23486: PUSH
23487: LD_INT 2
23489: PUSH
23490: EMPTY
23491: LIST
23492: LIST
23493: PUSH
23494: EMPTY
23495: LIST
23496: LIST
23497: LIST
23498: PPUSH
23499: CALL_OW 69
23503: ST_TO_ADDR
// if pom = 0 then
23504: LD_LOC 23
23508: PUSH
23509: LD_INT 0
23511: EQUAL
23512: IFFALSE 23665
// begin radzio = radzio + 1 ;
23514: LD_ADDR_EXP 9
23518: PUSH
23519: LD_EXP 9
23523: PUSH
23524: LD_INT 1
23526: PLUS
23527: ST_TO_ADDR
// create_engineer ;
23528: CALL 7274 0 0
// pom = FilterAllUnits ( [ [ f_side , Rusi ] , [ f_and ] , [ f_class , class_engineer ] ] ) ;
23532: LD_ADDR_LOC 23
23536: PUSH
23537: LD_INT 22
23539: PUSH
23540: LD_EXP 2
23544: PUSH
23545: EMPTY
23546: LIST
23547: LIST
23548: PUSH
23549: LD_INT 1
23551: PUSH
23552: EMPTY
23553: LIST
23554: PUSH
23555: LD_INT 25
23557: PUSH
23558: LD_INT 2
23560: PUSH
23561: EMPTY
23562: LIST
23563: LIST
23564: PUSH
23565: EMPTY
23566: LIST
23567: LIST
23568: LIST
23569: PPUSH
23570: CALL_OW 69
23574: ST_TO_ADDR
// case nah of 1 , 2 :
23575: LD_EXP 35
23579: PUSH
23580: LD_INT 1
23582: DOUBLE
23583: EQUAL
23584: IFTRUE 23594
23586: LD_INT 2
23588: DOUBLE
23589: EQUAL
23590: IFTRUE 23594
23592: GO 23612
23594: POP
// ComAgressiveMove ( pom , 145 , 69 ) ; 3 :
23595: LD_LOC 23
23599: PPUSH
23600: LD_INT 145
23602: PPUSH
23603: LD_INT 69
23605: PPUSH
23606: CALL_OW 114
23610: GO 23665
23612: LD_INT 3
23614: DOUBLE
23615: EQUAL
23616: IFTRUE 23620
23618: GO 23638
23620: POP
// ComAgressiveMove ( pom , 52 , 81 ) ; 4 :
23621: LD_LOC 23
23625: PPUSH
23626: LD_INT 52
23628: PPUSH
23629: LD_INT 81
23631: PPUSH
23632: CALL_OW 114
23636: GO 23665
23638: LD_INT 4
23640: DOUBLE
23641: EQUAL
23642: IFTRUE 23646
23644: GO 23664
23646: POP
// ComAgressiveMove ( pom , 93 , 99 ) ; end ;
23647: LD_LOC 23
23651: PPUSH
23652: LD_INT 93
23654: PPUSH
23655: LD_INT 99
23657: PPUSH
23658: CALL_OW 114
23662: GO 23665
23664: POP
// end ; enable ;
23665: ENABLE
// end ;
23666: END
// every 0 0$01 trigger radzio >= 20 do
23667: LD_EXP 9
23671: PUSH
23672: LD_INT 20
23674: GREATEREQUAL
23675: IFFALSE 23683
23677: GO 23679
23679: DISABLE
// begin disable ( 248 ) ;
23680: LD_INT 248
23682: DISABLE_MARKED
// end ;
23683: END
// every 0 0$1 marked 249 do
23684: GO 23686
23686: DISABLE
// begin SetXYS ( nah , 15 ) ;
23687: LD_EXP 35
23691: PPUSH
23692: LD_INT 15
23694: PPUSH
23695: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_siberium , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
23699: LD_LOC 26
23703: PUSH
23704: LD_INT 1
23706: ARRAY
23707: PPUSH
23708: LD_INT 21
23710: PPUSH
23711: LD_LOC 43
23715: PUSH
23716: LD_INT 1
23718: ARRAY
23719: PPUSH
23720: LD_LOC 43
23724: PUSH
23725: LD_INT 2
23727: ARRAY
23728: PPUSH
23729: LD_LOC 43
23733: PUSH
23734: LD_INT 3
23736: ARRAY
23737: PPUSH
23738: CALL_OW 205
// wait ( 0 0$5 ) ;
23742: LD_INT 175
23744: PPUSH
23745: CALL_OW 67
// enable ( 250 ) ;
23749: LD_INT 250
23751: ENABLE_MARKED
// end ;
23752: END
// every 0 0$5 marked 250 do
23753: GO 23755
23755: DISABLE
// begin pom = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_and ] , [ f_btype , b_ext_siberium ] ] ) ;
23756: LD_ADDR_LOC 23
23760: PUSH
23761: LD_LOC 21
23765: PPUSH
23766: LD_INT 22
23768: PUSH
23769: LD_EXP 2
23773: PUSH
23774: EMPTY
23775: LIST
23776: LIST
23777: PUSH
23778: LD_INT 1
23780: PUSH
23781: EMPTY
23782: LIST
23783: PUSH
23784: LD_INT 30
23786: PUSH
23787: LD_INT 21
23789: PUSH
23790: EMPTY
23791: LIST
23792: LIST
23793: PUSH
23794: EMPTY
23795: LIST
23796: LIST
23797: LIST
23798: PPUSH
23799: CALL_OW 70
23803: ST_TO_ADDR
// if pom = 0 then
23804: LD_LOC 23
23808: PUSH
23809: LD_INT 0
23811: EQUAL
23812: IFFALSE 23872
// begin SetXYS ( nah , 15 ) ;
23814: LD_EXP 35
23818: PPUSH
23819: LD_INT 15
23821: PPUSH
23822: CALL 18399 0 2
// AddComBuild ( staveci [ 1 ] , b_ext_computer , XYS [ 1 ] , XYS [ 2 ] , XYS [ 3 ] ) ;
23826: LD_LOC 26
23830: PUSH
23831: LD_INT 1
23833: ARRAY
23834: PPUSH
23835: LD_INT 24
23837: PPUSH
23838: LD_LOC 43
23842: PUSH
23843: LD_INT 1
23845: ARRAY
23846: PPUSH
23847: LD_LOC 43
23851: PUSH
23852: LD_INT 2
23854: ARRAY
23855: PPUSH
23856: LD_LOC 43
23860: PUSH
23861: LD_INT 3
23863: ARRAY
23864: PPUSH
23865: CALL_OW 205
// enable ;
23869: ENABLE
// end else
23870: GO 23886
// R_esib = pom [ 1 ] ;
23872: LD_ADDR_LOC 41
23876: PUSH
23877: LD_LOC 23
23881: PUSH
23882: LD_INT 1
23884: ARRAY
23885: ST_TO_ADDR
// end ;
23886: END
// every 0 0$9 do
23887: GO 23889
23889: DISABLE
// begin pom = FilterUnitsInArea ( Base2 , [ [ f_side , Rusi ] ] ) ;
23890: LD_ADDR_LOC 23
23894: PUSH
23895: LD_INT 13
23897: PPUSH
23898: LD_INT 22
23900: PUSH
23901: LD_EXP 2
23905: PUSH
23906: EMPTY
23907: LIST
23908: LIST
23909: PUSH
23910: EMPTY
23911: LIST
23912: PPUSH
23913: CALL_OW 70
23917: ST_TO_ADDR
// for i in pom do
23918: LD_ADDR_LOC 22
23922: PUSH
23923: LD_LOC 23
23927: PUSH
23928: FOR_IN
23929: IFFALSE 23987
// if IsIdle ( i ) then
23931: LD_LOC 22
23935: PPUSH
23936: CALL_OW 316
23940: IFFALSE 23985
// begin pom1 = FilterAllUnits ( [ [ f_side , You ] ] ) ;
23942: LD_ADDR_LOC 24
23946: PUSH
23947: LD_INT 22
23949: PUSH
23950: LD_EXP 3
23954: PUSH
23955: EMPTY
23956: LIST
23957: LIST
23958: PUSH
23959: EMPTY
23960: LIST
23961: PPUSH
23962: CALL_OW 69
23966: ST_TO_ADDR
// ComAttackUnit ( i , pom1 [ 1 ] ) ;
23967: LD_LOC 22
23971: PPUSH
23972: LD_LOC 24
23976: PUSH
23977: LD_INT 1
23979: ARRAY
23980: PPUSH
23981: CALL_OW 115
// end ;
23985: GO 23928
23987: POP
23988: POP
// enable ;
23989: ENABLE
// end ;
23990: END
// every 0 0$6 do
23991: GO 23993
23993: DISABLE
// begin pom = FilterUnitsInArea ( Base2 , [ [ f_side , Rusi ] , [ f_and ] , [ f_control , control_computer ] ] ) ;
23994: LD_ADDR_LOC 23
23998: PUSH
23999: LD_INT 13
24001: PPUSH
24002: LD_INT 22
24004: PUSH
24005: LD_EXP 2
24009: PUSH
24010: EMPTY
24011: LIST
24012: LIST
24013: PUSH
24014: LD_INT 1
24016: PUSH
24017: EMPTY
24018: LIST
24019: PUSH
24020: LD_INT 33
24022: PUSH
24023: LD_INT 3
24025: PUSH
24026: EMPTY
24027: LIST
24028: LIST
24029: PUSH
24030: EMPTY
24031: LIST
24032: LIST
24033: LIST
24034: PPUSH
24035: CALL_OW 70
24039: ST_TO_ADDR
// pom1 = FilterAllUnits ( [ [ f_side , You ] ] ) ;
24040: LD_ADDR_LOC 24
24044: PUSH
24045: LD_INT 22
24047: PUSH
24048: LD_EXP 3
24052: PUSH
24053: EMPTY
24054: LIST
24055: LIST
24056: PUSH
24057: EMPTY
24058: LIST
24059: PPUSH
24060: CALL_OW 69
24064: ST_TO_ADDR
// for i in pom do
24065: LD_ADDR_LOC 22
24069: PUSH
24070: LD_LOC 23
24074: PUSH
24075: FOR_IN
24076: IFFALSE 24119
// if IsIdle ( i ) then
24078: LD_LOC 22
24082: PPUSH
24083: CALL_OW 316
24087: IFFALSE 24117
// ComAttackUnit ( i , pom1 [ Rand ( 1 , pom1 ) ] ) ;
24089: LD_LOC 22
24093: PPUSH
24094: LD_LOC 24
24098: PUSH
24099: LD_INT 1
24101: PPUSH
24102: LD_LOC 24
24106: PPUSH
24107: CALL_OW 12
24111: ARRAY
24112: PPUSH
24113: CALL_OW 115
24117: GO 24075
24119: POP
24120: POP
// enable ;
24121: ENABLE
// end ;
24122: END
// every 0 0$34 trigger EMR do var pom ;
24123: LD_EXP 38
24127: IFFALSE 24926
24129: GO 24131
24131: DISABLE
24132: LD_INT 0
24134: PPUSH
// begin for i in RUSSIAN_AFTER_END_ATTACK_LIST1 do
24135: LD_ADDR_LOC 22
24139: PUSH
24140: LD_EXP 20
24144: PUSH
24145: FOR_IN
24146: IFFALSE 24165
// PlaceUnitArea ( i , EnterAM , false ) ;
24148: LD_LOC 22
24152: PPUSH
24153: LD_INT 3
24155: PPUSH
24156: LD_INT 0
24158: PPUSH
24159: CALL_OW 49
24163: GO 24145
24165: POP
24166: POP
// McMove ( 1 , RUSSIAN_AFTER_END_ATTACK_LIST1 , [ [ 43 , 48 ] , [ 69 , 49 ] , [ 92 , 43 ] , [ 105 , 37 ] ] , [ mc_move_waitwp , mc_move_agressive , mc_move_dontcapture ] ) ;
24167: LD_INT 1
24169: PPUSH
24170: LD_EXP 20
24174: PPUSH
24175: LD_INT 43
24177: PUSH
24178: LD_INT 48
24180: PUSH
24181: EMPTY
24182: LIST
24183: LIST
24184: PUSH
24185: LD_INT 69
24187: PUSH
24188: LD_INT 49
24190: PUSH
24191: EMPTY
24192: LIST
24193: LIST
24194: PUSH
24195: LD_INT 92
24197: PUSH
24198: LD_INT 43
24200: PUSH
24201: EMPTY
24202: LIST
24203: LIST
24204: PUSH
24205: LD_INT 105
24207: PUSH
24208: LD_INT 37
24210: PUSH
24211: EMPTY
24212: LIST
24213: LIST
24214: PUSH
24215: EMPTY
24216: LIST
24217: LIST
24218: LIST
24219: LIST
24220: PPUSH
24221: LD_INT 3
24223: PUSH
24224: LD_INT 6
24226: PUSH
24227: LD_INT 5
24229: PUSH
24230: EMPTY
24231: LIST
24232: LIST
24233: LIST
24234: PPUSH
24235: CALL_OW 398
// wait ( timerusi [ difficulty ] ) ;
24239: LD_EXP 60
24243: PUSH
24244: LD_OWVAR 67
24248: ARRAY
24249: PPUSH
24250: CALL_OW 67
// for i in RUSSIAN_AFTER_END_ATTACK_LIST2 do
24254: LD_ADDR_LOC 22
24258: PUSH
24259: LD_EXP 21
24263: PUSH
24264: FOR_IN
24265: IFFALSE 24311
// if nah <> 4 then
24267: LD_EXP 35
24271: PUSH
24272: LD_INT 4
24274: NONEQUAL
24275: IFFALSE 24294
// PlaceUnitArea ( i , RE2 , false ) else
24277: LD_LOC 22
24281: PPUSH
24282: LD_INT 5
24284: PPUSH
24285: LD_INT 0
24287: PPUSH
24288: CALL_OW 49
24292: GO 24309
// PlaceUnitArea ( i , REME , false ) ;
24294: LD_LOC 22
24298: PPUSH
24299: LD_INT 30
24301: PPUSH
24302: LD_INT 0
24304: PPUSH
24305: CALL_OW 49
24309: GO 24264
24311: POP
24312: POP
// if nah <> 4 then
24313: LD_EXP 35
24317: PUSH
24318: LD_INT 4
24320: NONEQUAL
24321: IFFALSE 24411
// McMove ( 1 , RUSSIAN_AFTER_END_ATTACK_LIST2 , [ [ 95 , 93 ] , [ 80 , 64 ] , [ 77 , 45 ] , [ 92 , 42 ] , [ 104 , 33 ] ] , [ [ mc_move_waitwp , mc_move_agressive , mc_move_dontcapture ] ] ) else
24323: LD_INT 1
24325: PPUSH
24326: LD_EXP 21
24330: PPUSH
24331: LD_INT 95
24333: PUSH
24334: LD_INT 93
24336: PUSH
24337: EMPTY
24338: LIST
24339: LIST
24340: PUSH
24341: LD_INT 80
24343: PUSH
24344: LD_INT 64
24346: PUSH
24347: EMPTY
24348: LIST
24349: LIST
24350: PUSH
24351: LD_INT 77
24353: PUSH
24354: LD_INT 45
24356: PUSH
24357: EMPTY
24358: LIST
24359: LIST
24360: PUSH
24361: LD_INT 92
24363: PUSH
24364: LD_INT 42
24366: PUSH
24367: EMPTY
24368: LIST
24369: LIST
24370: PUSH
24371: LD_INT 104
24373: PUSH
24374: LD_INT 33
24376: PUSH
24377: EMPTY
24378: LIST
24379: LIST
24380: PUSH
24381: EMPTY
24382: LIST
24383: LIST
24384: LIST
24385: LIST
24386: LIST
24387: PPUSH
24388: LD_INT 3
24390: PUSH
24391: LD_INT 6
24393: PUSH
24394: LD_INT 5
24396: PUSH
24397: EMPTY
24398: LIST
24399: LIST
24400: LIST
24401: PUSH
24402: EMPTY
24403: LIST
24404: PPUSH
24405: CALL_OW 398
24409: GO 24515
// McMove ( 1 , RUSSIAN_AFTER_END_ATTACK_LIST2 , [ [ 59 , 86 ] , [ 92 , 96 ] , [ 83 , 71 ] , [ 77 , 43 ] , [ 93 , 43 ] , [ 95 , 41 ] , [ 108 , 31 ] , [ 99 , 26 ] ] , [ ] ) ;
24411: LD_INT 1
24413: PPUSH
24414: LD_EXP 21
24418: PPUSH
24419: LD_INT 59
24421: PUSH
24422: LD_INT 86
24424: PUSH
24425: EMPTY
24426: LIST
24427: LIST
24428: PUSH
24429: LD_INT 92
24431: PUSH
24432: LD_INT 96
24434: PUSH
24435: EMPTY
24436: LIST
24437: LIST
24438: PUSH
24439: LD_INT 83
24441: PUSH
24442: LD_INT 71
24444: PUSH
24445: EMPTY
24446: LIST
24447: LIST
24448: PUSH
24449: LD_INT 77
24451: PUSH
24452: LD_INT 43
24454: PUSH
24455: EMPTY
24456: LIST
24457: LIST
24458: PUSH
24459: LD_INT 93
24461: PUSH
24462: LD_INT 43
24464: PUSH
24465: EMPTY
24466: LIST
24467: LIST
24468: PUSH
24469: LD_INT 95
24471: PUSH
24472: LD_INT 41
24474: PUSH
24475: EMPTY
24476: LIST
24477: LIST
24478: PUSH
24479: LD_INT 108
24481: PUSH
24482: LD_INT 31
24484: PUSH
24485: EMPTY
24486: LIST
24487: LIST
24488: PUSH
24489: LD_INT 99
24491: PUSH
24492: LD_INT 26
24494: PUSH
24495: EMPTY
24496: LIST
24497: LIST
24498: PUSH
24499: EMPTY
24500: LIST
24501: LIST
24502: LIST
24503: LIST
24504: LIST
24505: LIST
24506: LIST
24507: LIST
24508: PPUSH
24509: EMPTY
24510: PPUSH
24511: CALL_OW 398
// wait ( 2 2$0 ) ;
24515: LD_INT 4200
24517: PPUSH
24518: CALL_OW 67
// wait ( wait2 [ difficulty ] ) ;
24522: LD_EXP 66
24526: PUSH
24527: LD_OWVAR 67
24531: ARRAY
24532: PPUSH
24533: CALL_OW 67
// pom = FilterAllUnits ( [ [ f_side , Rusi ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
24537: LD_ADDR_VAR 0 1
24541: PUSH
24542: LD_INT 22
24544: PUSH
24545: LD_EXP 2
24549: PUSH
24550: EMPTY
24551: LIST
24552: LIST
24553: PUSH
24554: LD_INT 2
24556: PUSH
24557: LD_INT 21
24559: PUSH
24560: LD_INT 2
24562: PUSH
24563: EMPTY
24564: LIST
24565: LIST
24566: PUSH
24567: LD_INT 21
24569: PUSH
24570: LD_INT 1
24572: PUSH
24573: EMPTY
24574: LIST
24575: LIST
24576: PUSH
24577: EMPTY
24578: LIST
24579: LIST
24580: LIST
24581: PUSH
24582: EMPTY
24583: LIST
24584: LIST
24585: PPUSH
24586: CALL_OW 69
24590: ST_TO_ADDR
// if pom > 0 then
24591: LD_VAR 0 1
24595: PUSH
24596: LD_INT 0
24598: GREATER
24599: IFFALSE 24647
// McMove ( 1 , pom , [ [ 120 , 93 ] , [ 108 , 39 ] ] , [ mc_move_waitwp , mc_move_agressive ] ) ;
24601: LD_INT 1
24603: PPUSH
24604: LD_VAR 0 1
24608: PPUSH
24609: LD_INT 120
24611: PUSH
24612: LD_INT 93
24614: PUSH
24615: EMPTY
24616: LIST
24617: LIST
24618: PUSH
24619: LD_INT 108
24621: PUSH
24622: LD_INT 39
24624: PUSH
24625: EMPTY
24626: LIST
24627: LIST
24628: PUSH
24629: EMPTY
24630: LIST
24631: LIST
24632: PPUSH
24633: LD_INT 3
24635: PUSH
24636: LD_INT 6
24638: PUSH
24639: EMPTY
24640: LIST
24641: LIST
24642: PPUSH
24643: CALL_OW 398
// wait ( total_final [ difficulty ] ) ;
24647: LD_EXP 82
24651: PUSH
24652: LD_OWVAR 67
24656: ARRAY
24657: PPUSH
24658: CALL_OW 67
// for i in RUSSIAN_AFTER_END_ATTACK_LIST_FINAL do
24662: LD_ADDR_LOC 22
24666: PUSH
24667: LD_EXP 22
24671: PUSH
24672: FOR_IN
24673: IFFALSE 24719
// if nah <> 4 then
24675: LD_EXP 35
24679: PUSH
24680: LD_INT 4
24682: NONEQUAL
24683: IFFALSE 24702
// PlaceUnitArea ( i , RE2 , false ) else
24685: LD_LOC 22
24689: PPUSH
24690: LD_INT 5
24692: PPUSH
24693: LD_INT 0
24695: PPUSH
24696: CALL_OW 49
24700: GO 24717
// PlaceUnitArea ( i , REME , false ) ;
24702: LD_LOC 22
24706: PPUSH
24707: LD_INT 30
24709: PPUSH
24710: LD_INT 0
24712: PPUSH
24713: CALL_OW 49
24717: GO 24672
24719: POP
24720: POP
// if nah <> 4 then
24721: LD_EXP 35
24725: PUSH
24726: LD_INT 4
24728: NONEQUAL
24729: IFFALSE 24819
// McMove ( 1 , RUSSIAN_AFTER_END_ATTACK_LIST_FINAL , [ [ 95 , 93 ] , [ 80 , 64 ] , [ 77 , 45 ] , [ 92 , 42 ] , [ 104 , 33 ] ] , [ [ mc_move_waitwp , mc_move_agressive , mc_move_dontcapture ] ] ) else
24731: LD_INT 1
24733: PPUSH
24734: LD_EXP 22
24738: PPUSH
24739: LD_INT 95
24741: PUSH
24742: LD_INT 93
24744: PUSH
24745: EMPTY
24746: LIST
24747: LIST
24748: PUSH
24749: LD_INT 80
24751: PUSH
24752: LD_INT 64
24754: PUSH
24755: EMPTY
24756: LIST
24757: LIST
24758: PUSH
24759: LD_INT 77
24761: PUSH
24762: LD_INT 45
24764: PUSH
24765: EMPTY
24766: LIST
24767: LIST
24768: PUSH
24769: LD_INT 92
24771: PUSH
24772: LD_INT 42
24774: PUSH
24775: EMPTY
24776: LIST
24777: LIST
24778: PUSH
24779: LD_INT 104
24781: PUSH
24782: LD_INT 33
24784: PUSH
24785: EMPTY
24786: LIST
24787: LIST
24788: PUSH
24789: EMPTY
24790: LIST
24791: LIST
24792: LIST
24793: LIST
24794: LIST
24795: PPUSH
24796: LD_INT 3
24798: PUSH
24799: LD_INT 6
24801: PUSH
24802: LD_INT 5
24804: PUSH
24805: EMPTY
24806: LIST
24807: LIST
24808: LIST
24809: PUSH
24810: EMPTY
24811: LIST
24812: PPUSH
24813: CALL_OW 398
24817: GO 24923
// McMove ( 1 , RUSSIAN_AFTER_END_ATTACK_LIST_FINAL , [ [ 59 , 86 ] , [ 92 , 96 ] , [ 83 , 71 ] , [ 77 , 43 ] , [ 93 , 43 ] , [ 95 , 41 ] , [ 108 , 31 ] , [ 99 , 26 ] ] , [ ] ) ;
24819: LD_INT 1
24821: PPUSH
24822: LD_EXP 22
24826: PPUSH
24827: LD_INT 59
24829: PUSH
24830: LD_INT 86
24832: PUSH
24833: EMPTY
24834: LIST
24835: LIST
24836: PUSH
24837: LD_INT 92
24839: PUSH
24840: LD_INT 96
24842: PUSH
24843: EMPTY
24844: LIST
24845: LIST
24846: PUSH
24847: LD_INT 83
24849: PUSH
24850: LD_INT 71
24852: PUSH
24853: EMPTY
24854: LIST
24855: LIST
24856: PUSH
24857: LD_INT 77
24859: PUSH
24860: LD_INT 43
24862: PUSH
24863: EMPTY
24864: LIST
24865: LIST
24866: PUSH
24867: LD_INT 93
24869: PUSH
24870: LD_INT 43
24872: PUSH
24873: EMPTY
24874: LIST
24875: LIST
24876: PUSH
24877: LD_INT 95
24879: PUSH
24880: LD_INT 41
24882: PUSH
24883: EMPTY
24884: LIST
24885: LIST
24886: PUSH
24887: LD_INT 108
24889: PUSH
24890: LD_INT 31
24892: PUSH
24893: EMPTY
24894: LIST
24895: LIST
24896: PUSH
24897: LD_INT 99
24899: PUSH
24900: LD_INT 26
24902: PUSH
24903: EMPTY
24904: LIST
24905: LIST
24906: PUSH
24907: EMPTY
24908: LIST
24909: LIST
24910: LIST
24911: LIST
24912: LIST
24913: LIST
24914: LIST
24915: LIST
24916: PPUSH
24917: EMPTY
24918: PPUSH
24919: CALL_OW 398
// enable ( 255 ) ;
24923: LD_INT 255
24925: ENABLE_MARKED
// end ;
24926: PPOPN 1
24928: END
// every 0 0$5 marked 255 do var i ; var AT ;
24929: GO 24931
24931: DISABLE
24932: LD_INT 0
24934: PPUSH
24935: PPUSH
// begin wait ( total_final [ difficulty ] ) ;
24936: LD_EXP 82
24940: PUSH
24941: LD_OWVAR 67
24945: ARRAY
24946: PPUSH
24947: CALL_OW 67
// AT = C_N_A ;
24951: LD_ADDR_VAR 0 2
24955: PUSH
24956: CALL 10404 0 0
24960: ST_TO_ADDR
// for i in AT do
24961: LD_ADDR_VAR 0 1
24965: PUSH
24966: LD_VAR 0 2
24970: PUSH
24971: FOR_IN
24972: IFFALSE 25018
// if nah <> 4 then
24974: LD_EXP 35
24978: PUSH
24979: LD_INT 4
24981: NONEQUAL
24982: IFFALSE 25001
// PlaceUnitArea ( i , RE2 , false ) else
24984: LD_VAR 0 1
24988: PPUSH
24989: LD_INT 5
24991: PPUSH
24992: LD_INT 0
24994: PPUSH
24995: CALL_OW 49
24999: GO 25016
// PlaceUnitArea ( i , REME , false ) ;
25001: LD_VAR 0 1
25005: PPUSH
25006: LD_INT 30
25008: PPUSH
25009: LD_INT 0
25011: PPUSH
25012: CALL_OW 49
25016: GO 24971
25018: POP
25019: POP
// if nah <> 4 then
25020: LD_EXP 35
25024: PUSH
25025: LD_INT 4
25027: NONEQUAL
25028: IFFALSE 25118
// McMove ( 1 , AT , [ [ 95 , 93 ] , [ 80 , 64 ] , [ 77 , 45 ] , [ 92 , 42 ] , [ 104 , 33 ] ] , [ [ mc_move_waitwp , mc_move_agressive , mc_move_dontcapture ] ] ) else
25030: LD_INT 1
25032: PPUSH
25033: LD_VAR 0 2
25037: PPUSH
25038: LD_INT 95
25040: PUSH
25041: LD_INT 93
25043: PUSH
25044: EMPTY
25045: LIST
25046: LIST
25047: PUSH
25048: LD_INT 80
25050: PUSH
25051: LD_INT 64
25053: PUSH
25054: EMPTY
25055: LIST
25056: LIST
25057: PUSH
25058: LD_INT 77
25060: PUSH
25061: LD_INT 45
25063: PUSH
25064: EMPTY
25065: LIST
25066: LIST
25067: PUSH
25068: LD_INT 92
25070: PUSH
25071: LD_INT 42
25073: PUSH
25074: EMPTY
25075: LIST
25076: LIST
25077: PUSH
25078: LD_INT 104
25080: PUSH
25081: LD_INT 33
25083: PUSH
25084: EMPTY
25085: LIST
25086: LIST
25087: PUSH
25088: EMPTY
25089: LIST
25090: LIST
25091: LIST
25092: LIST
25093: LIST
25094: PPUSH
25095: LD_INT 3
25097: PUSH
25098: LD_INT 6
25100: PUSH
25101: LD_INT 5
25103: PUSH
25104: EMPTY
25105: LIST
25106: LIST
25107: LIST
25108: PUSH
25109: EMPTY
25110: LIST
25111: PPUSH
25112: CALL_OW 398
25116: GO 25226
// McMove ( 1 , AT , [ [ 59 , 86 ] , [ 92 , 96 ] , [ 83 , 71 ] , [ 77 , 43 ] , [ 93 , 43 ] , [ 95 , 41 ] , [ 108 , 31 ] , [ 99 , 26 ] ] , [ mc_move_agressive ] ) ;
25118: LD_INT 1
25120: PPUSH
25121: LD_VAR 0 2
25125: PPUSH
25126: LD_INT 59
25128: PUSH
25129: LD_INT 86
25131: PUSH
25132: EMPTY
25133: LIST
25134: LIST
25135: PUSH
25136: LD_INT 92
25138: PUSH
25139: LD_INT 96
25141: PUSH
25142: EMPTY
25143: LIST
25144: LIST
25145: PUSH
25146: LD_INT 83
25148: PUSH
25149: LD_INT 71
25151: PUSH
25152: EMPTY
25153: LIST
25154: LIST
25155: PUSH
25156: LD_INT 77
25158: PUSH
25159: LD_INT 43
25161: PUSH
25162: EMPTY
25163: LIST
25164: LIST
25165: PUSH
25166: LD_INT 93
25168: PUSH
25169: LD_INT 43
25171: PUSH
25172: EMPTY
25173: LIST
25174: LIST
25175: PUSH
25176: LD_INT 95
25178: PUSH
25179: LD_INT 41
25181: PUSH
25182: EMPTY
25183: LIST
25184: LIST
25185: PUSH
25186: LD_INT 108
25188: PUSH
25189: LD_INT 31
25191: PUSH
25192: EMPTY
25193: LIST
25194: LIST
25195: PUSH
25196: LD_INT 99
25198: PUSH
25199: LD_INT 26
25201: PUSH
25202: EMPTY
25203: LIST
25204: LIST
25205: PUSH
25206: EMPTY
25207: LIST
25208: LIST
25209: LIST
25210: LIST
25211: LIST
25212: LIST
25213: LIST
25214: LIST
25215: PPUSH
25216: LD_INT 6
25218: PUSH
25219: EMPTY
25220: LIST
25221: PPUSH
25222: CALL_OW 398
// wait ( 3 3$0 ) ;
25226: LD_INT 6300
25228: PPUSH
25229: CALL_OW 67
// enable ;
25233: ENABLE
// end ;
25234: PPOPN 2
25236: END
// on SpontaneousTeleported ( un ) do begin uvidel_spontalni_teleportaci ;
25237: CALL 32635 0 0
// disable ;
25241: DISABLE
// end ;
25242: PPOPN 1
25244: END
// export function posli_ruske_bazukery ; var baz ; var i ; begin
25245: LD_INT 0
25247: PPUSH
25248: PPUSH
25249: PPUSH
// baz = create_ruske_bazukery ;
25250: LD_ADDR_VAR 0 2
25254: PUSH
25255: CALL 9967 0 0
25259: ST_TO_ADDR
// for i in baz do
25260: LD_ADDR_VAR 0 3
25264: PUSH
25265: LD_VAR 0 2
25269: PUSH
25270: FOR_IN
25271: IFFALSE 25290
// PlaceUnitArea ( i , ABaz , false ) ;
25273: LD_VAR 0 3
25277: PPUSH
25278: LD_INT 34
25280: PPUSH
25281: LD_INT 0
25283: PPUSH
25284: CALL_OW 49
25288: GO 25270
25290: POP
25291: POP
// ComAgressiveMove ( baz , 118 , 40 ) ;
25292: LD_VAR 0 2
25296: PPUSH
25297: LD_INT 118
25299: PPUSH
25300: LD_INT 40
25302: PPUSH
25303: CALL_OW 114
// end ;
25307: LD_VAR 0 1
25311: RET
// every 0 0$2 trigger FilterUnitsInArea ( BAZUTOK , [ [ f_or , [ f_side , Rusi2 ] , [ f_side , Rusi ] ] , [ f_class , class_bazooker ] ] ) > 0 do var pom , pom1 ; var i ; var cile , cil ;
25312: LD_INT 33
25314: PPUSH
25315: LD_INT 2
25317: PUSH
25318: LD_INT 22
25320: PUSH
25321: LD_EXP 5
25325: PUSH
25326: EMPTY
25327: LIST
25328: LIST
25329: PUSH
25330: LD_INT 22
25332: PUSH
25333: LD_EXP 2
25337: PUSH
25338: EMPTY
25339: LIST
25340: LIST
25341: PUSH
25342: EMPTY
25343: LIST
25344: LIST
25345: LIST
25346: PUSH
25347: LD_INT 25
25349: PUSH
25350: LD_INT 9
25352: PUSH
25353: EMPTY
25354: LIST
25355: LIST
25356: PUSH
25357: EMPTY
25358: LIST
25359: LIST
25360: PPUSH
25361: CALL_OW 70
25365: PUSH
25366: LD_INT 0
25368: GREATER
25369: IFFALSE 25784
25371: GO 25373
25373: DISABLE
25374: LD_INT 0
25376: PPUSH
25377: PPUSH
25378: PPUSH
25379: PPUSH
25380: PPUSH
// begin pom1 = FilterUnitsInArea ( BAZUTOK , [ [ f_or , [ f_side , Rusi2 ] , [ f_side , Rusi ] ] , [ f_class , class_bazooker ] ] ) ;
25381: LD_ADDR_VAR 0 2
25385: PUSH
25386: LD_INT 33
25388: PPUSH
25389: LD_INT 2
25391: PUSH
25392: LD_INT 22
25394: PUSH
25395: LD_EXP 5
25399: PUSH
25400: EMPTY
25401: LIST
25402: LIST
25403: PUSH
25404: LD_INT 22
25406: PUSH
25407: LD_EXP 2
25411: PUSH
25412: EMPTY
25413: LIST
25414: LIST
25415: PUSH
25416: EMPTY
25417: LIST
25418: LIST
25419: LIST
25420: PUSH
25421: LD_INT 25
25423: PUSH
25424: LD_INT 9
25426: PUSH
25427: EMPTY
25428: LIST
25429: LIST
25430: PUSH
25431: EMPTY
25432: LIST
25433: LIST
25434: PPUSH
25435: CALL_OW 70
25439: ST_TO_ADDR
// pom = [ ] ;
25440: LD_ADDR_VAR 0 1
25444: PUSH
25445: EMPTY
25446: ST_TO_ADDR
// for i in pom1 do
25447: LD_ADDR_VAR 0 3
25451: PUSH
25452: LD_VAR 0 2
25456: PUSH
25457: FOR_IN
25458: IFFALSE 25489
// if Attacks ( i ) then
25460: LD_VAR 0 3
25464: PPUSH
25465: CALL_OW 320
25469: IFFALSE 25487
// pom = pom ^ i ;
25471: LD_ADDR_VAR 0 1
25475: PUSH
25476: LD_VAR 0 1
25480: PUSH
25481: LD_VAR 0 3
25485: ADD
25486: ST_TO_ADDR
25487: GO 25457
25489: POP
25490: POP
// for i in pom do
25491: LD_ADDR_VAR 0 3
25495: PUSH
25496: LD_VAR 0 1
25500: PUSH
25501: FOR_IN
25502: IFFALSE 25781
// if Prob ( 75 ) then
25504: LD_INT 75
25506: PPUSH
25507: CALL_OW 13
25511: IFFALSE 25779
// begin debug_strings = [ specialni bazookersky utok ] ;
25513: LD_ADDR_OWVAR 48
25517: PUSH
25518: LD_STRING specialni bazookersky utok
25520: PUSH
25521: EMPTY
25522: LIST
25523: ST_TO_ADDR
// msg ( specialni bazookersky utok ) ;
25524: LD_STRING specialni bazookersky utok
25526: PPUSH
25527: CALL_OW 100
// cile = FilterUnitsInArea ( Base2 , [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
25531: LD_ADDR_VAR 0 4
25535: PUSH
25536: LD_INT 13
25538: PPUSH
25539: LD_INT 22
25541: PUSH
25542: LD_EXP 3
25546: PUSH
25547: EMPTY
25548: LIST
25549: LIST
25550: PUSH
25551: LD_INT 2
25553: PUSH
25554: LD_INT 21
25556: PUSH
25557: LD_INT 1
25559: PUSH
25560: EMPTY
25561: LIST
25562: LIST
25563: PUSH
25564: LD_INT 21
25566: PUSH
25567: LD_INT 2
25569: PUSH
25570: EMPTY
25571: LIST
25572: LIST
25573: PUSH
25574: EMPTY
25575: LIST
25576: LIST
25577: LIST
25578: PUSH
25579: EMPTY
25580: LIST
25581: LIST
25582: PPUSH
25583: CALL_OW 70
25587: ST_TO_ADDR
// if cile = 0 then
25588: LD_VAR 0 4
25592: PUSH
25593: LD_INT 0
25595: EQUAL
25596: IFFALSE 25604
// exit else
25598: POP
25599: POP
25600: GO 25784
25602: GO 25663
// cil = [ cile [ Rand ( 1 , cile + 0 ) ] , NearestUnitToUnit ( cile , i ) ] [ Rand ( 1 , 2 ) ] ;
25604: LD_ADDR_VAR 0 5
25608: PUSH
25609: LD_VAR 0 4
25613: PUSH
25614: LD_INT 1
25616: PPUSH
25617: LD_VAR 0 4
25621: PUSH
25622: LD_INT 0
25624: PLUS
25625: PPUSH
25626: CALL_OW 12
25630: ARRAY
25631: PUSH
25632: LD_VAR 0 4
25636: PPUSH
25637: LD_VAR 0 3
25641: PPUSH
25642: CALL_OW 74
25646: PUSH
25647: EMPTY
25648: LIST
25649: LIST
25650: PUSH
25651: LD_INT 1
25653: PPUSH
25654: LD_INT 2
25656: PPUSH
25657: CALL_OW 12
25661: ARRAY
25662: ST_TO_ADDR
// case Rand ( 1 , 2 ) of 1 :
25663: LD_INT 1
25665: PPUSH
25666: LD_INT 2
25668: PPUSH
25669: CALL_OW 12
25673: PUSH
25674: LD_INT 1
25676: DOUBLE
25677: EQUAL
25678: IFTRUE 25682
25680: GO 25726
25682: POP
// begin ComSpaceShift ( i , GetX ( cil ) , GetY ( cil ) ) ;
25683: LD_VAR 0 3
25687: PPUSH
25688: LD_VAR 0 5
25692: PPUSH
25693: CALL_OW 250
25697: PPUSH
25698: LD_VAR 0 5
25702: PPUSH
25703: CALL_OW 251
25707: PPUSH
25708: CALL_OW 153
// AddComSailEvent ( i , 666 ) ;
25712: LD_VAR 0 3
25716: PPUSH
25717: LD_INT 666
25719: PPUSH
25720: CALL_OW 224
// end ; 2 :
25724: GO 25779
25726: LD_INT 2
25728: DOUBLE
25729: EQUAL
25730: IFTRUE 25734
25732: GO 25778
25734: POP
// begin ComTimeShift ( i , GetX ( cil ) , GetY ( cil ) ) ;
25735: LD_VAR 0 3
25739: PPUSH
25740: LD_VAR 0 5
25744: PPUSH
25745: CALL_OW 250
25749: PPUSH
25750: LD_VAR 0 5
25754: PPUSH
25755: CALL_OW 251
25759: PPUSH
25760: CALL_OW 154
// AddComSailEvent ( i , 666 ) ;
25764: LD_VAR 0 3
25768: PPUSH
25769: LD_INT 666
25771: PPUSH
25772: CALL_OW 224
// end ; end ;
25776: GO 25779
25778: POP
// end ;
25779: GO 25501
25781: POP
25782: POP
// enable ;
25783: ENABLE
// end ;
25784: PPOPN 5
25786: END
// every 0 0$7 marked 298 do var pomdoktori ;
25787: GO 25789
25789: DISABLE
25790: LD_INT 0
25792: PPUSH
// begin pomdoktori = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_class , class_scientistic ] ] ) ;
25793: LD_ADDR_VAR 0 1
25797: PUSH
25798: LD_LOC 21
25802: PPUSH
25803: LD_INT 22
25805: PUSH
25806: LD_EXP 2
25810: PUSH
25811: EMPTY
25812: LIST
25813: LIST
25814: PUSH
25815: LD_INT 25
25817: PUSH
25818: LD_INT 4
25820: PUSH
25821: EMPTY
25822: LIST
25823: LIST
25824: PUSH
25825: EMPTY
25826: LIST
25827: LIST
25828: PPUSH
25829: CALL_OW 70
25833: ST_TO_ADDR
// ComEnterUnit ( pomdoktori , R_lab ) ;
25834: LD_VAR 0 1
25838: PPUSH
25839: LD_LOC 33
25843: PPUSH
25844: CALL_OW 120
// enable ( 296 ) ;
25848: LD_INT 296
25850: ENABLE_MARKED
// end ;
25851: PPOPN 1
25853: END
// every 0 0$19 marked 297 do var pomvojcli ;
25854: GO 25856
25856: DISABLE
25857: LD_INT 0
25859: PPUSH
// begin pomvojcli = FilterUnitsInArea ( zo , [ [ f_side , Rusi ] , [ f_or , [ f_class , class_soldier ] , [ f_class , class_bazooker ] ] ] ) ;
25860: LD_ADDR_VAR 0 1
25864: PUSH
25865: LD_LOC 21
25869: PPUSH
25870: LD_INT 22
25872: PUSH
25873: LD_EXP 2
25877: PUSH
25878: EMPTY
25879: LIST
25880: LIST
25881: PUSH
25882: LD_INT 2
25884: PUSH
25885: LD_INT 25
25887: PUSH
25888: LD_INT 1
25890: PUSH
25891: EMPTY
25892: LIST
25893: LIST
25894: PUSH
25895: LD_INT 25
25897: PUSH
25898: LD_INT 9
25900: PUSH
25901: EMPTY
25902: LIST
25903: LIST
25904: PUSH
25905: EMPTY
25906: LIST
25907: LIST
25908: LIST
25909: PUSH
25910: EMPTY
25911: LIST
25912: LIST
25913: PPUSH
25914: CALL_OW 70
25918: ST_TO_ADDR
// ComEnterUnit ( pomvojcli , R_arm ) ;
25919: LD_VAR 0 1
25923: PPUSH
25924: LD_LOC 38
25928: PPUSH
25929: CALL_OW 120
// end ;
25933: PPOPN 1
25935: END
// every 0 0$3 marked 296 do
25936: GO 25938
25938: DISABLE
// begin if GetSide ( R_lab ) <> Rusi then
25939: LD_LOC 33
25943: PPUSH
25944: CALL_OW 255
25948: PUSH
25949: LD_EXP 2
25953: NONEQUAL
25954: IFFALSE 25958
// exit ;
25956: GO 26003
// SetTech ( tech_Tech3 , Rusi , state_enabled ) ;
25958: LD_INT 50
25960: PPUSH
25961: LD_EXP 2
25965: PPUSH
25966: LD_INT 1
25968: PPUSH
25969: CALL_OW 322
// SetTechProgress ( tech_Tech3 , Rusi , 0 ) ;
25973: LD_INT 50
25975: PPUSH
25976: LD_EXP 2
25980: PPUSH
25981: LD_INT 0
25983: PPUSH
25984: CALL_OW 327
// ComResearch ( R_lab , tech_Tech3 ) ;
25988: LD_LOC 33
25992: PPUSH
25993: LD_INT 50
25995: PPUSH
25996: CALL_OW 124
// enable ( 295 ) ;
26000: LD_INT 295
26002: ENABLE_MARKED
// end ;
26003: END
// every 0 0$5 trigger GetTech ( tech_Tech3 , Rusi ) = state_researched marked 295 do
26004: LD_INT 50
26006: PPUSH
26007: LD_EXP 2
26011: PPUSH
26012: CALL_OW 321
26016: PUSH
26017: LD_INT 2
26019: EQUAL
26020: IFFALSE 26087
26022: GO 26024
26024: DISABLE
// begin if GetSide ( R_lab ) <> Rusi then
26025: LD_LOC 33
26029: PPUSH
26030: CALL_OW 255
26034: PUSH
26035: LD_EXP 2
26039: NONEQUAL
26040: IFFALSE 26044
// exit ;
26042: GO 26087
// SetTech ( tech_Tech3 , Rusi , state_enabled ) ;
26044: LD_INT 50
26046: PPUSH
26047: LD_EXP 2
26051: PPUSH
26052: LD_INT 1
26054: PPUSH
26055: CALL_OW 322
// SetTechProgress ( tech_Tech3 , Rusi , 0 ) ;
26059: LD_INT 50
26061: PPUSH
26062: LD_EXP 2
26066: PPUSH
26067: LD_INT 0
26069: PPUSH
26070: CALL_OW 327
// ComResearch ( R_lab , tech_Tech3 ) ;
26074: LD_LOC 33
26078: PPUSH
26079: LD_INT 50
26081: PPUSH
26082: CALL_OW 124
// enable ;
26086: ENABLE
// end ;
26087: END
// every 0 0$1 do var i , pom ; var BASE_cesta ;
26088: GO 26090
26090: DISABLE
26091: LD_INT 0
26093: PPUSH
26094: PPUSH
26095: PPUSH
// begin while not dialog_u_zakladny_probehl do
26096: LD_EXP 41
26100: NOT
26101: IFFALSE 26112
// wait ( 0 0$3 ) ;
26103: LD_INT 105
26105: PPUSH
26106: CALL_OW 67
26110: GO 26096
// wait ( cas_na_cekani_pred_nultym_utokem [ difficulty ] ) ;
26112: LD_EXP 76
26116: PUSH
26117: LD_OWVAR 67
26121: ARRAY
26122: PPUSH
26123: CALL_OW 67
// for i in RUSKY_UTOK_0_LIST do
26127: LD_ADDR_VAR 0 1
26131: PUSH
26132: LD_EXP 19
26136: PUSH
26137: FOR_IN
26138: IFFALSE 26157
// PlaceUnitArea ( i , Rutok0 , false ) ;
26140: LD_VAR 0 1
26144: PPUSH
26145: LD_INT 29
26147: PPUSH
26148: LD_INT 0
26150: PPUSH
26151: CALL_OW 49
26155: GO 26137
26157: POP
26158: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
26159: LD_ADDR_VAR 0 2
26163: PUSH
26164: LD_INT 22
26166: PUSH
26167: LD_EXP 3
26171: PUSH
26172: EMPTY
26173: LIST
26174: LIST
26175: PUSH
26176: LD_INT 2
26178: PUSH
26179: LD_INT 30
26181: PUSH
26182: LD_INT 0
26184: PUSH
26185: EMPTY
26186: LIST
26187: LIST
26188: PUSH
26189: LD_INT 30
26191: PUSH
26192: LD_INT 1
26194: PUSH
26195: EMPTY
26196: LIST
26197: LIST
26198: PUSH
26199: EMPTY
26200: LIST
26201: LIST
26202: LIST
26203: PUSH
26204: EMPTY
26205: LIST
26206: LIST
26207: PPUSH
26208: CALL_OW 69
26212: ST_TO_ADDR
// if pom > 0 then
26213: LD_VAR 0 2
26217: PUSH
26218: LD_INT 0
26220: GREATER
26221: IFFALSE 26262
// BASE_cesta = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
26223: LD_ADDR_VAR 0 3
26227: PUSH
26228: LD_VAR 0 2
26232: PUSH
26233: LD_INT 1
26235: ARRAY
26236: PPUSH
26237: CALL_OW 250
26241: PUSH
26242: LD_VAR 0 2
26246: PUSH
26247: LD_INT 1
26249: ARRAY
26250: PPUSH
26251: CALL_OW 251
26255: PUSH
26256: EMPTY
26257: LIST
26258: LIST
26259: ST_TO_ADDR
26260: GO 26277
// BASE_cesta = [ 60 , 8 ] ;
26262: LD_ADDR_VAR 0 3
26266: PUSH
26267: LD_INT 60
26269: PUSH
26270: LD_INT 8
26272: PUSH
26273: EMPTY
26274: LIST
26275: LIST
26276: ST_TO_ADDR
// McMove ( 1 , RUSKY_UTOK_0_LIST , [ [ 65 , 66 ] , [ 89 , 70 ] , [ 111 , 78 ] , [ 115 , 67 ] , [ 120 , 62 ] , [ 110 , 41 ] , BASE ] , [ mc_move_agressive , mc_move_dontcapture , mc_move_waitwp ] ) ;
26277: LD_INT 1
26279: PPUSH
26280: LD_EXP 19
26284: PPUSH
26285: LD_INT 65
26287: PUSH
26288: LD_INT 66
26290: PUSH
26291: EMPTY
26292: LIST
26293: LIST
26294: PUSH
26295: LD_INT 89
26297: PUSH
26298: LD_INT 70
26300: PUSH
26301: EMPTY
26302: LIST
26303: LIST
26304: PUSH
26305: LD_INT 111
26307: PUSH
26308: LD_INT 78
26310: PUSH
26311: EMPTY
26312: LIST
26313: LIST
26314: PUSH
26315: LD_INT 115
26317: PUSH
26318: LD_INT 67
26320: PUSH
26321: EMPTY
26322: LIST
26323: LIST
26324: PUSH
26325: LD_INT 120
26327: PUSH
26328: LD_INT 62
26330: PUSH
26331: EMPTY
26332: LIST
26333: LIST
26334: PUSH
26335: LD_INT 110
26337: PUSH
26338: LD_INT 41
26340: PUSH
26341: EMPTY
26342: LIST
26343: LIST
26344: PUSH
26345: LD_INT 12
26347: PUSH
26348: EMPTY
26349: LIST
26350: LIST
26351: LIST
26352: LIST
26353: LIST
26354: LIST
26355: LIST
26356: PPUSH
26357: LD_INT 6
26359: PUSH
26360: LD_INT 5
26362: PUSH
26363: LD_INT 3
26365: PUSH
26366: EMPTY
26367: LIST
26368: LIST
26369: LIST
26370: PPUSH
26371: CALL_OW 398
// enable ( 240 ) ;
26375: LD_INT 240
26377: ENABLE_MARKED
// zpracuj_ruske_utoceni ( RUSKY_UTOK_0_LIST ) ;
26378: LD_EXP 19
26382: PPUSH
26383: CALL 27829 0 1
// end ;
26387: PPOPN 3
26389: END
// every 1 1$0 marked 240 do var sourad ; var baz ; var BASE_cesta ;
26390: GO 26392
26392: DISABLE
26393: LD_INT 0
26395: PPUSH
26396: PPUSH
26397: PPUSH
// begin wait ( farusi [ difficulty ] ) ;
26398: LD_EXP 64
26402: PUSH
26403: LD_OWVAR 67
26407: ARRAY
26408: PPUSH
26409: CALL_OW 67
// for i in CREATE_RUSKY_ATTACK1_LIST do
26413: LD_ADDR_LOC 22
26417: PUSH
26418: LD_EXP 14
26422: PUSH
26423: FOR_IN
26424: IFFALSE 26443
// PlaceUnitArea ( i , RE3 , false ) ;
26426: LD_LOC 22
26430: PPUSH
26431: LD_INT 6
26433: PPUSH
26434: LD_INT 0
26436: PPUSH
26437: CALL_OW 49
26441: GO 26423
26443: POP
26444: POP
// RA1 := FilterUnitsInArea ( RE3 , [ [ f_side , Rusi ] ] ) ;
26445: LD_ADDR_LOC 27
26449: PUSH
26450: LD_INT 6
26452: PPUSH
26453: LD_INT 22
26455: PUSH
26456: LD_EXP 2
26460: PUSH
26461: EMPTY
26462: LIST
26463: LIST
26464: PUSH
26465: EMPTY
26466: LIST
26467: PPUSH
26468: CALL_OW 70
26472: ST_TO_ADDR
// if IsOK ( Ambase ) then
26473: LD_EXP 51
26477: PPUSH
26478: CALL_OW 302
26482: IFFALSE 26515
// sourad = [ GetX ( Ambase ) , GetY ( Ambase ) ] else
26484: LD_ADDR_VAR 0 1
26488: PUSH
26489: LD_EXP 51
26493: PPUSH
26494: CALL_OW 250
26498: PUSH
26499: LD_EXP 51
26503: PPUSH
26504: CALL_OW 251
26508: PUSH
26509: EMPTY
26510: LIST
26511: LIST
26512: ST_TO_ADDR
26513: GO 26530
// sourad = [ 99 , 30 ] ;
26515: LD_ADDR_VAR 0 1
26519: PUSH
26520: LD_INT 99
26522: PUSH
26523: LD_INT 30
26525: PUSH
26526: EMPTY
26527: LIST
26528: LIST
26529: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
26530: LD_ADDR_LOC 23
26534: PUSH
26535: LD_INT 22
26537: PUSH
26538: LD_EXP 3
26542: PUSH
26543: EMPTY
26544: LIST
26545: LIST
26546: PUSH
26547: LD_INT 2
26549: PUSH
26550: LD_INT 30
26552: PUSH
26553: LD_INT 0
26555: PUSH
26556: EMPTY
26557: LIST
26558: LIST
26559: PUSH
26560: LD_INT 30
26562: PUSH
26563: LD_INT 1
26565: PUSH
26566: EMPTY
26567: LIST
26568: LIST
26569: PUSH
26570: EMPTY
26571: LIST
26572: LIST
26573: LIST
26574: PUSH
26575: EMPTY
26576: LIST
26577: LIST
26578: PPUSH
26579: CALL_OW 69
26583: ST_TO_ADDR
// if pom > 0 then
26584: LD_LOC 23
26588: PUSH
26589: LD_INT 0
26591: GREATER
26592: IFFALSE 26633
// BASE_cesta = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
26594: LD_ADDR_VAR 0 3
26598: PUSH
26599: LD_LOC 23
26603: PUSH
26604: LD_INT 1
26606: ARRAY
26607: PPUSH
26608: CALL_OW 250
26612: PUSH
26613: LD_LOC 23
26617: PUSH
26618: LD_INT 1
26620: ARRAY
26621: PPUSH
26622: CALL_OW 251
26626: PUSH
26627: EMPTY
26628: LIST
26629: LIST
26630: ST_TO_ADDR
26631: GO 26648
// BASE_cesta = [ 60 , 8 ] ;
26633: LD_ADDR_VAR 0 3
26637: PUSH
26638: LD_INT 60
26640: PUSH
26641: LD_INT 8
26643: PUSH
26644: EMPTY
26645: LIST
26646: LIST
26647: ST_TO_ADDR
// McMove ( 1 , RA1 , [ [ 95 , 98 ] , [ 77 , 54 ] , [ 85 , 45 ] , [ 93 , 45 ] , [ 106 , 42 ] , sourad , BASE_cesta ] , [ mc_move_dontcapture , mc_move_agressive ] ) ;
26648: LD_INT 1
26650: PPUSH
26651: LD_LOC 27
26655: PPUSH
26656: LD_INT 95
26658: PUSH
26659: LD_INT 98
26661: PUSH
26662: EMPTY
26663: LIST
26664: LIST
26665: PUSH
26666: LD_INT 77
26668: PUSH
26669: LD_INT 54
26671: PUSH
26672: EMPTY
26673: LIST
26674: LIST
26675: PUSH
26676: LD_INT 85
26678: PUSH
26679: LD_INT 45
26681: PUSH
26682: EMPTY
26683: LIST
26684: LIST
26685: PUSH
26686: LD_INT 93
26688: PUSH
26689: LD_INT 45
26691: PUSH
26692: EMPTY
26693: LIST
26694: LIST
26695: PUSH
26696: LD_INT 106
26698: PUSH
26699: LD_INT 42
26701: PUSH
26702: EMPTY
26703: LIST
26704: LIST
26705: PUSH
26706: LD_VAR 0 1
26710: PUSH
26711: LD_VAR 0 3
26715: PUSH
26716: EMPTY
26717: LIST
26718: LIST
26719: LIST
26720: LIST
26721: LIST
26722: LIST
26723: LIST
26724: PPUSH
26725: LD_INT 5
26727: PUSH
26728: LD_INT 6
26730: PUSH
26731: EMPTY
26732: LIST
26733: LIST
26734: PPUSH
26735: CALL_OW 398
// wait ( wait_spec_baz [ difficulty ] ) ;
26739: LD_EXP 79
26743: PUSH
26744: LD_OWVAR 67
26748: ARRAY
26749: PPUSH
26750: CALL_OW 67
// posli_ruske_bazukery ;
26754: CALL 25245 0 0
// enable ( 251 ) ;
26758: LD_INT 251
26760: ENABLE_MARKED
// zpracuj_ruske_utoceni ( CREATE_RUSKY_ATTACK1_LIST ) ;
26761: LD_EXP 14
26765: PPUSH
26766: CALL 27829 0 1
// PRU_ATTACK = 1 ;
26770: LD_ADDR_EXP 37
26774: PUSH
26775: LD_INT 1
26777: ST_TO_ADDR
// end ;
26778: PPOPN 3
26780: END
// every 1 1$30 trigger PRU_ATTACK = 1 marked 251 do var sourad ; var BASE_cesta ;
26781: LD_EXP 37
26785: PUSH
26786: LD_INT 1
26788: EQUAL
26789: IFFALSE 27199
26791: GO 26793
26793: DISABLE
26794: LD_INT 0
26796: PPUSH
26797: PPUSH
// begin wait ( wait2new [ difficulty ] ) ;
26798: LD_EXP 69
26802: PUSH
26803: LD_OWVAR 67
26807: ARRAY
26808: PPUSH
26809: CALL_OW 67
// for i in CREATE_2_NEW_ATTACK_LIST do
26813: LD_ADDR_LOC 22
26817: PUSH
26818: LD_EXP 16
26822: PUSH
26823: FOR_IN
26824: IFFALSE 26855
// begin if not IsInUnit ( i ) then
26826: LD_LOC 22
26830: PPUSH
26831: CALL_OW 310
26835: NOT
26836: IFFALSE 26853
// PlaceUnitArea ( i , EnterAM , false ) ;
26838: LD_LOC 22
26842: PPUSH
26843: LD_INT 3
26845: PPUSH
26846: LD_INT 0
26848: PPUSH
26849: CALL_OW 49
// end ;
26853: GO 26823
26855: POP
26856: POP
// UTOK = FilterUnitsInArea ( EnterAM , [ [ f_side , Rusi ] ] ) ;
26857: LD_ADDR_LOC 44
26861: PUSH
26862: LD_INT 3
26864: PPUSH
26865: LD_INT 22
26867: PUSH
26868: LD_EXP 2
26872: PUSH
26873: EMPTY
26874: LIST
26875: LIST
26876: PUSH
26877: EMPTY
26878: LIST
26879: PPUSH
26880: CALL_OW 70
26884: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_building ] ] ) ;
26885: LD_ADDR_LOC 23
26889: PUSH
26890: LD_INT 22
26892: PUSH
26893: LD_EXP 3
26897: PUSH
26898: EMPTY
26899: LIST
26900: LIST
26901: PUSH
26902: LD_INT 1
26904: PUSH
26905: EMPTY
26906: LIST
26907: PUSH
26908: LD_INT 21
26910: PUSH
26911: LD_INT 3
26913: PUSH
26914: EMPTY
26915: LIST
26916: LIST
26917: PUSH
26918: EMPTY
26919: LIST
26920: LIST
26921: LIST
26922: PPUSH
26923: CALL_OW 69
26927: ST_TO_ADDR
// if pom > 0 then
26928: LD_LOC 23
26932: PUSH
26933: LD_INT 0
26935: GREATER
26936: IFFALSE 26977
// sourad = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
26938: LD_ADDR_VAR 0 1
26942: PUSH
26943: LD_LOC 23
26947: PUSH
26948: LD_INT 1
26950: ARRAY
26951: PPUSH
26952: CALL_OW 250
26956: PUSH
26957: LD_LOC 23
26961: PUSH
26962: LD_INT 1
26964: ARRAY
26965: PPUSH
26966: CALL_OW 251
26970: PUSH
26971: EMPTY
26972: LIST
26973: LIST
26974: ST_TO_ADDR
26975: GO 26992
// sourad = [ 98 , 26 ] ;
26977: LD_ADDR_VAR 0 1
26981: PUSH
26982: LD_INT 98
26984: PUSH
26985: LD_INT 26
26987: PUSH
26988: EMPTY
26989: LIST
26990: LIST
26991: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
26992: LD_ADDR_LOC 23
26996: PUSH
26997: LD_INT 22
26999: PUSH
27000: LD_EXP 3
27004: PUSH
27005: EMPTY
27006: LIST
27007: LIST
27008: PUSH
27009: LD_INT 2
27011: PUSH
27012: LD_INT 30
27014: PUSH
27015: LD_INT 0
27017: PUSH
27018: EMPTY
27019: LIST
27020: LIST
27021: PUSH
27022: LD_INT 30
27024: PUSH
27025: LD_INT 1
27027: PUSH
27028: EMPTY
27029: LIST
27030: LIST
27031: PUSH
27032: EMPTY
27033: LIST
27034: LIST
27035: LIST
27036: PUSH
27037: EMPTY
27038: LIST
27039: LIST
27040: PPUSH
27041: CALL_OW 69
27045: ST_TO_ADDR
// if pom > 0 then
27046: LD_LOC 23
27050: PUSH
27051: LD_INT 0
27053: GREATER
27054: IFFALSE 27095
// BASE_cesta = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
27056: LD_ADDR_VAR 0 2
27060: PUSH
27061: LD_LOC 23
27065: PUSH
27066: LD_INT 1
27068: ARRAY
27069: PPUSH
27070: CALL_OW 250
27074: PUSH
27075: LD_LOC 23
27079: PUSH
27080: LD_INT 1
27082: ARRAY
27083: PPUSH
27084: CALL_OW 251
27088: PUSH
27089: EMPTY
27090: LIST
27091: LIST
27092: ST_TO_ADDR
27093: GO 27110
// BASE_cesta = [ 70 , 48 ] ;
27095: LD_ADDR_VAR 0 2
27099: PUSH
27100: LD_INT 70
27102: PUSH
27103: LD_INT 48
27105: PUSH
27106: EMPTY
27107: LIST
27108: LIST
27109: ST_TO_ADDR
// McMove ( 1 , UTOK , [ [ 52 , 51 ] , [ 80 , 46 ] , [ 99 , 48 ] , sourad , BASE_cesta ] , [ mc_move_dontcapture , mc_move_agressive ] ) ;
27110: LD_INT 1
27112: PPUSH
27113: LD_LOC 44
27117: PPUSH
27118: LD_INT 52
27120: PUSH
27121: LD_INT 51
27123: PUSH
27124: EMPTY
27125: LIST
27126: LIST
27127: PUSH
27128: LD_INT 80
27130: PUSH
27131: LD_INT 46
27133: PUSH
27134: EMPTY
27135: LIST
27136: LIST
27137: PUSH
27138: LD_INT 99
27140: PUSH
27141: LD_INT 48
27143: PUSH
27144: EMPTY
27145: LIST
27146: LIST
27147: PUSH
27148: LD_VAR 0 1
27152: PUSH
27153: LD_VAR 0 2
27157: PUSH
27158: EMPTY
27159: LIST
27160: LIST
27161: LIST
27162: LIST
27163: LIST
27164: PPUSH
27165: LD_INT 5
27167: PUSH
27168: LD_INT 6
27170: PUSH
27171: EMPTY
27172: LIST
27173: LIST
27174: PPUSH
27175: CALL_OW 398
// PRU_Attack = 2 ;
27179: LD_ADDR_EXP 37
27183: PUSH
27184: LD_INT 2
27186: ST_TO_ADDR
// enable ( 289 ) ;
27187: LD_INT 289
27189: ENABLE_MARKED
// zpracuj_ruske_utoceni ( CREATE_2_NEW_ATTACK_LIST ) ;
27190: LD_EXP 16
27194: PPUSH
27195: CALL 27829 0 1
// end ;
27199: PPOPN 2
27201: END
// every 0 0$10 marked 289 do var BASE_cesta ;
27202: GO 27204
27204: DISABLE
27205: LD_INT 0
27207: PPUSH
// begin wait ( wait3new [ difficulty ] ) ;
27208: LD_EXP 77
27212: PUSH
27213: LD_OWVAR 67
27217: ARRAY
27218: PPUSH
27219: CALL_OW 67
// for i in CREATE_3_NEW_ATTACK_LIST do
27223: LD_ADDR_LOC 22
27227: PUSH
27228: LD_EXP 17
27232: PUSH
27233: FOR_IN
27234: IFFALSE 27253
// PlaceUnitArea ( i , EnterAM , false ) ;
27236: LD_LOC 22
27240: PPUSH
27241: LD_INT 3
27243: PPUSH
27244: LD_INT 0
27246: PPUSH
27247: CALL_OW 49
27251: GO 27233
27253: POP
27254: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
27255: LD_ADDR_LOC 23
27259: PUSH
27260: LD_INT 22
27262: PUSH
27263: LD_EXP 3
27267: PUSH
27268: EMPTY
27269: LIST
27270: LIST
27271: PUSH
27272: LD_INT 2
27274: PUSH
27275: LD_INT 30
27277: PUSH
27278: LD_INT 0
27280: PUSH
27281: EMPTY
27282: LIST
27283: LIST
27284: PUSH
27285: LD_INT 30
27287: PUSH
27288: LD_INT 1
27290: PUSH
27291: EMPTY
27292: LIST
27293: LIST
27294: PUSH
27295: EMPTY
27296: LIST
27297: LIST
27298: LIST
27299: PUSH
27300: EMPTY
27301: LIST
27302: LIST
27303: PPUSH
27304: CALL_OW 69
27308: ST_TO_ADDR
// if pom > 0 then
27309: LD_LOC 23
27313: PUSH
27314: LD_INT 0
27316: GREATER
27317: IFFALSE 27358
// BASE_cesta = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
27319: LD_ADDR_VAR 0 1
27323: PUSH
27324: LD_LOC 23
27328: PUSH
27329: LD_INT 1
27331: ARRAY
27332: PPUSH
27333: CALL_OW 250
27337: PUSH
27338: LD_LOC 23
27342: PUSH
27343: LD_INT 1
27345: ARRAY
27346: PPUSH
27347: CALL_OW 251
27351: PUSH
27352: EMPTY
27353: LIST
27354: LIST
27355: ST_TO_ADDR
27356: GO 27373
// BASE_cesta = [ 60 , 8 ] ;
27358: LD_ADDR_VAR 0 1
27362: PUSH
27363: LD_INT 60
27365: PUSH
27366: LD_INT 8
27368: PUSH
27369: EMPTY
27370: LIST
27371: LIST
27372: ST_TO_ADDR
// McMove ( 1 , CREATE_3_NEW_ATTACK_LIST , [ [ 56 , 51 ] , [ 81 , 44 ] , [ 100 , 29 ] , BASE_cesta ] , [ mc_move_agressive , mc_move_dontcapture , mc_move_waitwp ] ) ;
27373: LD_INT 1
27375: PPUSH
27376: LD_EXP 17
27380: PPUSH
27381: LD_INT 56
27383: PUSH
27384: LD_INT 51
27386: PUSH
27387: EMPTY
27388: LIST
27389: LIST
27390: PUSH
27391: LD_INT 81
27393: PUSH
27394: LD_INT 44
27396: PUSH
27397: EMPTY
27398: LIST
27399: LIST
27400: PUSH
27401: LD_INT 100
27403: PUSH
27404: LD_INT 29
27406: PUSH
27407: EMPTY
27408: LIST
27409: LIST
27410: PUSH
27411: LD_VAR 0 1
27415: PUSH
27416: EMPTY
27417: LIST
27418: LIST
27419: LIST
27420: LIST
27421: PPUSH
27422: LD_INT 6
27424: PUSH
27425: LD_INT 5
27427: PUSH
27428: LD_INT 3
27430: PUSH
27431: EMPTY
27432: LIST
27433: LIST
27434: LIST
27435: PPUSH
27436: CALL_OW 398
// PRU_Attack = 3 ;
27440: LD_ADDR_EXP 37
27444: PUSH
27445: LD_INT 3
27447: ST_TO_ADDR
// enable ( 288 ) ;
27448: LD_INT 288
27450: ENABLE_MARKED
// zpracuj_ruske_utoceni ( CREATE_3_NEW_ATTACK_LIST ) ;
27451: LD_EXP 17
27455: PPUSH
27456: CALL 27829 0 1
// end ;
27460: PPOPN 1
27462: END
// every 0 0$17 trigger PRU_Attack = 3 marked 288 do var BASE_cesta ;
27463: LD_EXP 37
27467: PUSH
27468: LD_INT 3
27470: EQUAL
27471: IFFALSE 27719
27473: GO 27475
27475: DISABLE
27476: LD_INT 0
27478: PPUSH
// begin wait ( wait_bazooka_attack [ difficulty ] ) ;
27479: LD_EXP 78
27483: PUSH
27484: LD_OWVAR 67
27488: ARRAY
27489: PPUSH
27490: CALL_OW 67
// for i in CREATE_BAZOOKA_ATTACK_LIST do
27494: LD_ADDR_LOC 22
27498: PUSH
27499: LD_EXP 18
27503: PUSH
27504: FOR_IN
27505: IFFALSE 27524
// PlaceUnitArea ( i , RE2 , false ) ;
27507: LD_LOC 22
27511: PPUSH
27512: LD_INT 5
27514: PPUSH
27515: LD_INT 0
27517: PPUSH
27518: CALL_OW 49
27522: GO 27504
27524: POP
27525: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
27526: LD_ADDR_LOC 23
27530: PUSH
27531: LD_INT 22
27533: PUSH
27534: LD_EXP 3
27538: PUSH
27539: EMPTY
27540: LIST
27541: LIST
27542: PUSH
27543: LD_INT 2
27545: PUSH
27546: LD_INT 30
27548: PUSH
27549: LD_INT 0
27551: PUSH
27552: EMPTY
27553: LIST
27554: LIST
27555: PUSH
27556: LD_INT 30
27558: PUSH
27559: LD_INT 1
27561: PUSH
27562: EMPTY
27563: LIST
27564: LIST
27565: PUSH
27566: EMPTY
27567: LIST
27568: LIST
27569: LIST
27570: PUSH
27571: EMPTY
27572: LIST
27573: LIST
27574: PPUSH
27575: CALL_OW 69
27579: ST_TO_ADDR
// if pom > 0 then
27580: LD_LOC 23
27584: PUSH
27585: LD_INT 0
27587: GREATER
27588: IFFALSE 27629
// BASE_cesta = [ GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ] else
27590: LD_ADDR_VAR 0 1
27594: PUSH
27595: LD_LOC 23
27599: PUSH
27600: LD_INT 1
27602: ARRAY
27603: PPUSH
27604: CALL_OW 250
27608: PUSH
27609: LD_LOC 23
27613: PUSH
27614: LD_INT 1
27616: ARRAY
27617: PPUSH
27618: CALL_OW 251
27622: PUSH
27623: EMPTY
27624: LIST
27625: LIST
27626: ST_TO_ADDR
27627: GO 27644
// BASE_cesta = [ 63 , 6 ] ;
27629: LD_ADDR_VAR 0 1
27633: PUSH
27634: LD_INT 63
27636: PUSH
27637: LD_INT 6
27639: PUSH
27640: EMPTY
27641: LIST
27642: LIST
27643: ST_TO_ADDR
// bazmakro = McMove ( 1 , CREATE_BAZOOKA_ATTACK_LIST , [ [ 92 , 93 ] , [ 121 , 91 ] , [ 126 , 76 ] ] , [ mc_move_agressive , mc_move_dontcapture , mc_move_waitwp ] ) ;
27644: LD_ADDR_LOC 49
27648: PUSH
27649: LD_INT 1
27651: PPUSH
27652: LD_EXP 18
27656: PPUSH
27657: LD_INT 92
27659: PUSH
27660: LD_INT 93
27662: PUSH
27663: EMPTY
27664: LIST
27665: LIST
27666: PUSH
27667: LD_INT 121
27669: PUSH
27670: LD_INT 91
27672: PUSH
27673: EMPTY
27674: LIST
27675: LIST
27676: PUSH
27677: LD_INT 126
27679: PUSH
27680: LD_INT 76
27682: PUSH
27683: EMPTY
27684: LIST
27685: LIST
27686: PUSH
27687: EMPTY
27688: LIST
27689: LIST
27690: LIST
27691: PPUSH
27692: LD_INT 6
27694: PUSH
27695: LD_INT 5
27697: PUSH
27698: LD_INT 3
27700: PUSH
27701: EMPTY
27702: LIST
27703: LIST
27704: LIST
27705: PPUSH
27706: CALL_OW 398
27710: ST_TO_ADDR
// PRU_Attack = 4 ;
27711: LD_ADDR_EXP 37
27715: PUSH
27716: LD_INT 4
27718: ST_TO_ADDR
// end ;
27719: PPOPN 1
27721: END
// every 0 0$1 trigger PRU_Attack = 4 and FilterUnitsInArea ( bazooka_attack_test , [ [ f_side , Rusi ] , [ f_class , class_bazooker ] ] ) > 1 do
27722: LD_EXP 37
27726: PUSH
27727: LD_INT 4
27729: EQUAL
27730: PUSH
27731: LD_INT 41
27733: PPUSH
27734: LD_INT 22
27736: PUSH
27737: LD_EXP 2
27741: PUSH
27742: EMPTY
27743: LIST
27744: LIST
27745: PUSH
27746: LD_INT 25
27748: PUSH
27749: LD_INT 9
27751: PUSH
27752: EMPTY
27753: LIST
27754: LIST
27755: PUSH
27756: EMPTY
27757: LIST
27758: LIST
27759: PPUSH
27760: CALL_OW 70
27764: PUSH
27765: LD_INT 1
27767: GREATER
27768: AND
27769: IFFALSE 27828
27771: GO 27773
27773: DISABLE
// begin KillMc ( bazmakro ) ;
27774: LD_LOC 49
27778: PPUSH
27779: CALL_OW 387
// ComAgressiveMove ( CREATE_BAZOOKA_ATTACK_LIST , 129 , 70 ) ;
27783: LD_EXP 18
27787: PPUSH
27788: LD_INT 129
27790: PPUSH
27791: LD_INT 70
27793: PPUSH
27794: CALL_OW 114
// AddComAgressiveMove ( CREATE_BAZOOKA_ATTACK_LIST , 126 , 52 ) ;
27798: LD_EXP 18
27802: PPUSH
27803: LD_INT 126
27805: PPUSH
27806: LD_INT 52
27808: PPUSH
27809: CALL_OW 174
// AddComAgressiveMove ( CREATE_BAZOOKA_ATTACK_LIST , 110 , 36 ) ;
27813: LD_EXP 18
27817: PPUSH
27818: LD_INT 110
27820: PPUSH
27821: LD_INT 36
27823: PPUSH
27824: CALL_OW 174
// end ;
27828: END
// function zpracuj_ruske_utoceni ( jedn ) ; var j , pomj ; var i , pom ; var AIJ ; begin
27829: LD_INT 0
27831: PPUSH
27832: PPUSH
27833: PPUSH
27834: PPUSH
27835: PPUSH
27836: PPUSH
// j = jedn ;
27837: LD_ADDR_VAR 0 3
27841: PUSH
27842: LD_VAR 0 1
27846: ST_TO_ADDR
// while j <> 0 do
27847: LD_VAR 0 3
27851: PUSH
27852: LD_INT 0
27854: NONEQUAL
27855: IFFALSE 28144
// begin AIJ = [ ] ;
27857: LD_ADDR_VAR 0 7
27861: PUSH
27862: EMPTY
27863: ST_TO_ADDR
// for i in j do
27864: LD_ADDR_VAR 0 5
27868: PUSH
27869: LD_VAR 0 3
27873: PUSH
27874: FOR_IN
27875: IFFALSE 27906
// if IsIdle ( i ) then
27877: LD_VAR 0 5
27881: PPUSH
27882: CALL_OW 316
27886: IFFALSE 27904
// AIJ = AIJ ^ i ;
27888: LD_ADDR_VAR 0 7
27892: PUSH
27893: LD_VAR 0 7
27897: PUSH
27898: LD_VAR 0 5
27902: ADD
27903: ST_TO_ADDR
27904: GO 27874
27906: POP
27907: POP
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
27908: LD_ADDR_VAR 0 6
27912: PUSH
27913: LD_INT 22
27915: PUSH
27916: LD_EXP 3
27920: PUSH
27921: EMPTY
27922: LIST
27923: LIST
27924: PUSH
27925: LD_INT 2
27927: PUSH
27928: LD_INT 30
27930: PUSH
27931: LD_INT 0
27933: PUSH
27934: EMPTY
27935: LIST
27936: LIST
27937: PUSH
27938: LD_INT 30
27940: PUSH
27941: LD_INT 1
27943: PUSH
27944: EMPTY
27945: LIST
27946: LIST
27947: PUSH
27948: EMPTY
27949: LIST
27950: LIST
27951: LIST
27952: PUSH
27953: EMPTY
27954: LIST
27955: LIST
27956: PPUSH
27957: CALL_OW 69
27961: ST_TO_ADDR
// if pom > 0 then
27962: LD_VAR 0 6
27966: PUSH
27967: LD_INT 0
27969: GREATER
27970: IFFALSE 28070
// begin ComAgressiveMove ( AIJ , GetX ( pom [ 1 ] ) , GetY ( pom [ 1 ] ) ) ;
27972: LD_VAR 0 7
27976: PPUSH
27977: LD_VAR 0 6
27981: PUSH
27982: LD_INT 1
27984: ARRAY
27985: PPUSH
27986: CALL_OW 250
27990: PPUSH
27991: LD_VAR 0 6
27995: PUSH
27996: LD_INT 1
27998: ARRAY
27999: PPUSH
28000: CALL_OW 251
28004: PPUSH
28005: CALL_OW 114
// AddComAttackUnit ( AIJ , pom [ 1 ] ) ;
28009: LD_VAR 0 7
28013: PPUSH
28014: LD_VAR 0 6
28018: PUSH
28019: LD_INT 1
28021: ARRAY
28022: PPUSH
28023: CALL_OW 175
// AddComAgressiveMove ( AIJ , GetX ( JMM ) , GetY ( JMM ) ) ;
28027: LD_VAR 0 7
28031: PPUSH
28032: LD_EXP 42
28036: PPUSH
28037: CALL_OW 250
28041: PPUSH
28042: LD_EXP 42
28046: PPUSH
28047: CALL_OW 251
28051: PPUSH
28052: CALL_OW 174
// AddComAttackUnit ( AIJ , JMM ) ;
28056: LD_VAR 0 7
28060: PPUSH
28061: LD_EXP 42
28065: PPUSH
28066: CALL_OW 175
// end ; pomj = j ;
28070: LD_ADDR_VAR 0 4
28074: PUSH
28075: LD_VAR 0 3
28079: ST_TO_ADDR
// for i in j do
28080: LD_ADDR_VAR 0 5
28084: PUSH
28085: LD_VAR 0 3
28089: PUSH
28090: FOR_IN
28091: IFFALSE 28123
// if not IsOK ( i ) then
28093: LD_VAR 0 5
28097: PPUSH
28098: CALL_OW 302
28102: NOT
28103: IFFALSE 28121
// pomj = pomj diff i ;
28105: LD_ADDR_VAR 0 4
28109: PUSH
28110: LD_VAR 0 4
28114: PUSH
28115: LD_VAR 0 5
28119: DIFF
28120: ST_TO_ADDR
28121: GO 28090
28123: POP
28124: POP
// j = pomj ;
28125: LD_ADDR_VAR 0 3
28129: PUSH
28130: LD_VAR 0 4
28134: ST_TO_ADDR
// wait ( 0 0$1 ) ;
28135: LD_INT 35
28137: PPUSH
28138: CALL_OW 67
// end ;
28142: GO 27847
// end ; end_of_file
28144: LD_VAR 0 2
28148: RET
// var i ; var pom , pom1 , pom2 , pom3 , pom4 , pom5 ; var asol ; var cor_dial1 , cor_dial2 ; var disable_kecy1 ; var disable_kecy2 ; export Dial ; export dialog_u_zakladny_probehl ; var test_ukonceni_allowed ; every 0 0$0.1 do
28149: GO 28151
28151: DISABLE
// begin disable_kecy1 = false ;
28152: LD_ADDR_LOC 60
28156: PUSH
28157: LD_INT 0
28159: ST_TO_ADDR
// disable_kecy2 = false ;
28160: LD_ADDR_LOC 61
28164: PUSH
28165: LD_INT 0
28167: ST_TO_ADDR
// dialog_u_zakladny_probehl = false ;
28168: LD_ADDR_EXP 41
28172: PUSH
28173: LD_INT 0
28175: ST_TO_ADDR
// test_ukonceni_allowed = false ;
28176: LD_ADDR_LOC 62
28180: PUSH
28181: LD_INT 0
28183: ST_TO_ADDR
// cor_dial1 = false ;
28184: LD_ADDR_LOC 58
28188: PUSH
28189: LD_INT 0
28191: ST_TO_ADDR
// cor_dial2 = false ;
28192: LD_ADDR_LOC 59
28196: PUSH
28197: LD_INT 0
28199: ST_TO_ADDR
// for i := 1 to 8 do
28200: LD_ADDR_LOC 50
28204: PUSH
28205: DOUBLE
28206: LD_INT 1
28208: DEC
28209: ST_TO_ADDR
28210: LD_INT 8
28212: PUSH
28213: FOR_TO
28214: IFFALSE 28227
// disable ( 100 + i ) ;
28216: LD_INT 100
28218: PUSH
28219: LD_LOC 50
28223: PLUS
28224: DISABLE_MARKED
28225: GO 28213
28227: POP
28228: POP
// end ;
28229: END
// every 0 0$1 do
28230: GO 28232
28232: DISABLE
// begin Say ( Gary , D2-Gary-1 ) ;
28233: LD_EXP 44
28237: PPUSH
28238: LD_STRING D2-Gary-1
28240: PPUSH
28241: CALL_OW 88
// Say ( JMM , D2-JMM-1 ) ;
28245: LD_EXP 42
28249: PPUSH
28250: LD_STRING D2-JMM-1
28252: PPUSH
28253: CALL_OW 88
// Say ( Gary , D2-Gary-2 ) ;
28257: LD_EXP 44
28261: PPUSH
28262: LD_STRING D2-Gary-2
28264: PPUSH
28265: CALL_OW 88
// SaveForQuickRestart ;
28269: CALL_OW 22
// wait ( 0 0$1 ) ;
28273: LD_INT 35
28275: PPUSH
28276: CALL_OW 67
// ingame_video = false ;
28280: LD_ADDR_OWVAR 52
28284: PUSH
28285: LD_INT 0
28287: ST_TO_ADDR
// ChangeMissionObjectives ( M1 ) ;
28288: LD_STRING M1
28290: PPUSH
28291: CALL_OW 337
// end ;
28295: END
// every 0 0$1 trigger Dial >= 1 do
28296: LD_EXP 40
28300: PUSH
28301: LD_INT 1
28303: GREATEREQUAL
28304: IFFALSE 28326
28306: GO 28308
28308: DISABLE
// begin ChangeMissionObjectives ( M1a ) ;
28309: LD_STRING M1a
28311: PPUSH
28312: CALL_OW 337
// wait ( 10 10$0 ) ;
28316: LD_INT 21000
28318: PPUSH
28319: CALL_OW 67
// enable ( 104 ) ;
28323: LD_INT 104
28325: ENABLE_MARKED
// end ;
28326: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) > 0 do var i , x , y ;
28327: LD_INT 22
28329: PUSH
28330: LD_EXP 3
28334: PUSH
28335: EMPTY
28336: LIST
28337: LIST
28338: PUSH
28339: LD_INT 30
28341: PUSH
28342: LD_INT 0
28344: PUSH
28345: EMPTY
28346: LIST
28347: LIST
28348: PUSH
28349: EMPTY
28350: LIST
28351: LIST
28352: PPUSH
28353: CALL_OW 69
28357: PUSH
28358: LD_INT 0
28360: GREATER
28361: IFFALSE 28474
28363: GO 28365
28365: DISABLE
28366: LD_INT 0
28368: PPUSH
28369: PPUSH
28370: PPUSH
// begin repeat wait ( 0 0$1 ) ;
28371: LD_INT 35
28373: PPUSH
28374: CALL_OW 67
// x = GetX ( JMM ) ;
28378: LD_ADDR_VAR 0 2
28382: PUSH
28383: LD_EXP 42
28387: PPUSH
28388: CALL_OW 250
28392: ST_TO_ADDR
// y = GetY ( JMM ) ;
28393: LD_ADDR_VAR 0 3
28397: PUSH
28398: LD_EXP 42
28402: PPUSH
28403: CALL_OW 251
28407: ST_TO_ADDR
// for i in FilterAllUnits ( [ f_side , 4 ] ) do
28408: LD_ADDR_VAR 0 1
28412: PUSH
28413: LD_INT 22
28415: PUSH
28416: LD_INT 4
28418: PUSH
28419: EMPTY
28420: LIST
28421: LIST
28422: PPUSH
28423: CALL_OW 69
28427: PUSH
28428: FOR_IN
28429: IFFALSE 28452
// begin ComMoveXY ( i , x , y ) ;
28431: LD_VAR 0 1
28435: PPUSH
28436: LD_VAR 0 2
28440: PPUSH
28441: LD_VAR 0 3
28445: PPUSH
28446: CALL_OW 111
// end ;
28450: GO 28428
28452: POP
28453: POP
// until GetDistUnits ( Simms , JMM ) < 8 ;
28454: LD_EXP 46
28458: PPUSH
28459: LD_EXP 42
28463: PPUSH
28464: CALL_OW 296
28468: PUSH
28469: LD_INT 8
28471: LESS
28472: IFFALSE 28371
// end ;
28474: PPOPN 3
28476: END
// every 0 0$4 trigger FilterUnitsInArea ( Base , [ [ f_side , You ] ] ) > 0 or GetDistUnits ( Simms , JMM ) < 8 do
28477: LD_INT 12
28479: PPUSH
28480: LD_INT 22
28482: PUSH
28483: LD_EXP 3
28487: PUSH
28488: EMPTY
28489: LIST
28490: LIST
28491: PUSH
28492: EMPTY
28493: LIST
28494: PPUSH
28495: CALL_OW 70
28499: PUSH
28500: LD_INT 0
28502: GREATER
28503: PUSH
28504: LD_EXP 46
28508: PPUSH
28509: LD_EXP 42
28513: PPUSH
28514: CALL_OW 296
28518: PUSH
28519: LD_INT 8
28521: LESS
28522: OR
28523: IFFALSE 28998
28525: GO 28527
28527: DISABLE
// begin pom1 = 0 ;
28528: LD_ADDR_LOC 52
28532: PUSH
28533: LD_INT 0
28535: ST_TO_ADDR
// pom = FilterUnitsInArea ( Base , [ [ f_side , You ] ] ) ;
28536: LD_ADDR_LOC 51
28540: PUSH
28541: LD_INT 12
28543: PPUSH
28544: LD_INT 22
28546: PUSH
28547: LD_EXP 3
28551: PUSH
28552: EMPTY
28553: LIST
28554: LIST
28555: PUSH
28556: EMPTY
28557: LIST
28558: PPUSH
28559: CALL_OW 70
28563: ST_TO_ADDR
// for i in pom do
28564: LD_ADDR_LOC 50
28568: PUSH
28569: LD_LOC 51
28573: PUSH
28574: FOR_IN
28575: IFFALSE 28657
// begin if GetType ( i ) then
28577: LD_LOC 50
28581: PPUSH
28582: CALL_OW 247
28586: IFFALSE 28613
// if JMM = IsDrivenBy ( i ) then
28588: LD_EXP 42
28592: PUSH
28593: LD_LOC 50
28597: PPUSH
28598: CALL_OW 311
28602: EQUAL
28603: IFFALSE 28613
// pom1 = 1 ;
28605: LD_ADDR_LOC 52
28609: PUSH
28610: LD_INT 1
28612: ST_TO_ADDR
// if IsInArea ( JMM , Base ) or GetDistUnits ( Simms , JMM ) < 8 then
28613: LD_EXP 42
28617: PPUSH
28618: LD_INT 12
28620: PPUSH
28621: CALL_OW 308
28625: PUSH
28626: LD_EXP 46
28630: PPUSH
28631: LD_EXP 42
28635: PPUSH
28636: CALL_OW 296
28640: PUSH
28641: LD_INT 8
28643: LESS
28644: OR
28645: IFFALSE 28655
// pom1 = 1 ;
28647: LD_ADDR_LOC 52
28651: PUSH
28652: LD_INT 1
28654: ST_TO_ADDR
// end ;
28655: GO 28574
28657: POP
28658: POP
// if pom1 = 1 then
28659: LD_LOC 52
28663: PUSH
28664: LD_INT 1
28666: EQUAL
28667: IFFALSE 28997
// begin InGameOn ;
28669: CALL_OW 8
// while not IsOK ( JMM ) do
28673: LD_EXP 42
28677: PPUSH
28678: CALL_OW 302
28682: NOT
28683: IFFALSE 28694
// wait ( 0 0$1 ) ;
28685: LD_INT 35
28687: PPUSH
28688: CALL_OW 67
28692: GO 28673
// ComMoveUnit ( JMM , Simms ) ;
28694: LD_EXP 42
28698: PPUSH
28699: LD_EXP 46
28703: PPUSH
28704: CALL_OW 112
// ComMoveUnit ( Simms , JMM ) ;
28708: LD_EXP 46
28712: PPUSH
28713: LD_EXP 42
28717: PPUSH
28718: CALL_OW 112
// wait ( 0 0$1 ) ;
28722: LD_INT 35
28724: PPUSH
28725: CALL_OW 67
// CenterOnUnits ( [ JMM , Simms ] ) ;
28729: LD_EXP 42
28733: PUSH
28734: LD_EXP 46
28738: PUSH
28739: EMPTY
28740: LIST
28741: LIST
28742: PPUSH
28743: CALL_OW 85
// Say ( Simms , D2a-Sim-1 ) ;
28747: LD_EXP 46
28751: PPUSH
28752: LD_STRING D2a-Sim-1
28754: PPUSH
28755: CALL_OW 88
// Say ( JMM , D2a-JMM-1 ) ;
28759: LD_EXP 42
28763: PPUSH
28764: LD_STRING D2a-JMM-1
28766: PPUSH
28767: CALL_OW 88
// CenterOnUnits ( [ JMM , Simms ] ) ;
28771: LD_EXP 42
28775: PUSH
28776: LD_EXP 46
28780: PUSH
28781: EMPTY
28782: LIST
28783: LIST
28784: PPUSH
28785: CALL_OW 85
// if IsOK ( Joan_F ) then
28789: LD_EXP 43
28793: PPUSH
28794: CALL_OW 302
28798: IFFALSE 28894
// begin Say ( Joan_F , D2b-Joan-1 ) ;
28800: LD_EXP 43
28804: PPUSH
28805: LD_STRING D2b-Joan-1
28807: PPUSH
28808: CALL_OW 88
// Say ( JMM , D2b-JMM-1 ) ;
28812: LD_EXP 42
28816: PPUSH
28817: LD_STRING D2b-JMM-1
28819: PPUSH
28820: CALL_OW 88
// Say ( Joan_F , D2b-Joan-2 ) ;
28824: LD_EXP 43
28828: PPUSH
28829: LD_STRING D2b-Joan-2
28831: PPUSH
28832: CALL_OW 88
// if IsOK ( Denis ) then
28836: LD_EXP 48
28840: PPUSH
28841: CALL_OW 302
28845: IFFALSE 28859
// Say ( Denis , D2c-Den-1 ) ;
28847: LD_EXP 48
28851: PPUSH
28852: LD_STRING D2c-Den-1
28854: PPUSH
28855: CALL_OW 88
// if IsOK ( Khattam ) then
28859: LD_EXP 45
28863: PPUSH
28864: CALL_OW 302
28868: IFFALSE 28894
// begin Say ( JMM , D2c-JMM-1 ) ;
28870: LD_EXP 42
28874: PPUSH
28875: LD_STRING D2c-JMM-1
28877: PPUSH
28878: CALL_OW 88
// Say ( Khattam , D2c-Khat-1 ) ;
28882: LD_EXP 45
28886: PPUSH
28887: LD_STRING D2c-Khat-1
28889: PPUSH
28890: CALL_OW 88
// end ; end ; CenterOnUnits ( [ JMM , Simms ] ) ;
28894: LD_EXP 42
28898: PUSH
28899: LD_EXP 46
28903: PUSH
28904: EMPTY
28905: LIST
28906: LIST
28907: PPUSH
28908: CALL_OW 85
// ComMoveXY ( Simms , 110 , 35 ) ;
28912: LD_EXP 46
28916: PPUSH
28917: LD_INT 110
28919: PPUSH
28920: LD_INT 35
28922: PPUSH
28923: CALL_OW 111
// InGameOff ;
28927: CALL_OW 9
// dialog_u_zakladny_probehl = true ;
28931: LD_ADDR_EXP 41
28935: PUSH
28936: LD_INT 1
28938: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You2 ] ] ) ;
28939: LD_ADDR_LOC 51
28943: PUSH
28944: LD_INT 22
28946: PUSH
28947: LD_EXP 6
28951: PUSH
28952: EMPTY
28953: LIST
28954: LIST
28955: PUSH
28956: EMPTY
28957: LIST
28958: PPUSH
28959: CALL_OW 69
28963: ST_TO_ADDR
// for i in pom do
28964: LD_ADDR_LOC 50
28968: PUSH
28969: LD_LOC 51
28973: PUSH
28974: FOR_IN
28975: IFFALSE 28993
// SetSide ( i , You ) ;
28977: LD_LOC 50
28981: PPUSH
28982: LD_EXP 3
28986: PPUSH
28987: CALL_OW 235
28991: GO 28974
28993: POP
28994: POP
// end else
28995: GO 28998
// enable ;
28997: ENABLE
// end ;
28998: END
// every 0 0$3 trigger Dial >= 3 do
28999: LD_EXP 40
29003: PUSH
29004: LD_INT 3
29006: GREATEREQUAL
29007: IFFALSE 29456
29009: GO 29011
29011: DISABLE
// begin testfight ;
29012: CALL 32108 0 0
// Res := 1 ;
29016: LD_ADDR_EXP 59
29020: PUSH
29021: LD_INT 1
29023: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_solar_power ] , [ f_btype , b_oil_power ] , [ f_btype , b_siberite_power ] ] ] ) ;
29024: LD_ADDR_LOC 51
29028: PUSH
29029: LD_INT 22
29031: PUSH
29032: LD_EXP 3
29036: PUSH
29037: EMPTY
29038: LIST
29039: LIST
29040: PUSH
29041: LD_INT 2
29043: PUSH
29044: LD_INT 30
29046: PUSH
29047: LD_INT 27
29049: PUSH
29050: EMPTY
29051: LIST
29052: LIST
29053: PUSH
29054: LD_INT 30
29056: PUSH
29057: LD_INT 26
29059: PUSH
29060: EMPTY
29061: LIST
29062: LIST
29063: PUSH
29064: LD_INT 30
29066: PUSH
29067: LD_INT 28
29069: PUSH
29070: EMPTY
29071: LIST
29072: LIST
29073: PUSH
29074: EMPTY
29075: LIST
29076: LIST
29077: LIST
29078: LIST
29079: PUSH
29080: EMPTY
29081: LIST
29082: LIST
29083: PPUSH
29084: CALL_OW 69
29088: ST_TO_ADDR
// if pom > 0 then
29089: LD_LOC 51
29093: PUSH
29094: LD_INT 0
29096: GREATER
29097: IFFALSE 29455
// begin while IsConstructed ( pom [ 1 ] ) <> 0 do
29099: LD_LOC 51
29103: PUSH
29104: LD_INT 1
29106: ARRAY
29107: PPUSH
29108: CALL_OW 304
29112: PUSH
29113: LD_INT 0
29115: NONEQUAL
29116: IFFALSE 29127
// wait ( 0 0$1 ) ;
29118: LD_INT 35
29120: PPUSH
29121: CALL_OW 67
29125: GO 29099
// DialogueOn ;
29127: CALL_OW 6
// while not IsOK ( JMM ) do
29131: LD_EXP 42
29135: PPUSH
29136: CALL_OW 302
29140: NOT
29141: IFFALSE 29152
// wait ( 0 0$1 ) ;
29143: LD_INT 35
29145: PPUSH
29146: CALL_OW 67
29150: GO 29131
// pom = GetPeople ( sex_male , class_scientistic , [ Gary , JMM , Cyrus , Denis ] ) ;
29152: LD_ADDR_LOC 51
29156: PUSH
29157: LD_INT 1
29159: PPUSH
29160: LD_INT 4
29162: PPUSH
29163: LD_EXP 44
29167: PUSH
29168: LD_EXP 42
29172: PUSH
29173: LD_EXP 47
29177: PUSH
29178: LD_EXP 48
29182: PUSH
29183: EMPTY
29184: LIST
29185: LIST
29186: LIST
29187: LIST
29188: PPUSH
29189: CALL 32145 0 3
29193: ST_TO_ADDR
// if pom = 0 then
29194: LD_LOC 51
29198: PUSH
29199: LD_INT 0
29201: EQUAL
29202: IFFALSE 29218
// Say ( JMM , D3-JMM-3 ) else
29204: LD_EXP 42
29208: PPUSH
29209: LD_STRING D3-JMM-3
29211: PPUSH
29212: CALL_OW 88
29216: GO 29453
// begin Say ( pom [ 1 ] , D3-Sci1-1 ) ;
29218: LD_LOC 51
29222: PUSH
29223: LD_INT 1
29225: ARRAY
29226: PPUSH
29227: LD_STRING D3-Sci1-1
29229: PPUSH
29230: CALL_OW 88
// if IsOK ( Gary ) then
29234: LD_EXP 44
29238: PPUSH
29239: CALL_OW 302
29243: IFFALSE 29259
// Say ( Gary , D3-Gary-1 ) else
29245: LD_EXP 44
29249: PPUSH
29250: LD_STRING D3-Gary-1
29252: PPUSH
29253: CALL_OW 88
29257: GO 29367
// begin pom4 = GetPeople ( sex_male , class_soldier , [ JMM , GARY , pom [ 1 ] ] ) ;
29259: LD_ADDR_LOC 55
29263: PUSH
29264: LD_INT 1
29266: PPUSH
29267: LD_INT 1
29269: PPUSH
29270: LD_EXP 42
29274: PUSH
29275: LD_EXP 44
29279: PUSH
29280: LD_LOC 51
29284: PUSH
29285: LD_INT 1
29287: ARRAY
29288: PUSH
29289: EMPTY
29290: LIST
29291: LIST
29292: LIST
29293: PPUSH
29294: CALL 32145 0 3
29298: ST_TO_ADDR
// if pom4 > 0 then
29299: LD_LOC 55
29303: PUSH
29304: LD_INT 0
29306: GREATER
29307: IFFALSE 29327
// Say ( pom4 [ 1 ] , D3-Sol1-1 ) else
29309: LD_LOC 55
29313: PUSH
29314: LD_INT 1
29316: ARRAY
29317: PPUSH
29318: LD_STRING D3-Sol1-1
29320: PPUSH
29321: CALL_OW 88
29325: GO 29367
// if pom > 1 then
29327: LD_LOC 51
29331: PUSH
29332: LD_INT 1
29334: GREATER
29335: IFFALSE 29355
// Say ( pom [ 2 ] , D3-Sol1-1 ) else
29337: LD_LOC 51
29341: PUSH
29342: LD_INT 2
29344: ARRAY
29345: PPUSH
29346: LD_STRING D3-Sol1-1
29348: PPUSH
29349: CALL_OW 88
29353: GO 29367
// Say ( JMM , D3-Sol1-1 ) ;
29355: LD_EXP 42
29359: PPUSH
29360: LD_STRING D3-Sol1-1
29362: PPUSH
29363: CALL_OW 88
// end ; Say ( pom [ 1 ] , D3-Sci1-2 ) ;
29367: LD_LOC 51
29371: PUSH
29372: LD_INT 1
29374: ARRAY
29375: PPUSH
29376: LD_STRING D3-Sci1-2
29378: PPUSH
29379: CALL_OW 88
// Say ( JMM , D3-JMM-2 ) ;
29383: LD_EXP 42
29387: PPUSH
29388: LD_STRING D3-JMM-2
29390: PPUSH
29391: CALL_OW 88
// Say ( pom [ 1 ] , D3-Sci1-3 ) ;
29395: LD_LOC 51
29399: PUSH
29400: LD_INT 1
29402: ARRAY
29403: PPUSH
29404: LD_STRING D3-Sci1-3
29406: PPUSH
29407: CALL_OW 88
// Say ( JMM , D3-JMM-3 ) ;
29411: LD_EXP 42
29415: PPUSH
29416: LD_STRING D3-JMM-3
29418: PPUSH
29419: CALL_OW 88
// Say ( pom [ 1 ] , D3-Sci1-4 ) ;
29423: LD_LOC 51
29427: PUSH
29428: LD_INT 1
29430: ARRAY
29431: PPUSH
29432: LD_STRING D3-Sci1-4
29434: PPUSH
29435: CALL_OW 88
// ChangeMissionObjectives ( M2 ) ;
29439: LD_STRING M2
29441: PPUSH
29442: CALL_OW 337
// enable ( 104 ) ;
29446: LD_INT 104
29448: ENABLE_MARKED
// DialogueOff ;
29449: CALL_OW 7
// end ; end else
29453: GO 29456
// enable ;
29455: ENABLE
// end ;
29456: END
// every 0 0$5 do var pom ;
29457: GO 29459
29459: DISABLE
29460: LD_INT 0
29462: PPUSH
// begin if GetTech ( tech_SibPow , You ) = state_researched and GetTech ( tech_Sib1 , You ) = state_researched and GetTech ( tech_Sib2 , You ) = state_researched then
29463: LD_INT 21
29465: PPUSH
29466: LD_EXP 3
29470: PPUSH
29471: CALL_OW 321
29475: PUSH
29476: LD_INT 2
29478: EQUAL
29479: PUSH
29480: LD_INT 54
29482: PPUSH
29483: LD_EXP 3
29487: PPUSH
29488: CALL_OW 321
29492: PUSH
29493: LD_INT 2
29495: EQUAL
29496: AND
29497: PUSH
29498: LD_INT 55
29500: PPUSH
29501: LD_EXP 3
29505: PPUSH
29506: CALL_OW 321
29510: PUSH
29511: LD_INT 2
29513: EQUAL
29514: AND
29515: IFFALSE 29630
// begin if GetTech ( tech_AI , You ) = state_researched and GetTech ( tech_LasSight , You ) = state_researched then
29517: LD_INT 32
29519: PPUSH
29520: LD_EXP 3
29524: PPUSH
29525: CALL_OW 321
29529: PUSH
29530: LD_INT 2
29532: EQUAL
29533: PUSH
29534: LD_INT 12
29536: PPUSH
29537: LD_EXP 3
29541: PPUSH
29542: CALL_OW 321
29546: PUSH
29547: LD_INT 2
29549: EQUAL
29550: AND
29551: IFFALSE 29562
// Mission_end ( ukonceni - dialogues 133 ) else
29553: LD_STRING ukonceni - dialogues 133
29555: PPUSH
29556: CALL 451 0 1
29560: GO 29628
// begin ChangeMissionObjectives ( M2a ) ;
29562: LD_STRING M2a
29564: PPUSH
29565: CALL_OW 337
// pom = Query ( QEndMission ) ;
29569: LD_ADDR_VAR 0 1
29573: PUSH
29574: LD_STRING QEndMission
29576: PPUSH
29577: CALL_OW 97
29581: ST_TO_ADDR
// EMR = true ;
29582: LD_ADDR_EXP 38
29586: PUSH
29587: LD_INT 1
29589: ST_TO_ADDR
// if pom = 2 then
29590: LD_VAR 0 1
29594: PUSH
29595: LD_INT 2
29597: EQUAL
29598: IFFALSE 29609
// Mission_end ( po odklepnuti ze konci - dialogues 138 ) else
29600: LD_STRING po odklepnuti ze konci - dialogues 138
29602: PPUSH
29603: CALL 451 0 1
29607: GO 29625
// begin end_the_mission_allowed = true ;
29609: LD_ADDR_OWVAR 57
29613: PUSH
29614: LD_INT 1
29616: ST_TO_ADDR
// test_ukonceni_allowed = true ;
29617: LD_ADDR_LOC 62
29621: PUSH
29622: LD_INT 1
29624: ST_TO_ADDR
// end ; disable ( 104 ) ;
29625: LD_INT 104
29627: DISABLE_MARKED
// end ; end else
29628: GO 29631
// enable ;
29630: ENABLE
// end ;
29631: PPOPN 1
29633: END
// on ResearchComplete ( tech , lab ) do begin if tech = tech_LasSight then
29634: LD_VAR 0 1
29638: PUSH
29639: LD_INT 12
29641: EQUAL
29642: IFFALSE 29651
// ChangeMissionObjectives ( M2b ) ;
29644: LD_STRING M2b
29646: PPUSH
29647: CALL_OW 337
// if tech = tech_AI then
29651: LD_VAR 0 1
29655: PUSH
29656: LD_INT 32
29658: EQUAL
29659: IFFALSE 29668
// ChangeMissionObjectives ( M2c ) ;
29661: LD_STRING M2c
29663: PPUSH
29664: CALL_OW 337
// end ;
29668: PPOPN 2
29670: END
// every 2 2$30 marked 104 do
29671: GO 29673
29673: DISABLE
// begin testfight ;
29674: CALL 32108 0 0
// if IsOK ( Simms ) and IsInArea ( Simms , Base2 ) and ( not disable_kecy1 ) then
29678: LD_EXP 46
29682: PPUSH
29683: CALL_OW 302
29687: PUSH
29688: LD_EXP 46
29692: PPUSH
29693: LD_INT 13
29695: PPUSH
29696: CALL_OW 308
29700: AND
29701: PUSH
29702: LD_LOC 60
29706: NOT
29707: AND
29708: IFFALSE 29948
// begin DialogueOn ;
29710: CALL_OW 6
// pom = GetPeople ( sex_male , class_scientistic , [ JMM ] ) ;
29714: LD_ADDR_LOC 51
29718: PUSH
29719: LD_INT 1
29721: PPUSH
29722: LD_INT 4
29724: PPUSH
29725: LD_EXP 42
29729: PUSH
29730: EMPTY
29731: LIST
29732: PPUSH
29733: CALL 32145 0 3
29737: ST_TO_ADDR
// Say ( Simms , D3a-Sim-1 ) ;
29738: LD_EXP 46
29742: PPUSH
29743: LD_STRING D3a-Sim-1
29745: PPUSH
29746: CALL_OW 88
// if pom > 0 then
29750: LD_LOC 51
29754: PUSH
29755: LD_INT 0
29757: GREATER
29758: IFFALSE 29776
// pom1 = pom [ 1 ] else
29760: LD_ADDR_LOC 52
29764: PUSH
29765: LD_LOC 51
29769: PUSH
29770: LD_INT 1
29772: ARRAY
29773: ST_TO_ADDR
29774: GO 29786
// pom1 = JMM ;
29776: LD_ADDR_LOC 52
29780: PUSH
29781: LD_EXP 42
29785: ST_TO_ADDR
// Say ( pom1 , D3a-Sci1-1 ) ;
29786: LD_LOC 52
29790: PPUSH
29791: LD_STRING D3a-Sci1-1
29793: PPUSH
29794: CALL_OW 88
// Say ( Simms , D3a-Sim-2 ) ;
29798: LD_EXP 46
29802: PPUSH
29803: LD_STRING D3a-Sim-2
29805: PPUSH
29806: CALL_OW 88
// Say ( pom1 , D3a-Sci1-2 ) ;
29810: LD_LOC 52
29814: PPUSH
29815: LD_STRING D3a-Sci1-2
29817: PPUSH
29818: CALL_OW 88
// Say ( Simms , D3a-Sim-3 ) ;
29822: LD_EXP 46
29826: PPUSH
29827: LD_STRING D3a-Sim-3
29829: PPUSH
29830: CALL_OW 88
// Say ( pom1 , D3a-Sci1-3 ) ;
29834: LD_LOC 52
29838: PPUSH
29839: LD_STRING D3a-Sci1-3
29841: PPUSH
29842: CALL_OW 88
// if IsLive ( Joan_F ) then
29846: LD_EXP 43
29850: PPUSH
29851: CALL_OW 300
29855: IFFALSE 29871
// Say ( Simms , D3a-Sim-4 ) else
29857: LD_EXP 46
29861: PPUSH
29862: LD_STRING D3a-Sim-4
29864: PPUSH
29865: CALL_OW 88
29869: GO 29883
// Say ( Simms , D3a-Sim-4a ) ;
29871: LD_EXP 46
29875: PPUSH
29876: LD_STRING D3a-Sim-4a
29878: PPUSH
29879: CALL_OW 88
// Say ( pom1 , D3a-Sci1-4 ) ;
29883: LD_LOC 52
29887: PPUSH
29888: LD_STRING D3a-Sci1-4
29890: PPUSH
29891: CALL_OW 88
// Say ( Simms , D3a-Sim-5 ) ;
29895: LD_EXP 46
29899: PPUSH
29900: LD_STRING D3a-Sim-5
29902: PPUSH
29903: CALL_OW 88
// Say ( pom1 , D3a-Sci1-5 ) ;
29907: LD_LOC 52
29911: PPUSH
29912: LD_STRING D3a-Sci1-5
29914: PPUSH
29915: CALL_OW 88
// Say ( Simms , D3a-Sim-6 ) ;
29919: LD_EXP 46
29923: PPUSH
29924: LD_STRING D3a-Sim-6
29926: PPUSH
29927: CALL_OW 88
// DialogueOff ;
29931: CALL_OW 7
// disable_kecy1 = true ;
29935: LD_ADDR_LOC 60
29939: PUSH
29940: LD_INT 1
29942: ST_TO_ADDR
// enable ( 105 ) ;
29943: LD_INT 105
29945: ENABLE_MARKED
// end else
29946: GO 29949
// enable ;
29948: ENABLE
// end ;
29949: END
// every 0 0$30 marked 105 do var pomkecy ;
29950: GO 29952
29952: DISABLE
29953: LD_INT 0
29955: PPUSH
// begin wait ( Rand ( 0 0$5 , 1 1$0 ) ) ;
29956: LD_INT 175
29958: PPUSH
29959: LD_INT 2100
29961: PPUSH
29962: CALL_OW 12
29966: PPUSH
29967: CALL_OW 67
// testfight ;
29971: CALL 32108 0 0
// pomkecy = FilterAllUnits ( [ [ f_side , Arabi ] , [ f_type , unit_human ] , [ f_sex , sex_male ] ] ) ;
29975: LD_ADDR_VAR 0 1
29979: PUSH
29980: LD_INT 22
29982: PUSH
29983: LD_EXP 1
29987: PUSH
29988: EMPTY
29989: LIST
29990: LIST
29991: PUSH
29992: LD_INT 21
29994: PUSH
29995: LD_INT 1
29997: PUSH
29998: EMPTY
29999: LIST
30000: LIST
30001: PUSH
30002: LD_INT 26
30004: PUSH
30005: LD_INT 1
30007: PUSH
30008: EMPTY
30009: LIST
30010: LIST
30011: PUSH
30012: EMPTY
30013: LIST
30014: LIST
30015: LIST
30016: PPUSH
30017: CALL_OW 69
30021: ST_TO_ADDR
// pomkecy = pomkecy diff Dietrich ;
30022: LD_ADDR_VAR 0 1
30026: PUSH
30027: LD_VAR 0 1
30031: PUSH
30032: LD_EXP 27
30036: DIFF
30037: ST_TO_ADDR
// if IsOK ( Dietrich ) and IsOK ( Khattam ) and ( not disable_kecy2 ) then
30038: LD_EXP 27
30042: PPUSH
30043: CALL_OW 302
30047: PUSH
30048: LD_EXP 45
30052: PPUSH
30053: CALL_OW 302
30057: AND
30058: PUSH
30059: LD_LOC 61
30063: NOT
30064: AND
30065: IFFALSE 30151
// begin if pomkecy > 0 then
30067: LD_VAR 0 1
30071: PUSH
30072: LD_INT 0
30074: GREATER
30075: IFFALSE 30093
// pom = pomkecy [ 1 ] else
30077: LD_ADDR_LOC 51
30081: PUSH
30082: LD_VAR 0 1
30086: PUSH
30087: LD_INT 1
30089: ARRAY
30090: ST_TO_ADDR
30091: GO 30095
// exit ;
30093: GO 30154
// Say ( pom , D5-Ar1-1 ) ;
30095: LD_LOC 51
30099: PPUSH
30100: LD_STRING D5-Ar1-1
30102: PPUSH
30103: CALL_OW 88
// Say ( Dietrich , D5-Diet-1 ) ;
30107: LD_EXP 27
30111: PPUSH
30112: LD_STRING D5-Diet-1
30114: PPUSH
30115: CALL_OW 88
// Say ( pom , D5-Ar1-2 ) ;
30119: LD_LOC 51
30123: PPUSH
30124: LD_STRING D5-Ar1-2
30126: PPUSH
30127: CALL_OW 88
// Say ( Dietrich , D5-Diet-2 ) ;
30131: LD_EXP 27
30135: PPUSH
30136: LD_STRING D5-Diet-2
30138: PPUSH
30139: CALL_OW 88
// disable_kecy2 = true ;
30143: LD_ADDR_LOC 61
30147: PUSH
30148: LD_INT 1
30150: ST_TO_ADDR
// end ; enable ( 106 ) ;
30151: LD_INT 106
30153: ENABLE_MARKED
// end ;
30154: PPOPN 1
30156: END
// every 0 0$30 marked 106 do
30157: GO 30159
30159: DISABLE
// begin testfight ;
30160: CALL 32108 0 0
// DialogueOn ;
30164: CALL_OW 6
// pom = GetPeople ( sex_male , class_scientistic , [ JMM , Khattam ] ) ;
30168: LD_ADDR_LOC 51
30172: PUSH
30173: LD_INT 1
30175: PPUSH
30176: LD_INT 4
30178: PPUSH
30179: LD_EXP 42
30183: PUSH
30184: LD_EXP 45
30188: PUSH
30189: EMPTY
30190: LIST
30191: LIST
30192: PPUSH
30193: CALL 32145 0 3
30197: ST_TO_ADDR
// if pom > 0 then
30198: LD_LOC 51
30202: PUSH
30203: LD_INT 0
30205: GREATER
30206: IFFALSE 30345
// begin while not IsOK ( JMM ) do
30208: LD_EXP 42
30212: PPUSH
30213: CALL_OW 302
30217: NOT
30218: IFFALSE 30229
// wait ( 0 0$1 ) ;
30220: LD_INT 35
30222: PPUSH
30223: CALL_OW 67
30227: GO 30208
// Say ( JMM , D6-JMM-1 ) ;
30229: LD_EXP 42
30233: PPUSH
30234: LD_STRING D6-JMM-1
30236: PPUSH
30237: CALL_OW 88
// Say ( pom [ 1 ] , D6-Sci1-1 ) ;
30241: LD_LOC 51
30245: PUSH
30246: LD_INT 1
30248: ARRAY
30249: PPUSH
30250: LD_STRING D6-Sci1-1
30252: PPUSH
30253: CALL_OW 88
// Say ( JMM , D6-JMM-2 ) ;
30257: LD_EXP 42
30261: PPUSH
30262: LD_STRING D6-JMM-2
30264: PPUSH
30265: CALL_OW 88
// Say ( pom [ 1 ] , D6-Sci1-2 ) ;
30269: LD_LOC 51
30273: PUSH
30274: LD_INT 1
30276: ARRAY
30277: PPUSH
30278: LD_STRING D6-Sci1-2
30280: PPUSH
30281: CALL_OW 88
// Say ( JMM , D6-JMM-3 ) ;
30285: LD_EXP 42
30289: PPUSH
30290: LD_STRING D6-JMM-3
30292: PPUSH
30293: CALL_OW 88
// Say ( pom [ 1 ] , D6-Sci1-3 ) ;
30297: LD_LOC 51
30301: PUSH
30302: LD_INT 1
30304: ARRAY
30305: PPUSH
30306: LD_STRING D6-Sci1-3
30308: PPUSH
30309: CALL_OW 88
// Say ( JMM , D6-JMM-4 ) ;
30313: LD_EXP 42
30317: PPUSH
30318: LD_STRING D6-JMM-4
30320: PPUSH
30321: CALL_OW 88
// Say ( pom [ 1 ] , D6-Sci1-4 ) ;
30325: LD_LOC 51
30329: PUSH
30330: LD_INT 1
30332: ARRAY
30333: PPUSH
30334: LD_STRING D6-Sci1-4
30336: PPUSH
30337: CALL_OW 88
// DialogueOff ;
30341: CALL_OW 7
// end ; COR_GO = 1 ;
30345: LD_ADDR_EXP 55
30349: PUSH
30350: LD_INT 1
30352: ST_TO_ADDR
// enable ( 108 ) ;
30353: LD_INT 108
30355: ENABLE_MARKED
// end ;
30356: END
// every 4 4$0 do var npom ;
30357: GO 30359
30359: DISABLE
30360: LD_INT 0
30362: PPUSH
// begin wait ( timerusi [ difficulty ] ) ;
30363: LD_EXP 60
30367: PUSH
30368: LD_OWVAR 67
30372: ARRAY
30373: PPUSH
30374: CALL_OW 67
// npom = create_kecal ;
30378: LD_ADDR_VAR 0 1
30382: PUSH
30383: CALL 9909 0 0
30387: ST_TO_ADDR
// wait ( 0 0$2 ) ;
30388: LD_INT 70
30390: PPUSH
30391: CALL_OW 67
// SayRadio ( npom , D4-FSol1-1 ) ;
30395: LD_VAR 0 1
30399: PPUSH
30400: LD_STRING D4-FSol1-1
30402: PPUSH
30403: CALL_OW 94
// wait ( 0 0$5 ) ;
30407: LD_INT 175
30409: PPUSH
30410: CALL_OW 67
// ChangeMissionObjectives ( M3 ) ;
30414: LD_STRING M3
30416: PPUSH
30417: CALL_OW 337
// case nah of 1 , 2 :
30421: LD_EXP 35
30425: PUSH
30426: LD_INT 1
30428: DOUBLE
30429: EQUAL
30430: IFTRUE 30440
30432: LD_INT 2
30434: DOUBLE
30435: EQUAL
30436: IFTRUE 30440
30438: GO 30455
30440: POP
// RevealFogArea ( You , Seekon2 ) ; 3 , 4 :
30441: LD_EXP 3
30445: PPUSH
30446: LD_INT 15
30448: PPUSH
30449: CALL_OW 332
30453: GO 30485
30455: LD_INT 3
30457: DOUBLE
30458: EQUAL
30459: IFTRUE 30469
30461: LD_INT 4
30463: DOUBLE
30464: EQUAL
30465: IFTRUE 30469
30467: GO 30484
30469: POP
// RevealFogArea ( You , Seekon1 ) ; end ;
30470: LD_EXP 3
30474: PPUSH
30475: LD_INT 14
30477: PPUSH
30478: CALL_OW 332
30482: GO 30485
30484: POP
// KillUnit ( npom ) ;
30485: LD_VAR 0 1
30489: PPUSH
30490: CALL_OW 66
// end ;
30494: PPOPN 1
30496: END
// every 0 0$0.1 trigger COR_GO = 2 marked 108 do
30497: LD_EXP 55
30501: PUSH
30502: LD_INT 2
30504: EQUAL
30505: IFFALSE 30749
30507: GO 30509
30509: DISABLE
// begin if See ( You , Cornel ) then
30510: LD_EXP 3
30514: PPUSH
30515: LD_EXP 50
30519: PPUSH
30520: CALL_OW 292
30524: IFFALSE 30748
// begin if cor_dial1 then
30526: LD_LOC 58
30530: IFFALSE 30534
// exit ;
30532: GO 30749
// while not IsOK ( JMM ) do
30534: LD_EXP 42
30538: PPUSH
30539: CALL_OW 302
30543: NOT
30544: IFFALSE 30555
// wait ( 0 0$1 ) ;
30546: LD_INT 35
30548: PPUSH
30549: CALL_OW 67
30553: GO 30534
// SetSide ( Cornel , You ) ;
30555: LD_EXP 50
30559: PPUSH
30560: LD_EXP 3
30564: PPUSH
30565: CALL_OW 235
// CenterOnUnits ( Cornel ) ;
30569: LD_EXP 50
30573: PPUSH
30574: CALL_OW 85
// InGameOn ;
30578: CALL_OW 8
// pom = GetPeople ( sex_female , class_soldier , [ ] ) ;
30582: LD_ADDR_LOC 51
30586: PUSH
30587: LD_INT 2
30589: PPUSH
30590: LD_INT 1
30592: PPUSH
30593: EMPTY
30594: PPUSH
30595: CALL 32145 0 3
30599: ST_TO_ADDR
// SetLives ( Cornel , 300 ) ;
30600: LD_EXP 50
30604: PPUSH
30605: LD_INT 300
30607: PPUSH
30608: CALL_OW 234
// RevealFogArea ( You , Corsee ) ;
30612: LD_EXP 3
30616: PPUSH
30617: LD_INT 18
30619: PPUSH
30620: CALL_OW 332
// cor_dial1 = true ;
30624: LD_ADDR_LOC 58
30628: PUSH
30629: LD_INT 1
30631: ST_TO_ADDR
// Say ( Cornel , D7-Corn-1 ) ;
30632: LD_EXP 50
30636: PPUSH
30637: LD_STRING D7-Corn-1
30639: PPUSH
30640: CALL_OW 88
// if pom > 0 then
30644: LD_LOC 51
30648: PUSH
30649: LD_INT 0
30651: GREATER
30652: IFFALSE 30670
// Say ( pom [ 1 ] , D7-FSol1-1 ) ;
30654: LD_LOC 51
30658: PUSH
30659: LD_INT 1
30661: ARRAY
30662: PPUSH
30663: LD_STRING D7-FSol1-1
30665: PPUSH
30666: CALL_OW 88
// Say ( Cornel , D7-Corn-2 ) ;
30670: LD_EXP 50
30674: PPUSH
30675: LD_STRING D7-Corn-2
30677: PPUSH
30678: CALL_OW 88
// Say ( JMM , D7-JMM-2 ) ;
30682: LD_EXP 42
30686: PPUSH
30687: LD_STRING D7-JMM-2
30689: PPUSH
30690: CALL_OW 88
// Say ( Cornel , D7-Corn-3 ) ;
30694: LD_EXP 50
30698: PPUSH
30699: LD_STRING D7-Corn-3
30701: PPUSH
30702: CALL_OW 88
// ComCrawl ( Cornel ) ;
30706: LD_EXP 50
30710: PPUSH
30711: CALL_OW 137
// SetLives ( Cornel , 200 ) ;
30715: LD_EXP 50
30719: PPUSH
30720: LD_INT 200
30722: PPUSH
30723: CALL_OW 234
// Say ( JMM , D7-JMM-3 ) ;
30727: LD_EXP 42
30731: PPUSH
30732: LD_STRING D7-JMM-3
30734: PPUSH
30735: CALL_OW 88
// InGameOff ;
30739: CALL_OW 9
// enable ( 107 ) ;
30743: LD_INT 107
30745: ENABLE_MARKED
// end else
30746: GO 30749
// enable ;
30748: ENABLE
// end ;
30749: END
// every 0 0$5 marked 107 do
30750: GO 30752
30752: DISABLE
// begin testfight ;
30753: CALL 32108 0 0
// if IsOK ( Cornel ) and IsInArea ( JMM , Base2 ) then
30757: LD_EXP 50
30761: PPUSH
30762: CALL_OW 302
30766: PUSH
30767: LD_EXP 42
30771: PPUSH
30772: LD_INT 13
30774: PPUSH
30775: CALL_OW 308
30779: AND
30780: IFFALSE 31036
// begin if cor_dial2 then
30782: LD_LOC 59
30786: IFFALSE 30790
// exit ;
30788: GO 31037
// wait ( 0 0$10 ) ;
30790: LD_INT 350
30792: PPUSH
30793: CALL_OW 67
// DialogueOn ;
30797: CALL_OW 6
// while not IsOK ( JMM ) do
30801: LD_EXP 42
30805: PPUSH
30806: CALL_OW 302
30810: NOT
30811: IFFALSE 30822
// wait ( 0 0$1 ) ;
30813: LD_INT 35
30815: PPUSH
30816: CALL_OW 67
30820: GO 30801
// cor_dial2 = true ;
30822: LD_ADDR_LOC 59
30826: PUSH
30827: LD_INT 1
30829: ST_TO_ADDR
// Say ( JMM , D7a-JMM-1 ) ;
30830: LD_EXP 42
30834: PPUSH
30835: LD_STRING D7a-JMM-1
30837: PPUSH
30838: CALL_OW 88
// Say ( Cornel , D7a-Corn-1 ) ;
30842: LD_EXP 50
30846: PPUSH
30847: LD_STRING D7a-Corn-1
30849: PPUSH
30850: CALL_OW 88
// Say ( JMM , D7a-JMM-2 ) ;
30854: LD_EXP 42
30858: PPUSH
30859: LD_STRING D7a-JMM-2
30861: PPUSH
30862: CALL_OW 88
// Say ( Cornel , D7a-Corn-2 ) ;
30866: LD_EXP 50
30870: PPUSH
30871: LD_STRING D7a-Corn-2
30873: PPUSH
30874: CALL_OW 88
// Say ( JMM , D7a-JMM-3 ) ;
30878: LD_EXP 42
30882: PPUSH
30883: LD_STRING D7a-JMM-3
30885: PPUSH
30886: CALL_OW 88
// Say ( Cornel , D7a-Corn-3 ) ;
30890: LD_EXP 50
30894: PPUSH
30895: LD_STRING D7a-Corn-3
30897: PPUSH
30898: CALL_OW 88
// Say ( JMM , D7a-JMM-4 ) ;
30902: LD_EXP 42
30906: PPUSH
30907: LD_STRING D7a-JMM-4
30909: PPUSH
30910: CALL_OW 88
// Say ( Cornel , D7a-Corn-4 ) ;
30914: LD_EXP 50
30918: PPUSH
30919: LD_STRING D7a-Corn-4
30921: PPUSH
30922: CALL_OW 88
// Say ( JMM , D7a-JMM-5 ) ;
30926: LD_EXP 42
30930: PPUSH
30931: LD_STRING D7a-JMM-5
30933: PPUSH
30934: CALL_OW 88
// Say ( Cornel , D7a-Corn-5 ) ;
30938: LD_EXP 50
30942: PPUSH
30943: LD_STRING D7a-Corn-5
30945: PPUSH
30946: CALL_OW 88
// Say ( JMM , D7a-JMM-6 ) ;
30950: LD_EXP 42
30954: PPUSH
30955: LD_STRING D7a-JMM-6
30957: PPUSH
30958: CALL_OW 88
// if VIDEL_MIKHAILA then
30962: LD_EXP 83
30966: IFFALSE 30982
// Say ( Cornel , D7a-Corn-6 ) else
30968: LD_EXP 50
30972: PPUSH
30973: LD_STRING D7a-Corn-6
30975: PPUSH
30976: CALL_OW 88
30980: GO 30994
// Say ( Cornel , D7a-Corn-6a ) ;
30982: LD_EXP 50
30986: PPUSH
30987: LD_STRING D7a-Corn-6a
30989: PPUSH
30990: CALL_OW 88
// Say ( JMM , D7a-JMM-7 ) ;
30994: LD_EXP 42
30998: PPUSH
30999: LD_STRING D7a-JMM-7
31001: PPUSH
31002: CALL_OW 88
// Say ( Cornel , D7a-Corn-7 ) ;
31006: LD_EXP 50
31010: PPUSH
31011: LD_STRING D7a-Corn-7
31013: PPUSH
31014: CALL_OW 88
// Say ( JMM , D7a-JMM-8 ) ;
31018: LD_EXP 42
31022: PPUSH
31023: LD_STRING D7a-JMM-8
31025: PPUSH
31026: CALL_OW 88
// DialogueOff ;
31030: CALL_OW 7
// end else
31034: GO 31037
// enable ;
31036: ENABLE
// end ;
31037: END
// every 0 0$1 trigger bazookaDialog = 1 do
31038: LD_EXP 12
31042: PUSH
31043: LD_INT 1
31045: EQUAL
31046: IFFALSE 31274
31048: GO 31050
31050: DISABLE
// begin wait ( 0 0$3 ) ;
31051: LD_INT 105
31053: PPUSH
31054: CALL_OW 67
// DialogueOn ;
31058: CALL_OW 6
// while not IsOK ( JMM ) do
31062: LD_EXP 42
31066: PPUSH
31067: CALL_OW 302
31071: NOT
31072: IFFALSE 31083
// wait ( 0 0$1 ) ;
31074: LD_INT 35
31076: PPUSH
31077: CALL_OW 67
31081: GO 31062
// pom = GetPeople ( sex_male , class_soldier , [ JMM ] ) ;
31083: LD_ADDR_LOC 51
31087: PUSH
31088: LD_INT 1
31090: PPUSH
31091: LD_INT 1
31093: PPUSH
31094: LD_EXP 42
31098: PUSH
31099: EMPTY
31100: LIST
31101: PPUSH
31102: CALL 32145 0 3
31106: ST_TO_ADDR
// if IsOK ( Cyrus ) then
31107: LD_EXP 47
31111: PPUSH
31112: CALL_OW 302
31116: IFFALSE 31164
// if VI_O_GRANATECH then
31118: LD_EXP 84
31122: IFFALSE 31150
// begin Say ( Cyrus , D9a-Cyrus-1 ) ;
31124: LD_EXP 47
31128: PPUSH
31129: LD_STRING D9a-Cyrus-1
31131: PPUSH
31132: CALL_OW 88
// Say ( JMM , D9a-JMM-1 ) ;
31136: LD_EXP 42
31140: PPUSH
31141: LD_STRING D9a-JMM-1
31143: PPUSH
31144: CALL_OW 88
// end else
31148: GO 31162
// Say ( Cyrus , D9b-Cyrus-1 ) else
31150: LD_EXP 47
31154: PPUSH
31155: LD_STRING D9b-Cyrus-1
31157: PPUSH
31158: CALL_OW 88
31162: GO 31218
// if pom > 0 then
31164: LD_LOC 51
31168: PUSH
31169: LD_INT 0
31171: GREATER
31172: IFFALSE 31218
// if VI_O_GRANATECH then
31174: LD_EXP 84
31178: IFFALSE 31206
// begin Say ( pom , D9a-Sol1-1 ) ;
31180: LD_LOC 51
31184: PPUSH
31185: LD_STRING D9a-Sol1-1
31187: PPUSH
31188: CALL_OW 88
// Say ( JMM , D9a-JMM-1 ) ;
31192: LD_EXP 42
31196: PPUSH
31197: LD_STRING D9a-JMM-1
31199: PPUSH
31200: CALL_OW 88
// end else
31204: GO 31218
// Say ( pom , D9b-Sol1-1 ) ;
31206: LD_LOC 51
31210: PPUSH
31211: LD_STRING D9b-Sol1-1
31213: PPUSH
31214: CALL_OW 88
// if GetTech ( tech_LasSight , You ) = state_researched then
31218: LD_INT 12
31220: PPUSH
31221: LD_EXP 3
31225: PPUSH
31226: CALL_OW 321
31230: PUSH
31231: LD_INT 2
31233: EQUAL
31234: IFFALSE 31250
// Say ( JMM , D9c-JMM-1a ) else
31236: LD_EXP 42
31240: PPUSH
31241: LD_STRING D9c-JMM-1a
31243: PPUSH
31244: CALL_OW 88
31248: GO 31262
// Say ( JMM , D9c-JMM-1 ) ;
31250: LD_EXP 42
31254: PPUSH
31255: LD_STRING D9c-JMM-1
31257: PPUSH
31258: CALL_OW 88
// DialogueOff ;
31262: CALL_OW 7
// bazookaDialog = 0 ;
31266: LD_ADDR_EXP 12
31270: PUSH
31271: LD_INT 0
31273: ST_TO_ADDR
// end ;
31274: END
// export function powell_kecy ; begin
31275: LD_INT 0
31277: PPUSH
// DialogueOn ;
31278: CALL_OW 6
// SayRadio ( Powell , D6b-Pow-1 ) ;
31282: LD_EXP 49
31286: PPUSH
31287: LD_STRING D6b-Pow-1
31289: PPUSH
31290: CALL_OW 94
// Wait ( 0 0$5 ) ;
31294: LD_INT 175
31296: PPUSH
31297: CALL_OW 67
// DialogueOff ;
31301: CALL_OW 7
// end ;
31305: LD_VAR 0 1
31309: RET
// every 0 0$3 trigger Dial >= 5 do var arm ;
31310: LD_EXP 40
31314: PUSH
31315: LD_INT 5
31317: GREATEREQUAL
31318: IFFALSE 31604
31320: GO 31322
31322: DISABLE
31323: LD_INT 0
31325: PPUSH
// begin DialogueOn ;
31326: CALL_OW 6
// while not IsOK ( JMM ) do
31330: LD_EXP 42
31334: PPUSH
31335: CALL_OW 302
31339: NOT
31340: IFFALSE 31351
// wait ( 0 0$1 ) ;
31342: LD_INT 35
31344: PPUSH
31345: CALL_OW 67
31349: GO 31330
// pom = GetPeople ( sex_male , class_soldier , [ JMM ] ) ;
31351: LD_ADDR_LOC 51
31355: PUSH
31356: LD_INT 1
31358: PPUSH
31359: LD_INT 1
31361: PPUSH
31362: LD_EXP 42
31366: PUSH
31367: EMPTY
31368: LIST
31369: PPUSH
31370: CALL 32145 0 3
31374: ST_TO_ADDR
// arm = FilterAllUnits ( [ [ f_side , Arabi ] , [ f_or , [ f_btype , b_barracks ] , [ f_btype , b_armoury ] ] ] ) ;
31375: LD_ADDR_VAR 0 1
31379: PUSH
31380: LD_INT 22
31382: PUSH
31383: LD_EXP 1
31387: PUSH
31388: EMPTY
31389: LIST
31390: LIST
31391: PUSH
31392: LD_INT 2
31394: PUSH
31395: LD_INT 30
31397: PUSH
31398: LD_INT 5
31400: PUSH
31401: EMPTY
31402: LIST
31403: LIST
31404: PUSH
31405: LD_INT 30
31407: PUSH
31408: LD_INT 4
31410: PUSH
31411: EMPTY
31412: LIST
31413: LIST
31414: PUSH
31415: EMPTY
31416: LIST
31417: LIST
31418: LIST
31419: PUSH
31420: EMPTY
31421: LIST
31422: LIST
31423: PPUSH
31424: CALL_OW 69
31428: ST_TO_ADDR
// if pom > 1 and arm > 0 then
31429: LD_LOC 51
31433: PUSH
31434: LD_INT 1
31436: GREATER
31437: PUSH
31438: LD_VAR 0 1
31442: PUSH
31443: LD_INT 0
31445: GREATER
31446: AND
31447: IFFALSE 31543
// begin Say ( pom [ 1 ] , D8-Sol1-1 ) ;
31449: LD_LOC 51
31453: PUSH
31454: LD_INT 1
31456: ARRAY
31457: PPUSH
31458: LD_STRING D8-Sol1-1
31460: PPUSH
31461: CALL_OW 88
// pom1 = GetPeople ( sex_male , class_scientistic , [ JMM , pom [ 1 ] ] ) ;
31465: LD_ADDR_LOC 52
31469: PUSH
31470: LD_INT 1
31472: PPUSH
31473: LD_INT 4
31475: PPUSH
31476: LD_EXP 42
31480: PUSH
31481: LD_LOC 51
31485: PUSH
31486: LD_INT 1
31488: ARRAY
31489: PUSH
31490: EMPTY
31491: LIST
31492: LIST
31493: PPUSH
31494: CALL 32145 0 3
31498: ST_TO_ADDR
// if pom1 = 0 then
31499: LD_LOC 52
31503: PUSH
31504: LD_INT 0
31506: EQUAL
31507: IFFALSE 31527
// Say ( pom [ 1 ] , D8-Sci1-1 ) else
31509: LD_LOC 51
31513: PUSH
31514: LD_INT 1
31516: ARRAY
31517: PPUSH
31518: LD_STRING D8-Sci1-1
31520: PPUSH
31521: CALL_OW 88
31525: GO 31543
// Say ( pom1 [ 1 ] , D8-Sci1-1 ) ;
31527: LD_LOC 52
31531: PUSH
31532: LD_INT 1
31534: ARRAY
31535: PPUSH
31536: LD_STRING D8-Sci1-1
31538: PPUSH
31539: CALL_OW 88
// end ; Say ( JMM , D8-JMM-1 ) ;
31543: LD_EXP 42
31547: PPUSH
31548: LD_STRING D8-JMM-1
31550: PPUSH
31551: CALL_OW 88
// DialogueOff ;
31555: CALL_OW 7
// ChangeMissionObjectives ( M4 ) ;
31559: LD_STRING M4
31561: PPUSH
31562: CALL_OW 337
// wait ( 0 0$10 ) ;
31566: LD_INT 350
31568: PPUSH
31569: CALL_OW 67
// if IsOK ( Gary ) then
31573: LD_EXP 44
31577: PPUSH
31578: CALL_OW 302
31582: IFFALSE 31596
// Say ( Gary , D8a-Gary-1 ) ;
31584: LD_EXP 44
31588: PPUSH
31589: LD_STRING D8a-Gary-1
31591: PPUSH
31592: CALL_OW 88
// Dial := 6 ;
31596: LD_ADDR_EXP 40
31600: PUSH
31601: LD_INT 6
31603: ST_TO_ADDR
// end ;
31604: PPOPN 1
31606: END
// every 0 0$5 trigger Dial >= 6 do
31607: LD_EXP 40
31611: PUSH
31612: LD_INT 6
31614: GREATEREQUAL
31615: IFFALSE 32107
31617: GO 31619
31619: DISABLE
// begin testfight ;
31620: CALL 32108 0 0
// pom1 = false ;
31624: LD_ADDR_LOC 52
31628: PUSH
31629: LD_INT 0
31631: ST_TO_ADDR
// for i in Am_units do
31632: LD_ADDR_LOC 50
31636: PUSH
31637: LD_EXP 56
31641: PUSH
31642: FOR_IN
31643: IFFALSE 31697
// begin pom = Attacks ( i ) ;
31645: LD_ADDR_LOC 51
31649: PUSH
31650: LD_LOC 50
31654: PPUSH
31655: CALL_OW 320
31659: ST_TO_ADDR
// if pom <> 0 then
31660: LD_LOC 51
31664: PUSH
31665: LD_INT 0
31667: NONEQUAL
31668: IFFALSE 31695
// if Getside ( pom ) = Arabi then
31670: LD_LOC 51
31674: PPUSH
31675: CALL_OW 255
31679: PUSH
31680: LD_EXP 1
31684: EQUAL
31685: IFFALSE 31695
// pom1 = true ;
31687: LD_ADDR_LOC 52
31691: PUSH
31692: LD_INT 1
31694: ST_TO_ADDR
// end ;
31695: GO 31642
31697: POP
31698: POP
// if pom1 then
31699: LD_LOC 52
31703: IFFALSE 31708
// enable else
31705: ENABLE
31706: GO 32107
// if IsOK ( Khattam ) then
31708: LD_EXP 45
31712: PPUSH
31713: CALL_OW 302
31717: IFFALSE 32107
// begin DialogueOn ;
31719: CALL_OW 6
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_type , unit_human ] ] ) ;
31723: LD_ADDR_LOC 51
31727: PUSH
31728: LD_INT 22
31730: PUSH
31731: LD_EXP 3
31735: PUSH
31736: EMPTY
31737: LIST
31738: LIST
31739: PUSH
31740: LD_INT 1
31742: PUSH
31743: EMPTY
31744: LIST
31745: PUSH
31746: LD_INT 21
31748: PUSH
31749: LD_INT 1
31751: PUSH
31752: EMPTY
31753: LIST
31754: LIST
31755: PUSH
31756: EMPTY
31757: LIST
31758: LIST
31759: LIST
31760: PPUSH
31761: CALL_OW 69
31765: ST_TO_ADDR
// pom = pom diff UnitFilter ( pom , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_kamikaze ] , [ f_class , class_apeman_soldier ] ] ) ;
31766: LD_ADDR_LOC 51
31770: PUSH
31771: LD_LOC 51
31775: PUSH
31776: LD_LOC 51
31780: PPUSH
31781: LD_INT 2
31783: PUSH
31784: LD_INT 25
31786: PUSH
31787: LD_INT 12
31789: PUSH
31790: EMPTY
31791: LIST
31792: LIST
31793: PUSH
31794: LD_INT 25
31796: PUSH
31797: LD_INT 16
31799: PUSH
31800: EMPTY
31801: LIST
31802: LIST
31803: PUSH
31804: LD_INT 25
31806: PUSH
31807: LD_INT 17
31809: PUSH
31810: EMPTY
31811: LIST
31812: LIST
31813: PUSH
31814: LD_INT 25
31816: PUSH
31817: LD_INT 15
31819: PUSH
31820: EMPTY
31821: LIST
31822: LIST
31823: PUSH
31824: EMPTY
31825: LIST
31826: LIST
31827: LIST
31828: LIST
31829: LIST
31830: PPUSH
31831: CALL_OW 72
31835: DIFF
31836: ST_TO_ADDR
// if pom < 2 then
31837: LD_LOC 51
31841: PUSH
31842: LD_INT 2
31844: LESS
31845: IFFALSE 31849
// exit ;
31847: GO 32107
// if pom [ 1 ] = Khattam then
31849: LD_LOC 51
31853: PUSH
31854: LD_INT 1
31856: ARRAY
31857: PUSH
31858: LD_EXP 45
31862: EQUAL
31863: IFFALSE 31881
// pom = pom [ 2 ] else
31865: LD_ADDR_LOC 51
31869: PUSH
31870: LD_LOC 51
31874: PUSH
31875: LD_INT 2
31877: ARRAY
31878: ST_TO_ADDR
31879: GO 31895
// pom = pom [ 1 ] ;
31881: LD_ADDR_LOC 51
31885: PUSH
31886: LD_LOC 51
31890: PUSH
31891: LD_INT 1
31893: ARRAY
31894: ST_TO_ADDR
// if GetSex ( pom ) = sex_male then
31895: LD_LOC 51
31899: PPUSH
31900: CALL_OW 258
31904: PUSH
31905: LD_INT 1
31907: EQUAL
31908: IFFALSE 31924
// Say ( pom , D8b-Sol1-1 ) else
31910: LD_LOC 51
31914: PPUSH
31915: LD_STRING D8b-Sol1-1
31917: PPUSH
31918: CALL_OW 88
31922: GO 31936
// Say ( pom , D8b-FSol1-1 ) ;
31924: LD_LOC 51
31928: PPUSH
31929: LD_STRING D8b-FSol1-1
31931: PPUSH
31932: CALL_OW 88
// Say ( Khattam , D8b-Khat-1 ) ;
31936: LD_EXP 45
31940: PPUSH
31941: LD_STRING D8b-Khat-1
31943: PPUSH
31944: CALL_OW 88
// if GetSex ( pom ) = sex_male then
31948: LD_LOC 51
31952: PPUSH
31953: CALL_OW 258
31957: PUSH
31958: LD_INT 1
31960: EQUAL
31961: IFFALSE 31977
// Say ( pom , D8b-Sol1-2 ) else
31963: LD_LOC 51
31967: PPUSH
31968: LD_STRING D8b-Sol1-2
31970: PPUSH
31971: CALL_OW 88
31975: GO 31989
// Say ( pom , D8b-FSol1-2 ) ;
31977: LD_LOC 51
31981: PPUSH
31982: LD_STRING D8b-FSol1-2
31984: PPUSH
31985: CALL_OW 88
// Say ( Khattam , D8b-Khat-2 ) ;
31989: LD_EXP 45
31993: PPUSH
31994: LD_STRING D8b-Khat-2
31996: PPUSH
31997: CALL_OW 88
// if GetSex ( pom ) = sex_male then
32001: LD_LOC 51
32005: PPUSH
32006: CALL_OW 258
32010: PUSH
32011: LD_INT 1
32013: EQUAL
32014: IFFALSE 32030
// Say ( pom , D8b-Sol1-3 ) else
32016: LD_LOC 51
32020: PPUSH
32021: LD_STRING D8b-Sol1-3
32023: PPUSH
32024: CALL_OW 88
32028: GO 32042
// Say ( pom , D8b-FSol1-3 ) ;
32030: LD_LOC 51
32034: PPUSH
32035: LD_STRING D8b-FSol1-3
32037: PPUSH
32038: CALL_OW 88
// Say ( Khattam , D8b-Khat-3 ) ;
32042: LD_EXP 45
32046: PPUSH
32047: LD_STRING D8b-Khat-3
32049: PPUSH
32050: CALL_OW 88
// if GetSex ( pom ) = sex_male then
32054: LD_LOC 51
32058: PPUSH
32059: CALL_OW 258
32063: PUSH
32064: LD_INT 1
32066: EQUAL
32067: IFFALSE 32083
// Say ( pom , D8b-Sol1-4 ) else
32069: LD_LOC 51
32073: PPUSH
32074: LD_STRING D8b-Sol1-4
32076: PPUSH
32077: CALL_OW 88
32081: GO 32095
// Say ( pom , D8b-FSol1-4 ) ;
32083: LD_LOC 51
32087: PPUSH
32088: LD_STRING D8b-FSol1-4
32090: PPUSH
32091: CALL_OW 88
// DialogueOff ;
32095: CALL_OW 7
// KHATTAM_PADA = true ;
32099: LD_ADDR_EXP 58
32103: PUSH
32104: LD_INT 1
32106: ST_TO_ADDR
// end ; end ;
32107: END
// function testfight ; begin
32108: LD_INT 0
32110: PPUSH
// while InBattle ( [ You , Rusi ] ) do
32111: LD_EXP 3
32115: PUSH
32116: LD_EXP 2
32120: PUSH
32121: EMPTY
32122: LIST
32123: LIST
32124: PPUSH
32125: CALL_OW 463
32129: IFFALSE 32140
// wait ( 0 0$0.5 ) ;
32131: LD_INT 18
32133: PPUSH
32134: CALL_OW 67
32138: GO 32111
// end ;
32140: LD_VAR 0 1
32144: RET
// function GetPeople ( sex , povolani , diffseznam ) ; var pom5 ; begin
32145: LD_INT 0
32147: PPUSH
32148: PPUSH
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_scientistic ] , [ f_sex , sex ] ] ) ;
32149: LD_ADDR_LOC 52
32153: PUSH
32154: LD_INT 22
32156: PUSH
32157: LD_EXP 3
32161: PUSH
32162: EMPTY
32163: LIST
32164: LIST
32165: PUSH
32166: LD_INT 25
32168: PUSH
32169: LD_INT 4
32171: PUSH
32172: EMPTY
32173: LIST
32174: LIST
32175: PUSH
32176: LD_INT 26
32178: PUSH
32179: LD_VAR 0 1
32183: PUSH
32184: EMPTY
32185: LIST
32186: LIST
32187: PUSH
32188: EMPTY
32189: LIST
32190: LIST
32191: LIST
32192: PPUSH
32193: CALL_OW 69
32197: ST_TO_ADDR
// pom2 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_mechanic ] , [ f_sex , sex ] ] ) ;
32198: LD_ADDR_LOC 53
32202: PUSH
32203: LD_INT 22
32205: PUSH
32206: LD_EXP 3
32210: PUSH
32211: EMPTY
32212: LIST
32213: LIST
32214: PUSH
32215: LD_INT 25
32217: PUSH
32218: LD_INT 3
32220: PUSH
32221: EMPTY
32222: LIST
32223: LIST
32224: PUSH
32225: LD_INT 26
32227: PUSH
32228: LD_VAR 0 1
32232: PUSH
32233: EMPTY
32234: LIST
32235: LIST
32236: PUSH
32237: EMPTY
32238: LIST
32239: LIST
32240: LIST
32241: PPUSH
32242: CALL_OW 69
32246: ST_TO_ADDR
// pom3 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_engineer ] , [ f_sex , sex ] ] ) ;
32247: LD_ADDR_LOC 54
32251: PUSH
32252: LD_INT 22
32254: PUSH
32255: LD_EXP 3
32259: PUSH
32260: EMPTY
32261: LIST
32262: LIST
32263: PUSH
32264: LD_INT 25
32266: PUSH
32267: LD_INT 2
32269: PUSH
32270: EMPTY
32271: LIST
32272: LIST
32273: PUSH
32274: LD_INT 26
32276: PUSH
32277: LD_VAR 0 1
32281: PUSH
32282: EMPTY
32283: LIST
32284: LIST
32285: PUSH
32286: EMPTY
32287: LIST
32288: LIST
32289: LIST
32290: PPUSH
32291: CALL_OW 69
32295: ST_TO_ADDR
// pom4 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_soldier ] , [ f_sex , sex ] ] ) ;
32296: LD_ADDR_LOC 55
32300: PUSH
32301: LD_INT 22
32303: PUSH
32304: LD_EXP 3
32308: PUSH
32309: EMPTY
32310: LIST
32311: LIST
32312: PUSH
32313: LD_INT 25
32315: PUSH
32316: LD_INT 1
32318: PUSH
32319: EMPTY
32320: LIST
32321: LIST
32322: PUSH
32323: LD_INT 26
32325: PUSH
32326: LD_VAR 0 1
32330: PUSH
32331: EMPTY
32332: LIST
32333: LIST
32334: PUSH
32335: EMPTY
32336: LIST
32337: LIST
32338: LIST
32339: PPUSH
32340: CALL_OW 69
32344: ST_TO_ADDR
// pom5 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_sniper ] , [ f_sex , sex ] ] ) ;
32345: LD_ADDR_VAR 0 5
32349: PUSH
32350: LD_INT 22
32352: PUSH
32353: LD_EXP 3
32357: PUSH
32358: EMPTY
32359: LIST
32360: LIST
32361: PUSH
32362: LD_INT 25
32364: PUSH
32365: LD_INT 5
32367: PUSH
32368: EMPTY
32369: LIST
32370: LIST
32371: PUSH
32372: LD_INT 26
32374: PUSH
32375: LD_VAR 0 1
32379: PUSH
32380: EMPTY
32381: LIST
32382: LIST
32383: PUSH
32384: EMPTY
32385: LIST
32386: LIST
32387: LIST
32388: PPUSH
32389: CALL_OW 69
32393: ST_TO_ADDR
// case povolani of class_scientistic :
32394: LD_VAR 0 2
32398: PUSH
32399: LD_INT 4
32401: DOUBLE
32402: EQUAL
32403: IFTRUE 32407
32405: GO 32420
32407: POP
// pom = pom1 ; class_mechanic :
32408: LD_ADDR_LOC 51
32412: PUSH
32413: LD_LOC 52
32417: ST_TO_ADDR
32418: GO 32484
32420: LD_INT 3
32422: DOUBLE
32423: EQUAL
32424: IFTRUE 32428
32426: GO 32441
32428: POP
// pom = pom2 ; class_engineer :
32429: LD_ADDR_LOC 51
32433: PUSH
32434: LD_LOC 53
32438: ST_TO_ADDR
32439: GO 32484
32441: LD_INT 2
32443: DOUBLE
32444: EQUAL
32445: IFTRUE 32449
32447: GO 32462
32449: POP
// pom = pom3 ; class_soldier :
32450: LD_ADDR_LOC 51
32454: PUSH
32455: LD_LOC 54
32459: ST_TO_ADDR
32460: GO 32484
32462: LD_INT 1
32464: DOUBLE
32465: EQUAL
32466: IFTRUE 32470
32468: GO 32483
32470: POP
// pom = pom4 ; end ;
32471: LD_ADDR_LOC 51
32475: PUSH
32476: LD_LOC 55
32480: ST_TO_ADDR
32481: GO 32484
32483: POP
// if povolani <> class_scientistic then
32484: LD_VAR 0 2
32488: PUSH
32489: LD_INT 4
32491: NONEQUAL
32492: IFFALSE 32510
// pom = pom ^ pom1 ;
32494: LD_ADDR_LOC 51
32498: PUSH
32499: LD_LOC 51
32503: PUSH
32504: LD_LOC 52
32508: ADD
32509: ST_TO_ADDR
// if povolani <> class_mechanic then
32510: LD_VAR 0 2
32514: PUSH
32515: LD_INT 3
32517: NONEQUAL
32518: IFFALSE 32536
// pom = pom ^ pom2 ;
32520: LD_ADDR_LOC 51
32524: PUSH
32525: LD_LOC 51
32529: PUSH
32530: LD_LOC 53
32534: ADD
32535: ST_TO_ADDR
// if povolani <> class_engineer then
32536: LD_VAR 0 2
32540: PUSH
32541: LD_INT 2
32543: NONEQUAL
32544: IFFALSE 32562
// pom = pom ^ pom3 ;
32546: LD_ADDR_LOC 51
32550: PUSH
32551: LD_LOC 51
32555: PUSH
32556: LD_LOC 54
32560: ADD
32561: ST_TO_ADDR
// if povolani <> class_soldier then
32562: LD_VAR 0 2
32566: PUSH
32567: LD_INT 1
32569: NONEQUAL
32570: IFFALSE 32588
// pom = pom ^ pom4 ;
32572: LD_ADDR_LOC 51
32576: PUSH
32577: LD_LOC 51
32581: PUSH
32582: LD_LOC 55
32586: ADD
32587: ST_TO_ADDR
// if povolani <> class_scientistic then
32588: LD_VAR 0 2
32592: PUSH
32593: LD_INT 4
32595: NONEQUAL
32596: IFFALSE 32614
// pom = pom ^ pom5 ;
32598: LD_ADDR_LOC 51
32602: PUSH
32603: LD_LOC 51
32607: PUSH
32608: LD_VAR 0 5
32612: ADD
32613: ST_TO_ADDR
// result := pom diff diffseznam ;
32614: LD_ADDR_VAR 0 4
32618: PUSH
32619: LD_LOC 51
32623: PUSH
32624: LD_VAR 0 3
32628: DIFF
32629: ST_TO_ADDR
// end ;
32630: LD_VAR 0 4
32634: RET
// export function uvidel_spontalni_teleportaci ; begin
32635: LD_INT 0
32637: PPUSH
// while not IsOK ( JMM ) do
32638: LD_EXP 42
32642: PPUSH
32643: CALL_OW 302
32647: NOT
32648: IFFALSE 32659
// wait ( 0 0$1 ) ;
32650: LD_INT 35
32652: PPUSH
32653: CALL_OW 67
32657: GO 32638
// DialogueOn ;
32659: CALL_OW 6
// if IsOK ( Cyrus ) then
32663: LD_EXP 47
32667: PPUSH
32668: CALL_OW 302
32672: IFFALSE 32686
// Say ( Cyrus , D10-Cyrus-1 ) ;
32674: LD_EXP 47
32678: PPUSH
32679: LD_STRING D10-Cyrus-1
32681: PPUSH
32682: CALL_OW 88
// Say ( JMM , D10-JMM-1 ) ;
32686: LD_EXP 42
32690: PPUSH
32691: LD_STRING D10-JMM-1
32693: PPUSH
32694: CALL_OW 88
// DialogueOff ;
32698: CALL_OW 7
// end ;
32702: LD_VAR 0 1
32706: RET
// every 0 0$6 trigger Arabi_utoci do var i ; var cont ;
32707: LD_EXP 30
32711: IFFALSE 32790
32713: GO 32715
32715: DISABLE
32716: LD_INT 0
32718: PPUSH
32719: PPUSH
// begin cont = false ;
32720: LD_ADDR_VAR 0 2
32724: PUSH
32725: LD_INT 0
32727: ST_TO_ADDR
// for i in arabsti_zradci_LIST do
32728: LD_ADDR_VAR 0 1
32732: PUSH
32733: LD_EXP 32
32737: PUSH
32738: FOR_IN
32739: IFFALSE 32762
// if IsLive ( i ) then
32741: LD_VAR 0 1
32745: PPUSH
32746: CALL_OW 300
32750: IFFALSE 32760
// cont = true ;
32752: LD_ADDR_VAR 0 2
32756: PUSH
32757: LD_INT 1
32759: ST_TO_ADDR
32760: GO 32738
32762: POP
32763: POP
// if cont then
32764: LD_VAR 0 2
32768: IFFALSE 32773
// enable else
32770: ENABLE
32771: GO 32790
// if UTEKLI_ARABI = 0 then
32773: LD_EXP 31
32777: PUSH
32778: LD_INT 0
32780: EQUAL
32781: IFFALSE 32790
// ChangeMissionObjectives ( M4a ) ;
32783: LD_STRING M4a
32785: PPUSH
32786: CALL_OW 337
// end ;
32790: PPOPN 2
32792: END
// every 0 0$6 trigger test_ukonceni_allowed do
32793: LD_LOC 62
32797: IFFALSE 32846
32799: GO 32801
32801: DISABLE
// begin if GetTech ( tech_AI , You ) = state_researched and GetTech ( tech_LasSight , You ) = state_researched then
32802: LD_INT 32
32804: PPUSH
32805: LD_EXP 3
32809: PPUSH
32810: CALL_OW 321
32814: PUSH
32815: LD_INT 2
32817: EQUAL
32818: PUSH
32819: LD_INT 12
32821: PPUSH
32822: LD_EXP 3
32826: PPUSH
32827: CALL_OW 321
32831: PUSH
32832: LD_INT 2
32834: EQUAL
32835: AND
32836: IFFALSE 32845
// Mission_end ( Ukonceni kdyz ma vynalezeno - dialogues 458 ) ;
32838: LD_STRING Ukonceni kdyz ma vynalezeno - dialogues 458
32840: PPUSH
32841: CALL 451 0 1
// enable ;
32845: ENABLE
// end ; end_of_file
32846: END
// export JMM ; export Joan_F ; export Gary ; export Khattam ; export Simms ; export Cyrus ; export Denis ; export Powell ; export Cornel ; export Ambase ; export Amlab ; export Amsiblab ; export Amelekt ; export COR_GO ; export Am_units ; export END_ATTACK ; export KHATTAM_PADA ; export Res ; var pom , pom1 , i ; var touchzone ; every 0 0$5 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) > 0 do
32847: LD_INT 22
32849: PUSH
32850: LD_EXP 3
32854: PUSH
32855: EMPTY
32856: LIST
32857: LIST
32858: PUSH
32859: LD_INT 30
32861: PUSH
32862: LD_INT 0
32864: PUSH
32865: EMPTY
32866: LIST
32867: LIST
32868: PUSH
32869: EMPTY
32870: LIST
32871: LIST
32872: PPUSH
32873: CALL_OW 69
32877: PUSH
32878: LD_INT 0
32880: GREATER
32881: IFFALSE 32943
32883: GO 32885
32885: DISABLE
// begin Ambase := FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_btype , b_depot ] ] ) ;
32886: LD_ADDR_EXP 51
32890: PUSH
32891: LD_INT 22
32893: PUSH
32894: LD_EXP 3
32898: PUSH
32899: EMPTY
32900: LIST
32901: LIST
32902: PUSH
32903: LD_INT 1
32905: PUSH
32906: EMPTY
32907: LIST
32908: PUSH
32909: LD_INT 30
32911: PUSH
32912: LD_INT 0
32914: PUSH
32915: EMPTY
32916: LIST
32917: LIST
32918: PUSH
32919: EMPTY
32920: LIST
32921: LIST
32922: LIST
32923: PPUSH
32924: CALL_OW 69
32928: ST_TO_ADDR
// Ambase := Ambase [ 1 ] ;
32929: LD_ADDR_EXP 51
32933: PUSH
32934: LD_EXP 51
32938: PUSH
32939: LD_INT 1
32941: ARRAY
32942: ST_TO_ADDR
// end ;
32943: END
// every 0 0$5 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_btype , b_lab ] ] ) > 0 do
32944: LD_INT 22
32946: PUSH
32947: LD_EXP 3
32951: PUSH
32952: EMPTY
32953: LIST
32954: LIST
32955: PUSH
32956: LD_INT 1
32958: PUSH
32959: EMPTY
32960: LIST
32961: PUSH
32962: LD_INT 30
32964: PUSH
32965: LD_INT 6
32967: PUSH
32968: EMPTY
32969: LIST
32970: LIST
32971: PUSH
32972: EMPTY
32973: LIST
32974: LIST
32975: LIST
32976: PPUSH
32977: CALL_OW 69
32981: PUSH
32982: LD_INT 0
32984: GREATER
32985: IFFALSE 33047
32987: GO 32989
32989: DISABLE
// begin Amlab := FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_btype , b_lab ] ] ) ;
32990: LD_ADDR_EXP 52
32994: PUSH
32995: LD_INT 22
32997: PUSH
32998: LD_EXP 3
33002: PUSH
33003: EMPTY
33004: LIST
33005: LIST
33006: PUSH
33007: LD_INT 1
33009: PUSH
33010: EMPTY
33011: LIST
33012: PUSH
33013: LD_INT 30
33015: PUSH
33016: LD_INT 6
33018: PUSH
33019: EMPTY
33020: LIST
33021: LIST
33022: PUSH
33023: EMPTY
33024: LIST
33025: LIST
33026: LIST
33027: PPUSH
33028: CALL_OW 69
33032: ST_TO_ADDR
// Amlab := Amlab [ 1 ] ;
33033: LD_ADDR_EXP 52
33037: PUSH
33038: LD_EXP 52
33042: PUSH
33043: LD_INT 1
33045: ARRAY
33046: ST_TO_ADDR
// end ;
33047: END
// every 0 0$5 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_lab_full ] , [ f_btype , b_lab_half ] ] ] ) > 0 do var je ;
33048: LD_INT 22
33050: PUSH
33051: LD_EXP 3
33055: PUSH
33056: EMPTY
33057: LIST
33058: LIST
33059: PUSH
33060: LD_INT 2
33062: PUSH
33063: LD_INT 30
33065: PUSH
33066: LD_INT 8
33068: PUSH
33069: EMPTY
33070: LIST
33071: LIST
33072: PUSH
33073: LD_INT 30
33075: PUSH
33076: LD_INT 7
33078: PUSH
33079: EMPTY
33080: LIST
33081: LIST
33082: PUSH
33083: EMPTY
33084: LIST
33085: LIST
33086: LIST
33087: PUSH
33088: EMPTY
33089: LIST
33090: LIST
33091: PPUSH
33092: CALL_OW 69
33096: PUSH
33097: LD_INT 0
33099: GREATER
33100: IFFALSE 33256
33102: GO 33104
33104: DISABLE
33105: LD_INT 0
33107: PPUSH
// begin je = 0 ;
33108: LD_ADDR_VAR 0 1
33112: PUSH
33113: LD_INT 0
33115: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_btype , b_lab_full ] , [ f_btype , b_lab_half ] ] ] ) ;
33116: LD_ADDR_LOC 63
33120: PUSH
33121: LD_INT 22
33123: PUSH
33124: LD_EXP 3
33128: PUSH
33129: EMPTY
33130: LIST
33131: LIST
33132: PUSH
33133: LD_INT 2
33135: PUSH
33136: LD_INT 30
33138: PUSH
33139: LD_INT 8
33141: PUSH
33142: EMPTY
33143: LIST
33144: LIST
33145: PUSH
33146: LD_INT 30
33148: PUSH
33149: LD_INT 7
33151: PUSH
33152: EMPTY
33153: LIST
33154: LIST
33155: PUSH
33156: EMPTY
33157: LIST
33158: LIST
33159: LIST
33160: PUSH
33161: EMPTY
33162: LIST
33163: LIST
33164: PPUSH
33165: CALL_OW 69
33169: ST_TO_ADDR
// for i in pom do
33170: LD_ADDR_LOC 65
33174: PUSH
33175: LD_LOC 63
33179: PUSH
33180: FOR_IN
33181: IFFALSE 33231
// if GetLabKind ( i , 1 ) = b_lab_siberium or GetLabKind ( i , 2 ) = b_lab_siberium then
33183: LD_LOC 65
33187: PPUSH
33188: LD_INT 1
33190: PPUSH
33191: CALL_OW 268
33195: PUSH
33196: LD_INT 11
33198: EQUAL
33199: PUSH
33200: LD_LOC 65
33204: PPUSH
33205: LD_INT 2
33207: PPUSH
33208: CALL_OW 268
33212: PUSH
33213: LD_INT 11
33215: EQUAL
33216: OR
33217: IFFALSE 33229
// je = i ;
33219: LD_ADDR_VAR 0 1
33223: PUSH
33224: LD_LOC 65
33228: ST_TO_ADDR
33229: GO 33180
33231: POP
33232: POP
// if je <> 0 then
33233: LD_VAR 0 1
33237: PUSH
33238: LD_INT 0
33240: NONEQUAL
33241: IFFALSE 33255
// Amsiblab := je else
33243: LD_ADDR_EXP 53
33247: PUSH
33248: LD_VAR 0 1
33252: ST_TO_ADDR
33253: GO 33256
// enable ;
33255: ENABLE
// end ;
33256: PPOPN 1
33258: END
// every 1 1$0 trigger COR_GO = 1 do
33259: LD_EXP 55
33263: PUSH
33264: LD_INT 1
33266: EQUAL
33267: IFFALSE 33319
33269: GO 33271
33271: DISABLE
// begin if ZIJE_MIKHAIL then
33272: LD_EXP 85
33276: IFFALSE 33319
// begin create_Cornel ;
33278: CALL 6162 0 0
// ComMoveXY ( Cornel , GetX ( JMM ) , GetY ( JMM ) ) ;
33282: LD_EXP 50
33286: PPUSH
33287: LD_EXP 42
33291: PPUSH
33292: CALL_OW 250
33296: PPUSH
33297: LD_EXP 42
33301: PPUSH
33302: CALL_OW 251
33306: PPUSH
33307: CALL_OW 111
// COR_GO = 2 ;
33311: LD_ADDR_EXP 55
33315: PUSH
33316: LD_INT 2
33318: ST_TO_ADDR
// end ; end ;
33319: END
// every 0 0$5 do
33320: GO 33322
33322: DISABLE
// begin Am_units = FilterAllUnits ( [ [ f_side , You ] ] ) ;
33323: LD_ADDR_EXP 56
33327: PUSH
33328: LD_INT 22
33330: PUSH
33331: LD_EXP 3
33335: PUSH
33336: EMPTY
33337: LIST
33338: LIST
33339: PUSH
33340: EMPTY
33341: LIST
33342: PPUSH
33343: CALL_OW 69
33347: ST_TO_ADDR
// enable ;
33348: ENABLE
// end ;
33349: END
// every 0 0$2 do
33350: GO 33352
33352: DISABLE
// begin for i in Am_units do
33353: LD_ADDR_LOC 65
33357: PUSH
33358: LD_EXP 56
33362: PUSH
33363: FOR_IN
33364: IFFALSE 33418
// begin pom = Attacks ( i ) ;
33366: LD_ADDR_LOC 63
33370: PUSH
33371: LD_LOC 65
33375: PPUSH
33376: CALL_OW 320
33380: ST_TO_ADDR
// if pom <> 0 then
33381: LD_LOC 63
33385: PUSH
33386: LD_INT 0
33388: NONEQUAL
33389: IFFALSE 33416
// if Getside ( pom ) = Arabi then
33391: LD_LOC 63
33395: PPUSH
33396: CALL_OW 255
33400: PUSH
33401: LD_EXP 1
33405: EQUAL
33406: IFFALSE 33416
// END_ATTACK = true ;
33408: LD_ADDR_EXP 57
33412: PUSH
33413: LD_INT 1
33415: ST_TO_ADDR
// end ;
33416: GO 33363
33418: POP
33419: POP
// enable ;
33420: ENABLE
// end ;
33421: END
// every 0 0$1 trigger KHATTAM_PADA do
33422: LD_EXP 58
33426: IFFALSE 33531
33428: GO 33430
33430: DISABLE
// begin while IsInUnit ( Khattam ) do
33431: LD_EXP 45
33435: PPUSH
33436: CALL_OW 310
33440: IFFALSE 33469
// begin ComExitBuilding ( Khattam ) ;
33442: LD_EXP 45
33446: PPUSH
33447: CALL_OW 122
// AddComExitVehicle ( Khattam ) ;
33451: LD_EXP 45
33455: PPUSH
33456: CALL_OW 181
// wait ( 0 0$1 ) ;
33460: LD_INT 35
33462: PPUSH
33463: CALL_OW 67
// end ;
33467: GO 33431
// SetSide ( Khattam , SideKhat ) ;
33469: LD_EXP 45
33473: PPUSH
33474: LD_EXP 8
33478: PPUSH
33479: CALL_OW 235
// ComMoveXY ( Khattam , 128 , 19 ) ;
33483: LD_EXP 45
33487: PPUSH
33488: LD_INT 128
33490: PPUSH
33491: LD_INT 19
33493: PPUSH
33494: CALL_OW 111
// while not IsInArea ( Khattam , KHOUT ) do
33498: LD_EXP 45
33502: PPUSH
33503: LD_INT 24
33505: PPUSH
33506: CALL_OW 308
33510: NOT
33511: IFFALSE 33522
// wait ( 0 0$1 ) ;
33513: LD_INT 35
33515: PPUSH
33516: CALL_OW 67
33520: GO 33498
// RemoveUnit ( Khattam ) ;
33522: LD_EXP 45
33526: PPUSH
33527: CALL_OW 64
// end ;
33531: END
// every 0 0$7 do
33532: GO 33534
33534: DISABLE
// begin if not IsOK ( Ambase ) then
33535: LD_EXP 51
33539: PPUSH
33540: CALL_OW 302
33544: NOT
33545: IFFALSE 33614
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_and ] , [ f_btype , b_depot ] ] ) ;
33547: LD_ADDR_LOC 63
33551: PUSH
33552: LD_INT 22
33554: PUSH
33555: LD_EXP 3
33559: PUSH
33560: EMPTY
33561: LIST
33562: LIST
33563: PUSH
33564: LD_INT 1
33566: PUSH
33567: EMPTY
33568: LIST
33569: PUSH
33570: LD_INT 30
33572: PUSH
33573: LD_INT 0
33575: PUSH
33576: EMPTY
33577: LIST
33578: LIST
33579: PUSH
33580: EMPTY
33581: LIST
33582: LIST
33583: LIST
33584: PPUSH
33585: CALL_OW 69
33589: ST_TO_ADDR
// if pom > 0 then
33590: LD_LOC 63
33594: PUSH
33595: LD_INT 0
33597: GREATER
33598: IFFALSE 33614
// Ambase = pom [ 1 ] ;
33600: LD_ADDR_EXP 51
33604: PUSH
33605: LD_LOC 63
33609: PUSH
33610: LD_INT 1
33612: ARRAY
33613: ST_TO_ADDR
// end ; enable ;
33614: ENABLE
// end ;
33615: END
// every 0 0$3 do
33616: GO 33618
33618: DISABLE
// begin pom = FilterUnitsInArea ( Abase , [ [ f_side , You ] , [ f_and ] , [ f_type , unit_building ] ] ) ;
33619: LD_ADDR_LOC 63
33623: PUSH
33624: LD_INT 2
33626: PPUSH
33627: LD_INT 22
33629: PUSH
33630: LD_EXP 3
33634: PUSH
33635: EMPTY
33636: LIST
33637: LIST
33638: PUSH
33639: LD_INT 1
33641: PUSH
33642: EMPTY
33643: LIST
33644: PUSH
33645: LD_INT 21
33647: PUSH
33648: LD_INT 3
33650: PUSH
33651: EMPTY
33652: LIST
33653: LIST
33654: PUSH
33655: EMPTY
33656: LIST
33657: LIST
33658: LIST
33659: PPUSH
33660: CALL_OW 70
33664: ST_TO_ADDR
// for i in pom do
33665: LD_ADDR_LOC 65
33669: PUSH
33670: LD_LOC 63
33674: PUSH
33675: FOR_IN
33676: IFFALSE 33718
// if GetX ( i ) = 70 and GetY ( i ) = 17 then
33678: LD_LOC 65
33682: PPUSH
33683: CALL_OW 250
33687: PUSH
33688: LD_INT 70
33690: EQUAL
33691: PUSH
33692: LD_LOC 65
33696: PPUSH
33697: CALL_OW 251
33701: PUSH
33702: LD_INT 17
33704: EQUAL
33705: AND
33706: IFFALSE 33716
// END_ATTACK = true ;
33708: LD_ADDR_EXP 57
33712: PUSH
33713: LD_INT 1
33715: ST_TO_ADDR
33716: GO 33675
33718: POP
33719: POP
// enable ;
33720: ENABLE
// end ;
33721: END
// every 0 0$1 do var i , pom ; var zabrano ;
33722: GO 33724
33724: DISABLE
33725: LD_INT 0
33727: PPUSH
33728: PPUSH
33729: PPUSH
// begin zabrano = false ;
33730: LD_ADDR_VAR 0 3
33734: PUSH
33735: LD_INT 0
33737: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_barracks ] ] ) ;
33738: LD_ADDR_VAR 0 2
33742: PUSH
33743: LD_INT 22
33745: PUSH
33746: LD_EXP 3
33750: PUSH
33751: EMPTY
33752: LIST
33753: LIST
33754: PUSH
33755: LD_INT 30
33757: PUSH
33758: LD_INT 5
33760: PUSH
33761: EMPTY
33762: LIST
33763: LIST
33764: PUSH
33765: EMPTY
33766: LIST
33767: LIST
33768: PPUSH
33769: CALL_OW 69
33773: ST_TO_ADDR
// for i in pom do
33774: LD_ADDR_VAR 0 1
33778: PUSH
33779: LD_VAR 0 2
33783: PUSH
33784: FOR_IN
33785: IFFALSE 33812
// if GetNation ( i ) = nation_arabian then
33787: LD_VAR 0 1
33791: PPUSH
33792: CALL_OW 248
33796: PUSH
33797: LD_INT 2
33799: EQUAL
33800: IFFALSE 33810
// zabrano = true ;
33802: LD_ADDR_VAR 0 3
33806: PUSH
33807: LD_INT 1
33809: ST_TO_ADDR
33810: GO 33784
33812: POP
33813: POP
// if zabrano then
33814: LD_VAR 0 3
33818: IFFALSE 33835
// SetTech ( tech_Mortar , You , state_researched ) ;
33820: LD_INT 41
33822: PPUSH
33823: LD_EXP 3
33827: PPUSH
33828: LD_INT 2
33830: PPUSH
33831: CALL_OW 322
// enable ;
33835: ENABLE
// end ; end_of_file
33836: PPOPN 3
33838: END
// export timerusi ; export levelrusi ; export chassisrusi ; export zbranrusi ; export farusi ; export pocaut ; export wait2 ; export kutoku ; export ntanku ; export wait2new ; export rusi_zivoty ; export cekani_zradnych_arabu_pred_utokem ; export cas_druzi_arabaci ; export zbrane_na_turrety1 ; export zbrane_na_turrety2 ; export zbrane_na_turrety3 ; export cas_na_cekani_pred_nultym_utokem ; export wait3new ; export wait_bazooka_attack ; export wait_spec_baz ; export pocet_zivotu_utok_po_utoku ; export arabsky_utok_prichod ; export total_final ; export VIDEL_MIKHAILA ; export VI_O_GRANATECH ; export ZIJE_MIKHAIL ; export MNOZSTVI_SIBERITU ; export function SetDificultyLevels ; begin
33839: LD_INT 0
33841: PPUSH
// timerusi := [ 5 5$0 , 3 3$0 , 3 3$00 ] ;
33842: LD_ADDR_EXP 60
33846: PUSH
33847: LD_INT 10500
33849: PUSH
33850: LD_INT 6300
33852: PUSH
33853: LD_INT 6300
33855: PUSH
33856: EMPTY
33857: LIST
33858: LIST
33859: LIST
33860: ST_TO_ADDR
// levelrusi := [ 4 , 5 , 6 ] ;
33861: LD_ADDR_EXP 61
33865: PUSH
33866: LD_INT 4
33868: PUSH
33869: LD_INT 5
33871: PUSH
33872: LD_INT 6
33874: PUSH
33875: EMPTY
33876: LIST
33877: LIST
33878: LIST
33879: ST_TO_ADDR
// chassisrusi := [ ru_heavy_wheeled , ru_medium_tracked , ru_heavy_tracked ] ;
33880: LD_ADDR_EXP 62
33884: PUSH
33885: LD_INT 23
33887: PUSH
33888: LD_INT 22
33890: PUSH
33891: LD_INT 24
33893: PUSH
33894: EMPTY
33895: LIST
33896: LIST
33897: LIST
33898: ST_TO_ADDR
// zbranrusi := [ ru_gatling_gun , ru_gun , ru_heavy_gun ] ;
33899: LD_ADDR_EXP 63
33903: PUSH
33904: LD_INT 43
33906: PUSH
33907: LD_INT 44
33909: PUSH
33910: LD_INT 46
33912: PUSH
33913: EMPTY
33914: LIST
33915: LIST
33916: LIST
33917: ST_TO_ADDR
// pocaut = [ 1 , 2 , 2 ] ;
33918: LD_ADDR_EXP 65
33922: PUSH
33923: LD_INT 1
33925: PUSH
33926: LD_INT 2
33928: PUSH
33929: LD_INT 2
33931: PUSH
33932: EMPTY
33933: LIST
33934: LIST
33935: LIST
33936: ST_TO_ADDR
// wait2 = [ 3 3$0 , 2 2$0 , 2 2$0 ] ;
33937: LD_ADDR_EXP 66
33941: PUSH
33942: LD_INT 6300
33944: PUSH
33945: LD_INT 4200
33947: PUSH
33948: LD_INT 4200
33950: PUSH
33951: EMPTY
33952: LIST
33953: LIST
33954: LIST
33955: ST_TO_ADDR
// kutoku = [ 3 3$0 , 2 2$0 , 1 1$0 ] ;
33956: LD_ADDR_EXP 67
33960: PUSH
33961: LD_INT 6300
33963: PUSH
33964: LD_INT 4200
33966: PUSH
33967: LD_INT 2100
33969: PUSH
33970: EMPTY
33971: LIST
33972: LIST
33973: LIST
33974: ST_TO_ADDR
// ntanku = [ 1 , 2 , 3 ] ;
33975: LD_ADDR_EXP 68
33979: PUSH
33980: LD_INT 1
33982: PUSH
33983: LD_INT 2
33985: PUSH
33986: LD_INT 3
33988: PUSH
33989: EMPTY
33990: LIST
33991: LIST
33992: LIST
33993: ST_TO_ADDR
// rusi_zivoty = [ 600 , 800 , 1000 ] ;
33994: LD_ADDR_EXP 70
33998: PUSH
33999: LD_INT 600
34001: PUSH
34002: LD_INT 800
34004: PUSH
34005: LD_INT 1000
34007: PUSH
34008: EMPTY
34009: LIST
34010: LIST
34011: LIST
34012: ST_TO_ADDR
// cekani_zradnych_arabu_pred_utokem = [ 0 0$15 , 0 0$7 , 0 0$3 ] ;
34013: LD_ADDR_EXP 71
34017: PUSH
34018: LD_INT 525
34020: PUSH
34021: LD_INT 245
34023: PUSH
34024: LD_INT 105
34026: PUSH
34027: EMPTY
34028: LIST
34029: LIST
34030: LIST
34031: ST_TO_ADDR
// cas_druzi_arabaci = [ 0 0$20 , 0 0$10 , 0 0$3 ] ;
34032: LD_ADDR_EXP 72
34036: PUSH
34037: LD_INT 700
34039: PUSH
34040: LD_INT 350
34042: PUSH
34043: LD_INT 105
34045: PUSH
34046: EMPTY
34047: LIST
34048: LIST
34049: LIST
34050: ST_TO_ADDR
// zbrane_na_turrety1 = [ ru_heavy_machine_gun , ru_gatling_gun , ru_gatling_gun ] ;
34051: LD_ADDR_EXP 73
34055: PUSH
34056: LD_INT 42
34058: PUSH
34059: LD_INT 43
34061: PUSH
34062: LD_INT 43
34064: PUSH
34065: EMPTY
34066: LIST
34067: LIST
34068: LIST
34069: ST_TO_ADDR
// zbrane_na_turrety2 = [ ru_gatling_gun , ru_gatling_gun , ru_gatling_gun ] ;
34070: LD_ADDR_EXP 74
34074: PUSH
34075: LD_INT 43
34077: PUSH
34078: LD_INT 43
34080: PUSH
34081: LD_INT 43
34083: PUSH
34084: EMPTY
34085: LIST
34086: LIST
34087: LIST
34088: ST_TO_ADDR
// zbrane_na_turrety3 = [ ru_gatling_gun , ru_gun , ru_heavy_gun ] ;
34089: LD_ADDR_EXP 75
34093: PUSH
34094: LD_INT 43
34096: PUSH
34097: LD_INT 44
34099: PUSH
34100: LD_INT 46
34102: PUSH
34103: EMPTY
34104: LIST
34105: LIST
34106: LIST
34107: ST_TO_ADDR
// pocet_zivotu_utok_po_utoku = [ 600 , 800 , 1000 ] ;
34108: LD_ADDR_EXP 80
34112: PUSH
34113: LD_INT 600
34115: PUSH
34116: LD_INT 800
34118: PUSH
34119: LD_INT 1000
34121: PUSH
34122: EMPTY
34123: LIST
34124: LIST
34125: LIST
34126: ST_TO_ADDR
// arabsky_utok_prichod = [ 30 30$0 , 20 20$0 , 15 15$0 ] ;
34127: LD_ADDR_EXP 81
34131: PUSH
34132: LD_INT 63000
34134: PUSH
34135: LD_INT 42000
34137: PUSH
34138: LD_INT 31500
34140: PUSH
34141: EMPTY
34142: LIST
34143: LIST
34144: LIST
34145: ST_TO_ADDR
// total_final = [ 10 10$0 , 8 8$0 , 5 5$0 ] ;
34146: LD_ADDR_EXP 82
34150: PUSH
34151: LD_INT 21000
34153: PUSH
34154: LD_INT 16800
34156: PUSH
34157: LD_INT 10500
34159: PUSH
34160: EMPTY
34161: LIST
34162: LIST
34163: LIST
34164: ST_TO_ADDR
// cas_na_cekani_pred_nultym_utokem = [ 1 1$00 , 0 0$20 , 0 0$0 ] ;
34165: LD_ADDR_EXP 76
34169: PUSH
34170: LD_INT 2100
34172: PUSH
34173: LD_INT 700
34175: PUSH
34176: LD_INT 0
34178: PUSH
34179: EMPTY
34180: LIST
34181: LIST
34182: LIST
34183: ST_TO_ADDR
// farusi := [ 4 4$0 , 3 3$0 , 3 3$0 ] ;
34184: LD_ADDR_EXP 64
34188: PUSH
34189: LD_INT 8400
34191: PUSH
34192: LD_INT 6300
34194: PUSH
34195: LD_INT 6300
34197: PUSH
34198: EMPTY
34199: LIST
34200: LIST
34201: LIST
34202: ST_TO_ADDR
// wait2new = [ 5 5$30 , 4 4$30 , 3 3$30 ] ;
34203: LD_ADDR_EXP 69
34207: PUSH
34208: LD_INT 11550
34210: PUSH
34211: LD_INT 9450
34213: PUSH
34214: LD_INT 7350
34216: PUSH
34217: EMPTY
34218: LIST
34219: LIST
34220: LIST
34221: ST_TO_ADDR
// wait3new = [ 6 6$30 , 5 5$30 , 4 4$30 ] ;
34222: LD_ADDR_EXP 77
34226: PUSH
34227: LD_INT 13650
34229: PUSH
34230: LD_INT 11550
34232: PUSH
34233: LD_INT 9450
34235: PUSH
34236: EMPTY
34237: LIST
34238: LIST
34239: LIST
34240: ST_TO_ADDR
// wait_bazooka_attack = [ 4 4$30 , 4 4$0 , 3 3$0 ] ;
34241: LD_ADDR_EXP 78
34245: PUSH
34246: LD_INT 9450
34248: PUSH
34249: LD_INT 8400
34251: PUSH
34252: LD_INT 6300
34254: PUSH
34255: EMPTY
34256: LIST
34257: LIST
34258: LIST
34259: ST_TO_ADDR
// wait_spec_baz = [ 4 4$0 , 5 5$0 , 4 4$0 ] end ;
34260: LD_ADDR_EXP 79
34264: PUSH
34265: LD_INT 8400
34267: PUSH
34268: LD_INT 10500
34270: PUSH
34271: LD_INT 8400
34273: PUSH
34274: EMPTY
34275: LIST
34276: LIST
34277: LIST
34278: ST_TO_ADDR
34279: LD_VAR 0 1
34283: RET
// export cas ; every 0 0$10 do var pom ;
34284: GO 34286
34286: DISABLE
34287: LD_INT 0
34289: PPUSH
// begin if cas [ 3 ] + 10 = 60 then
34290: LD_EXP 87
34294: PUSH
34295: LD_INT 3
34297: ARRAY
34298: PUSH
34299: LD_INT 10
34301: PLUS
34302: PUSH
34303: LD_INT 60
34305: EQUAL
34306: IFFALSE 34342
// cas = cas [ 1 ] + 1 ^ cas [ 2 ] ^ 0 else
34308: LD_ADDR_EXP 87
34312: PUSH
34313: LD_EXP 87
34317: PUSH
34318: LD_INT 1
34320: ARRAY
34321: PUSH
34322: LD_INT 1
34324: PLUS
34325: PUSH
34326: LD_EXP 87
34330: PUSH
34331: LD_INT 2
34333: ARRAY
34334: ADD
34335: PUSH
34336: LD_INT 0
34338: ADD
34339: ST_TO_ADDR
34340: GO 34380
// cas = cas [ 1 ] ^ cas [ 2 ] ^ cas [ 3 ] + 10 ;
34342: LD_ADDR_EXP 87
34346: PUSH
34347: LD_EXP 87
34351: PUSH
34352: LD_INT 1
34354: ARRAY
34355: PUSH
34356: LD_EXP 87
34360: PUSH
34361: LD_INT 2
34363: ARRAY
34364: ADD
34365: PUSH
34366: LD_EXP 87
34370: PUSH
34371: LD_INT 3
34373: ARRAY
34374: PUSH
34375: LD_INT 10
34377: PLUS
34378: ADD
34379: ST_TO_ADDR
// debug_strings = [ cas ] ;
34380: LD_ADDR_OWVAR 48
34384: PUSH
34385: LD_EXP 87
34389: PUSH
34390: EMPTY
34391: LIST
34392: ST_TO_ADDR
// enable ;
34393: ENABLE
// end ;
34394: PPOPN 1
34396: END
// export function pojmenuj_epsilon ( bas ) ; begin
34397: LD_INT 0
34399: PPUSH
// SetBName ( bas , epsilon ) ;
34400: LD_VAR 0 1
34404: PPUSH
34405: LD_STRING epsilon
34407: PPUSH
34408: CALL_OW 500
// end ; end_of_file
34412: LD_VAR 0 2
34416: RET
// every 0 0$2 + 0 0$0.1 do
34417: GO 34419
34419: DISABLE
// begin if FilterAllUnits ( [ [ f_side , 1 ] , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_soldier ] , [ f_class , class_apeman_kamikaze ] ] ] ) > FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_human ] , [ f_not , [ f_or , [ f_class , class_apeman ] , [ f_class , class_apeman_engineer ] , [ f_class , class_apeman_soldier ] , [ f_class , class_apeman_kamikaze ] ] ] ] ) then
34420: LD_INT 22
34422: PUSH
34423: LD_INT 1
34425: PUSH
34426: EMPTY
34427: LIST
34428: LIST
34429: PUSH
34430: LD_INT 2
34432: PUSH
34433: LD_INT 25
34435: PUSH
34436: LD_INT 12
34438: PUSH
34439: EMPTY
34440: LIST
34441: LIST
34442: PUSH
34443: LD_INT 25
34445: PUSH
34446: LD_INT 16
34448: PUSH
34449: EMPTY
34450: LIST
34451: LIST
34452: PUSH
34453: LD_INT 25
34455: PUSH
34456: LD_INT 15
34458: PUSH
34459: EMPTY
34460: LIST
34461: LIST
34462: PUSH
34463: LD_INT 25
34465: PUSH
34466: LD_INT 17
34468: PUSH
34469: EMPTY
34470: LIST
34471: LIST
34472: PUSH
34473: EMPTY
34474: LIST
34475: LIST
34476: LIST
34477: LIST
34478: LIST
34479: PUSH
34480: EMPTY
34481: LIST
34482: LIST
34483: PPUSH
34484: CALL_OW 69
34488: PUSH
34489: LD_INT 22
34491: PUSH
34492: LD_INT 1
34494: PUSH
34495: EMPTY
34496: LIST
34497: LIST
34498: PUSH
34499: LD_INT 21
34501: PUSH
34502: LD_INT 1
34504: PUSH
34505: EMPTY
34506: LIST
34507: LIST
34508: PUSH
34509: LD_INT 3
34511: PUSH
34512: LD_INT 2
34514: PUSH
34515: LD_INT 25
34517: PUSH
34518: LD_INT 12
34520: PUSH
34521: EMPTY
34522: LIST
34523: LIST
34524: PUSH
34525: LD_INT 25
34527: PUSH
34528: LD_INT 16
34530: PUSH
34531: EMPTY
34532: LIST
34533: LIST
34534: PUSH
34535: LD_INT 25
34537: PUSH
34538: LD_INT 15
34540: PUSH
34541: EMPTY
34542: LIST
34543: LIST
34544: PUSH
34545: LD_INT 25
34547: PUSH
34548: LD_INT 17
34550: PUSH
34551: EMPTY
34552: LIST
34553: LIST
34554: PUSH
34555: EMPTY
34556: LIST
34557: LIST
34558: LIST
34559: LIST
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: GREATER
34576: IFFALSE 34587
// begin SetAchievement ( ACH_POTA ) ;
34578: LD_STRING ACH_POTA
34580: PPUSH
34581: CALL_OW 543
// exit ;
34585: GO 34588
// end ; enable ;
34587: ENABLE
// end ;
34588: END
// export function SA_KhattamKilledBeforeBetray ; begin
34589: LD_INT 0
34591: PPUSH
// SetAchievement ( ACH_MGT ) ;
34592: LD_STRING ACH_MGT
34594: PPUSH
34595: CALL_OW 543
// end ; end_of_file
34599: LD_VAR 0 1
34603: RET
// export function SA_EndMission ( campaignNumber , missionNumber , medal1 , medal2 , medal3 ) ; var achiv ; begin
34604: LD_INT 0
34606: PPUSH
34607: PPUSH
// if not missionNumber then
34608: LD_VAR 0 2
34612: NOT
34613: IFFALSE 34617
// exit ;
34615: GO 34747
// achiv := false ;
34617: LD_ADDR_VAR 0 7
34621: PUSH
34622: LD_INT 0
34624: ST_TO_ADDR
// case campaignNumber of 1 :
34625: LD_VAR 0 1
34629: PUSH
34630: LD_INT 1
34632: DOUBLE
34633: EQUAL
34634: IFTRUE 34638
34636: GO 34649
34638: POP
// achiv := ACH_GOTA ; 2 :
34639: LD_ADDR_VAR 0 7
34643: PUSH
34644: LD_STRING ACH_GOTA
34646: ST_TO_ADDR
34647: GO 34699
34649: LD_INT 2
34651: DOUBLE
34652: EQUAL
34653: IFTRUE 34657
34655: GO 34660
34657: POP
// ; 3 :
34658: GO 34699
34660: LD_INT 3
34662: DOUBLE
34663: EQUAL
34664: IFTRUE 34668
34666: GO 34679
34668: POP
// achiv := ACH_MOTSU ; 4 :
34669: LD_ADDR_VAR 0 7
34673: PUSH
34674: LD_STRING ACH_MOTSU
34676: ST_TO_ADDR
34677: GO 34699
34679: LD_INT 4
34681: DOUBLE
34682: EQUAL
34683: IFTRUE 34687
34685: GO 34698
34687: POP
// achiv := ACH_LOP ; end ;
34688: LD_ADDR_VAR 0 7
34692: PUSH
34693: LD_STRING ACH_LOP
34695: ST_TO_ADDR
34696: GO 34699
34698: POP
// if Difficulty = 3 and achiv and medal1 and medal2 and medal3 then
34699: LD_OWVAR 67
34703: PUSH
34704: LD_INT 3
34706: EQUAL
34707: PUSH
34708: LD_VAR 0 7
34712: AND
34713: PUSH
34714: LD_VAR 0 3
34718: AND
34719: PUSH
34720: LD_VAR 0 4
34724: AND
34725: PUSH
34726: LD_VAR 0 5
34730: AND
34731: IFFALSE 34747
// SetAchievementEX ( achiv , missionNumber ) ;
34733: LD_VAR 0 7
34737: PPUSH
34738: LD_VAR 0 2
34742: PPUSH
34743: CALL_OW 564
// end ;
34747: LD_VAR 0 6
34751: RET
// export function SA_BehemothConstructed ; begin
34752: LD_INT 0
34754: PPUSH
// SetAchievement ( ACH_SMC ) ;
34755: LD_STRING ACH_SMC
34757: PPUSH
34758: CALL_OW 543
// end ;
34762: LD_VAR 0 1
34766: RET
// on CustomCommand ( p1 , p2 , p3 , p4 , p5 , p6 ) do begin case p2 of 1 :
34767: LD_VAR 0 2
34771: PUSH
34772: LD_INT 1
34774: DOUBLE
34775: EQUAL
34776: IFTRUE 34780
34778: GO 34787
34780: POP
// HackUnlimitedResources ; 2 :
34781: CALL 34971 0 0
34785: GO 34968
34787: LD_INT 2
34789: DOUBLE
34790: EQUAL
34791: IFTRUE 34795
34793: GO 34802
34795: POP
// HackSetLevel10 ; 3 :
34796: CALL 35104 0 0
34800: GO 34968
34802: LD_INT 3
34804: DOUBLE
34805: EQUAL
34806: IFTRUE 34810
34808: GO 34817
34810: POP
// HackSetLevel10YourUnits ; 4 :
34811: CALL 35189 0 0
34815: GO 34968
34817: LD_INT 4
34819: DOUBLE
34820: EQUAL
34821: IFTRUE 34825
34823: GO 34847
34825: POP
// HackSpawnHuman ( p3 , p4 , p5 ) ; 5 :
34826: LD_VAR 0 3
34830: PPUSH
34831: LD_VAR 0 4
34835: PPUSH
34836: LD_VAR 0 5
34840: PPUSH
34841: CALL 35279 0 3
34845: GO 34968
34847: LD_INT 5
34849: DOUBLE
34850: EQUAL
34851: IFTRUE 34855
34853: GO 34862
34855: POP
// HackSpawnVehicle ; 6 :
34856: CALL 35340 0 0
34860: GO 34968
34862: LD_INT 6
34864: DOUBLE
34865: EQUAL
34866: IFTRUE 34870
34868: GO 34877
34870: POP
// HackInvincible ; 7 :
34871: CALL 35886 0 0
34875: GO 34968
34877: LD_INT 7
34879: DOUBLE
34880: EQUAL
34881: IFTRUE 34885
34883: GO 34892
34885: POP
// HackInvisible ; 8 :
34886: CALL 35997 0 0
34890: GO 34968
34892: LD_INT 8
34894: DOUBLE
34895: EQUAL
34896: IFTRUE 34900
34898: GO 34907
34900: POP
// HackChangeYourSide ; 9 :
34901: CALL 36054 0 0
34905: GO 34968
34907: LD_INT 9
34909: DOUBLE
34910: EQUAL
34911: IFTRUE 34915
34913: GO 34922
34915: POP
// HackChangeUnitSide ; 10 :
34916: CALL 36096 0 0
34920: GO 34968
34922: LD_INT 10
34924: DOUBLE
34925: EQUAL
34926: IFTRUE 34930
34928: GO 34937
34930: POP
// HackFog ; 11 :
34931: CALL 36197 0 0
34935: GO 34968
34937: LD_INT 11
34939: DOUBLE
34940: EQUAL
34941: IFTRUE 34945
34943: GO 34952
34945: POP
// HackApeman ; 12 :
34946: CALL 36212 0 0
34950: GO 34968
34952: LD_INT 12
34954: DOUBLE
34955: EQUAL
34956: IFTRUE 34960
34958: GO 34967
34960: POP
// HackBoom ; end ;
34961: CALL 36297 0 0
34965: GO 34968
34967: POP
// end ;
34968: PPOPN 6
34970: END
// export function HackUnlimitedResources ; var i , j , tmp ; begin
34971: LD_INT 0
34973: PPUSH
34974: PPUSH
34975: PPUSH
34976: PPUSH
// tmp := FilterAllUnits ( [ [ f_side , your_side ] , [ f_or , [ f_btype , b_depot ] , [ f_btype , b_warehouse ] ] ] ) ;
34977: LD_ADDR_VAR 0 4
34981: PUSH
34982: LD_INT 22
34984: PUSH
34985: LD_OWVAR 2
34989: PUSH
34990: EMPTY
34991: LIST
34992: LIST
34993: PUSH
34994: LD_INT 2
34996: PUSH
34997: LD_INT 30
34999: PUSH
35000: LD_INT 0
35002: PUSH
35003: EMPTY
35004: LIST
35005: LIST
35006: PUSH
35007: LD_INT 30
35009: PUSH
35010: LD_INT 1
35012: PUSH
35013: EMPTY
35014: LIST
35015: LIST
35016: PUSH
35017: EMPTY
35018: LIST
35019: LIST
35020: LIST
35021: PUSH
35022: EMPTY
35023: LIST
35024: LIST
35025: PPUSH
35026: CALL_OW 69
35030: ST_TO_ADDR
// if not tmp then
35031: LD_VAR 0 4
35035: NOT
35036: IFFALSE 35040
// exit ;
35038: GO 35099
// for i in tmp do
35040: LD_ADDR_VAR 0 2
35044: PUSH
35045: LD_VAR 0 4
35049: PUSH
35050: FOR_IN
35051: IFFALSE 35097
// for j = 1 to 3 do
35053: LD_ADDR_VAR 0 3
35057: PUSH
35058: DOUBLE
35059: LD_INT 1
35061: DEC
35062: ST_TO_ADDR
35063: LD_INT 3
35065: PUSH
35066: FOR_TO
35067: IFFALSE 35093
// SetResourceType ( GetBase ( i ) , j , 99999 ) ;
35069: LD_VAR 0 2
35073: PPUSH
35074: CALL_OW 274
35078: PPUSH
35079: LD_VAR 0 3
35083: PPUSH
35084: LD_INT 99999
35086: PPUSH
35087: CALL_OW 277
35091: GO 35066
35093: POP
35094: POP
35095: GO 35050
35097: POP
35098: POP
// end ;
35099: LD_VAR 0 1
35103: RET
// export function HackSetLevel10 ; var i , j ; begin
35104: LD_INT 0
35106: PPUSH
35107: PPUSH
35108: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
35109: LD_ADDR_VAR 0 2
35113: PUSH
35114: LD_INT 21
35116: PUSH
35117: LD_INT 1
35119: PUSH
35120: EMPTY
35121: LIST
35122: LIST
35123: PPUSH
35124: CALL_OW 69
35128: PUSH
35129: FOR_IN
35130: IFFALSE 35182
// if IsSelected ( i ) then
35132: LD_VAR 0 2
35136: PPUSH
35137: CALL_OW 306
35141: IFFALSE 35180
// begin for j := 1 to 4 do
35143: LD_ADDR_VAR 0 3
35147: PUSH
35148: DOUBLE
35149: LD_INT 1
35151: DEC
35152: ST_TO_ADDR
35153: LD_INT 4
35155: PUSH
35156: FOR_TO
35157: IFFALSE 35178
// SetSkill ( i , j , 10 ) ;
35159: LD_VAR 0 2
35163: PPUSH
35164: LD_VAR 0 3
35168: PPUSH
35169: LD_INT 10
35171: PPUSH
35172: CALL_OW 237
35176: GO 35156
35178: POP
35179: POP
// end ;
35180: GO 35129
35182: POP
35183: POP
// end ;
35184: LD_VAR 0 1
35188: RET
// export function HackSetLevel10YourUnits ; var i , j ; begin
35189: LD_INT 0
35191: PPUSH
35192: PPUSH
35193: PPUSH
// for i in FilterAllUnits ( [ [ f_side , your_side ] , [ f_type , unit_human ] ] ) do
35194: LD_ADDR_VAR 0 2
35198: PUSH
35199: LD_INT 22
35201: PUSH
35202: LD_OWVAR 2
35206: PUSH
35207: EMPTY
35208: LIST
35209: LIST
35210: PUSH
35211: LD_INT 21
35213: PUSH
35214: LD_INT 1
35216: PUSH
35217: EMPTY
35218: LIST
35219: LIST
35220: PUSH
35221: EMPTY
35222: LIST
35223: LIST
35224: PPUSH
35225: CALL_OW 69
35229: PUSH
35230: FOR_IN
35231: IFFALSE 35272
// begin for j := 1 to 4 do
35233: LD_ADDR_VAR 0 3
35237: PUSH
35238: DOUBLE
35239: LD_INT 1
35241: DEC
35242: ST_TO_ADDR
35243: LD_INT 4
35245: PUSH
35246: FOR_TO
35247: IFFALSE 35268
// SetSkill ( i , j , 10 ) ;
35249: LD_VAR 0 2
35253: PPUSH
35254: LD_VAR 0 3
35258: PPUSH
35259: LD_INT 10
35261: PPUSH
35262: CALL_OW 237
35266: GO 35246
35268: POP
35269: POP
// end ;
35270: GO 35230
35272: POP
35273: POP
// end ;
35274: LD_VAR 0 1
35278: RET
// export function HackSpawnHuman ( nation , class , skill ) ; begin
35279: LD_INT 0
35281: PPUSH
// uc_side := your_side ;
35282: LD_ADDR_OWVAR 20
35286: PUSH
35287: LD_OWVAR 2
35291: ST_TO_ADDR
// uc_nation := nation ;
35292: LD_ADDR_OWVAR 21
35296: PUSH
35297: LD_VAR 0 1
35301: ST_TO_ADDR
// InitHc ;
35302: CALL_OW 19
// PrepareHuman ( false , class , skill ) ;
35306: LD_INT 0
35308: PPUSH
35309: LD_VAR 0 2
35313: PPUSH
35314: LD_VAR 0 3
35318: PPUSH
35319: CALL_OW 380
// PlaceUnitAnywhere ( CreateHuman , true ) ;
35323: CALL_OW 44
35327: PPUSH
35328: LD_INT 1
35330: PPUSH
35331: CALL_OW 51
// end ;
35335: LD_VAR 0 4
35339: RET
// export function HackSpawnVehicle ; begin
35340: LD_INT 0
35342: PPUSH
// uc_side := your_side ;
35343: LD_ADDR_OWVAR 20
35347: PUSH
35348: LD_OWVAR 2
35352: ST_TO_ADDR
// uc_nation := rand ( 1 , 3 ) ;
35353: LD_ADDR_OWVAR 21
35357: PUSH
35358: LD_INT 1
35360: PPUSH
35361: LD_INT 3
35363: PPUSH
35364: CALL_OW 12
35368: ST_TO_ADDR
// InitVc ;
35369: CALL_OW 20
// case uc_nation of 1 :
35373: LD_OWVAR 21
35377: PUSH
35378: LD_INT 1
35380: DOUBLE
35381: EQUAL
35382: IFTRUE 35386
35384: GO 35530
35386: POP
// begin vc_chassis := [ us_light_wheeled , us_medium_wheeled , us_medium_tracked , us_heavy_tracked , us_morphling ] [ rand ( 1 , 5 ) ] ;
35387: LD_ADDR_OWVAR 37
35391: PUSH
35392: LD_INT 1
35394: PUSH
35395: LD_INT 2
35397: PUSH
35398: LD_INT 3
35400: PUSH
35401: LD_INT 4
35403: PUSH
35404: LD_INT 5
35406: PUSH
35407: EMPTY
35408: LIST
35409: LIST
35410: LIST
35411: LIST
35412: LIST
35413: PUSH
35414: LD_INT 1
35416: PPUSH
35417: LD_INT 5
35419: PPUSH
35420: CALL_OW 12
35424: ARRAY
35425: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
35426: LD_ADDR_OWVAR 39
35430: PUSH
35431: LD_INT 1
35433: PPUSH
35434: LD_INT 3
35436: PPUSH
35437: CALL_OW 12
35441: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_computer ] [ rand ( 1 , 3 ) ] ;
35442: LD_ADDR_OWVAR 38
35446: PUSH
35447: LD_INT 1
35449: PUSH
35450: LD_INT 2
35452: PUSH
35453: LD_INT 3
35455: PUSH
35456: EMPTY
35457: LIST
35458: LIST
35459: LIST
35460: PUSH
35461: LD_INT 1
35463: PPUSH
35464: LD_INT 3
35466: PPUSH
35467: CALL_OW 12
35471: ARRAY
35472: ST_TO_ADDR
// vc_weapon := [ us_machine_gun , us_gatling_gun , us_double_gun , us_light_gun , us_rocket_launcher , us_siberium_rocket , us_laser , us_double_laser , us_heavy_gun ] [ rand ( 1 , 9 ) ] ;
35473: LD_ADDR_OWVAR 40
35477: PUSH
35478: LD_INT 2
35480: PUSH
35481: LD_INT 4
35483: PUSH
35484: LD_INT 5
35486: PUSH
35487: LD_INT 3
35489: PUSH
35490: LD_INT 7
35492: PUSH
35493: LD_INT 8
35495: PUSH
35496: LD_INT 9
35498: PUSH
35499: LD_INT 10
35501: PUSH
35502: LD_INT 6
35504: PUSH
35505: EMPTY
35506: LIST
35507: LIST
35508: LIST
35509: LIST
35510: LIST
35511: LIST
35512: LIST
35513: LIST
35514: LIST
35515: PUSH
35516: LD_INT 1
35518: PPUSH
35519: LD_INT 9
35521: PPUSH
35522: CALL_OW 12
35526: ARRAY
35527: ST_TO_ADDR
// end ; 2 :
35528: GO 35795
35530: LD_INT 2
35532: DOUBLE
35533: EQUAL
35534: IFTRUE 35538
35536: GO 35662
35538: POP
// begin vc_chassis := [ ar_hovercraft , ar_light_trike , ar_medium_trike , ar_half_tracked ] [ rand ( 1 , 4 ) ] ;
35539: LD_ADDR_OWVAR 37
35543: PUSH
35544: LD_INT 11
35546: PUSH
35547: LD_INT 12
35549: PUSH
35550: LD_INT 13
35552: PUSH
35553: LD_INT 14
35555: PUSH
35556: EMPTY
35557: LIST
35558: LIST
35559: LIST
35560: LIST
35561: PUSH
35562: LD_INT 1
35564: PPUSH
35565: LD_INT 4
35567: PPUSH
35568: CALL_OW 12
35572: ARRAY
35573: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
35574: LD_ADDR_OWVAR 39
35578: PUSH
35579: LD_INT 1
35581: PPUSH
35582: LD_INT 3
35584: PPUSH
35585: CALL_OW 12
35589: ST_TO_ADDR
// vc_control := [ control_manual , control_remote , control_apeman ] [ rand ( 1 , 3 ) ] ;
35590: LD_ADDR_OWVAR 38
35594: PUSH
35595: LD_INT 1
35597: PUSH
35598: LD_INT 2
35600: PUSH
35601: LD_INT 5
35603: PUSH
35604: EMPTY
35605: LIST
35606: LIST
35607: LIST
35608: PUSH
35609: LD_INT 1
35611: PPUSH
35612: LD_INT 3
35614: PPUSH
35615: CALL_OW 12
35619: ARRAY
35620: ST_TO_ADDR
// vc_weapon := [ ar_double_machine_gun , ar_flame_thrower , ar_gun , ar_rocket_launcher , ar_selfpropelled_bomb ] [ rand ( 1 , 5 ) ] ;
35621: LD_ADDR_OWVAR 40
35625: PUSH
35626: LD_INT 24
35628: PUSH
35629: LD_INT 26
35631: PUSH
35632: LD_INT 27
35634: PUSH
35635: LD_INT 28
35637: PUSH
35638: LD_INT 29
35640: PUSH
35641: EMPTY
35642: LIST
35643: LIST
35644: LIST
35645: LIST
35646: LIST
35647: PUSH
35648: LD_INT 1
35650: PPUSH
35651: LD_INT 5
35653: PPUSH
35654: CALL_OW 12
35658: ARRAY
35659: ST_TO_ADDR
// end ; 3 :
35660: GO 35795
35662: LD_INT 3
35664: DOUBLE
35665: EQUAL
35666: IFTRUE 35670
35668: GO 35794
35670: POP
// begin vc_chassis := [ ru_medium_wheeled , ru_heavy_wheeled , ru_medium_tracked , ru_heavy_tracked ] [ rand ( 1 , 4 ) ] ;
35671: LD_ADDR_OWVAR 37
35675: PUSH
35676: LD_INT 21
35678: PUSH
35679: LD_INT 23
35681: PUSH
35682: LD_INT 22
35684: PUSH
35685: LD_INT 24
35687: PUSH
35688: EMPTY
35689: LIST
35690: LIST
35691: LIST
35692: LIST
35693: PUSH
35694: LD_INT 1
35696: PPUSH
35697: LD_INT 4
35699: PPUSH
35700: CALL_OW 12
35704: ARRAY
35705: ST_TO_ADDR
// vc_engine := rand ( 1 , 3 ) ;
35706: LD_ADDR_OWVAR 39
35710: PUSH
35711: LD_INT 1
35713: PPUSH
35714: LD_INT 3
35716: PPUSH
35717: CALL_OW 12
35721: ST_TO_ADDR
// vc_control := [ control_manual , control_computer ] [ rand ( 1 , 2 ) ] ;
35722: LD_ADDR_OWVAR 38
35726: PUSH
35727: LD_INT 1
35729: PUSH
35730: LD_INT 3
35732: PUSH
35733: EMPTY
35734: LIST
35735: LIST
35736: PUSH
35737: LD_INT 1
35739: PPUSH
35740: LD_INT 2
35742: PPUSH
35743: CALL_OW 12
35747: ARRAY
35748: ST_TO_ADDR
// vc_weapon := [ ru_heavy_machine_gun , ru_gatling_gun , ru_gun , ru_heavy_gun , ru_siberium_rocket , ru_rocket ] [ rand ( 1 , 6 ) ] ;
35749: LD_ADDR_OWVAR 40
35753: PUSH
35754: LD_INT 42
35756: PUSH
35757: LD_INT 43
35759: PUSH
35760: LD_INT 44
35762: PUSH
35763: LD_INT 46
35765: PUSH
35766: LD_INT 48
35768: PUSH
35769: LD_INT 47
35771: PUSH
35772: EMPTY
35773: LIST
35774: LIST
35775: LIST
35776: LIST
35777: LIST
35778: LIST
35779: PUSH
35780: LD_INT 1
35782: PPUSH
35783: LD_INT 6
35785: PPUSH
35786: CALL_OW 12
35790: ARRAY
35791: ST_TO_ADDR
// end ; end ;
35792: GO 35795
35794: POP
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
35795: CALL_OW 45
35799: PPUSH
35800: LD_INT 1
35802: PPUSH
35803: CALL_OW 51
// end ;
35807: LD_VAR 0 1
35811: RET
// export invincible ; every 1 do
35812: GO 35814
35814: DISABLE
// invincible := [ ] ;
35815: LD_ADDR_EXP 88
35819: PUSH
35820: EMPTY
35821: ST_TO_ADDR
35822: END
// every 10 do var i ;
35823: GO 35825
35825: DISABLE
35826: LD_INT 0
35828: PPUSH
// begin enable ;
35829: ENABLE
// if not invincible then
35830: LD_EXP 88
35834: NOT
35835: IFFALSE 35839
// exit ;
35837: GO 35883
// for i in invincible do
35839: LD_ADDR_VAR 0 1
35843: PUSH
35844: LD_EXP 88
35848: PUSH
35849: FOR_IN
35850: IFFALSE 35881
// if GetLives ( i ) < 1000 then
35852: LD_VAR 0 1
35856: PPUSH
35857: CALL_OW 256
35861: PUSH
35862: LD_INT 1000
35864: LESS
35865: IFFALSE 35879
// SetLives ( i , 1000 ) ;
35867: LD_VAR 0 1
35871: PPUSH
35872: LD_INT 1000
35874: PPUSH
35875: CALL_OW 234
35879: GO 35849
35881: POP
35882: POP
// end ;
35883: PPOPN 1
35885: END
// export function HackInvincible ; var i ; begin
35886: LD_INT 0
35888: PPUSH
35889: PPUSH
// for i in FilterAllUnits ( [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ) do
35890: LD_ADDR_VAR 0 2
35894: PUSH
35895: LD_INT 2
35897: PUSH
35898: LD_INT 21
35900: PUSH
35901: LD_INT 1
35903: PUSH
35904: EMPTY
35905: LIST
35906: LIST
35907: PUSH
35908: LD_INT 21
35910: PUSH
35911: LD_INT 2
35913: PUSH
35914: EMPTY
35915: LIST
35916: LIST
35917: PUSH
35918: EMPTY
35919: LIST
35920: LIST
35921: LIST
35922: PPUSH
35923: CALL_OW 69
35927: PUSH
35928: FOR_IN
35929: IFFALSE 35990
// if IsSelected ( i ) then
35931: LD_VAR 0 2
35935: PPUSH
35936: CALL_OW 306
35940: IFFALSE 35988
// begin if i in invincible then
35942: LD_VAR 0 2
35946: PUSH
35947: LD_EXP 88
35951: IN
35952: IFFALSE 35972
// invincible := invincible diff i else
35954: LD_ADDR_EXP 88
35958: PUSH
35959: LD_EXP 88
35963: PUSH
35964: LD_VAR 0 2
35968: DIFF
35969: ST_TO_ADDR
35970: GO 35988
// invincible := invincible union i ;
35972: LD_ADDR_EXP 88
35976: PUSH
35977: LD_EXP 88
35981: PUSH
35982: LD_VAR 0 2
35986: UNION
35987: ST_TO_ADDR
// end ;
35988: GO 35928
35990: POP
35991: POP
// end ;
35992: LD_VAR 0 1
35996: RET
// export function HackInvisible ; var i , j ; begin
35997: LD_INT 0
35999: PPUSH
36000: PPUSH
36001: PPUSH
// for i in FilterAllUnits ( [ f_type , unit_human ] ) do
36002: LD_ADDR_VAR 0 2
36006: PUSH
36007: LD_INT 21
36009: PUSH
36010: LD_INT 1
36012: PUSH
36013: EMPTY
36014: LIST
36015: LIST
36016: PPUSH
36017: CALL_OW 69
36021: PUSH
36022: FOR_IN
36023: IFFALSE 36047
// if IsSelected ( i ) then
36025: LD_VAR 0 2
36029: PPUSH
36030: CALL_OW 306
36034: IFFALSE 36045
// begin ComForceInvisible ( i ) ;
36036: LD_VAR 0 2
36040: PPUSH
36041: CALL_OW 496
// end ;
36045: GO 36022
36047: POP
36048: POP
// end ;
36049: LD_VAR 0 1
36053: RET
// export function HackChangeYourSide ; begin
36054: LD_INT 0
36056: PPUSH
// if your_side = 8 then
36057: LD_OWVAR 2
36061: PUSH
36062: LD_INT 8
36064: EQUAL
36065: IFFALSE 36077
// your_side := 0 else
36067: LD_ADDR_OWVAR 2
36071: PUSH
36072: LD_INT 0
36074: ST_TO_ADDR
36075: GO 36091
// your_side := your_side + 1 ;
36077: LD_ADDR_OWVAR 2
36081: PUSH
36082: LD_OWVAR 2
36086: PUSH
36087: LD_INT 1
36089: PLUS
36090: ST_TO_ADDR
// end ;
36091: LD_VAR 0 1
36095: RET
// export function HackChangeUnitSide ; var i , j ; begin
36096: LD_INT 0
36098: PPUSH
36099: PPUSH
36100: PPUSH
// for i in all_units do
36101: LD_ADDR_VAR 0 2
36105: PUSH
36106: LD_OWVAR 3
36110: PUSH
36111: FOR_IN
36112: IFFALSE 36190
// if IsSelected ( i ) then
36114: LD_VAR 0 2
36118: PPUSH
36119: CALL_OW 306
36123: IFFALSE 36188
// begin j := GetSide ( i ) ;
36125: LD_ADDR_VAR 0 3
36129: PUSH
36130: LD_VAR 0 2
36134: PPUSH
36135: CALL_OW 255
36139: ST_TO_ADDR
// if j = 8 then
36140: LD_VAR 0 3
36144: PUSH
36145: LD_INT 8
36147: EQUAL
36148: IFFALSE 36160
// j := 0 else
36150: LD_ADDR_VAR 0 3
36154: PUSH
36155: LD_INT 0
36157: ST_TO_ADDR
36158: GO 36174
// j := j + 1 ;
36160: LD_ADDR_VAR 0 3
36164: PUSH
36165: LD_VAR 0 3
36169: PUSH
36170: LD_INT 1
36172: PLUS
36173: ST_TO_ADDR
// SetSide ( i , j ) ;
36174: LD_VAR 0 2
36178: PPUSH
36179: LD_VAR 0 3
36183: PPUSH
36184: CALL_OW 235
// end ;
36188: GO 36111
36190: POP
36191: POP
// end ;
36192: LD_VAR 0 1
36196: RET
// export function HackFog ; begin
36197: LD_INT 0
36199: PPUSH
// FogOff ( true ) ;
36200: LD_INT 1
36202: PPUSH
36203: CALL_OW 344
// end ;
36207: LD_VAR 0 1
36211: RET
// export function HackApeman ; begin
36212: LD_INT 0
36214: PPUSH
// uc_side := your_side ;
36215: LD_ADDR_OWVAR 20
36219: PUSH
36220: LD_OWVAR 2
36224: ST_TO_ADDR
// uc_nation := 0 ;
36225: LD_ADDR_OWVAR 21
36229: PUSH
36230: LD_INT 0
36232: ST_TO_ADDR
// hc_name :=  ;
36233: LD_ADDR_OWVAR 26
36237: PUSH
36238: LD_STRING 
36240: ST_TO_ADDR
// hc_gallery :=  ;
36241: LD_ADDR_OWVAR 33
36245: PUSH
36246: LD_STRING 
36248: ST_TO_ADDR
// hc_skills := [ 0 , 0 , 0 , 0 ] ;
36249: LD_ADDR_OWVAR 31
36253: PUSH
36254: LD_INT 0
36256: PUSH
36257: LD_INT 0
36259: PUSH
36260: LD_INT 0
36262: PUSH
36263: LD_INT 0
36265: PUSH
36266: EMPTY
36267: LIST
36268: LIST
36269: LIST
36270: LIST
36271: ST_TO_ADDR
// hc_class := class_apeman ;
36272: LD_ADDR_OWVAR 28
36276: PUSH
36277: LD_INT 12
36279: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateHuman , true ) ;
36280: CALL_OW 44
36284: PPUSH
36285: LD_INT 1
36287: PPUSH
36288: CALL_OW 51
// end ;
36292: LD_VAR 0 1
36296: RET
// export function HackBoom ; begin
36297: LD_INT 0
36299: PPUSH
// uc_side := your_side ;
36300: LD_ADDR_OWVAR 20
36304: PUSH
36305: LD_OWVAR 2
36309: ST_TO_ADDR
// uc_nation := 1 ;
36310: LD_ADDR_OWVAR 21
36314: PUSH
36315: LD_INT 1
36317: ST_TO_ADDR
// vc_chassis := us_morphling ;
36318: LD_ADDR_OWVAR 37
36322: PUSH
36323: LD_INT 5
36325: ST_TO_ADDR
// vc_engine := engine_siberite ;
36326: LD_ADDR_OWVAR 39
36330: PUSH
36331: LD_INT 3
36333: ST_TO_ADDR
// vc_control := control_computer ;
36334: LD_ADDR_OWVAR 38
36338: PUSH
36339: LD_INT 3
36341: ST_TO_ADDR
// vc_weapon := us_siberium_rocket ;
36342: LD_ADDR_OWVAR 40
36346: PUSH
36347: LD_INT 8
36349: ST_TO_ADDR
// PlaceUnitAnywhere ( CreateVehicle , true ) ;
36350: CALL_OW 45
36354: PPUSH
36355: LD_INT 1
36357: PPUSH
36358: CALL_OW 51
// end ;
36362: LD_VAR 0 1
36366: RET
