// export You , You2 , Amici ; starting begin RandomizeAll ;
   0: CALL_OW 11
// nastav_obtiznosti ;
   4: CALL 7498 0 0
// You = 2 ;
   8: LD_ADDR_EXP 1
  12: PUSH
  13: LD_INT 2
  15: ST_TO_ADDR
// You2 = 8 ;
  16: LD_ADDR_EXP 2
  20: PUSH
  21: LD_INT 8
  23: ST_TO_ADDR
// Amici = 1 ;
  24: LD_ADDR_EXP 3
  28: PUSH
  29: LD_INT 1
  31: ST_TO_ADDR
// zakladna_dobyta = false ;
  32: LD_ADDR_EXP 21
  36: PUSH
  37: LD_INT 0
  39: ST_TO_ADDR
// create_araby ;
  40: CALL 154 0 0
// uprav_amiky_enter ;
  44: CALL 886 0 0
// create_attack1 ;
  48: CALL 1101 0 0
// create_attack2 ;
  52: CALL 1754 0 0
// create_attack3 ;
  56: CALL 1232 0 0
// InGameOn ;
  60: CALL_OW 8
// CenterOnXY ( 95 , 16 ) ;
  64: LD_INT 95
  66: PPUSH
  67: LD_INT 16
  69: PPUSH
  70: CALL_OW 84
// end ;
  74: END
// on UnitDestroyed ( un ) do begin if un = Heike then
  75: LD_VAR 0 1
  79: PUSH
  80: LD_EXP 12
  84: EQUAL
  85: IFFALSE 94
// YouLost ( Heike ) ;
  87: LD_STRING Heike
  89: PPUSH
  90: CALL_OW 104
// if un = Avi then
  94: LD_VAR 0 1
  98: PUSH
  99: LD_EXP 11
 103: EQUAL
 104: IFFALSE 113
// YouLost ( Aviradze ) ;
 106: LD_STRING Aviradze
 108: PPUSH
 109: CALL_OW 104
// enable ;
 113: ENABLE
// end ; end_of_file
 114: PPOPN 1
 116: END
// export CREATE_ATTACK1_LIST ; export CREATE_ATTACK2_LIST ; export CREATE_ATTACK3_LIST1 ; export CREATE_ATTACK3_LIST2 ; export CREATE_ATTACK3_LIST3 ; export CREATE_ATTACK4_LIST ; export PODPORA_U4 ; var ah , av ; function prepare_human ( sex , clas , level , name ) ; begin
 117: LD_INT 0
 119: PPUSH
// PrepareHuman ( sex , clas , level ) ;
 120: LD_VAR 0 1
 124: PPUSH
 125: LD_VAR 0 2
 129: PPUSH
 130: LD_VAR 0 3
 134: PPUSH
 135: CALL_OW 380
// hc_name := name ;
 139: LD_ADDR_OWVAR 26
 143: PUSH
 144: LD_VAR 0 4
 148: ST_TO_ADDR
// end ;
 149: LD_VAR 0 5
 153: RET
// export function create_araby ; begin
 154: LD_INT 0
 156: PPUSH
// InitUc ;
 157: CALL_OW 18
// InitHc ;
 161: CALL_OW 19
// InitVc ;
 165: CALL_OW 20
// uc_side := You ;
 169: LD_ADDR_OWVAR 20
 173: PUSH
 174: LD_EXP 1
 178: ST_TO_ADDR
// uc_nation := nation_arabian ;
 179: LD_ADDR_OWVAR 21
 183: PUSH
 184: LD_INT 2
 186: ST_TO_ADDR
// uc_direction := 4 ;
 187: LD_ADDR_OWVAR 24
 191: PUSH
 192: LD_INT 4
 194: ST_TO_ADDR
// prepare_human ( sex_female , class_soldier , 2 , Heike Steiner ) ;
 195: LD_INT 2
 197: PPUSH
 198: LD_INT 1
 200: PPUSH
 201: LD_INT 2
 203: PPUSH
 204: LD_STRING Heike Steiner
 206: PPUSH
 207: CALL 117 0 4
// ah = CreateHuman ;
 211: LD_ADDR_LOC 1
 215: PUSH
 216: CALL_OW 44
 220: ST_TO_ADDR
// Heike = ah ;
 221: LD_ADDR_EXP 12
 225: PUSH
 226: LD_LOC 1
 230: ST_TO_ADDR
// PlaceUnitArea ( ah , Enter , false ) ;
 231: LD_LOC 1
 235: PPUSH
 236: LD_INT 1
 238: PPUSH
 239: LD_INT 0
 241: PPUSH
 242: CALL_OW 49
// prepare_human ( sex_female , class_scientistic , 2 , Sonya ??? ) ;
 246: LD_INT 2
 248: PPUSH
 249: LD_INT 4
 251: PPUSH
 252: LD_INT 2
 254: PPUSH
 255: LD_STRING Sonya ???
 257: PPUSH
 258: CALL 117 0 4
// ah = CreateHuman ;
 262: LD_ADDR_LOC 1
 266: PUSH
 267: CALL_OW 44
 271: ST_TO_ADDR
// Sonya = ah ;
 272: LD_ADDR_EXP 15
 276: PUSH
 277: LD_LOC 1
 281: ST_TO_ADDR
// PlaceUnitArea ( ah , Enter , false ) ;
 282: LD_LOC 1
 286: PPUSH
 287: LD_INT 1
 289: PPUSH
 290: LD_INT 0
 292: PPUSH
 293: CALL_OW 49
// prepare_human ( sex_male , class_soldier , 2 , Oswald ??? ) ;
 297: LD_INT 1
 299: PPUSH
 300: LD_INT 1
 302: PPUSH
 303: LD_INT 2
 305: PPUSH
 306: LD_STRING Oswald ???
 308: PPUSH
 309: CALL 117 0 4
// ah = CreateHuman ;
 313: LD_ADDR_LOC 1
 317: PUSH
 318: CALL_OW 44
 322: ST_TO_ADDR
// Oswald = ah ;
 323: LD_ADDR_EXP 13
 327: PUSH
 328: LD_LOC 1
 332: ST_TO_ADDR
// PlaceUnitArea ( ah , Enter , false ) ;
 333: LD_LOC 1
 337: PPUSH
 338: LD_INT 1
 340: PPUSH
 341: LD_INT 0
 343: PPUSH
 344: CALL_OW 49
// prepare_human ( sex_male , class_scientistic , 2 , Aviradze ) ;
 348: LD_INT 1
 350: PPUSH
 351: LD_INT 4
 353: PPUSH
 354: LD_INT 2
 356: PPUSH
 357: LD_STRING Aviradze
 359: PPUSH
 360: CALL 117 0 4
// ah = CreateHuman ;
 364: LD_ADDR_LOC 1
 368: PUSH
 369: CALL_OW 44
 373: ST_TO_ADDR
// Avi = ah ;
 374: LD_ADDR_EXP 11
 378: PUSH
 379: LD_LOC 1
 383: ST_TO_ADDR
// PlaceUnitArea ( ah , Enter , false ) ;
 384: LD_LOC 1
 388: PPUSH
 389: LD_INT 1
 391: PPUSH
 392: LD_INT 0
 394: PPUSH
 395: CALL_OW 49
// prepare_human ( sex_male , class_soldier , 2 , Ralph ??? ) ;
 399: LD_INT 1
 401: PPUSH
 402: LD_INT 1
 404: PPUSH
 405: LD_INT 2
 407: PPUSH
 408: LD_STRING Ralph ???
 410: PPUSH
 411: CALL 117 0 4
// ah = CreateHuman ;
 415: LD_ADDR_LOC 1
 419: PUSH
 420: CALL_OW 44
 424: ST_TO_ADDR
// Ralph = ah ;
 425: LD_ADDR_EXP 14
 429: PUSH
 430: LD_LOC 1
 434: ST_TO_ADDR
// PlaceUnitArea ( ah , Enter , false ) ;
 435: LD_LOC 1
 439: PPUSH
 440: LD_INT 1
 442: PPUSH
 443: LD_INT 0
 445: PPUSH
 446: CALL_OW 49
// prepare_human ( sex_male , class_soldier , 2 , dalsi ) ;
 450: LD_INT 1
 452: PPUSH
 453: LD_INT 1
 455: PPUSH
 456: LD_INT 2
 458: PPUSH
 459: LD_STRING dalsi
 461: PPUSH
 462: CALL 117 0 4
// ah = CreateHuman ;
 466: LD_ADDR_LOC 1
 470: PUSH
 471: CALL_OW 44
 475: ST_TO_ADDR
// PlaceUnitArea ( ah , Enter , false ) ;
 476: LD_LOC 1
 480: PPUSH
 481: LD_INT 1
 483: PPUSH
 484: LD_INT 0
 486: PPUSH
 487: CALL_OW 49
// Ar_enter = [ Heike , Ralph , Oswald , Avi , ah , Sonya ] ;
 491: LD_ADDR_EXP 22
 495: PUSH
 496: LD_EXP 12
 500: PUSH
 501: LD_EXP 14
 505: PUSH
 506: LD_EXP 13
 510: PUSH
 511: LD_EXP 11
 515: PUSH
 516: LD_LOC 1
 520: PUSH
 521: LD_EXP 15
 525: PUSH
 526: EMPTY
 527: LIST
 528: LIST
 529: LIST
 530: LIST
 531: LIST
 532: LIST
 533: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , 2 , Robert Farmer ) ;
 534: LD_INT 1
 536: PPUSH
 537: LD_INT 1
 539: PPUSH
 540: LD_INT 2
 542: PPUSH
 543: LD_STRING Robert Farmer
 545: PPUSH
 546: CALL 117 0 4
// ah = CreateHuman ;
 550: LD_ADDR_LOC 1
 554: PUSH
 555: CALL_OW 44
 559: ST_TO_ADDR
// far = ah ;
 560: LD_ADDR_EXP 16
 564: PUSH
 565: LD_LOC 1
 569: ST_TO_ADDR
// vc_chassis := ar_medium_trike ;
 570: LD_ADDR_OWVAR 37
 574: PUSH
 575: LD_INT 13
 577: ST_TO_ADDR
// vc_control := control_manual ;
 578: LD_ADDR_OWVAR 38
 582: PUSH
 583: LD_INT 1
 585: ST_TO_ADDR
// vc_engine := engine_solar ;
 586: LD_ADDR_OWVAR 39
 590: PUSH
 591: LD_INT 2
 593: ST_TO_ADDR
// vc_weapon := ar_double_machine_gun ;
 594: LD_ADDR_OWVAR 40
 598: PUSH
 599: LD_INT 24
 601: ST_TO_ADDR
// av = CreateVehicle ;
 602: LD_ADDR_LOC 2
 606: PUSH
 607: CALL_OW 45
 611: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
 612: LD_LOC 1
 616: PPUSH
 617: LD_LOC 2
 621: PPUSH
 622: CALL_OW 52
// fauto = av ;
 626: LD_ADDR_EXP 23
 630: PUSH
 631: LD_LOC 2
 635: ST_TO_ADDR
// PlaceUnitXY ( av , 96 , 11 , false ) ;
 636: LD_LOC 2
 640: PPUSH
 641: LD_INT 96
 643: PPUSH
 644: LD_INT 11
 646: PPUSH
 647: LD_INT 0
 649: PPUSH
 650: CALL_OW 48
// end ;
 654: LD_VAR 0 1
 658: RET
// export function create_engineer ; var a ; begin
 659: LD_INT 0
 661: PPUSH
 662: PPUSH
// a = [ ] ;
 663: LD_ADDR_VAR 0 2
 667: PUSH
 668: EMPTY
 669: ST_TO_ADDR
// uc_side := You2 ;
 670: LD_ADDR_OWVAR 20
 674: PUSH
 675: LD_EXP 2
 679: ST_TO_ADDR
// uc_nation := nation_arabian ;
 680: LD_ADDR_OWVAR 21
 684: PUSH
 685: LD_INT 2
 687: ST_TO_ADDR
// uc_direction := 4 ;
 688: LD_ADDR_OWVAR 24
 692: PUSH
 693: LD_INT 4
 695: ST_TO_ADDR
// prepare_human ( sex_female , class_engineer , 2 , Else Mesigna ) ;
 696: LD_INT 2
 698: PPUSH
 699: LD_INT 2
 701: PPUSH
 702: LD_INT 2
 704: PPUSH
 705: LD_STRING Else Mesigna
 707: PPUSH
 708: CALL 117 0 4
// ah = CreateHuman ;
 712: LD_ADDR_LOC 1
 716: PUSH
 717: CALL_OW 44
 721: ST_TO_ADDR
// PlaceUnitArea ( ah , orange , false ) ;
 722: LD_LOC 1
 726: PPUSH
 727: LD_INT 18
 729: PPUSH
 730: LD_INT 0
 732: PPUSH
 733: CALL_OW 49
// a = a ^ ah ;
 737: LD_ADDR_VAR 0 2
 741: PUSH
 742: LD_VAR 0 2
 746: PUSH
 747: LD_LOC 1
 751: ADD
 752: ST_TO_ADDR
// prepare_human ( get_sex , class_engineer , 4 ,  ) ;
 753: CALL 2608 0 0
 757: PPUSH
 758: LD_INT 2
 760: PPUSH
 761: LD_INT 4
 763: PPUSH
 764: LD_STRING 
 766: PPUSH
 767: CALL 117 0 4
// ah = CreateHuman ;
 771: LD_ADDR_LOC 1
 775: PUSH
 776: CALL_OW 44
 780: ST_TO_ADDR
// PlaceUnitArea ( ah , orange , false ) ;
 781: LD_LOC 1
 785: PPUSH
 786: LD_INT 18
 788: PPUSH
 789: LD_INT 0
 791: PPUSH
 792: CALL_OW 49
// a = a ^ ah ;
 796: LD_ADDR_VAR 0 2
 800: PUSH
 801: LD_VAR 0 2
 805: PUSH
 806: LD_LOC 1
 810: ADD
 811: ST_TO_ADDR
// prepare_human ( get_sex , class_engineer , 4 ,  ) ;
 812: CALL 2608 0 0
 816: PPUSH
 817: LD_INT 2
 819: PPUSH
 820: LD_INT 4
 822: PPUSH
 823: LD_STRING 
 825: PPUSH
 826: CALL 117 0 4
// ah = CreateHuman ;
 830: LD_ADDR_LOC 1
 834: PUSH
 835: CALL_OW 44
 839: ST_TO_ADDR
// PlaceUnitArea ( ah , orange , false ) ;
 840: LD_LOC 1
 844: PPUSH
 845: LD_INT 18
 847: PPUSH
 848: LD_INT 0
 850: PPUSH
 851: CALL_OW 49
// a = a ^ ah ;
 855: LD_ADDR_VAR 0 2
 859: PUSH
 860: LD_VAR 0 2
 864: PUSH
 865: LD_LOC 1
 869: ADD
 870: ST_TO_ADDR
// result = a ;
 871: LD_ADDR_VAR 0 1
 875: PUSH
 876: LD_VAR 0 2
 880: ST_TO_ADDR
// end ;
 881: LD_VAR 0 1
 885: RET
// export function uprav_amiky_enter ; begin
 886: LD_INT 0
 888: PPUSH
// uc_side := Amici ;
 889: LD_ADDR_OWVAR 20
 893: PUSH
 894: LD_EXP 3
 898: ST_TO_ADDR
// if UTEKLI_VEDCI then
 899: LD_EXP 27
 903: IFFALSE 931
// begin uc_nation = nation_nature ;
 905: LD_ADDR_OWVAR 21
 909: PUSH
 910: LD_INT 0
 912: ST_TO_ADDR
// prepare_human ( sex_male , class_apeman_engineer , 1 , Opa ) ;
 913: LD_INT 1
 915: PPUSH
 916: LD_INT 16
 918: PPUSH
 919: LD_INT 1
 921: PPUSH
 922: LD_STRING Opa
 924: PPUSH
 925: CALL 117 0 4
// end else
 929: GO 955
// begin uc_nation = nation_american ;
 931: LD_ADDR_OWVAR 21
 935: PUSH
 936: LD_INT 1
 938: ST_TO_ADDR
// prepare_human ( sex_male , class_engineer , 1 , Azgil Ahlib ) ;
 939: LD_INT 1
 941: PPUSH
 942: LD_INT 2
 944: PPUSH
 945: LD_INT 1
 947: PPUSH
 948: LD_STRING Azgil Ahlib
 950: PPUSH
 951: CALL 117 0 4
// end ; ah = CreateHuman ;
 955: LD_ADDR_LOC 1
 959: PUSH
 960: CALL_OW 44
 964: ST_TO_ADDR
// PlaceUnitXYR ( ah , 36 , 28 , 3 , false ) ;
 965: LD_LOC 1
 969: PPUSH
 970: LD_INT 36
 972: PPUSH
 973: LD_INT 28
 975: PPUSH
 976: LD_INT 3
 978: PPUSH
 979: LD_INT 0
 981: PPUSH
 982: CALL_OW 50
// if difficulty > 1 then
 986: LD_OWVAR 67
 990: PUSH
 991: LD_INT 1
 993: GREATER
 994: IFFALSE 1045
// begin uc_nation = nation_american ;
 996: LD_ADDR_OWVAR 21
