// var am , oth ; var john , joan , sik , lucy , grant , will , phi , off , others , budovy ; var joanok , oothersok , buildingsok , killhim , buildinglives ; var disable_07 , debug , follow ; starting begin am = 1 ;
   0: LD_ADDR_LOC 1
   4: PUSH
   5: LD_INT 1
   7: ST_TO_ADDR
// oth = 4 ;
   8: LD_ADDR_LOC 2
  12: PUSH
  13: LD_INT 4
  15: ST_TO_ADDR
// revealfogarea ( am , rev ) ;
  16: LD_LOC 1
  20: PPUSH
  21: LD_INT 5
  23: PPUSH
  24: CALL_OW 332
// debug = false ;
  28: LD_ADDR_LOC 19
  32: PUSH
  33: LD_INT 0
  35: ST_TO_ADDR
// follow = true ;
  36: LD_ADDR_LOC 20
  40: PUSH
  41: LD_INT 1
  43: ST_TO_ADDR
// joanok = true ;
  44: LD_ADDR_LOC 13
  48: PUSH
  49: LD_INT 1
  51: ST_TO_ADDR
// oothersok = true ;
  52: LD_ADDR_LOC 14
  56: PUSH
  57: LD_INT 1
  59: ST_TO_ADDR
// buildingsok = true ;
  60: LD_ADDR_LOC 15
  64: PUSH
  65: LD_INT 1
  67: ST_TO_ADDR
// killhim = false ;
  68: LD_ADDR_LOC 16
  72: PUSH
  73: LD_INT 0
  75: ST_TO_ADDR
// budovy = [ depot1 , depot2 , depot3 , lab1 , arm1 , arm2 , eon ] ;
  76: LD_ADDR_LOC 12
  80: PUSH
  81: LD_INT 9
  83: PUSH
  84: LD_INT 10
  86: PUSH
  87: LD_INT 11
  89: PUSH
  90: LD_INT 8
  92: PUSH
  93: LD_INT 12
  95: PUSH
  96: LD_INT 13
  98: PUSH
  99: LD_INT 14
 101: PUSH
 102: EMPTY
 103: LIST
 104: LIST
 105: LIST
 106: LIST
 107: LIST
 108: LIST
 109: LIST
 110: ST_TO_ADDR
// disable ( 01 ) ;
 111: LD_INT 1
 113: DISABLE_MARKED
// disable ( 02 ) ;
 114: LD_INT 2
 116: DISABLE_MARKED
// disable ( 03 ) ;
 117: LD_INT 3
 119: DISABLE_MARKED
// disable ( 04 ) ;
 120: LD_INT 4
 122: DISABLE_MARKED
// disable ( 05 ) ;
 123: LD_INT 5
 125: DISABLE_MARKED
// disable_07 = false ;
 126: LD_ADDR_LOC 18
 130: PUSH
 131: LD_INT 0
 133: ST_TO_ADDR
// uc_side = am ;
 134: LD_ADDR_OWVAR 20
 138: PUSH
 139: LD_LOC 1
 143: ST_TO_ADDR
// john = newcharacter ( JMM ) ;
 144: LD_ADDR_LOC 3
 148: PUSH
 149: LD_STRING JMM
 151: PPUSH
 152: CALL_OW 25
 156: ST_TO_ADDR
// uc_side = oth ;
 157: LD_ADDR_OWVAR 20
 161: PUSH
 162: LD_LOC 2
 166: ST_TO_ADDR
// joan = newcharacter ( Joan ) ;
 167: LD_ADDR_LOC 4
 171: PUSH
 172: LD_STRING Joan
 174: PPUSH
 175: CALL_OW 25
 179: ST_TO_ADDR
// lucy = newcharacter ( Donaldson ) ;
 180: LD_ADDR_LOC 6
 184: PUSH
 185: LD_STRING Donaldson
 187: PPUSH
 188: CALL_OW 25
 192: ST_TO_ADDR
// grant = newcharacter ( Gary ) ;
 193: LD_ADDR_LOC 7
 197: PUSH
 198: LD_STRING Gary
 200: PPUSH
 201: CALL_OW 25
 205: ST_TO_ADDR
// sik = newcharacter ( Sikorski ) ;
 206: LD_ADDR_LOC 5
 210: PUSH
 211: LD_STRING Sikorski
 213: PPUSH
 214: CALL_OW 25
 218: ST_TO_ADDR
// will = newcharacter ( Williams ) ;
 219: LD_ADDR_LOC 8
 223: PUSH
 224: LD_STRING Williams
 226: PPUSH
 227: CALL_OW 25
 231: ST_TO_ADDR
// phi = newcharacter ( Phillips ) ;
 232: LD_ADDR_LOC 9
 236: PUSH
 237: LD_STRING Phillips
 239: PPUSH
 240: CALL_OW 25
 244: ST_TO_ADDR
// off = newcharacter ( Officer ) ;
 245: LD_ADDR_LOC 10
 249: PUSH
 250: LD_STRING Officer
 252: PPUSH
 253: CALL_OW 25
 257: ST_TO_ADDR
