// export CC1 , CC4 ; starting begin ingameon ;
   0: CALL_OW 8
// CC1 = 2 ;
   4: LD_ADDR_EXP 1
   8: PUSH
   9: LD_INT 2
  11: ST_TO_ADDR
// CC4 = 2 ;
  12: LD_ADDR_EXP 2
  16: PUSH
  17: LD_INT 2
  19: ST_TO_ADDR
// Randomizeall ;
  20: CALL_OW 11
// TechAll ( 1 , 2 ) ;
  24: LD_INT 1
  26: PPUSH
  27: LD_INT 2
  29: PPUSH
  30: CALL 675 0 2
// TechCommon ( 3 , 2 ) ;
  34: LD_INT 3
  36: PPUSH
  37: LD_INT 2
  39: PPUSH
  40: CALL 730 0 2
// TechRu ( 3 , 2 ) ;
  44: LD_INT 3
  46: PPUSH
  47: LD_INT 2
  49: PPUSH
  50: CALL 1189 0 2
// TechAm ( 4 , 1 ) ;
  54: LD_INT 4
  56: PPUSH
  57: LD_INT 1
  59: PPUSH
  60: CALL 904 0 2
// TechCommon ( 4 , 1 ) ;
  64: LD_INT 4
  66: PPUSH
  67: LD_INT 1
  69: PPUSH
  70: CALL 730 0 2
// StarterTech ( 4 , 2 ) ;
  74: LD_INT 4
  76: PPUSH
  77: LD_INT 2
  79: PPUSH
  80: CALL 548 0 2
// StarterTech ( 2 , 2 ) ;
  84: LD_INT 2
  86: PPUSH
  87: LD_INT 2
  89: PPUSH
  90: CALL 548 0 2
// TechCommon ( 2 , 2 ) ;
  94: LD_INT 2
  96: PPUSH
  97: LD_INT 2
  99: PPUSH
 100: CALL 730 0 2
// TechAr ( 2 , 2 ) ;
 104: LD_INT 2
 106: PPUSH
 107: LD_INT 2
 109: PPUSH
 110: CALL 1576 0 2
// RuAttackEnabled = 0 ;
 114: LD_ADDR_EXP 80
 118: PUSH
 119: LD_INT 0
 121: ST_TO_ADDR
// NukeUsed = 0 ;
 122: LD_ADDR_EXP 81
 126: PUSH
 127: LD_INT 0
 129: ST_TO_ADDR
// CenterNowOnUnits ( Madison ) ;
 130: LD_INT 1915
 132: PPUSH
 133: CALL_OW 87
// ComMoveXY ( Madison , 83 , 156 ) ;
 137: LD_INT 1915
 139: PPUSH
 140: LD_INT 83
 142: PPUSH
 143: LD_INT 156
 145: PPUSH
 146: CALL_OW 111
// AddComHold ( Madison ) ;
 150: LD_INT 1915
 152: PPUSH
 153: CALL_OW 200
// ComMoveXY ( Greene , 84 , 157 ) ;
 157: LD_INT 1913
 159: PPUSH
 160: LD_INT 84
 162: PPUSH
 163: LD_INT 157
 165: PPUSH
 166: CALL_OW 111
// AddComHold ( Greene ) ;
 170: LD_INT 1913
 172: PPUSH
 173: CALL_OW 200
// AddComHold ( CyBoss ) ;
 177: LD_INT 1897
 179: PPUSH
 180: CALL_OW 200
// TroopSpawn ;
 184: CALL 1939 0 0
// SAy ( MAdison , Intro1 ) ;
 188: LD_INT 1915
 190: PPUSH
 191: LD_STRING Intro1
 193: PPUSH
 194: CALL_OW 88
// SAy ( CyBoss , Intro2 ) ;
 198: LD_INT 1897
 200: PPUSH
 201: LD_STRING Intro2
 203: PPUSH
 204: CALL_OW 88
// SAy ( MAdison , Intro3 ) ;
 208: LD_INT 1915
 210: PPUSH
 211: LD_STRING Intro3
 213: PPUSH
 214: CALL_OW 88
// SAy ( CyBoss , Intro4 ) ;
 218: LD_INT 1897
 220: PPUSH
 221: LD_STRING Intro4
 223: PPUSH
 224: CALL_OW 88
// if difficulty = 1 then
 228: LD_OWVAR 67
 232: PUSH
 233: LD_INT 1
 235: EQUAL
 236: IFFALSE 248
// RevealFogArea ( 4 , AmReveal ) ;
 238: LD_INT 4
 240: PPUSH
 241: LD_INT 16
 243: PPUSH
 244: CALL_OW 332
// if difficulty = 1 then
 248: LD_OWVAR 67
 252: PUSH
 253: LD_INT 1
 255: EQUAL
 256: IFFALSE 268
// CenterOnXY ( 140 , 20 ) ;
 258: LD_INT 140
 260: PPUSH
 261: LD_INT 20
 263: PPUSH
 264: CALL_OW 84
// SAy ( CyBoss , Intro5 ) ;
 268: LD_INT 1897
 270: PPUSH
 271: LD_STRING Intro5
 273: PPUSH
 274: CALL_OW 88
// if difficulty < 3 then
 278: LD_OWVAR 67
 282: PUSH
 283: LD_INT 3
 285: LESS
 286: IFFALSE 298
// RevealFogArea ( 4 , RuReveal ) ;
 288: LD_INT 4
 290: PPUSH
 291: LD_INT 15
 293: PPUSH
 294: CALL_OW 332
// if difficulty < 3 then
 298: LD_OWVAR 67
 302: PUSH
 303: LD_INT 3
 305: LESS
 306: IFFALSE 318
// CenterOnXY ( 194 , 130 ) ;
 308: LD_INT 194
 310: PPUSH
 311: LD_INT 130
 313: PPUSH
 314: CALL_OW 84
// SAy ( CyBoss , Intro6 ) ;
 318: LD_INT 1897
 320: PPUSH
 321: LD_STRING Intro6
 323: PPUSH
 324: CALL_OW 88
// SAy ( Greene , Intro7 ) ;
 328: LD_INT 1913
 330: PPUSH
 331: LD_STRING Intro7
 333: PPUSH
 334: CALL_OW 88
// CenterOnUnits ( Greene ) ;
 338: LD_INT 1913
 340: PPUSH
 341: CALL_OW 85
// SAy ( CyBoss , Intro8 ) ;
 345: LD_INT 1897
 347: PPUSH
 348: LD_STRING Intro8
 350: PPUSH
 351: CALL_OW 88
// SAy ( Greene , Intro9 ) ;
 355: LD_INT 1913
 357: PPUSH
 358: LD_STRING Intro9
 360: PPUSH
 361: CALL_OW 88
// SAy ( CyBoss , Intro10 ) ;
 365: LD_INT 1897
 367: PPUSH
 368: LD_STRING Intro10
 370: PPUSH
 371: CALL_OW 88
// SAy ( MAdison , Intro11 ) ;
 375: LD_INT 1915
 377: PPUSH
 378: LD_STRING Intro11
 380: PPUSH
 381: CALL_OW 88
// ComFree ( [ CyBoss , Madison , Greene ] ) ;
 385: LD_INT 1897
 387: PUSH
 388: LD_INT 1915
 390: PUSH
 391: LD_INT 1913
 393: PUSH
 394: EMPTY
 395: LIST
 396: LIST
 397: LIST
 398: PPUSH
 399: CALL_OW 139
// ingameoff ;
 403: CALL_OW 9
// ChangeMissionObjectives ( DefeatGeneral ) ;
 407: LD_STRING DefeatGeneral
 409: PPUSH
 410: CALL_OW 337
// PeopleOnStart = Size ( FilterAllUnits ( [ [ f_side , 4 ] , [ f_or , [ f_sex , 1 ] , [ f_Sex , 2 ] ] ] ) ) ;
 414: LD_ADDR_EXP 82
 418: PUSH
 419: LD_INT 22
 421: PUSH
 422: LD_INT 4
 424: PUSH
 425: EMPTY
 426: LIST
 427: LIST
 428: PUSH
 429: LD_INT 2
 431: PUSH
 432: LD_INT 26
 434: PUSH
 435: LD_INT 1
 437: PUSH
 438: EMPTY
 439: LIST
 440: LIST
 441: PUSH
 442: LD_INT 26
 444: PUSH
 445: LD_INT 2
 447: PUSH
 448: EMPTY
 449: LIST
 450: LIST
 451: PUSH
 452: EMPTY
 453: LIST
 454: LIST
 455: LIST
 456: PUSH
 457: EMPTY
 458: LIST
 459: LIST
 460: PPUSH
 461: CALL_OW 69
 465: PPUSH
 466: CALL 20450 0 1
 470: ST_TO_ADDR
// SaveForQuickRestart ;
 471: CALL_OW 22
// end ;
 475: END
// on BuildingComplete ( un ) do begin BuildingComplete_LoyalAI ( un ) ;
 476: LD_VAR 0 1
 480: PPUSH
 481: CALL 9352 0 1
// BuildingComplete_RuAI ( un ) ;
 485: LD_VAR 0 1
 489: PPUSH
 490: CALL 16475 0 1
// end ;
 494: PPOPN 1
 496: END
// on UnitGoesToRed ( un ) do begin UnitGoesToRed_LoyalAI ( un ) ;
 497: LD_VAR 0 1
 501: PPUSH
 502: CALL 9553 0 1
// UnitGoesToRed_RuAI ( un ) ;
 506: LD_VAR 0 1
 510: PPUSH
 511: CALL 16676 0 1
// end ;
 515: PPOPN 1
 517: END
// on UnitDestroyed ( un ) do begin UnitDestroyed_LoyalAI ( un ) ;
 518: LD_VAR 0 1
 522: PPUSH
 523: CALL 9720 0 1
// UnitDestroyed_RuAI ( un ) ;
 527: LD_VAR 0 1
 531: PPUSH
 532: CALL 16828 0 1
// UnitDestroyed_CommanderAI ( un ) ;
 536: LD_VAR 0 1
 540: PPUSH
 541: CALL 23474 0 1
// end ; end_of_file
 545: PPOPN 1
 547: END
// var i ; export function StarterTech ( side , state ) ; begin
 548: LD_INT 0
 550: PPUSH
// SetTech ( 20 , side , state ) ;
 551: LD_INT 20
 553: PPUSH
 554: LD_VAR 0 1
 558: PPUSH
 559: LD_VAR 0 2
 563: PPUSH
 564: CALL_OW 322
// SetTech ( 45 , side , state ) ;
 568: LD_INT 45
 570: PPUSH
 571: LD_VAR 0 1
 575: PPUSH
 576: LD_VAR 0 2
 580: PPUSH
 581: CALL_OW 322
// SetTech ( 46 , side , state ) ;
 585: LD_INT 46
 587: PPUSH
 588: LD_VAR 0 1
 592: PPUSH
 593: LD_VAR 0 2
 597: PPUSH
 598: CALL_OW 322
// SetTech ( 47 , side , state ) ;
 602: LD_INT 47
 604: PPUSH
 605: LD_VAR 0 1
 609: PPUSH
 610: LD_VAR 0 2
 614: PPUSH
 615: CALL_OW 322
// SetTech ( 35 , side , state ) ;
 619: LD_INT 35
 621: PPUSH
 622: LD_VAR 0 1
 626: PPUSH
 627: LD_VAR 0 2
 631: PPUSH
 632: CALL_OW 322
// SetTech ( 69 , side , state ) ;
 636: LD_INT 69
 638: PPUSH
 639: LD_VAR 0 1
 643: PPUSH
 644: LD_VAR 0 2
 648: PPUSH
 649: CALL_OW 322
// SetTech ( 39 , side , state ) ;
 653: LD_INT 39
 655: PPUSH
 656: LD_VAR 0 1
 660: PPUSH
 661: LD_VAR 0 2
 665: PPUSH
 666: CALL_OW 322
// end ;
 670: LD_VAR 0 3
 674: RET
// export function TechAll ( side , state ) ; begin
 675: LD_INT 0
 677: PPUSH
// i = 1 ;
 678: LD_ADDR_LOC 1
 682: PUSH
 683: LD_INT 1
 685: ST_TO_ADDR
// for i = 1 to 71 do
 686: LD_ADDR_LOC 1
 690: PUSH
 691: DOUBLE
 692: LD_INT 1
 694: DEC
 695: ST_TO_ADDR
 696: LD_INT 71
 698: PUSH
 699: FOR_TO
 700: IFFALSE 723
// SetTech ( i , side , state ) ;
 702: LD_LOC 1
 706: PPUSH
 707: LD_VAR 0 1
 711: PPUSH
 712: LD_VAR 0 2
 716: PPUSH
 717: CALL_OW 322
 721: GO 699
 723: POP
 724: POP
// end ;
 725: LD_VAR 0 3
 729: RET
// export function TechCommon ( side , state ) ; begin
 730: LD_INT 0
 732: PPUSH
// i = 1 ;
 733: LD_ADDR_LOC 1
 737: PUSH
 738: LD_INT 1
 740: ST_TO_ADDR
// SetTech ( 20 , side , state ) ;
 741: LD_INT 20
 743: PPUSH
 744: LD_VAR 0 1
 748: PPUSH
 749: LD_VAR 0 2
 753: PPUSH
 754: CALL_OW 322
// SetTech ( 21 , side , state ) ;
 758: LD_INT 21
 760: PPUSH
 761: LD_VAR 0 1
 765: PPUSH
 766: LD_VAR 0 2
 770: PPUSH
 771: CALL_OW 322
// SetTech ( 22 , side , state ) ;
 775: LD_INT 22
 777: PPUSH
 778: LD_VAR 0 1
 782: PPUSH
 783: LD_VAR 0 2
 787: PPUSH
 788: CALL_OW 322
// SetTech ( 35 , side , state ) ;
 792: LD_INT 35
 794: PPUSH
 795: LD_VAR 0 1
 799: PPUSH
 800: LD_VAR 0 2
 804: PPUSH
 805: CALL_OW 322
// for i = 45 to 56 do
 809: LD_ADDR_LOC 1
 813: PUSH
 814: DOUBLE
 815: LD_INT 45
 817: DEC
 818: ST_TO_ADDR
 819: LD_INT 56
 821: PUSH
 822: FOR_TO
 823: IFFALSE 846
// SetTech ( i , side , state ) ;
 825: LD_LOC 1
 829: PPUSH
 830: LD_VAR 0 1
 834: PPUSH
 835: LD_VAR 0 2
 839: PPUSH
 840: CALL_OW 322
 844: GO 822
 846: POP
 847: POP
// SetTech ( 69 , side , state ) ;
 848: LD_INT 69
 850: PPUSH
 851: LD_VAR 0 1
 855: PPUSH
 856: LD_VAR 0 2
 860: PPUSH
 861: CALL_OW 322
// SetTech ( 39 , side , state ) ;
 865: LD_INT 39
 867: PPUSH
 868: LD_VAR 0 1
 872: PPUSH
 873: LD_VAR 0 2
 877: PPUSH
 878: CALL_OW 322
// SetTech ( 40 , side , state ) ;
 882: LD_INT 40
 884: PPUSH
 885: LD_VAR 0 1
 889: PPUSH
 890: LD_VAR 0 2
 894: PPUSH
 895: CALL_OW 322
// end ;
 899: LD_VAR 0 3
 903: RET
// export function TechAm ( side , state ) ; begin
 904: LD_INT 0
 906: PPUSH
// SetTech ( 1 , side , state ) ;
 907: LD_INT 1
 909: PPUSH
 910: LD_VAR 0 1
 914: PPUSH
 915: LD_VAR 0 2
 919: PPUSH
 920: CALL_OW 322
// SetTech ( 2 , side , state ) ;
 924: LD_INT 2
 926: PPUSH
 927: LD_VAR 0 1
 931: PPUSH
 932: LD_VAR 0 2
 936: PPUSH
 937: CALL_OW 322
// for i = 57 to 62 do
 941: LD_ADDR_LOC 1
 945: PUSH
 946: DOUBLE
 947: LD_INT 57
 949: DEC
 950: ST_TO_ADDR
 951: LD_INT 62
 953: PUSH
 954: FOR_TO
 955: IFFALSE 978
// SetTech ( i , side , state ) ;
 957: LD_LOC 1
 961: PPUSH
 962: LD_VAR 0 1
 966: PPUSH
 967: LD_VAR 0 2
 971: PPUSH
 972: CALL_OW 322
 976: GO 954
 978: POP
 979: POP
// SetTech ( tech_Radar , side , state ) ;
 980: LD_INT 6
 982: PPUSH
 983: LD_VAR 0 1
 987: PPUSH
 988: LD_VAR 0 2
 992: PPUSH
 993: CALL_OW 322
// SetTech ( tech_RemCont , side , state ) ;
 997: LD_INT 15
 999: PPUSH
1000: LD_VAR 0 1
1004: PPUSH
1005: LD_VAR 0 2
1009: PPUSH
1010: CALL_OW 322
// SetTech ( tech_MatDet , side , state ) ;
1014: LD_INT 7
1016: PPUSH
1017: LD_VAR 0 1
1021: PPUSH
1022: LD_VAR 0 2
1026: PPUSH
1027: CALL_OW 322
// SetTech ( tech_Laser , side , state ) ;
1031: LD_INT 10
1033: PPUSH
1034: LD_VAR 0 1
1038: PPUSH
1039: LD_VAR 0 2
1043: PPUSH
1044: CALL_OW 322
// SetTech ( tech_LasDouble , side , state ) ;
1048: LD_INT 14
1050: PPUSH
1051: LD_VAR 0 1
1055: PPUSH
1056: LD_VAR 0 2
1060: PPUSH
1061: CALL_OW 322
// SetTech ( tech_PartInvis , side , state ) ;
1065: LD_INT 16
1067: PPUSH
1068: LD_VAR 0 1
1072: PPUSH
1073: LD_VAR 0 2
1077: PPUSH
1078: CALL_OW 322
// SetTech ( 13 , side , state ) ;
1082: LD_INT 13
1084: PPUSH
1085: LD_VAR 0 1
1089: PPUSH
1090: LD_VAR 0 2
1094: PPUSH
1095: CALL_OW 322
// SetTech ( tech_AdvMet , side , state ) ;
1099: LD_INT 34
1101: PPUSH
1102: LD_VAR 0 1
1106: PPUSH
1107: LD_VAR 0 2
1111: PPUSH
1112: CALL_OW 322
// SetTech ( tech_AI , side , state ) ;
1116: LD_INT 32
1118: PPUSH
1119: LD_VAR 0 1
1123: PPUSH
1124: LD_VAR 0 2
1128: PPUSH
1129: CALL_OW 322
// SetTech ( tech_AdvAI , side , state ) ;
1133: LD_INT 27
1135: PPUSH
1136: LD_VAR 0 1
1140: PPUSH
1141: LD_VAR 0 2
1145: PPUSH
1146: CALL_OW 322
// SetTech ( tech_AdvChassis , side , state ) ;
1150: LD_INT 36
1152: PPUSH
1153: LD_VAR 0 1
1157: PPUSH
1158: LD_VAR 0 2
1162: PPUSH
1163: CALL_OW 322
// SetTech ( 12 , side , state ) ;
1167: LD_INT 12
1169: PPUSH
1170: LD_VAR 0 1
1174: PPUSH
1175: LD_VAR 0 2
1179: PPUSH
1180: CALL_OW 322
// end ;
1184: LD_VAR 0 3
1188: RET
// export function TechRu ( side , state ) ; begin
1189: LD_INT 0
1191: PPUSH
// SetTech ( 1 , side , state ) ;
1192: LD_INT 1
1194: PPUSH
1195: LD_VAR 0 1
1199: PPUSH
1200: LD_VAR 0 2
1204: PPUSH
1205: CALL_OW 322
// SetTech ( 2 , side , state ) ;
1209: LD_INT 2
1211: PPUSH
1212: LD_VAR 0 1
1216: PPUSH
1217: LD_VAR 0 2
1221: PPUSH
1222: CALL_OW 322
// SetTech ( 11 , side , state ) ;
1226: LD_INT 11
1228: PPUSH
1229: LD_VAR 0 1
1233: PPUSH
1234: LD_VAR 0 2
1238: PPUSH
1239: CALL_OW 322
// SetTech ( tech_AdvMet , side , state ) ;
1243: LD_INT 34
1245: PPUSH
1246: LD_VAR 0 1
1250: PPUSH
1251: LD_VAR 0 2
1255: PPUSH
1256: CALL_OW 322
// SetTech ( tech_AdvRocket , side , state ) ;
1260: LD_INT 71
1262: PPUSH
1263: LD_VAR 0 1
1267: PPUSH
1268: LD_VAR 0 2
1272: PPUSH
1273: CALL_OW 322
// SetTech ( tech_Behemoth , side , state ) ;
1277: LD_INT 23
1279: PPUSH
1280: LD_VAR 0 1
1284: PPUSH
1285: LD_VAR 0 2
1289: PPUSH
1290: CALL_OW 322
// SetTech ( tech_AI , side , state ) ;
1294: LD_INT 32
1296: PPUSH
1297: LD_VAR 0 1
1301: PPUSH
1302: LD_VAR 0 2
1306: PPUSH
1307: CALL_OW 322
// SetTech ( tech_AdvAI , side , state ) ;
1311: LD_INT 27
1313: PPUSH
1314: LD_VAR 0 1
1318: PPUSH
1319: LD_VAR 0 2
1323: PPUSH
1324: CALL_OW 322
// SetTech ( tech_Virus , side , state ) ;
1328: LD_INT 33
1330: PPUSH
1331: LD_VAR 0 1
1335: PPUSH
1336: LD_VAR 0 2
1340: PPUSH
1341: CALL_OW 322
// SetTech ( tech_MatPred , side , state ) ;
1345: LD_INT 9
1347: PPUSH
1348: LD_VAR 0 1
1352: PPUSH
1353: LD_VAR 0 2
1357: PPUSH
1358: CALL_OW 322
// SetTech ( 19 , side , state ) ;
1362: LD_INT 19
1364: PPUSH
1365: LD_VAR 0 1
1369: PPUSH
1370: LD_VAR 0 2
1374: PPUSH
1375: CALL_OW 322
// SetTech ( tech_Comp1 , side , state ) ;
1379: LD_INT 57
1381: PPUSH
1382: LD_VAR 0 1
1386: PPUSH
1387: LD_VAR 0 2
1391: PPUSH
1392: CALL_OW 322
// SetTech ( tech_Comp2 , side , state ) ;
1396: LD_INT 58
1398: PPUSH
1399: LD_VAR 0 1
1403: PPUSH
1404: LD_VAR 0 2
1408: PPUSH
1409: CALL_OW 322
// SetTech ( tech_Comp3 , side , state ) ;
1413: LD_INT 59
1415: PPUSH
1416: LD_VAR 0 1
1420: PPUSH
1421: LD_VAR 0 2
1425: PPUSH
1426: CALL_OW 322
// SetTech ( tech_ST1 , side , state ) ;
1430: LD_INT 63
1432: PPUSH
1433: LD_VAR 0 1
1437: PPUSH
1438: LD_VAR 0 2
1442: PPUSH
1443: CALL_OW 322
// SetTech ( tech_ST2 , side , state ) ;
1447: LD_INT 64
1449: PPUSH
1450: LD_VAR 0 1
1454: PPUSH
1455: LD_VAR 0 2
1459: PPUSH
1460: CALL_OW 322
// SetTech ( tech_ST3 , side , state ) ;
1464: LD_INT 65
1466: PPUSH
1467: LD_VAR 0 1
1471: PPUSH
1472: LD_VAR 0 2
1476: PPUSH
1477: CALL_OW 322
// for i = 28 to 31 do
1481: LD_ADDR_LOC 1
1485: PUSH
1486: DOUBLE
1487: LD_INT 28
1489: DEC
1490: ST_TO_ADDR
1491: LD_INT 31
1493: PUSH
1494: FOR_TO
1495: IFFALSE 1518
// SetTech ( i , side , state ) ;
1497: LD_LOC 1
1501: PPUSH
1502: LD_VAR 0 1
1506: PPUSH
1507: LD_VAR 0 2
1511: PPUSH
1512: CALL_OW 322
1516: GO 1494
1518: POP
1519: POP
// SetTech ( tech_LimTeleport , side , state ) ;
1520: LD_INT 37
1522: PPUSH
1523: LD_VAR 0 1
1527: PPUSH
1528: LD_VAR 0 2
1532: PPUSH
1533: CALL_OW 322
// SetTech ( tech_TargTeleport , side , state ) ;
1537: LD_INT 38
1539: PPUSH
1540: LD_VAR 0 1
1544: PPUSH
1545: LD_VAR 0 2
1549: PPUSH
1550: CALL_OW 322
// SetTech ( 44 , side , state ) ;
1554: LD_INT 44
1556: PPUSH
1557: LD_VAR 0 1
1561: PPUSH
1562: LD_VAR 0 2
1566: PPUSH
1567: CALL_OW 322
// end ;
1571: LD_VAR 0 3
1575: RET
// export function TechAr ( side , state ) ; begin
1576: LD_INT 0
1578: PPUSH
// SetTech ( 11 , side , state ) ;
1579: LD_INT 11
1581: PPUSH
1582: LD_VAR 0 1
1586: PPUSH
1587: LD_VAR 0 2
1591: PPUSH
1592: CALL_OW 322
// SetTech ( 4 , side , state ) ;
1596: LD_INT 4
1598: PPUSH
1599: LD_VAR 0 1
1603: PPUSH
1604: LD_VAR 0 2
1608: PPUSH
1609: CALL_OW 322
// SetTech ( 3 , side , state ) ;
1613: LD_INT 3
1615: PPUSH
1616: LD_VAR 0 1
1620: PPUSH
1621: LD_VAR 0 2
1625: PPUSH
1626: CALL_OW 322
// SetTech ( 1 , side , state ) ;
1630: LD_INT 1
1632: PPUSH
1633: LD_VAR 0 1
1637: PPUSH
1638: LD_VAR 0 2
1642: PPUSH
1643: CALL_OW 322
// SetTech ( tech_Opto1 , side , state ) ;
1647: LD_INT 60
1649: PPUSH
1650: LD_VAR 0 1
1654: PPUSH
1655: LD_VAR 0 2
1659: PPUSH
1660: CALL_OW 322
// SetTech ( tech_Opto2 , side , state ) ;
1664: LD_INT 61
1666: PPUSH
1667: LD_VAR 0 1
1671: PPUSH
1672: LD_VAR 0 2
1676: PPUSH
1677: CALL_OW 322
// SetTech ( tech_Opto3 , side , state ) ;
1681: LD_INT 62
1683: PPUSH
1684: LD_VAR 0 1
1688: PPUSH
1689: LD_VAR 0 2
1693: PPUSH
1694: CALL_OW 322
// SetTech ( tech_Bio1 , side , state ) ;
1698: LD_INT 66
1700: PPUSH
1701: LD_VAR 0 1
1705: PPUSH
1706: LD_VAR 0 2
1710: PPUSH
1711: CALL_OW 322
// SetTech ( tech_Bio2 , side , state ) ;
1715: LD_INT 67
1717: PPUSH
1718: LD_VAR 0 1
1722: PPUSH
1723: LD_VAR 0 2
1727: PPUSH
1728: CALL_OW 322
// SetTech ( tech_Bio3 , side , state ) ;
1732: LD_INT 68
1734: PPUSH
1735: LD_VAR 0 1
1739: PPUSH
1740: LD_VAR 0 2
1744: PPUSH
1745: CALL_OW 322
// SetTech ( tech_bioDet , side , state ) ;
1749: LD_INT 8
1751: PPUSH
1752: LD_VAR 0 1
1756: PPUSH
1757: LD_VAR 0 2
1761: PPUSH
1762: CALL_OW 322
// SetTech ( tech_flame , side , state ) ;
1766: LD_INT 70
1768: PPUSH
1769: LD_VAR 0 1
1773: PPUSH
1774: LD_VAR 0 2
1778: PPUSH
1779: CALL_OW 322
// SetTech ( tech_explos , side , state ) ;
1783: LD_INT 42
1785: PPUSH
1786: LD_VAR 0 1
1790: PPUSH
1791: LD_VAR 0 2
1795: PPUSH
1796: CALL_OW 322
// SetTech ( tech_hidCam , side , state ) ;
1800: LD_INT 17
1802: PPUSH
1803: LD_VAR 0 1
1807: PPUSH
1808: LD_VAR 0 2
1812: PPUSH
1813: CALL_OW 322
// SetTech ( tech_radar , side , state ) ;
1817: LD_INT 6
1819: PPUSH
1820: LD_VAR 0 1
1824: PPUSH
1825: LD_VAR 0 2
1829: PPUSH
1830: CALL_OW 322
// SetTech ( tech_remCont , side , state ) ;
1834: LD_INT 15
1836: PPUSH
1837: LD_VAR 0 1
1841: PPUSH
1842: LD_VAR 0 2
1846: PPUSH
1847: CALL_OW 322
// SetTech ( tech_RemCharge , side , state ) ;
1851: LD_INT 18
1853: PPUSH
1854: LD_VAR 0 1
1858: PPUSH
1859: LD_VAR 0 2
1863: PPUSH
1864: CALL_OW 322
// SetTech ( tech_SibContam , side , state ) ;
1868: LD_INT 26
1870: PPUSH
1871: LD_VAR 0 1
1875: PPUSH
1876: LD_VAR 0 2
1880: PPUSH
1881: CALL_OW 322
// SetTech ( tech_StimDrugs , side , [ 0 , 1 , 1 ] [ state ] ) ;
1885: LD_INT 5
1887: PPUSH
1888: LD_VAR 0 1
1892: PPUSH
1893: LD_INT 0
1895: PUSH
1896: LD_INT 1
1898: PUSH
1899: LD_INT 1
1901: PUSH
1902: EMPTY
1903: LIST
1904: LIST
1905: LIST
1906: PUSH
1907: LD_VAR 0 2
1911: ARRAY
1912: PPUSH
1913: CALL_OW 322
// SetTech ( 41 , side , state ) ;
1917: LD_INT 41
1919: PPUSH
1920: LD_VAR 0 1
1924: PPUSH
1925: LD_VAR 0 2
1929: PPUSH
1930: CALL_OW 322
// end ; end_of_file
1934: LD_VAR 0 3
1938: RET
// var Rebel1 , Rebel2 , Rebel3 , Rebel4 ; export function TroopSpawn ( ) ; begin
1939: LD_INT 0
1941: PPUSH
// uc_side = 4 ;
1942: LD_ADDR_OWVAR 20
1946: PUSH
1947: LD_INT 4
1949: ST_TO_ADDR
// uc_nation = 1 ;
1950: LD_ADDR_OWVAR 21
1954: PUSH
1955: LD_INT 1
1957: ST_TO_ADDR
// hc_class = 1 ;
1958: LD_ADDR_OWVAR 28
1962: PUSH
1963: LD_INT 1
1965: ST_TO_ADDR
// hc_attr = [ rand ( 10 , 13 ) + difficulty , 10 ] ;
1966: LD_ADDR_OWVAR 29
1970: PUSH
1971: LD_INT 10
1973: PPUSH
1974: LD_INT 13
1976: PPUSH
1977: CALL_OW 12
1981: PUSH
1982: LD_OWVAR 67
1986: PLUS
1987: PUSH
1988: LD_INT 10
1990: PUSH
1991: EMPTY
1992: LIST
1993: LIST
1994: ST_TO_ADDR
// hc_basic_skills = [ rand ( 10 - difficulty , 10 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) ] ;
1995: LD_ADDR_OWVAR 30
1999: PUSH
2000: LD_INT 10
2002: PUSH
2003: LD_OWVAR 67
2007: MINUS
2008: PPUSH
2009: LD_INT 10
2011: PPUSH
2012: CALL_OW 12
2016: PUSH
2017: LD_INT 5
2019: PPUSH
2020: LD_INT 8
2022: PPUSH
2023: CALL_OW 12
2027: PUSH
2028: LD_INT 5
2030: PPUSH
2031: LD_INT 8
2033: PPUSH
2034: CALL_OW 12
2038: PUSH
2039: LD_INT 5
2041: PPUSH
2042: LD_INT 8
2044: PPUSH
2045: CALL_OW 12
2049: PUSH
2050: EMPTY
2051: LIST
2052: LIST
2053: LIST
2054: LIST
2055: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
2056: LD_ADDR_OWVAR 27
2060: PUSH
2061: LD_INT 1
2063: PPUSH
2064: LD_INT 2
2066: PPUSH
2067: CALL_OW 12
2071: ST_TO_ADDR
// Rebel1 = CreateHuman ;
2072: LD_ADDR_LOC 2
2076: PUSH
2077: CALL_OW 44
2081: ST_TO_ADDR
// hc_basic_skills = [ rand ( 10 - difficulty , 10 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) ] ;
2082: LD_ADDR_OWVAR 30
2086: PUSH
2087: LD_INT 10
2089: PUSH
2090: LD_OWVAR 67
2094: MINUS
2095: PPUSH
2096: LD_INT 10
2098: PPUSH
2099: CALL_OW 12
2103: PUSH
2104: LD_INT 5
2106: PPUSH
2107: LD_INT 8
2109: PPUSH
2110: CALL_OW 12
2114: PUSH
2115: LD_INT 5
2117: PPUSH
2118: LD_INT 8
2120: PPUSH
2121: CALL_OW 12
2125: PUSH
2126: LD_INT 5
2128: PPUSH
2129: LD_INT 8
2131: PPUSH
2132: CALL_OW 12
2136: PUSH
2137: EMPTY
2138: LIST
2139: LIST
2140: LIST
2141: LIST
2142: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
2143: LD_ADDR_OWVAR 27
2147: PUSH
2148: LD_INT 1
2150: PPUSH
2151: LD_INT 2
2153: PPUSH
2154: CALL_OW 12
2158: ST_TO_ADDR
// Rebel2 = CreateHuman ;
2159: LD_ADDR_LOC 3
2163: PUSH
2164: CALL_OW 44
2168: ST_TO_ADDR
// if difficulty < 3 then
2169: LD_OWVAR 67
2173: PUSH
2174: LD_INT 3
2176: LESS
2177: IFFALSE 2266
// begin hc_basic_skills = [ rand ( 10 - difficulty , 10 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) ] ;
2179: LD_ADDR_OWVAR 30
2183: PUSH
2184: LD_INT 10
2186: PUSH
2187: LD_OWVAR 67
2191: MINUS
2192: PPUSH
2193: LD_INT 10
2195: PPUSH
2196: CALL_OW 12
2200: PUSH
2201: LD_INT 5
2203: PPUSH
2204: LD_INT 8
2206: PPUSH
2207: CALL_OW 12
2211: PUSH
2212: LD_INT 5
2214: PPUSH
2215: LD_INT 8
2217: PPUSH
2218: CALL_OW 12
2222: PUSH
2223: LD_INT 5
2225: PPUSH
2226: LD_INT 8
2228: PPUSH
2229: CALL_OW 12
2233: PUSH
2234: EMPTY
2235: LIST
2236: LIST
2237: LIST
2238: LIST
2239: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
2240: LD_ADDR_OWVAR 27
2244: PUSH
2245: LD_INT 1
2247: PPUSH
2248: LD_INT 2
2250: PPUSH
2251: CALL_OW 12
2255: ST_TO_ADDR
// Rebel3 = CreateHuman ;
2256: LD_ADDR_LOC 4
2260: PUSH
2261: CALL_OW 44
2265: ST_TO_ADDR
// end ; if difficulty < 2 then
2266: LD_OWVAR 67
2270: PUSH
2271: LD_INT 2
2273: LESS
2274: IFFALSE 2363
// begin hc_basic_skills = [ rand ( 10 - difficulty , 10 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) ] ;
2276: LD_ADDR_OWVAR 30
2280: PUSH
2281: LD_INT 10
2283: PUSH
2284: LD_OWVAR 67
2288: MINUS
2289: PPUSH
2290: LD_INT 10
2292: PPUSH
2293: CALL_OW 12
2297: PUSH
2298: LD_INT 5
2300: PPUSH
2301: LD_INT 8
2303: PPUSH
2304: CALL_OW 12
2308: PUSH
2309: LD_INT 5
2311: PPUSH
2312: LD_INT 8
2314: PPUSH
2315: CALL_OW 12
2319: PUSH
2320: LD_INT 5
2322: PPUSH
2323: LD_INT 8
2325: PPUSH
2326: CALL_OW 12
2330: PUSH
2331: EMPTY
2332: LIST
2333: LIST
2334: LIST
2335: LIST
2336: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
2337: LD_ADDR_OWVAR 27
2341: PUSH
2342: LD_INT 1
2344: PPUSH
2345: LD_INT 2
2347: PPUSH
2348: CALL_OW 12
2352: ST_TO_ADDR
// Rebel4 = CreateHuman ;
2353: LD_ADDR_LOC 5
2357: PUSH
2358: CALL_OW 44
2362: ST_TO_ADDR
// end ; PlaceUnitArea ( Rebel1 , RebelSetup , false ) ;
2363: LD_LOC 2
2367: PPUSH
2368: LD_INT 8
2370: PPUSH
2371: LD_INT 0
2373: PPUSH
2374: CALL_OW 49
// PlaceUnitArea ( Rebel2 , RebelSetup , false ) ;
2378: LD_LOC 3
2382: PPUSH
2383: LD_INT 8
2385: PPUSH
2386: LD_INT 0
2388: PPUSH
2389: CALL_OW 49
// PlaceUnitArea ( Rebel3 , RebelSetup , false ) ;
2393: LD_LOC 4
2397: PPUSH
2398: LD_INT 8
2400: PPUSH
2401: LD_INT 0
2403: PPUSH
2404: CALL_OW 49
// PlaceUnitArea ( Rebel4 , RebelSetup , false ) ;
2408: LD_LOC 5
2412: PPUSH
2413: LD_INT 8
2415: PPUSH
2416: LD_INT 0
2418: PPUSH
2419: CALL_OW 49
// wait ( 0 0$0.1 ) ;
2423: LD_INT 4
2425: PPUSH
2426: CALL_OW 67
// hc_class = 2 ;
2430: LD_ADDR_OWVAR 28
2434: PUSH
2435: LD_INT 2
2437: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 , 8 ) , rand ( 9 - difficulty , 10 ) , rand ( 5 , 9 ) , rand ( 5 , 8 ) ] ;
2438: LD_ADDR_OWVAR 30
2442: PUSH
2443: LD_INT 4
2445: PPUSH
2446: LD_INT 8
2448: PPUSH
2449: CALL_OW 12
2453: PUSH
2454: LD_INT 9
2456: PUSH
2457: LD_OWVAR 67
2461: MINUS
2462: PPUSH
2463: LD_INT 10
2465: PPUSH
2466: CALL_OW 12
2470: PUSH
2471: LD_INT 5
2473: PPUSH
2474: LD_INT 9
2476: PPUSH
2477: CALL_OW 12
2481: PUSH
2482: LD_INT 5
2484: PPUSH
2485: LD_INT 8
2487: PPUSH
2488: CALL_OW 12
2492: PUSH
2493: EMPTY
2494: LIST
2495: LIST
2496: LIST
2497: LIST
2498: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
2499: LD_ADDR_OWVAR 27
2503: PUSH
2504: LD_INT 1
2506: PPUSH
2507: LD_INT 2
2509: PPUSH
2510: CALL_OW 12
2514: ST_TO_ADDR
// Rebel1 = CreateHuman ;
2515: LD_ADDR_LOC 2
2519: PUSH
2520: CALL_OW 44
2524: ST_TO_ADDR
// hc_basic_skills = [ rand ( 5 , 7 ) , rand ( 9 - difficulty , 10 ) , rand ( 6 , 8 ) , rand ( 5 , 8 ) ] ;
2525: LD_ADDR_OWVAR 30
2529: PUSH
2530: LD_INT 5
2532: PPUSH
2533: LD_INT 7
2535: PPUSH
2536: CALL_OW 12
2540: PUSH
2541: LD_INT 9
2543: PUSH
2544: LD_OWVAR 67
2548: MINUS
2549: PPUSH
2550: LD_INT 10
2552: PPUSH
2553: CALL_OW 12
2557: PUSH
2558: LD_INT 6
2560: PPUSH
2561: LD_INT 8
2563: PPUSH
2564: CALL_OW 12
2568: PUSH
2569: LD_INT 5
2571: PPUSH
2572: LD_INT 8
2574: PPUSH
2575: CALL_OW 12
2579: PUSH
2580: EMPTY
2581: LIST
2582: LIST
2583: LIST
2584: LIST
2585: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
2586: LD_ADDR_OWVAR 27
2590: PUSH
2591: LD_INT 1
2593: PPUSH
2594: LD_INT 2
2596: PPUSH
2597: CALL_OW 12
2601: ST_TO_ADDR
// Rebel2 = CreateHuman ;
2602: LD_ADDR_LOC 3
2606: PUSH
2607: CALL_OW 44
2611: ST_TO_ADDR
// hc_basic_skills = [ rand ( 5 , 8 ) , rand ( 9 - difficulty , 10 ) , rand ( 1 , 10 ) , rand ( 5 , 8 ) ] ;
2612: LD_ADDR_OWVAR 30
2616: PUSH
2617: LD_INT 5
2619: PPUSH
2620: LD_INT 8
2622: PPUSH
2623: CALL_OW 12
2627: PUSH
2628: LD_INT 9
2630: PUSH
2631: LD_OWVAR 67
2635: MINUS
2636: PPUSH
2637: LD_INT 10
2639: PPUSH
2640: CALL_OW 12
2644: PUSH
2645: LD_INT 1
2647: PPUSH
2648: LD_INT 10
2650: PPUSH
2651: CALL_OW 12
2655: PUSH
2656: LD_INT 5
2658: PPUSH
2659: LD_INT 8
2661: PPUSH
2662: CALL_OW 12
2666: PUSH
2667: EMPTY
2668: LIST
2669: LIST
2670: LIST
2671: LIST
2672: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
2673: LD_ADDR_OWVAR 27
2677: PUSH
2678: LD_INT 1
2680: PPUSH
2681: LD_INT 2
2683: PPUSH
2684: CALL_OW 12
2688: ST_TO_ADDR
// Rebel3 = CreateHuman ;
2689: LD_ADDR_LOC 4
2693: PUSH
2694: CALL_OW 44
2698: ST_TO_ADDR
// hc_class = 3 ;
2699: LD_ADDR_OWVAR 28
2703: PUSH
2704: LD_INT 3
2706: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 , 8 ) , rand ( 4 , 9 ) , rand ( 9 - difficulty , 10 ) , rand ( 3 , 9 ) ] ;
2707: LD_ADDR_OWVAR 30
2711: PUSH
2712: LD_INT 4
2714: PPUSH
2715: LD_INT 8
2717: PPUSH
2718: CALL_OW 12
2722: PUSH
2723: LD_INT 4
2725: PPUSH
2726: LD_INT 9
2728: PPUSH
2729: CALL_OW 12
2733: PUSH
2734: LD_INT 9
2736: PUSH
2737: LD_OWVAR 67
2741: MINUS
2742: PPUSH
2743: LD_INT 10
2745: PPUSH
2746: CALL_OW 12
2750: PUSH
2751: LD_INT 3
2753: PPUSH
2754: LD_INT 9
2756: PPUSH
2757: CALL_OW 12
2761: PUSH
2762: EMPTY
2763: LIST
2764: LIST
2765: LIST
2766: LIST
2767: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
2768: LD_ADDR_OWVAR 27
2772: PUSH
2773: LD_INT 1
2775: PPUSH
2776: LD_INT 2
2778: PPUSH
2779: CALL_OW 12
2783: ST_TO_ADDR
// Rebel4 = CreateHuman ;
2784: LD_ADDR_LOC 5
2788: PUSH
2789: CALL_OW 44
2793: ST_TO_ADDR
// PlaceUnitArea ( Rebel1 , RebelSetup , false ) ;
2794: LD_LOC 2
2798: PPUSH
2799: LD_INT 8
2801: PPUSH
2802: LD_INT 0
2804: PPUSH
2805: CALL_OW 49
// PlaceUnitArea ( Rebel2 , RebelSetup , false ) ;
2809: LD_LOC 3
2813: PPUSH
2814: LD_INT 8
2816: PPUSH
2817: LD_INT 0
2819: PPUSH
2820: CALL_OW 49
// PlaceUnitArea ( Rebel3 , RebelSetup , false ) ;
2824: LD_LOC 4
2828: PPUSH
2829: LD_INT 8
2831: PPUSH
2832: LD_INT 0
2834: PPUSH
2835: CALL_OW 49
// wait ( 0 0$0.05 ) ;
2839: LD_INT 2
2841: PPUSH
2842: CALL_OW 67
// PlaceUnitArea ( Rebel4 , RebelSetup , false ) ;
2846: LD_LOC 5
2850: PPUSH
2851: LD_INT 8
2853: PPUSH
2854: LD_INT 0
2856: PPUSH
2857: CALL_OW 49
// wait ( 0 0$0.05 ) ;
2861: LD_INT 2
2863: PPUSH
2864: CALL_OW 67
// hc_basic_skills = [ rand ( 4 , 8 ) , rand ( 4 , 9 ) , rand ( 9 - difficulty , 10 ) , rand ( 3 , 9 ) ] ;
2868: LD_ADDR_OWVAR 30
2872: PUSH
2873: LD_INT 4
2875: PPUSH
2876: LD_INT 8
2878: PPUSH
2879: CALL_OW 12
2883: PUSH
2884: LD_INT 4
2886: PPUSH
2887: LD_INT 9
2889: PPUSH
2890: CALL_OW 12
2894: PUSH
2895: LD_INT 9
2897: PUSH
2898: LD_OWVAR 67
2902: MINUS
2903: PPUSH
2904: LD_INT 10
2906: PPUSH
2907: CALL_OW 12
2911: PUSH
2912: LD_INT 3
2914: PPUSH
2915: LD_INT 9
2917: PPUSH
2918: CALL_OW 12
2922: PUSH
2923: EMPTY
2924: LIST
2925: LIST
2926: LIST
2927: LIST
2928: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
2929: LD_ADDR_OWVAR 27
2933: PUSH
2934: LD_INT 1
2936: PPUSH
2937: LD_INT 2
2939: PPUSH
2940: CALL_OW 12
2944: ST_TO_ADDR
// Rebel1 = CreateHuman ;
2945: LD_ADDR_LOC 2
2949: PUSH
2950: CALL_OW 44
2954: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 , 8 ) , rand ( 4 , 9 ) , rand ( 9 - difficulty , 10 ) , rand ( 3 , 9 ) ] ;
2955: LD_ADDR_OWVAR 30
2959: PUSH
2960: LD_INT 4
2962: PPUSH
2963: LD_INT 8
2965: PPUSH
2966: CALL_OW 12
2970: PUSH
2971: LD_INT 4
2973: PPUSH
2974: LD_INT 9
2976: PPUSH
2977: CALL_OW 12
2981: PUSH
2982: LD_INT 9
2984: PUSH
2985: LD_OWVAR 67
2989: MINUS
2990: PPUSH
2991: LD_INT 10
2993: PPUSH
2994: CALL_OW 12
2998: PUSH
2999: LD_INT 3
3001: PPUSH
3002: LD_INT 9
3004: PPUSH
3005: CALL_OW 12
3009: PUSH
3010: EMPTY
3011: LIST
3012: LIST
3013: LIST
3014: LIST
3015: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
3016: LD_ADDR_OWVAR 27
3020: PUSH
3021: LD_INT 1
3023: PPUSH
3024: LD_INT 2
3026: PPUSH
3027: CALL_OW 12
3031: ST_TO_ADDR
// Rebel2 = CreateHuman ;
3032: LD_ADDR_LOC 3
3036: PUSH
3037: CALL_OW 44
3041: ST_TO_ADDR
// if difficulty < 3 then
3042: LD_OWVAR 67
3046: PUSH
3047: LD_INT 3
3049: LESS
3050: IFFALSE 3139
// begin hc_basic_skills = [ rand ( 4 , 8 ) , rand ( 4 , 9 ) , rand ( 9 - difficulty , 10 ) , rand ( 3 , 9 ) ] ;
3052: LD_ADDR_OWVAR 30
3056: PUSH
3057: LD_INT 4
3059: PPUSH
3060: LD_INT 8
3062: PPUSH
3063: CALL_OW 12
3067: PUSH
3068: LD_INT 4
3070: PPUSH
3071: LD_INT 9
3073: PPUSH
3074: CALL_OW 12
3078: PUSH
3079: LD_INT 9
3081: PUSH
3082: LD_OWVAR 67
3086: MINUS
3087: PPUSH
3088: LD_INT 10
3090: PPUSH
3091: CALL_OW 12
3095: PUSH
3096: LD_INT 3
3098: PPUSH
3099: LD_INT 9
3101: PPUSH
3102: CALL_OW 12
3106: PUSH
3107: EMPTY
3108: LIST
3109: LIST
3110: LIST
3111: LIST
3112: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
3113: LD_ADDR_OWVAR 27
3117: PUSH
3118: LD_INT 1
3120: PPUSH
3121: LD_INT 2
3123: PPUSH
3124: CALL_OW 12
3128: ST_TO_ADDR
// Rebel3 = CreateHuman ;
3129: LD_ADDR_LOC 4
3133: PUSH
3134: CALL_OW 44
3138: ST_TO_ADDR
// end ; if difficulty < 2 then
3139: LD_OWVAR 67
3143: PUSH
3144: LD_INT 2
3146: LESS
3147: IFFALSE 3236
// begin hc_basic_skills = [ rand ( 4 , 8 ) , rand ( 4 , 9 ) , rand ( 9 - difficulty , 10 ) , rand ( 3 , 9 ) ] ;
3149: LD_ADDR_OWVAR 30
3153: PUSH
3154: LD_INT 4
3156: PPUSH
3157: LD_INT 8
3159: PPUSH
3160: CALL_OW 12
3164: PUSH
3165: LD_INT 4
3167: PPUSH
3168: LD_INT 9
3170: PPUSH
3171: CALL_OW 12
3175: PUSH
3176: LD_INT 9
3178: PUSH
3179: LD_OWVAR 67
3183: MINUS
3184: PPUSH
3185: LD_INT 10
3187: PPUSH
3188: CALL_OW 12
3192: PUSH
3193: LD_INT 3
3195: PPUSH
3196: LD_INT 9
3198: PPUSH
3199: CALL_OW 12
3203: PUSH
3204: EMPTY
3205: LIST
3206: LIST
3207: LIST
3208: LIST
3209: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
3210: LD_ADDR_OWVAR 27
3214: PUSH
3215: LD_INT 1
3217: PPUSH
3218: LD_INT 2
3220: PPUSH
3221: CALL_OW 12
3225: ST_TO_ADDR
// Rebel4 = CreateHuman ;
3226: LD_ADDR_LOC 5
3230: PUSH
3231: CALL_OW 44
3235: ST_TO_ADDR
// end ; PlaceUnitArea ( Rebel1 , RebelSetup , false ) ;
3236: LD_LOC 2
3240: PPUSH
3241: LD_INT 8
3243: PPUSH
3244: LD_INT 0
3246: PPUSH
3247: CALL_OW 49
// PlaceUnitArea ( Rebel2 , RebelSetup , false ) ;
3251: LD_LOC 3
3255: PPUSH
3256: LD_INT 8
3258: PPUSH
3259: LD_INT 0
3261: PPUSH
3262: CALL_OW 49
// PlaceUnitArea ( Rebel3 , RebelSetup , false ) ;
3266: LD_LOC 4
3270: PPUSH
3271: LD_INT 8
3273: PPUSH
3274: LD_INT 0
3276: PPUSH
3277: CALL_OW 49
// PlaceUnitArea ( Rebel4 , RebelSetup , false ) ;
3281: LD_LOC 5
3285: PPUSH
3286: LD_INT 8
3288: PPUSH
3289: LD_INT 0
3291: PPUSH
3292: CALL_OW 49
// wait ( 0 0$0.1 ) ;
3296: LD_INT 4
3298: PPUSH
3299: CALL_OW 67
// hc_class = 4 ;
3303: LD_ADDR_OWVAR 28
3307: PUSH
3308: LD_INT 4
3310: ST_TO_ADDR
// hc_basic_skills = [ rand ( 3 , 7 ) , rand ( 3 , 7 ) , rand ( 3 , 7 ) , rand ( 9 - difficulty , 10 ) ] ;
3311: LD_ADDR_OWVAR 30
3315: PUSH
3316: LD_INT 3
3318: PPUSH
3319: LD_INT 7
3321: PPUSH
3322: CALL_OW 12
3326: PUSH
3327: LD_INT 3
3329: PPUSH
3330: LD_INT 7
3332: PPUSH
3333: CALL_OW 12
3337: PUSH
3338: LD_INT 3
3340: PPUSH
3341: LD_INT 7
3343: PPUSH
3344: CALL_OW 12
3348: PUSH
3349: LD_INT 9
3351: PUSH
3352: LD_OWVAR 67
3356: MINUS
3357: PPUSH
3358: LD_INT 10
3360: PPUSH
3361: CALL_OW 12
3365: PUSH
3366: EMPTY
3367: LIST
3368: LIST
3369: LIST
3370: LIST
3371: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
3372: LD_ADDR_OWVAR 27
3376: PUSH
3377: LD_INT 1
3379: PPUSH
3380: LD_INT 2
3382: PPUSH
3383: CALL_OW 12
3387: ST_TO_ADDR
// Rebel3 = CreateHuman ;
3388: LD_ADDR_LOC 4
3392: PUSH
3393: CALL_OW 44
3397: ST_TO_ADDR
// if difficulty = 1 then
3398: LD_OWVAR 67
3402: PUSH
3403: LD_INT 1
3405: EQUAL
3406: IFFALSE 3495
// begin hc_basic_skills = [ rand ( 3 , 7 ) , rand ( 3 , 7 ) , rand ( 3 , 7 ) , rand ( 9 - difficulty , 10 ) ] ;
3408: LD_ADDR_OWVAR 30
3412: PUSH
3413: LD_INT 3
3415: PPUSH
3416: LD_INT 7
3418: PPUSH
3419: CALL_OW 12
3423: PUSH
3424: LD_INT 3
3426: PPUSH
3427: LD_INT 7
3429: PPUSH
3430: CALL_OW 12
3434: PUSH
3435: LD_INT 3
3437: PPUSH
3438: LD_INT 7
3440: PPUSH
3441: CALL_OW 12
3445: PUSH
3446: LD_INT 9
3448: PUSH
3449: LD_OWVAR 67
3453: MINUS
3454: PPUSH
3455: LD_INT 10
3457: PPUSH
3458: CALL_OW 12
3462: PUSH
3463: EMPTY
3464: LIST
3465: LIST
3466: LIST
3467: LIST
3468: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
3469: LD_ADDR_OWVAR 27
3473: PUSH
3474: LD_INT 1
3476: PPUSH
3477: LD_INT 2
3479: PPUSH
3480: CALL_OW 12
3484: ST_TO_ADDR
// Rebel4 = CreateHuman ;
3485: LD_ADDR_LOC 5
3489: PUSH
3490: CALL_OW 44
3494: ST_TO_ADDR
// end ; PlaceUnitArea ( Rebel3 , RebelSetup , false ) ;
3495: LD_LOC 4
3499: PPUSH
3500: LD_INT 8
3502: PPUSH
3503: LD_INT 0
3505: PPUSH
3506: CALL_OW 49
// PlaceUnitArea ( Rebel4 , RebelSetup , false ) ;
3510: LD_LOC 5
3514: PPUSH
3515: LD_INT 8
3517: PPUSH
3518: LD_INT 0
3520: PPUSH
3521: CALL_OW 49
// wait ( 0 0$0.1 ) ;
3525: LD_INT 4
3527: PPUSH
3528: CALL_OW 67
// end ;
3532: LD_VAR 0 1
3536: RET
// var ApeList , TotalApes , CountMe ; function CountApes ; begin
3537: LD_INT 0
3539: PPUSH
// result = 0 ;
3540: LD_ADDR_VAR 0 1
3544: PUSH
3545: LD_INT 0
3547: ST_TO_ADDR
// apeList = filterallunits ( [ [ f_nation , 0 ] , [ f_side , 0 ] ] ) ;
3548: LD_ADDR_LOC 6
3552: PUSH
3553: LD_INT 23
3555: PUSH
3556: LD_INT 0
3558: PUSH
3559: EMPTY
3560: LIST
3561: LIST
3562: PUSH
3563: LD_INT 22
3565: PUSH
3566: LD_INT 0
3568: PUSH
3569: EMPTY
3570: LIST
3571: LIST
3572: PUSH
3573: EMPTY
3574: LIST
3575: LIST
3576: PPUSH
3577: CALL_OW 69
3581: ST_TO_ADDR
// for Countme in ApeList do
3582: LD_ADDR_LOC 8
3586: PUSH
3587: LD_LOC 6
3591: PUSH
3592: FOR_IN
3593: IFFALSE 3611
// result = result + 1 ;
3595: LD_ADDR_VAR 0 1
3599: PUSH
3600: LD_VAR 0 1
3604: PUSH
3605: LD_INT 1
3607: PLUS
3608: ST_TO_ADDR
3609: GO 3592
3611: POP
3612: POP
// end ;
3613: LD_VAR 0 1
3617: RET
// function CountAllApes ; begin
3618: LD_INT 0
3620: PPUSH
// result = 0 ;
3621: LD_ADDR_VAR 0 1
3625: PUSH
3626: LD_INT 0
3628: ST_TO_ADDR
// apeList = filterallunits ( [ [ f_nation , 0 ] ] ) ;
3629: LD_ADDR_LOC 6
3633: PUSH
3634: LD_INT 23
3636: PUSH
3637: LD_INT 0
3639: PUSH
3640: EMPTY
3641: LIST
3642: LIST
3643: PUSH
3644: EMPTY
3645: LIST
3646: PPUSH
3647: CALL_OW 69
3651: ST_TO_ADDR
// for Countme in ApeList do
3652: LD_ADDR_LOC 8
3656: PUSH
3657: LD_LOC 6
3661: PUSH
3662: FOR_IN
3663: IFFALSE 3681
// result = result + 1 ;
3665: LD_ADDR_VAR 0 1
3669: PUSH
3670: LD_VAR 0 1
3674: PUSH
3675: LD_INT 1
3677: PLUS
3678: ST_TO_ADDR
3679: GO 3662
3681: POP
3682: POP
// end ;
3683: LD_VAR 0 1
3687: RET
// var monkey , dice ; every 1 1$50 do
3688: GO 3690
3690: DISABLE
// begin enable ;
3691: ENABLE
// Randomizeall ;
3692: CALL_OW 11
// uc_nation = 0 ;
3696: LD_ADDR_OWVAR 21
3700: PUSH
3701: LD_INT 0
3703: ST_TO_ADDR
// uc_side = 0 ;
3704: LD_ADDR_OWVAR 20
3708: PUSH
3709: LD_INT 0
3711: ST_TO_ADDR
// hc_class = class_Apeman ;
3712: LD_ADDR_OWVAR 28
3716: PUSH
3717: LD_INT 12
3719: ST_TO_ADDR
// hc_basic_skills = [ 4 , 4 , 2 , 2 ] ;
3720: LD_ADDR_OWVAR 30
3724: PUSH
3725: LD_INT 4
3727: PUSH
3728: LD_INT 4
3730: PUSH
3731: LD_INT 2
3733: PUSH
3734: LD_INT 2
3736: PUSH
3737: EMPTY
3738: LIST
3739: LIST
3740: LIST
3741: LIST
3742: ST_TO_ADDR
// monkey = createHuman ( ) ;
3743: LD_ADDR_LOC 9
3747: PUSH
3748: CALL_OW 44
3752: ST_TO_ADDR
// dice = rand ( difficulty * 3 , 25 ) ;
3753: LD_ADDR_LOC 10
3757: PUSH
3758: LD_OWVAR 67
3762: PUSH
3763: LD_INT 3
3765: MUL
3766: PPUSH
3767: LD_INT 25
3769: PPUSH
3770: CALL_OW 12
3774: ST_TO_ADDR
// TotalApes = CountAllApes ;
3775: LD_ADDR_LOC 7
3779: PUSH
3780: CALL 3618 0 0
3784: ST_TO_ADDR
// if dice > CountApes and TotalApes < 50 then
3785: LD_LOC 10
3789: PUSH
3790: CALL 3537 0 0
3794: GREATER
3795: PUSH
3796: LD_LOC 7
3800: PUSH
3801: LD_INT 50
3803: LESS
3804: AND
3805: IFFALSE 3822
// PlaceUnitArea ( Monkey , Apespawn , false ) ;
3807: LD_LOC 9
3811: PPUSH
3812: LD_INT 9
3814: PPUSH
3815: LD_INT 0
3817: PPUSH
3818: CALL_OW 49
// end ;
3822: END
// every 1 1$30 trigger size ( GetListOfCratesInArea ( CrateDrop ) ) < 200 do
3823: LD_INT 14
3825: PPUSH
3826: CALL_OW 435
3830: PPUSH
3831: CALL 20450 0 1
3835: PUSH
3836: LD_INT 200
3838: LESS
3839: IFFALSE 3875
3841: GO 3843
3843: DISABLE
// begin enable ;
3844: ENABLE
// CreateResourcesArea ( 1 , rand ( 4 - difficulty , 5 ) , CrateDrop , true ) ;
3845: LD_INT 1
3847: PPUSH
3848: LD_INT 4
3850: PUSH
3851: LD_OWVAR 67
3855: MINUS
3856: PPUSH
3857: LD_INT 5
3859: PPUSH
3860: CALL_OW 12
3864: PPUSH
3865: LD_INT 14
3867: PPUSH
3868: LD_INT 1
3870: PPUSH
3871: CALL_OW 59
// end ;
3875: END
// every 5 5$0 trigger size ( GetListOfCratesInArea ( CratesDrop ) ) < 200 do
3876: LD_INT 13
3878: PPUSH
3879: CALL_OW 435
3883: PPUSH
3884: CALL 20450 0 1
3888: PUSH
3889: LD_INT 200
3891: LESS
3892: IFFALSE 4210
3894: GO 3896
3896: DISABLE
// begin enable ;
3897: ENABLE
// CreateResourcesArea ( 1 , rand ( 1 , 5 - difficulty ) , CratesDrop , true ) ;
3898: LD_INT 1
3900: PPUSH
3901: LD_INT 1
3903: PPUSH
3904: LD_INT 5
3906: PUSH
3907: LD_OWVAR 67
3911: MINUS
3912: PPUSH
3913: CALL_OW 12
3917: PPUSH
3918: LD_INT 13
3920: PPUSH
3921: LD_INT 1
3923: PPUSH
3924: CALL_OW 59
// dWait ( 0 0$01 ) ;
3928: LD_INT 35
3930: PPUSH
3931: CALL_OW 68
// CreateResourcesArea ( 1 , rand ( 1 , 5 - difficulty ) , CratesDrop , true ) ;
3935: LD_INT 1
3937: PPUSH
3938: LD_INT 1
3940: PPUSH
3941: LD_INT 5
3943: PUSH
3944: LD_OWVAR 67
3948: MINUS
3949: PPUSH
3950: CALL_OW 12
3954: PPUSH
3955: LD_INT 13
3957: PPUSH
3958: LD_INT 1
3960: PPUSH
3961: CALL_OW 59
// dWait ( 0 0$01 ) ;
3965: LD_INT 35
3967: PPUSH
3968: CALL_OW 68
// CreateResourcesArea ( 1 , rand ( 1 , 5 - difficulty ) , CratesDrop , true ) ;
3972: LD_INT 1
3974: PPUSH
3975: LD_INT 1
3977: PPUSH
3978: LD_INT 5
3980: PUSH
3981: LD_OWVAR 67
3985: MINUS
3986: PPUSH
3987: CALL_OW 12
3991: PPUSH
3992: LD_INT 13
3994: PPUSH
3995: LD_INT 1
3997: PPUSH
3998: CALL_OW 59
// dWait ( 0 0$5 ) ;
4002: LD_INT 175
4004: PPUSH
4005: CALL_OW 68
// CreateResourcesArea ( 1 , rand ( 1 , 4 - difficulty ) , CratesDrop , true ) ;
4009: LD_INT 1
4011: PPUSH
4012: LD_INT 1
4014: PPUSH
4015: LD_INT 4
4017: PUSH
4018: LD_OWVAR 67
4022: MINUS
4023: PPUSH
4024: CALL_OW 12
4028: PPUSH
4029: LD_INT 13
4031: PPUSH
4032: LD_INT 1
4034: PPUSH
4035: CALL_OW 59
// dWait ( 0 0$0.5 ) ;
4039: LD_INT 18
4041: PPUSH
4042: CALL_OW 68
// CreateResourcesArea ( 1 , rand ( 1 , 4 - difficulty ) , CratesDrop , true ) ;
4046: LD_INT 1
4048: PPUSH
4049: LD_INT 1
4051: PPUSH
4052: LD_INT 4
4054: PUSH
4055: LD_OWVAR 67
4059: MINUS
4060: PPUSH
4061: CALL_OW 12
4065: PPUSH
4066: LD_INT 13
4068: PPUSH
4069: LD_INT 1
4071: PPUSH
4072: CALL_OW 59
// dWait ( 0 0$0.5 ) ;
4076: LD_INT 18
4078: PPUSH
4079: CALL_OW 68
// CreateResourcesArea ( 1 , rand ( 1 , 4 - difficulty ) , CratesDrop , true ) ;
4083: LD_INT 1
4085: PPUSH
4086: LD_INT 1
4088: PPUSH
4089: LD_INT 4
4091: PUSH
4092: LD_OWVAR 67
4096: MINUS
4097: PPUSH
4098: CALL_OW 12
4102: PPUSH
4103: LD_INT 13
4105: PPUSH
4106: LD_INT 1
4108: PPUSH
4109: CALL_OW 59
// dWait ( 0 0$0.5 ) ;
4113: LD_INT 18
4115: PPUSH
4116: CALL_OW 68
// CreateResourcesArea ( 1 , rand ( 1 , 4 - difficulty ) , CratesDrop , true ) ;
4120: LD_INT 1
4122: PPUSH
4123: LD_INT 1
4125: PPUSH
4126: LD_INT 4
4128: PUSH
4129: LD_OWVAR 67
4133: MINUS
4134: PPUSH
4135: CALL_OW 12
4139: PPUSH
4140: LD_INT 13
4142: PPUSH
4143: LD_INT 1
4145: PPUSH
4146: CALL_OW 59
// dWait ( 0 0$0.5 ) ;
4150: LD_INT 18
4152: PPUSH
4153: CALL_OW 68
// CreateResourcesArea ( 1 , rand ( 1 , 4 - difficulty ) , CratesDrop , true ) ;
4157: LD_INT 1
4159: PPUSH
4160: LD_INT 1
4162: PPUSH
4163: LD_INT 4
4165: PUSH
4166: LD_OWVAR 67
4170: MINUS
4171: PPUSH
4172: CALL_OW 12
4176: PPUSH
4177: LD_INT 13
4179: PPUSH
4180: LD_INT 1
4182: PPUSH
4183: CALL_OW 59
// dWait ( 0 0$7 ) ;
4187: LD_INT 245
4189: PPUSH
4190: CALL_OW 68
// CreateResourcesArea ( 1 , 5 , CratesDrop , true ) ;
4194: LD_INT 1
4196: PPUSH
4197: LD_INT 5
4199: PPUSH
4200: LD_INT 13
4202: PPUSH
4203: LD_INT 1
4205: PPUSH
4206: CALL_OW 59
// end ; end_of_file
4210: END
// export LoyalGun1 , LoyalGun2 , LoyalGun3 , LoyalGun4 , LoyalGun5 , LoyalGun6 , LoyalGun7 , LoyalGun8 , AmBar , CommandoBar , AmLab1 , AmLab2 , AmFac1 , BlueBase , ControlTower1 , ControlTower2 , ControlTower3 , LoyalTele1 , LoyalTele2 , Loyal1 , Loyal2 , Loyal3 , Loyal4 , Loyal5 , Loyal6 , Loyal7 , Loyal8 , LoyalMech1 , LoyalMech2 , LoyalMech3 , LoyalMech4 , LoyalEng1 , LoyalEng2 , LoyalEng3 , LoyalEng4 , LoyalDoc1 , LoyalDoc2 , LoyalDoc3 , Commando1 , Commando2 , Commando3 , Commando4 , MonkeyGuard ; var ExtUnit , MiscUnit , AutoGun ; every 0 0$03 do
4211: GO 4213
4213: DISABLE
// begin uc_side = 1 ;
4214: LD_ADDR_OWVAR 20
4218: PUSH
4219: LD_INT 1
4221: ST_TO_ADDR
// uc_nation = 1 ;
4222: LD_ADDR_OWVAR 21
4226: PUSH
4227: LD_INT 1
4229: ST_TO_ADDR
// hc_class = 1 ;
4230: LD_ADDR_OWVAR 28
4234: PUSH
4235: LD_INT 1
4237: ST_TO_ADDR
// hc_attr = [ 15 , 10 ] ;
4238: LD_ADDR_OWVAR 29
4242: PUSH
4243: LD_INT 15
4245: PUSH
4246: LD_INT 10
4248: PUSH
4249: EMPTY
4250: LIST
4251: LIST
4252: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
4253: LD_ADDR_OWVAR 30
4257: PUSH
4258: LD_INT 6
4260: PUSH
4261: LD_OWVAR 67
4265: PLUS
4266: PPUSH
4267: LD_INT 10
4269: PPUSH
4270: CALL_OW 12
4274: PUSH
4275: LD_INT 3
4277: PUSH
4278: LD_OWVAR 67
4282: PLUS
4283: PPUSH
4284: LD_INT 6
4286: PUSH
4287: LD_OWVAR 67
4291: PLUS
4292: PPUSH
4293: CALL_OW 12
4297: PUSH
4298: LD_INT 3
4300: PUSH
4301: LD_OWVAR 67
4305: PLUS
4306: PPUSH
4307: LD_INT 6
4309: PUSH
4310: LD_OWVAR 67
4314: PLUS
4315: PPUSH
4316: CALL_OW 12
4320: PUSH
4321: LD_INT 1
4323: PUSH
4324: LD_OWVAR 67
4328: PLUS
4329: PPUSH
4330: LD_INT 5
4332: PUSH
4333: LD_OWVAR 67
4337: PLUS
4338: PPUSH
4339: CALL_OW 12
4343: PUSH
4344: EMPTY
4345: LIST
4346: LIST
4347: LIST
4348: LIST
4349: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
4350: LD_ADDR_OWVAR 27
4354: PUSH
4355: LD_INT 1
4357: PPUSH
4358: LD_INT 2
4360: PPUSH
4361: CALL_OW 12
4365: ST_TO_ADDR
// Loyal1 = CreateHuman ;
4366: LD_ADDR_EXP 22
4370: PUSH
4371: CALL_OW 44
4375: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
4376: LD_ADDR_OWVAR 30
4380: PUSH
4381: LD_INT 6
4383: PUSH
4384: LD_OWVAR 67
4388: PLUS
4389: PPUSH
4390: LD_INT 10
4392: PPUSH
4393: CALL_OW 12
4397: PUSH
4398: LD_INT 3
4400: PUSH
4401: LD_OWVAR 67
4405: PLUS
4406: PPUSH
4407: LD_INT 6
4409: PUSH
4410: LD_OWVAR 67
4414: PLUS
4415: PPUSH
4416: CALL_OW 12
4420: PUSH
4421: LD_INT 3
4423: PUSH
4424: LD_OWVAR 67
4428: PLUS
4429: PPUSH
4430: LD_INT 6
4432: PUSH
4433: LD_OWVAR 67
4437: PLUS
4438: PPUSH
4439: CALL_OW 12
4443: PUSH
4444: LD_INT 1
4446: PUSH
4447: LD_OWVAR 67
4451: PLUS
4452: PPUSH
4453: LD_INT 5
4455: PUSH
4456: LD_OWVAR 67
4460: PLUS
4461: PPUSH
4462: CALL_OW 12
4466: PUSH
4467: EMPTY
4468: LIST
4469: LIST
4470: LIST
4471: LIST
4472: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
4473: LD_ADDR_OWVAR 27
4477: PUSH
4478: LD_INT 1
4480: PPUSH
4481: LD_INT 2
4483: PPUSH
4484: CALL_OW 12
4488: ST_TO_ADDR
// Loyal2 = CreateHuman ;
4489: LD_ADDR_EXP 23
4493: PUSH
4494: CALL_OW 44
4498: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
4499: LD_ADDR_OWVAR 30
4503: PUSH
4504: LD_INT 6
4506: PUSH
4507: LD_OWVAR 67
4511: PLUS
4512: PPUSH
4513: LD_INT 10
4515: PPUSH
4516: CALL_OW 12
4520: PUSH
4521: LD_INT 3
4523: PUSH
4524: LD_OWVAR 67
4528: PLUS
4529: PPUSH
4530: LD_INT 6
4532: PUSH
4533: LD_OWVAR 67
4537: PLUS
4538: PPUSH
4539: CALL_OW 12
4543: PUSH
4544: LD_INT 3
4546: PUSH
4547: LD_OWVAR 67
4551: PLUS
4552: PPUSH
4553: LD_INT 6
4555: PUSH
4556: LD_OWVAR 67
4560: PLUS
4561: PPUSH
4562: CALL_OW 12
4566: PUSH
4567: LD_INT 1
4569: PUSH
4570: LD_OWVAR 67
4574: PLUS
4575: PPUSH
4576: LD_INT 5
4578: PUSH
4579: LD_OWVAR 67
4583: PLUS
4584: PPUSH
4585: CALL_OW 12
4589: PUSH
4590: EMPTY
4591: LIST
4592: LIST
4593: LIST
4594: LIST
4595: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
4596: LD_ADDR_OWVAR 27
4600: PUSH
4601: LD_INT 1
4603: PPUSH
4604: LD_INT 2
4606: PPUSH
4607: CALL_OW 12
4611: ST_TO_ADDR
// Loyal3 = CreateHuman ;
4612: LD_ADDR_EXP 24
4616: PUSH
4617: CALL_OW 44
4621: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
4622: LD_ADDR_OWVAR 30
4626: PUSH
4627: LD_INT 6
4629: PUSH
4630: LD_OWVAR 67
4634: PLUS
4635: PPUSH
4636: LD_INT 10
4638: PPUSH
4639: CALL_OW 12
4643: PUSH
4644: LD_INT 3
4646: PUSH
4647: LD_OWVAR 67
4651: PLUS
4652: PPUSH
4653: LD_INT 6
4655: PUSH
4656: LD_OWVAR 67
4660: PLUS
4661: PPUSH
4662: CALL_OW 12
4666: PUSH
4667: LD_INT 3
4669: PUSH
4670: LD_OWVAR 67
4674: PLUS
4675: PPUSH
4676: LD_INT 6
4678: PUSH
4679: LD_OWVAR 67
4683: PLUS
4684: PPUSH
4685: CALL_OW 12
4689: PUSH
4690: LD_INT 1
4692: PUSH
4693: LD_OWVAR 67
4697: PLUS
4698: PPUSH
4699: LD_INT 5
4701: PUSH
4702: LD_OWVAR 67
4706: PLUS
4707: PPUSH
4708: CALL_OW 12
4712: PUSH
4713: EMPTY
4714: LIST
4715: LIST
4716: LIST
4717: LIST
4718: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
4719: LD_ADDR_OWVAR 27
4723: PUSH
4724: LD_INT 1
4726: PPUSH
4727: LD_INT 2
4729: PPUSH
4730: CALL_OW 12
4734: ST_TO_ADDR
// Loyal4 = CreateHuman ;
4735: LD_ADDR_EXP 25
4739: PUSH
4740: CALL_OW 44
4744: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
4745: LD_ADDR_OWVAR 30
4749: PUSH
4750: LD_INT 6
4752: PUSH
4753: LD_OWVAR 67
4757: PLUS
4758: PPUSH
4759: LD_INT 10
4761: PPUSH
4762: CALL_OW 12
4766: PUSH
4767: LD_INT 3
4769: PUSH
4770: LD_OWVAR 67
4774: PLUS
4775: PPUSH
4776: LD_INT 6
4778: PUSH
4779: LD_OWVAR 67
4783: PLUS
4784: PPUSH
4785: CALL_OW 12
4789: PUSH
4790: LD_INT 3
4792: PUSH
4793: LD_OWVAR 67
4797: PLUS
4798: PPUSH
4799: LD_INT 6
4801: PUSH
4802: LD_OWVAR 67
4806: PLUS
4807: PPUSH
4808: CALL_OW 12
4812: PUSH
4813: LD_INT 1
4815: PUSH
4816: LD_OWVAR 67
4820: PLUS
4821: PPUSH
4822: LD_INT 5
4824: PUSH
4825: LD_OWVAR 67
4829: PLUS
4830: PPUSH
4831: CALL_OW 12
4835: PUSH
4836: EMPTY
4837: LIST
4838: LIST
4839: LIST
4840: LIST
4841: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
4842: LD_ADDR_OWVAR 27
4846: PUSH
4847: LD_INT 1
4849: PPUSH
4850: LD_INT 2
4852: PPUSH
4853: CALL_OW 12
4857: ST_TO_ADDR
// Loyal5 = CreateHuman ;
4858: LD_ADDR_EXP 26
4862: PUSH
4863: CALL_OW 44
4867: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
4868: LD_ADDR_OWVAR 30
4872: PUSH
4873: LD_INT 6
4875: PUSH
4876: LD_OWVAR 67
4880: PLUS
4881: PPUSH
4882: LD_INT 10
4884: PPUSH
4885: CALL_OW 12
4889: PUSH
4890: LD_INT 3
4892: PUSH
4893: LD_OWVAR 67
4897: PLUS
4898: PPUSH
4899: LD_INT 6
4901: PUSH
4902: LD_OWVAR 67
4906: PLUS
4907: PPUSH
4908: CALL_OW 12
4912: PUSH
4913: LD_INT 3
4915: PUSH
4916: LD_OWVAR 67
4920: PLUS
4921: PPUSH
4922: LD_INT 6
4924: PUSH
4925: LD_OWVAR 67
4929: PLUS
4930: PPUSH
4931: CALL_OW 12
4935: PUSH
4936: LD_INT 1
4938: PUSH
4939: LD_OWVAR 67
4943: PLUS
4944: PPUSH
4945: LD_INT 5
4947: PUSH
4948: LD_OWVAR 67
4952: PLUS
4953: PPUSH
4954: CALL_OW 12
4958: PUSH
4959: EMPTY
4960: LIST
4961: LIST
4962: LIST
4963: LIST
4964: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
4965: LD_ADDR_OWVAR 27
4969: PUSH
4970: LD_INT 1
4972: PPUSH
4973: LD_INT 2
4975: PPUSH
4976: CALL_OW 12
4980: ST_TO_ADDR
// Loyal6 = CreateHuman ;
4981: LD_ADDR_EXP 27
4985: PUSH
4986: CALL_OW 44
4990: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
4991: LD_ADDR_OWVAR 30
4995: PUSH
4996: LD_INT 6
4998: PUSH
4999: LD_OWVAR 67
5003: PLUS
5004: PPUSH
5005: LD_INT 10
5007: PPUSH
5008: CALL_OW 12
5012: PUSH
5013: LD_INT 3
5015: PUSH
5016: LD_OWVAR 67
5020: PLUS
5021: PPUSH
5022: LD_INT 6
5024: PUSH
5025: LD_OWVAR 67
5029: PLUS
5030: PPUSH
5031: CALL_OW 12
5035: PUSH
5036: LD_INT 3
5038: PUSH
5039: LD_OWVAR 67
5043: PLUS
5044: PPUSH
5045: LD_INT 6
5047: PUSH
5048: LD_OWVAR 67
5052: PLUS
5053: PPUSH
5054: CALL_OW 12
5058: PUSH
5059: LD_INT 1
5061: PUSH
5062: LD_OWVAR 67
5066: PLUS
5067: PPUSH
5068: LD_INT 5
5070: PUSH
5071: LD_OWVAR 67
5075: PLUS
5076: PPUSH
5077: CALL_OW 12
5081: PUSH
5082: EMPTY
5083: LIST
5084: LIST
5085: LIST
5086: LIST
5087: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
5088: LD_ADDR_OWVAR 27
5092: PUSH
5093: LD_INT 1
5095: PPUSH
5096: LD_INT 2
5098: PPUSH
5099: CALL_OW 12
5103: ST_TO_ADDR
// Loyal7 = CreateHuman ;
5104: LD_ADDR_EXP 28
5108: PUSH
5109: CALL_OW 44
5113: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
5114: LD_ADDR_OWVAR 30
5118: PUSH
5119: LD_INT 6
5121: PUSH
5122: LD_OWVAR 67
5126: PLUS
5127: PPUSH
5128: LD_INT 10
5130: PPUSH
5131: CALL_OW 12
5135: PUSH
5136: LD_INT 3
5138: PUSH
5139: LD_OWVAR 67
5143: PLUS
5144: PPUSH
5145: LD_INT 6
5147: PUSH
5148: LD_OWVAR 67
5152: PLUS
5153: PPUSH
5154: CALL_OW 12
5158: PUSH
5159: LD_INT 3
5161: PUSH
5162: LD_OWVAR 67
5166: PLUS
5167: PPUSH
5168: LD_INT 6
5170: PUSH
5171: LD_OWVAR 67
5175: PLUS
5176: PPUSH
5177: CALL_OW 12
5181: PUSH
5182: LD_INT 1
5184: PUSH
5185: LD_OWVAR 67
5189: PLUS
5190: PPUSH
5191: LD_INT 5
5193: PUSH
5194: LD_OWVAR 67
5198: PLUS
5199: PPUSH
5200: CALL_OW 12
5204: PUSH
5205: EMPTY
5206: LIST
5207: LIST
5208: LIST
5209: LIST
5210: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
5211: LD_ADDR_OWVAR 27
5215: PUSH
5216: LD_INT 1
5218: PPUSH
5219: LD_INT 2
5221: PPUSH
5222: CALL_OW 12
5226: ST_TO_ADDR
// Loyal8 = CreateHuman ;
5227: LD_ADDR_EXP 29
5231: PUSH
5232: CALL_OW 44
5236: ST_TO_ADDR
// hc_class = 2 ;
5237: LD_ADDR_OWVAR 28
5241: PUSH
5242: LD_INT 2
5244: ST_TO_ADDR
// hc_basic_skills = [ rand ( 5 + difficulty , 10 ) , 10 , rand ( 3 , 6 ) , rand ( 1 , 5 ) ] ;
5245: LD_ADDR_OWVAR 30
5249: PUSH
5250: LD_INT 5
5252: PUSH
5253: LD_OWVAR 67
5257: PLUS
5258: PPUSH
5259: LD_INT 10
5261: PPUSH
5262: CALL_OW 12
5266: PUSH
5267: LD_INT 10
5269: PUSH
5270: LD_INT 3
5272: PPUSH
5273: LD_INT 6
5275: PPUSH
5276: CALL_OW 12
5280: PUSH
5281: LD_INT 1
5283: PPUSH
5284: LD_INT 5
5286: PPUSH
5287: CALL_OW 12
5291: PUSH
5292: EMPTY
5293: LIST
5294: LIST
5295: LIST
5296: LIST
5297: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
5298: LD_ADDR_OWVAR 27
5302: PUSH
5303: LD_INT 1
5305: PPUSH
5306: LD_INT 2
5308: PPUSH
5309: CALL_OW 12
5313: ST_TO_ADDR
// LoyalEng1 = CreateHuman ;
5314: LD_ADDR_EXP 34
5318: PUSH
5319: CALL_OW 44
5323: ST_TO_ADDR
// hc_attr = [ 35 , 7 ] ;
5324: LD_ADDR_OWVAR 29
5328: PUSH
5329: LD_INT 35
5331: PUSH
5332: LD_INT 7
5334: PUSH
5335: EMPTY
5336: LIST
5337: LIST
5338: ST_TO_ADDR
// hc_basic_skills = [ 10 , 10 , rand ( 3 , 6 ) , rand ( 1 , 5 ) ] ;
5339: LD_ADDR_OWVAR 30
5343: PUSH
5344: LD_INT 10
5346: PUSH
5347: LD_INT 10
5349: PUSH
5350: LD_INT 3
5352: PPUSH
5353: LD_INT 6
5355: PPUSH
5356: CALL_OW 12
5360: PUSH
5361: LD_INT 1
5363: PPUSH
5364: LD_INT 5
5366: PPUSH
5367: CALL_OW 12
5371: PUSH
5372: EMPTY
5373: LIST
5374: LIST
5375: LIST
5376: LIST
5377: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
5378: LD_ADDR_OWVAR 27
5382: PUSH
5383: LD_INT 1
5385: PPUSH
5386: LD_INT 2
5388: PPUSH
5389: CALL_OW 12
5393: ST_TO_ADDR
// LoyalEng2 = CreateHuman ;
5394: LD_ADDR_EXP 35
5398: PUSH
5399: CALL_OW 44
5403: ST_TO_ADDR
// hc_attr = [ 10 , 12 ] ;
5404: LD_ADDR_OWVAR 29
5408: PUSH
5409: LD_INT 10
5411: PUSH
5412: LD_INT 12
5414: PUSH
5415: EMPTY
5416: LIST
5417: LIST
5418: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 + difficulty , 10 ) , 9 , rand ( 3 , 6 ) , rand ( 1 , 5 ) ] ;
5419: LD_ADDR_OWVAR 30
5423: PUSH
5424: LD_INT 4
5426: PUSH
5427: LD_OWVAR 67
5431: PLUS
5432: PPUSH
5433: LD_INT 10
5435: PPUSH
5436: CALL_OW 12
5440: PUSH
5441: LD_INT 9
5443: PUSH
5444: LD_INT 3
5446: PPUSH
5447: LD_INT 6
5449: PPUSH
5450: CALL_OW 12
5454: PUSH
5455: LD_INT 1
5457: PPUSH
5458: LD_INT 5
5460: PPUSH
5461: CALL_OW 12
5465: PUSH
5466: EMPTY
5467: LIST
5468: LIST
5469: LIST
5470: LIST
5471: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
5472: LD_ADDR_OWVAR 27
5476: PUSH
5477: LD_INT 1
5479: PPUSH
5480: LD_INT 2
5482: PPUSH
5483: CALL_OW 12
5487: ST_TO_ADDR
// LoyalEng3 = CreateHuman ;
5488: LD_ADDR_EXP 36
5492: PUSH
5493: CALL_OW 44
5497: ST_TO_ADDR
// hc_attr = [ 3 , 14 ] ;
5498: LD_ADDR_OWVAR 29
5502: PUSH
5503: LD_INT 3
5505: PUSH
5506: LD_INT 14
5508: PUSH
5509: EMPTY
5510: LIST
5511: LIST
5512: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 + difficulty , 10 ) , 9 , rand ( 3 , 6 ) , rand ( 1 , 5 ) ] ;
5513: LD_ADDR_OWVAR 30
5517: PUSH
5518: LD_INT 4
5520: PUSH
5521: LD_OWVAR 67
5525: PLUS
5526: PPUSH
5527: LD_INT 10
5529: PPUSH
5530: CALL_OW 12
5534: PUSH
5535: LD_INT 9
5537: PUSH
5538: LD_INT 3
5540: PPUSH
5541: LD_INT 6
5543: PPUSH
5544: CALL_OW 12
5548: PUSH
5549: LD_INT 1
5551: PPUSH
5552: LD_INT 5
5554: PPUSH
5555: CALL_OW 12
5559: PUSH
5560: EMPTY
5561: LIST
5562: LIST
5563: LIST
5564: LIST
5565: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
5566: LD_ADDR_OWVAR 27
5570: PUSH
5571: LD_INT 1
5573: PPUSH
5574: LD_INT 2
5576: PPUSH
5577: CALL_OW 12
5581: ST_TO_ADDR
// LoyalEng4 = CreateHuman ;
5582: LD_ADDR_EXP 37
5586: PUSH
5587: CALL_OW 44
5591: ST_TO_ADDR
// hc_attr = [ 15 , 10 ] ;
5592: LD_ADDR_OWVAR 29
5596: PUSH
5597: LD_INT 15
5599: PUSH
5600: LD_INT 10
5602: PUSH
5603: EMPTY
5604: LIST
5605: LIST
5606: ST_TO_ADDR
// hc_class = 3 ;
5607: LD_ADDR_OWVAR 28
5611: PUSH
5612: LD_INT 3
5614: ST_TO_ADDR
// hc_basic_skills = [ rand ( difficulty , 3 + difficulty ) , rand ( 3 , 6 ) , rand ( 7 , 10 ) , rand ( 1 , 5 ) ] ;
5615: LD_ADDR_OWVAR 30
5619: PUSH
5620: LD_OWVAR 67
5624: PPUSH
5625: LD_INT 3
5627: PUSH
5628: LD_OWVAR 67
5632: PLUS
5633: PPUSH
5634: CALL_OW 12
5638: PUSH
5639: LD_INT 3
5641: PPUSH
5642: LD_INT 6
5644: PPUSH
5645: CALL_OW 12
5649: PUSH
5650: LD_INT 7
5652: PPUSH
5653: LD_INT 10
5655: PPUSH
5656: CALL_OW 12
5660: PUSH
5661: LD_INT 1
5663: PPUSH
5664: LD_INT 5
5666: PPUSH
5667: CALL_OW 12
5671: PUSH
5672: EMPTY
5673: LIST
5674: LIST
5675: LIST
5676: LIST
5677: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
5678: LD_ADDR_OWVAR 27
5682: PUSH
5683: LD_INT 1
5685: PPUSH
5686: LD_INT 2
5688: PPUSH
5689: CALL_OW 12
5693: ST_TO_ADDR
// LoyalMech1 = CreateHuman ;
5694: LD_ADDR_EXP 30
5698: PUSH
5699: CALL_OW 44
5703: ST_TO_ADDR
// hc_basic_skills = [ rand ( difficulty , 3 + difficulty ) , rand ( 3 , 6 ) , rand ( 7 , 10 ) , rand ( 1 , 5 ) ] ;
5704: LD_ADDR_OWVAR 30
5708: PUSH
5709: LD_OWVAR 67
5713: PPUSH
5714: LD_INT 3
5716: PUSH
5717: LD_OWVAR 67
5721: PLUS
5722: PPUSH
5723: CALL_OW 12
5727: PUSH
5728: LD_INT 3
5730: PPUSH
5731: LD_INT 6
5733: PPUSH
5734: CALL_OW 12
5738: PUSH
5739: LD_INT 7
5741: PPUSH
5742: LD_INT 10
5744: PPUSH
5745: CALL_OW 12
5749: PUSH
5750: LD_INT 1
5752: PPUSH
5753: LD_INT 5
5755: PPUSH
5756: CALL_OW 12
5760: PUSH
5761: EMPTY
5762: LIST
5763: LIST
5764: LIST
5765: LIST
5766: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
5767: LD_ADDR_OWVAR 27
5771: PUSH
5772: LD_INT 1
5774: PPUSH
5775: LD_INT 2
5777: PPUSH
5778: CALL_OW 12
5782: ST_TO_ADDR
// LoyalMech2 = CreateHuman ;
5783: LD_ADDR_EXP 31
5787: PUSH
5788: CALL_OW 44
5792: ST_TO_ADDR
// hc_basic_skills = [ rand ( difficulty , 3 + difficulty ) , rand ( 3 , 6 ) , rand ( 7 , 10 ) , rand ( 1 , 5 ) ] ;
5793: LD_ADDR_OWVAR 30
5797: PUSH
5798: LD_OWVAR 67
5802: PPUSH
5803: LD_INT 3
5805: PUSH
5806: LD_OWVAR 67
5810: PLUS
5811: PPUSH
5812: CALL_OW 12
5816: PUSH
5817: LD_INT 3
5819: PPUSH
5820: LD_INT 6
5822: PPUSH
5823: CALL_OW 12
5827: PUSH
5828: LD_INT 7
5830: PPUSH
5831: LD_INT 10
5833: PPUSH
5834: CALL_OW 12
5838: PUSH
5839: LD_INT 1
5841: PPUSH
5842: LD_INT 5
5844: PPUSH
5845: CALL_OW 12
5849: PUSH
5850: EMPTY
5851: LIST
5852: LIST
5853: LIST
5854: LIST
5855: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
5856: LD_ADDR_OWVAR 27
5860: PUSH
5861: LD_INT 1
5863: PPUSH
5864: LD_INT 2
5866: PPUSH
5867: CALL_OW 12
5871: ST_TO_ADDR
// LoyalMech3 = CreateHuman ;
5872: LD_ADDR_EXP 32
5876: PUSH
5877: CALL_OW 44
5881: ST_TO_ADDR
// hc_basic_skills = [ rand ( difficulty , 3 + difficulty ) , rand ( 3 , 6 ) , rand ( 7 , 10 ) , rand ( 1 , 5 ) ] ;
5882: LD_ADDR_OWVAR 30
5886: PUSH
5887: LD_OWVAR 67
5891: PPUSH
5892: LD_INT 3
5894: PUSH
5895: LD_OWVAR 67
5899: PLUS
5900: PPUSH
5901: CALL_OW 12
5905: PUSH
5906: LD_INT 3
5908: PPUSH
5909: LD_INT 6
5911: PPUSH
5912: CALL_OW 12
5916: PUSH
5917: LD_INT 7
5919: PPUSH
5920: LD_INT 10
5922: PPUSH
5923: CALL_OW 12
5927: PUSH
5928: LD_INT 1
5930: PPUSH
5931: LD_INT 5
5933: PPUSH
5934: CALL_OW 12
5938: PUSH
5939: EMPTY
5940: LIST
5941: LIST
5942: LIST
5943: LIST
5944: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
5945: LD_ADDR_OWVAR 27
5949: PUSH
5950: LD_INT 1
5952: PPUSH
5953: LD_INT 2
5955: PPUSH
5956: CALL_OW 12
5960: ST_TO_ADDR
// LoyalMech4 = CreateHuman ;
5961: LD_ADDR_EXP 33
5965: PUSH
5966: CALL_OW 44
5970: ST_TO_ADDR
// hc_class = 4 ;
5971: LD_ADDR_OWVAR 28
5975: PUSH
5976: LD_INT 4
5978: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 + difficulty , 10 ) , rand ( 3 , 6 ) , rand ( 3 , 6 ) , 7 + difficulty ] ;
5979: LD_ADDR_OWVAR 30
5983: PUSH
5984: LD_INT 4
5986: PUSH
5987: LD_OWVAR 67
5991: PLUS
5992: PPUSH
5993: LD_INT 10
5995: PPUSH
5996: CALL_OW 12
6000: PUSH
6001: LD_INT 3
6003: PPUSH
6004: LD_INT 6
6006: PPUSH
6007: CALL_OW 12
6011: PUSH
6012: LD_INT 3
6014: PPUSH
6015: LD_INT 6
6017: PPUSH
6018: CALL_OW 12
6022: PUSH
6023: LD_INT 7
6025: PUSH
6026: LD_OWVAR 67
6030: PLUS
6031: PUSH
6032: EMPTY
6033: LIST
6034: LIST
6035: LIST
6036: LIST
6037: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
6038: LD_ADDR_OWVAR 27
6042: PUSH
6043: LD_INT 1
6045: PPUSH
6046: LD_INT 2
6048: PPUSH
6049: CALL_OW 12
6053: ST_TO_ADDR
// LoyalDoc1 = CreateHuman ;
6054: LD_ADDR_EXP 38
6058: PUSH
6059: CALL_OW 44
6063: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 + difficulty , 10 ) , rand ( 3 , 6 ) , rand ( 3 , 6 ) , 7 + difficulty ] ;
6064: LD_ADDR_OWVAR 30
6068: PUSH
6069: LD_INT 4
6071: PUSH
6072: LD_OWVAR 67
6076: PLUS
6077: PPUSH
6078: LD_INT 10
6080: PPUSH
6081: CALL_OW 12
6085: PUSH
6086: LD_INT 3
6088: PPUSH
6089: LD_INT 6
6091: PPUSH
6092: CALL_OW 12
6096: PUSH
6097: LD_INT 3
6099: PPUSH
6100: LD_INT 6
6102: PPUSH
6103: CALL_OW 12
6107: PUSH
6108: LD_INT 7
6110: PUSH
6111: LD_OWVAR 67
6115: PLUS
6116: PUSH
6117: EMPTY
6118: LIST
6119: LIST
6120: LIST
6121: LIST
6122: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
6123: LD_ADDR_OWVAR 27
6127: PUSH
6128: LD_INT 1
6130: PPUSH
6131: LD_INT 2
6133: PPUSH
6134: CALL_OW 12
6138: ST_TO_ADDR
// LoyalDoc2 = CreateHuman ;
6139: LD_ADDR_EXP 39
6143: PUSH
6144: CALL_OW 44
6148: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 + difficulty , 10 ) , rand ( 3 , 6 ) , rand ( 3 , 6 ) , 7 + difficulty ] ;
6149: LD_ADDR_OWVAR 30
6153: PUSH
6154: LD_INT 4
6156: PUSH
6157: LD_OWVAR 67
6161: PLUS
6162: PPUSH
6163: LD_INT 10
6165: PPUSH
6166: CALL_OW 12
6170: PUSH
6171: LD_INT 3
6173: PPUSH
6174: LD_INT 6
6176: PPUSH
6177: CALL_OW 12
6181: PUSH
6182: LD_INT 3
6184: PPUSH
6185: LD_INT 6
6187: PPUSH
6188: CALL_OW 12
6192: PUSH
6193: LD_INT 7
6195: PUSH
6196: LD_OWVAR 67
6200: PLUS
6201: PUSH
6202: EMPTY
6203: LIST
6204: LIST
6205: LIST
6206: LIST
6207: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
6208: LD_ADDR_OWVAR 27
6212: PUSH
6213: LD_INT 1
6215: PPUSH
6216: LD_INT 2
6218: PPUSH
6219: CALL_OW 12
6223: ST_TO_ADDR
// LoyalDoc3 = CreateHuman ;
6224: LD_ADDR_EXP 40
6228: PUSH
6229: CALL_OW 44
6233: ST_TO_ADDR
// wait ( 0 0$1 ) ;
6234: LD_INT 35
6236: PPUSH
6237: CALL_OW 67
// PlaceUnitArea ( Loyal1 , LoyalSetupZone , false ) ;
6241: LD_EXP 22
6245: PPUSH
6246: LD_INT 2
6248: PPUSH
6249: LD_INT 0
6251: PPUSH
6252: CALL_OW 49
// PlaceUnitArea ( Loyal2 , LoyalSetupZone , false ) ;
6256: LD_EXP 23
6260: PPUSH
6261: LD_INT 2
6263: PPUSH
6264: LD_INT 0
6266: PPUSH
6267: CALL_OW 49
// PlaceUnitArea ( Loyal3 , LoyalSetupZone , false ) ;
6271: LD_EXP 24
6275: PPUSH
6276: LD_INT 2
6278: PPUSH
6279: LD_INT 0
6281: PPUSH
6282: CALL_OW 49
// PlaceUnitArea ( Loyal4 , LoyalSetupZone , false ) ;
6286: LD_EXP 25
6290: PPUSH
6291: LD_INT 2
6293: PPUSH
6294: LD_INT 0
6296: PPUSH
6297: CALL_OW 49
// PlaceUnitArea ( Loyal5 , LoyalSetupZone , false ) ;
6301: LD_EXP 26
6305: PPUSH
6306: LD_INT 2
6308: PPUSH
6309: LD_INT 0
6311: PPUSH
6312: CALL_OW 49
// PlaceUnitArea ( Loyal6 , LoyalSetupZone , false ) ;
6316: LD_EXP 27
6320: PPUSH
6321: LD_INT 2
6323: PPUSH
6324: LD_INT 0
6326: PPUSH
6327: CALL_OW 49
// PlaceUnitArea ( Loyal7 , LoyalSetupZone , false ) ;
6331: LD_EXP 28
6335: PPUSH
6336: LD_INT 2
6338: PPUSH
6339: LD_INT 0
6341: PPUSH
6342: CALL_OW 49
// PlaceUnitArea ( Loyal8 , LoyalSetupZone , false ) ;
6346: LD_EXP 29
6350: PPUSH
6351: LD_INT 2
6353: PPUSH
6354: LD_INT 0
6356: PPUSH
6357: CALL_OW 49
// PlaceUnitArea ( LoyalEng1 , LoyalSetupZone , false ) ;
6361: LD_EXP 34
6365: PPUSH
6366: LD_INT 2
6368: PPUSH
6369: LD_INT 0
6371: PPUSH
6372: CALL_OW 49
// PlaceUnitArea ( LoyalEng2 , LoyalSetupZone , false ) ;
6376: LD_EXP 35
6380: PPUSH
6381: LD_INT 2
6383: PPUSH
6384: LD_INT 0
6386: PPUSH
6387: CALL_OW 49
// PlaceUnitArea ( LoyalEng3 , LoyalSetupZone , false ) ;
6391: LD_EXP 36
6395: PPUSH
6396: LD_INT 2
6398: PPUSH
6399: LD_INT 0
6401: PPUSH
6402: CALL_OW 49
// PlaceUnitArea ( LoyalEng4 , LoyalSetupZone , false ) ;
6406: LD_EXP 37
6410: PPUSH
6411: LD_INT 2
6413: PPUSH
6414: LD_INT 0
6416: PPUSH
6417: CALL_OW 49
// PlaceUnitArea ( LoyalMech1 , LoyalSetupZone , false ) ;
6421: LD_EXP 30
6425: PPUSH
6426: LD_INT 2
6428: PPUSH
6429: LD_INT 0
6431: PPUSH
6432: CALL_OW 49
// PlaceUnitArea ( LoyalMech2 , LoyalSetupZone , false ) ;
6436: LD_EXP 31
6440: PPUSH
6441: LD_INT 2
6443: PPUSH
6444: LD_INT 0
6446: PPUSH
6447: CALL_OW 49
// PlaceUnitArea ( LoyalMech3 , LoyalSetupZone , false ) ;
6451: LD_EXP 32
6455: PPUSH
6456: LD_INT 2
6458: PPUSH
6459: LD_INT 0
6461: PPUSH
6462: CALL_OW 49
// PlaceUnitArea ( LoyalMech4 , LoyalSetupZone , false ) ;
6466: LD_EXP 33
6470: PPUSH
6471: LD_INT 2
6473: PPUSH
6474: LD_INT 0
6476: PPUSH
6477: CALL_OW 49
// PlaceUnitArea ( LoyalDoc1 , LoyalSetupZone , false ) ;
6481: LD_EXP 38
6485: PPUSH
6486: LD_INT 2
6488: PPUSH
6489: LD_INT 0
6491: PPUSH
6492: CALL_OW 49
// PlaceUnitArea ( LoyalDoc2 , LoyalSetupZone , false ) ;
6496: LD_EXP 39
6500: PPUSH
6501: LD_INT 2
6503: PPUSH
6504: LD_INT 0
6506: PPUSH
6507: CALL_OW 49
// PlaceUnitArea ( LoyalDoc3 , LoyalSetupZone , false ) ;
6511: LD_EXP 40
6515: PPUSH
6516: LD_INT 2
6518: PPUSH
6519: LD_INT 0
6521: PPUSH
6522: CALL_OW 49
// wait ( 0 0$1 ) ;
6526: LD_INT 35
6528: PPUSH
6529: CALL_OW 67
// uc_nation = 2 ;
6533: LD_ADDR_OWVAR 21
6537: PUSH
6538: LD_INT 2
6540: ST_TO_ADDR
// hc_class = class_sniper ;
6541: LD_ADDR_OWVAR 28
6545: PUSH
6546: LD_INT 5
6548: ST_TO_ADDR
// hc_attr = [ 40 , 20 ] ;
6549: LD_ADDR_OWVAR 29
6553: PUSH
6554: LD_INT 40
6556: PUSH
6557: LD_INT 20
6559: PUSH
6560: EMPTY
6561: LIST
6562: LIST
6563: ST_TO_ADDR
// hc_basic_skills = [ 10 , 10 , 10 , 10 ] ;
6564: LD_ADDR_OWVAR 30
6568: PUSH
6569: LD_INT 10
6571: PUSH
6572: LD_INT 10
6574: PUSH
6575: LD_INT 10
6577: PUSH
6578: LD_INT 10
6580: PUSH
6581: EMPTY
6582: LIST
6583: LIST
6584: LIST
6585: LIST
6586: ST_TO_ADDR
// Commando1 = CreateHuman ;
6587: LD_ADDR_EXP 41
6591: PUSH
6592: CALL_OW 44
6596: ST_TO_ADDR
// hc_class = class_bazooker ;
6597: LD_ADDR_OWVAR 28
6601: PUSH
6602: LD_INT 9
6604: ST_TO_ADDR
// hc_attr = [ 100 , 8 ] ;
6605: LD_ADDR_OWVAR 29
6609: PUSH
6610: LD_INT 100
6612: PUSH
6613: LD_INT 8
6615: PUSH
6616: EMPTY
6617: LIST
6618: LIST
6619: ST_TO_ADDR
// hc_basic_skills = [ 10 , 10 , 10 , 10 ] ;
6620: LD_ADDR_OWVAR 30
6624: PUSH
6625: LD_INT 10
6627: PUSH
6628: LD_INT 10
6630: PUSH
6631: LD_INT 10
6633: PUSH
6634: LD_INT 10
6636: PUSH
6637: EMPTY
6638: LIST
6639: LIST
6640: LIST
6641: LIST
6642: ST_TO_ADDR
// Commando2 = CreateHuman ;
6643: LD_ADDR_EXP 42
6647: PUSH
6648: CALL_OW 44
6652: ST_TO_ADDR
// Commando3 = CreateHuman ;
6653: LD_ADDR_EXP 43
6657: PUSH
6658: CALL_OW 44
6662: ST_TO_ADDR
// hc_class = class_mortar ;
6663: LD_ADDR_OWVAR 28
6667: PUSH
6668: LD_INT 8
6670: ST_TO_ADDR
// hc_attr = [ 50 , 16 ] ;
6671: LD_ADDR_OWVAR 29
6675: PUSH
6676: LD_INT 50
6678: PUSH
6679: LD_INT 16
6681: PUSH
6682: EMPTY
6683: LIST
6684: LIST
6685: ST_TO_ADDR
// hc_basic_skills = [ 10 , 10 , 10 , 10 ] ;
6686: LD_ADDR_OWVAR 30
6690: PUSH
6691: LD_INT 10
6693: PUSH
6694: LD_INT 10
6696: PUSH
6697: LD_INT 10
6699: PUSH
6700: LD_INT 10
6702: PUSH
6703: EMPTY
6704: LIST
6705: LIST
6706: LIST
6707: LIST
6708: ST_TO_ADDR
// Commando4 = CreateHuman ;
6709: LD_ADDR_EXP 44
6713: PUSH
6714: CALL_OW 44
6718: ST_TO_ADDR
// PlaceUnitArea ( Commando1 , LoyalSetupZone , false ) ;
6719: LD_EXP 41
6723: PPUSH
6724: LD_INT 2
6726: PPUSH
6727: LD_INT 0
6729: PPUSH
6730: CALL_OW 49
// PlaceUnitArea ( Commando2 , LoyalSetupZone , false ) ;
6734: LD_EXP 42
6738: PPUSH
6739: LD_INT 2
6741: PPUSH
6742: LD_INT 0
6744: PPUSH
6745: CALL_OW 49
// PlaceUnitArea ( Commando3 , LoyalSetupZone , false ) ;
6749: LD_EXP 43
6753: PPUSH
6754: LD_INT 2
6756: PPUSH
6757: LD_INT 0
6759: PPUSH
6760: CALL_OW 49
// PlaceUnitArea ( Commando4 , LoyalSetupZone , false ) ;
6764: LD_EXP 44
6768: PPUSH
6769: LD_INT 2
6771: PPUSH
6772: LD_INT 0
6774: PPUSH
6775: CALL_OW 49
// end ;
6779: END
// every 0 0$01 do
6780: GO 6782
6782: DISABLE
// begin uc_nation = 1 ;
6783: LD_ADDR_OWVAR 21
6787: PUSH
6788: LD_INT 1
6790: ST_TO_ADDR
// uc_side = 1 ;
6791: LD_ADDR_OWVAR 20
6795: PUSH
6796: LD_INT 1
6798: ST_TO_ADDR
// bc_level = 15 ;
6799: LD_ADDR_OWVAR 43
6803: PUSH
6804: LD_INT 15
6806: ST_TO_ADDR
// bc_type = 1 ;
6807: LD_ADDR_OWVAR 42
6811: PUSH
6812: LD_INT 1
6814: ST_TO_ADDR
// BlueBase = CreateAndPlaceBuildingXYD ( 154 , 16 , 2 ) ;
6815: LD_ADDR_EXP 16
6819: PUSH
6820: LD_INT 154
6822: PPUSH
6823: LD_INT 16
6825: PPUSH
6826: LD_INT 2
6828: PPUSH
6829: CALL_OW 47
6833: ST_TO_ADDR
// bc_type = b_lab_full ;
6834: LD_ADDR_OWVAR 42
6838: PUSH
6839: LD_INT 8
6841: ST_TO_ADDR
// bc_kind1 = b_lab_weapon ;
6842: LD_ADDR_OWVAR 44
6846: PUSH
6847: LD_INT 10
6849: ST_TO_ADDR
// bc_kind2 = b_lab_computer ;
6850: LD_ADDR_OWVAR 45
6854: PUSH
6855: LD_INT 12
6857: ST_TO_ADDR
// AmLab1 = CreateAndPlaceBuildingXYD ( 134 , 4 , 4 ) ;
6858: LD_ADDR_EXP 13
6862: PUSH
6863: LD_INT 134
6865: PPUSH
6866: LD_INT 4
6868: PPUSH
6869: LD_INT 4
6871: PPUSH
6872: CALL_OW 47
6876: ST_TO_ADDR
// bc_kind1 = b_lab_opto ;
6877: LD_ADDR_OWVAR 44
6881: PUSH
6882: LD_INT 15
6884: ST_TO_ADDR
// bc_kind2 = b_lab_siberium ;
6885: LD_ADDR_OWVAR 45
6889: PUSH
6890: LD_INT 11
6892: ST_TO_ADDR
// AmLab2 = CreateAndPlaceBuildingXYD ( 166 , 34 , 4 ) ;
6893: LD_ADDR_EXP 14
6897: PUSH
6898: LD_INT 166
6900: PPUSH
6901: LD_INT 34
6903: PPUSH
6904: LD_INT 4
6906: PPUSH
6907: CALL_OW 47
6911: ST_TO_ADDR
// bc_type = b_factory ;
6912: LD_ADDR_OWVAR 42
6916: PUSH
6917: LD_INT 3
6919: ST_TO_ADDR
// AmFac1 = CreateAndPlaceBuildingXYD ( 141 , 12 , 3 ) ;
6920: LD_ADDR_EXP 15
6924: PUSH
6925: LD_INT 141
6927: PPUSH
6928: LD_INT 12
6930: PPUSH
6931: LD_INT 3
6933: PPUSH
6934: CALL_OW 47
6938: ST_TO_ADDR
// bc_type = b_barracks ;
6939: LD_ADDR_OWVAR 42
6943: PUSH
6944: LD_INT 5
6946: ST_TO_ADDR
// AmBar = CreateAndPlaceBuildingXYD ( 158 , 41 , 0 ) ;
6947: LD_ADDR_EXP 11
6951: PUSH
6952: LD_INT 158
6954: PPUSH
6955: LD_INT 41
6957: PPUSH
6958: LD_INT 0
6960: PPUSH
6961: CALL_OW 47
6965: ST_TO_ADDR
// uc_nation = 3 ;
6966: LD_ADDR_OWVAR 21
6970: PUSH
6971: LD_INT 3
6973: ST_TO_ADDR
// bc_level = 20 ;
6974: LD_ADDR_OWVAR 43
6978: PUSH
6979: LD_INT 20
6981: ST_TO_ADDR
// CommandoBar = CreateAndPlaceBuildingXYD ( 145 , 23 , 0 ) ;
6982: LD_ADDR_EXP 12
6986: PUSH
6987: LD_INT 145
6989: PPUSH
6990: LD_INT 23
6992: PPUSH
6993: LD_INT 0
6995: PPUSH
6996: CALL_OW 47
7000: ST_TO_ADDR
// uc_nation = 1 ;
7001: LD_ADDR_OWVAR 21
7005: PUSH
7006: LD_INT 1
7008: ST_TO_ADDR
// bc_level = 5 ;
7009: LD_ADDR_OWVAR 43
7013: PUSH
7014: LD_INT 5
7016: ST_TO_ADDR
// bc_type = b_ext_gun ;
7017: LD_ADDR_OWVAR 42
7021: PUSH
7022: LD_INT 17
7024: ST_TO_ADDR
// ExtUnit = CreateAndPlaceBuildingXYD ( 138 , 9 , 2 ) ;
7025: LD_ADDR_LOC 11
7029: PUSH
7030: LD_INT 138
7032: PPUSH
7033: LD_INT 9
7035: PPUSH
7036: LD_INT 2
7038: PPUSH
7039: CALL_OW 47
7043: ST_TO_ADDR
// bc_type = b_ext_laser ;
7044: LD_ADDR_OWVAR 42
7048: PUSH
7049: LD_INT 25
7051: ST_TO_ADDR
// ExtUnit = CreateAndPlaceBuildingXYD ( 137 , 12 , 1 ) ;
7052: LD_ADDR_LOC 11
7056: PUSH
7057: LD_INT 137
7059: PPUSH
7060: LD_INT 12
7062: PPUSH
7063: LD_INT 1
7065: PPUSH
7066: CALL_OW 47
7070: ST_TO_ADDR
// bc_type = b_ext_siberium ;
7071: LD_ADDR_OWVAR 42
7075: PUSH
7076: LD_INT 21
7078: ST_TO_ADDR
// ExtUnit = CreateAndPlaceBuildingXYD ( 141 , 8 , 3 ) ;
7079: LD_ADDR_LOC 11
7083: PUSH
7084: LD_INT 141
7086: PPUSH
7087: LD_INT 8
7089: PPUSH
7090: LD_INT 3
7092: PPUSH
7093: CALL_OW 47
7097: ST_TO_ADDR
// bc_type = b_ext_computer ;
7098: LD_ADDR_OWVAR 42
7102: PUSH
7103: LD_INT 24
7105: ST_TO_ADDR
// ExtUnit = CreateAndPlaceBuildingXYD ( 144 , 12 , 4 ) ;
7106: LD_ADDR_LOC 11
7110: PUSH
7111: LD_INT 144
7113: PPUSH
7114: LD_INT 12
7116: PPUSH
7117: LD_INT 4
7119: PPUSH
7120: CALL_OW 47
7124: ST_TO_ADDR
// bc_type = b_ext_track ;
7125: LD_ADDR_OWVAR 42
7129: PUSH
7130: LD_INT 16
7132: ST_TO_ADDR
// ExtUnit = CreateAndPlaceBuildingXYD ( 145 , 16 , 5 ) ;
7133: LD_ADDR_LOC 11
7137: PUSH
7138: LD_INT 145
7140: PPUSH
7141: LD_INT 16
7143: PPUSH
7144: LD_INT 5
7146: PPUSH
7147: CALL_OW 47
7151: ST_TO_ADDR
// bc_level = 10 ;
7152: LD_ADDR_OWVAR 43
7156: PUSH
7157: LD_INT 10
7159: ST_TO_ADDR
// bc_type = b_bunker ;
7160: LD_ADDR_OWVAR 42
7164: PUSH
7165: LD_INT 32
7167: ST_TO_ADDR
// LoyalGun1 = CreateAndPlaceBuildingXYD ( 123 , 2 , 1 ) ;
7168: LD_ADDR_EXP 3
7172: PUSH
7173: LD_INT 123
7175: PPUSH
7176: LD_INT 2
7178: PPUSH
7179: LD_INT 1
7181: PPUSH
7182: CALL_OW 47
7186: ST_TO_ADDR
// LoyalGun2 = CreateAndPlaceBuildingXYD ( 125 , 5 , 1 ) ;
7187: LD_ADDR_EXP 4
7191: PUSH
7192: LD_INT 125
7194: PPUSH
7195: LD_INT 5
7197: PPUSH
7198: LD_INT 1
7200: PPUSH
7201: CALL_OW 47
7205: ST_TO_ADDR
// LoyalGun3 = CreateAndPlaceBuildingXYD ( 129 , 12 , 0 ) ;
7206: LD_ADDR_EXP 5
7210: PUSH
7211: LD_INT 129
7213: PPUSH
7214: LD_INT 12
7216: PPUSH
7217: LD_INT 0
7219: PPUSH
7220: CALL_OW 47
7224: ST_TO_ADDR
// LoyalGun4 = CreateAndPlaceBuildingXYD ( 139 , 24 , 0 ) ;
7225: LD_ADDR_EXP 6
7229: PUSH
7230: LD_INT 139
7232: PPUSH
7233: LD_INT 24
7235: PPUSH
7236: LD_INT 0
7238: PPUSH
7239: CALL_OW 47
7243: ST_TO_ADDR
// LoyalGun5 = CreateAndPlaceBuildingXYD ( 154 , 35 , 1 ) ;
7244: LD_ADDR_EXP 7
7248: PUSH
7249: LD_INT 154
7251: PPUSH
7252: LD_INT 35
7254: PPUSH
7255: LD_INT 1
7257: PPUSH
7258: CALL_OW 47
7262: ST_TO_ADDR
// LoyalGun6 = CreateAndPlaceBuildingXYD ( 154 , 38 , 1 ) ;
7263: LD_ADDR_EXP 8
7267: PUSH
7268: LD_INT 154
7270: PPUSH
7271: LD_INT 38
7273: PPUSH
7274: LD_INT 1
7276: PPUSH
7277: CALL_OW 47
7281: ST_TO_ADDR
// LoyalGun7 = CreateAndPlaceBuildingXYD ( 171 , 46 , 1 ) ;
7282: LD_ADDR_EXP 9
7286: PUSH
7287: LD_INT 171
7289: PPUSH
7290: LD_INT 46
7292: PPUSH
7293: LD_INT 1
7295: PPUSH
7296: CALL_OW 47
7300: ST_TO_ADDR
// LoyalGun8 = CreateAndPlaceBuildingXYD ( 171 , 50 , 5 ) ;
7301: LD_ADDR_EXP 10
7305: PUSH
7306: LD_INT 171
7308: PPUSH
7309: LD_INT 50
7311: PPUSH
7312: LD_INT 5
7314: PPUSH
7315: CALL_OW 47
7319: ST_TO_ADDR
// bc_level = 1 ;
7320: LD_ADDR_OWVAR 43
7324: PUSH
7325: LD_INT 1
7327: ST_TO_ADDR
// bc_type = b_turret ;
7328: LD_ADDR_OWVAR 42
7332: PUSH
7333: LD_INT 33
7335: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 128 , 7 , 2 ) ;
7336: LD_ADDR_LOC 13
7340: PUSH
7341: LD_INT 128
7343: PPUSH
7344: LD_INT 7
7346: PPUSH
7347: LD_INT 2
7349: PPUSH
7350: CALL_OW 47
7354: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 135 , 16 , 0 ) ;
7355: LD_ADDR_LOC 13
7359: PUSH
7360: LD_INT 135
7362: PPUSH
7363: LD_INT 16
7365: PPUSH
7366: LD_INT 0
7368: PPUSH
7369: CALL_OW 47
7373: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 136 , 21 , 2 ) ;
7374: LD_ADDR_LOC 13
7378: PUSH
7379: LD_INT 136
7381: PPUSH
7382: LD_INT 21
7384: PPUSH
7385: LD_INT 2
7387: PPUSH
7388: CALL_OW 47
7392: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 155 , 31 , 2 ) ;
7393: LD_ADDR_LOC 13
7397: PUSH
7398: LD_INT 155
7400: PPUSH
7401: LD_INT 31
7403: PPUSH
7404: LD_INT 2
7406: PPUSH
7407: CALL_OW 47
7411: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 135 , 16 , 2 ) ;
7412: LD_ADDR_LOC 13
7416: PUSH
7417: LD_INT 135
7419: PPUSH
7420: LD_INT 16
7422: PPUSH
7423: LD_INT 2
7425: PPUSH
7426: CALL_OW 47
7430: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 163 , 48 , 0 ) ;
7431: LD_ADDR_LOC 13
7435: PUSH
7436: LD_INT 163
7438: PPUSH
7439: LD_INT 48
7441: PPUSH
7442: LD_INT 0
7444: PPUSH
7445: CALL_OW 47
7449: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 166 , 49 , 5 ) ;
7450: LD_ADDR_LOC 13
7454: PUSH
7455: LD_INT 166
7457: PPUSH
7458: LD_INT 49
7460: PPUSH
7461: LD_INT 5
7463: PPUSH
7464: CALL_OW 47
7468: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 168 , 44 , 5 ) ;
7469: LD_ADDR_LOC 13
7473: PUSH
7474: LD_INT 168
7476: PPUSH
7477: LD_INT 44
7479: PPUSH
7480: LD_INT 5
7482: PPUSH
7483: CALL_OW 47
7487: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 176 , 40 , 2 ) ;
7488: LD_ADDR_LOC 13
7492: PUSH
7493: LD_INT 176
7495: PPUSH
7496: LD_INT 40
7498: PPUSH
7499: LD_INT 2
7501: PPUSH
7502: CALL_OW 47
7506: ST_TO_ADDR
// SetResourceVisibility ( 137 , 3 , 1 ) ;
7507: LD_INT 137
7509: PPUSH
7510: LD_INT 3
7512: PPUSH
7513: LD_INT 1
7515: PPUSH
7516: CALL_OW 441
// bc_type = b_oil_mine ;
7520: LD_ADDR_OWVAR 42
7524: PUSH
7525: LD_INT 29
7527: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 137 , 3 , rand ( 0 , 5 ) ) ;
7528: LD_ADDR_LOC 12
7532: PUSH
7533: LD_INT 137
7535: PPUSH
7536: LD_INT 3
7538: PPUSH
7539: LD_INT 0
7541: PPUSH
7542: LD_INT 5
7544: PPUSH
7545: CALL_OW 12
7549: PPUSH
7550: CALL_OW 47
7554: ST_TO_ADDR
// bc_type = b_oil_power ;
7555: LD_ADDR_OWVAR 42
7559: PUSH
7560: LD_INT 26
7562: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 166 , 23 , rand ( 0 , 5 ) ) ;
7563: LD_ADDR_LOC 12
7567: PUSH
7568: LD_INT 166
7570: PPUSH
7571: LD_INT 23
7573: PPUSH
7574: LD_INT 0
7576: PPUSH
7577: LD_INT 5
7579: PPUSH
7580: CALL_OW 12
7584: PPUSH
7585: CALL_OW 47
7589: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 137 , 19 , rand ( 0 , 5 ) ) ;
7590: LD_ADDR_LOC 12
7594: PUSH
7595: LD_INT 137
7597: PPUSH
7598: LD_INT 19
7600: PPUSH
7601: LD_INT 0
7603: PPUSH
7604: LD_INT 5
7606: PPUSH
7607: CALL_OW 12
7611: PPUSH
7612: CALL_OW 47
7616: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 165 , 46 , rand ( 0 , 5 ) ) ;
7617: LD_ADDR_LOC 12
7621: PUSH
7622: LD_INT 165
7624: PPUSH
7625: LD_INT 46
7627: PPUSH
7628: LD_INT 0
7630: PPUSH
7631: LD_INT 5
7633: PPUSH
7634: CALL_OW 12
7638: PPUSH
7639: CALL_OW 47
7643: ST_TO_ADDR
// bc_type = b_siberite_power ;
7644: LD_ADDR_OWVAR 42
7648: PUSH
7649: LD_INT 28
7651: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 129 , 2 , rand ( 0 , 5 ) ) ;
7652: LD_ADDR_LOC 12
7656: PUSH
7657: LD_INT 129
7659: PPUSH
7660: LD_INT 2
7662: PPUSH
7663: LD_INT 0
7665: PPUSH
7666: LD_INT 5
7668: PPUSH
7669: CALL_OW 12
7673: PPUSH
7674: CALL_OW 47
7678: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 155 , 2 , rand ( 0 , 5 ) ) ;
7679: LD_ADDR_LOC 12
7683: PUSH
7684: LD_INT 155
7686: PPUSH
7687: LD_INT 2
7689: PPUSH
7690: LD_INT 0
7692: PPUSH
7693: LD_INT 5
7695: PPUSH
7696: CALL_OW 12
7700: PPUSH
7701: CALL_OW 47
7705: ST_TO_ADDR
// bc_type = b_control_tower ;
7706: LD_ADDR_OWVAR 42
7710: PUSH
7711: LD_INT 36
7713: ST_TO_ADDR
// ControlTower1 = CreateAndPlaceBuildingXYD ( 164 , 20 , 0 ) ;
7714: LD_ADDR_EXP 17
7718: PUSH
7719: LD_INT 164
7721: PPUSH
7722: LD_INT 20
7724: PPUSH
7725: LD_INT 0
7727: PPUSH
7728: CALL_OW 47
7732: ST_TO_ADDR
// ControlTower2 = CreateAndPlaceBuildingXYD ( 163 , 22 , 5 ) ;
7733: LD_ADDR_EXP 18
7737: PUSH
7738: LD_INT 163
7740: PPUSH
7741: LD_INT 22
7743: PPUSH
7744: LD_INT 5
7746: PPUSH
7747: CALL_OW 47
7751: ST_TO_ADDR
// ControlTower3 = CreateAndPlaceBuildingXYD ( 165 , 25 , 4 ) ;
7752: LD_ADDR_EXP 19
7756: PUSH
7757: LD_INT 165
7759: PPUSH
7760: LD_INT 25
7762: PPUSH
7763: LD_INT 4
7765: PPUSH
7766: CALL_OW 47
7770: ST_TO_ADDR
// uc_nation = 3 ;
7771: LD_ADDR_OWVAR 21
7775: PUSH
7776: LD_INT 3
7778: ST_TO_ADDR
// bc_type = b_teleport ;
7779: LD_ADDR_OWVAR 42
7783: PUSH
7784: LD_INT 34
7786: ST_TO_ADDR
// LoyalTele1 = CreateAndPlaceBuildingXYD ( 159 , 8 , 0 ) ;
7787: LD_ADDR_EXP 20
7791: PUSH
7792: LD_INT 159
7794: PPUSH
7795: LD_INT 8
7797: PPUSH
7798: LD_INT 0
7800: PPUSH
7801: CALL_OW 47
7805: ST_TO_ADDR
// LoyalTele2 = CreateAndPlaceBuildingXYD ( 29 , 34 , 2 ) ;
7806: LD_ADDR_EXP 21
7810: PUSH
7811: LD_INT 29
7813: PPUSH
7814: LD_INT 34
7816: PPUSH
7817: LD_INT 2
7819: PPUSH
7820: CALL_OW 47
7824: ST_TO_ADDR
// uc_nation = 1 ;
7825: LD_ADDR_OWVAR 21
7829: PUSH
7830: LD_INT 1
7832: ST_TO_ADDR
// wait ( 0 0$0.5 ) ;
7833: LD_INT 18
7835: PPUSH
7836: CALL_OW 67
// TeleportExit ( LoyalTele1 , 32 , 34 ) ;
7840: LD_EXP 20
7844: PPUSH
7845: LD_INT 32
7847: PPUSH
7848: LD_INT 34
7850: PPUSH
7851: CALL_OW 243
// TeleportExit ( LoyalTele2 , 145 , 19 ) ;
7855: LD_EXP 21
7859: PPUSH
7860: LD_INT 145
7862: PPUSH
7863: LD_INT 19
7865: PPUSH
7866: CALL_OW 243
// SetResourceType ( GetBase ( BlueBase ) , mat_cans , 3500 + ( 2500 * difficulty ) ) ;
7870: LD_EXP 16
7874: PPUSH
7875: CALL_OW 274
7879: PPUSH
7880: LD_INT 1
7882: PPUSH
7883: LD_INT 3500
7885: PUSH
7886: LD_INT 2500
7888: PUSH
7889: LD_OWVAR 67
7893: MUL
7894: PLUS
7895: PPUSH
7896: CALL_OW 277
// SetResourceType ( GetBase ( BlueBase ) , mat_siberit , 100 ) ;
7900: LD_EXP 16
7904: PPUSH
7905: CALL_OW 274
7909: PPUSH
7910: LD_INT 3
7912: PPUSH
7913: LD_INT 100
7915: PPUSH
7916: CALL_OW 277
// wait ( 0 0$0.5 ) ;
7920: LD_INT 18
7922: PPUSH
7923: CALL_OW 67
// AmPlaceWeapons ;
7927: CALL 7932 0 0
// end ;
7931: END
// function AmPlaceWeapons ( ) ; begin
7932: LD_INT 0
7934: PPUSH
// AddComPlaceWeapon ( [ LoyalGun1 , LoyalGun2 , LoyalGun3 , LoyalGun4 ] , us_heavy_gun ) ;
7935: LD_EXP 3
7939: PUSH
7940: LD_EXP 4
7944: PUSH
7945: LD_EXP 5
7949: PUSH
7950: LD_EXP 6
7954: PUSH
7955: EMPTY
7956: LIST
7957: LIST
7958: LIST
7959: LIST
7960: PPUSH
7961: LD_INT 6
7963: PPUSH
7964: CALL_OW 208
// wait ( 1 1$00 ) ;
7968: LD_INT 2100
7970: PPUSH
7971: CALL_OW 67
// AddComPlaceWeapon ( [ LoyalGun8 , LoyalGun5 , LoyalGun6 , LoyalGun7 ] , us_heavy_gun ) ;
7975: LD_EXP 10
7979: PUSH
7980: LD_EXP 7
7984: PUSH
7985: LD_EXP 8
7989: PUSH
7990: LD_EXP 9
7994: PUSH
7995: EMPTY
7996: LIST
7997: LIST
7998: LIST
7999: LIST
8000: PPUSH
8001: LD_INT 6
8003: PPUSH
8004: CALL_OW 208
// wait ( 1 1$00 ) ;
8008: LD_INT 2100
8010: PPUSH
8011: CALL_OW 67
// PlaceWeaponsAutoGun ( ) ;
8015: CALL 8024 0 0
// end ;
8019: LD_VAR 0 1
8023: RET
// var TurretList , Turret , i ; function PlaceWeaponsAutogun ( ) ; begin
8024: LD_INT 0
8026: PPUSH
// i = 0 ;
8027: LD_ADDR_LOC 16
8031: PUSH
8032: LD_INT 0
8034: ST_TO_ADDR
// TurretList = filterAllUnits ( [ [ f_side , 1 ] , [ f_btype = b_turret ] , [ f_bWeapon , 0 ] ] ) ;
8035: LD_ADDR_LOC 14
8039: PUSH
8040: LD_INT 22
8042: PUSH
8043: LD_INT 1
8045: PUSH
8046: EMPTY
8047: LIST
8048: LIST
8049: PUSH
8050: LD_INT 30
8052: PUSH
8053: LD_INT 33
8055: EQUAL
8056: PUSH
8057: EMPTY
8058: LIST
8059: PUSH
8060: LD_INT 35
8062: PUSH
8063: LD_INT 0
8065: PUSH
8066: EMPTY
8067: LIST
8068: LIST
8069: PUSH
8070: EMPTY
8071: LIST
8072: LIST
8073: LIST
8074: PPUSH
8075: CALL_OW 69
8079: ST_TO_ADDR
// for Turret in TurretList do
8080: LD_ADDR_LOC 15
8084: PUSH
8085: LD_LOC 14
8089: PUSH
8090: FOR_IN
8091: IFFALSE 8201
// if GetBtype ( Turret ) = b_turret and GetBWeapon ( Turret ) = 0 and i < 4 then
8093: LD_LOC 15
8097: PPUSH
8098: CALL_OW 266
8102: PUSH
8103: LD_INT 33
8105: EQUAL
8106: PUSH
8107: LD_LOC 15
8111: PPUSH
8112: CALL_OW 269
8116: PUSH
8117: LD_INT 0
8119: EQUAL
8120: AND
8121: PUSH
8122: LD_LOC 16
8126: PUSH
8127: LD_INT 4
8129: LESS
8130: AND
8131: IFFALSE 8199
// begin begin if isInArea ( Turret , ApplyLaser ) then
8133: LD_LOC 15
8137: PPUSH
8138: LD_INT 3
8140: PPUSH
8141: CALL_OW 308
8145: IFFALSE 8159
// AddComPlaceWeapon ( Turret , us_double_laser ) ;
8147: LD_LOC 15
8151: PPUSH
8152: LD_INT 10
8154: PPUSH
8155: CALL_OW 208
// if isInArea ( Turret , RadarTower ) then
8159: LD_LOC 15
8163: PPUSH
8164: LD_INT 1
8166: PPUSH
8167: CALL_OW 308
8171: IFFALSE 8185
// AddComPlaceWeapon ( Turret , us_radar ) ;
8173: LD_LOC 15
8177: PPUSH
8178: LD_INT 11
8180: PPUSH
8181: CALL_OW 208
// end ; i = i + 1 ;
8185: LD_ADDR_LOC 16
8189: PUSH
8190: LD_LOC 16
8194: PUSH
8195: LD_INT 1
8197: PLUS
8198: ST_TO_ADDR
// end ;
8199: GO 8090
8201: POP
8202: POP
// wait ( 1 1$30 ) ;
8203: LD_INT 3150
8205: PPUSH
8206: CALL_OW 67
// TurretList = filterAllUnits ( [ [ f_side , 1 ] , [ f_btype = b_turret ] , [ f_bWeapon , 0 ] ] ) ;
8210: LD_ADDR_LOC 14
8214: PUSH
8215: LD_INT 22
8217: PUSH
8218: LD_INT 1
8220: PUSH
8221: EMPTY
8222: LIST
8223: LIST
8224: PUSH
8225: LD_INT 30
8227: PUSH
8228: LD_INT 33
8230: EQUAL
8231: PUSH
8232: EMPTY
8233: LIST
8234: PUSH
8235: LD_INT 35
8237: PUSH
8238: LD_INT 0
8240: PUSH
8241: EMPTY
8242: LIST
8243: LIST
8244: PUSH
8245: EMPTY
8246: LIST
8247: LIST
8248: LIST
8249: PPUSH
8250: CALL_OW 69
8254: ST_TO_ADDR
// if not TurretList = 0 then
8255: LD_LOC 14
8259: PUSH
8260: LD_INT 0
8262: EQUAL
8263: NOT
8264: IFFALSE 8270
// PlaceWeaponsAutogun ( ) ;
8266: CALL 8024 0 0
// end ; end_of_file
8270: LD_VAR 0 1
8274: RET
// every 0 0$5 do
8275: GO 8277
8277: DISABLE
// begin enable ;
8278: ENABLE
// if IsOK ( BlueBase ) then
8279: LD_EXP 16
8283: PPUSH
8284: CALL_OW 302
8288: IFFALSE 8938
// begin if IsOK ( LoyalGun1 ) and GetLives ( Loyal1 ) > 500 then
8290: LD_EXP 3
8294: PPUSH
8295: CALL_OW 302
8299: PUSH
8300: LD_EXP 22
8304: PPUSH
8305: CALL_OW 256
8309: PUSH
8310: LD_INT 500
8312: GREATER
8313: AND
8314: IFFALSE 8330
// comEnterUnit ( Loyal1 , LoyalGun1 ) ;
8316: LD_EXP 22
8320: PPUSH
8321: LD_EXP 3
8325: PPUSH
8326: CALL_OW 120
// if IsOK ( LoyalGun2 ) and GetLives ( Loyal2 ) > 500 then
8330: LD_EXP 4
8334: PPUSH
8335: CALL_OW 302
8339: PUSH
8340: LD_EXP 23
8344: PPUSH
8345: CALL_OW 256
8349: PUSH
8350: LD_INT 500
8352: GREATER
8353: AND
8354: IFFALSE 8370
// comEnterUnit ( Loyal2 , LoyalGun2 ) ;
8356: LD_EXP 23
8360: PPUSH
8361: LD_EXP 4
8365: PPUSH
8366: CALL_OW 120
// if IsOK ( LoyalGun3 ) and GetLives ( Loyal3 ) > 500 then
8370: LD_EXP 5
8374: PPUSH
8375: CALL_OW 302
8379: PUSH
8380: LD_EXP 24
8384: PPUSH
8385: CALL_OW 256
8389: PUSH
8390: LD_INT 500
8392: GREATER
8393: AND
8394: IFFALSE 8410
// comEnterUnit ( Loyal3 , LoyalGun3 ) ;
8396: LD_EXP 24
8400: PPUSH
8401: LD_EXP 5
8405: PPUSH
8406: CALL_OW 120
// if IsOK ( LoyalGun4 ) and GetLives ( Loyal4 ) > 500 then
8410: LD_EXP 6
8414: PPUSH
8415: CALL_OW 302
8419: PUSH
8420: LD_EXP 25
8424: PPUSH
8425: CALL_OW 256
8429: PUSH
8430: LD_INT 500
8432: GREATER
8433: AND
8434: IFFALSE 8450
// comEnterUnit ( Loyal4 , LoyalGun4 ) ;
8436: LD_EXP 25
8440: PPUSH
8441: LD_EXP 6
8445: PPUSH
8446: CALL_OW 120
// if IsOK ( LoyalGun5 ) and GetLives ( Loyal5 ) > 500 then
8450: LD_EXP 7
8454: PPUSH
8455: CALL_OW 302
8459: PUSH
8460: LD_EXP 26
8464: PPUSH
8465: CALL_OW 256
8469: PUSH
8470: LD_INT 500
8472: GREATER
8473: AND
8474: IFFALSE 8490
// comEnterUnit ( Loyal5 , LoyalGun5 ) ;
8476: LD_EXP 26
8480: PPUSH
8481: LD_EXP 7
8485: PPUSH
8486: CALL_OW 120
// if IsOK ( LoyalGun6 ) and GetLives ( Loyal6 ) > 500 then
8490: LD_EXP 8
8494: PPUSH
8495: CALL_OW 302
8499: PUSH
8500: LD_EXP 27
8504: PPUSH
8505: CALL_OW 256
8509: PUSH
8510: LD_INT 500
8512: GREATER
8513: AND
8514: IFFALSE 8530
// comEnterUnit ( Loyal6 , LoyalGun6 ) ;
8516: LD_EXP 27
8520: PPUSH
8521: LD_EXP 8
8525: PPUSH
8526: CALL_OW 120
// if IsOK ( LoyalGun7 ) and GetLives ( Loyal7 ) > 500 then
8530: LD_EXP 9
8534: PPUSH
8535: CALL_OW 302
8539: PUSH
8540: LD_EXP 28
8544: PPUSH
8545: CALL_OW 256
8549: PUSH
8550: LD_INT 500
8552: GREATER
8553: AND
8554: IFFALSE 8570
// comEnterUnit ( Loyal7 , LoyalGun7 ) ;
8556: LD_EXP 28
8560: PPUSH
8561: LD_EXP 9
8565: PPUSH
8566: CALL_OW 120
// if IsOK ( LoyalGun8 ) and GetLives ( Loyal8 ) > 500 then
8570: LD_EXP 10
8574: PPUSH
8575: CALL_OW 302
8579: PUSH
8580: LD_EXP 29
8584: PPUSH
8585: CALL_OW 256
8589: PUSH
8590: LD_INT 500
8592: GREATER
8593: AND
8594: IFFALSE 8610
// comEnterUnit ( Loyal8 , LoyalGun8 ) ;
8596: LD_EXP 29
8600: PPUSH
8601: LD_EXP 10
8605: PPUSH
8606: CALL_OW 120
// if isOK ( AmFac1 ) and GetLives ( LoyalMEch1 ) > 500 then
8610: LD_EXP 15
8614: PPUSH
8615: CALL_OW 302
8619: PUSH
8620: LD_EXP 30
8624: PPUSH
8625: CALL_OW 256
8629: PUSH
8630: LD_INT 500
8632: GREATER
8633: AND
8634: IFFALSE 8650
// comEnterUnit ( LoyalMech1 , AmFac1 ) ;
8636: LD_EXP 30
8640: PPUSH
8641: LD_EXP 15
8645: PPUSH
8646: CALL_OW 120
// if GetLives ( LoyalMEch2 ) > 500 then
8650: LD_EXP 31
8654: PPUSH
8655: CALL_OW 256
8659: PUSH
8660: LD_INT 500
8662: GREATER
8663: IFFALSE 8746
// begin if isOK ( ControlTower1 ) then
8665: LD_EXP 17
8669: PPUSH
8670: CALL_OW 302
8674: IFFALSE 8692
// comEnterUnit ( LoyalMech2 , ControlTower1 ) else
8676: LD_EXP 31
8680: PPUSH
8681: LD_EXP 17
8685: PPUSH
8686: CALL_OW 120
8690: GO 8746
// if isOK ( ControlTower2 ) then
8692: LD_EXP 18
8696: PPUSH
8697: CALL_OW 302
8701: IFFALSE 8719
// comEnterUnit ( LoyalMech2 , ControlTower2 ) else
8703: LD_EXP 31
8707: PPUSH
8708: LD_EXP 18
8712: PPUSH
8713: CALL_OW 120
8717: GO 8746
// if isOK ( ControlTower3 ) then
8719: LD_EXP 19
8723: PPUSH
8724: CALL_OW 302
8728: IFFALSE 8746
// comEnterUnit ( LoyalMech2 , ControlTower3 ) else
8730: LD_EXP 31
8734: PPUSH
8735: LD_EXP 19
8739: PPUSH
8740: CALL_OW 120
8744: GO 8746
// end ; if GetLives ( LoyalMEch3 ) > 500 then
8746: LD_EXP 32
8750: PPUSH
8751: CALL_OW 256
8755: PUSH
8756: LD_INT 500
8758: GREATER
8759: IFFALSE 8842
// begin if isOK ( ControlTower2 ) then
8761: LD_EXP 18
8765: PPUSH
8766: CALL_OW 302
8770: IFFALSE 8788
// comEnterUnit ( LoyalMech3 , ControlTower2 ) else
8772: LD_EXP 32
8776: PPUSH
8777: LD_EXP 18
8781: PPUSH
8782: CALL_OW 120
8786: GO 8842
// if isOK ( ControlTower1 ) then
8788: LD_EXP 17
8792: PPUSH
8793: CALL_OW 302
8797: IFFALSE 8815
// comEnterUnit ( LoyalMech3 , ControlTower1 ) else
8799: LD_EXP 32
8803: PPUSH
8804: LD_EXP 17
8808: PPUSH
8809: CALL_OW 120
8813: GO 8842
// if isOK ( ControlTower3 ) then
8815: LD_EXP 19
8819: PPUSH
8820: CALL_OW 302
8824: IFFALSE 8842
// comEnterUnit ( LoyalMech3 , ControlTower3 ) else
8826: LD_EXP 32
8830: PPUSH
8831: LD_EXP 19
8835: PPUSH
8836: CALL_OW 120
8840: GO 8842
// end ; if GetLives ( LoyalMEch4 ) > 500 then
8842: LD_EXP 33
8846: PPUSH
8847: CALL_OW 256
8851: PUSH
8852: LD_INT 500
8854: GREATER
8855: IFFALSE 8938
// begin if isOK ( ControlTower3 ) then
8857: LD_EXP 19
8861: PPUSH
8862: CALL_OW 302
8866: IFFALSE 8884
// comEnterUnit ( LoyalMech4 , ControlTower3 ) else
8868: LD_EXP 33
8872: PPUSH
8873: LD_EXP 19
8877: PPUSH
8878: CALL_OW 120
8882: GO 8938
// if isOK ( ControlTower2 ) then
8884: LD_EXP 18
8888: PPUSH
8889: CALL_OW 302
8893: IFFALSE 8911
// comEnterUnit ( LoyalMech4 , ControlTower2 ) else
8895: LD_EXP 33
8899: PPUSH
8900: LD_EXP 18
8904: PPUSH
8905: CALL_OW 120
8909: GO 8938
// if isOK ( ControlTower1 ) then
8911: LD_EXP 17
8915: PPUSH
8916: CALL_OW 302
8920: IFFALSE 8938
// comEnterUnit ( LoyalMech4 , ControlTower1 ) else
8922: LD_EXP 33
8926: PPUSH
8927: LD_EXP 17
8931: PPUSH
8932: CALL_OW 120
8936: GO 8938
// end ; end ; end ;
8938: END
// var list , LoyalHeal , LoyalNeedsHeal ; every 0 0$01 trigger not ( isDead ( LoyalDoc1 ) and isDead ( LoyalDoc2 ) and isDead ( LoyalDoc3 ) ) do
8939: LD_EXP 38
8943: PPUSH
8944: CALL_OW 301
8948: PUSH
8949: LD_EXP 39
8953: PPUSH
8954: CALL_OW 301
8958: AND
8959: PUSH
8960: LD_EXP 40
8964: PPUSH
8965: CALL_OW 301
8969: AND
8970: NOT
8971: IFFALSE 9351
8973: GO 8975
8975: DISABLE
// begin enable ;
8976: ENABLE
// LoyalNeedsHeal = 0 ;
8977: LD_ADDR_LOC 19
8981: PUSH
8982: LD_INT 0
8984: ST_TO_ADDR
// List = FilterAllUnits ( [ [ f_side , 1 ] , [ f_nation , 1 ] , [ f_not , [ f_class , 4 ] ] , [ f_or , [ [ f_sex , 1 ] , [ f_sex , 2 ] ] ] ] ) ;
8985: LD_ADDR_LOC 17
8989: PUSH
8990: LD_INT 22
8992: PUSH
8993: LD_INT 1
8995: PUSH
8996: EMPTY
8997: LIST
8998: LIST
8999: PUSH
9000: LD_INT 23
9002: PUSH
9003: LD_INT 1
9005: PUSH
9006: EMPTY
9007: LIST
9008: LIST
9009: PUSH
9010: LD_INT 3
9012: PUSH
9013: LD_INT 25
9015: PUSH
9016: LD_INT 4
9018: PUSH
9019: EMPTY
9020: LIST
9021: LIST
9022: PUSH
9023: EMPTY
9024: LIST
9025: LIST
9026: PUSH
9027: LD_INT 2
9029: PUSH
9030: LD_INT 26
9032: PUSH
9033: LD_INT 1
9035: PUSH
9036: EMPTY
9037: LIST
9038: LIST
9039: PUSH
9040: LD_INT 26
9042: PUSH
9043: LD_INT 2
9045: PUSH
9046: EMPTY
9047: LIST
9048: LIST
9049: PUSH
9050: EMPTY
9051: LIST
9052: LIST
9053: PUSH
9054: EMPTY
9055: LIST
9056: LIST
9057: PUSH
9058: EMPTY
9059: LIST
9060: LIST
9061: LIST
9062: LIST
9063: PPUSH
9064: CALL_OW 69
9068: ST_TO_ADDR
// if List then
9069: LD_LOC 17
9073: IFFALSE 9193
// for LoyalHeal in List do
9075: LD_ADDR_LOC 18
9079: PUSH
9080: LD_LOC 17
9084: PUSH
9085: FOR_IN
9086: IFFALSE 9191
// begin if getLives ( LoyalHeal ) < 501 then
9088: LD_LOC 18
9092: PPUSH
9093: CALL_OW 256
9097: PUSH
9098: LD_INT 501
9100: LESS
9101: IFFALSE 9189
// begin LoyalNeedsHeal = 1 ;
9103: LD_ADDR_LOC 19
9107: PUSH
9108: LD_INT 1
9110: ST_TO_ADDR
// AddComExitBuilding ( [ LoyalDoc1 , LoyalDoc2 , LoyalDoc3 ] ) ;
9111: LD_EXP 38
9115: PUSH
9116: LD_EXP 39
9120: PUSH
9121: LD_EXP 40
9125: PUSH
9126: EMPTY
9127: LIST
9128: LIST
9129: LIST
9130: PPUSH
9131: CALL_OW 182
// AddComMovetoArea ( [ LoyalDoc1 , LoyalDoc2 , LoyalDoc3 ] , LoyalHealZone ) ;
9135: LD_EXP 38
9139: PUSH
9140: LD_EXP 39
9144: PUSH
9145: LD_EXP 40
9149: PUSH
9150: EMPTY
9151: LIST
9152: LIST
9153: LIST
9154: PPUSH
9155: LD_INT 10
9157: PPUSH
9158: CALL_OW 173
// if not IsInArea ( LoyalHeal , LoyalHealZone ) then
9162: LD_LOC 18
9166: PPUSH
9167: LD_INT 10
9169: PPUSH
9170: CALL_OW 308
9174: NOT
9175: IFFALSE 9189
// ComMovetoArea ( LoyalHeal , LoyalHealZone ) ;
9177: LD_LOC 18
9181: PPUSH
9182: LD_INT 10
9184: PPUSH
9185: CALL_OW 113
// end ; end ;
9189: GO 9085
9191: POP
9192: POP
// if LoyalNeedsHeal = 0 then
9193: LD_LOC 19
9197: PUSH
9198: LD_INT 0
9200: EQUAL
9201: IFFALSE 9351
// begin dwait ( 0 0$10 ) ;
9203: LD_INT 350
9205: PPUSH
9206: CALL_OW 68
// if LoyalNeedsHeal = 0 then
9210: LD_LOC 19
9214: PUSH
9215: LD_INT 0
9217: EQUAL
9218: IFFALSE 9268
// if not ( isInUnit ( LoyalDoc1 ) or isBusy ( LoyalDoc1 ) or HasTask ( LoyalDoc1 ) ) then
9220: LD_EXP 38
9224: PPUSH
9225: CALL_OW 310
9229: PUSH
9230: LD_EXP 38
9234: PPUSH
9235: CALL_OW 315
9239: OR
9240: PUSH
9241: LD_EXP 38
9245: PPUSH
9246: CALL_OW 314
9250: OR
9251: NOT
9252: IFFALSE 9268
// AddComEnterUnit ( LoyalDoc1 , AmLab1 ) ;
9254: LD_EXP 38
9258: PPUSH
9259: LD_EXP 13
9263: PPUSH
9264: CALL_OW 180
// if not isInUnit ( LoyalDoc2 ) then
9268: LD_EXP 39
9272: PPUSH
9273: CALL_OW 310
9277: NOT
9278: IFFALSE 9294
// AddComEnterUnit ( LoyalDoc2 , AmLab2 ) ;
9280: LD_EXP 39
9284: PPUSH
9285: LD_EXP 14
9289: PPUSH
9290: CALL_OW 180
// if not ( isInUnit ( LoyalDoc3 ) or isBusy ( LoyalDoc3 ) or HasTask ( LoyalDoc3 ) ) then
9294: LD_EXP 40
9298: PPUSH
9299: CALL_OW 310
9303: PUSH
9304: LD_EXP 40
9308: PPUSH
9309: CALL_OW 315
9313: OR
9314: PUSH
9315: LD_EXP 40
9319: PPUSH
9320: CALL_OW 314
9324: OR
9325: NOT
9326: IFFALSE 9351
// begin ComFree ( LoyalDoc3 ) ;
9328: LD_EXP 40
9332: PPUSH
9333: CALL_OW 139
// AddComEnterUnit ( LoyalDoc3 , AmLab2 ) ;
9337: LD_EXP 40
9341: PPUSH
9342: LD_EXP 14
9346: PPUSH
9347: CALL_OW 180
// end ; end ; end ;
9351: END
// export function BuildingComplete_LoyalAI ( un ) ; begin
9352: LD_INT 0
9354: PPUSH
// if getBtype ( un ) = b_turret and GetSide ( un ) = 1 then
9355: LD_VAR 0 1
9359: PPUSH
9360: CALL_OW 266
9364: PUSH
9365: LD_INT 33
9367: EQUAL
9368: PUSH
9369: LD_VAR 0 1
9373: PPUSH
9374: CALL_OW 255
9378: PUSH
9379: LD_INT 1
9381: EQUAL
9382: AND
9383: IFFALSE 9465
// begin AddComPlaceWeapon ( un , Us_machine_gun ) ;
9385: LD_VAR 0 1
9389: PPUSH
9390: LD_INT 2
9392: PPUSH
9393: CALL_OW 208
// if isInArea ( un , ApplyLaser ) then
9397: LD_VAR 0 1
9401: PPUSH
9402: LD_INT 3
9404: PPUSH
9405: CALL_OW 308
9409: IFFALSE 9425
// AddComPlaceWeapon ( un , us_double_laser ) else
9411: LD_VAR 0 1
9415: PPUSH
9416: LD_INT 10
9418: PPUSH
9419: CALL_OW 208
9423: GO 9465
// if isInArea ( un , RadarTower ) then
9425: LD_VAR 0 1
9429: PPUSH
9430: LD_INT 1
9432: PPUSH
9433: CALL_OW 308
9437: IFFALSE 9453
// AddComPlaceWeapon ( un , us_radar ) else
9439: LD_VAR 0 1
9443: PPUSH
9444: LD_INT 11
9446: PPUSH
9447: CALL_OW 208
9451: GO 9465
// AddComPlaceWeapon ( un , Us_rocket_launcher ) ;
9453: LD_VAR 0 1
9457: PPUSH
9458: LD_INT 7
9460: PPUSH
9461: CALL_OW 208
// end ; if getBtype ( un ) = b_bunker and GetSide ( un ) = 1 then
9465: LD_VAR 0 1
9469: PPUSH
9470: CALL_OW 266
9474: PUSH
9475: LD_INT 32
9477: EQUAL
9478: PUSH
9479: LD_VAR 0 1
9483: PPUSH
9484: CALL_OW 255
9488: PUSH
9489: LD_INT 1
9491: EQUAL
9492: AND
9493: IFFALSE 9519
// begin AddComPlaceWeapon ( un , Us_machine_gun ) ;
9495: LD_VAR 0 1
9499: PPUSH
9500: LD_INT 2
9502: PPUSH
9503: CALL_OW 208
// AddComPlaceWeapon ( un , Us_heavy_gun ) ;
9507: LD_VAR 0 1
9511: PPUSH
9512: LD_INT 6
9514: PPUSH
9515: CALL_OW 208
// end ; ReassignID ( getX ( un ) , GetY ( un ) , un ) ;
9519: LD_VAR 0 1
9523: PPUSH
9524: CALL_OW 250
9528: PPUSH
9529: LD_VAR 0 1
9533: PPUSH
9534: CALL_OW 251
9538: PPUSH
9539: LD_VAR 0 1
9543: PPUSH
9544: CALL 19662 0 3
// end ;
9548: LD_VAR 0 2
9552: RET
// export function UnitGoesToRed_LoyalAI ( un ) ; begin
9553: LD_INT 0
9555: PPUSH
// if un = BlueBase then
9556: LD_VAR 0 1
9560: PUSH
9561: LD_EXP 16
9565: EQUAL
9566: IFFALSE 9660
// begin ComEnterUnit ( [ Loyal1 , Loyal2 , Loyal3 , Loyal4 , LoyalMech1 , LoyalMech2 , LoyalMech3 , LoyalMech4 ] , AmBar ) ;
9568: LD_EXP 22
9572: PUSH
9573: LD_EXP 23
9577: PUSH
9578: LD_EXP 24
9582: PUSH
9583: LD_EXP 25
9587: PUSH
9588: LD_EXP 30
9592: PUSH
9593: LD_EXP 31
9597: PUSH
9598: LD_EXP 32
9602: PUSH
9603: LD_EXP 33
9607: PUSH
9608: EMPTY
9609: LIST
9610: LIST
9611: LIST
9612: LIST
9613: LIST
9614: LIST
9615: LIST
9616: LIST
9617: PPUSH
9618: LD_EXP 11
9622: PPUSH
9623: CALL_OW 120
// AddComChangeProfession ( [ LoyalMech1 , LoyalMech2 , LoyalMech3 , LoyalMech4 ] , class_Soldier ) ;
9627: LD_EXP 30
9631: PUSH
9632: LD_EXP 31
9636: PUSH
9637: LD_EXP 32
9641: PUSH
9642: LD_EXP 33
9646: PUSH
9647: EMPTY
9648: LIST
9649: LIST
9650: LIST
9651: LIST
9652: PPUSH
9653: LD_INT 1
9655: PPUSH
9656: CALL_OW 183
// end ; if Getside ( un ) = 1 and getnation ( un ) = 1 and GetBtype ( un ) > - 1 then
9660: LD_VAR 0 1
9664: PPUSH
9665: CALL_OW 255
9669: PUSH
9670: LD_INT 1
9672: EQUAL
9673: PUSH
9674: LD_VAR 0 1
9678: PPUSH
9679: CALL_OW 248
9683: PUSH
9684: LD_INT 1
9686: EQUAL
9687: AND
9688: PUSH
9689: LD_VAR 0 1
9693: PPUSH
9694: CALL_OW 266
9698: PUSH
9699: LD_INT 1
9701: NEG
9702: GREATER
9703: AND
9704: IFFALSE 9715
// RepairOrder ( un ) ;
9706: LD_VAR 0 1
9710: PPUSH
9711: CALL 19360 0 1
// end ;
9715: LD_VAR 0 2
9719: RET
// export function UnitDestroyed_LoyalAI ( un ) ; begin
9720: LD_INT 0
9722: PPUSH
// if Getside ( un ) = 1 and GetBtype ( un ) > - 1 then
9723: LD_VAR 0 1
9727: PPUSH
9728: CALL_OW 255
9732: PUSH
9733: LD_INT 1
9735: EQUAL
9736: PUSH
9737: LD_VAR 0 1
9741: PPUSH
9742: CALL_OW 266
9746: PUSH
9747: LD_INT 1
9749: NEG
9750: GREATER
9751: AND
9752: IFFALSE 10149
// begin if getBtype ( un ) = b_factory then
9754: LD_VAR 0 1
9758: PPUSH
9759: CALL_OW 266
9763: PUSH
9764: LD_INT 3
9766: EQUAL
9767: IFFALSE 9844
// AddComBuild ( NearestUnitToUnit ( [ LoyalEng1 , LoyalEng2 , LoyalEng3 , LoyalEng4 ] , un ) , b_workshop , GetX ( un ) , GetY ( un ) , GetDir ( un ) ) else
9769: LD_EXP 34
9773: PUSH
9774: LD_EXP 35
9778: PUSH
9779: LD_EXP 36
9783: PUSH
9784: LD_EXP 37
9788: PUSH
9789: EMPTY
9790: LIST
9791: LIST
9792: LIST
9793: LIST
9794: PPUSH
9795: LD_VAR 0 1
9799: PPUSH
9800: CALL_OW 74
9804: PPUSH
9805: LD_INT 2
9807: PPUSH
9808: LD_VAR 0 1
9812: PPUSH
9813: CALL_OW 250
9817: PPUSH
9818: LD_VAR 0 1
9822: PPUSH
9823: CALL_OW 251
9827: PPUSH
9828: LD_VAR 0 1
9832: PPUSH
9833: CALL_OW 254
9837: PPUSH
9838: CALL_OW 205
9842: GO 10149
// if getBType ( un ) = b_lab_full or getBType ( un ) = b_lab_half then
9844: LD_VAR 0 1
9848: PPUSH
9849: CALL_OW 266
9853: PUSH
9854: LD_INT 8
9856: EQUAL
9857: PUSH
9858: LD_VAR 0 1
9862: PPUSH
9863: CALL_OW 266
9867: PUSH
9868: LD_INT 7
9870: EQUAL
9871: OR
9872: IFFALSE 9949
// AddComBuild ( NearestUnitToUnit ( [ LoyalEng1 , LoyalEng2 , LoyalEng3 , LoyalEng4 ] , un ) , b_lab , GetX ( un ) , GetY ( un ) , GetDir ( un ) ) else
9874: LD_EXP 34
9878: PUSH
9879: LD_EXP 35
9883: PUSH
9884: LD_EXP 36
9888: PUSH
9889: LD_EXP 37
9893: PUSH
9894: EMPTY
9895: LIST
9896: LIST
9897: LIST
9898: LIST
9899: PPUSH
9900: LD_VAR 0 1
9904: PPUSH
9905: CALL_OW 74
9909: PPUSH
9910: LD_INT 6
9912: PPUSH
9913: LD_VAR 0 1
9917: PPUSH
9918: CALL_OW 250
9922: PPUSH
9923: LD_VAR 0 1
9927: PPUSH
9928: CALL_OW 251
9932: PPUSH
9933: LD_VAR 0 1
9937: PPUSH
9938: CALL_OW 254
9942: PPUSH
9943: CALL_OW 205
9947: GO 10149
// if getBType ( un ) = b_depot or getBType ( un ) = b_warehouse then
9949: LD_VAR 0 1
9953: PPUSH
9954: CALL_OW 266
9958: PUSH
9959: LD_INT 0
9961: EQUAL
9962: PUSH
9963: LD_VAR 0 1
9967: PPUSH
9968: CALL_OW 266
9972: PUSH
9973: LD_INT 1
9975: EQUAL
9976: OR
9977: IFFALSE 10054
// AddComBuild ( NearestUnitToUnit ( [ LoyalEng1 , LoyalEng2 , LoyalEng3 , LoyalEng4 ] , un ) , 0 , GetX ( un ) , GetY ( un ) , GetDir ( un ) ) else
9979: LD_EXP 34
9983: PUSH
9984: LD_EXP 35
9988: PUSH
9989: LD_EXP 36
9993: PUSH
9994: LD_EXP 37
9998: PUSH
9999: EMPTY
10000: LIST
10001: LIST
10002: LIST
10003: LIST
10004: PPUSH
10005: LD_VAR 0 1
10009: PPUSH
10010: CALL_OW 74
10014: PPUSH
10015: LD_INT 0
10017: PPUSH
10018: LD_VAR 0 1
10022: PPUSH
10023: CALL_OW 250
10027: PPUSH
10028: LD_VAR 0 1
10032: PPUSH
10033: CALL_OW 251
10037: PPUSH
10038: LD_VAR 0 1
10042: PPUSH
10043: CALL_OW 254
10047: PPUSH
10048: CALL_OW 205
10052: GO 10149
// if GetBType ( un ) > 1 then
10054: LD_VAR 0 1
10058: PPUSH
10059: CALL_OW 266
10063: PUSH
10064: LD_INT 1
10066: GREATER
10067: IFFALSE 10149
// AddComBuild ( NearestUnitToUnit ( [ LoyalEng1 , LoyalEng2 , LoyalEng3 , LoyalEng4 ] , un ) , GetBtype ( un ) , GetX ( un ) , GetY ( un ) , GetDir ( un ) ) ;
10069: LD_EXP 34
10073: PUSH
10074: LD_EXP 35
10078: PUSH
10079: LD_EXP 36
10083: PUSH
10084: LD_EXP 37
10088: PUSH
10089: EMPTY
10090: LIST
10091: LIST
10092: LIST
10093: LIST
10094: PPUSH
10095: LD_VAR 0 1
10099: PPUSH
10100: CALL_OW 74
10104: PPUSH
10105: LD_VAR 0 1
10109: PPUSH
10110: CALL_OW 266
10114: PPUSH
10115: LD_VAR 0 1
10119: PPUSH
10120: CALL_OW 250
10124: PPUSH
10125: LD_VAR 0 1
10129: PPUSH
10130: CALL_OW 251
10134: PPUSH
10135: LD_VAR 0 1
10139: PPUSH
10140: CALL_OW 254
10144: PPUSH
10145: CALL_OW 205
// end ; end ;
10149: LD_VAR 0 2
10153: RET
// var BuildList , BuildInList ; every 0 0$9.6 do
10154: GO 10156
10156: DISABLE
// begin BuildList = FilterAllUnits ( [ [ f_side , 1 ] , [ f_nation , 1 ] ] ) ;
10157: LD_ADDR_LOC 20
10161: PUSH
10162: LD_INT 22
10164: PUSH
10165: LD_INT 1
10167: PUSH
10168: EMPTY
10169: LIST
10170: LIST
10171: PUSH
10172: LD_INT 23
10174: PUSH
10175: LD_INT 1
10177: PUSH
10178: EMPTY
10179: LIST
10180: LIST
10181: PUSH
10182: EMPTY
10183: LIST
10184: LIST
10185: PPUSH
10186: CALL_OW 69
10190: ST_TO_ADDR
// for BuildInList in BuildList do
10191: LD_ADDR_LOC 21
10195: PUSH
10196: LD_LOC 20
10200: PUSH
10201: FOR_IN
10202: IFFALSE 10295
// begin if GetSide ( BuildInList ) = 1 and ( GetBtype ( BuildInList ) = b_workshop or GetBtype ( BuildInList ) = b_depot or GetBtype ( BuildInList ) = b_armoury ) and ContactTime ( [ 1 , 4 ] ) > 0 0$5 then
10204: LD_LOC 21
10208: PPUSH
10209: CALL_OW 255
10213: PUSH
10214: LD_INT 1
10216: EQUAL
10217: PUSH
10218: LD_LOC 21
10222: PPUSH
10223: CALL_OW 266
10227: PUSH
10228: LD_INT 2
10230: EQUAL
10231: PUSH
10232: LD_LOC 21
10236: PPUSH
10237: CALL_OW 266
10241: PUSH
10242: LD_INT 0
10244: EQUAL
10245: OR
10246: PUSH
10247: LD_LOC 21
10251: PPUSH
10252: CALL_OW 266
10256: PUSH
10257: LD_INT 4
10259: EQUAL
10260: OR
10261: AND
10262: PUSH
10263: LD_INT 1
10265: PUSH
10266: LD_INT 4
10268: PUSH
10269: EMPTY
10270: LIST
10271: LIST
10272: PPUSH
10273: CALL_OW 462
10277: PUSH
10278: LD_INT 175
10280: GREATER
10281: AND
10282: IFFALSE 10293
// ComUpgrade ( BuildInList ) ;
10284: LD_LOC 21
10288: PPUSH
10289: CALL_OW 146
// end ;
10293: GO 10201
10295: POP
10296: POP
// end ; end_of_file
10297: END
// export AttacksEnabled ; var LoyalCar , wavetype , wavenum , Attackers , i , AttackWave , AttDir ; every 10 10$0 do
10298: GO 10300
10300: DISABLE
// begin wavenum = 1 ;
10301: LD_ADDR_LOC 24
10305: PUSH
10306: LD_INT 1
10308: ST_TO_ADDR
// AttacksEnabled = 1 ;
10309: LD_ADDR_EXP 46
10313: PUSH
10314: LD_INT 1
10316: ST_TO_ADDR
// end ;
10317: END
// every 5 5$30 trigger AttacksEnabled = 1 do
10318: LD_EXP 46
10322: PUSH
10323: LD_INT 1
10325: EQUAL
10326: IFFALSE 11129
10328: GO 10330
10330: DISABLE
// begin enable ;
10331: ENABLE
// wavetype = rand ( 1 , 5 ) ;
10332: LD_ADDR_LOC 23
10336: PUSH
10337: LD_INT 1
10339: PPUSH
10340: LD_INT 5
10342: PPUSH
10343: CALL_OW 12
10347: ST_TO_ADDR
// if Wavenum < 3 then
10348: LD_LOC 24
10352: PUSH
10353: LD_INT 3
10355: LESS
10356: IFFALSE 10368
// attackers = 4 else
10358: LD_ADDR_LOC 25
10362: PUSH
10363: LD_INT 4
10365: ST_TO_ADDR
10366: GO 10388
// attackers = wavetype * difficulty + 3 ;
10368: LD_ADDR_LOC 25
10372: PUSH
10373: LD_LOC 23
10377: PUSH
10378: LD_OWVAR 67
10382: MUL
10383: PUSH
10384: LD_INT 3
10386: PLUS
10387: ST_TO_ADDR
// InitUC ;
10388: CALL_OW 18
// InitVC ;
10392: CALL_OW 20
// uc_nation = 1 ;
10396: LD_ADDR_OWVAR 21
10400: PUSH
10401: LD_INT 1
10403: ST_TO_ADDR
// uc_side = 1 ;
10404: LD_ADDR_OWVAR 20
10408: PUSH
10409: LD_INT 1
10411: ST_TO_ADDR
// vc_engine = engine_siberite ;
10412: LD_ADDR_OWVAR 39
10416: PUSH
10417: LD_INT 3
10419: ST_TO_ADDR
// vc_control = control_remote ;
10420: LD_ADDR_OWVAR 38
10424: PUSH
10425: LD_INT 2
10427: ST_TO_ADDR
// case Wavetype of 1 :
10428: LD_LOC 23
10432: PUSH
10433: LD_INT 1
10435: DOUBLE
10436: EQUAL
10437: IFTRUE 10441
10439: GO 10460
10441: POP
// begin ; vc_chassis = us_heavy_tracked ;
10442: LD_ADDR_OWVAR 37
10446: PUSH
10447: LD_INT 4
10449: ST_TO_ADDR
// vc_Weapon = us_heavy_gun ;
10450: LD_ADDR_OWVAR 40
10454: PUSH
10455: LD_INT 6
10457: ST_TO_ADDR
// end ; 2 :
10458: GO 10569
10460: LD_INT 2
10462: DOUBLE
10463: EQUAL
10464: IFTRUE 10468
10466: GO 10487
10468: POP
// begin ; vc_chassis = us_morphling ;
10469: LD_ADDR_OWVAR 37
10473: PUSH
10474: LD_INT 5
10476: ST_TO_ADDR
// vc_weapon = us_double_gun ;
10477: LD_ADDR_OWVAR 40
10481: PUSH
10482: LD_INT 5
10484: ST_TO_ADDR
// end ; 3 :
10485: GO 10569
10487: LD_INT 3
10489: DOUBLE
10490: EQUAL
10491: IFTRUE 10495
10493: GO 10514
10495: POP
// begin ; vc_chassis = us_medium_tracked ;
10496: LD_ADDR_OWVAR 37
10500: PUSH
10501: LD_INT 3
10503: ST_TO_ADDR
// vc_weapon = us_rocket_launcher ;
10504: LD_ADDR_OWVAR 40
10508: PUSH
10509: LD_INT 7
10511: ST_TO_ADDR
// end ; 4 :
10512: GO 10569
10514: LD_INT 4
10516: DOUBLE
10517: EQUAL
10518: IFTRUE 10522
10520: GO 10541
10522: POP
// begin ; vc_chassis = us_light_wheeled ;
10523: LD_ADDR_OWVAR 37
10527: PUSH
10528: LD_INT 1
10530: ST_TO_ADDR
// vc_weapon = us_double_laser ;
10531: LD_ADDR_OWVAR 40
10535: PUSH
10536: LD_INT 10
10538: ST_TO_ADDR
// end ; 5 :
10539: GO 10569
10541: LD_INT 5
10543: DOUBLE
10544: EQUAL
10545: IFTRUE 10549
10547: GO 10568
10549: POP
// begin ; vc_chassis = us_light_wheeled ;
10550: LD_ADDR_OWVAR 37
10554: PUSH
10555: LD_INT 1
10557: ST_TO_ADDR
// vc_weapon = us_double_gun ;
10558: LD_ADDR_OWVAR 40
10562: PUSH
10563: LD_INT 5
10565: ST_TO_ADDR
// end ; end ;
10566: GO 10569
10568: POP
// for i = 1 to Attackers do
10569: LD_ADDR_LOC 26
10573: PUSH
10574: DOUBLE
10575: LD_INT 1
10577: DEC
10578: ST_TO_ADDR
10579: LD_LOC 25
10583: PUSH
10584: FOR_TO
10585: IFFALSE 10746
// if not FilterUnitsInArea ( Telefragzone , 1 ) = 0 then
10587: LD_INT 17
10589: PPUSH
10590: LD_INT 1
10592: PPUSH
10593: CALL_OW 70
10597: PUSH
10598: LD_INT 0
10600: EQUAL
10601: NOT
10602: IFFALSE 10723
// begin uc_direction = 3 ;
10604: LD_ADDR_OWVAR 24
10608: PUSH
10609: LD_INT 3
10611: ST_TO_ADDR
// LoyalCar = CreateVehicle ( ) ;
10612: LD_ADDR_LOC 22
10616: PUSH
10617: CALL_OW 45
10621: ST_TO_ADDR
// PlaceUnitXY ( LoyalCar , 153 , 4 , false ) ;
10622: LD_LOC 22
10626: PPUSH
10627: LD_INT 153
10629: PPUSH
10630: LD_INT 4
10632: PPUSH
10633: LD_INT 0
10635: PPUSH
10636: CALL_OW 48
// EffectTeleport ( 153 , 4 ) ;
10640: LD_INT 153
10642: PPUSH
10643: LD_INT 4
10645: PPUSH
10646: CALL_OW 494
// wait ( 0 0$0.1 ) ;
10650: LD_INT 4
10652: PPUSH
10653: CALL_OW 67
// LinkToBestPilot ( LoyalCar ) ;
10657: LD_LOC 22
10661: PPUSH
10662: CALL 11270 0 1
// wait ( 0 0$0.4 ) ;
10666: LD_INT 14
10668: PPUSH
10669: CALL_OW 67
// ComMoveXY ( LoyalCar , 142 + rand ( - 5 , 5 ) , 35 + rand ( - 5 , 5 ) ) ;
10673: LD_LOC 22
10677: PPUSH
10678: LD_INT 142
10680: PUSH
10681: LD_INT 5
10683: NEG
10684: PPUSH
10685: LD_INT 5
10687: PPUSH
10688: CALL_OW 12
10692: PLUS
10693: PPUSH
10694: LD_INT 35
10696: PUSH
10697: LD_INT 5
10699: NEG
10700: PPUSH
10701: LD_INT 5
10703: PPUSH
10704: CALL_OW 12
10708: PLUS
10709: PPUSH
10710: CALL_OW 111
// wait ( 0 0$3 ) ;
10714: LD_INT 105
10716: PPUSH
10717: CALL_OW 67
// end else
10721: GO 10744
// begin wait ( 0 0$01 ) ;
10723: LD_INT 35
10725: PPUSH
10726: CALL_OW 67
// i = i - 1 ;
10730: LD_ADDR_LOC 26
10734: PUSH
10735: LD_LOC 26
10739: PUSH
10740: LD_INT 1
10742: MINUS
10743: ST_TO_ADDR
// end ;
10744: GO 10584
10746: POP
10747: POP
// AttackWave = FilterAllUnits ( [ [ f_side , 1 ] , [ f_engine , 3 ] , [ f_control , control_remote ] ] ) ;
10748: LD_ADDR_LOC 27
10752: PUSH
10753: LD_INT 22
10755: PUSH
10756: LD_INT 1
10758: PUSH
10759: EMPTY
10760: LIST
10761: LIST
10762: PUSH
10763: LD_INT 32
10765: PUSH
10766: LD_INT 3
10768: PUSH
10769: EMPTY
10770: LIST
10771: LIST
10772: PUSH
10773: LD_INT 33
10775: PUSH
10776: LD_INT 2
10778: PUSH
10779: EMPTY
10780: LIST
10781: LIST
10782: PUSH
10783: EMPTY
10784: LIST
10785: LIST
10786: LIST
10787: PPUSH
10788: CALL_OW 69
10792: ST_TO_ADDR
// wait ( 0 0$1 ) ;
10793: LD_INT 35
10795: PPUSH
10796: CALL_OW 67
// AttDir = rand ( 1 , 3 ) ;
10800: LD_ADDR_LOC 28
10804: PUSH
10805: LD_INT 1
10807: PPUSH
10808: LD_INT 3
10810: PPUSH
10811: CALL_OW 12
10815: ST_TO_ADDR
// for i in AttackWave do
10816: LD_ADDR_LOC 26
10820: PUSH
10821: LD_LOC 27
10825: PUSH
10826: FOR_IN
10827: IFFALSE 11127
// begin if wavetype = 4 then
10829: LD_LOC 23
10833: PUSH
10834: LD_INT 4
10836: EQUAL
10837: IFFALSE 11046
// begin AddComMoveXY ( i , 86 + rand ( - 10 , 10 ) , 139 + rand ( - 10 , 10 ) ) ;
10839: LD_LOC 26
10843: PPUSH
10844: LD_INT 86
10846: PUSH
10847: LD_INT 10
10849: NEG
10850: PPUSH
10851: LD_INT 10
10853: PPUSH
10854: CALL_OW 12
10858: PLUS
10859: PPUSH
10860: LD_INT 139
10862: PUSH
10863: LD_INT 10
10865: NEG
10866: PPUSH
10867: LD_INT 10
10869: PPUSH
10870: CALL_OW 12
10874: PLUS
10875: PPUSH
10876: CALL_OW 171
// AddComMoveXY ( i , 86 + rand ( - 10 , 10 ) , 139 + rand ( - 10 , 10 ) ) ;
10880: LD_LOC 26
10884: PPUSH
10885: LD_INT 86
10887: PUSH
10888: LD_INT 10
10890: NEG
10891: PPUSH
10892: LD_INT 10
10894: PPUSH
10895: CALL_OW 12
10899: PLUS
10900: PPUSH
10901: LD_INT 139
10903: PUSH
10904: LD_INT 10
10906: NEG
10907: PPUSH
10908: LD_INT 10
10910: PPUSH
10911: CALL_OW 12
10915: PLUS
10916: PPUSH
10917: CALL_OW 171
// AddComMoveXY ( i , 86 + rand ( - 10 , 10 ) , 139 + rand ( - 10 , 10 ) ) ;
10921: LD_LOC 26
10925: PPUSH
10926: LD_INT 86
10928: PUSH
10929: LD_INT 10
10931: NEG
10932: PPUSH
10933: LD_INT 10
10935: PPUSH
10936: CALL_OW 12
10940: PLUS
10941: PPUSH
10942: LD_INT 139
10944: PUSH
10945: LD_INT 10
10947: NEG
10948: PPUSH
10949: LD_INT 10
10951: PPUSH
10952: CALL_OW 12
10956: PLUS
10957: PPUSH
10958: CALL_OW 171
// AddComMoveXY ( i , 86 + rand ( - 10 , 10 ) , 139 + rand ( - 10 , 10 ) ) ;
10962: LD_LOC 26
10966: PPUSH
10967: LD_INT 86
10969: PUSH
10970: LD_INT 10
10972: NEG
10973: PPUSH
10974: LD_INT 10
10976: PPUSH
10977: CALL_OW 12
10981: PLUS
10982: PPUSH
10983: LD_INT 139
10985: PUSH
10986: LD_INT 10
10988: NEG
10989: PPUSH
10990: LD_INT 10
10992: PPUSH
10993: CALL_OW 12
10997: PLUS
10998: PPUSH
10999: CALL_OW 171
// AddComMoveXY ( i , 86 + rand ( - 10 , 10 ) , 139 + rand ( - 10 , 10 ) ) ;
11003: LD_LOC 26
11007: PPUSH
11008: LD_INT 86
11010: PUSH
11011: LD_INT 10
11013: NEG
11014: PPUSH
11015: LD_INT 10
11017: PPUSH
11018: CALL_OW 12
11022: PLUS
11023: PPUSH
11024: LD_INT 139
11026: PUSH
11027: LD_INT 10
11029: NEG
11030: PPUSH
11031: LD_INT 10
11033: PPUSH
11034: CALL_OW 12
11038: PLUS
11039: PPUSH
11040: CALL_OW 171
// end else
11044: GO 11125
// begin AddComAgressiveMove ( i , 86 , 92 ) ;
11046: LD_LOC 26
11050: PPUSH
11051: LD_INT 86
11053: PPUSH
11054: LD_INT 92
11056: PPUSH
11057: CALL_OW 174
// AddComAgressiveMove ( i , [ 61 , 97 , 127 ] [ AttDir ] , [ 96 , 129 , 153 ] [ AttDir ] ) ;
11061: LD_LOC 26
11065: PPUSH
11066: LD_INT 61
11068: PUSH
11069: LD_INT 97
11071: PUSH
11072: LD_INT 127
11074: PUSH
11075: EMPTY
11076: LIST
11077: LIST
11078: LIST
11079: PUSH
11080: LD_LOC 28
11084: ARRAY
11085: PPUSH
11086: LD_INT 96
11088: PUSH
11089: LD_INT 129
11091: PUSH
11092: LD_INT 153
11094: PUSH
11095: EMPTY
11096: LIST
11097: LIST
11098: LIST
11099: PUSH
11100: LD_LOC 28
11104: ARRAY
11105: PPUSH
11106: CALL_OW 174
// AddComAgressiveMove ( i , 85 , 138 ) ;
11110: LD_LOC 26
11114: PPUSH
11115: LD_INT 85
11117: PPUSH
11118: LD_INT 138
11120: PPUSH
11121: CALL_OW 174
// end ; end ;
11125: GO 10826
11127: POP
11128: POP
// end ;
11129: END
// var fuck , you ; on DestinationUnreachable ( un ) do begin if not Getside ( Un ) = 4 then
11130: LD_VAR 0 1
11134: PPUSH
11135: CALL_OW 255
11139: PUSH
11140: LD_INT 4
11142: EQUAL
11143: NOT
11144: IFFALSE 11267
// begin you = FilterAllUnits ( [ f_side , 4 ] ) ;
11146: LD_ADDR_LOC 30
11150: PUSH
11151: LD_INT 22
11153: PUSH
11154: LD_INT 4
11156: PUSH
11157: EMPTY
11158: LIST
11159: LIST
11160: PPUSH
11161: CALL_OW 69
11165: ST_TO_ADDR
// for fuck in you do
11166: LD_ADDR_LOC 29
11170: PUSH
11171: LD_LOC 30
11175: PUSH
11176: FOR_IN
11177: IFFALSE 11265
// begin PriorityAttack ( 1 , fuck ) ;
11179: LD_INT 1
11181: PPUSH
11182: LD_LOC 29
11186: PPUSH
11187: CALL_OW 470
// PriorityAttack ( 2 , fuck ) ;
11191: LD_INT 2
11193: PPUSH
11194: LD_LOC 29
11198: PPUSH
11199: CALL_OW 470
// PriorityAttack ( 3 , fuck ) ;
11203: LD_INT 3
11205: PPUSH
11206: LD_LOC 29
11210: PPUSH
11211: CALL_OW 470
// PriorityAttack ( 5 , fuck ) ;
11215: LD_INT 5
11217: PPUSH
11218: LD_LOC 29
11222: PPUSH
11223: CALL_OW 470
// PriorityAttack ( 6 , fuck ) ;
11227: LD_INT 6
11229: PPUSH
11230: LD_LOC 29
11234: PPUSH
11235: CALL_OW 470
// PriorityAttack ( 7 , fuck ) ;
11239: LD_INT 7
11241: PPUSH
11242: LD_LOC 29
11246: PPUSH
11247: CALL_OW 470
// PriorityAttack ( 8 , fuck ) ;
11251: LD_INT 8
11253: PPUSH
11254: LD_LOC 29
11258: PPUSH
11259: CALL_OW 470
// end ;
11263: GO 11176
11265: POP
11266: POP
// end ; end ;
11267: PPOPN 1
11269: END
// var BestMech ; function LinkToBestPilot ( un ) ; begin
11270: LD_INT 0
11272: PPUSH
// if GetLives ( LoyalMech2 ) > 500 and GetBtype ( IsInUnit ( LoyalMEch3 ) ) = b_control_tower then
11273: LD_EXP 31
11277: PPUSH
11278: CALL_OW 256
11282: PUSH
11283: LD_INT 500
11285: GREATER
11286: PUSH
11287: LD_EXP 32
11291: PPUSH
11292: CALL_OW 310
11296: PPUSH
11297: CALL_OW 266
11301: PUSH
11302: LD_INT 36
11304: EQUAL
11305: AND
11306: IFFALSE 11320
// begin BestMech = LoyalMech2 ;
11308: LD_ADDR_LOC 31
11312: PUSH
11313: LD_EXP 31
11317: ST_TO_ADDR
// end else
11318: GO 11372
// if GetLives ( LoyalMech3 ) > 500 then
11320: LD_EXP 32
11324: PPUSH
11325: CALL_OW 256
11329: PUSH
11330: LD_INT 500
11332: GREATER
11333: IFFALSE 11347
// begin BestMech = LoyalMech3 ;
11335: LD_ADDR_LOC 31
11339: PUSH
11340: LD_EXP 32
11344: ST_TO_ADDR
// end else
11345: GO 11372
// if GetLives ( LoyalMech4 ) > 500 then
11347: LD_EXP 33
11351: PPUSH
11352: CALL_OW 256
11356: PUSH
11357: LD_INT 500
11359: GREATER
11360: IFFALSE 11372
// begin BestMech = LoyalMech4 ;
11362: LD_ADDR_LOC 31
11366: PUSH
11367: LD_EXP 33
11371: ST_TO_ADDR
// end ; if IsLive ( LoyalMech3 ) and GetLives ( LoyalMech3 ) > 500 and UnitsLinked ( LoyalMech3 ) < BestMech then
11372: LD_EXP 32
11376: PPUSH
11377: CALL_OW 300
11381: PUSH
11382: LD_EXP 32
11386: PPUSH
11387: CALL_OW 256
11391: PUSH
11392: LD_INT 500
11394: GREATER
11395: AND
11396: PUSH
11397: LD_EXP 32
11401: PPUSH
11402: CALL_OW 432
11406: PUSH
11407: LD_LOC 31
11411: LESS
11412: AND
11413: IFFALSE 11425
// Bestmech = LoyalMech3 ;
11415: LD_ADDR_LOC 31
11419: PUSH
11420: LD_EXP 32
11424: ST_TO_ADDR
// if IsLive ( LoyalMech4 ) and GetLives ( LoyalMech4 ) > 500 and UnitsLinked ( LoyalMech4 ) < BestMech then
11425: LD_EXP 33
11429: PPUSH
11430: CALL_OW 300
11434: PUSH
11435: LD_EXP 33
11439: PPUSH
11440: CALL_OW 256
11444: PUSH
11445: LD_INT 500
11447: GREATER
11448: AND
11449: PUSH
11450: LD_EXP 33
11454: PPUSH
11455: CALL_OW 432
11459: PUSH
11460: LD_LOC 31
11464: LESS
11465: AND
11466: IFFALSE 11478
// Bestmech = LoyalMech4 ;
11468: LD_ADDR_LOC 31
11472: PUSH
11473: LD_EXP 33
11477: ST_TO_ADDR
// LinkVEhicleToHuman ( un , BestMech ) ;
11478: LD_VAR 0 1
11482: PPUSH
11483: LD_LOC 31
11487: PPUSH
11488: CALL_OW 53
// end ;
11492: LD_VAR 0 2
11496: RET
// var Car , CarList ; function SpottedExperimental ; begin
11497: LD_INT 0
11499: PPUSH
// result = 0 ;
11500: LD_ADDR_VAR 0 1
11504: PUSH
11505: LD_INT 0
11507: ST_TO_ADDR
// CarList = FilterAllUnits ( [ [ f_side , 1 ] , [ f_engine , 3 ] ] ) ;
11508: LD_ADDR_LOC 33
11512: PUSH
11513: LD_INT 22
11515: PUSH
11516: LD_INT 1
11518: PUSH
11519: EMPTY
11520: LIST
11521: LIST
11522: PUSH
11523: LD_INT 32
11525: PUSH
11526: LD_INT 3
11528: PUSH
11529: EMPTY
11530: LIST
11531: LIST
11532: PUSH
11533: EMPTY
11534: LIST
11535: LIST
11536: PPUSH
11537: CALL_OW 69
11541: ST_TO_ADDR
// for Car in CarList do
11542: LD_ADDR_LOC 32
11546: PUSH
11547: LD_LOC 33
11551: PUSH
11552: FOR_IN
11553: IFFALSE 11596
// begin if See ( 4 , Car ) and GetChassis ( Car ) = us_light_wheeled then
11555: LD_INT 4
11557: PPUSH
11558: LD_LOC 32
11562: PPUSH
11563: CALL_OW 292
11567: PUSH
11568: LD_LOC 32
11572: PPUSH
11573: CALL_OW 265
11577: PUSH
11578: LD_INT 1
11580: EQUAL
11581: AND
11582: IFFALSE 11594
// result = Car ;
11584: LD_ADDR_VAR 0 1
11588: PUSH
11589: LD_LOC 32
11593: ST_TO_ADDR
// end ;
11594: GO 11552
11596: POP
11597: POP
// end ;
11598: LD_VAR 0 1
11602: RET
// every 0 0$1 trigger SpottedExperimental do
11603: CALL 11497 0 0
11607: IFFALSE 11706
11609: GO 11611
11611: DISABLE
// begin dialogueon ;
11612: CALL_OW 6
// centeronunits ( SpottedExperimental ) ;
11616: CALL 11497 0 0
11620: PPUSH
11621: CALL_OW 85
// if IsLive ( Madison ) then
11625: LD_INT 1915
11627: PPUSH
11628: CALL_OW 300
11632: IFFALSE 11646
// say ( Madison , Experimental1 ) else
11634: LD_INT 1915
11636: PPUSH
11637: LD_STRING Experimental1
11639: PPUSH
11640: CALL_OW 88
11644: GO 11656
// say ( Greene , Experimental1 ) ;
11646: LD_INT 1913
11648: PPUSH
11649: LD_STRING Experimental1
11651: PPUSH
11652: CALL_OW 88
// Say ( Randomperson ( 4 ) , Experimental2 ) ;
11656: LD_INT 4
11658: PPUSH
11659: CALL 20497 0 1
11663: PPUSH
11664: LD_STRING Experimental2
11666: PPUSH
11667: CALL_OW 88
// if IsLive ( Madison ) then
11671: LD_INT 1915
11673: PPUSH
11674: CALL_OW 300
11678: IFFALSE 11692
// say ( Madison , Experimental3 ) else
11680: LD_INT 1915
11682: PPUSH
11683: LD_STRING Experimental3
11685: PPUSH
11686: CALL_OW 88
11690: GO 11702
// say ( Greene , Experimental3 ) ;
11692: LD_INT 1913
11694: PPUSH
11695: LD_STRING Experimental3
11697: PPUSH
11698: CALL_OW 88
// dialogueoff ;
11702: CALL_OW 7
// end ; end_of_file
11706: END
// export RuGun1 , RuGun2 , RuGun3 , RuGun4 , RuGun5 , RuGun6 , RuBar , RedBase , RuTele , RuLab1 , RuLab2 , RuFac1 , RuFac2 , Ru1 , Ru2 , Ru3 , Ru4 , Ru5 , Ru6 , Ru7 , Ru8 , RuBoss , RuMech1 , RuMech2 , RuMech3 , RuMech4 , RuEng1 , RuEng2 , RuEng3 , RuEng4 , RuDoc1 , RuDoc2 , RuDoc3 ; var ExtUnit , MiscUnit , Autogun ; every 0 0$05 do
11707: GO 11709
11709: DISABLE
// begin uc_side = 3 ;
11710: LD_ADDR_OWVAR 20
11714: PUSH
11715: LD_INT 3
11717: ST_TO_ADDR
// uc_nation = 3 ;
11718: LD_ADDR_OWVAR 21
11722: PUSH
11723: LD_INT 3
11725: ST_TO_ADDR
// hc_class = 1 ;
11726: LD_ADDR_OWVAR 28
11730: PUSH
11731: LD_INT 1
11733: ST_TO_ADDR
// hc_attr = [ 15 , 10 ] ;
11734: LD_ADDR_OWVAR 29
11738: PUSH
11739: LD_INT 15
11741: PUSH
11742: LD_INT 10
11744: PUSH
11745: EMPTY
11746: LIST
11747: LIST
11748: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
11749: LD_ADDR_OWVAR 30
11753: PUSH
11754: LD_INT 6
11756: PUSH
11757: LD_OWVAR 67
11761: PLUS
11762: PPUSH
11763: LD_INT 10
11765: PPUSH
11766: CALL_OW 12
11770: PUSH
11771: LD_INT 3
11773: PUSH
11774: LD_OWVAR 67
11778: PLUS
11779: PPUSH
11780: LD_INT 6
11782: PUSH
11783: LD_OWVAR 67
11787: PLUS
11788: PPUSH
11789: CALL_OW 12
11793: PUSH
11794: LD_INT 3
11796: PUSH
11797: LD_OWVAR 67
11801: PLUS
11802: PPUSH
11803: LD_INT 6
11805: PUSH
11806: LD_OWVAR 67
11810: PLUS
11811: PPUSH
11812: CALL_OW 12
11816: PUSH
11817: LD_INT 1
11819: PUSH
11820: LD_OWVAR 67
11824: PLUS
11825: PPUSH
11826: LD_INT 5
11828: PUSH
11829: LD_OWVAR 67
11833: PLUS
11834: PPUSH
11835: CALL_OW 12
11839: PUSH
11840: EMPTY
11841: LIST
11842: LIST
11843: LIST
11844: LIST
11845: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
11846: LD_ADDR_OWVAR 27
11850: PUSH
11851: LD_INT 1
11853: PPUSH
11854: LD_INT 2
11856: PPUSH
11857: CALL_OW 12
11861: ST_TO_ADDR
// Ru1 = CreateHuman ;
11862: LD_ADDR_EXP 60
11866: PUSH
11867: CALL_OW 44
11871: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
11872: LD_ADDR_OWVAR 30
11876: PUSH
11877: LD_INT 6
11879: PUSH
11880: LD_OWVAR 67
11884: PLUS
11885: PPUSH
11886: LD_INT 10
11888: PPUSH
11889: CALL_OW 12
11893: PUSH
11894: LD_INT 3
11896: PUSH
11897: LD_OWVAR 67
11901: PLUS
11902: PPUSH
11903: LD_INT 6
11905: PUSH
11906: LD_OWVAR 67
11910: PLUS
11911: PPUSH
11912: CALL_OW 12
11916: PUSH
11917: LD_INT 3
11919: PUSH
11920: LD_OWVAR 67
11924: PLUS
11925: PPUSH
11926: LD_INT 6
11928: PUSH
11929: LD_OWVAR 67
11933: PLUS
11934: PPUSH
11935: CALL_OW 12
11939: PUSH
11940: LD_INT 1
11942: PUSH
11943: LD_OWVAR 67
11947: PLUS
11948: PPUSH
11949: LD_INT 5
11951: PUSH
11952: LD_OWVAR 67
11956: PLUS
11957: PPUSH
11958: CALL_OW 12
11962: PUSH
11963: EMPTY
11964: LIST
11965: LIST
11966: LIST
11967: LIST
11968: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
11969: LD_ADDR_OWVAR 27
11973: PUSH
11974: LD_INT 1
11976: PPUSH
11977: LD_INT 2
11979: PPUSH
11980: CALL_OW 12
11984: ST_TO_ADDR
// Ru2 = CreateHuman ;
11985: LD_ADDR_EXP 61
11989: PUSH
11990: CALL_OW 44
11994: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
11995: LD_ADDR_OWVAR 30
11999: PUSH
12000: LD_INT 6
12002: PUSH
12003: LD_OWVAR 67
12007: PLUS
12008: PPUSH
12009: LD_INT 10
12011: PPUSH
12012: CALL_OW 12
12016: PUSH
12017: LD_INT 3
12019: PUSH
12020: LD_OWVAR 67
12024: PLUS
12025: PPUSH
12026: LD_INT 6
12028: PUSH
12029: LD_OWVAR 67
12033: PLUS
12034: PPUSH
12035: CALL_OW 12
12039: PUSH
12040: LD_INT 3
12042: PUSH
12043: LD_OWVAR 67
12047: PLUS
12048: PPUSH
12049: LD_INT 6
12051: PUSH
12052: LD_OWVAR 67
12056: PLUS
12057: PPUSH
12058: CALL_OW 12
12062: PUSH
12063: LD_INT 1
12065: PUSH
12066: LD_OWVAR 67
12070: PLUS
12071: PPUSH
12072: LD_INT 5
12074: PUSH
12075: LD_OWVAR 67
12079: PLUS
12080: PPUSH
12081: CALL_OW 12
12085: PUSH
12086: EMPTY
12087: LIST
12088: LIST
12089: LIST
12090: LIST
12091: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
12092: LD_ADDR_OWVAR 27
12096: PUSH
12097: LD_INT 1
12099: PPUSH
12100: LD_INT 2
12102: PPUSH
12103: CALL_OW 12
12107: ST_TO_ADDR
// Ru3 = CreateHuman ;
12108: LD_ADDR_EXP 62
12112: PUSH
12113: CALL_OW 44
12117: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
12118: LD_ADDR_OWVAR 30
12122: PUSH
12123: LD_INT 6
12125: PUSH
12126: LD_OWVAR 67
12130: PLUS
12131: PPUSH
12132: LD_INT 10
12134: PPUSH
12135: CALL_OW 12
12139: PUSH
12140: LD_INT 3
12142: PUSH
12143: LD_OWVAR 67
12147: PLUS
12148: PPUSH
12149: LD_INT 6
12151: PUSH
12152: LD_OWVAR 67
12156: PLUS
12157: PPUSH
12158: CALL_OW 12
12162: PUSH
12163: LD_INT 3
12165: PUSH
12166: LD_OWVAR 67
12170: PLUS
12171: PPUSH
12172: LD_INT 6
12174: PUSH
12175: LD_OWVAR 67
12179: PLUS
12180: PPUSH
12181: CALL_OW 12
12185: PUSH
12186: LD_INT 1
12188: PUSH
12189: LD_OWVAR 67
12193: PLUS
12194: PPUSH
12195: LD_INT 5
12197: PUSH
12198: LD_OWVAR 67
12202: PLUS
12203: PPUSH
12204: CALL_OW 12
12208: PUSH
12209: EMPTY
12210: LIST
12211: LIST
12212: LIST
12213: LIST
12214: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
12215: LD_ADDR_OWVAR 27
12219: PUSH
12220: LD_INT 1
12222: PPUSH
12223: LD_INT 2
12225: PPUSH
12226: CALL_OW 12
12230: ST_TO_ADDR
// Ru4 = CreateHuman ;
12231: LD_ADDR_EXP 63
12235: PUSH
12236: CALL_OW 44
12240: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
12241: LD_ADDR_OWVAR 30
12245: PUSH
12246: LD_INT 6
12248: PUSH
12249: LD_OWVAR 67
12253: PLUS
12254: PPUSH
12255: LD_INT 10
12257: PPUSH
12258: CALL_OW 12
12262: PUSH
12263: LD_INT 3
12265: PUSH
12266: LD_OWVAR 67
12270: PLUS
12271: PPUSH
12272: LD_INT 6
12274: PUSH
12275: LD_OWVAR 67
12279: PLUS
12280: PPUSH
12281: CALL_OW 12
12285: PUSH
12286: LD_INT 3
12288: PUSH
12289: LD_OWVAR 67
12293: PLUS
12294: PPUSH
12295: LD_INT 6
12297: PUSH
12298: LD_OWVAR 67
12302: PLUS
12303: PPUSH
12304: CALL_OW 12
12308: PUSH
12309: LD_INT 1
12311: PUSH
12312: LD_OWVAR 67
12316: PLUS
12317: PPUSH
12318: LD_INT 5
12320: PUSH
12321: LD_OWVAR 67
12325: PLUS
12326: PPUSH
12327: CALL_OW 12
12331: PUSH
12332: EMPTY
12333: LIST
12334: LIST
12335: LIST
12336: LIST
12337: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
12338: LD_ADDR_OWVAR 27
12342: PUSH
12343: LD_INT 1
12345: PPUSH
12346: LD_INT 2
12348: PPUSH
12349: CALL_OW 12
12353: ST_TO_ADDR
// Ru5 = CreateHuman ;
12354: LD_ADDR_EXP 64
12358: PUSH
12359: CALL_OW 44
12363: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
12364: LD_ADDR_OWVAR 30
12368: PUSH
12369: LD_INT 6
12371: PUSH
12372: LD_OWVAR 67
12376: PLUS
12377: PPUSH
12378: LD_INT 10
12380: PPUSH
12381: CALL_OW 12
12385: PUSH
12386: LD_INT 3
12388: PUSH
12389: LD_OWVAR 67
12393: PLUS
12394: PPUSH
12395: LD_INT 6
12397: PUSH
12398: LD_OWVAR 67
12402: PLUS
12403: PPUSH
12404: CALL_OW 12
12408: PUSH
12409: LD_INT 3
12411: PUSH
12412: LD_OWVAR 67
12416: PLUS
12417: PPUSH
12418: LD_INT 6
12420: PUSH
12421: LD_OWVAR 67
12425: PLUS
12426: PPUSH
12427: CALL_OW 12
12431: PUSH
12432: LD_INT 1
12434: PUSH
12435: LD_OWVAR 67
12439: PLUS
12440: PPUSH
12441: LD_INT 5
12443: PUSH
12444: LD_OWVAR 67
12448: PLUS
12449: PPUSH
12450: CALL_OW 12
12454: PUSH
12455: EMPTY
12456: LIST
12457: LIST
12458: LIST
12459: LIST
12460: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
12461: LD_ADDR_OWVAR 27
12465: PUSH
12466: LD_INT 1
12468: PPUSH
12469: LD_INT 2
12471: PPUSH
12472: CALL_OW 12
12476: ST_TO_ADDR
// Ru6 = CreateHuman ;
12477: LD_ADDR_EXP 65
12481: PUSH
12482: CALL_OW 44
12486: ST_TO_ADDR
// hc_class = 9 ;
12487: LD_ADDR_OWVAR 28
12491: PUSH
12492: LD_INT 9
12494: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
12495: LD_ADDR_OWVAR 30
12499: PUSH
12500: LD_INT 6
12502: PUSH
12503: LD_OWVAR 67
12507: PLUS
12508: PPUSH
12509: LD_INT 10
12511: PPUSH
12512: CALL_OW 12
12516: PUSH
12517: LD_INT 3
12519: PUSH
12520: LD_OWVAR 67
12524: PLUS
12525: PPUSH
12526: LD_INT 6
12528: PUSH
12529: LD_OWVAR 67
12533: PLUS
12534: PPUSH
12535: CALL_OW 12
12539: PUSH
12540: LD_INT 3
12542: PUSH
12543: LD_OWVAR 67
12547: PLUS
12548: PPUSH
12549: LD_INT 6
12551: PUSH
12552: LD_OWVAR 67
12556: PLUS
12557: PPUSH
12558: CALL_OW 12
12562: PUSH
12563: LD_INT 1
12565: PUSH
12566: LD_OWVAR 67
12570: PLUS
12571: PPUSH
12572: LD_INT 5
12574: PUSH
12575: LD_OWVAR 67
12579: PLUS
12580: PPUSH
12581: CALL_OW 12
12585: PUSH
12586: EMPTY
12587: LIST
12588: LIST
12589: LIST
12590: LIST
12591: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
12592: LD_ADDR_OWVAR 27
12596: PUSH
12597: LD_INT 1
12599: PPUSH
12600: LD_INT 2
12602: PPUSH
12603: CALL_OW 12
12607: ST_TO_ADDR
// Ru7 = CreateHuman ;
12608: LD_ADDR_EXP 66
12612: PUSH
12613: CALL_OW 44
12617: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 + difficulty , 10 ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 3 + difficulty , 6 + difficulty ) , rand ( 1 + difficulty , 5 + difficulty ) ] ;
12618: LD_ADDR_OWVAR 30
12622: PUSH
12623: LD_INT 6
12625: PUSH
12626: LD_OWVAR 67
12630: PLUS
12631: PPUSH
12632: LD_INT 10
12634: PPUSH
12635: CALL_OW 12
12639: PUSH
12640: LD_INT 3
12642: PUSH
12643: LD_OWVAR 67
12647: PLUS
12648: PPUSH
12649: LD_INT 6
12651: PUSH
12652: LD_OWVAR 67
12656: PLUS
12657: PPUSH
12658: CALL_OW 12
12662: PUSH
12663: LD_INT 3
12665: PUSH
12666: LD_OWVAR 67
12670: PLUS
12671: PPUSH
12672: LD_INT 6
12674: PUSH
12675: LD_OWVAR 67
12679: PLUS
12680: PPUSH
12681: CALL_OW 12
12685: PUSH
12686: LD_INT 1
12688: PUSH
12689: LD_OWVAR 67
12693: PLUS
12694: PPUSH
12695: LD_INT 5
12697: PUSH
12698: LD_OWVAR 67
12702: PLUS
12703: PPUSH
12704: CALL_OW 12
12708: PUSH
12709: EMPTY
12710: LIST
12711: LIST
12712: LIST
12713: LIST
12714: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
12715: LD_ADDR_OWVAR 27
12719: PUSH
12720: LD_INT 1
12722: PPUSH
12723: LD_INT 2
12725: PPUSH
12726: CALL_OW 12
12730: ST_TO_ADDR
// Ru8 = CreateHuman ;
12731: LD_ADDR_EXP 67
12735: PUSH
12736: CALL_OW 44
12740: ST_TO_ADDR
// hc_basic_skills = [ 10 , 8 , 8 , 7 ] ;
12741: LD_ADDR_OWVAR 30
12745: PUSH
12746: LD_INT 10
12748: PUSH
12749: LD_INT 8
12751: PUSH
12752: LD_INT 8
12754: PUSH
12755: LD_INT 7
12757: PUSH
12758: EMPTY
12759: LIST
12760: LIST
12761: LIST
12762: LIST
12763: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
12764: LD_ADDR_OWVAR 27
12768: PUSH
12769: LD_INT 1
12771: PPUSH
12772: LD_INT 2
12774: PPUSH
12775: CALL_OW 12
12779: ST_TO_ADDR
// RuBoss = CreateHuman ;
12780: LD_ADDR_EXP 68
12784: PUSH
12785: CALL_OW 44
12789: ST_TO_ADDR
// hc_class = 2 ;
12790: LD_ADDR_OWVAR 28
12794: PUSH
12795: LD_INT 2
12797: ST_TO_ADDR
// hc_basic_skills = [ rand ( 5 + difficulty , 10 ) , 10 , rand ( 3 , 6 ) , rand ( 1 , 5 ) ] ;
12798: LD_ADDR_OWVAR 30
12802: PUSH
12803: LD_INT 5
12805: PUSH
12806: LD_OWVAR 67
12810: PLUS
12811: PPUSH
12812: LD_INT 10
12814: PPUSH
12815: CALL_OW 12
12819: PUSH
12820: LD_INT 10
12822: PUSH
12823: LD_INT 3
12825: PPUSH
12826: LD_INT 6
12828: PPUSH
12829: CALL_OW 12
12833: PUSH
12834: LD_INT 1
12836: PPUSH
12837: LD_INT 5
12839: PPUSH
12840: CALL_OW 12
12844: PUSH
12845: EMPTY
12846: LIST
12847: LIST
12848: LIST
12849: LIST
12850: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
12851: LD_ADDR_OWVAR 27
12855: PUSH
12856: LD_INT 1
12858: PPUSH
12859: LD_INT 2
12861: PPUSH
12862: CALL_OW 12
12866: ST_TO_ADDR
// RuEng1 = CreateHuman ;
12867: LD_ADDR_EXP 73
12871: PUSH
12872: CALL_OW 44
12876: ST_TO_ADDR
// hc_attr = [ 35 , 7 ] ;
12877: LD_ADDR_OWVAR 29
12881: PUSH
12882: LD_INT 35
12884: PUSH
12885: LD_INT 7
12887: PUSH
12888: EMPTY
12889: LIST
12890: LIST
12891: ST_TO_ADDR
// hc_basic_skills = [ 10 , 10 , rand ( 3 , 6 ) , rand ( 1 , 5 ) ] ;
12892: LD_ADDR_OWVAR 30
12896: PUSH
12897: LD_INT 10
12899: PUSH
12900: LD_INT 10
12902: PUSH
12903: LD_INT 3
12905: PPUSH
12906: LD_INT 6
12908: PPUSH
12909: CALL_OW 12
12913: PUSH
12914: LD_INT 1
12916: PPUSH
12917: LD_INT 5
12919: PPUSH
12920: CALL_OW 12
12924: PUSH
12925: EMPTY
12926: LIST
12927: LIST
12928: LIST
12929: LIST
12930: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
12931: LD_ADDR_OWVAR 27
12935: PUSH
12936: LD_INT 1
12938: PPUSH
12939: LD_INT 2
12941: PPUSH
12942: CALL_OW 12
12946: ST_TO_ADDR
// RuEng2 = CreateHuman ;
12947: LD_ADDR_EXP 74
12951: PUSH
12952: CALL_OW 44
12956: ST_TO_ADDR
// hc_attr = [ 10 , 12 ] ;
12957: LD_ADDR_OWVAR 29
12961: PUSH
12962: LD_INT 10
12964: PUSH
12965: LD_INT 12
12967: PUSH
12968: EMPTY
12969: LIST
12970: LIST
12971: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 + difficulty , 10 ) , 9 , rand ( 3 , 6 ) , rand ( 1 , 5 ) ] ;
12972: LD_ADDR_OWVAR 30
12976: PUSH
12977: LD_INT 4
12979: PUSH
12980: LD_OWVAR 67
12984: PLUS
12985: PPUSH
12986: LD_INT 10
12988: PPUSH
12989: CALL_OW 12
12993: PUSH
12994: LD_INT 9
12996: PUSH
12997: LD_INT 3
12999: PPUSH
13000: LD_INT 6
13002: PPUSH
13003: CALL_OW 12
13007: PUSH
13008: LD_INT 1
13010: PPUSH
13011: LD_INT 5
13013: PPUSH
13014: CALL_OW 12
13018: PUSH
13019: EMPTY
13020: LIST
13021: LIST
13022: LIST
13023: LIST
13024: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
13025: LD_ADDR_OWVAR 27
13029: PUSH
13030: LD_INT 1
13032: PPUSH
13033: LD_INT 2
13035: PPUSH
13036: CALL_OW 12
13040: ST_TO_ADDR
// RuEng3 = CreateHuman ;
13041: LD_ADDR_EXP 75
13045: PUSH
13046: CALL_OW 44
13050: ST_TO_ADDR
// hc_attr = [ 3 , 14 ] ;
13051: LD_ADDR_OWVAR 29
13055: PUSH
13056: LD_INT 3
13058: PUSH
13059: LD_INT 14
13061: PUSH
13062: EMPTY
13063: LIST
13064: LIST
13065: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 + difficulty , 10 ) , 9 , rand ( 3 , 6 ) , rand ( 1 , 5 ) ] ;
13066: LD_ADDR_OWVAR 30
13070: PUSH
13071: LD_INT 4
13073: PUSH
13074: LD_OWVAR 67
13078: PLUS
13079: PPUSH
13080: LD_INT 10
13082: PPUSH
13083: CALL_OW 12
13087: PUSH
13088: LD_INT 9
13090: PUSH
13091: LD_INT 3
13093: PPUSH
13094: LD_INT 6
13096: PPUSH
13097: CALL_OW 12
13101: PUSH
13102: LD_INT 1
13104: PPUSH
13105: LD_INT 5
13107: PPUSH
13108: CALL_OW 12
13112: PUSH
13113: EMPTY
13114: LIST
13115: LIST
13116: LIST
13117: LIST
13118: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
13119: LD_ADDR_OWVAR 27
13123: PUSH
13124: LD_INT 1
13126: PPUSH
13127: LD_INT 2
13129: PPUSH
13130: CALL_OW 12
13134: ST_TO_ADDR
// RuEng4 = CreateHuman ;
13135: LD_ADDR_EXP 76
13139: PUSH
13140: CALL_OW 44
13144: ST_TO_ADDR
// hc_attr = [ 15 , 10 ] ;
13145: LD_ADDR_OWVAR 29
13149: PUSH
13150: LD_INT 15
13152: PUSH
13153: LD_INT 10
13155: PUSH
13156: EMPTY
13157: LIST
13158: LIST
13159: ST_TO_ADDR
// hc_class = 3 ;
13160: LD_ADDR_OWVAR 28
13164: PUSH
13165: LD_INT 3
13167: ST_TO_ADDR
// hc_basic_skills = [ rand ( difficulty , 3 + difficulty ) , rand ( 3 , 6 ) , rand ( 7 , 10 ) , rand ( 1 , 5 ) ] ;
13168: LD_ADDR_OWVAR 30
13172: PUSH
13173: LD_OWVAR 67
13177: PPUSH
13178: LD_INT 3
13180: PUSH
13181: LD_OWVAR 67
13185: PLUS
13186: PPUSH
13187: CALL_OW 12
13191: PUSH
13192: LD_INT 3
13194: PPUSH
13195: LD_INT 6
13197: PPUSH
13198: CALL_OW 12
13202: PUSH
13203: LD_INT 7
13205: PPUSH
13206: LD_INT 10
13208: PPUSH
13209: CALL_OW 12
13213: PUSH
13214: LD_INT 1
13216: PPUSH
13217: LD_INT 5
13219: PPUSH
13220: CALL_OW 12
13224: PUSH
13225: EMPTY
13226: LIST
13227: LIST
13228: LIST
13229: LIST
13230: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
13231: LD_ADDR_OWVAR 27
13235: PUSH
13236: LD_INT 1
13238: PPUSH
13239: LD_INT 2
13241: PPUSH
13242: CALL_OW 12
13246: ST_TO_ADDR
// RuMech1 = CreateHuman ;
13247: LD_ADDR_EXP 69
13251: PUSH
13252: CALL_OW 44
13256: ST_TO_ADDR
// hc_basic_skills = [ rand ( difficulty , 3 + difficulty ) , rand ( 3 , 6 ) , rand ( 7 , 10 ) , rand ( 1 , 5 ) ] ;
13257: LD_ADDR_OWVAR 30
13261: PUSH
13262: LD_OWVAR 67
13266: PPUSH
13267: LD_INT 3
13269: PUSH
13270: LD_OWVAR 67
13274: PLUS
13275: PPUSH
13276: CALL_OW 12
13280: PUSH
13281: LD_INT 3
13283: PPUSH
13284: LD_INT 6
13286: PPUSH
13287: CALL_OW 12
13291: PUSH
13292: LD_INT 7
13294: PPUSH
13295: LD_INT 10
13297: PPUSH
13298: CALL_OW 12
13302: PUSH
13303: LD_INT 1
13305: PPUSH
13306: LD_INT 5
13308: PPUSH
13309: CALL_OW 12
13313: PUSH
13314: EMPTY
13315: LIST
13316: LIST
13317: LIST
13318: LIST
13319: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
13320: LD_ADDR_OWVAR 27
13324: PUSH
13325: LD_INT 1
13327: PPUSH
13328: LD_INT 2
13330: PPUSH
13331: CALL_OW 12
13335: ST_TO_ADDR
// RuMech2 = CreateHuman ;
13336: LD_ADDR_EXP 70
13340: PUSH
13341: CALL_OW 44
13345: ST_TO_ADDR
// hc_basic_skills = [ rand ( difficulty , 3 + difficulty ) , rand ( 3 , 6 ) , rand ( 7 , 10 ) , rand ( 1 , 5 ) ] ;
13346: LD_ADDR_OWVAR 30
13350: PUSH
13351: LD_OWVAR 67
13355: PPUSH
13356: LD_INT 3
13358: PUSH
13359: LD_OWVAR 67
13363: PLUS
13364: PPUSH
13365: CALL_OW 12
13369: PUSH
13370: LD_INT 3
13372: PPUSH
13373: LD_INT 6
13375: PPUSH
13376: CALL_OW 12
13380: PUSH
13381: LD_INT 7
13383: PPUSH
13384: LD_INT 10
13386: PPUSH
13387: CALL_OW 12
13391: PUSH
13392: LD_INT 1
13394: PPUSH
13395: LD_INT 5
13397: PPUSH
13398: CALL_OW 12
13402: PUSH
13403: EMPTY
13404: LIST
13405: LIST
13406: LIST
13407: LIST
13408: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
13409: LD_ADDR_OWVAR 27
13413: PUSH
13414: LD_INT 1
13416: PPUSH
13417: LD_INT 2
13419: PPUSH
13420: CALL_OW 12
13424: ST_TO_ADDR
// RuMech3 = CreateHuman ;
13425: LD_ADDR_EXP 71
13429: PUSH
13430: CALL_OW 44
13434: ST_TO_ADDR
// hc_basic_skills = [ rand ( difficulty , 3 + difficulty ) , rand ( 3 , 6 ) , rand ( 7 , 10 ) , rand ( 1 , 5 ) ] ;
13435: LD_ADDR_OWVAR 30
13439: PUSH
13440: LD_OWVAR 67
13444: PPUSH
13445: LD_INT 3
13447: PUSH
13448: LD_OWVAR 67
13452: PLUS
13453: PPUSH
13454: CALL_OW 12
13458: PUSH
13459: LD_INT 3
13461: PPUSH
13462: LD_INT 6
13464: PPUSH
13465: CALL_OW 12
13469: PUSH
13470: LD_INT 7
13472: PPUSH
13473: LD_INT 10
13475: PPUSH
13476: CALL_OW 12
13480: PUSH
13481: LD_INT 1
13483: PPUSH
13484: LD_INT 5
13486: PPUSH
13487: CALL_OW 12
13491: PUSH
13492: EMPTY
13493: LIST
13494: LIST
13495: LIST
13496: LIST
13497: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
13498: LD_ADDR_OWVAR 27
13502: PUSH
13503: LD_INT 1
13505: PPUSH
13506: LD_INT 2
13508: PPUSH
13509: CALL_OW 12
13513: ST_TO_ADDR
// RuMech4 = CreateHuman ;
13514: LD_ADDR_EXP 72
13518: PUSH
13519: CALL_OW 44
13523: ST_TO_ADDR
// hc_class = 4 ;
13524: LD_ADDR_OWVAR 28
13528: PUSH
13529: LD_INT 4
13531: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 + difficulty , 10 ) , rand ( 3 , 6 ) , rand ( 3 , 6 ) , 7 + difficulty ] ;
13532: LD_ADDR_OWVAR 30
13536: PUSH
13537: LD_INT 4
13539: PUSH
13540: LD_OWVAR 67
13544: PLUS
13545: PPUSH
13546: LD_INT 10
13548: PPUSH
13549: CALL_OW 12
13553: PUSH
13554: LD_INT 3
13556: PPUSH
13557: LD_INT 6
13559: PPUSH
13560: CALL_OW 12
13564: PUSH
13565: LD_INT 3
13567: PPUSH
13568: LD_INT 6
13570: PPUSH
13571: CALL_OW 12
13575: PUSH
13576: LD_INT 7
13578: PUSH
13579: LD_OWVAR 67
13583: PLUS
13584: PUSH
13585: EMPTY
13586: LIST
13587: LIST
13588: LIST
13589: LIST
13590: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
13591: LD_ADDR_OWVAR 27
13595: PUSH
13596: LD_INT 1
13598: PPUSH
13599: LD_INT 2
13601: PPUSH
13602: CALL_OW 12
13606: ST_TO_ADDR
// RuDoc1 = CreateHuman ;
13607: LD_ADDR_EXP 77
13611: PUSH
13612: CALL_OW 44
13616: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 + difficulty , 10 ) , rand ( 3 , 6 ) , rand ( 3 , 6 ) , 7 + difficulty ] ;
13617: LD_ADDR_OWVAR 30
13621: PUSH
13622: LD_INT 4
13624: PUSH
13625: LD_OWVAR 67
13629: PLUS
13630: PPUSH
13631: LD_INT 10
13633: PPUSH
13634: CALL_OW 12
13638: PUSH
13639: LD_INT 3
13641: PPUSH
13642: LD_INT 6
13644: PPUSH
13645: CALL_OW 12
13649: PUSH
13650: LD_INT 3
13652: PPUSH
13653: LD_INT 6
13655: PPUSH
13656: CALL_OW 12
13660: PUSH
13661: LD_INT 7
13663: PUSH
13664: LD_OWVAR 67
13668: PLUS
13669: PUSH
13670: EMPTY
13671: LIST
13672: LIST
13673: LIST
13674: LIST
13675: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
13676: LD_ADDR_OWVAR 27
13680: PUSH
13681: LD_INT 1
13683: PPUSH
13684: LD_INT 2
13686: PPUSH
13687: CALL_OW 12
13691: ST_TO_ADDR
// RuDoc2 = CreateHuman ;
13692: LD_ADDR_EXP 78
13696: PUSH
13697: CALL_OW 44
13701: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 + difficulty , 10 ) , rand ( 3 , 6 ) , rand ( 3 , 6 ) , 7 + difficulty ] ;
13702: LD_ADDR_OWVAR 30
13706: PUSH
13707: LD_INT 4
13709: PUSH
13710: LD_OWVAR 67
13714: PLUS
13715: PPUSH
13716: LD_INT 10
13718: PPUSH
13719: CALL_OW 12
13723: PUSH
13724: LD_INT 3
13726: PPUSH
13727: LD_INT 6
13729: PPUSH
13730: CALL_OW 12
13734: PUSH
13735: LD_INT 3
13737: PPUSH
13738: LD_INT 6
13740: PPUSH
13741: CALL_OW 12
13745: PUSH
13746: LD_INT 7
13748: PUSH
13749: LD_OWVAR 67
13753: PLUS
13754: PUSH
13755: EMPTY
13756: LIST
13757: LIST
13758: LIST
13759: LIST
13760: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
13761: LD_ADDR_OWVAR 27
13765: PUSH
13766: LD_INT 1
13768: PPUSH
13769: LD_INT 2
13771: PPUSH
13772: CALL_OW 12
13776: ST_TO_ADDR
// RuDoc3 = CreateHuman ;
13777: LD_ADDR_EXP 79
13781: PUSH
13782: CALL_OW 44
13786: ST_TO_ADDR
// wait ( 0 0$1 ) ;
13787: LD_INT 35
13789: PPUSH
13790: CALL_OW 67
// PlaceUnitArea ( Ru1 , RuSetupZone , false ) ;
13794: LD_EXP 60
13798: PPUSH
13799: LD_INT 7
13801: PPUSH
13802: LD_INT 0
13804: PPUSH
13805: CALL_OW 49
// PlaceUnitArea ( Ru2 , RuSetupZone , false ) ;
13809: LD_EXP 61
13813: PPUSH
13814: LD_INT 7
13816: PPUSH
13817: LD_INT 0
13819: PPUSH
13820: CALL_OW 49
// PlaceUnitArea ( Ru3 , RuSetupZone , false ) ;
13824: LD_EXP 62
13828: PPUSH
13829: LD_INT 7
13831: PPUSH
13832: LD_INT 0
13834: PPUSH
13835: CALL_OW 49
// PlaceUnitArea ( Ru4 , RuSetupZone , false ) ;
13839: LD_EXP 63
13843: PPUSH
13844: LD_INT 7
13846: PPUSH
13847: LD_INT 0
13849: PPUSH
13850: CALL_OW 49
// PlaceUnitArea ( Ru5 , RuSetupZone , false ) ;
13854: LD_EXP 64
13858: PPUSH
13859: LD_INT 7
13861: PPUSH
13862: LD_INT 0
13864: PPUSH
13865: CALL_OW 49
// PlaceUnitArea ( Ru6 , RuSetupZone , false ) ;
13869: LD_EXP 65
13873: PPUSH
13874: LD_INT 7
13876: PPUSH
13877: LD_INT 0
13879: PPUSH
13880: CALL_OW 49
// PlaceUnitArea ( Ru7 , RuSetupZone , false ) ;
13884: LD_EXP 66
13888: PPUSH
13889: LD_INT 7
13891: PPUSH
13892: LD_INT 0
13894: PPUSH
13895: CALL_OW 49
// PlaceUnitArea ( Ru8 , RuSetupZone , false ) ;
13899: LD_EXP 67
13903: PPUSH
13904: LD_INT 7
13906: PPUSH
13907: LD_INT 0
13909: PPUSH
13910: CALL_OW 49
// PlaceUnitArea ( RuBoss , RuSetupZone , false ) ;
13914: LD_EXP 68
13918: PPUSH
13919: LD_INT 7
13921: PPUSH
13922: LD_INT 0
13924: PPUSH
13925: CALL_OW 49
// PlaceUnitArea ( RuEng1 , RuSetupZone , false ) ;
13929: LD_EXP 73
13933: PPUSH
13934: LD_INT 7
13936: PPUSH
13937: LD_INT 0
13939: PPUSH
13940: CALL_OW 49
// PlaceUnitArea ( RuEng2 , RuSetupZone , false ) ;
13944: LD_EXP 74
13948: PPUSH
13949: LD_INT 7
13951: PPUSH
13952: LD_INT 0
13954: PPUSH
13955: CALL_OW 49
// PlaceUnitArea ( RuEng3 , RuSetupZone , false ) ;
13959: LD_EXP 75
13963: PPUSH
13964: LD_INT 7
13966: PPUSH
13967: LD_INT 0
13969: PPUSH
13970: CALL_OW 49
// PlaceUnitArea ( RuEng4 , RuSetupZone , false ) ;
13974: LD_EXP 76
13978: PPUSH
13979: LD_INT 7
13981: PPUSH
13982: LD_INT 0
13984: PPUSH
13985: CALL_OW 49
// PlaceUnitArea ( RuMech1 , RuSetupZone , false ) ;
13989: LD_EXP 69
13993: PPUSH
13994: LD_INT 7
13996: PPUSH
13997: LD_INT 0
13999: PPUSH
14000: CALL_OW 49
// PlaceUnitArea ( RuMech2 , RuSetupZone , false ) ;
14004: LD_EXP 70
14008: PPUSH
14009: LD_INT 7
14011: PPUSH
14012: LD_INT 0
14014: PPUSH
14015: CALL_OW 49
// PlaceUnitArea ( RuMech3 , RuSetupZone , false ) ;
14019: LD_EXP 71
14023: PPUSH
14024: LD_INT 7
14026: PPUSH
14027: LD_INT 0
14029: PPUSH
14030: CALL_OW 49
// PlaceUnitArea ( RuMech4 , RuSetupZone , false ) ;
14034: LD_EXP 72
14038: PPUSH
14039: LD_INT 7
14041: PPUSH
14042: LD_INT 0
14044: PPUSH
14045: CALL_OW 49
// PlaceUnitArea ( RuDoc1 , RuSetupZone , false ) ;
14049: LD_EXP 77
14053: PPUSH
14054: LD_INT 7
14056: PPUSH
14057: LD_INT 0
14059: PPUSH
14060: CALL_OW 49
// PlaceUnitArea ( RuDoc2 , RuSetupZone , false ) ;
14064: LD_EXP 78
14068: PPUSH
14069: LD_INT 7
14071: PPUSH
14072: LD_INT 0
14074: PPUSH
14075: CALL_OW 49
// PlaceUnitArea ( RuDoc3 , RuSetupZone , false ) ;
14079: LD_EXP 79
14083: PPUSH
14084: LD_INT 7
14086: PPUSH
14087: LD_INT 0
14089: PPUSH
14090: CALL_OW 49
// end ;
14094: END
// every 0 0$02 do
14095: GO 14097
14097: DISABLE
// begin uc_nation = 3 ;
14098: LD_ADDR_OWVAR 21
14102: PUSH
14103: LD_INT 3
14105: ST_TO_ADDR
// uc_side = 3 ;
14106: LD_ADDR_OWVAR 20
14110: PUSH
14111: LD_INT 3
14113: ST_TO_ADDR
// bc_level = 3 + ( 4 * difficulty ) ;
14114: LD_ADDR_OWVAR 43
14118: PUSH
14119: LD_INT 3
14121: PUSH
14122: LD_INT 4
14124: PUSH
14125: LD_OWVAR 67
14129: MUL
14130: PLUS
14131: ST_TO_ADDR
// bc_type = 1 ;
14132: LD_ADDR_OWVAR 42
14136: PUSH
14137: LD_INT 1
14139: ST_TO_ADDR
// RedBase = CreateAndPlaceBuildingXYD ( 213 , 140 , 5 ) ;
14140: LD_ADDR_EXP 54
14144: PUSH
14145: LD_INT 213
14147: PPUSH
14148: LD_INT 140
14150: PPUSH
14151: LD_INT 5
14153: PPUSH
14154: CALL_OW 47
14158: ST_TO_ADDR
// bc_type = b_lab_full ;
14159: LD_ADDR_OWVAR 42
14163: PUSH
14164: LD_INT 8
14166: ST_TO_ADDR
// bc_kind1 = b_lab_weapon ;
14167: LD_ADDR_OWVAR 44
14171: PUSH
14172: LD_INT 10
14174: ST_TO_ADDR
// bc_kind2 = b_lab_computer ;
14175: LD_ADDR_OWVAR 45
14179: PUSH
14180: LD_INT 12
14182: ST_TO_ADDR
// RuLab1 = CreateAndPlaceBuildingXYD ( 214 , 146 , 4 ) ;
14183: LD_ADDR_EXP 56
14187: PUSH
14188: LD_INT 214
14190: PPUSH
14191: LD_INT 146
14193: PPUSH
14194: LD_INT 4
14196: PPUSH
14197: CALL_OW 47
14201: ST_TO_ADDR
// bc_kind1 = b_lab_spacetime ;
14202: LD_ADDR_OWVAR 44
14206: PUSH
14207: LD_INT 14
14209: ST_TO_ADDR
// bc_kind2 = b_lab_siberium ;
14210: LD_ADDR_OWVAR 45
14214: PUSH
14215: LD_INT 11
14217: ST_TO_ADDR
// RuLab2 = CreateAndPlaceBuildingXYD ( 224 , 141 , 3 ) ;
14218: LD_ADDR_EXP 57
14222: PUSH
14223: LD_INT 224
14225: PPUSH
14226: LD_INT 141
14228: PPUSH
14229: LD_INT 3
14231: PPUSH
14232: CALL_OW 47
14236: ST_TO_ADDR
// bc_type = b_factory ;
14237: LD_ADDR_OWVAR 42
14241: PUSH
14242: LD_INT 3
14244: ST_TO_ADDR
// RuFac1 = CreateAndPlaceBuildingXYD ( 223 , 152 , 4 ) ;
14245: LD_ADDR_EXP 58
14249: PUSH
14250: LD_INT 223
14252: PPUSH
14253: LD_INT 152
14255: PPUSH
14256: LD_INT 4
14258: PPUSH
14259: CALL_OW 47
14263: ST_TO_ADDR
// RuFac2 = CreateAndPlaceBuildingXYD ( 206 , 152 , 0 ) ;
14264: LD_ADDR_EXP 59
14268: PUSH
14269: LD_INT 206
14271: PPUSH
14272: LD_INT 152
14274: PPUSH
14275: LD_INT 0
14277: PPUSH
14278: CALL_OW 47
14282: ST_TO_ADDR
// bc_type = b_barracks ;
14283: LD_ADDR_OWVAR 42
14287: PUSH
14288: LD_INT 5
14290: ST_TO_ADDR
// RuBar = CreateAndPlaceBuildingXYD ( 198 , 123 , 2 ) ;
14291: LD_ADDR_EXP 53
14295: PUSH
14296: LD_INT 198
14298: PPUSH
14299: LD_INT 123
14301: PPUSH
14302: LD_INT 2
14304: PPUSH
14305: CALL_OW 47
14309: ST_TO_ADDR
// bc_level = 4 + ( 2 * difficulty ) ;
14310: LD_ADDR_OWVAR 43
14314: PUSH
14315: LD_INT 4
14317: PUSH
14318: LD_INT 2
14320: PUSH
14321: LD_OWVAR 67
14325: MUL
14326: PLUS
14327: ST_TO_ADDR
// bc_type = b_bunker ;
14328: LD_ADDR_OWVAR 42
14332: PUSH
14333: LD_INT 32
14335: ST_TO_ADDR
// RuGun1 = CreateAndPlaceBuildingXYD ( 197 , 150 , 1 ) ;
14336: LD_ADDR_EXP 47
14340: PUSH
14341: LD_INT 197
14343: PPUSH
14344: LD_INT 150
14346: PPUSH
14347: LD_INT 1
14349: PPUSH
14350: CALL_OW 47
14354: ST_TO_ADDR
// RuGun2 = CreateAndPlaceBuildingXYD ( 195 , 142 , 2 ) ;
14355: LD_ADDR_EXP 48
14359: PUSH
14360: LD_INT 195
14362: PPUSH
14363: LD_INT 142
14365: PPUSH
14366: LD_INT 2
14368: PPUSH
14369: CALL_OW 47
14373: ST_TO_ADDR
// RuGun3 = CreateAndPlaceBuildingXYD ( 193 , 119 , 2 ) ;
14374: LD_ADDR_EXP 49
14378: PUSH
14379: LD_INT 193
14381: PPUSH
14382: LD_INT 119
14384: PPUSH
14385: LD_INT 2
14387: PPUSH
14388: CALL_OW 47
14392: ST_TO_ADDR
// RuGun4 = CreateAndPlaceBuildingXYD ( 192 , 116 , 2 ) ;
14393: LD_ADDR_EXP 50
14397: PUSH
14398: LD_INT 192
14400: PPUSH
14401: LD_INT 116
14403: PPUSH
14404: LD_INT 2
14406: PPUSH
14407: CALL_OW 47
14411: ST_TO_ADDR
// RuGun5 = CreateAndPlaceBuildingXYD ( 202 , 112 , 3 ) ;
14412: LD_ADDR_EXP 51
14416: PUSH
14417: LD_INT 202
14419: PPUSH
14420: LD_INT 112
14422: PPUSH
14423: LD_INT 3
14425: PPUSH
14426: CALL_OW 47
14430: ST_TO_ADDR
// RuGun6 = CreateAndPlaceBuildingXYD ( 205 , 112 , 2 ) ;
14431: LD_ADDR_EXP 52
14435: PUSH
14436: LD_INT 205
14438: PPUSH
14439: LD_INT 112
14441: PPUSH
14442: LD_INT 2
14444: PPUSH
14445: CALL_OW 47
14449: ST_TO_ADDR
// bc_level = 1 + ( 2 * difficulty ) ;
14450: LD_ADDR_OWVAR 43
14454: PUSH
14455: LD_INT 1
14457: PUSH
14458: LD_INT 2
14460: PUSH
14461: LD_OWVAR 67
14465: MUL
14466: PLUS
14467: ST_TO_ADDR
// bc_type = b_turret ;
14468: LD_ADDR_OWVAR 42
14472: PUSH
14473: LD_INT 33
14475: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 205 , 115 , 2 ) ;
14476: LD_ADDR_LOC 36
14480: PUSH
14481: LD_INT 205
14483: PPUSH
14484: LD_INT 115
14486: PPUSH
14487: LD_INT 2
14489: PPUSH
14490: CALL_OW 47
14494: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 196 , 118 , 1 ) ;
14495: LD_ADDR_LOC 36
14499: PUSH
14500: LD_INT 196
14502: PPUSH
14503: LD_INT 118
14505: PPUSH
14506: LD_INT 1
14508: PPUSH
14509: CALL_OW 47
14513: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 196 , 146 , 1 ) ;
14514: LD_ADDR_LOC 36
14518: PUSH
14519: LD_INT 196
14521: PPUSH
14522: LD_INT 146
14524: PPUSH
14525: LD_INT 1
14527: PPUSH
14528: CALL_OW 47
14532: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 209 , 118 , 2 ) ;
14533: LD_ADDR_LOC 36
14537: PUSH
14538: LD_INT 209
14540: PPUSH
14541: LD_INT 118
14543: PPUSH
14544: LD_INT 2
14546: PPUSH
14547: CALL_OW 47
14551: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 204 , 117 , 2 ) ;
14552: LD_ADDR_LOC 36
14556: PUSH
14557: LD_INT 204
14559: PPUSH
14560: LD_INT 117
14562: PPUSH
14563: LD_INT 2
14565: PPUSH
14566: CALL_OW 47
14570: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 194 , 137 , 2 ) ;
14571: LD_ADDR_LOC 36
14575: PUSH
14576: LD_INT 194
14578: PPUSH
14579: LD_INT 137
14581: PPUSH
14582: LD_INT 2
14584: PPUSH
14585: CALL_OW 47
14589: ST_TO_ADDR
// AutoGun = CreateAndPlaceBuildingXYD ( 204 , 157 , 5 ) ;
14590: LD_ADDR_LOC 36
14594: PUSH
14595: LD_INT 204
14597: PPUSH
14598: LD_INT 157
14600: PPUSH
14601: LD_INT 5
14603: PPUSH
14604: CALL_OW 47
14608: ST_TO_ADDR
// bc_level = 1 ;
14609: LD_ADDR_OWVAR 43
14613: PUSH
14614: LD_INT 1
14616: ST_TO_ADDR
// bc_type = b_siberite_mine ;
14617: LD_ADDR_OWVAR 42
14621: PUSH
14622: LD_INT 30
14624: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 213 , 157 , rand ( 0 , 5 ) ) ;
14625: LD_ADDR_LOC 35
14629: PUSH
14630: LD_INT 213
14632: PPUSH
14633: LD_INT 157
14635: PPUSH
14636: LD_INT 0
14638: PPUSH
14639: LD_INT 5
14641: PPUSH
14642: CALL_OW 12
14646: PPUSH
14647: CALL_OW 47
14651: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 230 , 145 , rand ( 0 , 5 ) ) ;
14652: LD_ADDR_LOC 35
14656: PUSH
14657: LD_INT 230
14659: PPUSH
14660: LD_INT 145
14662: PPUSH
14663: LD_INT 0
14665: PPUSH
14666: LD_INT 5
14668: PPUSH
14669: CALL_OW 12
14673: PPUSH
14674: CALL_OW 47
14678: ST_TO_ADDR
// bc_type = b_siberite_power ;
14679: LD_ADDR_OWVAR 42
14683: PUSH
14684: LD_INT 28
14686: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 230 , 148 , rand ( 0 , 5 ) ) ;
14687: LD_ADDR_LOC 35
14691: PUSH
14692: LD_INT 230
14694: PPUSH
14695: LD_INT 148
14697: PPUSH
14698: LD_INT 0
14700: PPUSH
14701: LD_INT 5
14703: PPUSH
14704: CALL_OW 12
14708: PPUSH
14709: CALL_OW 47
14713: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 220 , 127 , rand ( 0 , 5 ) ) ;
14714: LD_ADDR_LOC 35
14718: PUSH
14719: LD_INT 220
14721: PPUSH
14722: LD_INT 127
14724: PPUSH
14725: LD_INT 0
14727: PPUSH
14728: LD_INT 5
14730: PPUSH
14731: CALL_OW 12
14735: PPUSH
14736: CALL_OW 47
14740: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 202 , 136 , rand ( 0 , 5 ) ) ;
14741: LD_ADDR_LOC 35
14745: PUSH
14746: LD_INT 202
14748: PPUSH
14749: LD_INT 136
14751: PPUSH
14752: LD_INT 0
14754: PPUSH
14755: LD_INT 5
14757: PPUSH
14758: CALL_OW 12
14762: PPUSH
14763: CALL_OW 47
14767: ST_TO_ADDR
// MiscUnit = CreateAndPlaceBuildingXYD ( 199 , 141 , rand ( 0 , 5 ) ) ;
14768: LD_ADDR_LOC 35
14772: PUSH
14773: LD_INT 199
14775: PPUSH
14776: LD_INT 141
14778: PPUSH
14779: LD_INT 0
14781: PPUSH
14782: LD_INT 5
14784: PPUSH
14785: CALL_OW 12
14789: PPUSH
14790: CALL_OW 47
14794: ST_TO_ADDR
// bc_type = b_teleport ;
14795: LD_ADDR_OWVAR 42
14799: PUSH
14800: LD_INT 34
14802: ST_TO_ADDR
// RuTele = CreateAndPlaceBuildingXYD ( 201 , 139 , 5 ) ;
14803: LD_ADDR_EXP 55
14807: PUSH
14808: LD_INT 201
14810: PPUSH
14811: LD_INT 139
14813: PPUSH
14814: LD_INT 5
14816: PPUSH
14817: CALL_OW 47
14821: ST_TO_ADDR
// TeleportExit ( RuTele , 115 , 110 ) ;
14822: LD_EXP 55
14826: PPUSH
14827: LD_INT 115
14829: PPUSH
14830: LD_INT 110
14832: PPUSH
14833: CALL_OW 243
// wait ( 0 0$0.5 ) ;
14837: LD_INT 18
14839: PPUSH
14840: CALL_OW 67
// SetResourceType ( GetBase ( RedBase ) , mat_cans , 5500 + ( 2500 * difficulty ) ) ;
14844: LD_EXP 54
14848: PPUSH
14849: CALL_OW 274
14853: PPUSH
14854: LD_INT 1
14856: PPUSH
14857: LD_INT 5500
14859: PUSH
14860: LD_INT 2500
14862: PUSH
14863: LD_OWVAR 67
14867: MUL
14868: PLUS
14869: PPUSH
14870: CALL_OW 277
// SetResourceType ( GetBase ( RedBase ) , mat_siberit , 100 ) ;
14874: LD_EXP 54
14878: PPUSH
14879: CALL_OW 274
14883: PPUSH
14884: LD_INT 3
14886: PPUSH
14887: LD_INT 100
14889: PPUSH
14890: CALL_OW 277
// wait ( 0 0$0.5 ) ;
14894: LD_INT 18
14896: PPUSH
14897: CALL_OW 67
// RuPlaceWeapons ;
14901: CALL 14906 0 0
// end ;
14905: END
// function RuPlaceWeapons ( ) ; begin
14906: LD_INT 0
14908: PPUSH
// AddComPlaceWeapon ( [ RuGun1 , RuGun2 , RuGun3 ] , us_heavy_gun ) ;
14909: LD_EXP 47
14913: PUSH
14914: LD_EXP 48
14918: PUSH
14919: LD_EXP 49
14923: PUSH
14924: EMPTY
14925: LIST
14926: LIST
14927: LIST
14928: PPUSH
14929: LD_INT 6
14931: PPUSH
14932: CALL_OW 208
// wait ( 0 0$30 ) ;
14936: LD_INT 1050
14938: PPUSH
14939: CALL_OW 67
// AddComPlaceWeapon ( [ RuGun4 , RuGun5 , RuGun6 ] , us_heavy_gun ) ;
14943: LD_EXP 50
14947: PUSH
14948: LD_EXP 51
14952: PUSH
14953: LD_EXP 52
14957: PUSH
14958: EMPTY
14959: LIST
14960: LIST
14961: LIST
14962: PPUSH
14963: LD_INT 6
14965: PPUSH
14966: CALL_OW 208
// wait ( 0 0$30 ) ;
14970: LD_INT 1050
14972: PPUSH
14973: CALL_OW 67
// PlaceWeaponsAutoGun ( ) ;
14977: CALL 14986 0 0
// end ;
14981: LD_VAR 0 1
14985: RET
// var TurretList , Turret , i ; function PlaceWeaponsAutogun ( ) ; begin
14986: LD_INT 0
14988: PPUSH
// i = 0 ;
14989: LD_ADDR_LOC 39
14993: PUSH
14994: LD_INT 0
14996: ST_TO_ADDR
// TurretList = filterAllUnits ( [ [ f_side , 3 ] , [ f_btype = b_turret ] , [ f_bWeapon , 0 ] ] ) ;
14997: LD_ADDR_LOC 37
15001: PUSH
15002: LD_INT 22
15004: PUSH
15005: LD_INT 3
15007: PUSH
15008: EMPTY
15009: LIST
15010: LIST
15011: PUSH
15012: LD_INT 30
15014: PUSH
15015: LD_INT 33
15017: EQUAL
15018: PUSH
15019: EMPTY
15020: LIST
15021: PUSH
15022: LD_INT 35
15024: PUSH
15025: LD_INT 0
15027: PUSH
15028: EMPTY
15029: LIST
15030: LIST
15031: PUSH
15032: EMPTY
15033: LIST
15034: LIST
15035: LIST
15036: PPUSH
15037: CALL_OW 69
15041: ST_TO_ADDR
// for Turret in TurretList do
15042: LD_ADDR_LOC 38
15046: PUSH
15047: LD_LOC 37
15051: PUSH
15052: FOR_IN
15053: IFFALSE 15163
// if GetBtype ( Turret ) = b_turret and GetBWeapon ( Turret ) = 0 and i < 4 then
15055: LD_LOC 38
15059: PPUSH
15060: CALL_OW 266
15064: PUSH
15065: LD_INT 33
15067: EQUAL
15068: PUSH
15069: LD_LOC 38
15073: PPUSH
15074: CALL_OW 269
15078: PUSH
15079: LD_INT 0
15081: EQUAL
15082: AND
15083: PUSH
15084: LD_LOC 39
15088: PUSH
15089: LD_INT 4
15091: LESS
15092: AND
15093: IFFALSE 15161
// begin begin if isInArea ( Turret , ApplyRocket ) then
15095: LD_LOC 38
15099: PPUSH
15100: LD_INT 6
15102: PPUSH
15103: CALL_OW 308
15107: IFFALSE 15121
// AddComPlaceWeapon ( Turret , ru_time_lapser ) ;
15109: LD_LOC 38
15113: PPUSH
15114: LD_INT 49
15116: PPUSH
15117: CALL_OW 208
// if isInArea ( Turret , ApplyLapser ) then
15121: LD_LOC 38
15125: PPUSH
15126: LD_INT 5
15128: PPUSH
15129: CALL_OW 308
15133: IFFALSE 15147
// AddComPlaceWeapon ( Turret , ru_rocket ) ;
15135: LD_LOC 38
15139: PPUSH
15140: LD_INT 47
15142: PPUSH
15143: CALL_OW 208
// end ; i = i + 1 ;
15147: LD_ADDR_LOC 39
15151: PUSH
15152: LD_LOC 39
15156: PUSH
15157: LD_INT 1
15159: PLUS
15160: ST_TO_ADDR
// end ;
15161: GO 15052
15163: POP
15164: POP
// wait ( 1 1$30 ) ;
15165: LD_INT 3150
15167: PPUSH
15168: CALL_OW 67
// TurretList = filterAllUnits ( [ [ f_side , 1 ] , [ f_btype = b_turret ] , [ f_bWeapon , 0 ] ] ) ;
15172: LD_ADDR_LOC 37
15176: PUSH
15177: LD_INT 22
15179: PUSH
15180: LD_INT 1
15182: PUSH
15183: EMPTY
15184: LIST
15185: LIST
15186: PUSH
15187: LD_INT 30
15189: PUSH
15190: LD_INT 33
15192: EQUAL
15193: PUSH
15194: EMPTY
15195: LIST
15196: PUSH
15197: LD_INT 35
15199: PUSH
15200: LD_INT 0
15202: PUSH
15203: EMPTY
15204: LIST
15205: LIST
15206: PUSH
15207: EMPTY
15208: LIST
15209: LIST
15210: LIST
15211: PPUSH
15212: CALL_OW 69
15216: ST_TO_ADDR
// if not TurretList = 0 then
15217: LD_LOC 37
15221: PUSH
15222: LD_INT 0
15224: EQUAL
15225: NOT
15226: IFFALSE 15232
// PlaceWeaponsAutogun ( ) ;
15228: CALL 14986 0 0
// end ; end_of_file
15232: LD_VAR 0 1
15236: RET
// every 0 0$3 do
15237: GO 15239
15239: DISABLE
// begin enable ;
15240: ENABLE
// if IsOK ( redBase ) then
15241: LD_EXP 54
15245: PPUSH
15246: CALL_OW 302
15250: IFFALSE 15912
// begin if IsOK ( RuGun1 ) and GetLives ( Ru1 ) > 800 and IsBusy ( Ru1 ) = 0 then
15252: LD_EXP 47
15256: PPUSH
15257: CALL_OW 302
15261: PUSH
15262: LD_EXP 60
15266: PPUSH
15267: CALL_OW 256
15271: PUSH
15272: LD_INT 800
15274: GREATER
15275: AND
15276: PUSH
15277: LD_EXP 60
15281: PPUSH
15282: CALL_OW 315
15286: PUSH
15287: LD_INT 0
15289: EQUAL
15290: AND
15291: IFFALSE 15307
// comEnterUnit ( Ru1 , RuGun1 ) ;
15293: LD_EXP 60
15297: PPUSH
15298: LD_EXP 47
15302: PPUSH
15303: CALL_OW 120
// if IsOK ( RuGun2 ) and GetLives ( Ru2 ) > 800 and IsBusy ( Ru2 ) = 0 then
15307: LD_EXP 48
15311: PPUSH
15312: CALL_OW 302
15316: PUSH
15317: LD_EXP 61
15321: PPUSH
15322: CALL_OW 256
15326: PUSH
15327: LD_INT 800
15329: GREATER
15330: AND
15331: PUSH
15332: LD_EXP 61
15336: PPUSH
15337: CALL_OW 315
15341: PUSH
15342: LD_INT 0
15344: EQUAL
15345: AND
15346: IFFALSE 15362
// comEnterUnit ( Ru2 , RuGun2 ) ;
15348: LD_EXP 61
15352: PPUSH
15353: LD_EXP 48
15357: PPUSH
15358: CALL_OW 120
// if IsOK ( RuGun3 ) and GetLives ( Ru3 ) > 800 and IsBusy ( Ru3 ) = 0 then
15362: LD_EXP 49
15366: PPUSH
15367: CALL_OW 302
15371: PUSH
15372: LD_EXP 62
15376: PPUSH
15377: CALL_OW 256
15381: PUSH
15382: LD_INT 800
15384: GREATER
15385: AND
15386: PUSH
15387: LD_EXP 62
15391: PPUSH
15392: CALL_OW 315
15396: PUSH
15397: LD_INT 0
15399: EQUAL
15400: AND
15401: IFFALSE 15417
// comEnterUnit ( Ru3 , RuGun3 ) ;
15403: LD_EXP 62
15407: PPUSH
15408: LD_EXP 49
15412: PPUSH
15413: CALL_OW 120
// if IsOK ( RuGun4 ) and GetLives ( Ru4 ) > 800 and IsBusy ( Ru4 ) = 0 then
15417: LD_EXP 50
15421: PPUSH
15422: CALL_OW 302
15426: PUSH
15427: LD_EXP 63
15431: PPUSH
15432: CALL_OW 256
15436: PUSH
15437: LD_INT 800
15439: GREATER
15440: AND
15441: PUSH
15442: LD_EXP 63
15446: PPUSH
15447: CALL_OW 315
15451: PUSH
15452: LD_INT 0
15454: EQUAL
15455: AND
15456: IFFALSE 15472
// comEnterUnit ( Ru4 , RuGun4 ) ;
15458: LD_EXP 63
15462: PPUSH
15463: LD_EXP 50
15467: PPUSH
15468: CALL_OW 120
// if IsOK ( RuGun5 ) and GetLives ( Ru5 ) > 800 and IsBusy ( Ru5 ) = 0 then
15472: LD_EXP 51
15476: PPUSH
15477: CALL_OW 302
15481: PUSH
15482: LD_EXP 64
15486: PPUSH
15487: CALL_OW 256
15491: PUSH
15492: LD_INT 800
15494: GREATER
15495: AND
15496: PUSH
15497: LD_EXP 64
15501: PPUSH
15502: CALL_OW 315
15506: PUSH
15507: LD_INT 0
15509: EQUAL
15510: AND
15511: IFFALSE 15527
// comEnterUnit ( Ru5 , RuGun5 ) ;
15513: LD_EXP 64
15517: PPUSH
15518: LD_EXP 51
15522: PPUSH
15523: CALL_OW 120
// if IsOK ( RuGun6 ) and GetLives ( Ru6 ) > 800 and IsBusy ( Ru6 ) = 0 then
15527: LD_EXP 52
15531: PPUSH
15532: CALL_OW 302
15536: PUSH
15537: LD_EXP 65
15541: PPUSH
15542: CALL_OW 256
15546: PUSH
15547: LD_INT 800
15549: GREATER
15550: AND
15551: PUSH
15552: LD_EXP 65
15556: PPUSH
15557: CALL_OW 315
15561: PUSH
15562: LD_INT 0
15564: EQUAL
15565: AND
15566: IFFALSE 15582
// comEnterUnit ( Ru6 , RuGun6 ) ;
15568: LD_EXP 65
15572: PPUSH
15573: LD_EXP 52
15577: PPUSH
15578: CALL_OW 120
// if IsOK ( RuBar ) and GetLives ( Ru7 ) > 800 and IsBusy ( Ru7 ) = 0 then
15582: LD_EXP 53
15586: PPUSH
15587: CALL_OW 302
15591: PUSH
15592: LD_EXP 66
15596: PPUSH
15597: CALL_OW 256
15601: PUSH
15602: LD_INT 800
15604: GREATER
15605: AND
15606: PUSH
15607: LD_EXP 66
15611: PPUSH
15612: CALL_OW 315
15616: PUSH
15617: LD_INT 0
15619: EQUAL
15620: AND
15621: IFFALSE 15637
// comEnterUnit ( Ru7 , RuBar ) ;
15623: LD_EXP 66
15627: PPUSH
15628: LD_EXP 53
15632: PPUSH
15633: CALL_OW 120
// if IsOK ( RuBar ) and GetLives ( Ru8 ) > 800 and IsBusy ( Ru8 ) = 0 then
15637: LD_EXP 53
15641: PPUSH
15642: CALL_OW 302
15646: PUSH
15647: LD_EXP 67
15651: PPUSH
15652: CALL_OW 256
15656: PUSH
15657: LD_INT 800
15659: GREATER
15660: AND
15661: PUSH
15662: LD_EXP 67
15666: PPUSH
15667: CALL_OW 315
15671: PUSH
15672: LD_INT 0
15674: EQUAL
15675: AND
15676: IFFALSE 15692
// comEnterUnit ( Ru8 , RuBar ) ;
15678: LD_EXP 67
15682: PPUSH
15683: LD_EXP 53
15687: PPUSH
15688: CALL_OW 120
// if isOK ( RuFac1 ) and GetLives ( RuMEch1 ) > 800 and IsBusy ( RuMech1 ) = 0 then
15692: LD_EXP 58
15696: PPUSH
15697: CALL_OW 302
15701: PUSH
15702: LD_EXP 69
15706: PPUSH
15707: CALL_OW 256
15711: PUSH
15712: LD_INT 800
15714: GREATER
15715: AND
15716: PUSH
15717: LD_EXP 69
15721: PPUSH
15722: CALL_OW 315
15726: PUSH
15727: LD_INT 0
15729: EQUAL
15730: AND
15731: IFFALSE 15747
// comEnterUnit ( RuMech1 , RuFac1 ) ;
15733: LD_EXP 69
15737: PPUSH
15738: LD_EXP 58
15742: PPUSH
15743: CALL_OW 120
// if isOK ( RuFac1 ) and GetLives ( RuMEch2 ) > 800 and IsBusy ( RuMech2 ) = 0 then
15747: LD_EXP 58
15751: PPUSH
15752: CALL_OW 302
15756: PUSH
15757: LD_EXP 70
15761: PPUSH
15762: CALL_OW 256
15766: PUSH
15767: LD_INT 800
15769: GREATER
15770: AND
15771: PUSH
15772: LD_EXP 70
15776: PPUSH
15777: CALL_OW 315
15781: PUSH
15782: LD_INT 0
15784: EQUAL
15785: AND
15786: IFFALSE 15802
// comEnterUnit ( RuMech2 , RuFac1 ) ;
15788: LD_EXP 70
15792: PPUSH
15793: LD_EXP 58
15797: PPUSH
15798: CALL_OW 120
// if isOK ( RuFac2 ) and GetLives ( RuMEch3 ) > 800 and IsBusy ( RuMech3 ) = 0 then
15802: LD_EXP 59
15806: PPUSH
15807: CALL_OW 302
15811: PUSH
15812: LD_EXP 71
15816: PPUSH
15817: CALL_OW 256
15821: PUSH
15822: LD_INT 800
15824: GREATER
15825: AND
15826: PUSH
15827: LD_EXP 71
15831: PPUSH
15832: CALL_OW 315
15836: PUSH
15837: LD_INT 0
15839: EQUAL
15840: AND
15841: IFFALSE 15857
// comEnterUnit ( RuMech3 , RuFac2 ) ;
15843: LD_EXP 71
15847: PPUSH
15848: LD_EXP 59
15852: PPUSH
15853: CALL_OW 120
// if isOK ( RuFac2 ) and GetLives ( RuMEch4 ) > 800 and IsBusy ( RuMech4 ) = 0 then
15857: LD_EXP 59
15861: PPUSH
15862: CALL_OW 302
15866: PUSH
15867: LD_EXP 72
15871: PPUSH
15872: CALL_OW 256
15876: PUSH
15877: LD_INT 800
15879: GREATER
15880: AND
15881: PUSH
15882: LD_EXP 72
15886: PPUSH
15887: CALL_OW 315
15891: PUSH
15892: LD_INT 0
15894: EQUAL
15895: AND
15896: IFFALSE 15912
// comEnterUnit ( RuMech4 , RuFac2 ) ;
15898: LD_EXP 72
15902: PPUSH
15903: LD_EXP 59
15907: PPUSH
15908: CALL_OW 120
// end ; end ;
15912: END
// var Rulist , RuHeal , RuNeedsHeal , RuHealUrgent ; every 0 0$01 trigger not ( isDead ( RuDoc1 ) and isDead ( RuDoc2 ) and isDead ( RuDoc3 ) ) do
15913: LD_EXP 77
15917: PPUSH
15918: CALL_OW 301
15922: PUSH
15923: LD_EXP 78
15927: PPUSH
15928: CALL_OW 301
15932: AND
15933: PUSH
15934: LD_EXP 79
15938: PPUSH
15939: CALL_OW 301
15943: AND
15944: NOT
15945: IFFALSE 16474
15947: GO 15949
15949: DISABLE
// begin enable ;
15950: ENABLE
// RuNeedsHeal = 0 ;
15951: LD_ADDR_LOC 42
15955: PUSH
15956: LD_INT 0
15958: ST_TO_ADDR
// RuList = FilterAllUnits ( [ [ f_side , 3 ] , [ f_not , [ f_class , 4 ] ] , [ f_or , [ f_sex , 1 ] , [ f_sex , 2 ] ] ] ) ;
15959: LD_ADDR_LOC 40
15963: PUSH
15964: LD_INT 22
15966: PUSH
15967: LD_INT 3
15969: PUSH
15970: EMPTY
15971: LIST
15972: LIST
15973: PUSH
15974: LD_INT 3
15976: PUSH
15977: LD_INT 25
15979: PUSH
15980: LD_INT 4
15982: PUSH
15983: EMPTY
15984: LIST
15985: LIST
15986: PUSH
15987: EMPTY
15988: LIST
15989: LIST
15990: PUSH
15991: LD_INT 2
15993: PUSH
15994: LD_INT 26
15996: PUSH
15997: LD_INT 1
15999: PUSH
16000: EMPTY
16001: LIST
16002: LIST
16003: PUSH
16004: LD_INT 26
16006: PUSH
16007: LD_INT 2
16009: PUSH
16010: EMPTY
16011: LIST
16012: LIST
16013: PUSH
16014: EMPTY
16015: LIST
16016: LIST
16017: LIST
16018: PUSH
16019: EMPTY
16020: LIST
16021: LIST
16022: LIST
16023: PPUSH
16024: CALL_OW 69
16028: ST_TO_ADDR
// RuHealUrgent = FilterAllUnits ( [ [ f_side , 3 ] , [ f_not , [ f_ok ] ] , [ f_or , [ f_sex , 1 ] , [ f_sex , 2 ] ] ] ) ;
16029: LD_ADDR_LOC 43
16033: PUSH
16034: LD_INT 22
16036: PUSH
16037: LD_INT 3
16039: PUSH
16040: EMPTY
16041: LIST
16042: LIST
16043: PUSH
16044: LD_INT 3
16046: PUSH
16047: LD_INT 50
16049: PUSH
16050: EMPTY
16051: LIST
16052: PUSH
16053: EMPTY
16054: LIST
16055: LIST
16056: PUSH
16057: LD_INT 2
16059: PUSH
16060: LD_INT 26
16062: PUSH
16063: LD_INT 1
16065: PUSH
16066: EMPTY
16067: LIST
16068: LIST
16069: PUSH
16070: LD_INT 26
16072: PUSH
16073: LD_INT 2
16075: PUSH
16076: EMPTY
16077: LIST
16078: LIST
16079: PUSH
16080: EMPTY
16081: LIST
16082: LIST
16083: LIST
16084: PUSH
16085: EMPTY
16086: LIST
16087: LIST
16088: LIST
16089: PPUSH
16090: CALL_OW 69
16094: ST_TO_ADDR
// if RuHealUrgent then
16095: LD_LOC 43
16099: IFFALSE 16158
// for RuHeal in RuHealUrgent do
16101: LD_ADDR_LOC 41
16105: PUSH
16106: LD_LOC 43
16110: PUSH
16111: FOR_IN
16112: IFFALSE 16156
// begin if IsDying ( RuHeal ) then
16114: LD_LOC 41
16118: PPUSH
16119: CALL_OW 303
16123: IFFALSE 16154
// AddComHeal ( [ RuDoc1 , RuDoc2 , RuDoc3 ] , RuHeal ) ;
16125: LD_EXP 77
16129: PUSH
16130: LD_EXP 78
16134: PUSH
16135: LD_EXP 79
16139: PUSH
16140: EMPTY
16141: LIST
16142: LIST
16143: LIST
16144: PPUSH
16145: LD_LOC 41
16149: PPUSH
16150: CALL_OW 188
// end ;
16154: GO 16111
16156: POP
16157: POP
// if RuList and RuHealUrgent = 0 then
16158: LD_LOC 40
16162: PUSH
16163: LD_LOC 43
16167: PUSH
16168: LD_INT 0
16170: EQUAL
16171: AND
16172: IFFALSE 16307
// for RuHeal in RuList do
16174: LD_ADDR_LOC 41
16178: PUSH
16179: LD_LOC 40
16183: PUSH
16184: FOR_IN
16185: IFFALSE 16305
// begin if getLives ( RuHeal ) < 801 then
16187: LD_LOC 41
16191: PPUSH
16192: CALL_OW 256
16196: PUSH
16197: LD_INT 801
16199: LESS
16200: IFFALSE 16210
// RuNeedsHeal = 1 ;
16202: LD_ADDR_LOC 42
16206: PUSH
16207: LD_INT 1
16209: ST_TO_ADDR
// if getLives ( RuHeal ) < 501 then
16210: LD_LOC 41
16214: PPUSH
16215: CALL_OW 256
16219: PUSH
16220: LD_INT 501
16222: LESS
16223: IFFALSE 16303
// begin AddComExitBuilding ( [ RuDoc1 , RuDoc2 , RuDoc3 ] ) ;
16225: LD_EXP 77
16229: PUSH
16230: LD_EXP 78
16234: PUSH
16235: LD_EXP 79
16239: PUSH
16240: EMPTY
16241: LIST
16242: LIST
16243: LIST
16244: PPUSH
16245: CALL_OW 182
// AddComMovetoArea ( [ RuDoc1 , RuDoc2 , RuDoc3 ] , RuHealZone ) ;
16249: LD_EXP 77
16253: PUSH
16254: LD_EXP 78
16258: PUSH
16259: LD_EXP 79
16263: PUSH
16264: EMPTY
16265: LIST
16266: LIST
16267: LIST
16268: PPUSH
16269: LD_INT 11
16271: PPUSH
16272: CALL_OW 173
// if not IsInArea ( RuHeal , RuHealZone ) then
16276: LD_LOC 41
16280: PPUSH
16281: LD_INT 11
16283: PPUSH
16284: CALL_OW 308
16288: NOT
16289: IFFALSE 16303
// ComMovetoArea ( RuHeal , RuHealZone ) ;
16291: LD_LOC 41
16295: PPUSH
16296: LD_INT 11
16298: PPUSH
16299: CALL_OW 113
// end ; end ;
16303: GO 16184
16305: POP
16306: POP
// if RuNeedsHeal = 0 then
16307: LD_LOC 42
16311: PUSH
16312: LD_INT 0
16314: EQUAL
16315: IFFALSE 16474
// begin dwait ( 0 0$50 ) ;
16317: LD_INT 1750
16319: PPUSH
16320: CALL_OW 68
// if RuNeedsHeal = 0 and RuHealUrgent = 0 then
16324: LD_LOC 42
16328: PUSH
16329: LD_INT 0
16331: EQUAL
16332: PUSH
16333: LD_LOC 43
16337: PUSH
16338: LD_INT 0
16340: EQUAL
16341: AND
16342: IFFALSE 16370
// if not isInUnit ( RuDoc1 ) then
16344: LD_EXP 77
16348: PPUSH
16349: CALL_OW 310
16353: NOT
16354: IFFALSE 16370
// AddComEnterUnit ( RuDoc1 , RuLab1 ) ;
16356: LD_EXP 77
16360: PPUSH
16361: LD_EXP 56
16365: PPUSH
16366: CALL_OW 180
// if not isInUnit ( RuDoc2 ) then
16370: LD_EXP 78
16374: PPUSH
16375: CALL_OW 310
16379: NOT
16380: IFFALSE 16396
// AddComEnterUnit ( RuDoc2 , RuLab2 ) ;
16382: LD_EXP 78
16386: PPUSH
16387: LD_EXP 57
16391: PPUSH
16392: CALL_OW 180
// if not ( isInUnit ( RuDoc3 ) or isBusy ( RuDoc3 ) or HasTask ( RuDoc3 ) ) then
16396: LD_EXP 79
16400: PPUSH
16401: CALL_OW 310
16405: PUSH
16406: LD_EXP 79
16410: PPUSH
16411: CALL_OW 315
16415: OR
16416: PUSH
16417: LD_EXP 79
16421: PPUSH
16422: CALL_OW 314
16426: OR
16427: NOT
16428: IFFALSE 16474
// begin ComStop ( RuDoc3 ) ;
16430: LD_EXP 79
16434: PPUSH
16435: CALL_OW 141
// AddComEnterUnit ( RuDoc3 , [ RuLab1 , RuLab2 ] [ rand ( 1 , 2 ) ] ) ;
16439: LD_EXP 79
16443: PPUSH
16444: LD_EXP 56
16448: PUSH
16449: LD_EXP 57
16453: PUSH
16454: EMPTY
16455: LIST
16456: LIST
16457: PUSH
16458: LD_INT 1
16460: PPUSH
16461: LD_INT 2
16463: PPUSH
16464: CALL_OW 12
16468: ARRAY
16469: PPUSH
16470: CALL_OW 180
// end ; end ; end ;
16474: END
// export function BuildingComplete_RuAI ( un ) ; begin
16475: LD_INT 0
16477: PPUSH
// if getBtype ( un ) = b_turret and GetSide ( un ) = 3 then
16478: LD_VAR 0 1
16482: PPUSH
16483: CALL_OW 266
16487: PUSH
16488: LD_INT 33
16490: EQUAL
16491: PUSH
16492: LD_VAR 0 1
16496: PPUSH
16497: CALL_OW 255
16501: PUSH
16502: LD_INT 3
16504: EQUAL
16505: AND
16506: IFFALSE 16588
// begin AddComPlaceWeapon ( un , Ru_heavy_machine_gun ) ;
16508: LD_VAR 0 1
16512: PPUSH
16513: LD_INT 42
16515: PPUSH
16516: CALL_OW 208
// if isInArea ( un , ApplyLapser ) then
16520: LD_VAR 0 1
16524: PPUSH
16525: LD_INT 5
16527: PPUSH
16528: CALL_OW 308
16532: IFFALSE 16548
// AddComPlaceWeapon ( un , ru_time_lapser ) else
16534: LD_VAR 0 1
16538: PPUSH
16539: LD_INT 49
16541: PPUSH
16542: CALL_OW 208
16546: GO 16588
// if isInArea ( un , ApplyRocket ) then
16548: LD_VAR 0 1
16552: PPUSH
16553: LD_INT 6
16555: PPUSH
16556: CALL_OW 308
16560: IFFALSE 16576
// AddComPlaceWeapon ( un , ru_rocket ) else
16562: LD_VAR 0 1
16566: PPUSH
16567: LD_INT 47
16569: PPUSH
16570: CALL_OW 208
16574: GO 16588
// AddComPlaceWeapon ( un , Us_rocket_launcher ) ;
16576: LD_VAR 0 1
16580: PPUSH
16581: LD_INT 7
16583: PPUSH
16584: CALL_OW 208
// end ; if getBtype ( un ) = b_bunker and GetSide ( un ) = 1 then
16588: LD_VAR 0 1
16592: PPUSH
16593: CALL_OW 266
16597: PUSH
16598: LD_INT 32
16600: EQUAL
16601: PUSH
16602: LD_VAR 0 1
16606: PPUSH
16607: CALL_OW 255
16611: PUSH
16612: LD_INT 1
16614: EQUAL
16615: AND
16616: IFFALSE 16642
// begin AddComPlaceWeapon ( un , Ru_heavy_machine_gun ) ;
16618: LD_VAR 0 1
16622: PPUSH
16623: LD_INT 42
16625: PPUSH
16626: CALL_OW 208
// AddComPlaceWeapon ( un , Ru_heavy_gun ) ;
16630: LD_VAR 0 1
16634: PPUSH
16635: LD_INT 46
16637: PPUSH
16638: CALL_OW 208
// end ; ReassignID ( GetX ( un ) , GetY ( un ) , un ) ;
16642: LD_VAR 0 1
16646: PPUSH
16647: CALL_OW 250
16651: PPUSH
16652: LD_VAR 0 1
16656: PPUSH
16657: CALL_OW 251
16661: PPUSH
16662: LD_VAR 0 1
16666: PPUSH
16667: CALL 19662 0 3
// end ;
16671: LD_VAR 0 2
16675: RET
// export function UnitGoesToRed_RuAI ( un ) ; begin
16676: LD_INT 0
16678: PPUSH
// if un = RedBase then
16679: LD_VAR 0 1
16683: PUSH
16684: LD_EXP 54
16688: EQUAL
16689: IFFALSE 16783
// begin ComEnterUnit ( [ Ru1 , Ru2 , Ru3 , Ru4 , RuMech1 , RuMech2 , RuMech3 , RuMech4 ] , RuBar ) ;
16691: LD_EXP 60
16695: PUSH
16696: LD_EXP 61
16700: PUSH
16701: LD_EXP 62
16705: PUSH
16706: LD_EXP 63
16710: PUSH
16711: LD_EXP 69
16715: PUSH
16716: LD_EXP 70
16720: PUSH
16721: LD_EXP 71
16725: PUSH
16726: LD_EXP 72
16730: PUSH
16731: EMPTY
16732: LIST
16733: LIST
16734: LIST
16735: LIST
16736: LIST
16737: LIST
16738: LIST
16739: LIST
16740: PPUSH
16741: LD_EXP 53
16745: PPUSH
16746: CALL_OW 120
// AddComChangeProfession ( [ RuMech1 , RuMech2 , RuMech3 , RuMech4 ] , class_Soldier ) ;
16750: LD_EXP 69
16754: PUSH
16755: LD_EXP 70
16759: PUSH
16760: LD_EXP 71
16764: PUSH
16765: LD_EXP 72
16769: PUSH
16770: EMPTY
16771: LIST
16772: LIST
16773: LIST
16774: LIST
16775: PPUSH
16776: LD_INT 1
16778: PPUSH
16779: CALL_OW 183
// end ; if Getside ( un ) = 3 and GetBtype ( un ) > - 1 then
16783: LD_VAR 0 1
16787: PPUSH
16788: CALL_OW 255
16792: PUSH
16793: LD_INT 3
16795: EQUAL
16796: PUSH
16797: LD_VAR 0 1
16801: PPUSH
16802: CALL_OW 266
16806: PUSH
16807: LD_INT 1
16809: NEG
16810: GREATER
16811: AND
16812: IFFALSE 16823
// RepairOrder ( un ) ;
16814: LD_VAR 0 1
16818: PPUSH
16819: CALL 19360 0 1
// end ;
16823: LD_VAR 0 2
16827: RET
// export function UnitDestroyed_RuAI ( un ) ; begin
16828: LD_INT 0
16830: PPUSH
// if Getside ( un ) = 3 and GetBtype ( un ) > - 1 then
16831: LD_VAR 0 1
16835: PPUSH
16836: CALL_OW 255
16840: PUSH
16841: LD_INT 3
16843: EQUAL
16844: PUSH
16845: LD_VAR 0 1
16849: PPUSH
16850: CALL_OW 266
16854: PUSH
16855: LD_INT 1
16857: NEG
16858: GREATER
16859: AND
16860: IFFALSE 17257
// begin if getBtype ( un ) = b_factory then
16862: LD_VAR 0 1
16866: PPUSH
16867: CALL_OW 266
16871: PUSH
16872: LD_INT 3
16874: EQUAL
16875: IFFALSE 16952
// AddComBuild ( NearestUnitToUnit ( [ RuEng1 , RuEng2 , RuEng3 , RuEng4 ] , un ) , b_workshop , GetX ( un ) , GetY ( un ) , GetDir ( un ) ) else
16877: LD_EXP 73
16881: PUSH
16882: LD_EXP 74
16886: PUSH
16887: LD_EXP 75
16891: PUSH
16892: LD_EXP 76
16896: PUSH
16897: EMPTY
16898: LIST
16899: LIST
16900: LIST
16901: LIST
16902: PPUSH
16903: LD_VAR 0 1
16907: PPUSH
16908: CALL_OW 74
16912: PPUSH
16913: LD_INT 2
16915: PPUSH
16916: LD_VAR 0 1
16920: PPUSH
16921: CALL_OW 250
16925: PPUSH
16926: LD_VAR 0 1
16930: PPUSH
16931: CALL_OW 251
16935: PPUSH
16936: LD_VAR 0 1
16940: PPUSH
16941: CALL_OW 254
16945: PPUSH
16946: CALL_OW 205
16950: GO 17257
// if getBType ( un ) = b_lab_full or getBType ( un ) = b_lab_half then
16952: LD_VAR 0 1
16956: PPUSH
16957: CALL_OW 266
16961: PUSH
16962: LD_INT 8
16964: EQUAL
16965: PUSH
16966: LD_VAR 0 1
16970: PPUSH
16971: CALL_OW 266
16975: PUSH
16976: LD_INT 7
16978: EQUAL
16979: OR
16980: IFFALSE 17057
// AddComBuild ( NearestUnitToUnit ( [ RuEng1 , RuEng2 , RuEng3 , RuEng4 ] , un ) , b_lab , GetX ( un ) , GetY ( un ) , GetDir ( un ) ) else
16982: LD_EXP 73
16986: PUSH
16987: LD_EXP 74
16991: PUSH
16992: LD_EXP 75
16996: PUSH
16997: LD_EXP 76
17001: PUSH
17002: EMPTY
17003: LIST
17004: LIST
17005: LIST
17006: LIST
17007: PPUSH
17008: LD_VAR 0 1
17012: PPUSH
17013: CALL_OW 74
17017: PPUSH
17018: LD_INT 6
17020: PPUSH
17021: LD_VAR 0 1
17025: PPUSH
17026: CALL_OW 250
17030: PPUSH
17031: LD_VAR 0 1
17035: PPUSH
17036: CALL_OW 251
17040: PPUSH
17041: LD_VAR 0 1
17045: PPUSH
17046: CALL_OW 254
17050: PPUSH
17051: CALL_OW 205
17055: GO 17257
// if getBType ( un ) = b_depot or getBType ( un ) = b_warehouse then
17057: LD_VAR 0 1
17061: PPUSH
17062: CALL_OW 266
17066: PUSH
17067: LD_INT 0
17069: EQUAL
17070: PUSH
17071: LD_VAR 0 1
17075: PPUSH
17076: CALL_OW 266
17080: PUSH
17081: LD_INT 1
17083: EQUAL
17084: OR
17085: IFFALSE 17162
// AddComBuild ( NearestUnitToUnit ( [ RuEng1 , RuEng2 , RuEng3 , RuEng4 ] , un ) , 0 , GetX ( un ) , GetY ( un ) , GetDir ( un ) ) else
17087: LD_EXP 73
17091: PUSH
17092: LD_EXP 74
17096: PUSH
17097: LD_EXP 75
17101: PUSH
17102: LD_EXP 76
17106: PUSH
17107: EMPTY
17108: LIST
17109: LIST
17110: LIST
17111: LIST
17112: PPUSH
17113: LD_VAR 0 1
17117: PPUSH
17118: CALL_OW 74
17122: PPUSH
17123: LD_INT 0
17125: PPUSH
17126: LD_VAR 0 1
17130: PPUSH
17131: CALL_OW 250
17135: PPUSH
17136: LD_VAR 0 1
17140: PPUSH
17141: CALL_OW 251
17145: PPUSH
17146: LD_VAR 0 1
17150: PPUSH
17151: CALL_OW 254
17155: PPUSH
17156: CALL_OW 205
17160: GO 17257
// if GetBType ( un ) > 1 then
17162: LD_VAR 0 1
17166: PPUSH
17167: CALL_OW 266
17171: PUSH
17172: LD_INT 1
17174: GREATER
17175: IFFALSE 17257
// AddComBuild ( NearestUnitToUnit ( [ RuEng1 , RuEng2 , RuEng3 , RuEng4 ] , un ) , GetBtype ( un ) , GetX ( un ) , GetY ( un ) , GetDir ( un ) ) ;
17177: LD_EXP 73
17181: PUSH
17182: LD_EXP 74
17186: PUSH
17187: LD_EXP 75
17191: PUSH
17192: LD_EXP 76
17196: PUSH
17197: EMPTY
17198: LIST
17199: LIST
17200: LIST
17201: LIST
17202: PPUSH
17203: LD_VAR 0 1
17207: PPUSH
17208: CALL_OW 74
17212: PPUSH
17213: LD_VAR 0 1
17217: PPUSH
17218: CALL_OW 266
17222: PPUSH
17223: LD_VAR 0 1
17227: PPUSH
17228: CALL_OW 250
17232: PPUSH
17233: LD_VAR 0 1
17237: PPUSH
17238: CALL_OW 251
17242: PPUSH
17243: LD_VAR 0 1
17247: PPUSH
17248: CALL_OW 254
17252: PPUSH
17253: CALL_OW 205
// end ; end ;
17257: LD_VAR 0 2
17261: RET
// var BuildList , BuildInList ; every 0 0$9.6 do
17262: GO 17264
17264: DISABLE
// begin BuildList = FilterAllUnits ( [ f_side , 3 ] ) ;
17265: LD_ADDR_LOC 44
17269: PUSH
17270: LD_INT 22
17272: PUSH
17273: LD_INT 3
17275: PUSH
17276: EMPTY
17277: LIST
17278: LIST
17279: PPUSH
17280: CALL_OW 69
17284: ST_TO_ADDR
// for BuildInList in BuildList do
17285: LD_ADDR_LOC 45
17289: PUSH
17290: LD_LOC 44
17294: PUSH
17295: FOR_IN
17296: IFFALSE 17389
// begin if GetSide ( BuildInList ) = 3 and ( GetBtype ( BuildInList ) = b_workshop or GetBtype ( BuildInList ) = b_depot or GetBtype ( BuildInList ) = b_armoury ) and ContactTime ( [ 1 , 4 ] ) > 0 0$5 then
17298: LD_LOC 45
17302: PPUSH
17303: CALL_OW 255
17307: PUSH
17308: LD_INT 3
17310: EQUAL
17311: PUSH
17312: LD_LOC 45
17316: PPUSH
17317: CALL_OW 266
17321: PUSH
17322: LD_INT 2
17324: EQUAL
17325: PUSH
17326: LD_LOC 45
17330: PPUSH
17331: CALL_OW 266
17335: PUSH
17336: LD_INT 0
17338: EQUAL
17339: OR
17340: PUSH
17341: LD_LOC 45
17345: PPUSH
17346: CALL_OW 266
17350: PUSH
17351: LD_INT 4
17353: EQUAL
17354: OR
17355: AND
17356: PUSH
17357: LD_INT 1
17359: PUSH
17360: LD_INT 4
17362: PUSH
17363: EMPTY
17364: LIST
17365: LIST
17366: PPUSH
17367: CALL_OW 462
17371: PUSH
17372: LD_INT 175
17374: GREATER
17375: AND
17376: IFFALSE 17387
// ComUpgrade ( BuildInList ) ;
17378: LD_LOC 45
17382: PPUSH
17383: CALL_OW 146
// end ;
17387: GO 17295
17389: POP
17390: POP
// end ; end_of_file
17391: END
// export RuAttackEnabled ; var RuAttackerList , AttackPath , WaveType , WaveNum , chassis , weapon , engine , control , templist , i , AttackChoice , RuRepair , RuRepairList , RuRepairmen , RuMech ; every 10 10$00 do
17392: GO 17394
17394: DISABLE
// begin RuAttackEnabled = 1 ;
17395: LD_ADDR_EXP 80
17399: PUSH
17400: LD_INT 1
17402: ST_TO_ADDR
// Wavetype = rand ( 1 , 3 ) ;
17403: LD_ADDR_LOC 48
17407: PUSH
17408: LD_INT 1
17410: PPUSH
17411: LD_INT 3
17413: PPUSH
17414: CALL_OW 12
17418: ST_TO_ADDR
// WaveNum = [ 5 , 4 + difficulty , 10 ] [ Wavetype ] ;
17419: LD_ADDR_LOC 49
17423: PUSH
17424: LD_INT 5
17426: PUSH
17427: LD_INT 4
17429: PUSH
17430: LD_OWVAR 67
17434: PLUS
17435: PUSH
17436: LD_INT 10
17438: PUSH
17439: EMPTY
17440: LIST
17441: LIST
17442: LIST
17443: PUSH
17444: LD_LOC 48
17448: ARRAY
17449: ST_TO_ADDR
// end ;
17450: END
// function CountRuAttackers ( ) ; begin
17451: LD_INT 0
17453: PPUSH
// result = 0 ;
17454: LD_ADDR_VAR 0 1
17458: PUSH
17459: LD_INT 0
17461: ST_TO_ADDR
// templist = FilterAllUnits ( [ [ f_side , 3 ] , [ f_engine , 3 ] , [ f_not , [ f_weapon , ru_crane ] ] , [ f_ok ] ] ) ;
17462: LD_ADDR_LOC 54
17466: PUSH
17467: LD_INT 22
17469: PUSH
17470: LD_INT 3
17472: PUSH
17473: EMPTY
17474: LIST
17475: LIST
17476: PUSH
17477: LD_INT 32
17479: PUSH
17480: LD_INT 3
17482: PUSH
17483: EMPTY
17484: LIST
17485: LIST
17486: PUSH
17487: LD_INT 3
17489: PUSH
17490: LD_INT 34
17492: PUSH
17493: LD_INT 52
17495: PUSH
17496: EMPTY
17497: LIST
17498: LIST
17499: PUSH
17500: EMPTY
17501: LIST
17502: LIST
17503: PUSH
17504: LD_INT 50
17506: PUSH
17507: EMPTY
17508: LIST
17509: PUSH
17510: EMPTY
17511: LIST
17512: LIST
17513: LIST
17514: LIST
17515: PPUSH
17516: CALL_OW 69
17520: ST_TO_ADDR
// for i in templist do
17521: LD_ADDR_LOC 55
17525: PUSH
17526: LD_LOC 54
17530: PUSH
17531: FOR_IN
17532: IFFALSE 17550
// begin result = result + 1 ;
17534: LD_ADDR_VAR 0 1
17538: PUSH
17539: LD_VAR 0 1
17543: PUSH
17544: LD_INT 1
17546: PLUS
17547: ST_TO_ADDR
// end ;
17548: GO 17531
17550: POP
17551: POP
// end ;
17552: LD_VAR 0 1
17556: RET
// every 0 0$10 + 0 0$1 trigger RuAttackEnabled = 1 do
17557: LD_EXP 80
17561: PUSH
17562: LD_INT 1
17564: EQUAL
17565: IFFALSE 17936
17567: GO 17569
17569: DISABLE
// begin enable ;
17570: ENABLE
// chassis = [ ru_heavy_tracked , ru_heavy_wheeled , ru_medium_tracked ] [ Wavetype ] ;
17571: LD_ADDR_LOC 50
17575: PUSH
17576: LD_INT 24
17578: PUSH
17579: LD_INT 23
17581: PUSH
17582: LD_INT 22
17584: PUSH
17585: EMPTY
17586: LIST
17587: LIST
17588: LIST
17589: PUSH
17590: LD_LOC 48
17594: ARRAY
17595: ST_TO_ADDR
// engine = 3 ;
17596: LD_ADDR_LOC 52
17600: PUSH
17601: LD_INT 3
17603: ST_TO_ADDR
// control = 3 ;
17604: LD_ADDR_LOC 53
17608: PUSH
17609: LD_INT 3
17611: ST_TO_ADDR
// weapon = [ [ ru_heavy_gun , ru_rocket ] [ rand ( 1 , 2 ) ] , [ ru_heavy_gun , ru_rocket , ru_rocket_launcher ] [ rand ( 1 , 3 ) ] , [ ru_gun , ru_rocket_launcher ] [ rand ( 1 , 2 ) ] ] [ Wavetype ] ;
17612: LD_ADDR_LOC 51
17616: PUSH
17617: LD_INT 46
17619: PUSH
17620: LD_INT 47
17622: PUSH
17623: EMPTY
17624: LIST
17625: LIST
17626: PUSH
17627: LD_INT 1
17629: PPUSH
17630: LD_INT 2
17632: PPUSH
17633: CALL_OW 12
17637: ARRAY
17638: PUSH
17639: LD_INT 46
17641: PUSH
17642: LD_INT 47
17644: PUSH
17645: LD_INT 45
17647: PUSH
17648: EMPTY
17649: LIST
17650: LIST
17651: LIST
17652: PUSH
17653: LD_INT 1
17655: PPUSH
17656: LD_INT 3
17658: PPUSH
17659: CALL_OW 12
17663: ARRAY
17664: PUSH
17665: LD_INT 44
17667: PUSH
17668: LD_INT 45
17670: PUSH
17671: EMPTY
17672: LIST
17673: LIST
17674: PUSH
17675: LD_INT 1
17677: PPUSH
17678: LD_INT 2
17680: PPUSH
17681: CALL_OW 12
17685: ARRAY
17686: PUSH
17687: EMPTY
17688: LIST
17689: LIST
17690: LIST
17691: PUSH
17692: LD_LOC 48
17696: ARRAY
17697: ST_TO_ADDR
// if isOK ( RuFac1 ) and GetEnergy ( GetBase ( RedBase ) ) [ 4 ] > 0 and IsLive ( RedBase ) and CanBeConstructed ( RuFac1 , chassis , engine , control , weapon ) and not IsBusy ( RuFac1 ) then
17698: LD_EXP 58
17702: PPUSH
17703: CALL_OW 302
17707: PUSH
17708: LD_EXP 54
17712: PPUSH
17713: CALL_OW 274
17717: PPUSH
17718: CALL_OW 278
17722: PUSH
17723: LD_INT 4
17725: ARRAY
17726: PUSH
17727: LD_INT 0
17729: GREATER
17730: AND
17731: PUSH
17732: LD_EXP 54
17736: PPUSH
17737: CALL_OW 300
17741: AND
17742: PUSH
17743: LD_EXP 58
17747: PPUSH
17748: LD_LOC 50
17752: PPUSH
17753: LD_LOC 52
17757: PPUSH
17758: LD_LOC 53
17762: PPUSH
17763: LD_LOC 51
17767: PPUSH
17768: CALL_OW 448
17772: AND
17773: PUSH
17774: LD_EXP 58
17778: PPUSH
17779: CALL_OW 315
17783: NOT
17784: AND
17785: IFFALSE 17818
// begin AddComConstruct ( RuFac1 , chassis , engine , control , weapon ) ;
17787: LD_EXP 58
17791: PPUSH
17792: LD_LOC 50
17796: PPUSH
17797: LD_LOC 52
17801: PPUSH
17802: LD_LOC 53
17806: PPUSH
17807: LD_LOC 51
17811: PPUSH
17812: CALL_OW 185
// end else
17816: GO 17936
// if isOK ( RuFac2 ) and GetEnergy ( GetBase ( RedBase ) ) [ 4 ] > 0 and IsLive ( RedBase ) and CanBeConstructed ( RuFac2 , chassis , engine , control , weapon ) and not IsBusy ( RuFac2 ) then
17818: LD_EXP 59
17822: PPUSH
17823: CALL_OW 302
17827: PUSH
17828: LD_EXP 54
17832: PPUSH
17833: CALL_OW 274
17837: PPUSH
17838: CALL_OW 278
17842: PUSH
17843: LD_INT 4
17845: ARRAY
17846: PUSH
17847: LD_INT 0
17849: GREATER
17850: AND
17851: PUSH
17852: LD_EXP 54
17856: PPUSH
17857: CALL_OW 300
17861: AND
17862: PUSH
17863: LD_EXP 59
17867: PPUSH
17868: LD_LOC 50
17872: PPUSH
17873: LD_LOC 52
17877: PPUSH
17878: LD_LOC 53
17882: PPUSH
17883: LD_LOC 51
17887: PPUSH
17888: CALL_OW 448
17892: AND
17893: PUSH
17894: LD_EXP 59
17898: PPUSH
17899: CALL_OW 315
17903: NOT
17904: AND
17905: IFFALSE 17936
// begin AddComConstruct ( RuFac2 , chassis , engine , control , weapon ) ;
17907: LD_EXP 59
17911: PPUSH
17912: LD_LOC 50
17916: PPUSH
17917: LD_LOC 52
17921: PPUSH
17922: LD_LOC 53
17926: PPUSH
17927: LD_LOC 51
17931: PPUSH
17932: CALL_OW 185
// end ; end ;
17936: END
// every 0 0$10 + 0 0$2 trigger RuAttackEnabled = 1 and CountRuAttackers = WaveNum do
17937: LD_EXP 80
17941: PUSH
17942: LD_INT 1
17944: EQUAL
17945: PUSH
17946: CALL 17451 0 0
17950: PUSH
17951: LD_LOC 49
17955: EQUAL
17956: AND
17957: IFFALSE 18265
17959: GO 17961
17961: DISABLE
// begin enable ;
17962: ENABLE
// Wavetype = rand ( 1 , 3 ) ;
17963: LD_ADDR_LOC 48
17967: PUSH
17968: LD_INT 1
17970: PPUSH
17971: LD_INT 3
17973: PPUSH
17974: CALL_OW 12
17978: ST_TO_ADDR
// WaveNum = [ 5 , 4 + difficulty , 10 ] [ Wavetype ] ;
17979: LD_ADDR_LOC 49
17983: PUSH
17984: LD_INT 5
17986: PUSH
17987: LD_INT 4
17989: PUSH
17990: LD_OWVAR 67
17994: PLUS
17995: PUSH
17996: LD_INT 10
17998: PUSH
17999: EMPTY
18000: LIST
18001: LIST
18002: LIST
18003: PUSH
18004: LD_LOC 48
18008: ARRAY
18009: ST_TO_ADDR
// RuAttackerList = FilterAllUnits ( [ [ f_side , 3 ] , [ f_control , 3 ] , [ f_not , [ f_weapon , ru_crane ] ] , [ f_ok ] ] ) ;
18010: LD_ADDR_LOC 46
18014: PUSH
18015: LD_INT 22
18017: PUSH
18018: LD_INT 3
18020: PUSH
18021: EMPTY
18022: LIST
18023: LIST
18024: PUSH
18025: LD_INT 33
18027: PUSH
18028: LD_INT 3
18030: PUSH
18031: EMPTY
18032: LIST
18033: LIST
18034: PUSH
18035: LD_INT 3
18037: PUSH
18038: LD_INT 34
18040: PUSH
18041: LD_INT 52
18043: PUSH
18044: EMPTY
18045: LIST
18046: LIST
18047: PUSH
18048: EMPTY
18049: LIST
18050: LIST
18051: PUSH
18052: LD_INT 50
18054: PUSH
18055: EMPTY
18056: LIST
18057: PUSH
18058: EMPTY
18059: LIST
18060: LIST
18061: LIST
18062: LIST
18063: PPUSH
18064: CALL_OW 69
18068: ST_TO_ADDR
// for i in RuAttackerList do
18069: LD_ADDR_LOC 55
18073: PUSH
18074: LD_LOC 46
18078: PUSH
18079: FOR_IN
18080: IFFALSE 18263
// case difficulty of 1 :
18082: LD_OWVAR 67
18086: PUSH
18087: LD_INT 1
18089: DOUBLE
18090: EQUAL
18091: IFTRUE 18095
18093: GO 18113
18095: POP
// begin AddComAgressiveMove ( i , 159 , 8 ) ;
18096: LD_LOC 55
18100: PPUSH
18101: LD_INT 159
18103: PPUSH
18104: LD_INT 8
18106: PPUSH
18107: CALL_OW 174
// end ; 2 :
18111: GO 18261
18113: LD_INT 2
18115: DOUBLE
18116: EQUAL
18117: IFTRUE 18121
18119: GO 18208
18121: POP
// begin AttackChoice = rand ( 1 , 2 ) ;
18122: LD_ADDR_LOC 56
18126: PUSH
18127: LD_INT 1
18129: PPUSH
18130: LD_INT 2
18132: PPUSH
18133: CALL_OW 12
18137: ST_TO_ADDR
// if AttackChoice = 1 then
18138: LD_LOC 56
18142: PUSH
18143: LD_INT 1
18145: EQUAL
18146: IFFALSE 18165
// AddComAgressiveMove ( i , 159 , 8 ) else
18148: LD_LOC 55
18152: PPUSH
18153: LD_INT 159
18155: PPUSH
18156: LD_INT 8
18158: PPUSH
18159: CALL_OW 174
18163: GO 18206
// AddComAgressiveMove ( i , 81 + rand ( - 3 , 3 ) , 151 + rand ( - 3 , 3 ) ) ;
18165: LD_LOC 55
18169: PPUSH
18170: LD_INT 81
18172: PUSH
18173: LD_INT 3
18175: NEG
18176: PPUSH
18177: LD_INT 3
18179: PPUSH
18180: CALL_OW 12
18184: PLUS
18185: PPUSH
18186: LD_INT 151
18188: PUSH
18189: LD_INT 3
18191: NEG
18192: PPUSH
18193: LD_INT 3
18195: PPUSH
18196: CALL_OW 12
18200: PLUS
18201: PPUSH
18202: CALL_OW 174
// end ; 3 :
18206: GO 18261
18208: LD_INT 3
18210: DOUBLE
18211: EQUAL
18212: IFTRUE 18216
18214: GO 18260
18216: POP
// begin AddComAgressiveMove ( i , 81 + rand ( - 3 , 3 ) , 151 + rand ( - 3 , 3 ) ) ;
18217: LD_LOC 55
18221: PPUSH
18222: LD_INT 81
18224: PUSH
18225: LD_INT 3
18227: NEG
18228: PPUSH
18229: LD_INT 3
18231: PPUSH
18232: CALL_OW 12
18236: PLUS
18237: PPUSH
18238: LD_INT 151
18240: PUSH
18241: LD_INT 3
18243: NEG
18244: PPUSH
18245: LD_INT 3
18247: PPUSH
18248: CALL_OW 12
18252: PLUS
18253: PPUSH
18254: CALL_OW 174
// end ; end ;
18258: GO 18261
18260: POP
18261: GO 18079
18263: POP
18264: POP
// end ;
18265: END
// every 0 0$2.5 do
18266: GO 18268
18268: DISABLE
// begin enable ;
18269: ENABLE
// if RuAttackEnabled > 0 then
18270: LD_EXP 80
18274: PUSH
18275: LD_INT 0
18277: GREATER
18278: IFFALSE 18562
// begin RuRepairList = FilterAllUnits ( [ [ f_side , 3 ] , [ f_control , 3 ] , [ f_not , [ f_weapon , ru_crane ] ] , [ f_ok ] ] ) ;
18280: LD_ADDR_LOC 58
18284: PUSH
18285: LD_INT 22
18287: PUSH
18288: LD_INT 3
18290: PUSH
18291: EMPTY
18292: LIST
18293: LIST
18294: PUSH
18295: LD_INT 33
18297: PUSH
18298: LD_INT 3
18300: PUSH
18301: EMPTY
18302: LIST
18303: LIST
18304: PUSH
18305: LD_INT 3
18307: PUSH
18308: LD_INT 34
18310: PUSH
18311: LD_INT 52
18313: PUSH
18314: EMPTY
18315: LIST
18316: LIST
18317: PUSH
18318: EMPTY
18319: LIST
18320: LIST
18321: PUSH
18322: LD_INT 50
18324: PUSH
18325: EMPTY
18326: LIST
18327: PUSH
18328: EMPTY
18329: LIST
18330: LIST
18331: LIST
18332: LIST
18333: PPUSH
18334: CALL_OW 69
18338: ST_TO_ADDR
// for RuRepair in RuRepairList do
18339: LD_ADDR_LOC 57
18343: PUSH
18344: LD_LOC 58
18348: PUSH
18349: FOR_IN
18350: IFFALSE 18385
// begin if GetLives ( RuRepair ) > 500 then
18352: LD_LOC 57
18356: PPUSH
18357: CALL_OW 256
18361: PUSH
18362: LD_INT 500
18364: GREATER
18365: IFFALSE 18383
// RuRepairList = RuRepairList diff RuRepair ;
18367: LD_ADDR_LOC 58
18371: PUSH
18372: LD_LOC 58
18376: PUSH
18377: LD_LOC 57
18381: DIFF
18382: ST_TO_ADDR
// end ;
18383: GO 18349
18385: POP
18386: POP
// RuRepairmen = FilterAllUnits ( [ [ f_side , 3 ] , [ f_class , 3 ] ] ) ;
18387: LD_ADDR_LOC 59
18391: PUSH
18392: LD_INT 22
18394: PUSH
18395: LD_INT 3
18397: PUSH
18398: EMPTY
18399: LIST
18400: LIST
18401: PUSH
18402: LD_INT 25
18404: PUSH
18405: LD_INT 3
18407: PUSH
18408: EMPTY
18409: LIST
18410: LIST
18411: PUSH
18412: EMPTY
18413: LIST
18414: LIST
18415: PPUSH
18416: CALL_OW 69
18420: ST_TO_ADDR
// for RuRepair in RuRepairList do
18421: LD_ADDR_LOC 57
18425: PUSH
18426: LD_LOC 58
18430: PUSH
18431: FOR_IN
18432: IFFALSE 18560
// begin if GetDistUnitXY ( RuRepair , 212 , 129 ) > 15 then
18434: LD_LOC 57
18438: PPUSH
18439: LD_INT 212
18441: PPUSH
18442: LD_INT 129
18444: PPUSH
18445: CALL_OW 297
18449: PUSH
18450: LD_INT 15
18452: GREATER
18453: IFFALSE 18470
// ComMoveXY ( RuRepair , 212 , 129 ) ;
18455: LD_LOC 57
18459: PPUSH
18460: LD_INT 212
18462: PPUSH
18463: LD_INT 129
18465: PPUSH
18466: CALL_OW 111
// for RuMech in RuRepairmen do
18470: LD_ADDR_LOC 60
18474: PUSH
18475: LD_LOC 59
18479: PUSH
18480: FOR_IN
18481: IFFALSE 18556
// begin if ( GetDistUnits ( RuMech , RuRepair ) < 20 or GetDistUnits ( IsInUnit ( RuMech ) , RuRepair ) < 20 ) and not IsBusy ( RuMech ) then
18483: LD_LOC 60
18487: PPUSH
18488: LD_LOC 57
18492: PPUSH
18493: CALL_OW 296
18497: PUSH
18498: LD_INT 20
18500: LESS
18501: PUSH
18502: LD_LOC 60
18506: PPUSH
18507: CALL_OW 310
18511: PPUSH
18512: LD_LOC 57
18516: PPUSH
18517: CALL_OW 296
18521: PUSH
18522: LD_INT 20
18524: LESS
18525: OR
18526: PUSH
18527: LD_LOC 60
18531: PPUSH
18532: CALL_OW 315
18536: NOT
18537: AND
18538: IFFALSE 18554
// AddComRepairVehicle ( RuMech , RuRepair ) ;
18540: LD_LOC 60
18544: PPUSH
18545: LD_LOC 57
18549: PPUSH
18550: CALL_OW 189
// end ;
18554: GO 18480
18556: POP
18557: POP
// end ;
18558: GO 18431
18560: POP
18561: POP
// end ; end ;
18562: END
// every 30 30$00 trigger RuAttackEnabled = 1 do
18563: LD_EXP 80
18567: PUSH
18568: LD_INT 1
18570: EQUAL
18571: IFFALSE 18661
18573: GO 18575
18575: DISABLE
// begin enable ;
18576: ENABLE
// ComBuildBehemoth ( RuMech1 , b_behemoth , 217 , 155 , 5 ) ;
18577: LD_EXP 69
18581: PPUSH
18582: LD_INT 37
18584: PPUSH
18585: LD_INT 217
18587: PPUSH
18588: LD_INT 155
18590: PPUSH
18591: LD_INT 5
18593: PPUSH
18594: CALL_OW 170
// ComBuildBehemoth ( RuMech2 , b_behemoth , 205 , 127 , 4 ) ;
18598: LD_EXP 70
18602: PPUSH
18603: LD_INT 37
18605: PPUSH
18606: LD_INT 205
18608: PPUSH
18609: LD_INT 127
18611: PPUSH
18612: LD_INT 4
18614: PPUSH
18615: CALL_OW 170
// ComBuildBehemoth ( RuMech3 , b_behemoth , 214 , 127 , 3 ) ;
18619: LD_EXP 71
18623: PPUSH
18624: LD_INT 37
18626: PPUSH
18627: LD_INT 214
18629: PPUSH
18630: LD_INT 127
18632: PPUSH
18633: LD_INT 3
18635: PPUSH
18636: CALL_OW 170
// ComBuildBehemoth ( RuMech4 , b_behemoth , 226 , 147 , 5 ) ;
18640: LD_EXP 72
18644: PPUSH
18645: LD_INT 37
18647: PPUSH
18648: LD_INT 226
18650: PPUSH
18651: LD_INT 147
18653: PPUSH
18654: LD_INT 5
18656: PPUSH
18657: CALL_OW 170
// end ; end_of_file
18661: END
// var Sabotaged , List , UnitInList , CMD , randomSoldier ; every 0 0$0.1 do
18662: GO 18664
18664: DISABLE
// begin Sabotaged = 0 ;
18665: LD_ADDR_LOC 61
18669: PUSH
18670: LD_INT 0
18672: ST_TO_ADDR
// end ;
18673: END
// on WeaponPlaced ( build , fac ) do if Sabotaged = 0 then
18674: LD_LOC 61
18678: PUSH
18679: LD_INT 0
18681: EQUAL
18682: IFFALSE 18768
// begin if ( getBWeapon ( build ) = us_rocket_launcher or getBWeapon ( build ) = ru_rocket_launcher or getBWeapon ( build ) = ru_rocket or getBWeapon ( build ) = ar_rocket_launcher ) and getSide ( build ) = 4 then
18684: LD_VAR 0 1
18688: PPUSH
18689: CALL_OW 269
18693: PUSH
18694: LD_INT 7
18696: EQUAL
18697: PUSH
18698: LD_VAR 0 1
18702: PPUSH
18703: CALL_OW 269
18707: PUSH
18708: LD_INT 45
18710: EQUAL
18711: OR
18712: PUSH
18713: LD_VAR 0 1
18717: PPUSH
18718: CALL_OW 269
18722: PUSH
18723: LD_INT 47
18725: EQUAL
18726: OR
18727: PUSH
18728: LD_VAR 0 1
18732: PPUSH
18733: CALL_OW 269
18737: PUSH
18738: LD_INT 28
18740: EQUAL
18741: OR
18742: PUSH
18743: LD_VAR 0 1
18747: PPUSH
18748: CALL_OW 255
18752: PUSH
18753: LD_INT 4
18755: EQUAL
18756: AND
18757: IFFALSE 18768
// begin BlowItUp ( build ) ;
18759: LD_VAR 0 1
18763: PPUSH
18764: CALL 18868 0 1
// end ; end ;
18768: PPOPN 2
18770: END
// on VehicleConstructed ( veh , fac ) do if Sabotaged = 0 then
18771: LD_LOC 61
18775: PUSH
18776: LD_INT 0
18778: EQUAL
18779: IFFALSE 18865
// begin if ( getWeapon ( veh ) = us_rocket_launcher or getWeapon ( veh ) = ru_rocket_launcher or getWeapon ( veh ) = ru_rocket or getWeapon ( veh ) = ar_rocket_launcher ) and getSide ( veh ) = 4 then
18781: LD_VAR 0 1
18785: PPUSH
18786: CALL_OW 264
18790: PUSH
18791: LD_INT 7
18793: EQUAL
18794: PUSH
18795: LD_VAR 0 1
18799: PPUSH
18800: CALL_OW 264
18804: PUSH
18805: LD_INT 45
18807: EQUAL
18808: OR
18809: PUSH
18810: LD_VAR 0 1
18814: PPUSH
18815: CALL_OW 264
18819: PUSH
18820: LD_INT 47
18822: EQUAL
18823: OR
18824: PUSH
18825: LD_VAR 0 1
18829: PPUSH
18830: CALL_OW 264
18834: PUSH
18835: LD_INT 28
18837: EQUAL
18838: OR
18839: PUSH
18840: LD_VAR 0 1
18844: PPUSH
18845: CALL_OW 255
18849: PUSH
18850: LD_INT 4
18852: EQUAL
18853: AND
18854: IFFALSE 18865
// begin BlowItUp ( veh ) ;
18856: LD_VAR 0 1
18860: PPUSH
18861: CALL 18868 0 1
// end ; end ;
18865: PPOPN 2
18867: END
// function BlowItUp ( Sabot ) ; begin
18868: LD_INT 0
18870: PPUSH
// sabotaged = 1 ;
18871: LD_ADDR_LOC 61
18875: PUSH
18876: LD_INT 1
18878: ST_TO_ADDR
// wait ( 0 0$3 ) ;
18879: LD_INT 105
18881: PPUSH
18882: CALL_OW 67
// CenterNowOnUnits ( Sabot ) ;
18886: LD_VAR 0 1
18890: PPUSH
18891: CALL_OW 87
// KillUnit ( Sabot ) ;
18895: LD_VAR 0 1
18899: PPUSH
18900: CALL_OW 66
// wait ( 0 0$2 ) ;
18904: LD_INT 70
18906: PPUSH
18907: CALL_OW 67
// Dialogueon ;
18911: CALL_OW 6
// if IsDead ( Madison ) then
18915: LD_INT 1915
18917: PPUSH
18918: CALL_OW 301
18922: IFFALSE 18934
// CMD = Greene else
18924: LD_ADDR_LOC 64
18928: PUSH
18929: LD_INT 1913
18931: ST_TO_ADDR
18932: GO 18942
// CMD = Madison ;
18934: LD_ADDR_LOC 64
18938: PUSH
18939: LD_INT 1915
18941: ST_TO_ADDR
// if Islive ( CyBoss ) then
18942: LD_INT 1897
18944: PPUSH
18945: CALL_OW 300
18949: IFFALSE 18961
// RandomSoldier = CyBoss else
18951: LD_ADDR_LOC 65
18955: PUSH
18956: LD_INT 1897
18958: ST_TO_ADDR
18959: GO 18974
// randomSoldier = randomPerson ( 4 ) ;
18961: LD_ADDR_LOC 65
18965: PUSH
18966: LD_INT 4
18968: PPUSH
18969: CALL 20497 0 1
18973: ST_TO_ADDR
// if RandomSoldier = Greene or RandomSoldier = Madison then
18974: LD_LOC 65
18978: PUSH
18979: LD_INT 1913
18981: EQUAL
18982: PUSH
18983: LD_LOC 65
18987: PUSH
18988: LD_INT 1915
18990: EQUAL
18991: OR
18992: IFFALSE 19007
// randomsoldier = Randomperson ( 4 ) ;
18994: LD_ADDR_LOC 65
18998: PUSH
18999: LD_INT 4
19001: PPUSH
19002: CALL 20497 0 1
19006: ST_TO_ADDR
// Say ( CMD , Rockets1 ) ;
19007: LD_LOC 64
19011: PPUSH
19012: LD_STRING Rockets1
19014: PPUSH
19015: CALL_OW 88
// say ( randomSoldier , Rockets2 ) ;
19019: LD_LOC 65
19023: PPUSH
19024: LD_STRING Rockets2
19026: PPUSH
19027: CALL_OW 88
// Say ( CMD , Rockets3 ) ;
19031: LD_LOC 64
19035: PPUSH
19036: LD_STRING Rockets3
19038: PPUSH
19039: CALL_OW 88
// if difficulty < 3 then
19043: LD_OWVAR 67
19047: PUSH
19048: LD_INT 3
19050: LESS
19051: IFFALSE 19060
// Query ( RocketsInfo ) ;
19053: LD_STRING RocketsInfo
19055: PPUSH
19056: CALL_OW 97
// SetTech ( tech_rocket , 4 , 1 ) ;
19060: LD_INT 40
19062: PPUSH
19063: LD_INT 4
19065: PPUSH
19066: LD_INT 1
19068: PPUSH
19069: CALL_OW 322
// SetTechProgress ( tech_rocket , 4 , 1 ) ;
19073: LD_INT 40
19075: PPUSH
19076: LD_INT 4
19078: PPUSH
19079: LD_INT 1
19081: PPUSH
19082: CALL_OW 327
// if difficulty = 3 then
19086: LD_OWVAR 67
19090: PUSH
19091: LD_INT 3
19093: EQUAL
19094: IFFALSE 19133
// begin Say ( randomSoldier , Rockets21 ) ;
19096: LD_LOC 65
19100: PPUSH
19101: LD_STRING Rockets21
19103: PPUSH
19104: CALL_OW 88
// Say ( CMD , Rockets22 ) ;
19108: LD_LOC 64
19112: PPUSH
19113: LD_STRING Rockets22
19115: PPUSH
19116: CALL_OW 88
// SetTech ( tech_rocket , 4 , 0 ) ;
19120: LD_INT 40
19122: PPUSH
19123: LD_INT 4
19125: PPUSH
19126: LD_INT 0
19128: PPUSH
19129: CALL_OW 322
// end ; Dialogueoff ;
19133: CALL_OW 7
// end ;
19137: LD_VAR 0 2
19141: RET
// on ResearchComplete ( tech , lab ) do begin if tech = tech_rocket and getside ( lab ) = 4 and sabotaged = 1 and difficulty < 3 then
19142: LD_VAR 0 1
19146: PUSH
19147: LD_INT 40
19149: EQUAL
19150: PUSH
19151: LD_VAR 0 2
19155: PPUSH
19156: CALL_OW 255
19160: PUSH
19161: LD_INT 4
19163: EQUAL
19164: AND
19165: PUSH
19166: LD_LOC 61
19170: PUSH
19171: LD_INT 1
19173: EQUAL
19174: AND
19175: PUSH
19176: LD_OWVAR 67
19180: PUSH
19181: LD_INT 3
19183: LESS
19184: AND
19185: IFFALSE 19315
// begin if IsDead ( Madison ) then
19187: LD_INT 1915
19189: PPUSH
19190: CALL_OW 301
19194: IFFALSE 19206
// CMD = Greene else
19196: LD_ADDR_LOC 64
19200: PUSH
19201: LD_INT 1913
19203: ST_TO_ADDR
19204: GO 19214
// CMD = Madison ;
19206: LD_ADDR_LOC 64
19210: PUSH
19211: LD_INT 1915
19213: ST_TO_ADDR
// if Islive ( CyBoss ) then
19214: LD_INT 1897
19216: PPUSH
19217: CALL_OW 300
19221: IFFALSE 19233
// RandomSoldier = CyBoss else
19223: LD_ADDR_LOC 65
19227: PUSH
19228: LD_INT 1897
19230: ST_TO_ADDR
19231: GO 19246
// randomSoldier = randomPerson ( 4 ) ;
19233: LD_ADDR_LOC 65
19237: PUSH
19238: LD_INT 4
19240: PPUSH
19241: CALL 20497 0 1
19245: ST_TO_ADDR
// if RandomSoldier = Greene or RandomSoldier = Madison then
19246: LD_LOC 65
19250: PUSH
19251: LD_INT 1913
19253: EQUAL
19254: PUSH
19255: LD_LOC 65
19259: PUSH
19260: LD_INT 1915
19262: EQUAL
19263: OR
19264: IFFALSE 19279
// randomsoldier = Randomperson ( 4 ) ;
19266: LD_ADDR_LOC 65
19270: PUSH
19271: LD_INT 4
19273: PPUSH
19274: CALL 20497 0 1
19278: ST_TO_ADDR
// Say ( randomSoldier , Rockets11 ) ;
19279: LD_LOC 65
19283: PPUSH
19284: LD_STRING Rockets11
19286: PPUSH
19287: CALL_OW 88
// Say ( CMD , Rockets12 ) ;
19291: LD_LOC 64
19295: PPUSH
19296: LD_STRING Rockets12
19298: PPUSH
19299: CALL_OW 88
// Say ( randomSoldier , Rockets13 ) ;
19303: LD_LOC 65
19307: PPUSH
19308: LD_STRING Rockets13
19310: PPUSH
19311: CALL_OW 88
// end ; end ; end_of_file
19315: PPOPN 2
19317: END
// export function Min ( num1 , num2 ) ; begin
19318: LD_INT 0
19320: PPUSH
// if ( num1 < num2 ) then
19321: LD_VAR 0 1
19325: PUSH
19326: LD_VAR 0 2
19330: LESS
19331: IFFALSE 19345
// result = num1 else
19333: LD_ADDR_VAR 0 3
19337: PUSH
19338: LD_VAR 0 1
19342: ST_TO_ADDR
19343: GO 19355
// result = num2 ;
19345: LD_ADDR_VAR 0 3
19349: PUSH
19350: LD_VAR 0 2
19354: ST_TO_ADDR
// end ;
19355: LD_VAR 0 3
19359: RET
// var EA , pool , eng ; export function RepairOrder ( un ) ; begin
19360: LD_INT 0
19362: PPUSH
// pool = FilterAllUnits ( [ [ f_side , getside ( un ) ] , [ f_class , 2 ] ] ) ;
19363: LD_ADDR_LOC 67
19367: PUSH
19368: LD_INT 22
19370: PUSH
19371: LD_VAR 0 1
19375: PPUSH
19376: CALL_OW 255
19380: PUSH
19381: EMPTY
19382: LIST
19383: LIST
19384: PUSH
19385: LD_INT 25
19387: PUSH
19388: LD_INT 2
19390: PUSH
19391: EMPTY
19392: LIST
19393: LIST
19394: PUSH
19395: EMPTY
19396: LIST
19397: LIST
19398: PPUSH
19399: CALL_OW 69
19403: ST_TO_ADDR
// EA = 0 ;
19404: LD_ADDR_LOC 66
19408: PUSH
19409: LD_INT 0
19411: ST_TO_ADDR
// for eng in pool do
19412: LD_ADDR_LOC 68
19416: PUSH
19417: LD_LOC 67
19421: PUSH
19422: FOR_IN
19423: IFFALSE 19470
// if GetLives ( eng ) > 500 and not IsDead ( Eng ) then
19425: LD_LOC 68
19429: PPUSH
19430: CALL_OW 256
19434: PUSH
19435: LD_INT 500
19437: GREATER
19438: PUSH
19439: LD_LOC 68
19443: PPUSH
19444: CALL_OW 301
19448: NOT
19449: AND
19450: IFFALSE 19468
// EA = EA ^ Eng ;
19452: LD_ADDR_LOC 66
19456: PUSH
19457: LD_LOC 66
19461: PUSH
19462: LD_LOC 68
19466: ADD
19467: ST_TO_ADDR
19468: GO 19422
19470: POP
19471: POP
// AddComRepairBuilding ( NearestUnitToUnit ( EA , un ) , un ) ;
19472: LD_LOC 66
19476: PPUSH
19477: LD_VAR 0 1
19481: PPUSH
19482: CALL_OW 74
19486: PPUSH
19487: LD_VAR 0 1
19491: PPUSH
19492: CALL_OW 190
// end ;
19496: LD_VAR 0 2
19500: RET
// export function LivesBetween ( un , a , b ) ; begin
19501: LD_INT 0
19503: PPUSH
// result = false ;
19504: LD_ADDR_VAR 0 4
19508: PUSH
19509: LD_INT 0
19511: ST_TO_ADDR
// if a = b then
19512: LD_VAR 0 2
19516: PUSH
19517: LD_VAR 0 3
19521: EQUAL
19522: IFFALSE 19551
// begin if a = Getlives ( un ) then
19524: LD_VAR 0 2
19528: PUSH
19529: LD_VAR 0 1
19533: PPUSH
19534: CALL_OW 256
19538: EQUAL
19539: IFFALSE 19549
// result = true end else
19541: LD_ADDR_VAR 0 4
19545: PUSH
19546: LD_INT 1
19548: ST_TO_ADDR
19549: GO 19657
// if a > b then
19551: LD_VAR 0 2
19555: PUSH
19556: LD_VAR 0 3
19560: GREATER
19561: IFFALSE 19611
// begin if GetLives ( un ) < a + 1 and GetLives ( un ) > b then
19563: LD_VAR 0 1
19567: PPUSH
19568: CALL_OW 256
19572: PUSH
19573: LD_VAR 0 2
19577: PUSH
19578: LD_INT 1
19580: PLUS
19581: LESS
19582: PUSH
19583: LD_VAR 0 1
19587: PPUSH
19588: CALL_OW 256
19592: PUSH
19593: LD_VAR 0 3
19597: GREATER
19598: AND
19599: IFFALSE 19609
// result = true ;
19601: LD_ADDR_VAR 0 4
19605: PUSH
19606: LD_INT 1
19608: ST_TO_ADDR
// end else
19609: GO 19657
// if GetLives ( un ) < b + 1 and GetLives ( un ) > a then
19611: LD_VAR 0 1
19615: PPUSH
19616: CALL_OW 256
19620: PUSH
19621: LD_VAR 0 3
19625: PUSH
19626: LD_INT 1
19628: PLUS
19629: LESS
19630: PUSH
19631: LD_VAR 0 1
19635: PPUSH
19636: CALL_OW 256
19640: PUSH
19641: LD_VAR 0 2
19645: GREATER
19646: AND
19647: IFFALSE 19657
// result = true ;
19649: LD_ADDR_VAR 0 4
19653: PUSH
19654: LD_INT 1
19656: ST_TO_ADDR
// end ;
19657: LD_VAR 0 4
19661: RET
// export function ReassignID ( X , Y , un ) ; begin
19662: LD_INT 0
19664: PPUSH
// if X = 123 and Y = 2 then
19665: LD_VAR 0 1
19669: PUSH
19670: LD_INT 123
19672: EQUAL
19673: PUSH
19674: LD_VAR 0 2
19678: PUSH
19679: LD_INT 2
19681: EQUAL
19682: AND
19683: IFFALSE 19695
// un = LoyalGun1 ;
19685: LD_ADDR_VAR 0 3
19689: PUSH
19690: LD_EXP 3
19694: ST_TO_ADDR
// if X = 125 and Y = 5 then
19695: LD_VAR 0 1
19699: PUSH
19700: LD_INT 125
19702: EQUAL
19703: PUSH
19704: LD_VAR 0 2
19708: PUSH
19709: LD_INT 5
19711: EQUAL
19712: AND
19713: IFFALSE 19725
// un = LoyalGun2 ;
19715: LD_ADDR_VAR 0 3
19719: PUSH
19720: LD_EXP 4
19724: ST_TO_ADDR
// if X = 129 and Y = 12 then
19725: LD_VAR 0 1
19729: PUSH
19730: LD_INT 129
19732: EQUAL
19733: PUSH
19734: LD_VAR 0 2
19738: PUSH
19739: LD_INT 12
19741: EQUAL
19742: AND
19743: IFFALSE 19755
// un = LoyalGun3 ;
19745: LD_ADDR_VAR 0 3
19749: PUSH
19750: LD_EXP 5
19754: ST_TO_ADDR
// if X = 139 and Y = 24 then
19755: LD_VAR 0 1
19759: PUSH
19760: LD_INT 139
19762: EQUAL
19763: PUSH
19764: LD_VAR 0 2
19768: PUSH
19769: LD_INT 24
19771: EQUAL
19772: AND
19773: IFFALSE 19785
// un = LoyalGun4 ;
19775: LD_ADDR_VAR 0 3
19779: PUSH
19780: LD_EXP 6
19784: ST_TO_ADDR
// if X = 154 and Y = 35 then
19785: LD_VAR 0 1
19789: PUSH
19790: LD_INT 154
19792: EQUAL
19793: PUSH
19794: LD_VAR 0 2
19798: PUSH
19799: LD_INT 35
19801: EQUAL
19802: AND
19803: IFFALSE 19815
// un = LoyalGun5 ;
19805: LD_ADDR_VAR 0 3
19809: PUSH
19810: LD_EXP 7
19814: ST_TO_ADDR
// if X = 154 and Y = 38 then
19815: LD_VAR 0 1
19819: PUSH
19820: LD_INT 154
19822: EQUAL
19823: PUSH
19824: LD_VAR 0 2
19828: PUSH
19829: LD_INT 38
19831: EQUAL
19832: AND
19833: IFFALSE 19845
// un = LoyalGun6 ;
19835: LD_ADDR_VAR 0 3
19839: PUSH
19840: LD_EXP 8
19844: ST_TO_ADDR
// if X = 171 and Y = 46 then
19845: LD_VAR 0 1
19849: PUSH
19850: LD_INT 171
19852: EQUAL
19853: PUSH
19854: LD_VAR 0 2
19858: PUSH
19859: LD_INT 46
19861: EQUAL
19862: AND
19863: IFFALSE 19875
// un = LoyalGun7 ;
19865: LD_ADDR_VAR 0 3
19869: PUSH
19870: LD_EXP 9
19874: ST_TO_ADDR
// if X = 171 and Y = 50 then
19875: LD_VAR 0 1
19879: PUSH
19880: LD_INT 171
19882: EQUAL
19883: PUSH
19884: LD_VAR 0 2
19888: PUSH
19889: LD_INT 50
19891: EQUAL
19892: AND
19893: IFFALSE 19905
// un = LoyalGun8 ;
19895: LD_ADDR_VAR 0 3
19899: PUSH
19900: LD_EXP 10
19904: ST_TO_ADDR
// if X = 197 and Y = 150 then
19905: LD_VAR 0 1
19909: PUSH
19910: LD_INT 197
19912: EQUAL
19913: PUSH
19914: LD_VAR 0 2
19918: PUSH
19919: LD_INT 150
19921: EQUAL
19922: AND
19923: IFFALSE 19935
// un = RuGun1 ;
19925: LD_ADDR_VAR 0 3
19929: PUSH
19930: LD_EXP 47
19934: ST_TO_ADDR
// if X = 195 and Y = 142 then
19935: LD_VAR 0 1
19939: PUSH
19940: LD_INT 195
19942: EQUAL
19943: PUSH
19944: LD_VAR 0 2
19948: PUSH
19949: LD_INT 142
19951: EQUAL
19952: AND
19953: IFFALSE 19965
// un = RuGun2 ;
19955: LD_ADDR_VAR 0 3
19959: PUSH
19960: LD_EXP 48
19964: ST_TO_ADDR
// if X = 193 and Y = 119 then
19965: LD_VAR 0 1
19969: PUSH
19970: LD_INT 193
19972: EQUAL
19973: PUSH
19974: LD_VAR 0 2
19978: PUSH
19979: LD_INT 119
19981: EQUAL
19982: AND
19983: IFFALSE 19995
// un = RuGun3 ;
19985: LD_ADDR_VAR 0 3
19989: PUSH
19990: LD_EXP 49
19994: ST_TO_ADDR
// if X = 192 and Y = 116 then
19995: LD_VAR 0 1
19999: PUSH
20000: LD_INT 192
20002: EQUAL
20003: PUSH
20004: LD_VAR 0 2
20008: PUSH
20009: LD_INT 116
20011: EQUAL
20012: AND
20013: IFFALSE 20025
// un = RuGun4 ;
20015: LD_ADDR_VAR 0 3
20019: PUSH
20020: LD_EXP 50
20024: ST_TO_ADDR
// if X = 205 and Y = 112 then
20025: LD_VAR 0 1
20029: PUSH
20030: LD_INT 205
20032: EQUAL
20033: PUSH
20034: LD_VAR 0 2
20038: PUSH
20039: LD_INT 112
20041: EQUAL
20042: AND
20043: IFFALSE 20055
// un = RuGun5 ;
20045: LD_ADDR_VAR 0 3
20049: PUSH
20050: LD_EXP 51
20054: ST_TO_ADDR
// if X = 205 and Y = 112 then
20055: LD_VAR 0 1
20059: PUSH
20060: LD_INT 205
20062: EQUAL
20063: PUSH
20064: LD_VAR 0 2
20068: PUSH
20069: LD_INT 112
20071: EQUAL
20072: AND
20073: IFFALSE 20085
// un = RuGun6 ;
20075: LD_ADDR_VAR 0 3
20079: PUSH
20080: LD_EXP 52
20084: ST_TO_ADDR
// if X = 154 and Y = 16 then
20085: LD_VAR 0 1
20089: PUSH
20090: LD_INT 154
20092: EQUAL
20093: PUSH
20094: LD_VAR 0 2
20098: PUSH
20099: LD_INT 16
20101: EQUAL
20102: AND
20103: IFFALSE 20115
// un = BlueBase ;
20105: LD_ADDR_VAR 0 3
20109: PUSH
20110: LD_EXP 16
20114: ST_TO_ADDR
// if X = 134 and Y = 4 then
20115: LD_VAR 0 1
20119: PUSH
20120: LD_INT 134
20122: EQUAL
20123: PUSH
20124: LD_VAR 0 2
20128: PUSH
20129: LD_INT 4
20131: EQUAL
20132: AND
20133: IFFALSE 20145
// un = AmLab1 ;
20135: LD_ADDR_VAR 0 3
20139: PUSH
20140: LD_EXP 13
20144: ST_TO_ADDR
// if X = 166 and Y = 34 then
20145: LD_VAR 0 1
20149: PUSH
20150: LD_INT 166
20152: EQUAL
20153: PUSH
20154: LD_VAR 0 2
20158: PUSH
20159: LD_INT 34
20161: EQUAL
20162: AND
20163: IFFALSE 20175
// un = AmLab2 ;
20165: LD_ADDR_VAR 0 3
20169: PUSH
20170: LD_EXP 14
20174: ST_TO_ADDR
// if X = 141 and Y = 12 then
20175: LD_VAR 0 1
20179: PUSH
20180: LD_INT 141
20182: EQUAL
20183: PUSH
20184: LD_VAR 0 2
20188: PUSH
20189: LD_INT 12
20191: EQUAL
20192: AND
20193: IFFALSE 20205
// un = AmFac1 ;
20195: LD_ADDR_VAR 0 3
20199: PUSH
20200: LD_EXP 15
20204: ST_TO_ADDR
// if X = 158 and Y = 41 then
20205: LD_VAR 0 1
20209: PUSH
20210: LD_INT 158
20212: EQUAL
20213: PUSH
20214: LD_VAR 0 2
20218: PUSH
20219: LD_INT 41
20221: EQUAL
20222: AND
20223: IFFALSE 20235
// un = AmBar ;
20225: LD_ADDR_VAR 0 3
20229: PUSH
20230: LD_EXP 11
20234: ST_TO_ADDR
// if X = 145 and Y = 23 then
20235: LD_VAR 0 1
20239: PUSH
20240: LD_INT 145
20242: EQUAL
20243: PUSH
20244: LD_VAR 0 2
20248: PUSH
20249: LD_INT 23
20251: EQUAL
20252: AND
20253: IFFALSE 20265
// un = CommandoBar ;
20255: LD_ADDR_VAR 0 3
20259: PUSH
20260: LD_EXP 12
20264: ST_TO_ADDR
// if X = 213 and Y = 140 then
20265: LD_VAR 0 1
20269: PUSH
20270: LD_INT 213
20272: EQUAL
20273: PUSH
20274: LD_VAR 0 2
20278: PUSH
20279: LD_INT 140
20281: EQUAL
20282: AND
20283: IFFALSE 20295
// un = RedBase ;
20285: LD_ADDR_VAR 0 3
20289: PUSH
20290: LD_EXP 54
20294: ST_TO_ADDR
// if X = 212 and Y = 145 then
20295: LD_VAR 0 1
20299: PUSH
20300: LD_INT 212
20302: EQUAL
20303: PUSH
20304: LD_VAR 0 2
20308: PUSH
20309: LD_INT 145
20311: EQUAL
20312: AND
20313: IFFALSE 20325
// un = RuLab1 ;
20315: LD_ADDR_VAR 0 3
20319: PUSH
20320: LD_EXP 56
20324: ST_TO_ADDR
// if X = 224 and Y = 141 then
20325: LD_VAR 0 1
20329: PUSH
20330: LD_INT 224
20332: EQUAL
20333: PUSH
20334: LD_VAR 0 2
20338: PUSH
20339: LD_INT 141
20341: EQUAL
20342: AND
20343: IFFALSE 20355
// un = RuLab2 ;
20345: LD_ADDR_VAR 0 3
20349: PUSH
20350: LD_EXP 57
20354: ST_TO_ADDR
// if X = 223 and Y = 152 then
20355: LD_VAR 0 1
20359: PUSH
20360: LD_INT 223
20362: EQUAL
20363: PUSH
20364: LD_VAR 0 2
20368: PUSH
20369: LD_INT 152
20371: EQUAL
20372: AND
20373: IFFALSE 20385
// un = RuFac1 ;
20375: LD_ADDR_VAR 0 3
20379: PUSH
20380: LD_EXP 58
20384: ST_TO_ADDR
// if X = 206 and Y = 152 then
20385: LD_VAR 0 1
20389: PUSH
20390: LD_INT 206
20392: EQUAL
20393: PUSH
20394: LD_VAR 0 2
20398: PUSH
20399: LD_INT 152
20401: EQUAL
20402: AND
20403: IFFALSE 20415
// un = RuFac2 ;
20405: LD_ADDR_VAR 0 3
20409: PUSH
20410: LD_EXP 59
20414: ST_TO_ADDR
// if X = 198 and Y = 123 then
20415: LD_VAR 0 1
20419: PUSH
20420: LD_INT 198
20422: EQUAL
20423: PUSH
20424: LD_VAR 0 2
20428: PUSH
20429: LD_INT 123
20431: EQUAL
20432: AND
20433: IFFALSE 20445
// un = RuBar ;
20435: LD_ADDR_VAR 0 3
20439: PUSH
20440: LD_EXP 53
20444: ST_TO_ADDR
// end ;
20445: LD_VAR 0 4
20449: RET
// var _x ; export function size ( _array ) ; begin
20450: LD_INT 0
20452: PPUSH
// result = 0 ;
20453: LD_ADDR_VAR 0 2
20457: PUSH
20458: LD_INT 0
20460: ST_TO_ADDR
// for _x in _array do
20461: LD_ADDR_LOC 69
20465: PUSH
20466: LD_VAR 0 1
20470: PUSH
20471: FOR_IN
20472: IFFALSE 20490
// result = result + 1 ;
20474: LD_ADDR_VAR 0 2
20478: PUSH
20479: LD_VAR 0 2
20483: PUSH
20484: LD_INT 1
20486: PLUS
20487: ST_TO_ADDR
20488: GO 20471
20490: POP
20491: POP
// end ;
20492: LD_VAR 0 2
20496: RET
// var PersonList , PersonInList ; export function RandomPerson ( side ) ; begin
20497: LD_INT 0
20499: PPUSH
// result = 0 ;
20500: LD_ADDR_VAR 0 2
20504: PUSH
20505: LD_INT 0
20507: ST_TO_ADDR
// PersonList = FilterAllUnits ( [ [ f_side , side ] , [ f_or , [ f_sex , 1 ] , [ f_sex , 2 ] ] , [ f_OK ] ] ) ;
20508: LD_ADDR_LOC 70
20512: PUSH
20513: LD_INT 22
20515: PUSH
20516: LD_VAR 0 1
20520: PUSH
20521: EMPTY
20522: LIST
20523: LIST
20524: PUSH
20525: LD_INT 2
20527: PUSH
20528: LD_INT 26
20530: PUSH
20531: LD_INT 1
20533: PUSH
20534: EMPTY
20535: LIST
20536: LIST
20537: PUSH
20538: LD_INT 26
20540: PUSH
20541: LD_INT 2
20543: PUSH
20544: EMPTY
20545: LIST
20546: LIST
20547: PUSH
20548: EMPTY
20549: LIST
20550: LIST
20551: LIST
20552: PUSH
20553: LD_INT 50
20555: PUSH
20556: EMPTY
20557: LIST
20558: PUSH
20559: EMPTY
20560: LIST
20561: LIST
20562: LIST
20563: PPUSH
20564: CALL_OW 69
20568: ST_TO_ADDR
// if PersonList then
20569: LD_LOC 70
20573: IFFALSE 20604
// result = PersonList [ rand ( 1 , size ( PersonList ) ) ] ;
20575: LD_ADDR_VAR 0 2
20579: PUSH
20580: LD_LOC 70
20584: PUSH
20585: LD_INT 1
20587: PPUSH
20588: LD_LOC 70
20592: PPUSH
20593: CALL 20450 0 1
20597: PPUSH
20598: CALL_OW 12
20602: ARRAY
20603: ST_TO_ADDR
// end ;
20604: LD_VAR 0 2
20608: RET
// export function SeesAnyone ( Spotter , Spotted ) ; begin
20609: LD_INT 0
20611: PPUSH
// result = 0 ;
20612: LD_ADDR_VAR 0 3
20616: PUSH
20617: LD_INT 0
20619: ST_TO_ADDR
// PersonList = FilterAllUnits ( [ [ f_side , Spotted ] , [ f_or , [ f_sex , 1 ] , [ f_sex , 2 ] ] , [ f_OK ] ] ) ;
20620: LD_ADDR_LOC 70
20624: PUSH
20625: LD_INT 22
20627: PUSH
20628: LD_VAR 0 2
20632: PUSH
20633: EMPTY
20634: LIST
20635: LIST
20636: PUSH
20637: LD_INT 2
20639: PUSH
20640: LD_INT 26
20642: PUSH
20643: LD_INT 1
20645: PUSH
20646: EMPTY
20647: LIST
20648: LIST
20649: PUSH
20650: LD_INT 26
20652: PUSH
20653: LD_INT 2
20655: PUSH
20656: EMPTY
20657: LIST
20658: LIST
20659: PUSH
20660: EMPTY
20661: LIST
20662: LIST
20663: LIST
20664: PUSH
20665: LD_INT 50
20667: PUSH
20668: EMPTY
20669: LIST
20670: PUSH
20671: EMPTY
20672: LIST
20673: LIST
20674: LIST
20675: PPUSH
20676: CALL_OW 69
20680: ST_TO_ADDR
// for PersonInList in PersonList do
20681: LD_ADDR_LOC 71
20685: PUSH
20686: LD_LOC 70
20690: PUSH
20691: FOR_IN
20692: IFFALSE 20726
// begin if See ( Spotter , PersonInList ) then
20694: LD_VAR 0 1
20698: PPUSH
20699: LD_LOC 71
20703: PPUSH
20704: CALL_OW 292
20708: IFFALSE 20724
// result = result + 1 ;
20710: LD_ADDR_VAR 0 3
20714: PUSH
20715: LD_VAR 0 3
20719: PUSH
20720: LD_INT 1
20722: PLUS
20723: ST_TO_ADDR
// end ;
20724: GO 20691
20726: POP
20727: POP
// end ; end_of_file
20728: LD_VAR 0 3
20732: RET
// every 0 0$01 trigger IsLive ( Commando1 ) and GetSide ( Commando1 ) = 1 and GetClass ( Commando1 ) = Class_Sniper do
20733: LD_EXP 41
20737: PPUSH
20738: CALL_OW 300
20742: PUSH
20743: LD_EXP 41
20747: PPUSH
20748: CALL_OW 255
20752: PUSH
20753: LD_INT 1
20755: EQUAL
20756: AND
20757: PUSH
20758: LD_EXP 41
20762: PPUSH
20763: CALL_OW 257
20767: PUSH
20768: LD_INT 5
20770: EQUAL
20771: AND
20772: IFFALSE 21331
20774: GO 20776
20776: DISABLE
// begin enable ;
20777: ENABLE
// if CC1 = 2 then
20778: LD_EXP 1
20782: PUSH
20783: LD_INT 2
20785: EQUAL
20786: IFFALSE 20843
// begin AddComMoveXY ( Commando1 , 14 , 13 ) ;
20788: LD_EXP 41
20792: PPUSH
20793: LD_INT 14
20795: PPUSH
20796: LD_INT 13
20798: PPUSH
20799: CALL_OW 171
// if GetX ( Commando1 ) < 20 and GetY ( Commando1 ) < 20 then
20803: LD_EXP 41
20807: PPUSH
20808: CALL_OW 250
20812: PUSH
20813: LD_INT 20
20815: LESS
20816: PUSH
20817: LD_EXP 41
20821: PPUSH
20822: CALL_OW 251
20826: PUSH
20827: LD_INT 20
20829: LESS
20830: AND
20831: IFFALSE 20841
// CC1 = 1 ;
20833: LD_ADDR_EXP 1
20837: PUSH
20838: LD_INT 1
20840: ST_TO_ADDR
// end else
20841: GO 21237
// if CC1 < 1 then
20843: LD_EXP 1
20847: PUSH
20848: LD_INT 1
20850: LESS
20851: IFFALSE 20939
// begin if IsOK ( LoyalTele2 ) and not ( IsInArea ( Commando1 , LoyalBase ) ) and not HasTask ( Commando1 ) then
20853: LD_EXP 21
20857: PPUSH
20858: CALL_OW 302
20862: PUSH
20863: LD_EXP 41
20867: PPUSH
20868: LD_INT 12
20870: PPUSH
20871: CALL_OW 308
20875: NOT
20876: AND
20877: PUSH
20878: LD_EXP 41
20882: PPUSH
20883: CALL_OW 314
20887: NOT
20888: AND
20889: IFFALSE 20905
// ComMoveUnit ( Commando1 , LoyalTele2 ) ;
20891: LD_EXP 41
20895: PPUSH
20896: LD_EXP 21
20900: PPUSH
20901: CALL_OW 112
// if not IsInUnit ( Commando1 ) = CommandoBar then
20905: LD_EXP 41
20909: PPUSH
20910: CALL_OW 310
20914: PUSH
20915: LD_EXP 12
20919: EQUAL
20920: NOT
20921: IFFALSE 20937
// AddComEnterUnit ( Commando1 , CommandoBar ) ;
20923: LD_EXP 41
20927: PPUSH
20928: LD_EXP 12
20932: PPUSH
20933: CALL_OW 180
// end else
20937: GO 21237
// if CC1 = 1 then
20939: LD_EXP 1
20943: PUSH
20944: LD_INT 1
20946: EQUAL
20947: IFFALSE 21237
// begin if LivesBetween ( Commando1 , 1000 , 700 ) then
20949: LD_EXP 41
20953: PPUSH
20954: LD_INT 1000
20956: PPUSH
20957: LD_INT 700
20959: PPUSH
20960: CALL 19501 0 3
20964: IFFALSE 21056
// begin if GetLives ( Commando1 ) > 950 and IsInUnit ( Commando1 ) then
20966: LD_EXP 41
20970: PPUSH
20971: CALL_OW 256
20975: PUSH
20976: LD_INT 950
20978: GREATER
20979: PUSH
20980: LD_EXP 41
20984: PPUSH
20985: CALL_OW 310
20989: AND
20990: IFFALSE 21001
// ComExitBuilding ( Commando1 ) ;
20992: LD_EXP 41
20996: PPUSH
20997: CALL_OW 122
// if not IsInUnit ( Commando1 ) then
21001: LD_EXP 41
21005: PPUSH
21006: CALL_OW 310
21010: NOT
21011: IFFALSE 21054
// ComAgressiveMove ( Commando1 , 86 + rand ( - 10 , 10 ) , 139 + rand ( - 10 , 10 ) ) ;
21013: LD_EXP 41
21017: PPUSH
21018: LD_INT 86
21020: PUSH
21021: LD_INT 10
21023: NEG
21024: PPUSH
21025: LD_INT 10
21027: PPUSH
21028: CALL_OW 12
21032: PLUS
21033: PPUSH
21034: LD_INT 139
21036: PUSH
21037: LD_INT 10
21039: NEG
21040: PPUSH
21041: LD_INT 10
21043: PPUSH
21044: CALL_OW 12
21048: PLUS
21049: PPUSH
21050: CALL_OW 114
// end else
21054: GO 21237
// if LivesBetween ( Commando1 , 700 , 500 ) then
21056: LD_EXP 41
21060: PPUSH
21061: LD_INT 700
21063: PPUSH
21064: LD_INT 500
21066: PPUSH
21067: CALL 19501 0 3
21071: IFFALSE 21131
// begin if GetY ( Commando1 ) > 88 then
21073: LD_EXP 41
21077: PPUSH
21078: CALL_OW 251
21082: PUSH
21083: LD_INT 88
21085: GREATER
21086: IFFALSE 21129
// ComMoveXY ( Commando1 , 56 + rand ( - 1 , 1 ) , 84 + rand ( - 1 , 1 ) ) end else
21088: LD_EXP 41
21092: PPUSH
21093: LD_INT 56
21095: PUSH
21096: LD_INT 1
21098: NEG
21099: PPUSH
21100: LD_INT 1
21102: PPUSH
21103: CALL_OW 12
21107: PLUS
21108: PPUSH
21109: LD_INT 84
21111: PUSH
21112: LD_INT 1
21114: NEG
21115: PPUSH
21116: LD_INT 1
21118: PPUSH
21119: CALL_OW 12
21123: PLUS
21124: PPUSH
21125: CALL_OW 111
21129: GO 21237
// if LivesBetween ( Commando1 , 500 , 300 ) then
21131: LD_EXP 41
21135: PPUSH
21136: LD_INT 500
21138: PPUSH
21139: LD_INT 300
21141: PPUSH
21142: CALL 19501 0 3
21146: IFFALSE 21187
// begin if not IsInUnit ( Commando1 ) = ComLab and IsOK ( ComLab ) then
21148: LD_EXP 41
21152: PPUSH
21153: CALL_OW 310
21157: PUSH
21158: LD_INT 1921
21160: EQUAL
21161: NOT
21162: PUSH
21163: LD_INT 1921
21165: PPUSH
21166: CALL_OW 302
21170: AND
21171: IFFALSE 21185
// ComEnterUnit ( Commando1 , ComLab ) ;
21173: LD_EXP 41
21177: PPUSH
21178: LD_INT 1921
21180: PPUSH
21181: CALL_OW 120
// end else
21185: GO 21237
// if ( getLives ( Commando1 ) < 301 and not IsOK ( LoyalTele2 ) ) or getLives ( Commando1 ) < 251 then
21187: LD_EXP 41
21191: PPUSH
21192: CALL_OW 256
21196: PUSH
21197: LD_INT 301
21199: LESS
21200: PUSH
21201: LD_EXP 21
21205: PPUSH
21206: CALL_OW 302
21210: NOT
21211: AND
21212: PUSH
21213: LD_EXP 41
21217: PPUSH
21218: CALL_OW 256
21222: PUSH
21223: LD_INT 251
21225: LESS
21226: OR
21227: IFFALSE 21237
// begin CC1 = 0 ;
21229: LD_ADDR_EXP 1
21233: PUSH
21234: LD_INT 0
21236: ST_TO_ADDR
// end ; end ; if IsInUnit ( Commando1 ) = ComLab then
21237: LD_EXP 41
21241: PPUSH
21242: CALL_OW 310
21246: PUSH
21247: LD_INT 1921
21249: EQUAL
21250: IFFALSE 21283
// SetLives ( Commando1 , min ( 1000 , GetLives ( Commando1 ) + 50 ) ) ;
21252: LD_EXP 41
21256: PPUSH
21257: LD_INT 1000
21259: PPUSH
21260: LD_EXP 41
21264: PPUSH
21265: CALL_OW 256
21269: PUSH
21270: LD_INT 50
21272: PLUS
21273: PPUSH
21274: CALL 19318 0 2
21278: PPUSH
21279: CALL_OW 234
// if IsInUnit ( Commando1 ) = CommandoBar and CC1 = 0 then
21283: LD_EXP 41
21287: PPUSH
21288: CALL_OW 310
21292: PUSH
21293: LD_EXP 12
21297: EQUAL
21298: PUSH
21299: LD_EXP 1
21303: PUSH
21304: LD_INT 0
21306: EQUAL
21307: AND
21308: IFFALSE 21331
// begin SetLives ( Commando1 , 550 ) ;
21310: LD_EXP 41
21314: PPUSH
21315: LD_INT 550
21317: PPUSH
21318: CALL_OW 234
// CC1 = - 1 ;
21322: LD_ADDR_EXP 1
21326: PUSH
21327: LD_INT 1
21329: NEG
21330: ST_TO_ADDR
// end ; end ;
21331: END
// every 0 0$1 + 0 0$0.1 trigger IsLive ( Commando2 ) and GetSide ( Commando2 ) = 1 and GetClass ( Commando2 ) = Class_Bazooker do
21332: LD_EXP 42
21336: PPUSH
21337: CALL_OW 300
21341: PUSH
21342: LD_EXP 42
21346: PPUSH
21347: CALL_OW 255
21351: PUSH
21352: LD_INT 1
21354: EQUAL
21355: AND
21356: PUSH
21357: LD_EXP 42
21361: PPUSH
21362: CALL_OW 257
21366: PUSH
21367: LD_INT 9
21369: EQUAL
21370: AND
21371: IFFALSE 21563
21373: GO 21375
21375: DISABLE
// begin enable ;
21376: ENABLE
// if isInUnit ( Commando2 ) = Bun8 or ( isInUnit ( Commando2 ) = CommandoBar and isInUnit ( Commando3 ) = CommandoBar ) then
21377: LD_EXP 42
21381: PPUSH
21382: CALL_OW 310
21386: PUSH
21387: LD_INT 1442
21389: EQUAL
21390: PUSH
21391: LD_EXP 42
21395: PPUSH
21396: CALL_OW 310
21400: PUSH
21401: LD_EXP 12
21405: EQUAL
21406: PUSH
21407: LD_EXP 43
21411: PPUSH
21412: CALL_OW 310
21416: PUSH
21417: LD_EXP 12
21421: EQUAL
21422: AND
21423: OR
21424: IFFALSE 21476
// begin if WantsToAttack ( Commando2 ) then
21426: LD_EXP 42
21430: PPUSH
21431: CALL_OW 319
21435: IFFALSE 21476
// AddComTimeShift ( Commando2 , GetX ( WantsToAttack ( Commando2 ) ) , GetY ( WantsToAttack ( Commando2 ) ) ) end ;
21437: LD_EXP 42
21441: PPUSH
21442: LD_EXP 42
21446: PPUSH
21447: CALL_OW 319
21451: PPUSH
21452: CALL_OW 250
21456: PPUSH
21457: LD_EXP 42
21461: PPUSH
21462: CALL_OW 319
21466: PPUSH
21467: CALL_OW 251
21471: PPUSH
21472: CALL_OW 214
// if ( IsDying ( Bun8 ) or isDead ( bun8 ) ) and IsOK ( CommandoBar ) and IsLive ( CommandoBar ) then
21476: LD_INT 1442
21478: PPUSH
21479: CALL_OW 303
21483: PUSH
21484: LD_INT 1442
21486: PPUSH
21487: CALL_OW 301
21491: OR
21492: PUSH
21493: LD_EXP 12
21497: PPUSH
21498: CALL_OW 302
21502: AND
21503: PUSH
21504: LD_EXP 12
21508: PPUSH
21509: CALL_OW 300
21513: AND
21514: IFFALSE 21532
// begin ComEnterUnit ( Commando2 , CommandoBar ) ;
21516: LD_EXP 42
21520: PPUSH
21521: LD_EXP 12
21525: PPUSH
21526: CALL_OW 120
// end else
21530: GO 21563
// if not ( IsDying ( Bun8 ) or isDead ( bun8 ) ) then
21532: LD_INT 1442
21534: PPUSH
21535: CALL_OW 303
21539: PUSH
21540: LD_INT 1442
21542: PPUSH
21543: CALL_OW 301
21547: OR
21548: NOT
21549: IFFALSE 21563
// begin ComEnterUnit ( Commando2 , Bun8 ) ;
21551: LD_EXP 42
21555: PPUSH
21556: LD_INT 1442
21558: PPUSH
21559: CALL_OW 120
// end ; end ;
21563: END
// every 0 0$1 + 0 0$0.2 trigger IsLive ( Commando3 ) and GetSide ( Commando3 ) = 1 and GetClass ( Commando3 ) = Class_Bazooker do
21564: LD_EXP 43
21568: PPUSH
21569: CALL_OW 300
21573: PUSH
21574: LD_EXP 43
21578: PPUSH
21579: CALL_OW 255
21583: PUSH
21584: LD_INT 1
21586: EQUAL
21587: AND
21588: PUSH
21589: LD_EXP 43
21593: PPUSH
21594: CALL_OW 257
21598: PUSH
21599: LD_INT 9
21601: EQUAL
21602: AND
21603: IFFALSE 21761
21605: GO 21607
21607: DISABLE
// begin enable ;
21608: ENABLE
// if isInUnit ( Commando3 ) = Bun6 then
21609: LD_EXP 43
21613: PPUSH
21614: CALL_OW 310
21618: PUSH
21619: LD_INT 280
21621: EQUAL
21622: IFFALSE 21674
// begin if WantsToAttack ( Commando3 ) then
21624: LD_EXP 43
21628: PPUSH
21629: CALL_OW 319
21633: IFFALSE 21674
// AddComTimeShift ( Commando3 , GetX ( WantsToAttack ( Commando3 ) ) , GetY ( WantsToAttack ( Commando3 ) ) ) end ;
21635: LD_EXP 43
21639: PPUSH
21640: LD_EXP 43
21644: PPUSH
21645: CALL_OW 319
21649: PPUSH
21650: CALL_OW 250
21654: PPUSH
21655: LD_EXP 43
21659: PPUSH
21660: CALL_OW 319
21664: PPUSH
21665: CALL_OW 251
21669: PPUSH
21670: CALL_OW 214
// if ( IsDying ( Bun6 ) or isDead ( bun6 ) ) and IsOK ( CommandoBar ) and IsLive ( CommandoBar ) then
21674: LD_INT 280
21676: PPUSH
21677: CALL_OW 303
21681: PUSH
21682: LD_INT 280
21684: PPUSH
21685: CALL_OW 301
21689: OR
21690: PUSH
21691: LD_EXP 12
21695: PPUSH
21696: CALL_OW 302
21700: AND
21701: PUSH
21702: LD_EXP 12
21706: PPUSH
21707: CALL_OW 300
21711: AND
21712: IFFALSE 21730
// begin ComEnterUnit ( Commando3 , CommandoBar ) ;
21714: LD_EXP 43
21718: PPUSH
21719: LD_EXP 12
21723: PPUSH
21724: CALL_OW 120
// end else
21728: GO 21761
// if not ( IsDying ( Bun6 ) or isDead ( bun6 ) ) then
21730: LD_INT 280
21732: PPUSH
21733: CALL_OW 303
21737: PUSH
21738: LD_INT 280
21740: PPUSH
21741: CALL_OW 301
21745: OR
21746: NOT
21747: IFFALSE 21761
// begin ComEnterUnit ( Commando3 , Bun6 ) ;
21749: LD_EXP 43
21753: PPUSH
21754: LD_INT 280
21756: PPUSH
21757: CALL_OW 120
// end ; end ;
21761: END
// every 0 0$01 + 0 0$0.33 trigger IsLive ( Commando4 ) and GetSide ( Commando4 ) = 1 and GetClass ( Commando4 ) = Class_Mortar do
21762: LD_EXP 44
21766: PPUSH
21767: CALL_OW 300
21771: PUSH
21772: LD_EXP 44
21776: PPUSH
21777: CALL_OW 255
21781: PUSH
21782: LD_INT 1
21784: EQUAL
21785: AND
21786: PUSH
21787: LD_EXP 44
21791: PPUSH
21792: CALL_OW 257
21796: PUSH
21797: LD_INT 8
21799: EQUAL
21800: AND
21801: IFFALSE 22639
21803: GO 21805
21805: DISABLE
// begin enable ;
21806: ENABLE
// if ( getLives ( Commando4 ) < 301 and not IsOK ( LoyalTele2 ) ) or getLives ( Commando4 ) < 251 then
21807: LD_EXP 44
21811: PPUSH
21812: CALL_OW 256
21816: PUSH
21817: LD_INT 301
21819: LESS
21820: PUSH
21821: LD_EXP 21
21825: PPUSH
21826: CALL_OW 302
21830: NOT
21831: AND
21832: PUSH
21833: LD_EXP 44
21837: PPUSH
21838: CALL_OW 256
21842: PUSH
21843: LD_INT 251
21845: LESS
21846: OR
21847: IFFALSE 21857
// CC4 = 0 ;
21849: LD_ADDR_EXP 2
21853: PUSH
21854: LD_INT 0
21856: ST_TO_ADDR
// if IsInUnit ( Commando4 ) = CommandoBar and CC4 = 0 then
21857: LD_EXP 44
21861: PPUSH
21862: CALL_OW 310
21866: PUSH
21867: LD_EXP 12
21871: EQUAL
21872: PUSH
21873: LD_EXP 2
21877: PUSH
21878: LD_INT 0
21880: EQUAL
21881: AND
21882: IFFALSE 21905
// begin SetLives ( Commando4 , 550 ) ;
21884: LD_EXP 44
21888: PPUSH
21889: LD_INT 550
21891: PPUSH
21892: CALL_OW 234
// CC4 = - 1 ;
21896: LD_ADDR_EXP 2
21900: PUSH
21901: LD_INT 1
21903: NEG
21904: ST_TO_ADDR
// end ; if CC4 = 2 then
21905: LD_EXP 2
21909: PUSH
21910: LD_INT 2
21912: EQUAL
21913: IFFALSE 21970
// begin AddComMoveXY ( Commando4 , 14 , 13 ) ;
21915: LD_EXP 44
21919: PPUSH
21920: LD_INT 14
21922: PPUSH
21923: LD_INT 13
21925: PPUSH
21926: CALL_OW 171
// if GetX ( Commando4 ) < 20 and GetY ( Commando4 ) < 20 then
21930: LD_EXP 44
21934: PPUSH
21935: CALL_OW 250
21939: PUSH
21940: LD_INT 20
21942: LESS
21943: PUSH
21944: LD_EXP 44
21948: PPUSH
21949: CALL_OW 251
21953: PUSH
21954: LD_INT 20
21956: LESS
21957: AND
21958: IFFALSE 21968
// CC4 = 1 ;
21960: LD_ADDR_EXP 2
21964: PUSH
21965: LD_INT 1
21967: ST_TO_ADDR
// end else
21968: GO 22593
// if CC4 < 1 then
21970: LD_EXP 2
21974: PUSH
21975: LD_INT 1
21977: LESS
21978: IFFALSE 22054
// begin if IsOK ( LoyalTele2 ) and not IsInArea ( Commando4 , LoyalBase ) then
21980: LD_EXP 21
21984: PPUSH
21985: CALL_OW 302
21989: PUSH
21990: LD_EXP 44
21994: PPUSH
21995: LD_INT 12
21997: PPUSH
21998: CALL_OW 308
22002: NOT
22003: AND
22004: IFFALSE 22020
// begin ComMoveUnit ( Commando4 , LoyalTele2 ) ;
22006: LD_EXP 44
22010: PPUSH
22011: LD_EXP 21
22015: PPUSH
22016: CALL_OW 112
// end ; if not IsInUnit ( Commando4 ) = CommandoBar then
22020: LD_EXP 44
22024: PPUSH
22025: CALL_OW 310
22029: PUSH
22030: LD_EXP 12
22034: EQUAL
22035: NOT
22036: IFFALSE 22052
// begin AddComEnterUnit ( Commando4 , CommandoBar ) ;
22038: LD_EXP 44
22042: PPUSH
22043: LD_EXP 12
22047: PPUSH
22048: CALL_OW 180
// end ; end else
22052: GO 22593
// if CC4 > 0 and CC1 > 0 then
22054: LD_EXP 2
22058: PUSH
22059: LD_INT 0
22061: GREATER
22062: PUSH
22063: LD_EXP 1
22067: PUSH
22068: LD_INT 0
22070: GREATER
22071: AND
22072: IFFALSE 22285
// begin if LivesBetween ( Commando1 , 1000 , 500 ) then
22074: LD_EXP 41
22078: PPUSH
22079: LD_INT 1000
22081: PPUSH
22082: LD_INT 500
22084: PPUSH
22085: CALL 19501 0 3
22089: IFFALSE 22205
// begin if GetY ( Commando4 ) < 75 then
22091: LD_EXP 44
22095: PPUSH
22096: CALL_OW 251
22100: PUSH
22101: LD_INT 75
22103: LESS
22104: IFFALSE 22147
// ComMoveXY ( Commando4 , 56 + rand ( - 1 , 1 ) , 84 + rand ( - 1 , 1 ) ) ;
22106: LD_EXP 44
22110: PPUSH
22111: LD_INT 56
22113: PUSH
22114: LD_INT 1
22116: NEG
22117: PPUSH
22118: LD_INT 1
22120: PPUSH
22121: CALL_OW 12
22125: PLUS
22126: PPUSH
22127: LD_INT 84
22129: PUSH
22130: LD_INT 1
22132: NEG
22133: PPUSH
22134: LD_INT 1
22136: PPUSH
22137: CALL_OW 12
22141: PLUS
22142: PPUSH
22143: CALL_OW 111
// if GetY ( Commando4 ) > 88 then
22147: LD_EXP 44
22151: PPUSH
22152: CALL_OW 251
22156: PUSH
22157: LD_INT 88
22159: GREATER
22160: IFFALSE 22203
// ComMoveXY ( Commando4 , 56 + rand ( - 1 , 1 ) , 84 + rand ( - 1 , 1 ) ) ;
22162: LD_EXP 44
22166: PPUSH
22167: LD_INT 56
22169: PUSH
22170: LD_INT 1
22172: NEG
22173: PPUSH
22174: LD_INT 1
22176: PPUSH
22177: CALL_OW 12
22181: PLUS
22182: PPUSH
22183: LD_INT 84
22185: PUSH
22186: LD_INT 1
22188: NEG
22189: PPUSH
22190: LD_INT 1
22192: PPUSH
22193: CALL_OW 12
22197: PLUS
22198: PPUSH
22199: CALL_OW 111
// end else
22203: GO 22283
// if LivesBetween ( Commando1 , 500 , 250 ) then
22205: LD_EXP 41
22209: PPUSH
22210: LD_INT 500
22212: PPUSH
22213: LD_INT 250
22215: PPUSH
22216: CALL 19501 0 3
22220: IFFALSE 22283
// begin if isOK ( Bun13 ) then
22222: LD_INT 1322
22224: PPUSH
22225: CALL_OW 302
22229: IFFALSE 22245
// ComEnterUnit ( Commando4 , Bun13 ) else
22231: LD_EXP 44
22235: PPUSH
22236: LD_INT 1322
22238: PPUSH
22239: CALL_OW 120
22243: GO 22283
// if isOK ( Bun14 ) then
22245: LD_INT 1342
22247: PPUSH
22248: CALL_OW 302
22252: IFFALSE 22268
// ComEnterUnit ( Commando4 , Bun14 ) else
22254: LD_EXP 44
22258: PPUSH
22259: LD_INT 1342
22261: PPUSH
22262: CALL_OW 120
22266: GO 22283
// ComAgressivemove ( Commando4 , 38 , 30 ) ;
22268: LD_EXP 44
22272: PPUSH
22273: LD_INT 38
22275: PPUSH
22276: LD_INT 30
22278: PPUSH
22279: CALL_OW 114
// end ; end else
22283: GO 22593
// if CC4 = 1 and CC1 < 1 then
22285: LD_EXP 2
22289: PUSH
22290: LD_INT 1
22292: EQUAL
22293: PUSH
22294: LD_EXP 1
22298: PUSH
22299: LD_INT 1
22301: LESS
22302: AND
22303: IFFALSE 22593
// begin if LivesBetween ( Commando4 , 1000 , 700 ) then
22305: LD_EXP 44
22309: PPUSH
22310: LD_INT 1000
22312: PPUSH
22313: LD_INT 700
22315: PPUSH
22316: CALL 19501 0 3
22320: IFFALSE 22412
// begin if GetLives ( Commando4 ) > 950 and IsInUnit ( Commando4 ) then
22322: LD_EXP 44
22326: PPUSH
22327: CALL_OW 256
22331: PUSH
22332: LD_INT 950
22334: GREATER
22335: PUSH
22336: LD_EXP 44
22340: PPUSH
22341: CALL_OW 310
22345: AND
22346: IFFALSE 22357
// ComExitBuilding ( Commando4 ) ;
22348: LD_EXP 44
22352: PPUSH
22353: CALL_OW 122
// if not IsInUnit ( Commando4 ) then
22357: LD_EXP 44
22361: PPUSH
22362: CALL_OW 310
22366: NOT
22367: IFFALSE 22410
// ComAgressiveMove ( Commando4 , 86 + rand ( - 10 , 10 ) , 139 + rand ( - 10 , 10 ) ) ;
22369: LD_EXP 44
22373: PPUSH
22374: LD_INT 86
22376: PUSH
22377: LD_INT 10
22379: NEG
22380: PPUSH
22381: LD_INT 10
22383: PPUSH
22384: CALL_OW 12
22388: PLUS
22389: PPUSH
22390: LD_INT 139
22392: PUSH
22393: LD_INT 10
22395: NEG
22396: PPUSH
22397: LD_INT 10
22399: PPUSH
22400: CALL_OW 12
22404: PLUS
22405: PPUSH
22406: CALL_OW 114
// end else
22410: GO 22593
// if LivesBetween ( Commando4 , 700 , 500 ) then
22412: LD_EXP 44
22416: PPUSH
22417: LD_INT 700
22419: PPUSH
22420: LD_INT 500
22422: PPUSH
22423: CALL 19501 0 3
22427: IFFALSE 22487
// begin if GetY ( Commando4 ) > 88 then
22429: LD_EXP 44
22433: PPUSH
22434: CALL_OW 251
22438: PUSH
22439: LD_INT 88
22441: GREATER
22442: IFFALSE 22485
// ComMoveXY ( Commando4 , 56 + rand ( - 1 , 1 ) , 84 + rand ( - 1 , 1 ) ) end else
22444: LD_EXP 44
22448: PPUSH
22449: LD_INT 56
22451: PUSH
22452: LD_INT 1
22454: NEG
22455: PPUSH
22456: LD_INT 1
22458: PPUSH
22459: CALL_OW 12
22463: PLUS
22464: PPUSH
22465: LD_INT 84
22467: PUSH
22468: LD_INT 1
22470: NEG
22471: PPUSH
22472: LD_INT 1
22474: PPUSH
22475: CALL_OW 12
22479: PLUS
22480: PPUSH
22481: CALL_OW 111
22485: GO 22593
// if LivesBetween ( Commando4 , 500 , 300 ) then
22487: LD_EXP 44
22491: PPUSH
22492: LD_INT 500
22494: PPUSH
22495: LD_INT 300
22497: PPUSH
22498: CALL 19501 0 3
22502: IFFALSE 22543
// begin if not IsInUnit ( Commando4 ) = ComLab and IsOK ( ComLab ) then
22504: LD_EXP 44
22508: PPUSH
22509: CALL_OW 310
22513: PUSH
22514: LD_INT 1921
22516: EQUAL
22517: NOT
22518: PUSH
22519: LD_INT 1921
22521: PPUSH
22522: CALL_OW 302
22526: AND
22527: IFFALSE 22541
// ComEnterUnit ( Commando4 , ComLab ) ;
22529: LD_EXP 44
22533: PPUSH
22534: LD_INT 1921
22536: PPUSH
22537: CALL_OW 120
// end else
22541: GO 22593
// if ( getLives ( Commando4 ) < 301 and not IsOK ( LoyalTele2 ) ) or getLives ( Commando4 ) < 251 then
22543: LD_EXP 44
22547: PPUSH
22548: CALL_OW 256
22552: PUSH
22553: LD_INT 301
22555: LESS
22556: PUSH
22557: LD_EXP 21
22561: PPUSH
22562: CALL_OW 302
22566: NOT
22567: AND
22568: PUSH
22569: LD_EXP 44
22573: PPUSH
22574: CALL_OW 256
22578: PUSH
22579: LD_INT 251
22581: LESS
22582: OR
22583: IFFALSE 22593
// begin CC1 = 0 ;
22585: LD_ADDR_EXP 1
22589: PUSH
22590: LD_INT 0
22592: ST_TO_ADDR
// end ; end ; if IsInUnit ( Commando4 ) = ComLab then
22593: LD_EXP 44
22597: PPUSH
22598: CALL_OW 310
22602: PUSH
22603: LD_INT 1921
22605: EQUAL
22606: IFFALSE 22639
// SetLives ( Commando4 , min ( 1000 , GetLives ( Commando4 ) + 50 ) ) ;
22608: LD_EXP 44
22612: PPUSH
22613: LD_INT 1000
22615: PPUSH
22616: LD_EXP 44
22620: PPUSH
22621: CALL_OW 256
22625: PUSH
22626: LD_INT 50
22628: PLUS
22629: PPUSH
22630: CALL 19318 0 2
22634: PPUSH
22635: CALL_OW 234
// end ; end_of_file
22639: END
// var talk , list , random , survivors , deathtoll ; export NukeUsed , PeopleOnStart , PeopleOnFinish ; every 0 0$30 do
22640: GO 22642
22642: DISABLE
// begin ComEnterUnit ( York , BlueBase ) ;
22643: LD_INT 1961
22645: PPUSH
22646: LD_EXP 16
22650: PPUSH
22651: CALL_OW 120
// talk = 1 ;
22655: LD_ADDR_LOC 72
22659: PUSH
22660: LD_INT 1
22662: ST_TO_ADDR
// end ;
22663: END
// every 0 0$01 trigger isLive ( York ) and GetLives ( BlueBase ) < 750 do
22664: LD_INT 1961
22666: PPUSH
22667: CALL_OW 300
22671: PUSH
22672: LD_EXP 16
22676: PPUSH
22677: CALL_OW 256
22681: PUSH
22682: LD_INT 750
22684: LESS
22685: AND
22686: IFFALSE 23025
22688: GO 22690
22690: DISABLE
// begin enable ;
22691: ENABLE
// if talk then
22692: LD_LOC 72
22696: IFFALSE 22905
// begin talk = 0 ;
22698: LD_ADDR_LOC 72
22702: PUSH
22703: LD_INT 0
22705: ST_TO_ADDR
// list = FilterAllUnits ( [ [ f_side , 1 ] , [ f_or , [ f_sex , 1 ] , [ f_sex , 2 ] ] , [ f_OK ] ] ) ;
22706: LD_ADDR_LOC 73
22710: PUSH
22711: LD_INT 22
22713: PUSH
22714: LD_INT 1
22716: PUSH
22717: EMPTY
22718: LIST
22719: LIST
22720: PUSH
22721: LD_INT 2
22723: PUSH
22724: LD_INT 26
22726: PUSH
22727: LD_INT 1
22729: PUSH
22730: EMPTY
22731: LIST
22732: LIST
22733: PUSH
22734: LD_INT 26
22736: PUSH
22737: LD_INT 2
22739: PUSH
22740: EMPTY
22741: LIST
22742: LIST
22743: PUSH
22744: EMPTY
22745: LIST
22746: LIST
22747: LIST
22748: PUSH
22749: LD_INT 50
22751: PUSH
22752: EMPTY
22753: LIST
22754: PUSH
22755: EMPTY
22756: LIST
22757: LIST
22758: LIST
22759: PPUSH
22760: CALL_OW 69
22764: ST_TO_ADDR
// random = list [ rand ( 1 , size ( list ) - 1 ) ] ;
22765: LD_ADDR_LOC 74
22769: PUSH
22770: LD_LOC 73
22774: PUSH
22775: LD_INT 1
22777: PPUSH
22778: LD_LOC 73
22782: PPUSH
22783: CALL 20450 0 1
22787: PUSH
22788: LD_INT 1
22790: MINUS
22791: PPUSH
22792: CALL_OW 12
22796: ARRAY
22797: ST_TO_ADDR
// ForceSay ( York , Nuke1 ) ;
22798: LD_INT 1961
22800: PPUSH
22801: LD_STRING Nuke1
22803: PPUSH
22804: CALL_OW 91
// if See ( 4 , York ) then
22808: LD_INT 4
22810: PPUSH
22811: LD_INT 1961
22813: PPUSH
22814: CALL_OW 292
22818: IFFALSE 22890
// begin Say ( Random , Nuke2 ) ;
22820: LD_LOC 74
22824: PPUSH
22825: LD_STRING Nuke2
22827: PPUSH
22828: CALL_OW 88
// if See ( 4 , SuicideButto ) then
22832: LD_INT 4
22834: PPUSH
22835: LD_INT 1407
22837: PPUSH
22838: CALL_OW 292
22842: IFFALSE 22890
// begin dialogueon ;
22844: CALL_OW 6
// CenterOnUnits ( SuicideButto ) ;
22848: LD_INT 1407
22850: PPUSH
22851: CALL_OW 85
// Say ( random , Nuke3 ) ;
22855: LD_LOC 74
22859: PPUSH
22860: LD_STRING Nuke3
22862: PPUSH
22863: CALL_OW 88
// if IsLive ( CyBoss ) then
22867: LD_INT 1897
22869: PPUSH
22870: CALL_OW 300
22874: IFFALSE 22886
// ForceSay ( CyBoss , Nuke4 ) ;
22876: LD_INT 1897
22878: PPUSH
22879: LD_STRING Nuke4
22881: PPUSH
22882: CALL_OW 91
// dialogueoff ;
22886: CALL_OW 7
// end ; end ; survivors = size ( list ) ;
22890: LD_ADDR_LOC 75
22894: PUSH
22895: LD_LOC 73
22899: PPUSH
22900: CALL 20450 0 1
22904: ST_TO_ADDR
// end ; ComEnterUnit ( York , SuicideButto ) ;
22905: LD_INT 1961
22907: PPUSH
22908: LD_INT 1407
22910: PPUSH
22911: CALL_OW 120
// if See ( 1 , Madison ) or See ( 1 , IsInUnit ( Madison ) ) then
22915: LD_INT 1
22917: PPUSH
22918: LD_INT 1915
22920: PPUSH
22921: CALL_OW 292
22925: PUSH
22926: LD_INT 1
22928: PPUSH
22929: LD_INT 1915
22931: PPUSH
22932: CALL_OW 310
22936: PPUSH
22937: CALL_OW 292
22941: OR
22942: IFFALSE 22961
// AddComAttackUnit ( IsInUnit ( York ) , Madison ) else
22944: LD_INT 1961
22946: PPUSH
22947: CALL_OW 310
22951: PPUSH
22952: LD_INT 1915
22954: PPUSH
22955: CALL_OW 175
22959: GO 23025
// if See ( 1 , Greene ) or See ( 1 , IsInUnit ( Greene ) ) then
22961: LD_INT 1
22963: PPUSH
22964: LD_INT 1913
22966: PPUSH
22967: CALL_OW 292
22971: PUSH
22972: LD_INT 1
22974: PPUSH
22975: LD_INT 1913
22977: PPUSH
22978: CALL_OW 310
22982: PPUSH
22983: CALL_OW 292
22987: OR
22988: IFFALSE 23007
// AddComAttackUnit ( IsInUnit ( York ) , Greene ) else
22990: LD_INT 1961
22992: PPUSH
22993: CALL_OW 310
22997: PPUSH
22998: LD_INT 1913
23000: PPUSH
23001: CALL_OW 175
23005: GO 23025
// AddComAttackPlace ( IsInUnit ( York ) , 152 , 18 ) ;
23007: LD_INT 1961
23009: PPUSH
23010: CALL_OW 310
23014: PPUSH
23015: LD_INT 152
23017: PPUSH
23018: LD_INT 18
23020: PPUSH
23021: CALL_OW 176
// end ;
23025: END
// on SiberiteRocketExploded ( Un , SibX , SibY ) do begin NukeUsed = 1 ;
23026: LD_ADDR_EXP 81
23030: PUSH
23031: LD_INT 1
23033: ST_TO_ADDR
// CenterNowOnXY ( SibX , SibY ) ;
23034: LD_VAR 0 2
23038: PPUSH
23039: LD_VAR 0 3
23043: PPUSH
23044: CALL_OW 86
// dwait ( 0 0$5 ) ;
23048: LD_INT 175
23050: PPUSH
23051: CALL_OW 68
// Dialogueon ;
23055: CALL_OW 6
// if IsLive ( Madison ) then
23059: LD_INT 1915
23061: PPUSH
23062: CALL_OW 300
23066: IFFALSE 23078
// random = Madison else
23068: LD_ADDR_LOC 74
23072: PUSH
23073: LD_INT 1915
23075: ST_TO_ADDR
23076: GO 23086
// random = Greene ;
23078: LD_ADDR_LOC 74
23082: PUSH
23083: LD_INT 1913
23085: ST_TO_ADDR
// Say ( Random , PostNuke1 ) ;
23086: LD_LOC 74
23090: PPUSH
23091: LD_STRING PostNuke1
23093: PPUSH
23094: CALL_OW 88
// list = FilterAllUnits ( [ [ f_side , 1 ] , [ f_or , [ f_sex , 1 ] , [ f_sex , 2 ] ] , [ f_OK ] ] ) ;
23098: LD_ADDR_LOC 73
23102: PUSH
23103: LD_INT 22
23105: PUSH
23106: LD_INT 1
23108: PUSH
23109: EMPTY
23110: LIST
23111: LIST
23112: PUSH
23113: LD_INT 2
23115: PUSH
23116: LD_INT 26
23118: PUSH
23119: LD_INT 1
23121: PUSH
23122: EMPTY
23123: LIST
23124: LIST
23125: PUSH
23126: LD_INT 26
23128: PUSH
23129: LD_INT 2
23131: PUSH
23132: EMPTY
23133: LIST
23134: LIST
23135: PUSH
23136: EMPTY
23137: LIST
23138: LIST
23139: LIST
23140: PUSH
23141: LD_INT 50
23143: PUSH
23144: EMPTY
23145: LIST
23146: PUSH
23147: EMPTY
23148: LIST
23149: LIST
23150: LIST
23151: PPUSH
23152: CALL_OW 69
23156: ST_TO_ADDR
// deathtoll = survivors - size ( list ) ;
23157: LD_ADDR_LOC 76
23161: PUSH
23162: LD_LOC 75
23166: PUSH
23167: LD_LOC 73
23171: PPUSH
23172: CALL 20450 0 1
23176: MINUS
23177: ST_TO_ADDR
// if Deathtoll = 0 then
23178: LD_LOC 76
23182: PUSH
23183: LD_INT 0
23185: EQUAL
23186: IFFALSE 23202
// Say ( Random , PostNuke2a ) else
23188: LD_LOC 74
23192: PPUSH
23193: LD_STRING PostNuke2a
23195: PPUSH
23196: CALL_OW 88
23200: GO 23238
// if deathtoll < 4 then
23202: LD_LOC 76
23206: PUSH
23207: LD_INT 4
23209: LESS
23210: IFFALSE 23226
// Say ( Random , PostNuke2b ) else
23212: LD_LOC 74
23216: PPUSH
23217: LD_STRING PostNuke2b
23219: PPUSH
23220: CALL_OW 88
23224: GO 23238
// Say ( Random , PostNuke2c ) ;
23226: LD_LOC 74
23230: PPUSH
23231: LD_STRING PostNuke2c
23233: PPUSH
23234: CALL_OW 88
// Say ( Random , PostNuke3 ) ;
23238: LD_LOC 74
23242: PPUSH
23243: LD_STRING PostNuke3
23245: PPUSH
23246: CALL_OW 88
// Dialogueoff ;
23250: CALL_OW 7
// end ;
23254: PPOPN 3
23256: END
// every 0 0$01 trigger isLive ( RuBoss ) do
23257: LD_EXP 68
23261: PPUSH
23262: CALL_OW 300
23266: IFFALSE 23473
23268: GO 23270
23270: DISABLE
// begin enable ;
23271: ENABLE
// if IsOK ( RuBossGun ) and IsOK ( RedBase ) and GetLives ( RuBoss ) > 800 and GetEnergy ( GetBase ( RedBase ) ) [ 4 ] > 0 and isOK ( RuBossGun ) then
23272: LD_INT 1803
23274: PPUSH
23275: CALL_OW 302
23279: PUSH
23280: LD_EXP 54
23284: PPUSH
23285: CALL_OW 302
23289: AND
23290: PUSH
23291: LD_EXP 68
23295: PPUSH
23296: CALL_OW 256
23300: PUSH
23301: LD_INT 800
23303: GREATER
23304: AND
23305: PUSH
23306: LD_EXP 54
23310: PPUSH
23311: CALL_OW 274
23315: PPUSH
23316: CALL_OW 278
23320: PUSH
23321: LD_INT 4
23323: ARRAY
23324: PUSH
23325: LD_INT 0
23327: GREATER
23328: AND
23329: PUSH
23330: LD_INT 1803
23332: PPUSH
23333: CALL_OW 302
23337: AND
23338: IFFALSE 23378
// begin if IsInUnit ( RuBoss ) = RuTits then
23340: LD_EXP 68
23344: PPUSH
23345: CALL_OW 310
23349: PUSH
23350: LD_INT 10
23352: EQUAL
23353: IFFALSE 23364
// comExitBuilding ( RuBoss ) ;
23355: LD_EXP 68
23359: PPUSH
23360: CALL_OW 122
// AddComEnterUnit ( RuBoss , RuBossGun ) ;
23364: LD_EXP 68
23368: PPUSH
23369: LD_INT 1803
23371: PPUSH
23372: CALL_OW 180
// end else
23376: GO 23473
// if IsOK ( RuTits ) and GetLives ( RuBoss ) > 800 and ( GetEnergy ( GetBase ( RedBase ) ) [ 4 ] = 0 or isDying ( RedBase ) ) then
23378: LD_INT 10
23380: PPUSH
23381: CALL_OW 302
23385: PUSH
23386: LD_EXP 68
23390: PPUSH
23391: CALL_OW 256
23395: PUSH
23396: LD_INT 800
23398: GREATER
23399: AND
23400: PUSH
23401: LD_EXP 54
23405: PPUSH
23406: CALL_OW 274
23410: PPUSH
23411: CALL_OW 278
23415: PUSH
23416: LD_INT 4
23418: ARRAY
23419: PUSH
23420: LD_INT 0
23422: EQUAL
23423: PUSH
23424: LD_EXP 54
23428: PPUSH
23429: CALL_OW 303
23433: OR
23434: AND
23435: IFFALSE 23473
// begin if IsInUnit ( RuBoss ) = RuBossGun then
23437: LD_EXP 68
23441: PPUSH
23442: CALL_OW 310
23446: PUSH
23447: LD_INT 1803
23449: EQUAL
23450: IFFALSE 23461
// comExitBuilding ( RuBoss ) ;
23452: LD_EXP 68
23456: PPUSH
23457: CALL_OW 122
// AddComEnterUnit ( RuBoss , RuTits ) ;
23461: LD_EXP 68
23465: PPUSH
23466: LD_INT 10
23468: PPUSH
23469: CALL_OW 180
// end ; end ;
23473: END
// export function UnitDestroyed_CommanderAI ( un ) ; begin
23474: LD_INT 0
23476: PPUSH
// if un = Madison and IsDead ( Greene ) then
23477: LD_VAR 0 1
23481: PUSH
23482: LD_INT 1915
23484: EQUAL
23485: PUSH
23486: LD_INT 1913
23488: PPUSH
23489: CALL_OW 301
23493: AND
23494: IFFALSE 23521
// begin IngameOn ;
23496: CALL_OW 8
// CenterNowOnUnits ( Madison ) ;
23500: LD_INT 1915
23502: PPUSH
23503: CALL_OW 87
// wait ( 0 0$5 ) ;
23507: LD_INT 175
23509: PPUSH
23510: CALL_OW 67
// YouLost ( MainDeath ) ;
23514: LD_STRING MainDeath
23516: PPUSH
23517: CALL_OW 104
// end ; if un = Greene and IsDead ( Madison ) then
23521: LD_VAR 0 1
23525: PUSH
23526: LD_INT 1913
23528: EQUAL
23529: PUSH
23530: LD_INT 1915
23532: PPUSH
23533: CALL_OW 301
23537: AND
23538: IFFALSE 23565
// begin IngameOn ;
23540: CALL_OW 8
// CenterNowOnUnits ( Greene ) ;
23544: LD_INT 1913
23546: PPUSH
23547: CALL_OW 87
// wait ( 0 0$5 ) ;
23551: LD_INT 175
23553: PPUSH
23554: CALL_OW 67
// YouLost ( MainDeath ) ;
23558: LD_STRING MainDeath
23560: PPUSH
23561: CALL_OW 104
// end ; if un = Madison and IsOK ( Greene ) then
23565: LD_VAR 0 1
23569: PUSH
23570: LD_INT 1915
23572: EQUAL
23573: PUSH
23574: LD_INT 1913
23576: PPUSH
23577: CALL_OW 302
23581: AND
23582: IFFALSE 23609
// begin dialogueOn ;
23584: CALL_OW 6
// CenterOnUnits ( Madison ) ;
23588: LD_INT 1915
23590: PPUSH
23591: CALL_OW 85
// Say ( Greene , MadisonDeath ) ;
23595: LD_INT 1913
23597: PPUSH
23598: LD_STRING MadisonDeath
23600: PPUSH
23601: CALL_OW 88
// dialogueOff ;
23605: CALL_OW 7
// end ; if un = Greene and IsOK ( Madison ) then
23609: LD_VAR 0 1
23613: PUSH
23614: LD_INT 1913
23616: EQUAL
23617: PUSH
23618: LD_INT 1915
23620: PPUSH
23621: CALL_OW 302
23625: AND
23626: IFFALSE 23653
// begin dialogueOn ;
23628: CALL_OW 6
// CenterOnUnits ( Greene ) ;
23632: LD_INT 1913
23634: PPUSH
23635: CALL_OW 85
// Say ( Madison , GreeneDeath ) ;
23639: LD_INT 1915
23641: PPUSH
23642: LD_STRING GreeneDeath
23644: PPUSH
23645: CALL_OW 88
// dialogueOff ;
23649: CALL_OW 7
// end ; if un = York then
23653: LD_VAR 0 1
23657: PUSH
23658: LD_INT 1961
23660: EQUAL
23661: IFFALSE 23850
// begin if IsDead ( MAdison ) or IsDead ( Greene ) then
23663: LD_INT 1915
23665: PPUSH
23666: CALL_OW 301
23670: PUSH
23671: LD_INT 1913
23673: PPUSH
23674: CALL_OW 301
23678: OR
23679: IFFALSE 23694
// AddMedal ( medal1 , - 1 ) else
23681: LD_STRING medal1
23683: PPUSH
23684: LD_INT 1
23686: NEG
23687: PPUSH
23688: CALL_OW 101
23692: GO 23704
// AddMedal ( medal1 , 1 ) ;
23694: LD_STRING medal1
23696: PPUSH
23697: LD_INT 1
23699: PPUSH
23700: CALL_OW 101
// PeopleOnFinish = Size ( FilterAllUnits ( [ [ f_side , 4 ] , [ f_or , [ f_sex , 1 ] , [ f_Sex , 2 ] ] ] ) ) ;
23704: LD_ADDR_EXP 83
23708: PUSH
23709: LD_INT 22
23711: PUSH
23712: LD_INT 4
23714: PUSH
23715: EMPTY
23716: LIST
23717: LIST
23718: PUSH
23719: LD_INT 2
23721: PUSH
23722: LD_INT 26
23724: PUSH
23725: LD_INT 1
23727: PUSH
23728: EMPTY
23729: LIST
23730: LIST
23731: PUSH
23732: LD_INT 26
23734: PUSH
23735: LD_INT 2
23737: PUSH
23738: EMPTY
23739: LIST
23740: LIST
23741: PUSH
23742: EMPTY
23743: LIST
23744: LIST
23745: LIST
23746: PUSH
23747: EMPTY
23748: LIST
23749: LIST
23750: PPUSH
23751: CALL_OW 69
23755: PPUSH
23756: CALL 20450 0 1
23760: ST_TO_ADDR
// if PeopleOnFinish < PeopleOnStart - ( 5 - difficulty ) then
23761: LD_EXP 83
23765: PUSH
23766: LD_EXP 82
23770: PUSH
23771: LD_INT 5
23773: PUSH
23774: LD_OWVAR 67
23778: MINUS
23779: MINUS
23780: LESS
23781: IFFALSE 23796
// AddMedal ( medal2 , - 1 ) else
23783: LD_STRING medal2
23785: PPUSH
23786: LD_INT 1
23788: NEG
23789: PPUSH
23790: CALL_OW 101
23794: GO 23806
// AddMedal ( medal2 , 1 ) ;
23796: LD_STRING medal2
23798: PPUSH
23799: LD_INT 1
23801: PPUSH
23802: CALL_OW 101
// if NukeUSed = 0 then
23806: LD_EXP 81
23810: PUSH
23811: LD_INT 0
23813: EQUAL
23814: IFFALSE 23828
// AddMedal ( medal3 , 1 ) else
23816: LD_STRING medal3
23818: PPUSH
23819: LD_INT 1
23821: PPUSH
23822: CALL_OW 101
23826: GO 23839
// AddMedal ( medal3 , - 1 ) ;
23828: LD_STRING medal3
23830: PPUSH
23831: LD_INT 1
23833: NEG
23834: PPUSH
23835: CALL_OW 101
// GiveMedals ( MAIN ) ;
23839: LD_STRING MAIN
23841: PPUSH
23842: CALL_OW 102
// YouWin ;
23846: CALL_OW 103
// end ; end ; end_of_file
23850: LD_VAR 0 2
23854: RET
// every 0 0$25 do
23855: GO 23857
23857: DISABLE
// begin ComEnterUnit ( Ape1 , Bun10 ) ;
23858: LD_INT 1962
23860: PPUSH
23861: LD_INT 1333
23863: PPUSH
23864: CALL_OW 120
// ComEnterUnit ( Ape2 , Bun11 ) ;
23868: LD_INT 1963
23870: PPUSH
23871: LD_INT 1340
23873: PPUSH
23874: CALL_OW 120
// ComEnterUnit ( Ape3 , Bun12 ) ;
23878: LD_INT 1964
23880: PPUSH
23881: LD_INT 1338
23883: PPUSH
23884: CALL_OW 120
// ComEnterUnit ( Ape4 , Bun7 ) ;
23888: LD_INT 1965
23890: PPUSH
23891: LD_INT 1400
23893: PPUSH
23894: CALL_OW 120
// ComEnterUnit ( Ape5 , Bun5 ) ;
23898: LD_INT 1966
23900: PPUSH
23901: LD_INT 277
23903: PPUSH
23904: CALL_OW 120
// ComEnterUnit ( Ape6 , Bun1 ) ;
23908: LD_INT 1967
23910: PPUSH
23911: LD_INT 231
23913: PPUSH
23914: CALL_OW 120
// ComEnterUnit ( Ape7 , Bun2 ) ;
23918: LD_INT 1968
23920: PPUSH
23921: LD_INT 212
23923: PPUSH
23924: CALL_OW 120
// ComEnterUnit ( Ape8 , Bun3 ) ;
23928: LD_INT 1969
23930: PPUSH
23931: LD_INT 218
23933: PPUSH
23934: CALL_OW 120
// ComEnterUnit ( Ape9 , Bun4 ) ;
23938: LD_INT 1970
23940: PPUSH
23941: LD_INT 225
23943: PPUSH
23944: CALL_OW 120
// end ;
23948: END
// var ApeFloodList , ApeFloodAttackers , AnApe , PlayerBase , PlayerBaseList ; every 0 0$1 do
23949: GO 23951
23951: DISABLE
// begin enable ;
23952: ENABLE
// PlayerBaseList = FilterAllUnits ( [ [ f_side , 4 ] , [ f_or , [ [ f_btype , b_warehouse ] , [ f_btype , b_depot ] ] ] ] ) ;
23953: LD_ADDR_LOC 81
23957: PUSH
23958: LD_INT 22
23960: PUSH
23961: LD_INT 4
23963: PUSH
23964: EMPTY
23965: LIST
23966: LIST
23967: PUSH
23968: LD_INT 2
23970: PUSH
23971: LD_INT 30
23973: PUSH
23974: LD_INT 1
23976: PUSH
23977: EMPTY
23978: LIST
23979: LIST
23980: PUSH
23981: LD_INT 30
23983: PUSH
23984: LD_INT 0
23986: PUSH
23987: EMPTY
23988: LIST
23989: LIST
23990: PUSH
23991: EMPTY
23992: LIST
23993: LIST
23994: PUSH
23995: EMPTY
23996: LIST
23997: LIST
23998: PUSH
23999: EMPTY
24000: LIST
24001: LIST
24002: PPUSH
24003: CALL_OW 69
24007: ST_TO_ADDR
// ApeFloodList = FilterUnitsInArea ( ArMonkey , [ [ f_side , 2 ] , [ f_ok ] , [ f_or , [ [ f_class , 15 ] , [ f_class , 17 ] ] ] ] ) ;
24008: LD_ADDR_LOC 77
24012: PUSH
24013: LD_INT 20
24015: PPUSH
24016: LD_INT 22
24018: PUSH
24019: LD_INT 2
24021: PUSH
24022: EMPTY
24023: LIST
24024: LIST
24025: PUSH
24026: LD_INT 50
24028: PUSH
24029: EMPTY
24030: LIST
24031: PUSH
24032: LD_INT 2
24034: PUSH
24035: LD_INT 25
24037: PUSH
24038: LD_INT 15
24040: PUSH
24041: EMPTY
24042: LIST
24043: LIST
24044: PUSH
24045: LD_INT 25
24047: PUSH
24048: LD_INT 17
24050: PUSH
24051: EMPTY
24052: LIST
24053: LIST
24054: PUSH
24055: EMPTY
24056: LIST
24057: LIST
24058: PUSH
24059: EMPTY
24060: LIST
24061: LIST
24062: PUSH
24063: EMPTY
24064: LIST
24065: LIST
24066: LIST
24067: PPUSH
24068: CALL_OW 70
24072: ST_TO_ADDR
// ApeFloodList = ApeFloodList diff ApeFloodAttackers ;
24073: LD_ADDR_LOC 77
24077: PUSH
24078: LD_LOC 77
24082: PUSH
24083: LD_LOC 78
24087: DIFF
24088: ST_TO_ADDR
// end ;
24089: END
// every 0 0$10 + 0 0$0.8 do
24090: GO 24092
24092: DISABLE
// begin enable ;
24093: ENABLE
// if Size ( ApeFloodList ) > 15 + ( 5 * difficulty ) then
24094: LD_LOC 77
24098: PPUSH
24099: CALL 20450 0 1
24103: PUSH
24104: LD_INT 15
24106: PUSH
24107: LD_INT 5
24109: PUSH
24110: LD_OWVAR 67
24114: MUL
24115: PLUS
24116: GREATER
24117: IFFALSE 24129
// ApeFloodAttackers = ApeFloodList ;
24119: LD_ADDR_LOC 78
24123: PUSH
24124: LD_LOC 77
24128: ST_TO_ADDR
// if ApeFloodAttackers then
24129: LD_LOC 78
24133: IFFALSE 24209
// for AnApe in ApeFloodAttackers do
24135: LD_ADDR_LOC 79
24139: PUSH
24140: LD_LOC 78
24144: PUSH
24145: FOR_IN
24146: IFFALSE 24207
// begin if PlayerBase > 0 then
24148: LD_LOC 80
24152: PUSH
24153: LD_INT 0
24155: GREATER
24156: IFFALSE 24205
// begin PlayerBase = NearestUnitToUnit ( PlayerBaseList , ArBase ) ;
24158: LD_ADDR_LOC 80
24162: PUSH
24163: LD_LOC 81
24167: PPUSH
24168: LD_INT 1027
24170: PPUSH
24171: CALL_OW 74
24175: ST_TO_ADDR
// AddComAgressiveMove ( AnApe , GetX ( PlayerBase ) , GetY ( PlayerBase ) ) ;
24176: LD_LOC 79
24180: PPUSH
24181: LD_LOC 80
24185: PPUSH
24186: CALL_OW 250
24190: PPUSH
24191: LD_LOC 80
24195: PPUSH
24196: CALL_OW 251
24200: PPUSH
24201: CALL_OW 174
// end ; end ;
24205: GO 24145
24207: POP
24208: POP
// end ;
24209: END
// var d6 , GetArmed ; on ApemanTamed ( ape , doc ) do begin if Getside ( Doc ) = 2 then
24210: LD_VAR 0 2
24214: PPUSH
24215: CALL_OW 255
24219: PUSH
24220: LD_INT 2
24222: EQUAL
24223: IFFALSE 24488
// begin GetArmed = NearestUnitToUnit ( FilterAllUnits ( [ [ f_btype , b_barracks ] , [ f_side , 2 ] ] ) , Ape ) ;
24225: LD_ADDR_LOC 83
24229: PUSH
24230: LD_INT 30
24232: PUSH
24233: LD_INT 5
24235: PUSH
24236: EMPTY
24237: LIST
24238: LIST
24239: PUSH
24240: LD_INT 22
24242: PUSH
24243: LD_INT 2
24245: PUSH
24246: EMPTY
24247: LIST
24248: LIST
24249: PUSH
24250: EMPTY
24251: LIST
24252: LIST
24253: PPUSH
24254: CALL_OW 69
24258: PPUSH
24259: LD_VAR 0 1
24263: PPUSH
24264: CALL_OW 74
24268: ST_TO_ADDR
// AddComEnterUnit ( Ape , GetArmed ) ;
24269: LD_VAR 0 1
24273: PPUSH
24274: LD_LOC 83
24278: PPUSH
24279: CALL_OW 180
// d6 = rand ( 1 , 6 ) ;
24283: LD_ADDR_LOC 82
24287: PUSH
24288: LD_INT 1
24290: PPUSH
24291: LD_INT 6
24293: PPUSH
24294: CALL_OW 12
24298: ST_TO_ADDR
// case d6 of 1 :
24299: LD_LOC 82
24303: PUSH
24304: LD_INT 1
24306: DOUBLE
24307: EQUAL
24308: IFTRUE 24312
24310: GO 24327
24312: POP
// begin AddComChangeProfession ( Ape , 15 ) ;
24313: LD_VAR 0 1
24317: PPUSH
24318: LD_INT 15
24320: PPUSH
24321: CALL_OW 183
// end ; 2 :
24325: GO 24488
24327: LD_INT 2
24329: DOUBLE
24330: EQUAL
24331: IFTRUE 24335
24333: GO 24359
24335: POP
// begin AddComChangeProfession ( Ape , 15 ) ;
24336: LD_VAR 0 1
24340: PPUSH
24341: LD_INT 15
24343: PPUSH
24344: CALL_OW 183
// AddComExitBuilding ( Ape ) ;
24348: LD_VAR 0 1
24352: PPUSH
24353: CALL_OW 182
// end ; 3 :
24357: GO 24488
24359: LD_INT 3
24361: DOUBLE
24362: EQUAL
24363: IFTRUE 24367
24365: GO 24391
24367: POP
// begin AddComChangeProfession ( Ape , 15 ) ;
24368: LD_VAR 0 1
24372: PPUSH
24373: LD_INT 15
24375: PPUSH
24376: CALL_OW 183
// AddComExitBuilding ( Ape ) ;
24380: LD_VAR 0 1
24384: PPUSH
24385: CALL_OW 182
// end ; 4 :
24389: GO 24488
24391: LD_INT 4
24393: DOUBLE
24394: EQUAL
24395: IFTRUE 24399
24397: GO 24423
24399: POP
// begin AddComChangeProfession ( Ape , 15 ) ;
24400: LD_VAR 0 1
24404: PPUSH
24405: LD_INT 15
24407: PPUSH
24408: CALL_OW 183
// AddComExitBuilding ( Ape ) ;
24412: LD_VAR 0 1
24416: PPUSH
24417: CALL_OW 182
// end ; 5 :
24421: GO 24488
24423: LD_INT 5
24425: DOUBLE
24426: EQUAL
24427: IFTRUE 24431
24429: GO 24455
24431: POP
// begin AddComChangeProfession ( Ape , 17 ) ;
24432: LD_VAR 0 1
24436: PPUSH
24437: LD_INT 17
24439: PPUSH
24440: CALL_OW 183
// AddComExitBuilding ( Ape ) ;
24444: LD_VAR 0 1
24448: PPUSH
24449: CALL_OW 182
// end ; 6 :
24453: GO 24488
24455: LD_INT 6
24457: DOUBLE
24458: EQUAL
24459: IFTRUE 24463
24461: GO 24487
24463: POP
// begin AddComChangeProfession ( Ape , 17 ) ;
24464: LD_VAR 0 1
24468: PPUSH
24469: LD_INT 17
24471: PPUSH
24472: CALL_OW 183
// AddComExitBuilding ( Ape ) ;
24476: LD_VAR 0 1
24480: PPUSH
24481: CALL_OW 182
// end ; end ;
24485: GO 24488
24487: POP
// end ; end ; end_of_file
24488: PPOPN 2
24490: END
// export Ar1 , Ar2 , Ar3 , Ar4 , Ar5 , Ar6 , ArEng1 , ArEng2 , ArEng3 , ArMech , ArDoc1 , Ardoc2 , Ardoc3 , Ardoc4 ; var Person , SpawnList ; every 0 0$10 do
24491: GO 24493
24493: DISABLE
// begin uc_side = 2 ;
24494: LD_ADDR_OWVAR 20
24498: PUSH
24499: LD_INT 2
24501: ST_TO_ADDR
// uc_nation = 2 ;
24502: LD_ADDR_OWVAR 21
24506: PUSH
24507: LD_INT 2
24509: ST_TO_ADDR
// hc_class = 1 ;
24510: LD_ADDR_OWVAR 28
24514: PUSH
24515: LD_INT 1
24517: ST_TO_ADDR
// hc_attr = [ 15 , 10 ] ;
24518: LD_ADDR_OWVAR 29
24522: PUSH
24523: LD_INT 15
24525: PUSH
24526: LD_INT 10
24528: PUSH
24529: EMPTY
24530: LIST
24531: LIST
24532: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
24533: LD_ADDR_OWVAR 27
24537: PUSH
24538: LD_INT 1
24540: PPUSH
24541: LD_INT 2
24543: PPUSH
24544: CALL_OW 12
24548: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 , 10 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) , rand ( 3 , 6 ) ] ;
24549: LD_ADDR_OWVAR 30
24553: PUSH
24554: LD_INT 6
24556: PPUSH
24557: LD_INT 10
24559: PPUSH
24560: CALL_OW 12
24564: PUSH
24565: LD_INT 5
24567: PPUSH
24568: LD_INT 8
24570: PPUSH
24571: CALL_OW 12
24575: PUSH
24576: LD_INT 5
24578: PPUSH
24579: LD_INT 8
24581: PPUSH
24582: CALL_OW 12
24586: PUSH
24587: LD_INT 3
24589: PPUSH
24590: LD_INT 6
24592: PPUSH
24593: CALL_OW 12
24597: PUSH
24598: EMPTY
24599: LIST
24600: LIST
24601: LIST
24602: LIST
24603: ST_TO_ADDR
// Ar1 = CreateHuman ;
24604: LD_ADDR_EXP 84
24608: PUSH
24609: CALL_OW 44
24613: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
24614: LD_ADDR_OWVAR 27
24618: PUSH
24619: LD_INT 1
24621: PPUSH
24622: LD_INT 2
24624: PPUSH
24625: CALL_OW 12
24629: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 , 10 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) , rand ( 3 , 6 ) ] ;
24630: LD_ADDR_OWVAR 30
24634: PUSH
24635: LD_INT 6
24637: PPUSH
24638: LD_INT 10
24640: PPUSH
24641: CALL_OW 12
24645: PUSH
24646: LD_INT 5
24648: PPUSH
24649: LD_INT 8
24651: PPUSH
24652: CALL_OW 12
24656: PUSH
24657: LD_INT 5
24659: PPUSH
24660: LD_INT 8
24662: PPUSH
24663: CALL_OW 12
24667: PUSH
24668: LD_INT 3
24670: PPUSH
24671: LD_INT 6
24673: PPUSH
24674: CALL_OW 12
24678: PUSH
24679: EMPTY
24680: LIST
24681: LIST
24682: LIST
24683: LIST
24684: ST_TO_ADDR
// Ar2 = CreateHuman ;
24685: LD_ADDR_EXP 85
24689: PUSH
24690: CALL_OW 44
24694: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
24695: LD_ADDR_OWVAR 27
24699: PUSH
24700: LD_INT 1
24702: PPUSH
24703: LD_INT 2
24705: PPUSH
24706: CALL_OW 12
24710: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 , 10 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) , rand ( 3 , 6 ) ] ;
24711: LD_ADDR_OWVAR 30
24715: PUSH
24716: LD_INT 6
24718: PPUSH
24719: LD_INT 10
24721: PPUSH
24722: CALL_OW 12
24726: PUSH
24727: LD_INT 5
24729: PPUSH
24730: LD_INT 8
24732: PPUSH
24733: CALL_OW 12
24737: PUSH
24738: LD_INT 5
24740: PPUSH
24741: LD_INT 8
24743: PPUSH
24744: CALL_OW 12
24748: PUSH
24749: LD_INT 3
24751: PPUSH
24752: LD_INT 6
24754: PPUSH
24755: CALL_OW 12
24759: PUSH
24760: EMPTY
24761: LIST
24762: LIST
24763: LIST
24764: LIST
24765: ST_TO_ADDR
// Ar3 = CreateHuman ;
24766: LD_ADDR_EXP 86
24770: PUSH
24771: CALL_OW 44
24775: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
24776: LD_ADDR_OWVAR 27
24780: PUSH
24781: LD_INT 1
24783: PPUSH
24784: LD_INT 2
24786: PPUSH
24787: CALL_OW 12
24791: ST_TO_ADDR
// hc_class = class_mortar ;
24792: LD_ADDR_OWVAR 28
24796: PUSH
24797: LD_INT 8
24799: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 , 10 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) , rand ( 3 , 6 ) ] ;
24800: LD_ADDR_OWVAR 30
24804: PUSH
24805: LD_INT 6
24807: PPUSH
24808: LD_INT 10
24810: PPUSH
24811: CALL_OW 12
24815: PUSH
24816: LD_INT 5
24818: PPUSH
24819: LD_INT 8
24821: PPUSH
24822: CALL_OW 12
24826: PUSH
24827: LD_INT 5
24829: PPUSH
24830: LD_INT 8
24832: PPUSH
24833: CALL_OW 12
24837: PUSH
24838: LD_INT 3
24840: PPUSH
24841: LD_INT 6
24843: PPUSH
24844: CALL_OW 12
24848: PUSH
24849: EMPTY
24850: LIST
24851: LIST
24852: LIST
24853: LIST
24854: ST_TO_ADDR
// Ar4 = CreateHuman ;
24855: LD_ADDR_EXP 87
24859: PUSH
24860: CALL_OW 44
24864: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
24865: LD_ADDR_OWVAR 27
24869: PUSH
24870: LD_INT 1
24872: PPUSH
24873: LD_INT 2
24875: PPUSH
24876: CALL_OW 12
24880: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 , 10 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) , rand ( 3 , 6 ) ] ;
24881: LD_ADDR_OWVAR 30
24885: PUSH
24886: LD_INT 6
24888: PPUSH
24889: LD_INT 10
24891: PPUSH
24892: CALL_OW 12
24896: PUSH
24897: LD_INT 5
24899: PPUSH
24900: LD_INT 8
24902: PPUSH
24903: CALL_OW 12
24907: PUSH
24908: LD_INT 5
24910: PPUSH
24911: LD_INT 8
24913: PPUSH
24914: CALL_OW 12
24918: PUSH
24919: LD_INT 3
24921: PPUSH
24922: LD_INT 6
24924: PPUSH
24925: CALL_OW 12
24929: PUSH
24930: EMPTY
24931: LIST
24932: LIST
24933: LIST
24934: LIST
24935: ST_TO_ADDR
// Ar5 = CreateHuman ;
24936: LD_ADDR_EXP 88
24940: PUSH
24941: CALL_OW 44
24945: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
24946: LD_ADDR_OWVAR 27
24950: PUSH
24951: LD_INT 1
24953: PPUSH
24954: LD_INT 2
24956: PPUSH
24957: CALL_OW 12
24961: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 , 10 ) , rand ( 5 , 8 ) , rand ( 5 , 8 ) , rand ( 3 , 6 ) ] ;
24962: LD_ADDR_OWVAR 30
24966: PUSH
24967: LD_INT 6
24969: PPUSH
24970: LD_INT 10
24972: PPUSH
24973: CALL_OW 12
24977: PUSH
24978: LD_INT 5
24980: PPUSH
24981: LD_INT 8
24983: PPUSH
24984: CALL_OW 12
24988: PUSH
24989: LD_INT 5
24991: PPUSH
24992: LD_INT 8
24994: PPUSH
24995: CALL_OW 12
24999: PUSH
25000: LD_INT 3
25002: PPUSH
25003: LD_INT 6
25005: PPUSH
25006: CALL_OW 12
25010: PUSH
25011: EMPTY
25012: LIST
25013: LIST
25014: LIST
25015: LIST
25016: ST_TO_ADDR
// Ar6 = CreateHuman ;
25017: LD_ADDR_EXP 89
25021: PUSH
25022: CALL_OW 44
25026: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
25027: LD_ADDR_OWVAR 27
25031: PUSH
25032: LD_INT 1
25034: PPUSH
25035: LD_INT 2
25037: PPUSH
25038: CALL_OW 12
25042: ST_TO_ADDR
// hc_class = 2 ;
25043: LD_ADDR_OWVAR 28
25047: PUSH
25048: LD_INT 2
25050: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 , 8 ) , rand ( 7 , 10 ) , rand ( 6 , 9 ) , rand ( 3 , 6 ) ] ;
25051: LD_ADDR_OWVAR 30
25055: PUSH
25056: LD_INT 6
25058: PPUSH
25059: LD_INT 8
25061: PPUSH
25062: CALL_OW 12
25066: PUSH
25067: LD_INT 7
25069: PPUSH
25070: LD_INT 10
25072: PPUSH
25073: CALL_OW 12
25077: PUSH
25078: LD_INT 6
25080: PPUSH
25081: LD_INT 9
25083: PPUSH
25084: CALL_OW 12
25088: PUSH
25089: LD_INT 3
25091: PPUSH
25092: LD_INT 6
25094: PPUSH
25095: CALL_OW 12
25099: PUSH
25100: EMPTY
25101: LIST
25102: LIST
25103: LIST
25104: LIST
25105: ST_TO_ADDR
// ArEng1 = CreateHuman ;
25106: LD_ADDR_EXP 90
25110: PUSH
25111: CALL_OW 44
25115: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
25116: LD_ADDR_OWVAR 27
25120: PUSH
25121: LD_INT 1
25123: PPUSH
25124: LD_INT 2
25126: PPUSH
25127: CALL_OW 12
25131: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 , 8 ) , rand ( 7 , 10 ) , rand ( 6 , 9 ) , rand ( 3 , 6 ) ] ;
25132: LD_ADDR_OWVAR 30
25136: PUSH
25137: LD_INT 6
25139: PPUSH
25140: LD_INT 8
25142: PPUSH
25143: CALL_OW 12
25147: PUSH
25148: LD_INT 7
25150: PPUSH
25151: LD_INT 10
25153: PPUSH
25154: CALL_OW 12
25158: PUSH
25159: LD_INT 6
25161: PPUSH
25162: LD_INT 9
25164: PPUSH
25165: CALL_OW 12
25169: PUSH
25170: LD_INT 3
25172: PPUSH
25173: LD_INT 6
25175: PPUSH
25176: CALL_OW 12
25180: PUSH
25181: EMPTY
25182: LIST
25183: LIST
25184: LIST
25185: LIST
25186: ST_TO_ADDR
// ArEng2 = CreateHuman ;
25187: LD_ADDR_EXP 91
25191: PUSH
25192: CALL_OW 44
25196: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
25197: LD_ADDR_OWVAR 27
25201: PUSH
25202: LD_INT 1
25204: PPUSH
25205: LD_INT 2
25207: PPUSH
25208: CALL_OW 12
25212: ST_TO_ADDR
// hc_basic_skills = [ rand ( 6 , 8 ) , rand ( 7 , 10 ) , rand ( 6 , 9 ) , rand ( 3 , 6 ) ] ;
25213: LD_ADDR_OWVAR 30
25217: PUSH
25218: LD_INT 6
25220: PPUSH
25221: LD_INT 8
25223: PPUSH
25224: CALL_OW 12
25228: PUSH
25229: LD_INT 7
25231: PPUSH
25232: LD_INT 10
25234: PPUSH
25235: CALL_OW 12
25239: PUSH
25240: LD_INT 6
25242: PPUSH
25243: LD_INT 9
25245: PPUSH
25246: CALL_OW 12
25250: PUSH
25251: LD_INT 3
25253: PPUSH
25254: LD_INT 6
25256: PPUSH
25257: CALL_OW 12
25261: PUSH
25262: EMPTY
25263: LIST
25264: LIST
25265: LIST
25266: LIST
25267: ST_TO_ADDR
// ArEng3 = CreateHuman ;
25268: LD_ADDR_EXP 92
25272: PUSH
25273: CALL_OW 44
25277: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
25278: LD_ADDR_OWVAR 27
25282: PUSH
25283: LD_INT 1
25285: PPUSH
25286: LD_INT 2
25288: PPUSH
25289: CALL_OW 12
25293: ST_TO_ADDR
// hc_class = 3 ;
25294: LD_ADDR_OWVAR 28
25298: PUSH
25299: LD_INT 3
25301: ST_TO_ADDR
// hc_basic_skills = [ rand ( 5 , 8 ) , rand ( 5 , 8 ) , rand ( 8 , 10 ) , rand ( 5 , 7 ) ] ;
25302: LD_ADDR_OWVAR 30
25306: PUSH
25307: LD_INT 5
25309: PPUSH
25310: LD_INT 8
25312: PPUSH
25313: CALL_OW 12
25317: PUSH
25318: LD_INT 5
25320: PPUSH
25321: LD_INT 8
25323: PPUSH
25324: CALL_OW 12
25328: PUSH
25329: LD_INT 8
25331: PPUSH
25332: LD_INT 10
25334: PPUSH
25335: CALL_OW 12
25339: PUSH
25340: LD_INT 5
25342: PPUSH
25343: LD_INT 7
25345: PPUSH
25346: CALL_OW 12
25350: PUSH
25351: EMPTY
25352: LIST
25353: LIST
25354: LIST
25355: LIST
25356: ST_TO_ADDR
// ArMech = CreateHuman ;
25357: LD_ADDR_EXP 93
25361: PUSH
25362: CALL_OW 44
25366: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
25367: LD_ADDR_OWVAR 27
25371: PUSH
25372: LD_INT 1
25374: PPUSH
25375: LD_INT 2
25377: PPUSH
25378: CALL_OW 12
25382: ST_TO_ADDR
// hc_class = 4 ;
25383: LD_ADDR_OWVAR 28
25387: PUSH
25388: LD_INT 4
25390: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 , 8 ) , rand ( 4 , 7 ) , rand ( 5 , 8 ) , 10 ] ;
25391: LD_ADDR_OWVAR 30
25395: PUSH
25396: LD_INT 4
25398: PPUSH
25399: LD_INT 8
25401: PPUSH
25402: CALL_OW 12
25406: PUSH
25407: LD_INT 4
25409: PPUSH
25410: LD_INT 7
25412: PPUSH
25413: CALL_OW 12
25417: PUSH
25418: LD_INT 5
25420: PPUSH
25421: LD_INT 8
25423: PPUSH
25424: CALL_OW 12
25428: PUSH
25429: LD_INT 10
25431: PUSH
25432: EMPTY
25433: LIST
25434: LIST
25435: LIST
25436: LIST
25437: ST_TO_ADDR
// ArDoc1 = CreateHuman ;
25438: LD_ADDR_EXP 94
25442: PUSH
25443: CALL_OW 44
25447: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
25448: LD_ADDR_OWVAR 27
25452: PUSH
25453: LD_INT 1
25455: PPUSH
25456: LD_INT 2
25458: PPUSH
25459: CALL_OW 12
25463: ST_TO_ADDR
// ArDoc2 = CreateHuman ;
25464: LD_ADDR_EXP 95
25468: PUSH
25469: CALL_OW 44
25473: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
25474: LD_ADDR_OWVAR 27
25478: PUSH
25479: LD_INT 1
25481: PPUSH
25482: LD_INT 2
25484: PPUSH
25485: CALL_OW 12
25489: ST_TO_ADDR
// hc_basic_skills = [ rand ( 4 , 8 ) , rand ( 4 , 7 ) , rand ( 5 , 8 ) , 10 ] ;
25490: LD_ADDR_OWVAR 30
25494: PUSH
25495: LD_INT 4
25497: PPUSH
25498: LD_INT 8
25500: PPUSH
25501: CALL_OW 12
25505: PUSH
25506: LD_INT 4
25508: PPUSH
25509: LD_INT 7
25511: PPUSH
25512: CALL_OW 12
25516: PUSH
25517: LD_INT 5
25519: PPUSH
25520: LD_INT 8
25522: PPUSH
25523: CALL_OW 12
25527: PUSH
25528: LD_INT 10
25530: PUSH
25531: EMPTY
25532: LIST
25533: LIST
25534: LIST
25535: LIST
25536: ST_TO_ADDR
// ArDoc3 = CreateHuman ;
25537: LD_ADDR_EXP 96
25541: PUSH
25542: CALL_OW 44
25546: ST_TO_ADDR
// hc_sex = rand ( 1 , 2 ) ;
25547: LD_ADDR_OWVAR 27
25551: PUSH
25552: LD_INT 1
25554: PPUSH
25555: LD_INT 2
25557: PPUSH
25558: CALL_OW 12
25562: ST_TO_ADDR
// ArDoc4 = CreateHuman ;
25563: LD_ADDR_EXP 97
25567: PUSH
25568: CALL_OW 44
25572: ST_TO_ADDR
// SpawnList = [ Ar1 , Ar2 , Ar3 , Ar4 , Ar5 , Ar6 , ArEng1 , ArEng2 , ArEng3 , ArMech , ArDoc1 , Ardoc2 , Ardoc3 , Ardoc4 ] ;
25573: LD_ADDR_LOC 85
25577: PUSH
25578: LD_EXP 84
25582: PUSH
25583: LD_EXP 85
25587: PUSH
25588: LD_EXP 86
25592: PUSH
25593: LD_EXP 87
25597: PUSH
25598: LD_EXP 88
25602: PUSH
25603: LD_EXP 89
25607: PUSH
25608: LD_EXP 90
25612: PUSH
25613: LD_EXP 91
25617: PUSH
25618: LD_EXP 92
25622: PUSH
25623: LD_EXP 93
25627: PUSH
25628: LD_EXP 94
25632: PUSH
25633: LD_EXP 95
25637: PUSH
25638: LD_EXP 96
25642: PUSH
25643: LD_EXP 97
25647: PUSH
25648: EMPTY
25649: LIST
25650: LIST
25651: LIST
25652: LIST
25653: LIST
25654: LIST
25655: LIST
25656: LIST
25657: LIST
25658: LIST
25659: LIST
25660: LIST
25661: LIST
25662: LIST
25663: ST_TO_ADDR
// for Person in SpawnList do
25664: LD_ADDR_LOC 84
25668: PUSH
25669: LD_LOC 85
25673: PUSH
25674: FOR_IN
25675: IFFALSE 25694
// PlaceUnitArea ( Person , ArSpawn , false ) ;
25677: LD_LOC 84
25681: PPUSH
25682: LD_INT 19
25684: PPUSH
25685: LD_INT 0
25687: PPUSH
25688: CALL_OW 49
25692: GO 25674
25694: POP
25695: POP
// end ; end_of_file
25696: END
// var MonkeyList , MonkeyInList , CaptureList , Doc , ArDoctors , ArEvac , ArEvacList , ArPoof , QueryResult ; every 0 0$5 do
25697: GO 25699
25699: DISABLE
// begin enable ;
25700: ENABLE
// MonkeyList = filterUnitsInArea ( ArMonkey , [ [ f_side , 0 ] , [ f_nation , 0 ] , [ f_class , class_apeman ] ] ) ;
25701: LD_ADDR_LOC 86
25705: PUSH
25706: LD_INT 20
25708: PPUSH
25709: LD_INT 22
25711: PUSH
25712: LD_INT 0
25714: PUSH
25715: EMPTY
25716: LIST
25717: LIST
25718: PUSH
25719: LD_INT 23
25721: PUSH
25722: LD_INT 0
25724: PUSH
25725: EMPTY
25726: LIST
25727: LIST
25728: PUSH
25729: LD_INT 25
25731: PUSH
25732: LD_INT 12
25734: PUSH
25735: EMPTY
25736: LIST
25737: LIST
25738: PUSH
25739: EMPTY
25740: LIST
25741: LIST
25742: LIST
25743: PPUSH
25744: CALL_OW 70
25748: ST_TO_ADDR
// ArDoctors = FilterAllUnits ( [ [ f_side , 2 ] , [ f_ok ] , [ f_class , 4 ] ] ) ;
25749: LD_ADDR_LOC 90
25753: PUSH
25754: LD_INT 22
25756: PUSH
25757: LD_INT 2
25759: PUSH
25760: EMPTY
25761: LIST
25762: LIST
25763: PUSH
25764: LD_INT 50
25766: PUSH
25767: EMPTY
25768: LIST
25769: PUSH
25770: LD_INT 25
25772: PUSH
25773: LD_INT 4
25775: PUSH
25776: EMPTY
25777: LIST
25778: LIST
25779: PUSH
25780: EMPTY
25781: LIST
25782: LIST
25783: LIST
25784: PPUSH
25785: CALL_OW 69
25789: ST_TO_ADDR
// CaptureList = [ ] ;
25790: LD_ADDR_LOC 88
25794: PUSH
25795: EMPTY
25796: ST_TO_ADDR
// if MonkeyList > 0 then
25797: LD_LOC 86
25801: PUSH
25802: LD_INT 0
25804: GREATER
25805: IFFALSE 25931
// begin for MonkeyInList in MonkeyList do
25807: LD_ADDR_LOC 87
25811: PUSH
25812: LD_LOC 86
25816: PUSH
25817: FOR_IN
25818: IFFALSE 25852
// begin if See ( 2 , MonkeyInList ) then
25820: LD_INT 2
25822: PPUSH
25823: LD_LOC 87
25827: PPUSH
25828: CALL_OW 292
25832: IFFALSE 25850
// CaptureList = CaptureList ^ MonkeyInList ;
25834: LD_ADDR_LOC 88
25838: PUSH
25839: LD_LOC 88
25843: PUSH
25844: LD_LOC 87
25848: ADD
25849: ST_TO_ADDR
// end ;
25850: GO 25817
25852: POP
25853: POP
// for MonkeyInList in CaptureList do
25854: LD_ADDR_LOC 87
25858: PUSH
25859: LD_LOC 88
25863: PUSH
25864: FOR_IN
25865: IFFALSE 25927
// begin for Doc in ArDoctors do
25867: LD_ADDR_LOC 89
25871: PUSH
25872: LD_LOC 90
25876: PUSH
25877: FOR_IN
25878: IFFALSE 25923
// begin if not IsBusy ( Doc ) then
25880: LD_LOC 89
25884: PPUSH
25885: CALL_OW 315
25889: NOT
25890: IFFALSE 25921
// AddComTameXY ( Doc , GetX ( MonkeyInList ) , GetY ( MonkeyInList ) ) ;
25892: LD_LOC 89
25896: PPUSH
25897: LD_LOC 87
25901: PPUSH
25902: CALL_OW 250
25906: PPUSH
25907: LD_LOC 87
25911: PPUSH
25912: CALL_OW 251
25916: PPUSH
25917: CALL_OW 191
// end ;
25921: GO 25877
25923: POP
25924: POP
// end ;
25925: GO 25864
25927: POP
25928: POP
// end else
25929: GO 25987
// begin for Doc in ArDoctors do
25931: LD_ADDR_LOC 89
25935: PUSH
25936: LD_LOC 90
25940: PUSH
25941: FOR_IN
25942: IFFALSE 25985
// begin if ( not IsBusy ( Doc ) ) and GetLives ( Doc ) < 300 then
25944: LD_LOC 89
25948: PPUSH
25949: CALL_OW 315
25953: NOT
25954: PUSH
25955: LD_LOC 89
25959: PPUSH
25960: CALL_OW 256
25964: PUSH
25965: LD_INT 300
25967: LESS
25968: AND
25969: IFFALSE 25983
// AddComEnterUnit ( Doc , ArLab ) ;
25971: LD_LOC 89
25975: PPUSH
25976: LD_INT 8
25978: PPUSH
25979: CALL_OW 180
// end ;
25983: GO 25941
25985: POP
25986: POP
// end ; for Doc in ArDoctors do
25987: LD_ADDR_LOC 89
25991: PUSH
25992: LD_LOC 90
25996: PUSH
25997: FOR_IN
25998: IFFALSE 26091
// begin if GetBtype ( isInUnit ( Doc ) ) = 6 or GetBtype ( isInUnit ( Doc ) ) = 7 or GetBtype ( isInUnit ( Doc ) ) = 8 then
26000: LD_LOC 89
26004: PPUSH
26005: CALL_OW 310
26009: PPUSH
26010: CALL_OW 266
26014: PUSH
26015: LD_INT 6
26017: EQUAL
26018: PUSH
26019: LD_LOC 89
26023: PPUSH
26024: CALL_OW 310
26028: PPUSH
26029: CALL_OW 266
26033: PUSH
26034: LD_INT 7
26036: EQUAL
26037: OR
26038: PUSH
26039: LD_LOC 89
26043: PPUSH
26044: CALL_OW 310
26048: PPUSH
26049: CALL_OW 266
26053: PUSH
26054: LD_INT 8
26056: EQUAL
26057: OR
26058: IFFALSE 26089
// AddComTameXY ( Doc , GetX ( MonkeyInList ) , GetY ( MonkeyInList ) ) ;
26060: LD_LOC 89
26064: PPUSH
26065: LD_LOC 87
26069: PPUSH
26070: CALL_OW 250
26074: PPUSH
26075: LD_LOC 87
26079: PPUSH
26080: CALL_OW 251
26084: PPUSH
26085: CALL_OW 191
// end ;
26089: GO 25997
26091: POP
26092: POP
// end ;
26093: END
// every 0 0$15 do
26094: GO 26096
26096: DISABLE
// begin SetTech ( tech_StimDrugs , 2 , 2 ) ;
26097: LD_INT 5
26099: PPUSH
26100: LD_INT 2
26102: PPUSH
26103: LD_INT 2
26105: PPUSH
26106: CALL_OW 322
// ArEvac = 0 ;
26110: LD_ADDR_LOC 91
26114: PUSH
26115: LD_INT 0
26117: ST_TO_ADDR
// AddComHiddenCamera ( ArEng1 , 144 , 109 ) ;
26118: LD_EXP 90
26122: PPUSH
26123: LD_INT 144
26125: PPUSH
26126: LD_INT 109
26128: PPUSH
26129: CALL_OW 217
// AddComHiddenCamera ( ArEng1 , 134 , 117 ) ;
26133: LD_EXP 90
26137: PPUSH
26138: LD_INT 134
26140: PPUSH
26141: LD_INT 117
26143: PPUSH
26144: CALL_OW 217
// AddComHiddenCamera ( ArEng1 , 141 , 124 ) ;
26148: LD_EXP 90
26152: PPUSH
26153: LD_INT 141
26155: PPUSH
26156: LD_INT 124
26158: PPUSH
26159: CALL_OW 217
// AddComHiddenCamera ( ArEng1 , 129 , 102 ) ;
26163: LD_EXP 90
26167: PPUSH
26168: LD_INT 129
26170: PPUSH
26171: LD_INT 102
26173: PPUSH
26174: CALL_OW 217
// AddComHiddenCamera ( ArEng1 , 117 , 95 ) ;
26178: LD_EXP 90
26182: PPUSH
26183: LD_INT 117
26185: PPUSH
26186: LD_INT 95
26188: PPUSH
26189: CALL_OW 217
// AddComHiddenCamera ( ArEng1 , 105 , 93 ) ;
26193: LD_EXP 90
26197: PPUSH
26198: LD_INT 105
26200: PPUSH
26201: LD_INT 93
26203: PPUSH
26204: CALL_OW 217
// AddComHiddenCamera ( ArEng1 , 99 , 80 ) ;
26208: LD_EXP 90
26212: PPUSH
26213: LD_INT 99
26215: PPUSH
26216: LD_INT 80
26218: PPUSH
26219: CALL_OW 217
// AddComHiddenCamera ( ArEng1 , 94 , 83 ) ;
26223: LD_EXP 90
26227: PPUSH
26228: LD_INT 94
26230: PPUSH
26231: LD_INT 83
26233: PPUSH
26234: CALL_OW 217
// AddComHiddenCamera ( ArEng2 , 95 , 61 ) ;
26238: LD_EXP 91
26242: PPUSH
26243: LD_INT 95
26245: PPUSH
26246: LD_INT 61
26248: PPUSH
26249: CALL_OW 217
// AddComHiddenCamera ( ArEng2 , 92 , 66 ) ;
26253: LD_EXP 91
26257: PPUSH
26258: LD_INT 92
26260: PPUSH
26261: LD_INT 66
26263: PPUSH
26264: CALL_OW 217
// AddComHiddenCamera ( ArEng2 , 105 , 46 ) ;
26268: LD_EXP 91
26272: PPUSH
26273: LD_INT 105
26275: PPUSH
26276: LD_INT 46
26278: PPUSH
26279: CALL_OW 217
// AddComHiddenCamera ( ArEng2 , 122 , 53 ) ;
26283: LD_EXP 91
26287: PPUSH
26288: LD_INT 122
26290: PPUSH
26291: LD_INT 53
26293: PPUSH
26294: CALL_OW 217
// AddComHiddenCamera ( ArEng2 , 141 , 69 ) ;
26298: LD_EXP 91
26302: PPUSH
26303: LD_INT 141
26305: PPUSH
26306: LD_INT 69
26308: PPUSH
26309: CALL_OW 217
// AddComHiddenCamera ( ArEng2 , 140 , 76 ) ;
26313: LD_EXP 91
26317: PPUSH
26318: LD_INT 140
26320: PPUSH
26321: LD_INT 76
26323: PPUSH
26324: CALL_OW 217
// AddComHiddenCamera ( ArEng3 , 123 , 71 ) ;
26328: LD_EXP 92
26332: PPUSH
26333: LD_INT 123
26335: PPUSH
26336: LD_INT 71
26338: PPUSH
26339: CALL_OW 217
// AddComHiddenCamera ( ArEng3 , 146 , 90 ) ;
26343: LD_EXP 92
26347: PPUSH
26348: LD_INT 146
26350: PPUSH
26351: LD_INT 90
26353: PPUSH
26354: CALL_OW 217
// AddComHiddenCamera ( ArEng3 , 142 , 93 ) ;
26358: LD_EXP 92
26362: PPUSH
26363: LD_INT 142
26365: PPUSH
26366: LD_INT 93
26368: PPUSH
26369: CALL_OW 217
// AddComHiddenCamera ( ArEng3 , 161 , 94 ) ;
26373: LD_EXP 92
26377: PPUSH
26378: LD_INT 161
26380: PPUSH
26381: LD_INT 94
26383: PPUSH
26384: CALL_OW 217
// AddComHiddenCamera ( ArEng3 , 157 , 105 ) ;
26388: LD_EXP 92
26392: PPUSH
26393: LD_INT 157
26395: PPUSH
26396: LD_INT 105
26398: PPUSH
26399: CALL_OW 217
// AddComHiddenCamera ( ArEng3 , 77 , 77 ) ;
26403: LD_EXP 92
26407: PPUSH
26408: LD_INT 77
26410: PPUSH
26411: LD_INT 77
26413: PPUSH
26414: CALL_OW 217
// AddComMoveToArea ( [ ArEng1 , ArEng2 , ArEng3 ] , ArSpawn ) ;
26418: LD_EXP 90
26422: PUSH
26423: LD_EXP 91
26427: PUSH
26428: LD_EXP 92
26432: PUSH
26433: EMPTY
26434: LIST
26435: LIST
26436: LIST
26437: PPUSH
26438: LD_INT 19
26440: PPUSH
26441: CALL_OW 173
// ComEnterUnit ( [ Ar1 , Ar4 ] , In1 ) ;
26445: LD_EXP 84
26449: PUSH
26450: LD_EXP 87
26454: PUSH
26455: EMPTY
26456: LIST
26457: LIST
26458: PPUSH
26459: LD_INT 1998
26461: PPUSH
26462: CALL_OW 120
// ComEnterUnit ( [ Ar2 , Ar5 ] , In2 ) ;
26466: LD_EXP 85
26470: PUSH
26471: LD_EXP 88
26475: PUSH
26476: EMPTY
26477: LIST
26478: LIST
26479: PPUSH
26480: LD_INT 2
26482: PPUSH
26483: CALL_OW 120
// ComEnterUnit ( [ Ar3 , Ar6 ] , In3 ) ;
26487: LD_EXP 86
26491: PUSH
26492: LD_EXP 89
26496: PUSH
26497: EMPTY
26498: LIST
26499: LIST
26500: PPUSH
26501: LD_INT 1053
26503: PPUSH
26504: CALL_OW 120
// end ;
26508: END
// every 0 0$01 + 0 0$0.1 trigger IsLive ( ArEng1 ) and GetSide ( ArEng2 ) = 2 and IsLive ( ArBase ) do
26509: LD_EXP 90
26513: PPUSH
26514: CALL_OW 300
26518: PUSH
26519: LD_EXP 91
26523: PPUSH
26524: CALL_OW 255
26528: PUSH
26529: LD_INT 2
26531: EQUAL
26532: AND
26533: PUSH
26534: LD_INT 1027
26536: PPUSH
26537: CALL_OW 300
26541: AND
26542: IFFALSE 26793
26544: GO 26546
26546: DISABLE
// begin enable ;
26547: ENABLE
// if IsInUnit ( ArEng1 ) = ArBase then
26548: LD_EXP 90
26552: PPUSH
26553: CALL_OW 310
26557: PUSH
26558: LD_INT 1027
26560: EQUAL
26561: IFFALSE 26594
// SetLives ( ArEng1 , min ( getLives ( ArEng1 ) + 75 , 1000 ) ) ;
26563: LD_EXP 90
26567: PPUSH
26568: LD_EXP 90
26572: PPUSH
26573: CALL_OW 256
26577: PUSH
26578: LD_INT 75
26580: PLUS
26581: PPUSH
26582: LD_INT 1000
26584: PPUSH
26585: CALL 19318 0 2
26589: PPUSH
26590: CALL_OW 234
// if IsDying ( ArEng1 ) and IsOK ( ArBase ) then
26594: LD_EXP 90
26598: PPUSH
26599: CALL_OW 303
26603: PUSH
26604: LD_INT 1027
26606: PPUSH
26607: CALL_OW 302
26611: AND
26612: IFFALSE 26628
// ComEnterUnit ( ArEng1 , ArBase ) else
26614: LD_EXP 90
26618: PPUSH
26619: LD_INT 1027
26621: PPUSH
26622: CALL_OW 120
26626: GO 26793
// if isDying ( ArBase ) then
26628: LD_INT 1027
26630: PPUSH
26631: CALL_OW 303
26635: IFFALSE 26651
// AddcomRepairBuilding ( ArEng1 , ArBase ) else
26637: LD_EXP 90
26641: PPUSH
26642: LD_INT 1027
26644: PPUSH
26645: CALL_OW 190
26649: GO 26793
// if IsLive ( in1 ) and GetLives ( in1 ) < 1000 then
26651: LD_INT 1998
26653: PPUSH
26654: CALL_OW 300
26658: PUSH
26659: LD_INT 1998
26661: PPUSH
26662: CALL_OW 256
26666: PUSH
26667: LD_INT 1000
26669: LESS
26670: AND
26671: IFFALSE 26687
// AddcomRepairBuilding ( ArEng1 , in1 ) else
26673: LD_EXP 90
26677: PPUSH
26678: LD_INT 1998
26680: PPUSH
26681: CALL_OW 190
26685: GO 26793
// if IsLive ( in2 ) and GetLives ( in2 ) < 1000 then
26687: LD_INT 2
26689: PPUSH
26690: CALL_OW 300
26694: PUSH
26695: LD_INT 2
26697: PPUSH
26698: CALL_OW 256
26702: PUSH
26703: LD_INT 1000
26705: LESS
26706: AND
26707: IFFALSE 26723
// AddcomRepairBuilding ( ArEng1 , in2 ) else
26709: LD_EXP 90
26713: PPUSH
26714: LD_INT 2
26716: PPUSH
26717: CALL_OW 190
26721: GO 26793
// if IsLive ( in3 ) and GetLives ( in3 ) < 1000 then
26723: LD_INT 1053
26725: PPUSH
26726: CALL_OW 300
26730: PUSH
26731: LD_INT 1053
26733: PPUSH
26734: CALL_OW 256
26738: PUSH
26739: LD_INT 1000
26741: LESS
26742: AND
26743: IFFALSE 26759
// AddcomRepairBuilding ( ArEng1 , in3 ) else
26745: LD_EXP 90
26749: PPUSH
26750: LD_INT 1053
26752: PPUSH
26753: CALL_OW 190
26757: GO 26793
// if IsLive ( ArLab ) and GetLives ( ArLab ) < 1000 then
26759: LD_INT 8
26761: PPUSH
26762: CALL_OW 300
26766: PUSH
26767: LD_INT 8
26769: PPUSH
26770: CALL_OW 256
26774: PUSH
26775: LD_INT 1000
26777: LESS
26778: AND
26779: IFFALSE 26793
// AddComRepairBuilding ( ArEng1 , ArLAb ) ;
26781: LD_EXP 90
26785: PPUSH
26786: LD_INT 8
26788: PPUSH
26789: CALL_OW 190
// end ;
26793: END
// every 0 0$01 + 0 0$0.2 trigger IsLive ( ArEng2 ) and GetSide ( ArEng2 ) = 2 and IsLive ( ArBase ) do
26794: LD_EXP 91
26798: PPUSH
26799: CALL_OW 300
26803: PUSH
26804: LD_EXP 91
26808: PPUSH
26809: CALL_OW 255
26813: PUSH
26814: LD_INT 2
26816: EQUAL
26817: AND
26818: PUSH
26819: LD_INT 1027
26821: PPUSH
26822: CALL_OW 300
26826: AND
26827: IFFALSE 27078
26829: GO 26831
26831: DISABLE
// begin enable ;
26832: ENABLE
// if IsInUnit ( ArEng2 ) = ArBase then
26833: LD_EXP 91
26837: PPUSH
26838: CALL_OW 310
26842: PUSH
26843: LD_INT 1027
26845: EQUAL
26846: IFFALSE 26879
// SetLives ( ArEng2 , min ( getLives ( ArEng2 ) + 75 , 1000 ) ) ;
26848: LD_EXP 91
26852: PPUSH
26853: LD_EXP 91
26857: PPUSH
26858: CALL_OW 256
26862: PUSH
26863: LD_INT 75
26865: PLUS
26866: PPUSH
26867: LD_INT 1000
26869: PPUSH
26870: CALL 19318 0 2
26874: PPUSH
26875: CALL_OW 234
// if IsDying ( ArEng2 ) and IsOK ( ArBase ) then
26879: LD_EXP 91
26883: PPUSH
26884: CALL_OW 303
26888: PUSH
26889: LD_INT 1027
26891: PPUSH
26892: CALL_OW 302
26896: AND
26897: IFFALSE 26913
// ComEnterUnit ( ArEng2 , ArBase ) else
26899: LD_EXP 91
26903: PPUSH
26904: LD_INT 1027
26906: PPUSH
26907: CALL_OW 120
26911: GO 27078
// if isDying ( ArBase ) then
26913: LD_INT 1027
26915: PPUSH
26916: CALL_OW 303
26920: IFFALSE 26936
// AddcomRepairBuilding ( ArEng2 , ArBase ) else
26922: LD_EXP 91
26926: PPUSH
26927: LD_INT 1027
26929: PPUSH
26930: CALL_OW 190
26934: GO 27078
// if IsLive ( in1 ) and GetLives ( in1 ) < 1000 then
26936: LD_INT 1998
26938: PPUSH
26939: CALL_OW 300
26943: PUSH
26944: LD_INT 1998
26946: PPUSH
26947: CALL_OW 256
26951: PUSH
26952: LD_INT 1000
26954: LESS
26955: AND
26956: IFFALSE 26972
// AddcomRepairBuilding ( ArEng2 , in1 ) else
26958: LD_EXP 91
26962: PPUSH
26963: LD_INT 1998
26965: PPUSH
26966: CALL_OW 190
26970: GO 27078
// if IsLive ( in2 ) and GetLives ( in2 ) < 1000 then
26972: LD_INT 2
26974: PPUSH
26975: CALL_OW 300
26979: PUSH
26980: LD_INT 2
26982: PPUSH
26983: CALL_OW 256
26987: PUSH
26988: LD_INT 1000
26990: LESS
26991: AND
26992: IFFALSE 27008
// AddcomRepairBuilding ( ArEng2 , in2 ) else
26994: LD_EXP 91
26998: PPUSH
26999: LD_INT 2
27001: PPUSH
27002: CALL_OW 190
27006: GO 27078
// if IsLive ( in3 ) and GetLives ( in3 ) < 1000 then
27008: LD_INT 1053
27010: PPUSH
27011: CALL_OW 300
27015: PUSH
27016: LD_INT 1053
27018: PPUSH
27019: CALL_OW 256
27023: PUSH
27024: LD_INT 1000
27026: LESS
27027: AND
27028: IFFALSE 27044
// AddcomRepairBuilding ( ArEng2 , in3 ) else
27030: LD_EXP 91
27034: PPUSH
27035: LD_INT 1053
27037: PPUSH
27038: CALL_OW 190
27042: GO 27078
// if IsLive ( ArLab ) and GetLives ( ArLab ) < 1000 then
27044: LD_INT 8
27046: PPUSH
27047: CALL_OW 300
27051: PUSH
27052: LD_INT 8
27054: PPUSH
27055: CALL_OW 256
27059: PUSH
27060: LD_INT 1000
27062: LESS
27063: AND
27064: IFFALSE 27078
// AddComRepairBuilding ( ArEng2 , ArLAb ) ;
27066: LD_EXP 91
27070: PPUSH
27071: LD_INT 8
27073: PPUSH
27074: CALL_OW 190
// end ;
27078: END
// every 0 0$01 + 0 0$0.3 trigger IsLive ( ArEng3 ) and GetSide ( ArEng3 ) = 2 and IsLive ( ArBase ) do
27079: LD_EXP 92
27083: PPUSH
27084: CALL_OW 300
27088: PUSH
27089: LD_EXP 92
27093: PPUSH
27094: CALL_OW 255
27098: PUSH
27099: LD_INT 2
27101: EQUAL
27102: AND
27103: PUSH
27104: LD_INT 1027
27106: PPUSH
27107: CALL_OW 300
27111: AND
27112: IFFALSE 27363
27114: GO 27116
27116: DISABLE
// begin enable ;
27117: ENABLE
// if IsInUnit ( ArEng3 ) = ArBase then
27118: LD_EXP 92
27122: PPUSH
27123: CALL_OW 310
27127: PUSH
27128: LD_INT 1027
27130: EQUAL
27131: IFFALSE 27164
// SetLives ( ArEng3 , min ( getLives ( ArEng3 ) + 75 , 1000 ) ) ;
27133: LD_EXP 92
27137: PPUSH
27138: LD_EXP 92
27142: PPUSH
27143: CALL_OW 256
27147: PUSH
27148: LD_INT 75
27150: PLUS
27151: PPUSH
27152: LD_INT 1000
27154: PPUSH
27155: CALL 19318 0 2
27159: PPUSH
27160: CALL_OW 234
// if IsDying ( ArEng3 ) and IsOK ( ArBase ) then
27164: LD_EXP 92
27168: PPUSH
27169: CALL_OW 303
27173: PUSH
27174: LD_INT 1027
27176: PPUSH
27177: CALL_OW 302
27181: AND
27182: IFFALSE 27198
// ComEnterUnit ( ArEng3 , ArBase ) else
27184: LD_EXP 92
27188: PPUSH
27189: LD_INT 1027
27191: PPUSH
27192: CALL_OW 120
27196: GO 27363
// if isDying ( ArBase ) then
27198: LD_INT 1027
27200: PPUSH
27201: CALL_OW 303
27205: IFFALSE 27221
// AddcomRepairBuilding ( ArEng3 , ArBase ) else
27207: LD_EXP 92
27211: PPUSH
27212: LD_INT 1027
27214: PPUSH
27215: CALL_OW 190
27219: GO 27363
// if IsLive ( in1 ) and GetLives ( in1 ) < 1000 then
27221: LD_INT 1998
27223: PPUSH
27224: CALL_OW 300
27228: PUSH
27229: LD_INT 1998
27231: PPUSH
27232: CALL_OW 256
27236: PUSH
27237: LD_INT 1000
27239: LESS
27240: AND
27241: IFFALSE 27257
// AddcomRepairBuilding ( ArEng3 , in1 ) else
27243: LD_EXP 92
27247: PPUSH
27248: LD_INT 1998
27250: PPUSH
27251: CALL_OW 190
27255: GO 27363
// if IsLive ( in2 ) and GetLives ( in2 ) < 1000 then
27257: LD_INT 2
27259: PPUSH
27260: CALL_OW 300
27264: PUSH
27265: LD_INT 2
27267: PPUSH
27268: CALL_OW 256
27272: PUSH
27273: LD_INT 1000
27275: LESS
27276: AND
27277: IFFALSE 27293
// AddcomRepairBuilding ( ArEng3 , in2 ) else
27279: LD_EXP 92
27283: PPUSH
27284: LD_INT 2
27286: PPUSH
27287: CALL_OW 190
27291: GO 27363
// if IsLive ( in3 ) and GetLives ( in3 ) < 1000 then
27293: LD_INT 1053
27295: PPUSH
27296: CALL_OW 300
27300: PUSH
27301: LD_INT 1053
27303: PPUSH
27304: CALL_OW 256
27308: PUSH
27309: LD_INT 1000
27311: LESS
27312: AND
27313: IFFALSE 27329
// AddcomRepairBuilding ( ArEng3 , in3 ) else
27315: LD_EXP 92
27319: PPUSH
27320: LD_INT 1053
27322: PPUSH
27323: CALL_OW 190
27327: GO 27363
// if IsLive ( ArLab ) and GetLives ( ArLab ) < 1000 then
27329: LD_INT 8
27331: PPUSH
27332: CALL_OW 300
27336: PUSH
27337: LD_INT 8
27339: PPUSH
27340: CALL_OW 256
27344: PUSH
27345: LD_INT 1000
27347: LESS
27348: AND
27349: IFFALSE 27363
// AddComRepairBuilding ( ArEng3 , ArLAb ) ;
27351: LD_EXP 92
27355: PPUSH
27356: LD_INT 8
27358: PPUSH
27359: CALL_OW 190
// end ;
27363: END
// every 0 0$01 + 0 0$01 trigger isDead ( ArBase ) and Randomperson ( 2 ) do
27364: LD_INT 1027
27366: PPUSH
27367: CALL_OW 301
27371: PUSH
27372: LD_INT 2
27374: PPUSH
27375: CALL 20497 0 1
27379: AND
27380: IFFALSE 27469
27382: GO 27384
27384: DISABLE
// begin say ( Randomperson ( 2 ) , WeSurrender ) ;
27385: LD_INT 2
27387: PPUSH
27388: CALL 20497 0 1
27392: PPUSH
27393: LD_STRING WeSurrender
27395: PPUSH
27396: CALL_OW 88
// QueryResult = Query ( SurrenderAccept ) ;
27400: LD_ADDR_LOC 94
27404: PUSH
27405: LD_STRING SurrenderAccept
27407: PPUSH
27408: CALL_OW 97
27412: ST_TO_ADDR
// if QueryResult = 1 then
27413: LD_LOC 94
27417: PUSH
27418: LD_INT 1
27420: EQUAL
27421: IFFALSE 27439
// begin SetAttitude ( 2 , 4 , att_neutral , true ) ;
27423: LD_INT 2
27425: PPUSH
27426: LD_INT 4
27428: PPUSH
27429: LD_INT 0
27431: PPUSH
27432: LD_INT 1
27434: PPUSH
27435: CALL_OW 80
// end ; ComMoveToArea ( FilterAllUnits ( [ f_side , 2 ] ) , ArEvacZone ) ;
27439: LD_INT 22
27441: PUSH
27442: LD_INT 2
27444: PUSH
27445: EMPTY
27446: LIST
27447: LIST
27448: PPUSH
27449: CALL_OW 69
27453: PPUSH
27454: LD_INT 21
27456: PPUSH
27457: CALL_OW 113
// ArEvac = 1 ;
27461: LD_ADDR_LOC 91
27465: PUSH
27466: LD_INT 1
27468: ST_TO_ADDR
// end ;
27469: END
// every 0 0$01 trigger ArEvac = 1 do
27470: LD_LOC 91
27474: PUSH
27475: LD_INT 1
27477: EQUAL
27478: IFFALSE 27543
27480: GO 27482
27482: DISABLE
// begin enable ;
27483: ENABLE
// ArEvacList = FilterUnitsInArea ( ArEvacZone , [ f_side , 2 ] ) ;
27484: LD_ADDR_LOC 92
27488: PUSH
27489: LD_INT 21
27491: PPUSH
27492: LD_INT 22
27494: PUSH
27495: LD_INT 2
27497: PUSH
27498: EMPTY
27499: LIST
27500: LIST
27501: PPUSH
27502: CALL_OW 70
27506: ST_TO_ADDR
// for ArPoof in ArEvacList do
27507: LD_ADDR_LOC 93
27511: PUSH
27512: LD_LOC 92
27516: PUSH
27517: FOR_IN
27518: IFFALSE 27541
// begin removeUnit ( ArPoof ) ;
27520: LD_LOC 93
27524: PPUSH
27525: CALL_OW 64
// ChangeSideFog ( 2 , 8 ) ;
27529: LD_INT 2
27531: PPUSH
27532: LD_INT 8
27534: PPUSH
27535: CALL_OW 343
// end ;
27539: GO 27517
27541: POP
27542: POP
// end ;
27543: END