1000: PUSH
1001: LD_INT 1
1003: ST_TO_ADDR
// prepare_human ( sex_female , class_soldier , 2 , Katty Green ) ;
1004: LD_INT 2
1006: PPUSH
1007: LD_INT 1
1009: PPUSH
1010: LD_INT 2
1012: PPUSH
1013: LD_STRING Katty Green
1015: PPUSH
1016: CALL 117 0 4
// ah = CreateHuman ;
1020: LD_ADDR_LOC 1
1024: PUSH
1025: CALL_OW 44
1029: ST_TO_ADDR
// PlaceUnitArea ( ah , putbase , false ) ;
1030: LD_LOC 1
1034: PPUSH
1035: LD_INT 11
1037: PPUSH
1038: LD_INT 0
1040: PPUSH
1041: CALL_OW 49
// end ; if difficulty > 2 then
1045: LD_OWVAR 67
1049: PUSH
1050: LD_INT 2
1052: GREATER
1053: IFFALSE 1096
// begin prepare_human ( sex_male , class_soldier , 2 , Johny Deep ) ;
1055: LD_INT 1
1057: PPUSH
1058: LD_INT 1
1060: PPUSH
1061: LD_INT 2
1063: PPUSH
1064: LD_STRING Johny Deep
1066: PPUSH
1067: CALL 117 0 4
// ah = CreateHuman ;
1071: LD_ADDR_LOC 1
1075: PUSH
1076: CALL_OW 44
1080: ST_TO_ADDR
// PlaceUnitArea ( ah , putbase , false ) ;
1081: LD_LOC 1
1085: PPUSH
1086: LD_INT 11
1088: PPUSH
1089: LD_INT 0
1091: PPUSH
1092: CALL_OW 49
// end ; end ;
1096: LD_VAR 0 1
1100: RET
// export function create_attack1 ; var pom , i ; begin
1101: LD_INT 0
1103: PPUSH
1104: PPUSH
1105: PPUSH
// pom = [ ] ;
1106: LD_ADDR_VAR 0 2
1110: PUSH
1111: EMPTY
1112: ST_TO_ADDR
// uc_side := Amici ;
1113: LD_ADDR_OWVAR 20
1117: PUSH
1118: LD_EXP 3
1122: ST_TO_ADDR
// uc_nation := nation_american ;
1123: LD_ADDR_OWVAR 21
1127: PUSH
1128: LD_INT 1
1130: ST_TO_ADDR
// uc_direction := 4 ;
1131: LD_ADDR_OWVAR 24
1135: PUSH
1136: LD_INT 4
1138: ST_TO_ADDR
// for i := 1 to lidi_ut1 [ difficulty ] do
1139: LD_ADDR_VAR 0 3
1143: PUSH
1144: DOUBLE
1145: LD_INT 1
1147: DEC
1148: ST_TO_ADDR
1149: LD_EXP 34
1153: PUSH
1154: LD_OWVAR 67
1158: ARRAY
1159: PUSH
1160: FOR_TO
1161: IFFALSE 1215
// begin prepare_human ( sex_male , class_soldier , levely [ difficulty ] ,  ) ;
1163: LD_INT 1
1165: PPUSH
1166: LD_INT 1
1168: PPUSH
1169: LD_EXP 29
1173: PUSH
1174: LD_OWVAR 67
1178: ARRAY
1179: PPUSH
1180: LD_STRING 
1182: PPUSH
1183: CALL 117 0 4
// ah = CreateHuman ;
1187: LD_ADDR_LOC 1
1191: PUSH
1192: CALL_OW 44
1196: ST_TO_ADDR
// pom = pom ^ ah ;
1197: LD_ADDR_VAR 0 2
1201: PUSH
1202: LD_VAR 0 2
1206: PUSH
1207: LD_LOC 1
1211: ADD
1212: ST_TO_ADDR
// end ;
1213: GO 1160
1215: POP
1216: POP
// CREATE_ATTACK1_LIST = pom ;
1217: LD_ADDR_EXP 4
1221: PUSH
1222: LD_VAR 0 2
1226: ST_TO_ADDR
// end ;
1227: LD_VAR 0 1
1231: RET
// export function create_attack3 ; var pom ; begin
1232: LD_INT 0
1234: PPUSH
1235: PPUSH
// pom = [ ] ;
1236: LD_ADDR_VAR 0 2
1240: PUSH
1241: EMPTY
1242: ST_TO_ADDR
// uc_side := Amici ;
1243: LD_ADDR_OWVAR 20
1247: PUSH
1248: LD_EXP 3
1252: ST_TO_ADDR
// uc_nation := nation_american ;
1253: LD_ADDR_OWVAR 21
1257: PUSH
1258: LD_INT 1
1260: ST_TO_ADDR
// uc_direction := 4 ;
1261: LD_ADDR_OWVAR 24
1265: PUSH
1266: LD_INT 4
1268: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levely [ difficulty ] , Nathan Knight ) ;
1269: LD_INT 1
1271: PPUSH
1272: LD_INT 1
1274: PPUSH
1275: LD_EXP 29
1279: PUSH
1280: LD_OWVAR 67
1284: ARRAY
1285: PPUSH
1286: LD_STRING Nathan Knight
1288: PPUSH
1289: CALL 117 0 4
// ah = CreateHuman ;
1293: LD_ADDR_LOC 1
1297: PUSH
1298: CALL_OW 44
1302: ST_TO_ADDR
// pom = pom ^ ah ;
1303: LD_ADDR_VAR 0 2
1307: PUSH
1308: LD_VAR 0 2
1312: PUSH
1313: LD_LOC 1
1317: ADD
1318: ST_TO_ADDR
// if difficulty > 1 then
1319: LD_OWVAR 67
1323: PUSH
1324: LD_INT 1
1326: GREATER
1327: IFFALSE 1379
// begin prepare_human ( sex_male , class_soldier , levely [ difficulty ] , John Rickard ) ;
1329: LD_INT 1
1331: PPUSH
1332: LD_INT 1
1334: PPUSH
1335: LD_EXP 29
1339: PUSH
1340: LD_OWVAR 67
1344: ARRAY
1345: PPUSH
1346: LD_STRING John Rickard
1348: PPUSH
1349: CALL 117 0 4
// ah = CreateHuman ;
1353: LD_ADDR_LOC 1
1357: PUSH
1358: CALL_OW 44
1362: ST_TO_ADDR
// pom = pom ^ ah ;
1363: LD_ADDR_VAR 0 2
1367: PUSH
1368: LD_VAR 0 2
1372: PUSH
1373: LD_LOC 1
1377: ADD
1378: ST_TO_ADDR
// end ; CREATE_ATTACK3_LIST2 = pom ;
1379: LD_ADDR_EXP 7
1383: PUSH
1384: LD_VAR 0 2
1388: ST_TO_ADDR
// pom = [ ] ;
1389: LD_ADDR_VAR 0 2
1393: PUSH
1394: EMPTY
1395: ST_TO_ADDR
// prepare_human ( sex_male , class_soldier , levely [ difficulty ] , David Monagan ) ;
1396: LD_INT 1
1398: PPUSH
1399: LD_INT 1
1401: PPUSH
1402: LD_EXP 29
1406: PUSH
1407: LD_OWVAR 67
1411: ARRAY
1412: PPUSH
1413: LD_STRING David Monagan
1415: PPUSH
1416: CALL 117 0 4
// ah = CreateHuman ;
1420: LD_ADDR_LOC 1
1424: PUSH
1425: CALL_OW 44
1429: ST_TO_ADDR
// pom = pom ^ ah ;
1430: LD_ADDR_VAR 0 2
1434: PUSH
1435: LD_VAR 0 2
1439: PUSH
1440: LD_LOC 1
1444: ADD
1445: ST_TO_ADDR
// if difficulty > 2 then
1446: LD_OWVAR 67
1450: PUSH
1451: LD_INT 2
1453: GREATER
1454: IFFALSE 1506
// begin prepare_human ( sex_male , class_soldier , levely [ difficulty ] , Victor Gaddes ) ;
1456: LD_INT 1
1458: PPUSH
1459: LD_INT 1
1461: PPUSH
1462: LD_EXP 29
1466: PUSH
1467: LD_OWVAR 67
1471: ARRAY
1472: PPUSH
1473: LD_STRING Victor Gaddes
1475: PPUSH
1476: CALL 117 0 4
// ah = CreateHuman ;
1480: LD_ADDR_LOC 1
1484: PUSH
1485: CALL_OW 44
1489: ST_TO_ADDR
// pom = pom ^ ah ;
1490: LD_ADDR_VAR 0 2
1494: PUSH
1495: LD_VAR 0 2
1499: PUSH
1500: LD_LOC 1
1504: ADD
1505: ST_TO_ADDR
// end ; CREATE_ATTACK3_LIST3 = pom ;
1506: LD_ADDR_EXP 8
1510: PUSH
1511: LD_VAR 0 2
1515: ST_TO_ADDR
// pom = [ ] ;
1516: LD_ADDR_VAR 0 2
1520: PUSH
1521: EMPTY
1522: ST_TO_ADDR
// prepare_human ( sex_female , class_soldier , levely [ difficulty ] , Jane Acanta ) ;
1523: LD_INT 2
1525: PPUSH
1526: LD_INT 1
1528: PPUSH
1529: LD_EXP 29
1533: PUSH
1534: LD_OWVAR 67
1538: ARRAY
1539: PPUSH
1540: LD_STRING Jane Acanta
1542: PPUSH
1543: CALL 117 0 4
// ah = CreateHuman ;
1547: LD_ADDR_LOC 1
1551: PUSH
1552: CALL_OW 44
1556: ST_TO_ADDR
// pom = pom ^ ah ;
1557: LD_ADDR_VAR 0 2
1561: PUSH
1562: LD_VAR 0 2
1566: PUSH
1567: LD_LOC 1
1571: ADD
1572: ST_TO_ADDR
// prepare_human ( sex_female , class_mechanic , levely [ difficulty ] , Quinn Deakin ) ;
1573: LD_INT 2
1575: PPUSH
1576: LD_INT 3
1578: PPUSH
1579: LD_EXP 29
1583: PUSH
1584: LD_OWVAR 67
1588: ARRAY
1589: PPUSH
1590: LD_STRING Quinn Deakin
1592: PPUSH
1593: CALL 117 0 4
// ah = CreateHuman ;
1597: LD_ADDR_LOC 1
1601: PUSH
1602: CALL_OW 44
1606: ST_TO_ADDR
// vc_chassis := us_light_wheeled ;
1607: LD_ADDR_OWVAR 37
1611: PUSH
1612: LD_INT 1
1614: ST_TO_ADDR
// vc_control := control_manual ;
1615: LD_ADDR_OWVAR 38
1619: PUSH
1620: LD_INT 1
1622: ST_TO_ADDR
// vc_engine := engine_solar ;
1623: LD_ADDR_OWVAR 39
1627: PUSH
1628: LD_INT 2
1630: ST_TO_ADDR
// vc_weapon := us_machine_gun ;
1631: LD_ADDR_OWVAR 40
1635: PUSH
1636: LD_INT 2
1638: ST_TO_ADDR
// av = CreateVehicle ;
1639: LD_ADDR_LOC 2
1643: PUSH
1644: CALL_OW 45
1648: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
1649: LD_LOC 1
1653: PPUSH
1654: LD_LOC 2
1658: PPUSH
1659: CALL_OW 52
// pom = pom ^ av ;
1663: LD_ADDR_VAR 0 2
1667: PUSH
1668: LD_VAR 0 2
1672: PUSH
1673: LD_LOC 2
1677: ADD
1678: ST_TO_ADDR
// if difficulty > 2 then
1679: LD_OWVAR 67
1683: PUSH
1684: LD_INT 2
1686: GREATER
1687: IFFALSE 1739
// begin prepare_human ( sex_male , class_soldier , levely [ difficulty ] , Pete Brian ) ;
1689: LD_INT 1
1691: PPUSH
1692: LD_INT 1
1694: PPUSH
1695: LD_EXP 29
1699: PUSH
1700: LD_OWVAR 67
1704: ARRAY
1705: PPUSH
1706: LD_STRING Pete Brian
1708: PPUSH
1709: CALL 117 0 4
// ah = CreateHuman ;
1713: LD_ADDR_LOC 1
1717: PUSH
1718: CALL_OW 44
1722: ST_TO_ADDR
// pom = pom ^ ah ;
1723: LD_ADDR_VAR 0 2
1727: PUSH
1728: LD_VAR 0 2
1732: PUSH
1733: LD_LOC 1
1737: ADD
1738: ST_TO_ADDR
// end ; CREATE_ATTACK3_LIST1 = pom ;
1739: LD_ADDR_EXP 6
1743: PUSH
1744: LD_VAR 0 2
1748: ST_TO_ADDR
// end ;
1749: LD_VAR 0 1
1753: RET
// export function create_attack2 ; var pom , i ; begin
1754: LD_INT 0
1756: PPUSH
1757: PPUSH
1758: PPUSH
// pom = [ ] ;
1759: LD_ADDR_VAR 0 2
1763: PUSH
1764: EMPTY
1765: ST_TO_ADDR
// uc_side := Amici ;
1766: LD_ADDR_OWVAR 20
1770: PUSH
1771: LD_EXP 3
1775: ST_TO_ADDR
// uc_nation := nation_american ;
1776: LD_ADDR_OWVAR 21
1780: PUSH
1781: LD_INT 1
1783: ST_TO_ADDR
// uc_direction := 4 ;
1784: LD_ADDR_OWVAR 24
1788: PUSH
1789: LD_INT 4
1791: ST_TO_ADDR
// for i := 1 to lidi_ut2 [ difficulty ] - 1 do
1792: LD_ADDR_VAR 0 3
1796: PUSH
1797: DOUBLE
1798: LD_INT 1
1800: DEC
1801: ST_TO_ADDR
1802: LD_EXP 35
1806: PUSH
1807: LD_OWVAR 67
1811: ARRAY
1812: PUSH
1813: LD_INT 1
1815: MINUS
1816: PUSH
1817: FOR_TO
1818: IFFALSE 1874
// begin prepare_human ( get_sex , class_soldier , levely [ difficulty ] ,  ) ;
1820: CALL 2608 0 0
1824: PPUSH
1825: LD_INT 1
1827: PPUSH
1828: LD_EXP 29
1832: PUSH
1833: LD_OWVAR 67
1837: ARRAY
1838: PPUSH
1839: LD_STRING 
1841: PPUSH
1842: CALL 117 0 4
// ah = CreateHuman ;
1846: LD_ADDR_LOC 1
1850: PUSH
1851: CALL_OW 44
1855: ST_TO_ADDR
// pom = pom ^ ah ;
1856: LD_ADDR_VAR 0 2
1860: PUSH
1861: LD_VAR 0 2
1865: PUSH
1866: LD_LOC 1
1870: ADD
1871: ST_TO_ADDR
// end ;
1872: GO 1817
1874: POP
1875: POP
// prepare_human ( sex_female , class_soldier , levely [ difficulty ] + 1 , Kitty Sandstorm ) ;
1876: LD_INT 2
1878: PPUSH
1879: LD_INT 1
1881: PPUSH
1882: LD_EXP 29
1886: PUSH
1887: LD_OWVAR 67
1891: ARRAY
1892: PUSH
1893: LD_INT 1
1895: PLUS
1896: PPUSH
1897: LD_STRING Kitty Sandstorm
1899: PPUSH
1900: CALL 117 0 4
// ah = CreateHuman ;
1904: LD_ADDR_LOC 1
1908: PUSH
1909: CALL_OW 44
1913: ST_TO_ADDR
// pom = pom ^ ah ;
1914: LD_ADDR_VAR 0 2
1918: PUSH
1919: LD_VAR 0 2
1923: PUSH
1924: LD_LOC 1
1928: ADD
1929: ST_TO_ADDR
// CREATE_ATTACK2_LIST = pom ;
1930: LD_ADDR_EXP 5
1934: PUSH
1935: LD_VAR 0 2
1939: ST_TO_ADDR
// end ;
1940: LD_VAR 0 1
1944: RET
// export function create_attack4 ; var pom ; begin
1945: LD_INT 0
1947: PPUSH
1948: PPUSH
// pom = [ ] ;
1949: LD_ADDR_VAR 0 2
1953: PUSH
1954: EMPTY
1955: ST_TO_ADDR
// uc_side := Amici ;
1956: LD_ADDR_OWVAR 20
1960: PUSH
1961: LD_EXP 3
1965: ST_TO_ADDR
// uc_nation := nation_american ;
1966: LD_ADDR_OWVAR 21
1970: PUSH
1971: LD_INT 1
1973: ST_TO_ADDR
// uc_direction := 4 ;
1974: LD_ADDR_OWVAR 24
1978: PUSH
1979: LD_INT 4
1981: ST_TO_ADDR
// prepare_human ( get_sex , class_soldier , levely [ difficulty ] + 2 ,  ) ;
1982: CALL 2608 0 0
1986: PPUSH
1987: LD_INT 1
1989: PPUSH
1990: LD_EXP 29
1994: PUSH
1995: LD_OWVAR 67
1999: ARRAY
2000: PUSH
2001: LD_INT 2
2003: PLUS
2004: PPUSH
2005: LD_STRING 
2007: PPUSH
2008: CALL 117 0 4
// ah = CreateHuman ;
2012: LD_ADDR_LOC 1
2016: PUSH
2017: CALL_OW 44
2021: ST_TO_ADDR
// pom = pom ^ ah ;
2022: LD_ADDR_VAR 0 2
2026: PUSH
2027: LD_VAR 0 2
2031: PUSH
2032: LD_LOC 1
2036: ADD
2037: ST_TO_ADDR
// prepare_human ( get_sex , class_soldier , levely [ difficulty ] + 3 ,  ) ;
2038: CALL 2608 0 0
2042: PPUSH
2043: LD_INT 1
2045: PPUSH
2046: LD_EXP 29
2050: PUSH
2051: LD_OWVAR 67
2055: ARRAY
2056: PUSH
2057: LD_INT 3
2059: PLUS
2060: PPUSH
2061: LD_STRING 
2063: PPUSH
2064: CALL 117 0 4
// ah = CreateHuman ;
2068: LD_ADDR_LOC 1
2072: PUSH
2073: CALL_OW 44
2077: ST_TO_ADDR
// pom = pom ^ ah ;
2078: LD_ADDR_VAR 0 2
2082: PUSH
2083: LD_VAR 0 2
2087: PUSH
2088: LD_LOC 1
2092: ADD
2093: ST_TO_ADDR
// prepare_human ( get_sex , class_mechanic , levely [ difficulty ] + 4 ,  ) ;
2094: CALL 2608 0 0
2098: PPUSH
2099: LD_INT 3
2101: PPUSH
2102: LD_EXP 29
2106: PUSH
2107: LD_OWVAR 67
2111: ARRAY
2112: PUSH
2113: LD_INT 4
2115: PLUS
2116: PPUSH
2117: LD_STRING 
2119: PPUSH
2120: CALL 117 0 4
// ah = CreateHuman ;
2124: LD_ADDR_LOC 1
2128: PUSH
2129: CALL_OW 44
2133: ST_TO_ADDR
// vc_chassis := us_light_wheeled ;
2134: LD_ADDR_OWVAR 37
2138: PUSH
2139: LD_INT 1
2141: ST_TO_ADDR
// vc_control := control_manual ;
2142: LD_ADDR_OWVAR 38
2146: PUSH
2147: LD_INT 1
2149: ST_TO_ADDR
// vc_engine := engine_solar ;
2150: LD_ADDR_OWVAR 39
2154: PUSH
2155: LD_INT 2
2157: ST_TO_ADDR
// vc_weapon := us_machine_gun ;
2158: LD_ADDR_OWVAR 40
2162: PUSH
2163: LD_INT 2
2165: ST_TO_ADDR
// av = CreateVehicle ;
2166: LD_ADDR_LOC 2
2170: PUSH
2171: CALL_OW 45
2175: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
2176: LD_LOC 1
2180: PPUSH
2181: LD_LOC 2
2185: PPUSH
2186: CALL_OW 52
// pom = pom ^ av ;
2190: LD_ADDR_VAR 0 2
2194: PUSH
2195: LD_VAR 0 2
2199: PUSH
2200: LD_LOC 2
2204: ADD
2205: ST_TO_ADDR
// prepare_human ( get_sex , class_mechanic , levely [ difficulty ] + 3 ,  ) ;
2206: CALL 2608 0 0
2210: PPUSH
2211: LD_INT 3
2213: PPUSH
2214: LD_EXP 29
2218: PUSH
2219: LD_OWVAR 67
2223: ARRAY
2224: PUSH
2225: LD_INT 3
2227: PLUS
2228: PPUSH
2229: LD_STRING 
2231: PPUSH
2232: CALL 117 0 4
// ah = CreateHuman ;
2236: LD_ADDR_LOC 1
2240: PUSH
2241: CALL_OW 44
2245: ST_TO_ADDR
// av = CreateVehicle ;
2246: LD_ADDR_LOC 2
2250: PUSH
2251: CALL_OW 45
2255: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
2256: LD_LOC 1
2260: PPUSH
2261: LD_LOC 2
2265: PPUSH
2266: CALL_OW 52
// pom = pom ^ av ;
2270: LD_ADDR_VAR 0 2
2274: PUSH
2275: LD_VAR 0 2
2279: PUSH
2280: LD_LOC 2
2284: ADD
2285: ST_TO_ADDR
// prepare_human ( get_sex , class_mechanic , levely [ difficulty ] + 3 ,  ) ;
2286: CALL 2608 0 0
2290: PPUSH
2291: LD_INT 3
2293: PPUSH
2294: LD_EXP 29
2298: PUSH
2299: LD_OWVAR 67
2303: ARRAY
2304: PUSH
2305: LD_INT 3
2307: PLUS
2308: PPUSH
2309: LD_STRING 
2311: PPUSH
2312: CALL 117 0 4
// ah = CreateHuman ;
2316: LD_ADDR_LOC 1
2320: PUSH
2321: CALL_OW 44
2325: ST_TO_ADDR
// av = CreateVehicle ;
2326: LD_ADDR_LOC 2
2330: PUSH
2331: CALL_OW 45
2335: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
2336: LD_LOC 1
2340: PPUSH
2341: LD_LOC 2
2345: PPUSH
2346: CALL_OW 52
// pom = pom ^ av ;
2350: LD_ADDR_VAR 0 2
2354: PUSH
2355: LD_VAR 0 2
2359: PUSH
2360: LD_LOC 2
2364: ADD
2365: ST_TO_ADDR
// prepare_human ( get_sex , class_mechanic , levely [ difficulty ] + 3 ,  ) ;
2366: CALL 2608 0 0
2370: PPUSH
2371: LD_INT 3
2373: PPUSH
2374: LD_EXP 29
2378: PUSH
2379: LD_OWVAR 67
2383: ARRAY
2384: PUSH
2385: LD_INT 3
2387: PLUS
2388: PPUSH
2389: LD_STRING 
2391: PPUSH
2392: CALL 117 0 4
// ah = CreateHuman ;
2396: LD_ADDR_LOC 1
2400: PUSH
2401: CALL_OW 44
2405: ST_TO_ADDR
// vc_weapon := us_gatling_gun ;
2406: LD_ADDR_OWVAR 40
2410: PUSH
2411: LD_INT 4
2413: ST_TO_ADDR
// av = CreateVehicle ;
2414: LD_ADDR_LOC 2
2418: PUSH
2419: CALL_OW 45
2423: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
2424: LD_LOC 1
2428: PPUSH
2429: LD_LOC 2
2433: PPUSH
2434: CALL_OW 52
// pom = pom ^ av ;
2438: LD_ADDR_VAR 0 2
2442: PUSH
2443: LD_VAR 0 2
2447: PUSH
2448: LD_LOC 2
2452: ADD
2453: ST_TO_ADDR
// CREATE_ATTACK4_LIST = pom ;
2454: LD_ADDR_EXP 9
2458: PUSH
2459: LD_VAR 0 2
2463: ST_TO_ADDR
// end ;
2464: LD_VAR 0 1
2468: RET
// export function create_and_place_unit_5 ; begin
2469: LD_INT 0
2471: PPUSH
// uc_side := Amici ;
2472: LD_ADDR_OWVAR 20
2476: PUSH
2477: LD_EXP 3
2481: ST_TO_ADDR
// uc_nation := nation_american ;
2482: LD_ADDR_OWVAR 21
2486: PUSH
2487: LD_INT 1
2489: ST_TO_ADDR
// uc_direction := 4 ;
2490: LD_ADDR_OWVAR 24
2494: PUSH
2495: LD_INT 4
2497: ST_TO_ADDR
// prepare_human ( get_sex , class_mechanic , 5 ,  ) ;
2498: CALL 2608 0 0
2502: PPUSH
2503: LD_INT 3
2505: PPUSH
2506: LD_INT 5
2508: PPUSH
2509: LD_STRING 
2511: PPUSH
2512: CALL 117 0 4
// ah = CreateHuman ;
2516: LD_ADDR_LOC 1
2520: PUSH
2521: CALL_OW 44
2525: ST_TO_ADDR
// vc_chassis := us_light_wheeled ;
2526: LD_ADDR_OWVAR 37
2530: PUSH
2531: LD_INT 1
2533: ST_TO_ADDR
// vc_control := control_manual ;
2534: LD_ADDR_OWVAR 38
2538: PUSH
2539: LD_INT 1
2541: ST_TO_ADDR
// vc_engine := engine_solar ;
2542: LD_ADDR_OWVAR 39
2546: PUSH
2547: LD_INT 2
2549: ST_TO_ADDR
// vc_weapon := us_machine_gun ;
2550: LD_ADDR_OWVAR 40
2554: PUSH
2555: LD_INT 2
2557: ST_TO_ADDR
// av = CreateVehicle ;
2558: LD_ADDR_LOC 2
2562: PUSH
2563: CALL_OW 45
2567: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
2568: LD_LOC 1
2572: PPUSH
2573: LD_LOC 2
2577: PPUSH
2578: CALL_OW 52
// PODPORA_U4 = PlaceUnitArea ( av , attack1 , false ) ;
2582: LD_ADDR_EXP 10
2586: PUSH
2587: LD_LOC 2
2591: PPUSH
2592: LD_INT 12
2594: PPUSH
2595: LD_INT 0
2597: PPUSH
2598: CALL_OW 49
2602: ST_TO_ADDR
// end ;
2603: LD_VAR 0 1
2607: RET
// function get_sex ; begin
2608: LD_INT 0
2610: PPUSH
// if Prob ( 20 ) then
2611: LD_INT 20
2613: PPUSH
2614: CALL_OW 13
2618: IFFALSE 2630
// result = sex_female else
2620: LD_ADDR_VAR 0 1
2624: PUSH
2625: LD_INT 2
2627: ST_TO_ADDR
2628: GO 2638
// result = sex_male ;
2630: LD_ADDR_VAR 0 1
2634: PUSH
2635: LD_INT 1
2637: ST_TO_ADDR
// end ; end_of_file
2638: LD_VAR 0 1
2642: RET
// export Avi ; export Heike ; export Oswald ; export Ralph ; export Sonya ; export far ; export o_depot , o_b1 , o_b2 ; export stavej ; export Zakladna_dobyta ; var engin ; every 0 0$0.1 do var i ;
2643: GO 2645
2645: DISABLE
2646: LD_INT 0
2648: PPUSH
// begin stavej = false ;
2649: LD_ADDR_EXP 20
2653: PUSH
2654: LD_INT 0
2656: ST_TO_ADDR
// for i := 1 to 3 do
2657: LD_ADDR_VAR 0 1
2661: PUSH
2662: DOUBLE
2663: LD_INT 1
2665: DEC
2666: ST_TO_ADDR
2667: LD_INT 3
2669: PUSH
2670: FOR_TO
2671: IFFALSE 2684
// disable ( 100 + i ) end ;
2673: LD_INT 100
2675: PUSH
2676: LD_VAR 0 1
2680: PLUS
2681: DISABLE_MARKED
2682: GO 2670
2684: POP
2685: POP
2686: PPOPN 1
2688: END
// every 0 0$9 trigger Zakladna_dobyta do
2689: LD_EXP 21
2693: IFFALSE 2738
2695: GO 2697
2697: DISABLE
// begin stavej = true ;
2698: LD_ADDR_EXP 20
2702: PUSH
2703: LD_INT 1
2705: ST_TO_ADDR
// wait ( 1 1$0 ) ;
2706: LD_INT 2100
2708: PPUSH
2709: CALL_OW 67
// ChangeSideFog ( You2 , You ) ;
2713: LD_EXP 2
2717: PPUSH
2718: LD_EXP 1
2722: PPUSH
2723: CALL_OW 343
// wait ( 0 0$0.1 ) ;
2727: LD_INT 4
2729: PPUSH
2730: CALL_OW 67
// dialog_dalsi_instrukce ;
2734: CALL 5704 0 0
// end ;
2738: END
// every 0 0$2 trigger stavej do var ba ;
2739: LD_EXP 20
2743: IFFALSE 2895
2745: GO 2747
2747: DISABLE
2748: LD_INT 0
2750: PPUSH
// begin engin = create_engineer ;
2751: LD_ADDR_LOC 3
2755: PUSH
2756: CALL 659 0 0
2760: ST_TO_ADDR
// wait ( 0 0$3 ) ;
2761: LD_INT 105
2763: PPUSH
2764: CALL_OW 67
// ComBuild ( engin [ 1 ] , b_depot , 112 , 73 , 3 ) ;
2768: LD_LOC 3
2772: PUSH
2773: LD_INT 1
2775: ARRAY
2776: PPUSH
2777: LD_INT 0
2779: PPUSH
2780: LD_INT 112
2782: PPUSH
2783: LD_INT 73
2785: PPUSH
2786: LD_INT 3
2788: PPUSH
2789: CALL_OW 145
// wait ( 0 0$2 ) ;
2793: LD_INT 70
2795: PPUSH
2796: CALL_OW 67
// while FilterAllUnits ( [ [ f_side , You2 ] , [ f_btype , b_depot ] ] ) = 0 do
2800: LD_INT 22
2802: PUSH
2803: LD_EXP 2
2807: PUSH
2808: EMPTY
2809: LIST
2810: LIST
2811: PUSH
2812: LD_INT 30
2814: PUSH
2815: LD_INT 0
2817: PUSH
2818: EMPTY
2819: LIST
2820: LIST
2821: PUSH
2822: EMPTY
2823: LIST
2824: LIST
2825: PPUSH
2826: CALL_OW 69
2830: PUSH
2831: LD_INT 0
2833: EQUAL
2834: IFFALSE 2845
// wait ( 0 0$9 ) ;
2836: LD_INT 315
2838: PPUSH
2839: CALL_OW 67
2843: GO 2800
// o_depot = FilterAllUnits ( [ [ f_side , You2 ] , [ f_btype , b_depot ] ] ) ;
2845: LD_ADDR_EXP 17
2849: PUSH
2850: LD_INT 22
2852: PUSH
2853: LD_EXP 2
2857: PUSH
2858: EMPTY
2859: LIST
2860: LIST
2861: PUSH
2862: LD_INT 30
2864: PUSH
2865: LD_INT 0
2867: PUSH
2868: EMPTY
2869: LIST
2870: LIST
2871: PUSH
2872: EMPTY
2873: LIST
2874: LIST
2875: PPUSH
2876: CALL_OW 69
2880: ST_TO_ADDR
// o_depot = o_depot [ 1 ] ;
2881: LD_ADDR_EXP 17
2885: PUSH
2886: LD_EXP 17
2890: PUSH
2891: LD_INT 1
2893: ARRAY
2894: ST_TO_ADDR
// end ;
2895: PPOPN 1
2897: END
// on BuildingComplete ( b ) do var pom ;
2898: LD_INT 0
2900: PPUSH
// begin case b of o_depot :
2901: LD_VAR 0 1
2905: PUSH
2906: LD_EXP 17
2910: DOUBLE
2911: EQUAL
2912: IFTRUE 2916
2914: GO 2967
2916: POP
// begin AddResourceType ( GetBase ( o_depot ) , mat_cans , 20 ) ;
2917: LD_EXP 17
2921: PPUSH
2922: CALL_OW 274
2926: PPUSH
2927: LD_INT 1
2929: PPUSH
2930: LD_INT 20
2932: PPUSH
2933: CALL_OW 276
// ComBuild ( engin [ 2 ] , b_breastwork , 104 , 74 , 2 ) ;
2937: LD_LOC 3
2941: PUSH
2942: LD_INT 2
2944: ARRAY
2945: PPUSH
2946: LD_INT 31
2948: PPUSH
2949: LD_INT 104
2951: PPUSH
2952: LD_INT 74
2954: PPUSH
2955: LD_INT 2
2957: PPUSH
2958: CALL_OW 145
// enable ( 101 ) ;
2962: LD_INT 101
2964: ENABLE_MARKED
// end ; o_b1 :
2965: GO 3025
2967: LD_EXP 18
2971: DOUBLE
2972: EQUAL
2973: IFTRUE 2977
2975: GO 3008
2977: POP
// begin ComBuild ( engin [ 1 ] , b_breastwork , 111 , 67 , 2 ) ;
2978: LD_LOC 3
2982: PUSH
2983: LD_INT 1
2985: ARRAY
2986: PPUSH
2987: LD_INT 31
2989: PPUSH
2990: LD_INT 111
2992: PPUSH
2993: LD_INT 67
2995: PPUSH
2996: LD_INT 2
2998: PPUSH
2999: CALL_OW 145
// enable ( 102 ) ;
3003: LD_INT 102
3005: ENABLE_MARKED
// end ; o_b2 :
3006: GO 3025
3008: LD_EXP 19
3012: DOUBLE
3013: EQUAL
3014: IFTRUE 3018
3016: GO 3024
3018: POP
// enable ( 103 ) ; end ;
3019: LD_INT 103
3021: ENABLE_MARKED
3022: GO 3025
3024: POP
// enable ;
3025: ENABLE
// end ;
3026: PPOPN 2
3028: END
// every 0 0$5 marked 101 do var pom ;
3029: GO 3031
3031: DISABLE
3032: LD_INT 0
3034: PPUSH
// begin wait ( 0 0$3 ) ;
3035: LD_INT 105
3037: PPUSH
3038: CALL_OW 67
// pom = FilterAllUnits ( [ [ f_side , You2 ] , [ f_btype , b_breastwork ] ] ) ;
3042: LD_ADDR_VAR 0 1
3046: PUSH
3047: LD_INT 22
3049: PUSH
3050: LD_EXP 2
3054: PUSH
3055: EMPTY
3056: LIST
3057: LIST
3058: PUSH
3059: LD_INT 30
3061: PUSH
3062: LD_INT 31
3064: PUSH
3065: EMPTY
3066: LIST
3067: LIST
3068: PUSH
3069: EMPTY
3070: LIST
3071: LIST
3072: PPUSH
3073: CALL_OW 69
3077: ST_TO_ADDR
// if pom = 1 then
3078: LD_VAR 0 1
3082: PUSH
3083: LD_INT 1
3085: EQUAL
3086: IFFALSE 3104
// o_b1 = pom [ 1 ] else
3088: LD_ADDR_EXP 18
3092: PUSH
3093: LD_VAR 0 1
3097: PUSH
3098: LD_INT 1
3100: ARRAY
3101: ST_TO_ADDR
3102: GO 3105
// enable ;
3104: ENABLE
// end ;
3105: PPOPN 1
3107: END
// every 0 0$5 marked 102 do var pom ;
3108: GO 3110
3110: DISABLE
3111: LD_INT 0
3113: PPUSH
// begin wait ( 0 0$3 ) ;
3114: LD_INT 105
3116: PPUSH
3117: CALL_OW 67
// pom = FilterAllUnits ( [ [ f_side , You2 ] , [ f_btype , b_breastwork ] ] ) ;
3121: LD_ADDR_VAR 0 1
3125: PUSH
3126: LD_INT 22
3128: PUSH
3129: LD_EXP 2
3133: PUSH
3134: EMPTY
3135: LIST
3136: LIST
3137: PUSH
3138: LD_INT 30
3140: PUSH
3141: LD_INT 31
3143: PUSH
3144: EMPTY
3145: LIST
3146: LIST
3147: PUSH
3148: EMPTY
3149: LIST
3150: LIST
3151: PPUSH
3152: CALL_OW 69
3156: ST_TO_ADDR
// if pom = 2 then
3157: LD_VAR 0 1
3161: PUSH
3162: LD_INT 2
3164: EQUAL
3165: IFFALSE 3215
// if pom [ 1 ] = o_b1 then
3167: LD_VAR 0 1
3171: PUSH
3172: LD_INT 1
3174: ARRAY
3175: PUSH
3176: LD_EXP 18
3180: EQUAL
3181: IFFALSE 3199
// o_b2 = pom [ 2 ] else
3183: LD_ADDR_EXP 19
3187: PUSH
3188: LD_VAR 0 1
3192: PUSH
3193: LD_INT 2
3195: ARRAY
3196: ST_TO_ADDR
3197: GO 3213
// o_b2 = pom [ 1 ] else
3199: LD_ADDR_EXP 19
3203: PUSH
3204: LD_VAR 0 1
3208: PUSH
3209: LD_INT 1
3211: ARRAY
3212: ST_TO_ADDR
3213: GO 3216
// enable ;
3215: ENABLE
// end ;
3216: PPOPN 1
3218: END
// every 0 0$5 marked 103 do var i ;
3219: GO 3221
3221: DISABLE
3222: LD_INT 0
3224: PPUSH
// begin AddComMoveXY ( engin [ 2 ] , 130 , 74 ) ;
3225: LD_LOC 3
3229: PUSH
3230: LD_INT 2
3232: ARRAY
3233: PPUSH
3234: LD_INT 130
3236: PPUSH
3237: LD_INT 74
3239: PPUSH
3240: CALL_OW 171
// while not IsAt ( engin [ 2 ] , 130 , 74 ) do
3244: LD_LOC 3
3248: PUSH
3249: LD_INT 2
3251: ARRAY
3252: PPUSH
3253: LD_INT 130
3255: PPUSH
3256: LD_INT 74
3258: PPUSH
3259: CALL_OW 307
3263: NOT
3264: IFFALSE 3275
// wait ( 0 0$5 ) ;
3266: LD_INT 175
3268: PPUSH
3269: CALL_OW 67
3273: GO 3244
// for i in engin do
3275: LD_ADDR_VAR 0 1
3279: PUSH
3280: LD_LOC 3
3284: PUSH
3285: FOR_IN
3286: IFFALSE 3299
// RemoveUnit ( i ) ;
3288: LD_VAR 0 1
3292: PPUSH
3293: CALL_OW 64
3297: GO 3285
3299: POP
3300: POP
// SetSideBase ( GetBase ( o_depot ) , You ) ;
3301: LD_EXP 17
3305: PPUSH
3306: CALL_OW 274
3310: PPUSH
3311: LD_EXP 1
3315: PPUSH
3316: CALL_OW 236
// end ;
3320: PPOPN 1
3322: END
// every 0 0$9 trigger IsOK ( fauto ) do var pom ;
3323: LD_EXP 23
3327: PPUSH
3328: CALL_OW 302
3332: IFFALSE 3353
3334: GO 3336
3336: DISABLE
3337: LD_INT 0
3339: PPUSH
// begin SetFuel ( fauto , 80 ) ;
3340: LD_EXP 23
3344: PPUSH
3345: LD_INT 80
3347: PPUSH
3348: CALL_OW 240
// enable ;
3352: ENABLE
// end ; end_of_file
3353: PPOPN 1
3355: END
// export Ar_enter ; export fauto ; export IN_ATTACK ; every 0 0$1 do
3356: GO 3358
3358: DISABLE
// begin ComMoveXY ( fauto , 90 , 36 ) ;
3359: LD_EXP 23
3363: PPUSH
3364: LD_INT 90
3366: PPUSH
3367: LD_INT 36
3369: PPUSH
3370: CALL_OW 111
// ComMoveXY ( Ar_enter , 90 , 37 ) ;
3374: LD_EXP 22
3378: PPUSH
3379: LD_INT 90
3381: PPUSH
3382: LD_INT 37
3384: PPUSH
3385: CALL_OW 111
// end ;
3389: END
// every 0 0$1 trigger IsAt ( fauto , 90 , 36 ) do
3390: LD_EXP 23
3394: PPUSH
3395: LD_INT 90
3397: PPUSH
3398: LD_INT 36
3400: PPUSH
3401: CALL_OW 307
3405: IFFALSE 3444
3407: GO 3409
3409: DISABLE
// begin CenterOnUnits ( fauto ) ;
3410: LD_EXP 23
3414: PPUSH
3415: CALL_OW 85
// wait ( 0 0$2 ) ;
3419: LD_INT 70
3421: PPUSH
3422: CALL_OW 67
// ComStop ( fauto ) ;
3426: LD_EXP 23
3430: PPUSH
3431: CALL_OW 141
// AddComExitVehicle ( fauto ) ;
3435: LD_EXP 23
3439: PPUSH
3440: CALL_OW 181
// end ;
3444: END
// every 0 0$17 trigger EOINTRO do
3445: LD_EXP 25
3449: IFFALSE 3493
3451: GO 3453
3453: DISABLE
// begin wait ( 0 0$30 ) ;
3454: LD_INT 1050
3456: PPUSH
3457: CALL_OW 67
// CreateCratesArea ( Rand ( 1 , 5 ) , bedny1 , true ) ;
3461: LD_INT 1
3463: PPUSH
3464: LD_INT 5
3466: PPUSH
3467: CALL_OW 12
3471: PPUSH
3472: LD_INT 16
3474: PPUSH
3475: LD_INT 1
3477: PPUSH
3478: CALL_OW 55
// wait ( 0 0$2 ) ;
3482: LD_INT 70
3484: PPUSH
3485: CALL_OW 67
// kecy_crates1 ;
3489: CALL 6073 0 0
// end ;
3493: END
// every 0 0$23 trigger AttacksNo > 0 do
3494: LD_EXP 37
3498: PUSH
3499: LD_INT 0
3501: GREATER
3502: IFFALSE 3574
3504: GO 3506
3506: DISABLE
// begin while IN_ATTACK do
3507: LD_EXP 24
3511: IFFALSE 3522
// wait ( 0 0$20 ) ;
3513: LD_INT 700
3515: PPUSH
3516: CALL_OW 67
3520: GO 3507
// CreateCratesXYR ( Rand ( 1 , 5 ) , GetX ( Heike ) , GetY ( Heike ) , 5 , true ) ;
3522: LD_INT 1
3524: PPUSH
3525: LD_INT 5
3527: PPUSH
3528: CALL_OW 12
3532: PPUSH
3533: LD_EXP 12
3537: PPUSH
3538: CALL_OW 250
3542: PPUSH
3543: LD_EXP 12
3547: PPUSH
3548: CALL_OW 251
3552: PPUSH
3553: LD_INT 5
3555: PPUSH
3556: LD_INT 1
3558: PPUSH
3559: CALL_OW 56
// wait ( 0 0$2 ) ;
3563: LD_INT 70
3565: PPUSH
3566: CALL_OW 67
// hlaska_konzervy2 ;
3570: CALL 6221 0 0
// end ; end_of_file
3574: END
// var ochocenych_opoci ; var auto_vyrobeno ; export EOINTRO ; export utoky_begin ; var dialog_kopec ; every 0 0$0.1 do var i ;
3575: GO 3577
3577: DISABLE
3578: LD_INT 0
3580: PPUSH
// begin IN_ATTACK = false ;
3581: LD_ADDR_EXP 24
3585: PUSH
3586: LD_INT 0
3588: ST_TO_ADDR
// dialog_kopec = 0 ;
3589: LD_ADDR_LOC 6
3593: PUSH
3594: LD_INT 0
3596: ST_TO_ADDR
// ochocenych_opoci = 0 ;
3597: LD_ADDR_LOC 4
3601: PUSH
3602: LD_INT 0
3604: ST_TO_ADDR
// auto_vyrobeno = false ;
3605: LD_ADDR_LOC 5
3609: PUSH
3610: LD_INT 0
3612: ST_TO_ADDR
// EOINTRO = false ;
3613: LD_ADDR_EXP 25
3617: PUSH
3618: LD_INT 0
3620: ST_TO_ADDR
// utoky_begin = false ;
3621: LD_ADDR_EXP 26
3625: PUSH
3626: LD_INT 0
3628: ST_TO_ADDR
// for i := 1 to 3 do
3629: LD_ADDR_VAR 0 1
3633: PUSH
3634: DOUBLE
3635: LD_INT 1
3637: DEC
3638: ST_TO_ADDR
3639: LD_INT 3
3641: PUSH
3642: FOR_TO
3643: IFFALSE 3652
// disable ( i ) ;
3645: LD_VAR 0 1
3649: DISABLE_MARKED
3650: GO 3642
3652: POP
3653: POP
// end ;
3654: PPOPN 1
3656: END
// every 0 0$1 trigger FilterUnitsInArea ( MEETA , [ [ f_side , You ] , [ f_class , class_soldier ] ] ) > 2 do
3657: LD_INT 2
3659: PPUSH
3660: LD_INT 22
3662: PUSH
3663: LD_EXP 1
3667: PUSH
3668: EMPTY
3669: LIST
3670: LIST
3671: PUSH
3672: LD_INT 25
3674: PUSH
3675: LD_INT 1
3677: PUSH
3678: EMPTY
3679: LIST
3680: LIST
3681: PUSH
3682: EMPTY
3683: LIST
3684: LIST
3685: PPUSH
3686: CALL_OW 70
3690: PUSH
3691: LD_INT 2
3693: GREATER
3694: IFFALSE 4075
3696: GO 3698
3698: DISABLE
// begin ComHold ( Koval ) ;
3699: LD_INT 21
3701: PPUSH
3702: CALL_OW 140
// ComHold ( far ) ;
3706: LD_EXP 16
3710: PPUSH
3711: CALL_OW 140
// ComHold ( Ar_enter ) ;
3715: LD_EXP 22
3719: PPUSH
3720: CALL_OW 140
// AddComTurnUnit ( far , Koval ) ;
3724: LD_EXP 16
3728: PPUSH
3729: LD_INT 21
3731: PPUSH
3732: CALL_OW 179
// AddComTurnUnit ( Koval , far ) ;
3736: LD_INT 21
3738: PPUSH
3739: LD_EXP 16
3743: PPUSH
3744: CALL_OW 179
// Say ( far , DJoin-Far-1 ) ;
3748: LD_EXP 16
3752: PPUSH
3753: LD_STRING DJoin-Far-1
3755: PPUSH
3756: CALL_OW 88
// Say ( Koval , DJoin-Kow-1 ) ;
3760: LD_INT 21
3762: PPUSH
3763: LD_STRING DJoin-Kow-1
3765: PPUSH
3766: CALL_OW 88
// ComTurnUnit ( Heike , Koval ) ;
3770: LD_EXP 12
3774: PPUSH
3775: LD_INT 21
3777: PPUSH
3778: CALL_OW 119
// Say ( Heike , DJoin-H-1 ) ;
3782: LD_EXP 12
3786: PPUSH
3787: LD_STRING DJoin-H-1
3789: PPUSH
3790: CALL_OW 88
// Say ( Koval , DJoin-Kow-2 ) ;
3794: LD_INT 21
3796: PPUSH
3797: LD_STRING DJoin-Kow-2
3799: PPUSH
3800: CALL_OW 88
// Say ( Heike , DJoin-H-2 ) ;
3804: LD_EXP 12
3808: PPUSH
3809: LD_STRING DJoin-H-2
3811: PPUSH
3812: CALL_OW 88
// Say ( Koval , DJoin-Kow-3 ) ;
3816: LD_INT 21
3818: PPUSH
3819: LD_STRING DJoin-Kow-3
3821: PPUSH
3822: CALL_OW 88
// Say ( Heike , DJoin-H-3 ) ;
3826: LD_EXP 12
3830: PPUSH
3831: LD_STRING DJoin-H-3
3833: PPUSH
3834: CALL_OW 88
// Say ( Koval , DJoin-Kow-4 ) ;
3838: LD_INT 21
3840: PPUSH
3841: LD_STRING DJoin-Kow-4
3843: PPUSH
3844: CALL_OW 88
// Say ( Heike , DJoin-H-4 ) ;
3848: LD_EXP 12
3852: PPUSH
3853: LD_STRING DJoin-H-4
3855: PPUSH
3856: CALL_OW 88
// RevealFogArea ( You , fogkopec ) ;
3860: LD_EXP 1
3864: PPUSH
3865: LD_INT 17
3867: PPUSH
3868: CALL_OW 332
// Say ( Koval , DJoin-Kow-5 ) ;
3872: LD_INT 21
3874: PPUSH
3875: LD_STRING DJoin-Kow-5
3877: PPUSH
3878: CALL_OW 88
// Say ( Oswald , DJoin-Osw-5 ) ;
3882: LD_EXP 13
3886: PPUSH
3887: LD_STRING DJoin-Osw-5
3889: PPUSH
3890: CALL_OW 88
// ComTurnUnit ( Heike , Avi ) ;
3894: LD_EXP 12
3898: PPUSH
3899: LD_EXP 11
3903: PPUSH
3904: CALL_OW 119
// Say ( Heike , DJoin-H-5 ) ;
3908: LD_EXP 12
3912: PPUSH
3913: LD_STRING DJoin-H-5
3915: PPUSH
3916: CALL_OW 88
// ComTurnUnit ( Avi , Heike ) ;
3920: LD_EXP 11
3924: PPUSH
3925: LD_EXP 12
3929: PPUSH
3930: CALL_OW 119
// Say ( Avi , DJoin-Avi-5 ) ;
3934: LD_EXP 11
3938: PPUSH
3939: LD_STRING DJoin-Avi-5
3941: PPUSH
3942: CALL_OW 88
// if IsOK ( Ralph ) then
3946: LD_EXP 14
3950: PPUSH
3951: CALL_OW 302
3955: IFFALSE 3969
// Say ( Ralph , DJoin-Ralph-5 ) ;
3957: LD_EXP 14
3961: PPUSH
3962: LD_STRING DJoin-Ralph-5
3964: PPUSH
3965: CALL_OW 88
// Say ( Heike , DJoin-H-6 ) ;
3969: LD_EXP 12
3973: PPUSH
3974: LD_STRING DJoin-H-6
3976: PPUSH
3977: CALL_OW 88
// ComEnterUnit ( far , fauto ) ;
3981: LD_EXP 16
3985: PPUSH
3986: LD_EXP 23
3990: PPUSH
3991: CALL_OW 120
// wait ( 0 0$2 ) ;
3995: LD_INT 70
3997: PPUSH
3998: CALL_OW 67
// SetSide ( far , You2 ) ;
4002: LD_EXP 16
4006: PPUSH
4007: LD_EXP 2
4011: PPUSH
4012: CALL_OW 235
// SetSide ( fauto , You2 ) ;
4016: LD_EXP 23
4020: PPUSH
4021: LD_EXP 2
4025: PPUSH
4026: CALL_OW 235
// ComMoveXY ( fauto , 125 , 73 ) ;
4030: LD_EXP 23
4034: PPUSH
4035: LD_INT 125
4037: PPUSH
4038: LD_INT 73
4040: PPUSH
4041: CALL_OW 111
// SaveForQuickRestart ;
4045: CALL_OW 22
// wait ( 0 0$5 ) ;
4049: LD_INT 175
4051: PPUSH
4052: CALL_OW 67
// InGameOff ;
4056: CALL_OW 9
// ChangeMissionObjectives ( MCapture ) ;
4060: LD_STRING MCapture
4062: PPUSH
4063: CALL_OW 337
// EOINTRO = true ;
4067: LD_ADDR_EXP 25
4071: PUSH
4072: LD_INT 1
4074: ST_TO_ADDR
// end ;
4075: END
// every 0 0$1 trigger IsInArea ( fauto , Exfar ) do
4076: LD_EXP 23
4080: PPUSH
4081: LD_INT 10
4083: PPUSH
4084: CALL_OW 308
4088: IFFALSE 4102
4090: GO 4092
4092: DISABLE
// begin RemoveUnit ( fauto ) ;
4093: LD_EXP 23
4097: PPUSH
4098: CALL_OW 64
// end ;
4102: END
// every 0 0$1 trigger FilterUnitsInArea ( kopec , [ [ f_side , You ] ] ) > 0 do var pom ;
4103: LD_INT 3
4105: PPUSH
4106: LD_INT 22
4108: PUSH
4109: LD_EXP 1
4113: PUSH
4114: EMPTY
4115: LIST
4116: LIST
4117: PUSH
4118: EMPTY
4119: LIST
4120: PPUSH
4121: CALL_OW 70
4125: PUSH
4126: LD_INT 0
4128: GREATER
4129: IFFALSE 4198
4131: GO 4133
4133: DISABLE
4134: LD_INT 0
4136: PPUSH
// begin pom = FilterUnitsInArea ( kopec , [ [ f_side , You ] ] ) ;
4137: LD_ADDR_VAR 0 1
4141: PUSH
4142: LD_INT 3
4144: PPUSH
4145: LD_INT 22
4147: PUSH
4148: LD_EXP 1
4152: PUSH
4153: EMPTY
4154: LIST
4155: LIST
4156: PUSH
4157: EMPTY
4158: LIST
4159: PPUSH
4160: CALL_OW 70
4164: ST_TO_ADDR
// if Crawls ( pom ) < 0 + pom then
4165: LD_VAR 0 1
4169: PPUSH
4170: CALL_OW 318
4174: PUSH
4175: LD_INT 0
4177: PUSH
4178: LD_VAR 0 1
4182: PLUS
4183: LESS
4184: IFFALSE 4198
// Say ( Heike , DCrawl-H-1 ) ;
4186: LD_EXP 12
4190: PPUSH
4191: LD_STRING DCrawl-H-1
4193: PPUSH
4194: CALL_OW 88
// end ;
4198: PPOPN 1
4200: END
// every 0 0$1 trigger FilterUnitsInArea ( kraj_kop , [ [ f_side , You ] ] ) > 0 do var pom , pom1 ;
4201: LD_INT 4
4203: PPUSH
4204: LD_INT 22
4206: PUSH
4207: LD_EXP 1
4211: PUSH
4212: EMPTY
4213: LIST
4214: LIST
4215: PUSH
4216: EMPTY
4217: LIST
4218: PPUSH
4219: CALL_OW 70
4223: PUSH
4224: LD_INT 0
4226: GREATER
4227: IFFALSE 4502
4229: GO 4231
4231: DISABLE
4232: LD_INT 0
4234: PPUSH
4235: PPUSH
// begin if IsInArea ( Heike , kopec ) then
4236: LD_EXP 12
4240: PPUSH
4241: LD_INT 3
4243: PPUSH
4244: CALL_OW 308
4248: IFFALSE 4299
// begin Say ( Heike , DRock-H-1 ) ;
4250: LD_EXP 12
4254: PPUSH
4255: LD_STRING DRock-H-1
4257: PPUSH
4258: CALL_OW 88
// if IsOK ( Oswald ) then
4262: LD_EXP 13
4266: PPUSH
4267: CALL_OW 302
4271: IFFALSE 4285
// Say ( Oswald , DRock-Osw-1 ) ;
4273: LD_EXP 13
4277: PPUSH
4278: LD_STRING DRock-Osw-1
4280: PPUSH
4281: CALL_OW 88
// Say ( Heike , DRock-H-2a ) ;
4285: LD_EXP 12
4289: PPUSH
4290: LD_STRING DRock-H-2a
4292: PPUSH
4293: CALL_OW 88
// end else
4297: GO 4364
// if IsOK ( Oswald ) then
4299: LD_EXP 13
4303: PPUSH
4304: CALL_OW 302
4308: IFFALSE 4352
// if IsInArea ( Oswald , kopec ) then
4310: LD_EXP 13
4314: PPUSH
4315: LD_INT 3
4317: PPUSH
4318: CALL_OW 308
4322: IFFALSE 4338
// Say ( Oswald , DRock-Osw-1a ) else
4324: LD_EXP 13
4328: PPUSH
4329: LD_STRING DRock-Osw-1a
4331: PPUSH
4332: CALL_OW 88
4336: GO 4350
// Say ( Oswald , DRock-Osw-1b ) else
4338: LD_EXP 13
4342: PPUSH
4343: LD_STRING DRock-Osw-1b
4345: PPUSH
4346: CALL_OW 88
4350: GO 4364
// Say ( Heike , DRock-H-2 ) ;
4352: LD_EXP 12
4356: PPUSH
4357: LD_STRING DRock-H-2
4359: PPUSH
4360: CALL_OW 88
// Say ( Heike , DRock-H-2a ) ;
4364: LD_EXP 12
4368: PPUSH
4369: LD_STRING DRock-H-2a
4371: PPUSH
4372: CALL_OW 88
// if IsOK ( Oswald ) then
4376: LD_EXP 13
4380: PPUSH
4381: CALL_OW 302
4385: IFFALSE 4401
// Say ( Oswald , DRock-Osw-2 ) else
4387: LD_EXP 13
4391: PPUSH
4392: LD_STRING DRock-Osw-2
4394: PPUSH
4395: CALL_OW 88
4399: GO 4445
// begin pom = GetPeople ( sex_male , class_soldier , [ ] ) ;
4401: LD_ADDR_VAR 0 1
4405: PUSH
4406: LD_INT 1
4408: PPUSH
4409: LD_INT 1
4411: PPUSH
4412: EMPTY
4413: PPUSH
4414: CALL 7079 0 3
4418: ST_TO_ADDR
// if pom > 0 then
4419: LD_VAR 0 1
4423: PUSH
4424: LD_INT 0
4426: GREATER
4427: IFFALSE 4445
// Say ( pom [ 1 ] , DRock-S1-2 ) ;
4429: LD_VAR 0 1
4433: PUSH
4434: LD_INT 1
4436: ARRAY
4437: PPUSH
4438: LD_STRING DRock-S1-2
4440: PPUSH
4441: CALL_OW 88
// end ; Say ( Heike , DRock-H-3 ) ;
4445: LD_EXP 12
4449: PPUSH
4450: LD_STRING DRock-H-3
4452: PPUSH
4453: CALL_OW 88
// if UTEKLI_VEDCI then
4457: LD_EXP 27
4461: IFFALSE 4487
// begin Say ( Avi , DRock-Avi-3 ) ;
4463: LD_EXP 11
4467: PPUSH
4468: LD_STRING DRock-Avi-3
4470: PPUSH
4471: CALL_OW 88
// Say ( Heike , DRock-H-4 ) ;
4475: LD_EXP 12
4479: PPUSH
4480: LD_STRING DRock-H-4
4482: PPUSH
4483: CALL_OW 88
// end ; ChangeMissionObjectives ( MRockOut ) ;
4487: LD_STRING MRockOut
4489: PPUSH
4490: CALL_OW 337
// dialog_kopec = 1 ;
4494: LD_ADDR_LOC 6
4498: PUSH
4499: LD_INT 1
4501: ST_TO_ADDR
// end ;
4502: PPOPN 2
4504: END
// every 0 0$1 trigger GetAttitude ( You , Amici ) = att_enemy do var pom , i , pom1 ;
4505: LD_EXP 1
4509: PPUSH
4510: LD_EXP 3
4514: PPUSH
4515: CALL_OW 81
4519: PUSH
4520: LD_INT 2
4522: EQUAL
4523: IFFALSE 4756
4525: GO 4527
4527: DISABLE
4528: LD_INT 0
4530: PPUSH
4531: PPUSH
4532: PPUSH
// begin DialogueOn ;
4533: CALL_OW 6
// pom = FilterAllUnits ( [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
4537: LD_ADDR_VAR 0 1
4541: PUSH
4542: LD_INT 22
4544: PUSH
4545: LD_EXP 3
4549: PUSH
4550: EMPTY
4551: LIST
4552: LIST
4553: PUSH
4554: LD_INT 21
4556: PUSH
4557: LD_INT 1
4559: PUSH
4560: EMPTY
4561: LIST
4562: LIST
4563: PUSH
4564: EMPTY
4565: LIST
4566: LIST
4567: PPUSH
4568: CALL_OW 69
4572: ST_TO_ADDR
// pom1 = [ ] ;
4573: LD_ADDR_VAR 0 3
4577: PUSH
4578: EMPTY
4579: ST_TO_ADDR
// for i in pom do
4580: LD_ADDR_VAR 0 2
4584: PUSH
4585: LD_VAR 0 1
4589: PUSH
4590: FOR_IN
4591: IFFALSE 4627
// if See ( You , i ) then
4593: LD_EXP 1
4597: PPUSH
4598: LD_VAR 0 2
4602: PPUSH
4603: CALL_OW 292
4607: IFFALSE 4625
// pom1 = pom1 ^ i ;
4609: LD_ADDR_VAR 0 3
4613: PUSH
4614: LD_VAR 0 3
4618: PUSH
4619: LD_VAR 0 2
4623: ADD
4624: ST_TO_ADDR
4625: GO 4590
4627: POP
4628: POP
// if pom1 > 0 then
4629: LD_VAR 0 3
4633: PUSH
4634: LD_INT 0
4636: GREATER
4637: IFFALSE 4657
// Say ( pom1 [ 1 ] , DAttack-Am1-1 ) else
4639: LD_VAR 0 3
4643: PUSH
4644: LD_INT 1
4646: ARRAY
4647: PPUSH
4648: LD_STRING DAttack-Am1-1
4650: PPUSH
4651: CALL_OW 88
4655: GO 4673
// Say ( pom [ 1 ] , DAttack-Am1-1 ) ;
4657: LD_VAR 0 1
4661: PUSH
4662: LD_INT 1
4664: ARRAY
4665: PPUSH
4666: LD_STRING DAttack-Am1-1
4668: PPUSH
4669: CALL_OW 88
// Say ( Heike , DAttack-H-1 ) ;
4673: LD_EXP 12
4677: PPUSH
4678: LD_STRING DAttack-H-1
4680: PPUSH
4681: CALL_OW 88
// if pom1 > 0 then
4685: LD_VAR 0 3
4689: PUSH
4690: LD_INT 0
4692: GREATER
4693: IFFALSE 4713
// Say ( pom1 [ 1 ] , DAttack-Am1-2 ) else
4695: LD_VAR 0 3
4699: PUSH
4700: LD_INT 1
4702: ARRAY
4703: PPUSH
4704: LD_STRING DAttack-Am1-2
4706: PPUSH
4707: CALL_OW 88
4711: GO 4729
// Say ( pom [ 1 ] , DAttack-Am1-2 ) ;
4713: LD_VAR 0 1
4717: PUSH
4718: LD_INT 1
4720: ARRAY
4721: PPUSH
4722: LD_STRING DAttack-Am1-2
4724: PPUSH
4725: CALL_OW 88
// Say ( Heike , DAttack-H-2 ) ;
4729: LD_EXP 12
4733: PPUSH
4734: LD_STRING DAttack-H-2
4736: PPUSH
4737: CALL_OW 88
// DialogueOff ;
4741: CALL_OW 7
// ChangeMissionObjectives ( MRockDel ) ;
4745: LD_STRING MRockDel
4747: PPUSH
4748: CALL_OW 337
// uprav_utok_amici ;
4752: CALL 7759 0 0
// end ;
4756: PPOPN 3
4758: END
// export function escape_dialog ( no ) ; begin
4759: LD_INT 0
4761: PPUSH
// if no = 1 then
4762: LD_VAR 0 1
4766: PUSH
4767: LD_INT 1
4769: EQUAL
4770: IFFALSE 4786
// Say ( Heike , DEsc-H-1 ) else
4772: LD_EXP 12
4776: PPUSH
4777: LD_STRING DEsc-H-1
4779: PPUSH
4780: CALL_OW 88
4784: GO 4798
// Say ( Heike , DNoEsc-H-1 ) ;
4786: LD_EXP 12
4790: PPUSH
4791: LD_STRING DNoEsc-H-1
4793: PPUSH
4794: CALL_OW 88
// end ;
4798: LD_VAR 0 2
4802: RET
// every 0 0$2 trigger GetSide ( dep ) = You do var pom ;
4803: LD_INT 26
4805: PPUSH
4806: CALL_OW 255
4810: PUSH
4811: LD_EXP 1
4815: EQUAL
4816: IFFALSE 5133
4818: GO 4820
4820: DISABLE
4821: LD_INT 0
4823: PPUSH
// begin DialogueOn ;
4824: CALL_OW 6
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_engineer ] ] ) ;
4828: LD_ADDR_VAR 0 1
4832: PUSH
4833: LD_INT 22
4835: PUSH
4836: LD_EXP 1
4840: PUSH
4841: EMPTY
4842: LIST
4843: LIST
4844: PUSH
4845: LD_INT 25
4847: PUSH
4848: LD_INT 2
4850: PUSH
4851: EMPTY
4852: LIST
4853: LIST
4854: PUSH
4855: EMPTY
4856: LIST
4857: LIST
4858: PPUSH
4859: CALL_OW 69
4863: ST_TO_ADDR
// if pom = 0 then
4864: LD_VAR 0 1
4868: PUSH
4869: LD_INT 0
4871: EQUAL
4872: IFFALSE 4892
// pom = GetPeople ( sex_male , class_engineer , [ ] ) ;
4874: LD_ADDR_VAR 0 1
4878: PUSH
4879: LD_INT 1
4881: PPUSH
4882: LD_INT 2
4884: PPUSH
4885: EMPTY
4886: PPUSH
4887: CALL 7079 0 3
4891: ST_TO_ADDR
// if pom = 0 then
4892: LD_VAR 0 1
4896: PUSH
4897: LD_INT 0
4899: EQUAL
4900: IFFALSE 4926
// pom = GetPeople ( sex_female , class_engineer , [ Heike ] ) ;
4902: LD_ADDR_VAR 0 1
4906: PUSH
4907: LD_INT 2
4909: PPUSH
4910: LD_INT 2
4912: PPUSH
4913: LD_EXP 12
4917: PUSH
4918: EMPTY
4919: LIST
4920: PPUSH
4921: CALL 7079 0 3
4925: ST_TO_ADDR
// if pom > 0 then
4926: LD_VAR 0 1
4930: PUSH
4931: LD_INT 0
4933: GREATER
4934: IFFALSE 5114
// begin if GetSex ( pom [ 1 ] ) = sex_male then
4936: LD_VAR 0 1
4940: PUSH
4941: LD_INT 1
4943: ARRAY
4944: PPUSH
4945: CALL_OW 258
4949: PUSH
4950: LD_INT 1
4952: EQUAL
4953: IFFALSE 4973
// Say ( pom [ 1 ] , DCapture-Eng1-1 ) else
4955: LD_VAR 0 1
4959: PUSH
4960: LD_INT 1
4962: ARRAY
4963: PPUSH
4964: LD_STRING DCapture-Eng1-1
4966: PPUSH
4967: CALL_OW 88
4971: GO 4989
// Say ( pom [ 1 ] , DCapture-FEng1-1 ) ;
4973: LD_VAR 0 1
4977: PUSH
4978: LD_INT 1
4980: ARRAY
4981: PPUSH
4982: LD_STRING DCapture-FEng1-1
4984: PPUSH
4985: CALL_OW 88
// if UTEKLI > 0 then
4989: LD_EXP 36
4993: PUSH
4994: LD_INT 0
4996: GREATER
4997: IFFALSE 5013
// Say ( Heike , DCapture-H-1 ) else
4999: LD_EXP 12
5003: PPUSH
5004: LD_STRING DCapture-H-1
5006: PPUSH
5007: CALL_OW 88
5011: GO 5025
// Say ( Heike , DCapture-H-1a ) ;
5013: LD_EXP 12
5017: PPUSH
5018: LD_STRING DCapture-H-1a
5020: PPUSH
5021: CALL_OW 88
// Say ( Avi , DCapture-Avi-1 ) ;
5025: LD_EXP 11
5029: PPUSH
5030: LD_STRING DCapture-Avi-1
5032: PPUSH
5033: CALL_OW 88
// if GetSex ( pom [ 1 ] ) = sex_male then
5037: LD_VAR 0 1
5041: PUSH
5042: LD_INT 1
5044: ARRAY
5045: PPUSH
5046: CALL_OW 258
5050: PUSH
5051: LD_INT 1
5053: EQUAL
5054: IFFALSE 5074
// Say ( pom [ 1 ] , DCapture-Eng1-2 ) else
5056: LD_VAR 0 1
5060: PUSH
5061: LD_INT 1
5063: ARRAY
5064: PPUSH
5065: LD_STRING DCapture-Eng1-2
5067: PPUSH
5068: CALL_OW 88
5072: GO 5090
// Say ( pom [ 1 ] , DCapture-FEng1-2 ) ;
5074: LD_VAR 0 1
5078: PUSH
5079: LD_INT 1
5081: ARRAY
5082: PPUSH
5083: LD_STRING DCapture-FEng1-2
5085: PPUSH
5086: CALL_OW 88
// Say ( Avi , DCapture-Avi-2 ) ;
5090: LD_EXP 11
5094: PPUSH
5095: LD_STRING DCapture-Avi-2
5097: PPUSH
5098: CALL_OW 88
// Say ( Heike , DCapture-H-2 ) ;
5102: LD_EXP 12
5106: PPUSH
5107: LD_STRING DCapture-H-2
5109: PPUSH
5110: CALL_OW 88
// end ; DialogueOff ;
5114: CALL_OW 7
// ChangeMissionObjectives ( MKeep ) ;
5118: LD_STRING MKeep
5120: PPUSH
5121: CALL_OW 337
// Zakladna_dobyta = true ;
5125: LD_ADDR_EXP 21
5129: PUSH
5130: LD_INT 1
5132: ST_TO_ADDR
// end ;
5133: PPOPN 1
5135: END
// every 0 0$3 trigger Researched ( You , tech_ApeLang ) do
5136: LD_EXP 1
5140: PPUSH
5141: LD_INT 1
5143: PPUSH
5144: CALL_OW 325
5148: IFFALSE 5221
5150: GO 5152
5152: DISABLE
// begin DialogueOn ;
5153: CALL_OW 6
// Say ( Avi , DTame-Avi-1 ) ;
5157: LD_EXP 11
5161: PPUSH
5162: LD_STRING DTame-Avi-1
5164: PPUSH
5165: CALL_OW 88
// Say ( Heike , DTame-H-1 ) ;
5169: LD_EXP 12
5173: PPUSH
5174: LD_STRING DTame-H-1
5176: PPUSH
5177: CALL_OW 88
// Say ( Avi , DTame-Avi-2 ) ;
5181: LD_EXP 11
5185: PPUSH
5186: LD_STRING DTame-Avi-2
5188: PPUSH
5189: CALL_OW 88
// Say ( Heike , DTame-H-2 ) ;
5193: LD_EXP 12
5197: PPUSH
5198: LD_STRING DTame-H-2
5200: PPUSH
5201: CALL_OW 88
// Say ( Avi , DTame-Avi-3 ) ;
5205: LD_EXP 11
5209: PPUSH
5210: LD_STRING DTame-Avi-3
5212: PPUSH
5213: CALL_OW 88
// DialogueOff ;
5217: CALL_OW 7
// end ;
5221: END
// every 0 0$1 trigger FIlterAllUnits ( [ [ f_side , You ] , [ f_class , class_apeman ] ] ) > 0 do var pom ;
5222: LD_INT 22
5224: PUSH
5225: LD_EXP 1
5229: PUSH
5230: EMPTY
5231: LIST
5232: LIST
5233: PUSH
5234: LD_INT 25
5236: PUSH
5237: LD_INT 12
5239: PUSH
5240: EMPTY
5241: LIST
5242: LIST
5243: PUSH
5244: EMPTY
5245: LIST
5246: LIST
5247: PPUSH
5248: CALL_OW 69
5252: PUSH
5253: LD_INT 0
5255: GREATER
5256: IFFALSE 5478
5258: GO 5260
5260: DISABLE
5261: LD_INT 0
5263: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_apeman ] ] ) ;
5264: LD_ADDR_VAR 0 1
5268: PUSH
5269: LD_INT 22
5271: PUSH
5272: LD_EXP 1
5276: PUSH
5277: EMPTY
5278: LIST
5279: LIST
5280: PUSH
5281: LD_INT 25
5283: PUSH
5284: LD_INT 12
5286: PUSH
5287: EMPTY
5288: LIST
5289: LIST
5290: PUSH
5291: EMPTY
5292: LIST
5293: LIST
5294: PPUSH
5295: CALL_OW 69
5299: ST_TO_ADDR
// if pom > 0 then
5300: LD_VAR 0 1
5304: PUSH
5305: LD_INT 0
5307: GREATER
5308: IFFALSE 5467
// begin case IsTamedBy ( pom [ 1 ] ) of Avi :
5310: LD_VAR 0 1
5314: PUSH
5315: LD_INT 1
5317: ARRAY
5318: PPUSH
5319: CALL_OW 317
5323: PUSH
5324: LD_EXP 11
5328: DOUBLE
5329: EQUAL
5330: IFTRUE 5334
5332: GO 5359
5334: POP
// if ochocenych_opoci = 0 then
5335: LD_LOC 4
5339: PUSH
5340: LD_INT 0
5342: EQUAL
5343: IFFALSE 5357
// Say ( Avi , DTame1-Avi-1 ) ; Sonya :
5345: LD_EXP 11
5349: PPUSH
5350: LD_STRING DTame1-Avi-1
5352: PPUSH
5353: CALL_OW 88
5357: GO 5449
5359: LD_EXP 15
5363: DOUBLE
5364: EQUAL
5365: IFTRUE 5369
5367: GO 5426
5369: POP
// begin Say ( Sonya , DTame2-Son-1 ) ;
5370: LD_EXP 15
5374: PPUSH
5375: LD_STRING DTame2-Son-1
5377: PPUSH
5378: CALL_OW 88
// Say ( Avi , DTame2-Avi-1 ) ;
5382: LD_EXP 11
5386: PPUSH
5387: LD_STRING DTame2-Avi-1
5389: PPUSH
5390: CALL_OW 88
// if ochocenych_opoci = 0 then
5394: LD_LOC 4
5398: PUSH
5399: LD_INT 0
5401: EQUAL
5402: IFFALSE 5416
// Say ( Avi , DTame2-Avi-1a ) ;
5404: LD_EXP 11
5408: PPUSH
5409: LD_STRING DTame2-Avi-1a
5411: PPUSH
5412: CALL_OW 88
// ochocenych_opoci = 10 ;
5416: LD_ADDR_LOC 4
5420: PUSH
5421: LD_INT 10
5423: ST_TO_ADDR
// end ; else
5424: GO 5449
5426: POP
// if ochocenych_opoci = 0 then
5427: LD_LOC 4
5431: PUSH
5432: LD_INT 0
5434: EQUAL
5435: IFFALSE 5449
// Say ( Avi , DTame1-Avi-1a ) ; end ;
5437: LD_EXP 11
5441: PPUSH
5442: LD_STRING DTame1-Avi-1a
5444: PPUSH
5445: CALL_OW 88
// if ochocenych_opoci = 0 then
5449: LD_LOC 4
5453: PUSH
5454: LD_INT 0
5456: EQUAL
5457: IFFALSE 5467
// ochocenych_opoci = 1 ;
5459: LD_ADDR_LOC 4
5463: PUSH
5464: LD_INT 1
5466: ST_TO_ADDR
// end ; if ochocenych_opoci < 10 then
5467: LD_LOC 4
5471: PUSH
5472: LD_INT 10
5474: LESS
5475: IFFALSE 5478
// enable ;
5477: ENABLE
// end ;
5478: PPOPN 1
5480: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_apeman_soldier ] ] ) > 0 do
5481: LD_INT 22
5483: PUSH
5484: LD_EXP 1
5488: PUSH
5489: EMPTY
5490: LIST
5491: LIST
5492: PUSH
5493: LD_INT 25
5495: PUSH
5496: LD_INT 15
5498: PUSH
5499: EMPTY
5500: LIST
5501: LIST
5502: PUSH
5503: EMPTY
5504: LIST
5505: LIST
5506: PPUSH
5507: CALL_OW 69
5511: PUSH
5512: LD_INT 0
5514: GREATER
5515: IFFALSE 5563
5517: GO 5519
5519: DISABLE
// begin Say ( Heike , DApe-H-1 ) ;
5520: LD_EXP 12
5524: PPUSH
5525: LD_STRING DApe-H-1
5527: PPUSH
5528: CALL_OW 88
// Say ( Avi , DApe-Avi-1 ) ;
5532: LD_EXP 11
5536: PPUSH
5537: LD_STRING DApe-Avi-1
5539: PPUSH
5540: CALL_OW 88
// Say ( Heike , DApe-H-2 ) ;
5544: LD_EXP 12
5548: PPUSH
5549: LD_STRING DApe-H-2
5551: PPUSH
5552: CALL_OW 88
// ChangeMissionObjectives ( MOutApeman ) ;
5556: LD_STRING MOutApeman
5558: PPUSH
5559: CALL_OW 337
// end ;
5563: END
// every 0 0$6 trigger GetSide ( dep ) = You do var pom , i ; var dis ;
5564: LD_INT 26
5566: PPUSH
5567: CALL_OW 255
5571: PUSH
5572: LD_EXP 1
5576: EQUAL
5577: IFFALSE 5701
5579: GO 5581
5581: DISABLE
5582: LD_INT 0
5584: PPUSH
5585: PPUSH
5586: PPUSH
// begin dis = false ;
5587: LD_ADDR_VAR 0 3
5591: PUSH
5592: LD_INT 0
5594: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
5595: LD_ADDR_VAR 0 1
5599: PUSH
5600: LD_INT 22
5602: PUSH
5603: LD_EXP 1
5607: PUSH
5608: EMPTY
5609: LIST
5610: LIST
5611: PUSH
5612: LD_INT 21
5614: PUSH
5615: LD_INT 2
5617: PUSH
5618: EMPTY
5619: LIST
5620: LIST
5621: PUSH
5622: EMPTY
5623: LIST
5624: LIST
5625: PPUSH
5626: CALL_OW 69
5630: ST_TO_ADDR
// for i in pom do
5631: LD_ADDR_VAR 0 2
5635: PUSH
5636: LD_VAR 0 1
5640: PUSH
5641: FOR_IN
5642: IFFALSE 5691
// if i <> auto1 then
5644: LD_VAR 0 2
5648: PUSH
5649: LD_INT 25
5651: NONEQUAL
5652: IFFALSE 5689
// begin Say ( Heike , DVeh-H-1 ) ;
5654: LD_EXP 12
5658: PPUSH
5659: LD_STRING DVeh-H-1
5661: PPUSH
5662: CALL_OW 88
// ChangeMissionObjectives ( MOutVehicle ) ;
5666: LD_STRING MOutVehicle
5668: PPUSH
5669: CALL_OW 337
// dis = true ;
5673: LD_ADDR_VAR 0 3
5677: PUSH
5678: LD_INT 1
5680: ST_TO_ADDR
// auto_vyrobeno = true ;
5681: LD_ADDR_LOC 5
5685: PUSH
5686: LD_INT 1
5688: ST_TO_ADDR
// end ;
5689: GO 5641
5691: POP
5692: POP
// if not dis then
5693: LD_VAR 0 3
5697: NOT
5698: IFFALSE 5701
// enable ;
5700: ENABLE
// end ;
5701: PPOPN 3
5703: END
// export function dialog_dalsi_instrukce ; begin
5704: LD_INT 0
5706: PPUSH
// DialogueOn ;
5707: CALL_OW 6
// SayRadio ( far , DInstr-Far-1 ) ;
5711: LD_EXP 16
5715: PPUSH
5716: LD_STRING DInstr-Far-1
5718: PPUSH
5719: CALL_OW 94
// SayRadio ( Heike , DInstr-H-1 ) ;
5723: LD_EXP 12
5727: PPUSH
5728: LD_STRING DInstr-H-1
5730: PPUSH
5731: CALL_OW 94
// SayRadio ( far , DInstr-Far-2 ) ;
5735: LD_EXP 16
5739: PPUSH
5740: LD_STRING DInstr-Far-2
5742: PPUSH
5743: CALL_OW 94
// DialogueOff ;
5747: CALL_OW 7
// TYKANI = Query ( QFarmer ) ;
5751: LD_ADDR_EXP 28
5755: PUSH
5756: LD_STRING QFarmer
5758: PPUSH
5759: CALL_OW 97
5763: ST_TO_ADDR
// DialogueOn ;
5764: CALL_OW 6
// if TYKANI = 1 then
5768: LD_EXP 28
5772: PUSH
5773: LD_INT 1
5775: EQUAL
5776: IFFALSE 5804
// begin SayRadio ( Heike , DInstr1-H-1 ) ;
5778: LD_EXP 12
5782: PPUSH
5783: LD_STRING DInstr1-H-1
5785: PPUSH
5786: CALL_OW 94
// SayRadio ( far , DInstr1-Far-1 ) ;
5790: LD_EXP 16
5794: PPUSH
5795: LD_STRING DInstr1-Far-1
5797: PPUSH
5798: CALL_OW 94
// end else
5802: GO 5828
// begin SayRadio ( Heike , DInstr2-H-1 ) ;
5804: LD_EXP 12
5808: PPUSH
5809: LD_STRING DInstr2-H-1
5811: PPUSH
5812: CALL_OW 94
// SayRadio ( far , DInstr2-Far-1 ) ;
5816: LD_EXP 16
5820: PPUSH
5821: LD_STRING DInstr2-Far-1
5823: PPUSH
5824: CALL_OW 94
// end ; wait ( 0 0$0.5 ) ;
5828: LD_INT 18
5830: PPUSH
5831: CALL_OW 67
// SayRadio ( Heike , DInstr3-H-1 ) ;
5835: LD_EXP 12
5839: PPUSH
5840: LD_STRING DInstr3-H-1
5842: PPUSH
5843: CALL_OW 94
// SayRadio ( far , DInstr3-Far-1 ) ;
5847: LD_EXP 16
5851: PPUSH
5852: LD_STRING DInstr3-Far-1
5854: PPUSH
5855: CALL_OW 94
// SayRadio ( Heike , DInstr3-H-2 ) ;
5859: LD_EXP 12
5863: PPUSH
5864: LD_STRING DInstr3-H-2
5866: PPUSH
5867: CALL_OW 94
// SayRadio ( far , DInstr3-Far-2 ) ;
5871: LD_EXP 16
5875: PPUSH
5876: LD_STRING DInstr3-Far-2
5878: PPUSH
5879: CALL_OW 94
// SayRadio ( Heike , DInstr3-H-3 ) ;
5883: LD_EXP 12
5887: PPUSH
5888: LD_STRING DInstr3-H-3
5890: PPUSH
5891: CALL_OW 94
// CenterNowOnXY ( 115 , 66 ) ;
5895: LD_INT 115
5897: PPUSH
5898: LD_INT 66
5900: PPUSH
5901: CALL_OW 86
// SayRadio ( far , DInstr3-Far-3 ) ;
5905: LD_EXP 16
5909: PPUSH
5910: LD_STRING DInstr3-Far-3
5912: PPUSH
5913: CALL_OW 94
// if auto_vyrobeno then
5917: LD_LOC 5
5921: IFFALSE 5937
// SayRadio ( Heike , DInstr3-H-4 ) else
5923: LD_EXP 12
5927: PPUSH
5928: LD_STRING DInstr3-H-4
5930: PPUSH
5931: CALL_OW 94
5935: GO 6013
// if Researched ( You , tech_ApeLang ) or FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) > 0 then
5937: LD_EXP 1
5941: PPUSH
5942: LD_INT 1
5944: PPUSH
5945: CALL_OW 325
5949: PUSH
5950: LD_INT 22
5952: PUSH
5953: LD_EXP 1
5957: PUSH
5958: EMPTY
5959: LIST
5960: LIST
5961: PUSH
5962: LD_INT 30
5964: PUSH
5965: LD_INT 0
5967: PUSH
5968: EMPTY
5969: LIST
5970: LIST
5971: PUSH
5972: EMPTY
5973: LIST
5974: LIST
5975: PPUSH
5976: CALL_OW 69
5980: PUSH
5981: LD_INT 0
5983: GREATER
5984: OR
5985: IFFALSE 6001
// Say ( Heike , DInstr3-H-4a ) else
5987: LD_EXP 12
5991: PPUSH
5992: LD_STRING DInstr3-H-4a
5994: PPUSH
5995: CALL_OW 88
5999: GO 6013
// SayRadio ( Heike , DInstr3-H-4b ) ;
6001: LD_EXP 12
6005: PPUSH
6006: LD_STRING DInstr3-H-4b
6008: PPUSH
6009: CALL_OW 94
// if TYKANI = 1 then
6013: LD_EXP 28
6017: PUSH
6018: LD_INT 1
6020: EQUAL
6021: IFFALSE 6037
// SayRadio ( far , DInstr3-Far-4 ) else
6023: LD_EXP 16
6027: PPUSH
6028: LD_STRING DInstr3-Far-4
6030: PPUSH
6031: CALL_OW 94
6035: GO 6049
// SayRadio ( far , DInstr3-Far-4a ) ;
6037: LD_EXP 16
6041: PPUSH
6042: LD_STRING DInstr3-Far-4a
6044: PPUSH
6045: CALL_OW 94
// DialogueOff ;
6049: CALL_OW 7
// ChangeMissionObjectives ( MTransport ) ;
6053: LD_STRING MTransport
6055: PPUSH
6056: CALL_OW 337
// utoky_begin = true ;
6060: LD_ADDR_EXP 26
6064: PUSH
6065: LD_INT 1
6067: ST_TO_ADDR
// end ;
6068: LD_VAR 0 1
6072: RET
// export function kecy_crates1 ; var pom ; begin
6073: LD_INT 0
6075: PPUSH
6076: PPUSH
// DialogueOn ;
6077: CALL_OW 6
// if IsOK ( Koval ) then
6081: LD_INT 21
6083: PPUSH
6084: CALL_OW 302
6088: IFFALSE 6100
// pom = Koval else
6090: LD_ADDR_VAR 0 2
6094: PUSH
6095: LD_INT 21
6097: ST_TO_ADDR
6098: GO 6118
// pom = GetPeople ( sex_male , class_soldier , [ ] ) ;
6100: LD_ADDR_VAR 0 2
6104: PUSH
6105: LD_INT 1
6107: PPUSH
6108: LD_INT 1
6110: PPUSH
6111: EMPTY
6112: PPUSH
6113: CALL 7079 0 3
6117: ST_TO_ADDR
// if pom > 0 then
6118: LD_VAR 0 2
6122: PUSH
6123: LD_INT 0
6125: GREATER
6126: IFFALSE 6212
// begin Say ( Heike , DMat1-H-1 ) ;
6128: LD_EXP 12
6132: PPUSH
6133: LD_STRING DMat1-H-1
6135: PPUSH
6136: CALL_OW 88
// Say ( pom [ 1 ] , DMat1-Kow-1 ) ;
6140: LD_VAR 0 2
6144: PUSH
6145: LD_INT 1
6147: ARRAY
6148: PPUSH
6149: LD_STRING DMat1-Kow-1
6151: PPUSH
6152: CALL_OW 88
// Say ( Heike , DMat1-H-2 ) ;
6156: LD_EXP 12
6160: PPUSH
6161: LD_STRING DMat1-H-2
6163: PPUSH
6164: CALL_OW 88
// Say ( pom [ 1 ] , DMat1-Kow-2 ) ;
6168: LD_VAR 0 2
6172: PUSH
6173: LD_INT 1
6175: ARRAY
6176: PPUSH
6177: LD_STRING DMat1-Kow-2
6179: PPUSH
6180: CALL_OW 88
// Say ( Heike , DMat1-H-3 ) ;
6184: LD_EXP 12
6188: PPUSH
6189: LD_STRING DMat1-H-3
6191: PPUSH
6192: CALL_OW 88
// Say ( pom [ 1 ] , DMat1-Kow-3 ) ;
6196: LD_VAR 0 2
6200: PUSH
6201: LD_INT 1
6203: ARRAY
6204: PPUSH
6205: LD_STRING DMat1-Kow-3
6207: PPUSH
6208: CALL_OW 88
// end ; DialogueOff ;
6212: CALL_OW 7
// end ;
6216: LD_VAR 0 1
6220: RET
// export function hlaska_konzervy2 ; begin
6221: LD_INT 0
6223: PPUSH
// CenterNowOnUnits ( Heike ) ;
6224: LD_EXP 12
6228: PPUSH
6229: CALL_OW 87
// Say ( Heike , DMat2-H-1 ) ;
6233: LD_EXP 12
6237: PPUSH
6238: LD_STRING DMat2-H-1
6240: PPUSH
6241: CALL_OW 88
// end ;
6245: LD_VAR 0 1
6249: RET
// every 0 0$7 trigger AttacksNo = 1 do
6250: LD_EXP 37
6254: PUSH
6255: LD_INT 1
6257: EQUAL
6258: IFFALSE 6324
6260: GO 6262
6262: DISABLE
// begin while not ( See ( Amici , bunkr1 ) or See ( Amici , dep ) ) do
6263: LD_EXP 3
6267: PPUSH
6268: LD_INT 4
6270: PPUSH
6271: CALL_OW 292
6275: PUSH
6276: LD_EXP 3
6280: PPUSH
6281: LD_INT 26
6283: PPUSH
6284: CALL_OW 292
6288: OR
6289: NOT
6290: IFFALSE 6301
// wait ( 0 0$6 ) ;
6292: LD_INT 210
6294: PPUSH
6295: CALL_OW 67
6299: GO 6263
// Say ( Heike , DAm1-H-1 ) ;
6301: LD_EXP 12
6305: PPUSH
6306: LD_STRING DAm1-H-1
6308: PPUSH
6309: CALL_OW 88
// enable ( 1 ) ;
6313: LD_INT 1
6315: ENABLE_MARKED
// IN_ATTACK = true ;
6316: LD_ADDR_EXP 24
6320: PUSH
6321: LD_INT 1
6323: ST_TO_ADDR
// end ;
6324: END
// every 0 0$4 trigger FIlterAllUnits ( [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) = 0 marked 1 do
6325: LD_INT 22
6327: PUSH
6328: LD_EXP 3
6332: PUSH
6333: EMPTY
6334: LIST
6335: LIST
6336: PUSH
6337: LD_INT 21
6339: PUSH
6340: LD_INT 1
6342: PUSH
6343: EMPTY
6344: LIST
6345: LIST
6346: PUSH
6347: EMPTY
6348: LIST
6349: LIST
6350: PPUSH
6351: CALL_OW 69
6355: PUSH
6356: LD_INT 0
6358: EQUAL
6359: IFFALSE 6384
6361: GO 6363
6363: DISABLE
// begin Say ( Heike , DAm1-H-1a ) ;
6364: LD_EXP 12
6368: PPUSH
6369: LD_STRING DAm1-H-1a
6371: PPUSH
6372: CALL_OW 88
// IN_ATTACK = false ;
6376: LD_ADDR_EXP 24
6380: PUSH
6381: LD_INT 0
6383: ST_TO_ADDR
// end ;
6384: END
// every 0 0$7 trigger AttacksNo = 2 do
6385: LD_EXP 37
6389: PUSH
6390: LD_INT 2
6392: EQUAL
6393: IFFALSE 6459
6395: GO 6397
6397: DISABLE
// begin while not ( See ( Amici , bunkr1 ) or See ( Amici , dep ) ) do
6398: LD_EXP 3
6402: PPUSH
6403: LD_INT 4
6405: PPUSH
6406: CALL_OW 292
6410: PUSH
6411: LD_EXP 3
6415: PPUSH
6416: LD_INT 26
6418: PPUSH
6419: CALL_OW 292
6423: OR
6424: NOT
6425: IFFALSE 6436
// wait ( 0 0$6 ) ;
6427: LD_INT 210
6429: PPUSH
6430: CALL_OW 67
6434: GO 6398
// Say ( Heike , DAm2-H-1 ) ;
6436: LD_EXP 12
6440: PPUSH
6441: LD_STRING DAm2-H-1
6443: PPUSH
6444: CALL_OW 88
// enable ( 2 ) ;
6448: LD_INT 2
6450: ENABLE_MARKED
// IN_ATTACK = true ;
6451: LD_ADDR_EXP 24
6455: PUSH
6456: LD_INT 1
6458: ST_TO_ADDR
// end ;
6459: END
// every 0 0$7 trigger FIlterAllUnits ( [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) = 0 marked 2 do
6460: LD_INT 22
6462: PUSH
6463: LD_EXP 3
6467: PUSH
6468: EMPTY
6469: LIST
6470: LIST
6471: PUSH
6472: LD_INT 21
6474: PUSH
6475: LD_INT 1
6477: PUSH
6478: EMPTY
6479: LIST
6480: LIST
6481: PUSH
6482: EMPTY
6483: LIST
6484: LIST
6485: PPUSH
6486: CALL_OW 69
6490: PUSH
6491: LD_INT 0
6493: EQUAL
6494: IFFALSE 6519
6496: GO 6498
6498: DISABLE
// begin Say ( Heike , DAm2-H-1a ) ;
6499: LD_EXP 12
6503: PPUSH
6504: LD_STRING DAm2-H-1a
6506: PPUSH
6507: CALL_OW 88
// IN_ATTACK = false ;
6511: LD_ADDR_EXP 24
6515: PUSH
6516: LD_INT 0
6518: ST_TO_ADDR
// end ;
6519: END
// every 0 0$3 trigger AttacksNo = 3 do
6520: LD_EXP 37
6524: PUSH
6525: LD_INT 3
6527: EQUAL
6528: IFFALSE 6594
6530: GO 6532
6532: DISABLE
// begin while not ( See ( Amici , bunkr1 ) or See ( Amici , dep ) ) do
6533: LD_EXP 3
6537: PPUSH
6538: LD_INT 4
6540: PPUSH
6541: CALL_OW 292
6545: PUSH
6546: LD_EXP 3
6550: PPUSH
6551: LD_INT 26
6553: PPUSH
6554: CALL_OW 292
6558: OR
6559: NOT
6560: IFFALSE 6571
// wait ( 0 0$6 ) ;
6562: LD_INT 210
6564: PPUSH
6565: CALL_OW 67
6569: GO 6533
// Say ( Heike , DAm3-H-1 ) ;
6571: LD_EXP 12
6575: PPUSH
6576: LD_STRING DAm3-H-1
6578: PPUSH
6579: CALL_OW 88
// enable ( 3 ) ;
6583: LD_INT 3
6585: ENABLE_MARKED
// IN_ATTACK = true ;
6586: LD_ADDR_EXP 24
6590: PUSH
6591: LD_INT 1
6593: ST_TO_ADDR
// end ;
6594: END
// every 0 0$7 trigger FIlterAllUnits ( [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) = 0 marked 3 do
6595: LD_INT 22
6597: PUSH
6598: LD_EXP 3
6602: PUSH
6603: EMPTY
6604: LIST
6605: LIST
6606: PUSH
6607: LD_INT 21
6609: PUSH
6610: LD_INT 1
6612: PUSH
6613: EMPTY
6614: LIST
6615: LIST
6616: PUSH
6617: EMPTY
6618: LIST
6619: LIST
6620: PPUSH
6621: CALL_OW 69
6625: PUSH
6626: LD_INT 0
6628: EQUAL
6629: IFFALSE 6654
6631: GO 6633
6633: DISABLE
// begin Say ( Heike , DAm3-H-1a ) ;
6634: LD_EXP 12
6638: PPUSH
6639: LD_STRING DAm3-H-1a
6641: PPUSH
6642: CALL_OW 88
// IN_ATTACK = false ;
6646: LD_ADDR_EXP 24
6650: PUSH
6651: LD_INT 0
6653: ST_TO_ADDR
// end ;
6654: END
// every 0 0$13 trigger AttacksNo = 4 do
6655: LD_EXP 37
6659: PUSH
6660: LD_INT 4
6662: EQUAL
6663: IFFALSE 6721
6665: GO 6667
6667: DISABLE
// begin while not ( See ( Amici , bunkr1 ) or See ( Amici , dep ) ) do
6668: LD_EXP 3
6672: PPUSH
6673: LD_INT 4
6675: PPUSH
6676: CALL_OW 292
6680: PUSH
6681: LD_EXP 3
6685: PPUSH
6686: LD_INT 26
6688: PPUSH
6689: CALL_OW 292
6693: OR
6694: NOT
6695: IFFALSE 6706
// wait ( 0 0$6 ) ;
6697: LD_INT 210
6699: PPUSH
6700: CALL_OW 67
6704: GO 6668
// Say ( Heike , DAm4-H-1 ) ;
6706: LD_EXP 12
6710: PPUSH
6711: LD_STRING DAm4-H-1
6713: PPUSH
6714: CALL_OW 88
// enable ( 3 ) ;
6718: LD_INT 3
6720: ENABLE_MARKED
// end ;
6721: END
// every 0 0$3 trigger ( FilterUnitsInArea ( kraj_kop , [ [ f_side , Amici ] ] ) > 0 and FilterUnitsInArea ( Ambase , [ [ f_side , You ] , [ f_type , unit_human ] ] ) > 0 ) do var pom , i ;
6722: LD_INT 4
6724: PPUSH
6725: LD_INT 22
6727: PUSH
6728: LD_EXP 3
6732: PUSH
6733: EMPTY
6734: LIST
6735: LIST
6736: PUSH
6737: EMPTY
6738: LIST
6739: PPUSH
6740: CALL_OW 70
6744: PUSH
6745: LD_INT 0
6747: GREATER
6748: PUSH
6749: LD_INT 7
6751: PPUSH
6752: LD_INT 22
6754: PUSH
6755: LD_EXP 1
6759: PUSH
6760: EMPTY
6761: LIST
6762: LIST
6763: PUSH
6764: LD_INT 21
6766: PUSH
6767: LD_INT 1
6769: PUSH
6770: EMPTY
6771: LIST
6772: LIST
6773: PUSH
6774: EMPTY
6775: LIST
6776: LIST
6777: PPUSH
6778: CALL_OW 70
6782: PUSH
6783: LD_INT 0
6785: GREATER
6786: AND
6787: IFFALSE 6950
6789: GO 6791
6791: DISABLE
6792: LD_INT 0
6794: PPUSH
6795: PPUSH
// begin pom = FilterUnitsInArea ( kopec , [ [ f_side , You ] ] ) ;
6796: LD_ADDR_VAR 0 1
6800: PUSH
6801: LD_INT 3
6803: PPUSH
6804: LD_INT 22
6806: PUSH
6807: LD_EXP 1
6811: PUSH
6812: EMPTY
6813: LIST
6814: LIST
6815: PUSH
6816: EMPTY
6817: LIST
6818: PPUSH
6819: CALL_OW 70
6823: ST_TO_ADDR
// wait ( 0 0$10 ) ;
6824: LD_INT 350
6826: PPUSH
6827: CALL_OW 67
// DialogueOn ;
6831: CALL_OW 6
// if IsOK ( Oswald ) and dialog_kopec = 1 then
6835: LD_EXP 13
6839: PPUSH
6840: CALL_OW 302
6844: PUSH
6845: LD_LOC 6
6849: PUSH
6850: LD_INT 1
6852: EQUAL
6853: AND
6854: IFFALSE 6870
// Say ( Oswald , DAmHill-Osw-1 ) else
6856: LD_EXP 13
6860: PPUSH
6861: LD_STRING DAmHill-Osw-1
6863: PPUSH
6864: CALL_OW 88
6868: GO 6946
// if IsOK ( Oswald ) and dialog_kopec = 0 then
6870: LD_EXP 13
6874: PPUSH
6875: CALL_OW 302
6879: PUSH
6880: LD_LOC 6
6884: PUSH
6885: LD_INT 0
6887: EQUAL
6888: AND
6889: IFFALSE 6905
// Say ( Oswald , DAmHill-Osw-1a ) else
6891: LD_EXP 13
6895: PPUSH
6896: LD_STRING DAmHill-Osw-1a
6898: PPUSH
6899: CALL_OW 88
6903: GO 6946
// if chcipnuli ( pom ) > 0 then
6905: LD_VAR 0 1
6909: PPUSH
6910: CALL 6953 0 1
6914: PUSH
6915: LD_INT 0
6917: GREATER
6918: IFFALSE 6934
// Say ( Heike , DAmHill-H-1 ) else
6920: LD_EXP 12
6924: PPUSH
6925: LD_STRING DAmHill-H-1
6927: PPUSH
6928: CALL_OW 88
6932: GO 6946
// Say ( Heike , DAmHill-H-1a ) ;
6934: LD_EXP 12
6938: PPUSH
6939: LD_STRING DAmHill-H-1a
6941: PPUSH
6942: CALL_OW 88
// DialogueOff ;
6946: CALL_OW 7
// end ;
6950: PPOPN 2
6952: END
// function chcipnuli ( l ) ; var i , pom ; var a ; begin
6953: LD_INT 0
6955: PPUSH
6956: PPUSH
6957: PPUSH
6958: PPUSH
// pom = [ ] ;
6959: LD_ADDR_VAR 0 4
6963: PUSH
6964: EMPTY
6965: ST_TO_ADDR
// for i in l do
6966: LD_ADDR_VAR 0 3
6970: PUSH
6971: LD_VAR 0 1
6975: PUSH
6976: FOR_IN
6977: IFFALSE 7008
// if IsDead ( i ) then
6979: LD_VAR 0 3
6983: PPUSH
6984: CALL_OW 301
6988: IFFALSE 7006
// pom = pom ^ i ;
6990: LD_ADDR_VAR 0 4
6994: PUSH
6995: LD_VAR 0 4
6999: PUSH
7000: LD_VAR 0 3
7004: ADD
7005: ST_TO_ADDR
7006: GO 6976
7008: POP
7009: POP
// if 0 + pom = 0 + l then
7010: LD_INT 0
7012: PUSH
7013: LD_VAR 0 4
7017: PLUS
7018: PUSH
7019: LD_INT 0
7021: PUSH
7022: LD_VAR 0 1
7026: PLUS
7027: EQUAL
7028: IFFALSE 7040
// a = 0 else
7030: LD_ADDR_VAR 0 5
7034: PUSH
7035: LD_INT 0
7037: ST_TO_ADDR
7038: GO 7064
// a = ( 0 + l ) - ( 0 + pom ) ;
7040: LD_ADDR_VAR 0 5
7044: PUSH
7045: LD_INT 0
7047: PUSH
7048: LD_VAR 0 1
7052: PLUS
7053: PUSH
7054: LD_INT 0
7056: PUSH
7057: LD_VAR 0 4
7061: PLUS
7062: MINUS
7063: ST_TO_ADDR
// result := a ;
7064: LD_ADDR_VAR 0 2
7068: PUSH
7069: LD_VAR 0 5
7073: ST_TO_ADDR
// end ;
7074: LD_VAR 0 2
7078: RET
// function GetPeople ( sex , povolani , diffseznam ) ; var pom , pom1 , pom2 , pom3 , pom4 ; begin
7079: LD_INT 0
7081: PPUSH
7082: PPUSH
7083: PPUSH
7084: PPUSH
7085: PPUSH
7086: PPUSH
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_scientistic ] , [ f_sex , sex ] ] ) ;
7087: LD_ADDR_VAR 0 6
7091: PUSH
7092: LD_INT 22
7094: PUSH
7095: LD_EXP 1
7099: PUSH
7100: EMPTY
7101: LIST
7102: LIST
7103: PUSH
7104: LD_INT 25
7106: PUSH
7107: LD_INT 4
7109: PUSH
7110: EMPTY
7111: LIST
7112: LIST
7113: PUSH
7114: LD_INT 26
7116: PUSH
7117: LD_VAR 0 1
7121: PUSH
7122: EMPTY
7123: LIST
7124: LIST
7125: PUSH
7126: EMPTY
7127: LIST
7128: LIST
7129: LIST
7130: PPUSH
7131: CALL_OW 69
7135: ST_TO_ADDR
// pom2 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_mechanic ] , [ f_sex , sex ] ] ) ;
7136: LD_ADDR_VAR 0 7
7140: PUSH
7141: LD_INT 22
7143: PUSH
7144: LD_EXP 1
7148: PUSH
7149: EMPTY
7150: LIST
7151: LIST
7152: PUSH
7153: LD_INT 25
7155: PUSH
7156: LD_INT 3
7158: PUSH
7159: EMPTY
7160: LIST
7161: LIST
7162: PUSH
7163: LD_INT 26
7165: PUSH
7166: LD_VAR 0 1
7170: PUSH
7171: EMPTY
7172: LIST
7173: LIST
7174: PUSH
7175: EMPTY
7176: LIST
7177: LIST
7178: LIST
7179: PPUSH
7180: CALL_OW 69
7184: ST_TO_ADDR
// pom3 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_engineer ] , [ f_sex , sex ] ] ) ;
7185: LD_ADDR_VAR 0 8
7189: PUSH
7190: LD_INT 22
7192: PUSH
7193: LD_EXP 1
7197: PUSH
7198: EMPTY
7199: LIST
7200: LIST
7201: PUSH
7202: LD_INT 25
7204: PUSH
7205: LD_INT 2
7207: PUSH
7208: EMPTY
7209: LIST
7210: LIST
7211: PUSH
7212: LD_INT 26
7214: PUSH
7215: LD_VAR 0 1
7219: PUSH
7220: EMPTY
7221: LIST
7222: LIST
7223: PUSH
7224: EMPTY
7225: LIST
7226: LIST
7227: LIST
7228: PPUSH
7229: CALL_OW 69
7233: ST_TO_ADDR
// pom4 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_soldier ] , [ f_sex , sex ] ] ) ;
7234: LD_ADDR_VAR 0 9
7238: PUSH
7239: LD_INT 22
7241: PUSH
7242: LD_EXP 1
7246: PUSH
7247: EMPTY
7248: LIST
7249: LIST
7250: PUSH
7251: LD_INT 25
7253: PUSH
7254: LD_INT 1
7256: PUSH
7257: EMPTY
7258: LIST
7259: LIST
7260: PUSH
7261: LD_INT 26
7263: PUSH
7264: LD_VAR 0 1
7268: PUSH
7269: EMPTY
7270: LIST
7271: LIST
7272: PUSH
7273: EMPTY
7274: LIST
7275: LIST
7276: LIST
7277: PPUSH
7278: CALL_OW 69
7282: ST_TO_ADDR
// case povolani of class_scientistic :
7283: LD_VAR 0 2
7287: PUSH
7288: LD_INT 4
7290: DOUBLE
7291: EQUAL
7292: IFTRUE 7296
7294: GO 7309
7296: POP
// pom = pom1 ; class_mechanic :
7297: LD_ADDR_VAR 0 5
7301: PUSH
7302: LD_VAR 0 6
7306: ST_TO_ADDR
7307: GO 7373
7309: LD_INT 3
7311: DOUBLE
7312: EQUAL
7313: IFTRUE 7317
7315: GO 7330
7317: POP
// pom = pom2 ; class_engineer :
7318: LD_ADDR_VAR 0 5
7322: PUSH
7323: LD_VAR 0 7
7327: ST_TO_ADDR
7328: GO 7373
7330: LD_INT 2
7332: DOUBLE
7333: EQUAL
7334: IFTRUE 7338
7336: GO 7351
7338: POP
// pom = pom3 ; class_soldier :
7339: LD_ADDR_VAR 0 5
7343: PUSH
7344: LD_VAR 0 8
7348: ST_TO_ADDR
7349: GO 7373
7351: LD_INT 1
7353: DOUBLE
7354: EQUAL
7355: IFTRUE 7359
7357: GO 7372
7359: POP
// pom = pom4 ; end ;
7360: LD_ADDR_VAR 0 5
7364: PUSH
7365: LD_VAR 0 9
7369: ST_TO_ADDR
7370: GO 7373
7372: POP
// if povolani <> class_scientistic then
7373: LD_VAR 0 2
7377: PUSH
7378: LD_INT 4
7380: NONEQUAL
7381: IFFALSE 7399
// pom = pom ^ pom1 ;
7383: LD_ADDR_VAR 0 5
7387: PUSH
7388: LD_VAR 0 5
7392: PUSH
7393: LD_VAR 0 6
7397: ADD
7398: ST_TO_ADDR
// if povolani <> class_mechanic then
7399: LD_VAR 0 2
7403: PUSH
7404: LD_INT 3
7406: NONEQUAL
7407: IFFALSE 7425
// pom = pom ^ pom2 ;
7409: LD_ADDR_VAR 0 5
7413: PUSH
7414: LD_VAR 0 5
7418: PUSH
7419: LD_VAR 0 7
7423: ADD
7424: ST_TO_ADDR
// if povolani <> class_engineer then
7425: LD_VAR 0 2
7429: PUSH
7430: LD_INT 2
7432: NONEQUAL
7433: IFFALSE 7451
// pom = pom ^ pom3 ;
7435: LD_ADDR_VAR 0 5
7439: PUSH
7440: LD_VAR 0 5
7444: PUSH
7445: LD_VAR 0 8
7449: ADD
7450: ST_TO_ADDR
// if povolani <> class_soldier then
7451: LD_VAR 0 2
7455: PUSH
7456: LD_INT 1
7458: NONEQUAL
7459: IFFALSE 7477
// pom = pom ^ pom4 ;
7461: LD_ADDR_VAR 0 5
7465: PUSH
7466: LD_VAR 0 5
7470: PUSH
7471: LD_VAR 0 9
7475: ADD
7476: ST_TO_ADDR
// result := pom diff diffseznam ;
7477: LD_ADDR_VAR 0 4
7481: PUSH
7482: LD_VAR 0 5
7486: PUSH
7487: LD_VAR 0 3
7491: DIFF
7492: ST_TO_ADDR
// end ; end_of_file
7493: LD_VAR 0 4
7497: RET
// export UTEKLI_VEDCI ; export TYKANI ; export levely ; export utok1_casy ; export utok2_casy ; export utok3_casy ; export utok4_casy ; export lidi_ut1 ; export lidi_ut2 ; export function nastav_obtiznosti ; begin
7498: LD_INT 0
7500: PPUSH
// UTEKLI_VEDCI = true ;
7501: LD_ADDR_EXP 27
7505: PUSH
7506: LD_INT 1
7508: ST_TO_ADDR
// utok1_casy = [ 3 3$30 , 2 2$30 , 2 2$00 ] ;
7509: LD_ADDR_EXP 30
7513: PUSH
7514: LD_INT 7350
7516: PUSH
7517: LD_INT 5250
7519: PUSH
7520: LD_INT 4200
7522: PUSH
7523: EMPTY
7524: LIST
7525: LIST
7526: LIST
7527: ST_TO_ADDR
// lidi_ut1 = [ 3 , 4 , 5 ] ;
7528: LD_ADDR_EXP 34
7532: PUSH
7533: LD_INT 3
7535: PUSH
7536: LD_INT 4
7538: PUSH
7539: LD_INT 5
7541: PUSH
7542: EMPTY
7543: LIST
7544: LIST
7545: LIST
7546: ST_TO_ADDR
// levely = [ 1 , 2 , 2 ] ;
7547: LD_ADDR_EXP 29
7551: PUSH
7552: LD_INT 1
7554: PUSH
7555: LD_INT 2
7557: PUSH
7558: LD_INT 2
7560: PUSH
7561: EMPTY
7562: LIST
7563: LIST
7564: LIST
7565: ST_TO_ADDR
// utok2_casy = [ 4 4$30 , 3 3$30 , 2 2$30 ] ;
7566: LD_ADDR_EXP 31
7570: PUSH
7571: LD_INT 9450
7573: PUSH
7574: LD_INT 7350
7576: PUSH
7577: LD_INT 5250
7579: PUSH
7580: EMPTY
7581: LIST
7582: LIST
7583: LIST
7584: ST_TO_ADDR
// lidi_ut2 = [ 3 , 4 , 5 ] ;
7585: LD_ADDR_EXP 35
7589: PUSH
7590: LD_INT 3
7592: PUSH
7593: LD_INT 4
7595: PUSH
7596: LD_INT 5
7598: PUSH
7599: EMPTY
7600: LIST
7601: LIST
7602: LIST
7603: ST_TO_ADDR
// utok3_casy = [ 5 5$0 , 4 4$0 , 2 2$0 ] ;
7604: LD_ADDR_EXP 32
7608: PUSH
7609: LD_INT 10500
7611: PUSH
7612: LD_INT 8400
7614: PUSH
7615: LD_INT 4200
7617: PUSH
7618: EMPTY
7619: LIST
7620: LIST
7621: LIST
7622: ST_TO_ADDR
// utok4_casy = [ 4 4$30 , 3 3$30 , 2 2$0 ] ;
7623: LD_ADDR_EXP 33
7627: PUSH
7628: LD_INT 9450
7630: PUSH
7631: LD_INT 7350
7633: PUSH
7634: LD_INT 4200
7636: PUSH
7637: EMPTY
7638: LIST
7639: LIST
7640: LIST
7641: ST_TO_ADDR
// end ; end_of_file
7642: LD_VAR 0 1
7646: RET
// var AM1 , AM2 ; export UTEKLI ; var EXITS_ON ; export AttacksNo ; every 0 0$0.5 do
7647: GO 7649
7649: DISABLE
// begin AM1 = FilterUnitsInArea ( Ambase1 , [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
7650: LD_ADDR_LOC 7
7654: PUSH
7655: LD_INT 5
7657: PPUSH
7658: LD_INT 22
7660: PUSH
7661: LD_EXP 3
7665: PUSH
7666: EMPTY
7667: LIST
7668: LIST
7669: PUSH
7670: LD_INT 21
7672: PUSH
7673: LD_INT 1
7675: PUSH
7676: EMPTY
7677: LIST
7678: LIST
7679: PUSH
7680: EMPTY
7681: LIST
7682: LIST
7683: PPUSH
7684: CALL_OW 70
7688: ST_TO_ADDR
// AM2 = FilterUnitsInArea ( Ambase2 , [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
7689: LD_ADDR_LOC 8
7693: PUSH
7694: LD_INT 6
7696: PPUSH
7697: LD_INT 22
7699: PUSH
7700: LD_EXP 3
7704: PUSH
7705: EMPTY
7706: LIST
7707: LIST
7708: PUSH
7709: LD_INT 21
7711: PUSH
7712: LD_INT 1
7714: PUSH
7715: EMPTY
7716: LIST
7717: LIST
7718: PUSH
7719: EMPTY
7720: LIST
7721: LIST
7722: PPUSH
7723: CALL_OW 70
7727: ST_TO_ADDR
// EXITS_ON = false ;
7728: LD_ADDR_LOC 9
7732: PUSH
7733: LD_INT 0
7735: ST_TO_ADDR
// UTEKLI = 0 ;
7736: LD_ADDR_EXP 36
7740: PUSH
7741: LD_INT 0
7743: ST_TO_ADDR
// end ;
7744: END
// every 0 0$2 do
7745: GO 7747
7747: DISABLE
// begin ComEnterUnit ( vojcl1 , bunkr1 ) ;
7748: LD_INT 7
7750: PPUSH
7751: LD_INT 4
7753: PPUSH
7754: CALL_OW 120
// end ;
7758: END
// export function uprav_utok_amici ; begin
7759: LD_INT 0
7761: PPUSH
// EXITS_ON = true ;
7762: LD_ADDR_LOC 9
7766: PUSH
7767: LD_INT 1
7769: ST_TO_ADDR
// ComExitBuilding ( vojcl1 ) ;
7770: LD_INT 7
7772: PPUSH
7773: CALL_OW 122
// AddComAgressiveMove ( AM1 , 30 , 2 ) ;
7777: LD_LOC 7
7781: PPUSH
7782: LD_INT 30
7784: PPUSH
7785: LD_INT 2
7787: PPUSH
7788: CALL_OW 174
// AddComMoveXY ( AM2 , 34 , 67 ) ;
7792: LD_LOC 8
7796: PPUSH
7797: LD_INT 34
7799: PPUSH
7800: LD_INT 67
7802: PPUSH
7803: CALL_OW 171
// end ;
7807: LD_VAR 0 1
7811: RET
// every 0 0$1 trigger EXITS_ON do var pom , i ;
7812: LD_LOC 9
7816: IFFALSE 7915
7818: GO 7820
7820: DISABLE
7821: LD_INT 0
7823: PPUSH
7824: PPUSH
// begin pom = FilterUnitsInArea ( EXITAM , [ [ f_side , Amici ] ] ) ;
7825: LD_ADDR_VAR 0 1
7829: PUSH
7830: LD_INT 8
7832: PPUSH
7833: LD_INT 22
7835: PUSH
7836: LD_EXP 3
7840: PUSH
7841: EMPTY
7842: LIST
7843: LIST
7844: PUSH
7845: EMPTY
7846: LIST
7847: PPUSH
7848: CALL_OW 70
7852: ST_TO_ADDR
// for i in pom do
7853: LD_ADDR_VAR 0 2
7857: PUSH
7858: LD_VAR 0 1
7862: PUSH
7863: FOR_IN
7864: IFFALSE 7906
// begin RemoveUnit ( i ) ;
7866: LD_VAR 0 2
7870: PPUSH
7871: CALL_OW 64
// if GetClass ( i ) <> class_apeman_engineer then
7875: LD_VAR 0 2
7879: PPUSH
7880: CALL_OW 257
7884: PUSH
7885: LD_INT 16
7887: NONEQUAL
7888: IFFALSE 7904
// UTEKLI = UTEKLI + 1 ;
7890: LD_ADDR_EXP 36
7894: PUSH
7895: LD_EXP 36
7899: PUSH
7900: LD_INT 1
7902: PLUS
7903: ST_TO_ADDR
// end ;
7904: GO 7863
7906: POP
7907: POP
// if EXITS_ON then
7908: LD_LOC 9
7912: IFFALSE 7915
// enable ;
7914: ENABLE
// end ;
7915: PPOPN 2
7917: END
// every 0 0$1 trigger FilterAllUnits ( [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) = 0 do
7918: LD_INT 22
7920: PUSH
7921: LD_EXP 3
7925: PUSH
7926: EMPTY
7927: LIST
7928: LIST
7929: PUSH
7930: LD_INT 21
7932: PUSH
7933: LD_INT 1
7935: PUSH
7936: EMPTY
7937: LIST
7938: LIST
7939: PUSH
7940: EMPTY
7941: LIST
7942: LIST
7943: PPUSH
7944: CALL_OW 69
7948: PUSH
7949: LD_INT 0
7951: EQUAL
7952: IFFALSE 7991
7954: GO 7956
7956: DISABLE
// begin EXITS_ON = false ;
7957: LD_ADDR_LOC 9
7961: PUSH
7962: LD_INT 0
7964: ST_TO_ADDR
// if UTEKLI > 0 then
7965: LD_EXP 36
7969: PUSH
7970: LD_INT 0
7972: GREATER
7973: IFFALSE 7984
// escape_dialog ( 1 ) else
7975: LD_INT 1
7977: PPUSH
7978: CALL 4759 0 1
7982: GO 7991
// escape_dialog ( 2 ) ;
7984: LD_INT 2
7986: PPUSH
7987: CALL 4759 0 1
// end ;
7991: END
// every 0 0$10 trigger utoky_begin do var i ;
7992: LD_EXP 26
7996: IFFALSE 8109
7998: GO 8000
8000: DISABLE
8001: LD_INT 0
8003: PPUSH
// begin wait ( utok1_casy [ difficulty ] ) ;
8004: LD_EXP 30
8008: PUSH
8009: LD_OWVAR 67
8013: ARRAY
8014: PPUSH
8015: CALL_OW 67
// wait ( 1 1$30 - 0 0$20 * UTEKLI ) ;
8019: LD_INT 3150
8021: PUSH
8022: LD_INT 700
8024: PUSH
8025: LD_EXP 36
8029: MUL
8030: MINUS
8031: PPUSH
8032: CALL_OW 67
// create_attack1 ;
8036: CALL 1101 0 0
// wait ( 0 0$1 ) ;
8040: LD_INT 35
8042: PPUSH
8043: CALL_OW 67
// for i in CREATE_ATTACK1_LIST do
8047: LD_ADDR_VAR 0 1
8051: PUSH
8052: LD_EXP 4
8056: PUSH
8057: FOR_IN
8058: IFFALSE 8077
// PlaceUnitArea ( i , attack1 , false ) ;
8060: LD_VAR 0 1
8064: PPUSH
8065: LD_INT 12
8067: PPUSH
8068: LD_INT 0
8070: PPUSH
8071: CALL_OW 49
8075: GO 8057
8077: POP
8078: POP
// wait ( 0 0$1 ) ;
8079: LD_INT 35
8081: PPUSH
8082: CALL_OW 67
// ComAgressiveMove ( CREATE_ATTACK1_LIST , 41 , 36 ) ;
8086: LD_EXP 4
8090: PPUSH
8091: LD_INT 41
8093: PPUSH
8094: LD_INT 36
8096: PPUSH
8097: CALL_OW 114
// AttacksNo = 1 ;
8101: LD_ADDR_EXP 37
8105: PUSH
8106: LD_INT 1
8108: ST_TO_ADDR
// end ;
8109: PPOPN 1
8111: END
// every 0 0$10 trigger AttacksNo = 1 do var i ;
8112: LD_EXP 37
8116: PUSH
8117: LD_INT 1
8119: EQUAL
8120: IFFALSE 8216
8122: GO 8124
8124: DISABLE
8125: LD_INT 0
8127: PPUSH
// begin wait ( utok2_casy [ difficulty ] ) ;
8128: LD_EXP 31
8132: PUSH
8133: LD_OWVAR 67
8137: ARRAY
8138: PPUSH
8139: CALL_OW 67
// create_attack2 ;
8143: CALL 1754 0 0
// wait ( 0 0$1 ) ;
8147: LD_INT 35
8149: PPUSH
8150: CALL_OW 67
// for i in CREATE_ATTACK2_LIST do
8154: LD_ADDR_VAR 0 1
8158: PUSH
8159: LD_EXP 5
8163: PUSH
8164: FOR_IN
8165: IFFALSE 8184
// PlaceUnitArea ( i , attack2 , false ) ;
8167: LD_VAR 0 1
8171: PPUSH
8172: LD_INT 13
8174: PPUSH
8175: LD_INT 0
8177: PPUSH
8178: CALL_OW 49
8182: GO 8164
8184: POP
8185: POP
// wait ( 0 0$1 ) ;
8186: LD_INT 35
8188: PPUSH
8189: CALL_OW 67
// ComAgressiveMove ( CREATE_ATTACK2_LIST , 38 , 30 ) ;
8193: LD_EXP 5
8197: PPUSH
8198: LD_INT 38
8200: PPUSH
8201: LD_INT 30
8203: PPUSH
8204: CALL_OW 114
// AttacksNo = 2 ;
8208: LD_ADDR_EXP 37
8212: PUSH
8213: LD_INT 2
8215: ST_TO_ADDR
// end ;
8216: PPOPN 1
8218: END
// every 0 0$10 trigger AttacksNo = 2 do var i ;
8219: LD_EXP 37
8223: PUSH
8224: LD_INT 2
8226: EQUAL
8227: IFFALSE 8417
8229: GO 8231
8231: DISABLE
8232: LD_INT 0
8234: PPUSH
// begin wait ( utok3_casy [ difficulty ] ) ;
8235: LD_EXP 32
8239: PUSH
8240: LD_OWVAR 67
8244: ARRAY
8245: PPUSH
8246: CALL_OW 67
// create_attack3 ;
8250: CALL 1232 0 0
// wait ( 0 0$1 ) ;
8254: LD_INT 35
8256: PPUSH
8257: CALL_OW 67
// for i in CREATE_ATTACK3_LIST1 do
8261: LD_ADDR_VAR 0 1
8265: PUSH
8266: LD_EXP 6
8270: PUSH
8271: FOR_IN
8272: IFFALSE 8291
// PlaceUnitArea ( i , attack1 , false ) ;
8274: LD_VAR 0 1
8278: PPUSH
8279: LD_INT 12
8281: PPUSH
8282: LD_INT 0
8284: PPUSH
8285: CALL_OW 49
8289: GO 8271
8291: POP
8292: POP
// for i in CREATE_ATTACK3_LIST2 do
8293: LD_ADDR_VAR 0 1
8297: PUSH
8298: LD_EXP 7
8302: PUSH
8303: FOR_IN
8304: IFFALSE 8323
// PlaceUnitArea ( i , attack2 , false ) ;
8306: LD_VAR 0 1
8310: PPUSH
8311: LD_INT 13
8313: PPUSH
8314: LD_INT 0
8316: PPUSH
8317: CALL_OW 49
8321: GO 8303
8323: POP
8324: POP
// for i in CREATE_ATTACK3_LIST3 do
8325: LD_ADDR_VAR 0 1
8329: PUSH
8330: LD_EXP 8
8334: PUSH
8335: FOR_IN
8336: IFFALSE 8355
// PlaceUnitArea ( i , attack3 , false ) ;
8338: LD_VAR 0 1
8342: PPUSH
8343: LD_INT 14
8345: PPUSH
8346: LD_INT 0
8348: PPUSH
8349: CALL_OW 49
8353: GO 8335
8355: POP
8356: POP
// wait ( 0 0$1 ) ;
8357: LD_INT 35
8359: PPUSH
8360: CALL_OW 67
// ComAgressiveMove ( CREATE_ATTACK3_LIST2 , 38 , 30 ) ;
8364: LD_EXP 7
8368: PPUSH
8369: LD_INT 38
8371: PPUSH
8372: LD_INT 30
8374: PPUSH
8375: CALL_OW 114
// ComAgressiveMove ( CREATE_ATTACK3_LIST1 , 41 , 40 ) ;
8379: LD_EXP 6
8383: PPUSH
8384: LD_INT 41
8386: PPUSH
8387: LD_INT 40
8389: PPUSH
8390: CALL_OW 114
// ComMoveXY ( CREATE_ATTACK3_LIST3 , 53 , 36 ) ;
8394: LD_EXP 8
8398: PPUSH
8399: LD_INT 53
8401: PPUSH
8402: LD_INT 36
8404: PPUSH
8405: CALL_OW 111
// AttacksNo = 3 ;
8409: LD_ADDR_EXP 37
8413: PUSH
8414: LD_INT 3
8416: ST_TO_ADDR
// end ;
8417: PPOPN 1
8419: END
// every 0 0$10 trigger AttacksNo = 3 do var i ;
8420: LD_EXP 37
8424: PUSH
8425: LD_INT 3
8427: EQUAL
8428: IFFALSE 8524
8430: GO 8432
8432: DISABLE
8433: LD_INT 0
8435: PPUSH
// begin wait ( utok4_casy [ difficulty ] ) ;
8436: LD_EXP 33
8440: PUSH
8441: LD_OWVAR 67
8445: ARRAY
8446: PPUSH
8447: CALL_OW 67
// create_attack4 ;
8451: CALL 1945 0 0
// wait ( 0 0$1 ) ;
8455: LD_INT 35
8457: PPUSH
8458: CALL_OW 67
// for i in CREATE_ATTACK4_LIST do
8462: LD_ADDR_VAR 0 1
8466: PUSH
8467: LD_EXP 9
8471: PUSH
8472: FOR_IN
8473: IFFALSE 8492
// PlaceUnitArea ( i , attack4 , false ) ;
8475: LD_VAR 0 1
8479: PPUSH
8480: LD_INT 15
8482: PPUSH
8483: LD_INT 0
8485: PPUSH
8486: CALL_OW 49
8490: GO 8472
8492: POP
8493: POP
// wait ( 0 0$1 ) ;
8494: LD_INT 35
8496: PPUSH
8497: CALL_OW 67
// ComAgressiveMove ( CREATE_ATTACK4_LIST , 38 , 30 ) ;
8501: LD_EXP 9
8505: PPUSH
8506: LD_INT 38
8508: PPUSH
8509: LD_INT 30
8511: PPUSH
8512: CALL_OW 114
// AttacksNo = 4 ;
8516: LD_ADDR_EXP 37
8520: PUSH
8521: LD_INT 4
8523: ST_TO_ADDR
// end ;
8524: PPOPN 1
8526: END
// every 0 0$45 trigger AttacksNo = 4 do var i ; var pom ;
8527: LD_EXP 37
8531: PUSH
8532: LD_INT 4
8534: EQUAL
8535: IFFALSE 8599
8537: GO 8539
8539: DISABLE
8540: LD_INT 0
8542: PPUSH
8543: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , You ] ] ) ;
8544: LD_ADDR_VAR 0 2
8548: PUSH
8549: LD_INT 22
8551: PUSH
8552: LD_EXP 1
8556: PUSH
8557: EMPTY
8558: LIST
8559: LIST
8560: PUSH
8561: EMPTY
8562: LIST
8563: PPUSH
8564: CALL_OW 69
8568: ST_TO_ADDR
// if pom > 0 then
8569: LD_VAR 0 2
8573: PUSH
8574: LD_INT 0
8576: GREATER
8577: IFFALSE 8598
// begin create_and_place_unit_5 ;
8579: CALL 2469 0 0
// ComAgressiveMove ( PODPORA_U4 , 38 , 30 ) ;
8583: LD_EXP 10
8587: PPUSH
8588: LD_INT 38
8590: PPUSH
8591: LD_INT 30
8593: PPUSH
8594: CALL_OW 114
// end ; enable ;
8598: ENABLE
// end ;
8599: PPOPN 2
8601: END