// others = [ lucy , grant , sik , will , phi ] ;
 258: LD_ADDR_LOC 11
 262: PUSH
 263: LD_LOC 6
 267: PUSH
 268: LD_LOC 7
 272: PUSH
 273: LD_LOC 5
 277: PUSH
 278: LD_LOC 8
 282: PUSH
 283: LD_LOC 9
 287: PUSH
 288: EMPTY
 289: LIST
 290: LIST
 291: LIST
 292: LIST
 293: LIST
 294: ST_TO_ADDR
// placeunitxy ( off , 52 , 39 , false ) ;
 295: LD_LOC 10
 299: PPUSH
 300: LD_INT 52
 302: PPUSH
 303: LD_INT 39
 305: PPUSH
 306: LD_INT 0
 308: PPUSH
 309: CALL_OW 48
// placeunitxyr ( lucy , 47 , 38 , 3 , false ) ;
 313: LD_LOC 6
 317: PPUSH
 318: LD_INT 47
 320: PPUSH
 321: LD_INT 38
 323: PPUSH
 324: LD_INT 3
 326: PPUSH
 327: LD_INT 0
 329: PPUSH
 330: CALL_OW 50
// placeunitxyr ( grant , 47 , 38 , 3 , false ) ;
 334: LD_LOC 7
 338: PPUSH
 339: LD_INT 47
 341: PPUSH
 342: LD_INT 38
 344: PPUSH
 345: LD_INT 3
 347: PPUSH
 348: LD_INT 0
 350: PPUSH
 351: CALL_OW 50
// placeunitxyr ( sik , 47 , 38 , 3 , false ) ;
 355: LD_LOC 5
 359: PPUSH
 360: LD_INT 47
 362: PPUSH
 363: LD_INT 38
 365: PPUSH
 366: LD_INT 3
 368: PPUSH
 369: LD_INT 0
 371: PPUSH
 372: CALL_OW 50
// placeunitxyr ( will , 47 , 38 , 3 , false ) ;
 376: LD_LOC 8
 380: PPUSH
 381: LD_INT 47
 383: PPUSH
 384: LD_INT 38
 386: PPUSH
 387: LD_INT 3
 389: PPUSH
 390: LD_INT 0
 392: PPUSH
 393: CALL_OW 50
// placeunitxyr ( phi , 47 , 38 , 3 , false ) ;
 397: LD_LOC 9
 401: PPUSH
 402: LD_INT 47
 404: PPUSH
 405: LD_INT 38
 407: PPUSH
 408: LD_INT 3
 410: PPUSH
 411: LD_INT 0
 413: PPUSH
 414: CALL_OW 50
// comhold ( others ^ [ off ] ) ;
 418: LD_LOC 11
 422: PUSH
 423: LD_LOC 10
 427: PUSH
 428: EMPTY
 429: LIST
 430: ADD
 431: PPUSH
 432: CALL_OW 140
// placeunitxy ( john , 24 , 26 , false ) ;
 436: LD_LOC 3
 440: PPUSH
 441: LD_INT 24
 443: PPUSH
 444: LD_INT 26
 446: PPUSH
 447: LD_INT 0
 449: PPUSH
 450: CALL_OW 48
// placeunitxy ( joan , 25 , 24 , false ) ;
 454: LD_LOC 4
 458: PPUSH
 459: LD_INT 25
 461: PPUSH
 462: LD_INT 24
 464: PPUSH
 465: LD_INT 0
 467: PPUSH
 468: CALL_OW 48
// comhold ( [ joan , john ] ) ;
 472: LD_LOC 4
 476: PUSH
 477: LD_LOC 3
 481: PUSH
 482: EMPTY
 483: LIST
 484: LIST
 485: PPUSH
 486: CALL_OW 140
// centernowonunits ( john ) ;
 490: LD_LOC 3
 494: PPUSH
 495: CALL_OW 87
// dialogueon ;
 499: CALL_OW 6
// say ( off , DX1-Off-1 ) ;
 503: LD_LOC 10
 507: PPUSH
 508: LD_STRING DX1-Off-1
 510: PPUSH
 511: CALL_OW 88
// say ( john , DX1-JMM-1 ) ;
 515: LD_LOC 3
 519: PPUSH
 520: LD_STRING DX1-JMM-1
 522: PPUSH
 523: CALL_OW 88
// say ( joan , DX1-Joan-1 ) ;
 527: LD_LOC 4
 531: PPUSH
 532: LD_STRING DX1-Joan-1
 534: PPUSH
 535: CALL_OW 88
// say ( john , DX1-JMM-2 ) ;
 539: LD_LOC 3
 543: PPUSH
 544: LD_STRING DX1-JMM-2
 546: PPUSH
 547: CALL_OW 88
// say ( joan , DX1-Joan-2 ) ;
 551: LD_LOC 4
 555: PPUSH
 556: LD_STRING DX1-Joan-2
 558: PPUSH
 559: CALL_OW 88
// say ( john , DX1-JMM-3 ) ;
 563: LD_LOC 3
 567: PPUSH
 568: LD_STRING DX1-JMM-3
 570: PPUSH
 571: CALL_OW 88
// say ( joan , DX1-Joan-3 ) ;
 575: LD_LOC 4
 579: PPUSH
 580: LD_STRING DX1-Joan-3
 582: PPUSH
 583: CALL_OW 88
// say ( john , DX1-JMM-4 ) ;
 587: LD_LOC 3
 591: PPUSH
 592: LD_STRING DX1-JMM-4
 594: PPUSH
 595: CALL_OW 88
// dialogueoff ;
 599: CALL_OW 7
// commovexy ( others , 75 , 35 ) ;
 603: LD_LOC 11
 607: PPUSH
 608: LD_INT 75
 610: PPUSH
 611: LD_INT 35
 613: PPUSH
 614: CALL_OW 111
// commovexy ( off , 71 , 34 ) ;
 618: LD_LOC 10
 622: PPUSH
 623: LD_INT 71
 625: PPUSH
 626: LD_INT 34
 628: PPUSH
 629: CALL_OW 111
// wait ( 0 0$0.3 ) ;
 633: LD_INT 10
 635: PPUSH
 636: CALL_OW 67
// changemissionobjectives ( M0 ) ;
 640: LD_STRING M0
 642: PPUSH
 643: CALL_OW 337
// hintSpec ( Hints , 3 ) ;
 647: LD_STRING Hints
 649: PPUSH
 650: LD_INT 3
 652: PPUSH
 653: CALL_OW 338
// wait ( 0 0$1 ) ;
 657: LD_INT 35
 659: PPUSH
 660: CALL_OW 67
// hint ( Character ) ;
 664: LD_STRING Character
 666: PPUSH
 667: CALL_OW 339
// wait ( 0 0$1 ) ;
 671: LD_INT 35
 673: PPUSH
 674: CALL_OW 67
// enable ( 01 ) ;
 678: LD_INT 1
 680: ENABLE_MARKED
// enable ( 02 ) ;
 681: LD_INT 2
 683: ENABLE_MARKED
// enable ( 03 ) ;
 684: LD_INT 3
 686: ENABLE_MARKED
// enable ( 04 ) ;
 687: LD_INT 4
 689: ENABLE_MARKED
// enable ( 05 ) ;
 690: LD_INT 5
 692: ENABLE_MARKED
// end ;
 693: END
// every 3 trigger isselected ( john ) marked 01 do
 694: LD_LOC 3
 698: PPUSH
 699: CALL_OW 306
 703: IFFALSE 729
 705: GO 707
 707: DISABLE
// begin hint ( Selection ) ;
 708: LD_STRING Selection
 710: PPUSH
 711: CALL_OW 339
// wait ( 0 0$1 ) ;
 715: LD_INT 35
 717: PPUSH
 718: CALL_OW 67
// hint ( Commands ) ;
 722: LD_STRING Commands
 724: PPUSH
 725: CALL_OW 339
// end ;
 729: END
// every 3 + 1 trigger isselected ( others ^ [ joan , off ] ) marked 02 do
 730: LD_LOC 11
 734: PUSH
 735: LD_LOC 4
 739: PUSH
 740: LD_LOC 10
 744: PUSH
 745: EMPTY
 746: LIST
 747: LIST
 748: ADD
 749: PPUSH
 750: CALL_OW 306
 754: IFFALSE 766
 756: GO 758
 758: DISABLE
// hint ( NPC ) ;
 759: LD_STRING NPC
 761: PPUSH
 762: CALL_OW 339
 766: END
// every 5 trigger isinarea ( john , vis ) marked 03 do
 767: LD_LOC 3
 771: PPUSH
 772: LD_INT 1
 774: PPUSH
 775: CALL_OW 308
 779: IFFALSE 791
 781: GO 783
 783: DISABLE
// hint ( Visibility ) ;
 784: LD_STRING Visibility
 786: PPUSH
 787: CALL_OW 339
 791: END
// every 0 0$0.5 trigger ( not killhim ) and follow do var tmp , tmp2 , tmp3 , x , y , px , py , dir ;
 792: LD_LOC 16
 796: NOT
 797: PUSH
 798: LD_LOC 20
 802: AND
 803: IFFALSE 1096
 805: GO 807
 807: DISABLE
 808: LD_INT 0
 810: PPUSH
 811: PPUSH
 812: PPUSH
 813: PPUSH
 814: PPUSH
 815: PPUSH
 816: PPUSH
 817: PPUSH
// begin tmp = getdistunits ( john , joan ) ;
 818: LD_ADDR_VAR 0 1
 822: PUSH
 823: LD_LOC 3
 827: PPUSH
 828: LD_LOC 4
 832: PPUSH
 833: CALL_OW 296
 837: ST_TO_ADDR
// x = getx ( john ) ;
 838: LD_ADDR_VAR 0 4
 842: PUSH
 843: LD_LOC 3
 847: PPUSH
 848: CALL_OW 250
 852: ST_TO_ADDR
// y = gety ( john ) ;
 853: LD_ADDR_VAR 0 5
 857: PUSH
 858: LD_LOC 3
 862: PPUSH
 863: CALL_OW 251
 867: ST_TO_ADDR
// tmp2 = [ ] ;
 868: LD_ADDR_VAR 0 2
 872: PUSH
 873: EMPTY
 874: ST_TO_ADDR
// tmp3 = [ ] ;
 875: LD_ADDR_VAR 0 3
 879: PUSH
 880: EMPTY
 881: ST_TO_ADDR
// if tmp >= 7 then
 882: LD_VAR 0 1
 886: PUSH
 887: LD_INT 7
 889: GREATEREQUAL
 890: IFFALSE 1095
// begin for dir = 0 to 5 do
 892: LD_ADDR_VAR 0 8
 896: PUSH
 897: DOUBLE
 898: LD_INT 0
 900: DEC
 901: ST_TO_ADDR
 902: LD_INT 5
 904: PUSH
 905: FOR_TO
 906: IFFALSE 1046
// begin px = shiftx ( x , dir , tmp - 2 ) ;
 908: LD_ADDR_VAR 0 6
 912: PUSH
 913: LD_VAR 0 4
 917: PPUSH
 918: LD_VAR 0 8
 922: PPUSH
 923: LD_VAR 0 1
 927: PUSH
 928: LD_INT 2
 930: MINUS
 931: PPUSH
 932: CALL_OW 272
 936: ST_TO_ADDR
// py = shifty ( y , dir , tmp - 2 ) ;
 937: LD_ADDR_VAR 0 7
 941: PUSH
 942: LD_VAR 0 5
 946: PPUSH
 947: LD_VAR 0 8
 951: PPUSH
 952: LD_VAR 0 1
 956: PUSH
 957: LD_INT 2
 959: MINUS
 960: PPUSH
 961: CALL_OW 273
 965: ST_TO_ADDR
// if ValidHex ( px , py ) then
 966: LD_VAR 0 6
 970: PPUSH
 971: LD_VAR 0 7
 975: PPUSH
 976: CALL_OW 488
 980: IFFALSE 1044
// begin tmp2 = tmp2 ^ [ [ px , py ] ] ;
 982: LD_ADDR_VAR 0 2
 986: PUSH
 987: LD_VAR 0 2
 991: PUSH
 992: LD_VAR 0 6
 996: PUSH
 997: LD_VAR 0 7
1001: PUSH
1002: EMPTY
1003: LIST
1004: LIST
1005: PUSH
1006: EMPTY
1007: LIST
1008: ADD
1009: ST_TO_ADDR
// tmp3 = tmp3 ^ [ getdistunitxy ( joan , px , py ) ] ;
1010: LD_ADDR_VAR 0 3
1014: PUSH
1015: LD_VAR 0 3
1019: PUSH
1020: LD_LOC 4
1024: PPUSH
1025: LD_VAR 0 6
1029: PPUSH
1030: LD_VAR 0 7
1034: PPUSH
1035: CALL_OW 297
1039: PUSH
1040: EMPTY
1041: LIST
1042: ADD
1043: ST_TO_ADDR
// end end ;
1044: GO 905
1046: POP
1047: POP
// tmp = bestfromlistbylist ( tmp2 , tmp3 ) ;
1048: LD_ADDR_VAR 0 1
1052: PUSH
1053: LD_VAR 0 2
1057: PPUSH
1058: LD_VAR 0 3
1062: PPUSH
1063: CALL_OW 79
1067: ST_TO_ADDR
// commovexy ( joan , tmp [ 1 ] , tmp [ 2 ] ) ;
1068: LD_LOC 4
1072: PPUSH
1073: LD_VAR 0 1
1077: PUSH
1078: LD_INT 1
1080: ARRAY
1081: PPUSH
1082: LD_VAR 0 1
1086: PUSH
1087: LD_INT 2
1089: ARRAY
1090: PPUSH
1091: CALL_OW 111
// end ; enable ;
1095: ENABLE
// end ;
1096: PPOPN 8
1098: END
// on destinationunreachable ( un ) do if un = joan then
1099: LD_VAR 0 1
1103: PUSH
1104: LD_LOC 4
1108: EQUAL
1109: IFFALSE 1140
// commovexy ( joan , getx ( john ) , gety ( john ) ) ;
1111: LD_LOC 4
1115: PPUSH
1116: LD_LOC 3
1120: PPUSH
1121: CALL_OW 250
1125: PPUSH
1126: LD_LOC 3
1130: PPUSH
1131: CALL_OW 251
1135: PPUSH
1136: CALL_OW 111
1140: PPOPN 1
1142: END
// every 0 0$0.4 trigger crawls ( john ) marked 04 do
1143: LD_LOC 3
1147: PPUSH
1148: CALL_OW 318
1152: IFFALSE 1176
1154: GO 1156
1156: DISABLE
// begin if not killhim then
1157: LD_LOC 16
1161: NOT
1162: IFFALSE 1176
// say ( joan , DXComments-Joan-1 ) ;
1164: LD_LOC 4
1168: PPUSH
1169: LD_STRING DXComments-Joan-1
1171: PPUSH
1172: CALL_OW 88
// end ;
1176: END
// every 0 0$0.4 + 2 trigger isinarea ( john , zapad ) marked 05 do
1177: LD_LOC 3
1181: PPUSH
1182: LD_INT 2
1184: PPUSH
1185: CALL_OW 308
1189: IFFALSE 1213
1191: GO 1193
1193: DISABLE
// begin if not killhim then
1194: LD_LOC 16
1198: NOT
1199: IFFALSE 1213
// say ( joan , DXComments-Joan-1a ) ;
1201: LD_LOC 4
1205: PPUSH
1206: LD_STRING DXComments-Joan-1a
1208: PPUSH
1209: CALL_OW 88
// end ;
1213: END
// every 0 0$1 + 1 1$10 marked 29 do
1214: GO 1216
1216: DISABLE
// begin if not isinarea ( john , okolieonu ) then
1217: LD_LOC 3
1221: PPUSH
1222: LD_INT 3
1224: PPUSH
1225: CALL_OW 308
1229: NOT
1230: IFFALSE 1253
// begin if not killhim then
1232: LD_LOC 16
1236: NOT
1237: IFFALSE 1251
// say ( joan , DXComments-Joan-1b ) ;
1239: LD_LOC 4
1243: PPUSH
1244: LD_STRING DXComments-Joan-1b
1246: PPUSH
1247: CALL_OW 88
// end else
1251: GO 1254
// enable ;
1253: ENABLE
// end ;
1254: END
// every 0 0$0.3 trigger not killhim marked 097 do
1255: LD_LOC 16
1259: NOT
1260: IFFALSE 1758
1262: GO 1264
1264: DISABLE
// begin if joanok then
1265: LD_LOC 13
1269: IFFALSE 1446
// if getlives ( joan ) < 1000 then
1271: LD_LOC 4
1275: PPUSH
1276: CALL_OW 256
1280: PUSH
1281: LD_INT 1000
1283: LESS
1284: IFFALSE 1446
// begin if debug then
1286: LD_LOC 19
1290: IFFALSE 1310
// msg ( joan:  & getlives ( joan ) ) ;
1292: LD_STRING joan: 
1294: PUSH
1295: LD_LOC 4
1299: PPUSH
1300: CALL_OW 256
1304: STR
1305: PPUSH
1306: CALL_OW 100
// comhold ( joan ) ;
1310: LD_LOC 4
1314: PPUSH
1315: CALL_OW 140
// dialogueon ;
1319: CALL_OW 6
// say ( joan , DXAttack-Joan-1 ) ;
1323: LD_LOC 4
1327: PPUSH
1328: LD_STRING DXAttack-Joan-1
1330: PPUSH
1331: CALL_OW 88
// killhim = true ;
1335: LD_ADDR_LOC 16
1339: PUSH
1340: LD_INT 1
1342: ST_TO_ADDR
// commovexy ( joan , getx ( sik ) , gety ( sik ) ) ;
1343: LD_LOC 4
1347: PPUSH
1348: LD_LOC 5
1352: PPUSH
1353: CALL_OW 250
1357: PPUSH
1358: LD_LOC 5
1362: PPUSH
1363: CALL_OW 251
1367: PPUSH
1368: CALL_OW 111
// wait ( 0 0$1 ) ;
1372: LD_INT 35
1374: PPUSH
1375: CALL_OW 67
// say ( sik , DXAttack-Sik-1 ) ;
1379: LD_LOC 5
1383: PPUSH
1384: LD_STRING DXAttack-Sik-1
1386: PPUSH
1387: CALL_OW 88
// dialogueoff ;
1391: CALL_OW 7
// setattitude ( am , oth , att_enemy , true ) ;
1395: LD_LOC 1
1399: PPUSH
1400: LD_LOC 2
1404: PPUSH
1405: LD_INT 2
1407: PPUSH
1408: LD_INT 1
1410: PPUSH
1411: CALL_OW 80
// comattackunit ( others ^ [ off ] , john ) ;
1415: LD_LOC 11
1419: PUSH
1420: LD_LOC 10
1424: PUSH
1425: EMPTY
1426: LIST
1427: ADD
1428: PPUSH
1429: LD_LOC 3
1433: PPUSH
1434: CALL_OW 115
// joanok = false ;
1438: LD_ADDR_LOC 13
1442: PUSH
1443: LD_INT 0
1445: ST_TO_ADDR
// end ; if oothersok then
1446: LD_LOC 14
1450: IFFALSE 1625
// if getlives ( others ^ [ off ] ) < 1000 then
1452: LD_LOC 11
1456: PUSH
1457: LD_LOC 10
1461: PUSH
1462: EMPTY
1463: LIST
1464: ADD
1465: PPUSH
1466: CALL_OW 256
1470: PUSH
1471: LD_INT 1000
1473: LESS
1474: IFFALSE 1625
// begin if debug then
1476: LD_LOC 19
1480: IFFALSE 1509
// msg ( others+off:  & getlives ( others ^ [ off ] ) ) ;
1482: LD_STRING others+off: 
1484: PUSH
1485: LD_LOC 11
1489: PUSH
1490: LD_LOC 10
1494: PUSH
1495: EMPTY
1496: LIST
1497: ADD
1498: PPUSH
1499: CALL_OW 256
1503: STR
1504: PPUSH
1505: CALL_OW 100
// comhold ( others ^ [ off ] ) ;
1509: LD_LOC 11
1513: PUSH
1514: LD_LOC 10
1518: PUSH
1519: EMPTY
1520: LIST
1521: ADD
1522: PPUSH
1523: CALL_OW 140
// dialogueon ;
1527: CALL_OW 6
// say ( joan , DXAttack-Joan-1a ) ;
1531: LD_LOC 4
1535: PPUSH
1536: LD_STRING DXAttack-Joan-1a
1538: PPUSH
1539: CALL_OW 88
// wait ( 0 0$0.7 ) ;
1543: LD_INT 24
1545: PPUSH
1546: CALL_OW 67
// killhim = true ;
1550: LD_ADDR_LOC 16
1554: PUSH
1555: LD_INT 1
1557: ST_TO_ADDR
// say ( sik , DXAttack-Sik-1 ) ;
1558: LD_LOC 5
1562: PPUSH
1563: LD_STRING DXAttack-Sik-1
1565: PPUSH
1566: CALL_OW 88
// dialogueoff ;
1570: CALL_OW 7
// setattitude ( am , oth , att_enemy , true ) ;
1574: LD_LOC 1
1578: PPUSH
1579: LD_LOC 2
1583: PPUSH
1584: LD_INT 2
1586: PPUSH
1587: LD_INT 1
1589: PPUSH
1590: CALL_OW 80
// comattackunit ( others ^ [ off ] , john ) ;
1594: LD_LOC 11
1598: PUSH
1599: LD_LOC 10
1603: PUSH
1604: EMPTY
1605: LIST
1606: ADD
1607: PPUSH
1608: LD_LOC 3
1612: PPUSH
1613: CALL_OW 115
// oothersok = false ;
1617: LD_ADDR_LOC 14
1621: PUSH
1622: LD_INT 0
1624: ST_TO_ADDR
// end ; if buildingsok then
1625: LD_LOC 15
1629: IFFALSE 1750
// if getlives ( budovy ) < 1000 then
1631: LD_LOC 12
1635: PPUSH
1636: CALL_OW 256
1640: PUSH
1641: LD_INT 1000
1643: LESS
1644: IFFALSE 1750
// begin if debug then
1646: LD_LOC 19
1650: IFFALSE 1670
// msg ( budovy:  & getlives ( budovy ) ) ;
1652: LD_STRING budovy: 
1654: PUSH
1655: LD_LOC 12
1659: PPUSH
1660: CALL_OW 256
1664: STR
1665: PPUSH
1666: CALL_OW 100
// dialogueon ;
1670: CALL_OW 6
// say ( joan , DXAttack-Joan-1b ) ;
1674: LD_LOC 4
1678: PPUSH
1679: LD_STRING DXAttack-Joan-1b
1681: PPUSH
1682: CALL_OW 88
// dialogueoff ;
1686: CALL_OW 7
// follow = false ;
1690: LD_ADDR_LOC 20
1694: PUSH
1695: LD_INT 0
1697: ST_TO_ADDR
// commovexy ( joan , getx ( sik ) , gety ( sik ) ) ;
1698: LD_LOC 4
1702: PPUSH
1703: LD_LOC 5
1707: PPUSH
1708: CALL_OW 250
1712: PPUSH
1713: LD_LOC 5
1717: PPUSH
1718: CALL_OW 251
1722: PPUSH
1723: CALL_OW 111
// buildingsok = false ;
1727: LD_ADDR_LOC 15
1731: PUSH
1732: LD_INT 0
1734: ST_TO_ADDR
// buildinglives = getlives ( budovy ) ;
1735: LD_ADDR_LOC 17
1739: PUSH
1740: LD_LOC 12
1744: PPUSH
1745: CALL_OW 256
1749: ST_TO_ADDR
// end ; if not killhim then
1750: LD_LOC 16
1754: NOT
1755: IFFALSE 1758
// enable ;
1757: ENABLE
// end ;
1758: END
// every 0 0$0.3 trigger ( not buildingsok ) and ( not killhim ) marked 06 do
1759: LD_LOC 15
1763: NOT
1764: PUSH
1765: LD_LOC 16
1769: NOT
1770: AND
1771: IFFALSE 1880
1773: GO 1775
1775: DISABLE
// begin if buildinglives - getlives ( budovy ) > 7 then
1776: LD_LOC 17
1780: PUSH
1781: LD_LOC 12
1785: PPUSH
1786: CALL_OW 256
1790: MINUS
1791: PUSH
1792: LD_INT 7
1794: GREATER
1795: IFFALSE 1879
// begin disable ( 097 ) ;
1797: LD_INT 97
1799: DISABLE_MARKED
// disable_07 = true ;
1800: LD_ADDR_LOC 18
1804: PUSH
1805: LD_INT 1
1807: ST_TO_ADDR
// dialogueon ;
1808: CALL_OW 6
// say ( sik , DXAttack-Sik-1 ) ;
1812: LD_LOC 5
1816: PPUSH
1817: LD_STRING DXAttack-Sik-1
1819: PPUSH
1820: CALL_OW 88
// dialogueoff ;
1824: CALL_OW 7
// setattitude ( am , oth , att_enemy , true ) ;
1828: LD_LOC 1
1832: PPUSH
1833: LD_LOC 2
1837: PPUSH
1838: LD_INT 2
1840: PPUSH
1841: LD_INT 1
1843: PPUSH
1844: CALL_OW 80
// comattackunit ( others ^ [ off ] , john ) ;
1848: LD_LOC 11
1852: PUSH
1853: LD_LOC 10
1857: PUSH
1858: EMPTY
1859: LIST
1860: ADD
1861: PPUSH
1862: LD_LOC 3
1866: PPUSH
1867: CALL_OW 115
// killhim = true ;
1871: LD_ADDR_LOC 16
1875: PUSH
1876: LD_INT 1
1878: ST_TO_ADDR
// end ; enable ;
1879: ENABLE
// end ;
1880: END
// on unitgoestored ( un ) do if un = john then
1881: LD_VAR 0 1
1885: PUSH
1886: LD_LOC 3
1890: EQUAL
1891: IFFALSE 1958
// begin commovexy ( off , getx ( john ) , gety ( john ) ) ;
1893: LD_LOC 10
1897: PPUSH
1898: LD_LOC 3
1902: PPUSH
1903: CALL_OW 250
1907: PPUSH
1908: LD_LOC 3
1912: PPUSH
1913: CALL_OW 251
1917: PPUSH
1918: CALL_OW 111
// wait ( 0 0$1 ) ;
1922: LD_INT 35
1924: PPUSH
1925: CALL_OW 67
// dialogueon ;
1929: CALL_OW 6
// say ( off , DXAttack-Off-1 ) ;
1933: LD_LOC 10
1937: PPUSH
1938: LD_STRING DXAttack-Off-1
1940: PPUSH
1941: CALL_OW 88
// dialogueoff ;
1945: CALL_OW 7
// youlost ( Dissmiss ) ;
1949: LD_STRING Dissmiss
1951: PPUSH
1952: CALL_OW 104
// end else
1956: GO 2068
// if not disable_07 then
1958: LD_LOC 18
1962: NOT
1963: IFFALSE 2068
// if ( not killhim ) then
1965: LD_LOC 16
1969: NOT
1970: IFFALSE 2068
// if ( gettype ( un ) = unit_human ) then
1972: LD_VAR 0 1
1976: PPUSH
1977: CALL_OW 247
1981: PUSH
1982: LD_INT 1
1984: EQUAL
1985: IFFALSE 2068
// begin disable ( 06 ) ;
1987: LD_INT 6
1989: DISABLE_MARKED
// wait ( 0 0$0.5 ) ;
1990: LD_INT 18
1992: PPUSH
1993: CALL_OW 67
// dialogueon ;
1997: CALL_OW 6
// say ( sik , DXAttack-Sik-1 ) ;
2001: LD_LOC 5
2005: PPUSH
2006: LD_STRING DXAttack-Sik-1
2008: PPUSH
2009: CALL_OW 88
// dialogueoff ;
2013: CALL_OW 7
// setattitude ( am , oth , att_enemy , true ) ;
2017: LD_LOC 1
2021: PPUSH
2022: LD_LOC 2
2026: PPUSH
2027: LD_INT 2
2029: PPUSH
2030: LD_INT 1
2032: PPUSH
2033: CALL_OW 80
// comattackunit ( others ^ [ off ] , john ) ;
2037: LD_LOC 11
2041: PUSH
2042: LD_LOC 10
2046: PUSH
2047: EMPTY
2048: LIST
2049: ADD
2050: PPUSH
2051: LD_LOC 3
2055: PPUSH
2056: CALL_OW 115
// killhim = true ;
2060: LD_ADDR_LOC 16
2064: PUSH
2065: LD_INT 1
2067: ST_TO_ADDR
// end ;
2068: PPOPN 1
2070: END
// every 0 0$0.4 trigger isinarea ( john , aeon ) and not killhim do
2071: LD_LOC 3
2075: PPUSH
2076: LD_INT 4
2078: PPUSH
2079: CALL_OW 308
2083: PUSH
2084: LD_LOC 16
2088: NOT
2089: AND
2090: IFFALSE 2274
2092: GO 2094
2094: DISABLE
// begin follow = false ;
2095: LD_ADDR_LOC 20
2099: PUSH
2100: LD_INT 0
2102: ST_TO_ADDR
// centernowonunits ( [ eon ] ) ;
2103: LD_INT 14
2105: PUSH
2106: EMPTY
2107: LIST
2108: PPUSH
2109: CALL_OW 87
// dialogueon ;
2113: CALL_OW 6
// say ( off , DXReady-Off-1 ) ;
2117: LD_LOC 10
2121: PPUSH
2122: LD_STRING DXReady-Off-1
2124: PPUSH
2125: CALL_OW 88
// say ( sik , DXReady-Sik-1 ) ;
2129: LD_LOC 5
2133: PPUSH
2134: LD_STRING DXReady-Sik-1
2136: PPUSH
2137: CALL_OW 88
// say ( lucy , DXReady-Don-1 ) ;
2141: LD_LOC 6
2145: PPUSH
2146: LD_STRING DXReady-Don-1
2148: PPUSH
2149: CALL_OW 88
// dialogueoff ;
2153: CALL_OW 7
// ingameon ;
2157: CALL_OW 8
// comstop ( john ) ;
2161: LD_LOC 3
2165: PPUSH
2166: CALL_OW 141
// comenterunit ( sik , eon ) ;
2170: LD_LOC 5
2174: PPUSH
2175: LD_INT 14
2177: PPUSH
2178: CALL_OW 120
// wait ( 0 0$1.5 ) ;
2182: LD_INT 52
2184: PPUSH
2185: CALL_OW 67
// comenterunit ( lucy , eon ) ;
2189: LD_LOC 6
2193: PPUSH
2194: LD_INT 14
2196: PPUSH
2197: CALL_OW 120
// wait ( 0 0$2 ) ;
2201: LD_INT 70
2203: PPUSH
2204: CALL_OW 67
// case query ( QQuit ) of 1 :
2208: LD_STRING QQuit
2210: PPUSH
2211: CALL_OW 97
2215: PUSH
2216: LD_INT 1
2218: DOUBLE
2219: EQUAL
2220: IFTRUE 2224
2222: GO 2235
2224: POP
// begin ingameoff ;
2225: CALL_OW 9
// YouDidSomethingExtraordinary ;
2229: CALL_OW 105
// end ; 2 :
2233: GO 2274
2235: LD_INT 2
2237: DOUBLE
2238: EQUAL
2239: IFTRUE 2243
2241: GO 2273
2243: POP
// begin disable ( 29 ) ;
2244: LD_INT 29
2246: DISABLE_MARKED
// say ( john , DQrQuit#2-JMM-1 ) ;
2247: LD_LOC 3
2251: PPUSH
2252: LD_STRING DQrQuit#2-JMM-1
2254: PPUSH
2255: CALL_OW 88
// comenterunit ( john , eon ) ;
2259: LD_LOC 3
2263: PPUSH
2264: LD_INT 14
2266: PPUSH
2267: CALL_OW 120
// end ; end ;
2271: GO 2274
2273: POP
// end ;
2274: END
// on enterbuilding ( b , un ) do begin if b = eon then
2275: LD_VAR 0 1
2279: PUSH
2280: LD_INT 14
2282: EQUAL
2283: IFFALSE 2392
// case un of john :
2285: LD_VAR 0 2
2289: PUSH
2290: LD_LOC 3
2294: DOUBLE
2295: EQUAL
2296: IFTRUE 2300
2298: GO 2382
2300: POP
// if not killhim then
2301: LD_LOC 16
2305: NOT
2306: IFFALSE 2339
// begin wait ( 0 0$1.3 ) ;
2308: LD_INT 46
2310: PPUSH
2311: CALL_OW 67
// savecharacters ( john , JMM ) ;
2315: LD_LOC 3
2319: PPUSH
2320: LD_STRING JMM
2322: PPUSH
2323: CALL_OW 38
// changemap ( 1 , %_cont ) ;
2327: LD_STRING 1
2329: PPUSH
2330: LD_STRING %_cont
2332: PPUSH
2333: CALL_OW 340
// end else
2337: GO 2380
// begin placeunitxy ( john , 76 , 34 , false ) ;
2339: LD_LOC 3
2343: PPUSH
2344: LD_INT 76
2346: PPUSH
2347: LD_INT 34
2349: PPUSH
2350: LD_INT 0
2352: PPUSH
2353: CALL_OW 48
// comattackunit ( others ^ [ off ] , john ) ;
2357: LD_LOC 11
2361: PUSH
2362: LD_LOC 10
2366: PUSH
2367: EMPTY
2368: LIST
2369: ADD
2370: PPUSH
2371: LD_LOC 3
2375: PPUSH
2376: CALL_OW 115
// end ; else
2380: GO 2392
2382: POP
// RemoveUnit ( un ) ; end ;
2383: LD_VAR 0 2
2387: PPUSH
2388: CALL_OW 64
// end ;
2392: PPOPN 2
2394: END
